ZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9BbmRyb2lkLmJwIGIvYXVkaW8vMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjE5M2M4ZgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMTA3IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklEZXZpY2UuaGFsIiwKKyAgICAgICAgIklEZXZpY2VzRmFjdG9yeS5oYWwiLAorICAgICAgICAiSVByaW1hcnlEZXZpY2UuaGFsIiwKKyAgICAgICAgIklTdHJlYW0uaGFsIiwKKyAgICAgICAgIklTdHJlYW1Jbi5oYWwiLAorICAgICAgICAiSVN0cmVhbU91dC5oYWwiLAorICAgICAgICAiSVN0cmVhbU91dENhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvRGV2aWNlQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9EZXZpY2VzRmFjdG9yeUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvUHJpbWFyeURldmljZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvU3RyZWFtQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9TdHJlYW1JbkFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvU3RyZWFtT3V0QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9TdHJlYW1PdXRDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3RGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id0RldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JwSHdEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc0RldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lEZXZpY2VzRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lId0RldmljZXNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id0RldmljZXNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId0RldmljZXNGYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnNEZXZpY2VzRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3UHJpbWFyeURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JuSHdQcmltYXJ5RGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId1ByaW1hcnlEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc1ByaW1hcnlEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JU3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3U3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id1N0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JwSHdTdHJlYW0uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc1N0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lTdHJlYW1Jbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lId1N0cmVhbUluLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQm5Id1N0cmVhbUluLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId1N0cmVhbUluLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnNTdHJlYW1Jbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JSHdTdHJlYW1PdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cbkh3U3RyZWFtT3V0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvQnBId1N0cmVhbU91dC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0JzU3RyZWFtT3V0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSVN0cmVhbU91dENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSUh3U3RyZWFtT3V0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cbkh3U3RyZWFtT3V0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9CcEh3U3RyZWFtT3V0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9Cc1N0cmVhbU91dENhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0FuZHJvaWQubWsgYi9hdWRpby8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWU4NDBmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSw0NiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdWRpby1WMi4wLWphdmEtY29uc3RhbnRzCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL1YyXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lEZXZpY2UuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSURldmljZXNGYWN0b3J5LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lQcmltYXJ5RGV2aWNlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lTdHJlYW0uaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVN0cmVhbUluLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lTdHJlYW1PdXQuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVN0cmVhbU91dENhbGxiYWNrLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0lEZXZpY2UuaGFsIGIvYXVkaW8vMi4wL0lEZXZpY2UuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyYzIwODEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSURldmljZS5oYWwKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElTdHJlYW1JbjsKK2ltcG9ydCBJU3RyZWFtT3V0OworCitpbnRlcmZhY2UgSURldmljZSB7CisgICAgdHlwZWRlZiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6UmVzdWx0IFJlc3VsdDsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgYXVkaW8gaGFyZHdhcmUgaW50ZXJmYWNlIGhhcyBiZWVuIGluaXRpYWxpemVkLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgT0sgb24gc3VjY2VzcywgTk9UX0lOSVRJQUxJWkVEIG9uIGZhaWx1cmUuCisgICAgICovCisgICAgaW5pdENoZWNrKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGF1ZGlvIHZvbHVtZSBmb3IgYWxsIGF1ZGlvIGFjdGl2aXRpZXMgb3RoZXIgdGhhbiB2b2ljZSBjYWxsLiBJZgorICAgICAqIE5PVF9TVVBQT1JURUQgaXMgcmV0dXJuZWQsIHRoZSBzb2Z0d2FyZSBtaXhlciB3aWxsIGVtdWxhdGUgdGhpcworICAgICAqIGNhcGFiaWxpdHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdm9sdW1lIDEuMGYgbWVhbnMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0TWFzdGVyVm9sdW1lKGZsb2F0IHZvbHVtZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCBtYXN0ZXIgdm9sdW1lIHZhbHVlIGZvciB0aGUgSEFMLCBpZiB0aGUgSEFMIHN1cHBvcnRzCisgICAgICogbWFzdGVyIHZvbHVtZSBjb250cm9sLiBGb3IgZXhhbXBsZSwgQXVkaW9GbGluZ2VyIHdpbGwgcXVlcnkgdGhpcyB2YWx1ZQorICAgICAqIGZyb20gdGhlIHByaW1hcnkgYXVkaW8gSEFMIHdoZW4gdGhlIHNlcnZpY2Ugc3RhcnRzIGFuZCB1c2UgdGhlIHZhbHVlIGZvcgorICAgICAqIHNldHRpbmcgdGhlIGluaXRpYWwgbWFzdGVyIHZvbHVtZSBhY3Jvc3MgYWxsIEhBTHMuIEhBTHMgd2hpY2ggZG8gbm90CisgICAgICogc3VwcG9ydCB0aGlzIG1ldGhvZCBtdXN0IHJldHVybiBOT1RfU1VQUE9SVEVEIGluICdyZXR2YWwnLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gdm9sdW1lIDEuMGYgbWVhbnMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKi8KKyAgICBnZXRNYXN0ZXJWb2x1bWUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIGZsb2F0IHZvbHVtZSk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIG1pY3JvcGhvbmUgbXV0aW5nIHN0YXRlLgorICAgICAqCisgICAgICogQHBhcmFtIG11dGUgd2hldGhlciBtaWNyb3Bob25lIGlzIG11dGVkLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRNaWNNdXRlKGJvb2wgbXV0ZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgd2hldGhlciBtaWNyb3Bob25lIGlzIG11dGVkLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gbXV0ZSB3aGV0aGVyIG1pY3JvcGhvbmUgaXMgbXV0ZWQuCisgICAgICovCisgICAgZ2V0TWljTXV0ZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgYm9vbCBtdXRlKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgYXVkaW8gbXV0ZSBzdGF0dXMgZm9yIGFsbCBhdWRpbyBhY3Rpdml0aWVzLiBJZiB0aGUgcmV0dXJuIHZhbHVlCisgICAgICogaXMgTk9UX1NVUFBPUlRFRCwgdGhlIHNvZnR3YXJlIG1peGVyIHdpbGwgZW11bGF0ZSB0aGlzIGNhcGFiaWxpdHkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbXV0ZSB3aGV0aGVyIGF1ZGlvIGlzIG11dGVkLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRNYXN0ZXJNdXRlKGJvb2wgbXV0ZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgY3VycmVudCBtYXN0ZXIgbXV0ZSBzdGF0dXMgZm9yIHRoZSBIQUwsIGlmIHRoZSBIQUwgc3VwcG9ydHMKKyAgICAgKiBtYXN0ZXIgbXV0ZSBjb250cm9sLiBBdWRpb0ZsaW5nZXIgd2lsbCBxdWVyeSB0aGlzIHZhbHVlIGZyb20gdGhlIHByaW1hcnkKKyAgICAgKiBhdWRpbyBIQUwgd2hlbiB0aGUgc2VydmljZSBzdGFydHMgYW5kIHVzZSB0aGUgdmFsdWUgZm9yIHNldHRpbmcgdGhlCisgICAgICogaW5pdGlhbCBtYXN0ZXIgbXV0ZSBhY3Jvc3MgYWxsIEhBTHMuIEhBTCBtdXN0IGluZGljYXRlIHRoYXQgdGhlIGZlYXR1cmUKKyAgICAgKiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHJldHVybmluZyBOT1RfU1VQUE9SVEVEIHN0YXR1cy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIG11dGUgd2hldGhlciBhdWRpbyBpcyBtdXRlZC4KKyAgICAgKi8KKyAgICBnZXRNYXN0ZXJNdXRlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIG11dGUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBhdWRpbyBpbnB1dCBidWZmZXIgc2l6ZSBhY2NvcmRpbmcgdG8gcGFyYW1ldGVycyBwYXNzZWQgb3IKKyAgICAgKiBJTlZBTElEX0FSR1VNRU5UUyBpZiBvbmUgb2YgdGhlIHBhcmFtZXRlcnMgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb25maWcgYXVkaW8gY29uZmlndXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBidWZmZXJTaXplIGlucHV0IGJ1ZmZlciBzaXplIGluIGJ5dGVzLgorICAgICAqLworICAgIGdldElucHV0QnVmZmVyU2l6ZShBdWRpb0NvbmZpZyBjb25maWcpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQ2NF90IGJ1ZmZlclNpemUpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgY3JlYXRlcyBhbmQgb3BlbnMgdGhlIGF1ZGlvIGhhcmR3YXJlIG91dHB1dCBzdHJlYW0uCisgICAgICogSWYgdGhlIHN0cmVhbSBjYW4gbm90IGJlIG9wZW5lZCB3aXRoIHRoZSBwcm9wb3NlZCBhdWRpbyBjb25maWcsCisgICAgICogSEFMIG11c3QgcHJvdmlkZSBzdWdnZXN0ZWQgdmFsdWVzIGZvciB0aGUgYXVkaW8gY29uZmlnLgorICAgICAqCisgICAgICogQHBhcmFtIGlvSGFuZGxlIGhhbmRsZSBhc3NpZ25lZCBieSBBdWRpb0ZsaW5nZXIuCisgICAgICogQHBhcmFtIGRldmljZSBkZXZpY2UgdHlwZSBhbmQgKGlmIG5lZWRlZCkgYWRkcmVzcy4KKyAgICAgKiBAcGFyYW0gY29uZmlnIHN0cmVhbSBjb25maWd1cmF0aW9uLgorICAgICAqIEBwYXJhbSBmbGFncyBhZGRpdGlvbmFsIGZsYWdzLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIG91dFN0cmVhbSBjcmVhdGVkIG91dHB1dCBzdHJlYW0uCisgICAgICogQHJldHVybiBzdWdnZXN0ZWRDb25maWcgaW4gY2FzZSBvZiBpbnZhbGlkIHBhcmFtZXRlcnMsIHN1Z2dlc3RlZCBjb25maWcuCisgICAgICovCisgICAgb3Blbk91dHB1dFN0cmVhbSgKKyAgICAgICAgICAgIEF1ZGlvSW9IYW5kbGUgaW9IYW5kbGUsCisgICAgICAgICAgICBEZXZpY2VBZGRyZXNzIGRldmljZSwKKyAgICAgICAgICAgIEF1ZGlvQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncykgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgICAgICAgICAgUmVzdWx0IHJldHZhbCwKKyAgICAgICAgICAgICAgICAgICAgSVN0cmVhbU91dCBvdXRTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgIEF1ZGlvQ29uZmlnIHN1Z2dlc3RlZENvbmZpZyk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCBjcmVhdGVzIGFuZCBvcGVucyB0aGUgYXVkaW8gaGFyZHdhcmUgaW5wdXQgc3RyZWFtLgorICAgICAqIElmIHRoZSBzdHJlYW0gY2FuIG5vdCBiZSBvcGVuZWQgd2l0aCB0aGUgcHJvcG9zZWQgYXVkaW8gY29uZmlnLAorICAgICAqIEhBTCBtdXN0IHByb3ZpZGUgc3VnZ2VzdGVkIHZhbHVlcyBmb3IgdGhlIGF1ZGlvIGNvbmZpZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpb0hhbmRsZSBoYW5kbGUgYXNzaWduZWQgYnkgQXVkaW9GbGluZ2VyLgorICAgICAqIEBwYXJhbSBkZXZpY2UgZGV2aWNlIHR5cGUgYW5kIChpZiBuZWVkZWQpIGFkZHJlc3MuCisgICAgICogQHBhcmFtIGNvbmZpZyBzdHJlYW0gY29uZmlndXJhdGlvbi4KKyAgICAgKiBAcGFyYW0gZmxhZ3MgYWRkaXRpb25hbCBmbGFncy4KKyAgICAgKiBAcGFyYW0gc291cmNlIHNvdXJjZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGluU3RyZWFtIGluIGNhc2Ugb2Ygc3VjY2VzcywgY3JlYXRlZCBpbnB1dCBzdHJlYW0uCisgICAgICogQHJldHVybiBzdWdnZXN0ZWRDb25maWcgaW4gY2FzZSBvZiBpbnZhbGlkIHBhcmFtZXRlcnMsIHN1Z2dlc3RlZCBjb25maWcuCisgICAgICovCisgICAgb3BlbklucHV0U3RyZWFtKAorICAgICAgICAgICAgQXVkaW9Jb0hhbmRsZSBpb0hhbmRsZSwKKyAgICAgICAgICAgIERldmljZUFkZHJlc3MgZGV2aWNlLAorICAgICAgICAgICAgQXVkaW9Db25maWcgY29uZmlnLAorICAgICAgICAgICAgQXVkaW9JbnB1dEZsYWcgZmxhZ3MsCisgICAgICAgICAgICBBdWRpb1NvdXJjZSBzb3VyY2UpIGdlbmVyYXRlcyAoCisgICAgICAgICAgICAgICAgICAgIFJlc3VsdCByZXR2YWwsCisgICAgICAgICAgICAgICAgICAgIElTdHJlYW1JbiBpblN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgQXVkaW9Db25maWcgc3VnZ2VzdGVkQ29uZmlnKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciBIQUwgc3VwcG9ydHMgYXVkaW8gcGF0Y2hlcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHMgdHJ1ZSBpZiBhdWRpbyBwYXRjaGVzIGFyZSBzdXBwb3J0ZWQuCisgICAgICovCisgICAgc3VwcG9ydHNBdWRpb1BhdGNoZXMoKSBnZW5lcmF0ZXMgKGJvb2wgc3VwcG9ydHMpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhbiBhdWRpbyBwYXRjaCBiZXR3ZWVuIHNldmVyYWwgc291cmNlIGFuZCBzaW5rIHBvcnRzLiAgVGhlIGhhbmRsZQorICAgICAqIGlzIGFsbG9jYXRlZCBieSB0aGUgSEFMIGFuZCBtdXN0IGJlIHVuaXF1ZSBmb3IgdGhpcyBhdWRpbyBIQUwgbW9kdWxlLgorICAgICAqCisgICAgICogQHBhcmFtIHNvdXJjZXMgcGF0Y2ggc291cmNlcy4KKyAgICAgKiBAcGFyYW0gc2lua3MgcGF0Y2ggc2lua3MuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcGF0Y2ggY3JlYXRlZCBwYXRjaCBoYW5kbGUuCisgICAgICovCisgICAgY3JlYXRlQXVkaW9QYXRjaCh2ZWM8QXVkaW9Qb3J0Q29uZmlnPiBzb3VyY2VzLCB2ZWM8QXVkaW9Qb3J0Q29uZmlnPiBzaW5rcykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgQXVkaW9QYXRjaEhhbmRsZSBwYXRjaCk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGFuIGF1ZGlvIHBhdGNoLgorICAgICAqCisgICAgICogQHBhcmFtIHBhdGNoIHBhdGNoIGhhbmRsZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgcmVsZWFzZUF1ZGlvUGF0Y2goQXVkaW9QYXRjaEhhbmRsZSBwYXRjaCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGF0dHJpYnV0ZXMgZm9yIGEgZ2l2ZW4gYXVkaW8gcG9ydC4KKyAgICAgKgorICAgICAqIEFzIGlucHV0LCAncG9ydCcgY29udGFpbnMgdGhlIGluZm9ybWF0aW9uICh0eXBlLCByb2xlLCBhZGRyZXNzIGV0Yy4uLikKKyAgICAgKiBuZWVkZWQgYnkgdGhlIEhBTCB0byBpZGVudGlmeSB0aGUgcG9ydC4KKyAgICAgKgorICAgICAqIEFzIG91dHB1dCwgJ3Jlc3VsdFBvcnQnIGNvbnRhaW5zIHBvc3NpYmxlIGF0dHJpYnV0ZXMgKHNhbXBsaW5nIHJhdGVzLAorICAgICAqIGZvcm1hdHMsIGNoYW5uZWwgbWFza3MsIGdhaW4gY29udHJvbGxlcnMuLi4pIGZvciB0aGlzIHBvcnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydCBwb3J0IGlkZW50aWZpZXIuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcmVzdWx0UG9ydCBwb3J0IGRlc2NyaXB0b3Igd2l0aCBhbGwgcGFyYW1ldGVycyBmaWxsZWQgdXAuCisgICAgICovCisgICAgZ2V0QXVkaW9Qb3J0KEF1ZGlvUG9ydCBwb3J0KQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBBdWRpb1BvcnQgcmVzdWx0UG9ydCk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYXVkaW8gcG9ydCBjb25maWd1cmF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGNvbmZpZyBhdWRpbyBwb3J0IGNvbmZpZ3VyYXRpb24uCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEF1ZGlvUG9ydENvbmZpZyhBdWRpb1BvcnRDb25maWcgY29uZmlnKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgSFcgc3luY2hyb25pemF0aW9uIHNvdXJjZSBvZiB0aGUgZGV2aWNlLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzCisgICAgICogZXF1aXZhbGVudCB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9IV19BVl9TWU5DIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHJldHVybiBod0F2U3luYyBIVyBzeW5jaHJvbml6YXRpb24gc291cmNlCisgICAgICovCisgICAgZ2V0SHdBdlN5bmMoKSBnZW5lcmF0ZXMgKEF1ZGlvSHdTeW5jIGh3QXZTeW5jKTsKKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciB0aGUgc2NyZWVuIGlzIG9uLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9LRVlfU0NSRUVOX1NUQVRFIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIHR1cm5lZE9uIHdoZXRoZXIgdGhlIHNjcmVlbiBpcyB0dXJuZWQgb24uCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFNjcmVlblN0YXRlKGJvb2wgdHVybmVkT24pIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmljIG1ldGhvZCBmb3IgcmV0cmlldmluZyB2ZW5kb3Itc3BlY2lmaWMgcGFyYW1ldGVyIHZhbHVlcy4KKyAgICAgKiBUaGUgZnJhbWV3b3JrIGRvZXMgbm90IGludGVycHJldCB0aGUgcGFyYW1ldGVycywgdGhleSBhcmUgcGFzc2VkCisgICAgICogaW4gYW4gb3BhcXVlIG1hbm5lciBiZXR3ZWVuIGEgdmVuZG9yIGFwcGxpY2F0aW9uIGFuZCBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5cyBwYXJhbWV0ZXIga2V5cy4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBwYXJhbWV0ZXJzIHBhcmFtZXRlciBrZXkgdmFsdWUgcGFpcnMuCisgICAgICovCisgICAgZ2V0UGFyYW1ldGVycyh2ZWM8c3RyaW5nPiBrZXlzKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB2ZWM8UGFyYW1ldGVyVmFsdWU+IHBhcmFtZXRlcnMpOworCisgICAgLyoqCisgICAgICogR2VuZXJpYyBtZXRob2QgZm9yIHNldHRpbmcgdmVuZG9yLXNwZWNpZmljIHBhcmFtZXRlciB2YWx1ZXMuCisgICAgICogVGhlIGZyYW1ld29yayBkb2VzIG5vdCBpbnRlcnByZXQgdGhlIHBhcmFtZXRlcnMsIHRoZXkgYXJlIHBhc3NlZAorICAgICAqIGluIGFuIG9wYXF1ZSBtYW5uZXIgYmV0d2VlbiBhIHZlbmRvciBhcHBsaWNhdGlvbiBhbmQgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIHBhcmFtZXRlcnMgcGFyYW1ldGVyIGtleSB2YWx1ZSBwYWlycy4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0UGFyYW1ldGVycyh2ZWM8UGFyYW1ldGVyVmFsdWU+IHBhcmFtZXRlcnMpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBEdW1wcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RyZWFtIGludG8gdGhlIHByb3ZpZGVkIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgKiBUaGlzIGlzIHVzZWQgZm9yIHRoZSBkdW1wc3lzIGZhY2lsaXR5LgorICAgICAqCisgICAgICogQHBhcmFtIGZkIGR1bXAgZmlsZSBkZXNjcmlwdG9yLgorICAgICAqLworICAgIGRlYnVnRHVtcChoYW5kbGUgZmQpOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9JRGV2aWNlc0ZhY3RvcnkuaGFsIGIvYXVkaW8vMi4wL0lEZXZpY2VzRmFjdG9yeS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJiZTdhMQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9JRGV2aWNlc0ZhY3RvcnkuaGFsCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElEZXZpY2U7CisKK2ludGVyZmFjZSBJRGV2aWNlc0ZhY3RvcnkgeworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICBlbnVtIERldmljZSA6IGludDMyX3QgeworICAgICAgICBQUklNQVJZLAorICAgICAgICBBMkRQLAorICAgICAgICBVU0IsCisgICAgICAgIFJfU1VCTUlYLAorICAgICAgICBTVFVCCisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIGFuIGF1ZGlvIGRldmljZS4gVG8gY2xvc2UgdGhlIGRldmljZSwgaXQgaXMgbmVjZXNzYXJ5IHRvIHJlbGVhc2UKKyAgICAgKiByZWZlcmVuY2VzIHRvIHRoZSByZXR1cm5lZCBkZXZpY2Ugb2JqZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIGRldmljZSBkZXZpY2UgdHlwZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuIFJldHVybnMgSU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgICAgICAgIGlmIHRoZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgaGFyZHdhcmUgbW9kdWxlIGZvdW5kLAorICAgICAqICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGlmIGFuIGVycm9yIG9jY3VyZWQgd2hpbGUgb3BlbmluZyB0aGUgaGFyZHdhcmUKKyAgICAgKiAgICAgICAgIG1vZHVsZS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCB0aGUgaW50ZXJmYWNlIGZvciB0aGUgY3JlYXRlZCBkZXZpY2UuCisgICAgICovCisgICAgb3BlbkRldmljZShEZXZpY2UgZGV2aWNlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIElEZXZpY2UgcmVzdWx0KTsKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvSVByaW1hcnlEZXZpY2UuaGFsIGIvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGViMzY2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmhhbApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSURldmljZTsKKworaW50ZXJmYWNlIElQcmltYXJ5RGV2aWNlIGV4dGVuZHMgSURldmljZSB7CisgICAgdHlwZWRlZiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6UmVzdWx0IFJlc3VsdDsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGF1ZGlvIHZvbHVtZSBvZiBhIHZvaWNlIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdm9sdW1lIDEuMGYgbWVhbnMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0Vm9pY2VWb2x1bWUoZmxvYXQgdm9sdW1lKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBub3RpZnkgdGhlIEhBTCBhYm91dCBhdWRpbyBtb2RlIGNoYW5nZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9kZSBuZXcgbW9kZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0TW9kZShBdWRpb01vZGUgbW9kZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIEdldHMgd2hldGhlciBCVCBTQ08gTm9pc2UgUmVkdWN0aW9uIGFuZCBFY2hvIENhbmNlbGxhdGlvbiBhcmUgZW5hYmxlZC4KKyAgICAgKiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gZ2V0dGluZyBBVURJT19QQVJBTUVURVJfS0VZX0JUX05SRUMKKyAgICAgKiBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGVuYWJsZWQgd2hldGhlciBCVCBTQ08gTlIgKyBFQyBhcmUgZW5hYmxlZC4KKyAgICAgKi8KKyAgICBnZXRCdFNjb05yZWNFbmFibGVkKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGVuYWJsZWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIEJUIFNDTyBOb2lzZSBSZWR1Y3Rpb24gYW5kIEVjaG8gQ2FuY2VsbGF0aW9uIGFyZSBlbmFibGVkLgorICAgICAqIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0byBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9LRVlfQlRfTlJFQworICAgICAqIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIGVuYWJsZWQgd2hldGhlciBCVCBTQ08gTlIgKyBFQyBhcmUgZW5hYmxlZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0QnRTY29OcmVjRW5hYmxlZChib29sIGVuYWJsZWQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHdoZXRoZXIgQlQgU0NPIFdpZGViYW5kIG1vZGUgaXMgZW5hYmxlZC4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gZ2V0dGluZyBBVURJT19QQVJBTUVURVJfS0VZX0JUX1NDT19XQiBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIGVuYWJsZWQgd2hldGhlciBCVCBXaWRlYmFuZCBpcyBlbmFibGVkLgorICAgICAqLworICAgIGdldEJ0U2NvV2lkZWJhbmRFbmFibGVkKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBib29sIGVuYWJsZWQpOworCisgICAgLyoqCisgICAgICogU2V0cyB3aGV0aGVyIEJUIFNDTyBXaWRlYmFuZCBtb2RlIGlzIGVuYWJsZWQuIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX0tFWV9CVF9TQ09fV0Igb24gdGhlIGxlZ2FjeSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZW5hYmxlZCB3aGV0aGVyIEJUIFdpZGViYW5kIGlzIGVuYWJsZWQuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEJ0U2NvV2lkZWJhbmRFbmFibGVkKGJvb2wgZW5hYmxlZCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIGVudW0gVHR5TW9kZSA6IGludDMyX3QgeworICAgICAgICBPRkYsCisgICAgICAgIFZDTywKKyAgICAgICAgSENPLAorICAgICAgICBGVUxMCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEdldHMgY3VycmVudCBUVFkgbW9kZSBzZWxlY3Rpb24uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIGdldHRpbmcgQVVESU9fUEFSQU1FVEVSX0tFWV9UVFlfTU9ERSBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIG1vZGUgVFRZIG1vZGUuCisgICAgICovCisgICAgZ2V0VHR5TW9kZSgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgVHR5TW9kZSBtb2RlKTsKKworICAgIC8qKgorICAgICAqIFNldHMgY3VycmVudCBUVFkgbW9kZS4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcKKyAgICAgKiBBVURJT19QQVJBTUVURVJfS0VZX1RUWV9NT0RFIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgVFRZIG1vZGUuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFR0eU1vZGUoVHR5TW9kZSBtb2RlKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2V0cyB3aGV0aGVyIEhlYXJpbmcgQWlkIENvbXBhdGliaWxpdHkgLSBUZWxlY29pbCAoSEFDLVQpIG1vZGUgaXMKKyAgICAgKiBlbmFibGVkLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8gZ2V0dGluZworICAgICAqIEFVRElPX1BBUkFNRVRFUl9LRVlfSEFDIG9uIHRoZSBsZWdhY3kgSEFMLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gZW5hYmxlZCB3aGV0aGVyIEhBQyBtb2RlIGlzIGVuYWJsZWQuCisgICAgICovCisgICAgZ2V0SGFjRW5hYmxlZCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgYm9vbCBlbmFibGVkKTsKKworICAgIC8qKgorICAgICAqIFNldHMgd2hldGhlciBIZWFyaW5nIEFpZCBDb21wYXRpYmlsaXR5IC0gVGVsZWNvaWwgKEhBQy1UKSBtb2RlIGlzCisgICAgICogZW5hYmxlZC4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcKKyAgICAgKiBBVURJT19QQVJBTUVURVJfS0VZX0hBQyBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlbmFibGVkIHdoZXRoZXIgSEFDIG1vZGUgaXMgZW5hYmxlZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0SGFjRW5hYmxlZChib29sIGVuYWJsZWQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0lTdHJlYW0uaGFsIGIvYXVkaW8vMi4wL0lTdHJlYW0uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiOWNjMDYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSVN0cmVhbS5oYWwKQEAgLTAsMCArMSwyOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SUVmZmVjdDsKKworaW50ZXJmYWNlIElTdHJlYW0geworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGZyYW1lIHNpemUgKG51bWJlciBvZiBieXRlcyBwZXIgc2FtcGxlKS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZnJhbWVTaXplIGZyYW1lIHNpemUgaW4gYnl0ZXMuCisgICAgICovCisgICAgZ2V0RnJhbWVTaXplKCkgZ2VuZXJhdGVzICh1aW50NjRfdCBmcmFtZVNpemUpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBmcmFtZSBjb3VudCBvZiB0aGUgYnVmZmVyLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fRlJBTUVfQ09VTlQgb24gdGhlIGxlZ2FjeSBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGNvdW50IGZyYW1lIGNvdW50LgorICAgICAqLworICAgIGdldEZyYW1lQ291bnQoKSBnZW5lcmF0ZXMgKHVpbnQ2NF90IGNvdW50KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2l6ZSBvZiBpbnB1dC9vdXRwdXQgYnVmZmVyIGluIGJ5dGVzIGZvciB0aGlzIHN0cmVhbS4KKyAgICAgKiBJdCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIGZyYW1lIHNpemUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBidWZmZXIgc2l6ZSBpbiBieXRlcy4KKyAgICAgKi8KKyAgICBnZXRCdWZmZXJTaXplKCkgZ2VuZXJhdGVzICh1aW50NjRfdCBidWZmZXJTaXplKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgc2FtcGxpbmcgcmF0ZSBpbiBIei4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc2FtcGxlUmF0ZUh6IHNhbXBsZSByYXRlIGluIEh6LgorICAgICAqLworICAgIGdldFNhbXBsZVJhdGUoKSBnZW5lcmF0ZXMgKHVpbnQzMl90IHNhbXBsZVJhdGVIeik7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gc3VwcG9ydGVkIHNhbXBsaW5nIHJhdGVzIG9mIHRoZSBzdHJlYW0uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIGdldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9TVVBfU0FNUExJTkdfUkFURVMgb24gdGhlCisgICAgICogbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc2FtcGxlUmF0ZUh6IHN1cHBvcnRlZCBzYW1wbGUgcmF0ZXMuCisgICAgICovCisgICAgZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoKSBnZW5lcmF0ZXMgKHZlYzx1aW50MzJfdD4gc2FtcGxlUmF0ZXMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgc2FtcGxpbmcgcmF0ZSBvZiB0aGUgc3RyZWFtLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQKKyAgICAgKiB0byBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fU0FNUExJTkdfUkFURSBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzYW1wbGVSYXRlSHogc2FtcGxlIHJhdGUgaW4gSHouCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZUh6KSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBjaGFubmVsIG1hc2sgb2YgdGhlIHN0cmVhbS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gbWFzayBjaGFubmVsIG1hc2suCisgICAgICovCisgICAgZ2V0Q2hhbm5lbE1hc2soKSBnZW5lcmF0ZXMgKEF1ZGlvQ2hhbm5lbE1hc2sgbWFzayk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gc3VwcG9ydGVkIGNoYW5uZWwgbWFza3Mgb2YgdGhlIHN0cmVhbS4gQ2FsbGluZyB0aGlzIG1ldGhvZCBpcworICAgICAqIGVxdWl2YWxlbnQgdG8gZ2V0dGluZyBBVURJT19QQVJBTUVURVJfU1RSRUFNX1NVUF9DSEFOTkVMUyBvbiB0aGUgbGVnYWN5CisgICAgICogSEFMLgorICAgICAqCisgICAgICogQHJldHVybiBtYXNrcyBzdXBwb3J0ZWQgYXVkaW8gbWFza3MuCisgICAgICovCisgICAgZ2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKCkgZ2VuZXJhdGVzICh2ZWM8QXVkaW9DaGFubmVsTWFzaz4gbWFza3MpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgY2hhbm5lbCBtYXNrIG9mIHRoZSBzdHJlYW0uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9DSEFOTkVMUyBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmb3JtYXQgYXVkaW8gZm9ybWF0LgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGF1ZGlvIGZvcm1hdCBvZiB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICogQHJldHVybiBmb3JtYXQgYXVkaW8gZm9ybWF0LgorICAgICAqLworICAgIGdldEZvcm1hdCgpIGdlbmVyYXRlcyAoQXVkaW9Gb3JtYXQgZm9ybWF0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBzdXBwb3J0ZWQgYXVkaW8gZm9ybWF0cyBvZiB0aGUgc3RyZWFtLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzCisgICAgICogZXF1aXZhbGVudCB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fU1VQX0ZPUk1BVFMgb24gdGhlIGxlZ2FjeQorICAgICAqIEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZm9ybWF0cyBzdXBwb3J0ZWQgYXVkaW8gZm9ybWF0cy4KKyAgICAgKi8KKyAgICBnZXRTdXBwb3J0ZWRGb3JtYXRzKCkgZ2VuZXJhdGVzICh2ZWM8QXVkaW9Gb3JtYXQ+IGZvcm1hdHMpOworCisgICAgLyoqCisgICAgICogU2V0cyB0aGUgYXVkaW8gZm9ybWF0IG9mIHRoZSBzdHJlYW0uIENhbGxpbmcgdGhpcyBtZXRob2QgaXMgZXF1aXZhbGVudCB0bworICAgICAqIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9GT1JNQVQgb24gdGhlIGxlZ2FjeSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZm9ybWF0IGF1ZGlvIGZvcm1hdC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0Rm9ybWF0KEF1ZGlvRm9ybWF0IGZvcm1hdCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIENvbnZlbmllbmNlIG1ldGhvZCBmb3IgcmV0cmlldmluZyBzZXZlcmFsIHN0cmVhbSBwYXJhbWV0ZXJzIGluCisgICAgICogb25lIHRyYW5zYWN0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBzYW1wbGVSYXRlSHogc2FtcGxlIHJhdGUgaW4gSHouCisgICAgICogQHJldHVybiBtYXNrIGNoYW5uZWwgbWFzay4KKyAgICAgKiBAcmV0dXJuIGZvcm1hdCBhdWRpbyBmb3JtYXQuCisgICAgICovCisgICAgZ2V0QXVkaW9Qcm9wZXJ0aWVzKCkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIHVpbnQzMl90IHNhbXBsZVJhdGVIeiwgQXVkaW9DaGFubmVsTWFzayBtYXNrLCBBdWRpb0Zvcm1hdCBmb3JtYXQpOworCisgICAgLyoqCisgICAgICogQXBwbGllcyBhdWRpbyBlZmZlY3QgdG8gdGhlIHN0cmVhbS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBlZmZlY3RJZCBlZmZlY3QgSUQgKG9idGFpbmVkIGZyb20gSUVmZmVjdHNGYWN0b3J5LmNyZWF0ZUVmZmVjdCkgb2YKKyAgICAgKiAgICAgICAgICAgICAgICAgdGhlIGVmZmVjdCB0byBhcHBseS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgYWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU3RvcHMgYXBwbGljYXRpb24gb2YgdGhlIGVmZmVjdCB0byB0aGUgc3RyZWFtLgorICAgICAqCisgICAgICogQHBhcmFtIGVmZmVjdElkIGVmZmVjdCBJRCAob2J0YWluZWQgZnJvbSBJRWZmZWN0c0ZhY3RvcnkuY3JlYXRlRWZmZWN0KSBvZgorICAgICAqICAgICAgICAgICAgICAgICB0aGUgZWZmZWN0IHRvIHJlbW92ZS4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgcmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUHV0IHRoZSBhdWRpbyBoYXJkd2FyZSBpbnB1dC9vdXRwdXQgaW50byBzdGFuZGJ5IG1vZGUuCisgICAgICogRHJpdmVyIG11c3QgZXhpdCBmcm9tIHN0YW5kYnkgbW9kZSBhdCB0aGUgbmV4dCBJL08gb3BlcmF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHN0YW5kYnkoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzZXQgb2YgZGV2aWNlKHMpIHdoaWNoIHRoaXMgc3RyZWFtIGlzIGNvbm5lY3RlZCB0by4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZGV2aWNlIHNldCBvZiBkZXZpY2Uocykgd2hpY2ggdGhpcyBzdHJlYW0gaXMgY29ubmVjdGVkIHRvLgorICAgICAqLworICAgIGdldERldmljZSgpIGdlbmVyYXRlcyAoQXVkaW9EZXZpY2UgZGV2aWNlKTsKKworICAgIC8qKgorICAgICAqIENvbm5lY3RzIHRoZSBzdHJlYW0gdG8gdGhlIGRldmljZS4KKyAgICAgKgorICAgICAqIFRoaXMgbWV0aG9kIG11c3Qgb25seSBiZSB1c2VkIGZvciBIQUxzIHRoYXQgZG8gbm90IHN1cHBvcnQKKyAgICAgKiAnSURldmljZS5jcmVhdGVBdWRpb1BhdGNoJyBtZXRob2QuIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX1NUUkVBTV9ST1VUSU5HIGluIHRoZSBsZWdhY3kgSEFMCisgICAgICogaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGFkZHJlc3MgZGV2aWNlIHRvIGNvbm5lY3QgdGhlIHN0cmVhbSB0by4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0RGV2aWNlKERldmljZUFkZHJlc3MgYWRkcmVzcykgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBzdHJlYW0gYWJvdXQgZGV2aWNlIGNvbm5lY3Rpb24gc3RhdGUuIENhbGxpbmcgdGhpcyBtZXRob2QgaXMKKyAgICAgKiBlcXVpdmFsZW50IHRvIHNldHRpbmcgQVVESU9fUEFSQU1FVEVSX0RFVklDRV9bRElTXUNPTk5FQ1Qgb24gdGhlIGxlZ2FjeQorICAgICAqIEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhZGRyZXNzIGF1ZGlvIGRldmljZSBzcGVjaWZpY2F0aW9uLgorICAgICAqIEBwYXJhbSBjb25uZWN0ZWQgd2hldGhlciB0aGUgZGV2aWNlIGlzIGNvbm5lY3RlZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgc2V0Q29ubmVjdGVkU3RhdGUoRGV2aWNlQWRkcmVzcyBhZGRyZXNzLCBib29sIGNvbm5lY3RlZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBIVyBzeW5jaHJvbml6YXRpb24gc291cmNlLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzIGVxdWl2YWxlbnQgdG8KKyAgICAgKiBzZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fSFdfQVZfU1lOQyBvbiB0aGUgbGVnYWN5IEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBod0F2U3luYyBIVyBzeW5jaHJvbml6YXRpb24gc291cmNlCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldEh3QXZTeW5jKEF1ZGlvSHdTeW5jIGh3QXZTeW5jKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogR2VuZXJpYyBtZXRob2QgZm9yIHJldHJpZXZpbmcgdmVuZG9yLXNwZWNpZmljIHBhcmFtZXRlciB2YWx1ZXMuCisgICAgICogVGhlIGZyYW1ld29yayBkb2VzIG5vdCBpbnRlcnByZXQgdGhlIHBhcmFtZXRlcnMsIHRoZXkgYXJlIHBhc3NlZAorICAgICAqIGluIGFuIG9wYXF1ZSBtYW5uZXIgYmV0d2VlbiBhIHZlbmRvciBhcHBsaWNhdGlvbiBhbmQgSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIGtleXMgcGFyYW1ldGVyIGtleXMuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gcGFyYW1ldGVycyBwYXJhbWV0ZXIga2V5IHZhbHVlIHBhaXJzLgorICAgICAqLworICAgIGdldFBhcmFtZXRlcnModmVjPHN0cmluZz4ga2V5cykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdmVjPFBhcmFtZXRlclZhbHVlPiBwYXJhbWV0ZXJzKTsKKworICAgIC8qKgorICAgICAqIEdlbmVyaWMgbWV0aG9kIGZvciBzZXR0aW5nIHZlbmRvci1zcGVjaWZpYyBwYXJhbWV0ZXIgdmFsdWVzLgorICAgICAqIFRoZSBmcmFtZXdvcmsgZG9lcyBub3QgaW50ZXJwcmV0IHRoZSBwYXJhbWV0ZXJzLCB0aGV5IGFyZSBwYXNzZWQKKyAgICAgKiBpbiBhbiBvcGFxdWUgbWFubmVyIGJldHdlZW4gYSB2ZW5kb3IgYXBwbGljYXRpb24gYW5kIEhBTC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwYXJhbWV0ZXJzIHBhcmFtZXRlciBrZXkgdmFsdWUgcGFpcnMuCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldFBhcmFtZXRlcnModmVjPFBhcmFtZXRlclZhbHVlPiBwYXJhbWV0ZXJzKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogRHVtcHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHN0cmVhbSBpbnRvIHRoZSBwcm92aWRlZCBmaWxlIGRlc2NyaXB0b3IuCisgICAgICogVGhpcyBpcyB1c2VkIGZvciB0aGUgZHVtcHN5cyBmYWNpbGl0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmZCBkdW1wIGZpbGUgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBkZWJ1Z0R1bXAoaGFuZGxlIGZkKTsKKworICAgIC8qKgorICAgICAqIENhbGxlZCBieSB0aGUgZnJhbWV3b3JrIHRvIHN0YXJ0IGEgc3RyZWFtIG9wZXJhdGluZyBpbiBtbWFwIG1vZGUuCisgICAgICogY3JlYXRlTW1hcEJ1ZmZlcigpIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBjYWxsaW5nIHN0YXJ0KCkuCisgICAgICogRnVuY3Rpb24gb25seSBpbXBsZW1lbnRlZCBieSBzdHJlYW1zIG9wZXJhdGluZyBpbiBtbWFwIG1vZGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpbiBjYXNlIHRoZSBzdWNjZXNzLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgb24gbm9uIG1tYXAgbW9kZSBzdHJlYW1zCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICovCisgICAgc3RhcnQoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gc3RvcCBhIHN0cmVhbSBvcGVyYXRpbmcgaW4gbW1hcCBtb2RlLgorICAgICAqIEZ1bmN0aW9uIG9ubHkgaW1wbGVtZW50ZWQgYnkgc3RyZWFtcyBvcGVyYXRpbmcgaW4gbW1hcCBtb2RlLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgT0sgaW4gY2FzZSB0aGUgc3VjY2VzLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgb24gbm9uIG1tYXAgbW9kZSBzdHJlYW1zCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiBjYWxsZWQgb3V0IG9mIHNlcXVlbmNlCisgICAgICovCisgICAgc3RvcCgpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCkgOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIGJ5IHRoZSBmcmFtZXdvcmsgdG8gcmV0cmlldmUgaW5mb3JtYXRpb24gb24gdGhlIG1tYXAgYnVmZmVyIHVzZWQgZm9yIGF1ZGlvCisgICAgICogc2FtcGxlcyB0cmFuc2Zlci4KKyAgICAgKiBGdW5jdGlvbiBvbmx5IGltcGxlbWVudGVkIGJ5IHN0cmVhbXMgb3BlcmF0aW5nIGluIG1tYXAgbW9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtaW5TaXplRnJhbWVzIG1pbmltdW0gYnVmZmVyIHNpemUgcmVxdWVzdGVkLiBUaGUgYWN0dWFsIGJ1ZmZlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgc2l6ZSByZXR1cm5lZCBpbiBzdHJ1Y3QgTW1hcEJ1ZmZlckluZm8gY2FuIGJlIGxhcmdlci4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpbiBjYXNlIHRoZSBzdWNjZXNzLgorICAgICAqICAgICAgICAgICAgICAgIE5PVF9TVVBQT1JURUQgb24gbm9uIG1tYXAgbW9kZSBzdHJlYW1zCisgICAgICogICAgICAgICAgICAgICAgTk9UX0lOSVRJQUxJWkVEIGluIGNhc2Ugb2YgbWVtb3J5IGFsbG9jYXRpb24gZXJyb3IKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiB0aGUgcmVxdWVzdGVkIGJ1ZmZlciBzaXplIGlzIHRvbyBsYXJnZQorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgY2FsbGVkIG91dCBvZiBzZXF1ZW5jZQorICAgICAqIEByZXR1cm4gaW5mbyAgICBhIE1tYXBCdWZmZXJJbmZvIHN0cnVjdCBjb250YWluaW5nIGluZm9ybWF0aW9uIG9uIHRoZSBNTU1BUCBidWZmZXIgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgTW1hcEJ1ZmZlckluZm8gaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYnkgdGhlIGZyYW1ld29yayB0byByZWFkIGN1cnJlbnQgcmVhZC93cml0ZSBwb3NpdGlvbiBpbiB0aGUgbW1hcCBidWZmZXIKKyAgICAgKiB3aXRoIGFzc29jaWF0ZWQgdGltZSBzdGFtcC4KKyAgICAgKiBGdW5jdGlvbiBvbmx5IGltcGxlbWVudGVkIGJ5IHN0cmVhbXMgb3BlcmF0aW5nIGluIG1tYXAgbW9kZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9LIGluIGNhc2UgdGhlIHN1Y2Nlc3MuCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NVUFBPUlRFRCBvbiBub24gbW1hcCBtb2RlIHN0cmVhbXMKKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCBvdXQgb2Ygc2VxdWVuY2UKKyAgICAgKiBAcmV0dXJuIHBvc2l0aW9uIGEgTW1hcFBvc2l0aW9uIHN0cnVjdCBjb250YWluaW5nIGN1cnJlbnQgSFcgcmVhZC93cml0ZSBwb3NpdGlvbiBpbiBmcmFtZXMKKyAgICAgKiAgICAgICAgICAgICAgICAgIHdpdGggYXNzb2NpYXRlZCB0aW1lIHN0YW1wLgorICAgICAqLworICAgIGdldE1tYXBQb3NpdGlvbigpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIE1tYXBQb3NpdGlvbiBwb3NpdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgYnkgdGhlIGZyYW1ld29yayB0byBkZWluaXRpYWxpemUgdGhlIHN0cmVhbSBhbmQgZnJlZSB1cAorICAgICAqIGFsbCB0aGUgY3VycmVudGx5IGFsbG9jYXRlZCByZXNvdXJjZXMuIEl0IGlzIHJlY29tbWVuZGVkIHRvIGNsb3NlCisgICAgICogdGhlIHN0cmVhbSBvbiB0aGUgY2xpZW50IHNpZGUgYXMgc29vbiBhcyBpdCBpcyBiZWNvbWVzIHVudXNlZC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9LIGluIGNhc2UgdGhlIHN1Y2Nlc3MuCisgICAgICogICAgICAgICAgICAgICAgTk9UX1NVUFBPUlRFRCBpZiBjYWxsZWQgb24gSVN0cmVhbSBpbnN0ZWFkIG9mIGlucHV0IG9yCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgc3RyZWFtIGludGVyZmFjZS4KKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX1NUQVRFIGlmIHRoZSBzdHJlYW0gd2FzIGFscmVhZHkgY2xvc2VkLgorICAgICAqLworICAgIGNsb3NlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvSVN0cmVhbUluLmhhbCBiL2F1ZGlvLzIuMC9JU3RyZWFtSW4uaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiNzlmNDgKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSVN0cmVhbUluLmhhbApAQCAtMCwwICsxLDE1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CitpbXBvcnQgSVN0cmVhbTsKKworaW50ZXJmYWNlIElTdHJlYW1JbiBleHRlbmRzIElTdHJlYW0geworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBzb3VyY2UgZGVzY3JpcHRvciBvZiB0aGUgaW5wdXQgc3RyZWFtLiBDYWxsaW5nIHRoaXMgbWV0aG9kIGlzCisgICAgICogZXF1aXZhbGVudCB0byBnZXR0aW5nIEFVRElPX1BBUkFNRVRFUl9TVFJFQU1fSU5QVVRfU09VUkNFIG9uIHRoZSBsZWdhY3kKKyAgICAgKiBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBzb3VyY2UgYXVkaW8gc291cmNlLgorICAgICAqLworICAgIGdldEF1ZGlvU291cmNlKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBBdWRpb1NvdXJjZSBzb3VyY2UpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBpbnB1dCBnYWluIGZvciB0aGUgYXVkaW8gZHJpdmVyLgorICAgICAqCisgICAgICogQHBhcmFtIGdhaW4gMS4wZiBpcyB1bml0eSwgMC4wZiBpcyB6ZXJvLgorICAgICAqIEByZXN1bHQgcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRHYWluKGZsb2F0IGdhaW4pIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBDb21tYW5kcyB0aGF0IGNhbiBiZSBleGVjdXRlZCBvbiB0aGUgZHJpdmVyIHJlYWRlciB0aHJlYWQuCisgICAgICovCisgICAgZW51bSBSZWFkQ29tbWFuZCA6IGludDMyX3QgeworICAgICAgICBSRUFELAorICAgICAgICBHRVRfQ0FQVFVSRV9QT1NJVElPTgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBEYXRhIHN0cnVjdHVyZSBwYXNzZWQgdG8gdGhlIGRyaXZlciBmb3IgZXhlY3V0aW5nIGNvbW1hbmRzCisgICAgICogb24gdGhlIGRyaXZlciByZWFkZXIgdGhyZWFkLgorICAgICAqLworICAgIHN0cnVjdCBSZWFkUGFyYW1ldGVycyB7CisgICAgICAgIFJlYWRDb21tYW5kIGNvbW1hbmQ7ICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFBhcmFtcyB7CisgICAgICAgICAgICB1aW50NjRfdCByZWFkOyAgICAvLyBSRUFEIGNvbW1hbmQsIGFtb3VudCBvZiBieXRlcyB0byByZWFkLCA+PSAwLgorICAgICAgICAgICAgLy8gTm8gcGFyYW1ldGVycyBmb3IgR0VUX0NBUFRVUkVfUE9TSVRJT04uCisgICAgICAgIH0gcGFyYW1zOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBEYXRhIHN0cnVjdHVyZSBwYXNzZWQgYmFjayB0byB0aGUgY2xpZW50IHZpYSBzdGF0dXMgbWVzc2FnZSBxdWV1ZQorICAgICAqIG9mICdyZWFkJyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBQb3NzaWJsZSB2YWx1ZXMgb2YgJ3JldHZhbCcgZmllbGQ6CisgICAgICogIC0gT0ssIHJlYWQgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsOworICAgICAqICAtIElOVkFMSURfQVJHVU1FTlRTLCBzdHJlYW0gd2FzIG5vdCBjb25maWd1cmVkIHByb3Blcmx5OworICAgICAqICAtIElOVkFMSURfU1RBVEUsIHN0cmVhbSBpcyBpbiBhIHN0YXRlIHRoYXQgZG9lc24ndCBhbGxvdyByZWFkcy4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgUmVhZFN0YXR1cyB7CisgICAgICAgIFJlc3VsdCByZXR2YWw7CisgICAgICAgIFJlYWRDb21tYW5kIHJlcGx5VG87ICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFJlcGx5IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IHJlYWQ7ICAgIC8vIFJFQUQgY29tbWFuZCwgYW1vdW50IG9mIGJ5dGVzIHJlYWQsID49IDAuCisgICAgICAgICAgICBzdHJ1Y3QgQ2FwdHVyZVBvc2l0aW9uIHsgLy8gc2FtZSBhcyBnZW5lcmF0ZWQgYnkgZ2V0Q2FwdHVyZVBvc2l0aW9uLgorICAgICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lczsKKyAgICAgICAgICAgICAgICB1aW50NjRfdCB0aW1lOworICAgICAgICAgICAgfSBjYXB0dXJlUG9zaXRpb247CisgICAgICAgIH0gcmVwbHk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldCB1cCByZXF1aXJlZCB0cmFuc3BvcnRzIGZvciByZWNlaXZpbmcgYXVkaW8gYnVmZmVycyBmcm9tIHRoZSBkcml2ZXIuCisgICAgICoKKyAgICAgKiBUaGUgdHJhbnNwb3J0IGNvbnNpc3RzIG9mIHRocmVlIG1lc3NhZ2UgcXVldWVzOgorICAgICAqICAtLSBjb21tYW5kIHF1ZXVlIGlzIHVzZWQgdG8gaW5zdHJ1Y3QgdGhlIHJlYWRlciB0aHJlYWQgd2hhdCBvcGVyYXRpb24KKyAgICAgKiAgICAgdG8gcGVyZm9ybTsKKyAgICAgKiAgLS0gZGF0YSBxdWV1ZSBpcyB1c2VkIGZvciBwYXNzaW5nIGF1ZGlvIGRhdGEgZnJvbSB0aGUgZHJpdmVyCisgICAgICogICAgIHRvIHRoZSBjbGllbnQ7CisgICAgICogIC0tIHN0YXR1cyBxdWV1ZSBpcyB1c2VkIGZvciByZXBvcnRpbmcgb3BlcmF0aW9uIHN0YXR1cworICAgICAqICAgICAoZS5nLiBhbW91bnQgb2YgYnl0ZXMgYWN0dWFsbHkgcmVhZCBvciBlcnJvciBjb2RlKS4KKyAgICAgKgorICAgICAqIFRoZSBkcml2ZXIgb3BlcmF0ZXMgb24gYSBkZWRpY2F0ZWQgdGhyZWFkLiBUaGUgY2xpZW50IG11c3QgZW5zdXJlIHRoYXQKKyAgICAgKiB0aGUgdGhyZWFkIGlzIGdpdmVuIGFuIGFwcHJvcHJpYXRlIHByaW9yaXR5IGFuZCBhc3NpZ25lZCB0byBjb3JyZWN0CisgICAgICogc2NoZWR1bGVyIGFuZCBjZ3JvdXAuIEZvciB0aGlzIHB1cnBvc2UsIHRoZSBtZXRob2QgcmV0dXJucyBpZGVudGlmaWVycworICAgICAqIG9mIHRoZSBkcml2ZXIgdGhyZWFkLgorICAgICAqCisgICAgICogQHBhcmFtIGZyYW1lU2l6ZSB0aGUgc2l6ZSBvZiBhIHNpbmdsZSBmcmFtZSwgaW4gYnl0ZXMuCisgICAgICogQHBhcmFtIGZyYW1lc0NvdW50IHRoZSBudW1iZXIgb2YgZnJhbWVzIGluIGEgYnVmZmVyLgorICAgICAqIEBwYXJhbSB0aHJlYWRQcmlvcml0eSBwcmlvcml0eSBvZiB0aGUgZHJpdmVyIHRocmVhZC4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPSyBpZiBib3RoIG1lc3NhZ2UgcXVldWVzIHdlcmUgY3JlYXRlZCBzdWNjZXNzZnVsbHkuCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiB0aGUgbWV0aG9kIHdhcyBhbHJlYWR5IGNhbGxlZC4KKyAgICAgKiAgICAgICAgICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiB0aGVyZSB3YXMgYSBwcm9ibGVtIHNldHRpbmcgdXAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcXVldWVzLgorICAgICAqIEByZXR1cm4gY29tbWFuZE1RIGEgbWVzc2FnZSBxdWV1ZSB1c2VkIGZvciBwYXNzaW5nIGNvbW1hbmRzLgorICAgICAqIEByZXR1cm4gZGF0YU1RIGEgbWVzc2FnZSBxdWV1ZSB1c2VkIGZvciBwYXNzaW5nIGF1ZGlvIGRhdGEgaW4gdGhlIGZvcm1hdAorICAgICAqICAgICAgICAgICAgICAgIHNwZWNpZmllZCBhdCB0aGUgc3RyZWFtIG9wZW5pbmcuCisgICAgICogQHJldHVybiBzdGF0dXNNUSBhIG1lc3NhZ2UgcXVldWUgdXNlZCBmb3IgcGFzc2luZyBzdGF0dXMgZnJvbSB0aGUgZHJpdmVyCisgICAgICogICAgICAgICAgICAgICAgICB1c2luZyBSZWFkU3RhdHVzIHN0cnVjdHVyZXMuCisgICAgICogQHJldHVybiB0aHJlYWRJbmZvIGlkZW50aWZpZXJzIG9mIHRoZSBkcml2ZXIncyBkZWRpY2F0ZWQgdGhyZWFkLgorICAgICAqLworICAgIHByZXBhcmVGb3JSZWFkaW5nKHVpbnQzMl90IGZyYW1lU2l6ZSwgdWludDMyX3QgZnJhbWVzQ291bnQpCisgICAgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFJlc3VsdCByZXR2YWwsCisgICAgICAgICAgICBmbXFfc3luYzxSZWFkUGFyYW1ldGVycz4gY29tbWFuZE1RLAorICAgICAgICAgICAgZm1xX3N5bmM8dWludDhfdD4gZGF0YU1RLAorICAgICAgICAgICAgZm1xX3N5bmM8UmVhZFN0YXR1cz4gc3RhdHVzTVEsCisgICAgICAgICAgICBUaHJlYWRJbmZvIHRocmVhZEluZm8pOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBhbW91bnQgb2YgaW5wdXQgZnJhbWVzIGxvc3QgaW4gdGhlIGF1ZGlvIGRyaXZlciBzaW5jZSB0aGUgbGFzdAorICAgICAqIGNhbGwgb2YgdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIEF1ZGlvIGRyaXZlciBpcyBleHBlY3RlZCB0byByZXNldCB0aGUgdmFsdWUgdG8gMCBhbmQgcmVzdGFydCBjb3VudGluZworICAgICAqIHVwb24gcmV0dXJuaW5nIHRoZSBjdXJyZW50IHZhbHVlIGJ5IHRoaXMgZnVuY3Rpb24gY2FsbC4gU3VjaCBsb3NzCisgICAgICogdHlwaWNhbGx5IG9jY3VycyB3aGVuIHRoZSB1c2VyIHNwYWNlIHByb2Nlc3MgaXMgYmxvY2tlZCBsb25nZXIgdGhhbiB0aGUKKyAgICAgKiBjYXBhY2l0eSBvZiBhdWRpbyBkcml2ZXIgYnVmZmVycy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZnJhbWVzTG9zdCB0aGUgbnVtYmVyIG9mIGlucHV0IGF1ZGlvIGZyYW1lcyBsb3N0LgorICAgICAqLworICAgIGdldElucHV0RnJhbWVzTG9zdCgpIGdlbmVyYXRlcyAodWludDMyX3QgZnJhbWVzTG9zdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gYSByZWNlbnQgY291bnQgb2YgdGhlIG51bWJlciBvZiBhdWRpbyBmcmFtZXMgcmVjZWl2ZWQgYW5kIHRoZQorICAgICAqIGNsb2NrIHRpbWUgYXNzb2NpYXRlZCB3aXRoIHRoYXQgZnJhbWUgY291bnQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBJTlZBTElEX1NUQVRFIGlmIHRoZSBkZXZpY2UgaXMgbm90IHJlYWR5L2F2YWlsYWJsZSwKKyAgICAgKiAgICAgICAgICAgICAgICBOT1RfU1VQUE9SVEVEIGlmIHRoZSBjb21tYW5kIGlzIG5vdCBzdXBwb3J0ZWQsCisgICAgICogICAgICAgICAgICAgICAgT0sgb3RoZXJ3aXNlLgorICAgICAqIEByZXR1cm4gZnJhbWVzIHRoZSB0b3RhbCBmcmFtZSBjb3VudCByZWNlaXZlZC4gVGhpcyBtdXN0IGJlIGFzIGVhcmx5IGluCisgICAgICogICAgICAgICAgICAgICAgdGhlIGNhcHR1cmUgcGlwZWxpbmUgYXMgcG9zc2libGUuIEluIGdlbmVyYWwsIGZyYW1lcworICAgICAqICAgICAgICAgICAgICAgIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGFuZCBtdXN0IG5vdCBnbyAiYmFja3dhcmRzIi4KKyAgICAgKiBAcmV0dXJuIHRpbWUgaXMgdGhlIGNsb2NrIG1vbm90b25pYyB0aW1lIHdoZW4gZnJhbWVzIHdhcyBtZWFzdXJlZC4gSW4KKyAgICAgKiAgICAgICAgICAgICAgZ2VuZXJhbCwgdGltZSBtdXN0IGJlIGEgcG9zaXRpdmUgcXVhbnRpdHkgYW5kIG11c3Qgbm90CisgICAgICogICAgICAgICAgICAgIGdvICJiYWNrd2FyZHMiLgorICAgICAqLworICAgIGdldENhcHR1cmVQb3NpdGlvbigpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwsIHVpbnQ2NF90IGZyYW1lcywgdWludDY0X3QgdGltZSk7Cit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaGFsIGIvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0Yjc0NDcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvSVN0cmVhbU91dC5oYWwKQEAgLTAsMCArMSwyNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworaW1wb3J0IElTdHJlYW07CitpbXBvcnQgSVN0cmVhbU91dENhbGxiYWNrOworCitpbnRlcmZhY2UgSVN0cmVhbU91dCBleHRlbmRzIElTdHJlYW0geworICAgIHR5cGVkZWYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OlJlc3VsdCBSZXN1bHQ7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIGF1ZGlvIGhhcmR3YXJlIGRyaXZlciBlc3RpbWF0ZWQgbGF0ZW5jeSBpbiBtaWxsaXNlY29uZHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGxhdGVuY3lNcyBsYXRlbmN5IGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKi8KKyAgICBnZXRMYXRlbmN5KCkgZ2VuZXJhdGVzICh1aW50MzJfdCBsYXRlbmN5TXMpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgaXMgdXNlZCBpbiBzaXR1YXRpb25zIHdoZXJlIGF1ZGlvIG1peGluZyBpcyBkb25lIGluIHRoZQorICAgICAqIGhhcmR3YXJlLiBUaGlzIG1ldGhvZCBzZXJ2ZXMgYXMgYSBkaXJlY3QgaW50ZXJmYWNlIHdpdGggaGFyZHdhcmUsCisgICAgICogYWxsb3dpbmcgdG8gZGlyZWN0bHkgc2V0IHRoZSB2b2x1bWUgYXMgYXBwb3NlZCB0byB2aWEgdGhlIGZyYW1ld29yay4KKyAgICAgKiBUaGlzIG1ldGhvZCBtaWdodCBwcm9kdWNlIG11bHRpcGxlIFBDTSBvdXRwdXRzIG9yIGhhcmR3YXJlIGFjY2VsZXJhdGVkCisgICAgICogY29kZWNzLCBzdWNoIGFzIE1QMyBvciBBQUMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGVmdCBsZWZ0IGNoYW5uZWwgYXR0ZW51YXRpb24sIDEuMGYgaXMgdW5pdHksIDAuMGYgaXMgemVyby4KKyAgICAgKiBAcGFyYW0gcmlnaHQgcmlnaHQgY2hhbm5lbCBhdHRlbnVhdGlvbiwgMS4wZiBpcyB1bml0eSwgMC4wZiBpcyB6ZXJvLgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICBzZXRWb2x1bWUoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQpIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBDb21tYW5kcyB0aGF0IGNhbiBiZSBleGVjdXRlZCBvbiB0aGUgZHJpdmVyIHdyaXRlciB0aHJlYWQuCisgICAgICovCisgICAgZW51bSBXcml0ZUNvbW1hbmQgOiBpbnQzMl90IHsKKyAgICAgICAgV1JJVEUsCisgICAgICAgIEdFVF9QUkVTRU5UQVRJT05fUE9TSVRJT04sCisgICAgICAgIEdFVF9MQVRFTkNZCisgICAgfTsKKworICAgIC8qKgorICAgICAqIERhdGEgc3RydWN0dXJlIHBhc3NlZCBiYWNrIHRvIHRoZSBjbGllbnQgdmlhIHN0YXR1cyBtZXNzYWdlIHF1ZXVlCisgICAgICogb2YgJ3dyaXRlJyBvcGVyYXRpb24uCisgICAgICoKKyAgICAgKiBQb3NzaWJsZSB2YWx1ZXMgb2YgJ3JldHZhbCcgZmllbGQ6CisgICAgICogIC0gT0ssIHdyaXRlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bDsKKyAgICAgKiAgLSBJTlZBTElEX0FSR1VNRU5UUywgc3RyZWFtIHdhcyBub3QgY29uZmlndXJlZCBwcm9wZXJseTsKKyAgICAgKiAgLSBJTlZBTElEX1NUQVRFLCBzdHJlYW0gaXMgaW4gYSBzdGF0ZSB0aGF0IGRvZXNuJ3QgYWxsb3cgd3JpdGVzOworICAgICAqICAtIElOVkFMSURfT1BFUkFUSU9OLCByZXRyaWV2aW5nIHByZXNlbnRhdGlvbiBwb3NpdGlvbiBpc24ndCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgc3RydWN0IFdyaXRlU3RhdHVzIHsKKyAgICAgICAgUmVzdWx0IHJldHZhbDsKKyAgICAgICAgV3JpdGVDb21tYW5kIHJlcGx5VG87ICAvLyBkaXNjcmltaW5hdG9yCisgICAgICAgIHVuaW9uIFJlcGx5IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IHdyaXR0ZW47ICAvLyBXUklURSBjb21tYW5kLCBhbW91bnQgb2YgYnl0ZXMgd3JpdHRlbiwgPj0gMC4KKyAgICAgICAgICAgIHN0cnVjdCBQcmVzZW50YXRpb25Qb3NpdGlvbiB7ICAvLyBzYW1lIGFzIGdlbmVyYXRlZCBieQorICAgICAgICAgICAgICAgIHVpbnQ2NF90IGZyYW1lczsgICAgICAgICAgIC8vIGdldFByZXNlbnRhdGlvblBvc2l0aW9uLgorICAgICAgICAgICAgICAgIFRpbWVTcGVjIHRpbWVTdGFtcDsKKyAgICAgICAgICAgIH0gcHJlc2VudGF0aW9uUG9zaXRpb247CisgICAgICAgICAgICB1aW50MzJfdCBsYXRlbmN5TXM7IC8vIFNhbWUgYXMgZ2VuZXJhdGVkIGJ5IGdldExhdGVuY3kuCisgICAgICAgIH0gcmVwbHk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNldCB1cCByZXF1aXJlZCB0cmFuc3BvcnRzIGZvciBwYXNzaW5nIGF1ZGlvIGJ1ZmZlcnMgdG8gdGhlIGRyaXZlci4KKyAgICAgKgorICAgICAqIFRoZSB0cmFuc3BvcnQgY29uc2lzdHMgb2YgdGhyZWUgbWVzc2FnZSBxdWV1ZXM6CisgICAgICogIC0tIGNvbW1hbmQgcXVldWUgaXMgdXNlZCB0byBpbnN0cnVjdCB0aGUgd3JpdGVyIHRocmVhZCB3aGF0IG9wZXJhdGlvbgorICAgICAqICAgICB0byBwZXJmb3JtOworICAgICAqICAtLSBkYXRhIHF1ZXVlIGlzIHVzZWQgZm9yIHBhc3NpbmcgYXVkaW8gZGF0YSBmcm9tIHRoZSBjbGllbnQKKyAgICAgKiAgICAgdG8gdGhlIGRyaXZlcjsKKyAgICAgKiAgLS0gc3RhdHVzIHF1ZXVlIGlzIHVzZWQgZm9yIHJlcG9ydGluZyBvcGVyYXRpb24gc3RhdHVzCisgICAgICogICAgIChlLmcuIGFtb3VudCBvZiBieXRlcyBhY3R1YWxseSB3cml0dGVuIG9yIGVycm9yIGNvZGUpLgorICAgICAqCisgICAgICogVGhlIGRyaXZlciBvcGVyYXRlcyBvbiBhIGRlZGljYXRlZCB0aHJlYWQuIFRoZSBjbGllbnQgbXVzdCBlbnN1cmUgdGhhdAorICAgICAqIHRoZSB0aHJlYWQgaXMgZ2l2ZW4gYW4gYXBwcm9wcmlhdGUgcHJpb3JpdHkgYW5kIGFzc2lnbmVkIHRvIGNvcnJlY3QKKyAgICAgKiBzY2hlZHVsZXIgYW5kIGNncm91cC4gRm9yIHRoaXMgcHVycG9zZSwgdGhlIG1ldGhvZCByZXR1cm5zIGlkZW50aWZpZXJzCisgICAgICogb2YgdGhlIGRyaXZlciB0aHJlYWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZnJhbWVTaXplIHRoZSBzaXplIG9mIGEgc2luZ2xlIGZyYW1lLCBpbiBieXRlcy4KKyAgICAgKiBAcGFyYW0gZnJhbWVzQ291bnQgdGhlIG51bWJlciBvZiBmcmFtZXMgaW4gYSBidWZmZXIuCisgICAgICogQHJldHVybiByZXR2YWwgT0sgaWYgYm90aCBtZXNzYWdlIHF1ZXVlcyB3ZXJlIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAqICAgICAgICAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgdGhlIG1ldGhvZCB3YXMgYWxyZWFkeSBjYWxsZWQuCisgICAgICogICAgICAgICAgICAgICAgSU5WQUxJRF9BUkdVTUVOVFMgaWYgdGhlcmUgd2FzIGEgcHJvYmxlbSBzZXR0aW5nIHVwCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHF1ZXVlcy4KKyAgICAgKiBAcmV0dXJuIGNvbW1hbmRNUSBhIG1lc3NhZ2UgcXVldWUgdXNlZCBmb3IgcGFzc2luZyBjb21tYW5kcy4KKyAgICAgKiBAcmV0dXJuIGRhdGFNUSBhIG1lc3NhZ2UgcXVldWUgdXNlZCBmb3IgcGFzc2luZyBhdWRpbyBkYXRhIGluIHRoZSBmb3JtYXQKKyAgICAgKiAgICAgICAgICAgICAgICBzcGVjaWZpZWQgYXQgdGhlIHN0cmVhbSBvcGVuaW5nLgorICAgICAqIEByZXR1cm4gc3RhdHVzTVEgYSBtZXNzYWdlIHF1ZXVlIHVzZWQgZm9yIHBhc3Npbmcgc3RhdHVzIGZyb20gdGhlIGRyaXZlcgorICAgICAqICAgICAgICAgICAgICAgICAgdXNpbmcgV3JpdGVTdGF0dXMgc3RydWN0dXJlcy4KKyAgICAgKiBAcmV0dXJuIHRocmVhZEluZm8gaWRlbnRpZmllcnMgb2YgdGhlIGRyaXZlcidzIGRlZGljYXRlZCB0aHJlYWQuCisgICAgICovCisgICAgcHJlcGFyZUZvcldyaXRpbmcodWludDMyX3QgZnJhbWVTaXplLCB1aW50MzJfdCBmcmFtZXNDb3VudCkKKyAgICBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgUmVzdWx0IHJldHZhbCwKKyAgICAgICAgICAgIGZtcV9zeW5jPFdyaXRlQ29tbWFuZD4gY29tbWFuZE1RLAorICAgICAgICAgICAgZm1xX3N5bmM8dWludDhfdD4gZGF0YU1RLAorICAgICAgICAgICAgZm1xX3N5bmM8V3JpdGVTdGF0dXM+IHN0YXR1c01RLAorICAgICAgICAgICAgVGhyZWFkSW5mbyB0aHJlYWRJbmZvKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgbnVtYmVyIG9mIGF1ZGlvIGZyYW1lcyB3cml0dGVuIGJ5IHRoZSBhdWRpbyBEU1AgdG8gREFDIHNpbmNlCisgICAgICogdGhlIG91dHB1dCBoYXMgZXhpdGVkIHN0YW5kYnkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBkc3BGcmFtZXMgbnVtYmVyIG9mIGF1ZGlvIGZyYW1lcyB3cml0dGVuLgorICAgICAqLworICAgIGdldFJlbmRlclBvc2l0aW9uKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCB1aW50MzJfdCBkc3BGcmFtZXMpOworCisgICAgLyoqCisgICAgICogR2V0IHRoZSBsb2NhbCB0aW1lIGF0IHdoaWNoIHRoZSBuZXh0IHdyaXRlIHRvIHRoZSBhdWRpbyBkcml2ZXIgd2lsbCBiZQorICAgICAqIHByZXNlbnRlZC4gVGhlIHVuaXRzIGFyZSBtaWNyb3NlY29uZHMsIHdoZXJlIHRoZSBlcG9jaCBpcyBkZWNpZGVkIGJ5IHRoZQorICAgICAqIGxvY2FsIGF1ZGlvIEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKiBAcmV0dXJuIHRpbWVzdGFtcFVzIHRpbWUgb2YgdGhlIG5leHQgd3JpdGUuCisgICAgICovCisgICAgZ2V0TmV4dFdyaXRlVGltZXN0YW1wKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsLCBpbnQ2NF90IHRpbWVzdGFtcFVzKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2FsbGJhY2sgaW50ZXJmYWNlIGZvciBub3RpZnlpbmcgY29tcGxldGlvbiBvZiBub24tYmxvY2tpbmcKKyAgICAgKiB3cml0ZSBhbmQgZHJhaW4uCisgICAgICoKKyAgICAgKiBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gaW1wbGllcyB0aGF0IGFsbCBmdXR1cmUgJ3dyaXRlJyBhbmQgJ2RyYWluJworICAgICAqIG11c3QgYmUgbm9uLWJsb2NraW5nIGFuZCB1c2UgdGhlIGNhbGxiYWNrIHRvIHNpZ25hbCBjb21wbGV0aW9uLgorICAgICAqCisgICAgICogJ2NsZWFyQ2FsbGJhY2snIG1ldGhvZCBuZWVkcyB0byBiZSBjYWxsZWQgaW4gb3JkZXIgdG8gcmVsZWFzZSB0aGUgbG9jYWwKKyAgICAgKiBjYWxsYmFjayBwcm94eSBvbiB0aGUgc2VydmVyIHNpZGUgYW5kIHRodXMgZGVyZWZlcmVuY2UgdGhlIGNhbGxiYWNrCisgICAgICogaW1wbGVtZW50YXRpb24gb24gdGhlIGNsaWVudCBzaWRlLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElTdHJlYW1PdXRDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIENsZWFycyB0aGUgY2FsbGJhY2sgcHJldmlvdXNseSBzZXQgdmlhICdzZXRDYWxsYmFjaycgbWV0aG9kLgorICAgICAqCisgICAgICogV2FybmluZzogZmFpbHVyZSB0byBjYWxsIHRoaXMgbWV0aG9kIHJlc3VsdHMgaW4gY2FsbGJhY2sgaW1wbGVtZW50YXRpb24KKyAgICAgKiBvbiB0aGUgY2xpZW50IHNpZGUgYmVpbmcgaGVsZCB1bnRpbCB0aGUgSEFMIHNlcnZlciB0ZXJtaW5hdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogT0sgb3IgTk9UX1NVUFBPUlRFRC4KKyAgICAgKi8KKyAgICBjbGVhckNhbGxiYWNrKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciBIQUwgc3VwcG9ydHMgcGF1c2luZyBhbmQgcmVzdW1pbmcgb2Ygc3RyZWFtcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNQYXVzZSB0cnVlIGlmIHBhdXNpbmcgaXMgc3VwcG9ydGVkLgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNSZXN1bWUgdHJ1ZSBpZiByZXN1bWUgaXMgc3VwcG9ydGVkLgorICAgICAqLworICAgIHN1cHBvcnRzUGF1c2VBbmRSZXN1bWUoKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1cHBvcnRzUGF1c2UsIGJvb2wgc3VwcG9ydHNSZXN1bWUpOworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdG8gdGhlIGF1ZGlvIGRyaXZlciB0byBzdG9wIHBsYXliYWNrIGhvd2V2ZXIgdGhlIHF1ZXVlZCBidWZmZXJzCisgICAgICogYXJlIHJldGFpbmVkIGJ5IHRoZSBoYXJkd2FyZS4gVXNlZnVsIGZvciBpbXBsZW1lbnRpbmcgcGF1c2UvcmVzdW1lLiBFbXB0eQorICAgICAqIGltcGxlbWVudGF0aW9uIGlmIG5vdCBzdXBwb3J0ZWQgaG93ZXZlciBtdXN0IGJlIGltcGxlbWVudGVkIGZvciBoYXJkd2FyZQorICAgICAqIHdpdGggbm9uLXRyaXZpYWwgbGF0ZW5jeS4gSW4gdGhlIHBhdXNlIHN0YXRlLCBzb21lIGF1ZGlvIGhhcmR3YXJlIG1heQorICAgICAqIHN0aWxsIGJlIHVzaW5nIHBvd2VyLiBDbGllbnQgY29kZSBtYXkgY29uc2lkZXIgY2FsbGluZyAnc3VzcGVuZCcgYWZ0ZXIgYQorICAgICAqIHRpbWVvdXQgdG8gcHJldmVudCB0aGF0IGV4Y2VzcyBwb3dlciB1c2FnZS4KKyAgICAgKgorICAgICAqIEltcGxlbWVudGF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gaXMgbWFuZGF0b3J5IGZvciBvZmZsb2FkZWQgcGxheWJhY2suCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgICAgICovCisgICAgcGF1c2UoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdG8gdGhlIGF1ZGlvIGRyaXZlciB0byByZXN1bWUgcGxheWJhY2sgZm9sbG93aW5nIGEgcGF1c2UuCisgICAgICogUmV0dXJucyBlcnJvciBJTlZBTElEX1NUQVRFIGlmIGNhbGxlZCB3aXRob3V0IG1hdGNoaW5nIHBhdXNlLgorICAgICAqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBpcyBtYW5kYXRvcnkgZm9yIG9mZmxvYWRlZCBwbGF5YmFjay4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0dmFsIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAgICAgKi8KKyAgICByZXN1bWUoKSBnZW5lcmF0ZXMgKFJlc3VsdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIEhBTCBzdXBwb3J0cyBkcmFpbmluZyBvZiBzdHJlYW1zLgorICAgICAqCisgICAgICogQHJldHVybiBzdXBwb3J0cyB0cnVlIGlmIGRyYWluaW5nIGlzIHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBzdXBwb3J0c0RyYWluKCkgZ2VuZXJhdGVzIChib29sIHN1cHBvcnRzKTsKKworICAgIC8qKgorICAgICAqIFJlcXVlc3RzIG5vdGlmaWNhdGlvbiB3aGVuIGRhdGEgYnVmZmVyZWQgYnkgdGhlIGRyaXZlci9oYXJkd2FyZSBoYXMgYmVlbgorICAgICAqIHBsYXllZC4gSWYgJ3NldENhbGxiYWNrJyBoYXMgcHJldmlvdXNseSBiZWVuIGNhbGxlZCB0byBlbmFibGUKKyAgICAgKiBub24tYmxvY2tpbmcgbW9kZSwgdGhlbiAnZHJhaW4nIG11c3Qgbm90IGJsb2NrLCBpbnN0ZWFkIGl0IG11c3QgcmV0dXJuCisgICAgICogcXVpY2tseSBhbmQgY29tcGxldGlvbiBvZiB0aGUgZHJhaW4gaXMgbm90aWZpZWQgdGhyb3VnaCB0aGUgY2FsbGJhY2suIElmCisgICAgICogJ3NldENhbGxiYWNrJyBoYXMgbm90IGJlZW4gY2FsbGVkLCB0aGVuICdkcmFpbicgbXVzdCBibG9jayB1bnRpbAorICAgICAqIGNvbXBsZXRpb24uCisgICAgICoKKyAgICAgKiBJZiAndHlwZScgaXMgJ0FMTCcsIHRoZSBkcmFpbiBjb21wbGV0ZXMgd2hlbiBhbGwgcHJldmlvdXNseSB3cml0dGVuIGRhdGEKKyAgICAgKiBoYXMgYmVlbiBwbGF5ZWQuCisgICAgICoKKyAgICAgKiBJZiAndHlwZScgaXMgJ0VBUkxZX05PVElGWScsIHRoZSBkcmFpbiBjb21wbGV0ZXMgc2hvcnRseSBiZWZvcmUgYWxsIGRhdGEKKyAgICAgKiBmb3IgdGhlIGN1cnJlbnQgdHJhY2sgaGFzIHBsYXllZCB0byBhbGxvdyB0aW1lIGZvciB0aGUgZnJhbWV3b3JrIHRvCisgICAgICogcGVyZm9ybSBhIGdhcGxlc3MgdHJhY2sgc3dpdGNoLgorICAgICAqCisgICAgICogRHJhaW4gbXVzdCByZXR1cm4gaW1tZWRpYXRlbHkgb24gJ3N0b3AnIGFuZCAnZmx1c2gnIGNhbGxzLgorICAgICAqCisgICAgICogSW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiBpcyBtYW5kYXRvcnkgZm9yIG9mZmxvYWRlZCBwbGF5YmFjay4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlIHR5cGUgb2YgZHJhaW4uCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIGRyYWluKEF1ZGlvRHJhaW4gdHlwZSkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRvIHRoZSBhdWRpbyBkcml2ZXIgdG8gZmx1c2ggdGhlIHF1ZXVlZCBkYXRhLiBTdHJlYW0gbXVzdAorICAgICAqIGFscmVhZHkgYmUgcGF1c2VkIGJlZm9yZSBjYWxsaW5nICdmbHVzaCcuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIGlzIG1hbmRhdG9yeSBmb3Igb2ZmbG9hZGVkIHBsYXliYWNrLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqLworICAgIGZsdXNoKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHJlY2VudCBjb3VudCBvZiB0aGUgbnVtYmVyIG9mIGF1ZGlvIGZyYW1lcyBwcmVzZW50ZWQgdG8gYW4KKyAgICAgKiBleHRlcm5hbCBvYnNlcnZlci4gVGhpcyBleGNsdWRlcyBmcmFtZXMgd2hpY2ggaGF2ZSBiZWVuIHdyaXR0ZW4gYnV0IGFyZQorICAgICAqIHN0aWxsIGluIHRoZSBwaXBlbGluZS4gVGhlIGNvdW50IGlzIG5vdCByZXNldCB0byB6ZXJvIHdoZW4gb3V0cHV0IGVudGVycworICAgICAqIHN0YW5kYnkuIEFsc28gcmV0dXJucyB0aGUgdmFsdWUgb2YgQ0xPQ0tfTU9OT1RPTklDIGFzIG9mIHRoaXMKKyAgICAgKiBwcmVzZW50YXRpb24gY291bnQuIFRoZSByZXR1cm5lZCBjb3VudCBpcyBleHBlY3RlZCB0byBiZSAncmVjZW50JywgYnV0CisgICAgICogZG9lcyBub3QgbmVlZCB0byBiZSB0aGUgbW9zdCByZWNlbnQgcG9zc2libGUgdmFsdWUuIEhvd2V2ZXIsIHRoZQorICAgICAqIGFzc29jaWF0ZWQgdGltZSBtdXN0IGNvcnJlc3BvbmQgdG8gd2hhdGV2ZXIgY291bnQgaXMgcmV0dXJuZWQuCisgICAgICoKKyAgICAgKiBFeGFtcGxlOiBhc3N1bWUgdGhhdCBOK00gZnJhbWVzIGhhdmUgYmVlbiBwcmVzZW50ZWQsIHdoZXJlIE0gaXMgYSAnc21hbGwnCisgICAgICogbnVtYmVyLiBUaGVuIGl0IGlzIHBlcm1pc3NpYmxlIHRvIHJldHVybiBOIGluc3RlYWQgb2YgTitNLCBhbmQgdGhlCisgICAgICogdGltZXN0YW1wIG11c3QgY29ycmVzcG9uZCB0byBOIHJhdGhlciB0aGFuIE4rTS4gVGhlIHRlcm1zICdyZWNlbnQnIGFuZAorICAgICAqICdzbWFsbCcgYXJlIG5vdCBkZWZpbmVkLiBUaGV5IHJlZmxlY3QgdGhlIHF1YWxpdHkgb2YgdGhlIGltcGxlbWVudGF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiByZXR2YWwgb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICAgICAqIEByZXR1cm4gZnJhbWVzIGNvdW50IG9mIHByZXNlbnRlZCBhdWRpbyBmcmFtZXMuCisgICAgICogQHJldHVybiB0aW1lU3RhbXAgYXNzb2NpYXRlZCBjbG9jayB0aW1lLgorICAgICAqLworICAgIGdldFByZXNlbnRhdGlvblBvc2l0aW9uKCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJldHZhbCwgdWludDY0X3QgZnJhbWVzLCBUaW1lU3BlYyB0aW1lU3RhbXApOworfTsKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9JU3RyZWFtT3V0Q2FsbGJhY2suaGFsIGIvYXVkaW8vMi4wL0lTdHJlYW1PdXRDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFlMTIzYwotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9JU3RyZWFtT3V0Q2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOworCisvKioKKyAqIEFzeW5jaHJvbm91cyB3cml0ZSBjYWxsYmFjayBpbnRlcmZhY2UuCisgKi8KK2ludGVyZmFjZSBJU3RyZWFtT3V0Q2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIE5vbiBibG9ja2luZyB3cml0ZSBjb21wbGV0ZWQuCisgICAgICovCisgICAgb25ld2F5IG9uV3JpdGVSZWFkeSgpOworCisgICAgLyoqCisgICAgICogRHJhaW4gY29tcGxldGVkLgorICAgICAqLworICAgIG9uZXdheSBvbkRyYWluUmVhZHkoKTsKKworICAgIC8qKgorICAgICAqIFN0cmVhbSBoaXQgYW4gZXJyb3IuCisgICAgICovCisgICAgb25ld2F5IG9uRXJyb3IoKTsKK307CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvYXVkaW8vMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjE4NTNjCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDkxIEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAtaW1wbAorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIENvbnZlcnNpb25zLmNwcCBcCisgICAgRGV2aWNlLmNwcCBcCisgICAgRGV2aWNlc0ZhY3RvcnkuY3BwIFwKKyAgICBQYXJhbWV0ZXJzVXRpbC5jcHAgXAorICAgIFByaW1hcnlEZXZpY2UuY3BwIFwKKyAgICBTdHJlYW0uY3BwIFwKKyAgICBTdHJlYW1Jbi5jcHAgXAorICAgIFN0cmVhbU91dC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmZtcSBcCisgICAgbGliaGFyZHdhcmUgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAtdXRpbCBcCisKK0xPQ0FMX0hFQURFUl9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmF1ZGlvY2xpZW50X2hlYWRlcnMgXAorICAgIGxpYmF1ZGlvX3N5c3RlbV9oZWFkZXJzIFwKKyAgICBsaWJoYXJkd2FyZV9oZWFkZXJzIFwKKyAgICBsaWJtZWRpYV9oZWFkZXJzIFwKKworTE9DQUxfV0hPTEVfU1RBVElDX0xJQlJBUklFUyA6PSBsaWJtZWRpYV9oZWxwZXIKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCisjCisjIFNlcnZpY2UKKyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlLnJjCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjAgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjAgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4xCisKK2lmZXEgKCQoc3RyaXAgJChBVURJT1NFUlZFUl9NVUxUSUxJQikpLCkKK0xPQ0FMX01VTFRJTElCIDo9IDMyCitlbHNlCitMT0NBTF9NVUxUSUxJQiA6PSAkKEFVRElPU0VSVkVSX01VTFRJTElCKQorZW5kaWYKKworaWZlcSAoJChUQVJHRVRfVVNFU19CQ1JBRElPX0ZVVFVSRV9GRUFUVVJFUyksdHJ1ZSkKK0xPQ0FMX0NGTEFHUyArPSAtRFRBUkdFVF9VU0VTX0JDUkFESU9fRlVUVVJFX0ZFQVRVUkVTCitlbmRpZgorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmNwcCBiL2F1ZGlvLzIuMC9kZWZhdWx0L0NvbnZlcnNpb25zLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjY5MTg1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKworI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RkOjpzdHJpbmcgZGV2aWNlQWRkcmVzc1RvSGFsKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpIHsKKyAgICAvLyBIQUwgYXNzdW1lcyB0aGF0IHRoZSBhZGRyZXNzIGlzIE5VTC10ZXJtaW5hdGVkLgorICAgIGNoYXIgaGFsQWRkcmVzc1tBVURJT19ERVZJQ0VfTUFYX0FERFJFU1NfTEVOXTsKKyAgICBtZW1zZXQoaGFsQWRkcmVzcywgMCwgc2l6ZW9mKGhhbEFkZHJlc3MpKTsKKyAgICB1aW50MzJfdCBoYWxEZXZpY2UgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oYWRkcmVzcy5kZXZpY2UpOworICAgIGNvbnN0IGJvb2wgaXNJbnB1dCA9IChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfQklUX0lOKSAhPSAwOworICAgIGlmIChpc0lucHV0KSBoYWxEZXZpY2UgJj0gfkFVRElPX0RFVklDRV9CSVRfSU47CisgICAgaWYgKCghaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX09VVF9BTExfQTJEUCkgIT0gMCkKKyAgICAgICAgICAgIHx8IChpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfSU5fQkxVRVRPT1RIX0EyRFApICE9IDApKSB7CisgICAgICAgIHNucHJpbnRmKGhhbEFkZHJlc3MsIHNpemVvZihoYWxBZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAiJTAyWDolMDJYOiUwMlg6JTAyWDolMDJYOiUwMlgiLAorICAgICAgICAgICAgICAgIGFkZHJlc3MuYWRkcmVzcy5tYWNbMF0sIGFkZHJlc3MuYWRkcmVzcy5tYWNbMV0sIGFkZHJlc3MuYWRkcmVzcy5tYWNbMl0sCisgICAgICAgICAgICAgICAgYWRkcmVzcy5hZGRyZXNzLm1hY1szXSwgYWRkcmVzcy5hZGRyZXNzLm1hY1s0XSwgYWRkcmVzcy5hZGRyZXNzLm1hY1s1XSk7CisgICAgfSBlbHNlIGlmICgoIWlzSW5wdXQgJiYgKGhhbERldmljZSAmIEFVRElPX0RFVklDRV9PVVRfSVApICE9IDApCisgICAgICAgICAgICB8fCAoaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX0lOX0lQKSAhPSAwKSkgeworICAgICAgICBzbnByaW50ZihoYWxBZGRyZXNzLCBzaXplb2YoaGFsQWRkcmVzcyksCisgICAgICAgICAgICAgICAgIiVkLiVkLiVkLiVkIiwKKyAgICAgICAgICAgICAgICBhZGRyZXNzLmFkZHJlc3MuaXB2NFswXSwgYWRkcmVzcy5hZGRyZXNzLmlwdjRbMV0sCisgICAgICAgICAgICAgICAgYWRkcmVzcy5hZGRyZXNzLmlwdjRbMl0sIGFkZHJlc3MuYWRkcmVzcy5pcHY0WzNdKTsKKyAgICB9IGVsc2UgaWYgKCghaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX09VVF9BTExfVVNCKSAhPSAwKQorICAgICAgICAgICAgfHwgKGlzSW5wdXQgJiYgKGhhbERldmljZSAmIEFVRElPX0RFVklDRV9JTl9BTExfVVNCKSAhPSAwKSkgeworICAgICAgICBzbnByaW50ZihoYWxBZGRyZXNzLCBzaXplb2YoaGFsQWRkcmVzcyksCisgICAgICAgICAgICAgICAgImNhcmQ9JWQ7ZGV2aWNlPSVkIiwKKyAgICAgICAgICAgICAgICBhZGRyZXNzLmFkZHJlc3MuYWxzYS5jYXJkLCBhZGRyZXNzLmFkZHJlc3MuYWxzYS5kZXZpY2UpOworICAgIH0gZWxzZSBpZiAoKCFpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfT1VUX0JVUykgIT0gMCkKKyAgICAgICAgICAgIHx8IChpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfSU5fQlVTKSAhPSAwKSkgeworICAgICAgICBzbnByaW50ZihoYWxBZGRyZXNzLCBzaXplb2YoaGFsQWRkcmVzcyksCisgICAgICAgICAgICAgICAgIiVzIiwgYWRkcmVzcy5idXNBZGRyZXNzLmNfc3RyKCkpOworICAgIH0gZWxzZSBpZiAoKCFpc0lucHV0ICYmIChoYWxEZXZpY2UgJiBBVURJT19ERVZJQ0VfT1VUX1JFTU9URV9TVUJNSVgpKSAhPSAwCisgICAgICAgICAgICB8fCAoaXNJbnB1dCAmJiAoaGFsRGV2aWNlICYgQVVESU9fREVWSUNFX0lOX1JFTU9URV9TVUJNSVgpICE9IDApKSB7CisgICAgICAgIHNucHJpbnRmKGhhbEFkZHJlc3MsIHNpemVvZihoYWxBZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAiJXMiLCBhZGRyZXNzLnJTdWJtaXhBZGRyZXNzLmNfc3RyKCkpOworICAgIH0KKyAgICByZXR1cm4gaGFsQWRkcmVzczsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9Db252ZXJzaW9ucy5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmRhNWM1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvQ29udmVyc2lvbnMuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfQ29udmVyc2lvbnNfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdWRpb19WMl8wX0NvbnZlcnNpb25zX0hfCisKKyNpbmNsdWRlIDxzdHJpbmc+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpby5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpEZXZpY2VBZGRyZXNzOworCitzdGQ6OnN0cmluZyBkZXZpY2VBZGRyZXNzVG9IYWwoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcyk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9Db252ZXJzaW9uc19IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlLmNwcCBiL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjgwZDMyMAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZS5jcHAKQEAgLTAsMCArMSwzNzIgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisqCisqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKgorKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorKgorKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorKi8KKworI2RlZmluZSBMT0dfVEFHICJEZXZpY2VIQUwiCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDxtZW1vcnkuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisjaW5jbHVkZSAiRGV2aWNlLmgiCisjaW5jbHVkZSAiSGlkbFV0aWxzLmgiCisjaW5jbHVkZSAiU3RyZWFtSW4uaCIKKyNpbmNsdWRlICJTdHJlYW1PdXQuaCIKKyNpbmNsdWRlICJVdGlsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgRGlhZ25vc3RpY3MgeworICAgcHVibGljOgorICAgIHN0YXRpYyBEaWFnbm9zdGljcyYgZ2V0SW5zdGFuY2UoKSB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBfKG1Mb2NrKTsKKyAgICAgICAgaWYgKG1JbnN0YW5jZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBtSW5zdGFuY2UgPSBuZXcgRGlhZ25vc3RpY3M7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICptSW5zdGFuY2U7CisgICAgfQorCisgICAgdm9pZCByZWdpc3RlckRldmljZShEZXZpY2UqIGRldikgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gXyhtTG9jayk7CisgICAgICAgIG1EZXZpY2VzLnB1c2hfYmFjayh3cDxEZXZpY2U+KGRldikpOworICAgIH0KKworICAgIHZvaWQgY2hlY2tGb3JFcmFzZWRIYWxDYmxrKGNvbnN0IERldmljZSogZGV2KSB7CisgICAgICAgIGlmIChkZXYtPnZlcnNpb24oKSAhPSAwKSByZXR1cm47ICAvLyBhbGwgT0sKKworICAgICAgICBzdGQ6Om9zdHJpbmdzdHJlYW0gc3M7CisgICAgICAgIHNzIDw8ICJaZXJvIEhBTCBDQiBmb3IgIiA8PCBkZXYtPnR5cGUoKSA8PCAiOiIgPDwgc3RkOjpoZXgKKyAgICAgICAgICAgPDwgZGV2LT5kZXZpY2UoKSA8PCAiOyBPdGhlcnM6ICI7CisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBfKG1Mb2NrKTsKKyAgICAgICAgICAgIGZvciAoYXV0byB3cCA6IG1EZXZpY2VzKSB7CisgICAgICAgICAgICAgICAgc3A8RGV2aWNlPiBvdGhlcnt3cC5wcm9tb3RlKCl9OworICAgICAgICAgICAgICAgIGlmIChvdGhlci5nZXQoKSA9PSBudWxscHRyIHx8IG90aGVyLmdldCgpID09IGRldikgY29udGludWU7CisgICAgICAgICAgICAgICAgc3MgPDwgb3RoZXItPnR5cGUoKSA8PCAiOiIgPDwgb3RoZXItPnZlcnNpb24oKSA8PCAiOiIKKyAgICAgICAgICAgICAgICAgICA8PCBzdGQ6OmhleCA8PCBvdGhlci0+ZGV2aWNlKCkgPDwgIjsgIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBBTE9HRSgiJXMiLCBzcy5zdHIoKS5jX3N0cigpKTsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgRGlhZ25vc3RpY3MoKSB7fQorCisgICAgc3RhdGljIHN0ZDo6bXV0ZXggbUxvY2s7CisgICAgc3RhdGljIERpYWdub3N0aWNzKiBtSW5zdGFuY2U7CisgICAgc3RkOjp2ZWN0b3I8d3A8RGV2aWNlPj4gbURldmljZXM7Cit9OworCitzdGQ6Om11dGV4IERpYWdub3N0aWNzOjptTG9jazsKK0RpYWdub3N0aWNzKiBEaWFnbm9zdGljczo6bUluc3RhbmNle251bGxwdHJ9OworCit9ICAvLyBuYW1lc3BhY2UKKworRGV2aWNlOjpEZXZpY2UoYXVkaW9faHdfZGV2aWNlX3QqIGRldmljZSwgY29uc3QgY2hhciogdHlwZSkKKyAgICA6IG1EZXZpY2V7ZGV2aWNlfSwgbVR5cGV7dHlwZX0geworICAgIERpYWdub3N0aWNzOjpnZXRJbnN0YW5jZSgpLnJlZ2lzdGVyRGV2aWNlKHRoaXMpOworfQorCitEZXZpY2U6On5EZXZpY2UoKSB7CisgICAgaW50IHN0YXR1cyA9IGF1ZGlvX2h3X2RldmljZV9jbG9zZShtRGV2aWNlKTsKKyAgICBBTE9HV19JRihzdGF0dXMsICJFcnJvciBjbG9zaW5nIGF1ZGlvIGh3IGRldmljZSAlcDogJXMiLCBtRGV2aWNlLAorICAgICAgICAgICAgIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICBtRGV2aWNlID0gbnVsbHB0cjsKK30KKworUmVzdWx0IERldmljZTo6YW5hbHl6ZVN0YXR1cyhjb25zdCBjaGFyKiBmdW5jTmFtZSwgaW50IHN0YXR1cykgeworICAgIGlmIChzdGF0dXMgIT0gMCkgeworICAgICAgICBBTE9HVygiRGV2aWNlICVwICVzOiAlcyIsIG1EZXZpY2UsIGZ1bmNOYW1lLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgfQorICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgY2FzZSAtRU5PREFUQToKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfU1RBVEU7CisgICAgICAgIGNhc2UgLUVOT0RFVjoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgY2FzZSAtRU5PU1lTOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfU1RBVEU7CisgICAgfQorfQorCit2b2lkIERldmljZTo6Y2xvc2VJbnB1dFN0cmVhbShhdWRpb19zdHJlYW1faW5fdCogc3RyZWFtKSB7CisgICAgbURldmljZS0+Y2xvc2VfaW5wdXRfc3RyZWFtKG1EZXZpY2UsIHN0cmVhbSk7Cit9CisKK3ZvaWQgRGV2aWNlOjpjbG9zZU91dHB1dFN0cmVhbShhdWRpb19zdHJlYW1fb3V0X3QqIHN0cmVhbSkgeworICAgIG1EZXZpY2UtPmNsb3NlX291dHB1dF9zdHJlYW0obURldmljZSwgc3RyZWFtKTsKK30KKworY2hhciogRGV2aWNlOjpoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpIHsKKyAgICBEaWFnbm9zdGljczo6Z2V0SW5zdGFuY2UoKS5jaGVja0ZvckVyYXNlZEhhbENibGsodGhpcyk7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldF9wYXJhbWV0ZXJzKG1EZXZpY2UsIGtleXMpOworfQorCitpbnQgRGV2aWNlOjpoYWxTZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXNBbmRWYWx1ZXMpIHsKKyAgICBEaWFnbm9zdGljczo6Z2V0SW5zdGFuY2UoKS5jaGVja0ZvckVyYXNlZEhhbENibGsodGhpcyk7CisgICAgcmV0dXJuIG1EZXZpY2UtPnNldF9wYXJhbWV0ZXJzKG1EZXZpY2UsIGtleXNBbmRWYWx1ZXMpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2UgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gRGV2aWNlOjppbml0Q2hlY2soKSB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoImluaXRfY2hlY2siLCBtRGV2aWNlLT5pbml0X2NoZWNrKG1EZXZpY2UpKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRGV2aWNlOjpzZXRNYXN0ZXJWb2x1bWUoZmxvYXQgdm9sdW1lKSB7CisgICAgaWYgKG1EZXZpY2UtPnNldF9tYXN0ZXJfdm9sdW1lID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKCFpc0dhaW5Ob3JtYWxpemVkKHZvbHVtZSkpIHsKKyAgICAgICAgQUxPR1coIkNhbiBub3Qgc2V0IGEgbWFzdGVyIHZvbHVtZSAoJWYpIG91dHNpZGUgWzAsMV0iLCB2b2x1bWUpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoInNldF9tYXN0ZXJfdm9sdW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5zZXRfbWFzdGVyX3ZvbHVtZShtRGV2aWNlLCB2b2x1bWUpKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0TWFzdGVyVm9sdW1lKGdldE1hc3RlclZvbHVtZV9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBmbG9hdCB2b2x1bWUgPSAwOworICAgIGlmIChtRGV2aWNlLT5nZXRfbWFzdGVyX3ZvbHVtZSAhPSBOVUxMKSB7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVTdGF0dXMoImdldF9tYXN0ZXJfdm9sdW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5nZXRfbWFzdGVyX3ZvbHVtZShtRGV2aWNlLCAmdm9sdW1lKSk7CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgdm9sdW1lKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEZXZpY2U6OnNldE1pY011dGUoYm9vbCBtdXRlKSB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoInNldF9taWNfbXV0ZSIsIG1EZXZpY2UtPnNldF9taWNfbXV0ZShtRGV2aWNlLCBtdXRlKSk7Cit9CisKK1JldHVybjx2b2lkPiBEZXZpY2U6OmdldE1pY011dGUoZ2V0TWljTXV0ZV9jYiBfaGlkbF9jYikgeworICAgIGJvb2wgbXV0ZSA9IGZhbHNlOworICAgIFJlc3VsdCByZXR2YWwgPQorICAgICAgICBhbmFseXplU3RhdHVzKCJnZXRfbWljX211dGUiLCBtRGV2aWNlLT5nZXRfbWljX211dGUobURldmljZSwgJm11dGUpKTsKKyAgICBfaGlkbF9jYihyZXR2YWwsIG11dGUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IERldmljZTo6c2V0TWFzdGVyTXV0ZShib29sIG11dGUpIHsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgaWYgKG1EZXZpY2UtPnNldF9tYXN0ZXJfbXV0ZSAhPSBOVUxMKSB7CisgICAgICAgIHJldHZhbCA9IGFuYWx5emVTdGF0dXMoInNldF9tYXN0ZXJfbXV0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbURldmljZS0+c2V0X21hc3Rlcl9tdXRlKG1EZXZpY2UsIG11dGUpKTsKKyAgICB9CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0TWFzdGVyTXV0ZShnZXRNYXN0ZXJNdXRlX2NiIF9oaWRsX2NiKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIGJvb2wgbXV0ZSA9IGZhbHNlOworICAgIGlmIChtRGV2aWNlLT5nZXRfbWFzdGVyX211dGUgIT0gTlVMTCkgeworICAgICAgICByZXR2YWwgPSBhbmFseXplU3RhdHVzKCJnZXRfbWFzdGVyX211dGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1EZXZpY2UtPmdldF9tYXN0ZXJfbXV0ZShtRGV2aWNlLCAmbXV0ZSkpOworICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIG11dGUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBEZXZpY2U6OmdldElucHV0QnVmZmVyU2l6ZShjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldElucHV0QnVmZmVyU2l6ZV9jYiBfaGlkbF9jYikgeworICAgIGF1ZGlvX2NvbmZpZ190IGhhbENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnVG9IYWwoY29uZmlnLCAmaGFsQ29uZmlnKTsKKyAgICBzaXplX3QgaGFsQnVmZmVyU2l6ZSA9IG1EZXZpY2UtPmdldF9pbnB1dF9idWZmZXJfc2l6ZShtRGV2aWNlLCAmaGFsQ29uZmlnKTsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgIHVpbnQ2NF90IGJ1ZmZlclNpemUgPSAwOworICAgIGlmIChoYWxCdWZmZXJTaXplICE9IDApIHsKKyAgICAgICAgcmV0dmFsID0gUmVzdWx0OjpPSzsKKyAgICAgICAgYnVmZmVyU2l6ZSA9IGhhbEJ1ZmZlclNpemU7CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgYnVmZmVyU2l6ZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6b3Blbk91dHB1dFN0cmVhbShpbnQzMl90IGlvSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBEZXZpY2VBZGRyZXNzJiBkZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbk91dHB1dFN0cmVhbV9jYiBfaGlkbF9jYikgeworICAgIGF1ZGlvX2NvbmZpZ190IGhhbENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnVG9IYWwoY29uZmlnLCAmaGFsQ29uZmlnKTsKKyAgICBhdWRpb19zdHJlYW1fb3V0X3QqIGhhbFN0cmVhbTsKKyAgICBBTE9HVigKKyAgICAgICAgIm9wZW5fb3V0cHV0X3N0cmVhbSBoYW5kbGU6ICVkIGRldmljZXM6ICV4IGZsYWdzOiAlI3ggIgorICAgICAgICAic3JhdGU6ICVkIGZvcm1hdCAlI3ggY2hhbm5lbHMgJXggYWRkcmVzcyAlcyIsCisgICAgICAgIGlvSGFuZGxlLCBzdGF0aWNfY2FzdDxhdWRpb19kZXZpY2VzX3Q+KGRldmljZS5kZXZpY2UpLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19vdXRwdXRfZmxhZ3NfdD4oZmxhZ3MpLCBoYWxDb25maWcuc2FtcGxlX3JhdGUsCisgICAgICAgIGhhbENvbmZpZy5mb3JtYXQsIGhhbENvbmZpZy5jaGFubmVsX21hc2ssCisgICAgICAgIGRldmljZUFkZHJlc3NUb0hhbChkZXZpY2UpLmNfc3RyKCkpOworICAgIGludCBzdGF0dXMgPSBtRGV2aWNlLT5vcGVuX291dHB1dF9zdHJlYW0oCisgICAgICAgIG1EZXZpY2UsIGlvSGFuZGxlLCBzdGF0aWNfY2FzdDxhdWRpb19kZXZpY2VzX3Q+KGRldmljZS5kZXZpY2UpLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19vdXRwdXRfZmxhZ3NfdD4oZmxhZ3MpLCAmaGFsQ29uZmlnLCAmaGFsU3RyZWFtLAorICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoZGV2aWNlKS5jX3N0cigpKTsKKyAgICBBTE9HVigib3Blbl9vdXRwdXRfc3RyZWFtIHN0YXR1cyAlZCBzdHJlYW0gJXAiLCBzdGF0dXMsIGhhbFN0cmVhbSk7CisgICAgc3A8SVN0cmVhbU91dD4gc3RyZWFtT3V0OworICAgIGlmIChzdGF0dXMgPT0gT0spIHsKKyAgICAgICAgc3RyZWFtT3V0ID0gbmV3IFN0cmVhbU91dCh0aGlzLCBoYWxTdHJlYW0pOworICAgIH0KKyAgICBBdWRpb0NvbmZpZyBzdWdnZXN0ZWRDb25maWc7CisgICAgSGlkbFV0aWxzOjphdWRpb0NvbmZpZ0Zyb21IYWwoaGFsQ29uZmlnLCAmc3VnZ2VzdGVkQ29uZmlnKTsKKyAgICBfaGlkbF9jYihhbmFseXplU3RhdHVzKCJvcGVuX291dHB1dF9zdHJlYW0iLCBzdGF0dXMpLCBzdHJlYW1PdXQsCisgICAgICAgICAgICAgc3VnZ2VzdGVkQ29uZmlnKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gRGV2aWNlOjpvcGVuSW5wdXRTdHJlYW0oaW50MzJfdCBpb0hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBEZXZpY2VBZGRyZXNzJiBkZXZpY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb0lucHV0RmxhZyBmbGFncywgQXVkaW9Tb3VyY2Ugc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5JbnB1dFN0cmVhbV9jYiBfaGlkbF9jYikgeworICAgIGF1ZGlvX2NvbmZpZ190IGhhbENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnVG9IYWwoY29uZmlnLCAmaGFsQ29uZmlnKTsKKyAgICBhdWRpb19zdHJlYW1faW5fdCogaGFsU3RyZWFtOworICAgIEFMT0dWKAorICAgICAgICAib3Blbl9pbnB1dF9zdHJlYW0gaGFuZGxlOiAlZCBkZXZpY2VzOiAleCBmbGFnczogJSN4ICIKKyAgICAgICAgInNyYXRlOiAlZCBmb3JtYXQgJSN4IGNoYW5uZWxzICV4IGFkZHJlc3MgJXMgc291cmNlICVkIiwKKyAgICAgICAgaW9IYW5kbGUsIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oZGV2aWNlLmRldmljZSksCisgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2lucHV0X2ZsYWdzX3Q+KGZsYWdzKSwgaGFsQ29uZmlnLnNhbXBsZV9yYXRlLAorICAgICAgICBoYWxDb25maWcuZm9ybWF0LCBoYWxDb25maWcuY2hhbm5lbF9tYXNrLAorICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoZGV2aWNlKS5jX3N0cigpLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19zb3VyY2VfdD4oc291cmNlKSk7CisgICAgaW50IHN0YXR1cyA9IG1EZXZpY2UtPm9wZW5faW5wdXRfc3RyZWFtKAorICAgICAgICBtRGV2aWNlLCBpb0hhbmRsZSwgc3RhdGljX2Nhc3Q8YXVkaW9fZGV2aWNlc190PihkZXZpY2UuZGV2aWNlKSwKKyAgICAgICAgJmhhbENvbmZpZywgJmhhbFN0cmVhbSwgc3RhdGljX2Nhc3Q8YXVkaW9faW5wdXRfZmxhZ3NfdD4oZmxhZ3MpLAorICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoZGV2aWNlKS5jX3N0cigpLAorICAgICAgICBzdGF0aWNfY2FzdDxhdWRpb19zb3VyY2VfdD4oc291cmNlKSk7CisgICAgQUxPR1YoIm9wZW5faW5wdXRfc3RyZWFtIHN0YXR1cyAlZCBzdHJlYW0gJXAiLCBzdGF0dXMsIGhhbFN0cmVhbSk7CisgICAgc3A8SVN0cmVhbUluPiBzdHJlYW1JbjsKKyAgICBpZiAoc3RhdHVzID09IE9LKSB7CisgICAgICAgIHN0cmVhbUluID0gbmV3IFN0cmVhbUluKHRoaXMsIGhhbFN0cmVhbSk7CisgICAgfQorICAgIEF1ZGlvQ29uZmlnIHN1Z2dlc3RlZENvbmZpZzsKKyAgICBIaWRsVXRpbHM6OmF1ZGlvQ29uZmlnRnJvbUhhbChoYWxDb25maWcsICZzdWdnZXN0ZWRDb25maWcpOworICAgIF9oaWRsX2NiKGFuYWx5emVTdGF0dXMoIm9wZW5faW5wdXRfc3RyZWFtIiwgc3RhdHVzKSwgc3RyZWFtSW4sCisgICAgICAgICAgICAgc3VnZ2VzdGVkQ29uZmlnKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gRGV2aWNlOjpzdXBwb3J0c0F1ZGlvUGF0Y2hlcygpIHsKKyAgICByZXR1cm4gdmVyc2lvbigpID49IEFVRElPX0RFVklDRV9BUElfVkVSU0lPTl8zXzA7Cit9CisKK1JldHVybjx2b2lkPiBEZXZpY2U6OmNyZWF0ZUF1ZGlvUGF0Y2goY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc291cmNlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc2lua3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZUF1ZGlvUGF0Y2hfY2IgX2hpZGxfY2IpIHsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgQXVkaW9QYXRjaEhhbmRsZSBwYXRjaCA9IDA7CisgICAgaWYgKHZlcnNpb24oKSA+PSBBVURJT19ERVZJQ0VfQVBJX1ZFUlNJT05fM18wKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxhdWRpb19wb3J0X2NvbmZpZ1tdPiBoYWxTb3VyY2VzKAorICAgICAgICAgICAgSGlkbFV0aWxzOjphdWRpb1BvcnRDb25maWdzVG9IYWwoc291cmNlcykpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8YXVkaW9fcG9ydF9jb25maWdbXT4gaGFsU2lua3MoCisgICAgICAgICAgICBIaWRsVXRpbHM6OmF1ZGlvUG9ydENvbmZpZ3NUb0hhbChzaW5rcykpOworICAgICAgICBhdWRpb19wYXRjaF9oYW5kbGVfdCBoYWxQYXRjaCA9IEFVRElPX1BBVENIX0hBTkRMRV9OT05FOworICAgICAgICByZXR2YWwgPSBhbmFseXplU3RhdHVzKAorICAgICAgICAgICAgImNyZWF0ZV9hdWRpb19wYXRjaCIsCisgICAgICAgICAgICBtRGV2aWNlLT5jcmVhdGVfYXVkaW9fcGF0Y2gobURldmljZSwgc291cmNlcy5zaXplKCksICZoYWxTb3VyY2VzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpbmtzLnNpemUoKSwgJmhhbFNpbmtzWzBdLCAmaGFsUGF0Y2gpKTsKKyAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICBwYXRjaCA9IHN0YXRpY19jYXN0PEF1ZGlvUGF0Y2hIYW5kbGU+KGhhbFBhdGNoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIHBhdGNoKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEZXZpY2U6OnJlbGVhc2VBdWRpb1BhdGNoKGludDMyX3QgcGF0Y2gpIHsKKyAgICBpZiAodmVyc2lvbigpID49IEFVRElPX0RFVklDRV9BUElfVkVSU0lPTl8zXzApIHsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAicmVsZWFzZV9hdWRpb19wYXRjaCIsCisgICAgICAgICAgICBtRGV2aWNlLT5yZWxlYXNlX2F1ZGlvX3BhdGNoKAorICAgICAgICAgICAgICAgIG1EZXZpY2UsIHN0YXRpY19jYXN0PGF1ZGlvX3BhdGNoX2hhbmRsZV90PihwYXRjaCkpKTsKKyAgICB9CisgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0QXVkaW9Qb3J0KGNvbnN0IEF1ZGlvUG9ydCYgcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRBdWRpb1BvcnRfY2IgX2hpZGxfY2IpIHsKKyAgICBhdWRpb19wb3J0IGhhbFBvcnQ7CisgICAgSGlkbFV0aWxzOjphdWRpb1BvcnRUb0hhbChwb3J0LCAmaGFsUG9ydCk7CisgICAgUmVzdWx0IHJldHZhbCA9IGFuYWx5emVTdGF0dXMoImdldF9hdWRpb19wb3J0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5nZXRfYXVkaW9fcG9ydChtRGV2aWNlLCAmaGFsUG9ydCkpOworICAgIEF1ZGlvUG9ydCByZXN1bHRQb3J0ID0gcG9ydDsKKyAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgSGlkbFV0aWxzOjphdWRpb1BvcnRGcm9tSGFsKGhhbFBvcnQsICZyZXN1bHRQb3J0KTsKKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCByZXN1bHRQb3J0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBEZXZpY2U6OnNldEF1ZGlvUG9ydENvbmZpZyhjb25zdCBBdWRpb1BvcnRDb25maWcmIGNvbmZpZykgeworICAgIGlmICh2ZXJzaW9uKCkgPj0gQVVESU9fREVWSUNFX0FQSV9WRVJTSU9OXzNfMCkgeworICAgICAgICBzdHJ1Y3QgYXVkaW9fcG9ydF9jb25maWcgaGFsUG9ydENvbmZpZzsKKyAgICAgICAgSGlkbFV0aWxzOjphdWRpb1BvcnRDb25maWdUb0hhbChjb25maWcsICZoYWxQb3J0Q29uZmlnKTsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAic2V0X2F1ZGlvX3BvcnRfY29uZmlnIiwKKyAgICAgICAgICAgIG1EZXZpY2UtPnNldF9hdWRpb19wb3J0X2NvbmZpZyhtRGV2aWNlLCAmaGFsUG9ydENvbmZpZykpOworICAgIH0KKyAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCitSZXR1cm48QXVkaW9Id1N5bmM+IERldmljZTo6Z2V0SHdBdlN5bmMoKSB7CisgICAgaW50IGhhbEh3QXZTeW5jOworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5SHdBdlN5bmMsICZoYWxId0F2U3luYyk7CisgICAgcmV0dXJuIHJldHZhbCA9PSBSZXN1bHQ6Ok9LID8gaGFsSHdBdlN5bmMgOiBBVURJT19IV19TWU5DX0lOVkFMSUQ7Cit9CisKK1JldHVybjxSZXN1bHQ+IERldmljZTo6c2V0U2NyZWVuU3RhdGUoYm9vbCB0dXJuZWRPbikgeworICAgIHJldHVybiBzZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5U2NyZWVuU3RhdGUsIHR1cm5lZE9uKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6Z2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFBhcmFtZXRlcnNfY2IgX2hpZGxfY2IpIHsKKyAgICBnZXRQYXJhbWV0ZXJzSW1wbChrZXlzLCBfaGlkbF9jYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gRGV2aWNlOjpzZXRQYXJhbWV0ZXJzKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIHJldHVybiBzZXRQYXJhbWV0ZXJzSW1wbChwYXJhbWV0ZXJzKTsKK30KKworUmV0dXJuPHZvaWQ+IERldmljZTo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgeworICAgIGlmIChmZC5nZXROYXRpdmVIYW5kbGUoKSAhPSBudWxscHRyICYmIGZkLT5udW1GZHMgPT0gMSkgeworICAgICAgICBhbmFseXplU3RhdHVzKCJkdW1wIiwgbURldmljZS0+ZHVtcChtRGV2aWNlLCBmZC0+ZGF0YVswXSkpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZS5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTViZDBhYgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZS5oCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfREVWSUNFX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX0RFVklDRV9ICisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlIDxtZWRpYS9BdWRpb1BhcmFtZXRlci5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2F1ZGlvLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJQYXJhbWV0ZXJzVXRpbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Id1N5bmM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0lucHV0RmxhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvT3V0cHV0RmxhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvUGF0Y2hIYW5kbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1BvcnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1BvcnRDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb1NvdXJjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpEZXZpY2VBZGRyZXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbUluOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UGFyYW1ldGVyVmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgRGV2aWNlIDogcHVibGljIElEZXZpY2UsIHB1YmxpYyBQYXJhbWV0ZXJzVXRpbCB7CisgICAgRGV2aWNlKGF1ZGlvX2h3X2RldmljZV90KiBkZXZpY2UsIGNvbnN0IGNoYXIqIHR5cGUpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlIGZvbGxvdy4KKyAgICBSZXR1cm48UmVzdWx0PiBpbml0Q2hlY2soKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0TWFzdGVyVm9sdW1lKGZsb2F0IHZvbHVtZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNYXN0ZXJWb2x1bWUoZ2V0TWFzdGVyVm9sdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0TWljTXV0ZShib29sIG11dGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TWljTXV0ZShnZXRNaWNNdXRlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0TWFzdGVyTXV0ZShib29sIG11dGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TWFzdGVyTXV0ZShnZXRNYXN0ZXJNdXRlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldElucHV0QnVmZmVyU2l6ZSgKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsIGdldElucHV0QnVmZmVyU2l6ZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBvcGVuT3V0cHV0U3RyZWFtKAorICAgICAgICAgICAgaW50MzJfdCBpb0hhbmRsZSwKKyAgICAgICAgICAgIGNvbnN0IERldmljZUFkZHJlc3MmIGRldmljZSwKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBBdWRpb091dHB1dEZsYWcgZmxhZ3MsCisgICAgICAgICAgICBvcGVuT3V0cHV0U3RyZWFtX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IG9wZW5JbnB1dFN0cmVhbSgKKyAgICAgICAgICAgIGludDMyX3QgaW9IYW5kbGUsCisgICAgICAgICAgICBjb25zdCBEZXZpY2VBZGRyZXNzJiBkZXZpY2UsCisgICAgICAgICAgICBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgQXVkaW9JbnB1dEZsYWcgZmxhZ3MsCisgICAgICAgICAgICBBdWRpb1NvdXJjZSBzb3VyY2UsCisgICAgICAgICAgICBvcGVuSW5wdXRTdHJlYW1fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc3VwcG9ydHNBdWRpb1BhdGNoZXMoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZUF1ZGlvUGF0Y2goCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxBdWRpb1BvcnRDb25maWc+JiBzb3VyY2VzLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc2lua3MsCisgICAgICAgICAgICBjcmVhdGVBdWRpb1BhdGNoX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVsZWFzZUF1ZGlvUGF0Y2goaW50MzJfdCBwYXRjaCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdWRpb1BvcnQoY29uc3QgQXVkaW9Qb3J0JiBwb3J0LCBnZXRBdWRpb1BvcnRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRBdWRpb1BvcnRDb25maWcoY29uc3QgQXVkaW9Qb3J0Q29uZmlnJiBjb25maWcpICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9Id1N5bmM+IGdldEh3QXZTeW5jKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFNjcmVlblN0YXRlKGJvb2wgdHVybmVkT24pICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVycygKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlYnVnRHVtcChjb25zdCBoaWRsX2hhbmRsZSYgZmQpICBvdmVycmlkZTsKKworICAgIC8vIFV0aWxpdHkgbWV0aG9kcyBmb3IgZXh0ZW5kaW5nIGludGVyZmFjZXMuCisgICAgUmVzdWx0IGFuYWx5emVTdGF0dXMoY29uc3QgY2hhciogZnVuY05hbWUsIGludCBzdGF0dXMpOworICAgIHZvaWQgY2xvc2VJbnB1dFN0cmVhbShhdWRpb19zdHJlYW1faW5fdCogc3RyZWFtKTsKKyAgICB2b2lkIGNsb3NlT3V0cHV0U3RyZWFtKGF1ZGlvX3N0cmVhbV9vdXRfdCogc3RyZWFtKTsKKyAgICBhdWRpb19od19kZXZpY2VfdCogZGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbURldmljZTsgfQorICAgIGNvbnN0IGNoYXIqIHR5cGUoKSBjb25zdCB7IHJldHVybiBtVHlwZTsgfQorICAgIHVpbnQzMl90IHZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtRGV2aWNlLT5jb21tb24udmVyc2lvbjsgfQorCisgICBwcml2YXRlOgorICAgIGF1ZGlvX2h3X2RldmljZV90ICptRGV2aWNlOworICAgIGNvbnN0IGNoYXIqIG1UeXBlOworCisgICAgdmlydHVhbCB+RGV2aWNlKCk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gUGFyYW1ldGVyc1V0aWwuCisgICAgY2hhciogaGFsR2V0UGFyYW1ldGVycyhjb25zdCBjaGFyKiBrZXlzKSBvdmVycmlkZTsKKyAgICBpbnQgaGFsU2V0UGFyYW1ldGVycyhjb25zdCBjaGFyKiBrZXlzQW5kVmFsdWVzKSBvdmVycmlkZTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VfSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlc0ZhY3RvcnkuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvRGV2aWNlc0ZhY3RvcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNDQ5NjgKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2VzRmFjdG9yeS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkRldmljZXNGYWN0b3J5SEFMIgorCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorCisjaW5jbHVkZSAiRGV2aWNlLmgiCisjaW5jbHVkZSAiRGV2aWNlc0ZhY3RvcnkuaCIKKyNpbmNsdWRlICJQcmltYXJ5RGV2aWNlLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gc3RhdGljCitjb25zdCBjaGFyKiBEZXZpY2VzRmFjdG9yeTo6ZGV2aWNlVG9TdHJpbmcoSURldmljZXNGYWN0b3J5OjpEZXZpY2UgZGV2aWNlKSB7CisgICAgc3dpdGNoIChkZXZpY2UpIHsKKyAgICAgICAgY2FzZSBJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZTo6UFJJTUFSWTogcmV0dXJuIEFVRElPX0hBUkRXQVJFX01PRFVMRV9JRF9QUklNQVJZOworICAgICAgICBjYXNlIElEZXZpY2VzRmFjdG9yeTo6RGV2aWNlOjpBMkRQOiByZXR1cm4gQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lEX0EyRFA7CisgICAgICAgIGNhc2UgSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlVTQjogcmV0dXJuIEFVRElPX0hBUkRXQVJFX01PRFVMRV9JRF9VU0I7CisgICAgICAgIGNhc2UgSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlJfU1VCTUlYOiByZXR1cm4gQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lEX1JFTU9URV9TVUJNSVg7CisgICAgICAgIGNhc2UgSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlNUVUI6IHJldHVybiBBVURJT19IQVJEV0FSRV9NT0RVTEVfSURfU1RVQjsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKy8vIHN0YXRpYworaW50IERldmljZXNGYWN0b3J5Ojpsb2FkQXVkaW9JbnRlcmZhY2UoY29uc3QgY2hhciAqaWZfbmFtZSwgYXVkaW9faHdfZGV2aWNlX3QgKipkZXYpCit7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKm1vZDsKKyAgICBpbnQgcmM7CisKKyAgICByYyA9IGh3X2dldF9tb2R1bGVfYnlfY2xhc3MoQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lELCBpZl9uYW1lLCAmbW9kKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0UoIiVzIGNvdWxkbid0IGxvYWQgYXVkaW8gaHcgbW9kdWxlICVzLiVzICglcykiLCBfX2Z1bmNfXywKKyAgICAgICAgICAgICAgICBBVURJT19IQVJEV0FSRV9NT0RVTEVfSUQsIGlmX25hbWUsIHN0cmVycm9yKC1yYykpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisgICAgcmMgPSBhdWRpb19od19kZXZpY2Vfb3Blbihtb2QsIGRldik7CisgICAgaWYgKHJjKSB7CisgICAgICAgIEFMT0dFKCIlcyBjb3VsZG4ndCBvcGVuIGF1ZGlvIGh3IGRldmljZSBpbiAlcy4lcyAoJXMpIiwgX19mdW5jX18sCisgICAgICAgICAgICAgICAgQVVESU9fSEFSRFdBUkVfTU9EVUxFX0lELCBpZl9uYW1lLCBzdHJlcnJvcigtcmMpKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorICAgIGlmICgoKmRldiktPmNvbW1vbi52ZXJzaW9uIDwgQVVESU9fREVWSUNFX0FQSV9WRVJTSU9OX01JTikgeworICAgICAgICBBTE9HRSgiJXMgd3JvbmcgYXVkaW8gaHcgZGV2aWNlIHZlcnNpb24gJTA0eCIsIF9fZnVuY19fLCAoKmRldiktPmNvbW1vbi52ZXJzaW9uKTsKKyAgICAgICAgcmMgPSAtRUlOVkFMOworICAgICAgICBhdWRpb19od19kZXZpY2VfY2xvc2UoKmRldik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICByZXR1cm4gT0s7CisKK291dDoKKyAgICAqZGV2ID0gTlVMTDsKKyAgICByZXR1cm4gcmM7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZXNGYWN0b3J5IGZvbGxvdy4KK1JldHVybjx2b2lkPiBEZXZpY2VzRmFjdG9yeTo6b3BlbkRldmljZShJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZSBkZXZpY2UsIG9wZW5EZXZpY2VfY2IgX2hpZGxfY2IpICB7CisgICAgYXVkaW9faHdfZGV2aWNlX3QgKmhhbERldmljZTsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgIHNwPElEZXZpY2U+IHJlc3VsdDsKKyAgICBjb25zdCBjaGFyKiBtb2R1bGVOYW1lID0gZGV2aWNlVG9TdHJpbmcoZGV2aWNlKTsKKyAgICBpZiAobW9kdWxlTmFtZSAhPSBudWxscHRyKSB7CisgICAgICAgIGludCBoYWxTdGF0dXMgPSBsb2FkQXVkaW9JbnRlcmZhY2UobW9kdWxlTmFtZSwgJmhhbERldmljZSk7CisgICAgICAgIGlmIChoYWxTdGF0dXMgPT0gT0spIHsKKyAgICAgICAgICAgIGlmIChkZXZpY2UgPT0gSURldmljZXNGYWN0b3J5OjpEZXZpY2U6OlBSSU1BUlkpIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgUHJpbWFyeURldmljZShoYWxEZXZpY2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OmltcGxlbWVudGF0aW9uOjoKKyAgICAgICAgICAgICAgICAgICAgRGV2aWNlKGhhbERldmljZSwgbW9kdWxlTmFtZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok9LOworICAgICAgICB9IGVsc2UgaWYgKGhhbFN0YXR1cyA9PSAtRUlOVkFMKSB7CisgICAgICAgICAgICByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihyZXR2YWwsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSURldmljZXNGYWN0b3J5KiBISURMX0ZFVENIX0lEZXZpY2VzRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBEZXZpY2VzRmFjdG9yeSgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L0RldmljZXNGYWN0b3J5LmggYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2VzRmFjdG9yeS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwNDZmOWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9EZXZpY2VzRmFjdG9yeS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VTRkFDVE9SWV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9ERVZJQ0VTRkFDVE9SWV9ICisKKyNpbmNsdWRlIDxoYXJkd2FyZS9hdWRpby5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSURldmljZXNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2VzRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBEZXZpY2VzRmFjdG9yeSA6IHB1YmxpYyBJRGV2aWNlc0ZhY3RvcnkgeworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SURldmljZXNGYWN0b3J5IGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gb3BlbkRldmljZShJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZSBkZXZpY2UsIG9wZW5EZXZpY2VfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkZXZpY2VUb1N0cmluZyhJRGV2aWNlc0ZhY3Rvcnk6OkRldmljZSBkZXZpY2UpOworICAgIHN0YXRpYyBpbnQgbG9hZEF1ZGlvSW50ZXJmYWNlKGNvbnN0IGNoYXIgKmlmX25hbWUsIGF1ZGlvX2h3X2RldmljZV90ICoqZGV2KTsKKworfTsKKworZXh0ZXJuICJDIiBJRGV2aWNlc0ZhY3RvcnkqIEhJRExfRkVUQ0hfSURldmljZXNGYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfREVWSUNFU0ZBQ1RPUllfSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxNDA4ODUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9QYXJhbWV0ZXJzVXRpbC5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiUGFyYW1ldGVyc1V0aWwuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBTdGF0aWMgbWV0aG9kIGFuZCBub3QgcHJpdmF0ZSBtZXRob2QgdG8gYXZvaWQgbGVha2luZyBzdGF0dXNfdCBkZXBlbmRlbmN5CitzdGF0aWMgUmVzdWx0IGdldEhhbFN0YXR1c1RvUmVzdWx0KHN0YXR1c190IHN0YXR1cykgeworICAgIHN3aXRjaCAoc3RhdHVzKSB7CisgICAgICAgIGNhc2UgT0s6CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICAgICAgY2FzZSBCQURfVkFMVUU6ICAvLyBOb3RoaW5nIHdhcyByZXR1cm5lZCwgcHJvYmFibHkgYmVjYXVzZSB0aGUgSEFMIGRvZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBub3QgaGFuZGxlIGl0CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIElOVkFMSURfT1BFUkFUSU9OOiAgLy8gQ29udmVyc2lvbiBmcm9tIHN0cmluZyB0byB0aGUgcmVxdWVzdGVkIHR5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZhaWxlZAorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgICAgIGRlZmF1bHQ6ICAvLyBTaG91bGQgbm90IGhhcHBlbgorICAgICAgICAgICAgQUxPR1coIlVuZXhwZWN0ZWQgc3RhdHVzIHJldHVybmVkIGJ5IGdldFBhcmFtOiAldSIsIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6Z2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgYm9vbCogdmFsdWUpIHsKKyAgICBTdHJpbmc4IGhhbFZhbHVlOworICAgIFJlc3VsdCByZXR2YWwgPSBnZXRQYXJhbShuYW1lLCAmaGFsVmFsdWUpOworICAgICp2YWx1ZSA9IGZhbHNlOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBpZiAoaGFsVmFsdWUuZW1wdHkoKSkgeworICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgfQorICAgICAgICAqdmFsdWUgPSAhKGhhbFZhbHVlID09IEF1ZGlvUGFyYW1ldGVyOjp2YWx1ZU9mZik7CisgICAgfQorICAgIHJldHVybiByZXR2YWw7Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6Z2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgaW50KiB2YWx1ZSkgeworICAgIGNvbnN0IFN0cmluZzggaGFsTmFtZShuYW1lKTsKKyAgICBBdWRpb1BhcmFtZXRlciBrZXlzOworICAgIGtleXMuYWRkS2V5KGhhbE5hbWUpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1BhcmFtZXRlcj4gcGFyYW1zID0gZ2V0UGFyYW1zKGtleXMpOworICAgIHJldHVybiBnZXRIYWxTdGF0dXNUb1Jlc3VsdChwYXJhbXMtPmdldEludChoYWxOYW1lLCAqdmFsdWUpKTsKK30KKworUmVzdWx0IFBhcmFtZXRlcnNVdGlsOjpnZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBTdHJpbmc4KiB2YWx1ZSkgeworICAgIGNvbnN0IFN0cmluZzggaGFsTmFtZShuYW1lKTsKKyAgICBBdWRpb1BhcmFtZXRlciBrZXlzOworICAgIGtleXMuYWRkS2V5KGhhbE5hbWUpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1BhcmFtZXRlcj4gcGFyYW1zID0gZ2V0UGFyYW1zKGtleXMpOworICAgIHJldHVybiBnZXRIYWxTdGF0dXNUb1Jlc3VsdChwYXJhbXMtPmdldChoYWxOYW1lLCAqdmFsdWUpKTsKK30KKwordm9pZCBQYXJhbWV0ZXJzVXRpbDo6Z2V0UGFyYW1ldGVyc0ltcGwoCisgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLAorICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpPgorICAgICAgICBjYikgeworICAgIEF1ZGlvUGFyYW1ldGVyIGhhbEtleXM7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGhhbEtleXMuYWRkS2V5KFN0cmluZzgoa2V5c1tpXS5jX3N0cigpKSk7CisgICAgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb1BhcmFtZXRlcj4gaGFsVmFsdWVzID0gZ2V0UGFyYW1zKGhhbEtleXMpOworICAgIFJlc3VsdCByZXR2YWwgPSAoa2V5cy5zaXplKCkgPT0gMCB8fCBoYWxWYWx1ZXMtPnNpemUoKSAhPSAwKQorICAgICAgICAgICAgICAgICAgICAgICAgPyBSZXN1bHQ6Ok9LCisgICAgICAgICAgICAgICAgICAgICAgICA6IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4gcmVzdWx0OworICAgIHJlc3VsdC5yZXNpemUoaGFsVmFsdWVzLT5zaXplKCkpOworICAgIFN0cmluZzggaGFsS2V5LCBoYWxWYWx1ZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbFZhbHVlcy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gaGFsVmFsdWVzLT5nZXRBdChpLCBoYWxLZXksIGhhbFZhbHVlKTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICAgICAgcmVzdWx0LnJlc2l6ZSgwKTsKKyAgICAgICAgICAgIHJldHZhbCA9IGdldEhhbFN0YXR1c1RvUmVzdWx0KHN0YXR1cyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICByZXN1bHRbaV0ua2V5ID0gaGFsS2V5LnN0cmluZygpOworICAgICAgICByZXN1bHRbaV0udmFsdWUgPSBoYWxWYWx1ZS5zdHJpbmcoKTsKKyAgICB9CisgICAgY2IocmV0dmFsLCByZXN1bHQpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9QYXJhbWV0ZXI+IFBhcmFtZXRlcnNVdGlsOjpnZXRQYXJhbXMoCisgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXImIGtleXMpIHsKKyAgICBTdHJpbmc4IHBhcmFtc0FuZFZhbHVlczsKKyAgICBjaGFyKiBoYWxWYWx1ZXMgPSBoYWxHZXRQYXJhbWV0ZXJzKGtleXMua2V5c1RvU3RyaW5nKCkuc3RyaW5nKCkpOworICAgIGlmIChoYWxWYWx1ZXMgIT0gTlVMTCkgeworICAgICAgICBwYXJhbXNBbmRWYWx1ZXMuc2V0VG8oaGFsVmFsdWVzKTsKKyAgICAgICAgZnJlZShoYWxWYWx1ZXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHBhcmFtc0FuZFZhbHVlcy5jbGVhcigpOworICAgIH0KKyAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPEF1ZGlvUGFyYW1ldGVyPihuZXcgQXVkaW9QYXJhbWV0ZXIocGFyYW1zQW5kVmFsdWVzKSk7Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6c2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgYm9vbCB2YWx1ZSkgeworICAgIEF1ZGlvUGFyYW1ldGVyIHBhcmFtOworICAgIHBhcmFtLmFkZChTdHJpbmc4KG5hbWUpLCBTdHJpbmc4KHZhbHVlID8gQXVkaW9QYXJhbWV0ZXI6OnZhbHVlT24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEF1ZGlvUGFyYW1ldGVyOjp2YWx1ZU9mZikpOworICAgIHJldHVybiBzZXRQYXJhbXMocGFyYW0pOworfQorCitSZXN1bHQgUGFyYW1ldGVyc1V0aWw6OnNldFBhcmFtKGNvbnN0IGNoYXIqIG5hbWUsIGludCB2YWx1ZSkgeworICAgIEF1ZGlvUGFyYW1ldGVyIHBhcmFtOworICAgIHBhcmFtLmFkZEludChTdHJpbmc4KG5hbWUpLCB2YWx1ZSk7CisgICAgcmV0dXJuIHNldFBhcmFtcyhwYXJhbSk7Cit9CisKK1Jlc3VsdCBQYXJhbWV0ZXJzVXRpbDo6c2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmFsdWUpIHsKKyAgICBBdWRpb1BhcmFtZXRlciBwYXJhbTsKKyAgICBwYXJhbS5hZGQoU3RyaW5nOChuYW1lKSwgU3RyaW5nOCh2YWx1ZSkpOworICAgIHJldHVybiBzZXRQYXJhbXMocGFyYW0pOworfQorCitSZXN1bHQgUGFyYW1ldGVyc1V0aWw6OnNldFBhcmFtZXRlcnNJbXBsKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIEF1ZGlvUGFyYW1ldGVyIHBhcmFtczsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhcmFtZXRlcnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgcGFyYW1zLmFkZChTdHJpbmc4KHBhcmFtZXRlcnNbaV0ua2V5LmNfc3RyKCkpLAorICAgICAgICAgICAgICAgICAgIFN0cmluZzgocGFyYW1ldGVyc1tpXS52YWx1ZS5jX3N0cigpKSk7CisgICAgfQorICAgIHJldHVybiBzZXRQYXJhbXMocGFyYW1zKTsKK30KKworUmVzdWx0IFBhcmFtZXRlcnNVdGlsOjpzZXRQYXJhbXMoY29uc3QgQXVkaW9QYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgaW50IGhhbFN0YXR1cyA9IGhhbFNldFBhcmFtZXRlcnMocGFyYW0udG9TdHJpbmcoKS5zdHJpbmcoKSk7CisgICAgaWYgKGhhbFN0YXR1cyA9PSBPSykKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgZWxzZSBpZiAoaGFsU3RhdHVzID09IC1FTk9TWVMpCisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfU1RBVEU7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9QYXJhbWV0ZXJzVXRpbC5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTAzNmRjCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvUGFyYW1ldGVyc1V0aWwuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1ZGlvX1YyXzBfUGFyYW1ldGVyc1V0aWxfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdWRpb19WMl8wX1BhcmFtZXRlcnNVdGlsX0hfCisKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL3R5cGVzLmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsU3VwcG9ydC5oPgorI2luY2x1ZGUgPG1lZGlhL0F1ZGlvUGFyYW1ldGVyLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7CisKK2NsYXNzIFBhcmFtZXRlcnNVdGlsIHsKKyAgcHVibGljOgorICAgIFJlc3VsdCBnZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBib29sKiB2YWx1ZSk7CisgICAgUmVzdWx0IGdldFBhcmFtKGNvbnN0IGNoYXIqIG5hbWUsIGludCogdmFsdWUpOworICAgIFJlc3VsdCBnZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBTdHJpbmc4KiB2YWx1ZSk7CisgICAgdm9pZCBnZXRQYXJhbWV0ZXJzSW1wbCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywKKyAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChSZXN1bHQgcmV0dmFsLCBjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpPiBjYik7CisgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvUGFyYW1ldGVyPiBnZXRQYXJhbXMoY29uc3QgQXVkaW9QYXJhbWV0ZXImIGtleXMpOworICAgIFJlc3VsdCBzZXRQYXJhbShjb25zdCBjaGFyKiBuYW1lLCBib29sIHZhbHVlKTsKKyAgICBSZXN1bHQgc2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgaW50IHZhbHVlKTsKKyAgICBSZXN1bHQgc2V0UGFyYW0oY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmFsdWUpOworICAgIFJlc3VsdCBzZXRQYXJhbWV0ZXJzSW1wbChjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpOworICAgIFJlc3VsdCBzZXRQYXJhbXMoY29uc3QgQXVkaW9QYXJhbWV0ZXImIHBhcmFtKTsKKworICBwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+UGFyYW1ldGVyc1V0aWwoKSB7fQorCisgICAgdmlydHVhbCBjaGFyKiBoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpID0gMDsKKyAgICB2aXJ0dWFsIGludCBoYWxTZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXNBbmRWYWx1ZXMpID0gMDsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXVkaW9fVjJfMF9QYXJhbWV0ZXJzVXRpbF9IXwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5jcHAgYi9hdWRpby8yLjAvZGVmYXVsdC9QcmltYXJ5RGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDZkODczCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5jcHAKQEAgLTAsMCArMSwyMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlByaW1hcnlEZXZpY2VIQUwiCisKKyNpbmNsdWRlICJQcmltYXJ5RGV2aWNlLmgiCisjaW5jbHVkZSAiVXRpbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK1ByaW1hcnlEZXZpY2U6OlByaW1hcnlEZXZpY2UoYXVkaW9faHdfZGV2aWNlX3QqIGRldmljZSkKKyAgICA6IG1EZXZpY2V7bmV3IERldmljZShkZXZpY2UsIEFVRElPX0hBUkRXQVJFX01PRFVMRV9JRF9QUklNQVJZKX0ge30KKworUHJpbWFyeURldmljZTo6flByaW1hcnlEZXZpY2UoKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2UgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6aW5pdENoZWNrKCkgeworICAgIHJldHVybiBtRGV2aWNlLT5pbml0Q2hlY2soKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0TWFzdGVyVm9sdW1lKGZsb2F0IHZvbHVtZSkgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRNYXN0ZXJWb2x1bWUodm9sdW1lKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldE1hc3RlclZvbHVtZShnZXRNYXN0ZXJWb2x1bWVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+Z2V0TWFzdGVyVm9sdW1lKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0TWljTXV0ZShib29sIG11dGUpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0TWljTXV0ZShtdXRlKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldE1pY011dGUoZ2V0TWljTXV0ZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5nZXRNaWNNdXRlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0TWFzdGVyTXV0ZShib29sIG11dGUpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0TWFzdGVyTXV0ZShtdXRlKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldE1hc3Rlck11dGUoZ2V0TWFzdGVyTXV0ZV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5nZXRNYXN0ZXJNdXRlKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldElucHV0QnVmZmVyU2l6ZShjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJbnB1dEJ1ZmZlclNpemVfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+Z2V0SW5wdXRCdWZmZXJTaXplKGNvbmZpZywgX2hpZGxfY2IpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6b3Blbk91dHB1dFN0cmVhbShpbnQzMl90IGlvSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRGV2aWNlQWRkcmVzcyYgZGV2aWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5PdXRwdXRTdHJlYW1fY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+b3Blbk91dHB1dFN0cmVhbShpb0hhbmRsZSwgZGV2aWNlLCBjb25maWcsIGZsYWdzLCBfaGlkbF9jYik7Cit9CisKK1JldHVybjx2b2lkPiBQcmltYXJ5RGV2aWNlOjpvcGVuSW5wdXRTdHJlYW0oCisgICAgaW50MzJfdCBpb0hhbmRsZSwgY29uc3QgRGV2aWNlQWRkcmVzcyYgZGV2aWNlLCBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnLAorICAgIEF1ZGlvSW5wdXRGbGFnIGZsYWdzLCBBdWRpb1NvdXJjZSBzb3VyY2UsIG9wZW5JbnB1dFN0cmVhbV9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5vcGVuSW5wdXRTdHJlYW0oaW9IYW5kbGUsIGRldmljZSwgY29uZmlnLCBmbGFncywgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2hpZGxfY2IpOworfQorCitSZXR1cm48Ym9vbD4gUHJpbWFyeURldmljZTo6c3VwcG9ydHNBdWRpb1BhdGNoZXMoKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnN1cHBvcnRzQXVkaW9QYXRjaGVzKCk7Cit9CisKK1JldHVybjx2b2lkPiBQcmltYXJ5RGV2aWNlOjpjcmVhdGVBdWRpb1BhdGNoKAorICAgIGNvbnN0IGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4mIHNvdXJjZXMsCisgICAgY29uc3QgaGlkbF92ZWM8QXVkaW9Qb3J0Q29uZmlnPiYgc2lua3MsIGNyZWF0ZUF1ZGlvUGF0Y2hfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbURldmljZS0+Y3JlYXRlQXVkaW9QYXRjaChzb3VyY2VzLCBzaW5rcywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpyZWxlYXNlQXVkaW9QYXRjaChpbnQzMl90IHBhdGNoKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnJlbGVhc2VBdWRpb1BhdGNoKHBhdGNoKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldEF1ZGlvUG9ydChjb25zdCBBdWRpb1BvcnQmIHBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEF1ZGlvUG9ydF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtRGV2aWNlLT5nZXRBdWRpb1BvcnQocG9ydCwgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRBdWRpb1BvcnRDb25maWcoCisgICAgY29uc3QgQXVkaW9Qb3J0Q29uZmlnJiBjb25maWcpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0QXVkaW9Qb3J0Q29uZmlnKGNvbmZpZyk7Cit9CisKK1JldHVybjxBdWRpb0h3U3luYz4gUHJpbWFyeURldmljZTo6Z2V0SHdBdlN5bmMoKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldEh3QXZTeW5jKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFByaW1hcnlEZXZpY2U6OnNldFNjcmVlblN0YXRlKGJvb2wgdHVybmVkT24pIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0U2NyZWVuU3RhdGUodHVybmVkT24pOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPmdldFBhcmFtZXRlcnMoa2V5cywgX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRQYXJhbWV0ZXJzKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgeworICAgIHJldHVybiBtRGV2aWNlLT5kZWJ1Z0R1bXAoZmQpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklQcmltYXJ5RGV2aWNlIGZvbGxvdy4KK1JldHVybjxSZXN1bHQ+IFByaW1hcnlEZXZpY2U6OnNldFZvaWNlVm9sdW1lKGZsb2F0IHZvbHVtZSkgeworICAgIGlmICghaXNHYWluTm9ybWFsaXplZCh2b2x1bWUpKSB7CisgICAgICAgIEFMT0dXKCJDYW4gbm90IHNldCBhIHZvaWNlIHZvbHVtZSAoJWYpIG91dHNpZGUgWzAsMV0iLCB2b2x1bWUpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9CisgICAgcmV0dXJuIG1EZXZpY2UtPmFuYWx5emVTdGF0dXMoCisgICAgICAgICJzZXRfdm9pY2Vfdm9sdW1lIiwKKyAgICAgICAgbURldmljZS0+ZGV2aWNlKCktPnNldF92b2ljZV92b2x1bWUobURldmljZS0+ZGV2aWNlKCksIHZvbHVtZSkpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRNb2RlKEF1ZGlvTW9kZSBtb2RlKSB7CisgICAgLy8gSU5WQUxJRCwgQ1VSUkVOVCwgQ05ULCBNQVggYXJlIHJlc2VydmVkIGZvciBpbnRlcm5hbCB1c2UuCisgICAgLy8gVE9ETzogcmVtb3ZlIHRoZSB2YWx1ZXMgZnJvbSB0aGUgSElETCBpbnRlcmZhY2UKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICAgICAgY2FzZSBBdWRpb01vZGU6Ok5PUk1BTDoKKyAgICAgICAgY2FzZSBBdWRpb01vZGU6OlJJTkdUT05FOgorICAgICAgICBjYXNlIEF1ZGlvTW9kZTo6SU5fQ0FMTDoKKyAgICAgICAgY2FzZSBBdWRpb01vZGU6OklOX0NPTU1VTklDQVRJT046CisgICAgICAgICAgICBicmVhazsgIC8vIFZhbGlkIHZhbHVlcworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgfTsKKworICAgIHJldHVybiBtRGV2aWNlLT5hbmFseXplU3RhdHVzKAorICAgICAgICAic2V0X21vZGUiLCBtRGV2aWNlLT5kZXZpY2UoKS0+c2V0X21vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICBtRGV2aWNlLT5kZXZpY2UoKSwgc3RhdGljX2Nhc3Q8YXVkaW9fbW9kZV90Pihtb2RlKSkpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0QnRTY29OcmVjRW5hYmxlZCgKKyAgICBnZXRCdFNjb05yZWNFbmFibGVkX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCBlbmFibGVkOworICAgIFJlc3VsdCByZXR2YWwgPSBtRGV2aWNlLT5nZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5QnROcmVjLCAmZW5hYmxlZCk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBlbmFibGVkKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBQcmltYXJ5RGV2aWNlOjpzZXRCdFNjb05yZWNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeworICAgIHJldHVybiBtRGV2aWNlLT5zZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5QnROcmVjLCBlbmFibGVkKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldEJ0U2NvV2lkZWJhbmRFbmFibGVkKAorICAgIGdldEJ0U2NvV2lkZWJhbmRFbmFibGVkX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCBlbmFibGVkOworICAgIFJlc3VsdCByZXR2YWwgPSBtRGV2aWNlLT5nZXRQYXJhbShBVURJT19QQVJBTUVURVJfS0VZX0JUX1NDT19XQiwgJmVuYWJsZWQpOworICAgIF9oaWRsX2NiKHJldHZhbCwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0QnRTY29XaWRlYmFuZEVuYWJsZWQoYm9vbCBlbmFibGVkKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnNldFBhcmFtKEFVRElPX1BBUkFNRVRFUl9LRVlfQlRfU0NPX1dCLCBlbmFibGVkKTsKK30KKworUmV0dXJuPHZvaWQ+IFByaW1hcnlEZXZpY2U6OmdldFR0eU1vZGUoZ2V0VHR5TW9kZV9jYiBfaGlkbF9jYikgeworICAgIGludCBoYWxNb2RlOworICAgIFJlc3VsdCByZXR2YWwgPSBtRGV2aWNlLT5nZXRQYXJhbShBVURJT19QQVJBTUVURVJfS0VZX1RUWV9NT0RFLCAmaGFsTW9kZSk7CisgICAgVHR5TW9kZSBtb2RlID0gcmV0dmFsID09IFJlc3VsdDo6T0sgPyBUdHlNb2RlKGhhbE1vZGUpIDogVHR5TW9kZTo6T0ZGOworICAgIF9oaWRsX2NiKHJldHZhbCwgbW9kZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0VHR5TW9kZShJUHJpbWFyeURldmljZTo6VHR5TW9kZSBtb2RlKSB7CisgICAgcmV0dXJuIG1EZXZpY2UtPnNldFBhcmFtKEFVRElPX1BBUkFNRVRFUl9LRVlfVFRZX01PREUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obW9kZSkpOworfQorCitSZXR1cm48dm9pZD4gUHJpbWFyeURldmljZTo6Z2V0SGFjRW5hYmxlZChnZXRIYWNFbmFibGVkX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCBlbmFibGVkOworICAgIFJlc3VsdCByZXR2YWwgPSBtRGV2aWNlLT5nZXRQYXJhbShBVURJT19QQVJBTUVURVJfS0VZX0hBQywgJmVuYWJsZWQpOworICAgIF9oaWRsX2NiKHJldHZhbCwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gUHJpbWFyeURldmljZTo6c2V0SGFjRW5hYmxlZChib29sIGVuYWJsZWQpIHsKKyAgICByZXR1cm4gbURldmljZS0+c2V0UGFyYW0oQVVESU9fUEFSQU1FVEVSX0tFWV9IQUMsIGVuYWJsZWQpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1ByaW1hcnlEZXZpY2UuaCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1ByaW1hcnlEZXZpY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTU1MTFiCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvUHJpbWFyeURldmljZS5oCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfUFJJTUFSWURFVklDRV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9QUklNQVJZREVWSUNFX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lQcmltYXJ5RGV2aWNlLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKKyNpbmNsdWRlICJEZXZpY2UuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NvbmZpZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvSW5wdXRGbGFnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Nb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9PdXRwdXRGbGFnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Qb3J0Q29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Tb3VyY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklQcmltYXJ5RGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1JbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtT3V0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFByaW1hcnlEZXZpY2UgOiBwdWJsaWMgSVByaW1hcnlEZXZpY2UgeworICAgIGV4cGxpY2l0IFByaW1hcnlEZXZpY2UoYXVkaW9faHdfZGV2aWNlX3QqIGRldmljZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2UgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGluaXRDaGVjaygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNYXN0ZXJWb2x1bWUoZmxvYXQgdm9sdW1lKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1hc3RlclZvbHVtZShnZXRNYXN0ZXJWb2x1bWVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNaWNNdXRlKGJvb2wgbXV0ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNaWNNdXRlKGdldE1pY011dGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRNYXN0ZXJNdXRlKGJvb2wgbXV0ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNYXN0ZXJNdXRlKGdldE1hc3Rlck11dGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0SW5wdXRCdWZmZXJTaXplKAorICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywgZ2V0SW5wdXRCdWZmZXJTaXplX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IG9wZW5PdXRwdXRTdHJlYW0oCisgICAgICAgICAgICBpbnQzMl90IGlvSGFuZGxlLAorICAgICAgICAgICAgY29uc3QgRGV2aWNlQWRkcmVzcyYgZGV2aWNlLAorICAgICAgICAgICAgY29uc3QgQXVkaW9Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgIEF1ZGlvT3V0cHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgIG9wZW5PdXRwdXRTdHJlYW1fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gb3BlbklucHV0U3RyZWFtKAorICAgICAgICAgICAgaW50MzJfdCBpb0hhbmRsZSwKKyAgICAgICAgICAgIGNvbnN0IERldmljZUFkZHJlc3MmIGRldmljZSwKKyAgICAgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICBBdWRpb0lucHV0RmxhZyBmbGFncywKKyAgICAgICAgICAgIEF1ZGlvU291cmNlIHNvdXJjZSwKKyAgICAgICAgICAgIG9wZW5JbnB1dFN0cmVhbV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzdXBwb3J0c0F1ZGlvUGF0Y2hlcygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlQXVkaW9QYXRjaCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEF1ZGlvUG9ydENvbmZpZz4mIHNvdXJjZXMsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxBdWRpb1BvcnRDb25maWc+JiBzaW5rcywKKyAgICAgICAgICAgIGNyZWF0ZUF1ZGlvUGF0Y2hfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZWxlYXNlQXVkaW9QYXRjaChpbnQzMl90IHBhdGNoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1ZGlvUG9ydChjb25zdCBBdWRpb1BvcnQmIHBvcnQsIGdldEF1ZGlvUG9ydF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEF1ZGlvUG9ydENvbmZpZyhjb25zdCBBdWRpb1BvcnRDb25maWcmIGNvbmZpZykgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0h3U3luYz4gZ2V0SHdBdlN5bmMoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0U2NyZWVuU3RhdGUoYm9vbCB0dXJuZWRPbikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXJzKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLCBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJUHJpbWFyeURldmljZSBmb2xsb3cuCisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Vm9pY2VWb2x1bWUoZmxvYXQgdm9sdW1lKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0TW9kZShBdWRpb01vZGUgbW9kZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRCdFNjb05yZWNFbmFibGVkKGdldEJ0U2NvTnJlY0VuYWJsZWRfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRCdFNjb05yZWNFbmFibGVkKGJvb2wgZW5hYmxlZCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRCdFNjb1dpZGViYW5kRW5hYmxlZChnZXRCdFNjb1dpZGViYW5kRW5hYmxlZF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEJ0U2NvV2lkZWJhbmRFbmFibGVkKGJvb2wgZW5hYmxlZCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRUdHlNb2RlKGdldFR0eU1vZGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRUdHlNb2RlKElQcmltYXJ5RGV2aWNlOjpUdHlNb2RlIG1vZGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0SGFjRW5hYmxlZChnZXRIYWNFbmFibGVkX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SGFjRW5hYmxlZChib29sIGVuYWJsZWQpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPERldmljZT4gbURldmljZTsKKworICAgIHZpcnR1YWwgflByaW1hcnlEZXZpY2UoKTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9QUklNQVJZREVWSUNFX0gKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5jcHAgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3MWYxNzEKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW0uY3BwCkBAIC0wLDAgKzEsMjY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisKKyNkZWZpbmUgTE9HX1RBRyAiU3RyZWFtSEFMIgorCisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW8uaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9hdWRpb19lZmZlY3QuaD4KKyNpbmNsdWRlIDxtZWRpYS9UeXBlQ29udmVydGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9Tb3J0ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KKworI2luY2x1ZGUgIkNvbnZlcnNpb25zLmgiCisjaW5jbHVkZSAiRWZmZWN0TWFwLmgiCisjaW5jbHVkZSAiU3RyZWFtLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworU3RyZWFtOjpTdHJlYW0oYXVkaW9fc3RyZWFtX3QqIHN0cmVhbSkKKyAgICAgICAgOiBtU3RyZWFtKHN0cmVhbSkgeworfQorCitTdHJlYW06On5TdHJlYW0oKSB7CisgICAgbVN0cmVhbSA9IG51bGxwdHI7Cit9CisKKy8vIHN0YXRpYworUmVzdWx0IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cyhjb25zdCBjaGFyKiBmdW5jTmFtZSwgaW50IHN0YXR1cywgaW50IGlnbm9yZUVycm9yLCBpbnQgaWdub3JlRXJyb3IyKSB7CisgICAgaWYgKHN0YXR1cyAhPSAwICYmIHN0YXR1cyAhPSAtaWdub3JlRXJyb3IgJiYgc3RhdHVzICE9IC1pZ25vcmVFcnJvcjIpIHsKKyAgICAgICAgQUxPR1coIkVycm9yIGZyb20gSEFMIHN0cmVhbSBpbiBmdW5jdGlvbiAlczogJXMiLCBmdW5jTmFtZSwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIDA6IHJldHVybiBSZXN1bHQ6Ok9LOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgICAgICBjYXNlIC1FTk9EQVRBOiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgICAgY2FzZSAtRU5PU1lTOiByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgICAgICBkZWZhdWx0OiByZXR1cm4gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIH0KK30KKworY2hhciogU3RyZWFtOjpoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+Z2V0X3BhcmFtZXRlcnMobVN0cmVhbSwga2V5cyk7Cit9CisKK2ludCBTdHJlYW06OmhhbFNldFBhcmFtZXRlcnMoY29uc3QgY2hhcioga2V5c0FuZFZhbHVlcykgeworICAgIHJldHVybiBtU3RyZWFtLT5zZXRfcGFyYW1ldGVycyhtU3RyZWFtLCBrZXlzQW5kVmFsdWVzKTsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KK1JldHVybjx1aW50NjRfdD4gU3RyZWFtOjpnZXRGcmFtZVNpemUoKSAgeworICAgIC8vIE5lZWRzIHRvIGJlIGltcGxlbWVudGVkIGJ5IGludGVyZmFjZSBzdWJjbGFzc2VzLiBCdXQgY2FuJ3QgYmUgZGVjbGFyZWQgYXMgcHVyZSB2aXJ0dWFsLAorICAgIC8vIHNpbmNlIGludGVyZmFjZSBzdWJjbGFzc2VzIGltcGxlbWVudGF0aW9uIGRvIG5vdCBpbmhlcml0IGZyb20gdGhpcyBjbGFzcy4KKyAgICBMT0dfQUxXQVlTX0ZBVEFMKCJTdHJlYW06OmdldEZyYW1lU2l6ZSBpcyBwdXJlIGFic3RyYWN0Iik7CisgICAgcmV0dXJuIHVpbnQ2NF90IHt9OworfQorCitSZXR1cm48dWludDY0X3Q+IFN0cmVhbTo6Z2V0RnJhbWVDb3VudCgpICB7CisgICAgaW50IGhhbEZyYW1lQ291bnQ7CisgICAgUmVzdWx0IHJldHZhbCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlGcmFtZUNvdW50LCAmaGFsRnJhbWVDb3VudCk7CisgICAgcmV0dXJuIHJldHZhbCA9PSBSZXN1bHQ6Ok9LID8gaGFsRnJhbWVDb3VudCA6IDA7Cit9CisKK1JldHVybjx1aW50NjRfdD4gU3RyZWFtOjpnZXRCdWZmZXJTaXplKCkgIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+Z2V0X2J1ZmZlcl9zaXplKG1TdHJlYW0pOworfQorCitSZXR1cm48dWludDMyX3Q+IFN0cmVhbTo6Z2V0U2FtcGxlUmF0ZSgpICB7CisgICAgcmV0dXJuIG1TdHJlYW0tPmdldF9zYW1wbGVfcmF0ZShtU3RyZWFtKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbTo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpICB7CisgICAgU3RyaW5nOCBoYWxMaXN0VmFsdWU7CisgICAgUmVzdWx0IHJlc3VsdCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlTdHJlYW1TdXBwb3J0ZWRTYW1wbGluZ1JhdGVzLCAmaGFsTGlzdFZhbHVlKTsKKyAgICBoaWRsX3ZlYzx1aW50MzJfdD4gc2FtcGxlUmF0ZXM7CisgICAgU29ydGVkVmVjdG9yPHVpbnQzMl90PiBoYWxTYW1wbGVSYXRlczsKKyAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgaGFsU2FtcGxlUmF0ZXMgPSBzYW1wbGluZ1JhdGVzRnJvbVN0cmluZygKKyAgICAgICAgICAgICAgICBoYWxMaXN0VmFsdWUuc3RyaW5nKCksIEF1ZGlvUGFyYW1ldGVyOjp2YWx1ZUxpc3RTZXBhcmF0b3IpOworICAgICAgICBzYW1wbGVSYXRlcy5zZXRUb0V4dGVybmFsKGhhbFNhbXBsZVJhdGVzLmVkaXRBcnJheSgpLCBoYWxTYW1wbGVSYXRlcy5zaXplKCkpOworICAgIH0KKyAgICBfaGlkbF9jYihzYW1wbGVSYXRlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRTYW1wbGVSYXRlKHVpbnQzMl90IHNhbXBsZVJhdGVIeikgIHsKKyAgICByZXR1cm4gc2V0UGFyYW0oQXVkaW9QYXJhbWV0ZXI6OmtleVNhbXBsaW5nUmF0ZSwgc3RhdGljX2Nhc3Q8aW50PihzYW1wbGVSYXRlSHopKTsKK30KKworUmV0dXJuPEF1ZGlvQ2hhbm5lbE1hc2s+IFN0cmVhbTo6Z2V0Q2hhbm5lbE1hc2soKSAgeworICAgIHJldHVybiBBdWRpb0NoYW5uZWxNYXNrKG1TdHJlYW0tPmdldF9jaGFubmVscyhtU3RyZWFtKSk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW06OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcyhnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpICB7CisgICAgU3RyaW5nOCBoYWxMaXN0VmFsdWU7CisgICAgUmVzdWx0IHJlc3VsdCA9IGdldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlTdHJlYW1TdXBwb3J0ZWRDaGFubmVscywgJmhhbExpc3RWYWx1ZSk7CisgICAgaGlkbF92ZWM8QXVkaW9DaGFubmVsTWFzaz4gY2hhbm5lbE1hc2tzOworICAgIFNvcnRlZFZlY3RvcjxhdWRpb19jaGFubmVsX21hc2tfdD4gaGFsQ2hhbm5lbE1hc2tzOworICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBoYWxDaGFubmVsTWFza3MgPSBjaGFubmVsTWFza3NGcm9tU3RyaW5nKAorICAgICAgICAgICAgICAgIGhhbExpc3RWYWx1ZS5zdHJpbmcoKSwgQXVkaW9QYXJhbWV0ZXI6OnZhbHVlTGlzdFNlcGFyYXRvcik7CisgICAgICAgIGNoYW5uZWxNYXNrcy5yZXNpemUoaGFsQ2hhbm5lbE1hc2tzLnNpemUoKSk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaGFsQ2hhbm5lbE1hc2tzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBjaGFubmVsTWFza3NbaV0gPSBBdWRpb0NoYW5uZWxNYXNrKGhhbENoYW5uZWxNYXNrc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgIF9oaWRsX2NiKGNoYW5uZWxNYXNrcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spICB7CisgICAgcmV0dXJuIHNldFBhcmFtKEF1ZGlvUGFyYW1ldGVyOjprZXlDaGFubmVscywgc3RhdGljX2Nhc3Q8aW50PihtYXNrKSk7Cit9CisKK1JldHVybjxBdWRpb0Zvcm1hdD4gU3RyZWFtOjpnZXRGb3JtYXQoKSAgeworICAgIHJldHVybiBBdWRpb0Zvcm1hdChtU3RyZWFtLT5nZXRfZm9ybWF0KG1TdHJlYW0pKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbTo6Z2V0U3VwcG9ydGVkRm9ybWF0cyhnZXRTdXBwb3J0ZWRGb3JtYXRzX2NiIF9oaWRsX2NiKSAgeworICAgIFN0cmluZzggaGFsTGlzdFZhbHVlOworICAgIFJlc3VsdCByZXN1bHQgPSBnZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5U3RyZWFtU3VwcG9ydGVkRm9ybWF0cywgJmhhbExpc3RWYWx1ZSk7CisgICAgaGlkbF92ZWM8QXVkaW9Gb3JtYXQ+IGZvcm1hdHM7CisgICAgVmVjdG9yPGF1ZGlvX2Zvcm1hdF90PiBoYWxGb3JtYXRzOworICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpPSykgeworICAgICAgICBoYWxGb3JtYXRzID0gZm9ybWF0c0Zyb21TdHJpbmcoaGFsTGlzdFZhbHVlLnN0cmluZygpLCBBdWRpb1BhcmFtZXRlcjo6dmFsdWVMaXN0U2VwYXJhdG9yKTsKKyAgICAgICAgZm9ybWF0cy5yZXNpemUoaGFsRm9ybWF0cy5zaXplKCkpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGhhbEZvcm1hdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGZvcm1hdHNbaV0gPSBBdWRpb0Zvcm1hdChoYWxGb3JtYXRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAgX2hpZGxfY2IoZm9ybWF0cyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRGb3JtYXQoQXVkaW9Gb3JtYXQgZm9ybWF0KSAgeworICAgIHJldHVybiBzZXRQYXJhbShBdWRpb1BhcmFtZXRlcjo6a2V5Rm9ybWF0LCBzdGF0aWNfY2FzdDxpbnQ+KGZvcm1hdCkpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtOjpnZXRBdWRpb1Byb3BlcnRpZXMoZ2V0QXVkaW9Qcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgeworICAgIHVpbnQzMl90IGhhbFNhbXBsZVJhdGUgPSBtU3RyZWFtLT5nZXRfc2FtcGxlX3JhdGUobVN0cmVhbSk7CisgICAgYXVkaW9fY2hhbm5lbF9tYXNrX3QgaGFsTWFzayA9IG1TdHJlYW0tPmdldF9jaGFubmVscyhtU3RyZWFtKTsKKyAgICBhdWRpb19mb3JtYXRfdCBoYWxGb3JtYXQgPSBtU3RyZWFtLT5nZXRfZm9ybWF0KG1TdHJlYW0pOworICAgIF9oaWRsX2NiKGhhbFNhbXBsZVJhdGUsIEF1ZGlvQ2hhbm5lbE1hc2soaGFsTWFzayksIEF1ZGlvRm9ybWF0KGhhbEZvcm1hdCkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6YWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgeworICAgIGVmZmVjdF9oYW5kbGVfdCBoYWxFZmZlY3QgPSBFZmZlY3RNYXA6OmdldEluc3RhbmNlKCkuZ2V0KGVmZmVjdElkKTsKKyAgICBpZiAoaGFsRWZmZWN0ICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoImFkZF9hdWRpb19lZmZlY3QiLCBtU3RyZWFtLT5hZGRfYXVkaW9fZWZmZWN0KG1TdHJlYW0sIGhhbEVmZmVjdCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dXKCJJbnZhbGlkIGVmZmVjdCBJRCBwYXNzZWQgZnJvbSBjbGllbnQ6ICUiIFBSSXU2NCwgZWZmZWN0SWQpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6cmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgeworICAgIGVmZmVjdF9oYW5kbGVfdCBoYWxFZmZlY3QgPSBFZmZlY3RNYXA6OmdldEluc3RhbmNlKCkuZ2V0KGVmZmVjdElkKTsKKyAgICBpZiAoaGFsRWZmZWN0ICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAgICAgInJlbW92ZV9hdWRpb19lZmZlY3QiLCBtU3RyZWFtLT5yZW1vdmVfYXVkaW9fZWZmZWN0KG1TdHJlYW0sIGhhbEVmZmVjdCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dXKCJJbnZhbGlkIGVmZmVjdCBJRCBwYXNzZWQgZnJvbSBjbGllbnQ6ICUiIFBSSXU2NCwgZWZmZWN0SWQpOworICAgICAgICByZXR1cm4gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6c3RhbmRieSgpICB7CisgICAgcmV0dXJuIGFuYWx5emVTdGF0dXMoInN0YW5kYnkiLCBtU3RyZWFtLT5zdGFuZGJ5KG1TdHJlYW0pKTsKK30KKworUmV0dXJuPEF1ZGlvRGV2aWNlPiBTdHJlYW06OmdldERldmljZSgpICB7CisgICAgaW50IGRldmljZTsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0UGFyYW0oQXVkaW9QYXJhbWV0ZXI6OmtleVJvdXRpbmcsICZkZXZpY2UpOworICAgIHJldHVybiByZXR2YWwgPT0gUmVzdWx0OjpPSyA/IHN0YXRpY19jYXN0PEF1ZGlvRGV2aWNlPihkZXZpY2UpIDogQXVkaW9EZXZpY2U6Ok5PTkU7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6c2V0RGV2aWNlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpICB7CisgICAgY2hhciogaGFsRGV2aWNlQWRkcmVzcyA9CisgICAgICAgICAgICBhdWRpb19kZXZpY2VfYWRkcmVzc190b19wYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oYWRkcmVzcy5kZXZpY2UpLAorICAgICAgICAgICAgICAgICAgICBkZXZpY2VBZGRyZXNzVG9IYWwoYWRkcmVzcykuY19zdHIoKSk7CisgICAgQXVkaW9QYXJhbWV0ZXIgcGFyYW1zKChTdHJpbmc4KGhhbERldmljZUFkZHJlc3MpKSk7CisgICAgZnJlZShoYWxEZXZpY2VBZGRyZXNzKTsKKyAgICBwYXJhbXMuYWRkSW50KAorICAgICAgICAgICAgU3RyaW5nOChBdWRpb1BhcmFtZXRlcjo6a2V5Um91dGluZyksIHN0YXRpY19jYXN0PGF1ZGlvX2RldmljZXNfdD4oYWRkcmVzcy5kZXZpY2UpKTsKKyAgICByZXR1cm4gc2V0UGFyYW1zKHBhcmFtcyk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbTo6c2V0Q29ubmVjdGVkU3RhdGUoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcywgYm9vbCBjb25uZWN0ZWQpICB7CisgICAgcmV0dXJuIHNldFBhcmFtKAorICAgICAgICAgICAgY29ubmVjdGVkID8gQXVkaW9QYXJhbWV0ZXI6OmtleVN0cmVhbUNvbm5lY3QgOiBBdWRpb1BhcmFtZXRlcjo6a2V5U3RyZWFtRGlzY29ubmVjdCwKKyAgICAgICAgICAgIGRldmljZUFkZHJlc3NUb0hhbChhZGRyZXNzKS5jX3N0cigpKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpzZXRId0F2U3luYyh1aW50MzJfdCBod0F2U3luYykgIHsKKyAgICByZXR1cm4gc2V0UGFyYW0oQXVkaW9QYXJhbWV0ZXI6OmtleVN0cmVhbUh3QXZTeW5jLCBzdGF0aWNfY2FzdDxpbnQ+KGh3QXZTeW5jKSk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW06OmdldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLCBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSAgeworICAgIGdldFBhcmFtZXRlcnNJbXBsKGtleXMsIF9oaWRsX2NiKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW06OnNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSAgeworICAgIHJldHVybiBzZXRQYXJhbWV0ZXJzSW1wbChwYXJhbWV0ZXJzKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbTo6ZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIHsKKyAgICBpZiAoZmQuZ2V0TmF0aXZlSGFuZGxlKCkgIT0gbnVsbHB0ciAmJiBmZC0+bnVtRmRzID09IDEpIHsKKyAgICAgICAgYW5hbHl6ZVN0YXR1cygiZHVtcCIsIG1TdHJlYW0tPmR1bXAobVN0cmVhbSwgZmQtPmRhdGFbMF0pKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gIFN0cmVhbTo6c3RhcnQoKSB7CisgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworUmV0dXJuPFJlc3VsdD4gIFN0cmVhbTo6c3RvcCgpIHsKKyAgICByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCitSZXR1cm48dm9pZD4gIFN0cmVhbTo6Y3JlYXRlTW1hcEJ1ZmZlcihpbnQzMl90IG1pblNpemVGcmFtZXMgX191bnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVNbWFwQnVmZmVyX2NiIF9oaWRsX2NiKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIE1tYXBCdWZmZXJJbmZvIGluZm87CisgICAgX2hpZGxfY2IocmV0dmFsLCBpbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gIFN0cmVhbTo6Z2V0TW1hcFBvc2l0aW9uKGdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBNbWFwUG9zaXRpb24gcG9zaXRpb247CisgICAgX2hpZGxfY2IocmV0dmFsLCBwb3NpdGlvbik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtOjpjbG9zZSgpICB7CisgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5oIGIvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ5ZTY1OAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbS5oCkBAIC0wLDAgKzEsMTc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfU1RSRUFNX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTV9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JU3RyZWFtLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvYXVkaW8uaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworI2luY2x1ZGUgIlBhcmFtZXRlcnNVdGlsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9DaGFubmVsTWFzazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Gb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFN0cmVhbSA6IHB1YmxpYyBJU3RyZWFtLCBwdWJsaWMgUGFyYW1ldGVyc1V0aWwgeworICAgIGV4cGxpY2l0IFN0cmVhbShhdWRpb19zdHJlYW1fdCogc3RyZWFtKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbSBmb2xsb3cuCisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRGcmFtZVNpemUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRGcmFtZUNvdW50KCkgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50NjRfdD4gZ2V0QnVmZmVyU2l6ZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDMyX3Q+IGdldFNhbXBsZVJhdGUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZFNhbXBsZVJhdGVzKGdldFN1cHBvcnRlZFNhbXBsZVJhdGVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0U2FtcGxlUmF0ZSh1aW50MzJfdCBzYW1wbGVSYXRlSHopICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9DaGFubmVsTWFzaz4gZ2V0Q2hhbm5lbE1hc2soKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZENoYW5uZWxNYXNrcyhnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9Gb3JtYXQ+IGdldEZvcm1hdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkRm9ybWF0cyhnZXRTdXBwb3J0ZWRGb3JtYXRzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Rm9ybWF0KEF1ZGlvRm9ybWF0IGZvcm1hdCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRBdWRpb1Byb3BlcnRpZXMoZ2V0QXVkaW9Qcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gYWRkRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVtb3ZlRWZmZWN0KHVpbnQ2NF90IGVmZmVjdElkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RhbmRieSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48QXVkaW9EZXZpY2U+IGdldERldmljZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXREZXZpY2UoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcykgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENvbm5lY3RlZFN0YXRlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MsIGJvb2wgY29ubmVjdGVkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0SHdBdlN5bmModWludDMyX3QgaHdBdlN5bmMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGFyYW1ldGVycygKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF92ZWM8UGFyYW1ldGVyVmFsdWU+JiBwYXJhbWV0ZXJzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlYnVnRHVtcChjb25zdCBoaWRsX2hhbmRsZSYgZmQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdGFydCgpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0b3AoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlTW1hcEJ1ZmZlcihpbnQzMl90IG1pblNpemVGcmFtZXMsIGNyZWF0ZU1tYXBCdWZmZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRNbWFwUG9zaXRpb24oZ2V0TW1hcFBvc2l0aW9uX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZSgpICBvdmVycmlkZTsKKworICAgIC8vIFV0aWxpdHkgbWV0aG9kcyBmb3IgZXh0ZW5kaW5nIGludGVyZmFjZXMuCisgICAgc3RhdGljIFJlc3VsdCBhbmFseXplU3RhdHVzKAorICAgICAgICAgICAgY29uc3QgY2hhciogZnVuY05hbWUsIGludCBzdGF0dXMsIGludCBpZ25vcmVFcnJvciA9IE9LLCBpbnQgaWdub3JlRXJyb3IyID0gT0spOworCisgIHByaXZhdGU6CisgICAgYXVkaW9fc3RyZWFtX3QgKm1TdHJlYW07CisKKyAgICB2aXJ0dWFsIH5TdHJlYW0oKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSBQYXJhbWV0ZXJzVXRpbC4KKyAgICBjaGFyKiBoYWxHZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXMpIG92ZXJyaWRlOworICAgIGludCBoYWxTZXRQYXJhbWV0ZXJzKGNvbnN0IGNoYXIqIGtleXNBbmRWYWx1ZXMpIG92ZXJyaWRlOworfTsKKworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3N0cnVjdCBTdHJlYW1NbWFwIDogcHVibGljIFJlZkJhc2UgeworICAgIGV4cGxpY2l0IFN0cmVhbU1tYXAoVCogc3RyZWFtKSA6IG1TdHJlYW0oc3RyZWFtKSB7fQorCisgICAgUmV0dXJuPFJlc3VsdD4gc3RhcnQoKTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdG9wKCk7CisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZU1tYXBCdWZmZXIoCisgICAgICAgICAgICBpbnQzMl90IG1pblNpemVGcmFtZXMsIHNpemVfdCBmcmFtZVNpemUsIElTdHJlYW06OmNyZWF0ZU1tYXBCdWZmZXJfY2IgX2hpZGxfY2IpOworICAgIFJldHVybjx2b2lkPiBnZXRNbWFwUG9zaXRpb24oSVN0cmVhbTo6Z2V0TW1hcFBvc2l0aW9uX2NiIF9oaWRsX2NiKTsKKworIHByaXZhdGU6CisgICBTdHJlYW1NbWFwKCkge30KKworICAgVCAqbVN0cmVhbTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorUmV0dXJuPFJlc3VsdD4gU3RyZWFtTW1hcDxUPjo6c3RhcnQoKSB7CisgICAgaWYgKG1TdHJlYW0tPnN0YXJ0ID09IE5VTEwpIHJldHVybiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7CisgICAgaW50IHJlc3VsdCA9IG1TdHJlYW0tPnN0YXJ0KG1TdHJlYW0pOworICAgIHJldHVybiBTdHJlYW06OmFuYWx5emVTdGF0dXMoInN0YXJ0IiwgcmVzdWx0KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitSZXR1cm48UmVzdWx0PiBTdHJlYW1NbWFwPFQ+OjpzdG9wKCkgeworICAgIGlmIChtU3RyZWFtLT5zdG9wID09IE5VTEwpIHJldHVybiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7CisgICAgaW50IHJlc3VsdCA9IG1TdHJlYW0tPnN0b3AobVN0cmVhbSk7CisgICAgcmV0dXJuIFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygic3RvcCIsIHJlc3VsdCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorUmV0dXJuPHZvaWQ+IFN0cmVhbU1tYXA8VD46OmNyZWF0ZU1tYXBCdWZmZXIoaW50MzJfdCBtaW5TaXplRnJhbWVzLCBzaXplX3QgZnJhbWVTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVN0cmVhbTo6Y3JlYXRlTW1hcEJ1ZmZlcl9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBNbWFwQnVmZmVySW5mbyBpbmZvOworICAgIG5hdGl2ZV9oYW5kbGVfdCogaGlkbEhhbmRsZSA9IG51bGxwdHI7CisKKyAgICBpZiAobVN0cmVhbS0+Y3JlYXRlX21tYXBfYnVmZmVyICE9IE5VTEwpIHsKKyAgICAgICAgc3RydWN0IGF1ZGlvX21tYXBfYnVmZmVyX2luZm8gaGFsSW5mbzsKKyAgICAgICAgcmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKAorICAgICAgICAgICAgICAgICJjcmVhdGVfbW1hcF9idWZmZXIiLAorICAgICAgICAgICAgICAgIG1TdHJlYW0tPmNyZWF0ZV9tbWFwX2J1ZmZlcihtU3RyZWFtLCBtaW5TaXplRnJhbWVzLCAmaGFsSW5mbykpOworICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAgIGhpZGxIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICAgICAgICAgIGhpZGxIYW5kbGUtPmRhdGFbMF0gPSBoYWxJbmZvLnNoYXJlZF9tZW1vcnlfZmQ7CisgICAgICAgICAgICBpbmZvLnNoYXJlZE1lbW9yeSA9IGhpZGxfbWVtb3J5KCJhdWRpb19idWZmZXIiLCBoaWRsSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZVNpemUgKmhhbEluZm8uYnVmZmVyX3NpemVfZnJhbWVzKTsKKyAgICAgICAgICAgIGluZm8uYnVmZmVyU2l6ZUZyYW1lcyA9IGhhbEluZm8uYnVmZmVyX3NpemVfZnJhbWVzOworICAgICAgICAgICAgaW5mby5idXJzdFNpemVGcmFtZXMgPSBoYWxJbmZvLmJ1cnN0X3NpemVfZnJhbWVzOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgaW5mbyk7CisgICAgaWYgKGhpZGxIYW5kbGUgIT0gbnVsbHB0cikgeworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShoaWRsSGFuZGxlKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitSZXR1cm48dm9pZD4gU3RyZWFtTW1hcDxUPjo6Z2V0TW1hcFBvc2l0aW9uKElTdHJlYW06OmdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIFJlc3VsdCByZXR2YWwoUmVzdWx0OjpOT1RfU1VQUE9SVEVEKTsKKyAgICBNbWFwUG9zaXRpb24gcG9zaXRpb247CisKKyAgICBpZiAobVN0cmVhbS0+Z2V0X21tYXBfcG9zaXRpb24gIT0gTlVMTCkgeworICAgICAgICBzdHJ1Y3QgYXVkaW9fbW1hcF9wb3NpdGlvbiBoYWxQb3NpdGlvbjsKKyAgICAgICAgcmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKAorICAgICAgICAgICAgICAgICJnZXRfbW1hcF9wb3NpdGlvbiIsCisgICAgICAgICAgICAgICAgbVN0cmVhbS0+Z2V0X21tYXBfcG9zaXRpb24obVN0cmVhbSwgJmhhbFBvc2l0aW9uKSk7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgcG9zaXRpb24udGltZU5hbm9zZWNvbmRzID0gaGFsUG9zaXRpb24udGltZV9uYW5vc2Vjb25kczsKKyAgICAgICAgICAgIHBvc2l0aW9uLnBvc2l0aW9uRnJhbWVzID0gaGFsUG9zaXRpb24ucG9zaXRpb25fZnJhbWVzOworICAgICAgICB9CisgICAgfQorICAgIF9oaWRsX2NiKHJldHZhbCwgcG9zaXRpb24pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1fSApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZDA0OTcKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1Jbi5jcHAKQEAgLTAsMCArMSw0NDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlN0cmVhbUluSEFMIgorLy8jZGVmaW5lIExPR19OREVCVUcgMAorI2RlZmluZSBBVFJBQ0VfVEFHIEFUUkFDRV9UQUdfQVVESU8KKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+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+Z2V0RGVzYygpLAorICAgICAgICAgICAgICptU3RhdHVzTVEtPmdldERlc2MoKSwgdGhyZWFkSW5mbyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBTdHJlYW1Jbjo6Z2V0SW5wdXRGcmFtZXNMb3N0KCkgeworICAgIHJldHVybiBtU3RyZWFtLT5nZXRfaW5wdXRfZnJhbWVzX2xvc3QobVN0cmVhbSk7Cit9CisKKy8vIHN0YXRpYworUmVzdWx0IFN0cmVhbUluOjpnZXRDYXB0dXJlUG9zaXRpb25JbXBsKGF1ZGlvX3N0cmVhbV9pbl90KiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QqIGZyYW1lcywgdWludDY0X3QqIHRpbWUpIHsKKyAgICBSZXN1bHQgcmV0dmFsKFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCk7CisgICAgaWYgKHN0cmVhbS0+Z2V0X2NhcHR1cmVfcG9zaXRpb24gIT0gTlVMTCkgcmV0dXJuIHJldHZhbDsKKyAgICBpbnQ2NF90IGhhbEZyYW1lcywgaGFsVGltZTsKKyAgICByZXR2YWwgPSBTdHJlYW06OmFuYWx5emVTdGF0dXMoCisgICAgICAgICJnZXRfY2FwdHVyZV9wb3NpdGlvbiIsCisgICAgICAgIHN0cmVhbS0+Z2V0X2NhcHR1cmVfcG9zaXRpb24oc3RyZWFtLCAmaGFsRnJhbWVzLCAmaGFsVGltZSksCisgICAgICAgIC8vIEhBTCBtYXkgaGF2ZSBhIHN0dWIgZnVuY3Rpb24sIGFsd2F5cyByZXR1cm5pbmcgRU5PU1lTLCBkb24ndAorICAgICAgICAvLyBzcGFtIHRoZSBsb2cgaW4gdGhpcyBjYXNlLgorICAgICAgICBFTk9TWVMpOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAqZnJhbWVzID0gaGFsRnJhbWVzOworICAgICAgICAqdGltZSA9IGhhbFRpbWU7CisgICAgfQorICAgIHJldHVybiByZXR2YWw7Cit9OworCitSZXR1cm48dm9pZD4gU3RyZWFtSW46OmdldENhcHR1cmVQb3NpdGlvbihnZXRDYXB0dXJlUG9zaXRpb25fY2IgX2hpZGxfY2IpIHsKKyAgICB1aW50NjRfdCBmcmFtZXMgPSAwLCB0aW1lID0gMDsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0Q2FwdHVyZVBvc2l0aW9uSW1wbChtU3RyZWFtLCAmZnJhbWVzLCAmdGltZSk7CisgICAgX2hpZGxfY2IocmV0dmFsLCBmcmFtZXMsIHRpbWUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL2RlZmF1bHQvU3RyZWFtSW4uaCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbUluLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUwZDY4ZgotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbUluLmgKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1JTl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1JTl9ICisKKyNpbmNsdWRlIDxhdG9taWM+CisjaW5jbHVkZSA8bWVtb3J5PgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSVN0cmVhbUluLmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxmbXEvRXZlbnRGbGFnLmg+CisjaW5jbHVkZSA8Zm1xL01lc3NhZ2VRdWV1ZS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8dXRpbHMvVGhyZWFkLmg+CisKKyNpbmNsdWRlICJEZXZpY2UuaCIKKyNpbmNsdWRlICJTdHJlYW0uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0NoYW5uZWxNYXNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0Zvcm1hdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OkRldmljZUFkZHJlc3M7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtSW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UGFyYW1ldGVyVmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgU3RyZWFtSW4gOiBwdWJsaWMgSVN0cmVhbUluIHsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTxSZWFkUGFyYW1ldGVycywga1N5bmNocm9uaXplZFJlYWRXcml0ZT4gQ29tbWFuZE1ROworICAgIHR5cGVkZWYgTWVzc2FnZVF1ZXVlPHVpbnQ4X3QsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+IERhdGFNUTsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTxSZWFkU3RhdHVzLCBrU3luY2hyb25pemVkUmVhZFdyaXRlPiBTdGF0dXNNUTsKKworICAgIFN0cmVhbUluKGNvbnN0IHNwPERldmljZT4mIGRldmljZSwgYXVkaW9fc3RyZWFtX2luX3QqIHN0cmVhbSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW0gZm9sbG93LgorICAgIFJldHVybjx1aW50NjRfdD4gZ2V0RnJhbWVTaXplKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50NjRfdD4gZ2V0RnJhbWVDb3VudCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDY0X3Q+IGdldEJ1ZmZlclNpemUoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQzMl90PiBnZXRTYW1wbGVSYXRlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlcyhnZXRTdXBwb3J0ZWRTYW1wbGVSYXRlc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZUh6KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvQ2hhbm5lbE1hc2s+IGdldENoYW5uZWxNYXNrKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3MoZ2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q2hhbm5lbE1hc2soQXVkaW9DaGFubmVsTWFzayBtYXNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvRm9ybWF0PiBnZXRGb3JtYXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFN1cHBvcnRlZEZvcm1hdHMoZ2V0U3VwcG9ydGVkRm9ybWF0c19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEZvcm1hdChBdWRpb0Zvcm1hdCBmb3JtYXQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QXVkaW9Qcm9wZXJ0aWVzKGdldEF1ZGlvUHJvcGVydGllc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGFkZEVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHJlbW92ZUVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0YW5kYnkoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEF1ZGlvRGV2aWNlPiBnZXREZXZpY2UoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0RGV2aWNlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRDb25uZWN0ZWRTdGF0ZShjb25zdCBEZXZpY2VBZGRyZXNzJiBhZGRyZXNzLCBib29sIGNvbm5lY3RlZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldEh3QXZTeW5jKHVpbnQzMl90IGh3QXZTeW5jKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcnMoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxoaWRsX3N0cmluZz4mIGtleXMsIGdldFBhcmFtZXRlcnNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRQYXJhbWV0ZXJzKGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xvc2UoKSAgb3ZlcnJpZGU7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1JbiBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldEF1ZGlvU291cmNlKGdldEF1ZGlvU291cmNlX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0R2FpbihmbG9hdCBnYWluKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JSZWFkaW5nKAorICAgICAgICAgICAgdWludDMyX3QgZnJhbWVTaXplLCB1aW50MzJfdCBmcmFtZXNDb3VudCwgcHJlcGFyZUZvclJlYWRpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDMyX3Q+IGdldElucHV0RnJhbWVzTG9zdCgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FwdHVyZVBvc2l0aW9uKGdldENhcHR1cmVQb3NpdGlvbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RvcCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcywgY3JlYXRlTW1hcEJ1ZmZlcl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1tYXBQb3NpdGlvbihnZXRNbWFwUG9zaXRpb25fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgc3RhdGljIFJlc3VsdCBnZXRDYXB0dXJlUG9zaXRpb25JbXBsKAorICAgICAgICAgICAgYXVkaW9fc3RyZWFtX2luX3QgKnN0cmVhbSwgdWludDY0X3QgKmZyYW1lcywgdWludDY0X3QgKnRpbWUpOworCisgIHByaXZhdGU6CisgICAgYm9vbCBtSXNDbG9zZWQ7CisgICAgY29uc3Qgc3A8RGV2aWNlPiBtRGV2aWNlOworICAgIGF1ZGlvX3N0cmVhbV9pbl90ICptU3RyZWFtOworICAgIGNvbnN0IHNwPFN0cmVhbT4gbVN0cmVhbUNvbW1vbjsKKyAgICBjb25zdCBzcDxTdHJlYW1NbWFwPGF1ZGlvX3N0cmVhbV9pbl90Pj4gbVN0cmVhbU1tYXA7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRNUT4gbUNvbW1hbmRNUTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGF0YU1RPiBtRGF0YU1ROworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjphdG9taWM8Ym9vbD4gbVN0b3BSZWFkVGhyZWFkOworICAgIHNwPFRocmVhZD4gbVJlYWRUaHJlYWQ7CisKKyAgICB2aXJ0dWFsIH5TdHJlYW1JbigpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTUlOX0gKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbU91dC5jcHAgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1PdXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0ODQ5N2YKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1PdXQuY3BwCkBAIC0wLDAgKzEsNTM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJTdHJlYW1PdXRIQUwiCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisjZGVmaW5lIEFUUkFDRV9UQUcgQVRSQUNFX1RBR19BVURJTworCisjaW5jbHVkZSA8bWVtb3J5PgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9hdWRpby5oPgorI2luY2x1ZGUgPHV0aWxzL1RyYWNlLmg+CisKKyNpbmNsdWRlICJTdHJlYW1PdXQuaCIKKyNpbmNsdWRlICJVdGlsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXVkaW8geworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VGhyZWFkSW5mbzsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgV3JpdGVUaHJlYWQgOiBwdWJsaWMgVGhyZWFkIHsKKyAgIHB1YmxpYzoKKyAgICAvLyBXcml0ZVRocmVhZCdzIGxpZmVzcGFuIG5ldmVyIGV4Y2VlZHMgU3RyZWFtT3V0J3MgbGlmZXNwYW4uCisgICAgV3JpdGVUaHJlYWQoc3RkOjphdG9taWM8Ym9vbD4qIHN0b3AsIGF1ZGlvX3N0cmVhbV9vdXRfdCogc3RyZWFtLAorICAgICAgICAgICAgICAgIFN0cmVhbU91dDo6Q29tbWFuZE1RKiBjb21tYW5kTVEsIFN0cmVhbU91dDo6RGF0YU1RKiBkYXRhTVEsCisgICAgICAgICAgICAgICAgU3RyZWFtT3V0OjpTdGF0dXNNUSogc3RhdHVzTVEsIEV2ZW50RmxhZyogZWZHcm91cCkKKyAgICAgICAgOiBUaHJlYWQoZmFsc2UgLypjYW5DYWxsSmF2YSovKSwKKyAgICAgICAgICBtU3RvcChzdG9wKSwKKyAgICAgICAgICBtU3RyZWFtKHN0cmVhbSksCisgICAgICAgICAgbUNvbW1hbmRNUShjb21tYW5kTVEpLAorICAgICAgICAgIG1EYXRhTVEoZGF0YU1RKSwKKyAgICAgICAgICBtU3RhdHVzTVEoc3RhdHVzTVEpLAorICAgICAgICAgIG1FZkdyb3VwKGVmR3JvdXApLAorICAgICAgICAgIG1CdWZmZXIobnVsbHB0cikge30KKyAgICBib29sIGluaXQoKSB7CisgICAgICAgIG1CdWZmZXIucmVzZXQobmV3IChzdGQ6Om5vdGhyb3cpIHVpbnQ4X3RbbURhdGFNUS0+Z2V0UXVhbnR1bUNvdW50KCldKTsKKyAgICAgICAgcmV0dXJuIG1CdWZmZXIgIT0gbnVsbHB0cjsKKyAgICB9CisgICAgdmlydHVhbCB+V3JpdGVUaHJlYWQoKSB7fQorCisgICBwcml2YXRlOgorICAgIHN0ZDo6YXRvbWljPGJvb2w+KiBtU3RvcDsKKyAgICBhdWRpb19zdHJlYW1fb3V0X3QqIG1TdHJlYW07CisgICAgU3RyZWFtT3V0OjpDb21tYW5kTVEqIG1Db21tYW5kTVE7CisgICAgU3RyZWFtT3V0OjpEYXRhTVEqIG1EYXRhTVE7CisgICAgU3RyZWFtT3V0OjpTdGF0dXNNUSogbVN0YXR1c01ROworICAgIEV2ZW50RmxhZyogbUVmR3JvdXA7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gbUJ1ZmZlcjsKKyAgICBJU3RyZWFtT3V0OjpXcml0ZVN0YXR1cyBtU3RhdHVzOworCisgICAgYm9vbCB0aHJlYWRMb29wKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRvR2V0TGF0ZW5jeSgpOworICAgIHZvaWQgZG9HZXRQcmVzZW50YXRpb25Qb3NpdGlvbigpOworICAgIHZvaWQgZG9Xcml0ZSgpOworfTsKKwordm9pZCBXcml0ZVRocmVhZDo6ZG9Xcml0ZSgpIHsKKyAgICBjb25zdCBzaXplX3QgYXZhaWxUb1JlYWQgPSBtRGF0YU1RLT5hdmFpbGFibGVUb1JlYWQoKTsKKyAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6T0s7CisgICAgbVN0YXR1cy5yZXBseS53cml0dGVuID0gMDsKKyAgICBpZiAobURhdGFNUS0+cmVhZCgmbUJ1ZmZlclswXSwgYXZhaWxUb1JlYWQpKSB7CisgICAgICAgIHNzaXplX3Qgd3JpdGVSZXN1bHQgPSBtU3RyZWFtLT53cml0ZShtU3RyZWFtLCAmbUJ1ZmZlclswXSwgYXZhaWxUb1JlYWQpOworICAgICAgICBpZiAod3JpdGVSZXN1bHQgPj0gMCkgeworICAgICAgICAgICAgbVN0YXR1cy5yZXBseS53cml0dGVuID0gd3JpdGVSZXN1bHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtU3RhdHVzLnJldHZhbCA9IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygid3JpdGUiLCB3cml0ZVJlc3VsdCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgV3JpdGVUaHJlYWQ6OmRvR2V0UHJlc2VudGF0aW9uUG9zaXRpb24oKSB7CisgICAgbVN0YXR1cy5yZXR2YWwgPSBTdHJlYW1PdXQ6OmdldFByZXNlbnRhdGlvblBvc2l0aW9uSW1wbCgKKyAgICAgICAgbVN0cmVhbSwgJm1TdGF0dXMucmVwbHkucHJlc2VudGF0aW9uUG9zaXRpb24uZnJhbWVzLAorICAgICAgICAmbVN0YXR1cy5yZXBseS5wcmVzZW50YXRpb25Qb3NpdGlvbi50aW1lU3RhbXApOworfQorCit2b2lkIFdyaXRlVGhyZWFkOjpkb0dldExhdGVuY3koKSB7CisgICAgbVN0YXR1cy5yZXR2YWwgPSBSZXN1bHQ6Ok9LOworICAgIG1TdGF0dXMucmVwbHkubGF0ZW5jeU1zID0gbVN0cmVhbS0+Z2V0X2xhdGVuY3kobVN0cmVhbSk7Cit9CisKK2Jvb2wgV3JpdGVUaHJlYWQ6OnRocmVhZExvb3AoKSB7CisgICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHJldHVybiBjb250cm9sIGJhY2sgdG8gdGhlIFRocmVhZCB1bnRpbCBpdAorICAgIC8vIGRlY2lkZXMgdG8gc3RvcCwKKyAgICAvLyBhcyB0aGUgVGhyZWFkIHVzZXMgbXV0ZXhlcywgYW5kIHRoaXMgY2FuIGxlYWQgdG8gcHJpb3JpdHkgaW52ZXJzaW9uLgorICAgIHdoaWxlICghc3RkOjphdG9taWNfbG9hZF9leHBsaWNpdChtU3RvcCwgc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSkpIHsKKyAgICAgICAgdWludDMyX3QgZWZTdGF0ZSA9IDA7CisgICAgICAgIG1FZkdyb3VwLT53YWl0KHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6Tk9UX0VNUFRZKSwKKyAgICAgICAgICAgICAgICAgICAgICAgJmVmU3RhdGUpOworICAgICAgICBpZiAoIShlZlN0YXRlICYKKyAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRU1QVFkpKSkgeworICAgICAgICAgICAgY29udGludWU7ICAvLyBOb3RoaW5nIHRvIGRvLgorICAgICAgICB9CisgICAgICAgIGlmICghbUNvbW1hbmRNUS0+cmVhZCgmbVN0YXR1cy5yZXBseVRvKSkgeworICAgICAgICAgICAgY29udGludWU7ICAvLyBOb3RoaW5nIHRvIGRvLgorICAgICAgICB9CisgICAgICAgIHN3aXRjaCAobVN0YXR1cy5yZXBseVRvKSB7CisgICAgICAgICAgICBjYXNlIElTdHJlYW1PdXQ6OldyaXRlQ29tbWFuZDo6V1JJVEU6CisgICAgICAgICAgICAgICAgZG9Xcml0ZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJU3RyZWFtT3V0OjpXcml0ZUNvbW1hbmQ6OkdFVF9QUkVTRU5UQVRJT05fUE9TSVRJT046CisgICAgICAgICAgICAgICAgZG9HZXRQcmVzZW50YXRpb25Qb3NpdGlvbigpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBJU3RyZWFtT3V0OjpXcml0ZUNvbW1hbmQ6OkdFVF9MQVRFTkNZOgorICAgICAgICAgICAgICAgIGRvR2V0TGF0ZW5jeSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBBTE9HRSgiVW5rbm93biB3cml0ZSB0aHJlYWQgY29tbWFuZCBjb2RlICVkIiwgbVN0YXR1cy5yZXBseVRvKTsKKyAgICAgICAgICAgICAgICBtU3RhdHVzLnJldHZhbCA9IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoIW1TdGF0dXNNUS0+d3JpdGUoJm1TdGF0dXMpKSB7CisgICAgICAgICAgICBBTE9HRSgic3RhdHVzIG1lc3NhZ2UgcXVldWUgd3JpdGUgZmFpbGVkIik7CisgICAgICAgIH0KKyAgICAgICAgbUVmR3JvdXAtPndha2Uoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lc3NhZ2VRdWV1ZUZsYWdCaXRzOjpOT1RfRlVMTCkpOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAgLy8gbmFtZXNwYWNlCisKK1N0cmVhbU91dDo6U3RyZWFtT3V0KGNvbnN0IHNwPERldmljZT4mIGRldmljZSwgYXVkaW9fc3RyZWFtX291dF90KiBzdHJlYW0pCisgICAgOiBtSXNDbG9zZWQoZmFsc2UpLAorICAgICAgbURldmljZShkZXZpY2UpLAorICAgICAgbVN0cmVhbShzdHJlYW0pLAorICAgICAgbVN0cmVhbUNvbW1vbihuZXcgU3RyZWFtKCZzdHJlYW0tPmNvbW1vbikpLAorICAgICAgbVN0cmVhbU1tYXAobmV3IFN0cmVhbU1tYXA8YXVkaW9fc3RyZWFtX291dF90PihzdHJlYW0pKSwKKyAgICAgIG1FZkdyb3VwKG51bGxwdHIpLAorICAgICAgbVN0b3BXcml0ZVRocmVhZChmYWxzZSkge30KKworU3RyZWFtT3V0Ojp+U3RyZWFtT3V0KCkgeworICAgIEFUUkFDRV9DQUxMKCk7CisgICAgY2xvc2UoKTsKKyAgICBpZiAobVdyaXRlVGhyZWFkLmdldCgpKSB7CisgICAgICAgIEFUUkFDRV9OQU1FKCJtV3JpdGVUaHJlYWQtPmpvaW4iKTsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gbVdyaXRlVGhyZWFkLT5qb2luKCk7CisgICAgICAgIEFMT0dFX0lGKHN0YXR1cywgIndyaXRlIHRocmVhZCBleGl0IGVycm9yOiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICB9CisgICAgaWYgKG1FZkdyb3VwKSB7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IEV2ZW50RmxhZzo6ZGVsZXRlRXZlbnRGbGFnKCZtRWZHcm91cCk7CisgICAgICAgIEFMT0dFX0lGKHN0YXR1cywgIndyaXRlIE1RIGV2ZW50IGZsYWcgZGVsZXRpb24gZXJyb3I6ICVzIiwKKyAgICAgICAgICAgICAgICAgc3RyZXJyb3IoLXN0YXR1cykpOworICAgIH0KKyAgICBtQ2FsbGJhY2suY2xlYXIoKTsKKyAgICBtRGV2aWNlLT5jbG9zZU91dHB1dFN0cmVhbShtU3RyZWFtKTsKKyAgICBtU3RyZWFtID0gbnVsbHB0cjsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KK1JldHVybjx1aW50NjRfdD4gU3RyZWFtT3V0OjpnZXRGcmFtZVNpemUoKSB7CisgICAgcmV0dXJuIGF1ZGlvX3N0cmVhbV9vdXRfZnJhbWVfc2l6ZShtU3RyZWFtKTsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBTdHJlYW1PdXQ6OmdldEZyYW1lQ291bnQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEZyYW1lQ291bnQoKTsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBTdHJlYW1PdXQ6OmdldEJ1ZmZlclNpemUoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEJ1ZmZlclNpemUoKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBTdHJlYW1PdXQ6OmdldFNhbXBsZVJhdGUoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldFNhbXBsZVJhdGUoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoCisgICAgZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnNldFNhbXBsZVJhdGUodWludDMyX3Qgc2FtcGxlUmF0ZUh6KSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldFNhbXBsZVJhdGUoc2FtcGxlUmF0ZUh6KTsKK30KKworUmV0dXJuPEF1ZGlvQ2hhbm5lbE1hc2s+IFN0cmVhbU91dDo6Z2V0Q2hhbm5lbE1hc2soKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldENoYW5uZWxNYXNrKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1PdXQ6OmdldFN1cHBvcnRlZENoYW5uZWxNYXNrcygKKyAgICBnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3NfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzZXRDaGFubmVsTWFzayhBdWRpb0NoYW5uZWxNYXNrIG1hc2spIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0Q2hhbm5lbE1hc2sobWFzayk7Cit9CisKK1JldHVybjxBdWRpb0Zvcm1hdD4gU3RyZWFtT3V0OjpnZXRGb3JtYXQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmdldEZvcm1hdCgpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRTdXBwb3J0ZWRGb3JtYXRzKGdldFN1cHBvcnRlZEZvcm1hdHNfY2IgX2hpZGxfY2IpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0U3VwcG9ydGVkRm9ybWF0cyhfaGlkbF9jYik7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c2V0Rm9ybWF0KEF1ZGlvRm9ybWF0IGZvcm1hdCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRGb3JtYXQoZm9ybWF0KTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0QXVkaW9Qcm9wZXJ0aWVzKGdldEF1ZGlvUHJvcGVydGllc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRBdWRpb1Byb3BlcnRpZXMoX2hpZGxfY2IpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OmFkZEVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5hZGRFZmZlY3QoZWZmZWN0SWQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnJlbW92ZUVmZmVjdCh1aW50NjRfdCBlZmZlY3RJZCkgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5yZW1vdmVFZmZlY3QoZWZmZWN0SWQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnN0YW5kYnkoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnN0YW5kYnkoKTsKK30KKworUmV0dXJuPEF1ZGlvRGV2aWNlPiBTdHJlYW1PdXQ6OmdldERldmljZSgpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+Z2V0RGV2aWNlKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c2V0RGV2aWNlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0RGV2aWNlKGFkZHJlc3MpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnNldENvbm5lY3RlZFN0YXRlKGNvbnN0IERldmljZUFkZHJlc3MmIGFkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY29ubmVjdGVkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPnNldENvbm5lY3RlZFN0YXRlKGFkZHJlc3MsIGNvbm5lY3RlZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c2V0SHdBdlN5bmModWludDMyX3QgaHdBdlN5bmMpIHsKKyAgICByZXR1cm4gbVN0cmVhbUNvbW1vbi0+c2V0SHdBdlN5bmMoaHdBdlN5bmMpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRQYXJhbWV0ZXJzKGNvbnN0IGhpZGxfdmVjPGhpZGxfc3RyaW5nPiYga2V5cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5nZXRQYXJhbWV0ZXJzKGtleXMsIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzZXRQYXJhbWV0ZXJzKAorICAgIGNvbnN0IGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiYgcGFyYW1ldGVycykgeworICAgIHJldHVybiBtU3RyZWFtQ29tbW9uLT5zZXRQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpkZWJ1Z0R1bXAoY29uc3QgaGlkbF9oYW5kbGUmIGZkKSB7CisgICAgcmV0dXJuIG1TdHJlYW1Db21tb24tPmRlYnVnRHVtcChmZCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6Y2xvc2UoKSB7CisgICAgaWYgKG1Jc0Nsb3NlZCkgcmV0dXJuIFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICBtSXNDbG9zZWQgPSB0cnVlOworICAgIGlmIChtV3JpdGVUaHJlYWQuZ2V0KCkpIHsKKyAgICAgICAgbVN0b3BXcml0ZVRocmVhZC5zdG9yZSh0cnVlLCBzdGQ6Om1lbW9yeV9vcmRlcl9yZWxlYXNlKTsKKyAgICB9CisgICAgaWYgKG1FZkdyb3VwKSB7CisgICAgICAgIG1FZkdyb3VwLT53YWtlKHN0YXRpY19jYXN0PHVpbnQzMl90PihNZXNzYWdlUXVldWVGbGFnQml0czo6Tk9UX0VNUFRZKSk7CisgICAgfQorICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXQgZm9sbG93LgorUmV0dXJuPHVpbnQzMl90PiBTdHJlYW1PdXQ6OmdldExhdGVuY3koKSB7CisgICAgcmV0dXJuIG1TdHJlYW0tPmdldF9sYXRlbmN5KG1TdHJlYW0pOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnNldFZvbHVtZShmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCkgeworICAgIGlmIChtU3RyZWFtLT5zZXRfdm9sdW1lID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICB9CisgICAgaWYgKCFpc0dhaW5Ob3JtYWxpemVkKGxlZnQpKSB7CisgICAgICAgIEFMT0dXKCJDYW4gbm90IHNldCBhIHN0cmVhbSBvdXRwdXQgdm9sdW1lIHslZiwgJWZ9IG91dHNpZGUgWzAsMV0iLCBsZWZ0LAorICAgICAgICAgICAgICByaWdodCk7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTOworICAgIH0KKyAgICByZXR1cm4gU3RyZWFtOjphbmFseXplU3RhdHVzKCJzZXRfdm9sdW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1TdHJlYW0tPnNldF92b2x1bWUobVN0cmVhbSwgbGVmdCwgcmlnaHQpKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6cHJlcGFyZUZvcldyaXRpbmcodWludDMyX3QgZnJhbWVTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZnJhbWVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVwYXJlRm9yV3JpdGluZ19jYiBfaGlkbF9jYikgeworICAgIHN0YXR1c190IHN0YXR1czsKKyAgICBUaHJlYWRJbmZvIHRocmVhZEluZm8gPSB7MCwgMH07CisKKyAgICAvLyBXcmFwIHRoZSBfaGlkbF9jYiB0byByZXR1cm4gYW4gZXJyb3IKKyAgICBhdXRvIHNlbmRFcnJvciA9IFt0aGlzLCAmdGhyZWFkSW5mbywgJl9oaWRsX2NiXShSZXN1bHQgcmVzdWx0KSB7CisgICAgICAgIF9oaWRsX2NiKHJlc3VsdCwgQ29tbWFuZE1ROjpEZXNjcmlwdG9yKCksIERhdGFNUTo6RGVzY3JpcHRvcigpLAorICAgICAgICAgICAgICAgICBTdGF0dXNNUTo6RGVzY3JpcHRvcigpLCB0aHJlYWRJbmZvKTsKKworICAgIH07CisKKyAgICAvLyBDcmVhdGUgbWVzc2FnZSBxdWV1ZXMuCisgICAgaWYgKG1EYXRhTVEpIHsKKyAgICAgICAgQUxPR0UoInRoZSBjbGllbnQgYXR0ZW1wdHMgdG8gY2FsbCBwcmVwYXJlRm9yV3JpdGluZyB0d2ljZSIpOworICAgICAgICBzZW5kRXJyb3IoUmVzdWx0OjpJTlZBTElEX1NUQVRFKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRNUT4gdGVtcENvbW1hbmRNUShuZXcgQ29tbWFuZE1RKDEpKTsKKworICAgIC8vIENoZWNrIGZyYW1lU2l6ZSBhbmQgZnJhbWVzQ291bnQKKyAgICBpZiAoZnJhbWVTaXplID09IDAgfHwgZnJhbWVzQ291bnQgPT0gMCkgeworICAgICAgICBBTE9HRSgiTnVsbCBmcmFtZVNpemUgKCV1KSBvciBmcmFtZXNDb3VudCAoJXUpIiwgZnJhbWVTaXplLAorICAgICAgICAgICAgICBmcmFtZXNDb3VudCk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgLy8gQSBtZXNzYWdlIHF1ZXVlIGFzc2VydHMgaWYgaXQgY2FuIG5vdCBoYW5kbGUgdGhlIHJlcXVlc3RlZCBidWZmZXIsCisgICAgLy8gdGh1cyB0aGUgY2xpZW50IGhhcyB0byBndWVzcyB0aGUgbWF4aW11bSBzaXplIGl0IGNhbiBoYW5kbGUKKyAgICBzaXplX3QgbWV0YWRhdGFPdmVyaGVhZCA9CisgICAgICAgIDEwMDAwMDsgIC8vIEFyYml0cmFyeSBtYXJnaW4gZm9yIHRoZSBvdmVyaGVhZCBvZiBhIG1lc3NhZ2UgcXVldWUKKyAgICBpZiAoZnJhbWVTaXplID4KKyAgICAgICAgKHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCkgLSBtZXRhZGF0YU92ZXJoZWFkKSAvIGZyYW1lc0NvdW50KSB7CisgICAgICAgIEFMT0dFKCJCdWZmZXIgdG9vIGJpZzogJXUqJXUgYnl0ZXMgY2FuIG5vdCBmaXQgaW4gYSBtZXNzYWdlIHF1ZXVlIiwKKyAgICAgICAgICAgICAgZnJhbWVTaXplLCBmcmFtZXNDb3VudCk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFNUT4gdGVtcERhdGFNUSgKKyAgICAgICAgbmV3IERhdGFNUShmcmFtZVNpemUgKiBmcmFtZXNDb3VudCwgdHJ1ZSAvKiBFdmVudEZsYWcgKi8pKTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxTdGF0dXNNUT4gdGVtcFN0YXR1c01RKG5ldyBTdGF0dXNNUSgxKSk7CisgICAgaWYgKCF0ZW1wQ29tbWFuZE1RLT5pc1ZhbGlkKCkgfHwgIXRlbXBEYXRhTVEtPmlzVmFsaWQoKSB8fAorICAgICAgICAhdGVtcFN0YXR1c01RLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgQUxPR0VfSUYoIXRlbXBDb21tYW5kTVEtPmlzVmFsaWQoKSwgImNvbW1hbmQgTVEgaXMgaW52YWxpZCIpOworICAgICAgICBBTE9HRV9JRighdGVtcERhdGFNUS0+aXNWYWxpZCgpLCAiZGF0YSBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIEFMT0dFX0lGKCF0ZW1wU3RhdHVzTVEtPmlzVmFsaWQoKSwgInN0YXR1cyBNUSBpcyBpbnZhbGlkIik7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgRXZlbnRGbGFnKiB0ZW1wUmF3RWZHcm91cHt9OworICAgIHN0YXR1cyA9IEV2ZW50RmxhZzo6Y3JlYXRlRXZlbnRGbGFnKHRlbXBEYXRhTVEtPmdldEV2ZW50RmxhZ1dvcmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGVtcFJhd0VmR3JvdXApOworICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudEZsYWcsIHZvaWQgKCopKEV2ZW50RmxhZyopPiB0ZW1wRWxmR3JvdXAoCisgICAgICAgIHRlbXBSYXdFZkdyb3VwLCBbXShhdXRvKiBlZikgeyBFdmVudEZsYWc6OmRlbGV0ZUV2ZW50RmxhZygmZWYpOyB9KTsKKyAgICBpZiAoc3RhdHVzICE9IE9LIHx8ICF0ZW1wRWxmR3JvdXApIHsKKyAgICAgICAgQUxPR0UoImZhaWxlZCBjcmVhdGluZyBldmVudCBmbGFnIGZvciBkYXRhIE1ROiAlcyIsIHN0cmVycm9yKC1zdGF0dXMpKTsKKyAgICAgICAgc2VuZEVycm9yKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIC8vIENyZWF0ZSBhbmQgbGF1bmNoIHRoZSB0aHJlYWQuCisgICAgYXV0byB0ZW1wV3JpdGVUaHJlYWQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdyaXRlVGhyZWFkPigKKyAgICAgICAgJm1TdG9wV3JpdGVUaHJlYWQsIG1TdHJlYW0sIHRlbXBDb21tYW5kTVEuZ2V0KCksIHRlbXBEYXRhTVEuZ2V0KCksCisgICAgICAgIHRlbXBTdGF0dXNNUS5nZXQoKSwgdGVtcEVsZkdyb3VwLmdldCgpKTsKKyAgICBpZiAoIXRlbXBXcml0ZVRocmVhZC0+aW5pdCgpKSB7CisgICAgICAgIEFMT0dXKCJmYWlsZWQgdG8gc3RhcnQgd3JpdGVyIHRocmVhZDogJXMiLCBzdHJlcnJvcigtc3RhdHVzKSk7CisgICAgICAgIHNlbmRFcnJvcihSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3RhdHVzID0gdGVtcFdyaXRlVGhyZWFkLT5ydW4oIndyaXRlciIsIFBSSU9SSVRZX1VSR0VOVF9BVURJTyk7CisgICAgaWYgKHN0YXR1cyAhPSBPSykgeworICAgICAgICBBTE9HVygiZmFpbGVkIHRvIHN0YXJ0IHdyaXRlciB0aHJlYWQ6ICVzIiwgc3RyZXJyb3IoLXN0YXR1cykpOworICAgICAgICBzZW5kRXJyb3IoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbUNvbW1hbmRNUSA9IHN0ZDo6bW92ZSh0ZW1wQ29tbWFuZE1RKTsKKyAgICBtRGF0YU1RID0gc3RkOjptb3ZlKHRlbXBEYXRhTVEpOworICAgIG1TdGF0dXNNUSA9IHN0ZDo6bW92ZSh0ZW1wU3RhdHVzTVEpOworICAgIG1Xcml0ZVRocmVhZCA9IHRlbXBXcml0ZVRocmVhZC5yZWxlYXNlKCk7CisgICAgbUVmR3JvdXAgPSB0ZW1wRWxmR3JvdXAucmVsZWFzZSgpOworICAgIHRocmVhZEluZm8ucGlkID0gZ2V0cGlkKCk7CisgICAgdGhyZWFkSW5mby50aWQgPSBtV3JpdGVUaHJlYWQtPmdldFRpZCgpOworICAgIF9oaWRsX2NiKFJlc3VsdDo6T0ssICptQ29tbWFuZE1RLT5nZXREZXNjKCksICptRGF0YU1RLT5nZXREZXNjKCksCisgICAgICAgICAgICAgKm1TdGF0dXNNUS0+Z2V0RGVzYygpLCB0aHJlYWRJbmZvKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXRSZW5kZXJQb3NpdGlvbihnZXRSZW5kZXJQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIHVpbnQzMl90IGhhbERzcEZyYW1lczsKKyAgICBSZXN1bHQgcmV0dmFsID0gU3RyZWFtOjphbmFseXplU3RhdHVzKAorICAgICAgICAiZ2V0X3JlbmRlcl9wb3NpdGlvbiIsCisgICAgICAgIG1TdHJlYW0tPmdldF9yZW5kZXJfcG9zaXRpb24obVN0cmVhbSwgJmhhbERzcEZyYW1lcykpOworICAgIF9oaWRsX2NiKHJldHZhbCwgaGFsRHNwRnJhbWVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3RyZWFtT3V0OjpnZXROZXh0V3JpdGVUaW1lc3RhbXAoCisgICAgZ2V0TmV4dFdyaXRlVGltZXN0YW1wX2NiIF9oaWRsX2NiKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIGludDY0X3QgdGltZXN0YW1wVXMgPSAwOworICAgIGlmIChtU3RyZWFtLT5nZXRfbmV4dF93cml0ZV90aW1lc3RhbXAgIT0gTlVMTCkgeworICAgICAgICByZXR2YWwgPSBTdHJlYW06OmFuYWx5emVTdGF0dXMoCisgICAgICAgICAgICAiZ2V0X25leHRfd3JpdGVfdGltZXN0YW1wIiwKKyAgICAgICAgICAgIG1TdHJlYW0tPmdldF9uZXh0X3dyaXRlX3RpbWVzdGFtcChtU3RyZWFtLCAmdGltZXN0YW1wVXMpKTsKKyAgICB9CisgICAgX2hpZGxfY2IocmV0dmFsLCB0aW1lc3RhbXBVcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpzZXRDYWxsYmFjayhjb25zdCBzcDxJU3RyZWFtT3V0Q2FsbGJhY2s+JiBjYWxsYmFjaykgeworICAgIGlmIChtU3RyZWFtLT5zZXRfY2FsbGJhY2sgPT0gTlVMTCkgcmV0dXJuIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKKyAgICBpbnQgcmVzdWx0ID0gbVN0cmVhbS0+c2V0X2NhbGxiYWNrKG1TdHJlYW0sIFN0cmVhbU91dDo6YXN5bmNDYWxsYmFjaywgdGhpcyk7CisgICAgaWYgKHJlc3VsdCA9PSAwKSB7CisgICAgICAgIG1DYWxsYmFjayA9IGNhbGxiYWNrOworICAgIH0KKyAgICByZXR1cm4gU3RyZWFtOjphbmFseXplU3RhdHVzKCJzZXRfY2FsbGJhY2siLCByZXN1bHQpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OmNsZWFyQ2FsbGJhY2soKSB7CisgICAgaWYgKG1TdHJlYW0tPnNldF9jYWxsYmFjayA9PSBOVUxMKSByZXR1cm4gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworICAgIG1DYWxsYmFjay5jbGVhcigpOworICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCisvLyBzdGF0aWMKK2ludCBTdHJlYW1PdXQ6OmFzeW5jQ2FsbGJhY2soc3RyZWFtX2NhbGxiYWNrX2V2ZW50X3QgZXZlbnQsIHZvaWQqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBjb29raWUpIHsKKyAgICB3cDxTdHJlYW1PdXQ+IHdlYWtTZWxmKHJlaW50ZXJwcmV0X2Nhc3Q8U3RyZWFtT3V0Kj4oY29va2llKSk7CisgICAgc3A8U3RyZWFtT3V0PiBzZWxmID0gd2Vha1NlbGYucHJvbW90ZSgpOworICAgIGlmIChzZWxmID09IG51bGxwdHIgfHwgc2VsZi0+bUNhbGxiYWNrID09IG51bGxwdHIpIHJldHVybiAwOworICAgIEFMT0dWKCJhc3luY0NhbGxiYWNrKCkgZXZlbnQgJWQiLCBldmVudCk7CisgICAgc3dpdGNoIChldmVudCkgeworICAgICAgICBjYXNlIFNUUkVBTV9DQktfRVZFTlRfV1JJVEVfUkVBRFk6CisgICAgICAgICAgICBzZWxmLT5tQ2FsbGJhY2stPm9uV3JpdGVSZWFkeSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU1RSRUFNX0NCS19FVkVOVF9EUkFJTl9SRUFEWToKKyAgICAgICAgICAgIHNlbGYtPm1DYWxsYmFjay0+b25EcmFpblJlYWR5KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBTVFJFQU1fQ0JLX0VWRU5UX0VSUk9SOgorICAgICAgICAgICAgc2VsZi0+bUNhbGxiYWNrLT5vbkVycm9yKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dXKCJhc3luY0NhbGxiYWNrKCkgdW5rbm93biBldmVudCAlZCIsIGV2ZW50KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6c3VwcG9ydHNQYXVzZUFuZFJlc3VtZSgKKyAgICBzdXBwb3J0c1BhdXNlQW5kUmVzdW1lX2NiIF9oaWRsX2NiKSB7CisgICAgX2hpZGxfY2IobVN0cmVhbS0+cGF1c2UgIT0gTlVMTCwgbVN0cmVhbS0+cmVzdW1lICE9IE5VTEwpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6cGF1c2UoKSB7CisgICAgcmV0dXJuIG1TdHJlYW0tPnBhdXNlICE9IE5VTEwKKyAgICAgICAgICAgICAgID8gU3RyZWFtOjphbmFseXplU3RhdHVzKCJwYXVzZSIsIG1TdHJlYW0tPnBhdXNlKG1TdHJlYW0pKQorICAgICAgICAgICAgICAgOiBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQ7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6cmVzdW1lKCkgeworICAgIHJldHVybiBtU3RyZWFtLT5yZXN1bWUgIT0gTlVMTAorICAgICAgICAgICAgICAgPyBTdHJlYW06OmFuYWx5emVTdGF0dXMoInJlc3VtZSIsIG1TdHJlYW0tPnJlc3VtZShtU3RyZWFtKSkKKyAgICAgICAgICAgICAgIDogUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworfQorCitSZXR1cm48Ym9vbD4gU3RyZWFtT3V0OjpzdXBwb3J0c0RyYWluKCkgeworICAgIHJldHVybiBtU3RyZWFtLT5kcmFpbiAhPSBOVUxMOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OmRyYWluKEF1ZGlvRHJhaW4gdHlwZSkgeworICAgIHJldHVybiBtU3RyZWFtLT5kcmFpbiAhPSBOVUxMCisgICAgICAgICAgICAgICA/IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygKKyAgICAgICAgICAgICAgICAgICAgICJkcmFpbiIsCisgICAgICAgICAgICAgICAgICAgICBtU3RyZWFtLT5kcmFpbihtU3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8YXVkaW9fZHJhaW5fdHlwZV90Pih0eXBlKSkpCisgICAgICAgICAgICAgICA6IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworUmV0dXJuPFJlc3VsdD4gU3RyZWFtT3V0OjpmbHVzaCgpIHsKKyAgICByZXR1cm4gbVN0cmVhbS0+Zmx1c2ggIT0gTlVMTAorICAgICAgICAgICAgICAgPyBTdHJlYW06OmFuYWx5emVTdGF0dXMoImZsdXNoIiwgbVN0cmVhbS0+Zmx1c2gobVN0cmVhbSkpCisgICAgICAgICAgICAgICA6IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRDsKK30KKworLy8gc3RhdGljCitSZXN1bHQgU3RyZWFtT3V0OjpnZXRQcmVzZW50YXRpb25Qb3NpdGlvbkltcGwoYXVkaW9fc3RyZWFtX291dF90KiBzdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QqIGZyYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lU3BlYyogdGltZVN0YW1wKSB7CisgICAgUmVzdWx0IHJldHZhbChSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIGlmIChzdHJlYW0tPmdldF9wcmVzZW50YXRpb25fcG9zaXRpb24gPT0gTlVMTCkgcmV0dXJuIHJldHZhbDsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgaGFsVGltZVN0YW1wOworICAgIHJldHZhbCA9IFN0cmVhbTo6YW5hbHl6ZVN0YXR1cygKKyAgICAgICAgImdldF9wcmVzZW50YXRpb25fcG9zaXRpb24iLAorICAgICAgICBzdHJlYW0tPmdldF9wcmVzZW50YXRpb25fcG9zaXRpb24oc3RyZWFtLCBmcmFtZXMsICZoYWxUaW1lU3RhbXApLAorICAgICAgICAvLyBEb24ndCBsb2dzcGFtIG9uIEVJTlZBTC0taXQncyBub3JtYWwgZm9yIGdldF9wcmVzZW50YXRpb25fcG9zaXRpb24KKyAgICAgICAgLy8gdG8gcmV0dXJuIGl0IHNvbWV0aW1lcy4gRUFHQUlOIG1heSBiZSByZXR1cm5lZCBieSBBMkRQIGF1ZGlvIEhBTAorICAgICAgICAvLyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgRUlOVkFMLCBFQUdBSU4pOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICB0aW1lU3RhbXAtPnR2U2VjID0gaGFsVGltZVN0YW1wLnR2X3NlYzsKKyAgICAgICAgdGltZVN0YW1wLT50dk5TZWMgPSBoYWxUaW1lU3RhbXAudHZfbnNlYzsKKyAgICB9CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0UHJlc2VudGF0aW9uUG9zaXRpb24oCisgICAgZ2V0UHJlc2VudGF0aW9uUG9zaXRpb25fY2IgX2hpZGxfY2IpIHsKKyAgICB1aW50NjRfdCBmcmFtZXMgPSAwOworICAgIFRpbWVTcGVjIHRpbWVTdGFtcCA9IHswLCAwfTsKKyAgICBSZXN1bHQgcmV0dmFsID0gZ2V0UHJlc2VudGF0aW9uUG9zaXRpb25JbXBsKG1TdHJlYW0sICZmcmFtZXMsICZ0aW1lU3RhbXApOworICAgIF9oaWRsX2NiKHJldHZhbCwgZnJhbWVzLCB0aW1lU3RhbXApOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxSZXN1bHQ+IFN0cmVhbU91dDo6c3RhcnQoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5zdGFydCgpOworfQorCitSZXR1cm48UmVzdWx0PiBTdHJlYW1PdXQ6OnN0b3AoKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5zdG9wKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdHJlYW1PdXQ6OmNyZWF0ZU1tYXBCdWZmZXIoaW50MzJfdCBtaW5TaXplRnJhbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVNbWFwQnVmZmVyX2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIG1TdHJlYW1NbWFwLT5jcmVhdGVNbWFwQnVmZmVyKAorICAgICAgICBtaW5TaXplRnJhbWVzLCBhdWRpb19zdHJlYW1fb3V0X2ZyYW1lX3NpemUobVN0cmVhbSksIF9oaWRsX2NiKTsKK30KKworUmV0dXJuPHZvaWQ+IFN0cmVhbU91dDo6Z2V0TW1hcFBvc2l0aW9uKGdldE1tYXBQb3NpdGlvbl9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBtU3RyZWFtTW1hcC0+Z2V0TW1hcFBvc2l0aW9uKF9oaWRsX2NiKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGF1ZGlvCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1PdXQuaCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1N0cmVhbU91dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MzUyYmMKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9TdHJlYW1PdXQuaApAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1NUUkVBTU9VVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9TVFJFQU1PVVRfSAorCisjaW5jbHVkZSA8YXRvbWljPgorI2luY2x1ZGUgPG1lbW9yeT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vMi4wL0lTdHJlYW1PdXQuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8Zm1xL0V2ZW50RmxhZy5oPgorI2luY2x1ZGUgPGZtcS9NZXNzYWdlUXVldWUuaD4KKyNpbmNsdWRlIDx1dGlscy9UaHJlYWQuaD4KKworI2luY2x1ZGUgIkRldmljZS5oIgorI2luY2x1ZGUgIlN0cmVhbS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ2hhbm5lbE1hc2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRm9ybWF0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OkF1ZGlvRHJhaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbU91dENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlBhcmFtZXRlclZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpUaW1lU3BlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFN0cmVhbU91dCA6IHB1YmxpYyBJU3RyZWFtT3V0IHsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTxXcml0ZUNvbW1hbmQsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+IENvbW1hbmRNUTsKKyAgICB0eXBlZGVmIE1lc3NhZ2VRdWV1ZTx1aW50OF90LCBrU3luY2hyb25pemVkUmVhZFdyaXRlPiBEYXRhTVE7CisgICAgdHlwZWRlZiBNZXNzYWdlUXVldWU8V3JpdGVTdGF0dXMsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+IFN0YXR1c01ROworCisgICAgU3RyZWFtT3V0KGNvbnN0IHNwPERldmljZT4mIGRldmljZSwgYXVkaW9fc3RyZWFtX291dF90KiBzdHJlYW0pOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtIGZvbGxvdy4KKyAgICBSZXR1cm48dWludDY0X3Q+IGdldEZyYW1lU2l6ZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDY0X3Q+IGdldEZyYW1lQ291bnQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQ2NF90PiBnZXRCdWZmZXJTaXplKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50MzJfdD4gZ2V0U2FtcGxlUmF0ZSgpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXMoZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRTYW1wbGVSYXRlKHVpbnQzMl90IHNhbXBsZVJhdGVIeikgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0NoYW5uZWxNYXNrPiBnZXRDaGFubmVsTWFzaygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkQ2hhbm5lbE1hc2tzKGdldFN1cHBvcnRlZENoYW5uZWxNYXNrc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENoYW5uZWxNYXNrKEF1ZGlvQ2hhbm5lbE1hc2sgbWFzaykgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0Zvcm1hdD4gZ2V0Rm9ybWF0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRGb3JtYXRzKGdldFN1cHBvcnRlZEZvcm1hdHNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRGb3JtYXQoQXVkaW9Gb3JtYXQgZm9ybWF0KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEF1ZGlvUHJvcGVydGllcyhnZXRBdWRpb1Byb3BlcnRpZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBhZGRFZmZlY3QodWludDY0X3QgZWZmZWN0SWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiByZW1vdmVFZmZlY3QodWludDY0X3QgZWZmZWN0SWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzdGFuZGJ5KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxBdWRpb0RldmljZT4gZ2V0RGV2aWNlKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldERldmljZShjb25zdCBEZXZpY2VBZGRyZXNzJiBhZGRyZXNzKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Q29ubmVjdGVkU3RhdGUoY29uc3QgRGV2aWNlQWRkcmVzcyYgYWRkcmVzcywgYm9vbCBjb25uZWN0ZWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVzdWx0PiBzZXRId0F2U3luYyh1aW50MzJfdCBod0F2U3luYykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQYXJhbWV0ZXJzKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBrZXlzLCBnZXRQYXJhbWV0ZXJzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0UGFyYW1ldGVycyhjb25zdCBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4mIHBhcmFtZXRlcnMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlKCkgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtT3V0IGZvbGxvdy4KKyAgICBSZXR1cm48dWludDMyX3Q+IGdldExhdGVuY3koKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc2V0Vm9sdW1lKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0KSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXBhcmVGb3JXcml0aW5nKAorICAgICAgICAgICAgdWludDMyX3QgZnJhbWVTaXplLCB1aW50MzJfdCBmcmFtZXNDb3VudCwgcHJlcGFyZUZvcldyaXRpbmdfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UmVuZGVyUG9zaXRpb24oZ2V0UmVuZGVyUG9zaXRpb25fY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0TmV4dFdyaXRlVGltZXN0YW1wKGdldE5leHRXcml0ZVRpbWVzdGFtcF9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHNldENhbGxiYWNrKGNvbnN0IHNwPElTdHJlYW1PdXRDYWxsYmFjaz4mIGNhbGxiYWNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gY2xlYXJDYWxsYmFjaygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc3VwcG9ydHNQYXVzZUFuZFJlc3VtZShzdXBwb3J0c1BhdXNlQW5kUmVzdW1lX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcGF1c2UoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gcmVzdW1lKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzdXBwb3J0c0RyYWluKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGRyYWluKEF1ZGlvRHJhaW4gdHlwZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGZsdXNoKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQcmVzZW50YXRpb25Qb3NpdGlvbihnZXRQcmVzZW50YXRpb25Qb3NpdGlvbl9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IHN0YXJ0KCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlc3VsdD4gc3RvcCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVNbWFwQnVmZmVyKGludDMyX3QgbWluU2l6ZUZyYW1lcywgY3JlYXRlTW1hcEJ1ZmZlcl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldE1tYXBQb3NpdGlvbihnZXRNbWFwUG9zaXRpb25fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgc3RhdGljIFJlc3VsdCBnZXRQcmVzZW50YXRpb25Qb3NpdGlvbkltcGwoCisgICAgICAgICAgICBhdWRpb19zdHJlYW1fb3V0X3QgKnN0cmVhbSwgdWludDY0X3QgKmZyYW1lcywgVGltZVNwZWMgKnRpbWVTdGFtcCk7CisKKyAgcHJpdmF0ZToKKyAgICBib29sIG1Jc0Nsb3NlZDsKKyAgICBjb25zdCBzcDxEZXZpY2U+IG1EZXZpY2U7CisgICAgYXVkaW9fc3RyZWFtX291dF90ICptU3RyZWFtOworICAgIGNvbnN0IHNwPFN0cmVhbT4gbVN0cmVhbUNvbW1vbjsKKyAgICBjb25zdCBzcDxTdHJlYW1NbWFwPGF1ZGlvX3N0cmVhbV9vdXRfdD4+IG1TdHJlYW1NbWFwOworICAgIHNwPElTdHJlYW1PdXRDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kTVE+IG1Db21tYW5kTVE7CisgICAgc3RkOjp1bmlxdWVfcHRyPERhdGFNUT4gbURhdGFNUTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8U3RhdHVzTVE+IG1TdGF0dXNNUTsKKyAgICBFdmVudEZsYWcqIG1FZkdyb3VwOworICAgIHN0ZDo6YXRvbWljPGJvb2w+IG1TdG9wV3JpdGVUaHJlYWQ7CisgICAgc3A8VGhyZWFkPiBtV3JpdGVUaHJlYWQ7CisKKyAgICB2aXJ0dWFsIH5TdHJlYW1PdXQoKTsKKworICAgIHN0YXRpYyBpbnQgYXN5bmNDYWxsYmFjayhzdHJlYW1fY2FsbGJhY2tfZXZlbnRfdCBldmVudCwgdm9pZCAqcGFyYW0sIHZvaWQgKmNvb2tpZSk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX1YyXzBfU1RSRUFNT1VUX0gKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L1V0aWwuaCBiL2F1ZGlvLzIuMC9kZWZhdWx0L1V0aWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmVlYTUwCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL2RlZmF1bHQvVXRpbC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9VVElMX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9BVURJT19WMl8wX1VUSUxfSAorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1ZGlvIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8qKiBAcmV0dXJuIHRydWUgaWYgZ2FpbiBpcyBiZXR3ZWVuIDAgYW5kIDEgaW5jbHVkZWQuICovCitjb25zdGV4cHIgYm9vbCBpc0dhaW5Ob3JtYWxpemVkKGZsb2F0IGdhaW4pIHsKKyAgICByZXR1cm4gZ2FpbiA+PSAwLjAgJiYgZ2FpbiA8PSAxLjA7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBhdWRpbworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQVVESU9fVjJfMF9VVElMX0gKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wLXNlcnZpY2UucmMgYi9hdWRpby8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlYWY3MWIKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsMTEgQEAKK3NlcnZpY2UgYXVkaW8taGFsLTItMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBhdWRpb3NlcnZlcgorICAgICMgbWVkaWEgZ2lkIG5lZWRlZCBmb3IgL2Rldi9mbSAocmFkaW8pIGFuZCBmb3IgL2RhdGEvbWlzYy9tZWRpYSAodGVlKQorICAgIGdyb3VwIGF1ZGlvIGNhbWVyYSBkcm1ycGMgaW5ldCBtZWRpYSBtZWRpYWRybSBuZXRfYnQgbmV0X2J0X2FkbWluIG5ldF9id19hY2N0CisgICAgaW9wcmlvIHJ0IDQKKyAgICB3cml0ZXBpZCAvZGV2L2NwdXNldC9mb3JlZ3JvdW5kL3Rhc2tzIC9kZXYvc3R1bmUvZm9yZWdyb3VuZC90YXNrcworICAgICMgYXVkaW9mbGluZ2VyIHJlc3RhcnRzIGl0c2VsZiB3aGVuIGl0IGxvc2VzIGNvbm5lY3Rpb24gd2l0aCB0aGUgaGFsCisgICAgIyBhbmQgaXRzIC5yYyBmaWxlIGhhcyBhbiAib25yZXN0YXJ0IHJlc3RhcnQgYXVkaW8taGFsIiBydWxlLCB0aHVzCisgICAgIyBhbiBhZGRpdGlvbmFsIGF1dG8tcmVzdGFydCBmcm9tIHRoZSBpbml0IHByb2Nlc3MgaXNuJ3QgbmVlZGVkLgorICAgIG9uZXNob3QKZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvYXVkaW8vMi4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2YyOGQ3ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImF1ZGlvaGFsc2VydmljZSIKKworI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlc0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdHNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJIdy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYnJvYWRjYXN0cmFkaW8vMS4wL0lCcm9hZGNhc3RSYWRpb0ZhY3RvcnkuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jyb2FkY2FzdHJhZGlvLzEuMS9JQnJvYWRjYXN0UmFkaW9GYWN0b3J5Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWd1cmVScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmpvaW5ScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6ZWZmZWN0OjpWMl8wOjpJRWZmZWN0c0ZhY3Rvcnk7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklEZXZpY2VzRmFjdG9yeTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OklTb3VuZFRyaWdnZXJIdzsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpyZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworbmFtZXNwYWNlIGJyb2FkY2FzdHJhZGlvID0gYW5kcm9pZDo6aGFyZHdhcmU6OmJyb2FkY2FzdHJhZGlvOworCisjaWZkZWYgVEFSR0VUX1VTRVNfQkNSQURJT19GVVRVUkVfRkVBVFVSRVMKK3N0YXRpYyBjb25zdCBib29sIHVzZUJyb2FkY2FzdFJhZGlvRnV0dXJlRmVhdHVyZXMgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIHVzZUJyb2FkY2FzdFJhZGlvRnV0dXJlRmVhdHVyZXMgPSBmYWxzZTsKKyNlbmRpZgorCit1c2luZyBhbmRyb2lkOjpPSzsKKworaW50IG1haW4oaW50IC8qIGFyZ2MgKi8sIGNoYXIqIC8qIGFyZ3YgKi8gW10pIHsKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDE2LCB0cnVlIC8qY2FsbGVyV2lsbEpvaW4qLyk7CisgICAgYW5kcm9pZDo6c3RhdHVzX3Qgc3RhdHVzOworICAgIHN0YXR1cyA9IHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SURldmljZXNGYWN0b3J5PigpOworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc3RhdHVzICE9IE9LLCAiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgYXVkaW8gc2VydmljZTogJWQiLCBzdGF0dXMpOworICAgIHN0YXR1cyA9IHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUVmZmVjdHNGYWN0b3J5PigpOworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc3RhdHVzICE9IE9LLCAiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgYXVkaW8gZWZmZWN0cyBzZXJ2aWNlOiAlZCIsIHN0YXR1cyk7CisgICAgLy8gU291bmR0cmlnZ2VyIGFuZCBGTSByYWRpbyBtaWdodCBiZSBub3QgcHJlc2VudC4KKyAgICBzdGF0dXMgPSByZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElTb3VuZFRyaWdnZXJIdz4oKTsKKyAgICBBTE9HRV9JRihzdGF0dXMgIT0gT0ssICJFcnJvciB3aGlsZSByZWdpc3RlcmluZyBzb3VuZHRyaWdnZXIgc2VydmljZTogJWQiLCBzdGF0dXMpOworICAgIGlmICh1c2VCcm9hZGNhc3RSYWRpb0Z1dHVyZUZlYXR1cmVzKSB7CisgICAgICAgIHN0YXR1cyA9IHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248CisgICAgICAgICAgICBicm9hZGNhc3RyYWRpbzo6VjFfMTo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeT4oKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSByZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPAorICAgICAgICAgICAgYnJvYWRjYXN0cmFkaW86OlYxXzA6OklCcm9hZGNhc3RSYWRpb0ZhY3Rvcnk+KCk7CisgICAgfQorICAgIEFMT0dFX0lGKHN0YXR1cyAhPSBPSywgIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIGZtIHJhZGlvIHNlcnZpY2U6ICVkIiwgc3RhdHVzKTsKKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9hdWRpby8yLjAvdHlwZXMuaGFsIGIvYXVkaW8vMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzExOGMyCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CisKK2VudW0gUmVzdWx0IDogaW50MzJfdCB7CisgICAgT0ssCisgICAgTk9UX0lOSVRJQUxJWkVELAorICAgIElOVkFMSURfQVJHVU1FTlRTLAorICAgIElOVkFMSURfU1RBVEUsCisgICAgTk9UX1NVUFBPUlRFRAorfTsKKworQGV4cG9ydChuYW1lPSJhdWRpb19kcmFpbl90eXBlX3QiLCB2YWx1ZV9wcmVmaXg9IkFVRElPX0RSQUlOXyIpCitlbnVtIEF1ZGlvRHJhaW4gOiBpbnQzMl90IHsKKyAgICAvKiogZHJhaW4oKSByZXR1cm5zIHdoZW4gYWxsIGRhdGEgaGFzIGJlZW4gcGxheWVkLiAqLworICAgIEFMTCwKKyAgICAvKioKKyAgICAgKiBkcmFpbigpIHJldHVybnMgYSBzaG9ydCB0aW1lIGJlZm9yZSBhbGwgZGF0YSBmcm9tIHRoZSBjdXJyZW50IHRyYWNrIGhhcworICAgICAqIGJlZW4gcGxheWVkIHRvIGdpdmUgdGltZSBmb3IgZ2FwbGVzcyB0cmFjayBzd2l0Y2guCisgICAgICovCisgICAgRUFSTFlfTk9USUZZCit9OworCisvKioKKyAqIEEgc3Vic3RpdHV0ZSBmb3IgUE9TSVggdGltZXNwZWMuCisgKi8KK3N0cnVjdCBUaW1lU3BlYyB7CisgICAgdWludDY0X3QgdHZTZWM7ICAgLy8gc2Vjb25kcworICAgIHVpbnQ2NF90IHR2TlNlYzsgIC8vIG5hbm9zZWNvbmRzCit9OworCisvKioKKyAqIElFRUUgODAyIE1BQyBhZGRyZXNzLgorICovCit0eXBlZGVmIHVpbnQ4X3RbNl0gTWFjQWRkcmVzczsKKworc3RydWN0IFBhcmFtZXRlclZhbHVlIHsKKyAgICBzdHJpbmcga2V5OworICAgIHN0cmluZyB2YWx1ZTsKK307CisKKy8qKgorICogU3BlY2lmaWVzIGEgZGV2aWNlIGluIGNhc2Ugd2hlbiBzZXZlcmFsIGRldmljZXMgb2YgdGhlIHNhbWUgdHlwZQorICogY2FuIGJlIGNvbm5lY3RlZCAoZS5nLiBCVCBBMkRQLCBVU0IpLgorICovCitzdHJ1Y3QgRGV2aWNlQWRkcmVzcyB7CisgICAgQXVkaW9EZXZpY2UgZGV2aWNlOyAgLy8gZGlzY3JpbWluYXRvcgorICAgIHVuaW9uIEFkZHJlc3MgeworICAgICAgICBNYWNBZGRyZXNzIG1hYzsgICAgIC8vIHVzZWQgZm9yIEJMVUVUT09USF9BMkRQXyoKKyAgICAgICAgdWludDhfdFs0XSBpcHY0OyAgICAvLyB1c2VkIGZvciBJUAorICAgICAgICBzdHJ1Y3QgQWxzYSB7CisgICAgICAgICAgICBpbnQzMl90IGNhcmQ7CisgICAgICAgICAgICBpbnQzMl90IGRldmljZTsKKyAgICAgICAgfSBhbHNhOyAgICAgICAgICAgICAvLyB1c2VkIGZvciBVU0JfKgorICAgIH0gYWRkcmVzczsKKyAgICBzdHJpbmcgYnVzQWRkcmVzczsgICAgICAvLyB1c2VkIGZvciBCVVMKKyAgICBzdHJpbmcgclN1Ym1peEFkZHJlc3M7ICAvLyB1c2VkIGZvciBSRU1PVEVfU1VCTUlYCit9OworCisvKioKKyAqIE1tYXAgYnVmZmVyIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgSVN0cmVhbS5jcmVhdGVNbWFwQnVmZmVyKCkuCisgKiBVc2VkIGJ5IHN0cmVhbXMgb3BlbmVkIGluIG1tYXAgbW9kZS4KKyAqLworc3RydWN0IE1tYXBCdWZmZXJJbmZvIHsKKyAgICBtZW1vcnkgIHNoYXJlZE1lbW9yeTsgICAgICAgICAvLyBtbWFwIG1lbW9yeSBidWZmZXIKKyAgICBpbnQzMl90IGJ1ZmZlclNpemVGcmFtZXM7ICAgICAvLyB0b3RhbCBidWZmZXIgc2l6ZSBpbiBmcmFtZXMKKyAgICBpbnQzMl90IGJ1cnN0U2l6ZUZyYW1lczsgICAgICAvLyB0cmFuc2ZlciBzaXplIGdyYW51bGFyaXR5IGluIGZyYW1lcworfTsKKworLyoqCisgKiBNbWFwIGJ1ZmZlciByZWFkL3dyaXRlIHBvc2l0aW9uIHJldHVybmVkIGJ5IElTdHJlYW0uZ2V0TW1hcFBvc2l0aW9uKCkuCisgKiBVc2VkIGJ5IHN0cmVhbXMgb3BlbmVkIGluIG1tYXAgbW9kZS4KKyAqLworc3RydWN0IE1tYXBQb3NpdGlvbiB7CisgICAgaW50NjRfdCAgdGltZU5hbm9zZWNvbmRzOyAvLyB0aW1lIHN0YW1wIGluIG5zLCBDTE9DS19NT05PVE9OSUMKKyAgICBpbnQzMl90ICBwb3NpdGlvbkZyYW1lczsgIC8vIGluY3JlYXNpbmcgMzIgYml0IGZyYW1lIGNvdW50IHJlc2V0IHdoZW4gSVN0cmVhbS5zdG9wKCkgaXMgY2FsbGVkCit9OworCisvKioKKyAqIFRoZSBtZXNzYWdlIHF1ZXVlIGZsYWdzIHVzZWQgdG8gc3luY2hyb25pemUgcmVhZHMgYW5kIHdyaXRlcyBmcm9tCisgKiBtZXNzYWdlIHF1ZXVlcyB1c2VkIGJ5IFN0cmVhbUluIGFuZCBTdHJlYW1PdXQuCisgKi8KK2VudW0gTWVzc2FnZVF1ZXVlRmxhZ0JpdHMgOiB1aW50MzJfdCB7CisgICAgTk9UX0VNUFRZID0gMSA8PCAwLAorICAgIE5PVF9GVUxMID0gMSA8PCAxCit9OwpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWFiNzZmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzOSBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEF1ZGlvVjJfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIkF1ZGlvUHJpbWFyeUhpZGxIYWxUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdleHRyYSIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL0F1ZGlvUHJpbWFyeUhpZGxIYWxUZXN0LmNwcCBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC9BdWRpb1ByaW1hcnlIaWRsSGFsVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjdmN2FhOAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC9BdWRpb1ByaW1hcnlIaWRsSGFsVGVzdC5jcHAKQEAgLTAsMCArMSwxNDE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWdHNIYWxBdWRpb1YyXzBUYXJnZXRUZXN0IgorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGNzdGRkZWY+CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGxpbWl0cz4KKyNpbmNsdWRlIDxsaXN0PgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC9JRGV2aWNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSURldmljZXNGYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby8yLjAvSVByaW1hcnlEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvLzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vY29tbW9uLzIuMC90eXBlcy5oPgorCisjaW5jbHVkZSAidXRpbGl0eS9Bc3NlcnRPay5oIgorI2luY2x1ZGUgInV0aWxpdHkvUHJldHR5UHJpbnRBdWRpb1R5cGVzLmgiCisjaW5jbHVkZSAidXRpbGl0eS9SZXR1cm5Jbi5oIgorCit1c2luZyBzdGQ6OnN0cmluZzsKK3VzaW5nIHN0ZDo6dG9fc3RyaW5nOwordXNpbmcgc3RkOjp2ZWN0b3I7CisKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpNUURlc2NyaXB0b3JTeW5jOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OkF1ZGlvRHJhaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6RGV2aWNlQWRkcmVzczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklQcmltYXJ5RGV2aWNlOwordXNpbmcgVHR5TW9kZSA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJUHJpbWFyeURldmljZTo6VHR5TW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJRGV2aWNlc0ZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6SVN0cmVhbTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtSW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6VGltZVNwZWM7Cit1c2luZyBSZWFkUGFyYW1ldGVycyA9CisgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1Jbjo6UmVhZFBhcmFtZXRlcnM7Cit1c2luZyBSZWFkU3RhdHVzID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1Jbjo6UmVhZFN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpJU3RyZWFtT3V0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OlYyXzA6OklTdHJlYW1PdXRDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpNbWFwQnVmZmVySW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpWMl8wOjpNbWFwUG9zaXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UGFyYW1ldGVyVmFsdWU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9DaGFubmVsTWFzazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0Zvcm1hdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvSGFuZGxlQ29uc3RzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9JbnB1dEZsYWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0lvSGFuZGxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9Nb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9PZmZsb2FkSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvT3V0cHV0RmxhZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvU291cmNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6VGhyZWFkSW5mbzsKKwordXNpbmcgdXRpbGl0eTo6cmV0dXJuSW47CisKK2NvbnN0IGNoYXIqIGdldFRlc3ROYW1lKCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpLT5uYW1lKCk7Cit9CisKK25hbWVzcGFjZSBkb2MgeworLyoqIERvY3VtZW50IHRoZSBjdXJyZW50IHRlc3QgY2FzZS4KKyAqIEVnOiBjYWxsaW5nIGBkb2M6OnRlc3QoIkR1bXAgdGhlIHN0YXRlIG9mIHRoZSBoYWwiKWAgaW4gdGhlICJkZWJ1Z0R1bXAiIHRlc3QKKyAqIHdpbGwgb3V0cHV0OgorICogICA8dGVzdGNhc2UgbmFtZT0iZGVidWdEdW1wIiBzdGF0dXM9InJ1biIgdGltZT0iNiIKKyAqICAgICAgICAgICAgIGNsYXNzbmFtZT0iQXVkaW9QcmltYXJ5SGlkbFRlc3QiCisgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0iRHVtcCB0aGUgc3RhdGUgb2YgdGhlIGhhbC4iIC8+CisgKiBzZWUKKyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYmxvYi9tYXN0ZXIvZ29vZ2xldGVzdC9kb2NzL0FkdmFuY2VkR3VpZGUubWQjbG9nZ2luZy1hZGRpdGlvbmFsLWluZm9ybWF0aW9uCisgKi8KK3ZvaWQgdGVzdChjb25zdCBzdGQ6OnN0cmluZyYgdGVzdENhc2VEb2N1bWVudGF0aW9uKSB7CisgICAgOjp0ZXN0aW5nOjpUZXN0OjpSZWNvcmRQcm9wZXJ0eSgiZGVzY3JpcHRpb24iLCB0ZXN0Q2FzZURvY3VtZW50YXRpb24pOworfQorCisvKiogRG9jdW1lbnQgd2h5IGEgdGVzdCB3YXMgbm90IGZ1bGx5IHJ1bi4gVXN1YWxseSBkdWUgdG8gYW4gb3B0aW9uYWwgZmVhdHVyZQorICogbm90IGltcGxlbWVudGVkLiAqLwordm9pZCBwYXJ0aWFsVGVzdChjb25zdCBzdGQ6OnN0cmluZyYgcmVhc29uKSB7CisgICAgTE9HKElORk8pIDw8ICJUZXN0ICIgPDwgZ2V0VGVzdE5hbWUoKSA8PCAiIHBhcnRpYWxseSBydW46ICIgPDwgcmVhc29uOworICAgIDo6dGVzdGluZzo6VGVzdDo6UmVjb3JkUHJvcGVydHkoInBhcnRpYWx5UnVuVGVzdCIsIHJlYXNvbik7Cit9CisKKy8qKiBBZGQgYSBub3RlIHRvIHRoZSB0ZXN0LiAqLwordm9pZCBub3RlKGNvbnN0IHN0ZDo6c3RyaW5nJiBub3RlKSB7CisgICAgTE9HKElORk8pIDw8ICJUZXN0ICIgPDwgZ2V0VGVzdE5hbWUoKSA8PCAiIG5vdGVkOiAiIDw8IG5vdGU7CisgICAgOjp0ZXN0aW5nOjpUZXN0OjpSZWNvcmRQcm9wZXJ0eSgibm90ZSIsIG5vdGUpOworfQorfQorCisvLyBSZWdpc3RlciBjYWxsYmFjayBmb3Igc3RhdGljIG9iamVjdCBkZXN0cnVjdGlvbgorLy8gQXZvaWQgZGVzdHJveWluZyBzdGF0aWMgb2JqZWN0cyBhZnRlciBtYWluIHJldHVybi4KKy8vIFBvc3QgbWFpbiByZXR1cm4gZGVzdHJ1Y3Rpb24gbGVhZHMgdG8gaW5jb3JyZWN0IGd0ZXN0IHRpbWluZyBtZWFzdXJlbWVudHMgYXMKKy8vIHdlbGwgYXMgaGFyZGVyCisvLyBkZWJ1Z2luZyBpZiBhbnl0aGluZyBnb2VzIHdyb25nIGR1cmluZyBkZXN0cnVjdGlvbi4KK2NsYXNzIEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworICAgcHVibGljOgorICAgIHVzaW5nIFRlYXJEb3duRnVuYyA9IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPjsKKyAgICB2b2lkIHJlZ2lzdGVyVGVhckRvd24oVGVhckRvd25GdW5jJiYgdGVhckRvd24pIHsKKyAgICAgICAgdGVhckRvd25zLnB1c2hfYmFjayhzdGQ6Om1vdmUodGVhckRvd24pKTsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICAgICAgLy8gQ2FsbCB0aGUgdGVhciBkb3ducyBpbiByZXZlcnNlIG9yZGVyIG9mIGluc2VydGlvbgorICAgICAgICBmb3IgKGF1dG8mIHRlYXJEb3duIDogdGVhckRvd25zKSB7CisgICAgICAgICAgICB0ZWFyRG93bigpOworICAgICAgICB9CisgICAgfQorICAgIHN0ZDo6bGlzdDxUZWFyRG93bkZ1bmM+IHRlYXJEb3duczsKK307CisvLyBJbnN0YW5jZSB0byByZWdpc3RlciBnbG9iYWwgdGVhckRvd24KK3N0YXRpYyBFbnZpcm9ubWVudCogZW52aXJvbm1lbnQ7CisKK2NsYXNzIEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyAgIHByb3RlY3RlZDoKKyAgICAvLyBDb252ZW5pZW50IG1lbWJlciB0byBzdG9yZSByZXN1bHRzCisgICAgUmVzdWx0IHJlczsKK307CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBnZXRTZXJ2aWNlIGF1ZGlvX2RldmljZXNfZmFjdG9yeSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gVGVzdCBhbGwgYXVkaW8gZGV2aWNlcworY2xhc3MgQXVkaW9IaWRsVGVzdCA6IHB1YmxpYyBIaWRsVGVzdCB7CisgICBwdWJsaWM6CisgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoSGlkbFRlc3Q6OlNldFVwKCkpOyAgLy8gc2V0dXAgYmFzZQorCisgICAgICAgIGlmIChkZXZpY2VzRmFjdG9yeSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBlbnZpcm9ubWVudC0+cmVnaXN0ZXJUZWFyRG93bihbXSB7IGRldmljZXNGYWN0b3J5LmNsZWFyKCk7IH0pOworICAgICAgICAgICAgZGV2aWNlc0ZhY3RvcnkgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTwKKyAgICAgICAgICAgICAgICBJRGV2aWNlc0ZhY3Rvcnk+KCk7CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX1RSVUUoZGV2aWNlc0ZhY3RvcnkgIT0gbnVsbHB0cik7CisgICAgfQorCisgICBwcm90ZWN0ZWQ6CisgICAgLy8gQ2FjaGUgdGhlIGRldmljZXNGYWN0b3J5IHJldHJpZXZhbCB0byBzcGVlZCB1cCBlYWNoIHRlc3QgYnkgfjAuNXMKKyAgICBzdGF0aWMgc3A8SURldmljZXNGYWN0b3J5PiBkZXZpY2VzRmFjdG9yeTsKK307CitzcDxJRGV2aWNlc0ZhY3Rvcnk+IEF1ZGlvSGlkbFRlc3Q6OmRldmljZXNGYWN0b3J5OworCitURVNUX0YoQXVkaW9IaWRsVGVzdCwgR2V0QXVkaW9EZXZpY2VzRmFjdG9yeVNlcnZpY2UpIHsKKyAgICBkb2M6OnRlc3QoInRlc3QgdGhlIGdldFNlcnZpY2UgKGNhbGxlZCBpbiBTZXRVcCkiKTsKK30KKworVEVTVF9GKEF1ZGlvSGlkbFRlc3QsIE9wZW5EZXZpY2VJbnZhbGlkUGFyYW1ldGVyKSB7CisgICAgZG9jOjp0ZXN0KCJ0ZXN0IHBhc3NpbmcgYW4gaW52YWxpZCBwYXJhbWV0ZXIgdG8gb3BlbkRldmljZSIpOworICAgIElEZXZpY2VzRmFjdG9yeTo6UmVzdWx0IHJlc3VsdDsKKyAgICBzcDxJRGV2aWNlPiBkZXZpY2U7CisgICAgQVNTRVJUX09LKGRldmljZXNGYWN0b3J5LT5vcGVuRGV2aWNlKElEZXZpY2VzRmFjdG9yeTo6RGV2aWNlKC0xKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuSW4ocmVzdWx0LCBkZXZpY2UpKSk7CisgICAgQVNTRVJUX0VRKElEZXZpY2VzRmFjdG9yeTo6UmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgcmVzdWx0KTsKKyAgICBBU1NFUlRfVFJVRShkZXZpY2UgPT0gbnVsbHB0cik7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBvcGVuRGV2aWNlIHByaW1hcnkgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gVGVzdCB0aGUgcHJpbWFyeSBkZXZpY2UKK2NsYXNzIEF1ZGlvUHJpbWFyeUhpZGxUZXN0IDogcHVibGljIEF1ZGlvSGlkbFRlc3QgeworICAgcHVibGljOgorICAgIC8qKiBQcmltYXJ5IEhBTCB0ZXN0IGFyZSBOT1QgdGhyZWFkIHNhZmUuICovCisgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoQXVkaW9IaWRsVGVzdDo6U2V0VXAoKSk7ICAvLyBzZXR1cCBiYXNlCisKKyAgICAgICAgaWYgKGRldmljZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBJRGV2aWNlc0ZhY3Rvcnk6OlJlc3VsdCByZXN1bHQ7CisgICAgICAgICAgICBzcDxJRGV2aWNlPiBiYXNlRGV2aWNlOworICAgICAgICAgICAgQVNTRVJUX09LKAorICAgICAgICAgICAgICAgIGRldmljZXNGYWN0b3J5LT5vcGVuRGV2aWNlKElEZXZpY2VzRmFjdG9yeTo6RGV2aWNlOjpQUklNQVJZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkluKHJlc3VsdCwgYmFzZURldmljZSkpKTsKKyAgICAgICAgICAgIEFTU0VSVF9PSyhyZXN1bHQpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUoYmFzZURldmljZSAhPSBudWxscHRyKTsKKworICAgICAgICAgICAgZW52aXJvbm1lbnQtPnJlZ2lzdGVyVGVhckRvd24oW10geyBkZXZpY2UuY2xlYXIoKTsgfSk7CisgICAgICAgICAgICBkZXZpY2UgPSBJUHJpbWFyeURldmljZTo6Y2FzdEZyb20oYmFzZURldmljZSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShkZXZpY2UgIT0gbnVsbHB0cik7CisgICAgICAgIH0KKyAgICB9CisKKyAgIHByb3RlY3RlZDoKKyAgICAvLyBDYWNoZSB0aGUgZGV2aWNlIG9wZW5pbmcgdG8gc3BlZWQgdXAgZWFjaCB0ZXN0IGJ5IH4wLjVzCisgICAgc3RhdGljIHNwPElQcmltYXJ5RGV2aWNlPiBkZXZpY2U7Cit9Oworc3A8SVByaW1hcnlEZXZpY2U+IEF1ZGlvUHJpbWFyeUhpZGxUZXN0OjpkZXZpY2U7CisKK1RFU1RfRihBdWRpb1ByaW1hcnlIaWRsVGVzdCwgT3BlblByaW1hcnlEZXZpY2UpIHsKKyAgICBkb2M6OnRlc3QoIlRlc3QgdGhlIG9wZW5EZXZpY2UgKGNhbGxlZCBpbiBTZXRVcCkiKTsKK30KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBJbml0KSB7CisgICAgZG9jOjp0ZXN0KCJUZXN0IHRoYXQgdGhlIGF1ZGlvIHByaW1hcnkgaGFsIGluaXRpYWxpemVkIGNvcnJlY3RseSIpOworICAgIEFTU0VSVF9PSyhkZXZpY2UtPmluaXRDaGVjaygpKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8ge3NldCxnZXR9e01hc3RlcixNaWN9e011dGUsVm9sdW1lfSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCit0ZW1wbGF0ZSA8Y2xhc3MgUHJvcGVydHk+CitjbGFzcyBBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCA6IHB1YmxpYyBBdWRpb1ByaW1hcnlIaWRsVGVzdCB7CisgICBwcm90ZWN0ZWQ6CisgICAgLyoqIFRlc3QgYSBwcm9wZXJ0eSBnZXR0ZXIgYW5kIHNldHRlci4gKi8KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgR2V0dGVyLCBjbGFzcyBTZXR0ZXI+CisgICAgdm9pZCB0ZXN0QWNjZXNzb3JzKGNvbnN0IHN0cmluZyYgcHJvcGVydHlOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3I8UHJvcGVydHk+JiB2YWx1ZXNUb1Rlc3QsIFNldHRlciBzZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgIEdldHRlciBnZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvcjxQcm9wZXJ0eT4mIGludmFsaWRWYWx1ZXMgPSB7fSkgeworICAgICAgICBQcm9wZXJ0eSBpbml0aWFsVmFsdWU7ICAvLyBTYXZlIGluaXRpYWwgdmFsdWUgdG8gcmVzdG9yZSBpdCBhdCB0aGUgZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mIHRoZSB0ZXN0CisgICAgICAgIEFTU0VSVF9PSygoZGV2aWNlLmdldCgpLT4qZ2V0dGVyKShyZXR1cm5JbihyZXMsIGluaXRpYWxWYWx1ZSkpKTsKKyAgICAgICAgQVNTRVJUX09LKHJlcyk7CisKKyAgICAgICAgZm9yIChQcm9wZXJ0eSBzZXRWYWx1ZSA6IHZhbHVlc1RvVGVzdCkgeworICAgICAgICAgICAgU0NPUEVEX1RSQUNFKCJUZXN0ICIgKyBwcm9wZXJ0eU5hbWUgKyAiIGdldHRlciBhbmQgc2V0dGVyIGZvciAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHNldFZhbHVlKSk7CisgICAgICAgICAgICBBU1NFUlRfT0soKGRldmljZS5nZXQoKS0+KnNldHRlcikoc2V0VmFsdWUpKTsKKyAgICAgICAgICAgIFByb3BlcnR5IGdldFZhbHVlOworICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBnZXR0ZXIgcmV0dXJucyB0aGUgc2FtZSB2YWx1ZSBqdXN0IHNldAorICAgICAgICAgICAgQVNTRVJUX09LKChkZXZpY2UuZ2V0KCktPipnZXR0ZXIpKHJldHVybkluKHJlcywgZ2V0VmFsdWUpKSk7CisgICAgICAgICAgICBBU1NFUlRfT0socmVzKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShzZXRWYWx1ZSwgZ2V0VmFsdWUpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChQcm9wZXJ0eSBpbnZhbGlkVmFsdWUgOiBpbnZhbGlkVmFsdWVzKSB7CisgICAgICAgICAgICBTQ09QRURfVFJBQ0UoIlRyeSB0byBzZXQgIiArIHByb3BlcnR5TmFtZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgIiB3aXRoIHRoZSBpbnZhbGlkIHZhbHVlICIgKworICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rpbmc6OlByaW50VG9TdHJpbmcoaW52YWxpZFZhbHVlKSk7CisgICAgICAgICAgICBFWFBFQ1RfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChkZXZpY2UuZ2V0KCktPipzZXR0ZXIpKGludmFsaWRWYWx1ZSkpOworICAgICAgICB9CisKKyAgICAgICAgQVNTRVJUX09LKAorICAgICAgICAgICAgKGRldmljZS5nZXQoKS0+KnNldHRlcikoaW5pdGlhbFZhbHVlKSk7ICAvLyByZXN0b3JlIGluaXRpYWwgdmFsdWUKKyAgICB9CisKKyAgICAvKiogVGVzdCB0aGUgZ2V0dGVyIGFuZCBzZXR0ZXIgb2YgYW4gb3B0aW9uYWwgZmVhdHVyZS4gKi8KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgR2V0dGVyLCBjbGFzcyBTZXR0ZXI+CisgICAgdm9pZCB0ZXN0T3B0aW9uYWxBY2Nlc3NvcnMoY29uc3Qgc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yPFByb3BlcnR5PiYgdmFsdWVzVG9UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldHRlciBzZXR0ZXIsIEdldHRlciBnZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yPFByb3BlcnR5PiYgaW52YWxpZFZhbHVlcyA9IHt9KSB7CisgICAgICAgIGRvYzo6dGVzdCgiVGVzdCB0aGUgb3B0aW9uYWwgIiArIHByb3BlcnR5TmFtZSArICIgZ2V0dGVycyBhbmQgc2V0dGVyIik7CisgICAgICAgIHsKKyAgICAgICAgICAgIFNDT1BFRF9UUkFDRSgiVGVzdCBmZWF0dXJlIHN1cHBvcnQgYnkgY2FsbGluZyB0aGUgZ2V0dGVyIik7CisgICAgICAgICAgICBQcm9wZXJ0eSBpbml0aWFsVmFsdWU7CisgICAgICAgICAgICBBU1NFUlRfT0soKGRldmljZS5nZXQoKS0+KmdldHRlcikocmV0dXJuSW4ocmVzLCBpbml0aWFsVmFsdWUpKSk7CisgICAgICAgICAgICBpZiAocmVzID09IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCkgeworICAgICAgICAgICAgICAgIGRvYzo6cGFydGlhbFRlc3QocHJvcGVydHlOYW1lICsgIiBnZXR0ZXIgaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVF9PSyhyZXMpOyAgLy8gSWYgaXQgaXMgc3VwcG9ydGVkIGl0IG11c3Qgc3VjY2VlZAorICAgICAgICB9CisgICAgICAgIC8vIFRoZSBmZWF0dXJlIGlzIHN1cHBvcnRlZCwgdGVzdCBpdAorICAgICAgICB0ZXN0QWNjZXNzb3JzKHByb3BlcnR5TmFtZSwgdmFsdWVzVG9UZXN0LCBzZXR0ZXIsIGdldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkVmFsdWVzKTsKKyAgICB9Cit9OworCit1c2luZyBCb29sQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QgPSBBY2Nlc3NvclByaW1hcnlIaWRsVGVzdDxib29sPjsKKworVEVTVF9GKEJvb2xBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCwgTWljTXV0ZVRlc3QpIHsKKyAgICBkb2M6OnRlc3QoIkNoZWNrIHRoYXQgdGhlIG1pYyBjYW4gYmUgbXV0ZWQgYW5kIHVubXV0ZWQiKTsKKyAgICB0ZXN0QWNjZXNzb3JzKCJtaWMgbXV0ZSIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sICZJRGV2aWNlOjpzZXRNaWNNdXRlLAorICAgICAgICAgICAgICAgICAgJklEZXZpY2U6OmdldE1pY011dGUpOworICAgIC8vIFRPRE86IGNoZWNrIHRoYXQgdGhlIG1pYyBpcyByZWFsbHkgbXV0ZWQgKGFsbCBzYW1wbGUgYXJlIDApCit9CisKK1RFU1RfRihCb29sQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QsIE1hc3Rlck11dGVUZXN0KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSWYgbWFzdGVyIG11dGUgaXMgc3VwcG9ydGVkLCB0cnkgdG8gbXV0ZSBhbmQgdW5tdXRlIHRoZSBtYXN0ZXIgIgorICAgICAgICAib3V0cHV0Iik7CisgICAgdGVzdE9wdGlvbmFsQWNjZXNzb3JzKCJtYXN0ZXIgbXV0ZSIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJRGV2aWNlOjpzZXRNYXN0ZXJNdXRlLCAmSURldmljZTo6Z2V0TWFzdGVyTXV0ZSk7CisgICAgLy8gVE9ETzogY2hlY2sgdGhhdCB0aGUgbWFzdGVyIHZvbHVtZSBpcyByZWFsbHkgbXV0ZWQKK30KKwordXNpbmcgRmxvYXRBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCA9IEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0PGZsb2F0PjsKK1RFU1RfRihGbG9hdEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0LCBNYXN0ZXJWb2x1bWVUZXN0KSB7CisgICAgZG9jOjp0ZXN0KCJUZXN0IHRoZSBtYXN0ZXIgdm9sdW1lIGlmIHN1cHBvcnRlZCIpOworICAgIHRlc3RPcHRpb25hbEFjY2Vzc29ycygibWFzdGVyIHZvbHVtZSIsIHswLCAwLjUsIDF9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmSURldmljZTo6c2V0TWFzdGVyVm9sdW1lLCAmSURldmljZTo6Z2V0TWFzdGVyVm9sdW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICB7LTAuMSwgMS4xLCBOQU4sIElORklOSVRZLCAtSU5GSU5JVFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAxICsgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmVwc2lsb24oKX0pOworICAgIC8vIFRPRE86IGNoZWNrIHRoYXQgdGhlIG1hc3RlciB2b2x1bWUgaXMgcmVhbGx5IGNoYW5nZWQKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBBdWRpb1BhdGNoZXMgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitjbGFzcyBBdWRpb1BhdGNoUHJpbWFyeUhpZGxUZXN0IDogcHVibGljIEF1ZGlvUHJpbWFyeUhpZGxUZXN0IHsKKyAgIHByb3RlY3RlZDoKKyAgICBib29sIGFyZUF1ZGlvUGF0Y2hlc1N1cHBvcnRlZCgpIHsKKyAgICAgICAgYXV0byByZXN1bHQgPSBkZXZpY2UtPnN1cHBvcnRzQXVkaW9QYXRjaGVzKCk7CisgICAgICAgIEVYUEVDVF9JU19PSyhyZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KK307CisKK1RFU1RfRihBdWRpb1BhdGNoUHJpbWFyeUhpZGxUZXN0LCBBdWRpb1BhdGNoZXMpIHsKKyAgICBkb2M6OnRlc3QoIlRlc3QgaWYgYXVkaW8gcGF0Y2hlcyBhcmUgc3VwcG9ydGVkIik7CisgICAgaWYgKCFhcmVBdWRpb1BhdGNoZXNTdXBwb3J0ZWQoKSkgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJBdWRpbyBwYXRjaGVzIGFyZSBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gVE9ETzogdGVzdCBhdWRpbyBwYXRjaGVzCit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLyBSZXF1aXJlZCBhbmQgcmVjb21tZW5kZWQgYXVkaW8gZm9ybWF0IHN1cHBvcnQgLy8vLy8vLy8vLy8vLy8vCisvLyBGcm9tOgorLy8gaHR0cHM6Ly9zb3VyY2UuYW5kcm9pZC5jb20vY29tcGF0aWJpbGl0eS9hbmRyb2lkLWNkZC5odG1sIzVfNF9hdWRpb19yZWNvcmRpbmcKKy8vIEZyb206CisvLyBodHRwczovL3NvdXJjZS5hbmRyb2lkLmNvbS9jb21wYXRpYmlsaXR5L2FuZHJvaWQtY2RkLmh0bWwjNV81X2F1ZGlvX3BsYXliYWNrCisvLy8vLy8vLy8vLyBUT0RPOiBtb3ZlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGZpbGUgZm9yIGVhc2llciB1cGRhdGUgLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitjbGFzcyBBdWRpb0NvbmZpZ1ByaW1hcnlUZXN0IDogcHVibGljIEF1ZGlvUGF0Y2hQcmltYXJ5SGlkbFRlc3QgeworICAgcHVibGljOgorICAgIC8vIENhY2hlIHJlc3VsdCA/CisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4gZ2V0UmVxdWlyZWRTdXBwb3J0UGxheWJhY2tBdWRpb0NvbmZpZygpIHsKKyAgICAgICAgcmV0dXJuIGNvbWJpbmVBdWRpb0NvbmZpZygKKyAgICAgICAgICAgIHtBdWRpb0NoYW5uZWxNYXNrOjpPVVRfU1RFUkVPLCBBdWRpb0NoYW5uZWxNYXNrOjpPVVRfTU9OT30sCisgICAgICAgICAgICB7ODAwMCwgMTEwMjUsIDE2MDAwLCAyMjA1MCwgMzIwMDAsIDQ0MTAwfSwKKyAgICAgICAgICAgIHtBdWRpb0Zvcm1hdDo6UENNXzE2X0JJVH0pOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdCB2ZWN0b3I8QXVkaW9Db25maWc+CisgICAgZ2V0UmVjb21tZW5kZWRTdXBwb3J0UGxheWJhY2tBdWRpb0NvbmZpZygpIHsKKyAgICAgICAgcmV0dXJuIGNvbWJpbmVBdWRpb0NvbmZpZygKKyAgICAgICAgICAgIHtBdWRpb0NoYW5uZWxNYXNrOjpPVVRfU1RFUkVPLCBBdWRpb0NoYW5uZWxNYXNrOjpPVVRfTU9OT30sCisgICAgICAgICAgICB7MjQwMDAsIDQ4MDAwfSwge0F1ZGlvRm9ybWF0OjpQQ01fMTZfQklUfSk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4gZ2V0U3VwcG9ydGVkUGxheWJhY2tBdWRpb0NvbmZpZygpIHsKKyAgICAgICAgLy8gVE9ETzogcmV0cmlldmUgYXVkaW8gY29uZmlnIHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0KKyAgICAgICAgLy8gYXMgZGVjbGFyZWQgaW4gdGhlIHBvbGljeSBjb25maWd1cmF0aW9uCisgICAgICAgIHJldHVybiB7fTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3QgdmVjdG9yPEF1ZGlvQ29uZmlnPiBnZXRSZXF1aXJlZFN1cHBvcnRDYXB0dXJlQXVkaW9Db25maWcoKSB7CisgICAgICAgIHJldHVybiBjb21iaW5lQXVkaW9Db25maWcoe0F1ZGlvQ2hhbm5lbE1hc2s6OklOX01PTk99LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs4MDAwLCAxMTAyNSwgMTYwMDAsIDQ0MTAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7QXVkaW9Gb3JtYXQ6OlBDTV8xNl9CSVR9KTsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4gZ2V0UmVjb21tZW5kZWRTdXBwb3J0Q2FwdHVyZUF1ZGlvQ29uZmlnKCkgeworICAgICAgICByZXR1cm4gY29tYmluZUF1ZGlvQ29uZmlnKHtBdWRpb0NoYW5uZWxNYXNrOjpJTl9TVEVSRU99LCB7MjIwNTAsIDQ4MDAwfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7QXVkaW9Gb3JtYXQ6OlBDTV8xNl9CSVR9KTsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0IHZlY3RvcjxBdWRpb0NvbmZpZz4gZ2V0U3VwcG9ydGVkQ2FwdHVyZUF1ZGlvQ29uZmlnKCkgeworICAgICAgICAvLyBUT0RPOiByZXRyaWV2ZSBhdWRpbyBjb25maWcgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybQorICAgICAgICAvLyBhcyBkZWNsYXJlZCBpbiB0aGUgcG9saWN5IGNvbmZpZ3VyYXRpb24KKyAgICAgICAgcmV0dXJuIHt9OworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3QgdmVjdG9yPEF1ZGlvQ29uZmlnPiBjb21iaW5lQXVkaW9Db25maWcoCisgICAgICAgIHZlY3RvcjxBdWRpb0NoYW5uZWxNYXNrPiBjaGFubmVsTWFza3MsIHZlY3Rvcjx1aW50MzJfdD4gc2FtcGxlUmF0ZXMsCisgICAgICAgIHZlY3RvcjxBdWRpb0Zvcm1hdD4gZm9ybWF0cykgeworICAgICAgICB2ZWN0b3I8QXVkaW9Db25maWc+IGNvbmZpZ3M7CisgICAgICAgIGZvciAoYXV0byBjaGFubmVsTWFzayA6IGNoYW5uZWxNYXNrcykgeworICAgICAgICAgICAgZm9yIChhdXRvIHNhbXBsZVJhdGUgOiBzYW1wbGVSYXRlcykgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byBmb3JtYXQgOiBmb3JtYXRzKSB7CisgICAgICAgICAgICAgICAgICAgIEF1ZGlvQ29uZmlnIGNvbmZpZ3t9OworICAgICAgICAgICAgICAgICAgICAvLyBsZWF2ZSBvZmZsb2FkSW5mbyB0byAwCisgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5jaGFubmVsTWFzayA9IGNoYW5uZWxNYXNrOworICAgICAgICAgICAgICAgICAgICBjb25maWcuc2FtcGxlUmF0ZUh6ID0gc2FtcGxlUmF0ZTsKKyAgICAgICAgICAgICAgICAgICAgY29uZmlnLmZvcm1hdCA9IGZvcm1hdDsKKyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IGxlYXZlIGZyYW1lQ291bnQgdG8gMCA/CisgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3MucHVzaF9iYWNrKGNvbmZpZyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBjb25maWdzOworICAgIH0KK307CisKKy8qKiBHZW5lcmF0ZSBhIHRlc3QgbmFtZSBiYXNlZCBvbiBhbiBhdWRpbyBjb25maWcuCisgKgorICogQXMgdGhlIG9ubHkgcGFyYW1ldGVyIGNoYW5naW5nIGFyZSBjaGFubmVsIG1hc2sgYW5kIHNhbXBsZSByYXRlLAorICogb25seSBwcmludCB0aG9zZSBvbmVzIGluIHRoZSB0ZXN0IG5hbWUuCisgKi8KK3N0YXRpYyBzdHJpbmcgZ2VuZXJhdGVUZXN0TmFtZSgKKyAgICBjb25zdCB0ZXN0aW5nOjpUZXN0UGFyYW1JbmZvPEF1ZGlvQ29uZmlnPiYgaW5mbykgeworICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcgPSBpbmZvLnBhcmFtOworICAgIHJldHVybiB0b19zdHJpbmcoaW5mby5pbmRleCkgKyAiX18iICsgdG9fc3RyaW5nKGNvbmZpZy5zYW1wbGVSYXRlSHopICsgIl8iICsKKyAgICAgICAgICAgLy8gIk1PTk8iIGlzIG1vcmUgY2xlYXIgdGhhbiAiRlJPTlRfTEVGVCIKKyAgICAgICAgICAgKChjb25maWcuY2hhbm5lbE1hc2sgPT0gQXVkaW9DaGFubmVsTWFzazo6T1VUX01PTk8gfHwKKyAgICAgICAgICAgICBjb25maWcuY2hhbm5lbE1hc2sgPT0gQXVkaW9DaGFubmVsTWFzazo6SU5fTU9OTykKKyAgICAgICAgICAgICAgICA/ICJNT05PIgorICAgICAgICAgICAgICAgIDogdG9TdHJpbmcoY29uZmlnLmNoYW5uZWxNYXNrKSk7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gZ2V0SW5wdXRCdWZmZXJTaXplIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworLy8gRklYTUU6IGV4ZWN1dGUgaW5wdXQgdGVzdCBvbmx5IGlmIHBsYXRmb3JtIGRlY2xhcmVzCisvLyBhbmRyb2lkLmhhcmR3YXJlLm1pY3JvcGhvbmUKKy8vICAgICAgICBob3cgdG8gZ2V0IHRoaXMgdmFsdWUgPyBpcyBpdCBhIHByb3BlcnR5ID8/PworCitjbGFzcyBBdWRpb0NhcHR1cmVDb25maWdQcmltYXJ5VGVzdAorICAgIDogcHVibGljIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3QsCisgICAgICBwdWJsaWMgOjp0ZXN0aW5nOjpXaXRoUGFyYW1JbnRlcmZhY2U8QXVkaW9Db25maWc+IHsKKyAgIHByb3RlY3RlZDoKKyAgICB2b2lkIGlucHV0QnVmZmVyU2l6ZVRlc3QoY29uc3QgQXVkaW9Db25maWcmIGF1ZGlvQ29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHN1cHBvcnRSZXF1aXJlZCkgeworICAgICAgICB1aW50NjRfdCBidWZmZXJTaXplOworICAgICAgICBBU1NFUlRfT0soCisgICAgICAgICAgICBkZXZpY2UtPmdldElucHV0QnVmZmVyU2l6ZShhdWRpb0NvbmZpZywgcmV0dXJuSW4ocmVzLCBidWZmZXJTaXplKSkpOworCisgICAgICAgIHN3aXRjaCAocmVzKSB7CisgICAgICAgICAgICBjYXNlIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM6CisgICAgICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKHN1cHBvcnRSZXF1aXJlZCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJlc3VsdDo6T0s6CisgICAgICAgICAgICAgICAgLy8gQ2hlY2sgdGhhdCB0aGUgYnVmZmVyIGlzIG9mIGEgc2FuZSBzaXplCisgICAgICAgICAgICAgICAgLy8gRm9yIG5vdyBvbmx5IHRoYXQgaXQgaXMgPiAwCisgICAgICAgICAgICAgICAgRVhQRUNUX0dUKGJ1ZmZlclNpemUsIHVpbnQ2NF90KDApKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgRkFJTCgpIDw8ICJJbnZhbGlkIHJldHVybiBzdGF0dXM6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHJlcyk7CisgICAgICAgIH0KKyAgICB9Cit9OworCisvLyBUZXN0IHRoYXQgdGhlIHJlcXVpcmVkIGNhcHR1cmUgY29uZmlnIGFuZCB0aG9zZSBkZWNsYXJlZCBpbiB0aGUgcG9saWN5IGFyZQorLy8gaW5kZWVkIHN1cHBvcnRlZAorY2xhc3MgUmVxdWlyZWRJbnB1dEJ1ZmZlclNpemVUZXN0IDogcHVibGljIEF1ZGlvQ2FwdHVyZUNvbmZpZ1ByaW1hcnlUZXN0IHt9OworVEVTVF9QKFJlcXVpcmVkSW5wdXRCdWZmZXJTaXplVGVzdCwgUmVxdWlyZWRJbnB1dEJ1ZmZlclNpemVUZXN0KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSW5wdXQgYnVmZmVyIHNpemUgbXVzdCBiZSByZXRyaWV2YWJsZSBmb3IgYSBmb3JtYXQgd2l0aCByZXF1aXJlZCAiCisgICAgICAgICJzdXBwb3J0LiIpOworICAgIGlucHV0QnVmZmVyU2l6ZVRlc3QoR2V0UGFyYW0oKSwgdHJ1ZSk7Cit9CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBSZXF1aXJlZElucHV0QnVmZmVyU2l6ZSwgUmVxdWlyZWRJbnB1dEJ1ZmZlclNpemVUZXN0LAorICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oCisgICAgICAgIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3Q6OmdldFJlcXVpcmVkU3VwcG9ydENhcHR1cmVBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBTdXBwb3J0ZWRJbnB1dEJ1ZmZlclNpemUsIFJlcXVpcmVkSW5wdXRCdWZmZXJTaXplVGVzdCwKKyAgICA6OnRlc3Rpbmc6OlZhbHVlc0luKAorICAgICAgICBBdWRpb0NvbmZpZ1ByaW1hcnlUZXN0OjpnZXRTdXBwb3J0ZWRDYXB0dXJlQXVkaW9Db25maWcoKSksCisgICAgJmdlbmVyYXRlVGVzdE5hbWUpOworCisvLyBUZXN0IHRoYXQgdGhlIHJlY29tbWVuZGVkIGNhcHR1cmUgY29uZmlnIGFyZSBzdXBwb3J0ZWQgb3IgbGVhZCB0byBhCisvLyBJTlZBTElEX0FSR1VNRU5UUyByZXR1cm4KK2NsYXNzIE9wdGlvbmFsSW5wdXRCdWZmZXJTaXplVGVzdCA6IHB1YmxpYyBBdWRpb0NhcHR1cmVDb25maWdQcmltYXJ5VGVzdCB7fTsKK1RFU1RfUChPcHRpb25hbElucHV0QnVmZmVyU2l6ZVRlc3QsIE9wdGlvbmFsSW5wdXRCdWZmZXJTaXplVGVzdCkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIklucHV0IGJ1ZmZlciBzaXplIHNob3VsZCBiZSByZXRyaWV2YWJsZSBmb3IgYSBmb3JtYXQgd2l0aCByZWNvbW1lbmRlZCAiCisgICAgICAgICJzdXBwb3J0LiIpOworICAgIGlucHV0QnVmZmVyU2l6ZVRlc3QoR2V0UGFyYW0oKSwgZmFsc2UpOworfQorSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoCisgICAgUmVjb21tZW5kZWRDYXB0dXJlQXVkaW9Db25maWdTdXBwb3J0LCBPcHRpb25hbElucHV0QnVmZmVyU2l6ZVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0UmVjb21tZW5kZWRTdXBwb3J0Q2FwdHVyZUF1ZGlvQ29uZmlnKCkpLAorICAgICZnZW5lcmF0ZVRlc3ROYW1lKTsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIHNldFNjcmVlblN0YXRlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitURVNUX0YoQXVkaW9QcmltYXJ5SGlkbFRlc3QsIHNldFNjcmVlblN0YXRlKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgY2FuIHJlY2VpdmUgdGhlIHNjcmVlbiBzdGF0ZSIpOworICAgIGZvciAoYm9vbCB0dXJuZWRPbiA6IHtmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlfSkgeworICAgICAgICBhdXRvIHJldCA9IGRldmljZS0+c2V0U2NyZWVuU3RhdGUodHVybmVkT24pOworICAgICAgICBBU1NFUlRfSVNfT0socmV0KTsKKyAgICAgICAgUmVzdWx0IHJlc3VsdCA9IHJldDsKKyAgICAgICAgYXV0byBva09yTm90U3VwcG9ydGVkID0ge1Jlc3VsdDo6T0ssIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRH07CisgICAgICAgIEFTU0VSVF9SRVNVTFQob2tPck5vdFN1cHBvcnRlZCwgcmVzdWx0KTsKKyAgICB9Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyB7Z2V0LHNldH1QYXJhbWV0ZXJzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBnZXRQYXJhbWV0ZXJzKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgY2FuIHNldCBhbmQgZ2V0IHBhcmFtZXRlcnMiKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4ga2V5czsKKyAgICBoaWRsX3ZlYzxQYXJhbWV0ZXJWYWx1ZT4gdmFsdWVzOworICAgIEFTU0VSVF9PSyhkZXZpY2UtPmdldFBhcmFtZXRlcnMoa2V5cywgcmV0dXJuSW4ocmVzLCB2YWx1ZXMpKSk7CisgICAgQVNTRVJUX09LKGRldmljZS0+c2V0UGFyYW1ldGVycyh2YWx1ZXMpKTsKKyAgICB2YWx1ZXMucmVzaXplKDApOworICAgIEFTU0VSVF9PSyhkZXZpY2UtPnNldFBhcmFtZXRlcnModmFsdWVzKSk7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gZGVidWdEZWJ1ZyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKwordGVtcGxhdGUgPGNsYXNzIERlYnVnRHVtcD4KK3N0YXRpYyB2b2lkIHRlc3REZWJ1Z0R1bXAoRGVidWdEdW1wIGRlYnVnRHVtcCkgeworICAgIC8vIER1bXAgaW4gYSB0ZW1wb3JhcnkgZmlsZQorICAgIC8vIE5vdGUgdGhhdCBTRUxpbnV4IG11c3QgYmUgZGVhY3RpdmF0ZSBmb3IgdGhpcyB0ZXN0IHRvIHdvcmsKKyAgICBGSUxFKiBmaWxlID0gdG1wZmlsZSgpOworICAgIEFTU0VSVF9ORShudWxscHRyLCBmaWxlKSA8PCBlcnJubzsKKworICAgIC8vIFdyYXAgdGhlIHRlbXBvcmFyeSBmaWxlIGZpbGUgZGVzY3JpcHRvciBpbiBhIG5hdGl2ZSBoYW5kbGUKKyAgICBhdXRvKiBuYXRpdmVIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxLCAwKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgbmF0aXZlSGFuZGxlKTsKKyAgICBuYXRpdmVIYW5kbGUtPmRhdGFbMF0gPSBmaWxlbm8oZmlsZSk7CisKKyAgICAvLyBXcmFwIHRoaXMgbmF0aXZlIGhhbmRsZSBpbiBhIGhpZGwgaGFuZGxlCisgICAgaGlkbF9oYW5kbGUgaGFuZGxlOworICAgIGhhbmRsZS5zZXRUbyhuYXRpdmVIYW5kbGUsIHRydWUgLyp0YWtlIG93bmVyc2hpcCovKTsKKworICAgIEFTU0VSVF9PSyhkZWJ1Z0R1bXAoaGFuZGxlKSk7CisKKyAgICAvLyBDaGVjayB0aGF0IGF0IGxlYXN0IG9uZSBiaXQgd2FzIHdyaXR0ZW4gYnkgdGhlIGhhbAorICAgIC8vIFRPRE86IGRlYnVnRHVtcCBkb2VzIG5vdCByZXR1cm4gYSBSZXN1bHQuCisgICAgLy8gVGhpcyBtZWFuIHRoYXQgdGhlIGhhbCBjYW4gbm90IHJlcG9ydCB0aGF0IGl0IG5vdCBpbXBsZW1lbnRpbmcgdGhlCisgICAgLy8gZnVuY3Rpb24uCisgICAgcmV3aW5kKGZpbGUpOyAgLy8gY2FuIG5vdCBmYWlsCisgICAgY2hhciBidWZmOworICAgIGlmIChmcmVhZCgmYnVmZiwgc2l6ZW9mKGJ1ZmYpLCAxLCBmaWxlKSAhPSAxKSB7CisgICAgICAgIGRvYzo6bm90ZSgiZGVidWdEdW1wIGRvZXMgbm90IHNlZW0gaW1wbGVtZW50ZWQiKTsKKyAgICB9CisgICAgRVhQRUNUX0VRKDAsIGZjbG9zZShmaWxlKSkgPDwgZXJybm87Cit9CisKK1RFU1RfRihBdWRpb1ByaW1hcnlIaWRsVGVzdCwgRGVidWdEdW1wKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgY2FuIGR1bXAgaXRzIHN0YXRlIHdpdGhvdXQgZXJyb3IiKTsKKyAgICB0ZXN0RGVidWdEdW1wKAorICAgICAgICBbdGhpc10oY29uc3QgYXV0byYgaGFuZGxlKSB7IHJldHVybiBkZXZpY2UtPmRlYnVnRHVtcChoYW5kbGUpOyB9KTsKK30KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBEZWJ1Z0R1bXBJbnZhbGlkQXJndW1lbnRzKSB7CisgICAgZG9jOjp0ZXN0KCJDaGVjayB0aGF0IHRoZSBoYWwgZHVtcCBkb2Vzbid0IGNyYXNoIG9uIGludmFsaWQgYXJndW1lbnRzIik7CisgICAgQVNTRVJUX09LKGRldmljZS0+ZGVidWdEdW1wKGhpZGxfaGFuZGxlKCkpKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBvcGVue091dHB1dCxJbnB1dH1TdHJlYW0gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCit0ZW1wbGF0ZSA8Y2xhc3MgU3RyZWFtPgorY2xhc3MgT3BlblN0cmVhbVRlc3QgOiBwdWJsaWMgQXVkaW9Db25maWdQcmltYXJ5VGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPEF1ZGlvQ29uZmlnPiB7CisgICBwcm90ZWN0ZWQ6CisgICAgdGVtcGxhdGUgPGNsYXNzIE9wZW4+CisgICAgdm9pZCB0ZXN0T3BlbihPcGVuIG9wZW5TdHJlYW0sIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcpIHsKKyAgICAgICAgLy8gRklYTUU6IE9wZW4gYSBzdHJlYW0gd2l0aG91dCBhbiBJT0hhbmRsZQorICAgICAgICAvLyAgICAgICAgVGhpcyBpcyBub3QgcmVxdWlyZWQgdG8gYmUgYWNjZXB0ZWQgYnkgaGFsIGltcGxlbWVudGF0aW9ucworICAgICAgICBBdWRpb0lvSGFuZGxlIGlvSGFuZGxlID0KKyAgICAgICAgICAgIChBdWRpb0lvSGFuZGxlKUF1ZGlvSGFuZGxlQ29uc3RzOjpBVURJT19JT19IQU5ETEVfTk9ORTsKKyAgICAgICAgQXVkaW9Db25maWcgc3VnZ2VzdGVkQ29uZmlne307CisgICAgICAgIEFTU0VSVF9PSyhvcGVuU3RyZWFtKGlvSGFuZGxlLCBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkluKHJlcywgc3RyZWFtLCBzdWdnZXN0ZWRDb25maWcpKSk7CisKKyAgICAgICAgLy8gVE9ETzogb25seSBhbGxvdyBmYWlsdXJlIGZvciBSZWNvbW1lbmRlZFBsYXliYWNrQXVkaW9Db25maWcKKyAgICAgICAgc3dpdGNoIChyZXMpIHsKKyAgICAgICAgICAgIGNhc2UgUmVzdWx0OjpPSzoKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShzdHJlYW0gIT0gbnVsbHB0cik7CisgICAgICAgICAgICAgICAgYXVkaW9Db25maWcgPSBjb25maWc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM6CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RyZWFtID09IG51bGxwdHIpOworICAgICAgICAgICAgICAgIEF1ZGlvQ29uZmlnIHN1Z2dlc3RlZENvbmZpZ1JldHJ5OworICAgICAgICAgICAgICAgIC8vIENvdWxkIG5vdCBvcGVuIHN0cmVhbSB3aXRoIGNvbmZpZywgdHJ5IGFnYWluIHdpdGggdGhlCisgICAgICAgICAgICAgICAgLy8gc3VnZ2VzdGVkIG9uZQorICAgICAgICAgICAgICAgIEFTU0VSVF9PSygKKyAgICAgICAgICAgICAgICAgICAgb3BlblN0cmVhbShpb0hhbmRsZSwgc3VnZ2VzdGVkQ29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybkluKHJlcywgc3RyZWFtLCBzdWdnZXN0ZWRDb25maWdSZXRyeSkpKTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHRpbWUgaXQgbXVzdCBzdWNjZWVkCisgICAgICAgICAgICAgICAgQVNTRVJUX09LKHJlcyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoc3RyZWFtICE9IG51bGxwdHIpOworICAgICAgICAgICAgICAgIGF1ZGlvQ29uZmlnID0gc3VnZ2VzdGVkQ29uZmlnOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBGQUlMKCkgPDwgIkludmFsaWQgcmV0dXJuIHN0YXR1czogIgorICAgICAgICAgICAgICAgICAgICAgICA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcocmVzKTsKKyAgICAgICAgfQorICAgICAgICBvcGVuID0gdHJ1ZTsKKyAgICB9CisKKyAgICBSZXR1cm48UmVzdWx0PiBjbG9zZVN0cmVhbSgpIHsKKyAgICAgICAgb3BlbiA9IGZhbHNlOworICAgICAgICByZXR1cm4gc3RyZWFtLT5jbG9zZSgpOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAob3BlbikgeworICAgICAgICAgICAgQVNTRVJUX09LKHN0cmVhbS0+Y2xvc2UoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgIHByb3RlY3RlZDoKKyAgICBBdWRpb0NvbmZpZyBhdWRpb0NvbmZpZzsKKyAgICBEZXZpY2VBZGRyZXNzIGFkZHJlc3MgPSB7fTsKKyAgICBzcDxTdHJlYW0+IHN0cmVhbTsKKyAgICBib29sIG9wZW4gPSBmYWxzZTsKK307CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBvcGVuT3V0cHV0U3RyZWFtIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitjbGFzcyBPdXRwdXRTdHJlYW1UZXN0IDogcHVibGljIE9wZW5TdHJlYW1UZXN0PElTdHJlYW1PdXQ+IHsKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKE9wZW5TdHJlYW1UZXN0OjpTZXRVcCgpKTsgIC8vIHNldHVwIGJhc2UKKyAgICAgICAgYWRkcmVzcy5kZXZpY2UgPSBBdWRpb0RldmljZTo6T1VUX0RFRkFVTFQ7CisgICAgICAgIGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcgPSBHZXRQYXJhbSgpOworICAgICAgICBBdWRpb091dHB1dEZsYWcgZmxhZ3MgPQorICAgICAgICAgICAgQXVkaW9PdXRwdXRGbGFnOjpOT05FOyAgLy8gVE9ETzogdGVzdCBhbGwgZmxhZyBjb21iaW5hdGlvbgorICAgICAgICB0ZXN0T3BlbigKKyAgICAgICAgICAgIFsmXShBdWRpb0lvSGFuZGxlIGhhbmRsZSwgQXVkaW9Db25maWcgY29uZmlnLCBhdXRvIGNiKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRldmljZS0+b3Blbk91dHB1dFN0cmVhbShoYW5kbGUsIGFkZHJlc3MsIGNvbmZpZywgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYik7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY29uZmlnKTsKKyAgICB9Cit9OworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIE9wZW5PdXRwdXRTdHJlYW1UZXN0KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiQ2hlY2sgdGhhdCBvdXRwdXQgc3RyZWFtcyBjYW4gYmUgb3BlbiB3aXRoIHRoZSByZXF1aXJlZCBhbmQgIgorICAgICAgICAicmVjb21tZW5kZWQgY29uZmlnIik7CisgICAgLy8gT3BlbiBkb25lIGluIFNldFVwCit9CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBSZXF1aXJlZE91dHB1dFN0cmVhbUNvbmZpZ1N1cHBvcnQsIE91dHB1dFN0cmVhbVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0UmVxdWlyZWRTdXBwb3J0UGxheWJhY2tBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBTdXBwb3J0ZWRPdXRwdXRTdHJlYW1Db25maWcsIE91dHB1dFN0cmVhbVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0U3VwcG9ydGVkUGxheWJhY2tBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgIFJlY29tbWVuZGVkT3V0cHV0U3RyZWFtQ29uZmlnU3VwcG9ydCwgT3V0cHV0U3RyZWFtVGVzdCwKKyAgICA6OnRlc3Rpbmc6OlZhbHVlc0luKAorICAgICAgICBBdWRpb0NvbmZpZ1ByaW1hcnlUZXN0OjpnZXRSZWNvbW1lbmRlZFN1cHBvcnRQbGF5YmFja0F1ZGlvQ29uZmlnKCkpLAorICAgICZnZW5lcmF0ZVRlc3ROYW1lKTsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIG9wZW5JbnB1dFN0cmVhbSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworY2xhc3MgSW5wdXRTdHJlYW1UZXN0IDogcHVibGljIE9wZW5TdHJlYW1UZXN0PElTdHJlYW1Jbj4geworICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoT3BlblN0cmVhbVRlc3Q6OlNldFVwKCkpOyAgLy8gc2V0dXAgYmFzZQorICAgICAgICBhZGRyZXNzLmRldmljZSA9IEF1ZGlvRGV2aWNlOjpJTl9ERUZBVUxUOworICAgICAgICBjb25zdCBBdWRpb0NvbmZpZyYgY29uZmlnID0gR2V0UGFyYW0oKTsKKyAgICAgICAgQXVkaW9JbnB1dEZsYWcgZmxhZ3MgPQorICAgICAgICAgICAgQXVkaW9JbnB1dEZsYWc6Ok5PTkU7ICAvLyBUT0RPOiB0ZXN0IGFsbCBmbGFnIGNvbWJpbmF0aW9uCisgICAgICAgIEF1ZGlvU291cmNlIHNvdXJjZSA9CisgICAgICAgICAgICBBdWRpb1NvdXJjZTo6REVGQVVMVDsgIC8vIFRPRE86IHRlc3QgYWxsIGZsYWcgY29tYmluYXRpb24KKyAgICAgICAgdGVzdE9wZW4oCisgICAgICAgICAgICBbJl0oQXVkaW9Jb0hhbmRsZSBoYW5kbGUsIEF1ZGlvQ29uZmlnIGNvbmZpZywgYXV0byBjYikgeworICAgICAgICAgICAgICAgIHJldHVybiBkZXZpY2UtPm9wZW5JbnB1dFN0cmVhbShoYW5kbGUsIGFkZHJlc3MsIGNvbmZpZywgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgY2IpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNvbmZpZyk7CisgICAgfQorfTsKKworVEVTVF9QKElucHV0U3RyZWFtVGVzdCwgT3BlbklucHV0U3RyZWFtVGVzdCkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIkNoZWNrIHRoYXQgaW5wdXQgc3RyZWFtcyBjYW4gYmUgb3BlbiB3aXRoIHRoZSByZXF1aXJlZCBhbmQgIgorICAgICAgICAicmVjb21tZW5kZWQgY29uZmlnIik7CisgICAgLy8gT3BlbiBkb25lIGluIHNldHVwCit9CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBSZXF1aXJlZElucHV0U3RyZWFtQ29uZmlnU3VwcG9ydCwgSW5wdXRTdHJlYW1UZXN0LAorICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oCisgICAgICAgIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3Q6OmdldFJlcXVpcmVkU3VwcG9ydENhcHR1cmVBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICBTdXBwb3J0ZWRJbnB1dFN0cmVhbUNvbmZpZywgSW5wdXRTdHJlYW1UZXN0LAorICAgIDo6dGVzdGluZzo6VmFsdWVzSW4oCisgICAgICAgIEF1ZGlvQ29uZmlnUHJpbWFyeVRlc3Q6OmdldFN1cHBvcnRlZENhcHR1cmVBdWRpb0NvbmZpZygpKSwKKyAgICAmZ2VuZXJhdGVUZXN0TmFtZSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgIFJlY29tbWVuZGVkSW5wdXRTdHJlYW1Db25maWdTdXBwb3J0LCBJbnB1dFN0cmVhbVRlc3QsCisgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbigKKyAgICAgICAgQXVkaW9Db25maWdQcmltYXJ5VGVzdDo6Z2V0UmVjb21tZW5kZWRTdXBwb3J0Q2FwdHVyZUF1ZGlvQ29uZmlnKCkpLAorICAgICZnZW5lcmF0ZVRlc3ROYW1lKTsKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gSVN0cmVhbSBnZXR0ZXJzIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisvKiogVW5wYWNrIHRoZSBwcm92aWRlZCByZXN1bHQuCisgKiBJZiB0aGUgcmVzdWx0IGlzIG5vdCBPSywgcmVnaXN0ZXIgYSBmYWlsdXJlIGFuZCByZXR1cm4gYW4gdW5kZWZpbmVkIHZhbHVlLiAqLwordGVtcGxhdGUgPGNsYXNzIFI+CitzdGF0aWMgUiBleHRyYWN0KFJldHVybjxSPiByZXQpIHsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgRVhQRUNUX0lTX09LKHJldCk7CisgICAgICAgIHJldHVybiBSe307CisgICAgfQorICAgIHJldHVybiByZXQ7Cit9CisKKy8qIENvdWxkIG5vdCBmaW5kIGEgd2F5IHRvIHdyaXRlIGEgdGVzdCBmb3IgdHdvIHBhcmFtZXRyaXplZCBjbGFzcyBmaXh1cmUKKyAqIHRodXMgdXNlIHRoaXMgbWFjcm8gZG8gZHVwbGljYXRlIHRlc3RzIGZvciBJbnB1dCBhbmQgT3V0cHV0IHN0cmVhbSAqLworI2RlZmluZSBURVNUX0lPX1NUUkVBTSh0ZXN0X25hbWUsIGRvY3VtZW50YXRpb24sIGNvZGUpIFwKKyAgICBURVNUX1AoSW5wdXRTdHJlYW1UZXN0LCB0ZXN0X25hbWUpIHsgICAgICAgICAgICAgICBcCisgICAgICAgIGRvYzo6dGVzdChkb2N1bWVudGF0aW9uKTsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBjb2RlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIHRlc3RfbmFtZSkgeyAgICAgICAgICAgICAgXAorICAgICAgICBkb2M6OnRlc3QoZG9jdW1lbnRhdGlvbik7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29kZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCitURVNUX0lPX1NUUkVBTSgKKyAgICBHZXRGcmFtZUNvdW50LAorICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZnJhbWUgY291bnQgPT0gdGhlIG9uZSBpdCB3YXMgb3BlbmVkIHdpdGgiLAorICAgIEFTU0VSVF9FUShhdWRpb0NvbmZpZy5mcmFtZUNvdW50LCBleHRyYWN0KHN0cmVhbS0+Z2V0RnJhbWVDb3VudCgpKSkpCisKK1RFU1RfSU9fU1RSRUFNKAorICAgIEdldFNhbXBsZVJhdGUsCisgICAgIkNoZWNrIHRoYXQgdGhlIHN0cmVhbSBzYW1wbGUgcmF0ZSA9PSB0aGUgb25lIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgQVNTRVJUX0VRKGF1ZGlvQ29uZmlnLnNhbXBsZVJhdGVIeiwgZXh0cmFjdChzdHJlYW0tPmdldFNhbXBsZVJhdGUoKSkpKQorCitURVNUX0lPX1NUUkVBTSgKKyAgICBHZXRDaGFubmVsTWFzaywKKyAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGNoYW5uZWwgbWFzayA9PSB0aGUgb25lIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgQVNTRVJUX0VRKGF1ZGlvQ29uZmlnLmNoYW5uZWxNYXNrLCBleHRyYWN0KHN0cmVhbS0+Z2V0Q2hhbm5lbE1hc2soKSkpKQorCitURVNUX0lPX1NUUkVBTShHZXRGb3JtYXQsCisgICAgICAgICAgICAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGZvcm1hdCA9PSB0aGUgb25lIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgICAgICAgICAgICBBU1NFUlRfRVEoYXVkaW9Db25maWcuZm9ybWF0LCBleHRyYWN0KHN0cmVhbS0+Z2V0Rm9ybWF0KCkpKSkKKworLy8gVE9ETzogZm9yIG5vdyBvbmx5IGNoZWNrIHRoYXQgdGhlIGZyYW1lc2l6ZSBpcyBub3QgaW5jb2hlcmVudAorVEVTVF9JT19TVFJFQU0oR2V0RnJhbWVTaXplLAorICAgICAgICAgICAgICAgIkNoZWNrIHRoYXQgdGhlIHN0cmVhbSBmcmFtZSBzaXplID09IHRoZSBvbmUgaXQgd2FzIG9wZW5lZCB3aXRoIiwKKyAgICAgICAgICAgICAgIEFTU0VSVF9HVChleHRyYWN0KHN0cmVhbS0+Z2V0RnJhbWVTaXplKCkpLCAwVSkpCisKK1RFU1RfSU9fU1RSRUFNKEdldEJ1ZmZlclNpemUsCisgICAgICAgICAgICAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGJ1ZmZlciBzaXplPT0gdGhlIG9uZSBpdCB3YXMgb3BlbmVkIHdpdGgiLAorICAgICAgICAgICAgICAgQVNTRVJUX0dFKGV4dHJhY3Qoc3RyZWFtLT5nZXRCdWZmZXJTaXplKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhY3Qoc3RyZWFtLT5nZXRGcmFtZVNpemUoKSkpKTsKKwordGVtcGxhdGUgPGNsYXNzIFByb3BlcnR5LCBjbGFzcyBDYXBhYmlsaXR5R2V0dGVyLCBjbGFzcyBHZXR0ZXIsIGNsYXNzIFNldHRlcj4KK3N0YXRpYyB2b2lkIHRlc3RDYXBhYmlsaXR5R2V0dGVyKGNvbnN0IHN0cmluZyYgbmFtZSwgSVN0cmVhbSogc3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvcGVydHkgY3VycmVudFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FwYWJpbGl0eUdldHRlciBjYXBhYmxpdHlHZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXR0ZXIgZ2V0dGVyLCBTZXR0ZXIgc2V0dGVyKSB7CisgICAgaGlkbF92ZWM8UHJvcGVydHk+IGNhcGFiaWxpdGllczsKKyAgICBBU1NFUlRfT0soKHN0cmVhbS0+KmNhcGFibGl0eUdldHRlcikocmV0dXJuSW4oY2FwYWJpbGl0aWVzKSkpOworICAgIGlmIChjYXBhYmlsaXRpZXMuc2l6ZSgpID09IDApIHsKKyAgICAgICAgLy8gVGhlIGRlZmF1bHQgaGFsIHNob3VsZCBwcm9iYWJseSByZXR1cm4gYSBOT1RfU1VQUE9SVEVEIGlmIHRoZSBoYWwKKyAgICAgICAgLy8gZG9lcyBub3QgZXhwb3NlCisgICAgICAgIC8vIGNhcGFiaWxpdHkgcmV0cmlldmFsLiBGb3Igbm93IGl0IHJldHVybnMgYW4gZW1wdHkgbGlzdCBpZiBub3QKKyAgICAgICAgLy8gaW1wbGVtZW50ZWQKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdChuYW1lICsgIiBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9OworICAgIC8vIFRPRE86IFRoaXMgY29kZSBoYXMgbmV2ZXIgYmVlbiB0ZXN0ZWQgb24gYSBoYWwgdGhhdCBzdXBwb3J0cworICAgIC8vIGdldFN1cHBvcnRlZFNhbXBsZVJhdGVzCisgICAgRVhQRUNUX05FKHN0ZDo6ZmluZChjYXBhYmlsaXRpZXMuYmVnaW4oKSwgY2FwYWJpbGl0aWVzLmVuZCgpLCBjdXJyZW50VmFsdWUpLAorICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMuZW5kKCkpCisgICAgICAgIDw8ICJjdXJyZW50ICIgPDwgbmFtZSA8PCAiIGlzIG5vdCBpbiB0aGUgbGlzdCBvZiB0aGUgc3VwcG9ydGVkIG9uZXMgIgorICAgICAgICA8PCB0b1N0cmluZyhjYXBhYmlsaXRpZXMpOworCisgICAgLy8gQ2hlY2sgdGhhdCBhbGwgZGVjbGFyZWQgc3VwcG9ydGVkIHZhbHVlcyBhcmUgaW5kZWVkIHN1cHBvcnRlZAorICAgIGZvciAoYXV0byBjYXBhYmlsaXR5IDogY2FwYWJpbGl0aWVzKSB7CisgICAgICAgIEFTU0VSVF9PSygoc3RyZWFtLT4qc2V0dGVyKShjYXBhYmlsaXR5KSk7CisgICAgICAgIEFTU0VSVF9FUShjYXBhYmlsaXR5LCBleHRyYWN0KChzdHJlYW0tPipnZXR0ZXIpKCkpKTsKKyAgICB9Cit9CisKK1RFU1RfSU9fU1RSRUFNKFN1cHBvcnRlZFNhbXBsZVJhdGUsCisgICAgICAgICAgICAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIHNhbXBsZSByYXRlIGlzIGRlY2xhcmVkIGFzIHN1cHBvcnRlZCIsCisgICAgICAgICAgICAgICB0ZXN0Q2FwYWJpbGl0eUdldHRlcigiZ2V0U3VwcG9ydGVkU2FtcGxlUmF0ZSIsIHN0cmVhbS5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhY3Qoc3RyZWFtLT5nZXRTYW1wbGVSYXRlKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJklTdHJlYW06OmdldFN1cHBvcnRlZFNhbXBsZVJhdGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJklTdHJlYW06OmdldFNhbXBsZVJhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmSVN0cmVhbTo6c2V0U2FtcGxlUmF0ZSkpCisKK1RFU1RfSU9fU1RSRUFNKFN1cHBvcnRlZENoYW5uZWxNYXNrLAorICAgICAgICAgICAgICAgIkNoZWNrIHRoYXQgdGhlIHN0cmVhbSBjaGFubmVsIG1hc2sgaXMgZGVjbGFyZWQgYXMgc3VwcG9ydGVkIiwKKyAgICAgICAgICAgICAgIHRlc3RDYXBhYmlsaXR5R2V0dGVyKCJnZXRTdXBwb3J0ZWRDaGFubmVsTWFzayIsIHN0cmVhbS5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhY3Qoc3RyZWFtLT5nZXRDaGFubmVsTWFzaygpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpnZXRTdXBwb3J0ZWRDaGFubmVsTWFza3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmSVN0cmVhbTo6Z2V0Q2hhbm5lbE1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmSVN0cmVhbTo6c2V0Q2hhbm5lbE1hc2spKQorCitURVNUX0lPX1NUUkVBTShTdXBwb3J0ZWRGb3JtYXQsCisgICAgICAgICAgICAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGZvcm1hdCBpcyBkZWNsYXJlZCBhcyBzdXBwb3J0ZWQiLAorICAgICAgICAgICAgICAgdGVzdENhcGFiaWxpdHlHZXR0ZXIoImdldFN1cHBvcnRlZEZvcm1hdCIsIHN0cmVhbS5nZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhY3Qoc3RyZWFtLT5nZXRGb3JtYXQoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmSVN0cmVhbTo6Z2V0U3VwcG9ydGVkRm9ybWF0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZJU3RyZWFtOjpnZXRGb3JtYXQsICZJU3RyZWFtOjpzZXRGb3JtYXQpKQorCitzdGF0aWMgdm9pZCB0ZXN0R2V0RGV2aWNlKElTdHJlYW0qIHN0cmVhbSwgQXVkaW9EZXZpY2UgZXhwZWN0ZWREZXZpY2UpIHsKKyAgICAvLyBVbmZvcnR1bmF0ZWx5IHRoZSBpbnRlcmZhY2UgZG9lcyBub3QgYWxsb3cgdGhlIGltcGxlbWVudGF0aW9uIHRvIHJldHVybgorICAgIC8vIE5PVF9TVVBQT1JURUQKKyAgICAvLyBUaHVzIGFsbG93IE5PTkUgYXMgc2lnbmFsaW5nIHRoYXQgdGhlIGNhbGwgaXMgbm90IHN1cHBvcnRlZC4KKyAgICBhdXRvIHJldCA9IHN0cmVhbS0+Z2V0RGV2aWNlKCk7CisgICAgQVNTRVJUX0lTX09LKHJldCk7CisgICAgQXVkaW9EZXZpY2UgZGV2aWNlID0gcmV0OworICAgIEFTU0VSVF9UUlVFKGRldmljZSA9PSBleHBlY3RlZERldmljZSB8fCBkZXZpY2UgPT0gQXVkaW9EZXZpY2U6Ok5PTkUpCisgICAgICAgIDw8ICJFeHBlY3RlZDogIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoZXhwZWN0ZWREZXZpY2UpCisgICAgICAgIDw8ICJcbiAgQWN0dWFsOiAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhkZXZpY2UpOworfQorCitURVNUX0lPX1NUUkVBTShHZXREZXZpY2UsCisgICAgICAgICAgICAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGRldmljZSA9PSB0aGUgb25lIGl0IHdhcyBvcGVuZWQgd2l0aCIsCisgICAgICAgICAgICAgICBhcmVBdWRpb1BhdGNoZXNTdXBwb3J0ZWQoKQorICAgICAgICAgICAgICAgICAgID8gZG9jOjpwYXJ0aWFsVGVzdCgiQXVkaW8gcGF0Y2hlcyBhcmUgc3VwcG9ydGVkIikKKyAgICAgICAgICAgICAgICAgICA6IHRlc3RHZXREZXZpY2Uoc3RyZWFtLmdldCgpLCBhZGRyZXNzLmRldmljZSkpCisKK3N0YXRpYyB2b2lkIHRlc3RTZXREZXZpY2UoSVN0cmVhbSogc3RyZWFtLCBjb25zdCBEZXZpY2VBZGRyZXNzJiBhZGRyZXNzKSB7CisgICAgRGV2aWNlQWRkcmVzcyBvdGhlckFkZHJlc3MgPSBhZGRyZXNzOworICAgIG90aGVyQWRkcmVzcy5kZXZpY2UgPSAoYWRkcmVzcy5kZXZpY2UgJiBBdWRpb0RldmljZTo6QklUX0lOKSA9PSAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IEF1ZGlvRGV2aWNlOjpPVVRfU1BFQUtFUgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBBdWRpb0RldmljZTo6SU5fQlVJTFRJTl9NSUM7CisgICAgRVhQRUNUX09LKHN0cmVhbS0+c2V0RGV2aWNlKG90aGVyQWRkcmVzcykpOworCisgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0RGV2aWNlKGFkZHJlc3MpKTsgIC8vIEdvIGJhY2sgdG8gdGhlIG9yaWdpbmFsIHZhbHVlCit9CisKK1RFU1RfSU9fU1RSRUFNKAorICAgIFNldERldmljZSwKKyAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGNhbiBiZSByZXJvdXRlZCB0byBTUEVBS0VSIG9yIEJVSUxUSU5fTUlDIiwKKyAgICBhcmVBdWRpb1BhdGNoZXNTdXBwb3J0ZWQoKSA/IGRvYzo6cGFydGlhbFRlc3QoIkF1ZGlvIHBhdGNoZXMgYXJlIHN1cHBvcnRlZCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0ZXN0U2V0RGV2aWNlKHN0cmVhbS5nZXQoKSwgYWRkcmVzcykpCisKK3N0YXRpYyB2b2lkIHRlc3RHZXRBdWRpb1Byb3BlcnRpZXMoSVN0cmVhbSogc3RyZWFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb0NvbmZpZyBleHBlY3RlZENvbmZpZykgeworICAgIHVpbnQzMl90IHNhbXBsZVJhdGVIejsKKyAgICBBdWRpb0NoYW5uZWxNYXNrIG1hc2s7CisgICAgQXVkaW9Gb3JtYXQgZm9ybWF0OworCisgICAgc3RyZWFtLT5nZXRBdWRpb1Byb3BlcnRpZXMocmV0dXJuSW4oc2FtcGxlUmF0ZUh6LCBtYXNrLCBmb3JtYXQpKTsKKworICAgIC8vIEZJWE1FOiB0aGUgcWNvbSBoYWwgaXQgZG9lcyBub3QgY3VycmVudGx5IG5lZ290aWF0ZSB0aGUgc2FtcGxlUmF0ZSAmCisgICAgLy8gY2hhbm5lbCBtYXNrCisgICAgRVhQRUNUX0VRKGV4cGVjdGVkQ29uZmlnLnNhbXBsZVJhdGVIeiwgc2FtcGxlUmF0ZUh6KTsKKyAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRDb25maWcuY2hhbm5lbE1hc2ssIG1hc2spOworICAgIEVYUEVDVF9FUShleHBlY3RlZENvbmZpZy5mb3JtYXQsIGZvcm1hdCk7Cit9CisKK1RFU1RfSU9fU1RSRUFNKAorICAgIEdldEF1ZGlvUHJvcGVydGllcywKKyAgICAiQ2hlY2sgdGhhdCB0aGUgc3RyZWFtIGF1ZGlvIHByb3BlcnRpZXMgPT0gdGhlIG9uZXMgaXQgd2FzIG9wZW5lZCB3aXRoIiwKKyAgICB0ZXN0R2V0QXVkaW9Qcm9wZXJ0aWVzKHN0cmVhbS5nZXQoKSwgYXVkaW9Db25maWcpKQorCitzdGF0aWMgdm9pZCB0ZXN0Q29ubmVjdGVkU3RhdGUoSVN0cmVhbSogc3RyZWFtKSB7CisgICAgRGV2aWNlQWRkcmVzcyBhZGRyZXNzID0ge307CisgICAgdXNpbmcgQUQgPSBBdWRpb0RldmljZTsKKyAgICBmb3IgKGF1dG8gZGV2aWNlIDoKKyAgICAgICAgIHtBRDo6T1VUX0hETUksIEFEOjpPVVRfV0lSRURfSEVBRFBIT05FLCBBRDo6SU5fVVNCX0hFQURTRVR9KSB7CisgICAgICAgIGFkZHJlc3MuZGV2aWNlID0gZGV2aWNlOworCisgICAgICAgIEFTU0VSVF9PSyhzdHJlYW0tPnNldENvbm5lY3RlZFN0YXRlKGFkZHJlc3MsIHRydWUpKTsKKyAgICAgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0Q29ubmVjdGVkU3RhdGUoYWRkcmVzcywgZmFsc2UpKTsKKyAgICB9Cit9CitURVNUX0lPX1NUUkVBTShTZXRDb25uZWN0ZWRTdGF0ZSwKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gY2FuIGJlIG5vdGlmaWVkIG9mIGRldmljZSBjb25uZWN0aW9uIGFuZCAiCisgICAgICAgICAgICAgICAiZGVjb25uZWN0aW9uIiwKKyAgICAgICAgICAgICAgIHRlc3RDb25uZWN0ZWRTdGF0ZShzdHJlYW0uZ2V0KCkpKQorCitzdGF0aWMgYXV0byBpbnZhbGlkQXJnc09yTm90U3VwcG9ydGVkT3JPSyA9IHtSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0OjpOT1RfU1VQUE9SVEVELCBSZXN1bHQ6Ok9LfTsKK1RFU1RfSU9fU1RSRUFNKFNldEh3QXZTeW5jLCAiVHJ5IHRvIHNldCBoYXJkd2FyZSBzeW5jIHRvIGFuIGludmFsaWQgdmFsdWUiLAorICAgICAgICAgICAgICAgQVNTRVJUX1JFU1VMVChpbnZhbGlkQXJnc09yTm90U3VwcG9ydGVkT3JPSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5zZXRId0F2U3luYyg2NjYpKSkKKworVEVTVF9JT19TVFJFQU0oR2V0SHdBdlN5bmMsICJHZXQgaGFyZHdhcmUgc3luYyBjYW4gbm90IGZhaWwiLAorICAgICAgICAgICAgICAgQVNTRVJUX0lTX09LKGRldmljZS0+Z2V0SHdBdlN5bmMoKSkpOworCitzdGF0aWMgdm9pZCBjaGVja0dldE5vUGFyYW1ldGVyKElTdHJlYW0qIHN0cmVhbSwgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGtleXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvcjxSZXN1bHQ+IGV4cGVjdGVkUmVzdWx0cykgeworICAgIGhpZGxfdmVjPFBhcmFtZXRlclZhbHVlPiBwYXJhbWV0ZXJzOworICAgIFJlc3VsdCByZXM7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+Z2V0UGFyYW1ldGVycyhrZXlzLCByZXR1cm5JbihyZXMsIHBhcmFtZXRlcnMpKSk7CisgICAgQVNTRVJUX1JFU1VMVChleHBlY3RlZFJlc3VsdHMsIHJlcyk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgIGZvciAoYXV0byYgcGFyYW1ldGVyIDogcGFyYW1ldGVycykgeworICAgICAgICAgICAgQVNTRVJUX0VRKDBVLCBwYXJhbWV0ZXIudmFsdWUuc2l6ZSgpKSA8PCB0b1N0cmluZyhwYXJhbWV0ZXIpOworICAgICAgICB9CisgICAgfQorfQorCisvKiBHZXQvU2V0IHBhcmFtZXRlciBpcyBpbnRlbmRlZCB0byBiZSBhbiBvcGFxdWUgY2hhbm5lbCBiZXR3ZWVuIHZlbmRvcnMgYXBwIGFuZAorICogdGhlaXIgSEFMcy4KKyAqIFRodXMgY2FuIG5vdCBiZSBtZWFuaW5nZnVsbHkgdGVzdGVkLgorICovCitURVNUX0lPX1NUUkVBTShnZXRFbXB0eVNldFBhcmFtZXRlciwgIlJldHJpZXZlIHRoZSB2YWx1ZXMgb2YgYW4gZW1wdHkgc2V0IiwKKyAgICAgICAgICAgICAgIGNoZWNrR2V0Tm9QYXJhbWV0ZXIoc3RyZWFtLmdldCgpLCB7fSAvKiBrZXlzICovLCB7UmVzdWx0OjpPS30pKQorCitURVNUX0lPX1NUUkVBTShnZXROb25FeGlzdGluZ1BhcmFtZXRlciwKKyAgICAgICAgICAgICAgICJSZXRyaWV2ZSB0aGUgdmFsdWVzIG9mIGFuIG5vbiBleGlzdGluZyBwYXJhbWV0ZXIiLAorICAgICAgICAgICAgICAgY2hlY2tHZXROb1BhcmFtZXRlcihzdHJlYW0uZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsiTm9uIGV4aXN0aW5nIGtleSJ9IC8qIGtleXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtSZXN1bHQ6Ok5PVF9TVVBQT1JURUR9KSkKKworVEVTVF9JT19TVFJFQU0oc2V0RW1wdHlTZXRQYXJhbWV0ZXIsCisgICAgICAgICAgICAgICAiU2V0IHRoZSB2YWx1ZXMgb2YgYW4gZW1wdHkgc2V0IG9mIHBhcmFtZXRlcnMiLAorICAgICAgICAgICAgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6Ok9LLCBzdHJlYW0tPnNldFBhcmFtZXRlcnMoe30pKSkKKworVEVTVF9JT19TVFJFQU0oCisgICAgc2V0Tm9uRXhpc3RpbmdQYXJhbWV0ZXIsICJTZXQgdGhlIHZhbHVlcyBvZiBhbiBub24gZXhpc3RpbmcgcGFyYW1ldGVyIiwKKyAgICAvLyBVbmZvcnR1bmF0ZWx5LCB0aGUgc2V0X3BhcmFtZXRlciBsZWdhY3kgaW50ZXJmYWNlIGRpZCBub3QgcmV0dXJuIGFueQorICAgIC8vIGVycm9yIGNvZGUgd2hlbiBhIGtleSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIC8vIFRvIGFsbG93IGltcGxlbWVudGF0aW9uIHRvIGp1c3Qgd3JhcHBlZCB0aGUgbGVnYWN5IG9uZSwgY29uc2lkZXIgT0sgYXMgYQorICAgIC8vIHZhbGlkIHJlc3VsdCBmb3Igc2V0dGluZyBhIG5vbiBleGlzdGluZyBwYXJhbWV0ZXIuCisgICAgQVNTRVJUX1JFU1VMVChpbnZhbGlkQXJnc09yTm90U3VwcG9ydGVkT3JPSywKKyAgICAgICAgICAgICAgICAgIHN0cmVhbS0+c2V0UGFyYW1ldGVycyh7eyJub24gZXhpc3Rpbmcga2V5IiwgIjAifX0pKSkKKworVEVTVF9JT19TVFJFQU0oRGVidWdEdW1wLAorICAgICAgICAgICAgICAgIkNoZWNrIHRoYXQgYSBzdHJlYW0gY2FuIGR1bXAgaXRzIHN0YXRlIHdpdGhvdXQgZXJyb3IiLAorICAgICAgICAgICAgICAgdGVzdERlYnVnRHVtcChbdGhpc10oY29uc3QgYXV0byYgaGFuZGxlKSB7CisgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0cmVhbS0+ZGVidWdEdW1wKGhhbmRsZSk7CisgICAgICAgICAgICAgICB9KSkKKworVEVTVF9JT19TVFJFQU0oRGVidWdEdW1wSW52YWxpZEFyZ3VtZW50cywKKyAgICAgICAgICAgICAgICJDaGVjayB0aGF0IHRoZSBzdHJlYW0gZHVtcCBkb2Vzbid0IGNyYXNoIG9uIGludmFsaWQgYXJndW1lbnRzIiwKKyAgICAgICAgICAgICAgIEFTU0VSVF9PSyhzdHJlYW0tPmRlYnVnRHVtcChoaWRsX2hhbmRsZSgpKSkpCisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIGFkZFJlbW92ZUVmZmVjdCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVEVTVF9JT19TVFJFQU0oQWRkTm9uRXhpc3RpbmdFZmZlY3QsICJBZGRpbmcgYSBub24gZXhpc3RpbmcgZWZmZWN0IHNob3VsZCBmYWlsIiwKKyAgICAgICAgICAgICAgIEFTU0VSVF9SRVNVTFQoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgc3RyZWFtLT5hZGRFZmZlY3QoNjY2KSkpCitURVNUX0lPX1NUUkVBTShSZW1vdmVOb25FeGlzdGluZ0VmZmVjdCwKKyAgICAgICAgICAgICAgICJSZW1vdmluZyBhIG5vbiBleGlzdGluZyBlZmZlY3Qgc2hvdWxkIGZhaWwiLAorICAgICAgICAgICAgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlYW0tPnJlbW92ZUVmZmVjdCg2NjYpKSkKKworLy8gVE9ETzogcG9zaXRpdmUgdGVzdHMKKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vIENvbnRyb2wgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitURVNUX0lPX1NUUkVBTShzdGFuZGJ5LCAiTWFrZSBzdXJlIHRoZSBzdHJlYW0gY2FuIGJlIHB1dCBpbiBzdGFuYnkiLAorICAgICAgICAgICAgICAgQVNTRVJUX09LKHN0cmVhbS0+c3RhbmRieSgpKSkgIC8vIGNhbiBub3QgZmFpbAorCitzdGF0aWMgdmVjdG9yPFJlc3VsdD4gaW52YWxpZFN0YXRlT3JOb3RTdXBwb3J0ZWQgPSB7UmVzdWx0OjpJTlZBTElEX1NUQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdDo6Tk9UX1NVUFBPUlRFRH07CisKK1RFU1RfSU9fU1RSRUFNKHN0YXJ0Tm9NbWFwLAorICAgICAgICAgICAgICAgIlN0YXJ0aW5nIGEgbW1hcGVkIHN0cmVhbSBiZWZvcmUgbWFwcGluZyBpdCBzaG91bGQgZmFpbCIsCisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRTdGF0ZU9yTm90U3VwcG9ydGVkLCBzdHJlYW0tPnN0YXJ0KCkpKQorCitURVNUX0lPX1NUUkVBTShzdG9wTm9NbWFwLAorICAgICAgICAgICAgICAgIlN0b3BwaW5nIGEgbW1hcGVkIHN0cmVhbSBiZWZvcmUgbWFwcGluZyBpdCBzaG91bGQgZmFpbCIsCisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRTdGF0ZU9yTm90U3VwcG9ydGVkLCBzdHJlYW0tPnN0b3AoKSkpCisKK1RFU1RfSU9fU1RSRUFNKGdldE1tYXBQb3NpdGlvbk5vTW1hcCwKKyAgICAgICAgICAgICAgICJHZXQgYSBzdHJlYW0gTW1hcCBwb3NpdGlvbiBiZWZvcmUgbWFwcGluZyBpdCBzaG91bGQgZmFpbCIsCisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRTdGF0ZU9yTm90U3VwcG9ydGVkLCBzdHJlYW0tPnN0b3AoKSkpCisKK1RFU1RfSU9fU1RSRUFNKGNsb3NlLCAiTWFrZSBzdXJlIGEgc3RyZWFtIGNhbiBiZSBjbG9zZWQiLAorICAgICAgICAgICAgICAgQVNTRVJUX09LKGNsb3NlU3RyZWFtKCkpKQorVEVTVF9JT19TVFJFQU0oY2xvc2VUd2ljZSwgIk1ha2Ugc3VyZSBhIHN0cmVhbSBjYW4gbm90IGJlIGNsb3NlZCB0d2ljZSIsCisgICAgICAgICAgICAgICBBU1NFUlRfT0soY2xvc2VTdHJlYW0oKSk7CisgICAgICAgICAgICAgICBBU1NFUlRfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9TVEFURSwgY2xvc2VTdHJlYW0oKSkpCisKK3N0YXRpYyBhdXRvIGludmFsaWRBcmdzT3JOb3RTdXBwb3J0ZWQgPSB7UmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzdWx0OjpOT1RfU1VQUE9SVEVEfTsKK3N0YXRpYyB2b2lkIHRlc3RDcmVhdGVUb29CaWdNbWFwQnVmZmVyKElTdHJlYW0qIHN0cmVhbSkgeworICAgIE1tYXBCdWZmZXJJbmZvIGluZm87CisgICAgUmVzdWx0IHJlczsKKyAgICAvLyBBc3N1bWUgdGhhdCBpbnQgbWF4IGlzIGEgdmFsdWUgdG9vIGJpZyB0byBiZSBhbGxvY2F0ZWQKKyAgICAvLyBUaGlzIGlzIHRydWUgY3VycmVudGx5IHdpdGggYSAzMmJpdCBtZWRpYSBzZXJ2ZXIsIGJ1dCBtaWdodCBub3Qgd2hlbiBpdAorICAgIC8vIHdpbGwgcnVuIGluIDY0IGJpdAorICAgIGF1dG8gbWluU2l6ZUZyYW1lcyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpOworICAgIEFTU0VSVF9PSyhzdHJlYW0tPmNyZWF0ZU1tYXBCdWZmZXIobWluU2l6ZUZyYW1lcywgcmV0dXJuSW4ocmVzLCBpbmZvKSkpOworICAgIEFTU0VSVF9SRVNVTFQoaW52YWxpZEFyZ3NPck5vdFN1cHBvcnRlZCwgcmVzKTsKK30KKworVEVTVF9JT19TVFJFQU0oQ3JlYXRlVG9vQmlnTW1hcEJ1ZmZlciwgIkNyZWF0ZSBtbWFwIGJ1ZmZlciB0b28gYmlnIHNob3VsZCBmYWlsIiwKKyAgICAgICAgICAgICAgIHRlc3RDcmVhdGVUb29CaWdNbWFwQnVmZmVyKHN0cmVhbS5nZXQoKSkpCisKK3N0YXRpYyB2b2lkIHRlc3RHZXRNbWFwUG9zaXRpb25PZk5vbk1tYXBlZFN0cmVhbShJU3RyZWFtKiBzdHJlYW0pIHsKKyAgICBSZXN1bHQgcmVzOworICAgIE1tYXBQb3NpdGlvbiBwb3NpdGlvbjsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5nZXRNbWFwUG9zaXRpb24ocmV0dXJuSW4ocmVzLCBwb3NpdGlvbikpKTsKKyAgICBBU1NFUlRfUkVTVUxUKGludmFsaWRBcmdzT3JOb3RTdXBwb3J0ZWQsIHJlcyk7Cit9CisKK1RFU1RfSU9fU1RSRUFNKAorICAgIEdldE1tYXBQb3NpdGlvbk9mTm9uTW1hcGVkU3RyZWFtLAorICAgICJSZXRyaWV2aW5nIHRoZSBtbWFwIHBvc2l0aW9uIG9mIGEgbm9uIG1tYXBlZCBzdHJlYW0gc2hvdWxkIGZhaWwiLAorICAgIHRlc3RHZXRNbWFwUG9zaXRpb25PZk5vbk1tYXBlZFN0cmVhbShzdHJlYW0uZ2V0KCkpKQorCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBTdHJlYW1JbiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIEdldEF1ZGlvU291cmNlKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiUmV0cmlldmluZyB0aGUgYXVkaW8gc291cmNlIG9mIGFuIGlucHV0IHN0cmVhbSBzaG91bGQgYWx3YXlzIHN1Y2NlZWQiKTsKKyAgICBBdWRpb1NvdXJjZSBzb3VyY2U7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+Z2V0QXVkaW9Tb3VyY2UocmV0dXJuSW4ocmVzLCBzb3VyY2UpKSk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiZ2V0QXVkaW9Tb3VyY2UgaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9PSyhyZXMpOworICAgIEFTU0VSVF9FUShBdWRpb1NvdXJjZTo6REVGQVVMVCwgc291cmNlKTsKK30KKworc3RhdGljIHZvaWQgdGVzdFVuaXRhcnlHYWluKHN0ZDo6ZnVuY3Rpb248UmV0dXJuPFJlc3VsdD4oZmxvYXQpPiBzZXRHYWluKSB7CisgICAgZm9yIChmbG9hdCB2YWx1ZSA6CisgICAgICAgICAoZmxvYXRbXSl7LUlORklOSVRZLCAtMS4wLCAxLjAgKyBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6ZXBzaWxvbigpLAorICAgICAgICAgICAgICAgICAgIDIuMCwgSU5GSU5JVFksIE5BTn0pIHsKKyAgICAgICAgRVhQRUNUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBzZXRHYWluKHZhbHVlKSkgPDwgInZhbHVlPSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgdmFsdWU7CisgICAgfQorICAgIC8vIERvIG5vdCBjb25zaWRlciAtMC4wIGFzIGFuIGludmFsaWQgdmFsdWUgYXMgaXQgaXMgPT0gd2l0aCAwLjAKKyAgICBmb3IgKGZsb2F0IHZhbHVlIDogey0wLjAsIDAuMCwgMC4wMSwgMC41LCAwLjA5LCAxLjAgLyogUmVzdG9yZSB2b2x1bWUqL30pIHsKKyAgICAgICAgRVhQRUNUX09LKHNldEdhaW4odmFsdWUpKSA8PCAidmFsdWU9IiA8PCB2YWx1ZTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RPcHRpb25hbFVuaXRhcnlHYWluKAorICAgIHN0ZDo6ZnVuY3Rpb248UmV0dXJuPFJlc3VsdD4oZmxvYXQpPiBzZXRHYWluLCBzdHJpbmcgZGVidWdOYW1lKSB7CisgICAgYXV0byByZXN1bHQgPSBzZXRHYWluKDEpOworICAgIEFTU0VSVF9JU19PSyhyZXN1bHQpOworICAgIGlmIChyZXN1bHQgPT0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoZGVidWdOYW1lICsgIiBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgdGVzdFVuaXRhcnlHYWluKHNldEdhaW4pOworfQorCitURVNUX1AoSW5wdXRTdHJlYW1UZXN0LCBTZXRHYWluKSB7CisgICAgZG9jOjp0ZXN0KCJUaGUgZ2FpbiBvZiBhbiBpbnB1dCBzdHJlYW0gc2hvdWxkIG9ubHkgYmUgc2V0IGJldHdlZW4gWzAsMV0iKTsKKyAgICB0ZXN0T3B0aW9uYWxVbml0YXJ5R2FpbigKKyAgICAgICAgW3RoaXNdKGZsb2F0IHZvbHVtZSkgeyByZXR1cm4gc3RyZWFtLT5zZXRHYWluKHZvbHVtZSk7IH0sCisgICAgICAgICJJbnB1dFN0cmVhbTo6c2V0R2FpbiIpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0UHJlcGFyZUZvclJlYWRpbmcoSVN0cmVhbUluKiBzdHJlYW0sIHVpbnQzMl90IGZyYW1lU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmcmFtZXNDb3VudCkgeworICAgIFJlc3VsdCByZXM7CisgICAgLy8gSWdub3JlIG91dHB1dCBwYXJhbWV0ZXJzIGFzIHRoZSBjYWxsIHNob3VsZCBmYWlsCisgICAgQVNTRVJUX09LKHN0cmVhbS0+cHJlcGFyZUZvclJlYWRpbmcoCisgICAgICAgIGZyYW1lU2l6ZSwgZnJhbWVzQ291bnQsCisgICAgICAgIFsmcmVzXShhdXRvIHIsIGF1dG8mLCBhdXRvJiwgYXV0byYsIGF1dG8mKSB7IHJlcyA9IHI7IH0pKTsKKyAgICBFWFBFQ1RfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHJlcyk7Cit9CisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIFByZXBhcmVGb3JSZWFkaW5nV2l0aFplcm9CdWZmZXIpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJQcmVwYXJpbmcgYSBzdHJlYW0gZm9yIHJlYWRpbmcgd2l0aCBhIDAgc2l6ZWQgYnVmZmVyIHNob3VsZCBmYWlsIik7CisgICAgdGVzdFByZXBhcmVGb3JSZWFkaW5nKHN0cmVhbS5nZXQoKSwgMCwgMCk7Cit9CisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIFByZXBhcmVGb3JSZWFkaW5nV2l0aEh1Z2VCdWZmZXIpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJQcmVwYXJpbmcgYSBzdHJlYW0gZm9yIHJlYWRpbmcgd2l0aCBhIDJeMzIgc2l6ZWQgYnVmZmVyIHNob3VsZCBmYWlsIik7CisgICAgdGVzdFByZXBhcmVGb3JSZWFkaW5nKHN0cmVhbS5nZXQoKSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKTsKK30KKworVEVTVF9QKElucHV0U3RyZWFtVGVzdCwgUHJlcGFyZUZvclJlYWRpbmdDaGVja092ZXJmbG93KSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiUHJlcGFyaW5nIGEgc3RyZWFtIGZvciByZWFkaW5nIHdpdGggYSBvdmVyZmxvd2luZyBzaXplZCBidWZmZXIgc2hvdWxkICIKKyAgICAgICAgImZhaWwiKTsKKyAgICBhdXRvIHVpbnRNYXggPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCk7CisgICAgdGVzdFByZXBhcmVGb3JSZWFkaW5nKHN0cmVhbS5nZXQoKSwgdWludE1heCwgdWludE1heCk7Cit9CisKK1RFU1RfUChJbnB1dFN0cmVhbVRlc3QsIEdldElucHV0RnJhbWVzTG9zdCkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIlRoZSBudW1iZXIgb2YgZnJhbWVzIGxvc3Qgb24gYSBuZXZlciBzdGFydGVkIHN0cmVhbSBzaG91bGQgYmUgMCIpOworICAgIGF1dG8gcmV0ID0gc3RyZWFtLT5nZXRJbnB1dEZyYW1lc0xvc3QoKTsKKyAgICBBU1NFUlRfSVNfT0socmV0KTsKKyAgICB1aW50MzJfdCBmcmFtZXNMb3N0e3JldH07CisgICAgQVNTRVJUX0VRKDBVLCBmcmFtZXNMb3N0KTsKK30KKworVEVTVF9QKElucHV0U3RyZWFtVGVzdCwgZ2V0Q2FwdHVyZVBvc2l0aW9uKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiVGhlIGNhcHR1cmUgcG9zaXRpb24gb2YgYSBub24gcHJlcGFyZWQgc3RyZWFtIHNob3VsZCBub3QgYmUgIgorICAgICAgICAicmV0cmlldmFibGUiKTsKKyAgICB1aW50NjRfdCBmcmFtZXM7CisgICAgdWludDY0X3QgdGltZTsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5nZXRDYXB0dXJlUG9zaXRpb24ocmV0dXJuSW4ocmVzLCBmcmFtZXMsIHRpbWUpKSk7CisgICAgQVNTRVJUX1JFU1VMVChpbnZhbGlkU3RhdGVPck5vdFN1cHBvcnRlZCwgcmVzKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gU3RyZWFtSW4gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgZ2V0TGF0ZW5jeSkgeworICAgIGRvYzo6dGVzdCgiTWFrZSBzdXJlIGxhdGVuY3kgaXMgb3ZlciAwIik7CisgICAgYXV0byByZXN1bHQgPSBzdHJlYW0tPmdldExhdGVuY3koKTsKKyAgICBBU1NFUlRfSVNfT0socmVzdWx0KTsKKyAgICBBU1NFUlRfR1QocmVzdWx0LCAwVSk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBzZXRWb2x1bWUpIHsKKyAgICBkb2M6OnRlc3QoIlRyeSB0byBzZXQgdGhlIG91dHB1dCB2b2x1bWUiKTsKKyAgICB0ZXN0T3B0aW9uYWxVbml0YXJ5R2FpbigKKyAgICAgICAgW3RoaXNdKGZsb2F0IHZvbHVtZSkgeyByZXR1cm4gc3RyZWFtLT5zZXRWb2x1bWUodm9sdW1lLCB2b2x1bWUpOyB9LAorICAgICAgICAic2V0Vm9sdW1lIik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RQcmVwYXJlRm9yV3JpdGluZyhJU3RyZWFtT3V0KiBzdHJlYW0sIHVpbnQzMl90IGZyYW1lU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBmcmFtZXNDb3VudCkgeworICAgIFJlc3VsdCByZXM7CisgICAgLy8gSWdub3JlIG91dHB1dCBwYXJhbWV0ZXJzIGFzIHRoZSBjYWxsIHNob3VsZCBmYWlsCisgICAgQVNTRVJUX09LKHN0cmVhbS0+cHJlcGFyZUZvcldyaXRpbmcoCisgICAgICAgIGZyYW1lU2l6ZSwgZnJhbWVzQ291bnQsCisgICAgICAgIFsmcmVzXShhdXRvIHIsIGF1dG8mLCBhdXRvJiwgYXV0byYsIGF1dG8mKSB7IHJlcyA9IHI7IH0pKTsKKyAgICBFWFBFQ1RfUkVTVUxUKFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFMsIHJlcyk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBQcmVwYXJlRm9yV3JpdGVXaXRoWmVyb0J1ZmZlcikgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIlByZXBhcmluZyBhIHN0cmVhbSBmb3Igd3JpdGluZyB3aXRoIGEgMCBzaXplZCBidWZmZXIgc2hvdWxkIGZhaWwiKTsKKyAgICB0ZXN0UHJlcGFyZUZvcldyaXRpbmcoc3RyZWFtLmdldCgpLCAwLCAwKTsKK30KKworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIFByZXBhcmVGb3JXcml0ZVdpdGhIdWdlQnVmZmVyKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiUHJlcGFyaW5nIGEgc3RyZWFtIGZvciB3cml0aW5nIHdpdGggYSAyXjMyIHNpemVkIGJ1ZmZlciBzaG91bGQgZmFpbCIpOworICAgIHRlc3RQcmVwYXJlRm9yV3JpdGluZyhzdHJlYW0uZ2V0KCksIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBQcmVwYXJlRm9yV3JpdGluZ0NoZWNrT3ZlcmZsb3cpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJQcmVwYXJpbmcgYSBzdHJlYW0gZm9yIHdyaXRpbmcgd2l0aCBhIG92ZXJmbG93aW5nIHNpemVkIGJ1ZmZlciBzaG91bGQgIgorICAgICAgICAiZmFpbCIpOworICAgIGF1dG8gdWludE1heCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKTsKKyAgICB0ZXN0UHJlcGFyZUZvcldyaXRpbmcoc3RyZWFtLmdldCgpLCB1aW50TWF4LCB1aW50TWF4KTsKK30KKworc3RydWN0IENhcGFiaWxpdHkgeworICAgIENhcGFiaWxpdHkoSVN0cmVhbU91dCogc3RyZWFtKSB7CisgICAgICAgIEVYUEVDVF9PSyhzdHJlYW0tPnN1cHBvcnRzUGF1c2VBbmRSZXN1bWUocmV0dXJuSW4ocGF1c2UsIHJlc3VtZSkpKTsKKyAgICAgICAgYXV0byByZXQgPSBzdHJlYW0tPnN1cHBvcnRzRHJhaW4oKTsKKyAgICAgICAgRVhQRUNUX0lTX09LKHJldCk7CisgICAgICAgIGlmIChyZXQuaXNPaygpKSB7CisgICAgICAgICAgICBkcmFpbiA9IHJldDsKKyAgICAgICAgfQorICAgIH0KKyAgICBib29sIHBhdXNlID0gZmFsc2U7CisgICAgYm9vbCByZXN1bWUgPSBmYWxzZTsKKyAgICBib29sIGRyYWluID0gZmFsc2U7Cit9OworCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgU3VwcG9ydHNQYXVzZUFuZFJlc3VtZUFuZERyYWluKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSW1wbGVtZW50YXRpb24gbXVzdCBleHBvc2UgcGF1c2UsIHJlc3VtZSBhbmQgZHJhaW4gY2FwYWJpbGl0aWVzIik7CisgICAgQ2FwYWJpbGl0eShzdHJlYW0uZ2V0KCkpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVmFsdWU+CitzdGF0aWMgdm9pZCBjaGVja0ludmFsaWRTdGF0ZU9yMChSZXN1bHQgcmVzLCBWYWx1ZSB2YWx1ZSkgeworICAgIHN3aXRjaCAocmVzKSB7CisgICAgICAgIGNhc2UgUmVzdWx0OjpJTlZBTElEX1NUQVRFOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmVzdWx0OjpPSzoKKyAgICAgICAgICAgIEFTU0VSVF9FUSgwVSwgdmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBGQUlMKCkgPDwgIlVuZXhwZWN0ZWQgcmVzdWx0ICIgPDwgdG9TdHJpbmcocmVzKTsKKyAgICB9Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBHZXRSZW5kZXJQb3NpdGlvbikgeworICAgIGRvYzo6dGVzdCgiQSBuZXcgc3RyZWFtIHJlbmRlciBwb3NpdGlvbiBzaG91bGQgYmUgMCBvciBJTlZBTElEX1NUQVRFIik7CisgICAgdWludDMyX3QgZHNwRnJhbWVzOworICAgIEFTU0VSVF9PSyhzdHJlYW0tPmdldFJlbmRlclBvc2l0aW9uKHJldHVybkluKHJlcywgZHNwRnJhbWVzKSkpOworICAgIGlmIChyZXMgPT0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoImdldFJlbmRlclBvc2l0aW9uIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjaGVja0ludmFsaWRTdGF0ZU9yMChyZXMsIGRzcEZyYW1lcyk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBHZXROZXh0V3JpdGVUaW1lc3RhbXApIHsKKyAgICBkb2M6OnRlc3QoIkEgbmV3IHN0cmVhbSBuZXh0IHdyaXRlIHRpbWVzdGFtcCBzaG91bGQgYmUgMCBvciBJTlZBTElEX1NUQVRFIik7CisgICAgdWludDY0X3QgdGltZXN0YW1wVXM7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+Z2V0TmV4dFdyaXRlVGltZXN0YW1wKHJldHVybkluKHJlcywgdGltZXN0YW1wVXMpKSk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiZ2V0TmV4dFdyaXRlVGltZXN0YW1wIGlzIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjaGVja0ludmFsaWRTdGF0ZU9yMChyZXMsIHRpbWVzdGFtcFVzKTsKK30KKworLyoqIFN0dWIgaW1wbGVtZW50YXRpb24gb2Ygb3V0IHN0cmVhbSBjYWxsYmFjay4gKi8KK2NsYXNzIE1vY2tPdXRDYWxsYmFja3MgOiBwdWJsaWMgSVN0cmVhbU91dENhbGxiYWNrIHsKKyAgICBSZXR1cm48dm9pZD4gb25Xcml0ZVJlYWR5KCkgb3ZlcnJpZGUgeyByZXR1cm4ge307IH0KKyAgICBSZXR1cm48dm9pZD4gb25EcmFpblJlYWR5KCkgb3ZlcnJpZGUgeyByZXR1cm4ge307IH0KKyAgICBSZXR1cm48dm9pZD4gb25FcnJvcigpIG92ZXJyaWRlIHsgcmV0dXJuIHt9OyB9Cit9OworCitzdGF0aWMgYm9vbCBpc0FzeW5jTW9kZVN1cHBvcnRlZChJU3RyZWFtT3V0KiBzdHJlYW0pIHsKKyAgICBhdXRvIHJlcyA9IHN0cmVhbS0+c2V0Q2FsbGJhY2sobmV3IE1vY2tPdXRDYWxsYmFja3MpOworICAgIHN0cmVhbS0+Y2xlYXJDYWxsYmFjaygpOyAgLy8gdHJ5IHRvIHJlc3RvcmUgdGhlIG5vIGNhbGxiYWNrIHN0YXRlLCBpZ25vcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFueSBlcnJvcgorICAgIGF1dG8gb2tPck5vdFN1cHBvcnRlZCA9IHtSZXN1bHQ6Ok9LLCBSZXN1bHQ6Ok5PVF9TVVBQT1JURUR9OworICAgIEVYUEVDVF9SRVNVTFQob2tPck5vdFN1cHBvcnRlZCwgcmVzKTsKKyAgICByZXR1cm4gcmVzLmlzT2soKSA/IHJlcyA9PSBSZXN1bHQ6Ok9LIDogZmFsc2U7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBTZXRDYWxsYmFjaykgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIklmIHN1cHBvcnRlZCwgcmVnaXN0ZXJpbmcgY2FsbGJhY2sgZm9yIGFzeW5jIG9wZXJhdGlvbiBzaG91bGQgbmV2ZXIgIgorICAgICAgICAiZmFpbCIpOworICAgIGlmICghaXNBc3luY01vZGVTdXBwb3J0ZWQoc3RyZWFtLmdldCgpKSkgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJUaGUgc3RyZWFtIGRvZXMgbm90IHN1cHBvcnQgYXN5bmMgb3BlcmF0aW9ucyIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9PSyhzdHJlYW0tPnNldENhbGxiYWNrKG5ldyBNb2NrT3V0Q2FsbGJhY2tzKSk7CisgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0Q2FsbGJhY2sobmV3IE1vY2tPdXRDYWxsYmFja3MpKTsKK30KKworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIGNsZWFyQ2FsbGJhY2spIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJJZiBzdXBwb3J0ZWQsIGNsZWFyaW5nIGEgY2FsbGJhY2sgdG8gZ28gYmFjayB0byBzeW5jIG9wZXJhdGlvbiBzaG91bGQgIgorICAgICAgICAibm90IGZhaWwiKTsKKyAgICBpZiAoIWlzQXN5bmNNb2RlU3VwcG9ydGVkKHN0cmVhbS5nZXQoKSkpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiVGhlIHN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IGFzeW5jIG9wZXJhdGlvbnMiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBUT0RPOiBDbGFyaWZ5IGlmIGNsZWFyaW5nIGEgbm9uIGV4aXN0aW5nIGNhbGxiYWNrIHNob3VsZCBmYWlsCisgICAgQVNTRVJUX09LKHN0cmVhbS0+c2V0Q2FsbGJhY2sobmV3IE1vY2tPdXRDYWxsYmFja3MpKTsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5jbGVhckNhbGxiYWNrKCkpOworfQorCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgUmVzdW1lKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSWYgc3VwcG9ydGVkLCBhIHN0cmVhbSBzaG91bGQgZmFpbCB0byByZXN1bWUgaWYgbm90IHByZXZpb3VzbHkgIgorICAgICAgICAicGF1c2VkIik7CisgICAgaWYgKCFDYXBhYmlsaXR5KHN0cmVhbS5nZXQoKSkucmVzdW1lKSB7CisgICAgICAgIGRvYzo6cGFydGlhbFRlc3QoIlRoZSBvdXRwdXQgc3RyZWFtIGRvZXMgbm90IHN1cHBvcnQgcmVzdW1lIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfU1RBVEUsIHN0cmVhbS0+cmVzdW1lKCkpOworfQorCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgUGF1c2UpIHsKKyAgICBkb2M6OnRlc3QoCisgICAgICAgICJJZiBzdXBwb3J0ZWQsIGEgc3RyZWFtIHNob3VsZCBmYWlsIHRvIHBhdXNlIGlmIG5vdCBwcmV2aW91c2x5ICIKKyAgICAgICAgInN0YXJ0ZWQiKTsKKyAgICBpZiAoIUNhcGFiaWxpdHkoc3RyZWFtLmdldCgpKS5wYXVzZSkgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJUaGUgb3V0cHV0IHN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IHBhdXNlIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfU1RBVEUsIHN0cmVhbS0+cmVzdW1lKCkpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0RHJhaW4oSVN0cmVhbU91dCogc3RyZWFtLCBBdWRpb0RyYWluIHR5cGUpIHsKKyAgICBpZiAoIUNhcGFiaWxpdHkoc3RyZWFtKS5kcmFpbikgeworICAgICAgICBkb2M6OnBhcnRpYWxUZXN0KCJUaGUgb3V0cHV0IHN0cmVhbSBkb2VzIG5vdCBzdXBwb3J0IGRyYWluIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6Ok9LLCBzdHJlYW0tPmRyYWluKHR5cGUpKTsKK30KKworVEVTVF9QKE91dHB1dFN0cmVhbVRlc3QsIERyYWluQWxsKSB7CisgICAgZG9jOjp0ZXN0KCJJZiBzdXBwb3J0ZWQsIGEgc3RyZWFtIHNob3VsZCBhbHdheXMgc3VjY2VlZCB0byBkcmFpbiIpOworICAgIHRlc3REcmFpbihzdHJlYW0uZ2V0KCksIEF1ZGlvRHJhaW46OkFMTCk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBEcmFpbkVhcmx5Tm90aWZ5KSB7CisgICAgZG9jOjp0ZXN0KCJJZiBzdXBwb3J0ZWQsIGEgc3RyZWFtIHNob3VsZCBhbHdheXMgc3VjY2VlZCB0byBkcmFpbiIpOworICAgIHRlc3REcmFpbihzdHJlYW0uZ2V0KCksIEF1ZGlvRHJhaW46OkVBUkxZX05PVElGWSk7Cit9CisKK1RFU1RfUChPdXRwdXRTdHJlYW1UZXN0LCBGbHVzaFN0b3ApIHsKKyAgICBkb2M6OnRlc3QoIklmIHN1cHBvcnRlZCwgYSBzdHJlYW0gc2hvdWxkIGFsd2F5cyBzdWNjZWVkIHRvIGZsdXNoIik7CisgICAgYXV0byByZXQgPSBzdHJlYW0tPmZsdXNoKCk7CisgICAgQVNTRVJUX0lTX09LKHJldCk7CisgICAgaWYgKHJldCA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiRmx1c2ggaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9PSyhyZXQpOworfQorCitURVNUX1AoT3V0cHV0U3RyZWFtVGVzdCwgR2V0UHJlc2VudGF0aW9uUG9zaXRpb25TdG9wKSB7CisgICAgZG9jOjp0ZXN0KAorICAgICAgICAiSWYgc3VwcG9ydGVkLCBhIHN0cmVhbSBzaG91bGQgYWx3YXlzIHN1Y2NlZWQgdG8gcmV0cmlldmUgdGhlICIKKyAgICAgICAgInByZXNlbnRhdGlvbiBwb3NpdGlvbiIpOworICAgIHVpbnQ2NF90IGZyYW1lczsKKyAgICBUaW1lU3BlYyBtZXN1cmVUUzsKKyAgICBBU1NFUlRfT0soc3RyZWFtLT5nZXRQcmVzZW50YXRpb25Qb3NpdGlvbihyZXR1cm5JbihyZXMsIGZyYW1lcywgbWVzdXJlVFMpKSk7CisgICAgaWYgKHJlcyA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpIHsKKyAgICAgICAgZG9jOjpwYXJ0aWFsVGVzdCgiZ2V0cHJlc2VudGF0aW9uUG9zaXRpb24gaXMgbm90IHN1cHBvcnRlZCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9FUSgwVSwgZnJhbWVzKTsKKworICAgIGlmIChtZXN1cmVUUy50dk5TZWMgPT0gMCAmJiBtZXN1cmVUUy50dlNlYyA9PSAwKSB7CisgICAgICAgIC8vIEFzIHRoZSBzdHJlYW0gaGFzIG5ldmVyIHdyaXR0ZW4gYSBmcmFtZSB5ZXQsCisgICAgICAgIC8vIHRoZSB0aW1lc3RhbXAgZG9lcyBub3QgcmVhbGx5IGhhdmUgYSBtZWFuaW5nLCBhbGxvdyB0byByZXR1cm4gMAorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gTWFrZSBzdXJlIHRoZSByZXR1cm4gbWVhc3VyZSBpcyBub3QgbW9yZSB0aGFuIDFzIG9sZC4KKyAgICBzdHJ1Y3QgdGltZXNwZWMgY3VycmVudFRTOworICAgIEFTU0VSVF9FUSgwLCBjbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJmN1cnJlbnRUUykpIDw8IGVycm5vOworCisgICAgYXV0byB0b01pY3JvU2VjID0gW10odWludDY0X3Qgc2VjLCBhdXRvIG5zZWMpIHsKKyAgICAgICAgcmV0dXJuIHNlYyAqIDFlKzYgKyBuc2VjIC8gMWUrMzsKKyAgICB9OworICAgIGF1dG8gY3VycmVudFRpbWUgPSB0b01pY3JvU2VjKGN1cnJlbnRUUy50dl9zZWMsIGN1cnJlbnRUUy50dl9uc2VjKTsKKyAgICBhdXRvIG1lc3VyZVRpbWUgPSB0b01pY3JvU2VjKG1lc3VyZVRTLnR2U2VjLCBtZXN1cmVUUy50dk5TZWMpOworICAgIEFTU0VSVF9QUkVEMihbXShhdXRvIGMsIGF1dG8gbSkgeyByZXR1cm4gYyAtIG0gPCAxZSs2OyB9LCBjdXJyZW50VGltZSwKKyAgICAgICAgICAgICAgICAgbWVzdXJlVGltZSk7Cit9CisKKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBQcmltYXJ5RGV2aWNlIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKworVEVTVF9GKEF1ZGlvUHJpbWFyeUhpZGxUZXN0LCBzZXRWb2ljZVZvbHVtZSkgeworICAgIGRvYzo6dGVzdCgiTWFrZSBzdXJlIHNldFZvaWNlVm9sdW1lIG9ubHkgc3VjY2VlZCBpZiB2b2x1bWUgaXMgaW4gWzAsMV0iKTsKKyAgICB0ZXN0VW5pdGFyeUdhaW4oCisgICAgICAgIFt0aGlzXShmbG9hdCB2b2x1bWUpIHsgcmV0dXJuIGRldmljZS0+c2V0Vm9pY2VWb2x1bWUodm9sdW1lKTsgfSk7Cit9CisKK1RFU1RfRihBdWRpb1ByaW1hcnlIaWRsVGVzdCwgc2V0TW9kZSkgeworICAgIGRvYzo6dGVzdCgKKyAgICAgICAgIk1ha2Ugc3VyZSBzZXRNb2RlIGFsd2F5cyBzdWNjZWVkcyBpZiBtb2RlIGlzIHZhbGlkICIKKyAgICAgICAgImFuZCBmYWlscyBvdGhlcndpc2UiKTsKKyAgICAvLyBUZXN0IEludmFsaWQgdmFsdWVzCisgICAgZm9yIChBdWRpb01vZGUgbW9kZSA6CisgICAgICAgICB7QXVkaW9Nb2RlOjpJTlZBTElELCBBdWRpb01vZGU6OkNVUlJFTlQsIEF1ZGlvTW9kZTo6Q05UfSkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIm1vZGU9IiArIHRvU3RyaW5nKG1vZGUpKTsKKyAgICAgICAgQVNTRVJUX1JFU1VMVChSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCBkZXZpY2UtPnNldE1vZGUobW9kZSkpOworICAgIH0KKyAgICAvLyBUZXN0IHZhbGlkIHZhbHVlcworICAgIGZvciAoQXVkaW9Nb2RlIG1vZGUgOgorICAgICAgICAge0F1ZGlvTW9kZTo6SU5fQ0FMTCwgQXVkaW9Nb2RlOjpJTl9DT01NVU5JQ0FUSU9OLCBBdWRpb01vZGU6OlJJTkdUT05FLAorICAgICAgICAgIEF1ZGlvTW9kZTo6Tk9STUFMIC8qIE1ha2Ugc3VyZSB0byBsZWF2ZSB0aGUgdGVzdCBpbiBub3JtYWwgbW9kZSAqL30pIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJtb2RlPSIgKyB0b1N0cmluZyhtb2RlKSk7CisgICAgICAgIEFTU0VSVF9PSyhkZXZpY2UtPnNldE1vZGUobW9kZSkpOworICAgIH0KK30KKworVEVTVF9GKEJvb2xBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCwgQnRTY29OcmVjRW5hYmxlZCkgeworICAgIGRvYzo6dGVzdCgiUXVlcnkgYW5kIHNldCB0aGUgQlQgU0NPIE5SJkVDIHN0YXRlIik7CisgICAgdGVzdE9wdGlvbmFsQWNjZXNzb3JzKCJCdFNjb05yZWNFbmFibGVkIiwge3RydWUsIGZhbHNlLCB0cnVlfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJklQcmltYXJ5RGV2aWNlOjpzZXRCdFNjb05yZWNFbmFibGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmSVByaW1hcnlEZXZpY2U6OmdldEJ0U2NvTnJlY0VuYWJsZWQpOworfQorCitURVNUX0YoQm9vbEFjY2Vzc29yUHJpbWFyeUhpZGxUZXN0LCBzZXRHZXRCdFNjb1dpZGViYW5kRW5hYmxlZCkgeworICAgIGRvYzo6dGVzdCgiUXVlcnkgYW5kIHNldCB0aGUgU0NPIHdoaWRlYmFuZCBzdGF0ZSIpOworICAgIHRlc3RPcHRpb25hbEFjY2Vzc29ycygiQnRTY29XaWRlYmFuZCIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJUHJpbWFyeURldmljZTo6c2V0QnRTY29XaWRlYmFuZEVuYWJsZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJUHJpbWFyeURldmljZTo6Z2V0QnRTY29XaWRlYmFuZEVuYWJsZWQpOworfQorCit1c2luZyBUdHlNb2RlQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QgPSBBY2Nlc3NvclByaW1hcnlIaWRsVGVzdDxUdHlNb2RlPjsKK1RFU1RfRihUdHlNb2RlQWNjZXNzb3JQcmltYXJ5SGlkbFRlc3QsIHNldEdldFR0eU1vZGUpIHsKKyAgICBkb2M6OnRlc3QoIlF1ZXJ5IGFuZCBzZXQgdGhlIFRUWSBtb2RlIHN0YXRlIik7CisgICAgdGVzdE9wdGlvbmFsQWNjZXNzb3JzKAorICAgICAgICAiVFRZIG1vZGUiLCB7VHR5TW9kZTo6T0ZGLCBUdHlNb2RlOjpIQ08sIFR0eU1vZGU6OlZDTywgVHR5TW9kZTo6RlVMTH0sCisgICAgICAgICZJUHJpbWFyeURldmljZTo6c2V0VHR5TW9kZSwgJklQcmltYXJ5RGV2aWNlOjpnZXRUdHlNb2RlKTsKK30KKworVEVTVF9GKEJvb2xBY2Nlc3NvclByaW1hcnlIaWRsVGVzdCwgc2V0R2V0SGFjKSB7CisgICAgZG9jOjp0ZXN0KCJRdWVyeSBhbmQgc2V0IHRoZSBIQUMgc3RhdGUiKTsKKyAgICB0ZXN0T3B0aW9uYWxBY2Nlc3NvcnMoIkhBQyIsIHt0cnVlLCBmYWxzZSwgdHJ1ZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICZJUHJpbWFyeURldmljZTo6c2V0SGFjRW5hYmxlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJklQcmltYXJ5RGV2aWNlOjpnZXRIYWNFbmFibGVkKTsKK30KKworLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCisvLy8vLy8vLy8vLy8vLy8vLy8vLyBDbGVhbiBjYWNoZXMgb24gZ2xvYmFsIHRlYXIgZG93biAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICBlbnZpcm9ubWVudCA9IG5ldyBFbnZpcm9ubWVudDsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChlbnZpcm9ubWVudCk7CisgICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgICAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L0Fzc2VydE9rLmggYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9Bc3NlcnRPay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjODQ0MGUKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9Bc3NlcnRPay5oCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCituYW1lc3BhY2UgZGV0YWlsIHsKKworLy8gVGhpcyBpcyBhIGRldGFpbCBuYW1lc3BhY2UsIHRodXMgaXQgaXMgT0sgdG8gaW1wb3J0IGEgY2xhc3MgYXMgbm9ib2R5IGVsc2UgaXMKKy8vIGFsbG93ZWQgdG8gdXNlIGl0Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6VjJfMDo6UmVzdWx0OworCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRJc09rKGNvbnN0IGNoYXIqIGV4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBSZXR1cm48VD4mIHJldCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdChyZXQuaXNPaygpKQorICAgICAgICAgICA8PCAiRXhwZWN0ZWQ6ICIgPDwgZXhwcgorICAgICAgICAgICA8PCAiXG4gdG8gYmUgYW4gT0sgUmV0dXJuIGJ1dCBpdCBpcyBub3Q6ICIgPDwgcmV0LmRlc2NyaXB0aW9uKCk7Cit9CisKKy8vIENhbGwgY29udGludWF0aW9uIGlmIHRoZSBwcm92aWRlZCByZXN1bHQgaXNPawordGVtcGxhdGUgPGNsYXNzIFQsIGNsYXNzIENvbnRpbnVhdGlvbj4KK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBjb250aW51ZUlmSXNPayhjb25zdCBjaGFyKiBleHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJldHVybjxUPiYgcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRpbnVhdGlvbiBjb250aW51YXRpb24pIHsKKyAgICBhdXRvIGlzT2tTdGF0dXMgPSBhc3NlcnRJc09rKGV4cHIsIHJldCk7CisgICAgcmV0dXJuICFpc09rU3RhdHVzID8gaXNPa1N0YXR1cyA6IGNvbnRpbnVhdGlvbigpOworfQorCisvLyBFeHBlY3QgdHdvIGVxdWFsIFJlc3VsdHMKK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRSZXN1bHQoY29uc3QgY2hhciogZV9leHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByX2V4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCBleHBlY3RlZCwgUmVzdWx0IHJlc3VsdCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdChleHBlY3RlZCA9PSByZXN1bHQpCisgICAgICAgICAgIDw8ICJWYWx1ZSBvZjogIiA8PCByX2V4cHIKKyAgICAgICAgICAgPDwgIlxuICBBY3R1YWw6ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHJlc3VsdCkKKyAgICAgICAgICAgPDwgIlxuRXhwZWN0ZWQ6ICIgPDwgZV9leHByCisgICAgICAgICAgIDw8ICJcbldoaWNoIGlzOiAiIDw8IDo6dGVzdGluZzo6UHJpbnRUb1N0cmluZyhleHBlY3RlZCk7Cit9CisKKy8vIEV4cGVjdCB0d28gZXF1YWwgUmVzdWx0cyBvbmUgYmVpbmcgd3JhcHBlZCBpbiBhbiBPSyBSZXR1cm4KK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRSZXN1bHQoY29uc3QgY2hhciogZV9leHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiByX2V4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc3VsdCBleHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmV0dXJuPFJlc3VsdD4mIHJldCkgeworICAgIHJldHVybiBjb250aW51ZUlmSXNPayhyX2V4cHIsIHJldCwgWyZdIHsKKyAgICAgICAgcmV0dXJuIGFzc2VydFJlc3VsdChlX2V4cHIsIHJfZXhwciwgZXhwZWN0ZWQsIFJlc3VsdHtyZXR9KTsKKyAgICB9KTsKK30KKworLy8gRXhwZWN0IGEgUmVzdWx0IHRvIGJlIHBhcnQgb2YgYSBsaXN0IG9mIFJlc3VsdHMKK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRSZXN1bHQoCisgICAgY29uc3QgY2hhciogZV9leHByLCBjb25zdCBjaGFyKiByX2V4cHIsIGNvbnN0IHN0ZDo6dmVjdG9yPFJlc3VsdD4mIGV4cGVjdGVkLAorICAgIFJlc3VsdCByZXN1bHQpIHsKKyAgICBpZiAoc3RkOjpmaW5kKGV4cGVjdGVkLmJlZ2luKCksIGV4cGVjdGVkLmVuZCgpLCByZXN1bHQpICE9IGV4cGVjdGVkLmVuZCgpKSB7CisgICAgICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblN1Y2Nlc3MoKTsgIC8vIHJlc3VsdCBpcyBpbiBleHBlY3RlZAorICAgIH0KKyAgICByZXR1cm4gOjp0ZXN0aW5nOjpBc3NlcnRpb25GYWlsdXJlKCkKKyAgICAgICAgICAgPDwgIlZhbHVlIG9mOiAiIDw8IHJfZXhwcgorICAgICAgICAgICA8PCAiXG4gIEFjdHVhbDogIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcocmVzdWx0KQorICAgICAgICAgICA8PCAiXG5FeHBlY3RlZCBvbmUgb2Y6ICIgPDwgZV9leHByCisgICAgICAgICAgIDw8ICJcbiAgICAgICBXaGljaCBpczogIiA8PCA6OnRlc3Rpbmc6OlByaW50VG9TdHJpbmcoZXhwZWN0ZWQpOworfQorCisvLyBFeHBlY3QgYSBSZXN1bHQgd3JhcHBlZCBpbiBhbiBPSyBSZXR1cm4gdG8gYmUgcGFydCBvZiBhIGxpc3Qgb2YgUmVzdWx0cworaW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGFzc2VydFJlc3VsdCgKKyAgICBjb25zdCBjaGFyKiBlX2V4cHIsIGNvbnN0IGNoYXIqIHJfZXhwciwgY29uc3Qgc3RkOjp2ZWN0b3I8UmVzdWx0PiYgZXhwZWN0ZWQsCisgICAgY29uc3QgUmV0dXJuPFJlc3VsdD4mIHJldCkgeworICAgIHJldHVybiBjb250aW51ZUlmSXNPayhyX2V4cHIsIHJldCwgWyZdIHsKKyAgICAgICAgcmV0dXJuIGFzc2VydFJlc3VsdChlX2V4cHIsIHJfZXhwciwgZXhwZWN0ZWQsIFJlc3VsdHtyZXR9KTsKKyAgICB9KTsKK30KKworaW5saW5lIDo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGFzc2VydE9rKGNvbnN0IGNoYXIqIGV4cHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmV0dXJuPHZvaWQ+JiByZXQpIHsKKyAgICByZXR1cm4gYXNzZXJ0SXNPayhleHByLCByZXQpOworfQorCitpbmxpbmUgOjp0ZXN0aW5nOjpBc3NlcnRpb25SZXN1bHQgYXNzZXJ0T2soY29uc3QgY2hhciogZXhwciwgUmVzdWx0IHJlc3VsdCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdChyZXN1bHQgPT0gUmVzdWx0OjpPSykKKyAgICAgICAgICAgPDwgIkV4cGVjdGVkIHN1Y2Nlc3M6ICIgPDwgZXhwcgorICAgICAgICAgICA8PCAiXG5BY3R1YWw6ICIgPDwgOjp0ZXN0aW5nOjpQcmludFRvU3RyaW5nKHJlc3VsdCk7Cit9CisKK2lubGluZSA6OnRlc3Rpbmc6OkFzc2VydGlvblJlc3VsdCBhc3NlcnRPayhjb25zdCBjaGFyKiBleHByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJldHVybjxSZXN1bHQ+JiByZXQpIHsKKyAgICByZXR1cm4gY29udGludWVJZklzT2soZXhwciwgcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0geyByZXR1cm4gYXNzZXJ0T2soZXhwciwgUmVzdWx0e3JldH0pOyB9KTsKK30KK30KKworI2RlZmluZSBBU1NFUlRfSVNfT0socmV0KSBBU1NFUlRfUFJFRF9GT1JNQVQxKGRldGFpbDo6YXNzZXJ0SXNPaywgcmV0KQorI2RlZmluZSBFWFBFQ1RfSVNfT0socmV0KSBFWFBFQ1RfUFJFRF9GT1JNQVQxKGRldGFpbDo6YXNzZXJ0SXNPaywgcmV0KQorCisvLyBUZXN0IGFueXRoaW5nIHByb3ZpZGVkIGlzIGFuZCBjb250YWlucyBvbmx5IE9LCisjZGVmaW5lIEFTU0VSVF9PSyhyZXQpIEFTU0VSVF9QUkVEX0ZPUk1BVDEoZGV0YWlsOjphc3NlcnRPaywgcmV0KQorI2RlZmluZSBFWFBFQ1RfT0socmV0KSBFWFBFQ1RfUFJFRF9GT1JNQVQxKGRldGFpbDo6YXNzZXJ0T2ssIHJldCkKKworI2RlZmluZSBBU1NFUlRfUkVTVUxUKGV4cGVjdGVkLCByZXQpIFwKKyAgICBBU1NFUlRfUFJFRF9GT1JNQVQyKGRldGFpbDo6YXNzZXJ0UmVzdWx0LCBleHBlY3RlZCwgcmV0KQorI2RlZmluZSBFWFBFQ1RfUkVTVUxUKGV4cGVjdGVkLCByZXQpIFwKKyAgICBFWFBFQ1RfUFJFRF9GT1JNQVQyKGRldGFpbDo6YXNzZXJ0UmVzdWx0LCBleHBlY3RlZCwgcmV0KQpkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvUHJldHR5UHJpbnRBdWRpb1R5cGVzLmggYi9hdWRpby8yLjAvdnRzL2Z1bmN0aW9uYWwvdXRpbGl0eS9QcmV0dHlQcmludEF1ZGlvVHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjVjZDFjCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvUHJldHR5UHJpbnRBdWRpb1R5cGVzLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisKKy8qKiBAZmlsZSBVc2UgSElETCBnZW5lcmF0ZWQgdG9TdHJpbmcgbWV0aG9kcyB0byBwcmV0dHkgcHJpbnQgZ3Rlc3QgZXJyb3JzICovCisKK25hbWVzcGFjZSBkZXRhaWwgeworCisvLyBQcmludCB0aGUgdmFsdWUgb2YgYW4gZW51bSBhcyBoZXgKK3RlbXBsYXRlIDxjbGFzcyBFbnVtPgoraW5saW5lIHZvaWQgcHJpbnRVbmRlcmx5aW5nVmFsdWUoRW51bSB2YWx1ZSwgOjpzdGQ6Om9zdHJlYW0qIG9zKSB7CisgICAgKm9zIDw8IHN0ZDo6aGV4IDw8ICIgKDB4IiA8PCBzdGF0aWNfY2FzdDxzdGQ6OnVuZGVybHlpbmdfdHlwZV90PEVudW0+Pih2YWx1ZSkgPDwgIikiOworfQorCit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdWRpbyB7CituYW1lc3BhY2UgVjJfMCB7CisKK2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgUmVzdWx0JiByZXN1bHQsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB0b1N0cmluZyhyZXN1bHQpOworICAgIGRldGFpbDo6cHJpbnRVbmRlcmx5aW5nVmFsdWUocmVzdWx0LCBvcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFYyXzAKK25hbWVzcGFjZSBjb21tb24geworbmFtZXNwYWNlIFYyXzAgeworCitpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IEF1ZGlvQ29uZmlnJiBjb25maWcsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB0b1N0cmluZyhjb25maWcpOworfQorCitpbmxpbmUgdm9pZCBQcmludFRvKGNvbnN0IEF1ZGlvRGV2aWNlJiBkZXZpY2UsIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB0b1N0cmluZyhkZXZpY2UpOworICAgIGRldGFpbDo6cHJpbnRVbmRlcmx5aW5nVmFsdWUoZGV2aWNlLCBvcyk7Cit9CisKK2lubGluZSB2b2lkIFByaW50VG8oY29uc3QgQXVkaW9DaGFubmVsTWFzayYgY2hhbm5lbE1hc2ssIDo6c3RkOjpvc3RyZWFtKiBvcykgeworICAgICpvcyA8PCB0b1N0cmluZyhjaGFubmVsTWFzayk7CisgICAgZGV0YWlsOjpwcmludFVuZGVybHlpbmdWYWx1ZShjaGFubmVsTWFzaywgb3MpOworfQorCit9IC8vIG5hbWVzcGFjZSBWMl8wCit9IC8vIG5hbWVzcGFjZSBjb21tb24KK30gLy8gbmFtZXNwYWNlIGF1ZGlvCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXVkaW8vMi4wL3Z0cy9mdW5jdGlvbmFsL3V0aWxpdHkvUmV0dXJuSW4uaCBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L1JldHVybkluLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIyMzg5YQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvLzIuMC92dHMvZnVuY3Rpb25hbC91dGlsaXR5L1JldHVybkluLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDx0dXBsZT4KKworbmFtZXNwYWNlIHV0aWxpdHkgeworCituYW1lc3BhY2UgZGV0YWlsIHsKKy8vIEhlbHBlciBjbGFzcyB0byBnZW5lcmF0ZSB0aGUgSElETCBzeW5jaHJvbm91cyBjYWxsYmFjawordGVtcGxhdGUgPGNsYXNzLi4uIFJlc3VsdFN0b3JlPgorY2xhc3MgUmV0dXJuSW4geworIHB1YmxpYzoKKyAgICAvLyBQcm92aWRlIHRvIHRoZSBjb25zdHJ1Y3RvciB0aGUgdmFyaWFibGVzIHdoZXJlIHRoZSBvdXRwdXQgcGFyYW1ldGVycyBtdXN0IGJlIGNvcGllZAorICAgIC8vIFRPRE86IHRha2UgcG9pbnRlcnMgdG8gbWF0Y2ggZ29vZ2xlIG91dHB1dCBwYXJhbWV0ZXIgc3R5bGUgPworICAgIFJldHVybkluKFJlc3VsdFN0b3JlJi4uLiB0cykgOiByZXN1bHRzKHRzLi4uKSB7fQorICAgIC8vIFN5bmNocm9ub3VzIGNhbGxiYWNrCisgICAgdGVtcGxhdGUgPGNsYXNzLi4uIFJlc3VsdHM+CisgICAgdm9pZCBvcGVyYXRvcigpIChSZXN1bHRzJiYuLi5yZXN1bHRzKSB7CisgICAgICAgIHNldChzdGQ6OmZvcndhcmQ8UmVzdWx0cz4ocmVzdWx0cykuLi4pOworICAgIH0KKyBwcml2YXRlOgorICAgIC8vIFJlY3Vyc2l2ZWx5IHNldCBhbGwgb3V0cHV0IHBhcmFtZXRlcnMKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgSGVhZCwgY2xhc3MuLi4gVGFpbD4KKyAgICB2b2lkIHNldChIZWFkJiYgaGVhZCwgVGFpbCYmLi4uIHRhaWwpIHsKKyAgICAgICAgc3RkOjpnZXQ8c2l6ZW9mLi4uKFJlc3VsdFN0b3JlKSAtIHNpemVvZi4uLihUYWlsKSAtIDE+KHJlc3VsdHMpCisgICAgICAgICAgICAgICAgICA9IHN0ZDo6Zm9yd2FyZDxIZWFkPihoZWFkKTsKKyAgICAgICAgc2V0KHRhaWwuLi4pOworICAgIH0KKyAgICAvLyBUcml2aWFsIGNhc2UKKyAgICB2b2lkIHNldCgpIHt9CisKKyAgICAvLyBBbGwgdmFyaWFibGVzIHRvIHNldCBhcmUgc3RvcmVkIGhlcmUKKyAgICBzdGQ6OnR1cGxlPFJlc3VsdFN0b3JlJi4uLj4gcmVzdWx0czsKK307Cit9IC8vIG5hbWVzcGFjZSBkZXRhaWwKKworLy8gR2VuZXJhdGUgdGhlIEhJREwgc3luY2hyb25vdXMgY2FsbGJhY2sgd2l0aCBhIGNvcHkgcG9saWN5CisvLyBJbnB1dDogdGhlIHZhcmlhYmxlcyAobHZhbHVlIHJlZmVyZW5jZSkgd2hlcmUgdG8gc2F2ZSB0aGUgcmV0dXJuIHZhbHVlcworLy8gT3V0cHV0OiB0aGUgY2FsbGJhY2sgdG8gcHJvdmlkZSB0byBhIEhJREwgY2FsbCB3aXRoIGEgc3luY2hyb25vdXMgY2FsbGJhY2sKKy8vIFRoZSBvdXRwdXQgcGFyYW1ldGVycyAqd2lsbCBiZSBjb3BpZWQqIGRvIG5vdCB1c2UgdGhpcyBmdW5jdGlvbiBpZiB5b3UgaGF2ZQorLy8gYSB6ZXJvIGNvcHkgcG9saWN5Cit0ZW1wbGF0ZSA8Y2xhc3MuLi4gUmVzdWx0U3RvcmU+CitkZXRhaWw6OlJldHVybkluPFJlc3VsdFN0b3JlLi4uPiByZXR1cm5JbihSZXN1bHRTdG9yZSYuLi4gdHMpIHsgcmV0dXJuIHt0cy4uLn07fQorCit9CmRpZmYgLS1naXQgYS9hdWRpby9BbmRyb2lkLmJwIGIvYXVkaW8vQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2MyYmUxCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vQW5kcm9pZC5icApAQCAtMCwwICsxLDkgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjIuMCIsCisgICAgIjIuMC92dHMvZnVuY3Rpb25hbCIsCisgICAgImNvbW1vbi8yLjAiLAorICAgICJjb21tb24vMi4wL2RlZmF1bHQiLAorICAgICJlZmZlY3QvMi4wIiwKKyAgICAiZWZmZWN0LzIuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9hdWRpby9jb21tb24vMi4wL0FuZHJvaWQuYnAgYi9hdWRpby9jb21tb24vMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzlkYjE1YQotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2NvbW1vbi8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDU2IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2NvbW1vbi8yLjAvdHlwZXMuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9jb21tb24vMi4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdWRpby9jb21tb24vMi4wL2h3dHlwZXMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1ZGlvL2NvbW1vbi8yLjAvQW5kcm9pZC5tayBiL2F1ZGlvL2NvbW1vbi8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzhhMzk1Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vY29tbW9uLzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzkgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uLVYyLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXVkaW8vY29tbW9uL1YyXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+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+IGNhcHR1cmUoY2FwdHVyZV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBtZWFzdXJlKG1lYXN1cmVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHNwPEVmZmVjdD4gbUVmZmVjdDsKKyAgICB1aW50MTZfdCBtQ2FwdHVyZVNpemU7CisgICAgTWVhc3VyZW1lbnRNb2RlIG1NZWFzdXJlbWVudE1vZGU7CisKKyAgICB2aXJ0dWFsIH5WaXN1YWxpemVyRWZmZWN0KCk7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgZWZmZWN0Cit9ICAvLyBuYW1lc3BhY2UgYXVkaW8KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0FVRElPX0VGRkVDVF9WMl8wX1ZJU1VBTElaRVJFRkZFQ1RfSApkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0LzIuMC90eXBlcy5oYWwgYi9hdWRpby9lZmZlY3QvMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYzVlNGVmCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwyOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKKworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBPSywKKyAgICBOT1RfSU5JVElBTElaRUQsCisgICAgSU5WQUxJRF9BUkdVTUVOVFMsCisgICAgSU5WQUxJRF9TVEFURSwKKyAgICBOT1RfU1VQUE9SVEVELAorICAgIFJFU1VMVF9UT09fQklHCit9OworCisvKioKKyAqIEVmZmVjdCBlbmdpbmUgY2FwYWJpbGl0aWVzL3JlcXVpcmVtZW50cyBmbGFncy4KKyAqCisgKiBEZWZpbml0aW9ucyBmb3IgZmxhZ3MgZmllbGQgb2YgZWZmZWN0IGRlc2NyaXB0b3IuCisgKgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgZGVzY3JpcHRpb24gICAgfCBiaXRzICAgfCB2YWx1ZXMKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IGNvbm5lY3Rpb24gICAgIHwgMC4uMiAgIHwgMCBpbnNlcnQ6IGFmdGVyIHRyYWNrIHByb2Nlc3MKKyAqIHwgbW9kZSAgICAgICAgICAgfCAgICAgICAgfCAxIGF1eGlsaWFyeTogY29ubmVjdCB0byB0cmFjayBhdXhpbGlhcnkKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgb3V0cHV0IGFuZCB1c2Ugc2VuZCBsZXZlbAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgcmVwbGFjZTogcmVwbGFjZXMgdHJhY2sgcHJvY2VzcyBmdW5jdGlvbjsKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIG11c3QgaW1wbGVtZW50IFNSQywgdm9sdW1lIGFuZCBtb25vIHRvIHN0ZXJlby4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAzIHByZSBwcm9jZXNzaW5nOiBhcHBsaWVkIGJlbG93IGF1ZGlvIEhBTCBvbiBpbgorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDQgcG9zdCBwcm9jZXNzaW5nOiBhcHBsaWVkIGJlbG93IGF1ZGlvIEhBTCBvbiBvdXQKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCA1IC0gNyByZXNlcnZlZAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgaW5zZXJ0aW9uICAgICAgfCAzLi41ICAgfCAwIG5vbmUKKyAqIHwgcHJlZmVyZW5jZSAgICAgfCAgICAgICAgfCAxIGZpcnN0IG9mIHRoZSBjaGFpbgorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgbGFzdCBvZiB0aGUgY2hhaW4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAzIGV4Y2x1c2l2ZSAob25seSBlZmZlY3QgaW4gdGhlIGluc2VydCBjaGFpbikKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCA0Li43IHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBWb2x1bWUgICAgICAgICB8IDYuLjggICB8IDAgbm9uZQorICogfCBtYW5hZ2VtZW50ICAgICB8ICAgICAgICB8IDEgaW1wbGVtZW50cyB2b2x1bWUgY29udHJvbAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgcmVxdWlyZXMgdm9sdW1lIGluZGljYXRpb24KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCA0IHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBEZXZpY2UgICAgICAgICB8IDkuLjExICB8IDAgbm9uZQorICogfCBpbmRpY2F0aW9uICAgICB8ICAgICAgICB8IDEgcmVxdWlyZXMgZGV2aWNlIHVwZGF0ZXMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyLCA0IHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBTYW1wbGUgaW5wdXQgICB8IDEyLi4xMyB8IDEgZGlyZWN0OiBwcm9jZXNzKCkgZnVuY3Rpb24gb3IKKyAqIHwgbW9kZSAgICAgICAgICAgfCAgICAgICAgfCAgIEVGRkVDVF9DTURfU0VUX0NPTkZJRyBjb21tYW5kIG11c3Qgc3BlY2lmeQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgYSBidWZmZXIgZGVzY3JpcHRvcgorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8IDIgcHJvdmlkZXI6IHByb2Nlc3MoKSBmdW5jdGlvbiB1c2VzIHRoZQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgYnVmZmVyUHJvdmlkZXIgaW5kaWNhdGVkIGJ5IHRoZQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgRUZGRUNUX0NNRF9TRVRfQ09ORklHIGNvbW1hbmQgdG8gcmVxdWVzdCBpbnB1dC4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGJ1ZmZlcnMuCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgMyBib3RoOiBib3RoIGlucHV0IG1vZGVzIGFyZSBzdXBwb3J0ZWQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IFNhbXBsZSBvdXRwdXQgIHwgMTQuLjE1IHwgMSBkaXJlY3Q6IHByb2Nlc3MoKSBmdW5jdGlvbiBvcgorICogfCBtb2RlICAgICAgICAgICB8ICAgICAgICB8ICAgRUZGRUNUX0NNRF9TRVRfQ09ORklHIGNvbW1hbmQgbXVzdCBzcGVjaWZ5CisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBhIGJ1ZmZlciBkZXNjcmlwdG9yCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgMiBwcm92aWRlcjogcHJvY2VzcygpIGZ1bmN0aW9uIHVzZXMgdGhlCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBidWZmZXJQcm92aWRlciBpbmRpY2F0ZWQgYnkgdGhlCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBFRkZFQ1RfQ01EX1NFVF9DT05GSUcgY29tbWFuZCB0byByZXF1ZXN0IG91dHB1dAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgYnVmZmVycy4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAzIGJvdGg6IGJvdGggb3V0cHV0IG1vZGVzIGFyZSBzdXBwb3J0ZWQKKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IEhhcmR3YXJlICAgICAgIHwgMTYuLjE3IHwgMCBObyBoYXJkd2FyZSBhY2NlbGVyYXRpb24KKyAqIHwgYWNjZWxlcmF0aW9uICAgfCAgICAgICAgfCAxIG5vbiB0dW5uZWxlZCBodyBhY2NlbGVyYXRpb246IHRoZSBwcm9jZXNzKCkKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGZ1bmN0aW9uIHJlYWRzIHRoZSBzYW1wbGVzLCBzZW5kIHRoZW0gdG8gSFcKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGFjY2VsZXJhdGVkIGVmZmVjdCBwcm9jZXNzb3IsIHJlYWRzIGJhY2sKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIHRoZSBwcm9jZXNzZWQgc2FtcGxlcyBhbmQgcmV0dXJucyB0aGVtCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICB0byB0aGUgb3V0cHV0IGJ1ZmZlci4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyIHR1bm5lbGVkIGh3IGFjY2VsZXJhdGlvbjogdGhlIHByb2Nlc3MoKQorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgZnVuY3Rpb24gaXMgdHJhbnNwYXJlbnQuIFRoZSBlZmZlY3QgaW50ZXJmYWNlCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBpcyBvbmx5IHVzZWQgdG8gY29udHJvbCB0aGUgZWZmZWN0IGVuZ2luZS4KKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIFRoaXMgbW9kZSBpcyByZWxldmFudCBmb3IgZ2xvYmFsIGVmZmVjdHMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgIGFjdHVhbGx5IGFwcGxpZWQgYnkgdGhlIGF1ZGlvIGhhcmR3YXJlIG9uCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICB0aGUgb3V0cHV0IHN0cmVhbS4KKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IEF1ZGlvIE1vZGUgICAgIHwgMTguLjE5IHwgMCBub25lCisgKiB8IGluZGljYXRpb24gICAgIHwgICAgICAgIHwgMSByZXF1aXJlcyBhdWRpbyBtb2RlIHVwZGF0ZXMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyLi4zIHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBBdWRpbyBzb3VyY2UgICB8IDIwLi4yMSB8IDAgbm9uZQorICogfCBpbmRpY2F0aW9uICAgICB8ICAgICAgICB8IDEgcmVxdWlyZXMgYXVkaW8gc291cmNlIHVwZGF0ZXMKKyAqIHwgICAgICAgICAgICAgICAgfCAgICAgICAgfCAyLi4zIHJlc2VydmVkCisgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogfCBFZmZlY3Qgb2ZmbG9hZCB8IDIyICAgICB8IDAgVGhlIGVmZmVjdCBjYW5ub3QgYmUgb2ZmbG9hZGVkIHRvIGFuIGF1ZGlvIERTUAorICogfCBzdXBwb3J0ZWQgICAgICB8ICAgICAgICB8IDEgVGhlIGVmZmVjdCBjYW4gYmUgb2ZmbG9hZGVkIHRvIGFuIGF1ZGlvIERTUAorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgUHJvY2VzcyAgICAgICAgfCAyMyAgICAgfCAwIFRoZSBlZmZlY3QgaW1wbGVtZW50cyBhIHByb2Nlc3MgZnVuY3Rpb24uCisgKiB8IGZ1bmN0aW9uICAgICAgIHwgICAgICAgIHwgMSBUaGUgZWZmZWN0IGRvZXMgbm90IGltcGxlbWVudCBhIHByb2Nlc3MKKyAqIHwgbm90ICAgICAgICAgICAgfCAgICAgICAgfCAgIGZ1bmN0aW9uOiBlbmFibGluZyB0aGUgZWZmZWN0IGhhcyBubyBpbXBhY3QKKyAqIHwgaW1wbGVtZW50ZWQgICAgfCAgICAgICAgfCAgIG9uIGxhdGVuY3kgb3IgQ1BVIGxvYWQuCisgKiB8ICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICBFZmZlY3QgaW1wbGVtZW50YXRpb25zIHNldHRpbmcgdGhpcyBmbGFnIGRvIG5vdAorICogfCAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgaGF2ZSB0byBpbXBsZW1lbnQgYSBwcm9jZXNzIGZ1bmN0aW9uLgorICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkVGRkVDVF9GTEFHXyIpCitlbnVtIEVmZmVjdEZsYWdzIDogaW50MzJfdCB7CisgICAgLy8gSW5zZXJ0IG1vZGUKKyAgICBUWVBFX1NISUZUID0gMCwKKyAgICBUWVBFX1NJWkUgPSAzLAorICAgIFRZUEVfTUFTSyA9ICgoMSA8PCBUWVBFX1NJWkUpIC0xKSA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfSU5TRVJUID0gMCA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfQVVYSUxJQVJZID0gMSA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfUkVQTEFDRSA9IDIgPDwgVFlQRV9TSElGVCwKKyAgICBUWVBFX1BSRV9QUk9DID0gMyA8PCBUWVBFX1NISUZULAorICAgIFRZUEVfUE9TVF9QUk9DID0gNCA8PCBUWVBFX1NISUZULAorCisgICAgLy8gSW5zZXJ0IHByZWZlcmVuY2UKKyAgICBJTlNFUlRfU0hJRlQgPSBUWVBFX1NISUZUICsgVFlQRV9TSVpFLAorICAgIElOU0VSVF9TSVpFID0gMywKKyAgICBJTlNFUlRfTUFTSyA9ICgoMSA8PCBJTlNFUlRfU0laRSkgLTEpIDw8IElOU0VSVF9TSElGVCwKKyAgICBJTlNFUlRfQU5ZID0gMCA8PCBJTlNFUlRfU0hJRlQsCisgICAgSU5TRVJUX0ZJUlNUID0gMSA8PCBJTlNFUlRfU0hJRlQsCisgICAgSU5TRVJUX0xBU1QgPSAyIDw8IElOU0VSVF9TSElGVCwKKyAgICBJTlNFUlRfRVhDTFVTSVZFID0gMyA8PCBJTlNFUlRfU0hJRlQsCisKKyAgICAvLyBWb2x1bWUgY29udHJvbAorICAgIFZPTFVNRV9TSElGVCA9IElOU0VSVF9TSElGVCArIElOU0VSVF9TSVpFLAorICAgIFZPTFVNRV9TSVpFID0gMywKKyAgICBWT0xVTUVfTUFTSyA9ICgoMSA8PCBWT0xVTUVfU0laRSkgLTEpIDw8IFZPTFVNRV9TSElGVCwKKyAgICBWT0xVTUVfQ1RSTCA9IDEgPDwgVk9MVU1FX1NISUZULAorICAgIFZPTFVNRV9JTkQgPSAyIDw8IFZPTFVNRV9TSElGVCwKKyAgICBWT0xVTUVfTk9ORSA9IDAgPDwgVk9MVU1FX1NISUZULAorCisgICAgLy8gRGV2aWNlIGluZGljYXRpb24KKyAgICBERVZJQ0VfU0hJRlQgPSBWT0xVTUVfU0hJRlQgKyBWT0xVTUVfU0laRSwKKyAgICBERVZJQ0VfU0laRSA9IDMsCisgICAgREVWSUNFX01BU0sgPSAoKDEgPDwgREVWSUNFX1NJWkUpIC0xKSA8PCBERVZJQ0VfU0hJRlQsCisgICAgREVWSUNFX0lORCA9IDEgPDwgREVWSUNFX1NISUZULAorICAgIERFVklDRV9OT05FID0gMCA8PCBERVZJQ0VfU0hJRlQsCisKKyAgICAvLyBTYW1wbGUgaW5wdXQgbW9kZXMKKyAgICBJTlBVVF9TSElGVCA9IERFVklDRV9TSElGVCArIERFVklDRV9TSVpFLAorICAgIElOUFVUX1NJWkUgPSAyLAorICAgIElOUFVUX01BU0sgPSAoKDEgPDwgSU5QVVRfU0laRSkgLTEpIDw8IElOUFVUX1NISUZULAorICAgIElOUFVUX0RJUkVDVCA9IDEgPDwgSU5QVVRfU0hJRlQsCisgICAgSU5QVVRfUFJPVklERVIgPSAyIDw8IElOUFVUX1NISUZULAorICAgIElOUFVUX0JPVEggPSAzIDw8IElOUFVUX1NISUZULAorCisgICAgLy8gU2FtcGxlIG91dHB1dCBtb2RlcworICAgIE9VVFBVVF9TSElGVCA9IElOUFVUX1NISUZUICsgSU5QVVRfU0laRSwKKyAgICBPVVRQVVRfU0laRSA9IDIsCisgICAgT1VUUFVUX01BU0sgPSAoKDEgPDwgT1VUUFVUX1NJWkUpIC0xKSA8PCBPVVRQVVRfU0hJRlQsCisgICAgT1VUUFVUX0RJUkVDVCA9IDEgPDwgT1VUUFVUX1NISUZULAorICAgIE9VVFBVVF9QUk9WSURFUiA9IDIgPDwgT1VUUFVUX1NISUZULAorICAgIE9VVFBVVF9CT1RIID0gMyA8PCBPVVRQVVRfU0hJRlQsCisKKyAgICAvLyBIYXJkd2FyZSBhY2NlbGVyYXRpb24gbW9kZQorICAgIEhXX0FDQ19TSElGVCA9IE9VVFBVVF9TSElGVCArIE9VVFBVVF9TSVpFLAorICAgIEhXX0FDQ19TSVpFID0gMiwKKyAgICBIV19BQ0NfTUFTSyA9ICgoMSA8PCBIV19BQ0NfU0laRSkgLTEpIDw8IEhXX0FDQ19TSElGVCwKKyAgICBIV19BQ0NfU0lNUExFID0gMSA8PCBIV19BQ0NfU0hJRlQsCisgICAgSFdfQUNDX1RVTk5FTCA9IDIgPDwgSFdfQUNDX1NISUZULAorCisgICAgLy8gQXVkaW8gbW9kZSBpbmRpY2F0aW9uCisgICAgQVVESU9fTU9ERV9TSElGVCA9IEhXX0FDQ19TSElGVCArIEhXX0FDQ19TSVpFLAorICAgIEFVRElPX01PREVfU0laRSA9IDIsCisgICAgQVVESU9fTU9ERV9NQVNLID0gKCgxIDw8IEFVRElPX01PREVfU0laRSkgLTEpIDw8IEFVRElPX01PREVfU0hJRlQsCisgICAgQVVESU9fTU9ERV9JTkQgPSAxIDw8IEFVRElPX01PREVfU0hJRlQsCisgICAgQVVESU9fTU9ERV9OT05FID0gMCA8PCBBVURJT19NT0RFX1NISUZULAorCisgICAgLy8gQXVkaW8gc291cmNlIGluZGljYXRpb24KKyAgICBBVURJT19TT1VSQ0VfU0hJRlQgPSBBVURJT19NT0RFX1NISUZUICsgQVVESU9fTU9ERV9TSVpFLAorICAgIEFVRElPX1NPVVJDRV9TSVpFID0gMiwKKyAgICBBVURJT19TT1VSQ0VfTUFTSyA9ICgoMSA8PCBBVURJT19TT1VSQ0VfU0laRSkgLTEpIDw8IEFVRElPX1NPVVJDRV9TSElGVCwKKyAgICBBVURJT19TT1VSQ0VfSU5EID0gMSA8PCBBVURJT19TT1VSQ0VfU0hJRlQsCisgICAgQVVESU9fU09VUkNFX05PTkUgPSAwIDw8IEFVRElPX1NPVVJDRV9TSElGVCwKKworICAgIC8vIEVmZmVjdCBvZmZsb2FkIGluZGljYXRpb24KKyAgICBPRkZMT0FEX1NISUZUID0gQVVESU9fU09VUkNFX1NISUZUICsgQVVESU9fU09VUkNFX1NJWkUsCisgICAgT0ZGTE9BRF9TSVpFID0gMSwKKyAgICBPRkZMT0FEX01BU0sgPSAoKDEgPDwgT0ZGTE9BRF9TSVpFKSAtMSkgPDwgT0ZGTE9BRF9TSElGVCwKKyAgICBPRkZMT0FEX1NVUFBPUlRFRCA9IDEgPDwgT0ZGTE9BRF9TSElGVCwKKworICAgIC8vIEVmZmVjdCBoYXMgbm8gcHJvY2VzcyBpbmRpY2F0aW9uCisgICAgTk9fUFJPQ0VTU19TSElGVCA9IE9GRkxPQURfU0hJRlQgKyBPRkZMT0FEX1NJWkUsCisgICAgTk9fUFJPQ0VTU19TSVpFID0gMSwKKyAgICBOT19QUk9DRVNTX01BU0sgPSAoKDEgPDwgTk9fUFJPQ0VTU19TSVpFKSAtMSkgPDwgTk9fUFJPQ0VTU19TSElGVCwKKyAgICBOT19QUk9DRVNTID0gMSA8PCBOT19QUk9DRVNTX1NISUZUCit9OworCisvKioKKyAqIFRoZSBlZmZlY3QgZGVzY3JpcHRvciBjb250YWlucyBuZWNlc3NhcnkgaW5mb3JtYXRpb24gdG8gZmFjaWxpdGF0ZSB0aGUKKyAqIGVudW1lcmF0aW9uIG9mIHRoZSBlZmZlY3QgZW5naW5lcyBwcmVzZW50IGluIGEgbGlicmFyeS4KKyAqLworc3RydWN0IEVmZmVjdERlc2NyaXB0b3IgeworICAgIFV1aWQgdHlwZTsgICAgICAgICAgICAgLy8gVVVJRCBvZiB0byB0aGUgT3BlblNMIEVTIGludGVyZmFjZSBpbXBsZW1lbnRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYnkgdGhpcyBlZmZlY3QKKyAgICBVdWlkIHV1aWQ7ICAgICAgICAgICAgIC8vIFVVSUQgZm9yIHRoaXMgcGFydGljdWxhciBpbXBsZW1lbnRhdGlvbgorICAgIEVmZmVjdEZsYWdzIGZsYWdzOyAgICAgLy8gZWZmZWN0IGVuZ2luZSBjYXBhYmlsaXRpZXMvcmVxdWlyZW1lbnRzIGZsYWdzCisgICAgdWludDE2X3QgY3B1TG9hZDsgICAgICAvLyBDUFUgbG9hZCBpbmRpY2F0aW9uIGV4cHJlc3NlZCBpbiAwLjEgTUlQUyB1bml0cworICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXMgZXN0aW1hdGVkIG9uIGFuIEFSTTlFIGNvcmUgKEFSTXY1VEUpIHdpdGggMCBXUworICAgIHVpbnQxNl90IG1lbW9yeVVzYWdlOyAgLy8gZGF0YSBtZW1vcnkgdXNhZ2UgZXhwcmVzc2VkIGluIEtCIGFuZCBpbmNsdWRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb25seSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgbWVtb3J5CisgICAgdWludDhfdFs2NF0gbmFtZTsgICAgICAvLyBodW1hbiByZWFkYWJsZSBlZmZlY3QgbmFtZQorICAgIHVpbnQ4X3RbNjRdIGltcGxlbWVudG9yOyAgLy8gaHVtYW4gcmVhZGFibGUgZWZmZWN0IGltcGxlbWVudG9yIG5hbWUKK307CisKKy8qKgorICogQSBidWZmZXIgaXMgYSBjaHVuayBvZiBhdWRpbyBkYXRhIGZvciBwcm9jZXNzaW5nLiAgTXVsdGktY2hhbm5lbCBhdWRpbyBpcworICogYWx3YXlzIGludGVybGVhdmVkLiBUaGUgY2hhbm5lbCBvcmRlciBpcyBmcm9tIExTQiB0byBNU0Igd2l0aCByZWdhcmQgdG8gdGhlCisgKiBjaGFubmVsIG1hc2sgZGVmaW5pdGlvbiBpbiBhdWRpby5oLCBhdWRpb19jaGFubmVsX21hc2tfdCwgZS5nLjoKKyAqIFN0ZXJlbzogTCwgUjsgNS4xOiBGTCwgRlIsIEZDLCBMRkUsIEJMLCBCUi4KKyAqCisgKiBUaGUgYnVmZmVyIHNpemUgaXMgZXhwcmVzc2VkIGluIGZyYW1lIGNvdW50LCBhIGZyYW1lIGJlaW5nIGNvbXBvc2VkIG9mCisgKiBzYW1wbGVzIGZvciBhbGwgY2hhbm5lbHMgYXQgYSBnaXZlbiB0aW1lLiBGcmFtZSBzaXplIGZvciB1bnNwZWNpZmllZCBmb3JtYXQKKyAqIChBVURJT19GT1JNQVRfT1RIRVIpIGlzIDggYml0IGJ5IGRlZmluaXRpb24uCisgKi8KK3N0cnVjdCBBdWRpb0J1ZmZlciB7CisgICAgdWludDY0X3QgaWQ7CisgICAgdWludDMyX3QgZnJhbWVDb3VudDsKKyAgICBtZW1vcnkgZGF0YTsKK307CisKK0BleHBvcnQobmFtZT0iZWZmZWN0X2J1ZmZlcl9hY2Nlc3NfZSIsIHZhbHVlX3ByZWZpeD0iRUZGRUNUX0JVRkZFUl8iKQorZW51bSBFZmZlY3RCdWZmZXJBY2Nlc3MgOiBpbnQzMl90IHsKKyAgICBBQ0NFU1NfV1JJVEUsCisgICAgQUNDRVNTX1JFQUQsCisgICAgQUNDRVNTX0FDQ1VNVUxBVEUKK307CisKKy8qKgorICogRGV0ZXJtaW5lcyB3aGF0IGZpZWxkcyBvZiBFZmZlY3RCdWZmZXJDb25maWcgbmVlZCB0byBiZSBjb25zaWRlcmVkLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iRUZGRUNUX0NPTkZJR18iKQorZW51bSBFZmZlY3RDb25maWdQYXJhbWV0ZXJzIDogaW50MzJfdCB7CisgICAgQlVGRkVSID0gMHgwMDAxLCAgICAvLyBidWZmZXIgZmllbGQKKyAgICBTTVBfUkFURSA9IDB4MDAwMiwgIC8vIHNhbXBsaW5nUmF0ZQorICAgIENIQU5ORUxTID0gMHgwMDA0LCAgLy8gY2hhbm5lbHMKKyAgICBGT1JNQVQgPSAweDAwMDgsICAgIC8vIGZvcm1hdAorICAgIEFDQ19NT0RFID0gMHgwMDEwLCAgLy8gYWNjZXNzTW9kZQorICAgIEFMTCA9IEJVRkZFUiB8IFNNUF9SQVRFIHwgQ0hBTk5FTFMgfCBGT1JNQVQgfCBBQ0NfTU9ERQorfTsKKworLyoqCisgKiBUaGUgYnVmZmVyIGNvbmZpZyBzdHJ1Y3R1cmUgc3BlY2lmaWVzIHRoZSBpbnB1dCBvciBvdXRwdXQgYXVkaW8gZm9ybWF0CisgKiB0byBiZSB1c2VkIGJ5IHRoZSBlZmZlY3QgZW5naW5lLgorICovCitzdHJ1Y3QgRWZmZWN0QnVmZmVyQ29uZmlnIHsKKyAgICBBdWRpb0J1ZmZlciBidWZmZXI7CisgICAgdWludDMyX3Qgc2FtcGxpbmdSYXRlSHo7CisgICAgQXVkaW9DaGFubmVsTWFzayBjaGFubmVsczsKKyAgICBBdWRpb0Zvcm1hdCBmb3JtYXQ7CisgICAgRWZmZWN0QnVmZmVyQWNjZXNzIGFjY2Vzc01vZGU7CisgICAgRWZmZWN0Q29uZmlnUGFyYW1ldGVycyBtYXNrOworfTsKKworc3RydWN0IEVmZmVjdENvbmZpZyB7CisgICAgRWZmZWN0QnVmZmVyQ29uZmlnIGlucHV0Q2ZnOworICAgIEVmZmVjdEJ1ZmZlckNvbmZpZyBvdXRwdXRDZmc7Cit9OworCitAZXhwb3J0KG5hbWU9ImVmZmVjdF9mZWF0dXJlX2UiLCB2YWx1ZV9wcmVmaXg9IkVGRkVDVF9GRUFUVVJFXyIpCitlbnVtIEVmZmVjdEZlYXR1cmUgOiBpbnQzMl90IHsKKyAgICBBVVhfQ0hBTk5FTFMsIC8vIHN1cHBvcnRzIGF1eGlsaWFyeSBjaGFubmVscworICAgICAgICAgICAgICAgICAgLy8gKGUuZy4gZHVhbCBtaWMgbm9pc2Ugc3VwcHJlc3NvcikKKyAgICBDTlQKK307CisKK3N0cnVjdCBFZmZlY3RBdXhDaGFubmVsc0NvbmZpZyB7CisgICAgQXVkaW9DaGFubmVsTWFzayBtYWluQ2hhbm5lbHM7ICAvLyBjaGFubmVsIG1hc2sgZm9yIG1haW4gY2hhbm5lbHMKKyAgICBBdWRpb0NoYW5uZWxNYXNrIGF1eENoYW5uZWxzOyAgIC8vIGNoYW5uZWwgbWFzayBmb3IgYXV4aWxpYXJ5IGNoYW5uZWxzCit9OworCitzdHJ1Y3QgRWZmZWN0T2ZmbG9hZFBhcmFtZXRlciB7CisgICAgYm9vbCBpc09mZmxvYWQ7ICAgICAgICAgIC8vIHRydWUgaWYgdGhlIHBsYXliYWNrIHRocmVhZCB0aGUgZWZmZWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlzIGF0dGFjaGVkIHRvIGlzIG9mZmxvYWRlZAorICAgIEF1ZGlvSW9IYW5kbGUgaW9IYW5kbGU7ICAvLyBpbyBoYW5kbGUgb2YgdGhlIHBsYXliYWNrIHRocmVhZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZWZmZWN0IGlzIGF0dGFjaGVkIHRvCit9OworCisvKioKKyAqIFRoZSBtZXNzYWdlIHF1ZXVlIGZsYWdzIHVzZWQgdG8gc3luY2hyb25pemUgcmVhZHMgYW5kIHdyaXRlcyBmcm9tCisgKiB0aGUgc3RhdHVzIG1lc3NhZ2UgcXVldWUgdXNlZCBieSBlZmZlY3RzLgorICovCitlbnVtIE1lc3NhZ2VRdWV1ZUZsYWdCaXRzIDogdWludDMyX3QgeworICAgIERPTkVfUFJPQ0VTU0lORyA9IDEgPDwgMCwKKyAgICBSRVFVRVNUX1BST0NFU1MgPSAxIDw8IDEsCisgICAgUkVRVUVTVF9QUk9DRVNTX1JFVkVSU0UgPSAxIDw8IDIsCisgICAgUkVRVUVTVF9RVUlUID0gMSA8PCAzLAorICAgIFJFUVVFU1RfUFJPQ0VTU19BTEwgPQorICAgICAgICBSRVFVRVNUX1BST0NFU1MgfCBSRVFVRVNUX1BST0NFU1NfUkVWRVJTRSB8IFJFUVVFU1RfUVVJVAorfTsKZGlmZiAtLWdpdCBhL2F1ZGlvL2VmZmVjdC8yLjAvdnRzL0FuZHJvaWQubWsgYi9hdWRpby9lZmZlY3QvMi4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZGQ1YmYKLS0tIC9kZXYvbnVsbAorKysgYi9hdWRpby9lZmZlY3QvMi4wL3Z0cy9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjEgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9hdWRpby9lZmZlY3QvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGEzNzBjZAotLS0gL2Rldi9udWxsCisrKyBiL2F1ZGlvL2VmZmVjdC8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM5IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsQXVkaW9FZmZlY3RWMl8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsQXVkaW9FZmZlY3RWMl8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdWRpby9lZmZlY3QvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEF1ZGlvRWZmZWN0VjJfMFRhcmdldFRlc3QuY3BwIGIvYXVkaW8vZWZmZWN0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxBdWRpb0VmZmVjdFYyXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDBiYjRlCi0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxBdWRpb0VmZmVjdFYyXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDgyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiQXVkaW9FZmZlY3RIaWRsSGFsVGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPHN5c3RlbS9hdWRpby5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdWRpby9lZmZlY3QvMi4wL0lFZmZlY3QuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1ZGlvL2VmZmVjdC8yLjAvSUVmZmVjdHNGYWN0b3J5Lmg+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+c2V0QXVkaW9Nb2RlKEF1ZGlvTW9kZTo6Tk9STUFMKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgU2V0Q29uZmlnUmV2ZXJzZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgU2V0Q29uZmlnUmV2ZXJzZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPQorICAgICAgZWZmZWN0LT5zZXRDb25maWdSZXZlcnNlKEVmZmVjdENvbmZpZygpLCBudWxscHRyLCBudWxscHRyKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRJbnB1dERldmljZSkgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgU2V0SW5wdXREZXZpY2UgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPFJlc3VsdD4gcmV0ID0gZWZmZWN0LT5zZXRJbnB1dERldmljZShBdWRpb0RldmljZTo6SU5fQlVJTFRJTl9NSUMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIFNldEF1ZGlvU291cmNlKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBTZXRBdWRpb1NvdXJjZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPnNldEF1ZGlvU291cmNlKEF1ZGlvU291cmNlOjpNSUMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIE9mZmxvYWQpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IGNhbGxpbmcgT2ZmbG9hZCBtZXRob2QgZWl0aGVyIHdvcmtzIG9yIHJldHVybnMgbm90IHN1cHBvcnRlZCIpOworICBFZmZlY3RPZmZsb2FkUGFyYW1ldGVyIG9mZmxvYWRQYXJhbTsKKyAgb2ZmbG9hZFBhcmFtLmlzT2ZmbG9hZCA9IGZhbHNlOworICBvZmZsb2FkUGFyYW0uaW9IYW5kbGUgPQorICAgICAgc3RhdGljX2Nhc3Q8aW50PihBdWRpb0hhbmRsZUNvbnN0czo6QVVESU9fSU9fSEFORExFX05PTkUpOworICBSZXR1cm48UmVzdWx0PiByZXQgPSBlZmZlY3QtPm9mZmxvYWQob2ZmbG9hZFBhcmFtKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKFJlc3VsdDo6T0sgPT0gcmV0IHx8IFJlc3VsdDo6Tk9UX1NVUFBPUlRFRCA9PSByZXQpCisgICAgICAgICAgPDwgIkV4cGVjdGVkIE9LIG9yIE5PVF9TVVBQT1JURUQsIGFjdHVhbCB2YWx1ZTogIgorICAgICAgICAgIDw8IHN0YXRpY19jYXN0PGludDMyX3Q+KHN0YXRpY19jYXN0PFJlc3VsdD4ocmV0KSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBQcmVwYXJlRm9yUHJvY2Vzc2luZykgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgUHJlcGFyZUZvclByb2Nlc3NpbmcgbWV0aG9kIHdvcmtzIGZvciBhbiBlZmZlY3QiKTsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5wcmVwYXJlRm9yUHJvY2Vzc2luZygKKyAgICAgIFsmXShSZXN1bHQgciwgY29uc3QgTVFEZXNjcmlwdG9yU3luYzxSZXN1bHQ+JikgeyByZXR2YWwgPSByOyB9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgU2V0UHJvY2Vzc0J1ZmZlcnMpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldFByb2Nlc3NCdWZmZXJzIHdvcmtzIGZvciBhbiBlZmZlY3QiKTsKKyAgc3A8SUFsbG9jYXRvcj4gYXNobWVtID0gSUFsbG9jYXRvcjo6Z2V0U2VydmljZSgiYXNobWVtIik7CisgIEFTU0VSVF9ORShudWxscHRyLCBhc2htZW0uZ2V0KCkpOworICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgQXVkaW9CdWZmZXIgYnVmZmVyOworICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgIGFzaG1lbS0+YWxsb2NhdGUoMTAyNCwgWyZdKGJvb2wgcywgY29uc3QgaGlkbF9tZW1vcnkmIG1lbW9yeSkgeworICAgICAgICBzdWNjZXNzID0gczsKKyAgICAgICAgaWYgKHMpIHsKKyAgICAgICAgICBidWZmZXIuZGF0YSA9IG1lbW9yeTsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBBU1NFUlRfVFJVRShzdWNjZXNzKTsKKyAgUmV0dXJuPFJlc3VsdD4gcmV0MiA9IGVmZmVjdC0+c2V0UHJvY2Vzc0J1ZmZlcnMoYnVmZmVyLCBidWZmZXIpOworICBFWFBFQ1RfVFJVRShyZXQyLmlzT2soKSk7CisgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXQyKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIENvbW1hbmQpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IENvbW1hbmQgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Y29tbWFuZCgwLCBoaWRsX3ZlYzx1aW50OF90PigpLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShpbnQzMl90LCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHt9KTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKK1RFU1RfRihBdWRpb0VmZmVjdEhpZGxUZXN0LCBTZXRQYXJhbWV0ZXIpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IFNldFBhcmFtZXRlciBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPQorICAgICAgZWZmZWN0LT5zZXRQYXJhbWV0ZXIoaGlkbF92ZWM8dWludDhfdD4oKSwgaGlkbF92ZWM8dWludDhfdD4oKSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0UGFyYW1ldGVyKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRQYXJhbWV0ZXIgZG9lcyBub3QgY3Jhc2giKTsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IGVmZmVjdC0+Z2V0UGFyYW1ldGVyKAorICAgICAgaGlkbF92ZWM8dWludDhfdD4oKSwgMCwgWyZdKFJlc3VsdCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7fSk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworfQorCitURVNUX0YoQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0U3VwcG9ydGVkQ29uZmlnc0ZvckZlYXR1cmUpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlIGRvZXMgbm90IGNyYXNoIik7CisgIFJldHVybjx2b2lkPiByZXQgPSBlZmZlY3QtPmdldFN1cHBvcnRlZENvbmZpZ3NGb3JGZWF0dXJlKAorICAgICAgMCwgMCwgMCwgWyZdKFJlc3VsdCwgdWludDMyX3QsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+Jikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBHZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48dm9pZD4gcmV0ID0gZWZmZWN0LT5nZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgKKyAgICAgIDAsIDAsIFsmXShSZXN1bHQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+Jikge30pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKK30KKworVEVTVF9GKEF1ZGlvRWZmZWN0SGlkbFRlc3QsIFNldEN1cnJlbnRDb25maWdGb3JGZWF0dXJlKSB7CisgIGRlc2NyaXB0aW9uKCJWZXJpZnkgdGhhdCBTZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSBkb2VzIG5vdCBjcmFzaCIpOworICBSZXR1cm48UmVzdWx0PiByZXQgPQorICAgICAgZWZmZWN0LT5zZXRDdXJyZW50Q29uZmlnRm9yRmVhdHVyZSgwLCBoaWRsX3ZlYzx1aW50OF90PigpKTsKKyAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgRXF1YWxpemVyIEF1ZGlvIEVmZmVjdCBISURMIEhBTC4KK2NsYXNzIEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QgOiBwdWJsaWMgQXVkaW9FZmZlY3RIaWRsVGVzdCB7CisgcHVibGljOgorICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIEF1ZGlvRWZmZWN0SGlkbFRlc3Q6OlNldFVwKCk7CisgICAgZXF1YWxpemVyID0gSUVxdWFsaXplckVmZmVjdDo6Y2FzdEZyb20oZWZmZWN0KTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgZXF1YWxpemVyLmdldCgpKTsKKyAgfQorCisgcHJvdGVjdGVkOgorICBVdWlkIGdldEVmZmVjdFR5cGUoKSBvdmVycmlkZSB7IHJldHVybiBFUVVBTElaRVJfRUZGRUNUX1RZUEU7IH0KKyAgdm9pZCBnZXROdW1CYW5kcyh1aW50MTZfdCogbnVtQmFuZHMpOworICB2b2lkIGdldExldmVsUmFuZ2UoaW50MTZfdCogbWluTGV2ZWwsIGludDE2X3QqIG1heExldmVsKTsKKyAgdm9pZCBnZXRCYW5kRnJlcXVlbmN5UmFuZ2UodWludDE2X3QgYmFuZCwgdWludDMyX3QqIG1pbkZyZXEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBjZW50ZXJGcmVxLCB1aW50MzJfdCogbWF4RnJlcSk7CisgIHZvaWQgZ2V0UHJlc2V0Q291bnQoc2l6ZV90KiBjb3VudCk7CisKKyAgc3A8SUVxdWFsaXplckVmZmVjdD4gZXF1YWxpemVyOworfTsKKwordm9pZCBFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0OjpnZXROdW1CYW5kcyh1aW50MTZfdCogbnVtQmFuZHMpIHsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0gZXF1YWxpemVyLT5nZXROdW1CYW5kcyhbJl0oUmVzdWx0IHIsIHVpbnQxNl90IGIpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgKm51bUJhbmRzID0gYjsKKyAgICB9CisgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7Cit9CisKK3ZvaWQgRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdDo6Z2V0TGV2ZWxSYW5nZShpbnQxNl90KiBtaW5MZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQxNl90KiBtYXhMZXZlbCkgeworICBSZXN1bHQgcmV0dmFsID0gUmVzdWx0OjpOT1RfSU5JVElBTElaRUQ7CisgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgZXF1YWxpemVyLT5nZXRMZXZlbFJhbmdlKFsmXShSZXN1bHQgciwgaW50MTZfdCBtaW4sIGludDE2X3QgbWF4KSB7CisgICAgICAgIHJldHZhbCA9IHI7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICptaW5MZXZlbCA9IG1pbjsKKyAgICAgICAgICAqbWF4TGV2ZWwgPSBtYXg7CisgICAgICAgIH0KKyAgICAgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7Cit9CisKK3ZvaWQgRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdDo6Z2V0QmFuZEZyZXF1ZW5jeVJhbmdlKHVpbnQxNl90IGJhbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogbWluRnJlcSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBjZW50ZXJGcmVxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIG1heEZyZXEpIHsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0gZXF1YWxpemVyLT5nZXRCYW5kRnJlcXVlbmN5UmFuZ2UoCisgICAgICBiYW5kLCBbJl0oUmVzdWx0IHIsIHVpbnQzMl90IG1pbiwgdWludDMyX3QgbWF4KSB7CisgICAgICAgIHJldHZhbCA9IHI7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICptaW5GcmVxID0gbWluOworICAgICAgICAgICptYXhGcmVxID0gbWF4OworICAgICAgICB9CisgICAgICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworICByZXQgPSBlcXVhbGl6ZXItPmdldEJhbmRDZW50ZXJGcmVxdWVuY3koYmFuZCwgWyZdKFJlc3VsdCByLCB1aW50MzJfdCBjZW50ZXIpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgKmNlbnRlckZyZXEgPSBjZW50ZXI7CisgICAgfQorICB9KTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCByZXR2YWwpOworfQorCit2b2lkIEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3Q6OmdldFByZXNldENvdW50KHNpemVfdCogY291bnQpIHsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICBSZXR1cm48dm9pZD4gcmV0ID0gZXF1YWxpemVyLT5nZXRQcmVzZXROYW1lcygKKyAgICAgIFsmXShSZXN1bHQgciwgY29uc3QgaGlkbF92ZWM8aGlkbF9zdHJpbmc+JiBuYW1lcykgeworICAgICAgICByZXR2YWwgPSByOworICAgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgICAqY291bnQgPSBuYW1lcy5zaXplKCk7CisgICAgICAgIH0KKyAgICAgIH0pOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7Cit9CisKK1RFU1RfRihFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXROdW1CYW5kcykgeworICBkZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgRXF1YWxpemVyIGVmZmVjdCByZXBvcnRzIGF0IGxlYXN0IG9uZSBiYW5kIik7CisgIHVpbnQxNl90IG51bUJhbmRzID0gMDsKKyAgZ2V0TnVtQmFuZHMoJm51bUJhbmRzKTsKKyAgRVhQRUNUX0dUKG51bUJhbmRzLCAwKTsKK30KKworVEVTVF9GKEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldExldmVsUmFuZ2UpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEVxdWFsaXplciBlZmZlY3QgcmVwb3J0cyBhZGVxdWF0ZSBiYW5kIGxldmVsIHJhbmdlIik7CisgIGludDE2X3QgbWluTGV2ZWwgPSAweDdmZmYsIG1heExldmVsID0gMDsKKyAgZ2V0TGV2ZWxSYW5nZSgmbWluTGV2ZWwsICZtYXhMZXZlbCk7CisgIEVYUEVDVF9HVChtYXhMZXZlbCwgbWluTGV2ZWwpOworfQorCitURVNUX0YoRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0U2V0QmFuZExldmVsKSB7CisgIGRlc2NyaXB0aW9uKAorICAgICAgIlZlcmlmeSB0aGF0IG1hbmlwdWxhdGluZyBiYW5kIGxldmVscyB3b3JrcyBmb3IgRXF1YWxpemVyIGVmZmVjdCIpOworICB1aW50MTZfdCBudW1CYW5kcyA9IDA7CisgIGdldE51bUJhbmRzKCZudW1CYW5kcyk7CisgIEFTU0VSVF9HVChudW1CYW5kcywgMCk7CisgIGludDE2X3QgbGV2ZWxzWzNdezB4N2ZmZiwgMCwgMH07CisgIGdldExldmVsUmFuZ2UoJmxldmVsc1swXSwgJmxldmVsc1syXSk7CisgIEFTU0VSVF9HVChsZXZlbHNbMl0sIGxldmVsc1swXSk7CisgIGxldmVsc1sxXSA9IChsZXZlbHNbMl0gKyBsZXZlbHNbMF0pIC8gMjsKKyAgZm9yICh1aW50MTZfdCBpID0gMDsgaSA8IG51bUJhbmRzOyArK2kpIHsKKyAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IEFSUkFZX1NJWkUobGV2ZWxzKTsgKytqKSB7CisgICAgICBSZXR1cm48UmVzdWx0PiByZXQgPSBlcXVhbGl6ZXItPnNldEJhbmRMZXZlbChpLCBsZXZlbHNbal0pOworICAgICAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0KTsKKyAgICAgIFJlc3VsdCByZXR2YWwgPSBSZXN1bHQ6Ok5PVF9JTklUSUFMSVpFRDsKKyAgICAgIGludDE2X3QgYWN0dWFsTGV2ZWw7CisgICAgICBSZXR1cm48dm9pZD4gcmV0MiA9IGVxdWFsaXplci0+Z2V0QmFuZExldmVsKGksIFsmXShSZXN1bHQgciwgaW50MTZfdCBsKSB7CisgICAgICAgIHJldHZhbCA9IHI7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgIGFjdHVhbExldmVsID0gbDsKKyAgICAgICAgfQorICAgICAgfSk7CisgICAgICBFWFBFQ1RfVFJVRShyZXQyLmlzT2soKSk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgICAgIEVYUEVDVF9FUShsZXZlbHNbal0sIGFjdHVhbExldmVsKTsKKyAgICB9CisgIH0KK30KKworVEVTVF9GKEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldEJhbmRDZW50ZXJGcmVxdWVuY3lBbmRSYW5nZSkgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBFcXVhbGl6ZXIgZWZmZWN0IHJlcG9ydHMgYWRlcXVhdGUgYmFuZCBmcmVxdWVuY3kgcmFuZ2UiKTsKKyAgdWludDE2X3QgbnVtQmFuZHMgPSAwOworICBnZXROdW1CYW5kcygmbnVtQmFuZHMpOworICBBU1NFUlRfR1QobnVtQmFuZHMsIDApOworICBmb3IgKHVpbnQxNl90IGkgPSAwOyBpIDwgbnVtQmFuZHM7ICsraSkgeworICAgIHVpbnQzMl90IG1pbkZyZXEgPSAweGZmZmZmZmZmLCBjZW50ZXJGcmVxID0gMHhmZmZmZmZmZiwKKyAgICAgICAgICAgICBtYXhGcmVxID0gMHhmZmZmZmZmZjsKKyAgICBnZXRCYW5kRnJlcXVlbmN5UmFuZ2UoaSwgJm1pbkZyZXEsICZjZW50ZXJGcmVxLCAmbWF4RnJlcSk7CisgICAgLy8gTm90ZTogTlhQIGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiByZXBvcnRzICIxIiBhcyB1cHBlciBib3VuZCBmb3IgbGFzdCBiYW5kLAorICAgIC8vIHNvIHRoaXMgY2hlY2sgZmFpbHMuCisgICAgRVhQRUNUX0dFKG1heEZyZXEsIGNlbnRlckZyZXEpOworICAgIEVYUEVDVF9HRShjZW50ZXJGcmVxLCBtaW5GcmVxKTsKKyAgfQorfQorCitURVNUX0YoRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0QmFuZEZvckZyZXF1ZW5jeSkgeworICBkZXNjcmlwdGlvbigKKyAgICAgICJWZXJpZnkgdGhhdCBFcXVhbGl6ZXIgZWZmZWN0IHN1cHBvcnRzIEdldEJhbmRGb3JGcmVxdWVuY3kgY29ycmVjdGx5Iik7CisgIHVpbnQxNl90IG51bUJhbmRzID0gMDsKKyAgZ2V0TnVtQmFuZHMoJm51bUJhbmRzKTsKKyAgQVNTRVJUX0dUKG51bUJhbmRzLCAwKTsKKyAgZm9yICh1aW50MTZfdCBpID0gMDsgaSA8IG51bUJhbmRzOyArK2kpIHsKKyAgICB1aW50MzJfdCBmcmVxc1szXXswLCAwLCAwfTsKKyAgICBnZXRCYW5kRnJlcXVlbmN5UmFuZ2UoaSwgJmZyZXFzWzBdLCAmZnJlcXNbMV0sICZmcmVxc1syXSk7CisgICAgLy8gTlhQIGxlZ2FjeSBpbXBsZW1lbnRhdGlvbiByZXBvcnRzICIxIiBhcyB1cHBlciBib3VuZCBmb3IgbGFzdCBiYW5kLCBzb21lCisgICAgLy8gb2YgdGhlIGNoZWNrcyBmYWlsLgorICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgQVJSQVlfU0laRShmcmVxcyk7ICsraikgeworICAgICAgaWYgKGogPT0gMCkgeworICAgICAgICBmcmVxc1tqXSsrOworICAgICAgfSAgLy8gTWluIGZyZXF1ZW5jeSBpcyBhbiBvcGVuIGludGVydmFsLgorICAgICAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgICAgdWludDE2X3QgYWN0dWFsQmFuZCA9IG51bUJhbmRzICsgMTsKKyAgICAgIFJldHVybjx2b2lkPiByZXQgPQorICAgICAgICAgIGVxdWFsaXplci0+Z2V0QmFuZEZvckZyZXF1ZW5jeShmcmVxc1tqXSwgWyZdKFJlc3VsdCByLCB1aW50MTZfdCBiKSB7CisgICAgICAgICAgICByZXR2YWwgPSByOworICAgICAgICAgICAgaWYgKHJldHZhbCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgICAgIGFjdHVhbEJhbmQgPSBiOworICAgICAgICAgICAgfQorICAgICAgICAgIH0pOworICAgICAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgICAgIEVYUEVDVF9FUShpLCBhY3R1YWxCYW5kKSA8PCAiRnJlcXVlbmN5OiAiIDw8IGZyZXFzW2pdOworICAgIH0KKyAgfQorfQorCitURVNUX0YoRXF1YWxpemVyQXVkaW9FZmZlY3RIaWRsVGVzdCwgR2V0UHJlc2V0TmFtZXMpIHsKKyAgZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IEVxdWFsaXplciBlZmZlY3QgcmVwb3J0cyBhdCBsZWFzdCBvbmUgcHJlc2V0Iik7CisgIHNpemVfdCBwcmVzZXRDb3VudDsKKyAgZ2V0UHJlc2V0Q291bnQoJnByZXNldENvdW50KTsKKyAgRVhQRUNUX0dUKHByZXNldENvdW50LCAwdSk7Cit9CisKK1RFU1RfRihFcXVhbGl6ZXJBdWRpb0VmZmVjdEhpZGxUZXN0LCBHZXRTZXRDdXJyZW50UHJlc2V0KSB7CisgIGRlc2NyaXB0aW9uKAorICAgICAgIlZlcmlmeSB0aGF0IG1hbmlwdWxhdGluZyB0aGUgY3VycmVudCBwcmVzZXQgZm9yIEVxdWFsaXplciBlZmZlY3QiKTsKKyAgc2l6ZV90IHByZXNldENvdW50OworICBnZXRQcmVzZXRDb3VudCgmcHJlc2V0Q291bnQpOworICBBU1NFUlRfR1QocHJlc2V0Q291bnQsIDB1KTsKKyAgZm9yICh1aW50MTZfdCBpID0gMDsgaSA8IHByZXNldENvdW50OyArK2kpIHsKKyAgICBSZXR1cm48UmVzdWx0PiByZXQgPSBlcXVhbGl6ZXItPnNldEN1cnJlbnRQcmVzZXQoaSk7CisgICAgRVhQRUNUX1RSVUUocmV0LmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgICAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworICAgIHVpbnQxNl90IGFjdHVhbFByZXNldCA9IDB4ZmZmZjsKKyAgICBSZXR1cm48dm9pZD4gcmV0MiA9IGVxdWFsaXplci0+Z2V0Q3VycmVudFByZXNldChbJl0oUmVzdWx0IHIsIHVpbnQxNl90IHApIHsKKyAgICAgIHJldHZhbCA9IHI7CisgICAgICBpZiAocmV0dmFsID09IFJlc3VsdDo6T0spIHsKKyAgICAgICAgYWN0dWFsUHJlc2V0ID0gcDsKKyAgICAgIH0KKyAgICB9KTsKKyAgICBFWFBFQ1RfVFJVRShyZXQyLmlzT2soKSk7CisgICAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgICAgRVhQRUNUX0VRKGksIGFjdHVhbFByZXNldCk7CisgIH0KK30KKworVEVTVF9GKEVxdWFsaXplckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldFNldEFsbFByb3BlcnRpZXMpIHsKKyAgZGVzY3JpcHRpb24oCisgICAgICAiVmVyaWZ5IHRoYXQgc2V0dGluZyBiYW5kIGxldmVscyBhbmQgcHJlc2V0cyB3b3JrcyB2aWEgR2V0IC8gIgorICAgICAgIlNldEFsbFByb3BlcnRpZXMgZm9yIEVxdWFsaXplciBlZmZlY3QiKTsKKyAgdXNpbmcgQWxsUHJvcGVydGllcyA9CisgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmVmZmVjdDo6VjJfMDo6SUVxdWFsaXplckVmZmVjdDo6QWxsUHJvcGVydGllczsKKyAgdWludDE2X3QgbnVtQmFuZHMgPSAwOworICBnZXROdW1CYW5kcygmbnVtQmFuZHMpOworICBBU1NFUlRfR1QobnVtQmFuZHMsIDApOworICBBbGxQcm9wZXJ0aWVzIHByb3BzOworICBwcm9wcy5iYW5kTGV2ZWxzLnJlc2l6ZShudW1CYW5kcyk7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtQmFuZHM7ICsraSkgeworICAgIHByb3BzLmJhbmRMZXZlbHNbaV0gPSAwOworICB9CisKKyAgQWxsUHJvcGVydGllcyBhY3R1YWxQcm9wczsKKyAgUmVzdWx0IHJldHZhbCA9IFJlc3VsdDo6Tk9UX0lOSVRJQUxJWkVEOworCisgIC8vIFZlcmlmeSBzZXR0aW5nIG9mIHRoZSBiYW5kIGxldmVscyB2aWEgcHJvcGVydGllcy4KKyAgcHJvcHMuY3VyUHJlc2V0ID0gLTE7CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVxdWFsaXplci0+c2V0QWxsUHJvcGVydGllcyhwcm9wcyk7CisgIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0KTsKKyAgUmV0dXJuPHZvaWQ+IHJldDIgPQorICAgICAgZXF1YWxpemVyLT5nZXRBbGxQcm9wZXJ0aWVzKFsmXShSZXN1bHQgciwgQWxsUHJvcGVydGllcyBwKSB7CisgICAgICAgIHJldHZhbCA9IHI7CisgICAgICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgIGFjdHVhbFByb3BzID0gcDsKKyAgICAgICAgfQorICAgICAgfSk7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIEVYUEVDVF9FUShwcm9wcy5iYW5kTGV2ZWxzLCBhY3R1YWxQcm9wcy5iYW5kTGV2ZWxzKTsKKworICAvLyBWZXJpZnkgc2V0dGluZyBvZiB0aGUgY3VycmVudCBwcmVzZXQgdmlhIHByb3BlcnRpZXMuCisgIHByb3BzLmN1clByZXNldCA9IDA7ICAvLyBBc3N1bWluZyB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcHJlc2V0LgorICByZXQgPSBlcXVhbGl6ZXItPnNldEFsbFByb3BlcnRpZXMocHJvcHMpOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgIHJldDIgPSBlcXVhbGl6ZXItPmdldEFsbFByb3BlcnRpZXMoWyZdKFJlc3VsdCByLCBBbGxQcm9wZXJ0aWVzIHApIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgYWN0dWFsUHJvcHMgPSBwOworICAgIH0KKyAgfSk7CisgIEVYUEVDVF9UUlVFKHJldDIuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldHZhbCk7CisgIEVYUEVDVF9FUShwcm9wcy5jdXJQcmVzZXQsIGFjdHVhbFByb3BzLmN1clByZXNldCk7Cit9CisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIEVxdWFsaXplciBBdWRpbyBFZmZlY3QgSElETCBIQUwuCitjbGFzcyBMb3VkbmVzc0VuaGFuY2VyQXVkaW9FZmZlY3RIaWRsVGVzdCA6IHB1YmxpYyBBdWRpb0VmZmVjdEhpZGxUZXN0IHsKKyBwdWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgQXVkaW9FZmZlY3RIaWRsVGVzdDo6U2V0VXAoKTsKKyAgICBlbmhhbmNlciA9IElMb3VkbmVzc0VuaGFuY2VyRWZmZWN0OjpjYXN0RnJvbShlZmZlY3QpOworICAgIEFTU0VSVF9ORShudWxscHRyLCBlbmhhbmNlci5nZXQoKSk7CisgIH0KKworIHByb3RlY3RlZDoKKyAgVXVpZCBnZXRFZmZlY3RUeXBlKCkgb3ZlcnJpZGUgeyByZXR1cm4gTE9VRE5FU1NfRU5IQU5DRVJfRUZGRUNUX1RZUEU7IH0KKworICBzcDxJTG91ZG5lc3NFbmhhbmNlckVmZmVjdD4gZW5oYW5jZXI7Cit9OworCitURVNUX0YoTG91ZG5lc3NFbmhhbmNlckF1ZGlvRWZmZWN0SGlkbFRlc3QsIEdldFNldFRhcmdldEdhaW4pIHsKKyAgZGVzY3JpcHRpb24oCisgICAgICAiVmVyaWZ5IHRoYXQgbWFuaXB1bGF0aW5nIHRoZSB0YXJnZXQgZ2FpbiB3b3JrcyBmb3IgTG91ZG5lc3MgRW5oYW5jZXIgIgorICAgICAgImVmZmVjdCIpOworICBjb25zdCBpbnQzMl90IGdhaW4gPSAxMDA7CisgIFJldHVybjxSZXN1bHQ+IHJldCA9IGVuaGFuY2VyLT5zZXRUYXJnZXRHYWluKGdhaW4pOworICBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6T0ssIHJldCk7CisgIGludDMyX3QgYWN0dWFsR2FpbiA9IDA7CisgIFJlc3VsdCByZXR2YWw7CisgIFJldHVybjx2b2lkPiByZXQyID0gZW5oYW5jZXItPmdldFRhcmdldEdhaW4oWyZdKFJlc3VsdCByLCBpbnQzMl90IGcpIHsKKyAgICByZXR2YWwgPSByOworICAgIGlmIChyZXR2YWwgPT0gUmVzdWx0OjpPSykgeworICAgICAgYWN0dWFsR2FpbiA9IGc7CisgICAgfQorICB9KTsKKyAgRVhQRUNUX1RSVUUocmV0Mi5pc09rKCkpOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmV0dmFsKTsKKyAgRVhQRUNUX0VRKGdhaW4sIGFjdHVhbEdhaW4pOworfQpkaWZmIC0tZ2l0IGEvYXVkaW8vZWZmZWN0L0FuZHJvaWQubWsgYi9hdWRpby9lZmZlY3QvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvYXVkaW8vZWZmZWN0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvQW5kcm9pZC5icCBiL2F1dG9tb3RpdmUvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWM4ODY1Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsOCBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiZXZzLzEuMCIsCisgICAgImV2cy8xLjAvZGVmYXVsdCIsCisgICAgImV2cy8xLjAvdnRzL2Z1bmN0aW9uYWwiLAorICAgICJ2ZWhpY2xlLzIuMCIsCisgICAgInZlaGljbGUvMi4xIiwKK10KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9BbmRyb2lkLmJwIGIvYXV0b21vdGl2ZS9ldnMvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWNhOTdhNwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsODQgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUV2c0NhbWVyYS5oYWwiLAorICAgICAgICAiSUV2c0NhbWVyYVN0cmVhbS5oYWwiLAorICAgICAgICAiSUV2c0Rpc3BsYXkuaGFsIiwKKyAgICAgICAgIklFdnNFbnVtZXJhdG9yLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvRXZzQ2FtZXJhQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9FdnNDYW1lcmFTdHJlYW1BbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0V2c0Rpc3BsYXlBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0V2c0VudW1lcmF0b3JBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lId0V2c0NhbWVyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JuSHdFdnNDYW1lcmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9CcEh3RXZzQ2FtZXJhLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQnNFdnNDYW1lcmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhU3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUh3RXZzQ2FtZXJhU3RyZWFtLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQm5Id0V2c0NhbWVyYVN0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JwSHdFdnNDYW1lcmFTdHJlYW0uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9Cc0V2c0NhbWVyYVN0cmVhbS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNEaXNwbGF5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvSUh3RXZzRGlzcGxheS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JuSHdFdnNEaXNwbGF5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQnBId0V2c0Rpc3BsYXkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9Cc0V2c0Rpc3BsYXkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRW51bWVyYXRvci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0lId0V2c0VudW1lcmF0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvZXZzLzEuMC9Cbkh3RXZzRW51bWVyYXRvci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS9ldnMvMS4wL0JwSHdFdnNFbnVtZXJhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL2V2cy8xLjAvQnNFdnNFbnVtZXJhdG9yLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhLmhhbCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmNhZjkyCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNDYW1lcmEuaGFsCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOworCitpbXBvcnQgdHlwZXM7CitpbXBvcnQgSUV2c0NhbWVyYVN0cmVhbTsKKworCisvKioKKyAqIFJlcHJlc2VudHMgYSBzaW5nbGUgY2FtZXJhIGFuZCBpcyB0aGUgcHJpbWFyeSBpbnRlcmZhY2UgZm9yIGNhcHR1cmluZyBpbWFnZXMuCisgKi8KK2ludGVyZmFjZSBJRXZzQ2FtZXJhIHsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIElEIG9mIHRoaXMgY2FtZXJhLgorICAgICAqCisgICAgICogUmV0dXJucyB0aGUgZGVzY3JpcHRpb24gb2YgdGhpcyBjYW1lcmEuIFRoaXMgbXVzdCBiZSB0aGUgc2FtZSB2YWx1ZSBhcyByZXBvcnRlZAorICAgICAqIGJ5IEV2c0VudW1lcmF0b3I6OmdldENhbWVyTGlzdCgpLgorICAgICAqLworICAgIGdldENhbWVyYUluZm8oKSBnZW5lcmF0ZXMgKENhbWVyYURlc2MgaW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBTcGVjaWZpZXMgdGhlIGRlcHRoIG9mIHRoZSBidWZmZXIgY2hhaW4gdGhlIGNhbWVyYSBpcyBhc2tlZCB0byBzdXBwb3J0LgorICAgICAqCisgICAgICogVXAgdG8gdGhpcyBtYW55IGZyYW1lcyBtYXkgYmUgaGVsZCBjb25jdXJyZW50bHkgYnkgdGhlIGNsaWVudCBvZiBJRXZzQ2FtZXJhLgorICAgICAqIElmIHRoaXMgbWFueSBmcmFtZXMgaGF2ZSBiZWVuIGRlbGl2ZXJlZCB0byB0aGUgcmVjZWl2ZXIgd2l0aG91dCBiZWluZyByZXR1cm5lZAorICAgICAqIGJ5IGRvbmVXaXRoRnJhbWUsIHRoZSBzdHJlYW0gbXVzdCBza2lwIGZyYW1lcyB1bnRpbCBhIGJ1ZmZlciBpcyByZXR1cm5lZCBmb3IgcmV1c2UuCisgICAgICogSXQgaXMgbGVnYWwgZm9yIHRoaXMgY2FsbCB0byBjb21lIGF0IGFueSB0aW1lLCBldmVuIHdoaWxlIHN0cmVhbXMgYXJlIGFscmVhZHkgcnVubmluZywKKyAgICAgKiBpbiB3aGljaCBjYXNlIGJ1ZmZlcnMgc2hvdWxkIGJlIGFkZGVkIG9yIHJlbW92ZWQgZnJvbSB0aGUgY2hhaW4gYXMgYXBwcm9wcmlhdGUuCisgICAgICogSWYgbm8gY2FsbCBpcyBtYWRlIHRvIHRoaXMgZW50cnkgcG9pbnQsIHRoZSBJRXZzQ2FtZXJhIG11c3Qgc3VwcG9ydCBhdCBsZWFzdCBvbmUKKyAgICAgKiBmcmFtZSBieSBkZWZhdWx0LiBNb3JlIGlzIGFjY2VwdGFibGUuCisgICAgICogQlVGRkVSX05PVF9BVkFJTEFCTEUgaXMgcmV0dXJuZWQgaWYgdGhlIGltcGxlbWVudGF0aW9uIGNhbm5vdCBzdXBwb3J0IHRoZQorICAgICAqIHJlcXVlc3RlZCBudW1iZXIgb2YgY29uY3VycmVudCBmcmFtZXMuCisgICAgICovCisgICAgc2V0TWF4RnJhbWVzSW5GbGlnaHQodWludDMyX3QgYnVmZmVyQ291bnQpIGdlbmVyYXRlcyAoRXZzUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBSZXF1ZXN0IGRlbGl2ZXJ5IG9mIEVWUyBjYW1lcmEgZnJhbWVzIGZyb20gdGhpcyBjYW1lcmEuCisgICAgICoKKyAgICAgKiBUaGUgSUV2c0NhbWVyYVN0cmVhbSBtdXN0IGJlZ2luIHJlY2VpdmluZyBwZXJpb2RpYyBjYWxscyB3aXRoIG5ldyBpbWFnZQorICAgICAqIGZyYW1lcyB1bnRpbCBzdG9wVmlkZW9TdHJlYW0oKSBpcyBjYWxsZWQuCisgICAgICovCisgICAgc3RhcnRWaWRlb1N0cmVhbShJRXZzQ2FtZXJhU3RyZWFtIHJlY2VpdmVyKSBnZW5lcmF0ZXMgKEV2c1Jlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgZnJhbWUgdGhhdCB3YXMgZGVsaXZlcmVkIGJ5IHRvIHRoZSBJRXZzQ2FtZXJhU3RyZWFtLgorICAgICAqCisgICAgICogV2hlbiBkb25lIGNvbnN1bWluZyBhIGZyYW1lIGRlbGl2ZXJlZCB0byB0aGUgSUV2c0NhbWVyYVN0cmVhbQorICAgICAqIGludGVyZmFjZSwgaXQgbXVzdCBiZSByZXR1cm5lZCB0byB0aGUgSUV2c0NhbWVyYSBmb3IgcmV1c2UuCisgICAgICogQSBzbWFsbCwgZmluaXRlIG51bWJlciBvZiBidWZmZXJzIGFyZSBhdmFpbGFibGUgKHBvc3NpYmx5IGFzIHNtYWxsCisgICAgICogYXMgb25lKSwgYW5kIGlmIHRoZSBzdXBwbHkgaXMgZXhoYXVzdGVkLCBubyBmdXJ0aGVyIGZyYW1lcyBtYXkgYmUKKyAgICAgKiBkZWxpdmVyZWQgdW50aWwgYSBidWZmZXIgaXMgcmV0dXJuZWQuCisgICAgICovCisgICAgb25ld2F5IGRvbmVXaXRoRnJhbWUoQnVmZmVyRGVzYyBidWZmZXIpOworCisgICAgLyoqCisgICAgICogU3RvcCB0aGUgZGVsaXZlcnkgb2YgRVZTIGNhbWVyYSBmcmFtZXMuCisgICAgICoKKyAgICAgKiBCZWNhdXNlIGRlbGl2ZXJ5IGlzIGFzeW5jaHJvbm91cywgZnJhbWVzIG1heSBjb250aW51ZSB0byBhcnJpdmUgZm9yCisgICAgICogc29tZSB0aW1lIGFmdGVyIHRoaXMgY2FsbCByZXR1cm5zLiBFYWNoIG11c3QgYmUgcmV0dXJuZWQgdW50aWwgdGhlCisgICAgICogY2xvc3VyZSBvZiB0aGUgc3RyZWFtIGlzIHNpZ25hbGVkIHRvIHRoZSBJRXZzQ2FtZXJhU3RyZWFtLgorICAgICAqIFRoaXMgZnVuY3Rpb24gY2Fubm90IGZhaWwgYW5kIGlzIHNpbXBseSBpZ25vcmVkIGlmIHRoZSBzdHJlYW0gaXNuJ3QgcnVubmluZy4KKyAgICAgKi8KKyAgICBzdG9wVmlkZW9TdHJlYW0oKTsKKworICAgIC8qKgorICAgICAqIFJlcXVlc3QgZHJpdmVyIHNwZWNpZmljIGluZm9ybWF0aW9uIGZyb20gdGhlIEhBTCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKgorICAgICAqIFRoZSB2YWx1ZXMgYWxsb3dlZCBmb3Igb3BhcXVlSWRlbnRpZmllciBhcmUgZHJpdmVyIHNwZWNpZmljLAorICAgICAqIGJ1dCBubyB2YWx1ZSBwYXNzZWQgaW4gbWF5IGNyYXNoIHRoZSBkcml2ZXIuIFRoZSBkcml2ZXIgc2hvdWxkCisgICAgICogcmV0dXJuIDAgZm9yIGFueSB1bnJlY29nbml6ZWQgb3BhcXVlSWRlbnRpZmllci4KKyAgICAgKi8KKyAgICBnZXRFeHRlbmRlZEluZm8odWludDMyX3Qgb3BhcXVlSWRlbnRpZmllcikgZ2VuZXJhdGVzIChpbnQzMl90IHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBkcml2ZXIgc3BlY2lmaWMgdmFsdWUgdG8gdGhlIEhBTCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKgorICAgICAqIFRoaXMgZXh0ZW5zaW9uIGlzIHByb3ZpZGVkIHRvIGZhY2lsaXRhdGUgY2FyIHNwZWNpZmljCisgICAgICogZXh0ZW5zaW9ucywgYnV0IG5vIEhBTCBpbXBsZW1lbnRhdGlvbiBtYXkgcmVxdWlyZSB0aGlzIGNhbGwKKyAgICAgKiBpbiBvcmRlciB0byBmdW5jdGlvbiBpbiBhIGRlZmF1bHQgc3RhdGUuCisgICAgICogSU5WQUxJRF9BUkcgaXMgcmV0dXJuZWQgaWYgdGhlIG9wYXF1ZVZhbHVlIGlzIG5vdCBtZWFuaW5nZnVsIHRvCisgICAgICogdGhlIGRyaXZlciBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKi8KKyAgICBzZXRFeHRlbmRlZEluZm8odWludDMyX3Qgb3BhcXVlSWRlbnRpZmllciwgaW50MzJfdCBvcGFxdWVWYWx1ZSkgZ2VuZXJhdGVzIChFdnNSZXN1bHQgcmVzdWx0KTsKK307CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYVN0cmVhbS5oYWwgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0NhbWVyYVN0cmVhbS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU3NDNiMgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzQ2FtZXJhU3RyZWFtLmhhbApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDsKKworCisvKioKKyAqIEltcGxlbWVudGVkIG9uIGNsaWVudCBzaWRlIHRvIHJlY2VpdmUgYXN5bmNocm9ub3VzIHZpZGVvIGZyYW1lIGRlbGl2ZXJpZXMuCisgKi8KK2ludGVyZmFjZSBJRXZzQ2FtZXJhU3RyZWFtIHsKKworICAgIC8qKgorICAgICAqIFJlY2VpdmVzIGNhbGxzIGZyb20gdGhlIEhBTCBlYWNoIHRpbWUgYSB2aWRlbyBmcmFtZSBpcyByZWFkeSBmb3IgaW5zcGVjdGlvbi4KKyAgICAgKiBCdWZmZXIgaGFuZGxlcyByZWNlaXZlZCBieSB0aGlzIG1ldGhvZCBtdXN0IGJlIHJldHVybmVkIHZpYSBjYWxscyB0bworICAgICAqIElFdnNDYW1lcmE6OmRvbmVXaXRoRnJhbWUoKS4gV2hlbiB0aGUgdmlkZW8gc3RyZWFtIGlzIHN0b3BwZWQgdmlhIGEgY2FsbAorICAgICAqIHRvIElFdnNDYW1lcmE6OnN0b3BWaWRlb1N0cmVhbSgpLCB0aGlzIGNhbGxiYWNrIG1heSBjb250aW51ZSB0byBoYXBwZW4gZm9yCisgICAgICogc29tZSB0aW1lIGFzIHRoZSBwaXBlbGluZSBkcmFpbnMuIEVhY2ggZnJhbWUgbXVzdCBzdGlsbCBiZSByZXR1cm5lZC4KKyAgICAgKiBXaGVuIHRoZSBsYXN0IGZyYW1lIGluIHRoZSBzdHJlYW0gaGFzIGJlZW4gZGVsaXZlcmVkLCBhIE5VTEwgYnVmZmVySGFuZGxlCisgICAgICogbXVzdCBiZSBkZWxpdmVyZWQsIHNpZ25pZnlpbmcgdGhlIGVuZCBvZiB0aGUgc3RyZWFtLiBObyBmdXJ0aGVyIGZyYW1lCisgICAgICogZGVsaXZlcmllcyBtYXkgaGFwcGVuIHRoZXJlYWZ0ZXIuCisgICAgICovCisgICAgb25ld2F5IGRlbGl2ZXJGcmFtZShCdWZmZXJEZXNjIGJ1ZmZlcik7Cit9OwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS9ldnMvMS4wL0lFdnNEaXNwbGF5LmhhbCBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRGlzcGxheS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI1NDFmMwotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRGlzcGxheS5oYWwKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjA7CisKK2ltcG9ydCB0eXBlczsKKworCisvKioKKyAqIFJlcHJlc2VudHMgYSBzaW5nbGUgY2FtZXJhIGFuZCBpcyB0aGUgcHJpbWFyeSBpbnRlcmZhY2UgZm9yIGNhcHR1cmluZyBpbWFnZXMuCisgKi8KK2ludGVyZmFjZSBJRXZzRGlzcGxheSB7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBFVlMgZGlzcGxheSBwcm92aWRlZCBieSB0aGUgc3lzdGVtLgorICAgICAqCisgICAgICogU2VlIHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgRGlzcGxheURlc2Mgc3RydWN0dXJlIGZvciBkZXRhaWxzLgorICAgICAqLworICAgICBnZXREaXNwbGF5SW5mbygpIGdlbmVyYXRlcyAoRGlzcGxheURlc2MgaW5mbyk7CisKKworICAgIC8qKgorICAgICAqIENsaWVudHMgbWF5IHNldCB0aGUgZGlzcGxheSBzdGF0ZSB0byBleHByZXNzIHRoZWlyIGRlc2lyZWQgc3RhdGUuCisgICAgICoKKyAgICAgKiBUaGUgSEFMIGltcGxlbWVudGF0aW9uIG11c3QgZ3JhY2VmdWxseSBhY2NlcHQgYSByZXF1ZXN0IGZvciBhbnkgc3RhdGUgd2hpbGUgaW4KKyAgICAgKiBhbnkgb3RoZXIgc3RhdGUsIGFsdGhvdWdoIHRoZSByZXNwb25zZSBtYXkgYmUgdG8gZGVmZXIgb3IgaWdub3JlIHRoZSByZXF1ZXN0LiBUaGUgZGlzcGxheQorICAgICAqIGlzIGRlZmluZWQgdG8gc3RhcnQgaW4gdGhlIE5PVF9WSVNJQkxFIHN0YXRlIHVwb24gaW5pdGlhbGl6YXRpb24uIFRoZSBjbGllbnQgaXMKKyAgICAgKiB0aGVuIGV4cGVjdGVkIHRvIHJlcXVlc3QgdGhlIFZJU0lCTEVfT05fTkVYVF9GUkFNRSBzdGF0ZSwgYW5kIHRoZW4gYmVnaW4gcHJvdmlkaW5nCisgICAgICogdmlkZW8uIFdoZW4gdGhlIGRpc3BsYXkgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLCB0aGUgY2xpZW50IGlzIGV4cGVjdGVkIHRvIHJlcXVlc3QKKyAgICAgKiB0aGUgTk9UX1ZJU0lCTEUgc3RhdGUgYWZ0ZXIgcGFzc2luZyB0aGUgbGFzdCB2aWRlbyBmcmFtZS4KKyAgICAgKiBSZXR1cm5zIElOVkFMSURfQVJHIGlmIHRoZSByZXF1ZXN0ZWQgc3RhdGUgaXMgbm90IGEgcmVjb2duaXplZCB2YWx1ZS4KKyAgICAgKi8KKyAgICAgc2V0RGlzcGxheVN0YXRlKERpc3BsYXlTdGF0ZSBzdGF0ZSkgZ2VuZXJhdGVzIChFdnNSZXN1bHQgcmVzdWx0KTsKKworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsIHJlcXVlc3RzIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBkaXNwbGF5CisgICAgICoKKyAgICAgKiBUaGUgSEFMIGltcGxlbWVudGF0aW9uIHNob3VsZCByZXBvcnQgdGhlIGFjdHVhbCBjdXJyZW50IHN0YXRlLCB3aGljaCBtaWdodAorICAgICAqIHRyYW5zaWVudGx5IGRpZmZlciBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IHJlcXVlc3RlZCBzdGF0ZS4gTm90ZSwgaG93ZXZlciwgdGhhdAorICAgICAqIHRoZSBsb2dpYyByZXNwb25zaWJsZSBmb3IgY2hhbmdpbmcgZGlzcGxheSBzdGF0ZXMgc2hvdWxkIGdlbmVyYWxseSBsaXZlIGFib3ZlCisgICAgICogdGhlIGRldmljZSBsYXllciwgbWFraW5nIGl0IHVuZGVzaXJhYmxlIGZvciB0aGUgSEFMIGltcGxlbWVudGF0aW9uIHRvIHNwb250YW5lb3VzbHkKKyAgICAgKiBjaGFuZ2UgZGlzcGxheSBzdGF0ZXMuCisgICAgICovCisgICAgIGdldERpc3BsYXlTdGF0ZSgpIGdlbmVyYXRlcyAoRGlzcGxheVN0YXRlIHN0YXRlKTsKKworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsIHJldHVybnMgYSBoYW5kbGUgdG8gYSBmcmFtZSBidWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaXNwbGF5LgorICAgICAqCisgICAgICogVGhlIHJldHVybmVkIGJ1ZmZlciBtYXkgYmUgbG9ja2VkIGFuZCB3cml0dGVuIHRvIGJ5IHNvZnR3YXJlIGFuZC9vciBHTC4gVGhpcyBidWZmZXIKKyAgICAgKiBtdXN0IGJlIHJldHVybmVkIHZpYSBhIGNhbGwgdG8gcmV0dXJuVGFyZ2V0QnVmZmVyRm9yRGlzcGxheSgpIGV2ZW4gaWYgdGhlCisgICAgICogZGlzcGxheSBpcyBubyBsb25nZXIgdmlzaWJsZS4KKyAgICAgKi8KKyAgICAgZ2V0VGFyZ2V0QnVmZmVyKCkgZ2VuZXJhdGVzIChCdWZmZXJEZXNjIGJ1ZmZlcik7CisKKworICAgIC8qKgorICAgICAqIFRoaXMgY2FsbCB0ZWxscyB0aGUgZGlzcGxheSB0aGF0IHRoZSBidWZmZXIgaXMgcmVhZHkgZm9yIGRpc3BsYXkuCisgICAgICoKKyAgICAgKiBUaGUgYnVmZmVyIGlzIG5vIGxvbmdlciB2YWxpZCBmb3IgdXNlIGJ5IHRoZSBjbGllbnQgYWZ0ZXIgdGhpcyBjYWxsLgorICAgICAqIFRoZXJlIGlzIG5vIG1heGltdW0gdGltZSB0aGUgY2FsbGVyIG1heSBob2xkIG9udG8gdGhlIGJ1ZmZlciBiZWZvcmUgbWFraW5nIHRoaXMKKyAgICAgKiBjYWxsLiBUaGUgYnVmZmVyIG1heSBiZSByZXR1cm5lZCBhdCBhbnkgdGltZSBhbmQgaW4gYW55IERpc3BsYXlTdGF0ZSwgYnV0IGFsbAorICAgICAqIGJ1ZmZlcnMgYXJlIGV4cGVjdGVkIHRvIGJlIHJldHVybmVkIGJlZm9yZSB0aGUgSUV2c0Rpc3BsYXkgaW50ZXJmYWNlIGlzIGRlc3Ryb3llZC4KKyAgICAgKi8KKyAgICByZXR1cm5UYXJnZXRCdWZmZXJGb3JEaXNwbGF5KEJ1ZmZlckRlc2MgYnVmZmVyKSBnZW5lcmF0ZXMgKEV2c1Jlc3VsdCByZXN1bHQpOworfTsKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvZXZzLzEuMC9JRXZzRW51bWVyYXRvci5oYWwgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0VudW1lcmF0b3IuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4ZDExN2EKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL2V2cy8xLjAvSUV2c0VudW1lcmF0b3IuaGFsCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOworCitpbXBvcnQgdHlwZXM7CitpbXBvcnQgSUV2c0NhbWVyYTsKK2ltcG9ydCBJRXZzRGlzcGxheTsKKworCisvKioKKyAqIFByb3ZpZGVzIHRoZSBtZWNoYW5pc20gZm9yIEVWUyBjYW1lcmEgZGlzY292ZXJ5CisgKi8KK2ludGVyZmFjZSBJRXZzRW51bWVyYXRvciB7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgRVZTIGNhbWVyYXMgYXZhaWxhYmxlIHRvIHRoZSBzeXN0ZW0KKyAgICAgKi8KKyAgICBnZXRDYW1lcmFMaXN0KCkgZ2VuZXJhdGVzICh2ZWM8Q2FtZXJhRGVzYz4gY2FtZXJhcyk7CisKKyAgICAvKioKKyAgICAgKiBHZXQgdGhlIElFdnNDYW1lcmEgYXNzb2NpYXRlZCB3aXRoIGEgY2FtZXJhSWQgZnJvbSBhIENhbWVyYURlc2MKKyAgICAgKgorICAgICAqIEdpdmVuIGEgY2FtZXJhJ3MgdW5pcXVlIGNhbWVyYUlkIGZyb20gY2EgQ2FtZXJhRGVzYywgcmV0dXJucworICAgICAqIHRoZSBJQ2FtZXJhIGludGVyZmFjZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBjYW1lcmEuCisgICAgICogV2hlbiBkb25lIHVzaW5nIHRoZSBjYW1lcmEsIHRoZSBjYWxsZXIgbWF5IHJlbGVhc2UgaXQgYnkgY2FsbGluZyBjbG9zZUNhbWVyYSgpLgorICAgICAqIFRPRE8oYi8zNjEyMjYzNSkgUmVsaWFuY2Ugb24gdGhlIHNwPD4gZ29pbmcgb3V0IG9mIHNjb3BlIGlzIG5vdCByZWNvbW1lbmRlZCBiZWNhdXNlIHRoZQorICAgICAqIHJlc291cmNlcyBtYXkgbm90IGJlIHJlbGVhc2VkIHJpZ2h0IGF3YXkgZHVlIHRvIGFzeW5jaHJvbm9zIGJlaGF2aW9yIGluIHRoZSBoYXJkd2FyZSBiaW5kZXIuCisgICAgICovCisgICAgb3BlbkNhbWVyYShzdHJpbmcgY2FtZXJhSWQpIGdlbmVyYXRlcyAoSUV2c0NhbWVyYSBjYXJDYW1lcmEpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBzcGVjaWZpZWQgSUV2c0NhbWVyYSBpbnRlcmZhY2UgYXMgbm8gbG9uZ2VyIGluIHVzZQorICAgICAqCisgICAgICogV2hlbiB0aGUgSUV2c0NhbWVyYSBvYmplY3QgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLCBpdCBtdXN0IGJlIHJlbGVhc2VkLgorICAgICAqIE5PVEU6IFZpZGVvIHN0cmVhbWluZyBtdXN0IGJlIGNsZWFubHkgc3RvcHBlZCBiZWZvcmUgbWFraW5nIHRoaXMgY2FsbC4KKyAgICAgKi8KKyAgICBjbG9zZUNhbWVyYShJRXZzQ2FtZXJhIGNhckNhbWVyYSk7CisKKworICAgIC8qKgorICAgICAqIEdldCBleGNsdXNpdmUgYWNjZXNzIHRvIElFdnNEaXNwbGF5IGZvciB0aGUgc3lzdGVtCisgICAgICoKKyAgICAgKiBUaGVyZSBjYW4gYmUgYXQgbW9zdCBvbmUgRVZTIGRpc3BsYXkgb2JqZWN0IGZvciB0aGUgc3lzdGVtIGFuZCB0aGlzIGZ1bmN0aW9uCisgICAgICogcmVxdWVzdHMgYWNjZXNzIHRvIGl0LiBJZiB0aGUgRVZTIGRpc3BsYXkgaXMgbm90IGF2YWlsYWJsZSBvciBpcyBhbHJlYWR5IGluIHVzZSwKKyAgICAgKiBhIG51bGwgcG9pbnRlciBpcyByZXR1cm5lZC4KKyAgICAgKiBXaGVuIGRvbmUgdXNpbmcgdGhlIGRpc3BsYXksIHRoZSBjYWxsZXIgbWF5IHJlbGVhc2UgaXQgYnkgY2FsbGluZyBjbG9zZURpc3BsYXkoKS4KKyAgICAgKiBUT0RPKGIvMzYxMjI2MzUpIFJlbGlhbmNlIG9uIHRoZSBzcDw+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+Y2xvc2VEaXNwbGF5KHBEaXNwbGF5KTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0FuZHJvaWQuYnAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTIxYmVmMAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDcwIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJVmVoaWNsZS5oYWwiLAorICAgICAgICAiSVZlaGljbGVDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvVmVoaWNsZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL1ZlaGljbGVDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JuSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JwSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JzVmVoaWNsZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lId1ZlaGljbGVDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9Cbkh3VmVoaWNsZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0JwSHdWZWhpY2xlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQnNWZWhpY2xlQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQW5kcm9pZC5tayBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjA1ZjM1Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTk1MCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGUtVjIuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXNDb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9TdGF0dXNDb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5TdGF0dXNDb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdWJzY3JpYmVGbGFncykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvU3Vic2NyaWJlRmxhZ3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlN1YnNjcmliZUZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdWJzY3JpYmVPcHRpb25zKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9TdWJzY3JpYmVPcHRpb25zLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5TdWJzY3JpYmVPcHRpb25zCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlckJvb3R1cFJlYXNvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJCb290dXBSZWFzb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyQm9vdHVwUmVhc29uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclNldFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclNldFN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlclNldFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlclN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclN0YXRlQ29uZmlnRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJTdGF0ZUNvbmZpZ0ZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU3RhdGVDb25maWdGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclN0YXRlSW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU3RhdGVJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTdGF0ZUluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXBQb3dlclN0YXRlU2h1dGRvd25QYXJhbSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJTdGF0ZVNodXRkb3duUGFyYW0uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU3RhdGVTaHV0ZG93blBhcmFtCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWEuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYUNvbmZpZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFDb25maWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhQ29uZmlnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYURvb3IpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhRG9vci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFEb29yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYU1pcnJvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFNaXJyb3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhTWlycm9yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYVNlYXQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhU2VhdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFTZWF0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYVdpbmRvdykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFXaW5kb3cuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcmVhV2luZG93CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXJlYVpvbmUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcmVhWm9uZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFab25lCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Db250ZXh0RmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0NvbnRleHRGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Gb2N1c0luZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Gb2N1c0luZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Gb2N1c0luZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Gb2N1c1JlcXVlc3QpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0ZvY3VzUmVxdWVzdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvRm9jdXNSZXF1ZXN0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Gb2N1c1N0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Gb2N1c1N0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Gb2N1c1N0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Id1ZhcmlhbnRDb25maWdGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Id1ZhcmlhbnRDb25maWdGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Id1ZhcmlhbnRDb25maWdGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Sb3V0aW5nUG9saWN5SW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1JvdXRpbmdQb2xpY3lJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvUm91dGluZ1BvbGljeUluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9TdHJlYW0pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1N0cmVhbS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvU3RyZWFtCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9TdHJlYW1GbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9TdHJlYW1GbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9TdHJlYW1GbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvVm9sdW1lQ2FwYWJpbGl0eUZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZUNhcGFiaWxpdHlGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Wb2x1bWVJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvVm9sdW1lSW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZUluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Wb2x1bWVMaW1pdEluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVMaW1pdEluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Wb2x1bWVMaW1pdEluZGV4CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlQXVkaW9Wb2x1bWVTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvVm9sdW1lU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZVN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlRGlzcGxheSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZURpc3BsYXkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVEaXNwbGF5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlRHJpdmluZ1N0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZURyaXZpbmdTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVEcml2aW5nU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlR2VhcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUdlYXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVHZWFyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlSHZhY0ZhbkRpcmVjdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUh2YWNGYW5EaXJlY3Rpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVIdmFjRmFuRGlyZWN0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlSHdLZXlJbnB1dEFjdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUh3S2V5SW5wdXRBY3Rpb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVId0tleUlucHV0QWN0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlSWduaXRpb25TdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUlnbml0aW9uU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVJZ25pdGlvblN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcENvbmZpZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BDb25maWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wQ29uZmlnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcFZhbHVlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcFZhbHVlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcFZhbHVlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHkpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlBY2Nlc3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eUFjY2Vzcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5QWNjZXNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlHcm91cCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5R3JvdXAuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eUdyb3VwCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlPcGVyYXRpb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eU9wZXJhdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5T3BlcmF0aW9uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUHJvcGVydHlUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHlUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlUmFkaW9Db25zdGFudHMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVSYWRpb0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVJhZGlvQ29uc3RhbnRzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlVHVyblNpZ25hbCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVR1cm5TaWduYWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVUdXJuU2lnbmFsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChWZWhpY2xlVW5pdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVVuaXQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVVbml0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChXaGVlbCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvV2hlZWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLldoZWVsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVZlaGljbGUuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL0lWZWhpY2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVmVoaWNsZS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSVZlaGljbGVDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmVoaWNsZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjpJVmVoaWNsZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZlaGljbGUuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElWZWhpY2xlQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL0lWZWhpY2xlQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OklWZWhpY2xlQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZS1WMi4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1c0NvZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1N0YXR1c0NvZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlN0YXR1c0NvZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN1YnNjcmliZUZsYWdzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9TdWJzY3JpYmVGbGFncy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuU3Vic2NyaWJlRmxhZ3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN1YnNjcmliZU9wdGlvbnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1N1YnNjcmliZU9wdGlvbnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlN1YnNjcmliZU9wdGlvbnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyQm9vdHVwUmVhc29uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlckJvb3R1cFJlYXNvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJCb290dXBSZWFzb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU2V0U3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU2V0U3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU2V0U3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBcFBvd2VyU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBcFBvd2VyU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGVDb25maWdGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclN0YXRlQ29uZmlnRmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTdGF0ZUNvbmZpZ0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGVJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFwUG93ZXJTdGF0ZUluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXBQb3dlclN0YXRlSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcFBvd2VyU3RhdGVTaHV0ZG93blBhcmFtKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXBQb3dlclN0YXRlU2h1dGRvd25QYXJhbS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFwUG93ZXJTdGF0ZVNodXRkb3duUGFyYW0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWEKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhQ29uZmlnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYUNvbmZpZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFDb25maWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhRG9vcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFEb29yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYURvb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhTWlycm9yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYU1pcnJvci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFNaXJyb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhU2VhdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFTZWF0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYVNlYXQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhV2luZG93KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXJlYVdpbmRvdy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUFyZWFXaW5kb3cKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBcmVhWm9uZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUFyZWFab25lLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXJlYVpvbmUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0NvbnRleHRGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Db250ZXh0RmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0ZvY3VzSW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0ZvY3VzSW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0ZvY3VzSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0ZvY3VzUmVxdWVzdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvRm9jdXNSZXF1ZXN0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Gb2N1c1JlcXVlc3QKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0ZvY3VzU3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0ZvY3VzU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0ZvY3VzU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1JvdXRpbmdQb2xpY3lJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvUm91dGluZ1BvbGljeUluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9Sb3V0aW5nUG9saWN5SW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1N0cmVhbSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZUF1ZGlvU3RyZWFtLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlQXVkaW9TdHJlYW0KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1N0cmVhbUZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1N0cmVhbUZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1N0cmVhbUZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZUNhcGFiaWxpdHlGbGFnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lQ2FwYWJpbGl0eUZsYWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZUluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVBdWRpb1ZvbHVtZUxpbWl0SW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVBdWRpb1ZvbHVtZVN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlQXVkaW9Wb2x1bWVTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUF1ZGlvVm9sdW1lU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVEaXNwbGF5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlRGlzcGxheS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZURpc3BsYXkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVEcml2aW5nU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlRHJpdmluZ1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZURyaXZpbmdTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVHZWFyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlR2Vhci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUdlYXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVIdmFjRmFuRGlyZWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSHZhY0ZhbkRpcmVjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUh2YWNGYW5EaXJlY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVId0tleUlucHV0QWN0aW9uKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSHdLZXlJbnB1dEFjdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUh3S2V5SW5wdXRBY3Rpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVJZ25pdGlvblN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlSWduaXRpb25TdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZUlnbml0aW9uU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVJbnN0cnVtZW50Q2x1c3RlclR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wQ29uZmlnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcENvbmZpZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BDb25maWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wVmFsdWUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wVmFsdWUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wVmFsdWUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eUFjY2VzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5QWNjZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlBY2Nlc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eUdyb3VwKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlUHJvcGVydHlHcm91cC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVByb3BlcnR5R3JvdXAKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eU9wZXJhdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVByb3BlcnR5T3BlcmF0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUHJvcGVydHlPcGVyYXRpb24KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8wL1ZlaGljbGVQcm9wZXJ0eVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVSYWRpb0NvbnN0YW50cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvVmVoaWNsZVJhZGlvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOjp0eXBlcy5WZWhpY2xlUmFkaW9Db25zdGFudHMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVUdXJuU2lnbmFsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlVHVyblNpZ25hbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVR1cm5TaWduYWwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVVbml0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9WZWhpY2xlVW5pdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuVmVoaWNsZVVuaXQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFdoZWVsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMC9XaGVlbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6dHlwZXMuV2hlZWwKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVmVoaWNsZS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvSVZlaGljbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JVmVoaWNsZUNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OklWZWhpY2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmVoaWNsZS5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVZlaGljbGVDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzAvSVZlaGljbGVDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZlaGljbGVDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6SVZlaGljbGVDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZlaGljbGVDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaGFsIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk2MmRlMAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaGFsCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA7CisKK2ltcG9ydCBJVmVoaWNsZUNhbGxiYWNrOworCitpbnRlcmZhY2UgSVZlaGljbGUgeworICAvKioKKyAgICogUmV0dXJucyBhIGxpc3Qgb2YgYWxsIHByb3BlcnR5IGNvbmZpZ3VyYXRpb25zIHN1cHBvcnRlZCBieSB0aGlzIHZlaGljbGUKKyAgICogSEFMLgorICAgKi8KKyAgZ2V0QWxsUHJvcENvbmZpZ3MoKSBnZW5lcmF0ZXMgKHZlYzxWZWhpY2xlUHJvcENvbmZpZz4gcHJvcENvbmZpZ3MpOworCisgIC8qKgorICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBwcm9wZXJ0eSBjb25maWd1cmF0aW9ucyBmb3IgZ2l2ZW4gcHJvcGVydGllcy4KKyAgICoKKyAgICogSWYgcmVxdWVzdGVkIFZlaGljbGVQcm9wZXJ0eSB3YXNuJ3QgZm91bmQgaXQgbXVzdCByZXR1cm4KKyAgICogU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkcsIG90aGVyd2lzZSBhIGxpc3Qgb2YgdmVoaWNsZSBwcm9wZXJ0eQorICAgKiBjb25maWd1cmF0aW9ucyB3aXRoIFN0YXR1c0NvZGU6Ok9LCisgICAqLworICBnZXRQcm9wQ29uZmlncyh2ZWM8aW50MzJfdD4gcHJvcHMpCisgICAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXNDb2RlIHN0YXR1cywgdmVjPFZlaGljbGVQcm9wQ29uZmlnPiBwcm9wQ29uZmlncyk7CisKKyAgLyoqCisgICAqIEdldCBhIHZlaGljbGUgcHJvcGVydHkgdmFsdWUuCisgICAqCisgICAqIEZvciBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpTVEFUSUMgcHJvcGVydGllcywgdGhpcyBtZXRob2QgbXVzdCBhbHdheXMKKyAgICogcmV0dXJuIHRoZSBzYW1lIHZhbHVlIGFsd2F5cy4KKyAgICogRm9yIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSBwcm9wZXJ0aWVzLCBpdCBtdXN0IHJldHVybiB0aGUKKyAgICogbGF0ZXN0IGF2YWlsYWJsZSB2YWx1ZS4KKyAgICoKKyAgICogU29tZSBwcm9wZXJ0aWVzIGxpa2UgQVVESU9fVk9MVU1FIHJlcXVpcmVzIHRvIHBhc3MgYWRkaXRpb25hbCBkYXRhIGluCisgICAqIEdFVCByZXF1ZXN0IGluIFZlaGljbGVQcm9wVmFsdWUgb2JqZWN0LgorICAgKgorICAgKiBJZiB0aGVyZSBpcyBubyBkYXRhIGF2YWlsYWJsZSB5ZXQsIHdoaWNoIGNhbiBoYXBwZW4gZHVyaW5nIGluaXRpYWwgc3RhZ2UsCisgICAqIHRoaXMgY2FsbCBtdXN0IHJldHVybiBpbW1lZGlhdGVseSB3aXRoIGFuIGVycm9yIGNvZGUgb2YKKyAgICogU3RhdHVzQ29kZTo6VFJZX0FHQUlOLgorICAgKi8KKyAgZ2V0KFZlaGljbGVQcm9wVmFsdWUgcmVxdWVzdGVkUHJvcFZhbHVlKQorICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzQ29kZSBzdGF0dXMsIFZlaGljbGVQcm9wVmFsdWUgcHJvcFZhbHVlKTsKKworICAvKioKKyAgICogU2V0IGEgdmVoaWNsZSBwcm9wZXJ0eSB2YWx1ZS4KKyAgICoKKyAgICogVGltZXN0YW1wIG9mIGRhdGEgbXVzdCBiZSBpZ25vcmVkIGZvciBzZXQgb3BlcmF0aW9uLgorICAgKgorICAgKiBTZXR0aW5nIHNvbWUgcHJvcGVydGllcyByZXF1aXJlIGhhdmluZyBpbml0aWFsIHN0YXRlIGF2YWlsYWJsZS4gSWYgaW5pdGlhbAorICAgKiBkYXRhIGlzIG5vdCBhdmFpbGFibGUgeWV0IHRoaXMgY2FsbCBtdXN0IHJldHVybiBTdGF0dXNDb2RlOjpUUllfQUdBSU4uCisgICAqIEZvciBhIHByb3BlcnR5IHdpdGggc2VwYXJhdGUgcG93ZXIgY29udHJvbCB0aGlzIGNhbGwgbXVzdCByZXR1cm4KKyAgICogU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBlcnJvciBpZiBwcm9wZXJ0eSBpcyBub3QgcG93ZXJlZCBvbi4KKyAgICovCisgIHNldChWZWhpY2xlUHJvcFZhbHVlIHByb3BWYWx1ZSkgZ2VuZXJhdGVzIChTdGF0dXNDb2RlIHN0YXR1cyk7CisKKyAgLyoqCisgICAqIFN1YnNjcmliZXMgdG8gcHJvcGVydHkgZXZlbnRzLgorICAgKgorICAgKiBDbGllbnRzIG11c3QgYmUgYWJsZSB0byBzdWJzY3JpYmUgdG8gbXVsdGlwbGUgcHJvcGVydGllcyBhdCBhIHRpbWUKKyAgICogZGVwZW5kaW5nIG9uIGRhdGEgcHJvdmlkZWQgaW4gb3B0aW9ucyBhcmd1bWVudC4KKyAgICoKKyAgICogQHBhcmFtIGxpc3RlbmVyIFRoaXMgY2xpZW50IG11c3QgYmUgY2FsbGVkIG9uIGFwcHJvcHJpYXRlIGV2ZW50LgorICAgKiBAcGFyYW0gb3B0aW9ucyBMaXN0IG9mIG9wdGlvbnMgdG8gc3Vic2NyaWJlLiBTdWJzY3JpYmVPcHRpb24gY29udGFpbnMKKyAgICogICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gc3VjaCBhcyBwcm9wZXJ0eSBJZCwgYXJlYSBJZCwgc2FtcGxlIHJhdGUsIGV0Yy4KKyAgICovCisgIHN1YnNjcmliZShJVmVoaWNsZUNhbGxiYWNrIGNhbGxiYWNrLCB2ZWM8U3Vic2NyaWJlT3B0aW9ucz4gb3B0aW9ucykKKyAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1c0NvZGUgc3RhdHVzKTsKKworICAvKioKKyAgICogVW5zdWJzY3JpYmVzIGZyb20gcHJvcGVydHkgZXZlbnRzLgorICAgKgorICAgKiBJZiB0aGlzIGNsaWVudCB3YXNuJ3Qgc3Vic2NyaWJlZCB0byB0aGUgZ2l2ZW4gcHJvcGVydHksIHRoaXMgbWV0aG9kCisgICAqIG11c3QgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHLgorICAgKi8KKyAgdW5zdWJzY3JpYmUoSVZlaGljbGVDYWxsYmFjayBjYWxsYmFjaywgaW50MzJfdCBwcm9wSWQpCisgICAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXNDb2RlIHN0YXR1cyk7CisKKyAgLyoqCisgICAqIFByaW50IG91dCBkZWJ1Z2dpbmcgc3RhdGUgZm9yIHRoZSB2ZWhpY2xlIGhhbC4KKyAgICoKKyAgICogVGhlIHRleHQgbXVzdCBiZSBpbiBBU0NJSSBlbmNvZGluZyBvbmx5LgorICAgKgorICAgKiBQZXJmb3JtYW5jZSByZXF1aXJlbWVudHM6CisgICAqCisgICAqIFRoZSBIQUwgbXVzdCByZXR1cm4gZnJvbSB0aGlzIGNhbGwgaW4gbGVzcyB0aGFuIDEwbXMuIFRoaXMgY2FsbCBtdXN0IGF2b2lkCisgICAqIGRlYWRsb2NrcywgYXMgaXQgbWF5IGJlIGNhbGxlZCBhdCBhbnkgcG9pbnQgb2Ygb3BlcmF0aW9uLiBBbnkgc3luY2hyb25pemF0aW9uCisgICAqIHByaW1pdGl2ZXMgdXNlZCAoc3VjaCBhcyBtdXRleCBsb2NrcyBvciBzZW1hcGhvcmVzKSBtdXN0IGJlIGFjcXVpcmVkCisgICAqIHdpdGggYSB0aW1lb3V0LgorICAgKgorICAgKi8KKyAgZGVidWdEdW1wKCkgZ2VuZXJhdGVzIChzdHJpbmcgcyk7Cit9OwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZUNhbGxiYWNrLmhhbCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGVDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzA2MDQxOAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGVDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOworCitpbnRlcmZhY2UgSVZlaGljbGVDYWxsYmFjayB7CisKKyAgICAvKioKKyAgICAgKiBFdmVudCBjYWxsYmFjayBoYXBwZW5zIHdoZW5ldmVyIGEgdmFyaWFibGUgdGhhdCB0aGUgQVBJIHVzZXIgaGFzCisgICAgICogc3Vic2NyaWJlZCB0byBuZWVkcyB0byBiZSByZXBvcnRlZC4gVGhpcyBtYXkgYmUgYmFzZWQgcHVyZWx5IG9uCisgICAgICogdGhyZXNob2xkIGFuZCBmcmVxdWVuY3kgKGEgcmVndWxhciBzdWJzY3JpcHRpb24sIHNlZSBzdWJzY3JpYmUgY2FsbCdzCisgICAgICogYXJndW1lbnRzKSBvciB3aGVuIHRoZSBJVmVoaWNsZSNzZXQgbWV0aG9kIHdhcyBjYWxsZWQgYW5kIHRoZSBhY3R1YWwKKyAgICAgKiBjaGFuZ2UgbmVlZHMgdG8gYmUgcmVwb3J0ZWQuCisgICAgICoKKyAgICAgKiBUaGVzZSBjYWxsYmFja3MgYXJlIGNodW5rZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWVzIHRoYXQgaGFzIGJlZW4gdXBkYXRlZC4KKyAgICAgKi8KKyAgICBvbmV3YXkgb25Qcm9wZXJ0eUV2ZW50KHZlYzxWZWhpY2xlUHJvcFZhbHVlPiBwcm9wVmFsdWVzKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIGdldHMgY2FsbGVkIGlmIHRoZSBjbGllbnQgd2FzIHN1YnNjcmliZWQgdG8gYSBwcm9wZXJ0eSB1c2luZworICAgICAqIFN1YnNjcmliZUZsYWdzOjpTRVRfQ0FMTCBmbGFnIGFuZCBJVmVoaWNsZSNzZXQoLi4uKSBtZXRob2Qgd2FzIGNhbGxlZC4KKyAgICAgKgorICAgICAqIFRoZXNlIGV2ZW50cyBtdXN0IGJlIGRlbGl2ZXJlZCB0byBzdWJzY3JpYmVyIGltbWVkaWF0ZWx5IHdpdGhvdXQgYW55CisgICAgICogYmF0Y2hpbmcuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmFsdWUgVmFsdWUgdGhhdCB3YXMgc2V0IGJ5IGEgY2xpZW50LgorICAgICAqLworICAgIG9uZXdheSBvblByb3BlcnR5U2V0KFZlaGljbGVQcm9wVmFsdWUgcHJvcFZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFNldCBwcm9wZXJ0eSB2YWx1ZSBpcyB1c3VhbGx5IGFzeW5jaHJvbm91cyBvcGVyYXRpb24uIFRodXMgZXZlbiBpZgorICAgICAqIGNsaWVudCByZWNlaXZlZCBTdGF0dXNDb2RlOjpPSyBmcm9tIHRoZSBJVmVoaWNsZTo6c2V0KC4uLikgdGhpcworICAgICAqIGRvZXNuJ3QgZ3VhcmFudGVlIHRoYXQgdGhlIHZhbHVlIHdhcyBzdWNjZXNzZnVsbHkgcHJvcGFnYXRlZCB0byB0aGUKKyAgICAgKiB2ZWhpY2xlIG5ldHdvcmsuIElmIHN1Y2ggcmFyZSBldmVudCBvY2N1cnMgdGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXJyb3JDb2RlIC0gYW55IHZhbHVlIGZyb20gU3RhdHVzQ29kZSBlbnVtLgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSAtIGEgcHJvcGVydHkgd2hlcmUgZXJyb3IgaGFzIGhhcHBlbmVkLgorICAgICAqIEBwYXJhbSBhcmVhSWQgLSBiaXRtYXNrIHRoYXQgc3BlY2lmaWVzIGluIHdoaWNoIGFyZWFzIHRoZSBwcm9ibGVtIGhhcworICAgICAqICAgICAgICAgICAgICAgICBvY2N1cnJlZCwgbXVzdCBiZSAwIGZvciBnbG9iYWwgcHJvcGVydGllcworICAgICAqLworICAgIG9uZXdheSBvblByb3BlcnR5U2V0RXJyb3IoU3RhdHVzQ29kZSBlcnJvckNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByb3BJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgYXJlYUlkKTsKK307CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1ZjU2NzgKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE3MSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCit2aGFsX3YyXzAgPSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBWZWhpY2xlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBsaWIKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9ICQodmhhbF92Ml8wKS1tYW5hZ2VyLWxpYgorTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBjb21tb24vc3JjL1N1YnNjcmlwdGlvbk1hbmFnZXIuY3BwIFwKKyAgICBjb21tb24vc3JjL1ZlaGljbGVIYWxNYW5hZ2VyLmNwcCBcCisgICAgY29tbW9uL3NyYy9WZWhpY2xlT2JqZWN0UG9vbC5jcHAgXAorICAgIGNvbW1vbi9zcmMvVmVoaWNsZVByb3BlcnR5U3RvcmUuY3BwIFwKKyAgICBjb21tb24vc3JjL1ZlaGljbGVVdGlscy5jcHAgXAorCitMT0NBTF9DX0lOQ0xVREVTIDo9IFwKKyAgICAkKExPQ0FMX1BBVEgpL2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMAorCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvY29tbW9uL2luY2x1ZGUKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmh3YmluZGVyIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICAkKHZoYWxfdjJfMCkgXAorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0xJQlJBUlkpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVmVoaWNsZSBIQUwgUHJvdG9idWYgbGlicmFyeQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9TUkNfRklMRVMgOj0gJChjYWxsIGFsbC1wcm90by1maWxlcy11bmRlciwgaW1wbC92aGFsX3YyXzAvcHJvdG8pCisKK0xPQ0FMX1BST1RPQ19PUFRJTUlaRV9UWVBFIDo9IG5hbm8KKworTE9DQUxfTU9EVUxFIDo9ICQodmhhbF92Ml8wKS1saWJwcm90by1uYXRpdmUKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBTVEFUSUNfTElCUkFSSUVTCisKK0xPQ0FMX01PRFVMRV9UQUdTIDo9IG9wdGlvbmFsCisKK0xPQ0FMX1NUUklQX01PRFVMRSA6PSBrZWVwX3N5bWJvbHMKKworZ2VuZXJhdGVkX3NvdXJjZXNfZGlyIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIpCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gXAorICAgICQoZ2VuZXJhdGVkX3NvdXJjZXNfZGlyKS9wcm90by8kKExPQ0FMX1BBVEgpL2ltcGwvdmhhbF92Ml8wL3Byb3RvCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlaGljbGUgZGVmYXVsdCBWZWhpY2xlSEFMIGltcGxlbWVudGF0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFOj0gJCh2aGFsX3YyXzApLWRlZmF1bHQtaW1wbC1saWIKK0xPQ0FMX1NSQ19GSUxFUzo9IFwKKyAgICBpbXBsL3ZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuY3BwIFwKKyAgICBpbXBsL3ZoYWxfdjJfMC9WZWhpY2xlRW11bGF0b3IuY3BwIFwKKyAgICBpbXBsL3ZoYWxfdjJfMC9QaXBlQ29tbS5jcHAgXAorICAgIGltcGwvdmhhbF92Ml8wL1NvY2tldENvbW0uY3BwIFwKKworTE9DQUxfQ19JTkNMVURFUyA6PSBcCisgICAgJChMT0NBTF9QQVRIKS9pbXBsL3ZoYWxfdjJfMAorCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvaW1wbAorCitMT0NBTF9XSE9MRV9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKyAgICAkKHZoYWxfdjJfMCktbWFuYWdlci1saWIgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGliaHdiaW5kZXIgXAorICAgIGxpYmxvZyBcCisgICAgbGlicHJvdG9idWYtY3BwLWxpdGUgXAorICAgIGxpYnV0aWxzIFwKKyAgICAkKHZoYWxfdjJfMCkgXAorCitMT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKyAgICAkKHZoYWxfdjJfMCktbGlicHJvdG8tbmF0aXZlIFwKKworTE9DQUxfQ0ZMQUdTICs9IC1XYWxsIC1XZXh0cmEgLVdlcnJvcgorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBWZWhpY2xlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiB1bml0IHRlc3RzCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFOj0gJCh2aGFsX3YyXzApLW1hbmFnZXItdW5pdC10ZXN0cworCitMT0NBTF9XSE9MRV9TVEFUSUNfTElCUkFSSUVTIDo9IFwKKyAgICAkKHZoYWxfdjJfMCktbWFuYWdlci1saWIgXAorCitMT0NBTF9TUkNfRklMRVM6PSBcCisgICAgdGVzdHMvUmVjdXJyZW50VGltZXJfdGVzdC5jcHAgXAorICAgIHRlc3RzL1N1YnNjcmlwdGlvbk1hbmFnZXJfdGVzdC5jcHAgXAorICAgIHRlc3RzL1ZlaGljbGVIYWxNYW5hZ2VyX3Rlc3QuY3BwIFwKKyAgICB0ZXN0cy9WZWhpY2xlT2JqZWN0UG9vbF90ZXN0LmNwcCBcCisgICAgdGVzdHMvVmVoaWNsZVByb3BDb25maWdJbmRleF90ZXN0LmNwcCBcCisKK0xPQ0FMX0hFQURFUl9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmJhc2VfaGVhZGVycworCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGliaHdiaW5kZXIgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgICQodmhhbF92Ml8wKSBcCisKK0xPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2V4dHJhIC1XZXJyb3IKK0xPQ0FMX01PRFVMRV9UQUdTIDo9IHRlc3RzCisKK2luY2x1ZGUgJChCVUlMRF9OQVRJVkVfVEVTVCkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlaGljbGUgSEFMIHNlcnZpY2UKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9ICQodmhhbF92Ml8wKS1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9ICQodmhhbF92Ml8wKS1zZXJ2aWNlLnJjCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKKworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBWZWhpY2xlU2VydmljZS5jcHAKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGliYmFzZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmh3YmluZGVyIFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnByb3RvYnVmLWNwcC1saXRlIFwKKyAgICBsaWJ1dGlscyBcCisgICAgJCh2aGFsX3YyXzApIFwKKworTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBcCisgICAgJCh2aGFsX3YyXzApLW1hbmFnZXItbGliIFwKKyAgICAkKHZoYWxfdjJfMCktZGVmYXVsdC1pbXBsLWxpYiBcCisgICAgJCh2aGFsX3YyXzApLWxpYnByb3RvLW5hdGl2ZSBcCisKK0xPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2V4dHJhIC1XZXJyb3IKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvVmVoaWNsZVNlcnZpY2UuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L1ZlaGljbGVTZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWZkNTU1Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L1ZlaGljbGVTZXJ2aWNlLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhdXRvbW90aXZlLnZlaGljbGVAMi4wLXNlcnZpY2UiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisKKyNpbmNsdWRlIDxpb3N0cmVhbT4KKworI2luY2x1ZGUgPHZoYWxfdjJfMC9WZWhpY2xlSGFsTWFuYWdlci5oPgorI2luY2x1ZGUgPHZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuaD4KKwordXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ7Cit1c2luZyBuYW1lc3BhY2UgYW5kcm9pZDo6aGFyZHdhcmU7Cit1c2luZyBuYW1lc3BhY2UgYW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OnZlaGljbGU6OlYyXzA7CisKK2ludCBtYWluKGludCAvKiBhcmdjICovLCBjaGFyKiAvKiBhcmd2ICovIFtdKSB7CisgICAgYXV0byBzdG9yZSA9IHN0ZDo6bWFrZV91bmlxdWU8VmVoaWNsZVByb3BlcnR5U3RvcmU+KCk7CisgICAgYXV0byBoYWwgPSBzdGQ6Om1ha2VfdW5pcXVlPGltcGw6OkVtdWxhdGVkVmVoaWNsZUhhbD4oc3RvcmUuZ2V0KCkpOworICAgIGF1dG8gZW11bGF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPGltcGw6OlZlaGljbGVFbXVsYXRvcj4oaGFsLmdldCgpKTsKKyAgICBhdXRvIHNlcnZpY2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFZlaGljbGVIYWxNYW5hZ2VyPihoYWwuZ2V0KCkpOworCisgICAgY29uZmlndXJlUnBjVGhyZWFkcG9vbCg0LCB0cnVlIC8qIGNhbGxlcldpbGxKb2luICovKTsKKworICAgIEFMT0dJKCJSZWdpc3RlcmluZyBhcyBzZXJ2aWNlLi4uIik7CisgICAgc3RhdHVzX3Qgc3RhdHVzID0gc2VydmljZS0+cmVnaXN0ZXJBc1NlcnZpY2UoKTsKKworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR0UoIlVuYWJsZSB0byByZWdpc3RlciB2ZWhpY2xlIHNlcnZpY2UgKCVkKSIsIHN0YXR1cyk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIEFMT0dJKCJSZWFkeSIpOworICAgIGpvaW5ScGNUaHJlYWRwb29sKCk7CisKKyAgICByZXR1cm4gMTsKK30KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAtc2VydmljZS5yYyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGUyNDllCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSB2ZWhpY2xlLWhhbC0yLjAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHZlaGljbGVfbmV0d29yaworICAgIGdyb3VwIHN5c3RlbSBpbmV0CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL0NvbmN1cnJlbnRRdWV1ZS5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9Db25jdXJyZW50UXVldWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNjM0MjlmCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9Db25jdXJyZW50UXVldWUuaApAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9Db25jdXJyZW50UXVldWVfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9Db25jdXJyZW50UXVldWVfSF8KKworI2luY2x1ZGUgPHF1ZXVlPgorI2luY2x1ZGUgPGF0b21pYz4KKyNpbmNsdWRlIDx0aHJlYWQ+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPGlvc3RyZWFtPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitjbGFzcyBDb25jdXJyZW50UXVldWUgeworcHVibGljOgorICAgIHZvaWQgd2FpdEZvckl0ZW1zKCkgeworICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworICAgICAgICB3aGlsZSAobVF1ZXVlLmVtcHR5KCkgJiYgbUlzQWN0aXZlKSB7CisgICAgICAgICAgICBtQ29uZC53YWl0KGcpOworICAgICAgICB9CisgICAgfQorCisgICAgc3RkOjp2ZWN0b3I8VD4gZmx1c2goKSB7CisgICAgICAgIHN0ZDo6dmVjdG9yPFQ+IGl0ZW1zOworCisgICAgICAgIE11eEd1YXJkIGcobUxvY2spOworICAgICAgICBpZiAobVF1ZXVlLmVtcHR5KCkgfHwgIW1Jc0FjdGl2ZSkgeworICAgICAgICAgICAgcmV0dXJuIGl0ZW1zOworICAgICAgICB9CisgICAgICAgIHdoaWxlICghbVF1ZXVlLmVtcHR5KCkpIHsKKyAgICAgICAgICAgIGl0ZW1zLnB1c2hfYmFjayhzdGQ6Om1vdmUobVF1ZXVlLmZyb250KCkpKTsKKyAgICAgICAgICAgIG1RdWV1ZS5wb3AoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gaXRlbXM7CisgICAgfQorCisgICAgdm9pZCBwdXNoKFQmJiBpdGVtKSB7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11eEd1YXJkIGcobUxvY2spOworICAgICAgICAgICAgaWYgKCFtSXNBY3RpdmUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtUXVldWUucHVzaChzdGQ6Om1vdmUoaXRlbSkpOworICAgICAgICB9CisgICAgICAgIG1Db25kLm5vdGlmeV9vbmUoKTsKKyAgICB9CisKKyAgICAvKiBEZWFjdGl2YXRlcyB0aGUgcXVldWUsIHRodXMgbm8gb25lIGNhbiBwdXNoIGl0ZW1zIHRvIGl0LCBhbHNvCisgICAgICogbm90aWZpZXMgYWxsIHdhaXRpbmcgdGhyZWFkLgorICAgICAqLworICAgIHZvaWQgZGVhY3RpdmF0ZSgpIHsKKyAgICAgICAgeworICAgICAgICAgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgICAgICAgICBtSXNBY3RpdmUgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICBtQ29uZC5ub3RpZnlfYWxsKCk7ICAvLyBUbyB1bmJsb2NrIGFsbCB3YWl0aW5nIGNvbnN1bWVycy4KKyAgICB9CisKKyAgICBDb25jdXJyZW50UXVldWUoKSA9IGRlZmF1bHQ7CisKKyAgICBDb25jdXJyZW50UXVldWUoY29uc3QgQ29uY3VycmVudFF1ZXVlICYpID0gZGVsZXRlOworICAgIENvbmN1cnJlbnRRdWV1ZSAmb3BlcmF0b3I9KGNvbnN0IENvbmN1cnJlbnRRdWV1ZSAmKSA9IGRlbGV0ZTsKK3ByaXZhdGU6CisgICAgdXNpbmcgTXV4R3VhcmQgPSBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD47CisKKyAgICBib29sIG1Jc0FjdGl2ZSA9IHRydWU7CisgICAgbXV0YWJsZSBzdGQ6Om11dGV4IG1Mb2NrOworICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1Db25kOworICAgIHN0ZDo6cXVldWU8VD4gbVF1ZXVlOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIEJhdGNoaW5nQ29uc3VtZXIgeworcHJpdmF0ZToKKyAgICBlbnVtIGNsYXNzIFN0YXRlIHsKKyAgICAgICAgSU5JVCA9IDAsCisgICAgICAgIFJVTk5JTkcgPSAxLAorICAgICAgICBTVE9QX1JFUVVFU1RFRCA9IDIsCisgICAgICAgIFNUT1BQRUQgPSAzLAorICAgIH07CisKK3B1YmxpYzoKKyAgICBCYXRjaGluZ0NvbnN1bWVyKCkgOiBtU3RhdGUoU3RhdGU6OklOSVQpIHt9CisKKyAgICBCYXRjaGluZ0NvbnN1bWVyKGNvbnN0IEJhdGNoaW5nQ29uc3VtZXIgJikgPSBkZWxldGU7CisgICAgQmF0Y2hpbmdDb25zdW1lciAmb3BlcmF0b3I9KGNvbnN0IEJhdGNoaW5nQ29uc3VtZXIgJikgPSBkZWxldGU7CisKKyAgICB1c2luZyBPbkJhdGNoUmVjZWl2ZWRGdW5jID0gc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IHN0ZDo6dmVjdG9yPFQ+JiB2ZWMpPjsKKworICAgIHZvaWQgcnVuKENvbmN1cnJlbnRRdWV1ZTxUPiogcXVldWUsCisgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGJhdGNoSW50ZXJ2YWwsCisgICAgICAgICAgICAgY29uc3QgT25CYXRjaFJlY2VpdmVkRnVuYyYgZnVuYykgeworICAgICAgICBtUXVldWUgPSBxdWV1ZTsKKyAgICAgICAgbUJhdGNoSW50ZXJ2YWwgPSBiYXRjaEludGVydmFsOworCisgICAgICAgIG1Xb3JrZXJUaHJlYWQgPSBzdGQ6OnRocmVhZCgKKyAgICAgICAgICAgICZCYXRjaGluZ0NvbnN1bWVyPFQ+OjpydW5JbnRlcm5hbCwgdGhpcywgZnVuYyk7CisgICAgfQorCisgICAgdm9pZCByZXF1ZXN0U3RvcCgpIHsKKyAgICAgICAgbVN0YXRlID0gU3RhdGU6OlNUT1BfUkVRVUVTVEVEOworICAgIH0KKworICAgIHZvaWQgd2FpdFN0b3BwZWQoKSB7CisgICAgICAgIGlmIChtV29ya2VyVGhyZWFkLmpvaW5hYmxlKCkpIHsKKyAgICAgICAgICAgIG1Xb3JrZXJUaHJlYWQuam9pbigpOworICAgICAgICB9CisgICAgfQorCitwcml2YXRlOgorICAgIHZvaWQgcnVuSW50ZXJuYWwoY29uc3QgT25CYXRjaFJlY2VpdmVkRnVuYyYgb25CYXRjaFJlY2VpdmVkKSB7CisgICAgICAgIGlmIChtU3RhdGUuZXhjaGFuZ2UoU3RhdGU6OlJVTk5JTkcpID09IFN0YXRlOjpJTklUKSB7CisgICAgICAgICAgICB3aGlsZSAoU3RhdGU6OlJVTk5JTkcgPT0gbVN0YXRlKSB7CisgICAgICAgICAgICAgICAgbVF1ZXVlLT53YWl0Rm9ySXRlbXMoKTsKKyAgICAgICAgICAgICAgICBpZiAoU3RhdGU6OlNUT1BfUkVRVUVTVEVEID09IG1TdGF0ZSkgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBzdGQ6OnRoaXNfdGhyZWFkOjpzbGVlcF9mb3IobUJhdGNoSW50ZXJ2YWwpOworICAgICAgICAgICAgICAgIGlmIChTdGF0ZTo6U1RPUF9SRVFVRVNURUQgPT0gbVN0YXRlKSBicmVhazsKKworICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPFQ+IGl0ZW1zID0gbVF1ZXVlLT5mbHVzaCgpOworCisgICAgICAgICAgICAgICAgaWYgKGl0ZW1zLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgb25CYXRjaFJlY2VpdmVkKGl0ZW1zKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBtU3RhdGUgPSBTdGF0ZTo6U1RPUFBFRDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp0aHJlYWQgbVdvcmtlclRocmVhZDsKKworICAgIHN0ZDo6YXRvbWljPFN0YXRlPiBtU3RhdGU7CisgICAgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIG1CYXRjaEludGVydmFsOworICAgIENvbmN1cnJlbnRRdWV1ZTxUPiogbVF1ZXVlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9Db25jdXJyZW50UXVldWVfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvUmVjdXJyZW50VGltZXIuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvUmVjdXJyZW50VGltZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZTI1YWRjCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9SZWN1cnJlbnRUaW1lci5oCkBAIC0wLDAgKzEsMTQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1JlY3VycmVudFRpbWVyX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfUmVjdXJyZW50VGltZXJfSF8KKworI2luY2x1ZGUgPGF0b21pYz4KKyNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSA8bGlzdD4KKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8dGhyZWFkPgorI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisKKy8qKgorICogVGhpcyBjbGFzcyBhbGxvd3MgdG8gc3BlY2lmeSBtdWx0aXBsZSB0aW1lIGludGVydmFscyB0byByZWNlaXZlCisgKiBub3RpZmljYXRpb25zLiBBIHNpbmdsZSB0aHJlYWQgaXMgdXNlZCBpbnRlcm5hbGx5LgorICovCitjbGFzcyBSZWN1cnJlbnRUaW1lciB7Citwcml2YXRlOgorICAgIHVzaW5nIE5hbm9zID0gc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzOworICAgIHVzaW5nIENsb2NrID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazsKKyAgICB1c2luZyBUaW1lUG9pbnQgPSBzdGQ6OmNocm9ubzo6dGltZV9wb2ludDxDbG9jaywgTmFub3M+OworcHVibGljOgorICAgIHVzaW5nIEFjdGlvbiA9IHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBzdGQ6OnZlY3RvcjxpbnQzMl90PiYgY29va2llcyk+OworCisgICAgUmVjdXJyZW50VGltZXIoY29uc3QgQWN0aW9uJiBhY3Rpb24pIDogbUFjdGlvbihhY3Rpb24pIHsKKyAgICAgICAgbVRpbWVyVGhyZWFkID0gc3RkOjp0aHJlYWQoJlJlY3VycmVudFRpbWVyOjpsb29wLCB0aGlzLCBhY3Rpb24pOworICAgIH0KKworICAgIHZpcnR1YWwgflJlY3VycmVudFRpbWVyKCkgeworICAgICAgICBzdG9wKCk7CisgICAgfQorCisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIHJlY3VycmVudCBldmVudCBmb3IgYSBnaXZlbiBpbnRlcnZhbC4gUmVnaXN0cmVkIGV2ZW50cyBhcmUgZGlzdGluZ3Vpc2hlZCBieQorICAgICAqIGNvb2tpZXMgdGh1cyBjYWxsaW5nIHRoaXMgbWV0aG9kIG11bHRpcGxlIHRpbWVzIHdpdGggdGhlIHNhbWUgY29va2llIHdpbGwgb3ZlcnJpZGUgdGhlCisgICAgICogaW50ZXJ2YWwgcHJvdmlkZWQgYmVmb3JlLgorICAgICAqLworICAgIHZvaWQgcmVnaXN0ZXJSZWN1cnJlbnRFdmVudChzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMgaW50ZXJ2YWwsIGludDMyX3QgY29va2llKSB7CisgICAgICAgIFRpbWVQb2ludCBub3cgPSBDbG9jazo6bm93KCk7CisgICAgICAgIC8vIEFsaWduIGV2ZW50IHRpbWUgcG9pbnQgYW1vbmcgYWxsIGludGVydmFscy4gVGh1cyBpZiB3ZSBoYXZlIHR3byBpbnRlcnZhbHMgMW1zIGFuZCAybXMsCisgICAgICAgIC8vIGR1cmluZyBldmVyeSBzZWNvbmQgd2FrZS11cCBib3RoIGludGVydmFscyB3aWxsIGJlIHRyaWdnZXJlZC4KKyAgICAgICAgVGltZVBvaW50IGFic29sdXRlVGltZSA9IG5vdyAtIE5hbm9zKG5vdy50aW1lX3NpbmNlX2Vwb2NoKCkuY291bnQoKSAlIGludGVydmFsLmNvdW50KCkpOworCisgICAgICAgIHsKKyAgICAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBnKG1Mb2NrKTsKKyAgICAgICAgICAgIG1Db29raWVUb0V2ZW50c01hcFtjb29raWVdID0geyBpbnRlcnZhbCwgY29va2llLCBhYnNvbHV0ZVRpbWUgfTsKKyAgICAgICAgfQorICAgICAgICBtQ29uZC5ub3RpZnlfb25lKCk7CisgICAgfQorCisgICAgdm9pZCB1bnJlZ2lzdGVyUmVjdXJyZW50RXZlbnQoaW50MzJfdCBjb29raWUpIHsKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworICAgICAgICAgICAgbUNvb2tpZVRvRXZlbnRzTWFwLmVyYXNlKGNvb2tpZSk7CisgICAgICAgIH0KKyAgICAgICAgbUNvbmQubm90aWZ5X29uZSgpOworICAgIH0KKworCitwcml2YXRlOgorCisgICAgc3RydWN0IFJlY3VycmVudEV2ZW50IHsKKyAgICAgICAgTmFub3MgaW50ZXJ2YWw7CisgICAgICAgIGludDMyX3QgY29va2llOworICAgICAgICBUaW1lUG9pbnQgYWJzb2x1dGVUaW1lOyAgLy8gQWJzb2x1dGUgdGltZSBvZiB0aGUgbmV4dCBldmVudC4KKworICAgICAgICB2b2lkIHVwZGF0ZU5leHRFdmVudFRpbWUoVGltZVBvaW50IG5vdykgeworICAgICAgICAgICAgLy8gV2Ugd2FudCB0byBtb3ZlIHRpbWUgdG8gbmV4dCBldmVudCBieSBhZGRpbmcgc29tZSBudW1iZXIgb2YgaW50ZXJ2YWxzICh1c3VhbGx5IDEpCisgICAgICAgICAgICAvLyB0byBwcmV2aW91cyBhYnNvbHV0ZVRpbWUuCisgICAgICAgICAgICBpbnQgaW50ZXJ2YWxNdWx0aXBsaWVyID0gKG5vdyAtIGFic29sdXRlVGltZSkgLyBpbnRlcnZhbDsKKyAgICAgICAgICAgIGlmIChpbnRlcnZhbE11bHRpcGxpZXIgPD0gMCkgaW50ZXJ2YWxNdWx0aXBsaWVyID0gMTsKKyAgICAgICAgICAgIGFic29sdXRlVGltZSArPSBpbnRlcnZhbE11bHRpcGxpZXIgKiBpbnRlcnZhbDsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB2b2lkIGxvb3AoY29uc3QgQWN0aW9uJiBhY3Rpb24pIHsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIGtJbnZhbGlkVGltZSA9IFRpbWVQb2ludChOYW5vczo6bWF4KCkpOworCisgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IGNvb2tpZXM7CisKKyAgICAgICAgd2hpbGUgKCFtU3RvcFJlcXVlc3RlZCkgeworICAgICAgICAgICAgYXV0byBub3cgPSBDbG9jazo6bm93KCk7CisgICAgICAgICAgICBhdXRvIG5leHRFdmVudFRpbWUgPSBrSW52YWxpZFRpbWU7CisgICAgICAgICAgICBjb29raWVzLmNsZWFyKCk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGcobUxvY2spOworCisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiYgaXQgOiBtQ29va2llVG9FdmVudHNNYXApIHsKKyAgICAgICAgICAgICAgICAgICAgUmVjdXJyZW50RXZlbnQmIGV2ZW50ID0gaXQuc2Vjb25kOworICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuYWJzb2x1dGVUaW1lIDw9IG5vdykgeworICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQudXBkYXRlTmV4dEV2ZW50VGltZShub3cpOworICAgICAgICAgICAgICAgICAgICAgICAgY29va2llcy5wdXNoX2JhY2soZXZlbnQuY29va2llKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0RXZlbnRUaW1lID4gZXZlbnQuYWJzb2x1dGVUaW1lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0RXZlbnRUaW1lID0gZXZlbnQuYWJzb2x1dGVUaW1lOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY29va2llcy5zaXplKCkgIT0gMCkgeworICAgICAgICAgICAgICAgIGFjdGlvbihjb29raWVzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBnKG1Mb2NrKTsKKyAgICAgICAgICAgIG1Db25kLndhaXRfdW50aWwoZywgbmV4dEV2ZW50VGltZSk7ICAvLyBuZXh0RXZlbnRUaW1lIGNhbiBiZSBuYW5vc2Vjb25kczo6bWF4KCkKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgc3RvcCgpIHsKKyAgICAgICAgbVN0b3BSZXF1ZXN0ZWQgPSB0cnVlOworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gZyhtTG9jayk7CisgICAgICAgICAgICBtQ29va2llVG9FdmVudHNNYXAuY2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICBtQ29uZC5ub3RpZnlfb25lKCk7CisgICAgICAgIGlmIChtVGltZXJUaHJlYWQuam9pbmFibGUoKSkgeworICAgICAgICAgICAgbVRpbWVyVGhyZWFkLmpvaW4oKTsKKyAgICAgICAgfQorICAgIH0KK3ByaXZhdGU6CisgICAgbXV0YWJsZSBzdGQ6Om11dGV4IG1Mb2NrOworICAgIHN0ZDo6dGhyZWFkIG1UaW1lclRocmVhZDsKKyAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBtQ29uZDsKKyAgICBzdGQ6OmF0b21pY19ib29sIG1TdG9wUmVxdWVzdGVkIHsgZmFsc2UgfTsKKyAgICBBY3Rpb24gbUFjdGlvbjsKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8aW50MzJfdCwgUmVjdXJyZW50RXZlbnQ+IG1Db29raWVUb0V2ZW50c01hcDsKK307CisKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1JlY3VycmVudFRpbWVyX0gKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvU3Vic2NyaXB0aW9uTWFuYWdlci5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9TdWJzY3JpcHRpb25NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU5MDg5ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvU3Vic2NyaXB0aW9uTWFuYWdlci5oCkBAIC0wLDAgKzEsMTgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1N1YnNjcmlwdGlvbk1hbmFnZXJfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9TdWJzY3JpcHRpb25NYW5hZ2VyX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDxsaXN0PgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisjaW5jbHVkZSA8dXRpbHMvU29ydGVkVmVjdG9yLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaD4KKworI2luY2x1ZGUgIkNvbmN1cnJlbnRRdWV1ZS5oIgorI2luY2x1ZGUgIlZlaGljbGVPYmplY3RQb29sLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK2NsYXNzIEhhbENsaWVudCA6IHB1YmxpYyBhbmRyb2lkOjpSZWZCYXNlIHsKK3B1YmxpYzoKKyAgICBIYWxDbGllbnQoY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4gJmNhbGxiYWNrKQorICAgICAgICA6IG1DYWxsYmFjayhjYWxsYmFjaykge30KKworICAgIHZpcnR1YWwgfkhhbENsaWVudCgpIHt9CitwdWJsaWM6CisgICAgc3A8SVZlaGljbGVDYWxsYmFjaz4gZ2V0Q2FsbGJhY2soKSBjb25zdCB7CisgICAgICAgIHJldHVybiBtQ2FsbGJhY2s7CisgICAgfQorCisgICAgdm9pZCBhZGRPclVwZGF0ZVN1YnNjcmlwdGlvbihjb25zdCBTdWJzY3JpYmVPcHRpb25zICZvcHRzKTsKKyAgICBib29sIGlzU3Vic2NyaWJlZChpbnQzMl90IHByb3BJZCwgaW50MzJfdCBhcmVhSWQsIFN1YnNjcmliZUZsYWdzIGZsYWdzKTsKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBnZXRTdWJzY3JpYmVkUHJvcGVydGllcygpIGNvbnN0OworCitwcml2YXRlOgorICAgIGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+IG1DYWxsYmFjazsKKworICAgIHN0ZDo6bWFwPGludDMyX3QsIFN1YnNjcmliZU9wdGlvbnM+IG1TdWJzY3JpcHRpb25zOworfTsKKworY2xhc3MgSGFsQ2xpZW50VmVjdG9yIDogcHJpdmF0ZSBTb3J0ZWRWZWN0b3I8c3A8SGFsQ2xpZW50Pj4gLCBwdWJsaWMgUmVmQmFzZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+SGFsQ2xpZW50VmVjdG9yKCkge30KKworICAgIGlubGluZSB2b2lkIGFkZE9yVXBkYXRlKGNvbnN0IHNwPEhhbENsaWVudD4gJmNsaWVudCkgeworICAgICAgICBTb3J0ZWRWZWN0b3I6OmFkZChjbGllbnQpOworICAgIH0KKworICAgIHVzaW5nIFNvcnRlZFZlY3Rvcjo6cmVtb3ZlOworICAgIHVzaW5nIFNvcnRlZFZlY3Rvcjo6c2l6ZTsKKyAgICB1c2luZyBTb3J0ZWRWZWN0b3I6OmluZGV4T2Y7CisgICAgdXNpbmcgU29ydGVkVmVjdG9yOjppdGVtQXQ7CisgICAgdXNpbmcgU29ydGVkVmVjdG9yOjppc0VtcHR5OworfTsKKworc3RydWN0IEhhbENsaWVudFZhbHVlcyB7CisgICAgc3A8SGFsQ2xpZW50PiBjbGllbnQ7CisgICAgc3RkOjpsaXN0PFZlaGljbGVQcm9wVmFsdWUgKj4gdmFsdWVzOworfTsKKwordXNpbmcgQ2xpZW50SWQgPSB1aW50NjRfdDsKKworY2xhc3MgU3Vic2NyaXB0aW9uTWFuYWdlciB7CitwdWJsaWM6CisgICAgdXNpbmcgT25Qcm9wZXJ0eVVuc3Vic2NyaWJlZCA9IHN0ZDo6ZnVuY3Rpb248dm9pZChpbnQzMl90KT47CisKKyAgICAvKioKKyAgICAgKiBDb25zdHJ1Y3RzIFN1YnNjcmlwdGlvbk1hbmFnZXIKKyAgICAgKgorICAgICAqIEBwYXJhbSBvblByb3BlcnR5VW5zdWJzY3JpYmVkIC0gdGhpcyBjYWxsYmFjayBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZXJlIGFyZSBubworICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9yZSBjbGllbnQgc3Vic2NyaWJlZCB0byBwYXJ0aWN1bGFyIHByb3BlcnR5LgorICAgICAqLworICAgIFN1YnNjcmlwdGlvbk1hbmFnZXIoY29uc3QgT25Qcm9wZXJ0eVVuc3Vic2NyaWJlZCYgb25Qcm9wZXJ0eVVuc3Vic2NyaWJlZCkKKyAgICAgICAgICAgIDogbU9uUHJvcGVydHlVbnN1YnNjcmliZWQob25Qcm9wZXJ0eVVuc3Vic2NyaWJlZCksCisgICAgICAgICAgICAgICAgbUNhbGxiYWNrRGVhdGhSZWNpcGllbnQobmV3IERlYXRoUmVjaXBpZW50KAorICAgICAgICAgICAgICAgICAgICBzdGQ6OmJpbmQoJlN1YnNjcmlwdGlvbk1hbmFnZXI6Om9uQ2FsbGJhY2tEZWFkLCB0aGlzLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEpKSkKKyAgICB7fQorCisgICAgflN1YnNjcmlwdGlvbk1hbmFnZXIoKSA9IGRlZmF1bHQ7CisKKyAgICAvKioKKyAgICAgKiBVcGRhdGVzIHN1YnNjcmlwdGlvbi4gUmV0dXJucyB0aGUgdmVjdG9yIG9mIHByb3BlcnRpZXMgc3Vic2NyaXB0aW9uIHRoYXQKKyAgICAgKiBuZWVkcyB0byBiZSB1cGRhdGVkIGluIFZlaGljbGVIQUwuCisgICAgICovCisgICAgU3RhdHVzQ29kZSBhZGRPclVwZGF0ZVN1YnNjcmlwdGlvbihDbGllbnRJZCBjbGllbnRJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+JiBvcHRpb25MaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpsaXN0PFN1YnNjcmliZU9wdGlvbnM+KiBvdXRVcGRhdGVkT3B0aW9ucyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBJVmVoaWNsZUNhbGxiYWNrIC0+IGxpc3Qgb2YgVmVoaWNsZVByb3BWYWx1ZSByZWFkeSBmb3IKKyAgICAgKiBkaXNwYXRjaGluZyB0byBpdHMgY2xpZW50cy4KKyAgICAgKi8KKyAgICBzdGQ6Omxpc3Q8SGFsQ2xpZW50VmFsdWVzPiBkaXN0cmlidXRlVmFsdWVzVG9DbGllbnRzKAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8cmVjeWNsYWJsZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4+JiBwcm9wVmFsdWVzLAorICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpIGNvbnN0OworCisgICAgc3RkOjpsaXN0PHNwPEhhbENsaWVudD4+IGdldFN1YnNjcmliZWRDbGllbnRzKGludDMyX3QgcHJvcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGFyZWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzIGZsYWdzKSBjb25zdDsKKyAgICAvKioKKyAgICAgKiBJZiB0aGVyZSBhcmUgbm8gY2xpZW50cyBzdWJzY3JpYmVkIHRvIGdpdmVuIHByb3BlcnRpZXMgdGhhbiBjYWxsYmFjayBmdW5jdGlvbiBwcm92aWRlZAorICAgICAqIGluIHRoZSBjb25zdHJ1Y3RvciB3aWxsIGJlIGNhbGxlZC4KKyAgICAgKi8KKyAgICB2b2lkIHVuc3Vic2NyaWJlKENsaWVudElkIGNsaWVudElkLCBpbnQzMl90IHByb3BJZCk7Citwcml2YXRlOgorICAgIHN0ZDo6bGlzdDxzcDxIYWxDbGllbnQ+PiBnZXRTdWJzY3JpYmVkQ2xpZW50c0xvY2tlZChpbnQzMl90IHByb3BJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBhcmVhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdWJzY3JpYmVGbGFncyBmbGFncykgY29uc3Q7CisKKyAgICBib29sIHVwZGF0ZUhhbEV2ZW50U3Vic2NyaXB0aW9uTG9ja2VkKGNvbnN0IFN1YnNjcmliZU9wdGlvbnMgJm9wdHMsIFN1YnNjcmliZU9wdGlvbnMqIG91dCk7CisKKyAgICB2b2lkIGFkZENsaWVudFRvUHJvcE1hcExvY2tlZChpbnQzMl90IHByb3BJZCwgY29uc3Qgc3A8SGFsQ2xpZW50PiYgY2xpZW50KTsKKworICAgIHNwPEhhbENsaWVudFZlY3Rvcj4gZ2V0Q2xpZW50c0ZvclByb3BlcnR5TG9ja2VkKGludDMyX3QgcHJvcElkKSBjb25zdDsKKworICAgIHNwPEhhbENsaWVudD4gZ2V0T3JDcmVhdGVIYWxDbGllbnRMb2NrZWQoQ2xpZW50SWQgY2FsbGluZ1BpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjayk7CisKKyAgICB2b2lkIG9uQ2FsbGJhY2tEZWFkKHVpbnQ2NF90IGNvb2tpZSk7CisKK3ByaXZhdGU6CisgICAgdXNpbmcgT25DbGllbnREZWFkID0gc3RkOjpmdW5jdGlvbjx2b2lkKHVpbnQ2NF90KT47CisKKyAgICBjbGFzcyBEZWF0aFJlY2lwaWVudCA6IHB1YmxpYyBoaWRsX2RlYXRoX3JlY2lwaWVudCB7CisgICAgcHVibGljOgorICAgICAgICBEZWF0aFJlY2lwaWVudChjb25zdCBPbkNsaWVudERlYWQmIG9uQ2xpZW50RGVhZCkKKyAgICAgICAgICAgIDogbU9uQ2xpZW50RGVhZChvbkNsaWVudERlYWQpIHt9CisgICAgICAgIH5EZWF0aFJlY2lwaWVudCgpID0gZGVmYXVsdDsKKworICAgICAgICBEZWF0aFJlY2lwaWVudChjb25zdCBEZWF0aFJlY2lwaWVudCYgKSA9IGRlbGV0ZTsKKyAgICAgICAgRGVhdGhSZWNpcGllbnQmIG9wZXJhdG9yPShjb25zdCBEZWF0aFJlY2lwaWVudCYpID0gZGVsZXRlOworCisgICAgICAgIHZvaWQgc2VydmljZURpZWQodWludDY0X3QgY29va2llLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdwPDo6YW5kcm9pZDo6aGlkbDo6YmFzZTo6VjFfMDo6SUJhc2U+JiAvKiB3aG8gKi8pIG92ZXJyaWRlIHsKKyAgICAgICAgICAgIG1PbkNsaWVudERlYWQoY29va2llKTsKKyAgICAgICAgfQorICAgIHByaXZhdGU6CisgICAgICAgIE9uQ2xpZW50RGVhZCBtT25DbGllbnREZWFkOworICAgIH07CisKK3ByaXZhdGU6CisgICAgdXNpbmcgTXV4R3VhcmQgPSBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD47CisKKyAgICBtdXRhYmxlIHN0ZDo6bXV0ZXggbUxvY2s7CisKKyAgICBzdGQ6Om1hcDxDbGllbnRJZCwgc3A8SGFsQ2xpZW50Pj4gbUNsaWVudHM7CisgICAgc3RkOjptYXA8aW50MzJfdCwgc3A8SGFsQ2xpZW50VmVjdG9yPj4gbVByb3BUb0NsaWVudHM7CisgICAgc3RkOjptYXA8aW50MzJfdCwgU3Vic2NyaWJlT3B0aW9ucz4gbUhhbEV2ZW50U3Vic2NyaWJlT3B0aW9uczsKKworICAgIE9uUHJvcGVydHlVbnN1YnNjcmliZWQgbU9uUHJvcGVydHlVbnN1YnNjcmliZWQ7CisgICAgc3A8RGVhdGhSZWNpcGllbnQ+IG1DYWxsYmFja0RlYXRoUmVjaXBpZW50OworfTsKKworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKworI2VuZGlmIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfU3Vic2NyaXB0aW9uTWFuYWdlcl9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlSGFsLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVIYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjAzYTFlCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlSGFsLmgKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZUhhbF9ICisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZUhhbF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvSVZlaGljbGUuaD4KKyNpbmNsdWRlICJWZWhpY2xlT2JqZWN0UG9vbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCisvKioKKyAqIFRoaXMgaXMgYSBsb3ctbGV2ZWwgdmVoaWNsZSBoYWwgaW50ZXJmYWNlIHRoYXQgc2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5CisgKiBWZW5kb3IuCisgKi8KK2NsYXNzIFZlaGljbGVIYWwgeworcHVibGljOgorICAgIHVzaW5nIFZlaGljbGVQcm9wVmFsdWVQdHIgPSByZWN5Y2xhYmxlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPjsKKworICAgIHVzaW5nIEhhbEV2ZW50RnVuY3Rpb24gPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoVmVoaWNsZVByb3BWYWx1ZVB0cik+OworICAgIHVzaW5nIEhhbEVycm9yRnVuY3Rpb24gPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoCisgICAgICAgICAgICBTdGF0dXNDb2RlIGVycm9yQ29kZSwgaW50MzJfdCBwcm9wZXJ0eSwgaW50MzJfdCBhcmVhSWQpPjsKKworICAgIHZpcnR1YWwgflZlaGljbGVIYWwoKSB7fQorCisgICAgdmlydHVhbCBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gbGlzdFByb3BlcnRpZXMoKSA9IDA7CisgICAgdmlydHVhbCBWZWhpY2xlUHJvcFZhbHVlUHRyIGdldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXNDb2RlKiBvdXRTdGF0dXMpID0gMDsKKworICAgIHZpcnR1YWwgU3RhdHVzQ29kZSBzZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTdWJzY3JpYmUgdG8gSEFMIHByb3BlcnR5IGV2ZW50cy4gVGhpcyBtZXRob2QgbWlnaHQgYmUgY2FsbGVkIG11bHRpcGxlCisgICAgICogdGltZXMgZm9yIHRoZSBzYW1lIHZlaGljbGUgcHJvcGVydHkgdG8gdXBkYXRlIHN1YnNjcmliZWQgYXJlYXMgb3Igc2FtcGxlCisgICAgICogcmF0ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSB0byBzdWJzY3JpYmUKKyAgICAgKiBAcGFyYW0gYXJlYXMgYSBiaXR3aXNlIHZlaGljbGUgYXJlYXMgb3IgMCBmb3IgYWxsIHN1cHBvcnRlZCBhcmVhcworICAgICAqIEBwYXJhbSBzYW1wbGVSYXRlIHNhbXBsZSByYXRlIGluIEh6IGZvciBwcm9wZXJ0aWVzIHRoYXQgc3VwcG9ydCBzYW1wbGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICByYXRlLCBlLmcuIGZvciBwcm9wZXJ0aWVzIHdpdGgKKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTCisgICAgICovCisgICAgdmlydHVhbCBTdGF0dXNDb2RlIHN1YnNjcmliZShpbnQzMl90IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBhcmVhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHNhbXBsZVJhdGUpID0gMDsKKworICAgIC8qKgorICAgICAqIFVuc3Vic2NyaWJlIGZyb20gSEFMIGV2ZW50cyBmb3IgZ2l2ZW4gcHJvcGVydHkKKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eSB2ZWhpY2xlIHByb3BlcnR5IHRvIHVuc3Vic2NyaWJlCisgICAgICovCisgICAgdmlydHVhbCBTdGF0dXNDb2RlIHVuc3Vic2NyaWJlKGludDMyX3QgcHJvcGVydHkpID0gMDsKKworICAgIC8qKgorICAgICAqIE92ZXJyaWRlIHRoaXMgbWV0aG9kIGlmIHlvdSBuZWVkIHRvIGRvIG9uZS10aW1lIGluaXRpYWxpemF0aW9uLgorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBvbkNyZWF0ZSgpIHt9CisKKyAgICB2b2lkIGluaXQoCisgICAgICAgIFZlaGljbGVQcm9wVmFsdWVQb29sKiB2YWx1ZU9iamVjdFBvb2wsCisgICAgICAgIGNvbnN0IEhhbEV2ZW50RnVuY3Rpb24mIG9uSGFsRXZlbnQsCisgICAgICAgIGNvbnN0IEhhbEVycm9yRnVuY3Rpb24mIG9uSGFsRXJyb3IpIHsKKyAgICAgICAgbVZhbHVlUG9vbCA9IHZhbHVlT2JqZWN0UG9vbDsKKyAgICAgICAgbU9uSGFsRXZlbnQgPSBvbkhhbEV2ZW50OworICAgICAgICBtT25IYWxQcm9wZXJ0eVNldEVycm9yID0gb25IYWxFcnJvcjsKKworICAgICAgICBvbkNyZWF0ZSgpOworICAgIH0KKworICAgIFZlaGljbGVQcm9wVmFsdWVQb29sKiBnZXRWYWx1ZVBvb2woKSB7CisgICAgICAgIHJldHVybiBtVmFsdWVQb29sOworICAgIH0KK3Byb3RlY3RlZDoKKyAgICAvKiBQcm9wYWdhdGVzIHByb3BlcnR5IGNoYW5nZSBldmVudHMgdG8gdmVoaWNsZSBIQUwgY2xpZW50cy4gKi8KKyAgICB2b2lkIGRvSGFsRXZlbnQoVmVoaWNsZVByb3BWYWx1ZVB0ciB2KSB7CisgICAgICAgIG1PbkhhbEV2ZW50KHN0ZDo6bW92ZSh2KSk7CisgICAgfQorCisgICAgLyogUHJvcGFnYXRlcyBlcnJvciBkdXJpbmcgc2V0IG9wZXJhdGlvbiB0byB0aGUgdmVoaWNsZSBIQUwgY2xpZW50cy4gKi8KKyAgICB2b2lkIGRvSGFsUHJvcGVydHlTZXRFcnJvcihTdGF0dXNDb2RlIGVycm9yQ29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByb3BJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGFyZWFJZCkgeworICAgICAgICBtT25IYWxQcm9wZXJ0eVNldEVycm9yKGVycm9yQ29kZSwgcHJvcElkLCBhcmVhSWQpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBIYWxFdmVudEZ1bmN0aW9uIG1PbkhhbEV2ZW50OworICAgIEhhbEVycm9yRnVuY3Rpb24gbU9uSGFsUHJvcGVydHlTZXRFcnJvcjsKKyAgICBWZWhpY2xlUHJvcFZhbHVlUG9vbCogbVZhbHVlUG9vbDsKK307CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlSGFsX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVIYWxNYW5hZ2VyLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVIYWxNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFlOWU4OAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZUhhbE1hbmFnZXIuaApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlSGFsTWFuYWdlcl9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVIYWxNYW5hZ2VyX0hfCisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorCisjaW5jbHVkZSA8bGlzdD4KKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHNldD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oPgorCisjaW5jbHVkZSAiQ29uY3VycmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiU3Vic2NyaXB0aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlZlaGljbGVIYWwuaCIKKyNpbmNsdWRlICJWZWhpY2xlT2JqZWN0UG9vbC5oIgorI2luY2x1ZGUgIlZlaGljbGVQcm9wQ29uZmlnSW5kZXguaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworLyoqCisgKiBUaGlzIGNsYXNzIGlzIGEgdGhpY2sgcHJveHkgYmV0d2VlbiBJVmVoaWNsZSBISURMIGludGVyZmFjZSBhbmQgdmVuZG9yJ3MgaW1wbGVtZW50YXRpb24uCisgKgorICogSXQgaGFzIHNvbWUgYm9pbGVycGxhdGUgY29kZSBsaWtlIGJhdGNoaW5nIGFuZCBjYWNoaW5nIHByb3BlcnR5IHZhbHVlcywgY2hlY2tpbmcgcGVybWlzc2lvbnMsCisgKiBldGMuIFZlbmRvcnMgbXVzdCBpbXBsZW1lbnQgVmVoaWNsZUhhbCBjbGFzcy4KKyAqLworY2xhc3MgVmVoaWNsZUhhbE1hbmFnZXIgOiBwdWJsaWMgSVZlaGljbGUgeworcHVibGljOgorICAgIFZlaGljbGVIYWxNYW5hZ2VyKFZlaGljbGVIYWwqIHZlaGljbGVIYWwpCisgICAgICAgIDogbUhhbCh2ZWhpY2xlSGFsKSwKKyAgICAgICAgICBtU3Vic2NyaXB0aW9uTWFuYWdlcihzdGQ6OmJpbmQoJlZlaGljbGVIYWxNYW5hZ2VyOjpvbkFsbENsaWVudHNVbnN1YnNjcmliZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSkpIHsKKyAgICAgICAgaW5pdCgpOworICAgIH0KKworICAgIHZpcnR1YWwgflZlaGljbGVIYWxNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGluaXQoKTsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIE1ldGhvZHMgZGVyaXZlZCBmcm9tIElWZWhpY2xlCisgICAgUmV0dXJuPHZvaWQ+IGdldEFsbFByb3BDb25maWdzKGdldEFsbFByb3BDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFByb3BDb25maWdzKGNvbnN0IGhpZGxfdmVjPGludDMyX3Q+JiBwcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRQcm9wQ29uZmlnc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgZ2V0X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1c0NvZGU+IHNldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXNDb2RlPiBzdWJzY3JpYmUoY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiYgb3B0aW9ucykgIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXNDb2RlPiB1bnN1YnNjcmliZShjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgcHJvcElkKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlYnVnRHVtcChkZWJ1Z0R1bXBfY2IgX2hpZGxfY2IgPSBudWxscHRyKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBWZWhpY2xlUHJvcFZhbHVlUHRyID0gVmVoaWNsZUhhbDo6VmVoaWNsZVByb3BWYWx1ZVB0cjsKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgbmVlZHMgdG8gY2FsbCBhZ2FpbiBzaG9ydGx5LgorICAgIHVzaW5nIFJldHJpYWJsZUFjdGlvbiA9IHN0ZDo6ZnVuY3Rpb248Ym9vbCgpPjsKKworICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIEV2ZW50cyByZWNlaXZlZCBmcm9tIFZlaGljbGVIYWwKKyAgICB2b2lkIG9uSGFsRXZlbnQoVmVoaWNsZVByb3BWYWx1ZVB0ciAgdik7CisgICAgdm9pZCBvbkhhbFByb3BlcnR5U2V0RXJyb3IoU3RhdHVzQ29kZSBlcnJvckNvZGUsIGludDMyX3QgcHJvcGVydHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBhcmVhSWQpOworCisgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgLy8gVGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgZnJvbSBCYXRjaGluZ0NvbnN1bWVyIHRocmVhZAorICAgIHZvaWQgb25CYXRjaEhhbEV2ZW50KGNvbnN0IHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWVQdHIgPiYgdmFsdWVzKTsKKworICAgIHZvaWQgaGFuZGxlUHJvcGVydHlTZXRFdmVudChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZSk7CisKKyAgICBjb25zdCBWZWhpY2xlUHJvcENvbmZpZyogZ2V0UHJvcENvbmZpZ09yTnVsbChpbnQzMl90IHByb3ApIGNvbnN0OworCisgICAgYm9vbCBjaGVja1dyaXRlUGVybWlzc2lvbihjb25zdCBWZWhpY2xlUHJvcENvbmZpZyAmY29uZmlnKSBjb25zdDsKKyAgICBib29sIGNoZWNrUmVhZFBlcm1pc3Npb24oY29uc3QgVmVoaWNsZVByb3BDb25maWcgJmNvbmZpZykgY29uc3Q7CisgICAgdm9pZCBvbkFsbENsaWVudHNVbnN1YnNjcmliZWQoaW50MzJfdCBwcm9wZXJ0eUlkKTsKKworICAgIHN0YXRpYyBib29sIGlzU3Vic2NyaWJhYmxlKGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpOworICAgIHN0YXRpYyBib29sIGlzU2FtcGxlUmF0ZUZpeGVkKFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUgbW9kZSk7CisgICAgc3RhdGljIGZsb2F0IGNoZWNrU2FtcGxlUmF0ZShjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgc3RhdGljIENsaWVudElkIGdldENsaWVudElkKGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjayk7Citwcml2YXRlOgorICAgIFZlaGljbGVIYWwqIG1IYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZlaGljbGVQcm9wQ29uZmlnSW5kZXg+IG1Db25maWdJbmRleDsKKyAgICBTdWJzY3JpcHRpb25NYW5hZ2VyIG1TdWJzY3JpcHRpb25NYW5hZ2VyOworCisgICAgaGlkbF92ZWM8VmVoaWNsZVByb3BWYWx1ZT4gbUhpZGxWZWNPZlZlaGljbGVQcm9wVmFsdWVQb29sOworCisgICAgQ29uY3VycmVudFF1ZXVlPFZlaGljbGVQcm9wVmFsdWVQdHI+IG1FdmVudFF1ZXVlOworICAgIEJhdGNoaW5nQ29uc3VtZXI8VmVoaWNsZVByb3BWYWx1ZVB0cj4gbUJhdGNoaW5nQ29uc3VtZXI7CisgICAgVmVoaWNsZVByb3BWYWx1ZVBvb2wgbVZhbHVlT2JqZWN0UG9vbDsKK307CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisjZW5kaWYgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlSGFsTWFuYWdlcl9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlT2JqZWN0UG9vbC5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlT2JqZWN0UG9vbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1YzY0OWIKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVPYmplY3RQb29sLmgKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlT2JqZWN0UG9vbF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVPYmplY3RQb29sX0hfCisKKyNpbmNsdWRlIDxkZXF1ZT4KKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8bXV0ZXg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworLy8gSGFuZHkgbWV0cmljIG1vc3RseSBmb3IgdW5pdCB0ZXN0cyBhbmQgZGVidWcuCisjZGVmaW5lIElOQ19NRVRSSUNfSUZfREVCVUcodmFsKSBQb29sU3RhdHM6Omluc3RhbmNlKCktPnZhbCsrOworc3RydWN0IFBvb2xTdGF0cyB7CisgICAgc3RkOjphdG9taWM8dWludDMyX3Q+IE9idGFpbmVkIHswfTsKKyAgICBzdGQ6OmF0b21pYzx1aW50MzJfdD4gQ3JlYXRlZCB7MH07CisgICAgc3RkOjphdG9taWM8dWludDMyX3Q+IFJlY3ljbGVkIHswfTsKKworICAgIHN0YXRpYyBQb29sU3RhdHMqIGluc3RhbmNlKCkgeworICAgICAgICBzdGF0aWMgUG9vbFN0YXRzIGluc3Q7CisgICAgICAgIHJldHVybiAmaW5zdDsKKyAgICB9Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RydWN0IERlbGV0ZXIgIHsKKyAgICB1c2luZyBPbkRlbGV0ZUZ1bmMgPSBzdGQ6OmZ1bmN0aW9uPHZvaWQoVCopPjsKKworICAgIERlbGV0ZXIoY29uc3QgT25EZWxldGVGdW5jJiBmKSA6IG1PbkRlbGV0ZShmKSB7fTsKKworICAgIERlbGV0ZXIoKSA9IGRlZmF1bHQ7CisgICAgRGVsZXRlcihjb25zdCBEZWxldGVyJikgPSBkZWZhdWx0OworCisgICAgdm9pZCBvcGVyYXRvcigpKFQqIG8pIHsKKyAgICAgICAgbU9uRGVsZXRlKG8pOworICAgIH0KK3ByaXZhdGU6CisgICAgT25EZWxldGVGdW5jIG1PbkRlbGV0ZTsKK307CisKKy8qKgorICogVGhpcyBpcyBzdGQ6OnVuaXF1ZV9wdHI8PiB3aXRoIGN1c3RvbSBkZWxldGUgb3BlcmF0aW9uIHRoYXQgdHlwaWNhbGx5IG1vdmVzCisgKiB0aGUgcG9pbnRlciBpdCBob2xkcyBiYWNrIHRvIE9iamVjdFBvb2wuCisgKi8KK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgordXNpbmcgcmVjeWNsYWJsZV9wdHIgPSB0eXBlbmFtZSBzdGQ6OnVuaXF1ZV9wdHI8VCwgRGVsZXRlcjxUPj47CisKKy8qKgorICogR2VuZXJpYyBhYnN0cmFjdCBvYmplY3QgcG9vbCBjbGFzcy4gVXNlcnMgb2YgdGhpcyBjbGFzcyBtdXN0IGltcGxlbWVudAorICogI2NyZWF0ZU9iamVjdCBtZXRob2QuCisgKgorICogVGhpcyBjbGFzcyBpcyB0aHJlYWQtc2FmZS4gQ29uY3VycmVudCBjYWxscyB0byAjb2J0YWluKC4uLikgbWV0aG9kIGZyb20KKyAqIG11bHRpcGxlIHRocmVhZHMgaXMgT0ssIGFsc28gY2xpZW50IGNhbiBvYnRhaW4gYW4gb2JqZWN0IGluIG9uZSB0aHJlYWQgYW5kCisgKiB0aGVuIG1vdmUgb3duZXJzaGlwIHRvIGFub3RoZXIgdGhyZWFkLgorICoKKyAqLwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIE9iamVjdFBvb2wgeworcHVibGljOgorICAgIE9iamVjdFBvb2woKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+T2JqZWN0UG9vbCgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgcmVjeWNsYWJsZV9wdHI8VD4gb2J0YWluKCkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gZyhtTG9jayk7CisgICAgICAgIElOQ19NRVRSSUNfSUZfREVCVUcoT2J0YWluZWQpCisgICAgICAgIGlmIChtT2JqZWN0cy5lbXB0eSgpKSB7CisgICAgICAgICAgICBJTkNfTUVUUklDX0lGX0RFQlVHKENyZWF0ZWQpCisgICAgICAgICAgICByZXR1cm4gd3JhcChjcmVhdGVPYmplY3QoKSk7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIG8gPSB3cmFwKG1PYmplY3RzLmZyb250KCkucmVsZWFzZSgpKTsKKyAgICAgICAgbU9iamVjdHMucG9wX2Zyb250KCk7CisKKyAgICAgICAgcmV0dXJuIG87CisgICAgfQorCisgICAgT2JqZWN0UG9vbCYgb3BlcmF0b3IgPShjb25zdCBPYmplY3RQb29sICYpID0gZGVsZXRlOworICAgIE9iamVjdFBvb2woY29uc3QgT2JqZWN0UG9vbCAmKSA9IGRlbGV0ZTsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgVCogY3JlYXRlT2JqZWN0KCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlY3ljbGUoVCogbykgeworICAgICAgICBJTkNfTUVUUklDX0lGX0RFQlVHKFJlY3ljbGVkKQorICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gZyhtTG9jayk7CisgICAgICAgIG1PYmplY3RzLnB1c2hfYmFjayhzdGQ6OnVuaXF1ZV9wdHI8VD4geyBvIH0gKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgRGVsZXRlcjxUPiYgZ2V0RGVsZXRlcigpIHsKKyAgICAgICAgaWYgKCFtRGVsZXRlci5nZXQoKSkgeworICAgICAgICAgICAgRGVsZXRlcjxUPiAqZCA9IG5ldyBEZWxldGVyPFQ+KHN0ZDo6YmluZCgKKyAgICAgICAgICAgICAgICAmT2JqZWN0UG9vbDo6cmVjeWNsZSwgdGhpcywgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xKSk7CisgICAgICAgICAgICBtRGVsZXRlci5yZXNldChkKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKm1EZWxldGVyLmdldCgpOworICAgIH0KKworICAgIHJlY3ljbGFibGVfcHRyPFQ+IHdyYXAoVCogcmF3KSB7CisgICAgICAgIHJldHVybiByZWN5Y2xhYmxlX3B0cjxUPiB7IHJhdywgZ2V0RGVsZXRlcigpIH07CisgICAgfQorCitwcml2YXRlOgorICAgIG11dGFibGUgc3RkOjptdXRleCBtTG9jazsKKyAgICBzdGQ6OmRlcXVlPHN0ZDo6dW5pcXVlX3B0cjxUPj4gbU9iamVjdHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPERlbGV0ZXI8VD4+IG1EZWxldGVyOworfTsKKworLyoqCisgKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgcG9vbCBvZiByZWN5Y2FibGUgVmVoaWNsZVByb3BlcnR5VmFsdWUgb2JqZWN0cy4KKyAqCisgKiBJdCBoYXMgb25seSBvbmUgb3ZlcmxvYWRlZCBwdWJsaWMgbWV0aG9kIC0gb2J0YWluKC4uLiksIHVzZXJzIG11c3QgY2FsbCB0aGlzCisgKiBtZXRob2Qgd2hlbiBuZXcgb2JqZWN0IGlzIG5lZWRlZCB3aXRoIGdpdmVuIFZlaGljbGVQcm9wZXJ0eVR5cGUgYW5kIHZlY3RvcgorICogc2l6ZSAoZm9yIHZlY3RvciBwcm9wZXJ0aWVzKS4gVGhpcyBtZXRob2QgcmV0dXJucyBhIHJlY3ljYWJsZSBzbWFydCBwb2ludGVyCisgKiB0byBWZWhpY2xlUHJvcGVydHlWYWx1ZSwgZXNzZW50aWFsbHkgdGhpcyBpcyBhIHN0ZDo6dW5pcXVlX3B0ciB3aXRoIGN1c3RvbQorICogZGVsZXRlIGZ1bmN0aW9uLCBzbyByZWN5Y2FibGUgb2JqZWN0IGhhcyBvbmx5IG9uZSBvd25lciBhbmQgZGV2ZWxvcGVycyBjYW4KKyAqIHNhZmVseSBwYXNzIGl0IGFyb3VuZC4gT25jZSB0aGlzIG9iamVjdCBnb2VzIG91dCBvZiBzY29wZSwgaXQgd2lsbCBiZQorICogcmV0dXJuZWQgdGhlIHRoZSBvYmplY3QgcG9vbC4KKyAqCisgKiBTb21lIG9iamVjdHMgYXJlIG5vdCByZWN5Y2FibGU6IHN0cmluZ3MgYW5kIHZlY3RvciBkYXRhIHR5cGVzIHdpdGgKKyAqIHZlY3RvciBsZW5ndGggPiBtYXhSZWN5Y2xhYmxlVmVjdG9yU2l6ZSAocHJvdmlkZWQgaW4gdGhlIGNvbnN0cnVjdG9yKS4gVGhlc2UKKyAqIG9iamVjdHMgd2lsbCBiZSBkZWxldGVkIGltbWVkaWF0ZWx5IG9uY2UgdGhlIGdvIG91dCBvZiBzY29wZS4gVGhlcmUncyBubworICogc3luY2hvcm5pemF0aW9uIHBlbmFsdHkgZm9yIHRoZXNlIG9iamVjdHMgc2luY2Ugd2UgZG8gbm90IHN0b3JlIHRoZW0gaW4gdGhlCisgKiBwb29sLgorICoKKyAqIFRoaXMgY2xhc3MgaXMgdGhyZWFkLXNhZmUuIFVzZXJzIGNhbiBvYnRhaW4gYW4gb2JqZWN0IGluIG9uZSB0aHJlYWQgYW5kIHBhc3MKKyAqIGl0IHRvIGFub3RoZXIuCisgKgorICogU2FtcGxlIHVzYWdlOgorICoKKyAqICAgVmVoaWNsZVByb3BWYWx1ZVBvb2wgcG9vbDsKKyAqICAgYXV0byB2ID0gcG9vbC5vYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzIpOworICogICB2LT5wcm9wSWQgPSBWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEOworICogICB2LT5hcmVhSWQgPSBWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQ7CisgKiAgIHYtPnRpbWVzdGFtcCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAqICAgdi0+dmFsdWUtPmludDMyVmFsdWVzWzBdID0gNDI7CisgKgorICoKKyAqLworY2xhc3MgVmVoaWNsZVByb3BWYWx1ZVBvb2wgeworcHVibGljOgorICAgIHVzaW5nIFJlY3ljbGFibGVUeXBlID0gcmVjeWNsYWJsZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT47CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIFZlaGljbGVQcm9wVmFsdWVQb29sCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWF4UmVjeWNsYWJsZVZlY3RvclNpemUgLSB2ZWN0b3IgdmFsdWUgdHlwZXMgKGUuZy4KKyAgICAgKiBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMl9WRUMpIHdpdGggc2l6ZSBlcXVhbCBvciBsZXNzIHRvIHRoaXMgdmFsdWUKKyAgICAgKiB3aWxsIGJlIHN0b3JlZCBpbiB0aGUgcG9vbC4gSWYgdXNlcnMgdHJpZXMgdG8gb2J0YWluIHZhbHVlIHdpdGggdmVjdG9yCisgICAgICogc2l6ZSBncmVhdGVyIHRoYW4gbWF4UmVjeWNsYWJsZVZlY3RvclNpemUgdXNlciB3aWxsIHJlY2VpdmUgYXBwcm9wcmlhdGUKKyAgICAgKiBvYmplY3QsIGJ1dCBvbmNlIGl0IGdvZXMgb3V0IG9mIHNjb3BlIGl0IHdpbGwgYmUgZGVsZXRlZCBpbW1lZGlhdGVseSwgbm90CisgICAgICogcmV0dXJuaW5nIGJhY2sgdG8gdGhlIG9iamVjdCBwb29sLgorICAgICAqCisgICAgICovCisgICAgVmVoaWNsZVByb3BWYWx1ZVBvb2woc2l6ZV90IG1heFJlY3ljbGFibGVWZWN0b3JTaXplID0gNCkgOgorICAgICAgICBtTWF4UmVjeWNsYWJsZVZlY3RvclNpemUobWF4UmVjeWNsYWJsZVZlY3RvclNpemUpIHt9OworCisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSk7CisKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlLCBzaXplX3QgdmVjU2l6ZSk7CisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHNyYyk7CisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluQm9vbGVhbihib29sIHZhbHVlKTsKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW5JbnQzMihpbnQzMl90IHZhbHVlKTsKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW5JbnQ2NChpbnQ2NF90IHZhbHVlKTsKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW5GbG9hdChmbG9hdCB2YWx1ZSk7CisgICAgUmVjeWNsYWJsZVR5cGUgb2J0YWluU3RyaW5nKGNvbnN0IGNoYXIqIGNzdHIpOworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpbkNvbXBsZXgoKTsKKworICAgIFZlaGljbGVQcm9wVmFsdWVQb29sKFZlaGljbGVQcm9wVmFsdWVQb29sJiApID0gZGVsZXRlOworICAgIFZlaGljbGVQcm9wVmFsdWVQb29sJiBvcGVyYXRvcj0oVmVoaWNsZVByb3BWYWx1ZVBvb2wmKSA9IGRlbGV0ZTsKK3ByaXZhdGU6CisgICAgYm9vbCBpc0Rpc3Bvc2FibGUoVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlLCBzaXplX3QgdmVjU2l6ZSkgY29uc3QgeworICAgICAgICByZXR1cm4gdmVjU2l6ZSA+IG1NYXhSZWN5Y2xhYmxlVmVjdG9yU2l6ZSB8fAorICAgICAgICAgICAgICAgVmVoaWNsZVByb3BlcnR5VHlwZTo6U1RSSU5HID09IHR5cGUgfHwKKyAgICAgICAgICAgICAgIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkNPTVBMRVggPT0gdHlwZTsKKyAgICB9CisKKyAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW5EaXNwb3NhYmxlKFZlaGljbGVQcm9wZXJ0eVR5cGUgdmFsdWVUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZlY3RvclNpemUpIGNvbnN0OworICAgIFJlY3ljbGFibGVUeXBlIG9idGFpblJlY3lsYWJsZShWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB2ZWNTaXplKTsKKworICAgIGNsYXNzIEludGVybmFsUG9vbDogcHVibGljIE9iamVjdFBvb2w8VmVoaWNsZVByb3BWYWx1ZT4geworICAgIHB1YmxpYzoKKyAgICAgICAgSW50ZXJuYWxQb29sKFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSwgc2l6ZV90IHZlY3RvclNpemUpCisgICAgICAgICAgICA6IG1Qcm9wVHlwZSh0eXBlKSwgbVZlY3RvclNpemUodmVjdG9yU2l6ZSkge30KKworICAgICAgICBSZWN5Y2xhYmxlVHlwZSBvYnRhaW4oKSB7CisgICAgICAgICAgICByZXR1cm4gT2JqZWN0UG9vbDxWZWhpY2xlUHJvcFZhbHVlPjo6b2J0YWluKCk7CisgICAgICAgIH0KKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIFZlaGljbGVQcm9wVmFsdWUqIGNyZWF0ZU9iamVjdCgpIG92ZXJyaWRlOworICAgICAgICB2b2lkIHJlY3ljbGUoVmVoaWNsZVByb3BWYWx1ZSogbykgb3ZlcnJpZGU7CisgICAgcHJpdmF0ZToKKyAgICAgICAgYm9vbCBjaGVjayhWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZSogdik7CisKKyAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZlY1R5cGU+CisgICAgICAgIGJvb2wgY2hlY2soaGlkbF92ZWM8VmVjVHlwZT4qIHZlYywgYm9vbCBleHBlY3RlZCkgeworICAgICAgICAgICAgcmV0dXJuIHZlYy0+c2l6ZSgpID09IChleHBlY3RlZCA/IG1WZWN0b3JTaXplIDogMCk7CisgICAgICAgIH0KKyAgICBwcml2YXRlOgorICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlIG1Qcm9wVHlwZTsKKyAgICAgICAgc2l6ZV90IG1WZWN0b3JTaXplOworICAgIH07CisKK3ByaXZhdGU6CisgICAgY29uc3QgRGVsZXRlcjxWZWhpY2xlUHJvcFZhbHVlPiBtRGlzcG9zYWJsZURlbGV0ZXIgeworICAgICAgICBbXSAoVmVoaWNsZVByb3BWYWx1ZSogdikgeworICAgICAgICAgICAgZGVsZXRlIHY7CisgICAgICAgIH0KKyAgICB9OworCitwcml2YXRlOgorICAgIG11dGFibGUgc3RkOjptdXRleCBtTG9jazsKKyAgICBjb25zdCBzaXplX3QgbU1heFJlY3ljbGFibGVWZWN0b3JTaXplOworICAgIHN0ZDo6bWFwPGludDMyX3QsIHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5hbFBvb2w+PiBtVmFsdWVUeXBlUG9vbHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVPYmplY3RQb29sX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVQcm9wQ29uZmlnSW5kZXguaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVByb3BDb25maWdJbmRleC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1MjhmNjgKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVQcm9wQ29uZmlnSW5kZXguaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVQcm9wQ29uZmlnSW5kZXhfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlUHJvcENvbmZpZ0luZGV4X0hfCisKKyNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKKy8qCisgKiBUaGlzIGlzIHRocmVhZC1zYWZlIGltbXV0YWJsZSBjbGFzcyB0byBob2xkIHZlaGljbGUgcHJvcGVydHkgY29uZmlndXJhdGlvbgorICogZGF0YS4KKyAqLworY2xhc3MgVmVoaWNsZVByb3BDb25maWdJbmRleCB7CitwdWJsaWM6CisgICAgVmVoaWNsZVByb3BDb25maWdJbmRleCgKKyAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+JiBwcm9wZXJ0aWVzKQorICAgICAgICA6IG1Db25maWdzKHByb3BlcnRpZXMpLCBtUHJvcFRvQ29uZmlnKG1Db25maWdzKQorICAgIHt9CisKKyAgICBib29sIGhhc0NvbmZpZyhpbnQzMl90IHByb3BlcnR5KSBjb25zdCB7CisgICAgICAgIHJldHVybiBtUHJvcFRvQ29uZmlnLmluZGV4T2ZLZXkocHJvcGVydHkpID49IDA7CisgICAgfQorCisgICAgY29uc3QgVmVoaWNsZVByb3BDb25maWcmIGdldENvbmZpZyhpbnQzMl90IHByb3BlcnR5KSBjb25zdCB7CisgICAgICAgIHJldHVybiAqbVByb3BUb0NvbmZpZy52YWx1ZUZvcihwcm9wZXJ0eSk7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+JiBnZXRBbGxDb25maWdzKCkgY29uc3QgeworICAgICAgICByZXR1cm4gbUNvbmZpZ3M7CisgICAgfQorCitwcml2YXRlOgorICAgIHR5cGVkZWYgS2V5ZWRWZWN0b3I8aW50MzJfdCwgY29uc3QgVmVoaWNsZVByb3BDb25maWcqPiBQcm9wQ29uZmlnTWFwOworICAgIGNsYXNzIEltbXV0YWJsZVByb3BDb25maWdNYXAgOiBwcml2YXRlIFByb3BDb25maWdNYXAgeworICAgIHB1YmxpYzoKKyAgICAgICAgSW1tdXRhYmxlUHJvcENvbmZpZ01hcChjb25zdCBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4mIGNvbmZpZ3MpIHsKKyAgICAgICAgICAgIHNldENhcGFjaXR5KGNvbmZpZ3Muc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoYXV0byYgY29uZmlnIDogY29uZmlncykgeworICAgICAgICAgICAgICAgIGFkZChjb25maWcucHJvcCwgJmNvbmZpZyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICBwdWJsaWM6CisgICAgICAgIHVzaW5nIFByb3BDb25maWdNYXA6OnZhbHVlRm9yOworICAgICAgICB1c2luZyBQcm9wQ29uZmlnTWFwOjppbmRleE9mS2V5OworICAgIH07CisKK3ByaXZhdGU6CisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IG1Db25maWdzOworICAgIGNvbnN0IEltbXV0YWJsZVByb3BDb25maWdNYXAgbVByb3BUb0NvbmZpZzsgIC8vIG1Db25maWdzIG11c3QgYmUgZGVjbGFyZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmaXJzdC4KK307CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZVByb3BDb25maWdJbmRleF9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlUHJvcGVydHlTdG9yZS5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMC9WZWhpY2xlUHJvcGVydHlTdG9yZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkYTk0YjcKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVQcm9wZXJ0eVN0b3JlLmgKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Qcm9wZXJ0eURiX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Qcm9wZXJ0eURiX0hfCisKKyNpbmNsdWRlIDxjc3RkaW50PgorI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPG11dGV4PgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL0lWZWhpY2xlLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKKy8qKgorICogRW5jYXBzdWxhdGVzIHdvcmsgcmVsYXRlZCB0byBzdG9yaW5nIGFuZCBhY2Nlc3NpbmcgY29uZmlndXJhdGlvbiwgc3RvcmluZyBhbmQgbW9kaWZ5aW5nCisgKiB2ZWhpY2xlIHByb3BlcnR5IHZhbHVlcy4KKyAqCisgKiBWZWhpY2xlUHJvcGVydHlWYWx1ZXMgc3RvcmVkIGluIGEgc29ydGVkIG1hcCB0aHVzIGl0IG1ha2VzIGVhc2llciB0byBnZXQgcmFuZ2Ugb2YgdmFsdWVzLCBlLmcuCisgKiB0byBnZXQgdmFsdWUgZm9yIGFsbCBhcmVhcyBmb3IgcGFydGljdWxhciBwcm9wZXJ0eS4KKyAqCisgKiBUaGlzIGNsYXNzIGlzIHRocmVhZC1zYWZlLCBob3dldmVyIGl0IHVzZXMgYmxvY2tpbmcgc3luY2hyb25pemF0aW9uIGFjcm9zcyBhbGwgbWV0aG9kcy4KKyAqLworY2xhc3MgVmVoaWNsZVByb3BlcnR5U3RvcmUgeworcHVibGljOgorICAgIC8qIEZ1bmN0aW9uIHRoYXQgdXNlZCB0byBjYWxjdWxhdGUgdW5pcXVlIHRva2VuIGZvciBnaXZlbiBWZWhpY2xlUHJvcFZhbHVlICovCisgICAgdXNpbmcgVG9rZW5GdW5jdGlvbiA9IHN0ZDo6ZnVuY3Rpb248aW50NjRfdChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZSk+OworCitwcml2YXRlOgorICAgIHN0cnVjdCBSZWNvcmRDb25maWcgeworICAgICAgICBWZWhpY2xlUHJvcENvbmZpZyBwcm9wQ29uZmlnOworICAgICAgICBUb2tlbkZ1bmN0aW9uIHRva2VuRnVuY3Rpb247CisgICAgfTsKKworICAgIHN0cnVjdCBSZWNvcmRJZCB7CisgICAgICAgIGludDMyX3QgcHJvcDsKKyAgICAgICAgaW50MzJfdCBhcmVhOworICAgICAgICBpbnQ2NF90IHRva2VuOworCisgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZWNvcmRJZCYgb3RoZXIpIGNvbnN0OworICAgICAgICBib29sIG9wZXJhdG9yPChjb25zdCBSZWNvcmRJZCYgb3RoZXIpIGNvbnN0OworICAgIH07CisKKyAgICB1c2luZyBQcm9wZXJ0eU1hcCA9IHN0ZDo6bWFwPFJlY29yZElkLCBWZWhpY2xlUHJvcFZhbHVlPjsKKyAgICB1c2luZyBQcm9wZXJ0eU1hcFJhbmdlID0gc3RkOjpwYWlyPFByb3BlcnR5TWFwOjpjb25zdF9pdGVyYXRvciwgUHJvcGVydHlNYXA6OmNvbnN0X2l0ZXJhdG9yPjsKKworcHVibGljOgorICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgY29uZmlnLCBUb2tlbkZ1bmN0aW9uIHRva2VuRnVuYyA9IG51bGxwdHIpOworCisgICAgLyogU3RvcmVzIHByb3ZpZGVkIHZhbHVlLiBSZXR1cm5zIHRydWUgaWYgdmFsdWUgd2FzIHdyaXR0ZW4gcmV0dXJucyBmYWxzZSBpZiBjb25maWcgZm9yCisgICAgICogZXhhbXBsZSB3YXNuJ3QgcmVnaXN0ZXJlZC4gKi8KKyAgICBib29sIHdyaXRlVmFsdWUoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKTsKKworICAgIHZvaWQgcmVtb3ZlVmFsdWUoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKTsKKyAgICB2b2lkIHJlbW92ZVZhbHVlc0ZvclByb3BlcnR5KGludDMyX3QgcHJvcElkKTsKKworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWU+IHJlYWRBbGxWYWx1ZXMoKSBjb25zdDsKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlPiByZWFkVmFsdWVzRm9yUHJvcGVydHkoaW50MzJfdCBwcm9wSWQpIGNvbnN0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPiByZWFkVmFsdWVPck51bGwoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdCkgY29uc3Q7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZlaGljbGVQcm9wVmFsdWU+IHJlYWRWYWx1ZU9yTnVsbChpbnQzMl90IHByb3AsIGludDMyX3QgYXJlYSA9IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHRva2VuID0gMCkgY29uc3Q7CisKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gZ2V0QWxsQ29uZmlncygpIGNvbnN0OworICAgIGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnKiBnZXRDb25maWdPck51bGwoaW50MzJfdCBwcm9wSWQpIGNvbnN0OworICAgIGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnKiBnZXRDb25maWdPckRpZShpbnQzMl90IHByb3BJZCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgUmVjb3JkSWQgZ2V0UmVjb3JkSWRMb2NrZWQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgdmFsdWVQcm90b3R5cGUpIGNvbnN0OworICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUqIGdldFZhbHVlT3JOdWxsTG9ja2VkKGNvbnN0IFJlY29yZElkJiByZWNJZCkgY29uc3Q7CisgICAgUHJvcGVydHlNYXBSYW5nZSBmaW5kUmFuZ2VMb2NrZWQoaW50MzJfdCBwcm9wSWQpIGNvbnN0OworCitwcml2YXRlOgorICAgIHVzaW5nIE11eEd1YXJkID0gc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+OworICAgIG11dGFibGUgc3RkOjptdXRleCBtTG9jazsKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8aW50MzJfdCAvKiBWZWhpY2xlUHJvcGVydHkgKi8sIFJlY29yZENvbmZpZz4gbUNvbmZpZ3M7CisKKyAgICBQcm9wZXJ0eU1hcCBtUHJvcGVydHlWYWx1ZXM7ICAvLyBTb3J0ZWQgbWFwIG9mIFJlY29yZElkIDogVmVoaWNsZVByb3BWYWx1ZS4KK307CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1Byb3BlcnR5RGJfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVV0aWxzLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlMGIxNjMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZVV0aWxzX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZVV0aWxzX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworLyoqIFJlcHJlc2VudHMgYWxsIHN1cHBvcnRlZCBhcmVhcyBmb3IgYSBwcm9wZXJ0eS4gQ2FuIGJlIHVzZWQgaXMgICovCitjb25zdGV4cHIgaW50MzJfdCBrQWxsU3VwcG9ydGVkQXJlYXMgPSAwOworCisvKiogUmV0dXJucyB1bmRlcmx5aW5nIChpbnRlZ2VyKSB2YWx1ZSBmb3IgZ2l2ZW4gZW51bS4gKi8KK3RlbXBsYXRlPHR5cGVuYW1lIEVOVU0+CitpbmxpbmUgY29uc3RleHByIHR5cGVuYW1lIHN0ZDo6dW5kZXJseWluZ190eXBlPEVOVU0+Ojp0eXBlIHRvSW50KAorICAgICAgICBFTlVNIGNvbnN0IHZhbHVlKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6dW5kZXJseWluZ190eXBlPEVOVU0+Ojp0eXBlPih2YWx1ZSk7Cit9CisKK2lubGluZSBjb25zdGV4cHIgVmVoaWNsZVByb3BlcnR5VHlwZSBnZXRQcm9wVHlwZShpbnQzMl90IHByb3ApIHsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmVoaWNsZVByb3BlcnR5VHlwZT4oCisgICAgICAgICAgICBwcm9wICYgdG9JbnQoVmVoaWNsZVByb3BlcnR5VHlwZTo6TUFTSykpOworfQorCitpbmxpbmUgY29uc3RleHByIFZlaGljbGVQcm9wZXJ0eUdyb3VwIGdldFByb3BHcm91cChpbnQzMl90IHByb3ApIHsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmVoaWNsZVByb3BlcnR5R3JvdXA+KAorICAgICAgICAgICAgcHJvcCAmIHRvSW50KFZlaGljbGVQcm9wZXJ0eUdyb3VwOjpNQVNLKSk7Cit9CisKK2lubGluZSBjb25zdGV4cHIgVmVoaWNsZUFyZWEgZ2V0UHJvcEFyZWEoaW50MzJfdCBwcm9wKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFZlaGljbGVBcmVhPihwcm9wICYgdG9JbnQoVmVoaWNsZUFyZWE6Ok1BU0spKTsKK30KKworaW5saW5lIGNvbnN0ZXhwciBib29sIGlzR2xvYmFsUHJvcChpbnQzMl90IHByb3ApIHsKKyAgICByZXR1cm4gZ2V0UHJvcEFyZWEocHJvcCkgPT0gVmVoaWNsZUFyZWE6OkdMT0JBTDsKK30KKworaW5saW5lIGNvbnN0ZXhwciBib29sIGlzU3lzdGVtUHJvcGVydHkoaW50MzJfdCBwcm9wKSB7CisgICAgcmV0dXJuIFZlaGljbGVQcm9wZXJ0eUdyb3VwOjpTWVNURU0gPT0gZ2V0UHJvcEdyb3VwKHByb3ApOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4gY3JlYXRlVmVoaWNsZVByb3BWYWx1ZSgKKyAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsIHNpemVfdCB2ZWNTaXplKTsKKworc2l6ZV90IGdldFZlaGljbGVSYXdWYWx1ZVZlY3RvclNpemUoCisgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWUmIHZhbHVlLCBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUpOworCit2b2lkIGNvcHlWZWhpY2xlUmF3VmFsdWUoVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWUqIGRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlJiBzcmMpOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBzaGFsbG93Q29weUhpZGxWZWMoaGlkbF92ZWM8VD4qIGRlc3QsIGNvbnN0IGhpZGxfdmVjPFQ+JiBzcmMpOworCit2b2lkIHNoYWxsb3dDb3B5SGlkbFN0cihoaWRsX3N0cmluZyogZGVzdCwgY29uc3QgaGlkbF9zdHJpbmcmIHNyYyk7CisKK3ZvaWQgc2hhbGxvd0NvcHkoVmVoaWNsZVByb3BWYWx1ZSogZGVzdCwgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgc3JjKTsKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlVXRpbHNfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1N1YnNjcmlwdGlvbk1hbmFnZXIuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvU3Vic2NyaXB0aW9uTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzRmMGE1ZgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1N1YnNjcmlwdGlvbk1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMzEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhdXRvbW90aXZlLnZlaGljbGVAMi4wLWltcGwiCisKKyNpbmNsdWRlICJTdWJzY3JpcHRpb25NYW5hZ2VyLmgiCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgIlZlaGljbGVVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCitib29sIG1lcmdlU3Vic2NyaWJlT3B0aW9ucyhjb25zdCBTdWJzY3JpYmVPcHRpb25zICZvbGRPcHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU3Vic2NyaWJlT3B0aW9ucyAmbmV3T3B0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgKm91dFJlc3VsdCkgeworCisgICAgaW50MzJfdCB1cGRhdGVkQXJlYXMgPSBvbGRPcHRzLnZlaGljbGVBcmVhczsKKyAgICBpZiAodXBkYXRlZEFyZWFzICE9IGtBbGxTdXBwb3J0ZWRBcmVhcykgeworICAgICAgICB1cGRhdGVkQXJlYXMgPSBuZXdPcHRzLnZlaGljbGVBcmVhcyAhPSBrQWxsU3VwcG9ydGVkQXJlYXMKKyAgICAgICAgICAgID8gdXBkYXRlZEFyZWFzIHwgbmV3T3B0cy52ZWhpY2xlQXJlYXMKKyAgICAgICAgICAgIDoga0FsbFN1cHBvcnRlZEFyZWFzOworICAgIH0KKworICAgIGZsb2F0IHVwZGF0ZWRSYXRlID0gc3RkOjptYXgob2xkT3B0cy5zYW1wbGVSYXRlLCBuZXdPcHRzLnNhbXBsZVJhdGUpOworICAgIFN1YnNjcmliZUZsYWdzIHVwZGF0ZWRGbGFncyA9IFN1YnNjcmliZUZsYWdzKG9sZE9wdHMuZmxhZ3MgfCBuZXdPcHRzLmZsYWdzKTsKKworICAgIGJvb2wgdXBkYXRlZCA9IHVwZGF0ZWRSYXRlID4gb2xkT3B0cy5zYW1wbGVSYXRlCisgICAgICAgICAgICAgICAgICAgfHwgdXBkYXRlZEFyZWFzICE9IG9sZE9wdHMudmVoaWNsZUFyZWFzCisgICAgICAgICAgICAgICAgICAgfHwgdXBkYXRlZEZsYWdzICE9IG9sZE9wdHMuZmxhZ3M7CisgICAgaWYgKHVwZGF0ZWQpIHsKKyAgICAgICAgKm91dFJlc3VsdCA9IG9sZE9wdHM7CisgICAgICAgIG91dFJlc3VsdC0+dmVoaWNsZUFyZWFzID0gdXBkYXRlZEFyZWFzOworICAgICAgICBvdXRSZXN1bHQtPnNhbXBsZVJhdGUgPSB1cGRhdGVkUmF0ZTsKKyAgICAgICAgb3V0UmVzdWx0LT5mbGFncyA9IHVwZGF0ZWRGbGFnczsKKyAgICB9CisKKyAgICByZXR1cm4gdXBkYXRlZDsKK30KKwordm9pZCBIYWxDbGllbnQ6OmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKGNvbnN0IFN1YnNjcmliZU9wdGlvbnMgJm9wdHMpICB7CisgICAgQUxPR0koIiVzIG9wdHMucHJvcElkOiAweCV4IiwgX19mdW5jX18sIG9wdHMucHJvcElkKTsKKworICAgIGF1dG8gaXQgPSBtU3Vic2NyaXB0aW9ucy5maW5kKG9wdHMucHJvcElkKTsKKyAgICBpZiAoaXQgPT0gbVN1YnNjcmlwdGlvbnMuZW5kKCkpIHsKKyAgICAgICAgbVN1YnNjcmlwdGlvbnMuZW1wbGFjZShvcHRzLnByb3BJZCwgb3B0cyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uc3QgU3Vic2NyaWJlT3B0aW9ucyYgb2xkT3B0cyA9IGl0LT5zZWNvbmQ7CisgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgdXBkYXRlZE9wdGlvbnM7CisgICAgICAgIGlmIChtZXJnZVN1YnNjcmliZU9wdGlvbnMob2xkT3B0cywgb3B0cywgJnVwZGF0ZWRPcHRpb25zKSkgeworICAgICAgICAgICAgbVN1YnNjcmlwdGlvbnMuZXJhc2UoaXQpOworICAgICAgICAgICAgbVN1YnNjcmlwdGlvbnMuZW1wbGFjZShvcHRzLnByb3BJZCwgdXBkYXRlZE9wdGlvbnMpOworICAgICAgICB9CisgICAgfQorfQorCitib29sIEhhbENsaWVudDo6aXNTdWJzY3JpYmVkKGludDMyX3QgcHJvcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGFyZWFJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpIHsKKyAgICBhdXRvIGl0ID0gbVN1YnNjcmlwdGlvbnMuZmluZChwcm9wSWQpOworICAgIGlmIChpdCA9PSBtU3Vic2NyaXB0aW9ucy5lbmQoKSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGNvbnN0IFN1YnNjcmliZU9wdGlvbnMmIG9wdHMgPSBpdC0+c2Vjb25kOworICAgIGJvb2wgcmVzID0gKG9wdHMuZmxhZ3MgJiBmbGFncykKKyAgICAgICAgICAgJiYgKG9wdHMudmVoaWNsZUFyZWFzID09IDAgfHwgYXJlYUlkID09IDAgfHwgb3B0cy52ZWhpY2xlQXJlYXMgJiBhcmVhSWQpOworICAgIHJldHVybiByZXM7Cit9CisKK3N0ZDo6dmVjdG9yPGludDMyX3Q+IEhhbENsaWVudDo6Z2V0U3Vic2NyaWJlZFByb3BlcnRpZXMoKSBjb25zdCB7CisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gcHJvcHM7CisgICAgZm9yIChjb25zdCBhdXRvJiBzdWJzY3JpcHRpb24gOiBtU3Vic2NyaXB0aW9ucykgeworICAgICAgICBBTE9HSSgiJXMgcHJvcElkOiAweCV4LCBwcm9wSWQ6IDB4JXgiLCBfX2Z1bmNfXywgc3Vic2NyaXB0aW9uLmZpcnN0LCBzdWJzY3JpcHRpb24uc2Vjb25kLnByb3BJZCk7CisgICAgICAgIHByb3BzLnB1c2hfYmFjayhzdWJzY3JpcHRpb24uZmlyc3QpOworICAgIH0KKyAgICByZXR1cm4gcHJvcHM7Cit9CisKK1N0YXR1c0NvZGUgU3Vic2NyaXB0aW9uTWFuYWdlcjo6YWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oCisgICAgICAgIENsaWVudElkIGNsaWVudElkLAorICAgICAgICBjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiAmY2FsbGJhY2ssCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+ICZvcHRpb25MaXN0LAorICAgICAgICBzdGQ6Omxpc3Q8U3Vic2NyaWJlT3B0aW9ucz4qIG91dFVwZGF0ZWRTdWJzY3JpcHRpb25zKSB7CisgICAgb3V0VXBkYXRlZFN1YnNjcmlwdGlvbnMtPmNsZWFyKCk7CisKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKworICAgIEFMT0dJKCJTdWJzY3JpcHRpb25NYW5hZ2VyOjphZGRPclVwZGF0ZVN1YnNjcmlwdGlvbiwgY2FsbGJhY2s6ICVwIiwgY2FsbGJhY2suZ2V0KCkpOworCisgICAgY29uc3Qgc3A8SGFsQ2xpZW50PiYgY2xpZW50ID0gZ2V0T3JDcmVhdGVIYWxDbGllbnRMb2NrZWQoY2xpZW50SWQsIGNhbGxiYWNrKTsKKyAgICBpZiAoY2xpZW50LmdldCgpID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVEVSTkFMX0VSUk9SOworICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3B0aW9uTGlzdC5zaXplKCk7IGkrKykgeworICAgICAgICBjb25zdCBTdWJzY3JpYmVPcHRpb25zJiBvcHRzID0gb3B0aW9uTGlzdFtpXTsKKyAgICAgICAgQUxPR0koIlN1YnNjcmlwdGlvbk1hbmFnZXI6OmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uLCBwcm9wOiAweCV4Iiwgb3B0cy5wcm9wSWQpOworICAgICAgICBjbGllbnQtPmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKG9wdHMpOworCisgICAgICAgIGFkZENsaWVudFRvUHJvcE1hcExvY2tlZChvcHRzLnByb3BJZCwgY2xpZW50KTsKKworICAgICAgICBpZiAoU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVCAmIG9wdHMuZmxhZ3MpIHsKKyAgICAgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgdXBkYXRlZDsKKyAgICAgICAgICAgIGlmICh1cGRhdGVIYWxFdmVudFN1YnNjcmlwdGlvbkxvY2tlZChvcHRzLCAmdXBkYXRlZCkpIHsKKyAgICAgICAgICAgICAgICBvdXRVcGRhdGVkU3Vic2NyaXB0aW9ucy0+cHVzaF9iYWNrKHVwZGF0ZWQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworfQorCitzdGQ6Omxpc3Q8SGFsQ2xpZW50VmFsdWVzPiBTdWJzY3JpcHRpb25NYW5hZ2VyOjpkaXN0cmlidXRlVmFsdWVzVG9DbGllbnRzKAorICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxyZWN5Y2xhYmxlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPj4mIHByb3BWYWx1ZXMsCisgICAgICAgIFN1YnNjcmliZUZsYWdzIGZsYWdzKSBjb25zdCB7CisgICAgc3RkOjptYXA8c3A8SGFsQ2xpZW50Piwgc3RkOjpsaXN0PFZlaGljbGVQcm9wVmFsdWUqPj4gY2xpZW50VmFsdWVzTWFwOworCisgICAgeworICAgICAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwcm9wVmFsdWU6IHByb3BWYWx1ZXMpIHsKKyAgICAgICAgICAgIFZlaGljbGVQcm9wVmFsdWUqIHYgPSBwcm9wVmFsdWUuZ2V0KCk7CisgICAgICAgICAgICBhdXRvIGNsaWVudHMgPSBnZXRTdWJzY3JpYmVkQ2xpZW50c0xvY2tlZCgKKyAgICAgICAgICAgICAgICB2LT5wcm9wLCB2LT5hcmVhSWQsIGZsYWdzKTsKKyAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgY2xpZW50IDogY2xpZW50cykgeworICAgICAgICAgICAgICAgIGNsaWVudFZhbHVlc01hcFtjbGllbnRdLnB1c2hfYmFjayh2KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHN0ZDo6bGlzdDxIYWxDbGllbnRWYWx1ZXM+IGNsaWVudFZhbHVlczsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGVudHJ5IDogY2xpZW50VmFsdWVzTWFwKSB7CisgICAgICAgIGNsaWVudFZhbHVlcy5wdXNoX2JhY2soSGFsQ2xpZW50VmFsdWVzIHsKKyAgICAgICAgICAgIC5jbGllbnQgPSBlbnRyeS5maXJzdCwKKyAgICAgICAgICAgIC52YWx1ZXMgPSBlbnRyeS5zZWNvbmQKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcmV0dXJuIGNsaWVudFZhbHVlczsKK30KKworc3RkOjpsaXN0PHNwPEhhbENsaWVudD4+IFN1YnNjcmlwdGlvbk1hbmFnZXI6OmdldFN1YnNjcmliZWRDbGllbnRzKAorICAgIGludDMyX3QgcHJvcElkLCBpbnQzMl90IGFyZWEsIFN1YnNjcmliZUZsYWdzIGZsYWdzKSBjb25zdCB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgcmV0dXJuIGdldFN1YnNjcmliZWRDbGllbnRzTG9ja2VkKHByb3BJZCwgYXJlYSwgZmxhZ3MpOworfQorCitzdGQ6Omxpc3Q8c3A8SGFsQ2xpZW50Pj4gU3Vic2NyaXB0aW9uTWFuYWdlcjo6Z2V0U3Vic2NyaWJlZENsaWVudHNMb2NrZWQoCisgICAgICAgIGludDMyX3QgcHJvcElkLCBpbnQzMl90IGFyZWEsIFN1YnNjcmliZUZsYWdzIGZsYWdzKSBjb25zdCB7CisgICAgc3RkOjpsaXN0PHNwPEhhbENsaWVudD4+IHN1YnNjcmliZWRDbGllbnRzOworCisgICAgc3A8SGFsQ2xpZW50VmVjdG9yPiBwcm9wQ2xpZW50cyA9IGdldENsaWVudHNGb3JQcm9wZXJ0eUxvY2tlZChwcm9wSWQpOworICAgIGlmIChwcm9wQ2xpZW50cy5nZXQoKSAhPSBudWxscHRyKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcHJvcENsaWVudHMtPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBjb25zdCBhdXRvJiBjbGllbnQgPSBwcm9wQ2xpZW50cy0+aXRlbUF0KGkpOworICAgICAgICAgICAgaWYgKGNsaWVudC0+aXNTdWJzY3JpYmVkKHByb3BJZCwgYXJlYSwgZmxhZ3MpKSB7CisgICAgICAgICAgICAgICAgc3Vic2NyaWJlZENsaWVudHMucHVzaF9iYWNrKGNsaWVudCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gc3Vic2NyaWJlZENsaWVudHM7Cit9CisKK2Jvb2wgU3Vic2NyaXB0aW9uTWFuYWdlcjo6dXBkYXRlSGFsRXZlbnRTdWJzY3JpcHRpb25Mb2NrZWQoCisgICAgICAgIGNvbnN0IFN1YnNjcmliZU9wdGlvbnMgJm9wdHMsIFN1YnNjcmliZU9wdGlvbnMgKm91dFVwZGF0ZWQpIHsKKyAgICBib29sIHVwZGF0ZWQgPSBmYWxzZTsKKyAgICBhdXRvIGl0ID0gbUhhbEV2ZW50U3Vic2NyaWJlT3B0aW9ucy5maW5kKG9wdHMucHJvcElkKTsKKyAgICBpZiAoaXQgPT0gbUhhbEV2ZW50U3Vic2NyaWJlT3B0aW9ucy5lbmQoKSkgeworICAgICAgICAqb3V0VXBkYXRlZCA9IG9wdHM7CisgICAgICAgIG1IYWxFdmVudFN1YnNjcmliZU9wdGlvbnMuZW1wbGFjZShvcHRzLnByb3BJZCwgb3B0cyk7CisgICAgICAgIHVwZGF0ZWQgPSB0cnVlOworICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnN0IFN1YnNjcmliZU9wdGlvbnMmIG9sZE9wdHMgPSBpdC0+c2Vjb25kOworCisgICAgICAgIGlmIChtZXJnZVN1YnNjcmliZU9wdGlvbnMob2xkT3B0cywgb3B0cywgb3V0VXBkYXRlZCkpIHsKKyAgICAgICAgICAgIG1IYWxFdmVudFN1YnNjcmliZU9wdGlvbnMuZXJhc2Uob3B0cy5wcm9wSWQpOworICAgICAgICAgICAgbUhhbEV2ZW50U3Vic2NyaWJlT3B0aW9ucy5lbXBsYWNlKG9wdHMucHJvcElkLCAqb3V0VXBkYXRlZCk7CisgICAgICAgICAgICB1cGRhdGVkID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB1cGRhdGVkOworfQorCit2b2lkIFN1YnNjcmlwdGlvbk1hbmFnZXI6OmFkZENsaWVudFRvUHJvcE1hcExvY2tlZCgKKyAgICAgICAgaW50MzJfdCBwcm9wSWQsIGNvbnN0IHNwPEhhbENsaWVudD4gJmNsaWVudCkgeworICAgIGF1dG8gaXQgPSBtUHJvcFRvQ2xpZW50cy5maW5kKHByb3BJZCk7CisgICAgc3A8SGFsQ2xpZW50VmVjdG9yPiBwcm9wQ2xpZW50czsKKyAgICBpZiAoaXQgPT0gbVByb3BUb0NsaWVudHMuZW5kKCkpIHsKKyAgICAgICAgcHJvcENsaWVudHMgPSBuZXcgSGFsQ2xpZW50VmVjdG9yKCk7CisgICAgICAgIG1Qcm9wVG9DbGllbnRzLmluc2VydChzdGQ6Om1ha2VfcGFpcihwcm9wSWQsIHByb3BDbGllbnRzKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHJvcENsaWVudHMgPSBpdC0+c2Vjb25kOworICAgIH0KKyAgICBwcm9wQ2xpZW50cy0+YWRkT3JVcGRhdGUoY2xpZW50KTsKK30KKworc3A8SGFsQ2xpZW50VmVjdG9yPiBTdWJzY3JpcHRpb25NYW5hZ2VyOjpnZXRDbGllbnRzRm9yUHJvcGVydHlMb2NrZWQoCisgICAgICAgIGludDMyX3QgcHJvcElkKSBjb25zdCB7CisgICAgYXV0byBpdCA9IG1Qcm9wVG9DbGllbnRzLmZpbmQocHJvcElkKTsKKyAgICByZXR1cm4gaXQgPT0gbVByb3BUb0NsaWVudHMuZW5kKCkgPyBudWxscHRyIDogaXQtPnNlY29uZDsKK30KKworc3A8SGFsQ2xpZW50PiBTdWJzY3JpcHRpb25NYW5hZ2VyOjpnZXRPckNyZWF0ZUhhbENsaWVudExvY2tlZCgKKyAgICAgICAgQ2xpZW50SWQgY2xpZW50SWQsIGNvbnN0IHNwPElWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjaykgeworICAgIGF1dG8gaXQgPSBtQ2xpZW50cy5maW5kKGNsaWVudElkKTsKKworICAgIGlmIChpdCA9PSBtQ2xpZW50cy5lbmQoKSkgeworICAgICAgICB1aW50NjRfdCBjb29raWUgPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90PihjbGllbnRJZCk7CisgICAgICAgIEFMT0dJKCJDcmVhdGluZyBuZXcgY2xpZW50IGFuZCBsaW5raW5nIHRvIGRlYXRoIHJlY2lwaWVudCwgY29va2llOiAweCUiIFBSSXg2NCwgY29va2llKTsKKyAgICAgICAgYXV0byByZXMgPSBjYWxsYmFjay0+bGlua1RvRGVhdGgobUNhbGxiYWNrRGVhdGhSZWNpcGllbnQsIGNvb2tpZSk7CisgICAgICAgIGlmICghcmVzLmlzT2soKSkgeyAgLy8gQ2xpZW50IGlzIGFscmVhZHkgZGVhZD8KKyAgICAgICAgICAgIEFMT0dXKCIlcyBmYWlsZWQgdG8gbGluayB0byBkZWF0aCwgY2xpZW50ICVwLCBlcnI6ICVzIiwKKyAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBjYWxsYmFjay5nZXQoKSwgcmVzLmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorCisgICAgICAgIHNwPEhhbENsaWVudD4gY2xpZW50ID0gbmV3IEhhbENsaWVudChjYWxsYmFjayk7CisgICAgICAgIG1DbGllbnRzLmluc2VydCh7Y2xpZW50SWQsIGNsaWVudH0pOworICAgICAgICByZXR1cm4gY2xpZW50OworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBpdC0+c2Vjb25kOworICAgIH0KK30KKwordm9pZCBTdWJzY3JpcHRpb25NYW5hZ2VyOjp1bnN1YnNjcmliZShDbGllbnRJZCBjbGllbnRJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwcm9wSWQpIHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBhdXRvIHByb3BlcnR5Q2xpZW50cyA9IGdldENsaWVudHNGb3JQcm9wZXJ0eUxvY2tlZChwcm9wSWQpOworICAgIGF1dG8gY2xpZW50SXRlciA9IG1DbGllbnRzLmZpbmQoY2xpZW50SWQpOworICAgIGlmIChjbGllbnRJdGVyID09IG1DbGllbnRzLmVuZCgpKSB7CisgICAgICAgIEFMT0dXKCJVbmFibGUgdG8gdW5zdWJzY3JpYmU6IG5vIGNhbGxiYWNrIGZvdW5kLCBwcm9wSWQ6IDB4JXgiLCBwcm9wSWQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gY2xpZW50ID0gY2xpZW50SXRlci0+c2Vjb25kOworCisgICAgICAgIGlmIChwcm9wZXJ0eUNsaWVudHMgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgcHJvcGVydHlDbGllbnRzLT5yZW1vdmUoY2xpZW50KTsKKworICAgICAgICAgICAgaWYgKHByb3BlcnR5Q2xpZW50cy0+aXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgbVByb3BUb0NsaWVudHMuZXJhc2UocHJvcElkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaXNDbGllbnRTdWJzY3JpYmVkVG9PdGhlclByb3BzID0gZmFsc2U7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcHJvcENsaWVudCA6IG1Qcm9wVG9DbGllbnRzKSB7CisgICAgICAgICAgICBpZiAocHJvcENsaWVudC5zZWNvbmQtPmluZGV4T2YoY2xpZW50KSA+PSAwKSB7CisgICAgICAgICAgICAgICAgaXNDbGllbnRTdWJzY3JpYmVkVG9PdGhlclByb3BzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICghaXNDbGllbnRTdWJzY3JpYmVkVG9PdGhlclByb3BzKSB7CisgICAgICAgICAgICBhdXRvIHJlcyA9IGNsaWVudC0+Z2V0Q2FsbGJhY2soKS0+dW5saW5rVG9EZWF0aChtQ2FsbGJhY2tEZWF0aFJlY2lwaWVudCk7CisgICAgICAgICAgICBpZiAoIXJlcy5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HVygiJXMgZmFpbGVkIHRvIHVubGluayB0byBkZWF0aCwgY2xpZW50OiAlcCwgZXJyOiAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGNsaWVudC0+Z2V0Q2FsbGJhY2soKS5nZXQoKSwgcmVzLmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtQ2xpZW50cy5lcmFzZShjbGllbnRJdGVyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChwcm9wZXJ0eUNsaWVudHMgPT0gbnVsbHB0ciB8fCBwcm9wZXJ0eUNsaWVudHMtPmlzRW1wdHkoKSkgeworICAgICAgICBtSGFsRXZlbnRTdWJzY3JpYmVPcHRpb25zLmVyYXNlKHByb3BJZCk7CisgICAgICAgIG1PblByb3BlcnR5VW5zdWJzY3JpYmVkKHByb3BJZCk7CisgICAgfQorfQorCit2b2lkIFN1YnNjcmlwdGlvbk1hbmFnZXI6Om9uQ2FsbGJhY2tEZWFkKHVpbnQ2NF90IGNvb2tpZSkgeworICAgIEFMT0dJKCIlcywgY29va2llOiAweCUiIFBSSXg2NCwgX19mdW5jX18sIGNvb2tpZSk7CisgICAgQ2xpZW50SWQgY2xpZW50SWQgPSBjb29raWU7CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBwcm9wczsKKyAgICB7CisgICAgICAgIE11eEd1YXJkIGcobUxvY2spOworICAgICAgICBjb25zdCBhdXRvJiBpdCA9IG1DbGllbnRzLmZpbmQoY2xpZW50SWQpOworICAgICAgICBpZiAoaXQgPT0gbUNsaWVudHMuZW5kKCkpIHsKKyAgICAgICAgICAgIHJldHVybjsgIC8vIE5vdGhpbmcgdG8gZG8gaGVyZSwgY2xpZW50IHdhc24ndCBzdWJzY3JpYmVkIHRvIGFueSBwcm9wZXJ0aWVzLgorICAgICAgICB9CisgICAgICAgIGNvbnN0IGF1dG8mIGhhbENsaWVudCA9IGl0LT5zZWNvbmQ7CisgICAgICAgIHByb3BzID0gaGFsQ2xpZW50LT5nZXRTdWJzY3JpYmVkUHJvcGVydGllcygpOworICAgIH0KKworICAgIGZvciAoaW50MzJfdCBwcm9wSWQgOiBwcm9wcykgeworICAgICAgICB1bnN1YnNjcmliZShjbGllbnRJZCwgcHJvcElkKTsKKyAgICB9Cit9CisKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZUhhbE1hbmFnZXIuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZUhhbE1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlNTQzYmIKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlSGFsTWFuYWdlci5jcHAKQEAgLTAsMCArMSwzNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImF1dG9tb3RpdmUudmVoaWNsZUAyLjAtaW1wbCIKKworI2luY2x1ZGUgIlZlaGljbGVIYWxNYW5hZ2VyLmgiCisKKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxmc3RyZWFtPgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvQnBId1ZlaGljbGVDYWxsYmFjay5oPgorCisjaW5jbHVkZSAiVmVoaWNsZVV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ6OnBsYWNlaG9sZGVyczsKKworY29uc3RleHByIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMga0hhbEV2ZW50QmF0Y2hpbmdUaW1lV2luZG93KDEwKTsKKworY29uc3QgVmVoaWNsZVByb3BWYWx1ZSBrRW1wdHlWYWx1ZXt9OworCisvKioKKyAqIEluZGljYXRlcyB3aGF0J3MgdGhlIG1heGltdW0gc2l6ZSBvZiBoaWRsX3ZlYzxWZWhpY2xlUHJvcFZhbHVlPiB3ZSB3YW50CisgKiB0byBzdG9yZSBpbiByZXVzYWJsZSBvYmplY3QgcG9vbC4KKyAqLworY29uc3RleHByIGF1dG8ga01heEhpZGxWZWNPZlZlaGljbFByb3BWYWx1ZVBvb2xTaXplID0gMjA7CisKK1JldHVybjx2b2lkPiBWZWhpY2xlSGFsTWFuYWdlcjo6Z2V0QWxsUHJvcENvbmZpZ3MoZ2V0QWxsUHJvcENvbmZpZ3NfY2IgX2hpZGxfY2IpIHsKKyAgICBBTE9HSSgiZ2V0QWxsUHJvcENvbmZpZ3MgY2FsbGVkIik7CisgICAgaGlkbF92ZWM8VmVoaWNsZVByb3BDb25maWc+IGhpZGxDb25maWdzOworICAgIGF1dG8mIGhhbENvbmZpZyA9IG1Db25maWdJbmRleC0+Z2V0QWxsQ29uZmlncygpOworCisgICAgaGlkbENvbmZpZ3Muc2V0VG9FeHRlcm5hbCgKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8VmVoaWNsZVByb3BDb25maWcgKj4oaGFsQ29uZmlnLmRhdGEoKSksCisgICAgICAgICAgICBoYWxDb25maWcuc2l6ZSgpKTsKKworICAgIF9oaWRsX2NiKGhpZGxDb25maWdzKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBWZWhpY2xlSGFsTWFuYWdlcjo6Z2V0UHJvcENvbmZpZ3MoY29uc3QgaGlkbF92ZWM8aW50MzJfdD4gJnByb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFByb3BDb25maWdzX2NiIF9oaWRsX2NiKSB7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGNvbmZpZ3M7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGF1dG8gcHJvcCA9IHByb3BlcnRpZXNbaV07CisgICAgICAgIGlmIChtQ29uZmlnSW5kZXgtPmhhc0NvbmZpZyhwcm9wKSkgeworICAgICAgICAgICAgY29uZmlncy5wdXNoX2JhY2sobUNvbmZpZ0luZGV4LT5nZXRDb25maWcocHJvcCkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR1coIlJlcXVlc3RlZCBjb25maWcgZm9yIHVuZGVmaW5lZCBwcm9wZXJ0eTogMHgleCIsIHByb3ApOworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkcsIGhpZGxfdmVjPFZlaGljbGVQcm9wQ29uZmlnPigpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIF9oaWRsX2NiKFN0YXR1c0NvZGU6Ok9LLCBjb25maWdzKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBWZWhpY2xlSGFsTWFuYWdlcjo6Z2V0KGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwgZ2V0X2NiIF9oaWRsX2NiKSB7CisgICAgY29uc3QgYXV0byogY29uZmlnID0gZ2V0UHJvcENvbmZpZ09yTnVsbChyZXF1ZXN0ZWRQcm9wVmFsdWUucHJvcCk7CisgICAgaWYgKGNvbmZpZyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gZ2V0IHZhbHVlOiBjb25maWcgbm90IGZvdW5kLCBwcm9wZXJ0eTogMHgleCIsCisgICAgICAgICAgICAgIHJlcXVlc3RlZFByb3BWYWx1ZS5wcm9wKTsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkcsIGtFbXB0eVZhbHVlKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpZiAoIWNoZWNrUmVhZFBlcm1pc3Npb24oKmNvbmZpZykpIHsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzQ29kZTo6QUNDRVNTX0RFTklFRCwga0VtcHR5VmFsdWUpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFN0YXR1c0NvZGUgc3RhdHVzOworICAgIGF1dG8gdmFsdWUgPSBtSGFsLT5nZXQocmVxdWVzdGVkUHJvcFZhbHVlLCAmc3RhdHVzKTsKKyAgICBfaGlkbF9jYihzdGF0dXMsIHZhbHVlLmdldCgpID8gKnZhbHVlIDoga0VtcHR5VmFsdWUpOworCisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48U3RhdHVzQ29kZT4gVmVoaWNsZUhhbE1hbmFnZXI6OnNldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlICZ2YWx1ZSkgeworICAgIGF1dG8gcHJvcCA9IHZhbHVlLnByb3A7CisgICAgY29uc3QgYXV0byogY29uZmlnID0gZ2V0UHJvcENvbmZpZ09yTnVsbChwcm9wKTsKKyAgICBpZiAoY29uZmlnID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIkZhaWxlZCB0byBzZXQgdmFsdWU6IGNvbmZpZyBub3QgZm91bmQsIHByb3BlcnR5OiAweCV4IiwgcHJvcCk7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICB9CisKKyAgICBpZiAoIWNoZWNrV3JpdGVQZXJtaXNzaW9uKCpjb25maWcpKSB7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpBQ0NFU1NfREVOSUVEOworICAgIH0KKworICAgIGhhbmRsZVByb3BlcnR5U2V0RXZlbnQodmFsdWUpOworCisgICAgYXV0byBzdGF0dXMgPSBtSGFsLT5zZXQodmFsdWUpOworCisgICAgcmV0dXJuIFJldHVybjxTdGF0dXNDb2RlPihzdGF0dXMpOworfQorCitSZXR1cm48U3RhdHVzQ29kZT4gVmVoaWNsZUhhbE1hbmFnZXI6OnN1YnNjcmliZShjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiAmY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiAmb3B0aW9ucykgeworICAgIGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+IHZlcmlmaWVkT3B0aW9ucyhvcHRpb25zKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlcmlmaWVkT3B0aW9ucy5zaXplKCk7IGkrKykgeworICAgICAgICBTdWJzY3JpYmVPcHRpb25zJiBvcHMgPSB2ZXJpZmllZE9wdGlvbnNbaV07CisgICAgICAgIGF1dG8gcHJvcCA9IG9wcy5wcm9wSWQ7CisKKyAgICAgICAgY29uc3QgYXV0byogY29uZmlnID0gZ2V0UHJvcENvbmZpZ09yTnVsbChwcm9wKTsKKyAgICAgICAgaWYgKGNvbmZpZyA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIHN1YnNjcmliZTogY29uZmlnIG5vdCBmb3VuZCwgcHJvcGVydHk6IDB4JXgiLAorICAgICAgICAgICAgICAgICAgcHJvcCk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgICAgIH0KKworICAgICAgICBpZiAob3BzLmZsYWdzID09IFN1YnNjcmliZUZsYWdzOjpVTkRFRklORUQpIHsKKyAgICAgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gc3Vic2NyaWJlOiB1bmRlZmluZWQgZmxhZyBpbiBvcHRpb25zIHByb3ZpZGVkIik7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWlzU3Vic2NyaWJhYmxlKCpjb25maWcsIG9wcy5mbGFncykpIHsKKyAgICAgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gc3Vic2NyaWJlOiBwcm9wZXJ0eSAweCV4IGlzIG5vdCBzdWJzY3JpYmFibGUiLAorICAgICAgICAgICAgICAgICAgcHJvcCk7CisgICAgICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgICAgIH0KKworICAgICAgICBpbnQzMl90IGFyZWFzID0gaXNHbG9iYWxQcm9wKHByb3ApID8gMCA6IG9wcy52ZWhpY2xlQXJlYXM7CisgICAgICAgIGlmIChhcmVhcyAhPSAwICYmICgoYXJlYXMgJiBjb25maWctPnN1cHBvcnRlZEFyZWFzKSAhPSBhcmVhcykpIHsKKyAgICAgICAgICAgIEFMT0dFKCJGYWlsZWQgdG8gc3Vic2NyaWJlIHByb3BlcnR5IDB4JXguIFJlcXVlc3RlZCBhcmVhcyAweCV4IGFyZSAiCisgICAgICAgICAgICAgICAgICAib3V0IG9mIHN1cHBvcnRlZCByYW5nZSBvZiAweCV4IiwgcHJvcCwgb3BzLnZlaGljbGVBcmVhcywKKyAgICAgICAgICAgICAgICAgIGNvbmZpZy0+c3VwcG9ydGVkQXJlYXMpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgICAgICB9CisKKyAgICAgICAgb3BzLnZlaGljbGVBcmVhcyA9IGFyZWFzOworICAgICAgICBvcHMuc2FtcGxlUmF0ZSA9IGNoZWNrU2FtcGxlUmF0ZSgqY29uZmlnLCBvcHMuc2FtcGxlUmF0ZSk7CisgICAgfQorCisgICAgc3RkOjpsaXN0PFN1YnNjcmliZU9wdGlvbnM+IHVwZGF0ZWRPcHRpb25zOworICAgIGF1dG8gcmVzID0gbVN1YnNjcmlwdGlvbk1hbmFnZXIuYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oZ2V0Q2xpZW50SWQoY2FsbGJhY2spLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssIHZlcmlmaWVkT3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1cGRhdGVkT3B0aW9ucyk7CisgICAgaWYgKFN0YXR1c0NvZGU6Ok9LICE9IHJlcykgeworICAgICAgICBBTE9HVygiJXMgZmFpbGVkIHRvIHN1YnNjcmliZSwgZXJyb3IgY29kZTogJWQiLCBfX2Z1bmNfXywgcmVzKTsKKyAgICAgICAgcmV0dXJuIHJlczsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8gb3B0IDogdXBkYXRlZE9wdGlvbnMpIHsKKyAgICAgICAgbUhhbC0+c3Vic2NyaWJlKG9wdC5wcm9wSWQsIG9wdC52ZWhpY2xlQXJlYXMsIG9wdC5zYW1wbGVSYXRlKTsKKyAgICB9CisKKyAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7Cit9CisKK1JldHVybjxTdGF0dXNDb2RlPiBWZWhpY2xlSGFsTWFuYWdlcjo6dW5zdWJzY3JpYmUoY29uc3Qgc3A8SVZlaGljbGVDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByb3BJZCkgeworICAgIG1TdWJzY3JpcHRpb25NYW5hZ2VyLnVuc3Vic2NyaWJlKGdldENsaWVudElkKGNhbGxiYWNrKSwgcHJvcElkKTsKKyAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7Cit9CisKK1JldHVybjx2b2lkPiBWZWhpY2xlSGFsTWFuYWdlcjo6ZGVidWdEdW1wKElWZWhpY2xlOjpkZWJ1Z0R1bXBfY2IgX2hpZGxfY2IpIHsKKyAgICBfaGlkbF9jYigiIik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKwordm9pZCBWZWhpY2xlSGFsTWFuYWdlcjo6aW5pdCgpIHsKKyAgICBBTE9HSSgiVmVoaWNsZUhhbE1hbmFnZXI6OmluaXQiKTsKKworICAgIG1IaWRsVmVjT2ZWZWhpY2xlUHJvcFZhbHVlUG9vbC5yZXNpemUoa01heEhpZGxWZWNPZlZlaGljbFByb3BWYWx1ZVBvb2xTaXplKTsKKworCisgICAgbUJhdGNoaW5nQ29uc3VtZXIucnVuKCZtRXZlbnRRdWV1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga0hhbEV2ZW50QmF0Y2hpbmdUaW1lV2luZG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmJpbmQoJlZlaGljbGVIYWxNYW5hZ2VyOjpvbkJhdGNoSGFsRXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBfMSkpOworCisgICAgbUhhbC0+aW5pdCgmbVZhbHVlT2JqZWN0UG9vbCwKKyAgICAgICAgICAgICAgIHN0ZDo6YmluZCgmVmVoaWNsZUhhbE1hbmFnZXI6Om9uSGFsRXZlbnQsIHRoaXMsIF8xKSwKKyAgICAgICAgICAgICAgIHN0ZDo6YmluZCgmVmVoaWNsZUhhbE1hbmFnZXI6Om9uSGFsUHJvcGVydHlTZXRFcnJvciwgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBfMSwgXzIsIF8zKSk7CisKKyAgICAvLyBJbml0aWFsaXplIGluZGV4IHdpdGggdmVoaWNsZSBjb25maWd1cmF0aW9ucyByZWNlaXZlZCBmcm9tIFZlaGljbGVIYWwuCisgICAgYXV0byBzdXBwb3J0ZWRQcm9wQ29uZmlncyA9IG1IYWwtPmxpc3RQcm9wZXJ0aWVzKCk7CisgICAgbUNvbmZpZ0luZGV4LnJlc2V0KG5ldyBWZWhpY2xlUHJvcENvbmZpZ0luZGV4KHN1cHBvcnRlZFByb3BDb25maWdzKSk7CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBzdXBwb3J0ZWRQcm9wZXJ0aWVzKAorICAgICAgICBzdXBwb3J0ZWRQcm9wQ29uZmlncy5zaXplKCkpOworICAgIGZvciAoY29uc3QgYXV0byYgY29uZmlnIDogc3VwcG9ydGVkUHJvcENvbmZpZ3MpIHsKKyAgICAgICAgc3VwcG9ydGVkUHJvcGVydGllcy5wdXNoX2JhY2soY29uZmlnLnByb3ApOworICAgIH0KK30KKworVmVoaWNsZUhhbE1hbmFnZXI6On5WZWhpY2xlSGFsTWFuYWdlcigpIHsKKyAgICBtQmF0Y2hpbmdDb25zdW1lci5yZXF1ZXN0U3RvcCgpOworICAgIG1FdmVudFF1ZXVlLmRlYWN0aXZhdGUoKTsKKyAgICAvLyBXZSBoYXZlIHRvIHdhaXQgdW50aWwgY29uc3VtZXIgdGhyZWFkIGlzIGZ1bGx5IHN0b3BwZWQgYmVjYXVzZSBpdCBtYXkKKyAgICAvLyBiZSBpbiBhIHN0YXRlIG9mIHJ1bm5pbmcgY2FsbGJhY2sgKG9uQmF0Y2hIYWxFdmVudCkuCisgICAgbUJhdGNoaW5nQ29uc3VtZXIud2FpdFN0b3BwZWQoKTsKKyAgICBBTE9HSSgiVmVoaWNsZUhhbE1hbmFnZXI6OmR0b3IiKTsKK30KKwordm9pZCBWZWhpY2xlSGFsTWFuYWdlcjo6b25IYWxFdmVudChWZWhpY2xlUHJvcFZhbHVlUHRyIHYpIHsKKyAgICBtRXZlbnRRdWV1ZS5wdXNoKHN0ZDo6bW92ZSh2KSk7Cit9CisKK3ZvaWQgVmVoaWNsZUhhbE1hbmFnZXI6Om9uSGFsUHJvcGVydHlTZXRFcnJvcihTdGF0dXNDb2RlIGVycm9yQ29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgYXJlYUlkKSB7CisgICAgY29uc3QgYXV0byYgY2xpZW50cyA9IG1TdWJzY3JpcHRpb25NYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKAorICAgICAgICAgICAgcHJvcGVydHksIDAsIFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQpOworCisgICAgZm9yIChhdXRvIGNsaWVudCA6IGNsaWVudHMpIHsKKyAgICAgICAgY2xpZW50LT5nZXRDYWxsYmFjaygpLT5vblByb3BlcnR5U2V0RXJyb3IoZXJyb3JDb2RlLCBwcm9wZXJ0eSwgYXJlYUlkKTsKKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZUhhbE1hbmFnZXI6Om9uQmF0Y2hIYWxFdmVudChjb25zdCBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcFZhbHVlUHRyPiYgdmFsdWVzKSB7CisgICAgY29uc3QgYXV0byYgY2xpZW50VmFsdWVzID0gbVN1YnNjcmlwdGlvbk1hbmFnZXIuZGlzdHJpYnV0ZVZhbHVlc1RvQ2xpZW50cygKKyAgICAgICAgICAgIHZhbHVlcywgU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVCk7CisKKyAgICBmb3IgKGNvbnN0IEhhbENsaWVudFZhbHVlcyYgY3YgOiBjbGllbnRWYWx1ZXMpIHsKKyAgICAgICAgYXV0byB2ZWNTaXplID0gY3YudmFsdWVzLnNpemUoKTsKKyAgICAgICAgaGlkbF92ZWM8VmVoaWNsZVByb3BWYWx1ZT4gdmVjOworICAgICAgICBpZiAodmVjU2l6ZSA8IGtNYXhIaWRsVmVjT2ZWZWhpY2xQcm9wVmFsdWVQb29sU2l6ZSkgeworICAgICAgICAgICAgdmVjLnNldFRvRXh0ZXJuYWwoJm1IaWRsVmVjT2ZWZWhpY2xlUHJvcFZhbHVlUG9vbFswXSwgdmVjU2l6ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2ZWMucmVzaXplKHZlY1NpemUpOworICAgICAgICB9CisKKyAgICAgICAgaW50IGkgPSAwOworICAgICAgICBmb3IgKFZlaGljbGVQcm9wVmFsdWUqIHBWYWx1ZSA6IGN2LnZhbHVlcykgeworICAgICAgICAgICAgc2hhbGxvd0NvcHkoJih2ZWMpW2krK10sICpwVmFsdWUpOworICAgICAgICB9CisgICAgICAgIGF1dG8gc3RhdHVzID0gY3YuY2xpZW50LT5nZXRDYWxsYmFjaygpLT5vblByb3BlcnR5RXZlbnQodmVjKTsKKyAgICAgICAgaWYgKCFzdGF0dXMuaXNPaygpKSB7CisgICAgICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIG5vdGlmeSBjbGllbnQgJXMsIGVycjogJXMiLAorICAgICAgICAgICAgICAgICAgdG9TdHJpbmcoY3YuY2xpZW50LT5nZXRDYWxsYmFjaygpKS5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgc3RhdHVzLmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Jvb2wgVmVoaWNsZUhhbE1hbmFnZXI6OmlzU2FtcGxlUmF0ZUZpeGVkKFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUgbW9kZSkgeworICAgIHJldHVybiAobW9kZSAmIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX1NFVCkKKyAgICAgICAgICAgfHwgKG1vZGUgJiBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UpOworfQorCitmbG9hdCBWZWhpY2xlSGFsTWFuYWdlcjo6Y2hlY2tTYW1wbGVSYXRlKGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnICZjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHNhbXBsZVJhdGUpIHsKKyAgICBpZiAoaXNTYW1wbGVSYXRlRml4ZWQoY29uZmlnLmNoYW5nZU1vZGUpKSB7CisgICAgICAgIGlmIChzdGQ6OmFicyhzYW1wbGVSYXRlKSA+IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjplcHNpbG9uKCkpIHsKKyAgICAgICAgICAgIEFMT0dXKCJTYW1wbGUgcmF0ZSBpcyBncmVhdGVyIHRoYW4gemVybyBmb3Igb24gY2hhbmdlIHR5cGUuICIKKyAgICAgICAgICAgICAgICAgICAgICAiSWdub3JpbmcgaXQuIik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDAuMDsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoc2FtcGxlUmF0ZSA+IGNvbmZpZy5tYXhTYW1wbGVSYXRlKSB7CisgICAgICAgICAgICBBTE9HVygiU2FtcGxlIHJhdGUgJWYgaXMgaGlnaGVyIHRoYW4gbWF4ICVmLiBTZXR0aW5nIHNhbXBsaW5nIHJhdGUgIgorICAgICAgICAgICAgICAgICAgICAgICJ0byBtYXguIiwgc2FtcGxlUmF0ZSwgY29uZmlnLm1heFNhbXBsZVJhdGUpOworICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5tYXhTYW1wbGVSYXRlOworICAgICAgICB9CisgICAgICAgIGlmIChzYW1wbGVSYXRlIDwgY29uZmlnLm1pblNhbXBsZVJhdGUpIHsKKyAgICAgICAgICAgIEFMT0dXKCJTYW1wbGUgcmF0ZSAlZiBpcyBsb3dlciB0aGFuIG1pbiAlZi4gU2V0dGluZyBzYW1wbGluZyByYXRlICIKKyAgICAgICAgICAgICAgICAgICAgICAidG8gbWluLiIsIHNhbXBsZVJhdGUsIGNvbmZpZy5taW5TYW1wbGVSYXRlKTsKKyAgICAgICAgICAgIHJldHVybiBjb25maWcubWluU2FtcGxlUmF0ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc2FtcGxlUmF0ZTsgIC8vIFByb3ZpZGVkIHNhbXBsZSByYXRlIHdhcyBnb29kLCBubyBjaGFuZ2VzLgorfQorCitib29sIFZlaGljbGVIYWxNYW5hZ2VyOjppc1N1YnNjcmliYWJsZShjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3MgZmxhZ3MpIHsKKyAgICBib29sIGlzUmVhZGFibGUgPSBjb25maWcuYWNjZXNzICYgVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEOworCisgICAgaWYgKCFpc1JlYWRhYmxlICYmIChTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UICYgZmxhZ3MpKSB7CisgICAgICAgIEFMT0dXKCJDYW5ub3Qgc3Vic2NyaWJlLCBwcm9wZXJ0eSAweCV4IGlzIG5vdCByZWFkYWJsZSIsIGNvbmZpZy5wcm9wKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBpZiAoY29uZmlnLmNoYW5nZU1vZGUgPT0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6U1RBVElDKSB7CisgICAgICAgIEFMT0dXKCJDYW5ub3Qgc3Vic2NyaWJlLCBwcm9wZXJ0eSAweCV4IGlzIHN0YXRpYyIsIGNvbmZpZy5wcm9wKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIC8vVE9ETzogZXh0ZW5kIHRvIHN1cHBvcnQgZXZlbnQgbm90aWZpY2F0aW9uIGZvciBzZXQgZnJvbSBhbmRyb2lkCisgICAgaWYgKGNvbmZpZy5jaGFuZ2VNb2RlID09IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OlBPTEwpIHsKKyAgICAgICAgQUxPR1coIkNhbm5vdCBzdWJzY3JpYmUsIHByb3BlcnR5IDB4JXggaXMgcG9sbCBvbmx5IiwgY29uZmlnLnByb3ApOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitib29sIFZlaGljbGVIYWxNYW5hZ2VyOjpjaGVja1dyaXRlUGVybWlzc2lvbihjb25zdCBWZWhpY2xlUHJvcENvbmZpZyAmY29uZmlnKSBjb25zdCB7CisgICAgaWYgKCEoY29uZmlnLmFjY2VzcyAmIFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6V1JJVEUpKSB7CisgICAgICAgIEFMT0dXKCJQcm9wZXJ0eSAwJXggaGFzIG5vIHdyaXRlIGFjY2VzcyIsIGNvbmZpZy5wcm9wKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KK30KKworYm9vbCBWZWhpY2xlSGFsTWFuYWdlcjo6Y2hlY2tSZWFkUGVybWlzc2lvbihjb25zdCBWZWhpY2xlUHJvcENvbmZpZyAmY29uZmlnKSBjb25zdCB7CisgICAgaWYgKCEoY29uZmlnLmFjY2VzcyAmIFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCkpIHsKKyAgICAgICAgQUxPR1coIlByb3BlcnR5IDAleCBoYXMgbm8gcmVhZCBhY2Nlc3MiLCBjb25maWcucHJvcCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZUhhbE1hbmFnZXI6OmhhbmRsZVByb3BlcnR5U2V0RXZlbnQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgdmFsdWUpIHsKKyAgICBhdXRvIGNsaWVudHMgPSBtU3Vic2NyaXB0aW9uTWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cygKKyAgICAgICAgICAgIHZhbHVlLnByb3AsIHZhbHVlLmFyZWFJZCwgU3Vic2NyaWJlRmxhZ3M6OlNFVF9DQUxMKTsKKyAgICBmb3IgKGF1dG8gY2xpZW50IDogY2xpZW50cykgeworICAgICAgICBjbGllbnQtPmdldENhbGxiYWNrKCktPm9uUHJvcGVydHlTZXQodmFsdWUpOworICAgIH0KK30KKworY29uc3QgVmVoaWNsZVByb3BDb25maWcqIFZlaGljbGVIYWxNYW5hZ2VyOjpnZXRQcm9wQ29uZmlnT3JOdWxsKAorICAgICAgICBpbnQzMl90IHByb3ApIGNvbnN0IHsKKyAgICByZXR1cm4gbUNvbmZpZ0luZGV4LT5oYXNDb25maWcocHJvcCkKKyAgICAgICAgICAgPyAmbUNvbmZpZ0luZGV4LT5nZXRDb25maWcocHJvcCkgOiBudWxscHRyOworfQorCit2b2lkIFZlaGljbGVIYWxNYW5hZ2VyOjpvbkFsbENsaWVudHNVbnN1YnNjcmliZWQoaW50MzJfdCBwcm9wZXJ0eUlkKSB7CisgICAgbUhhbC0+dW5zdWJzY3JpYmUocHJvcGVydHlJZCk7Cit9CisKK0NsaWVudElkIFZlaGljbGVIYWxNYW5hZ2VyOjpnZXRDbGllbnRJZChjb25zdCBzcDxJVmVoaWNsZUNhbGxiYWNrPiYgY2FsbGJhY2spIHsKKyAgICAvL1RPRE8oYi8zMjE3MjkwNik6IHJld29yayB0aGlzIHRvIGdldCBzb21lIGtpbmQgb2YgdW5pcXVlIGlkIGZvciBjYWxsYmFjayBpbnRlcmZhY2Ugd2hlbiB0aGlzCisgICAgLy8gZmVhdHVyZSBpcyByZWFkeSBpbiBISURMLgorCisgICAgaWYgKGNhbGxiYWNrLT5pc1JlbW90ZSgpKSB7CisgICAgICAgIEJwSHdWZWhpY2xlQ2FsbGJhY2sqIGh3Q2FsbGJhY2sgPSBzdGF0aWNfY2FzdDxCcEh3VmVoaWNsZUNhbGxiYWNrKj4oY2FsbGJhY2suZ2V0KCkpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2xpZW50SWQ+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGh3Q2FsbGJhY2stPm9uQXNCaW5kZXIoKSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxDbGllbnRJZD4ocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oY2FsbGJhY2suZ2V0KCkpKTsKKyAgICB9Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVPYmplY3RQb29sLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVPYmplY3RQb29sLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzEyNDVhCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZU9iamVjdFBvb2wuY3BwCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhdXRvbW90aXZlLnZlaGljbGVAMi4wLWltcGwiCisKKyNpbmNsdWRlICJWZWhpY2xlT2JqZWN0UG9vbC5oIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiVmVoaWNsZVV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluKAorICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsIHNpemVfdCB2ZWNTaXplKSB7CisgICAgcmV0dXJuIGlzRGlzcG9zYWJsZSh0eXBlLCB2ZWNTaXplKQorICAgICAgICAgICA/IG9idGFpbkRpc3Bvc2FibGUodHlwZSwgdmVjU2l6ZSkKKyAgICAgICAgICAgOiBvYnRhaW5SZWN5bGFibGUodHlwZSwgdmVjU2l6ZSk7Cit9CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluKAorICAgICAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBzcmMpIHsKKyAgICBpZiAoc3JjLnByb3AgPT0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTlZBTElEKSkgeworICAgICAgICBBTE9HRSgiVW5hYmxlIHRvIG9idGFpbiBhbiBvYmplY3QgZnJvbSBwb29sIGZvciB1bmtub3duIHByb3BlcnR5Iik7CisgICAgICAgIHJldHVybiBSZWN5Y2xhYmxlVHlwZSgpOworICAgIH0KKyAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUgPSBnZXRQcm9wVHlwZShzcmMucHJvcCk7CisgICAgc2l6ZV90IHZlY1NpemUgPSBnZXRWZWhpY2xlUmF3VmFsdWVWZWN0b3JTaXplKHNyYy52YWx1ZSwgdHlwZSk7OworICAgIGF1dG8gZGVzdCA9IG9idGFpbih0eXBlLCB2ZWNTaXplKTsKKworICAgIGRlc3QtPnByb3AgPSBzcmMucHJvcDsKKyAgICBkZXN0LT5hcmVhSWQgPSBzcmMuYXJlYUlkOworICAgIGRlc3QtPnRpbWVzdGFtcCA9IHNyYy50aW1lc3RhbXA7CisgICAgY29weVZlaGljbGVSYXdWYWx1ZSgmZGVzdC0+dmFsdWUsIHNyYy52YWx1ZSk7CisKKyAgICByZXR1cm4gZGVzdDsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5JbnQzMigKKyAgICAgICAgaW50MzJfdCB2YWx1ZSkgeworICAgIGF1dG8gdmFsID0gb2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyKTsKKyAgICB2YWwtPnZhbHVlLmludDMyVmFsdWVzWzBdID0gdmFsdWU7CisgICAgcmV0dXJuIHZhbDsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5JbnQ2NCgKKyAgICAgICAgaW50NjRfdCB2YWx1ZSkgeworICAgIGF1dG8gdmFsID0gb2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDY0KTsKKyAgICB2YWwtPnZhbHVlLmludDY0VmFsdWVzWzBdID0gdmFsdWU7CisgICAgcmV0dXJuIHZhbDsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5GbG9hdCgKKyAgICAgICAgZmxvYXQgdmFsdWUpICB7CisgICAgYXV0byB2YWwgPSBvYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVQpOworICAgIHZhbC0+dmFsdWUuZmxvYXRWYWx1ZXNbMF0gPSB2YWx1ZTsKKyAgICByZXR1cm4gdmFsOworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpblN0cmluZygKKyAgICAgICAgY29uc3QgY2hhciogY3N0cikgeworICAgIGF1dG8gdmFsID0gb2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OlNUUklORyk7CisgICAgdmFsLT52YWx1ZS5zdHJpbmdWYWx1ZSA9IGNzdHI7CisgICAgcmV0dXJuIHZhbDsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5Db21wbGV4KCkgeworICAgIHJldHVybiBvYnRhaW4oVmVoaWNsZVByb3BlcnR5VHlwZTo6Q09NUExFWCk7Cit9CisKK1ZlaGljbGVQcm9wVmFsdWVQb29sOjpSZWN5Y2xhYmxlVHlwZSBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6b2J0YWluUmVjeWxhYmxlKAorICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsIHNpemVfdCB2ZWNTaXplKSB7CisgICAgLy8gVmVoaWNsZVByb3BlcnR5VHlwZSBpcyBub3Qgb3ZlcmxhcHBpbmcgd2l0aCB2ZWN0b3JTaXplLgorICAgIGludDMyX3Qga2V5ID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4odHlwZSkKKyAgICAgICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8aW50MzJfdD4odmVjU2l6ZSk7CisKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gZyhtTG9jayk7CisgICAgYXV0byBpdCA9IG1WYWx1ZVR5cGVQb29scy5maW5kKGtleSk7CisKKyAgICBpZiAoaXQgPT0gbVZhbHVlVHlwZVBvb2xzLmVuZCgpKSB7CisgICAgICAgIGF1dG8gbmV3UG9vbChzdGQ6Om1ha2VfdW5pcXVlPEludGVybmFsUG9vbD4odHlwZSwgdmVjU2l6ZSkpOworICAgICAgICBpdCA9IG1WYWx1ZVR5cGVQb29scy5lbXBsYWNlKGtleSwgc3RkOjptb3ZlKG5ld1Bvb2wpKS5maXJzdDsKKyAgICB9CisgICAgcmV0dXJuIGl0LT5zZWNvbmQtPm9idGFpbigpOworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpbkJvb2xlYW4oCisgICAgICAgIGJvb2wgdmFsdWUpICB7CisgICAgcmV0dXJuIG9idGFpbkludDMyKHZhbHVlKTsKK30KKworVmVoaWNsZVByb3BWYWx1ZVBvb2w6OlJlY3ljbGFibGVUeXBlIFZlaGljbGVQcm9wVmFsdWVQb29sOjpvYnRhaW5EaXNwb3NhYmxlKAorICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHZhbHVlVHlwZSwgc2l6ZV90IHZlY3RvclNpemUpIGNvbnN0IHsKKyAgICByZXR1cm4gUmVjeWNsYWJsZVR5cGUgeworICAgICAgICBjcmVhdGVWZWhpY2xlUHJvcFZhbHVlKHZhbHVlVHlwZSwgdmVjdG9yU2l6ZSkucmVsZWFzZSgpLAorICAgICAgICBtRGlzcG9zYWJsZURlbGV0ZXIKKyAgICB9OworfQorCitWZWhpY2xlUHJvcFZhbHVlUG9vbDo6UmVjeWNsYWJsZVR5cGUgVmVoaWNsZVByb3BWYWx1ZVBvb2w6Om9idGFpbigKKyAgICAgICAgVmVoaWNsZVByb3BlcnR5VHlwZSB0eXBlKSB7CisgICAgcmV0dXJuIG9idGFpbih0eXBlLCAxKTsKK30KKworCit2b2lkIFZlaGljbGVQcm9wVmFsdWVQb29sOjpJbnRlcm5hbFBvb2w6OnJlY3ljbGUoVmVoaWNsZVByb3BWYWx1ZSogbykgeworICAgIGlmIChvID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIkF0dGVtcHQgdG8gcmVjeWNsZSBudWxscHRyIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIWNoZWNrKCZvLT52YWx1ZSkpIHsKKyAgICAgICAgQUxPR0UoIkRpc2NhcmRpbmcgdmFsdWUgZm9yIHByb3AgMHgleCBiZWNhdXNlIGl0IGNvbnRhaW5zICIKKyAgICAgICAgICAgICAgICAgICJkYXRhIHRoYXQgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCB0aGlzIHBvb2wuICIKKyAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCB0eXBlOiAlZCwgdmVjdG9yIHNpemU6ICV6dSIsCisgICAgICAgICAgICAgIG8tPnByb3AsIG1Qcm9wVHlwZSwgbVZlY3RvclNpemUpOworICAgICAgICBkZWxldGUgbzsKKyAgICB9IGVsc2UgeworICAgICAgICBPYmplY3RQb29sPFZlaGljbGVQcm9wVmFsdWU+OjpyZWN5Y2xlKG8pOworICAgIH0KK30KKworYm9vbCBWZWhpY2xlUHJvcFZhbHVlUG9vbDo6SW50ZXJuYWxQb29sOjpjaGVjayhWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZSogdikgeworICAgIHJldHVybiBjaGVjaygmdi0+aW50MzJWYWx1ZXMsCisgICAgICAgICAgICAgICAgIChWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMiA9PSBtUHJvcFR5cGUKKyAgICAgICAgICAgICAgICAgIHx8IFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyX1ZFQyA9PSBtUHJvcFR5cGUKKyAgICAgICAgICAgICAgICAgIHx8IFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJPT0xFQU4gPT0gbVByb3BUeXBlKSkKKyAgICAgICAgICAgJiYgY2hlY2soJnYtPmZsb2F0VmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAoVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVQgPT0gbVByb3BUeXBlCisgICAgICAgICAgICAgICAgICAgICB8fCBWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVF9WRUMgPT0gbVByb3BUeXBlKSkKKyAgICAgICAgICAgJiYgY2hlY2soJnYtPmludDY0VmFsdWVzLAorICAgICAgICAgICAgICAgICAgICBWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQ2NCA9PSBtUHJvcFR5cGUpCisgICAgICAgICAgICYmIGNoZWNrKCZ2LT5ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgVmVoaWNsZVByb3BlcnR5VHlwZTo6QllURVMgPT0gbVByb3BUeXBlKQorICAgICAgICAgICAmJiB2LT5zdHJpbmdWYWx1ZS5zaXplKCkgPT0gMDsKK30KKworVmVoaWNsZVByb3BWYWx1ZSogVmVoaWNsZVByb3BWYWx1ZVBvb2w6OkludGVybmFsUG9vbDo6Y3JlYXRlT2JqZWN0KCkgeworICAgIHJldHVybiBjcmVhdGVWZWhpY2xlUHJvcFZhbHVlKG1Qcm9wVHlwZSwgbVZlY3RvclNpemUpLnJlbGVhc2UoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZVByb3BlcnR5U3RvcmUuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2NvbW1vbi9zcmMvVmVoaWNsZVByb3BlcnR5U3RvcmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjM2ViZmMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlUHJvcGVydHlTdG9yZS5jcHAKQEAgLTAsMCArMSwxNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJWZWhpY2xlUHJvcGVydHlTdG9yZSIKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxjb21tb24vaW5jbHVkZS92aGFsX3YyXzAvVmVoaWNsZVV0aWxzLmg+CisjaW5jbHVkZSAiVmVoaWNsZVByb3BlcnR5U3RvcmUuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworYm9vbCBWZWhpY2xlUHJvcGVydHlTdG9yZTo6UmVjb3JkSWQ6Om9wZXJhdG9yPT0oY29uc3QgVmVoaWNsZVByb3BlcnR5U3RvcmU6OlJlY29yZElkJiBvdGhlcikgY29uc3QgeworICAgIHJldHVybiBwcm9wID09IG90aGVyLnByb3AgJiYgYXJlYSA9PSBvdGhlci5hcmVhICYmIHRva2VuID09IG90aGVyLnRva2VuOworfQorCitib29sIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpSZWNvcmRJZDo6b3BlcmF0b3I8KGNvbnN0IFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpSZWNvcmRJZCYgb3RoZXIpIGNvbnN0ICB7CisgICAgcmV0dXJuIHByb3AgPCBvdGhlci5wcm9wCisgICAgICAgICAgIHx8IChwcm9wID09IG90aGVyLnByb3AgJiYgYXJlYSA8IG90aGVyLmFyZWEpCisgICAgICAgICAgIHx8IChwcm9wID09IG90aGVyLnByb3AgJiYgYXJlYSA9PSBvdGhlci5hcmVhICYmIHRva2VuIDwgb3RoZXIudG9rZW4pOworfQorCit2b2lkIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpyZWdpc3RlclByb3BlcnR5KGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpUb2tlbkZ1bmN0aW9uIHRva2VuRnVuYykgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIG1Db25maWdzLmluc2VydCh7IGNvbmZpZy5wcm9wLCBSZWNvcmRDb25maWcgeyBjb25maWcsIHRva2VuRnVuYyB9IH0pOworfQorCitib29sIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjp3cml0ZVZhbHVlKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIGlmICghbUNvbmZpZ3MuY291bnQocHJvcFZhbHVlLnByb3ApKSByZXR1cm4gZmFsc2U7CisKKyAgICBSZWNvcmRJZCByZWNJZCA9IGdldFJlY29yZElkTG9ja2VkKHByb3BWYWx1ZSk7CisgICAgVmVoaWNsZVByb3BWYWx1ZSogdmFsdWVUb1VwZGF0ZSA9IGNvbnN0X2Nhc3Q8VmVoaWNsZVByb3BWYWx1ZSo+KGdldFZhbHVlT3JOdWxsTG9ja2VkKHJlY0lkKSk7CisgICAgaWYgKHZhbHVlVG9VcGRhdGUgPT0gbnVsbHB0cikgeworICAgICAgICBtUHJvcGVydHlWYWx1ZXMuaW5zZXJ0KHsgcmVjSWQsIHByb3BWYWx1ZSB9KTsKKyAgICB9IGVsc2UgeworICAgICAgICB2YWx1ZVRvVXBkYXRlLT50aW1lc3RhbXAgPSBwcm9wVmFsdWUudGltZXN0YW1wOworICAgICAgICB2YWx1ZVRvVXBkYXRlLT52YWx1ZSA9IHByb3BWYWx1ZS52YWx1ZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgVmVoaWNsZVByb3BlcnR5U3RvcmU6OnJlbW92ZVZhbHVlKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgeworICAgIE11eEd1YXJkIGcobUxvY2spOworICAgIFJlY29yZElkIHJlY0lkID0gZ2V0UmVjb3JkSWRMb2NrZWQocHJvcFZhbHVlKTsKKyAgICBhdXRvIGl0ID0gbVByb3BlcnR5VmFsdWVzLmZpbmQocmVjSWQpOworICAgIGlmIChpdCAhPSBtUHJvcGVydHlWYWx1ZXMuZW5kKCkpIHsKKyAgICAgICAgbVByb3BlcnR5VmFsdWVzLmVyYXNlKGl0KTsKKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZVByb3BlcnR5U3RvcmU6OnJlbW92ZVZhbHVlc0ZvclByb3BlcnR5KGludDMyX3QgcHJvcElkKSB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgYXV0byByYW5nZSA9IGZpbmRSYW5nZUxvY2tlZChwcm9wSWQpOworICAgIG1Qcm9wZXJ0eVZhbHVlcy5lcmFzZShyYW5nZS5maXJzdCwgcmFuZ2Uuc2Vjb25kKTsKK30KKworc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gVmVoaWNsZVByb3BlcnR5U3RvcmU6OnJlYWRBbGxWYWx1ZXMoKSBjb25zdCB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gYWxsVmFsdWVzOworICAgIGFsbFZhbHVlcy5yZXNlcnZlKG1Qcm9wZXJ0eVZhbHVlcy5zaXplKCkpOworICAgIGZvciAoYXV0byYmIGl0IDogbVByb3BlcnR5VmFsdWVzKSB7CisgICAgICAgIGFsbFZhbHVlcy5wdXNoX2JhY2soaXQuc2Vjb25kKTsKKyAgICB9CisgICAgcmV0dXJuIGFsbFZhbHVlczsKK30KKworc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gVmVoaWNsZVByb3BlcnR5U3RvcmU6OnJlYWRWYWx1ZXNGb3JQcm9wZXJ0eShpbnQzMl90IHByb3BJZCkgY29uc3QgeworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wVmFsdWU+IHZhbHVlczsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBhdXRvIHJhbmdlID0gZmluZFJhbmdlTG9ja2VkKHByb3BJZCk7CisgICAgZm9yIChhdXRvIGl0ID0gcmFuZ2UuZmlyc3Q7IGl0ICE9IHJhbmdlLnNlY29uZDsgKytpdCkgeworICAgICAgICB2YWx1ZXMucHVzaF9iYWNrKGl0LT5zZWNvbmQpOworICAgIH0KKworICAgIHJldHVybiB2YWx1ZXM7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPiBWZWhpY2xlUHJvcGVydHlTdG9yZTo6cmVhZFZhbHVlT3JOdWxsKAorICAgICAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0KSBjb25zdCB7CisgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgUmVjb3JkSWQgcmVjSWQgPSBnZXRSZWNvcmRJZExvY2tlZChyZXF1ZXN0KTsKKyAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlKiBpbnRlcm5hbFZhbHVlID0gZ2V0VmFsdWVPck51bGxMb2NrZWQocmVjSWQpOworICAgIHJldHVybiBpbnRlcm5hbFZhbHVlID8gc3RkOjptYWtlX3VuaXF1ZTxWZWhpY2xlUHJvcFZhbHVlPigqaW50ZXJuYWxWYWx1ZSkgOiBudWxscHRyOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4gVmVoaWNsZVByb3BlcnR5U3RvcmU6OnJlYWRWYWx1ZU9yTnVsbCgKKyAgICAgICAgaW50MzJfdCBwcm9wLCBpbnQzMl90IGFyZWEsIGludDY0X3QgdG9rZW4pIGNvbnN0IHsKKyAgICBSZWNvcmRJZCByZWNJZCA9IHtwcm9wLCBpc0dsb2JhbFByb3AocHJvcCkgPyAwIDogYXJlYSwgdG9rZW4gfTsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlKiBpbnRlcm5hbFZhbHVlID0gZ2V0VmFsdWVPck51bGxMb2NrZWQocmVjSWQpOworICAgIHJldHVybiBpbnRlcm5hbFZhbHVlID8gc3RkOjptYWtlX3VuaXF1ZTxWZWhpY2xlUHJvcFZhbHVlPigqaW50ZXJuYWxWYWx1ZSkgOiBudWxscHRyOworfQorCisKK3N0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBWZWhpY2xlUHJvcGVydHlTdG9yZTo6Z2V0QWxsQ29uZmlncygpIGNvbnN0IHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gY29uZmlnczsKKyAgICBjb25maWdzLnJlc2VydmUobUNvbmZpZ3Muc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mJiByZWNvcmRDb25maWdJdDogbUNvbmZpZ3MpIHsKKyAgICAgICAgY29uZmlncy5wdXNoX2JhY2socmVjb3JkQ29uZmlnSXQuc2Vjb25kLnByb3BDb25maWcpOworICAgIH0KKyAgICByZXR1cm4gY29uZmlnczsKK30KKworY29uc3QgVmVoaWNsZVByb3BDb25maWcqIFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpnZXRDb25maWdPck51bGwoaW50MzJfdCBwcm9wSWQpIGNvbnN0IHsKKyAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKyAgICBhdXRvIHJlY29yZENvbmZpZ0l0ID0gbUNvbmZpZ3MuZmluZChwcm9wSWQpOworICAgIHJldHVybiByZWNvcmRDb25maWdJdCAhPSBtQ29uZmlncy5lbmQoKSA/ICZyZWNvcmRDb25maWdJdC0+c2Vjb25kLnByb3BDb25maWcgOiBudWxscHRyOworfQorCitjb25zdCBWZWhpY2xlUHJvcENvbmZpZyogVmVoaWNsZVByb3BlcnR5U3RvcmU6OmdldENvbmZpZ09yRGllKGludDMyX3QgcHJvcElkKSBjb25zdCB7CisgICAgYXV0byBjZmcgPSBnZXRDb25maWdPck51bGwocHJvcElkKTsKKyAgICBpZiAoIWNmZykgeworICAgICAgICBBTE9HVygiJXM6IGNvbmZpZyBub3QgZm91bmQgZm9yIHByb3BlcnR5OiAweCV4IiwgX19mdW5jX18sIHByb3BJZCk7CisgICAgICAgIGFib3J0KCk7CisgICAgfQorICAgIHJldHVybiBjZmc7Cit9CisKK1ZlaGljbGVQcm9wZXJ0eVN0b3JlOjpSZWNvcmRJZCBWZWhpY2xlUHJvcGVydHlTdG9yZTo6Z2V0UmVjb3JkSWRMb2NrZWQoCisgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHZhbHVlUHJvdG90eXBlKSBjb25zdCB7CisgICAgUmVjb3JkSWQgcmVjSWQgPSB7CisgICAgICAgIC5wcm9wID0gdmFsdWVQcm90b3R5cGUucHJvcCwKKyAgICAgICAgLmFyZWEgPSBpc0dsb2JhbFByb3AodmFsdWVQcm90b3R5cGUucHJvcCkgPyAwIDogdmFsdWVQcm90b3R5cGUuYXJlYUlkLAorICAgICAgICAudG9rZW4gPSAwCisgICAgfTsKKworICAgIGF1dG8gaXQgPSBtQ29uZmlncy5maW5kKHJlY0lkLnByb3ApOworICAgIGlmIChpdCA9PSBtQ29uZmlncy5lbmQoKSkgcmV0dXJuIHt9OworCisgICAgaWYgKGl0LT5zZWNvbmQudG9rZW5GdW5jdGlvbiAhPSBudWxscHRyKSB7CisgICAgICAgIHJlY0lkLnRva2VuID0gaXQtPnNlY29uZC50b2tlbkZ1bmN0aW9uKHZhbHVlUHJvdG90eXBlKTsKKyAgICB9CisgICAgcmV0dXJuIHJlY0lkOworfQorCitjb25zdCBWZWhpY2xlUHJvcFZhbHVlKiBWZWhpY2xlUHJvcGVydHlTdG9yZTo6Z2V0VmFsdWVPck51bGxMb2NrZWQoCisgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wZXJ0eVN0b3JlOjpSZWNvcmRJZCYgcmVjSWQpIGNvbnN0ICB7CisgICAgYXV0byBpdCA9IG1Qcm9wZXJ0eVZhbHVlcy5maW5kKHJlY0lkKTsKKyAgICByZXR1cm4gaXQgPT0gbVByb3BlcnR5VmFsdWVzLmVuZCgpID8gbnVsbHB0ciA6ICZpdC0+c2Vjb25kOworfQorCitWZWhpY2xlUHJvcGVydHlTdG9yZTo6UHJvcGVydHlNYXBSYW5nZSBWZWhpY2xlUHJvcGVydHlTdG9yZTo6ZmluZFJhbmdlTG9ja2VkKGludDMyX3QgcHJvcElkKSBjb25zdCB7CisgICAgLy8gQmFzZWQgb24gdGhlIGZhY3QgdGhhdCBtUHJvcGVydHlWYWx1ZXMgaXMgYSBzb3J0ZWQgbWFwIGJ5IFJlY29yZElkLgorICAgIGF1dG8gYmVnaW5JdCA9IG1Qcm9wZXJ0eVZhbHVlcy5sb3dlcl9ib3VuZCggUmVjb3JkSWQgeyBwcm9wSWQsIElOVDMyX01JTiwgMCB9KTsKKyAgICBhdXRvIGVuZEl0ID0gbVByb3BlcnR5VmFsdWVzLmxvd2VyX2JvdW5kKCBSZWNvcmRJZCB7IHByb3BJZCArIDEsIElOVDMyX01JTiwgMCB9KTsKKworICAgIHJldHVybiAgUHJvcGVydHlNYXBSYW5nZSB7IGJlZ2luSXQsIGVuZEl0IH07Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9jb21tb24vc3JjL1ZlaGljbGVVdGlscy5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlVXRpbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxMWNkZWYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvY29tbW9uL3NyYy9WZWhpY2xlVXRpbHMuY3BwCkBAIC0wLDAgKzEsMTMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhdXRvbW90aXZlLnZlaGljbGVAMi4wLWltcGwiCisKKyNpbmNsdWRlICJWZWhpY2xlVXRpbHMuaCIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworLy9uYW1lc3BhY2UgdXRpbHMgeworCitzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4gY3JlYXRlVmVoaWNsZVByb3BWYWx1ZSgKKyAgICBWZWhpY2xlUHJvcGVydHlUeXBlIHR5cGUsIHNpemVfdCB2ZWNTaXplKSB7CisgICAgYXV0byB2YWwgPSBzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4obmV3IFZlaGljbGVQcm9wVmFsdWUpOworICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyOiAgICAgIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyX1ZFQzogIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJPT0xFQU46CisgICAgICAgICAgICB2YWwtPnZhbHVlLmludDMyVmFsdWVzLnJlc2l6ZSh2ZWNTaXplKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUOiAgICAgIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUX1ZFQzoKKyAgICAgICAgICAgIHZhbC0+dmFsdWUuZmxvYXRWYWx1ZXMucmVzaXplKHZlY1NpemUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UNjQ6CisgICAgICAgICAgICB2YWwtPnZhbHVlLmludDY0VmFsdWVzLnJlc2l6ZSh2ZWNTaXplKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJZVEVTOgorICAgICAgICAgICAgdmFsLT52YWx1ZS5ieXRlcy5yZXNpemUodmVjU2l6ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpTVFJJTkc6CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6Q09NUExFWDoKKyAgICAgICAgICAgIGJyZWFrOyAvLyBWYWxpZCwgYnV0IG5vdGhpbmcgdG8gZG8uCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiY3JlYXRlVmVoaWNsZVByb3BWYWx1ZTogdW5rbm93biB0eXBlOiAlZCIsIHR5cGUpOworICAgICAgICAgICAgdmFsLnJlc2V0KG51bGxwdHIpOworICAgIH0KKyAgICByZXR1cm4gdmFsOworfQorCitzaXplX3QgZ2V0VmVoaWNsZVJhd1ZhbHVlVmVjdG9yU2l6ZSgKKyAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlOjpSYXdWYWx1ZSYgdmFsdWUsIFZlaGljbGVQcm9wZXJ0eVR5cGUgdHlwZSkgeworICAgIHN3aXRjaCAodHlwZSkgeworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyOiAgICAgIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyX1ZFQzogIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJPT0xFQU46CisgICAgICAgICAgICByZXR1cm4gdmFsdWUuaW50MzJWYWx1ZXMuc2l6ZSgpOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUOiAgICAgIC8vIGZhbGwgdGhyb3VnaAorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUX1ZFQzoKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5mbG9hdFZhbHVlcy5zaXplKCk7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UNjQ6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUuaW50NjRWYWx1ZXMuc2l6ZSgpOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJZVEVTOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmJ5dGVzLnNpemUoKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSB2b2lkIGNvcHlIaWRsVmVjKGhpZGxfdmVjIDxUPiogZGVzdCwgY29uc3QgaGlkbF92ZWMgPFQ+JiBzcmMpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN0ZDo6bWluKGRlc3QtPnNpemUoKSwgc3JjLnNpemUoKSk7IGkrKykgeworICAgICAgICAoKmRlc3QpW2ldID0gc3JjW2ldOworICAgIH0KK30KKwordm9pZCBjb3B5VmVoaWNsZVJhd1ZhbHVlKFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlKiBkZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWU6OlJhd1ZhbHVlJiBzcmMpIHsKKyAgICBkZXN0LT5pbnQzMlZhbHVlcyA9IHNyYy5pbnQzMlZhbHVlczsKKyAgICBkZXN0LT5mbG9hdFZhbHVlcyA9IHNyYy5mbG9hdFZhbHVlczsKKyAgICBkZXN0LT5pbnQ2NFZhbHVlcyA9IHNyYy5pbnQ2NFZhbHVlczsKKyAgICBkZXN0LT5ieXRlcyA9IHNyYy5ieXRlczsKKyAgICBkZXN0LT5zdHJpbmdWYWx1ZSA9IHNyYy5zdHJpbmdWYWx1ZTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgc2hhbGxvd0NvcHlIaWRsVmVjKGhpZGxfdmVjIDxUPiogZGVzdCwgY29uc3QgaGlkbF92ZWMgPFQ+JiBzcmMpIHsKKyAgICBpZiAoc3JjLnNpemUoKSA+IDApIHsKKyAgICAgICAgZGVzdC0+c2V0VG9FeHRlcm5hbChjb25zdF9jYXN0PFQqPigmc3JjWzBdKSwgc3JjLnNpemUoKSk7CisgICAgfSBlbHNlIGlmIChkZXN0LT5zaXplKCkgPiAwKSB7CisgICAgICAgIGRlc3QtPnJlc2l6ZSgwKTsKKyAgICB9Cit9CisKK3ZvaWQgc2hhbGxvd0NvcHlIaWRsU3RyKGhpZGxfc3RyaW5nKiBkZXN0LCBjb25zdCBoaWRsX3N0cmluZyYgc3JjKSB7CisgICAgaWYgKCFzcmMuZW1wdHkoKSkgeworICAgICAgICBkZXN0LT5zZXRUb0V4dGVybmFsKHNyYy5jX3N0cigpLCBzcmMuc2l6ZSgpKTsKKyAgICB9IGVsc2UgaWYgKGRlc3QtPnNpemUoKSA+IDApIHsKKyAgICAgICAgZGVzdC0+c2V0VG9FeHRlcm5hbCgwLCAwKTsKKyAgICB9Cit9CisKK3ZvaWQgc2hhbGxvd0NvcHkoVmVoaWNsZVByb3BWYWx1ZSogZGVzdCwgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgc3JjKSB7CisgICAgZGVzdC0+cHJvcCA9IHNyYy5wcm9wOworICAgIGRlc3QtPmFyZWFJZCA9IHNyYy5hcmVhSWQ7CisgICAgZGVzdC0+dGltZXN0YW1wID0gc3JjLnRpbWVzdGFtcDsKKyAgICBzaGFsbG93Q29weUhpZGxWZWMoJmRlc3QtPnZhbHVlLmludDMyVmFsdWVzLCBzcmMudmFsdWUuaW50MzJWYWx1ZXMpOworICAgIHNoYWxsb3dDb3B5SGlkbFZlYygmZGVzdC0+dmFsdWUuaW50NjRWYWx1ZXMsIHNyYy52YWx1ZS5pbnQ2NFZhbHVlcyk7CisgICAgc2hhbGxvd0NvcHlIaWRsVmVjKCZkZXN0LT52YWx1ZS5mbG9hdFZhbHVlcywgc3JjLnZhbHVlLmZsb2F0VmFsdWVzKTsKKyAgICBzaGFsbG93Q29weUhpZGxWZWMoJmRlc3QtPnZhbHVlLmJ5dGVzLCBzcmMudmFsdWUuYnl0ZXMpOworICAgIHNoYWxsb3dDb3B5SGlkbFN0cigmZGVzdC0+dmFsdWUuc3RyaW5nVmFsdWUsIHNyYy52YWx1ZS5zdHJpbmdWYWx1ZSk7Cit9CisKKworLy99ICAvLyBuYW1lc3BhY2UgdXRpbHMKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0NvbW1CYXNlLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvQ29tbUJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODMyYWQzCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0NvbW1CYXNlLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0NvbW1CYXNlX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Db21tQmFzZV9IXworCisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCisvKioKKyAqIFRoaXMgaXMgdGhlIGNvbW11bmljYXRpb25zIGJhc2UgY2xhc3MuICBJdCBkZWZpbmVzIHRoZSBpbnRlcmZhY2UgdXNlZCBpbiBEZWZhdWx0VmVoaWNsZUhhbCB0bworICogc2VuZCBhbmQgcmVjZWl2ZSBkYXRhIHRvIGFuZCBmcm9tIHRoZSBlbXVsYXRvci4KKyAqLworY2xhc3MgQ29tbUJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgfkNvbW1CYXNlKCkgPSBkZWZhdWx0OworCisgICAgLyoqCisgICAgICogQ2xvc2VzIGEgY29ubmVjdGlvbiBpZiBpdCBpcyBvcGVuLgorICAgICAqLworICAgIHZpcnR1YWwgdm9pZCBzdG9wKCkge30KKworICAgIC8qKgorICAgICAqIENyZWF0ZXMgYSBjb25uZWN0aW9uIHRvIHRoZSBvdGhlciBzaWRlLgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgUmV0dXJucyBmZCBvciBzb2NrZXQgbnVtYmVyIGlmIGNvbm5lY3Rpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKiAgICAgICAgICAgICAgT3RoZXJ3aXNlLCByZXR1cm5zIC0xIGlmIG5vIGNvbm5lY3Rpb24gaXMgYXZhaWxibGUuCisgICAgICovCisgICAgdmlydHVhbCBpbnQgY29ubmVjdCgpIHsgcmV0dXJuIDA7IH0KKworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBjb21tdW5pY2F0aW9ucyBjaGFubmVsLgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgUmV0dXJucyAwIGlmIGNoYW5uZWwgaXMgb3BlbmVkLCBlbHNlIC1lcnJubyBpZiBmYWlsZWQuCisgICAgICovCisgICAgdmlydHVhbCBpbnQgb3BlbigpID0gMDsKKworICAgIC8qKgorICAgICAqIEJsb2NraW5nIGNhbGwgdG8gcmVhZCBkYXRhIGZyb20gdGhlIGNvbm5lY3Rpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFNlcmlhbGl6ZWQgcHJvdG9idWYgZGF0YSByZWNlaXZlZCBmcm9tIGVtdWxhdG9yLiAgVGhpcyB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgIGFuIGVtcHR5IHZlY3RvciBpZiB0aGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkIG9yIHNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuCisgICAgICovCisgICAgdmlydHVhbCBzdGQ6OnZlY3Rvcjx1aW50OF90PiByZWFkKCkgPSAwOworCisgICAgLyoqCisgICAgICogVHJhbnNtaXRzIGEgc3RyaW5nIG9mIGRhdGEgdG8gdGhlIGVtdWxhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGEgU2VyaWFsaXplZCBwcm90b2J1ZiBkYXRhIHRvIHRyYW5zbWl0LgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgTnVtYmVyIG9mIGJ5dGVzIHRyYW5zbWl0dGVkLCBvciAtMSBpZiBmYWlsZWQuCisgICAgICovCisgICAgdmlydHVhbCBpbnQgd3JpdGUoY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIGRhdGEpID0gMDsKK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0NvbW1CYXNlX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRGVmYXVsdENvbmZpZy5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0RlZmF1bHRDb25maWcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjYzZTM2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0RlZmF1bHRDb25maWcuaApAQCAtMCwwICsxLDI5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0RlZmF1bHRDb25maWdfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0RlZmF1bHRDb25maWdfSF8KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oPgorI2luY2x1ZGUgPHZoYWxfdjJfMC9WZWhpY2xlVXRpbHMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCisvKgorICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIGZvciB0ZXN0IHB1cnBvc2UgdG8gZ2VuZXJhdGUgZmFrZSBldmVudHMuCisgKgorICogSXQgaGFzIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgorICoKKyAqIGludDMyVmFsdWVzWzBdIC0gY29tbWFuZCAoMSAtIHN0YXJ0IGZha2UgZGF0YSBnZW5lcmF0aW9uLCAwIC0gc3RvcCkKKyAqIGludDMyVmFsdWVzWzFdIC0gVmVoaWNsZVByb3BlcnR5IHRvIHdoaWNoIGNvbW1hbmQgYXBwbGllcworICoKKyAqIEZvciBzdGFydCBjb21tYW5kLCBhZGRpdGlvbmFsIGRhdGEgc2hvdWxkIGJlIHByb3ZpZGVkOgorICogICBpbnQ2NFZhbHVlc1swXSAtIHBlcmlvZGljIGludGVydmFsIGluIG5hbm9zZWNvbmRzCisgKiAgIGZsb2F0VmFsdWVzWzBdIC0gaW5pdGlhbCB2YWx1ZQorICogICBmbG9hdFZhbHVlc1sxXSAtIGRpc3BlcnNpb24gZGVmaW5lcyBtaW4gYW5kIG1heCByYW5nZSByZWxhdGl2ZSB0byBpbml0aWFsIHZhbHVlCisgKiAgIGZsb2F0VmFsdWVzWzJdIC0gaW5jcmVtZW50LCB3aXRoIGV2ZXJ5IHRpbWVyIHRpY2sgdGhlIHZhbHVlIHdpbGwgYmUgaW5jcmVtZW50ZWQgYnkgdGhpcyBhbW91bnQKKyAqLworY29uc3QgaW50MzJfdCBrR2VuZXJhdGVGYWtlRGF0YUNvbnRyb2xsaW5nUHJvcGVydHkgPSAweDA2NjYKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDo6VkVORE9SCisgICAgICAgIHwgVmVoaWNsZUFyZWE6OkdMT0JBTAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6OkNPTVBMRVg7CisKK2NvbnN0IGludDMyX3Qga0h2YWNQb3dlclByb3BlcnRpZXNbXSA9IHsKKyAgICB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKSwKKyAgICB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX0RJUkVDVElPTiksCit9OworCitzdHJ1Y3QgQ29uZmlnRGVjbGFyYXRpb24geworICAgIFZlaGljbGVQcm9wQ29uZmlnIGNvbmZpZzsKKworICAgIC8qIFRoaXMgdmFsdWUgd2lsbCBiZSB1c2VkIGFzIGFuIGluaXRpYWwgdmFsdWUgZm9yIHRoZSBwcm9wZXJ0eS4gSWYgdGhpcyBmaWVsZCBpcyBzcGVjaWZpZWQgZm9yCisgICAgICogcHJvcGVydHkgdGhhdCBzdXBwb3J0cyBtdWx0aXBsZSBhcmVhcyB0aGVuIGl0IHdpbGwgYmUgdXNlZCBmb3IgYWxsIGFyZWFzIHVubGVzcyBwYXJ0aWN1bGFyCisgICAgICogYXJlYSBpcyBvdmVycmlkZGVuIGluIGluaXRpYWxBcmVhVmFsdWUgZmllbGQuICovCisgICAgVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWUgaW5pdGlhbFZhbHVlOworICAgIC8qIFVzZSBpbml0aWFsQXJlYVZhbHVlcyBpZiBpdCBpcyBuZWNlc3NhcnkgdG8gc3BlY2lmeSBkaWZmZXJlbnQgdmFsdWVzIHBlciBlYWNoIGFyZWEuICovCisgICAgc3RkOjptYXA8aW50MzJfdCwgVmVoaWNsZVByb3BWYWx1ZTo6UmF3VmFsdWU+IGluaXRpYWxBcmVhVmFsdWVzOworfTsKKworY29uc3QgQ29uZmlnRGVjbGFyYXRpb24ga1ZlaGljbGVQcm9wZXJ0aWVzW117CisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX01BS0UpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpTVEFUSUMsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5zdHJpbmdWYWx1ZSA9ICJUb3kgVmVoaWNsZSJ9fSwKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OlBFUkZfVkVISUNMRV9TUEVFRCksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgICAgICAubWluU2FtcGxlUmF0ZSA9IDEuMGYsCisgICAgICAgICAgICAgLm1heFNhbXBsZVJhdGUgPSAxMDAwLjBmLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuZmxvYXRWYWx1ZXMgPSB7MC4wZn19fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6UEVSRl9PRE9NRVRFUiksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmZsb2F0VmFsdWVzID0gezAuMGZ9fX0sCisKKyAgICB7CisgICAgICAgIC5jb25maWcgPQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpFTkdJTkVfUlBNKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6Q09OVElOVU9VUywKKyAgICAgICAgICAgICAgICAubWluU2FtcGxlUmF0ZSA9IDEuMGYsCisgICAgICAgICAgICAgICAgLm1heFNhbXBsZVJhdGUgPSAxMDAwLjBmLAorICAgICAgICAgICAgfSwKKyAgICAgICAgLmluaXRpYWxWYWx1ZSA9IHsuZmxvYXRWYWx1ZXMgPSB7MC4wZn19LAorICAgIH0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkNVUlJFTlRfR0VBUiksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0ge3RvSW50KFZlaGljbGVHZWFyOjpHRUFSX1BBUkspfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpQQVJLSU5HX0JSQUtFX09OKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MX19fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RlVFTF9MRVZFTF9MT1cpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHswfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX1BPV0VSX09OKSwKKyAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzEpLAorICAgICAgICAgICAgIC8vIFRPRE8oYnJ5YW5leWxlcik6IElkZWFsbHksIHRoaXMgaXMgZ2VuZXJhdGVkIGR5bmFtaWNhbGx5IGZyb20KKyAgICAgICAgICAgICAvLyBrSHZhY1Bvd2VyUHJvcGVydGllcy4KKyAgICAgICAgICAgICAuY29uZmlnU3RyaW5nID0gIjB4MTI0MDA1MDAsMHgxMjQwMDUwMSIgIC8vIEhWQUNfRkFOX1NQRUVELEhWQUNfRkFOX0RJUkVDVElPTgorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MX19fSwKKworICAgIHsKKyAgICAgICAgLmNvbmZpZyA9IHsucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19ERUZST1NURVIpLAorICAgICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0KKyAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUFyZWFXaW5kb3c6OkZST05UX1dJTkRTSElFTEQgfCBWZWhpY2xlQXJlYVdpbmRvdzo6UkVBUl9XSU5EU0hJRUxEfSwKKyAgICAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MH19ICAvLyBXaWxsIGJlIHVzZWQgZm9yIGFsbCBhcmVhcy4KKyAgICB9LAorCisgICAgey5jb25maWcgPSB7LnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfUkVDSVJDX09OKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzEpfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MX19fSwKKworICAgIHsuY29uZmlnID0gey5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0FDX09OKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzEpfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7MX19fSwKKworICAgIHsuY29uZmlnID0gey5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0FVVE9fT04pLAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMSl9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHsxfX19LAorCisgICAgey5jb25maWcgPSB7LnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgICAgIC5zdXBwb3J0ZWRBcmVhcyA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzEpLAorICAgICAgICAgICAgICAgIC5hcmVhQ29uZmlncyA9IHtWZWhpY2xlQXJlYUNvbmZpZ3suYXJlYUlkID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5taW5JbnQzMlZhbHVlID0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1heEludDMyVmFsdWUgPSA3fX19LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHszfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9ESVJFQ1RJT04pLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMSksCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHt0b0ludChWZWhpY2xlSHZhY0ZhbkRpcmVjdGlvbjo6RkFDRSl9fX0sCisKKyAgICB7LmNvbmZpZyA9IHsucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19URU1QRVJBVFVSRV9TRVQpLAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUIHwgVmVoaWNsZUFyZWFab25lOjpST1dfMV9SSUdIVCwKKyAgICAgICAgICAgICAgICAuYXJlYUNvbmZpZ3MgPSB7VmVoaWNsZUFyZWFDb25maWd7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYXJlYUlkID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5taW5GbG9hdFZhbHVlID0gMTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWF4RmxvYXRWYWx1ZSA9IDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXJlYUNvbmZpZ3sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hcmVhSWQgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX1JJR0hUKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5taW5GbG9hdFZhbHVlID0gMTYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWF4RmxvYXRWYWx1ZSA9IDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fX0sCisgICAgIC5pbml0aWFsQXJlYVZhbHVlcyA9IHt7dG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwgey5mbG9hdFZhbHVlcyA9IHsxNn19fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX1JJR0hUKSwgey5mbG9hdFZhbHVlcyA9IHsyMH19fX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpFTlZfT1VUU0lERV9URU1QRVJBVFVSRSksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAvLyBUT0RPKGJyeWFuZXlsZXIpOiBTdXBwb3J0IE9OX0NIQU5HRSBhcyB3ZWxsLgorICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6Q09OVElOVU9VUywKKyAgICAgICAgICAgICAubWluU2FtcGxlUmF0ZSA9IDEuMGYsCisgICAgICAgICAgICAgLm1heFNhbXBsZVJhdGUgPSAyLjBmLAorICAgICAgICAgfSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuZmxvYXRWYWx1ZXMgPSB7MjUuMGZ9fX0sCisKKyAgICB7LmNvbmZpZyA9CisgICAgICAgICB7CisgICAgICAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6Ok5JR0hUX01PREUpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHswfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpEUklWSU5HX1NUQVRVUyksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0ge3RvSW50KFZlaGljbGVEcml2aW5nU3RhdHVzOjpVTlJFU1RSSUNURUQpfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpHRUFSX1NFTEVDVElPTiksCisgICAgICAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgIH0sCisgICAgIC5pbml0aWFsVmFsdWUgPSB7LmludDMyVmFsdWVzID0ge3RvSW50KFZlaGljbGVHZWFyOjpHRUFSX1BBUkspfX19LAorCisgICAgeworICAgICAgICAuY29uZmlnID0KKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19GVUVMX0NBUEFDSVRZKSwKKyAgICAgICAgICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6U1RBVElDLAorICAgICAgICAgICAgfSwKKyAgICAgICAgLmluaXRpYWxWYWx1ZSA9IHsuZmxvYXRWYWx1ZXMgPSB7MTIzMDAwLjBmfX0gIC8vIEluIE1pbGxpbGl0ZXJzCisgICAgfSwKKworICAgIHsuY29uZmlnID0gey5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpESVNQTEFZX0JSSUdIVE5FU1MpLAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICAgICAgICAgLmFyZWFDb25maWdzID0ge1ZlaGljbGVBcmVhQ29uZmlney5taW5JbnQzMlZhbHVlID0gMCwgLm1heEludDMyVmFsdWUgPSAxMH19fSwKKyAgICAgLmluaXRpYWxWYWx1ZSA9IHsuaW50MzJWYWx1ZXMgPSB7N319fSwKKworICAgIHsuY29uZmlnID0KKyAgICAgICAgIHsKKyAgICAgICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SUdOSVRJT05fU1RBVEUpLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHt0b0ludChWZWhpY2xlSWduaXRpb25TdGF0ZTo6T04pfX19LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpFTkdJTkVfT0lMX1RFTVApLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTLAorICAgICAgICAgICAgIC5taW5TYW1wbGVSYXRlID0gMC4xLCAgLy8gMC4xIEh6LCBldmVyeSAxMCBzZWNvbmRzCisgICAgICAgICAgICAgLm1heFNhbXBsZVJhdGUgPSAxMCwgICAvLyAxMCBIeiwgZXZlcnkgMTAwIG1zCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5mbG9hdFZhbHVlcyA9IHsxMDEuMGZ9fX0sCisKKyAgICB7CisgICAgICAgIC5jb25maWcgPQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC5wcm9wID0ga0dlbmVyYXRlRmFrZURhdGFDb250cm9sbGluZ1Byb3BlcnR5LAorICAgICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OldSSVRFLAorICAgICAgICAgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAgICAgfSwKKyAgICB9LAorCisgICAgey5jb25maWcgPQorICAgICAgICAgeworICAgICAgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpET09SX0xPQ0spLAorICAgICAgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UsCisgICAgICAgICB9LAorICAgICAuaW5pdGlhbFZhbHVlID0gey5pbnQzMlZhbHVlcyA9IHsxfX19CisKK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0RlZmF1bHRDb25maWdfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0VtdWxhdGVkVmVoaWNsZUhhbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUzNGEzZgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuY3BwCkBAIC0wLDAgKzEsMjcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiRGVmYXVsdFZlaGljbGVIYWxfdjJfMCIKKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL21hY3Jvcy5oPgorCisjaW5jbHVkZSAiRW11bGF0ZWRWZWhpY2xlSGFsLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworZW51bSBjbGFzcyBGYWtlRGF0YUNvbW1hbmQgOiBpbnQzMl90IHsKKyAgICBTdG9wID0gMCwKKyAgICBTdGFydCA9IDEsCit9OworCitFbXVsYXRlZFZlaGljbGVIYWw6OkVtdWxhdGVkVmVoaWNsZUhhbChWZWhpY2xlUHJvcGVydHlTdG9yZSogcHJvcFN0b3JlKQorICAgIDogbVByb3BTdG9yZShwcm9wU3RvcmUpLAorICAgICAgbUh2YWNQb3dlclByb3BzKHN0ZDo6YmVnaW4oa0h2YWNQb3dlclByb3BlcnRpZXMpLCBzdGQ6OmVuZChrSHZhY1Bvd2VyUHJvcGVydGllcykpLAorICAgICAgbVJlY3VycmVudFRpbWVyKHN0ZDo6YmluZCgmRW11bGF0ZWRWZWhpY2xlSGFsOjpvbkNvbnRpbnVvdXNQcm9wZXJ0eVRpbWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSkpLAorICAgICAgbUZha2VWYWx1ZUdlbmVyYXRvcihzdGQ6OmJpbmQoJkVtdWxhdGVkVmVoaWNsZUhhbDo6b25GYWtlVmFsdWVHZW5lcmF0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMikpIHsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXJyYXlzaXplKGtWZWhpY2xlUHJvcGVydGllcyk7IGkrKykgeworICAgICAgICBtUHJvcFN0b3JlLT5yZWdpc3RlclByb3BlcnR5KGtWZWhpY2xlUHJvcGVydGllc1tpXS5jb25maWcpOworICAgIH0KK30KKworVmVoaWNsZUhhbDo6VmVoaWNsZVByb3BWYWx1ZVB0ciBFbXVsYXRlZFZlaGljbGVIYWw6OmdldCgKKyAgICAgICAgY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLCBTdGF0dXNDb2RlKiBvdXRTdGF0dXMpIHsKKyAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIHYgPSBudWxscHRyOworCisgICAgYXV0byBpbnRlcm5hbFByb3BWYWx1ZSA9IG1Qcm9wU3RvcmUtPnJlYWRWYWx1ZU9yTnVsbChyZXF1ZXN0ZWRQcm9wVmFsdWUpOworICAgIGlmIChpbnRlcm5hbFByb3BWYWx1ZSAhPSBudWxscHRyKSB7CisgICAgICAgIHYgPSBnZXRWYWx1ZVBvb2woKS0+b2J0YWluKCppbnRlcm5hbFByb3BWYWx1ZSk7CisgICAgfQorCisgICAgKm91dFN0YXR1cyA9IHYgIT0gbnVsbHB0ciA/IFN0YXR1c0NvZGU6Ok9LIDogU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgcmV0dXJuIHY7Cit9CisKK1N0YXR1c0NvZGUgRW11bGF0ZWRWZWhpY2xlSGFsOjpzZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSB7CisgICAgaWYgKHByb3BWYWx1ZS5wcm9wID09IGtHZW5lcmF0ZUZha2VEYXRhQ29udHJvbGxpbmdQcm9wZXJ0eSkgeworICAgICAgICByZXR1cm4gaGFuZGxlR2VuZXJhdGVGYWtlRGF0YVJlcXVlc3QocHJvcFZhbHVlKTsKKyAgICB9OworCisgICAgaWYgKG1IdmFjUG93ZXJQcm9wcy5jb3VudChwcm9wVmFsdWUucHJvcCkpIHsKKyAgICAgICAgYXV0byBodmFjUG93ZXJPbiA9IG1Qcm9wU3RvcmUtPnJlYWRWYWx1ZU9yTnVsbCh0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfUE9XRVJfT04pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMSkpOworCisgICAgICAgIGlmIChodmFjUG93ZXJPbiAmJiBodmFjUG93ZXJPbi0+dmFsdWUuaW50MzJWYWx1ZXMuc2l6ZSgpID09IDEKKyAgICAgICAgICAgICAgICAmJiBodmFjUG93ZXJPbi0+dmFsdWUuaW50MzJWYWx1ZXNbMF0gPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoIW1Qcm9wU3RvcmUtPndyaXRlVmFsdWUocHJvcFZhbHVlKSkgeworICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgfQorCisgICAgZ2V0RW11bGF0b3JPckRpZSgpLT5kb1NldFZhbHVlRnJvbUNsaWVudChwcm9wVmFsdWUpOworCisgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworfQorCisvLyBQYXJzZSBzdXBwb3J0ZWQgcHJvcGVydGllcyBsaXN0IGFuZCBnZW5lcmF0ZSB2ZWN0b3Igb2YgcHJvcGVydHkgdmFsdWVzIHRvIGhvbGQgY3VycmVudCB2YWx1ZXMuCit2b2lkIEVtdWxhdGVkVmVoaWNsZUhhbDo6b25DcmVhdGUoKSB7CisgICAgZm9yIChhdXRvJiBpdCA6IGtWZWhpY2xlUHJvcGVydGllcykgeworICAgICAgICBWZWhpY2xlUHJvcENvbmZpZyBjZmcgPSBpdC5jb25maWc7CisgICAgICAgIGludDMyX3Qgc3VwcG9ydGVkQXJlYXMgPSBjZmcuc3VwcG9ydGVkQXJlYXM7CisKKyAgICAgICAgLy8gIEEgZ2xvYmFsIHByb3BlcnR5IHdpbGwgaGF2ZSBzdXBwb3J0ZWRBcmVhcyA9IDAKKyAgICAgICAgaWYgKGlzR2xvYmFsUHJvcChjZmcucHJvcCkpIHsKKyAgICAgICAgICAgIHN1cHBvcnRlZEFyZWFzID0gMDsKKyAgICAgICAgfQorCisgICAgICAgIC8vIFRoaXMgbG9vcCBpcyBhIGRvLXdoaWxlIHNvIGl0IGV4ZWN1dGVzIGF0IGxlYXN0IG9uY2UgdG8gaGFuZGxlIGdsb2JhbCBwcm9wZXJ0aWVzCisgICAgICAgIGRvIHsKKyAgICAgICAgICAgIGludDMyX3QgY3VyQXJlYSA9IHN1cHBvcnRlZEFyZWFzOworICAgICAgICAgICAgc3VwcG9ydGVkQXJlYXMgJj0gc3VwcG9ydGVkQXJlYXMgLSAxOyAgLy8gQ2xlYXIgdGhlIHJpZ2h0LW1vc3QgYml0IG9mIHN1cHBvcnRlZEFyZWFzLgorICAgICAgICAgICAgY3VyQXJlYSBePSBzdXBwb3J0ZWRBcmVhczsgIC8vIFNldCBjdXJBcmVhIHRvIHRoZSBwcmV2aW91c2x5IGNsZWFyZWQgYml0LgorCisgICAgICAgICAgICAvLyBDcmVhdGUgYSBzZXBhcmF0ZSBpbnN0YW5jZSBmb3IgZWFjaCBpbmRpdmlkdWFsIHpvbmUKKyAgICAgICAgICAgIFZlaGljbGVQcm9wVmFsdWUgcHJvcCA9IHsKKyAgICAgICAgICAgICAgICAucHJvcCA9IGNmZy5wcm9wLAorICAgICAgICAgICAgICAgIC5hcmVhSWQgPSBjdXJBcmVhLAorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIGlmIChpdC5pbml0aWFsQXJlYVZhbHVlcy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgYXV0byB2YWx1ZUZvckFyZWFJdCA9IGl0LmluaXRpYWxBcmVhVmFsdWVzLmZpbmQoY3VyQXJlYSk7CisgICAgICAgICAgICAgICAgaWYgKHZhbHVlRm9yQXJlYUl0ICE9IGl0LmluaXRpYWxBcmVhVmFsdWVzLmVuZCgpKSB7CisgICAgICAgICAgICAgICAgICAgIHByb3AudmFsdWUgPSB2YWx1ZUZvckFyZWFJdC0+c2Vjb25kOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dXKCIlcyBmYWlsZWQgdG8gZ2V0IGRlZmF1bHQgdmFsdWUgZm9yIHByb3AgMHgleCBhcmVhIDB4JXgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBjZmcucHJvcCwgY3VyQXJlYSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcm9wLnZhbHVlID0gaXQuaW5pdGlhbFZhbHVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbVByb3BTdG9yZS0+d3JpdGVWYWx1ZShwcm9wKTsKKworICAgICAgICB9IHdoaWxlIChzdXBwb3J0ZWRBcmVhcyAhPSAwKTsKKyAgICB9Cit9CisKK3N0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBFbXVsYXRlZFZlaGljbGVIYWw6Omxpc3RQcm9wZXJ0aWVzKCkgIHsKKyAgICByZXR1cm4gbVByb3BTdG9yZS0+Z2V0QWxsQ29uZmlncygpOworfQorCit2b2lkIEVtdWxhdGVkVmVoaWNsZUhhbDo6b25Db250aW51b3VzUHJvcGVydHlUaW1lcihjb25zdCBzdGQ6OnZlY3RvcjxpbnQzMl90PiYgcHJvcGVydGllcykgeworICAgIFZlaGljbGVQcm9wVmFsdWVQdHIgdjsKKworICAgIGF1dG8mIHBvb2wgPSAqZ2V0VmFsdWVQb29sKCk7CisKKyAgICBmb3IgKGludDMyX3QgcHJvcGVydHkgOiBwcm9wZXJ0aWVzKSB7CisgICAgICAgIGlmIChpc0NvbnRpbnVvdXNQcm9wZXJ0eShwcm9wZXJ0eSkpIHsKKyAgICAgICAgICAgIGF1dG8gaW50ZXJuYWxQcm9wVmFsdWUgPSBtUHJvcFN0b3JlLT5yZWFkVmFsdWVPck51bGwocHJvcGVydHkpOworICAgICAgICAgICAgaWYgKGludGVybmFsUHJvcFZhbHVlICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICB2ID0gcG9vbC5vYnRhaW4oKmludGVybmFsUHJvcFZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFMT0dFKCJVbmV4cGVjdGVkIG9uQ29udGludW91c1Byb3BlcnR5VGltZXIgZm9yIHByb3BlcnR5OiAweCV4IiwgcHJvcGVydHkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHYuZ2V0KCkpIHsKKyAgICAgICAgICAgIHYtPnRpbWVzdGFtcCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAgICAgICAgICAgIGRvSGFsRXZlbnQoc3RkOjptb3ZlKHYpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworU3RhdHVzQ29kZSBFbXVsYXRlZFZlaGljbGVIYWw6OnN1YnNjcmliZShpbnQzMl90IHByb3BlcnR5LCBpbnQzMl90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHNhbXBsZVJhdGUpIHsKKyAgICBBTE9HSSgiJXMgcHJvcElkOiAweCV4LCBzYW1wbGVSYXRlOiAlZiIsIF9fZnVuY19fLCBwcm9wZXJ0eSwgc2FtcGxlUmF0ZSk7CisKKyAgICBpZiAoaXNDb250aW51b3VzUHJvcGVydHkocHJvcGVydHkpKSB7CisgICAgICAgIG1SZWN1cnJlbnRUaW1lci5yZWdpc3RlclJlY3VycmVudEV2ZW50KGhlcnR6VG9OYW5vc2Vjb25kcyhzYW1wbGVSYXRlKSwgcHJvcGVydHkpOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7Cit9CisKK1N0YXR1c0NvZGUgRW11bGF0ZWRWZWhpY2xlSGFsOjp1bnN1YnNjcmliZShpbnQzMl90IHByb3BlcnR5KSB7CisgICAgQUxPR0koIiVzIHByb3BJZDogMHgleCIsIF9fZnVuY19fLCBwcm9wZXJ0eSk7CisgICAgaWYgKGlzQ29udGludW91c1Byb3BlcnR5KHByb3BlcnR5KSkgeworICAgICAgICBtUmVjdXJyZW50VGltZXIudW5yZWdpc3RlclJlY3VycmVudEV2ZW50KHByb3BlcnR5KTsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1c0NvZGU6Ok9LOworfQorCitib29sIEVtdWxhdGVkVmVoaWNsZUhhbDo6aXNDb250aW51b3VzUHJvcGVydHkoaW50MzJfdCBwcm9wSWQpIGNvbnN0IHsKKyAgICBjb25zdCBWZWhpY2xlUHJvcENvbmZpZyogY29uZmlnID0gbVByb3BTdG9yZS0+Z2V0Q29uZmlnT3JOdWxsKHByb3BJZCk7CisgICAgaWYgKGNvbmZpZyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dXKCJDb25maWcgbm90IGZvdW5kIGZvciBwcm9wZXJ0eTogMHgleCIsIHByb3BJZCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIGNvbmZpZy0+Y2hhbmdlTW9kZSA9PSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTOworfQorCitib29sIEVtdWxhdGVkVmVoaWNsZUhhbDo6c2V0UHJvcGVydHlGcm9tVmVoaWNsZShjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIHsKKyAgICBpZiAobVByb3BTdG9yZS0+d3JpdGVWYWx1ZShwcm9wVmFsdWUpKSB7CisgICAgICAgIGRvSGFsRXZlbnQoZ2V0VmFsdWVQb29sKCktPm9idGFpbihwcm9wVmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKworc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gRW11bGF0ZWRWZWhpY2xlSGFsOjpnZXRBbGxQcm9wZXJ0aWVzKCkgY29uc3QgIHsKKyAgICByZXR1cm4gbVByb3BTdG9yZS0+cmVhZEFsbFZhbHVlcygpOworfQorCitTdGF0dXNDb2RlIEVtdWxhdGVkVmVoaWNsZUhhbDo6aGFuZGxlR2VuZXJhdGVGYWtlRGF0YVJlcXVlc3QoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdCkgeworICAgIEFMT0dJKCIlcyIsIF9fZnVuY19fKTsKKyAgICBjb25zdCBhdXRvJiB2ID0gcmVxdWVzdC52YWx1ZTsKKyAgICBpZiAodi5pbnQzMlZhbHVlcy5zaXplKCkgPCAyKSB7CisgICAgICAgIEFMT0dFKCIlczogZXhwZWN0ZWQgYXQgbGVhc3QgMiBlbGVtZW50cyBpbiBpbnQzMlZhbHVlcywgZ290OiAlenUiLCBfX2Z1bmNfXywKKyAgICAgICAgICAgICAgICB2LmludDMyVmFsdWVzLnNpemUoKSk7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICB9CisKKyAgICBGYWtlRGF0YUNvbW1hbmQgY29tbWFuZCA9IHN0YXRpY19jYXN0PEZha2VEYXRhQ29tbWFuZD4odi5pbnQzMlZhbHVlc1swXSk7CisgICAgaW50MzJfdCBwcm9wSWQgPSB2LmludDMyVmFsdWVzWzFdOworCisgICAgc3dpdGNoIChjb21tYW5kKSB7CisgICAgICAgIGNhc2UgRmFrZURhdGFDb21tYW5kOjpTdGFydDogeworICAgICAgICAgICAgaWYgKCF2LmludDY0VmFsdWVzLnNpemUoKSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCIlczogaW50ZXJ2YWwgaXMgbm90IHByb3ZpZGVkIGluIGludDY0VmFsdWVzIiwgX19mdW5jX18pOworICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpJTlZBTElEX0FSRzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGF1dG8gaW50ZXJ2YWwgPSBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHModi5pbnQ2NFZhbHVlc1swXSk7CisKKyAgICAgICAgICAgIGlmICh2LmZsb2F0VmFsdWVzLnNpemUoKSA8IDMpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IGV4cGVjdGVkIGF0IGxlYXN0IDMgZWxlbWVudCBzaW4gZmxvYXRWYWx1ZXMsIGdvdDogJXp1IiwgX19mdW5jX18sCisgICAgICAgICAgICAgICAgICAgICAgICB2LmZsb2F0VmFsdWVzLnNpemUoKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZmxvYXQgaW5pdGlhbFZhbHVlID0gdi5mbG9hdFZhbHVlc1swXTsKKyAgICAgICAgICAgIGZsb2F0IGRpc3BlcnNpb24gPSB2LmZsb2F0VmFsdWVzWzFdOworICAgICAgICAgICAgZmxvYXQgaW5jcmVtZW50ID0gdi5mbG9hdFZhbHVlc1syXTsKKworICAgICAgICAgICAgQUxPR0koIiVzLCBwcm9wSWQ6ICVkLCBpbml0YWxWYWx1ZTogJWYiLCBfX2Z1bmNfXywgcHJvcElkLCBpbml0aWFsVmFsdWUpOworICAgICAgICAgICAgbUZha2VWYWx1ZUdlbmVyYXRvci5zdGFydEdlbmVyYXRpbmdIYWxFdmVudHMoCisgICAgICAgICAgICAgICAgaW50ZXJ2YWwsIHByb3BJZCwgaW5pdGlhbFZhbHVlLCBkaXNwZXJzaW9uLCBpbmNyZW1lbnQpOworCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIEZha2VEYXRhQ29tbWFuZDo6U3RvcDogeworICAgICAgICAgICAgQUxPR0koIiVzLCBGYWtlRGF0YUNvbW1hbmRTdG9wIiwgX19mdW5jX18pOworICAgICAgICAgICAgbUZha2VWYWx1ZUdlbmVyYXRvci5zdG9wR2VuZXJhdGluZ0hhbEV2ZW50cyhwcm9wSWQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDogeworICAgICAgICAgICAgQUxPR0UoIiVzOiB1bmV4cGVjdGVkIGNvbW1hbmQ6ICVkIiwgX19mdW5jX18sIGNvbW1hbmQpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKK30KKwordm9pZCBFbXVsYXRlZFZlaGljbGVIYWw6Om9uRmFrZVZhbHVlR2VuZXJhdGVkKGludDMyX3QgcHJvcElkLCBmbG9hdCB2YWx1ZSkgeworICAgIFZlaGljbGVQcm9wVmFsdWVQdHIgdXBkYXRlZFByb3BWYWx1ZSB7fTsKKyAgICBzd2l0Y2ggKGdldFByb3BUeXBlKHByb3BJZCkpIHsKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpGTE9BVDoKKyAgICAgICAgICAgIHVwZGF0ZWRQcm9wVmFsdWUgPSBnZXRWYWx1ZVBvb2woKS0+b2J0YWluRmxvYXQodmFsdWUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzI6CisgICAgICAgICAgICB1cGRhdGVkUHJvcFZhbHVlID0gZ2V0VmFsdWVQb29sKCktPm9idGFpbkludDMyKHN0YXRpY19jYXN0PGludDMyX3Q+KHZhbHVlKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dFKCIlczogZGF0YSB0eXBlIGZvciBwcm9wZXJ0eTogMHgleCBub3Qgc3VwcG9ydGVkIiwgX19mdW5jX18sIHByb3BJZCk7CisgICAgICAgICAgICByZXR1cm47CisKKyAgICB9CisKKyAgICBpZiAodXBkYXRlZFByb3BWYWx1ZSkgeworICAgICAgICB1cGRhdGVkUHJvcFZhbHVlLT5wcm9wID0gcHJvcElkOworICAgICAgICB1cGRhdGVkUHJvcFZhbHVlLT5hcmVhSWQgPSAwOyAgLy8gQWRkIGFyZWEgc3VwcG9ydCBpZiBuZWNlc3NhcnkuCisgICAgICAgIHVwZGF0ZWRQcm9wVmFsdWUtPnRpbWVzdGFtcCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAgICAgICAgbVByb3BTdG9yZS0+d3JpdGVWYWx1ZSgqdXBkYXRlZFByb3BWYWx1ZSk7CisgICAgICAgIGF1dG8gY2hhbmdlTW9kZSA9IG1Qcm9wU3RvcmUtPmdldENvbmZpZ09yRGllKHByb3BJZCktPmNoYW5nZU1vZGU7CisgICAgICAgIGlmIChWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UgPT0gY2hhbmdlTW9kZSkgeworICAgICAgICAgICAgZG9IYWxFdmVudChtb3ZlKHVwZGF0ZWRQcm9wVmFsdWUpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA5NDg1ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9FbXVsYXRlZFZlaGljbGVIYWwuaApAQCAtMCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfRW11bGF0ZWRWZWhpY2xlSGFsX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9FbXVsYXRlZFZlaGljbGVIYWxfSF8KKworI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDxtZW1vcnk+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPHRocmVhZD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgorCisjaW5jbHVkZSA8dXRpbHMvU3lzdGVtQ2xvY2suaD4KKworI2luY2x1ZGUgIlZlaGljbGVIYWxQcm90by5wYi5oIgorCisjaW5jbHVkZSA8dmhhbF92Ml8wL1JlY3VycmVudFRpbWVyLmg+CisjaW5jbHVkZSA8dmhhbF92Ml8wL1ZlaGljbGVIYWwuaD4KKyNpbmNsdWRlICJ2aGFsX3YyXzAvVmVoaWNsZVByb3BlcnR5U3RvcmUuaCIKKworI2luY2x1ZGUgIkRlZmF1bHRDb25maWcuaCIKKyNpbmNsdWRlICJWZWhpY2xlSGFsUHJvdG8ucGIuaCIKKyNpbmNsdWRlICJWZWhpY2xlRW11bGF0b3IuaCIKKyNpbmNsdWRlICJGYWtlVmFsdWVHZW5lcmF0b3IuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCisvKiogSW1wbGVtZW50YXRpb24gb2YgVmVoaWNsZUhhbCB0aGF0IGNvbm5lY3RlZCB0byBlbXVsYXRvciBpbnN0ZWFkIG9mIHJlYWwgdmVoaWNsZSBuZXR3b3JrLiAqLworY2xhc3MgRW11bGF0ZWRWZWhpY2xlSGFsIDogcHVibGljIEVtdWxhdGVkVmVoaWNsZUhhbElmYWNlIHsKK3B1YmxpYzoKKyAgICBFbXVsYXRlZFZlaGljbGVIYWwoVmVoaWNsZVByb3BlcnR5U3RvcmUqIHByb3BTdG9yZSk7CisgICAgfkVtdWxhdGVkVmVoaWNsZUhhbCgpID0gZGVmYXVsdDsKKworICAgIC8vICBNZXRob2RzIGZyb20gVmVoaWNsZUhhbAorICAgIHZvaWQgb25DcmVhdGUoKSBvdmVycmlkZTsKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gbGlzdFByb3BlcnRpZXMoKSBvdmVycmlkZTsKKyAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIGdldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzQ29kZSogb3V0U3RhdHVzKSBvdmVycmlkZTsKKyAgICBTdGF0dXNDb2RlIHNldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIG92ZXJyaWRlOworICAgIFN0YXR1c0NvZGUgc3Vic2NyaWJlKGludDMyX3QgcHJvcGVydHksIGludDMyX3QgYXJlYXMsIGZsb2F0IHNhbXBsZVJhdGUpIG92ZXJyaWRlOworICAgIFN0YXR1c0NvZGUgdW5zdWJzY3JpYmUoaW50MzJfdCBwcm9wZXJ0eSkgb3ZlcnJpZGU7CisKKyAgICAvLyAgTWV0aG9kcyBmcm9tIEVtdWxhdGVkVmVoaWNsZUhhbElmYWNlCisgICAgYm9vbCBzZXRQcm9wZXJ0eUZyb21WZWhpY2xlKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgb3ZlcnJpZGU7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gZ2V0QWxsUHJvcGVydGllcygpIGNvbnN0IG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGNvbnN0ZXhwciBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMgaGVydHpUb05hbm9zZWNvbmRzKGZsb2F0IGh6KSBjb25zdCB7CisgICAgICAgIHJldHVybiBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHMoc3RhdGljX2Nhc3Q8aW50NjRfdD4oMTAwMDAwMDAwMEwgLyBoeikpOworICAgIH0KKworICAgIFN0YXR1c0NvZGUgaGFuZGxlR2VuZXJhdGVGYWtlRGF0YVJlcXVlc3QoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdCk7CisgICAgdm9pZCBvbkZha2VWYWx1ZUdlbmVyYXRlZChpbnQzMl90IHByb3BJZCwgZmxvYXQgdmFsdWUpOworCisgICAgdm9pZCBvbkNvbnRpbnVvdXNQcm9wZXJ0eVRpbWVyKGNvbnN0IHN0ZDo6dmVjdG9yPGludDMyX3Q+JiBwcm9wZXJ0aWVzKTsKKyAgICBib29sIGlzQ29udGludW91c1Byb3BlcnR5KGludDMyX3QgcHJvcElkKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBWZWhpY2xlUHJvcGVydHlTdG9yZSogbVByb3BTdG9yZTsKKyAgICBzdGQ6OnVub3JkZXJlZF9zZXQ8aW50MzJfdD4gbUh2YWNQb3dlclByb3BzOworICAgIFJlY3VycmVudFRpbWVyIG1SZWN1cnJlbnRUaW1lcjsKKyAgICBGYWtlVmFsdWVHZW5lcmF0b3IgbUZha2VWYWx1ZUdlbmVyYXRvcjsKK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0VtdWxhdGVkVmVoaWNsZUhhbF9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0Zha2VWYWx1ZUdlbmVyYXRvci5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL0Zha2VWYWx1ZUdlbmVyYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiYmJiMDgKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvRmFrZVZhbHVlR2VuZXJhdG9yLmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9GYWtlSGFsRXZlbnRHZW5lcmF0b3JfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0Zha2VIYWxFdmVudEdlbmVyYXRvcl9IXworCisjaW5jbHVkZSA8Y2hyb25vPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL3R5cGVzLmg+CisKKyNpbmNsdWRlIDx2aGFsX3YyXzAvUmVjdXJyZW50VGltZXIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCitjbGFzcyBGYWtlVmFsdWVHZW5lcmF0b3IgeworcHJpdmF0ZToKKyAgICAvLyBJbiBldmVyeSB0aW1lciB0aWNrIHdlIG1heSB3YW50IHRvIGdlbmVyYXRlIG5ldyB2YWx1ZSBiYXNlZCBvbiBpbml0aWFsIHZhbHVlIGZvciBkZWJ1ZworICAgIC8vIHB1cnBvc2UuIEl0J3MgYmV0dGVyIHRvIGhhdmUgc2VxdWVudGlhbCB2YWx1ZXMgdG8gc2VlIGlmIGV2ZW50cyBnZXRzIGRlbGl2ZXJlZCBpbiBvcmRlcgorICAgIC8vIHRvIHRoZSBjbGllbnQuCisKKyAgICBzdHJ1Y3QgR2VuZXJhdG9yQ2ZnIHsKKyAgICAgICAgZmxvYXQgaW5pdGlhbFZhbHVlOyAgLy8KKyAgICAgICAgZmxvYXQgY3VycmVudFZhbHVlOyAgLy8gIFNob3VsZCBiZSBpbiByYW5nZSAoaW5pdGlhbFZhbHVlICsvLSBkaXNwZXJzaW9uKS4KKyAgICAgICAgZmxvYXQgZGlzcGVyc2lvbjsgICAgLy8gIERlZmluZXMgbWluaW11bSBhbmQgbWF4aW11bSB2YWx1ZSBiYXNlZCBvbiBpbml0aWFsIHZhbHVlLgorICAgICAgICBmbG9hdCBpbmNyZW1lbnQ7ICAgICAvLyAgVmFsdWUgdGhhdCB3ZSB3aWxsIGJlIGFkZGVkIHRvIGN1cnJlbnRWYWx1ZSB3aXRoIGVhY2ggdGltZXIgdGljay4KKyAgICB9OworCitwdWJsaWM6CisgICAgdXNpbmcgT25IYWxFdmVudCA9IHN0ZDo6ZnVuY3Rpb248dm9pZChpbnQzMl90IHByb3BJZCwgZmxvYXQgdmFsdWUpPjsKKworICAgIEZha2VWYWx1ZUdlbmVyYXRvcihjb25zdCBPbkhhbEV2ZW50JiBvbkhhbEV2ZW50KSA6CisgICAgICAgIG1PbkhhbEV2ZW50KG9uSGFsRXZlbnQpLAorICAgICAgICBtUmVjdXJyZW50VGltZXIoc3RkOjpiaW5kKCZGYWtlVmFsdWVHZW5lcmF0b3I6Om9uVGltZXIsIHRoaXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xKSkKKyAgICB7fQorCisgICAgfkZha2VWYWx1ZUdlbmVyYXRvcigpID0gZGVmYXVsdDsKKworCisgICAgdm9pZCBzdGFydEdlbmVyYXRpbmdIYWxFdmVudHMoc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIGludGVydmFsLCBpbnQgcHJvcElkLCBmbG9hdCBpbml0aWFsVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGlzcGVyc2lvbiwgZmxvYXQgaW5jcmVtZW50KSB7CisgICAgICAgIE11eEd1YXJkIGcobUxvY2spOworCisgICAgICAgIHJlbW92ZUxvY2tlZChwcm9wSWQpOworCisgICAgICAgIG1HZW5DZmcuaW5zZXJ0KHtwcm9wSWQsIEdlbmVyYXRvckNmZyB7CisgICAgICAgICAgICAuaW5pdGlhbFZhbHVlID0gaW5pdGlhbFZhbHVlLAorICAgICAgICAgICAgLmN1cnJlbnRWYWx1ZSA9IGluaXRpYWxWYWx1ZSwKKyAgICAgICAgICAgIC5kaXNwZXJzaW9uID0gZGlzcGVyc2lvbiwKKyAgICAgICAgICAgIC5pbmNyZW1lbnQgPSBpbmNyZW1lbnQsCisgICAgICAgIH19KTsKKworICAgICAgICBtUmVjdXJyZW50VGltZXIucmVnaXN0ZXJSZWN1cnJlbnRFdmVudChpbnRlcnZhbCwgcHJvcElkKTsKKyAgICB9CisKKyAgICB2b2lkIHN0b3BHZW5lcmF0aW5nSGFsRXZlbnRzKGludCBwcm9wSWQpIHsKKyAgICAgICAgTXV4R3VhcmQgZyhtTG9jayk7CisgICAgICAgIGlmIChwcm9wSWQgPT0gMCkgeworICAgICAgICAgICAgLy8gUmVtb3ZlIGFsbC4KKyAgICAgICAgICAgIGZvciAoYXV0byYmIGl0IDogbUdlbkNmZykgeworICAgICAgICAgICAgICAgIHJlbW92ZUxvY2tlZChpdC5maXJzdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZW1vdmVMb2NrZWQocHJvcElkKTsKKyAgICAgICAgfQorICAgIH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHJlbW92ZUxvY2tlZChpbnQgcHJvcElkKSB7CisgICAgICAgIGlmIChtR2VuQ2ZnLmVyYXNlKHByb3BJZCkpIHsKKyAgICAgICAgICAgIG1SZWN1cnJlbnRUaW1lci51bnJlZ2lzdGVyUmVjdXJyZW50RXZlbnQocHJvcElkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgb25UaW1lcihjb25zdCBzdGQ6OnZlY3RvcjxpbnQzMl90PiYgcHJvcGVydGllcykgeworICAgICAgICBNdXhHdWFyZCBnKG1Mb2NrKTsKKworICAgICAgICBmb3IgKGludDMyX3QgcHJvcElkIDogcHJvcGVydGllcykgeworICAgICAgICAgICAgYXV0byYgY2ZnID0gbUdlbkNmZ1twcm9wSWRdOworICAgICAgICAgICAgY2ZnLmN1cnJlbnRWYWx1ZSArPSBjZmcuaW5jcmVtZW50OworICAgICAgICAgICAgaWYgKGNmZy5jdXJyZW50VmFsdWUgPiBjZmcuaW5pdGlhbFZhbHVlICsgY2ZnLmRpc3BlcnNpb24pIHsKKyAgICAgICAgICAgICAgICBjZmcuY3VycmVudFZhbHVlID0gY2ZnLmluaXRpYWxWYWx1ZSAtIGNmZy5kaXNwZXJzaW9uOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbU9uSGFsRXZlbnQocHJvcElkLCBjZmcuY3VycmVudFZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworcHJpdmF0ZToKKyAgICB1c2luZyBNdXhHdWFyZCA9IHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PjsKKworICAgIG11dGFibGUgc3RkOjptdXRleCBtTG9jazsKKyAgICBPbkhhbEV2ZW50IG1PbkhhbEV2ZW50OworICAgIFJlY3VycmVudFRpbWVyIG1SZWN1cnJlbnRUaW1lcjsKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8aW50MzJfdCwgR2VuZXJhdG9yQ2ZnPiBtR2VuQ2ZnOworfTsKKworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisKKyNlbmRpZiAvL2FuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9GYWtlSGFsRXZlbnRHZW5lcmF0b3JfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9QaXBlQ29tbS5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvUGlwZUNvbW0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiMTVhYTMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvUGlwZUNvbW0uY3BwCkBAIC0wLDAgKzEsMTA3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJQaXBlQ29tbSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHN5c3RlbS9xZW11X3BpcGUuaD4KKworI2luY2x1ZGUgIlBpcGVDb21tLmgiCisKKyNkZWZpbmUgQ0FSX1NFUlZJQ0VfTkFNRSAicGlwZTpxZW11ZDpjYXIiCisKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCitQaXBlQ29tbTo6UGlwZUNvbW0oKSB7CisgICAgLy8gSW5pdGlhbGl6ZSBtZW1iZXIgdmFycworICAgIG1QaXBlRmQgPSAtMTsKK30KKworCitpbnQgUGlwZUNvbW06Om9wZW4oKSB7CisgICAgaW50IGZkID0gcWVtdV9waXBlX29wZW4oQ0FSX1NFUlZJQ0VfTkFNRSk7CisKKyAgICBpZiAoZmQgPCAwKSB7CisgICAgICAgIEFMT0dFKCIlczogQ291bGQgbm90IG9wZW4gY29ubmVjdGlvbiB0byBzZXJ2aWNlOiAlcyAlZCIsIF9fRlVOQ1RJT05fXywgc3RyZXJyb3IoZXJybm8pLCBmZCk7CisgICAgICAgIHJldHVybiAtZXJybm87CisgICAgfQorCisgICAgQUxPR0koIiVzOiBPUEVORUQgUElQRSwgZmQ9JWQiLCBfX0ZVTkNUSU9OX18sIGZkKTsKKyAgICBtUGlwZUZkID0gZmQ7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFBpcGVDb21tOjpyZWFkKCkgeworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IE1BWF9SWF9NU0dfU1ogPSAyMDQ4OworICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG1zZyA9IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KE1BWF9SWF9NU0dfU1opOworICAgIGludCBudW1CeXRlczsKKworICAgIG51bUJ5dGVzID0gcWVtdV9waXBlX2ZyYW1lX3JlY3YobVBpcGVGZCwgbXNnLmRhdGEoKSwgbXNnLnNpemUoKSk7CisKKyAgICBpZiAobnVtQnl0ZXMgPT0gTUFYX1JYX01TR19TWikgeworICAgICAgICBBTE9HRSgiJXM6ICBSZWNlaXZlZCBtYXggc2l6ZSA9ICVkIiwgX19GVU5DVElPTl9fLCBNQVhfUlhfTVNHX1NaKTsKKyAgICB9IGVsc2UgaWYgKG51bUJ5dGVzID4gMCkgeworICAgICAgICBtc2cucmVzaXplKG51bUJ5dGVzKTsKKyAgICAgICAgcmV0dXJuIG1zZzsKKyAgICB9IGVsc2UgeworICAgICAgICBBTE9HRCgiJXM6IENvbm5lY3Rpb24gdGVybWluYXRlZCBvbiBwaXBlICVkLCBudW1CeXRlcz0lZCIsIF9fRlVOQ1RJT05fXywgbVBpcGVGZCwgbnVtQnl0ZXMpOworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICAgICAgbVBpcGVGZCA9IC0xOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KCk7Cit9CisKK2ludCBQaXBlQ29tbTo6d3JpdGUoY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIGRhdGEpIHsKKyAgICBpbnQgcmV0VmFsID0gMDsKKworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgaWYgKG1QaXBlRmQgIT0gLTEpIHsKKyAgICAgICAgICAgIHJldFZhbCA9IHFlbXVfcGlwZV9mcmFtZV9zZW5kKG1QaXBlRmQsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocmV0VmFsIDwgMCkgeworICAgICAgICByZXRWYWwgPSAtZXJybm87CisgICAgICAgIEFMT0dFKCIlczogIHNlbmRfY21kOiAoZmQ9JWQpOiBFUlJPUjogJXMiLCBfX0ZVTkNUSU9OX18sIG1QaXBlRmQsIHN0cmVycm9yKGVycm5vKSk7CisgICAgfQorCisgICAgcmV0dXJuIHJldFZhbDsKK30KKworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9QaXBlQ29tbS5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1BpcGVDb21tLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNkMzJkMAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9QaXBlQ29tbS5oCkBAIC0wLDAgKzEsNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9QaXBlQ29tbV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfUGlwZUNvbW1fSF8KKworI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlICJDb21tQmFzZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKKy8qKgorICogUGlwZUNvbW0gdXNlcyBhIHFlbXUgcGlwZSBpbnRlcmZhY2UgdG8gY29ubmVjdCB0byB0aGUgR29sZGZpc2ggRW11bGF0b3IuCisgKi8KK2NsYXNzIFBpcGVDb21tIDogcHVibGljIENvbW1CYXNlIHsKK3B1YmxpYzoKKyAgICBQaXBlQ29tbSgpOworCisgICAgLyoqCisgICAgICogT3BlbnMgYSBwaXBlIGFuZCBiZWdpbnMgbGlzdGVuaW5nLgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgUmV0dXJucyAwIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgaW50IG9wZW4oKSBvdmVycmlkZTsKKworICAgIC8qKgorICAgICAqIEJsb2NraW5nIGNhbGwgdG8gcmVhZCBkYXRhIGZyb20gdGhlIGNvbm5lY3Rpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFNlcmlhbGl6ZWQgcHJvdG9idWYgZGF0YSByZWNlaXZlZCBmcm9tIGVtdWxhdG9yLiAgVGhpcyB3aWxsIGJlCisgICAgICogICAgICAgICAgICAgIGFuIGVtcHR5IHZlY3RvciBpZiB0aGUgY29ubmVjdGlvbiB3YXMgY2xvc2VkIG9yIHNvbWUgb3RoZXIgZXJyb3Igb2NjdXJyZWQuCisgICAgICovCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gcmVhZCgpIG92ZXJyaWRlOworCisgICAgLyoqCisgICAgICogVHJhbnNtaXRzIGEgc3RyaW5nIG9mIGRhdGEgdG8gdGhlIGVtdWxhdG9yLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGEgU2VyaWFsaXplZCBwcm90b2J1ZiBkYXRhIHRvIHRyYW5zbWl0LgorICAgICAqCisgICAgICogQHJldHVybiBpbnQgTnVtYmVyIG9mIGJ5dGVzIHRyYW5zbWl0dGVkLCBvciAtMSBpZiBmYWlsZWQuCisgICAgICovCisgICAgaW50IHdyaXRlKGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdGQ6Om11dGV4IG1NdXRleDsKKyAgICBpbnQgbVBpcGVGZDsKK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1BpcGVDb21tX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvU29ja2V0Q29tbS5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvU29ja2V0Q29tbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJjMWM3OAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9Tb2NrZXRDb21tLmNwcApAQCAtMCwwICsxLDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiU29ja2V0Q29tbSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9JVmVoaWNsZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisKKyNpbmNsdWRlICJTb2NrZXRDb21tLmgiCisKKy8vIFNvY2tldCB0byB1c2Ugd2hlbiBjb21tdW5pY2F0aW5nIHdpdGggSG9zdCBQQworc3RhdGljIGNvbnN0ZXhwciBpbnQgREVCVUdfU09DS0VUID0gMzM0NTI7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworU29ja2V0Q29tbTo6U29ja2V0Q29tbSgpIHsKKyAgICAvLyBJbml0aWFsaXplIG1lbWJlciB2YXJzCisgICAgbUN1clNvY2tGZCA9IC0xOworICAgIG1FeGl0ICAgICAgPSAgMDsKKyAgICBtU29ja0ZkICAgID0gLTE7Cit9CisKKworU29ja2V0Q29tbTo6flNvY2tldENvbW0oKSB7CisgICAgc3RvcCgpOworfQorCitpbnQgU29ja2V0Q29tbTo6Y29ubmVjdCgpIHsKKyAgICBzb2NrYWRkcl9pbiBjbGlBZGRyOworICAgIHNvY2tsZW5fdCBjbGlMZW4gPSBzaXplb2YoY2xpQWRkcik7CisgICAgaW50IGNTb2NrRmQgPSBhY2NlcHQobVNvY2tGZCwgcmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3Qgc29ja2FkZHIqPigmY2xpQWRkciksICZjbGlMZW4pOworCisgICAgaWYgKGNTb2NrRmQgPj0gMCkgeworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICAgICAgbUN1clNvY2tGZCA9IGNTb2NrRmQ7CisgICAgICAgIH0KKyAgICAgICAgQUxPR0QoIiVzOiBJbmNvbWluZyBjb25uZWN0aW9uIHJlY2VpdmVkIG9uIHNvY2tldCAlZCIsIF9fRlVOQ1RJT05fXywgY1NvY2tGZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY1NvY2tGZCA9IC0xOworICAgIH0KKworICAgIHJldHVybiBjU29ja0ZkOworfQorCitpbnQgU29ja2V0Q29tbTo6b3BlbigpIHsKKyAgICBpbnQgcmV0VmFsOworICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBzZXJ2QWRkcjsKKworICAgIG1Tb2NrRmQgPSBzb2NrZXQoQUZfSU5FVCwgU09DS19TVFJFQU0sIDApOworICAgIGlmIChtU29ja0ZkIDwgMCkgeworICAgICAgICBBTE9HRSgiJXM6IHNvY2tldCgpIGZhaWxlZCwgbVNvY2tGZD0lZCwgZXJybm89JWQiLCBfX0ZVTkNUSU9OX18sIG1Tb2NrRmQsIGVycm5vKTsKKyAgICAgICAgbVNvY2tGZCA9IC0xOworICAgICAgICByZXR1cm4gLWVycm5vOworICAgIH0KKworICAgIG1lbXNldCgmc2VydkFkZHIsIDAsIHNpemVvZihzZXJ2QWRkcikpOworICAgIHNlcnZBZGRyLnNpbl9mYW1pbHkgPSBBRl9JTkVUOworICAgIHNlcnZBZGRyLnNpbl9hZGRyLnNfYWRkciA9IElOQUREUl9BTlk7CisgICAgc2VydkFkZHIuc2luX3BvcnQgPSBodG9ucyhERUJVR19TT0NLRVQpOworCisgICAgcmV0VmFsID0gYmluZChtU29ja0ZkLCByZWludGVycHJldF9jYXN0PHN0cnVjdCBzb2NrYWRkcio+KCZzZXJ2QWRkciksIHNpemVvZihzZXJ2QWRkcikpOworICAgIGlmKHJldFZhbCA8IDApIHsKKyAgICAgICAgQUxPR0UoIiVzOiBFcnJvciBvbiBiaW5kaW5nOiByZXRWYWw9JWQsIGVycm5vPSVkIiwgX19GVU5DVElPTl9fLCByZXRWYWwsIGVycm5vKTsKKyAgICAgICAgY2xvc2UobVNvY2tGZCk7CisgICAgICAgIG1Tb2NrRmQgPSAtMTsKKyAgICAgICAgcmV0dXJuIC1lcnJubzsKKyAgICB9CisKKyAgICBsaXN0ZW4obVNvY2tGZCwgMSk7CisKKyAgICAvLyBTZXQgdGhlIHNvY2tldCB0byBiZSBub24tYmxvY2tpbmcgc28gd2UgY2FuIHBvbGwgaXQgY29udGlub3VvdXNseQorICAgIGZjbnRsKG1Tb2NrRmQsIEZfU0VURkwsIE9fTk9OQkxPQ0spOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0ZDo6dmVjdG9yPHVpbnQ4X3Q+IFNvY2tldENvbW06OnJlYWQoKSB7CisgICAgaW50MzJfdCBtc2dTaXplOworICAgIGludCBudW1CeXRlcyA9IDA7CisKKyAgICAvLyBUaGlzIGlzIGEgdmFyaWFibGUgbGVuZ3RoIG1lc3NhZ2UuCisgICAgLy8gUmVhZCB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIHJ4IG92ZXIgdGhlIHNvY2tldAorICAgIG51bUJ5dGVzID0gOjpyZWFkKG1DdXJTb2NrRmQsICZtc2dTaXplLCBzaXplb2YobXNnU2l6ZSkpOworICAgIG1zZ1NpemUgPSBudG9obChtc2dTaXplKTsKKworICAgIGlmIChudW1CeXRlcyAhPSBzaXplb2YobXNnU2l6ZSkpIHsKKyAgICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gY29ubmVjdGlvbiBpcyBjbG9zZWQKKyAgICAgICAgQUxPR0QoIiVzOiBudW1CeXRlcz0lZCwgZXhwZWN0ZWQ9NCIsIF9fRlVOQ1RJT05fXywgbnVtQnl0ZXMpOworICAgICAgICBBTE9HRCgiJXM6IENvbm5lY3Rpb24gdGVybWluYXRlZCBvbiBzb2NrZXQgJWQiLCBfX0ZVTkNUSU9OX18sIG1DdXJTb2NrRmQpOworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICAgICAgbUN1clNvY2tGZCA9IC0xOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KCk7CisgICAgfQorCisgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gbXNnID0gc3RkOjp2ZWN0b3I8dWludDhfdD4obXNnU2l6ZSk7CisKKyAgICBudW1CeXRlcyA9IDo6cmVhZChtQ3VyU29ja0ZkLCBtc2cuZGF0YSgpLCBtc2dTaXplKTsKKworICAgIGlmICgobnVtQnl0ZXMgPT0gbXNnU2l6ZSkgJiYgKG1zZ1NpemUgPiAwKSkgeworICAgICAgICAvLyBSZWNlaXZlZCBhIG1lc3NhZ2UuCisgICAgICAgIHJldHVybiBtc2c7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gY29ubmVjdGlvbiBpcyBjbG9zZWQKKyAgICAgICAgQUxPR0QoIiVzOiBudW1CeXRlcz0lZCwgbXNnU2l6ZT0lZCIsIF9fRlVOQ1RJT05fXywgbnVtQnl0ZXMsIG1zZ1NpemUpOworICAgICAgICBBTE9HRCgiJXM6IENvbm5lY3Rpb24gdGVybWluYXRlZCBvbiBzb2NrZXQgJWQiLCBfX0ZVTkNUSU9OX18sIG1DdXJTb2NrRmQpOworICAgICAgICB7CisgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICAgICAgbUN1clNvY2tGZCA9IC0xOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KCk7CisgICAgfQorfQorCit2b2lkIFNvY2tldENvbW06OnN0b3AoKSB7CisgICAgaWYgKG1FeGl0ID09IDApIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgbUV4aXQgPSAxOworCisgICAgICAgIC8vIENsb3NlIGVtdWxhdG9yIHNvY2tldCBpZiBpdCBpcyBvcGVuCisgICAgICAgIGlmIChtQ3VyU29ja0ZkICE9IC0xKSB7CisgICAgICAgICAgICBjbG9zZShtQ3VyU29ja0ZkKTsKKyAgICAgICAgICAgIG1DdXJTb2NrRmQgPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtU29ja0ZkICE9IC0xKSB7CisgICAgICAgICAgICBjbG9zZShtU29ja0ZkKTsKKyAgICAgICAgICAgIG1Tb2NrRmQgPSAtMTsKKyAgICAgICAgfQorICAgIH0KK30KKworaW50IFNvY2tldENvbW06OndyaXRlKGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKSB7CisgICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgTVNHX0hFQURFUl9MRU4gPSA0OworICAgIGludCByZXRWYWwgPSAwOworICAgIHVuaW9uIHsKKyAgICAgICAgdWludDMyX3QgbXNnTGVuOworICAgICAgICB1aW50OF90IG1zZ0xlbkJ5dGVzW01TR19IRUFERVJfTEVOXTsKKyAgICB9OworCisgICAgLy8gUHJlcGFyZSBoZWFkZXIgZm9yIHRoZSBtZXNzYWdlCisgICAgbXNnTGVuID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRhdGEuc2l6ZSgpKTsKKyAgICBtc2dMZW4gPSBodG9ubChtc2dMZW4pOworCisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICBpZiAobUN1clNvY2tGZCAhPSAtMSkgeworICAgICAgICByZXRWYWwgPSA6OndyaXRlKG1DdXJTb2NrRmQsIG1zZ0xlbkJ5dGVzLCBNU0dfSEVBREVSX0xFTik7CisKKyAgICAgICAgaWYgKHJldFZhbCA9PSBNU0dfSEVBREVSX0xFTikgeworICAgICAgICAgICAgcmV0VmFsID0gOjp3cml0ZShtQ3VyU29ja0ZkLCBkYXRhLmRhdGEoKSwgZGF0YS5zaXplKCkpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJldFZhbDsKK30KKworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL1NvY2tldENvbW0uaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9Tb2NrZXRDb21tLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTJjZmIyOQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9Tb2NrZXRDb21tLmgKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1NvY2tldENvbW1fSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1NvY2tldENvbW1fSF8KKworI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlICJDb21tQmFzZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgaW1wbCB7CisKKy8qKgorICogU29ja2V0Q29tbSBvcGVucyBhIHNvY2tldCB2aWEgYWRiJ3MgVENQIHBvcnQgZm9yd2FyZGluZyB0byBlbmFibGUgYSBIb3N0IFBDIHRvIGNvbm5lY3QgdG8KKyAqIHRoZSBWZWhpY2xlSEFMLgorICovCitjbGFzcyBTb2NrZXRDb21tIDogcHVibGljIENvbW1CYXNlIHsKK3B1YmxpYzoKKyAgICBTb2NrZXRDb21tKCk7CisgICAgdmlydHVhbCB+U29ja2V0Q29tbSgpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIGNvbm5lY3Rpb24gdG8gdGhlIG90aGVyIHNpZGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludCBSZXR1cm5zIGZkIG9yIHNvY2tldCBudW1iZXIgaWYgY29ubmVjdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqICAgICAgICAgICAgICBPdGhlcndpc2UsIHJldHVybnMgLTEgaWYgbm8gY29ubmVjdGlvbiBpcyBhdmFpbGJsZS4KKyAgICAgKi8KKyAgICBpbnQgY29ubmVjdCgpIG92ZXJyaWRlOworCisgICAgLyoqCisgICAgICogT3BlbnMgYSBzb2NrZXQgYW5kIGJlZ2lucyBsaXN0ZW5pbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludCBSZXR1cm5zIDAgb24gc3VjY2Vzcy4KKyAgICAgKi8KKyAgICBpbnQgb3BlbigpIG92ZXJyaWRlOworCisgICAgLyoqCisgICAgICogQmxvY2tpbmcgY2FsbCB0byByZWFkIGRhdGEgZnJvbSB0aGUgY29ubmVjdGlvbi4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RkOjp2ZWN0b3I8dWludDhfdD4gU2VyaWFsaXplZCBwcm90b2J1ZiBkYXRhIHJlY2VpdmVkIGZyb20gZW11bGF0b3IuICBUaGlzIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICAgYW4gZW1wdHkgdmVjdG9yIGlmIHRoZSBjb25uZWN0aW9uIHdhcyBjbG9zZWQgb3Igc29tZSBvdGhlciBlcnJvciBvY2N1cnJlZC4KKyAgICAgKi8KKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiByZWFkKCkgb3ZlcnJpZGU7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZXMgYSBjb25uZWN0aW9uIGlmIGl0IGlzIG9wZW4uCisgICAgICovCisgICAgdm9pZCBzdG9wKCkgb3ZlcnJpZGU7CisKKyAgICAvKioKKyAgICAgKiBUcmFuc21pdHMgYSBzdHJpbmcgb2YgZGF0YSB0byB0aGUgZW11bGF0b3IuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGF0YSBTZXJpYWxpemVkIHByb3RvYnVmIGRhdGEgdG8gdHJhbnNtaXQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGludCBOdW1iZXIgb2YgYnl0ZXMgdHJhbnNtaXR0ZWQsIG9yIC0xIGlmIGZhaWxlZC4KKyAgICAgKi8KKyAgICBpbnQgd3JpdGUoY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIGRhdGEpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIGludCBtQ3VyU29ja0ZkOworICAgIHN0ZDo6YXRvbWljPGludD4gbUV4aXQ7CisgICAgc3RkOjptdXRleCBtTXV0ZXg7CisgICAgaW50IG1Tb2NrRmQ7Cit9OworCit9ICAvLyBpbXBsCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfaW1wbF9Tb2NrZXRDb21tX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvVmVoaWNsZUVtdWxhdG9yLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9WZWhpY2xlRW11bGF0b3IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4Y2I3NDMKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvVmVoaWNsZUVtdWxhdG9yLmNwcApAQCAtMCwwICsxLDM2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgIlZlaGljbGVFbXVsYXRvcl92Ml8wIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL3Byb3BlcnRpZXMuaD4KKyNpbmNsdWRlIDx1dGlscy9TeXN0ZW1DbG9jay5oPgorCisjaW5jbHVkZSA8dmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oPgorCisjaW5jbHVkZSAiUGlwZUNvbW0uaCIKKyNpbmNsdWRlICJTb2NrZXRDb21tLmgiCisKKyNpbmNsdWRlICJWZWhpY2xlRW11bGF0b3IuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCitzdGQ6OnVuaXF1ZV9wdHI8Q29tbUJhc2U+IENvbW1GYWN0b3J5OjpjcmVhdGUoKSB7CisgICAgYm9vbCBpc0VtdWxhdG9yID0gYW5kcm9pZDo6YmFzZTo6R2V0Qm9vbFByb3BlcnR5KCJyby5rZXJuZWwucWVtdSIsIGZhbHNlKTsKKworICAgIGlmIChpc0VtdWxhdG9yKSB7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBpcGVDb21tPigpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFNvY2tldENvbW0+KCk7CisgICAgfQorfQorCitWZWhpY2xlRW11bGF0b3I6On5WZWhpY2xlRW11bGF0b3IoKSB7CisgICAgbUV4aXQgPSB0cnVlOyAgIC8vIE5vdGlmeSB0aHJlYWQgdG8gZmluaXNoIGFuZCB3YWl0IGZvciBpdCB0byB0ZXJtaW5hdGUuCisgICAgbUNvbW0tPnN0b3AoKTsgIC8vIENsb3NlIGVtdWxhdG9yIHNvY2tldCBpZiBpdCBpcyBvcGVuLgorICAgIGlmIChtVGhyZWFkLmpvaW5hYmxlKCkpIG1UaHJlYWQuam9pbigpOworfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6ZG9TZXRWYWx1ZUZyb21DbGllbnQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSB7CisgICAgZW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSBtc2c7CisgICAgZW11bGF0b3I6OlZlaGljbGVQcm9wVmFsdWUgKnZhbCA9IG1zZy5hZGRfdmFsdWUoKTsKKyAgICBwb3B1bGF0ZVByb3RvVmVoaWNsZVByb3BWYWx1ZSh2YWwsICZwcm9wVmFsdWUpOworICAgIG1zZy5zZXRfc3RhdHVzKGVtdWxhdG9yOjpSRVNVTFRfT0spOworICAgIG1zZy5zZXRfbXNnX3R5cGUoZW11bGF0b3I6OlNFVF9QUk9QRVJUWV9BU1lOQyk7CisgICAgdHhNc2cobXNnKTsKK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OmRvR2V0Q29uZmlnKFZlaGljbGVFbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiByeE1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgcmVzcE1zZykgeworICAgIHN0ZDo6dmVjdG9yPFZlaGljbGVQcm9wQ29uZmlnPiBjb25maWdzID0gbUhhbC0+bGlzdFByb3BlcnRpZXMoKTsKKyAgICBlbXVsYXRvcjo6VmVoaWNsZVByb3BHZXQgZ2V0UHJvcCA9IHJ4TXNnLnByb3AoMCk7CisKKyAgICByZXNwTXNnLnNldF9tc2dfdHlwZShlbXVsYXRvcjo6R0VUX0NPTkZJR19SRVNQKTsKKyAgICByZXNwTXNnLnNldF9zdGF0dXMoZW11bGF0b3I6OkVSUk9SX0lOVkFMSURfUFJPUEVSVFkpOworCisgICAgZm9yIChhdXRvJiBjb25maWcgOiBjb25maWdzKSB7CisgICAgICAgIC8vIEZpbmQgdGhlIGNvbmZpZyB3ZSBhcmUgbG9va2luZyBmb3IKKyAgICAgICAgaWYgKGNvbmZpZy5wcm9wID09IGdldFByb3AucHJvcCgpKSB7CisgICAgICAgICAgICBlbXVsYXRvcjo6VmVoaWNsZVByb3BDb25maWcqIHByb3RvQ2ZnID0gcmVzcE1zZy5hZGRfY29uZmlnKCk7CisgICAgICAgICAgICBwb3B1bGF0ZVByb3RvVmVoaWNsZUNvbmZpZyhwcm90b0NmZywgY29uZmlnKTsKKyAgICAgICAgICAgIHJlc3BNc2cuc2V0X3N0YXR1cyhlbXVsYXRvcjo6UkVTVUxUX09LKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6ZG9HZXRDb25maWdBbGwoVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIC8qIHJ4TXNnICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVFbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKSB7CisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGNvbmZpZ3MgPSBtSGFsLT5saXN0UHJvcGVydGllcygpOworCisgICAgcmVzcE1zZy5zZXRfbXNnX3R5cGUoZW11bGF0b3I6OkdFVF9DT05GSUdfQUxMX1JFU1ApOworICAgIHJlc3BNc2cuc2V0X3N0YXR1cyhlbXVsYXRvcjo6UkVTVUxUX09LKTsKKworICAgIGZvciAoYXV0byYgY29uZmlnIDogY29uZmlncykgeworICAgICAgICBlbXVsYXRvcjo6VmVoaWNsZVByb3BDb25maWcqIHByb3RvQ2ZnID0gcmVzcE1zZy5hZGRfY29uZmlnKCk7CisgICAgICAgIHBvcHVsYXRlUHJvdG9WZWhpY2xlQ29uZmlnKHByb3RvQ2ZnLCBjb25maWcpOworICAgIH0KK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OmRvR2V0UHJvcGVydHkoVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHJ4TXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpICB7CisgICAgaW50MzJfdCBhcmVhSWQgPSAwOworICAgIGVtdWxhdG9yOjpWZWhpY2xlUHJvcEdldCBnZXRQcm9wID0gcnhNc2cucHJvcCgwKTsKKyAgICBpbnQzMl90IHByb3BJZCA9IGdldFByb3AucHJvcCgpOworICAgIGVtdWxhdG9yOjpTdGF0dXMgc3RhdHVzID0gZW11bGF0b3I6OkVSUk9SX0lOVkFMSURfUFJPUEVSVFk7CisKKyAgICByZXNwTXNnLnNldF9tc2dfdHlwZShlbXVsYXRvcjo6R0VUX1BST1BFUlRZX1JFU1ApOworCisgICAgaWYgKGdldFByb3AuaGFzX2FyZWFfaWQoKSkgeworICAgICAgICBhcmVhSWQgPSBnZXRQcm9wLmFyZWFfaWQoKTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIFZlaGljbGVQcm9wVmFsdWUgcmVxdWVzdCA9IHsgLnByb3AgPSBwcm9wSWQsIC5hcmVhSWQgPSBhcmVhSWQgfTsKKyAgICAgICAgU3RhdHVzQ29kZSBoYWxTdGF0dXM7CisgICAgICAgIGF1dG8gdmFsID0gbUhhbC0+Z2V0KHJlcXVlc3QsICZoYWxTdGF0dXMpOworICAgICAgICBpZiAodmFsICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIGVtdWxhdG9yOjpWZWhpY2xlUHJvcFZhbHVlKiBwcm90b1ZhbCA9IHJlc3BNc2cuYWRkX3ZhbHVlKCk7CisgICAgICAgICAgICBwb3B1bGF0ZVByb3RvVmVoaWNsZVByb3BWYWx1ZShwcm90b1ZhbCwgdmFsLmdldCgpKTsKKyAgICAgICAgICAgIHN0YXR1cyA9IGVtdWxhdG9yOjpSRVNVTFRfT0s7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXNwTXNnLnNldF9zdGF0dXMoc3RhdHVzKTsKK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OmRvR2V0UHJvcGVydHlBbGwoVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIC8qIHJ4TXNnICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpICB7CisgICAgcmVzcE1zZy5zZXRfbXNnX3R5cGUoZW11bGF0b3I6OkdFVF9QUk9QRVJUWV9BTExfUkVTUCk7CisgICAgcmVzcE1zZy5zZXRfc3RhdHVzKGVtdWxhdG9yOjpSRVNVTFRfT0spOworCisgICAgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHByb3AgOiBtSGFsLT5nZXRBbGxQcm9wZXJ0aWVzKCkpIHsKKyAgICAgICAgICAgIGVtdWxhdG9yOjpWZWhpY2xlUHJvcFZhbHVlKiBwcm90b1ZhbCA9IHJlc3BNc2cuYWRkX3ZhbHVlKCk7CisgICAgICAgICAgICBwb3B1bGF0ZVByb3RvVmVoaWNsZVByb3BWYWx1ZShwcm90b1ZhbCwgJnByb3ApOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6ZG9TZXRQcm9wZXJ0eShWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgcnhNc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlRW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSYgcmVzcE1zZykgeworICAgIGVtdWxhdG9yOjpWZWhpY2xlUHJvcFZhbHVlIHByb3RvVmFsID0gcnhNc2cudmFsdWUoMCk7CisgICAgVmVoaWNsZVByb3BWYWx1ZSB2YWwgPSB7CisgICAgICAgIC5wcm9wID0gcHJvdG9WYWwucHJvcCgpLAorICAgICAgICAuYXJlYUlkID0gcHJvdG9WYWwuYXJlYV9pZCgpLAorICAgICAgICAudGltZXN0YW1wID0gZWxhcHNlZFJlYWx0aW1lTmFubygpLAorICAgIH07CisKKyAgICByZXNwTXNnLnNldF9tc2dfdHlwZShlbXVsYXRvcjo6U0VUX1BST1BFUlRZX1JFU1ApOworCisgICAgLy8gQ29weSB2YWx1ZSBkYXRhIGlmIGl0IGlzIHNldC4gIFRoaXMgYXV0b21hdGljYWxseSBoYW5kbGVzIGNvbXBsZXggZGF0YSB0eXBlcyBpZiBuZWVkZWQuCisgICAgaWYgKHByb3RvVmFsLmhhc19zdHJpbmdfdmFsdWUoKSkgeworICAgICAgICB2YWwudmFsdWUuc3RyaW5nVmFsdWUgPSBwcm90b1ZhbC5zdHJpbmdfdmFsdWUoKS5jX3N0cigpOworICAgIH0KKworICAgIGlmIChwcm90b1ZhbC5oYXNfYnl0ZXNfdmFsdWUoKSkgeworICAgICAgICB2YWwudmFsdWUuYnl0ZXMgPSBzdGQ6OnZlY3Rvcjx1aW50OF90PiB7IHByb3RvVmFsLmJ5dGVzX3ZhbHVlKCkuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b1ZhbC5ieXRlc192YWx1ZSgpLmVuZCgpIH07CisgICAgfQorCisgICAgaWYgKHByb3RvVmFsLmludDMyX3ZhbHVlc19zaXplKCkgPiAwKSB7CisgICAgICAgIHZhbC52YWx1ZS5pbnQzMlZhbHVlcyA9IHN0ZDo6dmVjdG9yPGludDMyX3Q+IHsgcHJvdG9WYWwuaW50MzJfdmFsdWVzKCkuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90b1ZhbC5pbnQzMl92YWx1ZXMoKS5lbmQoKSB9OworICAgIH0KKworICAgIGlmIChwcm90b1ZhbC5pbnQ2NF92YWx1ZXNfc2l6ZSgpID4gMCkgeworICAgICAgICB2YWwudmFsdWUuaW50NjRWYWx1ZXMgPSBzdGQ6OnZlY3RvcjxpbnQ2NF90PiB7IHByb3RvVmFsLmludDY0X3ZhbHVlcygpLmJlZ2luKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9WYWwuaW50NjRfdmFsdWVzKCkuZW5kKCkgfTsKKyAgICB9CisKKyAgICBpZiAocHJvdG9WYWwuZmxvYXRfdmFsdWVzX3NpemUoKSA+IDApIHsKKyAgICAgICAgdmFsLnZhbHVlLmZsb2F0VmFsdWVzID0gc3RkOjp2ZWN0b3I8ZmxvYXQ+IHsgcHJvdG9WYWwuZmxvYXRfdmFsdWVzKCkuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9WYWwuZmxvYXRfdmFsdWVzKCkuZW5kKCkgfTsKKyAgICB9CisKKyAgICBib29sIGhhbFJlcyA9IG1IYWwtPnNldFByb3BlcnR5RnJvbVZlaGljbGUodmFsKTsKKyAgICByZXNwTXNnLnNldF9zdGF0dXMoaGFsUmVzID8gZW11bGF0b3I6OlJFU1VMVF9PSyA6IGVtdWxhdG9yOjpFUlJPUl9JTlZBTElEX1BST1BFUlRZKTsKK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OnR4TXNnKGVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHR4TXNnKSB7CisgICAgaW50IG51bUJ5dGVzID0gdHhNc2cuQnl0ZVNpemUoKTsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBtc2coc3RhdGljX2Nhc3Q8c2l6ZV90PihudW1CeXRlcykpOworCisgICAgaWYgKCF0eE1zZy5TZXJpYWxpemVUb0FycmF5KG1zZy5kYXRhKCksIHN0YXRpY19jYXN0PGludDMyX3Q+KG1zZy5zaXplKCkpKSkgeworICAgICAgICBBTE9HRSgiJXM6IFNlcmlhbGl6ZVRvU3RyaW5nIGZhaWxlZCEiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobUV4aXQpIHsKKyAgICAgICAgQUxPR1coIiVzOiB1bmFibGUgdG8gdHJhbnNtaXQgYSBtZXNzYWdlLCBjb25uZWN0aW9uIGNsb3NlZCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFNlbmQgdGhlIG1lc3NhZ2UKKyAgICBpbnQgcmV0VmFsID0gbUNvbW0tPndyaXRlKG1zZyk7CisgICAgaWYgKHJldFZhbCA8IDApIHsKKyAgICAgICAgQUxPR0UoIiVzOiBGYWlsZWQgdG8gdHggbWVzc2FnZTogcmV0dmFsPSVkLCBlcnJubz0lZCIsIF9fZnVuY19fLCByZXRWYWwsIGVycm5vKTsKKyAgICB9Cit9CisKK3ZvaWQgVmVoaWNsZUVtdWxhdG9yOjpwYXJzZVJ4UHJvdG9CdWYoc3RkOjp2ZWN0b3I8dWludDhfdD4mIG1zZykgeworICAgIGVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UgcnhNc2c7CisgICAgZW11bGF0b3I6OkVtdWxhdG9yTWVzc2FnZSByZXNwTXNnOworCisgICAgaWYgKHJ4TXNnLlBhcnNlRnJvbUFycmF5KG1zZy5kYXRhKCksIHN0YXRpY19jYXN0PGludDMyX3Q+KG1zZy5zaXplKCkpKSkgeworICAgICAgICBzd2l0Y2ggKHJ4TXNnLm1zZ190eXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgZW11bGF0b3I6OkdFVF9DT05GSUdfQ01EOgorICAgICAgICAgICAgICAgIGRvR2V0Q29uZmlnKHJ4TXNnLCByZXNwTXNnKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgZW11bGF0b3I6OkdFVF9DT05GSUdfQUxMX0NNRDoKKyAgICAgICAgICAgICAgICBkb0dldENvbmZpZ0FsbChyeE1zZywgcmVzcE1zZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGVtdWxhdG9yOjpHRVRfUFJPUEVSVFlfQ01EOgorICAgICAgICAgICAgICAgIGRvR2V0UHJvcGVydHkocnhNc2csIHJlc3BNc2cpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBlbXVsYXRvcjo6R0VUX1BST1BFUlRZX0FMTF9DTUQ6CisgICAgICAgICAgICAgICAgZG9HZXRQcm9wZXJ0eUFsbChyeE1zZywgcmVzcE1zZyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGVtdWxhdG9yOjpTRVRfUFJPUEVSVFlfQ01EOgorICAgICAgICAgICAgICAgIGRvU2V0UHJvcGVydHkocnhNc2csIHJlc3BNc2cpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBBTE9HVygiJXM6IFVua25vd24gbWVzc2FnZSByZWNlaXZlZCwgdHlwZSA9ICVkIiwgX19mdW5jX18sIHJ4TXNnLm1zZ190eXBlKCkpOworICAgICAgICAgICAgICAgIHJlc3BNc2cuc2V0X3N0YXR1cyhlbXVsYXRvcjo6RVJST1JfVU5JTVBMRU1FTlRFRF9DTUQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLy8gU2VuZCB0aGUgcmVwbHkKKyAgICAgICAgdHhNc2cocmVzcE1zZyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoIiVzOiBQYXJzZUZyb21TdHJpbmcoKSBmYWlsZWQuIG1zZ1NpemU9JWQiLCBfX2Z1bmNfXywgc3RhdGljX2Nhc3Q8aW50Pihtc2cuc2l6ZSgpKSk7CisgICAgfQorfQorCit2b2lkIFZlaGljbGVFbXVsYXRvcjo6cG9wdWxhdGVQcm90b1ZlaGljbGVDb25maWcoZW11bGF0b3I6OlZlaGljbGVQcm9wQ29uZmlnKiBwcm90b0NmZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgY2ZnKSB7CisgICAgcHJvdG9DZmctPnNldF9wcm9wKGNmZy5wcm9wKTsKKyAgICBwcm90b0NmZy0+c2V0X2FjY2Vzcyh0b0ludChjZmcuYWNjZXNzKSk7CisgICAgcHJvdG9DZmctPnNldF9jaGFuZ2VfbW9kZSh0b0ludChjZmcuY2hhbmdlTW9kZSkpOworICAgIHByb3RvQ2ZnLT5zZXRfdmFsdWVfdHlwZSh0b0ludChnZXRQcm9wVHlwZShjZmcucHJvcCkpKTsKKworICAgIGlmICghaXNHbG9iYWxQcm9wKGNmZy5wcm9wKSkgeworICAgICAgICBwcm90b0NmZy0+c2V0X3N1cHBvcnRlZF9hcmVhcyhjZmcuc3VwcG9ydGVkQXJlYXMpOworICAgIH0KKworICAgIGZvciAoYXV0byYgY29uZmlnRWxlbWVudCA6IGNmZy5jb25maWdBcnJheSkgeworICAgICAgICBwcm90b0NmZy0+YWRkX2NvbmZpZ19hcnJheShjb25maWdFbGVtZW50KTsKKyAgICB9CisKKyAgICBpZiAoY2ZnLmNvbmZpZ1N0cmluZy5zaXplKCkgPiAwKSB7CisgICAgICAgIHByb3RvQ2ZnLT5zZXRfY29uZmlnX3N0cmluZyhjZmcuY29uZmlnU3RyaW5nLmNfc3RyKCksIGNmZy5jb25maWdTdHJpbmcuc2l6ZSgpKTsKKyAgICB9CisKKyAgICAvLyBQb3B1bGF0ZSB0aGUgbWluL21heCB2YWx1ZXMgYmFzZWQgb24gcHJvcGVydHkgdHlwZQorICAgIHN3aXRjaCAoZ2V0UHJvcFR5cGUoY2ZnLnByb3ApKSB7CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6U1RSSU5HOgorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkJPT0xFQU46CisgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5VHlwZTo6SU5UMzJfVkVDOgorICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUX1ZFQzoKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpCWVRFUzoKKyAgICAgICAgY2FzZSBWZWhpY2xlUHJvcGVydHlUeXBlOjpDT01QTEVYOgorICAgICAgICAgICAgLy8gRG8gbm90aGluZy4gIFRoZXNlIHR5cGVzIGRvbid0IGhhdmUgbWluL21heCB2YWx1ZXMKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDY0OgorICAgICAgICAgICAgaWYgKGNmZy5hcmVhQ29uZmlncy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgZW11bGF0b3I6OlZlaGljbGVBcmVhQ29uZmlnKiBhQ2ZnID0gcHJvdG9DZmctPmFkZF9hcmVhX2NvbmZpZ3MoKTsKKyAgICAgICAgICAgICAgICBhQ2ZnLT5zZXRfbWluX2ludDY0X3ZhbHVlKGNmZy5hcmVhQ29uZmlnc1swXS5taW5JbnQ2NFZhbHVlKTsKKyAgICAgICAgICAgICAgICBhQ2ZnLT5zZXRfbWF4X2ludDY0X3ZhbHVlKGNmZy5hcmVhQ29uZmlnc1swXS5tYXhJbnQ2NFZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUOgorICAgICAgICAgICAgaWYgKGNmZy5hcmVhQ29uZmlncy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgZW11bGF0b3I6OlZlaGljbGVBcmVhQ29uZmlnKiBhQ2ZnID0gcHJvdG9DZmctPmFkZF9hcmVhX2NvbmZpZ3MoKTsKKyAgICAgICAgICAgICAgICBhQ2ZnLT5zZXRfbWluX2Zsb2F0X3ZhbHVlKGNmZy5hcmVhQ29uZmlnc1swXS5taW5GbG9hdFZhbHVlKTsKKyAgICAgICAgICAgICAgICBhQ2ZnLT5zZXRfbWF4X2Zsb2F0X3ZhbHVlKGNmZy5hcmVhQ29uZmlnc1swXS5tYXhGbG9hdFZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyOgorICAgICAgICAgICAgaWYgKGNmZy5hcmVhQ29uZmlncy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgZW11bGF0b3I6OlZlaGljbGVBcmVhQ29uZmlnKiBhQ2ZnID0gcHJvdG9DZmctPmFkZF9hcmVhX2NvbmZpZ3MoKTsKKyAgICAgICAgICAgICAgICBhQ2ZnLT5zZXRfbWluX2ludDMyX3ZhbHVlKGNmZy5hcmVhQ29uZmlnc1swXS5taW5JbnQzMlZhbHVlKTsKKyAgICAgICAgICAgICAgICBhQ2ZnLT5zZXRfbWF4X2ludDMyX3ZhbHVlKGNmZy5hcmVhQ29uZmlnc1swXS5tYXhJbnQzMlZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR1coIiVzOiBVbmtub3duIHByb3BlcnR5IHR5cGU6ICAweCV4IiwgX19mdW5jX18sIHRvSW50KGdldFByb3BUeXBlKGNmZy5wcm9wKSkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcHJvdG9DZmctPnNldF9taW5fc2FtcGxlX3JhdGUoY2ZnLm1pblNhbXBsZVJhdGUpOworICAgIHByb3RvQ2ZnLT5zZXRfbWF4X3NhbXBsZV9yYXRlKGNmZy5tYXhTYW1wbGVSYXRlKTsKK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OnBvcHVsYXRlUHJvdG9WZWhpY2xlUHJvcFZhbHVlKGVtdWxhdG9yOjpWZWhpY2xlUHJvcFZhbHVlKiBwcm90b1ZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWhpY2xlUHJvcFZhbHVlKiB2YWwpIHsKKyAgICBwcm90b1ZhbC0+c2V0X3Byb3AodmFsLT5wcm9wKTsKKyAgICBwcm90b1ZhbC0+c2V0X3ZhbHVlX3R5cGUodG9JbnQoZ2V0UHJvcFR5cGUodmFsLT5wcm9wKSkpOworICAgIHByb3RvVmFsLT5zZXRfdGltZXN0YW1wKHZhbC0+dGltZXN0YW1wKTsKKyAgICBwcm90b1ZhbC0+c2V0X2FyZWFfaWQodmFsLT5hcmVhSWQpOworCisgICAgLy8gQ29weSB2YWx1ZSBkYXRhIGlmIGl0IGlzIHNldC4KKyAgICAvLyAgLSBmb3IgYnl0ZXMgYW5kIHN0cmluZ3MsIHRoaXMgaXMgaW5kaWNhdGVkIGJ5IHNpemUgPiAwCisgICAgLy8gIC0gZm9yIGludDMyLCBpbnQ2NCwgYW5kIGZsb2F0LCBjb3B5IHRoZSB2YWx1ZXMgaWYgdmVjdG9ycyBoYXZlIGRhdGEKKyAgICBpZiAodmFsLT52YWx1ZS5zdHJpbmdWYWx1ZS5zaXplKCkgPiAwKSB7CisgICAgICAgIHByb3RvVmFsLT5zZXRfc3RyaW5nX3ZhbHVlKHZhbC0+dmFsdWUuc3RyaW5nVmFsdWUuY19zdHIoKSwgdmFsLT52YWx1ZS5zdHJpbmdWYWx1ZS5zaXplKCkpOworICAgIH0KKworICAgIGlmICh2YWwtPnZhbHVlLmJ5dGVzLnNpemUoKSA+IDApIHsKKyAgICAgICAgcHJvdG9WYWwtPnNldF9ieXRlc192YWx1ZSh2YWwtPnZhbHVlLmJ5dGVzLmRhdGEoKSwgdmFsLT52YWx1ZS5ieXRlcy5zaXplKCkpOworICAgIH0KKworICAgIGZvciAoYXV0byYgaW50MzJWYWx1ZSA6IHZhbC0+dmFsdWUuaW50MzJWYWx1ZXMpIHsKKyAgICAgICAgcHJvdG9WYWwtPmFkZF9pbnQzMl92YWx1ZXMoaW50MzJWYWx1ZSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiBpbnQ2NFZhbHVlIDogdmFsLT52YWx1ZS5pbnQ2NFZhbHVlcykgeworICAgICAgICBwcm90b1ZhbC0+YWRkX2ludDY0X3ZhbHVlcyhpbnQ2NFZhbHVlKTsKKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIGZsb2F0VmFsdWUgOiB2YWwtPnZhbHVlLmZsb2F0VmFsdWVzKSB7CisgICAgICAgIHByb3RvVmFsLT5hZGRfZmxvYXRfdmFsdWVzKGZsb2F0VmFsdWUpOworICAgIH0KK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OnJ4TXNnKCkgeworICAgIHdoaWxlICghbUV4aXQpIHsKKyAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4gbXNnID0gbUNvbW0tPnJlYWQoKTsKKworICAgICAgICBpZiAobXNnLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgIC8vIFJlY2VpdmVkIGEgbWVzc2FnZS4KKyAgICAgICAgICAgIHBhcnNlUnhQcm90b0J1Zihtc2cpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gVGhpcyBoYXBwZW5zIHdoZW4gY29ubmVjdGlvbiBpcyBjbG9zZWQKKyAgICAgICAgICAgIEFMT0dEKCIlczogbXNnU2l6ZT0lenUiLCBfX2Z1bmNfXywgbXNnLnNpemUoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBWZWhpY2xlRW11bGF0b3I6OnJ4VGhyZWFkKCkgeworICAgIGlmIChtRXhpdCkgcmV0dXJuOworCisgICAgaW50IHJldFZhbCA9IG1Db21tLT5vcGVuKCk7CisgICAgaWYgKHJldFZhbCAhPSAwKSBtRXhpdCA9IHRydWU7CisKKyAgICAvLyBDb21tcyBhcmUgcHJvcGVybHkgb3BlbmVkCisgICAgd2hpbGUgKCFtRXhpdCkgeworICAgICAgICByZXRWYWwgPSBtQ29tbS0+Y29ubmVjdCgpOworCisgICAgICAgIGlmIChyZXRWYWwgPj0gMCkgeworICAgICAgICAgICAgcnhNc2coKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIENoZWNrIGV2ZXJ5IDEwMG1zIGZvciBhIG5ldyBjb25uZWN0aW9uCisgICAgICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDEwMCkpOworICAgIH0KK30KKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvVmVoaWNsZUVtdWxhdG9yLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvVmVoaWNsZUVtdWxhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWE4Y2ZlMgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMC9WZWhpY2xlRW11bGF0b3IuaApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX1ZlaGljbGVIYWxFbXVsYXRvcl9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfVmVoaWNsZUhhbEVtdWxhdG9yX0hfCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHRocmVhZD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlICJ2aGFsX3YyXzAvVmVoaWNsZUhhbC5oIgorCisjaW5jbHVkZSAiQ29tbUJhc2UuaCIKKyNpbmNsdWRlICJWZWhpY2xlSGFsUHJvdG8ucGIuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworbmFtZXNwYWNlIGltcGwgeworCitjbGFzcyBWZWhpY2xlRW11bGF0b3I7ICAvLyBGb3J3YXJkIGRlY2xhcmF0aW9uLgorCisvKiogRXh0ZW5zaW9uIG9mIFZlaGljbGVIYWwgdGhhdCB1c2VkIGJ5IFZlaGljbGVFbXVsYXRvci4gKi8KK2NsYXNzIEVtdWxhdGVkVmVoaWNsZUhhbElmYWNlIDogcHVibGljIFZlaGljbGVIYWwgeworcHVibGljOgorICAgIHZpcnR1YWwgYm9vbCBzZXRQcm9wZXJ0eUZyb21WZWhpY2xlKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgPSAwOworICAgIHZpcnR1YWwgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BWYWx1ZT4gZ2V0QWxsUHJvcGVydGllcygpIGNvbnN0ID0gMDsKKworICAgIHZvaWQgcmVnaXN0ZXJFbXVsYXRvcihWZWhpY2xlRW11bGF0b3IqIGVtdWxhdG9yKSB7CisgICAgICAgIEFMT0dJKCIlcywgZW11bGF0b3I6ICVwIiwgX19mdW5jX18sIGVtdWxhdG9yKTsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGcobUVtdWxhdG9yTG9jayk7CisgICAgICAgIG1FbXVsYXRvciA9IGVtdWxhdG9yOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFZlaGljbGVFbXVsYXRvciogZ2V0RW11bGF0b3JPckRpZSgpIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGcobUVtdWxhdG9yTG9jayk7CisgICAgICAgIGlmIChtRW11bGF0b3IgPT0gbnVsbHB0cikgYWJvcnQoKTsKKyAgICAgICAgcmV0dXJuIG1FbXVsYXRvcjsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgbXV0YWJsZSBzdGQ6Om11dGV4IG1FbXVsYXRvckxvY2s7CisgICAgVmVoaWNsZUVtdWxhdG9yKiBtRW11bGF0b3I7Cit9OworCitzdHJ1Y3QgQ29tbUZhY3RvcnkgeworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q29tbUJhc2U+IGNyZWF0ZSgpOworfTsKKworLyoqCisgKiBFbXVsYXRlcyB2ZWhpY2xlIGJ5IHByb3ZpZGluZyBjb250cm9sbGluZyBpbnRlcmZhY2UgZnJvbSBob3N0IHNpZGUgZWl0aGVyIHRocm91Z2ggQURCIG9yIFBpcGUuCisgKi8KK2NsYXNzIFZlaGljbGVFbXVsYXRvciB7CitwdWJsaWM6CisgICAgVmVoaWNsZUVtdWxhdG9yKEVtdWxhdGVkVmVoaWNsZUhhbElmYWNlKiBoYWwsCisgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxDb21tQmFzZT4gY29tbSA9IENvbW1GYWN0b3J5OjpjcmVhdGUoKSkKKyAgICAgICAgICAgIDogbUhhbCB7IGhhbCB9LAorICAgICAgICAgICAgICBtQ29tbShjb21tLnJlbGVhc2UoKSksCisgICAgICAgICAgICAgIG1UaHJlYWQgeyAmVmVoaWNsZUVtdWxhdG9yOjpyeFRocmVhZCwgdGhpc30geworICAgICAgICBtSGFsLT5yZWdpc3RlckVtdWxhdG9yKHRoaXMpOworICAgIH0KKyAgICB2aXJ0dWFsIH5WZWhpY2xlRW11bGF0b3IoKTsKKworICAgIHZvaWQgZG9TZXRWYWx1ZUZyb21DbGllbnQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKTsKKworcHJpdmF0ZToKKyAgICB1c2luZyBFbXVsYXRvck1lc3NhZ2UgPSBlbXVsYXRvcjo6RW11bGF0b3JNZXNzYWdlOworCisgICAgdm9pZCBkb0dldENvbmZpZyhFbXVsYXRvck1lc3NhZ2UmIHJ4TXNnLCBFbXVsYXRvck1lc3NhZ2UmIHJlc3BNc2cpOworICAgIHZvaWQgZG9HZXRDb25maWdBbGwoRW11bGF0b3JNZXNzYWdlJiByeE1zZywgRW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKTsKKyAgICB2b2lkIGRvR2V0UHJvcGVydHkoRW11bGF0b3JNZXNzYWdlJiByeE1zZywgRW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKTsKKyAgICB2b2lkIGRvR2V0UHJvcGVydHlBbGwoRW11bGF0b3JNZXNzYWdlJiByeE1zZywgRW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKTsKKyAgICB2b2lkIGRvU2V0UHJvcGVydHkoRW11bGF0b3JNZXNzYWdlJiByeE1zZywgRW11bGF0b3JNZXNzYWdlJiByZXNwTXNnKTsKKyAgICB2b2lkIHR4TXNnKGVtdWxhdG9yOjpFbXVsYXRvck1lc3NhZ2UmIHR4TXNnKTsKKyAgICB2b2lkIHBhcnNlUnhQcm90b0J1ZihzdGQ6OnZlY3Rvcjx1aW50OF90PiYgbXNnKTsKKyAgICB2b2lkIHBvcHVsYXRlUHJvdG9WZWhpY2xlQ29uZmlnKGVtdWxhdG9yOjpWZWhpY2xlUHJvcENvbmZpZyogcHJvdG9DZmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBWZWhpY2xlUHJvcENvbmZpZyYgY2ZnKTsKKyAgICB2b2lkIHBvcHVsYXRlUHJvdG9WZWhpY2xlUHJvcFZhbHVlKGVtdWxhdG9yOjpWZWhpY2xlUHJvcFZhbHVlKiBwcm90b1ZhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFZlaGljbGVQcm9wVmFsdWUqIHZhbCk7CisgICAgdm9pZCByeE1zZygpOworICAgIHZvaWQgcnhUaHJlYWQoKTsKKworcHJpdmF0ZToKKyAgICBzdGQ6OmF0b21pYzxib29sPiBtRXhpdCB7IGZhbHNlIH07CisgICAgRW11bGF0ZWRWZWhpY2xlSGFsSWZhY2UqIG1IYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1CYXNlPiBtQ29tbTsKKyAgICBzdGQ6OnRocmVhZCBtVGhyZWFkOworfTsKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX2ltcGxfVmVoaWNsZUhhbEVtdWxhdG9yX0hfCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvaW1wbC92aGFsX3YyXzAvcHJvdG8vVmVoaWNsZUhhbFByb3RvLnByb3RvIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL3Byb3RvL1ZlaGljbGVIYWxQcm90by5wcm90bwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjQzM2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L2ltcGwvdmhhbF92Ml8wL3Byb3RvL1ZlaGljbGVIYWxQcm90by5wcm90bwpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3N5bnRheCA9ICJwcm90bzIiOworb3B0aW9uIG9wdGltaXplX2ZvciA9IExJVEVfUlVOVElNRTsKKworcGFja2FnZSBlbXVsYXRvcjsKKworLy8gQ01EIG1lc3NhZ2VzIGFyZSBmcm9tIHdvcmtzdGF0aW9uIC0tPiBWSEFMCisvLyBSRVNQIG1lc3NhZ2VzIGFyZSBmcm9tIFZIQUwgLS0+IHdvcmtzdGF0aW9uCitlbnVtIE1zZ1R5cGUgeworICAgIEdFVF9DT05GSUdfQ01EICAgICAgICAgICAgICAgICAgICAgID0gMDsKKyAgICBHRVRfQ09ORklHX1JFU1AgICAgICAgICAgICAgICAgICAgICA9IDE7CisgICAgR0VUX0NPTkZJR19BTExfQ01EICAgICAgICAgICAgICAgICAgPSAyOworICAgIEdFVF9DT05GSUdfQUxMX1JFU1AgICAgICAgICAgICAgICAgID0gMzsKKyAgICBHRVRfUFJPUEVSVFlfQ01EICAgICAgICAgICAgICAgICAgICA9IDQ7CisgICAgR0VUX1BST1BFUlRZX1JFU1AgICAgICAgICAgICAgICAgICAgPSA1OworICAgIEdFVF9QUk9QRVJUWV9BTExfQ01EICAgICAgICAgICAgICAgID0gNjsKKyAgICBHRVRfUFJPUEVSVFlfQUxMX1JFU1AgICAgICAgICAgICAgICA9IDc7CisgICAgU0VUX1BST1BFUlRZX0NNRCAgICAgICAgICAgICAgICAgICAgPSA4OworICAgIFNFVF9QUk9QRVJUWV9SRVNQICAgICAgICAgICAgICAgICAgID0gOTsKKyAgICBTRVRfUFJPUEVSVFlfQVNZTkMgICAgICAgICAgICAgICAgICA9IDEwOworfQorZW51bSBTdGF0dXMgeworICAgIFJFU1VMVF9PSyAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMDsKKyAgICBFUlJPUl9VTktOT1dOICAgICAgICAgICAgICAgICAgICAgICA9IDE7CisgICAgRVJST1JfVU5JTVBMRU1FTlRFRF9DTUQgICAgICAgICAgICAgPSAyOworICAgIEVSUk9SX0lOVkFMSURfUFJPUEVSVFkgICAgICAgICAgICAgID0gMzsKKyAgICBFUlJPUl9JTlZBTElEX0FSRUFfSUQgICAgICAgICAgICAgICA9IDQ7CisgICAgRVJST1JfUFJPUEVSVFlfVU5JTklUSUFMSVpFRCAgICAgICAgPSA1OworICAgIEVSUk9SX1dSSVRFX09OTFlfUFJPUEVSVFkgICAgICAgICAgID0gNjsKKyAgICBFUlJPUl9NRU1PUllfQUxMT0NfRkFJTEVEICAgICAgICAgICA9IDc7CisgICAgRVJST1JfSU5WQUxJRF9PUEVSQVRJT04gICAgICAgICAgICAgPSA4OworfQorCittZXNzYWdlIFZlaGljbGVBcmVhQ29uZmlnIHsKKyAgICByZXF1aXJlZCBpbnQzMiAgYXJlYV9pZCAgICAgICAgICAgICA9IDE7CisgICAgb3B0aW9uYWwgc2ludDMyIG1pbl9pbnQzMl92YWx1ZSAgICAgPSAyOworICAgIG9wdGlvbmFsIHNpbnQzMiBtYXhfaW50MzJfdmFsdWUgICAgID0gMzsKKyAgICBvcHRpb25hbCBzaW50NjQgbWluX2ludDY0X3ZhbHVlICAgICA9IDQ7CisgICAgb3B0aW9uYWwgc2ludDY0IG1heF9pbnQ2NF92YWx1ZSAgICAgPSA1OworICAgIG9wdGlvbmFsIGZsb2F0ICBtaW5fZmxvYXRfdmFsdWUgICAgID0gNjsKKyAgICBvcHRpb25hbCBmbG9hdCAgbWF4X2Zsb2F0X3ZhbHVlICAgICA9IDc7Cit9CisKK21lc3NhZ2UgVmVoaWNsZVByb3BDb25maWcgeworICAgIHJlcXVpcmVkIGludDMyICAgICAgICAgICAgIHByb3AgICAgICAgICAgICAgICAgPSAxOworICAgIG9wdGlvbmFsIGludDMyICAgICAgICAgICAgIGFjY2VzcyAgICAgICAgICAgICAgPSAyOworICAgIG9wdGlvbmFsIGludDMyICAgICAgICAgICAgIGNoYW5nZV9tb2RlICAgICAgICAgPSAzOworICAgIG9wdGlvbmFsIGludDMyICAgICAgICAgICAgIHZhbHVlX3R5cGUgICAgICAgICAgPSA0OworICAgIG9wdGlvbmFsIGludDMyICAgICAgICAgICAgIHN1cHBvcnRlZF9hcmVhcyAgICAgPSA1OworICAgIHJlcGVhdGVkIFZlaGljbGVBcmVhQ29uZmlnIGFyZWFfY29uZmlncyAgICAgICAgPSA2OworICAgIG9wdGlvbmFsIGludDMyICAgICAgICAgICAgIGNvbmZpZ19mbGFncyAgICAgICAgPSA3OworICAgIHJlcGVhdGVkIGludDMyICAgICAgICAgICAgIGNvbmZpZ19hcnJheSAgICAgICAgPSA4OworICAgIG9wdGlvbmFsIHN0cmluZyAgICAgICAgICAgIGNvbmZpZ19zdHJpbmcgICAgICAgPSA5OworICAgIG9wdGlvbmFsIGZsb2F0ICAgICAgICAgICAgIG1pbl9zYW1wbGVfcmF0ZSAgICAgPSAxMDsKKyAgICBvcHRpb25hbCBmbG9hdCAgICAgICAgICAgICBtYXhfc2FtcGxlX3JhdGUgICAgID0gMTE7Cit9OworCittZXNzYWdlIFZlaGljbGVQcm9wVmFsdWUgeworICAgIC8vIGNvbW1vbiBkYXRhCisgICAgcmVxdWlyZWQgaW50MzIgIHByb3AgICAgICAgICAgICAgICAgPSAxOworICAgIG9wdGlvbmFsIGludDMyICB2YWx1ZV90eXBlICAgICAgICAgID0gMjsKKyAgICBvcHRpb25hbCBpbnQ2NCAgdGltZXN0YW1wICAgICAgICAgICA9IDM7ICAgIC8vIHJlcXVpcmVkIGZvciB2YWxpZCBkYXRhIGZyb20gSEFMLCBza2lwcGVkIGZvciBzZXQKKworICAgIC8vIHZhbHVlcworICAgIG9wdGlvbmFsIGludDMyICBhcmVhX2lkICAgICAgICAgICAgID0gNDsKKyAgICByZXBlYXRlZCBzaW50MzIgaW50MzJfdmFsdWVzICAgICAgICA9IDU7ICAgIC8vIHRoaXMgYWxzbyBjb3ZlcnMgYm9vbGVhbiB2YWx1ZS4KKyAgICByZXBlYXRlZCBzaW50NjQgaW50NjRfdmFsdWVzICAgICAgICA9IDY7CisgICAgcmVwZWF0ZWQgZmxvYXQgIGZsb2F0X3ZhbHVlcyAgICAgICAgPSA3OworICAgIG9wdGlvbmFsIHN0cmluZyBzdHJpbmdfdmFsdWUgICAgICAgID0gODsKKyAgICBvcHRpb25hbCBieXRlcyAgYnl0ZXNfdmFsdWUgICAgICAgICA9IDk7Cit9OworCisvLyBUaGlzIHN0cnVjdHVyZSBpcyB1c2VkIHRvIG5vdGlmeSB3aGF0IHZhbHVlcyB0byBnZXQgZnJvbSB0aGUgVmVoaWNsZSBIQUwKK21lc3NhZ2UgVmVoaWNsZVByb3BHZXQgeworICAgIHJlcXVpcmVkIGludDMyIHByb3AgICAgICAgICAgICAgICAgID0gMTsKKyAgICBvcHRpb25hbCBpbnQzMiBhcmVhX2lkICAgICAgICAgICAgICA9IDI7Cit9OworCittZXNzYWdlIEVtdWxhdG9yTWVzc2FnZSB7CisgICAgcmVxdWlyZWQgTXNnVHlwZSAgICAgICAgICAgbXNnX3R5cGUgPSAxOworICAgIG9wdGlvbmFsIFN0YXR1cyAgICAgICAgICAgIHN0YXR1cyAgID0gMjsgICAgLy8gT25seSBmb3IgUkVTUCBtZXNzYWdlcworICAgIHJlcGVhdGVkIFZlaGljbGVQcm9wR2V0ICAgIHByb3AgICAgID0gMzsgICAgLy8gUHJvdmlkZWQgZm9yIGdldENvbmZpZywgZ2V0UHJvcGVydHkgY29tbWFuZHMKKyAgICByZXBlYXRlZCBWZWhpY2xlUHJvcENvbmZpZyBjb25maWcgICA9IDQ7CisgICAgcmVwZWF0ZWQgVmVoaWNsZVByb3BWYWx1ZSAgdmFsdWUgICAgPSA1OworfTsKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9SZWN1cnJlbnRUaW1lcl90ZXN0LmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9SZWN1cnJlbnRUaW1lcl90ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZmMxN2M2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1JlY3VycmVudFRpbWVyX3Rlc3QuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8dGhyZWFkPgorCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKworI2luY2x1ZGUgInZoYWxfdjJfMC9SZWN1cnJlbnRUaW1lci5oIgorCituYW1lc3BhY2UgeworCit1c2luZyBzdGQ6OmNocm9ubzo6bmFub3NlY29uZHM7Cit1c2luZyBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOworCisjZGVmaW5lIEFTU0VSVF9FUV9XSVRIX1RPTEVSQU5DRSh2YWwxLCB2YWwyLCB0b2xlcmFuY2UpIFwKK0FTU0VSVF9MRSh2YWwxIC0gdG9sZXJhbmNlLCB2YWwyKTsgXAorQVNTRVJUX0dFKHZhbDEgKyB0b2xlcmFuY2UsIHZhbDIpOyBcCisKKworVEVTVChSZWN1cnJlbnRUaW1lclRlc3QsIG9uZUludGVydmFsKSB7CisgICAgc3RkOjphdG9taWM8aW50NjRfdD4gY291bnRlciB7IDBMIH07CisgICAgYXV0byBjb3VudGVyUmVmID0gc3RkOjpyZWYoY291bnRlcik7CisgICAgUmVjdXJyZW50VGltZXIgdGltZXIoWyZjb3VudGVyUmVmXShjb25zdCBzdGQ6OnZlY3RvcjxpbnQzMl90PiYgY29va2llcykgeworICAgICAgICBBU1NFUlRfRVEoMXUsIGNvb2tpZXMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUX0VRKDB4ZGVhZCwgY29va2llcy5mcm9udCgpKTsKKyAgICAgICAgY291bnRlclJlZi5nZXQoKSsrOworICAgIH0pOworCisgICAgdGltZXIucmVnaXN0ZXJSZWN1cnJlbnRFdmVudChtaWxsaXNlY29uZHMoMSksIDB4ZGVhZCk7CisgICAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKG1pbGxpc2Vjb25kcygxMDApKTsKKyAgICBBU1NFUlRfRVFfV0lUSF9UT0xFUkFOQ0UoMTAwLCBjb3VudGVyLmxvYWQoKSwgMjApOworfQorCitURVNUKFJlY3VycmVudFRpbWVyVGVzdCwgbXVsdGlwbGVJbnRlcnZhbHMpIHsKKyAgICBzdGQ6OmF0b21pYzxpbnQ2NF90PiBjb3VudGVyMW1zIHsgMEwgfTsKKyAgICBzdGQ6OmF0b21pYzxpbnQ2NF90PiBjb3VudGVyNW1zIHsgMEwgfTsKKyAgICBhdXRvIGNvdW50ZXIxbXNSZWYgPSBzdGQ6OnJlZihjb3VudGVyMW1zKTsKKyAgICBhdXRvIGNvdW50ZXI1bXNSZWYgPSBzdGQ6OnJlZihjb3VudGVyNW1zKTsKKyAgICBSZWN1cnJlbnRUaW1lciB0aW1lcigKKyAgICAgICAgICAgIFsmY291bnRlcjFtc1JlZiwgJmNvdW50ZXI1bXNSZWZdKGNvbnN0IHN0ZDo6dmVjdG9yPGludDMyX3Q+JiBjb29raWVzKSB7CisgICAgICAgIGZvciAoaW50MzJfdCBjb29raWUgOiBjb29raWVzKSB7CisgICAgICAgICAgICBpZiAoY29va2llID09IDB4ZGVhZCkgeworICAgICAgICAgICAgICAgIGNvdW50ZXIxbXNSZWYuZ2V0KCkrKzsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY29va2llID09IDB4YmVlZikgeworICAgICAgICAgICAgICAgIGNvdW50ZXI1bXNSZWYuZ2V0KCkrKzsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgRkFJTCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSk7CisKKyAgICB0aW1lci5yZWdpc3RlclJlY3VycmVudEV2ZW50KG1pbGxpc2Vjb25kcygxKSwgMHhkZWFkKTsKKyAgICB0aW1lci5yZWdpc3RlclJlY3VycmVudEV2ZW50KG1pbGxpc2Vjb25kcyg1KSwgMHhiZWVmKTsKKworICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihtaWxsaXNlY29uZHMoMTAwKSk7CisgICAgQVNTRVJUX0VRX1dJVEhfVE9MRVJBTkNFKDEwMCwgY291bnRlcjFtcy5sb2FkKCksIDIwKTsKKyAgICBBU1NFUlRfRVFfV0lUSF9UT0xFUkFOQ0UoMjAsIGNvdW50ZXI1bXMubG9hZCgpLCA1KTsKK30KKworfSAgLy8gYW5vbnltb3VzIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1N1YnNjcmlwdGlvbk1hbmFnZXJfdGVzdC5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvU3Vic2NyaXB0aW9uTWFuYWdlcl90ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Njg4ZGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1N1YnNjcmlwdGlvbk1hbmFnZXJfdGVzdC5jcHAKQEAgLTAsMCArMSwyMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKworI2luY2x1ZGUgInZoYWxfdjJfMC9TdWJzY3JpcHRpb25NYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJWZWhpY2xlSGFsVGVzdFV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ6OnBsYWNlaG9sZGVyczsKKworY2xhc3MgU3Vic2NyaXB0aW9uTWFuYWdlclRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKK3B1YmxpYzoKKyAgICBTdWJzY3JpcHRpb25NYW5hZ2VyVGVzdCgpIDogbWFuYWdlcigoW3RoaXNdKGludCB4KSB7IG9uUHJvcGVydHlVbnN1YnNjcmliZWQoeCk7IH0pKSB7fQorCisgICAgU3Vic2NyaXB0aW9uTWFuYWdlciBtYW5hZ2VyOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50MzJfdCBQUk9QMSA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpOworICAgIHN0YXRpYyBjb25zdGV4cHIgaW50MzJfdCBQUk9QMiA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6RElTUExBWV9CUklHSFRORVNTKTsKKworICAgIHNwPElWZWhpY2xlQ2FsbGJhY2s+IGNiMSA9IG5ldyBNb2NrZWRWZWhpY2xlQ2FsbGJhY2soKTsKKyAgICBzcDxJVmVoaWNsZUNhbGxiYWNrPiBjYjIgPSBuZXcgTW9ja2VkVmVoaWNsZUNhbGxiYWNrKCk7CisgICAgc3A8SVZlaGljbGVDYWxsYmFjaz4gY2IzID0gbmV3IE1vY2tlZFZlaGljbGVDYWxsYmFjaygpOworCisgICAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgbGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5ID0gLTE7CisgICAgfQorCisgICAgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4gc3Vic2NyVG9Qcm9wMSA9IHsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB7CisgICAgICAgICAgICAucHJvcElkID0gUFJPUDEsCisgICAgICAgICAgICAudmVoaWNsZUFyZWFzID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgIC5mbGFncyA9IFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4gc3Vic2NyVG9Qcm9wMiA9IHsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB7CisgICAgICAgICAgICAucHJvcElkID0gUFJPUDIsCisgICAgICAgICAgICAuZmxhZ3MgPSBTdWJzY3JpYmVGbGFnczo6SEFMX0VWRU5UCisgICAgICAgIH0sCisgICAgfTsKKworICAgIGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+IHN1YnNjclRvUHJvcDFhbmQyID0geworICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHsKKyAgICAgICAgICAgIC5wcm9wSWQgPSBQUk9QMSwKKyAgICAgICAgICAgIC52ZWhpY2xlQXJlYXMgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgLmZsYWdzID0gU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVAorICAgICAgICB9LAorICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHsKKyAgICAgICAgICAgIC5wcm9wSWQgPSBQUk9QMiwKKyAgICAgICAgICAgIC5mbGFncyA9IFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQKKyAgICAgICAgfSwKKyAgICB9OworCisgICAgc3RhdGljIHN0ZDo6bGlzdDxzcDxJVmVoaWNsZUNhbGxiYWNrPj4gZXh0cmFjdENhbGxiYWNrcygKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6bGlzdDxzcDxIYWxDbGllbnQ+PiYgY2xpZW50cykgeworICAgICAgICBzdGQ6Omxpc3Q8c3A8SVZlaGljbGVDYWxsYmFjaz4+IGNhbGxiYWNrczsKKyAgICAgICAgZm9yIChhdXRvIGMgOiBjbGllbnRzKSB7CisgICAgICAgICAgICBjYWxsYmFja3MucHVzaF9iYWNrKGMtPmdldENhbGxiYWNrKCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBjYWxsYmFja3M7CisgICAgfQorCisgICAgc3RkOjpsaXN0PHNwPEhhbENsaWVudD4+IGNsaWVudHNUb1Byb3AxKCkgeworICAgICAgICByZXR1cm4gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cyhQUk9QMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OkRFRkFVTFQpOworICAgIH0KKworICAgIHN0ZDo6bGlzdDxzcDxIYWxDbGllbnQ+PiBjbGllbnRzVG9Qcm9wMigpIHsKKyAgICAgICAgcmV0dXJuIG1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoUFJPUDIsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpERUZBVUxUKTsKKyAgICB9CisKKyAgICB2b2lkIG9uUHJvcGVydHlVbnN1YnNjcmliZWQoaW50IHByb3BlcnR5SWQpIHsKKyAgICAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlcmUgYXJlIG5vIGNsaWVudHMgd2hvIHN1YnNjcmliZWQgdG8gcGFydGljdWxhciBwcm9wZXJ0eS4gVGhpcyBjYW4gaGFwcGVuCisgICAgICAgIC8vIGJlY2F1c2Ugb2YgZXhwbGljdCB1bnN1YnNjcmliZSBjYWxsIG9yIHdoZW4gY2xpZW50IChJVmVoaWNsZUNhbGxiYWNrKSB3YXMgZGlzY29ubmVjdGVkLgorICAgICAgICBsYXN0VW5zdWJzY3JpYmVkUHJvcGVydHkgPSBwcm9wZXJ0eUlkOworICAgIH0KKworICAgIHZvaWQgYXNzZXJ0T25Qcm9wZXJ0eVVuc3Vic2NyaWJlZE5vdENhbGxlZCgpIHsKKyAgICAgICAgQVNTRVJUX0VRKC0xLCBsYXN0VW5zdWJzY3JpYmVkUHJvcGVydHkpOworICAgIH0KKworICAgIHZvaWQgYXNzZXJ0TGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5KGludCBleHBlY3RlZFByb3BlcnR5SWQpIHsKKyAgICAgICAgQVNTRVJUX0VRKGV4cGVjdGVkUHJvcGVydHlJZCwgbGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5KTsKKyAgICAgICAgbGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5ID0gLTE7CisgICAgfQorCitwcml2YXRlOgorICAgIGludCBsYXN0VW5zdWJzY3JpYmVkUHJvcGVydHk7Cit9OworCisKK1RFU1RfRihTdWJzY3JpcHRpb25NYW5hZ2VyVGVzdCwgbXVsdGlwbGVDbGllbnRzKSB7CisgICAgc3RkOjpsaXN0PFN1YnNjcmliZU9wdGlvbnM+IHVwZGF0ZWRPcHRpb25zOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywKKyAgICAgICAgICAgICAgbWFuYWdlci5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbigxLCBjYjEsIHN1YnNjclRvUHJvcDEsICZ1cGRhdGVkT3B0aW9ucykpOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywKKyAgICAgICAgICAgICAgbWFuYWdlci5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbigyLCBjYjIsIHN1YnNjclRvUHJvcDEsICZ1cGRhdGVkT3B0aW9ucykpOworCisgICAgYXV0byBjbGllbnRzID0gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cygKKyAgICAgICAgICAgIFBST1AxLAorICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpIQUxfRVZFTlQpOworCisgICAgQVNTRVJUX0FMTF9FWElTVFMoe2NiMSwgY2IyfSwgZXh0cmFjdENhbGxiYWNrcyhjbGllbnRzKSk7Cit9CisKK1RFU1RfRihTdWJzY3JpcHRpb25NYW5hZ2VyVGVzdCwgbmVnYXRpdmVDYXNlcykgeworICAgIHN0ZDo6bGlzdDxTdWJzY3JpYmVPcHRpb25zPiB1cGRhdGVkT3B0aW9uczsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssCisgICAgICAgICAgICAgIG1hbmFnZXIuYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oMSwgY2IxLCBzdWJzY3JUb1Byb3AxLCAmdXBkYXRlZE9wdGlvbnMpKTsKKworICAgIC8vIFdyb25nIHpvbmUKKyAgICBhdXRvIGNsaWVudHMgPSBtYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKAorICAgICAgICAgICAgUFJPUDEsCisgICAgICAgICAgICB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18yX0xFRlQpLAorICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVCk7CisgICAgQVNTRVJUX1RSVUUoY2xpZW50cy5lbXB0eSgpKTsKKworICAgIC8vIFdyb25nIHByb3AKKyAgICBjbGllbnRzID0gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cygKKyAgICAgICAgICAgIHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6QVBfUE9XRVJfQk9PVFVQX1JFQVNPTiksCisgICAgICAgICAgICB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVCk7CisgICAgQVNTRVJUX1RSVUUoY2xpZW50cy5lbXB0eSgpKTsKKworICAgIC8vIFdyb25nIGZsYWcKKyAgICBjbGllbnRzID0gbWFuYWdlci5nZXRTdWJzY3JpYmVkQ2xpZW50cygKKyAgICAgICAgICAgIFBST1AxLAorICAgICAgICAgICAgdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKSwKKyAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpTRVRfQ0FMTCk7CisgICAgQVNTRVJUX1RSVUUoY2xpZW50cy5lbXB0eSgpKTsKK30KKworVEVTVF9GKFN1YnNjcmlwdGlvbk1hbmFnZXJUZXN0LCBtdWxpcGxlU3Vic2NyaXB0aW9ucykgeworICAgIHN0ZDo6bGlzdDxTdWJzY3JpYmVPcHRpb25zPiB1cGRhdGVkT3B0aW9uczsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIG1hbmFnZXIuYWRkT3JVcGRhdGVTdWJzY3JpcHRpb24oMSwgY2IxLCBzdWJzY3JUb1Byb3AxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdXBkYXRlZE9wdGlvbnMpKTsKKworICAgIGF1dG8gY2xpZW50cyA9IG1hbmFnZXIuZ2V0U3Vic2NyaWJlZENsaWVudHMoCisgICAgICAgICAgICBQUk9QMSwKKyAgICAgICAgICAgIHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICBTdWJzY3JpYmVGbGFnczo6REVGQVVMVCk7CisgICAgQVNTRVJUX0VRKChzaXplX3QpIDEsIGNsaWVudHMuc2l6ZSgpKTsKKyAgICBBU1NFUlRfRVEoY2IxLCBjbGllbnRzLmZyb250KCktPmdldENhbGxiYWNrKCkpOworCisgICAgLy8gU2FtZSBwcm9wZXJ0eSwgYnV0IGRpZmZlcmVudCB6b25lLCB0byBtYWtlIHN1cmUgd2UgZGlkbid0IHVuc3Vic2NyaWJlCisgICAgLy8gZnJvbSBwcmV2aW91cyB6b25lLgorICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgbWFuYWdlci5hZGRPclVwZGF0ZVN1YnNjcmlwdGlvbigxLCBjYjEsIHsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB7CisgICAgICAgICAgICAgICAgLnByb3BJZCA9IFBST1AxLAorICAgICAgICAgICAgICAgIC52ZWhpY2xlQXJlYXMgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18yKSwKKyAgICAgICAgICAgICAgICAuZmxhZ3MgPSBTdWJzY3JpYmVGbGFnczo6REVGQVVMVAorICAgICAgICAgICAgfQorICAgICAgICB9LCAmdXBkYXRlZE9wdGlvbnMpKTsKKworICAgIGNsaWVudHMgPSBtYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKFBST1AxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3Vic2NyaWJlRmxhZ3M6OkRFRkFVTFQpOworICAgIEFTU0VSVF9BTExfRVhJU1RTKHtjYjF9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHMpKTsKKworICAgIGNsaWVudHMgPSBtYW5hZ2VyLmdldFN1YnNjcmliZWRDbGllbnRzKFBST1AxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YnNjcmliZUZsYWdzOjpERUZBVUxUKTsKKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7Y2IxfSwgZXh0cmFjdENhbGxiYWNrcyhjbGllbnRzKSk7Cit9CisKK1RFU1RfRihTdWJzY3JpcHRpb25NYW5hZ2VyVGVzdCwgdW5zdWJzY3JpYmUpIHsKKyAgICBzdGQ6Omxpc3Q8U3Vic2NyaWJlT3B0aW9ucz4gdXBkYXRlZE9wdGlvbnM7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLAorICAgICAgICAgICAgICBtYW5hZ2VyLmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKDEsIGNiMSwgc3Vic2NyVG9Qcm9wMSwgJnVwZGF0ZWRPcHRpb25zKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLAorICAgICAgICAgICAgICBtYW5hZ2VyLmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKDIsIGNiMiwgc3Vic2NyVG9Qcm9wMiwgJnVwZGF0ZWRPcHRpb25zKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLAorICAgICAgICAgICAgICBtYW5hZ2VyLmFkZE9yVXBkYXRlU3Vic2NyaXB0aW9uKDMsIGNiMywgc3Vic2NyVG9Qcm9wMWFuZDIsICZ1cGRhdGVkT3B0aW9ucykpOworCisgICAgQVNTRVJUX0FMTF9FWElTVFMoeyBjYjEsIGNiMyB9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHNUb1Byb3AxKCkpKTsKKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7Y2IyLCBjYjN9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHNUb1Byb3AyKCkpKTsKKworICAgIG1hbmFnZXIudW5zdWJzY3JpYmUoMSwgUFJPUDEpOworICAgIGFzc2VydE9uUHJvcGVydHlVbnN1YnNjcmliZWROb3RDYWxsZWQoKTsKKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7Y2IzfSwgZXh0cmFjdENhbGxiYWNrcyhjbGllbnRzVG9Qcm9wMSgpKSk7CisKKyAgICAvLyBNYWtlIHN1cmUgbm90aGluZyBjaGFuZ2VkIGluIFBST1AyIHNvIGZhci4KKyAgICBBU1NFUlRfQUxMX0VYSVNUUyh7Y2IyLCBjYjN9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHNUb1Byb3AyKCkpKTsKKworICAgIC8vIE5vIG9uZSBzdWJzY3JpYmVkIHRvIFBST1AxLCBzdWJzY3JpcHRpb24gZm9yIFBST1AyIGlzIG5vdCBhZmZlY3RlZC4KKyAgICBtYW5hZ2VyLnVuc3Vic2NyaWJlKDMsIFBST1AxKTsKKyAgICBhc3NlcnRMYXN0VW5zdWJzY3JpYmVkUHJvcGVydHkoUFJPUDEpOworICAgIEFTU0VSVF9BTExfRVhJU1RTKHtjYjIsIGNiM30sIGV4dHJhY3RDYWxsYmFja3MoY2xpZW50c1RvUHJvcDIoKSkpOworCisgICAgbWFuYWdlci51bnN1YnNjcmliZSgzLCBQUk9QMik7CisgICAgYXNzZXJ0T25Qcm9wZXJ0eVVuc3Vic2NyaWJlZE5vdENhbGxlZCgpOworICAgIEFTU0VSVF9BTExfRVhJU1RTKHtjYjJ9LCBleHRyYWN0Q2FsbGJhY2tzKGNsaWVudHNUb1Byb3AyKCkpKTsKKworICAgIC8vIFRoZSBsYXN0IGNsaWVudCB1bnN1YnNjcmliZWQgZnJvbSB0aGlzIHByb3BlcnR5LgorICAgIG1hbmFnZXIudW5zdWJzY3JpYmUoMiwgUFJPUDIpOworICAgIGFzc2VydExhc3RVbnN1YnNjcmliZWRQcm9wZXJ0eShQUk9QMik7CisKKyAgICAvLyBObyBvbmUgc3Vic2NyaWJlZCBhbnltb3JlCisgICAgbWFuYWdlci51bnN1YnNjcmliZSgxLCBQUk9QMSk7CisgICAgYXNzZXJ0TGFzdFVuc3Vic2NyaWJlZFByb3BlcnR5KFBST1AxKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGFub255bW91cworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZUhhbE1hbmFnZXJfdGVzdC5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZUhhbE1hbmFnZXJfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg2NGQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlSGFsTWFuYWdlcl90ZXN0LmNwcApAQCAtMCwwICsxLDQ3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPGlvc3RyZWFtPgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL21hY3Jvcy5oPgorI2luY2x1ZGUgPHV0aWxzL1N5c3RlbUNsb2NrLmg+CisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCisjaW5jbHVkZSAidmhhbF92Ml8wL1ZlaGljbGVIYWxNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJWZWhpY2xlSGFsVGVzdFV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ6OnBsYWNlaG9sZGVyczsKKworY29uc3RleHByIGNoYXIga0Nhck1ha2VbXSA9ICJEZWZhdWx0IENhciI7Citjb25zdGV4cHIgaW50IGtSZXRyaWFibGVQcm9wTW9ja2VkQXR0ZW1wdHMgPSAzOworCitjbGFzcyBNb2NrZWRWZWhpY2xlSGFsIDogcHVibGljIFZlaGljbGVIYWwgeworcHVibGljOgorICAgIE1vY2tlZFZlaGljbGVIYWwoKSB7CisgICAgICAgIG1Db25maWdzLmFzc2lnbihzdGQ6OmJlZ2luKGtWZWhpY2xlUHJvcGVydGllcyksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmVuZChrVmVoaWNsZVByb3BlcnRpZXMpKTsKKyAgICB9CisKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gbGlzdFByb3BlcnRpZXMoKSBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBtQ29uZmlnczsKKyAgICB9CisKKyAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIGdldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgICAgICAgU3RhdHVzQ29kZSogb3V0U3RhdHVzKSBvdmVycmlkZSB7CisgICAgICAgICpvdXRTdGF0dXMgPSBTdGF0dXNDb2RlOjpPSzsKKyAgICAgICAgVmVoaWNsZVByb3BWYWx1ZVB0ciBwVmFsdWU7CisgICAgICAgIGF1dG8gcHJvcGVydHkgPSBzdGF0aWNfY2FzdDxWZWhpY2xlUHJvcGVydHk+KHJlcXVlc3RlZFByb3BWYWx1ZS5wcm9wKTsKKyAgICAgICAgaW50MzJfdCBhcmVhSWQgPSByZXF1ZXN0ZWRQcm9wVmFsdWUuYXJlYUlkOworCisgICAgICAgIHN3aXRjaCAocHJvcGVydHkpIHsKKyAgICAgICAgICAgIGNhc2UgVmVoaWNsZVByb3BlcnR5OjpJTkZPX01BS0U6CisgICAgICAgICAgICAgICAgcFZhbHVlID0gZ2V0VmFsdWVQb29sKCktPm9idGFpblN0cmluZyhrQ2FyTWFrZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFZlaGljbGVQcm9wZXJ0eTo6SU5GT19GVUVMX0NBUEFDSVRZOgorICAgICAgICAgICAgICAgIGlmIChmdWVsQ2FwYWNpdHlBdHRlbXB0c0xlZnQtLSA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gRW11bGF0ZSBwcm9wZXJ0eSBub3QgcmVhZHkgeWV0LgorICAgICAgICAgICAgICAgICAgICAqb3V0U3RhdHVzID0gU3RhdHVzQ29kZTo6VFJZX0FHQUlOOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHBWYWx1ZSA9IGdldFZhbHVlUG9vbCgpLT5vYnRhaW5GbG9hdCg0Mi40Mik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBpZiAocmVxdWVzdGVkUHJvcFZhbHVlLnByb3AgPT0ga0N1c3RvbUNvbXBsZXhQcm9wZXJ0eSkgeworICAgICAgICAgICAgICAgICAgICBwVmFsdWUgPSBnZXRWYWx1ZVBvb2woKS0+b2J0YWluQ29tcGxleCgpOworICAgICAgICAgICAgICAgICAgICBwVmFsdWUtPnZhbHVlLmludDMyVmFsdWVzID0gaGlkbF92ZWM8aW50MzJfdD4geyAxMCwgMjAgfTsKKyAgICAgICAgICAgICAgICAgICAgcFZhbHVlLT52YWx1ZS5pbnQ2NFZhbHVlcyA9IGhpZGxfdmVjPGludDY0X3Q+IHsgMzAsIDQwIH07CisgICAgICAgICAgICAgICAgICAgIHBWYWx1ZS0+dmFsdWUuZmxvYXRWYWx1ZXMgPSBoaWRsX3ZlYzxmbG9hdF90PiB7IDEuMSwgMi4yIH07CisgICAgICAgICAgICAgICAgICAgIHBWYWx1ZS0+dmFsdWUuYnl0ZXMgPSBoaWRsX3ZlYzx1aW50OF90PiB7IDEsIDIsIDMgfTsKKyAgICAgICAgICAgICAgICAgICAgcFZhbHVlLT52YWx1ZS5zdHJpbmdWYWx1ZSA9IGtDYXJNYWtlOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXV0byBrZXkgPSBtYWtlS2V5KHRvSW50KHByb3BlcnR5KSwgYXJlYUlkKTsKKyAgICAgICAgICAgICAgICBpZiAobVZhbHVlcy5jb3VudChrZXkpID09IDApIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR1coIiIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBwVmFsdWUgPSBnZXRWYWx1ZVBvb2woKS0+b2J0YWluKG1WYWx1ZXNba2V5XSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoKm91dFN0YXR1cyA9PSBTdGF0dXNDb2RlOjpPSyAmJiBwVmFsdWUuZ2V0KCkgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgcFZhbHVlLT5wcm9wID0gdG9JbnQocHJvcGVydHkpOworICAgICAgICAgICAgcFZhbHVlLT5hcmVhSWQgPSBhcmVhSWQ7CisgICAgICAgICAgICBwVmFsdWUtPnRpbWVzdGFtcCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBwVmFsdWU7CisgICAgfQorCisgICAgU3RhdHVzQ29kZSBzZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKSBvdmVycmlkZSB7CisgICAgICAgIGlmICh0b0ludChWZWhpY2xlUHJvcGVydHk6Ok1JUlJPUl9GT0xEKSA9PSBwcm9wVmFsdWUucHJvcAorICAgICAgICAgICAgICAgICYmIG1pcnJvckZvbGRBdHRlbXB0c0xlZnQtLSA+IDApIHsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpUUllfQUdBSU47CisgICAgICAgIH0KKworICAgICAgICBtVmFsdWVzW21ha2VLZXkocHJvcFZhbHVlKV0gPSBwcm9wVmFsdWU7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKKyAgICB9CisKKyAgICBTdGF0dXNDb2RlIHN1YnNjcmliZShpbnQzMl90IC8qIHByb3BlcnR5ICovLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgLyogYXJlYXMgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgLyogc2FtcGxlUmF0ZSAqLykgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gU3RhdHVzQ29kZTo6T0s7CisgICAgfQorCisgICAgU3RhdHVzQ29kZSB1bnN1YnNjcmliZShpbnQzMl90IC8qIHByb3BlcnR5ICovKSBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBTdGF0dXNDb2RlOjpPSzsKKyAgICB9CisKKyAgICB2b2lkIHNlbmRQcm9wRXZlbnQocmVjeWNsYWJsZV9wdHI8VmVoaWNsZVByb3BWYWx1ZT4gdmFsdWUpIHsKKyAgICAgICAgZG9IYWxFdmVudChzdGQ6Om1vdmUodmFsdWUpKTsKKyAgICB9CisKKyAgICB2b2lkIHNlbmRIYWxFcnJvcihTdGF0dXNDb2RlIGVycm9yLCBpbnQzMl90IHByb3BlcnR5LCBpbnQzMl90IGFyZWFJZCkgeworICAgICAgICBkb0hhbFByb3BlcnR5U2V0RXJyb3IoZXJyb3IsIHByb3BlcnR5LCBhcmVhSWQpOworICAgIH0KKworcHVibGljOgorICAgIGludCBmdWVsQ2FwYWNpdHlBdHRlbXB0c0xlZnQgPSBrUmV0cmlhYmxlUHJvcE1vY2tlZEF0dGVtcHRzOworICAgIGludCBtaXJyb3JGb2xkQXR0ZW1wdHNMZWZ0ID0ga1JldHJpYWJsZVByb3BNb2NrZWRBdHRlbXB0czsKKworcHJpdmF0ZToKKyAgICBpbnQ2NF90IG1ha2VLZXkoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgdikgY29uc3QgeworICAgICAgICByZXR1cm4gbWFrZUtleSh2LnByb3AsIHYuYXJlYUlkKTsKKyAgICB9CisKKyAgICBpbnQ2NF90IG1ha2VLZXkoaW50MzJfdCBwcm9wLCBpbnQzMl90IGFyZWEpIGNvbnN0IHsKKyAgICAgICAgcmV0dXJuIChzdGF0aWNfY2FzdDxpbnQ2NF90Pihwcm9wKSA8PCAzMikgfCBhcmVhOworICAgIH0KKworcHJpdmF0ZToKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gbUNvbmZpZ3M7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPGludDY0X3QsIFZlaGljbGVQcm9wVmFsdWU+IG1WYWx1ZXM7Cit9OworCitjbGFzcyBWZWhpY2xlSGFsTWFuYWdlclRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKK3Byb3RlY3RlZDoKKyAgICB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBoYWwucmVzZXQobmV3IE1vY2tlZFZlaGljbGVIYWwpOworICAgICAgICBtYW5hZ2VyLnJlc2V0KG5ldyBWZWhpY2xlSGFsTWFuYWdlcihoYWwuZ2V0KCkpKTsKKworICAgICAgICBvYmplY3RQb29sID0gaGFsLT5nZXRWYWx1ZVBvb2woKTsKKyAgICB9CisKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBtYW5hZ2VyLnJlc2V0KG51bGxwdHIpOworICAgICAgICBoYWwucmVzZXQobnVsbHB0cik7CisgICAgfQorcHVibGljOgorICAgIHZvaWQgaW52b2tlR2V0KGludDMyX3QgcHJvcGVydHksIGludDMyX3QgYXJlYUlkKSB7CisgICAgICAgIFZlaGljbGVQcm9wVmFsdWUgcmVxdWVzdGVkVmFsdWUge307CisgICAgICAgIHJlcXVlc3RlZFZhbHVlLnByb3AgPSBwcm9wZXJ0eTsKKyAgICAgICAgcmVxdWVzdGVkVmFsdWUuYXJlYUlkID0gYXJlYUlkOworCisgICAgICAgIGludm9rZUdldChyZXF1ZXN0ZWRWYWx1ZSk7CisgICAgfQorCisgICAgdm9pZCBpbnZva2VHZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlKSB7CisgICAgICAgIGFjdHVhbFZhbHVlID0gVmVoaWNsZVByb3BWYWx1ZSB7fTsgIC8vIHJlc2V0IHByZXZpb3VzIHZhbHVlcworCisgICAgICAgIFN0YXR1c0NvZGUgcmVmU3RhdHVzOworICAgICAgICBWZWhpY2xlUHJvcFZhbHVlIHJlZlZhbHVlOworICAgICAgICBib29sIGNhbGxlZCA9IGZhbHNlOworICAgICAgICBtYW5hZ2VyLT5nZXQocmVxdWVzdGVkUHJvcFZhbHVlLCBbJnJlZlN0YXR1cywgJnJlZlZhbHVlLCAmY2FsbGVkXQorICAgICAgICAgICAgKFN0YXR1c0NvZGUgc3RhdHVzLCBjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZSkgeworICAgICAgICAgICAgcmVmU3RhdHVzID0gc3RhdHVzOworICAgICAgICAgICAgcmVmVmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgICAgIGNhbGxlZCA9IHRydWU7CisgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfVFJVRShjYWxsZWQpIDw8ICJjYWxsYmFjayB3YXNuJ3QgY2FsbGVkIGZvciBwcm9wOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgaGV4U3RyaW5nKHJlcXVlc3RlZFByb3BWYWx1ZS5wcm9wKTsKKworICAgICAgICBhY3R1YWxWYWx1ZSA9IHJlZlZhbHVlOworICAgICAgICBhY3R1YWxTdGF0dXNDb2RlID0gcmVmU3RhdHVzOworICAgIH0KKworcHVibGljOgorICAgIFZlaGljbGVQcm9wVmFsdWUgYWN0dWFsVmFsdWU7CisgICAgU3RhdHVzQ29kZSBhY3R1YWxTdGF0dXNDb2RlOworCisgICAgVmVoaWNsZVByb3BWYWx1ZVBvb2wqIG9iamVjdFBvb2w7CisgICAgc3RkOjp1bmlxdWVfcHRyPE1vY2tlZFZlaGljbGVIYWw+IGhhbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVoaWNsZUhhbE1hbmFnZXI+IG1hbmFnZXI7Cit9OworCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBnZXRQcm9wQ29uZmlncykgeworICAgIGhpZGxfdmVjPGludDMyX3Q+IHByb3BlcnRpZXMgPQorICAgICAgICB7IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpLAorICAgICAgICAgIHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19NQUtFKSB9OworICAgIGJvb2wgY2FsbGVkID0gZmFsc2U7CisKKyAgICBtYW5hZ2VyLT5nZXRQcm9wQ29uZmlncyhwcm9wZXJ0aWVzLAorICAgICAgICAgICAgWyZjYWxsZWRdIChTdGF0dXNDb2RlIHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8VmVoaWNsZVByb3BDb25maWc+JiBjKSB7CisgICAgICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgc3RhdHVzKTsKKyAgICAgICAgQVNTRVJUX0VRKDJ1LCBjLnNpemUoKSk7CisgICAgICAgIGNhbGxlZCA9IHRydWU7CisgICAgfSk7CisKKyAgICBBU1NFUlRfVFJVRShjYWxsZWQpOyAgLy8gVmVyaWZ5IGNhbGxiYWNrIHJlY2VpdmVkLgorCisgICAgY2FsbGVkID0gZmFsc2U7CisgICAgbWFuYWdlci0+Z2V0UHJvcENvbmZpZ3MoeyB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKSB9LAorICAgICAgICAgICAgWyZjYWxsZWRdIChTdGF0dXNDb2RlIHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8VmVoaWNsZVByb3BDb25maWc+JiBjKSB7CisgICAgICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgc3RhdHVzKTsKKyAgICAgICAgQVNTRVJUX0VRKDF1LCBjLnNpemUoKSk7CisgICAgICAgIEFTU0VSVF9FUSh0b1N0cmluZyhrVmVoaWNsZVByb3BlcnRpZXNbMV0pLCB0b1N0cmluZyhjWzBdKSk7CisgICAgICAgIGNhbGxlZCA9IHRydWU7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUoY2FsbGVkKTsgIC8vIFZlcmlmeSBjYWxsYmFjayByZWNlaXZlZC4KKworICAgIC8vIFRPRE8ocGF2ZWxtKTogYWRkIGNhc2UgY2FzZSB3aGVuIHByb3BlcnR5IHdhcyBub3QgZGVjbGFyZWQuCit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIGdldEFsbFByb3BDb25maWdzKSB7CisgICAgYm9vbCBjYWxsZWQgPSBmYWxzZTsKKyAgICBtYW5hZ2VyLT5nZXRBbGxQcm9wQ29uZmlncygKKyAgICAgICAgICAgIFsmY2FsbGVkXSAoY29uc3QgaGlkbF92ZWM8VmVoaWNsZVByb3BDb25maWc+JiBwcm9wQ29uZmlncykgeworICAgICAgICBBU1NFUlRfRVEoYXJyYXlzaXplKGtWZWhpY2xlUHJvcGVydGllcyksIHByb3BDb25maWdzLnNpemUoKSk7CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm9wQ29uZmlncy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgQVNTRVJUX0VRKHRvU3RyaW5nKGtWZWhpY2xlUHJvcGVydGllc1tpXSksCisgICAgICAgICAgICAgICAgICAgICAgdG9TdHJpbmcocHJvcENvbmZpZ3NbaV0pKTsKKyAgICAgICAgfQorICAgICAgICBjYWxsZWQgPSB0cnVlOworICAgIH0pOworICAgIEFTU0VSVF9UUlVFKGNhbGxlZCk7ICAvLyBWZXJpZnkgY2FsbGJhY2sgcmVjZWl2ZWQuCit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIGhhbEVycm9yRXZlbnQpIHsKKyAgICBjb25zdCBhdXRvIFBST1AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkRJU1BMQVlfQlJJR0hUTkVTUyk7CisKKyAgICBzcDxNb2NrZWRWZWhpY2xlQ2FsbGJhY2s+IGNiID0gbmV3IE1vY2tlZFZlaGljbGVDYWxsYmFjaygpOworCisgICAgaGlkbF92ZWM8U3Vic2NyaWJlT3B0aW9ucz4gb3B0aW9ucyA9IHsKKyAgICAgICAgU3Vic2NyaWJlT3B0aW9ucyB7CisgICAgICAgICAgICAucHJvcElkID0gUFJPUCwKKyAgICAgICAgICAgIC5mbGFncyA9IFN1YnNjcmliZUZsYWdzOjpERUZBVUxUCisgICAgICAgIH0sCisgICAgfTsKKworICAgIFN0YXR1c0NvZGUgcmVzID0gbWFuYWdlci0+c3Vic2NyaWJlKGNiLCBvcHRpb25zKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIHJlcyk7CisKKyAgICBoYWwtPnNlbmRIYWxFcnJvcihTdGF0dXNDb2RlOjpUUllfQUdBSU4sIFBST1AsIDAgLyogYXJlYSBpZCovKTsKK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgc3Vic2NyaWJlKSB7CisgICAgY29uc3QgYXV0byBQUk9QID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpESVNQTEFZX0JSSUdIVE5FU1MpOworCisgICAgc3A8TW9ja2VkVmVoaWNsZUNhbGxiYWNrPiBjYiA9IG5ldyBNb2NrZWRWZWhpY2xlQ2FsbGJhY2soKTsKKworICAgIGhpZGxfdmVjPFN1YnNjcmliZU9wdGlvbnM+IG9wdGlvbnMgPSB7CisgICAgICAgIFN1YnNjcmliZU9wdGlvbnMgeworICAgICAgICAgICAgLnByb3BJZCA9IFBST1AsCisgICAgICAgICAgICAuZmxhZ3MgPSBTdWJzY3JpYmVGbGFnczo6REVGQVVMVAorICAgICAgICB9CisgICAgfTsKKworICAgIFN0YXR1c0NvZGUgcmVzID0gbWFuYWdlci0+c3Vic2NyaWJlKGNiLCBvcHRpb25zKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIHJlcyk7CisKKyAgICBhdXRvIHVuc3Vic2NyaWJlZFZhbHVlID0gb2JqZWN0UG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyKTsKKyAgICB1bnN1YnNjcmliZWRWYWx1ZS0+cHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpOworCisgICAgaGFsLT5zZW5kUHJvcEV2ZW50KHN0ZDo6bW92ZSh1bnN1YnNjcmliZWRWYWx1ZSkpOworICAgIGF1dG8mIHJlY2VpdmVkRW52ZW50cyA9IGNiLT5nZXRSZWNlaXZlZEV2ZW50cygpOworCisgICAgQVNTRVJUX1RSVUUoY2ItPndhaXRGb3JFeHBlY3RlZEV2ZW50cygwKSkgPDwgIiBVbmV4cGVjdGVkIGV2ZW50cyByZWNlaXZlZDogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IHJlY2VpdmVkRW52ZW50cy5zaXplKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAocmVjZWl2ZWRFbnZlbnRzLnNpemUoKSA+IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0b1N0cmluZyhyZWNlaXZlZEVudmVudHMuZnJvbnQoKVswXSkgOiAiIik7CisKKyAgICBhdXRvIHN1YnNjcmliZWRWYWx1ZSA9IG9iamVjdFBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMik7CisgICAgc3Vic2NyaWJlZFZhbHVlLT5wcm9wID0gUFJPUDsKKyAgICBzdWJzY3JpYmVkVmFsdWUtPnZhbHVlLmludDMyVmFsdWVzWzBdID0gNDI7CisKKyAgICBjYi0+cmVzZXQoKTsKKyAgICBWZWhpY2xlUHJvcFZhbHVlIGFjdHVhbFZhbHVlKCpzdWJzY3JpYmVkVmFsdWUuZ2V0KCkpOworICAgIGhhbC0+c2VuZFByb3BFdmVudChzdGQ6Om1vdmUoc3Vic2NyaWJlZFZhbHVlKSk7CisKKyAgICBBU1NFUlRfVFJVRShjYi0+d2FpdEZvckV4cGVjdGVkRXZlbnRzKDEpKSA8PCAiRXZlbnRzIHJlY2VpdmVkOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgcmVjZWl2ZWRFbnZlbnRzLnNpemUoKTsKKworICAgIEFTU0VSVF9FUSh0b1N0cmluZyhhY3R1YWxWYWx1ZSksCisgICAgICAgICAgICAgIHRvU3RyaW5nKGNiLT5nZXRSZWNlaXZlZEV2ZW50cygpLmZyb250KClbMF0pKTsKK30KKworVEVTVF9GKFZlaGljbGVIYWxNYW5hZ2VyVGVzdCwgc3Vic2NyaWJlX1dyaXRlT25seSkgeworICAgIGNvbnN0IGF1dG8gUFJPUCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19TRUFUX1RFTVBFUkFUVVJFKTsKKworICAgIHNwPE1vY2tlZFZlaGljbGVDYWxsYmFjaz4gY2IgPSBuZXcgTW9ja2VkVmVoaWNsZUNhbGxiYWNrKCk7CisKKyAgICBoaWRsX3ZlYzxTdWJzY3JpYmVPcHRpb25zPiBvcHRpb25zID0geworICAgICAgICBTdWJzY3JpYmVPcHRpb25zIHsKKyAgICAgICAgICAgIC5wcm9wSWQgPSBQUk9QLAorICAgICAgICAgICAgLmZsYWdzID0gU3Vic2NyaWJlRmxhZ3M6OkhBTF9FVkVOVAorICAgICAgICB9LAorICAgIH07CisKKyAgICBTdGF0dXNDb2RlIHJlcyA9IG1hbmFnZXItPnN1YnNjcmliZShjYiwgb3B0aW9ucyk7CisgICAgLy8gVW5hYmxlIHRvIHN1YnNjcmliZSBvbiBIYWwgRXZlbnRzIGZvciB3cml0ZS1vbmx5IHByb3BlcnRpZXMuCisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6OklOVkFMSURfQVJHLCByZXMpOworCisKKyAgICBvcHRpb25zWzBdLmZsYWdzID0gU3Vic2NyaWJlRmxhZ3M6OlNFVF9DQUxMOworCisgICAgcmVzID0gbWFuYWdlci0+c3Vic2NyaWJlKGNiLCBvcHRpb25zKTsKKyAgICAvLyBPSyB0byBzdWJzY3JpYmUgb24gU0VUIG1ldGhvZCBjYWxsIGZvciB3cml0ZS1vbmx5IHByb3BlcnRpZXMuCisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCByZXMpOworfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBnZXRfQ29tcGxleCkgeworICAgIGludm9rZUdldChrQ3VzdG9tQ29tcGxleFByb3BlcnR5LCAwKTsKKworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisgICAgQVNTRVJUX0VRKGtDdXN0b21Db21wbGV4UHJvcGVydHksIGFjdHVhbFZhbHVlLnByb3ApOworCisgICAgQVNTRVJUX0VRKDN1LCBhY3R1YWxWYWx1ZS52YWx1ZS5ieXRlcy5zaXplKCkpOworICAgIEFTU0VSVF9FUSgxLCBhY3R1YWxWYWx1ZS52YWx1ZS5ieXRlc1swXSk7CisgICAgQVNTRVJUX0VRKDIsIGFjdHVhbFZhbHVlLnZhbHVlLmJ5dGVzWzFdKTsKKyAgICBBU1NFUlRfRVEoMywgYWN0dWFsVmFsdWUudmFsdWUuYnl0ZXNbMl0pOworCisgICAgQVNTRVJUX0VRKDJ1LCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQzMlZhbHVlcy5zaXplKCkpOworICAgIEFTU0VSVF9FUSgxMCwgYWN0dWFsVmFsdWUudmFsdWUuaW50MzJWYWx1ZXNbMF0pOworICAgIEFTU0VSVF9FUSgyMCwgYWN0dWFsVmFsdWUudmFsdWUuaW50MzJWYWx1ZXNbMV0pOworCisgICAgQVNTRVJUX0VRKDJ1LCBhY3R1YWxWYWx1ZS52YWx1ZS5mbG9hdFZhbHVlcy5zaXplKCkpOworICAgIEFTU0VSVF9GTE9BVF9FUSgxLjEsIGFjdHVhbFZhbHVlLnZhbHVlLmZsb2F0VmFsdWVzWzBdKTsKKyAgICBBU1NFUlRfRkxPQVRfRVEoMi4yLCBhY3R1YWxWYWx1ZS52YWx1ZS5mbG9hdFZhbHVlc1sxXSk7CisKKyAgICBBU1NFUlRfRVEoMnUsIGFjdHVhbFZhbHVlLnZhbHVlLmludDY0VmFsdWVzLnNpemUoKSk7CisgICAgQVNTRVJUX0ZMT0FUX0VRKDMwLCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQ2NFZhbHVlc1swXSk7CisgICAgQVNTRVJUX0ZMT0FUX0VRKDQwLCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQ2NFZhbHVlc1sxXSk7CisKKyAgICBBU1NFUlRfU1RSRVEoa0Nhck1ha2UsIGFjdHVhbFZhbHVlLnZhbHVlLnN0cmluZ1ZhbHVlLmNfc3RyKCkpOworfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBnZXRfU3RhdGljU3RyaW5nKSB7CisgICAgaW52b2tlR2V0KHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19NQUtFKSwgMCk7CisKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgIEFTU0VSVF9FUSh0b0ludChWZWhpY2xlUHJvcGVydHk6OklORk9fTUFLRSksIGFjdHVhbFZhbHVlLnByb3ApOworICAgIEFTU0VSVF9TVFJFUShrQ2FyTWFrZSwgYWN0dWFsVmFsdWUudmFsdWUuc3RyaW5nVmFsdWUuY19zdHIoKSk7Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIGdldF9OZWdhdGl2ZUNhc2VzKSB7CisgICAgLy8gV3JpdGUtb25seSBwcm9wZXJ0eSBtdXN0IGZhaWwuCisgICAgaW52b2tlR2V0KHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19TRUFUX1RFTVBFUkFUVVJFKSwgMCk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6OkFDQ0VTU19ERU5JRUQsIGFjdHVhbFN0YXR1c0NvZGUpOworCisgICAgLy8gVW5rbm93biBwcm9wZXJ0eSBtdXN0IGZhaWwuCisgICAgaW52b2tlR2V0KHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6TUlSUk9SX1pfTU9WRSksIDApOworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpJTlZBTElEX0FSRywgYWN0dWFsU3RhdHVzQ29kZSk7Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIGdldF9SZXRyaWFibGUpIHsKKyAgICBhY3R1YWxTdGF0dXNDb2RlID0gU3RhdHVzQ29kZTo6VFJZX0FHQUlOOworICAgIGludCBhdHRlbXB0cyA9IDA7CisgICAgd2hpbGUgKFN0YXR1c0NvZGU6OlRSWV9BR0FJTiA9PSBhY3R1YWxTdGF0dXNDb2RlICYmICsrYXR0ZW1wdHMgPCAxMCkgeworICAgICAgICBpbnZva2VHZXQodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX0ZVRUxfQ0FQQUNJVFkpLCAwKTsKKworICAgIH0KKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgIEFTU0VSVF9FUShrUmV0cmlhYmxlUHJvcE1vY2tlZEF0dGVtcHRzICsgMSwgYXR0ZW1wdHMpOworICAgIEFTU0VSVF9GTE9BVF9FUSg0Mi40MiwgYWN0dWFsVmFsdWUudmFsdWUuZmxvYXRWYWx1ZXNbMF0pOworfQorCitURVNUX0YoVmVoaWNsZUhhbE1hbmFnZXJUZXN0LCBzZXRfQmFzaWMpIHsKKyAgICBjb25zdCBhdXRvIFBST1AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkRJU1BMQVlfQlJJR0hUTkVTUyk7CisgICAgY29uc3QgYXV0byBWQUwgPSA3OworCisgICAgYXV0byBleHBlY3RlZFZhbHVlID0gaGFsLT5nZXRWYWx1ZVBvb2woKS0+b2J0YWluSW50MzIoVkFMKTsKKyAgICBleHBlY3RlZFZhbHVlLT5wcm9wID0gUFJPUDsKKyAgICBleHBlY3RlZFZhbHVlLT5hcmVhSWQgPSAwOworCisgICAgYWN0dWFsU3RhdHVzQ29kZSA9IG1hbmFnZXItPnNldCgqZXhwZWN0ZWRWYWx1ZS5nZXQoKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKworICAgIGludm9rZUdldChQUk9QLCAwKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgIEFTU0VSVF9FUShQUk9QLCBhY3R1YWxWYWx1ZS5wcm9wKTsKKyAgICBBU1NFUlRfRVEoVkFMLCBhY3R1YWxWYWx1ZS52YWx1ZS5pbnQzMlZhbHVlc1swXSk7Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIHNldF9EaWZmZXJlbnRBcmVhcykgeworICAgIGNvbnN0IGF1dG8gUFJPUCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpOworICAgIGNvbnN0IGF1dG8gVkFMMSA9IDE7CisgICAgY29uc3QgYXV0byBWQUwyID0gMjsKKyAgICBjb25zdCBhdXRvIEFSRUExID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9MRUZUKTsKKyAgICBjb25zdCBhdXRvIEFSRUEyID0gdG9JbnQoVmVoaWNsZUFyZWFab25lOjpST1dfMV9SSUdIVCk7CisKKyAgICB7CisgICAgICAgIGF1dG8gZXhwZWN0ZWRWYWx1ZTEgPSBoYWwtPmdldFZhbHVlUG9vbCgpLT5vYnRhaW5JbnQzMihWQUwxKTsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZTEtPnByb3AgPSBQUk9QOworICAgICAgICBleHBlY3RlZFZhbHVlMS0+YXJlYUlkID0gQVJFQTE7CisgICAgICAgIGFjdHVhbFN0YXR1c0NvZGUgPSBtYW5hZ2VyLT5zZXQoKmV4cGVjdGVkVmFsdWUxLmdldCgpKTsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKworICAgICAgICBhdXRvIGV4cGVjdGVkVmFsdWUyID0gaGFsLT5nZXRWYWx1ZVBvb2woKS0+b2J0YWluSW50MzIoVkFMMik7CisgICAgICAgIGV4cGVjdGVkVmFsdWUyLT5wcm9wID0gUFJPUDsKKyAgICAgICAgZXhwZWN0ZWRWYWx1ZTItPmFyZWFJZCA9IEFSRUEyOworICAgICAgICBhY3R1YWxTdGF0dXNDb2RlID0gbWFuYWdlci0+c2V0KCpleHBlY3RlZFZhbHVlMi5nZXQoKSk7CisgICAgICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisgICAgfQorCisgICAgeworICAgICAgICBpbnZva2VHZXQoUFJPUCwgQVJFQTEpOworICAgICAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgICAgICBBU1NFUlRfRVEoUFJPUCwgYWN0dWFsVmFsdWUucHJvcCk7CisgICAgICAgIEFTU0VSVF9FUShBUkVBMSwgYWN0dWFsVmFsdWUuYXJlYUlkKTsKKyAgICAgICAgQVNTRVJUX0VRKFZBTDEsIGFjdHVhbFZhbHVlLnZhbHVlLmludDMyVmFsdWVzWzBdKTsKKworICAgICAgICBpbnZva2VHZXQoUFJPUCwgQVJFQTIpOworICAgICAgICBBU1NFUlRfRVEoU3RhdHVzQ29kZTo6T0ssIGFjdHVhbFN0YXR1c0NvZGUpOworICAgICAgICBBU1NFUlRfRVEoUFJPUCwgYWN0dWFsVmFsdWUucHJvcCk7CisgICAgICAgIEFTU0VSVF9FUShBUkVBMiwgYWN0dWFsVmFsdWUuYXJlYUlkKTsKKyAgICAgICAgQVNTRVJUX0VRKFZBTDIsIGFjdHVhbFZhbHVlLnZhbHVlLmludDMyVmFsdWVzWzBdKTsKKyAgICB9Cit9CisKK1RFU1RfRihWZWhpY2xlSGFsTWFuYWdlclRlc3QsIHNldF9SZXRyaWFibGUpIHsKKyAgICBjb25zdCBhdXRvIFBST1AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6Ok1JUlJPUl9GT0xEKTsKKworICAgIGF1dG8gdiA9IGhhbC0+Z2V0VmFsdWVQb29sKCktPm9idGFpbkJvb2xlYW4odHJ1ZSk7CisgICAgdi0+cHJvcCA9IFBST1A7CisgICAgdi0+YXJlYUlkID0gMDsKKworICAgIGFjdHVhbFN0YXR1c0NvZGUgPSBTdGF0dXNDb2RlOjpUUllfQUdBSU47CisgICAgaW50IGF0dGVtcHRzID0gMDsKKyAgICB3aGlsZSAoU3RhdHVzQ29kZTo6VFJZX0FHQUlOID09IGFjdHVhbFN0YXR1c0NvZGUgJiYgKythdHRlbXB0cyA8IDEwKSB7CisgICAgICAgIGFjdHVhbFN0YXR1c0NvZGUgPSBtYW5hZ2VyLT5zZXQoKnYuZ2V0KCkpOworICAgIH0KKworICAgIEFTU0VSVF9FUShTdGF0dXNDb2RlOjpPSywgYWN0dWFsU3RhdHVzQ29kZSk7CisgICAgQVNTRVJUX0VRKGtSZXRyaWFibGVQcm9wTW9ja2VkQXR0ZW1wdHMgKyAxLCBhdHRlbXB0cyk7CisKKyAgICBpbnZva2VHZXQoUFJPUCwgMCk7CisgICAgQVNTRVJUX0VRKFN0YXR1c0NvZGU6Ok9LLCBhY3R1YWxTdGF0dXNDb2RlKTsKKyAgICBBU1NFUlRfVFJVRShhY3R1YWxWYWx1ZS52YWx1ZS5pbnQzMlZhbHVlc1swXSk7Cit9CisKK1RFU1QoSGFsQ2xpZW50VmVjdG9yVGVzdCwgYmFzaWMpIHsKKyAgICBIYWxDbGllbnRWZWN0b3IgY2xpZW50czsKKyAgICBzcDxJVmVoaWNsZUNhbGxiYWNrPiBjYWxsYmFjazEgPSBuZXcgTW9ja2VkVmVoaWNsZUNhbGxiYWNrKCk7CisKKyAgICBzcDxIYWxDbGllbnQ+IGMxID0gbmV3IEhhbENsaWVudChjYWxsYmFjazEpOworICAgIHNwPEhhbENsaWVudD4gYzIgPSBuZXcgSGFsQ2xpZW50KGNhbGxiYWNrMSk7CisKKyAgICBjbGllbnRzLmFkZE9yVXBkYXRlKGMxKTsKKyAgICBjbGllbnRzLmFkZE9yVXBkYXRlKGMxKTsKKyAgICBjbGllbnRzLmFkZE9yVXBkYXRlKGMyKTsKKyAgICBBU1NFUlRfRVEoMnUsIGNsaWVudHMuc2l6ZSgpKTsKKyAgICBBU1NFUlRfRkFMU0UoY2xpZW50cy5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9MRSgwLCBjbGllbnRzLmluZGV4T2YoYzEpKTsKKyAgICBBU1NFUlRfTEUoMCwgY2xpZW50cy5yZW1vdmUoYzEpKTsKKyAgICBBU1NFUlRfR1QoMCwgY2xpZW50cy5pbmRleE9mKGMxKSk7ICAvLyBjMSB3YXMgYWxyZWFkeSByZW1vdmVkCisgICAgQVNTRVJUX0dUKDAsIGNsaWVudHMucmVtb3ZlKGMxKSk7ICAgLy8gYXR0ZW1wdCB0byByZW1vdmUgYzEgYWdhaW4KKyAgICBBU1NFUlRfTEUoMCwgY2xpZW50cy5yZW1vdmUoYzIpKTsKKworICAgIEFTU0VSVF9UUlVFKGNsaWVudHMuaXNFbXB0eSgpKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGFub255bW91cworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZUhhbFRlc3RVdGlscy5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVIYWxUZXN0VXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGUxYTVhCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVIYWxUZXN0VXRpbHMuaApAQCAtMCwwICsxLDI4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9WZWhpY2xlRGVidWdVdGlsc19IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX1ZlaGljbGVEZWJ1Z1V0aWxzX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxpb3M+CisjaW5jbHVkZSA8c3N0cmVhbT4KKworI2luY2x1ZGUgInZoYWxfdjJfMC9WZWhpY2xlVXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBhdXRvbW90aXZlIHsKK25hbWVzcGFjZSB2ZWhpY2xlIHsKK25hbWVzcGFjZSBWMl8wIHsKKworY29uc3RleHByIGludDMyX3Qga0N1c3RvbUNvbXBsZXhQcm9wZXJ0eSA9IDB4YmVlZgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOjpWRU5ET1IKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOjpDT01QTEVYCisgICAgICAgIHwgVmVoaWNsZUFyZWE6OkdMT0JBTDsKKworY29uc3QgVmVoaWNsZVByb3BDb25maWcga1ZlaGljbGVQcm9wZXJ0aWVzW10gPSB7CisgICAgeworICAgICAgICAucHJvcCA9IHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5GT19NQUtFKSwKKyAgICAgICAgLmFjY2VzcyA9IFZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpTVEFUSUMsCisgICAgICAgIC5jb25maWdTdHJpbmcgPSAiU29tZT1jb25maWcsb3B0aW9ucz1pZix5b3U9aGF2ZV9hbnkiLAorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpIVkFDX0ZBTl9TUEVFRCksCisgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAuc3VwcG9ydGVkQXJlYXMgPSBzdGF0aWNfY2FzdDxpbnQzMl90PigKKyAgICAgICAgICAgIFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCB8IFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfUklHSFQpLAorICAgICAgICAuYXJlYUNvbmZpZ3MgPSB7CisgICAgICAgICAgICBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgICAgICAgICAgICAgLmFyZWFJZCA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfTEVGVCksCisgICAgICAgICAgICAgICAgLm1pbkludDMyVmFsdWUgPSAxLAorICAgICAgICAgICAgICAgIC5tYXhJbnQzMlZhbHVlID0gN30sCisgICAgICAgICAgICBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgICAgICAgICAgICAgLmFyZWFJZCA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfUklHSFQpLAorICAgICAgICAgICAgICAgIC5taW5JbnQzMlZhbHVlID0gMSwKKyAgICAgICAgICAgICAgICAubWF4SW50MzJWYWx1ZSA9IDUsCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLy8gV3JpdGUtb25seSBwcm9wZXJ0eQorICAgIHsKKyAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfU0VBVF9URU1QRVJBVFVSRSksCisgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OldSSVRFLAorICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX1NFVCwKKyAgICAgICAgLnN1cHBvcnRlZEFyZWFzID0gc3RhdGljX2Nhc3Q8aW50MzJfdD4oCisgICAgICAgICAgICBWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQgfCBWZWhpY2xlQXJlYVpvbmU6OlJPV18xX1JJR0hUKSwKKyAgICAgICAgLmFyZWFDb25maWdzID0geworICAgICAgICAgICAgVmVoaWNsZUFyZWFDb25maWcgeworICAgICAgICAgICAgICAgIC5hcmVhSWQgPSB0b0ludChWZWhpY2xlQXJlYVpvbmU6OlJPV18xX0xFRlQpLAorICAgICAgICAgICAgICAgIC5taW5JbnQzMlZhbHVlID0gNjQsCisgICAgICAgICAgICAgICAgLm1heEludDMyVmFsdWUgPSA4MH0sCisgICAgICAgICAgICBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgICAgICAgICAgICAgLmFyZWFJZCA9IHRvSW50KFZlaGljbGVBcmVhWm9uZTo6Uk9XXzFfUklHSFQpLAorICAgICAgICAgICAgICAgIC5taW5JbnQzMlZhbHVlID0gNjQsCisgICAgICAgICAgICAgICAgLm1heEludDMyVmFsdWUgPSA4MCwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX0ZVRUxfQ0FQQUNJVFkpLAorICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRSwKKyAgICAgICAgLmFyZWFDb25maWdzID0geworICAgICAgICAgICAgVmVoaWNsZUFyZWFDb25maWcgeworICAgICAgICAgICAgICAgIC5taW5GbG9hdFZhbHVlID0gMCwKKyAgICAgICAgICAgICAgICAubWF4RmxvYXRWYWx1ZSA9IDEuMAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSwKKworICAgIHsKKyAgICAgICAgLnByb3AgPSB0b0ludChWZWhpY2xlUHJvcGVydHk6OkRJU1BMQVlfQlJJR0hUTkVTUyksCisgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAuYXJlYUNvbmZpZ3MgPSB7CisgICAgICAgICAgICBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgICAgICAgICAgICAgLm1pbkludDMyVmFsdWUgPSAwLAorICAgICAgICAgICAgICAgIC5tYXhJbnQzMlZhbHVlID0gMTAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gdG9JbnQoVmVoaWNsZVByb3BlcnR5OjpNSVJST1JfRk9MRCksCisgICAgICAgIC5hY2Nlc3MgPSBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorCisgICAgfSwKKworICAgIC8vIENvbXBsZXggZGF0YSB0eXBlLgorICAgIHsKKyAgICAgICAgLnByb3AgPSBrQ3VzdG9tQ29tcGxleFByb3BlcnR5LAorICAgICAgICAuYWNjZXNzID0gVmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFEX1dSSVRFLAorICAgICAgICAuY2hhbmdlTW9kZSA9IFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Ok9OX0NIQU5HRQorICAgIH0KK307CisKK2NvbnN0ZXhwciBhdXRvIGtUaW1lb3V0ID0gc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1MDApOworCitjbGFzcyBNb2NrZWRWZWhpY2xlQ2FsbGJhY2sgOiBwdWJsaWMgSVZlaGljbGVDYWxsYmFjayB7Citwcml2YXRlOgorICAgIHVzaW5nIE11eEd1YXJkID0gc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+OworICAgIHVzaW5nIEhpZGxWZWNPZlZhbHVlcyA9IGhpZGxfdmVjPFZlaGljbGVQcm9wVmFsdWU+OworcHVibGljOgorICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdXRvbW90aXZlOjp2ZWhpY2xlOjpWMl8wOjpJVmVoaWNsZUNhbGxiYWNrIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gb25Qcm9wZXJ0eUV2ZW50KAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8VmVoaWNsZVByb3BWYWx1ZT4mIHZhbHVlcykgb3ZlcnJpZGUgeworICAgICAgICB7CisgICAgICAgICAgICBNdXhHdWFyZCAgZyhtTG9jayk7CisgICAgICAgICAgICBtUmVjZWl2ZWRFdmVudHMucHVzaF9iYWNrKHZhbHVlcyk7CisgICAgICAgIH0KKyAgICAgICAgbUV2ZW50Q29uZC5ub3RpZnlfb25lKCk7CisgICAgICAgIHJldHVybiBSZXR1cm48dm9pZD4oKTsKKyAgICB9CisgICAgUmV0dXJuPHZvaWQ+IG9uUHJvcGVydHlTZXQoY29uc3QgVmVoaWNsZVByb3BWYWx1ZSYgLyogdmFsdWUgKi8pIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICAgIH0KKyAgICBSZXR1cm48dm9pZD4gb25Qcm9wZXJ0eVNldEVycm9yKFN0YXR1c0NvZGUgLyogZXJyb3JDb2RlICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCAvKiBwcm9wSWQgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IC8qIGFyZWFJZCAqLykgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgICAgfQorCisgICAgYm9vbCB3YWl0Rm9yRXhwZWN0ZWRFdmVudHMoc2l6ZV90IGV4cGVjdGVkRXZlbnRzKSB7CisgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gZyhtTG9jayk7CisKKyAgICAgICAgaWYgKGV4cGVjdGVkRXZlbnRzID09IDAgJiYgbVJlY2VpdmVkRXZlbnRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgICAgICAvLyBObyBldmVudHMgZXhwZWN0ZWQsIGxldCdzIHNsZWVwIGEgbGl0dGxlIGJpdCB0byBtYWtlIHN1cmUKKyAgICAgICAgICAgIC8vIG5vdGhpbmcgd2lsbCBzaG93IHVwLgorICAgICAgICAgICAgcmV0dXJuIG1FdmVudENvbmQud2FpdF9mb3IoZywga1RpbWVvdXQpID09IHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0OworICAgICAgICB9CisKKyAgICAgICAgd2hpbGUgKGV4cGVjdGVkRXZlbnRzICE9IG1SZWNlaXZlZEV2ZW50cy5zaXplKCkpIHsKKyAgICAgICAgICAgIGlmIChtRXZlbnRDb25kLndhaXRfZm9yKGcsIGtUaW1lb3V0KSA9PSBzdGQ6OmN2X3N0YXR1czo6dGltZW91dCkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0KCkgeworICAgICAgICBtUmVjZWl2ZWRFdmVudHMuY2xlYXIoKTsKKyAgICB9CisKKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxIaWRsVmVjT2ZWYWx1ZXM+JiBnZXRSZWNlaXZlZEV2ZW50cygpIHsKKyAgICAgICAgcmV0dXJuIG1SZWNlaXZlZEV2ZW50czsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RkOjptdXRleCBtTG9jazsKKyAgICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBtRXZlbnRDb25kOworICAgIHN0ZDo6dmVjdG9yPEhpZGxWZWNPZlZhbHVlcz4gbVJlY2VpdmVkRXZlbnRzOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBzdGQ6OnN0cmluZyBoZXhTdHJpbmcoVCB2YWx1ZSkgeworICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOworICAgIHNzIDw8IHN0ZDo6c2hvd2Jhc2UgPDwgc3RkOjpoZXggPDwgdmFsdWU7CisgICAgcmV0dXJuIHNzLnN0cigpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQ29sbGVjdGlvbj4KK2lubGluZSB2b2lkIGFzc2VydEFsbEV4aXN0c0FueU9yZGVyKAorICAgICAgICBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VD4gZXhwZWN0ZWQsCisgICAgICAgIGNvbnN0IENvbGxlY3Rpb24mIGFjdHVhbCwKKyAgICAgICAgY29uc3QgY2hhciogbXNnKSB7CisgICAgc3RkOjpzZXQ8VD4gZXhwZWN0ZWRTZXQgPSBleHBlY3RlZDsKKworICAgIGZvciAoYXV0byBhOiBhY3R1YWwpIHsKKyAgICAgICAgQVNTRVJUX0VRKDF1LCBleHBlY3RlZFNldC5lcmFzZShhKSkKKyAgICAgICAgICAgICAgICA8PCBtc2cgPDwgIlxuQ29udGFpbnMgbm90IHVuZXhwZWN0ZWQgdmFsdWUuXG4iOworICAgIH0KKworICAgIEFTU0VSVF9FUSgwdSwgZXhwZWN0ZWRTZXQuc2l6ZSgpKQorICAgICAgICAgICAgPDwgbXNnCisgICAgICAgICAgICA8PCAiXG5Eb2Vzbid0IGNvbnRhaW4gZXhwZWN0ZWQgdmFsdWUuIjsKK30KKworI2RlZmluZSBBU1NFUlRfQUxMX0VYSVNUUyguLi4pIFwKKyAgICBhc3NlcnRBbGxFeGlzdHNBbnlPcmRlcihfX1ZBX0FSR1NfXywgKHN0ZDo6c3RyaW5nKCJDYWxsZWQgZnJvbTogIikgKyBcCisgICAgICAgICAgICBzdGQ6OnN0cmluZyhfX0ZJTEVfXykgKyBzdGQ6OnN0cmluZygiOiIpICsgXAorICAgICAgICAgICAgc3RkOjp0b19zdHJpbmcoX19MSU5FX18pKS5jX3N0cigpKTsgXAorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIHN0ZDo6c3RyaW5nIGVudW1Ub0hleFN0cmluZyhUIHZhbHVlKSB7CisgICAgcmV0dXJuIGhleFN0cmluZyh0b0ludCh2YWx1ZSkpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBzdGQ6OnN0cmluZyB2ZWNUb1N0cmluZyhjb25zdCBoaWRsX3ZlYzxUPiYgdmVjKSB7CisgICAgc3RkOjpzdHJpbmdzdHJlYW0gc3MoIlsiKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZlYy5zaXplKCk7IGkrKykgeworICAgICAgICBpZiAoaSAhPSAwKSBzcyA8PCAiLCI7CisgICAgICAgIHNzIDw8IHZlY1tpXTsKKyAgICB9CisgICAgc3MgPDwgIl0iOworICAgIHJldHVybiBzcy5zdHIoKTsKK30KKworaW5saW5lIHN0ZDo6c3RyaW5nIHRvU3RyaW5nKGNvbnN0IFZlaGljbGVQcm9wVmFsdWUgJnYpIHsKKyAgICBzdGQ6OnN0cmluZ3N0cmVhbSBzczsKKyAgICBzcyA8PCAiVmVoaWNsZVByb3BWYWx1ZSB7biIKKyAgICAgICA8PCAiICBwcm9wOiAiIDw8IGhleFN0cmluZyh2LnByb3ApIDw8ICIsXG4iCisgICAgICAgPDwgIiAgYXJlYUlkOiAiIDw8IGhleFN0cmluZyh2LmFyZWFJZCkgPDwgIixcbiIKKyAgICAgICA8PCAiICB0aW1lc3RhbXA6ICIgPDwgdi50aW1lc3RhbXAgPDwgIixcbiIKKyAgICAgICA8PCAiICB2YWx1ZSB7XG4iCisgICAgICAgPDwgIiAgICBpbnQzMlZhbHVlczogIiA8PCB2ZWNUb1N0cmluZyh2LnZhbHVlLmludDMyVmFsdWVzKSA8PCAiLFxuIgorICAgICAgIDw8ICIgICAgZmxvYXRWYWx1ZXM6ICIgPDwgdmVjVG9TdHJpbmcodi52YWx1ZS5mbG9hdFZhbHVlcykgPDwgIixcbiIKKyAgICAgICA8PCAiICAgIGludDY0VmFsdWVzOiAiIDw8IHZlY1RvU3RyaW5nKHYudmFsdWUuaW50NjRWYWx1ZXMpIDw8ICIsXG4iCisgICAgICAgPDwgIiAgICBieXRlczogIiA8PCB2ZWNUb1N0cmluZyh2LnZhbHVlLmJ5dGVzKSA8PCAiLFxuIgorICAgICAgIDw8ICIgICAgc3RyaW5nOiAiIDw8IHYudmFsdWUuc3RyaW5nVmFsdWUuY19zdHIoKSA8PCAiLFxuIgorICAgICAgIDw8ICIgIH1cbiIKKyAgICAgICA8PCAifVxuIjsKKworICAgIHJldHVybiBzcy5zdHIoKTsKK30KKworaW5saW5lIHN0ZDo6c3RyaW5nIHRvU3RyaW5nKGNvbnN0IFZlaGljbGVQcm9wQ29uZmlnICZjb25maWcpIHsKKyAgICBzdGQ6OnN0cmluZ3N0cmVhbSBzczsKKyAgICBzcyA8PCAiVmVoaWNsZVByb3BDb25maWcge1xuIgorICAgICAgIDw8ICIgIHByb3A6ICIgPDwgaGV4U3RyaW5nKGNvbmZpZy5wcm9wKSA8PCAiLFxuIgorICAgICAgIDw8ICIgIHN1cHBvcnRlZEFyZWFzOiAiIDw8IGhleFN0cmluZyhjb25maWcuc3VwcG9ydGVkQXJlYXMpIDw8ICIsXG4iCisgICAgICAgPDwgIiAgYWNjZXNzOiAiIDw8IGVudW1Ub0hleFN0cmluZyhjb25maWcuYWNjZXNzKSA8PCAiLFxuIgorICAgICAgIDw8ICIgIGNoYW5nZU1vZGU6ICIgPDwgZW51bVRvSGV4U3RyaW5nKGNvbmZpZy5jaGFuZ2VNb2RlKSA8PCAiLFxuIgorICAgICAgIDw8ICIgIGNvbmZpZ0ZsYWdzOiAiIDw8IGhleFN0cmluZyhjb25maWcuY29uZmlnRmxhZ3MpIDw8ICIsXG4iCisgICAgICAgPDwgIiAgbWluU2FtcGxlUmF0ZTogIiA8PCBjb25maWcubWluU2FtcGxlUmF0ZSA8PCAiLFxuIgorICAgICAgIDw8ICIgIG1heFNhbXBsZVJhdGU6ICIgPDwgY29uZmlnLm1heFNhbXBsZVJhdGUgPDwgIixcbiIKKyAgICAgICA8PCAiICBjb25maWdTdHJpbmc6ICIgPDwgY29uZmlnLmNvbmZpZ1N0cmluZy5jX3N0cigpIDw8ICIsXG4iOworCisgICAgc3MgPDwgIiAgYXJlYUNvbmZpZ3Mge1xuIjsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbmZpZy5hcmVhQ29uZmlncy5zaXplKCk7IGkrKykgeworICAgICAgICBjb25zdCBhdXRvICZhcmVhID0gY29uZmlnLmFyZWFDb25maWdzW2ldOworICAgICAgICBzcyA8PCAiICAgIGFyZWFJZDogIiA8PCBoZXhTdHJpbmcoYXJlYS5hcmVhSWQpIDw8ICIsXG4iCisgICAgICAgICAgIDw8ICIgICAgbWluRmxvYXRWYWx1ZTogIiA8PCBhcmVhLm1pbkZsb2F0VmFsdWUgPDwgIixcbiIKKyAgICAgICAgICAgPDwgIiAgICBtaW5GbG9hdFZhbHVlOiAiIDw8IGFyZWEubWF4RmxvYXRWYWx1ZSA8PCAiLFxuIgorICAgICAgICAgICA8PCAiICAgIG1pbkludDMyVmFsdWU6ICIgPDwgYXJlYS5taW5JbnQzMlZhbHVlIDw8ICIsXG4iCisgICAgICAgICAgIDw8ICIgICAgbWluSW50MzJWYWx1ZTogIiA8PCBhcmVhLm1heEludDMyVmFsdWUgPDwgIixcbiIKKyAgICAgICAgICAgPDwgIiAgICBtaW5JbnQ2NFZhbHVlOiAiIDw8IGFyZWEubWluSW50NjRWYWx1ZSA8PCAiLFxuIgorICAgICAgICAgICA8PCAiICAgIG1pbkludDY0VmFsdWU6ICIgPDwgYXJlYS5tYXhJbnQ2NFZhbHVlIDw8ICIsXG4iOworICAgIH0KKyAgICBzcyA8PCAiICB9XG4iCisgICAgICAgPDwgIn1cbiI7CisKKyAgICByZXR1cm4gc3Muc3RyKCk7Cit9CisKKworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAvL2FuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzBfVmVoaWNsZURlYnVnVXRpbHNfSF8KZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlT2JqZWN0UG9vbF90ZXN0LmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlT2JqZWN0UG9vbF90ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjkxMzUxCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC9kZWZhdWx0L3Rlc3RzL1ZlaGljbGVPYmplY3RQb29sX3Rlc3QuY3BwCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPHRocmVhZD4KKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNsdWRlIDx1dGlscy9TeXN0ZW1DbG9jay5oPgorCisjaW5jbHVkZSAidmhhbF92Ml8wL1ZlaGljbGVPYmplY3RQb29sLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMCB7CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIFZlaGljbGVPYmplY3RQb29sVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworcHJvdGVjdGVkOgorICAgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIHN0YXRzID0gUG9vbFN0YXRzOjppbnN0YW5jZSgpOworICAgICAgICByZXNldFN0YXRzKCk7CisgICAgICAgIHZhbHVlUG9vbC5yZXNldChuZXcgVmVoaWNsZVByb3BWYWx1ZVBvb2wpOworICAgIH0KKworICAgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIC8vIEF0IHRoZSBlbmQsIGFsbCBjcmVhdGVkIG9iamVjdHMgc2hvdWxkIGJlIGVpdGhlciByZWN5Y2xlZCBvciBkZWxldGVkLgorICAgICAgICAvLyBTb21lIG9iamVjdHMgY291bGQgYmUgcmVjeWNsZWQgbXVsdGlwbGUgdGltZXMsIHRoYXQncyB3aHkgaXQncyA8PQorICAgICAgICBBU1NFUlRfRVEoc3RhdHMtPk9idGFpbmVkLCBzdGF0cy0+UmVjeWNsZWQpOworICAgICAgICBBU1NFUlRfTEUoc3RhdHMtPkNyZWF0ZWQsIHN0YXRzLT5SZWN5Y2xlZCk7CisgICAgfQorcHJpdmF0ZToKKyAgICB2b2lkIHJlc2V0U3RhdHMoKSB7CisgICAgICAgIHN0YXRzLT5PYnRhaW5lZCA9IDA7CisgICAgICAgIHN0YXRzLT5DcmVhdGVkID0gMDsKKyAgICAgICAgc3RhdHMtPlJlY3ljbGVkID0gMDsKKyAgICB9CisKK3B1YmxpYzoKKyAgICBQb29sU3RhdHMqIHN0YXRzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWhpY2xlUHJvcFZhbHVlUG9vbD4gdmFsdWVQb29sOworfTsKKworVEVTVF9GKFZlaGljbGVPYmplY3RQb29sVGVzdCwgdmFsdWVQb29sQmFzaWNDb3JyZWN0bmVzcykgeworICAgIHZvaWQqIHJhdyA9IHZhbHVlUG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyKS5nZXQoKTsKKyAgICAvLyBBdCB0aGlzIHBvaW50LCB2MSBzaG91bGQgYmUgcmVjeWNsZWQgYW5kIHRoZSBvbmx5IG9iamVjdCBpbiB0aGUgcG9vbC4KKyAgICBBU1NFUlRfRVEocmF3LCB2YWx1ZVBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpJTlQzMikuZ2V0KCkpOworICAgIC8vIE9idGFpbmluZyB2YWx1ZSBvZiBhbm90aGVyIHR5cGUgLSBzaG91bGQgcmV0dXJuIGEgbmV3IG9iamVjdAorICAgIEFTU0VSVF9ORShyYXcsIHZhbHVlUG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OkZMT0FUKS5nZXQoKSk7CisKKyAgICBBU1NFUlRfRVEoM3UsIHN0YXRzLT5PYnRhaW5lZCk7CisgICAgQVNTRVJUX0VRKDJ1LCBzdGF0cy0+Q3JlYXRlZCk7Cit9CisKK1RFU1RfRihWZWhpY2xlT2JqZWN0UG9vbFRlc3QsIHZhbHVlUG9vbFN0cmluZ3MpIHsKKyAgICB2YWx1ZVBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpTVFJJTkcpOworICAgIGF1dG8gdnMgPSB2YWx1ZVBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpTVFJJTkcpOworICAgIHZzLT52YWx1ZS5zdHJpbmdWYWx1ZSA9ICJIZWxsbyI7CisgICAgdm9pZCogcmF3ID0gdnMuZ2V0KCk7CisgICAgdnMucmVzZXQoKTsgIC8vIGRlbGV0ZSB0aGUgcG9pbnRlcgorCisgICAgYXV0byB2czIgPSB2YWx1ZVBvb2wtPm9idGFpbihWZWhpY2xlUHJvcGVydHlUeXBlOjpTVFJJTkcpOworICAgIEFTU0VSVF9FUSgwdSwgdnMyLT52YWx1ZS5zdHJpbmdWYWx1ZS5zaXplKCkpOworICAgIEFTU0VSVF9ORShyYXcsIHZhbHVlUG9vbC0+b2J0YWluKFZlaGljbGVQcm9wZXJ0eVR5cGU6OlNUUklORykuZ2V0KCkpOworCisgICAgQVNTRVJUX0VRKDB1LCBzdGF0cy0+T2J0YWluZWQpOworfQorCitURVNUX0YoVmVoaWNsZU9iamVjdFBvb2xUZXN0LCB2YWx1ZVBvb2xNdWx0aXRocmVhZGVkQmVuY2htYXJrKSB7CisgICAgLy8gSW4gdGhpcyB0ZXN0IHdlIGhhdmUgVCB0aHJlYWRzIHRoYXQgY29uY3VycmVudGx5IGluIEMgY3ljbGVzCisgICAgLy8gb2J0YWluIGFuZCByZWxlYXNlIE8gVmVoaWNsZVByb3BWYWx1ZSBvYmplY3RzIG9mIEZMT0FUIC8gSU5UMzIgdHlwZXMuCisKKyAgICBjb25zdCBpbnQgVCA9IDI7CisgICAgY29uc3QgaW50IEMgPSA1MDA7CisgICAgY29uc3QgaW50IE8gPSAxMDA7CisKKyAgICBhdXRvIHBvb2xQdHIgPSB2YWx1ZVBvb2wuZ2V0KCk7CisKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnRocmVhZD4gdGhyZWFkczsKKyAgICBhdXRvIHN0YXJ0ID0gZWxhcHNlZFJlYWx0aW1lTmFubygpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgVDsgaSsrKSB7CisgICAgICAgIHRocmVhZHMucHVzaF9iYWNrKHN0ZDo6dGhyZWFkKFsmcG9vbFB0cl0gKCkgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBDOyBqKyspIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxyZWN5Y2xhYmxlX3B0cjxWZWhpY2xlUHJvcFZhbHVlPj4gdmVjOworICAgICAgICAgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgTzsgaysrKSB7CisgICAgICAgICAgICAgICAgICAgIHZlYy5wdXNoX2JhY2soCisgICAgICAgICAgICAgICAgICAgICAgICBwb29sUHRyLT5vYnRhaW4oayAlIDIgPT0gMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gVmVoaWNsZVByb3BlcnR5VHlwZTo6RkxPQVQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFZlaGljbGVQcm9wZXJ0eVR5cGU6OklOVDMyKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KSk7CisgICAgfQorCisgICAgZm9yIChhdXRvJiB0IDogdGhyZWFkcykgeworICAgICAgICB0LmpvaW4oKTsKKyAgICB9CisgICAgYXV0byBmaW5pc2ggPSBlbGFwc2VkUmVhbHRpbWVOYW5vKCk7CisKKyAgICBBU1NFUlRfRVEoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFQgKiBDICogTyksIHN0YXRzLT5PYnRhaW5lZCk7CisgICAgQVNTRVJUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihUICogQyAqIE8pLCBzdGF0cy0+UmVjeWNsZWQpOworICAgIC8vIENyZWF0ZWQgbGVzcyB0aGFuIG9idGFpbmVkLgorICAgIEFTU0VSVF9HRShzdGF0aWNfY2FzdDx1aW50MzJfdD4oVCAqIE8pLCBzdGF0cy0+Q3JlYXRlZCk7CisKKyAgICBhdXRvIGVsYXBzZWRNcyA9IChmaW5pc2ggLSBzdGFydCkgLyAxMDAwMDAwOworICAgIEFTU0VSVF9HRSgxMDAwLCBlbGFwc2VkTXMpOyAgLy8gTGVzcyBhIHNlY29uZCB0byBhY2Nlc3MgMTAwSyBvYmplY3RzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHlwaWNhbGx5IGl0IHRha2VzIGFib3V0IDAuMXMgb24gTmV4dXM2UC4KK30KKworfSAgLy8gbmFtZXNwYWNlIGFub255bW91cworCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZVByb3BDb25maWdJbmRleF90ZXN0LmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvZGVmYXVsdC90ZXN0cy9WZWhpY2xlUHJvcENvbmZpZ0luZGV4X3Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmNjU4MjAKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4wL2RlZmF1bHQvdGVzdHMvVmVoaWNsZVByb3BDb25maWdJbmRleF90ZXN0LmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNsdWRlICJ2aGFsX3YyXzAvVmVoaWNsZVByb3BDb25maWdJbmRleC5oIgorCisjaW5jbHVkZSAiVmVoaWNsZUhhbFRlc3RVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgeworCitjbGFzcyBQcm9wQ29uZmlnVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworcHJvdGVjdGVkOgorICAgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGNvbmZpZ3MuYXNzaWduKHN0ZDo6YmVnaW4oa1ZlaGljbGVQcm9wZXJ0aWVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RkOjplbmQoa1ZlaGljbGVQcm9wZXJ0aWVzKSk7CisgICAgfQorCisgICAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKK3B1YmxpYzoKKyAgICBzdGQ6OnZlY3RvcjxWZWhpY2xlUHJvcENvbmZpZz4gY29uZmlnczsKK307CisKK1RFU1RfRihQcm9wQ29uZmlnVGVzdCwgaGFzQ29uZmlnKSB7CisgICAgVmVoaWNsZVByb3BDb25maWdJbmRleCBpbmRleChjb25maWdzKTsKKworICAgIEFTU0VSVF9UUlVFKGluZGV4Lmhhc0NvbmZpZyh0b0ludChWZWhpY2xlUHJvcGVydHk6OkhWQUNfRkFOX1NQRUVEKSkpOworICAgIEFTU0VSVF9UUlVFKGluZGV4Lmhhc0NvbmZpZyh0b0ludChWZWhpY2xlUHJvcGVydHk6OklORk9fTUFLRSkpKTsKKyAgICBBU1NFUlRfVFJVRShpbmRleC5oYXNDb25maWcodG9JbnQoVmVoaWNsZVByb3BlcnR5OjpJTkZPX0ZVRUxfQ0FQQUNJVFkpKSk7CisKKyAgICBBU1NFUlRfRkFMU0UoaW5kZXguaGFzQ29uZmlnKHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SU5WQUxJRCkpKTsKK30KKworVEVTVF9GKFByb3BDb25maWdUZXN0LCBnZXRBbGxDb25maWcpIHsKKyAgICBWZWhpY2xlUHJvcENvbmZpZ0luZGV4IGluZGV4KGNvbmZpZ3MpOworCisgICAgc3RkOjp2ZWN0b3I8VmVoaWNsZVByb3BDb25maWc+IGFjdHVhbENvbmZpZ3MgPSBpbmRleC5nZXRBbGxDb25maWdzKCk7CisgICAgQVNTRVJUX0VRKGNvbmZpZ3Muc2l6ZSgpLCBhY3R1YWxDb25maWdzLnNpemUoKSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGFjdHVhbENvbmZpZ3Muc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgQVNTRVJUX0VRKHRvU3RyaW5nKGNvbmZpZ3NbaV0pLCB0b1N0cmluZyhhY3R1YWxDb25maWdzW2ldKSk7CisgICAgfQorfQorCitURVNUX0YoUHJvcENvbmZpZ1Rlc3QsIGdldENvbmZpZ3MpIHsKKyAgICBWZWhpY2xlUHJvcENvbmZpZ0luZGV4IGluZGV4KGNvbmZpZ3MpOworICAgIGF1dG8gYWN0dWFsQ29uZmlnID0gaW5kZXguZ2V0Q29uZmlnKHRvSW50KFZlaGljbGVQcm9wZXJ0eTo6SFZBQ19GQU5fU1BFRUQpKTsKKyAgICBBU1NFUlRfRVEodG9TdHJpbmcoY29uZmlnc1sxXSksIHRvU3RyaW5nKGFjdHVhbENvbmZpZykpOworfQorCit9ICAvLyBuYW1lc3BhY2UgYW5vbnltb3VzCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaGFsIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFmYjZiZgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMjY4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOworCisvKioKKyAqIEVudW1lcmF0ZXMgc3VwcG9ydGVkIGRhdGEgdHlwZXMgZm9yIFZlaGljbGVQcm9wZXJ0eS4KKyAqCisgKiBUaGlzIGlzIGEgYml0d2lzZSBmbGFnIHRoYXQgc3VwcG9zZWQgdG8gYmUgdXNlZCBpbiBWZWhpY2xlUHJvcGVydHkgZW51bS4KKyAqLworZW51bSBWZWhpY2xlUHJvcGVydHlUeXBlIDogaW50MzJfdCB7CisgICAgU1RSSU5HICAgICAgICAgPSAweDAwMTAwMDAwLAorICAgIEJPT0xFQU4gICAgICAgID0gMHgwMDIwMDAwMCwKKyAgICBJTlQzMiAgICAgICAgICA9IDB4MDA0MDAwMDAsCisgICAgSU5UMzJfVkVDICAgICAgPSAweDAwNDEwMDAwLAorICAgIElOVDY0ICAgICAgICAgID0gMHgwMDUwMDAwMCwKKyAgICBGTE9BVCAgICAgICAgICA9IDB4MDA2MDAwMDAsCisgICAgRkxPQVRfVkVDICAgICAgPSAweDAwNjEwMDAwLAorICAgIEJZVEVTICAgICAgICAgID0gMHgwMDcwMDAwMCwKKworICAgIC8qKgorICAgICAqIEFueSBjb21iaW5hdGlvbiBvZiBzY2FsYXIgb3IgdmVjdG9yIHR5cGVzLiBUaGUgZXhhY3QgZm9ybWF0IG11c3QgYmUKKyAgICAgKiBwcm92aWRlZCBpbiB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIHByb3BlcnR5LgorICAgICAqLworICAgIENPTVBMRVggICAgICAgID0gMHgwMGUwMDAwMCwKKworICAgIE1BU0sgICAgICAgICAgID0gMHgwMGZmMDAwMAorfTsKKworLyoqCisgKiBTb21lIHByb3BlcnRpZXMgbWF5IGJlIGFzc29jaWF0ZWQgd2l0aCBwYXJ0aWN1bGFyIHZlaGljbGUgYXJlYXMuIEZvcgorICogZXhhbXBsZSwgVmVoaWNsZVByb3BlcnR5OkRPT1JfTE9DSyBwcm9wZXJ0eSBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aAorICogcGFydGljdWxhciBkb29yLCB0aHVzIHRoaXMgcHJvcGVydHkgbXVzdCBiZSBtYXJrZWQgd2l0aAorICogVmVoaWNsZUFyZWE6RE9PUiBmbGFnLgorICoKKyAqIE90aGVyIHByb3BlcnRpZXMgbWF5IG5vdCBiZSBhc3NvY2lhdGVkIHdpdGggcGFydGljdWxhciB2ZWhpY2xlIGFyZWEsCisgKiB0aGVzZSBraW5kIG9mIHByb3BlcnRpZXMgbXVzdCBoYXZlIFZlaGljbGVBcmVhOkdMT0JBTCBmbGFnLgorICoKKyAqIFRoaXMgaXMgYSBiaXR3aXNlIGZsYWcgdGhhdCBzdXBwb3NlZCB0byBiZSB1c2VkIGluIFZlaGljbGVQcm9wZXJ0eSBlbnVtLgorICovCitlbnVtIFZlaGljbGVBcmVhIDogaW50MzJfdCB7CisgICAgICBHTE9CQUwgICAgICAgPSAweDAxMDAwMDAwLAorICAgICAgWk9ORSAgICAgICAgID0gMHgwMjAwMDAwMCwKKyAgICAgIFdJTkRPVyAgICAgICA9IDB4MDMwMDAwMDAsCisgICAgICBNSVJST1IgICAgICAgPSAweDA0MDAwMDAwLAorICAgICAgU0VBVCAgICAgICAgID0gMHgwNTAwMDAwMCwKKyAgICAgIERPT1IgICAgICAgICA9IDB4MDYwMDAwMDAsCisKKyAgICAgIE1BU0sgICAgICAgICA9IDB4MGYwMDAwMDAsCit9OworCisvKioKKyAqIEVudW1lcmF0ZXMgcHJvcGVydHkgZ3JvdXBzLgorICoKKyAqIFRoaXMgaXMgYSBiaXR3aXNlIGZsYWcgdGhhdCBzdXBwb3NlZCB0byBiZSB1c2VkIGluIFZlaGljbGVQcm9wZXJ0eSBlbnVtLgorICovCitlbnVtIFZlaGljbGVQcm9wZXJ0eUdyb3VwIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogUHJvcGVydGllcyBkZWNsYXJlZCBpbiBBT1NQIG11c3QgaGF2ZSB0aGlzIGZsYWcuCisgICAgICovCisgICAgU1lTVEVNICAgICAgICAgPSAweDEwMDAwMDAwLAorCisgICAgLyoqCisgICAgICogUHJvcGVydGllcyBkZWNsYXJlZCBieSB2ZW5kb3JzIG11c3QgaGF2ZSB0aGlzIGZsYWcuCisgICAgICovCisgICAgVkVORE9SICAgICAgICAgPSAweDIwMDAwMDAwLAorCisgICAgTUFTSyAgICAgICAgICAgPSAweGYwMDAwMDAwLAorfTsKKworLyoqCisgKiBEZWNsYXJlcyBhbGwgdmVoaWNsZSBwcm9wZXJ0aWVzLiBWZWhpY2xlUHJvcGVydHkgaGFzIGEgYml0d2lzZSBzdHJ1Y3R1cmUuCisgKiBFYWNoIHByb3BlcnR5IG11c3QgaGF2ZToKKyAqICAgLSBhbiB1bmlxdWUgaWQgZnJvbSByYW5nZSAweDAxMDAgLSAweGZmZmYKKyAqICAgLSBhc3NvY2lhdGVkIGRhdGEgdHlwZSB1c2luZyBWZWhpY2xlUHJvcGVydHlUeXBlCisgKiAgIC0gcHJvcGVydHkgZ3JvdXAgKFZlaGljbGVQcm9wZXJ0eUdyb3VwKQorICogICAtIHZlaGljbGUgYXJlYSAoVmVoaWNsZUFyZWEpCisgKgorICogVmVuZG9ycyBhcmUgYWxsb3dlZCB0byBleHRlbmQgdGhpcyBlbnVtIHdpdGggdGhlaXIgb3duIHByb3BlcnRpZXMuIEluIHRoaXMKKyAqIGNhc2UgdGhleSBtdXN0IHVzZSBWZWhpY2xlUHJvcGVydHlHcm91cDpWRU5ET1IgZmxhZyB3aGVuIHByb3BlcnR5IGlzCisgKiBkZWNsYXJlZC4KKyAqLworZW51bSBWZWhpY2xlUHJvcGVydHk6IGludDMyX3QgeworCisgICAgLyoqIFVuZGVmaW5lZCBwcm9wZXJ0eS4gKi8KKyAgICBJTlZBTElEID0gMHgwMDAwMDAwMCwKKworICAgIC8qKgorICAgICAqIFZJTiBvZiB2ZWhpY2xlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpTVEFUSUMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgSU5GT19WSU49ICgKKyAgICAgICAgMHgwMTAwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpTVFJJTkcKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogTWFrZXIgbmFtZSBvZiB2ZWhpY2xlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpTVEFUSUMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgSU5GT19NQUtFID0gKAorICAgICAgICAweDAxMDEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOlNUUklORworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBNb2RlbCBvZiB2ZWhpY2xlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpTVEFUSUMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgSU5GT19NT0RFTCA9ICgKKyAgICAgICAgMHgwMTAyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpTVFJJTkcKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogTW9kZWwgeWVhciBvZiB2ZWhpY2xlLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6U1RBVElDCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0OllFQVIKKyAgICAgKi8KKyAgICBJTkZPX01PREVMX1lFQVIgPSAoCisgICAgICAgIDB4MDEwMworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogRnVlbCBjYXBhY2l0eSBvZiB0aGUgdmVoaWNsZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6U1RBVElDCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0Ok1JTExJTElURVIKKyAgICAgKi8KKyAgICBJTkZPX0ZVRUxfQ0FQQUNJVFkgPSAoCisgICAgICAgIDB4MDEwNAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogQ3VycmVudCBvZG9tZXRlciB2YWx1ZSBvZiB0aGUgdmVoaWNsZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFIHwgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpDT05USU5VT1VTCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0OktJTE9NRVRFUgorICAgICAqLworICAgIFBFUkZfT0RPTUVURVIgPSAoCisgICAgICAgIDB4MDIwNAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogU3BlZWQgb2YgdGhlIHZlaGljbGUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRXxWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOkNPTlRJTlVPVVMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6TUVURVJfUEVSX1NFQworICAgICAqLworICAgIFBFUkZfVkVISUNMRV9TUEVFRCA9ICgKKyAgICAgICAgMHgwMjA3CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBUZW1wZXJhdHVyZSBvZiBlbmdpbmUgY29vbGFudAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFfFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Q09OVElOVU9VUworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpDRUxTSVVTCisgICAgICovCisgICAgRU5HSU5FX0NPT0xBTlRfVEVNUCA9ICgKKyAgICAgICAgMHgwMzAxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBUZW1wZXJhdHVyZSBvZiBlbmdpbmUgb2lsCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0V8VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpDT05USU5VT1VTCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0OkNFTFNJVVMKKyAgICAgKi8KKyAgICBFTkdJTkVfT0lMX1RFTVAgPSAoCisgICAgICAgIDB4MDMwNAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogRW5naW5lIHJwbQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFfFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Q09OVElOVU9VUworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpSUE0KKyAgICAgKi8KKyAgICBFTkdJTkVfUlBNID0gKAorICAgICAgICAweDAzMDUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkZMT0FUCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEN1cnJlbnRseSBzZWxlY3RlZCBnZWFyCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQGRhdGFfZW51bSBWZWhpY2xlR2VhcgorICAgICAqLworICAgIEdFQVJfU0VMRUNUSU9OID0gKAorICAgICAgICAweDA0MDAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEN1cnJlbnQgZ2Vhci4gSW4gbm9uLW1hbnVhbCBjYXNlLCBzZWxlY3RlZCBnZWFyIGRvZXMgbm90IG5lY2Vzc2FyaWx5CisgICAgICogbWF0Y2ggdGhlIGN1cnJlbnQgZ2Vhci4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAZGF0YV9lbnVtIFZlaGljbGVHZWFyCisgICAgICovCisgICAgQ1VSUkVOVF9HRUFSID0gKAorICAgICAgICAweDA0MDEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFBhcmtpbmcgYnJha2Ugc3RhdGUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgUEFSS0lOR19CUkFLRV9PTiA9ICgKKyAgICAgICAgMHgwNDAyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIERyaXZpbmcgc3RhdHVzIHBvbGljeS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAZGF0YV9lbnVtIFZlaGljbGVEcml2aW5nU3RhdHVzCisgICAgICovCisgICAgRFJJVklOR19TVEFUVVMgPSAoCisgICAgICAgIDB4MDQwNAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogV2FybmluZyBmb3IgZnVlbCBsb3cgbGV2ZWwuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgRlVFTF9MRVZFTF9MT1cgPSAoCisgICAgICAgIDB4MDQwNQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBOaWdodCBtb2RlIG9yIG5vdC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBOSUdIVF9NT0RFID0gKAorICAgICAgICAweDA0MDcKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogU3RhdGUgb2YgdGhlIHZlaGljbGVzIHR1cm4gc2lnbmFscworICAgICAqCisgICAgICogVmFsdWVzIGZyb20gVmVoaWNsZVR1cm5TaWduYWwKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBUVVJOX1NJR05BTF9TVEFURSA9ICgKKyAgICAgICAgMHgwNDA4CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIGlnbml0aW9uIHN0YXRlCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICovCisgICAgSUdOSVRJT05fU1RBVEUgPSAoCisgICAgICAgIDB4MDQwOQorICAgICAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogRmFuIHNwZWVkIHNldHRpbmcKKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19GQU5fU1BFRUQgPSAoCisgICAgICAgIDB4MDUwMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIEZhbiBkaXJlY3Rpb24gc2V0dGluZworICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAZGF0YV9lbnVtIFZlaGljbGVIdmFjRmFuRGlyZWN0aW9uCisgICAgICovCisgICAgSFZBQ19GQU5fRElSRUNUSU9OID0gKAorICAgICAgICAweDA1MDEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBIVkFDIGN1cnJlbnQgdGVtcGVyYXR1cmUuCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfVEVNUEVSQVRVUkVfQ1VSUkVOVCA9ICgKKyAgICAgICAgMHgwNTAyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogSFZBQywgdGFyZ2V0IHRlbXBlcmF0dXJlIHNldC4KKyAgICAgKgorICAgICAqIElWZWhpY2xlI3NldCBtYXkgcmV0dXJuIFN0YXR1c0NvZGU6Ok5PVF9BVkFJTEFCTEUgYW5kIElWZWhpY2xlI2dldCBpcyBub3QKKyAgICAgKiBndWFyYW50ZWVkIHRvIHdvcmsgaWYgSFZBQyB1bml0IGlzIG9mZi4gIFNlZSBIVkFDX1BPV0VSX09OIHByb3BlcnR5IGZvcgorICAgICAqIGRldGFpbHMuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgSFZBQ19URU1QRVJBVFVSRV9TRVQgPSAoCisgICAgICAgIDB4MDUwMworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIE9uL29mZiBkZWZyb3N0CisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfREVGUk9TVEVSID0gKAorICAgICAgICAweDA1MDQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpXSU5ET1cpLAorCisgICAgLyoqCisgICAgICogT24vb2ZmIEFDCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBjb25maWdfZmxhZ3MgU3VwcG9ydGVkIHpvbmVzCisgICAgICovCisgICAgSFZBQ19BQ19PTiA9ICgKKyAgICAgICAgMHgwNTA1CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBPbi9vZmYgbWF4IEFDCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfTUFYX0FDX09OID0gKAorICAgICAgICAweDA1MDYKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIE9uL29mZiBtYXggZGVmcm9zdAorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX01BWF9ERUZST1NUX09OID0gKAorICAgICAgICAweDA1MDcKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIE9uL29mZiByZS1jaXJjdWxhdGlvbgorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX1JFQ0lSQ19PTiA9ICgKKyAgICAgICAgMHgwNTA4CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBPbi9vZmYgZHVhbC4gVGhpcyBtdXN0IGJlIGRlZmluZWQgcGVyIGVhY2ggcm93LgorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX0RVQUxfT04gPSAoCisgICAgICAgIDB4MDUwOQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogT24vb2ZmIGF1dG9tYXRpYyBtb2RlCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfQVVUT19PTiA9ICgKKyAgICAgICAgMHgwNTBBCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IHRlbXBlcmF0dXJlCisgICAgICoKKyAgICAgKiBOZWdhdGl2ZSB2YWx1ZXMgaW5kaWNhdGUgY29vbGluZy4KKyAgICAgKiAwIGluZGljYXRlcyBvZmYuCisgICAgICogUG9zaXRpdmUgdmFsdWVzIGluZGljYXRlIGhlYXRpbmcuCisgICAgICoKKyAgICAgKiBTb21lIHZlaGljbGVzIG1heSBoYXZlIG11bHRpcGxlIGxldmVscyBvZiBoZWF0aW5nIGFuZCBjb29saW5nLiBUaGUKKyAgICAgKiBtaW4vbWF4IHJhbmdlIGRlZmluZXMgdGhlIGFsbG93YWJsZSByYW5nZSBhbmQgbnVtYmVyIG9mIHN0ZXBzIGluIGVhY2gKKyAgICAgKiBkaXJlY3Rpb24uCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfU0VBVF9URU1QRVJBVFVSRSA9ICgKKyAgICAgICAgMHgwNTBCCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2lkZSBNaXJyb3IgSGVhdAorICAgICAqCisgICAgICogSW5jcmVhc2UgdmFsdWVzIGRlbm90ZSBoaWdoZXIgaGVhdGluZyBsZXZlbHMgZm9yIHNpZGUgbWlycm9ycy4KKyAgICAgKiAwIGluZGljYXRlcyBoZWF0aW5nIGlzIHR1cm5lZCBvZmYuCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNzZXQgbWF5IHJldHVybiBTdGF0dXNDb2RlOjpOT1RfQVZBSUxBQkxFIGFuZCBJVmVoaWNsZSNnZXQgaXMgbm90CisgICAgICogZ3VhcmFudGVlZCB0byB3b3JrIGlmIEhWQUMgdW5pdCBpcyBvZmYuICBTZWUgSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEhWQUNfU0lERV9NSVJST1JfSEVBVCA9ICgKKyAgICAgICAgMHgwNTBDCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOk1JUlJPUiksCisKKyAgICAvKioKKyAgICAgKiBTdGVlcmluZyBXaGVlbCBUZW1wZXJhdHVyZQorICAgICAqCisgICAgICogU2V0cyB0aGUgdGVtcGVyYXR1cmUgZm9yIHRoZSBzdGVlcmluZyB3aGVlbAorICAgICAqIFBvc2l0aXZlIHZhbHVlIGluZGljYXRlcyBoZWF0aW5nLgorICAgICAqIE5lZ2F0aXZlIHZhbHVlIGluZGljYXRlcyBjb29saW5nLgorICAgICAqIDAgaW5kaWNhdGVzIHRlbXBlcmF0dXJlIGNvbnRyb2wgaXMgb2ZmLgorICAgICAqCisgICAgICogSVZlaGljbGUjc2V0IG1heSByZXR1cm4gU3RhdHVzQ29kZTo6Tk9UX0FWQUlMQUJMRSBhbmQgSVZlaGljbGUjZ2V0IGlzIG5vdAorICAgICAqIGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlIEhWQUNfUE9XRVJfT04gcHJvcGVydHkgZm9yCisgICAgICogZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBIVkFDX1NURUVSSU5HX1dIRUVMX1RFTVAgPSAoCisgICAgICAgIDB4MDUwRAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogVGVtcGVyYXR1cmUgdW5pdHMKKyAgICAgKgorICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSB0ZW1wZXJhdHVyZSBpcyBpbiBDZWxzaXVzLCBGYWhyZW5oZWl0LCBvciBhCisgICAgICogZGlmZmVyZW50IHVuaXQgZnJvbSBWZWhpY2xlVW5pdCBlbnVtLgorICAgICAqIFRoaXMgcGFyYW1ldGVyIGFmZmVjdHMgYWxsIEhWQUMgdGVtcGVyYXR1cmVzIGluIHRoZSBzeXN0ZW0uCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNnZXQgaXMgbm90IGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlCisgICAgICogSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IgZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBIVkFDX1RFTVBFUkFUVVJFX1VOSVRTID0gKAorICAgICAgICAweDA1MEUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBBY3R1YWwgZmFuIHNwZWVkCisgICAgICoKKyAgICAgKiBJVmVoaWNsZSNnZXQgaXMgbm90IGd1YXJhbnRlZWQgdG8gd29yayBpZiBIVkFDIHVuaXQgaXMgb2ZmLiAgU2VlCisgICAgICogSFZBQ19QT1dFUl9PTiBwcm9wZXJ0eSBmb3IgZGV0YWlscy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBIVkFDX0FDVFVBTF9GQU5fU1BFRURfUlBNID0gKAorICAgICAgICAweDA1MEYKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6Wk9ORSksCisKKyAgICAvKioKKyAgICAgKiBGYW4gUG9zaXRpb25zIEF2YWlsYWJsZQorICAgICAqCisgICAgICogVGhpcyBpcyBhIGJpdCBtYXNrIG9mIGZhbiBwb3NpdGlvbnMgYXZhaWxhYmxlIGZvciB0aGUgem9uZS4gIEVhY2ggZW50cnkgaW4KKyAgICAgKiB2ZWhpY2xlX2h2YWNfZmFuX2RpcmVjdGlvbiBpcyBzZWxlY3RlZCBieSBiaXQgcG9zaXRpb24uICBGb3IgaW5zdGFuY2UsIGlmCisgICAgICogb25seSB0aGUgRkFOX0RJUkVDVElPTl9GQUNFICgweDEpIGFuZCBGQU5fRElSRUNUSU9OX0RFRlJPU1QgKDB4NCkgYXJlIGF2YWlsYWJsZSwKKyAgICAgKiB0aGVuIHRoaXMgdmFsdWUgc2hhbGwgYmUgc2V0IHRvIDB4MTIuCisgICAgICoKKyAgICAgKiAweDEyID0gKDEgPDwgMSkgfCAoMSA8PCA0KQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6U1RBVElDCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIEhWQUNfRkFOX0RJUkVDVElPTl9BVkFJTEFCTEUgPSAoCisgICAgICAgIDB4MDUxMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpaT05FKSwKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgcG93ZXIgc3RhdGUgZm9yIEhWQUMuIFNvbWUgSFZBQyBwcm9wZXJ0aWVzIG11c3QgcmVxdWlyZQorICAgICAqIG1hdGNoaW5nIHBvd2VyIHRvIGJlIHR1cm5lZCBvbiB0byBnZXQgb3V0IG9mIE9GRiBzdGF0ZS4gRm9yIG5vbi16b25lZAorICAgICAqIEhWQUMgcHJvcGVydGllcywgVkVISUNMRV9BTExfWk9ORSBjb3JyZXNwb25kcyB0byBnbG9iYWwgcG93ZXIgc3RhdGUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQGNvbmZpZ19zdHJpbmcgbGlzdCBvZiBIVkFDIHByb3BlcnRpZXMgd2hvc2UgcG93ZXIgaXMgY29udHJvbGxlZCBieSB0aGlzCisgICAgICogICAgICAgICAgICAgICAgcHJvcGVydHkuIEZvcm1hdCBpcyBoZXhhLWRlY2ltYWwgbnVtYmVyICgweC4uLikgc2VwYXJhdGVkCisgICAgICogICAgICAgICAgICAgICAgYnkgY29tbWEgbGlrZSAiMHg1MDAsMHg1MDMiLiBBbGwgem9uZXMgZGVmaW5lZCBpbiB0aGVzZQorICAgICAqICAgICAgICAgICAgICAgIGFmZmVjdGVkIHByb3BlcnRpZXMgbXVzdCBiZSBhdmFpbGFibGUgaW4gdGhlIHByb3BlcnR5LgorICAgICAqLworICAgIEhWQUNfUE9XRVJfT04gPSAoCisgICAgICAgIDB4MDUxMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Qk9PTEVBTgorICAgICAgICB8IFZlaGljbGVBcmVhOlpPTkUpLAorCisgICAgLyoqCisgICAgICogT3V0c2lkZSB0ZW1wZXJhdHVyZQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFfFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6Q09OVElOVU9VUworICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpDRUxTSVVTCisgICAgICovCisgICAgRU5WX09VVFNJREVfVEVNUEVSQVRVUkUgPSAoCisgICAgICAgIDB4MDcwMworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6RkxPQVQKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogQ2FiaW4gdGVtcGVyYXR1cmUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRXxWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOkNPTlRJTlVPVVMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQHVuaXQgVmVoaWNsZVVuaXQ6Q0VMU0lVUworICAgICAqLworICAgIEVOVl9DQUJJTl9URU1QRVJBVFVSRSA9ICgKKyAgICAgICAgMHgwNzA0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVAorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBSYWRpbyBwcmVzZXRzIHN0b3JlZCBvbiB0aGUgQ2FyIHJhZGlvIG1vZHVsZS4gVGhlIGRhdGEgdHlwZSB1c2VkIGlzIGludDMyCisgICAgICogYXJyYXkgd2l0aCB0aGUgZm9sbG93aW5nIGZpZWxkczoKKyAgICAgKiA8dWw+CisgICAgICogICAgPGxpPiBpbnQzMlZhbHVlc1swXTogUHJlc2V0IG51bWJlciA8L2xpPgorICAgICAqICAgIDxsaT4gaW50MzJWYWx1ZXNbMV06IEJhbmQgdHlwZSAoc2VlICNSQURJT19CQU5EX0ZNIGluCisgICAgICogICAgc3lzdGVtL2NvcmUvaW5jbHVkZS9zeXN0ZW0vcmFkaW8uaCkuCisgICAgICogICAgPGxpPiBpbnQzMlZhbHVlc1syXTogQ2hhbm5lbCBudW1iZXIgPC9saT4KKyAgICAgKiAgICA8bGk+IGludDMyVmFsdWVzWzNdOiBTdWIgY2hhbm5lbCBudW1iZXIgPC9saT4KKyAgICAgKiA8L3VsPgorICAgICAqCisgICAgICogTk9URTogV2hlbiBnZXR0aW5nIGEgY3VycmVudCBwcmVzZXQgY29uZmlnIE9OTFkgc2V0IHByZXNldCBudW1iZXIgKGkuZS4KKyAgICAgKiBpbnQzMlZhbHVlc1swXSkuIEZvciBzZXR0aW5nIGEgcHJlc2V0IG90aGVyIGZpZWxkcyBhcmUgcmVxdWlyZWQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQGNvbmZpZ19mbGFncyBOdW1iZXIgb2YgcHJlc2V0cyBzdXBwb3J0ZWQKKyAgICAgKi8KKyAgICBSQURJT19QUkVTRVQgPSAoCisgICAgICAgIDB4MDgwMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgYXVkaW8gZm9jdXMgc3RhdGUgb2YgQW5kcm9pZCBzaWRlLiBOb3RlIHRoYXQgY2FyJ3MgYXVkaW8KKyAgICAgKiBtb2R1bGUgbXVzdCBvd24gYXVkaW8gZm9jdXMgYW5kIGdyYW50IGF1ZGlvIGZvY3VzIHRvIEFuZHJvaWQgc2lkZSB3aGVuCisgICAgICogcmVxdWVzdGVkIGJ5IEFuZHJvaWQgc2lkZS4gVGhlIGZvY3VzIGhhcyBib3RoIHBlciBzdHJlYW0gY2hhcmFjdGVyaXN0aWNzCisgICAgICogYW5kIGdsb2JhbCBjaGFyYWN0ZXJpc3RpY3MuCisgICAgICoKKyAgICAgKiBGb2N1cyByZXF1ZXN0IChnZXQgb2YgdGhpcyBwcm9wZXJ0eSkgbXVzdCB0YWtlIHRoZSBmb2xsb3dpbmcgZm9ybToKKyAgICAgKiAgIGludDMyVmFsdWVzWzBdOiBWZWhpY2xlQXVkaW9Gb2N1c1JlcXVlc3QgdHlwZQorICAgICAqICAgaW50MzJWYWx1ZXNbMV06IGJpdCBmbGFncyBvZiBzdHJlYW1zIHJlcXVlc3RlZCBieSB0aGlzIGZvY3VzIHJlcXVlc3QuCisgICAgICogICAgICAgICAgICAgICAgICAgVGhlcmUgY2FuIGJlIHVwIHRvIDMyIHN0cmVhbXMuCisgICAgICogICBpbnQzMlZhbHVlc1syXTogRXh0ZXJuYWwgZm9jdXMgc3RhdGUgZmxhZ3MuIEZvciByZXF1ZXN0LCBvbmx5IGZsYWcgbGlrZQorICAgICAqICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNQTEFZX09OTFlfRkxBRyBvcgorICAgICAqICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNNVVRFX01FRElBX0ZMQUcgY2FuIGJlCisgICAgICogICAgICAgICAgICAgICAgICAgdXNlZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjUExBWV9PTkxZX0ZMQUcgaXMgZm9yIGNhc2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICBsaWtlIHJhZGlvIHdoZXJlIGFuZHJvaWQgc2lkZSBhcHAgc3RpbGwgbmVlZHMgdG8gaG9sZAorICAgICAqICAgICAgICAgICAgICAgICAgIGZvY3VzIGJ1dCBwbGF5YmFjayBpcyBkb25lIG91dHNpZGUgQW5kcm9pZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjTVVURV9NRURJQV9GTEFHIGlzIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgIG11dGluZyBtZWRpYSBjaGFubmVsIGluY2x1ZGluZyByYWRpby4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjUExBWV9PTkxZX0ZMQUcgY2FuIGJlIHNldAorICAgICAqICAgICAgICAgICAgICAgICAgIGV2ZW4gaWYgYW5kcm9pZCBzaWRlIHJlbGVhc2VzIGZvY3VzIChyZXF1ZXN0IHR5cGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICBSRVFVRVNUX1JFTEVBU0UpLiBJbiB0aGF0IGNhc2UsIGF1ZGlvIG1vZHVsZSBtdXN0CisgICAgICogICAgICAgICAgICAgICAgICAgbWFpbnRhaW4gbXV0ZSBzdGF0ZSB1bnRpbCB1c2VyJ3MgZXhwbGljaXQgYWN0aW9uIHRvCisgICAgICogICAgICAgICAgICAgICAgICAgcGxheSBzb21lIG1lZGlhLgorICAgICAqICAgaW50MzJWYWx1ZXNbM106IEN1cnJlbnRseSBhY3RpdmUgYXVkaW8gY29udGV4dHMuIFVzZSBjb21iaW5hdGlvbiBvZgorICAgICAqICAgICAgICAgICAgICAgICAgIGZsYWdzIGZyb20gVmVoaWNsZUF1ZGlvQ29udGV4dEZsYWcuCisgICAgICogICAgICAgICAgICAgICAgICAgVGhpcyBjYW4gYmUgdXNlZCBhcyBhIGhpbnQgdG8gYWRqdXN0IGF1ZGlvIHBvbGljeSBvcgorICAgICAqICAgICAgICAgICAgICAgICAgIG90aGVyIHBvbGljeSBkZWNpc2lvbi4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBOb3RlIHRoYXQgdGhlcmUgY2FuIGJlIG11bHRpcGxlIGNvbnRleHQgYWN0aXZlIGF0IHRoZQorICAgICAqICAgICAgICAgICAgICAgICAgIHNhbWUgdGltZS4gQW5kIGFuZHJvaWQgY2FuIHNlbmQgdGhlIHNhbWUgZm9jdXMgcmVxdWVzdAorICAgICAqICAgICAgICAgICAgICAgICAgIHR5cGUgZ2FpbiBkdWUgdG8gY2hhbmdlIGluIGF1ZGlvIGNvbnRleHRzLgorICAgICAqIE5vdGUgdGhhdCBlYWNoIGZvY3VzIHJlcXVlc3QgY2FuIHJlcXVlc3QgbXVsdGlwbGUgc3RyZWFtcyB0aGF0IGlzCisgICAgICogZXhwZWN0ZWQgdG8gYmUgdXNlZCBmb3IgdGhlIGN1cnJlbnQgcmVxdWVzdC4gQnV0IGZvY3VzIHJlcXVlc3QgaXRzZWxmCisgICAgICogaXMgZ2xvYmFsIGJlaGF2aW9yIGFzIEdBSU4gb3IgR0FJTl9UUkFOU0lFTlQgZXhwZWN0cyBhbGwgc291bmRzIHBsYXllZAorICAgICAqIGJ5IGNhcidzIGF1ZGlvIG1vZHVsZSB0byBzdG9wLiBOb3RlIHRoYXQgc3RyZWFtIGFscmVhZHkgYWxsb2NhdGVkIHRvCisgICAgICogYW5kcm9pZCBiZWZvcmUgdGhpcyBmb2N1cyByZXF1ZXN0IG11c3Qgbm90IGJlIGFmZmVjdGVkIGJ5IGZvY3VzCisgICAgICogcmVxdWVzdC4KKyAgICAgKgorICAgICAqIEZvY3VzIHJlc3BvbnNlIChzZXQgYW5kIHN1YnNjcmlwdGlvbiBjYWxsYmFjayBmb3IgdGhpcyBwcm9wZXJ0eSkgbXVzdAorICAgICAqIHRha2UgdGhlIGZvbGxvd2luZyBmb3JtOgorICAgICAqICAgaW50MzJWYWx1ZXNbMF06IFZlaGljbGVBdWRpb0ZvY3VzU3RhdGUgdHlwZQorICAgICAqICAgaW50MzJWYWx1ZXNbMV06IGJpdCBmbGFncyBvZiBzdHJlYW1zIGFsbG93ZWQuCisgICAgICogICBpbnQzMlZhbHVlc1syXTogRXh0ZXJuYWwgZm9jdXMgc3RhdGU6IGJpdCBmbGFncyBvZiBjdXJyZW50bHkgYWN0aXZlCisgICAgICogICAgICAgICAgICAgICAgICAgYXVkaW8gZm9jdXMgaW4gY2FyIHNpZGUgKG91dHNpZGUgQW5kcm9pZCkuIEFjdGl2ZQorICAgICAqICAgICAgICAgICAgICAgICAgIGF1ZGlvIGZvY3VzIGRvZXMgbm90IG5lY2Vzc2FyaWx5IG1lYW4gY3VycmVudGx5CisgICAgICogICAgICAgICAgICAgICAgICAgcGxheWluZywgYnV0IHJlcHJlc2VudHMgdGhlIHN0YXRlIG9mIGhhdmluZyBmb2N1cyBvcgorICAgICAqICAgICAgICAgICAgICAgICAgIHdhaXRpbmcgZm9yIGZvY3VzIChwYXVzZSBzdGF0ZSkuCisgICAgICogICAgICAgICAgICAgICAgICAgT25lIG9yIGNvbWJpbmF0aW9uIG9mIGZsYWdzIGZyb20KKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcuCisgICAgICogICAgICAgICAgICAgICAgICAgMCBtZWFucyBubyBhY3RpdmUgYXVkaW8gZm9jdXMgaG9sZGVyIG91dHNpZGUgQW5kcm9pZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBUaGUgc3RhdGUgbXVzdCBoYXZlIGZvbGxvd2luZyB2YWx1ZXMgZm9yIGVhY2gKKyAgICAgKiAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9Gb2N1c1N0YXRlOgorICAgICAqICAgICAgICAgICAgICAgICAgIEdBSU46IDAgb3IgVmVoaWNsZUF1ZGlvRXh0Rm9jdXNGbGFnI1BMQVlfT05MWV9GTEFHCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIHdoZW4gcmFkaW8gaXMgYWN0aXZlIGluIEFuZHJvaWQgc2lkZS4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBHQUlOX1RSQU5TSUVOVDogMC4gQ2FuIGJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNQRVJNQU5FTlRfRkxBRyBvcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjVFJBTlNJRU5UX0ZMQUcgaWYgYW5kcm9pZAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBzaWRlIGhhcyByZXF1ZXN0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgUkVRVUVTVF9HQUlOX1RSQU5TSUVOVF9NQVlfRFVDSyBhbmQgY2FyIHNpZGUgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgZHVja2luZy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICBMT1NTOiAwIHdoZW4gbm8gZm9jdXMgaXMgYXVkaW8gaXMgYWN0aXZlIGluIGNhciBzaWRlLgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcjUEVSTUFORU5UX0ZMQUcgd2hlbiBjYXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgc2lkZSBpcyBwbGF5aW5nIHNvbWV0aGluZyBwZXJtYW5lbnQuCisgICAgICogICAgICAgICAgICAgICAgICAgTE9TU19UUkFOU0lFTlQ6IGFsd2F5cyBtdXN0IGJlCisgICAgICogICAgICAgICAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0V4dEZvY3VzRmxhZyNQRVJNQU5FTlRfRkxBRworICAgICAqICAgaW50MzJWYWx1ZXNbM106IGNvbnRleHQgcmVxdWVzdGVkIGJ5IGFuZHJvaWQgc2lkZSB3aGVuIHJlc3BvbmRpbmcgdG8KKyAgICAgKiAgICAgICAgICAgICAgICAgICBmb2N1cyByZXF1ZXN0LiBXaGVuIGNhciBzaWRlIGlzIHRha2luZyBmb2N1cyBhd2F5LAorICAgICAqICAgICAgICAgICAgICAgICAgIHRoaXMgbXVzdCBiZSB6ZXJvLgorICAgICAqCisgICAgICogQSBmb2N1cyByZXNwb25zZSBtdXN0IGJlIHNlbnQgcGVyIGVhY2ggZm9jdXMgcmVxdWVzdCBldmVuIGlmIHRoZXJlIGlzCisgICAgICogbm8gY2hhbmdlIGluIGZvY3VzIHN0YXRlLiBUaGlzIGNhbiBoYXBwZW4gaW4gY2FzZSBsaWtlIGZvY3VzIHJlcXVlc3QKKyAgICAgKiBvbmx5IGludm9sdmluZyBjb250ZXh0IGNoYW5nZSB3aGVyZSBhbmRyb2lkIHNpZGUgc3RpbGwgbmVlZHMgbWF0Y2hpbmcKKyAgICAgKiBmb2N1cyByZXNwb25zZSB0byBjb25maXJtIHRoYXQgYXVkaW8gbW9kdWxlIGhhcyBtYWRlIG5lY2Vzc2FyeSBjaGFuZ2VzLgorICAgICAqCisgICAgICogSWYgY2FyIGRvZXMgbm90IHN1cHBvcnQgQVVESU9fRk9DVVMsIGZvY3VzIGlzIGFzc3VtZWQgdG8gYmUgZ3JhbnRlZAorICAgICAqIGFsd2F5cy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBBVURJT19GT0NVUyA9ICgKKyAgICAgICAgMHgwOTAwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogQSBwcm9wZXJ0eSB0byBhbGxvdyBleHRlcm5hbCBjb21wb25lbnQgdG8gY29udHJvbCBhdWRpbyBmb2N1cy4gRGVwZW5kaW5nIG9uCisgICAgICogSC9XIGFyY2hpdGVjdHVyZSwgYXVkaW8gSEFMIG1heSBuZWVkIHRvIGNvbnRyb2wgYXVkaW8gZm9jdXMgd2hpbGUgdmVoaWNsZQorICAgICAqIEhBTCBpcyBzdGlsbCBpbnRlcmFjdGluZyB3aXRoIHVwcGVyIGxheWVyLiBJbiBzdWNoIGNhc2UsIGF1ZGlvIEhBTCBtYXkgc2V0CisgICAgICogdGhpcyBwcm9wZXJ0eSBhbmQgdmVoaWNsZSBIQUwgbWF5IHVzZSB0aGlzIHByb3BlcnR5IHZhbHVlIHRvIGRlY2lkZQorICAgICAqIHJlc3BvbnNlIHNlbnQgdGhyb3VnaCBBVURJT19GT0NVUyBwcm9wZXJ0eS4KKyAgICAgKiBEYXRhIGZvcm1hdCBpcyB0aGUgc2FtZSBhcyBBVURJT19GT0NVUyBwcm9wZXJ0eS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBBVURJT19GT0NVU19FWFRfU1lOQyA9ICgKKyAgICAgICAgMHgwOTEwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gY29udHJvbCBhdWRpbyB2b2x1bWUgb2YgZWFjaCBhdWRpbyBjb250ZXh0LgorICAgICAqCisgICAgICogVmVoaWNsZVByb3BDb25maWcKKyAgICAgKiAgIGNvbmZpZ0FycmF5WzBdIDogYml0IGZsYWdzIG9mIGFsbCBzdXBwb3J0ZWQgYXVkaW8gY29udGV4dHMgZnJvbQorICAgICAqICAgICAgICAgICAgICAgICAgICBWZWhpY2xlQXVkaW9Db250ZXh0RmxhZy4gSWYgdGhpcyBpcyAwLCBhdWRpbyB2b2x1bWUgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlZCBwZXIgcGh5c2ljYWwgc3RyZWFtLgorICAgICAqICAgY29uZmlnQXJyYXlbMV0gOiBmbGFncyBkZWZpbmVkIGluIFZlaGljbGVBdWRpb1ZvbHVtZUNhcGFiaWxpdHlGbGFnIHRvCisgICAgICogICAgICAgICAgICAgICAgICAgIHJlcHJlc2VudCBhdWRpbyBtb2R1bGUncyBjYXBhYmlsaXR5LgorICAgICAqICAgY29uZmlnQXJyYXlbMi4uM10gOiByZXNlcnZlZAorICAgICAqICAgY29uZmlnQXJyYXlbNC4uTiszXSA6IG1heGltdW0gdmFsdWVzIGZvciBlYWNoIGF1ZGlvIGNvbnRleHQsIHdoZXJlIE4gaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbnVtYmVyIG9mIGF1ZGlvIGNvbnRleHRzIHByb3ZpZGVkIGluCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnQXJyYXlbMF0sIG1pbmltdW0gdmFsdWUgaXMgYWx3YXlzIDAgd2hpY2gKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2F0ZXMgbXV0ZSBzdGF0ZS4KKyAgICAgKgorICAgICAqIERhdGEgdHlwZSBsb29rcyBsaWtlOgorICAgICAqICAgaW50MzJWYWx1ZXNbMF0gOiBzdHJlYW0gY29udGV4dCBhcyBkZWZpbmVkIGluIFZlaGljbGVBdWRpb0NvbnRleHRGbGFnLgorICAgICAqICAgICAgICAgICAgICAgICAgICBJZiBvbmx5IHBoeXNpY2FsIHN0cmVhbSBpcyBzdXBwb3J0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgKGNvbmZpZ0FycmF5WzBdID09IDApLCB0aGlzIG11c3QgcmVwcmVzZW50IHBoeXNpY2FsCisgICAgICogICAgICAgICAgICAgICAgICAgIHN0cmVhbSBudW1iZXIuCisgICAgICogICBpbnQzMlZhbHVlc1sxXSA6IHZvbHVtZSBsZXZlbCwgdmFsaWQgcmFuZ2UgaXMgMCAobXV0ZSkgdG8gbWF4IGxldmVsCisgICAgICogICAgICAgICAgICAgICAgICAgIGRlZmluZWQgaW4gdGhlIGNvbmZpZy4KKyAgICAgKiAgIGludDMyVmFsdWVzWzJdIDogT25lIG9mIFZlaGljbGVBdWRpb1ZvbHVtZVN0YXRlLgorICAgICAqCisgICAgICogVGhpcyBwcm9wZXJ0eSByZXF1aXJlcyBwZXIgc3RyZWFtIGJhc2VkIGdldC4gSEFMIGltcGxlbWVudGF0aW9uIG11c3QKKyAgICAgKiBjaGVjayBzdHJlYW0gbnVtYmVyIGluIGdldCBjYWxsIHRvIHJldHVybiB0aGUgcmlnaHQgdm9sdW1lLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBjb25maWdfZmxhZ3MgYWxsIGF1ZGlvIGNvbnRleHRzIHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBBVURJT19WT0xVTUUgPSAoCisgICAgICAgIDB4MDkwMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIGFsbG93IGF1ZGlvIHZvbHVtZSBzeW5jIGZyb20gZXh0ZXJuYWwgY29tcG9uZW50cyBsaWtlIGF1ZGlvIEhBTC4KKyAgICAgKiBTb21lIHZlaGljbGUgSEFMIGltcGxlbWVudGF0aW9uIG1heSBnZXQgdm9sdW1lIGNvbnRyb2wgZnJvbSBhdWRpbyBIQUwgYW5kIGluIHN1Y2gKKyAgICAgKiBjYXNlLCBzZXR0aW5nIEFVRElPX1ZPTFVNRV9FWFRfU1lOQyBwcm9wZXJ0eSBtYXkgdHJpZ2dlciBldmVudCBpbiBBVURJT19WT0xVTUUgcHJvcGVydHkuCisgICAgICogRGF0YSBmb3JtYXQgZm9yIHRoaXMgcHJvcGVydHkgaXMgdGhlIHNhbWUgYXMgQVVESU9fVk9MVU1FIHByb3BlcnR5LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBjb25maWdfZmxhZ3MgYWxsIGF1ZGlvIGNvbnRleHRzIHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBBVURJT19WT0xVTUVfRVhUX1NZTkMgPSAoCisgICAgICAgIDB4MDkxMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IGZvciBoYW5kbGluZyB2b2x1bWUgbGltaXQgc2V0IGJ5IHVzZXIuIFRoaXMgbGltaXRzIG1heGltdW0KKyAgICAgKiB2b2x1bWUgdGhhdCBjYW4gYmUgc2V0IHBlciBlYWNoIGNvbnRleHQgb3IgcGh5c2ljYWwgc3RyZWFtLgorICAgICAqCisgICAgICogVmVoaWNsZVByb3BDb25maWcKKyAgICAgKiAgIGNvbmZpZ0FycmF5WzBdIDogYml0IGZsYWdzIG9mIGFsbCBzdXBwb3J0ZWQgYXVkaW8gY29udGV4dHMuIElmIHRoaXMgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgMCwgYXVkaW8gdm9sdW1lIGlzIGNvbnRyb2xsZWQgcGVyIHBoeXNpY2FsIHN0cmVhbS4KKyAgICAgKiAgIGNvbmZpZ0FycmF5WzFdIDogZmxhZ3MgZGVmaW5lZCBpbiBWZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZworICAgICAqICAgICAgICAgICAgICAgICAgICB0byByZXByZXNlbnQgYXVkaW8gbW9kdWxlJ3MgY2FwYWJpbGl0eS4KKyAgICAgKgorICAgICAqIERhdGEgdHlwZSBsb29rcyBsaWtlOgorICAgICAqICAgaW50MzJWYWx1ZXNbMF0gOiBzdHJlYW0gY29udGV4dCBhcyBkZWZpbmVkIGluIFZlaGljbGVBdWRpb0ZvY3VzRmxhZy4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgSWYgb25seSBwaHlzaWNhbCBzdHJlYW0gaXMgc3VwcG9ydGVkCisgICAgICogICAgICAgICAgICAgICAgICAgIChjb25maWdBcnJheVswXSA9PSAwKSwgdGhpcyBtdXN0IHJlcHJlc2VudCBwaHlzaWNhbAorICAgICAqICAgICAgICAgICAgICAgICAgICBzdHJlYW0gbnVtYmVyLgorICAgICAqICAgaW50MzJWYWx1ZXNbMV0gOiBtYXhpbXVtIHZvbHVtZSBzZXQgdG8gdGhlIHN0cmVhbS4gSWYgdGhlcmUgaXMgbm8KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgcmVzdHJpY3Rpb24sIHRoaXMgdmFsdWUgbXVzdCBiZSAgYmlnZ2VyIHRoYW4KKyAgICAgKiAgICAgICAgICAgICAgICAgICAgQVVESU9fVk9MVU1FJ3MgbWF4IHZhbHVlLgorICAgICAqCisgICAgICogSWYgY2FyIGRvZXMgbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlLCB0aGlzIHByb3BlcnR5IG11c3Qgbm90IGJlCisgICAgICogcG9wdWxhdGVkIGJ5IEhBTC4KKyAgICAgKiBUaGlzIHByb3BlcnR5IHJlcXVpcmVzIHBlciBzdHJlYW0gYmFzZWQgZ2V0LiBIQUwgaW1wbGVtZW50YXRpb24gbXVzdAorICAgICAqIGNoZWNrIHN0cmVhbSBudW1iZXIgaW4gZ2V0IGNhbGwgdG8gcmV0dXJuIHRoZSByaWdodCB2b2x1bWUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICogQGNvbmZpZ19mbGFncyBhbGwgYXVkaW8gY29udGV4dHMgc3VwcG9ydGVkLgorICAgICAqLworICAgIEFVRElPX1ZPTFVNRV9MSU1JVCA9ICgKKyAgICAgICAgMHgwOTAyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gc2hhcmUgYXVkaW8gcm91dGluZyBwb2xpY3kgb2YgYW5kcm9pZCBzaWRlLiBUaGlzIHByb3BlcnR5IGlzCisgICAgICogc2V0IGF0IHRoZSBiZWdpbm5pbmcgdG8gcGFzcyBhdWRpbyBwb2xpY3kgaW4gYW5kcm9pZCBzaWRlIGRvd24gdG8KKyAgICAgKiB2ZWhpY2xlIEhBTCBhbmQgY2FyIGF1ZGlvIG1vZHVsZS4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIGFzIGEgaGludCB0byBhZGp1c3QgYXVkaW8gcG9saWN5IG9yIG90aGVyIHBvbGljeQorICAgICAqIGRlY2lzaW9uLgorICAgICAqCisgICAgICogICBpbnQzMlZhbHVlc1swXSA6IGF1ZGlvIHN0cmVhbSB3aGVyZSB0aGUgYXVkaW8gZm9yIHRoZSBhcHBsaWNhdGlvbgorICAgICAqICAgICAgICAgICAgICAgICAgICBjb250ZXh0IG11c3QgYmUgcm91dGVkIGJ5IGRlZmF1bHQuIE5vdGUgdGhhdCB0aGlzIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgIHRoZSBkZWZhdWx0IHNldHRpbmcgZnJvbSBzeXN0ZW0sIGJ1dCBlYWNoIGFwcCBtYXkKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgc3RpbGwgdXNlIGRpZmZlcmVudCBhdWRpbyBzdHJlYW0gZm9yIHdoYXRldmVyIHJlYXNvbi4KKyAgICAgKiAgIGludDMyVmFsdWVzWzFdIDogQWxsIGF1ZGlvIGNvbnRleHRzIHRoYXQgbXVzdCBiZSBzZW50IHRocm91Z2ggdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICBwaHlzaWNhbCBzdHJlYW0uIEZsYWcgaXMgZGVmaW5lZCBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgVmVoaWNsZUF1ZGlvRm9jdXNGbGFnLgorCisgICAgICogU2V0dGluZyBvZiB0aGlzIHByb3BlcnR5IG11c3QgYmUgZG9uZSBmb3IgYWxsIGF2YWlsYWJsZSBwaHlzaWNhbCBzdHJlYW1zCisgICAgICogYmFzZWQgb24gYXVkaW8gSC9XIHZhcmlhbnQgaW5mb3JtYXRpb24gYWNxdWlyZWQgZnJvbSBBVURJT19IV19WQVJJQU5UCisgICAgICogcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpXUklURQorICAgICAqLworICAgIEFVRElPX1JPVVRJTkdfUE9MSUNZID0gKAorICAgICAgICAweDA5MDMKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byByZXR1cm4gYXVkaW8gSC9XIHZhcmlhbnQgdHlwZSB1c2VkIGluIHRoaXMgY2FyLiBUaGlzIGFsbG93cworICAgICAqIGFuZHJvaWQgc2lkZSB0byBzdXBwb3J0IGRpZmZlcmVudCBhdWRpbyBwb2xpY3kgYmFzZWQgb24gSC9XIHZhcmlhbnQgdXNlZC4KKyAgICAgKiBOb3RlIHRoYXQgb3RoZXIgY29tcG9uZW50cyBsaWtlIENhclNlcnZpY2UgbWF5IG5lZWQgb3ZlcmxheSB1cGRhdGUgdG8KKyAgICAgKiBzdXBwb3J0IGFkZGl0aW9uYWwgdmFyaWFudHMuIElmIHRoaXMgcHJvcGVydHkgZG9lcyBub3QKKyAgICAgKiBleGlzdCwgZGVmYXVsdCBhdWRpbyBwb2xpY3kgbXVzdCBiZSB1c2VkLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6U1RBVElDCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEBjb25maWdfZmxhZ3MgQWRkaXRpb25hbCBpbmZvIG9uIGF1ZGlvIEgvVy4gTXVzdCB1c2UKKyAgICAgKiAgICAgICAgICAgICAgIFZlaGljbGVBdWRpb0h3VmFyaWFudENvbmZpZ0ZsYWcgZm9yIHRoaXMuCisgICAgICovCisgICAgQVVESU9fSFdfVkFSSUFOVCA9ICgKKyAgICAgICAgMHgwOTA0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byBwYXNzIGhpbnQgb24gZXh0ZXJuYWwgYXVkaW8gcm91dGluZy4gV2hlbiBhbmRyb2lkIHNpZGUKKyAgICAgKiByZXF1ZXN0IGZvY3VzIHdpdGggVmVoaWNsZUF1ZGlvRXh0Rm9jdXNmbGFnLCB0aGlzCisgICAgICogcHJvcGVydHkgbXVzdCBiZSBzZXQgYmVmb3JlIHNldHRpbmcgQVVESU9fRk9DVVMgcHJvcGVydHkgYXMgYSBoaW50IGZvcgorICAgICAqIGV4dGVybmFsIGF1ZGlvIHNvdXJjZSByb3V0aW5nLgorICAgICAqIE5vdGUgdGhhdCBzZXR0aW5nIHRoaXMgcHJvcGVydHkgYWxvbmUgbXVzdCBub3QgdHJpZ2dlciBhbnkgY2hhbmdlLgorICAgICAqIEF1ZGlvIHJvdXRpbmcgbXVzdCBiZSBjaGFuZ2VkIG9ubHkgd2hlbiBBVURJT19GT0NVUyBwcm9wZXJ0eSBpcyBzZXQuCisgICAgICogTm90ZSB0aGF0IHRoaXMgcHJvcGVydHkgYWxsb3dzIHBhc3NpbmcgY3VzdG9tIHZhbHVlIGFzIGxvbmcgYXMgaXQgaXMKKyAgICAgKiBkZWZpbmVkIGluIFZlaGljbGVQcm9wQ29uZmlnI2NvbmZpZ1N0cmluZy4gVGhpcyBhbGxvd3Mgc3VwcG9ydGluZworICAgICAqIG5vbi1zdGFuZGFyZCByb3V0aW5nIG9wdGlvbnMgdGhyb3VnaCB0aGlzIHByb3BlcnR5LgorICAgICAqIEl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSBzZXBhcmF0ZSBuYW1lIHNwYWNlIGZvciBjdXN0b20gcHJvcGVydHkgdG8KKyAgICAgKiBwcmV2ZW50IGNvbmZsaWN0IGluIGZ1dHVyZSBhbmRyb2lkIHJlbGVhc2VzLgorICAgICAqIEVuYWJsaW5nIGVhY2ggZXh0ZXJuYWwgcm91dGluZyBvcHRpb24gaXMgZG9uZSBieSBlbmFibGluZyBlYWNoIGJpdCBmbGFnCisgICAgICogZm9yIHRoZSByb3V0aW5nLgorICAgICAqIFRoaXMgcHJvcGVydHkgY2FuIHN1cHBvcnQgdXAgdG8gMTI4IGV4dGVybmFsIHJvdXRpbmdzLgorICAgICAqIFRvIGdpdmUgZnVsbCBmbGV4aWJpbGl0eSwgdGhlcmUgaXMgbm8gc3RhbmRhcmQgZGVmaW5pdGlvbiBmb3IgZWFjaCBiaXQKKyAgICAgKiBmbGFnIGFuZCBhc3NpZ25pbmcgZWFjaCBiaWcgZmxhZyB0byBzcGVjaWZpYyByb3V0aW5nIHR5cGUgaXMgZGVjaWRlZCBieQorICAgICAqIFZlaGljbGVQcm9wQ29uZmlnI2NvbmZpZ1N0cmluZy4gIFZlaGljbGVQcm9wQ29uZmlnI2NvbmZpZ1N0cmluZyBoYXMKKyAgICAgKiBmb3JtYXQgb2YgZWFjaCBlbnRyeSBzZXBhcmF0ZWQgYnkgJywnIGFuZCBlYWNoIGVudHJ5IGhhcyBmb3JtYXQgb2YKKyAgICAgKiBiaXRGbGFnUG9zaXRvbjp0eXBlU3RyaW5nWzpwaHlzaWNhbFN0cmVhbU51bWJlcl0uCisgICAgICogIGJpdEZsYWdQb3NpdGlvbjogcmVwcmVzZW50cyB3aGljaCBiaWcgZmxhZyB3aWxsIGJlIHNldCB0byBlbmFibGUgdGhpcworICAgICAqICByb3V0aW5nLiAwIG1lYW5zCisgICAgICogICAgTFNCIGluIGludDMyVmFsdWVzWzBdLiAzMSB3aWxsIGJlIE1TQiBpbiBpbnQzMlZhbHVlc1swXS4gMTI3IHdpbGwgTVNCCisgICAgICogICAgaW4gaW50MzJWYWx1ZXNbM10uCisgICAgICogIHR5cGVTdHJpbmc6IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBleHRlcm5hbCByb3V0aW5nLiBTb21lIHR5cGVzIGFyZQorICAgICAqICAgIGFscmVhZHkgZGVmaW5lZCBpbiBBVURJT19FWFRfUk9VVElOR19TT1VSQ0VfKiBhbmQgdXNlIHRoZW0gZmlyc3QKKyAgICAgKiAgICBiZWZvcmUgYWRkaW5nIHNvbWV0aGluZyBjdXN0b20uIEFwcGxpY2F0aW9ucyB3aWxsIGZpbmQgZWFjaCByb3V0aW5nCisgICAgICogICAgdXNpbmcgdGhpcyBzdHJpbmcuCisgICAgICogIHBoeXNpY2FsU3RyZWFtTnVtYmVyOiBUaGlzIHBhcnQgaXMgb3B0aW9uYWwgYW5kIHJlcHJlc2VudHMgcGh5c2ljYWwKKyAgICAgKiAgICBzdHJlYW0gdG8gYW5kcm9pZCB3aGljaCB3aWxsIGJlIGRpc2FibGVkIHdoZW4gdGhpcyByb3V0aW5nIGlzIGVuYWJsZWQuCisgICAgICogICAgSWYgbm90IHNwZWNpZmllZCwgdGhpcyByb3V0aW5nIG11c3Qgbm90IGFmZmVjdCBwaHlzaWNhbCBzdHJlYW1zIHRvCisgICAgICogICAgYW5kcm9pZC4KKyAgICAgKiBBcyBhbiBleGFtcGxlLCBsZXQncyBhc3N1bWUgYSBzeXN0ZW0gd2l0aCB0d28gcGh5c2ljYWwgc3RyZWFtcywgMCBmb3IKKyAgICAgKiBtZWRpYSBhbmQgMSBmb3IgbmF2IGd1aWRhbmNlLiBBbmQgbGV0J3MgYXNzdW1lIGV4dGVybmFsIHJvdXRpbmcgb3B0aW9uCisgICAgICogb2YgYW0gZm0gcmFkaW8sIGV4dGVybmFsIG5hdmlnYXRpb24gZ3VpZGFuY2UsIHNhdGVsbGl0ZSByYWRpbywgYW5kIG9uZQorICAgICAqIGN1c3RvbS4gTGV0J3MgYXNzdW1lIHRoYXQgcmFkaW8gYW5kIHNhdGVsbGl0ZSByZXBsYWNlcyBwaHlzaWNhbCBzdHJlYW0gMAorICAgICAqIGFuZCBleHRlcm5hbCBuYXZpZ2F0aW9uIHJlcGxhY2VzIHBoeXNpY2FsIHN0cmVhbSAxLiBBbmQgYml0IGZsYWcgd2lsbCBiZQorICAgICAqIGFzc2lnbmVkIGluIHRoZSBvcmRlciBsaXN0ZWQgYWJvdmUuIFRoaXMgY29uZmlndXJhdGlvbiB3aWxsIGxvb2sgbGlrZQorICAgICAqIHRoaXMgaW4gY29uZmlnX3N0cmluZzoKKyAgICAgKiAgIjA6UkFESU9fQU1fRk06MCwxOkVYVF9OQVZfR1VJREFOQ0U6MSwyOlJBRElPX1NBVEVMTElURTowLDM6Y29tLnRlc3QuU09NRVRISU5HX0NVU1RPTSIKKyAgICAgKiBXaGVuIGFuZHJvaWQgcmVxdWVzdHMgUkFESU9fQU1fRk0sIGludDMyVmFsdWVzWzBdIHdpbGwgYmUgc2V0IHRvIDB4MS4KKyAgICAgKiBXaGVuIGFuZHJvaWQgcmVxdWVzdHMgUkFESU9fU0FURUxMSVRFICsgRVhUX05BVl9HVUlEQU5DRSwgaW50MzJWYWx1ZXNbMF0KKyAgICAgKiB3aWxsIGJlIHNldCB0byAweDJ8MHg0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEBjb25maWdfc3RyaW5nIExpc3Qgb2YgYWxsIGF2YWlhYmxlIGV4dGVybmFsIHNvdXJjZSBpbiB0aGUgc3lzdGVtLgorICAgICAqLworICAgIEFVRElPX0VYVF9ST1VUSU5HX0hJTlQgPSAoCisgICAgICAgIDB4MDkwNQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgc3RhdGUgb2YgYXVkaW8gc3RyZWFtLiBBdWRpbyBIQUwgc2hvdWxkIHNldCB0aGlzIHdoZW4gYSBzdHJlYW0gaXMgc3RhcnRpbmcgb3IKKyAgICAgKiBlbmRpbmcuIENhciBzZXJ2aWNlIGNhbiByZXF1ZXN0IGZvY3VzIGZvciBhdWRpbyBwbGF5ZWQgd2l0aG91dCBmb2N1cy4gSWYgc3VjaCBmZWF0dXJlCisgICAgICogaXMgbm90IHJlcXVpcmVkLCB0aGlzIHByb3BlcnR5IGRvZXMgbm90IG5lZWQgdG8gYmUgaW1wbGVtZW50ZWQuCisgICAgICogQ2FyIHNlcnZpY2Ugb25seSBtb25pdG9ycyBzZXR0aW5nIG9mIHRoaXMgcHJvcGVydHkuIEl0IGlzIHVwIHRvIGVhY2ggdmVoaWNsZSBIQUwKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiB0byBhZGQgbmVjZXNzYXJ5IGFjdGlvbiBidXQgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB3aWxsIGJlIGRvaW5nIG5vdGhpbmcgb24KKyAgICAgKiB0aGlzIHByb3BlcnkncyBzZXQgZnJvbSBhdWRpbyBIQUwuCisgICAgICogQWN0dWFsIHN0cmVhbWluZyBvZiBkYXRhIHNob3VsZCBiZSBkb25lIG9ubHkgYWZ0ZXIgZ2V0dGluZyBmb2N1cyBmb3IgdGhlIGdpdmVuIHN0cmVhbSBmcm9tCisgICAgICogY2FyIGF1ZGlvIG1vZHVsZS4gRm9jdXMgY2FuIGJlIGFscmVhZHkgZ3JhbnRlZCB3aGVuIHN0cmVhbSBpcyBzdGFydGVkLiBGb2N1cyBzdGF0ZSBjYW4gYmUKKyAgICAgKiBtb25pdG9yZWQgYnkgbW9uaXRvcmluZyBBVURJT19GT0NVUyBwcm9wZXJ0eS4gSWYgY2FyIGRvZXMgbm90IHN1cHBvcnQKKyAgICAgKiBBVURJT19GT0NVUyBwcm9wZXJ0eSwgdGhlcmUgaXMgbm8gbmVlZCB0byBtb25pdG9yIGZvY3VzIGFzIGZvY3VzIGlzIGFzc3VtZWQgdG8gYmUKKyAgICAgKiBncmFudGVkIGFsd2F5cy4KKyAgICAgKiBEYXRhIGhhcyB0aGUgZm9sbG93aW5nIGZvcm1hdDoKKyAgICAgKiAgIGludDMyX2FycmF5WzBdIDogdmVoaWNsZV9hdWRpb19zdHJlYW1fc3RhdGUsIDA6IHN0b3BwZWQsIDE6IHN0YXJ0ZWQKKyAgICAgKiAgIGludDMyX2FycmF5WzFdIDogc3RyZWFtIG51bWJlciBsaWtlIDAsIDEsIDIsIC4uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEFVRElPX1NUUkVBTV9TVEFURSAgPSAoCisgICAgICAgIDB4MDkwNgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIGNvbnRyb2wgY2FyIHNwZWNpZmljIGF1ZGlvIHBhcmFtZXRlcnMuIEVhY2ggcGFyYW1ldGVyIGlzIGRlZmluZWQgYXMgc3RyaW5nIGtleS0KKyAgICAgKiB2YWx1ZSBwYWlyLgorICAgICAqIHNldCBhbmQgZXZlbnQgbm90aWZpY2F0aW9uIGNhbiBwYXNzIG11bHRpcGxlIHBhcmFtZXRlcnMgdXNpbmcgdGhlCisgICAgICogZm9sbG93aW5nIGZvcm1hdDoKKyAgICAgKiAgIGtleTE9dmFsdWUxO2tleTI9dmFsdWUyOy4uLgorICAgICAqIGdldCBjYWxsIGNhbiByZXF1ZXN0IG11bHRpcGxlIHBhcmFtZXRlcnMgdXNpbmcgdGhlIGZvbGxvd2luZyBmb3JtYXQ6CisgICAgICogICBrZXkxO2tleTI7Li4uCisgICAgICogUmVzcG9uc2UgZm9yIGdldCBjYWxsIGhhcyB0aGUgc2FtZSBmb3JtYXQgYXMgc2V0LgorICAgICAqCisgICAgICogVmVoaWNsZVByb3BDb25maWcKKyAgICAgKiAgIGNvbmZpZ1N0cmluZzogZ2l2ZSBsaXN0IG9mIGFsbCBzdXBwb3J0ZWQga2V5cyB3aXRoIDsgYXMgc2VwYXJhdG9yLiBGb3IgZXhhbXBsZToKKyAgICAgKiAgICAga2V5MTtrZXkyOy4uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIEFVRElPX1BBUkFNRVRFUlMgPSAoCisgICAgICAgIDB4OTA3CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpTVFJJTkcKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gY29udHJvbCBwb3dlciBzdGF0ZSBvZiBhcHBsaWNhdGlvbiBwcm9jZXNzb3IKKyAgICAgKgorICAgICAqIEl0IGlzIGFzc3VtZWQgdGhhdCBBUCdzIHBvd2VyIHN0YXRlIGlzIGNvbnRyb2xsZXIgYnkgc2VwYXJhdGUgcG93ZXIKKyAgICAgKiBjb250cm9sbGVyLgorICAgICAqCisgICAgICogRm9yIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24sIFZlaGljbGVQcm9wQ29uZmlnLmNvbmZpZ0ZsYWdzIGNhbgorICAgICAqIGhhdmUgYml0IGZsYWcgY29tYmluaW5nIHZhbHVlcyBpbiBWZWhpY2xlQXBQb3dlclN0YXRlQ29uZmlnRmxhZy4KKyAgICAgKgorICAgICAqIFZhbHVlIGZvcm1hdCBmb3IgSVZlaGljbGUjZ2V0IC8gSVZlaGljbGUjc3Vic2NyaWJlOgorICAgICAqICAgaW50MzJWYWx1ZXNbMF0gOiB2ZWhpY2xlX2FwX3Bvd2VyX3N0YXRlX3R5cGUKKyAgICAgKiAgIGludDMyVmFsdWVzWzFdIDogYWRkaXRpb25hbCBwYXJhbWV0ZXIgcmVsZXZhbnQgZm9yIGVhY2ggc3RhdGUsCisgICAgICogICAgICAgICAgICAgICAgICAgIDAgaWYgbm90IHVzZWQuCisgICAgICogVmFsdWUgZm9ybWF0IGZvciBJVmVoaWNsZSNzZXQ6CisgICAgICogICBpbnQzMlZhbHVlc1swXSA6IHZlaGljbGVfYXBfcG93ZXJfc3RhdGVfc2V0X3R5cGUKKyAgICAgKiAgIGludDMyVmFsdWVzWzFdIDogYWRkaXRpb25hbCBwYXJhbWV0ZXIgcmVsZXZhbnQgZm9yIGVhY2ggcmVxdWVzdC4gc2hvdWxkIGJlIDAgaWYgbm90IHVzZWQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVkVISUNMRV9QUk9QX0NIQU5HRV9NT0RFX09OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVkVISUNMRV9QUk9QX0FDQ0VTU19SRUFEX1dSSVRFCisgICAgICovCisgICAgQVBfUE9XRVJfU1RBVEUgPSAoCisgICAgICAgIDB4MEEwMAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzJfVkVDCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIHJlcHJlc2VudCBicmlnaHRuZXNzIG9mIHRoZSBkaXNwbGF5LiBTb21lIGNhcnMgaGF2ZSBzaW5nbGUKKyAgICAgKiBjb250cm9sIGZvciB0aGUgYnJpZ2h0bmVzcyBvZiBhbGwgZGlzcGxheXMgYW5kIHRoaXMgcHJvcGVydHkgaXMgdG8gc2hhcmUKKyAgICAgKiBjaGFuZ2UgaW4gdGhhdCBjb250cm9sLgorICAgICAqCisgICAgICogSWYgdGhpcyBpcyB3cml0YWJsZSwgYW5kcm9pZCBzaWRlIGNhbiBzZXQgdGhpcyB2YWx1ZSB3aGVuIHVzZXIgY2hhbmdlcworICAgICAqIGRpc3BsYXkgYnJpZ2h0bmVzcyBmcm9tIFNldHRpbmdzLiBJZiB0aGlzIGlzIHJlYWQgb25seSwgdXNlciBtYXkgc3RpbGwKKyAgICAgKiBjaGFuZ2UgZGlzcGxheSBicmlnaHRuZXNzIGZyb20gU2V0dGluZ3MsIGJ1dCB0aGF0IHdpbGwgbm90IGJlIHJlZmxlY3RlZAorICAgICAqIHRvIG90aGVyIGRpc3BsYXlzLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIERJU1BMQVlfQlJJR0hUTkVTUyA9ICgKKyAgICAgICAgMHgwQTAxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBQcm9wZXJ0eSB0byByZXBvcnQgYm9vdHVwIHJlYXNvbiBmb3IgdGhlIGN1cnJlbnQgcG93ZXIgb24uIFRoaXMgaXMgYQorICAgICAqIHN0YXRpYyBwcm9wZXJ0eSB0aGF0IHdpbGwgbm90IGNoYW5nZSBmb3IgdGhlIHdob2xlIGR1cmF0aW9uIHVudGlsIHBvd2VyCisgICAgICogb2ZmLiBGb3IgZXhhbXBsZSwgZXZlbiBpZiB1c2VyIHByZXNzZXMgcG93ZXIgb24gYnV0dG9uIGFmdGVyIGF1dG9tYXRpYworICAgICAqIHBvd2VyIG9uIHdpdGggZG9vciB1bmxvY2ssIGJvb3R1cCByZWFzb24gbXVzdCBzdGF5IHdpdGgKKyAgICAgKiBWZWhpY2xlQXBQb3dlckJvb3R1cFJlYXNvbiNVU0VSX1VOTE9DSy4KKyAgICAgKgorICAgICAqIGludDMyVmFsdWVzWzBdIG11c3QgYmUgVmVoaWNsZUFwUG93ZXJCb290dXBSZWFzb24uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpTVEFUSUMKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgKi8KKyAgICBBUF9QT1dFUl9CT09UVVBfUkVBU09OID0gKAorICAgICAgICAweDBBMDIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFByb3BlcnR5IHRvIGZlZWQgSC9XIGlucHV0IGV2ZW50cyB0byBhbmRyb2lkCisgICAgICoKKyAgICAgKiBpbnQzMlZhbHVlc1swXSA6IGFjdGlvbiBkZWZpbmVkIGJ5IFZlaGljbGVId0tleUlucHV0QWN0aW9uCisgICAgICogaW50MzJWYWx1ZXNbMV0gOiBrZXkgY29kZSwgbXVzdCB1c2Ugc3RhbmRhcmQgYW5kcm9pZCBrZXkgY29kZQorICAgICAqIGludDMyVmFsdWVzWzJdIDogdGFyZ2V0IGRpc3BsYXkgZGVmaW5lZCBpbiBWZWhpY2xlRGlzcGxheS4gRXZlbnRzIG5vdAorICAgICAqICAgICAgICAgICAgICAgICAgdGllZCB0byBzcGVjaWZpYyBkaXNwbGF5IG11c3QgYmUgc2VudCB0bworICAgICAqICAgICAgICAgICAgICAgICAgVmVoaWNsZURpc3BsYXkjTUFJTi4KKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFECisgICAgICogQGNvbmZpZ19mbGFncworICAgICAqLworICAgIEhXX0tFWV9JTlBVVCA9ICgKKyAgICAgICAgMHgwQTEwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMl9WRUMKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogUHJvcGVydHkgdG8gZGVmaW5lIGluc3RydW1lbnQgY2x1c3RlciBpbmZvcm1hdGlvbi4KKyAgICAgKiBGb3IgVmVoaWNsZUluc3RydW1lbnRDbHVzdGVyVHlwZTpFWFRFUk5BTF9ESVNQTEFZOgorICAgICAqICBSRUFEOgorICAgICAqICAgaW50MzJWYWx1ZXNbMF0gOiBUaGUgY3VycmVudCBzY3JlZW4gbW9kZSBpbmRleC4gU2NyZWVuIG1vZGUgaXMgZGVmaW5lZAorICAgICAqICAgICAgICAgICAgICAgICAgICBhcyBhIGNvbmZpZ3VyYXRpb24gaW4gY2FyIHNlcnZpY2UgYW5kIHJlcHJlc2VudHMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgd2hpY2ggYXJlYSBvZiBzY3JlZW4gaXMgcmVuZGVyYWJsZS4KKyAgICAgKiAgIGludDMyVmFsdWVzWzFdIDogQW5kcm9pZCBjYW4gcmVuZGVyIHRvIGluc3RydW1lbnQgY2x1c3RlciAoPTEpIG9yCisgICAgICogICAgICAgICAgICAgICAgICAgIG5vdCg9MCkuIFdoZW4gdGhpcyBpcyAwLCBpbnN0cnVtZW50IGNsdXN0ZXIgbWF5IGJlCisgICAgICogICAgICAgICAgICAgICAgICAgIHJlbmRlcmluZyBzb21lIGluZm9ybWF0aW9uIGluIHRoZSBhcmVhIGFsbG9jYXRlZCBmb3IKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgYW5kcm9pZCBhbmQgYW5kcm9pZCBzaWRlIHJlbmRlcmluZyBpcyBpbnZpc2libGUuCisgICAgICogIFdSSVRFIGZyb20gYW5kcm9pZDoKKyAgICAgKiAgIGludDMyVmFsdWVzWzBdIDogUHJlZmVycmVkIG1vZGUgZm9yIGFuZHJvaWQgc2lkZS4gRGVwZW5kaW5nIG9uIHRoZSBhcHAKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgcmVuZGVyaW5nIHRvIGluc3RydW1lbnQgY2x1c3RlciwgcHJlZmVycmVkIG1vZGUgY2FuCisgICAgICogICAgICAgICAgICAgICAgICAgIGNoYW5nZS4gSW5zdHJ1bWVudCBjbHVzdGVyIHN0aWxsIG5lZWRzIHRvIHNlbmQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZXZlbnQgd2l0aCBuZXcgbW9kZSB0byB0cmlnZ2VyIGFjdHVhbCBtb2RlIGNoYW5nZS4KKyAgICAgKiAgIGludDMyVmFsdWVzWzFdIDogVGhlIGN1cnJlbnQgYXBwIGNvbnRleHQgcmVsZXZhbnQgZm9yIGluc3RydW1lbnQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgY2x1c3Rlci4gVXNlIHRoZSBzYW1lIGZsYWcgd2l0aCBWZWhpY2xlQXVkaW9Gb2N1c0ZsYWcKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgYnV0IHRoaXMgY29udGV4dCByZXByZXNlbnRzIGFjdGl2ZSBhcHBzLCBub3QKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgYWN0aXZlIGF1ZGlvLiBJbnN0cnVtZW50IGNsdXN0ZXIgc2lkZSBtYXkgY2hhbmdlIG1vZGUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZGVwZW5kaW5nIG9uIHRoZSBjdXJyZW50bHkgYWN0aXZlIGNvbnRleHRzLgorICAgICAqICBXaGVuIHN5c3RlbSBib290cyB1cCwgQW5kcm9pZCBzaWRlIHdpbGwgd3JpdGUgezAsIDAsIDAsIDB9IHdoZW4gaXQgaXMKKyAgICAgKiAgcmVhZHkgdG8gcmVuZGVyIHRvIGluc3RydW1lbnQgY2x1c3Rlci4gQmVmb3JlIHRoaXMgbWVzc2FnZSwgcmVuZGVyaW5nCisgICAgICogIGZyb20gYW5kcm9pZCBtdXN0IG5vdCBiZSB2aXNpYmxlIGluIHRoZSBjbHVzdGVyLgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAY29uZmlnQXJyYXkgMDpWZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlIDE6aHcgdHlwZQorICAgICAqLworICAgIElOU1RSVU1FTlRfQ0xVU1RFUl9JTkZPID0gKAorICAgICAgICAweDBBMjAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyX1ZFQworICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IGRhdGUgYW5kIHRpbWUsIGVuY29kZWQgYXMgVW5peCB0aW1lLgorICAgICAqIFRoaXMgdmFsdWUgZGVub3RlcyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgdGhhdCBoYXZlIGVsYXBzZWQgc2luY2UKKyAgICAgKiAxLzEvMTk3MC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX1NFVAorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKiBAdW5pdCBWZWhpY2xlVW5pdDpTRUNTCisgICAgICovCisgICAgVU5JWF9USU1FID0gKAorICAgICAgICAweDBBMzAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDY0CisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEN1cnJlbnQgdGltZSBvbmx5LgorICAgICAqIFNvbWUgdmVoaWNsZXMgbWF5IG5vdCBrZWVwIHRyYWNrIG9mIGRhdGUuICBUaGlzIHByb3BlcnR5IG9ubHkgYWZmZWN0cworICAgICAqIHRoZSBjdXJyZW50IHRpbWUsIGluIHNlY29uZHMgZHVyaW5nIHRoZSBkYXkuICBUaHVzLCB0aGUgbWF4IHZhbHVlIGZvcgorICAgICAqIHRoaXMgcGFyYW1ldGVyIGlzIDg2LDQwMCAoMjQgKiA2MCAqIDYwKQorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fU0VUCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqIEB1bml0IFZlaGljbGVVbml0OlNFQ1MKKyAgICAgKi8KKyAgICBDVVJSRU5UX1RJTUVfSU5fU0VDT05EUyA9ICgKKyAgICAgICAgMHgwQTMxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBEb29yIHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGFuIGludGVnZXIgaW4gY2FzZSBhIGRvb3IgbWF5IGJlIHNldCB0byBhIHBhcnRpY3VsYXIgcG9zaXRpb24uCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBmdWxseSBvcGVuLCBtaW4gdmFsdWUgKDApIGluZGljYXRlcyBmdWxseSBjbG9zZWQuCisgICAgICoKKyAgICAgKiBTb21lIHZlaGljbGVzIChtaW5pdmFucykgY2FuIG9wZW4gdGhlIGRvb3IgZWxlY3Ryb25pY2FsbHkuICBIZW5jZSwgdGhlCisgICAgICogYWJpbGl0eSB0byB3cml0ZSB0aGlzIHByb3BlcnR5LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIERPT1JfUE9TID0gKAorICAgICAgICAweDBCMDAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6RE9PUiksCisKKyAgICAvKioKKyAgICAgKiBEb29yIG1vdmUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBET09SX01PVkUgPSAoCisgICAgICAgIDB4MEIwMQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpET09SKSwKKworICAgIC8qKgorICAgICAqIERvb3IgbG9jaworICAgICAqCisgICAgICogJ3RydWUnIGluZGljYXRlcyBkb29yIGlzIGxvY2tlZAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIERPT1JfTE9DSyA9ICgKKyAgICAgICAgMHgwQjAyCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6RE9PUiksCisKKyAgICAvKioKKyAgICAgKiBNaXJyb3IgWiBQb3NpdGlvbgorICAgICAqCisgICAgICogUG9zaXRpdmUgdmFsdWUgaW5kaWNhdGVzIHRpbHQgdXB3YXJkcywgbmVnYXRpdmUgdmFsdWUgaXMgZG93bndhcmRzCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgTUlSUk9SX1pfUE9TID0gKAorICAgICAgICAweDBCNDAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6TUlSUk9SKSwKKworICAgIC8qKgorICAgICAqIE1pcnJvciBaIE1vdmUKKyAgICAgKgorICAgICAqIFBvc2l0aXZlIHZhbHVlIGluZGljYXRlcyB0aWx0IHVwd2FyZHMsIG5lZ2F0aXZlIHZhbHVlIGlzIGRvd253YXJkcworICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIE1JUlJPUl9aX01PVkUgPSAoCisgICAgICAgIDB4MEI0MQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpNSVJST1IpLAorCisgICAgLyoqCisgICAgICogTWlycm9yIFkgUG9zaXRpb24KKyAgICAgKgorICAgICAqIFBvc2l0aXZlIHZhbHVlIGluZGljYXRlIHRpbHQgcmlnaHQsIG5lZ2F0aXZlIHZhbHVlIGlzIGxlZnQKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBNSVJST1JfWV9QT1MgPSAoCisgICAgICAgIDB4MEI0MgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpNSVJST1IpLAorCisgICAgLyoqCisgICAgICogTWlycm9yIFkgTW92ZQorICAgICAqCisgICAgICogUG9zaXRpdmUgdmFsdWUgaW5kaWNhdGUgdGlsdCByaWdodCwgbmVnYXRpdmUgdmFsdWUgaXMgbGVmdAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIE1JUlJPUl9ZX01PVkUgPSAoCisgICAgICAgIDB4MEI0MworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpNSVJST1IpLAorCisgICAgLyoqCisgICAgICogTWlycm9yIExvY2sKKyAgICAgKgorICAgICAqIFRydWUgaW5kaWNhdGVzIG1pcnJvciBwb3NpdGlvbnMgYXJlIGxvY2tlZCBhbmQgbm90IGNoYW5nZWFibGUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBNSVJST1JfTE9DSyA9ICgKKyAgICAgICAgMHgwQjQ0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIE1pcnJvciBGb2xkCisgICAgICoKKyAgICAgKiBUcnVlIGluZGljYXRlcyBtaXJyb3JzIGFyZSBmb2xkZWQKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBNSVJST1JfRk9MRCA9ICgKKyAgICAgICAgMHgwQjQ1CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgbWVtb3J5IHNlbGVjdAorICAgICAqCisgICAgICogVGhpcyBwYXJhbWV0ZXIgc2VsZWN0cyB0aGUgbWVtb3J5IHByZXNldCB0byB1c2UgdG8gc2VsZWN0IHRoZSBzZWF0CisgICAgICogcG9zaXRpb24uIFRoZSBtaW5WYWx1ZSBpcyBhbHdheXMgMCwgYW5kIHRoZSBtYXhWYWx1ZSBkZXRlcm1pbmVzIHRoZQorICAgICAqIG51bWJlciBvZiBzZWF0IHBvc2l0aW9ucyBhdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBGb3IgaW5zdGFuY2UsIGlmIHRoZSBkcml2ZXIncyBzZWF0IGhhcyAzIG1lbW9yeSBwcmVzZXRzLCB0aGUgbWF4VmFsdWUKKyAgICAgKiB3aWxsIGJlIDMuIFdoZW4gdGhlIHVzZXIgd2FudHMgdG8gc2VsZWN0IGEgcHJlc2V0LCB0aGUgZGVzaXJlZCBwcmVzZXQKKyAgICAgKiBudW1iZXIgKDEsIDIsIG9yIDMpIGlzIHNldC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOldSSVRFCisgICAgICovCisgICAgU0VBVF9NRU1PUllfU0VMRUNUID0gKAorICAgICAgICAweDBCODAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IG1lbW9yeSBzZXQKKyAgICAgKgorICAgICAqIFRoaXMgc2V0dGluZyBhbGxvd3MgdGhlIHVzZXIgdG8gc2F2ZSB0aGUgY3VycmVudCBzZWF0IHBvc2l0aW9uIHNldHRpbmdzCisgICAgICogaW50byB0aGUgc2VsZWN0ZWQgcHJlc2V0IHNsb3QuICBUaGUgbWF4VmFsdWUgZm9yIGVhY2ggc2VhdCBwb3NpdGlvbgorICAgICAqIHNoYWxsIG1hdGNoIHRoZSBtYXhWYWx1ZSBmb3IgU0VBVF9NRU1PUllfU0VMRUNULgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6V1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX01FTU9SWV9TRVQgPSAoCisgICAgICAgIDB4MEI4MQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXRiZWx0IGJ1Y2tsZWQKKyAgICAgKgorICAgICAqIFRydWUgaW5kaWNhdGVzIGJlbHQgaXMgYnVja2xlZC4KKyAgICAgKgorICAgICAqIFdyaXRlIGFjY2VzcyBpbmRpY2F0ZXMgYXV0b21hdGljIHNlYXQgYnVja2xpbmcgY2FwYWJpbGl0aWVzLiAgVGhlcmUgYXJlCisgICAgICogbm8ga25vd24gY2FycyBhdCB0aGlzIHRpbWUsIGJ1dCB5b3UgbmV2ZXIga25vdy4uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfQkVMVF9CVUNLTEVEID0gKAorICAgICAgICAweDBCODIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkJPT0xFQU4KKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXRiZWx0IGhlaWdodCBwb3NpdGlvbgorICAgICAqCisgICAgICogQWRqdXN0cyB0aGUgc2hvdWxkZXIgYmVsdCBhbmNob3IgcG9pbnQuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBoaWdoZXN0IHBvc2l0aW9uCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBsb3dlc3QgcG9zaXRpb24KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0JFTFRfSEVJR0hUX1BPUyA9ICgKKyAgICAgICAgMHgwQjgzCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdGJlbHQgaGVpZ2h0IG1vdmUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0JFTFRfSEVJR0hUX01PVkUgPSAoCisgICAgICAgIDB4MEI4NAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgZm9yZS9hZnQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFNldHMgdGhlIHNlYXQgcG9zaXRpb24gZm9yd2FyZCAoY2xvc2VyIHRvIHN0ZWVyaW5nIHdoZWVsKSBhbmQgYmFja3dhcmRzLgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgY2xvc2VzdCB0byB3aGVlbCwgbWluIHZhbHVlIGluZGljYXRlcyBtb3N0IHJlYXJ3YXJkCisgICAgICogcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9GT1JFX0FGVF9QT1MgPSAoCisgICAgICAgIDB4MEI4NQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgZm9yZS9hZnQgbW92ZQorICAgICAqCisgICAgICogTW92ZXMgdGhlIHNlYXQgcG9zaXRpb24gZm9yd2FyZCBhbmQgYWZ0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfRk9SRV9BRlRfTU9WRSA9ICgKKyAgICAgICAgMHgwQjg2CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBiYWNrcmVzdCBhbmdsZSAxIHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBCYWNrcmVzdCBhbmdsZSAxIGlzIHRoZSBhY3R1YXRvciBjbG9zZXN0IHRvIHRoZSBib3R0b20gb2YgdGhlIHNlYXQuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBhbmdsaW5nIGZvcndhcmQgdG93YXJkcyB0aGUgc3RlZXJpbmcgd2hlZWwuCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBmdWxsIHJlY2xpbmUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9CQUNLUkVTVF9BTkdMRV8xX1BPUyA9ICgKKyAgICAgICAgMHgwQjg3CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBiYWNrcmVzdCBhbmdsZSAxIG1vdmUKKyAgICAgKgorICAgICAqIE1vdmVzIHRoZSBiYWNrcmVzdCBmb3J3YXJkIG9yIHJlY2xpbmUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9CQUNLUkVTVF9BTkdMRV8xX01PVkUgPSAoCisgICAgICAgIDB4MEI4OAorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgYmFja3Jlc3QgYW5nbGUgMiBwb3NpdGlvbgorICAgICAqCisgICAgICogQmFja3Jlc3QgYW5nbGUgMiBpcyB0aGUgbmV4dCBhY3R1YXRvciB1cCBmcm9tIHRoZSBib3R0b20gb2YgdGhlIHNlYXQuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBhbmdsaW5nIGZvcndhcmQgdG93YXJkcyB0aGUgc3RlZXJpbmcgd2hlZWwuCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBmdWxsIHJlY2xpbmUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9CQUNLUkVTVF9BTkdMRV8yX1BPUyA9ICgKKyAgICAgICAgMHgwQjg5CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBiYWNrcmVzdCBhbmdsZSAyIG1vdmUKKyAgICAgKgorICAgICAqIE1vdmVzIHRoZSBiYWNrcmVzdCBmb3J3YXJkIG9yIHJlY2xpbmUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9CQUNLUkVTVF9BTkdMRV8yX01PVkUgPSAoCisgICAgICAgIDB4MEI4QQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFNlYXQgaGVpZ2h0IHBvc2l0aW9uCisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBzZWF0IGhlaWdodC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIGhpZ2hlc3QgcG9zaXRpb24uCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBsb3dlc3QgcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUlHSFRfUE9TID0gKAorICAgICAgICAweDBCOEIKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IGhlaWdodCBtb3ZlCisgICAgICoKKyAgICAgKiBNb3ZlcyB0aGUgc2VhdCBoZWlnaHQuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUlHSFRfTU9WRSA9ICgKKyAgICAgICAgMHgwQjhDCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCBkZXB0aCBwb3NpdGlvbgorICAgICAqCisgICAgICogU2V0cyB0aGUgc2VhdCBkZXB0aCwgZGlzdGFuY2UgZnJvbSBiYWNrIHJlc3QgdG8gZnJvbnQgZWRnZSBvZiBzZWF0LgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgbG9uZ2VzdCBkZXB0aCBwb3NpdGlvbi4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIHNob3J0ZXN0IHBvc2l0aW9uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfREVQVEhfUE9TID0gKAorICAgICAgICAweDBCOEQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IGRlcHRoIG1vdmUKKyAgICAgKgorICAgICAqIEFkanVzdHMgdGhlIHNlYXQgZGVwdGguCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9ERVBUSF9NT1ZFID0gKAorICAgICAgICAweDBCOEUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBTZWF0IHRpbHQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFNldHMgdGhlIHNlYXQgdGlsdC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIGZyb250IGVkZ2Ugb2Ygc2VhdCBoaWdoZXIgdGhhbiBiYWNrIGVkZ2UuCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBmcm9udCBlZGdlIG9mIHNlYXQgbG93ZXIgdGhhbiBiYWNrIGVkZ2UuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9USUxUX1BPUyA9ICgKKyAgICAgICAgMHgwQjhGCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogU2VhdCB0aWx0IG1vdmUKKyAgICAgKgorICAgICAqIFRpbHRzIHRoZSBzZWF0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfVElMVF9NT1ZFID0gKAorICAgICAgICAweDBCOTAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBMdW1iZXIgZm9yZS9hZnQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFB1c2hlcyB0aGUgbHVtYmFyIHN1cHBvcnQgZm9yd2FyZCBhbmQgYmFja3dhcmRzCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBtb3N0IGZvcndhcmQgcG9zaXRpb24uCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyBtb3N0IHJlYXJ3YXJkIHBvc2l0aW9uLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfTFVNQkFSX0ZPUkVfQUZUX1BPUyA9ICgKKyAgICAgICAgMHgwQjkxCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogTHVtYmFyIGZvcmUvYWZ0IG1vdmUKKyAgICAgKgorICAgICAqIEFkanVzdHMgdGhlIGx1bWJhciBzdXBwb3J0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfTFVNQkFSX0ZPUkVfQUZUX01PVkUgPSAoCisgICAgICAgIDB4MEI5MgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIEx1bWJhciBzaWRlIHN1cHBvcnQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFNldHMgdGhlIGFtb3VudCBvZiBsYXRlcmFsIGx1bWJhciBzdXBwb3J0LgorICAgICAqIE1heCB2YWx1ZSBpbmRpY2F0ZXMgd2lkZXN0IGx1bWJhciBzZXR0aW5nIChpLmUuIGxlYXN0IHN1cHBvcnQpCisgICAgICogTWluIHZhbHVlIGluZGljYXRlcyB0aGlubmVzdCBsdW1iYXIgc2V0dGluZy4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0xVTUJBUl9TSURFX1NVUFBPUlRfUE9TID0gKAorICAgICAgICAweDBCOTMKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBMdW1iYXIgc2lkZSBzdXBwb3J0IG1vdmUKKyAgICAgKgorICAgICAqIEFkanVzdHMgdGhlIGFtb3VudCBvZiBsYXRlcmFsIGx1bWJhciBzdXBwb3J0LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfTFVNQkFSX1NJREVfU1VQUE9SVF9NT1ZFID0gKAorICAgICAgICAweDBCOTQKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6U0VBVCksCisKKyAgICAvKioKKyAgICAgKiBIZWFkcmVzdCBoZWlnaHQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFNldHMgdGhlIGhlYWRyZXN0IGhlaWdodC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIHRhbGxlc3Qgc2V0dGluZy4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIHNob3J0ZXN0IHNldHRpbmcuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUFEUkVTVF9IRUlHSFRfUE9TID0gKAorICAgICAgICAweDBCOTUKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIEhlYWRyZXN0IGhlaWdodCBtb3ZlCisgICAgICoKKyAgICAgKiBNb3ZlcyB0aGUgaGVhZHJlc3QgdXAgYW5kIGRvd24uCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUFEUkVTVF9IRUlHSFRfTU9WRSA9ICgKKyAgICAgICAgMHgwQjk2CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogSGVhZHJlc3QgYW5nbGUgcG9zaXRpb24KKyAgICAgKgorICAgICAqIFNldHMgdGhlIGFuZ2xlIG9mIHRoZSBoZWFkcmVzdC4KKyAgICAgKiBNYXggdmFsdWUgaW5kaWNhdGVzIG1vc3QgdXByaWdodCBhbmdsZS4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIHNoYWxsb3dlc3QgaGVhZHJlc3QgYW5nbGUuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUFEUkVTVF9BTkdMRV9QT1MgPSAoCisgICAgICAgIDB4MEI5NworICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIEhlYWRyZXN0IGFuZ2xlIG1vdmUKKyAgICAgKgorICAgICAqIEFkanVzdHMgdGhlIGFuZ2xlIG9mIHRoZSBoZWFkcmVzdAorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFNFQVRfSEVBRFJFU1RfQU5HTEVfTU9WRSA9ICgKKyAgICAgICAgMHgwQjk4CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOlNFQVQpLAorCisgICAgLyoqCisgICAgICogSGVhZHJlc3QgZm9yZS9hZnQgcG9zaXRpb24KKyAgICAgKgorICAgICAqIEFkanVzdHMgdGhlIGhlYWRyZXN0IGZvcndhcmRzIGFuZCBiYWNrd2FyZHMuCisgICAgICogTWF4IHZhbHVlIGluZGljYXRlcyBwb3NpdGlvbiBjbG9zZXN0IHRvIGZyb250IG9mIGNhci4KKyAgICAgKiBNaW4gdmFsdWUgaW5kaWNhdGVzIHBvc2l0aW9uIGNsb3Nlc3QgdG8gcmVhciBvZiBjYXIuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgU0VBVF9IRUFEUkVTVF9GT1JFX0FGVF9QT1MgPSAoCisgICAgICAgIDB4MEI5OQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIEhlYWRyZXN0IGZvcmUvYWZ0IG1vdmUKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBTRUFUX0hFQURSRVNUX0ZPUkVfQUZUX01PVkUgPSAoCisgICAgICAgIDB4MEI5QQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpTRUFUKSwKKworICAgIC8qKgorICAgICAqIFdpbmRvdyBQb3NpdGlvbgorICAgICAqCisgICAgICogTWF4ID0gd2luZG93IHVwIC8gY2xvc2VkCisgICAgICogTWluID0gd2luZG93IGRvd24gLyBvcGVuCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgV0lORE9XX1BPUyA9ICgKKyAgICAgICAgMHgwQkMwCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBXaW5kb3cgTW92ZQorICAgICAqCisgICAgICogTWF4ID0gd2luZG93IHVwIC8gY2xvc2VkCisgICAgICogTWluID0gd2luZG93IGRvd24gLyBvcGVuCisgICAgICogTWFnbml0dWRlIGRlbm90ZXMgcmVsYXRpdmUgc3BlZWQuICBJLmUuICsyIGlzIGZhc3RlciB0aGFuICsxIGluIHJhaXNpbmcKKyAgICAgKiB0aGUgd2luZG93LgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRF9XUklURQorICAgICAqLworICAgIFdJTkRPV19NT1ZFID0gKAorICAgICAgICAweDBCQzEKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOklOVDMyCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIFdpbmRvdyBWZW50IFBvc2l0aW9uCisgICAgICoKKyAgICAgKiBUaGlzIGZlYXR1cmUgaXMgdXNlZCB0byBjb250cm9sIHRoZSB2ZW50IGZlYXR1cmUgb24gYSBzdW5yb29mLgorICAgICAqCisgICAgICogTWF4ID0gdmVudCBvcGVuCisgICAgICogTWluID0gdmVudCBjbG9zZWQKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBXSU5ET1dfVkVOVF9QT1MgPSAoCisgICAgICAgIDB4MEJDMgorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eUdyb3VwOlNZU1RFTQorICAgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6SU5UMzIKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogV2luZG93IFZlbnQgTW92ZQorICAgICAqCisgICAgICogVGhpcyBmZWF0dXJlIGlzIHVzZWQgdG8gY29udHJvbCB0aGUgdmVudCBmZWF0dXJlIG9uIGEgc3Vucm9vZi4KKyAgICAgKgorICAgICAqIE1heCA9IHZlbnQgb3BlbgorICAgICAqIE1pbiA9IHZlbnQgY2xvc2VkCisgICAgICoKKyAgICAgKiBAY2hhbmdlX21vZGUgVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpPTl9DSEFOR0UKKyAgICAgKiBAYWNjZXNzIFZlaGljbGVQcm9wZXJ0eUFjY2VzczpSRUFEX1dSSVRFCisgICAgICovCisgICAgV0lORE9XX1ZFTlRfTU9WRSA9ICgKKyAgICAgICAgMHgwQkMzCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpJTlQzMgorICAgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBXaW5kb3cgTG9jaworICAgICAqCisgICAgICogVHJ1ZSBpbmRpY2F0ZXMgd2luZG93cyBhcmUgbG9ja2VkIGFuZCBjYW4ndCBiZSBtb3ZlZC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBXSU5ET1dfTE9DSyA9ICgKKyAgICAgICAgMHgwQkM0CisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpCT09MRUFOCisgICAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKK307CisKKy8qKgorICogQml0IGZsYWdzIGZvciBmYW4gZGlyZWN0aW9uCisgKi8KK2VudW0gVmVoaWNsZUh2YWNGYW5EaXJlY3Rpb24gOiBpbnQzMl90IHsKKyAgRkFDRSA9IDB4MSwKKyAgRkxPT1IgPSAweDIsCisgIEZBQ0VfQU5EX0ZMT09SID0gMHgzLAorICBERUZST1NUID0gMHg0LAorICBERUZST1NUX0FORF9GTE9PUiA9IDB4NSwKK307CisKKy8qKgorICogQ29uc3RhbnRzIHJlbGV2YW50IHRvIHJhZGlvLgorICovCitlbnVtIFZlaGljbGVSYWRpb0NvbnN0YW50cyA6IGludDMyX3QgeworICAvKiogTWluaW11bSB2YWx1ZSBmb3IgdGhlIHJhZGlvIHByZXNldCAqLworICBWRUhJQ0xFX1JBRElPX1BSRVNFVF9NSU5fVkFMVUUgPSAxLAorfTsKKworZW51bSBWZWhpY2xlQXVkaW9Gb2N1c1JlcXVlc3QgOiBpbnQzMl90IHsKKyAgUkVRVUVTVF9HQUlOID0gMHgxLAorICBSRVFVRVNUX0dBSU5fVFJBTlNJRU5UID0gMHgyLAorICBSRVFVRVNUX0dBSU5fVFJBTlNJRU5UX01BWV9EVUNLID0gMHgzLAorICAvKioKKyAgICogVGhpcyBpcyBmb3IgdGhlIGNhc2Ugd2hlcmUgYW5kcm9pZCBzaWRlIHBsYXlzIHNvdW5kIGxpa2UgVUkgZmVlZGJhY2sKKyAgICogYW5kIGNhciBzaWRlIGRvZXMgbm90IG5lZWQgdG8gZHVjayBleGlzdGluZyBwbGF5YmFjayBhcyBsb25nIGFzCisgICAqIHJlcXVlc3RlZCBzdHJlYW0gaXMgYXZhaWxhYmxlLgorICAgKi8KKyAgUkVRVUVTVF9HQUlOX1RSQU5TSUVOVF9OT19EVUNLID0gMHg0LAorICBSRVFVRVNUX1JFTEVBU0UgPSAweDUsCisKK307CisKK2VudW0gVmVoaWNsZUF1ZGlvRm9jdXNTdGF0ZSA6IGludDMyX3QgeworICAvKioKKyAgICogQW5kcm9pZCBzaWRlIGhhcyBwZXJtYW5lbnQgZm9jdXMgYW5kIGNhbiBwbGF5IGFsbG93ZWQgc3RyZWFtcy4KKyAgICovCisgIFNUQVRFX0dBSU4gPSAweDEsCisKKyAgLyoqCisgICAqIEFuZHJvaWQgc2lkZSBoYXMgdHJhbnNpZW50IGZvY3VzIGFuZCBjYW4gcGxheSBhbGxvd2VkIHN0cmVhbXMuCisgICAqLworICBTVEFURV9HQUlOX1RSQU5TSUVOVCA9IDB4MiwKKworICAvKioKKyAgICogQ2FyIGF1ZGlvIG1vZHVsZSBpcyBwbGF5aW5nIGd1aWRhbmNlIGtpbmQgb2Ygc291bmQgb3V0c2lkZSBBbmRyb2lkLgorICAgKiBBbmRyb2lkIHNpZGUgY2FuIHN0aWxsIHBsYXkgdGhyb3VnaCBhbGxvd2VkIHN0cmVhbXMgd2l0aCBkdWNraW5nLgorICAgKi8KKyAgU1RBVEVfTE9TU19UUkFOU0lFTlRfQ0FOX0RVQ0sgPSAweDMsCisKKyAgLyoqCisgICAqIENhciBhdWRpbyBtb2R1bGUgaXMgcGxheWluZyB0cmFuc2llbnQgc291bmQgb3V0c2lkZSBBbmRyb2lkLiBBbmRyb2lkIHNpZGUKKyAgICogbXVzdCBzdG9wIHBsYXlpbmcgYW55IHNvdW5kcy4KKyAgICovCisgIFNUQVRFX0xPU1NfVFJBTlNJRU5UID0gMHg0LAorCisgIC8qKgorICAgKiBBbmRyb2lkIHNpZGUgaGFzIGxvc3QgZm9jdXMgYW5kIGNhbm5vdCBwbGF5IGFueSBzb3VuZC4KKyAgICovCisgIFNUQVRFX0xPU1MgPSAweDUsCisKKyAgLyoqCisgICAqIGNhciBhdWRpbyBtb2R1bGUgaXMgcGxheWluZyBzYWZldHkgY3JpdGljYWwgc291bmQsIGFuZCBBbmRyb2lkIHNpZGUgY2Fubm90CisgICAqIHJlcXVlc3QgZm9jdXMgdW50aWwgdGhlIGN1cnJlbnQgc3RhdGUgaXMgZmluaXNoZWQuIGNhciBhdWRpbyBtb2R1bGUKKyAgICogcmVzdG9yZSBpdCB0byB0aGUgcHJldmlvdXMgc3RhdGUgd2hlbiBpdCBjYW4gYWxsb3cgQW5kcm9pZCB0byBwbGF5LgorICAgKi8KKyAgU1RBVEVfTE9TU19UUkFOU0lFTlRfRVhMQ1VTSVZFID0gMHg2LAorCit9OworCisvKioKKyAqIEZsYWdzIHRvIHJlcHJlc2VudCBtdWx0aXBsZSBzdHJlYW1zIGJ5IGNvbWJpbmluZyB0aGVzZS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9TdHJlYW1GbGFnIDogaW50MzJfdCB7CisgIFNUUkVBTTBfRkxBRyA9ICgweDEgPDwgMCksCisgIFNUUkVBTTFfRkxBRyA9ICgweDEgPDwgMSksCisgIFNUUkVBTTJfRkxBRyA9ICgweDEgPDwgMiksCit9OworCisvKioKKyAqIFJlcHJlc2VudHMgc3RyZWFtIG51bWJlciAoYWx3YXlzIDAgdG8gTiAtMSB3aGVyZSBOIGlzIG1heCBudW1iZXIgb2Ygc3RyZWFtcykuCisgKiBDYW4gYmUgdXNlZCBmb3IgYXVkaW8gcmVsYXRlZCBwcm9wZXJ0eSBleHBlY3Rpbmcgb25lIHN0cmVhbS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9TdHJlYW0gOiBpbnQzMl90IHsKKyAgU1RSRUFNMCA9IDAsCisgIFNUUkVBTTEgPSAxLAorfTsKKworLyoqCisgKiBGbGFnIHRvIHJlcHJlc2VudCBleHRlcm5hbCBmb2N1cyBzdGF0ZSAob3V0c2lkZSBBbmRyb2lkKS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9FeHRGb2N1c0ZsYWcgOiBpbnQzMl90IHsKKyAgLyoqCisgICAqIE5vIGV4dGVybmFsIGZvY3VzIGhvbGRlci4KKyAgICovCisgIE5PTkVfRkxBRyA9IDB4MCwKKworICAvKioKKyAgICogQ2FyIHNpZGUgKG91dHNpZGUgQW5kcm9pZCkgaGFzIGNvbXBvbmVudCBob2xkaW5nIEdBSU4ga2luZCBvZiBmb2N1cyBzdGF0ZS4KKyAgICovCisgIFBFUk1BTkVOVF9GTEFHID0gMHgxLAorCisgIC8qKgorICAgKiBDYXIgc2lkZSAob3V0c2lkZSBBbmRyb2lkKSBoYXMgY29tcG9uZW50IGhvbGRpbmcgR0FJTl9UUkFOU0lFTlQga2luZCBvZgorICAgKiBmb2N1cyBzdGF0ZS4KKyAgICovCisgIFRSQU5TSUVOVF9GTEFHID0gMHgyLAorCisgIC8qKgorICAgKiBDYXIgc2lkZSBpcyBleHBlY3RlZCB0byBwbGF5IHNvbWV0aGluZyB3aGlsZSBmb2N1cyBpcyBoZWxkIGJ5IEFuZHJvaWQgc2lkZS4KKyAgICogT25lIGV4YW1wbGUgY2FuIGJlIHJhZGlvIGF0dGFjaGVkIGluIGNhciBzaWRlLiBCdXQgQW5kcm9pZCdzIHJhZGlvIGFwcAorICAgKiBzdGlsbCBtdXN0IGhhdmUgZm9jdXMsIGFuZCBBbmRyb2lkIHNpZGUgbXVzdCBiZSBpbiBHQUlOIHN0YXRlLCBidXQKKyAgICogbWVkaWEgc3RyZWFtIHdpbGwgbm90IGJlIGFsbG9jYXRlZCB0byBBbmRyb2lkIHNpZGUgYW5kIGNhciBzaWRlIGNhbiBwbGF5CisgICAqIHJhZGlvIGFueSB0aW1lIHdoaWxlIHRoaXMgZmxhZyBpcyBhY3RpdmUuCisgICAqLworICBQTEFZX09OTFlfRkxBRyA9IDB4NCwKKworICAvKioKKyAgICogQ2FyIHNpZGUgbXVzdCBtdXRlIGFueSBtZWRpYSBpbmNsdWRpbmcgcmFkaW8uIFRoaXMgY2FuIGJlIHVzZWQgd2l0aCBhbnkKKyAgICogZm9jdXMgcmVxdWVzdCBpbmNsdWRpbmcgR0FJTiogYW5kIFJFTEVBU0UuCisgICAqLworICBNVVRFX01FRElBX0ZMQUcgPSAweDgsCit9OworCisvKioKKyAqIEluZGV4IGluIGludDMyVmFsdWVzIGZvciBWZWhpY2xlUHJvcGVydHkjQVVESU9fRk9DVVMgcHJvcGVydHkuCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvRm9jdXNJbmRleCA6IGludDMyX3QgeworICBGT0NVUyA9IDAsCisgIFNUUkVBTVMgPSAxLAorICBFWFRFUk5BTF9GT0NVU19TVEFURSA9IDIsCisgIEFVRElPX0NPTlRFWFRTID0gMywKK307CisKKy8qKgorICogRmxhZ3MgdG8gdGVsbCB0aGUgY3VycmVudCBhdWRpbyBjb250ZXh0LgorICovCitlbnVtIFZlaGljbGVBdWRpb0NvbnRleHRGbGFnIDogaW50MzJfdCB7CisgIC8qKiBNdXNpYyBwbGF5YmFjayBpcyBjdXJyZW50bHkgYWN0aXZlLiAqLworICBNVVNJQ19GTEFHID0gMHgxLAorCisgIC8qKiBOYXZpZ2F0aW9uIGlzIGN1cnJlbnRseSBydW5uaW5nLiAqLworICBOQVZJR0FUSU9OX0ZMQUcgPSAweDIsCisKKyAgLyoqIFZvaWNlIGNvbW1hbmQgc2Vzc2lvbiBpcyBjdXJyZW50bHkgcnVubmluZy4gKi8KKyAgVk9JQ0VfQ09NTUFORF9GTEFHID0gMHg0LAorCisgIC8qKiBWb2ljZSBjYWxsIGlzIGN1cnJlbnRseSBhY3RpdmUuICovCisgIENBTExfRkxBRyA9IDB4OCwKKworICAvKioKKyAgICogQWxhcm0gaXMgYWN0aXZlLgorICAgKiBUaGlzIG11c3QgYmUgb25seSB1c2VkIGluIFZlaGljbGVQcm9wZXJ0eSNBVURJT19ST1VUSU5HX1BPTElDWS4KKyAgICovCisgIEFMQVJNX0ZMQUcgPSAweDEwLAorCisgIC8qKgorICAgKiBOb3RpZmljYXRpb24gc291bmQgaXMgYWN0aXZlLgorICAgKiBUaGlzIG11c3QgYmUgb25seSB1c2VkIGluIFZlaGljbGVQcm9wZXJ0eSNBVURJT19ST1VUSU5HX1BPTElDWS4KKyAgICovCisgIE5PVElGSUNBVElPTl9GTEFHID0gMHgyMCwKKworICAvKioKKyAgICogQ29udGV4dCB1bmtub3duLiBPbmx5IHVzZWQgZm9yIFZlaGljbGVQcm9wZXJ0eSNBVURJT19ST1VUSU5HX1BPTElDWSB0bworICAgKiByZXByZXNlbnQgZGVmYXVsdCBzdHJlYW0gZm9yIHVua25vd24gY29udGVudHMuCisgICAqLworICBVTktOT1dOX0ZMQUcgPSAweDQwLAorCisgIC8qKiBTYWZldHkgYWxlcnQgLyB3YXJuaW5nIGlzIHBsYXllZC4gKi8KKyAgU0FGRVRZX0FMRVJUX0ZMQUcgPSAweDgwLAorCisgIC8qKiBDRCAvIERWRCBraW5kIG9mIGF1ZGlvIGlzIHBsYXllZCAqLworICBDRF9ST01fRkxBRyA9IDB4MTAwLAorCisgIC8qKiBBdXggYXVkaW8gaW5wdXQgaXMgcGxheWVkICovCisgIEFVWF9BVURJT19GTEFHID0gMHgyMDAsCisKKyAgLyoqIHN5c3RlbSBzb3VuZCBsaWtlIFVJIGZlZWRiYWNrICovCisgIFNZU1RFTV9TT1VORF9GTEFHID0gMHg0MDAsCisKKyAgLyoqIFJhZGlvIGlzIHBsYXllZCAqLworICBSQURJT19GTEFHID0gMHg4MDAsCisKKyAgLyoqIEV4dCBzb3VyY2UgaXMgcGxheWVkLiBUaGlzIGlzIGZvciB0YWdnaW5nIGdlbmVyaWMgZXh0IHNvdXJjZXMuICovCisgIEVYVF9TT1VSQ0VfRkxBRyA9IDB4MTAwMCwKK307CisKKy8qKgorICogZmxhZ3MgdG8gcmVwcmVzZW50IGNhcGFiaWxpdHkgb2YgYXVkaW8gdm9sdW1lIHByb3BlcnR5LgorICogdXNlZCBpbiBjb25maWdBcnJheVsxXSBvZiBWZWhpY2xlUHJvcENvbmZpZy4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9Wb2x1bWVDYXBhYmlsaXR5RmxhZyA6IGludDMyX3QgeworICAvKioKKyAgICogRXh0ZXJuYWwgYXVkaW8gbW9kdWxlIG9yIHZlaGljbGUgaGFsIGhhcyBwZXJzaXN0ZW50IHN0b3JhZ2UKKyAgICogdG8ga2VlcCB0aGUgdm9sdW1lIGxldmVsLiBUaGlzIG11c3QgYmUgc2V0IG9ubHkgd2hlbiBwZXIgY29udGV4dAorICAgKiB2b2x1bWUgbGV2ZWwgaXMgc3VwcG9ydGVkLiBXaGVuIHRoaXMgaXMgc2V0LCBhdWRpbyB2b2x1bWUgbGV2ZWwgcGVyCisgICAqIGVhY2ggY29udGV4dCB3aWxsIGJlIHJldHJpZXZlZCBmcm9tIHRoZSBwcm9wZXJ0eSB3aGVuIHN5c3RlbSBzdGFydHMgdXAuCisgICAqIEFuZCBleHRlcm5hbCBhdWRpbyBtb2R1bGUgaXMgYWxzbyBleHBlY3RlZCB0byBhZGp1c3Qgdm9sdW1lIGF1dG9tYXRpY2FsbHkKKyAgICogd2hlbmV2ZXIgdGhlcmUgaXMgYW4gYXVkaW8gY29udGV4dCBjaGFuZ2UuCisgICAqIFdoZW4gdGhpcyBmbGFnIGlzIG5vdCBzZXQsIGFuZHJvaWQgc2lkZSB3aWxsIGFzc3VtZSB0aGF0IHRoZXJlIGlzIG5vCisgICAqIHBlcnNpc3RlbnQgc3RvcmFnZSBhbmQgc3RvcmVkIHZhbHVlIGluIGFuZHJvaWQgc2lkZSB3aWxsIGJlIHVzZWQgdG8KKyAgICogaW5pdGlhbGl6ZSB0aGUgdm9sdW1lIGxldmVsLiBBbmQgYW5kcm9pZCBzaWRlIHdpbGwgc2V0IHZvbHVtZSBsZXZlbAorICAgKiBvZiBlYWNoIHBoeXNpY2FsIHN0cmVhbXMgd2hlbmV2ZXIgdGhlcmUgaXMgYW4gYXVkaW8gY29udGV4dCBjaGFuZ2UuCisgICAqLworICBQRVJTSVNURU5UX1NUT1JBR0UgPSAweDEsCisKKyAgLyoqCisgICAqIFdoZW4gdGhpcyBmbGFnIGlzIHNldCwgdGhlIEgvVyBjYW4gc3VwcG9ydCBvbmx5IHNpbmdsZSBtYXN0ZXIgdm9sdW1lIGZvcgorICAgKiBhbGwgc3RyZWFtcy4KKyAgICogVGhlcmUgaXMgbm8gd2F5IHRvIHNldCB2b2x1bWUgbGV2ZWwgZGlmZmVyZW50bHkgcGVyIGVhY2ggc3RyZWFtIG9yIGNvbnRleHQuCisgICAqLworICBNQVNURVJfVk9MVU1FX09OTFkgPSAweDIsCit9OworCisvKioKKyAqIGVudW0gdG8gcmVwcmVzZW50IGF1ZGlvIHZvbHVtZSBzdGF0ZS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9Wb2x1bWVTdGF0ZSA6IGludDMyX3QgeworICBTVEFURV9PSyA9IDAsCisKKyAgLyoqCisgICAqIEF1ZGlvIHZvbHVtZSBoYXMgcmVhY2hlZCB2b2x1bWUgbGltaXQgc2V0IGluCisgICAqIFZlaGljbGVQcm9wZXJ0eSNBVURJT19WT0xVTUVfTElNSVQgYW5kIHVzZXIncyByZXF1ZXN0IHRvIGluY3JlYXNlIHZvbHVtZQorICAgKiBmdXJ0aGVyIGlzIG5vdCBhbGxvd2VkLgorICAgKi8KKyAgTElNSVRfUkVBQ0hFRCA9IDEsCit9OworCisvKioKKyAqIEluZGV4IGluIGludDMyVmFsdWVzIGZvciBWZWhpY2xlUHJvcGVydHkjQVVESU9fVk9MVU1FIHByb3BlcnR5LgorICovCitlbnVtIFZlaGljbGVBdWRpb1ZvbHVtZUluZGV4IDogaW50MzJfdCB7CisgIElOREVYX1NUUkVBTSA9IDAsCisgIElOREVYX1ZPTFVNRSA9IDEsCisgIElOREVYX1NUQVRFID0gMiwKK307CisKKy8qKgorICogSW5kZXggaW4gaW50MzJWYWx1ZXMgZm9yIFZlaGljbGVQcm9wZXJ0eSNBVURJT19WT0xVTUVfTElNSVQgcHJvcGVydHkuCisgKi8KK2VudW0gVmVoaWNsZUF1ZGlvVm9sdW1lTGltaXRJbmRleCA6IGludDMyX3QgeworICBTVFJFQU0gPSAwLAorICBNQVhfVk9MVU1FID0gMSwKK307CisKKy8qKgorICogSW5kZXggaW4gaW50MzJWYWx1ZXMgZm9yIFZlaGljbGVQcm9wZXJ0eSNBVURJT19ST1VUSU5HX1BPTElDWSBwcm9wZXJ0eS4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9Sb3V0aW5nUG9saWN5SW5kZXggOiBpbnQzMl90IHsKKyAgU1RSRUFNID0gMCwKKyAgQ09OVEVYVFMgPSAxLAorfTsKKworLyoqCisgKiBGbGFnIHRvIGJlIHVzZWQgaW4gVmVoaWNsZVByb3BDb25maWcjY29uZmlnRmxhZ3MgZm9yCisgKiBWZWhpY2xlUHJvcGVydHkjQVVESU9fSFdfVkFSSUFOVC4KKyAqLworZW51bSBWZWhpY2xlQXVkaW9Id1ZhcmlhbnRDb25maWdGbGFnIDogaW50MzJfdCB7CisgIC8qKgorICAgKiBGbGFnIHRvIHRlbGwgdGhhdCByYWRpbyBpcyBpbnRlcm5hbCB0byBhbmRyb2lkIGFuZCByYWRpbyBtdXN0CisgICAqIGJlIHRyZWF0ZWQgbGlrZSBvdGhlciBhbmRyb2lkIHN0cmVhbSBsaWtlIG1lZGlhLgorICAgKiBXaGVuIHRoaXMgZmxhZyBpcyBub3Qgc2V0IG9yIEFVRElPX0hXX1ZBUklBTlQgZG9lcyBub3QgZXhpc3QsCisgICAqIHJhZGlvIGlzIHRyZWF0ZWQgYXMgZXh0ZXJuYWwgbW9kdWxlLiBUaGlzIGJyaW5zIHNvbWUgZGVsdGEgaW4gYXVkaW8gZm9jdXMKKyAgICogaGFuZGxpbmcgYXMgd2VsbC4KKyAgICovCisgIElOVEVSTkFMX1JBRElPX0ZMQUcgPSAweDEsCit9OworCitlbnVtIFZlaGljbGVBcFBvd2VyU3RhdGVDb25maWdGbGFnIDogaW50MzJfdCAvKiBOT1RFOiB0eXBlIGlzIGd1ZXNzZWQgKi8geworICAvKioKKyAgICogQVAgY2FuIGVudGVyIGRlZXAgc2xlZXAgc3RhdGUuIElmIG5vdCBzZXQsIEFQIHdpbGwgYWx3YXlzIHNodXRkb3duIGZyb20KKyAgICogVmVoaWNsZUFwUG93ZXJTdGF0ZSNTSFVURE9XTl9QUkVQQVJFIHBvd2VyIHN0YXRlLgorICAgKi8KKyAgRU5BQkxFX0RFRVBfU0xFRVBfRkxBRyA9IDB4MSwKKworICAvKioKKyAgICogVGhlIHBvd2VyIGNvbnRyb2xsZXIgY2FuIHBvd2VyIG9uIEFQIGZyb20gb2ZmIHN0YXRlIGFmdGVyIHRpbWVvdXQKKyAgICogc3BlY2lmaWVkIGluIFZlaGljbGVBcFBvd2VyU2V0IFZFSElDTEVfQVBfUE9XRVJfU0VUX1NIVVRET1dOX1JFQURZIG1lc3NhZ2UuCisgICAqLworICBDT05GSUdfU1VQUE9SVF9USU1FUl9QT1dFUl9PTl9GTEFHID0gMHgyLAorfTsKKworZW51bSBWZWhpY2xlQXBQb3dlclN0YXRlIDogaW50MzJfdCAvKiBOT1RFOiB0eXBlIGlzIGd1ZXNzZWQgKi8geworICAvKiogdmVoaWNsZSBIQUwgd2lsbCBuZXZlciBwdWJsaXNoIHRoaXMgc3RhdGUgdG8gQVAgKi8KKyAgT0ZGID0gMCwKKworICAvKiogdmVoaWNsZSBIQUwgd2lsbCBuZXZlciBwdWJsaXNoIHRoaXMgc3RhdGUgdG8gQVAgKi8KKyAgREVFUF9TTEVFUCA9IDEsCisKKyAgLyoqIEFQIGlzIG9uIGJ1dCBkaXNwbGF5IG11c3QgYmUgb2ZmLiAqLworICBPTl9ESVNQX09GRiA9IDIsCisKKyAgLyoqIEFQIGlzIG9uIHdpdGggZGlzcGxheSBvbi4gVGhpcyBzdGF0ZSBhbGxvd3MgZnVsbCB1c2VyIGludGVyYWN0aW9uLiAqLworICBPTl9GVUxMID0gMywKKworICAvKioKKyAgICogVGhlIHBvd2VyIGNvbnRyb2xsZXIgaGFzIHJlcXVlc3RlZCBBUCB0byBzaHV0ZG93bi4gQVAgY2FuIGVpdGhlciBlbnRlcgorICAgKiBzbGVlcCBzdGF0ZSBvciBzdGFydCBmdWxsIHNodXRkb3duLiBBUCBjYW4gYWxzbyByZXF1ZXN0IHBvc3Rwb25pbmcKKyAgICogc2h1dGRvd24gYnkgc2VuZGluZyBWZWhpY2xlQXBQb3dlclNldFN0YXRlI1NIVVRET1dOX1BPU1RQT05FIG1lc3NhZ2UuIFRoZQorICAgKiBwb3dlciBjb250cm9sbGVyIG11c3QgY2hhbmdlIHBvd2VyIHN0YXRlIHRvIHRoaXMgc3RhdGUgdG8gc2h1dGRvd24KKyAgICogc3lzdGVtLgorICAgKgorICAgKiBpbnQzMlZhbHVlc1sxXSA6IG9uZSBvZiBlbnVtX3ZlaGljbGVfYXBfcG93ZXJfc3RhdGVfc2h1dGRvd25fcGFyYW1fdHlwZQorICAgKi8KKyAgU0hVVERPV05fUFJFUEFSRSA9IDQsCit9OworCitlbnVtIFZlaGljbGVBcFBvd2VyU3RhdGVTaHV0ZG93blBhcmFtIDogaW50MzJfdCB7CisgIC8qKiBBUCBtdXN0IHNodXRkb3duIGltbWVkaWF0ZWx5LiBQb3N0cG9uaW5nIGlzIG5vdCBhbGxvd2VkLiAqLworICBTSFVURE9XTl9JTU1FRElBVEVMWSA9IDEsCisKKyAgLyoqIEFQIGNhbiBlbnRlciBkZWVwIHNsZWVwIGluc3RlYWQgb2Ygc2h1dHRpbmcgZG93biBjb21wbGV0ZWx5LiAqLworICBDQU5fU0xFRVAgPSAyLAorCisgIC8qKiBBUCBjYW4gb25seSBzaHV0ZG93biB3aXRoIHBvc3Rwb25pbmcgYWxsb3dlZC4gKi8KKyAgU0hVVERPV05fT05MWSA9IDMsCit9OworCitlbnVtIFZlaGljbGVBcFBvd2VyU2V0U3RhdGUgOiBpbnQzMl90IC8qIE5PVEU6IHR5cGUgaXMgZ3Vlc3NlZCAqLyB7CisgIC8qKgorICAgKiBBUCBoYXMgZmluaXNoZWQgYm9vdCB1cCwgYW5kIGNhbiBzdGFydCBzaHV0ZG93biBpZiByZXF1ZXN0ZWQgYnkgcG93ZXIKKyAgICogY29udHJvbGxlci4KKyAgICovCisgIEJPT1RfQ09NUExFVEUgPSAweDEsCisKKyAgLyoqCisgICAqIEFQIGlzIGVudGVyaW5nIGRlZXAgc2xlZXAgc3RhdGUuIEhvdyB0aGlzIHN0YXRlIGlzIGltcGxlbWVudGVkIG1heSB2YXJ5CisgICAqIGRlcGVuZGluZyBvbiBlYWNoIEgvVywgYnV0IEFQJ3MgcG93ZXIgbXVzdCBiZSBrZXB0IGluIHRoaXMgc3RhdGUuCisgICAqLworICBERUVQX1NMRUVQX0VOVFJZID0gMHgyLAorCisgIC8qKgorICAgKiBBUCBpcyBleGl0aW5nIGZyb20gZGVlcCBzbGVlcCBzdGF0ZSwgYW5kIGlzIGluCisgICAqIFZlaGljbGVBcFBvd2VyU3RhdGUjU0hVVERPV05fUFJFUEFSRSBzdGF0ZS4KKyAgICogVGhlIHBvd2VyIGNvbnRyb2xsZXIgbWF5IGNoYW5nZSBzdGF0ZSB0byBvdGhlciBPTiBzdGF0ZXMgYmFzZWQgb24gdGhlCisgICAqIGN1cnJlbnQgc3RhdGUuCisgICAqLworICBERUVQX1NMRUVQX0VYSVQgPSAweDMsCisKKyAgLyoqCisgICAqIGludDMyVmFsdWVzWzFdOiBUaW1lIHRvIHBvc3Rwb25lIHNodXRkb3duIGluIG1zLiBNYXhpbXVtIHZhbHVlIGNhbiBiZQorICAgKiAgICAgICAgICAgICAgICAgNTAwMCBtcy4KKyAgICogICAgICAgICAgICAgICAgIElmIEFQIG5lZWRzIG1vcmUgdGltZSwgaXQgd2lsbCBzZW5kIGFub3RoZXIgUE9TVFBPTkUKKyAgICogICAgICAgICAgICAgICAgIG1lc3NhZ2UgYmVmb3JlIHRoZSBwcmV2aW91cyBvbmUgZXhwaXJlcy4KKyAgICovCisgIFNIVVRET1dOX1BPU1RQT05FID0gMHg0LAorCisgIC8qKgorICAgKiBBUCBpcyBzdGFydGluZyBzaHV0dGluZyBkb3duLiBXaGVuIHN5c3RlbSBjb21wbGV0ZXMgc2h1dGRvd24sIGV2ZXJ5dGhpbmcKKyAgICogd2lsbCBzdG9wIGluIEFQIGFzIGtlcm5lbCB3aWxsIHN0b3AgYWxsIG90aGVyIGNvbnRleHRzLiBJdCBpcworICAgKiByZXNwb25zaWJpbGl0eSBvZiB2ZWhpY2xlIEhBTCBvciBsb3dlciBsZXZlbCB0byBzeW5jaHJvbml6ZSB0aGF0IHN0YXRlCisgICAqIHdpdGggZXh0ZXJuYWwgcG93ZXIgY29udHJvbGxlci4gQXMgYW4gZXhhbXBsZSwgc29tZSBraW5kIG9mIHBpbmcKKyAgICogd2l0aCB0aW1lb3V0IGluIHBvd2VyIGNvbnRyb2xsZXIgY2FuIGJlIGEgc29sdXRpb24uCisgICAqCisgICAqIGludDMyVmFsdWVzWzFdOiBUaW1lIHRvIHR1cm4gb24gQVAgaW4gc2Vjcy4gUG93ZXIgY29udHJvbGxlciBtYXkgdHVybiBvbgorICAgKiAgICAgICAgICAgICAgICAgQVAgYWZ0ZXIgc3BlY2lmaWVkIHRpbWUgc28gdGhhdCBBUCBjYW4gcnVuIHRhc2tzIGxpa2UKKyAgICogICAgICAgICAgICAgICAgIHVwZGF0ZS4gSWYgaXQgaXMgc2V0IHRvIDAsIHRoZXJlIGlzIG5vIHdha2UgdXAsIGFuZCBwb3dlcgorICAgKiAgICAgICAgICAgICAgICAgY29udHJvbGxlciBtYXkgbm90IG5lY2Vzc2FyaWx5IHN1cHBvcnQgd2FrZS11cC4gSWYgcG93ZXIKKyAgICogICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIgdHVybnMgb24gQVAgZHVlIHRvIHRpbWVyLCBpdCBtdXN0IHN0YXJ0IHdpdGgKKyAgICogICAgICAgICAgICAgICAgIFZlaGljbGVBcFBvd2VyU3RhdGUjT05fRElTUF9PRkYgc3RhdGUsIGFuZCBhZnRlcgorICAgKiAgICAgICAgICAgICAgICAgcmVjZWl2aW5nIFZlaGljbGVBcFBvd2VyU2V0U3RhdGUjQk9PVF9DT01QTEVURSwgaXQgc2hhbGwKKyAgICogICAgICAgICAgICAgICAgIGRvIHN0YXRlIHRyYW5zaXRpb24gdG8KKyAgICogICAgICAgICAgICAgICAgIFZlaGljbGVBcFBvd2VyU3RhdGUjU0hVVERPV05fUFJFUEFSRS4KKyAgICovCisgIFNIVVRET1dOX1NUQVJUID0gMHg1LAorCisgIC8qKgorICAgKiBVc2VyIGhhcyByZXF1ZXN0ZWQgdG8gdHVybiBvZmYgaGVhZHVuaXQncyBkaXNwbGF5LCB3aGljaCBpcyBkZXRlY3RlZCBpbgorICAgKiBhbmRyb2lkIHNpZGUuCisgICAqIFRoZSBwb3dlciBjb250cm9sbGVyIG1heSBjaGFuZ2UgdGhlIHBvd2VyIHN0YXRlIHRvCisgICAqIFZlaGljbGVBcFBvd2VyU3RhdGUjT05fRElTUF9PRkYuCisgICAqLworICBESVNQTEFZX09GRiA9IDB4NiwKKworICAvKioKKyAgICogVXNlciBoYXMgcmVxdWVzdGVkIHRvIHR1cm4gb24gaGVhZHVuaXQncyBkaXNwbGF5LCBtb3N0IHByb2JhYmx5IGZyb20gcG93ZXIKKyAgICoga2V5IGlucHV0IHdoaWNoIGlzIGF0dGFjaGVkIHRvIGhlYWR1bml0LiBUaGUgcG93ZXIgY29udHJvbGxlciBtYXkgY2hhbmdlCisgICAqIHRoZSBwb3dlciBzdGF0ZSB0byBWZWhpY2xlQXBQb3dlclN0YXRlI09OX0ZVTEwuCisgICAqLworICBESVNQTEFZX09OID0gMHg3LAorfTsKKworLyoqCisgKiBJbmRleCBpbiBpbnQzMlZhbHVlcyBmb3IgVmVoaWNsZVByb3BlcnR5I0FQX1BPV0VSX1NUQVRFIHByb3BlcnR5LgorICovCitlbnVtIFZlaGljbGVBcFBvd2VyU3RhdGVJbmRleCA6IGludDMyX3QgeworICBTVEFURSA9IDAsCisgIEFERElUSU9OQUwgPSAxLAorfTsKKworLyoqCisgKiBFbnVtIHRvIHJlcHJlc2VudCBib290dXAgcmVhc29uLgorICovCitlbnVtIFZlaGljbGVBcFBvd2VyQm9vdHVwUmVhc29uIDogaW50MzJfdCB7CisgIC8qKgorICAgKiBQb3dlciBvbiBkdWUgdG8gdXNlcidzIHByZXNzaW5nIG9mIHBvd2VyIGtleSBvciByb3RhdGluZyBvZiBpZ25pdGlvbgorICAgKiBzd2l0Y2guCisgICAqLworICBVU0VSX1BPV0VSX09OID0gMCwKKworICAvKioKKyAgICogQXV0b21hdGljIHBvd2VyIG9uIHRyaWdnZXJlZCBieSBkb29yIHVubG9jayBvciBhbnkgb3RoZXIga2luZCBvZiBhdXRvbWF0aWMKKyAgICogdXNlciBkZXRlY3Rpb24uCisgICAqLworICBVU0VSX1VOTE9DSyA9IDEsCisKKyAgLyoqCisgICAqIEF1dG9tYXRpYyBwb3dlciBvbiB0cmlnZ2VyZWQgYnkgdGltZXIuIFRoaXMgb25seSBoYXBwZW5zIHdoZW4gQVAgaGFzIGFza2VkCisgICAqIHdha2UtdXAgYWZ0ZXIKKyAgICogY2VydGFpbiB0aW1lIHRocm91Z2ggdGltZSBzcGVjaWZpZWQgaW4KKyAgICogVmVoaWNsZUFwUG93ZXJTZXRTdGF0ZSNTSFVURE9XTl9TVEFSVC4KKyAgICovCisgIFRJTUVSID0gMiwKK307CisKK2VudW0gVmVoaWNsZUh3S2V5SW5wdXRBY3Rpb24gOiBpbnQzMl90IHsKKyAgLyoqIEtleSBkb3duICovCisgIEFDVElPTl9ET1dOID0gMCwKKworICAvKiogS2V5IHVwICovCisgIEFDVElPTl9VUCA9IDEsCit9OworCitlbnVtIFZlaGljbGVEaXNwbGF5IDogaW50MzJfdCB7CisgIC8qKiBjZW50ZXIgY29uc29sZSAqLworICBNQUlOID0gMCwKKworICBJTlNUUlVNRU5UX0NMVVNURVIgPSAxLAorfTsKKworLyoqCisgKiBSZXByZXNlbnRzIGluc3RydW1lbnQgY2x1c3RlciB0eXBlIGF2YWlsYWJsZSBpbiBzeXN0ZW0KKyAqLworZW51bSBWZWhpY2xlSW5zdHJ1bWVudENsdXN0ZXJUeXBlIDogaW50MzJfdCB7CisgIC8qKiBBbmRyb2lkIGhhcyBubyBhY2Nlc3MgdG8gaW5zdHVtZW50IGNsdXN0ZXIgKi8KKyAgTk9ORSA9IDAsCisKKyAgLyoqCisgICAqIEluc3RydW1lbnQgY2x1c3RlciBjYW4gY29tbXVuaWNhdGUgdGhyb3VnaCB2ZWhpY2xlIGhhbCB3aXRoIGFkZGl0aW9uYWwKKyAgICogcHJvcGVydGllcyB0byBleGNoYW5nZSBtZXRhLWRhdGEKKyAgICovCisgIEhBTF9JTlRFUkZBQ0UgPSAxLAorCisgIC8qKgorICAgKiBJbnN0cnVtZW50IGNsdXN0ZXIgaXMgZXh0ZXJuYWwgZGlzcGxheSB3aGVyZSBhbmRyb2lkIGNhbiByZW5kZXIgY29udGVudHMKKyAgICovCisgIEVYVEVSTkFMX0RJU1BMQVkgPSAyLAorfTsKKworLyoqCisgKiBVbml0cyB1c2VkIGZvciBpbnQgb3IgZmxvYXQgdHlwZSB3aXRoIG5vIGF0dGFjaGVkIGVudW0gdHlwZXMuCisgKi8KK2VudW0gVmVoaWNsZVVuaXQgOiBpbnQzMl90IHsKKyAgICBTSE9VTERfTk9UX1VTRSA9IDB4MDAwLAorCisgICAgTUVURVJfUEVSX1NFQyAgPSAweDAxLAorICAgIFJQTSAgICAgICAgICAgID0gMHgwMiwKKyAgICBIRVJUWiAgICAgICAgICA9IDB4MDMsCisgICAgUEVSQ0VOVElMRSAgICAgPSAweDEwLAorICAgIE1JTExJTUVURVIgICAgID0gMHgyMCwKKyAgICBNRVRFUiAgICAgICAgICA9IDB4MjEsCisgICAgS0lMT01FVEVSICAgICAgPSAweDIzLAorICAgIENFTFNJVVMgICAgICAgID0gMHgzMCwKKyAgICBGQUhSRU5IRUlUICAgICA9IDB4MzEsCisgICAgS0VMVklOICAgICAgICAgPSAweDMyLAorICAgIE1JTExJTElURVIgICAgID0gMHg0MCwKKyAgICBOQU5PX1NFQ1MgICAgICA9IDB4NTAsCisgICAgU0VDUyAgICAgICAgICAgPSAweDUzLAorICAgIFlFQVIgICAgICAgICAgID0gMHg1OSwKK307CisKKyAgLyoqCisgICAqIFRoaXMgZGVzY3JpYmVzIGhvdyB2YWx1ZSBvZiBwcm9wZXJ0eSBjYW4gY2hhbmdlLgorICAgKi8KK2VudW0gVmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZSA6IGludDMyX3QgeworICAvKioKKyAgICogUHJvcGVydHkgb2YgdGhpcyB0eXBlIG11c3QgbmV2ZXIgYmUgY2hhbmdlZC4gU3Vic2NyaXB0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKKyAgICogZm9yIHRoZXNlIHByb3BlcnRpZXMuCisgICAqLworICBTVEFUSUMgPSAweDAwLAorCisgIC8qKgorICAgKiBQcm9wZXJ0eSBvZiB0aGlzIHR5cGUgbXVzdCBiZSByZXBvcnRlZCB3aGVuIHRoZXJlIGlzIGEgY2hhbmdlLgorICAgKiBJVmVoaWNsZSNnZXQgY2FsbCBtdXN0IHJldHVybiB0aGUgY3VycmVudCB2YWx1ZS4KKyAgICogU2V0IG9wZXJhdGlvbiBmb3IgdGhpcyBwcm9wZXJ0eSBpcyBhc3N1bWVkIHRvIGJlIGFzeW5jaHJvbm91cy4gV2hlbiB0aGUKKyAgICogcHJvcGVydHkgaXMgcmVhZCAodXNpbmcgSVZlaGljbGUjZ2V0KSBhZnRlciBJVmVoaWNsZSNzZXQsIGl0IG1heSBzdGlsbAorICAgKiByZXR1cm4gb2xkIHZhbHVlIHVudGlsIHVuZGVybHlpbmcgSC9XIGJhY2tpbmcgdGhpcyBwcm9wZXJ0eSBoYXMgYWN0dWFsbHkKKyAgICogY2hhbmdlZCB0aGUgc3RhdGUuIE9uY2Ugc3RhdGUgaXMgY2hhbmdlZCwgdGhlIHByb3BlcnR5IG11c3QgZGlzcGF0Y2gKKyAgICogY2hhbmdlZCB2YWx1ZSBhcyBldmVudC4KKyAgICovCisgIE9OX0NIQU5HRSA9IDB4MDEsCisKKyAgLyoqCisgICAqIFByb3BlcnR5IG9mIHRoaXMgdHlwZSBjaGFuZ2UgY29udGludW91c2x5IGFuZCByZXF1aXJlcyBmaXhlZCByYXRlIG9mCisgICAqIHNhbXBsaW5nIHRvIHJldHJpZXZlIHRoZSBkYXRhLgorICAgKi8KKyAgQ09OVElOVU9VUyA9IDB4MDIsCisKKyAgLyoqCisgICAqIFByb3BlcnR5IG9mIHRoaXMgdHlwZSBtYXkgYmUgcG9sbGVkIHRvIGdldCB0aGUgY3VycmVudCB2YWx1ZS4KKyAgICovCisgIFBPTEwgPSAweDAzLAorCisgIC8qKgorICAgKiBUaGlzIGlzIGZvciBwcm9wZXJ0eSB3aGVyZSBjaGFuZ2UgZXZlbnQgbXVzdCBiZSBzZW50IG9ubHkgd2hlbiB0aGUKKyAgICogdmFsdWUgaXMgc2V0IGZyb20gZXh0ZXJuYWwgY29tcG9uZW50LiBOb3JtYWwgdmFsdWUgY2hhbmdlIG11c3Qgbm90IHRyaWdnZXIKKyAgICogZXZlbnQuIEZvciBleGFtcGxlLCBjbG9jayBwcm9wZXJ0eSBjYW4gc2VuZCBjaGFuZ2UgZXZlbnQgb25seSB3aGVuIGl0IGlzCisgICAqIHNldCwgb3V0c2lkZSBhbmRyb2lkLCBmb3IgY2FzZSBsaWtlIHVzZXIgc2V0dGluZyB0aW1lIG9yIHRpbWUgZ2V0dGluZworICAgKiB1cGRhdGUuIFRoZXJlIGlzIG5vIG5lZWQgdG8gc2VuZCBpdCBwZXIgZXZlcnkgdmFsdWUgY2hhbmdlLgorICAgKi8KKyAgT05fU0VUID0gMHgwNCwKK307CisKKy8qKgorICogUHJvcGVydHkgY29uZmlnIGRlZmluZXMgdGhlIGNhcGFiaWxpdGllcyBvZiBpdC4gVXNlciBvZiB0aGUgQVBJCisgKiBtdXN0IGZpcnN0IGdldCB0aGUgcHJvcGVydHkgY29uZmlnIHRvIHVuZGVyc3RhbmQgdGhlIG91dHB1dCBmcm9tIGdldCgpCisgKiBjb21tYW5kcyBhbmQgYWxzbyB0byBlbnN1cmUgdGhhdCBzZXQoKSBvciBldmVudHMgY29tbWFuZHMgYXJlIGluIHN5bmMgd2l0aAorICogdGhlIGV4cGVjdGVkIG91dHB1dC4KKyAqLworZW51bSBWZWhpY2xlUHJvcGVydHlBY2Nlc3MgOiBpbnQzMl90IHsKKyAgTk9ORSA9IDB4MDAsCisKKyAgUkVBRCA9IDB4MDEsCisgIFdSSVRFID0gMHgwMiwKKyAgUkVBRF9XUklURSA9IDB4MDMsCit9OworCisvKioKKyAqIENhciBzdGF0ZXMuCisgKgorICogVGhlIGRyaXZpbmcgc3RhdGVzIGRldGVybWluZSB3aGF0IGZlYXR1cmVzIG9mIHRoZSBVSSB3aWxsIGJlIGFjY2Vzc2libGUuCisgKi8KK2VudW0gVmVoaWNsZURyaXZpbmdTdGF0dXMgOiBpbnQzMl90IHsKKyAgVU5SRVNUUklDVEVEID0gMHgwMCwKKyAgTk9fVklERU8gPSAweDAxLAorICBOT19LRVlCT0FSRF9JTlBVVCA9IDB4MDIsCisgIE5PX1ZPSUNFX0lOUFVUID0gMHgwNCwKKyAgTk9fQ09ORklHID0gMHgwOCwKKyAgTElNSVRfTUVTU0FHRV9MRU4gPSAweDEwLAorfTsKKworLyoqCisgKiBWYXJpb3VzIGdlYXJzIHdoaWNoIGNhbiBiZSBzZWxlY3RlZCBieSB1c2VyIGFuZCBjaG9zZW4gaW4gc3lzdGVtLgorICovCitlbnVtIFZlaGljbGVHZWFyOiBpbnQzMl90IHsKKyAgR0VBUl9ORVVUUkFMID0gMHgwMDAxLAorICBHRUFSX1JFVkVSU0UgPSAweDAwMDIsCisgIEdFQVJfUEFSSyA9IDB4MDAwNCwKKyAgR0VBUl9EUklWRSA9IDB4MDAwOCwKKyAgR0VBUl9MT1cgPSAweDAwMTAsCisgIEdFQVJfMSA9IDB4MDAxMCwKKyAgR0VBUl8yID0gMHgwMDIwLAorICBHRUFSXzMgPSAweDAwNDAsCisgIEdFQVJfNCA9IDB4MDA4MCwKKyAgR0VBUl81ID0gMHgwMTAwLAorICBHRUFSXzYgPSAweDAyMDAsCisgIEdFQVJfNyA9IDB4MDQwMCwKKyAgR0VBUl84ID0gMHgwODAwLAorICBHRUFSXzkgPSAweDEwMDAsCit9OworCisvKioKKyAqIFZhcmlvdXMgem9uZXMgaW4gdGhlIGNhci4KKyAqCisgKiBab25lcyBhcmUgdXNlZCBmb3IgQWlyIENvbmRpdGlvbmluZyBwdXJwb3NlcyBhbmQgZGl2aWRlIHRoZSBjYXIgaW50byBwaHlzaWNhbAorICogYXJlYSB6b25lcy4KKyAqLworZW51bSBWZWhpY2xlQXJlYVpvbmUgOiBpbnQzMl90IHsKKyAgUk9XXzFfTEVGVCA9IDB4MDAwMDAwMDEsCisgIFJPV18xX0NFTlRFUiA9IDB4MDAwMDAwMDIsCisgIFJPV18xX1JJR0hUID0gMHgwMDAwMDAwNCwKKyAgUk9XXzEgPSAweDAwMDAwMDA4LAorICBST1dfMl9MRUZUID0gMHgwMDAwMDAxMCwKKyAgUk9XXzJfQ0VOVEVSID0gMHgwMDAwMDAyMCwKKyAgUk9XXzJfUklHSFQgPSAweDAwMDAwMDQwLAorICBST1dfMiA9IDB4MDAwMDAwODAsCisgIFJPV18zX0xFRlQgPSAweDAwMDAwMTAwLAorICBST1dfM19DRU5URVIgPSAweDAwMDAwMjAwLAorICBST1dfM19SSUdIVCA9IDB4MDAwMDA0MDAsCisgIFJPV18zID0gMHgwMDAwMDgwMCwKKyAgUk9XXzRfTEVGVCA9IDB4MDAwMDEwMDAsCisgIFJPV180X0NFTlRFUiA9IDB4MDAwMDIwMDAsCisgIFJPV180X1JJR0hUID0gMHgwMDAwNDAwMCwKKyAgUk9XXzQgPSAweDAwMDA4MDAwLAorICBXSE9MRV9DQUJJTiA9IDB4ODAwMDAwMDAsCit9OworCisvKioKKyAqIFZhcmlvdXMgU2VhdHMgaW4gdGhlIGNhci4KKyAqLworZW51bSBWZWhpY2xlQXJlYVNlYXQgOiBpbnQzMl90IHsKKyAgICBST1dfMV9MRUZUICAgPSAweDAwMDEsCisgICAgUk9XXzFfQ0VOVEVSID0gMHgwMDAyLAorICAgIFJPV18xX1JJR0hUICA9IDB4MDAwNCwKKyAgICBST1dfMl9MRUZUICAgPSAweDAwMTAsCisgICAgUk9XXzJfQ0VOVEVSID0gMHgwMDIwLAorICAgIFJPV18yX1JJR0hUICA9IDB4MDA0MCwKKyAgICBST1dfM19MRUZUICAgPSAweDAxMDAsCisgICAgUk9XXzNfQ0VOVEVSID0gMHgwMjAwLAorICAgIFJPV18zX1JJR0hUICA9IDB4MDQwMAorfTsKKworLyoqCisgKiBWYXJpb3VzIHdpbmRzaGllbGRzL3dpbmRvd3MgaW4gdGhlIGNhci4KKyAqLworZW51bSBWZWhpY2xlQXJlYVdpbmRvdyA6IGludDMyX3QgeworICAgIEZST05UX1dJTkRTSElFTEQgPSAweDAwMDEsCisgICAgUkVBUl9XSU5EU0hJRUxEID0gMHgwMDAyLAorICAgIFJPT0ZfVE9QID0gMHgwMDA0LAorICAgIFJPV18xX0xFRlQgPSAweDAwMTAsCisgICAgUk9XXzFfUklHSFQgPSAweDAwMjAsCisgICAgUk9XXzJfTEVGVCA9IDB4MDEwMCwKKyAgICBST1dfMl9SSUdIVCA9IDB4MDIwMCwKKyAgICBST1dfM19MRUZUID0gMHgxMDAwLAorICAgIFJPV18zX1JJR0hUID0gMHgyMDAwLAorfTsKKworZW51bSBWZWhpY2xlQXJlYURvb3IgOiBpbnQzMl90IHsKKyAgICBST1dfMV9MRUZUID0gMHgwMDAwMDAwMSwKKyAgICBST1dfMV9SSUdIVCA9IDB4MDAwMDAwMDQsCisgICAgUk9XXzJfTEVGVCA9IDB4MDAwMDAwMTAsCisgICAgUk9XXzJfUklHSFQgPSAweDAwMDAwMDQwLAorICAgIFJPV18zX0xFRlQgPSAweDAwMDAwMTAwLAorICAgIFJPV18zX1JJR0hUID0gMHgwMDAwMDQwMCwKKyAgICBIT09EID0gMHgxMDAwMDAwMCwKKyAgICBSRUFSID0gMHgyMDAwMDAwMCwKK307CisKK2VudW0gVmVoaWNsZUFyZWFNaXJyb3IgOiBpbnQzMl90IHsKKyAgICBEUklWRVJfTEVGVCA9IDB4MDAwMDAwMDEsCisgICAgRFJJVkVSX1JJR0hUID0gMHgwMDAwMDAwMiwKKyAgICBEUklWRVJfQ0VOVEVSID0gMHgwMDAwMDAwNCwKK307CisKK2VudW0gVmVoaWNsZVR1cm5TaWduYWwgOiBpbnQzMl90IHsKKyAgICBOT05FID0gMHgwMCwKKyAgICBSSUdIVCA9IDB4MDEsCisgICAgTEVGVCA9IDB4MDIsCisgICAgRU1FUkdFTkNZID0gMHgwNCwKK307CisKK3N0cnVjdCBWZWhpY2xlQXJlYUNvbmZpZyB7CisgICAgLyoqCisgICAgICogQXJlYSBpZCBpcyBpZ25vcmVkIGZvciBWZWhpY2xlUHJvcGVydHlHcm91cDpHTE9CQUwgcHJvcGVydGllcy4KKyAgICAgKi8KKyAgICBpbnQzMl90IGFyZWFJZDsKKworICAgIGludDMyX3QgbWluSW50MzJWYWx1ZTsKKyAgICBpbnQzMl90IG1heEludDMyVmFsdWU7CisKKyAgICBpbnQ2NF90IG1pbkludDY0VmFsdWU7CisgICAgaW50NjRfdCBtYXhJbnQ2NFZhbHVlOworCisgICAgZmxvYXQgbWluRmxvYXRWYWx1ZTsKKyAgICBmbG9hdCBtYXhGbG9hdFZhbHVlOworfTsKKworc3RydWN0IFZlaGljbGVQcm9wQ29uZmlnIHsKKyAgICAvKiogUHJvcGVydHkgaWRlbnRpZmllciAqLworICAgIGludDMyX3QgcHJvcDsKKworICAgIC8qKgorICAgICAqIERlZmluZXMgaWYgdGhlIHByb3BlcnR5IGlzIHJlYWQgb3Igd3JpdGUgb3IgYm90aC4KKyAgICAgKi8KKyAgICBWZWhpY2xlUHJvcGVydHlBY2Nlc3MgYWNjZXNzOworCisgICAgLyoqCisgICAgICogRGVmaW5lcyB0aGUgY2hhbmdlIG1vZGUgb2YgdGhlIHByb3BlcnR5LgorICAgICAqLworICAgIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGUgY2hhbmdlTW9kZTsKKworICAgIC8qKgorICAgICAqIFNvbWUgb2YgdGhlIHByb3BlcnRpZXMgbWF5IGhhdmUgYXNzb2NpYXRlZCBhcmVhcyAoZm9yIGV4YW1wbGUsIHNvbWUgaHZhYworICAgICAqIHByb3BlcnRpZXMgYXJlIGFzc29jaWF0ZWQgd2l0aCBWZWhpY2xlQXJlYVpvbmUpLCBpbiB0aGVzZQorICAgICAqIGNhc2VzIHRoZSBjb25maWcgbWF5IGNvbnRhaW4gYW4gT1JlZCB2YWx1ZSBmb3IgdGhlIGFzc29jaWF0ZWQgYXJlYXMuCisgICAgICovCisgICAgaW50MzJfdCBzdXBwb3J0ZWRBcmVhczsKKworICAgIC8qKgorICAgICAqIENvbnRhaW5zIHBlci1hcmVhIGNvbmZpZ3VyYXRpb24uCisgICAgICovCisgICAgdmVjPFZlaGljbGVBcmVhQ29uZmlnPiBhcmVhQ29uZmlnczsKKworICAgIC8qKgorICAgICAqIENvbmZpZ3VyYXRpb24gZmxhZ3MgZm9yIHRoaXMgcHJvcGVydHkuCisgICAgICoKKyAgICAgKiBGb3IgZXhhbXBsZSwgaXQgbWF5IHN0b3JlIHRoZSBudW1iZXIgb2YgcHJlc2V0cyB0aGF0IGFyZSBzdG9yZWQgYnkgdGhlCisgICAgICogcmFkaW8gbW9kdWxlLgorICAgICAqLworICAgIGludDMyX3QgY29uZmlnRmxhZ3M7CisKKyAgICAvKiogQ29udGFpbnMgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgKi8KKyAgICB2ZWM8aW50MzJfdD4gY29uZmlnQXJyYXk7CisKKyAgICAvKioKKyAgICAgKiBTb21lIHByb3BlcnRpZXMgbWF5IHJlcXVpcmUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBwYXNzZWQgb3ZlciB0aGlzCisgICAgICogc3RyaW5nLiBNb3N0IHByb3BlcnRpZXMgZG8gbm90IG5lZWQgdG8gc2V0IHRoaXMuCisgICAgICovCisgICAgc3RyaW5nIGNvbmZpZ1N0cmluZzsKKworICAgIC8qKgorICAgICAqIE1pbiBzYW1wbGUgcmF0ZSBpbiBIei4KKyAgICAgKiBNdXN0IGJlIGRlZmluZWQgZm9yIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OkNPTlRJTlVPVVMKKyAgICAgKi8KKyAgICBmbG9hdCBtaW5TYW1wbGVSYXRlOworCisgICAgLyoqCisgICAgICogTXVzdCBiZSBkZWZpbmVkIGZvciBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpDT05USU5VT1VTCisgICAgICogTWF4IHNhbXBsZSByYXRlIGluIEh6LgorICAgICAqLworICAgIGZsb2F0IG1heFNhbXBsZVJhdGU7Cit9OworCisvKioKKyAqIEVuY2Fwc3VsYXRlcyB0aGUgcHJvcGVydHkgbmFtZSBhbmQgdGhlIGFzc29jaWF0ZWQgdmFsdWUuIEl0CisgKiBpcyB1c2VkIGFjcm9zcyB2YXJpb3VzIEFQSSBjYWxscyB0byBzZXQgdmFsdWVzLCBnZXQgdmFsdWVzIG9yIHRvIHJlZ2lzdGVyIGZvcgorICogZXZlbnRzLgorICovCitzdHJ1Y3QgVmVoaWNsZVByb3BWYWx1ZSB7CisgICAgLyoqIFByb3BlcnR5IGlkZW50aWZpZXIgKi8KKyAgICBpbnQzMl90IHByb3A7CisKKyAgICAvKiogVGltZSBpcyBlbGFwc2VkIG5hbm9zZWNvbmRzIHNpbmNlIGJvb3QgKi8KKyAgICBpbnQ2NF90IHRpbWVzdGFtcDsKKworICAgIC8qKgorICAgICAqIEFyZWEgdHlwZShzKSBmb3Igbm9uLWdsb2JhbCBwcm9wZXJ0eSBpdCBtdXN0IGJlIG9uZSBvZiB0aGUgdmFsdWUgZnJvbQorICAgICAqIFZlaGljbGVBcmVhKiBlbnVtcyBvciAwIGZvciBnbG9iYWwgcHJvcGVydGllcy4KKyAgICAgKi8KKyAgICBpbnQzMl90IGFyZWFJZDsKKworICAgIC8qKgorICAgICAqIENvbnRhaW5zIHZhbHVlIGZvciBhIHNpbmdsZSBwcm9wZXJ0eS4gRGVwZW5kaW5nIG9uIHByb3BlcnR5IGRhdGEgdHlwZSBvZgorICAgICAqIHRoaXMgcHJvcGVydHkgKFZlaGljbGVQcm9wZXR5VHlwZSkgb25lIGZpZWxkIG9mIHRoaXMgc3RydWN0dXJlIG11c3QgYmUgZmlsbGVkIGluLgorICAgICAqLworICAgIHN0cnVjdCBSYXdWYWx1ZSB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGlzIHVzZWQgZm9yIHByb3BlcnRpZXMgb2YgdHlwZXMgVmVoaWNsZVByb3BlcnR5VHlwZSNJTlQKKyAgICAgICAgICogYW5kIFZlaGljbGVQcm9wZXJ0eVR5cGUjSU5UX1ZFQworICAgICAgICAgKi8KKyAgICAgICAgdmVjPGludDMyX3Q+IGludDMyVmFsdWVzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGlzIGlzIHVzZWQgZm9yIHByb3BlcnRpZXMgb2YgdHlwZXMgVmVoaWNsZVByb3BlcnR5VHlwZSNGTE9BVAorICAgICAgICAgKiBhbmQgVmVoaWNsZVByb3BlcnR5VHlwZSNGTE9BVF9WRUMKKyAgICAgICAgICovCisgICAgICAgIHZlYzxmbG9hdD4gZmxvYXRWYWx1ZXM7CisKKyAgICAgICAgLyoqIFRoaXMgaXMgdXNlZCBmb3IgcHJvcGVydGllcyBvZiB0eXBlIFZlaGljbGVQcm9wZXJ0eVR5cGUjSU5UNjQgKi8KKyAgICAgICAgdmVjPGludDY0X3Q+IGludDY0VmFsdWVzOworCisgICAgICAgIC8qKiBUaGlzIGlzIHVzZWQgZm9yIHByb3BlcnRpZXMgb2YgdHlwZSBWZWhpY2xlUHJvcGVydHlUeXBlI0JZVEVTICovCisgICAgICAgIHZlYzx1aW50OF90PiBieXRlczsKKworICAgICAgICAvKiogVGhpcyBpcyB1c2VkIGZvciBwcm9wZXJ0aWVzIG9mIHR5cGUgVmVoaWNsZVByb3BlcnR5VHlwZSNTVFJJTkcgKi8KKyAgICAgICAgc3RyaW5nIHN0cmluZ1ZhbHVlOworICAgIH07CisKKyAgICBSYXdWYWx1ZSB2YWx1ZTsKK307CisKK2VudW0gVmVoaWNsZUlnbml0aW9uU3RhdGUgOiBpbnQzMl90IHsKKyAgICBVTkRFRklORUQgPSAwLAorCisgICAgLyoqIFN0ZWVyaW5nIHdoZWVsIGlzIGxvY2tlZCAqLworICAgIExPQ0sgPSAxLAorCisgICAgIC8qKgorICAgICAgKiBTdGVlcmluZyB3aGVlbCBpcyBub3QgbG9ja2VkLCBlbmdpbmUgYW5kIGFsbCBhY2Nlc3NvcmllcyBhcmUgT0ZGLiBJZgorICAgICAgKiBjYXIgY2FuIGJlIGluIExPQ0sgYW5kIE9GRiBzdGF0ZSBhdCB0aGUgc2FtZSB0aW1lIHRoYW4gSEFMIG11c3QgcmVwb3J0CisgICAgICAqIExPQ0sgc3RhdGUuCisgICAgICAqLworICAgIE9GRiwKKworICAgIC8qKgorICAgICAqIFR5cGljYWxseSBpbiB0aGlzIHN0YXRlIGFjY2Vzc29yaWVzIGJlY29tZSBhdmFpbGFibGUgKGUuZy4gcmFkaW8pLgorICAgICAqIEluc3RydW1lbnQgY2x1c3RlciBhbmQgZW5naW5lIGFyZSB0dXJuZWQgb2ZmCisgICAgICovCisgICAgQUNDLAorCisgICAgLyoqCisgICAgICogSWduaXRpb24gaXMgaW4gc3RhdGUgT04uIEFjY2Vzc29yaWVzIGFuZCBpbnN0cnVtZW50IGNsdXN0ZXIgYXZhaWxhYmxlLAorICAgICAqIGVuZ2luZSBtaWdodCBiZSBydW5uaW5nIG9yIHJlYWR5IHRvIGJlIHN0YXJ0ZWQuCisgICAgICovCisgICAgT04sCisKKyAgICAvKiogVHlwaWNhbGx5IGluIHRoaXMgc3RhdGUgZW5naW5lIGlzIHN0YXJ0aW5nIChjcmFua2luZykuICovCisgICAgU1RBUlQKK307CisKKworLyoqCisgKiBSZXByZXNlbnQgdGhlIG9wZXJhdGlvbiB3aGVyZSB0aGUgY3VycmVudCBlcnJvciBoYXMgaGFwcGVuZWQuCisgKi8KK2VudW0gVmVoaWNsZVByb3BlcnR5T3BlcmF0aW9uIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogR2VuZXJpYyBlcnJvciB0byB0aGlzIHByb3BlcnR5IHdoaWNoIGlzIG5vdCB0aWVkIHRvIGFueSBvcGVyYXRpb24uCisgICAgICovCisgICAgR0VORVJJQyA9IDAsCisKKyAgICAvKioKKyAgICAgKiBFcnJvciBoYXBwZW5lZCB3aGlsZSBoYW5kbGluZyBwcm9wZXJ0eSBzZXQuCisgICAgICovCisgICAgU0VUID0gMSwKKworICAgIC8qKgorICAgICAqIEVycm9yIGhhcHBlbmVkIHdoaWxlIGhhbmRsaW5nIHByb3BlcnR5IGdldC4KKyAgICAgKi8KKyAgICBHRVQgPSAyLAorCisgICAgLyoqCisgICAgICogRXJyb3IgaGFwcGVuZWQgd2hpbGUgaGFuZGxpbmcgcHJvcGVydHkgc3Vic2NyaXB0aW9uLgorICAgICAqLworICAgIFNVQlNDUklCRSA9IDMsCit9OworCisKK2VudW0gU3Vic2NyaWJlRmxhZ3MgOiBpbnQzMl90IHsKKyAgVU5ERUZJTkVEID0gMHgwLAorCisgIC8qKgorICAgKiBTdWJzY3JpYmUgdG8gZXZlbnQgdGhhdCB3YXMgb3JpZ2luYXRlZCBpbiB2ZWhpY2xlIEhBTAorICAgKiAobW9zdCBsaWtlbHkgdGhpcyBldmVudCBjYW1lIGZyb20gdGhlIHZlaGljbGUgaXRzZWxmKS4KKyAgICovCisgIEhBTF9FVkVOVCA9IDB4MSwKKworICAvKioKKyAgICogVXNlIHRoaXMgZmxhZyB0byBzdWJzY3JpYmUgb24gZXZlbnRzIHdoZW4gSVZlaGljbGUjc2V0KC4uLikgd2FzIGNhbGxlZCBieQorICAgKiB2ZWhpY2xlIEhBTCdzIGNsaWVudCAoZS5nLiBDYXIgU2VydmljZSkuCisgICAqLworICBTRVRfQ0FMTCA9IDB4MiwKKworICBERUZBVUxUID0gSEFMX0VWRU5ULAorfTsKKworLyoqCisgKiBFbmNhcHN1bGF0ZXMgaW5mb3JtYXRpb24gYWJvdXQgc3Vic2NyaXB0aW9uIHRvIHZlaGljbGUgcHJvcGVydHkgZXZlbnRzLgorICovCitzdHJ1Y3QgU3Vic2NyaWJlT3B0aW9ucyB7CisgIC8qKiBQcm9wZXJ0eSB0byBzdWJzY3JpYmUgKi8KKyAgaW50MzJfdCBwcm9wSWQ7CisKKyAgLyoqCisgICAqIEFyZWEgaWRzIC0gdGhpcyBtdXN0IGJlIGEgYml0IG1hc2sgb2YgYXJlYXMgdG8gc3Vic2NyaWJlIG9yIDAgdG8gc3Vic2NyaWJlCisgICAqIHRvIGFsbCBhcmVhcy4KKyAgICovCisgIGludDMyX3QgdmVoaWNsZUFyZWFzOworCisgIC8qKgorICAgKiBTYW1wbGUgcmF0ZSBpbiBIei4KKyAgICoKKyAgICogTXVzdCBiZSBwcm92aWRlZCBmb3IgcHJvcGVydGllcyB3aXRoCisgICAqIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OkNPTlRJTlVPVVMuIFRoZSB2YWx1ZSBtdXN0IGJlIHdpdGhpbgorICAgKiBWZWhpY2xlUHJvcENvbmZpZyNtaW5TYW1wbGluZ1JhdGUgLi4gVmVoaWNsZVByb3BDb25maWcjbWF4U2FtcGxpbmdSYXRlCisgICAqIGZvciBhIGdpdmVuIHByb3BlcnR5LgorICAgKiBUaGlzIHZhbHVlIGluZGljYXRlcyBob3cgbWFueSB1cGRhdGVzIHBlciBzZWNvbmQgY2xpZW50IHdhbnRzIHRvIHJlY2VpdmUuCisgICAqLworICBmbG9hdCBzYW1wbGVSYXRlOworCisgIC8qKiBGbGFncyB0aGF0IGluZGljYXRlIHdoYXQga2luZCBvZiBldmVudHMgbGlzdGVuIHRvLiAqLworICBTdWJzY3JpYmVGbGFncyBmbGFnczsKK307CisKKy8qKiBFcnJvciBjb2RlcyB1c2VkIGluIHZlaGljbGUgSEFMIGludGVyZmFjZS4gKi8KK2VudW0gU3RhdHVzQ29kZSA6IGludDMyX3QgeworICBPSyA9IDAsCisKKyAgLyoqIFRyeSBhZ2Fpbi4gKi8KKyAgVFJZX0FHQUlOID0gMSwKKworICAvKiogSW52YWxpZCBhcmd1bWVudCBwcm92aWRlZC4gKi8KKyAgSU5WQUxJRF9BUkcgPSAyLAorCisgIC8qKgorICAgKiBUaGlzIGNvZGUgbXVzdCBiZSByZXR1cm5lZCB3aGVuIGRldmljZSB0aGF0IGFzc29jaWF0ZWQgd2l0aCB0aGUgdmVoaWNsZQorICAgKiBwcm9wZXJ0eSBpcyBub3QgYXZhaWxhYmxlLiBGb3IgZXhhbXBsZSwgd2hlbiBjbGllbnQgdHJpZXMgdG8gc2V0IEhWQUMKKyAgICogdGVtcGVyYXR1cmUgd2hlbiB0aGUgd2hvbGUgSFZBQyB1bml0IGlzIHR1cm5lZCBPRkYuCisgICAqLworICBOT1RfQVZBSUxBQkxFID0gMywKKworICAvKiogQWNjZXNzIGRlbmllZCAqLworICBBQ0NFU1NfREVOSUVEID0gNCwKKworICAvKiogU29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFzIGhhcHBlbmVkIGluIFZlaGljbGUgSEFMICovCisgIElOVEVSTkFMX0VSUk9SID0gNSwKK307CisKK2VudW0gV2hlZWwgOiBpbnQzMl90IHsKKyAgICBVTktOT1dOID0gMHgwLAorCisgICAgTEVGVF9GUk9OVCA9IDB4MSwKKyAgICBSSUdIVF9GUk9OVCA9IDB4MiwKKyAgICBMRUZUX1JFQVIgPSAweDQsCisgICAgUklHSFRfUkVBUiA9IDB4OCwKK307CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0FuZHJvaWQuYnAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWU0NWZiNQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvQW5kcm9pZC5icApAQCAtMCwwICsxLDY1IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMV9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJVmVoaWNsZS5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjFfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjEiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvVmVoaWNsZUFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjFfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMSIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMV9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9JVmVoaWNsZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9JSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0JuSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0JwSHdWZWhpY2xlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0JzVmVoaWNsZS5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMSIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjFfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMV9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0FuZHJvaWQubWsgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjkzZmUyZAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvQW5kcm9pZC5tawpAQCAtMCwwICsxLDUzNCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGUtVjIuMS1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZS1WMi4wLWphdmEgXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbW1vbklnbml0aW9uTW9uaXRvcnMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0NvbW1vbklnbml0aW9uTW9uaXRvcnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLkNvbW1vbklnbml0aW9uTW9uaXRvcnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbXByZXNzaW9uSWduaXRpb25Nb25pdG9ycykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvQ29tcHJlc3Npb25JZ25pdGlvbk1vbml0b3JzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5Db21wcmVzc2lvbklnbml0aW9uTW9uaXRvcnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZ1ZWxTeXN0ZW1TdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0Z1ZWxTeXN0ZW1TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLkZ1ZWxTeXN0ZW1TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZ1ZWxUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9GdWVsVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuRnVlbFR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKElnbml0aW9uTW9uaXRvcktpbmQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0lnbml0aW9uTW9uaXRvcktpbmQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLklnbml0aW9uTW9uaXRvcktpbmQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE9iZDJGbG9hdFNlbnNvckluZGV4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9PYmQyRmxvYXRTZW5zb3JJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuT2JkMkZsb2F0U2Vuc29ySW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL09iZDJJbnRlZ2VyU2Vuc29ySW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLk9iZDJJbnRlZ2VyU2Vuc29ySW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFNlY29uZGFyeUFpclN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvU2Vjb25kYXJ5QWlyU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5TZWNvbmRhcnlBaXJTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFNwYXJrSWduaXRpb25Nb25pdG9ycykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvU3BhcmtJZ25pdGlvbk1vbml0b3JzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5TcGFya0lnbml0aW9uTW9uaXRvcnMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZlaGljbGVQcm9wZXJ0eSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvVmVoaWNsZVByb3BlcnR5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5WZWhpY2xlUHJvcGVydHkKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZtc01lc3NhZ2VJbnRlZ2VyVmFsdWVzSW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL1Ztc01lc3NhZ2VJbnRlZ2VyVmFsdWVzSW5kZXguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlZtc01lc3NhZ2VJbnRlZ2VyVmFsdWVzSW5kZXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFZtc01lc3NhZ2VUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9WbXNNZXNzYWdlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuVm1zTWVzc2FnZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVmVoaWNsZS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvSVZlaGljbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OklWZWhpY2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmVoaWNsZS5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlLVYyLjEtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZS1WMi4wLWphdmEtc3RhdGljIFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29tbW9uSWduaXRpb25Nb25pdG9ycykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvQ29tbW9uSWduaXRpb25Nb25pdG9ycy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuQ29tbW9uSWduaXRpb25Nb25pdG9ycworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29tcHJlc3Npb25JZ25pdGlvbk1vbml0b3JzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9Db21wcmVzc2lvbklnbml0aW9uTW9uaXRvcnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLkNvbXByZXNzaW9uSWduaXRpb25Nb25pdG9ycworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRnVlbFN5c3RlbVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvRnVlbFN5c3RlbVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuRnVlbFN5c3RlbVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRnVlbFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL0Z1ZWxUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5GdWVsVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSWduaXRpb25Nb25pdG9yS2luZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvSWduaXRpb25Nb25pdG9yS2luZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuSWduaXRpb25Nb25pdG9yS2luZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoT2JkMkZsb2F0U2Vuc29ySW5kZXgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL09iZDJGbG9hdFNlbnNvckluZGV4LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5PYmQyRmxvYXRTZW5zb3JJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoT2JkMkludGVnZXJTZW5zb3JJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvT2JkMkludGVnZXJTZW5zb3JJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuT2JkMkludGVnZXJTZW5zb3JJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU2Vjb25kYXJ5QWlyU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9TZWNvbmRhcnlBaXJTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlNlY29uZGFyeUFpclN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3BhcmtJZ25pdGlvbk1vbml0b3JzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9TcGFya0lnbml0aW9uTW9uaXRvcnMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlNwYXJrSWduaXRpb25Nb25pdG9ycworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVmVoaWNsZVByb3BlcnR5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9WZWhpY2xlUHJvcGVydHkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE6OnR5cGVzLlZlaGljbGVQcm9wZXJ0eQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVm1zTWVzc2FnZUludGVnZXJWYWx1ZXNJbmRleCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlL1YyXzEvVm1zTWVzc2FnZUludGVnZXJWYWx1ZXNJbmRleC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6dHlwZXMuVm1zTWVzc2FnZUludGVnZXJWYWx1ZXNJbmRleAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVm1zTWVzc2FnZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS9WMl8xL1Ztc01lc3NhZ2VUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOjp0eXBlcy5WbXNNZXNzYWdlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElWZWhpY2xlLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvVjJfMS9JVmVoaWNsZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZlaGljbGUuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMTo6SVZlaGljbGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWZWhpY2xlLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9JVmVoaWNsZS5oYWwgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0lWZWhpY2xlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjJkMWU2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9JVmVoaWNsZS5oYWwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMSAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMQorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wOworCisvKioKKyAqIE5ldyByZXZpc2lvbiBvZiBJVmVoaWNsZSBpbnRlcmZhY2UgdGhhdCBzdXBwb3J0cyBwcm9wZXJ0aWVzIGRlZmluZWQgaW4KKyAqIFZlaGljbGVQcm9wZXJ0eSBlbnVtIHZlcnNpb24gMi4xLgorICoKKyAqIE5PVEU6IHRoaXMgSEFMIGludGVyZmFjZSBpcyB1bmRlciBkZXZlbG9wbWVudCBhbmQgc2hvdWxkbid0IGJlIHVzZWQgaW4KKyAqICAgICAgIHByb2R1Y3Rpb24uCisgKgorICogVE9ETyhwYXZlbG0pOiB1cGRhdGUgY29tbWVudCB3aGVuIHRoaXMgaW50ZXJmYWNlIGlzIHJlYWR5IGZvciBwcm9kLgorICovCitpbnRlcmZhY2UgSVZlaGljbGUgZXh0ZW5kcyBAMi4wOjpJVmVoaWNsZSB7Cit9OwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L0FuZHJvaWQubWsgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmVjNDU2Ci0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwxMTkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKwordmhhbF92Ml8wID0gYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4wCit2aGFsX3YyXzEgPSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjEKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBWZWhpY2xlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBsaWIKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9ICQodmhhbF92Ml8xKS1tYW5hZ2VyLWxpYgorTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBjb21tb24vc3JjL09iZDJTZW5zb3JTdG9yZS5jcHAKKworTE9DQUxfQ19JTkNMVURFUyA6PSBcCisgICAgJChMT0NBTF9QQVRIKS9jb21tb24vaW5jbHVkZS92aGFsX3YyXzEgXAorICAgICQoTE9DQUxfUEFUSCkvLi4vLi4vMi4wL2RlZmF1bHQvY29tbW9uL2luY2x1ZGUvdmhhbF92Ml8wIFwKKworTE9DQUxfRVhQT1JUX0NfSU5DTFVERV9ESVJTIDo9IFwKKyAgICAkKExPQ0FMX1BBVEgpL2NvbW1vbi9pbmNsdWRlCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJod2JpbmRlciBcCisgICAgbGlibG9nIFwKKyAgICBsaWJ1dGlscyBcCisgICAgJCh2aGFsX3YyXzEpIFwKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19MSUJSQVJZKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlaGljbGUgZGVmYXVsdCBWZWhpY2xlSEFMIGltcGxlbWVudGF0aW9uCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFOj0gJCh2aGFsX3YyXzEpLWRlZmF1bHQtaW1wbC1saWIKK0xPQ0FMX1NSQ19GSUxFUzo9IFwKKyAgICBpbXBsL3ZoYWxfdjJfMS9FbXVsYXRlZFZlaGljbGVIYWwuY3BwIFwKKworTE9DQUxfQ19JTkNMVURFUyA6PSBcCisgICAgJChMT0NBTF9QQVRIKS9pbXBsL3ZoYWxfdjJfMSBcCisgICAgJChMT0NBTF9QQVRIKS9jb21tb24vaW5jbHVkZQorCitMT0NBTF9FWFBPUlRfQ19JTkNMVURFX0RJUlMgOj0gXAorICAgICQoTE9DQUxfUEFUSCkvaW1wbCBcCisgICAgJChMT0NBTF9QQVRIKS9jb21tb24vaW5jbHVkZQorCisKKyMgTE9DQUxfV0hPTEVfU1RBVElDX0xJQlJBUklFUyA6PSBcCisKK0xPQ0FMX1NUQVRJQ19MSUJSQVJJRVMgOj0gXAorICAgICQodmhhbF92Ml8wKS1kZWZhdWx0LWltcGwtbGliIFwKKyAgICAkKHZoYWxfdjJfMCktbWFuYWdlci1saWIgXAorICAgICQodmhhbF92Ml8xKS1tYW5hZ2VyLWxpYiBcCisgICAgJCh2aGFsX3YyXzApLWxpYnByb3RvLW5hdGl2ZQorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGliaHdiaW5kZXIgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYnByb3RvYnVmLWNwcC1saXRlIFwKKyAgICAkKHZoYWxfdjJfMCkgXAorICAgICQodmhhbF92Ml8xKSBcCisKK0xPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2V4dHJhIC1XZXJyb3IKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19MSUJSQVJZKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFZlaGljbGUgSEFMIHNlcnZpY2UKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9ICQodmhhbF92Ml8xKS1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9ICQodmhhbF92Ml8xKS1zZXJ2aWNlLnJjCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAKKworTE9DQUxfV0hPTEVfU1RBVElDX0xJQlJBUklFUyA6PSBcCisgICAgJCh2aGFsX3YyXzApLWxpYnByb3RvLW5hdGl2ZSBcCisKK0xPQ0FMX1NUQVRJQ19MSUJSQVJJRVMgOj0gXAorICAgICQodmhhbF92Ml8wKS1tYW5hZ2VyLWxpYiBcCisgICAgJCh2aGFsX3YyXzApLWRlZmF1bHQtaW1wbC1saWIgXAorICAgICQodmhhbF92Ml8xKS1kZWZhdWx0LWltcGwtbGliIFwKKyAgICAkKHZoYWxfdjJfMSktbWFuYWdlci1saWIgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGliaHdiaW5kZXIgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYnByb3RvYnVmLWNwcC1saXRlIFwKKyAgICAkKHZoYWxfdjJfMCkgXAorICAgICQodmhhbF92Ml8xKSBcCisKK0xPQ0FMX0NGTEFHUyArPSAtV2FsbCAtV2V4dHJhIC1XZXJyb3IKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xLXNlcnZpY2UucmMgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLnZlaGljbGVAMi4xLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODkyOWQyNQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjEtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgdmVoaWNsZS1oYWwtMi4xIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMS1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciB2ZWhpY2xlX25ldHdvcmsKKyAgICBncm91cCBzeXN0ZW0gaW5ldApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2NvbW1vbi9pbmNsdWRlL3ZoYWxfdjJfMS9PYmQyU2Vuc29yU3RvcmUuaCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzEvT2JkMlNlbnNvclN0b3JlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM0NDYyNgotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9jb21tb24vaW5jbHVkZS92aGFsX3YyXzEvT2JkMlNlbnNvclN0b3JlLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMV9PYmQyU2Vuc29yU3RvcmVfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMV9PYmQyU2Vuc29yU3RvcmVfSF8KKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS90eXBlcy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzEgeworCisvLyBUaGlzIGNsYXNzIHdyYXBzIGFsbCB0aGUgbG9naWMgcmVxdWlyZWQgdG8gY3JlYXRlIGFuIE9CRDIgZnJhbWUuCisvLyBJdCBhbGxvd3Mgc3RvcmluZyBzZW5zb3IgdmFsdWVzLCBzZXR0aW5nIGFwcHJvcHJpYXRlIGJpdG1hc2tzIGFzIG5lZWRlZCwKKy8vIGFuZCByZXR1cm5pbmcgYXBwcm9wcmlhdGVseSBsYWlkIG91dCBzdG9yYWdlIG9mIHNlbnNvciB2YWx1ZXMgc3VpdGFibGUKKy8vIGZvciBiZWluZyByZXR1cm5lZCB2aWEgYSBWZWhpY2xlSGFsIGltcGxlbWVudGF0aW9uLgorY2xhc3MgT2JkMlNlbnNvclN0b3JlIHsKK3B1YmxpYzoKKyAgICAvLyBDcmVhdGVzIGEgc2Vuc29yIHN0b3JhZ2Ugd2l0aCBhIGdpdmVuIG51bWJlciBvZiB2ZW5kb3Itc3BlY2lmaWMgc2Vuc29ycy4KKyAgICBPYmQyU2Vuc29yU3RvcmUoc2l6ZV90IG51bVZlbmRvckludGVnZXJTZW5zb3JzLAorICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtVmVuZG9yRmxvYXRTZW5zb3JzKTsKKworICAgIC8vIFN0b3JlcyBhbiBpbnRlZ2VyLXZhbHVlZCBzZW5zb3IuCisgICAgVjJfMDo6U3RhdHVzQ29kZSBzZXRJbnRlZ2VyU2Vuc29yKE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXggaW5kZXgsIGludDMyX3QgdmFsdWUpOworICAgIC8vIFN0b3JlcyBhbiBpbnRlZ2VyLXZhbHVlZCBzZW5zb3IuCisgICAgVjJfMDo6U3RhdHVzQ29kZSBzZXRJbnRlZ2VyU2Vuc29yKHNpemVfdCBpbmRleCwgaW50MzJfdCB2YWx1ZSk7CisKKyAgICAvLyBTdG9yZXMgYSBmbG9hdC12YWx1ZWQgc2Vuc29yLgorICAgIFYyXzA6OlN0YXR1c0NvZGUgc2V0RmxvYXRTZW5zb3IoT2JkMkZsb2F0U2Vuc29ySW5kZXggaW5kZXgsIGZsb2F0IHZhbHVlKTsKKyAgICAvLyBTdG9yZXMgYSBmbG9hdC12YWx1ZWQgc2Vuc29yLgorICAgIFYyXzA6OlN0YXR1c0NvZGUgc2V0RmxvYXRTZW5zb3Ioc2l6ZV90IGluZGV4LCBmbG9hdCB2YWx1ZSk7CisKKyAgICAvLyBSZXR1cm5zIGEgdmVjdG9yIHRoYXQgY29udGFpbnMgYWxsIGludGVnZXIgc2Vuc29ycyBzdG9yZWQuCisgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aW50MzJfdD4mIGdldEludGVnZXJTZW5zb3JzKCkgY29uc3Q7CisgICAgLy8gUmV0dXJucyBhIHZlY3RvciB0aGF0IGNvbnRhaW5zIGFsbCBmbG9hdCBzZW5zb3JzIHN0b3JlZC4KKyAgICBjb25zdCBzdGQ6OnZlY3RvcjxmbG9hdD4mIGdldEZsb2F0U2Vuc29ycygpIGNvbnN0OworICAgIC8vIFJldHVybnMgYSB2ZWN0b3IgdGhhdCBjb250YWlucyBhIGJpdG1hc2sgZm9yIGFsbCBzdG9yZWQgc2Vuc29ycy4KKyAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgZ2V0U2Vuc29yc0JpdG1hc2soKSBjb25zdDsKKworICAgIC8vIEdpdmVuIGEgc3RyaW5nVmFsdWUsIGZpbGwgaW4gYSBWZWhpY2xlUHJvcFZhbHVlCisgICAgdm9pZCBmaWxsUHJvcFZhbHVlKGNvbnN0IHN0ZDo6c3RyaW5nJiBkdGMsIFYyXzA6OlZlaGljbGVQcm9wVmFsdWUgKnByb3BWYWx1ZSkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgY2xhc3MgQml0bWFza0luVmVjdG9yIHsKKyAgICBwdWJsaWM6CisgICAgICAgIEJpdG1hc2tJblZlY3RvcihzaXplX3QgbnVtQml0cyA9IDApOworICAgICAgICB2b2lkIHJlc2l6ZShzaXplX3QgbnVtQml0cyk7CisgICAgICAgIGJvb2wgZ2V0KHNpemVfdCBpbmRleCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0KHNpemVfdCBpbmRleCwgYm9vbCB2YWx1ZSk7CisKKyAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIGdldEJpdG1hc2soKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IG1TdG9yYWdlOworICAgIH07CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBtSW50ZWdlclNlbnNvcnM7CisgICAgc3RkOjp2ZWN0b3I8ZmxvYXQ+IG1GbG9hdFNlbnNvcnM7CisgICAgQml0bWFza0luVmVjdG9yIG1TZW5zb3JzQml0bWFzazsKK307CisKK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8wX09iZDJTZW5zb3JTdG9yZV9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2NvbW1vbi9zcmMvT2JkMlNlbnNvclN0b3JlLmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9jb21tb24vc3JjL09iZDJTZW5zb3JTdG9yZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjRjNjNhOQotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9jb21tb24vc3JjL09iZDJTZW5zb3JTdG9yZS5jcHAKQEAgLTAsMCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiT2JkMlNlbnNvclN0b3JlLmgiCisKKyNpbmNsdWRlIDx1dGlscy9TeXN0ZW1DbG9jay5oPgorI2luY2x1ZGUgIlZlaGljbGVVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzEgeworCitPYmQyU2Vuc29yU3RvcmU6OkJpdG1hc2tJblZlY3Rvcjo6Qml0bWFza0luVmVjdG9yKHNpemVfdCBudW1CaXRzKQoreworICAgIHJlc2l6ZShudW1CaXRzKTsKK30KKwordm9pZCBPYmQyU2Vuc29yU3RvcmU6OkJpdG1hc2tJblZlY3Rvcjo6cmVzaXplKHNpemVfdCBudW1CaXRzKSB7CisgICAgbVN0b3JhZ2UgPSBzdGQ6OnZlY3Rvcjx1aW50OF90PigobnVtQml0cys3KS84LCAwKTsKK30KKwordm9pZCBPYmQyU2Vuc29yU3RvcmU6OkJpdG1hc2tJblZlY3Rvcjo6c2V0KHNpemVfdCBpbmRleCwgYm9vbCB2YWx1ZSkgeworICAgIGNvbnN0IHNpemVfdCBieXRlSW5kZXggPSBpbmRleCAvIDg7CisgICAgY29uc3Qgc2l6ZV90IGJpdEluZGV4ID0gaW5kZXggJSA4OworICAgIGNvbnN0IHVpbnQ4X3QgYnl0ZSA9IG1TdG9yYWdlW2J5dGVJbmRleF07CisgICAgdWludDhfdCBuZXdWYWx1ZSA9IHZhbHVlID8gKGJ5dGUgfCAoMSA8PCBiaXRJbmRleCkpIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnl0ZSAmIH4oMSA8PCBiaXRJbmRleCkpOworICAgIG1TdG9yYWdlW2J5dGVJbmRleF0gPSBuZXdWYWx1ZTsKK30KKworYm9vbCBPYmQyU2Vuc29yU3RvcmU6OkJpdG1hc2tJblZlY3Rvcjo6Z2V0KHNpemVfdCBpbmRleCkgY29uc3QgeworICAgIGNvbnN0IHNpemVfdCBieXRlSW5kZXggPSBpbmRleCAvIDg7CisgICAgY29uc3Qgc2l6ZV90IGJpdEluZGV4ID0gaW5kZXggJSA4OworICAgIGNvbnN0IHVpbnQ4X3QgYnl0ZSA9IG1TdG9yYWdlW2J5dGVJbmRleF07CisgICAgcmV0dXJuIChieXRlICYgKDEgPDwgYml0SW5kZXgpKSAhPSAwOworfQorCitjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiYgT2JkMlNlbnNvclN0b3JlOjpCaXRtYXNrSW5WZWN0b3I6OmdldEJpdG1hc2soKSBjb25zdCB7CisgICAgcmV0dXJuIG1TdG9yYWdlOworfQorCitPYmQyU2Vuc29yU3RvcmU6Ok9iZDJTZW5zb3JTdG9yZShzaXplX3QgbnVtVmVuZG9ySW50ZWdlclNlbnNvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtVmVuZG9yRmxvYXRTZW5zb3JzKSB7CisgICAgICAgIC8vIGJlY2F1c2UgdGhlIGxhc3QgaW5kZXggaXMgdmFsaWQgKmluY2x1c2l2ZSoKKyAgICAgICAgY29uc3Qgc2l6ZV90IG51bVN5c3RlbUludGVnZXJTZW5zb3JzID0gVjJfMDo6dG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpKzE7CisgICAgICAgIGNvbnN0IHNpemVfdCBudW1TeXN0ZW1GbG9hdFNlbnNvcnMgPSBWMl8wOjp0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpKzE7CisgICAgICAgIG1JbnRlZ2VyU2Vuc29ycyA9IHN0ZDo6dmVjdG9yPGludDMyX3Q+KAorICAgICAgICAgICAgbnVtU3lzdGVtSW50ZWdlclNlbnNvcnMrbnVtVmVuZG9ySW50ZWdlclNlbnNvcnMsIDApOworICAgICAgICBtRmxvYXRTZW5zb3JzID0gc3RkOjp2ZWN0b3I8ZmxvYXQ+KAorICAgICAgICAgICAgbnVtU3lzdGVtRmxvYXRTZW5zb3JzK251bVZlbmRvckZsb2F0U2Vuc29ycywgMCk7CisgICAgICAgIG1TZW5zb3JzQml0bWFzay5yZXNpemUobUludGVnZXJTZW5zb3JzLnNpemUoKSttRmxvYXRTZW5zb3JzLnNpemUoKSk7Cit9CisKK1YyXzA6OlN0YXR1c0NvZGUgT2JkMlNlbnNvclN0b3JlOjpzZXRJbnRlZ2VyU2Vuc29yKE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXggaW5kZXgsCisgICAgaW50MzJfdCB2YWx1ZSkgeworICAgIHJldHVybiBzZXRJbnRlZ2VyU2Vuc29yKFYyXzA6OnRvSW50KGluZGV4KSwgdmFsdWUpOworfQorVjJfMDo6U3RhdHVzQ29kZSBPYmQyU2Vuc29yU3RvcmU6OnNldEZsb2F0U2Vuc29yKE9iZDJGbG9hdFNlbnNvckluZGV4IGluZGV4LAorICAgIGZsb2F0IHZhbHVlKSB7CisgICAgcmV0dXJuIHNldEZsb2F0U2Vuc29yKFYyXzA6OnRvSW50KGluZGV4KSwgdmFsdWUpOworfQorCitWMl8wOjpTdGF0dXNDb2RlIE9iZDJTZW5zb3JTdG9yZTo6c2V0SW50ZWdlclNlbnNvcihzaXplX3QgaW5kZXgsIGludDMyX3QgdmFsdWUpIHsKKyAgICBtSW50ZWdlclNlbnNvcnNbaW5kZXhdID0gdmFsdWU7CisgICAgbVNlbnNvcnNCaXRtYXNrLnNldChpbmRleCwgdHJ1ZSk7CisgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6Ok9LOworfQorCitWMl8wOjpTdGF0dXNDb2RlIE9iZDJTZW5zb3JTdG9yZTo6c2V0RmxvYXRTZW5zb3Ioc2l6ZV90IGluZGV4LCBmbG9hdCB2YWx1ZSkgeworICAgIG1GbG9hdFNlbnNvcnNbaW5kZXhdID0gdmFsdWU7CisgICAgbVNlbnNvcnNCaXRtYXNrLnNldChpbmRleCArIG1JbnRlZ2VyU2Vuc29ycy5zaXplKCksIHRydWUpOworICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpPSzsKK30KKworY29uc3Qgc3RkOjp2ZWN0b3I8aW50MzJfdD4mIE9iZDJTZW5zb3JTdG9yZTo6Z2V0SW50ZWdlclNlbnNvcnMoKSBjb25zdCB7CisgICAgcmV0dXJuIG1JbnRlZ2VyU2Vuc29yczsKK30KKworY29uc3Qgc3RkOjp2ZWN0b3I8ZmxvYXQ+JiBPYmQyU2Vuc29yU3RvcmU6OmdldEZsb2F0U2Vuc29ycygpIGNvbnN0IHsKKyAgICByZXR1cm4gbUZsb2F0U2Vuc29yczsKK30KKworY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIE9iZDJTZW5zb3JTdG9yZTo6Z2V0U2Vuc29yc0JpdG1hc2soKSBjb25zdCB7CisgICAgcmV0dXJuIG1TZW5zb3JzQml0bWFzay5nZXRCaXRtYXNrKCk7Cit9CisKK3ZvaWQgT2JkMlNlbnNvclN0b3JlOjpmaWxsUHJvcFZhbHVlKGNvbnN0IHN0ZDo6c3RyaW5nJiBkdGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlICpwcm9wVmFsdWUpIGNvbnN0IHsKKyAgICBwcm9wVmFsdWUtPnRpbWVzdGFtcCA9IGVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAgICBwcm9wVmFsdWUtPnZhbHVlLmludDMyVmFsdWVzID0gZ2V0SW50ZWdlclNlbnNvcnMoKTsKKyAgICBwcm9wVmFsdWUtPnZhbHVlLmZsb2F0VmFsdWVzID0gZ2V0RmxvYXRTZW5zb3JzKCk7CisgICAgcHJvcFZhbHVlLT52YWx1ZS5ieXRlcyA9IGdldFNlbnNvcnNCaXRtYXNrKCk7CisgICAgcHJvcFZhbHVlLT52YWx1ZS5zdHJpbmdWYWx1ZSA9IGR0YzsKK30KKworCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC9pbXBsL3ZoYWxfdjJfMS9EZWZhdWx0Q29uZmlnLmggYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRGVmYXVsdENvbmZpZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmMTAwODYKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRGVmYXVsdENvbmZpZy5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzFfaW1wbF9EZWZhdWx0Q29uZmlnX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfYXV0b21vdGl2ZV92ZWhpY2xlX1YyXzFfaW1wbF9EZWZhdWx0Q29uZmlnX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvdHlwZXMuaD4KKyNpbmNsdWRlIDx2aGFsX3YyXzAvVmVoaWNsZVV0aWxzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMSB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworLy8gU29tZSBoYW5keSBjb25zdGFudHMgdG8gYXZvaWQgY29udmVyc2lvbnMgZnJvbSBlbnVtIHRvIGludC4KK2NvbnN0ZXhwciBpbnQgT0JEMl9MSVZFX0ZSQU1FID0gKGludCkgVjJfMTo6VmVoaWNsZVByb3BlcnR5OjpPQkQyX0xJVkVfRlJBTUU7Citjb25zdGV4cHIgaW50IE9CRDJfRlJFRVpFX0ZSQU1FID0gKGludCkgVjJfMTo6VmVoaWNsZVByb3BlcnR5OjpPQkQyX0ZSRUVaRV9GUkFNRTsKK2NvbnN0ZXhwciBpbnQgT0JEMl9GUkVFWkVfRlJBTUVfSU5GTyA9IChpbnQpIFYyXzE6OlZlaGljbGVQcm9wZXJ0eTo6T0JEMl9GUkVFWkVfRlJBTUVfSU5GTzsKK2NvbnN0ZXhwciBpbnQgT0JEMl9GUkVFWkVfRlJBTUVfQ0xFQVIgPSAoaW50KSBWMl8xOjpWZWhpY2xlUHJvcGVydHk6Ok9CRDJfRlJFRVpFX0ZSQU1FX0NMRUFSOworY29uc3RleHByIGludCBWRUhJQ0xFX01BUF9TRVJWSUNFID0gKGludCkgVjJfMTo6VmVoaWNsZVByb3BlcnR5OjpWRUhJQ0xFX01BUF9TRVJWSUNFOworY29uc3RleHByIGludCBXSEVFTF9USUNLID0gKGludCkgVjJfMTo6VmVoaWNsZVByb3BlcnR5OjpXSEVFTF9USUNLOworCisKK2NvbnN0IFYyXzA6OlZlaGljbGVQcm9wQ29uZmlnIGtWZWhpY2xlUHJvcGVydGllc1tdID0geworICAgIHsKKyAgICAgICAgLnByb3AgPSBXSEVFTF9USUNLLAorICAgICAgICAuYWNjZXNzID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5QWNjZXNzOjpSRUFELAorICAgICAgICAuY2hhbmdlTW9kZSA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6OkNPTlRJTlVPVVMsCisgICAgICAgIC5taW5TYW1wbGVSYXRlID0gMS4wZiwKKyAgICAgICAgLm1heFNhbXBsZVJhdGUgPSAxMDAuMGYsCisgICAgfSwKKworICAgIHsKKyAgICAgICAgLnByb3AgPSBPQkQyX0xJVkVfRlJBTUUsCisgICAgICAgIC5hY2Nlc3MgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAuY29uZmlnQXJyYXkgPSB7MCwwfQorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gT0JEMl9GUkVFWkVfRlJBTUUsCisgICAgICAgIC5hY2Nlc3MgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQUQsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFLAorICAgICAgICAuY29uZmlnQXJyYXkgPSB7MCwwfQorICAgIH0sCisKKyAgICB7CisgICAgICAgIC5wcm9wID0gT0JEMl9GUkVFWkVfRlJBTUVfSU5GTywKKyAgICAgICAgLmFjY2VzcyA9IFYyXzA6OlZlaGljbGVQcm9wZXJ0eUFjY2Vzczo6UkVBRCwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UKKyAgICB9LAorCisgICAgeworICAgICAgICAucHJvcCA9IE9CRDJfRlJFRVpFX0ZSQU1FX0NMRUFSLAorICAgICAgICAuYWNjZXNzID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5QWNjZXNzOjpXUklURSwKKyAgICAgICAgLmNoYW5nZU1vZGUgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOjpPTl9DSEFOR0UKKyAgICB9LAorCisgICAgeworICAgICAgICAucHJvcCA9IFZFSElDTEVfTUFQX1NFUlZJQ0UsCisgICAgICAgIC5hY2Nlc3MgPSBWMl8wOjpWZWhpY2xlUHJvcGVydHlBY2Nlc3M6OlJFQURfV1JJVEUsCisgICAgICAgIC5jaGFuZ2VNb2RlID0gVjJfMDo6VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTo6T05fQ0hBTkdFCisgICAgfQorfTsKKworfSAgLy8gaW1wbAorCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIHZlaGljbGUKK30gIC8vIG5hbWVzcGFjZSBhdXRvbW90aXZlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8xX2ltcGxfRGVmYXVsdENvbmZpZ19IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0VtdWxhdGVkVmVoaWNsZUhhbC5jcHAgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRW11bGF0ZWRWZWhpY2xlSGFsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZGNlYWUwCi0tLSAvZGV2L251bGwKKysrIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0VtdWxhdGVkVmVoaWNsZUhhbC5jcHAKQEAgLTAsMCArMSwyNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkRlZmF1bHRWZWhpY2xlSGFsX3YyXzEiCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxuZXRpbmV0L2luLmg+CisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKworI2luY2x1ZGUgIkVtdWxhdGVkVmVoaWNsZUhhbC5oIgorI2luY2x1ZGUgIlZlaGljbGVIYWxQcm90by5wYi5oIgorCisjZGVmaW5lIERFQlVHX1NPQ0tFVCAgICAoMzM0NTIpCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYXV0b21vdGl2ZSB7CituYW1lc3BhY2UgdmVoaWNsZSB7CituYW1lc3BhY2UgVjJfMSB7CisKK25hbWVzcGFjZSBpbXBsIHsKKworc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxPYmQyU2Vuc29yU3RvcmU+IGZpbGxEZWZhdWx0T2JkMkZyYW1lKAorICAgICAgICBzaXplX3QgbnVtVmVuZG9ySW50ZWdlclNlbnNvcnMsCisgICAgICAgIHNpemVfdCBudW1WZW5kb3JGbG9hdFNlbnNvcnMpIHsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8T2JkMlNlbnNvclN0b3JlPiBzZW5zb3JTdG9yZShuZXcgT2JkMlNlbnNvclN0b3JlKAorICAgICAgICAgICAgbnVtVmVuZG9ySW50ZWdlclNlbnNvcnMsIG51bVZlbmRvckZsb2F0U2Vuc29ycykpOworCisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkZVRUxfU1lTVEVNX1NUQVRVUywKKyAgICAgICAgVjJfMDo6dG9JbnQoRnVlbFN5c3RlbVN0YXR1czo6Q0xPU0VEX0xPT1ApKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TUFMRlVOQ1RJT05fSU5ESUNBVE9SX0xJR0hUX09OLCAwKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6SUdOSVRJT05fTU9OSVRPUlNfU1VQUE9SVEVELAorICAgICAgICBWMl8wOjp0b0ludChJZ25pdGlvbk1vbml0b3JLaW5kOjpTUEFSSykpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OklHTklUSU9OX1NQRUNJRklDX01PTklUT1JTLAorICAgICAgICBDb21tb25JZ25pdGlvbk1vbml0b3JzOjpDT01QT05FTlRTX0FWQUlMQUJMRSB8CisgICAgICAgIENvbW1vbklnbml0aW9uTW9uaXRvcnM6Ok1JU0ZJUkVfQVZBSUxBQkxFIHwKKyAgICAgICAgU3BhcmtJZ25pdGlvbk1vbml0b3JzOjpBQ19SRUZSSUdFUkFOVF9BVkFJTEFCTEUgfAorICAgICAgICBTcGFya0lnbml0aW9uTW9uaXRvcnM6OkVWQVBPUkFUSVZFX1NZU1RFTV9BVkFJTEFCTEUpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpJTlRBS0VfQUlSX1RFTVBFUkFUVVJFLCAzNSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkNPTU1BTkRFRF9TRUNPTkRBUllfQUlSX1NUQVRVUywKKyAgICAgICAgVjJfMDo6dG9JbnQoU2Vjb25kYXJ5QWlyU3RhdHVzOjpGUk9NX09VVFNJREVfT1JfT0ZGKSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6Ok5VTV9PWFlHRU5fU0VOU09SU19QUkVTRU5ULCAxKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6UlVOVElNRV9TSU5DRV9FTkdJTkVfU1RBUlQsIDUwMCk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkRJU1RBTkNFX1RSQVZFTEVEX1dJVEhfTUFMRlVOQ1RJT05fSU5ESUNBVE9SX0xJR0hUX09OLCAwKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6V0FSTVVQU19TSU5DRV9DT0RFU19DTEVBUkVELCA1MSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkRJU1RBTkNFX1RSQVZFTEVEX1NJTkNFX0NPREVTX0NMRUFSRUQsIDM2NSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEludGVnZXJTZW5zb3IoCisgICAgICAgIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkFCU09MVVRFX0JBUk9NRVRSSUNfUFJFU1NVUkUsIDMwKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6Q09OVFJPTF9NT0RVTEVfVk9MVEFHRSwgMTIpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpBTUJJRU5UX0FJUl9URU1QRVJBVFVSRSwgMTgpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpNQVhfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8sIDEpOworICAgIHNlbnNvclN0b3JlLT5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpGVUVMX1RZUEUsIFYyXzA6OnRvSW50KEZ1ZWxUeXBlOjpHQVNPTElORSkpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkNBTENVTEFURURfRU5HSU5FX0xPQUQsIDAuMTUzKTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpTSE9SVF9URVJNX0ZVRUxfVFJJTV9CQU5LMSwgLTAuMTYpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkxPTkdfVEVSTV9GVUVMX1RSSU1fQkFOSzEsIC0wLjE2KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpTSE9SVF9URVJNX0ZVRUxfVFJJTV9CQU5LMiwgLTAuMTYpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkxPTkdfVEVSTV9GVUVMX1RSSU1fQkFOSzIsIC0wLjE2KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpJTlRBS0VfTUFOSUZPTERfQUJTT0xVVEVfUFJFU1NVUkUsIDcuNSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6RU5HSU5FX1JQTSwgMTI1MC4pOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OlZFSElDTEVfU1BFRUQsIDQwLik7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6VElNSU5HX0FEVkFOQ0UsIDIuNSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6VEhST1RUTEVfUE9TSVRJT04sIDE5Ljc1KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpPWFlHRU5fU0VOU09SMV9WT0xUQUdFLCAwLjI2NSk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6RlVFTF9UQU5LX0xFVkVMX0lOUFVULCAwLjgyNCk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6RVZBUE9SQVRJT05fU1lTVEVNX1ZBUE9SX1BSRVNTVVJFLCAtMC4zNzMpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkNBVEFMWVNUX1RFTVBFUkFUVVJFX0JBTksxX1NFTlNPUjEsIDE5MC4pOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OlJFTEFUSVZFX1RIUk9UVExFX1BPU0lUSU9OLCAzLik7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6QUJTT0xVVEVfVEhST1RUTEVfUE9TSVRJT05fQiwgMC4zMDYpOworICAgIHNlbnNvclN0b3JlLT5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkFDQ0VMRVJBVE9SX1BFREFMX1BPU0lUSU9OX0QsIDAuMTg4KTsKKyAgICBzZW5zb3JTdG9yZS0+c2V0RmxvYXRTZW5zb3IoCisgICAgICAgIE9iZDJGbG9hdFNlbnNvckluZGV4OjpBQ0NFTEVSQVRPUl9QRURBTF9QT1NJVElPTl9FLCAwLjA5NCk7CisgICAgc2Vuc29yU3RvcmUtPnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6Q09NTUFOREVEX1RIUk9UVExFX0FDVFVBVE9SLCAwLjAyNCk7CisKKyAgICByZXR1cm4gc2Vuc29yU3RvcmU7Cit9CisKK3ZvaWQgRW11bGF0ZWRWZWhpY2xlSGFsOjppbml0T2JkMkxpdmVGcmFtZShjb25zdCBWMl8wOjpWZWhpY2xlUHJvcENvbmZpZyYgcHJvcENvbmZpZykgeworICAgIGF1dG8gbGl2ZU9iZDJGcmFtZSA9IGNyZWF0ZVZlaGljbGVQcm9wVmFsdWUoVjJfMDo6VmVoaWNsZVByb3BlcnR5VHlwZTo6Q09NUExFWCwgMCk7CisgICAgYXV0byBzZW5zb3JTdG9yZSA9IGZpbGxEZWZhdWx0T2JkMkZyYW1lKHN0YXRpY19jYXN0PHNpemVfdD4ocHJvcENvbmZpZy5jb25maWdBcnJheVswXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4ocHJvcENvbmZpZy5jb25maWdBcnJheVsxXSkpOworICAgIHNlbnNvclN0b3JlLT5maWxsUHJvcFZhbHVlKCIiLCBsaXZlT2JkMkZyYW1lLmdldCgpKTsKKyAgICBsaXZlT2JkMkZyYW1lLT5wcm9wID0gT0JEMl9MSVZFX0ZSQU1FOworCisgICAgbVByb3BTdG9yZS0+d3JpdGVWYWx1ZSgqbGl2ZU9iZDJGcmFtZSk7Cit9CisKK3ZvaWQgRW11bGF0ZWRWZWhpY2xlSGFsOjppbml0T2JkMkZyZWV6ZUZyYW1lKGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wQ29uZmlnJiBwcm9wQ29uZmlnKSB7CisgICAgYXV0byBzZW5zb3JTdG9yZSA9IGZpbGxEZWZhdWx0T2JkMkZyYW1lKHN0YXRpY19jYXN0PHNpemVfdD4ocHJvcENvbmZpZy5jb25maWdBcnJheVswXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4ocHJvcENvbmZpZy5jb25maWdBcnJheVsxXSkpOworCisgICAgc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBzYW1wbGVEdGNzID0geyAiUDAwNzAiLCAiUDAxMDIiICJQMDEyMyIgfTsKKyAgICBmb3IgKGF1dG8mJiBkdGMgOiBzYW1wbGVEdGNzKSB7CisgICAgICAgIGF1dG8gZnJlZXplRnJhbWUgPSBjcmVhdGVWZWhpY2xlUHJvcFZhbHVlKFYyXzA6OlZlaGljbGVQcm9wZXJ0eVR5cGU6OkNPTVBMRVgsIDApOworICAgICAgICBzZW5zb3JTdG9yZS0+ZmlsbFByb3BWYWx1ZShkdGMsIGZyZWV6ZUZyYW1lLmdldCgpKTsKKyAgICAgICAgbVByb3BTdG9yZS0+d3JpdGVWYWx1ZSgqZnJlZXplRnJhbWUpOworICAgIH0KK30KKworVjJfMDo6U3RhdHVzQ29kZSBFbXVsYXRlZFZlaGljbGVIYWw6OmZpbGxPYmQyRnJlZXplRnJhbWUoCisgICAgICAgIGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHJlcXVlc3RlZFByb3BWYWx1ZSwKKyAgICAgICAgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSogb3V0VmFsdWUpIHsKKyAgICBpZiAocmVxdWVzdGVkUHJvcFZhbHVlLnZhbHVlLmludDY0VmFsdWVzLnNpemUoKSAhPSAxKSB7CisgICAgICAgIEFMT0dFKCJhc2tlZCBmb3IgT0JEMl9GUkVFWkVfRlJBTUUgd2l0aG91dCB2YWxpZCB0aW1lc3RhbXAiKTsKKyAgICAgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6OklOVkFMSURfQVJHOworICAgIH0KKyAgICBhdXRvIHRpbWVzdGFtcCA9IHJlcXVlc3RlZFByb3BWYWx1ZS52YWx1ZS5pbnQ2NFZhbHVlc1swXTsKKyAgICBhdXRvIGZyZWV6ZUZyYW1lID0gbVByb3BTdG9yZS0+cmVhZFZhbHVlT3JOdWxsKE9CRDJfRlJFRVpFX0ZSQU1FLCAwLCB0aW1lc3RhbXApOworICAgIGlmKGZyZWV6ZUZyYW1lID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoImFza2VkIGZvciBPQkQyX0ZSRUVaRV9GUkFNRSBhdCBpbnZhbGlkIHRpbWVzdGFtcCIpOworICAgICAgICByZXR1cm4gVjJfMDo6U3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgfQorICAgIG91dFZhbHVlLT5wcm9wID0gT0JEMl9GUkVFWkVfRlJBTUU7CisgICAgb3V0VmFsdWUtPnZhbHVlLmludDMyVmFsdWVzID0gZnJlZXplRnJhbWUtPnZhbHVlLmludDMyVmFsdWVzOworICAgIG91dFZhbHVlLT52YWx1ZS5mbG9hdFZhbHVlcyA9IGZyZWV6ZUZyYW1lLT52YWx1ZS5mbG9hdFZhbHVlczsKKyAgICBvdXRWYWx1ZS0+dmFsdWUuYnl0ZXMgPSBmcmVlemVGcmFtZS0+dmFsdWUuYnl0ZXM7CisgICAgb3V0VmFsdWUtPnZhbHVlLnN0cmluZ1ZhbHVlID0gZnJlZXplRnJhbWUtPnZhbHVlLnN0cmluZ1ZhbHVlOworICAgIG91dFZhbHVlLT50aW1lc3RhbXAgPSBmcmVlemVGcmFtZS0+dGltZXN0YW1wOworICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpPSzsKK30KKworVjJfMDo6U3RhdHVzQ29kZSBFbXVsYXRlZFZlaGljbGVIYWw6OmNsZWFyT2JkMkZyZWV6ZUZyYW1lcyhjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIHsKKyAgICBpZiAocHJvcFZhbHVlLnZhbHVlLmludDY0VmFsdWVzLnNpemUoKSA9PSAwKSB7CisgICAgICAgIG1Qcm9wU3RvcmUtPnJlbW92ZVZhbHVlc0ZvclByb3BlcnR5KE9CRDJfRlJFRVpFX0ZSQU1FKTsKKyAgICAgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6Ok9LOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvcihpbnQ2NF90IHRpbWVzdGFtcDogcHJvcFZhbHVlLnZhbHVlLmludDY0VmFsdWVzKSB7CisgICAgICAgICAgICBhdXRvIGZyZWV6ZUZyYW1lID0gbVByb3BTdG9yZS0+cmVhZFZhbHVlT3JOdWxsKE9CRDJfRlJFRVpFX0ZSQU1FLCAwLCB0aW1lc3RhbXApOworICAgICAgICAgICAgaWYoZnJlZXplRnJhbWUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgIEFMT0dFKCJhc2tlZCBmb3IgT0JEMl9GUkVFWkVfRlJBTUUgYXQgaW52YWxpZCB0aW1lc3RhbXAiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVjJfMDo6U3RhdHVzQ29kZTo6SU5WQUxJRF9BUkc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtUHJvcFN0b3JlLT5yZW1vdmVWYWx1ZSgqZnJlZXplRnJhbWUpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpPSzsKK30KKworVjJfMDo6U3RhdHVzQ29kZSBFbXVsYXRlZFZlaGljbGVIYWw6OmZpbGxPYmQyRHRjSW5mbyhWMl8wOjpWZWhpY2xlUHJvcFZhbHVlKiBvdXRWYWx1ZSkgeworICAgIHN0ZDo6dmVjdG9yPGludDY0X3Q+IHRpbWVzdGFtcHM7CisgICAgZm9yKGNvbnN0IGF1dG8mIGZyZWV6ZUZyYW1lOiBtUHJvcFN0b3JlLT5yZWFkVmFsdWVzRm9yUHJvcGVydHkoT0JEMl9GUkVFWkVfRlJBTUUpKSB7CisgICAgICAgIHRpbWVzdGFtcHMucHVzaF9iYWNrKGZyZWV6ZUZyYW1lLnRpbWVzdGFtcCk7CisgICAgfQorICAgIG91dFZhbHVlLT52YWx1ZS5pbnQ2NFZhbHVlcyA9IHRpbWVzdGFtcHM7CisgICAgcmV0dXJuIFYyXzA6OlN0YXR1c0NvZGU6Ok9LOworfQorCit2b2lkIEVtdWxhdGVkVmVoaWNsZUhhbDo6b25DcmVhdGUoKSB7CisgICAgVjJfMDo6aW1wbDo6RW11bGF0ZWRWZWhpY2xlSGFsOjpvbkNyZWF0ZSgpOworCisgICAgaW5pdE9iZDJMaXZlRnJhbWUoKm1Qcm9wU3RvcmUtPmdldENvbmZpZ09yRGllKE9CRDJfTElWRV9GUkFNRSkpOworICAgIGluaXRPYmQyRnJlZXplRnJhbWUoKm1Qcm9wU3RvcmUtPmdldENvbmZpZ09yRGllKE9CRDJfRlJFRVpFX0ZSQU1FKSk7Cit9CisKK3ZvaWQgRW11bGF0ZWRWZWhpY2xlSGFsOjppbml0U3RhdGljQ29uZmlnKCkgeworICAgIGZvciAoYXV0byYmIGNmZyA9IHN0ZDo6YmVnaW4oa1ZlaGljbGVQcm9wZXJ0aWVzKTsgY2ZnICE9IHN0ZDo6ZW5kKGtWZWhpY2xlUHJvcGVydGllcyk7ICsrY2ZnKSB7CisgICAgICAgIFYyXzA6OlZlaGljbGVQcm9wZXJ0eVN0b3JlOjpUb2tlbkZ1bmN0aW9uIHRva2VuRnVuY3Rpb24gPSBudWxscHRyOworCisgICAgICAgIHN3aXRjaCAoY2ZnLT5wcm9wKSB7CisgICAgICAgICAgICBjYXNlIE9CRDJfRlJFRVpFX0ZSQU1FOiB7CisgICAgICAgICAgICAgICAgdG9rZW5GdW5jdGlvbiA9IFtdIChjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiBwcm9wVmFsdWUpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb3BWYWx1ZS50aW1lc3RhbXA7CisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBtUHJvcFN0b3JlLT5yZWdpc3RlclByb3BlcnR5KCpjZmcsIHRva2VuRnVuY3Rpb24pOworICAgIH0KK30KKworRW11bGF0ZWRWZWhpY2xlSGFsOjpWZWhpY2xlUHJvcFZhbHVlUHRyIEVtdWxhdGVkVmVoaWNsZUhhbDo6Z2V0KAorICAgICAgICBjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgIFYyXzA6OlN0YXR1c0NvZGUqIG91dFN0YXR1cykgeworCisgICAgYXV0byBwcm9wSWQgPSByZXF1ZXN0ZWRQcm9wVmFsdWUucHJvcDsKKyAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIHYgPSBudWxscHRyOworICAgIGF1dG8mIHBvb2wgPSAqZ2V0VmFsdWVQb29sKCk7CisKKyAgICBzd2l0Y2ggKHByb3BJZCkgeworICAgIGNhc2UgT0JEMl9GUkVFWkVfRlJBTUU6CisgICAgICAgIHYgPSBwb29sLm9idGFpbkNvbXBsZXgoKTsKKyAgICAgICAgKm91dFN0YXR1cyA9IGZpbGxPYmQyRnJlZXplRnJhbWUocmVxdWVzdGVkUHJvcFZhbHVlLCB2LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgY2FzZSBPQkQyX0ZSRUVaRV9GUkFNRV9JTkZPOgorICAgICAgICB2ID0gcG9vbC5vYnRhaW5Db21wbGV4KCk7CisgICAgICAgICpvdXRTdGF0dXMgPSBmaWxsT2JkMkR0Y0luZm8odi5nZXQoKSk7CisgICAgICAgIHJldHVybiB2OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBWMl8wOjppbXBsOjpFbXVsYXRlZFZlaGljbGVIYWw6OmdldChyZXF1ZXN0ZWRQcm9wVmFsdWUsIG91dFN0YXR1cyk7CisgICAgfQorfQorCitWMl8wOjpTdGF0dXNDb2RlIEVtdWxhdGVkVmVoaWNsZUhhbDo6c2V0KGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgeworICAgIGF1dG8gcHJvcElkID0gcHJvcFZhbHVlLnByb3A7CisgICAgc3dpdGNoIChwcm9wSWQpIHsKKyAgICBjYXNlIE9CRDJfRlJFRVpFX0ZSQU1FX0NMRUFSOgorICAgICAgICByZXR1cm4gY2xlYXJPYmQyRnJlZXplRnJhbWVzKHByb3BWYWx1ZSk7CisgICAgY2FzZSBWRUhJQ0xFX01BUF9TRVJWSUNFOgorICAgICAgICAvLyBQbGFjZWhvbGRlciBmb3IgZnV0dXJlIGltcGxlbWVudGF0aW9uIG9mIFZNUyBwcm9wZXJ0eSBpbiB0aGUgZGVmYXVsdCBoYWwuIEZvciBub3csIGp1c3QKKyAgICAgICAgLy8gcmV0dXJucyBPSzsgb3RoZXJ3aXNlLCBoYWwgY2xpZW50cyBjcmFzaCB3aXRoIHByb3BlcnR5IG5vdCBzdXBwb3J0ZWQuCisgICAgICAgIHJldHVybiBWMl8wOjpTdGF0dXNDb2RlOjpPSzsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gVjJfMDo6aW1wbDo6RW11bGF0ZWRWZWhpY2xlSGFsOjpzZXQocHJvcFZhbHVlKTsKKyAgICB9Cit9CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzEKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0VtdWxhdGVkVmVoaWNsZUhhbC5oIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L2ltcGwvdmhhbF92Ml8xL0VtdWxhdGVkVmVoaWNsZUhhbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjYzNiNzkKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvaW1wbC92aGFsX3YyXzEvRW11bGF0ZWRWZWhpY2xlSGFsLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMV9pbXBsX0VtdWxhdGVkVmVoaWNsZUhhbF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2F1dG9tb3RpdmVfdmVoaWNsZV9WMl8xX2ltcGxfRW11bGF0ZWRWZWhpY2xlSGFsX0hfCisKKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlIDx1dGlscy9TeXN0ZW1DbG9jay5oPgorCisjaW5jbHVkZSA8dmhhbF92Ml8wL0VtdWxhdGVkVmVoaWNsZUhhbC5oPgorI2luY2x1ZGUgPHZoYWxfdjJfMC9WZWhpY2xlSGFsLmg+CisjaW5jbHVkZSA8dmhhbF92Ml8wL1ZlaGljbGVQcm9wZXJ0eVN0b3JlLmg+CisjaW5jbHVkZSA8dmhhbF92Ml8xL09iZDJTZW5zb3JTdG9yZS5oPgorCisjaW5jbHVkZSAiRGVmYXVsdENvbmZpZy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzEgeworCituYW1lc3BhY2UgaW1wbCB7CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ6OnBsYWNlaG9sZGVyczsKKworY2xhc3MgRW11bGF0ZWRWZWhpY2xlSGFsIDogcHVibGljIFYyXzA6OmltcGw6OkVtdWxhdGVkVmVoaWNsZUhhbCB7CitwdWJsaWM6CisgICAgRW11bGF0ZWRWZWhpY2xlSGFsKFYyXzA6OlZlaGljbGVQcm9wZXJ0eVN0b3JlKiBwcm9wU3RvcmUpCisgICAgICAgIDogVjJfMDo6aW1wbDo6RW11bGF0ZWRWZWhpY2xlSGFsKHByb3BTdG9yZSksIG1Qcm9wU3RvcmUocHJvcFN0b3JlKSB7CisgICAgICAgIGluaXRTdGF0aWNDb25maWcoKTsKKyAgICB9CisKKyAgICBWZWhpY2xlUHJvcFZhbHVlUHRyIGdldChjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVjJfMDo6U3RhdHVzQ29kZSogb3V0U3RhdHVzKSBvdmVycmlkZTsKKworICAgIFYyXzA6OlN0YXR1c0NvZGUgc2V0KGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wVmFsdWUmIHByb3BWYWx1ZSkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIG9uQ3JlYXRlKCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgdm9pZCBpbml0U3RhdGljQ29uZmlnKCk7CisgICAgdm9pZCBpbml0T2JkMkxpdmVGcmFtZShjb25zdCBWMl8wOjpWZWhpY2xlUHJvcENvbmZpZyYgcHJvcENvbmZpZyk7CisgICAgdm9pZCBpbml0T2JkMkZyZWV6ZUZyYW1lKGNvbnN0IFYyXzA6OlZlaGljbGVQcm9wQ29uZmlnJiBwcm9wQ29uZmlnKTsKKyAgICBWMl8wOjpTdGF0dXNDb2RlIGZpbGxPYmQyRnJlZXplRnJhbWUoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSYgcmVxdWVzdGVkUHJvcFZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFYyXzA6OlZlaGljbGVQcm9wVmFsdWUqIG91dFZhbHVlKTsKKyAgICBWMl8wOjpTdGF0dXNDb2RlIGZpbGxPYmQyRHRjSW5mbyhWMl8wOjpWZWhpY2xlUHJvcFZhbHVlICpvdXRWYWx1ZSk7CisgICAgVjJfMDo6U3RhdHVzQ29kZSBjbGVhck9iZDJGcmVlemVGcmFtZXMoY29uc3QgVjJfMDo6VmVoaWNsZVByb3BWYWx1ZSYgcHJvcFZhbHVlKTsKKworcHJpdmF0ZToKKyAgICBWMl8wOjpWZWhpY2xlUHJvcGVydHlTdG9yZSogbVByb3BTdG9yZTsKK307CisKK30gIC8vIGltcGwKKworfSAgLy8gbmFtZXNwYWNlIFYyXzEKK30gIC8vIG5hbWVzcGFjZSB2ZWhpY2xlCit9ICAvLyBuYW1lc3BhY2UgYXV0b21vdGl2ZQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9hdXRvbW90aXZlX3ZlaGljbGVfVjJfMF9pbXBsX0VtdWxhdGVkVmVoaWNsZUhhbF9IXwpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhZTY0ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImF1dG9tb3RpdmUudmVoaWNsZUAyLjEtc2VydmljZSIKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFRyYW5zcG9ydFN1cHBvcnQuaD4KKworI2luY2x1ZGUgPGlvc3RyZWFtPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9hdXRvbW90aXZlL3ZlaGljbGUvMi4xL0lWZWhpY2xlLmg+CisKKyNpbmNsdWRlIDx2aGFsX3YyXzAvVmVoaWNsZUhhbE1hbmFnZXIuaD4KKyNpbmNsdWRlIDx2aGFsX3YyXzAvVmVoaWNsZVByb3BlcnR5U3RvcmUuaD4KKyNpbmNsdWRlIDx2aGFsX3YyXzAvRW11bGF0ZWRWZWhpY2xlSGFsLmg+CisKKyNpbmNsdWRlIDx2aGFsX3YyXzEvRW11bGF0ZWRWZWhpY2xlSGFsLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBhbmRyb2lkOwordXNpbmcgbmFtZXNwYWNlIGFuZHJvaWQ6OmhhcmR3YXJlOworCituYW1lc3BhY2UgVjJfMSA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OnZlaGljbGU6OlYyXzE7CituYW1lc3BhY2UgVjJfMCA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmF1dG9tb3RpdmU6OnZlaGljbGU6OlYyXzA7CisKK3VzaW5nIFN0YXR1c0NvZGUgPSBWMl8wOjpTdGF0dXNDb2RlOwordXNpbmcgVmVoaWNsZVByb3BWYWx1ZSA9IFYyXzA6OlZlaGljbGVQcm9wVmFsdWU7CisKKy8qIEp1c3Qgd3JhcHBlciB0aGF0IHBhc3NlcyBhbGwgY2FsbHMgdG8gdGhlIHByb3ZpZGVkIFYyXzA6OklWZWhpY2xlIG9iamVjdCAqLworc3RydWN0IFZlaGljbGVfVjJfMSA6IHB1YmxpYyBWMl8xOjpJVmVoaWNsZSB7CisKKyAgICBWZWhpY2xlX1YyXzEoVjJfMDo6SVZlaGljbGUqIHZlaGljbGUyMCkgOiBtVmVoaWNsZTIwKHZlaGljbGUyMCkge30KKworICAgIC8vIE1ldGhvZHMgZGVyaXZlZCBmcm9tIElWZWhpY2xlCisgICAgUmV0dXJuPHZvaWQ+IGdldEFsbFByb3BDb25maWdzKGdldEFsbFByb3BDb25maWdzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gbVZlaGljbGUyMC0+Z2V0QWxsUHJvcENvbmZpZ3MoX2hpZGxfY2IpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBnZXRQcm9wQ29uZmlncyhjb25zdCBoaWRsX3ZlYzxpbnQzMl90PiYgcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0UHJvcENvbmZpZ3NfY2IgX2hpZGxfY2IpICBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBtVmVoaWNsZTIwLT5nZXRQcm9wQ29uZmlncyhwcm9wZXJ0aWVzLCBfaGlkbF9jYik7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IGdldChjb25zdCBWMl8wOjpWZWhpY2xlUHJvcFZhbHVlJiByZXF1ZXN0ZWRQcm9wVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICBnZXRfY2IgX2hpZGxfY2IpICBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBtVmVoaWNsZTIwLT5nZXQocmVxdWVzdGVkUHJvcFZhbHVlLCBfaGlkbF9jYik7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1c0NvZGU+IHNldChjb25zdCBWZWhpY2xlUHJvcFZhbHVlJiB2YWx1ZSkgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gbVZlaGljbGUyMC0+c2V0KHZhbHVlKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzQ29kZT4gc3Vic2NyaWJlKGNvbnN0IHNwPFYyXzA6OklWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFYyXzA6OlN1YnNjcmliZU9wdGlvbnM+JgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucykgIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIG1WZWhpY2xlMjAtPnN1YnNjcmliZShjYWxsYmFjaywgb3B0aW9ucyk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1c0NvZGU+IHVuc3Vic2NyaWJlKGNvbnN0IHNwPFYyXzA6OklWZWhpY2xlQ2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBwcm9wSWQpICBvdmVycmlkZSB7CisgICAgICAgIHJldHVybiBtVmVoaWNsZTIwLT51bnN1YnNjcmliZShjYWxsYmFjaywgcHJvcElkKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gZGVidWdEdW1wKGRlYnVnRHVtcF9jYiBfaGlkbF9jYiA9IG51bGxwdHIpIG92ZXJyaWRlIHsKKyAgICAgICAgcmV0dXJuIG1WZWhpY2xlMjAtPmRlYnVnRHVtcChfaGlkbF9jYik7CisgICAgfQorCitwcml2YXRlOgorICAgIFYyXzA6OklWZWhpY2xlKiBtVmVoaWNsZTIwOworfTsKKworaW50IG1haW4oaW50IC8qIGFyZ2MgKi8sIGNoYXIqIC8qIGFyZ3YgKi8gW10pIHsKKyAgICBhdXRvIHN0b3JlID0gc3RkOjptYWtlX3VuaXF1ZTxWMl8wOjpWZWhpY2xlUHJvcGVydHlTdG9yZT4oKTsKKyAgICBhdXRvIGhhbCA9IHN0ZDo6bWFrZV91bmlxdWU8VjJfMTo6aW1wbDo6RW11bGF0ZWRWZWhpY2xlSGFsPihzdG9yZS5nZXQoKSk7CisgICAgYXV0byBlbXVsYXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8VjJfMDo6aW1wbDo6VmVoaWNsZUVtdWxhdG9yPihoYWwuZ2V0KCkpOworICAgIGF1dG8gdmVoaWNsZU1hbmFnZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFYyXzA6OlZlaGljbGVIYWxNYW5hZ2VyPihoYWwuZ2V0KCkpOworCisgICAgVmVoaWNsZV9WMl8xIHZlaGljbGUyMSh2ZWhpY2xlTWFuYWdlci5nZXQoKSk7CisKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDEsIHRydWUgLyogY2FsbGVyV2lsbEpvaW4gKi8pOworCisgICAgQUxPR0koIlJlZ2lzdGVyaW5nIGFzIHNlcnZpY2UuLi4iKTsKKyAgICBzdGF0dXNfdCBzdGF0dXMgPSB2ZWhpY2xlMjEucmVnaXN0ZXJBc1NlcnZpY2UoKTsKKworICAgIGlmIChzdGF0dXMgIT0gT0spIHsKKyAgICAgICAgQUxPR0UoIlVuYWJsZSB0byByZWdpc3RlciB2ZWhpY2xlIHNlcnZpY2UgKCVkKS4iLCBzdGF0dXMpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBBTE9HSSgiUmVhZHkiKTsKKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworICAgIHJldHVybiAxOworfQpkaWZmIC0tZ2l0IGEvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS9kZWZhdWx0L3Rlc3RzL09iZDJTZW5zb3JTdG9yZV90ZXN0LmNwcCBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC90ZXN0cy9PYmQyU2Vuc29yU3RvcmVfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAxYzBmNAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvZGVmYXVsdC90ZXN0cy9PYmQyU2Vuc29yU3RvcmVfdGVzdC5jcHAKQEAgLTAsMCArMSwyODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisgI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKKyNpbmNsdWRlICJ2aGFsX3YyXzAvT2JkMlNlbnNvclN0b3JlLmgiCisjaW5jbHVkZSAidmhhbF92Ml8wL1ZlaGljbGVVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGF1dG9tb3RpdmUgeworbmFtZXNwYWNlIHZlaGljbGUgeworbmFtZXNwYWNlIFYyXzAgeworCituYW1lc3BhY2UgeworCitzdGF0aWMgY29uc3RleHByIHNpemVfdCBnZXROdW1WZW5kb3JJbnRlZ2VyU2Vuc29ycygpIHsKKyAgICByZXR1cm4gNTsKK30KK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IGdldE51bVZlbmRvckZsb2F0U2Vuc29ycygpIHsKKyAgICByZXR1cm4gMzsKK30KKworLy8gdGhpcyBzdHJ1Y3QgaG9sZHMgaW5mb3JtYXRpb24gbmVjZXNzYXJ5IGZvciBhIHRlc3QgdG8gYmUgYWJsZSB0byB2YWxpZGF0ZQorLy8gdGhhdCB0aGUgc2Vuc29yIGJpdG1hc2sgY29udGFpbnMgdGhlIHJpZ2h0IGRhdGE6CisvLyAgIC0gdGhlIGluZGV4IG9mIHRoZSBieXRlIGF0IHdoaWNoIHRoZSBiaXQgZm9yIGEgZ2l2ZW4gc2Vuc29yIGxpdmVzCisvLyAgIC0gdGhlIGV4cGVjdGVkIHZhbHVlIG9mIHRoYXQgYnl0ZSBnaXZlbiB0aGF0IGEgY2VydGFpbiBzZW5zb3IgaXMgcHJlc2VudAorY2xhc3MgQml0bWFza0luZGV4aW5nSW5mbyB7CitwdWJsaWM6CisgICAgc2l6ZV90IG1CeXRlSW5kZXg7CisgICAgdWludDhfdCBtRXhwZWN0ZWRCeXRlVmFsdWU7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byB2YWxpZGF0ZSB0aGUgYml0bWFzayBmb3IgYW4KKyAgICAvLyBpbnRlZ2VyLXZhbHVlZCBzZW5zb3IuCisgICAgc3RhdGljIEJpdG1hc2tJbmRleGluZ0luZm8gZ2V0Rm9ySW50ZWdlclNlbnNvcihzaXplX3QgaW5kZXgpIHsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGluZGV4SW5CaXRzdHJlYW0gPSBpbmRleDsKKyAgICAgICAgcmV0dXJuIGdldEZvckJpdHN0cmVhbUluZGV4KGluZGV4SW5CaXRzdHJlYW0pOworICAgIH0KKworICAgIC8vIFJldHVybnMgdGhlIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIHZhbGlkYXRlIHRoZSBiaXRtYXNrIGZvciBhCisgICAgLy8gZmxvYXQtdmFsdWVkIHNlbnNvci4KKyAgICBzdGF0aWMgQml0bWFza0luZGV4aW5nSW5mbyBnZXRGb3JGbG9hdFNlbnNvcihzaXplX3QgaW5kZXgpIHsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGluZGV4SW5CaXRzdHJlYW0gPSB0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKyBnZXROdW1WZW5kb3JJbnRlZ2VyU2Vuc29ycygpICsgaW5kZXg7CisgICAgICAgIHJldHVybiBnZXRGb3JCaXRzdHJlYW1JbmRleChpbmRleEluQml0c3RyZWFtKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RhdGljIEJpdG1hc2tJbmRleGluZ0luZm8gZ2V0Rm9yQml0c3RyZWFtSW5kZXgoc2l6ZV90IGluZGV4SW5CaXRzdHJlYW0pIHsKKyAgICAgICAgQml0bWFza0luZGV4aW5nSW5mbyBpbmRleGluZ0luZm87CisgICAgICAgIGluZGV4aW5nSW5mby5tQnl0ZUluZGV4ID0gaW5kZXhJbkJpdHN0cmVhbSAvIDg7CisgICAgICAgIGluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUgPSAxIDw8IChpbmRleEluQml0c3RyZWFtICUgOCk7CisgICAgICAgIHJldHVybiBpbmRleGluZ0luZm87CisgICAgfQorfTsKKworc3RhdGljIE9iZDJTZW5zb3JTdG9yZSBnZXRTZW5zb3JTdG9yZSgpIHsKKyAgICByZXR1cm4gT2JkMlNlbnNvclN0b3JlKGdldE51bVZlbmRvckludGVnZXJTZW5zb3JzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXROdW1WZW5kb3JGbG9hdFNlbnNvcnMoKSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgdGhlIGZpcnN0IGludGVnZXIgc2Vuc29yLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRGaXJzdEludGVnZXJTZW5zb3IpIHsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6RlVFTF9TWVNURU1fU1RBVFVTLAorICAgICAgICB0b0ludChGdWVsU3lzdGVtU3RhdHVzOjpDTE9TRURfTE9PUCkpOworICAgIGNvbnN0IGF1dG8mIGludGVnZXJTZW5zb3JzKHNlbnNvclN0b3JlLmdldEludGVnZXJTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICB0b0ludChGdWVsU3lzdGVtU3RhdHVzOjpDTE9TRURfTE9PUCksCisgICAgICAgIGludGVnZXJTZW5zb3JzW3RvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkZVRUxfU1lTVEVNX1NUQVRVUyldKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIGluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JJbnRlZ2VyU2Vuc29yKAorICAgICAgICB0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpGVUVMX1NZU1RFTV9TVEFUVVMpKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICBzZW5zb3JCaXRtYXNrW2luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgdGhlIGZpcnN0IGZsb2F0IHNlbnNvci4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0Rmlyc3RGbG9hdFNlbnNvcikgeworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRGbG9hdFNlbnNvcigKKyAgICAgICAgT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkNBTENVTEFURURfRU5HSU5FX0xPQUQsCisgICAgICAgIDEuMjVmKTsKKyAgICBjb25zdCBhdXRvJiBmbG9hdFNlbnNvcnMoc2Vuc29yU3RvcmUuZ2V0RmxvYXRTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICAxLjI1ZiwKKyAgICAgICAgZmxvYXRTZW5zb3JzW3RvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpDQUxDVUxBVEVEX0VOR0lORV9MT0FEKV0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckZsb2F0U2Vuc29yKAorICAgICAgICB0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6Q0FMQ1VMQVRFRF9FTkdJTkVfTE9BRCkpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIGluZGV4aW5nSW5mby5tRXhwZWN0ZWRCeXRlVmFsdWUsCisgICAgICAgIHNlbnNvckJpdG1hc2tbaW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKK30KKworLy8gVGVzdCB0aGF0IG9uZSBjYW4gc2V0IGFuZCByZXRyaWV2ZSBhIHZhbHVlIGZvciBhbiBpbnRlZ2VyIHNlbnNvci4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0QW55SW50ZWdlclNlbnNvcikgeworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRJbnRlZ2VyU2Vuc29yKAorICAgICAgICBPYmQySW50ZWdlclNlbnNvckluZGV4OjpBQlNPTFVURV9CQVJPTUVUUklDX1BSRVNTVVJFLAorICAgICAgICA0MDAwKTsKKyAgICBjb25zdCBhdXRvJiBpbnRlZ2VyU2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRJbnRlZ2VyU2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSg0MDAwLAorICAgICAgICBpbnRlZ2VyU2Vuc29yc1t0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpBQlNPTFVURV9CQVJPTUVUUklDX1BSRVNTVVJFKV0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckludGVnZXJTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkFCU09MVVRFX0JBUk9NRVRSSUNfUFJFU1NVUkUpKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICBzZW5zb3JCaXRtYXNrW2luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgYSBmbG9hdCBzZW5zb3IuCitURVNUKE9iZDJTZW5zb3JTdG9yZVRlc3QsIHNldEFueUZsb2F0U2Vuc29yKSB7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6T1hZR0VOX1NFTlNPUjNfVk9MVEFHRSwKKyAgICAgICAgMi41Zik7CisgICAgY29uc3QgYXV0byYgZmxvYXRTZW5zb3JzKHNlbnNvclN0b3JlLmdldEZsb2F0U2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSgyLjVmLAorICAgICAgICBmbG9hdFNlbnNvcnNbdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6Ok9YWUdFTl9TRU5TT1IzX1ZPTFRBR0UpXSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyBpbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9yRmxvYXRTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpPWFlHRU5fU0VOU09SM19WT0xUQUdFKSkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgc2Vuc29yQml0bWFza1tpbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIHRoZSBsYXN0IHN5c3RlbSBpbnRlZ2VyIHNlbnNvci4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0TGFzdFN5c3RlbUludGVnZXJTZW5zb3IpIHsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgsCisgICAgICAgIDMwKTsKKyAgICBjb25zdCBhdXRvJiBpbnRlZ2VyU2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRJbnRlZ2VyU2Vuc29ycygpKTsKKyAgICBjb25zdCBhdXRvJiBzZW5zb3JCaXRtYXNrKHNlbnNvclN0b3JlLmdldFNlbnNvcnNCaXRtYXNrKCkpOworICAgIEFTU0VSVF9FUSgzMCwKKyAgICAgICAgaW50ZWdlclNlbnNvcnNbdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpXSk7CisgICAgY29uc3QgQml0bWFza0luZGV4aW5nSW5mbyBpbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9ySW50ZWdlclNlbnNvcigKKyAgICAgICAgdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpKSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICBzZW5zb3JCaXRtYXNrW2luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgdGhlIGxhc3Qgc3lzdGVtIGZsb2F0IHNlbnNvci4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0TGFzdFN5c3RlbUZsb2F0U2Vuc29yKSB7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgsCisgICAgICAgIDIuNWYpOworICAgIGNvbnN0IGF1dG8mIGZsb2F0U2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRGbG9hdFNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoMi41ZiwKKyAgICAgICAgZmxvYXRTZW5zb3JzW3RvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCldKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIGluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JGbG9hdFNlbnNvcigKKyAgICAgICAgdG9JbnQoT2JkMkZsb2F0U2Vuc29ySW5kZXg6OkxBU1RfU1lTVEVNX0lOREVYKSkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgc2Vuc29yQml0bWFza1tpbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIHR3byBpbnRlZ2VyIHNlbnNvcnMgYXQgb25jZS4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0VHdvSW50ZWdlclNlbnNvcnMpIHsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6Q09OVFJPTF9NT0RVTEVfVk9MVEFHRSwKKyAgICAgICAgNik7CisgICAgc2Vuc29yU3RvcmUuc2V0SW50ZWdlclNlbnNvcigKKyAgICAgICAgT2JkMkludGVnZXJTZW5zb3JJbmRleDo6VElNRV9TSU5DRV9UUk9VQkxFX0NPREVTX0NMRUFSRUQsCisgICAgICAgIDEyNDUpOworICAgIGNvbnN0IGF1dG8mIGludGVnZXJTZW5zb3JzKHNlbnNvclN0b3JlLmdldEludGVnZXJTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKDYsCisgICAgICAgIGludGVnZXJTZW5zb3JzW3RvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OkNPTlRST0xfTU9EVUxFX1ZPTFRBR0UpXSk7CisgICAgQVNTRVJUX0VRKDEyNDUsCisgICAgICAgIGludGVnZXJTZW5zb3JzW3RvSW50KE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXg6OlRJTUVfU0lOQ0VfVFJPVUJMRV9DT0RFU19DTEVBUkVEKV0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gdm9sdGFnZUluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JJbnRlZ2VyU2Vuc29yKAorICAgICAgICB0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpDT05UUk9MX01PRFVMRV9WT0xUQUdFKSkpOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gdGltZUluZGV4aW5nSW5mbyhCaXRtYXNrSW5kZXhpbmdJbmZvOjpnZXRGb3JJbnRlZ2VyU2Vuc29yKAorICAgICAgICB0b0ludChPYmQySW50ZWdlclNlbnNvckluZGV4OjpUSU1FX1NJTkNFX1RST1VCTEVfQ09ERVNfQ0xFQVJFRCkpKTsKKyAgICBpZiAodm9sdGFnZUluZGV4aW5nSW5mby5tQnl0ZUluZGV4ID09IHRpbWVJbmRleGluZ0luZm8ubUJ5dGVJbmRleCkgeworICAgICAgICBBU1NFUlRfRVEoCisgICAgICAgICAgICB2b2x0YWdlSW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSB8CisgICAgICAgICAgICB0aW1lSW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgICAgIHNlbnNvckJpdG1hc2tbdGltZUluZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBBU1NFUlRfRVEoCisgICAgICAgICAgICB0aW1lSW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgICAgIHNlbnNvckJpdG1hc2tbdGltZUluZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7CisgICAgICAgIEFTU0VSVF9FUSgKKyAgICAgICAgICAgIHZvbHRhZ2VJbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICAgICAgc2Vuc29yQml0bWFza1t2b2x0YWdlSW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKKyAgICB9Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgdHdvIGZsb2F0IHNlbnNvcnMgYXQgb25jZS4KK1RFU1QoT2JkMlNlbnNvclN0b3JlVGVzdCwgc2V0VHdvRmxvYXRTZW5zb3JzKSB7CisgICAgT2JkMlNlbnNvclN0b3JlIHNlbnNvclN0b3JlKGdldFNlbnNvclN0b3JlKCkpOworICAgIHNlbnNvclN0b3JlLnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6VkVISUNMRV9TUEVFRCwKKyAgICAgICAgMS4yNWYpOworICAgIHNlbnNvclN0b3JlLnNldEZsb2F0U2Vuc29yKAorICAgICAgICBPYmQyRmxvYXRTZW5zb3JJbmRleDo6TUFGX0FJUl9GTE9XX1JBVEUsCisgICAgICAgIDIuNWYpOworICAgIGNvbnN0IGF1dG8mIGZsb2F0U2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRGbG9hdFNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoMS4yNWYsCisgICAgICAgIGZsb2F0U2Vuc29yc1t0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6VkVISUNMRV9TUEVFRCldKTsKKyAgICBBU1NFUlRfRVEoMi41ZiwKKyAgICAgICAgZmxvYXRTZW5zb3JzW3RvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpNQUZfQUlSX0ZMT1dfUkFURSldKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIHNwZWVkSW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckZsb2F0U2Vuc29yKAorICAgICAgICB0b0ludChPYmQyRmxvYXRTZW5zb3JJbmRleDo6VkVISUNMRV9TUEVFRCkpKTsKKyAgICBjb25zdCBCaXRtYXNrSW5kZXhpbmdJbmZvIGFpcmZsb3dJbmRleGluZ0luZm8oQml0bWFza0luZGV4aW5nSW5mbzo6Z2V0Rm9yRmxvYXRTZW5zb3IoCisgICAgICAgIHRvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpNQUZfQUlSX0ZMT1dfUkFURSkpKTsKKyAgICBpZiAoc3BlZWRJbmRleGluZ0luZm8ubUJ5dGVJbmRleCA9PSBhaXJmbG93SW5kZXhpbmdJbmZvLm1CeXRlSW5kZXgpIHsKKyAgICAgICAgQVNTRVJUX0VRKAorICAgICAgICAgICAgc3BlZWRJbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlIHwKKyAgICAgICAgICAgIGFpcmZsb3dJbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICAgICAgc2Vuc29yQml0bWFza1thaXJmbG93SW5kZXhpbmdJbmZvLm1CeXRlSW5kZXhdKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVF9FUSgKKyAgICAgICAgICAgIHNwZWVkSW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgICAgIHNlbnNvckJpdG1hc2tbc3BlZWRJbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworICAgICAgICBBU1NFUlRfRVEoCisgICAgICAgICAgICBhaXJmbG93SW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgICAgIHNlbnNvckJpdG1hc2tbYWlyZmxvd0luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7CisgICAgfQorfQorCisvLyBUZXN0IHRoYXQgb25lIGNhbiBzZXQgYW5kIHJldHJpZXZlIGEgdmFsdWUgZm9yIGEgdmVuZG9yIGludGVnZXIgc2Vuc29yLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRWZW5kb3JJbnRlZ2VyU2Vuc29yKSB7CisgICAgY29uc3Qgc2l6ZV90IHNlbnNvckluZGV4ID0gdG9JbnQoT2JkMkludGVnZXJTZW5zb3JJbmRleDo6TEFTVF9TWVNURU1fSU5ERVgpICsgMjsKKyAgICBPYmQyU2Vuc29yU3RvcmUgc2Vuc29yU3RvcmUoZ2V0U2Vuc29yU3RvcmUoKSk7CisgICAgc2Vuc29yU3RvcmUuc2V0SW50ZWdlclNlbnNvcihzZW5zb3JJbmRleCwgMjIpOworICAgIGNvbnN0IGF1dG8mIGludGVnZXJTZW5zb3JzKHNlbnNvclN0b3JlLmdldEludGVnZXJTZW5zb3JzKCkpOworICAgIGNvbnN0IGF1dG8mIHNlbnNvckJpdG1hc2soc2Vuc29yU3RvcmUuZ2V0U2Vuc29yc0JpdG1hc2soKSk7CisgICAgQVNTRVJUX0VRKDIyLCBpbnRlZ2VyU2Vuc29yc1tzZW5zb3JJbmRleF0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckludGVnZXJTZW5zb3IoCisgICAgICAgIHNlbnNvckluZGV4KSk7CisgICAgQVNTRVJUX0VRKAorICAgICAgICBpbmRleGluZ0luZm8ubUV4cGVjdGVkQnl0ZVZhbHVlLAorICAgICAgICBzZW5zb3JCaXRtYXNrW2luZGV4aW5nSW5mby5tQnl0ZUluZGV4XSk7Cit9CisKKy8vIFRlc3QgdGhhdCBvbmUgY2FuIHNldCBhbmQgcmV0cmlldmUgYSB2YWx1ZSBmb3IgYSB2ZW5kb3IgZmxvYXQgc2Vuc29yLgorVEVTVChPYmQyU2Vuc29yU3RvcmVUZXN0LCBzZXRWZW5kb3JGbG9hdFNlbnNvcikgeworICAgIGNvbnN0IHNpemVfdCBzZW5zb3JJbmRleCA9IHRvSW50KE9iZDJGbG9hdFNlbnNvckluZGV4OjpMQVNUX1NZU1RFTV9JTkRFWCkgKyAyOworICAgIE9iZDJTZW5zb3JTdG9yZSBzZW5zb3JTdG9yZShnZXRTZW5zb3JTdG9yZSgpKTsKKyAgICBzZW5zb3JTdG9yZS5zZXRGbG9hdFNlbnNvcihzZW5zb3JJbmRleCwgMS4yNWYpOworICAgIGNvbnN0IGF1dG8mIGZsb2F0U2Vuc29ycyhzZW5zb3JTdG9yZS5nZXRGbG9hdFNlbnNvcnMoKSk7CisgICAgY29uc3QgYXV0byYgc2Vuc29yQml0bWFzayhzZW5zb3JTdG9yZS5nZXRTZW5zb3JzQml0bWFzaygpKTsKKyAgICBBU1NFUlRfRVEoMS4yNWYsIGZsb2F0U2Vuc29yc1tzZW5zb3JJbmRleF0pOworICAgIGNvbnN0IEJpdG1hc2tJbmRleGluZ0luZm8gaW5kZXhpbmdJbmZvKEJpdG1hc2tJbmRleGluZ0luZm86OmdldEZvckZsb2F0U2Vuc29yKAorICAgICAgICBzZW5zb3JJbmRleCkpOworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgaW5kZXhpbmdJbmZvLm1FeHBlY3RlZEJ5dGVWYWx1ZSwKKyAgICAgICAgc2Vuc29yQml0bWFza1tpbmRleGluZ0luZm8ubUJ5dGVJbmRleF0pOworfQorCit9ICAvLyBuYW1lc3BhY2UgYW5vbnltb3VzCisKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgdmVoaWNsZQorfSAgLy8gbmFtZXNwYWNlIGF1dG9tb3RpdmUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvdHlwZXMuaGFsIGIvYXV0b21vdGl2ZS92ZWhpY2xlLzIuMS90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhkYzE0NAotLS0gL2Rldi9udWxsCisrKyBiL2F1dG9tb3RpdmUvdmVoaWNsZS8yLjEvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNjA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4xICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4xCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjE7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA7CisKKy8qKgorICogRXh0ZW5zaW9uIG9mIFZlaGljbGVQcm9wZXJ0eSBlbnVtIGRlY2xhcmVkIGluIFZlaGljbGUgSEFMIDIuMAorICovCitlbnVtIFZlaGljbGVQcm9wZXJ0eTogQDIuMDo6VmVoaWNsZVByb3BlcnR5IHsKKyAgICAvKioKKyAgICAgKiBSZXBvcnRzIHdoZWVsIHJvdGF0aW9uYWwgZGlzdGFuY2UgaW4gbWV0ZXJzIHNpbmNlIGxhc3Qgd2hlZWwgdGljaworICAgICAqIGV2ZW50CisgICAgICoKKyAgICAgKiBUaGUgdmFsdWUgaXMgYSB2ZWN0b3IgZWFjaCBlbGVtZW50IHJlcHJlc2VudHMgZGlzdGFuY2UgZm9yIGluZGl2aWR1YWwKKyAgICAgKiB3aGVlbCBpbiB0aGUgZm9sbG93aW5nIG9yZGVyOiBsZWZ0IGZyb250LCByaWdodCBmcm9udCwgbGVmdCByZWFyLAorICAgICAqIHJpZ2h0IHJlYXIuIFZlaGljbGVQcm9wVmFsdWUudGltZXN0YW1wIG11c3QgYmUgY29ycmVjdGx5IGZpbGxlZCBpbi4KKyAgICAgKgorICAgICAqIFZlbmRvcnMgbXVzdCBzcGVjaWZ5IHdoZWVscyB0aGF0IHN1cHBvcnQgdGhpcyBzZW5zb3IgaW4KKyAgICAgKiBWZWhpY2xlUHJvcENvbmZpZy5jb25maWdGbGFncy4gVGhlIGZvcm1hdCBvZiB0aGlzIGZpZWxkIGlzIGEgYml0c2V0IG9mCisgICAgICogdmFsdWVzIGZyb20gV2hlZWwgZW51bS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRSB8VmVoaWNsZVByb3BlcnR5Q2hhbmdlTW9kZTpDT05USU5VT1VTCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqIEB1bml0IFZlaGljbGVVbml0Ok1FVEVSCisgICAgICovCisgICAgV0hFRUxfVElDSyA9ICgKKyAgICAgIDB4MDMwNgorICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpGTE9BVF9WRUMKKyAgICAgIHwgVmVoaWNsZUFyZWE6R0xPQkFMKSwKKworICAgIC8qKgorICAgICAqIE9CRDIgTGl2ZSBTZW5zb3IgRGF0YQorICAgICAqCisgICAgICogVGhpcyBwcm9wZXJ0eSB1c2VzIENPTVBMRVggZGF0YSB0byBzZW5kIGEgc25hcHNob3Qgb2YgdGhlIGN1cnJlbnQgKGxpdmUpCisgICAgICogdmFsdWVzIG9mIHRoZSBPQkQyIHNlbnNvcnMgcHJvdmlkZWQgYnkgdGhlIHZlaGljbGUuCisgICAgICoKKyAgICAgKiBWZWhpY2xlUHJvcENvbmZpZworICAgICAqICAgY29uZmlnQXJyYXlbMF0gOiBudW1iZXIgb2YgdmVuZG9yLXNwZWNpZmljIGludGVnZXItdmFsdWVkIHNlbnNvcnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgcmV0dXJuZWQgaW4gYSBmcmFtZS4KKyAgICAgKiAgIGNvbmZpZ0FycmF5WzFdIDogbnVtYmVyIG9mIHZlbmRvci1zcGVjaWZpYyBmbG9hdC12YWx1ZWQgc2Vuc29ycworICAgICAqICAgICAgICAgICAgICAgICAgICB0aGF0IGNhbiBiZSByZXR1cm5lZCBpbiBhIGZyYW1lLgorICAgICAqCisgICAgICogVGhlIHZhbHVlcyBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czoKKyAgICAgKiB0aGUgaW5kaWNlcyBkZWZpbmVkIGluIE9iZDJJbnRlZ2VyU2Vuc29ySW5kZXggYXJlIHRvIGJlIHVzZWQgdG8KKyAgICAgKiByZWFkIGZyb20gaW50MzJWYWx1ZXM7CisgICAgICogdGhlIGluZGljZXMgZGVmaW5lZCBpbiBPYmQyRmxvYXRTZW5zb3JJbmRleCBhcmUgdG8gYmUgdXNlZCB0bworICAgICAqIHJlYWQgZnJvbSBmbG9hdFZhbHVlcy4KKyAgICAgKiB0aGUgZWxlbWVudHMgb2YgYnl0ZXMgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIGEgYml0bWFzaywgc3VjaCB0aGF0CisgICAgICogdGhlIGJpdHMgMCB0aHJ1IHRoZSBpbnRlZ2VyIHZhbHVlIG9mCisgICAgICogT2JkMkludGVnZXJTZW5zb3JJbmRleC5MQVNUX1NZU1RFTV9JTkRFWCArIHRoZSB2YWx1ZSBvZiBjb25maWdBcnJheVswXQorICAgICAqIGFyZSAxIGlmIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4IGlzIGEgdmFsaWQgc2Vuc29yIGluZGV4IHdob3NlIHZhbHVlIGNhbgorICAgICAqIGJlIHJlYWQgaW4gdGhlIHJldHVybmVkIGludDMyVmFsdWVzIHZlY3RvciwgMCBvdGhlcndpc2UuCisgICAgICogdGhlIGJpdHMgT2JkMkludGVnZXJTZW5zb3JJbmRleC5MQVNUX1NZU1RFTV9JTkRFWCsxIHRocnUKKyAgICAgKiBPYmQyRmxvYXRpbmdTZW5zb3JJbmRleC5MQVNUX1NZU1RFTV9JTkRFWCArIHRoZSB2YWx1ZSBvZiBjb25maWdBcnJheVsxXQorICAgICAqIGFyZSAxIGlmIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4IGlzIGEgdmFsaWQgc2Vuc29yIGluZGV4IHdob3NlIHZhbHVlCisgICAgICogY2FuIGJlIHJlYWQgaW4gdGhlIHJldHVybmVkIGZsb2F0VmFsdWVzIHZlY3RvciwgMCBvdGhlcndpc2UuCisgICAgICoKKyAgICAgKiBGb3IgZXhhbXBsZSwgaW50MzJWYWx1ZXNbMF0gY29ycmVzcG9uZHMgdG8gRlVFTF9TWVNURU1fU1RBVFVTLCBhbmQKKyAgICAgKiBmbG9hdFZhbHVlc1swXSBjb3JyZXNwb25kcyB0byBDQUxDVUxBVEVEX0VOR0lORV9MT0FELCBidXQgdGhhdCBtYXBwaW5nCisgICAgICogaXMgb25seSB2YWxpZCBpZiB0aGUgY29ycmVzcG9uZGluZyBiaXRzIGluIHRoZSBieXRlcyB2ZWN0b3IgYXJlIHNldCB0byAxLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIE9CRDJfTElWRV9GUkFNRSA9ICgKKyAgICAgIDB4MEQwMAorICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpDT01QTEVYCisgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBPQkQyIEZyZWV6ZSBGcmFtZSBTZW5zb3IgRGF0YQorICAgICAqCisgICAgICogVGhpcyBwcm9wZXJ0eSB1c2VzIENPTVBMRVggZGF0YSB0byBzZW5kIGEgc25hcHNob3Qgb2YgdGhlIHZhbHVlcyBvZiB0aGUKKyAgICAgKiBPQkQyIHNlbnNvcnMgcHJvdmlkZWQgYnkgdGhlIHZlaGljbGUgYXQgdGhlIHRpbWUgdGhhdCBhIGRpYWdub3N0aWMKKyAgICAgKiB0cm91Ymxlc2hvb3RpbmcgY29kZSAoRFRDKSB3YXMgcmVjb3JkZWQgYnkgdGhlIHZlaGljbGUuCisgICAgICoKKyAgICAgKiBWZWhpY2xlUHJvcENvbmZpZworICAgICAqICAgY29uZmlnQXJyYXlbMF0gOiBudW1iZXIgb2YgdmVuZG9yLXNwZWNpZmljIGludGVnZXItdmFsdWVkIHNlbnNvcnMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgdGhhdCBjYW4gYmUgcmV0dXJuZWQgaW4gYSBmcmFtZS4KKyAgICAgKiAgIGNvbmZpZ0FycmF5WzFdIDogbnVtYmVyIG9mIHZlbmRvci1zcGVjaWZpYyBmbG9hdC12YWx1ZWQgc2Vuc29ycworICAgICAqICAgICAgICAgICAgICAgICAgICB0aGF0IGNhbiBiZSByZXR1cm5lZCBpbiBhIGZyYW1lLgorICAgICAqCisgICAgICogQSBnZXQgb2YgdGhpcyBwcm9wZXJ0eSBtdXN0IHRha2UgdGhlIGZvbGxvd2luZyBmb3JtOgorICAgICAqICAgaW50NjRWYWx1ZXNbMF06IHRpbWVzdGFtcCBvZiB0aGUgZnJlZXplIGZyYW1lIHRvIHJldHJpZXZlLgorICAgICAqICAgICAgICAgICAgICAgICAgIFZhbGlkIHRpbWVzdGFtcHMgYXJlIGdpdmVuIGJ5IE9CRDJfRFRDX0lORk8uCisgICAgICoKKyAgICAgKiBUaGUgdmFsdWVzIGFyZSB0byBiZSBpbnRlcnByZXRlZCBhcyBmb2xsb3dzOgorICAgICAqIHRoZSBpbmRpY2VzIGRlZmluZWQgaW4gT2JkMkludGVnZXJTZW5zb3JJbmRleCBhcmUgdG8gYmUgdXNlZCB0bworICAgICAqIHJlYWQgZnJvbSBpbnQzMlZhbHVlczsKKyAgICAgKiB0aGUgaW5kaWNlcyBkZWZpbmVkIGluIE9iZDJGbG9hdFNlbnNvckluZGV4IGFyZSB0byBiZSB1c2VkIHRvCisgICAgICogcmVhZCBmcm9tIGZsb2F0VmFsdWVzOworICAgICAqIHRoZSBlbGVtZW50cyBvZiBieXRlcyBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgYSBiaXRtYXNrLCBzdWNoIHRoYXQKKyAgICAgKiB0aGUgYml0cyAwIHRocnUgdGhlIGludGVnZXIgdmFsdWUgb2YKKyAgICAgKiBPYmQySW50ZWdlclNlbnNvckluZGV4LkxBU1RfU1lTVEVNX0lOREVYICsgdGhlIHZhbHVlIG9mIGNvbmZpZ0FycmF5WzBdCisgICAgICogYXJlIDEgaWYgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXggaXMgYSB2YWxpZCBzZW5zb3IgaW5kZXggd2hvc2UgdmFsdWUgY2FuCisgICAgICogYmUgcmVhZCBpbiB0aGUgcmV0dXJuZWQgaW50MzJWYWx1ZXMgdmVjdG9yLCAwIG90aGVyd2lzZS4KKyAgICAgKiB0aGUgYml0cyBPYmQySW50ZWdlclNlbnNvckluZGV4LkxBU1RfU1lTVEVNX0lOREVYKzEgdGhydQorICAgICAqIE9iZDJGbG9hdGluZ1NlbnNvckluZGV4LkxBU1RfU1lTVEVNX0lOREVYICsgdGhlIHZhbHVlIG9mIGNvbmZpZ0FycmF5WzFdCisgICAgICogYXJlIDEgaWYgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXggaXMgYSB2YWxpZCBzZW5zb3IgaW5kZXggd2hvc2UgdmFsdWUKKyAgICAgKiBjYW4gYmUgcmVhZCBpbiB0aGUgcmV0dXJuZWQgZmxvYXRWYWx1ZXMgdmVjdG9yLCAwIG90aGVyd2lzZS4KKyAgICAgKiBzdHJpbmdWYWx1ZSBpcyB0aGUgRFRDIHRoYXQgY2F1c2VkIHRoaXMgZnJlZXplIGZyYW1lIHRvIGJlIHJlY29yZGVkLgorICAgICAqCisgICAgICogRm9yIGV4YW1wbGUsIGludDMyVmFsdWVzWzBdIGNvcnJlc3BvbmRzIHRvIEZVRUxfU1lTVEVNX1NUQVRVUywgYW5kCisgICAgICogZmxvYXRWYWx1ZXNbMF0gY29ycmVzcG9uZHMgdG8gQ0FMQ1VMQVRFRF9FTkdJTkVfTE9BRCwgYnV0IHRoYXQgbWFwcGluZworICAgICAqIGlzIG9ubHkgdmFsaWQgaWYgdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBpbiB0aGUgYnl0ZXMgdmVjdG9yIGFyZSBzZXQgdG8gMSwKKyAgICAgKiBhbmQgYSBwb3NzaWJsZSB2YWxpZCBzdHJpbmdWYWx1ZSBpcyAiUDAxNzYiIHRvIGluZGljYXRlIGEgbWFsZnVuY3Rpb24KKyAgICAgKiBvZiB0aGUgZnVlbCBjb21wb3NpdGlvbiBzZW5zb3IgY2lyY3VpdC4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQUQKKyAgICAgKi8KKyAgICBPQkQyX0ZSRUVaRV9GUkFNRSA9ICgKKyAgICAgIDB4MEQwMQorICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5VHlwZTpDT01QTEVYCisgICAgICB8IFZlaGljbGVBcmVhOkdMT0JBTCksCisKKyAgICAvKioKKyAgICAgKiBPQkQyIEZyZWV6ZSBGcmFtZSBJbmZvcm1hdGlvbgorICAgICAqCisgICAgICogVGhpcyBwcm9wZXJ0eSBkZXNjcmliZXMgdGhlIGN1cnJlbnQgZnJlZXplIGZyYW1lcyBzdG9yZWQgaW4gdmVoaWNsZQorICAgICAqIG1lbW9yeSBhbmQgYXZhaWxhYmxlIGZvciByZXRyaWV2YWwgdmlhIE9CRDJfRlJFRVpFX0ZSQU1FLgorICAgICAqCisgICAgICogVGhlIHZhbHVlcyBhcmUgdG8gYmUgaW50ZXJwcmV0ZWQgYXMgZm9sbG93czoKKyAgICAgKiBlYWNoIGVsZW1lbnQgb2YgaW50NjRWYWx1ZXMgaXMgdGhlIHRpbWVzdGFtcCBhdCB3aGljaCBhIGEgZmF1bHQgY29kZQorICAgICAqIGhhcyBiZWVuIGRldGVjdGVkIGFuZCB0aGUgY29ycmVzcG9uZGluZyBmcmVlemUgZnJhbWUgc3RvcmVkLCBhbmQgZWFjaAorICAgICAqIHN1Y2ggZWxlbWVudCBjYW4gYmUgdXNlZCBhcyB0aGUga2V5IHRvIE9CRDJfRlJFRVpFX0ZSQU1FIHRvIHJldHJpZXZlCisgICAgICogdGhlIGNvcnJlc3BvbmRpbmcgZnJlZXplIGZyYW1lLgorICAgICAqCisgICAgICogQGNoYW5nZV9tb2RlIFZlaGljbGVQcm9wZXJ0eUNoYW5nZU1vZGU6T05fQ0hBTkdFCisgICAgICogQGFjY2VzcyBWZWhpY2xlUHJvcGVydHlBY2Nlc3M6UkVBRAorICAgICAqLworICAgIE9CRDJfRlJFRVpFX0ZSQU1FX0lORk8gPSAoCisgICAgICAweDBEMDIKKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Q09NUExFWAorICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogT0JEMiBGcmVlemUgRnJhbWUgQ2xlYXIKKyAgICAgKgorICAgICAqIFRoaXMgcHJvcGVydHkgYWxsb3dzIGRlbGV0aW9uIG9mIGFueSBvZiB0aGUgZnJlZXplIGZyYW1lcyBzdG9yZWQgaW4KKyAgICAgKiB2ZWhpY2xlIG1lbW9yeSwgYXMgZGVzY3JpYmVkIGJ5IE9CRDJfRFRDX0lORk8uCisgICAgICoKKyAgICAgKiBBIHNldCBvZiB0aGlzIHByb3BlcnR5IGlzIHRvIGJlIGludGVycHJldGVkIGFzIGZvbGxvd3M6CisgICAgICogaWYgaW50NjRWYWx1ZXMgY29udGFpbnMgbm8gZWxlbWVudHMsIHRoZW4gYWxsIERUQ3Mgc3RvcmVkIHdpbGwgYmUgY2xlYXJlZDsKKyAgICAgKiBpZiBpbnQ2NFZhbHVlcyBjb250YWlucyBvbmUgb3IgbW9yZSBlbGVtZW50cywgdGhlbiBEVENzIGF0IHRoZSB0aW1lc3RhbXBzCisgICAgICogc3RvcmVkIGluIGludDY0VmFsdWVzIHdpbGwgYmUgY2xlYXJlZCwgYW5kIHRoZSBvdGhlcnMgbm90IGNsZWFyZWQsIGV4Y2VwdAorICAgICAqIHRoZSBtZW1vcnkgd2lsbCBiZSBjb21wYWN0ZWQgc28gdGhhdCBhbGwgcmVtYWluaW5nIERUQ3MgYXJlIHN0b3JlZAorICAgICAqIGNvbnRpZ3VvdXNseS4KKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOldSSVRFCisgICAgICovCisgICAgT0JEMl9GUkVFWkVfRlJBTUVfQ0xFQVIgPSAoCisgICAgICAweDBEMDMKKyAgICAgIHwgVmVoaWNsZVByb3BlcnR5R3JvdXA6U1lTVEVNCisgICAgICB8IFZlaGljbGVQcm9wZXJ0eVR5cGU6Q09NUExFWAorICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorCisgICAgLyoqCisgICAgICogVmVoaWNsZSBNYXBzIFNlcnZpY2UgKFZNUykgbWVzc2FnZQorICAgICAqCisgICAgICogVGhpcyBwcm9wZXJ0eSB1c2VzIENPTVBMRVggZGF0YSB0byBjb21tdW5pY2F0ZSB2bXMgbWVzc2FnZXMuCisgICAgICoKKyAgICAgKiBJdHMgY29udGVudHMgYXJlIHRvIGJlIGludGVycHJldGVkIGFzIGZvbGxvd3M6CisgICAgICogdGhlIGluZGljZXMgZGVmaW5lZCBpbiBWbXNNZXNzYWdlSW50ZWdlclZhbHVlc0luZGV4IGFyZSB0byBiZSB1c2VkIHRvCisgICAgICogcmVhZCBmcm9tIGludDMyVmFsdWVzOworICAgICAqIGJ5dGVzIGlzIGEgc2VyaWFsaXplZCBWTVMgbWVzc2FnZSBhcyBkZWZpbmVkIGluIHRoZSB2bXMgcHJvdG9jb2wKKyAgICAgKiB3aGljaCBpcyBvcGFxdWUgdG8gdGhlIGZyYW1ld29yazsKKyAgICAgKgorICAgICAqIEBjaGFuZ2VfbW9kZSBWZWhpY2xlUHJvcGVydHlDaGFuZ2VNb2RlOk9OX0NIQU5HRQorICAgICAqIEBhY2Nlc3MgVmVoaWNsZVByb3BlcnR5QWNjZXNzOlJFQURfV1JJVEUKKyAgICAgKi8KKyAgICBWRUhJQ0xFX01BUF9TRVJWSUNFID0gKAorICAgICAgICAweDBDMDAKKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlHcm91cDpTWVNURU0KKyAgICAgICAgfCBWZWhpY2xlUHJvcGVydHlUeXBlOkNPTVBMRVgKKyAgICAgICAgfCBWZWhpY2xlQXJlYTpHTE9CQUwpLAorfTsKKworLyoqIFRoZSBzdGF0dXMgb2YgYSBmdWVsIHN5c3RlbSBhcyBkZXNjcmliZWQgYnkgdGhlIE9CRDIgc3BlY2lmaWNhdGlvbi4gKi8KK2VudW0gRnVlbFN5c3RlbVN0YXR1cyA6IGludDMyX3QgeworICBPUEVOX0lOU1VGRklDSUVOVF9FTkdJTkVfVEVNUEVSQVRVUkUgPSAxLAorCisgIENMT1NFRF9MT09QID0gMiwKKworICBPUEVOX0VOR0lORV9MT0FEX09SX0RFQ0VMRVJBVElPTiA9IDQsCisKKyAgT1BFTl9TWVNURU1fRkFJTFVSRSA9IDgsCisKKyAgQ0xPU0VEX0xPT1BfQlVUX0ZFRURCQUNLX0ZBVUxUID0gMTYsCit9OworCisvKiogRGVmaW5lcyB3aGljaCBpZ25pdGlvbiBtb25pdG9ycyBhcmUgYXZhaWxhYmxlIHRvIGJlIHJlYWQuICovCitlbnVtIElnbml0aW9uTW9uaXRvcktpbmQgOiBpbnQzMl90IHsKKyAgU1BBUksgPSAwLAorCisgIENPTVBSRVNTSU9OID0gMSwKK307CisKKy8qKiBUaGVzZSBpZ25pdGlvbiBtb25pdG9ycyBhcmUgY29tbW9uIHRvIGJvdGggU1BBUksgYW5kIENPTVBSRVNTSU9OLiAqLworZW51bSBDb21tb25JZ25pdGlvbk1vbml0b3JzIDogaW50MzJfdCB7CisgIENPTVBPTkVOVFNfQVZBSUxBQkxFID0gMHgxIDw8IDAsCisgIENPTVBPTkVOVFNfSU5DT01QTEVURSA9IDB4MSA8PCAxLAorCisgIEZVRUxfU1lTVEVNX0FWQUlMQUJMRSA9IDB4MSA8PCAyLAorICBGVUVMX1NZU1RFTV9JTkNPTVBMRVRFID0gMHgxIDw8IDMsCisKKyAgTUlTRklSRV9BVkFJTEFCTEUgPSAweDEgPDwgNCwKKyAgTUlTRklSRV9JTkNPTVBMRVRFID0gMHgxIDw8IDUsCit9OworCisvKiogSWduaXRpb24gbW9uaXRvcnMgYXZhaWxhYmxlIGZvciBTUEFSSyB2ZWhpY2xlcy4gKi8KK2VudW0gU3BhcmtJZ25pdGlvbk1vbml0b3JzIDogQ29tbW9uSWduaXRpb25Nb25pdG9ycyB7CisgIEVHUl9BVkFJTEFCTEUgPSAweDEgPDwgNiwKKyAgRUdSX0lOQ09NUExFVEUgPSAweDEgPDwgNywKKworICBPWFlHRU5fU0VOU09SX0hFQVRFUl9BVkFJTEFCTEUgPSAweDEgPDwgOCwKKyAgT1hZR0VOX1NFTlNPUl9IRUFURVJfSU5DT01QTEVURSA9IDB4MSA8PCA5LAorCisgIE9YWUdFTl9TRU5TT1JfQVZBSUxBQkxFID0gMHgxIDw8IDEwLAorICBPWFlHRU5fU0VOU09SX0lOQ09NUExFVEUgPSAweDEgPDwgMTEsCisKKyAgQUNfUkVGUklHRVJBTlRfQVZBSUxBQkxFID0gMHgxIDw8IDEyLAorICBBQ19SRUZSSUdFUkFOVF9JTkNPTVBMRVRFID0gMHgxIDw8IDEzLAorCisgIFNFQ09OREFSWV9BSVJfU1lTVEVNX0FWQUlMQUJMRSA9IDB4MSA8PCAxNCwKKyAgU0VDT05EQVJZX0FJUl9TWVNURU1fSU5DT01QTEVURSA9IDB4MSA8PCAxNSwKKworICBFVkFQT1JBVElWRV9TWVNURU1fQVZBSUxBQkxFID0gMHgxIDw8IDE2LAorICBFVkFQT1JBVElWRV9TWVNURU1fSU5DT01QTEVURSA9IDB4MSA8PCAxNywKKworICBIRUFURURfQ0FUQUxZU1RfQVZBSUxBQkxFID0gMHgxIDw8IDE4LAorICBIRUFURURfQ0FUQUxZU1RfSU5DT01QTEVURSA9IDB4MSA8PCAxOSwKKworICBDQVRBTFlTVF9BVkFJTEFCTEUgPSAweDEgPDwgMjAsCisgIENBVEFMWVNUX0lOQ09NUExFVEUgPSAweDEgPDwgMjEsCit9OworCisvKiogSWduaXRpb24gbW9uaXRvcnMgb25seSBhdmFpbGFibGUgZm9yIENPTVBSRVNTSU9OIHZlaGljbGVzLiAqLworZW51bSBDb21wcmVzc2lvbklnbml0aW9uTW9uaXRvcnMgOiBDb21tb25JZ25pdGlvbk1vbml0b3JzIHsKKyAgRUdSX09SX1ZWVF9BVkFJTEFCTEUgPSAweDEgPDwgNiwKKyAgRUdSX09SX1ZWVF9JTkNPTVBMRVRFID0gMHgxIDw8IDcsCisKKyAgUE1fRklMVEVSX0FWQUlMQUJMRSA9IDB4MSA8PCA4LAorICBQTV9GSUxURVJfSU5DT01QTEVURSA9IDB4MSA8PCA5LAorCisgIEVYSEFVU1RfR0FTX1NFTlNPUl9BVkFJTEFCTEUgPSAweDEgPDwgMTAsCisgIEVYSEFVU1RfR0FTX1NFTlNPUl9JTkNPTVBMRVRFID0gMHgxIDw8IDExLAorCisgIEJPT1NUX1BSRVNTVVJFX0FWQUlMQUJMRSA9IDB4MSA8PCAxMiwKKyAgQk9PU1RfUFJFU1NVUkVfSU5DT01QTEVURSA9IDB4MSA8PCAxMywKKworICBOT3hfU0NSX19BVkFJTEFCTEUgPSAweDEgPDwgMTQsCisgIE5PeF9TQ1JfSU5DT01QTEVURSA9IDB4MSA8PCAxNSwKKworICBOTUhDX0NBVEFMWVNUX0FWQUlMQUJMRSA9IDB4MSA8PCAxNiwKKyAgTk1IQ19DQVRBTFlTVF9JTkNPTVBMRVRFID0gMHgxIDw8IDE3LAorfTsKKworZW51bSBTZWNvbmRhcnlBaXJTdGF0dXMgOiBpbnQzMl90IHsKKyAgVVBTVFJFQU0gPSAxLAorCisgIERPV05TVFJFQU1fT0ZfQ0FUQUxZQ0lDX0NPTlZFUlRFUiA9IDIsCisKKyAgRlJPTV9PVVRTSURFX09SX09GRiA9IDQsCisKKyAgUFVNUF9PTl9GT1JfRElBR05PU1RJQ1MgPSA4LAorfTsKKworZW51bSBGdWVsVHlwZSA6IGludDMyX3QgeworICBOT1RfQVZBSUxBQkxFID0gMCwKKworICBHQVNPTElORSA9IDEsCisKKyAgTUVUSEFOT0wgPSAyLAorCisgIEVUSEFOT0wgPSAzLAorCisgIERJRVNFTCA9IDQsCisKKyAgTFBHID0gNSwKKworICBDTkcgPSA2LAorCisgIFBST1BBTkUgPSA3LAorCisgIEVMRUNUUklDID0gOCwKKworICBCSUZVRUxfUlVOTklOR19HQVNPTElORSA9IDksCisKKyAgQklGVUVMX1JVTk5JTkdfTUVUSEFOT0wgPSAxMCwKKworICBCSUZVRUxfUlVOTklOR19FVEhBTk9MID0gMTEsCisKKyAgQklGVUVMX1JVTk5JTkdfTFBHID0gMTIsCisKKyAgQklGVUVMX1JVTk5JTkdfQ05HID0gMTMsCisKKyAgQklGVUVMX1JVTk5JTkdfUFJPUEFORSA9IDE0LAorCisgIEJJRlVFTF9SVU5OSU5HX0VMRUNUUklDID0gMTUsCisKKyAgQklGVUVMX1JVTk5JTkdfRUxFQ1RSSUNfQU5EX0NPTUJVU1RJT04gPSAxNiwKKworICBIWUJSSURfR0FTT0xJTkUgPSAxNywKKworICBIWUJSSURfRVRIQU5PTCA9IDE4LAorCisgIEhZQlJJRF9ESUVTRUwgPSAxOSwKKworICBIWUJSSURfRUxFQ1RSSUMgPSAyMCwKKworICBIWUJSSURfUlVOTklOR19FTEVDVFJJQ19BTkRfQ09NQlVTVElPTiA9IDIxLAorCisgIEhZQlJJRF9SRUdFTkVSQVRJVkUgPSAyMiwKKworICBCSUZVRUxfUlVOTklOR19ESUVTRUwgPSAyMywKK307CisKKy8qKgorICogVGhpcyBlbnVtIHByb3ZpZGVzIHRoZSBjYW5vbmljYWwgbWFwcGluZyBmb3Igc2Vuc29yIHByb3BlcnRpZXMgdGhhdCBoYXZlIGFuIGludGVnZXIgdmFsdWUuCisgKiBUaGUgb3JkZXJpbmcgb2YgdGhlIHZhbHVlcyBpcyB0YWtlbiBmcm9tIHRoZSBPQkQyIHNwZWNpZmljYXRpb24uCisgKiBTb21lIG9mIHRoZSBwcm9wZXJ0aWVzIGFyZSByZXByZXNlbnRlZCBhcyBhbiBpbnRlZ2VyIG1hcHBpbmcgdG8gYW5vdGhlciBlbnVtLiBJbiB0aG9zZSBjYXNlcworICogZXhwZWN0IGEgY29tbWVudCBieSB0aGUgcHJvcGVydHkgZGVmaW5pdGlvbiBkZXNjcmliaW5nIHRoZSBlbnVtIHRvIGxvb2sgYXQgZm9yIHRoZSBtYXBwaW5nLgorICogQW55IHZhbHVlIGdyZWF0ZXIgdGhhbiB0aGUgbGFzdCByZXNlcnZlZCBpbmRleCBpcyBhdmFpbGFibGUgdG8gdmVuZG9ycyB0byBtYXAgdGhlaXIgZXh0ZW5zaW9ucy4KKyAqLworZW51bSBPYmQySW50ZWdlclNlbnNvckluZGV4IDogaW50MzJfdCB7CisgIC8qKiByZWZlciB0byBGdWVsU3lzdGVtU3RhdHVzIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoaXMgdmFsdWUuICovCisgIEZVRUxfU1lTVEVNX1NUQVRVUyA9IDAsCisKKyAgTUFMRlVOQ1RJT05fSU5ESUNBVE9SX0xJR0hUX09OID0gMSwKKworICAvKiogcmVmZXIgdG8gSWduaXRpb25Nb25pdG9yS2luZCBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGlzIHZhbHVlLiAqLworICBJR05JVElPTl9NT05JVE9SU19TVVBQT1JURUQgPSAyLAorCisgIC8qKgorICAgKiBUaGUgdmFsdWUgb2YgdGhpcyBzZW5zb3IgaXMgYSBiaXRtYXNrIHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIgaWduaXRpb24tc3BlY2lmaWMKKyAgICogdGVzdHMgYXJlIGF2YWlsYWJsZSBhbmQgd2hldGhlciB0aGV5IGFyZSBjb21wbGV0ZS4gVGhlIHNlbWFudGljcyBvZiB0aGUgaW5kaXZpZHVhbAorICAgKiBiaXRzIGluIHRoaXMgdmFsdWUgYXJlIGdpdmVuIGJ5LCByZXNwZWN0aXZlbHksIFNwYXJrSWduaXRpb25Nb25pdG9ycyBhbmQKKyAgICogQ29tcHJlc3Npb25JZ25pdGlvbk1vbml0b3JzIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgSUdOSVRJT05fTU9OSVRPUlNfU1VQUE9SVEVELgorICAgKi8KKyAgSUdOSVRJT05fU1BFQ0lGSUNfTU9OSVRPUlMgPSAzLAorCisgIElOVEFLRV9BSVJfVEVNUEVSQVRVUkUgPSA0LAorCisgIC8qKiByZWZlciB0byBTZWNvbmRhcnlBaXJTdGF0dXMgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhpcyB2YWx1ZS4gKi8KKyAgQ09NTUFOREVEX1NFQ09OREFSWV9BSVJfU1RBVFVTID0gNSwKKworICBOVU1fT1hZR0VOX1NFTlNPUlNfUFJFU0VOVCA9IDYsCisKKyAgUlVOVElNRV9TSU5DRV9FTkdJTkVfU1RBUlQgPSA3LAorCisgIERJU1RBTkNFX1RSQVZFTEVEX1dJVEhfTUFMRlVOQ1RJT05fSU5ESUNBVE9SX0xJR0hUX09OID0gOCwKKworICBXQVJNVVBTX1NJTkNFX0NPREVTX0NMRUFSRUQgPSA5LAorCisgIERJU1RBTkNFX1RSQVZFTEVEX1NJTkNFX0NPREVTX0NMRUFSRUQgPSAxMCwKKworICBBQlNPTFVURV9CQVJPTUVUUklDX1BSRVNTVVJFID0gMTEsCisKKyAgQ09OVFJPTF9NT0RVTEVfVk9MVEFHRSA9IDEyLAorCisgIEFNQklFTlRfQUlSX1RFTVBFUkFUVVJFID0gMTMsCisKKyAgVElNRV9XSVRIX01BTEZVTkNUSU9OX0xJR0hUX09OID0gMTQsCisKKyAgVElNRV9TSU5DRV9UUk9VQkxFX0NPREVTX0NMRUFSRUQgPSAxNSwKKworICBNQVhfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAxNiwKKworICBNQVhfT1hZR0VOX1NFTlNPUl9WT0xUQUdFID0gMTcsCisKKyAgTUFYX09YWUdFTl9TRU5TT1JfQ1VSUkVOVCA9IDE4LAorCisgIE1BWF9JTlRBS0VfTUFOSUZPTERfQUJTT0xVVEVfUFJFU1NVUkUgPSAxOSwKKworICBNQVhfQUlSX0ZMT1dfUkFURV9GUk9NX01BU1NfQUlSX0ZMT1dfU0VOU09SID0gMjAsCisKKyAgLyoqIHJlZmVyIHRvIEZ1ZWxUeXBlIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoaXMgdmFsdWUuICovCisgIEZVRUxfVFlQRSA9IDIxLAorCisgIEZVRUxfUkFJTF9BQlNPTFVURV9QUkVTU1VSRSA9IDIyLAorCisgIEVOR0lORV9PSUxfVEVNUEVSQVRVUkUgPSAyMywKKworICBEUklWRVJfREVNQU5EX1BFUkNFTlRfVE9SUVVFID0gMjQsCisKKyAgRU5HSU5FX0FDVFVBTF9QRVJDRU5UX1RPUlFVRSA9IDI1LAorCisgIEVOR0lORV9SRUZFUkVOQ0VfUEVSQ0VOVF9UT1JRVUUgPSAyNiwKKworICBFTkdJTkVfUEVSQ0VOVF9UT1JRVUVfREFUQV9JRExFID0gMjcsCisKKyAgRU5HSU5FX1BFUkNFTlRfVE9SUVVFX0RBVEFfUE9JTlQxID0gMjgsCisKKyAgRU5HSU5FX1BFUkNFTlRfVE9SUVVFX0RBVEFfUE9JTlQyID0gMjksCisKKyAgRU5HSU5FX1BFUkNFTlRfVE9SUVVFX0RBVEFfUE9JTlQzID0gMzAsCisKKyAgRU5HSU5FX1BFUkNFTlRfVE9SUVVFX0RBVEFfUE9JTlQ0ID0gMzEsCisKKyAgTEFTVF9TWVNURU1fSU5ERVggPSBFTkdJTkVfUEVSQ0VOVF9UT1JRVUVfREFUQV9QT0lOVDQsCit9OworCisvKioKKyAqIFRoaXMgZW51bSBwcm92aWRlcyB0aGUgY2Fub25pY2FsIG1hcHBpbmcgZm9yIHNlbnNvciBwcm9wZXJ0aWVzIHRoYXQgaGF2ZSBhIGZsb2F0aW5nLXBvaW50IHZhbHVlLgorICogVGhlIG9yZGVyaW5nIG9mIHRoZSB2YWx1ZXMgaXMgdGFrZW4gZnJvbSB0aGUgT0JEMiBzcGVjaWZpY2F0aW9uLgorICogQW55IHZhbHVlIGdyZWF0ZXIgdGhhbiB0aGUgbGFzdCByZXNlcnZlZCBpbmRleCBpcyBhdmFpbGFibGUgdG8gdmVuZG9ycyB0byBtYXAgdGhlaXIgZXh0ZW5zaW9ucy4KKyAqLworZW51bSBPYmQyRmxvYXRTZW5zb3JJbmRleCA6IGludDMyX3QgeworICBDQUxDVUxBVEVEX0VOR0lORV9MT0FEID0gMCwKKworICBFTkdJTkVfQ09PTEFOVF9URU1QRVJBVFVSRSA9IDEsCisKKyAgU0hPUlRfVEVSTV9GVUVMX1RSSU1fQkFOSzEgPSAyLAorCisgIExPTkdfVEVSTV9GVUVMX1RSSU1fQkFOSzEgPSAzLAorCisgIFNIT1JUX1RFUk1fRlVFTF9UUklNX0JBTksyID0gNCwKKworICBMT05HX1RFUk1fRlVFTF9UUklNX0JBTksyID0gNSwKKworICBGVUVMX1BSRVNTVVJFID0gNiwKKworICBJTlRBS0VfTUFOSUZPTERfQUJTT0xVVEVfUFJFU1NVUkUgPSA3LAorCisgIEVOR0lORV9SUE0gPSA4LAorCisgIFZFSElDTEVfU1BFRUQgPSA5LAorCisgIFRJTUlOR19BRFZBTkNFID0gMTAsCisKKyAgTUFGX0FJUl9GTE9XX1JBVEUgPSAxMSwKKworICBUSFJPVFRMRV9QT1NJVElPTiA9IDEyLAorCisgIE9YWUdFTl9TRU5TT1IxX1ZPTFRBR0UgPSAxMywKKworICBPWFlHRU5fU0VOU09SMV9TSE9SVF9URVJNX0ZVRUxfVFJJTSA9IDE0LAorCisgIE9YWUdFTl9TRU5TT1IxX0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPID0gMTUsCisKKyAgT1hZR0VOX1NFTlNPUjJfVk9MVEFHRSA9IDE2LAorCisgIE9YWUdFTl9TRU5TT1IyX1NIT1JUX1RFUk1fRlVFTF9UUklNID0gMTcsCisKKyAgT1hZR0VOX1NFTlNPUjJfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAxOCwKKworICBPWFlHRU5fU0VOU09SM19WT0xUQUdFID0gMTksCisKKyAgT1hZR0VOX1NFTlNPUjNfU0hPUlRfVEVSTV9GVUVMX1RSSU0gPSAyMCwKKworICBPWFlHRU5fU0VOU09SM19GVUVMX0FJUl9FUVVJVkFMRU5DRV9SQVRJTyA9IDIxLAorCisgIE9YWUdFTl9TRU5TT1I0X1ZPTFRBR0UgPSAyMiwKKworICBPWFlHRU5fU0VOU09SNF9TSE9SVF9URVJNX0ZVRUxfVFJJTSA9IDIzLAorCisgIE9YWUdFTl9TRU5TT1I0X0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPID0gMjQsCisKKyAgT1hZR0VOX1NFTlNPUjVfVk9MVEFHRSA9IDI1LAorCisgIE9YWUdFTl9TRU5TT1I1X1NIT1JUX1RFUk1fRlVFTF9UUklNID0gMjYsCisKKyAgT1hZR0VOX1NFTlNPUjVfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAyNywKKworICBPWFlHRU5fU0VOU09SNl9WT0xUQUdFID0gMjgsCisKKyAgT1hZR0VOX1NFTlNPUjZfU0hPUlRfVEVSTV9GVUVMX1RSSU0gPSAyOSwKKworICBPWFlHRU5fU0VOU09SNl9GVUVMX0FJUl9FUVVJVkFMRU5DRV9SQVRJTyA9IDMwLAorCisgIE9YWUdFTl9TRU5TT1I3X1ZPTFRBR0UgPSAzMSwKKworICBPWFlHRU5fU0VOU09SN19TSE9SVF9URVJNX0ZVRUxfVFJJTSA9IDMyLAorCisgIE9YWUdFTl9TRU5TT1I3X0ZVRUxfQUlSX0VRVUlWQUxFTkNFX1JBVElPID0gMzMsCisKKyAgT1hZR0VOX1NFTlNPUjhfVk9MVEFHRSA9IDM0LAorCisgIE9YWUdFTl9TRU5TT1I4X1NIT1JUX1RFUk1fRlVFTF9UUklNID0gMzUsCisKKyAgT1hZR0VOX1NFTlNPUjhfRlVFTF9BSVJfRVFVSVZBTEVOQ0VfUkFUSU8gPSAzNiwKKworICBGVUVMX1JBSUxfUFJFU1NVUkUgPSAzNywKKworICBGVUVMX1JBSUxfR0FVR0VfUFJFU1NVUkUgPSAzOCwKKworICBDT01NQU5ERURfRVhIQVVTVF9HQVNfUkVDSVJDVUxBVElPTiA9IDM5LAorCisgIEVYSEFVU1RfR0FTX1JFQ0lSQ1VMQVRJT05fRVJST1IgPSA0MCwKKworICBDT01NQU5ERURfRVZBUE9SQVRJVkVfUFVSR0UgPSA0MSwKKworICBGVUVMX1RBTktfTEVWRUxfSU5QVVQgPSA0MiwKKworICBFVkFQT1JBVElPTl9TWVNURU1fVkFQT1JfUFJFU1NVUkUgPSA0MywKKworICBDQVRBTFlTVF9URU1QRVJBVFVSRV9CQU5LMV9TRU5TT1IxID0gNDQsCisKKyAgQ0FUQUxZU1RfVEVNUEVSQVRVUkVfQkFOSzJfU0VOU09SMSA9IDQ1LAorCisgIENBVEFMWVNUX1RFTVBFUkFUVVJFX0JBTksxX1NFTlNPUjIgPSA0NiwKKworICBDQVRBTFlTVF9URU1QRVJBVFVSRV9CQU5LMl9TRU5TT1IyID0gNDcsCisKKyAgQUJTT0xVVEVfTE9BRF9WQUxVRSA9IDQ4LAorCisgIEZVRUxfQUlSX0NPTU1BTkRFRF9FUVVJVkFMRU5DRV9SQVRJTyA9IDQ5LAorCisgIFJFTEFUSVZFX1RIUk9UVExFX1BPU0lUSU9OID0gNTAsCisKKyAgQUJTT0xVVEVfVEhST1RUTEVfUE9TSVRJT05fQiA9IDUxLAorCisgIEFCU09MVVRFX1RIUk9UVExFX1BPU0lUSU9OX0MgPSA1MiwKKworICBBQ0NFTEVSQVRPUl9QRURBTF9QT1NJVElPTl9EID0gNTMsCisKKyAgQUNDRUxFUkFUT1JfUEVEQUxfUE9TSVRJT05fRSA9IDU0LAorCisgIEFDQ0VMRVJBVE9SX1BFREFMX1BPU0lUSU9OX0YgPSA1NSwKKworICBDT01NQU5ERURfVEhST1RUTEVfQUNUVUFUT1IgPSA1NiwKKworICBFVEhBTk9MX0ZVRUxfUEVSQ0VOVEFHRSA9IDU3LAorCisgIEFCU09MVVRFX0VWQVBPUkFUSU9OX1NZU1RFTV9WQVBPUl9QUkVTU1VSRSA9IDU4LAorCisgIFNIT1JUX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LMSA9IDU5LAorCisgIFNIT1JUX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LMiA9IDYwLAorCisgIFNIT1JUX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LMyA9IDYxLAorCisgIFNIT1JUX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LNCA9IDYyLAorCisgIExPTkdfVEVSTV9TRUNPTkRBUllfT1hZR0VOX1NFTlNPUl9UUklNX0JBTksxID0gNjMsCisKKyAgTE9OR19URVJNX1NFQ09OREFSWV9PWFlHRU5fU0VOU09SX1RSSU1fQkFOSzIgPSA2NCwKKworICBMT05HX1RFUk1fU0VDT05EQVJZX09YWUdFTl9TRU5TT1JfVFJJTV9CQU5LMyA9IDY1LAorCisgIExPTkdfVEVSTV9TRUNPTkRBUllfT1hZR0VOX1NFTlNPUl9UUklNX0JBTks0ID0gNjYsCisKKyAgUkVMQVRJVkVfQUNDRUxFUkFUT1JfUEVEQUxfUE9TSVRJT04gPSA2NywKKworICBIWUJSSURfQkFUVEVSWV9QQUNLX1JFTUFJTklOR19MSUZFID0gNjgsCisKKyAgRlVFTF9JTkpFQ1RJT05fVElNSU5HID0gNjksCisKKyAgRU5HSU5FX0ZVRUxfUkFURSA9IDcwLAorCisgIExBU1RfU1lTVEVNX0lOREVYID0gRU5HSU5FX0ZVRUxfUkFURSwKK307CisKKy8qKgorICogVGhpcyBlbnVtIGxpc3RzIHRoZSB0eXBlcyBvZiBzdXBwb3J0ZWQgVk1TIG1lc3NhZ2VzLgorICovCitlbnVtIFZtc01lc3NhZ2VUeXBlIDogaW50MzJfdCB7CisgIC8qKiBBIGNsaWVudCBzdWJzY3JpYmVzIHRvIGEgbGF5ZXIuICovCisgIFNVQlNDUklCRSA9IDEsCisKKyAgLyoqIEEgY2xpZW50IHVuc3Vic2NyaWJlcyBmcm9tIGEgbGF5ZXIuICovCisgIFVOU1VCU0NSSUJFID0gMiwKKworICAvKiogQSBjbGllbnQgcHVibGlzaGVzIGEgZGF0YSBwYWNrZXQuICovCisgIERBVEEgPSAzLAorfTsKKworLyoqCisgKiBUaGlzIGVudW0gcHJvdmlkZXMgdGhlIGNhbm9uaWNhbCBtYXBwaW5nIGZvciBWTVMgcHJvcGVydGllcyB0aGF0IGhhdmUgYW4KKyAqIGludGVnZXIgdmFsdWUuCisgKi8KK2VudW0gVm1zTWVzc2FnZUludGVnZXJWYWx1ZXNJbmRleCA6IGludDMyX3QgeworICAvKiogVGhlIG1lc3NhZ2UgdHlwZSBhcyBlbnVtZXJhdGVkIGJ5IFZtc01lc3NhZ2VUeXBlIGVudW0uICovCisgIFZNU19NRVNTQUdFX1RZUEUgPSAwLAorCisgIC8qKiBUaGUgbGF5ZXIgSUQgYXMgZGVmaW5lZCBpbiB0aGUgdm1zIHByb3RvY29sLiAqLworICBWTVNfTEFZRVJfSUQgPSAxLAorCisgIC8qKiBUaGUgdmVyc2lvbiBvZiB0aGUgVk1TIGxheWVyLiAqLworICBWTVNfTEFZRVJfVkVSU0lPTiA9IDIsCisKKyAgLyoqIFRoZSBudW1iZXIgb2YgYnl0ZXMgaW4gdGhlIHBheWxvYWQgKi8KKyAgVk1TX1BBWUxPQURfU0laRV9CWVRFUyA9IDMsCit9OwpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9BbmRyb2lkLmJwIGIvYmlvbWV0cmljcy9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4N2UzYWYKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICJmaW5nZXJwcmludC8yLjEiLAorICAgICJmaW5nZXJwcmludC8yLjEvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQW5kcm9pZC5icCBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE2ZmQ3OAotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3MCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsIiwKKyAgICAgICAgIklCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMSIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9CaW9tZXRyaWNzRmluZ2VycHJpbnRBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2tBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMV9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMSIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUh3QmlvbWV0cmljc0ZpbmdlcnByaW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9Cbkh3QmlvbWV0cmljc0ZpbmdlcnByaW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9CcEh3QmlvbWV0cmljc0ZpbmdlcnByaW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9Cc0Jpb21ldHJpY3NGaW5nZXJwcmludC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JSHdCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQm5Id0Jpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9CcEh3QmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0JzQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjFfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMV9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9BbmRyb2lkLm1rIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZjMyMzcxCi0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQ2OCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50LVYyLjEtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRBY3F1aXJlZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50QWNxdWlyZWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEFjcXVpcmVkCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEFjcXVpcmVkSW5mbykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50QWNxdWlyZWRJbmZvLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRBY3F1aXJlZEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50QXV0aGVudGljYXRlZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50QXV0aGVudGljYXRlZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50QXV0aGVudGljYXRlZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRFbnJvbGwpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEVucm9sbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50RW5yb2xsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEVycm9yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRFcnJvci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50RXJyb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50RmluZ2VySWQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEZpbmdlcklkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRGaW5nZXJJZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRJdGVyYXRvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50SXRlcmF0b3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEl0ZXJhdG9yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludE1zZ1R5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludE1zZ1R5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludE1zZ1R5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlcXVlc3RTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9SZXF1ZXN0U3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuUmVxdWVzdFN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludC1WMi4xLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50QWNxdWlyZWQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEFjcXVpcmVkLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRBY3F1aXJlZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRBY3F1aXJlZEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEFjcXVpcmVkSW5mby5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50QWNxdWlyZWRJbmZvCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEF1dGhlbnRpY2F0ZWQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEF1dGhlbnRpY2F0ZWQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEF1dGhlbnRpY2F0ZWQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50RW5yb2xsKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRFbnJvbGwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEVucm9sbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRFcnJvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0ZpbmdlcnByaW50RXJyb3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOjp0eXBlcy5GaW5nZXJwcmludEVycm9yCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChGaW5nZXJwcmludEZpbmdlcklkKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRGaW5nZXJJZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLkZpbmdlcnByaW50RmluZ2VySWQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZpbmdlcnByaW50SXRlcmF0b3IpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvVjJfMS9GaW5nZXJwcmludEl0ZXJhdG9yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRJdGVyYXRvcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmluZ2VycHJpbnRNc2dUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvRmluZ2VycHJpbnRNc2dUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6dHlwZXMuRmluZ2VycHJpbnRNc2dUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChSZXF1ZXN0U3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvUmVxdWVzdFN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzLlJlcXVlc3RTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50L1YyXzEvSUJpb21ldHJpY3NGaW5nZXJwcmludC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvYmlvbWV0cmljcy9maW5nZXJwcmludC9WMl8xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbCBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL0lCaW9tZXRyaWNzRmluZ2VycHJpbnQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0ZjMwMDUKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50LmhhbApAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTsKKworaW1wb3J0IElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjazsKKworaW50ZXJmYWNlIElCaW9tZXRyaWNzRmluZ2VycHJpbnQgeworICAvKioKKyAgICogU2V0IG5vdGlmaWNhdGlvbiBjYWxsYmFjazoKKyAgICogUmVnaXN0ZXJzIGEgdXNlciBmdW5jdGlvbiB0aGF0IG11c3QgcmVjZWl2ZSBub3RpZmljYXRpb25zIGZyb20gdGhlIEhBTAorICAgKiBUaGlzIGNhbGwgbXVzdCBibG9jayBpZiB0aGUgSEFMIHN0YXRlIG1hY2hpbmUgaXMgaW4gYnVzeSBzdGF0ZSB1bnRpbCBIQUwKKyAgICogbGVhdmVzIHRoZSBidXN5IHN0YXRlLgorICAgKgorICAgKiBAcmV0dXJuIGRldmljZUlkIGlzIGEgdW5pcXVlIGhhbmRsZSBmb3IgdGhpcyBmaW5nZXJwcmludCBkZXZpY2UKKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsic2V0QWN0aXZlR3JvdXAifSkKKyAgQGVudHJ5CisgIHNldE5vdGlmeShJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2sgY2xpZW50Q2FsbGJhY2spCisgICAgICBnZW5lcmF0ZXMgKHVpbnQ2NF90IGRldmljZUlkKTsKKworICAvKioKKyAgICogRmluZ2VycHJpbnQgcHJlLWVucm9sbCBlbnJvbGwgcmVxdWVzdDoKKyAgICogR2VuZXJhdGVzIGEgdW5pcXVlIHRva2VuIHRvIHVwcGVyIGxheWVycyB0byBpbmRpY2F0ZSB0aGUgc3RhcnQgb2YKKyAgICogYW4gZW5yb2xsbWVudCB0cmFuc2FjdGlvbi4gcHJlLWVucm9sbCBhbmQgcG9zdC1lbnJvbGwgc3BlY2lmeQorICAgKiBhIHBpbi9wYXNzd29yZCBjbGVhcmVkIHRpbWUgd2luZG93IHdoZXJlIGVucm9sbG1lbnQgaXMgYWxsb3dlZC4KKyAgICogUHJlLWVucm9sbCBvbmx5IGdlbmVyYXRlcyBhIGNoYWxsZW5nZSwgYSBmdWxsIGhhcmR3YXJlQXV0aFRva2VuIGlzCisgICAqIGdlbmVyYXRlZCBieSB0cnVzdHpvbmUgYWZ0ZXIgdmVyaWZ5aW5nIGEgcGluL3Bhc3N3b3JkL3N3aXBlLiBUaGlzIGlzIHRvCisgICAqIGVuc3VyZSBhZGRpbmcgYSBuZXcgZmluZ2VycHJpbnQgdGVtcGxhdGUgd2FzIHByZWNlZGVkIGJ5IHNvbWUga2luZCBvZgorICAgKiBjcmVkZW50aWFsIGNvbmZpcm1hdGlvbiAoZS5nLiBkZXZpY2UgcGFzc3dvcmQpLgorICAgKgorICAgKiBAcmV0dXJuIDAgaWYgZnVuY3Rpb24gZmFpbGVkLCBhIHVpbnQ2NF90IG9mIGNoYWxsZW5nZSBvdGhlcndpc2UuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17ImVucm9sbCIsICJwb3N0RW5yb2xsIn0pCisgIHByZUVucm9sbCgpIGdlbmVyYXRlcyAodWludDY0X3QgYXV0aENoYWxsZW5nZSk7CisKKyAgLyoqCisgICAqIEZpbmdlcnByaW50IGVucm9sbCByZXF1ZXN0OgorICAgKiBTd2l0Y2hlcyB0aGUgSEFMIHN0YXRlIG1hY2hpbmUgdG8gY29sbGVjdCBhbmQgc3RvcmUgYSBuZXcgZmluZ2VycHJpbnQKKyAgICogdGVtcGxhdGUuIFN3aXRjaGVzIGJhY2sgYXMgc29vbiBhcyBlbnJvbGwgaXMgY29tcGxldGUsIHNpZ25hbGxlZCBieQorICAgKiAoZmluZ2VycHJpbnRNc2cudHlwZSA9PSBGSU5HRVJQUklOVF9URU1QTEFURV9FTlJPTExJTkcgJiYKKyAgICogIGZpbmdlcnByaW50TXNnLmRhdGEuZW5yb2xsLnNhbXBsZXNSZW1haW5pbmcgPT0gMCkKKyAgICogb3IgYWZ0ZXIgdGltZW91dFNlYyBzZWNvbmRzLgorICAgKiBUaGUgZmluZ2VycHJpbnQgdGVtcGxhdGUgbXVzdCBiZSBhc3NpZ25lZCB0byB0aGUgZ3JvdXAgZ2lkLgorICAgKgorICAgKiBAcGFyYW0gaGF0IGEgdmFsaWQgSGFyZHdhcmUgQXV0aGVudGljYXRpb24gVG9rZW4gKEhBVCksIGdlbmVyYXRlZAorICAgKiBhcyBhIHJlc3VsdCBvZiBhIHByZUVucm9sbCgpIGNhbGwuCisgICAqIEBwYXJhbSBnaWQgYSBmcmFtZXdvcmsgZGVmaW5lZCBmaW5nZXJwcmludCBzZXQgKGdyb3VwKSBpZC4KKyAgICogQHBhcmFtIHRpbWVvdXRTZWMgYSB0aW1lb3V0IGluIHNlY29uZHMuCisgICAqCisgICAqIEByZXR1cm4gZGVidWdFcnJubyBpcyBhIHZhbHVlIHRoZSBmcmFtZXdvcmsgbG9ncyBpbiBjYXNlIGl0IGlzIG5vdCAwLgorICAgKgorICAgKiBBIG5vdGlmeSgpIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgd2l0aCBhIG1vcmUgZGV0YWlsZWQgZXJyb3Igc3RydWN0dXJlLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJjYW5jZWwiLCAiZW5yb2xsIiwgInBvc3RFbnJvbGwiLCAicmVtb3ZlIn0pCisgIGVucm9sbCh1aW50OF90WzY5XSBoYXQsIHVpbnQzMl90IGdpZCwgdWludDMyX3QgdGltZW91dFNlYykKKyAgICAgIGdlbmVyYXRlcyAoUmVxdWVzdFN0YXR1cyBkZWJ1Z0Vycm5vKTsKKworICAvKioKKyAgICogRmluaXNoZXMgdGhlIGVucm9sbCBvcGVyYXRpb24gYW5kIGludmFsaWRhdGVzIHRoZSBwcmVFbnJvbGwoKSBnZW5lcmF0ZWQKKyAgICogY2hhbGxlbmdlLiBUaGlzIG11c3QgYmUgY2FsbGVkIGF0IHRoZSBlbmQgb2YgYSBtdWx0aS1maW5nZXIgZW5yb2xsbWVudAorICAgKiBzZXNzaW9uIHRvIGluZGljYXRlIHRoYXQgbm8gbW9yZSBmaW5nZXJzIG1heSBiZSBhZGRlZC4KKyAgICoKKyAgICogQHJldHVybiBkZWJ1Z0Vycm5vIGlzIGEgdmFsdWUgdGhlIGZyYW1ld29yayBsb2dzIGluIGNhc2UgaXQgaXMgbm90IDAuCisgICAqLworICBAY2FsbGZsb3cobmV4dD17ImF1dGhlbnRpY2F0ZSIsICJzZXRBY3RpdmVHcm91cCIsICJlbnVtZXJhdGUiLCAicmVtb3ZlIn0pCisgIHBvc3RFbnJvbGwoKSBnZW5lcmF0ZXMgKFJlcXVlc3RTdGF0dXMgZGVidWdFcnJubyk7CisKKyAgLyoqCisgICAqIGdldEF1dGhlbnRpY2F0b3JJZDoKKyAgICogUmV0dXJucyBhIHRva2VuIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBmaW5nZXJwcmludCBzZXQuIFRoaXMgdmFsdWUKKyAgICogbXVzdCBjaGFuZ2Ugd2hlbmV2ZXIgYSBuZXcgZmluZ2VycHJpbnQgaXMgZW5yb2xsZWQsIHRodXMgY3JlYXRpbmcgYSBuZXcKKyAgICogZmluZ2VycHJpbnQgc2V0LgorICAgKgorICAgKiBAcmV0dXJuIGdldEF1dGhlbnRpY2F0b3JJZFJldCBjdXJyZW50IGF1dGhlbnRpY2F0b3IgaWQsIDAgaWYgZnVuY3Rpb24KKyAgICogZmFpbGVkLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJhdXRoZW50aWNhdGUifSkKKyAgZ2V0QXV0aGVudGljYXRvcklkKCkgZ2VuZXJhdGVzICh1aW50NjRfdCBBdXRoZW50aWNhdG9ySWQpOworCisgIC8qKgorICAgKiBDYW5jZWwgcGVuZGluZyBlbnJvbGwgb3IgYXV0aGVudGljYXRlLCBzZW5kaW5nIEZJTkdFUlBSSU5UX0VSUk9SX0NBTkNFTEVECisgICAqIHRvIGFsbCBydW5uaW5nIGNsaWVudHMuIFN3aXRjaGVzIHRoZSBIQUwgc3RhdGUgbWFjaGluZSBiYWNrIHRvIHRoZSBpZGxlCisgICAqIHN0YXRlLiBVbmxpa2UgZW5yb2xsRG9uZSgpIGRvZXNuJ3QgaW52YWxpZGF0ZSB0aGUgcHJlRW5yb2xsKCkgY2hhbGxlbmdlLgorICAgKgorICAgKiBAcmV0dXJuIGRlYnVnRXJybm8gaXMgYSB2YWx1ZSB0aGUgZnJhbWV3b3JrIGxvZ3MgaW4gY2FzZSBpdCBpcyBub3QgMC4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiYXV0aGVudGljYXRlIiwgImVucm9sbCIsICJlbnVtZXJhdGUiLCAicmVtb3ZlIiwKKyAgICAic2V0QWN0aXZlR3JvdXAifSkKKyAgY2FuY2VsKCkgZ2VuZXJhdGVzIChSZXF1ZXN0U3RhdHVzIGRlYnVnRXJybm8pOworCisgIC8qKgorICAgKiBFbnVtZXJhdGUgYWxsIHRoZSBmaW5nZXJwcmludCB0ZW1wbGF0ZXMgZm91bmQgaW4gdGhlIGRpcmVjdG9yeSBzZXQgYnkKKyAgICogc2V0QWN0aXZlR3JvdXAoKToKKyAgICogRm9yIGVhY2ggdGVtcGxhdGUgZm91bmQgYSBub3RpZnkoKSBtdXN0IGJlIGNhbGxlZCB3aXRoOgorICAgKiBmaW5nZXJwcmludE1zZy50eXBlID09IEZJTkdFUlBSSU5UX1RFTVBMQVRFX0VOVU1FUkFURUQKKyAgICogZmluZ2VycHJpbnRNc2cuZGF0YS5lbnVtZXJhdGVkLmZpbmdlciBpbmRpY2F0aW5nIGEgdGVtcGxhdGUgaWQKKyAgICogZmluZ2VycHJpbnRNc2cuZGF0YS5lbnVtZXJhdGVkLnJlbWFpbmluZ1RlbXBsYXRlcyBpbmRpY2F0aW5nIGhvdyBtYW55IG1vcmUKKyAgICogZW51bWVyYXRpb24gbWVzc2FnZXMgdG8gZXhwZWN0LgorICAgKgorICAgKiBAcmV0dXJuIGRlYnVnRXJybm8gaXMgYSB2YWx1ZSB0aGUgZnJhbWV3b3JrIGxvZ3MgaW4gY2FzZSBpdCBpcyBub3QgMC4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsicmVtb3ZlIiwgImVucm9sbCIsICJhdXRoZW50aWNhdGUiLCAic2V0QWN0aXZlR3JvdXAifSkKKyAgZW51bWVyYXRlKCkgZ2VuZXJhdGVzIChSZXF1ZXN0U3RhdHVzIGRlYnVnRXJybm8pOworCisgIC8qKgorICAgKiBGaW5nZXJwcmludCByZW1vdmUgcmVxdWVzdDoKKyAgICogRGVsZXRlcyBmaW5nZXJwcmludCB0ZW1wbGF0ZShzKS4KKyAgICogV29ya3Mgb25seSB3aXRoaW4gdGhlIHBhdGggc2V0IGJ5IHNldEFjdGl2ZUdyb3VwKCkuCisgICAqIEZvciBlYWNoIHRlbXBsYXRlIGZvdW5kIGEgbm90aWZ5KCkgbXVzdCBiZSBjYWxsZWQgd2l0aDoKKyAgICogZmluZ2VycHJpbnRNc2cudHlwZSA9PSBGSU5HRVJQUklOVF9URU1QTEFURV9SRU1PVkVECisgICAqIGZpbmdlcnByaW50TXNnLmRhdGEucmVtb3ZlZC5maW5nZXIgaW5kaWNhdGluZyB0aGUgdGVtcGxhdGUgaWQgZGVsZXRlZAorICAgKiBmaW5nZXJwcmludE1zZy5kYXRhLnJlbW92ZWQucmVtYWluaW5nVGVtcGxhdGVzIGluZGljYXRpbmcgaG93IG1hbnkgbW9yZQorICAgKiB0ZW1wbGF0ZXMgbXVzdCBiZSBkZWxldGVkIGJ5IHRoaXMgb3BlcmF0aW9uLgorICAgKgorICAgKiBAcGFyYW0gZ2lkIGdyb3VwIGlkIG11c3QgbWF0Y2ggdGhlIGxhc3QgZ3JvdXAgc2V0IGJ5IHNldEFjdGl2ZUdyb3VwKCkuCisgICAqIEBwYXJhbSBmaWQgdGVtcGxhdGUgaWQgdG8gZGVsZXRlIG9yIDAgdG8gZGVsZXRlIGFsbCB0ZW1wbGF0ZXMgd2l0aGluIHRoZQorICAgKiBjdXJyZW50IGdyb3VwLgorICAgKgorICAgKiBAcmV0dXJuIGRlYnVnRXJybm8gaXMgYSB2YWx1ZSB0aGUgZnJhbWV3b3JrIGxvZ3MgaW4gY2FzZSBpdCBpcyBub3QgMC4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiZW51bWVyYXRlIiwgImF1dGhlbnRpY2F0ZSIsICJjYW5jZWwiLCAiZ2V0QXV0aGVudGljYXRvcklkIiwKKyAgICAic2V0QWN0aXZlR3JvdXAifSkKKyAgcmVtb3ZlKHVpbnQzMl90IGdpZCwgdWludDMyX3QgZmlkKSBnZW5lcmF0ZXMgKFJlcXVlc3RTdGF0dXMgZGVidWdFcnJubyk7CisKKyAgLyoqCisgICAqIFJlc3RyaWN0cyB0aGUgSEFMIG9wZXJhdGlvbiB0byBhIHNldCBvZiBmaW5nZXJwcmludHMgYmVsb25naW5nIHRvIGEgZ3JvdXAKKyAgICogcHJvdmlkZWQuIFRoZSBjYWxsZXIgbXVzdCBwcm92aWRlIGEgcGF0aCB0byBhIHN0b3JhZ2UgbG9jYXRpb24gd2l0aGluIHRoZQorICAgKiB1c2VyJ3MgZGF0YSBkaXJlY3RvcnkuCisgICAqCisgICAqIEBwYXJhbSBnaWQgdGhlIGZpbmdlcnByaW50IGdyb3VwIChzZXQpIGlkLgorICAgKiBAcGFyYW0gc3RvcmVQYXRoIGZpbGVzeXN0ZW0gcGF0aCB0byB0aGUgdGVtcGxhdGUgc3RvcmFnZSBkaXJlY3RvcnkuCisgICAqCisgICAqIEByZXR1cm4gZGVidWdFcnJubyBpcyBhIHZhbHVlIHRoZSBmcmFtZXdvcmsgbG9ncyBpbiBjYXNlIGl0IGlzIG5vdCAwLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJhdXRoZW50aWNhdGUiLCAicHJlRW5yb2xsIiwgImVudW1lcmF0ZSIsICJyZW1vdmUifSkKKyAgc2V0QWN0aXZlR3JvdXAodWludDMyX3QgZ2lkLCBzdHJpbmcgc3RvcmVQYXRoKQorICAgICAgZ2VuZXJhdGVzIChSZXF1ZXN0U3RhdHVzIGRlYnVnRXJybm8pOworCisgIC8qKgorICAgKiBBdXRoZW50aWNhdGVzIGFuIG9wZXJhdGlvbiBpZGVudGlmaWVkIGJ5IG9wZXJhdGlvbklkCisgICAqCisgICAqIEBwYXJhbSBvcGVyYXRpb25JZCBvcGVyYXRpb24gaWQuCisgICAqIEBwYXJhbSBnaWQgZmluZ2VycHJpbnQgZ3JvdXAgaWQuCisgICAqCisgICAqIEByZXR1cm4gZGVidWdFcnJubyBpcyBhIHZhbHVlIHRoZSBmcmFtZXdvcmsgbG9ncyBpbiBjYXNlIGl0IGlzIG5vdCAwLgorICAgKi8KKyAgQGNhbGxmbG93KG5leHQ9eyJjYW5jZWwiLCAicHJlRW5yb2xsIiwgInJlbW92ZSJ9KQorICBhdXRoZW50aWNhdGUodWludDY0X3Qgb3BlcmF0aW9uSWQsIHVpbnQzMl90IGdpZCkKKyAgICAgIGdlbmVyYXRlcyAoUmVxdWVzdFN0YXR1cyBkZWJ1Z0Vycm5vKTsKK307CmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaGFsIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTEzY2YxCi0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrLmhhbApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xOworCisvKiBUaGlzIEhBTCBpbnRlcmZhY2UgY29tbXVuaWNhdGVzIGFzeW5jaHJvbm91cyByZXN1bHRzIGZyb20gdGhlCisgICBmaW5nZXJwcmludCBkcml2ZXIgaW4gcmVzcG9uc2UgdG8gdXNlciBhY3Rpb25zIG9uIHRoZSBmaW5nZXJwcmludCBzZW5zb3IKKyovCitpbnRlcmZhY2UgSUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrIHsKKyAgICAvKioKKyAgICAgKiBTZW50IHdoZW4gb25lIGVucm9sbG1lbnQgc3RlcCBpcyBjb21wbGV0ZS4KKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgdGhlIGluc3RhbmNlIG9mIHRoaXMgZmluZ2VycHJpbnQgZGV2aWNlCisgICAgICogQHBhcmFtIGZpbmdlcklkIHRoZSBmaW5nZXJwcmludCB0ZW1wbGV0YXRlIGJlaW5nIGVucm9sbGVkCisgICAgICogQHBhcmFtIGdyb3VwSWQgdGhlIGdyb3VwaWQgZm9yIHRoZSB0ZW1wbGF0ZSBiZWluZyBlbnJvbGxlZAorICAgICAqIEBwYXJhbSByZW1haW5pbmcgdGhlIG51bWJlciBvZiByZW1haW5pbmcgc3RlcHMgYmVmb3JlIGVucm9sbGxtZW50IGlzIGNvbXBsZXRlCisgICAgICovCisgICAgb25ld2F5IG9uRW5yb2xsUmVzdWx0KHVpbnQ2NF90IGRldmljZUlkLCB1aW50MzJfdCBmaW5nZXJJZCwgdWludDMyX3QgZ3JvdXBJZCwgdWludDMyX3QgcmVtYWluaW5nKTsKKworICAgIC8qKgorICAgICAqIFNlbnQgd2hlbiBhIGZpbmdlcnByaW50IGltYWdlIGlzIGFjcXVpcmVkIGJ5IHRoZSBzZW5zb3IKKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgdGhlIGluc3RhbmNlIG9mIHRoaXMgZmluZ2VycHJpbnQgZGV2aWNlCisgICAgICogQHBhcmFtIGFjcXVpcmVkSW5mbyBhIG1lc3NhZ2UgYWJvdXQgdGhlIHF1YWxpdHkgb2YgdGhlIGFjcXVpcmVkIGltYWdlCisgICAgICogQHBhcmFtIHZlbmRvckNvZGUgYSB2ZW5kb3Itc3BlY2lmaWMgbWVzc2FnZSBhYm91dCB0aGUgcXVhbGl0eSBvZiB0aGUgaW1hZ2UuIE9ubHkKKyAgICAgKiAgICAgICAgdmFsaWQgd2hlbiBhY3F1aXJlZEluZm8gPT0gQUNRVUlSRURfVkVORE9SCisgICAgICovCisgICAgb25ld2F5IG9uQWNxdWlyZWQodWludDY0X3QgZGV2aWNlSWQsIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvIGFjcXVpcmVkSW5mbywgaW50MzJfdCB2ZW5kb3JDb2RlKTsKKworICAgIC8qKgorICAgICAqIFNlbnQgd2hlbiBhIGZpbmdlcnByaW50IGlzIGF1dGhlbnRpY2F0ZWQKKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgdGhlIGluc3RhbmNlIG9mIHRoaXMgZmluZ2VycHJpbnQgZGV2aWNlCisgICAgICogQHBhcmFtIGZpbmdlcklkIHRoZSBmaW5nZXJwcmludCB0ZW1wbGV0YXRlIHRoYXQgd2FzIGF1dGhlbnRpY2F0ZWQKKyAgICAgKiBAcGFyYW0gZ3JvdXBJZCB0aGUgZ3JvdXBpZCBmb3IgdGhlIHRlbXBsYXRlIHRoYXQgd2FzIGF1dGhlbnRpY2F0ZWQKKyAgICAgKiBAcGFyYW0gdG9rZW4gdGhlIGhhcmR3YXJlIGF1dGhlbnRpY2F0aW9uIHRva2VuIHRvIHBhc3MgdG8gS2V5c3RvcmUuYWRkQXV0aFRva2VuKCkKKyAgICAgKi8KKyAgICBvbmV3YXkgb25BdXRoZW50aWNhdGVkKHVpbnQ2NF90IGRldmljZUlkLCB1aW50MzJfdCBmaW5nZXJJZCwgdWludDMyX3QgZ3JvdXBJZCwgdmVjPHVpbnQ4X3Q+IHRva2VuKTsKKworICAgIC8qKgorICAgICAqIFNlbnQgd2hlbiBhIGZpbmdlcnByaW50IGVycm9yIG9jY3VycworICAgICAqIEBwYXJhbSBkZXZpY2VJZCB0aGUgaW5zdGFuY2Ugb2YgdGhpcyBmaW5nZXJwcmludCBkZXZpY2UKKyAgICAgKiBAcGFyYW0gZXJyb3IgYSBtZXNzYWdlIGFib3V0IHRoZSBlcnJvciB0aGF0IG9jY3VycmVkCisgICAgICogQHBhcmFtIHZlbmRvckNvZGUgYSB2ZW5kb3Itc3BlaWNpZmMgZXJyb3IgbWVzc2FnZS4gT25seSB2YWxpZAorICAgICAqICAgICAgICB3aGVuIGVycm9yID09IEVSUk9SX1ZFTkRPUgorICAgICAqLworICAgIG9uZXdheSBvbkVycm9yKHVpbnQ2NF90IGRldmljZUlkLCBGaW5nZXJwcmludEVycm9yIGVycm9yLCBpbnQzMl90IHZlbmRvckNvZGUpOworCisgICAgLyoqCisgICAgICogU2VudCB3aGVuIG9uZSB0ZW1wbGF0ZSBpcyByZW1vdmVkCisgICAgICogQHBhcmFtIGRldmljZUlkIHRoZSBpbnN0YW5jZSBvZiB0aGlzIGZpbmdlcnByaW50IGRldmljZQorICAgICAqIEBwYXJhbSBmaW5nZXJJZCB0aGUgZmluZ2VycHJpbnQgdGVtcGxldGF0ZSBiZWluZyByZW1vdmVkCisgICAgICogQHBhcmFtIGdyb3VwSWQgdGhlIGdyb3VwaWQgZm9yIHRoZSB0ZW1wbGF0ZSBiZWluZyByZW1vdmVkCisgICAgICogQHBhcmFtIHJlbWFpbmluZyB0aGUgbnVtYmVyIG9mIHJlbWFpbmluZyB0ZW1wbGF0ZXMgdGhhdCB3aWxsIGJlIHJlbW92ZWQuCisgICAgICovCisgICAgb25ld2F5IG9uUmVtb3ZlZCh1aW50NjRfdCBkZXZpY2VJZCwgdWludDMyX3QgZmluZ2VySWQsIHVpbnQzMl90IGdyb3VwSWQsIHVpbnQzMl90IHJlbWFpbmluZyk7CisKKyAgICAvKioKKyAgICAgKiBTZW50IHdoZW4gb25lIGZpbmdlcnByaW50IHRlbXBsYXRlIGlzIGVudW1lcmF0ZWQKKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgdGhlIGluc3RhbmNlIG9mIHRoaXMgZmluZ2VycHJpbnQgZGV2aWNlCisgICAgICogQHBhcmFtIGZpbmdlcklkIHRoZSBmaW5nZXJwcmludCBmb3IgdGhpcyB0ZW1wbGV0YXRlCisgICAgICogQHBhcmFtIGdyb3VwSWQgdGhlIGdyb3VwaWQgZm9yIHRoaXMgdGVtcGxhdGUKKyAgICAgKiBAcGFyYW0gcmVtYWluaW5nIHRoZSBudW1iZXIgb2YgcmVtYWluaW5nIHN0ZXBzIGJlZm9yZSBlbnVtZXJhdGlvbiBpcyBjb21wbGV0ZQorICAgICAqLworICAgIG9uZXdheSBvbkVudW1lcmF0ZSh1aW50NjRfdCBkZXZpY2VJZCwgdWludDMyX3QgZmluZ2VySWQsIHVpbnQzMl90IGdyb3VwSWQsIHVpbnQzMl90IHJlbWFpbmluZyk7Cit9OwpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9BbmRyb2lkLm1rIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwMmRiOTQKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwyMSBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMS1zZXJ2aWNlLnJjCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgQmlvbWV0cmljc0ZpbmdlcnByaW50LmNwcCBcCisgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmxvZyBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBsaWJ1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMSBcCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9CaW9tZXRyaWNzRmluZ2VycHJpbnQuY3BwIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9CaW9tZXRyaWNzRmluZ2VycHJpbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2Nzc0Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L0Jpb21ldHJpY3NGaW5nZXJwcmludC5jcHAKQEAgLTAsMCArMSwzNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UiCisjZGVmaW5lIExPR19WRVJCT1NFICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxoYXJkd2FyZS9od19hdXRoX3Rva2VuLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2ZpbmdlcnByaW50Lmg+CisjaW5jbHVkZSAiQmlvbWV0cmljc0ZpbmdlcnByaW50LmgiCisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGJpb21ldHJpY3MgeworbmFtZXNwYWNlIGZpbmdlcnByaW50IHsKK25hbWVzcGFjZSBWMl8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8vIFN1cHBvcnRlZCBmaW5nZXJwcmludCBIQUwgdmVyc2lvbgorc3RhdGljIGNvbnN0IHVpbnQxNl90IGtWZXJzaW9uID0gSEFSRFdBUkVfTU9EVUxFX0FQSV9WRVJTSU9OKDIsIDEpOworCit1c2luZyBSZXF1ZXN0U3RhdHVzID0KKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpSZXF1ZXN0U3RhdHVzOworCitCaW9tZXRyaWNzRmluZ2VycHJpbnQgKkJpb21ldHJpY3NGaW5nZXJwcmludDo6c0luc3RhbmNlID0gbnVsbHB0cjsKKworQmlvbWV0cmljc0ZpbmdlcnByaW50OjpCaW9tZXRyaWNzRmluZ2VycHJpbnQoKSA6IG1DbGllbnRDYWxsYmFjayhudWxscHRyKSwgbURldmljZShudWxscHRyKSB7CisgICAgc0luc3RhbmNlID0gdGhpczsgLy8ga2VlcCB0cmFjayBvZiB0aGUgbW9zdCByZWNlbnQgaW5zdGFuY2UKKyAgICBtRGV2aWNlID0gb3BlbkhhbCgpOworICAgIGlmICghbURldmljZSkgeworICAgICAgICBBTE9HRSgiQ2FuJ3Qgb3BlbiBIQUwgbW9kdWxlIik7CisgICAgfQorfQorCitCaW9tZXRyaWNzRmluZ2VycHJpbnQ6On5CaW9tZXRyaWNzRmluZ2VycHJpbnQoKSB7CisgICAgQUxPR1YoIn5CaW9tZXRyaWNzRmluZ2VycHJpbnQoKSIpOworICAgIGlmIChtRGV2aWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIk5vIHZhbGlkIGRldmljZSIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGludCBlcnI7CisgICAgaWYgKDAgIT0gKGVyciA9IG1EZXZpY2UtPmNvbW1vbi5jbG9zZSgKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfZGV2aWNlX3QqPihtRGV2aWNlKSkpKSB7CisgICAgICAgIEFMT0dFKCJDYW4ndCBjbG9zZSBmaW5nZXJwcmludCBtb2R1bGUsIGVycm9yOiAlZCIsIGVycik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbURldmljZSA9IG51bGxwdHI7Cit9CisKK1JldHVybjxSZXF1ZXN0U3RhdHVzPiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OkVycm9yRmlsdGVyKGludDMyX3QgZXJyb3IpIHsKKyAgICBzd2l0Y2goZXJyb3IpIHsKKyAgICAgICAgY2FzZSAwOiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX09LOworICAgICAgICBjYXNlIC0yOiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VOT0VOVDsKKyAgICAgICAgY2FzZSAtNDogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FSU5UUjsKKyAgICAgICAgY2FzZSAtNTogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FSU87CisgICAgICAgIGNhc2UgLTExOiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VBR0FJTjsKKyAgICAgICAgY2FzZSAtMTI6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRU5PTUVNOworICAgICAgICBjYXNlIC0xMzogcmV0dXJuIFJlcXVlc3RTdGF0dXM6OlNZU19FQUNDRVM7CisgICAgICAgIGNhc2UgLTE0OiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VGQVVMVDsKKyAgICAgICAgY2FzZSAtMTY6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRUJVU1k7CisgICAgICAgIGNhc2UgLTIyOiByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VJTlZBTDsKKyAgICAgICAgY2FzZSAtMjg6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRU5PU1BDOworICAgICAgICBjYXNlIC0xMTA6IHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRVRJTUVET1VUOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQUxPR0UoIkFuIHVua25vd24gZXJyb3IgcmV0dXJuZWQgZnJvbSBmaW5nZXJwcmludCB2ZW5kb3IgbGlicmFyeTogJWQiLCBlcnJvcik7CisgICAgICAgICAgICByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX1VOS05PV047CisgICAgfQorfQorCisvLyBUcmFuc2xhdGUgZnJvbSBlcnJvcnMgcmV0dXJuZWQgYnkgdHJhZGl0aW9uYWwgSEFMIChzZWUgZmluZ2VycHJpbnQuaCkgdG8KKy8vIEhJREwtY29tcGxpYW50IEZpbmdlcnByaW50RXJyb3IuCitGaW5nZXJwcmludEVycm9yIEJpb21ldHJpY3NGaW5nZXJwcmludDo6VmVuZG9yRXJyb3JGaWx0ZXIoaW50MzJfdCBlcnJvciwKKyAgICAgICAgICAgIGludDMyX3QqIHZlbmRvckNvZGUpIHsKKyAgICAqdmVuZG9yQ29kZSA9IDA7CisgICAgc3dpdGNoKGVycm9yKSB7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfRVJST1JfSFdfVU5BVkFJTEFCTEU6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfSFdfVU5BVkFJTEFCTEU7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfRVJST1JfVU5BQkxFX1RPX1BST0NFU1M6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfVU5BQkxFX1RPX1BST0NFU1M7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfRVJST1JfVElNRU9VVDoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9USU1FT1VUOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0VSUk9SX05PX1NQQUNFOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX05PX1NQQUNFOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0VSUk9SX0NBTkNFTEVEOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVEOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0VSUk9SX1VOQUJMRV9UT19SRU1PVkU6CisgICAgICAgICAgICByZXR1cm4gRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfVU5BQkxFX1RPX1JFTU9WRTsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9FUlJPUl9MT0NLT1VUOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0xPQ0tPVVQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoZXJyb3IgPj0gRklOR0VSUFJJTlRfRVJST1JfVkVORE9SX0JBU0UpIHsKKyAgICAgICAgICAgICAgICAvLyB2ZW5kb3Igc3BlY2lmaWMgY29kZS4KKyAgICAgICAgICAgICAgICAqdmVuZG9yQ29kZSA9IGVycm9yIC0gRklOR0VSUFJJTlRfRVJST1JfVkVORE9SX0JBU0U7CisgICAgICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX1ZFTkRPUjsKKyAgICAgICAgICAgIH0KKyAgICB9CisgICAgQUxPR0UoIlVua25vd24gZXJyb3IgZnJvbSBmaW5nZXJwcmludCB2ZW5kb3IgbGlicmFyeTogJWQiLCBlcnJvcik7CisgICAgcmV0dXJuIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX1VOQUJMRV9UT19QUk9DRVNTOworfQorCisvLyBUcmFuc2xhdGUgYWNxdWlyZWQgbWVzc2FnZXMgcmV0dXJuZWQgYnkgdHJhZGl0aW9uYWwgSEFMIChzZWUgZmluZ2VycHJpbnQuaCkKKy8vIHRvIEhJREwtY29tcGxpYW50IEZpbmdlcnByaW50QWNxdWlyZWRJbmZvLgorRmluZ2VycHJpbnRBY3F1aXJlZEluZm8gQmlvbWV0cmljc0ZpbmdlcnByaW50OjpWZW5kb3JBY3F1aXJlZEZpbHRlcigKKyAgICAgICAgaW50MzJfdCBpbmZvLCBpbnQzMl90KiB2ZW5kb3JDb2RlKSB7CisgICAgKnZlbmRvckNvZGUgPSAwOworICAgIHN3aXRjaChpbmZvKSB7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfQUNRVUlSRURfR09PRDoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfR09PRDsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9BQ1FVSVJFRF9QQVJUSUFMOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvOjpBQ1FVSVJFRF9QQVJUSUFMOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0FDUVVJUkVEX0lOU1VGRklDSUVOVDoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfSU5TVUZGSUNJRU5UOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0FDUVVJUkVEX0lNQUdFUl9ESVJUWToKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfSU1BR0VSX0RJUlRZOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0FDUVVJUkVEX1RPT19TTE9XOgorICAgICAgICAgICAgcmV0dXJuIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvOjpBQ1FVSVJFRF9UT09fU0xPVzsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9BQ1FVSVJFRF9UT09fRkFTVDoKKyAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfVE9PX0ZBU1Q7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoaW5mbyA+PSBGSU5HRVJQUklOVF9BQ1FVSVJFRF9WRU5ET1JfQkFTRSkgeworICAgICAgICAgICAgICAgIC8vIHZlbmRvciBzcGVjaWZpYyBjb2RlLgorICAgICAgICAgICAgICAgICp2ZW5kb3JDb2RlID0gaW5mbyAtIEZJTkdFUlBSSU5UX0FDUVVJUkVEX1ZFTkRPUl9CQVNFOworICAgICAgICAgICAgICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfVkVORE9SOworICAgICAgICAgICAgfQorICAgIH0KKyAgICBBTE9HRSgiVW5rbm93biBhY3F1aXJlZG1zZyBmcm9tIGZpbmdlcnByaW50IHZlbmRvciBsaWJyYXJ5OiAlZCIsIGluZm8pOworICAgIHJldHVybiBGaW5nZXJwcmludEFjcXVpcmVkSW5mbzo6QUNRVUlSRURfSU5TVUZGSUNJRU5UOworfQorCitSZXR1cm48dWludDY0X3Q+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6c2V0Tm90aWZ5KAorICAgICAgICBjb25zdCBzcDxJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2s+JiBjbGllbnRDYWxsYmFjaykgeworICAgIG1DbGllbnRDYWxsYmFjayA9IGNsaWVudENhbGxiYWNrOworICAgIC8vIFRoaXMgaXMgaGVyZSBiZWNhdXNlIEhBTCAyLjEgZG9lc24ndCBoYXZlIGEgd2F5IHRvIHByb3BhZ2F0ZSBhCisgICAgLy8gdW5pcXVlIHRva2VuIGZvciBpdHMgZHJpdmVyLiBTdWJzZXF1ZW50IHZlcnNpb25zIHNob3VsZCBzZW5kIGEgdW5pcXVlCisgICAgLy8gdG9rZW4gZm9yIGVhY2ggY2FsbCB0byBzZXROb3RpZnkoKS4gVGhpcyBpcyBmaW5lIGFzIGxvbmcgYXMgdGhlcmUncyBvbmx5CisgICAgLy8gb25lIGZpbmdlcnByaW50IGRldmljZSBvbiB0aGUgcGxhdGZvcm0uCisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KG1EZXZpY2UpOworfQorCitSZXR1cm48dWludDY0X3Q+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6cHJlRW5yb2xsKCkgIHsKKyAgICByZXR1cm4gbURldmljZS0+cHJlX2Vucm9sbChtRGV2aWNlKTsKK30KKworUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6ZW5yb2xsKGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgNjk+JiBoYXQsCisgICAgICAgIHVpbnQzMl90IGdpZCwgdWludDMyX3QgdGltZW91dFNlYykgeworICAgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCogYXV0aFRva2VuID0KKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBod19hdXRoX3Rva2VuX3QqPihoYXQuZGF0YSgpKTsKKyAgICByZXR1cm4gRXJyb3JGaWx0ZXIobURldmljZS0+ZW5yb2xsKG1EZXZpY2UsIGF1dGhUb2tlbiwgZ2lkLCB0aW1lb3V0U2VjKSk7Cit9CisKK1JldHVybjxSZXF1ZXN0U3RhdHVzPiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OnBvc3RFbnJvbGwoKSB7CisgICAgcmV0dXJuIEVycm9yRmlsdGVyKG1EZXZpY2UtPnBvc3RfZW5yb2xsKG1EZXZpY2UpKTsKK30KKworUmV0dXJuPHVpbnQ2NF90PiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OmdldEF1dGhlbnRpY2F0b3JJZCgpIHsKKyAgICByZXR1cm4gbURldmljZS0+Z2V0X2F1dGhlbnRpY2F0b3JfaWQobURldmljZSk7Cit9CisKK1JldHVybjxSZXF1ZXN0U3RhdHVzPiBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OmNhbmNlbCgpIHsKKyAgICByZXR1cm4gRXJyb3JGaWx0ZXIobURldmljZS0+Y2FuY2VsKG1EZXZpY2UpKTsKK30KKworUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6ZW51bWVyYXRlKCkgIHsKKyAgICByZXR1cm4gRXJyb3JGaWx0ZXIobURldmljZS0+ZW51bWVyYXRlKG1EZXZpY2UpKTsKK30KKworUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6cmVtb3ZlKHVpbnQzMl90IGdpZCwgdWludDMyX3QgZmlkKSB7CisgICAgcmV0dXJuIEVycm9yRmlsdGVyKG1EZXZpY2UtPnJlbW92ZShtRGV2aWNlLCBnaWQsIGZpZCkpOworfQorCitSZXR1cm48UmVxdWVzdFN0YXR1cz4gQmlvbWV0cmljc0ZpbmdlcnByaW50OjpzZXRBY3RpdmVHcm91cCh1aW50MzJfdCBnaWQsCisgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBzdG9yZVBhdGgpIHsKKyAgICBpZiAoc3RvcmVQYXRoLnNpemUoKSA+PSBQQVRIX01BWCB8fCBzdG9yZVBhdGguc2l6ZSgpIDw9IDApIHsKKyAgICAgICAgQUxPR0UoIkJhZCBwYXRoIGxlbmd0aDogJXpkIiwgc3RvcmVQYXRoLnNpemUoKSk7CisgICAgICAgIHJldHVybiBSZXF1ZXN0U3RhdHVzOjpTWVNfRUlOVkFMOworICAgIH0KKyAgICBpZiAoYWNjZXNzKHN0b3JlUGF0aC5jX3N0cigpLCBXX09LKSkgeworICAgICAgICByZXR1cm4gUmVxdWVzdFN0YXR1czo6U1lTX0VJTlZBTDsKKyAgICB9CisKKyAgICByZXR1cm4gRXJyb3JGaWx0ZXIobURldmljZS0+c2V0X2FjdGl2ZV9ncm91cChtRGV2aWNlLCBnaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVQYXRoLmNfc3RyKCkpKTsKK30KKworUmV0dXJuPFJlcXVlc3RTdGF0dXM+IEJpb21ldHJpY3NGaW5nZXJwcmludDo6YXV0aGVudGljYXRlKHVpbnQ2NF90IG9wZXJhdGlvbklkLAorICAgICAgICB1aW50MzJfdCBnaWQpIHsKKyAgICByZXR1cm4gRXJyb3JGaWx0ZXIobURldmljZS0+YXV0aGVudGljYXRlKG1EZXZpY2UsIG9wZXJhdGlvbklkLCBnaWQpKTsKK30KKworSUJpb21ldHJpY3NGaW5nZXJwcmludCogQmlvbWV0cmljc0ZpbmdlcnByaW50OjpnZXRJbnN0YW5jZSgpIHsKKyAgICBpZiAoIXNJbnN0YW5jZSkgeworICAgICAgc0luc3RhbmNlID0gbmV3IEJpb21ldHJpY3NGaW5nZXJwcmludCgpOworICAgIH0KKyAgICByZXR1cm4gc0luc3RhbmNlOworfQorCitmaW5nZXJwcmludF9kZXZpY2VfdCogQmlvbWV0cmljc0ZpbmdlcnByaW50OjpvcGVuSGFsKCkgeworICAgIGludCBlcnI7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKmh3X21kbCA9IG51bGxwdHI7CisgICAgQUxPR0QoIk9wZW5pbmcgZmluZ2VycHJpbnQgaGFsIGxpYnJhcnkuLi4iKTsKKyAgICBpZiAoMCAhPSAoZXJyID0gaHdfZ2V0X21vZHVsZShGSU5HRVJQUklOVF9IQVJEV0FSRV9NT0RVTEVfSUQsICZod19tZGwpKSkgeworICAgICAgICBBTE9HRSgiQ2FuJ3Qgb3BlbiBmaW5nZXJwcmludCBIVyBNb2R1bGUsIGVycm9yOiAlZCIsIGVycik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChod19tZGwgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiTm8gdmFsaWQgZmluZ2VycHJpbnQgbW9kdWxlIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGZpbmdlcnByaW50X21vZHVsZV90IGNvbnN0ICptb2R1bGUgPQorICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IGZpbmdlcnByaW50X21vZHVsZV90Kj4oaHdfbWRsKTsKKyAgICBpZiAobW9kdWxlLT5jb21tb24ubWV0aG9kcy0+b3BlbiA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJObyB2YWxpZCBvcGVuIG1ldGhvZCIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBod19kZXZpY2VfdCAqZGV2aWNlID0gbnVsbHB0cjsKKworICAgIGlmICgwICE9IChlcnIgPSBtb2R1bGUtPmNvbW1vbi5tZXRob2RzLT5vcGVuKGh3X21kbCwgbnVsbHB0ciwgJmRldmljZSkpKSB7CisgICAgICAgIEFMT0dFKCJDYW4ndCBvcGVuIGZpbmdlcnByaW50IG1ldGhvZHMsIGVycm9yOiAlZCIsIGVycik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChrVmVyc2lvbiAhPSBkZXZpY2UtPnZlcnNpb24pIHsKKyAgICAgICAgLy8gZW5mb3JjZSB2ZXJzaW9uIG9uIG5ldyBkZXZpY2VzIGJlY2F1c2Ugb2YgSElETEAyLjEgdHJhbnNsYXRpb24gbGF5ZXIKKyAgICAgICAgQUxPR0UoIldyb25nIGZwIHZlcnNpb24uIEV4cGVjdGVkICVkLCBnb3QgJWQiLCBrVmVyc2lvbiwgZGV2aWNlLT52ZXJzaW9uKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgZmluZ2VycHJpbnRfZGV2aWNlX3QqIGZwX2RldmljZSA9CisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8ZmluZ2VycHJpbnRfZGV2aWNlX3QqPihkZXZpY2UpOworCisgICAgaWYgKDAgIT0gKGVyciA9CisgICAgICAgICAgICBmcF9kZXZpY2UtPnNldF9ub3RpZnkoZnBfZGV2aWNlLCBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6Om5vdGlmeSkpKSB7CisgICAgICAgIEFMT0dFKCJDYW4ndCByZWdpc3RlciBmaW5nZXJwcmludCBtb2R1bGUgY2FsbGJhY2ssIGVycm9yOiAlZCIsIGVycik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBmcF9kZXZpY2U7Cit9CisKK3ZvaWQgQmlvbWV0cmljc0ZpbmdlcnByaW50Ojpub3RpZnkoY29uc3QgZmluZ2VycHJpbnRfbXNnX3QgKm1zZykgeworICAgIEJpb21ldHJpY3NGaW5nZXJwcmludCogdGhpc1B0ciA9IHN0YXRpY19jYXN0PEJpb21ldHJpY3NGaW5nZXJwcmludCo+KAorICAgICAgICAgICAgQmlvbWV0cmljc0ZpbmdlcnByaW50OjpnZXRJbnN0YW5jZSgpKTsKKyAgICBpZiAodGhpc1B0ciA9PSBudWxscHRyIHx8IHRoaXNQdHItPm1DbGllbnRDYWxsYmFjayA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJSZWNlaXZpbmcgY2FsbGJhY2tzIGJlZm9yZSB0aGUgY2xpZW50IGNhbGxiYWNrIGlzIHJlZ2lzdGVyZWQuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY29uc3QgdWludDY0X3QgZGV2SWQgPSByZWludGVycHJldF9jYXN0PHVpbnQ2NF90Pih0aGlzUHRyLT5tRGV2aWNlKTsKKyAgICBzd2l0Y2ggKG1zZy0+dHlwZSkgeworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX0VSUk9SOiB7CisgICAgICAgICAgICAgICAgaW50MzJfdCB2ZW5kb3JDb2RlID0gMDsKKyAgICAgICAgICAgICAgICBGaW5nZXJwcmludEVycm9yIHJlc3VsdCA9IFZlbmRvckVycm9yRmlsdGVyKG1zZy0+ZGF0YS5lcnJvciwgJnZlbmRvckNvZGUpOworICAgICAgICAgICAgICAgIEFMT0dEKCJvbkVycm9yKCVkKSIsIHJlc3VsdCk7CisgICAgICAgICAgICAgICAgaWYgKCF0aGlzUHRyLT5tQ2xpZW50Q2FsbGJhY2stPm9uRXJyb3IoZGV2SWQsIHJlc3VsdCwgdmVuZG9yQ29kZSkuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gaW52b2tlIGZpbmdlcnByaW50IG9uRXJyb3IgY2FsbGJhY2siKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBGSU5HRVJQUklOVF9BQ1FVSVJFRDogeworICAgICAgICAgICAgICAgIGludDMyX3QgdmVuZG9yQ29kZSA9IDA7CisgICAgICAgICAgICAgICAgRmluZ2VycHJpbnRBY3F1aXJlZEluZm8gcmVzdWx0ID0KKyAgICAgICAgICAgICAgICAgICAgVmVuZG9yQWNxdWlyZWRGaWx0ZXIobXNnLT5kYXRhLmFjcXVpcmVkLmFjcXVpcmVkX2luZm8sICZ2ZW5kb3JDb2RlKTsKKyAgICAgICAgICAgICAgICBBTE9HRCgib25BY3F1aXJlZCglZCkiLCByZXN1bHQpOworICAgICAgICAgICAgICAgIGlmICghdGhpc1B0ci0+bUNsaWVudENhbGxiYWNrLT5vbkFjcXVpcmVkKGRldklkLCByZXN1bHQsIHZlbmRvckNvZGUpLmlzT2soKSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGludm9rZSBmaW5nZXJwcmludCBvbkFjcXVpcmVkIGNhbGxiYWNrIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfVEVNUExBVEVfRU5ST0xMSU5HOgorICAgICAgICAgICAgQUxPR0QoIm9uRW5yb2xsUmVzdWx0KGZpZD0lZCwgZ2lkPSVkLCByZW09JWQpIiwKKyAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW5yb2xsLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVucm9sbC5maW5nZXIuZ2lkLAorICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnJvbGwuc2FtcGxlc19yZW1haW5pbmcpOworICAgICAgICAgICAgaWYgKCF0aGlzUHRyLT5tQ2xpZW50Q2FsbGJhY2stPm9uRW5yb2xsUmVzdWx0KGRldklkLAorICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW5yb2xsLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnJvbGwuZmluZ2VyLmdpZCwKKyAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVucm9sbC5zYW1wbGVzX3JlbWFpbmluZykuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBpbnZva2UgZmluZ2VycHJpbnQgb25FbnJvbGxSZXN1bHQgY2FsbGJhY2siKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX1RFTVBMQVRFX1JFTU9WRUQ6CisgICAgICAgICAgICBBTE9HRCgib25SZW1vdmUoZmlkPSVkLCBnaWQ9JWQsIHJlbT0lZCkiLAorICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5yZW1vdmVkLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgbXNnLT5kYXRhLnJlbW92ZWQuZmluZ2VyLmdpZCwKKyAgICAgICAgICAgICAgICBtc2ctPmRhdGEucmVtb3ZlZC5yZW1haW5pbmdfdGVtcGxhdGVzKTsKKyAgICAgICAgICAgIGlmICghdGhpc1B0ci0+bUNsaWVudENhbGxiYWNrLT5vblJlbW92ZWQoZGV2SWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5yZW1vdmVkLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5yZW1vdmVkLmZpbmdlci5naWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5yZW1vdmVkLnJlbWFpbmluZ190ZW1wbGF0ZXMpLmlzT2soKSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gaW52b2tlIGZpbmdlcnByaW50IG9uUmVtb3ZlZCBjYWxsYmFjayIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRklOR0VSUFJJTlRfQVVUSEVOVElDQVRFRDoKKyAgICAgICAgICAgIGlmIChtc2ctPmRhdGEuYXV0aGVudGljYXRlZC5maW5nZXIuZmlkICE9IDApIHsKKyAgICAgICAgICAgICAgICBBTE9HRCgib25BdXRoZW50aWNhdGVkKGZpZD0lZCwgZ2lkPSVkKSIsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5hdXRoZW50aWNhdGVkLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5hdXRoZW50aWNhdGVkLmZpbmdlci5naWQpOworICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIGhhdCA9CisgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCAqPigmbXNnLT5kYXRhLmF1dGhlbnRpY2F0ZWQuaGF0KTsKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiB0b2tlbigKKyAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4oaGF0LCBoYXQgKyBzaXplb2YobXNnLT5kYXRhLmF1dGhlbnRpY2F0ZWQuaGF0KSkpOworICAgICAgICAgICAgICAgIGlmICghdGhpc1B0ci0+bUNsaWVudENhbGxiYWNrLT5vbkF1dGhlbnRpY2F0ZWQoZGV2SWQsCisgICAgICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuYXV0aGVudGljYXRlZC5maW5nZXIuZmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmF1dGhlbnRpY2F0ZWQuZmluZ2VyLmdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuKS5pc09rKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBpbnZva2UgZmluZ2VycHJpbnQgb25BdXRoZW50aWNhdGVkIGNhbGxiYWNrIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBOb3QgYSByZWNvZ25pemVkIGZpbmdlcnByaW50CisgICAgICAgICAgICAgICAgaWYgKCF0aGlzUHRyLT5tQ2xpZW50Q2FsbGJhY2stPm9uQXV0aGVudGljYXRlZChkZXZJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5hdXRoZW50aWNhdGVkLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgICAgICAgICBtc2ctPmRhdGEuYXV0aGVudGljYXRlZC5maW5nZXIuZ2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgaGlkbF92ZWM8dWludDhfdD4oKSkuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gaW52b2tlIGZpbmdlcnByaW50IG9uQXV0aGVudGljYXRlZCBjYWxsYmFjayIpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZJTkdFUlBSSU5UX1RFTVBMQVRFX0VOVU1FUkFUSU5HOgorICAgICAgICAgICAgQUxPR0QoIm9uRW51bWVyYXRlKGZpZD0lZCwgZ2lkPSVkLCByZW09JWQpIiwKKyAgICAgICAgICAgICAgICBtc2ctPmRhdGEuZW51bWVyYXRlZC5maW5nZXIuZmlkLAorICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnVtZXJhdGVkLmZpbmdlci5naWQsCisgICAgICAgICAgICAgICAgbXNnLT5kYXRhLmVudW1lcmF0ZWQucmVtYWluaW5nX3RlbXBsYXRlcyk7CisgICAgICAgICAgICBpZiAoIXRoaXNQdHItPm1DbGllbnRDYWxsYmFjay0+b25FbnVtZXJhdGUoZGV2SWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnVtZXJhdGVkLmZpbmdlci5maWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnVtZXJhdGVkLmZpbmdlci5naWQsCisgICAgICAgICAgICAgICAgICAgIG1zZy0+ZGF0YS5lbnVtZXJhdGVkLnJlbWFpbmluZ190ZW1wbGF0ZXMpLmlzT2soKSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCJmYWlsZWQgdG8gaW52b2tlIGZpbmdlcnByaW50IG9uRW51bWVyYXRlIGNhbGxiYWNrIik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIGZpbmdlcnByaW50Cit9ICAvLyBuYW1lc3BhY2UgYmlvbWV0cmljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9CaW9tZXRyaWNzRmluZ2VycHJpbnQuaCBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvQmlvbWV0cmljc0ZpbmdlcnByaW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkyM2M4NAotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvQmlvbWV0cmljc0ZpbmdlcnByaW50LmgKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9CSU9NRVRSSUNTX0ZJTkdFUlBSSU5UX1YyXzFfQklPTUVUUklDU0ZJTkdFUlBSSU5UX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9CSU9NRVRSSUNTX0ZJTkdFUlBSSU5UX1YyXzFfQklPTUVUUklDU0ZJTkdFUlBSSU5UX0gKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZmluZ2VycHJpbnQuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Lmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgYmlvbWV0cmljcyB7CituYW1lc3BhY2UgZmluZ2VycHJpbnQgeworbmFtZXNwYWNlIFYyXzEgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OlJlcXVlc3RTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBCaW9tZXRyaWNzRmluZ2VycHJpbnQgOiBwdWJsaWMgSUJpb21ldHJpY3NGaW5nZXJwcmludCB7CitwdWJsaWM6CisgICAgQmlvbWV0cmljc0ZpbmdlcnByaW50KCk7CisgICAgfkJpb21ldHJpY3NGaW5nZXJwcmludCgpOworCisgICAgLy8gTWV0aG9kIHRvIHdyYXAgbGVnYWN5IEhBTCB3aXRoIEJpb21ldHJpY3NGaW5nZXJwcmludCBjbGFzcworICAgIHN0YXRpYyBJQmlvbWV0cmljc0ZpbmdlcnByaW50KiBnZXRJbnN0YW5jZSgpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmJpb21ldHJpY3M6OmZpbmdlcnByaW50OjpWMl8xOjpJQmlvbWV0cmljc0ZpbmdlcnByaW50IGZvbGxvdy4KKyAgICBSZXR1cm48dWludDY0X3Q+IHNldE5vdGlmeShjb25zdCBzcDxJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2s+JiBjbGllbnRDYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHVpbnQ2NF90PiBwcmVFbnJvbGwoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gZW5yb2xsKGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgNjk+JiBoYXQsIHVpbnQzMl90IGdpZCwgdWludDMyX3QgdGltZW91dFNlYykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHBvc3RFbnJvbGwoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDY0X3Q+IGdldEF1dGhlbnRpY2F0b3JJZCgpIG92ZXJyaWRlOworICAgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiBjYW5jZWwoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gZW51bWVyYXRlKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlbW92ZSh1aW50MzJfdCBnaWQsIHVpbnQzMl90IGZpZCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHNldEFjdGl2ZUdyb3VwKHVpbnQzMl90IGdpZCwgY29uc3QgaGlkbF9zdHJpbmcmIHN0b3JlUGF0aCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IGF1dGhlbnRpY2F0ZSh1aW50NjRfdCBvcGVyYXRpb25JZCwgdWludDMyX3QgZ2lkKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgZmluZ2VycHJpbnRfZGV2aWNlX3QqIG9wZW5IYWwoKTsKKyAgICBzdGF0aWMgdm9pZCBub3RpZnkoY29uc3QgZmluZ2VycHJpbnRfbXNnX3QgKm1zZyk7IC8qIFN0YXRpYyBjYWxsYmFjayBmb3IgbGVnYWN5IEhBTCBpbXBsZW1lbnRhdGlvbiAqLworICAgIHN0YXRpYyBSZXR1cm48UmVxdWVzdFN0YXR1cz4gRXJyb3JGaWx0ZXIoaW50MzJfdCBlcnJvcik7CisgICAgc3RhdGljIEZpbmdlcnByaW50RXJyb3IgVmVuZG9yRXJyb3JGaWx0ZXIoaW50MzJfdCBlcnJvciwgaW50MzJfdCogdmVuZG9yQ29kZSk7CisgICAgc3RhdGljIEZpbmdlcnByaW50QWNxdWlyZWRJbmZvIFZlbmRvckFjcXVpcmVkRmlsdGVyKGludDMyX3QgZXJyb3IsIGludDMyX3QqIHZlbmRvckNvZGUpOworICAgIHN0YXRpYyBCaW9tZXRyaWNzRmluZ2VycHJpbnQqIHNJbnN0YW5jZTsKKworICAgIHNwPElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjaz4gbUNsaWVudENhbGxiYWNrOworICAgIGZpbmdlcnByaW50X2RldmljZV90ICptRGV2aWNlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIGZpbmdlcnByaW50Cit9ICAvLyBuYW1lc3BhY2UgYmlvbWV0cmljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfQklPTUVUUklDU19GSU5HRVJQUklOVF9WMl8xX0JJT01FVFJJQ1NGSU5HRVJQUklOVF9ICmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEtc2VydmljZS5yYyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMS1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhNzY3YTYKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjEtc2VydmljZS5yYwpAQCAtMCwwICsxLDcgQEAKK3NlcnZpY2UgZnBzX2hhbCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UKKyAgICAjICJjbGFzcyBoYWwiIGNhdXNlcyBhIHJhY2UgY29uZGl0aW9uIG9uIHNvbWUgZGV2aWNlcyBkdWUgdG8gZmlsZXMgY3JlYXRlZAorICAgICMgaW4gL2RhdGEuIEFzIGEgd29ya2Fyb3VuZCwgcG9zdHBvbmUgc3RhcnR1cCB1bnRpbCBsYXRlciBpbiBib290IG9uY2UKKyAgICAjIC9kYXRhIGlzIG1vdW50ZWQuCisgICAgY2xhc3MgbGF0ZV9zdGFydAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtIGlucHV0CmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjk3YzA3Ci0tLSAvZGV2L251bGwKKysrIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmJpb21ldHJpY3MuZmluZ2VycHJpbnRAMi4xLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGhpZGwvSGlkbFN1cHBvcnQuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS90eXBlcy5oPgorI2luY2x1ZGUgIkJpb21ldHJpY3NGaW5nZXJwcmludC5oIgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OmltcGxlbWVudGF0aW9uOjpCaW9tZXRyaWNzRmluZ2VycHJpbnQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OnNwOworCitpbnQgbWFpbigpIHsKKyAgICBhbmRyb2lkOjpzcDxJQmlvbWV0cmljc0ZpbmdlcnByaW50PiBiaW8gPSBCaW9tZXRyaWNzRmluZ2VycHJpbnQ6OmdldEluc3RhbmNlKCk7CisKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDEsIHRydWUgLypjYWxsZXJXaWxsSm9pbiovKTsKKworICAgIGlmIChiaW8gIT0gbnVsbHB0cikgeworICAgICAgICBiaW8tPnJlZ2lzdGVyQXNTZXJ2aWNlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoIkNhbid0IGNyZWF0ZSBpbnN0YW5jZSBvZiBCaW9tZXRyaWNzRmluZ2VycHJpbnQsIG51bGxwdHIiKTsKKyAgICB9CisKKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworCisgICAgcmV0dXJuIDA7IC8vIHNob3VsZCBuZXZlciBnZXQgaGVyZQorfQpkaWZmIC0tZ2l0IGEvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdHlwZXMuaGFsIGIvYmlvbWV0cmljcy9maW5nZXJwcmludC8yLjEvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MDIwODUKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS90eXBlcy5oYWwKQEAgLTAsMCArMSwxNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE7CisKKy8qKgorICogUmVxdWVzdCBzdGF0dXMgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJlcXVlc3QgaXMgYWNjZXB0ZWQgYnkgdGhlIHZlbmRvcgorICogaW1wbGVtZW50YXRpb24gb3Igbm90LiBUaGVzZSB2YWx1ZXMgYXJlIHRha2VuIGZyb20gdGhlIGVycm5vIHNldCwKKyAqIGV4Y2VwdCBmb3IgdGhlIFNZU19VTktOT1dOCisgKi8KK2VudW0gUmVxdWVzdFN0YXR1cyA6IGludDMyX3QgeworICBTWVNfVU5LTk9XTiA9IDEsCisgIFNZU19PSyA9IDAsCisgIFNZU19FTk9FTlQgPSAtMiwKKyAgU1lTX0VJTlRSID0gLTQsCisgIFNZU19FSU8gPSAtNSwKKyAgU1lTX0VBR0FJTiA9IC0xMSwKKyAgU1lTX0VOT01FTSA9IC0xMiwKKyAgU1lTX0VBQ0NFUyA9IC0xMywKKyAgU1lTX0VGQVVMVCA9IC0xNCwKKyAgU1lTX0VCVVNZID0gLTE2LAorICBTWVNfRUlOVkFMID0gLTIyLAorICBTWVNfRU5PU1BDID0gLTI4LAorICBTWVNfRVRJTUVET1VUID0gLTExMCwKK307CisKKy8qKgorICogRmluZ2VycHJpbnQgZXJyb3JzIGFyZSBtZWFudCB0byB0ZWxsIHRoZSBmcmFtZXdvcmsgdG8gdGVybWluYXRlIHRoZSBjdXJyZW50CisgKiBvcGVyYXRpb24gYW5kIGFzayBmb3IgdGhlIHVzZXIgdG8gY29ycmVjdCB0aGUgc2l0dWF0aW9uLiBUaGVzZSB3aWxsIGFsbW9zdAorICogYWx3YXlzIHJlc3VsdCBpbiBtZXNzYWdpbmcgYW5kIHVzZXIgaW50ZXJhY3Rpb24gdG8gY29ycmVjdCB0aGUgcHJvYmxlbS4KKyAqCisgKiBGb3IgZXhhbXBsZSwgRVJST1JfQ0FOQ0VMRUQgc2hvdWxkIGZvbGxvdyBhbnkgYWNxdWlzaXRpb24gbWVzc2FnZSB0aGF0CisgKiByZXN1bHRzIGluIGEgc2l0dWF0aW9uIHdoZXJlIHRoZSBjdXJyZW50IG9wZXJhdGlvbiBjYW4ndCBjb250aW51ZSB3aXRob3V0CisgKiB1c2VyIGludGVyYWN0aW9uLiBGb3IgZXhhbXBsZSwgaWYgdGhlIHNlbnNvciBpcyBkaXJ0eSBkdXJpbmcgZW5yb2xsbWVudCBhbmQKKyAqIG5vIGZ1cnRoZXIgZW5yb2xsbWVudCBwcm9ncmVzcyBjYW4gYmUgbWFkZSwgc2VuZCBBQ1FVSVJFRF9JTUFHRVJfRElSVFkKKyAqIGZvbGxvd2VkIGJ5IEVSUk9SX0NBTkNFTEVELgorICovCitlbnVtIEZpbmdlcnByaW50RXJyb3IgOiBpbnQzMl90IHsKKyAgLyoqIFVzZWQgZm9yIHRlc3RpbmcsIG5vIGVycm9yIHJldHVybmVkICovCisgIEVSUk9SX05PX0VSUk9SID0gMCwKKyAgLyoqIFRoZSBoYXJkd2FyZSBoYXMgYW4gZXJyb3IgdGhhdCBjYW4ndCBiZSByZXNvbHZlZC4gKi8KKyAgRVJST1JfSFdfVU5BVkFJTEFCTEUgPSAxLAorICAvKiogQmFkIGRhdGE7IG9wZXJhdGlvbiBjYW4ndCBjb250aW51ZSAqLworICBFUlJPUl9VTkFCTEVfVE9fUFJPQ0VTUyA9IDIsCisgIC8qKiBUaGUgb3BlcmF0aW9uIGhhcyB0aW1lZCBvdXQgd2FpdGluZyBmb3IgdXNlciBpbnB1dC4gKi8KKyAgRVJST1JfVElNRU9VVCA9IDMsCisgIC8qKiBObyBzcGFjZSBhdmFpbGFibGUgdG8gc3RvcmUgYSB0ZW1wbGF0ZSAqLworICBFUlJPUl9OT19TUEFDRSA9IDQsCisgIC8qKiBUaGUgY3VycmVudCBvcGVyYXRpb24gaGFzIGJlZW4gY2FuY2VsZWQgKi8KKyAgRVJST1JfQ0FOQ0VMRUQgPSA1LAorICAvKiogVW5hYmxlIHRvIHJlbW92ZSBhIHRlbXBsYXRlICovCisgIEVSUk9SX1VOQUJMRV9UT19SRU1PVkUgPSA2LAorICAvKiogVGhlIGhhcmR3YXJlIGlzIGluIGxvY2tvdXQgZHVlIHRvIHRvbyBtYW55IGF0dGVtcHRzICovCisgIEVSUk9SX0xPQ0tPVVQgPSA3LAorICAvKiogVmVuZG9yLXNwZWNpZmljIGVycm9yIG1lc3NhZ2UgKi8KKyAgRVJST1JfVkVORE9SID0gOAorfTsKKworLyoqCisgKiBGaW5nZXJwcmludCBhY3F1aXNpdGlvbiBpbmZvIGlzIG1lYW50IGFzIGZlZWRiYWNrIGZvciB0aGUgY3VycmVudCBvcGVyYXRpb24uCisgKiBBbnl0aGluZyBidXQgQUNRVUlSRURfR09PRCBtdXN0IGJlIHNob3duIHRvIHRoZSB1c2VyIGFzIGZlZWRiYWNrIG9uIGhvdyB0bworICogdGFrZSBhY3Rpb24gb24gdGhlIGN1cnJlbnQgb3BlcmF0aW9uLiBGb3IgZXhhbXBsZSwgQUNRVUlSRURfSU1BR0VSX0RJUlRZIG1heQorICogYmUgdXNlZCB0byB0ZWxsIHRoZSB1c2VyIHRvIGNsZWFuIHRoZSBzZW5zb3IgaWYgaXQgaXMgZGV0ZWN0ZWQgdG8gYmUgZGlydHkuCisgKiBJZiB0aGlzIGNhdXNlcyB0aGUgY3VycmVudCBvcGVyYXRpb24gdG8gZmFpbCwgYW4gYWRkaXRpb25hbCBFUlJPUl9DQU5DRUxFRAorICogbXVzdCBiZSBzZW50IHRvIHN0b3AgdGhlIG9wZXJhdGlvbiBpbiBwcm9ncmVzcyAoZS5nLiBlbnJvbGxtZW50KS4KKyAqIEluIGdlbmVyYWwsIHRoZXNlIG1lc3NhZ2VzIHdpbGwgcmVzdWx0IGluIGEgIlRyeSBhZ2FpbiIgbWVzc2FnZS4KKyAqLworZW51bSBGaW5nZXJwcmludEFjcXVpcmVkSW5mbyA6IGludDMyX3QgeworICBBQ1FVSVJFRF9HT09EID0gMCwKKyAgLyoqIHNlbnNvciBuZWVkcyBtb3JlIGRhdGEsIGkuZS4gbG9uZ2VyIHN3aXBlLiAqLworICBBQ1FVSVJFRF9QQVJUSUFMID0gMSwKKyAgLyoqCisgICAqIGltYWdlIGRvZXNuJ3QgY29udGFpbiBlbm91Z2ggZGV0YWlsIGZvciByZWNvZ25pdGlvbiovCisgIEFDUVVJUkVEX0lOU1VGRklDSUVOVCA9IDIsCisgIC8qKiBzZW5zb3IgbmVlZHMgdG8gYmUgY2xlYW5lZCAqLworICBBQ1FVSVJFRF9JTUFHRVJfRElSVFkgPSAzLAorICAvKiogbW9zdGx5IHN3aXBlLXR5cGUgc2Vuc29yczsgbm90IGVub3VnaCBkYXRhIGNvbGxlY3RlZCAqLworICBBQ1FVSVJFRF9UT09fU0xPVyA9IDQsCisgIC8qKiB2ZW5kb3Itc3BlY2lmaWMgYWNxdWlzaXRpb24gbWVzc2FnZXMgc3RhcnQgaGVyZSAqLworICBBQ1FVSVJFRF9UT09fRkFTVCA9IDUsCisgIC8qKiB2ZW5kb3Itc3BlY2lmaWMgYWNxdWlzaXRpb24gbWVzc2FnZXMgKi8KKyAgQUNRVUlSRURfVkVORE9SID0gNgorfTsKKworc3RydWN0IEZpbmdlcnByaW50RmluZ2VySWQgeworICAvKiogR3JvdXAgSUQgKi8KKyAgdWludDMyX3QgZ2lkOworICAvKiogRmluZ2VycHJpbnQgdGVtcGxhdGUgSUQgKi8KKyAgdWludDMyX3QgZmlkOworfTsKKworc3RydWN0IEZpbmdlcnByaW50RW5yb2xsIHsKKyAgLyoqIFRlbXBsYXRlIElEICovCisgIEZpbmdlcnByaW50RmluZ2VySWQgZmluZ2VyOworICAvKioKKyAgICogc2FtcGxlc1JlbWFpbmluZyBnb2VzIGZyb20gTiAobm8gZGF0YSBjb2xsZWN0ZWQsIGJ1dCBOIHNjYW5zIG5lZWRlZCkKKyAgICogdG8gMCAobm8gbW9yZSBkYXRhIGlzIG5lZWRlZCB0byBidWlsZCBhIHRlbXBsYXRlKS4gKi8KKyAgdWludDMyX3Qgc2FtcGxlc1JlbWFpbmluZzsKKyAgLyoqIFZlbmRvciBzcGVjaWZpYyBtZXNzYWdlLiBVc2VkIGZvciB1c2VyIGd1aWRhbmNlICovCisgIHVpbnQ2NF90IG1zZzsKK307CisKK3N0cnVjdCBGaW5nZXJwcmludEl0ZXJhdG9yIHsKKyAgLyoqIFRlbXBsYXRlIElEICovCisgIEZpbmdlcnByaW50RmluZ2VySWQgZmluZ2VyOworICAvKiogSG93IG1hbnkgdGVtcGxhdGVzIHJlbWFpbiB0byBpdGVyYXRlIHRocm91Z2ggKi8KKyAgdWludDMyX3QgcmVtYWluaW5nVGVtcGxhdGVzOworfTsKKwordHlwZWRlZiBGaW5nZXJwcmludEl0ZXJhdG9yIEZpbmdlcnByaW50RW51bWVyYXRlZDsKK3R5cGVkZWYgRmluZ2VycHJpbnRJdGVyYXRvciBGaW5nZXJwcmludFJlbW92ZWQ7CisKK3N0cnVjdCBGaW5nZXJwcmludEFjcXVpcmVkIHsKKyAgLyoqIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpbWFnZSAqLworICBGaW5nZXJwcmludEFjcXVpcmVkSW5mbyBhY3F1aXJlZEluZm87Cit9OworCitzdHJ1Y3QgRmluZ2VycHJpbnRBdXRoZW50aWNhdGVkIHsKKyAgLyoqIE1hdGNoZWQgdGVtcGxhdGUgSUQgKi8KKyAgRmluZ2VycHJpbnRGaW5nZXJJZCBmaW5nZXI7CisgIC8qKiBBdXRoZW50aWNhdGlvbiByZXN1bHQgZnJvbSB0aGUga2V5bWFzdGVyICovCisgIHVpbnQ4X3RbNjldIGhhdDsKK307CisKKy8qKiBSdW4gdGltZSB0eXBlIGlkZW50aWZpY2F0aW9uIGZvciB0aGUgbm90aWZ5KCkgY2FsbCBwYXlsb2FkLiAqLworZW51bSBGaW5nZXJwcmludE1zZ1R5cGUgOiBpbnQzMl90IHsKKyAgRVJST1IgPSAtMSwKKyAgQUNRVUlSRUQgPSAxLAorICBURU1QTEFURV9FTlJPTExJTkcgPSAzLAorICBURU1QTEFURV9SRU1PVkVEID0gNCwKKyAgQVVUSEVOVElDQVRFRCA9IDUsCisgIFRFTVBMQVRFX0VOVU1FUkFUSU5HID0gNiwKK307CisKZGlmZiAtLWdpdCBhL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3YjcxNTcKLS0tIC9kZXYvbnVsbAorKysgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxCaW9tZXRyaWNzRmluZ2VycHJpbnRWMl8xVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsQmlvbWV0cmljc0ZpbmdlcnByaW50VjJfMVRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMSIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQorCmRpZmYgLS1naXQgYS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxCaW9tZXRyaWNzRmluZ2VycHJpbnRWMl8xVGFyZ2V0VGVzdC5jcHAgYi9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxCaW9tZXRyaWNzRmluZ2VycHJpbnRWMl8xVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk3NzZiNAotLS0gL2Rldi9udWxsCisrKyBiL2Jpb21ldHJpY3MvZmluZ2VycHJpbnQvMi4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEJpb21ldHJpY3NGaW5nZXJwcmludFYyXzFUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDQ2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiZmluZ2VycHJpbnRfaGlkbF9oYWxfdGVzdCIKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9iaW9tZXRyaWNzL2ZpbmdlcnByaW50LzIuMS9JQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2suaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCisjaW5jbHVkZSA8Y2ludHR5cGVzPgorI2luY2x1ZGUgPGZ1dHVyZT4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCit1c2luZyBhbmRyb2lkOjpDb25kaXRpb247Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjazsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpiaW9tZXRyaWNzOjpmaW5nZXJwcmludDo6VjJfMTo6RmluZ2VycHJpbnRBY3F1aXJlZEluZm87Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OkZpbmdlcnByaW50RXJyb3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6YmlvbWV0cmljczo6ZmluZ2VycHJpbnQ6OlYyXzE6OlJlcXVlc3RTdGF0dXM7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgYW5kcm9pZDo6TXV0ZXg7Cit1c2luZyBhbmRyb2lkOjpzcDsKKworbmFtZXNwYWNlIHsKKworc3RhdGljIGNvbnN0IHVpbnQzMl90IGtUaW1lb3V0ID0gMzsKK3N0YXRpYyBjb25zdCBzdGQ6OmNocm9ubzo6c2Vjb25kcyBrVGltZW91dEluU2Vjb25kcyA9IHN0ZDo6Y2hyb25vOjpzZWNvbmRzKGtUaW1lb3V0KTsKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBrR3JvdXBJZCA9IDk5Oworc3RhdGljIGNvbnN0IHN0ZDo6c3RyaW5nIGtUbXBEaXIgPSAiL2RhdGEvc3lzdGVtLyI7CitzdGF0aWMgY29uc3QgdWludDMyX3Qga0l0ZXJhdGlvbnMgPSAxMDAwOworCisvLyBXYWl0IGZvciBhIGNhbGxiYWNrIHRvIG9jY3VyIChzaWduYWxlZCBieSB0aGUgZ2l2ZW4gZnV0dXJlKSB1cCB0byB0aGUKKy8vIHByb3ZpZGVkIHRpbWVvdXQuIElmIHRoZSBmdXR1cmUgaXMgaW52YWxpZCBvciB0aGUgY2FsbGJhY2sgZG9lcyBub3QgY29tZQorLy8gd2l0aGluIHRoZSBnaXZlbiB0aW1lLCByZXR1cm5zIGZhbHNlLgordGVtcGxhdGU8Y2xhc3MgUmV0dXJuVHlwZT4KK2Jvb2wgd2FpdEZvckNhbGxiYWNrKAorICAgIHN0ZDo6ZnV0dXJlPFJldHVyblR5cGU+IGZ1dHVyZSwKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQgPSBrVGltZW91dEluU2Vjb25kcykgeworICBhdXRvIGV4cGlyYXRpb24gPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArIHRpbWVvdXQ7CisKKyAgRVhQRUNUX1RSVUUoZnV0dXJlLnZhbGlkKCkpOworICBpZiAoZnV0dXJlLnZhbGlkKCkpIHsKKyAgICBzdGQ6OmZ1dHVyZV9zdGF0dXMgc3RhdHVzID0gZnV0dXJlLndhaXRfdW50aWwoZXhwaXJhdGlvbik7CisgICAgRVhQRUNUX05FKHN0ZDo6ZnV0dXJlX3N0YXR1czo6dGltZW91dCwgc3RhdHVzKQorICAgICAgICA8PCAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIGNhbGxiYWNrIjsKKyAgICBpZiAoc3RhdHVzID09IHN0ZDo6ZnV0dXJlX3N0YXR1czo6cmVhZHkpIHsKKyAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgfQorCisgIHJldHVybiBmYWxzZTsKK30KKworLy8gQmFzZSBjYWxsYmFjayBpbXBsZW1lbnRhdGlvbiB0aGF0IGp1c3QgbG9ncyBhbGwgY2FsbGJhY2tzIGJ5IGRlZmF1bHQKK2NsYXNzIEZpbmdlcnByaW50Q2FsbGJhY2tCYXNlIDogcHVibGljIElCaW9tZXRyaWNzRmluZ2VycHJpbnRDbGllbnRDYWxsYmFjayB7CisgcHVibGljOgorICAvLyBpbXBsZW1lbnQgbWV0aG9kcyBvZiBJQmlvbWV0cmljc0ZpbmdlcnByaW50Q2xpZW50Q2FsbGJhY2sKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25FbnJvbGxSZXN1bHQodWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QpCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkVucm9sbCBjYWxsYmFjayBjYWxsZWQuIik7CisgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25BY3F1aXJlZCh1aW50NjRfdCwgRmluZ2VycHJpbnRBY3F1aXJlZEluZm8sIGludDMyX3QpCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkFjcXVpcmVkIGNhbGxiYWNrIGNhbGxlZC4iKTsKKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvbkF1dGhlbnRpY2F0ZWQodWludDY0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwKKyAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+Jikgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJBdXRoZW50aWNhdGVkIGNhbGxiYWNrIGNhbGxlZC4iKTsKKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvbkVycm9yKHVpbnQ2NF90LCBGaW5nZXJwcmludEVycm9yLCBpbnQzMl90KQorICAgICAgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJFcnJvciBjYWxsYmFjayBjYWxsZWQuIik7CisgICAgRVhQRUNUX1RSVUUoZmFsc2UpOyAgLy8gZmFpbCBhbnkgdGVzdCB0aGF0IHRyaWdnZXJzIGFuIGVycm9yCisgICAgcmV0dXJuIFJldHVybjx2b2lkPigpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25SZW1vdmVkKHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90KQorICAgICAgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJSZW1vdmVkIGNhbGxiYWNrIGNhbGxlZC4iKTsKKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBvbkVudW1lcmF0ZSh1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCkKKyAgICAgIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiRW51bWVyYXRlIGNhbGxiYWNrIGNhbGxlZC4iKTsKKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KK307CisKK2NsYXNzIEVudW1lcmF0ZUNhbGxiYWNrIDogcHVibGljIEZpbmdlcnByaW50Q2FsbGJhY2tCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG9uRW51bWVyYXRlKHVpbnQ2NF90IGRldmljZUlkLCB1aW50MzJfdCBmaW5nZXJJZCwKKyAgICAgIHVpbnQzMl90IGdyb3VwSWQsIHVpbnQzMl90IHJlbWFpbmluZykgb3ZlcnJpZGUgeworICAgIHRoaXMtPmRldmljZUlkID0gZGV2aWNlSWQ7CisgICAgdGhpcy0+ZmluZ2VySWQgPSBmaW5nZXJJZDsKKyAgICB0aGlzLT5ncm91cElkID0gZ3JvdXBJZDsKKyAgICB0aGlzLT5yZW1haW5pbmcgPSByZW1haW5pbmc7CisKKyAgICBpZihyZW1haW5pbmcgPT0gMFVMKSB7CisgICAgICBwcm9taXNlLnNldF92YWx1ZSgpOworICAgIH0KKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICB1aW50NjRfdCBkZXZpY2VJZDsKKyAgdWludDMyX3QgZmluZ2VySWQ7CisgIHVpbnQzMl90IGdyb3VwSWQ7CisgIHVpbnQzMl90IHJlbWFpbmluZzsKKyAgc3RkOjpwcm9taXNlPHZvaWQ+IHByb21pc2U7Cit9OworCitjbGFzcyBFcnJvckNhbGxiYWNrIDogcHVibGljIEZpbmdlcnByaW50Q2FsbGJhY2tCYXNlIHsKKyBwdWJsaWM6CisgIEVycm9yQ2FsbGJhY2soCisgICAgICBib29sIGZpbHRlckVycm9ycz1mYWxzZSwKKyAgICAgIEZpbmdlcnByaW50RXJyb3IgZXJyb3JUeXBlPUZpbmdlcnByaW50RXJyb3I6OkVSUk9SX05PX0VSUk9SKSB7CisgICAgdGhpcy0+ZmlsdGVyRXJyb3JzID0gZmlsdGVyRXJyb3JzOworICAgIHRoaXMtPmVycm9yVHlwZSA9IGVycm9yVHlwZTsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IG9uRXJyb3IodWludDY0X3QgZGV2aWNlSWQsIEZpbmdlcnByaW50RXJyb3IgZXJyb3IsCisgICAgICBpbnQzMl90IHZlbmRvckNvZGUpIG92ZXJyaWRlIHsKKyAgICBpZiAoKHRoaXMtPmZpbHRlckVycm9ycyAmJiB0aGlzLT5lcnJvclR5cGUgPT0gZXJyb3IpIHx8ICF0aGlzLT5maWx0ZXJFcnJvcnMpIHsKKyAgICAgIHRoaXMtPmRldmljZUlkID0gZGV2aWNlSWQ7CisgICAgICB0aGlzLT5lcnJvciA9IGVycm9yOworICAgICAgdGhpcy0+dmVuZG9yQ29kZSA9IHZlbmRvckNvZGU7CisgICAgICBwcm9taXNlLnNldF92YWx1ZSgpOworICAgIH0KKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICBib29sIGZpbHRlckVycm9yczsKKyAgRmluZ2VycHJpbnRFcnJvciBlcnJvclR5cGU7CisgIHVpbnQ2NF90IGRldmljZUlkOworICBGaW5nZXJwcmludEVycm9yIGVycm9yOworICBpbnQzMl90IHZlbmRvckNvZGU7CisgIHN0ZDo6cHJvbWlzZTx2b2lkPiBwcm9taXNlOworfTsKKworY2xhc3MgUmVtb3ZlQ2FsbGJhY2sgOiBwdWJsaWMgRmluZ2VycHJpbnRDYWxsYmFja0Jhc2UgeworIHB1YmxpYzoKKyAgUmVtb3ZlQ2FsbGJhY2sodWludDMyX3QgZ3JvdXBJZCkgeworICAgIHRoaXMtPnJlbW92ZUdyb3VwSWQgPSBncm91cElkOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gb25SZW1vdmVkKHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QgZ3JvdXBJZCwKKyAgICAgIHVpbnQzMl90IHJlbWFpbmluZykgb3ZlcnJpZGUgeworICAgIEVYUEVDVF9FUSh0aGlzLT5yZW1vdmVHcm91cElkLCBncm91cElkKTsKKyAgICBpZihyZW1haW5pbmcgPT0gMFVMKSB7CisgICAgICBwcm9taXNlLnNldF92YWx1ZSgpOworICAgIH0KKyAgICByZXR1cm4gUmV0dXJuPHZvaWQ+KCk7CisgIH0KKworICB1aW50MzJfdCByZW1vdmVHcm91cElkOworICBzdGQ6OnByb21pc2U8dm9pZD4gcHJvbWlzZTsKK307CisKK2NsYXNzIEZpbmdlcnByaW50SGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIG1TZXJ2aWNlID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUJpb21ldHJpY3NGaW5nZXJwcmludD4oKTsKKyAgICBBU1NFUlRfRkFMU0UobVNlcnZpY2UgPT0gbnVsbHB0cik7CisKKyAgICAvLyBDcmVhdGUgYW4gYWN0aXZlIGdyb3VwCisgICAgLy8gRlAgc2VydmljZSBjYW4gb25seSB3cml0ZSB0byAvZGF0YS9zeXN0ZW0gZHVlIHRvCisgICAgLy8gU0VMaW51eCBQb2xpY3kgYW5kIExpbnV4IERpciBQZXJtaXNzaW9ucworICAgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+c2V0QWN0aXZlR3JvdXAoa0dyb3VwSWQsIGtUbXBEaXIpOworICAgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBzcDxJQmlvbWV0cmljc0ZpbmdlcnByaW50PiBtU2VydmljZTsKK307CisKKworLy8gVGhlIHNlcnZpY2Ugc2hvdWxkIGJlIHJlYWNoYWJsZS4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBDb25uZWN0VGVzdCkgeworICBzcDxGaW5nZXJwcmludENhbGxiYWNrQmFzZT4gY2IgPSBuZXcgRmluZ2VycHJpbnRDYWxsYmFja0Jhc2UoKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFVMLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKK30KKworLy8gU3RhcnRpbmcgdGhlIHNlcnZpY2Ugd2l0aCBudWxsIGNhbGxiYWNrIHNob3VsZCBzdWNjZWVkLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIENvbm5lY3ROdWxsVGVzdCkgeworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShOVUxMKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7Cit9CisKKy8vIFByZS1lbnJvbGwgc2hvdWxkIGFsd2F5cyByZXR1cm4gdW5pcXVlLCBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUsIG5vbi16ZXJvIG51bWJlcgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIFByZUVucm9sbFRlc3QpIHsKKyAgc3RkOjptYXA8dWludDY0X3QsIHVpbnQ2NF90PiBtOworCisgIGZvcih1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBrSXRlcmF0aW9uczsgKytpKSB7CisgICAgdWludDY0X3QgcmVzID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KG1TZXJ2aWNlLT5wcmVFbnJvbGwoKSk7CisgICAgRVhQRUNUX05FKDBVTCwgcmVzKTsKKyAgICBtW3Jlc10rKzsKKyAgICBFWFBFQ1RfRVEoMVVMLCBtW3Jlc10pOworICB9Cit9CisKKy8vIEVucm9sbCB3aXRoIGFuIGludmFsaWQgKGFsbCB6ZXJvZXMpIEhBVCBzaG91bGQgZmFpbC4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBFbnJvbGxJbnZhbGlkSGF0VGVzdCkgeworICBzcDxFcnJvckNhbGxiYWNrPiBjYiA9IG5ldyBFcnJvckNhbGxiYWNrKCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgdWludDhfdCB0b2tlbls2OV07CisgIGZvcihpbnQgaT0wOyBpPDY5OyBpKyspIHsKKyAgICB0b2tlbltpXSA9IDA7CisgIH0KKworICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPmVucm9sbCh0b2tlbiwga0dyb3VwSWQsIGtUaW1lb3V0KTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gQXQgbGVhc3Qgb25lIGNhbGwgdG8gb25FcnJvciBzaG91bGQgb2NjdXIKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworICBBU1NFUlRfTkUoRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfTk9fRVJST1IsIGNiLT5lcnJvcik7Cit9CisKKy8vIEVucm9sbCB3aXRoIGFuIGludmFsaWQgKG51bGwpIEhBVCBzaG91bGQgZmFpbC4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBFbnJvbGxOdWxsVGVzdCkgeworICBzcDxFcnJvckNhbGxiYWNrPiBjYiA9IG5ldyBFcnJvckNhbGxiYWNrKCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgdWludDhfdCB0b2tlbls2OV07CisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+ZW5yb2xsKHRva2VuLCBrR3JvdXBJZCwga1RpbWVvdXQpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBBdCBsZWFzdCBvbmUgY2FsbCB0byBvbkVycm9yIHNob3VsZCBvY2N1cgorICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7CisgIEFTU0VSVF9ORShGaW5nZXJwcmludEVycm9yOjpFUlJPUl9OT19FUlJPUiwgY2ItPmVycm9yKTsKK30KKworLy8gUG9zdEVucm9sbCBzaG91bGQgYWx3YXlzIHJldHVybiB3aXRoaW4gM3MKK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBQb3N0RW5yb2xsVGVzdCkgeworICBzcDxGaW5nZXJwcmludENhbGxiYWNrQmFzZT4gY2IgPSBuZXcgRmluZ2VycHJpbnRDYWxsYmFja0Jhc2UoKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworCisgIGF1dG8gc3RhcnQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKTsKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5wb3N0RW5yb2xsKCk7CisgIGF1dG8gZWxhcHNlZCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpIC0gc3RhcnQ7CisgIEFTU0VSVF9HRShrVGltZW91dEluU2Vjb25kcywgZWxhcHNlZCk7Cit9CisKKy8vIGdldEF1dGhlbnRpY2F0b3JJZCBzaG91bGQgYWx3YXlzIHJldHVybiBub24temVybyBudW1iZXJzCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgR2V0QXV0aGVudGljYXRvcklkVGVzdCkgeworICBSZXR1cm48dWludDY0X3Q+IHJlcyA9IG1TZXJ2aWNlLT5nZXRBdXRoZW50aWNhdG9ySWQoKTsKKyAgRVhQRUNUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJlcykpOworfQorCisvLyBFbnVtZXJhdGUgc2hvdWxkIGFsd2F5cyB0cmlnZ2VyIG9uRW51bWVyYXRlZChmaWQ9MCwgcmVtPTApIHdoZW4gdGhlcmUgYXJlIG5vIGZpbmdlcnByaW50cworVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIEVudW1lcmF0ZVRlc3QpIHsKKyAgc3A8RW51bWVyYXRlQ2FsbGJhY2s+IGNiID0gbmV3IEVudW1lcmF0ZUNhbGxiYWNrKCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgLy8gQ2FsbGJhY2sgd2lsbCByZXR1cm4gd2hlbiByZW09MCBpcyBmb3VuZAorICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPmVudW1lcmF0ZSgpOworICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7CisgIEVYUEVDVF9FUSgwVUwsIGNiLT5maW5nZXJJZCk7CisgIEVYUEVDVF9FUSgwVUwsIGNiLT5yZW1haW5pbmcpOworCit9CisKKy8vIFJlbW92ZSBzaG91bGQgc3VjY2VlZCBvbiBhbnkgaW5wdXRzCisvLyBBdCBsZWFzdCBvbmUgY2FsbGJhY2sgd2l0aCAicmVtYWluaW5nPTAiIHNob3VsZCBvY2N1cgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIFJlbW92ZUZpbmdlcnByaW50VGVzdCkgeworICAvLyBSZWdpc3RlciBjYWxsYmFjaworICBzcDxSZW1vdmVDYWxsYmFjaz4gY2IgPSBuZXcgUmVtb3ZlQ2FsbGJhY2soa0dyb3VwSWQpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVUwsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIC8vIFJlbW92ZSBhIGZpbmdlcnByaW50CisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+cmVtb3ZlKGtHcm91cElkLCAxKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gQXQgbGVhc3Qgb25lIGNhbGwgdG8gb25SZW1vdmUgd2l0aCByZW1haW5pbmc9MCBzaG91bGQgb2NjdXIKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworfQorCisvLyBSZW1vdmUgc2hvdWxkIGFjY2VwdCAwIHRvIGRlbGV0ZSBhbGwgZmluZ2VycHJpbnRzCisvLyBBdCBsZWFzdCBvbmUgY2FsbGJhY2sgd2l0aCAicmVtYWluaW5nPTAiIHNob3VsZCBvY2N1ci4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBSZW1vdmVBbGxGaW5nZXJwcmludHNUZXN0KSB7CisgIC8vIFJlZ2lzdGVyIGNhbGxiYWNrCisgIHNwPFJlbW92ZUNhbGxiYWNrPiBjYiA9IG5ldyBSZW1vdmVDYWxsYmFjayhrR3JvdXBJZCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVTCwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgLy8gUmVtb3ZlIGFsbCBmaW5nZXJwcmludHMKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5yZW1vdmUoa0dyb3VwSWQsIDApOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworfQorCisvLyBBY3RpdmUgZ3JvdXAgc2hvdWxkIHN1Y2Nlc3NmdWxseSBzZXQgdG8gYSB3cml0YWJsZSBsb2NhdGlvbi4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBTZXRBY3RpdmVHcm91cFRlc3QpIHsKKyAgLy8gQ3JlYXRlIGFuIGFjdGl2ZSBncm91cAorICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnNldEFjdGl2ZUdyb3VwKDIsIGtUbXBEaXIpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBSZXNldCBhY3RpdmUgZ3JvdXAKKyAgcmVzID0gbVNlcnZpY2UtPnNldEFjdGl2ZUdyb3VwKGtHcm91cElkLCBrVG1wRGlyKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7Cit9CisKKy8vIEFjdGl2ZSBncm91cCBzaG91bGQgZmFpbCB0byBzZXQgdG8gYW4gdW53cml0YWJsZSBsb2NhdGlvbi4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBTZXRBY3RpdmVHcm91cFVud3JpdGFibGVUZXN0KSB7CisgIC8vIENyZWF0ZSBhbiBhY3RpdmUgZ3JvdXAgdG8gYW4gdW53cml0YWJsZSBsb2NhdGlvbiAoZGV2aWNlIHJvb3QgZGlyKQorICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnNldEFjdGl2ZUdyb3VwKDMsICIvIik7CisgIEFTU0VSVF9ORShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIFJlc2V0IGFjdGl2ZSBncm91cAorICByZXMgPSBtU2VydmljZS0+c2V0QWN0aXZlR3JvdXAoa0dyb3VwSWQsIGtUbXBEaXIpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKK30KKworLy8gQWN0aXZlIGdyb3VwIHNob3VsZCBmYWlsIHRvIHNldCB0byBhIG51bGwgbG9jYXRpb24uCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgU2V0QWN0aXZlR3JvdXBOdWxsVGVzdCkgeworICAvLyBDcmVhdGUgYW4gYWN0aXZlIGdyb3VwIHRvIGEgbnVsbCBsb2NhdGlvbi4KKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5zZXRBY3RpdmVHcm91cCg0LCBudWxscHRyKTsKKyAgQVNTRVJUX05FKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gUmVzZXQgYWN0aXZlIGdyb3VwCisgIHJlcyA9IG1TZXJ2aWNlLT5zZXRBY3RpdmVHcm91cChrR3JvdXBJZCwga1RtcERpcik7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworfQorCisvLyBDYW5jZWwgc2hvdWxkIGFsd2F5cyByZXR1cm4gRVJST1JfQ0FOQ0VMRUQgZnJvbSBhbnkgc3RhcnRpbmcgc3RhdGUgaW5jbHVkaW5nCisvLyB0aGUgSURMRSBzdGF0ZS4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBDYW5jZWxUZXN0KSB7CisgIHNwPEVycm9yQ2FsbGJhY2s+IGNiID0gbmV3IEVycm9yQ2FsbGJhY2sodHJ1ZSwgRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVUwsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+Y2FuY2VsKCk7CisgIC8vIGNoZWNrIHRoYXQgd2Ugd2VyZSBhYmxlIHRvIG1ha2UgYW4gSVBDIHJlcXVlc3Qgc3VjY2Vzc2Z1bGx5CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIG1ha2Ugc3VyZSBjYWxsYmFjayB3YXMgaW52b2tlZCB3aXRoaW4ga1RpbWVvdXRJblNlY29uZHMKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworICAvLyBjaGVjayBlcnJvciBzaG91bGQgYmUgRVJST1JfQ0FOQ0VMRUQKKyAgQVNTRVJUX0VRKEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVELCBjYi0+ZXJyb3IpOworfQorCisvLyBBIGNhbGwgdG8gY2FuY2VsIHNob3VsZCBzdWNjZWVkIGR1cmluZyBlbnJvbGwuCitURVNUX0YoRmluZ2VycHJpbnRIaWRsVGVzdCwgQ2FuY2VsRW5yb2xsVGVzdCkgeworICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnNldEFjdGl2ZUdyb3VwKGtHcm91cElkLCBrVG1wRGlyKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgc3A8RXJyb3JDYWxsYmFjaz4gY2IgPSBuZXcgRXJyb3JDYWxsYmFjayh0cnVlLCBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKKworICB1aW50OF90IHRva2VuWzY5XTsKKyAgcmVzID0gbVNlcnZpY2UtPmVucm9sbCh0b2tlbiwga0dyb3VwSWQsIGtUaW1lb3V0KTsKKyAgLy8gY2hlY2sgdGhhdCB3ZSB3ZXJlIGFibGUgdG8gbWFrZSBhbiBJUEMgcmVxdWVzdCBzdWNjZXNzZnVsbHkKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgcmVzID0gbVNlcnZpY2UtPmNhbmNlbCgpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBtYWtlIHN1cmUgY2FsbGJhY2sgd2FzIGludm9rZWQgd2l0aGluIGtUaW1lb3V0SW5TZWNvbmRzCisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKKworICAvLyBjaGVjayBlcnJvciBzaG91bGQgYmUgRVJST1JfQ0FOQ0VMRUQKKyAgQVNTRVJUX0VRKEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVELCBjYi0+ZXJyb3IpOworfQorCisvLyBBIGNhbGwgdG8gY2FuY2VsIHNob3VsZCBzdWNjZWVkIGR1cmluZyBhdXRoZW50aWNhdGlvbi4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBDYW5jZWxBdXRoVGVzdCkgeworICBzcDxFcnJvckNhbGxiYWNrPiBjYiA9IG5ldyBFcnJvckNhbGxiYWNrKHRydWUsIEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVEKTsKKyAgUmV0dXJuPHVpbnQ2NF90PiByYyA9IG1TZXJ2aWNlLT5zZXROb3RpZnkoY2IpOworICBBU1NFUlRfTkUoMFUsIHN0YXRpY19jYXN0PHVpbnQ2NF90PihyYykpOworCisgIFJldHVybjxSZXF1ZXN0U3RhdHVzPiByZXMgPSBtU2VydmljZS0+YXV0aGVudGljYXRlKDAsIGtHcm91cElkKTsKKyAgLy8gY2hlY2sgdGhhdCB3ZSB3ZXJlIGFibGUgdG8gbWFrZSBhbiBJUEMgcmVxdWVzdCBzdWNjZXNzZnVsbHkKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgcmVzID0gbVNlcnZpY2UtPmNhbmNlbCgpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICAvLyBtYWtlIHN1cmUgY2FsbGJhY2sgd2FzIGludm9rZWQgd2l0aGluIGtUaW1lb3V0SW5TZWNvbmRzCisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCkpKTsKKworICAvLyBjaGVjayBlcnJvciBzaG91bGQgYmUgRVJST1JfQ0FOQ0VMRUQKKyAgQVNTRVJUX0VRKEZpbmdlcnByaW50RXJyb3I6OkVSUk9SX0NBTkNFTEVELCBjYi0+ZXJyb3IpOworfQorCisvLyBBIGNhbGwgdG8gY2FuY2VsIHNob3VsZCBzdWNjZWVkIGR1cmluZyBhdXRoZW50aWNhdGlvbi4KK1RFU1RfRihGaW5nZXJwcmludEhpZGxUZXN0LCBDYW5jZWxSZW1vdmVUZXN0KSB7CisgIHNwPEVycm9yQ2FsbGJhY2s+IGNiID0gbmV3IEVycm9yQ2FsbGJhY2sodHJ1ZSwgRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQpOworICBSZXR1cm48dWludDY0X3Q+IHJjID0gbVNlcnZpY2UtPnNldE5vdGlmeShjYik7CisgIEFTU0VSVF9ORSgwVSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KHJjKSk7CisKKyAgLy8gUmVtb3ZlIGEgZmluZ2VycHJpbnQKKyAgUmV0dXJuPFJlcXVlc3RTdGF0dXM+IHJlcyA9IG1TZXJ2aWNlLT5yZW1vdmUoa0dyb3VwSWQsIDEpOworICBBU1NFUlRfRVEoUmVxdWVzdFN0YXR1czo6U1lTX09LLCBzdGF0aWNfY2FzdDxSZXF1ZXN0U3RhdHVzPihyZXMpKTsKKworICByZXMgPSBtU2VydmljZS0+Y2FuY2VsKCk7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIC8vIG1ha2Ugc3VyZSBjYWxsYmFjayB3YXMgaW52b2tlZCB3aXRoaW4ga1RpbWVvdXRJblNlY29uZHMKKyAgQVNTRVJUX1RSVUUod2FpdEZvckNhbGxiYWNrKGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworCisgIC8vIGNoZWNrIGVycm9yIHNob3VsZCBiZSBFUlJPUl9DQU5DRUxFRAorICBBU1NFUlRfRVEoRmluZ2VycHJpbnRFcnJvcjo6RVJST1JfQ0FOQ0VMRUQsIGNiLT5lcnJvcik7Cit9CisKKy8vIEEgY2FsbCB0byBjYW5jZWwgc2hvdWxkIHN1Y2NlZWQgZHVyaW5nIGF1dGhlbnRpY2F0aW9uLgorVEVTVF9GKEZpbmdlcnByaW50SGlkbFRlc3QsIENhbmNlbFJlbW92ZUFsbFRlc3QpIHsKKyAgc3A8RXJyb3JDYWxsYmFjaz4gY2IgPSBuZXcgRXJyb3JDYWxsYmFjayh0cnVlLCBGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCk7CisgIFJldHVybjx1aW50NjRfdD4gcmMgPSBtU2VydmljZS0+c2V0Tm90aWZ5KGNiKTsKKyAgQVNTRVJUX05FKDBVLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4ocmMpKTsKKworICAvLyBSZW1vdmUgYSBmaW5nZXJwcmludAorICBSZXR1cm48UmVxdWVzdFN0YXR1cz4gcmVzID0gbVNlcnZpY2UtPnJlbW92ZShrR3JvdXBJZCwgMCk7CisgIEFTU0VSVF9FUShSZXF1ZXN0U3RhdHVzOjpTWVNfT0ssIHN0YXRpY19jYXN0PFJlcXVlc3RTdGF0dXM+KHJlcykpOworCisgIHJlcyA9IG1TZXJ2aWNlLT5jYW5jZWwoKTsKKyAgQVNTRVJUX0VRKFJlcXVlc3RTdGF0dXM6OlNZU19PSywgc3RhdGljX2Nhc3Q8UmVxdWVzdFN0YXR1cz4ocmVzKSk7CisKKyAgLy8gbWFrZSBzdXJlIGNhbGxiYWNrIHdhcyBpbnZva2VkIHdpdGhpbiBrVGltZW91dEluU2Vjb25kcworICBBU1NFUlRfVFJVRSh3YWl0Rm9yQ2FsbGJhY2soY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7CisKKyAgLy8gY2hlY2sgZXJyb3Igc2hvdWxkIGJlIEVSUk9SX0NBTkNFTEVECisgIEFTU0VSVF9FUShGaW5nZXJwcmludEVycm9yOjpFUlJPUl9DQU5DRUxFRCwgY2ItPmVycm9yKTsKK30KK30gIC8vIGFub255bW91cyBuYW1lc3BhY2UKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgIHJldHVybiBzdGF0dXM7Cit9CisKZGlmZiAtLWdpdCBhL2JsdWV0b290aC8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKaW5kZXggZmVjMjI2NC4uNDZhNDk4NyAxMDA2NDQKLS0tIGEvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKKysrIGIvYmx1ZXRvb3RoLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTI0LDYgKzI0LDcgQEAKICAgICAgICAgInZlbmRvcl9pbnRlcmZhY2UuY2MiLAogICAgIF0sCiAgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuZnJhbWV3b3Jrcy5zY2hlZHVsZXJzZXJ2aWNlQDEuMCIsCiAgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aEAxLjAiLAogICAgICAgICAibGliYmFzZSIsCiAgICAgICAgICJsaWJjdXRpbHMiLApAQCAtNDgsNiArNDksNyBAQAogICAgIF0sCiAgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyIuIl0sCiAgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuZnJhbWV3b3Jrcy5zY2hlZHVsZXJzZXJ2aWNlQDEuMCIsCiAgICAgICAgICJsaWJsb2ciLAogICAgIF0sCiB9CkBAIC04NCw5ICs4NiwxMSBAQAogICAgICAgICAidGVzdCIsCiAgICAgXSwKICAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5mcmFtZXdvcmtzLnNjaGVkdWxlcnNlcnZpY2VAMS4wIiwKICAgICAgICAgImxpYmJhc2UiLAogICAgICAgICAibGliaGlkbGJhc2UiLAogICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKICAgICBdLAogICAgIHN0YXRpY19saWJzOiBbCiAgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aC1hc3luYyIsCmRpZmYgLS1naXQgYS9ibHVldG9vdGgvMS4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2JsdWV0b290aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCmluZGV4IDM4Mjk0YzcuLjJkY2IwNjcgMTAwNjQ0Ci0tLSBhL2JsdWV0b290aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCisrKyBiL2JsdWV0b290aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0zNSw1ICszNSw2IEBACiAgIGxpYmhpZGxiYXNlIFwKICAgbGliaGlkbHRyYW5zcG9ydCBcCiAgIGFuZHJvaWQuaGFyZHdhcmUuYmx1ZXRvb3RoQDEuMCBcCisgIGFuZHJvaWQuZnJhbWV3b3Jrcy5zY2hlZHVsZXJzZXJ2aWNlQDEuMFwKIAogaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9ibHVldG9vdGgvMS4wL2RlZmF1bHQvYXN5bmNfZmRfd2F0Y2hlci5jYyBiL2JsdWV0b290aC8xLjAvZGVmYXVsdC9hc3luY19mZF93YXRjaGVyLmNjCmluZGV4IDA1YWM1MzcuLmFiOGQ1NTUgMTAwNjQ0Ci0tLSBhL2JsdWV0b290aC8xLjAvZGVmYXVsdC9hc3luY19mZF93YXRjaGVyLmNjCisrKyBiL2JsdWV0b290aC8xLjAvZGVmYXVsdC9hc3luY19mZF93YXRjaGVyLmNjCkBAIC0xNCw2ICsxNCw4IEBACiAvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KIC8vCiAKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5ibHVldG9vdGhAMS4wLWltcGwiCisKICNpbmNsdWRlICJhc3luY19mZF93YXRjaGVyLmgiCiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CkBAIC0yMiwxMyArMjQsMTggQEAKICNpbmNsdWRlIDxtYXA+CiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dGhyZWFkPgorI2luY2x1ZGUgPHV0aWxzL0xvZy5oPgogI2luY2x1ZGUgPHZlY3Rvcj4KICNpbmNsdWRlICJmY250bC5oIgogI2luY2x1ZGUgInN5cy9zZWxlY3QuaCIKICNpbmNsdWRlICJ1bmlzdGQuaCIKIAorI2luY2x1ZGUgPGFuZHJvaWQvZnJhbWV3b3Jrcy9zY2hlZHVsZXJzZXJ2aWNlLzEuMC9JU2NoZWR1bGluZ1BvbGljeVNlcnZpY2UuaD4KKwogc3RhdGljIGNvbnN0IGludCBJTlZBTElEX0ZEID0gLTE7CiAKK3N0YXRpYyBjb25zdCBpbnQgQlRfUlRfUFJJT1JJVFkgPSAxOworCiBuYW1lc3BhY2UgYW5kcm9pZCB7CiBuYW1lc3BhY2UgaGFyZHdhcmUgewogbmFtZXNwYWNlIGJsdWV0b290aCB7CkBAIC0xMTIsNiArMTE5LDIxIEBACiB9CiAKIHZvaWQgQXN5bmNGZFdhdGNoZXI6OlRocmVhZFJvdXRpbmUoKSB7CisgIHVzaW5nIDo6YW5kcm9pZDo6ZnJhbWV3b3Jrczo6c2NoZWR1bGVyc2VydmljZTo6VjFfMDo6SVNjaGVkdWxpbmdQb2xpY3lTZXJ2aWNlOworICB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47CisgIHNwPElTY2hlZHVsaW5nUG9saWN5U2VydmljZT4gbWFuYWdlciA9IElTY2hlZHVsaW5nUG9saWN5U2VydmljZTo6Z2V0U2VydmljZSgpOworICBpZiAobWFuYWdlciA9PSBudWxscHRyKSB7CisgICAgQUxPR0UoIiVzOiBDb3VsZG4ndCBnZXQgc2NoZWR1bGVyIG1hbmFnZXIgdG8gc2V0IFNDSEVEX0ZJRk8uIiwgX19mdW5jX18pOworICB9IGVsc2UgeworICAgIFJldHVybjxib29sPiByZXQgPSBtYW5hZ2VyLT5yZXF1ZXN0UHJpb3JpdHkoZ2V0cGlkKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXR0aWQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJUX1JUX1BSSU9SSVRZKTsKKyAgICBpZiAoIXJldC5pc09rKCkgfHwgIXJldCkgeworICAgICAgQUxPR0UoIiVzIHVuYWJsZSB0byBzZXQgU0NIRURfRklGTyBmb3IgcGlkICVkLCB0aWQgJWQiLCBfX2Z1bmNfXywKKyAgICAgICAgICAgIGdldHBpZCgpLCBnZXR0aWQoKSk7CisgICAgfQorICB9CisKICAgd2hpbGUgKHJ1bm5pbmdfKSB7CiAgICAgZmRfc2V0IHJlYWRfZmRzOwogICAgIEZEX1pFUk8oJnJlYWRfZmRzKTsKZGlmZiAtLWdpdCBhL2Jvb3QvMS4wL2RlZmF1bHQvQm9vdENvbnRyb2wuY3BwIGIvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5jcHAKaW5kZXggODNlZTFkMi4uOWE5MDA3NiAxMDA2NDQKLS0tIGEvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5jcHAKKysrIGIvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5jcHAKQEAgLTEsMyArMSwxOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCiAjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuYm9vdEAxLjAtaW1wbCIKIAogI2luY2x1ZGUgPGxvZy9sb2cuaD4KZGlmZiAtLWdpdCBhL2Jvb3QvMS4wL2RlZmF1bHQvQm9vdENvbnRyb2wuaCBiL2Jvb3QvMS4wL2RlZmF1bHQvQm9vdENvbnRyb2wuaAppbmRleCBiZThhODE0Li4zZDY2OGRjIDEwMDY0NAotLS0gYS9ib290LzEuMC9kZWZhdWx0L0Jvb3RDb250cm9sLmgKKysrIGIvYm9vdC8xLjAvZGVmYXVsdC9Cb290Q29udHJvbC5oCkBAIC0xLDMgKzEsMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLwogI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0JPT1RfVjFfMF9CT09UQ09OVFJPTF9ICiAjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQk9PVF9WMV8wX0JPT1RDT05UUk9MX0gKIApkaWZmIC0tZ2l0IGEvYm9vdC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2Jvb3QvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKaW5kZXggMjQ3ZTQwZS4uZjM5OTZlZiAxMDA2NDQKLS0tIGEvYm9vdC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcAorKysgYi9ib290LzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0xLDMgKzEsMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLwogI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmJvb3RAMS4wLXNlcnZpY2UiCiAKICNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2Jvb3QvMS4wL0lCb290Q29udHJvbC5oPgpkaWZmIC0tZ2l0IGEvYm9vdC8xLjAvdnRzL0FuZHJvaWQuYnAgYi9ib290LzEuMC92dHMvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YWVmNDZiCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC8xLjAvdnRzL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzIEBACitzdWJkaXJzID0gWworICAgICIqIgorXQpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rIGIvYm9vdC8xLjAvdnRzL0FuZHJvaWQubWsKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIHJhZGlvLzEuMC92dHMvQW5kcm9pZC5tawpyZW5hbWUgdG8gYm9vdC8xLjAvdnRzL0FuZHJvaWQubWsKZGlmZiAtLWdpdCBhL2Jvb3QvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9ib290LzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjViMTRmNTQKLS0tIC9kZXYvbnVsbAorKysgYi9ib290LzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzUgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxCb290VjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEJvb3RWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmJvb3RAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CmRpZmYgLS1naXQgYS9ib290LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxCb290VjFfMFRhcmdldFRlc3QuY3BwIGIvYm9vdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQm9vdFYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDhhOTVkCi0tLSAvZGV2L251bGwKKysrIGIvYm9vdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQm9vdFYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYm9vdF9oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+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+IGJhdGNoKTsKKworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaGFsIGIvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQyMTk4MQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMS4wL0lDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXM7CitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlczsKKworLyoqCisgKiBDYW1lcmEgZGV2aWNlIEhBTEAxLjAgcHJldmlldyBzdHJlYW0gb3BlcmF0aW9uIGludGVyZmFjZS4KKyAqLworaW50ZXJmYWNlIElDYW1lcmFEZXZpY2VQcmV2aWV3Q2FsbGJhY2sgeworCisgICAgLyoqCisgICAgICogQWNxdWlyZSBhIGJ1ZmZlciB0byB3cml0ZSBhIHByZXZpZXcgYnVmZmVyIGludG8uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLiBJZiBub3QgT0ssIHRoZW4KKyAgICAgKiAgICAgYnVmZmVyIGFuZCBzdHJpZGUgbXVzdCBub3QgYmUgdXNlZC4KKyAgICAgKiBAcmV0dXJuIGJ1ZmZlcklkIEEgdW5pcXVlIElEIGZvciB0aGUgcmV0dXJuZWQgYnVmZmVyLgorICAgICAqIEByZXR1cm4gYnVmZmVyIEEgaGFuZGxlIHRvIHRoZSBidWZmZXIgdG8gd3JpdGUgaW50by4gTXVzdCBiZSBub24tbnVsbCBpZiB0aGUgYnVmZmVySWQgaGFzIG5vdAorICAgICAqICAgICBiZWVuIHNlZW4gYnkgSEFMIGJlZm9yZS4gTXVzdCBiZSBudWxsIGlmIHRoZSBidWZmZXJJZCBpcyBzZWVuIGJlZm9yZS4gSEFMIG11c3Qga2VlcCB0cmFjaworICAgICAqICAgICBvZiB0aGUgYnVmZmVySWQgdG8gYWN0dWFsIGJ1ZmZlciBoYW5kbGUgbWFwcGluZy4KKyAgICAgKiBAcmV0dXJuIHN0cmlkZSBUaGUgc3RyaWRlIGJldHdlZW4gdHdvIHJvd3Mgb2YgcGl4ZWxzIGluIHRoaXMgYnVmZmVyLgorICAgICAqLworICAgIGRlcXVldWVCdWZmZXIoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHVpbnQ2NF90IGJ1ZmZlcklkLCBoYW5kbGUgYnVmZmVyLCB1aW50MzJfdCBzdHJpZGUpOworCisgICAgLyoqCisgICAgICogU2VuZCBhIGZpbGxlZCBwcmV2aWV3IGJ1ZmZlciB0byBpdHMgY29uc3VtZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmZmVySWQgVGhlIGJ1ZmZlcklkIG9mIHRoZSBwcmV2aWV3IGJ1ZmZlcgorICAgICAqIEByZXR1cm4gc3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgZW5xdWV1ZUJ1ZmZlcih1aW50NjRfdCBidWZmZXJJZCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiBhIHByZXZpZXcgYnVmZmVyIHVuZmlsbGVkLiBUaGlzIGJ1ZmZlciBtdXN0IG5vdCBiZSBzZW50IG9uIHRvIHRoZQorICAgICAqIHByZXZpZXcgY29uc3VtZXIgYXMgYSB2YWxpZCBidWZmZXIsIGJ1dCBtYXkgYmUgcmV1c2VkIGFzIGlmIGl0IHdlcmUKKyAgICAgKiBlbXB0eS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXJJZCBUaGUgYnVmZmVySWQgb2YgdGhlIHByZXZpZXcgYnVmZmVyCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBjYW5jZWxCdWZmZXIodWludDY0X3QgYnVmZmVySWQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBwcmV2aWV3IGJ1ZmZlcnMgbmVlZGVkIGJ5IHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY291bnQgVGhlIG1heGltdW0gbnVtYmVyIG9mIHByZXZpZXcgYnVmZmVycyB0byBhbGxvY2F0ZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIHNldEJ1ZmZlckNvdW50KHVpbnQzMl90IGNvdW50KSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBkaW1lbnNpb25zIGFuZCBmb3JtYXQgb2YgZnV0dXJlIHByZXZpZXcgYnVmZmVycy4KKyAgICAgKgorICAgICAqIFRoZSBuZXh0IGJ1ZmZlciB0aGF0IGlzIGRlcXVldWVkIG11c3QgbWF0Y2ggdGhlIHJlcXVlc3RlZCBzaXplIGFuZAorICAgICAqIGZvcm1hdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gU3RhdHVzIFRoZSBzdGF0dXMgY29kZSBmb3IgdGhpcyBvcGVyYXRpb24uCisgICAgICovCisgICAgc2V0QnVmZmVyc0dlb21ldHJ5KHVpbnQzMl90IHcsIHVpbnQzMl90IGgsCisgICAgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OlBpeGVsRm9ybWF0IGZvcm1hdCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIHZhbGlkIHJlZ2lvbiBvZiBpbWFnZSBkYXRhIGZvciB0aGUgbmV4dCBidWZmZXIocykgdG8gYmUgZW5xdWV1ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIHNldENyb3AoaW50MzJfdCBsZWZ0LCBpbnQzMl90IHRvcCwgaW50MzJfdCByaWdodCwgaW50MzJfdCBib3R0b20pCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwcm9kdWNlciB1c2FnZSBmbGFncyBmb3IgdGhlIG5leHQgYnVmZmVyKHMpIHRvIGJlIGVucXVldWVkLgorICAgICAqCisgICAgICogQHJldHVybiBTdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKi8KKyAgICBzZXRVc2FnZShCdWZmZXJVc2FnZSB1c2FnZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgZXhwZWN0ZWQgYnVmZmVyaW5nIG1vZGUgZm9yIHRoZSBwcmV2aWV3IG91dHB1dC4KKyAgICAgKi8KKyAgICBzZXRTd2FwSW50ZXJ2YWwoaW50MzJfdCBpbnRlcnZhbCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIEdldCB0aGUgbWluaW11bSBudW1iZXIgb2YgYnVmZmVycyB0aGUgcHJldmlldyBjb25zdW1lciBlbmRwb2ludCBuZWVkcworICAgICAqIHRvIGhvbGQgZm9yIGNvcnJlY3Qgb3BlcmF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBTdGF0dXMgVGhlIHN0YXR1cyBjb2RlIGZvciB0aGlzIG9wZXJhdGlvbi4KKyAgICAgKiBAcmV0dXJuIGNvdW50IFRoZSBudW1iZXIgb2YgYnVmZmVycyB0aGUgY29uc3VtZXIgaGFzIHJlcXVlc3RlZC4KKyAgICAgKi8KKyAgICBnZXRNaW5VbmRlcXVldWVkQnVmZmVyQ291bnQoKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHVpbnQzMl90IGNvdW50KTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgdGltZXN0YW1wIGZvciB0aGUgbmV4dCBidWZmZXIgdG8gZW5xdWV1ZQorICAgICAqCisgICAgICogVGltZXN0YW1wcyBhcmUgbWVhc3VyZWQgaW4gbmFub3NlY29uZHMsIGFuZCBtdXN0IGJlIGNvbXBhcmFibGUKKyAgICAgKiBhbmQgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGJldHdlZW4gdHdvIGZyYW1lcyBpbiB0aGUgc2FtZQorICAgICAqIHByZXZpZXcgc3RyZWFtLiBUaGV5IGRvIG5vdCBuZWVkIHRvIGJlIGNvbXBhcmFibGUgYmV0d2VlbgorICAgICAqIGNvbnNlY3V0aXZlIG9yIHBhcmFsbGVsIHByZXZpZXcgc3RyZWFtcywgY2FtZXJhcywgb3IgYXBwIHJ1bnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIFRoZSB0aW1lc3RhbXAgdG8gc2V0IGZvciBmdXR1cmUgYnVmZmVycy4KKyAgICAgKiBAcmV0dXJuIFN0YXR1cyBUaGUgc3RhdHVzIGNvZGUgZm9yIHRoaXMgb3BlcmF0aW9uLgorICAgICAqLworICAgIHNldFRpbWVzdGFtcChpbnQ2NF90IHRpbWVzdGFtcCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTM0OWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiY2FtZXJhLmRldmljZUAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHNyY3M6IFsKKyAgICAgICAgIkNhbWVyYURldmljZS5jcHAiLAorICAgIF0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGxtZW1vcnkiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJjYW1lcmFfbWV0YWRhdGEiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAtaGVscGVyIgorICAgIF0sCisgICAgaW5jbHVkZV9kaXJzOiBbCisgICAgICAgICJmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL29wZW5tYXgiCisgICAgXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXQorfQorCmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzEuMC9kZWZhdWx0L0NhbWVyYURldmljZS5jcHAgYi9jYW1lcmEvZGV2aWNlLzEuMC9kZWZhdWx0L0NhbWVyYURldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY0ZTcwZgotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMS4wL2RlZmF1bHQvQ2FtZXJhRGV2aWNlLmNwcApAQCAtMCwwICsxLDEwMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNhbURldkAxLjAtaW1wbCIKKyNpbmNsdWRlIDxoYXJkd2FyZS9jYW1lcmEuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jMS5oPgorI2luY2x1ZGUgPGhpZGxtZW1vcnkvbWFwcGluZy5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorCisjaW5jbHVkZSA8bWVkaWEvaGFyZHdhcmUvSGFyZHdhcmVBUEkuaD4gLy8gRm9yIFZpZGVvTmF0aXZlSGFuZGxlTWV0YWRhdGEKKyNpbmNsdWRlICJDYW1lcmFEZXZpY2VfMV8wLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBkZXZpY2UgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6QnVmZmVyVXNhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKKworSGFuZGxlSW1wb3J0ZXIgQ2FtZXJhRGV2aWNlOjpzSGFuZGxlSW1wb3J0ZXI7CisKK1N0YXR1cyBDYW1lcmFEZXZpY2U6OmdldEhpZGxTdGF0dXMoY29uc3QgaW50JiBzdGF0dXMpIHsKKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIDA6IHJldHVybiBTdGF0dXM6Ok9LOworICAgICAgICBjYXNlIC1FTk9TWVM6IHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIC1FQlVTWSA6IHJldHVybiBTdGF0dXM6OkNBTUVSQV9JTl9VU0U7CisgICAgICAgIGNhc2UgLUVVU0VSUzogcmV0dXJuIFN0YXR1czo6TUFYX0NBTUVSQVNfSU5fVVNFOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiJXM6IHVua25vd24gSEFMIHN0YXR1cyBjb2RlICVkIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgfQorfQorCitzdGF0dXNfdCBDYW1lcmFEZXZpY2U6OmdldFN0YXR1c1QoY29uc3QgU3RhdHVzJiBzKSAgeworICAgIHN3aXRjaChzKSB7CisgICAgICAgIGNhc2UgU3RhdHVzOjpPSzoKKyAgICAgICAgICAgIHJldHVybiBPSzsKKyAgICAgICAgY2FzZSBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ6CisgICAgICAgICAgICByZXR1cm4gQkFEX1ZBTFVFOworICAgICAgICBjYXNlIFN0YXR1czo6Q0FNRVJBX0lOX1VTRToKKyAgICAgICAgICAgIHJldHVybiAtRUJVU1k7CisgICAgICAgIGNhc2UgU3RhdHVzOjpNQVhfQ0FNRVJBU19JTl9VU0U6CisgICAgICAgICAgICByZXR1cm4gLUVVU0VSUzsKKyAgICAgICAgY2FzZSBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOgorICAgICAgICAgICAgcmV0dXJuIFVOS05PV05fVFJBTlNBQ1RJT047CisgICAgICAgIGNhc2UgU3RhdHVzOjpPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDoKKyAgICAgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICAgICAgY2FzZSBTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICAgICAgICByZXR1cm4gREVBRF9PQkpFQ1Q7CisgICAgICAgIGNhc2UgU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjoKKyAgICAgICAgICAgIHJldHVybiBJTlZBTElEX09QRVJBVElPTjsKKyAgICB9CisgICAgQUxPR1coIlVuZXhwZWN0ZWQgSEFMIHN0YXR1cyBjb2RlICVkIiwgcyk7CisgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUSU9OOworfQorCitTdGF0dXMgQ2FtZXJhRGV2aWNlOjppbml0U3RhdHVzKCkgY29uc3QgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgaWYgKG1Jbml0RmFpbCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0gZWxzZSBpZiAobURpc2Nvbm5lY3RlZCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQ7CisgICAgfQorICAgIHJldHVybiBzdGF0dXM7Cit9CisKK0NhbWVyYURldmljZTo6Q2FtZXJhRGV2aWNlKAorICAgIHNwPENhbWVyYU1vZHVsZT4gbW9kdWxlLCBjb25zdCBzdGQ6OnN0cmluZyYgY2FtZXJhSWQsCisgICAgY29uc3QgU29ydGVkVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiYgY2FtZXJhRGV2aWNlTmFtZXMpIDoKKyAgICAgICAgbU1vZHVsZShtb2R1bGUpLAorICAgICAgICBtQ2FtZXJhSWQoY2FtZXJhSWQpLAorICAgICAgICBtRGlzY29ubmVjdGVkKGZhbHNlKSwKKyAgICAgICAgbUNhbWVyYURldmljZU5hbWVzKGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgbUNhbWVyYUlkSW50ID0gYXRvaShtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgLy8gU2hvdWxkIG5vdCByZWFjaCBoZXJlIGFzIHByb3ZpZGVyIGFsc28gdmFsaWRhdGUgSUQKKyAgICBpZiAobUNhbWVyYUlkSW50IDwgMCB8fCBtQ2FtZXJhSWRJbnQgPj0gbW9kdWxlLT5nZXROdW1iZXJPZkNhbWVyYXMoKSkgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgY2FtZXJhIGlkOiAlcyIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBtSW5pdEZhaWwgPSB0cnVlOworICAgIH0KKworICAgIG1EZXZpY2VWZXJzaW9uID0gbU1vZHVsZS0+Z2V0RGV2aWNlVmVyc2lvbihtQ2FtZXJhSWRJbnQpOworICAgIGlmIChtRGV2aWNlVmVyc2lvbiAhPSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzFfMCAmJiAhbU1vZHVsZS0+aXNPcGVuTGVnYWN5RGVmaW5lZCgpKSB7CisgICAgICAgIEFMT0dJKCIlczogQ2FtZXJhIGlkICVzIGRvZXMgbm90IHN1cHBvcnQgSEFMMS4wIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgbUluaXRGYWlsID0gdHJ1ZTsKKyAgICB9CisKKyAgICBtQXNobWVtQWxsb2NhdG9yID0gSUFsbG9jYXRvcjo6Z2V0U2VydmljZSgiYXNobWVtIik7CisgICAgaWYgKG1Bc2htZW1BbGxvY2F0b3IgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HSSgiJXM6IGNhbm5vdCBnZXQgYXNobWVtQWxsb2NhdG9yIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgbUluaXRGYWlsID0gdHJ1ZTsKKyAgICB9Cit9CisKK0NhbWVyYURldmljZTo6fkNhbWVyYURldmljZSgpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGlmIChtRGV2aWNlICE9IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR1coIiVzOiBjYW1lcmEgJXMgaXMgZGVsZXRlZCB3aGlsZSBvcGVuIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIGNsb3NlKCk7CisgICAgfQorICAgIG1IYWxQcmV2aWV3V2luZG93LmNsZWFuVXBDaXJjdWxhdGluZ0J1ZmZlcnMoKTsKK30KKworCit2b2lkIENhbWVyYURldmljZTo6c2V0Q29ubmVjdGlvblN0YXR1cyhib29sIGNvbm5lY3RlZCkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbURpc2Nvbm5lY3RlZCA9ICFjb25uZWN0ZWQ7CisgICAgaWYgKG1EZXZpY2UgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghY29ubmVjdGVkKSB7CisgICAgICAgIEFMT0dXKCIlczogY2FtZXJhICVzIGlzIGRpc2Nvbm5ldGVkLiBDbG9zaW5nIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgIGNsb3NlKCk7CisgICAgfQorICAgIHJldHVybjsKK30KKwordm9pZCBDYW1lcmFEZXZpY2U6OkNhbWVyYVByZXZpZXdXaW5kb3c6OmNsZWFuVXBDaXJjdWxhdGluZ0J1ZmZlcnMoKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBmb3IgKGF1dG8gcGFpciA6IG1DaXJjdWxhdGluZ0J1ZmZlcnMpIHsKKyAgICAgICAgc0hhbmRsZUltcG9ydGVyLmZyZWVCdWZmZXIocGFpci5zZWNvbmQpOworICAgIH0KKyAgICBtQ2lyY3VsYXRpbmdCdWZmZXJzLmNsZWFyKCk7CisgICAgbUJ1ZmZlcklkTWFwLmNsZWFyKCk7Cit9CisKK2ludCBDYW1lcmFEZXZpY2U6OnNEZXF1ZXVlQnVmZmVyKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCoqIGJ1ZmZlciwgaW50ICpzdHJpZGUpIHsKKyAgICBDYW1lcmFQcmV2aWV3V2luZG93KiBvYmplY3QgPSBzdGF0aWNfY2FzdDxDYW1lcmFQcmV2aWV3V2luZG93Kj4odyk7CisgICAgaWYgKG9iamVjdC0+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+IENhbWVyYURldmljZTo6Y2xvc2UoKSB7CisgICAgQUxPR0koIkNsb3NpbmcgY2FtZXJhICVzIiwgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYobURldmljZSkgeworICAgICAgICBpbnQgcmMgPSBtRGV2aWNlLT5jb21tb24uY2xvc2UoJm1EZXZpY2UtPmNvbW1vbik7CisgICAgICAgIGlmIChyYyAhPSBPSykgeworICAgICAgICAgICAgQUxPR0UoIkNvdWxkIG5vdCBjbG9zZSBjYW1lcmEgJXM6ICVkIiwgbUNhbWVyYUlkLmNfc3RyKCksIHJjKTsKKyAgICAgICAgfQorICAgICAgICBtRGV2aWNlID0gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRldmljZQorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8xLjAvZGVmYXVsdC9DYW1lcmFEZXZpY2VfMV8wLmggYi9jYW1lcmEvZGV2aWNlLzEuMC9kZWZhdWx0L0NhbWVyYURldmljZV8xXzAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTVhNDliCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvZGVmYXVsdC9DYW1lcmFEZXZpY2VfMV8wLmgKQEAgLTAsMCArMSwyMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WMV8wX0NBTUVSQURFVklDRV9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WMV8wX0NBTUVSQURFVklDRV9ICisKKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgInV0aWxzL011dGV4LmgiCisjaW5jbHVkZSAidXRpbHMvU29ydGVkVmVjdG9yLmgiCisjaW5jbHVkZSAiQ2FtZXJhTW9kdWxlLmgiCisjaW5jbHVkZSAiSGFuZGxlSW1wb3J0ZXIuaCIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9hbGxvY2F0b3IvMS4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNhbWVyYSB7CituYW1lc3BhY2UgZGV2aWNlIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpDYW1lcmFSZXNvdXJjZUNvc3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlRvcmNoTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1vZHVsZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkhhbmRsZUltcG9ydGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OkNhbWVyYUluZm87Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6Q29tbWFuZFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpNZW1vcnlJZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgQ2FtZXJhRGV2aWNlIDogcHVibGljIElDYW1lcmFEZXZpY2UgeworCisgICAgLy8gQ2FsbGVkIGJ5IHByb3ZpZGVyIEhBTC4gUHJvdmlkZXIgSEFMIG11c3QgZW5zdXJlIHRoZSB1bmlxdWVuZXNzIG9mCisgICAgLy8gQ2FtZXJhRGV2aWNlIG9iamVjdCBwZXIgY2FtZXJhSWQsIG9yIHRoZXJlIGNvdWxkIGJlIG11bHRpcGxlIENhbWVyYURldmljZQorICAgIC8vIHRyeWluZyB0byBhY2Nlc3MgdGhlIHNhbWUgcGh5c2ljYWwgY2FtZXJhLgorICAgIC8vIEFsc28sIHByb3ZpZGVyIHdpbGwgaGF2ZSB0byBrZWVwIHRyYWNrIG9mIGFsbCBDYW1lcmFEZXZpY2Ugb2JqZWN0cyBpbgorICAgIC8vIG9yZGVyIHRvIG5vdGlmeSBDYW1lcmFEZXZpY2Ugd2hlbiB0aGUgdW5kZXJseWluZyBjYW1lcmEgaXMgZGV0YWNoZWQKKyAgICBDYW1lcmFEZXZpY2Uoc3A8Q2FtZXJhTW9kdWxlPiBtb2R1bGUsCisgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBjYW1lcmFJZCwKKyAgICAgICAgICAgICAgICAgY29uc3QgU29ydGVkVmVjdG9yPHN0ZDo6cGFpcjxzdGQ6OnN0cmluZywgc3RkOjpzdHJpbmc+PiYgY2FtZXJhRGV2aWNlTmFtZXMpOworICAgIH5DYW1lcmFEZXZpY2UoKTsKKworICAgIC8vIENhbGxlciBtdXN0IHVzZSB0aGlzIG1ldGhvZCB0byBjaGVjayBpZiBDYW1lcmFEZXZpY2UgY3RvciBmYWlsZWQKKyAgICBib29sIGlzSW5pdEZhaWxlZCgpIHsgcmV0dXJuIG1Jbml0RmFpbDsgfQorICAgIC8vIFVzZWQgYnkgcHJvdmlkZXIgSEFMIHRvIHNpZ25hbCBleHRlcm5hbCBjYW1lcmEgZGlzY29ubmVjdGVkCisgICAgdm9pZCBzZXRDb25uZWN0aW9uU3RhdHVzKGJvb2wgY29ubmVjdGVkKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZSBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGdldFJlc291cmNlQ29zdChnZXRSZXNvdXJjZUNvc3RfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDYW1lcmFJbmZvKGdldENhbWVyYUluZm9fY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHNldFRvcmNoTW9kZShUb3JjaE1vZGUgbW9kZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gZHVtcFN0YXRlKGNvbnN0IGhpZGxfaGFuZGxlJiBmZCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gb3Blbihjb25zdCBzcDxJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gc2V0UHJldmlld1dpbmRvdyhjb25zdCBzcDxJQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrPiYgd2luZG93KSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZW5hYmxlTXNnVHlwZSh1aW50MzJfdCBtc2dUeXBlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZGlzYWJsZU1zZ1R5cGUodWludDMyX3QgbXNnVHlwZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IG1zZ1R5cGVFbmFibGVkKHVpbnQzMl90IG1zZ1R5cGUpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHN0YXJ0UHJldmlldygpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzdG9wUHJldmlldygpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBwcmV2aWV3RW5hYmxlZCgpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHN0b3JlTWV0YURhdGFJbkJ1ZmZlcnMoYm9vbCBlbmFibGUpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHN0YXJ0UmVjb3JkaW5nKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHN0b3BSZWNvcmRpbmcoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gcmVjb3JkaW5nRW5hYmxlZCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiByZWxlYXNlUmVjb3JkaW5nRnJhbWUodWludDMyX3QgbWVtSWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4KSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcmVsZWFzZVJlY29yZGluZ0ZyYW1lSGFuZGxlKAorICAgICAgICAgICAgdWludDMyX3QgbWVtSWQsIHVpbnQzMl90IGJ1ZmZlckluZGV4LCBjb25zdCBoaWRsX2hhbmRsZSYgZnJhbWUpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiByZWxlYXNlUmVjb3JkaW5nRnJhbWVIYW5kbGVCYXRjaCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFZpZGVvRnJhbWVNZXNzYWdlPiYpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IGF1dG9Gb2N1cygpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IGNhbmNlbEF1dG9Gb2N1cygpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHRha2VQaWN0dXJlKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gY2FuY2VsUGljdHVyZSgpIG92ZXJyaWRlOworICAgIFJldHVybjxTdGF0dXM+IHNldFBhcmFtZXRlcnMoY29uc3QgaGlkbF9zdHJpbmcmIHBhcmFtcykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldFBhcmFtZXRlcnMoZ2V0UGFyYW1ldGVyc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gc2VuZENvbW1hbmQoQ29tbWFuZFR5cGUgY21kLCBpbnQzMl90IGFyZzEsIGludDMyX3QgYXJnMikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsb3NlKCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgc3RydWN0IENhbWVyYU1lbW9yeSA6IHB1YmxpYyBjYW1lcmFfbWVtb3J5X3QgeworICAgICAgICBNZW1vcnlJZCBtSWQ7CisgICAgICAgIENhbWVyYURldmljZSogbURldmljZTsKKyAgICB9OworCisgICAgY2xhc3MgQ2FtZXJhSGVhcE1lbW9yeSA6IHB1YmxpYyBSZWZCYXNlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIENhbWVyYUhlYXBNZW1vcnkoaW50IGZkLCBzaXplX3QgYnVmX3NpemUsIHVpbnRfdCBudW1fYnVmZmVycyA9IDEpOworICAgICAgICBleHBsaWNpdCBDYW1lcmFIZWFwTWVtb3J5KAorICAgICAgICAgICAgc3A8SUFsbG9jYXRvcj4gYXNobWVtQWxsb2NhdG9yLCBzaXplX3QgYnVmX3NpemUsIHVpbnRfdCBudW1fYnVmZmVycyA9IDEpOworICAgICAgICB2b2lkIGNvbW1vbkluaXRpYWxpemF0aW9uKCk7CisgICAgICAgIHZpcnR1YWwgfkNhbWVyYUhlYXBNZW1vcnkoKTsKKworICAgICAgICBzaXplX3QgbUJ1ZlNpemU7CisgICAgICAgIHVpbnRfdCBtTnVtQnVmczsKKworICAgICAgICAvLyBTaGFyZWQgbWVtb3J5IHJlbGF0ZWQgbWVtYmVycworICAgICAgICBoaWRsX21lbW9yeSAgICAgIG1IaWRsSGVhcDsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV90KiBtSGlkbEhhbmRsZTsgLy8gY29udGFpbnMgb25lIHNoYXJlZCBtZW1vcnkgRkQKKyAgICAgICAgdm9pZCogICAgICAgICAgICBtSGlkbEhlYXBNZW1EYXRhOworICAgICAgICBzcDxJTWVtb3J5PiAgICAgIG1IaWRsSGVhcE1lbW9yeTsgLy8gbXVubWFwIGhhcHBlbnMgaW4gfklNZW1vcnkoKQorCisgICAgICAgIENhbWVyYU1lbW9yeSBoYW5kbGU7CisgICAgfTsKKyAgICBzcDxJQWxsb2NhdG9yPiBtQXNobWVtQWxsb2NhdG9yOworCisgICAgY29uc3Qgc3A8Q2FtZXJhTW9kdWxlPiBtTW9kdWxlOworICAgIGNvbnN0IHN0ZDo6c3RyaW5nIG1DYW1lcmFJZDsKKyAgICAvLyBjb25zdCBhZnRlciBjdG9yCisgICAgaW50ICAgbUNhbWVyYUlkSW50OworICAgIGludCAgIG1EZXZpY2VWZXJzaW9uOworCisgICAgY2FtZXJhX2RldmljZV90KiBtRGV2aWNlID0gbnVsbHB0cjsKKworICAgIHZvaWQgaW5pdEhhbFByZXZpZXdXaW5kb3coKTsKKyAgICBzdHJ1Y3QgQ2FtZXJhUHJldmlld1dpbmRvdyA6IHB1YmxpYyBwcmV2aWV3X3N0cmVhbV9vcHMgeworICAgICAgICAvLyBDYWxsZWQgd2hlbiB3ZSBleHBlY3QgYnVmZmVyIHdpbGwgYmUgcmUtYWxsb2NhdGVkCisgICAgICAgIHZvaWQgY2xlYW5VcENpcmN1bGF0aW5nQnVmZmVycygpOworCisgICAgICAgIE11dGV4IG1Mb2NrOworICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlUHJldmlld0NhbGxiYWNrPiBtUHJldmlld0NhbGxiYWNrID0gbnVsbHB0cjsKKyAgICAgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQ2NF90LCBidWZmZXJfaGFuZGxlX3Q+IG1DaXJjdWxhdGluZ0J1ZmZlcnM7CisgICAgICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxidWZmZXJfaGFuZGxlX3QqLCB1aW50NjRfdD4gbUJ1ZmZlcklkTWFwOworICAgIH0gbUhhbFByZXZpZXdXaW5kb3c7CisKKyAgICAvLyBnYXRpbmcgYWNjZXNzIHRvIG1EZXZpY2UsIG1Jbml0RmFpbCwgbURpc2Nvbm5lY3RlZAorICAgIG11dGFibGUgTXV0ZXggbUxvY2s7CisKKyAgICBib29sICBtSW5pdEZhaWwgPSBmYWxzZTsKKyAgICAvLyBTZXQgYnkgcHJvdmlkZXIgKHdoZW4gZXh0ZXJuYWwgY2FtZXJhIGlzIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQpCisgICAgYm9vbCAgbURpc2Nvbm5lY3RlZDsKKworICAgIHN0YXRpYyBIYW5kbGVJbXBvcnRlciBzSGFuZGxlSW1wb3J0ZXI7CisKKyAgICBjb25zdCBTb3J0ZWRWZWN0b3I8c3RkOjpwYWlyPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZz4+JiBtQ2FtZXJhRGV2aWNlTmFtZXM7CisKKyAgICBzcDxJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s+IG1EZXZpY2VDYWxsYmFjayA9IG51bGxwdHI7CisKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8TWVtb3J5SWQsIENhbWVyYUhlYXBNZW1vcnkqPiBtTWVtb3J5TWFwOworCisgICAgYm9vbCBtTWV0YWRhdGFNb2RlID0gZmFsc2U7CisKKyAgICBtdXRhYmxlIE11dGV4IG1CYXRjaExvY2s7CisgICAgLy8gU3RhcnQgb2YgcHJvdGVjdGlvbiBzY29wZSBmb3IgbUJhdGNoTG9jaworICAgIHVpbnQzMl90IG1CYXRjaFNpemUgPSAwOyAvLyAwIGZvciBub24tYmF0Y2ggbW9kZSwgc2V0IHRvIG90aGVyIHZhbHVlIHRvIHN0YXJ0IGJhdGNoaW5nCisgICAgaW50MzJfdCBtQmF0Y2hNc2dUeXBlOyAgIC8vIE1heWJlIG9ubHkgYWxsb3cgRGF0YUNhbGxiYWNrTXNnOjpWSURFT19GUkFNRT8KKyAgICBzdGQ6OnZlY3RvcjxIYW5kbGVUaW1lc3RhbXBNZXNzYWdlPiBtSW5mbGlnaHRCYXRjaDsKKyAgICAvLyBFbmQgb2YgcHJvdGVjdGlvbiBzY29wZSBmb3IgbUJhdGNoTG9jaworCisgICAgdm9pZCBoYW5kbGVDYWxsYmFja1RpbWVzdGFtcCgKKyAgICAgICAgICAgIG5zZWNzX3QgdGltZXN0YW1wLCBpbnQzMl90IG1zZ190eXBlLAorICAgICAgICAgICAgTWVtb3J5SWQgbWVtSWQgLCB1bnNpZ25lZCBpbmRleCwgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUpOworICAgIHZvaWQgcmVsZWFzZVJlY29yZGluZ0ZyYW1lTG9ja2VkKHVpbnQzMl90IG1lbUlkLCB1aW50MzJfdCBidWZmZXJJbmRleCwgY29uc3QgbmF0aXZlX2hhbmRsZV90Kik7CisKKyAgICAvLyBzaGFyZWQgbWVtb3J5IG1ldGhvZHMKKyAgICBzdGF0aWMgY2FtZXJhX21lbW9yeV90KiBzR2V0TWVtb3J5KGludCBmZCwgc2l6ZV90IGJ1Zl9zaXplLCB1aW50X3QgbnVtX2J1ZnMsIHZvaWQgKnVzZXIpOworICAgIHN0YXRpYyB2b2lkIHNQdXRNZW1vcnkoY2FtZXJhX21lbW9yeV90ICpkYXRhKTsKKworICAgIC8vIERldmljZSBjYWxsYmFjayBmb3J3YXJkaW5nIG1ldGhvZHMKKyAgICBzdGF0aWMgdm9pZCBzTm90aWZ5Q2IoaW50MzJfdCBtc2dfdHlwZSwgaW50MzJfdCBleHQxLCBpbnQzMl90IGV4dDIsIHZvaWQgKnVzZXIpOworICAgIHN0YXRpYyB2b2lkIHNEYXRhQ2IoaW50MzJfdCBtc2dfdHlwZSwgY29uc3QgY2FtZXJhX21lbW9yeV90ICpkYXRhLCB1bnNpZ25lZCBpbnQgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICBjYW1lcmFfZnJhbWVfbWV0YWRhdGFfdCAqbWV0YWRhdGEsIHZvaWQgKnVzZXIpOworICAgIHN0YXRpYyB2b2lkIHNEYXRhQ2JUaW1lc3RhbXAobnNlY3NfdCB0aW1lc3RhbXAsIGludDMyX3QgbXNnX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYW1lcmFfbWVtb3J5X3QgKmRhdGEsIHVuc2lnbmVkIGluZGV4LCB2b2lkICp1c2VyKTsKKworICAgIC8vIFByZXZpZXcgd2luZG93IGNhbGxiYWNrIGZvcndhcmRpbmcgbWV0aG9kcworICAgIHN0YXRpYyBpbnQgc0RlcXVldWVCdWZmZXIoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyogdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCoqIGJ1ZmZlciwgaW50ICpzdHJpZGUpOworCisgICAgc3RhdGljIGludCBzTG9ja0J1ZmZlcihzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBidWZmZXJfaGFuZGxlX3QqIGJ1ZmZlcik7CisKKyAgICBzdGF0aWMgaW50IHNFbnF1ZXVlQnVmZmVyKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsIGJ1ZmZlcl9oYW5kbGVfdCogYnVmZmVyKTsKKworICAgIHN0YXRpYyBpbnQgc0NhbmNlbEJ1ZmZlcihzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBidWZmZXJfaGFuZGxlX3QqIGJ1ZmZlcik7CisKKyAgICBzdGF0aWMgaW50IHNTZXRCdWZmZXJDb3VudChzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzKiB3LCBpbnQgY291bnQpOworCisgICAgc3RhdGljIGludCBzU2V0QnVmZmVyc0dlb21ldHJ5KHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IGZvcm1hdCk7CisKKyAgICBzdGF0aWMgaW50IHNTZXRDcm9wKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMgKncsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQgcmlnaHQsIGludCBib3R0b20pOworCisgICAgc3RhdGljIGludCBzU2V0VGltZXN0YW1wKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMgKncsIGludDY0X3QgdGltZXN0YW1wKTsKKworICAgIHN0YXRpYyBpbnQgc1NldFVzYWdlKHN0cnVjdCBwcmV2aWV3X3N0cmVhbV9vcHMqIHcsIGludCB1c2FnZSk7CisKKyAgICBzdGF0aWMgaW50IHNTZXRTd2FwSW50ZXJ2YWwoc3RydWN0IHByZXZpZXdfc3RyZWFtX29wcyAqdywgaW50IGludGVydmFsKTsKKworICAgIHN0YXRpYyBpbnQgc0dldE1pblVuZGVxdWV1ZWRCdWZmZXJDb3VudChjb25zdCBzdHJ1Y3QgcHJldmlld19zdHJlYW1fb3BzICp3LCBpbnQgKmNvdW50KTsKKworICAgIC8vIGNvbnZlcnQgY29udmVudGlvbmFsIEhBTCBzdGF0dXMgdG8gSElETCBTdGF0dXMKKyAgICBzdGF0aWMgU3RhdHVzIGdldEhpZGxTdGF0dXMoY29uc3QgaW50Jik7CisgICAgc3RhdGljIHN0YXR1c190IGdldFN0YXR1c1QoY29uc3QgU3RhdHVzJiBzKTsKKworICAgIFN0YXR1cyBpbml0U3RhdHVzKCkgY29uc3Q7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZGV2aWNlCit9ICAvLyBuYW1lc3BhY2UgY2FtZXJhCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfREVWSUNFX1YxXzBfQ0FNRVJBREVWSUNFX0gKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMS4wL3R5cGVzLmhhbCBiL2NhbWVyYS9kZXZpY2UvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTUyMDVlCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMjg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wOworCitlbnVtIENhbWVyYUZhY2luZyA6IHVpbnQzMl90IHsKKyAgICAvKiogVGhlIGZhY2luZyBvZiB0aGUgY2FtZXJhIGlzIG9wcG9zaXRlIHRvIHRoYXQgb2YgdGhlIHNjcmVlbi4gKi8KKyAgICBCQUNLID0gMCwKKyAgICAvKiogVGhlIGZhY2luZyBvZiB0aGUgY2FtZXJhIGlzIHRoZSBzYW1lIGFzIHRoYXQgb2YgdGhlIHNjcmVlbi4gKi8KKyAgICBGUk9OVCA9IDEsCisgICAgLyoqCisgICAgICogVGhlIGZhY2luZyBvZiB0aGUgY2FtZXJhIGlzIG5vdCBmaXhlZCByZWxhdGl2ZSB0byB0aGUgc2NyZWVuLgorICAgICAqIFRoZSBjYW1lcmFzIHdpdGggdGhpcyBmYWNpbmcgYXJlIGV4dGVybmFsIGNhbWVyYXMsIGUuZy4gVVNCIGNhbWVyYXMuCisgICAgICovCisgICAgRVhURVJOQUwgPSAyCit9OworCisvKioKKyAqIEJhc2ljIGluZm9ybWF0aW9uIGFib3V0IGEgY2FtZXJhIGRldmljZSwgYWx3YXlzIGFjY2Vzc2libGUgdmlhCisgKiBJQ2FtZXJhRGV2aWNlOjpnZXRDYW1lcmFJbmZvKCkuCisgKi8KK3N0cnVjdCBDYW1lcmFJbmZvIHsKKyAgICAvKioKKyAgICAgKiBUaGUgZGlyZWN0aW9uIHRoYXQgdGhpcyBkZXZpY2UgZmFjZXMuCisgICAgICovCisgICAgQ2FtZXJhRmFjaW5nIGZhY2luZzsKKworICAgIC8qKgorICAgICAqIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgY2FtZXJhIGltYWdlLiBUaGUgdmFsdWUgaXMgdGhlIGFuZ2xlIHRoYXQgdGhlCisgICAgICogY2FtZXJhIGltYWdlIG5lZWRzIHRvIGJlIHJvdGF0ZWQgY2xvY2t3aXNlIHNvIGl0IHNob3dzIGNvcnJlY3RseSBvbiB0aGUKKyAgICAgKiBkaXNwbGF5IGluIGl0cyBuYXR1cmFsIG9yaWVudGF0aW9uLiBJdCBtdXN0IGJlIDAsIDkwLCAxODAsIG9yIDI3MC4KKyAgICAgKgorICAgICAqIEZvciBleGFtcGxlLCBzdXBwb3NlIGEgZGV2aWNlIGhhcyBhIG5hdHVyYWxseSB0YWxsIHNjcmVlbi4gVGhlCisgICAgICogYmFjay1mYWNpbmcgY2FtZXJhIHNlbnNvciBpcyBtb3VudGVkIGluIGxhbmRzY2FwZS4gWW91IGFyZSBsb29raW5nIGF0IHRoZQorICAgICAqIHNjcmVlbi4gSWYgdGhlIHRvcCBzaWRlIG9mIHRoZSBjYW1lcmEgc2Vuc29yIGlzIGFsaWduZWQgd2l0aCB0aGUgcmlnaHQKKyAgICAgKiBlZGdlIG9mIHRoZSBzY3JlZW4gaW4gbmF0dXJhbCBvcmllbnRhdGlvbiwgdGhlIHZhbHVlIG11c3QgYmUgOTAuIElmIHRoZQorICAgICAqIHRvcCBzaWRlIG9mIGEgZnJvbnQtZmFjaW5nIGNhbWVyYSBzZW5zb3IgaXMgYWxpZ25lZCB3aXRoIHRoZSByaWdodCBvZiB0aGUKKyAgICAgKiBzY3JlZW4sIHRoZSB2YWx1ZSBtdXN0IGJlIDI3MC4KKyAgICAgKgorICAgICAqIEFuIGV4dGVybmFsIGNhbWVyYSBkZXZpY2UgbXVzdCBsZWF2ZSB0aGlzIHNldCB0byAwLgorICAgICAqCisgICAgICovCisgICAgdWludDMyX3Qgb3JpZW50YXRpb247CisKK307CisKKy8qKgorICogTWVzc2FnZSB0eXBlcyBmb3IgSUNhbWVyYURldmljZUAxLjA6OmVuYWJsZU1zZ1R5cGUoKS9kaXNhYmxlTXNnVHlwZSgpCisgKgorICogQSBzZXQgb2YgYml0IG1hc2tzIGZvciBzcGVjaWZ5aW5nIGhvdyB0aGUgcmVjZWl2ZWQgcHJldmlldyBmcmFtZXMgYXJlCisgKiBoYW5kbGVkIGJlZm9yZSB0aGUgcHJldmlld0NhbGxiYWNrKCkgY2FsbC4KKyAqCisgKiBUaGUgbGVhc3Qgc2lnbmlmaWNhbnQgMyBiaXRzIG9mIGFuICJpbnQiIHZhbHVlIGFyZSB1c2VkIGZvciB0aGlzIHB1cnBvc2U6CisgKgorICogLi4uLi4gMCAwIDAKKyAqICAgICAgIF4gXiBeCisgKiAgICAgICB8IHwgfC0tLS0tLS0tLT4gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNhbGxiYWNrIGlzIGVuYWJsZWQgb3Igbm90CisgKiAgICAgICB8IHwtLS0tLS0tLS0tLT4gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNhbGxiYWNrIGlzIG9uZS1zaG90IG9yIG5vdAorICogICAgICAgfC0tLS0tLS0tLS0tLS0+IGRldGVybWluZSB3aGV0aGVyIHRoZSBmcmFtZSBpcyBjb3BpZWQgb3V0IG9yIG5vdAorICoKKyAqIFdBUk5JTkc6IFdoZW4gYSBmcmFtZSBpcyBzZW50IGRpcmVjdGx5IHdpdGhvdXQgY29weWluZywgaXQgaXMgdGhlIGZyYW1lCisgKiByZWNlaXZlcidzIHJlc3BvbnNpYmxpdHkgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGZyYW1lIGRhdGEgd29uJ3QgZ2V0CisgKiBjb3JydXB0ZWQgYnkgc3Vic2VxdWVudCBwcmV2aWV3IGZyYW1lcyBmaWxsZWQgYnkgdGhlIGNhbWVyYS4gVGhpcyBmbGFnIGlzCisgKiByZWNvbW1lbmRlZCBvbmx5IHdoZW4gY29weWluZyBvdXQgZGF0YSBicmluZ3Mgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgcHJpY2UKKyAqIGFuZCB0aGUgaGFuZGxpbmcvcHJvY2Vzc2luZyBvZiB0aGUgcmVjZWl2ZWQgZnJhbWUgZGF0YSBpcyBhbHdheXMgZmFzdGVyIHRoYW4KKyAqIHRoZSBwcmV2aWV3IGZyYW1lIHJhdGUgc28gdGhhdCBkYXRhIGNvcnJ1cHRpb24gd29uJ3Qgb2NjdXIuCisgKgorICogRm9yIGluc3RhbmNlLAorICogMS4gMHgwMCBkaXNhYmxlcyB0aGUgY2FsbGJhY2suIEluIHRoaXMgY2FzZSwgY29weSBvdXQgYW5kIG9uZSBzaG90IGJpdHMKKyAqICAgIGFyZSBpZ25vcmVkLgorICogMi4gMHgwMSBlbmFibGVzIGEgY2FsbGJhY2sgd2l0aG91dCBjb3B5aW5nIG91dCB0aGUgcmVjZWl2ZWQgZnJhbWVzLiBBCisgKiAgICB0eXBpY2FsIHVzZSBjYXNlIGlzIHRoZSBDYW1jb3JkZXIgYXBwbGljYXRpb24gdG8gYXZvaWQgbWFraW5nIGNvc3RseQorICogICAgZnJhbWUgY29waWVzLgorICogMy4gMHgwNSBpcyBlbmFibGluZyBhIGNhbGxiYWNrIHdpdGggZnJhbWUgY29waWVkIG91dCByZXBlYXRlZGx5LiBBIHR5cGljYWwKKyAqICAgIHVzZSBjYXNlIGlzIHRoZSBDYW1lcmEgYXBwbGljYXRpb24uCisgKiA0LiAweDA3IGlzIGVuYWJsaW5nIGEgY2FsbGJhY2sgd2l0aCBmcmFtZSBjb3BpZWQgb3V0IG9ubHkgb25jZS4gQSB0eXBpY2FsCisgKiAgICB1c2UgY2FzZSBpcyB0aGUgQmFyY29kZSBzY2FubmVyIGFwcGxpY2F0aW9uLgorICovCitlbnVtIEZyYW1lQ2FsbGJhY2tGbGFnIDogdWludDMyX3QgeworICAgIEVOQUJMRV9NQVNLID0gMHgwMSwKKyAgICBPTkVfU0hPVF9NQVNLID0gMHgwMiwKKyAgICBDT1BZX09VVF9NQVNLID0gMHgwNCwKKyAgICAvKiogVHlwaWNhbCB1c2UgY2FzZXMgKi8KKyAgICBOT09QID0gMHgwMCwKKyAgICBDQU1DT1JERVIgPSAweDAxLAorICAgIENBTUVSQSA9IDB4MDUsCisgICAgQkFSQ09ERV9TQ0FOTkVSID0gMHgwNworfTsKKwordHlwZWRlZiBiaXRmaWVsZDxGcmFtZUNhbGxiYWNrRmxhZz4gRnJhbWVDYWxsYmFja0ZsYWdzOworCisvKioKKyAqIFN1YnNldCBvZiBjb21tYW5kcyBpbiAvc3lzdGVtL2NvcmUvaW5jbHVkZS9zeXN0ZW0vY2FtZXJhLmggcmVsZXZhbnQgZm9yCisgKiBJQ2FtZXJhRGV2aWNlQDEuMDo6c2VuZENvbW1hbmQoKQorICovCitlbnVtIENvbW1hbmRUeXBlIDogdWludDMyX3QgeworICAgIFNUQVJUX1NNT09USF9aT09NID0gMSwKKyAgICBTVE9QX1NNT09USF9aT09NID0gMiwKKworICAgIC8qKgorICAgICAqIFN0YXJ0IHRoZSBmYWNlIGRldGVjdGlvbi4gVGhpcyBtdXN0IGJlIGNhbGxlZCBvbmx5IGFmdGVyIHByZXZpZXcgaXMKKyAgICAgKiBzdGFydGVkLiAgVGhlIGNhbWVyYSBtdXN0IG5vdGlmeSB0aGUgbGlzdGVuZXIgb2YgQ0FNRVJBX01TR19GQUNFIGFuZCB0aGUKKyAgICAgKiBkZXRlY3RlZCBmYWNlcyBpbiB0aGUgcHJldmlldyBmcmFtZS4gVGhlIGRldGVjdGVkIGZhY2VzIG1heSBiZSB0aGUgc2FtZQorICAgICAqIGFzIHRoZSBwcmV2aW91cyBvbmVzLiBBcHBzIG11c3QgY2FsbCBDQU1FUkFfQ01EX1NUT1BfRkFDRV9ERVRFQ1RJT04gdG8KKyAgICAgKiBzdG9wIHRoZSBmYWNlIGRldGVjdGlvbi4gVGhpcyBtZXRob2QgaXMgc3VwcG9ydGVkIGlmIENhbWVyYVBhcmFtZXRlcnMKKyAgICAgKiBLRVlfTUFYX05VTV9IV19ERVRFQ1RFRF9GQUNFUyBvciBLRVlfTUFYX05VTV9TV19ERVRFQ1RFRF9GQUNFUyBpcyBiaWdnZXIKKyAgICAgKiB0aGFuIDAuIEhhcmR3YXJlIGFuZCBzb2Z0d2FyZSBmYWNlIGRldGVjdGlvbiBtdXN0IG5vdCBiZSBydW5uaW5nIGF0IHRoZQorICAgICAqIHNhbWUgdGltZS4gSWYgdGhlIGZhY2UgZGV0ZWN0aW9uIGhhcyBzdGFydGVkLCBhcHBzIG11c3Qgbm90IHNlbmQgdGhpcworICAgICAqIGFnYWluLgorICAgICAqCisgICAgICogSW4gaGFyZHdhcmUgZmFjZSBkZXRlY3Rpb24gbW9kZSwgQ2FtZXJhUGFyYW1ldGVycyBLRVlfV0hJVEVfQkFMQU5DRSwKKyAgICAgKiBLRVlfRk9DVVNfQVJFQVMgYW5kIEtFWV9NRVRFUklOR19BUkVBUyBoYXZlIG5vIGVmZmVjdC4KKyAgICAgKgorICAgICAqIGFyZzEgaXMgdGhlIGZhY2UgZGV0ZWN0aW9uIHR5cGUuIEl0IGNhbiBiZSBDQU1FUkFfRkFDRV9ERVRFQ1RJT05fSFcgb3IKKyAgICAgKiBDQU1FUkFfRkFDRV9ERVRFQ1RJT05fU1cuIElmIHRoZSB0eXBlIG9mIGZhY2UgZGV0ZWN0aW9uIHJlcXVlc3RlZCBpcyBub3QKKyAgICAgKiBzdXBwb3J0ZWQsIHRoZSBIQUwgbXVzdCByZXR1cm4gQkFEX1ZBTFVFLgorICAgICAqLworICAgIFNUQVJUX0ZBQ0VfREVURUNUSU9OID0gNiwKKworICAgIC8qKgorICAgICAqIFN0b3AgdGhlIGZhY2UgZGV0ZWN0aW9uLgorICAgICAqLworICAgIFNUT1BfRkFDRV9ERVRFQ1RJT04gPSA3LAorCisgICAgLyoqCisgICAgICogRW5hYmxlL2Rpc2FibGUgZm9jdXMgbW92ZSBjYWxsYmFjayAoQ0FNRVJBX01TR19GT0NVU19NT1ZFKS4gUGFzc2luZworICAgICAqIGFyZzEgPSAwIG11c3QgZGlzYWJsZSwgd2hpbGUgcGFzc2luZyBhcmcxID0gMSBtdXN0IGVuYWJsZSB0aGUgY2FsbGJhY2suCisgICAgICovCisgICAgRU5BQkxFX0ZPQ1VTX01PVkVfTVNHID0gOCwKKworICAgIC8qKgorICAgICAqIENvbmZpZ3VyZSBhbiBleHBsaWNpdCBmb3JtYXQgdG8gdXNlIGZvciB2aWRlbyByZWNvcmRpbmcgbWV0YWRhdGEgbW9kZS4KKyAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHN3aXRjaCB0aGUgZm9ybWF0IGZyb20gdGhlCisgICAgICogZGVmYXVsdCBJTVBMRU1FTlRBVElPTl9ERUZJTkVEIGdyYWxsb2MgZm9ybWF0IHRvIHNvbWUgb3RoZXIKKyAgICAgKiBkZXZpY2Utc3VwcG9ydGVkIGZvcm1hdCwgYW5kIHRoZSBkZWZhdWx0IGRhdGFzcGFjZSBmcm9tIHRoZSBCVF83MDkgY29sb3IKKyAgICAgKiBzcGFjZSB0byBzb21lIG90aGVyIGRldmljZS1zdXBwb3J0ZWQgZGF0YXNwYWNlLiBhcmcxIGlzIHRoZSBIQUwgcGl4ZWwKKyAgICAgKiBmb3JtYXQsIGFuZCBhcmcyIGlzIHRoZSBIQUwgZGF0YVNwYWNlLiBUaGlzIGNvbW1hbmQgcmV0dXJucworICAgICAqIElOVkFMSURfT1BFUkFUSU9OIGVycm9yIGlmIGl0IGlzIHNlbnQgYWZ0ZXIgdmlkZW8gcmVjb3JkaW5nIGlzIHN0YXJ0ZWQsCisgICAgICogb3IgdGhlIGNvbW1hbmQgaXMgbm90IHN1cHBvcnRlZCBhdCBhbGwuCisgICAgICoKKyAgICAgKiBJZiB0aGUgZ3JhbGxvYyBmb3JtYXQgaXMgc2V0IHRvIGEgZm9ybWF0IG90aGVyIHRoYW4KKyAgICAgKiBJTVBMRU1FTlRBVElPTl9ERUZJTkVELCB0aGVuIEhBTHYzIGRldmljZXMgbXVzdCB1c2UgZ3JhbGxvYyB1c2FnZSBmbGFncworICAgICAqIG9mIFNXX1JFQURfT0ZURU4uCisgICAgICovCisgICAgU0VUX1ZJREVPX0ZPUk1BVCA9IDExCit9OworCisvKioKKyAqIE1lc3NhZ2UgdHlwZXMgZm9yIElDYW1lcmFEZXZpY2UxQ2FsbGJhY2s6Om5vdGlmeUNhbGxiYWNrKCkKKyAqLworZW51bSBOb3RpZnlDYWxsYmFja01zZyA6IHVpbnQzMl90IHsKKyAgICBFUlJPUiA9IDB4MDAwMSwKKyAgICBTSFVUVEVSID0gMHgwMDAyLAorICAgIEZPQ1VTID0gMHgwMDA0LAorICAgIFpPT00gPSAweDAwMDgsCisgICAgLy8gTm90aWZ5IG9uIGF1dG9mb2N1cyBzdGFydCBhbmQgc3RvcC4gVGhpcyBpcyB1c2VmdWwgaW4gY29udGludW91cworICAgIC8vIGF1dG9mb2N1cyAtIEZPQ1VTX01PREVfQ09OVElOVU9VU19WSURFTyBhbmQgRk9DVVNfTU9ERV9DT05USU5VT1VTX1BJQ1RVUkUuCisgICAgRk9DVVNfTU9WRSA9IDB4MDgwMAorfTsKKworLyoqCisgKiBNZXNzYWdlIHR5cGVzIGZvciBJQ2FtZXJhRGV2aWNlMUNhbGxiYWNrOjpkYXRhQ2FsbGJhY2soKSBhbmQKKyAqIElDYW1lcmFEZXZpY2UxQ2FsbGJhY2s6OmRhdGFDYWxsYmFja1RpbWVzdGFtcCgpCisgKi8KK2VudW0gRGF0YUNhbGxiYWNrTXNnIDogdWludDMyX3QgeworICAgIFBSRVZJRVdfRlJBTUUgPSAweDAwMTAsCisgICAgVklERU9fRlJBTUUgPSAweDAwMjAsCisgICAgUE9TVFZJRVdfRlJBTUUgPSAweDAwNDAsCisgICAgUkFXX0lNQUdFID0gMHgwMDgwLAorICAgIENPTVBSRVNTRURfSU1BR0UgPSAweDAxMDAsCisgICAgUkFXX0lNQUdFX05PVElGWSA9IDB4MDIwMCwKKyAgICAvLyBQcmV2aWV3IGZyYW1lIG1ldGFkYXRhLiBUaGlzIGNhbiBiZSBjb21iaW5lZCB3aXRoCisgICAgLy8gQ0FNRVJBX01TR19QUkVWSUVXX0ZSQU1FIGluIGRhdGFDYWxsYmFjay4gRm9yIGV4YW1wbGUsIHRoZSBhcHBzIGNhbgorICAgIC8vIHJlcXVlc3QgRlJBTUUgYW5kIE1FVEFEQVRBLiBPciB0aGUgYXBwcyBjYW4gcmVxdWVzdCBvbmx5IEZSQU1FIG9yIG9ubHkKKyAgICAvLyBNRVRBREFUQS4KKyAgICBQUkVWSUVXX01FVEFEQVRBID0gMHgwNDAwCit9OworCisvKioKKyAqIEluZm9ybWF0aW9uIGZvciBhIHNpbmdsZSBkZXRlY3RlZCBmYWNlLgorICovCisgc3RydWN0IENhbWVyYUZhY2UgeworICAgIC8qKgorICAgICAqIEJvdW5kcyBvZiB0aGUgZmFjZSBbbGVmdCwgdG9wLCByaWdodCwgYm90dG9tXS4gKC0xMDAwLCAtMTAwMCkgcmVwcmVzZW50cworICAgICAqIHRoZSB0b3AtbGVmdCBvZiB0aGUgY2FtZXJhIGZpZWxkIG9mIHZpZXcsIGFuZCAoMTAwMCwgMTAwMCkgcmVwcmVzZW50cyB0aGUKKyAgICAgKiBib3R0b20tcmlnaHQgb2YgdGhlIGZpZWxkIG9mIHZpZXcuIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IGNhbm5vdCBiZSAwIG9yCisgICAgICogbmVnYXRpdmUuIFRoaXMgaXMgc3VwcG9ydGVkIGJ5IGJvdGggaGFyZHdhcmUgYW5kIHNvZnR3YXJlIGZhY2UgZGV0ZWN0aW9uLgorICAgICAqCisgICAgICogVGhlIGRpcmVjdGlvbiBpcyByZWxhdGl2ZSB0byB0aGUgc2Vuc29yIG9yaWVudGF0aW9uLCB0aGF0IGlzLCB3aGF0IHRoZQorICAgICAqIHNlbnNvciBzZWVzLiBUaGUgZGlyZWN0aW9uIGlzIG5vdCBhZmZlY3RlZCBieSB0aGUgcm90YXRpb24gb3IgbWlycm9yaW5nCisgICAgICogb2YgQ0FNRVJBX0NNRF9TRVRfRElTUExBWV9PUklFTlRBVElPTi4KKyAgICAgKi8KKyAgICBpbnQzMl90WzRdIHJlY3Q7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29uZmlkZW5jZSBsZXZlbCBvZiB0aGUgZmFjZS4gVGhlIHJhbmdlIGlzIDEgdG8gMTAwLiAxMDAgaXMgdGhlCisgICAgICogaGlnaGVzdCBjb25maWRlbmNlLiBUaGlzIGlzIHN1cHBvcnRlZCBieSBib3RoIGhhcmR3YXJlIGFuZCBzb2Z0d2FyZQorICAgICAqIGZhY2UgZGV0ZWN0aW9uLgorICAgICAqLworICAgIGludDMyX3Qgc2NvcmU7CisKKyAgICAvKioKKyAgICAgKiBBbiB1bmlxdWUgaWQgcGVyIGZhY2Ugd2hpbGUgdGhlIGZhY2UgaXMgdmlzaWJsZSB0byB0aGUgdHJhY2tlci4gSWYKKyAgICAgKiB0aGUgZmFjZSBsZWF2ZXMgdGhlIGZpZWxkLW9mLXZpZXcgYW5kIGNvbWVzIGJhY2ssIGl0IHdpbGwgZ2V0IGEgbmV3CisgICAgICogaWQuIElmIHRoZSB2YWx1ZSBpcyAwLCBpZCBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAqLworICAgIGludDMyX3QgaWQ7CisKKyAgICAvKioKKyAgICAgKiBUaGUgY29vcmRpbmF0ZXMgb2YgdGhlIGNlbnRlciBvZiB0aGUgbGVmdCBleWUuIFRoZSByYW5nZSBpcyAtMTAwMCB0bworICAgICAqIDEwMDAuIC0yMDAwLCAtMjAwMCBpZiB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgaW50MzJfdFsyXSBsZWZ0RXllOworCisgICAgLyoqCisgICAgICogVGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBjZW50ZXIgb2YgdGhlIHJpZ2h0IGV5ZS4gVGhlIHJhbmdlIGlzIC0xMDAwIHRvCisgICAgICogMTAwMC4gLTIwMDAsIC0yMDAwIGlmIHRoaXMgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBpbnQzMl90WzJdIHJpZ2h0RXllOworCisgICAgLyoqCisgICAgICogVGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBjZW50ZXIgb2YgdGhlIG1vdXRoLiBUaGUgcmFuZ2UgaXMgLTEwMDAgdG8gMTAwMC4KKyAgICAgKiAtMjAwMCwgLTIwMDAgaWYgdGhpcyBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAqLworICAgIGludDMyX3RbMl0gbW91dGg7CisKK307CisKKy8qKgorICogVGhlIG1ldGFkYXRhIG9mIHRoZSBmcmFtZSBkYXRhLCBzdWNoIGFzIGZhY2UgZGV0ZWN0aW9uIHJlc3VsdC4KKyAqLworc3RydWN0IENhbWVyYUZyYW1lTWV0YWRhdGEgeworICAgIC8qKgorICAgICAqIEEgdmVjdG9yIG9mIHRoZSBkZXRlY3RlZCBmYWNlcy4KKyAgICAgKi8KKyAgICB2ZWM8Q2FtZXJhRmFjZT4gZmFjZXM7Cit9OworCisvKioKKyAqIEEgc2ltcGxlIGludGVnZXIgaGFuZGxlIHRvIHVzZSB0byByZWZlcmVuY2UgYSBwYXJ0aWN1bGFyIG1lbW9yeSBidWZmZXIKKyAqIGJldHdlZW4gdGhlIEhBTCBhbmQgdGhlIGZyYW1ld29yay4KKyAqLwordHlwZWRlZiB1aW50MzJfdCBNZW1vcnlJZDsKKworLyoKKyAqIFN0cnVjdCBjb250YWluaW5nIGFyZ3VtZW50cyBvZiBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s6OmhhbmRsZUNhbGxiYWNrVGltZXN0YW1wLgorICogVXNlZCB0byBzZW5kIGEgYmF0Y2ggb2YgbWVzc2FnZXMgaW4gSUNhbWVyYURldmljZUNhbGxiYWNrOjpoYW5kbGVDYWxsYmFja1RpbWVzdGFtcEJhdGNoLgorICovCitzdHJ1Y3QgSGFuZGxlVGltZXN0YW1wTWVzc2FnZSB7CisgICAgLy8gVGhlIGhhbmRsZSBvZiBpbWFnZSBidWZmZXIgZGF0YS4KKyAgICBoYW5kbGUgZnJhbWVEYXRhOworCisgICAgLy8gQSBtZW1vcnkgaGFuZGxlIHRvIHRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgZGF0YQorICAgIE1lbW9yeUlkIGRhdGE7CisKKyAgICAvLyBUaGUgb2Zmc2V0IGludG8gdGhlIG1lbW9yeSBoYW5kbGUgd2hlcmUgdGhlIGJ1ZmZlciBzdGFydHMuCisgICAgdWludDMyX3QgYnVmZmVySW5kZXg7CisKKyAgICAvLyBUaGUgdGltZSB0aGlzIGJ1ZmZlciB3YXMgY2FwdHVyZWQgYnkgdGhlIGNhbWVyYSwgaW4gbmFub3NlY29uZHMKKyAgICBpbnQ2NF90IHRpbWVzdGFtcDsKK307CisKKy8qCisgKiBTdHJ1Y3QgY29udGFpbmluZyBhcmd1bWVudHMgb2YgSUNhbWVyYURldmljZTo6cmVsZWFzZVJlY29yZGluZ0ZyYW1lSGFuZGxlLgorICogVXNlZCBieSBjYW1lcmEgZnJhbWV3b3JrIHRvIHNlbmQgYSBiYXRjaCBvZiByZWNvcmRpbmcgZnJhbWVzIGJhY2sgdG8gY2FtZXJhIEhBTC4KKyAqLworc3RydWN0IFZpZGVvRnJhbWVNZXNzYWdlIHsKKyAgICAvLyBUaGUgaGFuZGxlIG9mIGltYWdlIGJ1ZmZlciBkYXRhLgorICAgIGhhbmRsZSBmcmFtZURhdGE7CisKKyAgICAvLyBBIG1lbW9yeSBoYW5kbGUgdG8gdGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkYXRhCisgICAgTWVtb3J5SWQgZGF0YTsKKworICAgIC8vIFRoZSBvZmZzZXQgaW50byB0aGUgbWVtb3J5IGhhbmRsZSB3aGVyZSB0aGUgYnVmZmVyIHN0YXJ0cy4KKyAgICB1aW50MzJfdCBidWZmZXJJbmRleDsKK307CmRpZmYgLS1naXQgYS9jYW1lcmEvZGV2aWNlLzMuMi9BbmRyb2lkLmJwIGIvY2FtZXJhL2RldmljZS8zLjIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmM4MGFiCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvQW5kcm9pZC5icApAQCAtMCwwICsxLDgxIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjJfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUNhbWVyYURldmljZS5oYWwiLAorICAgICAgICAiSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbCIsCisgICAgICAgICJJQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMiIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjJfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9DYW1lcmFEZXZpY2VBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQ2FtZXJhRGV2aWNlQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQ2FtZXJhRGV2aWNlU2Vzc2lvbkFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMl9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9JSHdDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JuSHdDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JwSHdDYW1lcmFEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JzQ2FtZXJhRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lId0NhbWVyYURldmljZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9Cbkh3Q2FtZXJhRGV2aWNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JwSHdDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQnNDYW1lcmFEZXZpY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZVNlc3Npb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0lId0NhbWVyYURldmljZVNlc3Npb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NhbWVyYS9kZXZpY2UvMy4yL0JuSHdDYW1lcmFEZXZpY2VTZXNzaW9uLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9CcEh3Q2FtZXJhRGV2aWNlU2Vzc2lvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvQnNDYW1lcmFEZXZpY2VTZXNzaW9uLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMiIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjJfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDMuMl9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmNvbW1vbkAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZS5oYWwgYi9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjUyM2U0Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZS5oYWwKQEAgLTAsMCArMSwxOTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjI7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlczsKK2ltcG9ydCBJQ2FtZXJhRGV2aWNlU2Vzc2lvbjsKK2ltcG9ydCBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s7CisKKy8qKgorICogQ2FtZXJhIGRldmljZSBIQUwsIGZpcnN0IG1vZGVybiB2ZXJzaW9uCisgKgorICogU3VwcG9ydHMgdGhlIGFuZHJvaWQuaGFyZHdhcmUuQ2FtZXJhIEFQSSwgYW5kIHRoZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYTIKKyAqIEFQSSBhdCBMSU1JVEVEIG9yIGJldHRlciBoYXJkd2FyZSBsZXZlbC4KKyAqCisgKi8KK2ludGVyZmFjZSBJQ2FtZXJhRGV2aWNlIHsKKworICAgIC8qKgorICAgICAqIEdldCBjYW1lcmEgZGV2aWNlIHJlc291cmNlIGNvc3QgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIHN1Y2Nlc3MKKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBBbiB1bmV4cGVjdGVkIGludGVybmFsIGNhbWVyYSBIQUwgZXJyb3Igb2NjdXJyZWQsIGFuZCB0aGUKKyAgICAgKiAgICAgICAgIHJlc291cmNlIGNvc3QgaXMgbm90IGF2YWlsYWJsZS4KKyAgICAgKiAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRDoKKyAgICAgKiAgICAgICAgIEFuIGV4dGVybmFsIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBhbmQgaXMgbm8gbG9uZ2VyCisgICAgICogICAgICAgICBhdmFpbGFibGUuIFRoaXMgY2FtZXJhIGRldmljZSBpbnRlcmZhY2UgaXMgbm93IHN0YWxlLCBhbmQgYSBuZXcKKyAgICAgKiAgICAgICAgIGluc3RhbmNlIG11c3QgYmUgYWNxdWlyZWQgaWYgdGhlIGRldmljZSBpcyByZWNvbm5lY3RlZC4gQWxsCisgICAgICogICAgICAgICBzdWJzZXF1ZW50IGNhbGxzIG9uIHRoaXMgaW50ZXJmYWNlIG11c3QgcmV0dXJuCisgICAgICogICAgICAgICBDQU1FUkFfRElTQ09OTkVDVEVELgorICAgICAqIEByZXR1cm4gcmVzb3VyY2VDb3N0CisgICAgICogICAgIFRoZSByZXNvdXJjZXMgcmVxdWlyZWQgdG8gb3BlbiB0aGlzIGNhbWVyYSBkZXZpY2UsIG9yIHVuc3BlY2lmaWVkCisgICAgICogICAgIHZhbHVlcyBpZiBzdGF0dXMgaXMgbm90IE9LLgorICAgICAqLworICAgIGdldFJlc291cmNlQ29zdCgpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgQ2FtZXJhUmVzb3VyY2VDb3N0IHJlc291cmNlQ29zdCk7CisKKyAgICAvKioKKyAgICAgKiBnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3M6CisgICAgICoKKyAgICAgKiBSZXR1cm4gdGhlIHN0YXRpYyBjYW1lcmEgaW5mb3JtYXRpb24gZm9yIHRoaXMgY2FtZXJhIGRldmljZS4gVGhpcworICAgICAqIGluZm9ybWF0aW9uIG1heSBub3QgY2hhbmdlIGJldHdlZW4gY29uc2VjdXRpdmUgY2FsbHMuCisgICAgICoKKyAgICAgKiBXaGVuIGFuIGV4dGVybmFsIGNhbWVyYSBpcyBkaXNjb25uZWN0ZWQsIGl0cyBjYW1lcmEgaWQgYmVjb21lcworICAgICAqIGludmFsaWQuIENhbGxpbmcgdGhpcyBtZXRob2Qgd2l0aCB0aGlzIGludmFsaWQgY2FtZXJhIGlkIG11c3QgcmVzdWx0IGluCisgICAgICogSUxMRUdBTF9BUkdVTUVOVDsgdGhpcyBtYXkgaGFwcGVuIGV2ZW4gYmVmb3JlIHRoZSBkZXZpY2Ugc3RhdHVzIGNhbGxiYWNrCisgICAgICogaXMgaW52b2tlZCBieSB0aGUgSEFMLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBhIHN1Y2Nlc3NmdWwgb3BlbiBvZiB0aGUgY2FtZXJhIGRldmljZS4KKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBUaGUgY2FtZXJhIGRldmljZSBjYW5ub3QgYmUgb3BlbmVkIGR1ZSB0byBhbiBpbnRlcm5hbAorICAgICAqICAgICAgICAgZXJyb3IuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBBbiBleHRlcm5hbCBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgYW5kIGlzIG5vIGxvbmdlcgorICAgICAqICAgICAgICAgYXZhaWxhYmxlLiBUaGlzIGNhbWVyYSBkZXZpY2UgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3CisgICAgICogICAgICAgICBpbnN0YW5jZSBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbAorICAgICAqICAgICAgICAgc3Vic2VxdWVudCBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybgorICAgICAqICAgICAgICAgQ0FNRVJBX0RJU0NPTk5FQ1RFRC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gY2FtZXJhQ2hhcmFjdGVyaXN0aWNzCisgICAgICogICAgIFRoZSBzdGF0aWMgbWV0YWRhdGEgZm9yIHRoaXMgY2FtZXJhIGRldmljZSwgb3IgYW4gZW1wdHkgbWV0YWRhdGEKKyAgICAgKiAgICAgc3RydWN0dXJlIGlmIHN0YXR1cyBpcyBub3QgT0suCisgICAgICoKKyAgICAgKi8KKyAgICBnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3MoKSBnZW5lcmF0ZXMKKyAgICAgICAgICAgIChTdGF0dXMgc3RhdHVzLCBDYW1lcmFNZXRhZGF0YSBjYW1lcmFDaGFyYWN0ZXJpc3RpY3MpOworCisgICAgLyoqCisgICAgICogc2V0VG9yY2hNb2RlOgorICAgICAqCisgICAgICogVHVybiBvbiBvciBvZmYgdGhlIHRvcmNoIG1vZGUgb2YgdGhlIGZsYXNoIHVuaXQgYXNzb2NpYXRlZCB3aXRoIHRoaXMKKyAgICAgKiBjYW1lcmEgZGV2aWNlLiBJZiB0aGUgb3BlcmF0aW9uIGlzIHN1Y2Nlc3NmdWwsIEhBTCBtdXN0IG5vdGlmeSB0aGUKKyAgICAgKiBmcmFtZXdvcmsgdG9yY2ggc3RhdGUgYnkgaW52b2tpbmcKKyAgICAgKiBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6dG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkgd2l0aCB0aGUgbmV3IHN0YXRlLgorICAgICAqCisgICAgICogQW4gYWN0aXZlIGNhbWVyYSBzZXNzaW9uIGhhcyBhIGhpZ2hlciBwcmlvcml0eSBhY2Nlc3NpbmcgdGhlIGZsYXNoCisgICAgICogdW5pdC4gV2hlbiB0aGVyZSBhcmUgYW55IHJlc291cmNlIGNvbmZsaWN0cywgc3VjaCBhcyB3aGVuIG9wZW4oKSBpcworICAgICAqIGNhbGxlZCB0byBmdWxseSBhY3RpdmF0ZSBhIGNhbWVyYSBkZXZpY2UsIHRoZSBwcm92aWRlciBtdXN0IG5vdGlmeSB0aGUKKyAgICAgKiBmcmFtZXdvcmsgdGhyb3VnaCBJQ2FtZXJhUHJvdmlkZXJDYWxsYmFjazo6dG9yY2hNb2RlU3RhdHVzQ2hhbmdlKCkgdGhhdAorICAgICAqIHRoZSB0b3JjaCBtb2RlIGhhcyBiZWVuIHR1cm5lZCBvZmYgYW5kIHRoZSB0b3JjaCBtb2RlIHN0YXRlIGhhcyBiZWNvbWUKKyAgICAgKiBUT1JDSF9NT0RFX1NUQVRVU19OT1RfQVZBSUxBQkxFLiBXaGVuIHJlc291cmNlcyB0byB0dXJuIG9uIHRvcmNoIG1vZGUKKyAgICAgKiBiZWNvbWUgYXZhaWxhYmxlIGFnYWluLCB0aGUgcHJvdmlkZXIgbXVzdCBub3RpZnkgdGhlIGZyYW1ld29yayB0aHJvdWdoCisgICAgICogSUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2s6OnRvcmNoTW9kZVN0YXR1c0NoYW5nZSgpIHRoYXQgdGhlIHRvcmNoIG1vZGUKKyAgICAgKiBzdGF0ZSBoYXMgYmVjb21lIFRPUkNIX01PREVfU1RBVFVTX0FWQUlMQUJMRV9PRkYgZm9yIHNldF90b3JjaF9tb2RlKCkgdG8KKyAgICAgKiBiZSBjYWxsZWQuCisgICAgICoKKyAgICAgKiBXaGVuIHRoZSBjbGllbnQgY2FsbHMgc2V0VG9yY2hNb2RlKCkgdG8gdHVybiBvbiB0aGUgdG9yY2ggbW9kZSBvZiBhIGZsYXNoCisgICAgICogdW5pdCwgaWYgdGhlIEhBTCBjYW5ub3Qga2VlcCBtdWx0aXBsZSB0b3JjaCBtb2RlcyBvbiBzaW11bHRhbmVvdXNseSwgdGhlCisgICAgICogSEFMIG11c3QgdHVybiBvZmYgdGhlIHRvcmNoIG1vZGUocykgdGhhdCB3ZXJlIHR1cm5lZCBvbiBieSBwcmV2aW91cworICAgICAqIHNldFRvcmNoTW9kZSgpIGNhbGxzIGFuZCBub3RpZnkgdGhlIGZyYW1ld29yayB0aGF0IHRoZSB0b3JjaCBtb2RlIHN0YXRlCisgICAgICogb2YgdGhvc2UgZmxhc2ggdW5pdChzKSBoYXMgYmVjb21lIFRPUkNIX01PREVfU1RBVFVTX0FWQUlMQUJMRV9PRkYuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdG9yY2hNb2RlIFRoZSBuZXcgbW9kZSB0byBzZXQgdGhlIGRldmljZSBmbGFzaCB1bml0IHRvLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBhIHN1Y2Nlc3NmdWwgY2hhbmdlIHRvIHRoZSB0b3JjaCBzdGF0ZQorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIFRoZSBmbGFzaCB1bml0IGNhbm5vdCBiZSBvcGVyYXRlZCBkdWUgdG8gYW4gdW5leHBlY3RlZCBpbnRlcm5hbAorICAgICAqICAgICAgICAgZXJyb3IuCisgICAgICogICAgIElMTEVHQUxfQVJHVU1FTlQ6CisgICAgICogICAgICAgICBUaGUgY2FtZXJhIElEIGlzIHVua25vd24uCisgICAgICogICAgIENBTUVSQV9JTl9VU0U6CisgICAgICogICAgICAgICBUaGlzIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gb3BlbmVkLCBzbyB0aGUgdG9yY2ggY2Fubm90IGJlCisgICAgICogICAgICAgICBjb250cm9sbGVkIHVudGlsIGl0IGlzIGNsb3NlZC4KKyAgICAgKiAgICAgTUFYX0NBTUVSQVNfSU5fVVNFOgorICAgICAqICAgICAgICAgRHVlIHRvIG90aGVyIGNhbWVyYSBkZXZpY2VzIGJlaW5nIG9wZW4sIG9yIGR1ZSB0byBvdGhlcgorICAgICAqICAgICAgICAgcmVzb3VyY2UgY29uc3RyYWludHMsIHRoZSB0b3JjaCBjYW5ub3QgYmUgY29udHJvbGxlZCBjdXJyZW50bHkuCisgICAgICogICAgIE1FVEhPRF9OT1RfU1VQUE9SVEVEOgorICAgICAqICAgICAgICAgVGhpcyBwcm92aWRlciBkb2VzIG5vdCBzdXBwb3J0IGRpcmVjdCBvcGVyYXRpb24gb2YgZmxhc2hsaWdodAorICAgICAqICAgICAgICAgdG9yY2ggbW9kZS4gVGhlIGZyYW1ld29yayBtdXN0IG9wZW4gdGhlIGNhbWVyYSBkZXZpY2UgYW5kIHR1cm4KKyAgICAgKiAgICAgICAgIHRoZSB0b3JjaCBvbiB0aHJvdWdoIHRoZSBkZXZpY2UgaW50ZXJmYWNlLgorICAgICAqICAgICBPUEVSQVRJT05fTk9UX1NVUFBPUlRFRDoKKyAgICAgKiAgICAgICAgIFRoaXMgY2FtZXJhIGRldmljZSBkb2VzIG5vdCBoYXZlIGEgZmxhc2ggdW5pdC4gVGhpcyBjYW4KKyAgICAgKiAgICAgICAgIGJlIHJldHVybmVkIGlmIGFuZCBvbmx5IGlmIGFuZHJvaWQuZmxhc2guaW5mby5hdmFpbGFibGUgaXMKKyAgICAgKiAgICAgICAgIGZhbHNlLgorICAgICAqICAgICBDQU1FUkFfRElTQ09OTkVDVEVEOgorICAgICAqICAgICAgICAgQW4gZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIGFuZCBpcyBubyBsb25nZXIKKyAgICAgKiAgICAgICAgIGF2YWlsYWJsZS4gVGhpcyBjYW1lcmEgZGV2aWNlIGludGVyZmFjZSBpcyBub3cgc3RhbGUsIGFuZCBhIG5ldworICAgICAqICAgICAgICAgaW5zdGFuY2UgbXVzdCBiZSBhY3F1aXJlZCBpZiB0aGUgZGV2aWNlIGlzIHJlY29ubmVjdGVkLiBBbGwKKyAgICAgKiAgICAgICAgIHN1YnNlcXVlbnQgY2FsbHMgb24gdGhpcyBpbnRlcmZhY2UgbXVzdCByZXR1cm4KKyAgICAgKiAgICAgICAgIENBTUVSQV9ESVNDT05ORUNURUQuCisgICAgICoKKyAgICAgKi8KKyAgICBzZXRUb3JjaE1vZGUoVG9yY2hNb2RlIG1vZGUpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBvcGVuOgorICAgICAqCisgICAgICogUG93ZXIgb24gYW5kIGluaXRpYWxpemUgdGhpcyBjYW1lcmEgZGV2aWNlIGZvciBhY3RpdmUgdXNlLCByZXR1cm5pbmcgYQorICAgICAqIHNlc3Npb24gaGFuZGxlIGZvciBhY3RpdmUgb3BlcmF0aW9ucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBJbnRlcmZhY2UgdG8gaW52b2tlIGJ5IHRoZSBIQUwgZm9yIGRldmljZSBhc3luY2hyb25vdXMKKyAgICAgKiAgICAgZXZlbnRzLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBjb2RlIGZvciB0aGUgb3BlcmF0aW9uLCBvbmUgb2Y6CisgICAgICogICAgIE9LOgorICAgICAqICAgICAgICAgT24gYSBzdWNjZXNzZnVsIG9wZW4gb2YgdGhlIGNhbWVyYSBkZXZpY2UuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgVGhlIGNhbWVyYSBkZXZpY2UgY2Fubm90IGJlIG9wZW5lZCBkdWUgdG8gYW4gaW50ZXJuYWwKKyAgICAgKiAgICAgICAgIGVycm9yLgorICAgICAqICAgICBJTExFR0FMX0FSR1VNRU5UOgorICAgICAqICAgICAgICAgVGhlIGNhbGxiYWNrcyBoYW5kbGUgaXMgaW52YWxpZCAoZm9yIGV4YW1wbGUsIGl0IGlzIG51bGwpLgorICAgICAqICAgICBDQU1FUkFfSU5fVVNFOgorICAgICAqICAgICAgICAgVGhpcyBjYW1lcmEgZGV2aWNlIGlzIGFscmVhZHkgb3Blbi4KKyAgICAgKiAgICAgTUFYX0NBTUVSQVNfSU5fVVNFOgorICAgICAqICAgICAgICAgVGhlIG1heGltYWwgbnVtYmVyIG9mIGNhbWVyYSBkZXZpY2VzIHRoYXQgY2FuIGJlCisgICAgICogICAgICAgICBvcGVuZWQgY29uY3VycmVudGx5IHdlcmUgb3BlbmVkIGFscmVhZHkuCisgICAgICogICAgIENBTUVSQV9ESVNDT05ORUNURUQ6CisgICAgICogICAgICAgICBUaGlzIGV4dGVybmFsIGNhbWVyYSBkZXZpY2UgaGFzIGJlZW4gZGlzY29ubmVjdGVkLCBhbmQgaXMgbm8KKyAgICAgKiAgICAgICAgIGxvbmdlciBhdmFpbGFibGUuIFRoaXMgaW50ZXJmYWNlIGlzIG5vdyBzdGFsZSwgYW5kIGEgbmV3IGluc3RhbmNlCisgICAgICogICAgICAgICBtdXN0IGJlIGFjcXVpcmVkIGlmIHRoZSBkZXZpY2UgaXMgcmVjb25uZWN0ZWQuIEFsbCBzdWJzZXF1ZW50CisgICAgICogICAgICAgICBjYWxscyBvbiB0aGlzIGludGVyZmFjZSBtdXN0IHJldHVybiBDQU1FUkFfRElTQ09OTkVDVEVELgorICAgICAqIEByZXR1cm4gc2Vzc2lvbiBUaGUgaW50ZXJmYWNlIHRvIHRoZSBuZXdseS1vcGVuZWQgY2FtZXJhIHNlc3Npb24sCisgICAgICogICAgIG9yIG51bGwgaWYgc3RhdHVzIGlzIG5vdCBPSy4KKyAgICAgKi8KKyAgICBvcGVuKElDYW1lcmFEZXZpY2VDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzCisgICAgICAgICAgICAoU3RhdHVzIHN0YXR1cywgSUNhbWVyYURldmljZVNlc3Npb24gc2Vzc2lvbik7CisKKyAgICAvKioKKyAgICAgKiBkdW1wU3RhdGU6CisgICAgICoKKyAgICAgKiBQcmludCBvdXQgZGVidWdnaW5nIHN0YXRlIGZvciB0aGUgY2FtZXJhIGRldmljZS4gVGhpcyBtYXkgYmUgY2FsbGVkIGJ5CisgICAgICogdGhlIGZyYW1ld29yayB3aGVuIHRoZSBjYW1lcmEgc2VydmljZSBpcyBhc2tlZCBmb3IgYSBkZWJ1ZyBkdW1wLCB3aGljaAorICAgICAqIGhhcHBlbnMgd2hlbiB1c2luZyB0aGUgZHVtcHN5cyB0b29sLCBvciB3aGVuIGNhcHR1cmluZyBhIGJ1Z3JlcG9ydC4KKyAgICAgKgorICAgICAqIFRoZSBwYXNzZWQtaW4gZmlsZSBkZXNjcmlwdG9yIGNhbiBiZSB1c2VkIHRvIHdyaXRlIGRlYnVnZ2luZyB0ZXh0IHVzaW5nCisgICAgICogZHByaW50ZigpIG9yIHdyaXRlKCkuIFRoZSB0ZXh0IG11c3QgYmUgaW4gQVNDSUkgZW5jb2Rpbmcgb25seS4KKyAgICAgKgorICAgICAqIEluIGNhc2UgdGhpcyBjYW1lcmEgZGV2aWNlIGhhcyBiZWVuIGRpc2Nvbm5lY3RlZCwgdGhlIGR1bXAgbXVzdCBub3QgZmFpbCwKKyAgICAgKiBidXQgbWF5IHNpbXBseSBwcmludCBvdXQgJ0RldmljZSBkaXNjb25uZWN0ZWQnIG9yIGVxdWl2YWxlbnQuCisgICAgICoKKyAgICAgKiBQZXJmb3JtYW5jZSByZXF1aXJlbWVudHM6CisgICAgICoKKyAgICAgKiBUaGlzIG11c3QgYmUgYSBub24tYmxvY2tpbmcgY2FsbC4gVGhlIEhBTCBzaG91bGQgcmV0dXJuIGZyb20gdGhpcyBjYWxsCisgICAgICogaW4gMW1zLCBtdXN0IHJldHVybiBmcm9tIHRoaXMgY2FsbCBpbiAxMG1zLiBUaGlzIGNhbGwgbXVzdCBhdm9pZAorICAgICAqIGRlYWRsb2NrcywgYXMgaXQgbWF5IGJlIGNhbGxlZCBhdCBhbnkgcG9pbnQgZHVyaW5nIGNhbWVyYSBvcGVyYXRpb24uCisgICAgICogQW55IHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzIHVzZWQgKHN1Y2ggYXMgbXV0ZXggbG9ja3Mgb3Igc2VtYXBob3JlcykKKyAgICAgKiBtdXN0IGJlIGFjcXVpcmVkIHdpdGggYSB0aW1lb3V0LgorICAgICAqLworICAgIGR1bXBTdGF0ZShoYW5kbGUgZmQpOworCit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZUNhbGxiYWNrLmhhbCBiL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2VDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjk3MTVkZQotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2VDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjI7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wOjp0eXBlczsKKworLyoqCisgKgorICogQ2FsbGJhY2sgbWV0aG9kcyBmb3IgdGhlIEhBTCB0byBjYWxsIGludG8gdGhlIGZyYW1ld29yay4KKyAqCisgKiBUaGVzZSBtZXRob2RzIGFyZSB1c2VkIHRvIHJldHVybiBtZXRhZGF0YSBhbmQgaW1hZ2UgYnVmZmVycyBmb3IgYSBjb21wbGV0ZWQKKyAqIG9yIGZhaWxlZCBjYXB0dXJlcywgYW5kIHRvIG5vdGlmeSB0aGUgZnJhbWV3b3JrIG9mIGFzeW5jaHJvbm91cyBldmVudHMgc3VjaAorICogYXMgZXJyb3JzLgorICoKKyAqIFRoZSBmcmFtZXdvcmsgbXVzdCBub3QgY2FsbCBiYWNrIGludG8gdGhlIEhBTCBmcm9tIHdpdGhpbiB0aGVzZSBjYWxsYmFja3MsCisgKiBhbmQgdGhlc2UgY2FsbHMgbXVzdCBub3QgYmxvY2sgZm9yIGV4dGVuZGVkIHBlcmlvZHMuCisgKgorICovCitpbnRlcmZhY2UgSUNhbWVyYURldmljZUNhbGxiYWNrIHsKKworICAgIC8qKgorICAgICAqIHByb2Nlc3NDYXB0dXJlUmVzdWx0OgorICAgICAqCisgICAgICogU2VuZCByZXN1bHRzIGZyb20gb25lIG9yIG1vcmUgY29tcGxldGVkIG9yIHBhcnRpYWxseSBjb21wbGV0ZWQgY2FwdHVyZXMKKyAgICAgKiB0byB0aGUgZnJhbWV3b3JrLgorICAgICAqIHByb2Nlc3NDYXB0dXJlUmVzdWx0KCkgbWF5IGJlIGludm9rZWQgbXVsdGlwbGUgdGltZXMgYnkgdGhlIEhBTCBpbgorICAgICAqIHJlc3BvbnNlIHRvIGEgc2luZ2xlIGNhcHR1cmUgcmVxdWVzdC4gVGhpcyBhbGxvd3MsIGZvciBleGFtcGxlLCB0aGUKKyAgICAgKiBtZXRhZGF0YSBhbmQgbG93LXJlc29sdXRpb24gYnVmZmVycyB0byBiZSByZXR1cm5lZCBpbiBvbmUgY2FsbCwgYW5kCisgICAgICogcG9zdC1wcm9jZXNzZWQgSlBFRyBidWZmZXJzIGluIGEgbGF0ZXIgY2FsbCwgb25jZSBpdCBpcyBhdmFpbGFibGUuIEVhY2gKKyAgICAgKiBjYWxsIG11c3QgaW5jbHVkZSB0aGUgZnJhbWUgbnVtYmVyIG9mIHRoZSByZXF1ZXN0IGl0IGlzIHJldHVybmluZworICAgICAqIG1ldGFkYXRhIG9yIGJ1ZmZlcnMgZm9yLiBPbmx5IG9uZSBjYWxsIHRvIHByb2Nlc3NDYXB0dXJlUmVzdWx0CisgICAgICogbWF5IGJlIG1hZGUgYXQgYSB0aW1lIGJ5IHRoZSBIQUwgYWx0aG91Z2ggdGhlIGNhbGxzIG1heSBjb21lIGZyb20KKyAgICAgKiBkaWZmZXJlbnQgdGhyZWFkcyBpbiB0aGUgSEFMLgorICAgICAqCisgICAgICogQSBjb21wb25lbnQgKGJ1ZmZlciBvciBtZXRhZGF0YSkgb2YgdGhlIGNvbXBsZXRlIHJlc3VsdCBtYXkgb25seSBiZQorICAgICAqIGluY2x1ZGVkIGluIG9uZSBwcm9jZXNzX2NhcHR1cmVfcmVzdWx0IGNhbGwuIEEgYnVmZmVyIGZvciBlYWNoIHN0cmVhbSwKKyAgICAgKiBhbmQgdGhlIHJlc3VsdCBtZXRhZGF0YSwgbXVzdCBiZSByZXR1cm5lZCBieSB0aGUgSEFMIGZvciBlYWNoIHJlcXVlc3QgaW4KKyAgICAgKiBvbmUgb2YgdGhlIHByb2Nlc3NDYXB0dXJlUmVzdWx0IGNhbGxzLCBldmVuIGluIGNhc2Ugb2YgZXJyb3JzIHByb2R1Y2luZworICAgICAqIHNvbWUgb2YgdGhlIG91dHB1dC4gQSBjYWxsIHRvIHByb2Nlc3NDYXB0dXJlUmVzdWx0KCkgd2l0aCBuZWl0aGVyCisgICAgICogb3V0cHV0IGJ1ZmZlcnMgb3IgcmVzdWx0IG1ldGFkYXRhIGlzIG5vdCBhbGxvd2VkLgorICAgICAqCisgICAgICogVGhlIG9yZGVyIG9mIHJldHVybmluZyBtZXRhZGF0YSBhbmQgYnVmZmVycyBmb3IgYSBzaW5nbGUgcmVzdWx0IGRvZXMgbm90CisgICAgICogbWF0dGVyLCBidXQgYnVmZmVycyBmb3IgYSBnaXZlbiBzdHJlYW0gbXVzdCBiZSByZXR1cm5lZCBpbiBGSUZPIG9yZGVyLiBTbworICAgICAqIHRoZSBidWZmZXIgZm9yIHJlcXVlc3QgNSBmb3Igc3RyZWFtIEEgbXVzdCBhbHdheXMgYmUgcmV0dXJuZWQgYmVmb3JlIHRoZQorICAgICAqIGJ1ZmZlciBmb3IgcmVxdWVzdCA2IGZvciBzdHJlYW0gQS4gVGhpcyBhbHNvIGFwcGxpZXMgdG8gdGhlIHJlc3VsdAorICAgICAqIG1ldGFkYXRhOyB0aGUgbWV0YWRhdGEgZm9yIHJlcXVlc3QgNSBtdXN0IGJlIHJldHVybmVkIGJlZm9yZSB0aGUgbWV0YWRhdGEKKyAgICAgKiBmb3IgcmVxdWVzdCA2LgorICAgICAqCisgICAgICogSG93ZXZlciwgZGlmZmVyZW50IHN0cmVhbXMgYXJlIGluZGVwZW5kZW50IG9mIGVhY2ggb3RoZXIsIHNvIGl0IGlzCisgICAgICogYWNjZXB0YWJsZSBhbmQgZXhwZWN0ZWQgdGhhdCB0aGUgYnVmZmVyIGZvciByZXF1ZXN0IDUgZm9yIHN0cmVhbSBBIG1heSBiZQorICAgICAqIHJldHVybmVkIGFmdGVyIHRoZSBidWZmZXIgZm9yIHJlcXVlc3QgNiBmb3Igc3RyZWFtIEIgaXMuIEFuZCBpdCBpcworICAgICAqIGFjY2VwdGFibGUgdGhhdCB0aGUgcmVzdWx0IG1ldGFkYXRhIGZvciByZXF1ZXN0IDYgZm9yIHN0cmVhbSBCIGlzCisgICAgICogcmV0dXJuZWQgYmVmb3JlIHRoZSBidWZmZXIgZm9yIHJlcXVlc3QgNSBmb3Igc3RyZWFtIEEgaXMuIElmIG11bHRpcGxlCisgICAgICogY2FwdHVyZSByZXN1bHRzIGFyZSBpbmNsdWRlZCBpbiBhIHNpbmdsZSBjYWxsLCBjYW1lcmEgZnJhbWV3b3JrIG11c3QKKyAgICAgKiBwcm9jZXNzIHJlc3VsdHMgc2VxdWVudGlhbGx5IGZyb20gbG93ZXIgaW5kZXggdG8gaGlnaGVyIGluZGV4LCBhcyBpZgorICAgICAqIHRoZXNlIHJlc3VsdHMgd2VyZSBzZW50IHRvIGNhbWVyYSBmcmFtZXdvcmsgb25lIGJ5IG9uZSwgZnJvbSBsb3dlciBpbmRleAorICAgICAqIHRvIGhpZ2hlciBpbmRleC4KKyAgICAgKgorICAgICAqIFRoZSBIQUwgcmV0YWlucyBvd25lcnNoaXAgb2YgcmVzdWx0IHN0cnVjdHVyZSwgd2hpY2ggb25seSBuZWVkcyB0byBiZQorICAgICAqIHZhbGlkIHRvIGFjY2VzcyBkdXJpbmcgdGhpcyBjYWxsLgorICAgICAqCisgICAgICogVGhlIG91dHB1dCBidWZmZXJzIGRvIG5vdCBuZWVkIHRvIGJlIGZpbGxlZCB5ZXQ7IHRoZSBmcmFtZXdvcmsgbXVzdCB3YWl0CisgICAgICogb24gdGhlIHN0cmVhbSBidWZmZXIgcmVsZWFzZSBzeW5jIGZlbmNlIGJlZm9yZSByZWFkaW5nIHRoZSBidWZmZXIKKyAgICAgKiBkYXRhLiBUaGVyZWZvcmUsIHRoaXMgbWV0aG9kIHNob3VsZCBiZSBjYWxsZWQgYnkgdGhlIEhBTCBhcyBzb29uIGFzCisgICAgICogcG9zc2libGUsIGV2ZW4gaWYgc29tZSBvciBhbGwgb2YgdGhlIG91dHB1dCBidWZmZXJzIGFyZSBzdGlsbCBpbgorICAgICAqIGJlaW5nIGZpbGxlZC4gVGhlIEhBTCBtdXN0IGluY2x1ZGUgdmFsaWQgcmVsZWFzZSBzeW5jIGZlbmNlcyBpbnRvIGVhY2gKKyAgICAgKiBvdXRwdXRfYnVmZmVycyBzdHJlYW0gYnVmZmVyIGVudHJ5LCBvciAtMSBpZiB0aGF0IHN0cmVhbSBidWZmZXIgaXMKKyAgICAgKiBhbHJlYWR5IGZpbGxlZC4KKyAgICAgKgorICAgICAqIElmIHRoZSByZXN1bHQgYnVmZmVyIGNhbm5vdCBiZSBjb25zdHJ1Y3RlZCBmb3IgYSByZXF1ZXN0LCB0aGUgSEFMIG11c3QKKyAgICAgKiByZXR1cm4gYW4gZW1wdHkgbWV0YWRhdGEgYnVmZmVyLCBidXQgc3RpbGwgcHJvdmlkZSB0aGUgb3V0cHV0IGJ1ZmZlcnMgYW5kCisgICAgICogdGhlaXIgc3luYyBmZW5jZXMuIEluIGFkZGl0aW9uLCBub3RpZnkoKSBtdXN0IGJlIGNhbGxlZCB3aXRoIGFuCisgICAgICogRVJST1JfUkVTVUxUIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBJZiBhbiBvdXRwdXQgYnVmZmVyIGNhbm5vdCBiZSBmaWxsZWQsIGl0cyBzdGF0dXMgZmllbGQgbXVzdCBiZSBzZXQgdG8KKyAgICAgKiBTVEFUVVNfRVJST1IuIEluIGFkZGl0aW9uLCBub3RpZnkoKSBtdXN0IGJlIGNhbGxlZCB3aXRoIGEgRVJST1JfQlVGRkVSCisgICAgICogbWVzc2FnZS4KKyAgICAgKgorICAgICAqIElmIHRoZSBlbnRpcmUgY2FwdHVyZSBoYXMgZmFpbGVkLCB0aGVuIHRoaXMgbWV0aG9kIHN0aWxsIG5lZWRzIHRvIGJlCisgICAgICogY2FsbGVkIHRvIHJldHVybiB0aGUgb3V0cHV0IGJ1ZmZlcnMgdG8gdGhlIGZyYW1ld29yay4gQWxsIHRoZSBidWZmZXIKKyAgICAgKiBzdGF0dXNlcyBtdXN0IGJlIFNUQVRVU19FUlJPUiwgYW5kIHRoZSByZXN1bHQgbWV0YWRhdGEgbXVzdCBiZSBhbgorICAgICAqIGVtcHR5IGJ1ZmZlci4gSW4gYWRkaXRpb24sIG5vdGlmeSgpIG11c3QgYmUgY2FsbGVkIHdpdGggYSBFUlJPUl9SRVFVRVNUCisgICAgICogbWVzc2FnZS4gSW4gdGhpcyBjYXNlLCBpbmRpdmlkdWFsIEVSUk9SX1JFU1VMVC9FUlJPUl9CVUZGRVIgbWVzc2FnZXMKKyAgICAgKiBtdXN0IG5vdCBiZSBzZW50LgorICAgICAqCisgICAgICogUGVyZm9ybWFuY2UgcmVxdWlyZW1lbnRzOgorICAgICAqCisgICAgICogVGhpcyBpcyBhIG5vbi1ibG9ja2luZyBjYWxsLiBUaGUgZnJhbWV3b3JrIG11c3QgaGFuZGxlIGVhY2ggQ2FwdHVyZVJlc3VsdAorICAgICAqIHdpdGhpbiA1bXMuCisgICAgICoKKyAgICAgKiBUaGUgcGlwZWxpbmUgbGF0ZW5jeSAoc2VlIFM3IGZvciBkZWZpbml0aW9uKSBzaG91bGQgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvCisgICAgICogNCBmcmFtZSBpbnRlcnZhbHMsIGFuZCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA4IGZyYW1lIGludGVydmFscy4KKyAgICAgKgorICAgICAqLworICAgIHByb2Nlc3NDYXB0dXJlUmVzdWx0KHZlYzxDYXB0dXJlUmVzdWx0PiByZXN1bHRzKTsKKworICAgIC8qKgorICAgICAqIG5vdGlmeToKKyAgICAgKgorICAgICAqIEFzeW5jaHJvbm91cyBub3RpZmljYXRpb24gY2FsbGJhY2sgZnJvbSB0aGUgSEFMLCBmaXJlZCBmb3IgdmFyaW91cworICAgICAqIHJlYXNvbnMuIE9ubHkgZm9yIGluZm9ybWF0aW9uIGluZGVwZW5kZW50IG9mIGZyYW1lIGNhcHR1cmUsIG9yIHRoYXQKKyAgICAgKiByZXF1aXJlIHNwZWNpZmljIHRpbWluZy4gTXVsdGlwbGUgbWVzc2FnZXMgbWF5IGJlIHNlbnQgaW4gb25lIGNhbGw7IGEKKyAgICAgKiBtZXNzYWdlIHdpdGggYSBoaWdoZXIgaW5kZXggbXVzdCBiZSBjb25zaWRlcmVkIHRvIGhhdmUgb2NjdXJyZWQgYWZ0ZXIgYQorICAgICAqIG1lc3NhZ2Ugd2l0aCBhIGxvd2VyIGluZGV4LgorICAgICAqCisgICAgICogTXVsdGlwbGUgdGhyZWFkcyBtYXkgY2FsbCBub3RpZnkoKSBzaW11bHRhbmVvdXNseS4KKyAgICAgKgorICAgICAqIEJ1ZmZlcnMgZGVsaXZlcmVkIHRvIHRoZSBmcmFtZXdvcmsgbXVzdCBub3QgYmUgZGlzcGF0Y2hlZCB0byB0aGUKKyAgICAgKiBhcHBsaWNhdGlvbiBsYXllciB1bnRpbCBhIHN0YXJ0IG9mIGV4cG9zdXJlIHRpbWVzdGFtcCAob3IgaW5wdXQgaW1hZ2UncworICAgICAqIHN0YXJ0IG9mIGV4cG9zdXJlIHRpbWVzdGFtcCBmb3IgYSByZXByb2Nlc3MgcmVxdWVzdCkgaGFzIGJlZW4gcmVjZWl2ZWQKKyAgICAgKiB2aWEgYSBTSFVUVEVSIG5vdGlmeSgpIGNhbGwuIEl0IGlzIGhpZ2hseSByZWNvbW1lbmRlZCB0byBkaXNwYXRjaCB0aGlzCisgICAgICogY2FsbCBhcyBlYXJseSBhcyBwb3NzaWJsZS4KKyAgICAgKgorICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqIFBlcmZvcm1hbmNlIHJlcXVpcmVtZW50czoKKyAgICAgKgorICAgICAqIFRoaXMgaXMgYSBub24tYmxvY2tpbmcgY2FsbC4gVGhlIGZyYW1ld29yayBtdXN0IGhhbmRsZSBlYWNoIG1lc3NhZ2UgaW4gNW1zLgorICAgICAqLworICAgIG5vdGlmeSh2ZWM8Tm90aWZ5TXNnPiBtc2dzKTsKKworfTsKZGlmZiAtLWdpdCBhL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2VTZXNzaW9uLmhhbCBiL2NhbWVyYS9kZXZpY2UvMy4yL0lDYW1lcmFEZXZpY2VTZXNzaW9uLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzdhM2NjCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZVNlc3Npb24uaGFsCkBAIC0wLDAgKzEsNDA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXM7CisKKy8qKgorICogQ2FtZXJhIGRldmljZSBhY3RpdmUgc2Vzc2lvbiBpbnRlcmZhY2UuCisgKgorICogT2J0YWluZWQgdmlhIElDYW1lcmFEZXZpY2U6Om9wZW4oKSwgdGhpcyBpbnRlcmZhY2UgY29udGFpbnMgdGhlIG1ldGhvZHMgdG8KKyAqIGNvbmZpZ3VyZSBhbmQgcmVxdWVzdCBjYXB0dXJlcyBmcm9tIGFuIGFjdGl2ZSBjYW1lcmEgZGV2aWNlLgorICoKKyAqLworaW50ZXJmYWNlIElDYW1lcmFEZXZpY2VTZXNzaW9uIHsKKworICAgIC8qKgorICAgICAqIGNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3M6CisgICAgICoKKyAgICAgKiBDcmVhdGUgY2FwdHVyZSBzZXR0aW5ncyBmb3Igc3RhbmRhcmQgY2FtZXJhIHVzZSBjYXNlcy4KKyAgICAgKgorICAgICAqIFRoZSBkZXZpY2UgbXVzdCByZXR1cm4gYSBzZXR0aW5ncyBidWZmZXIgdGhhdCBpcyBjb25maWd1cmVkIHRvIG1lZXQgdGhlCisgICAgICogcmVxdWVzdGVkIHVzZSBjYXNlLCB3aGljaCBtdXN0IGJlIG9uZSBvZiB0aGUgQ0FNRVJBM19URU1QTEFURV8qCisgICAgICogZW51bXMuIEFsbCByZXF1ZXN0IGNvbnRyb2wgZmllbGRzIG11c3QgYmUgaW5jbHVkZWQuCisgICAgICoKKyAgICAgKiBQZXJmb3JtYW5jZSByZXF1aXJlbWVudHM6CisgICAgICoKKyAgICAgKiBUaGlzIG11c3QgYmUgYSBub24tYmxvY2tpbmcgY2FsbC4gVGhlIEhBTCBzaG91bGQgcmV0dXJuIGZyb20gdGhpcyBjYWxsCisgICAgICogaW4gMW1zLCBhbmQgbXVzdCByZXR1cm4gZnJvbSB0aGlzIGNhbGwgaW4gNW1zLgorICAgICAqCisgICAgICogUmV0dXJuIHZhbHVlczoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2Vzc2Z1bCBjb25zdHJ1Y3Rpb24gb2YgZGVmYXVsdCBzZXR0aW5ncy4KKyAgICAgKiAgICAgSU5URVJOQUxfRVJST1I6CisgICAgICogICAgICAgICBBbiB1bmV4cGVjdGVkIGludGVybmFsIGVycm9yIG9jY3VycmVkLCBhbmQgdGhlIGRlZmF1bHQgc2V0dGluZ3MKKyAgICAgKiAgICAgICAgIGFyZSBub3QgYXZhaWxhYmxlLgorICAgICAqICAgICBJTExFR0FMX0FSR1VNRU5UOgorICAgICAqICAgICAgICAgVGhlIGNhbWVyYSBIQUwgZG9lcyBub3Qgc3VwcG9ydCB0aGUgaW5wdXQgdGVtcGxhdGUgdHlwZQorICAgICAqICAgICBDQU1FUkFfRElTQ09OTkVDVEVEOgorICAgICAqICAgICAgICAgQW4gZXh0ZXJuYWwgY2FtZXJhIGRldmljZSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQsIGFuZCBpcyBubyBsb25nZXIKKyAgICAgKiAgICAgICAgIGF2YWlsYWJsZS4gVGhpcyBjYW1lcmEgZGV2aWNlIGludGVyZmFjZSBpcyBub3cgc3RhbGUsIGFuZCBhIG5ldworICAgICAqICAgICAgICAgaW5zdGFuY2UgbXVzdCBiZSBhY3F1aXJlZCBpZiB0aGUgZGV2aWNlIGlzIHJlY29ubmVjdGVkLiBBbGwKKyAgICAgKiAgICAgICAgIHN1YnNlcXVlbnQgY2FsbHMgb24gdGhpcyBpbnRlcmZhY2UgbXVzdCByZXR1cm4KKyAgICAgKiAgICAgICAgIENBTUVSQV9ESVNDT05ORUNURUQuCisgICAgICogQHJldHVybiB0ZW1wbGF0ZSBUaGUgZGVmYXVsdCBjYXB0dXJlIHJlcXVlc3Qgc2V0dGluZ3MgZm9yIHRoZSByZXF1ZXN0ZWQKKyAgICAgKiAgICAgdXNlIGNhc2UsIG9yIGFuIGVtcHR5IG1ldGFkYXRhIHN0cnVjdHVyZSBpZiBzdGF0dXMgaXMgbm90IE9LLgorICAgICAqCisgICAgICovCisgICAgY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5ncyhSZXF1ZXN0VGVtcGxhdGUgdHlwZSkgZ2VuZXJhdGVzCisgICAgICAgICAgICAoU3RhdHVzIHN0YXR1cywgQ2FtZXJhTWV0YWRhdGEgcmVxdWVzdFRlbXBsYXRlKTsKKworICAgIC8qKgorICAgICAqIGNvbmZpZ3VyZVN0cmVhbXM6CisgICAgICoKKyAgICAgKiBSZXNldCB0aGUgSEFMIGNhbWVyYSBkZXZpY2UgcHJvY2Vzc2luZyBwaXBlbGluZSBhbmQgc2V0IHVwIG5ldyBpbnB1dCBhbmQKKyAgICAgKiBvdXRwdXQgc3RyZWFtcy4gVGhpcyBjYWxsIHJlcGxhY2VzIGFueSBleGlzdGluZyBzdHJlYW0gY29uZmlndXJhdGlvbiB3aXRoCisgICAgICogdGhlIHN0cmVhbXMgZGVmaW5lZCBpbiB0aGUgc3RyZWFtTGlzdC4gVGhpcyBtZXRob2QgbXVzdCBiZSBjYWxsZWQgYXQKKyAgICAgKiBsZWFzdCBvbmNlIGJlZm9yZSBhIHJlcXVlc3QgaXMgc3VibWl0dGVkIHdpdGggcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCkuCisgICAgICoKKyAgICAgKiBUaGUgc3RyZWFtTGlzdCBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIG91dHB1dC1jYXBhYmxlIHN0cmVhbSwgYW5kIG1heQorICAgICAqIG5vdCBjb250YWluIG1vcmUgdGhhbiBvbmUgaW5wdXQtY2FwYWJsZSBzdHJlYW0uCisgICAgICoKKyAgICAgKiBUaGUgc3RyZWFtTGlzdCBtYXkgY29udGFpbiBzdHJlYW1zIHRoYXQgYXJlIGFsc28gaW4gdGhlIGN1cnJlbnRseS1hY3RpdmUKKyAgICAgKiBzZXQgb2Ygc3RyZWFtcyAoZnJvbSB0aGUgcHJldmlvdXMgY2FsbCB0byBjb25maWd1cmVTdHJlYW1zKCkpLiBUaGVzZQorICAgICAqIHN0cmVhbXMgbXVzdCBhbHJlYWR5IGhhdmUgdmFsaWQgdmFsdWVzIGZvciB1c2FnZSwgbWF4QnVmZmVycywgYW5kIHRoZQorICAgICAqIHByaXZhdGUgcG9pbnRlci4KKyAgICAgKgorICAgICAqIElmIHRoZSBIQUwgbmVlZHMgdG8gY2hhbmdlIHRoZSBzdHJlYW0gY29uZmlndXJhdGlvbiBmb3IgYW4gZXhpc3RpbmcKKyAgICAgKiBzdHJlYW0gZHVlIHRvIHRoZSBuZXcgY29uZmlndXJhdGlvbiwgaXQgbWF5IHJld3JpdGUgdGhlIHZhbHVlcyBvZiB1c2FnZQorICAgICAqIGFuZC9vciBtYXhCdWZmZXJzIGR1cmluZyB0aGUgY29uZmlndXJlIGNhbGwuCisgICAgICoKKyAgICAgKiBUaGUgZnJhbWV3b3JrIG11c3QgZGV0ZWN0IHN1Y2ggYSBjaGFuZ2UsIGFuZCBtYXkgdGhlbiByZWFsbG9jYXRlIHRoZQorICAgICAqIHN0cmVhbSBidWZmZXJzIGJlZm9yZSB1c2luZyBidWZmZXJzIGZyb20gdGhhdCBzdHJlYW0gaW4gYSByZXF1ZXN0LgorICAgICAqCisgICAgICogSWYgYSBjdXJyZW50bHktYWN0aXZlIHN0cmVhbSBpcyBub3QgaW5jbHVkZWQgaW4gc3RyZWFtTGlzdCwgdGhlIEhBTCBtYXkKKyAgICAgKiBzYWZlbHkgcmVtb3ZlIGFueSByZWZlcmVuY2VzIHRvIHRoYXQgc3RyZWFtLiBJdCBtdXN0IG5vdCBiZSByZXVzZWQgaW4gYQorICAgICAqIGxhdGVyIGNvbmZpZ3VyZVN0cmVhbXMoKSBjYWxsIGJ5IHRoZSBmcmFtZXdvcmssIGFuZCBhbGwgdGhlIGdyYWxsb2MKKyAgICAgKiBidWZmZXJzIGZvciBpdCBtdXN0IGJlIGZyZWVkIGFmdGVyIHRoZSBjb25maWd1cmVTdHJlYW1zKCkgY2FsbCByZXR1cm5zLgorICAgICAqCisgICAgICogSWYgdGhlIHN0cmVhbSBpcyBuZXcsIHRoZSBtYXhCdWZmZXIgZmllbGQgb2YgdGhlIHN0cmVhbSBzdHJ1Y3R1cmUgbXVzdCBiZQorICAgICAqIHNldCB0byAwLiBUaGUgdXNhZ2UgbXVzdCBiZSBzZXQgdG8gdGhlIGNvbnN1bWVyIHVzYWdlIGZsYWdzLiBUaGUgSEFMCisgICAgICogZGV2aWNlIG11c3Qgc2V0IHRoZXNlIGZpZWxkcyBpbiB0aGUgY29uZmlndXJlU3RyZWFtcygpIHJldHVybiB2YWx1ZXMuCisgICAgICogVGhlc2UgZmllbGRzIGFyZSB0aGVuIHVzZWQgYnkgdGhlIGZyYW1ld29yayBhbmQgdGhlIHBsYXRmb3JtIGdyYWxsb2MKKyAgICAgKiBtb2R1bGUgdG8gYWxsb2NhdGUgdGhlIGdyYWxsb2MgYnVmZmVycyBmb3IgZWFjaCBzdHJlYW0uCisgICAgICoKKyAgICAgKiBOZXdseSBhbGxvY2F0ZWQgYnVmZmVycyBtYXkgYmUgaW5jbHVkZWQgaW4gYSBjYXB0dXJlIHJlcXVlc3QgYXQgYW55IHRpbWUKKyAgICAgKiBieSB0aGUgZnJhbWV3b3JrLiBPbmNlIGEgZ3JhbGxvYyBidWZmZXIgaXMgcmV0dXJuZWQgdG8gdGhlIGZyYW1ld29yaworICAgICAqIHdpdGggcHJvY2Vzc0NhcHR1cmVSZXN1bHQgKGFuZCBpdHMgcmVzcGVjdGl2ZSByZWxlYXNlRmVuY2UgaGFzIGJlZW4KKyAgICAgKiBzaWduYWxlZCkgdGhlIGZyYW1ld29yayBtYXkgZnJlZSBvciByZXVzZSBpdCBhdCBhbnkgdGltZS4KKyAgICAgKgorICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqCisgICAgICogUHJlY29uZGl0aW9uczoKKyAgICAgKgorICAgICAqIFRoZSBmcmFtZXdvcmsgbXVzdCBvbmx5IGNhbGwgdGhpcyBtZXRob2Qgd2hlbiBubyBjYXB0dXJlcyBhcmUgYmVpbmcKKyAgICAgKiBwcm9jZXNzZWQuIFRoYXQgaXMsIGFsbCByZXN1bHRzIGhhdmUgYmVlbiByZXR1cm5lZCB0byB0aGUgZnJhbWV3b3JrLCBhbmQKKyAgICAgKiBhbGwgaW4tZmxpZ2h0IGlucHV0IGFuZCBvdXRwdXQgYnVmZmVycyBoYXZlIGJlZW4gcmV0dXJuZWQgYW5kIHRoZWlyCisgICAgICogcmVsZWFzZSBzeW5jIGZlbmNlcyBoYXZlIGJlZW4gc2lnbmFsZWQgYnkgdGhlIEhBTC4gVGhlIGZyYW1ld29yayBtdXN0IG5vdAorICAgICAqIHN1Ym1pdCBuZXcgcmVxdWVzdHMgZm9yIGNhcHR1cmUgd2hpbGUgdGhlIGNvbmZpZ3VyZVN0cmVhbXMoKSBjYWxsIGlzCisgICAgICogdW5kZXJ3YXkuCisgICAgICoKKyAgICAgKiBQb3N0Y29uZGl0aW9uczoKKyAgICAgKgorICAgICAqIFRoZSBIQUwgZGV2aWNlIG11c3QgY29uZmlndXJlIGl0c2VsZiB0byBwcm92aWRlIG1heGltdW0gcG9zc2libGUgb3V0cHV0CisgICAgICogZnJhbWUgcmF0ZSBnaXZlbiB0aGUgc2l6ZXMgYW5kIGZvcm1hdHMgb2YgdGhlIG91dHB1dCBzdHJlYW1zLCBhcworICAgICAqIGRvY3VtZW50ZWQgaW4gdGhlIGNhbWVyYSBkZXZpY2UncyBzdGF0aWMgbWV0YWRhdGEuCisgICAgICoKKyAgICAgKiBQZXJmb3JtYW5jZSByZXF1aXJlbWVudHM6CisgICAgICoKKyAgICAgKiBUaGlzIGNhbGwgaXMgZXhwZWN0ZWQgdG8gYmUgaGVhdnl3ZWlnaHQgYW5kIHBvc3NpYmx5IHRha2Ugc2V2ZXJhbCBodW5kcmVkCisgICAgICogbWlsbGlzZWNvbmRzIHRvIGNvbXBsZXRlLCBzaW5jZSBpdCBtYXkgcmVxdWlyZSByZXNldHRpbmcgYW5kCisgICAgICogcmVjb25maWd1cmluZyB0aGUgaW1hZ2Ugc2Vuc29yIGFuZCB0aGUgY2FtZXJhIHByb2Nlc3NpbmcgcGlwZWxpbmUuCisgICAgICogTmV2ZXJ0aGVsZXNzLCB0aGUgSEFMIGRldmljZSBzaG91bGQgYXR0ZW1wdCB0byBtaW5pbWl6ZSB0aGUKKyAgICAgKiByZWNvbmZpZ3VyYXRpb24gZGVsYXkgdG8gbWluaW1pemUgdGhlIHVzZXItdmlzaWJsZSBwYXVzZXMgZHVyaW5nCisgICAgICogYXBwbGljYXRpb24gb3BlcmF0aW9uYWwgbW9kZSBjaGFuZ2VzIChzdWNoIGFzIHN3aXRjaGluZyBmcm9tIHN0aWxsCisgICAgICogY2FwdHVyZSB0byB2aWRlbyByZWNvcmRpbmcpLgorICAgICAqCisgICAgICogVGhlIEhBTCBzaG91bGQgcmV0dXJuIGZyb20gdGhpcyBjYWxsIGluIDUwMG1zLCBhbmQgbXVzdCByZXR1cm4gZnJvbSB0aGlzCisgICAgICogY2FsbCBpbiAxMDAwbXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIFN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgICBPbiBzdWNjZXNzZnVsIHN0cmVhbSBjb25maWd1cmF0aW9uLgorICAgICAqICAgICBJTlRFUk5BTF9FUlJPUjoKKyAgICAgKiAgICAgICAgIElmIHRoZXJlIGhhcyBiZWVuIGEgZmF0YWwgZXJyb3IgYW5kIHRoZSBkZXZpY2UgaXMgbm8gbG9uZ2VyCisgICAgICogICAgICAgICBvcGVyYXRpb25hbC4gT25seSBjbG9zZSgpIGNhbiBiZSBjYWxsZWQgc3VjY2Vzc2Z1bGx5IGJ5IHRoZQorICAgICAqICAgICAgICAgZnJhbWV3b3JrIGFmdGVyIHRoaXMgZXJyb3IgaXMgcmV0dXJuZWQuCisgICAgICogICAgIElMTEVHQUxfQVJHVU1FTlQ6CisgICAgICogICAgICAgICBJZiB0aGUgcmVxdWVzdGVkIHN0cmVhbSBjb25maWd1cmF0aW9uIGlzIGludmFsaWQuIFNvbWUgZXhhbXBsZXMKKyAgICAgKiAgICAgICAgIG9mIGludmFsaWQgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGluY2x1ZGU6CisgICAgICogICAgICAgICAgIC0gSW5jbHVkaW5nIG1vcmUgdGhhbiAxIElOUFVUIHN0cmVhbQorICAgICAqICAgICAgICAgICAtIE5vdCBpbmNsdWRpbmcgYW55IE9VVFBVVCBzdHJlYW1zCisgICAgICogICAgICAgICAgIC0gSW5jbHVkaW5nIHN0cmVhbXMgd2l0aCB1bnN1cHBvcnRlZCBmb3JtYXRzLCBvciBhbiB1bnN1cHBvcnRlZAorICAgICAqICAgICAgICAgICAgIHNpemUgZm9yIHRoYXQgZm9ybWF0LgorICAgICAqICAgICAgICAgICAtIEluY2x1ZGluZyB0b28gbWFueSBvdXRwdXQgc3RyZWFtcyBvZiBhIGNlcnRhaW4gZm9ybWF0LgorICAgICAqICAgICAgICAgICAtIFVuc3VwcG9ydGVkIHJvdGF0aW9uIGNvbmZpZ3VyYXRpb24KKyAgICAgKiAgICAgICAgICAgLSBTdHJlYW0gc2l6ZXMvZm9ybWF0cyBkb24ndCBzYXRpc2Z5IHRoZQorICAgICAqICAgICAgICAgICAgIGNhbWVyYTNfc3RyZWFtX2NvbmZpZ3VyYXRpb25fdC0+b3BlcmF0aW9uX21vZGUgcmVxdWlyZW1lbnRzCisgICAgICogICAgICAgICAgICAgZm9yIG5vbi1OT1JNQUwgbW9kZSwgb3IgdGhlIHJlcXVlc3RlZCBvcGVyYXRpb25fbW9kZSBpcyBub3QKKyAgICAgKiAgICAgICAgICAgICBzdXBwb3J0ZWQgYnkgdGhlIEhBTC4KKyAgICAgKiAgICAgICAgICAgLSBVbnN1cHBvcnRlZCB1c2FnZSBmbGFnCisgICAgICogICAgICAgICBUaGUgY2FtZXJhIHNlcnZpY2UgY2Fubm90IGZpbHRlciBvdXQgYWxsIHBvc3NpYmxlIGlsbGVnYWwgc3RyZWFtCisgICAgICogICAgICAgICBjb25maWd1cmF0aW9ucywgc2luY2Ugc29tZSBkZXZpY2VzIG1heSBzdXBwb3J0IG1vcmUgc2ltdWx0YW5lb3VzCisgICAgICogICAgICAgICBzdHJlYW1zIG9yIGxhcmdlciBzdHJlYW0gcmVzb2x1dGlvbnMgdGhhbiB0aGUgbWluaW11bSByZXF1aXJlZAorICAgICAqICAgICAgICAgZm9yIGEgZ2l2ZW4gY2FtZXJhIGRldmljZSBoYXJkd2FyZSBsZXZlbC4gVGhlIEhBTCBtdXN0IHJldHVybiBhbgorICAgICAqICAgICAgICAgSUxMRUdBTF9BUkdVTUVOVCBmb3IgYW55IHVuc3VwcG9ydGVkIHN0cmVhbSBzZXQsIGFuZCB0aGVuIGJlCisgICAgICogICAgICAgICByZWFkeSB0byBhY2NlcHQgYSBmdXR1cmUgdmFsaWQgc3RyZWFtIGNvbmZpZ3VyYXRpb24gaW4gYSBsYXRlcgorICAgICAqICAgICAgICAgY29uZmlndXJlU3RyZWFtcyBjYWxsLgorICAgICAqIEByZXR1cm4gZmluYWxDb25maWd1cmF0aW9uIFRoZSBzdHJlYW0gcGFyYW1ldGVycyBkZXNpcmVkIGJ5IHRoZSBIQUwgZm9yCisgICAgICogICAgIGVhY2ggc3RyZWFtLCBpbmNsdWRpbmcgbWF4aW11bSBidWZmZXJzLCB0aGUgdXNhZ2UgZmxhZ3MsIGFuZCB0aGUKKyAgICAgKiAgICAgb3ZlcnJpZGUgZm9ybWF0LgorICAgICAqCisgICAgICovCisgICAgY29uZmlndXJlU3RyZWFtcyhTdHJlYW1Db25maWd1cmF0aW9uIHJlcXVlc3RlZENvbmZpZ3VyYXRpb24pCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsQ29uZmlndXJhdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBwcm9jZXNzQ2FwdHVyZVJlcXVlc3Q6CisgICAgICoKKyAgICAgKiBTZW5kIGEgbGlzdCBvZiBjYXB0dXJlIHJlcXVlc3RzIHRvIHRoZSBIQUwuIFRoZSBIQUwgbXVzdCBub3QgcmV0dXJuIGZyb20KKyAgICAgKiB0aGlzIGNhbGwgdW50aWwgaXQgaXMgcmVhZHkgdG8gYWNjZXB0IHRoZSBuZXh0IHNldCBvZiByZXF1ZXN0cyB0bworICAgICAqIHByb2Nlc3MuIE9ubHkgb25lIGNhbGwgdG8gcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCkgbXVzdCBiZSBtYWRlIGF0IGEgdGltZQorICAgICAqIGJ5IHRoZSBmcmFtZXdvcmssIGFuZCB0aGUgY2FsbHMgbXVzdCBhbGwgYmUgZnJvbSB0aGUgc2FtZSB0aHJlYWQuIFRoZQorICAgICAqIG5leHQgY2FsbCB0byBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoKSBtdXN0IGJlIG1hZGUgYXMgc29vbiBhcyBhIG5ldworICAgICAqIHJlcXVlc3QgYW5kIGl0cyBhc3NvY2lhdGVkIGJ1ZmZlcnMgYXJlIGF2YWlsYWJsZS4gSW4gYSBub3JtYWwgcHJldmlldworICAgICAqIHNjZW5hcmlvLCB0aGlzIG1lYW5zIHRoZSBmdW5jdGlvbiBpcyBnZW5lcmFsbHkgY2FsbGVkIGFnYWluIGJ5IHRoZQorICAgICAqIGZyYW1ld29yayBhbG1vc3QgaW5zdGFudGx5LiBJZiBtb3JlIHRoYW4gb25lIHJlcXVlc3QgaXMgcHJvdmlkZWQgYnkgdGhlCisgICAgICogY2xpZW50LCB0aGUgSEFMIG11c3QgcHJvY2VzcyB0aGUgcmVxdWVzdHMgaW4gb3JkZXIgb2YgbG93ZXN0IGluZGV4IHRvCisgICAgICogaGlnaGVzdCBpbmRleC4KKyAgICAgKgorICAgICAqIFRoZSBjYWNoZXNUb1JlbW92ZSBhcmd1bWVudCBjb250YWlucyBhIGxpc3Qgb2YgYnVmZmVyIGNhY2hlcyAoc2VlCisgICAgICogU3RyZWFtQnVmZmVyIGRvY3VtZW50IGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGJ1ZmZlciBjYWNoZSkgdG8gYmUgcmVtb3ZlZAorICAgICAqIGJ5IGNhbWVyYSBIQUwuIENhbWVyYSBIQUwgbXVzdCByZW1vdmUgdGhlc2UgY2FjaGUgZW50cmllcyB3aGV0aGVyIG9yIG5vdAorICAgICAqIHRoaXMgbWV0aG9kIHJldHVybnMgT0suCisgICAgICoKKyAgICAgKiBUaGUgYWN0dWFsIHJlcXVlc3QgcHJvY2Vzc2luZyBpcyBhc3luY2hyb25vdXMsIHdpdGggdGhlIHJlc3VsdHMgb2YKKyAgICAgKiBjYXB0dXJlIGJlaW5nIHJldHVybmVkIGJ5IHRoZSBIQUwgdGhyb3VnaCB0aGUgcHJvY2Vzc0NhcHR1cmVSZXN1bHQoKQorICAgICAqIGNhbGwuIFRoaXMgY2FsbCByZXF1aXJlcyB0aGUgcmVzdWx0IG1ldGFkYXRhIHRvIGJlIGF2YWlsYWJsZSwgYnV0IG91dHB1dAorICAgICAqIGJ1ZmZlcnMgbWF5IHNpbXBseSBwcm92aWRlIHN5bmMgZmVuY2VzIHRvIHdhaXQgb24uIE11bHRpcGxlIHJlcXVlc3RzIGFyZQorICAgICAqIGV4cGVjdGVkIHRvIGJlIGluIGZsaWdodCBhdCBvbmNlLCB0byBtYWludGFpbiBmdWxsIG91dHB1dCBmcmFtZSByYXRlLgorICAgICAqCisgICAgICogVGhlIGZyYW1ld29yayByZXRhaW5zIG93bmVyc2hpcCBvZiB0aGUgcmVxdWVzdCBzdHJ1Y3R1cmUuIEl0IGlzIG9ubHkKKyAgICAgKiBndWFyYW50ZWVkIHRvIGJlIHZhbGlkIGR1cmluZyB0aGlzIGNhbGwuIFRoZSBIQUwgZGV2aWNlIG11c3QgbWFrZSBjb3BpZXMKKyAgICAgKiBvZiB0aGUgaW5mb3JtYXRpb24gaXQgbmVlZHMgdG8gcmV0YWluIGZvciB0aGUgY2FwdHVyZSBwcm9jZXNzaW5nLiBUaGUgSEFMCisgICAgICogaXMgcmVzcG9uc2libGUgZm9yIHdhaXRpbmcgb24gYW5kIGNsb3NpbmcgdGhlIGJ1ZmZlcnMnIGZlbmNlcyBhbmQKKyAgICAgKiByZXR1cm5pbmcgdGhlIGJ1ZmZlciBoYW5kbGVzIHRvIHRoZSBmcmFtZXdvcmsuCisgICAgICoKKyAgICAgKiBUaGUgSEFMIG11c3Qgd3JpdGUgdGhlIGZpbGUgZGVzY3JpcHRvciBmb3IgdGhlIGlucHV0IGJ1ZmZlcidzIHJlbGVhc2UKKyAgICAgKiBzeW5jIGZlbmNlIGludG8gaW5wdXRfYnVmZmVyLT5yZWxlYXNlX2ZlbmNlLCBpZiBpbnB1dF9idWZmZXIgaXMgbm90CisgICAgICogdmFsaWQuIElmIHRoZSBIQUwgcmV0dXJucyAtMSBmb3IgdGhlIGlucHV0IGJ1ZmZlciByZWxlYXNlIHN5bmMgZmVuY2UsIHRoZQorICAgICAqIGZyYW1ld29yayBpcyBmcmVlIHRvIGltbWVkaWF0ZWx5IHJldXNlIHRoZSBpbnB1dCBidWZmZXIuIE90aGVyd2lzZSwgdGhlCisgICAgICogZnJhbWV3b3JrIG11c3Qgd2FpdCBvbiB0aGUgc3luYyBmZW5jZSBiZWZvcmUgcmVmaWxsaW5nIGFuZCByZXVzaW5nIHRoZQorICAgICAqIGlucHV0IGJ1ZmZlci4KKyAgICAgKgorICAgICAqIFRoZSBpbnB1dC9vdXRwdXQgYnVmZmVycyBwcm92aWRlZCBieSB0aGUgZnJhbWV3b3JrIGluIGVhY2ggcmVxdWVzdAorICAgICAqIG1heSBiZSBicmFuZCBuZXcgKGhhdmluZyBuZXZlciBiZWZvcmUgc2VlbiBieSB0aGUgSEFMKS4KKyAgICAgKgorICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqIFBlcmZvcm1hbmNlIGNvbnNpZGVyYXRpb25zOgorICAgICAqCisgICAgICogSGFuZGxpbmcgYSBuZXcgYnVmZmVyIHNob3VsZCBiZSBleHRyZW1lbHkgbGlnaHR3ZWlnaHQgYW5kIHRoZXJlIG11c3QgYmUKKyAgICAgKiBubyBmcmFtZSByYXRlIGRlZ3JhZGF0aW9uIG9yIGZyYW1lIGppdHRlciBpbnRyb2R1Y2VkLgorICAgICAqCisgICAgICogVGhpcyBjYWxsIG11c3QgcmV0dXJuIGZhc3QgZW5vdWdoIHRvIGVuc3VyZSB0aGF0IHRoZSByZXF1ZXN0ZWQgZnJhbWUKKyAgICAgKiByYXRlIGNhbiBiZSBzdXN0YWluZWQsIGVzcGVjaWFsbHkgZm9yIHN0cmVhbWluZyBjYXNlcyAocG9zdC1wcm9jZXNzaW5nCisgICAgICogcXVhbGl0eSBzZXR0aW5ncyBzZXQgdG8gRkFTVCkuIFRoZSBIQUwgc2hvdWxkIHJldHVybiB0aGlzIGNhbGwgaW4gMQorICAgICAqIGZyYW1lIGludGVydmFsLCBhbmQgbXVzdCByZXR1cm4gZnJvbSB0aGlzIGNhbGwgaW4gNCBmcmFtZSBpbnRlcnZhbHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgY29kZSBmb3IgdGhlIG9wZXJhdGlvbiwgb25lIG9mOgorICAgICAqICAgICBPSzoKKyAgICAgKiAgICAgICAgIE9uIGEgc3VjY2Vzc2Z1bCBzdGFydCB0byBwcm9jZXNzaW5nIHRoZSBjYXB0dXJlIHJlcXVlc3QKKyAgICAgKiAgICAgSUxMRUdBTF9BUkdVTUVOVDoKKyAgICAgKiAgICAgICAgIElmIHRoZSBpbnB1dCBpcyBtYWxmb3JtZWQgKHRoZSBzZXR0aW5ncyBhcmUgZW1wdHkgd2hlbiBub3QKKyAgICAgKiAgICAgICAgIGFsbG93ZWQsIHRoZXJlIGFyZSAwIG91dHB1dCBidWZmZXJzLCBldGMpIGFuZCBjYXB0dXJlIHByb2Nlc3NpbmcKKyAgICAgKiAgICAgICAgIGNhbm5vdCBzdGFydC4gRmFpbHVyZXMgZHVyaW5nIHJlcXVlc3QgcHJvY2Vzc2luZyBtdXN0IGJlCisgICAgICogICAgICAgICBoYW5kbGVkIGJ5IGNhbGxpbmcgSUNhbWVyYURldmljZUNhbGxiYWNrOjpub3RpZnkoKS4gSW4gY2FzZSBvZgorICAgICAqICAgICAgICAgdGhpcyBlcnJvciwgdGhlIGZyYW1ld29yayByZXRhaW5zIHJlc3BvbnNpYmlsaXR5IGZvciB0aGUKKyAgICAgKiAgICAgICAgIHN0cmVhbSBidWZmZXJzJyBmZW5jZXMgYW5kIHRoZSBidWZmZXIgaGFuZGxlczsgdGhlIEhBTCBtdXN0IG5vdAorICAgICAqICAgICAgICAgY2xvc2UgdGhlIGZlbmNlcyBvciByZXR1cm4gdGhlc2UgYnVmZmVycyB3aXRoCisgICAgICogICAgICAgICBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s6OnByb2Nlc3NDYXB0dXJlUmVzdWx0KCkuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgSWYgdGhlIGNhbWVyYSBkZXZpY2UgaGFzIGVuY291bnRlcmVkIGEgc2VyaW91cyBlcnJvci4gQWZ0ZXIgdGhpcworICAgICAqICAgICAgICAgZXJyb3IgaXMgcmV0dXJuZWQsIG9ubHkgdGhlIGNsb3NlKCkgbWV0aG9kIGNhbiBiZSBzdWNjZXNzZnVsbHkKKyAgICAgKiAgICAgICAgIGNhbGxlZCBieSB0aGUgZnJhbWV3b3JrLgorICAgICAqIEByZXR1cm4gbnVtUmVxdWVzdFByb2Nlc3NlZCBOdW1iZXIgb2YgcmVxdWVzdHMgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCBieQorICAgICAqICAgICBjYW1lcmEgSEFMLiBXaGVuIHN0YXR1cyBpcyBPSywgdGhpcyBtdXN0IGJlIGVxdWFsIHRvIHRoZSBzaXplIG9mCisgICAgICogICAgIHJlcXVlc3RzLiBXaGVuIHRoZSBjYWxsIGZhaWxzLCB0aGlzIG51bWJlciBpcyB0aGUgbnVtYmVyIG9mIHJlcXVlc3RzCisgICAgICogICAgIHRoYXQgSEFMIHByb2Nlc3NlZCBzdWNjZXNzZnVsbHkgYmVmb3JlIEhBTCBydW5zIGludG8gYW4gZXJyb3IuCisgICAgICoKKyAgICAgKi8KKyAgICBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QodmVjPENhcHR1cmVSZXF1ZXN0PiByZXF1ZXN0cywKKyAgICAgICAgICAgIHZlYzxCdWZmZXJDYWNoZT4gY2FjaGVzVG9SZW1vdmUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHVpbnQzMl90IG51bVJlcXVlc3RQcm9jZXNzZWQpOworCisgICAgLyoqCisgICAgICogZ2V0Q2FwdHVyZVJlcXVlc3RNZXRhZGF0YVF1ZXVlOgorICAgICAqCisgICAgICogUmV0cmlldmVzIHRoZSBxdWV1ZSB1c2VkIGFsb25nIHdpdGggcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0LiBJZgorICAgICAqIGNsaWVudCBkZWNpZGVzIHRvIHVzZSBmYXN0IG1lc3NhZ2UgcXVldWUgdG8gcGFzcyByZXF1ZXN0IG1ldGFkYXRhLAorICAgICAqIGl0IG11c3Q6CisgICAgICogLSBDYWxsIGdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZSB0byByZXRyaWV2ZSB0aGUgZmFzdCBtZXNzYWdlIHF1ZXVlOworICAgICAqIC0gSW4gZWFjaCBvZiB0aGUgcmVxdWVzdHMgc2VudCBpbiBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QsIHNldAorICAgICAqICAgZm1xU2V0dGluZ3NTaXplIGZpZWxkIG9mIENhcHR1cmVSZXF1ZXN0IHRvIGJlIHRoZSBzaXplIHRvIHJlYWQgZnJvbSB0aGUKKyAgICAgKiAgIGZhc3QgbWVzc2FnZSBxdWV1ZTsgbGVhdmUgc2V0dGluZ3MgZmllbGQgb2YgQ2FwdHVyZVJlcXVlc3QgZW1wdHkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHF1ZXVlIHRoZSBxdWV1ZSB0aGF0IGNsaWVudCB3cml0ZXMgcmVxdWVzdCBtZXRhZGF0YSB0by4KKyAgICAgKi8KKyAgICBnZXRDYXB0dXJlUmVxdWVzdE1ldGFkYXRhUXVldWUoKSBnZW5lcmF0ZXMgKGZtcV9zeW5jPHVpbnQ4X3Q+IHF1ZXVlKTsKKworICAgIC8qKgorICAgICAqIGdldENhcHR1cmVSZXN1bHRNZXRhZGF0YVF1ZXVlOgorICAgICAqCisgICAgICogUmV0cmlldmVzIHRoZSBxdWV1ZSB1c2VkIGFsb25nIHdpdGgKKyAgICAgKiBJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sucHJvY2Vzc0NhcHR1cmVSZXN1bHQuCisgICAgICoKKyAgICAgKiBDbGllbnRzIHRvIElDYW1lcmFEZXZpY2VTZXNzaW9uIG11c3Q6CisgICAgICogLSBDYWxsIGdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZSB0byByZXRyaWV2ZSB0aGUgZmFzdCBtZXNzYWdlIHF1ZXVlOworICAgICAqIC0gSW4gaW1wbGVtZW50YXRpb24gb2YgSUNhbWVyYURldmljZUNhbGxiYWNrLCB0ZXN0IHdoZXRoZXIKKyAgICAgKiAgIC5mbXFSZXN1bHRTaXplIGZpZWxkIGlzIHplcm8uCisgICAgICogICAgIC0gSWYgLmZtcVJlc3VsdFNpemUgIT0gMCwgcmVhZCByZXN1bHQgbWV0YWRhdGEgZnJvbSB0aGUgZmFzdCBtZXNzYWdlCisgICAgICogICAgICAgcXVldWU7CisgICAgICogICAgIC0gb3RoZXJ3aXNlLCByZWFkIHJlc3VsdCBtZXRhZGF0YSBpbiBDYXB0dXJlUmVzdWx0LnJlc3VsdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcXVldWUgdGhlIHF1ZXVlIHRoYXQgaW1wbGVtZW50YXRpb24gd3JpdGVzIHJlc3VsdCBtZXRhZGF0YSB0by4KKyAgICAgKi8KKyAgICBnZXRDYXB0dXJlUmVzdWx0TWV0YWRhdGFRdWV1ZSgpIGdlbmVyYXRlcyAoZm1xX3N5bmM8dWludDhfdD4gcXVldWUpOworCisgICAgLyoqCisgICAgICogZmx1c2g6CisgICAgICoKKyAgICAgKiBGbHVzaCBhbGwgY3VycmVudGx5IGluLXByb2Nlc3MgY2FwdHVyZXMgYW5kIGFsbCBidWZmZXJzIGluIHRoZSBwaXBlbGluZQorICAgICAqIG9uIHRoZSBnaXZlbiBkZXZpY2UuIEdlbmVyYWxseSwgdGhpcyBtZXRob2QgaXMgdXNlZCB0byBkdW1wIGFsbCBzdGF0ZSBhcworICAgICAqIHF1aWNrbHkgYXMgcG9zc2libGUgaW4gb3JkZXIgdG8gcHJlcGFyZSBmb3IgYSBjb25maWd1cmVfc3RyZWFtcygpIGNhbGwuCisgICAgICoKKyAgICAgKiBObyBidWZmZXJzIGFyZSByZXF1aXJlZCB0byBiZSBzdWNjZXNzZnVsbHkgcmV0dXJuZWQsIHNvIGV2ZXJ5IGJ1ZmZlcgorICAgICAqIGhlbGQgYXQgdGhlIHRpbWUgb2YgZmx1c2goKSAod2hldGhlciBzdWNjZXNzZnVsbHkgZmlsbGVkIG9yIG5vdCkgbWF5IGJlCisgICAgICogcmV0dXJuZWQgd2l0aCBDQU1FUkEzX0JVRkZFUl9TVEFUVVNfRVJST1IuIE5vdGUgdGhlIEhBTCBpcyBzdGlsbCBhbGxvd2VkCisgICAgICogdG8gcmV0dXJuIHZhbGlkIChDQU1FUkEzX0JVRkZFUl9TVEFUVVNfT0spIGJ1ZmZlcnMgZHVyaW5nIHRoaXMgY2FsbCwKKyAgICAgKiBwcm92aWRlZCB0aGV5IGFyZSBzdWNjZXNzZnVsbHkgZmlsbGVkLgorICAgICAqCisgICAgICogQWxsIHJlcXVlc3RzIGN1cnJlbnRseSBpbiB0aGUgSEFMIGFyZSBleHBlY3RlZCB0byBiZSByZXR1cm5lZCBhcyBzb29uIGFzCisgICAgICogcG9zc2libGUuIE5vdC1pbi1wcm9jZXNzIHJlcXVlc3RzIG11c3QgcmV0dXJuIGVycm9ycyBpbW1lZGlhdGVseS4gQW55CisgICAgICogaW50ZXJydXB0aWJsZSBoYXJkd2FyZSBibG9ja3MgbXVzdCBiZSBzdG9wcGVkLCBhbmQgYW55IHVuaW50ZXJydXB0aWJsZQorICAgICAqIGJsb2NrcyBtdXN0IGJlIHdhaXRlZCBvbi4KKyAgICAgKgorICAgICAqIGZsdXNoKCkgbWF5IGJlIGNhbGxlZCBjb25jdXJyZW50bHkgdG8gcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCksIHdpdGggdGhlCisgICAgICogZXhwZWN0YXRpb24gdGhhdCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QgcmV0dXJucyBxdWlja2x5IGFuZCB0aGUKKyAgICAgKiByZXF1ZXN0IHN1Ym1pdHRlZCBpbiB0aGF0IHByb2Nlc3NDYXB0dXJlUmVxdWVzdCBjYWxsIGlzIHRyZWF0ZWQgbGlrZQorICAgICAqIGFsbCBvdGhlciBpbi1mbGlnaHQgcmVxdWVzdHMuIER1ZSB0byBjb25jdXJyZW5jeSBpc3N1ZXMsIGl0IGlzIHBvc3NpYmxlCisgICAgICogdGhhdCBmcm9tIHRoZSBIQUwncyBwb2ludCBvZiB2aWV3LCBhIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCgpIGNhbGwgbWF5CisgICAgICogYmUgc3RhcnRlZCBhZnRlciBmbHVzaCBoYXMgYmVlbiBpbnZva2VkIGJ1dCBoYXMgbm90IHJldHVybmVkIHlldC4gSWYgc3VjaAorICAgICAqIGEgY2FsbCBoYXBwZW5zIGJlZm9yZSBmbHVzaCgpIHJldHVybnMsIHRoZSBIQUwgbXVzdCB0cmVhdCB0aGUgbmV3CisgICAgICogY2FwdHVyZSByZXF1ZXN0IGxpa2Ugb3RoZXIgaW4tZmxpZ2h0IHBlbmRpbmcgcmVxdWVzdHMgKHNlZSAjNCBiZWxvdykuCisgICAgICoKKyAgICAgKiBNb3JlIHNwZWNpZmljYWxseSwgdGhlIEhBTCBtdXN0IGZvbGxvdyBiZWxvdyByZXF1aXJlbWVudHMgZm9yIHZhcmlvdXMKKyAgICAgKiBjYXNlczoKKyAgICAgKgorICAgICAqIDEuIEZvciBjYXB0dXJlcyB0aGF0IGFyZSB0b28gbGF0ZSBmb3IgdGhlIEhBTCB0byBjYW5jZWwvc3RvcCwgYW5kIG11c3QgYmUKKyAgICAgKiAgICBjb21wbGV0ZWQgbm9ybWFsbHkgYnkgdGhlIEhBTDsgaS5lLiB0aGUgSEFMIGNhbiBzZW5kIHNodXR0ZXIvbm90aWZ5CisgICAgICogICAgYW5kIHByb2Nlc3NDYXB0dXJlUmVzdWx0IGFuZCBidWZmZXJzIGFzIG5vcm1hbC4KKyAgICAgKgorICAgICAqIDIuIEZvciBwZW5kaW5nIHJlcXVlc3RzIHRoYXQgaGF2ZSBub3QgZG9uZSBhbnkgcHJvY2Vzc2luZywgdGhlIEhBTCBtdXN0CisgICAgICogICAgY2FsbCBub3RpZnkgQ0FNRVJBM19NU0dfRVJST1JfUkVRVUVTVCwgYW5kIHJldHVybiBhbGwgdGhlIG91dHB1dAorICAgICAqICAgIGJ1ZmZlcnMgd2l0aCBwcm9jZXNzQ2FwdHVyZVJlc3VsdCBpbiB0aGUgZXJyb3Igc3RhdGUKKyAgICAgKiAgICAoQ0FNRVJBM19CVUZGRVJfU1RBVFVTX0VSUk9SKS4gVGhlIEhBTCBtdXN0IG5vdCBwbGFjZSB0aGUgcmVsZWFzZQorICAgICAqICAgIGZlbmNlIGludG8gYW4gZXJyb3Igc3RhdGUsIGluc3RlYWQsIHRoZSByZWxlYXNlIGZlbmNlcyBtdXN0IGJlIHNldCB0bworICAgICAqICAgIHRoZSBhY3F1aXJlIGZlbmNlcyBwYXNzZWQgYnkgdGhlIGZyYW1ld29yaywgb3IgLTEgaWYgdGhleSBoYXZlIGJlZW4KKyAgICAgKiAgICB3YWl0ZWQgb24gYnkgdGhlIEhBTCBhbHJlYWR5LiBUaGlzIGlzIGFsc28gdGhlIHBhdGggdG8gZm9sbG93IGZvciBhbnkKKyAgICAgKiAgICBjYXB0dXJlcyBmb3Igd2hpY2ggdGhlIEhBTCBhbHJlYWR5IGNhbGxlZCBub3RpZnkoKSB3aXRoCisgICAgICogICAgQ0FNRVJBM19NU0dfU0hVVFRFUiBidXQgd29uJ3QgYmUgcHJvZHVjaW5nIGFueSBtZXRhZGF0YS92YWxpZCBidWZmZXJzCisgICAgICogICAgZm9yLiBBZnRlciBDQU1FUkEzX01TR19FUlJPUl9SRVFVRVNULCBmb3IgYSBnaXZlbiBmcmFtZSwgb25seQorICAgICAqICAgIHByb2Nlc3NDYXB0dXJlUmVzdWx0cyB3aXRoIGJ1ZmZlcnMgaW4gQ0FNRVJBM19CVUZGRVJfU1RBVFVTX0VSUk9SCisgICAgICogICAgYXJlIGFsbG93ZWQuIE5vIGZ1cnRoZXIgbm90aWZ5cyBvciBwcm9jZXNzQ2FwdHVyZVJlc3VsdCB3aXRoCisgICAgICogICAgbm9uLWVtcHR5IG1ldGFkYXRhIGlzIGFsbG93ZWQuCisgICAgICoKKyAgICAgKiAzLiBGb3IgcGFydGlhbGx5IGNvbXBsZXRlZCBwZW5kaW5nIHJlcXVlc3RzIHRoYXQgZG8gbm90IGhhdmUgYWxsIHRoZQorICAgICAqICAgIG91dHB1dCBidWZmZXJzIG9yIHBlcmhhcHMgbWlzc2luZyBtZXRhZGF0YSwgdGhlIEhBTCBtdXN0IGZvbGxvdworICAgICAqICAgIGJlbG93OgorICAgICAqCisgICAgICogICAgMy4xLiBDYWxsIG5vdGlmeSB3aXRoIENBTUVSQTNfTVNHX0VSUk9SX1JFU1VMVCBpZiBzb21lIG9mIHRoZSBleHBlY3RlZAorICAgICAqICAgICAgICAgcmVzdWx0IG1ldGFkYXRhIChpLmUuIG9uZSBvciBtb3JlIHBhcnRpYWwgbWV0YWRhdGEpIHdvbid0IGJlCisgICAgICogICAgICAgICBhdmFpbGFibGUgZm9yIHRoZSBjYXB0dXJlLgorICAgICAqCisgICAgICogICAgMy4yLiBDYWxsIG5vdGlmeSB3aXRoIENBTUVSQTNfTVNHX0VSUk9SX0JVRkZFUiBmb3IgZXZlcnkgYnVmZmVyIHRoYXQKKyAgICAgKiAgICAgICAgIHdvbid0IGJlIHByb2R1Y2VkIGZvciB0aGUgY2FwdHVyZS4KKyAgICAgKgorICAgICAqICAgIDMuMy4gQ2FsbCBub3RpZnkgd2l0aCBDQU1FUkEzX01TR19TSFVUVEVSIHdpdGggdGhlIGNhcHR1cmUgdGltZXN0YW1wCisgICAgICogICAgICAgICBiZWZvcmUgYW55IGJ1ZmZlcnMvbWV0YWRhdGEgYXJlIHJldHVybmVkIHdpdGgKKyAgICAgKiAgICAgICAgIHByb2Nlc3NDYXB0dXJlUmVzdWx0LgorICAgICAqCisgICAgICogICAgMy40LiBGb3IgY2FwdHVyZXMgdGhhdCB3aWxsIHByb2R1Y2Ugc29tZSByZXN1bHRzLCB0aGUgSEFMIG11c3Qgbm90CisgICAgICogICAgICAgICBjYWxsIENBTUVSQTNfTVNHX0VSUk9SX1JFUVVFU1QsIHNpbmNlIHRoYXQgaW5kaWNhdGVzIGNvbXBsZXRlCisgICAgICogICAgICAgICBmYWlsdXJlLgorICAgICAqCisgICAgICogICAgMy41LiBWYWxpZCBidWZmZXJzL21ldGFkYXRhIG11c3QgYmUgcGFzc2VkIHRvIHRoZSBmcmFtZXdvcmsgYXMKKyAgICAgKiAgICAgICAgIG5vcm1hbC4KKyAgICAgKgorICAgICAqICAgIDMuNi4gRmFpbGVkIGJ1ZmZlcnMgbXVzdCBiZSByZXR1cm5lZCB0byB0aGUgZnJhbWV3b3JrIGFzIGRlc2NyaWJlZAorICAgICAqICAgICAgICAgZm9yIGNhc2UgMi4gQnV0IGZhaWxlZCBidWZmZXJzIGRvIG5vdCBoYXZlIHRvIGZvbGxvdyB0aGUgc3RyaWN0CisgICAgICogICAgICAgICBvcmRlcmluZyB2YWxpZCBidWZmZXJzIGRvLCBhbmQgbWF5IGJlIG91dC1vZi1vcmRlciB3aXRoIHJlc3BlY3QKKyAgICAgKiAgICAgICAgIHRvIHZhbGlkIGJ1ZmZlcnMuIEZvciBleGFtcGxlLCBpZiBidWZmZXJzIEEsIEIsIEMsIEQsIEUgYXJlIHNlbnQsCisgICAgICogICAgICAgICBEIGFuZCBFIGFyZSBmYWlsZWQsIHRoZW4gQSwgRSwgQiwgRCwgQyBpcyBhbiBhY2NlcHRhYmxlIHJldHVybgorICAgICAqICAgICAgICAgb3JkZXIuCisgICAgICoKKyAgICAgKiAgICAzLjcuIEZvciBmdWxseS1taXNzaW5nIG1ldGFkYXRhLCBjYWxsaW5nIENBTUVSQTNfTVNHX0VSUk9SX1JFU1VMVCBpcworICAgICAqICAgICAgICAgc3VmZmljaWVudCwgbm8gbmVlZCB0byBjYWxsIHByb2Nlc3NDYXB0dXJlUmVzdWx0IHdpdGggZW1wdHkKKyAgICAgKiAgICAgICAgIG1ldGFkYXRhIG9yIGVxdWl2YWxlbnQuCisgICAgICoKKyAgICAgKiA0LiBJZiBhIGZsdXNoKCkgaXMgaW52b2tlZCB3aGlsZSBhIHByb2Nlc3NDYXB0dXJlUmVxdWVzdCgpIGludm9jYXRpb24KKyAgICAgKiAgICBpcyBhY3RpdmUsIHRoYXQgcHJvY2VzcyBjYWxsIG11c3QgcmV0dXJuIGFzIHNvb24gYXMgcG9zc2libGUuIEluCisgICAgICogICAgYWRkaXRpb24sIGlmIGEgcHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KCkgY2FsbCBpcyBtYWRlIGFmdGVyIGZsdXNoKCkKKyAgICAgKiAgICBoYXMgYmVlbiBpbnZva2VkIGJ1dCBiZWZvcmUgZmx1c2goKSBoYXMgcmV0dXJuZWQsIHRoZSBjYXB0dXJlIHJlcXVlc3QKKyAgICAgKiAgICBwcm92aWRlZCBieSB0aGUgbGF0ZSBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QgY2FsbCBtdXN0IGJlIHRyZWF0ZWQKKyAgICAgKiAgICBsaWtlIGEgcGVuZGluZyByZXF1ZXN0IGluIGNhc2UgIzIgYWJvdmUuCisgICAgICoKKyAgICAgKiBmbHVzaCgpIG11c3Qgb25seSByZXR1cm4gd2hlbiB0aGVyZSBhcmUgbm8gbW9yZSBvdXRzdGFuZGluZyBidWZmZXJzIG9yCisgICAgICogcmVxdWVzdHMgbGVmdCBpbiB0aGUgSEFMLiBUaGUgZnJhbWV3b3JrIG1heSBjYWxsIGNvbmZpZ3VyZV9zdHJlYW1zIChhcworICAgICAqIHRoZSBIQUwgc3RhdGUgaXMgbm93IHF1aWVzY2VkKSBvciBtYXkgaXNzdWUgbmV3IHJlcXVlc3RzLgorICAgICAqCisgICAgICogTm90ZSB0aGF0IGl0J3Mgc3VmZmljaWVudCB0byBvbmx5IHN1cHBvcnQgZnVsbHktc3VjY2VlZGVkIGFuZAorICAgICAqIGZ1bGx5LWZhaWxlZCByZXN1bHQgY2FzZXMuIEhvd2V2ZXIsIGl0IGlzIGhpZ2hseSBkZXNpcmFibGUgdG8gc3VwcG9ydAorICAgICAqIHRoZSBwYXJ0aWFsIGZhaWx1cmUgY2FzZXMgYXMgd2VsbCwgYXMgaXQgY291bGQgaGVscCBpbXByb3ZlIHRoZSBmbHVzaAorICAgICAqIGNhbGwgb3ZlcmFsbCBwZXJmb3JtYW5jZS4KKyAgICAgKgorICAgICAqIFBlcmZvcm1hbmNlIHJlcXVpcmVtZW50czoKKyAgICAgKgorICAgICAqIFRoZSBIQUwgc2hvdWxkIHJldHVybiBmcm9tIHRoaXMgY2FsbCBpbiAxMDBtcywgYW5kIG11c3QgcmV0dXJuIGZyb20gdGhpcworICAgICAqIGNhbGwgaW4gMTAwMG1zLiBBbmQgdGhpcyBjYWxsIG11c3Qgbm90IGJlIGJsb2NrZWQgbG9uZ2VyIHRoYW4gcGlwZWxpbmUKKyAgICAgKiBsYXRlbmN5IChzZWUgUzcgZm9yIGRlZmluaXRpb24pLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIGNvZGUgZm9yIHRoZSBvcGVyYXRpb24sIG9uZSBvZjoKKyAgICAgKiAgICAgT0s6CisgICAgICogICAgICAgICBPbiBhIHN1Y2Nlc3NmdWwgZmx1c2ggb2YgdGhlIGNhbWVyYSBIQUwuCisgICAgICogICAgIElOVEVSTkFMX0VSUk9SOgorICAgICAqICAgICAgICAgSWYgdGhlIGNhbWVyYSBkZXZpY2UgaGFzIGVuY291bnRlcmVkIGEgc2VyaW91cyBlcnJvci4gQWZ0ZXIgdGhpcworICAgICAqICAgICAgICAgZXJyb3IgaXMgcmV0dXJuZWQsIG9ubHkgdGhlIGNsb3NlKCkgbWV0aG9kIGNhbiBiZSBzdWNjZXNzZnVsbHkKKyAgICAgKiAgICAgICAgIGNhbGxlZCBieSB0aGUgZnJhbWV3b3JrLgorICAgICAqLworICAgIGZsdXNoKCkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIGNsb3NlOgorICAgICAqCisgICAgICogU2h1dCBkb3duIHRoZSBjYW1lcmEgZGV2aWNlLgorICAgICAqCisgICAgICogQWZ0ZXIgdGhpcyBjYWxsLCBhbGwgY2FsbHMgdG8gdGhpcyBzZXNzaW9uIGluc3RhbmNlIG11c3QgcmV0dXJuCisgICAgICogSU5URVJOQUxfRVJST1IuCisgICAgICoKKyAgICAgKiBUaGlzIG1ldGhvZCBtdXN0IGFsd2F5cyBzdWNjZWVkLCBldmVuIGlmIHRoZSBkZXZpY2UgaGFzIGVuY291bnRlcmVkIGEKKyAgICAgKiBzZXJpb3VzIGVycm9yLgorICAgICAqLworICAgIGNsb3NlKCk7Cit9OwpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9BbmRyb2lkLmJwIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyNWMwMDgKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSwyOCBAQAorY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJjYW1lcmEuZGV2aWNlQDMuMi1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgc3JjczogWyJDYW1lcmFEZXZpY2UuY3BwIiwKKyAgICAgICAgICAgIkNhbWVyYURldmljZVNlc3Npb24uY3BwIiwKKyAgICAgICAgICAgImNvbnZlcnQuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjIiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEucHJvdmlkZXJAMi40IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliY2FtZXJhX21ldGFkYXRhIiwKKyAgICAgICAgImxpYmZtcSIKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5jb21tb25AMS4wLWhlbHBlciIKKyAgICBdLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnM6IFsiLiJdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmZtcSIsCisgICAgXQorfQpkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2UuY3BwIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzN2ExZTYKLS0tIC9kZXYvbnVsbAorKysgYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZS5jcHAKQEAgLTAsMCArMSwyOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNhbURldkAzLjItaW1wbCIKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDx1dGlscy9WZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9UcmFjZS5oPgorI2luY2x1ZGUgIkNhbWVyYURldmljZV8zXzIuaCIKKyNpbmNsdWRlIDxpbmNsdWRlL2NvbnZlcnQuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGRldmljZSB7CituYW1lc3BhY2UgVjNfMiB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6U3RhdHVzOworCitDYW1lcmFEZXZpY2U6OkNhbWVyYURldmljZSgKKyAgICBzcDxDYW1lcmFNb2R1bGU+IG1vZHVsZSwgY29uc3Qgc3RkOjpzdHJpbmcmIGNhbWVyYUlkLAorICAgIGNvbnN0IFNvcnRlZFZlY3RvcjxzdGQ6OnBhaXI8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPj4mIGNhbWVyYURldmljZU5hbWVzKSA6CisgICAgICAgIG1Nb2R1bGUobW9kdWxlKSwKKyAgICAgICAgbUNhbWVyYUlkKGNhbWVyYUlkKSwKKyAgICAgICAgbURpc2Nvbm5lY3RlZChmYWxzZSksCisgICAgICAgIG1DYW1lcmFEZXZpY2VOYW1lcyhjYW1lcmFEZXZpY2VOYW1lcykgeworICAgIG1DYW1lcmFJZEludCA9IGF0b2kobUNhbWVyYUlkLmNfc3RyKCkpOworICAgIC8vIFNob3VsZCBub3QgcmVhY2ggaGVyZSBhcyBwcm92aWRlciBhbHNvIHZhbGlkYXRlIElECisgICAgaWYgKG1DYW1lcmFJZEludCA8IDAgfHwgbUNhbWVyYUlkSW50ID49IG1vZHVsZS0+Z2V0TnVtYmVyT2ZDYW1lcmFzKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIGNhbWVyYSBpZDogJXMiLCBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgbUluaXRGYWlsID0gdHJ1ZTsKKyAgICB9CisKKyAgICBtRGV2aWNlVmVyc2lvbiA9IG1Nb2R1bGUtPmdldERldmljZVZlcnNpb24obUNhbWVyYUlkSW50KTsKKyAgICBpZiAobURldmljZVZlcnNpb24gPCBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICBBTE9HRSgiJXM6IENhbWVyYSBpZCAlcyBkb2VzIG5vdCBzdXBwb3J0IEhBTDMuMisiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBtSW5pdEZhaWwgPSB0cnVlOworICAgIH0KK30KKworQ2FtZXJhRGV2aWNlOjp+Q2FtZXJhRGV2aWNlKCkge30KKworU3RhdHVzIENhbWVyYURldmljZTo6aW5pdFN0YXR1cygpIGNvbnN0IHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIFN0YXR1cyBzdGF0dXMgPSBTdGF0dXM6Ok9LOworICAgIGlmIChtSW5pdEZhaWwpIHsKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICB9IGVsc2UgaWYgKG1EaXNjb25uZWN0ZWQpIHsKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpDQU1FUkFfRElTQ09OTkVDVEVEOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQorCit2b2lkIENhbWVyYURldmljZTo6c2V0Q29ubmVjdGlvblN0YXR1cyhib29sIGNvbm5lY3RlZCkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbURpc2Nvbm5lY3RlZCA9ICFjb25uZWN0ZWQ7CisgICAgaWYgKG1TZXNzaW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzcDxDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uID0gbVNlc3Npb24ucHJvbW90ZSgpOworICAgIGlmIChzZXNzaW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvLyBPbmx5IG5vdGlmeSBhY3RpdmUgc2Vzc2lvbiBkaXNjb25uZWN0IGV2ZW50cy4KKyAgICAvLyBVc2VycyB3aWxsIG5lZWQgdG8gcmUtb3BlbiBjYW1lcmEgYWZ0ZXIgZGlzY29ubmVjdCBldmVudAorICAgIGlmICghY29ubmVjdGVkKSB7CisgICAgICAgIHNlc3Npb24tPmRpc2Nvbm5lY3QoKTsKKyAgICB9CisgICAgcmV0dXJuOworfQorCitTdGF0dXMgQ2FtZXJhRGV2aWNlOjpnZXRIaWRsU3RhdHVzKGludCBzdGF0dXMpIHsKKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAgICAgICBjYXNlIDA6IHJldHVybiBTdGF0dXM6Ok9LOworICAgICAgICBjYXNlIC1FTk9TWVM6IHJldHVybiBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIC1FQlVTWSA6IHJldHVybiBTdGF0dXM6OkNBTUVSQV9JTl9VU0U7CisgICAgICAgIGNhc2UgLUVVU0VSUzogcmV0dXJuIFN0YXR1czo6TUFYX0NBTUVSQVNfSU5fVVNFOworICAgICAgICBjYXNlIC1FTk9ERVY6IHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICBjYXNlIC1FSU5WQUw6IHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiJXM6IHVua25vd24gSEFMIHN0YXR1cyBjb2RlICVkIiwgX19GVU5DVElPTl9fLCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2UgZm9sbG93LgorUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6Z2V0UmVzb3VyY2VDb3N0KGdldFJlc291cmNlQ29zdF9jYiBfaGlkbF9jYikgIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIENhbWVyYVJlc291cmNlQ29zdCByZXNDb3N0OworICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICBpbnQgY29zdCA9IDEwMDsKKyAgICAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IGNvbmZsaWN0aW5nX2RldmljZXM7CisgICAgICAgIHN0cnVjdCBjYW1lcmFfaW5mbyBpbmZvOworCisgICAgICAgIC8vIElmIHVzaW5nIHBvc3QtMi40IG1vZHVsZSB2ZXJzaW9uLCBxdWVyeSB0aGUgY29zdCArIGNvbmZsaWN0aW5nIGRldmljZXMgZnJvbSB0aGUgSEFMCisgICAgICAgIGlmIChtTW9kdWxlLT5nZXRNb2R1bGVBcGlWZXJzaW9uKCkgPj0gQ0FNRVJBX01PRFVMRV9BUElfVkVSU0lPTl8yXzQpIHsKKyAgICAgICAgICAgIGludCByZXQgPSBtTW9kdWxlLT5nZXRDYW1lcmFJbmZvKG1DYW1lcmFJZEludCwgJmluZm8pOworICAgICAgICAgICAgaWYgKHJldCA9PSBPSykgeworICAgICAgICAgICAgICAgIGNvc3QgPSBpbmZvLnJlc291cmNlX2Nvc3Q7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbmZvLmNvbmZsaWN0aW5nX2RldmljZXNfbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgY2FtZXJhSWQoaW5mby5jb25mbGljdGluZ19kZXZpY2VzW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBwYWlyIDogbUNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FtZXJhSWQgPT0gcGFpci5maXJzdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZsaWN0aW5nX2RldmljZXMucHVzaF9iYWNrKHBhaXIuc2Vjb25kKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgcmVzQ29zdC5yZXNvdXJjZUNvc3QgPSBjb3N0OworICAgICAgICAgICAgcmVzQ29zdC5jb25mbGljdGluZ0RldmljZXMucmVzaXplKGNvbmZsaWN0aW5nX2RldmljZXMuc2l6ZSgpKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29uZmxpY3RpbmdfZGV2aWNlcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIHJlc0Nvc3QuY29uZmxpY3RpbmdEZXZpY2VzW2ldID0gY29uZmxpY3RpbmdfZGV2aWNlc1tpXTsKKyAgICAgICAgICAgICAgICBBTE9HVigiQ2FtRGV2aWNlICVzIGlzIGNvbmZsaWN0aW5nIHdpdGggY2FtRGV2aWNlICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1DYW1lcmFJZC5jX3N0cigpLCByZXNDb3N0LmNvbmZsaWN0aW5nRGV2aWNlc1tpXS5jX3N0cigpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihzdGF0dXMsIHJlc0Nvc3QpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OmdldENhbWVyYUNoYXJhY3RlcmlzdGljcyhnZXRDYW1lcmFDaGFyYWN0ZXJpc3RpY3NfY2IgX2hpZGxfY2IpICB7CisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBDYW1lcmFNZXRhZGF0YSBjYW1lcmFDaGFyYWN0ZXJpc3RpY3M7CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIC8vTW9kdWxlIDIuMSsgY29kZXBhdGguCisgICAgICAgIHN0cnVjdCBjYW1lcmFfaW5mbyBpbmZvOworICAgICAgICBpbnQgcmV0ID0gbU1vZHVsZS0+Z2V0Q2FtZXJhSW5mbyhtQ2FtZXJhSWRJbnQsICZpbmZvKTsKKyAgICAgICAgaWYgKHJldCA9PSBPSykgeworICAgICAgICAgICAgY29udmVydFRvSGlkbChpbmZvLnN0YXRpY19jYW1lcmFfY2hhcmFjdGVyaXN0aWNzLCAmY2FtZXJhQ2hhcmFjdGVyaXN0aWNzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogZ2V0IGNhbWVyYSBpbmZvIGZhaWxlZCEiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgfQorICAgIH0KKyAgICBfaGlkbF9jYihzdGF0dXMsIGNhbWVyYUNoYXJhY3RlcmlzdGljcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFN0YXR1cz4gQ2FtZXJhRGV2aWNlOjpzZXRUb3JjaE1vZGUoVG9yY2hNb2RlIG1vZGUpICB7CisgICAgaWYgKCFtTW9kdWxlLT5pc1NldFRvcmNoTW9kZVN1cHBvcnRlZCgpKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVEOworICAgIH0KKworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIGJvb2wgZW5hYmxlID0gKG1vZGUgPT0gVG9yY2hNb2RlOjpPTikgPyB0cnVlIDogZmFsc2U7CisgICAgICAgIHN0YXR1cyA9IGdldEhpZGxTdGF0dXMobU1vZHVsZS0+c2V0VG9yY2hNb2RlKG1DYW1lcmFJZC5jX3N0cigpLCBlbmFibGUpKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZTo6b3Blbihjb25zdCBzcDxJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s+JiBjYWxsYmFjaywgb3Blbl9jYiBfaGlkbF9jYikgIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIHNwPENhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb24gPSBudWxscHRyOworCisgICAgaWYgKGNhbGxiYWNrID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBjYW5ub3Qgb3BlbiBjYW1lcmEgJXMuIGNhbGxiYWNrIGlzIG51bGwhIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIG1DYW1lcmFJZC5jX3N0cigpKTsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5ULCBzZXNzaW9uKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpZiAoc3RhdHVzICE9IFN0YXR1czo6T0spIHsKKyAgICAgICAgLy8gUHJvdmlkZXIgd2lsbCBuZXZlciBwYXNzIGluaXRGYWlsZWQgZGV2aWNlIHRvIGNsaWVudCwgc28KKyAgICAgICAgLy8gdGhpcyBtdXN0IGJlIGEgZGlzY29ubmVjdGVkIGNhbWVyYQorICAgICAgICBBTE9HRSgiJXM6IGNhbm5vdCBvcGVuIGNhbWVyYSAlcy4gY2FtZXJhIGlzIGRpc2Nvbm5lY3RlZCEiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkLmNfc3RyKCkpOworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkNBTUVSQV9ESVNDT05ORUNURUQsIHNlc3Npb24pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1Mb2NrLmxvY2soKTsKKworICAgICAgICBBTE9HVigiJXM6IEluaXRpYWxpemluZyBkZXZpY2UgZm9yIGNhbWVyYSAlZCIsIF9fRlVOQ1RJT05fXywgbUNhbWVyYUlkSW50KTsKKyAgICAgICAgc2Vzc2lvbiA9IG1TZXNzaW9uLnByb21vdGUoKTsKKyAgICAgICAgaWYgKHNlc3Npb24gIT0gbnVsbHB0ciAmJiAhc2Vzc2lvbi0+aXNDbG9zZWQoKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBjYW5ub3Qgb3BlbiBhbiBhbHJlYWR5IG9wZW5lZCBjYW1lcmEhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIG1Mb2NrLnVubG9jaygpOworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpDQU1FUkFfSU5fVVNFLCBudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICAvKiogT3BlbiBIQUwgZGV2aWNlICovCisgICAgICAgIHN0YXR1c190IHJlczsKKyAgICAgICAgY2FtZXJhM19kZXZpY2VfdCAqZGV2aWNlOworCisgICAgICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhMy0+b3BlbiIpOworICAgICAgICByZXMgPSBtTW9kdWxlLT5vcGVuKG1DYW1lcmFJZC5jX3N0cigpLAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfZGV2aWNlX3QqKj4oJmRldmljZSkpOworICAgICAgICBBVFJBQ0VfRU5EKCk7CisKKyAgICAgICAgaWYgKHJlcyAhPSBPSykgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBjYW5ub3Qgb3BlbiBjYW1lcmEgJXMhIiwgX19GVU5DVElPTl9fLCBtQ2FtZXJhSWQuY19zdHIoKSk7CisgICAgICAgICAgICBtTG9jay51bmxvY2soKTsKKyAgICAgICAgICAgIF9oaWRsX2NiKGdldEhpZGxTdGF0dXMocmVzKSwgbnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisKKyAgICAgICAgLyoqIENyb3NzLWNoZWNrIGRldmljZSB2ZXJzaW9uICovCisgICAgICAgIGlmIChkZXZpY2UtPmNvbW1vbi52ZXJzaW9uIDwgQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogQ291bGQgbm90IG9wZW4gY2FtZXJhOiAiCisgICAgICAgICAgICAgICAgICAgICJDYW1lcmEgZGV2aWNlIHNob3VsZCBiZSBhdCBsZWFzdCAleCwgcmVwb3J0cyAleCBpbnN0ZWFkIiwKKyAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgICAgICAgICBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMiwKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlLT5jb21tb24udmVyc2lvbik7CisgICAgICAgICAgICBkZXZpY2UtPmNvbW1vbi5jbG9zZSgmZGV2aWNlLT5jb21tb24pOworICAgICAgICAgICAgbUxvY2sudW5sb2NrKCk7CisgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQsIG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0cnVjdCBjYW1lcmFfaW5mbyBpbmZvOworICAgICAgICByZXMgPSBtTW9kdWxlLT5nZXRDYW1lcmFJbmZvKG1DYW1lcmFJZEludCwgJmluZm8pOworICAgICAgICBpZiAocmVzICE9IE9LKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IENvdWxkIG5vdCBvcGVuIGNhbWVyYTogZ2V0Q2FtZXJhSW5mbyBmYWlsZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgZGV2aWNlLT5jb21tb24uY2xvc2UoJmRldmljZS0+Y29tbW9uKTsKKyAgICAgICAgICAgIG1Mb2NrLnVubG9jaygpOworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5ULCBudWxscHRyKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICBzZXNzaW9uID0gbmV3IENhbWVyYURldmljZVNlc3Npb24oCisgICAgICAgICAgICAgICAgZGV2aWNlLCBpbmZvLnN0YXRpY19jYW1lcmFfY2hhcmFjdGVyaXN0aWNzLCBjYWxsYmFjayk7CisgICAgICAgIGlmIChzZXNzaW9uID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogY2FtZXJhIGRldmljZSBzZXNzaW9uIGFsbG9jYXRpb24gZmFpbGVkIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIG1Mb2NrLnVubG9jaygpOworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgbnVsbHB0cik7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworICAgICAgICB9CisgICAgICAgIGlmIChzZXNzaW9uLT5pc0luaXRGYWlsZWQoKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBjYW1lcmEgZGV2aWNlIHNlc3Npb24gaW5pdCBmYWlsZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgc2Vzc2lvbiA9IG51bGxwdHI7CisgICAgICAgICAgICBtTG9jay51bmxvY2soKTsKKyAgICAgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIG51bGxwdHIpOworICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgfQorICAgICAgICBtU2Vzc2lvbiA9IHNlc3Npb247CisgICAgICAgIG1Mb2NrLnVubG9jaygpOworICAgIH0KKyAgICBfaGlkbF9jYihzdGF0dXMsIHNlc3Npb24pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2U6OmR1bXBTdGF0ZShjb25zdCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSYgaGFuZGxlKSAgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgaWYgKGhhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogaGFuZGxlIG11c3Qgbm90IGJlIG51bGwiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBpZiAoaGFuZGxlLT5udW1GZHMgIT0gMSB8fCBoYW5kbGUtPm51bUludHMgIT0gMCkgeworICAgICAgICBBTE9HRSgiJXM6IGhhbmRsZSBtdXN0IGNvbnRhaW4gMSBGRCBhbmQgMCBpbnRlZ2VycyEgR290ICVkIEZEcyBhbmQgJWQgaW50cyIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBoYW5kbGUtPm51bUZkcywgaGFuZGxlLT5udW1JbnRzKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgaW50IGZkID0gaGFuZGxlLT5kYXRhWzBdOworICAgIGlmIChtU2Vzc2lvbiA9PSBudWxscHRyKSB7CisgICAgICAgIGRwcmludGYoZmQsICJObyBhY3RpdmUgY2FtZXJhIGRldmljZSBzZXNzaW9uIGluc3RhbmNlXG4iKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgc3A8Q2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbiA9IG1TZXNzaW9uLnByb21vdGUoKTsKKyAgICBpZiAoc2Vzc2lvbiA9PSBudWxscHRyKSB7CisgICAgICAgIGRwcmludGYoZmQsICJObyBhY3RpdmUgY2FtZXJhIGRldmljZSBzZXNzaW9uIGluc3RhbmNlXG4iKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgLy8gQ2FsbCBpbnRvIGFjdGl2ZSBzZXNzaW9uIHRvIGR1bXAgc3RhdGVzCisgICAgc2Vzc2lvbi0+ZHVtcFN0YXRlKGhhbmRsZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKy8vIEVuZCBvZiBtZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2UuCisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjNfMgorfSAgLy8gbmFtZXNwYWNlIGRldmljZQorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VTZXNzaW9uLmNwcCBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQ2FtZXJhRGV2aWNlU2Vzc2lvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFiZTgyZAotLS0gL2Rldi9udWxsCisrKyBiL2NhbWVyYS9kZXZpY2UvMy4yL2RlZmF1bHQvQ2FtZXJhRGV2aWNlU2Vzc2lvbi5jcHAKQEAgLTAsMCArMSwxMzIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJDYW1EZXZTZXNzaW9uQDMuMi1pbXBsIgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisKKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8dXRpbHMvVHJhY2UuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3JhbGxvYzEuaD4KKyNpbmNsdWRlICJDYW1lcmFEZXZpY2VTZXNzaW9uLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgY2FtZXJhIHsKK25hbWVzcGFjZSBkZXZpY2UgeworbmFtZXNwYWNlIFYzXzIgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gU2l6ZSBvZiByZXF1ZXN0IG1ldGFkYXRhIGZhc3QgbWVzc2FnZSBxdWV1ZS4gQ2hhbmdlIHRvIDAgdG8gYWx3YXlzIHVzZSBod2JpbmRlciBidWZmZXIuCitzdGF0aWMgY29uc3RleHByIHNpemVfdCBDQU1FUkFfUkVRVUVTVF9NRVRBREFUQV9RVUVVRV9TSVpFID0gMSA8PCAyMCAvKiAxTUIgKi87CisvLyBTaXplIG9mIHJlc3VsdCBtZXRhZGF0YSBmYXN0IG1lc3NhZ2UgcXVldWUuIENoYW5nZSB0byAwIHRvIGFsd2F5cyB1c2UgaHdiaW5kZXIgYnVmZmVyLgorc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgQ0FNRVJBX1JFU1VMVF9NRVRBREFUQV9RVUVVRV9TSVpFICA9IDEgPDwgMjAgLyogMU1CICovOworCitIYW5kbGVJbXBvcnRlciBDYW1lcmFEZXZpY2VTZXNzaW9uOjpzSGFuZGxlSW1wb3J0ZXI7Citjb25zdCBpbnQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6Tk9UX0JBVENIRUQ7CisKK0NhbWVyYURldmljZVNlc3Npb246OkNhbWVyYURldmljZVNlc3Npb24oCisgICAgY2FtZXJhM19kZXZpY2VfdCogZGV2aWNlLAorICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiBkZXZpY2VJbmZvLAorICAgIGNvbnN0IHNwPElDYW1lcmFEZXZpY2VDYWxsYmFjaz4mIGNhbGxiYWNrKSA6CisgICAgICAgIGNhbWVyYTNfY2FsbGJhY2tfb3BzKHsmc1Byb2Nlc3NDYXB0dXJlUmVzdWx0LCAmc05vdGlmeX0pLAorICAgICAgICBtRGV2aWNlKGRldmljZSksCisgICAgICAgIG1EZXZpY2VWZXJzaW9uKGRldmljZS0+Y29tbW9uLnZlcnNpb24pLAorICAgICAgICBtSXNBRUxvY2tBdmFpbGFibGUoZmFsc2UpLAorICAgICAgICBtRGVyaXZlUG9zdFJhd1NlbnNLZXkoZmFsc2UpLAorICAgICAgICBtTnVtUGFydGlhbFJlc3VsdHMoMSksCisgICAgICAgIG1SZXN1bHRCYXRjaGVyKGNhbGxiYWNrKSB7CisKKyAgICBtRGV2aWNlSW5mbyA9IGRldmljZUluZm87CisgICAgY2FtZXJhX21ldGFkYXRhX2VudHJ5IHBhcnRpYWxSZXN1bHRzQ291bnQgPQorICAgICAgICAgICAgbURldmljZUluZm8uZmluZChBTkRST0lEX1JFUVVFU1RfUEFSVElBTF9SRVNVTFRfQ09VTlQpOworICAgIGlmIChwYXJ0aWFsUmVzdWx0c0NvdW50LmNvdW50ID4gMCkgeworICAgICAgICBtTnVtUGFydGlhbFJlc3VsdHMgPSBwYXJ0aWFsUmVzdWx0c0NvdW50LmRhdGEuaTMyWzBdOworICAgIH0KKyAgICBtUmVzdWx0QmF0Y2hlci5zZXROdW1QYXJ0aWFsUmVzdWx0cyhtTnVtUGFydGlhbFJlc3VsdHMpOworCisgICAgY2FtZXJhX21ldGFkYXRhX2VudHJ5IGFlTG9ja0F2YWlsYWJsZUVudHJ5ID0gbURldmljZUluZm8uZmluZCgKKyAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9BRV9MT0NLX0FWQUlMQUJMRSk7CisgICAgaWYgKGFlTG9ja0F2YWlsYWJsZUVudHJ5LmNvdW50ID4gMCkgeworICAgICAgICBtSXNBRUxvY2tBdmFpbGFibGUgPSAoYWVMb2NrQXZhaWxhYmxlRW50cnkuZGF0YS51OFswXSA9PQorICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9BRV9MT0NLX0FWQUlMQUJMRV9UUlVFKTsKKyAgICB9CisKKyAgICAvLyBEZXRlcm1pbmUgd2hldGhlciB3ZSBuZWVkIHRvIGRlcml2ZSBzZW5zaXRpdml0eSBib29zdCB2YWx1ZXMgZm9yIG9sZGVyIGRldmljZXMuCisgICAgLy8gSWYgcG9zdC1SQVcgc2Vuc2l0aXZpdHkgYm9vc3QgcmFuZ2UgaXMgbGlzdGVkLCBzbyBzaG91bGQgcG9zdC1yYXcgc2Vuc2l0aXZpdHkgY29udHJvbAorICAgIC8vIGJlIGxpc3RlZCAoYXMgdGhlIGRlZmF1bHQgdmFsdWUgMTAwKQorICAgIGlmIChtRGV2aWNlSW5mby5leGlzdHMoQU5EUk9JRF9DT05UUk9MX1BPU1RfUkFXX1NFTlNJVElWSVRZX0JPT1NUX1JBTkdFKSkgeworICAgICAgICBtRGVyaXZlUG9zdFJhd1NlbnNLZXkgPSB0cnVlOworICAgIH0KKworICAgIG1Jbml0RmFpbCA9IGluaXRpYWxpemUoKTsKK30KKworYm9vbCBDYW1lcmFEZXZpY2VTZXNzaW9uOjppbml0aWFsaXplKCkgeworICAgIC8qKiBJbml0aWFsaXplIGRldmljZSB3aXRoIGNhbGxiYWNrIGZ1bmN0aW9ucyAqLworICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhMy0+aW5pdGlhbGl6ZSIpOworICAgIHN0YXR1c190IHJlcyA9IG1EZXZpY2UtPm9wcy0+aW5pdGlhbGl6ZShtRGV2aWNlLCB0aGlzKTsKKyAgICBBVFJBQ0VfRU5EKCk7CisKKyAgICBpZiAocmVzICE9IE9LKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGluaXRpYWxpemUgSEFMIGRldmljZTogJXMgKCVkKSIsCisgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBzdHJlcnJvcigtcmVzKSwgcmVzKTsKKyAgICAgICAgbURldmljZS0+Y29tbW9uLmNsb3NlKCZtRGV2aWNlLT5jb21tb24pOworICAgICAgICBtQ2xvc2VkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgbVJlcXVlc3RNZXRhZGF0YVF1ZXVlID0gc3RkOjptYWtlX3VuaXF1ZTxSZXF1ZXN0TWV0YWRhdGFRdWV1ZT4oCisgICAgICAgICAgICBDQU1FUkFfUkVRVUVTVF9NRVRBREFUQV9RVUVVRV9TSVpFLCBmYWxzZSAvKiBub24gYmxvY2tpbmcgKi8pOworICAgIGlmICghbVJlcXVlc3RNZXRhZGF0YVF1ZXVlLT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBpbnZhbGlkIHJlcXVlc3QgZm1xIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG1SZXN1bHRNZXRhZGF0YVF1ZXVlID0gc3RkOjptYWtlX3NoYXJlZDxSZXF1ZXN0TWV0YWRhdGFRdWV1ZT4oCisgICAgICAgICAgICBDQU1FUkFfUkVTVUxUX01FVEFEQVRBX1FVRVVFX1NJWkUsIGZhbHNlIC8qIG5vbiBibG9ja2luZyAqLyk7CisgICAgaWYgKCFtUmVzdWx0TWV0YWRhdGFRdWV1ZS0+aXNWYWxpZCgpKSB7CisgICAgICAgIEFMT0dFKCIlczogaW52YWxpZCByZXN1bHQgZm1xIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIG1SZXN1bHRCYXRjaGVyLnNldFJlc3VsdE1ldGFkYXRhUXVldWUobVJlc3VsdE1ldGFkYXRhUXVldWUpOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCitDYW1lcmFEZXZpY2VTZXNzaW9uOjp+Q2FtZXJhRGV2aWNlU2Vzc2lvbigpIHsKKyAgICBpZiAoIWlzQ2xvc2VkKCkpIHsKKyAgICAgICAgQUxPR0UoIkNhbWVyYURldmljZVNlc3Npb24gZGVsZXRlZCBiZWZvcmUgY2xvc2UhIik7CisgICAgICAgIGNsb3NlKCk7CisgICAgfQorfQorCitib29sIENhbWVyYURldmljZVNlc3Npb246OmlzQ2xvc2VkKCkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtU3RhdGVMb2NrKTsKKyAgICByZXR1cm4gbUNsb3NlZDsKK30KKworU3RhdHVzIENhbWVyYURldmljZVNlc3Npb246OmluaXRTdGF0dXMoKSBjb25zdCB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1TdGF0ZUxvY2spOworICAgIFN0YXR1cyBzdGF0dXMgPSBTdGF0dXM6Ok9LOworICAgIGlmIChtSW5pdEZhaWwpIHsKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICB9IGVsc2UgaWYgKG1EaXNjb25uZWN0ZWQpIHsKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpDQU1FUkFfRElTQ09OTkVDVEVEOworICAgIH0gZWxzZSBpZiAobUNsb3NlZCkgeworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OmRpc2Nvbm5lY3QoKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1TdGF0ZUxvY2spOworICAgIG1EaXNjb25uZWN0ZWQgPSB0cnVlOworICAgIEFMT0dXKCIlczogQ2FtZXJhIGRldmljZSBpcyBkaXNjb25uZWN0ZWQuIENsb3NpbmcuIiwgX19GVU5DVElPTl9fKTsKKyAgICBpZiAoIW1DbG9zZWQpIHsKKyAgICAgICAgbURldmljZS0+Y29tbW9uLmNsb3NlKCZtRGV2aWNlLT5jb21tb24pOworICAgICAgICBtQ2xvc2VkID0gdHJ1ZTsKKyAgICB9Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6ZHVtcFN0YXRlKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogZmQpIHsKKyAgICBpZiAoIWlzQ2xvc2VkKCkpIHsKKyAgICAgICAgbURldmljZS0+b3BzLT5kdW1wKG1EZXZpY2UsIGZkLT5kYXRhWzBdKTsKKyAgICB9Cit9CisKKy8qKgorICogRm9yIGRldmljZXMgPD0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIsIEFFX1BSRUNBUFRVUkVfVFJJR0dFUl9DQU5DRUwgaXMgbm90IHN1cHBvcnRlZCBzbworICogd2UgbmVlZCB0byBvdmVycmlkZSBBRV9QUkVDQVBUVVJFX1RSSUdHRVJfQ0FOQ0VMIHRvIEFFX1BSRUNBUFRVUkVfVFJJR0dFUl9JRExFIGFuZCBBRV9MT0NLX09GRgorICogdG8gQUVfTE9DS19PTiB0byBzdGFydCBjYW5jZWxsaW5nIEFFIHByZWNhcHR1cmUuIElmIEFFIGxvY2sgaXMgbm90IGF2YWlsYWJsZSwgaXQgc3RpbGwgb3ZlcnJpZGVzCisgKiBBRV9QUkVDQVBUVVJFX1RSSUdHRVJfQ0FOQ0VMIHRvIEFFX1BSRUNBUFRVUkVfVFJJR0dFUl9JRExFIGJ1dCBkb2Vzbid0IGFkZCBBRV9MT0NLX09OIHRvIHRoZQorICogcmVxdWVzdC4KKyAqLworYm9vbCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpoYW5kbGVBZVByZWNhcHR1cmVDYW5jZWxSZXF1ZXN0TG9ja2VkKAorICAgICAgICBjb25zdCBjYW1lcmEzX2NhcHR1cmVfcmVxdWVzdF90ICZoYWxSZXF1ZXN0LAorICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSAqc2V0dGluZ3MgLypvdXQqLywKKyAgICAgICAgIEFFVHJpZ2dlckNhbmNlbE92ZXJyaWRlICpvdmVycmlkZSAvKm91dCovKSB7CisgICAgaWYgKChtRGV2aWNlVmVyc2lvbiA+IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB8fAorICAgICAgICAgICAgKG51bGxwdHIgPT0gaGFsUmVxdWVzdC5zZXR0aW5ncykgfHwgKG51bGxwdHIgPT0gc2V0dGluZ3MpIHx8CisgICAgICAgICAgICAoMCA9PSBnZXRfY2FtZXJhX21ldGFkYXRhX2VudHJ5X2NvdW50KGhhbFJlcXVlc3Quc2V0dGluZ3MpKSkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc2V0dGluZ3MtPmNsZWFyKCk7CisgICAgc2V0dGluZ3MtPmFwcGVuZChoYWxSZXF1ZXN0LnNldHRpbmdzKTsKKyAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnlfdCBhZVByZWNhcHR1cmVUcmlnZ2VyID0KKyAgICAgICAgICAgIHNldHRpbmdzLT5maW5kKEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVIpOworICAgIGlmIChhZVByZWNhcHR1cmVUcmlnZ2VyLmNvdW50ID4gMCAmJgorICAgICAgICAgICAgYWVQcmVjYXB0dXJlVHJpZ2dlci5kYXRhLnU4WzBdID09CisgICAgICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVJfQ0FOQ0VMKSB7CisgICAgICAgIC8vIEFsd2F5cyBvdmVycmlkZSBDQU5DRUwgdG8gSURMRQorICAgICAgICB1aW50OF90IGFlUHJlY2FwdHVyZVRyaWdnZXIgPQorICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVJfSURMRTsKKyAgICAgICAgc2V0dGluZ3MtPnVwZGF0ZShBTkRST0lEX0NPTlRST0xfQUVfUFJFQ0FQVFVSRV9UUklHR0VSLAorICAgICAgICAgICAgICAgICZhZVByZWNhcHR1cmVUcmlnZ2VyLCAxKTsKKyAgICAgICAgKm92ZXJyaWRlID0geyBmYWxzZSwgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfT0ZGLAorICAgICAgICAgICAgICAgIHRydWUsIEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVJfQ0FOQ0VMIH07CisKKyAgICAgICAgaWYgKG1Jc0FFTG9ja0F2YWlsYWJsZSA9PSB0cnVlKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfZW50cnlfdCBhZUxvY2sgPSBzZXR0aW5ncy0+ZmluZCgKKyAgICAgICAgICAgICAgICAgICAgQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0spOworICAgICAgICAgICAgaWYgKGFlTG9jay5jb3VudCA9PSAwIHx8IGFlTG9jay5kYXRhLnU4WzBdID09CisgICAgICAgICAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9BRV9MT0NLX09GRikgeworICAgICAgICAgICAgICAgIHVpbnQ4X3QgYWVMb2NrID0gQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfT047CisgICAgICAgICAgICAgICAgc2V0dGluZ3MtPnVwZGF0ZShBTkRST0lEX0NPTlRST0xfQUVfTE9DSywgJmFlTG9jaywgMSk7CisgICAgICAgICAgICAgICAgb3ZlcnJpZGUtPmFwcGx5QWVMb2NrID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBvdmVycmlkZS0+YWVMb2NrID0gQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0tfT0ZGOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvKioKKyAqIE92ZXJyaWRlIHJlc3VsdCBtZXRhZGF0YSBmb3IgY2FuY2VsbGluZyBBRSBwcmVjYXB0dXJlIHRyaWdnZXIgYXBwbGllZCBpbgorICogaGFuZGxlQWVQcmVjYXB0dXJlQ2FuY2VsUmVxdWVzdExvY2tlZCgpLgorICovCit2b2lkIENhbWVyYURldmljZVNlc3Npb246Om92ZXJyaWRlUmVzdWx0Rm9yUHJlY2FwdHVyZUNhbmNlbExvY2tlZCgKKyAgICAgICAgY29uc3QgQUVUcmlnZ2VyQ2FuY2VsT3ZlcnJpZGUgJmFlVHJpZ2dlckNhbmNlbE92ZXJyaWRlLAorICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmNvbW1vbjo6VjFfMDo6aGVscGVyOjpDYW1lcmFNZXRhZGF0YSAqc2V0dGluZ3MgLypvdXQqLykgeworICAgIGlmIChhZVRyaWdnZXJDYW5jZWxPdmVycmlkZS5hcHBseUFlTG9jaykgeworICAgICAgICAvLyBPbmx5IGRldmljZXMgPD0gdjMuMiBzaG91bGQgaGF2ZSB0aGlzIG92ZXJyaWRlCisgICAgICAgIGFzc2VydChtRGV2aWNlVmVyc2lvbiA8PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMik7CisgICAgICAgIHNldHRpbmdzLT51cGRhdGUoQU5EUk9JRF9DT05UUk9MX0FFX0xPQ0ssICZhZVRyaWdnZXJDYW5jZWxPdmVycmlkZS5hZUxvY2ssIDEpOworICAgIH0KKworICAgIGlmIChhZVRyaWdnZXJDYW5jZWxPdmVycmlkZS5hcHBseUFlUHJlY2FwdHVyZVRyaWdnZXIpIHsKKyAgICAgICAgLy8gT25seSBkZXZpY2VzIDw9IHYzLjIgc2hvdWxkIGhhdmUgdGhpcyBvdmVycmlkZQorICAgICAgICBhc3NlcnQobURldmljZVZlcnNpb24gPD0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpOworICAgICAgICBzZXR0aW5ncy0+dXBkYXRlKEFORFJPSURfQ09OVFJPTF9BRV9QUkVDQVBUVVJFX1RSSUdHRVIsCisgICAgICAgICAgICAgICAgJmFlVHJpZ2dlckNhbmNlbE92ZXJyaWRlLmFlUHJlY2FwdHVyZVRyaWdnZXIsIDEpOworICAgIH0KK30KKworU3RhdHVzIENhbWVyYURldmljZVNlc3Npb246OmltcG9ydFJlcXVlc3QoCisgICAgICAgIGNvbnN0IENhcHR1cmVSZXF1ZXN0JiByZXF1ZXN0LAorICAgICAgICBoaWRsX3ZlYzxidWZmZXJfaGFuZGxlX3QqPiYgYWxsQnVmUHRycywKKyAgICAgICAgaGlkbF92ZWM8aW50PiYgYWxsRmVuY2VzKSB7CisgICAgYm9vbCBoYXNJbnB1dEJ1ZiA9IChyZXF1ZXN0LmlucHV0QnVmZmVyLnN0cmVhbUlkICE9IC0xICYmCisgICAgICAgICAgICByZXF1ZXN0LmlucHV0QnVmZmVyLmJ1ZmZlcklkICE9IDApOworICAgIHNpemVfdCBudW1PdXRwdXRCdWZzID0gcmVxdWVzdC5vdXRwdXRCdWZmZXJzLnNpemUoKTsKKyAgICBzaXplX3QgbnVtQnVmcyA9IG51bU91dHB1dEJ1ZnMgKyAoaGFzSW5wdXRCdWYgPyAxIDogMCk7CisgICAgLy8gVmFsaWRhdGUgYWxsIEkvTyBidWZmZXJzCisgICAgaGlkbF92ZWM8YnVmZmVyX2hhbmRsZV90PiBhbGxCdWZzOworICAgIGhpZGxfdmVjPHVpbnQ2NF90PiBhbGxCdWZJZHM7CisgICAgYWxsQnVmcy5yZXNpemUobnVtQnVmcyk7CisgICAgYWxsQnVmSWRzLnJlc2l6ZShudW1CdWZzKTsKKyAgICBhbGxCdWZQdHJzLnJlc2l6ZShudW1CdWZzKTsKKyAgICBhbGxGZW5jZXMucmVzaXplKG51bUJ1ZnMpOworICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IHN0cmVhbUlkcyhudW1CdWZzKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtT3V0cHV0QnVmczsgaSsrKSB7CisgICAgICAgIGFsbEJ1ZnNbaV0gPSByZXF1ZXN0Lm91dHB1dEJ1ZmZlcnNbaV0uYnVmZmVyLmdldE5hdGl2ZUhhbmRsZSgpOworICAgICAgICBhbGxCdWZJZHNbaV0gPSByZXF1ZXN0Lm91dHB1dEJ1ZmZlcnNbaV0uYnVmZmVySWQ7CisgICAgICAgIGFsbEJ1ZlB0cnNbaV0gPSAmYWxsQnVmc1tpXTsKKyAgICAgICAgc3RyZWFtSWRzW2ldID0gcmVxdWVzdC5vdXRwdXRCdWZmZXJzW2ldLnN0cmVhbUlkOworICAgIH0KKyAgICBpZiAoaGFzSW5wdXRCdWYpIHsKKyAgICAgICAgYWxsQnVmc1tudW1PdXRwdXRCdWZzXSA9IHJlcXVlc3QuaW5wdXRCdWZmZXIuYnVmZmVyLmdldE5hdGl2ZUhhbmRsZSgpOworICAgICAgICBhbGxCdWZJZHNbbnVtT3V0cHV0QnVmc10gPSByZXF1ZXN0LmlucHV0QnVmZmVyLmJ1ZmZlcklkOworICAgICAgICBhbGxCdWZQdHJzW251bU91dHB1dEJ1ZnNdID0gJmFsbEJ1ZnNbbnVtT3V0cHV0QnVmc107CisgICAgICAgIHN0cmVhbUlkc1tudW1PdXRwdXRCdWZzXSA9IHJlcXVlc3QuaW5wdXRCdWZmZXIuc3RyZWFtSWQ7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1CdWZzOyBpKyspIHsKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGJ1ZiA9IGFsbEJ1ZnNbaV07CisgICAgICAgIHVpbnQ2NF90IGJ1ZklkID0gYWxsQnVmSWRzW2ldOworICAgICAgICBDaXJjdWxhdGluZ0J1ZmZlcnMmIGNicyA9IG1DaXJjdWxhdGluZ0J1ZmZlcnNbc3RyZWFtSWRzW2ldXTsKKyAgICAgICAgaWYgKGNicy5jb3VudChidWZJZCkgPT0gMCkgeworICAgICAgICAgICAgaWYgKGJ1ZiA9PSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBidWZmZXJJZCAlIiBQUkl1NjQgIiBoYXMgbnVsbCBidWZmZXIgaGFuZGxlISIsIF9fRlVOQ1RJT05fXywgYnVmSWQpOworICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvLyBSZWdpc3RlciBhIG5ld2x5IHNlZW4gYnVmZmVyCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgaW1wb3J0ZWRCdWYgPSBidWY7CisgICAgICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuaW1wb3J0QnVmZmVyKGltcG9ydGVkQnVmKTsKKyAgICAgICAgICAgIGlmIChpbXBvcnRlZEJ1ZiA9PSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBvdXRwdXQgYnVmZmVyICV6dSBpcyBpbnZhbGlkISIsIF9fRlVOQ1RJT05fXywgaSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGNic1tidWZJZF0gPSBpbXBvcnRlZEJ1ZjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBhbGxCdWZQdHJzW2ldID0gJmNic1tidWZJZF07CisgICAgfQorCisgICAgLy8gQWxsIGJ1ZmZlcnMgYXJlIGltcG9ydGVkLiBOb3cgdmFsaWRhdGUgb3V0cHV0IGJ1ZmZlciBhY3F1aXJlIGZlbmNlcworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtT3V0cHV0QnVmczsgaSsrKSB7CisgICAgICAgIGlmICghc0hhbmRsZUltcG9ydGVyLmltcG9ydEZlbmNlKAorICAgICAgICAgICAgICAgIHJlcXVlc3Qub3V0cHV0QnVmZmVyc1tpXS5hY3F1aXJlRmVuY2UsIGFsbEZlbmNlc1tpXSkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogb3V0cHV0IGJ1ZmZlciAlenUgYWNxdWlyZSBmZW5jZSBpcyBpbnZhbGlkIiwgX19GVU5DVElPTl9fLCBpKTsKKyAgICAgICAgICAgIGNsZWFudXBJbmZsaWdodEZlbmNlcyhhbGxGZW5jZXMsIGkpOworICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBWYWxpZGF0ZSBpbnB1dCBidWZmZXIgYWNxdWlyZSBmZW5jZXMKKyAgICBpZiAoaGFzSW5wdXRCdWYpIHsKKyAgICAgICAgaWYgKCFzSGFuZGxlSW1wb3J0ZXIuaW1wb3J0RmVuY2UoCisgICAgICAgICAgICAgICAgcmVxdWVzdC5pbnB1dEJ1ZmZlci5hY3F1aXJlRmVuY2UsIGFsbEZlbmNlc1tudW1PdXRwdXRCdWZzXSkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogaW5wdXQgYnVmZmVyIGFjcXVpcmUgZmVuY2UgaXMgaW52YWxpZCIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgICAgICBjbGVhbnVwSW5mbGlnaHRGZW5jZXMoYWxsRmVuY2VzLCBudW1PdXRwdXRCdWZzKTsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OmNsZWFudXBJbmZsaWdodEZlbmNlcygKKyAgICAgICAgaGlkbF92ZWM8aW50PiYgYWxsRmVuY2VzLCBzaXplX3QgbnVtRmVuY2VzKSB7CisgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBudW1GZW5jZXM7IGorKykgeworICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuY2xvc2VGZW5jZShhbGxGZW5jZXNbal0pOworICAgIH0KK30KKworQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6UmVzdWx0QmF0Y2hlcigKKyAgICAgICAgY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiYgY2FsbGJhY2spIDogbUNhbGxiYWNrKGNhbGxiYWNrKSB7fTsKKworYm9vbCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpJbmZsaWdodEJhdGNoOjphbGxEZWxpdmVyZWQoKSBjb25zdCB7CisgICAgaWYgKCFtU2h1dHRlckRlbGl2ZXJlZCkgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKG1QYXJ0aWFsUmVzdWx0UHJvZ3Jlc3MgPCBtTnVtUGFydGlhbFJlc3VsdHMpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGZvciAoY29uc3QgYXV0byYgcGFpciA6IG1CYXRjaEJ1ZnMpIHsKKyAgICAgICAgaWYgKCFwYWlyLnNlY29uZC5tRGVsaXZlcmVkKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6c2V0TnVtUGFydGlhbFJlc3VsdHModWludDMyX3QgbikgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbU51bVBhcnRpYWxSZXN1bHRzID0gbjsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpzZXRCYXRjaGVkU3RyZWFtcygKKyAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgc3RyZWFtc1RvQmF0Y2gpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIG1TdHJlYW1zVG9CYXRjaCA9IHN0cmVhbXNUb0JhdGNoOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnNldFJlc3VsdE1ldGFkYXRhUXVldWUoc3RkOjpzaGFyZWRfcHRyPFJlc3VsdE1ldGFkYXRhUXVldWU+IHEpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIG1SZXN1bHRNZXRhZGF0YVF1ZXVlID0gcTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpyZWdpc3RlckJhdGNoKAorICAgICAgICBjb25zdCBoaWRsX3ZlYzxDYXB0dXJlUmVxdWVzdD4mIHJlcXVlc3RzKSB7CisgICAgYXV0byBiYXRjaCA9IHN0ZDo6bWFrZV9zaGFyZWQ8SW5mbGlnaHRCYXRjaD4oKTsKKyAgICBiYXRjaC0+bUZpcnN0RnJhbWUgPSByZXF1ZXN0c1swXS5mcmFtZU51bWJlcjsKKyAgICBiYXRjaC0+bUJhdGNoU2l6ZSA9IHJlcXVlc3RzLnNpemUoKTsKKyAgICBiYXRjaC0+bUxhc3RGcmFtZSA9IGJhdGNoLT5tRmlyc3RGcmFtZSArIGJhdGNoLT5tQmF0Y2hTaXplIC0gMTsKKyAgICBiYXRjaC0+bU51bVBhcnRpYWxSZXN1bHRzID0gbU51bVBhcnRpYWxSZXN1bHRzOworICAgIGZvciAoaW50IGlkIDogbVN0cmVhbXNUb0JhdGNoKSB7CisgICAgICAgIGJhdGNoLT5tQmF0Y2hCdWZzW2lkXSA9IEluZmxpZ2h0QmF0Y2g6OkJ1ZmZlckJhdGNoKCk7CisgICAgfQorICAgIE11dGV4OjpBdXRvbG9jayBfbChtTG9jayk7CisgICAgbUluZmxpZ2h0QmF0Y2hlcy5wdXNoX2JhY2soYmF0Y2gpOworfQorCitzdGQ6OnBhaXI8aW50LCBzdGQ6OnNoYXJlZF9wdHI8Q2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6SW5mbGlnaHRCYXRjaD4+CitDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpnZXRCYXRjaCgKKyAgICAgICAgdWludDMyX3QgZnJhbWVOdW1iZXIpIHsKKyAgICBNdXRleDo6QXV0b2xvY2sgX2wobUxvY2spOworICAgIGludCBudW1CYXRjaGVzID0gbUluZmxpZ2h0QmF0Y2hlcy5zaXplKCk7CisgICAgaWYgKG51bUJhdGNoZXMgPT0gMCkgeworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoTk9UX0JBVENIRUQsIG51bGxwdHIpOworICAgIH0KKyAgICB1aW50MzJfdCBmcmFtZU1pbiA9IG1JbmZsaWdodEJhdGNoZXNbMF0tPm1GaXJzdEZyYW1lOworICAgIHVpbnQzMl90IGZyYW1lTWF4ID0gbUluZmxpZ2h0QmF0Y2hlc1tudW1CYXRjaGVzIC0gMV0tPm1MYXN0RnJhbWU7CisgICAgaWYgKGZyYW1lTnVtYmVyIDwgZnJhbWVNaW4gfHwgZnJhbWVOdW1iZXIgPiBmcmFtZU1heCkgeworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoTk9UX0JBVENIRUQsIG51bGxwdHIpOworICAgIH0KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUJhdGNoZXM7IGkrKykgeworICAgICAgICBpZiAoZnJhbWVOdW1iZXIgPj0gbUluZmxpZ2h0QmF0Y2hlc1tpXS0+bUZpcnN0RnJhbWUgJiYKKyAgICAgICAgICAgICAgICBmcmFtZU51bWJlciA8PSBtSW5mbGlnaHRCYXRjaGVzW2ldLT5tTGFzdEZyYW1lKSB7CisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoaSwgbUluZmxpZ2h0QmF0Y2hlc1tpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKE5PVF9CQVRDSEVELCBudWxscHRyKTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpjaGVja0FuZFJlbW92ZUZpcnN0QmF0Y2goKSB7CisgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICBpZiAobUluZmxpZ2h0QmF0Y2hlcy5zaXplKCkgPiAwKSB7CisgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCA9IG1JbmZsaWdodEJhdGNoZXNbMF07CisgICAgICAgIGJvb2wgc2hvdWxkUmVtb3ZlID0gZmFsc2U7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChiYXRjaC0+bUxvY2spOworICAgICAgICAgICAgaWYgKGJhdGNoLT5hbGxEZWxpdmVyZWQoKSkgeworICAgICAgICAgICAgICAgIGJhdGNoLT5tUmVtb3ZlZCA9IHRydWU7CisgICAgICAgICAgICAgICAgc2hvdWxkUmVtb3ZlID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoc2hvdWxkUmVtb3ZlKSB7CisgICAgICAgICAgICBtSW5mbGlnaHRCYXRjaGVzLnBvcF9mcm9udCgpOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnNlbmRCYXRjaFNodXR0ZXJDYnNMb2NrZWQoc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+IGJhdGNoKSB7CisgICAgaWYgKGJhdGNoLT5tU2h1dHRlckRlbGl2ZXJlZCkgeworICAgICAgICBBTE9HVygiJXM6IGJhdGNoIHNodXR0ZXIgY2FsbGJhY2sgYWxyZWFkeSBzZW50ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtQ2FsbGJhY2stPm5vdGlmeShiYXRjaC0+bVNodXR0ZXJNc2dzKTsKKyAgICBiYXRjaC0+bVNodXR0ZXJEZWxpdmVyZWQgPSB0cnVlOworICAgIGJhdGNoLT5tU2h1dHRlck1zZ3MuY2xlYXIoKTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpmcmVlUmVsZWFzZUZlbmNlcyhoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiYgcmVzdWx0cykgeworICAgIGZvciAoYXV0byYgcmVzdWx0IDogcmVzdWx0cykgeworICAgICAgICBpZiAocmVzdWx0LmlucHV0QnVmZmVyLnJlbGVhc2VGZW5jZS5nZXROYXRpdmVIYW5kbGUoKSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5yZWxlYXNlRmVuY2UuZ2V0TmF0aXZlSGFuZGxlKCkpOworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoaGFuZGxlKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGF1dG8mIGJ1ZiA6IHJlc3VsdC5vdXRwdXRCdWZmZXJzKSB7CisgICAgICAgICAgICBpZiAoYnVmLnJlbGVhc2VGZW5jZS5nZXROYXRpdmVIYW5kbGUoKSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmLnJlbGVhc2VGZW5jZS5nZXROYXRpdmVIYW5kbGUoKSk7CisgICAgICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoaGFuZGxlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm47Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6c2VuZEJhdGNoQnVmZmVyc0xvY2tlZChzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2gpIHsKKyAgICBzZW5kQmF0Y2hCdWZmZXJzTG9ja2VkKGJhdGNoLCBtU3RyZWFtc1RvQmF0Y2gpOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6OnNlbmRCYXRjaEJ1ZmZlcnNMb2NrZWQoCisgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCwgY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgc3RyZWFtcykgeworICAgIHNpemVfdCBiYXRjaFNpemUgPSAwOworICAgIGZvciAoaW50IHN0cmVhbUlkIDogc3RyZWFtcykgeworICAgICAgICBhdXRvIGl0ID0gYmF0Y2gtPm1CYXRjaEJ1ZnMuZmluZChzdHJlYW1JZCk7CisgICAgICAgIGlmIChpdCAhPSBiYXRjaC0+bUJhdGNoQnVmcy5lbmQoKSkgeworICAgICAgICAgICAgSW5mbGlnaHRCYXRjaDo6QnVmZmVyQmF0Y2gmIGJiID0gaXQtPnNlY29uZDsKKyAgICAgICAgICAgIGlmIChiYi5tRGVsaXZlcmVkKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoYmIubUJ1ZmZlcnMuc2l6ZSgpID4gYmF0Y2hTaXplKSB7CisgICAgICAgICAgICAgICAgYmF0Y2hTaXplID0gYmIubUJ1ZmZlcnMuc2l6ZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBzdHJlYW0gSUQgJWQgaXMgbm90IGJhdGNoZWQhIiwgX19GVU5DVElPTl9fLCBzdHJlYW1JZCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoYmF0Y2hTaXplID09IDApIHsKKyAgICAgICAgQUxPR1coIiVzOiB0aGVyZSBpcyBubyBidWZmZXIgdG8gYmUgZGVsaXZlcmVkIGZvciB0aGlzIGJhdGNoLiIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIGZvciAoaW50IHN0cmVhbUlkIDogc3RyZWFtcykgeworICAgICAgICAgICAgSW5mbGlnaHRCYXRjaDo6QnVmZmVyQmF0Y2gmIGJiID0gYmF0Y2gtPm1CYXRjaEJ1ZnNbc3RyZWFtSWRdOworICAgICAgICAgICAgYmIubURlbGl2ZXJlZCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGhpZGxfdmVjPENhcHR1cmVSZXN1bHQ+IHJlc3VsdHM7CisgICAgcmVzdWx0cy5yZXNpemUoYmF0Y2hTaXplKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJhdGNoU2l6ZTsgaSsrKSB7CisgICAgICAgIHJlc3VsdHNbaV0uZnJhbWVOdW1iZXIgPSBiYXRjaC0+bUZpcnN0RnJhbWUgKyBpOworICAgICAgICByZXN1bHRzW2ldLmZtcVJlc3VsdFNpemUgPSAwOworICAgICAgICByZXN1bHRzW2ldLnBhcnRpYWxSZXN1bHQgPSAwOyAvLyAwIGZvciBidWZmZXIgb25seSByZXN1bHRzCisgICAgICAgIHJlc3VsdHNbaV0uaW5wdXRCdWZmZXIuc3RyZWFtSWQgPSAtMTsKKyAgICAgICAgcmVzdWx0c1tpXS5pbnB1dEJ1ZmZlci5idWZmZXJJZCA9IDA7CisgICAgICAgIHJlc3VsdHNbaV0uaW5wdXRCdWZmZXIuYnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgc3RkOjp2ZWN0b3I8U3RyZWFtQnVmZmVyPiBvdXRCdWZzOworICAgICAgICBmb3IgKGludCBzdHJlYW1JZCA6IHN0cmVhbXMpIHsKKyAgICAgICAgICAgIEluZmxpZ2h0QmF0Y2g6OkJ1ZmZlckJhdGNoJiBiYiA9IGJhdGNoLT5tQmF0Y2hCdWZzW3N0cmVhbUlkXTsKKyAgICAgICAgICAgIGlmIChiYi5tRGVsaXZlcmVkKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoaSA8IGJiLm1CdWZmZXJzLnNpemUoKSkgeworICAgICAgICAgICAgICAgIG91dEJ1ZnMucHVzaF9iYWNrKGJiLm1CdWZmZXJzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXN1bHRzW2ldLm91dHB1dEJ1ZmZlcnMgPSBvdXRCdWZzOworICAgIH0KKyAgICBpbnZva2VQcm9jZXNzQ2FwdHVyZVJlc3VsdENhbGxiYWNrKHJlc3VsdHMsIC8qIHRyeVdyaXRlRm1xICovZmFsc2UpOworICAgIGZyZWVSZWxlYXNlRmVuY2VzKHJlc3VsdHMpOworICAgIGZvciAoaW50IHN0cmVhbUlkIDogc3RyZWFtcykgeworICAgICAgICBJbmZsaWdodEJhdGNoOjpCdWZmZXJCYXRjaCYgYmIgPSBiYXRjaC0+bUJhdGNoQnVmc1tzdHJlYW1JZF07CisgICAgICAgIGJiLm1EZWxpdmVyZWQgPSB0cnVlOworICAgICAgICBiYi5tQnVmZmVycy5jbGVhcigpOworICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjpzZW5kQmF0Y2hNZXRhZGF0YUxvY2tlZCgKKyAgICBzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2gsIHVpbnQzMl90IGxhc3RQYXJ0aWFsUmVzdWx0SWR4KSB7CisgICAgaWYgKGxhc3RQYXJ0aWFsUmVzdWx0SWR4IDw9IGJhdGNoLT5tUGFydGlhbFJlc3VsdFByb2dyZXNzKSB7CisgICAgICAgIC8vIFJlc3VsdCBoYXMgYmVlbiBkZWxpdmVyZWQuIFJldHVybgorICAgICAgICBBTE9HVygiJXM6IHBhcnRpYWwgcmVzdWx0ICV1IGhhcyBiZWVuIGRlbGl2ZXJlZCIsIF9fRlVOQ1RJT05fXywgbGFzdFBhcnRpYWxSZXN1bHRJZHgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RkOjp2ZWN0b3I8Q2FwdHVyZVJlc3VsdD4gcmVzdWx0czsKKyAgICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4gdG9CZVJlbW92ZWRJZHhlczsKKyAgICBmb3IgKGF1dG8mIHBhaXIgOiBiYXRjaC0+bVJlc3VsdE1kcykgeworICAgICAgICB1aW50MzJfdCBwYXJ0aWFsSWR4ID0gcGFpci5maXJzdDsKKyAgICAgICAgaWYgKHBhcnRpYWxJZHggPiBsYXN0UGFydGlhbFJlc3VsdElkeCkgeworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgdG9CZVJlbW92ZWRJZHhlcy5wdXNoX2JhY2socGFydGlhbElkeCk7CisgICAgICAgIEluZmxpZ2h0QmF0Y2g6Ok1ldGFkYXRhQmF0Y2gmIG1iID0gcGFpci5zZWNvbmQ7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcCA6IG1iLm1NZHMpIHsKKyAgICAgICAgICAgIENhcHR1cmVSZXN1bHQgcmVzdWx0OworICAgICAgICAgICAgcmVzdWx0LmZyYW1lTnVtYmVyID0gcC5maXJzdDsKKyAgICAgICAgICAgIHJlc3VsdC5yZXN1bHQgPSBzdGQ6Om1vdmUocC5zZWNvbmQpOworICAgICAgICAgICAgcmVzdWx0LmZtcVJlc3VsdFNpemUgPSAwOworICAgICAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLnN0cmVhbUlkID0gLTE7CisgICAgICAgICAgICByZXN1bHQuaW5wdXRCdWZmZXIuYnVmZmVySWQgPSAwOworICAgICAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLmJ1ZmZlciA9IG51bGxwdHI7CisgICAgICAgICAgICByZXN1bHQucGFydGlhbFJlc3VsdCA9IHBhcnRpYWxJZHg7CisgICAgICAgICAgICByZXN1bHRzLnB1c2hfYmFjayhzdGQ6Om1vdmUocmVzdWx0KSk7CisgICAgICAgIH0KKyAgICAgICAgbWIubU1kcy5jbGVhcigpOworICAgIH0KKyAgICBoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiBoUmVzdWx0czsKKyAgICBoUmVzdWx0cy5zZXRUb0V4dGVybmFsKHJlc3VsdHMuZGF0YSgpLCByZXN1bHRzLnNpemUoKSk7CisgICAgaW52b2tlUHJvY2Vzc0NhcHR1cmVSZXN1bHRDYWxsYmFjayhoUmVzdWx0cywgLyogdHJ5V3JpdGVGbXEgKi90cnVlKTsKKyAgICBiYXRjaC0+bVBhcnRpYWxSZXN1bHRQcm9ncmVzcyA9IGxhc3RQYXJ0aWFsUmVzdWx0SWR4OworICAgIGZvciAodWludDMyX3QgcGFydGlhbElkeCA6IHRvQmVSZW1vdmVkSWR4ZXMpIHsKKyAgICAgICAgYmF0Y2gtPm1SZXN1bHRNZHMuZXJhc2UocGFydGlhbElkeCk7CisgICAgfQorfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OlJlc3VsdEJhdGNoZXI6Om5vdGlmeVNpbmdsZU1zZyhOb3RpZnlNc2cmIG1zZykgeworICAgIG1DYWxsYmFjay0+bm90aWZ5KHttc2d9KTsKKyAgICByZXR1cm47Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6bm90aWZ5KE5vdGlmeU1zZyYgbXNnKSB7CisgICAgdWludDMyX3QgZnJhbWVOdW1iZXI7CisgICAgaWYgKENDX0xJS0VMWShtc2cudHlwZSA9PSBNc2dUeXBlOjpTSFVUVEVSKSkgeworICAgICAgICBmcmFtZU51bWJlciA9IG1zZy5tc2cuc2h1dHRlci5mcmFtZU51bWJlcjsKKyAgICB9IGVsc2UgeworICAgICAgICBmcmFtZU51bWJlciA9IG1zZy5tc2cuZXJyb3IuZnJhbWVOdW1iZXI7CisgICAgfQorCisgICAgYXV0byBwYWlyID0gZ2V0QmF0Y2goZnJhbWVOdW1iZXIpOworICAgIGludCBiYXRjaElkeCA9IHBhaXIuZmlyc3Q7CisgICAgaWYgKGJhdGNoSWR4ID09IE5PVF9CQVRDSEVEKSB7CisgICAgICAgIG5vdGlmeVNpbmdsZU1zZyhtc2cpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gV2hlbiBlcnJvciBoYXBwZW5lZCwgc3RvcCBiYXRjaGluZyBmb3IgYWxsIGJhdGNoZXMgZWFybGllcgorICAgIGlmIChDQ19VTkxJS0VMWShtc2cudHlwZSA9PSBNc2dUeXBlOjpFUlJPUikpIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1Mb2NrKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPD0gYmF0Y2hJZHg7IGkrKykgeworICAgICAgICAgICAgLy8gU2VuZCBiYXRjaGVkIGRhdGEgdXAKKyAgICAgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCA9IG1JbmZsaWdodEJhdGNoZXNbMF07CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGJhdGNoLT5tTG9jayk7CisgICAgICAgICAgICAgICAgc2VuZEJhdGNoU2h1dHRlckNic0xvY2tlZChiYXRjaCk7CisgICAgICAgICAgICAgICAgc2VuZEJhdGNoQnVmZmVyc0xvY2tlZChiYXRjaCk7CisgICAgICAgICAgICAgICAgc2VuZEJhdGNoTWV0YWRhdGFMb2NrZWQoYmF0Y2gsIG1OdW1QYXJ0aWFsUmVzdWx0cyk7CisgICAgICAgICAgICAgICAgaWYgKCFiYXRjaC0+YWxsRGVsaXZlcmVkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBlcnJvcjogc29tZSBiYXRjaCBkYXRhIG5vdCBzZW50IGJhY2sgdG8gZnJhbWV3b3JrISIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYmF0Y2gtPm1SZW1vdmVkID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1JbmZsaWdodEJhdGNoZXMucG9wX2Zyb250KCk7CisgICAgICAgIH0KKyAgICAgICAgLy8gU2VuZCB0aGUgZXJyb3IgdXAKKyAgICAgICAgbm90aWZ5U2luZ2xlTXNnKG1zZyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8gUXVldWUgc2h1dHRlciBjYWxsYmFja3MgZm9yIGZ1dHVyZSBkZWxpdmVyeQorICAgIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCA9IHBhaXIuc2Vjb25kOworICAgIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGJhdGNoLT5tTG9jayk7CisgICAgICAgIC8vIENoZWNrIGlmIHRoZSBiYXRjaCBpcyByZW1vdmVkIChtb3N0bHkgYnkgbm90aWZ5IGVycm9yKSBiZWZvcmUgbG9jayB3YXMgYWNxdWlyZWQKKyAgICAgICAgaWYgKGJhdGNoLT5tUmVtb3ZlZCkgeworICAgICAgICAgICAgLy8gRmFsbCBiYWNrIHRvIG5vbi1iYXRjaCBwYXRoCisgICAgICAgICAgICBub3RpZnlTaW5nbGVNc2cobXNnKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGJhdGNoLT5tU2h1dHRlck1zZ3MucHVzaF9iYWNrKG1zZyk7CisgICAgICAgIGlmIChmcmFtZU51bWJlciA9PSBiYXRjaC0+bUxhc3RGcmFtZSkgeworICAgICAgICAgICAgc2VuZEJhdGNoU2h1dHRlckNic0xvY2tlZChiYXRjaCk7CisgICAgICAgIH0KKyAgICB9IC8vIGVuZCBvZiBiYXRjaCBsb2NrIHNjb3BlCisKKyAgICAvLyBzZWUgaWYgdGhlIGJhdGNoIGlzIGNvbXBsZXRlCisgICAgaWYgKGZyYW1lTnVtYmVyID09IGJhdGNoLT5tTGFzdEZyYW1lKSB7CisgICAgICAgIGNoZWNrQW5kUmVtb3ZlRmlyc3RCYXRjaCgpOworICAgIH0KK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpSZXN1bHRCYXRjaGVyOjppbnZva2VQcm9jZXNzQ2FwdHVyZVJlc3VsdENhbGxiYWNrKAorICAgICAgICBoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiAmcmVzdWx0cywgYm9vbCB0cnlXcml0ZUZtcSkgeworICAgIGlmIChtUHJvY2Vzc0NhcHR1cmVSZXN1bHRMb2NrLnRyeUxvY2soKSAhPSBPSykgeworICAgICAgICBBTE9HVygiJXM6IHByZXZpb3VzIGNhbGwgaXMgbm90IGZpbmlzaGVkISB3YWl0aW5nIDFzLi4uIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18pOworICAgICAgICBpZiAobVByb2Nlc3NDYXB0dXJlUmVzdWx0TG9jay50aW1lZExvY2soMTAwMDAwMDAwMCAvKiAxcyAqLykgIT0gT0spIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogY2Fubm90IGFjcXVpcmUgbG9jayBpbiAxcywgY2Fubm90IHByb2NlZWQiLAorICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIGlmICh0cnlXcml0ZUZtcSAmJiBtUmVzdWx0TWV0YWRhdGFRdWV1ZS0+YXZhaWxhYmxlVG9Xcml0ZSgpID4gMCkgeworICAgICAgICBmb3IgKENhcHR1cmVSZXN1bHQgJnJlc3VsdCA6IHJlc3VsdHMpIHsKKyAgICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0LnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgICAgICBpZiAobVJlc3VsdE1ldGFkYXRhUXVldWUtPndyaXRlKHJlc3VsdC5yZXN1bHQuZGF0YSgpLCByZXN1bHQucmVzdWx0LnNpemUoKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmZtcVJlc3VsdFNpemUgPSByZXN1bHQucmVzdWx0LnNpemUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnJlc3VsdC5yZXNpemUoMCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR1coIiVzOiBjb3VsZG4ndCB1dGlsaXplIGZtcSwgZmFsbCBiYWNrIHRvIGh3YmluZGVyIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmZtcVJlc3VsdFNpemUgPSAwOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBtQ2FsbGJhY2stPnByb2Nlc3NDYXB0dXJlUmVzdWx0KHJlc3VsdHMpOworICAgIG1Qcm9jZXNzQ2FwdHVyZVJlc3VsdExvY2sudW5sb2NrKCk7Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6cHJvY2Vzc09uZUNhcHR1cmVSZXN1bHQoQ2FwdHVyZVJlc3VsdCYgcmVzdWx0KSB7CisgICAgaGlkbF92ZWM8Q2FwdHVyZVJlc3VsdD4gcmVzdWx0cyA9IHtyZXN1bHR9OworICAgIGludm9rZVByb2Nlc3NDYXB0dXJlUmVzdWx0Q2FsbGJhY2socmVzdWx0cywgLyogdHJ5V3JpdGVGbXEgKi90cnVlKTsKKyAgICBmcmVlUmVsZWFzZUZlbmNlcyhyZXN1bHRzKTsKKyAgICByZXR1cm47Cit9CisKK3ZvaWQgQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6UmVzdWx0QmF0Y2hlcjo6cHJvY2Vzc0NhcHR1cmVSZXN1bHQoQ2FwdHVyZVJlc3VsdCYgcmVzdWx0KSB7CisgICAgYXV0byBwYWlyID0gZ2V0QmF0Y2gocmVzdWx0LmZyYW1lTnVtYmVyKTsKKyAgICBpbnQgYmF0Y2hJZHggPSBwYWlyLmZpcnN0OworICAgIGlmIChiYXRjaElkeCA9PSBOT1RfQkFUQ0hFRCkgeworICAgICAgICBwcm9jZXNzT25lQ2FwdHVyZVJlc3VsdChyZXN1bHQpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCA9IHBhaXIuc2Vjb25kOworICAgIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGJhdGNoLT5tTG9jayk7CisgICAgICAgIC8vIENoZWNrIGlmIHRoZSBiYXRjaCBpcyByZW1vdmVkIChtb3N0bHkgYnkgbm90aWZ5IGVycm9yKSBiZWZvcmUgbG9jayB3YXMgYWNxdWlyZWQKKyAgICAgICAgaWYgKGJhdGNoLT5tUmVtb3ZlZCkgeworICAgICAgICAgICAgLy8gRmFsbCBiYWNrIHRvIG5vbi1iYXRjaCBwYXRoCisgICAgICAgICAgICBwcm9jZXNzT25lQ2FwdHVyZVJlc3VsdChyZXN1bHQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLy8gcXVldWUgbWV0YWRhdGEKKyAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHQuc2l6ZSgpICE9IDApIHsKKyAgICAgICAgICAgIC8vIFNhdmUgYSBjb3B5IG9mIG1ldGFkYXRhCisgICAgICAgICAgICBiYXRjaC0+bVJlc3VsdE1kc1tyZXN1bHQucGFydGlhbFJlc3VsdF0ubU1kcy5wdXNoX2JhY2soCisgICAgICAgICAgICAgICAgICAgIHN0ZDo6bWFrZV9wYWlyKHJlc3VsdC5mcmFtZU51bWJlciwgcmVzdWx0LnJlc3VsdCkpOworICAgICAgICB9CisKKyAgICAgICAgLy8gcXVldWUgYnVmZmVyCisgICAgICAgIHN0ZDo6dmVjdG9yPGludD4gZmlsbGVkU3RyZWFtczsKKyAgICAgICAgc3RkOjp2ZWN0b3I8U3RyZWFtQnVmZmVyPiBub25CYXRjaGVkQnVmZmVyczsKKyAgICAgICAgZm9yIChhdXRvJiBidWZmZXIgOiByZXN1bHQub3V0cHV0QnVmZmVycykgeworICAgICAgICAgICAgYXV0byBpdCA9IGJhdGNoLT5tQmF0Y2hCdWZzLmZpbmQoYnVmZmVyLnN0cmVhbUlkKTsKKyAgICAgICAgICAgIGlmIChpdCAhPSBiYXRjaC0+bUJhdGNoQnVmcy5lbmQoKSkgeworICAgICAgICAgICAgICAgIEluZmxpZ2h0QmF0Y2g6OkJ1ZmZlckJhdGNoJiBiYiA9IGl0LT5zZWNvbmQ7CisgICAgICAgICAgICAgICAgYmIubUJ1ZmZlcnMucHVzaF9iYWNrKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgZmlsbGVkU3RyZWFtcy5wdXNoX2JhY2soYnVmZmVyLnN0cmVhbUlkKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbm9uQmF0Y2hlZEJ1ZmZlcnMucHVzaF9iYWNrKGJ1ZmZlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICAvLyBzZW5kIG5vbi1iYXRjaGVkIGJ1ZmZlcnMgdXAKKyAgICAgICAgaWYgKG5vbkJhdGNoZWRCdWZmZXJzLnNpemUoKSA+IDAgfHwgcmVzdWx0LmlucHV0QnVmZmVyLnN0cmVhbUlkICE9IC0xKSB7CisgICAgICAgICAgICBDYXB0dXJlUmVzdWx0IG5vbkJhdGNoZWRSZXN1bHQ7CisgICAgICAgICAgICBub25CYXRjaGVkUmVzdWx0LmZyYW1lTnVtYmVyID0gcmVzdWx0LmZyYW1lTnVtYmVyOworICAgICAgICAgICAgbm9uQmF0Y2hlZFJlc3VsdC5mbXFSZXN1bHRTaXplID0gMDsKKyAgICAgICAgICAgIG5vbkJhdGNoZWRSZXN1bHQub3V0cHV0QnVmZmVycyA9IG5vbkJhdGNoZWRCdWZmZXJzOworICAgICAgICAgICAgbm9uQmF0Y2hlZFJlc3VsdC5pbnB1dEJ1ZmZlciA9IHJlc3VsdC5pbnB1dEJ1ZmZlcjsKKyAgICAgICAgICAgIG5vbkJhdGNoZWRSZXN1bHQucGFydGlhbFJlc3VsdCA9IDA7IC8vIDAgZm9yIGJ1ZmZlciBvbmx5IHJlc3VsdHMKKyAgICAgICAgICAgIHByb2Nlc3NPbmVDYXB0dXJlUmVzdWx0KG5vbkJhdGNoZWRSZXN1bHQpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHJlc3VsdC5mcmFtZU51bWJlciA9PSBiYXRjaC0+bUxhc3RGcmFtZSkgeworICAgICAgICAgICAgLy8gU2VuZCBkYXRhIHVwCisgICAgICAgICAgICBpZiAocmVzdWx0LnBhcnRpYWxSZXN1bHQgPiAwKSB7CisgICAgICAgICAgICAgICAgc2VuZEJhdGNoTWV0YWRhdGFMb2NrZWQoYmF0Y2gsIHJlc3VsdC5wYXJ0aWFsUmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8vIHNlbmQgYnVmZmVyIHVwCisgICAgICAgICAgICBpZiAoZmlsbGVkU3RyZWFtcy5zaXplKCkgPiAwKSB7CisgICAgICAgICAgICAgICAgc2VuZEJhdGNoQnVmZmVyc0xvY2tlZChiYXRjaCwgZmlsbGVkU3RyZWFtcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IC8vIGVuZCBvZiBiYXRjaCBsb2NrIHNjb3BlCisKKyAgICAvLyBzZWUgaWYgdGhlIGJhdGNoIGlzIGNvbXBsZXRlCisgICAgaWYgKHJlc3VsdC5mcmFtZU51bWJlciA9PSBiYXRjaC0+bUxhc3RGcmFtZSkgeworICAgICAgICBjaGVja0FuZFJlbW92ZUZpcnN0QmF0Y2goKTsKKyAgICB9Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZVNlc3Npb24gZm9sbG93LgorUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZVNlc3Npb246OmNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MoCisgICAgICAgIFJlcXVlc3RUZW1wbGF0ZSB0eXBlLCBjb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzX2NiIF9oaWRsX2NiKSAgeworICAgIFN0YXR1cyBzdGF0dXMgPSBpbml0U3RhdHVzKCk7CisgICAgQ2FtZXJhTWV0YWRhdGEgb3V0TWV0YWRhdGE7CisgICAgY29uc3QgY2FtZXJhX21ldGFkYXRhX3QgKnJhd1JlcXVlc3Q7CisgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhMy0+Y29uc3RydWN0X2RlZmF1bHRfcmVxdWVzdF9zZXR0aW5ncyIpOworICAgICAgICByYXdSZXF1ZXN0ID0gbURldmljZS0+b3BzLT5jb25zdHJ1Y3RfZGVmYXVsdF9yZXF1ZXN0X3NldHRpbmdzKG1EZXZpY2UsIChpbnQpIHR5cGUpOworICAgICAgICBBVFJBQ0VfRU5EKCk7CisgICAgICAgIGlmIChyYXdSZXF1ZXN0ID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlczogdGVtcGxhdGUgJWQgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGNhbWVyYSBkZXZpY2UiLAorICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCB0eXBlKTsKKyAgICAgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1PdmVycmlkZW5SZXF1ZXN0LmNsZWFyKCk7CisgICAgICAgICAgICBtT3ZlcnJpZGVuUmVxdWVzdC5hcHBlbmQocmF3UmVxdWVzdCk7CisgICAgICAgICAgICAvLyBEZXJpdmUgc29tZSBuZXcga2V5cyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorICAgICAgICAgICAgaWYgKG1EZXJpdmVQb3N0UmF3U2Vuc0tleSAmJiAhbU92ZXJyaWRlblJlcXVlc3QuZXhpc3RzKAorICAgICAgICAgICAgICAgICAgICBBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1QpKSB7CisgICAgICAgICAgICAgICAgaW50MzJfdCBkZWZhdWx0Qm9vc3RbMV0gPSB7MTAwfTsKKyAgICAgICAgICAgICAgICBtT3ZlcnJpZGVuUmVxdWVzdC51cGRhdGUoCisgICAgICAgICAgICAgICAgICAgICAgICBBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1QsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Qm9vc3QsIDEpOworICAgICAgICAgICAgICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90ICptZXRhQnVmZmVyID0KKyAgICAgICAgICAgICAgICAgICAgICAgIG1PdmVycmlkZW5SZXF1ZXN0LmdldEFuZExvY2soKTsKKyAgICAgICAgICAgICAgICBjb252ZXJ0VG9IaWRsKG1ldGFCdWZmZXIsICZvdXRNZXRhZGF0YSk7CisgICAgICAgICAgICAgICAgbU92ZXJyaWRlblJlcXVlc3QudW5sb2NrKG1ldGFCdWZmZXIpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBjb252ZXJ0VG9IaWRsKHJhd1JlcXVlc3QsICZvdXRNZXRhZGF0YSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgX2hpZGxfY2Ioc3RhdHVzLCBvdXRNZXRhZGF0YSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworLyoqCisgKiBNYXAgQW5kcm9pZCBOIGRhdGFzcGFjZSBkZWZpbml0aW9ucyBiYWNrIHRvIEFuZHJvaWQgTSBkZWZpbml0aW9ucywgZm9yCisgKiB1c2Ugd2l0aCBIQUx2My4zIG9yIG9sZGVyLgorICoKKyAqIE9ubHkgbWFwIHdoZXJlIGNvcnJlc3BvbmRlbmNlcyBleGlzdCwgYW5kIG90aGVyd2lzZSBwcmVzZXJ2ZSB0aGUgdmFsdWUuCisgKi8KK2FuZHJvaWRfZGF0YXNwYWNlIENhbWVyYURldmljZVNlc3Npb246Om1hcFRvTGVnYWN5RGF0YXNwYWNlKAorICAgICAgICBhbmRyb2lkX2RhdGFzcGFjZSBkYXRhU3BhY2UpIGNvbnN0IHsKKyAgICBpZiAobURldmljZVZlcnNpb24gPD0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzMpIHsKKyAgICAgICAgc3dpdGNoIChkYXRhU3BhY2UpIHsKKyAgICAgICAgICAgIGNhc2UgSEFMX0RBVEFTUEFDRV9WMF9TUkdCX0xJTkVBUjoKKyAgICAgICAgICAgICAgICByZXR1cm4gSEFMX0RBVEFTUEFDRV9TUkdCX0xJTkVBUjsKKyAgICAgICAgICAgIGNhc2UgSEFMX0RBVEFTUEFDRV9WMF9TUkdCOgorICAgICAgICAgICAgICAgIHJldHVybiBIQUxfREFUQVNQQUNFX1NSR0I7CisgICAgICAgICAgICBjYXNlIEhBTF9EQVRBU1BBQ0VfVjBfSkZJRjoKKyAgICAgICAgICAgICAgICByZXR1cm4gSEFMX0RBVEFTUEFDRV9KRklGOworICAgICAgICAgICAgY2FzZSBIQUxfREFUQVNQQUNFX1YwX0JUNjAxXzYyNToKKyAgICAgICAgICAgICAgICByZXR1cm4gSEFMX0RBVEFTUEFDRV9CVDYwMV82MjU7CisgICAgICAgICAgICBjYXNlIEhBTF9EQVRBU1BBQ0VfVjBfQlQ2MDFfNTI1OgorICAgICAgICAgICAgICAgIHJldHVybiBIQUxfREFUQVNQQUNFX0JUNjAxXzUyNTsKKyAgICAgICAgICAgIGNhc2UgSEFMX0RBVEFTUEFDRV9WMF9CVDcwOToKKyAgICAgICAgICAgICAgICByZXR1cm4gSEFMX0RBVEFTUEFDRV9CVDcwOTsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGFTcGFjZTsKKyAgICAgICAgfQorICAgIH0KKworICAgcmV0dXJuIGRhdGFTcGFjZTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZVNlc3Npb246OmNvbmZpZ3VyZVN0cmVhbXMoCisgICAgICAgIGNvbnN0IFN0cmVhbUNvbmZpZ3VyYXRpb24mIHJlcXVlc3RlZENvbmZpZ3VyYXRpb24sIGNvbmZpZ3VyZVN0cmVhbXNfY2IgX2hpZGxfY2IpICB7CisgICAgU3RhdHVzIHN0YXR1cyA9IGluaXRTdGF0dXMoKTsKKyAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uIG91dFN0cmVhbXM7CisKKyAgICAvLyBob2xkIHRoZSBpbmZsaWdodCBsb2NrIGZvciBlbnRpcmUgY29uZmlndXJlU3RyZWFtcyBzY29wZSBzaW5jZSB0aGVyZSBtdXN0IG5vdCBiZSBhbnkKKyAgICAvLyBpbmZsaWdodCByZXF1ZXN0L3Jlc3VsdHMgZHVyaW5nIHN0cmVhbSBjb25maWd1cmF0aW9uLgorICAgIE11dGV4OjpBdXRvbG9jayBfbChtSW5mbGlnaHRMb2NrKTsKKyAgICBpZiAoIW1JbmZsaWdodEJ1ZmZlcnMuZW1wdHkoKSkgeworICAgICAgICBBTE9HRSgiJXM6IHRyeWluZyB0byBjb25maWd1cmVTdHJlYW1zIHdoaWxlIHRoZXJlIGFyZSBzdGlsbCAlenUgaW5mbGlnaHQgYnVmZmVycyEiLAorICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgbUluZmxpZ2h0QnVmZmVycy5zaXplKCkpOworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBvdXRTdHJlYW1zKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpZiAoIW1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlcy5lbXB0eSgpKSB7CisgICAgICAgIEFMT0dFKCIlczogdHJ5aW5nIHRvIGNvbmZpZ3VyZVN0cmVhbXMgd2hpbGUgdGhlcmUgYXJlIHN0aWxsICV6dSBpbmZsaWdodCIKKyAgICAgICAgICAgICAgICAiIHRyaWdnZXIgb3ZlcnJpZGVzISIsIF9fRlVOQ1RJT05fXywKKyAgICAgICAgICAgICAgICBtSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuc2l6ZSgpKTsKKyAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgb3V0U3RyZWFtcyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaWYgKCFtSW5mbGlnaHRSYXdCb29zdFByZXNlbnQuZW1wdHkoKSkgeworICAgICAgICBBTE9HRSgiJXM6IHRyeWluZyB0byBjb25maWd1cmVTdHJlYW1zIHdoaWxlIHRoZXJlIGFyZSBzdGlsbCAlenUgaW5mbGlnaHQiCisgICAgICAgICAgICAgICAgIiBib29zdCBvdmVycmlkZXMhIiwgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgICAgIG1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5zaXplKCkpOworICAgICAgICBfaGlkbF9jYihTdGF0dXM6OklOVEVSTkFMX0VSUk9SLCBvdXRTdHJlYW1zKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpZiAoc3RhdHVzICE9IFN0YXR1czo6T0spIHsKKyAgICAgICAgX2hpZGxfY2Ioc3RhdHVzLCBvdXRTdHJlYW1zKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBjYW1lcmEzX3N0cmVhbV9jb25maWd1cmF0aW9uX3Qgc3RyZWFtX2xpc3Q7CisgICAgaGlkbF92ZWM8Y2FtZXJhM19zdHJlYW1fdCo+IHN0cmVhbXM7CisKKyAgICBzdHJlYW1fbGlzdC5vcGVyYXRpb25fbW9kZSA9ICh1aW50MzJfdCkgcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5vcGVyYXRpb25Nb2RlOworICAgIHN0cmVhbV9saXN0Lm51bV9zdHJlYW1zID0gcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zLnNpemUoKTsKKyAgICBzdHJlYW1zLnJlc2l6ZShzdHJlYW1fbGlzdC5udW1fc3RyZWFtcyk7CisgICAgc3RyZWFtX2xpc3Quc3RyZWFtcyA9IHN0cmVhbXMuZGF0YSgpOworCisgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHN0cmVhbV9saXN0Lm51bV9zdHJlYW1zOyBpKyspIHsKKyAgICAgICAgaW50IGlkID0gcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLmlkOworCisgICAgICAgIGlmIChtU3RyZWFtTWFwLmNvdW50KGlkKSA9PSAwKSB7CisgICAgICAgICAgICBDYW1lcmEzU3RyZWFtIHN0cmVhbTsKKyAgICAgICAgICAgIGNvbnZlcnRGcm9tSGlkbChyZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXNbaV0sICZzdHJlYW0pOworICAgICAgICAgICAgbVN0cmVhbU1hcFtpZF0gPSBzdHJlYW07CisgICAgICAgICAgICBtU3RyZWFtTWFwW2lkXS5kYXRhX3NwYWNlID0gbWFwVG9MZWdhY3lEYXRhc3BhY2UoCisgICAgICAgICAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdLmRhdGFfc3BhY2UpOworICAgICAgICAgICAgbUNpcmN1bGF0aW5nQnVmZmVycy5lbXBsYWNlKHN0cmVhbS5tSWQsIENpcmN1bGF0aW5nQnVmZmVyc3t9KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIHdpZHRoL2hlaWdodC9mb3JtYXQgbXVzdCBub3QgY2hhbmdlLCBidXQgdXNhZ2Uvcm90YXRpb24gbWlnaHQgbmVlZCB0byBjaGFuZ2UKKyAgICAgICAgICAgIGlmIChtU3RyZWFtTWFwW2lkXS5zdHJlYW1fdHlwZSAhPQorICAgICAgICAgICAgICAgICAgICAoaW50KSByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXNbaV0uc3RyZWFtVHlwZSB8fAorICAgICAgICAgICAgICAgICAgICBtU3RyZWFtTWFwW2lkXS53aWR0aCAhPSByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXNbaV0ud2lkdGggfHwKKyAgICAgICAgICAgICAgICAgICAgbVN0cmVhbU1hcFtpZF0uaGVpZ2h0ICE9IHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtc1tpXS5oZWlnaHQgfHwKKyAgICAgICAgICAgICAgICAgICAgbVN0cmVhbU1hcFtpZF0uZm9ybWF0ICE9IChpbnQpIHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtc1tpXS5mb3JtYXQgfHwKKyAgICAgICAgICAgICAgICAgICAgbVN0cmVhbU1hcFtpZF0uZGF0YV9zcGFjZSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcFRvTGVnYWN5RGF0YXNwYWNlKCBzdGF0aWNfY2FzdDxhbmRyb2lkX2RhdGFzcGFjZV90PiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXNbaV0uZGF0YVNwYWNlKSkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IHN0cmVhbSAlZCBjb25maWd1cmF0aW9uIGNoYW5nZWQhIiwgX19GVU5DVElPTl9fLCBpZCk7CisgICAgICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgb3V0U3RyZWFtcyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1TdHJlYW1NYXBbaWRdLnJvdGF0aW9uID0gKGludCkgcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zW2ldLnJvdGF0aW9uOworICAgICAgICAgICAgbVN0cmVhbU1hcFtpZF0udXNhZ2UgPSAodWludDMyX3QpIHJlcXVlc3RlZENvbmZpZ3VyYXRpb24uc3RyZWFtc1tpXS51c2FnZTsKKyAgICAgICAgfQorICAgICAgICBzdHJlYW1zW2ldID0gJm1TdHJlYW1NYXBbaWRdOworICAgIH0KKworICAgIEFUUkFDRV9CRUdJTigiY2FtZXJhMy0+Y29uZmlndXJlX3N0cmVhbXMiKTsKKyAgICBzdGF0dXNfdCByZXQgPSBtRGV2aWNlLT5vcHMtPmNvbmZpZ3VyZV9zdHJlYW1zKG1EZXZpY2UsICZzdHJlYW1fbGlzdCk7CisgICAgQVRSQUNFX0VORCgpOworCisgICAgLy8gSW4gY2FzZSBIYWwgcmV0dXJucyBlcnJvciBtb3N0IGxpa2VseSBpdCB3YXMgbm90IGFibGUgdG8gcmVsZWFzZQorICAgIC8vIHRoZSBjb3JyZXNwb25kaW5nIHJlc291cmNlcyBvZiB0aGUgZGVsZXRlZCBzdHJlYW1zLgorICAgIGlmIChyZXQgPT0gT0spIHsKKyAgICAgICAgLy8gZGVsZXRlIHVudXNlZCBzdHJlYW1zLCBub3RlIHdlIGRvIHRoaXMgYWZ0ZXIgYWRkaW5nIG5ldyBzdHJlYW1zIHRvIGVuc3VyZSBuZXcgc3RyZWFtCisgICAgICAgIC8vIHdpbGwgbm90IGhhdmUgdGhlIHNhbWUgYWRkcmVzcyBhcyBkZWxldGVkIHN0cmVhbSwgYW5kIEhBTCBoYXMgYSBjaGFuY2UgdG8gcmVmZXJlbmNlCisgICAgICAgIC8vIHRoZSB0byBiZSBkZWxldGVkIHN0cmVhbSBpbiBjb25maWd1cmVfc3RyZWFtcyBjYWxsCisgICAgICAgIGZvcihhdXRvIGl0ID0gbVN0cmVhbU1hcC5iZWdpbigpOyBpdCAhPSBtU3RyZWFtTWFwLmVuZCgpOykgeworICAgICAgICAgICAgaW50IGlkID0gaXQtPmZpcnN0OworICAgICAgICAgICAgYm9vbCBmb3VuZCA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBzdHJlYW0gOiByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLnN0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICBpZiAoaWQgPT0gc3RyZWFtLmlkKSB7CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFmb3VuZCkgeworICAgICAgICAgICAgICAgIC8vIFVubWFwIGFsbCBidWZmZXJzIG9mIGRlbGV0ZWQgc3RyZWFtCisgICAgICAgICAgICAgICAgLy8gaW4gY2FzZSB0aGUgY29uZmlndXJhdGlvbiBjYWxsIHN1Y2NlZWRzIGFuZCBIQUwKKyAgICAgICAgICAgICAgICAvLyBpcyBhYmxlIHRvIHJlbGVhc2UgdGhlIGNvcnJlc3BvbmRpbmcgcmVzb3VyY2VzIHRvby4KKyAgICAgICAgICAgICAgICBjbGVhbnVwQnVmZmVyc0xvY2tlZChpZCk7CisgICAgICAgICAgICAgICAgaXQgPSBtU3RyZWFtTWFwLmVyYXNlKGl0KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgKytpdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFRyYWNrIHZpZGVvIHN0cmVhbXMKKyAgICAgICAgbVZpZGVvU3RyZWFtSWRzLmNsZWFyKCk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgc3RyZWFtIDogcmVxdWVzdGVkQ29uZmlndXJhdGlvbi5zdHJlYW1zKSB7CisgICAgICAgICAgICBpZiAoc3RyZWFtLnN0cmVhbVR5cGUgPT0gU3RyZWFtVHlwZTo6T1VUUFVUICYmCisgICAgICAgICAgICAgICAgc3RyZWFtLnVzYWdlICYKKyAgICAgICAgICAgICAgICAgICAgZ3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6QnVmZmVyVXNhZ2U6OlZJREVPX0VOQ09ERVIpIHsKKyAgICAgICAgICAgICAgICBtVmlkZW9TdHJlYW1JZHMucHVzaF9iYWNrKHN0cmVhbS5pZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgbVJlc3VsdEJhdGNoZXIuc2V0QmF0Y2hlZFN0cmVhbXMobVZpZGVvU3RyZWFtSWRzKTsKKyAgICB9CisKKyAgICBpZiAocmV0ID09IC1FSU5WQUwpIHsKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0gZWxzZSBpZiAocmV0ICE9IE9LKSB7CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29udmVydFRvSGlkbChzdHJlYW1fbGlzdCwgJm91dFN0cmVhbXMpOworICAgIH0KKworICAgIF9oaWRsX2NiKHN0YXR1cywgb3V0U3RyZWFtcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworLy8gTmVlZHMgdG8gZ2V0IGNhbGxlZCBhZnRlciBhY3F1aXJpbmcgJ21JbmZsaWdodExvY2snCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OmNsZWFudXBCdWZmZXJzTG9ja2VkKGludCBpZCkgeworICAgIGZvciAoYXV0byYgcGFpciA6IG1DaXJjdWxhdGluZ0J1ZmZlcnMuYXQoaWQpKSB7CisgICAgICAgIHNIYW5kbGVJbXBvcnRlci5mcmVlQnVmZmVyKHBhaXIuc2Vjb25kKTsKKyAgICB9CisgICAgbUNpcmN1bGF0aW5nQnVmZmVyc1tpZF0uY2xlYXIoKTsKKyAgICBtQ2lyY3VsYXRpbmdCdWZmZXJzLmVyYXNlKGlkKTsKK30KKwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjp1cGRhdGVCdWZmZXJDYWNoZXMoY29uc3QgaGlkbF92ZWM8QnVmZmVyQ2FjaGU+JiBjYWNoZXNUb1JlbW92ZSkgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtSW5mbGlnaHRMb2NrKTsKKyAgICBmb3IgKGF1dG8mIGNhY2hlIDogY2FjaGVzVG9SZW1vdmUpIHsKKyAgICAgICAgYXV0byBjYnNJdCA9IG1DaXJjdWxhdGluZ0J1ZmZlcnMuZmluZChjYWNoZS5zdHJlYW1JZCk7CisgICAgICAgIGlmIChjYnNJdCA9PSBtQ2lyY3VsYXRpbmdCdWZmZXJzLmVuZCgpKSB7CisgICAgICAgICAgICAvLyBUaGUgc3RyZWFtIGNvdWxkIGhhdmUgYmVlbiByZW1vdmVkCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBDaXJjdWxhdGluZ0J1ZmZlcnMmIGNicyA9IGNic0l0LT5zZWNvbmQ7CisgICAgICAgIGF1dG8gaXQgPSBjYnMuZmluZChjYWNoZS5idWZmZXJJZCk7CisgICAgICAgIGlmIChpdCAhPSBjYnMuZW5kKCkpIHsKKyAgICAgICAgICAgIHNIYW5kbGVJbXBvcnRlci5mcmVlQnVmZmVyKGl0LT5zZWNvbmQpOworICAgICAgICAgICAgY2JzLmVyYXNlKGl0KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogc3RyZWFtICVkIGJ1ZmZlciAlIiBQUkl1NjQgIiBpcyBub3QgY2FjaGVkIiwKKyAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBjYWNoZS5zdHJlYW1JZCwgY2FjaGUuYnVmZmVySWQpOworICAgICAgICB9CisgICAgfQorfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6Z2V0Q2FwdHVyZVJlcXVlc3RNZXRhZGF0YVF1ZXVlKAorICAgIGdldENhcHR1cmVSZXF1ZXN0TWV0YWRhdGFRdWV1ZV9jYiBfaGlkbF9jYikgeworICAgIF9oaWRsX2NiKCptUmVxdWVzdE1ldGFkYXRhUXVldWUtPmdldERlc2MoKSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENhbWVyYURldmljZVNlc3Npb246OmdldENhcHR1cmVSZXN1bHRNZXRhZGF0YVF1ZXVlKAorICAgIGdldENhcHR1cmVSZXN1bHRNZXRhZGF0YVF1ZXVlX2NiIF9oaWRsX2NiKSB7CisgICAgX2hpZGxfY2IoKm1SZXN1bHRNZXRhZGF0YVF1ZXVlLT5nZXREZXNjKCkpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDYW1lcmFEZXZpY2VTZXNzaW9uOjpwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPENhcHR1cmVSZXF1ZXN0PiYgcmVxdWVzdHMsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiYgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgIHByb2Nlc3NDYXB0dXJlUmVxdWVzdF9jYiBfaGlkbF9jYikgIHsKKyAgICB1cGRhdGVCdWZmZXJDYWNoZXMoY2FjaGVzVG9SZW1vdmUpOworCisgICAgdWludDMyX3QgbnVtUmVxdWVzdFByb2Nlc3NlZCA9IDA7CisgICAgU3RhdHVzIHMgPSBTdGF0dXM6Ok9LOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVxdWVzdHMuc2l6ZSgpOyBpKyssIG51bVJlcXVlc3RQcm9jZXNzZWQrKykgeworICAgICAgICBzID0gcHJvY2Vzc09uZUNhcHR1cmVSZXF1ZXN0KHJlcXVlc3RzW2ldKTsKKyAgICAgICAgaWYgKHMgIT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAocyA9PSBTdGF0dXM6Ok9LICYmIHJlcXVlc3RzLnNpemUoKSA+IDEpIHsKKyAgICAgICAgbVJlc3VsdEJhdGNoZXIucmVnaXN0ZXJCYXRjaChyZXF1ZXN0cyk7CisgICAgfQorCisgICAgX2hpZGxfY2IocywgbnVtUmVxdWVzdFByb2Nlc3NlZCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworU3RhdHVzIENhbWVyYURldmljZVNlc3Npb246OnByb2Nlc3NPbmVDYXB0dXJlUmVxdWVzdChjb25zdCBDYXB0dXJlUmVxdWVzdCYgcmVxdWVzdCkgIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIGlmIChzdGF0dXMgIT0gU3RhdHVzOjpPSykgeworICAgICAgICBBTE9HRSgiJXM6IGNhbWVyYSBpbml0IGZhaWxlZCBvciBkaXNjb25uZWN0ZWQiLCBfX0ZVTkNUSU9OX18pOworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIGNhbWVyYTNfY2FwdHVyZV9yZXF1ZXN0X3QgaGFsUmVxdWVzdDsKKyAgICBoYWxSZXF1ZXN0LmZyYW1lX251bWJlciA9IHJlcXVlc3QuZnJhbWVOdW1iZXI7CisKKyAgICBib29sIGNvbnZlcnRlZCA9IHRydWU7CisgICAgQ2FtZXJhTWV0YWRhdGEgc2V0dGluZ3NGbXE7ICAvLyBzZXR0aW5ncyBmcm9tIEZNUQorICAgIGlmIChyZXF1ZXN0LmZtcVNldHRpbmdzU2l6ZSA+IDApIHsKKyAgICAgICAgLy8gbm9uLWJsb2NraW5nIHJlYWQ7IGNsaWVudCBtdXN0IHdyaXRlIG1ldGFkYXRhIGJlZm9yZSBjYWxsaW5nCisgICAgICAgIC8vIHByb2Nlc3NPbmVDYXB0dXJlUmVxdWVzdAorICAgICAgICBzZXR0aW5nc0ZtcS5yZXNpemUocmVxdWVzdC5mbXFTZXR0aW5nc1NpemUpOworICAgICAgICBib29sIHJlYWQgPSBtUmVxdWVzdE1ldGFkYXRhUXVldWUtPnJlYWQoc2V0dGluZ3NGbXEuZGF0YSgpLCByZXF1ZXN0LmZtcVNldHRpbmdzU2l6ZSk7CisgICAgICAgIGlmIChyZWFkKSB7CisgICAgICAgICAgICBjb252ZXJ0ZWQgPSBjb252ZXJ0RnJvbUhpZGwoc2V0dGluZ3NGbXEsICZoYWxSZXF1ZXN0LnNldHRpbmdzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogY2FwdHVyZSByZXF1ZXN0IHNldHRpbmdzIG1ldGFkYXRhIGNvdWxkbid0IGJlIHJlYWQgZnJvbSBmbXEhIiwgX19GVU5DVElPTl9fKTsKKyAgICAgICAgICAgIGNvbnZlcnRlZCA9IGZhbHNlOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29udmVydGVkID0gY29udmVydEZyb21IaWRsKHJlcXVlc3Quc2V0dGluZ3MsICZoYWxSZXF1ZXN0LnNldHRpbmdzKTsKKyAgICB9CisKKyAgICBpZiAoIWNvbnZlcnRlZCkgeworICAgICAgICBBTE9HRSgiJXM6IGNhcHR1cmUgcmVxdWVzdCBzZXR0aW5ncyBtZXRhZGF0YSBpcyBjb3JydXB0ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklOVEVSTkFMX0VSUk9SOworICAgIH0KKworICAgIGhpZGxfdmVjPGJ1ZmZlcl9oYW5kbGVfdCo+IGFsbEJ1ZlB0cnM7CisgICAgaGlkbF92ZWM8aW50PiBhbGxGZW5jZXM7CisgICAgYm9vbCBoYXNJbnB1dEJ1ZiA9IChyZXF1ZXN0LmlucHV0QnVmZmVyLnN0cmVhbUlkICE9IC0xICYmCisgICAgICAgICAgICByZXF1ZXN0LmlucHV0QnVmZmVyLmJ1ZmZlcklkICE9IDApOworICAgIHNpemVfdCBudW1PdXRwdXRCdWZzID0gcmVxdWVzdC5vdXRwdXRCdWZmZXJzLnNpemUoKTsKKyAgICBzaXplX3QgbnVtQnVmcyA9IG51bU91dHB1dEJ1ZnMgKyAoaGFzSW5wdXRCdWYgPyAxIDogMCk7CisgICAgc3RhdHVzID0gaW1wb3J0UmVxdWVzdChyZXF1ZXN0LCBhbGxCdWZQdHJzLCBhbGxGZW5jZXMpOworICAgIGlmIChzdGF0dXMgIT0gU3RhdHVzOjpPSykgeworICAgICAgICByZXR1cm4gc3RhdHVzOworICAgIH0KKworICAgIGhpZGxfdmVjPGNhbWVyYTNfc3RyZWFtX2J1ZmZlcl90PiBvdXRIYWxCdWZzOworICAgIG91dEhhbEJ1ZnMucmVzaXplKG51bU91dHB1dEJ1ZnMpOworICAgIGJvb2wgYWVDYW5jZWxUcmlnZ2VyTmVlZGVkID0gZmFsc2U7CisgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OmhlbHBlcjo6Q2FtZXJhTWV0YWRhdGEgc2V0dGluZ3NPdmVycmlkZTsKKyAgICB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChtSW5mbGlnaHRMb2NrKTsKKyAgICAgICAgaWYgKGhhc0lucHV0QnVmKSB7CisgICAgICAgICAgICBhdXRvIGtleSA9IHN0ZDo6bWFrZV9wYWlyKHJlcXVlc3QuaW5wdXRCdWZmZXIuc3RyZWFtSWQsIHJlcXVlc3QuZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgYXV0byYgYnVmQ2FjaGUgPSBtSW5mbGlnaHRCdWZmZXJzW2tleV0gPSBjYW1lcmEzX3N0cmVhbV9idWZmZXJfdHt9OworICAgICAgICAgICAgY29udmVydEZyb21IaWRsKAorICAgICAgICAgICAgICAgICAgICBhbGxCdWZQdHJzW251bU91dHB1dEJ1ZnNdLCByZXF1ZXN0LmlucHV0QnVmZmVyLnN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgJm1TdHJlYW1NYXBbcmVxdWVzdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZF0sIGFsbEZlbmNlc1tudW1PdXRwdXRCdWZzXSwKKyAgICAgICAgICAgICAgICAgICAgJmJ1ZkNhY2hlKTsKKyAgICAgICAgICAgIGhhbFJlcXVlc3QuaW5wdXRfYnVmZmVyID0gJmJ1ZkNhY2hlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaGFsUmVxdWVzdC5pbnB1dF9idWZmZXIgPSBudWxscHRyOworICAgICAgICB9CisKKyAgICAgICAgaGFsUmVxdWVzdC5udW1fb3V0cHV0X2J1ZmZlcnMgPSBudW1PdXRwdXRCdWZzOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bU91dHB1dEJ1ZnM7IGkrKykgeworICAgICAgICAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihyZXF1ZXN0Lm91dHB1dEJ1ZmZlcnNbaV0uc3RyZWFtSWQsIHJlcXVlc3QuZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgYXV0byYgYnVmQ2FjaGUgPSBtSW5mbGlnaHRCdWZmZXJzW2tleV0gPSBjYW1lcmEzX3N0cmVhbV9idWZmZXJfdHt9OworICAgICAgICAgICAgY29udmVydEZyb21IaWRsKAorICAgICAgICAgICAgICAgICAgICBhbGxCdWZQdHJzW2ldLCByZXF1ZXN0Lm91dHB1dEJ1ZmZlcnNbaV0uc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAmbVN0cmVhbU1hcFtyZXF1ZXN0Lm91dHB1dEJ1ZmZlcnNbaV0uc3RyZWFtSWRdLCBhbGxGZW5jZXNbaV0sCisgICAgICAgICAgICAgICAgICAgICZidWZDYWNoZSk7CisgICAgICAgICAgICBvdXRIYWxCdWZzW2ldID0gYnVmQ2FjaGU7CisgICAgICAgIH0KKyAgICAgICAgaGFsUmVxdWVzdC5vdXRwdXRfYnVmZmVycyA9IG91dEhhbEJ1ZnMuZGF0YSgpOworCisgICAgICAgIEFFVHJpZ2dlckNhbmNlbE92ZXJyaWRlIHRyaWdnZXJPdmVycmlkZTsKKyAgICAgICAgYWVDYW5jZWxUcmlnZ2VyTmVlZGVkID0gaGFuZGxlQWVQcmVjYXB0dXJlQ2FuY2VsUmVxdWVzdExvY2tlZCgKKyAgICAgICAgICAgICAgICBoYWxSZXF1ZXN0LCAmc2V0dGluZ3NPdmVycmlkZSAvKm91dCovLCAmdHJpZ2dlck92ZXJyaWRlLypvdXQqLyk7CisgICAgICAgIGlmIChhZUNhbmNlbFRyaWdnZXJOZWVkZWQpIHsKKyAgICAgICAgICAgIG1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlc1toYWxSZXF1ZXN0LmZyYW1lX251bWJlcl0gPQorICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyT3ZlcnJpZGU7CisgICAgICAgICAgICBoYWxSZXF1ZXN0LnNldHRpbmdzID0gc2V0dGluZ3NPdmVycmlkZS5nZXRBbmRMb2NrKCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBBVFJBQ0VfQVNZTkNfQkVHSU4oImZyYW1lIGNhcHR1cmUiLCByZXF1ZXN0LmZyYW1lTnVtYmVyKTsKKyAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYTMtPnByb2Nlc3NfY2FwdHVyZV9yZXF1ZXN0Iik7CisgICAgc3RhdHVzX3QgcmV0ID0gbURldmljZS0+b3BzLT5wcm9jZXNzX2NhcHR1cmVfcmVxdWVzdChtRGV2aWNlLCAmaGFsUmVxdWVzdCk7CisgICAgQVRSQUNFX0VORCgpOworICAgIGlmIChhZUNhbmNlbFRyaWdnZXJOZWVkZWQpIHsKKyAgICAgICAgc2V0dGluZ3NPdmVycmlkZS51bmxvY2soaGFsUmVxdWVzdC5zZXR0aW5ncyk7CisgICAgfQorICAgIGlmIChyZXQgIT0gT0spIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1JbmZsaWdodExvY2spOworICAgICAgICBBTE9HRSgiJXM6IEhBTCBwcm9jZXNzX2NhcHR1cmVfcmVxdWVzdCBjYWxsIGZhaWxlZCEiLCBfX0ZVTkNUSU9OX18pOworCisgICAgICAgIGNsZWFudXBJbmZsaWdodEZlbmNlcyhhbGxGZW5jZXMsIG51bUJ1ZnMpOworICAgICAgICBpZiAoaGFzSW5wdXRCdWYpIHsKKyAgICAgICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIocmVxdWVzdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZCwgcmVxdWVzdC5mcmFtZU51bWJlcik7CisgICAgICAgICAgICBtSW5mbGlnaHRCdWZmZXJzLmVyYXNlKGtleSk7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1PdXRwdXRCdWZzOyBpKyspIHsKKyAgICAgICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIocmVxdWVzdC5vdXRwdXRCdWZmZXJzW2ldLnN0cmVhbUlkLCByZXF1ZXN0LmZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIG1JbmZsaWdodEJ1ZmZlcnMuZXJhc2Uoa2V5KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYWVDYW5jZWxUcmlnZ2VyTmVlZGVkKSB7CisgICAgICAgICAgICBtSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZXJhc2UocmVxdWVzdC5mcmFtZU51bWJlcik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgfQorCisgICAgcmV0dXJuIFN0YXR1czo6T0s7Cit9CisKK1JldHVybjxTdGF0dXM+IENhbWVyYURldmljZVNlc3Npb246OmZsdXNoKCkgIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gaW5pdFN0YXR1cygpOworICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAvLyBGbHVzaCBpcyBhbHdheXMgc3VwcG9ydGVkIG9uIGRldmljZSAzLjEgb3IgbGF0ZXIKKyAgICAgICAgc3RhdHVzX3QgcmV0ID0gbURldmljZS0+b3BzLT5mbHVzaChtRGV2aWNlKTsKKyAgICAgICAgaWYgKHJldCAhPSBPSykgeworICAgICAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQorCitSZXR1cm48dm9pZD4gQ2FtZXJhRGV2aWNlU2Vzc2lvbjo6Y2xvc2UoKSAgeworICAgIE11dGV4OjpBdXRvbG9jayBfbChtU3RhdGVMb2NrKTsKKyAgICBpZiAoIW1DbG9zZWQpIHsKKyAgICAgICAgeworICAgICAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKG1JbmZsaWdodExvY2spOworICAgICAgICAgICAgaWYgKCFtSW5mbGlnaHRCdWZmZXJzLmVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiJXM6IHRyeWluZyB0byBjbG9zZSB3aGlsZSB0aGVyZSBhcmUgc3RpbGwgJXp1IGluZmxpZ2h0IGJ1ZmZlcnMhIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIF9fRlVOQ1RJT05fXywgbUluZmxpZ2h0QnVmZmVycy5zaXplKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFtSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZW1wdHkoKSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCIlczogdHJ5aW5nIHRvIGNsb3NlIHdoaWxlIHRoZXJlIGFyZSBzdGlsbCAlenUgaW5mbGlnaHQgIgorICAgICAgICAgICAgICAgICAgICAgICAgInRyaWdnZXIgb3ZlcnJpZGVzISIsIF9fRlVOQ1RJT05fXywKKyAgICAgICAgICAgICAgICAgICAgICAgIG1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlcy5zaXplKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFtSW5mbGlnaHRSYXdCb29zdFByZXNlbnQuZW1wdHkoKSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCIlczogdHJ5aW5nIHRvIGNsb3NlIHdoaWxlIHRoZXJlIGFyZSBzdGlsbCAlenUgaW5mbGlnaHQgIgorICAgICAgICAgICAgICAgICAgICAgICAgIiBSQVcgYm9vc3Qgb3ZlcnJpZGVzISIsIF9fRlVOQ1RJT05fXywKKyAgICAgICAgICAgICAgICAgICAgICAgIG1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudC5zaXplKCkpOworICAgICAgICAgICAgfQorCisgICAgICAgIH0KKworICAgICAgICBBVFJBQ0VfQkVHSU4oImNhbWVyYTMtPmNsb3NlIik7CisgICAgICAgIG1EZXZpY2UtPmNvbW1vbi5jbG9zZSgmbURldmljZS0+Y29tbW9uKTsKKyAgICAgICAgQVRSQUNFX0VORCgpOworCisgICAgICAgIC8vIGZyZWUgYWxsIGltcG9ydGVkIGJ1ZmZlcnMKKyAgICAgICAgZm9yKGF1dG8mIHBhaXIgOiBtQ2lyY3VsYXRpbmdCdWZmZXJzKSB7CisgICAgICAgICAgICBDaXJjdWxhdGluZ0J1ZmZlcnMmIGJ1ZmZlcnMgPSBwYWlyLnNlY29uZDsKKyAgICAgICAgICAgIGZvciAoYXV0byYgcDIgOiBidWZmZXJzKSB7CisgICAgICAgICAgICAgICAgc0hhbmRsZUltcG9ydGVyLmZyZWVCdWZmZXIocDIuc2Vjb25kKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG1DbG9zZWQgPSB0cnVlOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCisvKioKKyAqIFN0YXRpYyBjYWxsYmFjayBmb3J3YXJkaW5nIG1ldGhvZHMgZnJvbSBIQUwgdG8gaW5zdGFuY2UKKyAqLwordm9pZCBDYW1lcmFEZXZpY2VTZXNzaW9uOjpzUHJvY2Vzc0NhcHR1cmVSZXN1bHQoCisgICAgICAgIGNvbnN0IGNhbWVyYTNfY2FsbGJhY2tfb3BzICpjYiwKKyAgICAgICAgY29uc3QgY2FtZXJhM19jYXB0dXJlX3Jlc3VsdCAqaGFsX3Jlc3VsdCkgeworICAgIENhbWVyYURldmljZVNlc3Npb24gKmQgPQorICAgICAgICAgICAgY29uc3RfY2FzdDxDYW1lcmFEZXZpY2VTZXNzaW9uKj4oc3RhdGljX2Nhc3Q8Y29uc3QgQ2FtZXJhRGV2aWNlU2Vzc2lvbio+KGNiKSk7CisKKyAgICB1aW50MzJfdCBmcmFtZU51bWJlciA9IGhhbF9yZXN1bHQtPmZyYW1lX251bWJlcjsKKyAgICBib29sIGhhc0lucHV0QnVmID0gKGhhbF9yZXN1bHQtPmlucHV0X2J1ZmZlciAhPSBudWxscHRyKTsKKyAgICBzaXplX3QgbnVtT3V0cHV0QnVmcyA9IGhhbF9yZXN1bHQtPm51bV9vdXRwdXRfYnVmZmVyczsKKyAgICBzaXplX3QgbnVtQnVmcyA9IG51bU91dHB1dEJ1ZnMgKyAoaGFzSW5wdXRCdWYgPyAxIDogMCk7CisgICAgaWYgKG51bUJ1ZnMgPiAwKSB7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChkLT5tSW5mbGlnaHRMb2NrKTsKKyAgICAgICAgaWYgKGhhc0lucHV0QnVmKSB7CisgICAgICAgICAgICBpbnQgc3RyZWFtSWQgPSBzdGF0aWNfY2FzdDxDYW1lcmEzU3RyZWFtKj4oaGFsX3Jlc3VsdC0+aW5wdXRfYnVmZmVyLT5zdHJlYW0pLT5tSWQ7CisgICAgICAgICAgICAvLyB2YWxpZGF0ZSBpZiBidWZmZXIgaXMgaW5mbGlnaHQKKyAgICAgICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RyZWFtSWQsIGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIGlmIChkLT5tSW5mbGlnaHRCdWZmZXJzLmNvdW50KGtleSkgIT0gMSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCIlczogaW5wdXQgYnVmZmVyIGZvciBzdHJlYW0gJWQgZnJhbWUgJWQgaXMgbm90IGluZmxpZ2h0ISIsCisgICAgICAgICAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHN0cmVhbUlkLCBmcmFtZU51bWJlcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1PdXRwdXRCdWZzOyBpKyspIHsKKyAgICAgICAgICAgIGludCBzdHJlYW1JZCA9IHN0YXRpY19jYXN0PENhbWVyYTNTdHJlYW0qPihoYWxfcmVzdWx0LT5vdXRwdXRfYnVmZmVyc1tpXS5zdHJlYW0pLT5tSWQ7CisgICAgICAgICAgICAvLyB2YWxpZGF0ZSBpZiBidWZmZXIgaXMgaW5mbGlnaHQKKyAgICAgICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RyZWFtSWQsIGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIGlmIChkLT5tSW5mbGlnaHRCdWZmZXJzLmNvdW50KGtleSkgIT0gMSkgeworICAgICAgICAgICAgICAgIEFMT0dFKCIlczogb3V0cHV0IGJ1ZmZlciBmb3Igc3RyZWFtICVkIGZyYW1lICVkIGlzIG5vdCBpbmZsaWdodCEiLAorICAgICAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBzdHJlYW1JZCwgZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBXZSBkb24ndCBuZWVkIHRvIHZhbGlkYXRlL2ltcG9ydCBmZW5jZXMgaGVyZSBzaW5jZSB3ZSB3aWxsIGJlIHBhc3NpbmcgdGhlbSB0byBjYW1lcmEgc2VydmljZQorICAgIC8vIHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhpcyBmdW5jdGlvbgorICAgIENhcHR1cmVSZXN1bHQgcmVzdWx0OworICAgIHJlc3VsdC5mcmFtZU51bWJlciA9IGZyYW1lTnVtYmVyOworICAgIHJlc3VsdC5mbXFSZXN1bHRTaXplID0gMDsKKyAgICByZXN1bHQucGFydGlhbFJlc3VsdCA9IGhhbF9yZXN1bHQtPnBhcnRpYWxfcmVzdWx0OworICAgIGNvbnZlcnRUb0hpZGwoaGFsX3Jlc3VsdC0+cmVzdWx0LCAmcmVzdWx0LnJlc3VsdCk7CisgICAgaWYgKG51bGxwdHIgIT0gaGFsX3Jlc3VsdC0+cmVzdWx0KSB7CisgICAgICAgIGJvb2wgcmVzdWx0T3ZlcnJpZGVuID0gZmFsc2U7CisgICAgICAgIE11dGV4OjpBdXRvbG9jayBfbChkLT5tSW5mbGlnaHRMb2NrKTsKKworICAgICAgICAvLyBEZXJpdmUgc29tZSBuZXcga2V5cyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQorICAgICAgICBpZiAoZC0+bURlcml2ZVBvc3RSYXdTZW5zS2V5KSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgZW50cnk7CisgICAgICAgICAgICBpZiAoZmluZF9jYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkoaGFsX3Jlc3VsdC0+cmVzdWx0LAorICAgICAgICAgICAgICAgICAgICBBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1QsICZlbnRyeSkgPT0gMCkgeworICAgICAgICAgICAgICAgIGQtPm1JbmZsaWdodFJhd0Jvb3N0UHJlc2VudFtmcmFtZU51bWJlcl0gPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhdXRvIGVudHJ5ID0gZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmZpbmQoZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgICAgIGlmIChkLT5tSW5mbGlnaHRSYXdCb29zdFByZXNlbnQuZW5kKCkgPT0gZW50cnkpIHsKKyAgICAgICAgICAgICAgICAgICAgZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50W2ZyYW1lTnVtYmVyXSA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKChoYWxfcmVzdWx0LT5wYXJ0aWFsX3Jlc3VsdCA9PSBkLT5tTnVtUGFydGlhbFJlc3VsdHMpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFkLT5tSW5mbGlnaHRSYXdCb29zdFByZXNlbnRbZnJhbWVOdW1iZXJdKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzdWx0T3ZlcnJpZGVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkLT5tT3ZlcnJpZGVuUmVzdWx0LmNsZWFyKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBkLT5tT3ZlcnJpZGVuUmVzdWx0LmFwcGVuZChoYWxfcmVzdWx0LT5yZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T3ZlcnJpZGVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpbnQzMl90IGRlZmF1bHRCb29zdFsxXSA9IHsxMDB9OworICAgICAgICAgICAgICAgICAgICBkLT5tT3ZlcnJpZGVuUmVzdWx0LnVwZGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTkRST0lEX0NPTlRST0xfUE9TVF9SQVdfU0VOU0lUSVZJVFlfQk9PU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEJvb3N0LCAxKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBkLT5tSW5mbGlnaHRSYXdCb29zdFByZXNlbnQuZXJhc2UoZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYXV0byBlbnRyeSA9IGQtPm1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlcy5maW5kKGZyYW1lTnVtYmVyKTsKKyAgICAgICAgaWYgKGQtPm1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlcy5lbmQoKSAhPSBlbnRyeSkgeworICAgICAgICAgICAgaWYgKCFyZXN1bHRPdmVycmlkZW4pIHsKKyAgICAgICAgICAgICAgICBkLT5tT3ZlcnJpZGVuUmVzdWx0LmNsZWFyKCk7CisgICAgICAgICAgICAgICAgZC0+bU92ZXJyaWRlblJlc3VsdC5hcHBlbmQoaGFsX3Jlc3VsdC0+cmVzdWx0KTsKKyAgICAgICAgICAgICAgICByZXN1bHRPdmVycmlkZW4gPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZC0+b3ZlcnJpZGVSZXN1bHRGb3JQcmVjYXB0dXJlQ2FuY2VsTG9ja2VkKGVudHJ5LT5zZWNvbmQsCisgICAgICAgICAgICAgICAgICAgICZkLT5tT3ZlcnJpZGVuUmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChoYWxfcmVzdWx0LT5wYXJ0aWFsX3Jlc3VsdCA9PSBkLT5tTnVtUGFydGlhbFJlc3VsdHMpIHsKKyAgICAgICAgICAgICAgICBkLT5tSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZXJhc2UoZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHJlc3VsdE92ZXJyaWRlbikgeworICAgICAgICAgICAgY29uc3QgY2FtZXJhX21ldGFkYXRhX3QgKm1ldGFCdWZmZXIgPQorICAgICAgICAgICAgICAgICAgICBkLT5tT3ZlcnJpZGVuUmVzdWx0LmdldEFuZExvY2soKTsKKyAgICAgICAgICAgIGNvbnZlcnRUb0hpZGwobWV0YUJ1ZmZlciwgJnJlc3VsdC5yZXN1bHQpOworICAgICAgICAgICAgZC0+bU92ZXJyaWRlblJlc3VsdC51bmxvY2sobWV0YUJ1ZmZlcik7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGhhc0lucHV0QnVmKSB7CisgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZCA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Q2FtZXJhM1N0cmVhbSo+KGhhbF9yZXN1bHQtPmlucHV0X2J1ZmZlci0+c3RyZWFtKS0+bUlkOworICAgICAgICByZXN1bHQuaW5wdXRCdWZmZXIuYnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgcmVzdWx0LmlucHV0QnVmZmVyLnN0YXR1cyA9IChCdWZmZXJTdGF0dXMpIGhhbF9yZXN1bHQtPmlucHV0X2J1ZmZlci0+c3RhdHVzOworICAgICAgICAvLyBza2lwIGFjcXVpcmUgZmVuY2Ugc2luY2UgaXQncyBubyB1c2UgdG8gY2FtZXJhIHNlcnZpY2UKKyAgICAgICAgaWYgKGhhbF9yZXN1bHQtPmlucHV0X2J1ZmZlci0+cmVsZWFzZV9mZW5jZSAhPSAtMSkgeworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgvKm51bUZkcyovMSwgLypudW1JbnRzKi8wKTsKKyAgICAgICAgICAgIGhhbmRsZS0+ZGF0YVswXSA9IGhhbF9yZXN1bHQtPmlucHV0X2J1ZmZlci0+cmVsZWFzZV9mZW5jZTsKKyAgICAgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5yZWxlYXNlRmVuY2UgPSBoYW5kbGU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXN1bHQuaW5wdXRCdWZmZXIucmVsZWFzZUZlbmNlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHJlc3VsdC5pbnB1dEJ1ZmZlci5zdHJlYW1JZCA9IC0xOworICAgIH0KKworICAgIHJlc3VsdC5vdXRwdXRCdWZmZXJzLnJlc2l6ZShudW1PdXRwdXRCdWZzKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bU91dHB1dEJ1ZnM7IGkrKykgeworICAgICAgICByZXN1bHQub3V0cHV0QnVmZmVyc1tpXS5zdHJlYW1JZCA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Q2FtZXJhM1N0cmVhbSo+KGhhbF9yZXN1bHQtPm91dHB1dF9idWZmZXJzW2ldLnN0cmVhbSktPm1JZDsKKyAgICAgICAgcmVzdWx0Lm91dHB1dEJ1ZmZlcnNbaV0uYnVmZmVyID0gbnVsbHB0cjsKKyAgICAgICAgcmVzdWx0Lm91dHB1dEJ1ZmZlcnNbaV0uc3RhdHVzID0gKEJ1ZmZlclN0YXR1cykgaGFsX3Jlc3VsdC0+b3V0cHV0X2J1ZmZlcnNbaV0uc3RhdHVzOworICAgICAgICAvLyBza2lwIGFjcXVpcmUgZmVuY2Ugc2luY2UgaXQncyBvZiBubyB1c2UgdG8gY2FtZXJhIHNlcnZpY2UKKyAgICAgICAgaWYgKGhhbF9yZXN1bHQtPm91dHB1dF9idWZmZXJzW2ldLnJlbGVhc2VfZmVuY2UgIT0gLTEpIHsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogaGFuZGxlID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoLypudW1GZHMqLzEsIC8qbnVtSW50cyovMCk7CisgICAgICAgICAgICBoYW5kbGUtPmRhdGFbMF0gPSBoYWxfcmVzdWx0LT5vdXRwdXRfYnVmZmVyc1tpXS5yZWxlYXNlX2ZlbmNlOworICAgICAgICAgICAgcmVzdWx0Lm91dHB1dEJ1ZmZlcnNbaV0ucmVsZWFzZUZlbmNlID0gaGFuZGxlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0Lm91dHB1dEJ1ZmZlcnNbaV0ucmVsZWFzZUZlbmNlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEZyZWUgaW5mbGlnaHQgcmVjb3JkL2ZlbmNlcy4KKyAgICAvLyBEbyB0aGlzIGJlZm9yZSBjYWxsIGJhY2sgdG8gY2FtZXJhIHNlcnZpY2UgYmVjYXVzZSBjYW1lcmEgc2VydmljZSBtaWdodCBqdW1wIHRvCisgICAgLy8gY29uZmlndXJlX3N0cmVhbXMgcmlnaHQgYWZ0ZXIgdGhlIHByb2Nlc3NDYXB0dXJlUmVzdWx0IGNhbGwgc28gd2UgbmVlZCB0byBmaW5pc2gKKyAgICAvLyB1cGRhdGluZyBpbmZsaWdodCBxdWV1ZXMgZmlyc3QKKyAgICBpZiAobnVtQnVmcyA+IDApIHsKKyAgICAgICAgTXV0ZXg6OkF1dG9sb2NrIF9sKGQtPm1JbmZsaWdodExvY2spOworICAgICAgICBpZiAoaGFzSW5wdXRCdWYpIHsKKyAgICAgICAgICAgIGludCBzdHJlYW1JZCA9IHN0YXRpY19jYXN0PENhbWVyYTNTdHJlYW0qPihoYWxfcmVzdWx0LT5pbnB1dF9idWZmZXItPnN0cmVhbSktPm1JZDsKKyAgICAgICAgICAgIGF1dG8ga2V5ID0gc3RkOjptYWtlX3BhaXIoc3RyZWFtSWQsIGZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgIGQtPm1JbmZsaWdodEJ1ZmZlcnMuZXJhc2Uoa2V5KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtT3V0cHV0QnVmczsgaSsrKSB7CisgICAgICAgICAgICBpbnQgc3RyZWFtSWQgPSBzdGF0aWNfY2FzdDxDYW1lcmEzU3RyZWFtKj4oaGFsX3Jlc3VsdC0+b3V0cHV0X2J1ZmZlcnNbaV0uc3RyZWFtKS0+bUlkOworICAgICAgICAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihzdHJlYW1JZCwgZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgZC0+bUluZmxpZ2h0QnVmZmVycy5lcmFzZShrZXkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGQtPm1JbmZsaWdodEJ1ZmZlcnMuZW1wdHkoKSkgeworICAgICAgICAgICAgQUxPR1YoIiVzOiBpbmZsaWdodCBidWZmZXIgcXVldWUgaXMgbm93IGVtcHR5ISIsIF9fRlVOQ1RJT05fXyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBkLT5tUmVzdWx0QmF0Y2hlci5wcm9jZXNzQ2FwdHVyZVJlc3VsdChyZXN1bHQpOworfQorCit2b2lkIENhbWVyYURldmljZVNlc3Npb246OnNOb3RpZnkoCisgICAgICAgIGNvbnN0IGNhbWVyYTNfY2FsbGJhY2tfb3BzICpjYiwKKyAgICAgICAgY29uc3QgY2FtZXJhM19ub3RpZnlfbXNnICptc2cpIHsKKyAgICBDYW1lcmFEZXZpY2VTZXNzaW9uICpkID0KKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8Q2FtZXJhRGV2aWNlU2Vzc2lvbio+KHN0YXRpY19jYXN0PGNvbnN0IENhbWVyYURldmljZVNlc3Npb24qPihjYikpOworICAgIE5vdGlmeU1zZyBoaWRsTXNnOworICAgIGNvbnZlcnRUb0hpZGwobXNnLCAmaGlkbE1zZyk7CisKKyAgICBpZiAoaGlkbE1zZy50eXBlID09IChNc2dUeXBlKSBDQU1FUkEzX01TR19FUlJPUiAmJgorICAgICAgICAgICAgaGlkbE1zZy5tc2cuZXJyb3IuZXJyb3JTdHJlYW1JZCAhPSAtMSkgeworICAgICAgICBpZiAoZC0+bVN0cmVhbU1hcC5jb3VudChoaWRsTXNnLm1zZy5lcnJvci5lcnJvclN0cmVhbUlkKSAhPSAxKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IHVua25vd24gc3RyZWFtIElEICVkIHJlcG9ydHMgYW4gZXJyb3IhIiwKKyAgICAgICAgICAgICAgICAgICAgX19GVU5DVElPTl9fLCBoaWRsTXNnLm1zZy5lcnJvci5lcnJvclN0cmVhbUlkKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChzdGF0aWNfY2FzdDxjYW1lcmEzX21zZ190eXBlX3Q+KGhpZGxNc2cudHlwZSkgPT0gQ0FNRVJBM19NU0dfRVJST1IpIHsKKyAgICAgICAgc3dpdGNoIChoaWRsTXNnLm1zZy5lcnJvci5lcnJvckNvZGUpIHsKKyAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9ERVZJQ0U6CisgICAgICAgICAgICBjYXNlIEVycm9yQ29kZTo6RVJST1JfUkVRVUVTVDoKKyAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9SRVNVTFQ6IHsKKyAgICAgICAgICAgICAgICBNdXRleDo6QXV0b2xvY2sgX2woZC0+bUluZmxpZ2h0TG9jayk7CisgICAgICAgICAgICAgICAgYXV0byBlbnRyeSA9IGQtPm1JbmZsaWdodEFFVHJpZ2dlck92ZXJyaWRlcy5maW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgaGlkbE1zZy5tc2cuZXJyb3IuZnJhbWVOdW1iZXIpOworICAgICAgICAgICAgICAgIGlmIChkLT5tSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXMuZW5kKCkgIT0gZW50cnkpIHsKKyAgICAgICAgICAgICAgICAgICAgZC0+bUluZmxpZ2h0QUVUcmlnZ2VyT3ZlcnJpZGVzLmVyYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxNc2cubXNnLmVycm9yLmZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBhdXRvIGJvb3N0RW50cnkgPSBkLT5tSW5mbGlnaHRSYXdCb29zdFByZXNlbnQuZmluZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxNc2cubXNnLmVycm9yLmZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBpZiAoZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmVuZCgpICE9IGJvb3N0RW50cnkpIHsKKyAgICAgICAgICAgICAgICAgICAgZC0+bUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50LmVyYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxNc2cubXNnLmVycm9yLmZyYW1lTnVtYmVyKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRXJyb3JDb2RlOjpFUlJPUl9CVUZGRVI6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICB9CisKKyAgICBkLT5tUmVzdWx0QmF0Y2hlci5ub3RpZnkoaGlkbE1zZyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjNfMgorfSAgLy8gbmFtZXNwYWNlIGRldmljZQorfSAgLy8gbmFtZXNwYWNlIGNhbWVyYQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VTZXNzaW9uLmggYi9jYW1lcmEvZGV2aWNlLzMuMi9kZWZhdWx0L0NhbWVyYURldmljZVNlc3Npb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNTU5YzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL2RldmljZS8zLjIvZGVmYXVsdC9DYW1lcmFEZXZpY2VTZXNzaW9uLmgKQEAgLTAsMCArMSwzMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfQ0FNRVJBX0RFVklDRV9WM18yX0NBTUVSQURFVklDRTNTRVNTSU9OX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9DQU1FUkFfREVWSUNFX1YzXzJfQ0FNRVJBREVWSUNFM1NFU1NJT05fSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jYW1lcmEvZGV2aWNlLzMuMi9JQ2FtZXJhRGV2aWNlU2Vzc2lvbi5oPgorI2luY2x1ZGUgPGZtcS9NZXNzYWdlUXVldWUuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aW5jbHVkZS9jb252ZXJ0Lmg+CisjaW5jbHVkZSA8ZGVxdWU+CisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSAiQ2FtZXJhTWV0YWRhdGEuaCIKKyNpbmNsdWRlICJIYW5kbGVJbXBvcnRlci5oIgorI2luY2x1ZGUgImhhcmR3YXJlL2NhbWVyYTMuaCIKKyNpbmNsdWRlICJoYXJkd2FyZS9jYW1lcmFfY29tbW9uLmgiCisjaW5jbHVkZSAidXRpbHMvTXV0ZXguaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBjYW1lcmEgeworbmFtZXNwYWNlIGRldmljZSB7CituYW1lc3BhY2UgVjNfMiB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6Q2FwdHVyZVJlcXVlc3Q7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SGFsU3RyZWFtQ29uZmlndXJhdGlvbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpTdHJlYW1Db25maWd1cmF0aW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2VTZXNzaW9uOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkhhbmRsZUltcG9ydGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6a1N5bmNocm9uaXplZFJlYWRXcml0ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Ok1lc3NhZ2VRdWV1ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Ok1RRGVzY3JpcHRvclN5bmM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6Ok11dGV4OworCisvKioKKyAqIEZ1bmN0aW9uIHBvaW50ZXIgdHlwZXMgd2l0aCBDIGNhbGxpbmcgY29udmVudGlvbiB0bworICogdXNlIGZvciBIQUwgY2FsbGJhY2sgZnVuY3Rpb25zLgorICovCitleHRlcm4gIkMiIHsKKyAgICB0eXBlZGVmIHZvaWQgKGNhbGxiYWNrc19wcm9jZXNzX2NhcHR1cmVfcmVzdWx0X3QpKAorICAgICAgICBjb25zdCBzdHJ1Y3QgY2FtZXJhM19jYWxsYmFja19vcHMgKiwKKyAgICAgICAgY29uc3QgY2FtZXJhM19jYXB0dXJlX3Jlc3VsdF90ICopOworCisgICAgdHlwZWRlZiB2b2lkIChjYWxsYmFja3Nfbm90aWZ5X3QpKAorICAgICAgICBjb25zdCBzdHJ1Y3QgY2FtZXJhM19jYWxsYmFja19vcHMgKiwKKyAgICAgICAgY29uc3QgY2FtZXJhM19ub3RpZnlfbXNnX3QgKik7Cit9CisKK3N0cnVjdCBDYW1lcmFEZXZpY2VTZXNzaW9uIDogcHVibGljIElDYW1lcmFEZXZpY2VTZXNzaW9uLCBwcml2YXRlIGNhbWVyYTNfY2FsbGJhY2tfb3BzICB7CisKKyAgICBDYW1lcmFEZXZpY2VTZXNzaW9uKGNhbWVyYTNfZGV2aWNlX3QqLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FtZXJhX21ldGFkYXRhX3QqIGRldmljZUluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJQ2FtZXJhRGV2aWNlQ2FsbGJhY2s+Jik7CisgICAgfkNhbWVyYURldmljZVNlc3Npb24oKTsKKyAgICAvLyBDYWxsIGJ5IENhbWVyYURldmljZSB0byBkdW1wIGFjdGl2ZSBkZXZpY2Ugc3RhdGVzCisgICAgdm9pZCBkdW1wU3RhdGUoY29uc3QgbmF0aXZlX2hhbmRsZV90KiBmZCk7CisgICAgLy8gQ2FsbGVyIG11c3QgdXNlIHRoaXMgbWV0aG9kIHRvIGNoZWNrIGlmIENhbWVyYURldmljZVNlc3Npb24gY3RvciBmYWlsZWQKKyAgICBib29sIGlzSW5pdEZhaWxlZCgpIHsgcmV0dXJuIG1Jbml0RmFpbDsgfQorICAgIC8vIFVzZWQgYnkgQ2FtZXJhRGV2aWNlIHRvIHNpZ25hbCBleHRlcm5hbCBjYW1lcmEgZGlzY29ubmVjdGVkCisgICAgdm9pZCBkaXNjb25uZWN0KCk7CisgICAgYm9vbCBpc0Nsb3NlZCgpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlU2Vzc2lvbiBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MoCisgICAgICAgICAgICBSZXF1ZXN0VGVtcGxhdGUgdHlwZSwgY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5nc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNvbmZpZ3VyZVN0cmVhbXMoCisgICAgICAgICAgICBjb25zdCBTdHJlYW1Db25maWd1cmF0aW9uJiByZXF1ZXN0ZWRDb25maWd1cmF0aW9uLCBjb25maWd1cmVTdHJlYW1zX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FwdHVyZVJlcXVlc3RNZXRhZGF0YVF1ZXVlKAorICAgICAgICBnZXRDYXB0dXJlUmVxdWVzdE1ldGFkYXRhUXVldWVfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDYXB0dXJlUmVzdWx0TWV0YWRhdGFRdWV1ZSgKKyAgICAgICAgZ2V0Q2FwdHVyZVJlc3VsdE1ldGFkYXRhUXVldWVfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxDYXB0dXJlUmVxdWVzdD4mIHJlcXVlc3RzLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8QnVmZmVyQ2FjaGU+JiBjYWNoZXNUb1JlbW92ZSwKKyAgICAgICAgICAgIHByb2Nlc3NDYXB0dXJlUmVxdWVzdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPFN0YXR1cz4gZmx1c2goKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY2xvc2UoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICAvLyBwcm90ZWN0aW5nIG1DbG9zZWQvbURpc2Nvbm5lY3RlZC9tSW5pdEZhaWwKKyAgICBtdXRhYmxlIE11dGV4IG1TdGF0ZUxvY2s7CisgICAgLy8gZGV2aWNlIGlzIGNsb3NlZCBlaXRoZXIKKyAgICAvLyAgICAtIGNsb3NlZCBieSB1c2VyCisgICAgLy8gICAgLSBpbml0IGZhaWxlZAorICAgIC8vICAgIC0gY2FtZXJhIGRpc2Nvbm5lY3RlZAorICAgIGJvb2wgbUNsb3NlZCA9IGZhbHNlOworCisgICAgLy8gU2V0IGJ5IENhbWVyYURldmljZSAod2hlbiBleHRlcm5hbCBjYW1lcmEgaXMgZGlzY29ubmVjdGVkKQorICAgIGJvb2wgbURpc2Nvbm5lY3RlZCA9IGZhbHNlOworCisgICAgc3RydWN0IEFFVHJpZ2dlckNhbmNlbE92ZXJyaWRlIHsKKyAgICAgICAgYm9vbCBhcHBseUFlTG9jazsKKyAgICAgICAgdWludDhfdCBhZUxvY2s7CisgICAgICAgIGJvb2wgYXBwbHlBZVByZWNhcHR1cmVUcmlnZ2VyOworICAgICAgICB1aW50OF90IGFlUHJlY2FwdHVyZVRyaWdnZXI7CisgICAgfTsKKworICAgIGNhbWVyYTNfZGV2aWNlX3QqIG1EZXZpY2U7CisgICAgdWludDMyX3QgbURldmljZVZlcnNpb247CisgICAgYm9vbCBtSXNBRUxvY2tBdmFpbGFibGU7CisgICAgYm9vbCBtRGVyaXZlUG9zdFJhd1NlbnNLZXk7CisgICAgdWludDMyX3QgbU51bVBhcnRpYWxSZXN1bHRzOworICAgIC8vIFN0cmVhbSBJRCAtPiBDYW1lcmEzU3RyZWFtIGNhY2hlCisgICAgc3RkOjptYXA8aW50LCBDYW1lcmEzU3RyZWFtPiBtU3RyZWFtTWFwOworCisgICAgbXV0YWJsZSBNdXRleCBtSW5mbGlnaHRMb2NrOyAvLyBwcm90ZWN0aW5nIG1JbmZsaWdodEJ1ZmZlcnMgYW5kIG1DaXJjdWxhdGluZ0J1ZmZlcnMKKyAgICAvLyAoc3RyZWFtSUQsIGZyYW1lTnVtYmVyKSAtPiBpbmZsaWdodCBidWZmZXIgY2FjaGUKKyAgICBzdGQ6Om1hcDxzdGQ6OnBhaXI8aW50LCB1aW50MzJfdD4sIGNhbWVyYTNfc3RyZWFtX2J1ZmZlcl90PiAgbUluZmxpZ2h0QnVmZmVyczsKKworICAgIC8vIChmcmFtZU51bWJlciwgQUVUcmlnZ2VyT3ZlcnJpZGUpIC0+IGluZmxpZ2h0IHJlcXVlc3QgQUVUcmlnZ2VyT3ZlcnJpZGVzCisgICAgc3RkOjptYXA8dWludDMyX3QsIEFFVHJpZ2dlckNhbmNlbE92ZXJyaWRlPiBtSW5mbGlnaHRBRVRyaWdnZXJPdmVycmlkZXM7CisgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpjb21tb246OlYxXzA6OmhlbHBlcjo6Q2FtZXJhTWV0YWRhdGEgbU92ZXJyaWRlblJlc3VsdDsKKyAgICBzdGQ6Om1hcDx1aW50MzJfdCwgYm9vbD4gbUluZmxpZ2h0UmF3Qm9vc3RQcmVzZW50OworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6Y29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1ldGFkYXRhIG1PdmVycmlkZW5SZXF1ZXN0OworCisgICAgLy8gYnVmZmVycyBjdXJyZW50bHkgY2ljdWxhdGluZyBiZXR3ZWVuIEhBTCBhbmQgY2FtZXJhIHNlcnZpY2UKKyAgICAvLyBrZXk6IGJ1ZmZlcklkIHNlbnQgdmlhIEhJREwgaW50ZXJmYWNlCisgICAgLy8gdmFsdWU6IGltcG9ydGVkIGJ1ZmZlcl9oYW5kbGVfdAorICAgIC8vIEJ1ZmZlciB3aWxsIGJlIGltcG9ydGVkIGR1cmluZyBwcm9jZXNzX2NhcHR1cmVfcmVxdWVzdCBhbmQgd2lsbCBiZSBmcmVlZAorICAgIC8vIHdoZW4gdGhlIGl0cyBzdHJlYW0gaXMgZGVsZXRlZCBvciBjYW1lcmEgZGV2aWNlIHNlc3Npb24gaXMgY2xvc2VkCisgICAgdHlwZWRlZiBzdGQ6OnVub3JkZXJlZF9tYXA8dWludDY0X3QsIGJ1ZmZlcl9oYW5kbGVfdD4gQ2lyY3VsYXRpbmdCdWZmZXJzOworICAgIC8vIFN0cmVhbSBJRCAtPiBjaXJjdWxhdGluZyBidWZmZXJzIG1hcAorICAgIHN0ZDo6bWFwPGludCwgQ2lyY3VsYXRpbmdCdWZmZXJzPiBtQ2lyY3VsYXRpbmdCdWZmZXJzOworCisgICAgc3RhdGljIEhhbmRsZUltcG9ydGVyIHNIYW5kbGVJbXBvcnRlcjsKKworICAgIGJvb2wgbUluaXRGYWlsOworCisgICAgY29tbW9uOjpWMV8wOjpoZWxwZXI6OkNhbWVyYU1ldGFkYXRhIG1EZXZpY2VJbmZvOworCisgICAgdXNpbmcgUmVxdWVzdE1ldGFkYXRhUXVldWUgPSBNZXNzYWdlUXVldWU8dWludDhfdCwga1N5bmNocm9uaXplZFJlYWRXcml0ZT47CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlcXVlc3RNZXRhZGF0YVF1ZXVlPiBtUmVxdWVzdE1ldGFkYXRhUXVldWU7CisgICAgdXNpbmcgUmVzdWx0TWV0YWRhdGFRdWV1ZSA9IE1lc3NhZ2VRdWV1ZTx1aW50OF90LCBrU3luY2hyb25pemVkUmVhZFdyaXRlPjsKKyAgICBzdGQ6OnNoYXJlZF9wdHI8UmVzdWx0TWV0YWRhdGFRdWV1ZT4gbVJlc3VsdE1ldGFkYXRhUXVldWU7CisKKyAgICBjbGFzcyBSZXN1bHRCYXRjaGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFJlc3VsdEJhdGNoZXIoY29uc3Qgc3A8SUNhbWVyYURldmljZUNhbGxiYWNrPiYgY2FsbGJhY2spOworICAgICAgICB2b2lkIHNldE51bVBhcnRpYWxSZXN1bHRzKHVpbnQzMl90IG4pOworICAgICAgICB2b2lkIHNldEJhdGNoZWRTdHJlYW1zKGNvbnN0IHN0ZDo6dmVjdG9yPGludD4mIHN0cmVhbXNUb0JhdGNoKTsKKyAgICAgICAgdm9pZCBzZXRSZXN1bHRNZXRhZGF0YVF1ZXVlKHN0ZDo6c2hhcmVkX3B0cjxSZXN1bHRNZXRhZGF0YVF1ZXVlPiBxKTsKKworICAgICAgICB2b2lkIHJlZ2lzdGVyQmF0Y2goY29uc3QgaGlkbF92ZWM8Q2FwdHVyZVJlcXVlc3Q+JiByZXF1ZXN0cyk7CisgICAgICAgIHZvaWQgbm90aWZ5KE5vdGlmeU1zZyYgbXNnKTsKKyAgICAgICAgdm9pZCBwcm9jZXNzQ2FwdHVyZVJlc3VsdChDYXB0dXJlUmVzdWx0JiByZXN1bHQpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgc3RydWN0IEluZmxpZ2h0QmF0Y2ggeworICAgICAgICAgICAgLy8gUHJvdGVjdCBhY2Nlc3MgdG8gZW50aXJlIHN0cnVjdC4gQWNxdWlyZSB0aGlzIGxvY2sgYmVmb3JlIHJlYWQvd3JpdGUgYW55IGRhdGEgb3IKKyAgICAgICAgICAgIC8vIGNhbGxpbmcgYW55IG1ldGhvZHMuIHByb2Nlc3NDYXB0dXJlUmVzdWx0IGFuZCBub3RpZnkgd2lsbCBjb21wZXRlIGZvciB0aGlzIGxvY2sKKyAgICAgICAgICAgIC8vIEhJREwgSVBDcyBtaWdodCBiZSBpc3N1ZWQgd2hpbGUgdGhlIGxvY2sgaXMgaGVsZAorICAgICAgICAgICAgTXV0ZXggbUxvY2s7CisKKyAgICAgICAgICAgIGJvb2wgYWxsRGVsaXZlcmVkKCkgY29uc3Q7CisKKyAgICAgICAgICAgIHVpbnQzMl90IG1GaXJzdEZyYW1lOworICAgICAgICAgICAgdWludDMyX3QgbUxhc3RGcmFtZTsKKyAgICAgICAgICAgIHVpbnQzMl90IG1CYXRjaFNpemU7CisKKyAgICAgICAgICAgIGJvb2wgbVNodXR0ZXJEZWxpdmVyZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPE5vdGlmeU1zZz4gbVNodXR0ZXJNc2dzOworCisgICAgICAgICAgICBzdHJ1Y3QgQnVmZmVyQmF0Y2ggeworICAgICAgICAgICAgICAgIGJvb2wgbURlbGl2ZXJlZCA9IGZhbHNlOworICAgICAgICAgICAgICAgIC8vIFRoaXMgY3VycmVudGx5IGFzc3VtZXMgZXZlcnkgYmF0Y2hlZCByZXF1ZXN0IHdpbGwgb3V0cHV0IHRvIHRoZSBiYXRjaGVkIHN0cmVhbQorICAgICAgICAgICAgICAgIC8vIGFuZCBzaW5jZSBIQUwgbXVzdCBhbHdheXMgc2VuZCBidWZmZXJzIGluIG9yZGVyLCBubyBmcmFtZU51bWJlciB0cmFja2luZyBpcworICAgICAgICAgICAgICAgIC8vIG5lZWRlZAorICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPFN0cmVhbUJ1ZmZlcj4gbUJ1ZmZlcnM7CisgICAgICAgICAgICB9OworICAgICAgICAgICAgLy8gU3RyZWFtIElEIC0+IFZpZGVvQmF0Y2gKKyAgICAgICAgICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxpbnQsIEJ1ZmZlckJhdGNoPiBtQmF0Y2hCdWZzOworCisgICAgICAgICAgICBzdHJ1Y3QgTWV0YWRhdGFCYXRjaCB7CisgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgKGZyYW1lTnVtYmVyLCBtZXRhZGF0YSkKKyAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnBhaXI8dWludDMyX3QsIENhbWVyYU1ldGFkYXRhPj4gbU1kczsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICAvLyBQYXJ0aWFsIHJlc3VsdCBJRHMgdGhhdCBoYXMgYmVlbiBkZWxpdmVyZWQgdG8gZnJhbWV3b3JrCisgICAgICAgICAgICB1aW50MzJfdCBtTnVtUGFydGlhbFJlc3VsdHM7CisgICAgICAgICAgICB1aW50MzJfdCBtUGFydGlhbFJlc3VsdFByb2dyZXNzID0gMDsKKyAgICAgICAgICAgIC8vIHBhcnRpYWxSZXN1bHQgLT4gTWV0YWRhdGFCYXRjaAorICAgICAgICAgICAgc3RkOjptYXA8dWludDMyX3QsIE1ldGFkYXRhQmF0Y2g+IG1SZXN1bHRNZHM7CisKKyAgICAgICAgICAgIC8vIFNldCB0byB0cnVlIHdoZW4gYmF0Y2ggaXMgcmVtb3ZlZCBmcm9tIG1JbmZsaWdodEJhdGNoZXMKKyAgICAgICAgICAgIC8vIHByb2Nlc3NDYXB0dXJlUmVzdWx0IGFuZCBub3RpZnkgbXVzdCBjaGVjayB0aGlzIGZsYWcgYWZ0ZXIgYWNxdWlyaW5nIG1Mb2NrIHRvIG1ha2UKKyAgICAgICAgICAgIC8vIHN1cmUgdGhpcyBiYXRjaCBpc24ndCByZW1vdmVkIHdoaWxlIHdhaXRpbmcgZm9yIG1Mb2NrCisgICAgICAgICAgICBib29sIG1SZW1vdmVkID0gZmFsc2U7CisgICAgICAgIH07CisKKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBOT1RfQkFUQ0hFRCA9IC0xOworCisgICAgICAgIC8vIEdldCB0aGUgYmF0Y2ggaW5kZXggYW5kIHBvaW50ZXIgdG8gSW5mbGlnaHRCYXRjaCAobnVsbHB0cnQgaWYgdGhlIGZyYW1lIGlzIG5vdCBiYXRjaGVkKQorICAgICAgICAvLyBDYWxsZXIgbXVzdCBhY3F1aXJlIHRoZSBJbmZsaWdodEJhdGNoOjptTG9jayBiZWZvcmUgYWNjZXNzaW5nIHRoZSBJbmZsaWdodEJhdGNoCisgICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgSW5mbGlnaHRCYXRjaCBpcyByZW1vdmVkIGZyb20gbUluZmxpZ2h0QmF0Y2hlcyBiZWZvcmUgdGhlCisgICAgICAgIC8vIEluZmxpZ2h0QmF0Y2g6Om1Mb2NrIGlzIGFjcXVpcmVkIChtb3N0IGxpa2VseSBjYXVzZWQgYnkgYW4gZXJyb3Igbm90aWZpY2F0aW9uKSwgc28KKyAgICAgICAgLy8gY2FsbGVyIG11c3QgY2hlY2sgSW5mbGlnaHRCYXRjaDo6bVJlbW92ZWQgZmxhZyBhZnRlciB0aGUgbG9jayBpcyBhY3F1cmllZC4KKyAgICAgICAgLy8gVGhpcyBtZXRob2Qgd2lsbCBob2xkIFJlc3VsdEJhdGNoZXI6Om1Mb2NrIGJyaWVmbHkKKyAgICAgICAgc3RkOjpwYWlyPGludCwgc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+PiBnZXRCYXRjaCh1aW50MzJfdCBmcmFtZU51bWJlcik7CisKKyAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGZpcnN0IGJhdGNoIGluIG1JbmZsaWdodEJhdGNoZXMgaXMgcmVhZHkgdG8gYmUgcmVtb3ZlZCwgYW5kIHJlbW92ZSBpdCBpZiBzbworICAgICAgICAvLyBUaGlzIG1ldGhvZCB3aWxsIGhvbGQgUmVzdWx0QmF0Y2hlcjo6bUxvY2sgYnJpZWZseQorICAgICAgICB2b2lkIGNoZWNrQW5kUmVtb3ZlRmlyc3RCYXRjaCgpOworCisgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgc2VuZFhYWFggbWV0aG9kcyBtdXN0IGJlIGNhbGxlZCB3aGlsZSB0aGUgSW5mbGlnaHRCYXRjaDo6bUxvY2sgaXMgbG9ja2VkCisgICAgICAgIC8vIEhJREwgSVBDIG1ldGhvZHMgd2lsbCBiZSBjYWxsZWQgZHVyaW5nIHRoZXNlIG1ldGhvZHMuCisgICAgICAgIHZvaWQgc2VuZEJhdGNoU2h1dHRlckNic0xvY2tlZChzdGQ6OnNoYXJlZF9wdHI8SW5mbGlnaHRCYXRjaD4gYmF0Y2gpOworICAgICAgICAvLyBzZW5kIGJ1ZmZlcnMgZm9yIGFsbCBiYXRjaGVkIHN0cmVhbXMKKyAgICAgICAgdm9pZCBzZW5kQmF0Y2hCdWZmZXJzTG9ja2VkKHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCk7CisgICAgICAgIC8vIHNlbmQgYnVmZmVycyBmb3Igc3BlY2lmaWVkIHN0cmVhbXMKKyAgICAgICAgdm9pZCBzZW5kQmF0Y2hCdWZmZXJzTG9ja2VkKAorICAgICAgICAgICAgICAgIHN0ZDo6c2hhcmVkX3B0cjxJbmZsaWdodEJhdGNoPiBiYXRjaCwgY29uc3Qgc3RkOjp2ZWN0b3I8aW50PiYgc3RyZWFtcyk7CisgICAgICAgIHZvaWQgc2VuZEJhdGNoTWV0YWRhdGFMb2NrZWQoCisgICAgICAgICAgICAgICAgc3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+IGJhdGNoLCB1aW50MzJfdCBsYXN0UGFydGlhbFJlc3VsdElkeCk7CisgICAgICAgIC8vIEVuZCBvZiBzZW5kWFhYWCBtZXRob2RzCisKKyAgICAgICAgLy8gaGVscGVyIG1ldGhvZHMKKyAgICAgICAgdm9pZCBmcmVlUmVsZWFzZUZlbmNlcyhoaWRsX3ZlYzxDYXB0dXJlUmVzdWx0PiYpOworICAgICAgICB2b2lkIG5vdGlmeVNpbmdsZU1zZyhOb3RpZnlNc2cmIG1zZyk7CisgICAgICAgIHZvaWQgcHJvY2Vzc09uZUNhcHR1cmVSZXN1bHQoQ2FwdHVyZVJlc3VsdCYgcmVzdWx0KTsKKyAgICAgICAgdm9pZCBpbnZva2VQcm9jZXNzQ2FwdHVyZVJlc3VsdENhbGxiYWNrKGhpZGxfdmVjPENhcHR1cmVSZXN1bHQ+ICZyZXN1bHRzLCBib29sIHRyeVdyaXRlRm1xKTsKKworICAgICAgICAvLyBQcm90ZWN0IGFjY2VzcyB0byBtSW5mbGlnaHRCYXRjaGVzLCBtTnVtUGFydGlhbFJlc3VsdHMgYW5kIG1TdHJlYW1zVG9CYXRjaAorICAgICAgICAvLyBwcm9jZXNzQ2FwdHVyZVJlcXVlc3QsIHByb2Nlc3NDYXB0dXJlUmVzdWx0LCBub3RpZnkgd2lsbCBjb21wZXRlIGZvciB0aGlzIGxvY2sKKyAgICAgICAgLy8gRG8gTk9UIGlzc3VlIEhJREwgSVBDcyB3aGlsZSBob2xkaW5nIHRoaXMgbG9jayAoZXhjZXB0IHdoZW4gSEFMIHJlcG9ydHMgZXJyb3IpCisgICAgICAgIG11dGFibGUgTXV0ZXggbUxvY2s7CisgICAgICAgIHN0ZDo6ZGVxdWU8c3RkOjpzaGFyZWRfcHRyPEluZmxpZ2h0QmF0Y2g+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+IG5lYXIgZm9jdXMgZGlzdGFuY2UuIElmCisgICAgLy8gdGhlIGZhciBmb2N1cyBkaXN0YW5jZSBpcyBpbmZpbml0eSwgdGhlIHZhbHVlIHNob3VsZCBiZSAiSW5maW5pdHkiIChjYXNlCisgICAgLy8gc2Vuc2l0aXZlKS4gVGhlIGZvcm1hdCBpcyB0aHJlZSBmbG9hdCB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGNvbW1hcy4gVGhlCisgICAgLy8gZmlyc3QgaXMgbmVhciBmb2N1cyBkaXN0YW5jZS4gVGhlIHNlY29uZCBpcyBvcHRpbWFsIGZvY3VzIGRpc3RhbmNlLiBUaGUKKyAgICAvLyB0aGlyZCBpcyBmYXIgZm9jdXMgZGlzdGFuY2UuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogIjAuOTUsMS45LEluZmluaXR5IiBvciAiMC4wNDksMC4wNSwwLjA1MSIuIFJlYWQgb25seS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfRk9DVVNfRElTVEFOQ0VTW107CisKKyAgICAvLyBUaGUgY3VycmVudCBkaW1lbnNpb25zIGluIHBpeGVscyAod2lkdGggeCBoZWlnaHQpIGZvciB2aWRlbyBmcmFtZXMuCisgICAgLy8gVGhlIHdpZHRoIGFuZCBoZWlnaHQgbXVzdCBiZSBvbmUgb2YgdGhlIHN1cHBvcnRlZCBzaXplcyByZXRyaWV2ZWQKKyAgICAvLyB2aWEgS0VZX1NVUFBPUlRFRF9WSURFT19TSVpFUy4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAiMTI4MHg3MjAiLiBSZWFkL3dyaXRlLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9WSURFT19TSVpFW107CisgICAgLy8gQSBsaXN0IG9mIHRoZSBzdXBwb3J0ZWQgZGltZW5zaW9ucyBpbiBwaXhlbHMgKHdpZHRoIHggaGVpZ2h0KQorICAgIC8vIGZvciB2aWRlbyBmcmFtZXMuIFNlZSBDQU1FUkFfTVNHX1ZJREVPX0ZSQU1FIGZvciBkZXRhaWxzIGluCisgICAgLy8gZnJhbWV3b3Jrcy9iYXNlL2luY2x1ZGUvY2FtZXJhL0NhbWVyYS5oLgorICAgIC8vIEV4YW1wbGU6ICIxNzZ4MTQ0LDEyODB4NzIwIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9TVVBQT1JURURfVklERU9fU0laRVNbXTsKKworICAgIC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiBkZXRlY3RlZCBmYWNlcyBzdXBwb3J0ZWQgYnkgaGFyZHdhcmUgZmFjZQorICAgIC8vIGRldGVjdGlvbi4gSWYgdGhlIHZhbHVlIGlzIDAsIGhhcmR3YXJlIGZhY2UgZGV0ZWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgLy8gRXhhbXBsZTogIjUiLiBSZWFkIG9ubHkKKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfTUFYX05VTV9ERVRFQ1RFRF9GQUNFU19IV1tdOworCisgICAgLy8gVGhlIG1heGltdW0gbnVtYmVyIG9mIGRldGVjdGVkIGZhY2VzIHN1cHBvcnRlZCBieSBzb2Z0d2FyZSBmYWNlCisgICAgLy8gZGV0ZWN0aW9uLiBJZiB0aGUgdmFsdWUgaXMgMCwgc29mdHdhcmUgZmFjZSBkZXRlY3Rpb24gaXMgbm90IHN1cHBvcnRlZC4KKyAgICAvLyBFeGFtcGxlOiAiNSIuIFJlYWQgb25seQorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9NQVhfTlVNX0RFVEVDVEVEX0ZBQ0VTX1NXW107CisKKyAgICAvLyBQcmVmZXJyZWQgcHJldmlldyBmcmFtZSBzaXplIGluIHBpeGVscyBmb3IgdmlkZW8gcmVjb3JkaW5nLgorICAgIC8vIFRoZSB3aWR0aCBhbmQgaGVpZ2h0IG11c3QgYmUgb25lIG9mIHRoZSBzdXBwb3J0ZWQgc2l6ZXMgcmV0cmlldmVkCisgICAgLy8gdmlhIEtFWV9TVVBQT1JURURfUFJFVklFV19TSVpFUy4gVGhpcyBrZXkgY2FuIGJlIHVzZWQgb25seSB3aGVuCisgICAgLy8gZ2V0U3VwcG9ydGVkVmlkZW9TaXplcygpIGRvZXMgbm90IHJldHVybiBhbiBlbXB0eSBWZWN0b3Igb2YgU2l6ZS4KKyAgICAvLyBDYW1jb3JkZXIgYXBwbGljYXRpb25zIGFyZSByZWNvbW1lbmRlZCB0byBzZXQgdGhlIHByZXZpZXcgc2l6ZQorICAgIC8vIHRvIGEgdmFsdWUgdGhhdCBpcyBub3QgbGFyZ2VyIHRoYW4gdGhlIHByZWZlcnJlZCBwcmV2aWV3IHNpemUuCisgICAgLy8gSW4gb3RoZXIgd29yZHMsIHRoZSBwcm9kdWN0IG9mIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZQorICAgIC8vIHByZXZpZXcgc2l6ZSBzaG91bGQgbm90IGJlIGxhcmdlciB0aGFuIHRoYXQgb2YgdGhlIHByZWZlcnJlZAorICAgIC8vIHByZXZpZXcgc2l6ZS4gSW4gYWRkaXRpb24sIHdlIHJlY29tbWVuZCB0byBjaG9vcyBhIHByZXZpZXcgc2l6ZQorICAgIC8vIHRoYXQgaGFzIHRoZSBzYW1lIGFzcGVjdCByYXRpbyBhcyB0aGUgcmVzb2x1dGlvbiBvZiB2aWRlbyB0byBiZQorICAgIC8vIHJlY29yZGVkLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICI4MDB4NjAwIi4gUmVhZCBvbmx5LgorICAgIHN0YXRpYyBjb25zdCBjaGFyIEtFWV9QUkVGRVJSRURfUFJFVklFV19TSVpFX0ZPUl9WSURFT1tdOworCisgICAgLy8gVGhlIGltYWdlIGZvcm1hdCBmb3IgdmlkZW8gZnJhbWVzLiBTZWUgQ0FNRVJBX01TR19WSURFT19GUkFNRSBpbgorICAgIC8vIGZyYW1ld29ya3MvYmFzZS9pbmNsdWRlL2NhbWVyYS9DYW1lcmEuaC4KKyAgICAvLyBFeGFtcGxlIHZhbHVlOiAieXV2NDIwc3AiIG9yIFBJWEVMX0ZPUk1BVF9YWFggY29uc3RhbnRzLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1ZJREVPX0ZSQU1FX0ZPUk1BVFtdOworCisgICAgLy8gU2V0cyB0aGUgaGludCBvZiB0aGUgcmVjb3JkaW5nIG1vZGUuIElmIHRoaXMgaXMgdHJ1ZSwgTWVkaWFSZWNvcmRlci5zdGFydAorICAgIC8vIG1heSBiZSBmYXN0ZXIgb3IgaGFzIGxlc3MgZ2xpdGNoZXMuIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgc3RhcnRpbmcKKyAgICAvLyB0aGUgcHJldmlldyBmb3IgdGhlIGJlc3QgcmVzdWx0LiBCdXQgaXQgaXMgYWxsb3dlZCB0byBjaGFuZ2UgdGhlIGhpbnQKKyAgICAvLyB3aGlsZSB0aGUgcHJldmlldyBpcyBhY3RpdmUuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLgorICAgIC8vCisgICAgLy8gVGhlIGFwcHMgY2FuIHN0aWxsIGNhbGwgQ2FtZXJhLnRha2VQaWN0dXJlIHdoZW4gdGhlIGhpbnQgaXMgdHJ1ZS4gVGhlCisgICAgLy8gYXBwcyBjYW4gY2FsbCBNZWRpYVJlY29yZGVyLnN0YXJ0IHdoZW4gdGhlIGhpbnQgaXMgZmFsc2UuIEJ1dCB0aGUKKyAgICAvLyBwZXJmb3JtYW5jZSBtYXkgYmUgd29yc2UuCisgICAgLy8gRXhhbXBsZSB2YWx1ZTogInRydWUiIG9yICJmYWxzZSIuIFJlYWQvd3JpdGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1JFQ09SRElOR19ISU5UW107CisKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdmlkZW8gc25hcHNob3QgaXMgc3VwcG9ydGVkLiBUaGF0IGlzLCBhcHBsaWNhdGlvbnMKKyAgICAvLyBjYW4gY2FsbCBDYW1lcmEudGFrZVBpY3R1cmUgZHVyaW5nIHJlY29yZGluZy4gQXBwbGljYXRpb25zIGRvIG5vdCBuZWVkIHRvCisgICAgLy8gY2FsbCBDYW1lcmEuc3RhcnRQcmV2aWV3IGFmdGVyIHRha2luZyBhIHBpY3R1cmUuIFRoZSBwcmV2aWV3IHdpbGwgYmUKKyAgICAvLyBzdGlsbCBhY3RpdmUuIE90aGVyIHRoYW4gdGhhdCwgdGFraW5nIGEgcGljdHVyZSBkdXJpbmcgcmVjb3JkaW5nIGlzCisgICAgLy8gaWRlbnRpY2FsIHRvIHRha2luZyBhIHBpY3R1cmUgbm9ybWFsbHkuIEFsbCBzZXR0aW5ncyBhbmQgbWV0aG9kcyByZWxhdGVkCisgICAgLy8gdG8gdGFrZVBpY3R1cmUgd29yayBpZGVudGljYWxseS4gRXg6IEtFWV9QSUNUVVJFX1NJWkUsCisgICAgLy8gS0VZX1NVUFBPUlRFRF9QSUNUVVJFX1NJWkVTLCBLRVlfSlBFR19RVUFMSVRZLCBLRVlfUk9UQVRJT04sIGFuZCBldGMuCisgICAgLy8gVGhlIHBpY3R1cmUgd2lsbCBoYXZlIGFuIEVYSUYgaGVhZGVyLiBGTEFTSF9NT0RFX0FVVE8gYW5kIEZMQVNIX01PREVfT04KKyAgICAvLyBhbHNvIHN0aWxsIHdvcmssIGJ1dCB0aGUgdmlkZW8gd2lsbCByZWNvcmQgdGhlIGZsYXNoLgorICAgIC8vCisgICAgLy8gQXBwbGljYXRpb25zIGNhbiBzZXQgc2h1dHRlciBjYWxsYmFjayBhcyBudWxsIHRvIGF2b2lkIHRoZSBzaHV0dGVyCisgICAgLy8gc291bmQuIEl0IGlzIGFsc28gcmVjb21tZW5kZWQgdG8gc2V0IHJhdyBwaWN0dXJlIGFuZCBwb3N0IHZpZXcgY2FsbGJhY2tzCisgICAgLy8gdG8gbnVsbCB0byBhdm9pZCB0aGUgaW50ZXJydXB0IG9mIHByZXZpZXcgZGlzcGxheS4KKyAgICAvLworICAgIC8vIEZpZWxkLW9mLXZpZXcgb2YgdGhlIHJlY29yZGVkIHZpZGVvIG1heSBiZSBkaWZmZXJlbnQgZnJvbSB0aGF0IG9mIHRoZQorICAgIC8vIGNhcHR1cmVkIHBpY3R1cmVzLgorICAgIC8vIEV4YW1wbGUgdmFsdWU6ICJ0cnVlIiBvciAiZmFsc2UiLiBSZWFkIG9ubHkuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1ZJREVPX1NOQVBTSE9UX1NVUFBPUlRFRFtdOworCisgICAgLy8gVGhlIHN0YXRlIG9mIHRoZSB2aWRlbyBzdGFiaWxpemF0aW9uLiBJZiBzZXQgdG8gdHJ1ZSwgYm90aCB0aGUKKyAgICAvLyBwcmV2aWV3IHN0cmVhbSBhbmQgdGhlIHJlY29yZGVkIHZpZGVvIHN0cmVhbSBhcmUgc3RhYmlsaXplZCBieQorICAgIC8vIHRoZSBjYW1lcmEuIE9ubHkgdmFsaWQgdG8gc2V0IGlmIEtFWV9WSURFT19TVEFCSUxJWkFUSU9OX1NVUFBPUlRFRCBpcworICAgIC8vIHNldCB0byB0cnVlLgorICAgIC8vCisgICAgLy8gVGhlIHZhbHVlIG9mIHRoaXMga2V5IGNhbiBiZSBjaGFuZ2VkIGFueSB0aW1lIHRoZSBjYW1lcmEgaXMKKyAgICAvLyBvcGVuLiBJZiBwcmV2aWV3IG9yIHJlY29yZGluZyBpcyBhY3RpdmUsIGl0IGlzIGFjY2VwdGFibGUgZm9yCisgICAgLy8gdGhlcmUgdG8gYmUgYSBzbGlnaHQgdmlkZW8gZ2xpdGNoIHdoZW4gdmlkZW8gc3RhYmlsaXphdGlvbiBpcworICAgIC8vIHRvZ2dsZWQgb24gYW5kIG9mZi4KKyAgICAvLworICAgIC8vIFRoaXMgb25seSBzdGFiaWxpemVzIHZpZGVvIHN0cmVhbXMgKGJldHdlZW4tZnJhbWVzIHN0YWJpbGl6YXRpb24pLCBhbmQKKyAgICAvLyBoYXMgbm8gZWZmZWN0IG9uIHN0aWxsIGltYWdlIGNhcHR1cmUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1ZJREVPX1NUQUJJTElaQVRJT05bXTsKKworICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB2aWRlbyBzdGFiaWxpemF0aW9uIGlzIHN1cHBvcnRlZC4gVGhhdCBpcywgYXBwbGljYXRpb25zCisgICAgLy8gY2FuIHNldCBLRVlfVklERU9fU1RBQklMSVpBVElPTiB0byB0cnVlIGFuZCBoYXZlIGEgc3RhYmlsaXplZCBwcmV2aWV3CisgICAgLy8gc3RyZWFtIGFuZCByZWNvcmQgc3RhYmlsaXplZCB2aWRlb3MuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgS0VZX1ZJREVPX1NUQUJJTElaQVRJT05fU1VQUE9SVEVEW107CisKKyAgICAvLyBTdXBwb3J0ZWQgbW9kZXMgZm9yIHNwZWNpYWwgZWZmZWN0cyB3aXRoIGxpZ2h0LgorICAgIC8vIEV4YW1wbGUgdmFsdWVzOiAibG93bGlnaHQsaGRyIi4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBLRVlfTElHSFRGWFtdOworCisgICAgLy8gVmFsdWUgZm9yIEtFWV9aT09NX1NVUFBPUlRFRCBvciBLRVlfU01PT1RIX1pPT01fU1VQUE9SVEVELgorICAgIHN0YXRpYyBjb25zdCBjaGFyIFRSVUVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBGQUxTRVtdOworCisgICAgLy8gVmFsdWUgZm9yIEtFWV9GT0NVU19ESVNUQU5DRVMuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfRElTVEFOQ0VfSU5GSU5JVFlbXTsKKworICAgIC8vIFZhbHVlcyBmb3Igd2hpdGUgYmFsYW5jZSBzZXR0aW5ncy4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBXSElURV9CQUxBTkNFX0FVVE9bXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBXSElURV9CQUxBTkNFX0lOQ0FOREVTQ0VOVFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFdISVRFX0JBTEFOQ0VfRkxVT1JFU0NFTlRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBXSElURV9CQUxBTkNFX1dBUk1fRkxVT1JFU0NFTlRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBXSElURV9CQUxBTkNFX0RBWUxJR0hUW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9DTE9VRFlfREFZTElHSFRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBXSElURV9CQUxBTkNFX1RXSUxJR0hUW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgV0hJVEVfQkFMQU5DRV9TSEFERVtdOworCisgICAgLy8gVmFsdWVzIGZvciBlZmZlY3Qgc2V0dGluZ3MuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRUZGRUNUX05PTkVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfTU9OT1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9ORUdBVElWRVtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9TT0xBUklaRVtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9TRVBJQVtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9QT1NURVJJWkVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBFRkZFQ1RfV0hJVEVCT0FSRFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEVGRkVDVF9CTEFDS0JPQVJEW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgRUZGRUNUX0FRVUFbXTsKKworICAgIC8vIFZhbHVlcyBmb3IgYW50aWJhbmRpbmcgc2V0dGluZ3MuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgQU5USUJBTkRJTkdfQVVUT1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIEFOVElCQU5ESU5HXzUwSFpbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBBTlRJQkFORElOR182MEhaW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgQU5USUJBTkRJTkdfT0ZGW107CisKKyAgICAvLyBWYWx1ZXMgZm9yIGZsYXNoIG1vZGUgc2V0dGluZ3MuCisgICAgLy8gRmxhc2ggd2lsbCBub3QgYmUgZmlyZWQuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRkxBU0hfTU9ERV9PRkZbXTsKKyAgICAvLyBGbGFzaCB3aWxsIGJlIGZpcmVkIGF1dG9tYXRpY2FsbHkgd2hlbiByZXF1aXJlZC4gVGhlIGZsYXNoIG1heSBiZSBmaXJlZAorICAgIC8vIGR1cmluZyBwcmV2aWV3LCBhdXRvLWZvY3VzLCBvciBzbmFwc2hvdCBkZXBlbmRpbmcgb24gdGhlIGRyaXZlci4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBGTEFTSF9NT0RFX0FVVE9bXTsKKyAgICAvLyBGbGFzaCB3aWxsIGFsd2F5cyBiZSBmaXJlZCBkdXJpbmcgc25hcHNob3QuIFRoZSBmbGFzaCBtYXkgYWxzbyBiZQorICAgIC8vIGZpcmVkIGR1cmluZyBwcmV2aWV3IG9yIGF1dG8tZm9jdXMgZGVwZW5kaW5nIG9uIHRoZSBkcml2ZXIuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRkxBU0hfTU9ERV9PTltdOworICAgIC8vIEZsYXNoIHdpbGwgYmUgZmlyZWQgaW4gcmVkLWV5ZSByZWR1Y3Rpb24gbW9kZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBGTEFTSF9NT0RFX1JFRF9FWUVbXTsKKyAgICAvLyBDb25zdGFudCBlbWlzc2lvbiBvZiBsaWdodCBkdXJpbmcgcHJldmlldywgYXV0by1mb2N1cyBhbmQgc25hcHNob3QuCisgICAgLy8gVGhpcyBjYW4gYWxzbyBiZSB1c2VkIGZvciB2aWRlbyByZWNvcmRpbmcuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRkxBU0hfTU9ERV9UT1JDSFtdOworCisgICAgLy8gVmFsdWVzIGZvciBzY2VuZSBtb2RlIHNldHRpbmdzLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfQVVUT1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfQUNUSU9OW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9QT1JUUkFJVFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfTEFORFNDQVBFW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9OSUdIVFtdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfTklHSFRfUE9SVFJBSVRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX1RIRUFUUkVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX0JFQUNIW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9TTk9XW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9TVU5TRVRbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX1NURUFEWVBIT1RPW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9GSVJFV09SS1NbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX1NQT1JUU1tdOworICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfUEFSVFlbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBTQ0VORV9NT0RFX0NBTkRMRUxJR0hUW107CisgICAgLy8gQXBwbGljYXRpb25zIGFyZSBsb29raW5nIGZvciBhIGJhcmNvZGUuIENhbWVyYSBkcml2ZXIgd2lsbCBiZSBvcHRpbWl6ZWQKKyAgICAvLyBmb3IgYmFyY29kZSByZWFkaW5nLgorICAgIHN0YXRpYyBjb25zdCBjaGFyIFNDRU5FX01PREVfQkFSQ09ERVtdOworICAgIC8vIEEgaGlnaC1keW5hbWljIHJhbmdlIG1vZGUuIEluIHRoaXMgbW9kZSwgdGhlIEhBTCBtb2R1bGUgd2lsbCB1c2UgYQorICAgIC8vIGNhcHR1cmUgc3RyYXRlZ3kgdGhhdCBleHRlbmRzIHRoZSBkeW5hbWljIHJhbmdlIG9mIHRoZSBjYXB0dXJlZAorICAgIC8vIGltYWdlIGluIHNvbWUgZmFzaGlvbi4gT25seSB0aGUgZmluYWwgaW1hZ2UgaXMgcmV0dXJuZWQuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgU0NFTkVfTU9ERV9IRFJbXTsKKworICAgIC8vIFBpeGVsIGNvbG9yIGZvcm1hdHMgZm9yIEtFWV9QUkVWSUVXX0ZPUk1BVCwgS0VZX1BJQ1RVUkVfRk9STUFULAorICAgIC8vIGFuZCBLRVlfVklERU9fRlJBTUVfRk9STUFUCisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX1lVVjQyMlNQW107CisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX1lVVjQyMFNQW107IC8vIE5WMjEKKyAgICBzdGF0aWMgY29uc3QgY2hhciBQSVhFTF9GT1JNQVRfWVVWNDIySVtdOyAvLyBZVVkyCisgICAgc3RhdGljIGNvbnN0IGNoYXIgUElYRUxfRk9STUFUX1lVVjQyMFBbXTsgLy8gWVYxMgorICAgIHN0YXRpYyBjb25zdCBjaGFyIFBJWEVMX0ZPUk1BVF9SR0I1NjVbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBQSVhFTF9GT1JNQVRfUkdCQTg4ODhbXTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBQSVhFTF9GT1JNQVRfSlBFR1tdOworICAgIC8vIFJhdyBiYXllciBmb3JtYXQgdXNlZCBmb3IgaW1hZ2VzLCB3aGljaCBpcyAxMCBiaXQgcHJlY2lzaW9uIHNhbXBsZXMKKyAgICAvLyBzdG9yZWQgaW4gMTYgYml0IHdvcmRzLiBUaGUgZmlsdGVyIHBhdHRlcm4gaXMgUkdHQi4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBQSVhFTF9GT1JNQVRfQkFZRVJfUkdHQltdOworICAgIC8vIFBpeGVsIGZvcm1hdCBpcyBub3Qga25vd24gdG8gdGhlIGZyYW1ld29yaworICAgIHN0YXRpYyBjb25zdCBjaGFyIFBJWEVMX0ZPUk1BVF9BTkRST0lEX09QQVFVRVtdOworCisgICAgLy8gVmFsdWVzIGZvciBmb2N1cyBtb2RlIHNldHRpbmdzLgorICAgIC8vIEF1dG8tZm9jdXMgbW9kZS4gQXBwbGljYXRpb25zIHNob3VsZCBjYWxsCisgICAgLy8gQ2FtZXJhSGFyZHdhcmVJbnRlcmZhY2UuYXV0b0ZvY3VzIHRvIHN0YXJ0IHRoZSBmb2N1cyBpbiB0aGlzIG1vZGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9BVVRPW107CisgICAgLy8gRm9jdXMgaXMgc2V0IGF0IGluZmluaXR5LiBBcHBsaWNhdGlvbnMgc2hvdWxkIG5vdCBjYWxsCisgICAgLy8gQ2FtZXJhSGFyZHdhcmVJbnRlcmZhY2UuYXV0b0ZvY3VzIGluIHRoaXMgbW9kZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBGT0NVU19NT0RFX0lORklOSVRZW107CisgICAgLy8gTWFjcm8gKGNsb3NlLXVwKSBmb2N1cyBtb2RlLiBBcHBsaWNhdGlvbnMgc2hvdWxkIGNhbGwKKyAgICAvLyBDYW1lcmFIYXJkd2FyZUludGVyZmFjZS5hdXRvRm9jdXMgdG8gc3RhcnQgdGhlIGZvY3VzIGluIHRoaXMgbW9kZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBGT0NVU19NT0RFX01BQ1JPW107CisgICAgLy8gRm9jdXMgaXMgZml4ZWQuIFRoZSBjYW1lcmEgaXMgYWx3YXlzIGluIHRoaXMgbW9kZSBpZiB0aGUgZm9jdXMgaXMgbm90CisgICAgLy8gYWRqdXN0YWJsZS4gSWYgdGhlIGNhbWVyYSBoYXMgYXV0by1mb2N1cywgdGhpcyBtb2RlIGNhbiBmaXggdGhlCisgICAgLy8gZm9jdXMsIHdoaWNoIGlzIHVzdWFsbHkgYXQgaHlwZXJmb2NhbCBkaXN0YW5jZS4gQXBwbGljYXRpb25zIHNob3VsZAorICAgIC8vIG5vdCBjYWxsIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLmF1dG9Gb2N1cyBpbiB0aGlzIG1vZGUuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9GSVhFRFtdOworICAgIC8vIEV4dGVuZGVkIGRlcHRoIG9mIGZpZWxkIChFRE9GKS4gRm9jdXNpbmcgaXMgZG9uZSBkaWdpdGFsbHkgYW5kCisgICAgLy8gY29udGludW91c2x5LiBBcHBsaWNhdGlvbnMgc2hvdWxkIG5vdCBjYWxsCisgICAgLy8gQ2FtZXJhSGFyZHdhcmVJbnRlcmZhY2UuYXV0b0ZvY3VzIGluIHRoaXMgbW9kZS4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBGT0NVU19NT0RFX0VET0ZbXTsKKyAgICAvLyBDb250aW51b3VzIGF1dG8gZm9jdXMgbW9kZSBpbnRlbmRlZCBmb3IgdmlkZW8gcmVjb3JkaW5nLiBUaGUgY2FtZXJhCisgICAgLy8gY29udGludW91c2x5IHRyaWVzIHRvIGZvY3VzLiBUaGlzIGlzIHRoZSBiZXN0IGNob2ljZSBmb3IgdmlkZW8KKyAgICAvLyByZWNvcmRpbmcgYmVjYXVzZSB0aGUgZm9jdXMgY2hhbmdlcyBzbW9vdGhseSAuIEFwcGxpY2F0aW9ucyBzdGlsbCBjYW4KKyAgICAvLyBjYWxsIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLnRha2VQaWN0dXJlIGluIHRoaXMgbW9kZSBidXQgdGhlIHN1YmplY3QgbWF5CisgICAgLy8gbm90IGJlIGluIGZvY3VzLiBBdXRvIGZvY3VzIHN0YXJ0cyB3aGVuIHRoZSBwYXJhbWV0ZXIgaXMgc2V0LgorICAgIC8vCisgICAgLy8gQXBwbGljYXRpb25zIGNhbiBjYWxsIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLmF1dG9Gb2N1cyBpbiB0aGlzIG1vZGUuIFRoZQorICAgIC8vIGZvY3VzIGNhbGxiYWNrIHdpbGwgaW1tZWRpYXRlbHkgcmV0dXJuIHdpdGggYSBib29sZWFuIHRoYXQgaW5kaWNhdGVzCisgICAgLy8gd2hldGhlciB0aGUgZm9jdXMgaXMgc2hhcnAgb3Igbm90LiBUaGUgZm9jdXMgcG9zaXRpb24gaXMgbG9ja2VkIGFmdGVyCisgICAgLy8gYXV0b0ZvY3VzIGNhbGwuIElmIGFwcGxpY2F0aW9ucyB3YW50IHRvIHJlc3VtZSB0aGUgY29udGludW91cyBmb2N1cywKKyAgICAvLyBjYW5jZWxBdXRvRm9jdXMgbXVzdCBiZSBjYWxsZWQuIFJlc3RhcnRpbmcgdGhlIHByZXZpZXcgd2lsbCBub3QgcmVzdW1lCisgICAgLy8gdGhlIGNvbnRpbnVvdXMgYXV0b2ZvY3VzLiBUbyBzdG9wIGNvbnRpbnVvdXMgZm9jdXMsIGFwcGxpY2F0aW9ucyBzaG91bGQKKyAgICAvLyBjaGFuZ2UgdGhlIGZvY3VzIG1vZGUgdG8gb3RoZXIgbW9kZXMuCisgICAgc3RhdGljIGNvbnN0IGNoYXIgRk9DVVNfTU9ERV9DT05USU5VT1VTX1ZJREVPW107CisgICAgLy8gQ29udGludW91cyBhdXRvIGZvY3VzIG1vZGUgaW50ZW5kZWQgZm9yIHRha2luZyBwaWN0dXJlcy4gVGhlIGNhbWVyYQorICAgIC8vIGNvbnRpbnVvdXNseSB0cmllcyB0byBmb2N1cy4gVGhlIHNwZWVkIG9mIGZvY3VzIGNoYW5nZSBpcyBtb3JlIGFnZ3Jlc3NpdmUKKyAgICAvLyB0aGFuIEZPQ1VTX01PREVfQ09OVElOVU9VU19WSURFTy4gQXV0byBmb2N1cyBzdGFydHMgd2hlbiB0aGUgcGFyYW1ldGVyIGlzCisgICAgLy8gc2V0LgorICAgIC8vCisgICAgLy8gQXBwbGljYXRpb25zIGNhbiBjYWxsIENhbWVyYUhhcmR3YXJlSW50ZXJmYWNlLmF1dG9Gb2N1cyBpbiB0aGlzIG1vZGUuIElmCisgICAgLy8gdGhlIGF1dG9mb2N1cyBpcyBpbiB0aGUgbWlkZGxlIG9mIHNjYW5uaW5nLCB0aGUgZm9jdXMgY2FsbGJhY2sgd2lsbAorICAgIC8vIHJldHVybiB3aGVuIGl0IGNvbXBsZXRlcy4gSWYgdGhlIGF1dG9mb2N1cyBpcyBub3Qgc2Nhbm5pbmcsIGZvY3VzCisgICAgLy8gY2FsbGJhY2sgd2lsbCBpbW1lZGlhdGVseSByZXR1cm4gd2l0aCBhIGJvb2xlYW4gdGhhdCBpbmRpY2F0ZXMgd2hldGhlcgorICAgIC8vIHRoZSBmb2N1cyBpcyBzaGFycCBvciBub3QuIFRoZSBhcHBzIGNhbiB0aGVuIGRlY2lkZSBpZiB0aGV5IHdhbnQgdG8gdGFrZQorICAgIC8vIGEgcGljdHVyZSBpbW1lZGlhdGVseSBvciB0byBjaGFuZ2UgdGhlIGZvY3VzIG1vZGUgdG8gYXV0bywgYW5kIHJ1biBhIGZ1bGwKKyAgICAvLyBhdXRvZm9jdXMgY3ljbGUuIFRoZSBmb2N1cyBwb3NpdGlvbiBpcyBsb2NrZWQgYWZ0ZXIgYXV0b0ZvY3VzIGNhbGwuIElmCisgICAgLy8gYXBwbGljYXRpb25zIHdhbnQgdG8gcmVzdW1lIHRoZSBjb250aW51b3VzIGZvY3VzLCBjYW5jZWxBdXRvRm9jdXMgbXVzdCBiZQorICAgIC8vIGNhbGxlZC4gUmVzdGFydGluZyB0aGUgcHJldmlldyB3aWxsIG5vdCByZXN1bWUgdGhlIGNvbnRpbnVvdXMgYXV0b2ZvY3VzLgorICAgIC8vIFRvIHN0b3AgY29udGludW91cyBmb2N1cywgYXBwbGljYXRpb25zIHNob3VsZCBjaGFuZ2UgdGhlIGZvY3VzIG1vZGUgdG8KKyAgICAvLyBvdGhlciBtb2Rlcy4KKyAgICBzdGF0aWMgY29uc3QgY2hhciBGT0NVU19NT0RFX0NPTlRJTlVPVVNfUElDVFVSRVtdOworCisgICAgLy8gVmFsdWVzIGZvciBsaWdodCBzcGVjaWFsIGVmZmVjdHMKKyAgICAvLyBMb3ctbGlnaHQgZW5oYW5jZW1lbnQgbW9kZQorICAgIHN0YXRpYyBjb25zdCBjaGFyIExJR0hURlhfTE9XTElHSFRbXTsKKyAgICAvLyBIaWdoLWR5bmFtaWMgcmFuZ2UgbW9kZQorICAgIHN0YXRpYyBjb25zdCBjaGFyIExJR0hURlhfSERSW107CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSB0aGUgc3VwcG9ydGVkIHByZXZpZXcgZm9ybWF0cyBhcyBhbiBlbnVtIGdpdmVuIGluIGdyYXBoaWNzLmgKKyAgICAgKiBjb3Jyc3BvbmRpbmcgdG8gdGhlIGZvcm1hdCBnaXZlbiBpbiB0aGUgaW5wdXQgc3RyaW5nIG9yIC0xIGlmIG5vIHN1Y2gKKyAgICAgKiBjb252ZXJzaW9uIGV4aXN0cy4KKyAgICAgKi8KKyAgICBzdGF0aWMgaW50IHByZXZpZXdGb3JtYXRUb0VudW0oY29uc3QgY2hhciogZm9ybWF0KTsKKworcHJpdmF0ZToKKyAgICBEZWZhdWx0S2V5ZWRWZWN0b3I8U3RyaW5nOCxTdHJpbmc4PiAgICBtTWFwOworfTsKKworfTsgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvMi40L3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbENhbWVyYVByb3ZpZGVyVjJfNFRhcmdldFRlc3QuY3BwIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9WdHNIYWxDYW1lcmFQcm92aWRlclYyXzRUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGU0NGQzCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyLzIuNC92dHMvZnVuY3Rpb25hbC9WdHNIYWxDYW1lcmFQcm92aWRlclYyXzRUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDMyNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImNhbWVyYV9oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8xLjAvSUNhbWVyYURldmljZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL2RldmljZS8zLjIvSUNhbWVyYURldmljZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY2FtZXJhL3Byb3ZpZGVyLzIuNC9JQ2FtZXJhUHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGJpbmRlci9NZW1vcnlIZWFwQmFzZS5oPgorI2luY2x1ZGUgPGdyYWxsb2N1c2FnZS9HcmFsbG9jVXNhZ2VDb252ZXJzaW9uLmg+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+Z2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzKAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgY2hhcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYUNoYXJhY3RlcmlzdGljcyByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiBtZXRhZGF0YSA9IChjYW1lcmFfbWV0YWRhdGFfdCopIGNoYXJzLmRhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGV4cGVjdGVkU2l6ZSA9IGNoYXJzLnNpemUoKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDAsIHZhbGlkYXRlX2NhbWVyYV9tZXRhZGF0YV9zdHJ1Y3R1cmUobWV0YWRhdGEsICZleHBlY3RlZFNpemUpKTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGVudHJ5Q291bnQgPSBnZXRfY2FtZXJhX21ldGFkYXRhX2VudHJ5X2NvdW50KG1ldGFkYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogd2UgY2FuIGRvIGJldHRlciB0aGFuIDAgaGVyZS4gTmVlZCB0byBjaGVjayBob3cgbWFueSByZXF1aXJlZAorICAgICAgICAgICAgICAgICAgICAvLyBjaGFyYWN0ZXJpc3RpY3Mga2V5cyB3ZSd2ZSBkZWZpbmVkLgorICAgICAgICAgICAgICAgICAgICBBU1NFUlRfR1QoZW50cnlDb3VudCwgMHUpOworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzIG1ldGFkYXRhIGVudHJ5IGNvdW50IGlzICV6dSIsIGVudHJ5Q291bnQpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vSW4gY2FzZSBpdCBpcyBzdXBwb3J0ZWQgdmVyaWZ5IHRoYXQgdG9yY2ggY2FuIGJlIGVuYWJsZWQuCisvL0NoZWNrIGZvciBjb3JyZXNwb25kaW5nIHRvY2ggY2FsbGJhY2tzIGFzIHdlbGwuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHNldFRvcmNoTW9kZSkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgYm9vbCB0b3JjaENvbnRyb2xTdXBwb3J0ZWQgPSBmYWxzZTsKKyAgICBSZXR1cm48dm9pZD4gcmV0OworCisgICAgcmV0ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5tUHJvdmlkZXItPmlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkKAorICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGJvb2wgc3VwcG9ydCkgeworICAgICAgICAgICAgQUxPR0koImlzU2V0VG9yY2hNb2RlU3VwcG9ydGVkIHJldHVybnMgc3RhdHVzOiVkIHN1cHBvcnRlZDolZCIsCisgICAgICAgICAgICAgICAgICAgIChpbnQpc3RhdHVzLCBzdXBwb3J0KTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgdG9yY2hDb250cm9sU3VwcG9ydGVkID0gc3VwcG9ydDsKKyAgICAgICAgfSk7CisKKworICAgIHNwPFRvcmNoUHJvdmlkZXJDYj4gY2IgPSBuZXcgVG9yY2hQcm92aWRlckNiKHRoaXMpOworICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGVudi0+bVByb3ZpZGVyLT5zZXRDYWxsYmFjayhjYik7CisgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgOjphbmRyb2lkOjpzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZT4gZGV2aWNlM18yOworICAgICAgICAgICAgQUxPR0koInNldFRvcmNoTW9kZTogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCgKKyAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgZGV2aWNlKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBkZXZpY2UzXzIgPSBkZXZpY2U7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgbVRvcmNoU3RhdHVzID0gVG9yY2hNb2RlU3RhdHVzOjpOT1RfQVZBSUxBQkxFOworICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlM18yLT5zZXRUb3JjaE1vZGUoVG9yY2hNb2RlOjpPTik7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIGlmICghdG9yY2hDb250cm9sU3VwcG9ydGVkKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQsIHJldHVyblN0YXR1cyk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cyA9PSBTdGF0dXM6Ok9LIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuU3RhdHVzID09IFN0YXR1czo6T1BFUkFUSU9OX05PVF9TVVBQT1JURUQpOworICAgICAgICAgICAgICAgIGlmIChyZXR1cm5TdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobVRvcmNoTG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoVG9yY2hNb2RlU3RhdHVzOjpOT1RfQVZBSUxBQkxFID09IG1Ub3JjaFN0YXR1cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKGtUb3JjaFRpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShzdGQ6OmN2X3N0YXR1czo6dGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1Ub3JjaENvbmQud2FpdF91bnRpbChsLCB0aW1lb3V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoVG9yY2hNb2RlU3RhdHVzOjpBVkFJTEFCTEVfT04sIG1Ub3JjaFN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICBtVG9yY2hTdGF0dXMgPSBUb3JjaE1vZGVTdGF0dXM6Ok5PVF9BVkFJTEFCTEU7CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICByZXR1cm5TdGF0dXMgPSBkZXZpY2UzXzItPnNldFRvcmNoTW9kZShUb3JjaE1vZGU6Ok9GRik7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobVRvcmNoTG9jayk7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoVG9yY2hNb2RlU3RhdHVzOjpOT1RfQVZBSUxBQkxFID09IG1Ub3JjaFN0YXR1cykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKGtUb3JjaFRpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShzdGQ6OmN2X3N0YXR1czo6dGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1Ub3JjaENvbmQud2FpdF91bnRpbChsLCB0aW1lb3V0KSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoVG9yY2hNb2RlU3RhdHVzOjpBVkFJTEFCTEVfT0ZGLCBtVG9yY2hTdGF0dXMpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBBTE9HSSgiZHVtcFN0YXRlOiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRldmljZTEgPSBkZXZpY2U7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgbVRvcmNoU3RhdHVzID0gVG9yY2hNb2RlU3RhdHVzOjpOT1RfQVZBSUxBQkxFOworICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c2V0VG9yY2hNb2RlKFRvcmNoTW9kZTo6T04pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBpZiAoIXRvcmNoQ29udHJvbFN1cHBvcnRlZCkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok1FVEhPRF9OT1RfU1VQUE9SVEVELCByZXR1cm5TdGF0dXMpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMgPT0gU3RhdHVzOjpPSyB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblN0YXR1cyA9PSBTdGF0dXM6Ok9QRVJBVElPTl9OT1RfU1VQUE9SVEVEKTsKKyAgICAgICAgICAgICAgICBpZiAocmV0dXJuU3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Ub3JjaExvY2spOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKFRvcmNoTW9kZVN0YXR1czo6Tk9UX0FWQUlMQUJMRSA9PSBtVG9yY2hTdGF0dXMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyhrVG9yY2hUaW1lb3V0U2VjKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtVG9yY2hDb25kLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFRvcmNoTW9kZVN0YXR1czo6QVZBSUxBQkxFX09OLCBtVG9yY2hTdGF0dXMpOworICAgICAgICAgICAgICAgICAgICAgICAgbVRvcmNoU3RhdHVzID0gVG9yY2hNb2RlU3RhdHVzOjpOT1RfQVZBSUxBQkxFOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gZGV2aWNlMS0+c2V0VG9yY2hNb2RlKFRvcmNoTW9kZTo6T0ZGKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCByZXR1cm5TdGF0dXMpOworCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtVG9yY2hMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChUb3JjaE1vZGVTdGF0dXM6Ok5PVF9BVkFJTEFCTEUgPT0gbVRvcmNoU3RhdHVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0byB0aW1lb3V0ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1RvcmNoVGltZW91dFNlYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHN0ZDo6Y3Zfc3RhdHVzOjp0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVRvcmNoQ29uZC53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShUb3JjaE1vZGVTdGF0dXM6OkFWQUlMQUJMRV9PRkYsIG1Ub3JjaFN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm5TdGF0dXMgPSBlbnYtPm1Qcm92aWRlci0+c2V0Q2FsbGJhY2sobnVsbHB0cik7CisgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7Cit9CisKKy8vIENoZWNrIGR1bXAgZnVuY3Rpb25hbGl0eS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgZHVtcFN0YXRlKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBSZXR1cm48dm9pZD4gcmV0OworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYzXzI6OklDYW1lcmFEZXZpY2U+IGRldmljZTNfMjsKKyAgICAgICAgICAgIEFMT0dJKCJkdW1wU3RhdGU6IFRlc3RpbmcgY2FtZXJhIGRldmljZSAlcyIsIG5hbWUuY19zdHIoKSk7CisgICAgICAgICAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3goCisgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIGRldmljZSkgeworICAgICAgICAgICAgICAgICAgICBBTE9HSSgiZ2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YzX3ggcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoZGV2aWNlLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZGV2aWNlM18yID0gZGV2aWNlOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogcmF3X2hhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDEsIDApOworICAgICAgICAgICAgcmF3X2hhbmRsZS0+ZGF0YVswXSA9IG9wZW4oa0R1bXBPdXRwdXQsIE9fUkRXUik7CisgICAgICAgICAgICBBU1NFUlRfR0UocmF3X2hhbmRsZS0+ZGF0YVswXSwgMCk7CisgICAgICAgICAgICBoaWRsX2hhbmRsZSBoYW5kbGUgPSByYXdfaGFuZGxlOworICAgICAgICAgICAgcmV0PSBkZXZpY2UzXzItPmR1bXBTdGF0ZShoYW5kbGUpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICBjbG9zZShyYXdfaGFuZGxlLT5kYXRhWzBdKTsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKHJhd19oYW5kbGUpOworICAgICAgICB9IGVsc2UgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6c3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+IGRldmljZTE7CisgICAgICAgICAgICBBTE9HSSgiZHVtcFN0YXRlOiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WMV94IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRldmljZTEgPSBkZXZpY2U7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV90KiByYXdfaGFuZGxlID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoMSwgMCk7CisgICAgICAgICAgICByYXdfaGFuZGxlLT5kYXRhWzBdID0gb3BlbihrRHVtcE91dHB1dCwgT19SRFdSKTsKKyAgICAgICAgICAgIEFTU0VSVF9HRShyYXdfaGFuZGxlLT5kYXRhWzBdLCAwKTsKKyAgICAgICAgICAgIGhpZGxfaGFuZGxlIGhhbmRsZSA9IHJhd19oYW5kbGU7CisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5kdW1wU3RhdGUoaGFuZGxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisgICAgICAgICAgICBjbG9zZShyYXdfaGFuZGxlLT5kYXRhWzBdKTsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKHJhd19oYW5kbGUpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBPcGVuLCBkdW1wU3RhdGVzLCB0aGVuIGNsb3NlCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIG9wZW5DbG9zZSkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICA6OmFuZHJvaWQ6OnNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWM18yOjpJQ2FtZXJhRGV2aWNlPiBkZXZpY2UzXzI7CisgICAgICAgICAgICBBTE9HSSgib3BlbkNsb3NlOiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WM194KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WM194IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBzcDxFbXB0eURldmljZUNiPiBjYiA9IG5ldyBFbXB0eURldmljZUNiOworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICByZXQgPSBkZXZpY2UzXzItPm9wZW4oCisgICAgICAgICAgICAgICAgY2IsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBuZXdTZXNzaW9uKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJkZXZpY2U6Om9wZW4gcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUobmV3U2Vzc2lvbiwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIHNlc3Npb24gPSBuZXdTZXNzaW9uOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCogcmF3X2hhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDEsIDApOworICAgICAgICAgICAgcmF3X2hhbmRsZS0+ZGF0YVswXSA9IG9wZW4oa0R1bXBPdXRwdXQsIE9fUkRXUik7CisgICAgICAgICAgICBBU1NFUlRfR0UocmF3X2hhbmRsZS0+ZGF0YVswXSwgMCk7CisgICAgICAgICAgICBoaWRsX2hhbmRsZSBoYW5kbGUgPSByYXdfaGFuZGxlOworICAgICAgICAgICAgcmV0ID0gZGV2aWNlM18yLT5kdW1wU3RhdGUoaGFuZGxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgY2xvc2UocmF3X2hhbmRsZS0+ZGF0YVswXSk7CisgICAgICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShyYXdfaGFuZGxlKTsKKworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgLy8gVE9ETzogdGVzdCBhbGwgc2Vzc2lvbiBBUEkgY2FsbHMgcmV0dXJuIElOVEVSTkFMX0VSUk9SIGFmdGVyIGNsb3NlCisgICAgICAgICAgICAvLyBUT0RPOiBrZWVwIGEgd3AgY29weSBoZXJlIGFuZCB2ZXJpZnkgc2Vzc2lvbiBjYW5ub3QgYmUgcHJvbW90ZWQgb3V0IG9mIHRoaXMgc2NvcGUKKyAgICAgICAgfSBlbHNlIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gZGV2aWNlMTsKKyAgICAgICAgICAgIG9wZW5DYW1lcmFEZXZpY2UobmFtZSwgZW52LCAmZGV2aWNlMSAvKm91dCovKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBkZXZpY2UxLmdldCgpKTsKKworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV90KiByYXdfaGFuZGxlID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoMSwgMCk7CisgICAgICAgICAgICByYXdfaGFuZGxlLT5kYXRhWzBdID0gb3BlbihrRHVtcE91dHB1dCwgT19SRFdSKTsKKyAgICAgICAgICAgIEFTU0VSVF9HRShyYXdfaGFuZGxlLT5kYXRhWzBdLCAwKTsKKyAgICAgICAgICAgIGhpZGxfaGFuZGxlIGhhbmRsZSA9IHJhd19oYW5kbGU7CisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UxLT5kdW1wU3RhdGUoaGFuZGxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldHVyblN0YXR1cy5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7CisgICAgICAgICAgICBjbG9zZShyYXdfaGFuZGxlLT5kYXRhWzBdKTsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKHJhd19oYW5kbGUpOworCisgICAgICAgICAgICByZXQgPSBkZXZpY2UxLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIHdoZXRoZXIgYWxsIGNvbW1vbiBkZWZhdWx0IHJlcXVlc3Qgc2V0dGluZ3MgY2FuIGJlIHN1Y2Vzc2Z1bGx5CisvLyBjb25zdHJ1Y3RlZC4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5ncykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgOjphbmRyb2lkOjpzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjNfMjo6SUNhbWVyYURldmljZT4gZGV2aWNlM18yOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIEFMT0dJKCJjb25zdHJ1Y3REZWZhdWx0UmVxdWVzdFNldHRpbmdzOiBUZXN0aW5nIGNhbWVyYSBkZXZpY2UgJXMiLCBuYW1lLmNfc3RyKCkpOworICAgICAgICAgICAgcmV0ID0gZW52LT5tUHJvdmlkZXItPmdldENhbWVyYURldmljZUludGVyZmFjZV9WM194KAorICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0koImdldENhbWVyYURldmljZUludGVyZmFjZV9WM194IHJldHVybnMgc3RhdHVzOiVkIiwgKGludClzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKGRldmljZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRldmljZTNfMiA9IGRldmljZTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBzcDxFbXB0eURldmljZUNiPiBjYiA9IG5ldyBFbXB0eURldmljZUNiOworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICByZXQgPSBkZXZpY2UzXzItPm9wZW4oCisgICAgICAgICAgICAgICAgY2IsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBuZXdTZXNzaW9uKSB7CisgICAgICAgICAgICAgICAgICAgIEFMT0dJKCJkZXZpY2U6Om9wZW4gcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUobmV3U2Vzc2lvbiwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIHNlc3Npb24gPSBuZXdTZXNzaW9uOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIGZvciAodWludDMyX3QgdCA9ICh1aW50MzJfdCkgUmVxdWVzdFRlbXBsYXRlOjpQUkVWSUVXOworICAgICAgICAgICAgICAgICAgICB0IDw9ICh1aW50MzJfdCkgUmVxdWVzdFRlbXBsYXRlOjpNQU5VQUw7IHQrKykgeworICAgICAgICAgICAgICAgIFJlcXVlc3RUZW1wbGF0ZSByZXFUZW1wbGF0ZSA9IChSZXF1ZXN0VGVtcGxhdGUpIHQ7CisgICAgICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5ncygKKyAgICAgICAgICAgICAgICAgICAgcmVxVGVtcGxhdGUsCisgICAgICAgICAgICAgICAgICAgIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgcmVxKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBBTE9HSSgiY29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5ncyByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXFUZW1wbGF0ZSA9PSBSZXF1ZXN0VGVtcGxhdGU6OlpFUk9fU0hVVFRFUl9MQUcgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxVGVtcGxhdGUgPT0gUmVxdWVzdFRlbXBsYXRlOjpNQU5VQUwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvcHRpb25hbCB0ZW1wbGF0ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpPSyB8fCBzdGF0dXMgPT0gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbWVyYV9tZXRhZGF0YV90KiBtZXRhZGF0YSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW1lcmFfbWV0YWRhdGFfdCopIHJlcS5kYXRhKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGV4cGVjdGVkU2l6ZSA9IHJlcS5zaXplKCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDAsIHZhbGlkYXRlX2NhbWVyYV9tZXRhZGF0YV9zdHJ1Y3R1cmUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YSwgJmV4cGVjdGVkU2l6ZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBlbnRyeUNvdW50ID0gZ2V0X2NhbWVyYV9tZXRhZGF0YV9lbnRyeV9jb3VudChtZXRhZGF0YSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogd2UgY2FuIGRvIGJldHRlciB0aGFuIDAgaGVyZS4gTmVlZCB0byBjaGVjayBob3cgbWFueSByZXF1aXJlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlcXVlc3Qga2V5cyB3ZSd2ZSBkZWZpbmVkIGZvciBlYWNoIHRlbXBsYXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0dUKGVudHJ5Q291bnQsIDB1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTE9HSSgidGVtcGxhdGUgJXUgbWV0YWRhdGEgZW50cnkgY291bnQgaXMgJXp1IiwgdCwgZW50cnlDb3VudCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgwdSwgcmVxLnNpemUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCBhbGwgc3VwcG9ydGVkIHN0cmVhbSBmb3JtYXRzIGFuZCBzaXplcyBjYW4gYmUgY29uZmlndXJlZAorLy8gc3VjY2Vzc2Z1bGx5LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBjb25maWd1cmVTdHJlYW1zQXZhaWxhYmxlT3V0cHV0cykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRTdHJlYW1zOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgb3BlbkVtcHR5RGV2aWNlU2Vzc2lvbihuYW1lLCBlbnYsICZzZXNzaW9uIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZzdGF0aWNNZXRhIC8qb3V0Ki8pOworCisgICAgICAgICAgICBvdXRwdXRTdHJlYW1zLmNsZWFyKCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgZ2V0QXZhaWxhYmxlT3V0cHV0U3RyZWFtcyhzdGF0aWNNZXRhLAorICAgICAgICAgICAgICAgICAgICBvdXRwdXRTdHJlYW1zKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoMHUsIG91dHB1dFN0cmVhbXMuc2l6ZSgpKTsKKworICAgICAgICAgICAgaW50MzJfdCBzdHJlYW1JZCA9IDA7CisgICAgICAgICAgICBmb3IgKGF1dG8gJml0IDogb3V0cHV0U3RyZWFtcykgeworICAgICAgICAgICAgICAgIFN0cmVhbSBzdHJlYW0gPSB7c3RyZWFtSWQsIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaXQud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChpdC5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChpdC5mb3JtYXQpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbT4gc3RyZWFtcyA9IHtzdHJlYW19OworICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb24gY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbc3RyZWFtSWRdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24gaGFsQ29uZmlnKSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDF1LCBoYWxDb25maWcuc3RyZWFtcy5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoaGFsQ29uZmlnLnN0cmVhbXNbMF0uaWQsIHN0cmVhbUlkKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgICAgICBzdHJlYW1JZCsrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmcmVlX2NhbWVyYV9tZXRhZGF0YShzdGF0aWNNZXRhKTsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gQ2hlY2sgZm9yIGNvcnJlY3QgaGFuZGxpbmcgb2YgaW52YWxpZC9pbmNvcnJlY3QgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBjb25maWd1cmVTdHJlYW1zSW52YWxpZE91dHB1dHMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0U3RyZWFtczsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIG9wZW5FbXB0eURldmljZVNlc3Npb24obmFtZSwgZW52LCAmc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmc3RhdGljTWV0YSAvKm91dCovKTsKKworICAgICAgICAgICAgb3V0cHV0U3RyZWFtcy5jbGVhcigpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIGdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0U3RyZWFtcykpOworICAgICAgICAgICAgQVNTRVJUX05FKDB1LCBvdXRwdXRTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgIGludDMyX3Qgc3RyZWFtSWQgPSAwOworICAgICAgICAgICAgU3RyZWFtIHN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoMCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoMCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAob3V0cHV0U3RyZWFtc1swXS5mb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAwLCAwLCBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW0+IHN0cmVhbXMgPSB7c3RyZWFtfTsKKyAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb24gY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOjpOT1JNQUxfTU9ERX07CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW10gKFN0YXR1cyBzLAorICAgICAgICAgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCA9PSBzKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChTdGF0dXM6OklOVEVSTkFMX0VSUk9SID09IHMpKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIHN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoVUlOVDMyX01BWCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoVUlOVDMyX01BWCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAob3V0cHV0U3RyZWFtc1swXS5mb3JtYXQpLAorICAgICAgICAgICAgICAgICAgICAwLCAwLCBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICBzdHJlYW1zWzBdID0gc3RyZWFtOworICAgICAgICAgICAgY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOjpOT1JNQUxfTU9ERX07CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW10gKFN0YXR1cyBzLAorICAgICAgICAgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgcyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBmb3IgKGF1dG8gJml0IDogb3V0cHV0U3RyZWFtcykgeworICAgICAgICAgICAgICAgIHN0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGl0LndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaXQuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoVUlOVDMyX01BWCksCisgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgc3RyZWFtc1swXSA9IHN0cmVhbTsKKyAgICAgICAgICAgICAgICBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOjpOT1JNQUxfTU9ERX07CisgICAgICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgcyk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgICAgICBzdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChpdC53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGl0LmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKGl0LmZvcm1hdCksCisgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCBzdGF0aWNfY2FzdDxTdHJlYW1Sb3RhdGlvbj4gKFVJTlQzMl9NQVgpfTsKKyAgICAgICAgICAgICAgICBzdHJlYW1zWzBdID0gc3RyZWFtOworICAgICAgICAgICAgICAgIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6Ok5PUk1BTF9NT0RFfTsKKyAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW10gKFN0YXR1cyBzLAorICAgICAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbikgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5ULCBzKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEoc3RhdGljTWV0YSk7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIENoZWNrIHdoZXRoZXIgYWxsIHN1cHBvcnRlZCBaU0wgb3V0cHV0IHN0cmVhbSBjb21iaW5hdGlvbnMgY2FuIGJlCisvLyBjb25maWd1cmVkIHN1Y2Nlc3NmdWxseS4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgY29uZmlndXJlU3RyZWFtc1pTTElucHV0T3V0cHV0cykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBpbnB1dFN0cmVhbXM7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlWlNMSW5wdXRPdXRwdXQ+IGlucHV0T3V0cHV0TWFwOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgb3BlbkVtcHR5RGV2aWNlU2Vzc2lvbihuYW1lLCBlbnYsICZzZXNzaW9uIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZzdGF0aWNNZXRhIC8qb3V0Ki8pOworCisgICAgICAgICAgICBTdGF0dXMgcmMgPSBpc1pTTE1vZGVBdmFpbGFibGUoc3RhdGljTWV0YSk7CisgICAgICAgICAgICBpZiAoU3RhdHVzOjpNRVRIT0RfTk9UX1NVUFBPUlRFRCA9PSByYykgeworICAgICAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmMpOworCisgICAgICAgICAgICBpbnB1dFN0cmVhbXMuY2xlYXIoKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgIGlucHV0U3RyZWFtcykpOworICAgICAgICAgICAgQVNTRVJUX05FKDB1LCBpbnB1dFN0cmVhbXMuc2l6ZSgpKTsKKworICAgICAgICAgICAgaW5wdXRPdXRwdXRNYXAuY2xlYXIoKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRaU0xJbnB1dE91dHB1dE1hcChzdGF0aWNNZXRhLAorICAgICAgICAgICAgICAgICAgICBpbnB1dE91dHB1dE1hcCkpOworICAgICAgICAgICAgQVNTRVJUX05FKDB1LCBpbnB1dE91dHB1dE1hcC5zaXplKCkpOworCisgICAgICAgICAgICBpbnQzMl90IHN0cmVhbUlkID0gMDsKKyAgICAgICAgICAgIGZvciAoYXV0byAmaW5wdXRJdGVyIDogaW5wdXRPdXRwdXRNYXApIHsKKyAgICAgICAgICAgICAgICBBdmFpbGFibGVTdHJlYW0gaW5wdXQ7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgICBmaW5kTGFyZ2VzdFNpemUoaW5wdXRTdHJlYW1zLCBpbnB1dEl0ZXIuaW5wdXRGb3JtYXQsIGlucHV0KSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX05FKDB1LCBpbnB1dFN0cmVhbXMuc2l6ZSgpKTsKKworICAgICAgICAgICAgICAgIEF2YWlsYWJsZVN0cmVhbSBvdXRwdXRUaHJlc2hvbGQgPSB7SU5UMzJfTUFYLCBJTlQzMl9NQVgsCisgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dEl0ZXIub3V0cHV0Rm9ybWF0fTsKKyAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+IG91dHB1dFN0cmVhbXM7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIGdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dFN0cmVhbXMsICZvdXRwdXRUaHJlc2hvbGQpKTsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8gJm91dHB1dEl0ZXIgOiBvdXRwdXRTdHJlYW1zKSB7CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbSB6c2xTdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaW5wdXQud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaW5wdXQuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKGlucHV0LmZvcm1hdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1JBTExPQ19VU0FHRV9IV19DQU1FUkFfWlNMLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtIGlucHV0U3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6OklOUFVULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaW5wdXQud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaW5wdXQuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKGlucHV0LmZvcm1hdCksIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgICAgICAgICBTdHJlYW0gb3V0cHV0U3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKG91dHB1dEl0ZXIud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAob3V0cHV0SXRlci5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAob3V0cHV0SXRlci5mb3JtYXQpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKworICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW0+IHN0cmVhbXMgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRTdHJlYW0sIHpzbFN0cmVhbSwgb3V0cHV0U3RyZWFtfTsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbiBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxDb25maWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgzdSwgaGFsQ29uZmlnLnN0cmVhbXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEoc3RhdGljTWV0YSk7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIFZlcmlmeSB0aGF0IGFsbCBzdXBwb3J0ZWQgcHJldmlldyArIHN0aWxsIGNhcHR1cmUgc3RyZWFtIGNvbWJpbmF0aW9ucworLy8gY2FuIGJlIGNvbmZpZ3VyZWQgc3VjY2Vzc2Z1bGx5LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBjb25maWd1cmVTdHJlYW1zUHJldmlld1N0aWxsT3V0cHV0cykgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRCbG9iU3RyZWFtczsKKyAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+IG91dHB1dFByZXZpZXdTdHJlYW1zOworICAgIEF2YWlsYWJsZVN0cmVhbSBwcmV2aWV3VGhyZXNob2xkID0ge2tNYXhQcmV2aWV3V2lkdGgsIGtNYXhQcmV2aWV3SGVpZ2h0LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQpfTsKKyAgICBBdmFpbGFibGVTdHJlYW0gYmxvYlRocmVzaG9sZCA9IHtJTlQzMl9NQVgsIElOVDMyX01BWCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpCTE9CKX07CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGE7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgc3A8SUNhbWVyYURldmljZVNlc3Npb24+IHNlc3Npb247CisgICAgICAgICAgICBvcGVuRW1wdHlEZXZpY2VTZXNzaW9uKG5hbWUsIGVudiwgJnNlc3Npb24gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJnN0YXRpY01ldGEgLypvdXQqLyk7CisKKyAgICAgICAgICAgIG91dHB1dEJsb2JTdHJlYW1zLmNsZWFyKCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgZ2V0QXZhaWxhYmxlT3V0cHV0U3RyZWFtcyhzdGF0aWNNZXRhLAorICAgICAgICAgICAgICAgICAgICBvdXRwdXRCbG9iU3RyZWFtcywgJmJsb2JUaHJlc2hvbGQpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgb3V0cHV0QmxvYlN0cmVhbXMuc2l6ZSgpKTsKKworICAgICAgICAgICAgb3V0cHV0UHJldmlld1N0cmVhbXMuY2xlYXIoKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBnZXRBdmFpbGFibGVPdXRwdXRTdHJlYW1zKHN0YXRpY01ldGEsCisgICAgICAgICAgICAgICAgICAgIG91dHB1dFByZXZpZXdTdHJlYW1zLCAmcHJldmlld1RocmVzaG9sZCkpOworICAgICAgICAgICAgQVNTRVJUX05FKDB1LCBvdXRwdXRQcmV2aWV3U3RyZWFtcy5zaXplKCkpOworCisgICAgICAgICAgICBpbnQzMl90IHN0cmVhbUlkID0gMDsKKyAgICAgICAgICAgIGZvciAoYXV0byAmYmxvYkl0ZXIgOiBvdXRwdXRCbG9iU3RyZWFtcykgeworICAgICAgICAgICAgICAgIGZvciAoYXV0byAmcHJldmlld0l0ZXIgOiBvdXRwdXRQcmV2aWV3U3RyZWFtcykgeworICAgICAgICAgICAgICAgICAgICBTdHJlYW0gcHJldmlld1N0cmVhbSA9IHtzdHJlYW1JZCsrLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChwcmV2aWV3SXRlci53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChwcmV2aWV3SXRlci5oZWlnaHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAocHJldmlld0l0ZXIuZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICAgICAgICAgIFN0cmVhbSBibG9iU3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGJsb2JJdGVyLndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGJsb2JJdGVyLmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChibG9iSXRlci5mb3JtYXQpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtPiBzdHJlYW1zID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpZXdTdHJlYW0sIGJsb2JTdHJlYW19OworICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOjpOT1JNQUxfTU9ERX07CisgICAgICAgICAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbc3RyZWFtSWRdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uIGhhbENvbmZpZykgeworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHMpOworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDJ1LCBoYWxDb25maWcuc3RyZWFtcy5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmcmVlX2NhbWVyYV9tZXRhZGF0YShzdGF0aWNNZXRhKTsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gSW4gY2FzZSBjb25zdHJhaW5lZCBtb2RlIGlzIHN1cHBvcnRlZCwgdGVzdCB3aGV0aGVyIGl0IGNhbiBiZQorLy8gY29uZmlndXJlZC4gQWRkaXRpb25hbGx5IGNoZWNrIGZvciBjb21tb24gaW52YWxpZCBpbnB1dHMgd2hlbgorLy8gdXNpbmcgdGhpcyBtb2RlLgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBjb25maWd1cmVTdHJlYW1zQ29uc3RyYWluZWRPdXRwdXRzKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKworICAgIGZvciAoY29uc3QgYXV0byYgbmFtZSA6IGNhbWVyYURldmljZU5hbWVzKSB7CisgICAgICAgIGlmIChnZXRDYW1lcmFEZXZpY2VWZXJzaW9uKG5hbWUpID09IENBTUVSQV9ERVZJQ0VfQVBJX1ZFUlNJT05fM18yKSB7CisgICAgICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YTsKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQ7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIG9wZW5FbXB0eURldmljZVNlc3Npb24obmFtZSwgZW52LCAmc2Vzc2lvbiAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmc3RhdGljTWV0YSAvKm91dCovKTsKKworICAgICAgICAgICAgU3RhdHVzIHJjID0gaXNDb25zdHJhaW5lZE1vZGVBdmFpbGFibGUoc3RhdGljTWV0YSk7CisgICAgICAgICAgICBpZiAoU3RhdHVzOjpNRVRIT0RfTk9UX1NVUFBPUlRFRCA9PSByYykgeworICAgICAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmMpOworCisgICAgICAgICAgICBBdmFpbGFibGVTdHJlYW0gaGZyU3RyZWFtOworICAgICAgICAgICAgcmMgPSBwaWNrQ29uc3RyYWluZWRNb2RlU2l6ZShzdGF0aWNNZXRhLCBoZnJTdHJlYW0pOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJjKTsKKworICAgICAgICAgICAgaW50MzJfdCBzdHJlYW1JZCA9IDA7CisgICAgICAgICAgICBTdHJlYW0gc3RyZWFtID0ge3N0cmVhbUlkLCBTdHJlYW1UeXBlOjpPVVRQVVQsCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaGZyU3RyZWFtLndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChoZnJTdHJlYW0uaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChoZnJTdHJlYW0uZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtPiBzdHJlYW1zID0ge3N0cmVhbX07CisgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Q09OU1RSQUlORURfSElHSF9TUEVFRF9NT0RFfTsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbc3RyZWFtSWRdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxDb25maWcpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcyk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDF1LCBoYWxDb25maWcuc3RyZWFtcy5zaXplKCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShoYWxDb25maWcuc3RyZWFtc1swXS5pZCwgc3RyZWFtSWQpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgICAgICAgICAgc3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+ICgwKSwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+ICgwKSwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChoZnJTdHJlYW0uZm9ybWF0KSwgMCwgMCwKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgICAgICAgICAgc3RyZWFtc1swXSA9IHN0cmVhbTsKKyAgICAgICAgICAgIGNvbmZpZyA9IHtzdHJlYW1zLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Q09OU1RSQUlORURfSElHSF9TUEVFRF9NT0RFfTsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbmZpZ3VyZVN0cmVhbXMoY29uZmlnLCBbc3RyZWFtSWRdIChTdGF0dXMgcywKKyAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbikgeworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKChTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQgPT0gcykgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiA9PSBzKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBzdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFVJTlQzMl9NQVgpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFVJTlQzMl9NQVgpLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKGhmclN0cmVhbS5mb3JtYXQpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICBTdHJlYW1Sb3RhdGlvbjo6Uk9UQVRJT05fMH07CisgICAgICAgICAgICBzdHJlYW1zWzBdID0gc3RyZWFtOworICAgICAgICAgICAgY29uZmlnID0ge3N0cmVhbXMsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOjpDT05TVFJBSU5FRF9ISUdIX1NQRUVEX01PREV9OworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFtzdHJlYW1JZF0gKFN0YXR1cyBzLAorICAgICAgICAgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVCwgcyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBzdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKGhmclN0cmVhbS53aWR0aCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoaGZyU3RyZWFtLmhlaWdodCksCisgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PiAoVUlOVDMyX01BWCksIDAsIDAsCisgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgIHN0cmVhbXNbMF0gPSBzdHJlYW07CisgICAgICAgICAgICBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbk1vZGU6OkNPTlNUUkFJTkVEX0hJR0hfU1BFRURfTU9ERX07CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgIEhhbFN0cmVhbUNvbmZpZ3VyYXRpb24pIHsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5ULCBzKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIGZyZWVfY2FtZXJhX21ldGFkYXRhKHN0YXRpY01ldGEpOworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCBhbGwgc3VwcG9ydGVkIHZpZGVvICsgc25hcHNob3Qgc3RyZWFtIGNvbWJpbmF0aW9ucyBjYW4KKy8vIGJlIGNvbmZpZ3VyZWQgc3VjY2Vzc2Z1bGx5LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBjb25maWd1cmVTdHJlYW1zVmlkZW9TdGlsbE91dHB1dHMpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gb3V0cHV0QmxvYlN0cmVhbXM7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRWaWRlb1N0cmVhbXM7CisgICAgQXZhaWxhYmxlU3RyZWFtIHZpZGVvVGhyZXNob2xkID0ge2tNYXhWaWRlb1dpZHRoLCBrTWF4VmlkZW9IZWlnaHQsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihQaXhlbEZvcm1hdDo6SU1QTEVNRU5UQVRJT05fREVGSU5FRCl9OworICAgIEF2YWlsYWJsZVN0cmVhbSBibG9iVGhyZXNob2xkID0ge2tNYXhWaWRlb1dpZHRoLCBrTWF4VmlkZW9IZWlnaHQsCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihQaXhlbEZvcm1hdDo6QkxPQil9OworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgb3BlbkVtcHR5RGV2aWNlU2Vzc2lvbihuYW1lLCBlbnYsICZzZXNzaW9uIC8qb3V0Ki8sCisgICAgICAgICAgICAgICAgICAgICZzdGF0aWNNZXRhIC8qb3V0Ki8pOworCisgICAgICAgICAgICBvdXRwdXRCbG9iU3RyZWFtcy5jbGVhcigpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIGdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0QmxvYlN0cmVhbXMsICZibG9iVGhyZXNob2xkKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUoMHUsIG91dHB1dEJsb2JTdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgIG91dHB1dFZpZGVvU3RyZWFtcy5jbGVhcigpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIGdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoc3RhdGljTWV0YSwKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0VmlkZW9TdHJlYW1zLCAmdmlkZW9UaHJlc2hvbGQpKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORSgwdSwgb3V0cHV0VmlkZW9TdHJlYW1zLnNpemUoKSk7CisKKyAgICAgICAgICAgIGludDMyX3Qgc3RyZWFtSWQgPSAwOworICAgICAgICAgICAgZm9yIChhdXRvICZibG9iSXRlciA6IG91dHB1dEJsb2JTdHJlYW1zKSB7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvICZ2aWRlb0l0ZXIgOiBvdXRwdXRWaWRlb1N0cmVhbXMpIHsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtIHZpZGVvU3RyZWFtID0ge3N0cmVhbUlkKyssIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKHZpZGVvSXRlci53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+ICh2aWRlb0l0ZXIuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKHZpZGVvSXRlci5mb3JtYXQpLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtIGJsb2JTdHJlYW0gPSB7c3RyZWFtSWQrKywgU3RyZWFtVHlwZTo6T1VUUFVULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoYmxvYkl0ZXIud2lkdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoYmxvYkl0ZXIuaGVpZ2h0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQaXhlbEZvcm1hdD4gKGJsb2JJdGVyLmZvcm1hdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1JBTExPQ19VU0FHRV9IV19WSURFT19FTkNPREVSLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVJvdGF0aW9uOjpST1RBVElPTl8wfTsKKyAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3RyZWFtPiBzdHJlYW1zID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvU3RyZWFtLCBibG9iU3RyZWFtfTsKKyAgICAgICAgICAgICAgICAgICAgU3RyZWFtQ29uZmlndXJhdGlvbiBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1Db25maWd1cmF0aW9uTW9kZTo6Tk9STUFMX01PREV9OworICAgICAgICAgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jb25maWd1cmVTdHJlYW1zKGNvbmZpZywgW3N0cmVhbUlkXSAoU3RhdHVzIHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxDb25maWcpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUSgydSwgaGFsQ29uZmlnLnN0cmVhbXMuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnJlZV9jYW1lcmFfbWV0YWRhdGEoc3RhdGljTWV0YSk7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIEdlbmVyYXRlIGFuZCB2ZXJpZnkgYSBjYW1lcmEgY2FwdHVyZSByZXF1ZXN0CitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHByb2Nlc3NDYXB0dXJlUmVxdWVzdFByZXZpZXcpIHsKKyAgICBDYW1lcmFIaWRsRW52aXJvbm1lbnQqIGVudiA9IENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKTsKKyAgICBoaWRsX3ZlYzxoaWRsX3N0cmluZz4gY2FtZXJhRGV2aWNlTmFtZXMgPSBnZXRDYW1lcmFEZXZpY2VOYW1lcygpOworICAgIEF2YWlsYWJsZVN0cmVhbSBwcmV2aWV3VGhyZXNob2xkID0ge2tNYXhQcmV2aWV3V2lkdGgsIGtNYXhQcmV2aWV3SGVpZ2h0LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQpfTsKKyAgICB1aW50NjRfdCBidWZmZXJJZCA9IDE7CisgICAgdWludDMyX3QgZnJhbWVOdW1iZXIgPSAxOworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPHVpbnQ4X3Q+IHNldHRpbmdzOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIFN0cmVhbSBwcmV2aWV3U3RyZWFtOworICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxTdHJlYW1Db25maWc7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIGNvbmZpZ3VyZVByZXZpZXdTdHJlYW0obmFtZSwgZW52LCAmcHJldmlld1RocmVzaG9sZCwKKyAgICAgICAgICAgICAgICAgICAgJnNlc3Npb24gLypvdXQqLywgJnByZXZpZXdTdHJlYW0gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKTsKKworICAgICAgICAgICAgUmVxdWVzdFRlbXBsYXRlIHJlcVRlbXBsYXRlID0gUmVxdWVzdFRlbXBsYXRlOjpQUkVWSUVXOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MocmVxVGVtcGxhdGUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiByZXEpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzID0gcmVxOyB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBzcDxHcmFwaGljQnVmZmVyPiBnYiA9IG5ldyBHcmFwaGljQnVmZmVyKAorICAgICAgICAgICAgICAgIHByZXZpZXdTdHJlYW0ud2lkdGgsIHByZXZpZXdTdHJlYW0uaGVpZ2h0LAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KGhhbFN0cmVhbUNvbmZpZy5zdHJlYW1zWzBdLm92ZXJyaWRlRm9ybWF0KSwKKyAgICAgICAgICAgICAgICAxLCBhbmRyb2lkX2NvbnZlcnRHcmFsbG9jMVRvMFVzYWdlKAorICAgICAgICAgICAgICAgICAgICAgICBoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5wcm9kdWNlclVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICBoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5jb25zdW1lclVzYWdlKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZ2IuZ2V0KCkpOworICAgICAgICAgICAgU3RyZWFtQnVmZmVyIG91dHB1dEJ1ZmZlciA9IHtoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5pZCwKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVySWQsIGhpZGxfaGFuZGxlKGdiLT5nZXROYXRpdmVCdWZmZXIoKS0+aGFuZGxlKSwKKyAgICAgICAgICAgICAgICAgICAgQnVmZmVyU3RhdHVzOjpPSywgbnVsbHB0ciwgbnVsbHB0cn07CisgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW1CdWZmZXI+IG91dHB1dEJ1ZmZlcnMgPSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dEJ1ZmZlcn07CisgICAgICAgICAgICBTdHJlYW1CdWZmZXIgZW1wdHlJbnB1dEJ1ZmZlciA9IHstMSwgMCwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgQnVmZmVyU3RhdHVzOjpFUlJPUiwgbnVsbHB0ciwgbnVsbHB0cn07CisgICAgICAgICAgICBDYXB0dXJlUmVxdWVzdCByZXF1ZXN0ID0ge2ZyYW1lTnVtYmVyLCAwIC8qIGZtcVNldHRpbmdzU2l6ZSAqLywgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgIGVtcHR5SW5wdXRCdWZmZXIsIG91dHB1dEJ1ZmZlcnN9OworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICBtUmVzdWx0QnVmZmVycy5jbGVhcigpOworICAgICAgICAgICAgICAgIG1SZXN1bHRGcmFtZU51bWJlciA9IGZyYW1lTnVtYmVyOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gU3RhdHVzOjpJTlRFUk5BTF9FUlJPUjsKKyAgICAgICAgICAgIHVpbnQzMl90IG51bVJlcXVlc3RQcm9jZXNzZWQgPSAwOworICAgICAgICAgICAgaGlkbF92ZWM8QnVmZmVyQ2FjaGU+IGNhY2hlc1RvUmVtb3ZlOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldHVyblN0YXR1cyA9IHNlc3Npb24tPnByb2Nlc3NDYXB0dXJlUmVxdWVzdCgKKyAgICAgICAgICAgICAgICAgICAge3JlcXVlc3R9LAorICAgICAgICAgICAgICAgICAgICBjYWNoZXNUb1JlbW92ZSwKKyAgICAgICAgICAgICAgICAgICAgWyZzdGF0dXMsICZudW1SZXF1ZXN0UHJvY2Vzc2VkXSAoYXV0byBzLCB1aW50MzJfdCBuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBzOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtUmVxdWVzdFByb2Nlc3NlZCA9IG47CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShudW1SZXF1ZXN0UHJvY2Vzc2VkLCAxdSk7CisKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGwobUxvY2spOworICAgICAgICAgICAgICAgIHdoaWxlICgwID09IG1SZXN1bHRCdWZmZXJzLnNpemUoKSkgeworICAgICAgICAgICAgICAgICAgICBhdXRvIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoa1N0cmVhbUJ1ZmZlclRpbWVvdXRTZWMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbVJlc3VsdENvbmRpdGlvbi53YWl0X3VudGlsKGwsIHRpbWVvdXQpKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoQnVmZmVyU3RhdHVzOjpPSywgbVJlc3VsdEJ1ZmZlcnNbMF0uc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEocHJldmlld1N0cmVhbS5pZCwgbVJlc3VsdEJ1ZmZlcnNbMF0uc3RyZWFtSWQpOworCisgICAgICAgICAgICAgICAgcmVxdWVzdC5mcmFtZU51bWJlcisrOworICAgICAgICAgICAgICAgIC8vRW1wdHkgc2V0dGluZ3Mgc2hvdWxkIGJlIHN1cHBvcnRlZCBhZnRlciB0aGUgZmlyc3QgY2FsbAorICAgICAgICAgICAgICAgIC8vZm9yIHJlcGVhdGluZyByZXF1ZXN0cy4KKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldHRpbmdzLnNldFRvRXh0ZXJuYWwobnVsbHB0ciwgMCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgbVJlc3VsdEJ1ZmZlcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtUmVzdWx0RnJhbWVOdW1iZXIrKzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0dXJuU3RhdHVzID0gc2Vzc2lvbi0+cHJvY2Vzc0NhcHR1cmVSZXF1ZXN0KAorICAgICAgICAgICAgICAgICAgICB7cmVxdWVzdH0sCisgICAgICAgICAgICAgICAgICAgIGNhY2hlc1RvUmVtb3ZlLAorICAgICAgICAgICAgICAgICAgICBbJnN0YXR1cywgJm51bVJlcXVlc3RQcm9jZXNzZWRdIChhdXRvIHMsIHVpbnQzMl90IG4pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IHM7CisgICAgICAgICAgICAgICAgICAgICAgICBudW1SZXF1ZXN0UHJvY2Vzc2VkID0gbjsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKG51bVJlcXVlc3RQcm9jZXNzZWQsIDF1KTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgd2hpbGUgKDAgPT0gbVJlc3VsdEJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyhrU3RyZWFtQnVmZmVyVGltZW91dFNlYyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShzdGQ6OmN2X3N0YXR1czo6dGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtUmVzdWx0Q29uZGl0aW9uLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoQnVmZmVyU3RhdHVzOjpPSywgbVJlc3VsdEJ1ZmZlcnNbMF0uc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEocHJldmlld1N0cmVhbS5pZCwgbVJlc3VsdEJ1ZmZlcnNbMF0uc3RyZWFtSWQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIFRlc3Qgd2hldGhlciBhbiBpbmNvcnJlY3QgY2FwdHVyZSByZXF1ZXN0IHdpdGggbWlzc2luZyBzZXR0aW5ncyB3aWxsCisvLyBiZSByZXBvcnRlZCBjb3JyZWN0bHkuCitURVNUX0YoQ2FtZXJhSGlkbFRlc3QsIHByb2Nlc3NDYXB0dXJlUmVxdWVzdEludmFsaWRTaW5nbGVQcmV2aWV3KSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+IG91dHB1dFByZXZpZXdTdHJlYW1zOworICAgIEF2YWlsYWJsZVN0cmVhbSBwcmV2aWV3VGhyZXNob2xkID0ge2tNYXhQcmV2aWV3V2lkdGgsIGtNYXhQcmV2aWV3SGVpZ2h0LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQpfTsKKyAgICB1aW50NjRfdCBidWZmZXJJZCA9IDE7CisgICAgdWludDMyX3QgZnJhbWVOdW1iZXIgPSAxOworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPHVpbnQ4X3Q+IHNldHRpbmdzOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIFN0cmVhbSBwcmV2aWV3U3RyZWFtOworICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxTdHJlYW1Db25maWc7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIGNvbmZpZ3VyZVByZXZpZXdTdHJlYW0obmFtZSwgZW52LCAmcHJldmlld1RocmVzaG9sZCwKKyAgICAgICAgICAgICAgICAgICAgJnNlc3Npb24gLypvdXQqLywgJnByZXZpZXdTdHJlYW0gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKTsKKworICAgICAgICAgICAgc3A8R3JhcGhpY0J1ZmZlcj4gZ2IgPSBuZXcgR3JhcGhpY0J1ZmZlcigKKyAgICAgICAgICAgICAgICBwcmV2aWV3U3RyZWFtLndpZHRoLCBwcmV2aWV3U3RyZWFtLmhlaWdodCwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5vdmVycmlkZUZvcm1hdCksCisgICAgICAgICAgICAgICAgMSwgYW5kcm9pZF9jb252ZXJ0R3JhbGxvYzFUbzBVc2FnZSgKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0ucHJvZHVjZXJVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgaGFsU3RyZWFtQ29uZmlnLnN0cmVhbXNbMF0uY29uc3VtZXJVc2FnZSkpOworCisgICAgICAgICAgICBTdHJlYW1CdWZmZXIgb3V0cHV0QnVmZmVyID0ge2hhbFN0cmVhbUNvbmZpZy5zdHJlYW1zWzBdLmlkLAorICAgICAgICAgICAgICAgICAgICBidWZmZXJJZCwgaGlkbF9oYW5kbGUoZ2ItPmdldE5hdGl2ZUJ1ZmZlcigpLT5oYW5kbGUpLAorICAgICAgICAgICAgICAgICAgICBCdWZmZXJTdGF0dXM6Ok9LLCBudWxscHRyLCBudWxscHRyfTsKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbUJ1ZmZlcj4gb3V0cHV0QnVmZmVycyA9IHsKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0QnVmZmVyfTsKKyAgICAgICAgICAgIFN0cmVhbUJ1ZmZlciBlbXB0eUlucHV0QnVmZmVyID0gey0xLCAwLCBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICBCdWZmZXJTdGF0dXM6OkVSUk9SLCBudWxscHRyLCBudWxscHRyfTsKKyAgICAgICAgICAgIENhcHR1cmVSZXF1ZXN0IHJlcXVlc3QgPSB7ZnJhbWVOdW1iZXIsIDAgLyogZm1xU2V0dGluZ3NTaXplICovLCBzZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgZW1wdHlJbnB1dEJ1ZmZlciwgb3V0cHV0QnVmZmVyc307CisKKyAgICAgICAgICAgIC8vU2V0dGluZ3Mgd2VyZSBub3QgY29ycmVjdGx5IGluaXRpYWxpemVkLCB3ZSBzaG91bGQgZmFpbCBoZXJlCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gU3RhdHVzOjpPSzsKKyAgICAgICAgICAgIHVpbnQzMl90IG51bVJlcXVlc3RQcm9jZXNzZWQgPSAwOworICAgICAgICAgICAgaGlkbF92ZWM8QnVmZmVyQ2FjaGU+IGNhY2hlc1RvUmVtb3ZlOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9IHNlc3Npb24tPnByb2Nlc3NDYXB0dXJlUmVxdWVzdCgKKyAgICAgICAgICAgICAgICAgICAge3JlcXVlc3R9LAorICAgICAgICAgICAgICAgICAgICBjYWNoZXNUb1JlbW92ZSwKKyAgICAgICAgICAgICAgICAgICAgWyZzdGF0dXMsICZudW1SZXF1ZXN0UHJvY2Vzc2VkXSAoYXV0byBzLCB1aW50MzJfdCBuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBzOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtUmVxdWVzdFByb2Nlc3NlZCA9IG47CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpJTlRFUk5BTF9FUlJPUiwgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShudW1SZXF1ZXN0UHJvY2Vzc2VkLCAwdSk7CisKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNsb3NlKCk7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gQ2hlY2sgd2hldGhlciBhbiBpbnZhbGlkIGNhcHR1cmUgcmVxdWVzdCB3aXRoIG1pc3Npbmcgb3V0cHV0IGJ1ZmZlcnMKKy8vIHdpbGwgYmUgcmVwb3J0ZWQgY29ycmVjdGx5LgorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBwcm9jZXNzQ2FwdHVyZVJlcXVlc3RJbnZhbGlkQnVmZmVyKSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+IG91dHB1dEJsb2JTdHJlYW1zOworICAgIEF2YWlsYWJsZVN0cmVhbSBwcmV2aWV3VGhyZXNob2xkID0ge2tNYXhQcmV2aWV3V2lkdGgsIGtNYXhQcmV2aWV3SGVpZ2h0LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQpfTsKKyAgICB1aW50MzJfdCBmcmFtZU51bWJlciA9IDE7CisgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8dWludDhfdD4gc2V0dGluZ3M7CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgU3RyZWFtIHByZXZpZXdTdHJlYW07CisgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uIGhhbFN0cmVhbUNvbmZpZzsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgY29uZmlndXJlUHJldmlld1N0cmVhbShuYW1lLCBlbnYsICZwcmV2aWV3VGhyZXNob2xkLAorICAgICAgICAgICAgICAgICAgICAmc2Vzc2lvbiAvKm91dCovLCAmcHJldmlld1N0cmVhbSAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmaGFsU3RyZWFtQ29uZmlnIC8qb3V0Ki8pOworCisgICAgICAgICAgICBSZXF1ZXN0VGVtcGxhdGUgcmVxVGVtcGxhdGUgPSBSZXF1ZXN0VGVtcGxhdGU6OlBSRVZJRVc7CisgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0OworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y29uc3RydWN0RGVmYXVsdFJlcXVlc3RTZXR0aW5ncyhyZXFUZW1wbGF0ZSwKKyAgICAgICAgICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIHJlcSkgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3MgPSByZXE7IH0pOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbUJ1ZmZlcj4gZW1wdHlPdXRwdXRCdWZmZXJzOworICAgICAgICAgICAgU3RyZWFtQnVmZmVyIGVtcHR5SW5wdXRCdWZmZXIgPSB7LTEsIDAsIG51bGxwdHIsCisgICAgICAgICAgICAgICAgICAgIEJ1ZmZlclN0YXR1czo6RVJST1IsIG51bGxwdHIsIG51bGxwdHJ9OworICAgICAgICAgICAgQ2FwdHVyZVJlcXVlc3QgcmVxdWVzdCA9IHtmcmFtZU51bWJlciwgMC8qIGZtcVNldHRpbmdzU2l6ZSAqLywgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgIGVtcHR5SW5wdXRCdWZmZXIsIGVtcHR5T3V0cHV0QnVmZmVyc307CisKKyAgICAgICAgICAgIC8vT3V0cHV0IGJ1ZmZlcnMgYXJlIG1pc3NpbmcsIHdlIHNob3VsZCBmYWlsIGhlcmUKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBTdGF0dXM6Ok9LOworICAgICAgICAgICAgdWludDMyX3QgbnVtUmVxdWVzdFByb2Nlc3NlZCA9IDA7CisgICAgICAgICAgICBoaWRsX3ZlYzxCdWZmZXJDYWNoZT4gY2FjaGVzVG9SZW1vdmU7CisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5wcm9jZXNzQ2FwdHVyZVJlcXVlc3QoCisgICAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0fSwKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVzVG9SZW1vdmUsCisgICAgICAgICAgICAgICAgICAgIFsmc3RhdHVzLCAmbnVtUmVxdWVzdFByb2Nlc3NlZF0gKGF1dG8gcywgdWludDMyX3QgbikgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gczsKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bVJlcXVlc3RQcm9jZXNzZWQgPSBuOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6SU5URVJOQUxfRVJST1IsIHN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobnVtUmVxdWVzdFByb2Nlc3NlZCwgMHUpOworCisgICAgICAgICAgICByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIEdlbmVyYXRlLCB0cmlnZ2VyIGFuZCBmbHVzaCBhIHByZXZpZXcgcmVxdWVzdAorVEVTVF9GKENhbWVyYUhpZGxUZXN0LCBmbHVzaFByZXZpZXdSZXF1ZXN0KSB7CisgICAgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYgPSBDYW1lcmFIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCk7CisgICAgaGlkbF92ZWM8aGlkbF9zdHJpbmc+IGNhbWVyYURldmljZU5hbWVzID0gZ2V0Q2FtZXJhRGV2aWNlTmFtZXMoKTsKKyAgICBzdGQ6OnZlY3RvcjxBdmFpbGFibGVTdHJlYW0+IG91dHB1dFByZXZpZXdTdHJlYW1zOworICAgIEF2YWlsYWJsZVN0cmVhbSBwcmV2aWV3VGhyZXNob2xkID0ge2tNYXhQcmV2aWV3V2lkdGgsIGtNYXhQcmV2aWV3SGVpZ2h0LAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQpfTsKKyAgICB1aW50NjRfdCBidWZmZXJJZCA9IDE7CisgICAgdWludDMyX3QgZnJhbWVOdW1iZXIgPSAxOworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPHVpbnQ4X3Q+IHNldHRpbmdzOworCisgICAgZm9yIChjb25zdCBhdXRvJiBuYW1lIDogY2FtZXJhRGV2aWNlTmFtZXMpIHsKKyAgICAgICAgaWYgKGdldENhbWVyYURldmljZVZlcnNpb24obmFtZSkgPT0gQ0FNRVJBX0RFVklDRV9BUElfVkVSU0lPTl8zXzIpIHsKKyAgICAgICAgICAgIFN0cmVhbSBwcmV2aWV3U3RyZWFtOworICAgICAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiBoYWxTdHJlYW1Db25maWc7CisgICAgICAgICAgICBzcDxJQ2FtZXJhRGV2aWNlU2Vzc2lvbj4gc2Vzc2lvbjsKKyAgICAgICAgICAgIGNvbmZpZ3VyZVByZXZpZXdTdHJlYW0obmFtZSwgZW52LCAmcHJldmlld1RocmVzaG9sZCwKKyAgICAgICAgICAgICAgICAgICAgJnNlc3Npb24gLypvdXQqLywgJnByZXZpZXdTdHJlYW0gLypvdXQqLywKKyAgICAgICAgICAgICAgICAgICAgJmhhbFN0cmVhbUNvbmZpZyAvKm91dCovKTsKKworICAgICAgICAgICAgUmVxdWVzdFRlbXBsYXRlIHJlcVRlbXBsYXRlID0gUmVxdWVzdFRlbXBsYXRlOjpQUkVWSUVXOworICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPmNvbnN0cnVjdERlZmF1bHRSZXF1ZXN0U2V0dGluZ3MocmVxVGVtcGxhdGUsCisgICAgICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiByZXEpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIHNldHRpbmdzID0gcmVxOyB9KTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgICAgICAgICBzcDxHcmFwaGljQnVmZmVyPiBnYiA9IG5ldyBHcmFwaGljQnVmZmVyKAorICAgICAgICAgICAgICAgIHByZXZpZXdTdHJlYW0ud2lkdGgsIHByZXZpZXdTdHJlYW0uaGVpZ2h0LAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KGhhbFN0cmVhbUNvbmZpZy5zdHJlYW1zWzBdLm92ZXJyaWRlRm9ybWF0KSwKKyAgICAgICAgICAgICAgICAxLCBhbmRyb2lkX2NvbnZlcnRHcmFsbG9jMVRvMFVzYWdlKAorICAgICAgICAgICAgICAgICAgICAgICBoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5wcm9kdWNlclVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICBoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5jb25zdW1lclVzYWdlKSk7CisgICAgICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgZ2IuZ2V0KCkpOworICAgICAgICAgICAgU3RyZWFtQnVmZmVyIG91dHB1dEJ1ZmZlciA9IHtoYWxTdHJlYW1Db25maWcuc3RyZWFtc1swXS5pZCwKKyAgICAgICAgICAgICAgICAgICAgYnVmZmVySWQsIGhpZGxfaGFuZGxlKGdiLT5nZXROYXRpdmVCdWZmZXIoKS0+aGFuZGxlKSwKKyAgICAgICAgICAgICAgICAgICAgQnVmZmVyU3RhdHVzOjpPSywgbnVsbHB0ciwgbnVsbHB0cn07CisgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxTdHJlYW1CdWZmZXI+IG91dHB1dEJ1ZmZlcnMgPSB7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dEJ1ZmZlcn07CisgICAgICAgICAgICBjb25zdCBTdHJlYW1CdWZmZXIgZW1wdHlJbnB1dEJ1ZmZlciA9IHstMSwgMCwgbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgQnVmZmVyU3RhdHVzOjpFUlJPUiwgbnVsbHB0ciwgbnVsbHB0cn07CisgICAgICAgICAgICBDYXB0dXJlUmVxdWVzdCByZXF1ZXN0ID0ge2ZyYW1lTnVtYmVyLCAwIC8qIGZtcVNldHRpbmdzU2l6ZSAqLywgc2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgIGVtcHR5SW5wdXRCdWZmZXIsIG91dHB1dEJ1ZmZlcnN9OworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICBtUmVzdWx0QnVmZmVycy5jbGVhcigpOworICAgICAgICAgICAgICAgIG1FcnJvcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtUmVzdWx0RnJhbWVOdW1iZXIgPSBmcmFtZU51bWJlcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IFN0YXR1czo6SU5URVJOQUxfRVJST1I7CisgICAgICAgICAgICB1aW50MzJfdCBudW1SZXF1ZXN0UHJvY2Vzc2VkID0gMDsKKyAgICAgICAgICAgIGhpZGxfdmVjPEJ1ZmZlckNhY2hlPiBjYWNoZXNUb1JlbW92ZTsKKyAgICAgICAgICAgIHJldCA9IHNlc3Npb24tPnByb2Nlc3NDYXB0dXJlUmVxdWVzdCgKKyAgICAgICAgICAgICAgICAgICAge3JlcXVlc3R9LAorICAgICAgICAgICAgICAgICAgICBjYWNoZXNUb1JlbW92ZSwKKyAgICAgICAgICAgICAgICAgICAgWyZzdGF0dXMsICZudW1SZXF1ZXN0UHJvY2Vzc2VkXSAoYXV0byBzLCB1aW50MzJfdCBuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBzOworICAgICAgICAgICAgICAgICAgICAgICAgbnVtUmVxdWVzdFByb2Nlc3NlZCA9IG47CisgICAgICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX0VRKG51bVJlcXVlc3RQcm9jZXNzZWQsIDF1KTsKKyAgICAgICAgICAgIC8vRmx1c2ggYmVmb3JlIHdhaXRpbmcgZm9yIHJlcXVlc3QgdG8gY29tcGxldGUuCisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBzZXNzaW9uLT5mbHVzaCgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgd2hpbGUgKCgwID09IG1SZXN1bHRCdWZmZXJzLnNpemUoKSkgJiYgKDAgPT0gbUVycm9ycy5zaXplKCkpKSB7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyhrU3RyZWFtQnVmZmVyVGltZW91dFNlYyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShzdGQ6OmN2X3N0YXR1czo6dGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtUmVzdWx0Q29uZGl0aW9uLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmIChtRXJyb3JzLmVtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEJ1ZmZlclN0YXR1czo6T0ssIG1SZXN1bHRCdWZmZXJzWzBdLnN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShwcmV2aWV3U3RyZWFtLmlkLCBtUmVzdWx0QnVmZmVyc1swXS5zdHJlYW1JZCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChhdXRvICZlcnJvciA6IG1FcnJvcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZXJyb3IuZXJyb3JDb2RlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFcnJvckNvZGU6OkVSUk9SX1JFUVVFU1Q6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFcnJvckNvZGU6OkVSUk9SX1JFU1VMVDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9FeHBlY3RlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVycm9yQ29kZTo6RVJST1JfQlVGRkVSOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL0V4cGVjdGVkIGFzIHdlbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKGZyYW1lTnVtYmVyLCBlcnJvci5mcmFtZU51bWJlcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9FUShwcmV2aWV3U3RyZWFtLmlkLCBlcnJvci5lcnJvclN0cmVhbUlkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFcnJvckNvZGU6OkVSUk9SX0RFVklDRToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUlMKCkgPDwiVW5leHBlY3RlZCBlcnJvcjoiIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoZXJyb3IuZXJyb3JDb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmV0ID0gc2Vzc2lvbi0+Y2xvc2UoKTsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgICB9CisgICAgfQorfQorCisvLyBWZXJpZnkgdGhhdCBjYW1lcmEgZmx1c2hlcyBjb3JyZWN0bHkgd2l0aG91dCBhbnkgcGVuZGluZyByZXF1ZXN0cy4KK1RFU1RfRihDYW1lcmFIaWRsVGVzdCwgZmx1c2hFbXB0eSkgeworICAgIENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52ID0gQ2FtZXJhSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpOworICAgIGhpZGxfdmVjPGhpZGxfc3RyaW5nPiBjYW1lcmFEZXZpY2VOYW1lcyA9IGdldENhbWVyYURldmljZU5hbWVzKCk7CisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRQcmV2aWV3U3RyZWFtczsKKyAgICBBdmFpbGFibGVTdHJlYW0gcHJldmlld1RocmVzaG9sZCA9IHtrTWF4UHJldmlld1dpZHRoLCBrTWF4UHJldmlld0hlaWdodCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KFBpeGVsRm9ybWF0OjpJTVBMRU1FTlRBVElPTl9ERUZJTkVEKX07CisKKyAgICBmb3IgKGNvbnN0IGF1dG8mIG5hbWUgOiBjYW1lcmFEZXZpY2VOYW1lcykgeworICAgICAgICBpZiAoZ2V0Q2FtZXJhRGV2aWNlVmVyc2lvbihuYW1lKSA9PSBDQU1FUkFfREVWSUNFX0FQSV9WRVJTSU9OXzNfMikgeworICAgICAgICAgICAgU3RyZWFtIHByZXZpZXdTdHJlYW07CisgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uIGhhbFN0cmVhbUNvbmZpZzsKKyAgICAgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiBzZXNzaW9uOworICAgICAgICAgICAgY29uZmlndXJlUHJldmlld1N0cmVhbShuYW1lLCBlbnYsICZwcmV2aWV3VGhyZXNob2xkLAorICAgICAgICAgICAgICAgICAgICAmc2Vzc2lvbiAvKm91dCovLCAmcHJldmlld1N0cmVhbSAvKm91dCovLAorICAgICAgICAgICAgICAgICAgICAmaGFsU3RyZWFtQ29uZmlnIC8qb3V0Ki8pOworCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsKG1Mb2NrKTsKKyAgICAgICAgICAgICAgICBtUmVzdWx0QnVmZmVycy5jbGVhcigpOworICAgICAgICAgICAgICAgIG1FcnJvcnMuY2xlYXIoKTsKKyAgICAgICAgICAgICAgICBtUmVzdWx0RnJhbWVOdW1iZXIgPSAwOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBzZXNzaW9uLT5mbHVzaCgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKKworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbChtTG9jayk7CisgICAgICAgICAgICAgICAgYXV0byB0aW1lb3V0ID0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6bm93KCkgKworICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyhrRW1wdHlGbHVzaFRpbWVvdXRNU2VjKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICBtUmVzdWx0Q29uZGl0aW9uLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKG1FcnJvcnMuZW1wdHkoKSk7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUobVJlc3VsdEJ1ZmZlcnMuZW1wdHkoKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFJldHVybjx2b2lkPiByZXQgPSBzZXNzaW9uLT5jbG9zZSgpOworICAgICAgICAgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIFJldHJpZXZlIGFsbCB2YWxpZCBvdXRwdXQgc3RyZWFtIHJlc29sdXRpb25zIGZyb20gdGhlIGNhbWVyYQorLy8gc3RhdGljIGNoYXJhY3RlcmlzdGljcy4KK1N0YXR1cyBDYW1lcmFIaWRsVGVzdDo6Z2V0QXZhaWxhYmxlT3V0cHV0U3RyZWFtcyhjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YSwKKyAgICAgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiAmb3V0cHV0U3RyZWFtcywKKyAgICAgICAgY29uc3QgQXZhaWxhYmxlU3RyZWFtICp0aHJlc2hvbGQpIHsKKyAgICBpZiAobnVsbHB0ciA9PSBzdGF0aWNNZXRhKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5IGVudHJ5OworICAgIGludCByYyA9IGZpbmRfY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5KHN0YXRpY01ldGEsCisgICAgICAgICAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfU1RSRUFNX0NPTkZJR1VSQVRJT05TLCAmZW50cnkpOworICAgIGlmICgoMCAhPSByYykgfHwgKDAgIT0gKGVudHJ5LmNvdW50ICUgNCkpKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5jb3VudDsgaSs9NCkgeworICAgICAgICBpZiAoQU5EUk9JRF9TQ0FMRVJfQVZBSUxBQkxFX1NUUkVBTV9DT05GSUdVUkFUSU9OU19PVVRQVVQgPT0KKyAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLmkzMltpICsgM10pIHsKKyAgICAgICAgICAgIGlmKG51bGxwdHIgPT0gdGhyZXNob2xkKSB7CisgICAgICAgICAgICAgICAgQXZhaWxhYmxlU3RyZWFtIHMgPSB7ZW50cnkuZGF0YS5pMzJbaSsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LmRhdGEuaTMyW2krMl0sIGVudHJ5LmRhdGEuaTMyW2ldfTsKKyAgICAgICAgICAgICAgICBvdXRwdXRTdHJlYW1zLnB1c2hfYmFjayhzKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKCh0aHJlc2hvbGQtPmZvcm1hdCA9PSBlbnRyeS5kYXRhLmkzMltpXSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICh0aHJlc2hvbGQtPndpZHRoID49IGVudHJ5LmRhdGEuaTMyW2krMV0pICYmCisgICAgICAgICAgICAgICAgICAgICAgICAodGhyZXNob2xkLT5oZWlnaHQgPj0gZW50cnkuZGF0YS5pMzJbaSsyXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgQXZhaWxhYmxlU3RyZWFtIHMgPSB7ZW50cnkuZGF0YS5pMzJbaSsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLmkzMltpKzJdLCB0aHJlc2hvbGQtPmZvcm1hdH07CisgICAgICAgICAgICAgICAgICAgIG91dHB1dFN0cmVhbXMucHVzaF9iYWNrKHMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgfQorCisgICAgcmV0dXJuIFN0YXR1czo6T0s7Cit9CisKKy8vIENoZWNrIGlmIGNvbnN0cmFpbmVkIG1vZGUgaXMgc3VwcG9ydGVkIGJ5IHVzaW5nIHRoZSBzdGF0aWMKKy8vIGNhbWVyYSBjaGFyYWN0ZXJpc3RpY3MuCitTdGF0dXMgQ2FtZXJhSGlkbFRlc3Q6OmlzQ29uc3RyYWluZWRNb2RlQXZhaWxhYmxlKGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhKSB7CisgICAgU3RhdHVzIHJldCA9IFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7CisgICAgaWYgKG51bGxwdHIgPT0gc3RhdGljTWV0YSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSBlbnRyeTsKKyAgICBpbnQgcmMgPSBmaW5kX2NhbWVyYV9tZXRhZGF0YV9yb19lbnRyeShzdGF0aWNNZXRhLAorICAgICAgICAgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVMsICZlbnRyeSk7CisgICAgaWYgKDAgIT0gcmMpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVudHJ5LmNvdW50OyBpKyspIHsKKyAgICAgICAgaWYgKEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTX0NPTlNUUkFJTkVEX0hJR0hfU1BFRURfVklERU8gPT0KKyAgICAgICAgICAgICAgICBlbnRyeS5kYXRhLnU4W2ldKSB7CisgICAgICAgICAgICByZXQgPSBTdGF0dXM6Ok9LOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCisvLyBQaWNrIHRoZSBsYXJnZXN0IHN1cHBvcnRlZCBIRlIgbW9kZSBmcm9tIHRoZSBzdGF0aWMgY2FtZXJhCisvLyBjaGFyYWN0ZXJpc3RpY3MuCitTdGF0dXMgQ2FtZXJhSGlkbFRlc3Q6OnBpY2tDb25zdHJhaW5lZE1vZGVTaXplKGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhLAorICAgICAgICBBdmFpbGFibGVTdHJlYW0gJmhmclN0cmVhbSkgeworICAgIGlmIChudWxscHRyID09IHN0YXRpY01ldGEpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBjYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkgZW50cnk7CisgICAgaW50IHJjID0gZmluZF9jYW1lcmFfbWV0YWRhdGFfcm9fZW50cnkoc3RhdGljTWV0YSwKKyAgICAgICAgICAgIEFORFJPSURfQ09OVFJPTF9BVkFJTEFCTEVfSElHSF9TUEVFRF9WSURFT19DT05GSUdVUkFUSU9OUywgJmVudHJ5KTsKKyAgICBpZiAoMCAhPSByYykgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpNRVRIT0RfTk9UX1NVUFBPUlRFRDsKKyAgICB9IGVsc2UgaWYgKDAgIT0gKGVudHJ5LmNvdW50ICUgNSkpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBoZnJTdHJlYW0gPSB7MCwgMCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PihQaXhlbEZvcm1hdDo6SU1QTEVNRU5UQVRJT05fREVGSU5FRCl9OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZW50cnkuY291bnQ7IGkrPTUpIHsKKyAgICAgICAgaW50MzJfdCB3ID0gZW50cnkuZGF0YS5pMzJbaV07CisgICAgICAgIGludDMyX3QgaCA9IGVudHJ5LmRhdGEuaTMyW2krMV07CisgICAgICAgIGlmICgoaGZyU3RyZWFtLndpZHRoICogaGZyU3RyZWFtLmhlaWdodCkgPCAodyAqaCkpIHsKKyAgICAgICAgICAgIGhmclN0cmVhbS53aWR0aCA9IHc7CisgICAgICAgICAgICBoZnJTdHJlYW0uaGVpZ2h0ID0gaDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCisvLyBDaGVjayB3aGV0aGVyIFpTTCBpcyBhdmFpbGFibGUgdXNpbmcgdGhlIHN0YXRpYyBjYW1lcmEKKy8vIGNoYXJhY3RlcmlzdGljcy4KK1N0YXR1cyBDYW1lcmFIaWRsVGVzdDo6aXNaU0xNb2RlQXZhaWxhYmxlKGNhbWVyYV9tZXRhZGF0YV90ICpzdGF0aWNNZXRhKSB7CisgICAgU3RhdHVzIHJldCA9IFN0YXR1czo6TUVUSE9EX05PVF9TVVBQT1JURUQ7CisgICAgaWYgKG51bGxwdHIgPT0gc3RhdGljTWV0YSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpJTExFR0FMX0FSR1VNRU5UOworICAgIH0KKworICAgIGNhbWVyYV9tZXRhZGF0YV9yb19lbnRyeSBlbnRyeTsKKyAgICBpbnQgcmMgPSBmaW5kX2NhbWVyYV9tZXRhZGF0YV9yb19lbnRyeShzdGF0aWNNZXRhLAorICAgICAgICAgICAgQU5EUk9JRF9SRVFVRVNUX0FWQUlMQUJMRV9DQVBBQklMSVRJRVMsICZlbnRyeSk7CisgICAgaWYgKDAgIT0gcmMpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGVudHJ5LmNvdW50OyBpKyspIHsKKyAgICAgICAgaWYgKChBTkRST0lEX1JFUVVFU1RfQVZBSUxBQkxFX0NBUEFCSUxJVElFU19QUklWQVRFX1JFUFJPQ0VTU0lORyA9PQorICAgICAgICAgICAgICAgIGVudHJ5LmRhdGEudThbaV0pIHx8CisgICAgICAgICAgICAgICAgKEFORFJPSURfUkVRVUVTVF9BVkFJTEFCTEVfQ0FQQUJJTElUSUVTX1lVVl9SRVBST0NFU1NJTkcgPT0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LmRhdGEudThbaV0pICl7CisgICAgICAgICAgICByZXQgPSBTdGF0dXM6Ok9LOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworfQorCisvLyBSZXRyaWV2ZSB0aGUgcmVwcm9jZXNzIGlucHV0LW91dHB1dCBmb3JtYXQgbWFwIGZyb20gdGhlIHN0YXRpYworLy8gY2FtZXJhIGNoYXJhY3RlcmlzdGljcy4KK1N0YXR1cyBDYW1lcmFIaWRsVGVzdDo6Z2V0WlNMSW5wdXRPdXRwdXRNYXAoY2FtZXJhX21ldGFkYXRhX3QgKnN0YXRpY01ldGEsCisgICAgICAgIHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVpTTElucHV0T3V0cHV0PiAmaW5wdXRPdXRwdXRNYXApIHsKKyAgICBpZiAobnVsbHB0ciA9PSBzdGF0aWNNZXRhKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5IGVudHJ5OworICAgIGludCByYyA9IGZpbmRfY2FtZXJhX21ldGFkYXRhX3JvX2VudHJ5KHN0YXRpY01ldGEsCisgICAgICAgICAgICBBTkRST0lEX1NDQUxFUl9BVkFJTEFCTEVfSU5QVVRfT1VUUFVUX0ZPUk1BVFNfTUFQLCAmZW50cnkpOworICAgIGlmICgoMCAhPSByYykgfHwgKDAgPj0gZW50cnkuY291bnQpKSB7CisgICAgICAgIHJldHVybiBTdGF0dXM6OklMTEVHQUxfQVJHVU1FTlQ7CisgICAgfQorCisgICAgY29uc3QgaW50MzJfdCogY29udGVudHMgPSAmZW50cnkuZGF0YS5pMzJbMF07CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBlbnRyeS5jb3VudDsgKSB7CisgICAgICAgIGludDMyX3QgaW5wdXRGb3JtYXQgPSBjb250ZW50c1tpKytdOworICAgICAgICBpbnQzMl90IGxlbmd0aCA9IGNvbnRlbnRzW2krK107CisgICAgICAgIGZvciAoaW50MzJfdCBqID0gMDsgaiA8IGxlbmd0aDsgaisrKSB7CisgICAgICAgICAgICBpbnQzMl90IG91dHB1dEZvcm1hdCA9IGNvbnRlbnRzW2kral07CisgICAgICAgICAgICBBdmFpbGFibGVaU0xJbnB1dE91dHB1dCB6c2xFbnRyeSA9IHtpbnB1dEZvcm1hdCwgb3V0cHV0Rm9ybWF0fTsKKyAgICAgICAgICAgIGlucHV0T3V0cHV0TWFwLnB1c2hfYmFjayh6c2xFbnRyeSk7CisgICAgICAgIH0KKyAgICAgICAgaSArPSBsZW5ndGg7CisgICAgfQorCisgICAgcmV0dXJuIFN0YXR1czo6T0s7Cit9CisKKy8vIFNlYXJjaCBmb3IgdGhlIGxhcmdlc3Qgc3RyZWFtIHNpemUgZm9yIGEgZ2l2ZW4gZm9ybWF0LgorU3RhdHVzIENhbWVyYUhpZGxUZXN0OjpmaW5kTGFyZ2VzdFNpemUoCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPEF2YWlsYWJsZVN0cmVhbT4gJnN0cmVhbVNpemVzLCBpbnQzMl90IGZvcm1hdCwKKyAgICAgICAgQXZhaWxhYmxlU3RyZWFtICZyZXN1bHQpIHsKKyAgICByZXN1bHQgPSB7MCwgMCwgMH07CisgICAgZm9yIChhdXRvICZpdGVyIDogc3RyZWFtU2l6ZXMpIHsKKyAgICAgICAgaWYgKGZvcm1hdCA9PSBpdGVyLmZvcm1hdCkgeworICAgICAgICAgICAgaWYgKChyZXN1bHQud2lkdGggKiByZXN1bHQuaGVpZ2h0KSA8IChpdGVyLndpZHRoICogaXRlci5oZWlnaHQpKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gaXRlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAocmVzdWx0LmZvcm1hdCA9PSBmb3JtYXQpID8gU3RhdHVzOjpPSyA6IFN0YXR1czo6SUxMRUdBTF9BUkdVTUVOVDsKK30KKworLy8gQ2hlY2sgd2hldGhlciB0aGUgY2FtZXJhIGRldmljZSBzdXBwb3J0cyBzcGVjaWZpYyBmb2N1cyBtb2RlLgorU3RhdHVzIENhbWVyYUhpZGxUZXN0Ojppc0F1dG9Gb2N1c01vZGVBdmFpbGFibGUoCisgICAgICAgIDo6YW5kcm9pZDo6Q2FtZXJhUGFyYW1ldGVycyAmY2FtZXJhUGFyYW1zLAorICAgICAgICBjb25zdCBjaGFyICptb2RlKSB7CisgICAgOjphbmRyb2lkOjpTdHJpbmc4IGZvY3VzTW9kZXMoY2FtZXJhUGFyYW1zLmdldCgKKyAgICAgICAgICAgIENhbWVyYVBhcmFtZXRlcnM6OktFWV9TVVBQT1JURURfRk9DVVNfTU9ERVMpKTsKKyAgICBpZiAoZm9jdXNNb2Rlcy5jb250YWlucyhtb2RlKSkgeworICAgICAgICByZXR1cm4gU3RhdHVzOjpPSzsKKyAgICB9CisKKyAgICByZXR1cm4gU3RhdHVzOjpNRVRIT0RfTk9UX1NVUFBPUlRFRDsKK30KKworLy8gT3BlbiBhIGRldmljZSBzZXNzaW9uIGFuZCBjb25maWd1cmUgYSBwcmV2aWV3IHN0cmVhbS4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OmNvbmZpZ3VyZVByZXZpZXdTdHJlYW0oY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsCisgICAgICAgIGNvbnN0IENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52LAorICAgICAgICBjb25zdCBBdmFpbGFibGVTdHJlYW0gKnByZXZpZXdUaHJlc2hvbGQsCisgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiAqc2Vzc2lvbiAvKm91dCovLAorICAgICAgICBTdHJlYW0gKnByZXZpZXdTdHJlYW0gLypvdXQqLywKKyAgICAgICAgSGFsU3RyZWFtQ29uZmlndXJhdGlvbiAqaGFsU3RyZWFtQ29uZmlnIC8qb3V0Ki8pIHsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgZW52KTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgc2Vzc2lvbik7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIHByZXZpZXdTdHJlYW0pOworICAgIEFTU0VSVF9ORShudWxscHRyLCBoYWxTdHJlYW1Db25maWcpOworCisgICAgc3RkOjp2ZWN0b3I8QXZhaWxhYmxlU3RyZWFtPiBvdXRwdXRQcmV2aWV3U3RyZWFtczsKKyAgICA6OmFuZHJvaWQ6OnNwPElDYW1lcmFEZXZpY2U+IGRldmljZTNfMjsKKyAgICBBTE9HSSgiY29uZmlndXJlU3RyZWFtczogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICBSZXR1cm48dm9pZD4gcmV0OworICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCgKKyAgICAgICAgbmFtZSwKKyAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCByZXR1cm5zIHN0YXR1czolZCIsCisgICAgICAgICAgICAgICAgICAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgZGV2aWNlM18yID0gZGV2aWNlOworICAgICAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHNwPERldmljZUNiPiBjYiA9IG5ldyBEZXZpY2VDYih0aGlzKTsKKyAgICByZXQgPSBkZXZpY2UzXzItPm9wZW4oCisgICAgICAgIGNiLAorICAgICAgICBbJl0oYXV0byBzdGF0dXMsIGNvbnN0IGF1dG8mIG5ld1Nlc3Npb24pIHsKKyAgICAgICAgICAgIEFMT0dJKCJkZXZpY2U6Om9wZW4gcmV0dXJucyBzdGF0dXM6JWQiLCAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShuZXdTZXNzaW9uLCBudWxscHRyKTsKKyAgICAgICAgICAgICpzZXNzaW9uID0gbmV3U2Vzc2lvbjsKKyAgICAgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBjYW1lcmFfbWV0YWRhdGFfdCAqc3RhdGljTWV0YTsKKyAgICByZXQgPSBkZXZpY2UzXzItPmdldENhbWVyYUNoYXJhY3RlcmlzdGljcyhbJl0gKFN0YXR1cyBzLAorICAgICAgICAgICAgQ2FtZXJhTWV0YWRhdGEgbWV0YWRhdGEpIHsKKyAgICAgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHMpOworICAgICAgICBzdGF0aWNNZXRhID0gY2xvbmVfY2FtZXJhX21ldGFkYXRhKAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2FtZXJhX21ldGFkYXRhX3QqPihtZXRhZGF0YS5kYXRhKCkpKTsKKyAgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCBzdGF0aWNNZXRhKTsKKyAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIG91dHB1dFByZXZpZXdTdHJlYW1zLmNsZWFyKCk7CisgICAgYXV0byByYyA9IGdldEF2YWlsYWJsZU91dHB1dFN0cmVhbXMoc3RhdGljTWV0YSwKKyAgICAgICAgICAgIG91dHB1dFByZXZpZXdTdHJlYW1zLCBwcmV2aWV3VGhyZXNob2xkKTsKKyAgICBmcmVlX2NhbWVyYV9tZXRhZGF0YShzdGF0aWNNZXRhKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmMpOworICAgIEFTU0VSVF9GQUxTRShvdXRwdXRQcmV2aWV3U3RyZWFtcy5lbXB0eSgpKTsKKworICAgICpwcmV2aWV3U3RyZWFtID0gezAsIFN0cmVhbVR5cGU6Ok9VVFBVVCwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90PiAob3V0cHV0UHJldmlld1N0cmVhbXNbMF0ud2lkdGgpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChvdXRwdXRQcmV2aWV3U3RyZWFtc1swXS5oZWlnaHQpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+IChvdXRwdXRQcmV2aWV3U3RyZWFtc1swXS5mb3JtYXQpLAorICAgICAgICAgICAgMCwgMCwgU3RyZWFtUm90YXRpb246OlJPVEFUSU9OXzB9OworICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFN0cmVhbT4gc3RyZWFtcyA9IHsqcHJldmlld1N0cmVhbX07CisgICAgU3RyZWFtQ29uZmlndXJhdGlvbiBjb25maWcgPSB7c3RyZWFtcywKKyAgICAgICAgICAgIFN0cmVhbUNvbmZpZ3VyYXRpb25Nb2RlOjpOT1JNQUxfTU9ERX07CisgICAgcmV0ID0gKCpzZXNzaW9uKS0+Y29uZmlndXJlU3RyZWFtcyhjb25maWcsIFsmXSAoU3RhdHVzIHMsCisgICAgICAgICAgICBIYWxTdHJlYW1Db25maWd1cmF0aW9uIGhhbENvbmZpZykgeworICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcyk7CisgICAgICAgIEFTU0VSVF9FUSgxdSwgaGFsQ29uZmlnLnN0cmVhbXMuc2l6ZSgpKTsKKyAgICAgICAgKmhhbFN0cmVhbUNvbmZpZyA9IGhhbENvbmZpZzsKKyAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gT3BlbiBhIGRldmljZSBzZXNzaW9uIHdpdGggZW1wdHkgY2FsbGJhY2tzIGFuZCByZXR1cm4gc3RhdGljIG1ldGFkYXRhLgordm9pZCBDYW1lcmFIaWRsVGVzdDo6b3BlbkVtcHR5RGV2aWNlU2Vzc2lvbihjb25zdCBzdGQ6OnN0cmluZyAmbmFtZSwKKyAgICAgICAgY29uc3QgQ2FtZXJhSGlkbEVudmlyb25tZW50KiBlbnYsCisgICAgICAgIHNwPElDYW1lcmFEZXZpY2VTZXNzaW9uPiAqc2Vzc2lvbiAvKm91dCovLAorICAgICAgICBjYW1lcmFfbWV0YWRhdGFfdCAqKnN0YXRpY01ldGEgLypvdXQqLykgeworICAgIEFTU0VSVF9ORShudWxscHRyLCBlbnYpOworICAgIEFTU0VSVF9ORShudWxscHRyLCBzZXNzaW9uKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgc3RhdGljTWV0YSk7CisKKyAgICA6OmFuZHJvaWQ6OnNwPElDYW1lcmFEZXZpY2U+IGRldmljZTNfMjsKKyAgICBBTE9HSSgiY29uZmlndXJlU3RyZWFtczogVGVzdGluZyBjYW1lcmEgZGV2aWNlICVzIiwgbmFtZS5jX3N0cigpKTsKKyAgICBSZXR1cm48dm9pZD4gcmV0OworICAgIHJldCA9IGVudi0+bVByb3ZpZGVyLT5nZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCgKKyAgICAgICAgbmFtZSwKKyAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjNfeCByZXR1cm5zIHN0YXR1czolZCIsCisgICAgICAgICAgICAgICAgICAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgZGV2aWNlM18yID0gZGV2aWNlOworICAgICAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHNwPEVtcHR5RGV2aWNlQ2I+IGNiID0gbmV3IEVtcHR5RGV2aWNlQ2IoKTsKKyAgICByZXQgPSBkZXZpY2UzXzItPm9wZW4oY2IsIFsmXShhdXRvIHN0YXR1cywgY29uc3QgYXV0byYgbmV3U2Vzc2lvbikgeworICAgICAgICAgICAgQUxPR0koImRldmljZTo6b3BlbiByZXR1cm5zIHN0YXR1czolZCIsIChpbnQpc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgQVNTRVJUX05FKG5ld1Nlc3Npb24sIG51bGxwdHIpOworICAgICAgICAgICAgKnNlc3Npb24gPSBuZXdTZXNzaW9uOworICAgICAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHJldCA9IGRldmljZTNfMi0+Z2V0Q2FtZXJhQ2hhcmFjdGVyaXN0aWNzKFsmXSAoU3RhdHVzIHMsCisgICAgICAgICAgICBDYW1lcmFNZXRhZGF0YSBtZXRhZGF0YSkgeworICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcyk7CisgICAgICAgICpzdGF0aWNNZXRhID0gY2xvbmVfY2FtZXJhX21ldGFkYXRhKAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2FtZXJhX21ldGFkYXRhX3QqPihtZXRhZGF0YS5kYXRhKCkpKTsKKyAgICAgICAgQVNTRVJUX05FKG51bGxwdHIsICpzdGF0aWNNZXRhKTsKKyAgICB9KTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gT3BlbiBhIHBhcnRpY3VsYXIgY2FtZXJhIGRldmljZS4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6Om9wZW5DYW1lcmFEZXZpY2UoY29uc3Qgc3RkOjpzdHJpbmcgJm5hbWUsCisgICAgICAgIGNvbnN0IENhbWVyYUhpZGxFbnZpcm9ubWVudCogZW52LAorICAgICAgICBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gKmRldmljZTEgLypvdXQqLykgeworICAgIEFTU0VSVF9UUlVFKG51bGxwdHIgIT0gZW52KTsKKyAgICBBU1NFUlRfVFJVRShudWxscHRyICE9IGRldmljZTEpOworCisgICAgUmV0dXJuPHZvaWQ+IHJldDsKKyAgICByZXQgPSBlbnYtPm1Qcm92aWRlci0+Z2V0Q2FtZXJhRGV2aWNlSW50ZXJmYWNlX1YxX3goCisgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgWyZdKGF1dG8gc3RhdHVzLCBjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgIEFMT0dJKCJnZXRDYW1lcmFEZXZpY2VJbnRlcmZhY2VfVjFfeCByZXR1cm5zIHN0YXR1czolZCIsCisgICAgICAgICAgICAgICAgICAoaW50KXN0YXR1cyk7CisgICAgICAgICAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgIEFTU0VSVF9ORShkZXZpY2UsIG51bGxwdHIpOworICAgICAgICAgICAgKmRldmljZTEgPSBkZXZpY2U7CisgICAgICAgIH0pOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgc3A8Q2FtZXJhMURldmljZUNiPiBkZXZpY2VDYiA9IG5ldyBDYW1lcmExRGV2aWNlQ2IodGhpcyk7CisgICAgUmV0dXJuPFN0YXR1cz4gcmV0dXJuU3RhdHVzID0gKCpkZXZpY2UxKS0+b3BlbihkZXZpY2VDYik7CisgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7Cit9CisKKy8vIEluaXRpYWxpemUgYW5kIGNvbmZpZ3VyZSBhIHByZXZpZXcgd2luZG93Lgordm9pZCBDYW1lcmFIaWRsVGVzdDo6c2V0dXBQcmV2aWV3V2luZG93KAorICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSwKKyAgICAgICAgc3A8QnVmZmVySXRlbUNvbnN1bWVyPiAqYnVmZmVySXRlbUNvbnN1bWVyIC8qb3V0Ki8sCisgICAgICAgIHNwPEJ1ZmZlckl0ZW1IYW5kZXI+ICpidWZmZXJIYW5kbGVyIC8qb3V0Ki8pIHsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgZGV2aWNlLmdldCgpKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgYnVmZmVySXRlbUNvbnN1bWVyKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgYnVmZmVySGFuZGxlcik7CisKKyAgICBzcDxJR3JhcGhpY0J1ZmZlclByb2R1Y2VyPiBwcm9kdWNlcjsKKyAgICBzcDxJR3JhcGhpY0J1ZmZlckNvbnN1bWVyPiBjb25zdW1lcjsKKyAgICBCdWZmZXJRdWV1ZTo6Y3JlYXRlQnVmZmVyUXVldWUoJnByb2R1Y2VyLCAmY29uc3VtZXIpOworICAgICpidWZmZXJJdGVtQ29uc3VtZXIgPSBuZXcgQnVmZmVySXRlbUNvbnN1bWVyKGNvbnN1bWVyLAorICAgICAgICAgICAgR3JhcGhpY0J1ZmZlcjo6VVNBR0VfSFdfVEVYVFVSRSk7IC8vVXNlIEdMQ29uc3VtZXIgZGVmYXVsdCB1c2FnZSBmbGFncworICAgIEFTU0VSVF9ORShudWxscHRyLCAoKmJ1ZmZlckl0ZW1Db25zdW1lcikuZ2V0KCkpOworICAgICpidWZmZXJIYW5kbGVyID0gbmV3IEJ1ZmZlckl0ZW1IYW5kZXIoKmJ1ZmZlckl0ZW1Db25zdW1lcik7CisgICAgQVNTRVJUX05FKG51bGxwdHIsICgqYnVmZmVySGFuZGxlcikuZ2V0KCkpOworICAgICgqYnVmZmVySXRlbUNvbnN1bWVyKS0+c2V0RnJhbWVBdmFpbGFibGVMaXN0ZW5lcigqYnVmZmVySGFuZGxlcik7CisgICAgc3A8U3VyZmFjZT4gc3VyZmFjZSA9IG5ldyBTdXJmYWNlKHByb2R1Y2VyKTsKKyAgICBzcDxQcmV2aWV3V2luZG93Q2I+IHByZXZpZXdDYiA9IG5ldyBQcmV2aWV3V2luZG93Q2Ioc3VyZmFjZSk7CisKKyAgICBhdXRvIHJjID0gZGV2aWNlLT5zZXRQcmV2aWV3V2luZG93KHByZXZpZXdDYik7CisgICAgQVNTRVJUX1RSVUUocmMuaXNPaygpKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmMpOworfQorCisvLyBTdG9wIGNhbWVyYSBwcmV2aWV3IGFuZCBjbG9zZSBjYW1lcmEuCit2b2lkIENhbWVyYUhpZGxUZXN0OjpzdG9wUHJldmlld0FuZENsb3NlKAorICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSkgeworICAgIFJldHVybjx2b2lkPiByZXQgPSBkZXZpY2UtPnN0b3BQcmV2aWV3KCk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICByZXQgPSBkZXZpY2UtPmNsb3NlKCk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIEVuYWJsZSBhIHNwZWNpZmljIGNhbWVyYSBtZXNzYWdlIHR5cGUuCit2b2lkIENhbWVyYUhpZGxUZXN0OjplbmFibGVNc2dUeXBlKHVuc2lnbmVkIGludCBtc2dUeXBlLAorICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSkgeworICAgIFJldHVybjx2b2lkPiByZXQgPSBkZXZpY2UtPmVuYWJsZU1zZ1R5cGUobXNnVHlwZSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBSZXR1cm48Ym9vbD4gcmV0dXJuQm9vbFN0YXR1cyA9IGRldmljZS0+bXNnVHlwZUVuYWJsZWQobXNnVHlwZSk7CisgICAgQVNTRVJUX1RSVUUocmV0dXJuQm9vbFN0YXR1cy5pc09rKCkpOworICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMpOworfQorCisvLyBEaXNhYmxlIGEgc3BlY2lmaWMgY2FtZXJhIG1lc3NhZ2UgdHlwZS4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OmRpc2FibGVNc2dUeXBlKHVuc2lnbmVkIGludCBtc2dUeXBlLAorICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSkgeworICAgIFJldHVybjx2b2lkPiByZXQgPSBkZXZpY2UtPmRpc2FibGVNc2dUeXBlKG1zZ1R5cGUpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgUmV0dXJuPGJvb2w+IHJldHVybkJvb2xTdGF0dXMgPSBkZXZpY2UtPm1zZ1R5cGVFbmFibGVkKG1zZ1R5cGUpOworICAgIEFTU0VSVF9UUlVFKHJldHVybkJvb2xTdGF0dXMuaXNPaygpKTsKKyAgICBBU1NFUlRfRkFMU0UocmV0dXJuQm9vbFN0YXR1cyk7Cit9CisKKy8vIFdhaXQgdW50aWwgYSBzcGVjaWZpYyBmcmFtZSBub3RpZmljYXRpb24gYXJyaXZlcy4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OndhaXRGb3JGcmFtZUxvY2tlZChEYXRhQ2FsbGJhY2tNc2cgbXNnRnJhbWUsCisgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gJmwpIHsKKyAgICB3aGlsZSAobXNnRnJhbWUgIT0gbURhdGFNZXNzYWdlVHlwZVJlY2VpdmVkKSB7CisgICAgICAgIGF1dG8gdGltZW91dCA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpICsKKyAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyhrU3RyZWFtQnVmZmVyVGltZW91dFNlYyk7CisgICAgICAgIEFTU0VSVF9ORShzdGQ6OmN2X3N0YXR1czo6dGltZW91dCwKKyAgICAgICAgICAgICAgICBtUmVzdWx0Q29uZGl0aW9uLndhaXRfdW50aWwobCwgdGltZW91dCkpOworICAgIH0KK30KKworLy8gU3RhcnQgcHJldmlldyBvbiBhIHBhcnRpY3VsYXIgY2FtZXJhIGRldmljZQordm9pZCBDYW1lcmFIaWRsVGVzdDo6c3RhcnRQcmV2aWV3KAorICAgICAgICBjb25zdCBzcDw6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjYW1lcmE6OmRldmljZTo6VjFfMDo6SUNhbWVyYURldmljZT4gJmRldmljZSkgeworICAgIFJldHVybjxTdGF0dXM+IHJldHVyblN0YXR1cyA9IGRldmljZS0+c3RhcnRQcmV2aWV3KCk7CisgICAgQVNTRVJUX1RSVUUocmV0dXJuU3RhdHVzLmlzT2soKSk7CisgICAgQVNTRVJUX0VRKFN0YXR1czo6T0ssIHJldHVyblN0YXR1cyk7Cit9CisKKy8vIFJldHJpZXZlIGNhbWVyYSBwYXJhbWV0ZXJzLgordm9pZCBDYW1lcmFIaWRsVGVzdDo6Z2V0UGFyYW1ldGVycygKKyAgICAgICAgY29uc3Qgc3A8OjphbmRyb2lkOjpoYXJkd2FyZTo6Y2FtZXJhOjpkZXZpY2U6OlYxXzA6OklDYW1lcmFEZXZpY2U+ICZkZXZpY2UsCisgICAgICAgIENhbWVyYVBhcmFtZXRlcnMgKmNhbWVyYVBhcmFtcyAvKm91dCovKSB7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIGNhbWVyYVBhcmFtcyk7CisKKyAgICBSZXR1cm48dm9pZD4gcmV0OworICAgIHJldCA9IGRldmljZS0+Z2V0UGFyYW1ldGVycyhbJl0gKGNvbnN0IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nJiBwYXJhbXMpIHsKKyAgICAgICAgQVNTRVJUX0ZBTFNFKHBhcmFtcy5lbXB0eSgpKTsKKyAgICAgICAgOjphbmRyb2lkOjpTdHJpbmc4IHBhcmFtU3RyaW5nKHBhcmFtcy5jX3N0cigpKTsKKyAgICAgICAgKCpjYW1lcmFQYXJhbXMpLnVuZmxhdHRlbihwYXJhbVN0cmluZyk7CisgICAgfSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIFNldCBjYW1lcmEgcGFyYW1ldGVycy4KK3ZvaWQgQ2FtZXJhSGlkbFRlc3Q6OnNldFBhcmFtZXRlcnMoCisgICAgICAgIGNvbnN0IHNwPDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNhbWVyYTo6ZGV2aWNlOjpWMV8wOjpJQ2FtZXJhRGV2aWNlPiAmZGV2aWNlLAorICAgICAgICBjb25zdCBDYW1lcmFQYXJhbWV0ZXJzICZjYW1lcmFQYXJhbXMpIHsKKyAgICBSZXR1cm48U3RhdHVzPiByZXR1cm5TdGF0dXMgPSBkZXZpY2UtPnNldFBhcmFtZXRlcnMoCisgICAgICAgICAgICBjYW1lcmFQYXJhbXMuZmxhdHRlbigpLnN0cmluZygpKTsKKyAgICBBU1NFUlRfVFJVRShyZXR1cm5TdGF0dXMuaXNPaygpKTsKKyAgICBBU1NFUlRfRVEoU3RhdHVzOjpPSywgcmV0dXJuU3RhdHVzKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KENhbWVyYUhpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKSk7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9jYW1lcmEvcHJvdmlkZXIvUkVBRE1FLm1kIGIvY2FtZXJhL3Byb3ZpZGVyL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzE4ZmIxCi0tLSAvZGV2L251bGwKKysrIGIvY2FtZXJhL3Byb3ZpZGVyL1JFQURNRS5tZApAQCAtMCwwICsxLDM3IEBACisjIyBDYW1lcmEgUHJvdmlkZXIgSEFMICMjCistLS0KKworIyMgT3ZlcnZpZXc6ICMjCisKK1RoZSBjYW1lcmEucHJvdmlkZXIgSEFMIGlzIHVzZWQgYnkgdGhlIEFuZHJvaWQgY2FtZXJhIHNlcnZpY2UgdG8gZGlzY292ZXIsCitxdWVyeSwgYW5kIG9wZW4gaW5kaXZpZHVhbCBjYW1lcmEgZGV2aWNlcy4KKworSXQgYWxzbyBhbGxvd3MgZm9yIGRpcmVjdCBjb250cm9sIG9mIHRoZSBmbGFzaCB1bml0IG9mIGNhbWVyYSBkZXZpY2VzIHRoYXQgaGF2ZQorb25lLCBmb3IgdHVybmluZyBvbi9vZmYgdG9yY2ggbW9kZS4KKworTW9yZSBjb21wbGV0ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQW5kcm9pZCBjYW1lcmEgSEFMIGFuZCBzdWJzeXN0ZW0gY2FuIGJlIGZvdW5kIGF0Citbc291cmNlLmFuZHJvaWQuY29tXShodHRwOi8vc291cmNlLmFuZHJvaWQuY29tL2RldmljZXMvY2FtZXJhL2luZGV4Lmh0bWwpLgorCisjIyBWZXJzaW9uIGhpc3Rvcnk6ICMjCisKKyMjIHR5cGVzLmhhbDogIyMKKworIyMjIEAwLjA6CisKK0NvbW1vbiBlbnVtIGFuZCBzdHJ1Y3QgZGVmaW5pdGlvbnMgZm9yIGFsbCBjYW1lcmEgSEFMIGludGVyZmFjZXMuIERvZXMgbm90CitkZWZpbmUgYW55IGludGVyZmFjZXMgb2YgaXRzIG93bi4KKworIyMgSUNhbWVyYVByb3ZpZGVyLmhhbDogIyMKKworIyMjIEAyLjQ6CisKK0ZpcnN0IEhJREwgdmVyc2lvbiBvZiB0aGUgY2FtZXJhIHByb3ZpZGVyIEhBTCwgY2xvc2VseSBtYXRjaGluZyB0aGUgZmVhdHVyZSBzZXQKK2FuZCBvcGVyYXRpb24gb2YgdGhlIHByZS1ISURMIGNhbWVyYSBIQUwgbW9kdWxlIHYyLjQuCisKKyMjIElDYW1lcmFQcm92aWRlckNhbGxiYWNrLmhhbDogIyMKKworIyMjIEAyLjQ6CisKK0ZpcnN0IEhJREwgdmVyc2lvbiBvZiB0aGUgY2FtYXJhIHByb3ZpZGVyIEhBTCBjYWxsYmFjayBpbnRlcmZhY2UsIGNsb3NlbHkKK21hdGNoaW5nIHRoZSBmZWF0dXJlIHNldCBhbmQgb3BlcmF0aW9uIG9mIHRoZSBwcmUtSElETCBjYW1lcmEgSEFMIG1vZHVsZQorY2FsbGJhY2tzIHYyLjQuCmRpZmYgLS1naXQgYS9jb21wYXRpYmlsaXR5X21hdHJpeC54bWwgYi9jb21wYXRpYmlsaXR5X21hdHJpeC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTIyNDRhOQotLS0gL2Rldi9udWxsCisrKyBiL2NvbXBhdGliaWxpdHlfbWF0cml4LnhtbApAQCAtMCwwICsxLDI2MiBAQAorPGNvbXBhdGliaWxpdHktbWF0cml4IHZlcnNpb249IjEuMCIgdHlwZT0iZnJhbWV3b3JrIj4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9ImZhbHNlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5hdWRpbzwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SURldmljZXNGYWN0b3J5PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9ImZhbHNlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3Q8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjIuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklFZmZlY3RzRmFjdG9yeTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50PC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjE8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQmlvbWV0cmljc0ZpbmdlcnByaW50PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUJsdWV0b290aEhjaTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5ib290PC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQm9vdENvbnRyb2w8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjQ8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JQ2FtZXJhUHJvdmlkZXI8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+bGVnYWN5LzA8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9ImZhbHNlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZTwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wLTE8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JU3VyZmFjZUZsaW5nZXJDb25maWdzPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklDb250ZXh0aHViPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9ImZhbHNlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS5kcm08L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklDcnlwdG9GYWN0b3J5PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklEcm1GYWN0b3J5PC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZTwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUR1bXBzdGF0ZURldmljZTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlcjwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUdhdGVrZWVwZXI8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuZ25zczwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUduc3M8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0iZmFsc2UiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvcjwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+Mi4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SUFsbG9jYXRvcjwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjIuMTwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklDb21wb3NlcjwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JTWFwcGVyPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmlyPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJmYWxzZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4zLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JS2V5bWFzdGVyRGV2aWNlPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLmxpZ2h0PC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4yLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JTGlnaHQ8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0iZmFsc2UiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teDwvbmFtZT4KKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICAgICAgICA8aW50ZXJmYWNlPgorICAgICAgICAgICAgPG5hbWU+SU9teDwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+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+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudXNiPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JVXNiPC9uYW1lPgorICAgICAgICAgICAgPGluc3RhbmNlPmRlZmF1bHQ8L2luc3RhbmNlPgorICAgICAgICA8L2ludGVyZmFjZT4KKyAgICA8L2hhbD4KKyAgICA8aGFsIGZvcm1hdD0iaGlkbCIgb3B0aW9uYWw9InRydWUiPgorICAgICAgICA8bmFtZT5hbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JVmlicmF0b3I8L25hbWU+CisgICAgICAgICAgICA8aW5zdGFuY2U+ZGVmYXVsdDwvaW5zdGFuY2U+CisgICAgICAgIDwvaW50ZXJmYWNlPgorICAgIDwvaGFsPgorICAgIDxoYWwgZm9ybWF0PSJoaWRsIiBvcHRpb25hbD0idHJ1ZSI+CisgICAgICAgIDxuYW1lPmFuZHJvaWQuaGFyZHdhcmUudnI8L25hbWU+CisgICAgICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgICAgICAgPGludGVyZmFjZT4KKyAgICAgICAgICAgIDxuYW1lPklWcjwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+CisgICAgPGhhbCBmb3JtYXQ9ImhpZGwiIG9wdGlvbmFsPSJ0cnVlIj4KKyAgICAgICAgPG5hbWU+YW5kcm9pZC5oYXJkd2FyZS53aWZpPC9uYW1lPgorICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgICAgICAgIDxpbnRlcmZhY2U+CisgICAgICAgICAgICA8bmFtZT5JV2lmaTwvbmFtZT4KKyAgICAgICAgICAgIDxpbnN0YW5jZT5kZWZhdWx0PC9pbnN0YW5jZT4KKyAgICAgICAgPC9pbnRlcmZhY2U+CisgICAgPC9oYWw+Cis8L2NvbXBhdGliaWxpdHktbWF0cml4PgpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvMS4wL0lTdXJmYWNlRmxpbmdlckNvbmZpZ3MuaGFsIGIvY29uZmlnc3RvcmUvMS4wL0lTdXJmYWNlRmxpbmdlckNvbmZpZ3MuaGFsCmluZGV4IDQ0MDNhOTAuLjVmOTc1YmQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlLzEuMC9JU3VyZmFjZUZsaW5nZXJDb25maWdzLmhhbAorKysgYi9jb25maWdzdG9yZS8xLjAvSVN1cmZhY2VGbGluZ2VyQ29uZmlncy5oYWwKQEAgLTE2LDYgKzE2LDEwMiBAQAogcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbmZpZ3N0b3JlQDEuMDsKIAogaW50ZXJmYWNlIElTdXJmYWNlRmxpbmdlckNvbmZpZ3MgeworICAgIC8qKgorICAgICAqIFRoZSBmb2xsb3dpbmcgdHdvIG1ldGhvZHMgZGVmaW5lIChyZXNwZWN0aXZlbHkpOgorICAgICAqCisgICAgICogLSBUaGUgcGhhc2Ugb2Zmc2V0IGJldHdlZW4gaGFyZHdhcmUgdnN5bmMgYW5kIHdoZW4gYXBwcyBhcmUgd29rZW4gdXAgYnkgdGhlCisgICAgICogICBDaG9yZW9ncmFwaGVyIGNhbGxiYWNrCisgICAgICogLSBUaGUgcGhhc2Ugb2Zmc2V0IGJldHdlZW4gaGFyZHdhcmUgdnN5bmMgYW5kIHdoZW4gU3VyZmFjZUZsaW5nZXIgd2FrZXMgdXAKKyAgICAgKiAgIHRvIGNvbnN1bWUgaW5wdXQKKyAgICAgKgorICAgICAqIFRoZWlyIHZhbHVlcyBtYXkgYmUgdHVuZWQgdG8gdHJhZGUgb2ZmIGJldHdlZW4gZGlzcGxheSBwaXBlbGluZSBsYXRlbmN5IChib3RoCisgICAgICogb3ZlcmFsbCBsYXRlbmN5IGFuZCB0aGUgbGVuZ3RocyBvZiB0aGUgYXBwIC0tPiBTRiBhbmQgU0YgLS0+IGRpc3BsYXkgcGhhc2VzKQorICAgICAqIGFuZCBmcmFtZSBkZWxpdmVyeSBqaXR0ZXIgKHdoaWNoIHR5cGljYWxseSBtYW5pZmVzdHMgYXMgImphbmsiIG9yICJqZXJraW5lc3MiCisgICAgICogd2hpbGUgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgZGV2aWNlKS4gVGhlIGRlZmF1bHQgdmFsdWVzIG11c3QgcHJvZHVjZSBhCisgICAgICogcmVsYXRpdmVseSBsb3cgYW1vdW50IG9mIGppdHRlciBhdCB0aGUgZXhwZW5zZSBvZiByb3VnaGx5IHR3byBmcmFtZXMgb2YKKyAgICAgKiBhcHAgLS0+IGRpc3BsYXkgbGF0ZW5jeSwgYW5kIHVubGVzcyBzaWduaWZpY2FudCB0ZXN0aW5nIGlzIHBlcmZvcm1lZCB0byBhdm9pZAorICAgICAqIGluY3JlYXNlZCBkaXNwbGF5IGppdHRlciAoYm90aCBtYW51YWwgaW52ZXN0aWdhdGlvbiB1c2luZyBzeXN0cmFjZSBbMV0gYW5kCisgICAgICogYXV0b21hdGVkIHRlc3RpbmcgdXNpbmcgZHVtcHN5cyBnZnhpbmZvIFsyXSBhcmUgcmVjb21tZW5kZWQpLCB0aGV5IHNob3VsZCBub3QKKyAgICAgKiBiZSBtb2RpZmllZC4KKyAgICAgKgorICAgICAqIFsxXSBodHRwczovL2RldmVsb3Blci5hbmRyb2lkLmNvbS9zdHVkaW8vcHJvZmlsZS9zeXN0cmFjZS5odG1sCisgICAgICogWzJdIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3RyYWluaW5nL3Rlc3RpbmcvcGVyZm9ybWFuY2UuaHRtbAorICAgICAqLwogICAgIHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKCkgZ2VuZXJhdGVzIChPcHRpb25hbEludDY0IHZhbHVlKTsKLSAgICB1c2VUcmlwbGVGcmFtZWJ1ZmZlcigpIGdlbmVyYXRlcyAoT3B0aW9uYWxCb29sIHZhbHVlKTsKKyAgICB2c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKCkgZ2VuZXJhdGVzIChPcHRpb25hbEludDY0IHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIEluc3RydWN0IHRoZSBSZW5kZXIgRW5naW5lIHRvIHVzZSBFR0xfSU1HX2NvbnRleHRfcHJpb3JpdHkgaGludCBpZgorICAgICAqIGF2YWlsYWJlLgorICAgICAqLworICAgIHVzZUNvbnRleHRQcmlvcml0eSgpIGdlbmVyYXRlcyhPcHRpb25hbEJvb2wgdmFsdWUpOworCisgICAgLyoqCisgICAgICogaGFzV2lkZUNvbG9yRGlzcGxheSBpbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGhhcworICAgICAqIG9yIGNhbiBzdXBwb3J0IGEgd2lkZS1jb2xvciBkaXNwbGF5LCBlLmcuIGNvbG9yIHNwYWNlCisgICAgICogZ3JlYXRlciB0aGFuIHNSR0IuIFR5cGljYWwgZGlzcGxheSBtYXkgaGF2ZSBzYW1lCisgICAgICogY29sb3IgcHJpbWFyaWVzIGFzIERDSS1QMy4KKyAgICAgKiBJbmRpY2F0ZSBzdXBwb3J0IGZvciB0aGlzIGZlYXR1cmUgYnkgc2V0dGluZworICAgICAqIFRBUkdFVF9IQVNfV0lERV9DT0xPUl9ESVNQTEFZIHRvIHRydWUgaW4gQm9hcmRDb25maWcubWsKKyAgICAgKiBUaGlzIGFsc28gbWVhbnMgdGhhdCB0aGUgZGV2aWNlIGlzIGNvbG9yIG1hbmFnZWQuCisgICAgICogQSBjb2xvciBtYW5hZ2VkIGRldmljZSB3aWxsIHVzZSB0aGUgYXBwcm9wcmlhdGUKKyAgICAgKiBkaXNwbGF5IG1vZGUgZGVwZW5kaW5nIG9uIHRoZSBjb250ZW50IG9uIHRoZSBzY3JlZW4uCisgICAgICogRGVmYXVsdCBpcyBzUkdCLgorICAgICAqLworICAgIGhhc1dpZGVDb2xvckRpc3BsYXkoKSBnZW5lcmF0ZXMgKE9wdGlvbmFsQm9vbCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBod0hkckRpc3BsYXkgaW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBoYXMKKyAgICAgKiBvciBjYW4gc3VwcG9ydCBhbiBIRFIgKEhpZ2ggRHluYW1pYyBSYW5nZSkgZGlzcGxheS4KKyAgICAgKiBUeXBpY2FsbHkgYW4gSERSIGRpc3BsYXkgaXMgYWxzbyB3aWRlLWNvbG9yLgorICAgICAqIEluZGljYXRlIHN1cHBvcnQgZm9yIHRoaXMgZmVhdHVyZSBieSBzZXR0aW5nCisgICAgICogVEFSR0VUX0hBU19IRFJfRElTUExBWSB0byB0cnVlIGluIEJvYXJkQ29uZmlnLm1rCisgICAgICovCisgICAgaGFzSERSRGlzcGxheSgpIGdlbmVyYXRlcyAoT3B0aW9uYWxCb29sIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFNwZWNpZnkgdGhlIG9mZnNldCBpbiBuYW5vc2Vjb25kcyB0byBhZGQgdG8gdnN5bmMgdGltZSB3aGVuIHRpbWVzdGFtcGluZworICAgICAqIHByZXNlbnQgZmVuY2VzLgorICAgICAqLworICAgIHByZXNlbnRUaW1lT2Zmc2V0RnJvbVZTeW5jTnMoKSBnZW5lcmF0ZXMoT3B0aW9uYWxJbnQ2NCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBTb21lIGhhcmR3YXJlIGNhbiBkbyBSR0ItPllVViBjb252ZXJzaW9uIG1vcmUgZWZmaWNpZW50bHkgaW4gaGFyZHdhcmUKKyAgICAgKiBjb250cm9sbGVkIGJ5IEhXQyB0aGFuIGluIGhhcmR3YXJlIGNvbnRyb2xsZWQgYnkgdGhlIHZpZGVvIGVuY29kZXIuCisgICAgICogVGhpcyBpbnN0cnVjdCBWaXJ0dWFsRGlzcGxheVN1cmZhY2UgdG8gdXNlIEhXQyBmb3Igc3VjaCBjb252ZXJzaW9uIG9uCisgICAgICogR0wgY29tcG9zaXRpb24uCisgICAgICovCisgICAgdXNlSHdjRm9yUkdCdG9ZVVYoKSBnZW5lcmF0ZXMoT3B0aW9uYWxCb29sIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqICBNYXhpbXVtIGRpbWVuc2lvbiBzdXBwb3J0ZWQgYnkgSFdDIGZvciB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICogIE11c3QgYmUgZXF1YWxzIHRvIG1pbihtYXhfd2lkdGgsIG1heF9oZWlnaHQpLgorICAgICAqLworICAgIG1heFZpcnR1YWxEaXNwbGF5U2l6ZSgpIGdlbmVyYXRlcyAoT3B0aW9uYWxVSW50NjQgdmFsdWUpOworCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIGlmIFN5bmMgZnJhbWV3b3JrIGlzIGF2YWlsYWJsZS4gU3luYyBmcmFtZXdvcmsgcHJvdmlkZXMgZmVuY2UKKyAgICAgKiBtZWNoYW5pc20gd2hpY2ggc2lnbmlmaWNhbnRseSByZWR1Y2VzIGJ1ZmZlciBwcm9jZXNzaW5nIGxhdGVuY3kuCisgICAgICovCisgICAgaGFzU3luY0ZyYW1ld29yaygpIGdlbmVyYXRlcyhPcHRpb25hbEJvb2wgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRydWUgaWYgc3VyZmFjZSBmbGluZ2VyIHNob3VsZCB1c2UgdnIgZmxpbmdlciBmb3IgY29tcGF0aWJsZSB2cgorICAgICAqIGFwcHMsIGZhbHNlIG90aGVyd2lzZS4gRGV2aWNlcyB0aGF0IHdpbGwgbmV2ZXIgYmUgcnVubmluZyB2ciBhcHBzIHNob3VsZAorICAgICAqIHJldHVybiBmYWxzZSB0byBhdm9pZCBleHRyYSByZXNvdXJjZSB1c2FnZS4gRGF5ZHJlYW0gcmVhZHkgZGV2aWNlcyBtdXN0CisgICAgICogcmV0dXJuIHRydWUgZm9yIGZ1bGwgdnIgc3VwcG9ydC4KKyAgICAgKi8KKyAgICB1c2VWckZsaW5nZXIoKSBnZW5lcmF0ZXMgKE9wdGlvbmFsQm9vbCB2YWx1ZSk7CisKKyAgICAvKioKKyAgICAgKiBDb250cm9scyB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgU3VyZmFjZUZsaW5nZXIgd2lsbCBhbGxvY2F0ZSBmb3IgdXNlIGluCisgICAgICogRnJhbWVidWZmZXJTdXJmYWNlLgorICAgICAqLworICAgIG1heEZyYW1lQnVmZmVyQWNxdWlyZWRCdWZmZXJzKCkgZ2VuZXJhdGVzKE9wdGlvbmFsSW50NjQgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHN1cmZhY2UgZmxpbmdlciBzaG91bGQgc3RhcnQKKyAgICAgKiBoYXJkd2FyZS5ncmFwaGljcy5hbGxvY2F0b3JAMi4wOjpJQWxsb2NhdG9yIHNlcnZpY2UuCisgICAgICovCisgICAgc3RhcnRHcmFwaGljc0FsbG9jYXRvclNlcnZpY2UoKSBnZW5lcmF0ZXMoT3B0aW9uYWxCb29sIHZhbHVlKTsKIH07CmRpZmYgLS1naXQgYS9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9TdXJmYWNlRmxpbmdlckNvbmZpZ3MuY3BwIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmNwcAppbmRleCBhY2MzZDFmLi45YzEzNGVmIDEwMDY0NAotLS0gYS9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9TdXJmYWNlRmxpbmdlckNvbmZpZ3MuY3BwCisrKyBiL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L1N1cmZhY2VGbGluZ2VyQ29uZmlncy5jcHAKQEAgLTEyLDIwICsxMiwxMTMgQEAKIFJldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSB7CiAjaWZkZWYgVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TCiAgICAgX2hpZGxfY2Ioe3RydWUsIFZTWU5DX0VWRU5UX1BIQVNFX09GRlNFVF9OU30pOwotICAgIExPRyhJTkZPKSA8PCAidnN5bmMgZXZlbnQgcGhhc2Ugb2Zmc2V0IG5zID0gICIgPDwgVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TOwogI2Vsc2UKICAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKICNlbmRpZgogICAgIHJldHVybiBWb2lkKCk7CiB9CiAKLVJldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnVzZVRyaXBsZUZyYW1lYnVmZmVyKHVzZVRyaXBsZUZyYW1lYnVmZmVyX2NiIF9oaWRsX2NiKSB7CitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjp2c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSB7CisjaWZkZWYgU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TCisgICAgX2hpZGxfY2Ioe3RydWUsIFNGX1ZTWU5DX0VWRU5UX1BIQVNFX09GRlNFVF9OU30pOworI2Vsc2UKKyAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKKyNlbmRpZgorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnVzZUNvbnRleHRQcmlvcml0eSh1c2VDb250ZXh0UHJpb3JpdHlfY2IgX2hpZGxfY2IpIHsKKyNpZmRlZiBVU0VfQ09OVEVYVF9QUklPUklUWQorICAgIF9oaWRsX2NiKHt0cnVlLCBVU0VfQ09OVEVYVF9QUklPUklUWX0pOworI2Vsc2UKKyAgICBfaGlkbF9jYih7ZmFsc2UsIGZhbHNlfSk7CisjZW5kaWYKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjptYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVycyhtYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVyc19jYiBfaGlkbF9jYikgeworI2lmZGVmIE5VTV9GUkFNRUJVRkZFUl9TVVJGQUNFX0JVRkZFUlMKKyAgICBfaGlkbF9jYih7dHJ1ZSwgTlVNX0ZSQU1FQlVGRkVSX1NVUkZBQ0VfQlVGRkVSU30pOworI2Vsc2UKKyAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKKyNlbmRpZgorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6Omhhc1dpZGVDb2xvckRpc3BsYXkoaGFzV2lkZUNvbG9yRGlzcGxheV9jYiBfaGlkbF9jYikgewogICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKLSNpZmRlZiBVU0VfVFJJUExFX0ZSQU1FQlVGRkVSCisjaWZkZWYgSEFTX1dJREVfQ09MT1JfRElTUExBWQogICAgIHZhbHVlID0gdHJ1ZTsKICNlbmRpZgogICAgIF9oaWRsX2NiKHt0cnVlLCB2YWx1ZX0pOwotICAgIExPRyhJTkZPKSA8PCAiU3VyZmFjZUZsaW5nZXIgRnJhbWVCdWZmZXI6ICIgPDwgKHZhbHVlID8gInRyaXBsZSIgOiAiZG91YmxlIik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN1cmZhY2VGbGluZ2VyQ29uZmlnczo6aGFzU3luY0ZyYW1ld29yayhoYXNTeW5jRnJhbWV3b3JrX2NiIF9oaWRsX2NiKSB7CisgICAgYm9vbCB2YWx1ZSA9IHRydWU7CisjaWZkZWYgUlVOTklOR19XSVRIT1VUX1NZTkNfRlJBTUVXT1JLCisgICAgdmFsdWUgPSBmYWxzZTsKKyNlbmRpZgorICAgIF9oaWRsX2NiKHt0cnVlLCB2YWx1ZX0pOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6Omhhc0hEUkRpc3BsYXkoaGFzSERSRGlzcGxheV9jYiBfaGlkbF9jYikgeworICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKKyNpZmRlZiBIQVNfSERSX0RJU1BMQVkKKyAgICB2YWx1ZSA9IHRydWU7CisjZW5kaWYKKyAgICBfaGlkbF9jYih7dHJ1ZSwgdmFsdWV9KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjpwcmVzZW50VGltZU9mZnNldEZyb21WU3luY05zKHByZXNlbnRUaW1lT2Zmc2V0RnJvbVZTeW5jTnNfY2IgX2hpZGxfY2IpIHsKKyNpZmRlZiBQUkVTRU5UX1RJTUVfT0ZGU0VUX0ZST01fVlNZTkNfTlMKKyAgICAgIF9oaWRsX2NiKHt0cnVlLCBQUkVTRU5UX1RJTUVfT0ZGU0VUX0ZST01fVlNZTkNfTlN9KTsKKyNlbHNlCisgICAgICBfaGlkbF9jYih7ZmFsc2UsIDB9KTsKKyNlbmRpZgorICAgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFN1cmZhY2VGbGluZ2VyQ29uZmlnczo6dXNlSHdjRm9yUkdCdG9ZVVYodXNlSHdjRm9yUkdCdG9ZVVZfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIHZhbHVlID0gZmFsc2U7CisjaWZkZWYgRk9SQ0VfSFdDX0NPUFlfRk9SX1ZJUlRVQUxfRElTUExBWVMKKyAgICB2YWx1ZSA9IHRydWU7CisjZW5kaWYKKyAgICBfaGlkbF9jYih7dHJ1ZSwgdmFsdWV9KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjptYXhWaXJ0dWFsRGlzcGxheVNpemUobWF4VmlydHVhbERpc3BsYXlTaXplX2NiIF9oaWRsX2NiKSB7CisgIHVpbnQ2NF90IG1heFNpemUgPSAwOworI2lmZGVmIE1BWF9WSVJUVUFMX0RJU1BMQVlfRElNRU5TSU9OCisgIG1heFNpemUgPSBNQVhfVklSVFVBTF9ESVNQTEFZX0RJTUVOU0lPTjsKKyAgX2hpZGxfY2Ioe3RydWUsIG1heFNpemV9KTsKKyNlbHNlCisgIF9oaWRsX2NiKHtmYWxzZSwgbWF4U2l6ZX0pOworI2VuZGlmCisgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTdXJmYWNlRmxpbmdlckNvbmZpZ3M6OnVzZVZyRmxpbmdlcih1c2VWckZsaW5nZXJfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIHZhbHVlID0gZmFsc2U7CisgICAgYm9vbCBzcGVjaWZpZWQgPSBmYWxzZTsKKyNpZmRlZiBVU0VfVlJfRkxJTkdFUgorICAgIHZhbHVlID0gdHJ1ZTsKKyAgICBzcGVjaWZpZWQgPSB0cnVlOworI2VuZGlmCisgICAgX2hpZGxfY2Ioe3NwZWNpZmllZCwgdmFsdWV9KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gU3VyZmFjZUZsaW5nZXJDb25maWdzOjpzdGFydEdyYXBoaWNzQWxsb2NhdG9yU2VydmljZSgKKyAgICBzdGFydEdyYXBoaWNzQWxsb2NhdG9yU2VydmljZV9jYiBfaGlkbF9jYikgeworICAgIGJvb2wgdmFsdWUgPSBmYWxzZTsKKyNpZmRlZiBTVEFSVF9HUkFQSElDU19BTExPQ0FUT1JfU0VSVklDRQorICAgIHZhbHVlID0gdHJ1ZTsKKyNlbmRpZgorICAgIF9oaWRsX2NiKHt0cnVlLCB2YWx1ZX0pOwogICAgIHJldHVybiBWb2lkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L1N1cmZhY2VGbGluZ2VyQ29uZmlncy5oIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmgKaW5kZXggNWJkZjdiYi4uMTdhNDI0ZSAxMDA2NDQKLS0tIGEvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmgKKysrIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvU3VyZmFjZUZsaW5nZXJDb25maWdzLmgKQEAgLTI1LDcgKzI1LDE4IEBACiBzdHJ1Y3QgU3VyZmFjZUZsaW5nZXJDb25maWdzIDogcHVibGljIElTdXJmYWNlRmxpbmdlckNvbmZpZ3MgewogICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWdzdG9yZTo6VjFfMDo6SVN1cmZhY2VGbGluZ2VyQ29uZmlncyBmb2xsb3cuCiAgICAgUmV0dXJuPHZvaWQ+IHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKLSAgICBSZXR1cm48dm9pZD4gdXNlVHJpcGxlRnJhbWVidWZmZXIodXNlVHJpcGxlRnJhbWVidWZmZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiB2c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKHZzeW5jRXZlbnRQaGFzZU9mZnNldE5zX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gdXNlQ29udGV4dFByaW9yaXR5KHVzZUNvbnRleHRQcmlvcml0eV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGhhc1dpZGVDb2xvckRpc3BsYXkoaGFzV2lkZUNvbG9yRGlzcGxheV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGhhc0hEUkRpc3BsYXkoaGFzSERSRGlzcGxheV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHByZXNlbnRUaW1lT2Zmc2V0RnJvbVZTeW5jTnMocHJlc2VudFRpbWVPZmZzZXRGcm9tVlN5bmNOc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVzZUh3Y0ZvclJHQnRvWVVWKHVzZUh3Y0ZvclJHQnRvWVVWX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gbWF4VmlydHVhbERpc3BsYXlTaXplKG1heFZpcnR1YWxEaXNwbGF5U2l6ZV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGhhc1N5bmNGcmFtZXdvcmsoaGFzU3luY0ZyYW1ld29ya19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVzZVZyRmxpbmdlcih1c2VWckZsaW5nZXJfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBtYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVycyhtYXhGcmFtZUJ1ZmZlckFjcXVpcmVkQnVmZmVyc19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHN0YXJ0R3JhcGhpY3NBbGxvY2F0b3JTZXJ2aWNlKAorICAgICAgICBzdGFydEdyYXBoaWNzQWxsb2NhdG9yU2VydmljZV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CiAKICAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZSBmb2xsb3cuCiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmVAMS4wLXNlcnZpY2UucmMgYi9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmNvbmZpZ3N0b3JlQDEuMC1zZXJ2aWNlLnJjCmluZGV4IDg3NDFiZGQuLjU2M2Q4NTQgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY29uZmlnc3RvcmVAMS4wLXNlcnZpY2UucmMKKysrIGIvY29uZmlnc3RvcmUvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjAtc2VydmljZS5yYwpAQCAtMSw0ICsxLDQgQEAKIHNlcnZpY2UgY29uZmlnc3RvcmUtaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmNvbmZpZ3N0b3JlQDEuMC1zZXJ2aWNlCi0gICAgY2xhc3MgaGFsCisgICAgY2xhc3MgaGFsIGFuaW1hdGlvbgogICAgIHVzZXIgc3lzdGVtCiAgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS9jb25maWdzdG9yZS8xLjAvZGVmYXVsdC9zdXJmYWNlZmxpbmdlci5tayBiL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L3N1cmZhY2VmbGluZ2VyLm1rCmluZGV4IDVhOTQ2ZjQuLjNjZTc2OGEgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L3N1cmZhY2VmbGluZ2VyLm1rCisrKyBiL2NvbmZpZ3N0b3JlLzEuMC9kZWZhdWx0L3N1cmZhY2VmbGluZ2VyLm1rCkBAIC01LDYgKzUsNTIgQEAKICAgICBMT0NBTF9DRkxBR1MgKz0gLURWU1lOQ19FVkVOVF9QSEFTRV9PRkZTRVRfTlM9JChWU1lOQ19FVkVOVF9QSEFTRV9PRkZTRVRfTlMpCiBlbmRpZgogCi1pZmVxICgkKE5VTV9GUkFNRUJVRkZFUl9TVVJGQUNFX0JVRkZFUlMpLDMpCi0gICAgTE9DQUxfQ0ZMQUdTICs9IC1EVVNFX1RSSVBMRV9GUkFNRUJVRkZFUgoraWZuZXEgKCQoU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TPSQoU0ZfVlNZTkNfRVZFTlRfUEhBU0VfT0ZGU0VUX05TKQorZW5kaWYKKworaWZlcSAoJChUQVJHRVRfQk9BUkRfUExBVEZPUk0pLG9tYXA0KQorICAgIExPQ0FMX0NGTEFHUyArPSAtRFVTRV9DT05URVhUX1BSSU9SSVRZPTEKK2VuZGlmCisKK2lmZXEgKCQoVEFSR0VUX0JPQVJEX1BMQVRGT1JNKSxzNXBjMTEwKQorICAgIExPQ0FMX0NGTEFHUyArPSAtRFVTRV9DT05URVhUX1BSSU9SSVRZPTEKK2VuZGlmCisKK2lmZXEgKCQoVEFSR0VUX0hBU19XSURFX0NPTE9SX0RJU1BMQVkpLHRydWUpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1ESEFTX1dJREVfQ09MT1JfRElTUExBWQorZW5kaWYKKworaWZlcSAoJChUQVJHRVRfSEFTX0hEUl9ESVNQTEFZKSx0cnVlKQorICAgIExPQ0FMX0NGTEFHUyArPSAtREhBU19IRFJfRElTUExBWQorZW5kaWYKKworaWZuZXEgKCQoUFJFU0VOVF9USU1FX09GRlNFVF9GUk9NX1ZTWU5DX05TKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EUFJFU0VOVF9USU1FX09GRlNFVF9GUk9NX1ZTWU5DX05TPSQoUFJFU0VOVF9USU1FX09GRlNFVF9GUk9NX1ZTWU5DX05TKQorZWxzZQorICAgIExPQ0FMX0NGTEFHUyArPSAtRFBSRVNFTlRfVElNRV9PRkZTRVRfRlJPTV9WU1lOQ19OUz0wCitlbmRpZgorCitpZmVxICgkKFRBUkdFVF9GT1JDRV9IV0NfRk9SX1ZJUlRVQUxfRElTUExBWVMpLHRydWUpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1ERk9SQ0VfSFdDX0NPUFlfRk9SX1ZJUlRVQUxfRElTUExBWVMKK2VuZGlmCisKK2lmbmVxICgkKE1BWF9WSVJUVUFMX0RJU1BMQVlfRElNRU5TSU9OKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1ETUFYX1ZJUlRVQUxfRElTUExBWV9ESU1FTlNJT049JChNQVhfVklSVFVBTF9ESVNQTEFZX0RJTUVOU0lPTikKK2VuZGlmCisKK2lmZXEgKCQoVEFSR0VUX1JVTk5JTkdfV0lUSE9VVF9TWU5DX0ZSQU1FV09SSyksdHJ1ZSkKKyAgICBMT0NBTF9DRkxBR1MgKz0gLURSVU5OSU5HX1dJVEhPVVRfU1lOQ19GUkFNRVdPUksKK2VuZGlmCisKK2lmbmVxICgkKFVTRV9WUl9GTElOR0VSKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EVVNFX1ZSX0ZMSU5HRVIKK2VuZGlmCisKK2lmbmVxICgkKE5VTV9GUkFNRUJVRkZFUl9TVVJGQUNFX0JVRkZFUlMpLCkKKyAgICBMT0NBTF9DRkxBR1MgKz0gLUROVU1fRlJBTUVCVUZGRVJfU1VSRkFDRV9CVUZGRVJTPSQoTlVNX0ZSQU1FQlVGRkVSX1NVUkZBQ0VfQlVGRkVSUykKK2VuZGlmCisKK2lmbmVxICgkKFNGX1NUQVJUX0dSQVBISUNTX0FMTE9DQVRPUl9TRVJWSUNFKSwpCisgICAgTE9DQUxfQ0ZMQUdTICs9IC1EU1RBUlRfR1JBUEhJQ1NfQUxMT0NBVE9SX1NFUlZJQ0UKIGVuZGlmCmRpZmYgLS1naXQgYS9jb25maWdzdG9yZS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2NvbmZpZ3N0b3JlLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE3NzU1MzgKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWdzdG9yZS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM0IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsQ29uZmlnc3RvcmVWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsQ29uZmlnc3RvcmVWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KKwpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbENvbmZpZ3N0b3JlVjFfMFRhcmdldFRlc3QuY3BwIGIvY29uZmlnc3RvcmUvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbENvbmZpZ3N0b3JlVjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1Y2QzMGIKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWdzdG9yZS8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ29uZmlnc3RvcmVWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkNvbmZpZ3N0b3JlSGlkbEhhbFRlc3QiCisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY29uZmlnc3RvcmUvMS4wL0lTdXJmYWNlRmxpbmdlckNvbmZpZ3MuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NvbmZpZ3N0b3JlLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWdzdG9yZTo6VjFfMDo6SVN1cmZhY2VGbGluZ2VyQ29uZmlnczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3N0b3JlOjpWMV8wOjpPcHRpb25hbEJvb2w7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWdzdG9yZTo6VjFfMDo6T3B0aW9uYWxJbnQ2NDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3N0b3JlOjpWMV8wOjpPcHRpb25hbFVJbnQ2NDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNkZWZpbmUgQVNTRVJUX09LKHJldCkgQVNTRVJUX1RSVUUocmV0LmlzT2soKSkKKyNkZWZpbmUgRVhQRUNUX09LKHJldCkgRVhQRUNUX1RSVUUocmV0LmlzT2soKSkKKworY2xhc3MgQ29uZmlnc3RvcmVIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgc3A8SVN1cmZhY2VGbGluZ2VyQ29uZmlncz4gc2ZDb25maWdzOworCisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBzZkNvbmZpZ3MgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTwKKyAgICAgICAgICAgIElTdXJmYWNlRmxpbmdlckNvbmZpZ3M+KCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KK307CisKKy8qKgorICogRW5zdXJlIGFsbCBJU3VyZmFjZUZsaW5nZXJDb25maWdzLmhhbCBmdW5jdGlvbiBjYWxscyBhcmUgc3VjY2Vzc2Z1bC4KKyAqLworVEVTVF9GKENvbmZpZ3N0b3JlSGlkbFRlc3QsIFRlc3RGdW5jdGlvbkNhbGxzKSB7CisgICAgYm9vbCB0bXA7CisKKyAgICBSZXR1cm48dm9pZD4gc3RhdHVzID0gc2ZDb25maWdzLT52c3luY0V2ZW50UGhhc2VPZmZzZXROcygKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsSW50NjQgYXJnKSB7IHRtcCA9IGFyZy5zcGVjaWZpZWQ7IH0pOworICAgIEVYUEVDVF9PSyhzdGF0dXMpOworCisgICAgc3RhdHVzID0gc2ZDb25maWdzLT52c3luY1NmRXZlbnRQaGFzZU9mZnNldE5zKAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxJbnQ2NCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnVzZUNvbnRleHRQcmlvcml0eSgKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPmhhc1dpZGVDb2xvckRpc3BsYXkoCisgICAgICAgIFsmdG1wXShPcHRpb25hbEJvb2wgYXJnKSB7IHRtcCA9IGFyZy5zcGVjaWZpZWQ7IH0pOworICAgIEVYUEVDVF9PSyhzdGF0dXMpOworCisgICAgc3RhdHVzID0gc2ZDb25maWdzLT5oYXNIRFJEaXNwbGF5KAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxCb29sIGFyZykgeyB0bXAgPSBhcmcuc3BlY2lmaWVkOyB9KTsKKyAgICBFWFBFQ1RfT0soc3RhdHVzKTsKKworICAgIHN0YXR1cyA9IHNmQ29uZmlncy0+cHJlc2VudFRpbWVPZmZzZXRGcm9tVlN5bmNOcygKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsSW50NjQgYXJnKSB7IHRtcCA9IGFyZy5zcGVjaWZpZWQ7IH0pOworICAgIEVYUEVDVF9PSyhzdGF0dXMpOworCisgICAgc3RhdHVzID0gc2ZDb25maWdzLT51c2VId2NGb3JSR0J0b1lVVigKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPm1heFZpcnR1YWxEaXNwbGF5U2l6ZSgKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsVUludDY0IGFyZykgeyB0bXAgPSBhcmcuc3BlY2lmaWVkOyB9KTsKKyAgICBFWFBFQ1RfT0soc3RhdHVzKTsKKworICAgIHN0YXR1cyA9IHNmQ29uZmlncy0+aGFzU3luY0ZyYW1ld29yaygKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnVzZVZyRmxpbmdlcigKKyAgICAgICAgWyZ0bXBdKE9wdGlvbmFsQm9vbCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPm1heEZyYW1lQnVmZmVyQWNxdWlyZWRCdWZmZXJzKAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxJbnQ2NCBhcmcpIHsgdG1wID0gYXJnLnNwZWNpZmllZDsgfSk7CisgICAgRVhQRUNUX09LKHN0YXR1cyk7CisKKyAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnN0YXJ0R3JhcGhpY3NBbGxvY2F0b3JTZXJ2aWNlKAorICAgICAgICBbJnRtcF0oT3B0aW9uYWxCb29sIGFyZykgeyB0bXAgPSBhcmcuc3BlY2lmaWVkOyB9KTsKKyAgICBFWFBFQ1RfT0soc3RhdHVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgcmVwZWF0ZWQgY2FsbCB0byB0aGUgc2FtZSBmdW5jdGlvbiByZXR1cm5zIHRoZSBzYW1lIHJlc3VsdC4KKyAqLworVEVTVF9GKENvbmZpZ3N0b3JlSGlkbFRlc3QsIFRlc3RTYW1lUmV0dXJuVmFsdWUpIHsKKyAgICBpbnQ2NF90IG9yaWdpbmFsX3JldDsKKyAgICBSZXR1cm48dm9pZD4gc3RhdHVzID0gc2ZDb25maWdzLT52c3luY0V2ZW50UGhhc2VPZmZzZXROcygKKyAgICAgICAgWyZvcmlnaW5hbF9yZXRdKE9wdGlvbmFsSW50NjQgYXJnKSB7IG9yaWdpbmFsX3JldCA9IGFyZy52YWx1ZTsgfSk7CisKKyAgICBpbnQ2NF90IG5leHRfcmV0OworICAgIGZvciAoaW50IGNudCA9IDA7IGNudCA8IDEwOyBjbnQrKykgeworICAgICAgICBzdGF0dXMgPSBzZkNvbmZpZ3MtPnZzeW5jRXZlbnRQaGFzZU9mZnNldE5zKAorICAgICAgICAgICAgWyZuZXh0X3JldF0oT3B0aW9uYWxJbnQ2NCBhcmcpIHsgbmV4dF9yZXQgPSBhcmcudmFsdWU7IH0pOworICAgICAgICBFWFBFQ1RfRVEob3JpZ2luYWxfcmV0LCBuZXh0X3JldCk7CisgICAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICAgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvQW5kcm9pZC5icCBiL2NvbmZpZ3N0b3JlL0FuZHJvaWQuYnAKaW5kZXggNzliNjNmNi4uYmEzZTYyZSAxMDA2NDQKLS0tIGEvY29uZmlnc3RvcmUvQW5kcm9pZC5icAorKysgYi9jb25maWdzdG9yZS9BbmRyb2lkLmJwCkBAIC0xLDUgKzEsNiBAQAogLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgogc3ViZGlycyA9IFsKICAgICAiMS4wIiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKICAgICAidXRpbHMiLAogXQpkaWZmIC0tZ2l0IGEvY29uZmlnc3RvcmUvdXRpbHMvaW5jbHVkZS9jb25maWdzdG9yZS9VdGlscy5oIGIvY29uZmlnc3RvcmUvdXRpbHMvaW5jbHVkZS9jb25maWdzdG9yZS9VdGlscy5oCmluZGV4IDg2MmU4MTIuLmM5YzgzMGIgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3N0b3JlL3V0aWxzL2luY2x1ZGUvY29uZmlnc3RvcmUvVXRpbHMuaAorKysgYi9jb25maWdzdG9yZS91dGlscy9pbmNsdWRlL2NvbmZpZ3N0b3JlL1V0aWxzLmgKQEAgLTU3LDcgKzU3LDkgQEAKICAgICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIHRoZSBkZWZhdWx0IHZhbHVlCiAgICAgICAgICAgICByZXQuc3BlY2lmaWVkID0gZmFsc2U7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIHN0YXR1cyA9ICgqY29uZmlncy4qZnVuYykoWyZyZXRdKFYgdikgeyByZXQgPSB2OyB9KTsKKyAgICAgICAgICAgIGF1dG8gc3RhdHVzID0gKCpjb25maWdzLipmdW5jKShbJnJldF0oViB2KSB7CisgICAgICAgICAgICAgICAgcmV0ID0gdjsKKyAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgaWYgKCFzdGF0dXMuaXNPaygpKSB7CiAgICAgICAgICAgICAgICAgc3RkOjpvc3RyaW5nc3RyZWFtIG9zczsKICAgICAgICAgICAgICAgICBvc3MgPDwgIkhJREwgY2FsbCBmYWlsZWQgZm9yIHJldHJpZXZpbmcgYSBjb25maWcgaXRlbSBmcm9tICIKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL0FuZHJvaWQuYnAgYi9jb250ZXh0aHViLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZDJlNWMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzAgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJQ29udGV4dGh1Yi5oYWwiLAorICAgICAgICAiSUNvbnRleHRodWJDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9Db250ZXh0aHViQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0NvbnRleHRodWJDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1Yi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvSUh3Q29udGV4dGh1Yi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQm5Id0NvbnRleHRodWIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0JwSHdDb250ZXh0aHViLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9Cc0NvbnRleHRodWIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lId0NvbnRleHRodWJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQm5Id0NvbnRleHRodWJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQnBId0NvbnRleHRodWJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvQnNDb250ZXh0aHViQ2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC9BbmRyb2lkLm1rIGIvY29udGV4dGh1Yi8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTYxZTNiCi0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDY1OCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQXN5bmNFdmVudFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Bc3luY0V2ZW50VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkFzeW5jRXZlbnRUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb250ZXh0SHViKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvQ29udGV4dEh1Yi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkNvbnRleHRIdWIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbnRleHRIdWJNc2cpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Db250ZXh0SHViTXNnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuQ29udGV4dEh1Yk1zZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSG9zdEVuZFBvaW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSG9zdEVuZFBvaW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuSG9zdEVuZFBvaW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIdWJBcHBJbmZvKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSHViQXBwSW5mby5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkh1YkFwcEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEh1Yk1lbW9yeUZsYWcpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9IdWJNZW1vcnlGbGFnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuSHViTWVtb3J5RmxhZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSHViTWVtb3J5VHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0h1Yk1lbW9yeVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5IdWJNZW1vcnlUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNZW1SYW5nZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL01lbVJhbmdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuTWVtUmFuZ2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE5hbm9BcHBCaW5hcnkpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9OYW5vQXBwQmluYXJ5LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuTmFub0FwcEJpbmFyeQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTmFub0FwcEZsYWdzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvTmFub0FwcEZsYWdzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuTmFub0FwcEZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQaHlzaWNhbFNlbnNvcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1BoeXNpY2FsU2Vuc29yLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuUGh5c2ljYWxTZW5zb3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1Jlc3VsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLlJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU2Vuc29yVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1NlbnNvclR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5TZW5zb3JUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUcmFuc2FjdGlvblJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL1RyYW5zYWN0aW9uUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuVHJhbnNhY3Rpb25SZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQ29udGV4dGh1Yi5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0lDb250ZXh0aHViLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1Yi5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWJDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6SUNvbnRleHRodWIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSUNvbnRleHRodWJDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWJDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OklDb250ZXh0aHViQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChBc3luY0V2ZW50VHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0FzeW5jRXZlbnRUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuQXN5bmNFdmVudFR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvbnRleHRIdWIpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Db250ZXh0SHViLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuQ29udGV4dEh1YgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29udGV4dEh1Yk1zZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0NvbnRleHRIdWJNc2cuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5Db250ZXh0SHViTXNnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIb3N0RW5kUG9pbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9Ib3N0RW5kUG9pbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5Ib3N0RW5kUG9pbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEh1YkFwcEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9IdWJBcHBJbmZvLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuSHViQXBwSW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSHViTWVtb3J5RmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL0h1Yk1lbW9yeUZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5IdWJNZW1vcnlGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIdWJNZW1vcnlUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSHViTWVtb3J5VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLkh1Yk1lbW9yeVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbVJhbmdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvTWVtUmFuZ2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5NZW1SYW5nZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTmFub0FwcEJpbmFyeSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi9WMV8wL05hbm9BcHBCaW5hcnkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5OYW5vQXBwQmluYXJ5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChOYW5vQXBwRmxhZ3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9OYW5vQXBwRmxhZ3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5OYW5vQXBwRmxhZ3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBoeXNpY2FsU2Vuc29yKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvUGh5c2ljYWxTZW5zb3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5QaHlzaWNhbFNlbnNvcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMuUmVzdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTZW5zb3JUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvU2Vuc29yVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OnR5cGVzLlNlbnNvclR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRyYW5zYWN0aW9uUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvVHJhbnNhY3Rpb25SZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjp0eXBlcy5UcmFuc2FjdGlvblJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElDb250ZXh0aHViLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViL1YxXzAvSUNvbnRleHRodWIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lDb250ZXh0aHViQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOjpJQ29udGV4dGh1YgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElDb250ZXh0aHViQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvVjFfMC9JQ29udGV4dGh1YkNhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6SUNvbnRleHRodWJDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUNvbnRleHRodWJDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmhhbCBiL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGNjZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvSUNvbnRleHRodWIuaGFsCkBAIC0wLDAgKzEsMTcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOworCitpbXBvcnQgSUNvbnRleHRodWJDYWxsYmFjazsKKworLyoqCisgKiBUaGUgQ29udGV4dCBIdWIgSEFMIHByb3ZpZGVzIGFuIGludGVyZmFjZSB0byBhIHNlcGFyYXRlIGxvdy1wb3dlciBwcm9jZXNzaW5nCisgKiBkb21haW4gdGhhdCBoYXMgZGlyZWN0IGFjY2VzcyB0byBjb250ZXh0dWFsIGluZm9ybWF0aW9uLCBzdWNoIGFzIHNlbnNvcnMuCisgKiBOYXRpdmUgYXBwbGljYXRpb25zIHRoYXQgcnVuIHdpdGhpbiBhIGNvbnRleHQgaHViIGFyZSBrbm93biBhcyBuYW5vYXBwcywgYW5kCisgKiB0aGV5IGV4ZWN1dGUgd2l0aGluIHRoZSBDb250ZXh0IEh1YiBSdW50aW1lIEVudmlyb25tZW50IChDSFJFKSwgd2hpY2ggaXMKKyAqIHN0YW5kYXJkaXplZCB2aWEgdGhlIENIUkUgQVBJLCBkZWZpbmVkIGVsc2V3aGVyZS4KKyAqLworaW50ZXJmYWNlIElDb250ZXh0aHViIHsKKyAgICAvKioKKyAgICAgKiBFbnVtZXJhdGUgYWxsIGF2YWlsYWJsZSBjb250ZXh0IGh1YnMgb24gdGhlIHN5c3RlbS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaHVicyBsaXN0IG9mIGh1YnMgb24gdGhpcyBzeXN0ZW0uCisgICAgICovCisgICAgZ2V0SHVicygpIGdlbmVyYXRlcyAodmVjPENvbnRleHRIdWI+IGh1YnMpOworCisgICAgLyoqCisgICAgICogUmVnaXN0ZXIgYSBjYWxsYmFjayBmb3IgdGhlIEhBTCBpbXBsZW1lbnRhdGlvbiB0byBzZW5kIGFzeW5jaHJvbm91cworICAgICAqIG1lc3NhZ2VzIHRvIHRoZSBzZXJ2aWNlIGZyb20gYSBjb250ZXh0IGh1Yi4gVGhlcmUgY2FuIGJlIGEgbWF4aW11bSBvZgorICAgICAqIG9uZSBjYWxsYmFjayByZWdpc3RlcmVkIHdpdGggdGhlIEhBTC4gQSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gd2hlbiBhCisgICAgICogY2FsbGJhY2sgaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkIG11c3Qgb3ZlcnJpZGUgdGhlIHByZXZpb3VzCisgICAgICogcmVnaXN0cmF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGh1YklkICAgIGlkZW50aWZpZXIgZm9yIHRoZSBodWIKKyAgICAgKiAgICAgICAgY2FsbGJhY2sgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIElDb250ZXh0SHViQ2FsbGJhY2tzCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBvbiBzdWNjZXNzCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICoKKyAgICAgKi8KKyAgICAgcmVnaXN0ZXJDYWxsYmFjayh1aW50MzJfdCBodWJJZCwgSUNvbnRleHRodWJDYWxsYmFjayBjYikgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBtZXNzYWdlIHRvIGEgaHViCisgICAgICoKKyAgICAgKiBAcGFyYW0gaHViSWQgaWRlbnRpZmllciBmb3IgaHViIHRvIHNlbmQgbWVzc2FnZSB0bworICAgICAqICAgICAgICBtc2cgICBtZXNzYWdlIHRvIGJlIHNlbnQKKyAgICAgKgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIGlmIHN1Y2Nlc3NmdWwsIGVycm9yIGNvZGUgb3RoZXJ3aXNlCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fRkFJTEVEIGlmIG1lc3NhZ2Ugc2VuZCBmYWlsZWQKKyAgICAgKi8KKyAgICBzZW5kTWVzc2FnZVRvSHViKHVpbnQzMl90IGh1YklkLCBDb250ZXh0SHViTXNnIG1zZykKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBMb2FkcyBhIG5hbm9BcHAuIEFmdGVyIGxvYWRpbmcsIHRoZSBuYW5vQXBwJ3MgaW5pdCBtZXRob2QgbXVzdCBiZSBjYWxsZWQuCisgICAgICogQWZ0ZXIgdGhlIGluaXQgbWV0aG9kIGZvciBuYW5vQXBwIHJldHVybnMgc3VjY2VzcywgdGhpcyBtdXN0IGJlIGluZGljYXRlZAorICAgICAqIHRvIHRoZSBzZXJ2aWNlIGJ5IGFuIGFzeW5jaHJvbm91cyBjYWxsIHRvIGhhbmRsZVR4blJlc3VsdC4KKyAgICAgKgorICAgICAqIExvYWRpbmcgYSBuYW5vYXBwIG11c3Qgbm90IHRha2UgbW9yZSB0aGFuIDMwIHNlY29uZHMuCisgICAgICoKKyAgICAgKiBEZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0aW9uLCBuYW5vQXBwcyBsb2FkZWQgdmlhIHRoaXMgQVBJIG1heSBvciBtYXkKKyAgICAgKiBub3QgcGVyc2lzdCBhY3Jvc3MgcmVib290cyBvZiB0aGUgaHViLiBJZiB0aGV5IGRvIHBlcnNpc3QsIHRoZQorICAgICAqIGltcGxlbWVudGF0aW9uIG11c3QgaW5pdGlhbGx5IHBsYWNlIG5hbm9BcHBzIGluIHRoZSBkaXNhYmxlZCBzdGF0ZSB1cG9uIGEKKyAgICAgKiByZWJvb3QsIGFuZCBub3Qgc3RhcnQgdGhlbSB1bnRpbCBhIGNhbGwgaXMgbWFkZSB0byBlbmFibGVOYW5vQXBwKCkuIEluCisgICAgICogdGhpcyBjYXNlLCB0aGUgYXBwIG11c3QgYWxzbyBiZSB1bmxvYWRlZCB1cG9uIGEgZmFjdG9yeSByZXNldCBvZiB0aGUKKyAgICAgKiBkZXZpY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaHViSWQgaWRlbnRpZmVyIG9mIHRoZSBjb250ZXh0SHViCisgICAgICogICAgICAgIGFwcEJpbmFyeSBjb250YWlucyB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBuYW5vQXBwLCBwbHVzCisgICAgICogICAgICAgICAgICAgICAgICBtZXRhZGF0YQorICAgICAqICAgICAgICB0cmFuc2FjdGlvbklkIHRyYW5zYWN0aW9uSWQgZm9yIHRoaXMgY2FsbAorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdHJhbnNhdGlvbiBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fUEVORElORyBpZiBodWIgaXMgYnVzeSB3aXRoIGFub3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQvdW5sb2FkIHRyYW5zYWN0aW9uCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fRkFJTEVEIGlmIGxvYWQgZmFpbGVkIHN5bmNocm9ub3VzbHkKKyAgICAgKgorICAgICAqLworICAgIGxvYWROYW5vQXBwKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgIE5hbm9BcHBCaW5hcnkgYXBwQmluYXJ5LAorICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogVW5sb2FkcyBhIG5hbm9BcHAuIEJlZm9yZSB0aGUgdW5sb2FkLCB0aGUgYXBwcyBkZWluaXQgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICAgKiBBZnRlciB0aGlzLCBzdWNjZXNzIG11c3QgYmUgaW5kaWNhdGVkIHRvIHRoZSBzZXJ2aWNlIHRocm91Z2ggYW4KKyAgICAgKiBhc3luY2hyb25vdXMgY2FsbCB0byBoYW5kbGVUeG5SZXN1bHQuCisgICAgICoKKyAgICAgKiBVbmxvYWRpbmcgYSBuYW5vYXBwIG11c3Qgbm90IHRha2UgbW9yZSB0aGFuIDUgc2Vjb25kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBodWJJZCBpZGVudGlmZXIgb2YgdGhlIGNvbnRleHRIdWIKKyAgICAgKiAgICAgICAgYXBwSWQgYXBwSWRlbnRpZmllciByZXR1cm5lZCBieSB0aGUgSEFMCisgICAgICogICAgICAgIG1zZyAgIG1lc3NhZ2UgdG8gYmUgc2VudAorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdHJhbnNhdGlvbiBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fUEVORElORyBpZiBodWIgaXMgYnVzeSB3aXRoIGFub3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQvdW5sb2FkIHRyYW5zYWN0aW9uCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fRkFJTEVEIGlmIHVubG9hZCBmYWlsZWQgc3luY2hyb25vdXNseQorICAgICAqCisgICAgICovCisgICAgdW5sb2FkTmFub0FwcCh1aW50MzJfdCBodWJJZCwgdWludDY0X3QgYXBwSWQsIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogRW5hYmxlcyBhIG5hbm9BcHAuIFRoZSBhcHAncyBpbml0IG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQWZ0ZXIgdGhpcywgc3VjY2VzcyBtdXN0IGJlIGluZGljYXRlZCB0byB0aGUgc2VydmljZSB0aHJvdWdoIGFuCisgICAgICogYXN5bmNocm9ub3VzIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBFbmFibGluZyBhIG5hbm9hcHAgbXVzdCBub3QgdGFrZSBtb3JlIHRoYW4gNSBzZWNvbmRzLgorICAgICAqCisgICAgICogQHBhcmFtIGh1YklkIGlkZW50aWZlciBvZiB0aGUgY29udGV4dEh1YgorICAgICAqICAgICAgICBhcHBJZCBhcHBJZGVudGlmaWVyIHJldHVybmVkIGJ5IHRoZSBIQUwKKyAgICAgKiAgICAgICAgbXNnICAgbWVzc2FnZSB0byBiZSBzZW50CisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyBpZiB0cmFuc2F0aW9uIHN0YXJ0ZWQKKyAgICAgKiAgICAgICAgICAgICAgICBCQURfVkFMVUUgaWYgcGFyYW1ldGVycyBhcmUgbm90IHNhbmUKKyAgICAgKiAgICAgICAgICAgICAgICBUUkFOU0FDVElPTl9QRU5ESU5HIGlmIGh1YiBpcyBidXN5IHdpdGggYW5vdGhlcgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZC91bmxvYWQgdHJhbnNhY3Rpb24KKyAgICAgKiAgICAgICAgICAgICAgICBGQUlMRURfVFJBTlNBQ1RJT04gaWYgbG9hZCBmYWlscyBpbW1lZGlhdGVseQorICAgICAqCisgICAgICovCisgICAgZW5hYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwgdWludDY0X3QgYXBwSWQsIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogRGlzYWJsZXMgYSBuYW5vQXBwLiBUaGUgYXBwJ3MgZGVpbml0IG1ldGhvZCBpcyBjYWxsZWQuCisgICAgICogQWZ0ZXIgdGhpcywgc3VjY2VzcyBtdXN0IGJlIGluZGljYXRlZCB0byB0aGUgc2VydmljZSB0aHJvdWdoIGFuCisgICAgICogYXN5bmNocm9ub3VzIG1lc3NhZ2UuCisgICAgICoKKyAgICAgKiBEaXNhYmxpbmcgYSBuYW5vYXBwIG11c3Qgbm90IHRha2UgbW9yZSB0aGFuIDUgc2Vjb25kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBodWJJZCBpZGVudGlmZXIgb2YgdGhlIGNvbnRleHRIdWIKKyAgICAgKiAgICAgICAgYXBwSWQgYXBwSWRlbnRpZmllciByZXR1cm5lZCBieSB0aGUgSEFMCisgICAgICogICAgICAgIG1zZyAgIG1lc3NhZ2UgdG8gYmUgc2VudAorICAgICAqCisgICAgICogQHJldHVybiByZXN1bHQgT0sgaWYgdHJhbnNhdGlvbiBzdGFydGVkCisgICAgICogICAgICAgICAgICAgICAgQkFEX1ZBTFVFIGlmIHBhcmFtZXRlcnMgYXJlIG5vdCBzYW5lCisgICAgICogICAgICAgICAgICAgICAgVFJBTlNBQ1RJT05fUEVORElORyBpZiBodWIgaXMgYnVzeSB3aXRoIGFub3RoZXIKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQvdW5sb2FkIHRyYW5zYWN0aW9uCisgICAgICogICAgICAgICAgICAgICAgRkFJTEVEX1RSQU5TQUNUSU9OIGlmIGxvYWQgZmFpbHMgaW1tZWRpYXRlbHkKKyAgICAgKgorICAgICAqLworICAgIGRpc2FibGVOYW5vQXBwKHVpbnQzMl90IGh1YklkLCB1aW50NjRfdCBhcHBJZCwgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBRdWVyaWVzIGZvciBMb2FkZWQgYXBwcyBvbiB0aGUgaHViCisgICAgICoKKyAgICAgKiBAcGFyYW0gaHViSWQgaWRlbnRpZmVyIG9mIHRoZSBjb250ZXh0SHViCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFwcHMgYWxsIG5hbm9BcHBzIG9uIHRoZSBodWIuCisgICAgICogICAgICAgICAgICAgIEFsbCBuYW5vQXBwcyB0aGF0IGNhbiBiZSBtb2RpZmllZCBieSB0aGUgc2VydmljZSBtdXN0CisgICAgICogICAgICAgICAgICAgIGJlIHJldHVybmVkLiBBIG5vbi1tb2RpZmlhYmxlIG5hbm9hcHBzIG11c3Qgbm90IGJlCisgICAgICogICAgICAgICAgICAgIHJldHVybmVkLiBBIG1vZGlmaWFibGUgbmFub0FwcCBpcyBvbmUgdGhhdCBjYW4gYmUKKyAgICAgKiAgICAgICAgICAgICAgdW5sb2FkZWQvZGlzYWJsZWQvZW5hYmxlZCBieSB0aGUgc2VydmljZS4KKyAgICAgKgorICAgICAqLworICAgIHF1ZXJ5QXBwcyh1aW50MzJfdCBodWJJZCkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0KTsKK307CmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbCBiL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NGY4NGMKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1YkNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wOworCitpbnRlcmZhY2UgSUNvbnRleHRodWJDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgYnkgdGhlIENvbnRleHRodWIgc2VydmljZSB0byB0aGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdGhlIEhBTCB0byBzZW5kIGFzeW5jaHJvbm91cyBtZXNzYWdlcyBiYWNrCisgICAgICogdG8gdGhlIHNlcnZpY2UgYW5kIHJlZ2lzdGVyZWQgY2xpZW50cyBvZiB0aGUgQ29udGV4dEh1YiBzZXJ2aWNlLgorICAgICAqCisgICAgICogQHBhcmFtcyBtc2cgOiBtZXNzYWdlCisgICAgICoKKyAgICAgKi8KKyAgICAgaGFuZGxlQ2xpZW50TXNnKENvbnRleHRIdWJNc2cgbXNnKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgY2FsbGJhY2sgaXMgcGFzc2VkIGJ5IHRoZSBDb250ZXh0aHViIHNlcnZpY2UgdG8gdGhlIEhBTAorICAgICAqIGltcGxlbWVudGF0aW9uIHRvIGFsbG93IHRoZSBIQUwgdG8gc2VuZCB0aGUgcmVzcG9uc2UgZm9yIGEKKyAgICAgKiB0cmFuc2FjdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbXMgdHhuSWQgOiB0cmFuc2FjdGlvbiBpZCB3aG9zZSByZXN1bHQgaXMgYmVpbmcgc2VudAorICAgICAqICAgICAgICAgICAgICAgICBwYXNzZWQgaW4gYnkgdGhlIHNlcnZpY2UgYXQgc3RhcnQgb2YgdHJhbnNhY2F0aW9uLgorICAgICAqICAgICAgICAgcmVzdWx0OiByZXN1bHQgb2YgdHJhbnNhY3Rpb24uCisgICAgICoKKyAgICAgKi8KKyAgICAgaGFuZGxlVHhuUmVzdWx0KHVpbnQzMl90IHR4bklkLCBUcmFuc2FjdGlvblJlc3VsdCByZXN1bHQpOworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgYnkgdGhlIENvbnRleHRodWIgc2VydmljZSB0byB0aGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdGhlIEhBTCB0byBzZW5kIGFuIGFzeW5jaHJvbm91cyBldmVudAorICAgICAqIHRvIHRoZSBDb250ZXh0SHViIHNlcnZpY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW1zIG1zZyA6IG1lc3NhZ2UKKyAgICAgKgorICAgICAqLworICAgICBoYW5kbGVIdWJFdmVudChBc3luY0V2ZW50VHlwZSBldnQpOworCisgICAgLyoqCisgICAgICogVGhpcyBjYWxsYmFjayBpcyBwYXNzZWQgYnkgdGhlIENvbnRleHRodWIgc2VydmljZSB0byB0aGUgSEFMCisgICAgICogaW1wbGVtZW50YXRpb24gdG8gYWxsb3cgdGhlIEhBTCB0byBzZW5kIGEgbm90aWZpY2F0aW9uIHRvIHRoZSBzZXJ2aWNlCisgICAgICogdGhhdCBhIG5hbnAtYXBwIGhhcyBhYm9ydGVkLgorICAgICAqIFRoaXMgbWV0aG9kIG11c3QgYmUgY2FsbGVkIHdoZW4gYSBuYW5vYXBwIGludm9rZXMgY2hyZUFib3J0KC4uLikpLgorICAgICAqCisgICAgICogQHBhcmFtcyBhcHBJZCA6IGFwcCBpZGVudGlmaWVyCisgICAgICogICAgICAgICAgICAgICA6IGFib3J0Q29kZSBjb2RlIHBhc3NlZCBieSB0aGUgbmFub0FwcC4KKyAgICAgKgorICAgICAqIEFsc28gc2VlIGNocmVBYm9ydCguLi4pCisgICAgICoKKyAgICAgKi8KKyAgICAgaGFuZGxlQXBwQWJvcnQodWludDY0X3QgYXBwSWQsIHVpbnQzMl90IGFib3J0Q29kZSk7CisKKyAgICAgLyoqCisgICAgICAqIFRoaXMgY2FsbGJhY2sgaXMgcGFzc2VkIGJ5IHRoZSBDb250ZXh0aHViIHNlcnZpY2UgdG8gdGhlIEhBTAorICAgICAgKiBpbXBsZW1lbnRhdGlvbiB0byBhbGxvdyB0aGUgSEFMIHRvIHNlbmQgaW5mb3JtYXRpb24gYWJvdXQgdGhlCisgICAgICAqIGN1cnJlbnRseSBsb2FkZWQgYW5kIGFjdGl2ZSBuYW5vYXBwcyBvbiB0aGUgaHViLgorICAgICAgKgorICAgICAgKiBAcGFyYW1zIGFwcEluZm8gOiB2ZWN0b3Igb2YgSHViQXBwaW5mbyBzdHJ1Y3R1cmUgZm9yIGVhY2ggbmFub0FwcAorICAgICAgKiAgICAgICAgICAgICAgICAgICBvbiB0aGUgaHViIHRoYXQgY2FuIGJlIGVuYWJsZWQsIGRpc2FibGVkIGFuZAorICAgICAgKiAgICAgICAgICAgICAgICAgICB1bmxvYWRlZCBieSB0aGUgc2VydmljZS4gQW55IG5hbm9BcHBzIHRoYXQgY2Fubm90CisgICAgICAqICAgICAgICAgICAgICAgICAgIGJlIGNvbnRyb2xsZWQgYnkgdGhlIHNlcnZpY2UgbXVzdCBub3QgYmUgcmVwb3J0ZWQuCisgICAgICAqICAgICAgICAgICAgICAgICAgIEFsbCBuYW5vQXBwcyB0aGF0IGNhbiBiZSBjb250cm9sbGVkIGJ5IHRoZSBzZXJ2aWNlCisgICAgICAqICAgICAgICAgICAgICAgICAgIG11c3QgYmUgcmVwb3J0ZWQuCisgICAgICAqLworICAgICAgaGFuZGxlQXBwc0luZm8odmVjPEh1YkFwcEluZm8+IGFwcEluZm8pOworfTsKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGQyN2NjCi0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIkNvbnRleHRodWIuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxN2JmZTAKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwyMiBAQAorTE9DQUxfUEFUSDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAtc2VydmljZS5yYworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICAgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICAgICAgbGliYmFzZSBcCisgICAgICAgIGxpYmN1dGlscyBcCisgICAgICAgIGxpYmRsIFwKKyAgICAgICAgbGliaGFyZHdhcmUgXAorICAgICAgICBsaWJoaWRsYmFzZSBcCisgICAgICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgICAgICBsaWJsb2cgXAorICAgICAgICBsaWJ1dGlscyBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQ29udGV4dGh1Yi5jcHAgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNmIzZjIKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuY3BwCkBAIC0wLDAgKzEsNTUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgIkNvbnRleHRodWIuaCIKKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvY29udGV4dF9odWIuaD4KKyNpbmNsdWRlIDxzeXMvZW5kaWFuLmg+CisKKyN1bmRlZiBMT0dfVEFHCisjZGVmaW5lIExPR19UQUcgIkNvbnRleHRIdWJIYWxBZGFwdGVyIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNvbnRleHRodWIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RhdGljIGNvbnN0ZXhwciB1aW50NjRfdCBBTExfQVBQUyA9IFVJTlQ2NF9DKDB4RkZGRkZGRkZGRkZGRkZGRik7CisKK0NvbnRleHRodWI6OkNvbnRleHRodWIoKQorICAgICAgICA6IG1Jbml0Q2hlY2soTk9fSU5JVCksCisgICAgICAgICAgbUNvbnRleHRIdWJNb2R1bGUobnVsbHB0ciksCisgICAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nKGZhbHNlKSB7CisgICAgY29uc3QgaHdfbW9kdWxlX3QgKm1vZHVsZTsKKworICAgIG1Jbml0Q2hlY2sgPSBod19nZXRfbW9kdWxlKENPTlRFWFRfSFVCX01PRFVMRV9JRCwgJm1vZHVsZSk7CisKKyAgICBpZiAobUluaXRDaGVjayAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IGxvYWQgJXMgbW9kdWxlOiAlcyIsIENPTlRFWFRfSFVCX01PRFVMRV9JRCwgc3RyZXJyb3IoLW1Jbml0Q2hlY2spKTsKKyAgICB9IGVsc2UgaWYgKG1vZHVsZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJoYWwgcmV0dXJuZWQgc3VjY2VzIGJ1dCBhIG51bGwgbW9kdWxlISIpOworICAgICAgICAvLyBBc3NpZ24gYW4gZXJyb3IsIHRoaXMgc2hvdWxkIG5vdCByZWFsbHkgaGFwcGVuLi4uCisgICAgICAgIG1Jbml0Q2hlY2sgPSBVTktOT1dOX0VSUk9SOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dJKCJMb2FkZWQgQ29udGV4dCBIdWIgbW9kdWxlIik7CisgICAgICAgIG1Db250ZXh0SHViTW9kdWxlID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjb250ZXh0X2h1Yl9tb2R1bGVfdCAqPihtb2R1bGUpOworICAgIH0KK30KKworYm9vbCBDb250ZXh0aHViOjpzZXRPc0FwcEFzRGVzdGluYXRpb24oaHViX21lc3NhZ2VfdCAqbXNnLCBpbnQgaHViSWQpIHsKKyAgICBpZiAoIWlzVmFsaWRIdWJJZChodWJJZCkpIHsKKyAgICAgICAgQUxPR1coIiVzOiBIdWIgaW5mb3JtYXRpb24gaXMgbnVsbCBmb3IgaHViSGFuZGxlICVkIiwKKyAgICAgICAgICAgICAgX19GVU5DVElPTl9fLAorICAgICAgICAgICAgICBodWJJZCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBtc2ctPmFwcF9uYW1lID0gbUNhY2hlZEh1YkluZm9baHViSWRdLm9zQXBwTmFtZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitSZXR1cm48dm9pZD4gQ29udGV4dGh1Yjo6Z2V0SHVicyhnZXRIdWJzX2NiIF9oaWRsX2NiKSB7CisgICAgc3RkOjp2ZWN0b3I8Q29udGV4dEh1Yj4gaHViczsKKyAgICBpZiAoaXNJbml0aWFsaXplZCgpKSB7CisgICAgICAgIGNvbnN0IGNvbnRleHRfaHViX3QgKmh1YkFycmF5ID0gbnVsbHB0cjsKKyAgICAgICAgc2l6ZV90IG51bUh1YnM7CisKKyAgICAgICAgLy8gRXhwbGljaXRseSBkaXNjYXJkaW5nIGNvbnN0LiBIQUwgbWV0aG9kIGRpc2NhcmRzIGl0LgorICAgICAgICBudW1IdWJzID0gbUNvbnRleHRIdWJNb2R1bGUtPmdldF9odWJzKGNvbnN0X2Nhc3Q8Y29udGV4dF9odWJfbW9kdWxlX3QgKj4obUNvbnRleHRIdWJNb2R1bGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZodWJBcnJheSk7CisgICAgICAgIEFMT0dJKCJDb250ZXh0IEh1YiBIYWwgQWRhcHRlciByZXBvcnRzICV6dSBodWJzIiwgbnVtSHVicyk7CisKKyAgICAgICAgbUNhY2hlZEh1YkluZm8uY2xlYXIoKTsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bUh1YnM7IGkrKykgeworICAgICAgICAgICAgQ2FjaGVkSHViSW5mb3JtYXRpb24gaW5mbzsKKyAgICAgICAgICAgIENvbnRleHRIdWIgYzsKKworICAgICAgICAgICAgYy5odWJJZCA9IGh1YkFycmF5W2ldLmh1Yl9pZDsKKyAgICAgICAgICAgIGMubmFtZSA9IGh1YkFycmF5W2ldLm5hbWU7CisgICAgICAgICAgICBjLnZlbmRvciA9IGh1YkFycmF5W2ldLnZlbmRvcjsKKyAgICAgICAgICAgIGMudG9vbGNoYWluID0gaHViQXJyYXlbaV0udG9vbGNoYWluOworICAgICAgICAgICAgYy50b29sY2hhaW5WZXJzaW9uID0gaHViQXJyYXlbaV0udG9vbGNoYWluX3ZlcnNpb247CisgICAgICAgICAgICBjLnBsYXRmb3JtVmVyc2lvbiA9IGh1YkFycmF5W2ldLnBsYXRmb3JtX3ZlcnNpb247CisgICAgICAgICAgICBjLm1heFN1cHBvcnRlZE1zZ0xlbiA9IGh1YkFycmF5W2ldLm1heF9zdXBwb3J0ZWRfbXNnX2xlbjsKKyAgICAgICAgICAgIGMucGVha01pcHMgPSBodWJBcnJheVtpXS5wZWFrX21pcHM7CisgICAgICAgICAgICBjLnBlYWtQb3dlckRyYXdNdyA9IGh1YkFycmF5W2ldLnBlYWtfcG93ZXJfZHJhd19tdzsKKyAgICAgICAgICAgIGMuc3RvcHBlZFBvd2VyRHJhd013ID0gaHViQXJyYXlbaV0uc3RvcHBlZF9wb3dlcl9kcmF3X213OworICAgICAgICAgICAgYy5zbGVlcFBvd2VyRHJhd013ID0gaHViQXJyYXlbaV0uc2xlZXBfcG93ZXJfZHJhd19tdzsKKworICAgICAgICAgICAgaW5mby5jYWxsQmFjayA9IG51bGxwdHI7CisgICAgICAgICAgICBpbmZvLm9zQXBwTmFtZSA9IGh1YkFycmF5W2ldLm9zX2FwcF9uYW1lOworICAgICAgICAgICAgbUNhY2hlZEh1YkluZm9baHViQXJyYXlbaV0uaHViX2lkXSA9IGluZm87CisKKyAgICAgICAgICAgIGh1YnMucHVzaF9iYWNrKGMpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR1coIkNvbnRleHQgSHViIEhhbCBBZGFwdGVyIG5vdCBpbml0aWFsaXplZCIpOworICAgIH0KKworICAgIF9oaWRsX2NiKGh1YnMpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK2Jvb2wgQ29udGV4dGh1Yjo6aXNWYWxpZEh1YklkKHVpbnQzMl90IGh1YklkKSB7CisgICAgaWYgKCFtQ2FjaGVkSHViSW5mby5jb3VudChodWJJZCkpIHsKKyAgICAgICAgQUxPR1coIkh1YiBpbmZvcm1hdGlvbiBub3QgZm91bmQgZm9yIGh1YklkICUiIFBSSXUzMiwgaHViSWQpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfQorCitzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiBDb250ZXh0aHViOjpnZXRDYWxsQmFja0Zvckh1YklkKHVpbnQzMl90IGh1YklkKSB7CisgICAgaWYgKCFpc1ZhbGlkSHViSWQoaHViSWQpKSB7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiBtQ2FjaGVkSHViSW5mb1todWJJZF0uY2FsbEJhY2s7CisgICAgfQorfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjpzZW5kTWVzc2FnZVRvSHViKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb250ZXh0SHViTXNnICZtc2cpIHsKKyAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBpZiAoIWlzVmFsaWRIdWJJZChodWJJZCkgfHwgbXNnLm1zZy5zaXplKCkgPiBVSU5UMzJfTUFYKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OkJBRF9QQVJBTVM7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCB0eE1zZyA9IHsKKyAgICAgICAgLmFwcF9uYW1lLmlkID0gbXNnLmFwcE5hbWUsCisgICAgICAgIC5tZXNzYWdlX3R5cGUgPSBtc2cubXNnVHlwZSwKKyAgICAgICAgLm1lc3NhZ2VfbGVuID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1zZy5tc2cuc2l6ZSgpKSwgLy8gTm90ZSB0aGUgY2hlY2sgYWJvdmUKKyAgICAgICAgLm1lc3NhZ2UgPSBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90ICo+KG1zZy5tc2cuZGF0YSgpKSwKKyAgICB9OworCisgICAgQUxPR0koIlNlbmRpbmcgbXNnIG9mIHR5cGUgJSIgUFJJdTMyICIsIHNpemUgJSIgUFJJdTMyICIgdG8gYXBwIDB4JSIgUFJJeDY0LAorICAgICAgICAgIHR4TXNnLm1lc3NhZ2VfdHlwZSwKKyAgICAgICAgICB0eE1zZy5tZXNzYWdlX2xlbiwKKyAgICAgICAgICB0eE1zZy5hcHBfbmFtZS5pZCk7CisKKyAgICBpZihtQ29udGV4dEh1Yk1vZHVsZS0+c2VuZF9tZXNzYWdlKGh1YklkLCAmdHhNc2cpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0KKworICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjpyZWJvb3QodWludDMyX3QgaHViSWQpIHsKKyAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVQ7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCBtc2c7CisKKyAgICBpZiAoc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKCZtc2csIGh1YklkKSA9PSBmYWxzZSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpCQURfUEFSQU1TOworICAgIH0KKworICAgIG1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9PU19SRUJPT1Q7CisgICAgbXNnLm1lc3NhZ2VfbGVuID0gMDsKKyAgICBtc2cubWVzc2FnZSA9IG51bGxwdHI7CisKKyAgICBpZihtQ29udGV4dEh1Yk1vZHVsZS0+c2VuZF9tZXNzYWdlKGh1YklkLCAmbXNnKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX0ZBSUxFRDsKKyAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IENvbnRleHRodWI6OnJlZ2lzdGVyQ2FsbGJhY2sodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElDb250ZXh0aHViQ2FsbGJhY2s+ICZjYikgeworICAgIFJldHVybjxSZXN1bHQ+IHJldFZhbCA9IFJlc3VsdDo6QkFEX1BBUkFNUzsKKworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICAgIC8vIE5vdCBpbml0aWxhbGl6ZWQKKyAgICAgICAgQUxPR1coIkNvbnRleHQgaHViIG5vdCBpbml0aWFsaXplZCBzdWNjZXNzZnVsbHkiKTsKKyAgICAgICAgcmV0VmFsID0gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9IGVsc2UgaWYgKCFpc1ZhbGlkSHViSWQoaHViSWQpKSB7CisgICAgICAgIC8vIEluaXRpYWxpemVkLCBidXQgaHViSWQgaXMgIG5vdCB2YWxpZAorICAgICAgICByZXRWYWwgPSBSZXN1bHQ6OkJBRF9QQVJBTVM7CisgICAgfSBlbHNlIGlmIChtQ29udGV4dEh1Yk1vZHVsZS0+c3Vic2NyaWJlX21lc3NhZ2VzKGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0SHViQ2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMpID09IDApIHsKKyAgICAgICAgLy8gSW5pdGlhbGl6ZWQgJiYgdmFsaWQgaHViICYmIHN1YnNjcmlwdGlvbiBzdWNjZXNzZnVsCisgICAgICAgIHJldFZhbCA9IFJlc3VsdDo6T0s7CisgICAgICAgIG1DYWNoZWRIdWJJbmZvW2h1YklkXS5jYWxsQmFjayA9IGNiOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEluaXRhbGl6ZWQgJiYgdmFsaWQgaHViSWQgLSBidXQgc3Vic2NyaXB0aW9uIHVuc3VjY2Vzc2Z1bAorICAgICAgICAvLyBUaGlzIGlzIGxpa2VseSBhbiBpbnRlcm5hbCBlcnJvciBpbiB0aGUgSEFMIGltcGxlbWVudGF0aW9uLCBidXQgd2UKKyAgICAgICAgLy8gY2Fubm90IGFkZCBtb3JlIGluZm9ybWF0aW9uLgorICAgICAgICBBTE9HVygiQ291bGQgbm90IHN1YnNjcmliZSB0byB0aGUgaHViIGZvciBjYWxsYmFjayIpOworICAgICAgICByZXRWYWwgPSBSZXN1bHQ6OlVOS05PV05fRkFJTFVSRTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0VmFsOworfQorCitzdGF0aWMgYm9vbCBpc1ZhbGlkT3NTdGF0dXMoY29uc3QgdWludDhfdCAqbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBtc2dMZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzX3Jlc3BvbnNlX3QgKnJzcCkgeworICAgIC8vIFdvcmthcm91bmQgYSBidWcgaW4gc29tZSBIQUxzCisgICAgaWYgKG1zZ0xlbiA9PSAxKSB7CisgICAgICAgIHJzcC0+cmVzdWx0ID0gbXNnWzBdOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAobXNnID09IG51bGxwdHIgfHwgbXNnTGVuICE9IHNpemVvZigqcnNwKSkgeworICAgICAgICBBTE9HSSgiUmVjZWl2ZWQgaW52YWxpZCByZXNwb25zZSAoaXMgbnVsbCA6ICVkLCBzaXplICV6dSkiLAorICAgICAgICAgICAgICBtc2cgPT0gbnVsbHB0ciA/IDEgOiAwLAorICAgICAgICAgICAgICBtc2dMZW4pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgbWVtY3B5KHJzcCwgbXNnLCBzaXplb2YoKnJzcCkpOworCisgICAgLy8gTm8gc2FuaXR5IGNoZWNrcyBvbiByZXR1cm4gdmFsdWVzCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2ludCBDb250ZXh0aHViOjpoYW5kbGVPc01lc3NhZ2Uoc3A8SUNvbnRleHRodWJDYWxsYmFjaz4gY2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG1zZ1R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKm1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1zZ0xlbikgeworICAgIGludCByZXRWYWwgPSAtMTsKKworCisgICAgc3dpdGNoKG1zZ1R5cGUpIHsKKyAgICAgICAgY2FzZSBDT05URVhUX0hVQl9BUFBTX0VOQUJMRToKKyAgICAgICAgY2FzZSBDT05URVhUX0hVQl9BUFBTX0RJU0FCTEU6CisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfTE9BRF9BUFA6CisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfVU5MT0FEX0FQUDoKKyAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHN0YXR1c19yZXNwb25zZV90IHJzcDsKKyAgICAgICAgICAgIFRyYW5zYWN0aW9uUmVzdWx0IHJlc3VsdDsKKyAgICAgICAgICAgIGlmIChpc1ZhbGlkT3NTdGF0dXMobXNnLCBtc2dMZW4sICZyc3ApICYmIHJzcC5yZXN1bHQgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldFZhbCA9IDA7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gVHJhbnNhY3Rpb25SZXN1bHQ6OlNVQ0NFU1M7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFRyYW5zYWN0aW9uUmVzdWx0OjpGQUlMVVJFOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY2IgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgIGNiLT5oYW5kbGVUeG5SZXN1bHQobVRyYW5zYWN0aW9uSWQsIHJlc3VsdCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSAwOworICAgICAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nID0gZmFsc2U7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgQ09OVEVYVF9IVUJfUVVFUllfQVBQUzoKKyAgICAgICAgeworICAgICAgICAgICAgc3RkOjp2ZWN0b3I8SHViQXBwSW5mbz4gYXBwczsKKyAgICAgICAgICAgIGludCBudW1BcHBzID0gbXNnTGVuIC8gc2l6ZW9mKGh1Yl9hcHBfaW5mbyk7CisgICAgICAgICAgICBjb25zdCBodWJfYXBwX2luZm8gKnVuYWxpZ25lZEluZm9BZGRyID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBodWJfYXBwX2luZm8gKj4obXNnKTsKKworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1BcHBzOyBpKyspIHsKKyAgICAgICAgICAgICAgICBodWJfYXBwX2luZm8gcXVlcnlfaW5mbzsKKyAgICAgICAgICAgICAgICBtZW1jcHkoJnF1ZXJ5X2luZm8sICZ1bmFsaWduZWRJbmZvQWRkcltpXSwgc2l6ZW9mKHF1ZXJ5X2luZm8pKTsKKyAgICAgICAgICAgICAgICBIdWJBcHBJbmZvIGFwcDsKKyAgICAgICAgICAgICAgICBhcHAuYXBwSWQgPSBxdWVyeV9pbmZvLmFwcF9uYW1lLmlkOworICAgICAgICAgICAgICAgIGFwcC52ZXJzaW9uID0gcXVlcnlfaW5mby52ZXJzaW9uOworICAgICAgICAgICAgICAgIC8vIFRPRE8gOjogQWRkIG1lbW9yeSByYW5nZXMKKworICAgICAgICAgICAgICAgIGFwcHMucHVzaF9iYWNrKGFwcCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjYiAhPSBudWxscHRyKSB7CisgICAgICAgICAgICAgICAgY2ItPmhhbmRsZUFwcHNJbmZvKGFwcHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0VmFsID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDT05URVhUX0hVQl9RVUVSWV9NRU1PUlk6CisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIERlZmVycmluZyB0aGlzIHVzZQorICAgICAgICAgICAgcmV0VmFsID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDT05URVhUX0hVQl9PU19SRUJPT1Q6CisgICAgICAgIHsKKyAgICAgICAgICAgIG1Jc1RyYW5zYWN0aW9uUGVuZGluZyA9IGZhbHNlOworICAgICAgICAgICAgaWYgKGNiICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICBjYi0+aGFuZGxlSHViRXZlbnQoQXN5bmNFdmVudFR5cGU6OlJFU1RBUlRFRCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXRWYWwgPSAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBkZWZhdWx0OgorICAgICAgICB7CisgICAgICAgICAgICByZXRWYWwgPSAtMTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICB9CisKKyAgICAgIHJldHVybiByZXRWYWw7Cit9CisKK2ludCBDb250ZXh0aHViOjpjb250ZXh0SHViQ2IodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBodWJfbWVzc2FnZV90ICpyeE1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKSB7CisgICAgQ29udGV4dGh1YiAqb2JqID0gc3RhdGljX2Nhc3Q8Q29udGV4dGh1YiAqPihjb29raWUpOworCisgICAgaWYgKHJ4TXNnID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR1coIklnbm9yaW5nIE5VTEwgbWVzc2FnZSIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKCFvYmotPmlzVmFsaWRIdWJJZChodWJJZCkpIHsKKyAgICAgICAgQUxPR1coIkludmFsaWQgaHViIElkICUiIFBSSXUzMiwgaHViSWQpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgc3A8SUNvbnRleHRodWJDYWxsYmFjaz4gY2IgPSBvYmotPmdldENhbGxCYWNrRm9ySHViSWQoaHViSWQpOworCisgICAgaWYgKGNiID09IG51bGxwdHIpIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGV2ZXIgaGFwcGVuCisgICAgICAgIEFMT0dXKCJObyBjYWxsYmFjayByZWdpc3RlcmVkLCByZXR1cm5pbmciKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChyeE1zZy0+bWVzc2FnZV90eXBlIDwgQ09OVEVYVF9IVUJfVFlQRV9QUklWQVRFX01TR19CQVNFKSB7CisgICAgICAgIG9iai0+aGFuZGxlT3NNZXNzYWdlKGNiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByeE1zZy0+bWVzc2FnZV90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90ICo+KHJ4TXNnLT5tZXNzYWdlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnhNc2ctPm1lc3NhZ2VfbGVuKTsKKyAgICB9IGVsc2UgeworICAgICAgICBDb250ZXh0SHViTXNnIG1zZzsKKworICAgICAgICBtc2cuYXBwTmFtZSA9IHJ4TXNnLT5hcHBfbmFtZS5pZDsKKyAgICAgICAgbXNnLm1zZ1R5cGUgPSByeE1zZy0+bWVzc2FnZV90eXBlOworICAgICAgICBtc2cubXNnID0gc3RkOjp2ZWN0b3I8dWludDhfdD4oc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCAqPihyeE1zZy0+bWVzc2FnZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90ICo+KHJ4TXNnLT5tZXNzYWdlKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByeE1zZy0+bWVzc2FnZV9sZW4pOworCisgICAgICAgIGNiLT5oYW5kbGVDbGllbnRNc2cobXNnKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworUmV0dXJuPFJlc3VsdD4gQ29udGV4dGh1Yjo6dW5sb2FkTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgYXBwSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpIHsKKyAgICBpZiAoIWlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgcmV0dXJuIFJlc3VsdDo6Tk9UX0lOSVQ7CisgICAgfQorCisgICAgaWYgKG1Jc1RyYW5zYWN0aW9uUGVuZGluZykgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpUUkFOU0FDVElPTl9QRU5ESU5HOworICAgIH0KKworICAgIGh1Yl9tZXNzYWdlX3QgbXNnOworCisgICAgaWYgKHNldE9zQXBwQXNEZXN0aW5hdGlvbigmbXNnLCBodWJJZCkgPT0gZmFsc2UpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6QkFEX1BBUkFNUzsKKyAgICB9CisKKyAgICBzdHJ1Y3QgYXBwc19kaXNhYmxlX3JlcXVlc3RfdCByZXE7CisKKyAgICBtc2cubWVzc2FnZV90eXBlID0gQ09OVEVYVF9IVUJfVU5MT0FEX0FQUDsKKyAgICBtc2cubWVzc2FnZV9sZW4gPSBzaXplb2YocmVxKTsKKyAgICBtc2cubWVzc2FnZSA9ICZyZXE7CisgICAgcmVxLmFwcF9uYW1lLmlkID0gYXBwSWQ7CisKKyAgICBpZihtQ29udGV4dEh1Yk1vZHVsZS0+c2VuZF9tZXNzYWdlKGh1YklkLCAmbXNnKSAhPSAwKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX0ZBSUxFRDsKKyAgICB9IGVsc2UgeworICAgICAgICBtVHJhbnNhY3Rpb25JZCA9IHRyYW5zYWN0aW9uSWQ7CisgICAgICAgIG1Jc1RyYW5zYWN0aW9uUGVuZGluZyA9IHRydWU7CisgICAgICAgIHJldHVybiBSZXN1bHQ6Ok9LOworICAgIH0KK30KKworUmV0dXJuPFJlc3VsdD4gQ29udGV4dGh1Yjo6bG9hZE5hbm9BcHAodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBOYW5vQXBwQmluYXJ5JiBhcHBCaW5hcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0cmFuc2FjdGlvbklkKSB7CisgICAgaWYgKCFpc0luaXRpYWxpemVkKCkpIHsKKyAgICAgIHJldHVybiBSZXN1bHQ6Ok5PVF9JTklUOworICAgIH0KKworICAgIGlmIChtSXNUcmFuc2FjdGlvblBlbmRpbmcpIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fUEVORElORzsKKyAgICB9CisKKyAgICBodWJfbWVzc2FnZV90IGh1Yk1zZzsKKworICAgIGlmIChzZXRPc0FwcEFzRGVzdGluYXRpb24oJmh1Yk1zZywgaHViSWQpID09IGZhbHNlKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OkJBRF9QQVJBTVM7CisgICAgfQorCisgICAgLy8gRGF0YSBmcm9tIHRoZSBuYW5vYXBwIGhlYWRlciBpcyBwYXNzZWQgdGhyb3VnaCBISURMIGFzIGV4cGxpY2l0IGZpZWxkcywKKyAgICAvLyBidXQgdGhlIGxlZ2FjeSBIQUwgZXhwZWN0cyBpdCBwcmVwZW5kZWQgdG8gdGhlIGJpbmFyeSwgdGhlcmVmb3JlIHdlIG11c3QKKyAgICAvLyByZWNvbnN0cnVjdCBpdCBoZXJlIHByaW9yIHRvIHBhc3NpbmcgdG8gdGhlIGxlZ2FjeSBIQUwuCisgICAgdWludDMyX3QgdGFyZ2V0Q2hyZUFwaVZlcnNpb24gPQorICAgICAgICAoYXBwQmluYXJ5LnRhcmdldENocmVBcGlNYWpvclZlcnNpb24gPDwgMjQpIHwKKyAgICAgICAgKGFwcEJpbmFyeS50YXJnZXRDaHJlQXBpTWlub3JWZXJzaW9uIDw8IDE2KTsKKyAgICBjb25zdCBzdHJ1Y3QgbmFub19hcHBfYmluYXJ5X3QgaGVhZGVyID0geworICAgICAgICAuaGVhZGVyX3ZlcnNpb24gPSBodG9sZTMyKDEpLAorICAgICAgICAubWFnaWMgICAgICAgICAgPSBodG9sZTMyKE5BTk9BUFBfTUFHSUMpLAorICAgICAgICAuYXBwX2lkLmlkICAgICAgPSBodG9sZTY0KGFwcEJpbmFyeS5hcHBJZCksCisgICAgICAgIC5hcHBfdmVyc2lvbiAgICA9IGh0b2xlMzIoYXBwQmluYXJ5LmFwcFZlcnNpb24pLAorICAgICAgICAuZmxhZ3MgICAgICAgICAgPSBodG9sZTMyKGFwcEJpbmFyeS5mbGFncyksCisgICAgICAgIC5od19odWJfdHlwZSAgICA9IGh0b2xlNjQoMCksCisgICAgICAgIC5yZXNlcnZlZFswXSAgICA9IGh0b2xlMzIodGFyZ2V0Q2hyZUFwaVZlcnNpb24pLAorICAgICAgICAucmVzZXJ2ZWRbMV0gICAgPSAwLAorICAgIH07CisgICAgY29uc3QgdWludDhfdCAqaGVhZGVyQnl0ZXMgPSByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QgKj4oJmhlYWRlcik7CisKKyAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PiBiaW5hcnlXaXRoSGVhZGVyKGFwcEJpbmFyeS5jdXN0b21CaW5hcnkpOworICAgIGJpbmFyeVdpdGhIZWFkZXIuaW5zZXJ0KGJpbmFyeVdpdGhIZWFkZXIuYmVnaW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJCeXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJCeXRlcyArIHNpemVvZihoZWFkZXIpKTsKKworICAgIGh1Yk1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9MT0FEX0FQUDsKKyAgICBodWJNc2cubWVzc2FnZV9sZW4gPSBiaW5hcnlXaXRoSGVhZGVyLnNpemUoKTsKKyAgICBodWJNc2cubWVzc2FnZSA9IGJpbmFyeVdpdGhIZWFkZXIuZGF0YSgpOworCisgICAgaWYgKG1Db250ZXh0SHViTW9kdWxlLT5zZW5kX21lc3NhZ2UoaHViSWQsICZodWJNc2cpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0gZWxzZSB7CisgICAgICAgIG1UcmFuc2FjdGlvbklkID0gdHJhbnNhY3Rpb25JZDsKKyAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgfQorfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjplbmFibGVOYW5vQXBwKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBhcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkgeworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBpZiAobUlzVHJhbnNhY3Rpb25QZW5kaW5nKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX1BFTkRJTkc7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCBtc2c7CisKKyAgICBpZiAoc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKCZtc2csIGh1YklkKSA9PSBmYWxzZSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpCQURfUEFSQU1TOworICAgIH0KKworICAgIHN0cnVjdCBhcHBzX2VuYWJsZV9yZXF1ZXN0X3QgcmVxOworCisgICAgbXNnLm1lc3NhZ2VfdHlwZSA9IENPTlRFWFRfSFVCX0FQUFNfRU5BQkxFOworICAgIG1zZy5tZXNzYWdlX2xlbiA9IHNpemVvZihyZXEpOworICAgIHJlcS5hcHBfbmFtZS5pZCA9IGFwcElkOworICAgIG1zZy5tZXNzYWdlID0gJnJlcTsKKworICAgIGlmKG1Db250ZXh0SHViTW9kdWxlLT5zZW5kX21lc3NhZ2UoaHViSWQsICZtc2cpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0gZWxzZSB7CisgICAgICAgIG1UcmFuc2FjdGlvbklkID0gdHJhbnNhY3Rpb25JZDsKKyAgICAgICAgbUlzVHJhbnNhY3Rpb25QZW5kaW5nID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6T0s7CisgICAgfQorfQorCitSZXR1cm48UmVzdWx0PiBDb250ZXh0aHViOjpkaXNhYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFwcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkgeworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBpZiAobUlzVHJhbnNhY3Rpb25QZW5kaW5nKSB7CisgICAgICAgIHJldHVybiBSZXN1bHQ6OlRSQU5TQUNUSU9OX1BFTkRJTkc7CisgICAgfQorCisgICAgaHViX21lc3NhZ2VfdCBtc2c7CisKKyAgICBpZiAoc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKCZtc2csIGh1YklkKSA9PSBmYWxzZSkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpCQURfUEFSQU1TOworICAgIH0KKworICAgIHN0cnVjdCBhcHBzX2Rpc2FibGVfcmVxdWVzdF90IHJlcTsKKworICAgIG1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9BUFBTX0RJU0FCTEU7CisgICAgbXNnLm1lc3NhZ2VfbGVuID0gc2l6ZW9mKHJlcSk7CisgICAgcmVxLmFwcF9uYW1lLmlkID0gYXBwSWQ7CisgICAgbXNnLm1lc3NhZ2UgPSAmcmVxOworCisgICAgaWYobUNvbnRleHRIdWJNb2R1bGUtPnNlbmRfbWVzc2FnZShodWJJZCwgJm1zZykgIT0gMCkgeworICAgICAgICByZXR1cm4gUmVzdWx0OjpUUkFOU0FDVElPTl9GQUlMRUQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbVRyYW5zYWN0aW9uSWQgPSB0cmFuc2FjdGlvbklkOworICAgICAgICBtSXNUcmFuc2FjdGlvblBlbmRpbmcgPSB0cnVlOworICAgICAgICByZXR1cm4gUmVzdWx0OjpPSzsKKyAgICB9Cit9CisKK1JldHVybjxSZXN1bHQ+IENvbnRleHRodWI6OnF1ZXJ5QXBwcyh1aW50MzJfdCBodWJJZCkgeworICAgIGlmICghaXNJbml0aWFsaXplZCgpKSB7CisgICAgICByZXR1cm4gUmVzdWx0OjpOT1RfSU5JVDsKKyAgICB9CisKKyAgICBodWJfbWVzc2FnZV90IG1zZzsKKworICAgIGlmIChzZXRPc0FwcEFzRGVzdGluYXRpb24oJm1zZywgaHViSWQpID09IGZhbHNlKSB7CisgICAgICAgIEFMT0dXKCJDb3VsZCBub3QgZmluZCBodWJJZCAlIiBQUkl1MzIsIGh1YklkKTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6QkFEX1BBUkFNUzsKKyAgICB9CisKKyAgICBxdWVyeV9hcHBzX3JlcXVlc3RfdCBwYXlsb2FkOworICAgIHBheWxvYWQuYXBwX25hbWUuaWQgPSBBTExfQVBQUzsgLy8gVE9ETyA6IFBhc3MgdGhpcyBpbiBhcyBhIHBhcmFtZXRlcgorICAgIG1zZy5tZXNzYWdlID0gJnBheWxvYWQ7CisgICAgbXNnLm1lc3NhZ2VfbGVuID0gc2l6ZW9mKHBheWxvYWQpOworICAgIG1zZy5tZXNzYWdlX3R5cGUgPSBDT05URVhUX0hVQl9RVUVSWV9BUFBTOworCisgICAgaWYobUNvbnRleHRIdWJNb2R1bGUtPnNlbmRfbWVzc2FnZShodWJJZCwgJm1zZykgIT0gMCkgeworICAgICAgICBBTE9HVygiUXVlcnkgQXBwcyBzZW5kTWVzc2FnZSBmYWlsZWQiKTsKKyAgICAgICAgcmV0dXJuIFJlc3VsdDo6VFJBTlNBQ1RJT05fRkFJTEVEOworICAgIH0KKworICAgIHJldHVybiBSZXN1bHQ6Ok9LOworfQorCitib29sIENvbnRleHRodWI6OmlzSW5pdGlhbGl6ZWQoKSB7CisgICAgcmV0dXJuIChtSW5pdENoZWNrID09IE9LICYmIG1Db250ZXh0SHViTW9kdWxlICE9IG51bGxwdHIpOworfQorCitJQ29udGV4dGh1YiAqSElETF9GRVRDSF9JQ29udGV4dGh1Yihjb25zdCBjaGFyICogaGFsTmFtZSkgeworICAgIEFMT0dJKCIlcyBDYWxsZWQgZm9yICVzIiwgX19GVU5DVElPTl9fLCBoYWxOYW1lKTsKKyAgICBDb250ZXh0aHViICpjb250ZXh0aHViID0gbmV3IENvbnRleHRodWI7CisKKyAgICBpZiAoIWNvbnRleHRodWItPmlzSW5pdGlhbGl6ZWQoKSkgeworICAgICAgICBkZWxldGUgY29udGV4dGh1YjsKKyAgICAgICAgY29udGV4dGh1YiA9IG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGNvbnRleHRodWI7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBjb250ZXh0aHViCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuaCBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvQ29udGV4dGh1Yi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1ODc5MzAKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L0NvbnRleHRodWIuaApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9DT05URVhUSFVCX1YxXzBfQ09OVEVYVEhVQl9IXworI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0NPTlRFWFRIVUJfVjFfMF9DT05URVhUSFVCX0hfCisKKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL21hY3Jvcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvY29udGV4dGh1Yi8xLjAvSUNvbnRleHRodWIuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9jb250ZXh0X2h1Yi5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGNvbnRleHRodWIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RydWN0IENvbnRleHRodWIgOiBwdWJsaWMgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6SUNvbnRleHRodWIgeworICAgIENvbnRleHRodWIoKTsKKworICAgIFJldHVybjx2b2lkPiBnZXRIdWJzKGdldEh1YnNfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gcmVnaXN0ZXJDYWxsYmFjayh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElDb250ZXh0aHViQ2FsbGJhY2s+ICZjYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBzZW5kTWVzc2FnZVRvSHViKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQ29udGV4dEh1Yk1zZyAmbXNnKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IGxvYWROYW5vQXBwKHVpbnQzMl90IGh1YklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE5hbm9BcHBCaW5hcnkmIGFwcEJpbmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0cmFuc2FjdGlvbklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IHVubG9hZE5hbm9BcHAodWludDMyX3QgaHViSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBhcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHRyYW5zYWN0aW9uSWQpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFJlc3VsdD4gZW5hYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFwcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdHJhbnNhY3Rpb25JZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiBkaXNhYmxlTmFub0FwcCh1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBhcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB0cmFuc2FjdGlvbklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjxSZXN1bHQ+IHF1ZXJ5QXBwcyh1aW50MzJfdCBodWJJZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48UmVzdWx0PiByZWJvb3QodWludDMyX3QgaHViSWQpOworCisgICAgYm9vbCBpc0luaXRpYWxpemVkKCk7CisKK3ByaXZhdGU6CisKKyAgICBzdHJ1Y3QgQ2FjaGVkSHViSW5mb3JtYXRpb257CisgICAgICAgIHN0cnVjdCBodWJfYXBwX25hbWVfdCBvc0FwcE5hbWU7CisgICAgICAgIHNwPElDb250ZXh0aHViQ2FsbGJhY2s+IGNhbGxCYWNrOworICAgIH07CisKKyAgICBzdGF0dXNfdCBtSW5pdENoZWNrOworICAgIGNvbnN0IHN0cnVjdCBjb250ZXh0X2h1Yl9tb2R1bGVfdCAqbUNvbnRleHRIdWJNb2R1bGU7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQzMl90LCBDYWNoZWRIdWJJbmZvcm1hdGlvbj4gbUNhY2hlZEh1YkluZm87CisKKyAgICBzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiBtQ2I7CisgICAgYm9vbCBtSXNUcmFuc2FjdGlvblBlbmRpbmc7CisgICAgdWludDMyX3QgbVRyYW5zYWN0aW9uSWQ7CisKKyAgICBib29sIGlzVmFsaWRIdWJJZCh1aW50MzJfdCBodWJJZCk7CisKKyAgICBzcDxJQ29udGV4dGh1YkNhbGxiYWNrPiBnZXRDYWxsQmFja0Zvckh1YklkKHVpbnQzMl90IGh1YklkKTsKKworICAgIGludCBoYW5kbGVPc01lc3NhZ2Uoc3A8SUNvbnRleHRodWJDYWxsYmFjaz4gY2IsCisgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtc2dUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCAqbXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgaW50IG1zZ0xlbik7CisKKyAgICBzdGF0aWMgaW50IGNvbnRleHRIdWJDYih1aW50MzJfdCBodWJJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgaHViX21lc3NhZ2VfdCAqcnhNc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKTsKKworICAgIGJvb2wgc2V0T3NBcHBBc0Rlc3RpbmF0aW9uKGh1Yl9tZXNzYWdlX3QgKm1zZywgaW50IGh1YklkKTsKKworICAgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihDb250ZXh0aHViKTsKK307CisKK2V4dGVybiAiQyIgSUNvbnRleHRodWIgKkhJRExfRkVUQ0hfSUNvbnRleHRodWIoY29uc3QgY2hhciAqbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBjb250ZXh0aHViCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9DT05URVhUSFVCX1YxXzBfQ09OVEVYVEhVQl9IXwpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wLXNlcnZpY2UucmMgYi9jb250ZXh0aHViLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Njc3ZWMyCi0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGNvbnRleHRodWItaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmNvbnRleHRodWJAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGM2NzZiNAotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRleHRodWIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1Yi5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6SUNvbnRleHRodWI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElDb250ZXh0aHViPigpOworfQpkaWZmIC0tZ2l0IGEvY29udGV4dGh1Yi8xLjAvdHlwZXMuaGFsIGIvY29udGV4dGh1Yi8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5NTA2MjcKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA7CisKK2VudW0gUmVzdWx0IDogdWludDMyX3QgeworICAgIE9LLCAgICAgICAgICAgICAgICAgIC8vIFN1Y2Nlc3MKKyAgICBVTktOT1dOX0ZBSUxVUkUsICAgICAvLyBGYWlsdXJlLCB1bmtub3duIHJlYXNvbgorICAgIEJBRF9QQVJBTVMsICAgICAgICAgIC8vIFBhcmFtZXRlcnMgbm90IHNhbmUKKyAgICBOT1RfSU5JVCwgICAgICAgICAgICAvLyBOb3QgaW5pdGlhbGl6ZWQKKyAgICBUUkFOU0FDVElPTl9GQUlMRUQsICAvLyBUcmFuc2FjdGlvbiBmYWlsZWQKKyAgICBUUkFOU0FDVElPTl9QRU5ESU5HLCAvLyBQZW5kaW5nIHRyYW5zYWN0aW9uLCBjYW5ub3QgYWNjZXB0IGEgbmV3IHJlcXVlc3QKK307CisKK2VudW0gTmFub0FwcEZsYWdzIDogdWludDMyX3QgeworICAgIFNJR05FRCAgICA9IDEgPDwgMCwKKyAgICBFTkNSWVBURUQgPSAxIDw8IDEsCit9OworCitzdHJ1Y3QgTmFub0FwcEJpbmFyeSB7CisgICAgdWludDY0X3QgYXBwSWQ7ICAgICAgICAgICAgLy8gTmFub2FwcCBpZGVudGlmaWVyCisgICAgdWludDMyX3QgYXBwVmVyc2lvbjsgICAgICAgLy8gVmVyc2lvbiBvZiB0aGUgYXBwIChzZW1hbnRpY3MgZGVmaW5lZCBieSBhcHApCisgICAgYml0ZmllbGQ8TmFub0FwcEZsYWdzPiBmbGFnczsKKworICAgIC8vIFRoZSB2ZXJzaW9uIG9mIHRoZSBDSFJFIEFQSSB0aGF0IHRoaXMgbmFub0FwcCB3YXMgY29tcGlsZWQgYWdhaW5zdC4gU2VlCisgICAgLy8gdGhlIENIUkUgQVBJIGhlYWRlciBmaWxlIGNocmUvdmVyc2lvbi5oIGZvciBtb3JlIGluZm9ybWF0aW9uLiBUaGUgaHViCisgICAgLy8gaW1wbGVtZW50YXRpb24gbXVzdCB1c2UgdGhpcyB0byBjb25maXJtIGNvbXBhdGliaWxpdHkgYmVmb3JlIGxvYWRpbmcKKyAgICAvLyB0aGlzIG5hbm9BcHAuCisgICAgdWludDhfdCB0YXJnZXRDaHJlQXBpTWFqb3JWZXJzaW9uOworICAgIHVpbnQ4X3QgdGFyZ2V0Q2hyZUFwaU1pbm9yVmVyc2lvbjsKKworICAgIC8vIEltcGxlbWVudGF0aW9uLXNwZWNpZmljIGJpbmFyeSBuYW5vYXBwIGRhdGEuIFRoaXMgZG9lcyBub3QgaW5jbHVkZSB0aGUKKyAgICAvLyBjb21tb24gbmFub2FwcCBoZWFkZXIgdGhhdCBjb250YWlucyB0aGUgYXBwIElELCBldGMuLCBhcyB0aGlzIGRhdGEgaXMKKyAgICAvLyBleHBsaWNpdGx5IHBhc3NlZCB0aHJvdWdoIHRoZSBvdGhlciBmaWVsZHMgaW4gdGhpcyBzdHJ1Y3QuCisgICAgdmVjPHVpbnQ4X3Q+IGN1c3RvbUJpbmFyeTsKK307CisKK2VudW0gU2Vuc29yVHlwZSA6IHVpbnQzMl90IHsKKyAgICBSRVNFUlZFRCwKKyAgICBBQ0NFTEVST01FVEVSLAorICAgIEdZUk9TQ09QRSwKKyAgICBNQUdORVRPTUVURVIsCisgICAgQkFST01FVEVSLAorICAgIFBST1hJTUlUWV9TRU5TT1IsCisgICAgQU1CSUVOVF9MSUdIVF9TRU5TT1IsCisgICAgU1RBVElPTkFSWV9ERVRFQ1QsCisgICAgSU5TVEFOVF9NT1RJT05fREVURUNULAorCisgICAgR1BTID0gMHgxMDAsCisgICAgLy8gUmVzZXJ2aW5nIHRoaXMgc3BhY2UgZm9yIHZhcmlhbnRzIG9uIEdQUworCisgICAgV0lGSSA9IDB4MjAwLAorICAgIC8vIFJlc2VydmluZyB0aGlzIHNwYWNlIGZvciB2YXJpYW50cyBvbiBXSUZJCisKKyAgICBBVURJTyA9IDB4MzAwLAorICAgIC8vIFJlc2VydmluZyB0aGlzIHNwYWNlIGZvciB2YXJpYW50cyBvbiBBdWRpbworCisgICAgQ0FNRVJBID0gMHg0MDAsCisgICAgLy8gUmVzZXJ2aW5nIHRoaXMgc3BhY2UgZm9yIHZhcmlhbnRzIG9uIENhbWVyYQorCisgICAgQkxFID0gMHg1MDAsCisgICAgLy8gUmVzZXJ2aW5nIHRoaXMgc3BhY2UgZm9yIHZhcmlhbnRzIG9uIEJsdWV0b290aCBMb3cgRW5lcmd5CisKKyAgICBXV0FOID0gMHg2MDAsCisgICAgLy8gUmVzZXJ2aW5nIHRoaXMgc3BhY2UgZm9yIHZhcmlhbnRzIG9uIFdXQU4KKworICAgIFBSSVZBVEVfU0VOU09SX0JBU0UgPSAweDEwMDAwLAorICAgIC8vIFNlbnNvciB0eXBlcyBiZXlvbmQgUFJJVkFURV9TRU5TT1JfQkFTRSBhcmUgY3VzdG9tIHR5cGVzCit9OworCitzdHJ1Y3QgUGh5c2ljYWxTZW5zb3J7CisgICAgU2Vuc29yVHlwZSBzZW5zb3JUeXBlOyAgICAgICAvLyBGcm9tIHRoZSBkZWZpbml0aW9ucyBhYm92ZSBlZzogMTAwCisgICAgc3RyaW5nIHR5cGU7ICAgICAgICAgICAgICAgICAvLyBUeXBlIGFzIGEgc3RyaW5nLiBlZzogIkdQUyIKKyAgICBzdHJpbmcgbmFtZTsgICAgICAgICAgICAgICAgIC8vIElkZW50aWZpZXIgZWc6ICJCb3NjaCBCTUkxNjAiCisgICAgc3RyaW5nIHZlbmRvcjsgICAgICAgICAgICAgICAvLyBWZW5kb3IgOiBlZyAiU1RNIgorICAgIHVpbnQzMl90IHZlcnNpb247ICAgICAgICAgICAgLy8gVmVyc2lvbiA6IGVnIDB4MTAwMQorICAgIHVpbnQzMl90IGZpZm9SZXNlcnZlZENvdW50OyAgLy8gQmF0Y2hpbmcgcG9zc2libGUgaW4gaGFyZHdhcmUuIFBsZWFzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbm90ZSB0aGF0IGhlcmUgaGFyZHdhcmUgZG9lcyBub3QgaW5jbHVkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGNvbnRleHQgaHViIGl0c2VsZi4gVGh1cywgdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVmaW5pdGlvbiBtYXkgYmUgZGlmZmVyZW50IGZyb20gc2F5IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbnVtYmVyIGFkdmVydGlzZWQgaW4gdGhlIHNlbnNvcnMgSEFMCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBhbGxvd3MgZm9yIGJhdGNoaW5nIGluIGEgaHViLgorICAgIHVpbnQzMl90IGZpZm9NYXhDb3VudDsgICAgICAgLy8gTWF4aW11bSBudW1iZXIgb2YgYmF0Y2hhYmxlIGV2ZW50cy4KKyAgICB1aW50NjRfdCBtaW5EZWxheU1zOyAgICAgICAgIC8vIEluIG1pbGxpc2Vjb25kcywgY29ycmVzcG9uZGluZyB0byBoaWdoZXN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzYW1wbGluZyBmcmVxLgorICAgIHVpbnQ2NF90IG1heERlbGF5TXM7ICAgICAgICAgLy8gSW4gbWlsbGlzZWNvbmRzLCBjb3JyZXNwb25kcyB0byBtaW5pbXVtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzYW1wbGluZyBmcmVxdWVuY3kKKyAgICBmbG9hdCBwZWFrUG93ZXJNdzsgICAgICAgICAgIC8vIEF0IG1heCBmcmVxdWVuY3kgJiBubyBiYXRjaGluZywgcG93ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIG1pbGxpd2F0dHMKK307CisKK3N0cnVjdCBDb250ZXh0SHViIHsKKyAgICBzdHJpbmcgbmFtZTsgICAgICAgICAgICAgICAgLy8gRGVzY3JpcHRpdmUgbmFtZSBlZzogIkF3ZXNvbWUgSHViICMxIgorICAgIHN0cmluZyB2ZW5kb3I7ICAgICAgICAgICAgICAvLyBIdWIgaGFyZHdhcmUgdmVuZG9yIGVnOiAiUXVhbGNvbW0iCisgICAgc3RyaW5nIHRvb2xjaGFpbjsgICAgICAgICAgIC8vIFRvb2xjaGFpbiB0byBtYWtlIGJpbmFyaWVzIGVnOiAiZ2NjIEFSTSIKKyAgICB1aW50MzJfdCBwbGF0Zm9ybVZlcnNpb247ICAgLy8gVmVyc2lvbiBvZiB0aGUgaGFyZHdhcmUgOiBlZyAweDIwCisgICAgdWludDMyX3QgdG9vbGNoYWluVmVyc2lvbjsgIC8vIFZlcnNpb24gb2YgdGhlIHRvb2xjaGFpbiA6IGVnOiAweDQ4NAorICAgIHVpbnQzMl90IGh1YklkOyAgICAgICAgICAgICAvLyBBIGRldmljZSB1bmlxdWUgSUQgZm9yIHRoaXMgaHViCisKKyAgICBmbG9hdCBwZWFrTWlwczsgICAgICAgICAgICAgLy8gUGVhayBNSVBTIHBsYXRmb3JtIGNhbiBkZWxpdmVyCisgICAgZmxvYXQgc3RvcHBlZFBvd2VyRHJhd013OyAgIC8vIElmIHN0b3BwZWQsIHJldGVudGlvbiBwb3dlciwgbWlsbGl3YXR0cworICAgIGZsb2F0IHNsZWVwUG93ZXJEcmF3TXc7ICAgICAvLyBJZiBzbGVlcGluZywgcmV0ZW50aW9uIHBvd2VyLCBtaWxsaXdhdHRzCisgICAgZmxvYXQgcGVha1Bvd2VyRHJhd013OyAgICAgIC8vIEZvciBhIGJ1c3kgQ1BVLCBwb3dlciBpbiBtaWxsaXdhdHRzCisKKyAgICB2ZWM8UGh5c2ljYWxTZW5zb3I+IGNvbm5lY3RlZFNlbnNvcnM7IC8vIEFycmF5IG9mIGNvbm5lY3RlZCBzZW5zb3JzCisKKyAgICB1aW50MzJfdCBtYXhTdXBwb3J0ZWRNc2dMZW47Ly8gVGhpcyBpcyB0aGUgbWF4aW11bSBzaXplIG9mIHRoZSBtZXNzYWdlIHRoYXQgY2FuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJlIHNlbnQgdG8gdGhlIGh1YiBpbiBvbmUgY2h1bmsgKGluIGJ5dGVzKQorCisgICAgLy8gTWFjaGluZS1yZWFkYWJsZSBDSFJFIHBsYXRmb3JtIElELCByZXR1cm5lZCB0byBuYW5vYXBwcyBpbiB0aGUgQ0hSRSBBUEkKKyAgICAvLyBmdW5jdGlvbiBjYWxsIGNocmVHZXRQbGF0Zm9ybUlkKCkuIFRoaXMgZmllbGQgcGFpcnMgd2l0aAorICAgIC8vIGNocmVBcGlNYWpvclZlcnNpb24sIGNocmVBcGlNaW5vclZlcnNpb24sIGFuZCBjaHJlUGF0Y2hWZXJzaW9uIHRvIGZ1bGx5CisgICAgLy8gc3BlY2lmeSB0aGUgQ0hSRSBpbXBsZW1lbnRhdGlvbiB2ZXJzaW9uLiBTZWUgYWxzbyB0aGUgQ0hSRSBBUEkgaGVhZGVyCisgICAgLy8gZmlsZSBjaHJlL3ZlcnNpb24uaC4KKyAgICB1aW50NjRfdCBjaHJlUGxhdGZvcm1JZDsKKworICAgIC8vIFRoZSB2ZXJzaW9uIG9mIHRoZSBDSFJFIGltcGxlbWVudGF0aW9uIHJldHVybmVkIHRvIG5hbm9BcHBzIGluIHRoZSBDSFJFCisgICAgLy8gQVBJIGZ1bmN0aW9uIGNhbGwgY2hyZUdldFZlcnNpb24oKS4gVGhlIG1ham9yIGFuZCBtaW5vciB2ZXJzaW9uIHNwZWNpZnkKKyAgICAvLyB0aGUgaW1wbGVtZW50ZWQgdmVyc2lvbiBvZiB0aGUgQ0hSRSBBUEksIHdoaWxlIHRoZSBwYXRjaCB2ZXJzaW9uCisgICAgLy8gZGVzY3JpYmVzIHRoZSBpbXBsZW1lbnRhdGlvbiB2ZXJzaW9uIHdpdGhpbiB0aGUgc2NvcGUgb2YgdGhlIHBsYXRmb3JtCisgICAgLy8gSUQuIFNlZSBhbHNvIHRoZSBDSFJFIEFQSSBoZWFkZXIgZmlsZSBjaHJlL3ZlcnNpb24uaC4KKyAgICB1aW50OF90IGNocmVBcGlNYWpvclZlcnNpb247CisgICAgdWludDhfdCBjaHJlQXBpTWlub3JWZXJzaW9uOworICAgIHVpbnQxNl90IGNocmVQYXRjaFZlcnNpb247Cit9OworCitlbnVtIEhvc3RFbmRQb2ludCA6IHVpbnQxNl90IHsKKyAgICBCUk9BRENBU1QgPSAweEZGRkYsIC8vIFRoZSBtZXNzYWdlIGVuZHBvaW50IGlzIGEgYnJvYWRjYXN0IGVuZCBwb2ludC4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgdmFsdWUgbXVzdCBuZXZlciBiZSB1c2VkIGZvciBhIG1lc3NhZ2UgZnJvbQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGhvc3QgdG8gdGhlIGh1Yi4KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIEJST0FEQ0FTVCBpcyBzcGVjaWZpZWQgYXMgYSBkZXN0aW5hdGlvbiBmb3IgYQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWVzc2FnZSBmcm9tIHRoZSBjb250ZXh0IGh1YiB0byB0aGUgQ29udGV4dEh1YgorICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2VydmljZSwgdGhlIG1lc3NhZ2UgbXVzdCBiZSBicm9hZGNhc3QgdG8gYWxsCisgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWdpc3RlcmVkIGNsaWVudHMgYnkgdGhlIENvbnRleHQgSHViIHNlcnZpY2UuCisgICAgVU5TUEVDSUZJRUQgPSAweEZGRkUsIC8vIFRoZSBtZXNzYWdlIGVuZHBvaW50IGlzIHVuc3BlY2lmaWVkLiBUaGlzIHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG11c3Qgbm90IGJlIHVzZWQgZm9yIG1lc3NhZ2VzIGZyb20gdGhlIGh1YiB0byBob3N0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHZhbHVlIG1heSBiZSB1c2VkIGZvciBtZXNzYWdlcyBmcm9tIHRoZSBob3N0CisgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBodWIuCit9OworCitzdHJ1Y3QgQ29udGV4dEh1Yk1zZyB7CisgICAgdWludDY0X3QgYXBwTmFtZTsgICAgICAvLyBJbnRlbmRlZCByZWNpcGllbnQgKGFwcElkKQorICAgIHVpbnQxNl90IGhvc3RFbmRQb2ludDsgLy8gaWRlbnRpZmllciBmb3IgdGhlIGVuZHBvaW50LiAoYWxzbyBzZWUgZW51bSBIb3N0RW5kUG9pbnQpCisgICAgdWludDMyX3QgbXNnVHlwZTsgICAgICAvLyBJZGVudGlmaWVyIGZvciBtZXNzYWdlCisgICAgdmVjPHVpbnQ4X3Q+IG1zZzsgICAgICAvLyBNZXNzYWdlIGJvZHkKK307CisKK2VudW0gSHViTWVtb3J5VHlwZSA6IHVpbnQzMl90IHsKKyAgICBNQUlOICAgICAgPSAwLCAvLyBNYWluIG1lbW9yeQorICAgIFNFQ09OREFSWSA9IDEsIC8vIFNlY29uZGFyeSBtZW1vcnkKKyAgICBUQ00gICAgICAgPSAyLCAvLyBUaWdodGx5IGNvdXBsZWQgbWVtb3J5Cit9OworCitlbnVtIEh1Yk1lbW9yeUZsYWcgOiB1aW50MzJfdCB7CisgICAgUkVBRCAgPSAxIDw8IDAsIC8vIFJlYWRhYmxlCisgICAgV1JJVEUgPSAxIDw8IDEsIC8vIFdyaXRhYmxlCisgICAgRVhFQyAgPSAxIDw8IDIsIC8vIEV4ZWN1dGFibGUKK307CisKK3N0cnVjdCBNZW1SYW5nZSB7CisgICAgdWludDMyX3QgdG90YWxCeXRlczsgLy8gVG90YWwgY2FwYWNpdHkgaW4gYnl0ZXMKKyAgICB1aW50MzJfdCBmcmVlQnl0ZXM7ICAvLyBGcmVlIGNhcGFjaXR5IGluIGJ5dGVzCisgICAgSHViTWVtb3J5VHlwZSB0eXBlOyAgLy8gVHlwZSBvZiBtZW1vcnksIHNlZSBIdWJNZW1vcnlUeXBlCisgICAgYml0ZmllbGQ8SHViTWVtb3J5RmxhZz4gZmxhZ3M7Cit9OworCitlbnVtIEFzeW5jRXZlbnRUeXBlIDogdWludDMyX3QgeworICAgIFJFU1RBUlRFRCA9IDEsICAgLy8gSHViIHJlc3RhcnRlZCB1bmV4cGVjdGVkbHkKK307CisKK2VudW0gVHJhbnNhY3Rpb25SZXN1bHQgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTLCAgICAgIC8vIFN1Y2Nlc3NmdWwgY29tcGxldGlvbiBvZiB0cmFuc2FjdGlvbgorICAgIEZBSUxVUkUsICAgICAgLy8gRmFpbGVkIHRyYW5zYWN0aW9uCit9OworCitzdHJ1Y3QgSHViQXBwSW5mbyB7CisgICAgdWludDY0X3QgYXBwSWQ7ICAgICAgICAgLy8gSWRlbnRpZmllciBvZiB0aGUgYXBwCisgICAgdWludDMyX3QgdmVyc2lvbjsgICAgICAgLy8gVmVyc2lvbiBvZiB0aGUgYXBwCisgICAgdmVjPE1lbVJhbmdlPiBtZW1Vc2FnZTsgLy8gTWVtb3J5IHVzZWQgYnkgdGhpcyBhcHAKKyAgICBib29sIGVuYWJsZWQ7ICAgICAgICAgICAvLyB0cnVlIGlmIHRoZSBhcHAgaXMgY3VycmVudGx5IGVuYWJsZWQgYW5kIHJ1bm5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb3IgZmFsc2UgaWYgaW4gdGhlIGxvYWRlZCBidXQgZGlzYWJsZWQgc3RhdGUKK307CisKZGlmZiAtLWdpdCBhL2NvbnRleHRodWIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9jb250ZXh0aHViLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzNTM4NmQKLS0tIC9kZXYvbnVsbAorKysgYi9jb250ZXh0aHViLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzQgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxDb250ZXh0aHViVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbENvbnRleHRodWJWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQorCmRpZmYgLS1naXQgYS9jb250ZXh0aHViLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxDb250ZXh0aHViVjFfMFRhcmdldFRlc3QuY3BwIGIvY29udGV4dGh1Yi8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ29udGV4dGh1YlYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NjcyODI0Ci0tLSAvZGV2L251bGwKKysrIGIvY29udGV4dGh1Yi8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsQ29udGV4dGh1YlYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDM4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiY29udGV4dGh1Yl9oaWRsX2hhbF90ZXN0IgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2NvbnRleHRodWIvMS4wL0lDb250ZXh0aHViLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC9JQ29udGV4dGh1YkNhbGxiYWNrLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9jb250ZXh0aHViLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8Y2ludHR5cGVzPgorI2luY2x1ZGUgPGZ1dHVyZT4KKyNpbmNsdWRlIDx1dGlsaXR5PgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OkFzeW5jRXZlbnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6Q29udGV4dEh1YjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OkNvbnRleHRIdWJNc2c7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb250ZXh0aHViOjpWMV8wOjpIdWJBcHBJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6SUNvbnRleHRodWI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpjb250ZXh0aHViOjpWMV8wOjpJQ29udGV4dGh1YkNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Y29udGV4dGh1Yjo6VjFfMDo6TmFub0FwcEJpbmFyeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbnRleHRodWI6OlYxXzA6OlRyYW5zYWN0aW9uUmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2RlZmluZSBBU1NFUlRfT0socmVzdWx0KSBBU1NFUlRfRVEocmVzdWx0LCBSZXN1bHQ6Ok9LKQorI2RlZmluZSBFWFBFQ1RfT0socmVzdWx0KSBFWFBFQ1RfRVEocmVzdWx0LCBSZXN1bHQ6Ok9LKQorCituYW1lc3BhY2UgeworCisvLyBBcHAgSUQgd2l0aCB2ZW5kb3IgIkdvb2dUIiAoR29vZ2xlIFRlc3RpbmcpLCBhcHAgaWRlbnRpZmllciAweDU1NTU1NS4gVGhpcworLy8gYXBwIElEIGlzIHJlc2VydmVkIGFuZCBtdXN0IG5ldmVyIGFwcGVhciBpbiB0aGUgbGlzdCBvZiBsb2FkZWQgYXBwcy4KK2NvbnN0ZXhwciB1aW50NjRfdCBrTm9uRXhpc3RlbnRBcHBJZCA9IDB4NDc2ZjZmNjc1NDU1NTU1NTsKKworLy8gSGVscGVyIHRoYXQgZG9lcyBleHBsaWNpdCBjb252ZXJzaW9uIG9mIGFuIGVudW0gY2xhc3MgdG8gaXRzIHVuZGVybHlpbmcvYmFzZQorLy8gdHlwZS4gVXNlZnVsIGZvciBzdHJlYW0gb3V0cHV0IG9mIGVudW0gdmFsdWVzLgordGVtcGxhdGU8dHlwZW5hbWUgRW51bVR5cGU+Citjb25zdGV4cHIgdHlwZW5hbWUgc3RkOjp1bmRlcmx5aW5nX3R5cGU8RW51bVR5cGU+Ojp0eXBlIGFzQmFzZVR5cGUoCisgICAgRW51bVR5cGUgdmFsdWUpIHsKKyAgcmV0dXJuIHN0YXRpY19jYXN0PHR5cGVuYW1lIHN0ZDo6dW5kZXJseWluZ190eXBlPEVudW1UeXBlPjo6dHlwZT4odmFsdWUpOworfQorCisvLyBTeW5jaHJvbm91c2x5IHF1ZXJpZXMgSUNvbnRleHRodWI6OmdldEh1YnMoKSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0CitoaWRsX3ZlYzxDb250ZXh0SHViPiBnZXRIdWJzU3luYyhzcDxJQ29udGV4dGh1Yj4gaHViQXBpKSB7CisgIGhpZGxfdmVjPENvbnRleHRIdWI+IGh1Ykxpc3Q7CisgIHN0ZDo6cHJvbWlzZTx2b2lkPiBiYXJyaWVyOworCisgIGh1YkFwaS0+Z2V0SHVicyhbJmh1Ykxpc3QsICZiYXJyaWVyXShjb25zdCBoaWRsX3ZlYzxDb250ZXh0SHViPiYgaHVicykgeworICAgIGh1Ykxpc3QgPSBodWJzOworICAgIGJhcnJpZXIuc2V0X3ZhbHVlKCk7CisgIH0pOworICBiYXJyaWVyLmdldF9mdXR1cmUoKS53YWl0X2ZvcihzdGQ6OmNocm9ubzo6c2Vjb25kcygxKSk7CisKKyAgcmV0dXJuIGh1Ykxpc3Q7Cit9CisKKy8vIEdldHMgYSBsaXN0IG9mIHZhbGlkIGh1YiBJRHMgaW4gdGhlIHN5c3RlbQorc3RkOjp2ZWN0b3I8dWludDMyX3Q+IGdldEh1YklkcygpIHsKKyAgc3RhdGljIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiBodWJJZHM7CisKKyAgaWYgKGh1Yklkcy5zaXplKCkgPT0gMCkgeworICAgIHNwPElDb250ZXh0aHViPiBodWJBcGkgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJQ29udGV4dGh1Yj4oKTsKKworICAgIGlmIChodWJBcGkgIT0gbnVsbHB0cikgeworICAgICAgZm9yIChDb250ZXh0SHViIGh1YiA6IGdldEh1YnNTeW5jKGh1YkFwaSkpIHsKKyAgICAgICAgaHViSWRzLnB1c2hfYmFjayhodWIuaHViSWQpOworICAgICAgfQorICAgIH0KKyAgfQorCisgIEFMT0dEKCJSdW5uaW5nIHRlc3RzIGFnYWluc3QgYWxsICV6dSByZXBvcnRlZCBodWJzIiwgaHViSWRzLnNpemUoKSk7CisgIHJldHVybiBodWJJZHM7Cit9CisKKy8vIEJhc2UgdGVzdCBmaXh0dXJlIHRoYXQgaW5pdGlhbGl6ZXMgdGhlIEhBTCBhbmQgbWFrZXMgdGhlIGNvbnRleHQgaHViIEFQSQorLy8gaGFuZGxlIGF2YWlsYWJsZQorY2xhc3MgQ29udGV4dGh1YkhpZGxUZXN0QmFzZSA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgaHViQXBpID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUNvbnRleHRodWI+KCk7CisgICAgQVNTRVJUX05FKGh1YkFwaSwgbnVsbHB0cik7CisKKyAgICAvLyBnZXRIdWJzKCkgbXVzdCBiZSBjYWxsZWQgYXQgbGVhc3Qgb25jZSBmb3IgcHJvcGVyIGluaXRpYWxpemF0aW9uIG9mIHRoZQorICAgIC8vIEhBTCBpbXBsZW1lbnRhdGlvbgorICAgIGdldEh1YnNTeW5jKGh1YkFwaSk7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHNwPElDb250ZXh0aHViPiBodWJBcGk7Cit9OworCisvLyBUZXN0IGZpeHR1cmUgcGFyYW1ldGVyaXplZCBieSBodWIgSUQKK2NsYXNzIENvbnRleHRodWJIaWRsVGVzdCA6IHB1YmxpYyBDb250ZXh0aHViSGlkbFRlc3RCYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIDo6dGVzdGluZzo6V2l0aFBhcmFtSW50ZXJmYWNlPHVpbnQzMl90PiB7CisgcHVibGljOgorICB1aW50MzJfdCBnZXRIdWJJZCgpIHsKKyAgICByZXR1cm4gR2V0UGFyYW0oKTsKKyAgfQorCisgIFJlc3VsdCByZWdpc3RlckNhbGxiYWNrKHNwPElDb250ZXh0aHViQ2FsbGJhY2s+IGNiKSB7CisgICAgUmVzdWx0IHJlc3VsdCA9IGh1YkFwaS0+cmVnaXN0ZXJDYWxsYmFjayhnZXRIdWJJZCgpLCBjYik7CisgICAgQUxPR0QoIlJlZ2lzdGVyZWQgY2FsbGJhY2ssIHJlc3VsdCAlIiBQUkl1MzIsIHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKKyAgfQorfTsKKworLy8gQmFzZSBjYWxsYmFjayBpbXBsZW1lbnRhdGlvbiB0aGF0IGp1c3QgbG9ncyBhbGwgY2FsbGJhY2tzIGJ5IGRlZmF1bHQKK2NsYXNzIENvbnRleHRodWJDYWxsYmFja0Jhc2UgOiBwdWJsaWMgSUNvbnRleHRodWJDYWxsYmFjayB7CisgcHVibGljOgorICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYW5kbGVDbGllbnRNc2coY29uc3QgQ29udGV4dEh1Yk1zZyYgLyptc2cqLykgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJHb3QgY2xpZW50IG1lc3NhZ2UgY2FsbGJhY2siKTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFuZGxlVHhuUmVzdWx0KAorICAgICAgdWludDMyX3QgdHhuSWQsIFRyYW5zYWN0aW9uUmVzdWx0IHJlc3VsdCkgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJHb3QgdHJhbnNhY3Rpb24gcmVzdWx0IGNhbGxiYWNrIGZvciB0eG5JZCAlIiBQUkl1MzIgIiB3aXRoIHJlc3VsdCAlIgorICAgICAgICAgIFBSSWQzMiwgdHhuSWQsIHJlc3VsdCk7CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHZpcnR1YWwgUmV0dXJuPHZvaWQ+IGhhbmRsZUh1YkV2ZW50KEFzeW5jRXZlbnRUeXBlIGV2dCkgb3ZlcnJpZGUgeworICAgIEFMT0dEKCJHb3QgaHViIGV2ZW50IGNhbGxiYWNrIGZvciBldmVudCB0eXBlICUiIFBSSXUzMiwgZXZ0KTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFuZGxlQXBwQWJvcnQodWludDY0X3QgYXBwSWQsIHVpbnQzMl90IGFib3J0Q29kZSkKKyAgICAgIG92ZXJyaWRlIHsKKyAgICBBTE9HRCgiR290IGFwcCBhYm9ydCBub3RpZmljYXRpb24gZm9yIGFwcElkIDB4JSIgUFJJeDY0ICIgd2l0aCBhYm9ydCBjb2RlICIKKyAgICAgICAgICAiMHglIiBQUkl4MzIsIGFwcElkLCBhYm9ydENvZGUpOworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYW5kbGVBcHBzSW5mbyhjb25zdCBoaWRsX3ZlYzxIdWJBcHBJbmZvPiYgLyphcHBJbmZvKi8pCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkdvdCBhcHAgaW5mbyBjYWxsYmFjayIpOworICAgIHJldHVybiBWb2lkKCk7CisgIH0KK307CisKKy8vIFdhaXQgZm9yIGEgY2FsbGJhY2sgdG8gb2NjdXIgKHNpZ25hbGVkIGJ5IHRoZSBnaXZlbiBmdXR1cmUpIHVwIHRvIHRoZQorLy8gcHJvdmlkZWQgdGltZW91dC4gSWYgdGhlIGZ1dHVyZSBpcyBpbnZhbGlkIG9yIHRoZSBjYWxsYmFjayBkb2VzIG5vdCBjb21lCisvLyB3aXRoaW4gdGhlIGdpdmVuIHRpbWUsIHJldHVybnMgZmFsc2UuCit0ZW1wbGF0ZTxjbGFzcyBSZXR1cm5UeXBlPgorYm9vbCB3YWl0Rm9yQ2FsbGJhY2soCisgICAgc3RkOjpmdXR1cmU8UmV0dXJuVHlwZT4gZnV0dXJlLAorICAgIFJldHVyblR5cGUgKnJlc3VsdCwKKyAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzIHRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSkgeworICBhdXRvIGV4cGlyYXRpb24gPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArIHRpbWVvdXQ7CisKKyAgRVhQRUNUX05FKHJlc3VsdCwgbnVsbHB0cik7CisgIEVYUEVDVF9UUlVFKGZ1dHVyZS52YWxpZCgpKTsKKyAgaWYgKHJlc3VsdCAhPSBudWxscHRyICYmIGZ1dHVyZS52YWxpZCgpKSB7CisgICAgc3RkOjpmdXR1cmVfc3RhdHVzIHN0YXR1cyA9IGZ1dHVyZS53YWl0X3VudGlsKGV4cGlyYXRpb24pOworICAgIEVYUEVDVF9ORShzdGF0dXMsIHN0ZDo6ZnV0dXJlX3N0YXR1czo6dGltZW91dCkKKyAgICAgICAgPDwgIlRpbWVkIG91dCB3YWl0aW5nIGZvciBjYWxsYmFjayI7CisKKyAgICBpZiAoc3RhdHVzID09IHN0ZDo6ZnV0dXJlX3N0YXR1czo6cmVhZHkpIHsKKyAgICAgICpyZXN1bHQgPSBmdXR1cmUuZ2V0KCk7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgIH0KKworICByZXR1cm4gZmFsc2U7Cit9CisKKy8vIEVuc3VyZXMgdGhhdCB0aGUgbWV0YWRhdGEgcmVwb3J0ZWQgaW4gZ2V0SHVicygpIGlzIHNhbmUKK1RFU1RfRihDb250ZXh0aHViSGlkbFRlc3RCYXNlLCBUZXN0R2V0SHVicykgeworICBoaWRsX3ZlYzxDb250ZXh0SHViPiBodWJzID0gZ2V0SHVic1N5bmMoaHViQXBpKTsKKyAgQUxPR0QoIlN5c3RlbSByZXBvcnRzICV6dSBodWJzIiwgaHVicy5zaXplKCkpOworCisgIGZvciAoQ29udGV4dEh1YiBodWIgOiBodWJzKSB7CisgICAgQUxPR0QoIkNoZWNraW5nIGh1YiBJRCAlIiBQUkl1MzIsIGh1Yi5odWJJZCk7CisKKyAgICBFWFBFQ1RfRkFMU0UoaHViLm5hbWUuZW1wdHkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGh1Yi52ZW5kb3IuZW1wdHkoKSk7CisgICAgRVhQRUNUX0ZBTFNFKGh1Yi50b29sY2hhaW4uZW1wdHkoKSk7CisgICAgRVhQRUNUX0dUKGh1Yi5wZWFrTWlwcywgMCk7CisgICAgRVhQRUNUX0dFKGh1Yi5zdG9wcGVkUG93ZXJEcmF3TXcsIDApOworICAgIEVYUEVDVF9HRShodWIuc2xlZXBQb3dlckRyYXdNdywgMCk7CisgICAgRVhQRUNUX0dUKGh1Yi5wZWFrUG93ZXJEcmF3TXcsIDApOworCisgICAgLy8gTWluaW11bSAxMjggYnl0ZSBNVFUgYXMgcmVxdWlyZWQgYnkgQ0hSRSBBUEkgdjEuMAorICAgIEVYUEVDVF9HRShodWIubWF4U3VwcG9ydGVkTXNnTGVuLCBVSU5UMzJfQygxMjgpKTsKKyAgfQorfQorCitURVNUX1AoQ29udGV4dGh1YkhpZGxUZXN0LCBUZXN0UmVnaXN0ZXJDYWxsYmFjaykgeworICBBTE9HRCgiVGVzdFJlZ2lzdGVyQ2FsbGJhY2sgY2FsbGVkLCBodWJJZCAlIiBQUkl1MzIsIGdldEh1YklkKCkpOworICBBU1NFUlRfT0socmVnaXN0ZXJDYWxsYmFjayhuZXcgQ29udGV4dGh1YkNhbGxiYWNrQmFzZSgpKSk7Cit9CisKK1RFU1RfUChDb250ZXh0aHViSGlkbFRlc3QsIFRlc3RSZWdpc3Rlck51bGxDYWxsYmFjaykgeworICBBTE9HRCgiVGVzdFJlZ2lzdGVyTnVsbENhbGxiYWNrIGNhbGxlZCwgaHViSWQgJSIgUFJJdTMyLCBnZXRIdWJJZCgpKTsKKyAgQVNTRVJUX09LKHJlZ2lzdGVyQ2FsbGJhY2sobnVsbHB0cikpOworfQorCisvLyBIZWxwZXIgY2FsbGJhY2sgdGhhdCBwdXRzIHRoZSBhc3luYyBhcHBJbmZvIGNhbGxiYWNrIGRhdGEgaW50byBhIHByb21pc2UKK2NsYXNzIFF1ZXJ5QXBwc0NhbGxiYWNrIDogcHVibGljIENvbnRleHRodWJDYWxsYmFja0Jhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCBSZXR1cm48dm9pZD4gaGFuZGxlQXBwc0luZm8oY29uc3QgaGlkbF92ZWM8SHViQXBwSW5mbz4mIGFwcEluZm8pCisgICAgICBvdmVycmlkZSB7CisgICAgQUxPR0QoIkdvdCBhcHAgaW5mbyBjYWxsYmFjayB3aXRoICV6dSBhcHBzIiwgYXBwSW5mby5zaXplKCkpOworICAgIHByb21pc2Uuc2V0X3ZhbHVlKGFwcEluZm8pOworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICBzdGQ6OnByb21pc2U8aGlkbF92ZWM8SHViQXBwSW5mbz4+IHByb21pc2U7Cit9OworCisvLyBDYWxscyBxdWVyeUFwcHMoKSBhbmQgY2hlY2tzIHRoZSByZXR1cm5lZCBtZXRhZGF0YQorVEVTVF9QKENvbnRleHRodWJIaWRsVGVzdCwgVGVzdFF1ZXJ5QXBwcykgeworICBBTE9HRCgiVGVzdFF1ZXJ5QXBwcyBjYWxsZWQsIGh1YklkICV1IiwgZ2V0SHViSWQoKSk7CisgIHNwPFF1ZXJ5QXBwc0NhbGxiYWNrPiBjYiA9IG5ldyBRdWVyeUFwcHNDYWxsYmFjaygpOworICBBU1NFUlRfT0socmVnaXN0ZXJDYWxsYmFjayhjYikpOworCisgIFJlc3VsdCByZXN1bHQgPSBodWJBcGktPnF1ZXJ5QXBwcyhnZXRIdWJJZCgpKTsKKyAgQVNTRVJUX09LKHJlc3VsdCk7CisKKyAgQUxPR0QoIldhaXRpbmcgZm9yIGFwcCBpbmZvIGNhbGxiYWNrIik7CisgIGhpZGxfdmVjPEh1YkFwcEluZm8+IGFwcExpc3Q7CisgIEFTU0VSVF9UUlVFKHdhaXRGb3JDYWxsYmFjayhjYi0+cHJvbWlzZS5nZXRfZnV0dXJlKCksICZhcHBMaXN0KSk7CisgIGZvciAoY29uc3QgSHViQXBwSW5mbyAmYXBwSW5mbyA6IGFwcExpc3QpIHsKKyAgICBFWFBFQ1RfTkUoYXBwSW5mby5hcHBJZCwgVUlOVDY0X0MoMCkpOworICAgIEVYUEVDVF9ORShhcHBJbmZvLmFwcElkLCBrTm9uRXhpc3RlbnRBcHBJZCk7CisgIH0KK30KKworLy8gSGVscGVyIGNhbGxiYWNrIHRoYXQgcHV0cyB0aGUgVHJhbnNhY3Rpb25SZXN1bHQgZm9yIHRoZSBleHBlY3RlZFR4bklkIGludG8gYQorLy8gcHJvbWlzZQorY2xhc3MgVHhuUmVzdWx0Q2FsbGJhY2sgOiBwdWJsaWMgQ29udGV4dGh1YkNhbGxiYWNrQmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIFJldHVybjx2b2lkPiBoYW5kbGVUeG5SZXN1bHQoCisgICAgICB1aW50MzJfdCB0eG5JZCwgVHJhbnNhY3Rpb25SZXN1bHQgcmVzdWx0KSBvdmVycmlkZSB7CisgICAgQUxPR0QoIkdvdCB0cmFuc2FjdGlvbiByZXN1bHQgY2FsbGJhY2sgZm9yIHR4bklkICUiIFBSSXUzMiAiIChleHBlY3RpbmcgJSIKKyAgICAgICAgICBQUkl1MzIgIikgd2l0aCByZXN1bHQgJSIgUFJJZDMyLCB0eG5JZCwgZXhwZWN0ZWRUeG5JZCwgcmVzdWx0KTsKKyAgICBpZiAodHhuSWQgPT0gZXhwZWN0ZWRUeG5JZCkgeworICAgICAgcHJvbWlzZS5zZXRfdmFsdWUocmVzdWx0KTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIHVpbnQzMl90IGV4cGVjdGVkVHhuSWQgPSAwOworICBzdGQ6OnByb21pc2U8VHJhbnNhY3Rpb25SZXN1bHQ+IHByb21pc2U7Cit9OworCisvLyBQYXJhbWV0ZXJpemVkIGZpeHR1cmUgdGhhdCBzZXRzIHRoZSBjYWxsYmFjayB0byBUeG5SZXN1bHRDYWxsYmFjaworY2xhc3MgQ29udGV4dGh1YlR4blRlc3QgOiBwdWJsaWMgQ29udGV4dGh1YkhpZGxUZXN0IHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBDb250ZXh0aHViSGlkbFRlc3Q6OlNldFVwKCk7CisgICAgQVNTRVJUX09LKHJlZ2lzdGVyQ2FsbGJhY2soY2IpKTsKKyAgfQorCisgIHNwPFR4blJlc3VsdENhbGxiYWNrPiBjYiA9IG5ldyBUeG5SZXN1bHRDYWxsYmFjaygpOworfTsKKworCisvLyBDaGVja3MgY2FzZXMgd2hlcmUgdGhlIGh1YiBpbXBsZW1lbnRhdGlvbiBpcyBleHBlY3RlZCB0byByZXR1cm4gYW4gZXJyb3IsIGJ1dAorLy8gdGhhdCBlcnJvciBjYW4gYmUgcmV0dXJuZWQgZWl0aGVyIHN5bmNocm9ub3VzbHkgb3IgaW4gdGhlIGFzeW5jaHJvbm91cworLy8gdHJhbnNhY3Rpb24gY2FsbGJhY2suIFJldHVybnMgYW4gQXNzZXJ0aW9uUmVzdWx0IHRoYXQgY2FuIGJlIHVzZWQgaW4KKy8vIEFTU0VSVC9FWFBFQ1RfVFJVRS4gQWxsb3dzIGNoZWNraW5nIHRoZSBzeW5jIHJlc3VsdCBhZ2FpbnN0IDEgYWRkaXRpb25hbAorLy8gYWxsb3dlZCBlcnJvciBjb2RlIGFwYXJ0IGZyb20gT0sgYW5kIFRSQU5TQUNUSU9OX0ZBSUxFRCwgd2hpY2ggYXJlIGFsd2F5cworLy8gYWxsb3dlZC4KKzo6dGVzdGluZzo6QXNzZXJ0aW9uUmVzdWx0IGNoZWNrRmFpbHVyZVN5bmNPckFzeW5jKAorICAgIFJlc3VsdCByZXN1bHQsIFJlc3VsdCBhbGxvd2VkU3luY1Jlc3VsdCwKKyAgICBzdGQ6OmZ1dHVyZTxUcmFuc2FjdGlvblJlc3VsdD4mJiBmdXR1cmUpIHsKKyAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgLy8gTm8gZXJyb3IgcmVwb3J0ZWQgc3luY2hyb25vdXNseSAtIHRoaXMgaXMgT0ssIGJ1dCB0aGVuIHdlIHNob3VsZCBnZXQgYW4KKyAgICAvLyBhc3luYyBjYWxsYmFjayB3aXRoIGEgZmFpbHVyZSBzdGF0dXMKKyAgICBUcmFuc2FjdGlvblJlc3VsdCBhc3luY1Jlc3VsdDsKKyAgICBpZiAoIXdhaXRGb3JDYWxsYmFjayhzdGQ6OmZvcndhcmQ8c3RkOjpmdXR1cmU8VHJhbnNhY3Rpb25SZXN1bHQ+PihmdXR1cmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICZhc3luY1Jlc3VsdCkpIHsKKyAgICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKQorICAgICAgICAgIDw8ICJHb3Qgc3VjY2Vzc2Z1bCBzeW5jIHJlc3VsdCwgdGhlbiBmYWlsZWQgdG8gcmVjZWl2ZSBhc3luYyBjYiI7CisgICAgfSBlbHNlIGlmIChhc3luY1Jlc3VsdCA9PSBUcmFuc2FjdGlvblJlc3VsdDo6U1VDQ0VTUykgeworICAgICAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uRmFpbHVyZSgpCisgICAgICAgICAgPDwgIkdvdCBzdWNjZXNzZnVsIHN5bmMgcmVzdWx0LCB0aGVuIHVuZXhwZWN0ZWQgc3VjY2Vzc2Z1bCBhc3luYyAiCisgICAgICAgICAgICAgInJlc3VsdCI7CisgICAgfQorICB9IGVsc2UgaWYgKHJlc3VsdCAhPSBhbGxvd2VkU3luY1Jlc3VsdCAmJgorICAgICAgICAgICAgIHJlc3VsdCAhPSBSZXN1bHQ6OlRSQU5TQUNUSU9OX0ZBSUxFRCkgeworICAgIHJldHVybiA6OnRlc3Rpbmc6OkFzc2VydGlvbkZhaWx1cmUoKSA8PCAiR290IHN5bmMgcmVzdWx0ICIKKyAgICAgICAgPDwgYXNCYXNlVHlwZShyZXN1bHQpIDw8ICIsIGV4cGVjdGVkIFRSQU5TQUNUSU9OX0ZBSUxFRCBvciAiCisgICAgICAgIDw8IGFzQmFzZVR5cGUoYWxsb3dlZFN5bmNSZXN1bHQpOworICB9CisKKyAgcmV0dXJuIDo6dGVzdGluZzo6QXNzZXJ0aW9uU3VjY2VzcygpOworfQorCitURVNUX1AoQ29udGV4dGh1YlR4blRlc3QsIFRlc3RTZW5kTWVzc2FnZVRvTm9uRXhpc3RlbnROYW5vQXBwKSB7CisgIENvbnRleHRIdWJNc2cgbXNnOworICBtc2cuYXBwTmFtZSA9IGtOb25FeGlzdGVudEFwcElkOworICBtc2cubXNnVHlwZSA9IDE7CisgIG1zZy5tc2cucmVzaXplKDQpOworICBzdGQ6OmZpbGwobXNnLm1zZy5iZWdpbigpLCBtc2cubXNnLmVuZCgpLCAwKTsKKworICBBTE9HRCgiU2VuZGluZyBtZXNzYWdlIHRvIG5vbi1leGlzdGVudCBuYW5vYXBwIik7CisgIFJlc3VsdCByZXN1bHQgPSBodWJBcGktPnNlbmRNZXNzYWdlVG9IdWIoZ2V0SHViSWQoKSwgbXNnKTsKKyAgaWYgKHJlc3VsdCAhPSBSZXN1bHQ6Ok9LICYmCisgICAgICByZXN1bHQgIT0gUmVzdWx0OjpCQURfUEFSQU1TICYmCisgICAgICByZXN1bHQgIT0gUmVzdWx0OjpUUkFOU0FDVElPTl9GQUlMRUQpIHsKKyAgICBGQUlMKCkgPDwgIkdvdCByZXN1bHQgIiA8PCBhc0Jhc2VUeXBlKHJlc3VsdCkgPDwgIiwgZXhwZWN0ZWQgT0ssIEJBRF9QQVJBTVMiCisgICAgICAgIDw8ICIsIG9yIFRSQU5TQUNUSU9OX0ZBSUxFRCI7CisgIH0KK30KKworVEVTVF9QKENvbnRleHRodWJUeG5UZXN0LCBUZXN0TG9hZEVtcHR5TmFub0FwcCkgeworICBjYi0+ZXhwZWN0ZWRUeG5JZCA9IDAxMjM7CisgIE5hbm9BcHBCaW5hcnkgZW1wdHlBcHA7CisKKyAgZW1wdHlBcHAuYXBwSWQgPSBrTm9uRXhpc3RlbnRBcHBJZDsKKyAgZW1wdHlBcHAuYXBwVmVyc2lvbiA9IDE7CisgIGVtcHR5QXBwLmZsYWdzID0gMDsKKyAgZW1wdHlBcHAudGFyZ2V0Q2hyZUFwaU1ham9yVmVyc2lvbiA9IDE7CisgIGVtcHR5QXBwLnRhcmdldENocmVBcGlNaW5vclZlcnNpb24gPSAwOworCisgIEFMT0dEKCJMb2FkaW5nIGVtcHR5IG5hbm9hcHAiKTsKKyAgUmVzdWx0IHJlc3VsdCA9IGh1YkFwaS0+bG9hZE5hbm9BcHAoZ2V0SHViSWQoKSwgZW1wdHlBcHAsIGNiLT5leHBlY3RlZFR4bklkKTsKKyAgRVhQRUNUX1RSVUUoY2hlY2tGYWlsdXJlU3luY09yQXN5bmMocmVzdWx0LCBSZXN1bHQ6OkJBRF9QQVJBTVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworfQorCitURVNUX1AoQ29udGV4dGh1YlR4blRlc3QsIFRlc3RVbmxvYWROb25leGlzdGVudE5hbm9BcHApIHsKKyAgY2ItPmV4cGVjdGVkVHhuSWQgPSAxMjM0OworCisgIEFMT0dEKCJVbmxvYWRpbmcgbm9uZXhpc3RlbnQgbmFub2FwcCIpOworICBSZXN1bHQgcmVzdWx0ID0gaHViQXBpLT51bmxvYWROYW5vQXBwKGdldEh1YklkKCksIGtOb25FeGlzdGVudEFwcElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5leHBlY3RlZFR4bklkKTsKKyAgRVhQRUNUX1RSVUUoY2hlY2tGYWlsdXJlU3luY09yQXN5bmMocmVzdWx0LCBSZXN1bHQ6OkJBRF9QQVJBTVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLT5wcm9taXNlLmdldF9mdXR1cmUoKSkpOworfQorCitURVNUX1AoQ29udGV4dGh1YlR4blRlc3QsIFRlc3RFbmFibGVOb25leGlzdGVudE5hbm9BcHApIHsKKyAgY2ItPmV4cGVjdGVkVHhuSWQgPSAyMzQ1OworCisgIEFMT0dEKCJFbmFibGluZyBub25leGlzdGVudCBuYW5vYXBwIik7CisgIFJlc3VsdCByZXN1bHQgPSBodWJBcGktPmVuYWJsZU5hbm9BcHAoZ2V0SHViSWQoKSwga05vbkV4aXN0ZW50QXBwSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ItPmV4cGVjdGVkVHhuSWQpOworICBFWFBFQ1RfVFJVRShjaGVja0ZhaWx1cmVTeW5jT3JBc3luYyhyZXN1bHQsIFJlc3VsdDo6QkFEX1BBUkFNUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7Cit9CisKK1RFU1RfUChDb250ZXh0aHViVHhuVGVzdCwgVGVzdERpc2FibGVOb25leGlzdGVudE5hbm9BcHApIHsKKyAgY2ItPmV4cGVjdGVkVHhuSWQgPSAzNDU2OworCisgIEFMT0dEKCJEaXNhYmxpbmcgbm9uZXhpc3RlbnQgbmFub2FwcCIpOworICBSZXN1bHQgcmVzdWx0ID0gaHViQXBpLT5kaXNhYmxlTmFub0FwcChnZXRIdWJJZCgpLCBrTm9uRXhpc3RlbnRBcHBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ItPmV4cGVjdGVkVHhuSWQpOworICBFWFBFQ1RfVFJVRShjaGVja0ZhaWx1cmVTeW5jT3JBc3luYyhyZXN1bHQsIFJlc3VsdDo6QkFEX1BBUkFNUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2ItPnByb21pc2UuZ2V0X2Z1dHVyZSgpKSk7Cit9CisKKy8vIFBhcmFtZXRlcml6ZSBhbGwgU2luZ2xlQ29udGV4dGh1YlRlc3QgdGVzdHMgYWdhaW5zdCBlYWNoIHZhbGlkIGh1YiBJRAorSU5TVEFOVElBVEVfVEVTVF9DQVNFX1AoSHViSWRTcGVjaWZpY1Rlc3RzLCBDb250ZXh0aHViSGlkbFRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlZhbHVlc0luKGdldEh1YklkcygpKSk7CitJTlNUQU5USUFURV9URVNUX0NBU0VfUChIdWJJZFNwZWNpZmljVGVzdHMsIENvbnRleHRodWJUeG5UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXNJbihnZXRIdWJJZHMoKSkpOworCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICByZXR1cm4gUlVOX0FMTF9URVNUUygpOworfQorCmRpZmYgLS1naXQgYS9jb250ZXh0aHViL0FuZHJvaWQuYnAgYi9jb250ZXh0aHViL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxOWEzNwotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRleHRodWIvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL2N1cnJlbnQudHh0IGIvY3VycmVudC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTI1NGVkOQotLS0gL2Rldi9udWxsCisrKyBiL2N1cnJlbnQudHh0CkBAIC0wLDAgKzEsMTg4IEBACisjIERvIG5vdCBjaGFuZ2UgdGhpcyBmaWxlIGV4Y2VwdCB0byBhZGQgbmV3IGludGVyZmFjZXMuIENoYW5naW5nCisjIHByZS1leGlzdGluZyBpbnRlcmZhY2VzIHdpbGwgZmFpbCBWVFMgYW5kIGJyZWFrIGZyYW1ld29yay1vbmx5IE9UQXMKKworIyBIQUxzIHJlbGVhc2VkIGluIEFuZHJvaWQgTworCitmMjE5YzNiNWI4YzZjYjFkNjU5ZDRjNzMyOGY2NzI0NmFiZmUxYTg2MTNmNDY5ODI2ZmQzYjlhZDA5MDQxN2EyIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJRGV2aWNlCis0ZDU3OWNhZTFjZDg3YTc4M2ZkNDkyMzNlMTBjZTcyMGJhMTgzY2ZkMWQ1Y2NkODAxNDllNjlkZTVjMWM3MzYyIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJRGV2aWNlc0ZhY3RvcnkKKzIwM2UyM2YxODAxMTM5MGI4Y2QxMGMzMDNlMGMxNmM0ZWViYzhmYTE4N2U4MGU0MGQ2YmU0NjI0YzJiMDg0OGEgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OklQcmltYXJ5RGV2aWNlCithYWY5MzEyM2RlZWMzMzZlYjI0N2FkODA5OTg0OTQ2OWE1NDFjYTBjZjdjMjhjNWY1MzM2Y2ViZTFlZTg2NzQ4IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJU3RyZWFtCiswNDY4YzU3MjNiMGQ0NGM1YjQ1MWJkZmEwNjE1MzAwMGM2ZjM1MmZkMzMzNmUwYWQyNjk3MTI3YjA0Yjc2NmRmIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW9AMi4wOjpJU3RyZWFtSW4KKzcyOTZmNzA2NGZkM2FiMjQwODJiNDNhMWRhMzRjYzg3NjI2ODA2NTMxMGI3ODU0OTlmYmE1MTc4ZDA2MzY4MGEgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OklTdHJlYW1PdXQKKzE5ZDI0MWQ3MWMzZTExNDBhZmJhODE0MGRjYjU3NDQ4NDQ2MDI1YTVmYzAzNzM5Nzg4YzRjMjVlOWE5OGI2YzIgYW5kcm9pZC5oYXJkd2FyZS5hdWRpb0AyLjA6OklTdHJlYW1PdXRDYWxsYmFjaworYzg0ZGE5ZjU4NjA4NzIyN2RhYTNiOTZkNDJiNDU3NTMyNmJjY2ZkNWJjOGEyYTVhY2Y4NmQ3NzRmOGVhMjY0OCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvQDIuMDo6dHlwZXMKKzEzMDU3ODZjMDZlMjJiOWIyNGViZGUxMzYwNTRjYzgyN2I2M2M4NmQ4YmY0YTEzNmQ2ZjdmNTQ3NTJiODU2NmIgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOjp0eXBlcworZmE4ZmJhZTNkMWRhM2MyNjRlNGYzMTEwNzI4MDc2YWJjMDliNGU2NWYxMmFmNmFlMTM2MzY3MzI4ZGU5ODhhYiBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklBY291c3RpY0VjaG9DYW5jZWxlckVmZmVjdAorY2E0NzUyNTQ1ZDU0NTQ3ZmYwNjllYWUxNjFhZjc1NTBjYjVmNWE3ZThiNjAzMTZkZGQxMzJhMzA5MDZhNjhlNyBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklBdXRvbWF0aWNHYWluQ29udHJvbEVmZmVjdAorZDJiOGFmOTg4ZGM2NmY1MTRkODg2YmNlZTQ0YjQ0MGQ4MDM0YmMyYTc2MmY3MTYxNzE3ZWYzYzk1NjA3MzA2NyBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklCYXNzQm9vc3RFZmZlY3QKKzYxMWJjMDljNzVlNzk2ZjM1MTJiMWNhNmJlNTA4YjBhOWJhOTk2NzU5YjhhMmM2MDUwNzc4NGZmNTgwNzYyMjkgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJRG93bm1peEVmZmVjdAorMzZhNTczNjlkZmRjNzUxODBlOGI2NGFlODBiMTk3MGRiOGY2ZDkwODVkYmZmNmNhOTMxNzE1MDM4Y2MwNTZlMSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklFZmZlY3QKK2QyYWEyZGY2ZDE4OWM1ODBmNWJlODQ2MGZhMGZmNDEzNGQ5YzA1YTM4M2YzMjA0NjU5YmFlZTQyNmE2ZjBlZGYgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJRWZmZWN0QnVmZmVyUHJvdmlkZXJDYWxsYmFjaworMjE3ZjkxNjE5ODNhNDhkM2JmM2ZhZWIxNThmODY4YWE4YmYwY2UyNTg4OWU0ZWUzZDJiYWIxYTJlOGQzM2U3NyBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklFZmZlY3RzRmFjdG9yeQorYzJiMzhiYzA3OTkxZTg4MGM4M2NhOGNiODgxODE0MTFlZWVmNzA4YjhiOTM2YWVkZDJmMmUwYWNhZGU3ZGY2OSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklFbnZpcm9ubWVudGFsUmV2ZXJiRWZmZWN0CisyZmY5Zjk3MDRiZTVmMTY3NzQ1YjRkZTc5MGU5ZGFmYzNjYzQ3MTllMmY2ZTJlNTQ5NzA4NWU2Nzk4NTNjZmU3IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SUVxdWFsaXplckVmZmVjdAorYzMxNDQ3ZmIwMmRiYzhiNTZjMzU5OTQxZGFkMjJmNDE2NTExODYwMTczYzVjNWZkMjc4ZDFiZjIzMTJiMTNkZSBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmVmZmVjdEAyLjA6OklMb3VkbmVzc0VuaGFuY2VyRWZmZWN0Cis4MDQ4MzFjYTI1ODgwMmViM2ViNjVhMGE3YjVkNWUzZDM3ZDRhMTViYThjMjgzNmI0Mjc2ZWRhOThiNDdlMWQwIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SU5vaXNlU3VwcHJlc3Npb25FZmZlY3QKKzc3OGZkNWI5ODM3ZjQ4MWQ4ZTQ3NDI1YjNlMmEzYmQwYzYzNjJhMGI2ODcwMjkxNTE4ZTJkODYzNTMwZmRiNjEgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjpJUHJlc2V0UmV2ZXJiRWZmZWN0CitjOTNjYjI1YTFhOTJkMDdhYTgwYTYxN2MwMWU4ZDIyZmM5N2JmOGNlZmQzOTYyYjZhNWJlMzg2YWQ0NzA0ZDg5IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SVZpcnR1YWxpemVyRWZmZWN0Cis5MThmMzMxNzgwYzljN2IwNGYyMTUxYTJlNTYzYWFiMDg4MTk4ZWRlOGU2Zjg2NTMwMmViYWExMzkwNWJkOWNlIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMDo6SVZpc3VhbGl6ZXJFZmZlY3QKKzRjYWFkMDk5ZjhmYzAwMjYyYjZjMDNiYTQxMjcxODA4YjM3Y2VhOTBhYzk4YjUzNDI5OWJiZjRlZTgyM2FmMDIgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5lZmZlY3RAMi4wOjp0eXBlcworZjI5MDRhNGMxMDhhZDFiOTNlYjJmYTRlNDNiODJiZDAxY2UxZmYyNjE1NjMxNmU0OWQxZDlmYzgwZGZlY2FhZCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDo6SUV2c0NhbWVyYQorOTRjYmE2YWQwNGM4M2FhODQwZGUyZWQ1MmI3NGJhMjEyNmEyNmRkOTYwMjI1ZTYxYWMzNjcwMzMxNTI3OWE4MCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDo6SUV2c0NhbWVyYVN0cmVhbQorNWVhMzZmYjA0M2Q5ZTNiNDEzMjE5ZGUzZGZkN2IwNDZiNDhhZjRmZGEzOWYxNjdmMzUyODY1MmU5ODZjYjc2ZCBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUuZXZzQDEuMDo6SUV2c0Rpc3BsYXkKKzQzNjBlNDM5NmRlZTVhMzZkODU0M2UxMmIxYmJkZWI3NjU3MjRkZGRmMGRjYTAyMDRlYTFlOTQ5NmVkODQ0MWQgYW5kcm9pZC5oYXJkd2FyZS5hdXRvbW90aXZlLmV2c0AxLjA6OklFdnNFbnVtZXJhdG9yCiszYjE3YzFmZGZjMzg5ZTBhYmU2MjZjMzcwNTQ5NTRiMDcyMDExMjdkODkwYzJiYzA1ZDQ3NjEzZWMxZjRkZTRmIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS5ldnNAMS4wOjp0eXBlcworY2RlMDc4N2U0YmY0YjQ1MGE5Y2ViOTAxMWQyNjk4YzAwNjEzMjJlYjg4MjYyMWU4OWI3MDU5NGIwYjdjNjVjNSBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OklWZWhpY2xlCis4MGZiNDE1NmZhOTFjZTg2ZTQ5YmQyY2FiZTIxNTA3OGY2YjY5NTkxZDQxNmEwOWU5MTQ1MzJlYWU2NzEyMDUyIGFuZHJvaWQuaGFyZHdhcmUuYXV0b21vdGl2ZS52ZWhpY2xlQDIuMDo6SVZlaGljbGVDYWxsYmFjaworMjQ4MDA0ZjA4MzJiNDgxOTk1NThiZDVkMWFhY2MyOWU3ZTY0MjNkZDBmZjYwMTJiZTE0MmUyMzYyMWYwM2Y0YiBhbmRyb2lkLmhhcmR3YXJlLmF1dG9tb3RpdmUudmVoaWNsZUAyLjA6OnR5cGVzCisxZmJkYzFmODUyZjhiZDJlNGE2YzVjYjMwYWMyYjc4NjY4Yzk4ZGNlMTE4YTYxNzYyZDQwMzRhZTg1OWY0M2Q4IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OklCaW9tZXRyaWNzRmluZ2VycHJpbnQKK2FhYmI1YzNjNTg1NTkyZDcxZWU1N2I3NzI5OGMxNDk5M2Q3NzkxNGRkZWFhNjRiMmM1MTA5YTYwMmIwMmVhNDcgYW5kcm9pZC5oYXJkd2FyZS5iaW9tZXRyaWNzLmZpbmdlcnByaW50QDIuMTo6SUJpb21ldHJpY3NGaW5nZXJwcmludENsaWVudENhbGxiYWNrCisxZWM2MGQ0ZWZkZGFlOWE3YjI0NjkyNzhhNTc2OTY3YjQ3NTFlODhkZTViOGQ3ZTlkZjZlZmY2YmMwZGE3YmM5IGFuZHJvaWQuaGFyZHdhcmUuYmlvbWV0cmljcy5maW5nZXJwcmludEAyLjE6OnR5cGVzCiszNDdjZTc0NjgxNTYwNzU2N2Y1ZjNiNTNlNDgwMDk5OGNhNWFiOTM1NTE0MWYwODgwZmMwY2YwYzFmYzVjMzU1IGFuZHJvaWQuaGFyZHdhcmUuYmx1ZXRvb3RoQDEuMDo6SUJsdWV0b290aEhjaQorODM1ZjQxYmUyMjgxYmZiMjJmM2UzM2M2ZmE4NzBiZGU3YmMyMWUzN2U1Y2ZiYWY5YTM2ZmZmMTcwNjMyZjc1NCBhbmRyb2lkLmhhcmR3YXJlLmJsdWV0b290aEAxLjA6OklCbHVldG9vdGhIY2lDYWxsYmFja3MKK2E4ZGZkMGRiZTQ2M2EzY2RiY2YxZDk4NWIzOGEyOGIzZDkzYmEyYWU1YTFkMWRiNGFhZWY0YzM4YTU3ODFiOTEgYW5kcm9pZC5oYXJkd2FyZS5ibHVldG9vdGhAMS4wOjp0eXBlcworNzE5MmQ3NTZhZWJhMDBhYmEzMmY0NTA0OTgxZGY4MTcyZmZjYTgzZTIxMGM0ODM4ZGFiZjI5NWU1M2U5MzU5MCBhbmRyb2lkLmhhcmR3YXJlLmJvb3RAMS4wOjpJQm9vdENvbnRyb2wKK2NlYmFhODAzYjhlMzM4MDdhMGQ2OWY0NjY1MmI2NTBjY2I1NDllOGY5YjE5ZDZiZWNiYmYyNjY5MGU4MjhiNDkgYW5kcm9pZC5oYXJkd2FyZS5ib290QDEuMDo6dHlwZXMKK2E5OGQ0OWYyMzcxMmE3Y2MzMjdkMWUwNjAyZDA1ZjZmM2FkMzJjZmI1Yzc0NzExZDAwOWM3MjY2MTFlZTFjOTMgYW5kcm9pZC5oYXJkd2FyZS5icm9hZGNhc3RyYWRpb0AxLjA6OklCcm9hZGNhc3RSYWRpbworZWQ4MjU3OWMwYzE2NWZlYWExMmQwZTMzYzA2YjMzNDJhYjQxZWMwYTQzOTI0N2YyMDI3NzVlODM2OWU0NmVmNiBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDo6SUJyb2FkY2FzdFJhZGlvRmFjdG9yeQorZGE2YWIzMmVlMjc5M2QyYzg2ZDNiNjAzMDc1ZDUzODM4NTJiODlkN2VhYTIwMTg2MWFhMDQ3M2Q0MThmM2M3ZiBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDo6SVR1bmVyCiswNGQzY2EwMjJlMjVjMzA4ZDllZmQyZTdlYjc3YjNhN2EyMDY5MDdjZGMxYjllYTkzMjYzNDBiMzc3ODY4MTcyIGFuZHJvaWQuaGFyZHdhcmUuYnJvYWRjYXN0cmFkaW9AMS4wOjpJVHVuZXJDYWxsYmFjaworYmQ0MmM4ZDc4MzhjZmVkMTk5OGI0OWMzOTc0NWRlYzExNmQyZDZlZGMyYzExYTRjMDM5OWI4ZjNhMWQxNjU1YSBhbmRyb2lkLmhhcmR3YXJlLmJyb2FkY2FzdHJhZGlvQDEuMDo6dHlwZXMKKzgxMTY0MzIzMTE1ZDY1ODhlMjU5ZTgzMTlmZGRmNzQ4N2FkZmExZjQ5Y2U2MGY3ZTgwYmE3NGUwNzgzMzkyYTQgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuY29tbW9uQDEuMDo6dHlwZXMKK2MxNzA1ZTlkNjI0MzhhMWQ5NTUyNjk5NjVhZjkxNWFlMjhlNjkyYmQ0ODBhM2IxY2U2NzA1NmZlZjk5MmQ2MmYgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMDo6SUNhbWVyYURldmljZQorNzhlOWI0NGNmODY2MGJkYzFlOThkY2EwNzQ1MTgwNDE1MzgyNGVmY2QyOGRiMjA4YTYyZjVhZDcyOGY0NDA3NiBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wOjpJQ2FtZXJhRGV2aWNlQ2FsbGJhY2sKKzI4ZjAzODZiYTg2ZGRmNDFlNTNhODExN2I0OGEwMzI4ZDdhNGQyNTc0MjEzZTg5ZjRhMTA2MjM5OGEyNDQ1NjYgYW5kcm9pZC5oYXJkd2FyZS5jYW1lcmEuZGV2aWNlQDEuMDo6SUNhbWVyYURldmljZVByZXZpZXdDYWxsYmFjaworNGRiNDg0MzljZTlkZGU5N2YxY2ZiM2Q3NDA4ZjZjNzM3ZjYyMWFjMGY3NDk0YWVlYTM1ZWQ1OTliYzIzNTJhMyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMS4wOjp0eXBlcworYjMyZjlhZWFmMWM0NDIxOTVlYjA2ZmZjNzYwMDk2OGM5MTlkMDA1YjI3MTg4NzRmMDljNTcyODdmYWU1NTkxOCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjpJQ2FtZXJhRGV2aWNlCis2M2JmYzNkYTBmMmQyMzAxZjdhMDUwOGM3YzJiOWZmYzUyMWQ0ZDU0NWVlMDM3MThkYTcwZTlkNjI3M2IzYjIxIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLmRldmljZUAzLjI6OklDYW1lcmFEZXZpY2VDYWxsYmFjaworMGZhM2UxZTY0ODE5MjgzYjg3MzdmYzRlNWFiNzU5ZjBjYjRhYzFhOTk2ZThhNTFjYzRhYTgwMjVhNDU3MjA4ZSBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjpJQ2FtZXJhRGV2aWNlU2Vzc2lvbgorMDMwYmUzZDJiMTU5Y2JkZTc5MjA0ODU4MDcxNDBmNmI2MDY0ZWY0YTVkZTRhNDBhNmM0YmM4ZDJjNzJmN2NkMyBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5kZXZpY2VAMy4yOjp0eXBlcworNWJhNzk0N2NlZTUxNWQ3YTIzNTliZmNiZmI5Njc4YzFjM2E3NjhjMjg4NDcxOTE5YWMwOTViOTZhZTZmM2Q0MCBhbmRyb2lkLmhhcmR3YXJlLmNhbWVyYS5tZXRhZGF0YUAzLjI6OnR5cGVzCitmN2UyOTlkODUwMzNhYzUyZDEwOTVhMzU3ODRmY2ZlYWZmNDM2MDNmNThjNzUxZTQxNTNjODViYmFkZTNiMzMwIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNDo6SUNhbWVyYVByb3ZpZGVyCithNTAxY2ExYWVjZDA5ZjFiOWZkNzBhOWFmODQyMDU0MzBkYmQ0OWE4MDhlOGZhMzk1ZDM2M2I5OTAyZTZmNThjIGFuZHJvaWQuaGFyZHdhcmUuY2FtZXJhLnByb3ZpZGVyQDIuNDo6SUNhbWVyYVByb3ZpZGVyQ2FsbGJhY2sKKzdmNWZlOGY0ZjhhMjQwMzcxNTNjNTA0ZDhiNGQzMzEzYzJjZTMzZDgxYzhjNjlmZTUxOTRkZGQyZDQwODBlNzIgYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjA6OklTdXJmYWNlRmxpbmdlckNvbmZpZ3MKKzg3YmVhY2M0ODE4OTdjZjAyZmIxNjI4ZDc1ZTY4MTMzZGU2ZDc0ZDRjZmZlNTgyY2RhMmY1ZTE2YmRkNzQ1MTYgYW5kcm9pZC5oYXJkd2FyZS5jb25maWdzdG9yZUAxLjA6OnR5cGVzCithNWFlMGZlODY2N2YwYjFhZjA5YjEzZTcyZDI5NjAwZjRlYjM4NTNiMjU3MDc5YzQ1YTk5YjZmNGEzMzYwNjQ5IGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OklDb250ZXh0aHViCisyYWIzMDU0YzJkOTMwMmQ4NDE3ZWU3NDk1MzUzYTI4ODdmZTMzOGY5MTMyNzZmMmViNDFlODBmMTEzOTVlYzJlIGFuZHJvaWQuaGFyZHdhcmUuY29udGV4dGh1YkAxLjA6OklDb250ZXh0aHViQ2FsbGJhY2sKK2MzYjJiMzdkNTYxZDMxZWEwOTQ0MTFmMjUxYmY3M2JlYTMzNGY0ZmU4NDlhNDM5MGFlZjVlMjBiY2E2Y2FkYmEgYW5kcm9pZC5oYXJkd2FyZS5jb250ZXh0aHViQDEuMDo6dHlwZXMKK2RmMTc0YzE4NzFjODY0YjRjNzljYTlmNjRhYWU3OTM2ZDI0YTI3MmVjYTMxOTFhMzA0NThjYTJiNzA2ZGVjNzkgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjpJQ3J5cHRvRmFjdG9yeQorODM2MzllOTBjYWViOTk2YjAyNzRlNDIwZGUzY2Q1NTY3NzlkZTFjYTQ4NDY0YjY4ZWVlNzk5YmVmMzJiMzRjZCBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA6OklDcnlwdG9QbHVnaW4KKzE0NDBjZmZkZmFlYjEyODMwYWMxMGVlNmZmZGIwZjEwODNlNzAxMDU3YjgwNmRmMTFmYjQ3ODdiNGM5MWU3MTggYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjpJRHJtRmFjdG9yeQorNzhiYTMzYjEwOGY2MjBlNmEwZWVjMDFlZjY1NDU0N2U2OWE4NTc1NDU3OGVhNGM5ZWYwM2VjMjA1ZjE2MTIxYyBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA6OklEcm1QbHVnaW4KKzcwMWQ5ZTUxOTUyMTcyMzY0ZTRlYTcwZGI5YzM5N2YwOGMzYjQ1NzdiYTMzMDUxZjA1MGE2Y2RkNTMyZGUxYjQgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjpJRHJtUGx1Z2luTGlzdGVuZXIKKzQyMzhkNjJhZDkwZGY2M2FhMzM4YzZmMWI2MjY0YzA5YzVhMzcwNjk0NWQ1YzQ5ZDExODljMGJlMWRjOWU5NDIgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjp0eXBlcworZjA3YjFlZTNiYTExYTJmYzlmMjAwNDIxYjJlMWFmYjdjMTg1NGVlOTg3MDAwZTQ1Yzk4N2ZiOTUwNzc5NTA1NSBhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjA6OklEdW1wc3RhdGVEZXZpY2UKK2M5ZDMxOGRmNzkyMmJkZTNiMjY1OTI3YjUyMWZmNWE5NjUwMDI4MjZmYzBjYWJmY2FlZjUyYTU2NzYwZjJkMzQgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMDo6SUdhdGVrZWVwZXIKK2RhMTNiZDY5MjgyZmIyNzU3NjdhYmIxODcwNGM1N2ZmODAzOGU2YzEzOWFkMTcxNTdkYzcwMjgxMGY3MGQwNmEgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMDo6dHlwZXMKKzM3YzdkYTRmODIzZWM5NThkZmE5Yzk2MGUyZDM0MWM0OGY4NzdlMGJmYTc1OGYzZmE5ZTJkOWMxZTFiZDY2ZDkgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzCis3ZWM5YWZkYjk2NGJmYjgzNjk4NjY5MTNjYWYwMThmMjYzNjU5Mjg4NWJjYjU1OGE2NWRlMmM1NDM2YWI0ZjYwIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zc0NhbGxiYWNrCitkMTZlNmEzNTliZTY5NjNlYTc1M2Q3MTM4ZTg0ZWNmMmI5MzA1MjA5NzkzODkzOGM0ZDM2ZDdhNDdlYTJlMmFlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zc1JpbAorMmY5MDc3MDhkNzRkOTRiMWUxMjFlZDI3NjUxYzljNzJhZjY1OTUyZDM0N2I1OGZmMDdkYWM1ZDVkN2E3ZjY3OCBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJQUduc3NSaWxDYWxsYmFjaworNWFjN2VkYWQwNmQ3NjA2NGI4ODJiZTE2MWYzZjlkOTY5MmE5OTdlYzcyZTlmMzZhZGRiN2ZlODkxOGY0OTk5MiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zcworYjA1Yzk4M2M4N2MzMzc2ZTE0NTIyMzY4OGMzYjU0MWI1ZTExYjgyN2YyMTFlMzhkNWEzMWFmMWNhM2EyZTIyMiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0JhdGNoaW5nCis0OTgxZDJkMmM0ZTcyNWM3NTQ0YmUwOTU2MDk5YTkxZmM3YmJjODA0OGM1NjMzOTQxNTgwODNmZTkyNGU2NTFlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQmF0Y2hpbmdDYWxsYmFjaworM2NkMjJkOTJjYzFmOTM1MTUwYzUwNDgzMTBlODQ4ODZmMTRlZWQyNTU2ZThmMDA2MzY3MzNkMjA0MDQ1Y2M0ZiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0NhbGxiYWNrCisxNzUxODVhNWVkYTg3NDc2MTkzY2E1NDYxZGY3NWRkMTZkMzY2NjQ1OTFlODEzMDUzMGRkOGVmMGViMmRkZjZhIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQ29uZmlndXJhdGlvbgorNDU0MjEyMmI5NmZiZjI3MTAxY2I4MjIyYmFmYjc2ZTdjOGQwMzJkOTc3ZGQxMDU4ZWRkOGU1ODgxY2E1NzUyZiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0RlYnVnCitlNmRkMGM4NDE2ZTUyM2FiOWNiZDE0ZDU2YWI2ZjAxNjQ4MWE4YWVmM2JjOGE3NTAwNTExMjJkMzEwNzVmNmM3IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzR2VvZmVuY2VDYWxsYmFjaworZjkwZTRkZGM2NTI3MDYyOTlkOGUzZDhiYTE4ZTA3NDVjM2JhZTliZjRkMWJlNmJkMDZkOWMxZjUwZWM4ZDI4YSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0dlb2ZlbmNpbmcKKzllYTg5ODdiYjEwODljOGM1ZDdiNjc4NjY1NzViODY2ZWY1MTYwNDUwMjFkOWVmY2MzN2M2MzUyYmNlMDcyYTMgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NNZWFzdXJlbWVudAorY2YyMDQ5MjY3M2Q2YTQyM2U0YzJlODdmZGZiNWE0YzRhNjAyNDMxNzIxOTc4ZGI4NTJlMjQ2ZjI1OGUyNWVkYiBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc01lYXN1cmVtZW50Q2FsbGJhY2sKK2FmODVhYTBmNDhhZTk5YTM5ZjQ2ODhjMzQ0ZTQ0MTkzMDRmNjgxZjlhZjgxOGE1YzhkNzU5Mjg2ZmM0NDE4ZGUgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZQorNzZiMDg3NGVhNGMwNmIyOWY2NjQxOGM1OTgyMGY0Mjg2YjNiZTk2MjljZDg3MjkyM2QwZGZiYjYwMmNkNDMyZCBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2sKKzI0OGJjZjUxZGE0MjczZDY0ZjM2N2JmNjg3N2JhZWYyZmVlYWNhMzY1NDU5ODQyZmQzYzIxNGEyZGM2ZTAyMjQgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOaQorYzc4MWI3YjEyNWY2OGJlNWRiOGE4YzNkNDEyZDUyNmFjZGJkZjc3ZGNjNTkyYTRjMGVkNzBiOGNlNGZlNmM0OSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05pQ2FsbGJhY2sKK2MxMTQyNjU3ZGUxNmZkYjI5MmE1MDIzNzJmZTkzODYxNGQ2NTI3MGFiODM1OTIxN2Q2ZTEzNjA0ZmU0ZGJjYTQgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NYdHJhCitiZDM2NmI4M2Q4ZDU2NWQwZThiZmFiZmYzYWRmY2FiMDI1OWQ3NWI0ZTJhOWY4ZTFiOTFlMTFkMTU5M2EyZmZiIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzWHRyYUNhbGxiYWNrCis4ODFiYzJmOTQwMjY3ODRkMTk0Y2ZmYmZmMTY2YzZlOGJmOTExZGU0ZTAyYWJlOTZmYzdkODllYzc1YjA1NzRhIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzCisxNzk3MWViOGE0ODI4OTNkYWRjZmMxNmUwNTgzZjQ5MmQ0MmEwMzRlZjk1ZDliMGI3MDk0MTdhZjMwODM4Mzk2IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMDo6SUFsbG9jYXRvcgorNjBiZjQyYTQ4OThlNGZiNzBkYmQ3MjBiMjYzYWVhZmQ3ZjM1ZjVlMWE1ZWZmZWFiYjRkNWQ2NTk4NzhhNWYxOCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMDo6SUdyYXBoaWNCdWZmZXJQcm9kdWNlcgorYjhhNzU2MTdiOWVjMTJiZWE2NDFmM2E3M2Q0MDI1YTMzZThiOWEyZjkxNjlkZDQ2MDk0YWY1NmFkZjkyNDljNSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMDo6SVByb2R1Y2VyTGlzdGVuZXIKKzRmNmRlZGJjZGQyMWMzMDlkZmM2NTBhY2VhODFhMDk2ZDZiMjQyNDkzZmZlNDljOGQ2MWJkM2M0M2FhZDM1NGUgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOjp0eXBlcworYjNhYWM2YzM4MTdmMDM5OTY0ZmNkNjIyNjgyNzRiMzAzOWUxN2JkN2QwZDViNDBiNGQxZDFjN2IxOWExZjg2NiBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMTo6SUNvbXBvc2VyCitiMTlkMDBlYjhhOGIzYjAwMzRhMDMyMWYyMmU4ZjMyMTYyYmY0YzJhZWJiY2U2ZGEyMmMwMjVmNTZlNDU5ZWEyIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOjpJQ29tcG9zZXJDYWxsYmFjaworZTk5MjY4NGU2OTBkZmU2N2E4Y2JlYWI1MDA1YmZhM2ZhOWMyYmYzZDRiMGI3NTY1N2ZiMWYwYzJkNWRkMmJhZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMTo6SUNvbXBvc2VyQ2xpZW50CisxYzk4YzJmNTE1NDM0NTMxMmVjMDU0ODcxNzkyYTI5ODJlYzVmM2UyYmMyYWJmYjYxYTEwYzBiNTE3OTc4ZTIwIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOjp0eXBlcworYTY5NTg5ODU4OWUxZWYxNWIyYjI1MTBmMTFlZGQ2YWFmYWM5OTE4ZDljZjhkNzRiNGI2MTQzYjMwOWRlZTU0MiBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjA6OklNYXBwZXIKKzI4NTA3ZDM4NWEzZGQyMjRiZjNjMzJmMWJmZDlmOTYwOTJjNDcwMWI5YzFjYzY2Y2FhNTc4ZmMzZWZjOTc4NzcgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wOjp0eXBlcworOTFlMmJhMzgwNWM5MjNmMDFmYzEyMzFlYzlmZjgzODk0MmFlZTMzNDZmMmQ3NjE0ZWNjMGNhZWFkYmU1N2VkNCBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OklIZWFsdGgKKzEyNzVhYTJlODczMjkwOTEwMWIyNmFlYzQ5ZWQyMjg1NDg5ZTg5ZDk3Yjg2MTBhODkwOGI3ODY4ZTM1YTNjYzUgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcworM2E4ZDM5MjJlMDZlNmQ0ZjhlMGJlZmM2YmU3OGQwZTllMDdhZWQxNTg1YjNkYTY1MjFiZWQ0MDZkMjVhOTQ4MyBhbmRyb2lkLmhhcmR3YXJlLmlyQDEuMDo6SUNvbnN1bWVySXIKKzcwOTBiZDM3OTEyZmNmNzIzYTEyZjRiYzE3NzgzZTM1Mjc1NzdjNDk0NDgwNWEwMjhjMjk2ZmQ3YTk1YmQ2ODIgYW5kcm9pZC5oYXJkd2FyZS5pckAxLjA6OnR5cGVzCitjYzc5MjVhNzhjMGFiMDIyNTE1ZjQ4ODQwZDNkYWU3NmYzODRlZDNhMTI4N2FiYWRjYjQ2MWE1Y2Q1Mzk2MTYzIGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMDo6SUtleW1hc3RlckRldmljZQorODIyOTk4ZDdiYjc2ZjBjZDcxOWE0MDkyOTE0MzRmY2I1NmU2ZDUwYmM0NzgwNzg4YmIxNTdhMzM3NGQ2M2I4YyBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjA6OnR5cGVzCitkNGVkMmYwZTE0ZjllOTE0ZDBiMTI3NWQyZTAzNjMxOTJmZTMwYWNhOTA1OWM4NGVkYjVmYWQxNTk5NWY5ZWM0IGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjpJTGlnaHQKK2Q5NTg0YmZjYWVkZDZlNjJjZjMzNzg4MTc0ODI0NmIyM2UzNmNiYzJiYzNhYTg0YzAxYjZhMWU2MjIwNjE0MDAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzCisxNmMwY2YwZjczZGUxZTUyMDhhOTUwMjBjNmM2NDc0OTAzZTcwOTRmNzZiMmQ3ODI2NTFhZmFjYTBlNWZkODZmIGFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wOjp0eXBlcworOGJjMmY1ZmRjYWQ2ODg1NmViNjFhNjJmZTRjYzA0M2ZhMDY0YmI3ZjFkYWI5NWE3MWQxOTE4ZWMxZWVmN2I1NSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklHcmFwaGljQnVmZmVyU291cmNlCiswZDNkZTljZDg5ZDQ3MThlYTNiNzcyZjJkOGI5M2JlMDA0ZmViM2FiYjdlN2RjNTQwMmUzNzA0N2NjNzMwZDA1IGFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMDo6SU9teAorMzIwMDJlMWMzNThjNjRkZTEwNmM5NzdhNmRjNmFmN2RhMjdiZTQ4MDNhNWJiNjZmZDZmODkxYTViYTBhMTYxNyBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklPbXhCdWZmZXJTb3VyY2UKKzgxYWQ4ZDhiYjFjZjZmNDE5MjNjZjExZGQzOTM1NGE4ZmU0MzNkYjI4NGEyMzRjYzY3NWRlN2U3NWE4MjIyNGMgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOjpJT214Tm9kZQorNDk0YzBjOGJmNjA2NWVkYzgyZWMxMjcyMjhlZDE5ZGQyMjQzZGMxYzJmN2Q2MDFjN2M2YmU3YjcwMTVjMTcxMyBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklPbXhPYnNlcnZlcgorMjUyYzJmYzUwYzc4ZmQ2ZGU4MzY1ZTViNjBlNTExNTExOWFjZTEwN2RiMGI5NGIwYjI2ODE1Y2JmM2QyYjY0YSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OklPbXhTdG9yZQorMTQ4YzFiNTBiMDk1ODk4ODM3MzE0NWZmZGY1ZmEwZTFiNjUzNGUwYTIwMzRhNTcwZTc0YjE1YzEyN2NmN2M1ZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA6OnR5cGVzCitjNjY5MDJmZTQ4ZDY4N2FjNjc0MGEzZTMyYWU1NWZiNzU1MzJjNDhjMzZjNjM4NjQ2MWMyYjQ0MTZhZDJlMGYxIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjpJTWVtdHJhY2sKKzg2MGJhY2Q4YjExYTI2OWM0MDU2NzU0MmI2MTNmZTRjYTQ0OGQ1Y2I0MzI2ZDAwNTg4OTllNjA4ZTg5ZGZjYTEgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA6OnR5cGVzCiswN2FjMmRjOTUyNzAzMjFlYzdkNGMzM2NkMjVlNTA4NWEwNTdmNDdmZTM1MGQ2NDVhZjZmN2E3YTExZTNjZjU3IGFuZHJvaWQuaGFyZHdhcmUubmZjQDEuMDo6SU5mYworZjJmZTU0NDI2YzA3ZDY3Mzg4ZDQ3NzRhNjA2NDFhZDRjMDUzOGYyMmViNmUxMTExNzIyZjIzMTc3MjY1NWRlNiBhbmRyb2lkLmhhcmR3YXJlLm5mY0AxLjA6OklOZmNDbGllbnRDYWxsYmFjaworOTYyNmZkMThkYjExM2Q3MDlmYWY1OTNhNzBjYWYxOWJkMDk4MDI5NGQyM2M0NjhjODBjMzAxODZmOWQyOThhNiBhbmRyb2lkLmhhcmR3YXJlLm5mY0AxLjA6OnR5cGVzCitkZWVlMWRjNDk0OGYzM2FmMjA3ZTEwMDhhYmEwZjZjYzA3YWZiNzkwMGVhYjUzZjMzMTkyYzhjYWMxMzdlZWZjIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjpJUG93ZXIKK2VmYzgzZGYzZjk2MmI5M2M3YzAyOTBkNjkxZDdkMzAwZGFiZTEyNjgzZTJjZGUzNTkxZmIzYzBiZWVkY2UyMGYgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzCis5YjVhYTQ5OWVjM2I0MjI2ZjE1ZjQ4ZjVlZDA4ODk2ZTJmYzA2NzZmOTc4YzllMTk5YzFkYTIxZGFhZjAwMmE2IGFuZHJvaWQuaGFyZHdhcmUucmFkaW9AMS4wOjpJUmFkaW8KKzVjOGVmYmI5YzQ1MWE1OTczN2VkMmM2YzIwMjMwYWFlNDc0NTgzOWNhMDFkODA4OGQ2ZGNjOTAyMGU1MmQyYzUgYW5kcm9pZC5oYXJkd2FyZS5yYWRpb0AxLjA6OklSYWRpb0luZGljYXRpb24KK2M1ZjIyMjY0YTMxNTYyZTAwOWJiMjg0Mjg3MDUxYjc5OThmYzQ2Y2QzMjk0ZGY2MWM5ZTZhMWQ2MjIxODQ5OTMgYW5kcm9pZC5oYXJkd2FyZS5yYWRpb0AxLjA6OklSYWRpb1Jlc3BvbnNlCitkZTNhYjlmNzNiMTA3M2NkNjc3YjE5ZDg4NmZiOTI3ZTkzODFiMzAxNjFhNzA0NzEyZDJiMzBmODc1ODczZjVjIGFuZHJvaWQuaGFyZHdhcmUucmFkaW9AMS4wOjpJU2FwCitkMTgzZTQwNmVmMDg5N2RmMjExN2E5ZGRlMzg0ZThlNmVhNGZhNmFiMWM3ZjZmMjhlNjViODcwMTEyMThjOWVhIGFuZHJvaWQuaGFyZHdhcmUucmFkaW9AMS4wOjpJU2FwQ2FsbGJhY2sKKzk2OTg2ZmJkMjJmMGU2Y2E3NTJlMWZjZGMwYTY0YmRhMjEzOTk1YTgxZjVmMzZiYzRmYWYzNTMyZDkzMDZiOTcgYW5kcm9pZC5oYXJkd2FyZS5yYWRpb0AxLjA6OnR5cGVzCiswMGY3MDA4NWQ2ZmFlMWQ0ODJmYjcwMGEzZmQ0MmVkNDc1Mzg0Yzk1YjUxYzkyNjliOWFlNTAzN2I3NGFkNGRkIGFuZHJvaWQuaGFyZHdhcmUucmFkaW8uZGVwcmVjYXRlZEAxLjA6OklPZW1Ib29rCiswNjgzN2I2ZDdlODQzY2ZhOWNkMjBmZWQ0MDcwZmVjYTdhOWI1YzgxYTllZDY0M2JmN2QwNjgwMzQ1NWE5ODE2IGFuZHJvaWQuaGFyZHdhcmUucmFkaW8uZGVwcmVjYXRlZEAxLjA6OklPZW1Ib29rSW5kaWNhdGlvbgorNmZkNDg3NGYwZWRkZDQ2MjZhMjc2NThmZDk0ZmFkNTI2YzMxN2YzNTYzNDM5ZTc5NzE4YmRiMWEzYTIzMDlkNSBhbmRyb2lkLmhhcmR3YXJlLnJhZGlvLmRlcHJlY2F0ZWRAMS4wOjpJT2VtSG9va1Jlc3BvbnNlCis2OTgzYTJjYWZlMzlkNWM1N2RmZGMxNzQzMDU1ZmIwZjc1N2EwZGY4Yzc4ZTAwNDIzZDVlMTgxMDgzNjkyN2UxIGFuZHJvaWQuaGFyZHdhcmUucmVuZGVyc2NyaXB0QDEuMDo6SUNvbnRleHQKKzdmOTQxN2EwY2NmNzhlYTA0MmVjN2E4YWM4ZTM3NTAzNDZkNGQ5ZDdlNWFlMDFiMWIzNWZkZTMwM2Y0N2MyNGQgYW5kcm9pZC5oYXJkd2FyZS5yZW5kZXJzY3JpcHRAMS4wOjpJRGV2aWNlCitmYzZmMzI1YjI2NmIzMjM1M2Y3ZDE1MzRmYmU1OGUwZDM2ODI2NWExMmI3N2ZhMzk2ZmI1NTZlOGM0NDNmNzM5IGFuZHJvaWQuaGFyZHdhcmUucmVuZGVyc2NyaXB0QDEuMDo6dHlwZXMKKzg5NTg1ZmY1NDFjMzE5ZGU0MDkxYTVhMGI2ODdkZDUyNmFjODFjNjM4MmZmZDdiOTc5YTQxNjRiM2Q3NDE5YTYgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMDo6SVNlbnNvcnMKK2UwNGFiOTc4ZmMyOGY0YzUxNWY0YTc1NjE3ZGZkYTg2MDc3MzNhNjRmMTM2NjZiZWViMGU2MDRhMDdhMzkzMzMgYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMDo6dHlwZXMKKzViZWZjMDE5Y2JlOTQ5NTM2NjFlMmNkYjk1ZTNjZjY0ZjVlNTY1YzI5NDAzZTFjMmRhZWNjMmJlNDRlMGE1NWMgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wOjpJU291bmRUcmlnZ2VySHcKK2Q3ZWM1ZjYxMmE1ZTBhNTllYTRmMmI2MTMxN2UyMDhmZjU2ZGQ1MDkyMGZkNGViNDQxZTBjYmM4Zjk3ZTRmNDkgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wOjpJU291bmRUcmlnZ2VySHdDYWxsYmFjaworNWJlZTllNzBmN2U1ZWM3ZWUyNTI4ODNiMjhmOThmMTJiNTk5NjBmNGMyYTBiNGNjOWE0NTI2ZTQ2NjllYmNkNCBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjA6OnR5cGVzCis5N2YxZWM0NDYwNDNiYzVhNjY0NWI3NDUyOWE2Mjc2NDk2YmRiMzVlMGFlZTQxZWRhNTVjYjkyZDUxZWI3ODAyIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OklUaGVybWFsCis4NDk2NWE2OTA4YmNlYjRlZjUxNTQ2YmY4NzMxZjMwOWYxZWE5ZDA5YTAxNzdkY2M3OTc0MTMyZTUyM2RkNmQyIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzCis5Mzg4NTA2MjFjM2M1ZWY0MjZhNGI4OGU3NTJiYTk5YjM1NTkwMzdlNzgyYTNkOTM4NjA0ZjNhZWY1Y2MwZjFiIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6SUhkbWlDZWMKK2U3NWI2ZWVhNzExZDM2ZmFjNjc4YmNlMDcyYjNjZWM2NTQ0YjI3ZmE5ZjRjZDkwMzk5OTQwNGU1YzExMGNhMTAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjpJSGRtaUNlY0NhbGxiYWNrCis2ZTI1ZjhkYmZhZGI2NjhlMWQ0ZWM4MGViOWFjZDk1ZDhiYzllMGEyNDBjMzZkMjdlNjYyYWRiNDQwMzE0Yjk1IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMKKzBjYWZhM2M4Mzg4ZTk2MzE5MTZkMmQ4MDBmNzhkZWNiY2VjMjkwNGYxMTQxNWIzMmM3MWEzMWQ5YTUxZWJmNzkgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjA6OklUdklucHV0CitkZWU4M2U1Yzg2NGZiYmVlOGYwMjQ0OGQwODAwYmUzMmYwNjg1NjM4NmI5ZjkwN2JjNWQ5NTIyMDhjOTQzNGY5IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOjpJVHZJbnB1dENhbGxiYWNrCiswN2FhYjMwNDEwYjYxMjM4MTIzNGRjYTZkNDUzZDRhYjk2ZjJlNTM2MzY4NzE1NzE3YzZlMjgxMDFiOTg1MWI1IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOjp0eXBlcworNGVmNTc0OTkyNzNmMzhiZGJkZDBjMTVlNTZlZTdhNGJjNWYxOGE1NjQ0MDkyMTcwYTUzMWRmMzU0MWQ5ZTAxNSBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OklVc2IKKzRiZTc4ODFlNDExYmE0Mjc4NGJmNWI3MzU0YzE0YWUwY2YxNjEwMDRkMzk0MzNhYWVjYWFiMGQxOWVhOTkzNTQgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjpJVXNiQ2FsbGJhY2sKK2Y3ZTZlNzQ3OTEwYTNjZDBhMzU4NDYxNDFlM2I5OTBhNmE2MTJhMjk3YjJiNzBjY2Q1NzQwYjY0NmE0NTBhOGMgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcworMDZlYTY0Y2MzNTY1Nzc3ZjNiMjU5ZTQwMGZmYTcxMDBkMDdmMzgyN2FkOTM1N2IwYzVkM2M2NTEzODRlNTU1MyBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDo6SVZpYnJhdG9yCiswZmVjZDM0YWU2NGYzMmVmZjZhYTYxNWZkNjYyMzQ5MjQyYzBiOGI2ZTMwM2VmMDVhN2NiNTc3NmM3MzJmNDEzIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjp0eXBlcworNGI5NjI5NjhhN2RmNGFiMTA0ZDEzMTVkNjZhMGE3MzQ4YTcxM2ZlY2JiNWQyYzFiMjM2ODg0OTQ0NThmMzdjZSBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMDo6SVZyCitiOWJlMzY3MTlhOGFkNTM0MDAwYTUxZWEwN2JlOTFiZTk0YzQwNWJmMWUwMzhhZTgyNWFjZjY1MDg3ZmZkMzc4IGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpCitlZTAyMjRlZTE4ODEzNTA2ZDlkNmYxM2Q4YzhlNDY3OWYwNTNjMjkwYTQ0M2E1MmE3YzUyYTVkM2M4NTIyNjJiIGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpQXBJZmFjZQorZjNlZWNjNDg5ZGViNGM3NDg5MmY1OWViN2FkYjc2OTA2M2JkNWMzNTRhYzEzMmI2MjZhNWY0MmIzNjNkMzZiYyBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaUNoaXAKK2ExYjk4ODM3NzY0NWE1OGU1ZTI1NDJjYTJiYWQ0ZTE3YzIxYTRhMzg5MjEzZDA1ZGUyZjBlMzJkNTdiN2QzMzkgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlDaGlwRXZlbnRDYWxsYmFjaworNWVkNjc2MGNlNzdlODRiYzZjNDlkMWFjYjNmN2Q4MTE3YzkxNzZiM2YwNjUxNGJjNDRhZDNhZjg0YzgwZGNmZSBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaUV2ZW50Q2FsbGJhY2sKKzZiOWFkNDNhNWVmYmU2Y2EyMTRmNzUxZTIyY2U0M2NmNWNkNGQ1ZDVmMmNiYTgwZjI0Y2NkMzc1NWE3MjQwMWMgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlJZmFjZQorYmE1YWE3NGYxYmE3MTRmMDA5Mzg2NDIyNzkyMzQ5MjgwODc5NWJkYTYxOTljNGVhMDg5MTMyMmQyN2Y4YzkzMSBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaU5hbklmYWNlCiszMjVjOTRmM2UxYTU2NWI1NmJiYzc0ZmFkZGJkMGJhN2NiODI0ZjI2M2RjY2Y5ZGZmZjJkYWY2MmI4NmVkNzc0IGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpTmFuSWZhY2VFdmVudENhbGxiYWNrCitjMmMzZjAzNzJiNDE3ODBmYjZkZmU4M2MwMjIyOTY4MDZjMjAyNGQ3MDQ2NjgyZmQyMDFkZTVhYTliNzkxYzdhIGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpUDJwSWZhY2UKKzc2NmU5NzY1ZjVjOWM3NTliMmE3NjNjMjI4ODM1M2ZiNWRlZmYzMzg5YzJjYzI4ZjgxZDc5YzkzOTcwNGNlOGIgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlSdHRDb250cm9sbGVyCis3MmFiNmYzZTEyMGNiZjA3YWE2ZjhlODdjYTg5MTEyYmRlYjM2YjdmYmI5NmJjZTVhZjM3MTIzMjNhYjhiOGU2IGFuZHJvaWQuaGFyZHdhcmUud2lmaUAxLjA6OklXaWZpUnR0Q29udHJvbGxlckV2ZW50Q2FsbGJhY2sKKzNiODA5M2QzOWVmMWUxMGU0M2M1NTM4YWZiZjVmZjZlMzliOGQ4MTY4ZWJiZTE5OThkOTkzZTg5ZTI1ZjE0YTUgYW5kcm9pZC5oYXJkd2FyZS53aWZpQDEuMDo6SVdpZmlTdGFJZmFjZQorN2ZiZmM1NTFjM2UyM2M4YjQzOThjM2UxNmU0NTJiNTE2NDU3ZTY5MjE0MjRhNTM0NzRjYmYzNzNjYTMwNmZhOSBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjpJV2lmaVN0YUlmYWNlRXZlbnRDYWxsYmFjaworZTIwZDUxMzJkNmQyM2UwNzJjMTVkZTA2NWI1ZTJhYTEzZmY5NjUwMzEyNDZhMmM4MjU4MTczMmJhZTU2YmY2ZCBhbmRyb2lkLmhhcmR3YXJlLndpZmlAMS4wOjp0eXBlcworZjdlNTVjMDgxODdkOGM4NTUwNjhhMWVlM2QwYzhkYWVlZTc1NzAyOTJkOTY1MDljMjFhODc1NmQ0ZjVjZmI5YiBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50Cis1NmI1YzcyNjdjYjNkMzMzN2Y0NGViOGIwYjM4ZmY0YzYyNjBkY2M3MGUwNzY4N2ZjYWI5NGIxY2NlYThkMTU5IGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRDYWxsYmFjaworMzViYTdiY2RmMThmMjRhODY2YTdlNTQyOTU0OGYwNjc2OGJiMjBhMjU3Zjc1YjEwYTM5N2M0ZDgyNWVmODQzOCBhbmRyb2lkLmhhcmR3YXJlLndpZmkuc3VwcGxpY2FudEAxLjA6OklTdXBwbGljYW50SWZhY2UKK2NkYTAxMDA4YzA2OTIyZmEzN2MxMjEzZTliYjgzMWExMDliMzE3NDUzMjgwNTYxNmZiNzE2MWVkYzQwMzg2NmYgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjpJU3VwcGxpY2FudE5ldHdvcmsKKzQ5MDc0MTAzMzhjNWU4ZGJlZWM0YjVlZGMyNjA4ZWEzMjNmNTU2MTk0NWY4ODEwYWY4MTgxMGM0N2IwMTkxODQgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjpJU3VwcGxpY2FudFAycElmYWNlCis4YjYzZjVlZmEyZTNiZTNhN2NiOGE0Mjg3NjBkODIyODVhNGFiNzliY2JkZWE2ZWY5MGFhNTQ3NTU1ZTU4MmQ0IGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRQMnBJZmFjZUNhbGxiYWNrCis1NjEyOGY3NDU2MDU3MWI2Nzc3ZDU5NDUzZjM1YzZiMzU2OTNlZTM3N2UyYTIzYzgwNzcwODkwNjkyOGYwOWRlIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRQMnBOZXR3b3JrCisyMDY3YzIyMTk3YmNhOTc0M2RhYjY2YTZmNTYxYThhODM3NWM2N2I0Zjc2YWVkMDVmNzc2ODM5NDk5YmQ0YzhmIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRQMnBOZXR3b3JrQ2FsbGJhY2sKKzc3NTJlMWRlOTNhYWY1ZmVkMzcwMTFjMjE5YWMyNDcwNjlmNmFmMzIwYjA4MTBkYWE5ODUxMDU4NGExMGU3YjQgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjpJU3VwcGxpY2FudFN0YUlmYWNlCitkNzgxYzhkN2U3YjNmZTVjY2E4Y2Y2ZTFkODgwNmU3NzA5ODJhZTUzNThjNzgxNmVkNTFiMGYwZWMyNzJlNzBkIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRTdGFJZmFjZUNhbGxiYWNrCitiMTJlZjBiZGQ4YTRkMjQ3YThhNmU5NjBiMjI3ZWQzMjM4M2YyYjAyNDFmNTVkNjdmY2VhNmVmZjZhNjczN2ZhIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRTdGFOZXR3b3JrCitkOGYwODc3YWUxZDMyMWMxZDg4NGM3NjMxZGZlMzZjYWIwZWM4YTRiMjg2M2Q0YjY4N2Y4NWQzNTQ5YTYzYmNjIGFuZHJvaWQuaGFyZHdhcmUud2lmaS5zdXBwbGljYW50QDEuMDo6SVN1cHBsaWNhbnRTdGFOZXR3b3JrQ2FsbGJhY2sKK2ZlM2MzYzJmNTcyYjcyZjE1Zjg1OTRjNTM4YjA1NzdiZDVjMjg3MjJjMzE4NzljZmU2MjMxMzMwY2RkYjY3NDcgYW5kcm9pZC5oYXJkd2FyZS53aWZpLnN1cHBsaWNhbnRAMS4wOjp0eXBlcwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9BbmRyb2lkLmJwIGIvZHJtLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4MjlkZTcKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw5MSBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUNyeXB0b0ZhY3RvcnkuaGFsIiwKKyAgICAgICAgIklDcnlwdG9QbHVnaW4uaGFsIiwKKyAgICAgICAgIklEcm1GYWN0b3J5LmhhbCIsCisgICAgICAgICJJRHJtUGx1Z2luLmhhbCIsCisgICAgICAgICJJRHJtUGx1Z2luTGlzdGVuZXIuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0NyeXB0b0ZhY3RvcnlBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9DcnlwdG9QbHVnaW5BbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Ecm1GYWN0b3J5QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvRHJtUGx1Z2luQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvRHJtUGx1Z2luTGlzdGVuZXJBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUNyeXB0b0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUh3Q3J5cHRvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cbkh3Q3J5cHRvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9CcEh3Q3J5cHRvRmFjdG9yeS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cc0NyeXB0b0ZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUNyeXB0b1BsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JSHdDcnlwdG9QbHVnaW4uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQm5Id0NyeXB0b1BsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9CcEh3Q3J5cHRvUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JzQ3J5cHRvUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lId0RybUZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQm5Id0RybUZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQnBId0RybUZhY3RvcnkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQnNEcm1GYWN0b3J5LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW4uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUh3RHJtUGx1Z2luLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JuSHdEcm1QbHVnaW4uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQnBId0RybVBsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cc0RybVBsdWdpbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JRHJtUGx1Z2luTGlzdGVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSUh3RHJtUGx1Z2luTGlzdGVuZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvQm5Id0RybVBsdWdpbkxpc3RlbmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0JwSHdEcm1QbHVnaW5MaXN0ZW5lci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9Cc0RybVBsdWdpbkxpc3RlbmVyLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9kcm0vMS4wL0lDcnlwdG9GYWN0b3J5LmhhbCBiL2RybS8xLjAvSUNyeXB0b0ZhY3RvcnkuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFlYWI5YmMKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL0lDcnlwdG9GYWN0b3J5LmhhbApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitpbXBvcnQgSUNyeXB0b1BsdWdpbjsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvaGFyZHdhcmUvQ3J5cHRvQVBJLmg6Q3J5cHRvRmFjdG9yeQorICoKKyAqIElDcnlwdG9GYWN0b3J5IGlzIHRoZSBtYWluIGVudHJ5IHBvaW50IGZvciBpbnRlcmFjdGluZyB3aXRoIGEgdmVuZG9yJ3MKKyAqIGNyeXB0byBIQUwgdG8gY3JlYXRlIGNyeXB0byBwbHVnaW5zLiBDcnlwdG8gcGx1Z2lucyBjcmVhdGUgY3J5cHRvIHNlc3Npb25zCisgKiB3aGljaCBhcmUgdXNlZCBieSBhIGNvZGVjIHRvIGRlY3J5cHQgcHJvdGVjdGVkIHZpZGVvIGNvbnRlbnQuCisgKi8KK2ludGVyZmFjZSBJQ3J5cHRvRmFjdG9yeSB7CisgICAgLyoqCisgICAgICogRGV0ZXJtaW5lIGlmIGEgY3J5cHRvIHNjaGVtZSBpcyBzdXBwb3J0ZWQgYnkgdGhpcyBIQUwKKyAgICAgKgorICAgICAqIEBwYXJhbSB1dWlkIGlkZW50aWZpZXMgdGhlIGNyeXB0byBzY2hlbWUgaW4gcXVlc3Rpb24KKyAgICAgKiBAcmV0dXJuIGlzU3VwcG9ydGVkIG11c3QgYmUgdHJ1ZSBvbmx5IGlmIHRoZSBzY2hlbWUgaXMgc3VwcG9ydGVkCisgICAgICovCisgICAgaXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQodWludDhfdFsxNl0gdXVpZCkgZ2VuZXJhdGVzKGJvb2wgaXNTdXBwb3J0ZWQpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlIGEgY3J5cHRvIHBsdWdpbiBmb3IgdGhlIHNwZWNpZmllZCB1dWlkIGFuZCBzY2hlbWUtc3BlY2lmaWMKKyAgICAgKiBpbml0aWFsaXphdGlvbiBkYXRhLgorICAgICAqCisgICAgICogQHBhcmFtIHV1aWQgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgZHJtIHNjaGVtZS4gU2VlCisgICAgICogaHR0cDovL2Rhc2hpZi5vcmcvaWRlbnRpZmllcnMvcHJvdGVjdGlvbiBmb3IgdXVpZCBhc3NpZ25tZW50cworICAgICAqIEBwYXJhbSBpbml0RGF0YSBzY2hlbWUtc3BlY2lmaWMgaW5pdCBkYXRhLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBIQUwgaW1wbGVtZW50YXRpb24gbXVzdCByZXR1cm4KKyAgICAgKiBPSyBpZiB0aGUgcGx1Z2luIGlzIGNyZWF0ZWQgYW5kIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwbHVnaW4KKyAgICAgKiBjYW5ub3QgYmUgY3JlYXRlZC4KKyAgICAgKiBAcmV0dXJuIGNyeXB0b1BsdWdpbiB0aGUgY3JlYXRlZCBJQ3J5cHRvUGx1Z2luCisgICAgICovCisgICAgY3JlYXRlUGx1Z2luKHVpbnQ4X3RbMTZdIHV1aWQsIHZlYzx1aW50OF90PiBpbml0RGF0YSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBJQ3J5cHRvUGx1Z2luIGNyeXB0b1BsdWdpbik7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9JQ3J5cHRvUGx1Z2luLmhhbCBiL2RybS8xLjAvSUNyeXB0b1BsdWdpbi5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGE3ZmQyNgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvSUNyeXB0b1BsdWdpbi5oYWwKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjA6OnR5cGVzOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9oYXJkd2FyZS9DcnlwdG9BUEkuaDpDcnlwdG9QbHVnaW4KKyAqCisgKiBJQ3J5cHRvUGx1Z2luIGlzIHRoZSBIQUwgZm9yIHZlbmRvci1wcm92aWRlZCBjcnlwdG8gcGx1Z2lucy4KKyAqIEl0IGFsbG93cyBjcnlwdG8gc2Vzc2lvbnMgdG8gYmUgb3BlbmVkIGFuZCBvcGVyYXRlZCBvbiwgdG8KKyAqIGxvYWQgY3J5cHRvIGtleXMgZm9yIGEgY29kZWMgdG8gZGVjcnlwdCBwcm90ZWN0ZWQgdmlkZW8gY29udGVudC4KKyAqLworaW50ZXJmYWNlIElDcnlwdG9QbHVnaW4geworICAgIC8qKgorICAgICAqIENoZWNrIGlmIHRoZSBzcGVjaWZpZWQgbWltZS10eXBlIHJlcXVpcmVzIGEgc2VjdXJlIGRlY29kZXIKKyAgICAgKiBjb21wb25lbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWltZSBUaGUgY29udGVudCBtaW1lLXR5cGUKKyAgICAgKiBAcmV0dXJuIHNlY3VyZVJlcXVpcmVkIG11c3QgYmUgdHJ1ZSBvbmx5IGlmIGEgc2VjdXJlIGRlY29kZXIgaXMgcmVxdWlyZWQKKyAgICAgKiBmb3IgdGhlIHNwZWNpZmllZCBtaW1lLXR5cGUKKyAgICAgKi8KKyAgICByZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQoc3RyaW5nIG1pbWUpCisgICAgICAgIGdlbmVyYXRlcyhib29sIHNlY3VyZVJlcXVpcmVkKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmeSBhIHBsdWdpbiBvZiB0aGUgY3VycmVudGx5IGNvbmZpZ3VyZWQgcmVzb2x1dGlvbgorICAgICAqCisgICAgICogQHBhcmFtIHdpZHRoIC0gdGhlIGRpc3BsYXkgcmVzb2x1dGlvbnMncyB3aWR0aAorICAgICAqIEBwYXJhbSBoZWlnaHQgLSB0aGUgZGlzcGxheSByZXNvbHV0aW9uJ3MgaGVpZ2h0CisgICAgICovCisgICAgbm90aWZ5UmVzb2x1dGlvbih1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0KTsKKworICAgIC8qKgorICAgICAqIEFzc29jaWF0ZSBhIG1lZGlhZHJtIHNlc3Npb24gd2l0aCB0aGlzIGNyeXB0byBzZXNzaW9uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBNZWRpYURybSBzZXNzaW9uIElEIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgY3J5cHRvCisgICAgICogc2Vzc2lvbgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwsIHN0YXR1cyBtdXN0IGJlCisgICAgICogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3Qgb3BlbmVkLCBvcgorICAgICAqIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgZHJtCisgICAgICogc2NoZW1lLgorICAgICAqLworICAgIHNldE1lZGlhRHJtU2Vzc2lvbih2ZWM8dWludDhfdD4gc2Vzc2lvbklkKSBnZW5lcmF0ZXMoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBzaGFyZWQgbWVtb3J5IGJhc2UgZm9yIHN1YnNlcXVlbnQgZGVjcnlwdCBvcGVyYXRpb25zLiBUaGUgYnVmZmVyCisgICAgICogYmFzZSBpcyBhIGhpZGxfbWVtb3J5IHdoaWNoIG1hcHMgc2hhcmVkIG1lbW9yeSBpbiB0aGUgSEFMIG1vZHVsZS4KKyAgICAgKiBBZnRlciB0aGUgc2hhcmVkIGJ1ZmZlciBiYXNlIGlzIGVzdGFibGlzaGVkLCB0aGUgZGVjcnlwdCgpIG1ldGhvZAorICAgICAqIHJlY2VpdmVzIFNoYXJlZEJ1ZmZlciBpbnN0YW5jZXMgd2hpY2ggc3BlY2lmeSB0aGUgYnVmZmVyIGFkZHJlc3MgcmFuZ2UKKyAgICAgKiBmb3IgZGVjcnlwdCBzb3VyY2UgYW5kIGRlc3RpbmF0aW9uIGFkZHJlc3Nlcy4KKyAgICAgKgorICAgICAqIFRoZXJlIGNhbiBiZSBtdWx0aXBsZSBzaGFyZWQgYnVmZmVycyBwZXIgY3J5cHRvIHBsdWdpbi4gVGhlIGJ1ZmZlcnMKKyAgICAgKiBhcmUgZGlzdGluZ3Vpc2hlZCBieSB0aGUgYnVmZmVySWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYmFzZSB0aGUgYmFzZSBJTWVtb3J5IG9mIHRoZSBtZW1vcnkgYnVmZmVyIGlkZW50aWZpZWQgYnkKKyAgICAgKiBidWZmZXJJZAorICAgICAqIEBwYXJhbSBidWZmZXJJZCBpZGVudGlmaWVzIHRoZSBzcGVjaWZpYyBzaGFyZWQgYnVmZmVyIGZvciB3aGljaAorICAgICAqIHRoZSBiYXNlIGlzIGJlaW5nIHNldC4KKyAgICAgKi8KKyAgICBzZXRTaGFyZWRCdWZmZXJCYXNlKG1lbW9yeSBiYXNlLCB1aW50MzJfdCBidWZmZXJJZCk7CisKKyAgICAvKioKKyAgICAgKiBEZWNyeXB0IGFuIGFycmF5IG9mIHN1YnNhbXBsZXMgZnJvbSB0aGUgc291cmNlIG1lbW9yeSBidWZmZXIgdG8gdGhlCisgICAgICogZGVzdGluYXRpb24gbWVtb3J5IGJ1ZmZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWN1cmUgYSBmbGFnIHRvIGluZGljYXRlIGlmIGEgc2VjdXJlIGRlY29kZXIgaXMgYmVpbmcgdXNlZC4gVGhpcworICAgICAqIGVuYWJsZXMgdGhlIHBsdWdpbiB0byBjb25maWd1cmUgYnVmZmVyIG1vZGVzIHRvIHdvcmsgY29uc2lzdGVudGx5IHdpdGgKKyAgICAgKiBhIHNlY3VyZSBkZWNvZGVyLgorICAgICAqIEBwYXJhbSB0aGUga2V5SWQgZm9yIHRoZSBrZXkgdGhhdCBzaG91bGQgYmUgdXNlZCB0byBkbyB0aGUKKyAgICAgKiB0aGUgZGVjcnlwdGlvbi4gVGhlIGtleUlkIHJlZmVycyB0byBhIGtleSBpbiB0aGUgYXNzb2NpYXRlZAorICAgICAqIE1lZGlhRHJtIGluc3RhbmNlLgorICAgICAqIEBwYXJhbSBpdiB0aGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yIHRvIHVzZQorICAgICAqIEBwYXJhbSBtb2RlIHRoZSBjcnlwdG8gbW9kZSB0byB1c2UKKyAgICAgKiBAcGFyYW0gcGF0dGVybiB0aGUgY3J5cHRvIHBhdHRlcm4gdG8gdXNlCisgICAgICogQHBhcmFtIHN1YlNhbXBsZXMgYSB2ZWN0b3Igb2Ygc3Vic2FtcGxlcyBpbmRpY2F0aW5nIHRoZSBudW1iZXIKKyAgICAgKiBvZiBjbGVhciBhbmQgZW5jcnlwdGVkIGJ5dGVzIHRvIHByb2Nlc3MuIFRoaXMgYWxsb3dzIHRoZSBkZWNyeXB0CisgICAgICogY2FsbCB0byBvcGVyYXRlIG9uIGEgcmFuZ2Ugb2Ygc3Vic2FtcGxlcyBpbiBhIHNpbmdsZSBjYWxsCisgICAgICogQHBhcmFtIHNvdXJjZSB0aGUgaW5wdXQgYnVmZmVyIGZvciB0aGUgZGVjcnlwdGlvbgorICAgICAqIEBwYXJhbSBvZmZzZXQgdGhlIG9mZnNldCBvZiB0aGUgZmlyc3QgYnl0ZSBvZiBlbmNyeXB0ZWQgZGF0YSBmcm9tCisgICAgICogdGhlIGJhc2Ugb2YgdGhlIHNvdXJjZSBidWZmZXIKKyAgICAgKiBAcGFyYW0gZGVzdGluYXRpb24gdGhlIG91dHB1dCBidWZmZXIgZm9yIHRoZSBkZWNyeXB0aW9uCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fTk9fTElDRU5TRSBpZiBubyBsaWNlbnNlIGtleXMgaGF2ZSBiZWVuCisgICAgICogbG9hZGVkLCBFUlJPUl9EUk1fTElDRU5TRV9FWFBJUkVEIGlmIHRoZSBsaWNlbnNlIGtleXMgaGF2ZSBleHBpcmVkLAorICAgICAqIEVSUk9SX0RSTV9SRVNPVVJDRV9CVVNZIGlmIHRoZSByZXNvdXJjZXMgcmVxdWlyZWQgdG8gcGVyZm9ybSB0aGUKKyAgICAgKiBkZWNyeXB0aW9uIGFyZSBub3QgYXZhaWxhYmxlLCBFUlJPUl9EUk1fSU5TVUZGSUNJRU5UX09VVFBVVF9QUk9URUNUSU9OCisgICAgICogaWYgcmVxdWlyZWQgb3V0cHV0IHByb3RlY3Rpb25zIGFyZSBub3QgYWN0aXZlLAorICAgICAqIEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIGRlY3J5cHQgc2Vzc2lvbiBpcyBub3Qgb3BlbmVkLAorICAgICAqIEVSUk9SX0RSTV9ERUNSWVBUIGlmIHRoZSBkZWNyeXB0IG9wZXJhdGlvbiBmYWlscywgYW5kCisgICAgICogRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUgaW4gb3RoZXIgZmFpbHVyZSBjYXNlcy4KKyAgICAgKiBAcmV0dXJuIGJ5dGVzV3JpdHRlbiB0aGUgbnVtYmVyIG9mIGJ5dGVzIG91dHB1dCBmcm9tIHRoZSBkZWNyeXB0aW9uCisgICAgICogQHJldHVybiBkZXRhaWxlZEVycm9yIGlmIHRoZSBlcnJvciBpcyBhIHZlbmRvci1zcGVjaWZpYyBlcnJvciwgdGhlCisgICAgICogdmVuZG9yJ3MgY3J5cHRvIEhBTCBtYXkgcHJvdmlkZSBhIGRldGFpbGVkIGVycm9yIHN0cmluZyB0byBoZWxwCisgICAgICogZGVzY3JpYmUgdGhlIGVycm9yLgorICAgICAqLworICAgIGRlY3J5cHQoYm9vbCBzZWN1cmUsIHVpbnQ4X3RbMTZdIGtleUlkLCB1aW50OF90WzE2XSBpdiwgTW9kZSBtb2RlLAorICAgICAgICBQYXR0ZXJuIHBhdHRlcm4sIHZlYzxTdWJTYW1wbGU+IHN1YlNhbXBsZXMsCisgICAgICAgICAgICBTaGFyZWRCdWZmZXIgc291cmNlLCB1aW50NjRfdCBvZmZzZXQsIERlc3RpbmF0aW9uQnVmZmVyIGRlc3RpbmF0aW9uKQorICAgICAgICBnZW5lcmF0ZXMoU3RhdHVzIHN0YXR1cywgdWludDMyX3QgYnl0ZXNXcml0dGVuLCBzdHJpbmcgZGV0YWlsZWRFcnJvcik7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9JRHJtRmFjdG9yeS5oYWwgYi9kcm0vMS4wL0lEcm1GYWN0b3J5LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGU0Nzc5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9JRHJtRmFjdG9yeS5oYWwKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMDsKKworaW1wb3J0IElEcm1QbHVnaW47CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL21lZGlhL2RybS9Ecm1BUEkuaDpEcm1GYWN0b3J5CisgKgorICogSURybUZhY3RvcnkgaXMgdGhlIG1haW4gZW50cnkgcG9pbnQgZm9yIGludGVyYWN0aW5nIHdpdGggYSB2ZW5kb3IncworICogZHJtIEhBTCB0byBjcmVhdGUgZHJtIHBsdWdpbiBpbnN0YW5jZXMuIEEgZHJtIHBsdWdpbiBpbnN0YW5jZQorICogY3JlYXRlcyBkcm0gc2Vzc2lvbnMgd2hpY2ggYXJlIHVzZWQgdG8gb2J0YWluIGtleXMgZm9yIGEgY3J5cHRvCisgKiBzZXNzaW9uIHNvIGl0IGNhbiBkZWNyeXB0KiBwcm90ZWN0ZWQgdmlkZW8gY29udGVudC4KKyAqLworCitpbnRlcmZhY2UgSURybUZhY3RvcnkgeworICAgIC8qKgorICAgICAqIERldGVybWluZSBpZiBhIGNyeXB0byBzY2hlbWUgaXMgc3VwcG9ydGVkIGJ5IHRoaXMgSEFMCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXVpZCBpZGVudGlmaWVzIHRoZSBjcnlwdG8gc2NoZW1lIGluIHF1ZXN0aW9uCisgICAgICogQHJldHVybiBpc1N1cHBvcnRlZCBtdXN0IGJlIHRydWUgb25seSBpZiB0aGUgc2NoZW1lIGlzIHN1cHBvcnRlZAorICAgICAqLworICAgIGlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKHVpbnQ4X3RbMTZdIHV1aWQpIGdlbmVyYXRlcyhib29sIGlzU3VwcG9ydGVkKTsKKworICAgIC8qKgorICAgICAqIERldGVybWluZSBpZiB0aGUgSEFMIGZhY3RvcnkgaXMgYWJsZSB0byBjb25zdHJ1Y3QgcGx1Z2lucyB0aGF0IHN1cHBvcnQgYQorICAgICAqIGdpdmVuIG1lZGlhIGNvbnRhaW5lciBmb3JtYXQgc3BlY2lmaWVkIGJ5IG1pbWVUeXBlCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWltZVR5cGUgaWRlbnRpZmllcyB0aGUgbWltZSB0eXBlIGluIHF1ZXN0aW9uCisgICAgICogQHJldHVybiBpc1N1cHBvcnRlZCBtdXN0IGJlIHRydWUgb25seSBpZiB0aGUgc2NoZW1lIGlzIHN1cHBvcnRlZAorICAgICAqLworICAgIGlzQ29udGVudFR5cGVTdXBwb3J0ZWQoc3RyaW5nIG1pbWVUeXBlKSBnZW5lcmF0ZXMoYm9vbCBpc1N1cHBvcnRlZCk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYSBkcm0gcGx1Z2luIGluc3RhbmNlIGZvciB0aGUgc3BlY2lmaWVkIHV1aWQgYW5kIHNjaGVtZS1zcGVjaWZpYworICAgICAqIGluaXRpYWxpemF0aW9uIGRhdGEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdXVpZCB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBkcm0gc2NoZW1lLiBTZWUKKyAgICAgKiBodHRwOi8vZGFzaGlmLm9yZy9pZGVudGlmaWVycy9wcm90ZWN0aW9uIGZvciB1dWlkIGFzc2lnbm1lbnRzCisgICAgICogQHBhcmFtIGFwcFBhY2thZ2VOYW1lIGlkZW50aWZpZXMgdGhlIHBhY2thZ2UgbmFtZSBvZiB0aGUgY2FsbGluZworICAgICAqIGFwcGxpY2F0aW9uLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBIQUwgaW1wbGVtZW50YXRpb24gbXVzdCByZXR1cm4KKyAgICAgKiBPSyBpZiB0aGUgcGx1Z2luIGlzIGNyZWF0ZWQgYW5kIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwbHVnaW4KKyAgICAgKiBjYW5ub3QgYmUgY3JlYXRlZC4KKyAgICAgKi8KKyAgICBjcmVhdGVQbHVnaW4odWludDhfdFsxNl0gdXVpZCwgc3RyaW5nIGFwcFBhY2thZ2VOYW1lKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBJRHJtUGx1Z2luIGRybVBsdWdpbik7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9JRHJtUGx1Z2luLmhhbCBiL2RybS8xLjAvSURybVBsdWdpbi5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDdiMDgzMgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvSURybVBsdWdpbi5oYWwKQEAgLTAsMCArMSw1NDIgQEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitpbXBvcnQgSURybVBsdWdpbkxpc3RlbmVyOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9kcm0vRHJtQVBJLmg6RHJtUGx1Z2luCisgKgorICogSURybVBsdWdpbiBpcyB1c2VkIHRvIGludGVyYWN0IHdpdGggYSBzcGVjaWZpYyBkcm0gcGx1Z2luIHRoYXQgd2FzCisgKiBjcmVhdGVkIGJ5IElEcm06OmNyZWF0ZVBsdWdpbi4gQSBkcm0gcGx1Z2luIHByb3ZpZGVzIG1ldGhvZHMgZm9yCisgKiBvYnRhaW5pbmcgZHJtIGtleXMgdGhhdCBtYXkgYmUgdXNlZCBieSBhIGNvZGVjIHRvIGRlY3J5cHQgcHJvdGVjdGVkCisgKiB2aWRlbyBjb250ZW50LgorICovCitpbnRlcmZhY2UgSURybVBsdWdpbiB7CisKKyAgICAvKioKKyAgICAgKiBPcGVuIGEgbmV3IHNlc3Npb24gd2l0aCB0aGUgRHJtUGx1Z2luIG9iamVjdC4gQSBzZXNzaW9uIElEIGlzIHJldHVybmVkCisgICAgICogaW4gdGhlIHNlc3Npb25JZCBwYXJhbWV0ZXIuCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fTk9UX1BST1ZJU0lPTkVEIGlmIHRoZSBkZXZpY2UgcmVxdWlyZXMKKyAgICAgKiBwcm92aXNpb25pbmcgYmVmb3JlIGl0IGNhbiBvcGVuIGEgc2Vzc2lvbiwgRVJST1JfRFJNX1JFU09VUkNFX0JVU1kgaWYKKyAgICAgKiB0aGVyZSBhcmUgaW5zdWZmaWNlbnQgcmVzb3VyY2VzIGF2YWlsYWJsZSB0byBvcGVuIGEgc2Vzc2lvbiwKKyAgICAgKiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgaWYgb3BlblNlc3Npb24gaXMgbm90IHN1cHBvcnRlZCBhdCB0aGUgdGltZSBvZgorICAgICAqIHRoZSBjYWxsIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSBhCisgICAgICogc2Vzc2lvbiBjYW5ub3QgYmUgb3BlbmVkLgorICAgICAqIEByZXR1cm4gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIElEIGZvciB0aGUgbmV3bHkgb3BlbmVkIHNlc3Npb24KKyAgICAgKi8KKyAgICBvcGVuU2Vzc2lvbigpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgU2Vzc2lvbklkIHNlc3Npb25JZCk7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZSBhIHNlc3Npb24gb24gdGhlIERybVBsdWdpbiBvYmplY3QKKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuICBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgdGhlIHNlc3Npb25JZCBpcyBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFCisgICAgICogaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBzZXNzaW9uIGNhbm5vdCBiZSBjbG9zZWQuCisgICAgICovCisgICAgY2xvc2VTZXNzaW9uKFNlc3Npb25JZCBzZXNzaW9uSWQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBBIGtleSByZXF1ZXN0L3Jlc3BvbnNlIGV4Y2hhbmdlIG9jY3VycyBiZXR3ZWVuIHRoZSBhcHAgYW5kIGEgTGljZW5zZQorICAgICAqIFNlcnZlciB0byBvYnRhaW4gdGhlIGtleXMgcmVxdWlyZWQgdG8gZGVjcnlwdCB0aGUgY29udGVudC4KKyAgICAgKiBnZXRLZXlSZXF1ZXN0KCkgaXMgdXNlZCB0byBvYnRhaW4gYW4gb3BhcXVlIGtleSByZXF1ZXN0IGJsb2IgdGhhdCBpcworICAgICAqIGRlbGl2ZXJlZCB0byB0aGUgbGljZW5zZSBzZXJ2ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2NvcGUgbWF5IGJlIGEgc2Vzc2lvbklkIG9yIGEga2V5U2V0SWQsIGRlcGVuZGluZyBvbiB0aGUKKyAgICAgKiBzcGVjaWZpZWQga2V5VHlwZS4gV2hlbiB0aGUga2V5VHlwZSBpcyBPRkZMSU5FIG9yIFNUUkVBTUlORywKKyAgICAgKiBzY29wZSBzaG91bGQgYmUgc2V0IHRvIHRoZSBzZXNzaW9uSWQgdGhlIGtleXMgd2lsbCBiZSBwcm92aWRlZCB0by4KKyAgICAgKiBXaGVuIHRoZSBrZXlUeXBlIGlzIFJFTEVBU0UsIHNjb3BlIHNob3VsZCBiZSBzZXQgdG8gdGhlIGtleVNldElkCisgICAgICogb2YgdGhlIGtleXMgYmVpbmcgcmVsZWFzZWQuCisgICAgICogQHBhcmFtIGluaXREYXRhIGNvbnRhaW5lci1zcGVjaWZpYyBkYXRhLCBpdHMgbWVhbmluZyBpcyBpbnRlcnByZXRlZAorICAgICAqIGJhc2VkIG9uIHRoZSBtaW1lIHR5cGUgcHJvdmlkZWQgaW4gdGhlIG1pbWVUeXBlIHBhcmFtZXRlci4gSXQgY291bGQKKyAgICAgKiBjb250YWluLCBmb3IgZXhhbXBsZSwgdGhlIGNvbnRlbnQgSUQsIGtleSBJRCBvciBvdGhlciBkYXRhIG9idGFpbmVkCisgICAgICogZnJvbSB0aGUgY29udGVudCBtZXRhZGF0YSB0aGF0IGlzIHJlcXVpcmVkIHRvIGdlbmVyYXRlIHRoZSBrZXkgcmVxdWVzdC4KKyAgICAgKiBpbml0RGF0YSBtYXkgYmUgZW1wdHkgd2hlbiBrZXlUeXBlIGlzIFJFTEVBU0UuCisgICAgICogQHBhcmFtIG1pbWVUeXBlIGlkZW50aWZpZXMgdGhlIG1pbWUgdHlwZSBvZiB0aGUgY29udGVudAorICAgICAqIEBwYXJhbSBrZXlUeXBlIHNwZWNpZmllcyBpZiB0aGUga2V5cyBhcmUgdG8gYmUgdXNlZCBmb3Igc3RyZWFtaW5nLAorICAgICAqIG9mZmxpbmUgb3IgYSByZWxlYXNlCisgICAgICogQHBhcmFtIG9wdGlvbmFsUGFyYW1ldGVycyBpbmNsdWRlZCBpbiB0aGUga2V5IHJlcXVlc3QgbWVzc2FnZSB0bworICAgICAqIGFsbG93IGEgY2xpZW50IGFwcGxpY2F0aW9uIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBtZXNzYWdlIHBhcmFtZXRlcnMgdG8KKyAgICAgKiB0aGUgc2VydmVyLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEVSUk9SX0RSTV9OT1RfUFJPVklTSU9ORUQgaWYgdGhlIGRldmljZSByZXF1aXJlcyBwcm92aXNpb25pbmcKKyAgICAgKiBiZWZvcmUgaXQgY2FuIGdlbmVyYXRlIGEga2V5IHJlcXVlc3QsIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmCisgICAgICogZ2V0S2V5UmVxdWVzdCBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsLCBCQURfVkFMVUUgaWYgYW55CisgICAgICogcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUKKyAgICAgKiB3aGVyZSBhIGtleSByZXF1ZXN0IGNhbm5vdCBiZSBnZW5lcmF0ZWQuCisgICAgICogQHJldHVybiByZXF1ZXN0IGlmIHN1Y2Nlc3NmdWwsIHRoZSBvcGFxdWUga2V5IHJlcXVlc3QgYmxvYiBpcyByZXR1cm5lZAorICAgICAqIEByZXR1cm4gcmVxdWVzdFR5cGUgaW5kaWNhdGVzIHR5cGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJldHVybmVkCisgICAgICogcmVxdWVzdC4gVGhlIHR5cGUgbWF5IGJlIG9uZSBvZiBJTklUSUFMLCBSRU5FV0FMIG9yIFJFTEVBU0UuIEFuCisgICAgICogSU5JVElBTCByZXF1ZXN0IGlzIHRoZSBmaXJzdCBrZXkgcmVxdWVzdCBmb3IgYSBsaWNlbnNlLiBSRU5FV0FMIGlzIGEKKyAgICAgKiBzdWJzZXF1ZW50IGtleSByZXF1ZXN0IHVzZWQgdG8gcmVmcmVzaCB0aGUga2V5cyBpbiBhIGxpY2Vuc2UuIFJFTEVBU0UKKyAgICAgKiBjb3JyZXNwb25kcyB0byBhIGtleVR5cGUgb2YgUkVMRUFTRSwgd2hpY2ggaW5kaWNhdGVzIGtleXMgYXJlIGJlaW5nCisgICAgICogcmVsZWFzZWQuCisgICAgICogQHJldHVybiBkZWZhdWx0VXJsIHRoZSBVUkwgdGhhdCB0aGUgcmVxdWVzdCBtYXkgYmUgc2VudCB0bywgaWYKKyAgICAgKiBwcm92aWRlZCBieSB0aGUgZHJtIEhBTC4gVGhlIGFwcCBtYXkgY2hvb3NlIHRvIG92ZXJyaWRlIHRoaXMKKyAgICAgKiBVUkwuCisgICAgICovCisgICAgZ2V0S2V5UmVxdWVzdCh2ZWM8dWludDhfdD4gc2NvcGUsIHZlYzx1aW50OF90PiBpbml0RGF0YSwKKyAgICAgICAgICAgIHN0cmluZyBtaW1lVHlwZSwgS2V5VHlwZSBrZXlUeXBlLCBLZXllZFZlY3RvciBvcHRpb25hbFBhcmFtZXRlcnMpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHJlcXVlc3QsCisgICAgICAgICAgICAgICAgS2V5UmVxdWVzdFR5cGUgcmVxdWVzdFR5cGUsIHN0cmluZyBkZWZhdWx0VXJsKTsKKworICAgIC8qKgorICAgICAqIEFmdGVyIGEga2V5IHJlc3BvbnNlIGlzIHJlY2VpdmVkIGJ5IHRoZSBhcHAsIGl0IGlzIHByb3ZpZGVkIHRvIHRoZQorICAgICAqIERybSBwbHVnaW4gdXNpbmcgcHJvdmlkZUtleVJlc3BvbnNlLgorICAgICAqCisgICAgICogQHBhcmFtIHNjb3BlIG1heSBiZSBhIHNlc3Npb25JZCBvciBhIGtleVNldElkIGRlcGVuZGluZyBvbiB0aGUgdHlwZQorICAgICAqIG9mIHRoZSByZXNwb25zZS4gU2NvcGUgc2hvdWxkIGJlIHNldCB0byB0aGUgc2Vzc2lvbklkIHdoZW4gdGhlIHJlc3BvbnNlCisgICAgICogaXMgZm9yIGVpdGhlciBzdHJlYW1pbmcgb3Igb2ZmbGluZSBrZXkgcmVxdWVzdHMuIFNjb3BlIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgKiB0aGUga2V5U2V0SWQgd2hlbiB0aGUgcmVzcG9uc2UgaXMgZm9yIGEgcmVsZWFzZSByZXF1ZXN0LgorICAgICAqIEBwYXJhbSByZXNwb25zZSB0aGUgcmVzcG9uc2UgZnJvbSB0aGUga2V5IHNlcnZlciB0aGF0IGlzIGJlaW5nCisgICAgICogcHJvdmlkZWQgdG8gdGhlIGRybSBIQUwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiAgVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdAorICAgICAqIG9wZW5lZCwgRVJST1JfRFJNX05PVF9QUk9WSVNJT05FRCBpZiB0aGUgZGV2aWNlIHJlcXVpcmVzIHByb3Zpc2lvbmluZworICAgICAqIGJlZm9yZSBpdCBjYW4gaGFuZGxlIHRoZSBrZXkgcmVzcG9uc2UsIEVSUk9SX0RSTV9ERVZJQ0VfUkVWT0tFRCBpZiB0aGUKKyAgICAgKiBkZXZpY2UgaGFzIGJlZW4gZGlzYWJsZWQgYnkgdGhlIGxpY2Vuc2UgcG9saWN5LCBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRQorICAgICAqIGlmIHByb3ZpZGVLZXlSZXNwb25zZSBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoZSB0aW1lIG9mIHRoZSBjYWxsLCBCQURfVkFMVUUKKyAgICAgKiBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzCisgICAgICogaW4gYSBzdGF0ZSB3aGVyZSBhIGtleSByZXNwb25zZSBjYW5ub3QgYmUgaGFuZGxlZC4KKyAgICAgKiBAcmV0dXJuIGtleVNldElkIHdoZW4gdGhlIHJlc3BvbnNlIGlzIGZvciBhbiBvZmZsaW5lIGtleSByZXF1ZXN0LCBhCisgICAgICoga2V5U2V0SWQgaXMgcmV0dXJuZWQgaW4gdGhlIGtleVNldElkIHZlY3RvciBwYXJhbWV0ZXIgdGhhdCBjYW4gYmUgdXNlZAorICAgICAqIHRvIGxhdGVyIHJlc3RvcmUgdGhlIGtleXMgdG8gYSBuZXcgc2Vzc2lvbiB3aXRoIHRoZSBtZXRob2QgcmVzdG9yZUtleXMuCisgICAgICogV2hlbiB0aGUgcmVzcG9uc2UgaXMgZm9yIGEgc3RyZWFtaW5nIG9yIHJlbGVhc2UgcmVxdWVzdCwgbm8ga2V5U2V0SWQgaXMKKyAgICAgKiByZXR1cm5lZC4KKyAgICAgKi8KKyAgICBwcm92aWRlS2V5UmVzcG9uc2UodmVjPHVpbnQ4X3Q+IHNjb3BlLCB2ZWM8dWludDhfdD4gcmVzcG9uc2UpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IGtleVNldElkKTsKKworICAgIC8qKgorICAgICAqIFJlbW92ZSB0aGUgY3VycmVudCBrZXlzIGZyb20gYSBzZXNzaW9uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiAgVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdAorICAgICAqIG9wZW5lZCwgQkFEX1ZBTFVFIGlmIHRoZSBzZXNzaW9uSWQgaXMgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUga2V5cyBjYW5ub3QgYmUgcmVtb3ZlZC4KKyAgICAgKi8KKyAgICByZW1vdmVLZXlzKFNlc3Npb25JZCBzZXNzaW9uSWQpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZXN0b3JlIHBlcnNpc3RlZCBvZmZsaW5lIGtleXMgaW50byBhIG5ldyBzZXNzaW9uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0ga2V5U2V0SWQgaWRlbnRpZmllcyB0aGUga2V5cyB0byBsb2FkLCBvYnRhaW5lZCBmcm9tIGEgcHJpb3IKKyAgICAgKiBjYWxsIHRvIHByb3ZpZGVLZXlSZXNwb25zZSgpLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSBrZXlzIGNhbm5vdCBiZSByZXN0b3JlZC4KKyAgICAgKi8KKyAgICByZXN0b3JlS2V5cyhTZXNzaW9uSWQgc2Vzc2lvbklkLAorICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGtleVNldElkKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogUmVxdWVzdCBhbiBpbmZvcm1hdGl2ZSBkZXNjcmlwdGlvbiBvZiB0aGUgbGljZW5zZSBmb3IgdGhlIHNlc3Npb24uIFRoZQorICAgICAqIHN0YXR1cyBpcyBpbiB0aGUgZm9ybSBvZiB7bmFtZSwgdmFsdWV9IHBhaXJzLiBTaW5jZSBEUk0gbGljZW5zZSBwb2xpY2llcworICAgICAqIHZhcnkgYnkgdmVuZG9yLCB0aGUgc3BlY2lmaWMgc3RhdHVzIGZpZWxkIG5hbWVzIGFyZSBkZXRlcm1pbmVkIGJ5IGVhY2gKKyAgICAgKiBEUk0gdmVuZG9yLiBSZWZlciB0byB5b3VyIERSTSBwcm92aWRlciBkb2N1bWVudGF0aW9uIGZvciBkZWZpbml0aW9ucyBvZgorICAgICAqIHRoZSBmaWVsZCBuYW1lcyBmb3IgYSBwYXJ0aWN1bGFyIGRybSBzY2hlbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgdGhlIHNlc3Npb25JZCBpcyBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFCisgICAgICogaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIGtleSBzdGF0dXMgY2Fubm90IGJlIHF1ZXJpZWQuCisgICAgICogQHJldHVybiBpbmZvTGlzdCBhIGxpc3Qgb2YgbmFtZSB2YWx1ZSBwYWlycyBkZXNjcmliaW5nIHRoZSBsaWNlbnNlCisgICAgICovCisgICAgcXVlcnlLZXlTdGF0dXMoU2Vzc2lvbklkIHNlc3Npb25JZCkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBLZXllZFZlY3RvciBpbmZvTGlzdCk7CisKKyAgICAvKioKKyAgICAgKiBBIHByb3Zpc2lvbiByZXF1ZXN0L3Jlc3BvbnNlIGV4Y2hhbmdlIG9jY3VycyBiZXR3ZWVuIHRoZSBhcHAgYW5kIGEKKyAgICAgKiBwcm92aXNpb25pbmcgc2VydmVyIHRvIHJldHJpZXZlIGEgZGV2aWNlIGNlcnRpZmljYXRlLiBnZXRQcm92aXNpb25SZXF1ZXN0CisgICAgICogaXMgdXNlZCB0byBvYnRhaW4gYW4gb3BhcXVlIHByb3Zpc2lvbmluZyByZXF1ZXN0IGJsb2IgdGhhdCBpcyBkZWxpdmVyZWQKKyAgICAgKiB0byB0aGUgcHJvdmlzaW9uaW5nIHNlcnZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjZXJ0aWZpY2F0ZVR5cGUgdGhlIHR5cGUgb2YgY2VydGlmaWNhdGUgcmVxdWVzdGVkLCBlLmcuICJYLjUwOSIKKyAgICAgKiBAcGFyYW0gY2VydGlmaWNhdGVBdXRob3JpdHkgaWRlbnRpZmllcyB0aGUgY2VydGlmaWNhdGUgYXV0aG9yaXR5LiBBCisgICAgICogY2VydGlmaWNhdGUgYXV0aG9yaXR5IChDQSkgaXMgYW4gZW50aXR5IHdoaWNoIGlzc3VlcyBkaWdpdGFsIGNlcnRpZmljYXRlcworICAgICAqIGZvciB1c2UgYnkgb3RoZXIgcGFydGllcy4gSXQgaXMgYW4gZXhhbXBsZSBvZiBhIHRydXN0ZWQgdGhpcmQgcGFydHkuCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSBpZiB0aGUgZHJtIHNjaGVtZSBkb2VzIG5vdAorICAgICAqIHJlcXVpcmUgcHJvdmlzaW9uaW5nIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZQorICAgICAqIHdoZXJlIHRoZSBwcm92aXNpb24gcmVxdWVzdCBjYW5ub3QgYmUgZ2VuZXJhdGVkLgorICAgICAqIEByZXR1cm4gcmVxdWVzdCBpZiBzdWNjZXNzZnVsIHRoZSBvcGFxdWUgY2VydGlmaWNhdGUgcmVxdWVzdCBibG9iCisgICAgICogaXMgcmV0dXJuZWQKKyAgICAgKiBAcmV0dXJuIGRlZmF1bHRVcmwgVVJMIHRoYXQgdGhlIHByb3Zpc2lvbmluZyByZXF1ZXN0IHNob3VsZCBiZQorICAgICAqIHNlbnQgdG8sIGlmIGtub3duIGJ5IHRoZSBIQUwgaW1wbGVtZW50YXRpb24uICBJZiB0aGUgSEFMIGltcGxlbWVudGF0aW9uCisgICAgICogZG9lcyBub3QgcHJvdmlkZSBhIGRlZmF1bHRVcmwsIHRoZSByZXR1cm5lZCBzdHJpbmcgbXVzdCBiZSBlbXB0eS4KKyAgICAgKi8KKyAgICBnZXRQcm92aXNpb25SZXF1ZXN0KHN0cmluZyBjZXJ0aWZpY2F0ZVR5cGUsIHN0cmluZyBjZXJ0aWZpY2F0ZUF1dGhvcml0eSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCB2ZWM8dWludDhfdD4gcmVxdWVzdCwgc3RyaW5nIGRlZmF1bHRVcmwpOworCisgICAgLyoqCisgICAgICogQWZ0ZXIgYSBwcm92aXNpb24gcmVzcG9uc2UgaXMgcmVjZWl2ZWQgYnkgdGhlIGFwcCBmcm9tIGEgcHJvdmlzaW9uaW5nCisgICAgICogc2VydmVyLCBpdCBpcyBwcm92aWRlZCB0byB0aGUgRHJtIEhBTCB1c2luZyBwcm92aWRlUHJvdmlzaW9uUmVzcG9uc2UuCisgICAgICogVGhlIEhBTCBpbXBsZW1lbnRhdGlvbiBtdXN0IHJlY2VpdmUgdGhlIHByb3Zpc2lvbiByZXF1ZXN0IGFuZAorICAgICAqIHN0b3JlIHRoZSBwcm92aXNpb25lZCBjcmVkZW50aWFscy4KKyAgICAgKgorICAgICAqIEBwYXJhbSByZXNwb25zZSB0aGUgb3BhcXVlIHByb3Zpc2lvbmluZyByZXNwb25zZSByZWNlaXZlZCBieSB0aGUKKyAgICAgKiBhcHAgZnJvbSBhIHByb3Zpc2lvbmluZyBzZXJ2ZXIuCisKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9ERVZJQ0VfUkVWT0tFRCBpZiB0aGUgZGV2aWNlIGhhcyBiZWVuCisgICAgICogZGlzYWJsZWQgYnkgdGhlIGxpY2Vuc2UgcG9saWN5LCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQKKyAgICAgKiBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHByb3Zpc2lvbgorICAgICAqIHJlc3BvbnNlIGNhbm5vdCBiZSBoYW5kbGVkLgorICAgICAqIEByZXR1cm4gY2VydGlmaWNhdGUgdGhlIHB1YmxpYyBjZXJ0aWZpY2F0ZSByZXN1bHRpbmcgZnJvbSB0aGUgcHJvdmlzaW9uaW5nCisgICAgICogb3BlcmF0aW9uLCBpZiBhbnkuIEFuIGVtcHR5IHZlY3RvciBpbmRpY2F0ZXMgdGhhdCBubyBjZXJ0aWZpY2F0ZSB3YXMKKyAgICAgKiByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHdyYXBwZWRLZXkgYW4gb3BhcXVlIG9iamVjdCBjb250YWluaW5nIGVuY3J5cHRlZCBwcml2YXRlIGtleQorICAgICAqIG1hdGVyaWFsIHRvIGJlIHVzZWQgYnkgc2lnblJTQSB3aGVuIGNvbXB1dGluZyBhbiBSU0Egc2lnbmF0dXJlIG9uIGEKKyAgICAgKiBtZXNzYWdlLCBzZWUgdGhlIHNpZ25SU0EgbWV0aG9kLgorICAgICAqLworICAgIHByb3ZpZGVQcm92aXNpb25SZXNwb25zZSh2ZWM8dWludDhfdD4gcmVzcG9uc2UpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIHZlYzx1aW50OF90PiBjZXJ0aWZpY2F0ZSwgdmVjPHVpbnQ4X3Q+IHdyYXBwZWRLZXkpOworCisgICAgLyoqCisgICAgICogU2VjdXJlU3RvcCBpcyBhIHdheSBvZiBlbmZvcmNpbmcgdGhlIGNvbmN1cnJlbnQgc3RyZWFtIGxpbWl0IHBlcgorICAgICAqIHN1YnNjcmliZXIuIEl0IGNhbiBzZWN1cmVseSBtb25pdG9yIHRoZSBsaWZldGltZSBvZiBzZXNzaW9ucyBhY3Jvc3MKKyAgICAgKiBkZXZpY2UgcmVib290cyBieSBwZXJpb2RpY2FsbHkgcGVyc2lzdGluZyB0aGUgc2Vzc2lvbiBsaWZldGltZQorICAgICAqIHN0YXR1cyBpbiBzZWN1cmUgc3RvcmFnZS4KKyAgICAgKgorICAgICAqIEEgc2lnbmVkIHZlcnNpb24gb2YgdGhlIHNlc3Npb25JRCBpcyB3cml0dGVuIHRvIHBlcnNpc3RlbnQgc3RvcmFnZSBvbiB0aGUKKyAgICAgKiBkZXZpY2Ugd2hlbiBlYWNoIE1lZGlhQ3J5cHRvIG9iamVjdCBpcyBjcmVhdGVkIGFuZCBwZXJpb2RpY2FsbHkgZHVyaW5nCisgICAgICogcGxheWJhY2suIFRoZSBzZXNzaW9uSUQgaXMgc2lnbmVkIGJ5IHRoZSBkZXZpY2UgcHJpdmF0ZSBrZXkgdG8gcHJldmVudAorICAgICAqIHRhbXBlcmluZy4KKyAgICAgKgorICAgICAqIFdoZW4gcGxheWJhY2sgaXMgY29tcGxldGVkIHRoZSBzZXNzaW9uIGlzIGRlc3Ryb3llZCwgYW5kIHRoZSBzZWN1cmUKKyAgICAgKiBzdG9wcyBhcmUgcXVlcmllZCBieSB0aGUgYXBwLiBUaGUgYXBwIHRoZW4gZGVsaXZlcnMgdGhlIHNlY3VyZSBzdG9wCisgICAgICogbWVzc2FnZSB0byBhIHNlcnZlciB3aGljaCB2ZXJpZmllcyB0aGUgc2lnbmF0dXJlIHRvIGNvbmZpcm0gdGhhdCB0aGUKKyAgICAgKiBzZXNzaW9uIGFuZCBpdHMga2V5cyBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBkZXZpY2UuIFRoZSBwZXJzaXN0ZWQKKyAgICAgKiByZWNvcmQgb24gdGhlIGRldmljZSBpcyByZW1vdmVkIGFmdGVyIHJlY2VpdmluZyBhbmQgdmVyaWZ5aW5nIHRoZQorICAgICAqIHNpZ25lZCByZXNwb25zZSBmcm9tIHRoZSBzZXJ2ZXIuCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBHZXQgYWxsIHNlY3VyZSBzdG9wcyBvbiB0aGUgZGV2aWNlCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHNlY3VyZSBzdG9wcworICAgICAqIGNhbm5vdCBiZSByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHNlY3VyZVN0b3BzIGEgbGlzdCBvZiB0aGUgc2VjdXJlIHN0b3Agb3BhcXVlIG9iamVjdHMKKyAgICAgKi8KKyAgICBnZXRTZWN1cmVTdG9wcygpIGdlbmVyYXRlcworICAgICAgICAoU3RhdHVzIHN0YXR1cywgdmVjPFNlY3VyZVN0b3A+IHNlY3VyZVN0b3BzKTsKKworICAgIC8qKgorICAgICAqIEdldCBhbGwgc2VjdXJlIHN0b3BzIGJ5IHNlY3VyZSBzdG9wIElECisgICAgICoKKyAgICAgKiBAcGFyYW0gc2VjdXJlU3RvcElkIHRoZSBJRCBvZiB0aGUgc2VjdXJlIHN0b3AgdG8gcmV0dXJuLiBUaGUKKyAgICAgKiBzZWN1cmUgc3RvcCBJRCBpcyBkZWxpdmVyZWQgYnkgdGhlIGtleSBzZXJ2ZXIgYXMgcGFydCBvZiB0aGUga2V5CisgICAgICogcmVzcG9uc2UgYW5kIG11c3QgYWxzbyBiZSBrbm93biBieSB0aGUgYXBwLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBCQURfVkFMVUUgaWYgdGhlIHNlY3VyZVN0b3BJZCBpcyBpbnZhbGlkIG9yCisgICAgICogRVJST1JfRFJNX0lOVkFMSURfU1RBVEUgaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBzZWN1cmUgc3RvcAorICAgICAqIGNhbm5vdCBiZSByZXR1cm5lZC4KKyAgICAgKiBAcmV0dXJuIHNlY3VyZVN0b3AgdGhlIHNlY3VyZSBzdG9wIG9wYXF1ZSBvYmplY3QKKyAgICAgKi8KKworICAgIGdldFNlY3VyZVN0b3AoU2VjdXJlU3RvcElkIHNlY3VyZVN0b3BJZCkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBTZWN1cmVTdG9wIHNlY3VyZVN0b3ApOworCisgICAgLyoqCisgICAgICogUmVsZWFzZSBhbGwgc2VjdXJlIHN0b3BzIG9uIHRoZSBkZXZpY2UKKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgc2VjdXJlCisgICAgICogc3RvcHMgY2Fubm90IGJlIHJlbGVhc2VkLgorICAgICAqLworICAgIHJlbGVhc2VBbGxTZWN1cmVTdG9wcygpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBSZWxlYXNlIGEgc2VjdXJlIHN0b3AgYnkgc2VjdXJlIHN0b3AgSUQKKyAgICAgKgorICAgICAqIEBwYXJhbSBzZWN1cmVTdG9wSWQgdGhlIElEIG9mIHRoZSBzZWN1cmUgc3RvcCB0byByZWxlYXNlLiBUaGUKKyAgICAgKiBzZWN1cmUgc3RvcCBJRCBpcyBkZWxpdmVyZWQgYnkgdGhlIGtleSBzZXJ2ZXIgYXMgcGFydCBvZiB0aGUga2V5CisgICAgICogcmVzcG9uc2UgYW5kIG11c3QgYWxzbyBiZSBrbm93biBieSB0aGUgYXBwLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBCQURfVkFMVUUgaWYgdGhlIHNlY3VyZVN0b3BJZCBpcyBpbnZhbGlkIG9yCisgICAgICogRVJST1JfRFJNX0lOVkFMSURfU1RBVEUgaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBzZWN1cmUgc3RvcAorICAgICAqIGNhbm5vdCBiZSByZWxlYXNlZC4KKyAgICAgKi8KKyAgICByZWxlYXNlU2VjdXJlU3RvcCh2ZWM8dWludDhfdD4gc2VjdXJlU3RvcElkKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQSBkcm0gc2NoZW1lIGNhbiBoYXZlIHByb3BlcnRpZXMgdGhhdCBhcmUgc2V0dGFibGUgYW5kIHJlYWRhYmxlCisgICAgICogYnkgYW4gYXBwLiBUaGVyZSBhcmUgYSBmZXcgZm9ybXMgb2YgcHJvcGVydHkgYWNjZXNzIG1ldGhvZHMsCisgICAgICogZGVwZW5kaW5nIG9uIHRoZSBkYXRhIHR5cGUgb2YgdGhlIHByb3BlcnR5LgorICAgICAqCisgICAgICogUHJvcGVydHkgdmFsdWVzIGRlZmluZWQgYnkgdGhlIHB1YmxpYyBBUEkgYXJlOgorICAgICAqICAgInZlbmRvciIgW3N0cmluZ10gaWRlbnRpZmllcyB0aGUgbWFrZXIgb2YgdGhlIGRybSBzY2hlbWUKKyAgICAgKiAgICJ2ZXJzaW9uIiBbc3RyaW5nXSBpZGVudGlmaWVzIHRoZSB2ZXJzaW9uIG9mIHRoZSBkcm0gc2NoZW1lCisgICAgICogICAiZGVzY3JpcHRpb24iIFtzdHJpbmddIGRlc2NyaWJlcyB0aGUgZHJtIHNjaGVtZQorICAgICAqICAgJ2RldmljZVVuaXF1ZUlkJyBbYnl0ZSBhcnJheV0gVGhlIGRldmljZSB1bmlxdWUgaWRlbnRpZmllciBpcworICAgICAqICAgZXN0YWJsaXNoZWQgZHVyaW5nIGRldmljZSBwcm92aXNpb25pbmcgYW5kIHByb3ZpZGVzIGEgbWVhbnMgb2YKKyAgICAgKiAgIHVuaXF1ZWx5IGlkZW50aWZ5aW5nIGVhY2ggZGV2aWNlLgorICAgICAqCisgICAgICogU2luY2UgZHJtIHNjaGVtZSBwcm9wZXJ0aWVzIG1heSB2YXJ5LCBhZGRpdGlvbmFsIGZpZWxkIG5hbWVzIG1heSBiZQorICAgICAqIGRlZmluZWQgYnkgZWFjaCBEUk0gdmVuZG9yLiBSZWZlciB0byB5b3VyIERSTSBwcm92aWRlciBkb2N1bWVudGF0aW9uCisgICAgICogZm9yIGRlZmluaXRpb25zIG9mIGl0cyBhZGRpdGlvbmFsIGZpZWxkIG5hbWVzLgorICAgICAqLworCisgICAgLyoqCisgICAgICogUmVhZCBhIHN0cmluZyBwcm9wZXJ0eSB2YWx1ZSBnaXZlbiB0aGUgcHJvcGVydHkgbmFtZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgdGhlIG5hbWUgb2YgdGhlIHByb3BlcnR5CisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBCQURfVkFMVUUgaWYgdGhlIHByb3BlcnR5IG5hbWUgaXMgaW52YWxpZCwKKyAgICAgKiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSBpZiB0aGUgcHJvcGVydHkgaXMgbm90IHN1cHBvcnRlZCwgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHByb3BlcnR5CisgICAgICogY2Fubm90IGJlIG9idGFpbmVkLgorICAgICAqIEByZXR1cm4gdmFsdWUgdGhlIHByb3BlcnR5IHZhbHVlIHN0cmluZworICAgICAqLworICAgIGdldFByb3BlcnR5U3RyaW5nKHN0cmluZyBwcm9wZXJ0eU5hbWUpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgc3RyaW5nIHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFJlYWQgYSBieXRlIGFycmF5IHByb3BlcnR5IHZhbHVlIGdpdmVuIHRoZSBwcm9wZXJ0eSBuYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5TmFtZSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEJBRF9WQUxVRSBpZiB0aGUgcHJvcGVydHkgbmFtZSBpcyBpbnZhbGlkLAorICAgICAqIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc3VwcG9ydGVkLCBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgcHJvcGVydHkKKyAgICAgKiBjYW5ub3QgYmUgb2J0YWluZWQuCisgICAgICogQHJldHVybiB2YWx1ZSB0aGUgcHJvcGVydHkgdmFsdWUgYnl0ZSBhcnJheQorICAgICAqLworICAgIGdldFByb3BlcnR5Qnl0ZUFycmF5KHN0cmluZyBwcm9wZXJ0eU5hbWUpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHZhbHVlKTsKKworICAgIC8qKgorICAgICAqIFdyaXRlIGEgcHJvcGVydHkgc3RyaW5nIHZhbHVlIGdpdmVuIHRoZSBwcm9wZXJ0eSBuYW1lCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lIHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAqIEBwYXJhbSB2YWx1ZSB0aGUgdmFsdWUgdG8gd3JpdGUKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEJBRF9WQUxVRSBpZiB0aGUgcHJvcGVydHkgbmFtZSBpcyBpbnZhbGlkLAorICAgICAqIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFIGlmIHRoZSBwcm9wZXJ0eSBpcyBub3Qgc3VwcG9ydGVkLCBvcgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgcHJvcGVydHkKKyAgICAgKiBjYW5ub3QgYmUgc2V0LgorICAgICAqLworICAgIHNldFByb3BlcnR5U3RyaW5nKHN0cmluZyBwcm9wZXJ0eU5hbWUsIHN0cmluZyB2YWx1ZSkKKyAgICAgICAgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFdyaXRlIGEgcHJvcGVydHkgYnl0ZSBhcnJheSB2YWx1ZSBnaXZlbiB0aGUgcHJvcGVydHkgbmFtZQorICAgICAqCisgICAgICogQHBhcmFtIHByb3BlcnR5TmFtZSB0aGUgbmFtZSBvZiB0aGUgcHJvcGVydHkKKyAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRvIHdyaXRlCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZgorICAgICAqIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiBCQURfVkFMVUUgaWYgdGhlIHByb3BlcnR5IG5hbWUgaXMgaW52YWxpZCwKKyAgICAgKiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSBpZiB0aGUgcHJvcGVydHkgaXMgbm90IHN1cHBvcnRlZCwgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHByb3BlcnR5CisgICAgICogY2Fubm90IGJlIHNldC4KKyAgICAgKi8KKyAgICBzZXRQcm9wZXJ0eUJ5dGVBcnJheShzdHJpbmcgcHJvcGVydHlOYW1lLCB2ZWM8dWludDhfdD4gdmFsdWUgKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhlIGZvbGxvd2luZyBtZXRob2RzIGltcGxlbWVudCBvcGVyYXRpb25zIG9uIGEgQ3J5cHRvU2Vzc2lvbiB0byBzdXBwb3J0CisgICAgICogZW5jcnlwdCwgZGVjcnlwdCwgc2lnbiB2ZXJpZnkgb3BlcmF0aW9ucyBvbiBvcGVyYXRvci1wcm92aWRlZAorICAgICAqIHNlc3Npb24ga2V5cy4KKyAgICAgKi8KKworICAgIC8qKgorICAgICAqIFNldCB0aGUgY2lwaGVyIGFsZ29yaXRobSB0byBiZSB1c2VkIGZvciB0aGUgc3BlY2lmaWVkIHNlc3Npb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0gYWxnb3JpdGhtIHRoZSBhbGdvcml0aG0gdG8gdXNlLiBUaGUgc3RyaW5nIGNvbmZvcm1zIHRvIEpDQQorICAgICAqIFN0YW5kYXJkIE5hbWVzIGZvciBDaXBoZXIgVHJhbnNmb3JtcyBhbmQgaXMgY2FzZSBpbnNlbnNpdGl2ZS4gQW4KKyAgICAgKiBleGFtcGxlIGFsZ29yaXRobSBpcyAiQUVTL0NCQy9QS0NTNVBhZGRpbmciLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHRoZSBzdGF0dXMgb2YgdGhlIGNhbGwuIFRoZSBzdGF0dXMgbXVzdCBiZSBPSyBvciBvbmUgb2YKKyAgICAgKiB0aGUgZm9sbG93aW5nIGVycm9yczogRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCBpZiB0aGUgc2Vzc2lvbiBpcyBub3QKKyAgICAgKiBvcGVuZWQsIEJBRF9WQUxVRSBpZiBhbnkgcGFyYW1ldGVycyBhcmUgaW52YWxpZCBvciBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURQorICAgICAqIGlmIHRoZSBIQUwgaXMgaW4gYSBzdGF0ZSB3aGVyZSB0aGUgYWxnb3JpdGhtIGNhbm5vdCBiZSBzZXQuCisgICAgICovCisgICAgc2V0Q2lwaGVyQWxnb3JpdGhtKFNlc3Npb25JZCBzZXNzaW9uSWQsIHN0cmluZyBhbGdvcml0aG0pCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIE1BQyBhbGdvcml0aG0gdG8gYmUgdXNlZCBmb3IgY29tcHV0aW5nIGhhc2hlcyBpbiBhIHNlc3Npb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0gYWxnb3JpdGhtIHRoZSBhbGdvcml0aG0gdG8gdXNlLiBUaGUgc3RyaW5nIGNvbmZvcm1zIHRvIEpDQQorICAgICAqIFN0YW5kYXJkIE5hbWVzIGZvciBNYWMgQWxnb3JpdGhtcyBhbmQgaXMgY2FzZSBpbnNlbnNpdGl2ZS4gQW4gZXhhbXBsZSBNQUMKKyAgICAgKiBhbGdvcml0aG0gc3RyaW5nIGlzICJIbWFjU0hBMjU2Ii4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mIHRoZQorICAgICAqIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIGFsZ29yaXRobSBjYW5ub3QgYmUgc2V0LgorICAgICAqLworICAgIHNldE1hY0FsZ29yaXRobShTZXNzaW9uSWQgc2Vzc2lvbklkLCBzdHJpbmcgYWxnb3JpdGhtKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogRW5jcnlwdCB0aGUgcHJvdmlkZWQgaW5wdXQgYnVmZmVyIHdpdGggdGhlIGNpcGhlciBhbGdvcml0aG0gc3BlY2lmaWVkIGJ5CisgICAgICogc2V0Q2lwaGVyQWxnb3JpdGhtIGFuZCB0aGUga2V5IHNlbGVjdGVkIGJ5IGtleUlkLCBhbmQgcmV0dXJuIHRoZQorICAgICAqIGVuY3J5cHRlZCBkYXRhLgorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCB0aGUgc2Vzc2lvbiBpZCB0aGUgY2FsbCBhcHBsaWVzIHRvCisgICAgICogQHBhcmFtIGtleUlkIHRoZSBJRCBvZiB0aGUga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGlvbgorICAgICAqIEBwYXJhbSBpbnB1dCB0aGUgaW5wdXQgZGF0YSB0byBlbmNyeXB0CisgICAgICogQHBhcmFtIGl2IHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IgdG8gdXNlIGZvciBlbmNyeXB0aW9uCisgICAgICogQHJldHVybiBzdGF0dXMgdGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4gVGhlIHN0YXR1cyBtdXN0IGJlIE9LIG9yIG9uZSBvZiB0aGUKKyAgICAgKiBmb2xsb3dpbmcgZXJyb3JzOiBFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVEIGlmIHRoZSBzZXNzaW9uIGlzIG5vdCBvcGVuZWQsCisgICAgICogQkFEX1ZBTFVFIGlmIGFueSBwYXJhbWV0ZXJzIGFyZSBpbnZhbGlkIG9yIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFCisgICAgICogaWYgdGhlIEhBTCBpcyBpbiBhIHN0YXRlIHdoZXJlIHRoZSBlbmNyeXB0IG9wZXJhdGlvbiBjYW5ub3QgYmUgcGVyZm9ybWVkLgorICAgICAqIEByZXR1cm4gb3V0cHV0IHRoZSBkZWNyeXB0ZWQgZGF0YQorICAgICAqLworICAgIGVuY3J5cHQoU2Vzc2lvbklkIHNlc3Npb25JZCwgdmVjPHVpbnQ4X3Q+IGtleUlkLCB2ZWM8dWludDhfdD4gaW5wdXQsCisgICAgICAgICAgICB2ZWM8dWludDhfdD4gaXYpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IG91dHB1dCk7CisKKyAgICAvKioKKyAgICAgKiBEZWNyeXB0IHRoZSBwcm92aWRlZCBpbnB1dCBidWZmZXIgd2l0aCB0aGUgY2lwaGVyIGFsZ29yaXRobQorICAgICAqIHNwZWNpZmllZCBieSBzZXRDaXBoZXJBbGdvcml0aG0gYW5kIHRoZSBrZXkgc2VsZWN0ZWQgYnkga2V5SWQsCisgICAgICogYW5kIHJldHVybiB0aGUgZGVjcnlwdGVkIGRhdGEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2Vzc2lvbklkIHRoZSBzZXNzaW9uIGlkIHRoZSBjYWxsIGFwcGxpZXMgdG8KKyAgICAgKiBAcGFyYW0ga2V5SWQgdGhlIElEIG9mIHRoZSBrZXkgdG8gdXNlIGZvciBkZWNyeXB0aW9uCisgICAgICogQHBhcmFtIGlucHV0IHRoZSBpbnB1dCBkYXRhIHRvIGRlY3J5cHQKKyAgICAgKiBAcGFyYW0gaXYgdGhlIGluaXRpYWxpemF0aW9uIHZlY3RvciB0byB1c2UgZm9yIGRlY3J5cHRpb24KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIGRlY3J5cHQgb3BlcmF0aW9uIGNhbm5vdCBiZQorICAgICAqIHBlcmZvcm1lZC4KKyAgICAgKiBAcmV0dXJuIG91dHB1dCB0aGUgZGVjcnlwdGVkIGRhdGEKKyAgICAgKi8KKyAgICBkZWNyeXB0KFNlc3Npb25JZCBzZXNzaW9uSWQsIHZlYzx1aW50OF90PiBrZXlJZCwgdmVjPHVpbnQ4X3Q+IGlucHV0LAorICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGl2KSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHZlYzx1aW50OF90PiBvdXRwdXQpOworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIHNpZ25hdHVyZSBvdmVyIHRoZSBwcm92aWRlZCBtZXNzYWdlIHVzaW5nIHRoZSBtYWMgYWxnb3JpdGhtCisgICAgICogc3BlY2lmaWVkIGJ5IHNldE1hY0FsZ29yaXRobSBhbmQgdGhlIGtleSBzZWxlY3RlZCBieSBrZXlJZCBhbmQgcmV0dXJuCisgICAgICogdGhlIHNpZ25hdHVyZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEBwYXJhbSBrZXlJZCB0aGUgSUQgb2YgdGhlIGtleSB0byB1c2UgZm9yIGRlY3J5cHRpb24KKyAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSB0byBjb21wdXRlIGEgc2lnbmF0dXJlIG92ZXIKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHNpZ24gb3BlcmF0aW9uIGNhbm5vdCBiZQorICAgICAqIHBlcmZvcm1lZC4KKyAgICAgKiBAcmV0dXJuIHNpZ25hdHVyZSB0aGUgY29tcHV0ZWQgc2lnbmF0dXJlCisgICAgICovCisgICAgc2lnbihTZXNzaW9uSWQgc2Vzc2lvbklkLCB2ZWM8dWludDhfdD4ga2V5SWQsIHZlYzx1aW50OF90PiBtZXNzYWdlKQorICAgICAgICBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMsIHZlYzx1aW50OF90PiBzaWduYXR1cmUpOworCisgICAgLyoqCisgICAgICogQ29tcHV0ZSBhIGhhc2ggb2YgdGhlIHByb3ZpZGVkIG1lc3NhZ2UgdXNpbmcgdGhlIG1hYyBhbGdvcml0aG0gc3BlY2lmaWVkCisgICAgICogYnkgc2V0TWFjQWxnb3JpdGhtIGFuZCB0aGUga2V5IHNlbGVjdGVkIGJ5IGtleUlkLCBhbmQgY29tcGFyZSB3aXRoIHRoZQorICAgICAqIGV4cGVjdGVkIHJlc3VsdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgdGhlIHNlc3Npb24gaWQgdGhlIGNhbGwgYXBwbGllcyB0bworICAgICAqIEBwYXJhbSBrZXlJZCB0aGUgSUQgb2YgdGhlIGtleSB0byB1c2UgZm9yIGRlY3J5cHRpb24KKyAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSB0byBjb21wdXRlIGEgaGFzaCBvZgorICAgICAqIEBwYXJhbSBzaWduYXR1cmUgdGhlIHNpZ25hdHVyZSB0byB2ZXJpZnkKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMgbm90CisgICAgICogb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUKKyAgICAgKiBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHZlcmlmeSBvcGVyYXRpb24gY2Fubm90IGJlCisgICAgICogcGVyZm9ybWVkLgorICAgICAqIEByZXR1cm4gbWF0Y2ggdHJ1ZSBpZiB0aGUgc2lnbmF0dXJlIGlzIHZlcmlmaWVkIHBvc2l0aXZlbHksCisgICAgICogZmFsc2Ugb3RoZXJ3aXNlLgorICAgICAqLworICAgIHZlcmlmeShTZXNzaW9uSWQgc2Vzc2lvbklkLCB2ZWM8dWludDhfdD4ga2V5SWQsIHZlYzx1aW50OF90PiBtZXNzYWdlLAorICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSkgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzLCBib29sIG1hdGNoKTsKKworICAgIC8qKgorICAgICAqIENvbXB1dGUgYW4gUlNBIHNpZ25hdHVyZSBvbiB0aGUgcHJvdmlkZWQgbWVzc2FnZSB1c2luZyB0aGUgc3BlY2lmaWVkCisgICAgICogYWxnb3JpdGhtLgorICAgICAqCisgICAgICogQHBhcmFtIHNlc3Npb25JZCB0aGUgc2Vzc2lvbiBpZCB0aGUgY2FsbCBhcHBsaWVzIHRvCisgICAgICogQHBhcmFtIGFsZ29yaXRobSB0aGUgc2lnbmluZyBhbGdvcml0aG0sIHN1Y2ggYXMgIlJTQVNTQS1QU1MtU0hBMSIKKyAgICAgKiBvciAiUEtDUzEtQmxvY2tUeXBlMSIKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSB0byBjb21wdXRlIHRoZSBzaWduYXR1cmUgb24KKyAgICAgKiBAcGFyYW0gd3JhcHBlZEtleSB0aGUgcHJpdmF0ZSBrZXkgcmV0dXJuZWQgZHVyaW5nIHByb3Zpc2lvbmluZyBhcworICAgICAqIHJldHVybmVkIGJ5IHByb3ZpZGVQcm92aXNpb25SZXNwb25zZS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyB0aGUgc3RhdHVzIG9mIHRoZSBjYWxsLiBUaGUgc3RhdHVzIG11c3QgYmUgT0sgb3Igb25lIG9mCisgICAgICogdGhlIGZvbGxvd2luZyBlcnJvcnM6IEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQgaWYgdGhlIHNlc3Npb24gaXMKKyAgICAgKiBub3Qgb3BlbmVkLCBCQURfVkFMVUUgaWYgYW55IHBhcmFtZXRlcnMgYXJlIGludmFsaWQgb3IKKyAgICAgKiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURSBpZiB0aGUgSEFMIGlzIGluIGEgc3RhdGUgd2hlcmUgdGhlIHNpZ25SU0EKKyAgICAgKiBvcGVyYXRpb24gY2Fubm90IGJlIHBlcmZvcm1lZC4KKyAgICAgKiBAcmV0dXJuIHNpZ25hdHVyZSB0aGUgUlNBIHNpZ25hdHVyZSBjb21wdXRlZCBvdmVyIHRoZSBtZXNzYWdlCisgICAgICovCisgICAgc2lnblJTQShTZXNzaW9uSWQgc2Vzc2lvbklkLCBzdHJpbmcgYWxnb3JpdGhtLCB2ZWM8dWludDhfdD4gbWVzc2FnZSwKKyAgICAgICAgdmVjPHVpbnQ4X3Q+IHdyYXBwZWRrZXkpCisgICAgICAgIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSk7CisKKyAgICAvKioKKyAgICAgKiBQbHVnaW5zIGNhbGwgdGhlIGZvbGxvd2luZyBtZXRob2RzIHRvIGRlbGl2ZXIgZXZlbnRzIHRvIHRoZQorICAgICAqIGphdmEgYXBwLgorICAgICAqLworCisgICAgLyoqCisgICAgICogU2V0IGEgbGlzdGVuZXIgZm9yIGEgZHJtIHNlc3Npb24uIFRoaXMgYWxsb3dzIHRoZSBkcm0gSEFMIHRvCisgICAgICogbWFrZSBhc3luY2hyb25vdXMgY2FsbHMgYmFjayB0byB0aGUgY2xpZW50IG9mIElEcm0uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGlzdGVuZXIgaW5zdGFuY2Ugb2YgSURybVBsdWdpbkxpc3RlbmVyIHRvIHJlY2VpdmUgdGhlIGV2ZW50cworICAgICAqLworICAgIHNldExpc3RlbmVyKElEcm1QbHVnaW5MaXN0ZW5lciBsaXN0ZW5lcik7CisKKyAgICAvKioKKyAgICAgKiBMZWdhY3kgZXZlbnQgc2VuZGluZyBtZXRob2QsIGl0IHNlbmRzIGV2ZW50cyBvZiB2YXJpb3VzIHR5cGVzIHVzaW5nIGEKKyAgICAgKiBzaW5nbGUgb3ZlcmxvYWRlZCBzZXQgb2YgcGFyYW1ldGVycy4gVGhpcyBmb3JtIGlzIGRlcHJlY2F0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZXZlbnRUeXBlIHRoZSB0eXBlIG9mIHRoZSBldmVudAorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGRhdGEgZXZlbnQtc3BlY2lmaWMgZGF0YSBibG9iCisgICAgICovCisgICAgc2VuZEV2ZW50KEV2ZW50VHlwZSBldmVudFR5cGUsIFNlc3Npb25JZCBzZXNzaW9uSWQsIHZlYzx1aW50OF90PiBkYXRhKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBsaWNlbnNlIGV4cGlyYXRpb24gdXBkYXRlIHRvIHRoZSBsaXN0ZW5lci4gVGhlIGV4cGlyYXRpb24KKyAgICAgKiB1cGRhdGUgaW5kaWNhdGVzIGhvdyBsb25nIHRoZSBjdXJyZW50IGxpY2Vuc2UgaXMgdmFsaWQgYmVmb3JlIGl0CisgICAgICogbmVlZHMgdG8gYmUgcmVuZXdlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGV4cGlyeVRpbWVJbk1TIHRoZSB0aW1lIHdoZW4gdGhlIGtleXMgbmVlZCB0byBiZSByZW5ld2VkLgorICAgICAqIFRoZSB0aW1lIGlzIGluIG1pbGxpc2Vjb25kcywgcmVsYXRpdmUgdG8gdGhlIFVuaXggZXBvY2guIEEgdGltZSBvZiAwCisgICAgICogaW5kaWNhdGVzIHRoYXQgdGhlIGtleXMgbmV2ZXIgZXhwaXJlLgorICAgICAqLworICAgICBzZW5kRXhwaXJhdGlvblVwZGF0ZShTZXNzaW9uSWQgc2Vzc2lvbklkLCBpbnQ2NF90IGV4cGlyeVRpbWVJbk1TKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBrZXlzIGNoYW5nZSBldmVudCB0byB0aGUgbGlzdGVuZXIuIFRoZSBrZXlzIGNoYW5nZSBldmVudAorICAgICAqIGluZGljYXRlcyB0aGUgc3RhdHVzIG9mIGVhY2gga2V5IGluIHRoZSBzZXNzaW9uLiBLZXlzIGNhbiBiZQorICAgICAqIGluZGljYXRlZCBhcyBiZWluZyB1c2FibGUsIGV4cGlyZWQsIG91dHB1dG5vdGFsbG93ZWQgb3Igc3RhdHVzcGVuZGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGtleVN0YXR1c0xpc3QgaW5kaWNhdGVzIHRoZSBzdGF0dXMgZm9yIGVhY2gga2V5IElEIGluIHRoZQorICAgICAqIHNlc3Npb24uCisgICAgICogQHBhcmFtIGhhc05ld1VzYWJsZUtleSBpbmRpY2F0ZXMgaWYgdGhlIGV2ZW50IGluY2x1ZGVzIGF0IGxlYXN0IG9uZQorICAgICAqIGtleSB0aGF0IGhhcyBiZWNvbWUgdXNhYmxlLgorICAgICAqLworICAgIHNlbmRLZXlzQ2hhbmdlKFNlc3Npb25JZCBzZXNzaW9uSWQsIHZlYzxLZXlTdGF0dXM+IGtleVN0YXR1c0xpc3QsCisgICAgICAgICAgICBib29sIGhhc05ld1VzYWJsZUtleSk7Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9JRHJtUGx1Z2luTGlzdGVuZXIuaGFsIGIvZHJtLzEuMC9JRHJtUGx1Z2luTGlzdGVuZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1Y2UwMDgKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL0lEcm1QbHVnaW5MaXN0ZW5lci5oYWwKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOjp0eXBlczsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvZHJtL0RybUFQSS5oOkRybVBsdWdpbkxpc3RlbmVyCisgKi8KKworLyoqCisgKiBJRHJtUGx1Z2luTGlzdGVuZXIgaXMgYSBsaXN0ZW5lciBpbnRlcmZhY2UgZm9yIERybSBldmVudHMgc2VudCBmcm9tIGFuCisgKiBJRHJtUGx1Z2luIGluc3RhbmNlLgorICovCitpbnRlcmZhY2UgSURybVBsdWdpbkxpc3RlbmVyIHsKKworICAgIC8qKgorICAgICAqIExlZ2FjeSBldmVudCBzZW5kaW5nIG1ldGhvZCwgaXQgc2VuZHMgZXZlbnRzIG9mIHZhcmlvdXMgdHlwZXMgdXNpbmcgYQorICAgICAqIHNpbmdsZSBvdmVybG9hZGVkIHNldCBvZiBwYXJhbWV0ZXJzLiBUaGlzIGZvcm0gaXMgZGVwcmVjYXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBldmVudFR5cGUgdGhlIHR5cGUgb2YgdGhlIGV2ZW50CisgICAgICogQHBhcmFtIHNlc3Npb25JZCBpZGVudGlmaWVzIHRoZSBzZXNzaW9uIHRoZSBldmVudCBvcmlnaW5hdGVkIGZyb20KKyAgICAgKiBAcGFyYW0gZGF0YSBldmVudC1zcGVjaWZpYyBkYXRhIGJsb2IKKyAgICAgKi8KKyAgICBvbmV3YXkgc2VuZEV2ZW50KEV2ZW50VHlwZSBldmVudFR5cGUsIFNlc3Npb25JZCBzZXNzaW9uSWQsCisgICAgICAgICAgICB2ZWM8dWludDhfdD4gZGF0YSk7CisKKyAgICAvKioKKyAgICAgKiBTZW5kIGEgbGljZW5zZSBleHBpcmF0aW9uIHVwZGF0ZSB0byB0aGUgbGlzdGVuZXIuIFRoZSBleHBpcmF0aW9uCisgICAgICogdXBkYXRlIGluZGljYXRlcyBob3cgbG9uZyB0aGUgY3VycmVudCBrZXlzIGFyZSB2YWxpZCBiZWZvcmUgdGhleQorICAgICAqIG5lZWQgdG8gYmUgcmVuZXdlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGV4cGlyeVRpbWVJbk1TIHRoZSB0aW1lIHdoZW4gdGhlIGtleXMgbmVlZCB0byBiZSByZW5ld2VkLgorICAgICAqIFRoZSB0aW1lIGlzIGluIG1pbGxpc2Vjb25kcywgcmVsYXRpdmUgdG8gdGhlIFVuaXggZXBvY2guIEEgdGltZQorICAgICAqIG9mIDAgaW5kaWNhdGVzIHRoYXQgdGhlIGtleXMgbmV2ZXIgZXhwaXJlLgorICAgICAqLworICAgIG9uZXdheSBzZW5kRXhwaXJhdGlvblVwZGF0ZShTZXNzaW9uSWQgc2Vzc2lvbklkLCBpbnQ2NF90IGV4cGlyeVRpbWVJbk1TKTsKKworICAgIC8qKgorICAgICAqIFNlbmQgYSBrZXlzIGNoYW5nZSBldmVudCB0byB0aGUgbGlzdGVuZXIuIFRoZSBrZXlzIGNoYW5nZSBldmVudAorICAgICAqIGluZGljYXRlcyB0aGUgc3RhdHVzIG9mIGVhY2gga2V5IGluIHRoZSBzZXNzaW9uLiBLZXlzIGNhbiBiZQorICAgICAqIGluZGljYXRlZCBhcyBiZWluZyB1c2FibGUsIGV4cGlyZWQsIG91dHB1dG5vdGFsbG93ZWQgb3Igc3RhdHVzcGVuZGluZy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXNzaW9uSWQgaWRlbnRpZmllcyB0aGUgc2Vzc2lvbiB0aGUgZXZlbnQgb3JpZ2luYXRlZCBmcm9tCisgICAgICogQHBhcmFtIGtleVN0YXR1c0xpc3QgaW5kaWNhdGVzIHRoZSBzdGF0dXMgZm9yIGVhY2gga2V5IElEIGluIHRoZQorICAgICAqIHNlc3Npb24uCisgICAgICogQHBhcmFtIGhhc05ld1VzYWJsZUtleSBpbmRpY2F0ZXMgaWYgdGhlIGV2ZW50IGluY2x1ZGVzIGF0IGxlYXN0IG9uZQorICAgICAqIGtleSB0aGF0IGhhcyBiZWNvbWUgdXNhYmxlLgorICAgICAqLworICAgIG9uZXdheSBzZW5kS2V5c0NoYW5nZShTZXNzaW9uSWQgc2Vzc2lvbklkLCB2ZWM8S2V5U3RhdHVzPiBrZXlTdGF0dXNMaXN0LAorICAgICAgICAgICAgYm9vbCBoYXNOZXdVc2FibGVLZXkpOworfTsKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvZHJtLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMwNWRhOAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsOTAgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworIyMjIyMjIyMjIyMjIyBCdWlsZCBsZWdhY3kgZHJtIHNlcnZpY2UgIyMjIyMjIyMjIyMjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wIFwKKyAgYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAgXAorICBsaWJoaWRsYmFzZSBcCisgIGxpYmhpZGx0cmFuc3BvcnQgXAorICBsaWJoYXJkd2FyZSBcCisgIGxpYmxvZyBcCisgIGxpYnV0aWxzIFwKKyAgbGliYmluZGVyIFwKKworTE9DQUxfQ19JTkNMVURFUyA6PSBcCisgIGhhcmR3YXJlL2ludGVyZmFjZXMvZHJtCisKKyMgVE9ETyhiLzE4OTQ4OTA5KSBTb21lIGxlZ2FjeSBEUk0gcGx1Z2lucyBvbmx5IHN1cHBvcnQgMzItYml0LiBUaGV5IG5lZWQgdG8gYmUKKyMgbWlncmF0ZWQgdG8gNjQtYml0LiBPbmNlIGFsbCBvZiBhIGRldmljZSdzIGxlZ2FjeSBEUk0gcGx1Z2lucyBzdXBwb3J0IDY0LWJpdCwKKyMgdGhhdCBkZXZpY2UgY2FuIHR1cm4gb24gVEFSR0VUX0VOQUJMRV9NRURJQURSTV82NCB0byBidWlsZCB0aGlzIHNlcnZpY2UgYXMKKyMgNjQtYml0LgoraWZuZXEgKCQoVEFSR0VUX0VOQUJMRV9NRURJQURSTV82NCksIHRydWUpCitMT0NBTF8zMl9CSVRfT05MWSA6PSB0cnVlCitlbmRpZgorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKKworIyMjIyMjIyMjIyMjIyBCdWlsZCBsZWdhY3kgZHJtIGltcGwgbGlicmFyeSAjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBEcm1GYWN0b3J5LmNwcCBcCisgICAgRHJtUGx1Z2luLmNwcCBcCisgICAgQ3J5cHRvRmFjdG9yeS5jcHAgXAorICAgIENyeXB0b1BsdWdpbi5jcHAgXAorICAgIExlZ2FjeVBsdWdpblBhdGguY3BwIFwKKyAgICBUeXBlQ29udmVydC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAgXAorICAgIGFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsbWVtb3J5IFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYm1lZGlhZHJtIFwKKyAgICBsaWJzdGFnZWZyaWdodF9mb3VuZGF0aW9uIFwKKyAgICBsaWJ1dGlscyBcCisKK0xPQ0FMX0NfSU5DTFVERVMgOj0gXAorICAgIGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUgXAorICAgIGZyYW1ld29ya3MvYXYvaW5jbHVkZQorCisjIFRPRE86IFNvbWUgbGVnYWN5IERSTSBwbHVnaW5zIG9ubHkgc3VwcG9ydCAzMi1iaXQuIFRoZXkgbmVlZCB0byBiZSBtaWdyYXRlZCB0bworIyA2NC1iaXQuIChiLzE4OTQ4OTA5KSBPbmNlIGFsbCBvZiBhIGRldmljZSdzIGxlZ2FjeSBEUk0gcGx1Z2lucyBzdXBwb3J0IDY0LWJpdCwKKyMgdGhhdCBkZXZpY2UgY2FuIHR1cm4gb24gVEFSR0VUX0VOQUJMRV9NRURJQURSTV82NCB0byBidWlsZCB0aGlzIGltcGwgYXMKKyMgNjQtYml0LgoraWZuZXEgKCQoVEFSR0VUX0VOQUJMRV9NRURJQURSTV82NCksIHRydWUpCitMT0NBTF8zMl9CSVRfT05MWSA6PSB0cnVlCitlbmRpZgorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvRmFjdG9yeS5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvRmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FhYjgzYgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5LmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLWltcGwiCisKKyNpbmNsdWRlICJDcnlwdG9GYWN0b3J5LmgiCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgIkNyeXB0b1BsdWdpbi5oIgorI2luY2x1ZGUgIkxlZ2FjeVBsdWdpblBhdGguaCIKKyNpbmNsdWRlICJUeXBlQ29udmVydC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisgICAgQ3J5cHRvRmFjdG9yeTo6Q3J5cHRvRmFjdG9yeSgpIDoKKyAgICAgICAgbG9hZGVyKGdldERybVBsdWdpblBhdGgoKSwgImNyZWF0ZUNyeXB0b0ZhY3RvcnkiKSB7CisgICAgfQorCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SUNyeXB0b0ZhY3RvcnkgZm9sbG93LgorICAgIFJldHVybjxib29sPiBDcnlwdG9GYWN0b3J5Ojppc0NyeXB0b1NjaGVtZVN1cHBvcnRlZCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiB1dWlkKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbG9hZGVyLmZhY3RvcnlDb3VudCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChsb2FkZXIuZ2V0RmFjdG9yeShpKS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQodXVpZC5kYXRhKCkpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBDcnlwdG9GYWN0b3J5OjpjcmVhdGVQbHVnaW4oY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIHV1aWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5pdERhdGEsIGNyZWF0ZVBsdWdpbl9jYiBfaGlkbF9jYikgeworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxvYWRlci5mYWN0b3J5Q291bnQoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAobG9hZGVyLmdldEZhY3RvcnkoaSktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKHV1aWQuZGF0YSgpKSkgeworICAgICAgICAgICAgICAgIGFuZHJvaWQ6OkNyeXB0b1BsdWdpbiAqbGVnYWN5UGx1Z2luID0gTlVMTDsKKyAgICAgICAgICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBsb2FkZXIuZ2V0RmFjdG9yeShpKS0+Y3JlYXRlUGx1Z2luKHV1aWQuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5pdERhdGEuZGF0YSgpLCBpbml0RGF0YS5zaXplKCksICZsZWdhY3lQbHVnaW4pOworICAgICAgICAgICAgICAgIENyeXB0b1BsdWdpbiAqbmV3UGx1Z2luID0gTlVMTDsKKyAgICAgICAgICAgICAgICBpZiAobGVnYWN5UGx1Z2luID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIkNyeXB0byBsZWdhY3kgSEFMOiBmYWlsZWQgdG8gY3JlYXRlIGNyeXB0byBwbHVnaW4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBuZXdQbHVnaW4gPSBuZXcgQ3J5cHRvUGx1Z2luKGxlZ2FjeVBsdWdpbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIG5ld1BsdWdpbik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBJQ3J5cHRvRmFjdG9yeSogSElETF9GRVRDSF9JQ3J5cHRvRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgICAgIHJldHVybiBuZXcgQ3J5cHRvRmFjdG9yeSgpOworICAgIH0KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b0ZhY3RvcnkuaCBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEyYjU1NwotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5LmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT0ZBQ1RPUllfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19DUllQVE9GQUNUT1JZX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8bWVkaWEvaGFyZHdhcmUvQ3J5cHRvQVBJLmg+CisjaW5jbHVkZSA8bWVkaWEvUGx1Z2luTG9hZGVyLmg+CisjaW5jbHVkZSA8bWVkaWEvU2hhcmVkTGlicmFyeS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9GYWN0b3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IENyeXB0b0ZhY3RvcnkgOiBwdWJsaWMgSUNyeXB0b0ZhY3RvcnkgeworICAgIENyeXB0b0ZhY3RvcnkoKTsKKyAgICB2aXJ0dWFsIH5DcnlwdG9GYWN0b3J5KCkge30KKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklDcnlwdG9GYWN0b3J5IGZvbGxvdy4KKworICAgIFJldHVybjxib29sPiBpc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgdXVpZCkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZVBsdWdpbihjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgdXVpZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbml0RGF0YSwgY3JlYXRlUGx1Z2luX2NiIF9oaWRsX2NiKQorICAgICAgICAgICAgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgYW5kcm9pZDo6UGx1Z2luTG9hZGVyPGFuZHJvaWQ6OkNyeXB0b0ZhY3Rvcnk+IGxvYWRlcjsKKworICAgIENyeXB0b0ZhY3RvcnkoY29uc3QgQ3J5cHRvRmFjdG9yeSAmKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBDcnlwdG9GYWN0b3J5ICYpID0gZGVsZXRlOworfTsKKworZXh0ZXJuICJDIiBJQ3J5cHRvRmFjdG9yeSogSElETF9GRVRDSF9JQ3J5cHRvRmFjdG9yeShjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT0ZBQ1RPUllfSApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b1BsdWdpbi5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvQ3J5cHRvUGx1Z2luLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41OTE4NjFhCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b1BsdWdpbi5jcHAKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAtaW1wbCIKKworI2luY2x1ZGUgIkNyeXB0b1BsdWdpbi5oIgorI2luY2x1ZGUgIlR5cGVDb252ZXJ0LmgiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG1lZGlhL3N0YWdlZnJpZ2h0L2ZvdW5kYXRpb24vQVN0cmluZy5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnk7Cit1c2luZyBhbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luIGZvbGxvdworICAgIFJldHVybjxib29sPiBDcnlwdG9QbHVnaW46OnJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBtaW1lKSB7CisgICAgICAgIHJldHVybiBtTGVnYWN5UGx1Z2luLT5yZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQobWltZS5jX3N0cigpKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gQ3J5cHRvUGx1Z2luOjpub3RpZnlSZXNvbHV0aW9uKHVpbnQzMl90IHdpZHRoLAorICAgICAgICAgICAgdWludDMyX3QgaGVpZ2h0KSB7CisgICAgICAgIG1MZWdhY3lQbHVnaW4tPm5vdGlmeVJlc29sdXRpb24od2lkdGgsIGhlaWdodCk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gQ3J5cHRvUGx1Z2luOjpzZXRNZWRpYURybVNlc3Npb24oCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkKSB7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhtTGVnYWN5UGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24odG9WZWN0b3Ioc2Vzc2lvbklkKSkpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBDcnlwdG9QbHVnaW46OnNldFNoYXJlZEJ1ZmZlckJhc2UoY29uc3QgaGlkbF9tZW1vcnkmIGJhc2UsCisgICAgICAgICAgICB1aW50MzJfdCBidWZmZXJJZCkgeworICAgICAgICBtU2hhcmVkQnVmZmVyTWFwW2J1ZmZlcklkXSA9IG1hcE1lbW9yeShiYXNlKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gQ3J5cHRvUGx1Z2luOjpkZWNyeXB0KGJvb2wgc2VjdXJlLAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIGtleUlkLAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIGl2LCBNb2RlIG1vZGUsCisgICAgICAgICAgICBjb25zdCBQYXR0ZXJuJiBwYXR0ZXJuLCBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLAorICAgICAgICAgICAgY29uc3QgU2hhcmVkQnVmZmVyJiBzb3VyY2UsIHVpbnQ2NF90IG9mZnNldCwKKyAgICAgICAgICAgIGNvbnN0IERlc3RpbmF0aW9uQnVmZmVyJiBkZXN0aW5hdGlvbiwKKyAgICAgICAgICAgIGRlY3J5cHRfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBpZiAobVNoYXJlZEJ1ZmZlck1hcC5maW5kKHNvdXJjZS5idWZmZXJJZCkgPT0gbVNoYXJlZEJ1ZmZlck1hcC5lbmQoKSkgeworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgMCwgInNvdXJjZSBkZWNyeXB0IGJ1ZmZlciBiYXNlIG5vdCBzZXQiKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZGVzdGluYXRpb24udHlwZSA9PSBCdWZmZXJUeXBlOjpTSEFSRURfTUVNT1JZKSB7CisgICAgICAgICAgICBjb25zdCBTaGFyZWRCdWZmZXImIGRlc3QgPSBkZXN0aW5hdGlvbi5ub25zZWN1cmVNZW1vcnk7CisgICAgICAgICAgICBpZiAobVNoYXJlZEJ1ZmZlck1hcC5maW5kKGRlc3QuYnVmZmVySWQpID09IG1TaGFyZWRCdWZmZXJNYXAuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCAwLCAiZGVzdGluYXRpb24gZGVjcnlwdCBidWZmZXIgYmFzZSBub3Qgc2V0Iik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6TW9kZSBsZWdhY3lNb2RlOworICAgICAgICBzd2l0Y2gobW9kZSkgeworICAgICAgICBjYXNlIE1vZGU6OlVORU5DUllQVEVEOgorICAgICAgICAgICAgbGVnYWN5TW9kZSA9IGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6a01vZGVfVW5lbmNyeXB0ZWQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNb2RlOjpBRVNfQ1RSOgorICAgICAgICAgICAgbGVnYWN5TW9kZSA9IGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6a01vZGVfQUVTX0NUUjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1vZGU6OkFFU19DQkNfQ1RTOgorICAgICAgICAgICAgbGVnYWN5TW9kZSA9IGFuZHJvaWQ6OkNyeXB0b1BsdWdpbjo6a01vZGVfQUVTX1dWOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTW9kZTo6QUVTX0NCQzoKKyAgICAgICAgICAgIGxlZ2FjeU1vZGUgPSBhbmRyb2lkOjpDcnlwdG9QbHVnaW46OmtNb2RlX0FFU19DQkM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBhbmRyb2lkOjpDcnlwdG9QbHVnaW46OlBhdHRlcm4gbGVnYWN5UGF0dGVybjsKKyAgICAgICAgbGVnYWN5UGF0dGVybi5tRW5jcnlwdEJsb2NrcyA9IHBhdHRlcm4uZW5jcnlwdEJsb2NrczsKKyAgICAgICAgbGVnYWN5UGF0dGVybi5tU2tpcEJsb2NrcyA9IHBhdHRlcm4uc2tpcEJsb2NrczsKKworICAgICAgICBhbmRyb2lkOjpDcnlwdG9QbHVnaW46OlN1YlNhbXBsZSAqbGVnYWN5U3ViU2FtcGxlcyA9CisgICAgICAgICAgICBuZXcgYW5kcm9pZDo6Q3J5cHRvUGx1Z2luOjpTdWJTYW1wbGVbc3ViU2FtcGxlcy5zaXplKCldOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3ViU2FtcGxlcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgbGVnYWN5U3ViU2FtcGxlc1tpXS5tTnVtQnl0ZXNPZkNsZWFyRGF0YQorICAgICAgICAgICAgICAgID0gc3ViU2FtcGxlc1tpXS5udW1CeXRlc09mQ2xlYXJEYXRhOworICAgICAgICAgICAgbGVnYWN5U3ViU2FtcGxlc1tpXS5tTnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEKKyAgICAgICAgICAgICAgICA9IHN1YlNhbXBsZXNbaV0ubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGE7CisgICAgICAgIH0KKworICAgICAgICBBU3RyaW5nIGRldGFpbE1lc3NhZ2U7CisgICAgICAgIHNwPElNZW1vcnk+IHNvdXJjZUJhc2UgPSBtU2hhcmVkQnVmZmVyTWFwW3NvdXJjZS5idWZmZXJJZF07CisKKyAgICAgICAgaWYgKHNvdXJjZS5vZmZzZXQgKyBvZmZzZXQgKyBzb3VyY2Uuc2l6ZSA+IHNvdXJjZUJhc2UtPmdldFNpemUoKSkgeworICAgICAgICAgICAgX2hpZGxfY2IoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgMCwgImludmFsaWQgYnVmZmVyIHNpemUiKTsKKyAgICAgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgICAgIH0KKworICAgICAgICB1aW50OF90ICpiYXNlID0gc3RhdGljX2Nhc3Q8dWludDhfdCAqPgorICAgICAgICAgICAgICAgIChzdGF0aWNfY2FzdDx2b2lkICo+KHNvdXJjZUJhc2UtPmdldFBvaW50ZXIoKSkpOworICAgICAgICB2b2lkICpzcmNQdHIgPSBzdGF0aWNfY2FzdDx2b2lkICo+KGJhc2UgKyBzb3VyY2Uub2Zmc2V0ICsgb2Zmc2V0KTsKKworICAgICAgICB2b2lkICpkZXN0UHRyID0gTlVMTDsKKyAgICAgICAgaWYgKGRlc3RpbmF0aW9uLnR5cGUgPT0gQnVmZmVyVHlwZTo6U0hBUkVEX01FTU9SWSkgeworICAgICAgICAgICAgY29uc3QgU2hhcmVkQnVmZmVyJiBkZXN0QnVmZmVyID0gZGVzdGluYXRpb24ubm9uc2VjdXJlTWVtb3J5OworICAgICAgICAgICAgc3A8SU1lbW9yeT4gZGVzdEJhc2UgPSBtU2hhcmVkQnVmZmVyTWFwW2Rlc3RCdWZmZXIuYnVmZmVySWRdOworICAgICAgICAgICAgaWYgKGRlc3RCdWZmZXIub2Zmc2V0ICsgZGVzdEJ1ZmZlci5zaXplID4gZGVzdEJhc2UtPmdldFNpemUoKSkgeworICAgICAgICAgICAgICAgIF9oaWRsX2NiKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIDAsICJpbnZhbGlkIGJ1ZmZlciBzaXplIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlc3RQdHIgPSBzdGF0aWNfY2FzdDx2b2lkICo+KGJhc2UgKyBkZXN0aW5hdGlvbi5ub25zZWN1cmVNZW1vcnkub2Zmc2V0KTsKKyAgICAgICAgfSBlbHNlIGlmIChkZXN0aW5hdGlvbi50eXBlID09IEJ1ZmZlclR5cGU6Ok5BVElWRV9IQU5ETEUpIHsKKyAgICAgICAgICAgIG5hdGl2ZV9oYW5kbGVfdCAqaGFuZGxlID0gY29uc3RfY2FzdDxuYXRpdmVfaGFuZGxlX3QgKj4oCisgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uLnNlY3VyZU1lbW9yeS5nZXROYXRpdmVIYW5kbGUoKSk7CisgICAgICAgICAgICBkZXN0UHRyID0gc3RhdGljX2Nhc3Q8dm9pZCAqPihoYW5kbGUpOworICAgICAgICB9CisgICAgICAgIHNzaXplX3QgcmVzdWx0ID0gbUxlZ2FjeVBsdWdpbi0+ZGVjcnlwdChzZWN1cmUsIGtleUlkLmRhdGEoKSwgaXYuZGF0YSgpLAorICAgICAgICAgICAgICAgIGxlZ2FjeU1vZGUsIGxlZ2FjeVBhdHRlcm4sIHNyY1B0ciwgbGVnYWN5U3ViU2FtcGxlcywKKyAgICAgICAgICAgICAgICBzdWJTYW1wbGVzLnNpemUoKSwgZGVzdFB0ciwgJmRldGFpbE1lc3NhZ2UpOworCisgICAgICAgIGRlbGV0ZVtdIGxlZ2FjeVN1YlNhbXBsZXM7CisKKyAgICAgICAgdWludDMyX3Qgc3RhdHVzOworICAgICAgICB1aW50MzJfdCBieXRlc1dyaXR0ZW47CisKKyAgICAgICAgaWYgKHJlc3VsdCA+PSAwKSB7CisgICAgICAgICAgICBzdGF0dXMgPSBhbmRyb2lkOjpPSzsKKyAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiA9IHJlc3VsdDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IHJlc3VsdDsKKyAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiA9IDA7CisgICAgICAgIH0KKworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCBieXRlc1dyaXR0ZW4sIGRldGFpbE1lc3NhZ2UuY19zdHIoKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkcm0KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9QbHVnaW4uaCBiL2RybS8xLjAvZGVmYXVsdC9DcnlwdG9QbHVnaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWNjMmFhCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0NyeXB0b1BsdWdpbi5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT1BMVUdJTl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT1BMVUdJTl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lDcnlwdG9QbHVnaW4uaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPG1lZGlhL2hhcmR3YXJlL0NyeXB0b0FQSS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OkRlc3RpbmF0aW9uQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpQYXR0ZXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTdWJTYW1wbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBDcnlwdG9QbHVnaW4gOiBwdWJsaWMgSUNyeXB0b1BsdWdpbiB7CisgICAgQ3J5cHRvUGx1Z2luKGFuZHJvaWQ6OkNyeXB0b1BsdWdpbiAqcGx1Z2luKSA6IG1MZWdhY3lQbHVnaW4ocGx1Z2luKSB7fQorCisgICAgfkNyeXB0b1BsdWdpbigpIHtkZWxldGUgbUxlZ2FjeVBsdWdpbjt9CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvUGx1Z2luCisgICAgLy8gZm9sbG93LgorCisgICAgUmV0dXJuPGJvb2w+IHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudChjb25zdCBoaWRsX3N0cmluZyYgbWltZSkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IG5vdGlmeVJlc29sdXRpb24odWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiBzZXRNZWRpYURybVNlc3Npb24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNldFNoYXJlZEJ1ZmZlckJhc2UoY29uc3QgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkmIGJhc2UsCisgICAgICAgIHVpbnQzMl90IGJ1ZmZlcklkKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBkZWNyeXB0KGJvb2wgc2VjdXJlLCBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYga2V5SWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgaXYsIE1vZGUgbW9kZSwgY29uc3QgUGF0dGVybiYgcGF0dGVybiwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IFNoYXJlZEJ1ZmZlciYgc291cmNlLAorICAgICAgICAgICAgdWludDY0X3Qgb2Zmc2V0LCBjb25zdCBEZXN0aW5hdGlvbkJ1ZmZlciYgZGVzdGluYXRpb24sCisgICAgICAgICAgICBkZWNyeXB0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBhbmRyb2lkOjpDcnlwdG9QbHVnaW4gKm1MZWdhY3lQbHVnaW47CisgICAgc3RkOjptYXA8dWludDMyX3QsIHNwPElNZW1vcnk+ID4gbVNoYXJlZEJ1ZmZlck1hcDsKKworICAgIENyeXB0b1BsdWdpbigpID0gZGVsZXRlOworICAgIENyeXB0b1BsdWdpbihjb25zdCBDcnlwdG9QbHVnaW4gJikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgQ3J5cHRvUGx1Z2luICYpID0gZGVsZXRlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0NSWVBUT1BMVUdJTl9ICmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvRHJtRmFjdG9yeS5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvRHJtRmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U1ZDk5OAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9Ecm1GYWN0b3J5LmNwcApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKK2AgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1pbXBsIgorCisjaW5jbHVkZSAiRHJtRmFjdG9yeS5oIgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlICJEcm1QbHVnaW4uaCIKKyNpbmNsdWRlICJMZWdhY3lQbHVnaW5QYXRoLmgiCisjaW5jbHVkZSAiVHlwZUNvbnZlcnQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworICAgIERybUZhY3Rvcnk6OkRybUZhY3RvcnkoKSA6CisgICAgICAgIGxvYWRlcihnZXREcm1QbHVnaW5QYXRoKCksICJjcmVhdGVEcm1GYWN0b3J5IikgeworICAgIH0KKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1GYWN0b3J5IGZvbGxvdy4KKyAgICBSZXR1cm48Ym9vbD4gRHJtRmFjdG9yeTo6aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQgKAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIHV1aWQpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsb2FkZXIuZmFjdG9yeUNvdW50KCk7IGkrKykgeworICAgICAgICAgICAgaWYgKGxvYWRlci5nZXRGYWN0b3J5KGkpLT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZCh1dWlkLmRhdGEoKSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmV0dXJuPGJvb2w+IERybUZhY3Rvcnk6OmlzQ29udGVudFR5cGVTdXBwb3J0ZWQgKAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIG1pbWVUeXBlKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbG9hZGVyLmZhY3RvcnlDb3VudCgpOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChsb2FkZXIuZ2V0RmFjdG9yeShpKS0+aXNDb250ZW50VHlwZVN1cHBvcnRlZChTdHJpbmc4KG1pbWVUeXBlLmNfc3RyKCkpKSkgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtRmFjdG9yeTo6Y3JlYXRlUGx1Z2luKGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiB1dWlkLAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIC8qIGFwcFBhY2thZ2VOYW1lICovLCBjcmVhdGVQbHVnaW5fY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxvYWRlci5mYWN0b3J5Q291bnQoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAobG9hZGVyLmdldEZhY3RvcnkoaSktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKHV1aWQuZGF0YSgpKSkgeworICAgICAgICAgICAgICAgIGFuZHJvaWQ6OkRybVBsdWdpbiAqbGVnYWN5UGx1Z2luID0gTlVMTDsKKyAgICAgICAgICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBsb2FkZXIuZ2V0RmFjdG9yeShpKS0+Y3JlYXRlRHJtUGx1Z2luKAorICAgICAgICAgICAgICAgICAgICAgICAgdXVpZC5kYXRhKCksICZsZWdhY3lQbHVnaW4pOworICAgICAgICAgICAgICAgIERybVBsdWdpbiAqbmV3UGx1Z2luID0gTlVMTDsKKyAgICAgICAgICAgICAgICBpZiAobGVnYWN5UGx1Z2luID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIkRybSBsZWdhY3kgSEFMOiBmYWlsZWQgdG8gY3JlYXRlIGRybSBwbHVnaW4iKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBuZXdQbHVnaW4gPSBuZXcgRHJtUGx1Z2luKGxlZ2FjeVBsdWdpbik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIG5ld1BsdWdpbik7CisgICAgICAgICAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYihTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBOVUxMKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBJRHJtRmFjdG9yeSogSElETF9GRVRDSF9JRHJtRmFjdG9yeShjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgICAgIHJldHVybiBuZXcgRHJtRmFjdG9yeSgpOworICAgIH0KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0RybUZhY3RvcnkuaCBiL2RybS8xLjAvZGVmYXVsdC9Ecm1GYWN0b3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTAwODg0NAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9Ecm1GYWN0b3J5LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0RSTUZBQ1RPUllfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19EUk1GQUNUT1JZX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JRHJtRmFjdG9yeS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8bWVkaWEvZHJtL0RybUFQSS5oPgorI2luY2x1ZGUgPG1lZGlhL1BsdWdpbkxvYWRlci5oPgorI2luY2x1ZGUgPG1lZGlhL1NoYXJlZExpYnJhcnkuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybVBsdWdpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBEcm1GYWN0b3J5IDogcHVibGljIElEcm1GYWN0b3J5IHsKKyAgICBEcm1GYWN0b3J5KCk7CisgICAgdmlydHVhbCB+RHJtRmFjdG9yeSgpIHt9CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtRmFjdG9yeSBmb2xsb3cuCisKKyAgICBSZXR1cm48Ym9vbD4gaXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIHV1aWQpCisgICAgICAgICAgICBvdmVycmlkZTsKKworICAgIFJldHVybjxib29sPiBpc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbnN0IGhpZGxfc3RyaW5nICZtaW1lVHlwZSkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZVBsdWdpbihjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiYgdXVpZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBhcHBQYWNrYWdlTmFtZSwgY3JlYXRlUGx1Z2luX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBhbmRyb2lkOjpQbHVnaW5Mb2FkZXI8YW5kcm9pZDo6RHJtRmFjdG9yeT4gbG9hZGVyOworCisgICAgRHJtRmFjdG9yeShjb25zdCBEcm1GYWN0b3J5ICYpID0gZGVsZXRlOworICAgIHZvaWQgb3BlcmF0b3I9KGNvbnN0IERybUZhY3RvcnkgJikgPSBkZWxldGU7Cit9OworCitleHRlcm4gIkMiIElEcm1GYWN0b3J5KiBISURMX0ZFVENIX0lEcm1GYWN0b3J5KGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHJtCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9fRFJNRkFDVE9SWV9ICmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvRHJtUGx1Z2luLmNwcCBiL2RybS8xLjAvZGVmYXVsdC9Ecm1QbHVnaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2OTVlZjcKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvRHJtUGx1Z2luLmNwcApAQCAtMCwwICsxLDQzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1pbXBsIgorCisjaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+CisKKyNpbmNsdWRlICJEcm1QbHVnaW4uaCIKKyNpbmNsdWRlICJUeXBlQ29udmVydC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybVBsdWdpbiBmb2xsb3cuCisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpvcGVuU2Vzc2lvbihvcGVuU2Vzc2lvbl9jYiBfaGlkbF9jYikgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5U2Vzc2lvbklkOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5vcGVuU2Vzc2lvbihsZWdhY3lTZXNzaW9uSWQpOworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMobGVnYWN5U2Vzc2lvbklkKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpjbG9zZVNlc3Npb24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCkgeworICAgICAgICByZXR1cm4gdG9TdGF0dXMobUxlZ2FjeVBsdWdpbi0+Y2xvc2VTZXNzaW9uKHRvVmVjdG9yKHNlc3Npb25JZCkpKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRLZXlSZXF1ZXN0KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzY29wZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbml0RGF0YSwgY29uc3QgaGlkbF9zdHJpbmcmIG1pbWVUeXBlLAorICAgICAgICAgICAgS2V5VHlwZSBrZXlUeXBlLCBjb25zdCBoaWRsX3ZlYzxLZXlWYWx1ZT4mIG9wdGlvbmFsUGFyYW1ldGVycywKKyAgICAgICAgICAgIGdldEtleVJlcXVlc3RfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBhbmRyb2lkOjpPSzsKKworICAgICAgICBhbmRyb2lkOjpEcm1QbHVnaW46OktleVR5cGUgbGVnYWN5S2V5VHlwZTsKKyAgICAgICAgc3dpdGNoKGtleVR5cGUpIHsKKyAgICAgICAgY2FzZSBLZXlUeXBlOjpPRkZMSU5FOgorICAgICAgICAgICAgbGVnYWN5S2V5VHlwZSA9IGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVR5cGVfT2ZmbGluZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleVR5cGU6OlNUUkVBTUlORzoKKyAgICAgICAgICAgIGxlZ2FjeUtleVR5cGUgPSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlUeXBlX1N0cmVhbWluZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtleVR5cGU6OlJFTEVBU0U6CisgICAgICAgICAgICBsZWdhY3lLZXlUeXBlID0gYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5VHlwZV9SZWxlYXNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBzdGF0dXMgPSBhbmRyb2lkOjpCQURfVkFMVUU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBsZWdhY3lSZXF1ZXN0OworICAgICAgICBLZXlSZXF1ZXN0VHlwZSByZXF1ZXN0VHlwZSA9IEtleVJlcXVlc3RUeXBlOjpVTktOT1dOOworICAgICAgICBTdHJpbmc4IGRlZmF1bHRVcmw7CisKKyAgICAgICAgaWYgKHN0YXR1cyA9PSBhbmRyb2lkOjpPSykgeworICAgICAgICAgICAgYW5kcm9pZDo6S2V5ZWRWZWN0b3I8U3RyaW5nOCwgU3RyaW5nOD4gbGVnYWN5T3B0aW9uYWxQYXJhbWV0ZXJzOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcHRpb25hbFBhcmFtZXRlcnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBsZWdhY3lPcHRpb25hbFBhcmFtZXRlcnMuYWRkKFN0cmluZzgob3B0aW9uYWxQYXJhbWV0ZXJzW2ldLmtleS5jX3N0cigpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZzgob3B0aW9uYWxQYXJhbWV0ZXJzW2ldLnZhbHVlLmNfc3RyKCkpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYW5kcm9pZDo6RHJtUGx1Z2luOjpLZXlSZXF1ZXN0VHlwZSBsZWdhY3lSZXF1ZXN0VHlwZSA9CisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVJlcXVlc3RUeXBlX1Vua25vd247CisKKyAgICAgICAgICAgIHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldEtleVJlcXVlc3QodG9WZWN0b3Ioc2NvcGUpLAorICAgICAgICAgICAgICAgICAgICB0b1ZlY3Rvcihpbml0RGF0YSksIFN0cmluZzgobWltZVR5cGUuY19zdHIoKSksIGxlZ2FjeUtleVR5cGUsCisgICAgICAgICAgICAgICAgICAgIGxlZ2FjeU9wdGlvbmFsUGFyYW1ldGVycywgbGVnYWN5UmVxdWVzdCwgZGVmYXVsdFVybCwKKyAgICAgICAgICAgICAgICAgICAgJmxlZ2FjeVJlcXVlc3RUeXBlKTsKKworICAgICAgICAgICAgc3dpdGNoKGxlZ2FjeVJlcXVlc3RUeXBlKSB7CisgICAgICAgICAgICBjYXNlIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVJlcXVlc3RUeXBlX0luaXRpYWw6CisgICAgICAgICAgICAgICAgcmVxdWVzdFR5cGUgPSBLZXlSZXF1ZXN0VHlwZTo6SU5JVElBTDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5UmVxdWVzdFR5cGVfUmVuZXdhbDoKKyAgICAgICAgICAgICAgICByZXF1ZXN0VHlwZSA9IEtleVJlcXVlc3RUeXBlOjpSRU5FV0FMOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlSZXF1ZXN0VHlwZV9SZWxlYXNlOgorICAgICAgICAgICAgICAgIHJlcXVlc3RUeXBlID0gS2V5UmVxdWVzdFR5cGU6OlJFTEVBU0U7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0tleVJlcXVlc3RUeXBlX1Vua25vd246CisgICAgICAgICAgICAgICAgcmVxdWVzdFR5cGUgPSBLZXlSZXF1ZXN0VHlwZTo6VU5LTk9XTjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMobGVnYWN5UmVxdWVzdCksIHJlcXVlc3RUeXBlLAorICAgICAgICAgICAgICAgICBkZWZhdWx0VXJsLnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpwcm92aWRlS2V5UmVzcG9uc2UoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNjb3BlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlc3BvbnNlLCBwcm92aWRlS2V5UmVzcG9uc2VfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4ga2V5U2V0SWQ7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPnByb3ZpZGVLZXlSZXNwb25zZSh0b1ZlY3RvcihzY29wZSksCisgICAgICAgICAgICAgICAgdG9WZWN0b3IocmVzcG9uc2UpLCBrZXlTZXRJZCk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhrZXlTZXRJZCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjxTdGF0dXM+IERybVBsdWdpbjo6cmVtb3ZlS2V5cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkKSB7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhtTGVnYWN5UGx1Z2luLT5yZW1vdmVLZXlzKHRvVmVjdG9yKHNlc3Npb25JZCkpKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OnJlc3RvcmVLZXlzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5U2V0SWQpIHsKKyAgICAgICAgc3RhdHVzX3QgbGVnYWN5U3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+cmVzdG9yZUtleXModG9WZWN0b3Ioc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICB0b1ZlY3RvcihrZXlTZXRJZCkpOworICAgICAgICByZXR1cm4gdG9TdGF0dXMobGVnYWN5U3RhdHVzKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpxdWVyeUtleVN0YXR1cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgcXVlcnlLZXlTdGF0dXNfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBhbmRyb2lkOjpLZXllZFZlY3RvcjxTdHJpbmc4LCBTdHJpbmc4PiBsZWdhY3lJbmZvTWFwOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5xdWVyeUtleVN0YXR1cyh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIGxlZ2FjeUluZm9NYXApOworCisgICAgICAgIFZlY3RvcjxLZXlWYWx1ZT4gaW5mb01hcFZlYzsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZWdhY3lJbmZvTWFwLnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBLZXlWYWx1ZSBrZXlWYWx1ZVBhaXI7CisgICAgICAgICAgICBrZXlWYWx1ZVBhaXIua2V5ID0gU3RyaW5nOChsZWdhY3lJbmZvTWFwLmtleUF0KGkpKTsKKyAgICAgICAgICAgIGtleVZhbHVlUGFpci52YWx1ZSA9IFN0cmluZzgobGVnYWN5SW5mb01hcC52YWx1ZUF0KGkpKTsKKyAgICAgICAgICAgIGluZm9NYXBWZWMucHVzaF9iYWNrKGtleVZhbHVlUGFpcik7CisgICAgICAgIH0KKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGluZm9NYXBWZWMpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRQcm92aXNpb25SZXF1ZXN0KAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGNlcnRpZmljYXRlVHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjZXJ0aWZpY2F0ZUF1dGhvcml0eSwKKyAgICAgICAgICAgIGdldFByb3Zpc2lvblJlcXVlc3RfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5UmVxdWVzdDsKKyAgICAgICAgU3RyaW5nOCBsZWdhY3lEZWZhdWx0VXJsOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5nZXRQcm92aXNpb25SZXF1ZXN0KAorICAgICAgICAgICAgICAgIFN0cmluZzgoY2VydGlmaWNhdGVUeXBlLmNfc3RyKCkpLCBTdHJpbmc4KGNlcnRpZmljYXRlQXV0aG9yaXR5LmNfc3RyKCkpLAorICAgICAgICAgICAgICAgIGxlZ2FjeVJlcXVlc3QsIGxlZ2FjeURlZmF1bHRVcmwpOworCisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhsZWdhY3lSZXF1ZXN0KSwKKyAgICAgICAgICAgICAgICBoaWRsX3N0cmluZyhsZWdhY3lEZWZhdWx0VXJsKSk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6cHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlc3BvbnNlLAorICAgICAgICAgICAgcHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlX2NiIF9oaWRsX2NiKSB7CisKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNlcnRpZmljYXRlOworICAgICAgICBWZWN0b3I8dWludDhfdD4gd3JhcHBlZEtleTsKKworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5wcm92aWRlUHJvdmlzaW9uUmVzcG9uc2UoCisgICAgICAgICAgICAgICAgdG9WZWN0b3IocmVzcG9uc2UpLCBjZXJ0aWZpY2F0ZSwgd3JhcHBlZEtleSk7CisKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMobGVnYWN5U3RhdHVzKSwgdG9IaWRsVmVjKGNlcnRpZmljYXRlKSwKKyAgICAgICAgICAgICAgICB0b0hpZGxWZWMod3JhcHBlZEtleSkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OmdldFNlY3VyZVN0b3BzKGdldFNlY3VyZVN0b3BzX2NiIF9oaWRsX2NiKSB7CisgICAgICAgIExpc3Q8VmVjdG9yPHVpbnQ4X3Q+ID4gbGVnYWN5U2VjdXJlU3RvcHM7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldFNlY3VyZVN0b3BzKGxlZ2FjeVNlY3VyZVN0b3BzKTsKKworICAgICAgICBWZWN0b3I8U2VjdXJlU3RvcD4gc2VjdXJlU3RvcHNWZWM7CisgICAgICAgIExpc3Q8VmVjdG9yPHVpbnQ4X3Q+ID46Oml0ZXJhdG9yIGl0ZXIgPSBsZWdhY3lTZWN1cmVTdG9wcy5iZWdpbigpOworCisgICAgICAgIHdoaWxlIChpdGVyICE9IGxlZ2FjeVNlY3VyZVN0b3BzLmVuZCgpKSB7CisgICAgICAgICAgICBTZWN1cmVTdG9wIHNlY3VyZVN0b3A7CisgICAgICAgICAgICBzZWN1cmVTdG9wLm9wYXF1ZURhdGEgPSB0b0hpZGxWZWMoKml0ZXIrKyk7CisgICAgICAgICAgICBzZWN1cmVTdG9wc1ZlYy5wdXNoX2JhY2soc2VjdXJlU3RvcCk7CisgICAgICAgIH0KKworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMoc2VjdXJlU3RvcHNWZWMpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRTZWN1cmVTdG9wKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZWN1cmVTdG9wSWQsCisgICAgICAgICAgICBnZXRTZWN1cmVTdG9wX2NiIF9oaWRsX2NiKSB7CisKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxlZ2FjeVNlY3VyZVN0b3A7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldFNlY3VyZVN0b3AodG9WZWN0b3Ioc2VjdXJlU3RvcElkKSwKKyAgICAgICAgICAgICAgICBsZWdhY3lTZWN1cmVTdG9wKTsKKworICAgICAgICBTZWN1cmVTdG9wIHNlY3VyZVN0b3A7CisgICAgICAgIHNlY3VyZVN0b3Aub3BhcXVlRGF0YSA9IHRvSGlkbFZlYyhsZWdhY3lTZWN1cmVTdG9wKTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgc2VjdXJlU3RvcCk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpyZWxlYXNlQWxsU2VjdXJlU3RvcHMoKSB7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhtTGVnYWN5UGx1Z2luLT5yZWxlYXNlQWxsU2VjdXJlU3RvcHMoKSk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpyZWxlYXNlU2VjdXJlU3RvcCgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZWN1cmVTdG9wSWQpIHsKKyAgICAgICAgc3RhdHVzX3QgbGVnYWN5U3RhdHVzID0KKyAgICAgICAgICAgIG1MZWdhY3lQbHVnaW4tPnJlbGVhc2VTZWN1cmVTdG9wcyh0b1ZlY3RvcihzZWN1cmVTdG9wSWQpKTsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKGxlZ2FjeVN0YXR1cyk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6Z2V0UHJvcGVydHlTdHJpbmcoY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGdldFByb3BlcnR5U3RyaW5nX2NiIF9oaWRsX2NiKSB7CisgICAgICAgIFN0cmluZzggbGVnYWN5VmFsdWU7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgICAgIFN0cmluZzgocHJvcGVydHlOYW1lLmNfc3RyKCkpLCBsZWdhY3lWYWx1ZSk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIGxlZ2FjeVZhbHVlLnN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpnZXRQcm9wZXJ0eUJ5dGVBcnJheShjb25zdCBoaWRsX3N0cmluZyYgcHJvcGVydHlOYW1lLAorICAgICAgICAgICAgZ2V0UHJvcGVydHlCeXRlQXJyYXlfY2IgX2hpZGxfY2IpIHsKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxlZ2FjeVZhbHVlOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5nZXRQcm9wZXJ0eUJ5dGVBcnJheSgKKyAgICAgICAgICAgICAgICBTdHJpbmc4KHByb3BlcnR5TmFtZS5jX3N0cigpKSwgbGVnYWN5VmFsdWUpOworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCB0b0hpZGxWZWMobGVnYWN5VmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OnNldFByb3BlcnR5U3RyaW5nKGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgc3RhdHVzX3QgbGVnYWN5U3RhdHVzID0KKyAgICAgICAgICAgIG1MZWdhY3lQbHVnaW4tPnNldFByb3BlcnR5U3RyaW5nKFN0cmluZzgocHJvcGVydHlOYW1lLmNfc3RyKCkpLAorICAgICAgICAgICAgICAgICAgICBTdHJpbmc4KHZhbHVlLmNfc3RyKCkpKTsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKGxlZ2FjeVN0YXR1cyk7CisgICAgfQorCisgICAgUmV0dXJuPFN0YXR1cz4gRHJtUGx1Z2luOjpzZXRQcm9wZXJ0eUJ5dGVBcnJheSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgeworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPQorICAgICAgICAgICAgbUxlZ2FjeVBsdWdpbi0+c2V0UHJvcGVydHlCeXRlQXJyYXkoU3RyaW5nOChwcm9wZXJ0eU5hbWUuY19zdHIoKSksCisgICAgICAgICAgICAgICAgICAgIHRvVmVjdG9yKHZhbHVlKSk7CisgICAgICAgIHJldHVybiB0b1N0YXR1cyhsZWdhY3lTdGF0dXMpOworICAgIH0KKworICAgIFJldHVybjxTdGF0dXM+IERybVBsdWdpbjo6c2V0Q2lwaGVyQWxnb3JpdGhtKAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwgY29uc3QgaGlkbF9zdHJpbmcmIGFsZ29yaXRobSkgeworICAgICAgICBzdGF0dXNfdCBsZWdhY3lTdGF0dXMgPQorICAgICAgICAgICAgbUxlZ2FjeVBsdWdpbi0+c2V0Q2lwaGVyQWxnb3JpdGhtKHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgU3RyaW5nOChhbGdvcml0aG0uY19zdHIoKSkpOworICAgICAgICByZXR1cm4gdG9TdGF0dXMobGVnYWN5U3RhdHVzKTsKKyAgICB9CisKKyAgICBSZXR1cm48U3RhdHVzPiBEcm1QbHVnaW46OnNldE1hY0FsZ29yaXRobSgKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsIGNvbnN0IGhpZGxfc3RyaW5nJiBhbGdvcml0aG0pIHsKKyAgICAgICAgc3RhdHVzX3QgbGVnYWN5U3RhdHVzID0KKyAgICAgICAgICAgIG1MZWdhY3lQbHVnaW4tPnNldE1hY0FsZ29yaXRobSh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIFN0cmluZzgoYWxnb3JpdGhtLmNfc3RyKCkpKTsKKyAgICAgICAgcmV0dXJuIHRvU3RhdHVzKGxlZ2FjeVN0YXR1cyk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6ZW5jcnlwdChjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5wdXQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaXYsIGVuY3J5cHRfY2IgX2hpZGxfY2IpIHsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5T3V0cHV0OworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5lbmNyeXB0KHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgdG9WZWN0b3Ioa2V5SWQpLCB0b1ZlY3RvcihpbnB1dCksIHRvVmVjdG9yKGl2KSwgbGVnYWN5T3V0cHV0KTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGxlZ2FjeU91dHB1dCkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OmRlY3J5cHQoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGl2LCBkZWNyeXB0X2NiIF9oaWRsX2NiKSB7CisKKyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGxlZ2FjeU91dHB1dDsKKyAgICAgICAgc3RhdHVzX3Qgc3RhdHVzID0gbUxlZ2FjeVBsdWdpbi0+ZGVjcnlwdCh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIHRvVmVjdG9yKGtleUlkKSwgdG9WZWN0b3IoaW5wdXQpLCB0b1ZlY3RvcihpdiksIGxlZ2FjeU91dHB1dCk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhsZWdhY3lPdXRwdXQpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpzaWduKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5SWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBtZXNzYWdlLAorICAgICAgICAgICAgc2lnbl9jYiBfaGlkbF9jYikgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gbGVnYWN5U2lnbmF0dXJlOworICAgICAgICBzdGF0dXNfdCBzdGF0dXMgPSBtTGVnYWN5UGx1Z2luLT5zaWduKHRvVmVjdG9yKHNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgdG9WZWN0b3Ioa2V5SWQpLCB0b1ZlY3RvcihtZXNzYWdlKSwgbGVnYWN5U2lnbmF0dXJlKTsKKyAgICAgICAgX2hpZGxfY2IodG9TdGF0dXMoc3RhdHVzKSwgdG9IaWRsVmVjKGxlZ2FjeVNpZ25hdHVyZSkpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OnZlcmlmeShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgbWVzc2FnZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzaWduYXR1cmUsIHZlcmlmeV9jYiBfaGlkbF9jYikgeworCisgICAgICAgIGJvb2wgbWF0Y2g7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPnZlcmlmeSh0b1ZlY3RvcihzZXNzaW9uSWQpLAorICAgICAgICAgICAgICAgIHRvVmVjdG9yKGtleUlkKSwgdG9WZWN0b3IobWVzc2FnZSksIHRvVmVjdG9yKHNpZ25hdHVyZSksCisgICAgICAgICAgICAgICAgbWF0Y2gpOworICAgICAgICBfaGlkbF9jYih0b1N0YXR1cyhzdGF0dXMpLCBtYXRjaCk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6c2lnblJTQShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGFsZ29yaXRobSwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG1lc3NhZ2UsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgd3JhcHBlZEtleSwgc2lnblJTQV9jYiBfaGlkbF9jYikgeworCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBsZWdhY3lTaWduYXR1cmU7CisgICAgICAgIHN0YXR1c190IHN0YXR1cyA9IG1MZWdhY3lQbHVnaW4tPnNpZ25SU0EodG9WZWN0b3Ioc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICBTdHJpbmc4KGFsZ29yaXRobS5jX3N0cigpKSwgdG9WZWN0b3IobWVzc2FnZSksIHRvVmVjdG9yKHdyYXBwZWRLZXkpLAorICAgICAgICAgICAgICAgIGxlZ2FjeVNpZ25hdHVyZSk7CisgICAgICAgIF9oaWRsX2NiKHRvU3RhdHVzKHN0YXR1cyksIHRvSGlkbFZlYyhsZWdhY3lTaWduYXR1cmUpKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpzZXRMaXN0ZW5lcihjb25zdCBzcDxJRHJtUGx1Z2luTGlzdGVuZXI+JiBsaXN0ZW5lcikgeworICAgICAgICBtTGlzdGVuZXIgPSBsaXN0ZW5lcjsKKyAgICAgICAgbUxlZ2FjeVBsdWdpbi0+c2V0TGlzdGVuZXIobGlzdGVuZXIgPT0gTlVMTCA/IE5VTEwgOiB0aGlzKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gRHJtUGx1Z2luOjpzZW5kRXZlbnQoRXZlbnRUeXBlIGV2ZW50VHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhKSB7CisgICAgICAgIGlmIChtTGlzdGVuZXIgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgbUxpc3RlbmVyLT5zZW5kRXZlbnQoZXZlbnRUeXBlLCBzZXNzaW9uSWQsIGRhdGEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IERybVBsdWdpbjo6c2VuZEV4cGlyYXRpb25VcGRhdGUoCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLCBpbnQ2NF90IGV4cGlyeVRpbWVJbk1TKSB7CisgICAgICAgIGlmIChtTGlzdGVuZXIgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgbUxpc3RlbmVyLT5zZW5kRXhwaXJhdGlvblVwZGF0ZShzZXNzaW9uSWQsIGV4cGlyeVRpbWVJbk1TKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIFJldHVybjx2b2lkPiBEcm1QbHVnaW46OnNlbmRLZXlzQ2hhbmdlKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlTdGF0dXM+JiBrZXlTdGF0dXNMaXN0LCBib29sIGhhc05ld1VzYWJsZUtleSkgeworICAgICAgICBpZiAobUxpc3RlbmVyICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIG1MaXN0ZW5lci0+c2VuZEtleXNDaGFuZ2Uoc2Vzc2lvbklkLCBrZXlTdGF0dXNMaXN0LCBoYXNOZXdVc2FibGVLZXkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisKKyAgICAvLyBNZXRob2RzIGZyb20gYW5kcm9pZDo6RHJtUGx1Z2luTGlzdGVuZXIKKworICAgIHZvaWQgRHJtUGx1Z2luOjpzZW5kRXZlbnQoYW5kcm9pZDo6RHJtUGx1Z2luOjpFdmVudFR5cGUgbGVnYWN5RXZlbnRUeXBlLAorICAgICAgICAgICAgaW50IC8qdW51c2VkKi8sIFZlY3Rvcjx1aW50OF90PiBjb25zdCAqc2Vzc2lvbklkLAorICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0ICpkYXRhKSB7CisKKyAgICAgICAgRXZlbnRUeXBlIGV2ZW50VHlwZTsKKyAgICAgICAgYm9vbCBzZW5kRXZlbnQgPSB0cnVlOworICAgICAgICBzd2l0Y2gobGVnYWN5RXZlbnRUeXBlKSB7CisgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprRHJtUGx1Z2luRXZlbnRQcm92aXNpb25SZXF1aXJlZDoKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IEV2ZW50VHlwZTo6UFJPVklTSU9OX1JFUVVJUkVEOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprRHJtUGx1Z2luRXZlbnRLZXlOZWVkZWQ6CisgICAgICAgICAgICBldmVudFR5cGUgPSBFdmVudFR5cGU6OktFWV9ORUVERUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtEcm1QbHVnaW5FdmVudEtleUV4cGlyZWQ6CisgICAgICAgICAgICBldmVudFR5cGUgPSBFdmVudFR5cGU6OktFWV9FWFBJUkVEOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprRHJtUGx1Z2luRXZlbnRWZW5kb3JEZWZpbmVkOgorICAgICAgICAgICAgZXZlbnRUeXBlID0gRXZlbnRUeXBlOjpWRU5ET1JfREVGSU5FRDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGFuZHJvaWQ6OkRybVBsdWdpbjo6a0RybVBsdWdpbkV2ZW50U2Vzc2lvblJlY2xhaW1lZDoKKyAgICAgICAgICAgIGV2ZW50VHlwZSA9IEV2ZW50VHlwZTo6U0VTU0lPTl9SRUNMQUlNRUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHNlbmRFdmVudCA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlbmRFdmVudCkgeworICAgICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGVtcHR5VmVjdG9yOworICAgICAgICAgICAgbUxpc3RlbmVyLT5zZW5kRXZlbnQoZXZlbnRUeXBlLAorICAgICAgICAgICAgICAgICAgICB0b0hpZGxWZWMoc2Vzc2lvbklkID09IE5VTEwgPyBlbXB0eVZlY3RvcjogKnNlc3Npb25JZCksCisgICAgICAgICAgICAgICAgICAgIHRvSGlkbFZlYyhkYXRhID09IE5VTEwgPyBlbXB0eVZlY3RvcjogKmRhdGEpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgRHJtUGx1Z2luOjpzZW5kRXhwaXJhdGlvblVwZGF0ZShWZWN0b3I8dWludDhfdD4gY29uc3QgKnNlc3Npb25JZCwKKyAgICAgICAgICAgIGludDY0X3QgZXhwaXJ5VGltZUluTVMpIHsKKyAgICAgICAgbUxpc3RlbmVyLT5zZW5kRXhwaXJhdGlvblVwZGF0ZSh0b0hpZGxWZWMoKnNlc3Npb25JZCksIGV4cGlyeVRpbWVJbk1TKTsKKyAgICB9CisKKyAgICB2b2lkIERybVBsdWdpbjo6c2VuZEtleXNDaGFuZ2UoVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0ICpzZXNzaW9uSWQsCisgICAgICAgICAgICBWZWN0b3I8YW5kcm9pZDo6RHJtUGx1Z2luOjpLZXlTdGF0dXM+IGNvbnN0ICpsZWdhY3lLZXlTdGF0dXNMaXN0LAorICAgICAgICAgICAgYm9vbCBoYXNOZXdVc2FibGVLZXkpIHsKKworICAgICAgICBWZWN0b3I8S2V5U3RhdHVzPiBrZXlTdGF0dXNWZWM7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVnYWN5S2V5U3RhdHVzTGlzdC0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGNvbnN0IGFuZHJvaWQ6OkRybVBsdWdpbjo6S2V5U3RhdHVzICZsZWdhY3lLZXlTdGF0dXMgPQorICAgICAgICAgICAgICAgIGxlZ2FjeUtleVN0YXR1c0xpc3QtPml0ZW1BdChpKTsKKworICAgICAgICAgICAgS2V5U3RhdHVzIGtleVN0YXR1czsKKworICAgICAgICAgICAgc3dpdGNoKGxlZ2FjeUtleVN0YXR1cy5tVHlwZSkgeworICAgICAgICAgICAgY2FzZSBhbmRyb2lkOjpEcm1QbHVnaW46OmtLZXlTdGF0dXNUeXBlX1VzYWJsZToKKyAgICAgICAgICAgICAgICBrZXlTdGF0dXMudHlwZSA9IEtleVN0YXR1c1R5cGU6OlVTQUJMRTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5U3RhdHVzVHlwZV9FeHBpcmVkOgorICAgICAgICAgICAgICAgIGtleVN0YXR1cy50eXBlID0gS2V5U3RhdHVzVHlwZTo6RVhQSVJFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5U3RhdHVzVHlwZV9PdXRwdXROb3RBbGxvd2VkOgorICAgICAgICAgICAgICAgIGtleVN0YXR1cy50eXBlID0gS2V5U3RhdHVzVHlwZTo6T1VUUFVUTk9UQUxMT1dFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5U3RhdHVzVHlwZV9TdGF0dXNQZW5kaW5nOgorICAgICAgICAgICAgICAgIGtleVN0YXR1cy50eXBlID0gS2V5U3RhdHVzVHlwZTo6U1RBVFVTUEVORElORzsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgYW5kcm9pZDo6RHJtUGx1Z2luOjprS2V5U3RhdHVzVHlwZV9JbnRlcm5hbEVycm9yOgorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBrZXlTdGF0dXMudHlwZSA9IEtleVN0YXR1c1R5cGU6OklOVEVSTkFMRVJST1I7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGtleVN0YXR1cy5rZXlJZCA9IHRvSGlkbFZlYyhsZWdhY3lLZXlTdGF0dXMubUtleUlkKTsKKyAgICAgICAgICAgIGtleVN0YXR1c1ZlYy5wdXNoX2JhY2soa2V5U3RhdHVzKTsKKyAgICAgICAgfQorICAgICAgICBtTGlzdGVuZXItPnNlbmRLZXlzQ2hhbmdlKHRvSGlkbFZlYygqc2Vzc2lvbklkKSwKKyAgICAgICAgICAgICAgICB0b0hpZGxWZWMoa2V5U3RhdHVzVmVjKSwgaGFzTmV3VXNhYmxlS2V5KTsKKyAgICB9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkcm0KK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2RybS8xLjAvZGVmYXVsdC9Ecm1QbHVnaW4uaCBiL2RybS8xLjAvZGVmYXVsdC9Ecm1QbHVnaW4uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kY2U2YzBjCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L0RybVBsdWdpbi5oCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19EUk1QTFVHSU5fSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX19EUk1QTFVHSU5fSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW4uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybVBsdWdpbkxpc3RlbmVyLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxtZWRpYS9kcm0vRHJtQVBJLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6RXZlbnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtUGx1Z2luOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtUGx1Z2luTGlzdGVuZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVJlcXVlc3RUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpLZXlTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTZWN1cmVTdG9wOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IERybVBsdWdpbiA6IHB1YmxpYyBJRHJtUGx1Z2luLCBhbmRyb2lkOjpEcm1QbHVnaW5MaXN0ZW5lciB7CisKKyAgICBEcm1QbHVnaW4oYW5kcm9pZDo6RHJtUGx1Z2luICpwbHVnaW4pIDogbUxlZ2FjeVBsdWdpbihwbHVnaW4pIHt9CisgICAgfkRybVBsdWdpbigpIHtkZWxldGUgbUxlZ2FjeVBsdWdpbjt9CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJRHJtUGx1Z2luIGZvbGxvdy4KKworICAgIFJldHVybjx2b2lkPiBvcGVuU2Vzc2lvbihvcGVuU2Vzc2lvbl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiBjbG9zZVNlc3Npb24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0S2V5UmVxdWVzdChjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2NvcGUsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5pdERhdGEsIGNvbnN0IGhpZGxfc3RyaW5nJiBtaW1lVHlwZSwKKyAgICAgICAgICAgIEtleVR5cGUga2V5VHlwZSwgY29uc3QgaGlkbF92ZWM8S2V5VmFsdWU+JiBvcHRpb25hbFBhcmFtZXRlcnMsCisgICAgICAgICAgICBnZXRLZXlSZXF1ZXN0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBwcm92aWRlS2V5UmVzcG9uc2UoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNjb3BlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlc3BvbnNlLCBwcm92aWRlS2V5UmVzcG9uc2VfY2IgX2hpZGxfY2IpCisgICAgICAgICAgICBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHJlbW92ZUtleXMoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiByZXN0b3JlS2V5cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVNldElkKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBxdWVyeUtleVN0YXR1cyhjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgcXVlcnlLZXlTdGF0dXNfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGdldFByb3Zpc2lvblJlcXVlc3QoY29uc3QgaGlkbF9zdHJpbmcmIGNlcnRpZmljYXRlVHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBjZXJ0aWZpY2F0ZUF1dGhvcml0eSwKKyAgICAgICAgICAgIGdldFByb3Zpc2lvblJlcXVlc3RfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHByb3ZpZGVQcm92aXNpb25SZXNwb25zZShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgcmVzcG9uc2UsCisgICAgICAgICAgICBwcm92aWRlUHJvdmlzaW9uUmVzcG9uc2VfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGdldFNlY3VyZVN0b3BzKGdldFNlY3VyZVN0b3BzX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBnZXRTZWN1cmVTdG9wKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZWN1cmVTdG9wSWQsCisgICAgICAgICAgICBnZXRTZWN1cmVTdG9wX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHJlbGVhc2VBbGxTZWN1cmVTdG9wcygpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gcmVsZWFzZVNlY3VyZVN0b3AoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlY3VyZVN0b3BJZCkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IGdldFByb3BlcnR5U3RyaW5nKGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICBnZXRQcm9wZXJ0eVN0cmluZ19jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gZ2V0UHJvcGVydHlCeXRlQXJyYXkoY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGdldFByb3BlcnR5Qnl0ZUFycmF5X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjxTdGF0dXM+IHNldFByb3BlcnR5U3RyaW5nKGNvbnN0IGhpZGxfc3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0UHJvcGVydHlCeXRlQXJyYXkoY29uc3QgaGlkbF9zdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiB2YWx1ZSkgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48U3RhdHVzPiBzZXRDaXBoZXJBbGdvcml0aG0oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBhbGdvcml0aG0pIG92ZXJyaWRlOworCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0TWFjQWxnb3JpdGhtKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgYWxnb3JpdGhtKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBlbmNyeXB0KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5SWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbnB1dCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpdiwgZW5jcnlwdF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gZGVjcnlwdChjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUlkLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaW5wdXQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgaXYsIGRlY3J5cHRfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNpZ24oY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG1lc3NhZ2UsCisgICAgICAgICAgICBzaWduX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiB2ZXJpZnkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG1lc3NhZ2UsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2lnbmF0dXJlLCB2ZXJpZnlfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNpZ25SU0EoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiBhbGdvcml0aG0sIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBtZXNzYWdlLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHdyYXBwZWRrZXksIHNpZ25SU0FfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNldExpc3RlbmVyKGNvbnN0IHNwPElEcm1QbHVnaW5MaXN0ZW5lcj4mIGxpc3RlbmVyKSBvdmVycmlkZTsKKworICAgIFJldHVybjx2b2lkPiBzZW5kRXZlbnQoRXZlbnRUeXBlIGV2ZW50VHlwZSwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhKQorICAgICAgICAgICAgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gc2VuZEV4cGlyYXRpb25VcGRhdGUoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGludDY0X3QgZXhwaXJ5VGltZUluTVMpIG92ZXJyaWRlOworCisgICAgUmV0dXJuPHZvaWQ+IHNlbmRLZXlzQ2hhbmdlKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzZXNzaW9uSWQsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlTdGF0dXM+JiBrZXlTdGF0dXNMaXN0LCBib29sIGhhc05ld1VzYWJsZUtleSkKKyAgICAgICAgICAgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIGFuZHJvaWQ6OkRybVBsdWdpbkxpc3RlbmVyIGZvbGxvdworCisgICAgdmlydHVhbCB2b2lkIHNlbmRFdmVudChhbmRyb2lkOjpEcm1QbHVnaW46OkV2ZW50VHlwZSBldmVudFR5cGUsIGludCBleHRyYSwKKyAgICAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBjb25zdCAqc2Vzc2lvbklkLCBWZWN0b3I8dWludDhfdD4gY29uc3QgKmRhdGEpOworCisgICAgdmlydHVhbCB2b2lkIHNlbmRFeHBpcmF0aW9uVXBkYXRlKFZlY3Rvcjx1aW50OF90PiBjb25zdCAqc2Vzc2lvbklkLAorICAgICAgICAgICAgaW50NjRfdCBleHBpcnlUaW1lSW5NUyk7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2VuZEtleXNDaGFuZ2UoVmVjdG9yPHVpbnQ4X3Q+IGNvbnN0ICpzZXNzaW9uSWQsCisgICAgICAgICAgICBWZWN0b3I8YW5kcm9pZDo6RHJtUGx1Z2luOjpLZXlTdGF0dXM+IGNvbnN0ICprZXlTdGF0dXNMaXN0LAorICAgICAgICAgICAgYm9vbCBoYXNOZXdVc2FibGVLZXkpOworCitwcml2YXRlOgorICAgIGFuZHJvaWQ6OkRybVBsdWdpbiAqbUxlZ2FjeVBsdWdpbjsKKyAgICBzcDxJRHJtUGx1Z2luTGlzdGVuZXI+IG1MaXN0ZW5lcjsKKworICAgIERybVBsdWdpbigpID0gZGVsZXRlOworICAgIERybVBsdWdpbihjb25zdCBEcm1QbHVnaW4gJikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgRHJtUGx1Z2luICYpID0gZGVsZXRlOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfRFJNX1YxXzBfX0RSTVBMVUdJTl9ICmRpZmYgLS1naXQgYS9kcm0vMS4wL2RlZmF1bHQvTGVnYWN5UGx1Z2luUGF0aC5jcHAgYi9kcm0vMS4wL2RlZmF1bHQvTGVnYWN5UGx1Z2luUGF0aC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzY5MDU5ZAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9MZWdhY3lQbHVnaW5QYXRoLmNwcApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgIkxlZ2FjeVBsdWdpblBhdGguaCIKKworI2luY2x1ZGUgPGN1dGlscy9wcm9wZXJ0aWVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NvbnN0IGNoYXIqIGdldERybVBsdWdpblBhdGgoKSB7CisgICAgaWYgKHByb3BlcnR5X2dldF9ib29sKCJkcm0uNjRiaXQuZW5hYmxlZCIsIGZhbHNlKSkgeworICAgICAgICByZXR1cm4gIi92ZW5kb3IvbGliNjQvbWVkaWFkcm0iOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiAiL3ZlbmRvci9saWIvbWVkaWFkcm0iOworICAgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L0xlZ2FjeVBsdWdpblBhdGguaCBiL2RybS8xLjAvZGVmYXVsdC9MZWdhY3lQbHVnaW5QYXRoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzE0NWYyZQotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9MZWdhY3lQbHVnaW5QYXRoLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgTEVHQUNZX1BMVUdJTl9QQVRIX0hfCisKKyNkZWZpbmUgTEVHQUNZX1BMVUdJTl9QQVRIX0hfCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHJtIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NvbnN0IGNoYXIqIGdldERybVBsdWdpblBhdGgoKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIExFR0FDWV9QTFVHSU5fUEFUSF9IXwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L1R5cGVDb252ZXJ0LmNwcCBiL2RybS8xLjAvZGVmYXVsdC9UeXBlQ29udmVydC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2EyNjJjMwotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvZGVmYXVsdC9UeXBlQ29udmVydC5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1pbXBsIgorCisjaW5jbHVkZSAiVHlwZUNvbnZlcnQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkcm0geworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworU3RhdHVzIHRvU3RhdHVzKHN0YXR1c190IGxlZ2FjeVN0YXR1cykgeworICAgIFN0YXR1cyBzdGF0dXM7CisgICAgc3dpdGNoKGxlZ2FjeVN0YXR1cykgeworICAgIGNhc2UgYW5kcm9pZDo6T0s6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6T0s7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX05PX0xJQ0VOU0U6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX05PX0xJQ0VOU0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX0xJQ0VOU0VfRVhQSVJFRDoKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fTElDRU5TRV9FWFBJUkVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQ6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBhbmRyb2lkOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRToKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBhbmRyb2lkOjpFUlJPUl9EUk1fVEFNUEVSX0RFVEVDVEVEOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9JTlZBTElEX1NUQVRFOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkJBRF9WQUxVRToKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpCQURfVkFMVUU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgYW5kcm9pZDo6RVJST1JfRFJNX05PVF9QUk9WSVNJT05FRDoKKyAgICAgICAgc3RhdHVzID0gU3RhdHVzOjpFUlJPUl9EUk1fTk9UX1BST1ZJU0lPTkVEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9SRVNPVVJDRV9CVVNZOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9SRVNPVVJDRV9CVVNZOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9JTlNVRkZJQ0lFTlRfT1VUUFVUX1BST1RFQ1RJT046CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX0lOU1VGRklDSUVOVF9PVVRQVVRfUFJPVEVDVElPTjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBhbmRyb2lkOjpFUlJPUl9EUk1fREVWSUNFX1JFVk9LRUQ6CisgICAgICAgIHN0YXR1cyA9IFN0YXR1czo6RVJST1JfRFJNX0RFVklDRV9SRVZPS0VEOworICAgICAgICBicmVhazsKKyAgICBjYXNlIGFuZHJvaWQ6OkVSUk9SX0RSTV9ERUNSWVBUOgorICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9ERUNSWVBUOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBTE9HVygiVW5hYmxlIHRvIGNvbnZlcnQgbGVnYWN5IHN0YXR1czogJWQsIGRlZmF1bHRpbmcgdG8gVU5LTk9XTiIsCisgICAgICAgICAgICBsZWdhY3lTdGF0dXMpOworICAgICAgICBzdGF0dXMgPSBTdGF0dXM6OkVSUk9SX0RSTV9VTktOT1dOOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L1R5cGVDb252ZXJ0LmggYi9kcm0vMS4wL2RlZmF1bHQvVHlwZUNvbnZlcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDdmZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC9kZWZhdWx0L1R5cGVDb252ZXJ0LmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9UWVBFQ09OVkVSVAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RSTV9WMV8wX1RZUEVDT05WRVJUCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxtZWRpYS9zdGFnZWZyaWdodC9NZWRpYUVycm9ycy5oPgorI2luY2x1ZGUgPHV0aWxzL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGRybSB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3QgaGlkbF92ZWM8VD4gdG9IaWRsVmVjKGNvbnN0IFZlY3RvcjxUPiAmVmVjdG9yKSB7CisgICAgaGlkbF92ZWM8VD4gdmVjOworICAgIHZlYy5zZXRUb0V4dGVybmFsKGNvbnN0X2Nhc3Q8VCAqPihWZWN0b3IuYXJyYXkoKSksIFZlY3Rvci5zaXplKCkpOworICAgIHJldHVybiB2ZWM7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGhpZGxfdmVjPFQ+IHRvSGlkbFZlYyhWZWN0b3I8VD4gJlZlY3RvcikgeworICAgIGhpZGxfdmVjPFQ+IHZlYzsKKyAgICB2ZWMuc2V0VG9FeHRlcm5hbChWZWN0b3IuZWRpdEFycmF5KCksIFZlY3Rvci5zaXplKCkpOworICAgIHJldHVybiB2ZWM7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNvbnN0IFZlY3RvcjxUPiB0b1ZlY3Rvcihjb25zdCBoaWRsX3ZlYzxUPiAmdmVjKSB7CisgICAgVmVjdG9yPFQ+IHZlY3RvcjsKKyAgICB2ZWN0b3IuYXBwZW5kQXJyYXkodmVjLmRhdGEoKSwgdmVjLnNpemUoKSk7CisgICAgcmV0dXJuICpjb25zdF9jYXN0PGNvbnN0IFZlY3RvcjxUPiAqPigmdmVjdG9yKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gVmVjdG9yPFQ+IHRvVmVjdG9yKGhpZGxfdmVjPFQ+ICZ2ZWMpIHsKKyAgICBWZWN0b3I8VD4gdmVjdG9yOworICAgIHZlY3Rvci5hcHBlbmRBcnJheSh2ZWMuZGF0YSgpLCB2ZWMuc2l6ZSgpKTsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgU0laRT4gY29uc3QgVmVjdG9yPFQ+IHRvVmVjdG9yKAorICAgICAgICBjb25zdCBoaWRsX2FycmF5PFQsIFNJWkU+ICZhcnJheSkgeworICAgIFZlY3RvcjxUPiB2ZWN0b3I7CisgICAgdmVjdG9yLmFwcGVuZEFycmF5KGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgU0laRT4gVmVjdG9yPFQ+IHRvVmVjdG9yKAorICAgICAgICBoaWRsX2FycmF5PFQsIFNJWkU+ICZhcnJheSkgeworICAgIFZlY3RvcjxUPiB2ZWN0b3I7CisgICAgdmVjdG9yLmFwcGVuZEFycmF5KGFycmF5LmRhdGEoKSwgYXJyYXkuc2l6ZSgpKTsKKyAgICByZXR1cm4gdmVjdG9yOworfQorCitTdGF0dXMgdG9TdGF0dXMoc3RhdHVzX3QgbGVnYWN5U3RhdHVzKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGRybQorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgLy8gQU5EUk9JRF9IQVJEV0FSRV9EUk1fVjFfMF9UWVBFQ09OVkVSVApkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1zZXJ2aWNlLnJjIGIvZHJtLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3YmVjYTMKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw2IEBACitzZXJ2aWNlIGRybS1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuZHJtQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBtZWRpYQorICAgIGdyb3VwIG1lZGlhZHJtIGRybXJwYworICAgIGlvcHJpbyBydCA0CisgICAgd3JpdGVwaWQgL2Rldi9jcHVzZXQvZm9yZWdyb3VuZC90YXNrcwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvZHJtLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhNDRjZTIKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDwxLjAvZGVmYXVsdC9DcnlwdG9GYWN0b3J5Lmg+CisjaW5jbHVkZSA8MS4wL2RlZmF1bHQvRHJtRmFjdG9yeS5oPgorCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisjaW5jbHVkZSA8YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpyZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvRmFjdG9yeTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1GYWN0b3J5OworCitpbnQgbWFpbigpIHsKKyAgICBBTE9HRCgiYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wLXNlcnZpY2Ugc3RhcnRpbmcuLi4iKTsKKworICAgIC8vIFRoZSBEUk0gSEFMIG1heSBjb21tdW5pY2F0ZSB0byBvdGhlciB2ZW5kb3IgY29tcG9uZW50cyB2aWEKKyAgICAvLyAvZGV2L3ZuZGJpbmRlcgorICAgIGFuZHJvaWQ6OlByb2Nlc3NTdGF0ZTo6aW5pdFdpdGhEcml2ZXIoIi9kZXYvdm5kYmluZGVyIik7CisKKyAgICBjb25maWd1cmVScGNUaHJlYWRwb29sKDgsIHRydWUgLyogY2FsbGVyV2lsbEpvaW4gKi8pOworICAgIGFuZHJvaWQ6OnN0YXR1c190IHN0YXR1cyA9CisgICAgICAgIHJlZ2lzdGVyUGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SURybUZhY3Rvcnk+KCk7CisgICAgTE9HX0FMV0FZU19GQVRBTF9JRigKKyAgICAgICAgc3RhdHVzICE9IGFuZHJvaWQ6Ok9LLAorICAgICAgICAiRXJyb3Igd2hpbGUgcmVnaXN0ZXJpbmcgZHJtIHNlcnZpY2U6ICVkIiwgc3RhdHVzKTsKKyAgICBzdGF0dXMgPSByZWdpc3RlclBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElDcnlwdG9GYWN0b3J5PigpOworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoCisgICAgICAgIHN0YXR1cyAhPSBhbmRyb2lkOjpPSywKKyAgICAgICAgIkVycm9yIHdoaWxlIHJlZ2lzdGVyaW5nIGNyeXB0byBzZXJ2aWNlOiAlZCIsIHN0YXR1cyk7CisgICAgam9pblJwY1RocmVhZHBvb2woKTsKK30KZGlmZiAtLWdpdCBhL2RybS8xLjAvdHlwZXMuaGFsIGIvZHJtLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2VhNWIxNgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMzQ4IEBACisvKioKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5kcm1AMS4wOworCitlbnVtIFN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBPSyB3aGVuIGFuIG9wZXJhdGlvbiBjb21wbGV0ZXMgd2l0aG91dCBhbnkKKyAgICAgKiBlcnJvcnMuCisgICAgICovCisgICAgT0ssCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBFUlJPUl9EUk1fTk9fTElDRU5TRSwgd2hlbiBkZWNyeXB0aW9uIGlzCisgICAgICogYXR0ZW1wdGVkIGFuZCBubyBsaWNlbnNlIGtleXMgaGF2ZSBiZWVuIHByb3ZpZGVkLgorICAgICAqLworICAgIEVSUk9SX0RSTV9OT19MSUNFTlNFLAorCisgICAgLyoqCisgICAgICogRVJST1JfRFJNX0xJQ0VOU0VfRVhQSVJFRCBtdXN0IGJlIHJldHVybmVkIHdoZW4gYW4gYXR0ZW1wdCBpcyBtYWRlCisgICAgICogdG8gdXNlIGEgbGljZW5zZSBhbmQgdGhlIGtleXMgaW4gdGhhdCBsaWNlbnNlIGhhdmUgZXhwaXJlZC4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fTElDRU5TRV9FWFBJUkVELAorCisgICAgLyoqCisgICAgICogVGhlIERSTSBwbHVnaW4gbXVzdCByZXR1cm4gRVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCB3aGVuIGFuCisgICAgICogYXR0ZW1wdCBpcyBtYWRlIHRvIHVzZSBhIHNlc3Npb24gdGhhdCBoYXMgbm90IGJlZW4gb3BlbmVkLgorICAgICAqLworICAgIEVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQsCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSB3aGVuIGFuIHVuc3VwcG9ydGVkCisgICAgICogZGF0YSBmb3JtYXQgb3Igb3BlcmF0aW9uIGlzIGF0dGVtcHRlZC4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKworICAgIC8qKgorICAgICAqIEVSUk9SX0RSTV9JTlZBTElEX1NUQVRFIG11c3QgYmUgcmV0dXJuZWQgd2hlbiB0aGUgZGV2aWNlIGlzIGluIGEgc3RhdGUKKyAgICAgKiB3aGVyZSBpdCBpcyBub3QgYWJsZSB0byBwZXJmb3JtIGRlY3J5cHRpb24uCisgICAgICovCisgICAgRVJST1JfRFJNX0lOVkFMSURfU1RBVEUsCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIHBsdWdpbiBtdXN0IHJldHVybiBCQURfVkFMVUUgd2hlbmV2ZXIgYW4gaWxsZWdhbCBwYXJhbWV0ZXIgaXMKKyAgICAgKiBwYXNzZWQgdG8gb25lIG9mIHRoZSBpbnRlcmZhY2UgZnVuY3Rpb25zLgorICAgICAqLworICAgIEJBRF9WQUxVRSwKKworICAgIC8qKgorICAgICAqIFRoZSBEUk0gcGx1Z2luIG11c3QgcmV0dXJuIEVSUk9SX0RSTV9OT1RfUFJPVklTSU9ORUQgZnJvbSBnZXRLZXlSZXF1ZXN0LAorICAgICAqIG9wZW5TZXNzaW9uIG9yIHByb3ZpZGVLZXlSZXNwb25zZSB3aGVuIHRoZSBkZXZpY2UgaGFzIG5vdCB5ZXQgYmVlbgorICAgICAqIHByb3Zpc2lvbmVkLgorICAgICAqLworICAgIEVSUk9SX0RSTV9OT1RfUFJPVklTSU9ORUQsCisKKyAgICAvKioKKyAgICAgKiBFUlJPUl9EUk1fUkVTT1VSQ0VfQlVTWSBtdXN0IGJlIHJldHVybmVkIHdoZW4gcmVzb3VyY2VzLCBzdWNoIGFzIGRybQorICAgICAqIHNlc3Npb25zIG9yIHNlY3VyZSBidWZmZXJzIGFyZSBub3QgYXZhaWxhYmxlIHRvIHBlcmZvcm0gYSByZXF1ZXN0ZWQKKyAgICAgKiBvcGVyYXRpb24gYmVjYXVzZSB0aGV5IGFyZSBhbHJlYWR5IGluIHVzZS4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fUkVTT1VSQ0VfQlVTWSwKKworICAgIC8qKgorICAgICAqIFRoZSBEUk0gUGx1Z2luIG11c3QgcmV0dXJuIEVSUk9SX0RSTV9JTlNVRkZJQ0lFTlRfT1VUUFVUX1BST1RFQ1RJT04KKyAgICAgKiB3aGVuIHRoZSBvdXRwdXQgcHJvdGVjdGlvbiBsZXZlbCBlbmFibGVkIG9uIHRoZSBkZXZpY2UgaXMgbm90CisgICAgICogc3VmZmljaWVudCB0byBtZWV0IHRoZSByZXF1aXJlbWVudHMgaW4gdGhlIGxpY2Vuc2UgcG9saWN5LiAgSERDUCBpcyBhbgorICAgICAqIGV4YW1wbGUgb2YgYSBmb3JtIG9mIG91dHB1dCBwcm90ZWN0aW9uLgorICAgICAqLworICAgIEVSUk9SX0RSTV9JTlNVRkZJQ0lFTlRfT1VUUFVUX1BST1RFQ1RJT04sCisKKyAgICAvKioKKyAgICAgKiBUaGUgRFJNIFBsdWdpbiBtdXN0IHJldHVybiBFUlJPUl9EUk1fREVWSUNFX1JFVk9LRUQgZnJvbQorICAgICAqIHByb3ZpZGVQcm92aXNpb25SZXNwb25zZSBhbmQgcHJvdmlkZUtleVJlc3BvbnNlIGlmIHRoZSByZXNwb25zZSBpbmRpY2F0ZXMKKyAgICAgKiB0aGF0IHRoZSBkZXZpY2UgaGFzIGJlZW4gcmV2b2tlZC4gRGV2aWNlIHJldm9jYXRpb24gbWVhbnMgdGhhdCB0aGUgZGV2aWNlCisgICAgICogaXMgbm8gbG9uZ2VyIHBlcm1pdHRlZCB0byBwbGF5IGNvbnRlbnQuCisgICAgICovCisgICAgRVJST1JfRFJNX0RFVklDRV9SRVZPS0VELAorCisgICAgLyoqCisgICAgICogVGhlIERSTSBQbHVnaW4gbXVzdCByZXR1cm4gRVJST1JfRFJNX0RFQ1JZUFQgaWYgdGhlIENyeXB0b1BsdWdpbgorICAgICAqIGRlY3J5cHQgb3BlcmF0aW9uIGZhaWxzLgorICAgICAqLworICAgIEVSUk9SX0RSTV9ERUNSWVBULAorCisgICAgLyoqCisgICAgICogRVJST1JfRFJNX1VOS05PV04gbXVzdCBiZSByZXR1cm5lZCB3aGVuIGEgZmF0YWwgZmFpbHVyZSBvY2N1cnMgYW5kIG5vCisgICAgICogb3RoZXIgZGVmaW5lZCBlcnJvciBpcyBhcHByb3ByaWF0ZS4KKyAgICAgKi8KKyAgICBFUlJPUl9EUk1fVU5LTk9XTiwKK307CisKKworLyoqCisgKiBFdmVudFR5cGUgZW51bWVyYXRlcyB0aGUgZXZlbnRzIHRoYXQgY2FuIGJlIGRlbGl2ZXJlZCBieSBzZW5kRXZlbnQKKyAqLworZW51bSBFdmVudFR5cGUgOiB1aW50MzJfdCB7CisgICAgLyoqCisgICAgICogVGhpcyBldmVudCB0eXBlIGluZGljYXRlcyB0aGF0IHRoZSBhcHAgbmVlZHMgdG8gcmVxdWVzdCBhIGNlcnRpZmljYXRlCisgICAgICogZnJvbSB0aGUgcHJvdmlzaW9uaW5nIHNlcnZlci4gVGhlIHJlcXVlc3QgbWVzc2FnZSBkYXRhIGlzIG9idGFpbmVkIHVzaW5nCisgICAgICogZ2V0UHJvdmlzaW9uUmVxdWVzdCgpLgorICAgICAqLworICAgIFBST1ZJU0lPTl9SRVFVSVJFRCwKKworICAgICAvKioKKyAgICAgKiBUaGlzIGV2ZW50IHR5cGUgaW5kaWNhdGVzIHRoYXQgdGhlIGFwcCBuZWVkcyB0byByZXF1ZXN0IGtleXMgZnJvbSBhCisgICAgICogbGljZW5zZSBzZXJ2ZXIuIFRoZSByZXF1ZXN0IG1lc3NhZ2UgZGF0YSBpcyBvYnRhaW5lZCB1c2luZyBnZXRLZXlSZXF1ZXN0LgorICAgICAqLworICAgIEtFWV9ORUVERUQsCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV2ZW50IHR5cGUgaW5kaWNhdGVzIHRoYXQgdGhlIGxpY2Vuc2VkIHVzYWdlIGR1cmF0aW9uIGZvciBrZXlzIGluIGEKKyAgICAgKiBzZXNzaW9uIGhhcyBleHBpcmVkLiBUaGUga2V5cyBhcmUgbm8gbG9uZ2VyIHZhbGlkLgorICAgICAqLworICAgIEtFWV9FWFBJUkVELAorCisgICAgLyoqCisgICAgICogVGhpcyBldmVudCBtYXkgaW5kaWNhdGUgc29tZSBzcGVjaWZpYyB2ZW5kb3ItZGVmaW5lZCBjb25kaXRpb24sIHNlZSB5b3VyCisgICAgICogRFJNIHByb3ZpZGVyIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCisgICAgICovCisgICAgVkVORE9SX0RFRklORUQsCisKKyAgICAvKioKKyAgICAgKiBUaGlzIGV2ZW50IGluZGljYXRlcyB0aGF0IGEgc2Vzc2lvbiBvcGVuZWQgYnkgdGhlIGFwcCBoYXMgYmVlbiByZWNsYWltZWQKKyAgICAgKiBieSB0aGUgcmVzb3VyY2UgbWFuYWdlci4KKyAgICAgKi8KKyAgICBTRVNTSU9OX1JFQ0xBSU1FRCwKK307CisKK2VudW0gS2V5VHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBEcm0ga2V5cyBjYW4gYmUgZm9yIG9mZmxpbmUgY29udGVudCBvciBmb3Igb25saW5lIHN0cmVhbWluZy4KKyAgICAgKiBPZmZsaW5lIGtleXMgYXJlIHBlcnNpc3RlZCBvbiB0aGUgZGV2aWNlIGFuZCBtYXkgYmUgdXNlZCB3aGVuIHRoZSBkZXZpY2UKKyAgICAgKiBpcyBkaXNjb25uZWN0ZWQgZnJvbSB0aGUgbmV0d29yay4KKyAgICAgKi8KKyAgICBPRkZMSU5FLAorCisgICAgLyoqCisgICAgICogS2V5cyBmb3Igc3RyZWFtaW5nIGFyZSBub3QgcGVyc2lzdGVkIGFuZCByZXF1aXJlIHRoZSBkZXZpY2UgdG8gYmUKKyAgICAgKiBjb25uZWN0ZWQgdG8gdGhlIG5ldHdvcmsgZm9yIHBlcmlvZGljIHJlbmV3YWwuCisgICAgICovCisgICAgU1RSRUFNSU5HLAorCisgICAgLyoqCisgICAgICogVGhlIFJlbGVhc2UgdHlwZSBpcyB1c2VkIHRvIHJlcXVlc3QgdGhhdCBvZmZsaW5lIGtleXMgYmUgbm8gbG9uZ2VyCisgICAgICogcmVzdHJpY3RlZCB0byBvZmZsaW5lIHVzZS4KKyAgICAgKi8KKyAgICBSRUxFQVNFLAorfTsKKworLyoqCisgKiBFbnVtZXJhdGUgS2V5UmVxdWVzdFR5cGVzIHRvIGFsbG93IGFuIGFwcCB0byBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgYSBrZXkKKyAqIHJlcXVlc3QgcmV0dXJuZWQgZnJvbSBnZXRLZXlSZXF1ZXN0LgorICovCitlbnVtIEtleVJlcXVlc3RUeXBlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIEtleSByZXF1ZXN0IHR5cGUgaXMgZm9yIGFuIGluaXRpYWwgbGljZW5zZSByZXF1ZXN0CisgICAgICovCisgICAgSU5JVElBTCwKKworICAgIC8qKgorICAgICAqIEtleSByZXF1ZXN0IHR5cGUgaXMgZm9yIGxpY2Vuc2UgcmVuZXdhbC4gUmVuZXdhbCByZXF1ZXN0cyBhcmUgdXNlZAorICAgICAqIHRvIGV4dGVuZCB0aGUgdmFsaWRpdHkgcGVyaW9kIGZvciBzdHJlYW1pbmcga2V5cy4KKyAgICAgKi8KKyAgICBSRU5FV0FMLAorCisgICAgLyoqCisgICAgICogS2V5IHJlcXVlc3QgdHlwZSBpcyBhIHJlbGVhc2UuIEEga2V5IHJlbGVhc2UgY2F1c2VzIG9mZmxpbmUga2V5cworICAgICAqIHRvIGJlY29tZSBhdmFpbGFibGUgZm9yIHN0cmVhbWluZy4KKyAgICAgKi8KKyAgICBSRUxFQVNFLAorCisgICAgLyoqCisgICAgICogS2V5IHJlcXVlc3QgdHlwZSBpcyB1bmtub3duIGR1ZSB0byBzb21lIGVycm9yIGNvbmRpdGlvbi4KKyAgICAgKi8KKyAgICBVTktOT1dOLAorfTsKKworLyoqCisgKiBFbnVtZXJhdGUgS2V5U3RhdHVzVHlwZXMgd2hpY2ggaW5kaWNhdGUgdGhlIHN0YXRlIG9mIGEga2V5CisgKi8KK2VudW0gS2V5U3RhdHVzVHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBUaGUga2V5IGlzIGN1cnJlbnRseSB1c2FibGUgdG8gZGVjcnlwdCBtZWRpYSBkYXRhLgorICAgICAqLworICAgIFVTQUJMRSwKKworICAgIC8qKgorICAgICAqIFRoZSBrZXkgaXMgbm8gbG9uZ2VyIHVzYWJsZSB0byBkZWNyeXB0IG1lZGlhIGRhdGEgYmVjYXVzZSBpdHMgZXhwaXJhdGlvbgorICAgICAqIHRpbWUgaGFzIHBhc3NlZC4KKyAgICAgKi8KKyAgICBFWFBJUkVELAorCisgICAgLyoqCisgICAgICogVGhlIGtleSBpcyBub3QgY3VycmVudGx5IHVzYWJsZSB0byBkZWNyeXB0IG1lZGlhIGRhdGEgYmVjYXVzZSBpdHMgb3V0cHV0CisgICAgICogcmVxdWlyZW1lbnRzIGNhbm5vdCBjdXJyZW50bHkgYmUgbWV0LgorICAgICAqLworICAgIE9VVFBVVE5PVEFMTE9XRUQsCisKKyAgICAvKioKKyAgICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBrZXkgaXMgbm90IHlldCBrbm93biBhbmQgaXMgYmVpbmcgZGV0ZXJtaW5lZC4KKyAgICAgKi8KKyAgICBTVEFUVVNQRU5ESU5HLAorCisgICAgLyoqCisgICAgICogVGhlIGtleSBpcyBub3QgY3VycmVudGx5IHVzYWJsZSB0byBkZWNyeXB0IG1lZGlhIGRhdGEgYmVjYXVzZSBvZiBhbgorICAgICAqIGludGVybmFsIGVycm9yIGluIHByb2Nlc3NpbmcgdW5yZWxhdGVkIHRvIGlucHV0IHBhcmFtZXRlcnMuCisgICAgICovCisgICAgSU5URVJOQUxFUlJPUiwKK307CisKK3R5cGVkZWYgdmVjPHVpbnQ4X3Q+IFNlc3Npb25JZDsKKworLyoqCisgKiBVc2VkIGJ5IHNlbmRLZXlzQ2hhbmdlIHRvIHJlcG9ydCB0aGUgdXNhYmlsaXR5IHN0YXR1cyBvZiBlYWNoIGtleSB0byB0aGUKKyAqIGFwcC4KKyAqLworc3RydWN0IEtleVN0YXR1cworeworICAgIHZlYzx1aW50OF90PiBrZXlJZDsKKyAgICBLZXlTdGF0dXNUeXBlIHR5cGU7Cit9OworCisvKioKKyAqIFNpbXVsYXRlcyBhIEtleWVkVmVjdG9yPFN0cmluZzgsIFN0cmluZzg+CisgKi8KK3N0cnVjdCBLZXlWYWx1ZSB7CisgICAgc3RyaW5nIGtleTsKKyAgICBzdHJpbmcgdmFsdWU7Cit9OworCit0eXBlZGVmIHZlYzxLZXlWYWx1ZT4gS2V5ZWRWZWN0b3I7CisKKy8qKgorICogRW5jYXBzdWxhdGVzIGEgc2VjdXJlIHN0b3Agb3BhcXVlIG9iamVjdAorICovCitzdHJ1Y3QgU2VjdXJlU3RvcCB7CisgICAgdmVjPHVpbnQ4X3Q+IG9wYXF1ZURhdGE7Cit9OworCit0eXBlZGVmIHZlYzx1aW50OF90PiBTZWN1cmVTdG9wSWQ7CisKKworLyoqCisgKiBFbnVtZXJhdGUgdGhlIHN1cHBvcnRlZCBjcnlwdG8gbW9kZXMKKyAqLworZW51bSBNb2RlIDogdWludDMyX3QgeworICAgIFVORU5DUllQVEVEID0gMCwgLy8gU2FtcGxlcyBhcmUgdW5lbmNyeXB0ZWQKKyAgICBBRVNfQ1RSICAgICA9IDEsIC8vIFNhbXBsZXMgYXJlIGVuY3J5cHRlZCB3aXRoIEFFUyBDVFIgbW9kZQorICAgIEFFU19DQkNfQ1RTID0gMiwgLy8gU2FtcGxlcyBhcmUgZW5jcnlwdGVkIHdpdGggQUVTIENCQyBDVFMgbW9kZQorICAgIEFFU19DQkMgICAgID0gMywgLy8gU2FtcGxlcyBhcmUgZW5jcnlwdGVkIHdpdGggQUVTIENCQyBtb2RlCit9OworCisvKioKKyAqIEEgc3Vic2FtcGxlIGNvbnNpc3RzIG9mIHNvbWUgbnVtYmVyIG9mIGJ5dGVzIG9mIGNsZWFyICh1bmVuY3J5cHRlZCkKKyAqIGRhdGEgZm9sbG93ZWQgYnkgYSBudW1iZXIgb2YgYnl0ZXMgb2YgZW5jcnlwdGVkIGRhdGEuCisgKi8KK3N0cnVjdCBTdWJTYW1wbGUgeworICAgIHVpbnQzMl90IG51bUJ5dGVzT2ZDbGVhckRhdGE7CisgICAgdWludDMyX3QgbnVtQnl0ZXNPZkVuY3J5cHRlZERhdGE7Cit9OworCisvKioKKyAqIEEgY3J5cHRvIFBhdHRlcm4gaXMgYSByZXBlYXRpbmcgc2VxdWVuY2Ugb2YgZW5jcnlwdGVkIGFuZCBjbGVhciBibG9ja3MKKyAqIG9jY3VyaW5nIHdpdGhpbiB0aGUgYnl0ZXMgaW5kaWNhdGVkIGJ5IG1OdW1CeXRlc09mRW5jcnlwdGVkRGF0YWQgYnl0ZXMKKyAqIG9mIGEgc3Vic2FtcGxlLiBQYXR0ZXJucyBhcmUgdXNlZCB0byByZWR1Y2UgdGhlIENQVSBvdmVyaGVhZCBvZgorICogZGVjcnlwdGluZyBzYW1wbGVzLiBBcyBhbiBleGFtcGxlLCBITFMgdXNlcyAxOjkgcGF0dGVybnMgd2hlcmUgZXZlcnkKKyAqIDEwdGggYmxvY2sgaXMgZW5jcnlwdGVkLgorICovCitzdHJ1Y3QgUGF0dGVybiB7CisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBibG9ja3MgdG8gYmUgZW5jcnlwdGVkIGluIHRoZSBwYXR0ZXJuLiBJZiB6ZXJvLAorICAgICAqIHBhdHRlcm4gZW5jcnlwdGlvbiBpcyBpbm9wZXJhdGl2ZS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBlbmNyeXB0QmxvY2tzOworCisgICAgLyoqCisgICAgICogVGhlIG51bWJlciBvZiBibG9ja3MgdG8gYmUgc2tpcHBlZCAobGVmdCBjbGVhcikgaW4gdGhlIHBhdHRlcm4uIElmCisgICAgICogemVybywgcGF0dGVybiBlbmNyeXB0aW9uIGlzIGlub3BlcmF0aXZlLgorICAgICAqLworICAgIHVpbnQzMl90IHNraXBCbG9ja3M7Cit9OworCitlbnVtIEJ1ZmZlclR5cGUgOiB1aW50MzJfdCB7CisgICAgU0hBUkVEX01FTU9SWSA9IDAsCisgICAgTkFUSVZFX0hBTkRMRSA9IDEsCit9OworCisvKioKKyAqIFNoYXJlZEJ1ZmZlciBkZXNjcmliZXMgYSBkZWNyeXB0IGJ1ZmZlciB3aGljaCBpcyBkZWZpbmVkIGJ5IGEgYnVmZmVySWQsIGFuCisgKiBvZmZzZXQgYW5kIGEgc2l6ZS4gIFRoZSBvZmZzZXQgaXMgcmVsYXRpdmUgdG8gdGhlIHNoYXJlZCBtZW1vcnkgYmFzZSBmb3IgdGhlCisgKiBtZW1vcnkgcmVnaW9uIGlkZW50aWZpZWQgYnkgYnVmZmVySWQsIHdoaWNoIGlzIGVzdGFibGlzaGVkIGJ5CisgKiBzZXRTaGFyZWRNZW1vcnlCYXNlKCkuCisgKi8KK3N0cnVjdCBTaGFyZWRCdWZmZXIgeworICAgIC8qKgorICAgICAqIFRoZSB1bmlxdWUgYnVmZmVyIGlkZW50aWZpZXIKKyAgICAgKi8KKyAgICB1aW50MzJfdCBidWZmZXJJZDsKKworICAgIC8qKgorICAgICAqIFRoZSBvZmZzZXQgZnJvbSB0aGUgc2hhcmVkIG1lbW9yeSBiYXNlCisgICAgICovCisgICAgdWludDY0X3Qgb2Zmc2V0OworCisgICAgLyoqCisgICAgICogVGhlIHNpemUgb2YgdGhlIHNoYXJlZCBidWZmZXIgaW4gYnl0ZXMKKyAgICAgKi8KKyAgICB1aW50NjRfdCBzaXplOworfTsKKworCisvKioKKyAqIEEgZGVjcnlwdCBkZXN0aW5hdGlvbiBidWZmZXIgY2FuIGJlIGVpdGhlciBub3JtYWwgdXNlci1zcGFjZSBzaGFyZWQKKyAqIG1lbW9yeSBmb3IgdGhlIG5vbi1zZWN1cmUgZGVjcnlwdCBjYXNlLCBvciBpdCBjYW4gYmUgYSBzZWN1cmUgYnVmZmVyCisgKiB3aGljaCBpcyByZWZlcmVuY2VkIGJ5IGEgbmF0aXZlLWhhbmRsZS4gVGhlIG5hdGl2ZSBoYW5kbGUgaXMgYWxsb2NhdGVkCisgKiBieSB0aGUgdmVuZG9yJ3MgYnVmZmVyIGFsbG9jYXRvci4KKyAqLworc3RydWN0IERlc3RpbmF0aW9uQnVmZmVyIHsKKyAgICAvKioKKyAgICAgKiBUaGUgdHlwZSBvZiB0aGUgYnVmZmVyCisgICAgICovCisgICAgQnVmZmVyVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogSWYgdHlwZSA9PSBTSEFSRURfTUVNT1JZLCB0aGUgZGVjcnlwdGVkIGRhdGEgbXVzdCBiZSB3cml0dGVuCisgICAgICogdG8gdXNlci1zcGFjZSBub24tc2VjdXJlIHNoYXJlZCBtZW1vcnkuCisgICAgICovCisgICAgU2hhcmVkQnVmZmVyIG5vbnNlY3VyZU1lbW9yeTsKKworICAgIC8qKgorICAgICAqIElmIHR5cGUgPT0gTkFUSVZFX0hBTkRMRSwgdGhlIGRlY3J5cHRlZCBkYXRhIG11c3QgYmUgd3JpdHRlbgorICAgICAqIHRvIHNlY3VyZSBtZW1vcnkgcmVmZXJlbmNlZCBieSB0aGUgdmVuZG9yJ3MgYnVmZmVyIGFsbG9jYXRvci4KKyAgICAgKi8KKyAgICBoYW5kbGUgc2VjdXJlTWVtb3J5OworfTsKZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2RvYy9Ecm1fVmVuZG9yX01vZHVsZXNfdjEucGRmIGIvZHJtLzEuMC92dHMvZG9jL0RybV9WZW5kb3JfTW9kdWxlc192MS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWI0NGU0ZgotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2RvYy9Ecm1fVmVuZG9yX01vZHVsZXNfdjEucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40M2VhMzcyCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDggQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxEcm1WMV8wVGFyZ2V0VGVzdCIsCisgICAgc3JjczogWworICAgICAgICAiZHJtX2hhbF9jbGVhcmtleV90ZXN0LmNwcCIsCisgICAgICAgICJkcm1faGFsX3ZlbmRvcl90ZXN0LmNwcCIsCisgICAgICAgICJzaGFyZWRfbGlicmFyeS5jcHAiLAorICAgICAgICAidmVuZG9yX21vZHVsZXMuY3BwIgorICAgICAgICBdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmRybUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbG1lbW9yeSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlic3NsIiwKKyAgICAgICAgImxpYmNyeXB0byIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIgorICAgIF0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfY2xlYXJrZXlfdGVzdC5jcHAgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfY2xlYXJrZXlfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDRmMjY1OAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvZHJtX2hhbF9jbGVhcmtleV90ZXN0LmNwcApAQCAtMCwwICsxLDExNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImRybV9oYWxfY2xlYXJrZXlfdGVzdEAxLjAiCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvUGx1Z2luLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1GYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW4uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG9wZW5zc2wvYWVzLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHJhbmRvbT4KKworI2luY2x1ZGUgIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oIgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OkJ1ZmZlclR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OkRlc3RpbmF0aW9uQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SUNyeXB0b1BsdWdpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybUZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1QbHVnaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleWVkVmVjdG9yOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpLZXlWYWx1ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5UmVxdWVzdFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6Ok1vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlBhdHRlcm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNlY3VyZVN0b3A7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNlY3VyZVN0b3BJZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U2Vzc2lvbklkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTaGFyZWRCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U3ViU2FtcGxlOworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2FycmF5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjphbGxvY2F0b3I6OlYxXzA6OklBbGxvY2F0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3VzaW5nIHN0ZDo6c3RyaW5nOwordXNpbmcgc3RkOjp1bmlxdWVfcHRyOwordXNpbmcgc3RkOjpyYW5kb21fZGV2aWNlOwordXNpbmcgc3RkOjptYXA7Cit1c2luZyBzdGQ6Om10MTk5Mzc7Cit1c2luZyBzdGQ6OnZlY3RvcjsKKworLyoqCisgKiBUaGVzZSBjbGVhcmtleSB0ZXN0cyB1c2Ugd2hpdGUgYm94IGtub3dsZWRnZSBvZiB0aGUgbGVnYWN5IGNsZWFya2V5CisgKiBwbHVnaW4gdG8gdmVyaWZ5IHRoYXQgdGhlIEhJREwgSEFMIHNlcnZpY2VzIGFuZCBpbnRlcmZhY2VzIGFyZSB3b3JraW5nLgorICogSXQgaXMgbm90IGludGVuZGVkIHRvIHZlcmlmeSBhbnkgdmVuZG9yJ3MgSEFMIGltcGxlbWVudGF0aW9uLiBJZiB5b3UKKyAqIGFyZSBsb29raW5nIGZvciB2ZW5kb3IgSEFMIHRlc3RzLCBzZWUgZHJtX2hhbF92ZW5kb3JfdGVzdC5jcHAKKyAqLworI2RlZmluZSBBU1NFUlRfT0socmV0KSBBU1NFUlRfVFJVRShyZXQuaXNPaygpKQorI2RlZmluZSBFWFBFQ1RfT0socmV0KSBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKQorCitzdGF0aWMgY29uc3QgdWludDhfdCBrQ2xlYXJLZXlVVUlEWzE2XSA9IHsKKyAgICAweDEwLCAweDc3LCAweEVGLCAweEVDLCAweEMwLCAweEIyLCAweDRELCAweDAyLAorICAgIDB4QUMsIDB4RTMsIDB4M0MsIDB4MUUsIDB4NTIsIDB4RTIsIDB4RkIsIDB4NEJ9OworCitzdGF0aWMgY29uc3QgdWludDhfdCBrSW52YWxpZFVVSURbMTZdID0geworICAgIDB4MTAsIDB4MjAsIDB4MzAsIDB4NDAsIDB4NTAsIDB4NjAsIDB4NzAsIDB4ODAsCisgICAgMHgxMCwgMHgyMCwgMHgzMCwgMHg0MCwgMHg1MCwgMHg2MCwgMHg3MCwgMHg4MH07CisKK2NsYXNzIERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0KKyAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOworICAgICAgICBBTE9HRCgiUnVubmluZyB0ZXN0ICVzLiVzIiwgdGVzdF9pbmZvLT50ZXN0X2Nhc2VfbmFtZSgpLAorICAgICAgICAgICAgICB0ZXN0X2luZm8tPm5hbWUoKSk7CisKKyAgICAgICAgZHJtRmFjdG9yeSA9CisgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SURybUZhY3Rvcnk+KCk7CisgICAgICAgIEFTU0VSVF9ORShkcm1GYWN0b3J5LCBudWxscHRyKTsKKyAgICAgICAgY3J5cHRvRmFjdG9yeSA9CisgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUNyeXB0b0ZhY3Rvcnk+KCk7CisgICAgICAgIEFTU0VSVF9ORShjcnlwdG9GYWN0b3J5LCBudWxscHRyKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgICBwcm90ZWN0ZWQ6CisgICAgc3A8SURybUZhY3Rvcnk+IGRybUZhY3Rvcnk7CisgICAgc3A8SUNyeXB0b0ZhY3Rvcnk+IGNyeXB0b0ZhY3Rvcnk7Cit9OworCisvKioKKyAqIEVuc3VyZSB0aGUgZmFjdG9yeSBzdXBwb3J0cyB0aGUgY2xlYXJrZXkgc2NoZW1lIFVVSUQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIENsZWFyS2V5UGx1Z2luU3VwcG9ydGVkKSB7CisgICAgRVhQRUNUX1RSVUUoZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoa0NsZWFyS2V5VVVJRCkpOworICAgIEVYUEVDVF9UUlVFKGNyeXB0b0ZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGtDbGVhcktleVVVSUQpKTsKK30KKworLyoqCisgKiBFbnN1cmUgdGhlIGZhY3RvcnkgZG9lc24ndCBzdXBwb3J0IGFuIGludmFsaWQgc2NoZW1lIFVVSUQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIEludmFsaWRQbHVnaW5Ob3RTdXBwb3J0ZWQpIHsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoa0ludmFsaWRVVUlEKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b0ZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGtJbnZhbGlkVVVJRCkpOworfQorCisvKioKKyAqIEVuc3VyZSB0aGUgZmFjdG9yeSBkb2Vzbid0IHN1cHBvcnQgYW4gZW1wdHkgVVVJRAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgRW1wdHlQbHVnaW5VVUlETm90U3VwcG9ydGVkKSB7CisgICAgaGlkbF9hcnJheTx1aW50OF90LCAxNj4gZW1wdHlVVUlEOworICAgIG1lbXNldChlbXB0eVVVSUQuZGF0YSgpLCAwLCAxNik7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGVtcHR5VVVJRCkpOworICAgIEVYUEVDVF9GQUxTRShjcnlwdG9GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChlbXB0eVVVSUQpKTsKK30KKworLyoqCisgKiBFbnN1cmUgZW1wdHkgY29udGVudCB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIEVtcHR5Q29udGVudFR5cGVOb3RTdXBwb3J0ZWQpIHsKKyAgICBoaWRsX3N0cmluZyBlbXB0eTsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDb250ZW50VHlwZVN1cHBvcnRlZChlbXB0eSkpOworfQorCisvKioKKyAqIEVuc3VyZSBpbnZhbGlkIGNvbnRlbnQgdHlwZSBpcyBub3Qgc3VwcG9ydGVkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleUZhY3RvcnlUZXN0LCBJbnZhbGlkQ29udGVudFR5cGVOb3RTdXBwb3J0ZWQpIHsKKyAgICBoaWRsX3N0cmluZyBpbnZhbGlkKCJhYmNkYWJjZCIpOworICAgIEVYUEVDVF9GQUxTRShkcm1GYWN0b3J5LT5pc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGludmFsaWQpKTsKK30KKworLyoqCisgKiBFbnN1cmUgdmFsaWQgY29udGVudCB0eXBlIGlzIHN1cHBvcnRlZAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgVmFsaWRDb250ZW50VHlwZVN1cHBvcnRlZCkgeworICAgIGhpZGxfc3RyaW5nIGNlbmNUeXBlKCJjZW5jIik7CisgICAgRVhQRUNUX1RSVUUoZHJtRmFjdG9yeS0+aXNDb250ZW50VHlwZVN1cHBvcnRlZChjZW5jVHlwZSkpOworfQorCisvKioKKyAqIEVuc3VyZSBjbGVhcmtleSBkcm0gcGx1Z2luIGNhbiBiZSBjcmVhdGVkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleUZhY3RvcnlUZXN0LCBDcmVhdGVDbGVhcktleURybVBsdWdpbikgeworICAgIGhpZGxfc3RyaW5nIHBhY2thZ2VOYW1lKCJhbmRyb2lkLmhhcmR3YXJlLmRybS50ZXN0Iik7CisgICAgYXV0byByZXMgPSBkcm1GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICBrQ2xlYXJLZXlVVUlELCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgY2xlYXJrZXkgY3J5cHRvIHBsdWdpbiBjYW4gYmUgY3JlYXRlZAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCwgQ3JlYXRlQ2xlYXJLZXlDcnlwdG9QbHVnaW4pIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgIGF1dG8gcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0NsZWFyS2V5VVVJRCwgaW5pdFZlYywKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJQ3J5cHRvUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgaW52YWxpZCBkcm0gcGx1Z2luIGNhbid0IGJlIGNyZWF0ZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIENyZWF0ZUludmFsaWREcm1QbHVnaW4pIHsKKyAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgIGF1dG8gcmVzID0gZHJtRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0ludmFsaWRVVUlELCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgaW52YWxpZCBjcnlwdG8gcGx1Z2luIGNhbid0IGJlIGNyZWF0ZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RmFjdG9yeVRlc3QsIENyZWF0ZUludmFsaWRDcnlwdG9QbHVnaW4pIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgIGF1dG8gcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0ludmFsaWRVVUlELCBpbml0VmVjLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElDcnlwdG9QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitjbGFzcyBEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QgOiBwdWJsaWMgRHJtSGFsQ2xlYXJrZXlGYWN0b3J5VGVzdCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICAvLyBDcmVhdGUgZmFjdG9yaWVzCisgICAgICAgIERybUhhbENsZWFya2V5RmFjdG9yeVRlc3Q6OlNldFVwKCk7CisKKyAgICAgICAgQVNTRVJUX05FKGRybUZhY3RvcnksIG51bGxwdHIpOworICAgICAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgICAgICBhdXRvIHJlcyA9IGRybUZhY3RvcnktPmNyZWF0ZVBsdWdpbigKKyAgICAgICAgICAgICAgICBrQ2xlYXJLZXlVVUlELCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgICAgICBbdGhpc10oU3RhdHVzIHN0YXR1cywgY29uc3Qgc3A8SURybVBsdWdpbj4mIHBsdWdpbikgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgICAgIGRybVBsdWdpbiA9IHBsdWdpbjsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgQVNTRVJUX09LKHJlcyk7CisKKyAgICAgICAgaGlkbF92ZWM8dWludDhfdD4gaW5pdFZlYzsKKyAgICAgICAgcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAgICAgIGtDbGVhcktleVVVSUQsIGluaXRWZWMsCisgICAgICAgICAgICAgICAgW3RoaXNdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElDcnlwdG9QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9ORShwbHVnaW4sIG51bGxwdHIpOworICAgICAgICAgICAgICAgICAgICBjcnlwdG9QbHVnaW4gPSBwbHVnaW47CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEFTU0VSVF9PSyhyZXMpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgICBTZXNzaW9uSWQgb3BlblNlc3Npb24oKTsKKyAgICB2b2lkIGNsb3NlU2Vzc2lvbihjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCk7CisgICAgaGlkbF92ZWM8dWludDhfdD4gbG9hZEtleXMoY29uc3QgU2Vzc2lvbklkJiBzZXNzaW9uSWQsIGNvbnN0IEtleVR5cGUmIHR5cGUpOworICAgIHNwPElNZW1vcnk+IGdldERlY3J5cHRNZW1vcnkoc2l6ZV90IHNpemUsIHNpemVfdCBpbmRleCk7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzcDxJRHJtUGx1Z2luPiBkcm1QbHVnaW47CisgICAgc3A8SUNyeXB0b1BsdWdpbj4gY3J5cHRvUGx1Z2luOworfTsKKworLyoqCisgKiAgRHJtUGx1Z2luIHRlc3RzCisgKi8KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIHBsdWdpbiBjYW4gcmV0dXJuIGEgcHJvdmlzaW9uIHJlcXVlc3QuICBTaW5jZQorICogdGhlIGNsZWFya2V5IHBsdWdpbiBkb2Vzbid0IHN1cHBvcnQgcHJvdmlzaW9uaW5nLCBpdCBpcworICogZXhwZWN0ZWQgdG8gcmV0dXJuIFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldFByb3Zpc2lvblJlcXVlc3QpIHsKKyAgICBoaWRsX3N0cmluZyBjZXJ0aWZpY2F0ZVR5cGU7CisgICAgaGlkbF9zdHJpbmcgY2VydGlmaWNhdGVBdXRob3JpdHk7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3Zpc2lvblJlcXVlc3QoCisgICAgICAgICAgICBjZXJ0aWZpY2F0ZVR5cGUsIGNlcnRpZmljYXRlQXV0aG9yaXR5LAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiwgY29uc3QgaGlkbF9zdHJpbmcmKSB7CisgICAgICAgICAgICAgICAgLy8gY2xlYXJrZXkgZG9lc24ndCByZXF1aXJlIHByb3Zpc2lvbmluZworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGhlIERSTSBIQUwgc2hvdWxkIHJldHVybiBCQURfVkFMVUUgaWYgYW4gZW1wdHkgcHJvdmlzaW9uaW5nCisgKiByZXNwb25zZSBpcyBwcm92aWRlZC4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgUHJvdmlkZUVtcHR5UHJvdmlzaW9uUmVzcG9uc2UpIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXNwb25zZTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2UsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEhlbHBlciBtZXRob2QgdG8gb3BlbiBhIHNlc3Npb24gYW5kIHZlcmlmeSB0aGF0IGEgbm9uLWVtcHR5CisgKiBzZXNzaW9uIElEIGlzIHJldHVybmVkCisgKi8KK1Nlc3Npb25JZCBEcm1IYWxDbGVhcmtleVBsdWdpblRlc3Q6Om9wZW5TZXNzaW9uKCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQ7CisKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+b3BlblNlc3Npb24oCisgICAgICAgICAgICBbJnNlc3Npb25JZF0oU3RhdHVzIHN0YXR1cywgY29uc3QgU2Vzc2lvbklkJiBpZCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9ORSgwdSwgaWQuc2l6ZSgpKTsKKyAgICAgICAgICAgICAgICBzZXNzaW9uSWQgPSBpZDsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIHJldHVybiBzZXNzaW9uSWQ7Cit9CisKKy8qKgorICogSGVscGVyIG1ldGhvZCB0byBjbG9zZSBhIHNlc3Npb24KKyAqLwordm9pZCBEcm1IYWxDbGVhcmtleVBsdWdpblRlc3Q6OmNsb3NlU2Vzc2lvbihjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCkgeworICAgIGF1dG8gcmVzdWx0ID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgcmVzdWx0KTsKK30KKworLyoqCisgKiBIZWxwZXIgbWV0aG9kIHRvIGxvYWQga2V5cyBmb3Igc3Vic2VxdWVudCBkZWNyeXB0IHRlc3RzLgorICogVGhlc2UgdGVzdHMgdXNlIHByZWRldGVybWluZWQga2V5IHJlcXVlc3QvcmVzcG9uc2UgdG8KKyAqIGF2b2lkIHJlcXVpcmluZyBhIHJvdW5kIHRyaXAgdG8gYSBsaWNlbnNlIHNlcnZlci4KKyAqLworaGlkbF92ZWM8dWludDhfdD4gRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0Ojpsb2FkS2V5cygKKyAgICBjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCwgY29uc3QgS2V5VHlwZSYgdHlwZSA9IEtleVR5cGU6OlNUUkVBTUlORykgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhID0geworICAgICAgICAvLyBCTUZGIGJveCBoZWFkZXIgKDQgYnl0ZXMgc2l6ZSArICdwc3NoJykKKyAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgzNCwgMHg3MCwgMHg3MywgMHg3MywgMHg2OCwKKyAgICAgICAgLy8gZnVsbCBib3ggaGVhZGVyICh2ZXJzaW9uID0gMSBmbGFncyA9IDApCisgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAsIDB4MDAsCisgICAgICAgIC8vIHN5c3RlbSBpZAorICAgICAgICAweDEwLCAweDc3LCAweGVmLCAweGVjLCAweGMwLCAweGIyLCAweDRkLCAweDAyLCAweGFjLCAweGUzLCAweDNjLCAweDFlLAorICAgICAgICAweDUyLCAweGUyLCAweGZiLCAweDRiLAorICAgICAgICAvLyBudW1iZXIgb2Yga2V5IGlkcworICAgICAgICAweDAwLCAweDAwLCAweDAwLCAweDAxLAorICAgICAgICAvLyBrZXkgaWQKKyAgICAgICAgMHg2MCwgMHgwNiwgMHgxZSwgMHgwMSwgMHg3ZSwgMHg0NywgMHg3ZSwgMHg4NywgMHg3ZSwgMHg1NywgMHhkMCwgMHgwZCwKKyAgICAgICAgMHgxZSwgMHhkMCwgMHgwZCwgMHgxZSwKKyAgICAgICAgLy8gc2l6ZSBvZiBkYXRhLCBtdXN0IGJlIHplcm8KKyAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH07CisKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBleHBlY3RlZEtleVJlcXVlc3QgPSB7CisgICAgICAgIDB4N2IsIDB4MjIsIDB4NmIsIDB4NjksIDB4NjQsIDB4NzMsIDB4MjIsIDB4M2EsIDB4NWIsIDB4MjIsIDB4NTksCisgICAgICAgIDB4NDEsIDB4NTksIDB4NjUsIDB4NDEsIDB4NTgsIDB4MzUsIDB4NDgsIDB4NjYsIDB4NmYsIDB4NjQsIDB4MmIsCisgICAgICAgIDB4NTYsIDB4MzksIDB4NDEsIDB4NGUsIDB4NDgsIDB4NzQsIDB4NDEsIDB4NGUsIDB4NDgsIDB4NjcsIDB4MjIsCisgICAgICAgIDB4NWQsIDB4MmMsIDB4MjIsIDB4NzQsIDB4NzksIDB4NzAsIDB4NjUsIDB4MjIsIDB4M2EsIDB4MjIsIDB4NzQsCisgICAgICAgIDB4NjUsIDB4NmQsIDB4NzAsIDB4NmYsIDB4NzIsIDB4NjEsIDB4NzIsIDB4NzksIDB4MjIsIDB4N2R9OworCisgICAgaGlkbF92ZWM8dWludDhfdD4ga25vd25LZXlSZXNwb25zZSA9IHsKKyAgICAgICAgMHg3YiwgMHgyMiwgMHg2YiwgMHg2NSwgMHg3OSwgMHg3MywgMHgyMiwgMHgzYSwgMHg1YiwgMHg3YiwgMHgyMiwKKyAgICAgICAgMHg2YiwgMHg3NCwgMHg3OSwgMHgyMiwgMHgzYSwgMHgyMiwgMHg2ZiwgMHg2MywgMHg3NCwgMHgyMiwgMHgyYywKKyAgICAgICAgMHgyMiwgMHg2YiwgMHg2OSwgMHg2NCwgMHgyMiwgMHgzYSwgMHgyMiwgMHg1OSwgMHg0MSwgMHg1OSwgMHg2NSwKKyAgICAgICAgMHg0MSwgMHg1OCwgMHgzNSwgMHg0OCwgMHg2NiwgMHg2ZiwgMHg2NCwgMHgyYiwgMHg1NiwgMHgzOSwgMHg0MSwKKyAgICAgICAgMHg0ZSwgMHg0OCwgMHg3NCwgMHg0MSwgMHg0ZSwgMHg0OCwgMHg2NywgMHgyMiwgMHgyYywgMHgyMiwgMHg2YiwKKyAgICAgICAgMHgyMiwgMHgzYSwgMHgyMiwgMHg0NywgMHg2ZiwgMHg2ZiwgMHg2NywgMHg2YywgMHg2NSwgMHg1NCwgMHg2NSwKKyAgICAgICAgMHg3MywgMHg3NCwgMHg0YiwgMHg2NSwgMHg3OSwgMHg0MiwgMHg2MSwgMHg3MywgMHg2NSwgMHgzNiwgMHgzNCwKKyAgICAgICAgMHg2NywgMHg2NywgMHg2NywgMHgyMiwgMHg3ZCwgMHg1ZCwgMHg3ZCwgMHgwYX07CisKKyAgICBoaWRsX3N0cmluZyBtaW1lVHlwZSA9ICJ2aWRlby9tcDQiOworICAgIEtleWVkVmVjdG9yIG9wdGlvbmFsUGFyYW1ldGVyczsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0S2V5UmVxdWVzdCgKKyAgICAgICAgc2Vzc2lvbklkLCBpbml0RGF0YSwgbWltZVR5cGUsIHR5cGUsIG9wdGlvbmFsUGFyYW1ldGVycywKKyAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiByZXF1ZXN0LAorICAgICAgICAgICAgS2V5UmVxdWVzdFR5cGUgcmVxdWVzdFR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJikgeworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoS2V5UmVxdWVzdFR5cGU6OklOSVRJQUwsIHJlcXVlc3RUeXBlKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShyZXF1ZXN0LCBleHBlY3RlZEtleVJlcXVlc3QpOworICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVNldElkOworICAgIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICBzZXNzaW9uSWQsIGtub3duS2V5UmVzcG9uc2UsCisgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgbXlLZXlTZXRJZCkgeworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoMHUsIG15S2V5U2V0SWQuc2l6ZSgpKTsKKyAgICAgICAgICAgIGtleVNldElkID0gbXlLZXlTZXRJZDsKKyAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgcmV0dXJuIGtleVNldElkOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhIHNlc3Npb24gY2FuIGJlIG9wZW5lZCBhbmQgY2xvc2VkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIE9wZW5DbG9zZVNlc3Npb24pIHsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGF0dGVtcHRpbmcgdG8gY2xvc2UgYW4gaW52YWxpZCAoZW1wdHkpIHNlc3Npb25JZAorICogaXMgcHJvaGliaXRlZCB3aXRoIHRoZSBkb2N1bWVudGVkIGVycm9yIGNvZGUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIENsb3NlSW52YWxpZFNlc3Npb24pIHsKKyAgICBTZXNzaW9uSWQgaW52YWxpZFNlc3Npb25JZDsKKyAgICBTdGF0dXMgcmVzdWx0ID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oaW52YWxpZFNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCByZXN1bHQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhdHRlbXB0aW5nIHRvIGNsb3NlIGEgc2Vzc2lvbiB0aGF0IGlzIGFscmVhZHkgY2xvc2VkCisgKiBpcyBwcm9oaWJpdGVkIHdpdGggdGhlIGRvY3VtZW50ZWQgZXJyb3IgY29kZS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgQ2xvc2VDbG9zZWRTZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgU3RhdHVzIHJlc3VsdCA9IGRybVBsdWdpbi0+Y2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgcmVzdWx0KTsKK30KKworLyoqCisgKiBBIGdldCBrZXkgcmVxdWVzdCBzaG91bGQgZmFpbCBpZiBubyBzZXNzaW9uSWQgaXMgcHJvdmlkZWQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0S2V5UmVxdWVzdE5vU2Vzc2lvbikgeworICAgIFNlc3Npb25JZCBpbnZhbGlkU2Vzc2lvbklkOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhOworICAgIGhpZGxfc3RyaW5nIG1pbWVUeXBlID0gInZpZGVvL21wNCI7CisgICAgS2V5ZWRWZWN0b3Igb3B0aW9uYWxQYXJhbWV0ZXJzOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRLZXlSZXF1ZXN0KAorICAgICAgICAgICAgaW52YWxpZFNlc3Npb25JZCwgaW5pdERhdGEsIG1pbWVUeXBlLCBLZXlUeXBlOjpTVFJFQU1JTkcsCisgICAgICAgICAgICBvcHRpb25hbFBhcmFtZXRlcnMsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mLCBLZXlSZXF1ZXN0VHlwZSwKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYpIHsgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOyB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUaGUgY2xlYXJrZXkgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBvZmZsaW5lIGtleSByZXF1ZXN0cy4KKyAqIFRlc3QgdGhhdCB0aGUgcGx1Z2luIHJldHVybnMgdGhlIGV4cGVjdGVkIGVycm9yIGNvZGUgaW4KKyAqIHRoaXMgY2FzZS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0S2V5UmVxdWVzdE9mZmxpbmVLZXlUeXBlTm90U3VwcG9ydGVkKSB7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhOworICAgIGhpZGxfc3RyaW5nIG1pbWVUeXBlID0gInZpZGVvL21wNCI7CisgICAgS2V5ZWRWZWN0b3Igb3B0aW9uYWxQYXJhbWV0ZXJzOworCisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldEtleVJlcXVlc3QoCisgICAgICAgICAgICBzZXNzaW9uSWQsIGluaXREYXRhLCBtaW1lVHlwZSwgS2V5VHlwZTo6T0ZGTElORSwgb3B0aW9uYWxQYXJhbWV0ZXJzLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiwgS2V5UmVxdWVzdFR5cGUsCisgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmKSB7CisgICAgICAgICAgICAgICAgLy8gQ2xlYXJrZXkgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBvZmZsaW5lIGtleSB0eXBlCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIHBsdWdpbiByZXR1cm5zIHRoZSBkb2N1bWVudGVkIGVycm9yIGZvciB0aGUKKyAqIGNhc2Ugb2YgYXR0ZW1wdGluZyB0byBnZW5lcmF0ZSBhIGtleSByZXF1ZXN0IHVzaW5nIGFuCisgKiBpbnZhbGlkIG1pbWUgdHlwZQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZXRLZXlSZXF1ZXN0QmFkTWltZSkgeworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0RGF0YTsKKyAgICBoaWRsX3N0cmluZyBtaW1lVHlwZSA9ICJ2aWRlby91bmtub3duIjsKKyAgICBLZXllZFZlY3RvciBvcHRpb25hbFBhcmFtZXRlcnM7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldEtleVJlcXVlc3QoCisgICAgICAgICAgICBzZXNzaW9uSWQsIGluaXREYXRhLCBtaW1lVHlwZSwgS2V5VHlwZTo6U1RSRUFNSU5HLAorICAgICAgICAgICAgb3B0aW9uYWxQYXJhbWV0ZXJzLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5UmVxdWVzdFR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGEgY2xvc2VkIHNlc3Npb25JRCByZXR1cm5zIFNFU1NJT05fTk9UX09QRU5FRAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBQcm92aWRlS2V5UmVzcG9uc2VDbG9zZWRTZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKKworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVJlc3BvbnNlID0gezB4N2IsIDB4MjIsIDB4NmIsIDB4NjUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3OSwgMHg3MywgMHgyMiwgMHgzYX07CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnByb3ZpZGVLZXlSZXNwb25zZSgKKyAgICAgICAgICAgIHNlc3Npb24sIGtleVJlc3BvbnNlLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlTZXRJZCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCBrZXlTZXRJZC5zaXplKCkpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGFuIGVtcHR5IHNlc3Npb25JRCByZXR1cm5zIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBQcm92aWRlS2V5UmVzcG9uc2VJbnZhbGlkU2Vzc2lvbklkKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlSZXNwb25zZSA9IHsweDdiLCAweDIyLCAweDZiLCAweDY1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NzksIDB4NzMsIDB4MjIsIDB4M2F9OworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5wcm92aWRlS2V5UmVzcG9uc2UoCisgICAgICAgICAgICBzZXNzaW9uLCBrZXlSZXNwb25zZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5U2V0SWQpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCBrZXlTZXRJZC5zaXplKCkpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGFuIGVtcHR5IGtleSByZXNwb25zZSByZXR1cm5zIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBQcm92aWRlS2V5UmVzcG9uc2VFbXB0eVJlc3BvbnNlKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGVtcHR5UmVzcG9uc2U7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnByb3ZpZGVLZXlSZXNwb25zZSgKKyAgICAgICAgICAgIHNlc3Npb24sIGVtcHR5UmVzcG9uc2UsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVNldElkKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgwdSwga2V5U2V0SWQuc2l6ZSgpKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgYSByZW1vdmVLZXlzIG9uIGFuIGVtcHR5IHNlc3Npb25JRCByZXR1cm5zIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBSZW1vdmVLZXlzRW1wdHlTZXNzaW9uSWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlbW92ZUtleXMoc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpCQURfVkFMVUUpOworfQorCisvKioKKyAqIFJlbW92ZSBrZXlzIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGNsZWFya2V5LgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBSZW1vdmVLZXlzTmV3U2Vzc2lvbikgeworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlbW92ZUtleXMoc2Vzc2lvbklkKTsKKyAgICAvLyBDbGVhcmtleSBwbHVnaW4gZG9lc24ndCBzdXBwb3J0IHJlbW92ZSBrZXlzCisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IENsZWFyS2V5IGNhbm5vdCBoYW5kbGUga2V5IHJlc3RvcmluZy4KKyAqIEV4cGVjdGVkIG1lc3NhZ2UgaXMgU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgUmVzdG9yZUtleXNDYW5ub3RIYW5kbGUpIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlTZXRJZCA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxfTsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZXN0b3JlS2V5cyhzZXNzaW9uSWQsIGtleVNldElkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgcmVzdG9yZUtleXMgZmFpbHMgd2l0aCBhIG51bGwga2V5IHNldCBJRC4KKyAqIEVycm9yIG1lc3NhZ2UgaXMgZXhwZWN0ZWQgdG8gYmUgU3RhdHVzOjpCQURfVkFMVUUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFJlc3RvcmVLZXlzTnVsbCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IG51bGxLZXlTZXRJZDsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZXN0b3JlS2V5cyhzZXNzaW9uSWQsIG51bGxLZXlTZXRJZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCB0aGUgY2xlYXJrZXkgcGx1Z2luIGRvZXNuJ3Qgc3VwcG9ydCBnZXR0aW5nCisgKiBzZWN1cmUgc3RvcHMuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldFNlY3VyZVN0b3BzKSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFNlY3VyZVN0b3BzKAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPFNlY3VyZVN0b3A+JikgeworICAgICAgICAgICAgICAgIC8vIENsZWFya2V5IHBsdWdpbiBkb2Vzbid0IHN1cHBvcnQgc2VjdXJlIHN0b3BzCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIGNsZWFya2V5IHBsdWdpbiByZXR1cm5zIEJBRF9WQUxVRSBpZgorICogYW4gZW1wdHkgc3NpZCBpcyBwcm92aWRlZC4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2V0U2VjdXJlU3RvcEVtcHR5U1NJRCkgeworICAgIFNlY3VyZVN0b3BJZCBzc2lkOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRTZWN1cmVTdG9wKAorICAgICAgICAgICAgc3NpZCwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IFNlY3VyZVN0b3AmKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHJlbGVhc2luZyBhbGwgc2VjdXJlIHN0b3BzIGlzbid0IGhhbmRsZWQgYnkKKyAqIGNsZWFya2V5LgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBSZWxlYXNlQWxsU2VjdXJlU3RvcHMpIHsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgZHJtUGx1Z2luLT5yZWxlYXNlQWxsU2VjdXJlU3RvcHMoKSk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHJlbGVhc2luZyBhIHNwZWNpZmljIHNlY3VyZSBzdG9wIHdpdGggYW4gZW1wdHkKKyAqIFNTSUQgcmV0dXJucyBCQURfVkFMVUUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFJlbGVhc2VTZWN1cmVTdG9wRW1wdHlTU0lEKSB7CisgICAgU2VjdXJlU3RvcElkIHNzaWQ7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVsZWFzZVNlY3VyZVN0b3Aoc3NpZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworfQorCisvKioKKyAqIFRoZSBmb2xsb3dpbmcgZm91ciB0ZXN0cyB2ZXJpZnkgdGhhdCB0aGUgcHJvcGVydGllcworICogZGVmaW5lZCBpbiB0aGUgTWVkaWFEcm0gQVBJIGFyZSBzdXBwb3J0ZWQgYnkKKyAqIHRoZSBwbHVnaW4uCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldFZlbmRvclByb3BlcnR5KSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgInZlbmRvciIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoIkdvb2dsZSIsIHZhbHVlKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZXRWZXJzaW9uUHJvcGVydHkpIHsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0UHJvcGVydHlTdHJpbmcoCisgICAgICAgICAgICAidmVyc2lvbiIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoIjEuMCIsIHZhbHVlKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZXREZXNjcmlwdGlvblByb3BlcnR5KSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgiQ2xlYXJLZXkgQ0RNIiwgdmFsdWUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldEFsZ29yaXRobXNQcm9wZXJ0eSkgeworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJhbGdvcml0aG1zIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgiIiwgdmFsdWUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGF0dGVtcHRpbmcgdG8gcmVhZCBpbnZhbGlkIHN0cmluZyBhbmQgYnl0ZSBhcnJheQorICogcHJvcGVydGllcyByZXR1cm5zIHRoZSBkb2N1bWVudGVkIGVycm9yIGNvZGUuCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldEludmFsaWRTdHJpbmdQcm9wZXJ0eSkgeworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJpbnZhbGlkIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIEdldEJ5dGVBcnJheVByb3BlcnR5Tm90U3VwcG9ydGVkKSB7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5Qnl0ZUFycmF5KAorICAgICAgICAgICAgImRldmljZVVuaXF1ZUlkIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogQ2xlYXJrZXkgZG9lc24ndCBzdXBwb3J0IHNldHRpbmcgc3RyaW5nIG9yIGJ5dGUgYXJyYXkgcHJvcGVydGllcywKKyAqIHBhcnRpY3VsYXJseSBhbiB1bmRlZmluZWQgb25lLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRTdHJpbmdQcm9wZXJ0eU5vdFN1cHBvcnRlZCkgeworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldFByb3BlcnR5U3RyaW5nKCJwcm9wZXJ0eSIsICJ2YWx1ZSIpOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRCeXRlQXJyYXlQcm9wZXJ0eU5vdFN1cHBvcnRlZCkgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHZhbHVlOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldFByb3BlcnR5Qnl0ZUFycmF5KCJwcm9wZXJ0eSIsIHZhbHVlKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKK30KKworLyoqCisgKiBDbGVhcmtleSBkb2Vzbid0IHN1cHBvcnQgc2V0dGluZyBjaXBoZXIgYWxnb3JpdGhtcywgdmVyaWZ5IGl0CisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldENpcGhlckFsZ29yaXRobU5vdFN1cHBvcnRlZCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiQUVTL0NCQy9Ob1BhZGRpbmciOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldENpcGhlckFsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBTZXR0aW5nIGFuIGVtcHR5IGFsZ29yaXRobSBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRDaXBoZXJFbXB0eUFsZ29yaXRobSkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG07CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0Q2lwaGVyQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBTZXR0aW5nIGEgY2lwaGVyIGFsZ29yaXRobSB3aXRoIG5vIHNlc3Npb24gcmV0dXJucyBCQURfVkFMVUUKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgU2V0Q2lwaGVyQWxnb3JpdGhtTm9TZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkFFUy9DQkMvTm9QYWRkaW5nIjsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRDaXBoZXJBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogQ2xlYXJrZXkgZG9lc24ndCBzdXBwb3J0IHNldHRpbmcgbWFjIGFsZ29yaXRobXMsIHZlcmlmeSBpdAorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRNYWNBbGdvcml0aG1Ob3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkhtYWNTSEEyNTYiOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldE1hY0FsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBTZXR0aW5nIGFuIGVtcHR5IGFsZ29yaXRobSBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRQorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRNYWNFbXB0eUFsZ29yaXRobSkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG07CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0TWFjQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBTZXR0aW5nIGEgbWFjIGFsZ29yaXRobSB3aXRoIG5vIHNlc3Npb24gc2hvdWxkIHJldHVybiBCQURfVkFMVUUKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgU2V0TWFjQWxnb3JpdGhtTm9TZXNzaW9uKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkhtYWNTSEEyNTYiOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldE1hY0FsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKK30KKworLyoqCisgKiBUaGUgR2VuZXJpYyogbWV0aG9kcyBwcm92aWRlIGdlbmVyYWwgcHVycG9zZSBjcnlwdG8gb3BlcmF0aW9ucworICogdGhhdCBtYXkgYmUgdXNlZCBmb3IgYXBwbGljYXRpb25zIG90aGVyIHRoYW4gRFJNLiBUaGV5IGxldmVyYWdlCisgKiB0aGUgaGFyZHdhcmUgcm9vdCBvZiB0cnVzdCBhbmQgc2VjdXJlIGtleSBkaXN0cmlidXRpb24gbWVjaGFuaXNtcworICogb2YgYSBEUk0gc3lzdGVtIHRvIGVuYWJsZSBhcHAtc3BlY2lmaWMgY3J5cHRvIGZ1bmN0aW9uYWxpdHkgd2hlcmUKKyAqIHRoZSBjcnlwdG8ga2V5cyBhcmUgbm90IGV4cG9zZWQgb3V0c2lkZSBvZiB0aGUgdHJ1c3RlZCBleGVjdXRpb24KKyAqIGVudmlyb25tZW50LgorICoKKyAqIENsZWFya2V5IGRvZXNuJ3Qgc3VwcG9ydCBnZW5lcmljIGVuY3J5cHQvZGVjcnlwdC9zaWduL3ZlcmlmeS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2VuZXJpY0VuY3J5cHROb3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDF9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGlucHV0ID0gezEsIDIsIDMsIDQsIDV9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGl2ID0gc3RkOjp2ZWN0b3I8dWludDhfdD4oQUVTX0JMT0NLX1NJWkUsIDApOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5lbmNyeXB0KHNlc3Npb24sIGtleUlkLCBpbnB1dCwgaXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZW5lcmljRGVjcnlwdE5vdFN1cHBvcnRlZCkgeworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlJZCA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxfTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbnB1dCA9IHsxLCAyLCAzLCA0LCA1fTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpdiA9IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+KEFFU19CTE9DS19TSVpFLCAwKTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+ZGVjcnlwdChzZXNzaW9uLCBrZXlJZCwgaW5wdXQsIGl2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2VuZXJpY1NpZ25Ob3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDF9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IG1lc3NhZ2UgPSB7MSwgMiwgMywgNCwgNX07CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnNpZ24oc2Vzc2lvbiwga2V5SWQsIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBHZW5lcmljVmVyaWZ5Tm90U3VwcG9ydGVkKSB7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlJZCA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxfTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBtZXNzYWdlID0gezEsIDIsIDMsIDQsIDV9OworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSA9IHswLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+dmVyaWZ5KAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5SWQsIG1lc3NhZ2UsIHNpZ25hdHVyZSwgWyZdKFN0YXR1cyBzdGF0dXMsIGJvb2wpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgR2VuZXJpY1NpZ25SU0FOb3RTdXBwb3J0ZWQpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIlJTQVNTQS1QU1MtU0hBMSI7CisgICAgaGlkbF92ZWM8dWludDhfdD4gbWVzc2FnZSA9IHsxLCAyLCAzLCA0LCA1fTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiB3cmFwcGVkS2V5ID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+c2lnblJTQShzZXNzaW9uLCBhbGdvcml0aG0sIG1lc3NhZ2UsIHdyYXBwZWRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqICBDcnlwdG9QbHVnaW4gdGVzdHMKKyAqLworCisvKioKKyAqIENsZWFya2V5IGRvZXNuJ3Qgc3VwcG9ydCBzZWN1cmUgZGVjb2RlciBhbmQgaXMgZXhwZWN0ZWQgdG8KKyAqIHJldHVybiBmYWxzZS4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5UGx1Z2luVGVzdCwgUmVxdWlyZXNTZWN1cmVEZWNvZGVyKSB7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b1BsdWdpbi0+cmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50KCJjZW5jIikpOworfQorCisvKioKKyAqIFZlcmlmeSB0aGF0IHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCBoYW5kbGVzIGVtcHR5IG1pbWV0eXBlCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFJlcXVpcmVzU2VjdXJlRGVjb2RlckVtcHR5TWltZVR5cGUpIHsKKyAgICBFWFBFQ1RfRkFMU0UoY3J5cHRvUGx1Z2luLT5yZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQoIiIpKTsKK30KKworLyoqCisgKiBFeGVyY2lzZSB0aGUgTm90aWZ5UmVzb2x1dGlvbiBBUEkuIFRoZXJlIGlzIG5vIG9ic2VydmFibGUgcmVzdWx0LAorICoganVzdCBjYWxsIHRoZSBtZXRob2QgZm9yIGNvdmVyYWdlLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBOb3RpZnlSZXNvbHV0aW9uKSB7CisgICAgY3J5cHRvUGx1Z2luLT5ub3RpZnlSZXNvbHV0aW9uKDE5MjAsIDEwODApOworfQorCisvKioKKyAqIGdldERlY3J5cHRNZW1vcnkgYWxsb2NhdGVzIG1lbW9yeSBmb3IgZGVjcnlwdGlvbiwgdGhlbiBzZXRzIGl0CisgKiBhcyBhIHNoYXJlZCBidWZmZXIgYmFzZSBpbiB0aGUgY3J5cHRvIGhhbC4gIFRoZSBhbGxvY2F0ZWQgYW5kCisgKiBtYXBwZWQgSU1lbW9yeSBpcyByZXR1cm5lZC4KKyAqCisgKiBAcGFyYW0gc2l6ZSB0aGUgc2l6ZSBvZiB0aGUgbWVtb3J5IHNlZ21lbnQgdG8gYWxsb2NhdGUKKyAqIEBwYXJhbSB0aGUgaW5kZXggb2YgdGhlIG1lbW9yeSBzZWdtZW50IHdoaWNoIHdpbGwgYmUgdXNlZAorICogdG8gcmVmZXIgdG8gaXQgZm9yIGRlY3J5cHRpb24uCisgKi8KK3NwPElNZW1vcnk+IERybUhhbENsZWFya2V5UGx1Z2luVGVzdDo6Z2V0RGVjcnlwdE1lbW9yeShzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgpIHsKKyAgICBzcDxJQWxsb2NhdG9yPiBhc2htZW1BbGxvY2F0b3IgPSBJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCJhc2htZW0iKTsKKyAgICBFWFBFQ1RfTkUoYXNobWVtQWxsb2NhdG9yLCBudWxscHRyKTsKKworICAgIGhpZGxfbWVtb3J5IGhpZGxNZW1vcnk7CisgICAgYXV0byByZXMgPSBhc2htZW1BbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICAgICAgc2l6ZSwgWyZdKGJvb2wgc3VjY2VzcywgY29uc3QgaGlkbF9tZW1vcnkmIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSh0cnVlLCBzdWNjZXNzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfT0soY3J5cHRvUGx1Z2luLT5zZXRTaGFyZWRCdWZmZXJCYXNlKG1lbW9yeSwgaW5kZXgpKTsKKyAgICAgICAgICAgICAgICBoaWRsTWVtb3J5ID0gbWVtb3J5OworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICBzcDxJTWVtb3J5PiBtYXBwZWRNZW1vcnkgPSBtYXBNZW1vcnkoaGlkbE1lbW9yeSk7CisgICAgRVhQRUNUX09LKGNyeXB0b1BsdWdpbi0+c2V0U2hhcmVkQnVmZmVyQmFzZShoaWRsTWVtb3J5LCBpbmRleCkpOworICAgIHJldHVybiBtYXBwZWRNZW1vcnk7Cit9CisKKy8qKgorICogRXhlcmNpc2UgdGhlIHNldE1lZGlhRHJtU2Vzc2lvbiBtZXRob2QuIHNldE1lZGlhRHJtU2Vzc2lvbgorICogaXMgdXNlZCB0byBhc3NvY2lhdGUgYSBkcm0gc2Vzc2lvbiB3aXRoIGEgY3J5cHRvIHNlc3Npb24uCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldE1lZGlhRHJtU2Vzc2lvbikgeworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBzZXRNZWRpYURybVNlc3Npb24gd2l0aCBhIGNsb3NlZCBzZXNzaW9uIGlkCisgKi8KK1RFU1RfRihEcm1IYWxDbGVhcmtleVBsdWdpblRlc3QsIFNldE1lZGlhRHJtU2Vzc2lvbkNsb3NlZFNlc3Npb24pIHsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKK30KKworLyoqCisgKiBzZXRNZWRpYURybVNlc3Npb24gd2l0aCBhbiBlbXB0eSBzZXNzaW9uIGlkOiBCQURfVkFMVUUuICBBbgorICogZW1wdHkgc2Vzc2lvbiBjbGVhcnMgdGhlIHByZXZpb3VzbHkgc2V0IHNlc3Npb24gYW5kIHNob3VsZAorICogcmV0dXJuIE9LLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlQbHVnaW5UZXN0LCBTZXRNZWRpYURybVNlc3Npb25FbXB0eVNlc3Npb24pIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworfQorCisvKioKKyAqIERlY3J5cHQgdGVzdHMKKyAqLworCitjbGFzcyBEcm1IYWxDbGVhcmtleURlY3J5cHRUZXN0IDogcHVibGljIERybUhhbENsZWFya2V5UGx1Z2luVGVzdCB7CisgICBwdWJsaWM6CisgICAgdm9pZCBmaWxsUmFuZG9tKGNvbnN0IHNwPElNZW1vcnk+JiBtZW1vcnkpOworICAgIGhpZGxfYXJyYXk8dWludDhfdCwgMTY+IHRvSGlkbEFycmF5KGNvbnN0IHZlY3Rvcjx1aW50OF90PiYgdmVjKSB7CisgICAgICAgIEVYUEVDVF9FUSgxNnUsIHZlYy5zaXplKCkpOworICAgICAgICByZXR1cm4gaGlkbF9hcnJheTx1aW50OF90LCAxNj4oJnZlY1swXSk7CisgICAgfQorICAgIHVpbnQzMl90IGRlY3J5cHQoTW9kZSBtb2RlLCB1aW50OF90KiBpdiwgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywKKyAgICAgICAgICAgIGNvbnN0IFBhdHRlcm4mIHBhdHRlcm4sIFN0YXR1cyBzdGF0dXMpOworICAgIHZvaWQgYWVzX2N0cl9kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywgdWludDhfdCogaXYsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLCBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSk7CisgICAgdm9pZCBhZXNfY2JjX2RlY3J5cHQodWludDhfdCogZGVzdCwgdWludDhfdCogc3JjLCB1aW50OF90KiBpdiwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5KTsKK307CisKK3ZvaWQgRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdDo6ZmlsbFJhbmRvbShjb25zdCBzcDxJTWVtb3J5PiYgbWVtb3J5KSB7CisgICAgcmFuZG9tX2RldmljZSByZDsKKyAgICBtdDE5OTM3IHJhbmQocmQoKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtZW1vcnktPmdldFNpemUoKSAvIHNpemVvZih1aW50MzJfdCk7IGkrKykgeworICAgICAgICBhdXRvIHAgPSBzdGF0aWNfY2FzdDx1aW50MzJfdCo+KAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPihtZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICBwW2ldID0gcmFuZCgpOworICAgIH0KK30KKwordWludDMyX3QgRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdDo6ZGVjcnlwdChNb2RlIG1vZGUsCisgICAgICAgIHVpbnQ4X3QqIGl2LCBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLAorICAgICAgICBjb25zdCBQYXR0ZXJuJiBwYXR0ZXJuLCBTdGF0dXMgZXhwZWN0ZWRTdGF0dXMpIHsKKyAgICBjb25zdCBzaXplX3Qga1NlZ21lbnRJbmRleCA9IDA7CisgICAgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+IGtleUlkID0gezB4NjAsIDB4MDYsIDB4MWUsIDB4MDEsIDB4N2UsIDB4NDcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4N2UsIDB4ODcsIDB4N2UsIDB4NTcsIDB4ZDAsIDB4MGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MWUsIDB4ZDAsIDB4MGQsIDB4MWV9OworICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiBjb250ZW50S2V5ID0gezB4MWEsIDB4OGEsIDB4MjAsIDB4OTUsIDB4ZTQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhkZSwgMHhiMiwgMHhkMiwgMHg5ZSwgMHhjOCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE2LCAweGFjLCAweDdiLCAweGFlLCAweDIwLCAweDgyfTsKKyAgICB1aW50OF90IGxvY2FsSXZbQUVTX0JMT0NLX1NJWkVdOworICAgIG1lbWNweShsb2NhbEl2LCBpdiwgQUVTX0JMT0NLX1NJWkUpOworCisgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWJTYW1wbGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIHRvdGFsU2l6ZSArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisgICAgICAgIHRvdGFsU2l6ZSArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhOworICAgIH0KKworICAgIC8vIFRoZSBmaXJzdCB0b3RhbFNpemUgYnl0ZXMgb2Ygc2hhcmVkIG1lbW9yeSBpcyB0aGUgZW5jcnlwdGVkCisgICAgLy8gaW5wdXQsIHRoZSBzZWNvbmQgdG90YWxTaXplIGJ5dGVzIGlzIHRoZSBkZWNyeXB0ZWQgb3V0cHV0LgorICAgIHNwPElNZW1vcnk+IHNoYXJlZE1lbW9yeSA9CisgICAgICAgICAgICBnZXREZWNyeXB0TWVtb3J5KHRvdGFsU2l6ZSAqIDIsIGtTZWdtZW50SW5kZXgpOworCisgICAgY29uc3QgU2hhcmVkQnVmZmVyIHNvdXJjZUJ1ZmZlciA9IHsKKyAgICAgICAgLmJ1ZmZlcklkID0ga1NlZ21lbnRJbmRleCwgLm9mZnNldCA9IDAsIC5zaXplID0gdG90YWxTaXplfTsKKyAgICBmaWxsUmFuZG9tKHNoYXJlZE1lbW9yeSk7CisKKyAgICBjb25zdCBEZXN0aW5hdGlvbkJ1ZmZlciBkZXN0QnVmZmVyID0gey50eXBlID0gQnVmZmVyVHlwZTo6U0hBUkVEX01FTU9SWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuYnVmZmVySWQgPSBrU2VnbWVudEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vZmZzZXQgPSB0b3RhbFNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNpemUgPSB0b3RhbFNpemV9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNlY3VyZU1lbW9yeSA9IG51bGxwdHJ9OworICAgIGNvbnN0IHVpbnQ2NF90IG9mZnNldCA9IDA7CisgICAgY29uc3QgYm9vbCBrTm90U2VjdXJlID0gZmFsc2U7CisgICAgdWludDMyX3QgYnl0ZXNXcml0dGVuID0gMDsKKyAgICBhdXRvIHJlcyA9IGNyeXB0b1BsdWdpbi0+ZGVjcnlwdChrTm90U2VjdXJlLCB0b0hpZGxBcnJheShrZXlJZCksIGxvY2FsSXYsIG1vZGUsCisgICAgICAgICAgICBwYXR0ZXJuLCBzdWJTYW1wbGVzLCBzb3VyY2VCdWZmZXIsIG9mZnNldCwgZGVzdEJ1ZmZlciwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCB1aW50MzJfdCBjb3VudCwgc3RyaW5nIGRldGFpbGVkRXJyb3IpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRTdGF0dXMsIHN0YXR1cykgPDwgIlVuZXhwZWN0ZWQgZGVjcnlwdCBzdGF0dXMgIiA8PAorICAgICAgICAgICAgICAgIGRldGFpbGVkRXJyb3I7CisgICAgICAgICAgICAgICAgYnl0ZXNXcml0dGVuID0gY291bnQ7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIGlmIChieXRlc1dyaXR0ZW4gIT0gdG90YWxTaXplKSB7CisgICAgICAgIHJldHVybiBieXRlc1dyaXR0ZW47CisgICAgfQorICAgIHVpbnQ4X3QqIGJhc2UgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oc2hhcmVkTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKworICAgIC8vIGdlbmVyYXRlIHJlZmVyZW5jZSB2ZWN0b3IKKyAgICB2ZWN0b3I8dWludDhfdD4gcmVmZXJlbmNlKHRvdGFsU2l6ZSk7CisKKyAgICBtZW1jcHkobG9jYWxJdiwgaXYsIEFFU19CTE9DS19TSVpFKTsKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIE1vZGU6OlVORU5DUllQVEVEOgorICAgICAgICBtZW1jcHkoJnJlZmVyZW5jZVswXSwgYmFzZSwgdG90YWxTaXplKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb2RlOjpBRVNfQ1RSOgorICAgICAgICBhZXNfY3RyX2RlY3J5cHQoJnJlZmVyZW5jZVswXSwgYmFzZSwgbG9jYWxJdiwgc3ViU2FtcGxlcywgY29udGVudEtleSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NCQzoKKyAgICAgICAgYWVzX2NiY19kZWNyeXB0KCZyZWZlcmVuY2VbMF0sIGJhc2UsIGxvY2FsSXYsIHN1YlNhbXBsZXMsIGNvbnRlbnRLZXkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1vZGU6OkFFU19DQkNfQ1RTOgorICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSkgPDwgIkFFU19DQkNfQ1RTIG1vZGUgbm90IHN1cHBvcnRlZCI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIC8vIGNvbXBhcmUgcmVmZXJlbmNlIHRvIGRlY3J5cHRlZCBkYXRhIHdoaWNoIGlzIGF0IGJhc2UgKyB0b3RhbCBzaXplCisgICAgRVhQRUNUX0VRKDAsIG1lbWNtcChzdGF0aWNfY2FzdDx2b2lkICo+KCZyZWZlcmVuY2VbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KGJhc2UgKyB0b3RhbFNpemUpLCB0b3RhbFNpemUpKQorICAgICAgICAgICAgPDwgImRlY3J5cHQgZGF0YSBtaXNtYXRjaCI7CisgICAgcmV0dXJuIHRvdGFsU2l6ZTsKK30KKworLyoqCisgKiBEZWNyeXB0IGEgbGlzdCBvZiBjbGVhcitlbmNyeXB0ZWQgc3Vic2FtcGxlcyB1c2luZyB0aGUgc3BlY2lmaWVkIGtleQorICogaW4gQUVTLUNUUiBtb2RlCisgKi8KK3ZvaWQgRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdDo6YWVzX2N0cl9kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywKKyAgICAgICAgdWludDhfdCogaXYsIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsCisgICAgICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5KSB7CisgICAgQUVTX0tFWSBkZWNyeXB0aW9uS2V5OworICAgIEFFU19zZXRfZW5jcnlwdF9rZXkoJmtleVswXSwgMTI4LCAmZGVjcnlwdGlvbktleSk7CisKKyAgICBzaXplX3Qgb2Zmc2V0ID0gMDsKKyAgICB1bnNpZ25lZCBpbnQgYmxvY2tPZmZzZXQgPSAwOworICAgIHVpbnQ4X3QgcHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyW0FFU19CTE9DS19TSVpFXTsKKyAgICBtZW1zZXQocHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyLCAwLCBBRVNfQkxPQ0tfU0laRSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN1YlNhbXBsZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgY29uc3QgU3ViU2FtcGxlJiBzdWJTYW1wbGUgPSBzdWJTYW1wbGVzW2ldOworCisgICAgICAgIGlmIChzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YSA+IDApIHsKKyAgICAgICAgICAgIG1lbWNweShkZXN0ICsgb2Zmc2V0LCBzcmMgKyBvZmZzZXQsIHN1YlNhbXBsZS5udW1CeXRlc09mQ2xlYXJEYXRhKTsKKyAgICAgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEgPiAwKSB7CisgICAgICAgICAgICBBRVNfY3RyMTI4X2VuY3J5cHQoc3JjICsgb2Zmc2V0LCBkZXN0ICsgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICBzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEsICZkZWNyeXB0aW9uS2V5LAorICAgICAgICAgICAgICAgICAgICBpdiwgcHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyLCAmYmxvY2tPZmZzZXQpOworICAgICAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBEZWNyeXB0IGEgbGlzdCBvZiBjbGVhcitlbmNyeXB0ZWQgc3Vic2FtcGxlcyB1c2luZyB0aGUgc3BlY2lmaWVkIGtleQorICogaW4gQUVTLUNCQyBtb2RlCisgKi8KK3ZvaWQgRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdDo6YWVzX2NiY19kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywKKyAgICAgICAgdWludDhfdCogaXYsIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsCisgICAgICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5KSB7CisgICAgQUVTX0tFWSBkZWNyeXB0aW9uS2V5OworICAgIEFFU19zZXRfZW5jcnlwdF9rZXkoJmtleVswXSwgMTI4LCAmZGVjcnlwdGlvbktleSk7CisKKyAgICBzaXplX3Qgb2Zmc2V0ID0gMDsKKyAgICBzaXplX3QgbnVtID0gMDsKKyAgICBzaXplX3QgZWNvdW50X2J1ZiA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWJTYW1wbGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIG1lbWNweShkZXN0ICsgb2Zmc2V0LCBzcmMgKyBvZmZzZXQsIHN1YlNhbXBsZXNbaV0ubnVtQnl0ZXNPZkNsZWFyRGF0YSk7CisgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisKKyAgICAgICAgQUVTX2NiY19lbmNyeXB0KHNyYyArIG9mZnNldCwgZGVzdCArIG9mZnNldCwgc3ViU2FtcGxlc1tpXS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSwKKyAgICAgICAgICAgICAgICAmZGVjcnlwdGlvbktleSwgaXYsIDAgLyogZGVjcnlwdCAqLyk7CisgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhOworICAgIH0KK30KKworLyoqCisgKiBUZXN0IHF1ZXJ5IGtleSBzdGF0dXMKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RGVjcnlwdFRlc3QsIFRlc3RRdWVyeUtleVN0YXR1cykgeworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cXVlcnlLZXlTdGF0dXMoc2Vzc2lvbklkLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIEtleWVkVmVjdG9yIC8qIGluZm8gKi8pIHsKKyAgICAgICAgICAgICAgICAvLyBjbGVhcmtleSBkb2Vzbid0IHN1cHBvcnQgdGhpcyBtZXRob2QKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisKKy8qKgorICogUG9zaXRpdmUgZGVjcnlwdCB0ZXN0LiAgIkRlY3J5cHQiIGEgc2luZ2xlIGNsZWFyIHNlZ21lbnQKKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RGVjcnlwdFRlc3QsIENsZWFyU2VnbWVudFRlc3QpIHsKKyAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgIGNvbnN0IFBhdHRlcm4gbm9QYXR0ZXJuID0gezAsIDB9OworICAgIGNvbnN0IHVpbnQzMl90IGtCeXRlQ291bnQgPSAyNTY7CisgICAgY29uc3QgdmVjdG9yPFN1YlNhbXBsZT4gc3ViU2FtcGxlcyA9IHsKKyAgICAgICAgey5udW1CeXRlc09mQ2xlYXJEYXRhID0ga0J5dGVDb3VudCwKKyAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDB9fTsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgbG9hZEtleXMoc2Vzc2lvbklkKTsKKworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgY29uc3QgYm9vbCBrTm90U2VjdXJlID0gZmFsc2U7CisgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpVTkVOQ1JZUFRFRCwgJml2WzBdLCBzdWJTYW1wbGVzLAorICAgICAgICAgICAgbm9QYXR0ZXJuLCBTdGF0dXM6Ok9LKTsKKyAgICBFWFBFQ1RfRVEoa0J5dGVDb3VudCwgYnl0ZUNvdW50KTsKKworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFBvc2l0aXZlIGRlY3J5cHQgdGVzdC4gIERlY3J5cHQgYSBzaW5nbGUgc2VnbWVudCB1c2luZyBBRVNfQ1RSLgorICogVmVyaWZ5IGRhdGEgbWF0Y2hlcy4KKyAqLworVEVTVF9GKERybUhhbENsZWFya2V5RGVjcnlwdFRlc3QsIEVuY3J5cHRlZEFlc0N0clNlZ21lbnRUZXN0KSB7CisgICAgdmVjdG9yPHVpbnQ4X3Q+IGl2KEFFU19CTE9DS19TSVpFLCAwKTsKKyAgICBjb25zdCBQYXR0ZXJuIG5vUGF0dGVybiA9IHswLCAwfTsKKyAgICBjb25zdCB1aW50MzJfdCBrQ2xlYXJCeXRlcyA9IDUxMjsKKyAgICBjb25zdCB1aW50MzJfdCBrRW5jcnlwdGVkQnl0ZXMgPSA1MTI7CisgICAgY29uc3QgdmVjdG9yPFN1YlNhbXBsZT4gc3ViU2FtcGxlcyA9IHsKKyAgICAgICAgey5udW1CeXRlc09mQ2xlYXJEYXRhID0ga0NsZWFyQnl0ZXMsCisgICAgICAgICAubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEgPSBrRW5jcnlwdGVkQnl0ZXMKKyAgICAgICAgfX07CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGxvYWRLZXlzKHNlc3Npb25JZCk7CisKKyAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKworICAgIGNvbnN0IGJvb2wga05vdFNlY3VyZSA9IGZhbHNlOworICAgIHVpbnQzMl90IGJ5dGVDb3VudCA9IGRlY3J5cHQoTW9kZTo6QUVTX0NUUiwgJml2WzBdLCBzdWJTYW1wbGVzLAorICAgICAgICAgICAgbm9QYXR0ZXJuLCBTdGF0dXM6Ok9LKTsKKyAgICBFWFBFQ1RfRVEoa0NsZWFyQnl0ZXMgKyBrRW5jcnlwdGVkQnl0ZXMsIGJ5dGVDb3VudCk7CisKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKy8qKgorICogTmVnYXRpdmUgZGVjcnlwdCB0ZXN0LiBEZWNyeXB0IHdpdGhvdXQgbG9hZGluZyBrZXlzLgorICovCitURVNUX0YoRHJtSGFsQ2xlYXJrZXlEZWNyeXB0VGVzdCwgRW5jcnlwdGVkQWVzQ3RyU2VnbWVudFRlc3ROb0tleXMpIHsKKyAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgIGNvbnN0IFBhdHRlcm4gbm9QYXR0ZXJuID0gezAsIDB9OworICAgIGNvbnN0IHZlY3RvcjxTdWJTYW1wbGU+IHN1YlNhbXBsZXMgPSB7CisgICAgICAgIHsubnVtQnl0ZXNPZkNsZWFyRGF0YSA9IDI1NiwKKyAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDI1Nn19OworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgY29uc3QgYm9vbCBrTm90U2VjdXJlID0gZmFsc2U7CisgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpBRVNfQ1RSLCAmaXZbMF0sIHN1YlNhbXBsZXMsCisgICAgICAgICAgICBub1BhdHRlcm4sIFN0YXR1czo6RVJST1JfRFJNX05PX0xJQ0VOU0UpOworICAgIEVYUEVDVF9FUSgwdSwgYnl0ZUNvdW50KTsKKworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQpkaWZmIC0tZ2l0IGEvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9kcm1faGFsX3ZlbmRvcl9tb2R1bGVfYXBpLmggYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfdmVuZG9yX21vZHVsZV9hcGkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGIyMDUyCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9kcm1faGFsX3ZlbmRvcl9tb2R1bGVfYXBpLmgKQEAgLTAsMCArMSwyMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIERSTV9IQUxfVkVORE9SX01PRFVMRV9BUElfSAorI2RlZmluZSBEUk1fSEFMX1ZFTkRPUl9NT0RVTEVfQVBJX0gKKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPG1hcD4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dmVjdG9yPgorCisvKioKKyAqIFRoZSBEUk0gYW5kIENyeXB0byBIQUxzIGludGVyYWN0IHdpdGggdmVuZG9yLXByb3ZpZGVkIEhBTCBpbXBsZW1lbnRhdGlvbnMKKyAqIHRoYXQgaGF2ZSBEUk0tc3BlY2lmaWMgY2FwYWJpbGl0aWVzLiBTaW5jZSB0aGUgVlRTIHRlc3RzIGNhbm5vdCBjb250YWluCisgKiBEUk0tc3BlY2lmaWMgZnVuY3Rpb25hbGl0eSwgc3VwcG9ydGluZyBtb2R1bGVzIGFyZSByZXF1aXJlZCB0byBlbmFibGUgVlRTCisgKiB0byB2YWxpZGF0ZSBIQUwgaW1wbGVtZW50YXRpb25zIGluIGEgZ2VuZXJpYyB3YXkuICBJZiB0aGUgdmVuZG9yLXNwZWNpZmljCisgKiBWVFMgbW9kdWxlIGlzIG5vdCBwcm92aWRlZCBmb3IgYSBnaXZlbiBkcm0gSEFMIGltcGxlbWVudGF0aW9uLCBvbmx5IHZlcnkKKyAqIHNtYWxsIHN1YnNldCBvZiBmdW5jdGlvbmFsaXR5IGNhbiBiZSB2ZXJpZmllZC4KKyAqCisgKiBBcyBhbiBleGFtcGxlLCBhIERSTSBIQUwgaW1wbGVtZW50YXRpb24gaW50ZXJhY3RzIHdpdGggYSBEUk0tc3BlY2lmaWMKKyAqIGxpY2Vuc2Ugc2VydmVyIHRvIG9idGFpbiBsaWNlbnNlcyBmb3IgZGVjcnlwdGluZyBjb250ZW50LiAgVGhlIERSTSBIQUwKKyAqIGltcGxlbWVudGF0aW9uIGdlbmVyYXRlcyBhIGtleSByZXF1ZXN0IG1lc3NhZ2UsIGRlbGl2ZXJzIGl0IHRvIHRoZSBzZXJ2ZXIKKyAqIGFuZCByZWNlaXZlcyBhIGtleSByZXNwb25zZSBtZXNzYWdlIHdoaWNoIGlzIHRoZW4gbG9hZGVkIGludG8gdGhlIEhBTC4gT25jZQorICogdGhlIGtleXMgYXJlIGxvYWRlZCwgdGhlIENyeXB0byBIQUwgZGVjcnlwdGlvbiBmdW5jdGlvbmFsaXR5IGFuZCBwZXJmb3JtYW5jZQorICogYW5kIG90aGVyIGFzc29jaWF0ZWQgQVBJcyBjYW4gYmUgdGVzdGVkIGJ5IHRoZSBjb21tb24gVlRTIHRlc3Qgc3VpdGUuCisgKgorICogVmVuZG9yLXNwZWNpZmljIFZUUyBtb2R1bGVzIGFyZSBzaGFyZWQgbGlicmFyaWVzIHVzZWQgYnkgdGhlIERSTSBWVFMgdGVzdC4KKyAqIFRoZXkgcHJvdmlkZSBhIHNldCBvZiBmdW5jdGlvbnMgdG8gc3VwcG9ydCBWVFMgdGVzdGluZyBvZiB0aGUgRFJNIEhBTCBtb2R1bGUuCisgKgorICogVGhlIG1vZHVsZXMgYXJlIHBsYWNlZCBpbiBhIGNvbW1vbiBsb2NhdGlvbiBvbiB0aGUgZmlsZSBzeXN0ZW0uIFRoZSBWVFMgdGVzdAorICogc2NhbnMgdGhyb3VnaCBhbGwgdmVuZG9yLXByb3ZpZGVkIHN1cHBvcnQgbGlicmFyaWVzIGFuZCBydW5zIHRoZSBWVFMgdGVzdAorICogc3VpdGUgb24gZWFjaCBsaWJyYXJ5IHRoYXQgaXMgZm91bmQuCisgKgorICogVGhlIHZlbmRvci1zcGVjaWZpYyBtb2R1bGUgZXhwb3NlcyBhbiBleHRlcm4g4oCcQ+KAnSB2ZW5kb3JNb2R1bGVGYWN0b3J5KCkKKyAqIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIERybUhhbFZUU1ZlbmRvck1vZHVsZSBpbnN0YW5jZS4gRHJtSGFsVlRTVmVuZG9yTW9kdWxlCisgKiBpbnN0YW5jZXMgYXJlIHZlcnNpb25lZCwgd2hlcmUgZWFjaCB2ZXJzaW9uIGlzIHJlcHJlc2VudGVkIGJ5IHN1YmNsYXNzIG9mCisgKiBEcm1IYWxWVFNWZW5kb3JNb2R1bGUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgQVBJIHZlcnNpb24uIEZvciBleGFtcGxlLCBhCisgKiB2ZW5kb3Itc3BlY2lmaWMgbW9kdWxlIHRoYXQgaW1wbGVtZW50cyB2ZXJzaW9uIDEgb2YgdGhlIEFQSSB3b3VsZCByZXR1cm4gYQorICogRHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxIGZyb20gdGhlIHZlbmRvck1vZHVsZUZhY3RvcnkoKSBmdW5jdGlvbi4KKyAqLworCitjbGFzcyBEcm1IYWxWVFNWZW5kb3JNb2R1bGU7CisKK2V4dGVybiAiQyIgeworLyoqCisgKiBUaGUgZmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0aW5nIERybUhhbFZUU1ZlbmRvck1vZHVsZSBpbnN0YW5jZXMuIFRoZSByZXR1cm5lZAorICogaW5zdGFuY2Ugd2lsbCBiZSBhIHN1YmNsYXNzIG9mIERybUhhbFZUU1ZlbmRvck1vZHVsZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZQorICogc3VwcG9ydGVkIEFQSSB2ZXJzaW9uLgorICovCitEcm1IYWxWVFNWZW5kb3JNb2R1bGUqIHZlbmRvck1vZHVsZUZhY3RvcnkoKTsKK307CisKK2NsYXNzIERybUhhbFZUU1ZlbmRvck1vZHVsZSB7CisgICBwdWJsaWM6CisgICAgRHJtSGFsVlRTVmVuZG9yTW9kdWxlKCkgOiBpbnN0YWxsZWQodHJ1ZSkge30KKyAgICB2aXJ0dWFsIH5Ecm1IYWxWVFNWZW5kb3JNb2R1bGUoKSB7fQorCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSB2ZW5kb3Itc3BlY2lmaWMgbW9kdWxlIEFQSSB2ZXJzaW9uLiBUaGUgdmVyc2lvbiBpcyBhbiBpbnRlZ2VyCisgICAgICogdmFsdWUgd2l0aCBpbml0aWFsIHZlcnNpb24gMS4gVGhlIEFQSSB2ZXJzaW9uIGluZGljYXRlcyB3aGljaCBzdWJjbGFzcworICAgICAqIHZlcnNpb24gRHJtSGFsVlRTVmVuZG9yTW9kdWxlIHRoaXMgaW5zdGFuY2UgaXMuCisgICAgICovCisgICAgdmlydHVhbCB1aW50MzJfdCBnZXRBUElWZXJzaW9uKCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBVVUlEIGZvciB0aGUgRFJNIEhBTCBpbXBsZW1lbnRhdGlvbi4gUHJvdGVjdGlvbiBTeXN0ZW0KKyAgICAgKiBTcGVjaWZpYworICAgICAqIFVVSUQgKHNlZSBodHRwOi8vZGFzaGlmLm9yZy9pZGVudGlmaWVycy9wcm90ZWN0aW9uLykKKyAgICAgKi8KKyAgICB2aXJ0dWFsIHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGdldFVVSUQoKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm4gdGhlIHNlcnZpY2UgbmFtZSBmb3IgdGhlIERSTSBIQUwgaW1wbGVtZW50YXRpb24uIElmIHRoZSBoYWwgaXMgYQorICAgICAqIGxlZ2FjeQorICAgICAqIGRybSBwbHVnaW4sIGkuZS4gbm90IHJ1bm5pbmcgYXMgYSBISURMIHNlcnZpY2UsIHJldHVybiB0aGUgZW1wdHkgc3RyaW5nLgorICAgICAqLworICAgIHZpcnR1YWwgc3RkOjpzdHJpbmcgZ2V0U2VydmljZU5hbWUoKSBjb25zdCA9IDA7CisKKyAgICAvKioKKyAgICAgKiBTZXQgYSBmbGFnIGluIHRoZSB2ZW5kb3IgbW9kdWxlIHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IHRoZSBkcm0KKyAgICAgKiBzY2hlbWUgY29ycmVzcG9uZGluZyB0byB0aGlzIG1vZHVsZSBpcyBpbnN0YWxsZWQgb24gdGhlIGRldmljZS4KKyAgICAgKi8KKyAgICB2b2lkIHNldEluc3RhbGxlZChib29sIGZsYWcpIHtpbnN0YWxsZWQgPSBmbGFnO30KKyAgICBib29sIGlzSW5zdGFsbGVkKCkgY29uc3Qge3JldHVybiBpbnN0YWxsZWQ7fQorCisgICBwcml2YXRlOgorICAgIGJvb2wgaW5zdGFsbGVkOworICAgIERybUhhbFZUU1ZlbmRvck1vZHVsZShjb25zdCBEcm1IYWxWVFNWZW5kb3JNb2R1bGUmKSA9IGRlbGV0ZTsKKyAgICB2b2lkIG9wZXJhdG9yPShjb25zdCBEcm1IYWxWVFNWZW5kb3JNb2R1bGUmKSA9IGRlbGV0ZTsKK307CisKKy8qKgorICogQVBJIFZlcnNpb24gMS4gIFRoaXMgaXMgdGhlIGJhc2VsaW5lIHZlcnNpb24gdGhhdCBzdXBwb3J0cyBhIG1pbmltYWwgc2V0CisgKiBvZiBWVFMgdGVzdHMuCisgKi8KK2NsYXNzIERybUhhbFZUU1ZlbmRvck1vZHVsZV9WMSA6IHB1YmxpYyBEcm1IYWxWVFNWZW5kb3JNb2R1bGUgeworICAgcHVibGljOgorICAgIERybUhhbFZUU1ZlbmRvck1vZHVsZV9WMSgpIHt9CisgICAgdmlydHVhbCB+RHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxKCkge30KKworICAgIHZpcnR1YWwgdWludDMyX3QgZ2V0QVBJVmVyc2lvbigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KKworICAgIC8qKgorICAgICAqIEhhbmRsZSBhIHByb3Zpc2lvbmluZyByZXF1ZXN0LiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGlmIHRoZSBIQUwKKyAgICAgKiBtb2R1bGUncyBnZXRQcm92aXNpb25SZXF1ZXN0IHJldHVybnMgYSBwcm92aXNpb24gcmVxdWVzdC4gIFRoZSB2ZW5kb3IKKyAgICAgKiBtb2R1bGUgc2hvdWxkIHByb2Nlc3MgdGhlIHByb3Zpc2lvbmluZyByZXF1ZXN0LCBlaXRoZXIgYnkgc2VuZGluZyBpdAorICAgICAqIHRvIGEgcHJvdmlzaW9uaW5nIHNlcnZlciwgb3IgZ2VuZXJhdGluZyBhIG1vY2sgcmVzcG9uc2UuICBUaGUgcmVzdWx0aW5nCisgICAgICogcHJvdmlzaW9uaW5nIHJlc3BvbnNlIGlzIHJldHVybmVkIHRvIHRoZSBWVFMgdGVzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwcm92aXNpb25pbmdSZXF1ZXN0IHRoZSBwcm92aXNpb25pbmcgcmVxdWVzdCByZWNpZXZlZCBmcm9tCisgICAgICogdGhlIERSTSBIQUwKKyAgICAgKiBAcGFyYW0gdXJsIHRoZSBkZWZhdWx0IHVybCB0aGUgSEFMIGltcGxlbWVudGF0aW9uIHByb3ZpZGVkIHdpdGggdGhlCisgICAgICogcHJvdmlzaW9uaW5nIHJlcXVlc3QKKyAgICAgKiBAcmV0dXJuIHRoZSBnZW5lcmF0ZWQgcHJvdmlzaW9uaW5nIHJlc3BvbnNlCisgICAgICovCisgICAgdmlydHVhbCBzdGQ6OnZlY3Rvcjx1aW50OF90PiBoYW5kbGVQcm92aXNpb25pbmdSZXF1ZXN0KAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8dWludDhfdD4mIHByb3Zpc2lvbmluZ1JlcXVlc3QsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgdXJsKSA9IDA7CisKKyAgICAvKioKKyAgICAgKiBDb250ZW50IGNvbmZpZ3VyYXRpb24gc3BlY2lmaWVzIGNvbnRlbnQtc3BlY2lmaWMgcGFyYW1ldGVycyBhc3NvY2lhdGVkCisgICAgICogd2l0aCBhIGtleSByZXF1ZXN0L3Jlc3BvbnNlIHRyYW5zYWN0aW9uLiBJdCBhbGxvd3MgdGhlIFZUUyB0ZXN0IHRvCisgICAgICogcmVxdWVzdCBrZXlzIGFuZCB1c2UgdGhlbSB0byBwZXJmb3JtIGRlY3J5cHRpb24uCisgICAgICovCisgICAgc3RydWN0IENvbnRlbnRDb25maWd1cmF0aW9uIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEFzc2lnbiBhIG5hbWUgZm9yIHRoaXMgY29uZmlndXJhdGlvbiB0aGF0IHdpbGwgYmUgcmVmZXJyZWQgdG8KKyAgICAgICAgICogaW4gbG9nIG1lc3NhZ2VzLgorICAgICAgICAgKi8KKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgbmFtZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogU2VydmVyIHRvIHVzZSB3aGVuIHJlcXVlc3RpbmcgYSBrZXkgcmVzcG9uc2UuICBUaGlzIHVybCB3aWxsIGJlCisgICAgICAgICAqIHBhc3NlZCBhcyBhIHBhcmFtZXRlciB0byB0aGUgdmVuZG9yIHZ0cyBtb2R1bGUgYWxvbmcgd2l0aCB0aGUKKyAgICAgICAgICoga2V5IHJlcXVlc3QgdG8gcGVyZm9ybSB0aGUga2V5IHJlcXVlc3QgdHJhbnNhY3Rpb24uCisgICAgICAgICAqLworICAgICAgICBjb25zdCBzdGQ6OnN0cmluZyBzZXJ2ZXJVcmw7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEluaXRpYWxpemF0aW9uIGRhdGEgcHJvdmlkZWQgdG8gZ2V0S2V5UmVxdWVzdCwgZS5nLiBQU1NIIGZvciBDRU5DCisgICAgICAgICAqIGNvbnRlbnQKKyAgICAgICAgICovCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IGluaXREYXRhOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAgTWltZSB0eXBlIHByb3ZpZGVkIHRvIGdldEtleVJlcXVlc3QsIGUuZy4gInZpZGVvL21wNCIsIG9yICJjZW5jIgorICAgICAgICAgKi8KKyAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgbWltZVR5cGU7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE9wdGlvbmFsIHBhcmFtZXRlcnMgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXkgcmVxdWVzdAorICAgICAgICAgKi8KKyAgICAgICAgY29uc3Qgc3RkOjptYXA8c3RkOjpzdHJpbmcsIHN0ZDo6c3RyaW5nPiBvcHRpb25hbFBhcmFtZXRlcnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqICBEZWZpbmUgbGljZW5zZSBwb2xpY3kgYXR0cmlidXRlcyBmb3IgdGhlIGNvbnRlbnQgY29uZmlndXJhdGlvbi4KKyAgICAgICAgICogIFRoZXNlIGF0dHJpYnV0ZXMgY2FuIGFmZmVjdCB3aGljaCB0ZXN0cyBhcmUgYWJsZSB0byBiZSBhcHBsaWVkLgorICAgICAgICAgKi8KKyAgICAgICAgc3RydWN0IFBvbGljeSB7CisgICAgICAgICAgICAvKioKKyAgICAgICAgICAgICAqIEluZGljYXRlIGlmIHRoZSBsaWNlbnNlIHBvbGljeSBhbGxvd3Mgb2ZmbGluZSBwbGF5YmFjay4KKyAgICAgICAgICAgICAqIENvbnRlbnQgY29uZmlndXJhdGVkIHdpdGggdGhpcyBwb2xpY3kgc3VwcG9ydHMgS2V5VHlwZTo6T0ZGTElORQorICAgICAgICAgICAgICoga2V5IHJlcXVlc3RzL3Jlc3BvbnNlcy4gQSB2ZW5kb3IgbW9kdWxlIHNob3VsZCBwcm92aWRlIGF0IGxlYXN0CisgICAgICAgICAgICAgKiBvbmUgY29udGVudCBjb25maWd1cmF0aW9uIHdoZXJlIGFsbG93T2ZmbGluZSBpcyB0cnVlIGlmIHRoZSBkcm0KKyAgICAgICAgICAgICAqIHNjaGVtZSBzdXBwb3J0cyBvZmZsaW5lIGNvbnRlbnQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGJvb2wgYWxsb3dPZmZsaW5lOworICAgICAgICB9IHBvbGljeTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGtleXMgdGhhdCB3aWxsIGJlIGF2YWlsYWJsZSBvbmNlIHRoZSBrZXlzIGFyZSBsb2FkZWQKKyAgICAgICAgICovCisgICAgICAgIHN0cnVjdCBLZXkgeworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBJbmRpY2F0ZSBpZiB0aGUga2V5IGNvbnRlbnQgaXMgY29uZmlndXJlZCB0byByZXF1aXJlIHNlY3VyZQorICAgICAgICAgICAgICogYnVmZmVycywgd2hlcmUgdGhlIG91dHB1dCBidWZmZXJzIGFyZSBwcm90ZWN0ZWQgYW5kIGNhbm5vdCBiZQorICAgICAgICAgICAgICogYWNjZXNzZWQgYnkgdGhlIG5vbi1zZWN1cmUgY3B1LiBBIHZlbmRvciBtb2R1bGUgc2hvdWxkIHByb3ZpZGUKKyAgICAgICAgICAgICAqIGF0IGxlYXN0IG9uZSBjb250ZW50IGNvbmZpZ3VyYXRpb25zIHdoZXJlIGlzU2VjdXJlIGlzIGZhbHNlLCB0bworICAgICAgICAgICAgICogYWxsb3cgZGVjcnlwdCByZXN1bHQgdmVyaWZpY2F0aW9uIHRlc3RzIHRvIGJlIHJ1bi4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgYm9vbCBpc1NlY3VyZTsKKworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBBIGtleSBJRCBpZGVudGlmaWVzIGEga2V5IHRvIHVzZSBmb3IgZGVjcnlwdGlvbgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiBrZXlJZDsKKworICAgICAgICAgICAgLyoqCisgICAgICAgICAgICAgKiBUaGUgY2xlYXIgY29udGVudCBrZXkgaXMgcHJvdmlkZWQgdG8gZ2VuZXJhdGUgZXhwZWN0ZWQgdmFsdWVzIGZvcgorICAgICAgICAgICAgICogdmFsaWRhdGluZyBkZWNyeXB0aW9uLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50OF90PiBjbGVhckNvbnRlbnRLZXk7CisgICAgICAgIH07CisgICAgICAgIHN0ZDo6dmVjdG9yPEtleT4ga2V5czsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmV0dXJuIGEgbGlzdCBvZiBjb250ZW50IGNvbmZpZ3VyYXRpb25zIHRoYXQgY2FuIGJlIGV4ZXJjaXNlZCBieSB0aGUKKyAgICAgKiBWVFMgdGVzdC4KKyAgICAgKi8KKyAgICB2aXJ0dWFsIHN0ZDo6dmVjdG9yPENvbnRlbnRDb25maWd1cmF0aW9uPgorICAgICAgICAgICAgZ2V0Q29udGVudENvbmZpZ3VyYXRpb25zKCkgY29uc3QgPSAwOworCisgICAgLyoqCisgICAgICogSGFuZGxlIGEga2V5IHJlcXVlc3QuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgaWYgdGhlIEhBTAorICAgICAqIG1vZHVsZSdzIGdldEtleVJlcXVlc3QgcmV0dXJucyBhIGtleSByZXF1ZXN0LiAgVGhlIHZlbmRvcgorICAgICAqIG1vZHVsZSBzaG91bGQgcHJvY2VzcyB0aGUga2V5IHJlcXVlc3QsIGVpdGhlciBieSBzZW5kaW5nIGl0CisgICAgICogdG8gYSBsaWNlbnNlIHNlcnZlciwgb3IgYnkgZ2VuZXJhdGluZyBhIG1vY2sgcmVzcG9uc2UuICBUaGUgcmVzdWx0aW5nCisgICAgICoga2V5IHJlc3BvbnNlIGlzIHJldHVybmVkIHRvIHRoZSBWVFMgdGVzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlSZXF1ZXN0IHRoZSBrZXkgcmVxdWVzdCByZWNpZXZlZCBmcm9tIHRoZSBEUk0gSEFMCisgICAgICogQHBhcmFtIHNlcnZlclVybCB0aGUgdXJsIG9mIHRoZSBrZXkgc2VydmVyIHRoYXQgd2FzIHN1cHBsaWVkCisgICAgICogYnkgdGhlIENvbnRlbnRDb25maWd1cmF0aW9uCisgICAgICogQHJldHVybiB0aGUgZ2VuZXJhdGVkIGtleSByZXNwb25zZQorICAgICAqLworICAgIHZpcnR1YWwgc3RkOjp2ZWN0b3I8dWludDhfdD4gaGFuZGxlS2V5UmVxdWVzdCgKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPHVpbnQ4X3Q+JiBrZXlSZXF1ZXN0LAorICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIHNlcnZlclVybCkgPSAwOworfTsKKworI2VuZGlmICAvLyBEUk1fSEFMX1ZFTkRPUl9NT0RVTEVfQVBJX0gKZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvZHJtX2hhbF92ZW5kb3JfdGVzdC5jcHAgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfdmVuZG9yX3Rlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZmI2ZmIKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL2RybV9oYWxfdmVuZG9yX3Rlc3QuY3BwCkBAIC0wLDAgKzEsMTYwNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiZHJtX2hhbF92ZW5kb3JfdGVzdEAxLjAiCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvRmFjdG9yeS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZHJtLzEuMC9JQ3J5cHRvUGx1Z2luLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1GYWN0b3J5Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL0lEcm1QbHVnaW4uaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2RybS8xLjAvSURybVBsdWdpbkxpc3RlbmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9kcm0vMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPG9wZW5zc2wvYWVzLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHJhbmRvbT4KKworI2luY2x1ZGUgImRybV9oYWxfdmVuZG9yX21vZHVsZV9hcGkuaCIKKyNpbmNsdWRlICJ2ZW5kb3JfbW9kdWxlcy5oIgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRDYWxsYmFja0Jhc2UuaD4KKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpCdWZmZXJUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpEZXN0aW5hdGlvbkJ1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6RXZlbnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpJQ3J5cHRvRmFjdG9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SUNyeXB0b1BsdWdpbjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6SURybUZhY3Rvcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1QbHVnaW47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OklEcm1QbHVnaW5MaXN0ZW5lcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6S2V5ZWRWZWN0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVJlcXVlc3RUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpLZXlTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVN0YXR1c1R5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OktleVZhbHVlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpQYXR0ZXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTZWN1cmVTdG9wOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTZWN1cmVTdG9wSWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlNlc3Npb25JZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmRybTo6VjFfMDo6U2hhcmVkQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHJtOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkcm06OlYxXzA6OlN1YlNhbXBsZTsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpzcDsKKwordXNpbmcgc3RkOjpzdHJpbmc7Cit1c2luZyBzdGQ6OnVuaXF1ZV9wdHI7Cit1c2luZyBzdGQ6OnJhbmRvbV9kZXZpY2U7Cit1c2luZyBzdGQ6Om1hcDsKK3VzaW5nIHN0ZDo6bXQxOTkzNzsKK3VzaW5nIHN0ZDo6dmVjdG9yOworCit1c2luZyBDb250ZW50Q29uZmlndXJhdGlvbiA9IDo6RHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxOjpDb250ZW50Q29uZmlndXJhdGlvbjsKK3VzaW5nIEtleSA9IDo6RHJtSGFsVlRTVmVuZG9yTW9kdWxlX1YxOjpDb250ZW50Q29uZmlndXJhdGlvbjo6S2V5OwordXNpbmcgVnRzVGVzdEJhc2UgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTsKKworI2RlZmluZSBBU1NFUlRfT0socmV0KSBBU1NFUlRfVFJVRShyZXQuaXNPaygpKQorI2RlZmluZSBFWFBFQ1RfT0socmV0KSBFWFBFQ1RfVFJVRShyZXQuaXNPaygpKQorCisjZGVmaW5lIFJFVFVSTl9JRl9TS0lQUEVEIFwKKyAgICBpZiAoIXZlbmRvck1vZHVsZS0+aXNJbnN0YWxsZWQoKSkgeyBcCisgICAgICAgIHN0ZDo6Y291dCA8PCAiWyAgU0tJUFBFRCBdIFRoaXMgZHJtIHNjaGVtZSBub3Qgc3VwcG9ydGVkLiIgPDwgXAorICAgICAgICAgICAgICAgICIgbGlicmFyeToiIDw8IEdldFBhcmFtKCkgPDwgIiBzZXJ2aWNlLW5hbWU6IiA8PCBcCisgICAgICAgICAgICAgICAgdmVuZG9yTW9kdWxlLT5nZXRTZXJ2aWNlTmFtZSgpIDw8IHN0ZDo6ZW5kbDsgXAorICAgICAgICByZXR1cm47IFwKKyAgICB9CisKK3N0YXRpYyBjb25zdCB1aW50OF90IGtJbnZhbGlkVVVJRFsxNl0gPSB7CisgICAgICAgIDB4MTAsIDB4MjAsIDB4MzAsIDB4NDAsIDB4NTAsIDB4NjAsIDB4NzAsIDB4ODAsCisgICAgICAgIDB4MTAsIDB4MjAsIDB4MzAsIDB4NDAsIDB4NTAsIDB4NjAsIDB4NzAsIDB4ODAsCit9OworCitzdGF0aWMgZHJtX3Z0czo6VmVuZG9yTW9kdWxlcyogZ1ZlbmRvck1vZHVsZXMgPSBudWxscHRyOworCitjbGFzcyBEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0V2l0aFBhcmFtPHN0ZDo6c3RyaW5nPiB7CisgICBwdWJsaWM6CisgICAgRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QoKQorICAgICAgICA6IHZlbmRvck1vZHVsZShzdGF0aWNfY2FzdDxEcm1IYWxWVFNWZW5kb3JNb2R1bGVfVjEqPigKKyAgICAgICAgICAgICAgICAgICAgICAgIGdWZW5kb3JNb2R1bGVzLT5nZXRNb2R1bGUoR2V0UGFyYW0oKSkpKSwKKyAgICAgICAgICBjb250ZW50Q29uZmlndXJhdGlvbnModmVuZG9yTW9kdWxlLT5nZXRDb250ZW50Q29uZmlndXJhdGlvbnMoKSkge30KKworICAgIHZpcnR1YWwgfkRybUhhbFZlbmRvckZhY3RvcnlUZXN0KCkge30KKworICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHsKKyAgICAgICAgY29uc3QgOjp0ZXN0aW5nOjpUZXN0SW5mbyogY29uc3QgdGVzdF9pbmZvID0KKyAgICAgICAgICAgICAgICA6OnRlc3Rpbmc6OlVuaXRUZXN0OjpHZXRJbnN0YW5jZSgpLT5jdXJyZW50X3Rlc3RfaW5mbygpOworICAgICAgICBBTE9HRCgiUnVubmluZyB0ZXN0ICVzLiVzIGZyb20gdmVuZG9yIG1vZHVsZSAlcyIsCisgICAgICAgICAgICAgIHRlc3RfaW5mby0+dGVzdF9jYXNlX25hbWUoKSwgdGVzdF9pbmZvLT5uYW1lKCksCisgICAgICAgICAgICAgIEdldFBhcmFtKCkuY19zdHIoKSk7CisKKyAgICAgICAgQVNTRVJUX05FKHZlbmRvck1vZHVsZSwgbnVsbHB0cik7CisKKyAgICAgICAgLy8gRmlyc3QgdHJ5IHRoZSBiaW5kZXJpemVkIHNlcnZpY2UgbmFtZSBwcm92aWRlZCBieSB0aGUgdmVuZG9yIG1vZHVsZS4KKyAgICAgICAgLy8gSWYgdGhhdCBmYWlscywgd2hpY2ggaXQgY2FuIG9uIG5vbi1iaW5kZXJpemVkIGRldmljZXMsIHRyeSB0aGUgZGVmYXVsdAorICAgICAgICAvLyBzZXJ2aWNlLgorICAgICAgICBzdHJpbmcgbmFtZSA9IHZlbmRvck1vZHVsZS0+Z2V0U2VydmljZU5hbWUoKTsKKyAgICAgICAgZHJtRmFjdG9yeSA9IFZ0c1Rlc3RCYXNlOjpnZXRTZXJ2aWNlPElEcm1GYWN0b3J5PihuYW1lKTsKKyAgICAgICAgaWYgKGRybUZhY3RvcnkgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgZHJtRmFjdG9yeSA9IFZ0c1Rlc3RCYXNlOjpnZXRTZXJ2aWNlPElEcm1GYWN0b3J5PigpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9ORShkcm1GYWN0b3J5LCBudWxscHRyKTsKKworICAgICAgICAvLyBEbyB0aGUgc2FtZSBmb3IgdGhlIGNyeXB0byBmYWN0b3J5CisgICAgICAgIGNyeXB0b0ZhY3RvcnkgPSBWdHNUZXN0QmFzZTo6Z2V0U2VydmljZTxJQ3J5cHRvRmFjdG9yeT4obmFtZSk7CisgICAgICAgIGlmIChjcnlwdG9GYWN0b3J5ID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIFZ0c1Rlc3RCYXNlOjpnZXRTZXJ2aWNlPElDcnlwdG9GYWN0b3J5PigpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9ORShjcnlwdG9GYWN0b3J5LCBudWxscHRyKTsKKworICAgICAgICAvLyBJZiBkcm0gc2NoZW1lIG5vdCBpbnN0YWxsZWQgc2tpcCBzdWJzZXF1ZW50IHRlc3RzCisgICAgICAgIGlmICghZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoZ2V0VmVuZG9yVVVJRCgpKSkgeworICAgICAgICAgICAgdmVuZG9yTW9kdWxlLT5zZXRJbnN0YWxsZWQoZmFsc2UpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICAgcHJvdGVjdGVkOgorICAgIGhpZGxfYXJyYXk8dWludDhfdCwgMTY+IGdldFZlbmRvclVVSUQoKSB7CisgICAgICAgIHZlY3Rvcjx1aW50OF90PiB1dWlkID0gdmVuZG9yTW9kdWxlLT5nZXRVVUlEKCk7CisgICAgICAgIHJldHVybiBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PigmdXVpZFswXSk7CisgICAgfQorCisgICAgc3A8SURybUZhY3Rvcnk+IGRybUZhY3Rvcnk7CisgICAgc3A8SUNyeXB0b0ZhY3Rvcnk+IGNyeXB0b0ZhY3Rvcnk7CisgICAgdW5pcXVlX3B0cjxEcm1IYWxWVFNWZW5kb3JNb2R1bGVfVjE+IHZlbmRvck1vZHVsZTsKKyAgICBjb25zdCB2ZWN0b3I8Q29udGVudENvbmZpZ3VyYXRpb24+IGNvbnRlbnRDb25maWd1cmF0aW9uczsKK307CisKK1RFU1RfUChEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCwgVmFsaWRhdGVDb25maWd1cmF0aW9ucykgeworICAgIGNvbnN0IGNoYXIqIGtWZW5kb3JTdHIgPSAiVmVuZG9yIG1vZHVsZSAiOworICAgIHNpemVfdCBjb3VudCA9IDA7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBBU1NFUlRfVFJVRShjb25maWcubmFtZS5zaXplKCkgPiAwKSA8PCBrVmVuZG9yU3RyIDw8ICJoYXMgbm8gbmFtZSI7CisgICAgICAgIEFTU0VSVF9UUlVFKGNvbmZpZy5zZXJ2ZXJVcmwuc2l6ZSgpID4gMCkgPDwga1ZlbmRvclN0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJoYXMgbm8gc2VydmVyVXJsIjsKKyAgICAgICAgQVNTRVJUX1RSVUUoY29uZmlnLmluaXREYXRhLnNpemUoKSA+IDApIDw8IGtWZW5kb3JTdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJoYXMgbm8gaW5pdCBkYXRhIjsKKyAgICAgICAgQVNTRVJUX1RSVUUoY29uZmlnLm1pbWVUeXBlLnNpemUoKSA+IDApIDw8IGtWZW5kb3JTdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJoYXMgbm8gbWltZSB0eXBlIjsKKyAgICAgICAgQVNTRVJUX1RSVUUoY29uZmlnLmtleXMuc2l6ZSgpID49IDEpIDw8IGtWZW5kb3JTdHIgPDwgImhhcyBubyBrZXlzIjsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShrZXkua2V5SWQuc2l6ZSgpID4gMCkgPDwga1ZlbmRvclN0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgaGFzIHplcm8gbGVuZ3RoIGtleUlkIjsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGtleS5rZXlJZC5zaXplKCkgPiAwKSA8PCBrVmVuZG9yU3RyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIiBoYXMgemVybyBsZW5ndGgga2V5IHZhbHVlIjsKKyAgICAgICAgfQorICAgICAgICBjb3VudCsrOworICAgIH0KKyAgICBFWFBFQ1RfTkUoMHUsIGNvdW50KTsKK30KKworLyoqCisgKiBFbnN1cmUgdGhlIGZhY3RvcnkgZG9lc24ndCBzdXBwb3J0IGFuIGludmFsaWQgc2NoZW1lIFVVSUQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBJbnZhbGlkUGx1Z2luTm90U3VwcG9ydGVkKSB7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGtJbnZhbGlkVVVJRCkpOworICAgIEVYUEVDVF9GQUxTRShjcnlwdG9GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChrSW52YWxpZFVVSUQpKTsKK30KKworLyoqCisgKiBFbnN1cmUgdGhlIGZhY3RvcnkgZG9lc24ndCBzdXBwb3J0IGFuIGVtcHR5IFVVSUQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBFbXB0eVBsdWdpblVVSUROb3RTdXBwb3J0ZWQpIHsKKyAgICBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiBlbXB0eVVVSUQ7CisgICAgbWVtc2V0KGVtcHR5VVVJRC5kYXRhKCksIDAsIDE2KTsKKyAgICBFWFBFQ1RfRkFMU0UoZHJtRmFjdG9yeS0+aXNDcnlwdG9TY2hlbWVTdXBwb3J0ZWQoZW1wdHlVVUlEKSk7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b0ZhY3RvcnktPmlzQ3J5cHRvU2NoZW1lU3VwcG9ydGVkKGVtcHR5VVVJRCkpOworfQorCisvKioKKyAqIENoZWNrIGlmIHRoZSBmYWN0b3J5IHN1cHBvcnRzIHRoZSBzY2hlbWUgdXVpZCBpbiB0aGUgY29uZmlnLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIFBsdWdpbkNvbmZpZ1VVSURTdXBwb3J0ZWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBFWFBFQ1RfVFJVRShkcm1GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChnZXRWZW5kb3JVVUlEKCkpKTsKKyAgICBFWFBFQ1RfVFJVRShjcnlwdG9GYWN0b3J5LT5pc0NyeXB0b1NjaGVtZVN1cHBvcnRlZChnZXRWZW5kb3JVVUlEKCkpKTsKK30KKworLyoqCisgKiBFbnN1cmUgZW1wdHkgY29udGVudCB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBFbXB0eUNvbnRlbnRUeXBlTm90U3VwcG9ydGVkKSB7CisgICAgaGlkbF9zdHJpbmcgZW1wdHk7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoZW1wdHkpKTsKK30KKworLyoqCisgKiBFbnN1cmUgaW52YWxpZCBjb250ZW50IHR5cGUgaXMgbm90IHN1cHBvcnRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIEludmFsaWRDb250ZW50VHlwZU5vdFN1cHBvcnRlZCkgeworICAgIGhpZGxfc3RyaW5nIGludmFsaWQoImFiY2RhYmNkIik7CisgICAgRVhQRUNUX0ZBTFNFKGRybUZhY3RvcnktPmlzQ29udGVudFR5cGVTdXBwb3J0ZWQoaW52YWxpZCkpOworfQorCisvKioKKyAqIEVuc3VyZSB2YWxpZCBjb250ZW50IHR5cGVzIGluIHRoZSBjb25maWdzIGFyZSBzdXBwb3J0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBWYWxpZENvbnRlbnRUeXBlU3VwcG9ydGVkKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBFWFBFQ1RfVFJVRShkcm1GYWN0b3J5LT5pc0NvbnRlbnRUeXBlU3VwcG9ydGVkKGNvbmZpZy5taW1lVHlwZSkpOworICAgIH0KK30KKworLyoqCisgKiBFbnN1cmUgdmVuZG9yIGRybSBwbHVnaW4gY2FuIGJlIGNyZWF0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBDcmVhdGVWZW5kb3JEcm1QbHVnaW4pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgIGF1dG8gcmVzID0gZHJtRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAgZ2V0VmVuZG9yVVVJRCgpLCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX05FKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgdmVuZG9yIGNyeXB0byBwbHVnaW4gY2FuIGJlIGNyZWF0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBDcmVhdGVWZW5kb3JDcnlwdG9QbHVnaW4pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgIGF1dG8gcmVzID0gY3J5cHRvRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAgZ2V0VmVuZG9yVVVJRCgpLCBpbml0VmVjLAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IHNwPElDcnlwdG9QbHVnaW4+JiBwbHVnaW4pIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEVuc3VyZSBpbnZhbGlkIGRybSBwbHVnaW4gY2FuJ3QgYmUgY3JlYXRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsIENyZWF0ZUludmFsaWREcm1QbHVnaW4pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgIGF1dG8gcmVzID0gZHJtRmFjdG9yeS0+Y3JlYXRlUGx1Z2luKAorICAgICAgICAgICAga0ludmFsaWRVVUlELCBwYWNrYWdlTmFtZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBFbnN1cmUgaW52YWxpZCBjcnlwdG8gcGx1Z2luIGNhbid0IGJlIGNyZWF0ZWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvckZhY3RvcnlUZXN0LCBDcmVhdGVJbnZhbGlkQ3J5cHRvUGx1Z2luKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgaGlkbF92ZWM8dWludDhfdD4gaW5pdFZlYzsKKyAgICBhdXRvIHJlcyA9IGNyeXB0b0ZhY3RvcnktPmNyZWF0ZVBsdWdpbigKKyAgICAgICAgICAgIGtJbnZhbGlkVVVJRCwgaW5pdFZlYywKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJQ3J5cHRvUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHBsdWdpbiwgbnVsbHB0cik7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworY2xhc3MgRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCA6IHB1YmxpYyBEcm1IYWxWZW5kb3JGYWN0b3J5VGVzdCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB+RHJtSGFsVmVuZG9yUGx1Z2luVGVzdCgpIHt9CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICAvLyBDcmVhdGUgZmFjdG9yaWVzCisgICAgICAgIERybUhhbFZlbmRvckZhY3RvcnlUZXN0OjpTZXRVcCgpOworICAgICAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKworICAgICAgICBoaWRsX3N0cmluZyBwYWNrYWdlTmFtZSgiYW5kcm9pZC5oYXJkd2FyZS5kcm0udGVzdCIpOworICAgICAgICBhdXRvIHJlcyA9IGRybUZhY3RvcnktPmNyZWF0ZVBsdWdpbigKKyAgICAgICAgICAgICAgICBnZXRWZW5kb3JVVUlEKCksIHBhY2thZ2VOYW1lLAorICAgICAgICAgICAgICAgIFt0aGlzXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJRHJtUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgZHJtUGx1Z2luID0gcGx1Z2luOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfT0socmVzKTsKKworICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiBpbml0VmVjOworICAgICAgICByZXMgPSBjcnlwdG9GYWN0b3J5LT5jcmVhdGVQbHVnaW4oCisgICAgICAgICAgICAgICAgZ2V0VmVuZG9yVVVJRCgpLCBpbml0VmVjLAorICAgICAgICAgICAgICAgIFt0aGlzXShTdGF0dXMgc3RhdHVzLCBjb25zdCBzcDxJQ3J5cHRvUGx1Z2luPiYgcGx1Z2luKSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTkUocGx1Z2luLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICAgICAgY3J5cHRvUGx1Z2luID0gcGx1Z2luOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfT0socmVzKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgICAgU2Vzc2lvbklkIG9wZW5TZXNzaW9uKCk7CisgICAgdm9pZCBjbG9zZVNlc3Npb24oY29uc3QgU2Vzc2lvbklkJiBzZXNzaW9uSWQpOworICAgIHNwPElNZW1vcnk+IGdldERlY3J5cHRNZW1vcnkoc2l6ZV90IHNpemUsIHNpemVfdCBpbmRleCk7CisgICAgS2V5ZWRWZWN0b3IgdG9IaWRsS2V5ZWRWZWN0b3IoY29uc3QgbWFwPHN0cmluZywgc3RyaW5nPiYgcGFyYW1zKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBsb2FkS2V5cyhjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBDb250ZW50Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBLZXlUeXBlJiB0eXBlKTsKKworICAgcHJvdGVjdGVkOgorICAgIHNwPElEcm1QbHVnaW4+IGRybVBsdWdpbjsKKyAgICBzcDxJQ3J5cHRvUGx1Z2luPiBjcnlwdG9QbHVnaW47Cit9OworCisvKioKKyAqICBEcm1QbHVnaW4gdGVzdHMKKyAqLworCisvKioKKyAqIFRlc3QgdGhhdCBhIERSTSBwbHVnaW4gY2FuIGhhbmRsZSBwcm92aXNpb25pbmcuICBXaGlsZQorICogaXQgaXMgbm90IHJlcXVpcmVkIHRoYXQgYSBEUk0gc2NoZW1lIHJlcXVpcmUgcHJvdmlzaW9uaW5nLAorICogaXQgc2hvdWxkIGF0IGxlYXN0IHJldHVybiBhcHByb3ByaWF0ZSBzdGF0dXMgdmFsdWVzLiBJZgorICogYSBwcm92aXNpb25pbmcgcmVxdWVzdCBpcyByZXR1cm5lZCwgaXQgaXMgcGFzc2VkIHRvIHRoZQorICogdmVuZG9yIG1vZHVsZSB3aGljaCBzaG91bGQgcHJvdmlkZSBhIHByb3Zpc2lvbmluZyByZXNwb25zZQorICogdGhhdCBpcyBkZWxpdmVyZWQgYmFjayB0byB0aGUgSEFMLgorICovCisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBEb1Byb3Zpc2lvbmluZykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGhpZGxfc3RyaW5nIGNlcnRpZmljYXRlVHlwZTsKKyAgICBoaWRsX3N0cmluZyBjZXJ0aWZpY2F0ZUF1dGhvcml0eTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBwcm92aXNpb25SZXF1ZXN0OworICAgIGhpZGxfc3RyaW5nIGRlZmF1bHRVcmw7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3Zpc2lvblJlcXVlc3QoCisgICAgICAgICAgICBjZXJ0aWZpY2F0ZVR5cGUsIGNlcnRpZmljYXRlQXV0aG9yaXR5LAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiByZXF1ZXN0LAorICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfc3RyaW5nJiB1cmwpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX05FKHJlcXVlc3Quc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICAgICAgICAgIHByb3Zpc2lvblJlcXVlc3QgPSByZXF1ZXN0OworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VXJsID0gdXJsOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09IFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUpIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCByZXF1ZXN0LnNpemUoKSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICBpZiAocHJvdmlzaW9uUmVxdWVzdC5zaXplKCkgPiAwKSB7CisgICAgICAgIHZlY3Rvcjx1aW50OF90PiByZXNwb25zZSA9IHZlbmRvck1vZHVsZS0+aGFuZGxlUHJvdmlzaW9uaW5nUmVxdWVzdCgKKyAgICAgICAgICAgICAgICBwcm92aXNpb25SZXF1ZXN0LCBkZWZhdWx0VXJsKTsKKyAgICAgICAgQVNTRVJUX05FKDB1LCByZXNwb25zZS5zaXplKCkpOworCisgICAgICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5wcm92aWRlUHJvdmlzaW9uUmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9uc2UsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIEVYUEVDVF9PSyhyZXMpOworICAgIH0KK30KKworLyoqCisgKiBUaGUgRFJNIEhBTCBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRSBpZiBhbiBlbXB0eSBwcm92aXNpb25pbmcKKyAqIHJlc3BvbnNlIGlzIHByb3ZpZGVkLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUHJvdmlkZUVtcHR5UHJvdmlzaW9uUmVzcG9uc2UpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXNwb25zZTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZVByb3Zpc2lvblJlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2UsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIEhlbHBlciBtZXRob2QgdG8gb3BlbiBhIHNlc3Npb24gYW5kIHZlcmlmeSB0aGF0IGEgbm9uLWVtcHR5CisgKiBzZXNzaW9uIElEIGlzIHJldHVybmVkCisgKi8KK1Nlc3Npb25JZCBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0OjpvcGVuU2Vzc2lvbigpIHsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworCisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPm9wZW5TZXNzaW9uKFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBTZXNzaW9uSWQmIGlkKSB7CisgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICBFWFBFQ1RfTkUoaWQuc2l6ZSgpLCAwdSk7CisgICAgICAgIHNlc3Npb25JZCA9IGlkOworICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworICAgIHJldHVybiBzZXNzaW9uSWQ7Cit9CisKKy8qKgorICogSGVscGVyIG1ldGhvZCB0byBjbG9zZSBhIHNlc3Npb24KKyAqLwordm9pZCBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0OjpjbG9zZVNlc3Npb24oY29uc3QgU2Vzc2lvbklkJiBzZXNzaW9uSWQpIHsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKK30KKworS2V5ZWRWZWN0b3IgRHJtSGFsVmVuZG9yUGx1Z2luVGVzdDo6dG9IaWRsS2V5ZWRWZWN0b3IoCisgICAgY29uc3QgbWFwPHN0cmluZywgc3RyaW5nPiYgcGFyYW1zKSB7CisgICAgc3RkOjp2ZWN0b3I8S2V5VmFsdWU+IHN0ZEtleWVkVmVjdG9yOworICAgIGZvciAoYXV0byBpdCA9IHBhcmFtcy5iZWdpbigpOyBpdCAhPSBwYXJhbXMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgS2V5VmFsdWUga2V5VmFsdWU7CisgICAgICAgIGtleVZhbHVlLmtleSA9IGl0LT5maXJzdDsKKyAgICAgICAga2V5VmFsdWUudmFsdWUgPSBpdC0+c2Vjb25kOworICAgICAgICBzdGRLZXllZFZlY3Rvci5wdXNoX2JhY2soa2V5VmFsdWUpOworICAgIH0KKyAgICByZXR1cm4gS2V5ZWRWZWN0b3Ioc3RkS2V5ZWRWZWN0b3IpOworfQorCisvKioKKyAqIEhlbHBlciBtZXRob2QgdG8gbG9hZCBrZXlzIGZvciBzdWJzZXF1ZW50IGRlY3J5cHQgdGVzdHMuCisgKiBUaGVzZSB0ZXN0cyB1c2UgcHJlZGV0ZXJtaW5lZCBrZXkgcmVxdWVzdC9yZXNwb25zZSB0bworICogYXZvaWQgcmVxdWlyaW5nIGEgcm91bmQgdHJpcCB0byBhIGxpY2Vuc2Ugc2VydmVyLgorICovCitoaWRsX3ZlYzx1aW50OF90PiBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0Ojpsb2FkS2V5cygKKyAgICBjb25zdCBTZXNzaW9uSWQmIHNlc3Npb25JZCwgY29uc3QgQ29udGVudENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24sCisgICAgY29uc3QgS2V5VHlwZSYgdHlwZSA9IEtleVR5cGU6OlNUUkVBTUlORykgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVJlcXVlc3Q7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldEtleVJlcXVlc3QoCisgICAgICAgIHNlc3Npb25JZCwgY29uZmlndXJhdGlvbi5pbml0RGF0YSwgY29uZmlndXJhdGlvbi5taW1lVHlwZSwgdHlwZSwKKyAgICAgICAgdG9IaWRsS2V5ZWRWZWN0b3IoY29uZmlndXJhdGlvbi5vcHRpb25hbFBhcmFtZXRlcnMpLAorICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHJlcXVlc3QsCisgICAgICAgICAgICBLZXlSZXF1ZXN0VHlwZSB0eXBlLCBjb25zdCBoaWRsX3N0cmluZyYpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpIDw8ICJGYWlsZWQgdG8gZ2V0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrZXkgcmVxdWVzdCBmb3IgY29uZmlndXJhdGlvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCBjb25maWd1cmF0aW9uLm5hbWU7CisgICAgICAgICAgICBFWFBFQ1RfRVEodHlwZSwgS2V5UmVxdWVzdFR5cGU6OklOSVRJQUwpOworICAgICAgICAgICAgRVhQRUNUX05FKHJlcXVlc3Quc2l6ZSgpLCAwdSkgPDwgIkV4cGVjdGVkIGtleSByZXF1ZXN0IHNpemUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHRvIGhhdmUgbGVuZ3RoID4gMCBieXRlcyI7CisgICAgICAgICAgICBrZXlSZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICAvKioKKyAgICAgKiBHZXQga2V5IHJlc3BvbnNlIGZyb20gdmVuZG9yIG1vZHVsZQorICAgICAqLworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVJlc3BvbnNlID0KKyAgICAgICAgdmVuZG9yTW9kdWxlLT5oYW5kbGVLZXlSZXF1ZXN0KGtleVJlcXVlc3QsIGNvbmZpZ3VyYXRpb24uc2VydmVyVXJsKTsKKworICAgIEVYUEVDVF9ORShrZXlSZXNwb25zZS5zaXplKCksIDB1KSA8PCAiRXhwZWN0ZWQga2V5IHJlc3BvbnNlIHNpemUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG8gaGF2ZSBsZW5ndGggPiAwIGJ5dGVzIjsKKworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleVNldElkOworICAgIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICBzZXNzaW9uSWQsIGtleVJlc3BvbnNlLAorICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIG15S2V5U2V0SWQpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpIDw8ICJGYWlsdXJlIHByb3ZpZGluZyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia2V5IHJlc3BvbnNlIGZvciBjb25maWd1cmF0aW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IGNvbmZpZ3VyYXRpb24ubmFtZTsKKyAgICAgICAgICAgIGtleVNldElkID0gbXlLZXlTZXRJZDsKKyAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgcmV0dXJuIGtleVNldElkOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhIHNlc3Npb24gY2FuIGJlIG9wZW5lZCBhbmQgY2xvc2VkCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBPcGVuQ2xvc2VTZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhdHRlbXB0aW5nIHRvIGNsb3NlIGFuIGludmFsaWQgKGVtcHR5KSBzZXNzaW9uSWQKKyAqIGlzIHByb2hpYml0ZWQgd2l0aCB0aGUgZG9jdW1lbnRlZCBlcnJvciBjb2RlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgQ2xvc2VJbnZhbGlkU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBpbnZhbGlkU2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPmNsb3NlU2Vzc2lvbihpbnZhbGlkU2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IGF0dGVtcHRpbmcgdG8gY2xvc2UgYSB2YWxpZCBzZXNzaW9uIHR3aWNlCisgKiBpcyBwcm9oaWJpdGVkIHdpdGggdGhlIGRvY3VtZW50ZWQgZXJyb3IgY29kZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIENsb3NlQ2xvc2VkU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5jbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCBzdGF0dXMpOworfQorCisvKioKKyAqIEEgZ2V0IGtleSByZXF1ZXN0IHNob3VsZCBmYWlsIGlmIG5vIHNlc3Npb25JZCBpcyBwcm92aWRlZAorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0S2V5UmVxdWVzdE5vU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBpbnZhbGlkU2Vzc2lvbklkOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGluaXREYXRhOworICAgIGhpZGxfc3RyaW5nIG1pbWVUeXBlID0gInZpZGVvL21wNCI7CisgICAgS2V5ZWRWZWN0b3Igb3B0aW9uYWxQYXJhbWV0ZXJzOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRLZXlSZXF1ZXN0KAorICAgICAgICAgICAgaW52YWxpZFNlc3Npb25JZCwgaW5pdERhdGEsIG1pbWVUeXBlLCBLZXlUeXBlOjpTVFJFQU1JTkcsCisgICAgICAgICAgICBvcHRpb25hbFBhcmFtZXRlcnMsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mLCBLZXlSZXF1ZXN0VHlwZSwKKyAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYpIHsgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOyB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgYW4gZW1wdHkgc2Vzc2lvbklEIHJldHVybnMgQkFEX1ZBTFVFCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBQcm92aWRlS2V5UmVzcG9uc2VFbXB0eVNlc3Npb25JZCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uOworCisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5UmVzcG9uc2UgPSB7MHg3YiwgMHgyMiwgMHg2YiwgMHg2NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDc5LCAweDczLCAweDIyLCAweDNhfTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5UmVzcG9uc2UsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVNldElkKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShrZXlTZXRJZC5zaXplKCksIDB1KTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhbiBlbXB0eSBrZXkgcmVzcG9uc2UgcmV0dXJucyBCQURfVkFMVUUKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFByb3ZpZGVLZXlSZXNwb25zZUVtcHR5UmVzcG9uc2UpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF92ZWM8dWludDhfdD4gZW1wdHlSZXNwb25zZTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cHJvdmlkZUtleVJlc3BvbnNlKAorICAgICAgICAgICAgc2Vzc2lvbiwgZW1wdHlSZXNwb25zZSwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5U2V0SWQpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKGtleVNldElkLnNpemUoKSwgMHUpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhIHJlbW92ZUtleXMgb24gYW4gZW1wdHkgc2Vzc2lvbklEIHJldHVybnMgQkFEX1ZBTFVFCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZW1vdmVLZXlzRW1wdHlTZXNzaW9uSWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlbW92ZUtleXMoc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpCQURfVkFMVUUpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCByZW1vdmUga2V5cyByZXR1cm5zIG9rYXkgb24gYW4gaW5pdGlhbGl6ZWQgc2Vzc2lvbgorICogdGhhdCBoYXMgbm8ga2V5cy4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlbW92ZUtleXNOZXdTZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVtb3ZlS2V5cyhzZXNzaW9uSWQpOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQga2V5cyBhcmUgc3VjY2Vzc2Z1bGx5IHJlc3RvcmVkIHRvIGEgbmV3IHNlc3Npb24KKyAqIGZvciBhbGwgY29udGVudCBoYXZpbmcgYSBwb2xpY3kgdGhhdCBhbGxvd3Mgb2ZmbGluZSB1c2UuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZXN0b3JlS2V5cykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgaWYgKGNvbmZpZy5wb2xpY3kuYWxsb3dPZmZsaW5lKSB7CisgICAgICAgICAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlTZXRJZCA9CisgICAgICAgICAgICAgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnLCBLZXlUeXBlOjpPRkZMSU5FKTsKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICAgICAgc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICAgICAgICAgIEVYUEVDVF9ORSgwdSwga2V5U2V0SWQuc2l6ZSgpKTsKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlc3RvcmVLZXlzKHNlc3Npb25JZCwga2V5U2V0SWQpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHN0YXR1cyk7CisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBUZXN0IHRoYXQgcmVzdG9yZUtleXMgZmFpbHMgd2l0aCBhIG51bGwga2V5IHNldCBJRC4KKyAqIEVycm9yIG1lc3NhZ2UgaXMgZXhwZWN0ZWQgdG8gYmUgU3RhdHVzOjpCQURfVkFMVUUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZXN0b3JlS2V5c051bGwpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBudWxsS2V5U2V0SWQ7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVzdG9yZUtleXMoc2Vzc2lvbklkLCBudWxsS2V5U2V0SWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgcmVzdG9yZUtleXMgZmFpbHMgdG8gcmVzdG9yZSBrZXlzIHRvIGEgY2xvc2VkCisgKiBzZXNzaW9uLiBFcnJvciBtZXNzYWdlIGlzIGV4cGVjdGVkIHRvIGJlCisgKiBTdGF0dXM6OkVSUk9SX0RSTV9TRVNTSU9OX05PVF9PUEVORUQuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZXN0b3JlS2V5c0Nsb3NlZFNlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBmb3IgKGF1dG8gY29uZmlnIDogY29udGVudENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIGlmIChjb25maWcucG9saWN5LmFsbG93T2ZmbGluZSkgeworICAgICAgICAgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgICAgICAgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5U2V0SWQgPQorICAgICAgICAgICAgICAgICAgICBsb2FkS2V5cyhzZXNzaW9uSWQsIGNvbmZpZywgS2V5VHlwZTo6T0ZGTElORSk7CisgICAgICAgICAgICBFWFBFQ1RfTkUoMHUsIGtleVNldElkLnNpemUoKSk7CisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnJlc3RvcmVLZXlzKHNlc3Npb25JZCwga2V5U2V0SWQpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIHBsdWdpbiBlaXRoZXIgZG9lc24ndCBzdXBwb3J0IGdldHRpbmcKKyAqIHNlY3VyZSBzdG9wcywgb3IgaGFzIG5vIHNlY3VyZSBzdG9wcyBhdmFpbGFibGUgYWZ0ZXIKKyAqIGNsZWFyaW5nIHRoZW0uCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZXRTZWN1cmVTdG9wcykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIC8vIFRoZXJlIG1heSBiZSBzZWN1cmUgc3RvcHMsIGRlcGVuZGluZyBvbiBpZiB0aGVyZSB3ZXJlIGtleXMKKyAgICAvLyBsb2FkZWQgYW5kIHVubG9hZGVkIHByZXZpb3VzbHkuIENsZWFyIHRoZW0gdG8gZ2V0IHRvIGEga25vd24KKyAgICAvLyBzdGF0ZSwgdGhlbiBtYWtlIHN1cmUgdGhlcmUgYXJlIG5vbmUuCisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFNlY3VyZVN0b3BzKAorICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPFNlY3VyZVN0b3A+JikgeworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKworICAgIHJlcyA9IGRybVBsdWdpbi0+Z2V0U2VjdXJlU3RvcHMoCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8U2VjdXJlU3RvcD4mIHNlY3VyZVN0b3BzKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShzZWN1cmVTdG9wcy5zaXplKCksIDB1KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgdGhlIGNsZWFya2V5IHBsdWdpbiByZXR1cm5zIEJBRF9WQUxVRSBpZgorICogYW4gZW1wdHkgc3NpZCBpcyBwcm92aWRlZC4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldFNlY3VyZVN0b3BFbXB0eVNTSUQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZWN1cmVTdG9wSWQgc3NpZDsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+Z2V0U2VjdXJlU3RvcCgKKyAgICAgICAgICAgIHNzaWQsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBTZWN1cmVTdG9wJikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCByZWxlYXNpbmcgYWxsIHNlY3VyZSBzdG9wcyBlaXRoZXIgaXNuJ3Qgc3VwcG9ydGVkCisgKiBvciBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5CisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZWxlYXNlQWxsU2VjdXJlU3RvcHMpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZWxlYXNlQWxsU2VjdXJlU3RvcHMoKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpPSyB8fAorICAgICAgICAgICAgICAgIHN0YXR1cyA9PSBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFKTsKK30KKworLyoqCisgKiBSZWxlYXNpbmcgYSBzZWN1cmUgc3RvcCB3aXRob3V0IGZpcnN0IGdldHRpbmcgb25lIGFuZCBzZW5kaW5nIGl0IHRvIHRoZQorICogc2VydmVyIHRvIGdldCBhIHZhbGlkIFNTSUQgc2hvdWxkIHJldHVybiBFUlJPUl9EUk1fSU5WQUxJRF9TVEFURS4KKyAqIFRoaXMgaXMgYW4gb3B0aW9uYWwgQVBJIHNvIGl0IGNhbiBhbHNvIHJldHVybiBDQU5OT1RfSEFORExFLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUmVsZWFzZVNlY3VyZVN0b3BTZXF1ZW5jZUVycm9yKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2VjdXJlU3RvcElkIHNzaWQgPSB7MSwgMiwgMywgNH07CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+cmVsZWFzZVNlY3VyZVN0b3Aoc3NpZCk7CisgICAgRVhQRUNUX1RSVUUoc3RhdHVzID09IFN0YXR1czo6RVJST1JfRFJNX0lOVkFMSURfU1RBVEUgfHwKKyAgICAgICAgICAgICAgICBzdGF0dXMgPT0gU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHJlbGVhc2luZyBhIHNwZWNpZmljIHNlY3VyZSBzdG9wIHdpdGggYW4gZW1wdHkgc3NpZAorICogcmV0dXJuIEJBRF9WQUxVRS4gVGhpcyBpcyBhbiBvcHRpb25hbCBBUEkgc28gaXQgY2FuIGFsc28gcmV0dXJuCisgKiBDQU5OT1RfSEFORExFLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgUmVsZWFzZVNlY3VyZVN0b3BFbXB0eVNTSUQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZWN1cmVTdG9wSWQgc3NpZDsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5yZWxlYXNlU2VjdXJlU3RvcChzc2lkKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpCQURfVkFMVUUgfHwKKyAgICAgICAgICAgICAgICBzdGF0dXMgPT0gU3RhdHVzOjpFUlJPUl9EUk1fQ0FOTk9UX0hBTkRMRSk7Cit9CisKKy8qKgorICogVGhlIGZvbGxvd2luZyBmaXZlIHRlc3RzIHZlcmlmeSB0aGF0IHRoZSBwcm9wZXJ0aWVzCisgKiBkZWZpbmVkIGluIHRoZSBNZWRpYURybSBBUEkgYXJlIHN1cHBvcnRlZCBieQorICogdGhlIHBsdWdpbi4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldFZlbmRvclByb3BlcnR5KSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgInZlbmRvciIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTkUodmFsdWUuc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldFZlcnNpb25Qcm9wZXJ0eSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJ2ZXJzaW9uIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIEVYUEVDVF9ORSh2YWx1ZS5zaXplKCksIDB1KTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0RGVzY3JpcHRpb25Qcm9wZXJ0eSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiIsIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3N0cmluZyYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTkUodmFsdWUuc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldEFsZ29yaXRobXNQcm9wZXJ0eSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eVN0cmluZygKKyAgICAgICAgICAgICJhbGdvcml0aG1zIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfc3RyaW5nJiB2YWx1ZSkgeworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfTkUodmFsdWUuc2l6ZSgpLCAwdSk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZXRQcm9wZXJ0eVVuaXF1ZURldmljZUlEKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5Qnl0ZUFycmF5KAorICAgICAgICAgICAgImRldmljZVVuaXF1ZUlkIiwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgdmFsdWUpIHsKKyAgICAgICAgICAgICAgICBpZiAoc3RhdHVzID09IFN0YXR1czo6T0spIHsKKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX05FKHZhbHVlLnNpemUoKSwgMHUpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBhdHRlbXB0aW5nIHRvIHJlYWQgaW52YWxpZCBzdHJpbmcgYW5kIGJ5dGUgYXJyYXkKKyAqIHByb3BlcnRpZXMgcmV0dXJucyB0aGUgZG9jdW1lbnRlZCBlcnJvciBjb2RlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2V0SW52YWxpZFN0cmluZ1Byb3BlcnR5KSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPmdldFByb3BlcnR5U3RyaW5nKAorICAgICAgICAgICAgImludmFsaWQiLCBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF9zdHJpbmcmKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUsIHN0YXR1cyk7CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKK30KKworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdldEludmFsaWRCeXRlQXJyYXlQcm9wZXJ0eSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5nZXRQcm9wZXJ0eUJ5dGVBcnJheSgKKyAgICAgICAgICAgICJpbnZhbGlkIiwgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFLCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgaW52YWxpZCBzdHJpbmcgYW5kIGJ5dGUgYXJyYXkgcHJvcGVydGllcyByZXR1cm5zCisgKiB0aGUgZXhwZWN0ZWQgc3RhdHVzIHZhbHVlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0U3RyaW5nUHJvcGVydHlOb3RTdXBwb3J0ZWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBFWFBFQ1RfRVEoZHJtUGx1Z2luLT5zZXRQcm9wZXJ0eVN0cmluZygiYXdlZmlqYWVmbGlqd2VmIiwgInZhbHVlIiksCisgICAgICAgICAgICAgIFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0Qnl0ZUFycmF5UHJvcGVydHlOb3RTdXBwb3J0ZWQpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiB2YWx1ZTsKKyAgICBFWFBFQ1RfRVEoZHJtUGx1Z2luLT5zZXRQcm9wZXJ0eUJ5dGVBcnJheSgiYXdlZmlqYWVmbGlqd2VmIiwgdmFsdWUpLAorICAgICAgICAgICAgICBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFKTsKK30KKworLyoqCisgKiBUZXN0IHRoYXQgc2V0dGluZyBhbiBpbnZhbGlkIGNpcGhlciBhbGdvcml0aG0gcmV0dXJucworICogdGhlIGV4cGVjdGVkIHN0YXR1cyB2YWx1ZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldENpcGhlckludmFsaWRBbGdvcml0aG0pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldENpcGhlckFsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbik7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgYSBjaXBoZXIgYWxnb3JpdGhtIHdpdGggbm8gc2Vzc2lvbiByZXR1cm5zCisgKiB0aGUgZXhwZWN0ZWQgc3RhdHVzIHZhbHVlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0Q2lwaGVyQWxnb3JpdGhtTm9TZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkFFUy9DQkMvTm9QYWRkaW5nIjsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRDaXBoZXJBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgYSB2YWxpZCBjaXBoZXIgYWxnb3JpdGhtIHJldHVybnMKKyAqIHRoZSBleHBlY3RlZCBzdGF0dXMgdmFsdWUuIEl0IGlzIG5vdCByZXF1aXJlZCB0aGF0IGFsbAorICogdmVuZG9yIG1vZHVsZXMgc3VwcG9ydCB0aGlzIGFsZ29yaXRobSwgYnV0IHRoZXkgbXVzdAorICogZWl0aGVyIGFjY2VwdCBpdCBvciByZXR1cm4gRVJST1JfRFJNX0NBTk5PVF9IQU5ETEUKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldENpcGhlckFsZ29yaXRobSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uID0gb3BlblNlc3Npb24oKTsKKyAgICA7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkFFUy9DQkMvTm9QYWRkaW5nIjsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRDaXBoZXJBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gU3RhdHVzOjpPSyB8fAorICAgICAgICAgICAgICAgIHN0YXR1cyA9PSBTdGF0dXM6OkVSUk9SX0RSTV9DQU5OT1RfSEFORExFKTsKKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbik7Cit9CisKKy8qKgorICogVGVzdCB0aGF0IHNldHRpbmcgYW4gaW52YWxpZCBtYWMgYWxnb3JpdGhtIHJldHVybnMKKyAqIHRoZSBleHBlY3RlZCBzdGF0dXMgdmFsdWUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBTZXRNYWNJbnZhbGlkQWxnb3JpdGhtKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb24gPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfc3RyaW5nIGFsZ29yaXRobTsKKyAgICBTdGF0dXMgc3RhdHVzID0gZHJtUGx1Z2luLT5zZXRNYWNBbGdvcml0aG0oc2Vzc2lvbiwgYWxnb3JpdGhtKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb24pOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBzZXR0aW5nIGEgbWFjIGFsZ29yaXRobSB3aXRoIG5vIHNlc3Npb24gcmV0dXJucworICogdGhlIGV4cGVjdGVkIHN0YXR1cyB2YWx1ZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldE1hY051bGxBbGdvcml0aG1Ob1Nlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG0gPSAiSG1hY1NIQTI1NiI7CisgICAgU3RhdHVzIHN0YXR1cyA9IGRybVBsdWdpbi0+c2V0TWFjQWxnb3JpdGhtKHNlc3Npb24sIGFsZ29yaXRobSk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCBzdGF0dXMpOworfQorCisvKioKKyAqIFRlc3QgdGhhdCBzZXR0aW5nIGEgdmFsaWQgbWFjIGFsZ29yaXRobSByZXR1cm5zCisgKiB0aGUgZXhwZWN0ZWQgc3RhdHVzIHZhbHVlLiBJdCBpcyBub3QgcmVxdWlyZWQgdGhhdCBhbGwKKyAqIHZlbmRvciBtb2R1bGVzIHN1cHBvcnQgdGhpcyBhbGdvcml0aG0sIGJ1dCB0aGV5IG11c3QKKyAqIGVpdGhlciBhY2NlcHQgaXQgb3IgcmV0dXJuIEVSUk9SX0RSTV9DQU5OT1RfSEFORExFCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBTZXRNYWNBbGdvcml0aG0pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbiA9IG9wZW5TZXNzaW9uKCk7CisgICAgaGlkbF9zdHJpbmcgYWxnb3JpdGhtID0gIkhtYWNTSEEyNTYiOworICAgIFN0YXR1cyBzdGF0dXMgPSBkcm1QbHVnaW4tPnNldE1hY0FsZ29yaXRobShzZXNzaW9uLCBhbGdvcml0aG0pOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6Ok9LIHx8CisgICAgICAgICAgICAgICAgc3RhdHVzID09IFN0YXR1czo6RVJST1JfRFJNX0NBTk5PVF9IQU5ETEUpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uKTsKK30KKworLyoqCisgKiBUaGUgR2VuZXJpYyogbWV0aG9kcyBwcm92aWRlIGdlbmVyYWwgcHVycG9zZSBjcnlwdG8gb3BlcmF0aW9ucworICogdGhhdCBtYXkgYmUgdXNlZCBmb3IgYXBwbGljYXRpb25zIG90aGVyIHRoYW4gRFJNLiBUaGV5IGxldmVyYWdlCisgKiB0aGUgaGFyZHdhcmUgcm9vdCBvZiB0cnVzdCBhbmQgc2VjdXJlIGtleSBkaXN0cmlidXRpb24gbWVjaGFuaXNtcworICogb2YgYSBEUk0gc3lzdGVtIHRvIGVuYWJsZSBhcHAtc3BlY2lmaWMgY3J5cHRvIGZ1bmN0aW9uYWxpdHkgd2hlcmUKKyAqIHRoZSBjcnlwdG8ga2V5cyBhcmUgbm90IGV4cG9zZWQgb3V0c2lkZSBvZiB0aGUgdHJ1c3RlZCBleGVjdXRpb24KKyAqIGVudmlyb25tZW50LgorICoKKyAqIEdlbmVyaWMgZW5jcnlwdC9kZWNyeXB0L3NpZ24vdmVyaWZ5IHNob3VsZCBmYWlsIG9uIGludmFsaWQKKyAqIGlucHV0cywgZS5nLiBlbXB0eSBzZXNzaW9uSWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIEdlbmVyaWNFbmNyeXB0Tm9TZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb247CisgICAgaGlkbF92ZWM8dWludDhfdD4ga2V5SWQsIGlucHV0LCBpdjsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+ZW5jcnlwdCgKKyAgICAgICAgICAgIHNlc3Npb24sIGtleUlkLCBpbnB1dCwgaXYsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2VuZXJpY0RlY3J5cHROb1Nlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiBrZXlJZCwgaW5wdXQsIGl2OworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5kZWNyeXB0KAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5SWQsIGlucHV0LCBpdiwKKyAgICAgICAgICAgIFsmXShTdGF0dXMgc3RhdHVzLCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpFUlJPUl9EUk1fU0VTU0lPTl9OT1RfT1BFTkVELCBzdGF0dXMpOworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBHZW5lcmljU2lnbk5vU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkLCBtZXNzYWdlOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5zaWduKAorICAgICAgICAgICAgc2Vzc2lvbiwga2V5SWQsIG1lc3NhZ2UsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2VuZXJpY1ZlcmlmeU5vU2Vzc2lvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIFNlc3Npb25JZCBzZXNzaW9uOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGtleUlkLCBtZXNzYWdlLCBzaWduYXR1cmU7CisgICAgYXV0byByZXMgPSBkcm1QbHVnaW4tPnZlcmlmeSgKKyAgICAgICAgICAgIHNlc3Npb24sIGtleUlkLCBtZXNzYWdlLCBzaWduYXR1cmUsIFsmXShTdGF0dXMgc3RhdHVzLCBib29sKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgR2VuZXJpY1NpZ25SU0FOb1Nlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbjsKKyAgICBoaWRsX3N0cmluZyBhbGdvcml0aG07CisgICAgaGlkbF92ZWM8dWludDhfdD4gbWVzc2FnZSwgd3JhcHBlZEtleTsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+c2lnblJTQShzZXNzaW9uLCBhbGdvcml0aG0sIG1lc3NhZ2UsIHdyYXBwZWRLZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKFN0YXR1cyBzdGF0dXMsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7Cit9CisKKy8qKgorICogRXhlcmNpc2UgdGhlIHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCBtZXRob2QuIEFkZGl0aW9uYWwgdGVzdHMKKyAqIHdpbGwgdmVyaWZ5IHBvc2l0aXZlIGNhc2VzIHdpdGggc3BlY2lmaWMgdmVuZG9yIGNvbnRlbnQgY29uZmlndXJhdGlvbnMuCisgKiBCZWxvdyB3ZSBqdXN0IHRlc3QgdGhlIG5lZ2F0aXZlIGNhc2VzLgorICovCisKKy8qKgorICogVmVyaWZ5IHRoYXQgcmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50IGhhbmRsZXMgZW1wdHkgbWltZXR5cGUuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBSZXF1aXJlc1NlY3VyZURlY29kZXJFbXB0eU1pbWVUeXBlKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgRVhQRUNUX0ZBTFNFKGNyeXB0b1BsdWdpbi0+cmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50KCIiKSk7Cit9CisKKy8qKgorICogVmVyaWZ5IHRoYXQgcmVxdWlyZXNTZWN1cmVEZWNvZGVyQ29tcG9uZW50IGhhbmRsZXMgaW52YWxpZCBtaW1ldHlwZS4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlcXVpcmVzU2VjdXJlRGVjb2RlckludmFsaWRNaW1lVHlwZSkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIEVYUEVDVF9GQUxTRShjcnlwdG9QbHVnaW4tPnJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCgiYmFkIikpOworfQorCisvKioKKyAqIFZlcmlmeSB0aGF0IHJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbXBvbmVudCByZXR1cm5zIHRydWUgZm9yIHNlY3VyZQorICogY29uZmlndXJhdGlvbnMKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFJlcXVpcmVzU2VjdXJlRGVjb2RlckNvbmZpZykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICBpZiAoa2V5LmlzU2VjdXJlKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoY3J5cHRvUGx1Z2luLT5yZXF1aXJlc1NlY3VyZURlY29kZXJDb21wb25lbnQoY29uZmlnLm1pbWVUeXBlKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qKgorICogIEV2ZW50IEhhbmRsaW5nIHRlc3RzCisgKi8KK3N0cnVjdCBMaXN0ZW5lckV2ZW50QXJncyB7CisgICAgRXZlbnRUeXBlIGV2ZW50VHlwZTsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGRhdGE7CisgICAgaW50NjRfdCBleHBpcnlUaW1lSW5NUzsKKyAgICBoaWRsX3ZlYzxLZXlTdGF0dXM+IGtleVN0YXR1c0xpc3Q7CisgICAgYm9vbCBoYXNOZXdVc2FibGVLZXk7Cit9OworCitjb25zdCBjaGFyICprQ2FsbGJhY2tFdmVudCA9ICJTZW5kRXZlbnQiOworY29uc3QgY2hhciAqa0NhbGxiYWNrRXhwaXJhdGlvblVwZGF0ZSA9ICJTZW5kRXhwaXJhdGlvblVwZGF0ZSI7Citjb25zdCBjaGFyICprQ2FsbGJhY2tLZXlzQ2hhbmdlID0gIlNlbmRLZXlzQ2hhbmdlIjsKKworY2xhc3MgVGVzdERybVBsdWdpbkxpc3RlbmVyCisgICAgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0Q2FsbGJhY2tCYXNlPExpc3RlbmVyRXZlbnRBcmdzPiwKKyAgICAgIHB1YmxpYyBJRHJtUGx1Z2luTGlzdGVuZXIgeworcHVibGljOgorICAgIFRlc3REcm1QbHVnaW5MaXN0ZW5lcigpIHsKKyAgICAgICAgU2V0V2FpdFRpbWVvdXREZWZhdWx0KHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNTAwKSk7CisgICAgfQorICAgIHZpcnR1YWwgflRlc3REcm1QbHVnaW5MaXN0ZW5lcigpIHt9CisKKyAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBzZW5kRXZlbnQoRXZlbnRUeXBlIGV2ZW50VHlwZSwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBkYXRhKSBvdmVycmlkZSB7CisgICAgICAgIExpc3RlbmVyRXZlbnRBcmdzIGFyZ3M7CisgICAgICAgIGFyZ3MuZXZlbnRUeXBlID0gZXZlbnRUeXBlOworICAgICAgICBhcmdzLnNlc3Npb25JZCA9IHNlc3Npb25JZDsKKyAgICAgICAgYXJncy5kYXRhID0gZGF0YTsKKyAgICAgICAgTm90aWZ5RnJvbUNhbGxiYWNrKGtDYWxsYmFja0V2ZW50LCBhcmdzKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFJldHVybjx2b2lkPiBzZW5kRXhwaXJhdGlvblVwZGF0ZShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgc2Vzc2lvbklkLAorICAgICAgICAgICAgaW50NjRfdCBleHBpcnlUaW1lSW5NUykgb3ZlcnJpZGUgeworICAgICAgICBMaXN0ZW5lckV2ZW50QXJncyBhcmdzOworICAgICAgICBhcmdzLnNlc3Npb25JZCA9IHNlc3Npb25JZDsKKyAgICAgICAgYXJncy5leHBpcnlUaW1lSW5NUyA9IGV4cGlyeVRpbWVJbk1TOworICAgICAgICBOb3RpZnlGcm9tQ2FsbGJhY2soa0NhbGxiYWNrRXhwaXJhdGlvblVwZGF0ZSwgYXJncyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gc2VuZEtleXNDaGFuZ2UoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNlc3Npb25JZCwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVN0YXR1cz4mIGtleVN0YXR1c0xpc3QsIGJvb2wgaGFzTmV3VXNhYmxlS2V5KSBvdmVycmlkZSB7CisgICAgICAgIExpc3RlbmVyRXZlbnRBcmdzIGFyZ3M7CisgICAgICAgIGFyZ3Muc2Vzc2lvbklkID0gc2Vzc2lvbklkOworICAgICAgICBhcmdzLmtleVN0YXR1c0xpc3QgPSBrZXlTdGF0dXNMaXN0OworICAgICAgICBhcmdzLmhhc05ld1VzYWJsZUtleSA9IGhhc05ld1VzYWJsZUtleTsKKyAgICAgICAgTm90aWZ5RnJvbUNhbGxiYWNrKGtDYWxsYmFja0tleXNDaGFuZ2UsIGFyZ3MpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KK307CisKKworLyoqCisgKiBTaW11bGF0ZSB0aGUgcGx1Z2luIHNlbmRpbmcgZXZlbnRzLiBNYWtlIHN1cmUgdGhlIGxpc3RlbmVyCisgKiBnZXRzIHRoZW0uCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBMaXN0ZW5lckV2ZW50cykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIHNwPFRlc3REcm1QbHVnaW5MaXN0ZW5lcj4gbGlzdGVuZXIgPSBuZXcgVGVzdERybVBsdWdpbkxpc3RlbmVyKCk7CisgICAgZHJtUGx1Z2luLT5zZXRMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGRhdGEgPSB7MCwgMSwgMn07CisgICAgRXZlbnRUeXBlIGV2ZW50VHlwZXNbXSA9IHtFdmVudFR5cGU6OlBST1ZJU0lPTl9SRVFVSVJFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50VHlwZTo6S0VZX05FRURFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV2ZW50VHlwZTo6S0VZX0VYUElSRUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFdmVudFR5cGU6OlZFTkRPUl9ERUZJTkVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXZlbnRUeXBlOjpTRVNTSU9OX1JFQ0xBSU1FRH07CisgICAgZm9yIChhdXRvIGV2ZW50VHlwZSA6IGV2ZW50VHlwZXMpIHsKKyAgICAgICAgZHJtUGx1Z2luLT5zZW5kRXZlbnQoZXZlbnRUeXBlLCBzZXNzaW9uSWQsIGRhdGEpOworICAgICAgICBhdXRvIHJlc3VsdCA9IGxpc3RlbmVyLT5XYWl0Rm9yQ2FsbGJhY2soa0NhbGxiYWNrRXZlbnQpOworICAgICAgICBFWFBFQ1RfVFJVRShyZXN1bHQubm9fdGltZW91dCk7CisgICAgICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5hcmdzKTsKKyAgICAgICAgRVhQRUNUX0VRKGV2ZW50VHlwZSwgcmVzdWx0LmFyZ3MtPmV2ZW50VHlwZSk7CisgICAgICAgIEVYUEVDVF9FUShzZXNzaW9uSWQsIHJlc3VsdC5hcmdzLT5zZXNzaW9uSWQpOworICAgICAgICBFWFBFQ1RfRVEoZGF0YSwgcmVzdWx0LmFyZ3MtPmRhdGEpOworICAgIH0KKyAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKK30KKworLyoqCisgKiBTaW11bGF0ZSB0aGUgcGx1Z2luIHNlbmRpbmcgZXhwaXJhdGlvbiB1cGRhdGVzIGFuZCBtYWtlIHN1cmUKKyAqIHRoZSBsaXN0ZW5lciBnZXRzIHRoZW0uCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JQbHVnaW5UZXN0LCBMaXN0ZW5lckV4cGlyYXRpb25VcGRhdGUpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBzcDxUZXN0RHJtUGx1Z2luTGlzdGVuZXI+IGxpc3RlbmVyID0gbmV3IFRlc3REcm1QbHVnaW5MaXN0ZW5lcigpOworICAgIGRybVBsdWdpbi0+c2V0TGlzdGVuZXIobGlzdGVuZXIpOworICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICBkcm1QbHVnaW4tPnNlbmRFeHBpcmF0aW9uVXBkYXRlKHNlc3Npb25JZCwgMTAwKTsKKyAgICBhdXRvIHJlc3VsdCA9IGxpc3RlbmVyLT5XYWl0Rm9yQ2FsbGJhY2soa0NhbGxiYWNrRXhwaXJhdGlvblVwZGF0ZSk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0Lm5vX3RpbWVvdXQpOworICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5hcmdzKTsKKyAgICBFWFBFQ1RfRVEoc2Vzc2lvbklkLCByZXN1bHQuYXJncy0+c2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoMTAwLCByZXN1bHQuYXJncy0+ZXhwaXJ5VGltZUluTVMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIFNpbXVsYXRlIHRoZSBwbHVnaW4gc2VuZGluZyBrZXlzIGNoYW5nZSBhbmQgbWFrZSBzdXJlCisgKiB0aGUgbGlzdGVuZXIgZ2V0cyB0aGVtLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgTGlzdGVuZXJLZXlzQ2hhbmdlKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgc3A8VGVzdERybVBsdWdpbkxpc3RlbmVyPiBsaXN0ZW5lciA9IG5ldyBUZXN0RHJtUGx1Z2luTGlzdGVuZXIoKTsKKyAgICBkcm1QbHVnaW4tPnNldExpc3RlbmVyKGxpc3RlbmVyKTsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY29uc3QgaGlkbF92ZWM8S2V5U3RhdHVzPiBrZXlTdGF0dXNMaXN0ID0geworICAgICAgICB7ezF9LCBLZXlTdGF0dXNUeXBlOjpVU0FCTEV9LAorICAgICAgICB7ezJ9LCBLZXlTdGF0dXNUeXBlOjpFWFBJUkVEfSwKKyAgICAgICAge3szfSwgS2V5U3RhdHVzVHlwZTo6T1VUUFVUTk9UQUxMT1dFRH0sCisgICAgICAgIHt7NH0sIEtleVN0YXR1c1R5cGU6OlNUQVRVU1BFTkRJTkd9LAorICAgICAgICB7ezV9LCBLZXlTdGF0dXNUeXBlOjpJTlRFUk5BTEVSUk9SfSwKKyAgICB9OworCisgICAgZHJtUGx1Z2luLT5zZW5kS2V5c0NoYW5nZShzZXNzaW9uSWQsIGtleVN0YXR1c0xpc3QsIHRydWUpOworICAgIGF1dG8gcmVzdWx0ID0gbGlzdGVuZXItPldhaXRGb3JDYWxsYmFjayhrQ2FsbGJhY2tLZXlzQ2hhbmdlKTsKKyAgICBFWFBFQ1RfVFJVRShyZXN1bHQubm9fdGltZW91dCk7CisgICAgRVhQRUNUX1RSVUUocmVzdWx0LmFyZ3MpOworICAgIEVYUEVDVF9FUShzZXNzaW9uSWQsIHJlc3VsdC5hcmdzLT5zZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShrZXlTdGF0dXNMaXN0LCByZXN1bHQuYXJncy0+a2V5U3RhdHVzTGlzdCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7Cit9CisKKy8qKgorICogTmVnYXRpdmUgbGlzdGVuZXIgdGVzdHMuIENhbGwgc2VuZCBtZXRob2RzIHdpdGggbm8KKyAqIGxpc3RlbmVyIHNldC4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIE5vdExpc3RlbmluZykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIHNwPFRlc3REcm1QbHVnaW5MaXN0ZW5lcj4gbGlzdGVuZXIgPSBuZXcgVGVzdERybVBsdWdpbkxpc3RlbmVyKCk7CisgICAgZHJtUGx1Z2luLT5zZXRMaXN0ZW5lcihsaXN0ZW5lcik7CisgICAgZHJtUGx1Z2luLT5zZXRMaXN0ZW5lcihudWxscHRyKTsKKworICAgIFNlc3Npb25JZCBzZXNzaW9uSWQ7CisgICAgaGlkbF92ZWM8dWludDhfdD4gZGF0YTsKKyAgICBoaWRsX3ZlYzxLZXlTdGF0dXM+IGtleVN0YXR1c0xpc3Q7CisgICAgZHJtUGx1Z2luLT5zZW5kRXZlbnQoRXZlbnRUeXBlOjpQUk9WSVNJT05fUkVRVUlSRUQsIHNlc3Npb25JZCwgZGF0YSk7CisgICAgZHJtUGx1Z2luLT5zZW5kRXhwaXJhdGlvblVwZGF0ZShzZXNzaW9uSWQsIDEwMCk7CisgICAgZHJtUGx1Z2luLT5zZW5kS2V5c0NoYW5nZShzZXNzaW9uSWQsIGtleVN0YXR1c0xpc3QsIHRydWUpOworICAgIGF1dG8gcmVzdWx0ID0gbGlzdGVuZXItPldhaXRGb3JDYWxsYmFja0FueSgKKyAgICAgICAgICAgIHtrQ2FsbGJhY2tFdmVudCwga0NhbGxiYWNrRXhwaXJhdGlvblVwZGF0ZSwga0NhbGxiYWNrS2V5c0NoYW5nZX0pOworICAgIEVYUEVDVF9GQUxTRShyZXN1bHQubm9fdGltZW91dCk7Cit9CisKKworLyoqCisgKiAgQ3J5cHRvUGx1Z2luIHRlc3RzCisgKi8KKworLyoqCisgKiBFeGVyY2lzZSB0aGUgTm90aWZ5UmVzb2x1dGlvbiBBUEkuIFRoZXJlIGlzIG5vIG9ic2VydmFibGUgcmVzdWx0LAorICoganVzdCBjYWxsIHRoZSBtZXRob2QgZm9yIGNvdmVyYWdlLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgTm90aWZ5UmVzb2x1dGlvbikgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGNyeXB0b1BsdWdpbi0+bm90aWZ5UmVzb2x1dGlvbigxOTIwLCAxMDgwKTsKK30KKworLyoqCisgKiBnZXREZWNyeXB0TWVtb3J5IGFsbG9jYXRlcyBtZW1vcnkgZm9yIGRlY3J5cHRpb24sIHRoZW4gc2V0cyBpdAorICogYXMgYSBzaGFyZWQgYnVmZmVyIGJhc2UgaW4gdGhlIGNyeXB0byBoYWwuICBUaGUgYWxsb2NhdGVkIGFuZAorICogbWFwcGVkIElNZW1vcnkgaXMgcmV0dXJuZWQuCisgKgorICogQHBhcmFtIHNpemUgdGhlIHNpemUgb2YgdGhlIG1lbW9yeSBzZWdtZW50IHRvIGFsbG9jYXRlCisgKiBAcGFyYW0gdGhlIGluZGV4IG9mIHRoZSBtZW1vcnkgc2VnbWVudCB3aGljaCB3aWxsIGJlIHVzZWQKKyAqIHRvIHJlZmVyIHRvIGl0IGZvciBkZWNyeXB0aW9uLgorICovCitzcDxJTWVtb3J5PiBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0OjpnZXREZWNyeXB0TWVtb3J5KHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgpIHsKKyAgICBzcDxJQWxsb2NhdG9yPiBhc2htZW1BbGxvY2F0b3IgPSBJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCJhc2htZW0iKTsKKyAgICBFWFBFQ1RfTkUoYXNobWVtQWxsb2NhdG9yLCBudWxscHRyKTsKKworICAgIGhpZGxfbWVtb3J5IGhpZGxNZW1vcnk7CisgICAgYXV0byByZXMgPSBhc2htZW1BbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICAgICAgc2l6ZSwgWyZdKGJvb2wgc3VjY2VzcywgY29uc3QgaGlkbF9tZW1vcnkmIG1lbW9yeSkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShzdWNjZXNzLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEobWVtb3J5LnNpemUoKSwgc2l6ZSk7CisgICAgICAgICAgICAgICAgaGlkbE1lbW9yeSA9IG1lbW9yeTsKKyAgICAgICAgICAgIH0pOworCisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICBzcDxJTWVtb3J5PiBtYXBwZWRNZW1vcnkgPSBtYXBNZW1vcnkoaGlkbE1lbW9yeSk7CisgICAgRVhQRUNUX05FKG1hcHBlZE1lbW9yeSwgbnVsbHB0cik7CisgICAgcmVzID0gY3J5cHRvUGx1Z2luLT5zZXRTaGFyZWRCdWZmZXJCYXNlKGhpZGxNZW1vcnksIGluZGV4KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICByZXR1cm4gbWFwcGVkTWVtb3J5OworfQorCisvKioKKyAqIEV4ZXJjaXNlIHRoZSBzZXRNZWRpYURybVNlc3Npb24gbWV0aG9kLiBzZXRNZWRpYURybVNlc3Npb24KKyAqIGlzIHVzZWQgdG8gYXNzb2NpYXRlIGEgZHJtIHNlc3Npb24gd2l0aCBhIGNyeXB0byBzZXNzaW9uLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0TWVkaWFEcm1TZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIFN0YXR1cyBzdGF0dXMgPSBjcnlwdG9QbHVnaW4tPnNldE1lZGlhRHJtU2Vzc2lvbihzZXNzaW9uSWQpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisvKioKKyAqIHNldE1lZGlhRHJtU2Vzc2lvbiB3aXRoIGEgY2xvc2VkIHNlc3Npb24gaWQKKyAqLworVEVTVF9QKERybUhhbFZlbmRvclBsdWdpblRlc3QsIFNldE1lZGlhRHJtU2Vzc2lvbkNsb3NlZFNlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgY2xvc2VTZXNzaW9uKHNlc3Npb25JZCk7CisgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1JfRFJNX1NFU1NJT05fTk9UX09QRU5FRCwgc3RhdHVzKTsKK30KKworLyoqCisgKiBzZXRNZWRpYURybVNlc3Npb24gd2l0aCBhIGVtcHR5IHNlc3Npb24gaWQ6IEJBRF9WQUxVRQorICovCitURVNUX1AoRHJtSGFsVmVuZG9yUGx1Z2luVGVzdCwgU2V0TWVkaWFEcm1TZXNzaW9uRW1wdHlTZXNzaW9uKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgU2Vzc2lvbklkIHNlc3Npb25JZDsKKyAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoU3RhdHVzOjpCQURfVkFMVUUsIHN0YXR1cyk7Cit9CisKKy8qKgorICogRGVjcnlwdCB0ZXN0cworICovCisKK2NsYXNzIERybUhhbFZlbmRvckRlY3J5cHRUZXN0IDogcHVibGljIERybUhhbFZlbmRvclBsdWdpblRlc3QgeworICAgcHVibGljOgorICAgIERybUhhbFZlbmRvckRlY3J5cHRUZXN0KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfkRybUhhbFZlbmRvckRlY3J5cHRUZXN0KCkge30KKworICAgcHJvdGVjdGVkOgorICAgIHZvaWQgZmlsbFJhbmRvbShjb25zdCBzcDxJTWVtb3J5PiYgbWVtb3J5KTsKKyAgICBoaWRsX2FycmF5PHVpbnQ4X3QsIDE2PiB0b0hpZGxBcnJheShjb25zdCB2ZWN0b3I8dWludDhfdD4mIHZlYykgeworICAgICAgICBFWFBFQ1RfRVEodmVjLnNpemUoKSwgMTZ1KTsKKyAgICAgICAgcmV0dXJuIGhpZGxfYXJyYXk8dWludDhfdCwgMTY+KCZ2ZWNbMF0pOworICAgIH0KKyAgICBoaWRsX3ZlYzxLZXlWYWx1ZT4gcXVlcnlLZXlTdGF0dXMoU2Vzc2lvbklkIHNlc3Npb25JZCk7CisgICAgdm9pZCByZW1vdmVLZXlzKFNlc3Npb25JZCBzZXNzaW9uSWQpOworICAgIHVpbnQzMl90IGRlY3J5cHQoTW9kZSBtb2RlLCBib29sIGlzU2VjdXJlLAorICAgICAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCAxNj4mIGtleUlkLCB1aW50OF90KiBpdiwKKyAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IFBhdHRlcm4mIHBhdHRlcm4sCisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSwgU3RhdHVzIGV4cGVjdGVkU3RhdHVzKTsKKyAgICB2b2lkIGFlc19jdHJfZGVjcnlwdCh1aW50OF90KiBkZXN0LCB1aW50OF90KiBzcmMsIHVpbnQ4X3QqIGl2LAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+JiBrZXkpOworICAgIHZvaWQgYWVzX2NiY19kZWNyeXB0KHVpbnQ4X3QqIGRlc3QsIHVpbnQ4X3QqIHNyYywgdWludDhfdCogaXYsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLCBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSk7Cit9OworCit2b2lkIERybUhhbFZlbmRvckRlY3J5cHRUZXN0OjpmaWxsUmFuZG9tKGNvbnN0IHNwPElNZW1vcnk+JiBtZW1vcnkpIHsKKyAgICByYW5kb21fZGV2aWNlIHJkOworICAgIG10MTk5MzcgcmFuZChyZCgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lbW9yeS0+Z2V0U2l6ZSgpIC8gc2l6ZW9mKHVpbnQzMl90KTsgaSsrKSB7CisgICAgICAgIGF1dG8gcCA9IHN0YXRpY19jYXN0PHVpbnQzMl90Kj4oCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KG1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgIHBbaV0gPSByYW5kKCk7CisgICAgfQorfQorCitoaWRsX3ZlYzxLZXlWYWx1ZT4gRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3Q6OnF1ZXJ5S2V5U3RhdHVzKFNlc3Npb25JZCBzZXNzaW9uSWQpIHsKKyAgICBoaWRsX3ZlYzxLZXlWYWx1ZT4ga2V5U3RhdHVzOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5xdWVyeUtleVN0YXR1cyhzZXNzaW9uSWQsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgS2V5ZWRWZWN0b3IgaW5mbykgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIGtleVN0YXR1cyA9IGluZm87CisgICAgICAgICAgICB9KTsKKyAgICBFWFBFQ1RfT0socmVzKTsKKyAgICByZXR1cm4ga2V5U3RhdHVzOworfQorCit2b2lkIERybUhhbFZlbmRvckRlY3J5cHRUZXN0OjpyZW1vdmVLZXlzKFNlc3Npb25JZCBzZXNzaW9uSWQpIHsKKyAgICBhdXRvIHJlcyA9IGRybVBsdWdpbi0+cmVtb3ZlS2V5cyhzZXNzaW9uSWQpOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCit1aW50MzJfdCBEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdDo6ZGVjcnlwdChNb2RlIG1vZGUsIGJvb2wgaXNTZWN1cmUsCisgICAgICAgIGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgMTY+JiBrZXlJZCwgdWludDhfdCogaXYsCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPFN1YlNhbXBsZT4mIHN1YlNhbXBsZXMsIGNvbnN0IFBhdHRlcm4mIHBhdHRlcm4sCisgICAgICAgIGNvbnN0IHZlY3Rvcjx1aW50OF90PiYga2V5LCBTdGF0dXMgZXhwZWN0ZWRTdGF0dXMpIHsKKyAgICBjb25zdCBzaXplX3Qga1NlZ21lbnRJbmRleCA9IDA7CisKKyAgICB1aW50OF90IGxvY2FsSXZbQUVTX0JMT0NLX1NJWkVdOworICAgIG1lbWNweShsb2NhbEl2LCBpdiwgQUVTX0JMT0NLX1NJWkUpOworCisgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IDA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWJTYW1wbGVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIHRvdGFsU2l6ZSArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisgICAgICAgIHRvdGFsU2l6ZSArPSBzdWJTYW1wbGVzW2ldLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhOworICAgIH0KKworICAgIC8vIFRoZSBmaXJzdCB0b3RhbFNpemUgYnl0ZXMgb2Ygc2hhcmVkIG1lbW9yeSBpcyB0aGUgZW5jcnlwdGVkCisgICAgLy8gaW5wdXQsIHRoZSBzZWNvbmQgdG90YWxTaXplIGJ5dGVzIGlzIHRoZSBkZWNyeXB0ZWQgb3V0cHV0LgorICAgIHNwPElNZW1vcnk+IHNoYXJlZE1lbW9yeSA9CisgICAgICAgICAgICBnZXREZWNyeXB0TWVtb3J5KHRvdGFsU2l6ZSAqIDIsIGtTZWdtZW50SW5kZXgpOworCisgICAgU2hhcmVkQnVmZmVyIHNvdXJjZUJ1ZmZlciA9IHsKKyAgICAgICAgICAgIC5idWZmZXJJZCA9IGtTZWdtZW50SW5kZXgsIC5vZmZzZXQgPSAwLCAuc2l6ZSA9IHRvdGFsU2l6ZX07CisgICAgZmlsbFJhbmRvbShzaGFyZWRNZW1vcnkpOworCisgICAgRGVzdGluYXRpb25CdWZmZXIgZGVzdEJ1ZmZlciA9IHsudHlwZSA9IEJ1ZmZlclR5cGU6OlNIQVJFRF9NRU1PUlksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7LmJ1ZmZlcklkID0ga1NlZ21lbnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub2Zmc2V0ID0gdG90YWxTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zaXplID0gdG90YWxTaXplfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZWN1cmVNZW1vcnkgPSBudWxscHRyfTsKKyAgICB1aW50NjRfdCBvZmZzZXQgPSAwOworICAgIHVpbnQzMl90IGJ5dGVzV3JpdHRlbiA9IDA7CisgICAgYXV0byByZXMgPSBjcnlwdG9QbHVnaW4tPmRlY3J5cHQoaXNTZWN1cmUsIGtleUlkLCBsb2NhbEl2LCBtb2RlLCBwYXR0ZXJuLAorICAgICAgICAgICAgc3ViU2FtcGxlcywgc291cmNlQnVmZmVyLCBvZmZzZXQsIGRlc3RCdWZmZXIsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgdWludDMyX3QgY291bnQsIHN0cmluZyBkZXRhaWxlZEVycm9yKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkU3RhdHVzLCBzdGF0dXMpIDw8ICJVbmV4cGVjdGVkIGRlY3J5cHQgc3RhdHVzICIgPDwKKyAgICAgICAgICAgICAgICBkZXRhaWxlZEVycm9yOworICAgICAgICAgICAgICAgIGJ5dGVzV3JpdHRlbiA9IGNvdW50OworICAgICAgICAgICAgfSk7CisgICAgRVhQRUNUX09LKHJlcyk7CisKKyAgICBpZiAoYnl0ZXNXcml0dGVuICE9IHRvdGFsU2l6ZSkgeworICAgICAgICByZXR1cm4gYnl0ZXNXcml0dGVuOworICAgIH0KKyAgICB1aW50OF90KiBiYXNlID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KHNoYXJlZE1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisKKyAgICAvLyBnZW5lcmF0ZSByZWZlcmVuY2UgdmVjdG9yCisgICAgdmVjdG9yPHVpbnQ4X3Q+IHJlZmVyZW5jZSh0b3RhbFNpemUpOworCisgICAgbWVtY3B5KGxvY2FsSXYsIGl2LCBBRVNfQkxPQ0tfU0laRSk7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBNb2RlOjpVTkVOQ1JZUFRFRDoKKyAgICAgICAgbWVtY3B5KCZyZWZlcmVuY2VbMF0sIGJhc2UsIHRvdGFsU2l6ZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NUUjoKKyAgICAgICAgYWVzX2N0cl9kZWNyeXB0KCZyZWZlcmVuY2VbMF0sIGJhc2UsIGxvY2FsSXYsIHN1YlNhbXBsZXMsIGtleSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NCQzoKKyAgICAgICAgYWVzX2NiY19kZWNyeXB0KCZyZWZlcmVuY2VbMF0sIGJhc2UsIGxvY2FsSXYsIHN1YlNhbXBsZXMsIGtleSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTW9kZTo6QUVTX0NCQ19DVFM6CisgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKSA8PCAiQUVTX0NCQ19DVFMgbW9kZSBub3Qgc3VwcG9ydGVkIjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLy8gY29tcGFyZSByZWZlcmVuY2UgdG8gZGVjcnlwdGVkIGRhdGEgd2hpY2ggaXMgYXQgYmFzZSArIHRvdGFsIHNpemUKKyAgICBFWFBFQ1RfRVEoMCwgbWVtY21wKHN0YXRpY19jYXN0PHZvaWQqPigmcmVmZXJlbmNlWzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPihiYXNlICsgdG90YWxTaXplKSwgdG90YWxTaXplKSkKKyAgICAgICAgICAgIDw8ICJkZWNyeXB0IGRhdGEgbWlzbWF0Y2giOworICAgIHJldHVybiB0b3RhbFNpemU7Cit9CisKKy8qKgorICogRGVjcnlwdCBhIGxpc3Qgb2YgY2xlYXIrZW5jcnlwdGVkIHN1YnNhbXBsZXMgdXNpbmcgdGhlIHNwZWNpZmllZCBrZXkKKyAqIGluIEFFUy1DVFIgbW9kZQorICovCit2b2lkIERybUhhbFZlbmRvckRlY3J5cHRUZXN0OjphZXNfY3RyX2RlY3J5cHQodWludDhfdCogZGVzdCwgdWludDhfdCogc3JjLAorICAgICAgICB1aW50OF90KiBpdiwgY29uc3QgaGlkbF92ZWM8U3ViU2FtcGxlPiYgc3ViU2FtcGxlcywKKyAgICAgICAgY29uc3QgdmVjdG9yPHVpbnQ4X3Q+JiBrZXkpIHsKKworICAgIEFFU19LRVkgZGVjcnlwdGlvbktleTsKKyAgICBBRVNfc2V0X2VuY3J5cHRfa2V5KCZrZXlbMF0sIDEyOCwgJmRlY3J5cHRpb25LZXkpOworCisgICAgc2l6ZV90IG9mZnNldCA9IDA7CisgICAgdW5zaWduZWQgYmxvY2tPZmZzZXQgPSAwOworICAgIHVpbnQ4X3QgcHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyW0FFU19CTE9DS19TSVpFXTsKKyAgICBtZW1zZXQocHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyLCAwLCBBRVNfQkxPQ0tfU0laRSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN1YlNhbXBsZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgY29uc3QgU3ViU2FtcGxlJiBzdWJTYW1wbGUgPSBzdWJTYW1wbGVzW2ldOworCisgICAgICAgIGlmIChzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YSA+IDApIHsKKyAgICAgICAgICAgIG1lbWNweShkZXN0ICsgb2Zmc2V0LCBzcmMgKyBvZmZzZXQsIHN1YlNhbXBsZS5udW1CeXRlc09mQ2xlYXJEYXRhKTsKKyAgICAgICAgICAgIG9mZnNldCArPSBzdWJTYW1wbGUubnVtQnl0ZXNPZkNsZWFyRGF0YTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEgPiAwKSB7CisgICAgICAgICAgICBBRVNfY3RyMTI4X2VuY3J5cHQoc3JjICsgb2Zmc2V0LCBkZXN0ICsgb2Zmc2V0LAorICAgICAgICAgICAgICAgICAgICBzdWJTYW1wbGUubnVtQnl0ZXNPZkVuY3J5cHRlZERhdGEsICZkZWNyeXB0aW9uS2V5LAorICAgICAgICAgICAgICAgICAgICBpdiwgcHJldmlvdXNFbmNyeXB0ZWRDb3VudGVyLCAmYmxvY2tPZmZzZXQpOworICAgICAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBEZWNyeXB0IGEgbGlzdCBvZiBjbGVhcitlbmNyeXB0ZWQgc3Vic2FtcGxlcyB1c2luZyB0aGUgc3BlY2lmaWVkIGtleQorICogaW4gQUVTLUNCQyBtb2RlCisgKi8KK3ZvaWQgRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3Q6OmFlc19jYmNfZGVjcnlwdCh1aW50OF90KiBkZXN0LCB1aW50OF90KiBzcmMsCisgICAgICAgIHVpbnQ4X3QqIGl2LCBjb25zdCBoaWRsX3ZlYzxTdWJTYW1wbGU+JiBzdWJTYW1wbGVzLAorICAgICAgICBjb25zdCB2ZWN0b3I8dWludDhfdD4mIGtleSkgeworICAgIEFFU19LRVkgZGVjcnlwdGlvbktleTsKKyAgICBBRVNfc2V0X2VuY3J5cHRfa2V5KCZrZXlbMF0sIDEyOCwgJmRlY3J5cHRpb25LZXkpOworCisgICAgc2l6ZV90IG9mZnNldCA9IDA7CisgICAgc2l6ZV90IG51bSA9IDA7CisgICAgc2l6ZV90IGVjb3VudF9idWYgPSAwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3ViU2FtcGxlcy5zaXplKCk7IGkrKykgeworICAgICAgICBjb25zdCBTdWJTYW1wbGUmIHN1YlNhbXBsZSA9IHN1YlNhbXBsZXNbaV07CisKKyAgICAgICAgbWVtY3B5KGRlc3QgKyBvZmZzZXQsIHNyYyArIG9mZnNldCwgc3ViU2FtcGxlLm51bUJ5dGVzT2ZDbGVhckRhdGEpOworICAgICAgICBvZmZzZXQgKz0gc3ViU2FtcGxlLm51bUJ5dGVzT2ZDbGVhckRhdGE7CisKKyAgICAgICAgQUVTX2NiY19lbmNyeXB0KHNyYyArIG9mZnNldCwgZGVzdCArIG9mZnNldCwgc3ViU2FtcGxlLm51bUJ5dGVzT2ZFbmNyeXB0ZWREYXRhLAorICAgICAgICAgICAgICAgICZkZWNyeXB0aW9uS2V5LCBpdiwgMCAvKiBkZWNyeXB0ICovKTsKKyAgICAgICAgb2Zmc2V0ICs9IHN1YlNhbXBsZS5udW1CeXRlc09mRW5jcnlwdGVkRGF0YTsKKyAgICB9Cit9CisKKworLyoqCisgKiBUZXN0IGtleSBzdGF0dXMgd2l0aCBlbXB0eSBzZXNzaW9uIGlkLCBzaG91bGQgcmV0dXJuIEJBRF9WQUxVRQorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QsIFF1ZXJ5S2V5U3RhdHVzSW52YWxpZFNlc3Npb24pIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBTZXNzaW9uSWQgc2Vzc2lvbklkOworICAgIGF1dG8gcmVzID0gZHJtUGx1Z2luLT5xdWVyeUtleVN0YXR1cyhzZXNzaW9uSWQsCisgICAgICAgICAgICBbJl0oU3RhdHVzIHN0YXR1cywgS2V5ZWRWZWN0b3IgLyogaW5mbyAqLykgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkJBRF9WQUxVRSwgc3RhdHVzKTsKKyAgICAgICAgICAgIH0pOworICAgIEVYUEVDVF9PSyhyZXMpOworfQorCisKKy8qKgorICogVGVzdCBrZXkgc3RhdHVzLiAgVGhlcmUgc2hvdWxkIGJlIG5vIGtleSBzdGF0dXMgcHJpb3IgdG8gbG9hZGluZyBrZXlzCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdCwgUXVlcnlLZXlTdGF0dXNXaXRoTm9LZXlzKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworICAgIGF1dG8ga2V5U3RhdHVzID0gcXVlcnlLZXlTdGF0dXMoc2Vzc2lvbklkKTsKKyAgICBFWFBFQ1RfRVEoMHUsIGtleVN0YXR1cy5zaXplKCkpOworICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworfQorCisKKy8qKgorICogVGVzdCBrZXkgc3RhdHVzLiAgVGhlcmUgc2hvdWxkIGJlIGtleSBzdGF0dXMgYWZ0ZXIgbG9hZGluZyBrZXlzLgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QsIFF1ZXJ5S2V5U3RhdHVzKSB7CisgICAgUkVUVVJOX0lGX1NLSVBQRUQ7CisgICAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbnRlbnRDb25maWd1cmF0aW9ucykgeworICAgICAgICBhdXRvIHNlc3Npb25JZCA9IG9wZW5TZXNzaW9uKCk7CisgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnKTsKKyAgICAgICAgYXV0byBrZXlTdGF0dXMgPSBxdWVyeUtleVN0YXR1cyhzZXNzaW9uSWQpOworICAgICAgICBFWFBFQ1RfTkUoMHUsIGtleVN0YXR1cy5zaXplKCkpOworICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICB9Cit9CisKKy8qKgorICogUG9zaXRpdmUgZGVjcnlwdCB0ZXN0LiAiRGVjcnlwdCIgYSBzaW5nbGUgY2xlYXIgc2VnbWVudCBhbmQgdmVyaWZ5LgorICovCitURVNUX1AoRHJtSGFsVmVuZG9yRGVjcnlwdFRlc3QsIENsZWFyU2VnbWVudFRlc3QpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBmb3IgKGF1dG8gY29uZmlnIDogY29udGVudENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIGZvciAoYXV0byBrZXkgOiBjb25maWcua2V5cykgeworICAgICAgICAgICAgY29uc3Qgc2l6ZV90IGtTZWdtZW50U2l6ZSA9IDEwMjQ7CisgICAgICAgICAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgICAgICAgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0ge3subnVtQnl0ZXNPZkNsZWFyRGF0YSA9IGtTZWdtZW50U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDB9fTsKKyAgICAgICAgICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICAgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnKTsKKworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKworICAgICAgICAgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpVTkVOQ1JZUFRFRCwga2V5LmlzU2VjdXJlLCB0b0hpZGxBcnJheShrZXkua2V5SWQpLAorICAgICAgICAgICAgICAgICAgICAmaXZbMF0sIHN1YlNhbXBsZXMsIG5vUGF0dGVybiwga2V5LmNsZWFyQ29udGVudEtleSwgU3RhdHVzOjpPSyk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoa1NlZ21lbnRTaXplLCBieXRlQ291bnQpOworCisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBQb3NpdGl2ZSBkZWNyeXB0IHRlc3QuICBEZWNyeXB0IGEgc2luZ2xlIHNlZ21lbnQgdXNpbmcgYWVzX2N0ci4KKyAqIFZlcmlmeSBkYXRhIG1hdGNoZXMuCisgKi8KK1RFU1RfUChEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdCwgRW5jcnlwdGVkQWVzQ3RyU2VnbWVudFRlc3QpIHsKKyAgICBSRVRVUk5fSUZfU0tJUFBFRDsKKyAgICBmb3IgKGF1dG8gY29uZmlnIDogY29udGVudENvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIGZvciAoYXV0byBrZXkgOiBjb25maWcua2V5cykgeworICAgICAgICAgICAgY29uc3Qgc2l6ZV90IGtTZWdtZW50U2l6ZSA9IDEwMjQ7CisgICAgICAgICAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgICAgICAgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0ge3subnVtQnl0ZXNPZkNsZWFyRGF0YSA9IGtTZWdtZW50U2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDB9fTsKKyAgICAgICAgICAgIGF1dG8gc2Vzc2lvbklkID0gb3BlblNlc3Npb24oKTsKKyAgICAgICAgICAgIGxvYWRLZXlzKHNlc3Npb25JZCwgY29uZmlnKTsKKworICAgICAgICAgICAgU3RhdHVzIHN0YXR1cyA9IGNyeXB0b1BsdWdpbi0+c2V0TWVkaWFEcm1TZXNzaW9uKHNlc3Npb25JZCk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3RhdHVzOjpPSywgc3RhdHVzKTsKKworICAgICAgICAgICAgdWludDMyX3QgYnl0ZUNvdW50ID0gZGVjcnlwdChNb2RlOjpBRVNfQ1RSLCBrZXkuaXNTZWN1cmUsIHRvSGlkbEFycmF5KGtleS5rZXlJZCksCisgICAgICAgICAgICAgICAgICAgICZpdlswXSwgc3ViU2FtcGxlcywgbm9QYXR0ZXJuLCBrZXkuY2xlYXJDb250ZW50S2V5LCBTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShrU2VnbWVudFNpemUsIGJ5dGVDb3VudCk7CisKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIE5lZ2F0aXZlIGRlY3J5cHQgdGVzdC4gRGVjcnlwdCB3aXRob3V0IGxvYWRpbmcga2V5cy4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvckRlY3J5cHRUZXN0LCBFbmNyeXB0ZWRBZXNDdHJTZWdtZW50VGVzdE5vS2V5cykgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgICAgICAgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0ge3subnVtQnl0ZXNPZkNsZWFyRGF0YSA9IDI1NiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDI1Nn19OworICAgICAgICAgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgICAgICAgICB1aW50MzJfdCBieXRlQ291bnQgPSBkZWNyeXB0KE1vZGU6OkFFU19DVFIsIGtleS5pc1NlY3VyZSwKKyAgICAgICAgICAgICAgICAgICAgdG9IaWRsQXJyYXkoa2V5LmtleUlkKSwgJml2WzBdLCBzdWJTYW1wbGVzLCBub1BhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgIGtleS5jbGVhckNvbnRlbnRLZXksIFN0YXR1czo6RVJST1JfRFJNX05PX0xJQ0VOU0UpOworICAgICAgICAgICAgRVhQRUNUX0VRKDB1LCBieXRlQ291bnQpOworCisgICAgICAgICAgICBjbG9zZVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoqCisgKiBUZXN0IGtleSByZW1vdmFsLiAgTG9hZCBrZXlzIHRoZW4gcmVtb3ZlIHRoZW0gYW5kIHZlcmlmeSB0aGF0CisgKiBkZWNyeXB0aW9uIGNhbid0IGJlIHBlcmZvcm1lZC4KKyAqLworVEVTVF9QKERybUhhbFZlbmRvckRlY3J5cHRUZXN0LCBBdHRlbXB0RGVjcnlwdFdpdGhLZXlzUmVtb3ZlZCkgeworICAgIFJFVFVSTl9JRl9TS0lQUEVEOworICAgIGZvciAoYXV0byBjb25maWcgOiBjb250ZW50Q29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgZm9yIChhdXRvIGtleSA6IGNvbmZpZy5rZXlzKSB7CisgICAgICAgICAgICB2ZWN0b3I8dWludDhfdD4gaXYoQUVTX0JMT0NLX1NJWkUsIDApOworICAgICAgICAgICAgY29uc3QgUGF0dGVybiBub1BhdHRlcm4gPSB7MCwgMH07CisgICAgICAgICAgICBjb25zdCB2ZWN0b3I8U3ViU2FtcGxlPiBzdWJTYW1wbGVzID0ge3subnVtQnl0ZXNPZkNsZWFyRGF0YSA9IDI1NiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5udW1CeXRlc09mRW5jcnlwdGVkRGF0YSA9IDI1Nn19OworICAgICAgICAgICAgYXV0byBzZXNzaW9uSWQgPSBvcGVuU2Vzc2lvbigpOworCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gY3J5cHRvUGx1Z2luLT5zZXRNZWRpYURybVNlc3Npb24oc2Vzc2lvbklkKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCBzdGF0dXMpOworCisgICAgICAgICAgICBsb2FkS2V5cyhzZXNzaW9uSWQsIGNvbmZpZyk7CisgICAgICAgICAgICByZW1vdmVLZXlzKHNlc3Npb25JZCk7CisKKyAgICAgICAgICAgIHVpbnQzMl90IGJ5dGVDb3VudCA9IGRlY3J5cHQoTW9kZTo6QUVTX0NUUiwga2V5LmlzU2VjdXJlLAorICAgICAgICAgICAgICAgICAgICB0b0hpZGxBcnJheShrZXkua2V5SWQpLCAmaXZbMF0sIHN1YlNhbXBsZXMsIG5vUGF0dGVybiwKKyAgICAgICAgICAgICAgICAgICAga2V5LmNsZWFyQ29udGVudEtleSwgU3RhdHVzOjpFUlJPUl9EUk1fTk9fTElDRU5TRSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoMHUsIGJ5dGVDb3VudCk7CisKKyAgICAgICAgICAgIGNsb3NlU2Vzc2lvbihzZXNzaW9uSWQpOworICAgICAgICB9CisgICAgfQorfQorCisKKy8qKgorICogSW5zdGFudGlhdGUgdGhlIHNldCBvZiB0ZXN0IGNhc2VzIGZvciBlYWNoIHZlbmRvciBtb2R1bGUKKyAqLworCitJTlNUQU5USUFURV9URVNUX0NBU0VfUCgKKyAgICAgICAgRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3RDYXNlcywgRHJtSGFsVmVuZG9yRmFjdG9yeVRlc3QsCisgICAgICAgIHRlc3Rpbmc6OlZhbHVlc0luKGdWZW5kb3JNb2R1bGVzLT5nZXRQYXRoTGlzdCgpKSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgICAgICBEcm1IYWxWZW5kb3JQbHVnaW5UZXN0Q2FzZXMsIERybUhhbFZlbmRvclBsdWdpblRlc3QsCisgICAgICAgIHRlc3Rpbmc6OlZhbHVlc0luKGdWZW5kb3JNb2R1bGVzLT5nZXRQYXRoTGlzdCgpKSk7CisKK0lOU1RBTlRJQVRFX1RFU1RfQ0FTRV9QKAorICAgICAgICBEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdENhc2VzLCBEcm1IYWxWZW5kb3JEZWNyeXB0VGVzdCwKKyAgICAgICAgdGVzdGluZzo6VmFsdWVzSW4oZ1ZlbmRvck1vZHVsZXMtPmdldFBhdGhMaXN0KCkpKTsKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisjaWYgZGVmaW5lZChfX0xQNjRfXykKKyAgICBjb25zdCBjaGFyKiBrTW9kdWxlUGF0aCA9ICIvZGF0YS9sb2NhbC90bXAvNjQvbGliIjsKKyNlbHNlCisgICAgY29uc3QgY2hhcioga01vZHVsZVBhdGggPSAiL2RhdGEvbG9jYWwvdG1wLzMyL2xpYiI7CisjZW5kaWYKKyAgICBnVmVuZG9yTW9kdWxlcyA9IG5ldyBkcm1fdnRzOjpWZW5kb3JNb2R1bGVzKGtNb2R1bGVQYXRoKTsKKyAgICBpZiAoZ1ZlbmRvck1vZHVsZXMtPmdldFBhdGhMaXN0KCkuc2l6ZSgpID09IDApIHsKKyAgICAgICAgc3RkOjpjZXJyIDw8ICJObyB2ZW5kb3IgbW9kdWxlcyBmb3VuZCBpbiAiIDw8IGtNb2R1bGVQYXRoIDw8CisgICAgICAgICAgICAgICAgIiwgZXhpdGluZyIgPDwgc3RkOjplbmRsOworICAgICAgICBleGl0KC0xKTsKKyAgICB9CisgICAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgICAgcmV0dXJuIFJVTl9BTExfVEVTVFMoKTsKK30KZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvc2hhcmVkX2xpYnJhcnkuY3BwIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9zaGFyZWRfbGlicmFyeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY1ODE1MAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvc2hhcmVkX2xpYnJhcnkuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImRybS12dHMtc2hhcmVkLWxpYnJhcnkiCisKKyNpbmNsdWRlIDxkbGZjbi5oPgorI2luY2x1ZGUgPHNoYXJlZF9saWJyYXJ5Lmg+CisKK3VzaW5nIHN0ZDo6c3RyaW5nOworCituYW1lc3BhY2UgZHJtX3Z0cyB7CisKK1NoYXJlZExpYnJhcnk6OlNoYXJlZExpYnJhcnkoY29uc3Qgc3RyaW5nJiBwYXRoKSB7CisgICAgbUxpYkhhbmRsZSA9IGRsb3BlbihwYXRoLmNfc3RyKCksIFJUTERfTk9XKTsKK30KKworU2hhcmVkTGlicmFyeTo6flNoYXJlZExpYnJhcnkoKSB7CisgICAgaWYgKG1MaWJIYW5kbGUgIT0gTlVMTCkgeworICAgICAgICBkbGNsb3NlKG1MaWJIYW5kbGUpOworICAgICAgICBtTGliSGFuZGxlID0gTlVMTDsKKyAgICB9Cit9CisKK2Jvb2wgU2hhcmVkTGlicmFyeTo6b3BlcmF0b3IhKCkgY29uc3QgeworICAgIHJldHVybiBtTGliSGFuZGxlID09IE5VTEw7Cit9CisKK3ZvaWQqIFNoYXJlZExpYnJhcnk6Omxvb2t1cChjb25zdCBjaGFyKiBzeW1ib2wpIGNvbnN0IHsKKyAgICBpZiAoIW1MaWJIYW5kbGUpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLy8gQ2xlYXIgbGFzdCBlcnJvciBiZWZvcmUgd2UgbG9hZCB0aGUgc3ltYm9sIGFnYWluLAorICAgIC8vIGluIGNhc2UgdGhlIGNhbGxlciBkaWRuJ3QgcmV0cmlldmUgaXQuCisgICAgKHZvaWQpZGxlcnJvcigpOworICAgIHJldHVybiBkbHN5bShtTGliSGFuZGxlLCBzeW1ib2wpOworfQorCitjb25zdCBjaGFyKiBTaGFyZWRMaWJyYXJ5OjpsYXN0RXJyb3IoKSBjb25zdCB7CisgICAgY29uc3QgY2hhciogZXJyb3IgPSBkbGVycm9yKCk7CisgICAgcmV0dXJuIGVycm9yID8gZXJyb3IgOiAiTm8gZXJyb3JzIG9yIHVua25vd24gZXJyb3IiOworfQorfTsKZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvc2hhcmVkX2xpYnJhcnkuaCBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvc2hhcmVkX2xpYnJhcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjMyMjQzCi0tLSAvZGV2L251bGwKKysrIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC9zaGFyZWRfbGlicmFyeS5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIFNIQVJFRF9MSUJSQVJZX0hfCisjZGVmaW5lIFNIQVJFRF9MSUJSQVJZX0hfCisKKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgZHJtX3Z0cyB7CitjbGFzcyBTaGFyZWRMaWJyYXJ5IHsKKyAgIHB1YmxpYzoKKyAgICBleHBsaWNpdCBTaGFyZWRMaWJyYXJ5KGNvbnN0IHN0ZDo6c3RyaW5nJiBwYXRoKTsKKyAgICB+U2hhcmVkTGlicmFyeSgpOworCisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdDsKKyAgICB2b2lkKiBsb29rdXAoY29uc3QgY2hhciogc3ltYm9sKSBjb25zdDsKKyAgICBjb25zdCBjaGFyKiBsYXN0RXJyb3IoKSBjb25zdDsKKworICAgcHJpdmF0ZToKKyAgICB2b2lkKiBtTGliSGFuZGxlOworCisgICAgU2hhcmVkTGlicmFyeShjb25zdCBTaGFyZWRMaWJyYXJ5JikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgU2hhcmVkTGlicmFyeSYpID0gZGVsZXRlOworfTsKK307CisKKyNlbmRpZiAgLy8gU0hBUkVEX0xJQlJBUllfSF8KZGlmZiAtLWdpdCBhL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvdmVuZG9yX21vZHVsZXMuY3BwIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC92ZW5kb3JfbW9kdWxlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJmMGIyOAotLS0gL2Rldi9udWxsCisrKyBiL2RybS8xLjAvdnRzL2Z1bmN0aW9uYWwvdmVuZG9yX21vZHVsZXMuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImRybS12dHMtdmVuZG9yLW1vZHVsZXMiCisKKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxkbGZjbi5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxtZW1vcnk+CisKKyNpbmNsdWRlICJzaGFyZWRfbGlicmFyeS5oIgorI2luY2x1ZGUgInZlbmRvcl9tb2R1bGVzLmgiCisKK3VzaW5nIHN0ZDo6c3RyaW5nOwordXNpbmcgc3RkOjp2ZWN0b3I7Cit1c2luZyBzdGQ6OnVuaXF1ZV9wdHI7CisKK25hbWVzcGFjZSBkcm1fdnRzIHsKK3ZvaWQgVmVuZG9yTW9kdWxlczo6c2Nhbk1vZHVsZXMoY29uc3Qgc3RkOjpzdHJpbmcgJmRpcmVjdG9yeSkgeworICAgIERJUiogZGlyID0gb3BlbmRpcihkaXJlY3RvcnkuY19zdHIoKSk7CisgICAgaWYgKGRpciA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dFKCJVbmFibGUgdG8gb3BlbiBkcm0gVlRTIHZlbmRvciBkaXJlY3RvcnkgJXMiLCBkaXJlY3RvcnkuY19zdHIoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RydWN0IGRpcmVudCogZW50cnk7CisgICAgICAgIHdoaWxlICgoZW50cnkgPSByZWFkZGlyKGRpcikpKSB7CisgICAgICAgICAgICBBTE9HRCgiY2hlY2tpbmcgZmlsZSAlcyIsIGVudHJ5LT5kX25hbWUpOworICAgICAgICAgICAgc3RyaW5nIGZ1bGxwYXRoID0gZGlyZWN0b3J5ICsgIi8iICsgZW50cnktPmRfbmFtZTsKKyAgICAgICAgICAgIGlmIChlbmRzV2l0aChmdWxscGF0aCwgIi5zbyIpKSB7CisgICAgICAgICAgICAgICAgbVBhdGhMaXN0LnB1c2hfYmFjayhmdWxscGF0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2xvc2VkaXIoZGlyKTsKKyAgICB9Cit9CisKK0RybUhhbFZUU1ZlbmRvck1vZHVsZSogVmVuZG9yTW9kdWxlczo6Z2V0TW9kdWxlKGNvbnN0IHN0cmluZyYgcGF0aCkgeworICAgIGlmIChtT3BlbkxpYnJhcmllcy5maW5kKHBhdGgpID09IG1PcGVuTGlicmFyaWVzLmVuZCgpKSB7CisgICAgICAgIGF1dG8gbGlicmFyeSA9IHN0ZDo6bWFrZV91bmlxdWU8U2hhcmVkTGlicmFyeT4ocGF0aCk7CisgICAgICAgIGlmICghbGlicmFyeSkgeworICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBtYXAgc2hhcmVkIGxpYnJhcnkgJXMiLCBwYXRoLmNfc3RyKCkpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgbU9wZW5MaWJyYXJpZXNbcGF0aF0gPSBzdGQ6Om1vdmUobGlicmFyeSk7CisgICAgfQorICAgIGNvbnN0IHVuaXF1ZV9wdHI8U2hhcmVkTGlicmFyeT4mIGxpYnJhcnkgPSBtT3BlbkxpYnJhcmllc1twYXRoXTsKKyAgICB2b2lkKiBzeW1ib2wgPSBsaWJyYXJ5LT5sb29rdXAoInZlbmRvck1vZHVsZUZhY3RvcnkiKTsKKyAgICBpZiAoc3ltYm9sID09IE5VTEwpIHsKKyAgICAgICAgQUxPR0UoImdldFZlbmRvck1vZHVsZSBmYWlsZWQgdG8gbG9va3VwICd2ZW5kb3JNb2R1bGVGYWN0b3J5JyBpbiAlczogIgorICAgICAgICAgICAgICAiJXMiLCBwYXRoLmNfc3RyKCksIGxpYnJhcnktPmxhc3RFcnJvcigpKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHR5cGVkZWYgRHJtSGFsVlRTVmVuZG9yTW9kdWxlKiAoKk1vZHVsZUZhY3RvcnkpKCk7CisgICAgTW9kdWxlRmFjdG9yeSBtb2R1bGVGYWN0b3J5ID0gcmVpbnRlcnByZXRfY2FzdDxNb2R1bGVGYWN0b3J5PihzeW1ib2wpOworICAgIHJldHVybiAoKm1vZHVsZUZhY3RvcnkpKCk7Cit9Cit9OwpkaWZmIC0tZ2l0IGEvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC92ZW5kb3JfbW9kdWxlcy5oIGIvZHJtLzEuMC92dHMvZnVuY3Rpb25hbC92ZW5kb3JfbW9kdWxlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhNTM4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9kcm0vMS4wL3Z0cy9mdW5jdGlvbmFsL3ZlbmRvcl9tb2R1bGVzLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgVkVORE9SX01PRFVMRVNfSAorI2RlZmluZSBWRU5ET1JfTU9EVUxFU19ICisKKyNpbmNsdWRlIDxtYXA+CisKKyNpbmNsdWRlICJzaGFyZWRfbGlicmFyeS5oIgorCitjbGFzcyBEcm1IYWxWVFNWZW5kb3JNb2R1bGU7CisKK25hbWVzcGFjZSBkcm1fdnRzIHsKK2NsYXNzIFZlbmRvck1vZHVsZXMgeworICAgcHVibGljOgorICAgIC8qKgorICAgICAqIEluaXRpYWxpemUgd2l0aCBhIGZpbGUgc3lzdGVtIHBhdGggd2hlcmUgdGhlIHNoYXJlZCBsaWJyYXJpZXMKKyAgICAgKiBhcmUgdG8gYmUgZm91bmQuCisgICAgICovCisgICAgZXhwbGljaXQgVmVuZG9yTW9kdWxlcyhjb25zdCBzdGQ6OnN0cmluZyYgZGlyKSB7CisgICAgICAgIHNjYW5Nb2R1bGVzKGRpcik7CisgICAgfQorICAgIH5WZW5kb3JNb2R1bGVzKCkge30KKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGEgRHJtSGFsVlRTVmVuZG9yTW9kdWxlIGdpdmVuIGl0cyBmdWxsIHBhdGguICBUaGUKKyAgICAgKiBnZXRBUElWZXJzaW9uIG1ldGhvZCBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHZlcnNpb25lZAorICAgICAqIHN1YmNsYXNzIHR5cGUuCisgICAgICovCisgICAgRHJtSGFsVlRTVmVuZG9yTW9kdWxlKiBnZXRNb2R1bGUoY29uc3Qgc3RkOjpzdHJpbmcmIHBhdGgpOworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBsaXN0IG9mIHBhdGhzIHRvIGF2YWlsYWJsZSB2ZW5kb3IgbW9kdWxlcy4KKyAgICAgKi8KKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZ2V0UGF0aExpc3QoKSBjb25zdCB7cmV0dXJuIG1QYXRoTGlzdDt9CisKKyAgIHByaXZhdGU6CisgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IG1QYXRoTGlzdDsKKyAgICBzdGQ6Om1hcDxzdGQ6OnN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFNoYXJlZExpYnJhcnk+PiBtT3BlbkxpYnJhcmllczsKKworICAgIC8qKgorICAgICAqIFNjYW4gdGhlIGxpc3Qgb2YgcGF0aHMgdG8gYXZhaWxhYmxlIHZlbmRvciBtb2R1bGVzLgorICAgICAqLworICAgIHZvaWQgc2Nhbk1vZHVsZXMoY29uc3Qgc3RkOjpzdHJpbmcmIGRpcik7CisKKyAgICBpbmxpbmUgYm9vbCBlbmRzV2l0aChjb25zdCBzdGQ6OnN0cmluZyYgc3RyLCBjb25zdCBzdGQ6OnN0cmluZyYgc3VmZml4KSBjb25zdCB7CisgICAgICAgIGlmIChzdWZmaXguc2l6ZSgpID4gc3RyLnNpemUoKSkgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gc3RkOjplcXVhbChzdWZmaXgucmJlZ2luKCksIHN1ZmZpeC5yZW5kKCksIHN0ci5yYmVnaW4oKSk7CisgICAgfQorCisgICAgVmVuZG9yTW9kdWxlcyhjb25zdCBWZW5kb3JNb2R1bGVzJikgPSBkZWxldGU7CisgICAgdm9pZCBvcGVyYXRvcj0oY29uc3QgVmVuZG9yTW9kdWxlcyYpID0gZGVsZXRlOworfTsKK307CisKKyNlbmRpZiAgLy8gVkVORE9SX01PRFVMRVNfSApkaWZmIC0tZ2l0IGEvZHJtL0FuZHJvaWQuYnAgYi9kcm0vQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2Y3MGViCi0tLSAvZGV2L251bGwKKysrIGIvZHJtL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvZHVtcHN0YXRlLzEuMC9BbmRyb2lkLmJwIGIvZHVtcHN0YXRlLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0MjRjMzMKLS0tIC9kZXYvbnVsbAorKysgYi9kdW1wc3RhdGUvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1OSBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJJRHVtcHN0YXRlRGV2aWNlLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2R1bXBzdGF0ZS8xLjAvRHVtcHN0YXRlRGV2aWNlQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHVtcHN0YXRlLzEuMC9JRHVtcHN0YXRlRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kdW1wc3RhdGUvMS4wL0lId0R1bXBzdGF0ZURldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZHVtcHN0YXRlLzEuMC9Cbkh3RHVtcHN0YXRlRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9kdW1wc3RhdGUvMS4wL0JwSHdEdW1wc3RhdGVEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2R1bXBzdGF0ZS8xLjAvQnNEdW1wc3RhdGVEZXZpY2UuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL2R1bXBzdGF0ZS8xLjAvSUR1bXBzdGF0ZURldmljZS5oYWwgYi9kdW1wc3RhdGUvMS4wL0lEdW1wc3RhdGVEZXZpY2UuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNmMxMzkKLS0tIC9kZXYvbnVsbAorKysgYi9kdW1wc3RhdGUvMS4wL0lEdW1wc3RhdGVEZXZpY2UuaGFsCkBAIC0wLDAgKzEsMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZHVtcHN0YXRlQDEuMDsKKworaW50ZXJmYWNlIElEdW1wc3RhdGVEZXZpY2UgeworICAgIC8qKgorICAgICAqIER1bXBzIGRldmljZS1zcGVjaWZpYyBzdGF0ZSBpbnRvIHRoZSBnaXZlbiBmaWxlIGRlc2NyaXB0b3IuCisgICAgICovCisgICAgZHVtcHN0YXRlQm9hcmQoaGFuZGxlIGgpOworfTsKZGlmZiAtLWdpdCBhL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvZHVtcHN0YXRlLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGIwN2Y0OQotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjIgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBEdW1wc3RhdGVEZXZpY2UuY3BwIFwKKyAgICBzZXJ2aWNlLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZHVtcHN0YXRldXRpbCBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvRHVtcHN0YXRlRGV2aWNlLmNwcCBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9EdW1wc3RhdGVEZXZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxM2ZjNjIKLS0tIC9kZXYvbnVsbAorKysgYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvRHVtcHN0YXRlRGV2aWNlLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJkdW1wc3RhdGUiCisKKyNpbmNsdWRlICJEdW1wc3RhdGVEZXZpY2UuaCIKKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkR1bXBzdGF0ZVV0aWwuaCIKKwordXNpbmcgYW5kcm9pZDo6b3M6OmR1bXBzdGF0ZTo6RHVtcEZpbGVUb0ZkOwordXNpbmcgYW5kcm9pZDo6b3M6OmR1bXBzdGF0ZTo6UnVuQ29tbWFuZFRvRmQ7CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZHVtcHN0YXRlIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OklEdW1wc3RhdGVEZXZpY2UgZm9sbG93LgorUmV0dXJuPHZvaWQ+IER1bXBzdGF0ZURldmljZTo6ZHVtcHN0YXRlQm9hcmQoY29uc3QgaGlkbF9oYW5kbGUmIGhhbmRsZSkgeworICAgIC8vIE5PVEU6IHRoaXMgaXMganVzdCBhbiBleGFtcGxlIG9uIGhvdyB0byB1c2UgdGhlIER1bXBzdGF0ZVV0aWwuaCBmdW5jdGlvbnMgdG8gaW1wbGVtZW50CisgICAgLy8gdGhpcyBpbnRlcmZhY2UgLSBzaW5jZSBISURMX0ZFVENIX0lEdW1wc3RhdGVEZXZpY2UoKSBpcyBub3QgZGVmaW5lZCwgdGhpcyBmdW5jdGlvbiB3aWxsIG5ldmVyCisgICAgLy8gYmUgY2FsbGVkIGJ5IGR1bXBzdGF0ZS4KKworICAgIGlmIChoYW5kbGUtPm51bUZkcyA8IDEpIHsKKyAgICAgICAgQUxPR0UoIm5vIEZEc1xuIik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaW50IGZkID0gaGFuZGxlLT5kYXRhWzBdOworICAgIGlmIChmZCA8IDApIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgRkQ6ICVkXG4iLCBoYW5kbGUtPmRhdGFbMF0pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKyAgICBBTE9HRCgiRHVtcHN0YXRlRGV2aWNlOjpkdW1wc3RhdGVCb2FyZCgpIEZEOiAlZFxuIiwgZmQpOworICAgIEFMT0dJKCJEdW1wc3RhdGUgSElETCBub3QgcHJvdmlkZWQgYnkgZGV2aWNlXG4iKTsKKyAgICBkcHJpbnRmKGZkLCAiRHVtcHN0YXRlIEhJREwgbm90IHByb3ZpZGVkIGJ5IGRldmljZTsgcHJvdmlkaW5nIGJvZ3VzIGRhdGEuXG4iKTsKKworICAgIC8vIFNob3dzIHNvbWUgZXhhbXBsZXMgb24gaG93IHRvIHVzZSB0aGUgbGliZHVtcHN0YXRldXRpbCBBUEkuCisgICAgUnVuQ29tbWFuZFRvRmQoZmQsICJEQVRFIiwgeyIvdmVuZG9yL2Jpbi9kYXRlIn0pOworICAgIER1bXBGaWxlVG9GZChmZCwgIkhPU1RTIiwgIi9zeXN0ZW0vZXRjL2hvc3RzIik7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZHVtcHN0YXRlCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvRHVtcHN0YXRlRGV2aWNlLmggYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvRHVtcHN0YXRlRGV2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjg1ODVmNQotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9EdW1wc3RhdGVEZXZpY2UuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9EVU1QU1RBVEVfVjFfMF9EVU1QU1RBVEVERVZJQ0VfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0RVTVBTVEFURV9WMV8wX0RVTVBTVEFURURFVklDRV9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2R1bXBzdGF0ZS8xLjAvSUR1bXBzdGF0ZURldmljZS5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBkdW1wc3RhdGUgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6ZHVtcHN0YXRlOjpWMV8wOjpJRHVtcHN0YXRlRGV2aWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgRHVtcHN0YXRlRGV2aWNlIDogcHVibGljIElEdW1wc3RhdGVEZXZpY2UgeworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OklEdW1wc3RhdGVEZXZpY2UgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBkdW1wc3RhdGVCb2FyZChjb25zdCBoaWRsX2hhbmRsZSYgaCkgb3ZlcnJpZGU7CisKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBkdW1wc3RhdGUKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0RVTVBTVEFURV9WMV8wX0RVTVBTVEFURURFVklDRV9ICmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UucmMgYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGYyNzI0OAotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgZHVtcHN0YXRlLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmR1bXBzdGF0ZUAxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi9kdW1wc3RhdGUvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGYyNzZiNwotLS0gL2Rldi9udWxsCisrKyBiL2R1bXBzdGF0ZS8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5kdW1wc3RhdGVAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxoaWRsL0hpZGxTdXBwb3J0Lmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorCisjaW5jbHVkZSAiRHVtcHN0YXRlRGV2aWNlLmgiCisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3VyZVJwY1RocmVhZHBvb2w7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OklEdW1wc3RhdGVEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpkdW1wc3RhdGU6OlYxXzA6OmltcGxlbWVudGF0aW9uOjpEdW1wc3RhdGVEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKK3VzaW5nIDo6YW5kcm9pZDo6T0s7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitpbnQgbWFpbihpbnQgLyogYXJnYyAqLywgY2hhciogLyogYXJndiAqLyBbXSkgeworICAgIHNwPElEdW1wc3RhdGVEZXZpY2U+IGR1bXBzdGF0ZSA9IG5ldyBEdW1wc3RhdGVEZXZpY2U7CisgICAgY29uZmlndXJlUnBjVGhyZWFkcG9vbCgxLCB0cnVlIC8qIHdpbGwgam9pbiAqLyk7CisgICAgaWYgKGR1bXBzdGF0ZS0+cmVnaXN0ZXJBc1NlcnZpY2UoKSAhPSBPSykgeworICAgICAgICBBTE9HRSgiQ291bGQgbm90IHJlZ2lzdGVyIHNlcnZpY2UuIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworCisgICAgQUxPR0UoIlNlcnZpY2UgZXhpdGVkISIpOworICAgIHJldHVybiAxOworfQpkaWZmIC0tZ2l0IGEvZHVtcHN0YXRlL0FuZHJvaWQuYnAgYi9kdW1wc3RhdGUvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYmIzZTRiCi0tLSAvZGV2L251bGwKKysrIGIvZHVtcHN0YXRlL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIxLjAiLAorXQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvQW5kcm9pZC5icCBiL2dhdGVrZWVwZXIvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI3MGMwOQotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklHYXRla2VlcGVyLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL0dhdGVrZWVwZXJBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL0lId0dhdGVrZWVwZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL0JuSHdHYXRla2VlcGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC9CcEh3R2F0ZWtlZXBlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvQnNHYXRla2VlcGVyLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvQW5kcm9pZC5tayBiL2dhdGVrZWVwZXIvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc2ZjcyOQotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxNTYgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlci1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEdhdGVrZWVwZXJSZXNwb25zZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci9WMV8wL0dhdGVrZWVwZXJSZXNwb25zZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA6OnR5cGVzLkdhdGVrZWVwZXJSZXNwb25zZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR2F0ZWtlZXBlclN0YXR1c0NvZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvVjFfMC9HYXRla2VlcGVyU3RhdHVzQ29kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjA6OnR5cGVzLkdhdGVrZWVwZXJTdGF0dXNDb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUdhdGVrZWVwZXIuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvVjFfMC9JR2F0ZWtlZXBlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUdhdGVrZWVwZXIuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOjpJR2F0ZWtlZXBlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUdhdGVrZWVwZXIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHYXRla2VlcGVyUmVzcG9uc2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvVjFfMC9HYXRla2VlcGVyUmVzcG9uc2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOjp0eXBlcy5HYXRla2VlcGVyUmVzcG9uc2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEdhdGVrZWVwZXJTdGF0dXNDb2RlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyL1YxXzAvR2F0ZWtlZXBlclN0YXR1c0NvZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOjp0eXBlcy5HYXRla2VlcGVyU3RhdHVzQ29kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHYXRla2VlcGVyLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyL1YxXzAvSUdhdGVrZWVwZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHYXRla2VlcGVyLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMDo6SUdhdGVrZWVwZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHYXRla2VlcGVyLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaGFsIGIvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5ZGQ3ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC9JR2F0ZWtlZXBlci5oYWwKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOworCitpbnRlcmZhY2UgSUdhdGVrZWVwZXIgeworCisvKioKKyAqIEVucm9sbHMgZGVzaXJlZFBhc3N3b3JkLCB3aGljaCBtYXkgYmUgZGVyaXZlZCBmcm9tIGEgdXNlciBzZWxlY3RlZCBwaW4KKyAqIG9yIHBhc3N3b3JkLCB3aXRoIHRoZSBwcml2YXRlIGtleSB1c2VkIG9ubHkgZm9yIGVucm9sbGluZyBhdXRoZW50aWNhdGlvbgorICogZmFjdG9yIGRhdGEuCisgKgorICogSWYgdGhlcmUgd2FzIGFscmVhZHkgYSBwYXNzd29yZCBlbnJvbGxlZCwgY3VycmVudCBwYXNzd29yZCBoYW5kbGUgbXVzdCBiZQorICogcGFzc2VkIGluIGN1cnJlbnRQYXNzd29yZEhhbmRsZSwgYW5kIGN1cnJlbnQgcGFzc3dvcmQgbXVzdCBiZSBwYXNzZWQgaW4KKyAqIGN1cnJlbnRQYXNzd29yZC4gVmFsaWQgY3VycmVudFBhc3N3b3JkIG11c3QgdmVyaWZ5KCkgYWdhaW5zdAorICogY3VycmVudFBhc3N3b3JkSGFuZGxlLgorICoKKyAqIEBwYXJhbSB1aWQgVGhlIEFuZHJvaWQgdXNlciBpZGVudGlmaWVyCisgKgorICogQHBhcmFtIGN1cnJlbnRQYXNzd29yZEhhbmRsZSBUaGUgY3VycmVudGx5IGVucm9sbGVkIHBhc3N3b3JkIGhhbmRsZSB0aGUgdXNlcgorICogICAgd2FudHMgdG8gcmVwbGFjZS4gTWF5IGJlIGVtcHR5IG9ubHkgaWYgdGhlcmUncyBubyBjdXJyZW50bHkgZW5yb2xsZWQKKyAqICAgIHBhc3N3b3JkLiBPdGhlcndpc2UgbXVzdCBiZSBub24tZW1wdHkuCisgKgorICogQHBhcmFtIGN1cnJlbnRQYXNzd29yZCBUaGUgdXNlcidzIGN1cnJlbnQgcGFzc3dvcmQgaW4gcGxhaW4gdGV4dC4KKyAqICAgIGl0IE1VU1QgdmVyaWZ5IGFnYWluc3QgY3VycmVudF9wYXNzd29yZF9oYW5kbGUgaWYgdGhlIGxhdHRlciBpcyBub3QtZW1wdHkKKyAqCisgKiBAcGFyYW0gZGVzaXJlZFBhc3N3b3JkIFRoZSBuZXcgcGFzc3dvcmQgdGhlIHVzZXIgd2lzaGVzIHRvIGVucm9sbCBpbgorICogICAgcGxhaW50ZXh0LgorICoKKyAqIEByZXR1cm4gcmVzcG9uc2UKKyAqICAgIE9uIHN1Y2Nlc3MsIGRhdGEgYnVmZmVyIG11c3QgY29udGFpbiB0aGUgbmV3IHBhc3N3b3JkIGhhbmRsZSByZWZlcmVuY2luZworICogICAgdGhlIHBhc3N3b3JkIHByb3ZpZGVkIGluIGRlc2lyZWRQYXNzd29yZC4KKyAqICAgIFRoaXMgYnVmZmVyIGNhbiBiZSB1c2VkIG9uIHN1YnNlcXVlbnQgY2FsbHMgdG8gZW5yb2xsIG9yCisgKiAgICB2ZXJpZnkuIE9uIGVycm9yLCB0aGlzIGJ1ZmZlciBtdXN0IGJlIGVtcHR5LgorICogICAgcmVzcG9uc2UuY29kZSBtdXN0IGFsd2F5cyBjb250YWluIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAqICAgIFRoaXMgbWV0aG9kIG1heSByZXR1cm4gRVJST1JfR0VORVJBTF9GQUlMVVJFIG9yIEVSUk9SX1JFVFJZX1RJTUVPVVQgb24KKyAqICAgIGZhaWx1cmUuIEl0IG11c3QgcmV0dXJuIFNUQVRVU19PSyBvbiBzdWNjZXNzLgorICogICAgSWYgRVJST1JfUkVUUllfVElNRU9VVCBpcyByZXR1cm5lZCwgcmVzcG9uc2UudGltZW91dCBtdXN0IGJlIG5vbi16ZXJvLgorICovCitlbnJvbGwodWludDMyX3QgdWlkLAorICAgICAgIHZlYzx1aW50OF90PiBjdXJyZW50UGFzc3dvcmRIYW5kbGUsCisgICAgICAgdmVjPHVpbnQ4X3Q+IGN1cnJlbnRQYXNzd29yZCwKKyAgICAgICB2ZWM8dWludDhfdD4gZGVzaXJlZFBhc3N3b3JkKQorICAgIGdlbmVyYXRlcyAoR2F0ZWtlZXBlclJlc3BvbnNlIHJlc3BvbnNlKTsKKworLyoqCisgKiBWZXJpZmllcyB0aGF0IHByb3ZpZGVkUGFzc3dvcmQgbWF0Y2hlcyBlbnJvbGxlZFBhc3N3b3JkSGFuZGxlLgorICoKKyAqIEltcGxlbWVudGF0aW9ucyBvZiB0aGlzIG1vZHVsZSBtYXkgcmV0YWluIHRoZSByZXN1bHQgb2YgdGhpcyBjYWxsCisgKiB0byBhdHRlc3QgdG8gdGhlIHJlY2VuY3kgb2YgYXV0aGVudGljYXRpb24uCisgKgorICogT24gc3VjY2VzcywgcmV0dXJucyB2ZXJpZmljYXRpb24gdG9rZW4gaW4gcmVzcG9uc2UuZGF0YSwgd2hpY2ggc2hhbGwgYmUKKyAqIHVzYWJsZSB0byBhdHRlc3QgcGFzc3dvcmQgdmVyaWZpY2F0aW9uIHRvIG90aGVyIHRydXN0ZWQgc2VydmljZXMuCisgKgorICogQHBhcmFtIHVpZCBUaGUgQW5kcm9pZCB1c2VyIGlkZW50aWZpZXIKKyAqCisgKiBAcGFyYW0gY2hhbGxlbmdlIEFuIG9wdGlvbmFsIGNoYWxsZW5nZSB0byBhdXRoZW50aWNhdGUgYWdhaW5zdCwgb3IgMC4KKyAqICAgIFVzZWQgd2hlbiBhIHNlcGFyYXRlIGF1dGhlbnRpY2F0b3IgcmVxdWVzdHMgcGFzc3dvcmQgdmVyaWZpY2F0aW9uLAorICogICAgb3IgZm9yIHRyYW5zYWN0aW9uYWwgcGFzc3dvcmQgYXV0aGVudGljYXRpb24uCisgKgorICogQHBhcmFtIGVucm9sbGVkUGFzc3dvcmRIYW5kbGUgVGhlIGN1cnJlbnRseSBlbnJvbGxlZCBwYXNzd29yZCBoYW5kbGUgdGhhdAorICogICAgdXNlciB3aXNoZXMgdG8gdmVyaWZ5IGFnYWluc3QuIE11c3QgYmUgbm9uLWVtcHR5LgorICoKKyAqIEBwYXJhbSBwcm92aWRlZFBhc3N3b3JkIFRoZSBwbGFpbnRleHQgcGFzc3dvcmQgdG8gYmUgdmVyaWZpZWQgYWdhaW5zdCB0aGUKKyAqICAgIGVucm9sbGVkUGFzc3dvcmRIYW5kbGUKKyAqCisgKiBAcmV0dXJuIHJlc3BvbnNlCisgKiAgICBPbiBzdWNjZXNzLCBhIG5vbi1lbXB0eSBkYXRhIGJ1ZmZlciBjb250YWluaW5nIHRoZQorICogICAgYXV0aGVudGljYXRpb24gdG9rZW4gcmVzdWx0aW5nIGZyb20gdGhpcyB2ZXJpZmljYXRpb24gaXMgcmV0dXJuZWQuCisgKiAgICBPbiBlcnJvciwgZGF0YSBidWZmZXIgbXVzdCBiZSBlbXB0eS4KKyAqICAgIHJlc3BvbnNlLmNvZGUgbXVzdCBhbHdheXMgY29udGFpbiBvcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXMuCisgKiAgICBUaGlzIG1ldGhvZCBtYXkgcmV0dXJuIEVSUk9SX0dFTkVSQUxfRkFJTFVSRSBvciBFUlJPUl9SRVRSWV9USU1FT1VUIG9uCisgKiAgICBmYWlsdXJlLiBJdCBtdXN0IHJldHVybiBTVEFUVVNfT0sgb24gc3VjY2Vzcy4KKyAqICAgIElmIHBhc3N3b3JkIHJlLWVucm9sbG1lbnQgaXMgbmVjZXNzYXJ5LCBpdCBtdXN0IHJldHVybiBTVEFUVVNfUkVFTlJPTEwuCisgKiAgICBJZiBFUlJPUl9SRVRSWV9USU1FT1VUIGlzIHJldHVybmVkLCByZXNwb25zZS50aW1lb3V0IG11c3QgYmUgbm9uLXplcm8uCisgKi8KK3ZlcmlmeSh1aW50MzJfdCB1aWQsIHVpbnQ2NF90IGNoYWxsZW5nZSwKKyAgICAgICB2ZWM8dWludDhfdD4gZW5yb2xsZWRQYXNzd29yZEhhbmRsZSwKKyAgICAgICB2ZWM8dWludDhfdD4gcHJvdmlkZWRQYXNzd29yZCkKKyAgICBnZW5lcmF0ZXMgKEdhdGVrZWVwZXJSZXNwb25zZSByZXNwb25zZSk7CisKKy8qKgorICogRGVsZXRlcyB0aGUgZW5yb2xsZWRQYXNzd29yZEhhbmRsZSBhc3NvY2lhdGVkIHdpdGggdGhlIHVpZC4gT25jZSBkZWxldGVkCisgKiB0aGUgdXNlciBjYW5ub3QgYmUgdmVyaWZpZWQgYW55bW9yZS4KKyAqIFRoaXMgaXMgYW4gb3B0aW9uYWwgbWV0aG9kLgorICoKKyAqIEBwYXJhbSB1aWQgVGhlIEFuZHJvaWQgdXNlciBpZGVudGlmaWVyCisgKgorICogQHJldHVybiByZXNwb25zZQorICogICAgcmVzcG9uc2UuY29kZSBtdXN0IGFsd2F5cyBjb250YWluIG9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1cy4KKyAqICAgIFRoaXMgbWV0aG9kIG1heSByZXR1cm4gRVJST1JfR0VORVJBTF9GQUlMVVJFIG9yIEVSUk9SX1JFVFJZX1RJTUVPVVQgb24KKyAqICAgIGZhaWx1cmUuIEl0IG11c3QgcmV0dXJuIFNUQVRVU19PSyBvbiBzdWNjZXNzLgorICogICAgSWYgbm90IGltcGxlbWVudGVkLCBpdCBtdXN0IHJldHVybiBFUlJPUl9OT1RfSU1QTEVNRU5URUQuCisgKiAgICBJZiBFUlJPUl9SRVRSWV9USU1FT1VUIGlzIHJldHVybmVkLCByZXNwb25zZS50aW1lb3V0IG11c3QgYmUgbm9uLXplcm8uCisgKi8KK2RlbGV0ZVVzZXIodWludDMyX3QgdWlkKSBnZW5lcmF0ZXMgKEdhdGVrZWVwZXJSZXNwb25zZSByZXNwb25zZSk7CisKKy8qKgorICogRGVsZXRlcyBhbGwgdGhlIGVucm9sbGVkX3Bhc3N3b3JkX2hhbmRsZXMgZm9yIGFsbCB1aWQncy4gT25jZSBjYWxsZWQsCisgKiBubyB1c2VycyBtdXN0IGJlIGVucm9sbGVkIG9uIHRoZSBkZXZpY2UuCisgKiBUaGlzIGlzIGFuIG9wdGlvbmFsIG1ldGhvZC4KKyAqCisgKiBAcmV0dXJuIHJlc3BvbnNlCisgKiAgICByZXNwb25zZS5jb2RlIG11c3QgYWx3YXlzIGNvbnRhaW4gb3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzLgorICogICAgVGhpcyBtZXRob2QgbWF5IHJldHVybiBFUlJPUl9HRU5FUkFMX0ZBSUxVUkUgb3IgRVJST1JfUkVUUllfVElNRU9VVCBvbgorICogICAgZmFpbHVyZS4gSXQgbXVzdCByZXR1cm4gU1RBVFVTX09LIG9uIHN1Y2Nlc3MuCisgKiAgICBJZiBub3QgaW1wbGVtZW50ZWQsIGl0IG11c3QgcmV0dXJuIEVSUk9SX05PVF9JTVBMRU1FTlRFRC4KKyAqICAgIElmIEVSUk9SX1JFVFJZX1RJTUVPVVQgaXMgcmV0dXJuZWQsIHJlc3BvbnNlLnRpbWVvdXQgbXVzdCBiZSBub24temVyby4KKyAqLworZGVsZXRlQWxsVXNlcnMoKSBnZW5lcmF0ZXMgKEdhdGVrZWVwZXJSZXNwb25zZSByZXNwb25zZSk7Cit9OwpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwODQ1MzUKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSw0MCBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1pbXBsCisKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgR2F0ZWtlZXBlci5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJsb2cgXAorCitpbmNsdWRlICQoQlVJTERfU0hBUkVEX0xJQlJBUlkpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlLnJjCisKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAgICAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJsb2cgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvR2F0ZWtlZXBlci5jcHAgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0dhdGVrZWVwZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjZTA2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0dhdGVrZWVwZXIuY3BwCkBAIC0wLDAgKzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8ZGxmY24uaD4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkdhdGVrZWVwZXIuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnYXRla2VlcGVyIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0dhdGVrZWVwZXI6OkdhdGVrZWVwZXIoKQoreworICAgIGludCByZXQgPSBod19nZXRfbW9kdWxlX2J5X2NsYXNzKEdBVEVLRUVQRVJfSEFSRFdBUkVfTU9EVUxFX0lELCBOVUxMLCAmbW9kdWxlKTsKKyAgICBkZXZpY2UgPSBOVUxMOworCisgICAgaWYgKCFyZXQpIHsKKyAgICAgICAgcmV0ID0gZ2F0ZWtlZXBlcl9vcGVuKG1vZHVsZSwgJmRldmljZSk7CisgICAgfQorICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUxfSUYocmV0IDwgMCwgIlVuYWJsZSB0byBvcGVuIEdhdGVLZWVwZXIgSEFMIik7CisgICAgfQorfQorCitHYXRla2VlcGVyOjp+R2F0ZWtlZXBlcigpCit7CisgICAgaWYgKGRldmljZSAhPSBudWxscHRyKSB7CisgICAgICAgIGludCByZXQgPSBnYXRla2VlcGVyX2Nsb3NlKGRldmljZSk7CisgICAgICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgICAgICBBTE9HRSgiVW5hYmxlIHRvIGNsb3NlIEdhdGVLZWVwZXIgSEFMIik7CisgICAgICAgIH0KKyAgICB9CisgICAgZGxjbG9zZShtb2R1bGUtPmRzbyk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnYXRla2VlcGVyOjpWMV8wOjpJR2F0ZWtlZXBlciBmb2xsb3cuCitSZXR1cm48dm9pZD4gR2F0ZWtlZXBlcjo6ZW5yb2xsKHVpbnQzMl90IHVpZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGN1cnJlbnRQYXNzd29yZEhhbmRsZSwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGN1cnJlbnRQYXNzd29yZCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRlc2lyZWRQYXNzd29yZCwKKyAgICAgICAgZW5yb2xsX2NiIGNiKQoreworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisgICAgdWludDhfdCAqZW5yb2xsZWRfcGFzc3dvcmRfaGFuZGxlID0gbnVsbHB0cjsKKyAgICB1aW50MzJfdCBlbnJvbGxlZF9wYXNzd29yZF9oYW5kbGVfbGVuZ3RoID0gMDsKKworICAgIGludCByZXQgPSBkZXZpY2UtPmVucm9sbChkZXZpY2UsIHVpZCwKKyAgICAgICAgICAgIGN1cnJlbnRQYXNzd29yZEhhbmRsZS5kYXRhKCksIGN1cnJlbnRQYXNzd29yZEhhbmRsZS5zaXplKCksCisgICAgICAgICAgICBjdXJyZW50UGFzc3dvcmQuZGF0YSgpLCBjdXJyZW50UGFzc3dvcmQuc2l6ZSgpLAorICAgICAgICAgICAgZGVzaXJlZFBhc3N3b3JkLmRhdGEoKSwgZGVzaXJlZFBhc3N3b3JkLnNpemUoKSwKKyAgICAgICAgICAgICZlbnJvbGxlZF9wYXNzd29yZF9oYW5kbGUsICZlbnJvbGxlZF9wYXNzd29yZF9oYW5kbGVfbGVuZ3RoKTsKKyAgICBpZiAoIXJldCkgeworICAgICAgICByc3AuZGF0YS5zZXRUb0V4dGVybmFsKGVucm9sbGVkX3Bhc3N3b3JkX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnJvbGxlZF9wYXNzd29yZF9oYW5kbGVfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfT0s7CisgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisgICAgICAgIHJzcC50aW1lb3V0ID0gcmV0OworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9SRVRSWV9USU1FT1VUOworICAgIH0gZWxzZSB7CisgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX0dFTkVSQUxfRkFJTFVSRTsKKyAgICB9CisgICAgY2IocnNwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR2F0ZWtlZXBlcjo6dmVyaWZ5KHVpbnQzMl90IHVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgY2hhbGxlbmdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZW5yb2xsZWRQYXNzd29yZEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHByb3ZpZGVkUGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmeV9jYiBjYikKK3sKKyAgICBHYXRla2VlcGVyUmVzcG9uc2UgcnNwOworICAgIHVpbnQ4X3QgKmF1dGhfdG9rZW4gPSBudWxscHRyOworICAgIHVpbnQzMl90IGF1dGhfdG9rZW5fbGVuZ3RoID0gMDsKKyAgICBib29sIHJlcXVlc3RfcmVlbnJvbGwgPSBmYWxzZTsKKworICAgIGludCByZXQgPSBkZXZpY2UtPnZlcmlmeShkZXZpY2UsIHVpZCwgY2hhbGxlbmdlLAorICAgICAgICAgICAgZW5yb2xsZWRQYXNzd29yZEhhbmRsZS5kYXRhKCksIGVucm9sbGVkUGFzc3dvcmRIYW5kbGUuc2l6ZSgpLAorICAgICAgICAgICAgcHJvdmlkZWRQYXNzd29yZC5kYXRhKCksIHByb3ZpZGVkUGFzc3dvcmQuc2l6ZSgpLAorICAgICAgICAgICAgJmF1dGhfdG9rZW4sICZhdXRoX3Rva2VuX2xlbmd0aCwKKyAgICAgICAgICAgICZyZXF1ZXN0X3JlZW5yb2xsKTsKKyAgICBpZiAoIXJldCkgeworICAgICAgICByc3AuZGF0YS5zZXRUb0V4dGVybmFsKGF1dGhfdG9rZW4sIGF1dGhfdG9rZW5fbGVuZ3RoLCB0cnVlKTsKKyAgICAgICAgaWYgKHJlcXVlc3RfcmVlbnJvbGwpIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19SRUVOUk9MTDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSzsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAocmV0ID4gMCkgeworICAgICAgICByc3AudGltZW91dCA9IHJldDsKKyAgICAgICAgcnNwLmNvZGUgPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVDsKKyAgICB9IGVsc2UgeworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkU7CisgICAgfQorICAgIGNiKHJzcCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEdhdGVrZWVwZXI6OmRlbGV0ZVVzZXIodWludDMyX3QgdWlkLCBkZWxldGVVc2VyX2NiIGNiKSAgeworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisKKyAgICBpZiAoZGV2aWNlLT5kZWxldGVfdXNlciAhPSBudWxscHRyKSB7CisgICAgICAgIGludCByZXQgPSBkZXZpY2UtPmRlbGV0ZV91c2VyKGRldmljZSwgdWlkKTsKKyAgICAgICAgaWYgKCFyZXQpIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSzsKKyAgICAgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisgICAgICAgICAgICByc3AudGltZW91dCA9IHJldDsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX1JFVFJZX1RJTUVPVVQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkU7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9OT1RfSU1QTEVNRU5URUQ7CisgICAgfQorICAgIGNiKHJzcCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEdhdGVrZWVwZXI6OmRlbGV0ZUFsbFVzZXJzKGRlbGV0ZUFsbFVzZXJzX2NiIGNiKSAgeworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisgICAgaWYgKGRldmljZS0+ZGVsZXRlX2FsbF91c2VycyAhPSBudWxscHRyKSB7CisgICAgICAgIGludCByZXQgPSBkZXZpY2UtPmRlbGV0ZV9hbGxfdXNlcnMoZGV2aWNlKTsKKyAgICAgICAgaWYgKCFyZXQpIHsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSzsKKyAgICAgICAgfSBlbHNlIGlmIChyZXQgPiAwKSB7CisgICAgICAgICAgICByc3AudGltZW91dCA9IHJldDsKKyAgICAgICAgICAgIHJzcC5jb2RlID0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX1JFVFJZX1RJTUVPVVQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkU7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICByc3AuY29kZSA9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9OT1RfSU1QTEVNRU5URUQ7CisgICAgfQorICAgIGNiKHJzcCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSUdhdGVrZWVwZXIqIEhJRExfRkVUQ0hfSUdhdGVrZWVwZXIoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIHJldHVybiBuZXcgR2F0ZWtlZXBlcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnYXRla2VlcGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0dhdGVrZWVwZXIuaCBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvR2F0ZWtlZXBlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjYzAxZjYKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC9kZWZhdWx0L0dhdGVrZWVwZXIuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HQVRFS0VFUEVSX1YxXzBfR0FURUtFRVBFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR0FURUtFRVBFUl9WMV8wX0dBVEVLRUVQRVJfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nYXRla2VlcGVyLzEuMC9JR2F0ZWtlZXBlci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9nYXRla2VlcGVyLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ2F0ZWtlZXBlciB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnYXRla2VlcGVyOjpWMV8wOjpHYXRla2VlcGVyUmVzcG9uc2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnYXRla2VlcGVyOjpWMV8wOjpJR2F0ZWtlZXBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworY2xhc3MgR2F0ZWtlZXBlciA6IHB1YmxpYyBJR2F0ZWtlZXBlciB7CitwdWJsaWM6CisgICAgR2F0ZWtlZXBlcigpOworICAgIH5HYXRla2VlcGVyKCk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z2F0ZWtlZXBlcjo6VjFfMDo6SUdhdGVrZWVwZXIgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBlbnJvbGwodWludDMyX3QgdWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGN1cnJlbnRQYXNzd29yZEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjdXJyZW50UGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGVzaXJlZFBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgZW5yb2xsX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHZlcmlmeSh1aW50MzJfdCB1aWQsCisgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZW5yb2xsZWRQYXNzd29yZEhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBwcm92aWRlZFBhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlbGV0ZVVzZXIodWludDMyX3QgdWlkLCBkZWxldGVVc2VyX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGRlbGV0ZUFsbFVzZXJzKGRlbGV0ZUFsbFVzZXJzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7Citwcml2YXRlOgorICAgIGdhdGVrZWVwZXJfZGV2aWNlX3QgKmRldmljZTsKKyAgICBjb25zdCBod19tb2R1bGVfdCAqbW9kdWxlOworfTsKKworZXh0ZXJuICJDIiBJR2F0ZWtlZXBlciogSElETF9GRVRDSF9JR2F0ZWtlZXBlcihjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGdhdGVrZWVwZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0dBVEVLRUVQRVJfVjFfMF9HQVRFS0VFUEVSX0gKZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlLnJjIGIvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDNmNWU5ZAotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5nYXRla2VlcGVyQDEuMC1zZXJ2aWNlLnJjCkBAIC0wLDAgKzEsNCBAQAorc2VydmljZSBnYXRla2VlcGVyLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvZ2F0ZWtlZXBlci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWNiZGFmYgotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaD4KKworI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisvLyBHZW5lcmF0ZWQgSElETCBmaWxlcwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdhdGVrZWVwZXI6OlYxXzA6OklHYXRla2VlcGVyOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJR2F0ZWtlZXBlcj4oKTsKK30KZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmhhbCBiL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjQzNjc1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2F0ZWtlZXBlci8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdhdGVrZWVwZXJAMS4wOworCisvKioKKyAqIEdhdGVrZWVwZXIgcmVzcG9uc2UgY29kZXM7IHN1Y2Nlc3MgPj0gMDsgZXJyb3IgPCAwCisgKi8KK2VudW0gR2F0ZWtlZXBlclN0YXR1c0NvZGUgOiBpbnQzMl90IHsKKyAgU1RBVFVTX1JFRU5ST0xMICAgICAgID0gIDEsICAvLyBzdWNjZXNzLCBidXQgdXBwZXIgbGF5ZXJzIHNob3VsZCByZS1lbnJvbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgdmVyaWZpZWQgcGFzc3dvcmQgZHVlIHRvIGEgdmVyc2lvbiBjaGFuZ2UKKyAgU1RBVFVTX09LICAgICAgICAgICAgID0gIDAsICAvLyBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bAorICBFUlJPUl9HRU5FUkFMX0ZBSUxVUkUgPSAtMSwgIC8vIG9wZXJhdGlvbiBmYWlsZWQKKyAgRVJST1JfUkVUUllfVElNRU9VVCAgID0gLTIsICAvLyBvcGVyYXRpb24gc2hvdWxkIGJlIHJldHJpZWQgYWZ0ZXIgdGltZW91dAorICBFUlJPUl9OT1RfSU1QTEVNRU5URUQgPSAtMywgIC8vIG9wZXJhdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQKK307CisKKy8qKgorICogR2F0ZWtlZXBlciByZXNwb25zZSB0byBhbnkvYWxsIHJlcXVlc3RzIGhhcyB0aGlzIHN0cnVjdHVyZSBhcyBtYW5kYXRvcnkgcGFydAorICovCitzdHJ1Y3QgR2F0ZWtlZXBlclJlc3BvbnNlIHsKKyAgICAvKiogcmVxdWVzdCBjb21wbGV0aW9uIHN0YXR1cyAqLworICAgIEdhdGVrZWVwZXJTdGF0dXNDb2RlIGNvZGU7CisgICAgLyoqCisgICAgICogcmV0cnkgdGltZW91dCBpbiBtcywgaWYgY29kZSA9PSBFUlJPUl9SRVRSWV9USU1FT1VUCisgICAgICogb3RoZXJ3aXNlIHVudXNlZCAoMCkKKyAgICAgKi8KKyAgICB1aW50MzJfdCB0aW1lb3V0OworICAgIC8qKiBvcHRpb25hbCBjcnlwdG8gYmxvYi4gT3BhcXVlIHRvIEFuZHJvaWQgc3lzdGVtLiAqLworICAgIHZlYzx1aW50OF90PiBkYXRhOworfTsKZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9nYXRla2VlcGVyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwY2I2MTUKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxHYXRla2VlcGVyVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEdhdGVrZWVwZXJWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ2F0ZWtlZXBlckAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL2dhdGVrZWVwZXIvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdhdGVrZWVwZXJWMV8wVGFyZ2V0VGVzdC5jcHAgYi9nYXRla2VlcGVyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHYXRla2VlcGVyVjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YTQ0ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9nYXRla2VlcGVyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHYXRla2VlcGVyVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsNDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJnYXRla2VlcGVyX2hpZGxfaGFsX3Rlc3QiCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8Y21hdGg+CisjaW5jbHVkZSA8c3RyaW5nPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGludHR5cGVzLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9od19hdXRoX3Rva2VuLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ2F0ZWtlZXBlci8xLjAvSUdhdGVrZWVwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dhdGVrZWVwZXIvMS4wL3R5cGVzLmg+CisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmdhdGVrZWVwZXI6OlYxXzA6OklHYXRla2VlcGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z2F0ZWtlZXBlcjo6VjFfMDo6R2F0ZWtlZXBlclJlc3BvbnNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z2F0ZWtlZXBlcjo6VjFfMDo6R2F0ZWtlZXBlclN0YXR1c0NvZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IEdhdGVrZWVwZXJSZXF1ZXN0IHsKKyAgdWludDMyX3QgdWlkOworICB1aW50NjRfdCBjaGFsbGVuZ2U7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IGN1clB3ZEhhbmRsZTsKKyAgaGlkbF92ZWM8dWludDhfdD4gY3VyUHdkOworICBoaWRsX3ZlYzx1aW50OF90PiBuZXdQd2Q7CisgIEdhdGVrZWVwZXJSZXF1ZXN0KCkgOiB1aWQoMCksIGNoYWxsZW5nZSgwKSB7fQorfTsKKworLy8gQVNTRVJUXyogbWFjcm9zIGdlbmVyYXRlIHJldHVybiAidm9pZCIgaW50ZXJuYWxseQorLy8gd2UgaGF2ZSB0byB1c2UgRVhQRUNUXyogaWYgd2UgcmV0dXJuIGFueXRoaW5nIGJ1dCAidm9pZCIKK3N0YXRpYyBjb25zdCBod19hdXRoX3Rva2VuX3QgKnRvQXV0aFRva2VuKEdhdGVrZWVwZXJSZXNwb25zZSAmcnNwKSB7CisgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqYXV0aF90b2tlbiA9CisgICAgICByZWludGVycHJldF9jYXN0PGh3X2F1dGhfdG9rZW5fdCAqPihyc3AuZGF0YS5kYXRhKCkpOworICBjb25zdCBzaXplX3QgYXV0aF90b2tlbl9zaXplID0gcnNwLmRhdGEuc2l6ZSgpOworCisgIEVYUEVDVF9ORShudWxscHRyLCBhdXRoX3Rva2VuKTsKKyAgRVhQRUNUX0VRKHNpemVvZihod19hdXRoX3Rva2VuX3QpLCBhdXRoX3Rva2VuX3NpemUpOworCisgIGlmIChhdXRoX3Rva2VuICE9IG51bGxwdHIgJiYgYXV0aF90b2tlbl9zaXplID49IHNpemVvZigqYXV0aF90b2tlbikpIHsKKyAgICAvLyB0aGVzZSBhcmUgaW4gbmV0d29yayBvcmRlcjogdHJhbnNsYXRlIHRvIGhvc3QKKyAgICB1aW50MzJfdCBhdXRoX3R5cGUgPSBudG9obChhdXRoX3Rva2VuLT5hdXRoZW50aWNhdG9yX3R5cGUpOworICAgIHVpbnQ2NF90IGF1dGhfdHN0YW1wID0gbnRvaHEoYXV0aF90b2tlbi0+dGltZXN0YW1wKTsKKworICAgIEVYUEVDVF9FUShIV19BVVRIX1BBU1NXT1JELCBhdXRoX3R5cGUpOworICAgIEVYUEVDVF9ORShVSU5UNjRfQyh+MCksIGF1dGhfdHN0YW1wKTsKKyAgICBFWFBFQ1RfRVEoSFdfQVVUSF9UT0tFTl9WRVJTSU9OLCBhdXRoX3Rva2VuLT52ZXJzaW9uKTsKKyAgICAvLyAgICAgICAgRVhQRUNUX05FKFVJTlQ2NF9DKDApLCBhdXRoX3Rva2VuLT5hdXRoZW50aWNhdG9yX2lkKTsKKyAgICBBTE9HSSgiQXV0aGVudGljYXRvciBJRDogJTAxNiIgUFJJWDY0LCBhdXRoX3Rva2VuLT5hdXRoZW50aWNhdG9yX2lkKTsKKyAgICBFWFBFQ1RfTkUoVUlOVDMyX0MoMCksIGF1dGhfdG9rZW4tPnVzZXJfaWQpOworICB9CisgIHJldHVybiBhdXRoX3Rva2VuOworfQorCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBHYXRla2VlcGVyIEhJREwgSEFMLgorY2xhc3MgR2F0ZWtlZXBlckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwcm90ZWN0ZWQ6CisgIHZvaWQgc2V0VWlkKHVpbnQzMl90IHVpZCkgeyB1aWRfID0gdWlkOyB9CisKKyAgdm9pZCBkb0Vucm9sbChHYXRla2VlcGVyUmVxdWVzdCAmcmVxLCBHYXRla2VlcGVyUmVzcG9uc2UgJnJzcCkgeworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICBhdXRvIHJldCA9IGdhdGVrZWVwZXJfLT5lbnJvbGwoCisgICAgICAgICAgdWlkXywgcmVxLmN1clB3ZEhhbmRsZSwgcmVxLmN1clB3ZCwgcmVxLm5ld1B3ZCwKKyAgICAgICAgICBbJnJzcF0oY29uc3QgR2F0ZWtlZXBlclJlc3BvbnNlICZjYlJzcCkgeyByc3AgPSBjYlJzcDsgfSk7CisgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgIGlmIChyc3AuY29kZSAhPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVCkgYnJlYWs7CisgICAgICBBTE9HSSgiJXM6IGdvdCByZXRyeSBjb2RlOyByZXRyeWluZyBpbiAxIHNlYyIsIF9fZnVuY19fKTsKKyAgICAgIHNsZWVwKDEpOworICAgIH0KKyAgfQorCisgIHZvaWQgZG9WZXJpZnkoR2F0ZWtlZXBlclJlcXVlc3QgJnJlcSwgR2F0ZWtlZXBlclJlc3BvbnNlICZyc3ApIHsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgYXV0byByZXQgPSBnYXRla2VlcGVyXy0+dmVyaWZ5KAorICAgICAgICAgIHVpZF8sIHJlcS5jaGFsbGVuZ2UsIHJlcS5jdXJQd2RIYW5kbGUsIHJlcS5uZXdQd2QsCisgICAgICAgICAgWyZyc3BdKGNvbnN0IEdhdGVrZWVwZXJSZXNwb25zZSAmY2JfcnNwKSB7IHJzcCA9IGNiX3JzcDsgfSk7CisgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgIGlmIChyc3AuY29kZSAhPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVCkgYnJlYWs7CisgICAgICBBTE9HSSgiJXM6IGdvdCByZXRyeSBjb2RlOyByZXRyeWluZyBpbiAxIHNlYyIsIF9fZnVuY19fKTsKKyAgICAgIHNsZWVwKDEpOworICAgIH0KKyAgfQorCisgIHZvaWQgZG9EZWxldGVVc2VyKEdhdGVrZWVwZXJSZXNwb25zZSAmcnNwKSB7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgIGF1dG8gcmV0ID0gZ2F0ZWtlZXBlcl8tPmRlbGV0ZVVzZXIoCisgICAgICAgICAgdWlkXywgWyZyc3BdKGNvbnN0IEdhdGVrZWVwZXJSZXNwb25zZSAmY2JfcnNwKSB7IHJzcCA9IGNiX3JzcDsgfSk7CisgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICAgIGlmIChyc3AuY29kZSAhPSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfUkVUUllfVElNRU9VVCkgYnJlYWs7CisgICAgICBBTE9HSSgiJXM6IGdvdCByZXRyeSBjb2RlOyByZXRyeWluZyBpbiAxIHNlYyIsIF9fZnVuY19fKTsKKyAgICAgIHNsZWVwKDEpOworICAgIH0KKyAgfQorCisgIHZvaWQgZG9EZWxldGVBbGxVc2VycyhHYXRla2VlcGVyUmVzcG9uc2UgJnJzcCkgeworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICBhdXRvIHJldCA9IGdhdGVrZWVwZXJfLT5kZWxldGVBbGxVc2VycygKKyAgICAgICAgICBbJnJzcF0oY29uc3QgR2F0ZWtlZXBlclJlc3BvbnNlICZjYl9yc3ApIHsgcnNwID0gY2JfcnNwOyB9KTsKKyAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgICAgaWYgKHJzcC5jb2RlICE9IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9SRVRSWV9USU1FT1VUKSBicmVhazsKKyAgICAgIEFMT0dJKCIlczogZ290IHJldHJ5IGNvZGU7IHJldHJ5aW5nIGluIDEgc2VjIiwgX19mdW5jX18pOworICAgICAgc2xlZXAoMSk7CisgICAgfQorICB9CisKKyAgdm9pZCBnZW5lcmF0ZVBhc3N3b3JkKGhpZGxfdmVjPHVpbnQ4X3Q+ICZwYXNzd29yZCwgdWludDhfdCBzZWVkKSB7CisgICAgcGFzc3dvcmQucmVzaXplKDE2KTsKKyAgICBtZW1zZXQocGFzc3dvcmQuZGF0YSgpLCBzZWVkLCBwYXNzd29yZC5zaXplKCkpOworICB9CisKKyAgdm9pZCBjaGVja0Vucm9sbChHYXRla2VlcGVyUmVzcG9uc2UgJnJzcCwgYm9vbCBleHBlY3RTdWNjZXNzKSB7CisgICAgaWYgKGV4cGVjdFN1Y2Nlc3MpIHsKKyAgICAgIEVYUEVDVF9FUShHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LLCByc3AuY29kZSk7CisgICAgICBFWFBFQ1RfTkUobnVsbHB0ciwgcnNwLmRhdGEuZGF0YSgpKTsKKyAgICAgIEVYUEVDVF9HVChyc3AuZGF0YS5zaXplKCksIFVJTlQzMl9DKDApKTsKKyAgICB9IGVsc2UgeworICAgICAgRVhQRUNUX0VRKEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkUsIHJzcC5jb2RlKTsKKyAgICAgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgcnNwLmRhdGEuc2l6ZSgpKTsKKyAgICB9CisgIH0KKworICB2b2lkIGNoZWNrVmVyaWZ5KEdhdGVrZWVwZXJSZXNwb25zZSAmcnNwLCB1aW50NjRfdCBjaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgYm9vbCBleHBlY3RTdWNjZXNzKSB7CisgICAgaWYgKGV4cGVjdFN1Y2Nlc3MpIHsKKyAgICAgIEVYUEVDVF9HRShyc3AuY29kZSwgR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSyk7CisgICAgICBFWFBFQ1RfTEUocnNwLmNvZGUsIEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfUkVFTlJPTEwpOworCisgICAgICBjb25zdCBod19hdXRoX3Rva2VuX3QgKmF1dGhfdG9rZW4gPSB0b0F1dGhUb2tlbihyc3ApOworICAgICAgQVNTRVJUX05FKG51bGxwdHIsIGF1dGhfdG9rZW4pOworICAgICAgRVhQRUNUX0VRKGNoYWxsZW5nZSwgYXV0aF90b2tlbi0+Y2hhbGxlbmdlKTsKKyAgICB9IGVsc2UgeworICAgICAgRVhQRUNUX0VRKEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkUsIHJzcC5jb2RlKTsKKyAgICAgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgcnNwLmRhdGEuc2l6ZSgpKTsKKyAgICB9CisgIH0KKworICB2b2lkIGVucm9sbE5ld1Bhc3N3b3JkKGhpZGxfdmVjPHVpbnQ4X3Q+ICZwYXNzd29yZCwgR2F0ZWtlZXBlclJlc3BvbnNlICZyc3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBleHBlY3RTdWNjZXNzKSB7CisgICAgR2F0ZWtlZXBlclJlcXVlc3QgcmVxOworICAgIHJlcS5uZXdQd2Quc2V0VG9FeHRlcm5hbChwYXNzd29yZC5kYXRhKCksIHBhc3N3b3JkLnNpemUoKSk7CisgICAgZG9FbnJvbGwocmVxLCByc3ApOworICAgIGNoZWNrRW5yb2xsKHJzcCwgZXhwZWN0U3VjY2Vzcyk7CisgIH0KKworICB2b2lkIHZlcmlmeVBhc3N3b3JkKGhpZGxfdmVjPHVpbnQ4X3Q+ICZwYXNzd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiAmcGFzc3dvcmRIYW5kbGUsIHVpbnQ2NF90IGNoYWxsZW5nZSwKKyAgICAgICAgICAgICAgICAgICAgICBHYXRla2VlcGVyUmVzcG9uc2UgJnZlcmlmeVJzcCwgYm9vbCBleHBlY3RTdWNjZXNzKSB7CisgICAgR2F0ZWtlZXBlclJlcXVlc3QgdmVyaWZ5UmVxOworCisgICAgLy8gYnVpbGQgdmVyaWZ5IHJlcXVlc3QgZm9yIHRoZSBzYW1lIHBhc3N3b3JkICh3ZSB3YW50IGl0IHRvIHN1Y2NlZWQpCisgICAgdmVyaWZ5UmVxLm5ld1B3ZCA9IHBhc3N3b3JkOworICAgIC8vIHVzZSBlbnJvbGxlZCBwYXNzd29yZCBoYW5kbGUgd2UndmUgZ290CisgICAgdmVyaWZ5UmVxLmN1clB3ZEhhbmRsZSA9IHBhc3N3b3JkSGFuZGxlOworICAgIHZlcmlmeVJlcS5jaGFsbGVuZ2UgPSBjaGFsbGVuZ2U7CisgICAgZG9WZXJpZnkodmVyaWZ5UmVxLCB2ZXJpZnlSc3ApOworICAgIGNoZWNrVmVyaWZ5KHZlcmlmeVJzcCwgY2hhbGxlbmdlLCBleHBlY3RTdWNjZXNzKTsKKyAgfQorCisgcHJvdGVjdGVkOgorICBzcDxJR2F0ZWtlZXBlcj4gZ2F0ZWtlZXBlcl87CisgIHVpbnQzMl90IHVpZF87CisKKyBwdWJsaWM6CisgIEdhdGVrZWVwZXJIaWRsVGVzdCgpIDogdWlkXygwKSB7fQorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgR2F0ZWtlZXBlclJlc3BvbnNlIHJzcDsKKyAgICBnYXRla2VlcGVyXyA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElHYXRla2VlcGVyPigpOworICAgIEFTU0VSVF9ORShudWxscHRyLCBnYXRla2VlcGVyXy5nZXQoKSk7CisgICAgZG9EZWxldGVBbGxVc2Vycyhyc3ApOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgIEdhdGVrZWVwZXJSZXNwb25zZSByc3A7CisgICAgZG9EZWxldGVBbGxVc2Vycyhyc3ApOworICB9Cit9OworCisvKioKKyAqIEVuc3VyZSB3ZSBjYW4gZW5yb2xsIG5ldyBwYXNzd29yZAorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBFbnJvbGxTdWNjZXNzKSB7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBHYXRla2VlcGVyUmVzcG9uc2UgcnNwOworICBBTE9HSSgiVGVzdGluZyBFbnJvbGwgKGV4cGVjdGVkIHN1Y2Nlc3MpIik7CisgIGdlbmVyYXRlUGFzc3dvcmQocGFzc3dvcmQsIDApOworICBlbnJvbGxOZXdQYXNzd29yZChwYXNzd29yZCwgcnNwLCB0cnVlKTsKKyAgQUxPR0koIlRlc3RpbmcgRW5yb2xsIGRvbmUiKTsKK30KKworLyoqCisgKiBFbnN1cmUgd2UgY2FuIG5vdCBlbnJvbGwgZW1wdHkgcGFzc3dvcmQKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgRW5yb2xsTm9QYXNzd29yZCkgeworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHJzcDsKKyAgQUxPR0koIlRlc3RpbmcgRW5yb2xsIChleHBlY3RlZCBmYWlsdXJlKSIpOworICBlbnJvbGxOZXdQYXNzd29yZChwYXNzd29yZCwgcnNwLCBmYWxzZSk7CisgIEFMT0dJKCJUZXN0aW5nIEVucm9sbCBkb25lIik7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBzdWNjZXNzZnVsbHkgdmVyaWZ5IHByZXZpb3VzbHkgZW5yb2xsZWQgcGFzc3dvcmQKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgVmVyaWZ5U3VjY2VzcykgeworICBHYXRla2VlcGVyUmVzcG9uc2UgZW5yb2xsUnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgdmVyaWZ5UnNwOworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKworICBBTE9HSSgiVGVzdGluZyBFbnJvbGwrVmVyaWZ5IChleHBlY3RlZCBzdWNjZXNzKSIpOworICBnZW5lcmF0ZVBhc3N3b3JkKHBhc3N3b3JkLCAwKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcCwgdHJ1ZSk7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMSwgdmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIlRlc3RpbmcgRW5yb2xsK1ZlcmlmeSBkb25lIik7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBzZWN1cmVseSB1cGRhdGUgcGFzc3dvcmQgKGtlZXAgdGhlIHNhbWUKKyAqIHNlY3VyZSB1c2VyX2lkKSBpZiB3ZSBwcm92ZSB3ZSBrbm93IG9sZCBwYXNzd29yZAorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBUcnVzdGVkUmVlbnJvbGwpIHsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlcXVlc3QgcmVlbnJvbGxSZXE7CisgIEdhdGVrZWVwZXJSZXNwb25zZSByZWVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHJlZW5yb2xsVmVyaWZ5UnNwOworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKyAgaGlkbF92ZWM8dWludDhfdD4gbmV3UGFzc3dvcmQ7CisKKyAgZ2VuZXJhdGVQYXNzd29yZChwYXNzd29yZCwgMCk7CisKKyAgQUxPR0koIlRlc3RpbmcgVHJ1c3RlZCBSZWVucm9sbCAoZXhwZWN0ZWQgc3VjY2VzcykiKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcCwgdHJ1ZSk7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMCwgdmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIlByaW1hcnkgRW5yb2xsK1ZlcmlmeSBkb25lIik7CisKKyAgZ2VuZXJhdGVQYXNzd29yZChuZXdQYXNzd29yZCwgMSk7CisgIHJlZW5yb2xsUmVxLm5ld1B3ZC5zZXRUb0V4dGVybmFsKG5ld1Bhc3N3b3JkLmRhdGEoKSwgbmV3UGFzc3dvcmQuc2l6ZSgpKTsKKyAgcmVlbnJvbGxSZXEuY3VyUHdkLnNldFRvRXh0ZXJuYWwocGFzc3dvcmQuZGF0YSgpLCBwYXNzd29yZC5zaXplKCkpOworICByZWVucm9sbFJlcS5jdXJQd2RIYW5kbGUuc2V0VG9FeHRlcm5hbChlbnJvbGxSc3AuZGF0YS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVucm9sbFJzcC5kYXRhLnNpemUoKSk7CisKKyAgZG9FbnJvbGwocmVlbnJvbGxSZXEsIHJlZW5yb2xsUnNwKTsKKyAgY2hlY2tFbnJvbGwocmVlbnJvbGxSc3AsIHRydWUpOworICB2ZXJpZnlQYXNzd29yZChuZXdQYXNzd29yZCwgcmVlbnJvbGxSc3AuZGF0YSwgMCwgcmVlbnJvbGxWZXJpZnlSc3AsIHRydWUpOworICBBTE9HSSgiVHJ1c3RlZCBSZUVucm9sbCtWZXJpZnkgZG9uZSIpOworCisgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqZmlyc3QgPSB0b0F1dGhUb2tlbih2ZXJpZnlSc3ApOworICBjb25zdCBod19hdXRoX3Rva2VuX3QgKnNlY29uZCA9IHRvQXV0aFRva2VuKHJlZW5yb2xsVmVyaWZ5UnNwKTsKKyAgaWYgKGZpcnN0ICE9IG51bGxwdHIgJiYgc2Vjb25kICE9IG51bGxwdHIpIHsKKyAgICBFWFBFQ1RfRVEoZmlyc3QtPnVzZXJfaWQsIHNlY29uZC0+dXNlcl9pZCk7CisgIH0KKyAgQUxPR0koIlRlc3RpbmcgVHJ1c3RlZCBSZWVucm9sbCBkb25lIik7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiB1cGRhdGUgcGFzc3dvcmQgKGFuZCBnZXQgbmV3CisgKiBzZWN1cmUgdXNlcl9pZCkgaWYgd2UgZG9uJ3Qga25vdyBvbGQgcGFzc3dvcmQKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgVW50cnVzdGVkUmVlbnJvbGwpIHsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHJlZW5yb2xsUnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgdmVyaWZ5UnNwOworICBHYXRla2VlcGVyUmVzcG9uc2UgcmVlbnJvbGxWZXJpZnlSc3A7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBoaWRsX3ZlYzx1aW50OF90PiBuZXdQYXNzd29yZDsKKworICBBTE9HSSgiVGVzdGluZyBVbnRydXN0ZWQgUmVlbnJvbGwgKGV4cGVjdGVkIHN1Y2Nlc3MpIik7CisgIGdlbmVyYXRlUGFzc3dvcmQocGFzc3dvcmQsIDApOworICBlbnJvbGxOZXdQYXNzd29yZChwYXNzd29yZCwgZW5yb2xsUnNwLCB0cnVlKTsKKyAgdmVyaWZ5UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcC5kYXRhLCAwLCB2ZXJpZnlSc3AsIHRydWUpOworICBBTE9HSSgiUHJpbWFyeSBFbnJvbGwrVmVyaWZ5IGRvbmUiKTsKKworICBnZW5lcmF0ZVBhc3N3b3JkKG5ld1Bhc3N3b3JkLCAxKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQobmV3UGFzc3dvcmQsIHJlZW5yb2xsUnNwLCB0cnVlKTsKKyAgdmVyaWZ5UGFzc3dvcmQobmV3UGFzc3dvcmQsIHJlZW5yb2xsUnNwLmRhdGEsIDAsIHJlZW5yb2xsVmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIlVudHJ1c3RlZCBSZUVucm9sbCtWZXJpZnkgZG9uZSIpOworCisgIGNvbnN0IGh3X2F1dGhfdG9rZW5fdCAqZmlyc3QgPSB0b0F1dGhUb2tlbih2ZXJpZnlSc3ApOworICBjb25zdCBod19hdXRoX3Rva2VuX3QgKnNlY29uZCA9IHRvQXV0aFRva2VuKHJlZW5yb2xsVmVyaWZ5UnNwKTsKKyAgaWYgKGZpcnN0ICE9IG51bGxwdHIgJiYgc2Vjb25kICE9IG51bGxwdHIpIHsKKyAgICBFWFBFQ1RfTkUoZmlyc3QtPnVzZXJfaWQsIHNlY29uZC0+dXNlcl9pZCk7CisgIH0KKyAgQUxPR0koIlRlc3RpbmcgVW50cnVzdGVkIFJlZW5yb2xsIGRvbmUiKTsKK30KKworLyoqCisgKiBFbnN1cmUgd2UgZG9udCBnZXQgc3VjY2Vzc2Z1bCB2ZXJpZnkgd2l0aCBpbnZhbGlkIGRhdGEKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgVmVyaWZ5Tm9EYXRhKSB7CisgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZEhhbmRsZTsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKworICBBTE9HSSgiVGVzdGluZyBWZXJpZnkgKGV4cGVjdGVkIGZhaWx1cmUpIik7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBwYXNzd29yZEhhbmRsZSwgMCwgdmVyaWZ5UnNwLCBmYWxzZSk7CisgIEVYUEVDVF9FUShHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfR0VORVJBTF9GQUlMVVJFLCB2ZXJpZnlSc3AuY29kZSk7CisgIEFMT0dJKCJUZXN0aW5nIFZlcmlmeSBkb25lIik7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBub3QgdmVyaWZ5IHBhc3N3b3JkIGFmdGVyIHdlIGVucm9sbGVkIGl0IGFuZCB0aGVuIGRlbGV0ZWQgdXNlcgorICovCitURVNUX0YoR2F0ZWtlZXBlckhpZGxUZXN0LCBEZWxldGVVc2VyVGVzdCkgeworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGRlbFJzcDsKKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlVXNlciAoZXhwZWN0ZWQgc3VjY2VzcykiKTsKKyAgc2V0VWlkKDEwMDAxKTsKKyAgZ2VuZXJhdGVQYXNzd29yZChwYXNzd29yZCwgMCk7CisgIGVucm9sbE5ld1Bhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AsIHRydWUpOworICB2ZXJpZnlQYXNzd29yZChwYXNzd29yZCwgZW5yb2xsUnNwLmRhdGEsIDAsIHZlcmlmeVJzcCwgdHJ1ZSk7CisgIEFMT0dJKCJFbnJvbGwrVmVyaWZ5IGRvbmUiKTsKKyAgZG9EZWxldGVVc2VyKGRlbFJzcCk7CisgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgZGVsUnNwLmRhdGEuc2l6ZSgpKTsKKyAgRVhQRUNUX1RSVUUoZGVsUnNwLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX05PVF9JTVBMRU1FTlRFRCB8fAorICAgICAgICAgICAgICBkZWxSc3AuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LKTsKKyAgQUxPR0koIkRlbGV0ZVVzZXIgZG9uZSIpOworICBpZiAoZGVsUnNwLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OlNUQVRVU19PSykgeworICAgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMCwgdmVyaWZ5UnNwLCBmYWxzZSk7CisgICAgRVhQRUNUX0VRKEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpFUlJPUl9HRU5FUkFMX0ZBSUxVUkUsIHZlcmlmeVJzcC5jb2RlKTsKKyAgICBBTE9HSSgiVmVyaWZ5IGFmdGVyIERlbGV0ZSBkb25lIChtdXN0IGZhaWwpIik7CisgIH0KKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlVXNlciBkb25lOiByc3A9JSIgUFJJaTMyLCBkZWxSc3AuY29kZSk7Cit9CisKKy8qKgorICogRW5zdXJlIHdlIGNhbiBub3QgZGVsZXRlIGEgdXNlciB0aGF0IGRvZXMgbm90IGV4aXN0CisgKi8KK1RFU1RfRihHYXRla2VlcGVySGlkbFRlc3QsIERlbGV0ZUludmFsaWRVc2VyVGVzdCkgeworICBoaWRsX3ZlYzx1aW50OF90PiBwYXNzd29yZDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGVucm9sbFJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGRlbFJzcDE7CisgIEdhdGVrZWVwZXJSZXNwb25zZSBkZWxSc3AyOworICBBTE9HSSgiVGVzdGluZyBkZWxldGVVc2VyIChleHBlY3RlZCBmYWlsdXJlKSIpOworICBzZXRVaWQoMTAwMDIpOworICBnZW5lcmF0ZVBhc3N3b3JkKHBhc3N3b3JkLCAwKTsKKyAgZW5yb2xsTmV3UGFzc3dvcmQocGFzc3dvcmQsIGVucm9sbFJzcCwgdHJ1ZSk7CisgIHZlcmlmeVBhc3N3b3JkKHBhc3N3b3JkLCBlbnJvbGxSc3AuZGF0YSwgMCwgdmVyaWZ5UnNwLCB0cnVlKTsKKyAgQUxPR0koIkVucm9sbCtWZXJpZnkgZG9uZSIpOworCisgIC8vIERlbGV0ZSB0aGUgdXNlcgorICBkb0RlbGV0ZVVzZXIoZGVsUnNwMSk7CisgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgZGVsUnNwMS5kYXRhLnNpemUoKSk7CisgIEVYUEVDVF9UUlVFKGRlbFJzcDEuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfTk9UX0lNUExFTUVOVEVEIHx8CisgICAgICAgICAgICAgIGRlbFJzcDEuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LKTsKKworICAvLyBEZWxldGUgdGhlIHVzZXIgYWdhaW4KKyAgZG9EZWxldGVVc2VyKGRlbFJzcDIpOworICBFWFBFQ1RfRVEoVUlOVDMyX0MoMCksIGRlbFJzcDIuZGF0YS5zaXplKCkpOworICBFWFBFQ1RfVFJVRShkZWxSc3AyLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX05PVF9JTVBMRU1FTlRFRCB8fAorICAgICAgICAgICAgICBkZWxSc3AyLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX0dFTkVSQUxfRkFJTFVSRSk7CisgIEFMT0dJKCJEZWxldGVVc2VyIGRvbmUiKTsKKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlVXNlciBkb25lOiByc3A9JSIgUFJJaTMyLCBkZWxSc3AyLmNvZGUpOworfQorCisvKioKKyAqIEVuc3VyZSB3ZSBjYW4gbm90IHZlcmlmeSBwYXNzd29yZHMgYWZ0ZXIgd2UgZW5yb2xsZWQgdGhlbSBhbmQgdGhlbiBkZWxldGVkCisgKiBhbGwgdXNlcnMKKyAqLworVEVTVF9GKEdhdGVrZWVwZXJIaWRsVGVzdCwgRGVsZXRlQWxsVXNlcnNUZXN0KSB7CisgIHN0cnVjdCBVc2VyRGF0YSB7CisgICAgdWludDMyX3QgdXNlcklkOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHBhc3N3b3JkOworICAgIEdhdGVrZWVwZXJSZXNwb25zZSBlbnJvbGxSc3A7CisgICAgR2F0ZWtlZXBlclJlc3BvbnNlIHZlcmlmeVJzcDsKKyAgICBVc2VyRGF0YShpbnQgaWQpIHsgdXNlcklkID0gaWQ7IH0KKyAgfSB1c2Vyc1szXXsxMDAwMSwgMTAwMDIsIDEwMDAzfTsKKyAgR2F0ZWtlZXBlclJlc3BvbnNlIGRlbEFsbFJzcDsKKyAgQUxPR0koIlRlc3RpbmcgZGVsZXRlQWxsVXNlcnMgKGV4cGVjdGVkIHN1Y2Nlc3MpIik7CisKKyAgLy8gZW5yb2xsIG11bHRpcGxlIHVzZXJzCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHVzZXJzKSAvIHNpemVvZih1c2Vyc1swXSk7ICsraSkgeworICAgIHNldFVpZCh1c2Vyc1tpXS51c2VySWQpOworICAgIGdlbmVyYXRlUGFzc3dvcmQodXNlcnNbaV0ucGFzc3dvcmQsIChpICUgMjU1KSArIDEpOworICAgIGVucm9sbE5ld1Bhc3N3b3JkKHVzZXJzW2ldLnBhc3N3b3JkLCB1c2Vyc1tpXS5lbnJvbGxSc3AsIHRydWUpOworICB9CisgIEFMT0dJKCJNdWx0aXBsZSB1c2VycyBlbnJvbGxlZCIpOworCisgIC8vIHZlcmlmeSBtdWx0aXBsZSB1c2VycworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemVvZih1c2VycykgLyBzaXplb2YodXNlcnNbMF0pOyArK2kpIHsKKyAgICBzZXRVaWQodXNlcnNbaV0udXNlcklkKTsKKyAgICB2ZXJpZnlQYXNzd29yZCh1c2Vyc1tpXS5wYXNzd29yZCwgdXNlcnNbaV0uZW5yb2xsUnNwLmRhdGEsIDAsCisgICAgICAgICAgICAgICAgICAgdXNlcnNbaV0udmVyaWZ5UnNwLCB0cnVlKTsKKyAgfQorICBBTE9HSSgiTXVsdGlwbGUgdXNlcnMgdmVyaWZpZWQiKTsKKworICBkb0RlbGV0ZUFsbFVzZXJzKGRlbEFsbFJzcCk7CisgIEVYUEVDVF9FUShVSU5UMzJfQygwKSwgZGVsQWxsUnNwLmRhdGEuc2l6ZSgpKTsKKyAgRVhQRUNUX1RSVUUoZGVsQWxsUnNwLmNvZGUgPT0gR2F0ZWtlZXBlclN0YXR1c0NvZGU6OkVSUk9SX05PVF9JTVBMRU1FTlRFRCB8fAorICAgICAgICAgICAgICBkZWxBbGxSc3AuY29kZSA9PSBHYXRla2VlcGVyU3RhdHVzQ29kZTo6U1RBVFVTX09LKTsKKyAgQUxPR0koIkFsbCB1c2VycyBkZWxldGVkIik7CisKKyAgaWYgKGRlbEFsbFJzcC5jb2RlID09IEdhdGVrZWVwZXJTdGF0dXNDb2RlOjpTVEFUVVNfT0spIHsKKyAgICAvLyB2ZXJpZnkgbXVsdGlwbGUgdXNlcnMgYWZ0ZXIgdGhleSBhcmUgZGVsZXRlZDsgYWxsIG11c3QgZmFpbAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKHVzZXJzKSAvIHNpemVvZih1c2Vyc1swXSk7ICsraSkgeworICAgICAgc2V0VWlkKHVzZXJzW2ldLnVzZXJJZCk7CisgICAgICB2ZXJpZnlQYXNzd29yZCh1c2Vyc1tpXS5wYXNzd29yZCwgdXNlcnNbaV0uZW5yb2xsUnNwLmRhdGEsIDAsCisgICAgICAgICAgICAgICAgICAgICB1c2Vyc1tpXS52ZXJpZnlSc3AsIGZhbHNlKTsKKyAgICAgIEVYUEVDVF9FUShHYXRla2VlcGVyU3RhdHVzQ29kZTo6RVJST1JfR0VORVJBTF9GQUlMVVJFLAorICAgICAgICAgICAgICAgIHVzZXJzW2ldLnZlcmlmeVJzcC5jb2RlKTsKKyAgICB9CisgICAgQUxPR0koIk11bHRpcGxlIHVzZXJzIHZlcmlmaWVkIGFmdGVyIGRlbGV0ZSAoYWxsIG11c3QgZmFpbCkiKTsKKyAgfQorCisgIEFMT0dJKCJUZXN0aW5nIGRlbGV0ZUFsbFVzZXJzIGRvbmU6IHJzcD0lIiBQUklpMzIsIGRlbEFsbFJzcC5jb2RlKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9nYXRla2VlcGVyL0FuZHJvaWQuYnAgYi9nYXRla2VlcGVyL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNmNzBlYgotLS0gL2Rldi9udWxsCisrKyBiL2dhdGVrZWVwZXIvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9BbmRyb2lkLmJwIGIvZ25zcy8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjk4OGRlCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDE5NiBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklBR25zcy5oYWwiLAorICAgICAgICAiSUFHbnNzQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklBR25zc1JpbC5oYWwiLAorICAgICAgICAiSUFHbnNzUmlsQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzLmhhbCIsCisgICAgICAgICJJR25zc0JhdGNoaW5nLmhhbCIsCisgICAgICAgICJJR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzQ29uZmlndXJhdGlvbi5oYWwiLAorICAgICAgICAiSUduc3NEZWJ1Zy5oYWwiLAorICAgICAgICAiSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbCIsCisgICAgICAgICJJR25zc0dlb2ZlbmNpbmcuaGFsIiwKKyAgICAgICAgIklHbnNzTWVhc3VyZW1lbnQuaGFsIiwKKyAgICAgICAgIklHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwiLAorICAgICAgICAiSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oYWwiLAorICAgICAgICAiSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbCIsCisgICAgICAgICJJR25zc05pLmhhbCIsCisgICAgICAgICJJR25zc05pQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklHbnNzWHRyYS5oYWwiLAorICAgICAgICAiSUduc3NYdHJhQ2FsbGJhY2suaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQUduc3NBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQUduc3NDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9BR25zc1JpbEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9BR25zc1JpbENhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc0JhdGNoaW5nQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NCYXRjaGluZ0NhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzQ29uZmlndXJhdGlvbkFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzRGVidWdBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc0dlb2ZlbmNlQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc0dlb2ZlbmNpbmdBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc01lYXN1cmVtZW50QWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NNZWFzdXJlbWVudENhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0duc3NOYXZpZ2F0aW9uTWVzc2FnZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFja0FsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9HbnNzTmlBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc05pQ2FsbGJhY2tBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc1h0cmFBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvR25zc1h0cmFDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JQUduc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0FHbnNzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3QUduc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdBR25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNBR25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUFHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0FHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdBR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3QUduc3NDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNBR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JQUduc3NSaWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0FHbnNzUmlsLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3QUduc3NSaWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdBR25zc1JpbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNBR25zc1JpbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUFHbnNzUmlsQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0FHbnNzUmlsQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdBR25zc1JpbENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3QUduc3NSaWxDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNBR25zc1JpbENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3MuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NCYXRjaGluZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NCYXRjaGluZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NCYXRjaGluZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzQmF0Y2hpbmcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc0JhdGNoaW5nQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzQmF0Y2hpbmdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NCYXRjaGluZ0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NCYXRjaGluZ0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc0NvbmZpZ3VyYXRpb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NDb25maWd1cmF0aW9uLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc0NvbmZpZ3VyYXRpb24uaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzQ29uZmlndXJhdGlvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzQ29uZmlndXJhdGlvbi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NEZWJ1Zy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc0RlYnVnLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc0RlYnVnLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc0RlYnVnLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NEZWJ1Zy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzR2VvZmVuY2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NHZW9mZW5jZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc0dlb2ZlbmNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc0dlb2ZlbmNlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzR2VvZmVuY2luZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc0dlb2ZlbmNpbmcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzR2VvZmVuY2luZy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NHZW9mZW5jaW5nLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NHZW9mZW5jaW5nLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzTWVhc3VyZW1lbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzTWVhc3VyZW1lbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzTWVhc3VyZW1lbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc01lYXN1cmVtZW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NNZWFzdXJlbWVudENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc01lYXN1cmVtZW50Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc05hdmlnYXRpb25NZXNzYWdlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc05hdmlnYXRpb25NZXNzYWdlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc05hdmlnYXRpb25NZXNzYWdlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JSHdHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JzR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzTmkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NOaS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQm5Id0duc3NOaS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NOaS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzTmkuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzTmlDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUh3R25zc05pQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzTmlDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnBId0duc3NOaUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cc0duc3NOaUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc1h0cmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NYdHJhLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9Cbkh3R25zc1h0cmEuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JwSHdHbnNzWHRyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzWHRyYS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NYdHJhQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lId0duc3NYdHJhQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0JuSHdHbnNzWHRyYUNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9CcEh3R25zc1h0cmFDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvQnNHbnNzWHRyYUNhbGxiYWNrLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvQW5kcm9pZC5tayBiL2duc3MvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIxYjc2NQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxMTAzIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmduc3MtVjEuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzQ29uc3RlbGxhdGlvblR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzQ29uc3RlbGxhdGlvblR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjp0eXBlcy5HbnNzQ29uc3RlbGxhdGlvblR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEduc3NMb2NhdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0duc3NMb2NhdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NMb2NhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR25zc0xvY2F0aW9uRmxhZ3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzTG9jYXRpb25GbGFncy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NMb2NhdGlvbkZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzTWF4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvR25zc01heC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NNYXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3MuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JQUduc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc0NhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NSaWwuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JQUduc3NSaWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zc1JpbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NSaWxDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc1JpbENhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQUduc3NSaWxDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzUmlsQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbENhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zcy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTmkuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NCYXRjaGluZy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQmF0Y2hpbmcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQmF0Y2hpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NCYXRjaGluZ0NhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NDb25maWd1cmF0aW9uLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NDb25maWd1cmF0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQ29uZmlndXJhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDb25maWd1cmF0aW9uLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc0RlYnVnLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NEZWJ1Zy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzRGVidWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzR2VvZmVuY2VDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzR2VvZmVuY2VDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NHZW9mZW5jZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzR2VvZmVuY2luZy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzR2VvZmVuY2luZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0dlb2ZlbmNpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NNZWFzdXJlbWVudC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTWVhc3VyZW1lbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTWVhc3VyZW1lbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NNZWFzdXJlbWVudENhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05hdmlnYXRpb25NZXNzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmkuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05pLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05pCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc05pQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05pQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOaUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzWHRyYS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzWHRyYS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NYdHJhCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzWHRyYUNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NYdHJhQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc1h0cmFDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmduc3MtVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzQ29uc3RlbGxhdGlvblR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzQ29uc3RlbGxhdGlvblR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjp0eXBlcy5HbnNzQ29uc3RlbGxhdGlvblR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEduc3NMb2NhdGlvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0duc3NMb2NhdGlvbi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NMb2NhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoR25zc0xvY2F0aW9uRmxhZ3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9HbnNzTG9jYXRpb25GbGFncy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NMb2NhdGlvbkZsYWdzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChHbnNzTWF4KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvR25zc01heC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OnR5cGVzLkduc3NNYXgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3MuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JQUduc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQUduc3NDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc0NhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NSaWwuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JQUduc3NSaWwuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklBR25zc1JpbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJQUduc3NSaWxDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lBR25zc1JpbENhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JQUduc3NSaWxDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUFHbnNzUmlsQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbENhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zcy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zcy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTmkuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYS5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NCYXRjaGluZy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQmF0Y2hpbmcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQmF0Y2hpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NCYXRjaGluZ0NhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDYWxsYmFjay5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NDb25maWd1cmF0aW9uLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NDb25maWd1cmF0aW9uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc0NvbmZpZ3VyYXRpb24uaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzQ29uZmlndXJhdGlvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDb25maWd1cmF0aW9uLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc0RlYnVnLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NEZWJ1Zy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NEZWJ1Zy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzRGVidWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzR2VvZmVuY2VDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzR2VvZmVuY2VDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NHZW9mZW5jZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzR2VvZmVuY2luZy5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzR2VvZmVuY2luZy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jaW5nLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc0dlb2ZlbmNpbmcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUduc3NNZWFzdXJlbWVudC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTWVhc3VyZW1lbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA6OklHbnNzTWVhc3VyZW1lbnQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NNZWFzdXJlbWVudENhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50Q2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05hdmlnYXRpb25NZXNzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzTmkuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05pLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NOaUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc05pCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJR25zc05pQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2duc3MvVjFfMC9JR25zc05pQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NOaUNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzWHRyYS5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0lHbnNzWHRyYS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmFDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDo6SUduc3NYdHJhCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElHbnNzWHRyYUNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9nbnNzL1YxXzAvSUduc3NYdHJhQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lHbnNzWHRyYUNhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOjpJR25zc1h0cmFDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5nbnNzLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvZ25zcy9WMV8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JQUduc3MuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUFHbnNzUmlsLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lBR25zc1JpbENhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQmF0Y2hpbmcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NCYXRjaGluZ0NhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NDb25maWd1cmF0aW9uLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzRGVidWcuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzR2VvZmVuY2luZy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc01lYXN1cmVtZW50LmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc05pLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lHbnNzTmlDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JR25zc1h0cmEuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUduc3NYdHJhQ2FsbGJhY2suaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAKKworJChHRU4pOgorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKyMgQXZvaWQgZGVwZW5kZW5jeSBjeWNsZSBvZiBmcmFtZXdvcmsuamFyIC0+IHRoaXMtbGlicmFyeSAtPiBmcmFtZXdvcmsuamFyCitMT0NBTF9OT19TVEFOREFSRF9MSUJSQVJJRVMgOj0gdHJ1ZQorTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gY29yZS1vagorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lBR25zcy5oYWwgYi9nbnNzLzEuMC9JQUduc3MuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiMGY2MDYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JQUduc3MuaGFsCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJQUduc3NDYWxsYmFjazsKKworLyoqCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEFHTlNTIHN1cHBvcnQuCisgKi8KK2ludGVyZmFjZSBJQUduc3MgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBUE5fSVBfIikKKyAgICBlbnVtIEFwbklwVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBJTlZBTElEICA9IDAsCisgICAgICAgIElQVjQgICAgID0gMSwKKyAgICAgICAgSVBWNiAgICAgPSAyLAorICAgICAgICBJUFY0VjYgICA9IDMKKyAgICB9OworCisgICAgLyoqCisgICAgICogT3BlbnMgdGhlIEFHTlNTIGludGVyZmFjZSBhbmQgcHJvdmlkZXMgdGhlIGNhbGxiYWNrIHJvdXRpbmVzIHRvIHRoZQorICAgICAqIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIEhhbmRsZSB0byB0aGUgQUdOU1Mgc3RhdHVzIGNhbGxiYWNrIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBzZXRDYWxsYmFjayhJQUduc3NDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBOb3RpZmllcyB0aGF0IHRoZSBBR05TUyBkYXRhIGNvbm5lY3Rpb24gaGFzIGJlZW4gY2xvc2VkLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqLworICAgIGRhdGFDb25uQ2xvc2VkKCkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdGhhdCBhIGRhdGEgY29ubmVjdGlvbiBpcyBub3QgYXZhaWxhYmxlIGZvciBBR05TUy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBkYXRhQ29ubkZhaWxlZCgpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIGhvc3RuYW1lIGFuZCBwb3J0IGZvciB0aGUgQUdOU1Mgc2VydmVyLgorICAgICAqCisgICAgICogQHBhcmFtIHR5cGUgU3BlY2lmaWVzIGlmIFNVUEwgb3IgQzJLLgorICAgICAqIEBwYXJhbSBob3N0bmFtZSBIb3N0bmFtZSBvZiB0aGUgQUdOU1Mgc2VydmVyLgorICAgICAqIEBwYXJhbSBwb3J0IFBvcnQgbnVtYmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VydmVyLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgdGhlIG9wZXJhdGlvbiBpcyBzdWNjZXNzZnVsLgorICAgICAqLworICAgIHNldFNlcnZlcihBR25zc1R5cGUgdHlwZSwgc3RyaW5nIGhvc3RuYW1lLCBpbnQzMl90IHBvcnQpCisgICAgICAgIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoYXQgYSBkYXRhIGNvbm5lY3Rpb24gaXMgYXZhaWxhYmxlIGFuZCBzZXRzIHRoZSBuYW1lIG9mIHRoZQorICAgICAqIEFQTiwgYW5kIGl0cyBJUCB0eXBlLCB0byBiZSB1c2VkIGZvciBTVVBMIGNvbm5lY3Rpb25zLgorICAgICAqCisgICAgICogQHBhcmFtIGFwbiBBY2Nlc3MgUG9pbnQgTmFtZShmb2xsb3dzIHJlZ3VsYXIgQVBOIG5hbWluZyBjb252ZW50aW9uKS4KKyAgICAgKiBAcGFyYW0gYXBuSXBUeXBlIFNwZWNpZmllcyBpZiBTVVBMIG9yIEMySy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBkYXRhQ29ubk9wZW4oc3RyaW5nIGFwbiwgQXBuSXBUeXBlIGFwbklwVHlwZSkKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lBR25zc0NhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lBR25zc0NhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWYxNjg5Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUFHbnNzQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBDYWxsYmFjayBzdHJ1Y3R1cmUgZm9yIHRoZSBBR05TUyBpbnRlcmZhY2UuICovCitpbnRlcmZhY2UgSUFHbnNzQ2FsbGJhY2sgeworICAgIC8qKiBBR05TUyB0eXBlICoqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTXyIpCisgICAgZW51bSBBR25zc1R5cGUgOiB1aW50OF90IHsKKyAgICAgICAgVFlQRV9TVVBMICAgICAgICAgPSAxLAorICAgICAgICBUWVBFX0MySyAgICAgICAgICA9IDIKKyAgICB9OworCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdOU1NfIikKKyAgICBlbnVtIEFHbnNzU3RhdHVzVmFsdWUgOiB1aW50OF90IHsKKyAgICAgICAgLyoqIEdOU1MgcmVxdWVzdHMgZGF0YSBjb25uZWN0aW9uIGZvciBBR05TUy4gKi8KKyAgICAgICAgUkVRVUVTVF9BR05TU19EQVRBX0NPTk4gID0gMSwKKyAgICAgICAgLyoqIEdOU1MgcmVsZWFzZXMgdGhlIEFHTlNTIGRhdGEgY29ubmVjdGlvbi4gKi8KKyAgICAgICAgUkVMRUFTRV9BR05TU19EQVRBX0NPTk4gID0gMiwKKyAgICAgICAgLyoqIEFHTlNTIGRhdGEgY29ubmVjdGlvbiBpbml0aWF0ZWQgKi8KKyAgICAgICAgQUdOU1NfREFUQV9DT05ORUNURUQgICAgID0gMywKKyAgICAgICAgLyoqIEFHTlNTIGRhdGEgY29ubmVjdGlvbiBjb21wbGV0ZWQgKi8KKyAgICAgICAgQUdOU1NfREFUQV9DT05OX0RPTkUgICAgID0gNCwKKyAgICAgICAgLyoqIEFHTlNTIGRhdGEgY29ubmVjdGlvbiBmYWlsZWQgKi8KKyAgICAgICAgQUdOU1NfREFUQV9DT05OX0ZBSUxFRCAgID0gNQorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIHRoZSBzdGF0dXMgb2YgQUdOU1MgYXVnbWVudGVkIHRvIHN1cHBvcnQgSVB2NC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTXyIpCisgICAgc3RydWN0IEFHbnNzU3RhdHVzSXBWNCB7CisgICAgICAgIEFHbnNzVHlwZSB0eXBlOworICAgICAgICBBR25zc1N0YXR1c1ZhbHVlIHN0YXR1czsKKyAgICAgICAgLyoqCisgICAgICAgICAqIDMyLWJpdCBJUHY0IGFkZHJlc3MuCisgICAgICAgICAqLworICAgICAgICB1aW50MzJfdCBpcFY0QWRkcjsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyB0aGUgc3RhdHVzIG9mIEFHTlNTIGF1Z21lbnRlZCB0byBzdXBwb3J0IElQdjYuCisgICAgICovCisgICAgc3RydWN0IEFHbnNzU3RhdHVzSXBWNiB7CisgICAgICAgIEFHbnNzVHlwZSB0eXBlOworICAgICAgICBBR25zc1N0YXR1c1ZhbHVlIHN0YXR1czsKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEyOC1iaXQgSVB2NiBhZGRyZXNzLgorICAgICAgICAgKi8KKyAgICAgICAgdWludDhfdFsxNl0gaXBWNkFkZHI7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENhbGxiYWNrIHdpdGggQUdOU1MoSXBWNCkgc3RhdHVzIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyBXaWxsIGJlIG9mIHR5cGUgQUduc3NTdGF0dXNJcFY0LgorICAgICAqLworICAgIGFnbnNzU3RhdHVzSXBWNENiKEFHbnNzU3RhdHVzSXBWNCBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgd2l0aCBBR05TUyhJcFY2KSBzdGF0dXMgaW5mb3JtYXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gc3RhdHVzIFdpbGwgYmUgb2YgdHlwZSBBR25zc1N0YXR1c0lwVjYuCisgICAgICovCisgICAgYWduc3NTdGF0dXNJcFY2Q2IoQUduc3NTdGF0dXNJcFY2IHN0YXR1cyk7CisKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JQUduc3NSaWwuaGFsIGIvZ25zcy8xLjAvSUFHbnNzUmlsLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjI4OWY2Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUFHbnNzUmlsLmhhbApAQCAtMCwwICsxLDE0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworaW1wb3J0IElBR25zc1JpbENhbGxiYWNrOworCisvKioKKyAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgQUdOU1MgUklMIHN1cHBvcnQuIEFuIEFzc2lzdGVkIEdOU1MgUmFkaW8gSW50ZXJmYWNlCisgKiBMYXllciBpbnRlcmZhY2UgYWxsb3dzIHRoZSBHTlNTIGNoaXBzZXQgdG8gcmVxdWVzdCByYWRpbyBpbnRlcmZhY2UgbGF5ZXIKKyAqIGluZm9ybWF0aW9uIGZyb20gQW5kcm9pZCBwbGF0Zm9ybS4gRXhhbXBsZXMgb2Ygc3VjaCBpbmZvcm1hdGlvbiBhcmUgcmVmZXJlbmNlCisgKiBsb2NhdGlvbiwgdW5pcXVlIHN1YnNjcmliZXIgSUQsIHBob25lIG51bWJlciBzdHJpbmcgYW5kIG5ldHdvcmsgYXZhaWxhYmlsaXR5IGNoYW5nZXMuCisgKi8KK2ludGVyZmFjZSBJQUduc3NSaWwgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTX1NFVElEX1RZUEVfIikKKyAgICBlbnVtIFNldElEVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBOT05FICAgID0gMCwKKyAgICAgICAgSU1TSSAgICA9IDEsCisgICAgICAgIE1TSVNETSAgPSAyCisgICAgfTsKKworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTX1JJTF9ORVRXT1JLX1RZUEVfIikKKyAgICBlbnVtIE5ldHdvcmtUeXBlIDogdWludDhfdCB7CisgICAgICAgIE1PQklMRSAgPSAwLAorICAgICAgICBXSUZJICAgID0gMSwKKyAgICAgICAgTU1TICAgICA9IDIsCisgICAgICAgIFNVUEwgICAgPSAzLAorICAgICAgICBEVU4gICAgID0gNCwKKyAgICAgICAgSElQUkkgICA9IDUsCisgICAgICAgIFdJTUFYICAgPSA2LAorICAgIH07CisKKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQUdQU19SRUZfTE9DQVRJT05fVFlQRV8iKQorICAgIGVudW0gQUduc3NSZWZMb2NhdGlvblR5cGUgOiB1aW50OF90IHsKKyAgICAgICAgR1NNX0NFTExJRCAgID0gMSwKKyAgICAgICAgVU1UU19DRUxMSUQgID0gMiwKKyAgICAgICAgTFRFX0NFTExJRCAgID0gNCwKKyAgICB9OworCisgICAgLyoqIENlbGxJRCBmb3IgMkcsIDNHIGFuZCBMVEUsIHVzZWQgaW4gQUdOU1MuICovCisgICAgc3RydWN0IEFHbnNzUmVmTG9jYXRpb25DZWxsSUQgeworICAgICAgICBBR25zc1JlZkxvY2F0aW9uVHlwZSB0eXBlOworCisgICAgICAgIC8qKiBNb2JpbGUgQ291bnRyeSBDb2RlLiAqLworICAgICAgICB1aW50MTZfdCBtY2M7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIE1vYmlsZSBOZXR3b3JrIENvZGUgLiovCisgICAgICAgIHVpbnQxNl90IG1uYzsKKworICAgICAgICAvKioKKyAgICAgICAgICogTG9jYXRpb24gQXJlYSBDb2RlIGluIDJHLCAzRyBhbmQgTFRFLiBJbiAzRyBsYWMgaXMgZGlzY2FyZGVkLiBJbiBMVEUsCisgICAgICAgICAqIGxhYyBpcyBwb3B1bGF0ZWQgd2l0aCB0YWMsIHRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IGJyZWFrIG9sZCBjbGllbnRzIHRoYXQKKyAgICAgICAgICogbWlnaHQgcmVseSBpbiB0aGUgb2xkICh3cm9uZykgYmVoYXZpb3IuCisgICAgICAgICAqLworICAgICAgICB1aW50MTZfdCBsYWM7CisKKyAgICAgICAgLyoqIENlbGwgaWQgaW4gMkcuIFV0cmFuIENlbGwgaWQgaW4gM0cuIENlbGwgR2xvYmFsIElkIEVVVFJBIGluIExURS4gKi8KKyAgICAgICAgdWludDMyX3QgY2lkOworCisgICAgICAgIC8qKiBUcmFja2luZyBBcmVhIENvZGUgaW4gTFRFLiAqLworICAgICAgICB1aW50MTZfdCB0YWM7CisKKyAgICAgICAgLyoqIFBoeXNpY2FsIENlbGwgaWQgaW4gTFRFIChub3QgdXNlZCBpbiAyRyBhbmQgM0cpICovCisgICAgICAgIHVpbnQxNl90IHBjaWQ7CisgICAgfTsKKworICAgIC8qKiBSZXByZXNlbnRzIHJlZiBsb2NhdGlvbnMgKi8KKyAgICBzdHJ1Y3QgQUduc3NSZWZMb2NhdGlvbiB7CisgICAgICAgIEFHbnNzUmVmTG9jYXRpb25UeXBlIHR5cGU7CisKKyAgICAgICAgQUduc3NSZWZMb2NhdGlvbkNlbGxJRCBjZWxsSUQ7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBBR05TUyBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBJbnRlcmZhY2UgZm9yIEFHbnNzUmlsIGNhbGxiYWNrcy4KKyAgICAgKi8KKyAgICBzZXRDYWxsYmFjayhJQUduc3NSaWxDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSByZWZlcmVuY2UgbG9jYXRpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0gYWduc3NSZWZsb2NhdGlvbiBBR05TUyByZWZlcmVuY2UgbG9jYXRpb24gQ2VsbElELgorICAgICAqLworICAgIHNldFJlZkxvY2F0aW9uKEFHbnNzUmVmTG9jYXRpb24gYWduc3NSZWZsb2NhdGlvbik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBTRVQgSUQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdHlwZSBNdXN0IGJlIHBvcHVsYXRlZCB3aXRoIGVpdGhlciBJTVNJIG9yIE1TSVNETiBvciBOT05FLgorICAgICAqIEBwYXJhbSBzZXRpZCBJZiB0eXBlIGlzIElNU0kgdGhlbiBzZXRpZCBpcyBwb3B1bGF0ZWQgd2l0aAorICAgICAqIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgdW5pcXVlIFN1YnNjcmliZXIgSUQsIGZvciBleGFtcGxlLCB0aGUgSU1TSSBmb3IKKyAgICAgKiBhIEdNUyBwaG9uZS4gSWYgdHlwZSBpcyBNU0lTRE4sIHRoZW4gc2V0aWQgbXVzdCBjb250YWluCisgICAgICogdGhlIHBob25lIG51bWJlciBzdHJpbmcgZm9yIGxpbmUgMS4gRm9yIGV4YW1wbGUsIHRoZSBNU0lTRE4gZm9yIGEgR1NNIHBob25lLgorICAgICAqIElmIHRoZSB0eXBlIGlzIE5PTkUsIHRoZW4gdGhlIHN0cmluZyBtdXN0IGJlIGVtcHR5LgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgYWxsIHBhcmFtZXRlcnMgd2VyZSB2YWxpZCBhbmQgb3BlcmF0aW9uIHdhcworICAgICAqIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgc2V0U2V0SWQoU2V0SURUeXBlIHR5cGUsIHN0cmluZyBzZXRpZCkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogTm90aWZ5IEdOU1Mgb2YgbmV0d29yayBzdGF0dXMgY2hhbmdlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb25uZWN0ZWQgSW5kaWNhdGVzIHdoZXRoZXIgbmV0d29yayBjb25uZWN0aXZpdHkgZXhpc3RzIGFuZAorICAgICAqIGl0IGlzIHBvc3NpYmxlIHRvIGVzdGFibGlzaCBjb25uZWN0aW9ucyBhbmQgcGFzcyBkYXRhLgorICAgICAqIEBwYXJhbSB0eXBlIEluZGljYXRlcyB0aGUga2luZCBvZiBuZXR3b3JrLCBmb3IgZWcuIG1vYmlsZSwgd2lmaSBldGMuCisgICAgICogQHBhcmFtIHJvYW1pbmcgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGRldmljZSBpcyBjdXJyZW50bHkgcm9hbWluZyBvbgorICAgICAqIHRoaXMgbmV0d29yay4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlzIGFsbCBwYXJhbWV0ZXJzIHdlcmUgdmFsaWQgYW5kIG9wZXJhdGlvbiB3YXMKKyAgICAgKiBzdWNjZXNzZnVsLgorICAgICAqLworICAgIHVwZGF0ZU5ldHdvcmtTdGF0ZShib29sIGNvbm5lY3RlZCwgTmV0d29ya1R5cGUgdHlwZSwgYm9vbCByb2FtaW5nKQorICAgICAgICBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBOb3RpZnkgR05TUyBvZiBuZXR3b3JrIHN0YXR1cyBjaGFuZ2VzIGFuZCBjdXJyZW50IEFQTi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhdmFpbGFibGUgSW5kaWNhdGVzIHdoZXRoZXIgbmV0d29yayBjb25uZWN0aXZpdHkgaXMgYXZhaWxhYmxlLgorICAgICAqIEBwYXJhbSBhcG4gU3RyaW5nIGNvbnRhaW5pbmcgdGhlIHRlbGVwaG9ueSBwcmVmZXJyZWQgQWNjZXNzIFBvaW50IE5hbWUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBhbGwgcGFyYW1ldGVycyB3ZXJlIHZhbGlkIGFuZCB0aGUgb3BlcmF0aW9uIHdhcworICAgICAqIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgdXBkYXRlTmV0d29ya0F2YWlsYWJpbGl0eShib29sIGF2YWlsYWJsZSwgc3RyaW5nIGFwbikgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUFHbnNzUmlsQ2FsbGJhY2suaGFsIGIvZ25zcy8xLjAvSUFHbnNzUmlsQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyYTFhM2YKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JQUduc3NSaWxDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqCisgKiBDYWxsYmFjayBmb3IgSUFHbnNzUmlsIGludGVyZmFjZS4gVXNlZCB0byByZXF1ZXN0IFNFVCBJRCBhbmQKKyAqIFJlZmVyZW5jZSBMb2NhdGlvbi4KKyAqLworaW50ZXJmYWNlIElBR25zc1JpbENhbGxiYWNrIHsKKyAgICAvKiogS2luZHMgb2YgU0VUIElEIHRoYXQgY2FuIGJlIHJlcXVlc3RlZCAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJBR1BTX1JJTF9SRVFVRVNUX1NFVElEXyIpCisgICAgZW51bSBJRCA6IHVpbnQzMl90IHsKKyAgICAgICAgSU1TSSAgICA9IDEgPDwgMEwsCisgICAgICAgIE1TSVNETiAgPSAxIDw8IDFMLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBUaGUgSGFsIHVzZXMgdGhpcyBBUEkgdG8gcmVxdWVzdCBhIFNFVCBJRC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBzZXRJZGZsYWcgU3BlY2lmaWVzIHRoZSBraW5kIG9mIFNFVCBJRCB0aGF0IGlzIHJlcXVpcmVkIGJ5IHRoZSBIQUwuCisgICAgICovCisgICAgcmVxdWVzdFNldElkQ2IoYml0ZmllbGQ8SUQ+IHNldElkZmxhZyk7CisKKyAgICAvKioKKyAgICAgKiBUaGUgSGFsIHVzZXMgdGhpcyBBUEkgdG8gcmVxdWVzdCBhIHJlZmVyZW5jZSBsb2NhdGlvbi4KKyAgICAgKgorICAgICAqLworICAgIHJlcXVlc3RSZWZMb2NDYigpOworCit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3MuaGFsIGIvZ25zcy8xLjAvSUduc3MuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwMmM2MTUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zcy5oYWwKQEAgLTAsMCArMSwyMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJQUduc3M7CitpbXBvcnQgSUFHbnNzUmlsOworaW1wb3J0IElHbnNzQmF0Y2hpbmc7CitpbXBvcnQgSUduc3NDYWxsYmFjazsKK2ltcG9ydCBJR25zc0NvbmZpZ3VyYXRpb247CitpbXBvcnQgSUduc3NEZWJ1ZzsKK2ltcG9ydCBJR25zc01lYXN1cmVtZW50OworaW1wb3J0IElHbnNzTmF2aWdhdGlvbk1lc3NhZ2U7CitpbXBvcnQgSUduc3NHZW9mZW5jaW5nOworaW1wb3J0IElHbnNzTmk7CitpbXBvcnQgSUduc3NYdHJhOworCisvKiogUmVwcmVzZW50cyB0aGUgc3RhbmRhcmQgR05TUyAoR2xvYmFsIE5hdmlnYXRpb24gU2F0ZWxsaXRlIFN5c3RlbSkgaW50ZXJmYWNlLiAqLworaW50ZXJmYWNlIElHbnNzIHsKKyAgICAvKiogUmVxdWVzdGVkIG9wZXJhdGlvbmFsIG1vZGUgZm9yIEdOU1Mgb3BlcmF0aW9uLiAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfUE9TSVRJT05fTU9ERV8iKQorICAgIGVudW0gR25zc1Bvc2l0aW9uTW9kZSA6IHVpbnQ4X3QgeworICAgICAgICAvKiogTW9kZSBmb3IgcnVubmluZyBHTlNTIHN0YW5kYWxvbmUgKG5vIGFzc2lzdGFuY2UpLiAqLworICAgICAgICBTVEFOREFMT05FICA9IDAsCisgICAgICAgIC8qKiBBR05TUyBNUy1CYXNlZCBtb2RlLiAqLworICAgICAgICBNU19CQVNFRCAgICA9IDEsCisgICAgICAgIC8qKgorICAgICAgICAgKiBBR05TUyBNUy1Bc3Npc3RlZCBtb2RlLiBUaGlzIG1vZGUgaXMgbm90IG1haW50YWluZWQgYnkgdGhlIHBsYXRmb3JtIGFueW1vcmUuCisgICAgICAgICAqIEl0IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHVzZSBNU19CQVNFRCBpbnN0ZWFkLgorICAgICAgICAgKi8KKyAgICAgICAgTVNfQVNTSVNURUQgPSAyLAorICAgIH07CisKKyAgICAvKiogUmVxdWVzdGVkIHJlY3VycmVuY2UgbW9kZSBmb3IgR05TUyBvcGVyYXRpb24uICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19QT1NJVElPTl8iKQorICAgIGVudW0gR25zc1Bvc2l0aW9uUmVjdXJyZW5jZSA6IHVpbnQzMl90IHsKKyAgICAgICAgLyoqIFJlY2VpdmUgR05TUyBmaXhlcyBvbiBhIHJlY3VycmluZyBiYXNpcyBhdCBhIHNwZWNpZmllZCBwZXJpb2QuICovCisgICAgICAgIFJFQ1VSUkVOQ0VfUEVSSU9ESUMgID0gMCwKKyAgICAgICAgLyoqIFJlcXVlc3QgYSBzaW5nbGUgc2hvdCBHTlNTIGZpeC4gKi8KKyAgICAgICAgUkVDVVJSRU5DRV9TSU5HTEUgICAgPSAxCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZsYWdzIHVzZWQgdG8gc3BlY2lmeSB3aGljaCBhaWRpbmcgZGF0YSB0byBkZWxldGUgd2hlbiBjYWxsaW5nCisgICAgICogZGVsZXRlQWlkaW5nRGF0YSgpLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfIikKKyAgICBlbnVtIEduc3NBaWRpbmdEYXRhIDogdWludDE2X3QgeworICAgICAgICBERUxFVEVfRVBIRU1FUklTICAgID0gMHgwMDAxLAorICAgICAgICBERUxFVEVfQUxNQU5BQyAgICAgID0gMHgwMDAyLAorICAgICAgICBERUxFVEVfUE9TSVRJT04gICAgID0gMHgwMDA0LAorICAgICAgICBERUxFVEVfVElNRSAgICAgICAgID0gMHgwMDA4LAorICAgICAgICBERUxFVEVfSU9OTyAgICAgICAgID0gMHgwMDEwLAorICAgICAgICBERUxFVEVfVVRDICAgICAgICAgID0gMHgwMDIwLAorICAgICAgICBERUxFVEVfSEVBTFRIICAgICAgID0gMHgwMDQwLAorICAgICAgICBERUxFVEVfU1ZESVIgICAgICAgID0gMHgwMDgwLAorICAgICAgICBERUxFVEVfU1ZTVEVFUiAgICAgID0gMHgwMTAwLAorICAgICAgICBERUxFVEVfU0FEQVRBICAgICAgID0gMHgwMjAwLAorICAgICAgICBERUxFVEVfUlRJICAgICAgICAgID0gMHgwNDAwLAorICAgICAgICBERUxFVEVfQ0VMTERCX0lORk8gID0gMHg4MDAwLAorICAgICAgICBERUxFVEVfQUxMICAgICAgICAgID0gMHhGRkZGCisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayBpbnRlcmZhY2UgZm9yIElHbnNzLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElHbnNzQ2FsbGJhY2sgY2FsbGJhY2spIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0cyBhIGxvY2F0aW9uIG91dHB1dCBzdHJlYW0gdXNpbmcgdGhlIElHbnNzQ2FsbGJhY2sKKyAgICAgKiBnbnNzTG9jYXRpb25DYigpLCBmb2xsb3dpbmcgdGhlIHNldHRpbmdzIGZyb20gdGhlIG1vc3QgcmVjZW50IGNhbGwgdG8KKyAgICAgKiBzZXRQb3NpdGlvbk1vZGUoKS4KKyAgICAgKgorICAgICAqIFRoaXMgb3V0cHV0IG11c3Qgb3BlcmF0ZSBpbmRlcGVuZGVudGx5IG9mIGFueSBHTlNTIGxvY2F0aW9uIGJhdGNoaW5nCisgICAgICogb3BlcmF0aW9ucywgc2VlIHRoZSBJR25zc0JhdGNoaW5nLmhhbCBmb3IgZGV0YWlscy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KKyAgICAgKi8KKyAgICBzdGFydCgpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFN0b3BzIHRoZSBsb2NhdGlvbiBvdXRwdXQgc3RyZWFtLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgorICAgICAqLworICAgIHN0b3AoKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZXMgdGhlIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBjbGVhbnVwKCk7CisKKyAgICAvKioKKyAgICAgKiBJbmplY3RzIHRoZSBjdXJyZW50IHRpbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZU1zIFRoaXMgaXMgdGhlIFVUQyB0aW1lIHJlY2VpdmVkIGZyb20gdGhlIE5UUCBzZXJ2ZXIsIGl0cyB2YWx1ZQorICAgICAqIGlzIGdpdmVuIGluIG1pbGxpc2Vjb25kcyBzaW5jZSBKYW51YXJ5IDEsIDE5NzAuCisgICAgICogQHBhcmFtIHRpbWVSZWZlcmVuY2VNcyBUaGUgY29ycmVzcG9uZGluZyB2YWx1ZSBvZgorICAgICAqIFN5c3RlbUNsb2NrLmVsYXBzZWRSZWFsdGltZSgpIGZyb20gdGhlIGRldmljZSB3aGVuIHRoZSBOVFAgcmVzcG9uc2Ugd2FzCisgICAgICogcmVjZWl2ZWQgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqIEBwYXJhbSB1bmNlcnRhaW50eU1zIFVuY2VydGFpbnR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgdmFsdWUgcmVwcmVzZW50ZWQgYnkKKyAgICAgKiB0aW1lLiBSZXByZXNlbnRlZCBpbiBtaWxsaXNlY29uZHMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBpbmplY3RUaW1lKEduc3NVdGNUaW1lIHRpbWVNcywgaW50NjRfdCB0aW1lUmVmZXJlbmNlTXMsIGludDMyX3QgdW5jZXJ0YWludHlNcykKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogSW5qZWN0cyBjdXJyZW50IGxvY2F0aW9uIGZyb20gYW5vdGhlciBsb2NhdGlvbiBwcm92aWRlciAodHlwaWNhbGx5IGNlbGwKKyAgICAgKiBJRCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGF0aXR1ZGVEZWdyZWVzIE1lYXN1cmVkIGluIERlZ3JlZXMuCisgICAgICogQHBhcmFtIGxvbmdpdHVkZURlZ3JlZXMgTWVhc3VyZWQgaW4gRGVncmVlcy4KKyAgICAgKiBAcGFyYW0gYWNjdXJhY3lNZXRlcnMgTWVhc3VyZWQgaW4gbWV0ZXJzLgorICAgICAqCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLgorICAgICAqLworICAgIGluamVjdExvY2F0aW9uKGRvdWJsZSBsYXRpdHVkZURlZ3JlZXMsIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzLCBmbG9hdCBhY2N1cmFjeU1ldGVycykKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogU3BlY2lmaWVzIHRoYXQgdGhlIG5leHQgY2FsbCB0byBzdGFydCB3aWxsIG5vdCB1c2UgdGhlCisgICAgICogaW5mb3JtYXRpb24gZGVmaW5lZCBpbiB0aGUgZmxhZ3MuIEduc3NBaWRpbmdEYXRhIHZhbHVlIG9mIERFTEVURV9BTEwgaXMKKyAgICAgKiBwYXNzZWQgZm9yIGEgY29sZCBzdGFydC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhaWRpbmdEYXRhRmxhZ3MgRmxhZ3Mgc3BlY2lmeWluZyB0aGUgYWlkaW5nIGRhdGEgdG8gYmUgZGVsZXRlZC4KKyAgICAgKi8KKyAgICBkZWxldGVBaWRpbmdEYXRhKEduc3NBaWRpbmdEYXRhIGFpZGluZ0RhdGFGbGFncyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBHbnNzUG9zaXRpb25Nb2RlIHBhcmFtZXRlcixpdHMgYXNzb2NpYXRlZCByZWN1cnJlbmNlIHZhbHVlLAorICAgICAqIHRoZSB0aW1lIGJldHdlZW4gZml4ZXMscmVxdWVzdGVkIGZpeCBhY2N1cmFjeSBhbmQgdGltZSB0byBmaXJzdCBmaXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gbW9kZSAgUGFyYW1ldGVyIG11c3QgYmUgb25lIG9mIE1TX0JBU0VEIG9yIFNUQU5EQUxPTkUuCisgICAgICogSXQgaXMgYWxsb3dlZCBieSB0aGUgcGxhdGZvcm0gKGFuZCBpdCBpcyByZWNvbW1lbmRlZCkgdG8gZmFsbGJhY2sgdG8KKyAgICAgKiBNU19CQVNFRCBpZiBNU19BU1NJU1RFRCBpcyBwYXNzZWQgaW4sIGFuZCBNU19CQVNFRCBpcyBzdXBwb3J0ZWQuCisgICAgICogQHJlY3VycmVuY2UgR05TUyBwb3N0aW9uIHJlY3VycmVuY2UgdmFsdWUsIGVpdGhlciBwZXJpb2RpYyBvciBzaW5nbGUuCisgICAgICogQHBhcmFtIG1pbkludGVydmFsTXMgUmVwcmVzZW50cyB0aGUgdGltZSBiZXR3ZWVuIGZpeGVzIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKiBAcGFyYW0gcHJlZmVycmVkQWNjdXJhY3lNZXRlcnMgUmVwcmVzZW50cyB0aGUgcmVxdWVzdGVkIGZpeCBhY2N1cmFjeSBpbiBtZXRlcnMuCisgICAgICogQHBhcmFtIHByZWZlcnJlZFRpbWVNcyBSZXByZXNlbnRzIHRoZSByZXF1ZXN0ZWQgdGltZSB0byBmaXJzdCBmaXggaW4gbWlsbGlzZWNvbmRzLgorCisgICAgICogQHJldHVybiBzdWNjZXNzIFJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLgorICAgICAqLworICAgIHNldFBvc2l0aW9uTW9kZShHbnNzUG9zaXRpb25Nb2RlIG1vZGUsIEduc3NQb3NpdGlvblJlY3VycmVuY2UgcmVjdXJyZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbWluSW50ZXJ2YWxNcywgdWludDMyX3QgcHJlZmVycmVkQWNjdXJhY3lNZXRlcnMsCisgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHByZWZlcnJlZFRpbWVNcykKKyAgICAgICAgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUFHbnNzUmlsIEludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gYUduc3NSaWxJZmFjZSBIYW5kbGUgdG8gdGhlIElBR25zc1JpbCBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uQUduc3NSaWwoKSBnZW5lcmF0ZXMgKElBR25zc1JpbCBhR25zc1JpbElmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzR2VvZmVuY2luZyBJbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGduc3NHZW9mZW5jaW5nSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc0dlb2ZlbmNpbmcgaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkduc3NHZW9mZW5jaW5nKCkgZ2VuZXJhdGVzKElHbnNzR2VvZmVuY2luZyBnbnNzR2VvZmVuY2luZ0lmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElBR25zcyBJbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGFHbnNzSWZhY2UgSGFuZGxlIHRvIHRoZSBJQUduc3MgaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkFHbnNzKCkgZ2VuZXJhdGVzIChJQUduc3MgYUduc3NJZmFjZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBJR25zc05pIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZ25zc05pSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc05pIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25HbnNzTmkoKSBnZW5lcmF0ZXMgKElHbnNzTmkgZ25zc05pSWZhY2UpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUduc3NNZWFzdXJlbWVudCBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGduc3NNZWFzdXJlbWVudElmYWNlIEhhbmRsZSB0byB0aGUgSUduc3NNZWFzdXJlbWVudCBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uR25zc01lYXN1cmVtZW50KCkgZ2VuZXJhdGVzIChJR25zc01lYXN1cmVtZW50IGduc3NNZWFzdXJlbWVudElmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBnbnNzTmF2aWdhdGlvbklmYWNlIGduc3NOYXZpZ2F0aW9uSWZhY2UgdG8gdGhlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkduc3NOYXZpZ2F0aW9uTWVzc2FnZSgpIGdlbmVyYXRlcyAoSUduc3NOYXZpZ2F0aW9uTWVzc2FnZSBnbnNzTmF2aWdhdGlvbklmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzWHRyYSBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHh0cmFJZmFjZSBIYW5kbGUgdG8gdGhlIElHbnNzWHRyYSBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uWHRyYSgpIGdlbmVyYXRlcyAoSUduc3NYdHJhIHh0cmFJZmFjZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBJR25zc0NvbmZpZ3VyYXRpb24gaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBnbnNzQ29uZmlnSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc0NvbmZpZ3VyYXRpb24gaW50ZXJmYWNlLgorICAgICAqLworICAgIGdldEV4dGVuc2lvbkduc3NDb25maWd1cmF0aW9uKCkgZ2VuZXJhdGVzIChJR25zc0NvbmZpZ3VyYXRpb24gZ25zc0NvbmZpZ0lmYWNlKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIElHbnNzRGVidWcgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBkZWJ1Z0lmYWNlIEhhbmRsZSB0byB0aGUgSUduc3NEZWJ1ZyBpbnRlcmZhY2UuCisgICAgICovCisgICAgZ2V0RXh0ZW5zaW9uR25zc0RlYnVnKCkgZ2VuZXJhdGVzIChJR25zc0RlYnVnIGRlYnVnSWZhY2UpOworCisgICAgLyoqCisgICAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgSUduc3NCYXRjaGluZyBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGJhdGNoaW5nSWZhY2UgSGFuZGxlIHRvIHRoZSBJR25zc0JhdGNoaW5nIGludGVyZmFjZS4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25HbnNzQmF0Y2hpbmcoKSBnZW5lcmF0ZXMgKElHbnNzQmF0Y2hpbmcgYmF0Y2hpbmdJZmFjZSk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NCYXRjaGluZy5oYWwgYi9nbnNzLzEuMC9JR25zc0JhdGNoaW5nLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNWUwMWUzCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NCYXRjaGluZy5oYWwKQEAgLTAsMCArMSwxNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJR25zc0JhdGNoaW5nQ2FsbGJhY2s7CisKKy8qKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBHTlNTIEJhdGNoaW5nIHN1cHBvcnQuCisgKgorICogSWYgdGhpcyBpbnRlcmZhY2UgaXMgc3VwcG9ydGVkLCB0aGlzIGJhdGNoaW5nIHJlcXVlc3QgbXVzdCBiZSBhYmxlIHRvIHJ1biBpbgorICogcGFyYWxsZWwgd2l0aCwgb3Igd2l0aG91dCwgbm9uLWJhdGNoZWQgbG9jYXRpb24gcmVxdWVzdGVkIGJ5IHRoZQorICogSUduc3Mgc3RhcnQoKSAmIHN0b3AoKSAtIGkuZS4gYm90aCByZXF1ZXN0cyBtdXN0IGJlIGhhbmRsZWQgaW5kZXBlbmRlbnRseSwKKyAqIGFuZCBub3QgaW50ZXJmZXJlIHdpdGggZWFjaCBvdGhlci4KKyAqCisgKiBGb3IgZXhhbXBsZSwgaWYgYSAxSHogY29udGludW91cyBvdXRwdXQgaXMgdW5kZXJ3YXkgb24gdGhlIElHbnNzQ2FsbGJhY2ssCisgKiBkdWUgdG8gYW4gSUduc3Mgc3RhcnQoKSBvcGVyYXRpb24sCisgKiBhbmQgdGhlbiBhIElHbnNzQmF0Y2hpbmcgc3RhcnQoKSBpcyBjYWxsZWQgZm9yIGEgbG9jYXRpb24gZXZlcnkgMTAKKyAqIHNlY29uZHMsIHRoZSBuZXdseSBhZGRlZCBiYXRjaGluZyByZXF1ZXN0IG11c3Qgbm90IGRpc3J1cHQgdGhlIDFIegorICogY29udGludW91cyBsb2NhdGlvbiBvdXRwdXQgb24gdGhlIElHbnNzQ2FsbGJhY2suCisgKgorICogQXMgd2l0aCBHTlNTIExvY2F0aW9uIG91dHB1dHMsIHNvdXJjZSBvZiBsb2NhdGlvbiBtdXN0IGJlIEdOU1Mgc2F0ZWxsaXRlCisgKiBtZWFzdXJlbWVudHMsIG9wdGlvbmFsbHkgdXNpbmcgaW50ZXJpYWwgYW5kIGJhcm8gc2Vuc29ycyB0byBpbXByb3ZlCisgKiByZWxhdGl2ZSBtb3Rpb24gZmlsdGVyaW5nLiBObyBhZGRpdGlvbmFsIGFic29sdXRlIHBvc2l0aW9uaW5nIGluZm9ybWF0aW9uLAorICogc3VjaCBhcyBXaUZpIGRlcml2ZWQgbG9jYXRpb24sIG1heSBiZSBtaXhlZCB3aXRoIHRoZSBHTlNTIGluZm9ybWF0aW9uLgorICovCisKK2ludGVyZmFjZSBJR25zc0JhdGNoaW5nIHsKKyAgICAvKioKKyAgICAgKiBFbnVtIHdoaWNoIGhvbGRzIHRoZSBiaXQgbWFza3MgZm9yIGJhdGNoaW5nIGNvbnRyb2wuCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkZMUF9CQVRDSF8iKQorICAgIGVudW0gRmxhZyA6IHVpbnQ4X3QgeworICAgICAgICAvKioKKyAgICAgICAgICogSWYgdGhpcyBmbGFnIGlzIHNldCwgdGhlIGhhcmR3YXJlIGltcGxlbWVudGF0aW9uCisgICAgICAgICAqIG11c3Qgd2FrZSB1cCB0aGUgYXBwbGljYXRpb24gcHJvY2Vzc29yIHdoZW4gdGhlIEZJRk8gaXMgZnVsbCwgYW5kCisgICAgICAgICAqIGNhbGwgSUduc3NCYXRjaGluZ0NhbGxiYWNrIHRvIHJldHVybiB0aGUgbG9jYXRpb25zLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZmxhZyBpcyBub3Qgc2V0LCB0aGUgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24gbXVzdCBkcm9wCisgICAgICAgICAqIHRoZSBvbGRlc3QgZGF0YSB3aGVuIHRoZSBGSUZPIGlzIGZ1bGwuCisgICAgICAgICAqLworICAgICAgICBXQUtFVVBfT05fRklGT19GVUxMID0gMHgwMQorICAgIH07CisKKyAgICBzdHJ1Y3QgT3B0aW9ucyB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaW1lIGludGVydmFsIGJldHdlZW4gc2FtcGxlcyBpbiB0aGUgbG9jYXRpb24gYmF0Y2gsIGluIG5hbm8KKyAgICAgICAgICogc2Vjb25kcy4KKyAgICAgICAgICovCisgICAgICAgIGludDY0X3QgcGVyaW9kTmFub3M7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEZsYWdzIGNvbnRyb2xsaW5nIGhvdyBiYXRjaGluZyBzaG91bGQgYmVoYXZlLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8RmxhZz4gZmxhZ3M7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBDYWxsYmFjayBpbnRlcmZhY2UgZm9yIElHbnNzQmF0Y2hpbmcuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgaW5pdChJR25zc0JhdGNoaW5nQ2FsbGJhY2sgY2FsbGJhY2spIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybiB0aGUgYmF0Y2ggc2l6ZSAoaW4gbnVtYmVyIG9mIEduc3NMb2NhdGlvbiBvYmplY3RzKQorICAgICAqIGF2YWlsYWJsZSBpbiB0aGlzIGhhcmR3YXJlIGltcGxlbWVudGF0aW9uLgorICAgICAqCisgICAgICogSWYgdGhlIGF2YWlsYWJsZSBzaXplIGlzIHZhcmlhYmxlLCBmb3IgZXhhbXBsZSwgYmFzZWQgb24gb3RoZXIgb3BlcmF0aW9ucworICAgICAqIGNvbnN1bWluZyBtZW1vcnksIHRoaXMgaXMgdGhlIG1pbmltdW0gc2l6ZSBndWFyYW50ZWVkIHRvIGJlIGF2YWlsYWJsZQorICAgICAqIGZvciBiYXRjaGluZyBvcGVyYXRpb25zLgorICAgICAqCisgICAgICogVGhpcyBtYXksIGZvciBleGFtcGxlLCBiZSB1c2VkIGJ5IHRoZSB1cHBlciBsYXllciwgdG8gZGVjaWRlIG9uIHRoZQorICAgICAqIGJhdGNoaW5nIGludGVydmFsIGFuZCB3aGV0aGVyIHRoZSBBUCBzaG91bGQgYmUgd29rZW4gdXAgb3Igbm90LgorICAgICAqCisgICAgICogQHJldHVybiBiYXRjaFNpemUgbnVtYmVyIG9mIGxvY2F0aW9uIG9iamVjdHMgc3VwcG9ydGVkIHBlciBiYXRjaAorICAgICAqLworICAgIGdldEJhdGNoU2l6ZSgpIGdlbmVyYXRlcyAodWludDE2X3QgYmF0Y2hTaXplKTsKKworICAgIC8qKgorICAgICAqIFN0YXJ0IGJhdGNoaW5nIGxvY2F0aW9ucy4gVGhpcyBBUEkgaXMgcHJpbWFyaWx5IHVzZWQgd2hlbiB0aGUgQVAgaXMKKyAgICAgKiBhc2xlZXAgYW5kIHRoZSBkZXZpY2UgY2FuIGJhdGNoIGxvY2F0aW9ucyBpbiB0aGUgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiBJR25zc0JhdGNoaW5nQ2FsbGJhY2sgaXMgdXNlZCB0byByZXR1cm4gdGhlIGxvY2F0aW9ucy4KKyAgICAgKgorICAgICAqIFdoZW4gdGhlIGJ1ZmZlciBpcyBmdWxsIGFuZCBXQUtFVVBfT05fRklGT19GVUxMIGlzIHVzZWQsCisgICAgICogSUduc3NCYXRjaGluZ0NhbGxiYWNrIG11c3QgYmUgY2FsbGVkIHRvIHJldHVybiB0aGUgbG9jYXRpb25zLgorICAgICAqCisgICAgICogV2hlbiB0aGUgYnVmZmVyIGlzIGZ1bGwgYW5kIFdBS0VVUF9PTl9GSUZPX0ZVTEwgaXMgbm90IHNldCwKKyAgICAgKiB0aGUgb2xkZXN0IGxvY2F0aW9uIG9iamVjdCBpcyBkcm9wcGVkLiBJbiB0aGlzIGNhc2UgdGhlIEFQIG11c3Qgbm90IGJlCisgICAgICogd29rZW4gdXAuIFRoZSBBUCB3b3VsZCB0aGVuIGdlbmVyYWxseSBiZSByZXNwb25zaWJsZSBmb3IgdXNpbmcKKyAgICAgKiBmbHVzaEJhdGNoZWRMb2NhdGlvbiB0byBleHBsaWNpdGx5IGFzayBmb3IgdGhlIGxvY2F0aW9uIGFzIG5lZWRlZCwKKyAgICAgKiB0byBhdm9pZCBpdCBiZWluZyBkcm9wcGVkLgorICAgICAqCisgICAgICogQHBhcmFtIG9wdGlvbnMgU2VlIHN0cnVjdCBPcHRpb25zIGRlZmluaXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCisgICAgICovCisgICAgc3RhcnQoT3B0aW9ucyBvcHRpb25zKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBhbGwgYmF0Y2hlZCBsb2NhdGlvbnMgY3VycmVudGx5IHN0b3JlZC4KKyAgICAgKgorICAgICAqIElHbnNzQmF0Y2hpbmdDYWxsYmFjayBpcyB1c2VkIHRvIHJldHVybiB0aGUgbG9jYXRpb24uCisgICAgICoKKyAgICAgKiBJR25zc0JhdGNoaW5nQ2FsbGJhY2sgbXVzdCBiZSBjYWxsZWQgaW4gcmVzcG9uc2UsIGV2ZW4gaWYgdGhlcmUgYXJlCisgICAgICogbm8gbG9jYXRpb25zIHRvIGZsdXNoIChpbiB3aGljaCBjYXNlIHRoZSBMb2NhdGlvbiB2ZWN0b3IgbXVzdCBiZSBlbXB0eSkuCisgICAgICoKKyAgICAgKiBTdWJzZXF1ZW50IGNhbGxzIHRvIGZsdXNoQmF0Y2hlZExvY2F0aW9uCisgICAgICogbXVzdCBub3QgcmV0dXJuIGFueSBvZiB0aGUgbG9jYXRpb25zIHJldHVybmVkIGluIHRoaXMgY2FsbC4KKyAgICAgKi8KKyAgICBmbHVzaCgpOworCisgICAgLyoqCisgICAgICogU3RvcCBiYXRjaGluZy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KKyAgICAgKi8KKyAgICBzdG9wKCkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgLyoqCisgICAgICogQ2xvc2VzIHRoZSBpbnRlcmZhY2UuIElmIGFueSBiYXRjaCBvcGVyYXRpb25zIGFyZSBpbiBwcm9ncmVzcywKKyAgICAgKiB0aGV5IG11c3QgYmUgc3RvcHBlZC4gIElmIGFueSBsb2NhdGlvbnMgYXJlIGluIHRoZSBoYXJkd2FyZSBiYXRjaCwgdGhleQorICAgICAqIG11c3QgYmUgZGVsZXRlZCAoYW5kIG5vdCBzZW50IHZpYSBjYWxsYmFjay4pCisgICAgICoKKyAgICAgKiBpbml0KCkgbWF5IGJlIGNhbGxlZCBhZ2FpbiwgYWZ0ZXIgdGhpcywgaWYgdGhlIGludGVyZmFjZSBpcyB0byBiZSByZXN0b3JlZAorICAgICAqLworICAgIGNsZWFudXAoKTsKKworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmdDYWxsYmFjay5oYWwgYi9nbnNzLzEuMC9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2OTdjYzQKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc0JhdGNoaW5nQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBUaGUgY2FsbGJhY2sgaW50ZXJmYWNlIHRvIHJlcG9ydCBtZWFzdXJlbWVudHMgZnJvbSB0aGUgSEFMLiAqLworaW50ZXJmYWNlIElHbnNzQmF0Y2hpbmdDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogQ2FsbGVkIHdoZW4gYSBiYXRjaCBvZiBsb2NhdGlvbnMgaXMgb3V0cHV0LCBieSB2YXJpb3VzIG1lYW5zLCBpbmNsdWRpbmcKKyAgICAgKiBhIGZsdXNoIHJlcXVlc3QsIGFzIHdlbGwgYXMgdGhlIGJ1ZmZlciBiZWNvbWluZyBmdWxsIChpZiBhcHByb3ByaWF0ZSBvcHRpb24KKyAgICAgKiBpcyBzZXQuKQorICAgICAqCisgICAgICogQWxsIGxvY2F0aW9ucyByZXR1cm5lZCBieSB0aGlzIGNhbGxiYWNrIG11c3QgYmUgY2xlYXJlZCBmcm9tIHRoZSBoYXJkd2FyZQorICAgICAqIGJ1ZmZlciwgc3VjaCB0aGUgc2VxdWVudGlhbCBjYWxscyBvZiB0aGlzIGNhbGxiYWNrIGRvIG5vdCByZXR1cm4gYW55CisgICAgICogcmVkdW5kYW50IGxvY2F0aW9ucy4gIChTYW1lIGxhdC9sb24sIGF0IGEgbmV3IHRpbWUsIGlzIGFjY2VwdGFibGUuKQorICAgICAqCisgICAgICogQHBhcmFtIGxvY2F0aW9ucyBHTlNTIExvY2F0aW9uIGluZm9ybWF0aW9uIGZyb20gSEFMLgorICAgICAqLworICAgIGduc3NMb2NhdGlvbkJhdGNoQ2IodmVjPEduc3NMb2NhdGlvbj4gbG9jYXRpb25zKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc0NhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lHbnNzQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZTVlMGUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc0NhbGxiYWNrLmhhbApAQCAtMCwwICsxLDI0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqCisgKiBUaGUgaW50ZXJmYWNlIGlzIHJlcXVpcmVkIGZvciB0aGUgSEFMIHRvIGNvbW11bmljYXRlIGNlcnRhaW4gaW5mb3JtYXRpb24KKyAqIGxpa2Ugc3RhdHVzIGFuZCBsb2NhdGlvbiBpbmZvIGJhY2sgdG8gdGhlIHBsYXRmb3JtLCB0aGUgcGxhdGZvcm0gaW1wbGVtZW50cworICogdGhlIGludGVyZmFjZXMgYW5kIHBhc3NlcyBhIGhhbmRsZSB0byB0aGUgSEFMLgorICovCitpbnRlcmZhY2UgSUduc3NDYWxsYmFjayB7CisgICAgLyoqIEZsYWdzIGZvciB0aGUgZ25zc1NldENhcGFiaWxpdGllcyBjYWxsYmFjay4gKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX0NBUEFCSUxJVFlfIikKKyAgICBlbnVtIENhcGFiaWxpdGllcyA6IHVpbnQzMl90IHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEdOU1MgSEFMIHNjaGVkdWxlcyBmaXhlcyBmb3IgUkVDVVJSRU5DRV9QRVJJT0RJQyBtb2RlLgorICAgICAgICAgKiBJZiB0aGlzIGlzIG5vdCBzZXQsIHRoZW4gdGhlIGZyYW1ld29yayB3aWxsIHVzZSAxMDAwbXMgZm9yCisgICAgICAgICAqIG1pbkludGVydmFsIGFuZCB3aWxsIGNhbGwgc3RhcnQoKSBhbmQgc3RvcCgpIHRvIHNjaGVkdWxlIHRoZSBHTlNTLgorICAgICAgICAgKi8KKyAgICAgICAgU0NIRURVTElORyAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgLyoqIEdOU1Mgc3VwcG9ydHMgTVMtQmFzZWQgQUdOU1MgbW9kZSAqLworICAgICAgICBNU0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAxLAorICAgICAgICAvKiogR05TUyBzdXBwb3J0cyBNUy1Bc3Npc3RlZCBBR05TUyBtb2RlICovCisgICAgICAgIE1TQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIC8qKiBHTlNTIHN1cHBvcnRzIHNpbmdsZS1zaG90IGZpeGVzICovCisgICAgICAgIFNJTkdMRV9TSE9UICAgICAgICAgICAgICAgICAgICAgPSAxIDw8IDMsCisgICAgICAgIC8qKiBHTlNTIHN1cHBvcnRzIG9uIGRlbWFuZCB0aW1lIGluamVjdGlvbiAqLworICAgICAgICBPTl9ERU1BTkRfVElNRSAgICAgICAgICAgICAgICAgID0gMSA8PCA0LAorICAgICAgICAvKiogR05TUyBzdXBwb3J0cyBHZW9mZW5jaW5nICAqLworICAgICAgICBHRU9GRU5DSU5HICAgICAgICAgICAgICAgICAgICAgID0gMSA8PCA1LAorICAgICAgICAvKiogR05TUyBzdXBwb3J0cyBNZWFzdXJlbWVudHMgZm9yIGF0IGxlYXN0IEdQUy4gKi8KKyAgICAgICAgTUVBU1VSRU1FTlRTICAgICAgICAgICAgICAgICAgICA9IDEgPDwgNiwKKyAgICAgICAgLyoqIEdOU1Mgc3VwcG9ydHMgTmF2aWdhdGlvbiBNZXNzYWdlcyAqLworICAgICAgICBOQVZfTUVTU0FHRVMgICAgICAgICAgICAgICAgICAgID0gMSA8PCA3CisgICAgfTsKKworICAgIC8qKiBHTlNTIHN0YXR1cyBldmVudCB2YWx1ZXMuICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19TVEFUVVNfIikKKyAgICBlbnVtIEduc3NTdGF0dXNWYWx1ZSA6IHVpbnQ4X3QgeworICAgICAgICAvKiogR05TUyBzdGF0dXMgdW5rbm93bi4gKi8KKyAgICAgICAgTk9ORSAgICAgICAgICAgPSAwLAorICAgICAgICAvKiogR05TUyBoYXMgYmVndW4gbmF2aWdhdGluZy4gKi8KKyAgICAgICAgU0VTU0lPTl9CRUdJTiAgPSAxLAorICAgICAgICAvKiogR05TUyBoYXMgc3RvcHBlZCBuYXZpZ2F0aW5nLiAqLworICAgICAgICBTRVNTSU9OX0VORCAgICA9IDIsCisgICAgICAgIC8qKiBHTlNTIGhhcyBwb3dlcmVkIG9uIGJ1dCBpcyBub3QgbmF2aWdhdGluZy4gKi8KKyAgICAgICAgRU5HSU5FX09OICAgICAgPSAzLAorICAgICAgICAvKiogR05TUyBpcyBwb3dlcmVkIG9mZi4gKi8KKyAgICAgICAgRU5HSU5FX09GRiAgICAgPSA0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZsYWdzIHRoYXQgaW5kaWNhdGUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNhdGVsbGl0ZQorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX1NWX0ZMQUdTXyIpCisgICAgZW51bSBHbnNzU3ZGbGFncyA6IHVpbnQ4X3QgeworICAgICAgICBOT05FICAgICAgICAgICAgICAgICAgPSAwLAorICAgICAgICBIQVNfRVBIRU1FUklTX0RBVEEgICAgPSAxIDw8IDAsCisgICAgICAgIEhBU19BTE1BTkFDX0RBVEEgICAgICA9IDEgPDwgMSwKKyAgICAgICAgVVNFRF9JTl9GSVggICAgICAgICAgID0gMSA8PCAyLAorICAgICAgICBIQVNfQ0FSUklFUl9GUkVRVUVOQ1kgPSAxIDw8IDMKKyAgICB9OworCisgICAgc3RydWN0IEduc3NTdkluZm8geworICAgICAgICAvKioKKyAgICAgICAgICogUHNldWRvLXJhbmRvbSBudW1iZXIgZm9yIHRoZSBTViwgb3IgRkNOL09TTiBudW1iZXIgZm9yIEdsb25hc3MuIFRoZQorICAgICAgICAgKiBkaXN0aW5jdGlvbiBpcyBtYWRlIGJ5IGxvb2tpbmcgYXQgY29uc3RlbGxhdGlvbiBmaWVsZC4gVmFsdWVzIG11c3QgYmUKKyAgICAgICAgICogaW4gdGhlIHJhbmdlIG9mOgorICAgICAgICAgKgorICAgICAgICAgKiAtIEdOU1M6ICAgIDEtMzIKKyAgICAgICAgICogLSBTQkFTOiAgICAxMjAtMTUxLCAxODMtMTkyCisgICAgICAgICAqIC0gR0xPTkFTUzogMS0yNCwgdGhlIG9yYml0YWwgc2xvdCBudW1iZXIgKE9TTiksIGlmIGtub3duLiAgT3IsIGlmIG5vdDoKKyAgICAgICAgICogICAgICAgICAgICA5My0xMDYsIHRoZSBmcmVxdWVuY3kgY2hhbm5lbCBudW1iZXIgKEZDTikgKC03IHRvICs2KSBvZmZzZXQgYnkKKyAgICAgICAgICogICAgICAgICAgICArIDEwMAorICAgICAgICAgKiAgICAgICAgICAgIGkuZS4gcmVwb3J0IGFuIEZDTiBvZiAtNyBhcyA5MywgRkNOIG9mIDAgYXMgMTAwLCBhbmQgRkNOIG9mICs2CisgICAgICAgICAqICAgICAgICAgICAgYXMgMTA2LgorICAgICAgICAgKiAtIFFaU1M6ICAgIDE5My0yMDAKKyAgICAgICAgICogLSBHYWxpbGVvOiAxLTM2CisgICAgICAgICAqIC0gQmVpZG91OiAgMS0zNworICAgICAgICAgKi8KKyAgICAgICAgaW50MTZfdCBzdmlkOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZpbmVzIHRoZSBjb25zdGVsbGF0aW9uIG9mIHRoZSBnaXZlbiBTVi4KKyAgICAgICAgICovCisgICAgICAgIEduc3NDb25zdGVsbGF0aW9uVHlwZSBjb25zdGVsbGF0aW9uOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDYXJyaWVyLXRvLW5vaXNlIGRlbnNpdHkgaW4gZEItSHosIHR5cGljYWxseSBpbiB0aGUgcmFuZ2UgWzAsIDYzXS4KKyAgICAgICAgICogSXQgY29udGFpbnMgdGhlIG1lYXN1cmVkIEMvTjAgdmFsdWUgZm9yIHRoZSBzaWduYWwgYXQgdGhlIGFudGVubmEgcG9ydC4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGZsb2F0IGNOMERiaHo7CisKKyAgICAgICAgLyoqIEVsZXZhdGlvbiBvZiBTViBpbiBkZWdyZWVzLiAqLworICAgICAgICBmbG9hdCBlbGV2YXRpb25EZWdyZWVzOworCisgICAgICAgIC8qKiBBemltdXRoIG9mIFNWIGluIGRlZ3JlZXMuICovCisgICAgICAgIGZsb2F0IGF6aW11dGhEZWdyZWVzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBDYXJyaWVyIGZyZXF1ZW5jeSBvZiB0aGUgc2lnbmFsIHRyYWNrZWQsIGZvciBleGFtcGxlIGl0IGNhbiBiZSB0aGUKKyAgICAgICAgICogR1BTIGNlbnRyYWwgZnJlcXVlbmN5IGZvciBMMSA9IDE1NzUuNDUgTUh6LCBvciBMMiA9IDEyMjcuNjAgTUh6LCBMNSA9CisgICAgICAgICAqIDExNzYuNDUgTUh6LCB2YXJ5aW5nIEdMTyBjaGFubmVscywgZXRjLiBJZiB0aGUgZmllbGQgaXMgbm90IHNldCwgaXQKKyAgICAgICAgICogaXMgdGhlIHByaW1hcnkgY29tbW9uIHVzZSBjZW50cmFsIGZyZXF1ZW5jeSwgZS5nLiBMMSA9IDE1NzUuNDUgTUh6CisgICAgICAgICAqIGZvciBHUFMuCisgICAgICAgICAqCisgICAgICAgICAqIEZvciBhbiBMMSwgTDUgcmVjZWl2ZXIgdHJhY2tpbmcgYSBzYXRlbGxpdGUgb24gTDEgYW5kIEw1IGF0IHRoZSBzYW1lCisgICAgICAgICAqIHRpbWUsIHR3byBHbnNzU3ZJbmZvIHN0cnVjdHMgbXVzdCBiZSByZXBvcnRlZCBmb3IgdGhpcyBzYW1lCisgICAgICAgICAqIHNhdGVsbGl0ZSwgaW4gb25lIG9mIHRoZSBzdHJ1Y3RzLCBhbGwgdGhlIHZhbHVlcyByZWxhdGVkCisgICAgICAgICAqIHRvIEwxIG11c3QgYmUgZmlsbGVkLCBhbmQgaW4gdGhlIG90aGVyIGFsbCBvZiB0aGUgdmFsdWVzIHJlbGF0ZWQgdG8KKyAgICAgICAgICogTDUgbXVzdCBiZSBmaWxsZWQuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19DQVJSSUVSX0ZSRVFVRU5DWS4KKyAgICAgICAgICovCisgICAgICAgIGZsb2F0IGNhcnJpZXJGcmVxdWVuY3lIejsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ29udGFpbnMgYWRkaXRpb25hbCBkYXRhIGFib3V0IHRoZSBnaXZlbiBTVi4KKyAgICAgICAgICovCisgICAgICAgIGJpdGZpZWxkPEduc3NTdkZsYWdzPiBzdkZsYWc7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgU1Ygc3RhdHVzLgorICAgICAqLworICAgIHN0cnVjdCBHbnNzU3ZTdGF0dXMgeworICAgICAgICAvKioKKyAgICAgICAgICogTnVtYmVyIG9mIEdOU1MgU1ZzIGN1cnJlbnRseSB2aXNpYmxlLCByZWZlcnMgdG8gdGhlIFNWcyBzdG9yZWQgaW4gc3ZfbGlzdAorICAgICAgICAgKi8KKyAgICAgICAgdWludDMyX3QgbnVtU3ZzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBQb2ludGVyIHRvIGFuIGFycmF5IG9mIFNWcyBpbmZvcm1hdGlvbiBmb3IgYWxsIEdOU1MgY29uc3RlbGxhdGlvbnMsCisgICAgICAgICAqIGV4Y2VwdCBHTlNTLCB3aGljaCBpcyByZXBvcnRlZCB1c2luZyBzdkxpc3QKKyAgICAgICAgICovCisgICAgICAgIEduc3NTdkluZm9bR25zc01heDpTVlNfQ09VTlRdIGduc3NTdkxpc3Q7CisKKyAgICB9OworCisgICAgLyoqCisgICAgICogQ2FsbGVkIHdoZW4gYSBHTlNTIGxvY2F0aW9uIGlzIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhdGlvbiBMb2NhdGlvbiBpbmZvcm1hdGlvbiBmcm9tIEhBTC4KKyAgICAgKi8KKyAgICBnbnNzTG9jYXRpb25DYihHbnNzTG9jYXRpb24gbG9jYXRpb24pOworCisgICAgLyoqCisgICAgICogQ2FsbGVkIHRvIGNvbW11bmljYXRlIHRoZSBzdGF0dXMgb2YgdGhlIEdOU1MgZW5naW5lLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyBTdGF0dXMgaW5mb3JtYXRpb24gZnJvbSBIQUwuCisgICAgICovCisgICAgZ25zc1N0YXR1c0NiKEduc3NTdGF0dXNWYWx1ZSBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogQHBhcmFtIHN2SW5mbyBTViBzdGF0dXMgaW5mb3JtYXRpb24gZnJvbSBIQUwuCisgICAgICovCisgICAgZ25zc1N2U3RhdHVzQ2IoR25zc1N2U3RhdHVzIHN2SW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsZWQgd2hlbiBOTUVBIGRhdGEgaXMgYXZhaWxhYmxlLgorICAgICAqIENhbGxiYWNrIGZvciByZXBvcnRpbmcgTk1FQSBzZW50ZW5jZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIE1hcmtzIHRoZSBpbnN0YW5jZSBvZiByZXBvcnRpbmcuCisgICAgICogQHBhcmFtIG5tZWEgRm9sbG93cyBzdGFuZGFyZCBOTUVBIDAxODMuIEVhY2ggc2VudGVuY2UgYmVnaW5zIHdpdGggYSAnJCcKKyAgICAgKiBhbmQgZW5kcyB3aXRoIGEgY2FycmlhZ2UgcmV0dXJuL2xpbmUgZmVlZCBzZXF1ZW5jZSBhbmQgY2FuIGJlIG5vIGxvbmdlcgorICAgICAqIHRoYW4gODAgY2hhcmFjdGVycyBvZiB2aXNpYmxlIHRleHQgKHBsdXMgdGhlIGxpbmUgdGVybWluYXRvcnMpLiBUaGUgZGF0YQorICAgICAqIGlzIGNvbnRhaW5lZCB3aXRoaW4gdGhpcyBzaW5nbGUgbGluZSB3aXRoIGRhdGEgaXRlbXMgc2VwYXJhdGVkIGJ5IGNvbW1hcy4KKyAgICAgKiBUaGUgZGF0YSBpdHNlbGYgaXMganVzdCBhc2NpaSB0ZXh0IGFuZCBtYXkgZXh0ZW5kIG92ZXIgbXVsdGlwbGUgc2VudGVuY2VzCisgICAgICogaW4gY2VydGFpbiBzcGVjaWFsaXplZCBpbnN0YW5jZXMgYnV0IGlzIG5vcm1hbGx5IGZ1bGx5IGNvbnRhaW5lZCBpbiBvbmUKKyAgICAgKiB2YXJpYWJsZSBsZW5ndGggc2VudGVuY2UuIFRoZSBkYXRhIG1heSB2YXJ5IGluIHRoZSBhbW91bnQgb2YgcHJlY2lzaW9uCisgICAgICogY29udGFpbmVkIGluIHRoZSBtZXNzYWdlLiBGb3IgZXhhbXBsZSB0aW1lIG1pZ2h0IGJlIGluZGljYXRlZCB0byBkZWNpbWFsCisgICAgICogcGFydHMgb2YgYSBzZWNvbmQgb3IgbG9jYXRpb24gbWF5IGJlIHNob3duIHdpdGggMyBvciBldmVuIDQgZGlnaXRzIGFmdGVyCisgICAgICogdGhlIGRlY2ltYWwgcG9pbnQuIFByb2dyYW1zIHRoYXQgcmVhZCB0aGUgZGF0YSBtdXN0IG9ubHkgdXNlIHRoZSBjb21tYXMKKyAgICAgKiB0byBkZXRlcm1pbmUgdGhlIGZpZWxkIGJvdW5kYXJpZXMgYW5kIG5vdCBkZXBlbmQgb24gY29sdW1uIHBvc2l0aW9ucy4KKyAgICAgKiBUaGVyZSBpcyBhIHByb3Zpc2lvbiBmb3IgYSBjaGVja3N1bSBhdCB0aGUgZW5kIG9mIGVhY2ggc2VudGVuY2Ugd2hpY2ggbWF5CisgICAgICogb3IgbWF5IG5vdCBiZSBjaGVja2VkIGJ5IHRoZSB1bml0IHRoYXQgcmVhZHMgdGhlIGRhdGEuIFRoZSBjaGVja3N1bSBmaWVsZAorICAgICAqIGNvbnNpc3RzIG9mIGEgJyonIGFuZCB0d28gaGV4IGRpZ2l0cyByZXByZXNlbnRpbmcgYW4gOCBiaXQgZXhjbHVzaXZlIE9SCisgICAgICogb2YgYWxsIGNoYXJhY3RlcnMgYmV0d2VlbiwgYnV0IG5vdCBpbmNsdWRpbmcsIHRoZSAnJCcgYW5kICcqJy4KKyAgICAgKi8KKyAgICBnbnNzTm1lYUNiKEduc3NVdGNUaW1lIHRpbWVzdGFtcCwgc3RyaW5nIG5tZWEpOworCisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgdG8gaW5mb3JtIGZyYW1ld29yayBvZiB0aGUgR05TUyBlbmdpbmUncyBjYXBhYmlsaXRpZXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FwYWJpbGl0aWVzIENhcGFiaWxpdHkgcGFyYW1ldGVyIGlzIGEgYml0IGZpZWxkIG9mCisgICAgICogdGhlIENhcGFiaWxpdGllcyBlbnVtLgorICAgICAqLworICAgIGduc3NTZXRDYXBhYmlsaXRlc0NiKGJpdGZpZWxkPENhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKTsKKworICAgIC8qKgorICAgICAqIENhbGxiYWNrIHV0aWxpdHkgZm9yIGFjcXVpcmluZyB0aGUgR05TUyB3YWtlbG9jay4gVGhpcyBjYW4gYmUgdXNlZCB0byBwcmV2ZW50CisgICAgICogdGhlIENQVSBmcm9tIHN1c3BlbmRpbmcgd2hpbGUgaGFuZGxpbmcgR05TUyBldmVudHMuCisgICAgICovCisgICAgZ25zc0FjcXVpcmVXYWtlbG9ja0NiKCk7CisKKyAgICAvKiogQ2FsbGJhY2sgdXRpbGl0eSBmb3IgcmVsZWFzaW5nIHRoZSBHTlNTIHdha2Vsb2NrLiAqLworICAgIGduc3NSZWxlYXNlV2FrZWxvY2tDYigpOworCisgICAgLyoqIENhbGxiYWNrIGZvciByZXF1ZXN0aW5nIE5UUCB0aW1lICovCisgICAgZ25zc1JlcXVlc3RUaW1lQ2IoKTsKKworICAgIC8qKgorICAgICAqIFByb3ZpZGVzIGluZm9ybWF0aW9uIGFib3V0IGhvdyBuZXcgdGhlIHVuZGVybHlpbmcgR1BTL0dOU1MgaGFyZHdhcmUgYW5kCisgICAgICogc29mdHdhcmUgaXMuCisgICAgICoKKyAgICAgKiBUaGlzIGluZm9ybWF0aW9uIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBBbmRyb2lkIFRlc3QgQXBwbGljYXRpb25zLiBJZiBhIEdOU1MKKyAgICAgKiBIQUwgZG9lcyBub3QgcHJvdmlkZSB0aGlzIGluZm9ybWF0aW9uLCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgIjIwMTUgb3IKKyAgICAgKiBlYXJsaWVyIi4KKyAgICAgKgorICAgICAqIElmIGEgR05TUyBIQUwgZG9lcyBwcm92aWRlIHRoaXMgaW5mb3JtYXRpb24sIHRoZW4gbmV3ZXIgeWVhcnMgd2lsbCBuZWVkIHRvCisgICAgICogbWVldCBuZXdlciBDVFMgc3RhbmRhcmRzLiBFLmcuIGlmIHRoZSBkYXRlIGFyZSAyMDE2IG9yIGFib3ZlLCB0aGVuIE4rIGxldmVsCisgICAgICogR25zc01lYXN1cmVtZW50IHN1cHBvcnQgd2lsbCBiZSB2ZXJpZmllZC4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgR25zc1N5c3RlbUluZm97CisgICAgICAgIC8qKgorICAgICAgICAgKiB5ZWFyIGluIHdoaWNoIHRoZSBsYXN0IHVwZGF0ZSB3YXMgbWFkZSB0byB0aGUgdW5kZXJseWluZyBoYXJkd2FyZS9maXJtd2FyZQorICAgICAgICAgKiB1c2VkIHRvIGNhcHR1cmUgR05TUyBzaWduYWxzLCBlLmcuIDIwMTYKKyAgICAgICAgICovCisgICAgICAgIHVpbnQxNl90IHllYXJPZkh3OworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayB0byBpbmZvcm0gZnJhbWV3b3JrIG9mIHRoZSBlbmdpbmUncyBoYXJkd2FyZSB2ZXJzaW9uIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGluZm8gR25zc1N5c3RlbUluZm8gYWJvdXQgdGhlIEdQUy9HTlNTIGhhcmR3YXJlLgorICAgICAqLworICAgIGduc3NTZXRTeXN0ZW1JbmZvQ2IoR25zc1N5c3RlbUluZm8gaW5mbyk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NDb25maWd1cmF0aW9uLmhhbCBiL2duc3MvMS4wL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTMxNTI4NgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzQ29uZmlndXJhdGlvbi5oYWwKQEAgLTAsMCArMSwxNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKgorICogSW50ZXJmYWNlIGZvciBwYXNzaW5nIEdOU1MgY29uZmlndXJhdGlvbiBpbmZvIGZyb20gcGxhdGZvcm0gdG8gSEFMLgorICovCitpbnRlcmZhY2UgSUduc3NDb25maWd1cmF0aW9uIHsKKyAgICAvKioKKyAgICAgKiBFbnVtIHdoaWNoIGhvbGRzIHRoZSBiaXQgbWFza3MgZm9yIFNVUExfTU9ERSBjb25maWd1cmF0aW9uIHBhcmFtZXRlci4KKyAgICAgKi8KKyAgICBlbnVtIFN1cGxNb2RlIDogdWludDhfdCB7CisgICAgICAgIC8qKiBNb2JpbGUgU3RhdGlvbiBCYXNlZCAqLworICAgICAgICBNU0IgPSAweDAxLAorCisgICAgICAgIC8qKiBNb2JpbGUgU3RhdGlvbiBBc3Npc3RlZCAqLworICAgICAgICBNU0EgPSAweDAyCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEVudW0gd2hpY2ggaG9sZHMgdGhlIGJpdCBtYXNrcyBmb3IgR1BTX0xPQ0sgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuCisgICAgICovCisgICAgZW51bSBHcHNMb2NrIDogdWludDhfdCB7CisgICAgICAgIC8qKiBMb2NrIE1vYmlsZSBPcmlnaW5hdGVkIEdQUyBmdW5jdGlvbmFsaXR1ZXMuICovCisgICAgICAgIE1PICAgID0gIDB4MDEsCisKKyAgICAgICAgLyoqIExvY2sgTmV0d29yayBpbml0aWF0ZWQgR1BTIGZ1bmN0aW9uYWxpdGllcy4gKi8KKyAgICAgICAgTkkgICAgPSAgMHgwMgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBFbnVtIHRoYXQgaG9sZCB0aGUgYml0IG1hc2tzIGZvciB2YXJpb3VzIExURSBQb3NpdGlvbmluZyBQcm9maWxlIHNldHRpbmdzIChMUFBfUFJPRklMRQorICAgICAqIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyKS4gSWYgbm9uZSBvZiB0aGUgYml0cyBpbiB0aGUgZW51bSBhcmUgc2V0LCB0aGUgZGVmYXVsdCBzZXR0aW5nIGlzCisgICAgICogUmFkaW8gUmVzb3VyY2UgTG9jYXRpb24gUHJvdG9jb2woUlJMUCkuCisgICAgICovCisgICAgZW51bSBMcHBQcm9maWxlIDogdWludDhfdCB7CisgICAgICAgIC8qKiBFbmFibGUgTFRFIFBvc2l0aW9uaW5nIFByb3RvY29sIHVzZXIgcGxhbmUgKi8KKyAgICAgICAgVVNFUl9QTEFORSAgICAgICAgICA9IDB4MDEsCisKKyAgICAgICAgLyoqIEVuYWJsZSBMVEUgUG9zaXRpb25pbmcgUHJvdG9jb2wgQ29udHJvbCBwbGFuZSAqLworICAgICAgICBDT05UUk9MX1BMQU5FICAgICAgID0gMHgwMgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBFbnVtIHdoaWNoIGhvbGRzIHRoZSBiaXQgbWFza3MgZm9yIEFfR0xPTkFTU19QT1NfUFJPVE9DT0xfU0VMRUNUCisgICAgICogY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuCisgICAgICovCisgICAgZW51bSBHbG9uYXNzUG9zUHJvdG9jb2wgOiB1aW50OF90IHsKKyAgICAgICAgLyoqIFJhZGlvIFJlc291cmNlIENvbnRyb2woUlJDKSBjb250cm9sLXBsYW5lLiAqLworICAgICAgICBSUkNfQ1BMQU5FICAgICAgICAgICAgICAgICAgPSAweDAxLAorCisgICAgICAgIC8qKiBSYWRpbyBSZXNvdXJjZSBMb2NhdGlvbiB1c2VyLXBsYW5lLiAqLworICAgICAgICBSUkxQX0NQTEFORSAgICAgICAgICAgICAgICAgPSAweDAyLAorCisgICAgICAgIC8qKiBMVEUgUG9zaXRpb25pbmcgUHJvdG9jb2wgVXNlciBwbGFuZSAqLworICAgICAgICBMUFBfVVBMQU5FICAgICAgICAgICAgICAgICAgPSAweDA0CisgICAgfTsKKworICAgIC8qKgorICAgICAqIElNUE9SVEFOVDogR05TUyBIQUwgbXVzdCBleHBlY3QgdGhlIGJlbG93IG1ldGhvZHMgdG8gYmUgY2FsbGVkIG11bHRpcGxlCisgICAgICogdGltZXMuIFRoZXkgY2FuIGJlIGNhbGxlZCBldmVuIHdoZW4gR25zc0xvY2F0aW9uUHJvdmlkZXIgaXMgYWxyZWFkeQorICAgICAqIGNvbnN0cnVjdGVkIGFuZCBlbmFibGVkLiBHTlNTIEhBTCBtdXN0IG1haW50YWluIHRoZSBleGlzdGluZyByZXF1ZXN0cworICAgICAqIGZvciB2YXJpb3VzIGNhbGxiYWNrcyByZWdhcmRsZXNzIHRoZSBjaGFuZ2UgaW4gY29uZmlndXJhdGlvbiBkYXRhLgorICAgICAqLworCisgICAgIC8qKgorICAgICAgKiBUaGlzIG1ldGhvZCBlbmFibGVzIG9yIGRpc2FibGVzIGVtZXJnZW5jeSBTVVBMLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gZW5hYmxlZCBUcnVlIGlmIGVtZXJnZW5jeSBTVVBMIGlzIHRvIGJlIGVuYWJsZWQuCisgICAgICAqCisgICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICovCisgICAgIHNldFN1cGxFcyhib29sIGVuYWJsZWQpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgICAvKioKKyAgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgU1VQTCB2ZXJzaW9uIHJlcXVlc3RlZCBieSBDYXJyaWVyLiBUaGUgR05TUyBIQUwKKyAgICAgICogbXVzdCB1c2UgdGhpcyB2ZXJzaW9uIG9mIHRoZSBTVVBMIHByb3RvY29sIGlmIHN1cHBvcnRlZC4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIHZlcnNpb24gU1VQTCB2ZXJzaW9uIHJlcXVlc3RlZCBieSBjYXJyaWVyLiBUaGlzIGlzIGEgYml0IG1hc2sKKyAgICAgICogd2l0aCBiaXRzIDA6NyByZXByZXNlbnRpbmcgYSBzZXJ2aWNlIGluZGljYXRvciBmaWVsZCwgYml0cyA4OjE1CisgICAgICAqIHJlcHJlc2VudGluZyB0aGUgbWlub3IgdmVyc2lvbiBhbmQgYml0cyAxNjoyMyByZXByZXNlbnRpbmcgdGhlCisgICAgICAqIG1ham9yIHZlcnNpb24uCisgICAgICAqCisgICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICovCisgICAgIHNldFN1cGxWZXJzaW9uKHVpbnQzMl90IHZlcnNpb24pIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgICAvKioKKyAgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgU1VQTCBtb2RlLgorICAgICAgKgorICAgICAgKiBAcGFyYW0gbW9kZSBCaXQgbWFzayB0aGF0IHNwZWNpZmllcyB0aGUgU1VQTCBtb2RlIHdoaWNoIGlzIHNldCB3aXRoIHRoZSBTdXBsTW9kZSBlbnVtLgorICAgICAgKgorICAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAgICAqLworICAgICBzZXRTdXBsTW9kZShiaXRmaWVsZDxTdXBsTW9kZT4gbW9kZSkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgIC8qKgorICAgICAgKiBUaGlzIHNldHRpbmcgY29uZmlndXJlcyBob3cgR1BTIGZ1bmN0aW9uYWxpdGllcyBzaG91bGQgYmUgbG9ja2VkIHdoZW4KKyAgICAgICogdXNlciB0dXJucyBvZmYgR1BTIE9uIHNldHRpbmcuCisgICAgICAqCisgICAgICAqIEBwYXJhbSBsb2NrIEJpdG1hc2sgdGhhdCBzcGVjaWZpZXMgdGhlIEdQUyBmdW5jdGlvbmFsaXRpZXMgdG8gYmUgYmUKKyAgICAgICogbG9ja2VkIGFzIHBlciB0aGUgR3BzTG9jayBlbnVtLgorICAgICAgKgorICAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAgICAqLworICAgICBzZXRHcHNMb2NrKGJpdGZpZWxkPEdwc0xvY2s+IGxvY2spIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgICAvKioKKyAgICAgICogVGhpcyBtZXRob2Qgc2V0cyB0aGUgTFRFIFBvc2l0aW9uaW5nIFByb2ZpbGUgY29uZmlndXJhdGlvbi4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGxwcFByb2ZpbGUgQml0bWFzayB0aGF0IHNwZWNpZmllcyB0aGUgTFRFIFBvc2l0aW9uaW5nIFByb2ZpbGUKKyAgICAgICogY29uZmlndXJhdGlvbiB0byBiZSBzZXQgYXMgcGVyIHRoZSBMcHBQcm9maWxlIGVudW0uCisgICAgICAqCisgICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4KKyAgICAgICovCisgICAgIHNldExwcFByb2ZpbGUoYml0ZmllbGQ8THBwUHJvZmlsZT4gbHBwUHJvZmlsZSkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworCisgICAgIC8qKgorICAgICAgKiBUaGlzIG1ldGhvZCBzZWxlY3RzIHBvc2l0aW9uaW5nIHByb3RvY29sIG9uIEEtR2xvbmFzcyBzeXN0ZW0uCisgICAgICAqCisgICAgICAqIEBwYXJhbSBwcm90b2NvbCBCaXRtYXNrIHRoYXQgc3BlY2lmaWVzIHRoZSBwb3NpdGlvbmluZyBwcm90b2NvbCB0byBiZQorICAgICAgKiBzZXQgYXMgcGVyIEdsb25hc3NQb3NQcm90b2NvbCBlbnVtLgorICAgICAgKgorICAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiBvcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwuCisgICAgICAqLworICAgICBzZXRHbG9uYXNzUG9zaXRpb25pbmdQcm90b2NvbChiaXRmaWVsZDxHbG9uYXNzUG9zUHJvdG9jb2w+IHByb3RvY29sKSBnZW5lcmF0ZXMgKGJvb2wgc3VjY2Vzcyk7CisKKyAgICAgLyoqCisgICAgICAqIFRoaXMgbWV0aG9kIGNvbmZpZ3VyZXMgd2hpY2ggUEROIHRvIHVzZS4KKyAgICAgICoKKyAgICAgICogQHBhcmFtIGVuYWJsZSBVc2UgZW1lcmdlbmN5IFBETiBpZiB0cnVlIGFuZCByZWd1bGFyIFBETiBpZiBmYWxzZS4KKyAgICAgICogQHJldHVybiBzdWNjZXNzIFRydWUgaWYgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLgorICAgICAgKi8KKyAgICAgc2V0RW1lcmdlbmN5U3VwbFBkbihib29sIGVuYWJsZSkgZ2VuZXJhdGVzIChib29sIHN1Y2Nlc3MpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzRGVidWcuaGFsIGIvZ25zcy8xLjAvSUduc3NEZWJ1Zy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGM0Y2ZiOAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzRGVidWcuaGFsCkBAIC0wLDAgKzEsMTg4IEBACitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIERFQlVHIHN1cHBvcnQuICovCitpbnRlcmZhY2UgSUduc3NEZWJ1ZyB7CisgICAgZW51bSBTYXRlbGxpdGVFcGhlbWVyaXNUeXBlIDogdWludDhfdCB7CisgICAgICAgIC8qKiBFcGhlbWVyaXMgaXMga25vd24gZm9yIHRoaXMgc2F0ZWxsaXRlLiAqLworICAgICAgICBFUEhFTUVSSVMsCisgICAgICAgIC8qKgorICAgICAgICAgKiBFcGhlbWVyaXMgaXMgbm90IGtub3duLCBidXQgQWxtYW5hYyAoYXBwcm94aW1hdGUgbG9jYXRpb24pIGlzIGtub3duLgorICAgICAgICAgKi8KKyAgICAgICAgQUxNQU5BQ19PTkxZLAorICAgICAgICAvKioKKyAgICAgICAgICogQm90aCBlcGhlbWVyaXMgJiBhbG1hbmFjIGFyZSBub3Qga25vd24gKGUuZy4gZHVyaW5nIGEgY29sZCBzdGFydAorICAgICAgICAgKiBibGluZCBzZWFyY2guKQorICAgICAgICAgKi8KKyAgICAgICAgTk9UX0FWQUlMQUJMRQorICAgIH07CisKKyAgICBlbnVtIFNhdGVsbGl0ZUVwaGVtZXJpc1NvdXJjZSA6IHVpbnQ4X3QgeworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVwaGVtZXJpcyAob3IgYWxtYW5hYyBvbmx5KSBpbmZvcm1hdGlvbiB3YXMgZGVtb2R1bGF0ZWQgZnJvbSB0aGUKKyAgICAgICAgICogc2lnbmFsIHJlY2VpdmVkIG9uIHRoZSBkZXZpY2UKKyAgICAgICAgICovCisgICAgICAgIERFTU9EVUxBVEVELAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVwaGVtZXJpcyAob3IgYWxtYW5hYyBvbmx5KSBpbmZvcm1hdGlvbiB3YXMgcmVjZWl2ZWQgZnJvbSBhIFNVUEwKKyAgICAgICAgICogc2VydmVyLgorICAgICAgICAgKi8KKyAgICAgICAgU1VQTF9QUk9WSURFRCwKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBlcGhlbWVyaXMgKG9yIGFsbWFuYWMgb25seSkgaW5mb3JtYXRpb24gd2FzIHByb3ZpZGVkIGJ5IGFub3RoZXIKKyAgICAgICAgICogc2VydmVyLgorICAgICAgICAgKi8KKyAgICAgICAgT1RIRVJfU0VSVkVSX1BST1ZJREVELAorICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGVwaGVtZXJpcyAob3IgYWxtYW5hYyBvbmx5KSBpbmZvcm1hdGlvbiB3YXMgcHJvdmlkZWQgYnkgYW5vdGhlcgorICAgICAgICAgKiBtZXRob2QsIGUuZy4gaW5qZWN0ZWQgdmlhIGEgbG9jYWwgZGVidWcgdG9vbCwgZnJvbSBidWlsZCBkZWZhdWx0cworICAgICAgICAgKiAoZS5nLiBhbG1hbmFjKSwgb3IgaXMgZnJvbSBhIHNhdGVsbGl0ZQorICAgICAgICAgKiB3aXRoIFNhdGVsbGl0ZUVwaGVtZXJpc1R5cGU6Ok5PVF9BVkFJTEFCTEUuCisgICAgICAgICAqLworICAgICAgICBPVEhFUgorICAgIH07CisKKyAgICBlbnVtIFNhdGVsbGl0ZUVwaGVtZXJpc0hlYWx0aCA6IHVpbnQ4X3QgeworICAgICAgICAvKiogVGhlIGVwaGVtZXJpcyBpcyBrbm93biBnb29kLiAqLworICAgICAgICBHT09ELAorICAgICAgICAvKiogVGhlIGVwaGVtZXJpcyBpcyBrbm93biBiYWQuICovCisgICAgICAgIEJBRCwKKyAgICAgICAgLyoqIFRoZSBlcGhlbWVyaXMgaXMgdW5rbm93biB0byBiZSBnb29kIG9yIGJhZC4gKi8KKyAgICAgICAgVU5LTk9XTgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyB0aGUgY3VycmVudCBiZXN0IGtub3duIHBvc2l0aW9uIGZyb20gYW55CisgICAgICogc291cmNlIChHTlNTIG9yIGluamVjdGVkIGFzc2lzdGFuY2UpLgorICAgICAqLworICAgIHN0cnVjdCBQb3NpdGlvbkRlYnVnIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFZhbGlkaXR5IG9mIHRoZSBkYXRhIGluIHRoaXMgc3RydWN0LiBGYWxzZSBvbmx5IGlmIG5vCisgICAgICAgICAqIGxhdGl0dWRlL2xvbmdpdHVkZSBpbmZvcm1hdGlvbiBpcyBrbm93bi4KKyAgICAgICAgICovCisgICAgICAgIGJvb2wgdmFsaWQ7CisgICAgICAgIC8qKiBMYXRpdHVkZSBleHByZXNzZWQgaW4gZGVncmVlcyAqLworICAgICAgICBkb3VibGUgbGF0aXR1ZGVEZWdyZWVzOworICAgICAgICAvKiogTG9uZ2l0dWRlIGV4cHJlc3NlZCBpbiBkZWdyZWVzICovCisgICAgICAgIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzOworICAgICAgICAvKiogQWx0aXR1ZGUgYWJvdmUgZWxsaXBzb2lkIGV4cHJlc3NlZCBpbiBtZXRlcnMgKi8KKyAgICAgICAgZmxvYXQgYWx0aXR1ZGVNZXRlcnM7CisgICAgICAgIC8qKiBSZXByZXNlbnRzIGhvcml6b250YWwgc3BlZWQgaW4gbWV0ZXJzIHBlciBzZWNvbmQuICovCisgICAgICAgIGZsb2F0IHNwZWVkTWV0ZXJzUGVyU2VjOworICAgICAgICAvKiogUmVwcmVzZW50cyBoZWFkaW5nIGluIGRlZ3JlZXMuICovCisgICAgICAgIGZsb2F0IGJlYXJpbmdEZWdyZWVzOworICAgICAgICAvKioKKyAgICAgICAgICogRXN0aW1hdGVkIGhvcml6b250YWwgYWNjdXJhY3kgb2YgcG9zaXRpb24gZXhwcmVzc2VkIGluIG1ldGVycywKKyAgICAgICAgICogcmFkaWFsLCA2OCUgY29uZmlkZW5jZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBob3Jpem9udGFsQWNjdXJhY3lNZXRlcnM7CisgICAgICAgIC8qKgorICAgICAgICAgKiBFc3RpbWF0ZWQgdmVydGljYWwgYWNjdXJhY3kgb2YgcG9zaXRpb24gZXhwcmVzc2VkIGluIG1ldGVycywgd2l0aAorICAgICAgICAgKiA2OCUgY29uZmlkZW5jZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSB2ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzOworICAgICAgICAvKioKKyAgICAgICAgICogRXN0aW1hdGVkIHNwZWVkIGFjY3VyYWN5IGluIG1ldGVycyBwZXIgc2Vjb25kIHdpdGggNjglIGNvbmZpZGVuY2UuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgc3BlZWRBY2N1cmFjeU1ldGVyc1BlclNlY29uZDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIGVzdGltYXRlZCBiZWFyaW5nIGFjY3VyYWN5IGRlZ3JlZXMgd2l0aCA2OCUgY29uZmlkZW5jZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBiZWFyaW5nQWNjdXJhY3lEZWdyZWVzOworICAgICAgICAvKioKKyAgICAgICAgICogVGltZSBkdXJhdGlvbiBiZWZvcmUgdGhpcyByZXBvcnQgdGhhdCB0aGlzIHBvc2l0aW9uIGluZm9ybWF0aW9uIHdhcworICAgICAgICAgKiB2YWxpZC4gIFRoaXMgY2FuLCBmb3IgZXhhbXBsZSwgYmUgYSBwcmV2aW91cyBpbmplY3RlZCBsb2NhdGlvbiB3aXRoCisgICAgICAgICAqIGFuIGFnZSBwb3RlbnRpYWxseSB0aG91c2FuZHMgb2Ygc2Vjb25kcyBvbGQsIG9yCisgICAgICAgICAqIGV4dHJhcG9sYXRlZCB0byB0aGUgY3VycmVudCB0aW1lICh3aXRoIGFwcHJvcHJpYXRlbHkgaW5jcmVhc2VkCisgICAgICAgICAqIGFjY3VyYWN5IGVzdGltYXRlcyksIHdpdGggYSAobmVhcikgemVybyBhZ2UuCisgICAgICAgICAqLworICAgICAgICBmbG9hdCBhZ2VTZWNvbmRzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyB0aGUgY3VycmVudCBiZXN0IGtub3duIFVUQyB0aW1lIGVzdGltYXRlLgorICAgICAqIElmIG5vIGZyZXNoIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSwgZS5nLiBhZnRlciBhIGRlbGV0ZSBhbGwsCisgICAgICogdGhlbiB3aGF0ZXZlciB0aGUgZWZmZWN0aXZlIGRlZmF1bHRzIGFyZSBvbiB0aGUgZGV2aWNlIG11c3QgYmUKKyAgICAgKiBwcm92aWRlZCAoZS5nLiBKYW4uIDEsIDIwMTcsIHdpdGggYW4gdW5jZXJ0YWludHkgb2YgNSB5ZWFycykgZXhwcmVzc2VkCisgICAgICogaW4gdGhlIHNwZWNpZmllZCB1bml0cy4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgVGltZURlYnVnIHsKKyAgICAgICAgLyoqIFVUQyB0aW1lIGVzdGltYXRlLiAqLworICAgICAgICBHbnNzVXRjVGltZSB0aW1lRXN0aW1hdGU7CisgICAgICAgIC8qKiA2OCUgZXJyb3IgZXN0aW1hdGUgaW4gdGltZS4gKi8KKyAgICAgICAgZmxvYXQgdGltZVVuY2VydGFpbnR5TnM7CisgICAgICAgIC8qKgorICAgICAgICAgKiA2OCUgZXJyb3IgZXN0aW1hdGUgaW4gbG9jYWwgY2xvY2sgZHJpZnQsCisgICAgICAgICAqIGluIG5hbm9zZWNvbmRzIHBlciBzZWNvbmQgKGFsc28ga25vd24gYXMgcGFydHMgcGVyIGJpbGxpb24gLSBwcGIuKQorICAgICAgICAgKi8KKyAgICAgICAgZmxvYXQgZnJlcXVlbmN5VW5jZXJ0YWludHlOc1BlclNlYzsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUHJvdmlkZXMgYSBzaW5nbGUgc2F0ZWxsaXRlIGluZm8gdGhhdCBoYXMgZGVjb2RlZCBuYXZpZ2F0aW9uIGRhdGEuCisgICAgICovCisgICAgc3RydWN0IFNhdGVsbGl0ZURhdGEgeworICAgICAgICAvKiogU2F0ZWxsaXRlIHZlaGljbGUgSUQgbnVtYmVyICovCisgICAgICAgIGludDE2X3Qgc3ZpZDsKKyAgICAgICAgLyoqIERlZmluZXMgdGhlIGNvbnN0ZWxsYXRpb24gdHlwZSBvZiB0aGUgZ2l2ZW4gU1YuICovCisgICAgICAgIEduc3NDb25zdGVsbGF0aW9uVHlwZSBjb25zdGVsbGF0aW9uOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZpbmVzIHRoZSBzdGFuZGFyZCBicm9hZGNhc3QgZXBoZW1lcmlzIG9yIGFsbWFuYWMgYXZhaWxhYmlsaXR5IGZvcgorICAgICAgICAgKiB0aGUgc2F0ZWxsaXRlLiAgVG8gcmVwb3J0IHN0YXR1cyBvZiBwcmVkaWN0ZWQgb3JiaXQgYW5kIGNsb2NrCisgICAgICAgICAqIGluZm9ybWF0aW9uLCBzZWUgdGhlIHNlcnZlclByZWRpY3Rpb24gZmllbGRzIGJlbG93LgorICAgICAgICAgKi8KKyAgICAgICAgU2F0ZWxsaXRlRXBoZW1lcmlzVHlwZSBlcGhlbWVyaXNUeXBlOworICAgICAgICAvKiogRGVmaW5lcyB0aGUgZXBoZW1lcmlzIHNvdXJjZSBvZiB0aGUgc2F0ZWxsaXRlLiAqLworICAgICAgICBTYXRlbGxpdGVFcGhlbWVyaXNTb3VyY2UgZXBoZW1lcmlzU291cmNlOworICAgICAgICAvKioKKyAgICAgICAgICogRGVmaW5lcyB3aGV0aGVyIHRoZSBzYXRlbGxpdGUgaXMga25vd24gaGVhbHRoeQorICAgICAgICAgKiAoc2FmZSBmb3IgdXNlIGluIGxvY2F0aW9uIGNhbGN1bGF0aW9uLikKKyAgICAgICAgICovCisgICAgICAgIFNhdGVsbGl0ZUVwaGVtZXJpc0hlYWx0aCBlcGhlbWVyaXNIZWFsdGg7CisgICAgICAgIC8qKgorICAgICAgICAgKiBUaW1lIGR1cmF0aW9uIGZyb20gdGhpcyByZXBvcnQgKGN1cnJlbnQgdGltZSksIG1pbnVzIHRoZQorICAgICAgICAgKiBlZmZlY3RpdmUgdGltZSBvZiB0aGUgZXBoZW1lcmlzIHNvdXJjZSAoZS5nLiBUT0UsIFRPQS4pCisgICAgICAgICAqIFNldCB0byAwIHdoZW4gZXBoZW1lcmlzVHlwZSBpcyBOT1RfQVZBSUxBQkxFLgorICAgICAgICAgKi8KKyAgICAgICAgZmxvYXQgZXBoZW1lcmlzQWdlU2Vjb25kczsKKworICAgICAgICAvKioKKyAgICAgICAgICogVHJ1ZSBpZiBhIHNlcnZlciBoYXMgcHJvdmlkZWQgYSBwcmVkaWN0ZWQgb3JiaXQgYW5kIGNsb2NrIG1vZGVsIGZvcgorICAgICAgICAgKiB0aGlzIHNhdGVsbGl0ZS4KKyAgICAgICAgICovCisgICAgICAgIGJvb2wgc2VydmVyUHJlZGljdGlvbklzQXZhaWxhYmxlOworICAgICAgICAvKioKKyAgICAgICAgICogVGltZSBkdXJhdGlvbiBmcm9tIHRoaXMgcmVwb3J0IChjdXJyZW50IHRpbWUpIG1pbnVzIHRoZSB0aW1lIG9mIHRoZQorICAgICAgICAgKiBzdGFydCBvZiB0aGUgc2VydmVyIHByZWRpY3RlZCBpbmZvcm1hdGlvbi4gIEZvciBleGFtcGxlLCBhIDEgZGF5CisgICAgICAgICAqIG9sZCBwcmVkaWN0aW9uIHdvdWxkIGJlIHJlcG9ydGVkIGFzIDg2NDAwIHNlY29uZHMgaGVyZS4KKyAgICAgICAgICovCisgICAgICAgIGZsb2F0IHNlcnZlclByZWRpY3Rpb25BZ2VTZWNvbmRzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyBhIHNldCBvZiBkZWJ1ZyBpbmZvcm1hdGlvbiB0aGF0IGlzIGZpbGxlZCBieSB0aGUgR05TUyBjaGlwc2V0CisgICAgICogd2hlbiB0aGUgbWV0aG9kIGdldERlYnVnRGF0YSgpIGlzIGludm9rZWQuCisgICAgICovCisgICAgc3RydWN0IERlYnVnRGF0YSB7CisgICAgICAgIC8qKiBDdXJyZW50IGJlc3Qga25vd24gcG9zaXRpb24uICovCisgICAgICAgIFBvc2l0aW9uRGVidWcgcG9zaXRpb247CisgICAgICAgIC8qKiBDdXJyZW50IGJlc3Qga25vdyB0aW1lIGVzdGltYXRlICovCisgICAgICAgIFRpbWVEZWJ1ZyB0aW1lOworICAgICAgICAvKioKKyAgICAgICAgICogUHJvdmlkZXMgYSBsaXN0IG9mIHRoZSBhdmFpbGFibGUgc2F0ZWxsaXRlIGRhdGEsIGZvciBhbGwKKyAgICAgICAgICogc2F0ZWxsaXRlcyBhbmQgY29uc3RlbGxhdGlvbnMgdGhlIGRldmljZSBjYW4gdHJhY2ssCisgICAgICAgICAqIGluY2x1ZGluZyBHbnNzQ29uc3RlbGxhdGlvblR5cGUgVU5LTk9XTi4KKyAgICAgICAgICovCisgICAgICAgIHZlYzxTYXRlbGxpdGVEYXRhPiBzYXRlbGxpdGVEYXRhQXJyYXk7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFRoaXMgbWV0aG9kcyByZXF1ZXN0cyBwb3NpdGlvbiwgdGltZSBhbmQgc2F0ZWxsaXRlIGVwaGVtZXJpcyBkZWJ1ZyBpbmZvcm1hdGlvbgorICAgICAqIGZyb20gdGhlIEhBTC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gcmV0IGRlYnVnRGF0YSBpbmZvcm1hdGlvbiBmcm9tIEdOU1MgSGFsIHRoYXQgY29udGFpbnMgdGhlIGN1cnJlbnQgYmVzdAorICAgICAqIGtub3duIHBvc2l0aW9uLCBiZXN0IGtub3duIHRpbWUgZXN0aW1hdGUgYW5kIGEgY29tcGxldGUgbGlzdCBvZgorICAgICAqIGNvbnN0ZWxsYXRpb25zIHRoYXQgdGhlIGRldmljZSBjYW4gdHJhY2suCisgICAgICovCisgICAgZ2V0RGVidWdEYXRhKCkgZ2VuZXJhdGVzIChEZWJ1Z0RhdGEgZGVidWdEYXRhKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc0dlb2ZlbmNlQ2FsbGJhY2suaGFsIGIvZ25zcy8xLjAvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzM3OTBhCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvSUduc3NHZW9mZW5jZUNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDE5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworLyoqCisgKiBHTlNTIEdlb2ZlbmNlLgorICogVGhlcmUgYXJlIDMgc3RhdGVzIGFzc29jaWF0ZWQgd2l0aCBhIEdlb2ZlbmNlOiBJbnNpZGUsIE91dHNpZGUsIFVua25vd24uCisgKiBUaGVyZSBhcmUgMyB0cmFuc2l0aW9uczogRU5URVJFRCwgRVhJVEVELCBVTkNFUlRBSU4uCisgKgorICogQW4gZXhhbXBsZSBzdGF0ZSBkaWFncmFtIHdpdGggY29uZmlkZW5jZSBsZXZlbDogOTUlIGFuZCBVbmtub3duIHRpbWUgbGltaXQKKyAqIHNldCBhcyAzMCBzZWNzIGlzIHNob3duIGJlbG93LiAoY29uZmlkZW5jZSBsZXZlbCBhbmQgVW5rbm93biB0aW1lIGxpbWl0IGFyZQorICogZXhwbGFpbmVkIGxhdHRlcikuCisgKiAgICAgICAgICAgICAgICAgICAgICAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgKiAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgVW5rbm93biAoMzAgc2VjcykgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeIHwgICAgICAgICAgICAgICAgICB8ICBeCisgKiAgICAgICAgICAgICAgICAgICBVTkNFUlRBSU58IHxFTlRFUkVEICAgICBFWElURUR8ICB8VU5DRVJUQUlOCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHYgICAgICAgICAgICAgICAgICB2ICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgIF9fX19fX19fICAgIEVYSVRFRCAgICAgX19fX19fX19fCisgKiAgICAgICAgICAgICAgICAgICAgICAgfCBJbnNpZGUgfCAtLS0tLS0tLS0tLT4gfCBPdXRzaWRlIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICB8IDwtLS0tLS0tLS0tLSB8ICAgICAgICAgfAorICogICAgICAgICAgICAgICAgICAgICAgICAiIiIiIiIiIiAgICBFTlRFUkVEICAgICIiIiIiIiIiIgorICoKKyAqIEluc2lkZSBzdGF0ZTogV2UgYXJlIDk1JSBjb25maWRlbnQgdGhhdCB0aGUgdXNlciBpcyBpbnNpZGUgdGhlIGdlb2ZlbmNlLgorICogT3V0c2lkZSBzdGF0ZTogV2UgYXJlIDk1JSBjb25maWRlbnQgdGhhdCB0aGUgdXNlciBpcyBvdXRzaWRlIHRoZSBnZW9mZW5jZQorICogVW5rbm93biBzdGF0ZTogUmVzdCBvZiB0aGUgdGltZS4KKyAqCisgKiBUaGUgVW5rbm93biBzdGF0ZSBpcyBiZXR0ZXIgZXhwbGFpbmVkIHdpdGggYW4gZXhhbXBsZToKKyAqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX19fX19fX19fCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICBjfAorICogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBfX18gICAgIHwgICAgX19fX19fXworICogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB8YXwgICAgIHwgICB8ICAgYiAgIHwKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIiIiICAgICB8ICAgICIiIiIiIiIKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8CisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiIiIiIiIiIiCisgKiBJbiB0aGUgZGlhZ3JhbSBhYm92ZSwgImEiIGFuZCAiYiIgYXJlIDIgZ2VvZmVuY2VzIGFuZCAiYyIgaXMgdGhlIGFjY3VyYWN5CisgKiBjaXJjbGUgcmVwb3J0ZWQgYnkgdGhlIEdOU1Mgc3Vic3lzdGVtLiBOb3cgd2l0aCByZWdhcmQgdG8gImIiLCB0aGUgc3lzdGVtIGlzCisgKiBjb25maWRlbnQgdGhhdCB0aGUgdXNlciBpcyBvdXRzaWRlLiBCdXQgd2l0aCByZWdhcmQgdG8gImEiIGlzIG5vdCBjb25maWRlbnQKKyAqIHdoZXRoZXIgaXQgaXMgaW5zaWRlIG9yIG91dHNpZGUgdGhlIGdlb2ZlbmNlLiBJZiB0aGUgYWNjdXJhY3kgcmVtYWlucyB0aGUKKyAqIHNhbWUgZm9yIGEgc3VmZmljaWVudCBwZXJpb2Qgb2YgdGltZSwgdGhlIFVOQ0VSVEFJTiB0cmFuc2l0aW9uIG11c3QgYmUKKyAqIHRyaWdnZXJlZCB3aXRoIHRoZSBzdGF0ZSBzZXQgdG8gVW5rbm93bi4gSWYgdGhlIGFjY3VyYWN5IGltcHJvdmVzIGxhdGVyLCBhbgorICogYXBwcm9wcmlhdGUgdHJhbnNpdGlvbiBtdXN0IGJlIHRyaWdnZXJlZC4gIFRoaXMgInN1ZmZpY2llbnQgcGVyaW9kIG9mIHRpbWUiCisgKiBpcyBkZWZpbmVkIGJ5IHRoZSBwYXJhbWV0ZXIgaW4gdGhlIGFkZEdlb2ZlbmNlQXJlYSBBUEkuCisgKiBJbiBvdGhlciB3b3JkcywgVW5rbm93biBzdGF0ZSBjYW4gYmUgaW50ZXJwcmV0ZWQgYXMgYSBzdGF0ZSBpbiB3aGljaCB0aGUKKyAqIEdOU1Mgc3Vic3lzdGVtIGlzbid0IGNvbmZpZGVudCBlbm91Z2ggdGhhdCB0aGUgdXNlciBpcyBlaXRoZXIgaW5zaWRlIG9yCisgKiBvdXRzaWRlIHRoZSBHZW9mZW5jZS4gSXQgbW92ZXMgdG8gVW5rbm93biBzdGF0ZSBvbmx5IGFmdGVyIHRoZSBleHBpcnkgb2YgdGhlCisgKiB0aW1lb3V0LgorICoKKyAqIFRoZSBnZW9mZW5jZSBjYWxsYmFjayBuZWVkcyB0byBiZSB0cmlnZ2VyZWQgZm9yIHRoZSBFTlRFUkVEIGFuZCBFWElURUQKKyAqIHRyYW5zaXRpb25zLCB3aGVuIHRoZSBHTlNTIHN5c3RlbSBpcyBjb25maWRlbnQgdGhhdCB0aGUgdXNlciBoYXMgZW50ZXJlZAorICogKEluc2lkZSBzdGF0ZSkgb3IgZXhpdGVkIChPdXRzaWRlIHN0YXRlKSB0aGUgR2VvZmVuY2UuIEFuIGltcGxlbWVudGF0aW9uCisgKiB3aGljaCB1c2VzIGEgdmFsdWUgb2YgOTUlIGFzIHRoZSBjb25maWRlbmNlIGlzIHJlY29tbWVuZGVkLiBUaGUgY2FsbGJhY2sKKyAqIG11c3QgYmUgdHJpZ2dlcmVkIG9ubHkgZm9yIHRoZSB0cmFuc2l0aW9ucyByZXF1ZXN0ZWQgYnkgdGhlCisgKiBhZGRHZW9mZW5jZUFyZWEgbWV0aG9kLgorICoKKyAqIEV2ZW4gdGhvdWdoIHRoZSBkaWFncmFtIGFuZCBleHBsYW5hdGlvbiB0YWxrcyBhYm91dCBzdGF0ZXMgYW5kIHRyYW5zaXRpb25zLAorICogdGhlIGNhbGxlZSBpcyBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIHRyYW5zaXRpb25zLiBUaGUgc3RhdGVzIGFyZSBtZW50aW9uZWQKKyAqIGhlcmUgZm9yIGlsbHVzdHJhdGl2ZSBwdXJwb3Nlcy4KKyAqCisgKiBTdGFydHVwIFNjZW5hcmlvOiBXaGVuIHRoZSBkZXZpY2UgYm9vdHMgdXAsIGlmIGFuIGFwcGxpY2F0aW9uIGFkZHMgZ2VvZmVuY2VzLAorICogYW5kIHRoZW4gd2UgZ2V0IGFuIGFjY3VyYXRlIEdOU1MgbG9jYXRpb24gZml4LCBpdCBuZWVkcyB0byB0cmlnZ2VyIHRoZQorICogYXBwcm9wcmlhdGUgKEVOVEVSRUQgb3IgRVhJVEVEKSB0cmFuc2l0aW9uIGZvciBldmVyeSBHZW9mZW5jZSBpdCBrbm93cyBhYm91dC4KKyAqIEJ5IGRlZmF1bHQsIGFsbCB0aGUgR2VvZmVuY2VzIHdpbGwgYmUgaW4gdGhlIFVua25vd24gc3RhdGUuCisgKgorICogV2hlbiB0aGUgR05TUyBzeXN0ZW0gaXMgdW5hdmFpbGFibGUsIGduc3NHZW9mZW5jZVN0YXR1c0NiIG11c3QgYmUKKyAqIGNhbGxlZCB0byBpbmZvcm0gdGhlIHVwcGVyIGxheWVycyBvZiB0aGUgc2FtZS4gU2ltaWxhcmx5LCB3aGVuIGl0IGJlY29tZXMKKyAqIGF2YWlsYWJsZSB0aGUgY2FsbGJhY2sgbXVzdCBiZSBjYWxsZWQuIFRoaXMgaXMgYSBnbG9iYWwgc3RhdGUgd2hpbGUgdGhlCisgKiBVTktOT1dOIHRyYW5zaXRpb24gZGVzY3JpYmVkIGFib3ZlIGlzIHBlciBnZW9mZW5jZS4KKyAqCisgKiBBbiBpbXBvcnRhbnQgYXNwZWN0IHRvIG5vdGUgaXMgdGhhdCB1c2VycyBvZiB0aGlzIEFQSSAoZnJhbWV3b3JrKSwgd2lsbCB1c2UKKyAqIG90aGVyIHN1YnN5c3RlbXMgbGlrZSB3aWZpLCBzZW5zb3JzLCBjZWxsIHRvIGhhbmRsZSBVbmtub3duIGNhc2UgYW5kCisgKiBob3BlZnVsbHkgcHJvdmlkZSBhIGRlZmluaXRpdmUgc3RhdGUgdHJhbnNpdGlvbiB0byB0aGUgdGhpcmQgcGFydHkKKyAqIGFwcGxpY2F0aW9uLiBHTlNTIEdlb2ZlbmNlIHdpbGwganVzdCBiZSBhIHNpZ25hbCBpbmRpY2F0aW5nIHdoYXQgdGhlIEdOU1MKKyAqIHN1YnN5c3RlbSBrbm93cyBhYm91dCB0aGUgR2VvZmVuY2UuCisgKgorICovCisKK2ludGVyZmFjZSBJR25zc0dlb2ZlbmNlQ2FsbGJhY2sgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfR0VPRkVOQ0VfIikKKyAgICBlbnVtIEdlb2ZlbmNlVHJhbnNpdGlvbiA6IGludDMyX3QgeworICAgICAgICBFTlRFUkVEICAgPSAoMSA8PCAwTCksCisgICAgICAgIEVYSVRFRCAgICA9ICgxIDw8IDFMKSwKKyAgICAgICAgVU5DRVJUQUlOID0gKDEgPDwgMkwpLAorICAgIH07CisKKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX0dFT0ZFTkNFXyIpCisgICAgZW51bSBHZW9mZW5jZUF2YWlsYWJpbGl0eSA6IGludDMyX3QgeworICAgICAgICBVTkFWQUlMQUJMRSA9ICgxIDw8IDBMKSwKKyAgICAgICAgQVZBSUxBQkxFICAgPSAoMSA8PCAxTCksCisgICAgfTsKKworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfR0VPRkVOQ0VfIikKKyAgICBlbnVtIEdlb2ZlbmNlU3RhdHVzIDogaW50MzJfdCB7CisgICAgICAgIE9QRVJBVElPTl9TVUNDRVNTICAgICAgICA9IDAsCisgICAgICAgIEVSUk9SX1RPT19NQU5ZX0dFT0ZFTkNFUyA9IC0xMDAsCisgICAgICAgIEVSUk9SX0lEX0VYSVNUUyAgICAgICAgICA9IC0xMDEsCisgICAgICAgIEVSUk9SX0lEX1VOS05PV04gICAgICAgICA9IC0xMDIsCisgICAgICAgIEVSUk9SX0lOVkFMSURfVFJBTlNJVElPTiA9IC0xMDMsCisgICAgICAgIEVSUk9SX0dFTkVSSUMgICAgICAgICAgICA9IC0xNDkKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2VvZmVuY2UgdHJhbnNpdGlvbi4KKyAgICAgKiBUaGUgY2FsbGJhY2sgbXVzdCBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBjYWxsZXIgaXMgaW50ZXJlc3RlZCBpbiB0aGF0CisgICAgICogcGFydGljdWxhciB0cmFuc2l0aW9uLiBGb3IgaW5zdGFuY2UsIGlmIHRoZSBjYWxsZXIgaXMgaW50ZXJlc3RlZCBvbmx5IGluCisgICAgICogRU5URVJFRCB0cmFuc2l0aW9uLCB0aGVuIHRoZSBjYWxsYmFjayBtdXN0IG5vdCBiZSBjYWxsZWQgd2l0aCB0aGUgRVhJVEVECisgICAgICogdHJhbnNpdGlvbi4KKyAgICAgKgorICAgICAqIElNUE9SVEFOVDogSWYgYSB0cmFuc2l0aW9uIGlzIHRyaWdnZXJlZCByZXN1bHRpbmcgaW4gdGhpcyBjYWxsYmFjaywgdGhlCisgICAgICogR05TUyBzdWJzeXN0ZW0gd2lsbCB3YWtlIHVwIHRoZSBhcHBsaWNhdGlvbiBwcm9jZXNzb3IsIGlmIGl0cyBpbiBzdXNwZW5kCisgICAgICogc3RhdGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCBUaGUgaWQgYXNzb2NpYXRlZCB3aXRoIHRoZSBhZGRHZW9mZW5jZUFyZWEuCisgICAgICogQHBhcmFtIGxvY2F0aW9uIFRoZSBjdXJyZW50IEdOU1MgbG9jYXRpb24uCisgICAgICogQHBhcmFtIHRyYW5zaXRpb24gQ2FuIGJlIG9uZSBvZiBFTlRFUkVELCBFWElURUQgb3IgVU5DRVJUQUlOLgorICAgICAqIEBwYXJhbSB0aW1lc3RhbXAgVGltZXN0YW1wIHdoZW4gdGhlIHRyYW5zaXRpb24gd2FzIGRldGVjdGVkLgorICAgICAqCisgICAgICovCisgICAgZ25zc0dlb2ZlbmNlVHJhbnNpdGlvbkNiKGludDMyX3QgZ2VvZmVuY2VJZCwgR25zc0xvY2F0aW9uIGxvY2F0aW9uLAorICAgICAgICBHZW9mZW5jZVRyYW5zaXRpb24gdHJhbnNpdGlvbiwgR25zc1V0Y1RpbWUgdGltZXN0YW1wKTsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBhc3NvY2lhdGVkIHdpdGggdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgR05TUyBzeXN0ZW0gZm9yCisgICAgICogZ2VvZmVuY2luZyBtb25pdG9yaW5nLiBJZiB0aGUgR05TUyBzeXN0ZW0gZGV0ZXJtaW5lcyB0aGF0IGl0IGNhbm5vdCBtb25pdG9yCisgICAgICogZ2VvZmVuY2VzIGJlY2F1c2Ugb2YgbGFjayBvZiByZWxpYWJpbGl0eSBvciB1bmF2YWlsYWJpbGl0eSBvZiB0aGUgR05TUworICAgICAqIHNpZ25hbHMsIGl0IHdpbGwgY2FsbCB0aGlzIGNhbGxiYWNrIHdpdGggVU5BVkFJTEFCTEUgcGFyYW1ldGVyLgorICAgICAqCisgICAgICogQHBhcmFtIHN0YXR1cyAtIFVOQVZBSUxBQkxFIG9yIEFWQUlMQUJMRS4KKyAgICAgKiBAcGFyYW0gbGFzdExvY2F0aW9uIC0gTGFzdCBrbm93biBsb2NhdGlvbi4KKyAgICAgKi8KKyAgICBnbnNzR2VvZmVuY2VTdGF0dXNDYihHZW9mZW5jZUF2YWlsYWJpbGl0eSBzdGF0dXMsIEduc3NMb2NhdGlvbiBsYXN0TG9jYXRpb24pOworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWRkR2VvZmVuY2UgY2FsbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBnZW9mZW5jZUlkIElkIG9mIHRoZSBnZW9mZW5jZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFdpbGwgYmUgT1BFUkFUSU9OX1NVQ0NFU1MgaWYgdGhlIGdlb2ZlbmNlCisgICAgICogYWRkIHdhcyBzdWNjZXNzZnVsLiBXaWxsIGJlIEVSUk9SX1RPT19NQU5ZX0dFT0ZFTkNFUyBpZiB0aGUKKyAgICAgKiBnZW9mZW5jZSBsaW1pdCBoYXMgYmVlbiByZWFjaGVkLgorICAgICAqIFdpbGwgYmUgRVJST1JfSURfRVhJU1RTIGlmIGdlb2ZlbmNlIHdpdGggaWQgYWxyZWFkeSBleGlzdHMuCisgICAgICogV2lsbCBiZSBFUlJPUl9JTlZBTElEX1RSQU5TSVRJT04gaWYgdGhlIG1vbml0b3JUcmFuc2l0aW9uIGNvbnRhaW5zIGFuCisgICAgICogaW52YWxpZCB0cmFuc2l0aW9uLgorICAgICAqIFdpbGwgYmUgRVJST1JfR0VORVJJQyBmb3Igb3RoZXIgZXJyb3JzLgorICAgICAqLworICAgIGduc3NHZW9mZW5jZUFkZENiKGludDMyX3QgZ2VvZmVuY2VJZCwgR2VvZmVuY2VTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBhc3NvY2lhdGVkIHdpdGggdGhlIHJlbW92ZUdlb2ZlbmNlIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCBJZCBvZiB0aGUgZ2VvZmVuY2UuCisgICAgICogQHBhcmFtIHN0YXR1cyBXaWxsIHJldHVybiBPUEVSQVRJT05fU1VDQ0VTUyBpZiBzdWNjZXNzZnVsLgorICAgICAqIFdpbGwgYmUgRVJST1JfSURfVU5LTk9XTiBmb3IgaW52YWxpZCBpZCBhbmQKKyAgICAgKiBFUlJPUl9HRU5FUklDIGZvciBvdGhlcnMuCisgICAgICovCisgICAgZ25zc0dlb2ZlbmNlUmVtb3ZlQ2IoaW50MzJfdCBnZW9mZW5jZUlkLCBHZW9mZW5jZVN0YXR1cyBzdGF0dXMpOworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGF1c2VHZW9mZW5jZSBjYWxsLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgSWQgb2YgdGhlIGdlb2ZlbmNlLgorICAgICAqIEBwYXJhbSBzdGF0dXMgV2lsbCBiZSBPUEVSQVRJT05fU1VDQ0VTUyBpZiBzdWNjZXNzLgorICAgICAqIFdpbGwgYmUgRVJST1JfSURfVU5LTk9XTiBmb3IgaW52YWxpZCBpZC4gV2lsbCBiZQorICAgICAqIEVSUk9SX0lOVkFMSURfVFJBTlNJVElPTiB3aGVuIG1vbml0b3JUcmFuc2l0aW9ucyBpcyBpbnZhbGlkLgorICAgICAqIFdpbGwgYmUgRVJST1JfR0VORVJJQyBmb3Igb3RoZXIgZXJyIGVycm9ycy4KKyAgICAgKi8KKyAgICBnbnNzR2VvZmVuY2VQYXVzZUNiKGludDMyX3QgZ2VvZmVuY2VJZCwgR2VvZmVuY2VTdGF0dXMgc3RhdHVzKTsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBhc3NvY2lhdGVkIHdpdGggdGhlIHJlc3VtZUdlb2ZlbmNlIGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZ2VvZmVuY2VJZCAtIElkIG9mIHRoZSBnZW9mZW5jZS4KKyAgICAgKiBAcGFyYW0gc3RhdHVzIFdpbGwgYmUgT1BFUkFUSU9OX1NVQ0NFU1MgaWYgc3VjY2Vzc2Z1bC4KKyAgICAgKiBXaWxsIGJlIEVSUk9SX0lEX1VOS05PV04gZm9yIGludmFsaWQgaWQgYW5kIEVSUk9SX0dFTkVSSUMgZm9yIG90aGVycy4KKyAgICAgKi8KKyAgICBnbnNzR2VvZmVuY2VSZXN1bWVDYihpbnQzMl90IGdlb2ZlbmNlSWQsIEdlb2ZlbmNlU3RhdHVzIHN0YXR1cyk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NHZW9mZW5jaW5nLmhhbCBiL2duc3MvMS4wL0lHbnNzR2VvZmVuY2luZy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTYyMzU1YQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzR2VvZmVuY2luZy5oYWwKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKKworaW1wb3J0IElHbnNzR2VvZmVuY2VDYWxsYmFjazsKKworLyoqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgR05TUyBHZW9mZW5jaW5nIHN1cHBvcnQgKi8KK2ludGVyZmFjZSBJR25zc0dlb2ZlbmNpbmcgeworICAgIC8qKgorICAgICAqIE9wZW5zIHRoZSBnZW9mZW5jZSBpbnRlcmZhY2UgYW5kIHByb3ZpZGVzIHRoZSBjYWxsYmFjayByb3V0aW5lcworICAgICAqIHRvIHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSGFuZGxlIHRvIHRoZSBJR25zc0dlb2ZlbmNlQ2FsbGJhY2sgaW50ZXJmYWNlLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElHbnNzR2VvZmVuY2VDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBBZGQgYSBnZW9mZW5jZSBhcmVhLiBUaGlzIGFwaSBjdXJyZW50bHkgc3VwcG9ydHMgY2lyY3VsYXIgZ2VvZmVuY2VzLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgVGhlIGlkIGZvciB0aGUgZ2VvZmVuY2UuIElmIGEgZ2VvZmVuY2Ugd2l0aCB0aGlzIGlkCisgICAgICogYWxyZWFkeSBleGlzdHMsIGFuIGVycm9yIHZhbHVlIChFUlJPUl9JRF9FWElTVFMpIG11c3QgYmUgcmV0dXJuZWQuCisgICAgICogQHBhcmFtIGxhdGl0dWRlRGVncmVlcyBUaGUgbGF0aXR1ZGUoaW4gZGVncmVlcykgZm9yIHRoZSBnZW9mZW5jZSBsYXN0VHJhbnNpdGlvbi4KKyAgICAgKiBAcGFyYW0gbG9uZ3RpdHVkZURlZ3JlZXMgVGhlIGxvbmdpdHVkZShpbiBkZWdyZWVzKSBmb3IgdGhlIGdlb2ZlbmNlIGxhc3RUcmFuc2l0aW9uLgorICAgICAqIEBwYXJhbSByYWRpdXNNZXRlcnMgVGhlIHJhZGl1cyhpbiBtZXRlcnMpIGZvciB0aGUgZ2VvZmVuY2UgbGFzdFRyYW5zaXRpb24uCisgICAgICogQHBhcmFtIGxhc3RUcmFuc2l0aW9uIFRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBnZW9mZW5jZS4gRm9yIGV4YW1wbGUsIGlmCisgICAgICogdGhlIHN5c3RlbSBhbHJlYWR5IGtub3dzIHRoYXQgdGhlIHVzZXIgaXMgaW5zaWRlIHRoZSBnZW9mZW5jZSwgdGhpcyB3aWxsCisgICAgICogYmUgc2V0IHRvIEVOVEVSRUQuIEluIG1vc3QgY2FzZXMsIGl0IHdpbGwgYmUgVU5DRVJUQUlOLgorICAgICAqIEBwYXJhbSBtb25pdG9yVHJhbnNpdGlvbnMgLSBXaGljaCB0cmFuc2l0aW9ucyB0byBtb25pdG9yLiBCaXR3aXNlIE9SIG9mCisgICAgICogRU5URVJFRCwgRVhJVEVEIGFuZCBVTkNFUlRBSU4uCisgICAgICogQHBhcmFtIG5vdGlmaWNhdGlvblJlc3BvbnNpdmVuZXNzTXMgLSBEZWZpbmVzIHRoZSBiZXN0LWVmZm9ydCBkZXNjcmlwdGlvbgorICAgICAqIG9mIGhvdyBzb29uIG11c3QgdGhlIGNhbGxiYWNrIGJlIGNhbGxlZCB3aGVuIHRoZSB0cmFuc2l0aW9uIGFzc29jaWF0ZWQKKyAgICAgKiB3aXRoIHRoZSBHZW9mZW5jZSBpcyB0cmlnZ2VyZWQuIEZvciBpbnN0YW5jZSwgaWYgc2V0IHRvIDEwMDAgbWlsbHNlY29uZHMKKyAgICAgKiB3aXRoIEVOVEVSRUQsIHRoZSBjYWxsYmFjayBtdXN0IGJlIGNhbGxlZCAxMDAwIG1pbGxpc2Vjb25kcyB3aXRoaW4gZW50ZXJpbmcKKyAgICAgKiB0aGUgZ2VvZmVuY2UuIFRoaXMgcGFyYW1ldGVyIGlzIGRlZmluZWQgaW4gbWlsbGlzZWNvbmRzLgorICAgICAqIE5PVEU6IFRoaXMgaXMgbm90IHRvIGJlIGNvbmZ1c2VkIHdpdGggdGhlIHJhdGUgdGhhdCB0aGUgR05TUyBpcyBwb2xsZWQgYXQuCisgICAgICogSXQgaXMgYWNjZXB0YWJsZSB0byBkeW5hbWljYWxseSB2YXJ5IHRoZSByYXRlIG9mIHNhbXBsaW5nIHRoZSBHTlNTIGZvcgorICAgICAqIHBvd2VyLXNhdmluZyByZWFzb25zOyB0aHVzIHRoZSByYXRlIG9mIHNhbXBsaW5nIG1heSBiZSBmYXN0ZXIgb3Igc2xvd2VyCisgICAgICogdGhhbiB0aGlzLgorICAgICAqIEBwYXJhbSB1bmtub3duVGltZXJNcyAtIFRoZSB0aW1lIGxpbWl0IGFmdGVyIHdoaWNoIHRoZSBVTkNFUlRBSU4gdHJhbnNpdGlvbgorICAgICAqIG11c3QgYmUgdHJpZ2dlcmVkLiBUaGlzIHBhcmFtZXRlciBpcyBkZWZpbmVkIGluIG1pbGxpc2Vjb25kcy4KKyAgICAgKi8KKyAgICBhZGRHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQsIGRvdWJsZSBsYXRpdHVkZURlZ3JlZXMsIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgZG91YmxlIHJhZGl1c01ldGVycywgR2VvZmVuY2VUcmFuc2l0aW9uIGxhc3RUcmFuc2l0aW9uLAorICAgICAgICAgICAgYml0ZmllbGQ8SUduc3NHZW9mZW5jZUNhbGxiYWNrLkdlb2ZlbmNlVHJhbnNpdGlvbj4gbW9uaXRvclRyYW5zaXRpb25zLAorICAgICAgICAgICAgdWludDMyX3Qgbm90aWZpY2F0aW9uUmVzcG9uc2l2ZW5lc3NNcywKKyAgICAgICAgICAgIHVpbnQzMl90IHVua25vd25UaW1lck1zKTsKKworICAgIC8qKgorICAgICAqIFBhdXNlIG1vbml0b3JpbmcgYSBwYXJ0aWN1bGFyIGdlb2ZlbmNlLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgVGhlIGlkIGZvciB0aGUgZ2VvZmVuY2UuCisgICAgICovCisgICAgcGF1c2VHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQpOworCisgICAgLyoqCisgICAgICogUmVzdW1lIG1vbml0b3JpbmcgYSBwYXJ0aWN1bGFyIGdlb2ZlbmNlLgorICAgICAqCisgICAgICogQHBhcmFtIGdlb2ZlbmNlSWQgLSBUaGUgaWQgZm9yIHRoZSBnZW9mZW5jZS4KKyAgICAgKiBAcGFyYW0gbW9uaXRvclRyYW5zaXRpb25zIFNwZWNpZmllcyB3aGljaCB0cmFuc2l0aW9ucyB0byBtb25pdG9yLgorICAgICAqIEl0IGNhbiBiZSBhIGJpdHdpc2UgT1Igb2YgRU5URVJFRCwgRVhJVEVEIGFuZAorICAgICAqIFVOQ0VSVEFJTi4gVGhpcyBzdXBlcnNlZGVzIHRoZSB2YWx1ZSBhc3NvY2lhdGVkCisgICAgICogcHJvdmlkZWQgaW4gdGhlIGFkZEdlb2ZlbmNlQXJlYSBjYWxsLgorICAgICAqLworICAgIHJlc3VtZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCwKKyAgICAgICAgICAgIGJpdGZpZWxkPElHbnNzR2VvZmVuY2VDYWxsYmFjay5HZW9mZW5jZVRyYW5zaXRpb24+IG1vbml0b3JUcmFuc2l0aW9ucyk7CisKKyAgICAvKioKKyAgICAgKiBSZW1vdmUgYSBnZW9mZW5jZSBhcmVhLiBBZnRlciB0aGUgZnVuY3Rpb24gcmV0dXJucywgbm8gbm90aWZpY2F0aW9ucworICAgICAqIG11c3QgYmUgc2VudC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBnZW9mZW5jZUlkIFRoZSBpZCBvZiB0aGUgZ2VvZmVuY2UuCisgICAgICovCisgICAgcmVtb3ZlR2VvZmVuY2UoaW50MzJfdCBnZW9mZW5jZUlkKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50LmhhbCBiL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhZDgzZDIKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc01lYXN1cmVtZW50LmhhbApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOworCitpbXBvcnQgSUduc3NNZWFzdXJlbWVudENhbGxiYWNrOworCisvKioKKyAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgR05TUyBNZWFzdXJlbWVudHMgc3VwcG9ydC4KKyAqLworaW50ZXJmYWNlIElHbnNzTWVhc3VyZW1lbnQgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfTUVBU1VSRU1FTlRfIikKKyAgICBlbnVtIEduc3NNZWFzdXJlbWVudFN0YXR1cyA6IGludDMyX3QgeworICAgICAgICBTVUNDRVNTID0gMCwKKyAgICAgICAgRVJST1JfQUxSRUFEWV9JTklUID0gLTEwMCwKKyAgICAgICAgRVJST1JfR0VORVJJQyA9IC0xMDEKKyAgICB9OworCisgICAgLyoqCisgICAgICogSW5pdGlhbGl6ZXMgdGhlIGludGVyZmFjZSBhbmQgcmVnaXN0ZXJzIHRoZSBjYWxsYmFjayByb3V0aW5lcyB3aXRoIHRoZSBIQUwuCisgICAgICogQWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwgdG8gJ3NldENhbGxiYWNrJyB0aGUgSEFMIG11c3QgYmVnaW4gdG8gcHJvdmlkZSB1cGRhdGVzIGF0CisgICAgICogYW4gYXZlcmFnZSBvdXRwdXQgcmF0ZSBvZiAxSHogKG9jY2FzaW9uYWwKKyAgICAgKiBpbnRyYS1tZWFzdXJlbWVudCB0aW1lIG9mZnNldHMgaW4gdGhlIHJhbmdlIGZyb20gMC0yMDAwbXNlYyBjYW4gYmUKKyAgICAgKiB0b2xlcmF0ZWQuKQorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIEhhbmRsZSB0byBHbnNzTWVhc3VyZW1lbnQgY2FsbGJhY2sgaW50ZXJmYWNlLgorICAgICAqCisgICAgICogQHJldHVybiBpbml0UmV0IFJldHVybnMgU1VDQ0VTUyBpZiBzdWNjZXNzZnVsLgorICAgICAqIFJldHVybnMgRVJST1JfQUxSRUFEWV9JTklUIGlmIGEgY2FsbGJhY2sgaGFzIGFscmVhZHkgYmVlbgorICAgICAqIHJlZ2lzdGVyZWQgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcgY2FsbCB0byAnY2xvc2UnLgorICAgICAqIFJldHVybnMgRVJST1JfR0VORVJJQyBmb3IgYW55IG90aGVyIGVycm9yLiBUaGUgSEFMIG11c3QKKyAgICAgKiBub3QgZ2VuZXJhdGUgYW55IG90aGVyIHVwZGF0ZXMgdXBvbiByZXR1cm5pbmcgdGhpcyBlcnJvciBjb2RlLgorICAgICAqLworICAgIHNldENhbGxiYWNrKElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChHbnNzTWVhc3VyZW1lbnRTdGF0dXMgaW5pdFJldCk7CisKKyAgICAvKioKKyAgICAgKiBTdG9wcyB1cGRhdGVzIGZyb20gdGhlIEhBTCwgYW5kIHVucmVnaXN0ZXJzIHRoZSBjYWxsYmFjayByb3V0aW5lcy4KKyAgICAgKiBBZnRlciBhIGNhbGwgdG8gY2xvc2UoKSwgdGhlIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBjYWxsYmFja3MgbXVzdCBiZQorICAgICAqIGNvbnNpZGVyZWQgaW52YWxpZCBieSB0aGUgSEFMLgorICAgICAqIElmIGNsb3NlKCkgaXMgaW52b2tlZCB3aXRob3V0IGEgcHJldmlvdXMgc2V0Q2FsbGJhY2ssIHRoaXMgZnVuY3Rpb24gbXVzdCBwZXJmb3JtCisgICAgICogbm8gd29yay4KKyAgICAgKi8KKyAgICBjbG9zZSgpOworCit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NNZWFzdXJlbWVudENhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDAzMTY2NAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTWVhc3VyZW1lbnRDYWxsYmFjay5oYWwKQEAgLTAsMCArMSw2MDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBUaGUgY2FsbGJhY2sgaW50ZXJmYWNlIHRvIHJlcG9ydCBtZWFzdXJlbWVudHMgZnJvbSB0aGUgSEFMLiAqLworaW50ZXJmYWNlIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogRmxhZ3MgdG8gaW5kaWNhdGUgd2hhdCBmaWVsZHMgaW4gR25zc0Nsb2NrIGFyZSB2YWxpZC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19DTE9DS18iKQorICAgIGVudW0gR25zc0Nsb2NrRmxhZ3MgOiB1aW50MTZfdCB7CisgICAgICAgIC8qKiBBIHZhbGlkICdsZWFwIHNlY29uZCcgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0xFQVBfU0VDT05EICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ3RpbWUgdW5jZXJ0YWludHknIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19USU1FX1VOQ0VSVEFJTlRZICAgPSAxIDw8IDEsCisgICAgICAgIC8qKiBBIHZhbGlkICdmdWxsIGJpYXMnIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19GVUxMX0JJQVMgICAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIC8qKiBBIHZhbGlkICdiaWFzJyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfQklBUyAgICAgICAgICAgICAgID0gMSA8PCAzLAorICAgICAgICAvKiogQSB2YWxpZCAnYmlhcyB1bmNlcnRhaW50eScgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0JJQVNfVU5DRVJUQUlOVFkgICA9IDEgPDwgNCwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2RyaWZ0JyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfRFJJRlQgICAgICAgICAgICAgID0gMSA8PCA1LAorICAgICAgICAvKiogQSB2YWxpZCAnZHJpZnQgdW5jZXJ0YWludHknIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19EUklGVF9VTkNFUlRBSU5UWSAgPSAxIDw8IDYKKyAgICB9OworCisgICAgLyoqCisgICAgICogRmxhZ3MgdG8gaW5kaWNhdGUgd2hhdCBmaWVsZHMgaW4gR25zc01lYXN1cmVtZW50IGFyZSB2YWxpZC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19NRUFTVVJFTUVOVF8iKQorICAgIGVudW0gR25zc01lYXN1cmVtZW50RmxhZ3MgOiB1aW50MzJfdCB7CisgICAgICAgIC8qKiBBIHZhbGlkICdzbnInIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19TTlIgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMCwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2NhcnJpZXIgZnJlcXVlbmN5JyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfQ0FSUklFUl9GUkVRVUVOQ1kgICAgICAgICAgPSAxIDw8IDksCisgICAgICAgIC8qKiBBIHZhbGlkICdjYXJyaWVyIGN5Y2xlcycgaXMgc3RvcmVkIGluIHRoZSBkYXRhIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgSEFTX0NBUlJJRVJfQ1lDTEVTICAgICAgICAgICAgID0gMSA8PCAxMCwKKyAgICAgICAgLyoqIEEgdmFsaWQgJ2NhcnJpZXIgcGhhc2UnIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19DQVJSSUVSX1BIQVNFICAgICAgICAgICAgICA9IDEgPDwgMTEsCisgICAgICAgIC8qKiBBIHZhbGlkICdjYXJyaWVyIHBoYXNlIHVuY2VydGFpbnR5JyBpcyBzdG9yZWQgaW4gdGhlIGRhdGEgc3RydWN0dXJlLiAqLworICAgICAgICBIQVNfQ0FSUklFUl9QSEFTRV9VTkNFUlRBSU5UWSAgPSAxIDw8IDEyLAorICAgICAgICAvKiogQSB2YWxpZCBhdXRvbWF0aWMgZ2FpbiBjb250cm9sIGlzIHN0b3JlZCBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEhBU19BVVRPTUFUSUNfR0FJTl9DT05UUk9MICAgICA9IDEgPDwgMTMKKyAgICB9OworCisgICAgLyoqCisgICAgICogRW51bWVyYXRpb24gb2YgYXZhaWxhYmxlIHZhbHVlcyBmb3IgdGhlIEdOU1MgTWVhc3VyZW1lbnQncyBtdWx0aXBhdGgKKyAgICAgKiBpbmRpY2F0b3IuCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdOU1NfTVVMVElQQVRIXyIpCisgICAgZW51bSBHbnNzTXVsdGlwYXRoSW5kaWNhdG9yIDogdWludDhfdCB7CisgICAgICAgIC8qKiBUaGUgaW5kaWNhdG9yIGlzIG5vdCBhdmFpbGFibGUgb3IgdW5rbm93bi4gKi8KKyAgICAgICAgSU5ESUNBVE9SX1VOS05PV04gICAgICA9IDAsCisgICAgICAgIC8qKiBUaGUgbWVhc3VyZW1lbnQgaXMgaW5kaWNhdGVkIHRvIGJlIGFmZmVjdGVkIGJ5IG11bHRpcGF0aC4gKi8KKyAgICAgICAgSU5ESUNBVE9SX1BSRVNFTlQgICAgICA9IDEsCisgICAgICAgIC8qKiBUaGUgbWVhc3VyZW1lbnQgaXMgaW5kaWNhdGVkIHRvIGJlIG5vdCBhZmZlY3RlZCBieSBtdWx0aXBhdGguICovCisgICAgICAgIElORElDQVRJT1JfTk9UX1BSRVNFTlQgPSAyCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZsYWdzIGluZGljYXRpbmcgdGhlIEdOU1MgbWVhc3VyZW1lbnQgc3RhdGUuCisgICAgICoKKyAgICAgKiBUaGUgZXhwZWN0ZWQgYmVoYXZpb3IgaGVyZSBpcyBmb3IgR05TUyBIQUwgdG8gc2V0IGFsbCB0aGUgZmxhZ3MgdGhhdCBhcHBsaWVzLgorICAgICAqIEZvciBleGFtcGxlLCBpZiB0aGUgc3RhdGUgZm9yIGEgc2F0ZWxsaXRlIGlzIG9ubHkgQy9BIGNvZGUgbG9ja2VkIGFuZCBiaXQKKyAgICAgKiBzeW5jaHJvbml6ZWQsIGFuZCB0aGVyZSBpcyBzdGlsbCBtaWxsaXNlY29uZCBhbWJpZ3VpdHksIHRoZSBzdGF0ZSBtdXN0IGJlCisgICAgICogc2V0IGFzOgorICAgICAqCisgICAgICogU1RBVEVfQ09ERV9MT0NLIHwgU1RBVEVfQklUX1NZTkMgfCAgU1RBVEVfTVNFQ19BTUJJR1VPVVMKKyAgICAgKgorICAgICAqIElmIEdOU1MgaXMgc3RpbGwgc2VhcmNoaW5nIGZvciBhIHNhdGVsbGl0ZSwgdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGUgbXVzdCBiZQorICAgICAqIHNldCB0byBTVEFURV9VTktOT1dOKDApLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX01FQVNVUkVNRU5UXyIpCisgICAgZW51bSBHbnNzTWVhc3VyZW1lbnRTdGF0ZSA6IHVpbnQzMl90IHsKKyAgICAgICAgU1RBVEVfVU5LTk9XTiAgICAgICAgICAgICAgICA9IDAsCisgICAgICAgIFNUQVRFX0NPREVfTE9DSyAgICAgICAgICAgICAgPSAxIDw8IDAsCisgICAgICAgIFNUQVRFX0JJVF9TWU5DICAgICAgICAgICAgICAgPSAxIDw8IDEsCisgICAgICAgIFNUQVRFX1NVQkZSQU1FX1NZTkMgICAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIFNUQVRFX1RPV19ERUNPREVEICAgICAgICAgICAgPSAxIDw8IDMsCisgICAgICAgIFNUQVRFX01TRUNfQU1CSUdVT1VTICAgICAgICAgPSAxIDw8IDQsCisgICAgICAgIFNUQVRFX1NZTUJPTF9TWU5DICAgICAgICAgICAgPSAxIDw8IDUsCisgICAgICAgIFNUQVRFX0dMT19TVFJJTkdfU1lOQyAgICAgICAgPSAxIDw8IDYsCisgICAgICAgIFNUQVRFX0dMT19UT0RfREVDT0RFRCAgICAgICAgPSAxIDw8IDcsCisgICAgICAgIFNUQVRFX0JEU19EMl9CSVRfU1lOQyAgICAgICAgPSAxIDw8IDgsCisgICAgICAgIFNUQVRFX0JEU19EMl9TVUJGUkFNRV9TWU5DICAgPSAxIDw8IDksCisgICAgICAgIFNUQVRFX0dBTF9FMUJDX0NPREVfTE9DSyAgICAgPSAxIDw8IDEwLAorICAgICAgICBTVEFURV9HQUxfRTFDXzJORF9DT0RFX0xPQ0sgID0gMSA8PCAxMSwKKyAgICAgICAgU1RBVEVfR0FMX0UxQl9QQUdFX1NZTkMgICAgICA9IDEgPDwgMTIsCisgICAgICAgIFNUQVRFX1NCQVNfU1lOQyAgICAgICAgICAgICAgPSAxIDw8IDEzLAorICAgICAgICBTVEFURV9UT1dfS05PV04gICAgICAgICAgICAgID0gMSA8PCAxNCwKKyAgICAgICAgU1RBVEVfR0xPX1RPRF9LTk9XTiAgICAgICAgICA9IDEgPDwgMTUsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEZsYWdzIGluZGljYXRpbmcgdGhlIEFjY3VtdWxhdGVkIERlbHRhIFJhbmdlJ3Mgc3RhdGVzLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTXyIpCisgICAgZW51bSBHbnNzQWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGUgOiB1aW50MTZfdCB7CisgICAgICAgIEFEUl9TVEFURV9VTktOT1dOICAgID0gMCwKKyAgICAgICAgQURSX1NUQVRFX1ZBTElEICAgICAgPSAxIDw8IDAsCisgICAgICAgIEFEUl9TVEFURV9SRVNFVCAgICAgID0gMSA8PCAxLAorICAgICAgICBBRFJfU1RBVEVfQ1lDTEVfU0xJUCA9IDEgPDwgMiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmVwcmVzZW50cyBhbiBlc3RpbWF0ZSBvZiB0aGUgR05TUyBjbG9jayB0aW1lLgorICAgICAqLworICAgIHN0cnVjdCBHbnNzQ2xvY2sgeworICAgICAgICAvKioKKyAgICAgICAgICogQSBzZXQgb2YgZmxhZ3MgaW5kaWNhdGluZyB0aGUgdmFsaWRpdHkgb2YgdGhlIGZpZWxkcyBpbiB0aGlzIGRhdGEKKyAgICAgICAgICogc3RydWN0dXJlLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8R25zc0Nsb2NrRmxhZ3M+IGduc3NDbG9ja0ZsYWdzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBMZWFwIHNlY29uZCBkYXRhLgorICAgICAgICAgKiBUaGUgc2lnbiBvZiB0aGUgdmFsdWUgaXMgZGVmaW5lZCBieSB0aGUgZm9sbG93aW5nIGVxdWF0aW9uOgorICAgICAgICAgKiAgICAgIHV0Y1RpbWVOcyA9IHRpbWVOcyAtIChmdWxsQmlhc05zICsgYmlhc05zKSAtIGxlYXBTZWNvbmQgKgorICAgICAgICAgKiAgICAgIDEsMDAwLDAwMCwwMDAKKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhpcyBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19MRUFQX1NFQ09ORC4KKyAgICAgICAgICovCisgICAgICAgIGludDE2X3QgbGVhcFNlY29uZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIEdOU1MgcmVjZWl2ZXIgaW50ZXJuYWwgY2xvY2sgdmFsdWUuIFRoaXMgaXMgdGhlIGxvY2FsIGhhcmR3YXJlIGNsb2NrCisgICAgICAgICAqIHZhbHVlLgorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgbG9jYWwgaGFyZHdhcmUgY2xvY2ssIHRoaXMgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gYmUgbW9ub3RvbmljYWxseQorICAgICAgICAgKiBpbmNyZWFzaW5nIHdoaWxlIHRoZSBoYXJkd2FyZSBjbG9jayByZW1haW5zIHBvd2VyZWQgb24uIChGb3IgdGhlIGNhc2Ugb2YgYQorICAgICAgICAgKiBIVyBjbG9jayB0aGF0IGlzIG5vdCBjb250aW51b3VzbHkgb24sIHNlZSB0aGUKKyAgICAgICAgICogaHdDbG9ja0Rpc2NvbnRpbnVpdHlDb3VudCBmaWVsZCkuIFRoZSByZWNlaXZlcidzIGVzdGltYXRlIG9mIEdOU1MgdGltZQorICAgICAgICAgKiBjYW4gYmUgZGVyaXZlZCBieSBzdWJ0cmFjdGluZyB0aGUgc3VtIG9mIGZ1bGxCaWFzTnMgYW5kIGJpYXNOcyAod2hlbgorICAgICAgICAgKiBhdmFpbGFibGUpIGZyb20gdGhpcyB2YWx1ZS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBHTlNTIHRpbWUgbXVzdCBiZSB0aGUgYmVzdCBlc3RpbWF0ZSBvZiBjdXJyZW50IEdOU1MgdGltZQorICAgICAgICAgKiB0aGF0IEdOU1MgcmVjZWl2ZXIgY2FuIGFjaGlldmUuCisgICAgICAgICAqCisgICAgICAgICAqIFN1Yi1uYW5vc2Vjb25kIGFjY3VyYWN5IGNhbiBiZSBwcm92aWRlZCBieSBtZWFucyBvZiB0aGUgJ2JpYXNOcycgZmllbGQuCisgICAgICAgICAqIFRoZSB2YWx1ZSBjb250YWlucyB0aGUgdGltZVVuY2VydGFpbnR5TnMgaW4gaXQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgZmllbGQgaXMgbWFuZGF0b3J5LgorICAgICAgICAgKi8KKyAgICAgICAgaW50NjRfdCB0aW1lTnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEtU2lnbWEgdW5jZXJ0YWludHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbG9jaydzIHRpbWUgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqIFRoZSB1bmNlcnRhaW50eSBpcyByZXByZXNlbnRlZCBhcyBhbiBhYnNvbHV0ZSAoc2luZ2xlIHNpZGVkKSB2YWx1ZS4KKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlLCBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4KKyAgICAgICAgICogSEFTX1RJTUVfVU5DRVJUQUlOVFkuIFRocyB2YWx1ZSBpcyBpZGVhbGx5IHplcm8sIGFzIHRoZSB0aW1lCisgICAgICAgICAqICdsYXRjaGVkJyBieSB0aW1lTnMgaXMgZGVmaW5lZCBhcyB0aGUgcmVmZXJlbmNlIGNsb2NrIHZzLiB3aGljaCBhbGwKKyAgICAgICAgICogb3RoZXIgdGltZXMgKGFuZCBjb3JyZXNwb25kaW5nIHVuY2VydGFpbnRpZXMpIGFyZSBtZWFzdXJlZC4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSB0aW1lVW5jZXJ0YWludHlOczsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBoYXJkd2FyZSBjbG9jayAoJ3RpbWUnIGZpZWxkKSBpbnNpZGUgR05TUyByZWNlaXZlcgorICAgICAgICAgKiBhbmQgdGhlIHRydWUgR05TUyB0aW1lIHNpbmNlIDAwMDBaLCBKYW51YXJ5IDYsIDE5ODAsIGluIG5hbm9zZWNvbmRzLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgc2lnbiBvZiB0aGUgdmFsdWUgaXMgZGVmaW5lZCBieSB0aGUgZm9sbG93aW5nIGVxdWF0aW9uOgorICAgICAgICAgKiAgICAgIGxvY2FsIGVzdGltYXRlIG9mIEdOU1MgdGltZSA9IHRpbWVOcyAtIChmdWxsQmlhc05zICsgYmlhc05zKQorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIHZhbHVlIGlzIG1hbmRhdG9yeSBpZiB0aGUgcmVjZWl2ZXIgaGFzIGVzdGltYXRlZCBHTlNTIHRpbWUuIElmIHRoZQorICAgICAgICAgKiBjb21wdXRlZCB0aW1lIGlzIGZvciBhIG5vbi1HTlNTIGNvbnN0ZWxsYXRpb24sIHRoZSB0aW1lIG9mZnNldCBvZiB0aGF0CisgICAgICAgICAqIGNvbnN0ZWxsYXRpb24gdG8gR05TUyBoYXMgdG8gYmUgYXBwbGllZCB0byBmaWxsIHRoaXMgdmFsdWUuIFRoZSBlcnJvcgorICAgICAgICAgKiBlc3RpbWF0ZSBmb3IgdGhlIHN1bSBvZiB0aGlzIGFuZCB0aGUgYmlhc05zIGlzIHRoZSBiaWFzVW5jZXJ0YWludHlOcywKKyAgICAgICAgICogYW5kIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHVzaW5nIHRoaXMgdW5jZXJ0YWludHkgKGl0IGNhbiBiZSB2ZXJ5CisgICAgICAgICAqIGxhcmdlIGJlZm9yZSB0aGUgR05TUyB0aW1lIGhhcyBiZWVuIHNvbHZlZCBmb3IuKSBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUKKyAgICAgICAgICogZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluIEhBU19GVUxMX0JJQVMuCisgICAgICAgICAqLworICAgICAgICBpbnQ2NF90IGZ1bGxCaWFzTnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN1Yi1uYW5vc2Vjb25kIGJpYXMuCisgICAgICAgICAqIFRoZSBlcnJvciBlc3RpbWF0ZSBmb3IgdGhlIHN1bSBvZiB0aGlzIGFuZCB0aGUgZnVsbEJpYXNOcyBpcyB0aGUKKyAgICAgICAgICogYmlhc1VuY2VydGFpbnR5TnMuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSBnbnNzQ2xvY2tGbGFncyBtdXN0IGNvbnRhaW4gSEFTX0JJQVMuIElmIEdOU1MKKyAgICAgICAgICogaGFzIGNvbXB1dGVkIGEgcG9zaXRpb24gZml4LiBUaGlzIHZhbHVlIGlzIG1hbmRhdG9yeSBpZiB0aGUgcmVjZWl2ZXIgaGFzCisgICAgICAgICAqIGVzdGltYXRlZCBHTlNTIHRpbWUuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgYmlhc05zOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAxLVNpZ21hIHVuY2VydGFpbnR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgbG9jYWwgZXN0aW1hdGUgb2YgR05TUyB0aW1lIChjbG9jaworICAgICAgICAgKiBiaWFzKSBpbiBuYW5vc2Vjb25kcy4gVGhlIHVuY2VydGFpbnR5IGlzIHJlcHJlc2VudGVkIGFzIGFuIGFic29sdXRlCisgICAgICAgICAqIChzaW5nbGUgc2lkZWQpIHZhbHVlLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19CSUFTX1VOQ0VSVEFJTlRZLiBUaGlzIHZhbHVlIGlzIG1hbmRhdG9yeSBpZiB0aGUgcmVjZWl2ZXIKKyAgICAgICAgICogaGFzIGVzdGltYXRlZCBHTlNTIHRpbWUuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgYmlhc1VuY2VydGFpbnR5TnM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjbG9jaydzIGRyaWZ0IGluIG5hbm9zZWNvbmRzIChwZXIgc2Vjb25kKS4KKyAgICAgICAgICoKKyAgICAgICAgICogQSBwb3NpdGl2ZSB2YWx1ZSBtZWFucyB0aGF0IHRoZSBmcmVxdWVuY3kgaXMgaGlnaGVyIHRoYW4gdGhlIG5vbWluYWwKKyAgICAgICAgICogZnJlcXVlbmN5LCBhbmQgdGhhdCB0aGUgKGZ1bGxCaWFzTnMgKyBiaWFzTnMpIGlzIGdyb3dpbmcgbW9yZSBwb3NpdGl2ZQorICAgICAgICAgKiBvdmVyIHRpbWUuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSB2YWx1ZSBjb250YWlucyB0aGUgJ2RyaWZ0IHVuY2VydGFpbnR5JyBpbiBpdC4KKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlIGduc3NDbG9ja0ZsYWdzIG11c3QgY29udGFpbiBIQVNfRFJJRlQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgdmFsdWUgaXMgbWFuZGF0b3J5IGlmIHRoZSByZWNlaXZlciBoYXMgZXN0aW1hdGVkIEdOU1MgdGltZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBkcmlmdE5zcHM7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEtU2lnbWEgdW5jZXJ0YWludHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbG9jaydzIGRyaWZ0IGluIG5hbm9zZWNvbmRzIChwZXIKKyAgICAgICAgICogc2Vjb25kKS4KKyAgICAgICAgICogVGhlIHVuY2VydGFpbnR5IGlzIHJlcHJlc2VudGVkIGFzIGFuIGFic29sdXRlIChzaW5nbGUgc2lkZWQpIHZhbHVlLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19EUklGVF9VTkNFUlRBSU5UWS4gSWYgR05TUyBoYXMgY29tcHV0ZWQgYSBwb3NpdGlvbiBmaXggdGhpcworICAgICAgICAgKiBmaWVsZCBpcyBtYW5kYXRvcnkgYW5kIG11c3QgYmUgcG9wdWxhdGVkLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGRyaWZ0VW5jZXJ0YWludHlOc3BzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBXaGVuIHRoZXJlIGFyZSBhbnkgZGlzY29udGludWl0aWVzIGluIHRoZSBIVyBjbG9jaywgdGhpcyBmaWVsZCBpcworICAgICAgICAgKiBtYW5kYXRvcnkuCisgICAgICAgICAqCisgICAgICAgICAqIEEgImRpc2NvbnRpbnVpdHkiIGlzIG1lYW50IHRvIGNvdmVyIHRoZSBjYXNlIG9mIGEgc3dpdGNoIGZyb20gb25lIHNvdXJjZQorICAgICAgICAgKiBvZiBjbG9jayB0byBhbm90aGVyLiAgQSBzaW5nbGUgZnJlZS1ydW5uaW5nIGNyeXN0YWwgb3NjaWxsYXRvciAoWE8pCisgICAgICAgICAqIHdpbGwgZ2VuZXJhbGx5IG5vdCBoYXZlIGFueSBkaXNjb250aW51aXRpZXMsIGFuZCB0aGlzIGNhbiBiZSBzZXQgYW5kCisgICAgICAgICAqIGxlZnQgYXQgMC4KKyAgICAgICAgICoKKyAgICAgICAgICogSWYsIGhvd2V2ZXIsIHRoZSB0aW1lTnMgdmFsdWUgKEhXIGNsb2NrKSBpcyBkZXJpdmVkIGZyb20gYSBjb21wb3NpdGUgb2YKKyAgICAgICAgICogc291cmNlcywgdGhhdCBpcyBub3QgYXMgc21vb3RoIGFzIGEgdHlwaWNhbCBYTywgb3IgaXMgb3RoZXJ3aXNlIHN0b3BwZWQgJgorICAgICAgICAgKiByZXN0YXJ0ZWQsIHRoZW4gdGhpcyB2YWx1ZSBzaGFsbCBiZSBpbmNyZW1lbnRlZCBlYWNoIHRpbWUgYSBkaXNjb250aW51aXR5CisgICAgICAgICAqIG9jY3Vycy4gIChFLmcuIHRoaXMgdmFsdWUgY2FuIHN0YXJ0IGF0IHplcm8gYXQgZGV2aWNlIGJvb3QtdXAgYW5kCisgICAgICAgICAqIGluY3JlbWVudCBlYWNoIHRpbWUgdGhlcmUgaXMgYSBjaGFuZ2UgaW4gY2xvY2sgY29udGludWl0eS4gSW4gdGhlCisgICAgICAgICAqIHVubGlrZWx5IGV2ZW50IHRoYXQgdGhpcyB2YWx1ZSByZWFjaGVzIGZ1bGwgc2NhbGUsIHJvbGxvdmVyIChub3QKKyAgICAgICAgICogY2xhbXBpbmcpIGlzIHJlcXVpcmVkLCBzdWNoIHRoYXQgdGhpcyB2YWx1ZSBjb250aW51ZXMgdG8gY2hhbmdlLCBkdXJpbmcKKyAgICAgICAgICogc3Vic2VxdWVudCBkaXNjb250aW51aXR5IGV2ZW50cy4pCisgICAgICAgICAqCisgICAgICAgICAqIFdoaWxlIHRoaXMgbnVtYmVyIHN0YXlzIHRoZSBzYW1lLCBiZXR3ZWVuIEduc3NDbG9jayByZXBvcnRzLCBpdCBjYW4gYmUKKyAgICAgICAgICogc2FmZWx5IGFzc3VtZWQgdGhhdCB0aGUgdGltZU5zIHZhbHVlIGhhcyBiZWVuIHJ1bm5pbmcgY29udGludW91c2x5LCBlLmcuCisgICAgICAgICAqIGRlcml2ZWQgZnJvbSBhIHNpbmdsZSwgaGlnaCBxdWFsaXR5IGNsb2NrIChYTyBsaWtlLCBvciBiZXR0ZXIsIHRoYXQgaXMKKyAgICAgICAgICogdHlwaWNhbGx5IHVzZWQgZHVyaW5nIGNvbnRpbnVvdXMgR05TUyBzaWduYWwgc2FtcGxpbmcuKQorICAgICAgICAgKgorICAgICAgICAgKiBJdCBpcyBleHBlY3RlZCwgZXNwLiBkdXJpbmcgcGVyaW9kcyB3aGVyZSB0aGVyZSBhcmUgZmV3IEdOU1Mgc2lnbmFscworICAgICAgICAgKiBhdmFpbGFibGUsIHRoYXQgdGhlIEhXIGNsb2NrIGJlIGRpc2NvbnRpbnVpdHktZnJlZSBhcyBsb25nIGFzIHBvc3NpYmxlLAorICAgICAgICAgKiBhcyB0aGlzIGF2b2lkcyB0aGUgbmVlZCB0byB1c2UgKHdhc3RlKSBhIEdOU1MgbWVhc3VyZW1lbnQgdG8gZnVsbHkKKyAgICAgICAgICogcmUtc29sdmUgZm9yIHRoZSBHTlNTIGNsb2NrIGJpYXMgYW5kIGRyaWZ0LCB3aGVuIHVzaW5nIHRoZSBhY2NvbXBhbnlpbmcKKyAgICAgICAgICogbWVhc3VyZW1lbnRzLCBmcm9tIGNvbnNlY3V0aXZlIEduc3NEYXRhIHJlcG9ydHMuCisgICAgICAgICAqLworICAgICAgICB1aW50MzJfdCBod0Nsb2NrRGlzY29udGludWl0eUNvdW50OworCisgICAgfTsKKworICAgIC8qKgorICAgICAqIFJlcHJlc2VudHMgYSBHTlNTIE1lYXN1cmVtZW50LCBpdCBjb250YWlucyByYXcgYW5kIGNvbXB1dGVkIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQWxsIHNpZ25hbCBtZWFzdXJlbWVudCBpbmZvcm1hdGlvbiAoZS5nLiBzdlRpbWUsCisgICAgICogcHNldWRvcmFuZ2VSYXRlLCBtdWx0aXBhdGhJbmRpY2F0b3IpIHJlcG9ydGVkIGluIHRoaXMgc3RydWN0IG11c3QgYmUKKyAgICAgKiBiYXNlZCBvbiBHTlNTIHNpZ25hbCBtZWFzdXJlbWVudHMgb25seS4gWW91IG11c3Qgbm90IHN5bnRoZXNpemUgbWVhc3VyZW1lbnRzCisgICAgICogYnkgY2FsY3VsYXRpbmcgb3IgcmVwb3J0aW5nIGV4cGVjdGVkIG1lYXN1cmVtZW50cyBiYXNlZCBvbiBrbm93biBvciBlc3RpbWF0ZWQKKyAgICAgKiBwb3NpdGlvbiwgdmVsb2NpdHksIG9yIHRpbWUuCisgICAgICovCisgICAgc3RydWN0IEduc3NNZWFzdXJlbWVudHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEEgc2V0IG9mIGZsYWdzIGluZGljYXRpbmcgdGhlIHZhbGlkaXR5IG9mIHRoZSBmaWVsZHMgaW4gdGhpcyBkYXRhCisgICAgICAgICAqIHN0cnVjdHVyZS4KKyAgICAgICAgICovCisgICAgICAgIGJpdGZpZWxkPEduc3NNZWFzdXJlbWVudEZsYWdzPiBmbGFnczsKKworICAgICAgICAvKioKKyAgICAgICAgICogU2F0ZWxsaXRlIHZlaGljbGUgSUQgbnVtYmVyLCBhcyBkZWZpbmVkIGluIEduc3NTdkluZm86OnN2aWQKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGludDE2X3Qgc3ZpZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogRGVmaW5lcyB0aGUgY29uc3RlbGxhdGlvbiBvZiB0aGUgZ2l2ZW4gU1YuCisgICAgICAgICAqLworICAgICAgICBHbnNzQ29uc3RlbGxhdGlvblR5cGUgY29uc3RlbGxhdGlvbjsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGltZSBvZmZzZXQgYXQgd2hpY2ggdGhlIG1lYXN1cmVtZW50IHdhcyB0YWtlbiBpbiBuYW5vc2Vjb25kcy4KKyAgICAgICAgICogVGhlIHJlZmVyZW5jZSByZWNlaXZlcidzIHRpbWUgaXMgc3BlY2lmaWVkIGJ5IEduc3NEYXRhOjpjbG9jazo6dGltZU5zLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgc2lnbiBvZiB0aW1lT2Zmc2V0TnMgaXMgZ2l2ZW4gYnkgdGhlIGZvbGxvd2luZyBlcXVhdGlvbjoKKyAgICAgICAgICogICAgICBtZWFzdXJlbWVudCB0aW1lID0gR25zc0Nsb2NrOjp0aW1lTnMgKyB0aW1lT2Zmc2V0TnMKKyAgICAgICAgICoKKyAgICAgICAgICogSXQgcHJvdmlkZXMgYW4gaW5kaXZpZHVhbCB0aW1lLXN0YW1wIGZvciB0aGUgbWVhc3VyZW1lbnQsIGFuZCBhbGxvd3MKKyAgICAgICAgICogc3ViLW5hbm9zZWNvbmQgYWNjdXJhY3kuCisgICAgICAgICAqIFRoaXMgaXMgYSBtYW5kYXRvcnkgdmFsdWUuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgdGltZU9mZnNldE5zOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBQZXIgc2F0ZWxsaXRlIHN5bmMgc3RhdGUuIEl0IHJlcHJlc2VudHMgdGhlIGN1cnJlbnQgc3luYyBzdGF0ZSBmb3IgdGhlCisgICAgICAgICAqIGFzc29jaWF0ZWQgc2F0ZWxsaXRlLgorICAgICAgICAgKiBCYXNlZCBvbiB0aGUgc3luYyBzdGF0ZSwgdGhlICdyZWNlaXZlZCBHTlNTIHRvdycgZmllbGQgbXVzdCBiZSBpbnRlcnByZXRlZAorICAgICAgICAgKiBhY2NvcmRpbmdseS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGJpdGZpZWxkPEduc3NNZWFzdXJlbWVudFN0YXRlPiBzdGF0ZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHJlY2VpdmVkIEdOU1MgVGltZS1vZi1XZWVrIGF0IHRoZSBtZWFzdXJlbWVudCB0aW1lLCBpbiBuYW5vc2Vjb25kcy4KKyAgICAgICAgICogRm9yIEdOU1MgJiBRWlNTLCB0aGlzIGlzIHRoZSByZWNlaXZlZCBHTlNTIFRpbWUtb2YtV2VlayBhdCB0aGUKKyAgICAgICAgICogbWVhc3VyZW1lbnQgdGltZSwgaW4gbmFub3NlY29uZHMuIFRoZSB2YWx1ZSBpcyByZWxhdGl2ZSB0byB0aGUKKyAgICAgICAgICogYmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IEdOU1Mgd2Vlay4KKyAgICAgICAgICoKKyAgICAgICAgICogR2l2ZW4gdGhlIGhpZ2hlc3Qgc3luYyBzdGF0ZSB0aGF0IGNhbiBiZSBhY2hpZXZlZCwgcGVyIGVhY2ggc2F0ZWxsaXRlLAorICAgICAgICAgKiB2YWxpZCByYW5nZSBmb3IgdGhpcyBmaWVsZCBjYW4gYmU6CisgICAgICAgICAqIFNlYXJjaGluZyAgICAgICA6IFsgMCAgICAgICBdIDogU1RBVEVfVU5LTk9XTgorICAgICAgICAgKiBDL0EgY29kZSBsb2NrICAgOiBbIDAgMW1zICAgXSA6IFNUQVRFX0NPREVfTE9DSyBzZXQKKyAgICAgICAgICogQml0IHN5bmMgICAgICAgIDogWyAwIDIwbXMgIF0gOiBTVEFURV9CSVRfU1lOQyBzZXQKKyAgICAgICAgICogU3ViZnJhbWUgc3luYyAgIDogWyAwICA2cyAgIF0gOiBTVEFURV9TVUJGUkFNRV9TWU5DIHNldAorICAgICAgICAgKiBUT1cgZGVjb2RlZCAgICAgOiBbIDAgMXdlZWsgXSA6IFNUQVRFX1RPV19ERUNPREVEIHNldAorICAgICAgICAgKiBUT1cgS25vd24gICAgICAgOiBbIDAgMXdlZWsgXSA6IFNUQVRFX1RPV19LTk9XTiBzZXQKKyAgICAgICAgICoKKyAgICAgICAgICogTm90ZTogVE9XIEtub3duIHJlZmVycyB0byB0aGUgY2FzZSB3aGVyZSBUT1cgaXMgcG9zc2libHkgbm90IGRlY29kZWQKKyAgICAgICAgICogb3ZlciB0aGUgYWlyIGJ1dCBoYXMgYmVlbiBkZXRlcm1pbmVkIGZyb20gb3RoZXIgc291cmNlcy4gSWYgVE9XCisgICAgICAgICAqIGRlY29kZWQgaXMgc2V0IHRoZW4gVE9XIEtub3duIG11c3QgYWxzbyBiZSBzZXQuCisgICAgICAgICAqCisgICAgICAgICAqIE5vdGU6IElmIHRoZXJlIGlzIGFueSBhbWJpZ3VpdHkgaW4gaW50ZWdlciBtaWxsaXNlY29uZCwKKyAgICAgICAgICogR05TU19NRUFTVVJFTUVOVF9TVEFURV9NU0VDX0FNQklHVU9VUyBtdXN0IGJlIHNldCBhY2NvcmRpbmdseSwgaW4gdGhlCisgICAgICAgICAqICdzdGF0ZScgZmllbGQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgdmFsdWUgbXVzdCBiZSBwb3B1bGF0ZWQgaWYgJ3N0YXRlJyAhPSBTVEFURV9VTktOT1dOLgorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgR2xvbmFzcywgdGhpcyBpcyB0aGUgcmVjZWl2ZWQgR2xvbmFzcyB0aW1lIG9mIGRheSwgYXQgdGhlCisgICAgICAgICAqIG1lYXN1cmVtZW50IHRpbWUgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqCisgICAgICAgICAqIEdpdmVuIHRoZSBoaWdoZXN0IHN5bmMgc3RhdGUgdGhhdCBjYW4gYmUgYWNoaWV2ZWQsIHBlciBlYWNoIHNhdGVsbGl0ZSwKKyAgICAgICAgICogdmFsaWQgcmFuZ2UgZm9yIHRoaXMgZmllbGQgY2FuIGJlOgorICAgICAgICAgKiBTZWFyY2hpbmcgICAgICAgICAgIDogWyAwICAgICAgIF0gOiBTVEFURV9VTktOT1dOIHNldAorICAgICAgICAgKiBDL0EgY29kZSBsb2NrICAgICAgIDogWyAwICAgMW1zIF0gOiBTVEFURV9DT0RFX0xPQ0sgc2V0CisgICAgICAgICAqIFN5bWJvbCBzeW5jICAgICAgICAgOiBbIDAgIDEwbXMgXSA6IFNUQVRFX1NZTUJPTF9TWU5DIHNldAorICAgICAgICAgKiBCaXQgc3luYyAgICAgICAgICAgIDogWyAwICAyMG1zIF0gOiBTVEFURV9CSVRfU1lOQyBzZXQKKyAgICAgICAgICogU3RyaW5nIHN5bmMgICAgICAgICA6IFsgMCAgICAycyBdIDogU1RBVEVfR0xPX1NUUklOR19TWU5DIHNldAorICAgICAgICAgKiBUaW1lIG9mIGRheSBkZWNvZGVkIDogWyAwICAxZGF5IF0gOiBTVEFURV9HTE9fVE9EX0RFQ09ERUQgc2V0CisgICAgICAgICAqIFRpbWUgb2YgZGF5IGtub3duICAgOiBbIDAgIDFkYXkgXSA6IFNUQVRFX0dMT19UT0RfS05PV04gc2V0CisgICAgICAgICAqCisgICAgICAgICAqIE5vdGU6IFRpbWUgb2YgZGF5IGtub3duIHJlZmVycyB0byB0aGUgY2FzZSB3aGVyZSBpdCBpcyBwb3NzaWJseSBub3QKKyAgICAgICAgICogZGVjb2RlZCBvdmVyIHRoZSBhaXIgYnV0IGhhcyBiZWVuIGRldGVybWluZWQgZnJvbSBvdGhlciBzb3VyY2VzLiBJZgorICAgICAgICAgKiBUaW1lIG9mIGRheSBkZWNvZGVkIGlzIHNldCB0aGVuIFRpbWUgb2YgZGF5IGtub3duIG11c3QgYWxzbyBiZSBzZXQuCisgICAgICAgICAqCisgICAgICAgICAqIEZvciBCZWlkb3UsIHRoaXMgaXMgdGhlIHJlY2VpdmVkIEJlaWRvdSB0aW1lIG9mIHdlZWssCisgICAgICAgICAqIGF0IHRoZSBtZWFzdXJlbWVudCB0aW1lIGluIG5hbm9zZWNvbmRzLgorICAgICAgICAgKgorICAgICAgICAgKiBHaXZlbiB0aGUgaGlnaGVzdCBzeW5jIHN0YXRlIHRoYXQgY2FuIGJlIGFjaGlldmVkLCBwZXIgZWFjaCBzYXRlbGxpdGUsCisgICAgICAgICAqIHZhbGlkIHJhbmdlIGZvciB0aGlzIGZpZWxkIGNhbiBiZToKKyAgICAgICAgICogU2VhcmNoaW5nICAgICAgICAgICAgOiBbIDAgICAgICAgXSA6IFNUQVRFX1VOS05PV04gc2V0LgorICAgICAgICAgKiBDL0EgY29kZSBsb2NrICAgICAgICA6IFsgMCAgIDFtcyBdIDogU1RBVEVfQ09ERV9MT0NLIHNldC4KKyAgICAgICAgICogQml0IHN5bmMgKEQyKSAgICAgICAgOiBbIDAgICAybXMgXSA6IFNUQVRFX0JEU19EMl9CSVRfU1lOQyBzZXQuCisgICAgICAgICAqIEJpdCBzeW5jIChEMSkgICAgICAgIDogWyAwICAyMG1zIF0gOiBTVEFURV9CSVRfU1lOQyBzZXQuCisgICAgICAgICAqIFN1YmZyYW1lIChEMikgICAgICAgIDogWyAwICAwLjZzIF0gOiBTVEFURV9CRFNfRDJfU1VCRlJBTUVfU1lOQyBzZXQuCisgICAgICAgICAqIFN1YmZyYW1lIChEMSkgICAgICAgIDogWyAwICAgIDZzIF0gOiBTVEFURV9TVUJGUkFNRV9TWU5DIHNldC4KKyAgICAgICAgICogVGltZSBvZiB3ZWVrIGRlY29kZWQgOiBbIDAgMXdlZWsgXSA6IFNUQVRFX1RPV19ERUNPREVEIHNldC4KKyAgICAgICAgICogVGltZSBvZiB3ZWVrIGtub3duICAgOiBbIDAgMXdlZWsgXSA6IFNUQVRFX1RPV19LTk9XTiBzZXQKKyAgICAgICAgICoKKyAgICAgICAgICogTm90ZTogVE9XIEtub3duIHJlZmVycyB0byB0aGUgY2FzZSB3aGVyZSBUT1cgaXMgcG9zc2libHkgbm90IGRlY29kZWQKKyAgICAgICAgICogb3ZlciB0aGUgYWlyIGJ1dCBoYXMgYmVlbiBkZXRlcm1pbmVkIGZyb20gb3RoZXIgc291cmNlcy4gSWYgVE9XCisgICAgICAgICAqIGRlY29kZWQgaXMgc2V0IHRoZW4gVE9XIEtub3duIG11c3QgYWxzbyBiZSBzZXQuCisgICAgICAgICAqCisgICAgICAgICAqIEZvciBHYWxpbGVvLCB0aGlzIGlzIHRoZSByZWNlaXZlZCBHYWxpbGVvIHRpbWUgb2Ygd2VlaywKKyAgICAgICAgICogYXQgdGhlIG1lYXN1cmVtZW50IHRpbWUgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqCisgICAgICAgICAqIEUxQkMgY29kZSBsb2NrICAgICAgIDogWyAwICA0bXMgXSA6IFNUQVRFX0dBTF9FMUJDX0NPREVfTE9DSyBzZXQuCisgICAgICAgICAqIEUxQyAybmQgY29kZSBsb2NrICAgIDogWyAwIDEwMG1zXSA6IFNUQVRFX0dBTF9FMUNfMk5EX0NPREVfTE9DSyBzZXQuCisgICAgICAgICAqIEUxQiBwYWdlICAgICAgICAgICAgIDogWyAwICAgMnMgXSA6IFNUQVRFX0dBTF9FMUJfUEFHRV9TWU5DIHNldC4KKyAgICAgICAgICogVGltZSBvZiB3ZWVrIGRlY29kZWQgOiBbIDAgMXdlZWtdIDogU1RBVEVfVE9XX0RFQ09ERUQgaXMgc2V0LgorICAgICAgICAgKiBUaW1lIG9mIHdlZWsga25vd24gICA6IFsgMCAxd2Vla10gOiBTVEFURV9UT1dfS05PV04gc2V0CisgICAgICAgICAqCisgICAgICAgICAqIE5vdGU6IFRPVyBLbm93biByZWZlcnMgdG8gdGhlIGNhc2Ugd2hlcmUgVE9XIGlzIHBvc3NpYmx5IG5vdCBkZWNvZGVkCisgICAgICAgICAqIG92ZXIgdGhlIGFpciBidXQgaGFzIGJlZW4gZGV0ZXJtaW5lZCBmcm9tIG90aGVyIHNvdXJjZXMuIElmIFRPVworICAgICAgICAgKiBkZWNvZGVkIGlzIHNldCB0aGVuIFRPVyBLbm93biBtdXN0IGFsc28gYmUgc2V0LgorICAgICAgICAgKgorICAgICAgICAgKiBGb3IgU0JBUywgdGhpcyBpcyByZWNlaXZlZCBTQkFTIHRpbWUsIGF0IHRoZSBtZWFzdXJlbWVudCB0aW1lIGluCisgICAgICAgICAqIG5hbm9zZWNvbmRzLgorICAgICAgICAgKgorICAgICAgICAgKiBHaXZlbiB0aGUgaGlnaGVzdCBzeW5jIHN0YXRlIHRoYXQgY2FuIGJlIGFjaGlldmVkLCBwZXIgZWFjaCBzYXRlbGxpdGUsCisgICAgICAgICAqIHZhbGlkIHJhbmdlIGZvciB0aGlzIGZpZWxkIGNhbiBiZToKKyAgICAgICAgICogU2VhcmNoaW5nICAgIDogWyAwICAgICBdIDogU1RBVEVfVU5LTk9XTgorICAgICAgICAgKiBDL0EgY29kZSBsb2NrOiBbIDAgMW1zIF0gOiBTVEFURV9DT0RFX0xPQ0sgaXMgc2V0CisgICAgICAgICAqIFN5bWJvbCBzeW5jICA6IFsgMCAybXMgXSA6IFNUQVRFX1NZTUJPTF9TWU5DIGlzIHNldAorICAgICAgICAgKiBNZXNzYWdlICAgICAgOiBbIDAgIDFzIF0gOiBTVEFURV9TQkFTX1NZTkMgaXMgc2V0CisgICAgICAgICAqLworICAgICAgICBpbnQ2NF90IHJlY2VpdmVkU3ZUaW1lSW5OczsKKworICAgICAgICAvKioKKyAgICAgICAgICogMS1TaWdtYSB1bmNlcnRhaW50eSBvZiB0aGUgUmVjZWl2ZWQgR05TUyBUaW1lLW9mLVdlZWsgaW4gbmFub3NlY29uZHMuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgdmFsdWUgbXVzdCBiZSBwb3B1bGF0ZWQgaWYgJ3N0YXRlJyAhPSBTVEFURV9VTktOT1dOLgorICAgICAgICAgKi8KKyAgICAgICAgaW50NjRfdCByZWNlaXZlZFN2VGltZVVuY2VydGFpbnR5SW5OczsKKworICAgICAgICAvKioKKyAgICAgICAgICogQ2Fycmllci10by1ub2lzZSBkZW5zaXR5IGluIGRCLUh6LCB0eXBpY2FsbHkgaW4gdGhlIHJhbmdlIFswLCA2M10uCisgICAgICAgICAqIEl0IGNvbnRhaW5zIHRoZSBtZWFzdXJlZCBDL04wIHZhbHVlIGZvciB0aGUgc2lnbmFsIGF0IHRoZSBhbnRlbm5hIHBvcnQuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgaXMgYSBtYW5kYXRvcnkgdmFsdWUuCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgY04wRGJIejsKKworICAgICAgICAvKioKKyAgICAgICAgICogUHNldWRvcmFuZ2UgcmF0ZSBhdCB0aGUgdGltZXN0YW1wIGluIG0vcy4gVGhlIGNvcnJlY3Rpb24gb2YgYSBnaXZlbgorICAgICAgICAgKiBQc2V1ZG9yYW5nZSBSYXRlIHZhbHVlIGluY2x1ZGVzIGNvcnJlY3Rpb25zIGZvciByZWNlaXZlciBhbmQgc2F0ZWxsaXRlCisgICAgICAgICAqIGNsb2NrIGZyZXF1ZW5jeSBlcnJvcnMuIEVuc3VyZSB0aGF0IHRoaXMgZmllbGQgaXMgaW5kZXBlbmRlbnQgKHNlZQorICAgICAgICAgKiBjb21tZW50IGF0IHRvcCBvZiBHbnNzTWVhc3VyZW1lbnQgc3RydWN0LikKKyAgICAgICAgICoKKyAgICAgICAgICogSXQgaXMgbWFuZGF0b3J5IHRvIHByb3ZpZGUgdGhlICd1bmNvcnJlY3RlZCcgJ3BzZXVkb3JhbmdlIHJhdGUnLCBhbmQKKyAgICAgICAgICogcHJvdmlkZSBHbnNzQ2xvY2sncyAnZHJpZnQnIGZpZWxkIGFzIHdlbGwuIFdoZW4gcHJvdmlkaW5nIHRoZQorICAgICAgICAgKiB1bmNvcnJlY3RlZCBwc2V1ZG9yYW5nZSByYXRlLCBkbyBub3QgYXBwbHkgdGhlIGNvcnJlY3Rpb25zIGRlc2NyaWJlZCBhYm92ZS4pCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSB2YWx1ZSBpbmNsdWRlcyB0aGUgJ3BzZXVkb3JhbmdlIHJhdGUgdW5jZXJ0YWludHknIGluIGl0LgorICAgICAgICAgKiBBIHBvc2l0aXZlICd1bmNvcnJlY3RlZCcgdmFsdWUgaW5kaWNhdGVzIHRoYXQgdGhlIFNWIGlzIG1vdmluZyBhd2F5IGZyb20KKyAgICAgICAgICogdGhlIHJlY2VpdmVyLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgc2lnbiBvZiB0aGUgJ3VuY29ycmVjdGVkJyAncHNldWRvcmFuZ2UgcmF0ZScgYW5kIGl0cyByZWxhdGlvbiB0byB0aGUKKyAgICAgICAgICogc2lnbiBvZiAnZG9wcGxlciBzaGlmdCcgaXMgZ2l2ZW4gYnkgdGhlIGVxdWF0aW9uOgorICAgICAgICAgKiAgICAgIHBzZXVkb3JhbmdlIHJhdGUgPSAtayAqIGRvcHBsZXIgc2hpZnQgICAod2hlcmUgayBpcyBhIGNvbnN0YW50KQorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIG11c3QgYmUgdGhlIG1vc3QgYWNjdXJhdGUgcHNldWRvcmFuZ2UgcmF0ZSBhdmFpbGFibGUsIGJhc2VkIG9uCisgICAgICAgICAqIGZyZXNoIHNpZ25hbCBtZWFzdXJlbWVudHMgZnJvbSB0aGlzIGNoYW5uZWwuCisgICAgICAgICAqCisgICAgICAgICAqIEl0IGlzIG1hbmRhdG9yeSB0aGF0IHRoaXMgdmFsdWUgYmUgcHJvdmlkZWQgYXQgdHlwaWNhbCBjYXJyaWVyIHBoYXNlIFBSUgorICAgICAgICAgKiBxdWFsaXR5IChmZXcgY20vc2VjIHBlciBzZWNvbmQgb2YgdW5jZXJ0YWludHksIG9yIGJldHRlcikgLSB3aGVuIHNpZ25hbHMKKyAgICAgICAgICogYXJlIHN1ZmZpY2llbnRseSBzdHJvbmcgJiBzdGFibGUsIGUuZy4gc2lnbmFscyBmcm9tIGEgR05TUyBzaW11bGF0b3IgYXQgPj0KKyAgICAgICAgICogMzUgZEItSHouCisgICAgICAgICAqLworICAgICAgICBkb3VibGUgcHNldWRvcmFuZ2VSYXRlTXBzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAxLVNpZ21hIHVuY2VydGFpbnR5IG9mIHRoZSBwc2V1ZG9yYW5nZVJhdGVNcHMuCisgICAgICAgICAqIFRoZSB1bmNlcnRhaW50eSBpcyByZXByZXNlbnRlZCBhcyBhbiBhYnNvbHV0ZSAoc2luZ2xlIHNpZGVkKSB2YWx1ZS4KKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBwc2V1ZG9yYW5nZVJhdGVVbmNlcnRhaW50eU1wczsKKworICAgICAgICAvKioKKyAgICAgICAgICogQWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2UncyBzdGF0ZS4gSXQgaW5kaWNhdGVzIHdoZXRoZXIgQURSIGlzIHJlc2V0IG9yCisgICAgICAgICAqIHRoZXJlIGlzIGEgY3ljbGUgc2xpcChpbmRpY2F0aW5nIGxvc3Mgb2YgbG9jaykuCisgICAgICAgICAqCisgICAgICAgICAqIFRoaXMgaXMgYSBtYW5kYXRvcnkgdmFsdWUuCisgICAgICAgICAqLworICAgICAgICBiaXRmaWVsZDxHbnNzQWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGU+IGFjY3VtdWxhdGVkRGVsdGFSYW5nZVN0YXRlOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBY2N1bXVsYXRlZCBkZWx0YSByYW5nZSBzaW5jZSB0aGUgbGFzdCBjaGFubmVsIHJlc2V0IGluIG1ldGVycy4KKyAgICAgICAgICogQSBwb3NpdGl2ZSB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgU1YgaXMgbW92aW5nIGF3YXkgZnJvbSB0aGUgcmVjZWl2ZXIuCisgICAgICAgICAqCisgICAgICAgICAqIFRoZSBzaWduIG9mIHRoZSAnYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2UnIGFuZCBpdHMgcmVsYXRpb24gdG8gdGhlIHNpZ24gb2YKKyAgICAgICAgICogJ2NhcnJpZXIgcGhhc2UnIGlzIGdpdmVuIGJ5IHRoZSBlcXVhdGlvbjoKKyAgICAgICAgICogYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2UgPSAtayAqIGNhcnJpZXIgcGhhc2UgKHdoZXJlIGsgaXMgYSBjb25zdGFudCkKKyAgICAgICAgICoKKyAgICAgICAgICogVGhpcyB2YWx1ZSBtdXN0IGJlIHBvcHVsYXRlZCBpZiAnYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2Ugc3RhdGUnICE9CisgICAgICAgICAqIEFEUl9TVEFURV9VTktOT1dOLgorICAgICAgICAgKiBIb3dldmVyLCBpdCBpcyBleHBlY3RlZCB0aGF0IHRoZSBkYXRhIGlzIG9ubHkgYWNjdXJhdGUgd2hlbjoKKyAgICAgICAgICogICAgICAnYWNjdW11bGF0ZWQgZGVsdGEgcmFuZ2Ugc3RhdGUnID09IEFEUl9TVEFURV9WQUxJRC4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBhY2N1bXVsYXRlZERlbHRhUmFuZ2VNOworCisgICAgICAgIC8qKgorICAgICAgICAgKiAxLVNpZ21hIHVuY2VydGFpbnR5IG9mIHRoZSBhY2N1bXVsYXRlZCBkZWx0YSByYW5nZSBpbiBtZXRlcnMuCisgICAgICAgICAqIFRoaXMgdmFsdWUgbXVzdCBiZSBwb3B1bGF0ZWQgaWYgJ2FjY3VtdWxhdGVkIGRlbHRhIHJhbmdlIHN0YXRlJyAhPQorICAgICAgICAgKiBBRFJfU1RBVEVfVU5LTk9XTi4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBhY2N1bXVsYXRlZERlbHRhUmFuZ2VVbmNlcnRhaW50eU07CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIENhcnJpZXIgZnJlcXVlbmN5IG9mIHRoZSBzaWduYWwgdHJhY2tlZCwgZm9yIGV4YW1wbGUgaXQgY2FuIGJlIHRoZQorICAgICAgICAgKiBHUFMgY2VudHJhbCBmcmVxdWVuY3kgZm9yIEwxID0gMTU3NS40NSBNSHosIG9yIEwyID0gMTIyNy42MCBNSHosIEw1ID0KKyAgICAgICAgICogMTE3Ni40NSBNSHosIHZhcnlpbmcgR0xPIGNoYW5uZWxzLCBldGMuIElmIHRoZSBmaWVsZCBpcyBub3Qgc2V0LCBpdAorICAgICAgICAgKiBpcyB0aGUgcHJpbWFyeSBjb21tb24gdXNlIGNlbnRyYWwgZnJlcXVlbmN5LCBlLmcuIEwxID0gMTU3NS40NSBNSHoKKyAgICAgICAgICogZm9yIEdQUy4KKyAgICAgICAgICoKKyAgICAgICAgICogRm9yIGFuIEwxLCBMNSByZWNlaXZlciB0cmFja2luZyBhIHNhdGVsbGl0ZSBvbiBMMSBhbmQgTDUgYXQgdGhlIHNhbWUKKyAgICAgICAgICogdGltZSwgdHdvIHJhdyBtZWFzdXJlbWVudCBzdHJ1Y3RzIG11c3QgYmUgcmVwb3J0ZWQgZm9yIHRoaXMgc2FtZQorICAgICAgICAgKiBzYXRlbGxpdGUsIGluIG9uZSBvZiB0aGUgbWVhc3VyZW1lbnQgc3RydWN0cywgYWxsIHRoZSB2YWx1ZXMgcmVsYXRlZAorICAgICAgICAgKiB0byBMMSBtdXN0IGJlIGZpbGxlZCwgYW5kIGluIHRoZSBvdGhlciBhbGwgb2YgdGhlIHZhbHVlcyByZWxhdGVkIHRvCisgICAgICAgICAqIEw1IG11c3QgYmUgZmlsbGVkLgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUsIGduc3NDbG9ja0ZsYWdzIG11c3QgY29udGFpbgorICAgICAgICAgKiBIQVNfQ0FSUklFUl9GUkVRVUVOQ1kuCisgICAgICAgICAqLworICAgICAgICBmbG9hdCBjYXJyaWVyRnJlcXVlbmN5SHo7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBudW1iZXIgb2YgZnVsbCBjYXJyaWVyIGN5Y2xlcyBiZXR3ZWVuIHRoZSBzYXRlbGxpdGUgYW5kIHRoZQorICAgICAgICAgKiByZWNlaXZlci4gVGhlIHJlZmVyZW5jZSBmcmVxdWVuY3kgaXMgZ2l2ZW4gYnkgdGhlIGZpZWxkCisgICAgICAgICAqICdjYXJyaWVyRnJlcXVlbmN5SHonLiBJbmRpY2F0aW9ucyBvZiBwb3NzaWJsZSBjeWNsZSBzbGlwcyBhbmQKKyAgICAgICAgICogcmVzZXRzIGluIHRoZSBhY2N1bXVsYXRpb24gb2YgdGhpcyB2YWx1ZSBjYW4gYmUgaW5mZXJyZWQgZnJvbSB0aGUKKyAgICAgICAgICogYWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGUgZmxhZ3MuCisgICAgICAgICAqCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19DQVJSSUVSX0NZQ0xFUy4KKyAgICAgICAgICovCisgICAgICAgIGludDY0X3QgY2FycmllckN5Y2xlczsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIFJGIHBoYXNlIGRldGVjdGVkIGJ5IHRoZSByZWNlaXZlciwgaW4gdGhlIHJhbmdlIFswLjAsIDEuMF0uCisgICAgICAgICAqIFRoaXMgaXMgdXN1YWxseSB0aGUgZnJhY3Rpb25hbCBwYXJ0IG9mIHRoZSBjb21wbGV0ZSBjYXJyaWVyIHBoYXNlCisgICAgICAgICAqIG1lYXN1cmVtZW50LgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgcmVmZXJlbmNlIGZyZXF1ZW5jeSBpcyBnaXZlbiBieSB0aGUgZmllbGQgJ2NhcnJpZXJGcmVxdWVuY3lIeicuCisgICAgICAgICAqIFRoZSB2YWx1ZSBjb250YWlucyB0aGUgJ2NhcnJpZXItcGhhc2UgdW5jZXJ0YWludHknIGluIGl0LgorICAgICAgICAgKgorICAgICAgICAgKiBJZiB0aGUgZGF0YSBpcyBhdmFpbGFibGUsIGduc3NDbG9ja0ZsYWdzIG11c3QgY29udGFpbgorICAgICAgICAgKiBIQVNfQ0FSUklFUl9QSEFTRS4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBjYXJyaWVyUGhhc2U7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIDEtU2lnbWEgdW5jZXJ0YWludHkgb2YgdGhlIGNhcnJpZXItcGhhc2UuCisgICAgICAgICAqIElmIHRoZSBkYXRhIGlzIGF2YWlsYWJsZSwgZ25zc0Nsb2NrRmxhZ3MgbXVzdCBjb250YWluCisgICAgICAgICAqIEhBU19DQVJSSUVSX1BIQVNFX1VOQ0VSVEFJTlRZLgorICAgICAgICAgKi8KKyAgICAgICAgZG91YmxlIGNhcnJpZXJQaGFzZVVuY2VydGFpbnR5OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBbiBlbnVtZXJhdGlvbiB0aGF0IGluZGljYXRlcyB0aGUgJ211bHRpcGF0aCcgc3RhdGUgb2YgdGhlIGV2ZW50LgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgbXVsdGlwYXRoIEluZGljYXRvciBpcyBpbnRlbmRlZCB0byByZXBvcnQgdGhlIHByZXNlbmNlIG9mIG92ZXJsYXBwaW5nCisgICAgICAgICAqIHNpZ25hbHMgdGhhdCBtYW5pZmVzdCBhcyBkaXN0b3J0ZWQgY29ycmVsYXRpb24gcGVha3MuCisgICAgICAgICAqCisgICAgICAgICAqIC0gaWYgdGhlcmUgaXMgYSBkaXN0b3J0ZWQgY29ycmVsYXRpb24gcGVhayBzaGFwZSwgcmVwb3J0IHRoYXQgbXVsdGlwYXRoCisgICAgICAgICAqICAgaXMgTVVMVElQQVRIX0lORElDQVRPUl9QUkVTRU5ULgorICAgICAgICAgKiAtIGlmIHRoZXJlIGlzIG5vIGRpc3RvcnRlZCBjb3JyZWxhdGlvbiBwZWFrIHNoYXBlLCByZXBvcnQKKyAgICAgICAgICogICBNVUxUSVBBVEhfSU5ESUNBVE9SX05PVF9QUkVTRU5UCisgICAgICAgICAqIC0gaWYgc2lnbmFscyBhcmUgdG9vIHdlYWsgdG8gZGlzY2VybiB0aGlzIGluZm9ybWF0aW9uLCByZXBvcnQKKyAgICAgICAgICogICBNVUxUSVBBVEhfSU5ESUNBVE9SX1VOS05PV04KKyAgICAgICAgICoKKyAgICAgICAgICogRXhhbXBsZTogd2hlbiBkb2luZyB0aGUgc3RhbmRhcmRpemVkIG92ZXJsYXBwaW5nIE11bHRpcGF0aCBQZXJmb3JtYW5jZQorICAgICAgICAgKiB0ZXN0ICgzR1BQIFRTIDM0LjE3MSkgdGhlIE11bHRpcGF0aCBpbmRpY2F0b3IgbXVzdCByZXBvcnQKKyAgICAgICAgICogTVVMVElQQVRIX0lORElDQVRPUl9QUkVTRU5UIGZvciB0aG9zZSBzaWduYWxzIHRoYXQgYXJlIHRyYWNrZWQsIGFuZAorICAgICAgICAgKiBjb250YWluIG11bHRpcGF0aCwgYW5kIE1VTFRJUEFUSF9JTkRJQ0FUT1JfTk9UX1BSRVNFTlQgZm9yIHRob3NlCisgICAgICAgICAqIHNpZ25hbHMgdGhhdCBhcmUgdHJhY2tlZCBhbmQgZG8gbm90IGNvbnRhaW4gbXVsdGlwYXRoLgorICAgICAgICAgKi8KKyAgICAgICAgR25zc011bHRpcGF0aEluZGljYXRvciBtdWx0aXBhdGhJbmRpY2F0b3I7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNpZ25hbC10by1ub2lzZSByYXRpbyBhdCBjb3JyZWxhdG9yIG91dHB1dCBpbiBkQi4KKyAgICAgICAgICogSWYgdGhlIGRhdGEgaXMgYXZhaWxhYmxlLCBHbnNzTWVhc3VyZW1lbnRGbGFncyBtdXN0IGNvbnRhaW4gSEFTX1NOUi4KKyAgICAgICAgICogVGhpcyBpcyB0aGUgcG93ZXIgcmF0aW8gb2YgdGhlICJjb3JyZWxhdGlvbiBwZWFrIGhlaWdodCBhYm92ZSB0aGUKKyAgICAgICAgICogb2JzZXJ2ZWQgbm9pc2UgZmxvb3IiIHRvICJ0aGUgbm9pc2UgUk1TIi4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBzbnJEYjsKKworICAgICAgICAvKioKKyAgICAgICAgICogQXV0b21hdGljIGdhaW4gY29udHJvbCAoQUdDKSBsZXZlbC4gQUdDIGFjdHMgYXMgYSB2YXJpYWJsZSBnYWluCisgICAgICAgICAqIGFtcGxpZmllciBhZGp1c3RpbmcgdGhlIHBvd2VyIG9mIHRoZSBpbmNvbWluZyBzaWduYWwuIFRoZSBBR0MgbGV2ZWwKKyAgICAgICAgICogbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgcG90ZW50aWFsIGludGVyZmVyZW5jZS4gV2hlbiBBR0MgaXMgYXQgYQorICAgICAgICAgKiBub21pbmFsIGxldmVsLCB0aGlzIHZhbHVlIG11c3QgYmUgc2V0IGFzIDAuIEhpZ2hlciBnYWluIChhbmQvb3IgbG93ZXIKKyAgICAgICAgICogaW5wdXQgcG93ZXIpIG11c3QgYmUgb3V0cHV0IGFzIGEgcG9zaXRpdmUgbnVtYmVyLiBIZW5jZSBpbiBjYXNlcyBvZgorICAgICAgICAgKiBzdHJvbmcgamFtbWluZywgaW4gdGhlIGJhbmQgb2YgdGhpcyBzaWduYWwsIHRoaXMgdmFsdWUgbXVzdCBnbyBtb3JlCisgICAgICAgICAqIG5lZ2F0aXZlLgorICAgICAgICAgKgorICAgICAgICAgKiBOb3RlOiBEaWZmZXJlbnQgaGFyZHdhcmUgZGVzaWducyAoZS5nLiBhbnRlbm5hLCBwcmUtYW1wbGlmaWNhdGlvbiwgb3IKKyAgICAgICAgICogb3RoZXIgUkYgSFcgY29tcG9uZW50cykgbWF5IGFsc28gYWZmZWN0IHRoZSB0eXBpY2FsIG91dHB1dCBvZiBvZiB0aGlzCisgICAgICAgICAqIHZhbHVlIG9uIGFueSBnaXZlbiBoYXJkd2FyZSBkZXNpZ24gaW4gYW4gb3BlbiBza3kgdGVzdCAtIHRoZQorICAgICAgICAgKiBpbXBvcnRhbnQgYXNwZWN0IG9mIHRoaXMgb3V0cHV0IGlzIHRoYXQgY2hhbmdlcyBpbiB0aGlzIHZhbHVlIGFyZQorICAgICAgICAgKiBpbmRpY2F0aXZlIG9mIGNoYW5nZXMgb24gaW5wdXQgc2lnbmFsIHBvd2VyIGluIHRoZSBmcmVxdWVuY3kgYmFuZCBmb3IKKyAgICAgICAgICogdGhpcyBtZWFzdXJlbWVudC4KKyAgICAgICAgICovCisgICAgICAgIGRvdWJsZSBhZ2NMZXZlbERiOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIGEgcmVhZGluZyBvZiBHTlNTIG1lYXN1cmVtZW50cy4gRm9yIGRldmljZXMgd2hlcmUgR25zc1N5c3RlbUluZm8ncworICAgICAqIHllYXJPZkh3IGlzIHNldCB0byAyMDE2KywgaXQgaXMgbWFuZGF0b3J5IHRoYXQgdGhlc2UgYmUgcHJvdmlkZWQsIG9uCisgICAgICogcmVxdWVzdCwgd2hlbiB0aGUgR05TUyByZWNlaXZlciBpcyBzZWFyY2hpbmcvdHJhY2tpbmcgc2lnbmFscy4KKyAgICAgKgorICAgICAqIC0gUmVwb3J0aW5nIG9mIEdOU1MgY29uc3RlbGxhdGlvbiBtZWFzdXJlbWVudHMgaXMgbWFuZGF0b3J5LgorICAgICAqIC0gUmVwb3J0aW5nIG9mIGFsbCB0cmFja2VkIGNvbnN0ZWxsYXRpb25zIGFyZSBlbmNvdXJhZ2VkLgorICAgICAqLworICAgIHN0cnVjdCBHbnNzRGF0YSB7CisgICAgICAgIC8qKiBOdW1iZXIgb2YgR25zc01lYXN1cmVtZW50IGVsZW1lbnRzLiAqLworICAgICAgICB1aW50MzJfdCBtZWFzdXJlbWVudENvdW50OworCisgICAgICAgIC8qKiBUaGUgYXJyYXkgb2YgbWVhc3VyZW1lbnRzLiAqLworICAgICAgICBHbnNzTWVhc3VyZW1lbnRbR25zc01heDpTVlNfQ09VTlRdIG1lYXN1cmVtZW50czsKKworICAgICAgICAvKiogVGhlIEdOU1MgY2xvY2sgdGltZSByZWFkaW5nLiAqLworICAgICAgICBHbnNzQ2xvY2sgY2xvY2s7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENhbGxiYWNrIGZvciB0aGUgaGFsIHRvIHBhc3MgYSBHbnNzRGF0YSBzdHJ1Y3R1cmUgYmFjayB0byB0aGUgY2xpZW50LgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGEgQ29udGFpbnMgYSByZWFkaW5nIG9mIEdOU1MgbWVhc3VyZW1lbnRzLgorICAgICAqLworICAgIEduc3NNZWFzdXJlbWVudENiKEduc3NEYXRhIGRhdGEpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsIGIvZ25zcy8xLjAvSUduc3NOYXZpZ2F0aW9uTWVzc2FnZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGI0NmQxMQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaGFsCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK2ltcG9ydCBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2s7CisKKy8qKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBHTlNTIG5hdmlnYXRpb24gbWVzc2FnZSByZXBvcnRpbmcgc3VwcG9ydC4KKyAqLworaW50ZXJmYWNlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgeworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfTkFWSUdBVElPTl9NRVNTQUdFXyIpCisgICAgZW51bSBHbnNzTmF2aWdhdGlvbk1lc3NhZ2VTdGF0dXMgOiBpbnQzMl90IHsKKyAgICAgICAgU1VDQ0VTUyA9IDAsCisgICAgICAgIEVSUk9SX0FMUkVBRFlfSU5JVCA9IC0xMDAsCisgICAgICAgIEVSUk9SX0dFTkVSSUMgPSAtMTAxCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEluaXRpYWxpemVzIHRoZSBpbnRlcmZhY2UgYW5kIHJlZ2lzdGVycyB0aGUgY2FsbGJhY2sgcm91dGluZXMgd2l0aCB0aGUgSEFMLgorICAgICAqIEFmdGVyIGEgc3VjY2Vzc2Z1bCBjYWxsIHRvICdzZXRDYWxsYmFjaycgdGhlIEhBTCBtdXN0IGJlZ2luIHRvIHByb3ZpZGUgdXBkYXRlcyBhcworICAgICAqIHRoZXkgYmVjb21lIGF2YWlsYWJsZS4KKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgaGFuZGxlIHRvIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYWNrIGludGVyZmFjZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW5pdFJldCBSZXR1cm5zIFNVQ0NFU1MgaWYgdGhlIG9wZXJhdGlvbgorICAgICAqIGlzIHN1Y2Nlc3NmdWwuCisgICAgICogUmV0dXJucyBFUlJPUl9BTFJFQURZX0lOSVQgaWYgYSBjYWxsYmFjayBoYXMKKyAgICAgKiBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZCB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBjYWxsIHRvIGNsb3NlKCkuCisgICAgICogUmV0dXJucyBFUlJPUl9HRU5FUklDIGlmIGFueSBvdGhlciBlcnJvciBvY2N1cnJlZC4gSXQgaXMKKyAgICAgKiBleHBlY3RlZCB0aGF0IHRoZSBIQUwgd2lsbCBub3QgZ2VuZXJhdGUgYW55IHVwZGF0ZXMgdXBvbiByZXR1cm5pbmcKKyAgICAgKiB0aGlzIGVycm9yIGNvZGUuCisgICAgICovCisgICAgIHNldENhbGxiYWNrKElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjayBjYWxsYmFjaykgZ2VuZXJhdGVzIChHbnNzTmF2aWdhdGlvbk1lc3NhZ2VTdGF0dXMgaW5pdFJldCk7CisKKyAgICAvKioKKyAgICAgKiBTdG9wcyB1cGRhdGVzIGZyb20gdGhlIEhBTCwgYW5kIHVucmVnaXN0ZXJzIHRoZSBjYWxsYmFjayByb3V0aW5lcy4KKyAgICAgKiBBZnRlciBhIGNhbGwgdG8gY2xvc2UoKSwgdGhlIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBjYWxsYmFja3MgbXVzdCBiZQorICAgICAqIGNvbnNpZGVyZWQgaW52YWxpZCBieSB0aGUgSEFMLgorICAgICAqIElmIGNsb3NlKCkgaXMgaW52b2tlZCB3aXRob3V0IGEgcHJldmlvdXMgc2V0Q2FsbGJhY2ssIHRoaXMgZnVuY3Rpb24gbXVzdCBwZXJmb3JtCisgICAgICogbm8gd29yay4KKyAgICAgKi8KKyAgICBjbG9zZSgpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjay5oYWwgYi9nbnNzLzEuMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmZGFlOWYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wOworCisvKiogUmVwcmVzZW50cyBhIEdOU1MgbmF2aWdhdGlvbiBtZXNzYWdlIChvciBhIGZyYWdtZW50IG9mIGl0KS4gKi8KK2ludGVyZmFjZSBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIEVudW1lcmF0aW9uIG9mIGF2YWlsYWJsZSB2YWx1ZXMgdG8gaW5kaWNhdGUgdGhlIEdOU1MgTmF2aWdhdGlvbiBtZXNzYWdlCisgICAgICogdHlwZXMuCisgICAgICoKKyAgICAgKiBGb3IgY29udmVuaWVuY2UsIGZpcnN0IGJ5dGUgaXMgdGhlIEduc3NDb25zdGVsbGF0aW9uVHlwZSBvbiB3aGljaCB0aGF0IHNpZ25hbAorICAgICAqIGlzIHR5cGljYWxseSB0cmFuc21pdHRlZC4KKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19OQVZJR0FUSU9OX01FU1NBR0VfVFlQRV8iKQorICAgIGVudW0gR25zc05hdmlnYXRpb25NZXNzYWdlVHlwZSA6IGludDE2X3QgeworICAgICAgICBVTktOT1dOICAgID0gMCwKKyAgICAgICAgLyoqIEdQUyBMMSBDL0EgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gICovCisgICAgICAgIEdQU19MMUNBICAgICAgID0gMHgwMTAxLAorICAgICAgICAvKiogR1BTIEwyLUNOQVYgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgR1BTX0wyQ05BViAgICAgPSAweDAxMDIsCisgICAgICAgIC8qKiBHUFMgTDUtQ05BViBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAqLworICAgICAgICBHUFNfTDVDTkFWICAgICA9IDB4MDEwMywKKyAgICAgICAgLyoqIEdQUyBDTkFWLTIgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgR1BTX0NOQVYyICAgICAgPSAweDAxMDQsCisgICAgICAgIC8qKiBHbG9uYXNzIEwxIENBIG1lc3NhZ2UgY29udGFpbmVkIGluIHRoZSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEdMT19MMUNBICAgICAgICA9IDB4MDMwMSwKKyAgICAgICAgLyoqIEJlaWRvdSBEMSBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAqLworICAgICAgICBCRFNfRDEgICAgICAgICAgPSAweDA1MDEsCisgICAgICAgIC8qKiBCZWlkb3UgRDIgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4gKi8KKyAgICAgICAgQkRTX0QyICAgICAgICAgID0gMHgwNTAyLAorICAgICAgICAvKiogR2FsaWxlbyBJL05BViBtZXNzYWdlIGNvbnRhaW5lZCBpbiB0aGUgc3RydWN0dXJlLiAqLworICAgICAgICBHQUxfSSAgICAgICAgICAgPSAweDA2MDEsCisgICAgICAgIC8qKiBHYWxpbGVvIEYvTkFWIG1lc3NhZ2UgY29udGFpbmVkIGluIHRoZSBzdHJ1Y3R1cmUuICovCisgICAgICAgIEdBTF9GICAgICAgICAgICA9IDB4MDYwMgorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBTdGF0dXMgb2YgTmF2aWdhdGlvbiBNZXNzYWdlCisgICAgICogV2hlbiBhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQgcHJvcGVybHkgd2l0aG91dCBhbnkgcGFyaXR5IGVycm9yIGluIGl0cworICAgICAqIG5hdmlnYXRpb24gd29yZHMsIHRoZSBzdGF0dXMgbXVzdCBiZSBzZXQgdG8gUEFSSVRZX1BBU1NFRC4KKyAgICAgKiBJZiBhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQgd2l0aCB3b3JkcyB0aGF0IGZhaWxlZCBhIHBhcml0eSBjaGVjaywgYnV0IHRoZSBHTlNTCisgICAgICogcmVjZWl2ZXIgaGFzIGNvcnJlY3RlZCB0aG9zZSB3b3JkcywgdGhlIHN0YXR1cyBtdXN0IGJlIHNldCB0byBQQVJJVFlfUkVCVUlMVC4KKyAgICAgKiBEbyBub3Qgc2VuZCBhbnkgbmF2aWdhdGlvbiBtZXNzYWdlIHRoYXQgY29udGFpbnMgd29yZHMgd2l0aCBwYXJpdHkgZXJyb3JzCisgICAgICogdGhhdCBjYW5ub3QgYmUgY29ycmVjdGVkLgorICAgICAqLworICAgIEBleHBvcnQobmFtZT0ibmF2aWdhdGlvbl9tZXNzYWdlX3N0YXR1cyIsIHZhbHVlX3ByZWZpeD0iTkFWX01FU1NBR0VfU1RBVFVTXyIpCisgICAgZW51bSBOYXZpZ2F0aW9uTWVzc2FnZVN0YXR1cyA6IHVpbnQxNl90IHsKKyAgICAgICAgUEFSSVRZX1BBU1NFRCAgPSAoMSA8PCAwKSwKKyAgICAgICAgUEFSSVRZX1JFQlVJTFQgPSAoMSA8PCAxKSwKKyAgICAgICAgVU5LTk9XTiAgPSAwCisgICAgfTsKKworICAgIHN0cnVjdCBHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgeworICAgICAgICAvKioKKyAgICAgICAgICogU2F0ZWxsaXRlIHZlaGljbGUgSUQgbnVtYmVyLCBhcyBkZWZpbmVkIGluIEduc3NTdkluZm86OnN2aWQKKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIGludDE2X3Qgc3ZpZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHR5cGUgb2YgbWVzc2FnZSBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZS4KKyAgICAgICAgICogVGhpcyBpcyBhIG1hbmRhdG9yeSB2YWx1ZS4KKyAgICAgICAgICovCisgICAgICAgIEduc3NOYXZpZ2F0aW9uTWVzc2FnZVR5cGUgdHlwZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHN0YXR1cyBvZiB0aGUgcmVjZWl2ZWQgbmF2aWdhdGlvbiBtZXNzYWdlLgorICAgICAgICAgKiBObyBuZWVkIHRvIHNlbmQgYW55IG5hdmlnYXRpb24gbWVzc2FnZSB0aGF0IGNvbnRhaW5zIHdvcmRzIHdpdGggcGFyaXR5CisgICAgICAgICAqIGVycm9ycyB0aGF0IGNhbm5vdCBiZSBjb3JyZWN0ZWQuCisgICAgICAgICAqLworICAgICAgICBiaXRmaWVsZDxOYXZpZ2F0aW9uTWVzc2FnZVN0YXR1cz4gc3RhdHVzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBNZXNzYWdlIGlkZW50aWZpZXIuIEl0IHByb3ZpZGVzIGFuIGluZGV4IHNvIHRoZSBjb21wbGV0ZSBOYXZpZ2F0aW9uCisgICAgICAgICAqIE1lc3NhZ2UgY2FuIGJlIGFzc2VtYmxlZC4KKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR05TUyBMMSBDL0Egc3ViZnJhbWUgNCBhbmQgNSwgdGhpcyB2YWx1ZSBjb3JyZXNwb25kcyB0byB0aGUgJ2ZyYW1lCisgICAgICAgICAqICAgaWQnIG9mIHRoZSBuYXZpZ2F0aW9uIG1lc3NhZ2UsIGluIHRoZSByYW5nZSBvZiAxLTI1IChTdWJmcmFtZSAxLCAyLCAzCisgICAgICAgICAqICAgZG9lcyBub3QgY29udGFpbiBhICdmcmFtZSBpZCcgYW5kIHRoaXMgdmFsdWUgY2FuIGJlIHNldCB0byAtMS4pCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdsb25hc3MgTDEgQy9BLCB0aGlzIHJlZmVycyB0byB0aGUgZnJhbWUgSUQsIGluIHRoZSByYW5nZSBvZiAxLTUuCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEJlaURvdSBEMSwgdGhpcyByZWZlcnMgdG8gdGhlIGZyYW1lIG51bWJlciBpbiB0aGUgcmFuZ2Ugb2YgMS0yNAorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBCZWlkb3UgRDIsIHRoaXMgcmVmZXJzIHRvIHRoZSBmcmFtZSBudW1iZXIsIGluIHRoZSByYW5nZSBvZiAxLTEyMAorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHYWxpbGVvIEYvTkFWIG5vbWluYWwgZnJhbWUgc3RydWN0dXJlLCB0aGlzIHJlZmVycyB0byB0aGUgc3ViZnJhbWUKKyAgICAgICAgICogICBudW1iZXIsIGluIHRoZSByYW5nZSBvZiAxLTEyCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdhbGlsZW8gSS9OQVYgbm9taW5hbCBmcmFtZSBzdHJ1Y3R1cmUsIHRoaXMgcmVmZXJzIHRvIHRoZSBzdWJmcmFtZQorICAgICAgICAgKiAgIG51bWJlciBpbiB0aGUgcmFuZ2Ugb2YgMS0yNAorICAgICAgICAgKi8KKyAgICAgICAgaW50MTZfdCBtZXNzYWdlSWQ7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN1Yi1tZXNzYWdlIGlkZW50aWZpZXIuIElmIHJlcXVpcmVkIGJ5IHRoZSBtZXNzYWdlICd0eXBlJywgdGhpcyB2YWx1ZQorICAgICAgICAgKiBjb250YWlucyBhIHN1Yi1pbmRleCB3aXRoaW4gdGhlIGN1cnJlbnQgbWVzc2FnZSAob3IgZnJhbWUpIHRoYXQgaXMgYmVpbmcKKyAgICAgICAgICogdHJhbnNtaXR0ZWQuCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdOU1MgTDEgQy9BLCBCZWlEb3UgRDEgJiBCZWlEb3UgRDIsIHRoZSBzdWJtZXNzYWdlIGlkIGNvcnJlc3BvbmRzIHRvCisgICAgICAgICAqICAgdGhlIHN1YmZyYW1lIG51bWJlciBvZiB0aGUgbmF2aWdhdGlvbiBtZXNzYWdlLCBpbiB0aGUgcmFuZ2Ugb2YgMS01LgorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHbG9uYXNzIEwxIEMvQSwgdGhpcyByZWZlcnMgdG8gdGhlIFN0cmluZyBudW1iZXIsIGluIHRoZSByYW5nZSBmcm9tCisgICAgICAgICAqICAgMS0xNQorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHYWxpbGVvIEYvTkFWLCB0aGlzIHJlZmVycyB0byB0aGUgcGFnZSB0eXBlIGluIHRoZSByYW5nZSAxLTYKKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR2FsaWxlbyBJL05BViwgdGhpcyByZWZlcnMgdG8gdGhlIHdvcmQgdHlwZSBpbiB0aGUgcmFuZ2UgMS0xMCsKKyAgICAgICAgICovCisgICAgICAgIGludDE2X3Qgc3VibWVzc2FnZUlkOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgZGF0YSBvZiB0aGUgcmVwb3J0ZWQgR05TUyBtZXNzYWdlLiBUaGUgYnl0ZXMgKG9yIHdvcmRzKSBhcmUgc3BlY2lmaWVkCisgICAgICAgICAqIHVzaW5nIGJpZyBlbmRpYW4gZm9ybWF0IChNU0IgZmlyc3QpLgorICAgICAgICAgKgorICAgICAgICAgKiAtIEZvciBHTlNTIEwxIEMvQSwgQmVpZG91IEQxICYgQmVpZG91IEQyLCBlYWNoIHN1YmZyYW1lIGNvbnRhaW5zIDEwIDMwLWJpdAorICAgICAgICAgKiAgIHdvcmRzLiBFYWNoIHdvcmQgKDMwIGJpdHMpIG11c3QgZml0IGludG8gdGhlIGxhc3QgMzAgYml0cyBpbiBhCisgICAgICAgICAqICAgNC1ieXRlIHdvcmQgKHNraXAgQjMxIGFuZCBCMzIpLCB3aXRoIE1TQiBmaXJzdCwgZm9yIGEgdG90YWwgb2YgNDAKKyAgICAgICAgICogICBieXRlcywgY292ZXJpbmcgYSB0aW1lIHBlcmlvZCBvZiA2LCA2LCBhbmQgMC42IHNlY29uZHMsIHJlc3BlY3RpdmVseS4KKyAgICAgICAgICogICBUaGUgc3RhbmRhcmQgZm9sbG93ZWQgaXMgMTk5NSBTUFMgU2lnbmFsIHNwZWNpZmljYXRpb24uCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdsb25hc3MgTDEgQy9BLCBlYWNoIHN0cmluZyBjb250YWlucyA4NSBkYXRhIGJpdHMsIGluY2x1ZGluZyB0aGUKKyAgICAgICAgICogICBjaGVja3N1bS4gIFRoZXNlIGJpdHMgbXVzdCBmaXQgaW50byAxMSBieXRlcywgd2l0aCBNU0IgZmlyc3QgKHNraXAKKyAgICAgICAgICogICBCODYtQjg4KSwgY292ZXJpbmcgYSB0aW1lIHBlcmlvZCBvZiAyIHNlY29uZHMuCisgICAgICAgICAqICAgVGhlIHN0YW5kYXJkIGZvbGxvd2VkIGlzIEdsb25hc3MgSW50ZXJmYWNlIENvbnRyb2wgRG9jdW1lbnQgRWRpdGlvbiA1LjEuCisgICAgICAgICAqCisgICAgICAgICAqIC0gRm9yIEdhbGlsZW8gRi9OQVYsIGVhY2ggd29yZCBjb25zaXN0cyBvZiAyMzgtYml0IChzeW5jICYgdGFpbCBzeW1ib2xzCisgICAgICAgICAqICAgZXhjbHVkZWQpLiBFYWNoIHdvcmQgbXVzdCBmaXQgaW50byAzMC1ieXRlcywgd2l0aCBNU0IgZmlyc3QgKHNraXAKKyAgICAgICAgICogICBCMjM5LCBCMjQwKSwgY292ZXJpbmcgYSB0aW1lIHBlcmlvZCBvZiAxMCBzZWNvbmRzLiBUaGUgc3RhbmRhcmQKKyAgICAgICAgICogICBmb2xsb3dlZCBpcyBFdXJvcGVhbiBHTlNTKEdhbGlsZW8pIFNpZ25hbCBpbiBTcGFjZSBJbnRlcmZhY2UKKyAgICAgICAgICogICBDb250cm9sIERvY3VtZW50IElzc3VlIDEuMi4KKyAgICAgICAgICoKKyAgICAgICAgICogLSBGb3IgR2FsaWxlbyBJL05BViwgZWFjaCBwYWdlIGNvbnRhaW5zIDIgcGFnZSBwYXJ0cywgZXZlbiBhbmQgb2RkLCB3aXRoCisgICAgICAgICAqICAgYSB0b3RhbCBvZiAyeDExNCA9IDIyOCBiaXRzLCAoc3luYyAmIHRhaWwgZXhjbHVkZWQpIHRoYXQgbXVzdCBmaXQKKyAgICAgICAgICogICBpbnRvIDI5IGJ5dGVzLCB3aXRoIE1TQiBmaXJzdCAoc2tpcCBCMjI5LUIyMzIpLiBUaGUgc3RhbmRhcmQgZm9sbG93ZWQKKyAgICAgICAgICogICBpcyBzYW1lIGFzIGFib3ZlLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgZGF0YSByZXBvcnRlZCBoZXJlIG11c3QgYmUgdGhlIHJhdyBkYXRhIGFzIGRlbW9kdWxhdGVkIGJ5IHRoZSBHTlNTCisgICAgICAgICAqIHJlY2VpdmVyLCBub3QgZGF0YSByZWNlaXZlZCBmcm9tIGFuIGV4dGVybmFsIHNvdXJjZSAoaS5lLiBub3QgZnJvbSBhIHNlcnZlcgorICAgICAgICAgKiBkb3dubG9hZC4pCisgICAgICAgICAqLworICAgICAgICB2ZWM8dWludDhfdD4gZGF0YTsKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGhlIGNhbGxiYWNrIHRvIHJlcG9ydCBhbiBhdmFpbGFibGUgZnJhZ21lbnQgb2YgYSBHTlNTIG5hdmlnYXRpb24gbWVzc2FnZXMKKyAgICAgKiBmcm9tIHRoZSBIQUwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbWVzc2FnZSAtIFRoZSBHTlNTIG5hdmlnYXRpb24gc3VibWVzc2FnZS9zdWJmcmFtZSByZXByZXNlbnRhdGlvbi4KKyAgICAgKi8KKyAgICAgZ25zc05hdmlnYXRpb25NZXNzYWdlQ2IoR25zc05hdmlnYXRpb25NZXNzYWdlIG1lc3NhZ2UpOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzTmkuaGFsIGIvZ25zcy8xLjAvSUduc3NOaS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE5OGFiMAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTmkuaGFsCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CitpbXBvcnQgSUduc3NOaUNhbGxiYWNrOworCisvKioKKyAqIEV4dGVuZGVkIGludGVyZmFjZSBmb3IgTmV0d29yay1pbml0aWF0ZWQgKE5JKSBzdXBwb3J0LiBUaGlzIGludGVyZmFjZSBpcyB1c2VkCisgKiB0byByZXNwb25kIHRvIE5JIG5vdGlmaWNhdGlvbnMgb3JpZ2luYXRpbmcgZnJvbSB0aGUgSEFMLgorICovCitpbnRlcmZhY2UgSUduc3NOaSB7CisgICAgLyoqCisgICAgICogUmVnaXN0ZXJzIHRoZSBjYWxsYmFja3MgZm9yIEhBTCB0byB1c2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgaGFuZGxlIHRvIElHbnNzTmlDYWxsYmFjayBpbnRlcmZhY2UuCisgICAgICovCisgICAgc2V0Q2FsbGJhY2soSUduc3NOaUNhbGxiYWNrIGNhbGxiYWNrKTsKKworICAgIC8qKgorICAgICAqIFNlbmRzIGEgcmVzcG9uc2UgdG8gSEFMLgorICAgICAqCisgICAgICogQHBhcmFtIG5vdGlmSWQgQW4gSUQgZ2VuZXJhdGVkIGJ5IEhBTCB0byBhc3NvY2lhdGUgTkkgbm90aWZpY2F0aW9ucyBhbmQKKyAgICAgKiBmcmFtZXdvcmsgcmVzcG9uc2VzLgorICAgICAqIEBwYXJhbSB1c2VyUmVzcG9uc2UgQSBHTlNTIE5pIHJlc3BvbnNlIGluZGljYXRpbmcgaWYgdGhlIG5vdGlmaWNhdGlvbiB3YXMKKyAgICAgKiBhY2NlcHRlZCwgZGVuaWVkIG9yIG5vdCByZXNwb25kZWQgdG8uCisgICAgICovCisgICAgcmVzcG9uZChpbnQzMl90IG5vdGlmSWQsIEduc3NVc2VyUmVzcG9uc2VUeXBlIHVzZXJSZXNwb25zZSk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvSUduc3NOaUNhbGxiYWNrLmhhbCBiL2duc3MvMS4wL0lHbnNzTmlDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2UzMDcxYQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzTmlDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKiBHTlNTIE5ldHdvcmsgSW5pdGlhdGVkIGNhbGxiYWNrIGludGVyZmFjZS4gKi8KK2ludGVyZmFjZSBJR25zc05pQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIEduc3NOaVR5cGUgY29uc3RhbnRzCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19OSV9UWVBFXyIpCisgICAgZW51bSBHbnNzTmlUeXBlIDogdWludDhfdCB7CisgICAgICAgIFZPSUNFICAgICAgICAgICA9IDEsCisgICAgICAgIFVNVFNfU1VQTCAgICAgICA9IDIsCisgICAgICAgIFVNVFNfQ1RSTF9QTEFORSA9IDMsCisgICAgICAgIEVNRVJHRU5DWV9TVVBMICA9IDQKKyAgICB9OworCisgICAgLyoqCisgICAgICogR25zc05pTm90aWZ5RmxhZ3MgY29uc3RhbnRzCisgICAgICovCisgICAgQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19OSV8iKQorICAgIGVudW0gR25zc05pTm90aWZ5RmxhZ3MgOiB1aW50MzJfdCB7CisgICAgICAgIC8qKiBOSSByZXF1aXJlcyBub3RpZmljYXRpb24gKi8KKyAgICAgICAgTkVFRF9OT1RJRlkgICAgICA9IDB4MDAwMSwKKyAgICAgICAgLyoqIE5JIHJlcXVpcmVzIHZlcmlmaWNhdGlvbiAqLworICAgICAgICBORUVEX1ZFUklGWSAgICAgID0gMHgwMDAyLAorICAgICAgICAvKiogTkkgcmVxdWlyZXMgcHJpdmFjeSBvdmVycmlkZSwgbm8gbm90aWZpY2F0aW9uL21pbmltYWwgdHJhY2UgKi8KKyAgICAgICAgUFJJVkFDWV9PVkVSUklERSA9IDB4MDAwNCwKKyAgICB9OworCisgICAgLyoqCisgICAgICogR05TUyBOSSByZXNwb25zZXMsIHVzZWQgdG8gZGVmaW5lIHRoZSByZXNwb25zZSBpbgorICAgICAqIE5JIHN0cnVjdHVyZXMKKyAgICAgKi8KKyAgICBAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR1BTX05JXyIpCisgICAgZW51bSBHbnNzVXNlclJlc3BvbnNlVHlwZSA6IHVpbnQ4X3QgeworICAgICAgICBSRVNQT05TRV9BQ0NFUFQgID0gMSwKKyAgICAgICAgUkVTUE9OU0VfREVOWSAgICA9IDIsCisgICAgICAgIFJFU1BPTlNFX05PUkVTUCAgPSAzLAorICAgIH07CisKKyAgICAvKioKKyAgICAgKiBOSSBkYXRhIGVuY29kaW5nIHNjaGVtZQorICAgICAqLworICAgIEBleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHUFNfIikKKyAgICBlbnVtIEduc3NOaUVuY29kaW5nVHlwZSA6IGludDMyX3QgeworICAgICAgICBFTkNfTk9ORSAgICAgICAgICAgICAgPSAwLAorICAgICAgICBFTkNfU1VQTF9HU01fREVGQVVMVCAgPSAxLAorICAgICAgICBFTkNfU1VQTF9VVEY4ICAgICAgICAgPSAyLAorICAgICAgICBFTkNfU1VQTF9VQ1MyICAgICAgICAgPSAzLAorICAgICAgICBFTkNfVU5LTk9XTiAgICAgICAgICAgPSAtMSwKKyAgICB9OworCisgICAgLyoqIFJlcHJlc2VudHMgYW4gTkkgcmVxdWVzdCAqLworICAgIHN0cnVjdCBHbnNzTmlOb3RpZmljYXRpb257CisgICAgICAgIC8qKgorICAgICAgICAgKiBBbiBJRCBnZW5lcmF0ZWQgYnkgSEFMIHRvIGFzc29jaWF0ZSBOSSBub3RpZmljYXRpb25zIGFuZCBVSQorICAgICAgICAgKiByZXNwb25zZXMuCisgICAgICAgICAqLworICAgICAgICBpbnQzMl90IG5vdGlmaWNhdGlvbklkOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBBIHR5cGUgdXNlZCB0byBkaXN0aW5ndWlzaCBkaWZmZXJlbnQgY2F0ZWdvcmllcyBvZiBOSQorICAgICAgICAgKiBldmVudHMsIHN1Y2ggYXMgVk9JQ0UsIFVNVFNfU1VQTCBldGMuCisgICAgICAgICAqLworICAgICAgICBHbnNzTmlUeXBlIG5pVHlwZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogTm90aWZpY2F0aW9uL3ZlcmlmaWNhdGlvbiBvcHRpb25zLCBjb21iaW5hdGlvbnMgb2YgR25zc05pTm90aWZ5RmxhZ3MKKyAgICAgICAgICogY29uc3RhbnRzLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8R25zc05pTm90aWZ5RmxhZ3M+IG5vdGlmeUZsYWdzOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaW1lb3V0IHBlcmlvZCB0byB3YWl0IGZvciB1c2VyIHJlc3BvbnNlLgorICAgICAgICAgKiBTZXQgdG8gMCBmb3Igbm8gdGltZW91dCBsaW1pdC4gU3BlY2lmaWVkIGluIHNlY29uZHMuCisgICAgICAgICAqLworICAgICAgICB1aW50MzJfdCB0aW1lb3V0U2VjOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWZhdWx0IHJlc3BvbnNlIHdoZW4gdGltZW91dC4KKyAgICAgICAgICovCisgICAgICAgIEduc3NVc2VyUmVzcG9uc2VUeXBlIGRlZmF1bHRSZXNwb25zZTsKKworICAgICAgICAvKioKKyAgICAgICAgICogU3RyaW5nIHJlcHJlc2VudGluZyB0aGUgcmVxdWVzdGVyIG9mIHRoZSBuZXR3b3JrIGluaXRpdGF0ZWQgbG9jYXRpb24KKyAgICAgICAgICogcmVxdWVzdC4KKyAgICAgICAgICovCisgICAgICAgIHN0cmluZyByZXF1ZXN0b3JJZDsKKworICAgICAgICAvKioKKyAgICAgICAgICogTm90aWZpY2F0aW9uIG1lc3NhZ2UuIFN0cmluZyByZXByZXNlbnRpbmcgdGhlIHNlcnZpY2UoZm9yIGVnLiBTVVBMLXNlcnZpY2UpCisgICAgICAgICAqIHdobyBzZW50IHRoZSBuZXR3b3JrIGluaXRpYXRlZCBsb2NhdGlvbiByZXF1ZXN0LgorICAgICAgICAgKi8KKyAgICAgICAgc3RyaW5nIG5vdGlmaWNhdGlvbk1lc3NhZ2U7CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIHJlcXVlc3RvcklkIGRlY29kaW5nIHNjaGVtZS4KKyAgICAgICAgICovCisgICAgICAgIEduc3NOaUVuY29kaW5nVHlwZSByZXF1ZXN0b3JJZEVuY29kaW5nOworCisgICAgICAgIC8qKgorICAgICAgICAgKiBub3RpZmljYXRpb25JZCBkZWNvZGluZyBzY2hlbWUKKyAgICAgICAgICovCisgICAgICAgIEduc3NOaUVuY29kaW5nVHlwZSBub3RpZmljYXRpb25JZEVuY29kaW5nOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayB3aXRoIGEgbmV0d29yayBpbml0aWF0ZWQgcmVxdWVzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBub3RpZmljYXRpb24gbmV0d29yayBpbml0aWF0ZWQgcmVxdWVzdC4KKyAgICAgKi8KKyAgICBuaU5vdGlmeUNiKEduc3NOaU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24pOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL0lHbnNzWHRyYS5oYWwgYi9nbnNzLzEuMC9JR25zc1h0cmEuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyYzhmMzkKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9JR25zc1h0cmEuaGFsCkBAIC0wLDAgKzEsMjcgQEAKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMDsKK2ltcG9ydCBJR25zc1h0cmFDYWxsYmFjazsKKworLyoqCisgKiBUaGlzIGludGVyZmFjZSBpcyB1c2VkIGJ5IHRoZSBHTlNTIEhBTCB0byByZXF1ZXN0IHRoZSBmcmFtZXdvcmsKKyAqIHRvIGRvd25sb2FkIFhUUkEgZGF0YS4KKyAqLworaW50ZXJmYWNlIElHbnNzWHRyYSB7CisgICAgLyoqCisgICAgICogT3BlbnMgdGhlIFhUUkEgaW50ZXJmYWNlIGFuZCBwcm92aWRlcyB0aGUgY2FsbGJhY2sgcm91dGluZXMKKyAgICAgKiB0byB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSGFuZGxlIHRvIHRoZSBJR25zc1h0cmFDYWxsYmFjayBpbnRlcmZhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1Y2Nlc3MgVHJ1ZSBpZiB0aGUgb3BlcmF0aW9uIGlzIHN1Y2Nlc3NmdWwuCisgICAgICovCisgICAgc2V0Q2FsbGJhY2soSUduc3NYdHJhQ2FsbGJhY2sgY2FsbGJhY2spIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKKworICAgIC8qKgorICAgICAqIEluamVjdCB0aGUgZG93bmxvYWRlZCBYVFJBIGRhdGEgaW50byB0aGUgR05TUyByZWNlaXZlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSB4dHJhRGF0YSBHTlNTIFhUUkEgZGF0YS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VjY2VzcyBUcnVlIGlmIHRoZSBvcGVyYXRpb24gaXMgc3VjY2Vzc2Z1bC4KKyAgICAgKi8KKyAgICBpbmplY3RYdHJhRGF0YShzdHJpbmcgeHRyYURhdGEpIGdlbmVyYXRlcyAoYm9vbCBzdWNjZXNzKTsKK307CmRpZmYgLS1naXQgYS9nbnNzLzEuMC9JR25zc1h0cmFDYWxsYmFjay5oYWwgYi9nbnNzLzEuMC9JR25zc1h0cmFDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM4ZjFhZAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL0lHbnNzWHRyYUNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDEyIEBACitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKKy8qKgorICogVGhpcyBpbnRlcmZhY2UgaXMgdXNlZCBieSB0aGUgR05TUyBIQUwgdG8gcmVxdWVzdCBkb3dubG9hZCBvZiBYVFJBIGRhdGEuCisgKi8KK2ludGVyZmFjZSBJR25zc1h0cmFDYWxsYmFjayB7CisgICAvKioKKyAgICAqIENhbGxiYWNrIHRvIHJlcXVlc3QgdGhlIGNsaWVudCB0byBkb3dubG9hZCBYVFJBIGRhdGEuIFRoZSBjbGllbnQgc2hvdWxkCisgICAgKiBkb3dubG9hZCBYVFJBIGRhdGEgYW5kIGluamVjdCBpdCBieSBjYWxsaW5nIGluamVjdFh0cmFEYXRhKCkuCisgICAgKi8KKyAgIGRvd25sb2FkUmVxdWVzdENiKCk7Cit9OwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9BR25zcy5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWM2ZGRkCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9BR25zcy5jcHAKQEAgLTAsMCArMSwxOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfQUduc3NJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJBR25zcy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gQUduc3M6OnNUaHJlYWRGdW5jQXJnc0xpc3Q7CitzcDxJQUduc3NDYWxsYmFjaz4gQUduc3M6OnNBR25zc0NiSWZhY2UgPSBudWxscHRyOworYm9vbCBBR25zczo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworCitBR3BzQ2FsbGJhY2tzIEFHbnNzOjpzQUduc3NDYiA9IHsKKyAgICAuc3RhdHVzX2NiID0gc3RhdHVzQ2IsCisgICAgLmNyZWF0ZV90aHJlYWRfY2IgPSBjcmVhdGVUaHJlYWRDYgorfTsKKworQUduc3M6OkFHbnNzKGNvbnN0IEFHcHNJbnRlcmZhY2UqIGFHcHNJZmFjZSkgOiBtQUduc3NJZmFjZShhR3BzSWZhY2UpIHsKKyAgICAvKiBFcnJvciBvdXQgaWYgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVyZmFjZSBhbHJlYWR5IGV4aXN0cy4gKi8KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKHNJbnRlcmZhY2VFeGlzdHMpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSB0cnVlOworfQorCitBR25zczo6fkFHbnNzKCkgeworICAgIHNUaHJlYWRGdW5jQXJnc0xpc3QuY2xlYXIoKTsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7Cit9CisKK3ZvaWQgQUduc3M6OnN0YXR1c0NiKEFHcHNTdGF0dXMqIHN0YXR1cykgeworICAgIGlmIChzQUduc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR05TUyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChzdGF0dXMgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiQUdOU1Mgc3RhdHVzIGlzIGludmFsaWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qCisgICAgICogTG9naWMgYmFzZWQgb24gQUduc3NTdGF0dXMgcHJvY2Vzc2luZyBieSBHbnNzTG9jYXRpb25Qcm92aWRlci4gU2l6ZSBvZgorICAgICAqIEFHcHNTdGF0dXMgaXMgY2hlY2tlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBzaW5jZSBzb21lIGRldmljZXMgbWF5CisgICAgICogYmUgc2VuZGluZyBvdXQgYW4gb2xkZXIgdmVyc2lvbiBvZiBBR3BzU3RhdHVzIHRoYXQgb25seSBzdXBwb3J0cyBJUHY0LgorICAgICAqLworICAgIHNpemVfdCBzdGF0dXNTaXplID0gc3RhdHVzLT5zaXplOworICAgIGlmIChzdGF0dXMtPnNpemUgPT0gc2l6ZW9mKEFHcHNTdGF0dXMpKSB7CisgICAgICAgIHN3aXRjaCAoc3RhdHVzLT5hZGRyLnNzX2ZhbWlseSkKKyAgICAgICAgeworICAgICAgICAgICAgY2FzZSBBRl9JTkVUOgorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogc3NfZmFtaWx5IGluZGljYXRlcyBJUHY0LgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyX2luKiBpbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8c3RydWN0IHNvY2thZGRyX2luKj4oJihzdGF0dXMtPmFkZHIpKTsKKyAgICAgICAgICAgICAgICAgICAgSUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzSXBWNCBhR25zc1N0YXR1c0lwVjQgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAudHlwZSA9IHN0YXRpY19jYXN0PElBR25zc0NhbGxiYWNrOjpBR25zc1R5cGU+KHN0YXR1cy0+dHlwZSksCisgICAgICAgICAgICAgICAgICAgICAgICAuc3RhdHVzID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzVmFsdWU+KHN0YXR1cy0+c3RhdHVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pcFY0QWRkciA9IGluLT5zaW5fYWRkci5zX2FkZHIsCisgICAgICAgICAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogQ2FsbGJhY2sgdG8gY2xpZW50IHdpdGggYWduc3NTdGF0dXNJcFY0Q2IuCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBhdXRvIHJldCA9IHNBR25zc0NiSWZhY2UtPmFnbnNzU3RhdHVzSXBWNENiKGFHbnNzU3RhdHVzSXBWNCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQUZfSU5FVDY6CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgKiBzc19mYW1pbHkgaW5kaWNhdGVzIElQdjYuIENhbGxiYWNrIHRvIGNsaWVudCB3aXRoIGFnbnNzU3RhdHVzSXBWNkNiLgorICAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICAgICAgSUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzSXBWNiBhR25zc1N0YXR1c0lwVjY7CisKKyAgICAgICAgICAgICAgICAgICAgYUduc3NTdGF0dXNJcFY2LnR5cGUgPSBzdGF0aWNfY2FzdDxJQUduc3NDYWxsYmFjazo6QUduc3NUeXBlPihzdGF0dXMtPnR5cGUpOworICAgICAgICAgICAgICAgICAgICBhR25zc1N0YXR1c0lwVjYuc3RhdHVzID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzVmFsdWU+KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cy0+c3RhdHVzKTsKKworICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW42KiBpbjYgPSByZWludGVycHJldF9jYXN0PHN0cnVjdCBzb2NrYWRkcl9pbjYgKj4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJihzdGF0dXMtPmFkZHIpKTsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KCYoYUduc3NTdGF0dXNJcFY2LmlwVjZBZGRyWzBdKSwgaW42LT5zaW42X2FkZHIuczZfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFHbnNzU3RhdHVzSXBWNi5pcFY2QWRkci5zaXplKCkpOworICAgICAgICAgICAgICAgICAgICBhdXRvIHJldCA9IHNBR25zc0NiSWZhY2UtPmFnbnNzU3RhdHVzSXBWNkNiKGFHbnNzU3RhdHVzSXBWNik7CisgICAgICAgICAgICAgICAgICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBBTE9HRSgiSW52YWxpZCBzc19mYW1pbHkgZm91bmQ6ICVkIiwgc3RhdHVzLT5hZGRyLnNzX2ZhbWlseSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHN0YXR1c1NpemUgPj0gc2l6ZW9mKEFHcHNTdGF0dXNfdjIpKSB7CisgICAgICAgIEFHcHNTdGF0dXNfdjIqIHN0YXR1c1YyID0gcmVpbnRlcnByZXRfY2FzdDxBR3BzU3RhdHVzX3YyKj4oc3RhdHVzKTsKKyAgICAgICAgdWludDMyX3QgaXBWNEFkZHIgPSBzdGF0dXNWMi0+aXBhZGRyOworICAgICAgICBJQUduc3NDYWxsYmFjazo6QUduc3NTdGF0dXNJcFY0IGFHbnNzU3RhdHVzSXBWNCA9IHsKKyAgICAgICAgICAgIC50eXBlID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzVHlwZT4oQUZfSU5FVCksCisgICAgICAgICAgICAuc3RhdHVzID0gc3RhdGljX2Nhc3Q8SUFHbnNzQ2FsbGJhY2s6OkFHbnNzU3RhdHVzVmFsdWU+KHN0YXR1cy0+c3RhdHVzKSwKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBGb3Igb2xkZXIgdmVyc2lvbnMgb2YgQUdwc1N0YXR1cywgY2hhbmdlIElQIGFkZHIgdG8gbmV0IG9yZGVyLiBUaGlzCisgICAgICAgICAgICAgKiB3YXMgZWFybGllciBiZWluZyBkb25lIGluIEduc3NMb2NhdGlvblByb3ZpZGVyLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICAuaXBWNEFkZHIgPSBodG9ubChpcFY0QWRkcikKKyAgICAgICAgfTsKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2FsbGJhY2sgdG8gY2xpZW50IHdpdGggYWduc3NTdGF0dXNJcFY0Q2IuCisgICAgICAgICAqLworICAgICAgICBhdXRvIHJldCA9IHNBR25zc0NiSWZhY2UtPmFnbnNzU3RhdHVzSXBWNENiKGFHbnNzU3RhdHVzSXBWNCk7CisgICAgICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIHNpemUgZm9yIEFHUFMgU3RhdHVzIiwgX19mdW5jX18pOworICAgIH0KK30KKworcHRocmVhZF90IEFHbnNzOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCisvKgorICogSW1wbGVtZW50YXRpb24gb2YgbWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zcyBmb2xsb3cuCisgKi8KK1JldHVybjx2b2lkPiBBR25zczo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SUFHbnNzQ2FsbGJhY2s+JiBjYWxsYmFjaykgeworICAgIGlmIChtQUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHNBR25zc0NiSWZhY2UgPSBjYWxsYmFjazsKKworICAgIG1BR25zc0lmYWNlLT5pbml0KCZzQUduc3NDYik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IEFHbnNzOjpkYXRhQ29ubkNsb3NlZCgpICB7CisgICAgaWYgKG1BR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1BR25zc0lmYWNlLT5kYXRhX2Nvbm5fY2xvc2VkKCkgPT0gMCk7Cit9CisKK1JldHVybjxib29sPiBBR25zczo6ZGF0YUNvbm5GYWlsZWQoKSAgeworICAgIGlmIChtQUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtQUduc3NJZmFjZS0+ZGF0YV9jb25uX2ZhaWxlZCgpID09IDApOworfQorCitSZXR1cm48Ym9vbD4gQUduc3M6OnNldFNlcnZlcihJQUduc3NDYWxsYmFjazo6QUduc3NUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3N0cmluZyYgaG9zdG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHBvcnQpIHsKKyAgICBpZiAobUFHbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiAobUFHbnNzSWZhY2UtPnNldF9zZXJ2ZXIoc3RhdGljX2Nhc3Q8QUdwc1R5cGU+KHR5cGUpLCBob3N0bmFtZS5jX3N0cigpLCBwb3J0KSA9PSAwKTsKK30KKworUmV0dXJuPGJvb2w+IEFHbnNzOjpkYXRhQ29ubk9wZW4oY29uc3QgaGlkbF9zdHJpbmcmIGFwbiwgSUFHbnNzOjpBcG5JcFR5cGUgYXBuSXBUeXBlKSB7CisgICAgaWYgKG1BR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1BR25zc0lmYWNlLT5kYXRhX2Nvbm5fb3Blbl93aXRoX2Fwbl9pcF90eXBlKGFwbi5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MTZfdD4oYXBuSXBUeXBlKSkgPT0gMCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzLmggYi9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmE4ZWVkMAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvQUduc3MuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9BR25zc19IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9BR25zc19IXworCisjaW5jbHVkZSA8VGhyZWFkQ3JlYXRpb25XcmFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JQUduc3MuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHNfaW50ZXJuYWwuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zczsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zc0NhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBBR05TUyBzdXBwb3J0LiBBbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcyB0byBhbGxvdworICogbWV0aG9kcyBmcm9tIElBR25zc0NhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsCisgKiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgR05TUyBIQUwuCisgKi8KK3N0cnVjdCBBR25zcyA6IHB1YmxpYyBJQUduc3MgeworICAgIEFHbnNzKGNvbnN0IEFHcHNJbnRlcmZhY2UqIGFncHNJZmFjZSk7CisgICAgfkFHbnNzKCk7CisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzIGludGVyZmFjZSBmb2xsb3cuCisgICAgICogVGhlc2UgZGVjbGFyYXRpb25zIHdlcmUgZ2VuZXJhdGVkIGZyb20gSUFHbnNzLmhhbC4KKyAgICAgKi8KKyAgICBSZXR1cm48dm9pZD4gc2V0Q2FsbGJhY2soY29uc3Qgc3A8SUFHbnNzQ2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IGRhdGFDb25uQ2xvc2VkKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IGRhdGFDb25uRmFpbGVkKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHNldFNlcnZlcihJQUduc3NDYWxsYmFjazo6QUduc3NUeXBlIHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIGhvc3RuYW1lLCBpbnQzMl90IHBvcnQpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBkYXRhQ29ubk9wZW4oY29uc3QgaGlkbF9zdHJpbmcmIGFwbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQUduc3M6OkFwbklwVHlwZSBhcG5JcFR5cGUpIG92ZXJyaWRlOworCisgICAgLyoKKyAgICAgKiBDYWxsYmFjayBtZXRob2RzIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi4gVGhlc2UgbWV0aG9kcyBhcmUgbm90IHBhcnQgb2YgdGhlIElBR25zcyBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyBwdGhyZWFkX3QgY3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZyk7CisgICAgc3RhdGljIHZvaWQgc3RhdHVzQ2IoQUdwc1N0YXR1cyogc3RhdHVzKTsKKworICAgIC8qCisgICAgICogSG9sZHMgZnVuY3Rpb24gcG9pbnRlcnMgdG8gdGhlIGNhbGxiYWNrIG1ldGhvZHMuCisgICAgICovCisgICAgc3RhdGljIEFHcHNDYWxsYmFja3Mgc0FHbnNzQ2I7CisKKyBwcml2YXRlOgorICAgIGNvbnN0IEFHcHNJbnRlcmZhY2UqIG1BR25zc0lmYWNlID0gbnVsbHB0cjsKKyAgICBzdGF0aWMgc3A8SUFHbnNzQ2FsbGJhY2s+IHNBR25zc0NiSWZhY2U7CisgICAgc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IHNUaHJlYWRGdW5jQXJnc0xpc3Q7CisgICAgc3RhdGljIGJvb2wgc0ludGVyZmFjZUV4aXN0czsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfQUduc3NfSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvQUduc3NSaWwuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9BR25zc1JpbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ1ODMyNwotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvQUduc3NSaWwuY3BwCkBAIC0wLDAgKzEsMTUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0FHbnNzUmlsSW50ZXJmYWNlIgorCisjaW5jbHVkZSAiQUduc3NSaWwuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IEFHbnNzUmlsOjpzVGhyZWFkRnVuY0FyZ3NMaXN0Oworc3A8SUFHbnNzUmlsQ2FsbGJhY2s+IEFHbnNzUmlsOjpzQUduc3NSaWxDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgQUduc3NSaWw6OnNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKKworQUdwc1JpbENhbGxiYWNrcyBBR25zc1JpbDo6c0FHbnNzUmlsQ2IgPSB7CisgICAgLnJlcXVlc3Rfc2V0aWQgPSBBR25zc1JpbDo6cmVxdWVzdFNldElkLAorICAgIC5yZXF1ZXN0X3JlZmxvYyA9IEFHbnNzUmlsOjpyZXF1ZXN0UmVmTG9jLAorICAgIC5jcmVhdGVfdGhyZWFkX2NiID0gQUduc3NSaWw6OmNyZWF0ZVRocmVhZENiCit9OworCitBR25zc1JpbDo6QUduc3NSaWwoY29uc3QgQUdwc1JpbEludGVyZmFjZSogYUdwc1JpbElmYWNlKSA6IG1BR25zc1JpbElmYWNlKGFHcHNSaWxJZmFjZSkgeworICAgIC8qIEVycm9yIG91dCBpZiBhbiBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlIGFscmVhZHkgZXhpc3RzLiAqLworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc0ludGVyZmFjZUV4aXN0cyk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IHRydWU7Cit9CisKK0FHbnNzUmlsOjp+QUduc3NSaWwoKSB7CisgICAgc1RocmVhZEZ1bmNBcmdzTGlzdC5jbGVhcigpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKK30KKwordm9pZCBBR25zc1JpbDo6cmVxdWVzdFNldElkKHVpbnQzMl90IGZsYWdzKSB7CisgICAgaWYgKHNBR25zc1JpbENiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHTlNTUmlsIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBzQUduc3NSaWxDYklmYWNlLT5yZXF1ZXN0U2V0SWRDYihmbGFncyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgQUduc3NSaWw6OnJlcXVlc3RSZWZMb2ModWludDMyX3QgLypmbGFncyovKSB7CisgICAgaWYgKHNBR25zc1JpbENiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHTlNTUmlsIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBzQUduc3NSaWxDYklmYWNlLT5yZXF1ZXN0UmVmTG9jQ2IoKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKworcHRocmVhZF90IEFHbnNzUmlsOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzUmlsIGZvbGxvdy4KK1JldHVybjx2b2lkPiBBR25zc1JpbDo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SUFHbnNzUmlsQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUFHbnNzUmlsSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzUmlsIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzQUduc3NSaWxDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICBtQUduc3NSaWxJZmFjZS0+aW5pdCgmc0FHbnNzUmlsQ2IpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBBR25zc1JpbDo6c2V0UmVmTG9jYXRpb24oY29uc3QgSUFHbnNzUmlsOjpBR25zc1JlZkxvY2F0aW9uJiBhR25zc1JlZkxvY2F0aW9uKSAgeworICAgIGlmIChtQUduc3NSaWxJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogQUduc3NSaWwgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEFHcHNSZWZMb2NhdGlvbiBhR25zc1JlZmxvYzsKKyAgICBhR25zc1JlZmxvYy50eXBlID0gc3RhdGljX2Nhc3Q8dWludDE2X3Q+KGFHbnNzUmVmTG9jYXRpb24udHlwZSk7CisKKyAgICBhdXRvJiBjZWxsSUQgPSBhR25zc1JlZkxvY2F0aW9uLmNlbGxJRDsKKyAgICBhR25zc1JlZmxvYy51LmNlbGxJRCA9IHsKKyAgICAgICAgLnR5cGUgPSBzdGF0aWNfY2FzdDx1aW50MTZfdD4oY2VsbElELnR5cGUpLAorICAgICAgICAubWNjID0gY2VsbElELm1jYywKKyAgICAgICAgLm1uYyA9IGNlbGxJRC5tbmMsCisgICAgICAgIC5sYWMgPSBjZWxsSUQubGFjLAorICAgICAgICAuY2lkID0gY2VsbElELmNpZCwKKyAgICAgICAgLnRhYyA9IGNlbGxJRC50YWMsCisgICAgICAgIC5wY2lkID0gY2VsbElELnBjaWQKKyAgICB9OworCisgICAgbUFHbnNzUmlsSWZhY2UtPnNldF9yZWZfbG9jYXRpb24oJmFHbnNzUmVmbG9jLCBzaXplb2YoYUduc3NSZWZsb2MpKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gQUduc3NSaWw6OnNldFNldElkKElBR25zc1JpbDo6U2V0SURUeXBlIHR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJiBzZXRpZCkgIHsKKyAgICBpZiAobUFHbnNzUmlsSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEFHbnNzUmlsIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1BR25zc1JpbElmYWNlLT5zZXRfc2V0X2lkKHN0YXRpY19jYXN0PHVpbnQxNl90Pih0eXBlKSwgc2V0aWQuY19zdHIoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JldHVybjxib29sPiBBR25zc1JpbDo6dXBkYXRlTmV0d29ya1N0YXRlKGJvb2wgY29ubmVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUFHbnNzUmlsOjpOZXR3b3JrVHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByb2FtaW5nKSB7CisgICAgaWYgKG1BR25zc1JpbElmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zc1JpbCBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBtQUduc3NSaWxJZmFjZS0+dXBkYXRlX25ldHdvcmtfc3RhdGUoY29ubmVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KHR5cGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2FtaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyIC8qIGV4dHJhX2luZm8gKi8pOworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48Ym9vbD4gQUduc3NSaWw6OnVwZGF0ZU5ldHdvcmtBdmFpbGFiaWxpdHkoYm9vbCBhdmFpbGFibGUsIGNvbnN0IGhpZGxfc3RyaW5nJiBhcG4pICB7CisgICAgaWYgKG1BR25zc1JpbElmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBBR25zc1JpbCBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBtQUduc3NSaWxJZmFjZS0+dXBkYXRlX25ldHdvcmtfYXZhaWxhYmlsaXR5KGF2YWlsYWJsZSwgYXBuLmNfc3RyKCkpOworICAgIHJldHVybiB0cnVlOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9BR25zc1JpbC5oIGIvZ25zcy8xLjAvZGVmYXVsdC9BR25zc1JpbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyMTVhOWUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0FHbnNzUmlsLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfQUduc3NSaWxfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfQUduc3NSaWxfSF8KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUFHbnNzUmlsLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zc1JpbDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklBR25zc1JpbENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBBR05TUyBSSUwgc3VwcG9ydC4gQW4gQXNzaXN0ZWQgR05TUyBSYWRpbyBJbnRlcmZhY2UgTGF5ZXIgaW50ZXJmYWNlCisgKiBhbGxvd3MgdGhlIEdOU1MgY2hpcHNldCB0byByZXF1ZXN0IHJhZGlvIGludGVyZmFjZSBsYXllciBpbmZvcm1hdGlvbiBmcm9tIEFuZHJvaWQgcGxhdGZvcm0uCisgKiBFeGFtcGxlcyBvZiBzdWNoIGluZm9ybWF0aW9uIGFyZSByZWZlcmVuY2UgbG9jYXRpb24sIHVuaXF1ZSBzdWJzY3JpYmVyIElELCBwaG9uZSBudW1iZXIgc3RyaW5nCisgKiBhbmQgbmV0d29yayBhdmFpbGFiaWxpdHkgY2hhbmdlcy4gQWxzbyBjb250YWlucyB3cmFwcGVyIG1ldGhvZHMgdG8gYWxsb3cgbWV0aG9kcyBmcm9tCisgKiBJQUduc3NpUmlsQ2FsbGJhY2sgaW50ZXJmYWNlIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitzdHJ1Y3QgQUduc3NSaWwgOiBwdWJsaWMgSUFHbnNzUmlsIHsKKyAgICBBR25zc1JpbChjb25zdCBBR3BzUmlsSW50ZXJmYWNlKiBhR3BzUmlsSWZhY2UpOworICAgIH5BR25zc1JpbCgpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUFHbnNzUmlsIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJQUduc3NSaWwuaGFsLgorICAgICAqLworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJQUduc3NSaWxDYWxsYmFjaz4mIGNhbGxiYWNrKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0UmVmTG9jYXRpb24oY29uc3QgSUFHbnNzUmlsOjpBR25zc1JlZkxvY2F0aW9uJiBhZ25zc1JlZmxvY2F0aW9uKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0U2V0SWQoSUFHbnNzUmlsOjpTZXRJRFR5cGUgdHlwZSwgY29uc3QgaGlkbF9zdHJpbmcmIHNldGlkKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gdXBkYXRlTmV0d29ya1N0YXRlKGJvb2wgY29ubmVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUFHbnNzUmlsOjpOZXR3b3JrVHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByb2FtaW5nKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gdXBkYXRlTmV0d29ya0F2YWlsYWJpbGl0eShib29sIGF2YWlsYWJsZSwgY29uc3QgaGlkbF9zdHJpbmcmIGFwbikgb3ZlcnJpZGU7CisgICAgc3RhdGljIHZvaWQgcmVxdWVzdFNldElkKHVpbnQzMl90IGZsYWdzKTsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UmVmTG9jKHVpbnQzMl90IGZsYWdzKTsKKworICAgIC8qCisgICAgICogQ2FsbGJhY2sgbWV0aG9kIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQKKyAgICAgKiBpbXBsZW1lbnRhdGlvbi4gVGhpcyBtZXRob2QgaXMgbm90IHBhcnQgb2YgdGhlIElBR25zc1JpbCBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyBwdGhyZWFkX3QgY3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZyk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBBR3BzUmlsQ2FsbGJhY2tzIHNBR25zc1JpbENiOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBBR3BzUmlsSW50ZXJmYWNlKiBtQUduc3NSaWxJZmFjZSA9IG51bGxwdHI7CisgICAgc3RhdGljIHNwPElBR25zc1JpbENhbGxiYWNrPiBzQUduc3NSaWxDYklmYWNlOworICAgIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBzVGhyZWFkRnVuY0FyZ3NMaXN0OworICAgIHN0YXRpYyBib29sIHNJbnRlcmZhY2VFeGlzdHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0FHbnNzUmlsX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi9nbnNzLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzRkYTY0ZQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDU2IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtaW1wbAorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIFRocmVhZENyZWF0aW9uV3JhcHBlci5jcHAgXAorICAgIEFHbnNzLmNwcCBcCisgICAgQUduc3NSaWwuY3BwIFwKKyAgICBHbnNzLmNwcCBcCisgICAgR25zc0JhdGNoaW5nLmNwcCBcCisgICAgR25zc0RlYnVnLmNwcCBcCisgICAgR25zc0dlb2ZlbmNpbmcuY3BwIFwKKyAgICBHbnNzTWVhc3VyZW1lbnQuY3BwIFwKKyAgICBHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuY3BwIFwKKyAgICBHbnNzTmkuY3BwIFwKKyAgICBHbnNzWHRyYS5jcHAgXAorICAgIEduc3NDb25maWd1cmF0aW9uLmNwcCBcCisgICAgR25zc1V0aWxzLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJ1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMCBcCisgICAgbGliaGFyZHdhcmUKKworTE9DQUxfQ0ZMQUdTICs9IC1XZXJyb3IKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZQorTE9DQUxfSU5JVF9SQyA6PSBhbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZGwgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliYmluZGVyIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyArPSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zcy5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmY2VlMjQKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3MuY3BwCkBAIC0wLDAgKzEsNzYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0duc3NJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJHbnNzLmgiCisjaW5jbHVkZSA8R25zc1V0aWxzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBHbnNzOjpzVGhyZWFkRnVuY0FyZ3NMaXN0Oworc3A8SUduc3NDYWxsYmFjaz4gR25zczo6c0duc3NDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgR25zczo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworYm9vbCBHbnNzOjpzV2FrZWxvY2tIZWxkR25zcyA9IGZhbHNlOworYm9vbCBHbnNzOjpzV2FrZWxvY2tIZWxkRnVzZWQgPSBmYWxzZTsKKworR3BzQ2FsbGJhY2tzIEduc3M6OnNHbnNzQ2IgPSB7CisgICAgLnNpemUgPSBzaXplb2YoR3BzQ2FsbGJhY2tzKSwKKyAgICAubG9jYXRpb25fY2IgPSBsb2NhdGlvbkNiLAorICAgIC5zdGF0dXNfY2IgPSBzdGF0dXNDYiwKKyAgICAuc3Zfc3RhdHVzX2NiID0gZ3BzU3ZTdGF0dXNDYiwKKyAgICAubm1lYV9jYiA9IG5tZWFDYiwKKyAgICAuc2V0X2NhcGFiaWxpdGllc19jYiA9IHNldENhcGFiaWxpdGllc0NiLAorICAgIC5hY3F1aXJlX3dha2Vsb2NrX2NiID0gYWNxdWlyZVdha2Vsb2NrQ2IsCisgICAgLnJlbGVhc2Vfd2FrZWxvY2tfY2IgPSByZWxlYXNlV2FrZWxvY2tDYiwKKyAgICAuY3JlYXRlX3RocmVhZF9jYiA9IGNyZWF0ZVRocmVhZENiLAorICAgIC5yZXF1ZXN0X3V0Y190aW1lX2NiID0gcmVxdWVzdFV0Y1RpbWVDYiwKKyAgICAuc2V0X3N5c3RlbV9pbmZvX2NiID0gc2V0U3lzdGVtSW5mb0NiLAorICAgIC5nbnNzX3N2X3N0YXR1c19jYiA9IGduc3NTdlN0YXR1c0NiLAorfTsKKwordWludDMyX3QgR25zczo6c0NhcGFiaWxpdGllc0NhY2hlZCA9IDA7Cit1aW50MTZfdCBHbnNzOjpzWWVhck9mSHdDYWNoZWQgPSAwOworCitHbnNzOjpHbnNzKGdwc19kZXZpY2VfdCogZ25zc0RldmljZSkgOgorICAgICAgICBtRGVhdGhSZWNpcGllbnQobmV3IEduc3NIaWRsRGVhdGhSZWNpcGllbnQodGhpcykpIHsKKyAgICAvKiBFcnJvciBvdXQgaWYgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVyZmFjZSBhbHJlYWR5IGV4aXN0cy4gKi8KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKHNJbnRlcmZhY2VFeGlzdHMpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSB0cnVlOworCisgICAgaWYgKGduc3NEZXZpY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgZGV2aWNlX3QgaGFuZGxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbUduc3NJZmFjZSA9IGduc3NEZXZpY2UtPmdldF9ncHNfaW50ZXJmYWNlKGduc3NEZXZpY2UpOworfQorCitHbnNzOjp+R25zcygpIHsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7CisgICAgc1RocmVhZEZ1bmNBcmdzTGlzdC5jbGVhcigpOworfQorCit2b2lkIEduc3M6OmxvY2F0aW9uQ2IoR3BzTG9jYXRpb24qIGxvY2F0aW9uKSB7CisgICAgaWYgKHNHbnNzQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbiA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBsb2NhdGlvbiBmcm9tIEdOU1MgSEFMIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6Okduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb24gPSBjb252ZXJ0VG9HbnNzTG9jYXRpb24obG9jYXRpb24pOworICAgIGF1dG8gcmV0ID0gc0duc3NDYklmYWNlLT5nbnNzTG9jYXRpb25DYihnbnNzTG9jYXRpb24pOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3M6OnN0YXR1c0NiKEdwc1N0YXR1cyogZ25zc1N0YXR1cykgeworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZ25zc1N0YXR1cyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBHcHNTdGF0dXMgZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTdGF0dXNWYWx1ZSBzdGF0dXMgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SUduc3NDYWxsYmFjazo6R25zc1N0YXR1c1ZhbHVlPihnbnNzU3RhdHVzLT5zdGF0dXMpOworCisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NTdGF0dXNDYihzdGF0dXMpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3M6Omduc3NTdlN0YXR1c0NiKEduc3NTdlN0YXR1cyogc3RhdHVzKSB7CisgICAgaWYgKHNHbnNzQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChzdGF0dXMgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiSW52YWxpZCBzdGF0dXMgZnJvbSBHTlNTIEhBTCAlcyIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTdlN0YXR1cyBzdlN0YXR1czsKKyAgICBzdlN0YXR1cy5udW1TdnMgPSBzdGF0dXMtPm51bV9zdnM7CisKKyAgICBpZiAoc3ZTdGF0dXMubnVtU3ZzID4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KEduc3NNYXg6OlNWU19DT1VOVCkpIHsKKyAgICAgICAgQUxPR1coIlRvbyBtYW55IHNhdGVsbGl0ZXMgJXpkLiBDbGFtcHMgdG8gJWQuIiwgc3ZTdGF0dXMubnVtU3ZzLCBHbnNzTWF4OjpTVlNfQ09VTlQpOworICAgICAgICBzdlN0YXR1cy5udW1TdnMgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oR25zc01heDo6U1ZTX0NPVU5UKTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHN2U3RhdHVzLm51bVN2czsgaSsrKSB7CisgICAgICAgIGF1dG8gc3ZJbmZvID0gc3RhdHVzLT5nbnNzX3N2X2xpc3RbaV07CisgICAgICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTdkluZm8gZ25zc1N2SW5mbyA9IHsKKyAgICAgICAgICAgIC5zdmlkID0gc3ZJbmZvLnN2aWQsCisgICAgICAgICAgICAuY29uc3RlbGxhdGlvbiA9IHN0YXRpY19jYXN0PAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpHbnNzQ29uc3RlbGxhdGlvblR5cGU+KAorICAgICAgICAgICAgICAgIHN2SW5mby5jb25zdGVsbGF0aW9uKSwKKyAgICAgICAgICAgIC5jTjBEYmh6ID0gc3ZJbmZvLmNfbjBfZGJoeiwKKyAgICAgICAgICAgIC5lbGV2YXRpb25EZWdyZWVzID0gc3ZJbmZvLmVsZXZhdGlvbiwKKyAgICAgICAgICAgIC5hemltdXRoRGVncmVlcyA9IHN2SW5mby5hemltdXRoLAorICAgICAgICAgICAgLy8gT2xkZXIgY2hpcHNldHMgZG8gbm90IHByb3ZpZGUgY2FycmllciBmcmVxdWVuY3ksIGhlbmNlCisgICAgICAgICAgICAvLyBIQVNfQ0FSUklFUl9GUkVRVUVOQ1kgZmxhZyBhbmQgdGhlIGNhcnJpZXJGcmVxdWVuY3lIeiBmaWVsZHMKKyAgICAgICAgICAgIC8vIGFyZSBub3Qgc2V0LiBTbyB3ZSBhcmUgcmVzZXR0aW5nIGJvdGggZmllbGRzIGhlcmUuCisgICAgICAgICAgICAuc3ZGbGFnID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oCisgICAgICAgICAgICAgICAgc3ZJbmZvLmZsYWdzICY9IH4oc3RhdGljX2Nhc3Q8dWludDhfdD4oCisgICAgICAgICAgICAgICAgICAgIElHbnNzQ2FsbGJhY2s6Okduc3NTdkZsYWdzOjpIQVNfQ0FSUklFUl9GUkVRVUVOQ1kpKSksCisgICAgICAgICAgICAuY2FycmllckZyZXF1ZW5jeUh6ID0gMH07CisgICAgICAgIHN2U3RhdHVzLmduc3NTdkxpc3RbaV0gPSBnbnNzU3ZJbmZvOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gc0duc3NDYklmYWNlLT5nbnNzU3ZTdGF0dXNDYihzdlN0YXR1cyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKKy8qCisgKiBUaGlzIGVudW0gaXMgdXNlZCBieSBncHNTdlN0YXR1c0NiKCkgbWV0aG9kIGJlbG93IHRvIGNvbnZlcnQgR3BzU3ZTdGF0dXMKKyAqIHRvIEduc3NTdlN0YXR1cyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gSXQgaXMgb25seSB1c2VkIGJ5IHRoZSBkZWZhdWx0CisgKiBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgbm90IHBhcnQgb2YgdGhlIEdOU1MgaW50ZXJmYWNlLgorICovCitlbnVtIFN2aWRWYWx1ZXMgOiB1aW50MTZfdCB7CisgICAgR0xPTkFTU19TVklEX09GRlNFVCA9IDY0LAorICAgIEdMT05BU1NfU1ZJRF9DT1VOVCA9IDI0LAorICAgIEJFSURPVV9TVklEX09GRlNFVCA9IDIwMCwKKyAgICBCRUlET1VfU1ZJRF9DT1VOVCA9IDM1LAorICAgIFNCQVNfU1ZJRF9NSU4gPSAzMywKKyAgICBTQkFTX1NWSURfTUFYID0gNjQsCisgICAgU0JBU19TVklEX0FERCA9IDg3LAorICAgIFFaU1NfU1ZJRF9NSU4gPSAxOTMsCisgICAgUVpTU19TVklEX01BWCA9IDIwMAorfTsKKworLyoKKyAqIFRoZSBmb2xsb3dpbmcgY29kZSB0aGF0IGNvbnZlcnRzIEdwc1N2U3RhdHVzIHRvIEduc3NTdlN0YXR1cyBpcyBtb3ZlZCBoZXJlIGZyb20KKyAqIEduc3NMb2NhdGlvblByb3ZpZGVyLiBHbnNzTG9jYXRpb25Qcm92aWRlciBkb2VzIG5vdCByZXF1aXJlIGl0IGFueW1vcmUgc2luY2UgR3BzU3ZTdGF0dXMgaXMKKyAqIGJlaW5nIGRlcHJlY2F0ZWQgYW5kIGlzIG5vIGxvbmdlciBwYXJ0IG9mIHRoZSBHTlNTIGludGVyZmFjZS4KKyAqLwordm9pZCBHbnNzOjpncHNTdlN0YXR1c0NiKEdwc1N2U3RhdHVzKiBzdkluZm8pIHsKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHN2SW5mbyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJJbnZhbGlkIHN0YXR1cyBmcm9tIEdOU1MgSEFMICVzIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSUduc3NDYWxsYmFjazo6R25zc1N2U3RhdHVzIHN2U3RhdHVzOworICAgIHN2U3RhdHVzLm51bVN2cyA9IHN2SW5mby0+bnVtX3N2czsKKyAgICAvKgorICAgICAqIENsYW1wIHRoZSBsaXN0IHNpemUgc2luY2UgR25zc1N2U3RhdHVzIGNhbiBzdXBwb3J0IGEgbWF4aW11bSBvZgorICAgICAqIEduc3NNYXg6OlNWU19DT1VOVCBlbnRyaWVzLgorICAgICAqLworICAgIGlmIChzdlN0YXR1cy5udW1TdnMgPiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oR25zc01heDo6U1ZTX0NPVU5UKSkgeworICAgICAgICBBTE9HVygiVG9vIG1hbnkgc2F0ZWxsaXRlcyAlemQuIENsYW1wcyB0byAlZC4iLCBzdlN0YXR1cy5udW1TdnMsIEduc3NNYXg6OlNWU19DT1VOVCk7CisgICAgICAgIHN2U3RhdHVzLm51bVN2cyA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihHbnNzTWF4OjpTVlNfQ09VTlQpOworICAgIH0KKworICAgIHVpbnQzMl90IGVwaGVtZXJpc01hc2sgPSBzdkluZm8tPmVwaGVtZXJpc19tYXNrOworICAgIHVpbnQzMl90IGFsbWFuYWNNYXNrID0gc3ZJbmZvLT5hbG1hbmFjX21hc2s7CisgICAgdWludDMyX3QgdXNlZEluRml4TWFzayA9IHN2SW5mby0+dXNlZF9pbl9maXhfbWFzazsKKyAgICAvKgorICAgICAqIENvbnZlcnNpb24gZnJvbSBHcHNTdkluZm8gdG8gSUduc3NDYWxsYmFjazo6R25zc1N2SW5mbyBoYXBwZW5zIGJlbG93LgorICAgICAqLworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3ZTdGF0dXMubnVtU3ZzOyBpKyspIHsKKyAgICAgICAgSUduc3NDYWxsYmFjazo6R25zc1N2SW5mbyYgaW5mbyA9IHN2U3RhdHVzLmduc3NTdkxpc3RbaV07CisgICAgICAgIGluZm8uc3ZpZCA9IHN2SW5mby0+c3ZfbGlzdFtpXS5wcm47CisgICAgICAgIGlmIChpbmZvLnN2aWQgPj0gMSAmJiBpbmZvLnN2aWQgPD0gMzIpIHsKKyAgICAgICAgICAgIGluZm8uY29uc3RlbGxhdGlvbiA9IEduc3NDb25zdGVsbGF0aW9uVHlwZTo6R1BTOworICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3ZpZCA+IEdMT05BU1NfU1ZJRF9PRkZTRVQgJiYKKyAgICAgICAgICAgICAgICAgICBpbmZvLnN2aWQgPD0gR0xPTkFTU19TVklEX09GRlNFVCArIEdMT05BU1NfU1ZJRF9DT1VOVCkgeworICAgICAgICAgICAgaW5mby5jb25zdGVsbGF0aW9uID0gR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpHTE9OQVNTOworICAgICAgICAgICAgaW5mby5zdmlkIC09IEdMT05BU1NfU1ZJRF9PRkZTRVQ7CisgICAgICAgIH0gZWxzZSBpZiAoaW5mby5zdmlkID4gQkVJRE9VX1NWSURfT0ZGU0VUICYmCisgICAgICAgICAgICAgICAgIGluZm8uc3ZpZCA8PSBCRUlET1VfU1ZJRF9PRkZTRVQgKyBCRUlET1VfU1ZJRF9DT1VOVCkgeworICAgICAgICAgICAgaW5mby5jb25zdGVsbGF0aW9uID0gR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpCRUlET1U7CisgICAgICAgICAgICBpbmZvLnN2aWQgLT0gQkVJRE9VX1NWSURfT0ZGU0VUOworICAgICAgICB9IGVsc2UgaWYgKGluZm8uc3ZpZCA+PSBTQkFTX1NWSURfTUlOICYmIGluZm8uc3ZpZCA8PSBTQkFTX1NWSURfTUFYKSB7CisgICAgICAgICAgICBpbmZvLmNvbnN0ZWxsYXRpb24gPSBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OlNCQVM7CisgICAgICAgICAgICBpbmZvLnN2aWQgKz0gU0JBU19TVklEX0FERDsKKyAgICAgICAgfSBlbHNlIGlmIChpbmZvLnN2aWQgPj0gUVpTU19TVklEX01JTiAmJiBpbmZvLnN2aWQgPD0gUVpTU19TVklEX01BWCkgeworICAgICAgICAgICAgaW5mby5jb25zdGVsbGF0aW9uID0gR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpRWlNTOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR0QoIlVua25vd24gY29uc3RlbGxhdGlvbiB0eXBlIHdpdGggU3ZpZCA9ICVkLiIsIGluZm8uc3ZpZCk7CisgICAgICAgICAgICBpbmZvLmNvbnN0ZWxsYXRpb24gPSBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OlVOS05PV047CisgICAgICAgIH0KKworICAgICAgICBpbmZvLmNOMERiaHogPSBzdkluZm8tPnN2X2xpc3RbaV0uc25yOworICAgICAgICBpbmZvLmVsZXZhdGlvbkRlZ3JlZXMgPSBzdkluZm8tPnN2X2xpc3RbaV0uZWxldmF0aW9uOworICAgICAgICBpbmZvLmF6aW11dGhEZWdyZWVzID0gc3ZJbmZvLT5zdl9saXN0W2ldLmF6aW11dGg7CisgICAgICAgIC8vIFRPRE86IGIvMzE3MDIyMzYKKyAgICAgICAgaW5mby5zdkZsYWcgPSBzdGF0aWNfY2FzdDx1aW50OF90PihJR25zc0NhbGxiYWNrOjpHbnNzU3ZGbGFnczo6Tk9ORSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogT25seSBHUFMgaW5mbyBpcyB2YWxpZCBmb3IgdGhlc2UgZmllbGRzLCBhcyB0aGVzZSBtYXNrcyBhcmUganVzdCAzMgorICAgICAgICAgKiBiaXRzLCBieSBHUFMgcHJuLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGluZm8uY29uc3RlbGxhdGlvbiA9PSBHbnNzQ29uc3RlbGxhdGlvblR5cGU6OkdQUykgeworICAgICAgICAgICAgaW50MzJfdCBzdmlkTWFzayA9ICgxIDw8IChpbmZvLnN2aWQgLSAxKSk7CisgICAgICAgICAgICBpZiAoKGVwaGVtZXJpc01hc2sgJiBzdmlkTWFzaykgIT0gMCkgeworICAgICAgICAgICAgICAgIGluZm8uc3ZGbGFnIHw9IElHbnNzQ2FsbGJhY2s6Okduc3NTdkZsYWdzOjpIQVNfRVBIRU1FUklTX0RBVEE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoKGFsbWFuYWNNYXNrICYgc3ZpZE1hc2spICE9IDApIHsKKyAgICAgICAgICAgICAgICBpbmZvLnN2RmxhZyB8PSBJR25zc0NhbGxiYWNrOjpHbnNzU3ZGbGFnczo6SEFTX0FMTUFOQUNfREFUQTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgodXNlZEluRml4TWFzayAmIHN2aWRNYXNrKSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaW5mby5zdkZsYWcgfD0gSUduc3NDYWxsYmFjazo6R25zc1N2RmxhZ3M6OlVTRURfSU5fRklYOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NTdlN0YXR1c0NiKHN2U3RhdHVzKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzOjpubWVhQ2IoR3BzVXRjVGltZSB0aW1lc3RhbXAsIGNvbnN0IGNoYXIqIG5tZWEsIGludCBsZW5ndGgpIHsKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nIG5tZWFTdHJpbmc7CisgICAgbm1lYVN0cmluZy5zZXRUb0V4dGVybmFsKG5tZWEsIGxlbmd0aCk7CisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NObWVhQ2IodGltZXN0YW1wLCBubWVhU3RyaW5nKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzOjpzZXRDYXBhYmlsaXRpZXNDYih1aW50MzJfdCBjYXBhYmlsaXRpZXMpIHsKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NTZXRDYXBhYmlsaXRlc0NiKGNhcGFiaWxpdGllcyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9CisKKyAgICAvLyBTYXZlIGZvciByZWNvbm5lY3Rpb24gd2hlbiBzb21lIGxlZ2FjeSBoYWwncyBkb24ndCByZXNlbmQgdGhpcyBpbmZvCisgICAgc0NhcGFiaWxpdGllc0NhY2hlZCA9IGNhcGFiaWxpdGllczsKK30KKwordm9pZCBHbnNzOjphY3F1aXJlV2FrZWxvY2tDYigpIHsKKyAgICBhY3F1aXJlV2FrZWxvY2tHbnNzKCk7Cit9CisKK3ZvaWQgR25zczo6cmVsZWFzZVdha2Vsb2NrQ2IoKSB7CisgICAgcmVsZWFzZVdha2Vsb2NrR25zcygpOworfQorCisKK3ZvaWQgR25zczo6YWNxdWlyZVdha2Vsb2NrR25zcygpIHsKKyAgICBzV2FrZWxvY2tIZWxkR25zcyA9IHRydWU7CisgICAgdXBkYXRlV2FrZWxvY2soKTsKK30KKwordm9pZCBHbnNzOjpyZWxlYXNlV2FrZWxvY2tHbnNzKCkgeworICAgIHNXYWtlbG9ja0hlbGRHbnNzID0gZmFsc2U7CisgICAgdXBkYXRlV2FrZWxvY2soKTsKK30KKwordm9pZCBHbnNzOjphY3F1aXJlV2FrZWxvY2tGdXNlZCgpIHsKKyAgICBzV2FrZWxvY2tIZWxkRnVzZWQgPSB0cnVlOworICAgIHVwZGF0ZVdha2Vsb2NrKCk7Cit9CisKK3ZvaWQgR25zczo6cmVsZWFzZVdha2Vsb2NrRnVzZWQoKSB7CisgICAgc1dha2Vsb2NrSGVsZEZ1c2VkID0gZmFsc2U7CisgICAgdXBkYXRlV2FrZWxvY2soKTsKK30KKwordm9pZCBHbnNzOjp1cGRhdGVXYWtlbG9jaygpIHsKKyAgICAvLyBUcmFjayB0aGUgc3RhdGUgb2YgdGhlIGxhc3QgcmVxdWVzdCAtIGluIGNhc2UgdGhlIHdha2UgbG9jayBpbiB0aGUgbGF5ZXIgYWJvdmUgaXMgcmVmZXJlbmNlCisgICAgLy8gY291bnRlZC4KKyAgICBzdGF0aWMgYm9vbCBzV2FrZWxvY2tIZWxkID0gZmFsc2U7CisKKyAgICBpZiAoc0duc3NDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHNXYWtlbG9ja0hlbGRHbnNzIHx8IHNXYWtlbG9ja0hlbGRGdXNlZCkgeworICAgICAgICBpZiAoIXNXYWtlbG9ja0hlbGQpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlczogR05TUyBIQUwgV2FrZWxvY2sgYWNxdWlyZWQgZHVlIHRvIGdwczogJWQsIGZ1c2VkOiAlZCIsIF9fZnVuY19fLAorICAgICAgICAgICAgICAgICAgICBzV2FrZWxvY2tIZWxkR25zcywgc1dha2Vsb2NrSGVsZEZ1c2VkKTsKKyAgICAgICAgICAgIHNXYWtlbG9ja0hlbGQgPSB0cnVlOworICAgICAgICAgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NBY3F1aXJlV2FrZWxvY2tDYigpOworICAgICAgICAgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHNXYWtlbG9ja0hlbGQpIHsKKyAgICAgICAgICAgIEFMT0dJKCIlczogR05TUyBIQUwgV2FrZWxvY2sgcmVsZWFzZWQiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSAgeworICAgICAgICAgICAgLy8gVG8gYXZvaWQgYnVybmluZyBwb3dlciwgYWx3YXlzIHJlbGVhc2UsIGV2ZW4gaWYgbG9naWMgZ290IGhlcmUgd2l0aCBzV2FrZWxvY2sgZmFsc2UKKyAgICAgICAgICAgIC8vIHdoaWNoIGl0IHNob3VsZG4ndCwgdW5sZXNzIHVuZGVybHlpbmcgKi5oIGltcGxlbWVudGF0aW9uIG1ha2VzIGR1cGxpY2F0ZSByZXF1ZXN0cy4KKyAgICAgICAgICAgIEFMT0dXKCIlczogR05TUyBIQUwgV2FrZWxvY2sgcmVsZWFzZWQsIGR1cGxpY2F0ZSByZXF1ZXN0IiwgX19mdW5jX18pOworICAgICAgICB9CisgICAgICAgIHNXYWtlbG9ja0hlbGQgPSBmYWxzZTsKKyAgICAgICAgYXV0byByZXQgPSBzR25zc0NiSWZhY2UtPmduc3NSZWxlYXNlV2FrZWxvY2tDYigpOworICAgICAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBHbnNzOjpyZXF1ZXN0VXRjVGltZUNiKCkgeworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IHNHbnNzQ2JJZmFjZS0+Z25zc1JlcXVlc3RUaW1lQ2IoKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3B0aHJlYWRfdCBHbnNzOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCit2b2lkIEduc3M6OnNldFN5c3RlbUluZm9DYihjb25zdCBMZWdhY3lHbnNzU3lzdGVtSW5mbyogaW5mbykgeworICAgIGlmIChzR25zc0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoaW5mbyA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCJJbnZhbGlkIEduc3NTeXN0ZW1JbmZvIGZyb20gR05TUyBIQUwgJXMiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJR25zc0NhbGxiYWNrOjpHbnNzU3lzdGVtSW5mbyBnbnNzSW5mbyA9IHsKKyAgICAgICAgLnllYXJPZkh3ID0gaW5mby0+eWVhcl9vZl9odworICAgIH07CisKKyAgICBhdXRvIHJldCA9IHNHbnNzQ2JJZmFjZS0+Z25zc1NldFN5c3RlbUluZm9DYihnbnNzSW5mbyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorCisgICAgLy8gU2F2ZSBmb3IgcmVjb25uZWN0aW9uIHdoZW4gc29tZSBsZWdhY3kgaGFsJ3MgZG9uJ3QgcmVzZW5kIHRoaXMgaW5mbworICAgIHNZZWFyT2ZId0NhY2hlZCA9IGluZm8tPnllYXJfb2ZfaHc7Cit9CisKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzIGZvbGxvdy4KK1JldHVybjxib29sPiBHbnNzOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc0NhbGxiYWNrPiYgY2FsbGJhY2spICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGNhbGxiYWNrID09IG51bGxwdHIpICB7CisgICAgICAgIEFMT0dFKCIlczogTnVsbCBjYWxsYmFjayBpZ25vcmVkIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKHNHbnNzQ2JJZmFjZSAhPSBOVUxMKSB7CisgICAgICAgIEFMT0dXKCIlcyBjYWxsZWQgbW9yZSB0aGFuIG9uY2UuIFVuZXhwZWN0ZWQgdW5sZXNzIHRlc3QuIiwgX19mdW5jX18pOworICAgICAgICBzR25zc0NiSWZhY2UtPnVubGlua1RvRGVhdGgobURlYXRoUmVjaXBpZW50KTsKKyAgICB9CisKKyAgICBzR25zc0NiSWZhY2UgPSBjYWxsYmFjazsKKyAgICBjYWxsYmFjay0+bGlua1RvRGVhdGgobURlYXRoUmVjaXBpZW50LCAwIC8qY29va2llKi8pOworCisgICAgLy8gSWYgdGhpcyB3YXMgcmVjZWl2ZWQgaW4gdGhlIHBhc3QsIHNlbmQgaXQgdXAgYWdhaW4gdG8gcmVmcmVzaCBjYWxsZXIuCisgICAgLy8gbUduc3NJZmFjZSB3aWxsIG92ZXJyaWRlIGFmdGVyIGluaXQoKSBpcyBjYWxsZWQgYmVsb3csIGlmIG5lZWRlZAorICAgIC8vICh0aG91Z2ggaXQncyB1bmxpa2VseSB0aGUgZ3BzLmggY2FwYWJpbGl0aWVzIG9yIHN5c3RlbSBpbmZvIHdpbGwgY2hhbmdlLikKKyAgICBpZiAoc0NhcGFiaWxpdGllc0NhY2hlZCAhPSAwKSB7CisgICAgICAgIHNldENhcGFiaWxpdGllc0NiKHNDYXBhYmlsaXRpZXNDYWNoZWQpOworICAgIH0KKyAgICBpZiAoc1llYXJPZkh3Q2FjaGVkICE9IDApIHsKKyAgICAgICAgTGVnYWN5R25zc1N5c3RlbUluZm8gaW5mbzsKKyAgICAgICAgaW5mby55ZWFyX29mX2h3ID0gc1llYXJPZkh3Q2FjaGVkOworICAgICAgICBzZXRTeXN0ZW1JbmZvQ2IoJmluZm8pOworICAgIH0KKworICAgIHJldHVybiAobUduc3NJZmFjZS0+aW5pdCgmc0duc3NDYikgPT0gMCk7Cit9CisKK1JldHVybjxib29sPiBHbnNzOjpzdGFydCgpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtR25zc0lmYWNlLT5zdGFydCgpID09IDApOworfQorCitSZXR1cm48Ym9vbD4gR25zczo6c3RvcCgpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtR25zc0lmYWNlLT5zdG9wKCkgPT0gMCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzOjpjbGVhbnVwKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUduc3NJZmFjZS0+Y2xlYW51cCgpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gR25zczo6aW5qZWN0TG9jYXRpb24oZG91YmxlIGxhdGl0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbG9uZ2l0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBhY2N1cmFjeU1ldGVycykgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1HbnNzSWZhY2UtPmluamVjdF9sb2NhdGlvbihsYXRpdHVkZURlZ3JlZXMsIGxvbmdpdHVkZURlZ3JlZXMsIGFjY3VyYWN5TWV0ZXJzKSA9PSAwKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3M6OmluamVjdFRpbWUoaW50NjRfdCB0aW1lTXMsIGludDY0X3QgdGltZVJlZmVyZW5jZU1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCB1bmNlcnRhaW50eU1zKSB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIChtR25zc0lmYWNlLT5pbmplY3RfdGltZSh0aW1lTXMsIHRpbWVSZWZlcmVuY2VNcywgdW5jZXJ0YWludHlNcykgPT0gMCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzOjpkZWxldGVBaWRpbmdEYXRhKElHbnNzOjpHbnNzQWlkaW5nRGF0YSBhaWRpbmdEYXRhRmxhZ3MpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzSWZhY2UtPmRlbGV0ZV9haWRpbmdfZGF0YShzdGF0aWNfY2FzdDxHcHNBaWRpbmdEYXRhPihhaWRpbmdEYXRhRmxhZ3MpKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3M6OnNldFBvc2l0aW9uTW9kZShJR25zczo6R25zc1Bvc2l0aW9uTW9kZSBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJR25zczo6R25zc1Bvc2l0aW9uUmVjdXJyZW5jZSByZWN1cnJlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtaW5JbnRlcnZhbE1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBwcmVmZXJyZWRBY2N1cmFjeU1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcHJlZmVycmVkVGltZU1zKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiAobUduc3NJZmFjZS0+c2V0X3Bvc2l0aW9uX21vZGUoc3RhdGljX2Nhc3Q8R3BzUG9zaXRpb25Nb2RlPihtb2RlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEdwc1Bvc2l0aW9uUmVjdXJyZW5jZT4ocmVjdXJyZW5jZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5JbnRlcnZhbE1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZmVycmVkQWNjdXJhY3lNZXRlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmZXJyZWRUaW1lTXMpID09IDApOworfQorCitSZXR1cm48c3A8SUFHbnNzUmlsPj4gR25zczo6Z2V0RXh0ZW5zaW9uQUduc3NSaWwoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzUmlsID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgQUdwc1JpbEludGVyZmFjZSogYWdwc1JpbElmYWNlID0gc3RhdGljX2Nhc3Q8Y29uc3QgQUdwc1JpbEludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgIG1HbnNzSWZhY2UtPmdldF9leHRlbnNpb24oQUdQU19SSUxfSU5URVJGQUNFKSk7CisgICAgICAgIGlmIChhZ3BzUmlsSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEduc3NSaWwgaW50ZXJmYWNlIG5vdCBpbXBsZW1lbnRlZCBieSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzUmlsID0gbmV3IEFHbnNzUmlsKGFncHNSaWxJZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIG1HbnNzUmlsOworfQorCitSZXR1cm48c3A8SUduc3NDb25maWd1cmF0aW9uPj4gR25zczo6Z2V0RXh0ZW5zaW9uR25zc0NvbmZpZ3VyYXRpb24oKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzQ29uZmlnID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgR25zc0NvbmZpZ3VyYXRpb25JbnRlcmZhY2UqIGduc3NDb25maWdJZmFjZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgR25zc0NvbmZpZ3VyYXRpb25JbnRlcmZhY2UqPigKKyAgICAgICAgICAgICAgICAgICAgICAgIG1HbnNzSWZhY2UtPmdldF9leHRlbnNpb24oR05TU19DT05GSUdVUkFUSU9OX0lOVEVSRkFDRSkpOworCisgICAgICAgIGlmIChnbnNzQ29uZmlnSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEduc3NDb25maWd1cmF0aW9uIGludGVyZmFjZSBub3QgaW1wbGVtZW50ZWQgYnkgR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtR25zc0NvbmZpZyA9IG5ldyBHbnNzQ29uZmlndXJhdGlvbihnbnNzQ29uZmlnSWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtR25zc0NvbmZpZzsKK30KKworUmV0dXJuPHNwPElHbnNzR2VvZmVuY2luZz4+IEduc3M6OmdldEV4dGVuc2lvbkduc3NHZW9mZW5jaW5nKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIGNvbnN0IEdwc0dlb2ZlbmNpbmdJbnRlcmZhY2UqIGdwc0dlb2ZlbmNpbmdJZmFjZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgR3BzR2VvZmVuY2luZ0ludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfR0VPRkVOQ0lOR19JTlRFUkZBQ0UpKTsKKworICAgICAgICBpZiAoZ3BzR2VvZmVuY2luZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzR2VvZmVuY2luZyBpbnRlcmZhY2Ugbm90IGltcGxlbWVudGVkIGJ5IEdOU1MgSEFMIiwgX19mdW5jX18pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUduc3NHZW9mZW5jaW5nSWZhY2UgPSBuZXcgR25zc0dlb2ZlbmNpbmcoZ3BzR2VvZmVuY2luZ0lmYWNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBtR25zc0dlb2ZlbmNpbmdJZmFjZTsKK30KKworUmV0dXJuPHNwPElBR25zcz4+IEduc3M6OmdldEV4dGVuc2lvbkFHbnNzKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtQUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIGNvbnN0IEFHcHNJbnRlcmZhY2UqIGFncHNJZmFjZSA9IHN0YXRpY19jYXN0PGNvbnN0IEFHcHNJbnRlcmZhY2UqPigKKyAgICAgICAgICAgICAgICBtR25zc0lmYWNlLT5nZXRfZXh0ZW5zaW9uKEFHUFNfSU5URVJGQUNFKSk7CisgICAgICAgIGlmIChhZ3BzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIiVzIEFHbnNzIGludGVyZmFjZSBub3QgaW1wbGVtZW50ZWQgYnkgR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtQUduc3NJZmFjZSA9IG5ldyBBR25zcyhhZ3BzSWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtQUduc3NJZmFjZTsKK30KKworUmV0dXJuPHNwPElHbnNzTmk+PiBHbnNzOjpnZXRFeHRlbnNpb25HbnNzTmkoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzTmkgPT0gbnVsbHB0cikgeworICAgICAgICBjb25zdCBHcHNOaUludGVyZmFjZSogZ3BzTmlJZmFjZSA9IHN0YXRpY19jYXN0PGNvbnN0IEdwc05pSW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfTklfSU5URVJGQUNFKSk7CisgICAgICAgIGlmIChncHNOaUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzTmkgaW50ZXJmYWNlIG5vdCBpbXBsZW1lbnRlZCBieSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzTmkgPSBuZXcgR25zc05pKGdwc05pSWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtR25zc05pOworfQorCitSZXR1cm48c3A8SUduc3NNZWFzdXJlbWVudD4+IEduc3M6OmdldEV4dGVuc2lvbkduc3NNZWFzdXJlbWVudCgpIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtR25zc01lYXN1cmVtZW50ID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgR3BzTWVhc3VyZW1lbnRJbnRlcmZhY2UqIGdwc01lYXN1cmVtZW50SWZhY2UgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEdwc01lYXN1cmVtZW50SW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgICAgICAgICBtR25zc0lmYWNlLT5nZXRfZXh0ZW5zaW9uKEdQU19NRUFTVVJFTUVOVF9JTlRFUkZBQ0UpKTsKKworICAgICAgICBpZiAoZ3BzTWVhc3VyZW1lbnRJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiJXMgR25zc01lYXN1cmVtZW50IGludGVyZmFjZSBub3QgaW1wbGVtZW50ZWQgYnkgR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtR25zc01lYXN1cmVtZW50ID0gbmV3IEduc3NNZWFzdXJlbWVudChncHNNZWFzdXJlbWVudElmYWNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbUduc3NNZWFzdXJlbWVudDsKK30KKworUmV0dXJuPHNwPElHbnNzTmF2aWdhdGlvbk1lc3NhZ2U+PiBHbnNzOjpnZXRFeHRlbnNpb25HbnNzTmF2aWdhdGlvbk1lc3NhZ2UoKSB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobUduc3NOYXZpZ2F0aW9uTWVzc2FnZSA9PSBudWxscHRyKSB7CisgICAgICAgIGNvbnN0IEdwc05hdmlnYXRpb25NZXNzYWdlSW50ZXJmYWNlKiBncHNOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxjb25zdCBHcHNOYXZpZ2F0aW9uTWVzc2FnZUludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfTkFWSUdBVElPTl9NRVNTQUdFX0lOVEVSRkFDRSkpOworCisgICAgICAgIGlmIChncHNOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgaW50ZXJmYWNlIG5vdCBpbXBsZW1lbnRlZCBieSBHTlNTIEhBTCIsCisgICAgICAgICAgICAgICAgICBfX2Z1bmNfXyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBtR25zc05hdmlnYXRpb25NZXNzYWdlID0gbmV3IEduc3NOYXZpZ2F0aW9uTWVzc2FnZShncHNOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBtR25zc05hdmlnYXRpb25NZXNzYWdlOworfQorCitSZXR1cm48c3A8SUduc3NYdHJhPj4gR25zczo6Z2V0RXh0ZW5zaW9uWHRyYSgpICB7CisgICAgaWYgKG1HbnNzSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobUduc3NYdHJhSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBjb25zdCBHcHNYdHJhSW50ZXJmYWNlKiBncHNYdHJhSWZhY2UgPSBzdGF0aWNfY2FzdDxjb25zdCBHcHNYdHJhSW50ZXJmYWNlKj4oCisgICAgICAgICAgICAgICAgbUduc3NJZmFjZS0+Z2V0X2V4dGVuc2lvbihHUFNfWFRSQV9JTlRFUkZBQ0UpKTsKKworICAgICAgICBpZiAoZ3BzWHRyYUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlcyBHbnNzWHRyYSBpbnRlcmZhY2Ugbm90IGltcGxlbWVudGVkIGJ5IEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzWHRyYUlmYWNlID0gbmV3IEduc3NYdHJhKGdwc1h0cmFJZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbUduc3NYdHJhSWZhY2U7Cit9CisKK1JldHVybjxzcDxJR25zc0RlYnVnPj4gR25zczo6Z2V0RXh0ZW5zaW9uR25zc0RlYnVnKCkgIHsKKyAgICBpZiAobUduc3NJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtR25zc0RlYnVnID09IG51bGxwdHIpIHsKKyAgICAgICAgY29uc3QgR3BzRGVidWdJbnRlcmZhY2UqIGdwc0RlYnVnSWZhY2UgPSBzdGF0aWNfY2FzdDxjb25zdCBHcHNEZWJ1Z0ludGVyZmFjZSo+KAorICAgICAgICAgICAgICAgIG1HbnNzSWZhY2UtPmdldF9leHRlbnNpb24oR1BTX0RFQlVHX0lOVEVSRkFDRSkpOworCisgICAgICAgIGlmIChncHNEZWJ1Z0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEFMT0dFKCIlczogR25zc0RlYnVnIGludGVyZmFjZSBpcyBub3QgaW1wbGVtZW50ZWQgYnkgSEFMIiwgX19mdW5jX18pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbUduc3NEZWJ1ZyA9IG5ldyBHbnNzRGVidWcoZ3BzRGVidWdJZmFjZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbUduc3NEZWJ1ZzsKK30KKworUmV0dXJuPHNwPElHbnNzQmF0Y2hpbmc+PiBHbnNzOjpnZXRFeHRlbnNpb25HbnNzQmF0Y2hpbmcoKSAgeworICAgIGlmIChtR25zc0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKG1HbnNzQmF0Y2hpbmcgPT0gbnVsbHB0cikgeworICAgICAgICBod19tb2R1bGVfdCogbW9kdWxlOworICAgICAgICBjb25zdCBGbHBMb2NhdGlvbkludGVyZmFjZSogZmxwTG9jYXRpb25JZmFjZSA9IG51bGxwdHI7CisgICAgICAgIGludCBlcnIgPSBod19nZXRfbW9kdWxlKEZVU0VEX0xPQ0FUSU9OX0hBUkRXQVJFX01PRFVMRV9JRCwgKGh3X21vZHVsZV90IGNvbnN0KiopJm1vZHVsZSk7CisKKyAgICAgICAgaWYgKGVyciAhPSAwKSB7CisgICAgICAgICAgICBBTE9HRSgiZ25zcyBmbHAgaHdfZ2V0X21vZHVsZSBmYWlsZWQ6ICVkIiwgZXJyKTsKKyAgICAgICAgfSBlbHNlIGlmIChtb2R1bGUgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIkZ1c2VkIExvY2F0aW9uIGh3X2dldF9tb2R1bGUgcmV0dXJuZWQgbnVsbCBtb2R1bGUiKTsKKyAgICAgICAgfSBlbHNlIGlmIChtb2R1bGUtPm1ldGhvZHMgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgQUxPR0UoIkZ1c2VkIExvY2F0aW9uIGh3X2dldF9tb2R1bGUgcmV0dXJuZWQgbnVsbCBtZXRob2RzIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBod19kZXZpY2VfdCogZGV2aWNlOworICAgICAgICAgICAgZXJyID0gbW9kdWxlLT5tZXRob2RzLT5vcGVuKG1vZHVsZSwgRlVTRURfTE9DQVRJT05fSEFSRFdBUkVfTU9EVUxFX0lELCAmZGV2aWNlKTsKKyAgICAgICAgICAgIGlmIChlcnIgIT0gMCkgeworICAgICAgICAgICAgICAgIEFMT0dFKCJmbHBEZXZpY2Ugb3BlbiBmYWlsZWQ6ICVkIiwgZXJyKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZmxwX2RldmljZV90ICogZmxwRGV2aWNlID0gcmVpbnRlcnByZXRfY2FzdDxmbHBfZGV2aWNlX3QqPihkZXZpY2UpOworICAgICAgICAgICAgICAgIGZscExvY2F0aW9uSWZhY2UgPSBmbHBEZXZpY2UtPmdldF9mbHBfaW50ZXJmYWNlKGZscERldmljZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoZmxwTG9jYXRpb25JZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IEduc3NCYXRjaGluZyBpbnRlcmZhY2UgaXMgbm90IGltcGxlbWVudGVkIGJ5IEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1HbnNzQmF0Y2hpbmcgPSBuZXcgR25zc0JhdGNoaW5nKGZscExvY2F0aW9uSWZhY2UpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBtR25zc0JhdGNoaW5nOworfQorCit2b2lkIEduc3M6OmhhbmRsZUhpZGxEZWF0aCgpIHsKKyAgICBBTE9HVygiR05TUyBzZXJ2aWNlIG5vdGljZWQgSElETCBkZWF0aC4gU3RvcHBpbmcgYWxsIEdOU1Mgb3BlcmF0aW9ucy4iKTsKKworICAgIC8vIGNvbW1hbmRzIGRvd24gdG8gdGhlIEhBTCBpbXBsZW1lbnRhdGlvbgorICAgIHN0b3AoKTsgLy8gc3RvcCBvbmdvaW5nIEdQUyB0cmFja2luZworICAgIGlmIChtR25zc01lYXN1cmVtZW50ICE9IG51bGxwdHIpIHsKKyAgICAgICAgbUduc3NNZWFzdXJlbWVudC0+Y2xvc2UoKTsKKyAgICB9CisgICAgaWYgKG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2UgIT0gbnVsbHB0cikgeworICAgICAgICBtR25zc05hdmlnYXRpb25NZXNzYWdlLT5jbG9zZSgpOworICAgIH0KKyAgICBpZiAobUduc3NCYXRjaGluZyAhPSBudWxscHRyKSB7CisgICAgICAgIG1HbnNzQmF0Y2hpbmctPnN0b3AoKTsKKyAgICAgICAgbUduc3NCYXRjaGluZy0+Y2xlYW51cCgpOworICAgIH0KKyAgICBjbGVhbnVwKCk7CisKKyAgICAvKgorICAgICAqIFRoaXMgaGFzIGRpZWQsIHNvIGNsb3NlIGl0IG9mZiBpbiBjYXNlIChyYWNlIGNvbmRpdGlvbikgY2FsbGJhY2tzIGhhcHBlbgorICAgICAqIGJlZm9yZSBIQUwgcHJvY2Vzc2VzIGFib3ZlIG1lc3NhZ2VzLgorICAgICAqLworICAgIHNHbnNzQ2JJZmFjZSA9IG51bGxwdHI7Cit9CisKK0lHbnNzKiBISURMX0ZFVENIX0lHbnNzKGNvbnN0IGNoYXIqIC8qIGhhbCAqLykgeworICAgIGh3X21vZHVsZV90KiBtb2R1bGU7CisgICAgSUduc3MqIGlmYWNlID0gbnVsbHB0cjsKKyAgICBpbnQgZXJyID0gaHdfZ2V0X21vZHVsZShHUFNfSEFSRFdBUkVfTU9EVUxFX0lELCAoaHdfbW9kdWxlX3QgY29uc3QqKikmbW9kdWxlKTsKKworICAgIGlmIChlcnIgPT0gMCkgeworICAgICAgICBod19kZXZpY2VfdCogZGV2aWNlOworICAgICAgICBlcnIgPSBtb2R1bGUtPm1ldGhvZHMtPm9wZW4obW9kdWxlLCBHUFNfSEFSRFdBUkVfTU9EVUxFX0lELCAmZGV2aWNlKTsKKyAgICAgICAgaWYgKGVyciA9PSAwKSB7CisgICAgICAgICAgICBpZmFjZSA9IG5ldyBHbnNzKHJlaW50ZXJwcmV0X2Nhc3Q8Z3BzX2RldmljZV90Kj4oZGV2aWNlKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBTE9HRSgiZ25zc0RldmljZSBvcGVuICVzIGZhaWxlZDogJWQiLCBHUFNfSEFSRFdBUkVfTU9EVUxFX0lELCBlcnIpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIEFMT0dFKCJnbnNzIGh3X2dldF9tb2R1bGUgJXMgZmFpbGVkOiAlZCIsIEdQU19IQVJEV0FSRV9NT0RVTEVfSUQsIGVycik7CisgICAgfQorICAgIHJldHVybiBpZmFjZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zcy5oIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmFmOTAzYwotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zcy5oCkBAIC0wLDAgKzEsMTg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NfSF8KKworI2luY2x1ZGUgPEFHbnNzLmg+CisjaW5jbHVkZSA8QUduc3NSaWwuaD4KKyNpbmNsdWRlIDxHbnNzQmF0Y2hpbmcuaD4KKyNpbmNsdWRlIDxHbnNzQ29uZmlndXJhdGlvbi5oPgorI2luY2x1ZGUgPEduc3NEZWJ1Zy5oPgorI2luY2x1ZGUgPEduc3NHZW9mZW5jaW5nLmg+CisjaW5jbHVkZSA8R25zc01lYXN1cmVtZW50Lmg+CisjaW5jbHVkZSA8R25zc05hdmlnYXRpb25NZXNzYWdlLmg+CisjaW5jbHVkZSA8R25zc05pLmg+CisjaW5jbHVkZSA8R25zc1h0cmEuaD4KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3MuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9mdXNlZF9sb2NhdGlvbi5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwcy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3VzaW5nIExlZ2FjeUduc3NTeXN0ZW1JbmZvID0gOjpHbnNzU3lzdGVtSW5mbzsKKworLyoKKyAqIFJlcHJlc2VudHMgdGhlIHN0YW5kYXJkIEdOU1MgaW50ZXJmYWNlLiBBbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcyB0byBhbGxvdyBtZXRob2RzIGZyb20KKyAqIElHbnNzQ2FsbGJhY2sgaW50ZXJmYWNlIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitjbGFzcyBHbnNzIDogcHVibGljIElHbnNzIHsKKyAgcHVibGljOgorICAgIEduc3MoZ3BzX2RldmljZV90KiBnbnNzX2RldmljZSk7CisgICAgfkduc3MoKTsKKworICAgIC8qCisgICAgICogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBHbnNzLmhhbC4KKyAgICAgKi8KKyAgICBSZXR1cm48Ym9vbD4gc2V0Q2FsbGJhY2soY29uc3Qgc3A8SUduc3NDYWxsYmFjaz4mIGNhbGxiYWNrKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHN0YXJ0KCkgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzdG9wKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbGVhbnVwKCkgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBpbmplY3RMb2NhdGlvbihkb3VibGUgbGF0aXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgbG9uZ2l0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgYWNjdXJhY3lNZXRlcnMpICBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gaW5qZWN0VGltZShpbnQ2NF90IHRpbWVNcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IHRpbWVSZWZlcmVuY2VNcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHVuY2VydGFpbnR5TXMpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBkZWxldGVBaWRpbmdEYXRhKElHbnNzOjpHbnNzQWlkaW5nRGF0YSBhaWRpbmdEYXRhRmxhZ3MpICBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0UG9zaXRpb25Nb2RlKElHbnNzOjpHbnNzUG9zaXRpb25Nb2RlIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJR25zczo6R25zc1Bvc2l0aW9uUmVjdXJyZW5jZSByZWN1cnJlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbWluSW50ZXJ2YWxNcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHByZWZlcnJlZEFjY3VyYWN5TWV0ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgcHJlZmVycmVkVGltZU1zKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElBR25zc1JpbD4+IGdldEV4dGVuc2lvbkFHbnNzUmlsKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElHbnNzR2VvZmVuY2luZz4+IGdldEV4dGVuc2lvbkduc3NHZW9mZW5jaW5nKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElBR25zcz4+IGdldEV4dGVuc2lvbkFHbnNzKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElHbnNzTmk+PiBnZXRFeHRlbnNpb25HbnNzTmkoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUduc3NNZWFzdXJlbWVudD4+IGdldEV4dGVuc2lvbkduc3NNZWFzdXJlbWVudCgpIG92ZXJyaWRlOworICAgIFJldHVybjxzcDxJR25zc05hdmlnYXRpb25NZXNzYWdlPj4gZ2V0RXh0ZW5zaW9uR25zc05hdmlnYXRpb25NZXNzYWdlKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHNwPElHbnNzWHRyYT4+IGdldEV4dGVuc2lvblh0cmEoKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUduc3NDb25maWd1cmF0aW9uPj4gZ2V0RXh0ZW5zaW9uR25zc0NvbmZpZ3VyYXRpb24oKSBvdmVycmlkZTsKKyAgICBSZXR1cm48c3A8SUduc3NEZWJ1Zz4+IGdldEV4dGVuc2lvbkduc3NEZWJ1ZygpIG92ZXJyaWRlOworICAgIFJldHVybjxzcDxJR25zc0JhdGNoaW5nPj4gZ2V0RXh0ZW5zaW9uR25zc0JhdGNoaW5nKCkgb3ZlcnJpZGU7CisKKyAgICAvKgorICAgICAqIENhbGxiYWNrIG1ldGhvZHMgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBHTlNTIEhBTCBieSB0aGUgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9uLiBUaGVzZSBtZXRob2RzIGFyZSBub3QgcGFydCBvZiB0aGUgSUduc3MgYmFzZSBjbGFzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBsb2NhdGlvbkNiKEdwc0xvY2F0aW9uKiBsb2NhdGlvbik7CisgICAgc3RhdGljIHZvaWQgc3RhdHVzQ2IoR3BzU3RhdHVzKiBnbnNzX3N0YXR1cyk7CisgICAgc3RhdGljIHZvaWQgbm1lYUNiKEdwc1V0Y1RpbWUgdGltZXN0YW1wLCBjb25zdCBjaGFyKiBubWVhLCBpbnQgbGVuZ3RoKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRDYXBhYmlsaXRpZXNDYih1aW50MzJfdCBjYXBhYmlsaXRpZXMpOworICAgIHN0YXRpYyB2b2lkIGFjcXVpcmVXYWtlbG9ja0NiKCk7CisgICAgc3RhdGljIHZvaWQgcmVsZWFzZVdha2Vsb2NrQ2IoKTsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0VXRjVGltZUNiKCk7CisgICAgc3RhdGljIHB0aHJlYWRfdCBjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKTsKKyAgICBzdGF0aWMgdm9pZCBnbnNzU3ZTdGF0dXNDYihHbnNzU3ZTdGF0dXMqIHN0YXR1cyk7CisgICAgLyoKKyAgICAgKiBEZXByZWNhdGVkIGNhbGxiYWNrIGFkZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvIGRldmljZXMgdGhhdCBkbworICAgICAqIG5vdCBzdXBwb3J0IEduc3NTdlN0YXR1cy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBncHNTdlN0YXR1c0NiKEdwc1N2U3RhdHVzKiBzdGF0dXMpOworICAgIHN0YXRpYyB2b2lkIHNldFN5c3RlbUluZm9DYihjb25zdCBMZWdhY3lHbnNzU3lzdGVtSW5mbyogaW5mbyk7CisKKyAgICAvKgorICAgICAqIFdha2Vsb2NrIGNvbnNvbGlkYXRpb24sIG9ubHkgbmVlZGVkIGZvciBkdWFsIHVzZSBvZiBhIGdwcy5oICYgZnVzZWRfbG9jYXRpb24uaCBIQUwKKyAgICAgKgorICAgICAqIEVuc3VyZXMgdGhhdCBpZiB0aGUgbGFzdCBjYWxsIGZyb20gZWl0aGVyIGxlZ2FjeSAuaCB3YXMgdG8gYWNxdWlyZSBhIHdha2Vsb2NrLCB0aGF0IGEKKyAgICAgKiB3YWtlbG9jayBpcyBoZWxkLiAgT3RoZXJ3aXNlIHJlbGVhc2VzIGl0LgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGFjcXVpcmVXYWtlbG9ja0Z1c2VkKCk7CisgICAgc3RhdGljIHZvaWQgcmVsZWFzZVdha2Vsb2NrRnVzZWQoKTsKKworICAgIC8qCisgICAgICogSG9sZHMgZnVuY3Rpb24gcG9pbnRlcnMgdG8gdGhlIGNhbGxiYWNrIG1ldGhvZHMuCisgICAgICovCisgICAgc3RhdGljIEdwc0NhbGxiYWNrcyBzR25zc0NiOworCisgcHJpdmF0ZToKKyAgICAvKgorICAgICAqIEZvciBoYW5kbGluZyBzeXN0ZW0tc2VydmVyIGRlYXRoIHdoaWxlIEdOU1Mgc2VydmljZSBsaXZlcyBvbi4KKyAgICAgKi8KKyAgICBjbGFzcyBHbnNzSGlkbERlYXRoUmVjaXBpZW50IDogcHVibGljIGhpZGxfZGVhdGhfcmVjaXBpZW50IHsKKyAgICAgIHB1YmxpYzoKKyAgICAgICAgR25zc0hpZGxEZWF0aFJlY2lwaWVudChjb25zdCBzcDxHbnNzPiBnbnNzKSA6IG1HbnNzKGduc3MpIHsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlRGllZCh1aW50NjRfdCAvKmNvb2tpZSovLAorICAgICAgICAgICAgICAgIGNvbnN0IHdwPDo6YW5kcm9pZDo6aGlkbDo6YmFzZTo6VjFfMDo6SUJhc2U+JiAvKndobyovKSB7CisgICAgICAgICAgICBtR25zcy0+aGFuZGxlSGlkbERlYXRoKCk7CisgICAgICAgIH0KKyAgICAgIHByaXZhdGU6CisgICAgICAgIHNwPEduc3M+IG1HbnNzOworICAgIH07CisKKyAgICAvLyBmb3Igd2FrZWxvY2sgY29uc29saWRhdGlvbiwgc2VlIGFib3ZlCisgICAgc3RhdGljIHZvaWQgYWNxdWlyZVdha2Vsb2NrR25zcygpOworICAgIHN0YXRpYyB2b2lkIHJlbGVhc2VXYWtlbG9ja0duc3MoKTsKKyAgICBzdGF0aWMgdm9pZCB1cGRhdGVXYWtlbG9jaygpOworICAgIHN0YXRpYyBib29sIHNXYWtlbG9ja0hlbGRHbnNzOworICAgIHN0YXRpYyBib29sIHNXYWtlbG9ja0hlbGRGdXNlZDsKKworICAgIC8qCisgICAgICogQ2xlYW51cCBmb3IgZGVhdGggbm90aWZpY2F0aW9uCisgICAgICovCisgICAgdm9pZCBoYW5kbGVIaWRsRGVhdGgoKTsKKworICAgIHNwPEduc3NYdHJhPiBtR25zc1h0cmFJZmFjZSA9IG51bGxwdHI7CisgICAgc3A8QUduc3NSaWw+IG1HbnNzUmlsID0gbnVsbHB0cjsKKyAgICBzcDxHbnNzR2VvZmVuY2luZz4gbUduc3NHZW9mZW5jaW5nSWZhY2UgPSBudWxscHRyOworICAgIHNwPEFHbnNzPiBtQUduc3NJZmFjZSA9IG51bGxwdHI7CisgICAgc3A8R25zc05pPiBtR25zc05pID0gbnVsbHB0cjsKKyAgICBzcDxHbnNzTWVhc3VyZW1lbnQ+IG1HbnNzTWVhc3VyZW1lbnQgPSBudWxscHRyOworICAgIHNwPEduc3NOYXZpZ2F0aW9uTWVzc2FnZT4gbUduc3NOYXZpZ2F0aW9uTWVzc2FnZSA9IG51bGxwdHI7CisgICAgc3A8R25zc0RlYnVnPiBtR25zc0RlYnVnID0gbnVsbHB0cjsKKyAgICBzcDxHbnNzQ29uZmlndXJhdGlvbj4gbUduc3NDb25maWcgPSBudWxscHRyOworICAgIHNwPEduc3NCYXRjaGluZz4gbUduc3NCYXRjaGluZyA9IG51bGxwdHI7CisKKyAgICBzcDxHbnNzSGlkbERlYXRoUmVjaXBpZW50PiBtRGVhdGhSZWNpcGllbnQ7CisKKyAgICBjb25zdCBHcHNJbnRlcmZhY2UqIG1HbnNzSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc0NhbGxiYWNrPiBzR25zc0NiSWZhY2U7CisgICAgc3RhdGljIHN0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IHNUaHJlYWRGdW5jQXJnc0xpc3Q7CisgICAgc3RhdGljIGJvb2wgc0ludGVyZmFjZUV4aXN0czsKKworICAgIC8vIFZhbHVlcyBzYXZlZCBmb3IgcmVzZW5kCisgICAgc3RhdGljIHVpbnQzMl90IHNDYXBhYmlsaXRpZXNDYWNoZWQ7CisgICAgc3RhdGljIHVpbnQxNl90IHNZZWFyT2ZId0NhY2hlZDsKK307CisKK2V4dGVybiAiQyIgSUduc3MqIEhJRExfRkVUQ0hfSUduc3MoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc19IXwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQmF0Y2hpbmcuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQmF0Y2hpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyYjM4Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NCYXRjaGluZy5jcHAKQEAgLTAsMCArMSwyMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfR25zc0JhdGNoaW5nSW50ZXJmYWNlIgorCisjaW5jbHVkZSAiR25zc0JhdGNoaW5nLmgiCisjaW5jbHVkZSA8R25zcy5oPiAvLyBmb3Igd2FrZWxvY2sgY29uc29saWRhdGlvbgorI2luY2x1ZGUgPEduc3NVdGlscy5oPgorCisjaW5jbHVkZSA8Y3V0aWxzL2xvZy5oPiAgLy8gZm9yIEFMT0dFCisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3A8SUduc3NCYXRjaGluZ0NhbGxiYWNrPiBHbnNzQmF0Y2hpbmc6OnNHbnNzQmF0Y2hpbmdDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgR25zc0JhdGNoaW5nOjpzRmxwU3VwcG9ydHNCYXRjaGluZyA9IGZhbHNlOworCitGbHBDYWxsYmFja3MgR25zc0JhdGNoaW5nOjpzRmxwQ2IgPSB7CisgICAgLnNpemUgPSBzaXplb2YoRmxwQ2FsbGJhY2tzKSwKKyAgICAubG9jYXRpb25fY2IgPSBsb2NhdGlvbkNiLAorICAgIC5hY3F1aXJlX3dha2Vsb2NrX2NiID0gYWNxdWlyZVdha2Vsb2NrQ2IsCisgICAgLnJlbGVhc2Vfd2FrZWxvY2tfY2IgPSByZWxlYXNlV2FrZWxvY2tDYiwKKyAgICAuc2V0X3RocmVhZF9ldmVudF9jYiA9IHNldFRocmVhZEV2ZW50Q2IsCisgICAgLmZscF9jYXBhYmlsaXRpZXNfY2IgPSBmbHBDYXBhYmlsaXRpZXNDYiwKKyAgICAuZmxwX3N0YXR1c19jYiA9IGZscFN0YXR1c0NiLAorfTsKKworR25zc0JhdGNoaW5nOjpHbnNzQmF0Y2hpbmcoY29uc3QgRmxwTG9jYXRpb25JbnRlcmZhY2UqIGZscExvY2F0aW9uSWZhY2UpIDoKKyAgICBtRmxwTG9jYXRpb25JZmFjZShmbHBMb2NhdGlvbklmYWNlKSB7Cit9CisKKy8qCisgKiBUaGlzIGVudW0gaXMgdXNlZCBsb2NhbGx5IGJ5IHZhcmlvdXMgbWV0aG9kcyBiZWxvdy4gSXQgaXMgb25seSB1c2VkIGJ5IHRoZSBkZWZhdWx0CisgKiBpbXBsZW1lbnRhdGlvbiBhbmQgaXMgbm90IHBhcnQgb2YgdGhlIEdOU1MgaW50ZXJmYWNlLgorICovCitlbnVtIEJhdGNoaW5nVmFsdWVzIDogdWludDE2X3QgeworICAgIC8vIE51bWJlcnMgMC0zIHdlcmUgdXNlZCBpbiBlYXJsaWVyIGltcGxlbWVudGF0aW9ucyAtIHVzaW5nIDQgdG8gYmUgZGlzdGluY3QgdG8gdGhlIEhBTAorICAgIEZMUF9HTlNTX0JBVENISU5HX0NMSUVOVF9JRCA9IDQsCisgICAgLy8gVGVjaC4gbWFzayBvZiBHTlNTLCBhbmQgc2Vuc29yIGFpZGluZywgZm9yIGxlZ2FjeSBIQUwgdG8gZml0IHdpdGggR25zc0JhdGNoaW5nIEFQSQorICAgIEZMUF9URUNIX01BU0tfR05TU19BTkRfU0VOU09SUyA9IEZMUF9URUNIX01BU0tfR05TUyB8IEZMUF9URUNIX01BU0tfU0VOU09SUywKKyAgICAvLyBQdXR0aW5nIGEgY2FwIHRvIGF2b2lkIHBvc3NpYmxlIG1lbW9yeSBpc3N1ZXMuICBVbmxpa2VseSB2YWx1ZXMgdGhpcyBoaWdoIGFyZSBzdXBwb3J0ZWQuCisgICAgTUFYX0xPQ0FUSU9OU19QRVJfQkFUQ0ggPSAxMDAwCit9OworCit2b2lkIEduc3NCYXRjaGluZzo6bG9jYXRpb25DYihpbnQzMl90IGxvY2F0aW9uc0NvdW50LCBGbHBMb2NhdGlvbioqIGxvY2F0aW9ucykgeworICAgIGlmIChzR25zc0JhdGNoaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBCYXRjaGluZyBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbnMgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEludmFsaWQgbG9jYXRpb25zIGZyb20gR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobG9jYXRpb25zQ291bnQgPCAwKSB7CisgICAgICAgIEFMT0dFKCIlczogTmVnYXRpdmUgbG9jYXRpb24gY291bnQ6ICVkIHNldCB0byAwIiwgX19mdW5jX18sIGxvY2F0aW9uc0NvdW50KTsKKyAgICAgICAgbG9jYXRpb25zQ291bnQgPSAwOworICAgIH0gZWxzZSBpZiAobG9jYXRpb25zQ291bnQgPiBNQVhfTE9DQVRJT05TX1BFUl9CQVRDSCkgeworICAgICAgICBBTE9HVygiJXM6IFVuZXhwZWN0ZWQgaGlnaCBsb2NhdGlvbiBjb3VudDogJWQgc2V0IHRvICVkIiwgX19mdW5jX18sIGxvY2F0aW9uc0NvdW50LAorICAgICAgICAgICAgICAgIE1BWF9MT0NBVElPTlNfUEVSX0JBVENIKTsKKyAgICAgICAgbG9jYXRpb25zQ291bnQgPSBNQVhfTE9DQVRJT05TX1BFUl9CQVRDSDsKKyAgICB9CisKKyAgICAvKioKKyAgICAgKiBOb3RlOgorICAgICAqIFNvbWUgZXhpc3RpbmcgaW1wbGVtZW50YXRpb25zIG1heSBkcm9wIGR1cGxpY2F0ZSBsb2NhdGlvbnMuICBUaGVzZSBjb3VsZCBiZSBleHBhbmRlZCBoZXJlCisgICAgICogYnV0IGFzIHRoZXJlJ3MgYW1iaWd1aXR5IGJldHdlZW4gbm8tR1BTLWZpeCB2cy4gZHJvcHBlZCBkdXBsaWNhdGVzIGluIHRoYXQgaW1wbGVtZW50YXRpb24sCisgICAgICogYW5kIHRoYXQncyBub3Qgc3BlY2lmaWVkIGJ5IHRoZSBmdXNlZF9sb2NhdGlvbi5oLCB0aGF0IGlzbid0IHNhZmUgdG8gZG8gaGVyZS4KKyAgICAgKiBGb3J0dW5hdGVseSwgdGhpcyBzaG91bGRuJ3QgYmUgYSBtYWpvciBpc3N1ZSBpbiBjYXNlcyB3aGVyZSBHTlNTIGJhdGNoaW5nIGlzIHR5cGljYWxseQorICAgICAqIHVzZWQgKGUuZy4gd2hlbiB1c2VyIGlzIGxpa2VseSBpbiB2ZWhpY2xlL2JpY3ljbGUuKQorICAgICAqLworICAgIHN0ZDo6dmVjdG9yPGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpHbnNzTG9jYXRpb24+IGduc3NMb2NhdGlvbnM7CisgICAgZm9yIChpbnQgaUxvY2F0aW9uID0gMDsgaUxvY2F0aW9uIDwgbG9jYXRpb25zQ291bnQ7IGlMb2NhdGlvbisrKSB7CisgICAgICAgIGlmIChsb2NhdGlvbnNbaUxvY2F0aW9uXSA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBBTE9HRSgiJXM6IE51bGwgbG9jYXRpb24gYXQgc2xvdDogJWQgb2YgJWQsIHNraXBwaW5nIiwgX19mdW5jX18sIGlMb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgbG9jYXRpb25zQ291bnQpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKChsb2NhdGlvbnNbaUxvY2F0aW9uXS0+c291cmNlc191c2VkICYgfkZMUF9URUNIX01BU0tfR05TU19BTkRfU0VOU09SUykgIT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgQUxPR0UoIiVzOiBVbnJlcXVlc3RlZCBsb2NhdGlvbiB0eXBlICVkIGF0IHNsb3Q6ICVkIG9mICVkLCBza2lwcGluZyIsIF9fZnVuY19fLAorICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbnNbaUxvY2F0aW9uXS0+c291cmNlc191c2VkLCBpTG9jYXRpb24sIGxvY2F0aW9uc0NvdW50KTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGduc3NMb2NhdGlvbnMucHVzaF9iYWNrKGNvbnZlcnRUb0duc3NMb2NhdGlvbihsb2NhdGlvbnNbaUxvY2F0aW9uXSkpOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gc0duc3NCYXRjaGluZ0NiSWZhY2UtPmduc3NMb2NhdGlvbkJhdGNoQ2IoZ25zc0xvY2F0aW9ucyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0JhdGNoaW5nOjphY3F1aXJlV2FrZWxvY2tDYigpIHsKKyAgICBHbnNzOjphY3F1aXJlV2FrZWxvY2tGdXNlZCgpOworfQorCit2b2lkIEduc3NCYXRjaGluZzo6cmVsZWFzZVdha2Vsb2NrQ2IoKSB7CisgICAgR25zczo6cmVsZWFzZVdha2Vsb2NrRnVzZWQoKTsKK30KKworLy8gdGhpcyBjYW4ganVzdCByZXR1cm4gc3VjY2VzcywgYmVjYXVzZSB0aHJlYWRzIGFyZSBub3cgc2V0IHVwIG9uIGRlbWFuZCBpbiB0aGUgam5pIGxheWVyCitpbnQzMl90IEduc3NCYXRjaGluZzo6c2V0VGhyZWFkRXZlbnRDYihUaHJlYWRFdmVudCAvKmV2ZW50Ki8pIHsKKyAgICByZXR1cm4gRkxQX1JFU1VMVF9TVUNDRVNTOworfQorCit2b2lkIEduc3NCYXRjaGluZzo6ZmxwQ2FwYWJpbGl0aWVzQ2IoaW50MzJfdCBjYXBhYmlsaXRpZXMpIHsKKyAgICBBTE9HRCgiJXMgY2FwYWJpbGl0aWVzICVkIiwgX19mdW5jX18sIGNhcGFiaWxpdGllcyk7CisKKyAgICBpZiAoY2FwYWJpbGl0aWVzICYgQ0FQQUJJTElUWV9HTlNTKSB7CisgICAgICAgIC8vIG9uY2UgY2FsbGJhY2sgaXMgcmVjZWl2ZWQgYW5kIGNhcGFiaWxpdGllcyBoaWdoIGVub3VnaCwgd2Uga25vdyB2ZXJzaW9uIGlzCisgICAgICAgIC8vIGhpZ2ggZW5vdWdoIGZvciBmbHVzaCgpCisgICAgICAgIHNGbHBTdXBwb3J0c0JhdGNoaW5nID0gdHJ1ZTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0JhdGNoaW5nOjpmbHBTdGF0dXNDYihpbnQzMl90IHN0YXR1cykgeworICAgIEFMT0dEKCIlcyAoZGVmYXVsdCBpbXBsZW1lbnRhdGlvbikgbm90IGZvcndhcmRpbmcgc3RhdHVzOiAlZCIsIF9fZnVuY19fLCBzdGF0dXMpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NCYXRjaGluZyBmb2xsb3cuCitSZXR1cm48Ym9vbD4gR25zc0JhdGNoaW5nOjppbml0KGNvbnN0IHNwPElHbnNzQmF0Y2hpbmdDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisgICAgaWYgKG1GbHBMb2NhdGlvbklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBGbHAgYmF0Y2hpbmcgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzR25zc0JhdGNoaW5nQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgcmV0dXJuIChtRmxwTG9jYXRpb25JZmFjZS0+aW5pdCgmc0ZscENiKSA9PSAwKTsKK30KKworUmV0dXJuPHVpbnQxNl90PiBHbnNzQmF0Y2hpbmc6OmdldEJhdGNoU2l6ZSgpIHsKKyAgICBpZiAobUZscExvY2F0aW9uSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEZscCBiYXRjaGluZyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiBtRmxwTG9jYXRpb25JZmFjZS0+Z2V0X2JhdGNoX3NpemUoKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NCYXRjaGluZzo6c3RhcnQoY29uc3QgSUduc3NCYXRjaGluZzo6T3B0aW9ucyYgb3B0aW9ucykgeworICAgIGlmIChtRmxwTG9jYXRpb25JZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogRmxwIGJhdGNoaW5nIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmICghc0ZscFN1cHBvcnRzQmF0Y2hpbmcpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBGbHAgYmF0Y2hpbmcgaW50ZXJmYWNlIG5vdCBzdXBwb3J0ZWQsIG5vIGNhcGFiaWxpdGllcyBjYWxsYmFjayByZWNlaXZlZCIsCisgICAgICAgICAgICAgICAgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgRmxwQmF0Y2hPcHRpb25zIG9wdGlvbnNIdzsKKyAgICAvLyBMZWdhY3kgY29kZSB1c2VkIDk5OTkgbVcgZm9yIEhpZ2ggYWNjdXJhY3ksIGFuZCAyMSBtVyBmb3IgYmFsYW5jZWQuCisgICAgLy8gTmV3IEdOU1MgQVBJIGp1c3QgZXhwZWN0cyByZWFzb25hYmxlIEdOU1MgY2hpcHNldCBiZWhhdmlvciAtIGRvIHNvbWV0aGluZyBlZmZpY2llbnQKKyAgICAvLyBnaXZlbiB0aGUgaW50ZXJ2YWwuICBUaGlzIDEwMCBtVyBsaW1pdCBzaG91bGQgYmUgcXVpdGUgc3VmZmljaWVudCAoZXNwLiBnaXZlbiBsZWdhY3kgY29kZQorICAgIC8vIGltcGxlbWVudGF0aW9ucyBtYXkgbm90IGV2ZW4gdXNlIHRoaXMgdmFsdWUuKQorICAgIG9wdGlvbnNIdy5tYXhfcG93ZXJfYWxsb2NhdGlvbl9tVyA9IDEwMDsKKyAgICBvcHRpb25zSHcuc291cmNlc190b191c2UgPSBGTFBfVEVDSF9NQVNLX0dOU1NfQU5EX1NFTlNPUlM7CisgICAgb3B0aW9uc0h3LmZsYWdzID0gMDsKKyAgICBpZiAob3B0aW9ucy5mbGFncyAmIEZsYWc6OldBS0VVUF9PTl9GSUZPX0ZVTEwpIHsKKyAgICAgICAgb3B0aW9uc0h3LmZsYWdzIHw9IEZMUF9CQVRDSF9XQUtFVVBfT05fRklGT19GVUxMOworICAgIH0KKyAgICBvcHRpb25zSHcucGVyaW9kX25zID0gb3B0aW9ucy5wZXJpb2ROYW5vczsKKyAgICBvcHRpb25zSHcuc21hbGxlc3RfZGlzcGxhY2VtZW50X21ldGVycyA9IDA7IC8vIFplcm8gb2Zmc2V0IC0ganVzdCB1c2UgdGltZSBpbnRlcnZhbAorCisgICAgcmV0dXJuIChtRmxwTG9jYXRpb25JZmFjZS0+c3RhcnRfYmF0Y2hpbmcoRkxQX0dOU1NfQkFUQ0hJTkdfQ0xJRU5UX0lELCAmb3B0aW9uc0h3KQorICAgICAgICAgICAgPT0gRkxQX1JFU1VMVF9TVUNDRVNTKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NCYXRjaGluZzo6Zmx1c2goKSB7CisgICAgaWYgKG1GbHBMb2NhdGlvbklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBGbHAgYmF0Y2hpbmcgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIG1GbHBMb2NhdGlvbklmYWNlLT5mbHVzaF9iYXRjaGVkX2xvY2F0aW9ucygpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NCYXRjaGluZzo6c3RvcCgpIHsKKyAgICBpZiAobUZscExvY2F0aW9uSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEZscCBiYXRjaGluZyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1GbHBMb2NhdGlvbklmYWNlLT5zdG9wX2JhdGNoaW5nKEZMUF9HTlNTX0JBVENISU5HX0NMSUVOVF9JRCkgPT0gRkxQX1JFU1VMVF9TVUNDRVNTKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NCYXRjaGluZzo6Y2xlYW51cCgpIHsKKyAgICBpZiAobUZscExvY2F0aW9uSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEZscCBiYXRjaGluZyBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbUZscExvY2F0aW9uSWZhY2UtPmNsZWFudXAoKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NCYXRjaGluZy5oIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQmF0Y2hpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDFjMjdkCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQmF0Y2hpbmcuaApAQCAtMCwwICsxLDY3IEBACisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR05TU19WMV8wX0dOU1NCQVRDSElOR19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR05TU19WMV8wX0dOU1NCQVRDSElOR19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQmF0Y2hpbmcuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9mdXNlZF9sb2NhdGlvbi5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzQmF0Y2hpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0JhdGNoaW5nQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmJhc2U6OlYxXzA6OklCYXNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgR25zc0JhdGNoaW5nIDogcHVibGljIElHbnNzQmF0Y2hpbmcgeworICAgIEduc3NCYXRjaGluZyhjb25zdCBGbHBMb2NhdGlvbkludGVyZmFjZSogZmxwTG9jYXRpb25JZmFjZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NCYXRjaGluZyBmb2xsb3cuCisgICAgUmV0dXJuPGJvb2w+IGluaXQoY29uc3Qgc3A8SUduc3NCYXRjaGluZ0NhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50MTZfdD4gZ2V0QmF0Y2hTaXplKCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHN0YXJ0KGNvbnN0IElHbnNzQmF0Y2hpbmc6Ok9wdGlvbnMmIG9wdGlvbnMgKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZmx1c2goKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc3RvcCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbGVhbnVwKCkgb3ZlcnJpZGU7CisKKyAgICAvKgorICAgICAqIENhbGxiYWNrIG1ldGhvZHMgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBGTFAgSEFMIGJ5IHRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24uIFRoZXNlIG1ldGhvZHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBJR25zc0JhdGNoaW5nIGJhc2UgY2xhc3MuCisgICAgICovCisgICAgc3RhdGljIHZvaWQgbG9jYXRpb25DYihpbnQzMl90IGxvY2F0aW9uc0NvdW50LCBGbHBMb2NhdGlvbioqIGxvY2F0aW9ucyk7CisgICAgc3RhdGljIHZvaWQgYWNxdWlyZVdha2Vsb2NrQ2IoKTsKKyAgICBzdGF0aWMgdm9pZCByZWxlYXNlV2FrZWxvY2tDYigpOworICAgIHN0YXRpYyBpbnQzMl90IHNldFRocmVhZEV2ZW50Q2IoVGhyZWFkRXZlbnQgZXZlbnQpOworICAgIHN0YXRpYyB2b2lkIGZscENhcGFiaWxpdGllc0NiKGludDMyX3QgY2FwYWJpbGl0aWVzKTsKKyAgICBzdGF0aWMgdm9pZCBmbHBTdGF0dXNDYihpbnQzMl90IHN0YXR1cyk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBGbHBDYWxsYmFja3Mgc0ZscENiOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBGbHBMb2NhdGlvbkludGVyZmFjZSogbUZscExvY2F0aW9uSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc0JhdGNoaW5nQ2FsbGJhY2s+IHNHbnNzQmF0Y2hpbmdDYklmYWNlOworICAgIHN0YXRpYyBib29sIHNGbHBTdXBwb3J0c0JhdGNoaW5nOworfTsKKworZXh0ZXJuICJDIiBJR25zc0JhdGNoaW5nKiBISURMX0ZFVENIX0lHbnNzQmF0Y2hpbmcoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HTlNTX1YxXzBfR05TU0JBVENISU5HX0gKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc0NvbmZpZ3VyYXRpb24uY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzQ29uZmlndXJhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMxYWE4NgotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0NvbmZpZ3VyYXRpb24uY3BwCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0duc3NDb25maWd1cmF0aW9uSW50ZXJmYWNlIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiR25zc0NvbmZpZ3VyYXRpb24uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK0duc3NDb25maWd1cmF0aW9uOjpHbnNzQ29uZmlndXJhdGlvbihjb25zdCBHbnNzQ29uZmlndXJhdGlvbkludGVyZmFjZSogZ25zc0NvbmZpZ0luZmMpCisgICAgOiBtR25zc0NvbmZpZ0lmYWNlKGduc3NDb25maWdJbmZjKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z3BzOjpWMV8wOjpJR25zc0NvbmZpZ3VyYXRpb24gZm9sbG93LgorUmV0dXJuPGJvb2w+IEduc3NDb25maWd1cmF0aW9uOjpzZXRTdXBsRXMoYm9vbCBlbmFibGVkKSAgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIlNVUExfRVM9IiArIHN0ZDo6dG9fc3RyaW5nKGVuYWJsZWQgPyAxIDogMCkgKyAiXG4iOworICAgIG1HbnNzQ29uZmlnSWZhY2UtPmNvbmZpZ3VyYXRpb25fdXBkYXRlKGNvbmZpZy5jX3N0cigpLCBjb25maWcuc2l6ZSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NDb25maWd1cmF0aW9uOjpzZXRTdXBsVmVyc2lvbih1aW50MzJfdCB2ZXJzaW9uKSAgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIlNVUExfVkVSPSIgKyBzdGQ6OnRvX3N0cmluZyh2ZXJzaW9uKSArICJcbiI7CisgICAgbUduc3NDb25maWdJZmFjZS0+Y29uZmlndXJhdGlvbl91cGRhdGUoY29uZmlnLmNfc3RyKCksIGNvbmZpZy5zaXplKCkpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JldHVybjxib29sPiBHbnNzQ29uZmlndXJhdGlvbjo6c2V0U3VwbE1vZGUodWludDhfdCBtb2RlKSAgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIlNVUExfTU9ERT0iICsgc3RkOjp0b19zdHJpbmcobW9kZSkgKyAiXG4iOworICAgIG1HbnNzQ29uZmlnSWZhY2UtPmNvbmZpZ3VyYXRpb25fdXBkYXRlKGNvbmZpZy5jX3N0cigpLCBjb25maWcuc2l6ZSgpKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworUmV0dXJuPGJvb2w+IEduc3NDb25maWd1cmF0aW9uOjpzZXRMcHBQcm9maWxlKHVpbnQ4X3QgbHBwUHJvZmlsZSkgeworICAgIGlmIChtR25zc0NvbmZpZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUuIiwgX19mdW5jX18pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgc3RkOjpzdHJpbmcgY29uZmlnID0gIkxQUF9QUk9GSUxFPSIgKyBzdGQ6OnRvX3N0cmluZyhscHBQcm9maWxlKSArICJcbiI7CisgICAgbUduc3NDb25maWdJZmFjZS0+Y29uZmlndXJhdGlvbl91cGRhdGUoY29uZmlnLmNfc3RyKCksIGNvbmZpZy5zaXplKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48Ym9vbD4gR25zc0NvbmZpZ3VyYXRpb246OnNldEdsb25hc3NQb3NpdGlvbmluZ1Byb3RvY29sKHVpbnQ4X3QgcHJvdG9jb2wpIHsKKyAgICBpZiAobUduc3NDb25maWdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDb25maWd1cmF0aW9uIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlLiIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0ZDo6c3RyaW5nIGNvbmZpZyA9ICJBX0dMT05BU1NfUE9TX1BST1RPQ09MX1NFTEVDVD0iICsKKyAgICAgICAgICAgIHN0ZDo6dG9fc3RyaW5nKHByb3RvY29sKSArICJcbiI7CisgICAgbUduc3NDb25maWdJZmFjZS0+Y29uZmlndXJhdGlvbl91cGRhdGUoY29uZmlnLmNfc3RyKCksIGNvbmZpZy5zaXplKCkpOworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48Ym9vbD4gR25zc0NvbmZpZ3VyYXRpb246OnNldEdwc0xvY2sodWludDhfdCBsb2NrKSB7CisgICAgaWYgKG1HbnNzQ29uZmlnSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgQ29uZmlndXJhdGlvbiBpbnRlcmZhY2UgaXMgbm90IGF2YWlsYWJsZS4iLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzdGQ6OnN0cmluZyBjb25maWcgPSAiR1BTX0xPQ0s9IiArIHN0ZDo6dG9fc3RyaW5nKGxvY2spICsgIlxuIjsKKyAgICBtR25zc0NvbmZpZ0lmYWNlLT5jb25maWd1cmF0aW9uX3VwZGF0ZShjb25maWcuY19zdHIoKSwgY29uZmlnLnNpemUoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JldHVybjxib29sPiBHbnNzQ29uZmlndXJhdGlvbjo6c2V0RW1lcmdlbmN5U3VwbFBkbihib29sIGVuYWJsZWQpIHsKKyAgICBpZiAobUduc3NDb25maWdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBDb25maWd1cmF0aW9uIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlLiIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0ZDo6c3RyaW5nIGNvbmZpZyA9ICJVU0VfRU1FUkdFTkNZX1BETl9GT1JfRU1FUkdFTkNZX1NVUEw9IiArIHN0ZDo6dG9fc3RyaW5nKGVuYWJsZWQgPyAxIDogMCkKKyAgICAgICAgICAgICsgIlxuIjsKKyAgICBtR25zc0NvbmZpZ0lmYWNlLT5jb25maWd1cmF0aW9uX3VwZGF0ZShjb25maWcuY19zdHIoKSwgY29uZmlnLnNpemUoKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NDb25maWd1cmF0aW9uLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NDb25maWd1cmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTZlY2E4OAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0NvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NDb25maWd1cmF0aW9uX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NDb25maWd1cmF0aW9uX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzQ29uZmlndXJhdGlvbi5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwcy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0NvbmZpZ3VyYXRpb247Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qCisgKiBJbnRlcmZhY2UgZm9yIHBhc3NpbmcgR05TUyBjb25maWd1cmF0aW9uIGluZm8gZnJvbSBwbGF0Zm9ybSB0byBIQUwuCisgKi8KK3N0cnVjdCBHbnNzQ29uZmlndXJhdGlvbiA6IHB1YmxpYyBJR25zc0NvbmZpZ3VyYXRpb24geworICAgIEduc3NDb25maWd1cmF0aW9uKGNvbnN0IEduc3NDb25maWd1cmF0aW9uSW50ZXJmYWNlKiBnbnNzQ29uZmlnSWZhY2UpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NDb25maWd1cmF0aW9uIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJR25zc0NvbmZpZ3VyYXRpb24uaGFsLgorICAgICAqLworICAgIFJldHVybjxib29sPiBzZXRTdXBsVmVyc2lvbih1aW50MzJfdCB2ZXJzaW9uKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0U3VwbE1vZGUodWludDhfdCBtb2RlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0U3VwbEVzKGJvb2wgZW5hYmxlZCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHNldExwcFByb2ZpbGUodWludDhfdCBscHBQcm9maWxlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48Ym9vbD4gc2V0R2xvbmFzc1Bvc2l0aW9uaW5nUHJvdG9jb2wodWludDhfdCBwcm90b2NvbCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPGJvb2w+IHNldEVtZXJnZW5jeVN1cGxQZG4oYm9vbCBlbmFibGUpIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBzZXRHcHNMb2NrKHVpbnQ4X3QgbG9jaykgb3ZlcnJpZGU7CisKKyBwcml2YXRlOgorICAgIGNvbnN0IEduc3NDb25maWd1cmF0aW9uSW50ZXJmYWNlKiBtR25zc0NvbmZpZ0lmYWNlID0gbnVsbHB0cjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0NvbmZpZ3VyYXRpb25fSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc0RlYnVnLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0RlYnVnLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmMzOGNhCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzRGVidWcuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkduc3NIQUxfR25zc0RlYnVnSW50ZXJmYWNlIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiR25zc0RlYnVnLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitHbnNzRGVidWc6Okduc3NEZWJ1Zyhjb25zdCBHcHNEZWJ1Z0ludGVyZmFjZSogZ3BzRGVidWdJZmFjZSkgOiBtR25zc0RlYnVnSWZhY2UoZ3BzRGVidWdJZmFjZSkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzRGVidWcgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEduc3NEZWJ1Zzo6Z2V0RGVidWdEYXRhKGdldERlYnVnRGF0YV9jYiBfaGlkbF9jYikgIHsKKyAgICAvKgorICAgICAqIFRoaXMgaXMgYSBuZXcgaW50ZXJmYWNlIGFuZCBoZW5jZSB0aGVyZSBpcyBubyB3YXkgdG8gcmV0cmlldmUgdGhlCisgICAgICogZGVidWcgZGF0YSBmcm9tIHRoZSBIQUwuCisgICAgICovCisgICAgRGVidWdEYXRhIGRhdGEgPSB7fTsKKworICAgIF9oaWRsX2NiKGRhdGEpOworCisgICAgLyoKKyAgICAgKiBMb2cgdGhlIGRlYnVnIGRhdGEgc2VudCBmcm9tIHRoZSBjb252ZW50aW9uYWwgR25zcyBIQUwuIFRoaXMgY29kZSBpcworICAgICAqIG1vdmVkIGhlcmUgZnJvbSBHbnNzTG9jYXRpb25Qcm92aWRlci4KKyAgICAgKi8KKyAgICBpZiAobUduc3NEZWJ1Z0lmYWNlKSB7CisgICAgICAgIGNoYXIgYnVmZmVyW2tNYXhEZWJ1Z1N0ckxlbiArIDFdOworICAgICAgICBzaXplX3QgbGVuZ3RoID0gbUduc3NEZWJ1Z0lmYWNlLT5nZXRfaW50ZXJuYWxfc3RhdGUoYnVmZmVyLCBrTWF4RGVidWdTdHJMZW4pOworICAgICAgICBsZW5ndGggPSBzdGQ6Om1heChsZW5ndGgsIGtNYXhEZWJ1Z1N0ckxlbik7CisgICAgICAgIGJ1ZmZlcltsZW5ndGhdID0gJ1wwJzsKKyAgICAgICAgQUxPR0QoIkduc3MgRGVidWcgRGF0YTogJXMiLCBidWZmZXIpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzRGVidWcuaCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0RlYnVnLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWExN2RkZQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0RlYnVnLmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0RlYnVnX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NEZWJ1Z19IXworCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc0RlYnVnLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzRGVidWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qIEludGVyZmFjZSBmb3IgR05TUyBEZWJ1ZyBzdXBwb3J0LiAqLworc3RydWN0IEduc3NEZWJ1ZyA6IHB1YmxpYyBJR25zc0RlYnVnIHsKKyAgICBHbnNzRGVidWcoY29uc3QgR3BzRGVidWdJbnRlcmZhY2UqIGdwc0RlYnVnSWZhY2UpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NEZWJ1ZyBmb2xsb3cuCisgICAgICogVGhlc2UgZGVjbGFyYXRpb25zIHdlcmUgZ2VuZXJhdGVkIGZyb20gSUduc3NEZWJ1Zy5oYWwuCisgICAgICovCisgICAgUmV0dXJuPHZvaWQ+IGdldERlYnVnRGF0YShnZXREZWJ1Z0RhdGFfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworIHByaXZhdGU6CisgICAgLyoKKyAgICAgKiBDb25zdGFudCBhZGRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB0byBjb252ZW50aW9uYWwgR1BTIEhhbHMgd2hpY2gKKyAgICAgKiByZXR1cm5lZCBhIGRlYnVnIHN0cmluZy4KKyAgICAgKi8KKyAgICBjb25zdCBzaXplX3Qga01heERlYnVnU3RyTGVuID0gMjA0NzsKKyAgICBjb25zdCBHcHNEZWJ1Z0ludGVyZmFjZSogbUduc3NEZWJ1Z0lmYWNlID0gbnVsbHB0cjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc0RlYnVnX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NHZW9mZW5jaW5nLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0dlb2ZlbmNpbmcuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0YzRhYWEKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NHZW9mZW5jaW5nLmNwcApAQCAtMCwwICsxLDIyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hhbF9HbnNzR2VvZmVuY2luZyIKKworI2luY2x1ZGUgIkduc3NHZW9mZW5jaW5nLmgiCisjaW5jbHVkZSA8R25zc1V0aWxzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBHbnNzR2VvZmVuY2luZzo6c1RocmVhZEZ1bmNBcmdzTGlzdDsKK3NwPElHbnNzR2VvZmVuY2VDYWxsYmFjaz4gR25zc0dlb2ZlbmNpbmc6Om1HbnNzR2VvZmVuY2luZ0NiSWZhY2UgPSBudWxscHRyOworYm9vbCBHbnNzR2VvZmVuY2luZzo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworCitHcHNHZW9mZW5jZUNhbGxiYWNrcyBHbnNzR2VvZmVuY2luZzo6c0duc3NHZkNiID0geworICAgIC5nZW9mZW5jZV90cmFuc2l0aW9uX2NhbGxiYWNrID0gZ25zc0dmVHJhbnNpdGlvbkNiLAorICAgIC5nZW9mZW5jZV9zdGF0dXNfY2FsbGJhY2sgPSBnbnNzR2ZTdGF0dXNDYiwKKyAgICAuZ2VvZmVuY2VfYWRkX2NhbGxiYWNrID0gZ25zc0dmQWRkQ2IsCisgICAgLmdlb2ZlbmNlX3JlbW92ZV9jYWxsYmFjayA9IGduc3NHZlJlbW92ZUNiLAorICAgIC5nZW9mZW5jZV9wYXVzZV9jYWxsYmFjayA9IGduc3NHZlBhdXNlQ2IsCisgICAgLmdlb2ZlbmNlX3Jlc3VtZV9jYWxsYmFjayA9IGduc3NHZlJlc3VtZUNiLAorICAgIC5jcmVhdGVfdGhyZWFkX2NiID0gY3JlYXRlVGhyZWFkQ2IKK307CisKK0duc3NHZW9mZW5jaW5nOjpHbnNzR2VvZmVuY2luZyhjb25zdCBHcHNHZW9mZW5jaW5nSW50ZXJmYWNlKiBncHNHZW9mZW5jaW5nSWZhY2UpCisgICAgOiBtR25zc0dlb2ZlbmNpbmdJZmFjZShncHNHZW9mZW5jaW5nSWZhY2UpIHsKKyAgICAvKiBFcnJvciBvdXQgaWYgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVyZmFjZSBhbHJlYWR5IGV4aXN0cy4gKi8KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKHNJbnRlcmZhY2VFeGlzdHMpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSB0cnVlOworfQorCitHbnNzR2VvZmVuY2luZzo6fkduc3NHZW9mZW5jaW5nKCkgeworICAgIHNUaHJlYWRGdW5jQXJnc0xpc3QuY2xlYXIoKTsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7Cit9Cit2b2lkIEduc3NHZW9mZW5jaW5nOjpnbnNzR2ZUcmFuc2l0aW9uQ2IoaW50MzJfdCBnZW9mZW5jZUlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdwc0xvY2F0aW9uKiBsb2NhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRyYW5zaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR3BzVXRjVGltZSB0aW1lc3RhbXApIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBHZW9mZW5jZSBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsb2NhdGlvbiA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlcyA6IEludmFsaWQgbG9jYXRpb24gZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb24gPSBjb252ZXJ0VG9HbnNzTG9jYXRpb24obG9jYXRpb24pOworICAgIGF1dG8gcmV0ID0gbUduc3NHZW9mZW5jaW5nQ2JJZmFjZS0+Z25zc0dlb2ZlbmNlVHJhbnNpdGlvbkNiKAorICAgICAgICAgICAgZ2VvZmVuY2VJZCwKKyAgICAgICAgICAgIGduc3NMb2NhdGlvbiwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VUcmFuc2l0aW9uPih0cmFuc2l0aW9uKSwKKyAgICAgICAgICAgIHRpbWVzdGFtcCk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0dlb2ZlbmNpbmc6Omduc3NHZlN0YXR1c0NiKGludDMyX3Qgc3RhdHVzLCBHcHNMb2NhdGlvbiogbG9jYXRpb24pIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBHZW9mZW5jZSBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb247CisKKyAgICBpZiAobG9jYXRpb24gIT0gbnVsbHB0cikgeworICAgICAgICBnbnNzTG9jYXRpb24gPSBjb252ZXJ0VG9HbnNzTG9jYXRpb24obG9jYXRpb24pOworICAgIH0gZWxzZSB7CisgICAgICAgIGduc3NMb2NhdGlvbiA9IHt9OworICAgIH0KKworICAgIGF1dG8gcmV0ID0gbUduc3NHZW9mZW5jaW5nQ2JJZmFjZS0+Z25zc0dlb2ZlbmNlU3RhdHVzQ2IoCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlQXZhaWxhYmlsaXR5PihzdGF0dXMpLCBnbnNzTG9jYXRpb24pOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCit2b2lkIEduc3NHZW9mZW5jaW5nOjpnbnNzR2ZBZGRDYihpbnQzMl90IGdlb2ZlbmNlSWQsIGludDMyX3Qgc3RhdHVzKSB7CisgICAgaWYgKG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgR2VvZmVuY2UgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UtPmduc3NHZW9mZW5jZUFkZENiKAorICAgICAgICAgICAgZ2VvZmVuY2VJZCwgc3RhdGljX2Nhc3Q8SUduc3NHZW9mZW5jZUNhbGxiYWNrOjpHZW9mZW5jZVN0YXR1cz4oc3RhdHVzKSk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKK3ZvaWQgR25zc0dlb2ZlbmNpbmc6Omduc3NHZlJlbW92ZUNiKGludDMyX3QgZ2VvZmVuY2VJZCwgaW50MzJfdCBzdGF0dXMpIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TUyBHZW9mZW5jZSBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gcmV0ID0gbUduc3NHZW9mZW5jaW5nQ2JJZmFjZS0+Z25zc0dlb2ZlbmNlUmVtb3ZlQ2IoCisgICAgICAgICAgICBnZW9mZW5jZUlkLCBzdGF0aWNfY2FzdDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlU3RhdHVzPihzdGF0dXMpKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzR2VvZmVuY2luZzo6Z25zc0dmUGF1c2VDYihpbnQzMl90IGdlb2ZlbmNlSWQsIGludDMyX3Qgc3RhdHVzKSB7CisgICAgaWYgKG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1MgR2VvZmVuY2UgQ2FsbGJhY2sgSW50ZXJmYWNlIGNvbmZpZ3VyZWQgaW5jb3JyZWN0bHkiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHJldCA9IG1HbnNzR2VvZmVuY2luZ0NiSWZhY2UtPmduc3NHZW9mZW5jZVBhdXNlQ2IoCisgICAgICAgICAgICBnZW9mZW5jZUlkLCBzdGF0aWNfY2FzdDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlU3RhdHVzPihzdGF0dXMpKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKwordm9pZCBHbnNzR2VvZmVuY2luZzo6Z25zc0dmUmVzdW1lQ2IoaW50MzJfdCBnZW9mZW5jZUlkLCBpbnQzMl90IHN0YXR1cykgeworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIEdlb2ZlbmNlIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBtR25zc0dlb2ZlbmNpbmdDYklmYWNlLT5nbnNzR2VvZmVuY2VSZXN1bWVDYigKKyAgICAgICAgICAgIGdlb2ZlbmNlSWQsIHN0YXRpY19jYXN0PElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VTdGF0dXM+KHN0YXR1cykpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCitwdGhyZWFkX3QgR25zc0dlb2ZlbmNpbmc6OmNyZWF0ZVRocmVhZENiKGNvbnN0IGNoYXIqIG5hbWUsIHZvaWQgKCpzdGFydCkodm9pZCopLCB2b2lkKiBhcmcpIHsKKyAgICByZXR1cm4gY3JlYXRlUHRocmVhZChuYW1lLCBzdGFydCwgYXJnLCAmc1RocmVhZEZ1bmNBcmdzTGlzdCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0dlb2ZlbmNpbmcgZm9sbG93LgorUmV0dXJuPHZvaWQ+IEduc3NHZW9mZW5jaW5nOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBtR25zc0dlb2ZlbmNpbmdDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NHZW9mZW5jaW5nIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzR2VvZmVuY2luZ0lmYWNlLT5pbml0KCZzR25zc0dmQ2IpOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzR2VvZmVuY2luZzo6YWRkR2VvZmVuY2UoCisgICAgICAgIGludDMyX3QgZ2VvZmVuY2VJZCwKKyAgICAgICAgZG91YmxlIGxhdGl0dWRlRGVncmVlcywKKyAgICAgICAgZG91YmxlIGxvbmdpdHVkZURlZ3JlZXMsCisgICAgICAgIGRvdWJsZSByYWRpdXNNZXRlcnMsCisgICAgICAgIElHbnNzR2VvZmVuY2VDYWxsYmFjazo6R2VvZmVuY2VUcmFuc2l0aW9uIGxhc3RUcmFuc2l0aW9uLAorICAgICAgICBpbnQzMl90IG1vbml0b3JUcmFuc2l0aW9ucywKKyAgICAgICAgdWludDMyX3Qgbm90aWZpY2F0aW9uUmVzcG9uc2l2ZW5lc3NNcywKKyAgICAgICAgdWludDMyX3QgdW5rbm93blRpbWVyTXMpICB7CisgICAgaWYgKG1HbnNzR2VvZmVuY2luZ0lmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzR2VvZmVuY2luZyBpbnRlcmZhY2UgaXMgbm90IGF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtR25zc0dlb2ZlbmNpbmdJZmFjZS0+YWRkX2dlb2ZlbmNlX2FyZWEoCisgICAgICAgICAgICAgICAgZ2VvZmVuY2VJZCwKKyAgICAgICAgICAgICAgICBsYXRpdHVkZURlZ3JlZXMsCisgICAgICAgICAgICAgICAgbG9uZ2l0dWRlRGVncmVlcywKKyAgICAgICAgICAgICAgICByYWRpdXNNZXRlcnMsCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4obGFzdFRyYW5zaXRpb24pLAorICAgICAgICAgICAgICAgIG1vbml0b3JUcmFuc2l0aW9ucywKKyAgICAgICAgICAgICAgICBub3RpZmljYXRpb25SZXNwb25zaXZlbmVzc01zLAorICAgICAgICAgICAgICAgIHVua25vd25UaW1lck1zKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NHZW9mZW5jaW5nOjpwYXVzZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCkgIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NHZW9mZW5jaW5nIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzR2VvZmVuY2luZ0lmYWNlLT5wYXVzZV9nZW9mZW5jZShnZW9mZW5jZUlkKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEduc3NHZW9mZW5jaW5nOjpyZXN1bWVHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQsIGludDMyX3QgbW9uaXRvclRyYW5zaXRpb25zKSAgeworICAgIGlmIChtR25zc0dlb2ZlbmNpbmdJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zc0dlb2ZlbmNpbmcgaW50ZXJmYWNlIGlzIG5vdCBhdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbUduc3NHZW9mZW5jaW5nSWZhY2UtPnJlc3VtZV9nZW9mZW5jZShnZW9mZW5jZUlkLCBtb25pdG9yVHJhbnNpdGlvbnMpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR25zc0dlb2ZlbmNpbmc6OnJlbW92ZUdlb2ZlbmNlKGludDMyX3QgZ2VvZmVuY2VJZCkgIHsKKyAgICBpZiAobUduc3NHZW9mZW5jaW5nSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NHZW9mZW5jaW5nIGludGVyZmFjZSBpcyBub3QgYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzR2VvZmVuY2luZ0lmYWNlLT5yZW1vdmVfZ2VvZmVuY2VfYXJlYShnZW9mZW5jZUlkKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc0dlb2ZlbmNpbmcuaCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc0dlb2ZlbmNpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjRiODkzCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzR2VvZmVuY2luZy5oCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NHZW9mZW5jaW5nX0hfCisjZGVmaW5lIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NHZW9mZW5jaW5nX0hfCisKKyNpbmNsdWRlIDxUaHJlYWRDcmVhdGlvbldyYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzR2VvZmVuY2luZy5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0dlb2ZlbmNlQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0dlb2ZlbmNpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qCisgKiBJbnRlcmZhY2UgZm9yIEdOU1MgR2VvZmVuY2luZyBzdXBwb3J0LiBJdCBhbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcyB0byBhbGxvdworICogbWV0aG9kcyBmcm9tIElHbnNzR2VvZmVuY2VDYWxsYmFjayBpbnRlcmZhY2UgdG8gYmUgcGFzc2VkIGludG8gdGhlCisgKiBjb252ZW50aW9uYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitzdHJ1Y3QgR25zc0dlb2ZlbmNpbmcgOiBwdWJsaWMgSUduc3NHZW9mZW5jaW5nIHsKKyAgICBHbnNzR2VvZmVuY2luZyhjb25zdCBHcHNHZW9mZW5jaW5nSW50ZXJmYWNlKiBncHNHZW9mZW5jaW5nSWZhY2UpOworICAgIH5HbnNzR2VvZmVuY2luZygpOworCisgICAgLyoKKyAgICAgKiBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NHZW9mZW5jaW5nIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJR25zc0dlb2ZlbmNpbmcuaGFsLgorICAgICAqLworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s+JiBjYWxsYmFjaykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBhZGRHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBsYXRpdHVkZURlZ3JlZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBsb25naXR1ZGVEZWdyZWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgcmFkaXVzTWV0ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJR25zc0dlb2ZlbmNlQ2FsbGJhY2s6Okdlb2ZlbmNlVHJhbnNpdGlvbiBsYXN0VHJhbnNpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBtb25pdG9yVHJhbnNpdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG5vdGlmaWNhdGlvblJlc3BvbnNpdmVuZXNzTXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHVua25vd25UaW1lck1zKSAgb3ZlcnJpZGU7CisKKyAgICBSZXR1cm48dm9pZD4gcGF1c2VHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcmVzdW1lR2VvZmVuY2UoaW50MzJfdCBnZW9mZW5jZUlkLCBpbnQzMl90IG1vbml0b3JUcmFuc2l0aW9ucykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiByZW1vdmVHZW9mZW5jZShpbnQzMl90IGdlb2ZlbmNlSWQpICBvdmVycmlkZTsKKworICAgIC8qCisgICAgICogQ2FsbGJhY2sgbWV0aG9kcyB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIEdOU1MgSEFMIGJ5IHRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24uIFRoZXNlIG1ldGhvZHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBJR25zc0dlb2ZlbmNpbmcgYmFzZSBjbGFzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBnbnNzR2ZUcmFuc2l0aW9uQ2IoaW50MzJfdCBnZW9mZW5jZV9pZCwgR3BzTG9jYXRpb24qIGxvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRyYW5zaXRpb24sIEdwc1V0Y1RpbWUgdGltZXN0YW1wKTsKKyAgICBzdGF0aWMgdm9pZCBnbnNzR2ZTdGF0dXNDYihpbnQzMl90IHN0YXR1cywgR3BzTG9jYXRpb24qIGxhc3RfbG9jYXRpb24pOworICAgIHN0YXRpYyB2b2lkIGduc3NHZkFkZENiKGludDMyX3QgZ2VvZmVuY2VfaWQsIGludDMyX3Qgc3RhdHVzKTsKKyAgICBzdGF0aWMgdm9pZCBnbnNzR2ZSZW1vdmVDYihpbnQzMl90IGdlb2ZlbmNlX2lkLCBpbnQzMl90IHN0YXR1cyk7CisgICAgc3RhdGljIHZvaWQgZ25zc0dmUGF1c2VDYihpbnQzMl90IGdlb2ZlbmNlX2lkLCBpbnQzMl90IHN0YXR1cyk7CisgICAgc3RhdGljIHZvaWQgZ25zc0dmUmVzdW1lQ2IoaW50MzJfdCBnZW9mZW5jZV9pZCwgaW50MzJfdCBzdGF0dXMpOworICAgIHN0YXRpYyBwdGhyZWFkX3QgY3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZyk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBHcHNHZW9mZW5jZUNhbGxiYWNrcyBzR25zc0dmQ2I7CisKKyBwcml2YXRlOgorICAgIHN0YXRpYyBzdGQ6OnZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+PiBzVGhyZWFkRnVuY0FyZ3NMaXN0OworICAgIHN0YXRpYyBzcDxJR25zc0dlb2ZlbmNlQ2FsbGJhY2s+IG1HbnNzR2VvZmVuY2luZ0NiSWZhY2U7CisgICAgY29uc3QgR3BzR2VvZmVuY2luZ0ludGVyZmFjZSogbUduc3NHZW9mZW5jaW5nSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBib29sIHNJbnRlcmZhY2VFeGlzdHM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NHZW9mZW5jaW5nX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NNZWFzdXJlbWVudC5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NNZWFzdXJlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM5YjgzOAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc01lYXN1cmVtZW50LmNwcApAQCAtMCwwICsxLDI2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hBTF9HbnNzTWVhc3VyZW1lbnRJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJHbnNzTWVhc3VyZW1lbnQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3NwPElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjaz4gR25zc01lYXN1cmVtZW50OjpzR25zc01lYXN1cmVDYklmYWNlID0gbnVsbHB0cjsKK0dwc01lYXN1cmVtZW50Q2FsbGJhY2tzIEduc3NNZWFzdXJlbWVudDo6c0duc3NNZWFzdXJlbWVudENicyA9IHsKKyAgICAuc2l6ZSA9IHNpemVvZihHcHNNZWFzdXJlbWVudENhbGxiYWNrcyksCisgICAgLm1lYXN1cmVtZW50X2NhbGxiYWNrID0gZ3BzTWVhc3VyZW1lbnRDYiwKKyAgICAuZ25zc19tZWFzdXJlbWVudF9jYWxsYmFjayA9IGduc3NNZWFzdXJlbWVudENiCit9OworCitHbnNzTWVhc3VyZW1lbnQ6Okduc3NNZWFzdXJlbWVudChjb25zdCBHcHNNZWFzdXJlbWVudEludGVyZmFjZSogZ3BzTWVhc3VyZW1lbnRJZmFjZSkKKyAgICA6IG1HbnNzTWVhc3VyZUlmYWNlKGdwc01lYXN1cmVtZW50SWZhY2UpIHt9CisKK3ZvaWQgR25zc01lYXN1cmVtZW50OjpnbnNzTWVhc3VyZW1lbnRDYihMZWdhY3lHbnNzRGF0YSogbGVnYWN5R25zc0RhdGEpIHsKKyAgICBpZiAoc0duc3NNZWFzdXJlQ2JJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR05TU01lYXN1cmVtZW50IENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGxlZ2FjeUduc3NEYXRhID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIEduc3NEYXRhIGZyb20gR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s6Okduc3NEYXRhIGduc3NEYXRhOworICAgIGduc3NEYXRhLm1lYXN1cmVtZW50Q291bnQgPSBzdGQ6Om1pbihsZWdhY3lHbnNzRGF0YS0+bWVhc3VyZW1lbnRfY291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oR25zc01heDo6U1ZTX0NPVU5UKSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGduc3NEYXRhLm1lYXN1cmVtZW50Q291bnQ7IGkrKykgeworICAgICAgICBhdXRvIGVudHJ5ID0gbGVnYWN5R25zc0RhdGEtPm1lYXN1cmVtZW50c1tpXTsKKyAgICAgICAgYXV0byBzdGF0ZSA9IHN0YXRpY19jYXN0PEduc3NNZWFzdXJlbWVudFN0YXRlPihlbnRyeS5zdGF0ZSk7CisgICAgICAgIGlmIChzdGF0ZSAmIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc01lYXN1cmVtZW50U3RhdGU6OlNUQVRFX1RPV19ERUNPREVEKSB7CisgICAgICAgICAgc3RhdGUgfD0gSUduc3NNZWFzdXJlbWVudENhbGxiYWNrOjpHbnNzTWVhc3VyZW1lbnRTdGF0ZTo6U1RBVEVfVE9XX0tOT1dOOworICAgICAgICB9CisgICAgICAgIGlmIChzdGF0ZSAmIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc01lYXN1cmVtZW50U3RhdGU6OlNUQVRFX0dMT19UT0RfREVDT0RFRCkgeworICAgICAgICAgIHN0YXRlIHw9IElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc01lYXN1cmVtZW50U3RhdGU6OlNUQVRFX0dMT19UT0RfS05PV047CisgICAgICAgIH0KKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldID0geworICAgICAgICAgICAgLmZsYWdzID0gZW50cnkuZmxhZ3MsCisgICAgICAgICAgICAuc3ZpZCA9IGVudHJ5LnN2aWQsCisgICAgICAgICAgICAuY29uc3RlbGxhdGlvbiA9IHN0YXRpY19jYXN0PEduc3NDb25zdGVsbGF0aW9uVHlwZT4oZW50cnkuY29uc3RlbGxhdGlvbiksCisgICAgICAgICAgICAudGltZU9mZnNldE5zID0gZW50cnkudGltZV9vZmZzZXRfbnMsCisgICAgICAgICAgICAuc3RhdGUgPSBzdGF0ZSwKKyAgICAgICAgICAgIC5yZWNlaXZlZFN2VGltZUluTnMgPSBlbnRyeS5yZWNlaXZlZF9zdl90aW1lX2luX25zLAorICAgICAgICAgICAgLnJlY2VpdmVkU3ZUaW1lVW5jZXJ0YWludHlJbk5zID0gZW50cnkucmVjZWl2ZWRfc3ZfdGltZV91bmNlcnRhaW50eV9pbl9ucywKKyAgICAgICAgICAgIC5jTjBEYkh6ID0gZW50cnkuY19uMF9kYmh6LAorICAgICAgICAgICAgLnBzZXVkb3JhbmdlUmF0ZU1wcyA9IGVudHJ5LnBzZXVkb3JhbmdlX3JhdGVfbXBzLAorICAgICAgICAgICAgLnBzZXVkb3JhbmdlUmF0ZVVuY2VydGFpbnR5TXBzID0gZW50cnkucHNldWRvcmFuZ2VfcmF0ZV91bmNlcnRhaW50eV9tcHMsCisgICAgICAgICAgICAuYWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGUgPSBlbnRyeS5hY2N1bXVsYXRlZF9kZWx0YV9yYW5nZV9zdGF0ZSwKKyAgICAgICAgICAgIC5hY2N1bXVsYXRlZERlbHRhUmFuZ2VNID0gZW50cnkuYWNjdW11bGF0ZWRfZGVsdGFfcmFuZ2VfbSwKKyAgICAgICAgICAgIC5hY2N1bXVsYXRlZERlbHRhUmFuZ2VVbmNlcnRhaW50eU0gPSBlbnRyeS5hY2N1bXVsYXRlZF9kZWx0YV9yYW5nZV91bmNlcnRhaW50eV9tLAorICAgICAgICAgICAgLmNhcnJpZXJGcmVxdWVuY3lIeiA9IGVudHJ5LmNhcnJpZXJfZnJlcXVlbmN5X2h6LAorICAgICAgICAgICAgLmNhcnJpZXJDeWNsZXMgPSBlbnRyeS5jYXJyaWVyX2N5Y2xlcywKKyAgICAgICAgICAgIC5jYXJyaWVyUGhhc2UgPSBlbnRyeS5jYXJyaWVyX3BoYXNlLAorICAgICAgICAgICAgLmNhcnJpZXJQaGFzZVVuY2VydGFpbnR5ID0gZW50cnkuY2Fycmllcl9waGFzZV91bmNlcnRhaW50eSwKKyAgICAgICAgICAgIC5tdWx0aXBhdGhJbmRpY2F0b3IgPSBzdGF0aWNfY2FzdDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s6Okduc3NNdWx0aXBhdGhJbmRpY2F0b3I+KAorICAgICAgICAgICAgICAgICAgICBlbnRyeS5tdWx0aXBhdGhfaW5kaWNhdG9yKSwKKyAgICAgICAgICAgIC5zbnJEYiA9IGVudHJ5LnNucl9kYgorICAgICAgICB9OworICAgIH0KKworICAgIGF1dG8gY2xvY2tWYWwgPSBsZWdhY3lHbnNzRGF0YS0+Y2xvY2s7CisgICAgZ25zc0RhdGEuY2xvY2sgPSB7CisgICAgICAgIC5nbnNzQ2xvY2tGbGFncyA9IGNsb2NrVmFsLmZsYWdzLAorICAgICAgICAubGVhcFNlY29uZCA9IGNsb2NrVmFsLmxlYXBfc2Vjb25kLAorICAgICAgICAudGltZU5zID0gY2xvY2tWYWwudGltZV9ucywKKyAgICAgICAgLnRpbWVVbmNlcnRhaW50eU5zID0gY2xvY2tWYWwudGltZV91bmNlcnRhaW50eV9ucywKKyAgICAgICAgLmZ1bGxCaWFzTnMgPSBjbG9ja1ZhbC5mdWxsX2JpYXNfbnMsCisgICAgICAgIC5iaWFzTnMgPSBjbG9ja1ZhbC5iaWFzX25zLAorICAgICAgICAuYmlhc1VuY2VydGFpbnR5TnMgPSBjbG9ja1ZhbC5iaWFzX3VuY2VydGFpbnR5X25zLAorICAgICAgICAuZHJpZnROc3BzID0gY2xvY2tWYWwuZHJpZnRfbnNwcywKKyAgICAgICAgLmRyaWZ0VW5jZXJ0YWludHlOc3BzID0gY2xvY2tWYWwuZHJpZnRfdW5jZXJ0YWludHlfbnNwcywKKyAgICAgICAgLmh3Q2xvY2tEaXNjb250aW51aXR5Q291bnQgPSBjbG9ja1ZhbC5od19jbG9ja19kaXNjb250aW51aXR5X2NvdW50CisgICAgfTsKKworICAgIGF1dG8gcmV0ID0gc0duc3NNZWFzdXJlQ2JJZmFjZS0+R25zc01lYXN1cmVtZW50Q2IoZ25zc0RhdGEpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCisvKgorICogVGhlIGNvZGUgaW4gdGhlIGZvbGxvd2luZyBtZXRob2QgaGFzIGJlZW4gbW92ZWQgaGVyZSBmcm9tIEduc3NMb2NhdGlvblByb3ZpZGVyLgorICogSXQgY29udmVydHMgR3BzRGF0YSB0byBHbnNzRGF0YS4gVGhpcyBjb2RlIGlzIG5vIGxvbmdlciByZXF1aXJlZCBpbgorICogR25zc0xvY2F0aW9uUHJvdmlkZXIgc2luY2UgR3BzRGF0YSBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgcGFydCBvZiB0aGUKKyAqIEdOU1MgaW50ZXJmYWNlLgorICovCit2b2lkIEduc3NNZWFzdXJlbWVudDo6Z3BzTWVhc3VyZW1lbnRDYihHcHNEYXRhKiBncHNEYXRhKSB7CisgICAgaWYgKHNHbnNzTWVhc3VyZUNiSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEdOU1NNZWFzdXJlbWVudCBDYWxsYmFjayBJbnRlcmZhY2UgY29uZmlndXJlZCBpbmNvcnJlY3RseSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChncHNEYXRhID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBJbnZhbGlkIEdwc0RhdGEgZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzTWVhc3VyZW1lbnRDYWxsYmFjazo6R25zc0RhdGEgZ25zc0RhdGE7CisgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRDb3VudCA9IHN0ZDo6bWluKGdwc0RhdGEtPm1lYXN1cmVtZW50X2NvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KEduc3NNYXg6OlNWU19DT1VOVCkpOworCisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGduc3NEYXRhLm1lYXN1cmVtZW50Q291bnQ7IGkrKykgeworICAgICAgICBhdXRvIGVudHJ5ID0gZ3BzRGF0YS0+bWVhc3VyZW1lbnRzW2ldOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uZmxhZ3MgPSBlbnRyeS5mbGFnczsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnN2aWQgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihlbnRyeS5wcm4pOworICAgICAgICBpZiAoZW50cnkucHJuID49IDEgJiYgZW50cnkucHJuIDw9IDMyKSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY29uc3RlbGxhdGlvbiA9IEduc3NDb25zdGVsbGF0aW9uVHlwZTo6R1BTOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNvbnN0ZWxsYXRpb24gPQorICAgICAgICAgICAgICAgICAgR25zc0NvbnN0ZWxsYXRpb25UeXBlOjpVTktOT1dOOworICAgICAgICB9CisKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnRpbWVPZmZzZXROcyA9IGVudHJ5LnRpbWVfb2Zmc2V0X25zOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uc3RhdGUgPSBlbnRyeS5zdGF0ZTsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnJlY2VpdmVkU3ZUaW1lSW5OcyA9IGVudHJ5LnJlY2VpdmVkX2dwc190b3dfbnM7CisgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5yZWNlaXZlZFN2VGltZVVuY2VydGFpbnR5SW5OcyA9CisgICAgICAgICAgICBlbnRyeS5yZWNlaXZlZF9ncHNfdG93X3VuY2VydGFpbnR5X25zOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY04wRGJIeiA9IGVudHJ5LmNfbjBfZGJoejsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLnBzZXVkb3JhbmdlUmF0ZU1wcyA9IGVudHJ5LnBzZXVkb3JhbmdlX3JhdGVfbXBzOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0ucHNldWRvcmFuZ2VSYXRlVW5jZXJ0YWludHlNcHMgPQorICAgICAgICAgICAgICAgIGVudHJ5LnBzZXVkb3JhbmdlX3JhdGVfdW5jZXJ0YWludHlfbXBzOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uYWNjdW11bGF0ZWREZWx0YVJhbmdlU3RhdGUgPQorICAgICAgICAgICAgICAgIGVudHJ5LmFjY3VtdWxhdGVkX2RlbHRhX3JhbmdlX3N0YXRlOworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uYWNjdW11bGF0ZWREZWx0YVJhbmdlTSA9CisgICAgICAgICAgICAgICAgZW50cnkuYWNjdW11bGF0ZWRfZGVsdGFfcmFuZ2VfbTsKKyAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmFjY3VtdWxhdGVkRGVsdGFSYW5nZVVuY2VydGFpbnR5TSA9CisgICAgICAgICAgICAgICAgZW50cnkuYWNjdW11bGF0ZWRfZGVsdGFfcmFuZ2VfdW5jZXJ0YWludHlfbTsKKworICAgICAgICBpZiAoZW50cnkuZmxhZ3MgJiBHTlNTX01FQVNVUkVNRU5UX0hBU19DQVJSSUVSX0ZSRVFVRU5DWSkgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNhcnJpZXJGcmVxdWVuY3lIeiA9IGVudHJ5LmNhcnJpZXJfZnJlcXVlbmN5X2h6OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNhcnJpZXJGcmVxdWVuY3lIeiA9IDA7CisgICAgICAgIH0KKworICAgICAgICBpZiAoZW50cnkuZmxhZ3MgJiBHTlNTX01FQVNVUkVNRU5UX0hBU19DQVJSSUVSX1BIQVNFKSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uY2FycmllclBoYXNlID0gZW50cnkuY2Fycmllcl9waGFzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5jYXJyaWVyUGhhc2UgPSAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGVudHJ5LmZsYWdzICYgR05TU19NRUFTVVJFTUVOVF9IQVNfQ0FSUklFUl9QSEFTRV9VTkNFUlRBSU5UWSkgeworICAgICAgICAgICAgZ25zc0RhdGEubWVhc3VyZW1lbnRzW2ldLmNhcnJpZXJQaGFzZVVuY2VydGFpbnR5ID0gZW50cnkuY2Fycmllcl9waGFzZV91bmNlcnRhaW50eTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGduc3NEYXRhLm1lYXN1cmVtZW50c1tpXS5jYXJyaWVyUGhhc2VVbmNlcnRhaW50eSA9IDA7CisgICAgICAgIH0KKworICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0ubXVsdGlwYXRoSW5kaWNhdG9yID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s6Okduc3NNdWx0aXBhdGhJbmRpY2F0b3I+KAorICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkubXVsdGlwYXRoX2luZGljYXRvcik7CisKKyAgICAgICAgaWYgKGVudHJ5LmZsYWdzICYgR05TU19NRUFTVVJFTUVOVF9IQVNfU05SKSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uc25yRGIgPSBlbnRyeS5zbnJfZGI7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBnbnNzRGF0YS5tZWFzdXJlbWVudHNbaV0uc25yRGIgPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byBjbG9ja1ZhbCA9IGdwc0RhdGEtPmNsb2NrOworICAgIHN0YXRpYyB1aW50MzJfdCBkaXNjb250aW51aXR5X2NvdW50X3RvX2hhbmRsZV9vbGRfY2xvY2tfdHlwZSA9IDA7CisgICAgYXV0byBmbGFncyA9IGNsb2NrVmFsLmZsYWdzOworCisgICAgZ25zc0RhdGEuY2xvY2subGVhcFNlY29uZCA9IGNsb2NrVmFsLmxlYXBfc2Vjb25kOworICAgIC8qCisgICAgICogR25zc0Nsb2NrIG9ubHkgc3VwcG9ydHMgdGhlIG1vcmUgZWZmZWN0aXZlIEhXX0NMT0NLIHR5cGUsIHNvIHR5cGUKKyAgICAgKiBoYW5kbGluZyBhbmQgZG9jdW1lbnRhdGlvbiBjb21wbGV4aXR5IGhhcyBiZWVuIHJlbW92ZWQuICBUbyBjb252ZXJ0IHRoZQorICAgICAqIG9sZCBHUFNfQ0xPQ0sgdHlwZXMgKGFjdGl2ZSBvbmx5IGluIGEgbGltaXRlZCBudW1iZXIgb2Ygb2xkZXIgZGV2aWNlcyksCisgICAgICogdGhlIEdQUyB0aW1lIGluZm9ybWF0aW9uIGlzIGhhbmRsZWQgYXMgYW4gYWx3YXlzIGRpc2NvbnRpbnVvdXMgSFcgY2xvY2ssCisgICAgICogd2l0aCB0aGUgR1BTIHRpbWUgaW5mb3JtYXRpb24gcHV0IGludG8gdGhlIGZ1bGxfYmlhc19ucyBpbnN0ZWFkIC0gc28gdGhhdAorICAgICAqIHRpbWVfbnMgLSBmdWxsX2JpYXNfbnMgPSBsb2NhbCBlc3RpbWF0ZSBvZiBHUFMgdGltZS4gQWRkaXRpb25hbGx5LCB0aGUKKyAgICAgKiBzaWduIG9mIGZ1bGxfYmlhc19ucyBhbmQgYmlhc19ucyBoYXMgZmxpcHBlZCBiZXR3ZWVuIEdwc0Nsb2NrICYKKyAgICAgKiBHbnNzQ2xvY2ssIHNvIHRoYXQgaXMgYWxzbyBoYW5kbGVkIGJlbG93LgorICAgICAqLworICAgIHN3aXRjaCAoY2xvY2tWYWwudHlwZSkgeworICAgICAgICBjYXNlIEdQU19DTE9DS19UWVBFX1VOS05PV046CisgICAgICAgICAgICAvLyBDbG9jayB0eXBlIHVuc3VwcG9ydGVkLgorICAgICAgICAgICAgQUxPR0UoIlVua25vd24gY2xvY2sgdHlwZSBwcm92aWRlZC4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEdQU19DTE9DS19UWVBFX0xPQ0FMX0hXX1RJTUU6CisgICAgICAgICAgICAvLyBBbHJlYWR5IGxvY2FsIGhhcmR3YXJlIHRpbWUuIE5vIG5lZWQgdG8gZG8gYW55dGhpbmcuCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHUFNfQ0xPQ0tfVFlQRV9HUFNfVElNRToKKyAgICAgICAgICAgIC8vIEdQUyB0aW1lLCBuZWVkIHRvIGNvbnZlcnQuCisgICAgICAgICAgICBmbGFncyB8PSBHUFNfQ0xPQ0tfSEFTX0ZVTExfQklBUzsKKyAgICAgICAgICAgIGNsb2NrVmFsLmZ1bGxfYmlhc19ucyA9IGNsb2NrVmFsLnRpbWVfbnM7CisgICAgICAgICAgICBjbG9ja1ZhbC50aW1lX25zID0gMDsKKyAgICAgICAgICAgIGduc3NEYXRhLmNsb2NrLmh3Q2xvY2tEaXNjb250aW51aXR5Q291bnQgPQorICAgICAgICAgICAgICAgICAgICBkaXNjb250aW51aXR5X2NvdW50X3RvX2hhbmRsZV9vbGRfY2xvY2tfdHlwZSsrOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgZ25zc0RhdGEuY2xvY2sudGltZU5zID0gY2xvY2tWYWwudGltZV9uczsKKyAgICBnbnNzRGF0YS5jbG9jay50aW1lVW5jZXJ0YWludHlOcyA9IGNsb2NrVmFsLnRpbWVfdW5jZXJ0YWludHlfbnM7CisgICAgLyoKKyAgICAgKiBEZWZpbml0aW9uIG9mIHNpZ24gZm9yIGZ1bGxfYmlhc19ucyAmIGJpYXNfbnMgaGFzIGJlZW4gY2hhbmdlZCBzaW5jZSBOLAorICAgICAqIHNvIGZsaXAgc2lnbnMgaGVyZS4KKyAgICAgKi8KKyAgICBnbnNzRGF0YS5jbG9jay5mdWxsQmlhc05zID0gLShjbG9ja1ZhbC5mdWxsX2JpYXNfbnMpOworICAgIGduc3NEYXRhLmNsb2NrLmJpYXNOcyA9IC0oY2xvY2tWYWwuYmlhc19ucyk7CisgICAgZ25zc0RhdGEuY2xvY2suYmlhc1VuY2VydGFpbnR5TnMgPSBjbG9ja1ZhbC5iaWFzX3VuY2VydGFpbnR5X25zOworICAgIGduc3NEYXRhLmNsb2NrLmRyaWZ0TnNwcyA9IGNsb2NrVmFsLmRyaWZ0X25zcHM7CisgICAgZ25zc0RhdGEuY2xvY2suZHJpZnRVbmNlcnRhaW50eU5zcHMgPSBjbG9ja1ZhbC5kcmlmdF91bmNlcnRhaW50eV9uc3BzOworICAgIGduc3NEYXRhLmNsb2NrLmduc3NDbG9ja0ZsYWdzID0gY2xvY2tWYWwuZmxhZ3M7CisKKyAgICBhdXRvIHJldCA9IHNHbnNzTWVhc3VyZUNiSWZhY2UtPkduc3NNZWFzdXJlbWVudENiKGduc3NEYXRhKTsKKyAgICBpZiAoIXJldC5pc09rKCkpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBVbmFibGUgdG8gaW52b2tlIGNhbGxiYWNrIiwgX19mdW5jX18pOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTWVhc3VyZW1lbnQgZm9sbG93LgorUmV0dXJuPEduc3NNZWFzdXJlbWVudDo6R25zc01lYXN1cmVtZW50U3RhdHVzPiBHbnNzTWVhc3VyZW1lbnQ6OnNldENhbGxiYWNrKAorICAgICAgICBjb25zdCBzcDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUduc3NNZWFzdXJlSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NNZWFzdXJlIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIEduc3NNZWFzdXJlbWVudFN0YXR1czo6RVJST1JfR0VORVJJQzsKKyAgICB9CisgICAgc0duc3NNZWFzdXJlQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEduc3NNZWFzdXJlbWVudDo6R25zc01lYXN1cmVtZW50U3RhdHVzPigKKyAgICAgICAgICAgIG1HbnNzTWVhc3VyZUlmYWNlLT5pbml0KCZzR25zc01lYXN1cmVtZW50Q2JzKSk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzTWVhc3VyZW1lbnQ6OmNsb3NlKCkgIHsKKyAgICBpZiAobUduc3NNZWFzdXJlSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3NNZWFzdXJlIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtR25zc01lYXN1cmVJZmFjZS0+Y2xvc2UoKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc01lYXN1cmVtZW50LmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NNZWFzdXJlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlmZjE0MzUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NNZWFzdXJlbWVudC5oCkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NNZWFzdXJlbWVudF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTWVhc3VyZW1lbnRfSF8KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NNZWFzdXJlbWVudC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc01lYXN1cmVtZW50OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NNZWFzdXJlbWVudENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCit1c2luZyBMZWdhY3lHbnNzRGF0YSA9IDo6R25zc0RhdGE7CisKKy8qCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEdOU1MgTWVhc3VyZW1lbnRzIHN1cHBvcnQuIEFsc28gY29udGFpbnMgd3JhcHBlciBtZXRob2RzIHRvIGFsbG93IG1ldGhvZHMKKyAqIGZyb20gSUduc3NNZWFzdXJlbWVudENhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIGltcGxlbWVudGF0aW9uIG9mIHRoZQorICogR05TUyBIQUwuCisgKi8KK3N0cnVjdCBHbnNzTWVhc3VyZW1lbnQgOiBwdWJsaWMgSUduc3NNZWFzdXJlbWVudCB7CisgICAgR25zc01lYXN1cmVtZW50KGNvbnN0IEdwc01lYXN1cmVtZW50SW50ZXJmYWNlKiBncHNNZWFzdXJlbWVudElmYWNlKTsKKworICAgIC8qCisgICAgICogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTWVhc3VyZW1lbnQgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElHbnNzTWVhc3VyZW1lbnQuaGFsLgorICAgICAqLworICAgIFJldHVybjxHbnNzTWVhc3VyZW1lbnRTdGF0dXM+IHNldENhbGxiYWNrKAorICAgICAgICBjb25zdCBzcDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGNsb3NlKCkgb3ZlcnJpZGU7CisKKyAgICAvKgorICAgICAqIENhbGxiYWNrIG1ldGhvZHMgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbCBHTlNTIEhBTCBieSB0aGUgZGVmYXVsdAorICAgICAqIGltcGxlbWVudGF0aW9uLiBUaGVzZSBtZXRob2RzIGFyZSBub3QgcGFydCBvZiB0aGUgSUduc3NNZWFzdXJlbWVudCBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyB2b2lkIGduc3NNZWFzdXJlbWVudENiKExlZ2FjeUduc3NEYXRhKiBkYXRhKTsKKyAgICAgLyoKKyAgICAgICogRGVwcmVjYXRlZCBjYWxsYmFjayBhZGRlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpdHkgZm9yIGRldmljZXMgdGhhdCBkbworICAgICAgKiBub3Qgc3VwcG9ydCBHbnNzRGF0YSBtZWFzdXJlbWVudHMuCisgICAgICAqLworICAgIHN0YXRpYyB2b2lkIGdwc01lYXN1cmVtZW50Q2IoR3BzRGF0YSogZGF0YSk7CisKKyAgICAvKgorICAgICAqIEhvbGRzIGZ1bmN0aW9uIHBvaW50ZXJzIHRvIHRoZSBjYWxsYmFjayBtZXRob2RzLgorICAgICAqLworICAgIHN0YXRpYyBHcHNNZWFzdXJlbWVudENhbGxiYWNrcyBzR25zc01lYXN1cmVtZW50Q2JzOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBHcHNNZWFzdXJlbWVudEludGVyZmFjZSogbUduc3NNZWFzdXJlSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc01lYXN1cmVtZW50Q2FsbGJhY2s+IHNHbnNzTWVhc3VyZUNiSWZhY2U7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgZ25zcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NNZWFzdXJlbWVudF9IXwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2UuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNTA5ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hBTF9HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJbnRlcmZhY2UiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlICJHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3NwPElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjaz4gR25zc05hdmlnYXRpb25NZXNzYWdlOjpzR25zc05hdmlnYXRpb25Nc2dDYklmYWNlID0gbnVsbHB0cjsKKworR3BzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFja3MgR25zc05hdmlnYXRpb25NZXNzYWdlOjpzR25zc05hdmlnYXRpb25NZXNzYWdlQ2IgPSB7CisgICAgLnNpemUgPSBzaXplb2YoR3BzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFja3MpLAorICAgIC5uYXZpZ2F0aW9uX21lc3NhZ2VfY2FsbGJhY2sgPSBudWxscHRyLAorICAgIC5nbnNzX25hdmlnYXRpb25fbWVzc2FnZV9jYWxsYmFjayA9IGduc3NOYXZpZ2F0aW9uTWVzc2FnZUNiCit9OworCitHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6Okduc3NOYXZpZ2F0aW9uTWVzc2FnZSgKKyAgICAgICAgY29uc3QgR3BzTmF2aWdhdGlvbk1lc3NhZ2VJbnRlcmZhY2UqIGdwc05hdmlnYXRpb25NZXNzYWdlSWZhY2UpIDoKKyAgICBtR25zc05hdmlnYXRpb25NZXNzYWdlSWZhY2UoZ3BzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSkge30KKwordm9pZCBHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6Omduc3NOYXZpZ2F0aW9uTWVzc2FnZUNiKExlZ2FjeUduc3NOYXZpZ2F0aW9uTWVzc2FnZSogbWVzc2FnZSkgeworICAgIGlmIChzR25zc05hdmlnYXRpb25Nc2dDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzTmF2aWdhdGlvbiBNZXNzYWdlIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1lc3NhZ2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXMsIHJlY2VpdmVkIGludmFsaWQgR25zc05hdmlnYXRpb25NZXNzYWdlIGZyb20gR05TUyBIQUwiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJR25zc05hdmlnYXRpb25NZXNzYWdlQ2FsbGJhY2s6Okduc3NOYXZpZ2F0aW9uTWVzc2FnZSBuYXZpZ2F0aW9uTXNnOworCisgICAgbmF2aWdhdGlvbk1zZy5zdmlkID0gbWVzc2FnZS0+c3ZpZDsKKyAgICBuYXZpZ2F0aW9uTXNnLnR5cGUgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrOjpHbnNzTmF2aWdhdGlvbk1lc3NhZ2VUeXBlPihtZXNzYWdlLT50eXBlKTsKKyAgICBuYXZpZ2F0aW9uTXNnLnN0YXR1cyA9IG1lc3NhZ2UtPnN0YXR1czsKKyAgICBuYXZpZ2F0aW9uTXNnLm1lc3NhZ2VJZCA9IG1lc3NhZ2UtPm1lc3NhZ2VfaWQ7CisgICAgbmF2aWdhdGlvbk1zZy5zdWJtZXNzYWdlSWQgPSBtZXNzYWdlLT5zdWJtZXNzYWdlX2lkOworICAgIG5hdmlnYXRpb25Nc2cuZGF0YS5zZXRUb0V4dGVybmFsKG1lc3NhZ2UtPmRhdGEsIG1lc3NhZ2UtPmRhdGFfbGVuZ3RoKTsKKworICAgIGF1dG8gcmV0ID0gc0duc3NOYXZpZ2F0aW9uTXNnQ2JJZmFjZS0+Z25zc05hdmlnYXRpb25NZXNzYWdlQ2IobmF2aWdhdGlvbk1zZyk7CisgICAgaWYgKCFyZXQuaXNPaygpKSB7CisgICAgICAgIEFMT0dFKCIlczogVW5hYmxlIHRvIGludm9rZSBjYWxsYmFjayIsIF9fZnVuY19fKTsKKyAgICB9Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlIGZvbGxvdy4KK1JldHVybjxHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6Okduc3NOYXZpZ2F0aW9uTWVzc2FnZVN0YXR1cz4gR25zc05hdmlnYXRpb25NZXNzYWdlOjpzZXRDYWxsYmFjaygKKyAgICAgICAgY29uc3Qgc3A8SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrPiYgY2FsbGJhY2spICB7CisgICAgaWYgKG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zc05hdmlnYXRpb25NZXNzYWdlIG5vdCBhdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBHbnNzTmF2aWdhdGlvbk1lc3NhZ2VTdGF0dXM6OkVSUk9SX0dFTkVSSUM7CisgICAgfQorCisgICAgc0duc3NOYXZpZ2F0aW9uTXNnQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEduc3NOYXZpZ2F0aW9uTWVzc2FnZTo6R25zc05hdmlnYXRpb25NZXNzYWdlU3RhdHVzPigKKyAgICAgICAgICAgIG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZS0+aW5pdCgmc0duc3NOYXZpZ2F0aW9uTWVzc2FnZUNiKSk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzTmF2aWdhdGlvbk1lc3NhZ2U6OmNsb3NlKCkgIHsKKyAgICBpZiAobUduc3NOYXZpZ2F0aW9uTWVzc2FnZUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzTmF2aWdhdGlvbk1lc3NhZ2Ugbm90IGF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtR25zc05hdmlnYXRpb25NZXNzYWdlSWZhY2UtPmNsb3NlKCk7CisgICAgfQorICAgIHJldHVybiBWb2lkKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NOYXZpZ2F0aW9uTWVzc2FnZS5oIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ODI4NTRiCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTmF2aWdhdGlvbk1lc3NhZ2VfSF8KKyNkZWZpbmUgYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc05hdmlnYXRpb25NZXNzYWdlX0hfCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2dwcy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NOYXZpZ2F0aW9uTWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKwordXNpbmcgTGVnYWN5R25zc05hdmlnYXRpb25NZXNzYWdlID0gOjpHbnNzTmF2aWdhdGlvbk1lc3NhZ2U7CisKKy8qCisgKiBFeHRlbmRlZCBpbnRlcmZhY2UgZm9yIEdOU1MgbmF2aWdhdGlvbiBtZXNzYWdlIHJlcG9ydGluZyBzdXBwb3J0LiBBbHNvIGNvbnRhaW5zIHdyYXBwZXIgbWV0aG9kcworICogdG8gYWxsb3cgbWV0aG9kcyBmcm9tIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjayBpbnRlcmZhY2UgdG8gYmUgcGFzc2VkIGludG8gdGhlIGNvbnZlbnRpb25hbAorICogaW1wbGVtZW50YXRpb24gb2YgdGhlIEdOU1MgSEFMLgorICovCitzdHJ1Y3QgR25zc05hdmlnYXRpb25NZXNzYWdlIDogcHVibGljIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgeworICAgIEduc3NOYXZpZ2F0aW9uTWVzc2FnZShjb25zdCBHcHNOYXZpZ2F0aW9uTWVzc2FnZUludGVyZmFjZSogZ3BzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSk7CisKKyAgICAvKgorICAgICAqIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc05hdmlnYXRpb25NZXNzYWdlIGZvbGxvdy4KKyAgICAgKiBUaGVzZSBkZWNsYXJhdGlvbnMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBJR25zc05hdmlnYXRpb25NZXNzYWdlLmhhbC4KKyAgICAgKi8KKyAgICBSZXR1cm48R25zc05hdmlnYXRpb25NZXNzYWdlU3RhdHVzPiBzZXRDYWxsYmFjaygKKyAgICAgICAgY29uc3Qgc3A8SUduc3NOYXZpZ2F0aW9uTWVzc2FnZUNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjbG9zZSgpIG92ZXJyaWRlOworCisgICAgLyoKKyAgICAgKiBDYWxsYmFjayBtZXRob2RzIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCisgICAgICogVGhlc2UgbWV0aG9kcyBhcmUgbm90IHBhcnQgb2YgdGhlIElHbnNzTmF2aWdhdGlvbk1lc3NhZ2UgYmFzZSBjbGFzcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgdm9pZCBnbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYihMZWdhY3lHbnNzTmF2aWdhdGlvbk1lc3NhZ2UqIG1lc3NhZ2UpOworCisgICAgLyoKKyAgICAgKiBIb2xkcyBmdW5jdGlvbiBwb2ludGVycyB0byB0aGUgY2FsbGJhY2sgbWV0aG9kcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgR3BzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFja3Mgc0duc3NOYXZpZ2F0aW9uTWVzc2FnZUNiOworIHByaXZhdGU6CisgICAgY29uc3QgR3BzTmF2aWdhdGlvbk1lc3NhZ2VJbnRlcmZhY2UqIG1HbnNzTmF2aWdhdGlvbk1lc3NhZ2VJZmFjZSA9IG51bGxwdHI7CisgICAgc3RhdGljIHNwPElHbnNzTmF2aWdhdGlvbk1lc3NhZ2VDYWxsYmFjaz4gc0duc3NOYXZpZ2F0aW9uTXNnQ2JJZmFjZTsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gYW5kcm9pZF9oYXJkd2FyZV9nbnNzX1YxXzBfR25zc05hdmlnYXRpb25NZXNzYWdlX0hfCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NOaS5jcHAgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOaS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE3ODkxZAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc05pLmNwcApAQCAtMCwwICsxLDEwOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR25zc0hBTF9HbnNzTmlJbnRlcmZhY2UiCisKKyNpbmNsdWRlICJHbnNzTmkuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IEduc3NOaTo6c1RocmVhZEZ1bmNBcmdzTGlzdDsKK3NwPElHbnNzTmlDYWxsYmFjaz4gR25zc05pOjpzR25zc05pQ2JJZmFjZSA9IG51bGxwdHI7Citib29sIEduc3NOaTo6c0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworCitHcHNOaUNhbGxiYWNrcyBHbnNzTmk6OnNHbnNzTmlDYiA9IHsKKyAgICAubm90aWZ5X2NiID0gbmlOb3RpZnlDYiwKKyAgICAuY3JlYXRlX3RocmVhZF9jYiA9IGNyZWF0ZVRocmVhZENiCit9OworCitHbnNzTmk6Okduc3NOaShjb25zdCBHcHNOaUludGVyZmFjZSogZ3BzTmlJZmFjZSkgOiBtR25zc05pSWZhY2UoZ3BzTmlJZmFjZSkgeworICAgIC8qIEVycm9yIG91dCBpZiBhbiBpbnN0YW5jZSBvZiB0aGUgaW50ZXJmYWNlIGFscmVhZHkgZXhpc3RzLiAqLworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoc0ludGVyZmFjZUV4aXN0cyk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IHRydWU7Cit9CisKK0duc3NOaTo6fkduc3NOaSgpIHsKKyAgICBzVGhyZWFkRnVuY0FyZ3NMaXN0LmNsZWFyKCk7CisgICAgc0ludGVyZmFjZUV4aXN0cyA9IGZhbHNlOworfQorCitwdGhyZWFkX3QgR25zc05pOjpjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKSB7CisgICAgcmV0dXJuIGNyZWF0ZVB0aHJlYWQobmFtZSwgc3RhcnQsIGFyZywgJnNUaHJlYWRGdW5jQXJnc0xpc3QpOworfQorCit2b2lkIEduc3NOaTo6bmlOb3RpZnlDYihHcHNOaU5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKSB7CisgICAgaWYgKHNHbnNzTmlDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIE5JIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG5vdGlmaWNhdGlvbiA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogSW52YWxpZCBHcHNOb3RpZmljYXRpb24gY2FsbGJhY2sgZnJvbSBHTlNTIEhBTCIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElHbnNzTmlDYWxsYmFjazo6R25zc05pTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbkduc3MgPSB7CisgICAgICAgIC5ub3RpZmljYXRpb25JZCA9ICBub3RpZmljYXRpb24tPm5vdGlmaWNhdGlvbl9pZCwKKyAgICAgICAgLm5pVHlwZSA9IHN0YXRpY19jYXN0PElHbnNzTmlDYWxsYmFjazo6R25zc05pVHlwZT4obm90aWZpY2F0aW9uLT5uaV90eXBlKSwKKyAgICAgICAgLm5vdGlmeUZsYWdzID0gbm90aWZpY2F0aW9uLT5ub3RpZnlfZmxhZ3MsCisgICAgICAgIC50aW1lb3V0U2VjID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG5vdGlmaWNhdGlvbi0+dGltZW91dCksCisgICAgICAgIC5kZWZhdWx0UmVzcG9uc2UgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElHbnNzTmlDYWxsYmFjazo6R25zc1VzZXJSZXNwb25zZVR5cGU+KG5vdGlmaWNhdGlvbi0+ZGVmYXVsdF9yZXNwb25zZSksCisgICAgICAgIC5yZXF1ZXN0b3JJZCA9IG5vdGlmaWNhdGlvbi0+cmVxdWVzdG9yX2lkLAorICAgICAgICAubm90aWZpY2F0aW9uTWVzc2FnZSA9IG5vdGlmaWNhdGlvbi0+dGV4dCwKKyAgICAgICAgLnJlcXVlc3RvcklkRW5jb2RpbmcgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElHbnNzTmlDYWxsYmFjazo6R25zc05pRW5jb2RpbmdUeXBlPihub3RpZmljYXRpb24tPnJlcXVlc3Rvcl9pZF9lbmNvZGluZyksCisgICAgICAgIC5ub3RpZmljYXRpb25JZEVuY29kaW5nID0KKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxJR25zc05pQ2FsbGJhY2s6Okduc3NOaUVuY29kaW5nVHlwZT4obm90aWZpY2F0aW9uLT50ZXh0X2VuY29kaW5nKQorICAgIH07CisKKyAgICBhdXRvIHJldCA9IHNHbnNzTmlDYklmYWNlLT5uaU5vdGlmeUNiKG5vdGlmaWNhdGlvbkduc3MpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NOaSBmb2xsb3cuCitSZXR1cm48dm9pZD4gR25zc05pOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc05pQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUduc3NOaUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICBBTE9HRSgiJXM6IEduc3NOaSBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBzR25zc05pQ2JJZmFjZSA9IGNhbGxiYWNrOworCisgICAgbUduc3NOaUlmYWNlLT5pbml0KCZzR25zc05pQ2IpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHbnNzTmk6OnJlc3BvbmQoaW50MzJfdCBub3RpZklkLCBJR25zc05pQ2FsbGJhY2s6Okduc3NVc2VyUmVzcG9uc2VUeXBlIHVzZXJSZXNwb25zZSkgIHsKKyAgICBpZiAobUduc3NOaUlmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHbnNzTmkgaW50ZXJmYWNlIGlzIHVuYXZhaWxhYmxlIiwgX19mdW5jX18pOworICAgIH0gZWxzZSB7CisgICAgICAgIG1HbnNzTmlJZmFjZS0+cmVzcG9uZChub3RpZklkLCBzdGF0aWNfY2FzdDxHcHNVc2VyUmVzcG9uc2VUeXBlPih1c2VyUmVzcG9uc2UpKTsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc05pLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOaS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlODUwYjEKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NOaS5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIGFuZHJvaWRfaGFyZHdhcmVfZ25zc19WMV8wX0duc3NOaV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTmlfSF8KKworI2luY2x1ZGUgPFRocmVhZENyZWF0aW9uV3JhcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3NOaS5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvZ3BzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc05pOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NOaUNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvKgorICogRXh0ZW5kZWQgaW50ZXJmYWNlIGZvciBOZXR3b3JrLWluaXRpYXRlZCAoTkkpIHN1cHBvcnQuIFRoaXMgaW50ZXJmYWNlIGlzIHVzZWQgdG8gcmVzcG9uZCB0bworICogTkkgbm90aWZpY2F0aW9ucyBvcmlnaW5hdGluZyBmcm9tIHRoZSBIQUwuIEFsc28gY29udGFpbnMgd3JhcHBlciBtZXRob2RzIHRvIGFsbG93IG1ldGhvZHMgZnJvbQorICogSUduc3NOaUNhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBHTlNTIEhBTC4KKyAqLworc3RydWN0IEduc3NOaSA6IHB1YmxpYyBJR25zc05pIHsKKyAgICBHbnNzTmkoY29uc3QgR3BzTmlJbnRlcmZhY2UqIGdwc05pSWZhY2UpOworICAgIH5HbnNzTmkoKTsKKworICAgIC8qCisgICAgICogTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTmkgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElHbnNzTmkuaGFsLgorICAgICAqLworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJR25zc05pQ2FsbGJhY2s+JiBjYWxsYmFjaykgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHJlc3BvbmQoaW50MzJfdCBub3RpZklkLAorICAgICAgICAgICAgICAgICAgICAgICAgIElHbnNzTmlDYWxsYmFjazo6R25zc1VzZXJSZXNwb25zZVR5cGUgdXNlclJlc3BvbnNlKSBvdmVycmlkZTsKKworICAgIC8qCisgICAgICogQ2FsbGJhY2sgbWV0aG9kcyB0byBiZSBwYXNzZWQgaW50byB0aGUgY29udmVudGlvbmFsIEdOU1MgSEFMIGJ5IHRoZSBkZWZhdWx0CisgICAgICogaW1wbGVtZW50YXRpb24uIFRoZXNlIG1ldGhvZHMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBJR25zc05pIGJhc2UgY2xhc3MuCisgICAgICovCisgICAgc3RhdGljIHB0aHJlYWRfdCBjcmVhdGVUaHJlYWRDYihjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnKTsKKyAgICBzdGF0aWMgdm9pZCBuaU5vdGlmeUNiKEdwc05pTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pOworCisgICAgLyoKKyAgICAgKiBIb2xkcyBmdW5jdGlvbiBwb2ludGVycyB0byB0aGUgY2FsbGJhY2sgbWV0aG9kcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgR3BzTmlDYWxsYmFja3Mgc0duc3NOaUNiOworCisgcHJpdmF0ZToKKyAgICBjb25zdCBHcHNOaUludGVyZmFjZSogbUduc3NOaUlmYWNlID0gbnVsbHB0cjsKKyAgICBzdGF0aWMgc3A8SUduc3NOaUNhbGxiYWNrPiBzR25zc05pQ2JJZmFjZTsKKyAgICBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gc1RocmVhZEZ1bmNBcmdzTGlzdDsKKyAgICBzdGF0aWMgYm9vbCBzSW50ZXJmYWNlRXhpc3RzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzTmlfSF8KZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc1V0aWxzLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1V0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOTk1NmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9HbnNzVXRpbHMuY3BwCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiR25zc1V0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6R25zc0xvY2F0aW9uOworCitHbnNzTG9jYXRpb24gY29udmVydFRvR25zc0xvY2F0aW9uKEdwc0xvY2F0aW9uKiBsb2NhdGlvbikgeworICAgIEduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb24gPSB7fTsKKyAgICBpZiAobG9jYXRpb24gIT0gbnVsbHB0cikgeworICAgICAgICBnbnNzTG9jYXRpb24gPSB7CisgICAgICAgICAgICAvLyBCaXQgb3BlcmF0aW9uIEFORCB3aXRoIDFmIGJlbG93IGlzIG5lZWRlZCB0byBjbGVhciB2ZXJ0aWNhbCBhY2N1cmFjeSwKKyAgICAgICAgICAgIC8vIHNwZWVkIGFjY3VyYWN5IGFuZCBiZWFyaW5nIGFjY3VyYWN5IGZsYWdzIGFzIHNvbWUgdmVuZG9ycyBhcmUgZm91bmQKKyAgICAgICAgICAgIC8vIHRvIGJlIHNldHRpbmcgdGhlc2UgYml0cyBpbiBwcmUtQW5kcm9pZC1PIGRldmljZXMKKyAgICAgICAgICAgIC5nbnNzTG9jYXRpb25GbGFncyA9IHN0YXRpY19jYXN0PHVpbnQxNl90Pihsb2NhdGlvbi0+ZmxhZ3MgJiAweDFmKSwKKyAgICAgICAgICAgIC5sYXRpdHVkZURlZ3JlZXMgPSBsb2NhdGlvbi0+bGF0aXR1ZGUsCisgICAgICAgICAgICAubG9uZ2l0dWRlRGVncmVlcyA9IGxvY2F0aW9uLT5sb25naXR1ZGUsCisgICAgICAgICAgICAuYWx0aXR1ZGVNZXRlcnMgPSBsb2NhdGlvbi0+YWx0aXR1ZGUsCisgICAgICAgICAgICAuc3BlZWRNZXRlcnNQZXJTZWMgPSBsb2NhdGlvbi0+c3BlZWQsCisgICAgICAgICAgICAuYmVhcmluZ0RlZ3JlZXMgPSBsb2NhdGlvbi0+YmVhcmluZywKKyAgICAgICAgICAgIC5ob3Jpem9udGFsQWNjdXJhY3lNZXRlcnMgPSBsb2NhdGlvbi0+YWNjdXJhY3ksCisgICAgICAgICAgICAvLyBPbGRlciBjaGlwc2V0cyBkbyBub3QgcHJvdmlkZSB0aGUgZm9sbG93aW5nIDMgZmllbGRzLCBoZW5jZSB0aGUgZmxhZ3MKKyAgICAgICAgICAgIC8vIEhBU19WRVJUSUNBTF9BQ0NVUkFDWSwgSEFTX1NQRUVEX0FDQ1VSQUNZIGFuZCBIQVNfQkVBUklOR19BQ0NVUkFDWSBhcmUKKyAgICAgICAgICAgIC8vIG5vdCBzZXQgYW5kIHRoZSBmaWVsZCBhcmUgc2V0IHRvIHplcm9zLgorICAgICAgICAgICAgLnZlcnRpY2FsQWNjdXJhY3lNZXRlcnMgPSAwLAorICAgICAgICAgICAgLnNwZWVkQWNjdXJhY3lNZXRlcnNQZXJTZWNvbmQgPSAwLAorICAgICAgICAgICAgLmJlYXJpbmdBY2N1cmFjeURlZ3JlZXMgPSAwLAorICAgICAgICAgICAgLnRpbWVzdGFtcCA9IGxvY2F0aW9uLT50aW1lc3RhbXAKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICByZXR1cm4gZ25zc0xvY2F0aW9uOworfQorCitHbnNzTG9jYXRpb24gY29udmVydFRvR25zc0xvY2F0aW9uKEZscExvY2F0aW9uKiBsb2NhdGlvbikgeworICAgIEduc3NMb2NhdGlvbiBnbnNzTG9jYXRpb24gPSB7fTsKKyAgICBpZiAobG9jYXRpb24gIT0gbnVsbHB0cikgeworICAgICAgICBnbnNzTG9jYXRpb24gPSB7CisgICAgICAgICAgICAvLyBCaXQgbWFzayBhcHBsaWVkIChhbmQgMCdzIGJlbG93KSBmb3Igc2FtZSByZWFzb24gYXMgYWJvdmUgd2l0aCBHcHNMb2NhdGlvbgorICAgICAgICAgICAgLmduc3NMb2NhdGlvbkZsYWdzID0gc3RhdGljX2Nhc3Q8dWludDE2X3Q+KGxvY2F0aW9uLT5mbGFncyAmIDB4MWYpLAorICAgICAgICAgICAgLmxhdGl0dWRlRGVncmVlcyA9IGxvY2F0aW9uLT5sYXRpdHVkZSwKKyAgICAgICAgICAgIC5sb25naXR1ZGVEZWdyZWVzID0gbG9jYXRpb24tPmxvbmdpdHVkZSwKKyAgICAgICAgICAgIC5hbHRpdHVkZU1ldGVycyA9IGxvY2F0aW9uLT5hbHRpdHVkZSwKKyAgICAgICAgICAgIC5zcGVlZE1ldGVyc1BlclNlYyA9IGxvY2F0aW9uLT5zcGVlZCwKKyAgICAgICAgICAgIC5iZWFyaW5nRGVncmVlcyA9IGxvY2F0aW9uLT5iZWFyaW5nLAorICAgICAgICAgICAgLmhvcml6b250YWxBY2N1cmFjeU1ldGVycyA9IGxvY2F0aW9uLT5hY2N1cmFjeSwKKyAgICAgICAgICAgIC52ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzID0gMCwKKyAgICAgICAgICAgIC5zcGVlZEFjY3VyYWN5TWV0ZXJzUGVyU2Vjb25kID0gMCwKKyAgICAgICAgICAgIC5iZWFyaW5nQWNjdXJhY3lEZWdyZWVzID0gMCwKKyAgICAgICAgICAgIC50aW1lc3RhbXAgPSBsb2NhdGlvbi0+dGltZXN0YW1wCisgICAgICAgIH07CisgICAgfQorCisgICAgcmV0dXJuIGduc3NMb2NhdGlvbjsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2duc3MvMS4wL2RlZmF1bHQvR25zc1V0aWxzLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4ZDRiMmQKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NVdGlscy5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzVXRpbF9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzVXRpbF9IXworCisjaW5jbHVkZSA8aGFyZHdhcmUvZnVzZWRfbG9jYXRpb24uaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL3R5cGVzLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ25zcyB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvKgorICogVGhpcyBtZXRob2QgY29udmVydHMgYSBHcHNMb2NhdGlvbiBzdHJ1Y3QgdG8gYSBHbnNzTG9jYXRpb24KKyAqIHN0cnVjdC4KKyAqLworR25zc0xvY2F0aW9uIGNvbnZlcnRUb0duc3NMb2NhdGlvbihHcHNMb2NhdGlvbiogbG9jYXRpb24pOworCisvKgorICogVGhpcyBtZXRob2QgY29udmVydHMgYW4gRmxwTG9jYXRpb24gc3RydWN0IHRvIGEgR25zc0xvY2F0aW9uCisgKiBzdHJ1Y3QuCisgKi8KK0duc3NMb2NhdGlvbiBjb252ZXJ0VG9HbnNzTG9jYXRpb24oRmxwTG9jYXRpb24qIGxvY2F0aW9uKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NYdHJhLmNwcCBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1h0cmEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxMjRjZTEKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NYdHJhLmNwcApAQCAtMCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJHbnNzSEFMX0duc3NYdHJhSW50ZXJmYWNlIgorCisjaW5jbHVkZSAiR25zc1h0cmEuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBnbnNzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0ZDo6dmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxUaHJlYWRGdW5jQXJncz4+IEduc3NYdHJhOjpzVGhyZWFkRnVuY0FyZ3NMaXN0Oworc3A8SUduc3NYdHJhQ2FsbGJhY2s+IEduc3NYdHJhOjpzR25zc1h0cmFDYklmYWNlID0gbnVsbHB0cjsKK2Jvb2wgR25zc1h0cmE6OnNJbnRlcmZhY2VFeGlzdHMgPSBmYWxzZTsKKworR3BzWHRyYUNhbGxiYWNrcyBHbnNzWHRyYTo6c0duc3NYdHJhQ2IgPSB7CisgICAgLmRvd25sb2FkX3JlcXVlc3RfY2IgPSBnbnNzWHRyYURvd25sb2FkUmVxdWVzdENiLAorICAgIC5jcmVhdGVfdGhyZWFkX2NiID0gY3JlYXRlVGhyZWFkQ2IsCit9OworCitHbnNzWHRyYTo6fkduc3NYdHJhKCkgeworICAgIHNUaHJlYWRGdW5jQXJnc0xpc3QuY2xlYXIoKTsKKyAgICBzSW50ZXJmYWNlRXhpc3RzID0gZmFsc2U7Cit9CisKK3B0aHJlYWRfdCBHbnNzWHRyYTo6Y3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZykgeworICAgIHJldHVybiBjcmVhdGVQdGhyZWFkKG5hbWUsIHN0YXJ0LCBhcmcsICZzVGhyZWFkRnVuY0FyZ3NMaXN0KTsKK30KKworR25zc1h0cmE6Okduc3NYdHJhKGNvbnN0IEdwc1h0cmFJbnRlcmZhY2UqIHh0cmFJZmFjZSkgOiBtR25zc1h0cmFJZmFjZSh4dHJhSWZhY2UpIHsKKyAgICAvKiBFcnJvciBvdXQgaWYgYW4gaW5zdGFuY2Ugb2YgdGhlIGludGVyZmFjZSBhbHJlYWR5IGV4aXN0cy4gKi8KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKHNJbnRlcmZhY2VFeGlzdHMpOworICAgIHNJbnRlcmZhY2VFeGlzdHMgPSB0cnVlOworfQorCit2b2lkIEduc3NYdHJhOjpnbnNzWHRyYURvd25sb2FkUmVxdWVzdENiKCkgeworICAgIGlmIChzR25zc1h0cmFDYklmYWNlID09IG51bGxwdHIpIHsKKyAgICAgICAgQUxPR0UoIiVzOiBHTlNTIENhbGxiYWNrIEludGVyZmFjZSBjb25maWd1cmVkIGluY29ycmVjdGx5IiwgX19mdW5jX18pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byByZXQgPSBzR25zc1h0cmFDYklmYWNlLT5kb3dubG9hZFJlcXVlc3RDYigpOworICAgIGlmICghcmV0LmlzT2soKSkgeworICAgICAgICBBTE9HRSgiJXM6IFVuYWJsZSB0byBpbnZva2UgY2FsbGJhY2siLCBfX2Z1bmNfXyk7CisgICAgfQorfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NYdHJhIGZvbGxvdy4KK1JldHVybjxib29sPiBHbnNzWHRyYTo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SUduc3NYdHJhQ2FsbGJhY2s+JiBjYWxsYmFjaykgIHsKKyAgICBpZiAobUduc3NYdHJhSWZhY2UgPT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiJXM6IEduc3MgWHRyYSBpbnRlcmZhY2UgaXMgdW5hdmFpbGFibGUiLCBfX2Z1bmNfXyk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzR25zc1h0cmFDYklmYWNlID0gY2FsbGJhY2s7CisKKyAgICByZXR1cm4gKG1HbnNzWHRyYUlmYWNlLT5pbml0KCZzR25zc1h0cmFDYikgPT0gMCk7Cit9CisKK1JldHVybjxib29sPiBHbnNzWHRyYTo6aW5qZWN0WHRyYURhdGEoY29uc3QgaGlkbF9zdHJpbmcmIHh0cmFEYXRhKSAgeworICAgIGlmIChtR25zc1h0cmFJZmFjZSA9PSBudWxscHRyKSB7CisgICAgICAgIEFMT0dFKCIlczogR25zcyBYdHJhIGludGVyZmFjZSBpcyB1bmF2YWlsYWJsZSIsIF9fZnVuY19fKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGNoYXIqIGJ1ZiA9IG5ldyBjaGFyW3h0cmFEYXRhLnNpemUoKV07CisgICAgY29uc3QgY2hhciogZGF0YSA9IHh0cmFEYXRhLmNfc3RyKCk7CisKKyAgICBtZW1jcHkoYnVmLCBkYXRhLCB4dHJhRGF0YS5zaXplKCkpOworCisgICAgaW50IHJldCA9IG1HbnNzWHRyYUlmYWNlLT5pbmplY3RfeHRyYV9kYXRhKGJ1ZiwgeHRyYURhdGEuc2l6ZSgpKTsKKyAgICBkZWxldGVbXSBidWY7CisgICAgcmV0dXJuIChyZXQgPT0gMCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBnbnNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L0duc3NYdHJhLmggYi9nbnNzLzEuMC9kZWZhdWx0L0duc3NYdHJhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2EwNzMzYQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvR25zc1h0cmEuaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzWHRyYV9IXworI2RlZmluZSBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzWHRyYV9IXworCisjaW5jbHVkZSA8VGhyZWFkQ3JlYXRpb25XcmFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9nbnNzLzEuMC9JR25zc1h0cmEuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9ncHMuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGduc3MgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NYdHJhOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NYdHJhQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKy8qCisgKiBUaGlzIGludGVyZmFjZSBpcyB1c2VkIGJ5IHRoZSBHTlNTIEhBTCB0byByZXF1ZXN0IHRoZSBmcmFtZXdvcmsgdG8gZG93bmxvYWQgWFRSQSBkYXRhLgorICogQWxzbyBjb250YWlucyB3cmFwcGVyIG1ldGhvZHMgdG8gYWxsb3cgbWV0aG9kcyBmcm9tIElHbnNzWHRyYUNhbGxiYWNrIGludGVyZmFjZSB0byBiZSBwYXNzZWQKKyAqIGludG8gdGhlIGNvbnZlbnRpb25hbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgR05TUyBIQUwuCisgKi8KK3N0cnVjdCBHbnNzWHRyYSA6IHB1YmxpYyBJR25zc1h0cmEgeworICAgIEduc3NYdHJhKGNvbnN0IEdwc1h0cmFJbnRlcmZhY2UqIHh0cmFJZmFjZSk7CisgICAgfkduc3NYdHJhKCk7CisKKyAgICAvKgorICAgICAqIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc1h0cmEgZm9sbG93LgorICAgICAqIFRoZXNlIGRlY2xhcmF0aW9ucyB3ZXJlIGdlbmVyYXRlZCBmcm9tIElHbnNzWHRyYS5oYWwuCisgICAgICovCisgICAgUmV0dXJuPGJvb2w+IHNldENhbGxiYWNrKGNvbnN0IHNwPElHbnNzWHRyYUNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBpbmplY3RYdHJhRGF0YShjb25zdCBoaWRsX3N0cmluZyYgeHRyYURhdGEpIG92ZXJyaWRlOworCisgICAgLyoKKyAgICAgKiBDYWxsYmFjayBtZXRob2RzIHRvIGJlIHBhc3NlZCBpbnRvIHRoZSBjb252ZW50aW9uYWwgR05TUyBIQUwgYnkgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24uCisgICAgICogVGhlc2UgbWV0aG9kcyBhcmUgbm90IHBhcnQgb2YgdGhlIElHbnNzWHRyYSBiYXNlIGNsYXNzLgorICAgICAqLworICAgIHN0YXRpYyBwdGhyZWFkX3QgY3JlYXRlVGhyZWFkQ2IoY29uc3QgY2hhciogbmFtZSwgdm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZyk7CisgICAgc3RhdGljIHZvaWQgZ25zc1h0cmFEb3dubG9hZFJlcXVlc3RDYigpOworCisgICAgLyoKKyAgICAgKiBIb2xkcyBmdW5jdGlvbiBwb2ludGVycyB0byB0aGUgY2FsbGJhY2sgbWV0aG9kcy4KKyAgICAgKi8KKyAgICBzdGF0aWMgR3BzWHRyYUNhbGxiYWNrcyBzR25zc1h0cmFDYjsKKworIHByaXZhdGU6CisgICAgY29uc3QgR3BzWHRyYUludGVyZmFjZSogbUduc3NYdHJhSWZhY2UgPSBudWxscHRyOworICAgIHN0YXRpYyBzcDxJR25zc1h0cmFDYWxsYmFjaz4gc0duc3NYdHJhQ2JJZmFjZTsKKyAgICBzdGF0aWMgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gc1RocmVhZEZ1bmNBcmdzTGlzdDsKKyAgICBzdGF0aWMgYm9vbCBzSW50ZXJmYWNlRXhpc3RzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGduc3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBhbmRyb2lkX2hhcmR3YXJlX2duc3NfVjFfMF9HbnNzWHRyYV9IXwpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9UaHJlYWRDcmVhdGlvbldyYXBwZXIuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9UaHJlYWRDcmVhdGlvbldyYXBwZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTYzOGYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC9kZWZhdWx0L1RocmVhZENyZWF0aW9uV3JhcHBlci5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxUaHJlYWRDcmVhdGlvbldyYXBwZXIuaD4KKwordm9pZCogdGhyZWFkRnVuYyh2b2lkKiBhcmcpIHsKKyAgICBUaHJlYWRGdW5jQXJncyogdGhyZWFkQXJncyA9IHJlaW50ZXJwcmV0X2Nhc3Q8VGhyZWFkRnVuY0FyZ3MqPihhcmcpOworICAgIHRocmVhZEFyZ3MtPmZwdHIodGhyZWFkQXJncy0+YXJncyk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3B0aHJlYWRfdCBjcmVhdGVQdGhyZWFkKGNvbnN0IGNoYXIqIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqc3RhcnQpKHZvaWQqKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZywgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gKiBsaXN0QXJncykgeworICAgIHB0aHJlYWRfdCB0aHJlYWRJZDsKKyAgICBhdXRvIHRocmVhZEFyZ3MgPSBuZXcgVGhyZWFkRnVuY0FyZ3Moc3RhcnQsIGFyZyk7CisgICAgYXV0byBhcmdQdHIgPSBzdGQ6OnVuaXF1ZV9wdHI8VGhyZWFkRnVuY0FyZ3M+KHRocmVhZEFyZ3MpOworCisgICAgbGlzdEFyZ3MtPnB1c2hfYmFjayhzdGQ6Om1vdmUoYXJnUHRyKSk7CisKKyAgICBpbnQgcmV0ID0gcHRocmVhZF9jcmVhdGUoJnRocmVhZElkLCBudWxscHRyLCB0aHJlYWRGdW5jLCByZWludGVycHJldF9jYXN0PHZvaWQqPigKKyAgICAgICAgICAgIHRocmVhZEFyZ3MpKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgQUxPR0UoInB0aHJlYWQgY3JlYXRpb24gdW5zdWNjZXNzZnVsIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHRocmVhZF9zZXRuYW1lX25wKHRocmVhZElkLCBuYW1lKTsKKyAgICB9CisgICAgcmV0dXJuIHRocmVhZElkOworfQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9UaHJlYWRDcmVhdGlvbldyYXBwZXIuaCBiL2duc3MvMS4wL2RlZmF1bHQvVGhyZWFkQ3JlYXRpb25XcmFwcGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGYwYTllNAotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL2RlZmF1bHQvVGhyZWFkQ3JlYXRpb25XcmFwcGVyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HTlNTX1RIUkVBRENSRUFUSU9OV1JBUFBFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR05TU19USFJFQURDUkVBVElPTldSQVBQRVJfSAorCisjaW5jbHVkZSA8cHRocmVhZC5oPgorI2luY2x1ZGUgPHZlY3Rvcj4KKyNpbmNsdWRlIDxjdXRpbHMvbG9nLmg+CisKK3R5cGVkZWYgdm9pZCAoKnRocmVhZEVudHJ5RnVuYykodm9pZCogcmV0KTsKKworLyoKKyAqIFRoaXMgY2xhc3MgZmFjaWxpdGF0ZXMgY3JlYXRlVGhyZWFkQ2IgbWV0aG9kcyBpbiB2YXJpb3VzIEdOU1MgaW50ZXJmYWNlcyB0byB3cmFwCisgKiBwdGhyZWFkX2NyZWF0ZSgpIGZyb20gbGliYyBzaW5jZSBpdHMgZnVuY3Rpb24gc2lnbmF0dXJlIGRpZmZlcnMgZnJvbSB3aGF0IGlzIHJlcXVpcmVkIGJ5IHRoZQorICogY29udmVudGlvbmFsIEdOU1MgSEFMLiBUaGUgYXJndW1lbnRzIHBhc3NlZCB0byBwdGhyZWFkX2NyZWF0ZSgpIG5lZWQgdG8gYmUgb24gaGVhcCBhbmQgbm90IG9uCisgKiB0aGUgc3RhY2sgb2YgY3JlYXRlVGhyZWFkQ2IuCisgKi8KK3N0cnVjdCBUaHJlYWRGdW5jQXJncyB7CisgICAgVGhyZWFkRnVuY0FyZ3Modm9pZCAoKnN0YXJ0KSh2b2lkKiksIHZvaWQqIGFyZykgOiBmcHRyKHN0YXJ0KSwgYXJncyhhcmcpIHt9CisKKyAgICAvKiBwb2ludGVyIHRvIHRoZSBmdW5jdGlvbiBvZiB0eXBlIHZvaWQoKSh2b2lkKikgdGhhdCBuZWVkcyB0byBiZSB3cmFwcGVkICovCisgICAgdGhyZWFkRW50cnlGdW5jIGZwdHI7CisgICAgLyogYXJndW1lbnQgZm9yIGZwdHIgdG8gYmUgY2FsbGVkIHdpdGggKi8KKyAgICB2b2lkKiBhcmdzOworfTsKKworLyoKKyAqIFRoaXMgbWV0aG9kIGlzIHNpbXBseSBhIHdyYXBwZXIuIEl0IGlzIHJlcXVpcmVkIHNpbmNlIHB0aHJlYWRfY3JlYXRlKCkgcmVxdWlyZXMgYW4gZW50cnkKKyAqIGZ1bmN0aW9uIHBvaW50ZXIgb2YgdHlwZSB2b2lkKigpKHZvaWQqKSBhbmQgdGhlIEdOU1MgaGFsIHJlcXVpcmVzIGFzIGlucHV0IGEgZnVuY3Rpb24gcG9pbnRlciBvZgorICogdHlwZSB2b2lkKCkodm9pZCopLgorICovCit2b2lkKiB0aHJlYWRGdW5jKHZvaWQqIGFyZyk7CisKKy8qCisgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgY3JlYXRlVGhyZWFkQ2Igd2l0aCBhIHBvaW50ZXIgdG8gdGhlIHZlY3RvciB0aGF0CisgKiBob2xkcyB0aGUgcG9pbnRlcnMgdG8gdGhlIHRocmVhZCBhcmd1bWVudHMuIFRoZSBhcmcgYW5kIHN0YXJ0IHBhcmFtZXRlcnMgYXJlCisgKiBmaXJzdCB1c2VkIHRvIGNyZWF0ZSBhIFRocmVhZEZ1bmNBcmdzIG9iamVjdCB3aGljaCBpcyB0aGVuIHNhdmVkIGluIHRoZQorICogbGlzdEFyZ3MgcGFyYW1ldGVycy4gVGhlIGNyZWF0ZWQgVGhyZWFkRnVuY0FyZ3Mgb2JqZWN0IGlzIHRoZW4gdXNlZCB0byBpbnZva2UKKyAqIHRocmVhZEZ1bmMoKSBtZXRob2Qgd2hpY2ggaW4tdHVybiBpbnZva2VzIHB0aHJlYWRfY3JlYXRlLgorICovCitwdGhyZWFkX3QgY3JlYXRlUHRocmVhZChjb25zdCBjaGFyKiBuYW1lLCB2b2lkICgqc3RhcnQpKHZvaWQqKSwgdm9pZCogYXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFRocmVhZEZ1bmNBcmdzPj4gKiBsaXN0QXJncyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wLXNlcnZpY2UucmMgYi9nbnNzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjYzOGEzCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGduc3Nfc2VydmljZSAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmduc3NAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBtYWluCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0gZ3BzCmRpZmYgLS1naXQgYS9nbnNzLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvZ25zcy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzA0ZTdmCi0tLSAvZGV2L251bGwKKysrIGIvZ25zcy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDE3IEBACisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ25zcy8xLjAvSUduc3MuaD4KKworI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCisjaW5jbHVkZSA8YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3M7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICAvLyBUaGUgR05TUyBIQUwgbWF5IGNvbW11bmljYXRlIHRvIG90aGVyIHZlbmRvciBjb21wb25lbnRzIHZpYQorICAgIC8vIC9kZXYvdm5kYmluZGVyCisgICAgYW5kcm9pZDo6UHJvY2Vzc1N0YXRlOjppbml0V2l0aERyaXZlcigiL2Rldi92bmRiaW5kZXIiKTsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElHbnNzPigpOworfQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvdHlwZXMuaGFsIGIvZ25zcy8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMmM3NTYKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjA7CisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJHTlNTX01BWF8iKQorZW51bSBHbnNzTWF4IDogdWludDMyX3QgeworLyoqIE1heGltdW0gbnVtYmVyIG9mIFNWcyBmb3IgZ25zc1N2U3RhdHVzQ2IoKS4gKi8KKyAgICBTVlNfQ09VTlQgPSA2NCwKK307CisKKy8qKiBNaWxsaXNlY29uZHMgc2luY2UgSmFudWFyeSAxLCAxOTcwICovCit0eXBlZGVmIGludDY0X3QgR25zc1V0Y1RpbWU7CisKKy8qKgorICogQ29uc3RlbGxhdGlvbiB0eXBlIG9mIEduc3NTdkluZm8KKyAqLworCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iR05TU19DT05TVEVMTEFUSU9OXyIpCitlbnVtIEduc3NDb25zdGVsbGF0aW9uVHlwZSA6IHVpbnQ4X3QgeworICAgIFVOS05PV04gPSAwLAorICAgIEdQUyAgICAgPSAxLAorICAgIFNCQVMgICAgPSAyLAorICAgIEdMT05BU1MgPSAzLAorICAgIFFaU1MgICAgPSA0LAorICAgIEJFSURPVSAgPSA1LAorICAgIEdBTElMRU8gPSA2LAorfTsKKworLyoqIEJpdCBtYXNrIHRvIGluZGljYXRlIHdoaWNoIHZhbHVlcyBhcmUgdmFsaWQgaW4gYSBHbnNzTG9jYXRpb24gb2JqZWN0LiAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkdQU19MT0NBVElPTl8iKQorZW51bSBHbnNzTG9jYXRpb25GbGFncyA6IHVpbnQxNl90IHsKKyAgICAvKiogR25zc0xvY2F0aW9uIGhhcyB2YWxpZCBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlLiAqLworICAgIEhBU19MQVRfTE9ORyAgICAgICAgICAgICAgPSAweDAwMDEsCisgICAgLyoqIEduc3NMb2NhdGlvbiBoYXMgdmFsaWQgYWx0aXR1ZGUuICovCisgICAgSEFTX0FMVElUVURFICAgICAgICAgICAgICA9IDB4MDAwMiwKKyAgICAvKiogR25zc0xvY2F0aW9uIGhhcyB2YWxpZCBzcGVlZC4gKi8KKyAgICBIQVNfU1BFRUQgICAgICAgICAgICAgICAgID0gMHgwMDA0LAorICAgIC8qKiBHbnNzTG9jYXRpb24gaGFzIHZhbGlkIGJlYXJpbmcuICovCisgICAgSEFTX0JFQVJJTkcgICAgICAgICAgICAgICA9IDB4MDAwOCwKKyAgICAvKiogR3BzTG9jYXRpb24gaGFzIHZhbGlkIGhvcml6b250YWwgYWNjdXJhY3kuICovCisgICAgSEFTX0hPUklaT05UQUxfQUNDVVJBQ1kgICA9IDB4MDAxMCwKKyAgICAvKiogR3BzTG9jYXRpb24gaGFzIHZhbGlkIHZlcnRpY2FsIGFjY3VyYWN5LiAqLworICAgIEhBU19WRVJUSUNBTF9BQ0NVUkFDWSAgICAgPSAweDAwMjAsCisgICAgLyoqIEdwc0xvY2F0aW9uIGhhcyB2YWxpZCBzcGVlZCBhY2N1cmFjeS4gKi8KKyAgICBIQVNfU1BFRURfQUNDVVJBQ1kgICAgICAgID0gMHgwMDQwLAorICAgIC8qKiBHcHNMb2NhdGlvbiBoYXMgdmFsaWQgYmVhcmluZyBhY2N1cmFjeS4gKi8KKyAgICBIQVNfQkVBUklOR19BQ0NVUkFDWSAgICAgID0gMHgwMDgwCit9OworCisvKiogUmVwcmVzZW50cyBhIGxvY2F0aW9uLiAqLworc3RydWN0IEduc3NMb2NhdGlvbiB7CisgICAgLyoqIENvbnRhaW5zIEduc3NMb2NhdGlvbkZsYWdzIGJpdHMuICovCisgICAgYml0ZmllbGQ8R25zc0xvY2F0aW9uRmxhZ3M+IGduc3NMb2NhdGlvbkZsYWdzOworCisgICAgLyoqIFJlcHJlc2VudHMgbGF0aXR1ZGUgaW4gZGVncmVlcy4gKi8KKyAgICBkb3VibGUgbGF0aXR1ZGVEZWdyZWVzOworCisgICAgLyoqIFJlcHJlc2VudHMgbG9uZ2l0dWRlIGluIGRlZ3JlZXMuICovCisgICAgZG91YmxlIGxvbmdpdHVkZURlZ3JlZXM7CisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIGFsdGl0dWRlIGluIG1ldGVycyBhYm92ZSB0aGUgV0dTIDg0IHJlZmVyZW5jZSBlbGxpcHNvaWQuCisgICAgICovCisgICAgZG91YmxlIGFsdGl0dWRlTWV0ZXJzOworCisgICAgLyoqIFJlcHJlc2VudHMgc3BlZWQgaW4gbWV0ZXJzIHBlciBzZWNvbmQuICovCisgICAgZmxvYXQgc3BlZWRNZXRlcnNQZXJTZWM7CisKKyAgICAvKiogUmVwcmVzZW50cyBoZWFkaW5nIGluIGRlZ3JlZXMuICovCisgICAgZmxvYXQgYmVhcmluZ0RlZ3JlZXM7CisKKyAgICAvKioKKyAgICAqIFJlcHJlc2VudHMgZXhwZWN0ZWQgaG9yaXpvbnRhbCBwb3NpdGlvbiBhY2N1cmFjeSwgcmFkaWFsLCBpbiBtZXRlcnMKKyAgICAqICg2OCUgY29uZmlkZW5jZSkuCisgICAgKi8KKyAgICBmbG9hdCBob3Jpem9udGFsQWNjdXJhY3lNZXRlcnM7CisKKyAgICAvKioKKyAgICAqIFJlcHJlc2VudHMgZXhwZWN0ZWQgdmVydGljYWwgcG9zaXRpb24gYWNjdXJhY3kgaW4gbWV0ZXJzCisgICAgKiAoNjglIGNvbmZpZGVuY2UpLgorICAgICovCisgICAgZmxvYXQgdmVydGljYWxBY2N1cmFjeU1ldGVyczsKKworICAgIC8qKgorICAgICogUmVwcmVzZW50cyBleHBlY3RlZCBzcGVlZCBhY2N1cmFjeSBpbiBtZXRlciBwZXIgc2Vjb25kcworICAgICogKDY4JSBjb25maWRlbmNlKS4KKyAgICAqLworICAgIGZsb2F0IHNwZWVkQWNjdXJhY3lNZXRlcnNQZXJTZWNvbmQ7CisKKyAgICAvKioKKyAgICAqIFJlcHJlc2VudHMgZXhwZWN0ZWQgYmVhcmluZyBhY2N1cmFjeSBpbiBkZWdyZWVzCisgICAgKiAoNjglIGNvbmZpZGVuY2UpLgorICAgICovCisgICAgZmxvYXQgYmVhcmluZ0FjY3VyYWN5RGVncmVlczsKKworICAgIC8qKiBUaW1lc3RhbXAgZm9yIHRoZSBsb2NhdGlvbiBmaXguICovCisgICAgR25zc1V0Y1RpbWUgdGltZXN0YW1wOworfTsKZGlmZiAtLWdpdCBhL2duc3MvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9nbnNzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkOTYwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9nbnNzLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxHbnNzVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5nbnNzQDEuMCIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZ25zcy8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR25zc1YxXzBUYXJnZXRUZXN0LmNwcCBiL2duc3MvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmRlMzE3MQotLS0gL2Rldi9udWxsCisrKyBiL2duc3MvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw0NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbEduc3NWMV8wVGFyZ2V0VGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2duc3MvMS4wL0lHbnNzLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPG11dGV4PgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpHbnNzTG9jYXRpb247Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6R25zc0xvY2F0aW9uRmxhZ3M7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3M7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z25zczo6VjFfMDo6SUduc3NDYWxsYmFjazsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpnbnNzOjpWMV8wOjpJR25zc0RlYnVnOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6Omduc3M6OlYxXzA6OklHbnNzTWVhc3VyZW1lbnQ7Cit1c2luZyBhbmRyb2lkOjpzcDsKKworI2RlZmluZSBUSU1FT1VUX1NFQyAyICAvLyBmb3IgYmFzaWMgY29tbWFuZHMvcmVzcG9uc2VzCisKKy8vIGZvciBjb21tYW5kIGxpbmUgYXJndW1lbnQgb24gaG93IHN0cmljdGx5IHRvIHJ1biB0aGUgdGVzdAorYm9vbCBzQWdwc0lzUHJlc2VudCA9IGZhbHNlOyAgLy8gaWYgU1VQTCBvciBYVFJBIGFzc2lzdGFuY2UgYXZhaWxhYmxlCitib29sIHNTaWduYWxJc1dlYWsgPSBmYWxzZTsgIC8vIGlmIEdOU1Mgc2lnbmFscyBhcmUgd2VhayAoZS5nLiBsaWdodCBpbmRvb3IpCisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIEdOU1MgSEFMLgorY2xhc3MgR25zc0hhbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIC8vIENsZWFuIGJldHdlZW4gdGVzdHMKKyAgICBjYXBhYmlsaXRpZXNfY2FsbGVkX2NvdW50XyA9IDA7CisgICAgbG9jYXRpb25fY2FsbGVkX2NvdW50XyA9IDA7CisgICAgaW5mb19jYWxsZWRfY291bnRfID0gMDsKKworICAgIGduc3NfaGFsXyA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElHbnNzPigpOworICAgIEFTU0VSVF9ORShnbnNzX2hhbF8sIG51bGxwdHIpOworCisgICAgZ25zc19jYl8gPSBuZXcgR25zc0NhbGxiYWNrKCp0aGlzKTsKKyAgICBBU1NFUlRfTkUoZ25zc19jYl8sIG51bGxwdHIpOworCisgICAgYXV0byByZXN1bHQgPSBnbnNzX2hhbF8tPnNldENhbGxiYWNrKGduc3NfY2JfKTsKKyAgICBpZiAoIXJlc3VsdC5pc09rKCkpIHsKKyAgICAgIEFMT0dFKCJyZXN1bHQgb2YgZmFpbGVkIHNldENhbGxiYWNrICVzIiwgcmVzdWx0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgfQorCisgICAgQVNTRVJUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgICAgQVNTRVJUX1RSVUUocmVzdWx0KTsKKworICAgIC8qCisgICAgICogQXQgbGVhc3Qgb25lIGNhbGxiYWNrIHNob3VsZCB0cmlnZ2VyIC0gaXQgbWF5IGJlIGNhcGFiaWxpdGVzLCBvcgorICAgICAqIHN5c3RlbSBpbmZvIGZpcnN0LCBzbyB3YWl0IGFnYWluIGlmIGNhcGFiaWxpdGllcyBub3QgcmVjZWl2ZWQuCisgICAgICovCisgICAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KFRJTUVPVVRfU0VDKSk7CisgICAgaWYgKGNhcGFiaWxpdGllc19jYWxsZWRfY291bnRfID09IDApIHsKKyAgICAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdChUSU1FT1VUX1NFQykpOworICAgIH0KKworICAgIC8qCisgICAgICogR2VuZXJhbGx5IHNob3VsZCBiZSAxIGNhcGFiaWxpdGVzIGNhbGxiYWNrIC0KKyAgICAgKiBvciBwb3NzaWJseSAyIGluIHNvbWUgcmVjb3ZlcnkgY2FzZXMgKGRlZmF1bHQgY2FjaGVkICYgcmVmcmVzaGVkKQorICAgICAqLworICAgIEVYUEVDVF9HRShjYXBhYmlsaXRpZXNfY2FsbGVkX2NvdW50XywgMSk7CisgICAgRVhQRUNUX0xFKGNhcGFiaWxpdGllc19jYWxsZWRfY291bnRfLCAyKTsKKworICAgIC8qCisgICAgICogQ2xlYXIgbm90aWZ5L3dhaXRpbmcgY291bnRlciwgYWxsb3dpbmcgdXAgdGlsbCB0aGUgdGltZW91dCBhZnRlcgorICAgICAqIHRoZSBsYXN0IHJlcGx5IGZvciBmaW5hbCBzdGFydHVwIG1lc3NhZ2VzIHRvIGFycml2ZSAoZXNwLiBzeXN0ZW0KKyAgICAgKiBpbmZvLikKKyAgICAgKi8KKyAgICB3aGlsZSAod2FpdChUSU1FT1VUX1NFQykgPT0gc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQpIHsKKyAgICB9CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgaWYgKGduc3NfaGFsXyAhPSBudWxscHRyKSB7CisgICAgICBnbnNzX2hhbF8tPmNsZWFudXAoKTsKKyAgICB9CisgIH0KKworICAvKiBVc2VkIGFzIGEgbWVjaGFuaXNtIHRvIGluZm9ybSB0aGUgdGVzdCB0aGF0IGEgY2FsbGJhY2sgaGFzIG9jY3VycmVkICovCisgIGlubGluZSB2b2lkIG5vdGlmeSgpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXR4Xyk7CisgICAgY291bnQrKzsKKyAgICBjdl8ubm90aWZ5X29uZSgpOworICB9CisKKyAgLyogVGVzdCBjb2RlIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8gd2FpdCBmb3IgYSBjYWxsYmFjayAqLworICBpbmxpbmUgc3RkOjpjdl9zdGF0dXMgd2FpdChpbnQgdGltZW91dFNlY29uZHMpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXR4Xyk7CisKKyAgICBzdGQ6OmN2X3N0YXR1cyBzdGF0dXMgPSBzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dDsKKyAgICBhdXRvIG5vdyA9IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6Om5vdygpOworICAgIHdoaWxlIChjb3VudCA9PSAwKSB7CisgICAgICBzdGF0dXMgPSBjdl8ud2FpdF91bnRpbChsb2NrLCBub3cgKyBzdGQ6OmNocm9ubzo6c2Vjb25kcyh0aW1lb3V0U2Vjb25kcykpOworICAgICAgaWYgKHN0YXR1cyA9PSBzdGQ6OmN2X3N0YXR1czo6dGltZW91dCkgcmV0dXJuIHN0YXR1czsKKyAgICB9CisgICAgY291bnQtLTsKKyAgICByZXR1cm4gc3RhdHVzOworICB9CisKKyAgLyogQ2FsbGJhY2sgY2xhc3MgZm9yIGRhdGEgJiBFdmVudC4gKi8KKyAgY2xhc3MgR25zc0NhbGxiYWNrIDogcHVibGljIElHbnNzQ2FsbGJhY2sgeworICAgcHVibGljOgorICAgIEduc3NIYWxUZXN0JiBwYXJlbnRfOworCisgICAgR25zc0NhbGxiYWNrKEduc3NIYWxUZXN0JiBwYXJlbnQpIDogcGFyZW50XyhwYXJlbnQpe307CisKKyAgICB2aXJ0dWFsIH5HbnNzQ2FsbGJhY2soKSA9IGRlZmF1bHQ7CisKKyAgICAvLyBEdW1teSBjYWxsYmFjayBoYW5kbGVycworICAgIFJldHVybjx2b2lkPiBnbnNzU3RhdHVzQ2IoCisgICAgICAgIGNvbnN0IElHbnNzQ2FsbGJhY2s6Okduc3NTdGF0dXNWYWx1ZSAvKiBzdGF0dXMgKi8pIG92ZXJyaWRlIHsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIFJldHVybjx2b2lkPiBnbnNzU3ZTdGF0dXNDYigKKyAgICAgICAgY29uc3QgSUduc3NDYWxsYmFjazo6R25zc1N2U3RhdHVzJiAvKiBzdlN0YXR1cyAqLykgb3ZlcnJpZGUgeworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgUmV0dXJuPHZvaWQ+IGduc3NObWVhQ2IoCisgICAgICAgIGludDY0X3QgLyogdGltZXN0YW1wICovLAorICAgICAgICBjb25zdCBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmcmIC8qIG5tZWEgKi8pIG92ZXJyaWRlIHsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIFJldHVybjx2b2lkPiBnbnNzQWNxdWlyZVdha2Vsb2NrQ2IoKSBvdmVycmlkZSB7IHJldHVybiBWb2lkKCk7IH0KKyAgICBSZXR1cm48dm9pZD4gZ25zc1JlbGVhc2VXYWtlbG9ja0NiKCkgb3ZlcnJpZGUgeyByZXR1cm4gVm9pZCgpOyB9CisgICAgUmV0dXJuPHZvaWQ+IGduc3NSZXF1ZXN0VGltZUNiKCkgb3ZlcnJpZGUgeyByZXR1cm4gVm9pZCgpOyB9CisKKyAgICAvLyBBY3R1YWwgKHRlc3QpIGNhbGxiYWNrIGhhbmRsZXJzCisgICAgUmV0dXJuPHZvaWQ+IGduc3NMb2NhdGlvbkNiKGNvbnN0IEduc3NMb2NhdGlvbiYgbG9jYXRpb24pIG92ZXJyaWRlIHsKKyAgICAgIEFMT0dJKCJMb2NhdGlvbiByZWNlaXZlZCIpOworICAgICAgcGFyZW50Xy5sb2NhdGlvbl9jYWxsZWRfY291bnRfKys7CisgICAgICBwYXJlbnRfLmxhc3RfbG9jYXRpb25fID0gbG9jYXRpb247CisgICAgICBwYXJlbnRfLm5vdGlmeSgpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gZ25zc1NldENhcGFiaWxpdGVzQ2IodWludDMyX3QgY2FwYWJpbGl0aWVzKSBvdmVycmlkZSB7CisgICAgICBBTE9HSSgiQ2FwYWJpbGl0aWVzIHJlY2VpdmVkICVkIiwgY2FwYWJpbGl0aWVzKTsKKyAgICAgIHBhcmVudF8uY2FwYWJpbGl0aWVzX2NhbGxlZF9jb3VudF8rKzsKKyAgICAgIHBhcmVudF8ubGFzdF9jYXBhYmlsaXRpZXNfID0gY2FwYWJpbGl0aWVzOworICAgICAgcGFyZW50Xy5ub3RpZnkoKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgUmV0dXJuPHZvaWQ+IGduc3NTZXRTeXN0ZW1JbmZvQ2IoCisgICAgICAgIGNvbnN0IElHbnNzQ2FsbGJhY2s6Okduc3NTeXN0ZW1JbmZvJiBpbmZvKSBvdmVycmlkZSB7CisgICAgICBBTE9HSSgiSW5mbyByZWNlaXZlZCwgeWVhciAlZCIsIGluZm8ueWVhck9mSHcpOworICAgICAgcGFyZW50Xy5pbmZvX2NhbGxlZF9jb3VudF8rKzsKKyAgICAgIHBhcmVudF8ubGFzdF9pbmZvXyA9IGluZm87CisgICAgICBwYXJlbnRfLm5vdGlmeSgpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgIH07CisKKyAgc3A8SUduc3M+IGduc3NfaGFsXzsgICAgICAgICAvLyBHTlNTIEhBTCB0byBjYWxsIGludG8KKyAgc3A8SUduc3NDYWxsYmFjaz4gZ25zc19jYl87ICAvLyBQcmltYXJ5IGNhbGxiYWNrIGludGVyZmFjZQorCisgIC8qIENvdW50IG9mIGNhbGxzIHRvIHNldCB0aGUgZm9sbG93aW5nIGl0ZW1zLCBhbmQgdGhlIGxhdGVzdCBpdGVtICh1c2VkIGJ5CisgICAqIHRlc3QuKQorICAgKi8KKyAgaW50IGNhcGFiaWxpdGllc19jYWxsZWRfY291bnRfOworICB1aW50MzJfdCBsYXN0X2NhcGFiaWxpdGllc187CisKKyAgaW50IGxvY2F0aW9uX2NhbGxlZF9jb3VudF87CisgIEduc3NMb2NhdGlvbiBsYXN0X2xvY2F0aW9uXzsKKworICBpbnQgaW5mb19jYWxsZWRfY291bnRfOworICBJR25zc0NhbGxiYWNrOjpHbnNzU3lzdGVtSW5mbyBsYXN0X2luZm9fOworCisgcHJpdmF0ZToKKyAgc3RkOjptdXRleCBtdHhfOworICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBjdl87CisgIGludCBjb3VudDsKK307CisKKy8qCisgKiBTZXRDYWxsYmFja0NhcGFiaWxpdGllc0NsZWFudXA6CisgKiBTZXRzIHVwIHRoZSBjYWxsYmFjaywgYXdhaXRzIHRoZSBjYXBhYmlsaXRpZXMsIGFuZCBjYWxscyBjbGVhbnVwCisgKgorICogU2luY2UgdGhpcyBpcyBqdXN0IHRoZSBiYXNpYyBvcGVyYXRpb24gb2YgU2V0VXAoKSBhbmQgVGVhckRvd24oKSwKKyAqIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGlzIGludGVudGlvbmFsbHkgZW1wdHkKKyAqLworVEVTVF9GKEduc3NIYWxUZXN0LCBTZXRDYWxsYmFja0NhcGFiaWxpdGllc0NsZWFudXApIHt9CisKKy8qCisgKiBDaGVja0xvY2F0aW9uOgorICogSGVscGVyIGZ1bmN0aW9uIHRvIHZldCBMb2NhdGlvbiBmaWVsZHMKKyAqLwordm9pZCBDaGVja0xvY2F0aW9uKEduc3NMb2NhdGlvbiYgbG9jYXRpb24sIGJvb2wgY2hlY2tBY2N1cmFjaWVzKSB7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19MQVRfTE9ORyk7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19BTFRJVFVERSk7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19TUEVFRCk7CisgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYKKyAgICAgICAgICAgICAgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19IT1JJWk9OVEFMX0FDQ1VSQUNZKTsKKyAgLy8gTmV3IHVuY2VydGFpbnRpZXMgYXZhaWxhYmxlIGluIE8gbXVzdCBiZSBwcm92aWRlZCwKKyAgLy8gYXQgbGVhc3Qgd2hlbiBwYWlyZWQgd2l0aCBtb2Rlcm4gaGFyZHdhcmUgKDIwMTcrKQorICBpZiAoY2hlY2tBY2N1cmFjaWVzKSB7CisgICAgRVhQRUNUX1RSVUUobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJgorICAgICAgICAgICAgICAgIEduc3NMb2NhdGlvbkZsYWdzOjpIQVNfVkVSVElDQUxfQUNDVVJBQ1kpOworICAgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYKKyAgICAgICAgICAgICAgICBHbnNzTG9jYXRpb25GbGFnczo6SEFTX1NQRUVEX0FDQ1VSQUNZKTsKKyAgICBpZiAobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJiBHbnNzTG9jYXRpb25GbGFnczo6SEFTX0JFQVJJTkcpIHsKKyAgICAgIEVYUEVDVF9UUlVFKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYKKyAgICAgICAgICAgICAgICAgIEduc3NMb2NhdGlvbkZsYWdzOjpIQVNfQkVBUklOR19BQ0NVUkFDWSk7CisgICAgfQorICB9CisgIEVYUEVDVF9HRShsb2NhdGlvbi5sYXRpdHVkZURlZ3JlZXMsIC05MC4wKTsKKyAgRVhQRUNUX0xFKGxvY2F0aW9uLmxhdGl0dWRlRGVncmVlcywgOTAuMCk7CisgIEVYUEVDVF9HRShsb2NhdGlvbi5sb25naXR1ZGVEZWdyZWVzLCAtMTgwLjApOworICBFWFBFQ1RfTEUobG9jYXRpb24ubG9uZ2l0dWRlRGVncmVlcywgMTgwLjApOworICBFWFBFQ1RfR0UobG9jYXRpb24uYWx0aXR1ZGVNZXRlcnMsIC0xMDAwLjApOworICBFWFBFQ1RfTEUobG9jYXRpb24uYWx0aXR1ZGVNZXRlcnMsIDMwMDAwLjApOworICBFWFBFQ1RfR0UobG9jYXRpb24uc3BlZWRNZXRlcnNQZXJTZWMsIDAuMCk7CisgIEVYUEVDVF9MRShsb2NhdGlvbi5zcGVlZE1ldGVyc1BlclNlYywgNS4wKTsgIC8vIFZUUyB0ZXN0cyBhcmUgc3RhdGlvbmFyeS4KKworICAvLyBOb24temVybyBzcGVlZHMgbXVzdCBiZSByZXBvcnRlZCB3aXRoIGFuIGFzc29jaWF0ZWQgYmVhcmluZworICBpZiAobG9jYXRpb24uc3BlZWRNZXRlcnNQZXJTZWMgPiAwLjApIHsKKyAgICBFWFBFQ1RfVFJVRShsb2NhdGlvbi5nbnNzTG9jYXRpb25GbGFncyAmIEduc3NMb2NhdGlvbkZsYWdzOjpIQVNfQkVBUklORyk7CisgIH0KKworICAvKgorICAgKiBUb2xlcmF0aW5nIHNvbWUgZXNwZWNpYWxseSBoaWdoIHZhbHVlcyBmb3IgYWNjdXJhY3kgZXN0aW1hdGUsIGluIGNhc2Ugb2YKKyAgICogZmlyc3QgZml4IHdpdGggZXNwZWNpYWxseSBwb29yIGdlb21ldHJ5IChoYXBwZW5zIG9jY2FzaW9uYWxseSkKKyAgICovCisgIEVYUEVDVF9HVChsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3lNZXRlcnMsIDAuMCk7CisgIEVYUEVDVF9MRShsb2NhdGlvbi5ob3Jpem9udGFsQWNjdXJhY3lNZXRlcnMsIDI1MC4wKTsKKworICAvKgorICAgKiBTb21lIGRldmljZXMgbWF5IGRlZmluZSBiZWFyaW5nIGFzIC0xODAgdG8gKzE4MCwgb3RoZXJzIGFzIDAgdG8gMzYwLgorICAgKiBCb3RoIGFyZSBva2F5ICYgdW5kZXJzdGFuZGFibGUuCisgICAqLworICBpZiAobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJiBHbnNzTG9jYXRpb25GbGFnczo6SEFTX0JFQVJJTkcpIHsKKyAgICBFWFBFQ1RfR0UobG9jYXRpb24uYmVhcmluZ0RlZ3JlZXMsIC0xODAuMCk7CisgICAgRVhQRUNUX0xFKGxvY2F0aW9uLmJlYXJpbmdEZWdyZWVzLCAzNjAuMCk7CisgIH0KKyAgaWYgKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19WRVJUSUNBTF9BQ0NVUkFDWSkgeworICAgIEVYUEVDVF9HVChsb2NhdGlvbi52ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzLCAwLjApOworICAgIEVYUEVDVF9MRShsb2NhdGlvbi52ZXJ0aWNhbEFjY3VyYWN5TWV0ZXJzLCA1MDAuMCk7CisgIH0KKyAgaWYgKGxvY2F0aW9uLmduc3NMb2NhdGlvbkZsYWdzICYgR25zc0xvY2F0aW9uRmxhZ3M6OkhBU19TUEVFRF9BQ0NVUkFDWSkgeworICAgIEVYUEVDVF9HVChsb2NhdGlvbi5zcGVlZEFjY3VyYWN5TWV0ZXJzUGVyU2Vjb25kLCAwLjApOworICAgIEVYUEVDVF9MRShsb2NhdGlvbi5zcGVlZEFjY3VyYWN5TWV0ZXJzUGVyU2Vjb25kLCA1MC4wKTsKKyAgfQorICBpZiAobG9jYXRpb24uZ25zc0xvY2F0aW9uRmxhZ3MgJiBHbnNzTG9jYXRpb25GbGFnczo6SEFTX0JFQVJJTkdfQUNDVVJBQ1kpIHsKKyAgICBFWFBFQ1RfR1QobG9jYXRpb24uYmVhcmluZ0FjY3VyYWN5RGVncmVlcywgMC4wKTsKKyAgICBFWFBFQ1RfTEUobG9jYXRpb24uYmVhcmluZ0FjY3VyYWN5RGVncmVlcywgMzYwLjApOworICB9CisKKyAgLy8gQ2hlY2sgdGltZXN0YW1wID4gMS40OGUxMiAoNDcgeWVhcnMgaW4gbXNlYyAtIDE5NzAtPjIwMTcrKQorICBFWFBFQ1RfR1QobG9jYXRpb24udGltZXN0YW1wLCAxLjQ4ZTEyKTsKK30KKworLyoKKyAqIFN0YXJ0QW5kR2V0U2luZ2xlTG9jYXRpb246CisgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IG9uZSBMb2NhdGlvbiBhbmQgY2hlY2sgZmllbGRzCisgKgorICogcmV0dXJucyAgdHJ1ZSBpZiBhIGxvY2F0aW9uIHdhcyBzdWNjZXNzZnVsbHkgZ2VuZXJhdGVkCisgKi8KK2Jvb2wgU3RhcnRBbmRHZXRTaW5nbGVMb2NhdGlvbihHbnNzSGFsVGVzdCogdGVzdCwgYm9vbCBjaGVja0FjY3VyYWNpZXMpIHsKKyAgYXV0byByZXN1bHQgPSB0ZXN0LT5nbnNzX2hhbF8tPnN0YXJ0KCk7CisKKyAgRVhQRUNUX1RSVUUocmVzdWx0LmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHJlc3VsdCk7CisKKyAgLyoKKyAgICogR1BTIHNpZ25hbHMgaW5pdGlhbGx5IG9wdGlvbmFsIGZvciB0aGlzIHRlc3QsIHNvIGRvbid0IGV4cGVjdCBmYXN0IGZpeCwKKyAgICogb3Igbm8gdGltZW91dCwgdW5sZXNzIHNpZ25hbCBpcyBwcmVzZW50CisgICAqLworICBpbnQgZmlyc3RHbnNzTG9jYXRpb25UaW1lb3V0U2Vjb25kcyA9IHNBZ3BzSXNQcmVzZW50ID8gMTUgOiA0NTsKKyAgaWYgKHNTaWduYWxJc1dlYWspIHsKKyAgICAvLyBhbGxvdyBtb3JlIHRpbWUgZm9yIHdlYWsgc2lnbmFscworICAgIGZpcnN0R25zc0xvY2F0aW9uVGltZW91dFNlY29uZHMgKz0gMzA7CisgIH0KKworICB0ZXN0LT53YWl0KGZpcnN0R25zc0xvY2F0aW9uVGltZW91dFNlY29uZHMpOworICBpZiAoc0FncHNJc1ByZXNlbnQpIHsKKyAgICBFWFBFQ1RfRVEodGVzdC0+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+PSBEZXN0aW5hdGlvbik6CisgKiAgV2hlbiB0aGUgZGV2aWNlIChkZXN0aW5hdGlvbikgZ2FtdXQgaXMgbm90IGxhcmdlciB0aGFuIHRoZSBzb3VyY2UgZ2FtdXQKKyAqICAoIzIgb3IgIzMpLCBidXQgdGhlIGFwcGVhcmFuY2Ugb2YgYSBsYXJnZXIgZ2FtdXQgaXMgZGVzaXJlZCwgdGVjaG5pcXVlcworICogIHN1Y2ggYXMgc2F0dXJhdGlvbiBib29zdCBtYXkgYmUgYXBwbGllZCB0byB0aGUgc291cmNlIGNvbG9ycy4gU2tpbi10b25lCisgKiAgcHJlc2VydmF0aW9uIG1heSBiZSBhcHBsaWVkLiBUaGVyZSBpcyBubyB1bmlxdWUgbWV0aG9kIGZvciB3aXRoaW4tZ2FtdXQKKyAqICBlbmhhbmNlbWVudDsgaXQgd291bGQgYmUgZGVmaW5lZCB3aXRoaW4gYSBmbGV4aWJsZSBjb2xvciBtb2RlLgorICoKKyAqLworQGV4cG9ydChuYW1lPSJhbmRyb2lkX2NvbG9yX21vZGVfdCIsIHZhbHVlX3ByZWZpeD0iSEFMX0NPTE9SX01PREVfIikKK2VudW0gQ29sb3JNb2RlIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogREVGQVVMVCBpcyB0aGUgIm5hdGl2ZSIgZ2FtdXQgb2YgdGhlIGRpc3BsYXkuCisgICAgICogV2hpdGUgUG9pbnQ6IFZlbmRvci9PRU0gZGVmaW5lZAorICAgICAqIFBhbmVsIEdhbW1hOiBWZW5kb3IvT0VNIGRlZmluZWQgKHR5cGljYWxseSAyLjIpCisgICAgICogUmVuZGVyaW5nIEludGVudDogVmVuZG9yL09FTSBkZWZpbmVkICh0eXBpY2FsbHkgJ2VuaGFuY2VkJykKKyAgICAgKi8KKyAgICBOQVRJVkUgPSAwLAorCisgICAgLyoqCisgICAgICogU1RBTkRBUkRfQlQ2MDFfNjI1IGNvcnJlc3BvbmRzIHdpdGggZGlzcGxheQorICAgICAqIHNldHRpbmdzIHRoYXQgaW1wbGVtZW50IHRoZSBJVFUtUiBSZWNvbW1lbmRhdGlvbiBCVC42MDEKKyAgICAgKiBvciBSZWMgNjAxLiBVc2luZyA2MjUgbGluZSB2ZXJzaW9uCisgICAgICogUmVuZGVyaW5nIEludGVudDogQ29sb3JpbWV0cmljCisgICAgICogUHJpbWFyaWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjI5MCAgIDAuNjAwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqCisgICAgICogIEtSID0gMC4yOTksIEtCID0gMC4xMTQuIFRoaXMgYWRqdXN0cyB0aGUgbHVtaW5hbmNlIGludGVycHJldGF0aW9uCisgICAgICogIGZvciBSR0IgY29udmVyc2lvbiBmcm9tIHRoZSBvbmUgcHVyZWx5IGRldGVybWluZWQgYnkgdGhlIHByaW1hcmllcworICAgICAqICB0byBtaW5pbWl6ZSB0aGUgY29sb3Igc2hpZnQgaW50byBSR0Igc3BhY2UgdGhhdCB1c2VzIEJULjcwOQorICAgICAqICBwcmltYXJpZXMuCisgICAgICoKKyAgICAgKiBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciA8IDAuMDE4CisgICAgICogICAgVm5vbmxpbmVhciA9IDQuNTAwICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDk5ICogKFZsaW5lYXIpXigwLjQ1KSDigJMgMC4wOTkKKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV82MjUgPSAxLAorCisgICAgLyoqCisgICAgICogUHJpbWFyaWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjI5MCAgIDAuNjAwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqCisgICAgICogIFVzZSB0aGUgdW5hZGp1c3RlZCBLUiA9IDAuMjIyLCBLQiA9IDAuMDcxIGx1bWluYW5jZSBpbnRlcnByZXRhdGlvbgorICAgICAqICBmb3IgUkdCIGNvbnZlcnNpb24uCisgICAgICoKKyAgICAgKiBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciA8IDAuMDE4CisgICAgICogICAgVm5vbmxpbmVhciA9IDQuNTAwICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDk5ICogKFZsaW5lYXIpXigwLjQ1KSDigJMgMC4wOTkKKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV82MjVfVU5BREpVU1RFRCA9IDIsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzEwICAgMC41OTUKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTU1ICAgMC4wNzAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjMwICAgMC4zNDAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiAgS1IgPSAwLjI5OSwgS0IgPSAwLjExNC4gVGhpcyBhZGp1c3RzIHRoZSBsdW1pbmFuY2UgaW50ZXJwcmV0YXRpb24KKyAgICAgKiAgZm9yIFJHQiBjb252ZXJzaW9uIGZyb20gdGhlIG9uZSBwdXJlbHkgZGV0ZXJtaW5lZCBieSB0aGUgcHJpbWFyaWVzCisgICAgICogIHRvIG1pbmltaXplIHRoZSBjb2xvciBzaGlmdCBpbnRvIFJHQiBzcGFjZSB0aGF0IHVzZXMgQlQuNzA5CisgICAgICogIHByaW1hcmllcy4KKyAgICAgKgorICAgICAqIEdhbW1hIENvcnJlY3Rpb24gKEdDKToKKyAgICAgKgorICAgICAqICBpZiBWbGluZWFyIDwgMC4wMTgKKyAgICAgKiAgICBWbm9ubGluZWFyID0gNC41MDAgKiBWbGluZWFyCisgICAgICogIGVsc2UKKyAgICAgKiAgICBWbm9ubGluZWFyID0gMS4wOTkgKiAoVmxpbmVhcileKDAuNDUpIOKAkyAwLjA5OQorICAgICAqLworICAgIFNUQU5EQVJEX0JUNjAxXzUyNSA9IDMsCisKKyAgICAvKioKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzEwICAgMC41OTUKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTU1ICAgMC4wNzAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjMwICAgMC4zNDAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiAgVXNlIHRoZSB1bmFkanVzdGVkIEtSID0gMC4yMTIsIEtCID0gMC4wODcgbHVtaW5hbmNlIGludGVycHJldGF0aW9uCisgICAgICogIGZvciBSR0IgY29udmVyc2lvbiAoYXMgaW4gU01QVEUgMjQwTSkuCisgICAgICoKKyAgICAgKiBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciA8IDAuMDE4CisgICAgICogICAgVm5vbmxpbmVhciA9IDQuNTAwICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDk5ICogKFZsaW5lYXIpXigwLjQ1KSDigJMgMC4wOTkKKyAgICAgKi8KKyAgICBTVEFOREFSRF9CVDYwMV81MjVfVU5BREpVU1RFRCA9IDQsCisKKyAgICAvKioKKyAgICAgKiBSRUM3MDkgY29ycmVzcG9uZHMgd2l0aCBkaXNwbGF5IHNldHRpbmdzIHRoYXQgaW1wbGVtZW50CisgICAgICogdGhlIElUVS1SIFJlY29tbWVuZGF0aW9uIEJULjcwOSAvIFJlYy4gNzA5IGZvciBoaWdoLWRlZmluaXRpb24gdGVsZXZpc2lvbi4KKyAgICAgKiBSZW5kZXJpbmcgSW50ZW50OiBDb2xvcmltZXRyaWMKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMzAwICAgMC42MDAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjQwICAgMC4zMzAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBIRFRWIFJFQzcwOSBJbnZlcnNlIEdhbW1hIENvcnJlY3Rpb24gKElHQyk6IFYgcmVwcmVzZW50cyBub3JtYWxpemVkCisgICAgICogKHdpdGggWzAgdG8gMV0gcmFuZ2UpIHZhbHVlIG9mIFIsIEcsIG9yIEIuCisgICAgICoKKyAgICAgKiAgaWYgVm5vbmxpbmVhciA8IDAuMDgxCisgICAgICogICAgVmxpbmVhciA9IFZub25saW5lYXIgLyA0LjUKKyAgICAgKiAgZWxzZQorICAgICAqICAgIFZsaW5lYXIgPSAoKFZub25saW5lYXIgKyAwLjA5OSkgLyAxLjA5OSkgXiAoMS8wLjQ1KQorICAgICAqCisgICAgICogSERUViBSRUM3MDkgR2FtbWEgQ29ycmVjdGlvbiAoR0MpOgorICAgICAqCisgICAgICogIGlmIFZsaW5lYXIgPCAwLjAxOAorICAgICAqICAgIFZub25saW5lYXIgPSA0LjUgKiBWbGluZWFyCisgICAgICogIGVsc2UKKyAgICAgKiAgICBWbm9ubGluZWFyID0gMS4wOTkgKiAoVmxpbmVhcikgXiAwLjQ1IOKAkyAwLjA5OQorICAgICAqLworICAgIFNUQU5EQVJEX0JUNzA5ID0gNSwKKworICAgIC8qKgorICAgICAqIERDSV9QMyBjb3JyZXNwb25kcyB3aXRoIGRpc3BsYXkgc2V0dGluZ3MgdGhhdCBpbXBsZW1lbnQKKyAgICAgKiBTTVBURSBFRyA0MzItMSBhbmQgU01QVEUgUlAgNDMxLTIKKyAgICAgKiBSZW5kZXJpbmcgSW50ZW50OiBDb2xvcmltZXRyaWMKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjY1ICAgMC42OTAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjgwICAgMC4zMjAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBHYW1tYTogMi42CisgICAgICovCisgICAgRENJX1AzID0gNiwKKworICAgIC8qKgorICAgICAqIFNSR0IgY29ycmVzcG9uZHMgd2l0aCBkaXNwbGF5IHNldHRpbmdzIHRoYXQgaW1wbGVtZW50CisgICAgICogdGhlIHNSR0IgY29sb3Igc3BhY2UuIFVzZXMgdGhlIHNhbWUgcHJpbWFyaWVzIGFzIElUVS1SIFJlY29tbWVuZGF0aW9uCisgICAgICogQlQuNzA5CisgICAgICogUmVuZGVyaW5nIEludGVudDogQ29sb3JpbWV0cmljCisgICAgICogUHJpbWFyaWVzOgorICAgICAqICAgICAgICAgICAgICAgICAgeCAgICAgICB5CisgICAgICogIGdyZWVuICAgICAgICAgICAwLjMwMCAgIDAuNjAwCisgICAgICogIGJsdWUgICAgICAgICAgICAwLjE1MCAgIDAuMDYwCisgICAgICogIHJlZCAgICAgICAgICAgICAwLjY0MCAgIDAuMzMwCisgICAgICogIHdoaXRlIChENjUpICAgICAwLjMxMjcgIDAuMzI5MAorICAgICAqCisgICAgICogUEMvSW50ZXJuZXQgKHNSR0IpIEludmVyc2UgR2FtbWEgQ29ycmVjdGlvbiAoSUdDKToKKyAgICAgKgorICAgICAqICBpZiBWbm9ubGluZWFyIOKJpCAwLjAzOTI4CisgICAgICogICAgVmxpbmVhciA9IFZub25saW5lYXIgLyAxMi45MgorICAgICAqICBlbHNlCisgICAgICogICAgVmxpbmVhciA9ICgoVm5vbmxpbmVhciArIDAuMDU1KS8xLjA1NSkgXiAyLjQKKyAgICAgKgorICAgICAqIFBDL0ludGVybmV0IChzUkdCKSBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciDiiaQgMC4wMDMxMzA4CisgICAgICogICAgVm5vbmxpbmVhciA9IDEyLjkyICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDU1ICogKFZsaW5lYXIpXigxLzIuNCkg4oCTIDAuMDU1CisgICAgICovCisgICAgU1JHQiA9IDcsCisKKyAgICAvKioKKyAgICAgKiBBRE9CRV9SR0IgY29ycmVzcG9uZHMgd2l0aCB0aGUgUkdCIGNvbG9yIHNwYWNlIGRldmVsb3BlZAorICAgICAqIGJ5IEFkb2JlIFN5c3RlbXMsIEluYy4gaW4gMTk5OC4KKyAgICAgKiBSZW5kZXJpbmcgSW50ZW50OiBDb2xvcmltZXRyaWMKKyAgICAgKiBQcmltYXJpZXM6CisgICAgICogICAgICAgICAgICAgICAgICB4ICAgICAgIHkKKyAgICAgKiAgZ3JlZW4gICAgICAgICAgIDAuMjEwICAgMC43MTAKKyAgICAgKiAgYmx1ZSAgICAgICAgICAgIDAuMTUwICAgMC4wNjAKKyAgICAgKiAgcmVkICAgICAgICAgICAgIDAuNjQwICAgMC4zMzAKKyAgICAgKiAgd2hpdGUgKEQ2NSkgICAgIDAuMzEyNyAgMC4zMjkwCisgICAgICoKKyAgICAgKiBHYW1tYTogMi4yCisgICAgICovCisgICAgQURPQkVfUkdCID0gOCwKKworICAgIC8qKgorICAgICAqIERJU1BMQVlfUDMgaXMgYSBjb2xvciBzcGFjZSB0aGF0IHVzZXMgdGhlIERDSV9QMyBwcmltYXJpZXMsCisgICAgICogdGhlIEQ2NSB3aGl0ZSBwb2ludCBhbmQgdGhlIFNSR0IgdHJhbnNmZXIgZnVuY3Rpb25zLgorICAgICAqIFJlbmRlcmluZyBJbnRlbnQ6IENvbG9yaW1ldHJpYworICAgICAqIFByaW1hcmllczoKKyAgICAgKiAgICAgICAgICAgICAgICAgIHggICAgICAgeQorICAgICAqICBncmVlbiAgICAgICAgICAgMC4yNjUgICAwLjY5MAorICAgICAqICBibHVlICAgICAgICAgICAgMC4xNTAgICAwLjA2MAorICAgICAqICByZWQgICAgICAgICAgICAgMC42ODAgICAwLjMyMAorICAgICAqICB3aGl0ZSAoRDY1KSAgICAgMC4zMTI3ICAwLjMyOTAKKyAgICAgKgorICAgICAqIFBDL0ludGVybmV0IChzUkdCKSBHYW1tYSBDb3JyZWN0aW9uIChHQyk6CisgICAgICoKKyAgICAgKiAgaWYgVmxpbmVhciDiiaQgMC4wMDMwMTg2CisgICAgICogICAgVm5vbmxpbmVhciA9IDEyLjkyICogVmxpbmVhcgorICAgICAqICBlbHNlCisgICAgICogICAgVm5vbmxpbmVhciA9IDEuMDU1ICogKFZsaW5lYXIpXigxLzIuNCkg4oCTIDAuMDU1CisgICAgICoKKyAgICAgKiBOb3RlOiBJbiBtb3N0IGNhc2VzIHNSR0IgdHJhbnNmZXIgZnVuY3Rpb24gd2lsbCBiZSBmaW5lLgorICAgICAqLworICAgIERJU1BMQVlfUDMgPSA5Cit9OworCisvKioKKyAqIENvbG9yIHRyYW5zZm9ybXMgdGhhdCBtYXkgYmUgYXBwbGllZCBieSBoYXJkd2FyZSBjb21wb3NlciB0byB0aGUgd2hvbGUKKyAqIGRpc3BsYXkuCisgKi8KK0BleHBvcnQobmFtZT0iYW5kcm9pZF9jb2xvcl90cmFuc2Zvcm1fdCIsIHZhbHVlX3ByZWZpeD0iSEFMX0NPTE9SX1RSQU5TRk9STV8iKQorZW51bSBDb2xvclRyYW5zZm9ybSA6IGludDMyX3QgeworICAgIC8qKiBBcHBsaWVzIG5vIHRyYW5zZm9ybSB0byB0aGUgb3V0cHV0IGNvbG9yICovCisgICAgSURFTlRJVFkgPSAwLAorCisgICAgLyoqIEFwcGxpZXMgYW4gYXJiaXRyYXJ5IHRyYW5zZm9ybSBkZWZpbmVkIGJ5IGEgNHg0IGFmZmluZSBtYXRyaXggKi8KKyAgICBBUkJJVFJBUllfTUFUUklYID0gMSwKKworICAgIC8qKgorICAgICAqIEFwcGxpZXMgYSB0cmFuc2Zvcm0gdGhhdCBpbnZlcnRzIHRoZSB2YWx1ZSBvciBsdW1pbmFuY2Ugb2YgdGhlIGNvbG9yLCBidXQKKyAgICAgKiBkb2VzIG5vdCBtb2RpZnkgaHVlIG9yIHNhdHVyYXRpb24gKi8KKyAgICBWQUxVRV9JTlZFUlNFID0gMiwKKworICAgIC8qKiBBcHBsaWVzIGEgdHJhbnNmb3JtIHRoYXQgbWFwcyBhbGwgY29sb3JzIHRvIHNoYWRlcyBvZiBncmF5ICovCisgICAgR1JBWVNDQUxFID0gMywKKworICAgIC8qKiBBcHBsaWVzIGEgdHJhbnNmb3JtIHdoaWNoIGNvcnJlY3RzIGZvciBwcm90YW5vcGljIGNvbG9yIGJsaW5kbmVzcyAqLworICAgIENPUlJFQ1RfUFJPVEFOT1BJQSA9IDQsCisKKyAgICAvKiogQXBwbGllcyBhIHRyYW5zZm9ybSB3aGljaCBjb3JyZWN0cyBmb3IgZGV1dGVyYW5vcGljIGNvbG9yIGJsaW5kbmVzcyAqLworICAgIENPUlJFQ1RfREVVVEVSQU5PUElBID0gNSwKKworICAgIC8qKiBBcHBsaWVzIGEgdHJhbnNmb3JtIHdoaWNoIGNvcnJlY3RzIGZvciB0cml0YW5vcGljIGNvbG9yIGJsaW5kbmVzcyAqLworICAgIENPUlJFQ1RfVFJJVEFOT1BJQSA9IDYKK307CisKKy8qKgorICogU3VwcG9ydGVkIEhEUiBmb3JtYXRzLiBNdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIGVxdWl2YWxlbnRzIGluIERpc3BsYXkuamF2YS4KKyAqLworQGV4cG9ydChuYW1lPSJhbmRyb2lkX2hkcl90IiwgdmFsdWVfcHJlZml4PSJIQUxfSERSXyIpCitlbnVtIEhkciA6IGludDMyX3QgeworICAgIC8qKiBEZXZpY2Ugc3VwcG9ydHMgRG9sYnkgVmlzaW9uIEhEUiAqLworICAgIERPTEJZX1ZJU0lPTiA9IDEsCisKKyAgICAvKiogRGV2aWNlIHN1cHBvcnRzIEhEUjEwICovCisgICAgSERSMTAgPSAyLAorCisgICAgLyoqIERldmljZSBzdXBwb3J0cyBoeWJyaWQgbG9nLWdhbW1hIEhEUiAqLworICAgIEhMRyA9IDMKK307CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvQW5kcm9pZC5icCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI5OTU3MGQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvQW5kcm9pZC5icApAQCAtMCwwICsxLDc5IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklDb21wb3Nlci5oYWwiLAorICAgICAgICAiSUNvbXBvc2VyQ2FsbGJhY2suaGFsIiwKKyAgICAgICAgIklDb21wb3NlckNsaWVudC5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMV9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0NvbXBvc2VyQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Db21wb3NlckNhbGxiYWNrQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Db21wb3NlckNsaWVudEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMV9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMV9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JSHdDb21wb3Nlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JuSHdDb21wb3Nlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JwSHdDb21wb3Nlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JzQ29tcG9zZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0lId0NvbXBvc2VyQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Cbkh3Q29tcG9zZXJDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0JwSHdDb21wb3NlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvQnNDb21wb3NlckNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2xpZW50LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUh3Q29tcG9zZXJDbGllbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Cbkh3Q29tcG9zZXJDbGllbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9CcEh3Q29tcG9zZXJDbGllbnQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9Cc0NvbXBvc2VyQ2xpZW50LmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjFfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0FuZHJvaWQubWsgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaGFsIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0lDb21wb3Nlci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJhYTVjZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaGFsCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOworCitpbXBvcnQgSUNvbXBvc2VyQ2xpZW50OworCitpbnRlcmZhY2UgSUNvbXBvc2VyIHsKKyAgICAvKioKKyAgICAgKiBPcHRpb25hbCBjYXBhYmlsaXRpZXMgd2hpY2ggbWF5IGJlIHN1cHBvcnRlZCBieSBzb21lIGRldmljZXMuIFRoZQorICAgICAqIHBhcnRpY3VsYXIgc2V0IG9mIHN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgZm9yIGEgZ2l2ZW4gZGV2aWNlIG1heSBiZQorICAgICAqIHJldHJpZXZlZCB1c2luZyBnZXRDYXBhYmlsaXRpZXMuCisgICAgICovCisgICAgZW51bSBDYXBhYmlsaXR5IDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTcGVjaWZpZXMgdGhhdCB0aGUgZGV2aWNlIHN1cHBvcnRzIHNpZGViYW5kIHN0cmVhbSBsYXllcnMsIGZvcgorICAgICAgICAgKiB3aGljaCBidWZmZXIgY29udGVudCB1cGRhdGVzIGFuZCBvdGhlciBzeW5jaHJvbml6YXRpb24gd2lsbCBub3QgYmUKKyAgICAgICAgICogcHJvdmlkZWQgdGhyb3VnaCB0aGUgdXN1YWwgdmFsaWRhdGUvcHJlc2VudCBjeWNsZSBhbmQgbXVzdCBiZQorICAgICAgICAgKiBoYW5kbGVkIGJ5IGFuIGV4dGVybmFsIGltcGxlbWVudGF0aW9uLWRlZmluZWQgbWVjaGFuaXNtLiBPbmx5CisgICAgICAgICAqIGNoYW5nZXMgdG8gbGF5ZXIgc3RhdGUgKHN1Y2ggYXMgcG9zaXRpb24sIHNpemUsIGV0Yy4pIG5lZWQgdG8gYmUKKyAgICAgICAgICogcGVyZm9ybWVkIHRocm91Z2ggdGhlIHZhbGlkYXRlL3ByZXNlbnQgY3ljbGUuCisgICAgICAgICAqLworICAgICAgICBTSURFQkFORF9TVFJFQU0gPSAxLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTcGVjaWZpZXMgdGhhdCB0aGUgZGV2aWNlIHdpbGwgYXBwbHkgYSBjb2xvciB0cmFuc2Zvcm0gZXZlbiB3aGVuCisgICAgICAgICAqIGVpdGhlciB0aGUgY2xpZW50IG9yIHRoZSBkZXZpY2UgaGFzIGNob3NlbiB0aGF0IGFsbCBsYXllcnMgc2hvdWxkCisgICAgICAgICAqIGJlIGNvbXBvc2VkIGJ5IHRoZSBjbGllbnQuIFRoaXMgd2lsbCBwcmV2ZW50IHRoZSBjbGllbnQgZnJvbQorICAgICAgICAgKiBhcHBseWluZyB0aGUgY29sb3IgdHJhbnNmb3JtIGR1cmluZyBpdHMgY29tcG9zaXRpb24gc3RlcC4KKyAgICAgICAgICovCisgICAgICAgIFNLSVBfQ0xJRU5UX0NPTE9SX1RSQU5TRk9STSA9IDIsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFNwZWNpZmllcyB0aGF0IHRoZSBwcmVzZW50IGZlbmNlIG11c3Qgbm90IGJlIHVzZWQgYXMgYW4gYWNjdXJhdGUKKyAgICAgICAgICogcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjdHVhbCBwcmVzZW50IHRpbWUgb2YgYSBmcmFtZS4KKyAgICAgICAgICovCisgICAgICAgIFBSRVNFTlRfRkVOQ0VfSVNfTk9UX1JFTElBQkxFID0gMywKKyAgICB9OworCisgICAgLyoqCisgICAgICogUHJvdmlkZXMgYSBsaXN0IG9mIHN1cHBvcnRlZCBjYXBhYmlsaXRpZXMgKGFzIGRlc2NyaWJlZCBpbiB0aGUKKyAgICAgKiBkZWZpbml0aW9uIG9mIENhcGFiaWxpdHkgYWJvdmUpLiBUaGlzIGxpc3QgbXVzdCBub3QgY2hhbmdlIGFmdGVyCisgICAgICogaW5pdGlhbGl6YXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGNhcGFiaWxpdGllcyBpcyBhIGxpc3Qgb2Ygc3VwcG9ydGVkIGNhcGFiaWxpdGllcy4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAZXhpdAorICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXRDYXBhYmlsaXRpZXMoKSBnZW5lcmF0ZXMgKHZlYzxDYXBhYmlsaXR5PiBjYXBhYmlsaXRpZXMpOworCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIGltcGxlbWVudGF0aW9uLWRlZmluZWQgZGVidWcgaW5mb3JtYXRpb24sIHdoaWNoIHdpbGwgYmUKKyAgICAgKiBkaXNwbGF5ZWQgZHVyaW5nLCBmb3IgZXhhbXBsZSwgYGR1bXBzeXMgU3VyZmFjZUZsaW5nZXJgLgorICAgICAqCisgICAgICogQHJldHVybiBkZWJ1Z0luZm8gaXMgYSBzdHJpbmcgb2YgZGVidWcgaW5mb3JtYXRpb24uCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZHVtcERlYnVnSW5mbygpIGdlbmVyYXRlcyAoc3RyaW5nIGRlYnVnSW5mbyk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgY2xpZW50IG9mIHRoZSBjb21wb3Nlci4gQWxsIHJlc291cmNlcyBjcmVhdGVkIGJ5IHRoZSBjbGllbnQKKyAgICAgKiBhcmUgb3duZWQgYnkgdGhlIGNsaWVudCBhbmQgYXJlIG9ubHkgdmlzaWJsZSB0byB0aGUgY2xpZW50LgorICAgICAqCisgICAgICogVGhlcmUgY2FuIG9ubHkgYmUgb25lIGNsaWVudCBhdCBhbnkgdGltZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIG5vIG1vcmUgY2xpZW50IGNhbiBiZSBjcmVhdGVkIGN1cnJlbnRseS4KKyAgICAgKiBAcmV0dXJuIGNsaWVudCBpcyB0aGUgbmV3bHkgY3JlYXRlZCBjbGllbnQuCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGNyZWF0ZUNsaWVudCgpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsIElDb21wb3NlckNsaWVudCBjbGllbnQpOworfTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXJDYWxsYmFjay5oYWwgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiNzRjMzAKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOworCitpbnRlcmZhY2UgSUNvbXBvc2VyQ2FsbGJhY2sgeworICAgIGVudW0gQ29ubmVjdGlvbiA6IGludDMyX3QgeworICAgICAgICBJTlZBTElEID0gMCwKKworICAgICAgICAvKiogVGhlIGRpc3BsYXkgaGFzIGJlZW4gY29ubmVjdGVkICovCisgICAgICAgIENPTk5FQ1RFRCA9IDEsCisgICAgICAgIC8qKiBUaGUgZGlzcGxheSBoYXMgYmVlbiBkaXNjb25uZWN0ZWQgKi8KKyAgICAgICAgRElTQ09OTkVDVEVEID0gMiwKKyAgICB9OworCisgICAgLyoqCisgICAgICogTm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBnaXZlbiBkaXNwbGF5IGhhcyBlaXRoZXIgYmVlbiBjb25uZWN0ZWQgb3IKKyAgICAgKiBkaXNjb25uZWN0ZWQuIEV2ZXJ5IGFjdGl2ZSBkaXNwbGF5IChldmVuIGEgYnVpbHQtaW4gcGh5c2ljYWwgZGlzcGxheSkKKyAgICAgKiBtdXN0IHRyaWdnZXIgYXQgbGVhc3Qgb25lIGhvdHBsdWcgbm90aWZpY2F0aW9uLCBldmVuIGlmIGl0IG9ubHkgb2NjdXJzCisgICAgICogaW1tZWRpYXRlbHkgYWZ0ZXIgY2FsbGJhY2sgcmVnaXN0cmF0aW9uLgorICAgICAqCisgICAgICogRGlzcGxheXMgd2hpY2ggaGF2ZSBiZWVuIGNvbm5lY3RlZCBhcmUgYXNzdW1lZCB0byBiZSBpbiBQb3dlck1vZGU6Ok9GRiwKKyAgICAgKiBhbmQgdGhlIG9uVnN5bmMgY2FsbGJhY2sgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIGEgZGlzcGxheSB1bnRpbCB2c3luYworICAgICAqIGhhcyBiZWVuIGVuYWJsZWQgd2l0aCBzZXRWc3luY0VuYWJsZWQuCisgICAgICoKKyAgICAgKiBUaGUgY2xpZW50IG1heSBjYWxsIGJhY2sgaW50byB0aGUgZGV2aWNlIHdoaWxlIHRoZSBjYWxsYmFjayBpcyBpbgorICAgICAqIHByb2dyZXNzLiBUaGUgZGV2aWNlIG11c3Qgc2VyaWFsaXplIGNhbGxzIHRvIHRoaXMgY2FsbGJhY2sgc3VjaCB0aGF0CisgICAgICogb25seSBvbmUgdGhyZWFkIGlzIGNhbGxpbmcgaXQgYXQgYSB0aW1lLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdGhhdCB0cmlnZ2VycyB0aGUgaG90cGx1ZyBldmVudC4KKyAgICAgKiBAcGFyYW0gY29ubmVjdGVkIGluZGljYXRlcyB3aGV0aGVyIHRoZSBkaXNwbGF5IGlzIGNvbm5lY3RlZCBvcgorICAgICAqICAgICAgICBkaXNjb25uZWN0ZWQuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIG9uSG90cGx1ZyhEaXNwbGF5IGRpc3BsYXksIENvbm5lY3Rpb24gY29ubmVjdGVkKTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBjbGllbnQgdG8gdHJpZ2dlciBhIHNjcmVlbiByZWZyZXNoLiBUaGlzIGZvcmNlcyBhbGwgbGF5ZXIKKyAgICAgKiBzdGF0ZSBmb3IgdGhpcyBkaXNwbGF5IHRvIGJlIHJlc2VudCwgYW5kIHRoZSBkaXNwbGF5IHRvIGJlIHZhbGlkYXRlZAorICAgICAqIGFuZCBwcmVzZW50ZWQsIGV2ZW4gaWYgdGhlcmUgaGF2ZSBiZWVuIG5vIGNoYW5nZXMuCisKKyAgICAgKiBUaGlzIHJlZnJlc2ggd2lsbCBvY2N1ciBzb21lIHRpbWUgYWZ0ZXIgdGhlIGNhbGxiYWNrIGlzIGluaXRpYXRlZCwgYnV0CisgICAgICogbm90IG5lY2Vzc2FyaWx5IGJlZm9yZSBpdCByZXR1cm5zLiAgSXQgaXMgc2FmZSB0byB0cmlnZ2VyIHRoaXMgY2FsbGJhY2sKKyAgICAgKiBmcm9tIG90aGVyIGZ1bmN0aW9ucyB3aGljaCBjYWxsIGludG8gdGhlIGRldmljZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHJlZnJlc2guCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIG9uZXdheSBvblJlZnJlc2goRGlzcGxheSBkaXNwbGF5KTsKKworICAgIC8qKgorICAgICAqIE5vdGlmaWVzIHRoZSBjbGllbnQgdGhhdCBhIHZzeW5jIGV2ZW50IGhhcyBvY2N1cnJlZC4gVGhpcyBjYWxsYmFjayBtdXN0CisgICAgICogb25seSBiZSB0cmlnZ2VyZWQgd2hlbiB2c3luYyBpcyBlbmFibGVkIGZvciB0aGlzIGRpc3BsYXkgKHRocm91Z2gKKyAgICAgKiBzZXRWc3luY0VuYWJsZWQpLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgd2hpY2ggaGFzIHJlY2VpdmVkIGEgdnN5bmMgZXZlbnQKKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wIGlzIHRoZSBDTE9DS19NT05PVE9OSUMgdGltZSBhdCB3aGljaCB0aGUgdnN5bmMgZXZlbnQKKyAgICAgKiAgICAgICAgb2NjdXJyZWQsIGluIG5hbm9zZWNvbmRzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBvbmV3YXkgb25Wc3luYyhEaXNwbGF5IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKTsKK307CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2xpZW50LmhhbCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXJDbGllbnQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NTcyZDQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyQ2xpZW50LmhhbApAQCAtMCwwICsxLDExNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wOworaW1wb3J0IElDb21wb3NlckNhbGxiYWNrOworCitpbnRlcmZhY2UgSUNvbXBvc2VyQ2xpZW50IHsKKyAgICAvKiogRGlzcGxheSBhdHRyaWJ1dGVzIHF1ZXJ5YWJsZSB0aHJvdWdoIGdldERpc3BsYXlBdHRyaWJ1dGUuICovCisgICAgZW51bSBBdHRyaWJ1dGUgOiBpbnQzMl90IHsKKyAgICAgICAgSU5WQUxJRCA9IDAsCisKKyAgICAgICAgLyoqIERpbWVuc2lvbnMgaW4gcGl4ZWxzICovCisgICAgICAgIFdJRFRIID0gMSwKKyAgICAgICAgSEVJR0hUID0gMiwKKworICAgICAgICAvKiogVnN5bmMgcGVyaW9kIGluIG5hbm9zZWNvbmRzICovCisgICAgICAgIFZTWU5DX1BFUklPRCA9IDMsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIERvdHMgcGVyIHRob3VzYW5kIGluY2hlcyAoRFBJICogMTAwMCkuIFNjYWxpbmcgYnkgMTAwMCBhbGxvd3MgdGhlc2UKKyAgICAgICAgICogbnVtYmVycyB0byBiZSBzdG9yZWQgaW4gYW4gaW50MzJfdCB3aXRob3V0IGxvc2luZyB0b28gbXVjaAorICAgICAgICAgKiBwcmVjaXNpb24uIElmIHRoZSBEUEkgZm9yIGEgY29uZmlndXJhdGlvbiBpcyB1bmF2YWlsYWJsZSBvciBpcworICAgICAgICAgKiBjb25zaWRlcmVkIHVucmVsaWFibGUsIHRoZSBkZXZpY2UgbWF5IHJldHVybiBVTlNVUFBPUlRFRCBpbnN0ZWFkLgorICAgICAgICAgKi8KKyAgICAgICAgRFBJX1ggPSA0LAorICAgICAgICBEUElfWSA9IDUsCisgICAgfTsKKworICAgIC8qKiBEaXNwbGF5IHJlcXVlc3RzIHJldHVybmVkIGJ5IGdldERpc3BsYXlSZXF1ZXN0cy4gKi8KKyAgICBlbnVtIERpc3BsYXlSZXF1ZXN0IDogdWludDMyX3QgeworICAgICAgICAvKioKKyAgICAgICAgICogSW5zdHJ1Y3RzIHRoZSBjbGllbnQgdG8gcHJvdmlkZSBhIG5ldyBjbGllbnQgdGFyZ2V0IGJ1ZmZlciwgZXZlbiBpZgorICAgICAgICAgKiBubyBsYXllcnMgYXJlIG1hcmtlZCBmb3IgY2xpZW50IGNvbXBvc2l0aW9uLgorICAgICAgICAgKi8KKyAgICAgICAgRkxJUF9DTElFTlRfVEFSR0VUID0gMSA8PCAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBJbnN0cnVjdHMgdGhlIGNsaWVudCB0byB3cml0ZSB0aGUgcmVzdWx0IG9mIGNsaWVudCBjb21wb3NpdGlvbgorICAgICAgICAgKiBkaXJlY3RseSBpbnRvIHRoZSB2aXJ0dWFsIGRpc3BsYXkgb3V0cHV0IGJ1ZmZlci4gSWYgYW55IG9mIHRoZQorICAgICAgICAgKiBsYXllcnMgYXJlIG5vdCBtYXJrZWQgYXMgQ29tcG9zaXRpb246OkNMSUVOVCBvciB0aGUgZ2l2ZW4gZGlzcGxheQorICAgICAgICAgKiBpcyBub3QgYSB2aXJ0dWFsIGRpc3BsYXksIHRoaXMgcmVxdWVzdCBoYXMgbm8gZWZmZWN0LgorICAgICAgICAgKi8KKyAgICAgICAgV1JJVEVfQ0xJRU5UX1RBUkdFVF9UT19PVVRQVVQgPSAxIDw8IDEsCisgICAgfTsKKworICAgIC8qKiBMYXllciByZXF1ZXN0cyByZXR1cm5lZCBmcm9tIGdldERpc3BsYXlSZXF1ZXN0cy4gKi8KKyAgICBlbnVtIExheWVyUmVxdWVzdCA6IHVpbnQzMl90IHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBjbGllbnQgbXVzdCBjbGVhciBpdHMgdGFyZ2V0IHdpdGggdHJhbnNwYXJlbnQgcGl4ZWxzIHdoZXJlCisgICAgICAgICAqIHRoaXMgbGF5ZXIgd291bGQgYmUuIFRoZSBjbGllbnQgbWF5IGlnbm9yZSB0aGlzIHJlcXVlc3QgaWYgdGhlCisgICAgICAgICAqIGxheWVyIG11c3QgYmUgYmxlbmRlZC4KKyAgICAgICAgICovCisgICAgICAgIENMRUFSX0NMSUVOVF9UQVJHRVQgPSAxIDw8IDAsCisgICAgfTsKKworICAgIC8qKiBQb3dlciBtb2RlcyBmb3IgdXNlIHdpdGggc2V0UG93ZXJNb2RlLiAqLworICAgIGVudW0gUG93ZXJNb2RlIDogaW50MzJfdCB7CisgICAgICAgIC8qKiBUaGUgZGlzcGxheSBpcyBmdWxseSBvZmYgKGJsYW5rZWQpLiAqLworICAgICAgICBPRkYgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGVzZSBhcmUgb3B0aW9uYWwgbG93IHBvd2VyIG1vZGVzLiBnZXREb3plU3VwcG9ydCBtYXkgYmUgY2FsbGVkIHRvCisgICAgICAgICAqIGRldGVybWluZSB3aGV0aGVyIGEgZ2l2ZW4gZGlzcGxheSBzdXBwb3J0cyB0aGVzZSBtb2Rlcy4KKyAgICAgICAgICovCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkaXNwbGF5IGlzIHR1cm5lZCBvbiBhbmQgY29uZmlndXJlZCBpbiBhIGxvdyBwb3dlciBzdGF0ZSB0aGF0CisgICAgICAgICAqIGlzIHN1aXRhYmxlIGZvciBwcmVzZW50aW5nIGFtYmllbnQgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIsCisgICAgICAgICAqIHBvc3NpYmx5IHdpdGggbG93ZXIgZmlkZWxpdHkgdGhhbiBPTiwgYnV0IHdpdGggZ3JlYXRlciBlZmZpY2llbmN5LgorICAgICAgICAgKi8KKyAgICAgICAgRE9aRSA9IDEsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkaXNwbGF5IGlzIGNvbmZpZ3VyZWQgYXMgaW4gRE9aRSBidXQgbWF5IHN0b3AgYXBwbHlpbmcgZGlzcGxheQorICAgICAgICAgKiB1cGRhdGVzIGZyb20gdGhlIGNsaWVudC4gVGhpcyBpcyBlZmZlY3RpdmVseSBhIGhpbnQgdG8gdGhlIGRldmljZQorICAgICAgICAgKiB0aGF0IGRyYXdpbmcgdG8gdGhlIGRpc3BsYXkgaGFzIGJlZW4gc3VzcGVuZGVkIGFuZCB0aGF0IHRoZSB0aGUKKyAgICAgICAgICogZGV2aWNlIG11c3QgcmVtYWluIG9uIGluIGEgbG93IHBvd2VyIHN0YXRlIGFuZCBjb250aW51ZQorICAgICAgICAgKiBkaXNwbGF5aW5nIGl0cyBjdXJyZW50IGNvbnRlbnRzIGluZGVmaW5pdGVseSB1bnRpbCB0aGUgcG93ZXIgbW9kZQorICAgICAgICAgKiBjaGFuZ2VzLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGlzIG1vZGUgbWF5IGFsc28gYmUgdXNlZCBhcyBhIHNpZ25hbCB0byBlbmFibGUgaGFyZHdhcmUtYmFzZWQKKyAgICAgICAgICogZG96ZSBmdW5jdGlvbmFsaXR5LiBJbiB0aGlzIGNhc2UsIHRoZSBkZXZpY2UgaXMgZnJlZSB0byB0YWtlIG92ZXIKKyAgICAgICAgICogdGhlIGRpc3BsYXkgYW5kIG1hbmFnZSBpdCBhdXRvbm9tb3VzbHkgdG8gaW1wbGVtZW50IGEgbG93IHBvd2VyCisgICAgICAgICAqIGFsd2F5cy1vbiBkaXNwbGF5LgorICAgICAgICAgKi8KKyAgICAgICAgRE9aRV9TVVNQRU5EID0gMywKKworICAgICAgICAvKiogVGhlIGRpc3BsYXkgaXMgZnVsbHkgb24uICovCisgICAgICAgIE9OID0gMiwKKyAgICB9OworCisgICAgLyoqIFZzeW5jIHZhbHVlcyBwYXNzZWQgdG8gc2V0VnN5bmNFbmFibGVkLiAqLworICAgIGVudW0gVnN5bmMgOiBpbnQzMl90IHsKKyAgICAgICAgSU5WQUxJRCA9IDAsCisKKyAgICAgICAgLyoqIEVuYWJsZSB2c3luYy4gKi8KKyAgICAgICAgRU5BQkxFID0gMSwKKworICAgICAgICAvKiogRGlzYWJsZSB2c3luYy4gKi8KKyAgICAgICAgRElTQUJMRSA9IDIsCisgICAgfTsKKworICAgIC8qKiBCbGVuZCBtb2Rlcywgc2V0dGFibGUgcGVyIGxheWVyLiAqLworICAgIGVudW0gQmxlbmRNb2RlIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKiBjb2xvck91dCA9IGNvbG9yU3JjICovCisgICAgICAgIE5PTkUgPSAxLAorCisgICAgICAgIC8qKiBjb2xvck91dCA9IGNvbG9yU3JjICsgY29sb3JEc3QgKiAoMSAtIGFscGhhU3JjKSAqLworICAgICAgICBQUkVNVUxUSVBMSUVEID0gMiwKKworICAgICAgICAvKiogY29sb3JPdXQgPSBjb2xvclNyYyAqIGFscGhhU3JjICsgY29sb3JEc3QgKiAoMSAtIGFscGhhU3JjKSAqLworICAgICAgICBDT1ZFUkFHRSA9IDMsCisgICAgfTsKKworICAgIC8qKiBQb3NzaWJsZSBjb21wb3NpdGlvbiB0eXBlcyBmb3IgYSBnaXZlbiBsYXllci4gKi8KKyAgICBlbnVtIENvbXBvc2l0aW9uIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBUaGUgY2xpZW50IG11c3QgY29tcG9zaXRlIHRoaXMgbGF5ZXIgaW50byB0aGUgY2xpZW50IHRhcmdldCBidWZmZXIKKyAgICAgICAgICogKHByb3ZpZGVkIHRvIHRoZSBkZXZpY2UgdGhyb3VnaCBzZXRDbGllbnRUYXJnZXQpLgorICAgICAgICAgKgorICAgICAgICAgKiBUaGUgZGV2aWNlIG11c3Qgbm90IHJlcXVlc3QgYW55IGNvbXBvc2l0aW9uIHR5cGUgY2hhbmdlcyBmb3IgbGF5ZXJzCisgICAgICAgICAqIG9mIHRoaXMgdHlwZS4KKyAgICAgICAgICovCisgICAgICAgIENMSUVOVCA9IDEsCisKKyAgICAgICAgLyoqCisgICAgICAgICAqIFRoZSBkZXZpY2UgbXVzdCBoYW5kbGUgdGhlIGNvbXBvc2l0aW9uIG9mIHRoaXMgbGF5ZXIgdGhyb3VnaCBhCisgICAgICAgICAqIGhhcmR3YXJlIG92ZXJsYXkgb3Igb3RoZXIgc2ltaWxhciBtZWFucy4KKyAgICAgICAgICoKKyAgICAgICAgICogVXBvbiB2YWxpZGF0ZURpc3BsYXksIHRoZSBkZXZpY2UgbWF5IHJlcXVlc3QgYSBjaGFuZ2UgZnJvbSB0aGlzCisgICAgICAgICAqIHR5cGUgdG8gQ0xJRU5ULgorICAgICAgICAgKi8KKyAgICAgICAgREVWSUNFID0gMiwKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGRldmljZSBtdXN0IHJlbmRlciB0aGlzIGxheWVyIHVzaW5nIHRoZSBjb2xvciBzZXQgdGhyb3VnaAorICAgICAgICAgKiBzZXRMYXllckNvbG9yLiBJZiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IHN1cHBvcnRlZCBvbiBhIGxheWVyCisgICAgICAgICAqIHRoYXQgdGhlIGNsaWVudCBzZXRzIHRvIFNPTElEX0NPTE9SLCB0aGUgZGV2aWNlIG11c3QgcmVxdWVzdCB0aGF0CisgICAgICAgICAqIHRoZSBjb21wb3NpdGlvbiB0eXBlIG9mIHRoYXQgbGF5ZXIgaXMgY2hhbmdlZCB0byBDTElFTlQgdXBvbiB0aGUKKyAgICAgICAgICogbmV4dCBjYWxsIHRvIHZhbGlkYXRlRGlzcGxheS4KKyAgICAgICAgICoKKyAgICAgICAgICogVXBvbiB2YWxpZGF0ZURpc3BsYXksIHRoZSBkZXZpY2UgbWF5IHJlcXVlc3QgYSBjaGFuZ2UgZnJvbSB0aGlzCisgICAgICAgICAqIHR5cGUgdG8gQ0xJRU5ULgorICAgICAgICAgKi8KKyAgICAgICAgU09MSURfQ09MT1IgPSAzLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBTaW1pbGFyIHRvIERFVklDRSwgYnV0IHRoZSBwb3NpdGlvbiBvZiB0aGlzIGxheWVyIG1heSBhbHNvIGJlIHNldAorICAgICAgICAgKiBhc3luY2hyb25vdXNseSB0aHJvdWdoIHNldEN1cnNvclBvc2l0aW9uLiBJZiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMKKyAgICAgICAgICogbm90IHN1cHBvcnRlZCBvbiBhIGxheWVyIHRoYXQgdGhlIGNsaWVudCBzZXRzIHRvIENVUlNPUiwgdGhlIGRldmljZQorICAgICAgICAgKiBtdXN0IHJlcXVlc3QgdGhhdCB0aGUgY29tcG9zaXRpb24gdHlwZSBvZiB0aGF0IGxheWVyIGlzIGNoYW5nZWQgdG8KKyAgICAgICAgICogQ0xJRU5UIHVwb24gdGhlIG5leHQgY2FsbCB0byB2YWxpZGF0ZURpc3BsYXkuCisgICAgICAgICAqCisgICAgICAgICAqIFVwb24gdmFsaWRhdGVEaXNwbGF5LCB0aGUgZGV2aWNlIG1heSByZXF1ZXN0IGEgY2hhbmdlIGZyb20gdGhpcworICAgICAgICAgKiB0eXBlIHRvIGVpdGhlciBERVZJQ0Ugb3IgQ0xJRU5ULiAgQ2hhbmdpbmcgdG8gREVWSUNFIHdpbGwgcHJldmVudAorICAgICAgICAgKiB0aGUgdXNlIG9mIHNldEN1cnNvclBvc2l0aW9uIGJ1dCBzdGlsbCBwZXJtaXQgdGhlIGRldmljZSB0bworICAgICAgICAgKiBjb21wb3NpdGUgdGhlIGxheWVyLgorICAgICAgICAgKi8KKyAgICAgICAgQ1VSU09SID0gNCwKKworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIGRldmljZSBtdXN0IGhhbmRsZSB0aGUgY29tcG9zaXRpb24gb2YgdGhpcyBsYXllciwgYXMgd2VsbCBhcworICAgICAgICAgKiBpdHMgYnVmZmVyIHVwZGF0ZXMgYW5kIGNvbnRlbnQgc3luY2hyb25pemF0aW9uLiBPbmx5IHN1cHBvcnRlZCBvbgorICAgICAgICAgKiBkZXZpY2VzIHdoaWNoIHByb3ZpZGUgQ2FwYWJpbGl0eTo6U0lERUJBTkRfU1RSRUFNLgorICAgICAgICAgKgorICAgICAgICAgKiBVcG9uIHZhbGlkYXRlRGlzcGxheSwgdGhlIGRldmljZSBtYXkgcmVxdWVzdCBhIGNoYW5nZSBmcm9tIHRoaXMKKyAgICAgICAgICogdHlwZSB0byBlaXRoZXIgREVWSUNFIG9yIENMSUVOVCwgYnV0IGl0IGlzIHVubGlrZWx5IHRoYXQgY29udGVudAorICAgICAgICAgKiB3aWxsIGRpc3BsYXkgY29ycmVjdGx5IGluIHRoZXNlIGNhc2VzLgorICAgICAgICAgKi8KKyAgICAgICAgU0lERUJBTkQgPSA1LAorICAgIH07CisKKyAgICAvKiogRGlzcGxheSB0eXBlcyByZXR1cm5lZCBieSBnZXREaXNwbGF5VHlwZS4gKi8KKyAgICBlbnVtIERpc3BsYXlUeXBlIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorCisgICAgICAgIC8qKgorICAgICAgICAgKiBBbGwgcGh5c2ljYWwgZGlzcGxheXMsIGluY2x1ZGluZyBib3RoIGludGVybmFsIGRpc3BsYXlzIGFuZAorICAgICAgICAgKiBob3RwbHVnZ2FibGUgZXh0ZXJuYWwgZGlzcGxheXMuCisgICAgICAgICAqLworICAgICAgICBQSFlTSUNBTCA9IDEsCisKKyAgICAgICAgLyoqIFZpcnR1YWwgZGlzcGxheXMgY3JlYXRlZCBieSBjcmVhdGVWaXJ0dWFsRGlzcGxheS4gKi8KKyAgICAgICAgVklSVFVBTCA9IDIsCisgICAgfTsKKworICAgIC8qKiBTcGVjaWFsIGluZGV4IHZhbHVlcyAoYWx3YXlzIG5lZ2F0aXZlKSBmb3IgY29tbWFuZCBxdWV1ZSBjb21tYW5kcy4gKi8KKyAgICBlbnVtIEhhbmRsZUluZGV4IDogaW50MzJfdCB7CisgICAgICAgIC8qKiBObyBoYW5kbGUgKi8KKyAgICAgICAgRU1QVFkgPSAtMSwKKworICAgICAgICAvKiogVXNlIGNhY2hlZCBoYW5kbGUgKi8KKyAgICAgICAgQ0FDSEVEID0gLTIsCisgICAgfTsKKworICAgIHN0cnVjdCBSZWN0IHsKKyAgICAgICAgaW50MzJfdCBsZWZ0OworICAgICAgICBpbnQzMl90IHRvcDsKKyAgICAgICAgaW50MzJfdCByaWdodDsKKyAgICAgICAgaW50MzJfdCBib3R0b207CisgICAgfTsKKworICAgIHN0cnVjdCBGUmVjdCB7CisgICAgICAgIGZsb2F0IGxlZnQ7CisgICAgICAgIGZsb2F0IHRvcDsKKyAgICAgICAgZmxvYXQgcmlnaHQ7CisgICAgICAgIGZsb2F0IGJvdHRvbTsKKyAgICB9OworCisgICAgc3RydWN0IENvbG9yIHsKKyAgICAgICAgdWludDhfdCByOworICAgICAgICB1aW50OF90IGc7CisgICAgICAgIHVpbnQ4X3QgYjsKKyAgICAgICAgdWludDhfdCBhOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBQcm92aWRlcyBhIElDb21wb3NlckNhbGxiYWNrIG9iamVjdCBmb3IgdGhlIGRldmljZSB0byBjYWxsLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBvbmx5IG9uY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgaXMgdGhlIElDb21wb3NlckNhbGxiYWNrIG9iamVjdC4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgcmVnaXN0ZXJDYWxsYmFjayhJQ29tcG9zZXJDYWxsYmFjayBjYWxsYmFjayk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBtYXhpbXVtIG51bWJlciBvZiB2aXJ0dWFsIGRpc3BsYXlzIHN1cHBvcnRlZCBieSB0aGlzIGRldmljZQorICAgICAqICh3aGljaCBtYXkgYmUgMCkuIFRoZSBjbGllbnQgbXVzdCBub3QgYXR0ZW1wdCB0byBjcmVhdGUgbW9yZSB0aGFuIHRoaXMKKyAgICAgKiBtYW55IHZpcnR1YWwgZGlzcGxheXMgb24gdGhpcyBkZXZpY2UuIFRoaXMgbnVtYmVyIG11c3Qgbm90IGNoYW5nZSBmb3IKKyAgICAgKiB0aGUgbGlmZXRpbWUgb2YgdGhlIGRldmljZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gY291bnQgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHZpcnR1YWwgZGlzcGxheXMgc3VwcG9ydGVkLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgZ2VuZXJhdGVzICh1aW50MzJfdCBjb3VudCk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgbmV3IHZpcnR1YWwgZGlzcGxheSB3aXRoIHRoZSBnaXZlbiB3aWR0aCBhbmQgaGVpZ2h0LiBUaGUKKyAgICAgKiBmb3JtYXQgcGFzc2VkIGludG8gdGhpcyBmdW5jdGlvbiBpcyB0aGUgZGVmYXVsdCBmb3JtYXQgcmVxdWVzdGVkIGJ5IHRoZQorICAgICAqIGNvbnN1bWVyIG9mIHRoZSB2aXJ0dWFsIGRpc3BsYXkgb3V0cHV0IGJ1ZmZlcnMuCisgICAgICoKKyAgICAgKiBUaGUgZGlzcGxheSBtdXN0IGJlIGFzc3VtZWQgdG8gYmUgb24gZnJvbSB0aGUgdGltZSB0aGUgZmlyc3QgZnJhbWUgaXMKKyAgICAgKiBwcmVzZW50ZWQgdW50aWwgdGhlIGRpc3BsYXkgaXMgZGVzdHJveWVkLgorICAgICAqCisgICAgICogQHBhcmFtIHdpZHRoIGlzIHRoZSB3aWR0aCBpbiBwaXhlbHMuCisgICAgICogQHBhcmFtIGhlaWdodCBpcyB0aGUgaGVpZ2h0IGluIHBpeGVscy4KKyAgICAgKiBAcGFyYW0gZm9ybWF0SGludCBpcyB0aGUgZGVmYXVsdCBvdXRwdXQgYnVmZmVyIGZvcm1hdCBzZWxlY3RlZCBieQorICAgICAqICAgICAgICB0aGUgY29uc3VtZXIuCisgICAgICogQHBhcmFtIG91dHB1dEJ1ZmZlclNsb3RDb3VudCBpcyB0aGUgbnVtYmVyIG9mIG91dHB1dCBidWZmZXIgc2xvdHMgdG8gYmUKKyAgICAgKiAgICAgICAgcmVzZXJ2ZWQuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgVU5TVVBQT1JURUQgd2hlbiB0aGUgd2lkdGggb3IgaGVpZ2h0IGlzIHRvbyBsYXJnZSBmb3IgdGhlCisgICAgICogICAgICAgICAgICAgICAgICAgICBkZXZpY2UgdG8gYmUgYWJsZSB0byBjcmVhdGUgYSB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICogICAgICAgICBOT19SRVNPVVJDRVMgd2hlbiB0aGUgZGV2aWNlIGlzIHVuYWJsZSB0byBjcmVhdGUgYSBuZXcgdmlydHVhbAorICAgICAqICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXkgYXQgdGhpcyB0aW1lLgorICAgICAqIEByZXR1cm4gZGlzcGxheSBpcyB0aGUgbmV3bHktY3JlYXRlZCB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICogQHJldHVybiBmb3JtYXQgaXMgdGhlIGZvcm1hdCBvZiB0aGUgYnVmZmVyIHRoZSBkZXZpY2Ugd2lsbCBwcm9kdWNlLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0SGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvdXRwdXRCdWZmZXJTbG90Q291bnQpCisgICAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCk7CisKKyAgICAvKioKKyAgICAgKiBEZXN0cm95cyBhIHZpcnR1YWwgZGlzcGxheS4gQWZ0ZXIgdGhpcyBjYWxsIGFsbCByZXNvdXJjZXMgY29uc3VtZWQgYnkKKyAgICAgKiB0aGlzIGRpc3BsYXkgbWF5IGJlIGZyZWVkIGJ5IHRoZSBkZXZpY2UgYW5kIGFueSBvcGVyYXRpb25zIHBlcmZvcm1lZCBvbgorICAgICAqIHRoaXMgZGlzcGxheSBtdXN0IGZhaWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgdmlydHVhbCBkaXNwbGF5IHRvIGRlc3Ryb3kuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfUEFSQU1FVEVSIHdoZW4gdGhlIGRpc3BsYXkgaGFuZGxlIHdoaWNoIHdhcyBwYXNzZWQgaW4gZG9lcworICAgICAqICAgICAgICAgICAgICAgICAgICAgICBub3QgcmVmZXIgdG8gYSB2aXJ0dWFsIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IpOworCisgICAgLyoqCisgICAgICogQ3JlYXRlcyBhIG5ldyBsYXllciBvbiB0aGUgZ2l2ZW4gZGlzcGxheS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IG9uIHdoaWNoIHRvIGNyZWF0ZSB0aGUgbGF5ZXIuCisgICAgICogQHBhcmFtIGJ1ZmZlclNsb3RDb3VudCBpcyB0aGUgbnVtYmVyIG9mIGJ1ZmZlciBzbG90IHRvIGJlIHJlc2VydmVkLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqICAgICAgICAgTk9fUkVTT1VSQ0VTIHdoZW4gdGhlIGRldmljZSB3YXMgdW5hYmxlIHRvIGNyZWF0ZSBhIGxheWVyIHRoaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICB0aW1lLgorICAgICAqIEByZXR1cm4gbGF5ZXIgaXMgdGhlIGhhbmRsZSBvZiB0aGUgbmV3IGxheWVyLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBjcmVhdGVMYXllcihEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICAgICAgdWludDMyX3QgYnVmZmVyU2xvdENvdW50KQorICAgICBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLAorICAgICAgICAgICAgICAgIExheWVyIGxheWVyKTsKKworICAgIC8qKgorICAgICAqIERlc3Ryb3lzIHRoZSBnaXZlbiBsYXllci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IG9uIHdoaWNoIHRoZSBsYXllciB3YXMgY3JlYXRlZC4KKyAgICAgKiBAcGFyYW0gbGF5ZXIgaXMgdGhlIGxheWVyIHRvIGRlc3Ryb3kuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfTEFZRVIgd2hlbiBhbiBpbnZhbGlkIGxheWVyIGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBkZXN0cm95TGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllcikgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgd2hpY2ggZGlzcGxheSBjb25maWd1cmF0aW9uIGlzIGN1cnJlbnRseSBhY3RpdmUuCisgICAgICoKKyAgICAgKiBJZiBubyBkaXNwbGF5IGNvbmZpZ3VyYXRpb24gaXMgY3VycmVudGx5IGFjdGl2ZSwgdGhpcyBmdW5jdGlvbiBtdXN0CisgICAgICogcmV0dXJuIEJBRF9DT05GSUcuIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2xpZW50IHRvIGNhbGwKKyAgICAgKiBzZXRBY3RpdmVDb25maWcgd2l0aCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gYmVmb3JlIGF0dGVtcHRpbmcgdG8gcHJlc2VudAorICAgICAqIGFueXRoaW5nIG9uIHRoZSBkaXNwbGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIGFjdGl2ZSBjb25maWcgaXMgcXVlcmllZC4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiAgICAgICAgIEJBRF9DT05GSUcgd2hlbiBubyBjb25maWd1cmF0aW9uIGlzIGN1cnJlbnRseSBhY3RpdmUuCisgICAgICogQHJldHVybiBjb25maWcgaXMgdGhlIGN1cnJlbnRseSBhY3RpdmUgZGlzcGxheSBjb25maWd1cmF0aW9uLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5KSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLCBDb25maWcgY29uZmlnKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgd2hldGhlciBhIGNsaWVudCB0YXJnZXQgd2l0aCB0aGUgZ2l2ZW4gcHJvcGVydGllcyBjYW4gYmUKKyAgICAgKiBoYW5kbGVkIGJ5IHRoZSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgcmV0dXJuIHRydWUgZm9yIGEgY2xpZW50IHRhcmdldCB3aXRoIHdpZHRoIGFuZAorICAgICAqIGhlaWdodCBlcXVhbCB0byB0aGUgYWN0aXZlIGRpc3BsYXkgY29uZmlndXJhdGlvbiBkaW1lbnNpb25zLAorICAgICAqIFBpeGVsRm9ybWF0OjpSR0JBXzg4ODgsIGFuZCBEYXRhc3BhY2U6OlVOS05PV04uIEl0IGlzIG5vdCByZXF1aXJlZCB0bworICAgICAqIHJldHVybiB0cnVlIGZvciBhbnkgb3RoZXIgY29uZmlndXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEBwYXJhbSB3aWR0aCBpcyB0aGUgY2xpZW50IHRhcmdldCB3aWR0aCBpbiBwaXhlbHMuCisgICAgICogQHBhcmFtIGhlaWdodCBpcyB0aGUgY2xpZW50IHRhcmdldCBoZWlnaHQgaW4gcGl4ZWxzLgorICAgICAqIEBwYXJhbSBmb3JtYXQgaXMgdGhlIGNsaWVudCB0YXJnZXQgZm9ybWF0LgorICAgICAqIEBwYXJhbSBkYXRhc3BhY2UgaXMgdGhlIGNsaWVudCB0YXJnZXQgZGF0YXNwYWNlLCBhcyBkZXNjcmliZWQgaW4KKyAgICAgKiAgICAgICAgc2V0TGF5ZXJEYXRhc3BhY2UuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIHRoZSBnaXZlbiBjb25maWd1cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhc3BhY2UgZGF0YXNwYWNlKQorICAgICAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgY29sb3IgbW9kZXMgc3VwcG9ydGVkIG9uIHRoaXMgZGlzcGxheS4KKyAgICAgKgorICAgICAqIEFsbCBkZXZpY2VzIG11c3Qgc3VwcG9ydCBhdCBsZWFzdCBDb2xvck1vZGU6Ok5BVElWRS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gbW9kZXMgaXMgYW4gYXJyYXkgb2YgY29sb3IgbW9kZXMuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5KQorICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICB2ZWM8Q29sb3JNb2RlPiBtb2Rlcyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgZGlzcGxheSBhdHRyaWJ1dGUgdmFsdWUgZm9yIGEgcGFydGljdWxhciBkaXNwbGF5CisgICAgICogY29uZmlndXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEBwYXJhbSBjb25maWcgaXMgdGhlIGRpc3BsYXkgY29uZmlndXJhdGlvbiBmb3Igd2hpY2ggdG8gcmV0dXJuCisgICAgICogICAgICAgIGF0dHJpYnV0ZSB2YWx1ZXMuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfQ09ORklHIHdoZW4gY29uZmlnIGRvZXMgbm90IG5hbWUgYSB2YWxpZCBjb25maWd1cmF0aW9uIGZvcgorICAgICAqICAgICAgICAgICAgICAgICAgICB0aGlzIGRpc3BsYXkuCisgICAgICogICAgICAgICBCQURfUEFSQU1FVEVSIHdoZW4gYXR0cmlidXRlIGlzIHVucmVjb2duaXplZC4KKyAgICAgKiAgICAgICAgIFVOU1VQUE9SVEVEIHdoZW4gYXR0cmlidXRlIGNhbm5vdCBiZSBxdWVyaWVkIGZvciB0aGUgY29uZmlnLgorICAgICAqIEByZXR1cm4gdmFsdWUgaXMgdGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldERpc3BsYXlBdHRyaWJ1dGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZSBhdHRyaWJ1dGUpCisgICAgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyBoYW5kbGVzIGZvciBhbGwgb2YgdGhlIHZhbGlkIGRpc3BsYXkgY29uZmlndXJhdGlvbnMgb24gdGhpcworICAgICAqIGRpc3BsYXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgZGlzcGxheSB0byBxdWVyeS4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIGNvbmZpZ3MgaXMgYW4gYXJyYXkgb2YgY29uZmlndXJhdGlvbiBoYW5kbGVzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXkpCisgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgdmVjPENvbmZpZz4gY29uZmlncyk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGEgaHVtYW4tcmVhZGFibGUgdmVyc2lvbiBvZiB0aGUgZGlzcGxheSdzIG5hbWUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiBAcmV0dXJuIG5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSkgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwgc3RyaW5nIG5hbWUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBkaXNwbGF5IGlzIGEgcGh5c2ljYWwgb3IgdmlydHVhbCBkaXNwbGF5LgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gcXVlcnkuCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogQHJldHVybiB0eXBlIGlzIHRoZSB0eXBlIG9mIHRoZSBkaXNwbGF5LgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXkpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsIERpc3BsYXlUeXBlIHR5cGUpOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBnaXZlbiBkaXNwbGF5IHN1cHBvcnRzIFBvd2VyTW9kZTo6RE9aRSBhbmQKKyAgICAgKiBQb3dlck1vZGU6OkRPWkVfU1VTUEVORC4gRE9aRV9TVVNQRU5EIG1heSBub3QgcHJvdmlkZSBhbnkgYmVuZWZpdCBvdmVyCisgICAgICogRE9aRSAoc2VlIHRoZSBkZWZpbml0aW9uIG9mIFBvd2VyTW9kZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiksIGJ1dCBpZgorICAgICAqIGJvdGggRE9aRSBhbmQgRE9aRV9TVVNQRU5EIGFyZSBubyBkaWZmZXJlbnQgZnJvbSBQb3dlck1vZGU6Ok9OLCB0aGUKKyAgICAgKiBkZXZpY2UgbXVzdCBub3QgY2xhaW0gc3VwcG9ydC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gc3VwcG9ydCBpcyB0cnVlIG9ubHkgd2hlbiB0aGUgZGlzcGxheSBzdXBwb3J0cyBkb3plIG1vZGVzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBnZXREb3plU3VwcG9ydChEaXNwbGF5IGRpc3BsYXkpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsIGJvb2wgc3VwcG9ydCk7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRoZSBoaWdoIGR5bmFtaWMgcmFuZ2UgKEhEUikgY2FwYWJpbGl0aWVzIG9mIHRoZSBnaXZlbiBkaXNwbGF5LAorICAgICAqIHdoaWNoIGFyZSBpbnZhcmlhbnQgd2l0aCByZWdhcmQgdG8gdGhlIGFjdGl2ZSBjb25maWd1cmF0aW9uLgorICAgICAqCisgICAgICogRGlzcGxheXMgd2hpY2ggYXJlIG5vdCBIRFItY2FwYWJsZSBtdXN0IHJldHVybiBubyB0eXBlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkaXNwbGF5IGlzIHRoZSBkaXNwbGF5IHRvIHF1ZXJ5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqIEByZXR1cm4gdHlwZXMgaXMgYW4gYXJyYXkgb2YgSERSIHR5cGVzLCBtYXkgaGF2ZSAwIGVsZW1lbnRzIGlmIHRoZQorICAgICAqICAgICAgICAgZGlzcGxheSBpcyBub3QgSERSLWNhcGFibGUuCisgICAgICogQHJldHVybiBtYXhMdW1pbmFuY2UgaXMgdGhlIGRlc2lyZWQgY29udGVudCBtYXhpbXVtIGx1bWluYW5jZSBmb3IgdGhpcworICAgICAqICAgICAgICAgZGlzcGxheSBpbiBjZC9tXjIuCisgICAgICogQHJldHVybiBtYXhBdmVyYWdlTHVtaW5hbmNlIC0gdGhlIGRlc2lyZWQgY29udGVudCBtYXhpbXVtIGZyYW1lLWF2ZXJhZ2UKKyAgICAgKiAgICAgICAgIGx1bWluYW5jZSBmb3IgdGhpcyBkaXNwbGF5IGluIGNkL21eMi4KKyAgICAgKiBAcmV0dXJuIG1pbkx1bWluYW5jZSBpcyB0aGUgZGVzaXJlZCBjb250ZW50IG1pbmltdW0gbHVtaW5hbmNlIGZvciB0aGlzCisgICAgICogICAgICAgICBkaXNwbGF5IGluIGNkL21eMi4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZ2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgIHZlYzxIZHI+IHR5cGVzLAorICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBtYXhMdW1pbmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IG1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IG1pbkx1bWluYW5jZSk7CisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhlIG51bWJlciBvZiBjbGllbnQgdGFyZ2V0IHNsb3RzIHRvIGJlIHJlc2VydmVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIHNsb3RzIGFyZSByZXNlcnZlZC4KKyAgICAgKiBAcGFyYW0gY2xpZW50VGFyZ2V0U2xvdENvdW50IGlzIHRoZSBzbG90IGNvdW50IGZvciBjbGllbnQgdGFyZ2V0cy4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHVuYWJsZSB0byByZXNlcnZlIHRoZSBzbG90cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KQorICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBhY3RpdmUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBkaXNwbGF5LiBVcG9uIHJldHVybmluZywgdGhlCisgICAgICogZ2l2ZW4gZGlzcGxheSBjb25maWd1cmF0aW9uIG11c3QgYmUgYWN0aXZlIGFuZCByZW1haW4gc28gdW50aWwgZWl0aGVyCisgICAgICogdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYWdhaW4gb3IgdGhlIGRpc3BsYXkgaXMgZGlzY29ubmVjdGVkLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIGFjdGl2ZSBjb25maWcgaXMgc2V0LgorICAgICAqIEBwYXJhbSBjb25maWcgaXMgdGhlIG5ldyBkaXNwbGF5IGNvbmZpZ3VyYXRpb24uCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfQ09ORklHIHdoZW4gdGhlIGNvbmZpZ3VyYXRpb24gaGFuZGxlIHBhc3NlZCBpbiBpcyBub3QgdmFsaWQKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgZm9yIHRoaXMgZGlzcGxheS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZykgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBjb2xvciBtb2RlIG9mIHRoZSBnaXZlbiBkaXNwbGF5LgorICAgICAqCisgICAgICogVXBvbiByZXR1cm5pbmcgZnJvbSB0aGlzIGZ1bmN0aW9uLCB0aGUgY29sb3IgbW9kZSBjaGFuZ2UgbXVzdCBoYXZlCisgICAgICogZnVsbHkgdGFrZW4gZWZmZWN0LgorICAgICAqCisgICAgICogQWxsIGRldmljZXMgbXVzdCBzdXBwb3J0IGF0IGxlYXN0IENvbG9yTW9kZTo6TkFUSVZFLCBhbmQgZGlzcGxheXMgYXJlCisgICAgICogYXNzdW1lZCB0byBiZSBpbiB0aGlzIG1vZGUgdXBvbiBob3RwbHVnLgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIGNvbG9yIG1vZGUgaXMgc2V0LgorICAgICAqIEBwYXJhbSBtb2RlIGlzIHRoZSBtb2RlIHRvIHNldCB0by4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBCQURfRElTUExBWSB3aGVuIGFuIGludmFsaWQgZGlzcGxheSBoYW5kbGUgd2FzIHBhc3NlZCBpbi4KKyAgICAgKiAgICAgICAgIEJBRF9QQVJBTUVURVIgd2hlbiBtb2RlIGlzIG5vdCBhIHZhbGlkIGNvbG9yIG1vZGUuCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIG1vZGUgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIHNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIFNldHMgdGhlIHBvd2VyIG1vZGUgb2YgdGhlIGdpdmVuIGRpc3BsYXkuIFRoZSB0cmFuc2l0aW9uIG11c3QgYmUKKyAgICAgKiBjb21wbGV0ZSB3aGVuIHRoaXMgZnVuY3Rpb24gcmV0dXJucy4gSXQgaXMgdmFsaWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uCisgICAgICogbXVsdGlwbGUgdGltZXMgd2l0aCB0aGUgc2FtZSBwb3dlciBtb2RlLgorICAgICAqCisgICAgICogQWxsIGRpc3BsYXlzIG11c3Qgc3VwcG9ydCBQb3dlck1vZGU6Ok9OIGFuZCBQb3dlck1vZGU6Ok9GRi4gIFdoZXRoZXIgYQorICAgICAqIGRpc3BsYXkgc3VwcG9ydHMgUG93ZXJNb2RlOjpET1pFIG9yIFBvd2VyTW9kZTo6RE9aRV9TVVNQRU5EIG1heSBiZQorICAgICAqIHF1ZXJpZWQgdXNpbmcgZ2V0RG96ZVN1cHBvcnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgZGlzcGxheSB0byB3aGljaCB0aGUgcG93ZXIgbW9kZSBpcyBzZXQuCisgICAgICogQHBhcmFtIG1vZGUgaXMgdGhlIG5ldyBwb3dlciBtb2RlLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9ESVNQTEFZIHdoZW4gYW4gaW52YWxpZCBkaXNwbGF5IGhhbmRsZSB3YXMgcGFzc2VkIGluLgorICAgICAqICAgICAgICAgQkFEX1BBUkFNRVRFUiB3aGVuIG1vZGUgd2FzIG5vdCBhIHZhbGlkIHBvd2VyIG1vZGUuCisgICAgICogICAgICAgICBVTlNVUFBPUlRFRCB3aGVuIG1vZGUgaXMgbm90IHN1cHBvcnRlZCBvbiB0aGlzIGRpc3BsYXkuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIHNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIFBvd2VyTW9kZSBtb2RlKSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIHZzeW5jIHNpZ25hbCBmb3IgdGhlIGdpdmVuIGRpc3BsYXkuIFZpcnR1YWwKKyAgICAgKiBkaXNwbGF5cyBuZXZlciBnZW5lcmF0ZSB2c3luYyBjYWxsYmFja3MsIGFuZCBhbnkgYXR0ZW1wdCB0byBlbmFibGUKKyAgICAgKiB2c3luYyBmb3IgYSB2aXJ0dWFsIGRpc3BsYXkgdGhvdWdoIHRoaXMgZnVuY3Rpb24gbXVzdCBzdWNjZWVkIGFuZCBoYXZlCisgICAgICogbm8gb3RoZXIgZWZmZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIGRpc3BsYXkgaXMgdGhlIGRpc3BsYXkgdG8gd2hpY2ggdGhlIHZzeW5jIG1vZGUgaXMgc2V0LgorICAgICAqIEBwYXJhbSBlbmFibGVkIGluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZzeW5jCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgQkFEX0RJU1BMQVkgd2hlbiBhbiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIHdhcyBwYXNzZWQgaW4uCisgICAgICogICAgICAgICBCQURfUEFSQU1FVEVSIHdoZW4gZW5hYmxlZCB3YXMgYW4gaW52YWxpZCB2YWx1ZS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwgVnN5bmMgZW5hYmxlZCkgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIHRoZSBpbnB1dCBjb21tYW5kIG1lc3NhZ2UgcXVldWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRvciBpcyB0aGUgZGVzY3JpcHRvciBvZiB0aGUgaW5wdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIGZhaWxlZCB0byBzZXQgdGhlIHF1ZXVlIHRlbXBvcmFyaWx5LgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBzZXRJbnB1dENvbW1hbmRRdWV1ZShmbXFfc3luYzx1aW50MzJfdD4gZGVzY3JpcHRvcikKKyAgICAgICAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBvdXRwdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IG9ubHkgYmUgY2FsbGVkIGluc2lkZSBleGVjdXRlQ29tbWFuZHMgY2xvc3VyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIGZhaWxlZCB0byBnZXQgdGhlIHF1ZXVlIHRlbXBvcmFyaWx5LgorICAgICAqIEByZXR1cm4gZGVzY3JpcHRvciBpcyB0aGUgZGVzY3JpcHRvciBvZiB0aGUgb3V0cHV0IGNvbW1hbmQgcXVldWUuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGdldE91dHB1dENvbW1hbmRRdWV1ZSgpCisgICAgICAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgZm1xX3N5bmM8dWludDMyX3Q+IGRlc2NyaXB0b3IpOworCisgICAgLyoqCisgICAgICogRXhlY3V0ZXMgY29tbWFuZHMgZnJvbSB0aGUgaW5wdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLiBSZXR1cm4gdmFsdWVzCisgICAgICogZ2VuZXJhdGVkIGJ5IHRoZSBpbnB1dCBjb21tYW5kcyBhcmUgd3JpdHRlbiB0byB0aGUgb3V0cHV0IGNvbW1hbmQKKyAgICAgKiBtZXNzYWdlIHF1ZXVlIGluIHRoZSBmb3JtIG9mIHZhbHVlIGNvbW1hbmRzLgorICAgICAqCisgICAgICogQHBhcmFtIGluTGVuZ3RoIGlzIHRoZSBsZW5ndGggb2YgaW5wdXQgY29tbWFuZHMuCisgICAgICogQHBhcmFtIGluSGFuZGxlcyBpcyBhbiBhcnJheSBvZiBoYW5kbGVzIHJlZmVyZW5jZWQgYnkgdGhlIGlucHV0CisgICAgICogICAgICAgIGNvbW1hbmRzLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIEJBRF9QQVJBTUVURVIgd2hlbiBpbkxlbmd0aCBpcyBub3QgZXF1YWwgdG8gdGhlIGxlbmd0aCBvZgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kcyBpbiB0aGUgaW5wdXQgY29tbWFuZCBtZXNzYWdlIHF1ZXVlLgorICAgICAqICAgICAgICAgTk9fUkVTT1VSQ0VTIHdoZW4gdGhlIG91dHB1dCBjb21tYW5kIG1lc3NhZ2UgcXVldWUgd2FzIG5vdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgIHByb3Blcmx5IGRyYWluZWQuCisgICAgICogQHBhcmFtIG91dFF1ZXVlQ2hhbmdlZCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgb3V0cHV0IGNvbW1hbmQgbWVzc2FnZQorICAgICAqICAgICAgICBxdWV1ZSBoYXMgY2hhbmdlZC4KKyAgICAgKiBAcGFyYW0gb3V0TGVuZ3RoIGlzIHRoZSBsZW5ndGggb2Ygb3V0cHV0IGNvbW1hbmRzLgorICAgICAqIEBwYXJhbSBvdXRIYW5kbGVzIGlzIGFuIGFycmF5IG9mIGhhbmRsZXMgcmVmZXJlbmNlZCBieSB0aGUgb3V0cHV0CisgICAgICogICAgICAgIGNvbW1hbmRzLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBleGVjdXRlQ29tbWFuZHModWludDMyX3QgaW5MZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIHZlYzxoYW5kbGU+IGluSGFuZGxlcykKKyAgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgIGJvb2wgb3V0UXVldWVDaGFuZ2VkLAorICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvdXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgIHZlYzxoYW5kbGU+IG91dEhhbmRsZXMpOworCisgICAgLyoqCisgICAgICogU0VMRUNUX0RJU1BMQVkgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZWxlY3REaXNwbGF5KERpc3BsYXkgZGlzcGxheSk7CisgICAgICoKKyAgICAgKiBTZWxlY3RzIHRoZSBjdXJyZW50IGRpc3BsYXkgaW1wbGllZCBieSBhbGwgb3RoZXIgY29tbWFuZHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheSBpcyB0aGUgbmV3bHkgc2VsZWN0ZWQgZGlzcGxheS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VMRUNUX0xBWUVSIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2VsZWN0TGF5ZXIoTGF5ZXIgbGF5ZXIpOworICAgICAqCisgICAgICogU2VsZWN0cyB0aGUgY3VycmVudCBsYXllciBpbXBsaWVkIGJ5IGFsbCBpbXBsaWNpdCBsYXllciBjb21tYW5kcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXllciBpcyB0aGUgbmV3bHkgc2VsZWN0ZWQgbGF5ZXIuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9FUlJPUiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldEVycm9yKHVpbnQzMl90IGxvY2F0aW9uLCBFcnJvciBlcnJvcik7CisgICAgICoKKyAgICAgKiBJbmRpY2F0ZXMgYW4gZXJyb3IgZ2VuZXJhdGVkIGJ5IGEgY29tbWFuZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsb2NhdGlvbiBpcyB0aGUgb2Zmc2V0IG9mIHRoZSBjb21tYW5kIGluIHRoZSBpbnB1dCBjb21tYW5kCisgICAgICogICAgICAgIG1lc3NhZ2UgcXVldWUuCisgICAgICogQHBhcmFtIGVycm9yIGlzIHRoZSBlcnJvciBnZW5lcmF0ZWQgYnkgdGhlIGNvbW1hbmQuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9DSEFOR0VEX0NPTVBPU0lUSU9OX1RZUEVTIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0Q2hhbmdlZENvbXBvc2l0aW9uVHlwZXModmVjPExheWVyPiBsYXllcnMsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWM8Q29tcG9zaXRpb24+IHR5cGVzKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGxheWVycyBmb3Igd2hpY2ggdGhlIGRldmljZSByZXF1aXJlcyBhIGRpZmZlcmVudCBjb21wb3NpdGlvbgorICAgICAqIHR5cGUgdGhhbiBoYWQgYmVlbiBzZXQgcHJpb3IgdG8gdGhlIGxhc3QgY2FsbCB0byBWQUxJREFURV9ESVNQTEFZLiBUaGUKKyAgICAgKiBjbGllbnQgbXVzdCBlaXRoZXIgdXBkYXRlIGl0cyBzdGF0ZSB3aXRoIHRoZXNlIHR5cGVzIGFuZCBjYWxsCisgICAgICogQUNDRVBUX0RJU1BMQVlfQ0hBTkdFUywgb3IgbXVzdCBzZXQgbmV3IHR5cGVzIGFuZCBhdHRlbXB0IHRvIHZhbGlkYXRlCisgICAgICogdGhlIGRpc3BsYXkgYWdhaW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gbGF5ZXJzIGlzIGFuIGFycmF5IG9mIGxheWVyIGhhbmRsZXMuCisgICAgICogQHBhcmFtIHR5cGVzIGlzIGFuIGFycmF5IG9mIGNvbXBvc2l0aW9uIHR5cGVzLCBlYWNoIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgKiAgICAgICAgIGFuIGVsZW1lbnQgb2YgbGF5ZXJzLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfRElTUExBWV9SRVFVRVNUUyBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldERpc3BsYXlSZXF1ZXN0cyh1aW50MzJfdCBkaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdmVjPExheWVyPiBsYXllcnMsCisgICAgICogICAgICAgICAgICAgICAgICAgICAgdmVjPHVpbnQzMl90PiBsYXllclJlcXVlc3RNYXNrcyk7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBkaXNwbGF5IHJlcXVlc3RzIGFuZCB0aGUgbGF5ZXIgcmVxdWVzdHMgcmVxdWlyZWQgZm9yIHRoZSBsYXN0CisgICAgICogdmFsaWRhdGVkIGNvbmZpZ3VyYXRpb24uCisgICAgICoKKyAgICAgKiBEaXNwbGF5IHJlcXVlc3RzIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRoZSBjbGllbnQgbXVzdCBoYW5kbGUKKyAgICAgKiB0aGUgY2xpZW50IHRhcmdldC4gTGF5ZXIgcmVxdWVzdHMgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgdGhlCisgICAgICogY2xpZW50IG11c3QgaGFuZGxlIGFuIGluZGl2aWR1YWwgbGF5ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGlzcGxheVJlcXVlc3RNYXNrIGlzIHRoZSBkaXNwbGF5IHJlcXVlc3RzIGZvciB0aGUgY3VycmVudAorICAgICAqICAgICAgICB2YWxpZGF0ZWQgc3RhdGUuCisgICAgICogQHBhcmFtIGxheWVycyBpcyBhbiBhcnJheSBvZiBsYXllcnMgd2hpY2ggYWxsIGhhdmUgYXQgbGVhc3Qgb25lCisgICAgICogICAgICAgIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGxheWVyUmVxdWVzdE1hc2tzIGlzIHRoZSByZXF1ZXN0cyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggZWxlbWVudAorICAgICAqICAgICAgICBvZiBsYXllcnMuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9QUkVTRU5UX0ZFTkNFIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0UHJlc2VudEZlbmNlKGludDMyX3QgcHJlc2VudEZlbmNlSW5kZXgpOworICAgICAqCisgICAgICogU2V0cyB0aGUgcHJlc2VudCBmZW5jZSBhcyBhIHJlc3VsdCBvZiBQUkVTRU5UX0RJU1BMQVkuIEZvciBwaHlzaWNhbAorICAgICAqIGRpc3BsYXlzLCB0aGlzIGZlbmNlIG11c3QgYmUgc2lnbmFsZWQgYXQgdGhlIHZzeW5jIHdoZW4gdGhlIHJlc3VsdAorICAgICAqIG9mIGNvbXBvc2l0aW9uIG9mIHRoaXMgZnJhbWUgc3RhcnRzIHRvIGFwcGVhciAoZm9yIHZpZGVvLW1vZGUgcGFuZWxzKQorICAgICAqIG9yIHN0YXJ0cyB0byB0cmFuc2ZlciB0byBwYW5lbCBtZW1vcnkgKGZvciBjb21tYW5kLW1vZGUgcGFuZWxzKS4gRm9yCisgICAgICogdmlydHVhbCBkaXNwbGF5cywgdGhpcyBmZW5jZSBtdXN0IGJlIHNpZ25hbGVkIHdoZW4gd3JpdGVzIHRvIHRoZSBvdXRwdXQKKyAgICAgKiBidWZmZXIgaGF2ZSBjb21wbGV0ZWQgYW5kIGl0IGlzIHNhZmUgdG8gcmVhZCBmcm9tIGl0LgorICAgICAqCisgICAgICogQHBhcmFtIHByZXNlbnRGZW5jZUluZGV4IGlzIGFuIGluZGV4IGludG8gb3V0SGFuZGxlcyBhcnJheS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX1JFTEVBU0VfRkVOQ0VTIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0UmVsZWFzZUZlbmNlcyh2ZWM8TGF5ZXI+IGxheWVycywKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgdmVjPGludDMyX3Q+IHJlbGVhc2VGZW5jZUluZGljZXMpOworICAgICAqCisgICAgICogU2V0cyB0aGUgcmVsZWFzZSBmZW5jZXMgZm9yIGRldmljZSBsYXllcnMgb24gdGhpcyBkaXNwbGF5IHdoaWNoIHdpbGwKKyAgICAgKiByZWNlaXZlIG5ldyBidWZmZXIgY29udGVudHMgdGhpcyBmcmFtZS4KKyAgICAgKgorICAgICAqIEEgcmVsZWFzZSBmZW5jZSBpcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSBzeW5jIGZlbmNlIG9iamVjdAorICAgICAqIHdoaWNoIG11c3QgYmUgc2lnbmFsZWQgYWZ0ZXIgdGhlIGRldmljZSBoYXMgZmluaXNoZWQgcmVhZGluZyBmcm9tIHRoZQorICAgICAqIGJ1ZmZlciBwcmVzZW50ZWQgaW4gdGhlIHByaW9yIGZyYW1lLiBUaGlzIGluZGljYXRlcyB0aGF0IGl0IGlzIHNhZmUgdG8KKyAgICAgKiBzdGFydCB3cml0aW5nIHRvIHRoZSBidWZmZXIgYWdhaW4uIElmIGEgZ2l2ZW4gbGF5ZXIncyBmZW5jZSBpcyBub3QKKyAgICAgKiByZXR1cm5lZCBmcm9tIHRoaXMgZnVuY3Rpb24sIGl0IG11c3QgYmUgYXNzdW1lZCB0aGF0IHRoZSBidWZmZXIKKyAgICAgKiBwcmVzZW50ZWQgb24gdGhlIHByZXZpb3VzIGZyYW1lIGlzIHJlYWR5IHRvIGJlIHdyaXR0ZW4uCisgICAgICoKKyAgICAgKiBUaGUgZmVuY2VzIHJldHVybmVkIGJ5IHRoaXMgZnVuY3Rpb24gbXVzdCBiZSB1bmlxdWUgZm9yIGVhY2ggbGF5ZXIKKyAgICAgKiAoZXZlbiBpZiB0aGV5IHBvaW50IHRvIHRoZSBzYW1lIHVuZGVybHlpbmcgc3luYyBvYmplY3QpLgorICAgICAqCisgICAgICogQHBhcmFtIGxheWVycyBpcyBhbiBhcnJheSBvZiBsYXllciBoYW5kbGVzLgorICAgICAqIEBwYXJhbSByZWxlYXNlRmVuY2VJbmRpY2VzIGFyZSBpbmRpY2VzIGludG8gb3V0SGFuZGxlcyBhcnJheSwgZWFjaAorICAgICAqICAgICAgICBjb3JyZXNwb25kaW5nIHRvIGFuIGVsZW1lbnQgb2YgbGF5ZXJzLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfQ09MT1JfVFJBTlNGT1JNIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0Q29sb3JUcmFuc2Zvcm0oZmxvYXRbMTZdIG1hdHJpeCwKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgIENvbG9yVHJhbnNmb3JtIGhpbnQpOworICAgICAqCisgICAgICogU2V0cyBhIGNvbG9yIHRyYW5zZm9ybSB3aGljaCB3aWxsIGJlIGFwcGxpZWQgYWZ0ZXIgY29tcG9zaXRpb24uCisgICAgICoKKyAgICAgKiBJZiBoaW50IGlzIG5vdCBDb2xvclRyYW5zZm9ybTo6QVJCSVRSQVJZLCB0aGVuIHRoZSBkZXZpY2UgbWF5IHVzZSB0aGUKKyAgICAgKiBoaW50IHRvIGFwcGx5IHRoZSBkZXNpcmVkIGNvbG9yIHRyYW5zZm9ybSBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBjb2xvcgorICAgICAqIG1hdHJpeCBkaXJlY3RseS4KKyAgICAgKgorICAgICAqIElmIHRoZSBkZXZpY2UgaXMgbm90IGNhcGFibGUgb2YgZWl0aGVyIHVzaW5nIHRoZSBoaW50IG9yIHRoZSBtYXRyaXggdG8KKyAgICAgKiBhcHBseSB0aGUgZGVzaXJlZCBjb2xvciB0cmFuc2Zvcm0sIGl0IG11c3QgZm9yY2UgYWxsIGxheWVycyB0byBjbGllbnQKKyAgICAgKiBjb21wb3NpdGlvbiBkdXJpbmcgVkFMSURBVEVfRElTUExBWS4KKyAgICAgKgorICAgICAqIElmIElDb21wb3Nlcjo6Q2FwYWJpbGl0eTo6U0tJUF9DTElFTlRfQ09MT1JfVFJBTlNGT1JNIGlzIHByZXNlbnQsIHRoZW4KKyAgICAgKiB0aGUgY2xpZW50IG11c3QgbmV2ZXIgYXBwbHkgdGhlIGNvbG9yIHRyYW5zZm9ybSBkdXJpbmcgY2xpZW50CisgICAgICogY29tcG9zaXRpb24sIGV2ZW4gaWYgYWxsIGxheWVycyBhcmUgYmVpbmcgY29tcG9zZWQgYnkgdGhlIGNsaWVudC4KKyAgICAgKgorICAgICAqIFRoZSBtYXRyaXggcHJvdmlkZWQgaXMgYW4gYWZmaW5lIGNvbG9yIHRyYW5zZm9ybWF0aW9uIG9mIHRoZSBmb2xsb3dpbmcKKyAgICAgKiBmb3JtOgorICAgICAqCisgICAgICogfHIuciByLmcgci5iIDB8CisgICAgICogfGcuciBnLmcgZy5iIDB8CisgICAgICogfGIuciBiLmcgYi5iIDB8CisgICAgICogfFRyICBUZyAgVGIgIDF8CisgICAgICoKKyAgICAgKiBUaGlzIG1hdHJpeCBtdXN0IGJlIHByb3ZpZGVkIGluIHJvdy1tYWpvciBmb3JtOgorICAgICAqCisgICAgICoge3Iuciwgci5nLCByLmIsIDAsIGcuciwgLi4ufS4KKyAgICAgKgorICAgICAqIEdpdmVuIGEgbWF0cml4IG9mIHRoaXMgZm9ybSBhbmQgYW4gaW5wdXQgY29sb3IgW1JfaW4sIEdfaW4sIEJfaW5dLCB0aGUKKyAgICAgKiBvdXRwdXQgY29sb3IgW1Jfb3V0LCBHX291dCwgQl9vdXRdIHdpbGwgYmU6CisgICAgICoKKyAgICAgKiBSX291dCA9IFJfaW4gKiByLnIgKyBHX2luICogZy5yICsgQl9pbiAqIGIuciArIFRyCisgICAgICogR19vdXQgPSBSX2luICogci5nICsgR19pbiAqIGcuZyArIEJfaW4gKiBiLmcgKyBUZworICAgICAqIEJfb3V0ID0gUl9pbiAqIHIuYiArIEdfaW4gKiBnLmIgKyBCX2luICogYi5iICsgVGIKKyAgICAgKgorICAgICAqIEBwYXJhbSBtYXRyaXggaXMgYSA0eDQgdHJhbnNmb3JtIG1hdHJpeCAoMTYgZmxvYXRzKSBhcyBkZXNjcmliZWQgYWJvdmUuCisgICAgICogQHBhcmFtIGhpbnQgaXMgYSBoaW50IHZhbHVlIHdoaWNoIG1heSBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGdpdmVuCisgICAgICogICAgICAgIG1hdHJpeCB1bmxlc3MgaXQgaXMgQ29sb3JUcmFuc2Zvcm06OkFSQklUUkFSWS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0NMSUVOVF9UQVJHRVQgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRDbGllbnRUYXJnZXQodWludDMyX3QgdGFyZ2V0U2xvdCwKKyAgICAgKiAgICAgICAgICAgICAgICAgICBpbnQzMl90IHRhcmdldEluZGV4LAorICAgICAqICAgICAgICAgICAgICAgICAgIGludDMyX3QgYWNxdWlyZUZlbmNlSW5kZXgsCisgICAgICogICAgICAgICAgICAgICAgICAgRGF0YXNwYWNlIGRhdGFzcGFjZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgICB2ZWM8UmVjdD4gZGFtYWdlKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGJ1ZmZlciBoYW5kbGUgd2hpY2ggd2lsbCByZWNlaXZlIHRoZSBvdXRwdXQgb2YgY2xpZW50CisgICAgICogY29tcG9zaXRpb24uICBMYXllcnMgbWFya2VkIGFzIENvbXBvc2l0aW9uOjpDTElFTlQgbXVzdCBiZSBjb21wb3NpdGVkCisgICAgICogaW50byB0aGlzIGJ1ZmZlciBwcmlvciB0byB0aGUgY2FsbCB0byBQUkVTRU5UX0RJU1BMQVksIGFuZCBsYXllcnMgbm90CisgICAgICogbWFya2VkIGFzIENvbXBvc2l0aW9uOjpDTElFTlQgbXVzdCBiZSBjb21wb3NpdGVkIHdpdGggdGhpcyBidWZmZXIgYnkKKyAgICAgKiB0aGUgZGV2aWNlLgorICAgICAqCisgICAgICogVGhlIGJ1ZmZlciBoYW5kbGUgcHJvdmlkZWQgbWF5IGJlIGVtcHR5IGlmIG5vIGxheWVycyBhcmUgYmVpbmcKKyAgICAgKiBjb21wb3NpdGVkIGJ5IHRoZSBjbGllbnQuIFRoaXMgbXVzdCBub3QgcmVzdWx0IGluIGFuIGVycm9yICh1bmxlc3MgYW4KKyAgICAgKiBpbnZhbGlkIGRpc3BsYXkgaGFuZGxlIGlzIGFsc28gcHJvdmlkZWQpLgorICAgICAqCisgICAgICogQWxzbyBwcm92aWRlcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYW4gYWNxdWlyZSBzeW5jIGZlbmNlCisgICAgICogb2JqZWN0LCB3aGljaCBtdXN0IGJlIHNpZ25hbGVkIHdoZW4gaXQgaXMgc2FmZSB0byByZWFkIGZyb20gdGhlIGNsaWVudAorICAgICAqIHRhcmdldCBidWZmZXIuICBJZiBpdCBpcyBhbHJlYWR5IHNhZmUgdG8gcmVhZCBmcm9tIHRoaXMgYnVmZmVyLCBhbgorICAgICAqIGVtcHR5IGhhbmRsZSBtYXkgYmUgcGFzc2VkIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBGb3IgbW9yZSBhYm91dCBkYXRhc3BhY2VzLCBzZWUgU0VUX0xBWUVSX0RBVEFTUEFDRS4KKyAgICAgKgorICAgICAqIFRoZSBkYW1hZ2UgcGFyYW1ldGVyIGRlc2NyaWJlcyBhIHN1cmZhY2UgZGFtYWdlIHJlZ2lvbiBhcyBkZWZpbmVkIGluCisgICAgICogdGhlIGRlc2NyaXB0aW9uIG9mIFNFVF9MQVlFUl9TVVJGQUNFX0RBTUFHRS4KKyAgICAgKgorICAgICAqIFdpbGwgYmUgY2FsbGVkIGJlZm9yZSBQUkVTRU5UX0RJU1BMQVkgaWYgYW55IG9mIHRoZSBsYXllcnMgYXJlIG1hcmtlZAorICAgICAqIGFzIENvbXBvc2l0aW9uOjpDTElFTlQuIElmIG5vIGxheWVycyBhcmUgc28gbWFya2VkLCB0aGVuIGl0IGlzIG5vdAorICAgICAqIG5lY2Vzc2FyeSB0byBjYWxsIHRoaXMgZnVuY3Rpb24uIEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY2FsbAorICAgICAqIHZhbGlkYXRlRGlzcGxheSBhZnRlciBjaGFuZ2luZyB0aGUgdGFyZ2V0IHRocm91Z2ggdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0YXJnZXRTbG90IGlzIHRoZSBjbGllbnQgdGFyZ2V0IGJ1ZmZlciBzbG90IHRvIHVzZS4KKyAgICAgKiBAcGFyYW0gdGFyZ2V0SW5kZXggaXMgYW4gaW5kZXggaW50byBpbkhhbmRsZXMgZm9yIHRoZSBuZXcgdGFyZ2V0CisgICAgICogICAgICAgIGJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gYWNxdWlyZUZlbmNlSW5kZXggaXMgYW4gaW5kZXggaW50byBpbkhhbmRsZXMgZm9yIGEgc3luYyBmZW5jZQorICAgICAqICAgICAgICBmaWxlIGRlc2NyaXB0b3IgYXMgZGVzY3JpYmVkIGFib3ZlLgorICAgICAqIEBwYXJhbSBkYXRhc3BhY2UgaXMgdGhlIGRhdGFzcGFjZSBvZiB0aGUgYnVmZmVyLCBhcyBkZXNjcmliZWQgaW4KKyAgICAgKiAgICAgICAgc2V0TGF5ZXJEYXRhc3BhY2UuCisgICAgICogQHBhcmFtIGRhbWFnZSBpcyB0aGUgc3VyZmFjZSBkYW1hZ2UgcmVnaW9uLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfT1VUUFVUX0JVRkZFUiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldE91dHB1dEJ1ZmZlcih1aW50MzJfdCBidWZmZXJTbG90LAorICAgICAqICAgICAgICAgICAgICAgICAgIGludDMyX3QgYnVmZmVySW5kZXgsCisgICAgICogICAgICAgICAgICAgICAgICAgaW50MzJfdCByZWxlYXNlRmVuY2VJbmRleCk7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBvdXRwdXQgYnVmZmVyIGZvciBhIHZpcnR1YWwgZGlzcGxheS4gVGhhdCBpcywgdGhlIGJ1ZmZlciB0bworICAgICAqIHdoaWNoIHRoZSBjb21wb3NpdGlvbiByZXN1bHQgd2lsbCBiZSB3cml0dGVuLgorICAgICAqCisgICAgICogQWxzbyBwcm92aWRlcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSByZWxlYXNlIHN5bmMgZmVuY2UKKyAgICAgKiBvYmplY3QsIHdoaWNoIG11c3QgYmUgc2lnbmFsZWQgd2hlbiBpdCBpcyBzYWZlIHRvIHdyaXRlIHRvIHRoZSBvdXRwdXQKKyAgICAgKiBidWZmZXIuIElmIGl0IGlzIGFscmVhZHkgc2FmZSB0byB3cml0ZSB0byB0aGUgb3V0cHV0IGJ1ZmZlciwgYW4gZW1wdHkKKyAgICAgKiBoYW5kbGUgbWF5IGJlIHBhc3NlZCBpbnN0ZWFkLgorICAgICAqCisgICAgICogTXVzdCBiZSBjYWxsZWQgYXQgbGVhc3Qgb25jZSBiZWZvcmUgUFJFU0VOVF9ESVNQTEFZLCBidXQgZG9lcyBub3QgaGF2ZQorICAgICAqIGFueSBpbnRlcmFjdGlvbiB3aXRoIGxheWVyIHN0YXRlIG9yIGRpc3BsYXkgdmFsaWRhdGlvbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXJTbG90IGlzIHRoZSBuZXcgb3V0cHV0IGJ1ZmZlci4KKyAgICAgKiBAcGFyYW0gYnVmZmVySW5kZXggaXMgdGhlIG5ldyBvdXRwdXQgYnVmZmVyLgorICAgICAqIEBwYXJhbSByZWxlYXNlRmVuY2VJbmRleCBpcyBhIHN5bmMgZmVuY2UgZmlsZSBkZXNjcmlwdG9yIGFzIGRlc2NyaWJlZAorICAgICAqICAgICAgICBhYm92ZS4KKyAgICAgKgorICAgICAqCisgICAgICogVkFMSURBVEVfRElTUExBWSBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHZhbGlkYXRlRGlzcGxheSgpOworICAgICAqCisgICAgICogSW5zdHJ1Y3RzIHRoZSBkZXZpY2UgdG8gaW5zcGVjdCBhbGwgb2YgdGhlIGxheWVyIHN0YXRlIGFuZCBkZXRlcm1pbmUgaWYKKyAgICAgKiB0aGVyZSBhcmUgYW55IGNvbXBvc2l0aW9uIHR5cGUgY2hhbmdlcyBuZWNlc3NhcnkgYmVmb3JlIHByZXNlbnRpbmcgdGhlCisgICAgICogZGlzcGxheS4gUGVybWl0dGVkIGNoYW5nZXMgYXJlIGRlc2NyaWJlZCBpbiB0aGUgZGVmaW5pdGlvbiBvZgorICAgICAqIENvbXBvc2l0aW9uIGFib3ZlLgorICAgICAqCisgICAgICoKKyAgICAgKiBBQ0NFUFRfRElTUExBWV9DSEFOR0VTIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgYWNjZXB0RGlzcGxheUNoYW5nZXMoKTsKKyAgICAgKgorICAgICAqIEFjY2VwdHMgdGhlIGNoYW5nZXMgcmVxdWlyZWQgYnkgdGhlIGRldmljZSBmcm9tIHRoZSBwcmV2aW91cworICAgICAqIHZhbGlkYXRlRGlzcGxheSBjYWxsICh3aGljaCBtYXkgYmUgcXVlcmllZCB1c2luZworICAgICAqIGdldENoYW5nZWRDb21wb3NpdGlvblR5cGVzKSBhbmQgcmV2YWxpZGF0ZXMgdGhlIGRpc3BsYXkuIFRoaXMgZnVuY3Rpb24KKyAgICAgKiBpcyBlcXVpdmFsZW50IHRvIHJlcXVlc3RpbmcgdGhlIGNoYW5nZWQgdHlwZXMgZnJvbQorICAgICAqIGdldENoYW5nZWRDb21wb3NpdGlvblR5cGVzLCBzZXR0aW5nIHRob3NlIHR5cGVzIG9uIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICogbGF5ZXJzLCBhbmQgdGhlbiBjYWxsaW5nIHZhbGlkYXRlRGlzcGxheSBhZ2Fpbi4KKyAgICAgKgorICAgICAqIEFmdGVyIHRoaXMgY2FsbCBpdCBtdXN0IGJlIHZhbGlkIHRvIHByZXNlbnQgdGhpcyBkaXNwbGF5LiBDYWxsaW5nIHRoaXMKKyAgICAgKiBhZnRlciB2YWxpZGF0ZURpc3BsYXkgcmV0dXJucyAwIGNoYW5nZXMgbXVzdCBzdWNjZWVkIHdpdGggTk9ORSwgYnV0CisgICAgICogbXVzdCBoYXZlIG5vIG90aGVyIGVmZmVjdC4KKyAgICAgKgorICAgICAqCisgICAgICogUFJFU0VOVF9ESVNQTEFZIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgcHJlc2VudERpc3BsYXkoKTsKKyAgICAgKgorICAgICAqIFByZXNlbnRzIHRoZSBjdXJyZW50IGRpc3BsYXkgY29udGVudHMgb24gdGhlIHNjcmVlbiAob3IgaW4gdGhlIGNhc2Ugb2YKKyAgICAgKiB2aXJ0dWFsIGRpc3BsYXlzLCBpbnRvIHRoZSBvdXRwdXQgYnVmZmVyKS4KKyAgICAgKgorICAgICAqIFByaW9yIHRvIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgdGhlIGRpc3BsYXkgbXVzdCBiZSBzdWNjZXNzZnVsbHkKKyAgICAgKiB2YWxpZGF0ZWQgd2l0aCB2YWxpZGF0ZURpc3BsYXkuIE5vdGUgdGhhdCBzZXRMYXllckJ1ZmZlciBhbmQKKyAgICAgKiBzZXRMYXllclN1cmZhY2VEYW1hZ2Ugc3BlY2lmaWNhbGx5IGRvIG5vdCBjb3VudCBhcyBsYXllciBzdGF0ZSwgc28gaWYKKyAgICAgKiB0aGVyZSBhcmUgbm8gb3RoZXIgY2hhbmdlcyB0byB0aGUgbGF5ZXIgc3RhdGUgKG9yIHRvIHRoZSBidWZmZXIncworICAgICAqIHByb3BlcnRpZXMgYXMgZGVzY3JpYmVkIGluIHNldExheWVyQnVmZmVyKSwgdGhlbiBpdCBpcyBzYWZlIHRvIGNhbGwKKyAgICAgKiB0aGlzIGZ1bmN0aW9uIHdpdGhvdXQgZmlyc3QgdmFsaWRhdGluZyB0aGUgZGlzcGxheS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX0NVUlNPUl9QT1NJVElPTiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldExheWVyQ3Vyc29yUG9zaXRpb24oaW50MzJfdCB4LCBpbnQzMl90IHkpOworICAgICAqCisgICAgICogQXN5bmNocm9ub3VzbHkgc2V0cyB0aGUgcG9zaXRpb24gb2YgYSBjdXJzb3IgbGF5ZXIuCisgICAgICoKKyAgICAgKiBQcmlvciB0byB2YWxpZGF0ZURpc3BsYXksIGEgbGF5ZXIgbWF5IGJlIG1hcmtlZCBhcyBDb21wb3NpdGlvbjo6Q1VSU09SLgorICAgICAqIElmIHZhbGlkYXRpb24gc3VjY2VlZHMgKGkuZS4sIHRoZSBkZXZpY2UgZG9lcyBub3QgcmVxdWVzdCBhIGNvbXBvc2l0aW9uCisgICAgICogY2hhbmdlIGZvciB0aGF0IGxheWVyKSwgdGhlbiBvbmNlIGEgYnVmZmVyIGhhcyBiZWVuIHNldCBmb3IgdGhlIGxheWVyCisgICAgICogYW5kIGl0IGhhcyBiZWVuIHByZXNlbnRlZCwgaXRzIHBvc2l0aW9uIG1heSBiZSBzZXQgYnkgdGhpcyBmdW5jdGlvbiBhdAorICAgICAqIGFueSB0aW1lIGJldHdlZW4gcHJlc2VudERpc3BsYXkgYW5kIGFueSBzdWJzZXF1ZW50IHZhbGlkYXRlRGlzcGxheQorICAgICAqIGNhbGxzIGZvciB0aGlzIGRpc3BsYXkuCisgICAgICoKKyAgICAgKiBPbmNlIHZhbGlkYXRlRGlzcGxheSBpcyBjYWxsZWQsIHRoaXMgZnVuY3Rpb24gbXVzdCBub3QgYmUgY2FsbGVkIGFnYWluCisgICAgICogdW50aWwgdGhlIHZhbGlkYXRlL3ByZXNlbnQgc2VxdWVuY2UgaXMgY29tcGxldGVkLgorICAgICAqCisgICAgICogTWF5IGJlIGNhbGxlZCBmcm9tIGFueSB0aHJlYWQgc28gbG9uZyBhcyBpdCBpcyBub3QgaW50ZXJsZWF2ZWQgd2l0aCB0aGUKKyAgICAgKiB2YWxpZGF0ZS9wcmVzZW50IHNlcXVlbmNlIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXllciBpcyB0aGUgbGF5ZXIgdG8gd2hpY2ggdGhlIHBvc2l0aW9uIGlzIHNldC4KKyAgICAgKiBAcGFyYW0geCBpcyB0aGUgbmV3IHggY29vcmRpbmF0ZSAoaW4gcGl4ZWxzIGZyb20gdGhlIGxlZnQgb2YgdGhlCisgICAgICogICAgICAgIHNjcmVlbikuCisgICAgICogQHBhcmFtIHkgaXMgdGhlIG5ldyB5IGNvb3JkaW5hdGUgKGluIHBpeGVscyBmcm9tIHRoZSB0b3Agb2YgdGhlCisgICAgICogICAgICAgIHNjcmVlbikuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9CVUZGRVIgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckJ1ZmZlcih1aW50MzJfdCBidWZmZXJTbG90LAorICAgICAqICAgICAgICAgICAgICAgICAgaW50MzJfdCBidWZmZXJJbmRleCwKKyAgICAgKiAgICAgICAgICAgICAgICAgIGludDMyX3QgYWNxdWlyZUZlbmNlSW5kZXgpOworICAgICAqCisgICAgICogU2V0cyB0aGUgYnVmZmVyIGhhbmRsZSB0byBiZSBkaXNwbGF5ZWQgZm9yIHRoaXMgbGF5ZXIuIElmIHRoZSBidWZmZXIKKyAgICAgKiBwcm9wZXJ0aWVzIHNldCBhdCBhbGxvY2F0aW9uIHRpbWUgKHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgYW5kIHVzYWdlKQorICAgICAqIGhhdmUgbm90IGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIGZyYW1lLCBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGNhbGwKKyAgICAgKiB2YWxpZGF0ZURpc3BsYXkgYmVmb3JlIGNhbGxpbmcgcHJlc2VudERpc3BsYXkgdW5sZXNzIG5ldyBzdGF0ZSBuZWVkcyB0bworICAgICAqIGJlIHZhbGlkYXRlZCBpbiB0aGUgaW50ZXJpbS4KKyAgICAgKgorICAgICAqIEFsc28gcHJvdmlkZXMgYSBmaWxlIGRlc2NyaXB0b3IgcmVmZXJyaW5nIHRvIGFuIGFjcXVpcmUgc3luYyBmZW5jZQorICAgICAqIG9iamVjdCwgd2hpY2ggbXVzdCBiZSBzaWduYWxlZCB3aGVuIGl0IGlzIHNhZmUgdG8gcmVhZCBmcm9tIHRoZSBnaXZlbgorICAgICAqIGJ1ZmZlci4gSWYgaXQgaXMgYWxyZWFkeSBzYWZlIHRvIHJlYWQgZnJvbSB0aGUgYnVmZmVyLCBhbiBlbXB0eSBoYW5kbGUKKyAgICAgKiBtYXkgYmUgcGFzc2VkIGluc3RlYWQuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgcmV0dXJuIE5PTkUgYW5kIGhhdmUgbm8gb3RoZXIgZWZmZWN0IGlmIGNhbGxlZCBmb3IgYQorICAgICAqIGxheWVyIHdpdGggYSBjb21wb3NpdGlvbiB0eXBlIG9mIENvbXBvc2l0aW9uOjpTT0xJRF9DT0xPUiAoYmVjYXVzZSBpdAorICAgICAqIGhhcyBubyBidWZmZXIpIG9yIENvbXBvc2l0aW9uOjpTSURFQkFORCBvciBDb21wb3NpdGlvbjo6Q0xJRU5UIChiZWNhdXNlCisgICAgICogc3luY2hyb25pemF0aW9uIGFuZCBidWZmZXIgdXBkYXRlcyBmb3IgdGhlc2UgbGF5ZXJzIGFyZSBoYW5kbGVkCisgICAgICogZWxzZXdoZXJlKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYXllciBpcyB0aGUgbGF5ZXIgdG8gd2hpY2ggdGhlIGJ1ZmZlciBpcyBzZXQuCisgICAgICogQHBhcmFtIGJ1ZmZlclNsb3QgaXMgdGhlIGJ1ZmZlciBzbG90IHRvIHVzZS4KKyAgICAgKiBAcGFyYW0gYnVmZmVySW5kZXggaXMgdGhlIGJ1ZmZlciBoYW5kbGUgdG8gc2V0LgorICAgICAqIEBwYXJhbSBhY3F1aXJlRmVuY2VJbmRleCBpcyBhIHN5bmMgZmVuY2UgZmlsZSBkZXNjcmlwdG9yIGFzIGRlc2NyaWJlZCBhYm92ZS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX1NVUkZBQ0VfREFNQUdFIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0TGF5ZXJTdXJmYWNlRGFtYWdlKHZlYzxSZWN0PiBkYW1hZ2UpOworICAgICAqCisgICAgICogUHJvdmlkZXMgdGhlIHJlZ2lvbiBvZiB0aGUgc291cmNlIGJ1ZmZlciB3aGljaCBoYXMgYmVlbiBtb2RpZmllZCBzaW5jZQorICAgICAqIHRoZSBsYXN0IGZyYW1lLiBUaGlzIHJlZ2lvbiBkb2VzIG5vdCBuZWVkIHRvIGJlIHZhbGlkYXRlZCBiZWZvcmUKKyAgICAgKiBjYWxsaW5nIHByZXNlbnREaXNwbGF5LgorICAgICAqCisgICAgICogT25jZSBzZXQgdGhyb3VnaCB0aGlzIGZ1bmN0aW9uLCB0aGUgZGFtYWdlIHJlZ2lvbiByZW1haW5zIHRoZSBzYW1lCisgICAgICogdW50aWwgYSBzdWJzZXF1ZW50IGNhbGwgdG8gdGhpcyBmdW5jdGlvbi4KKyAgICAgKgorICAgICAqIElmIGRhbWFnZSBpcyBub24tZW1wdHksIHRoZW4gaXQgbWF5IGJlIGFzc3VtZWQgdGhhdCBhbnkgcG9ydGlvbiBvZiB0aGUKKyAgICAgKiBzb3VyY2UgYnVmZmVyIG5vdCBjb3ZlcmVkIGJ5IG9uZSBvZiB0aGUgcmVjdHMgaGFzIG5vdCBiZWVuIG1vZGlmaWVkCisgICAgICogdGhpcyBmcmFtZS4gSWYgZGFtYWdlIGlzIGVtcHR5LCB0aGVuIHRoZSB3aG9sZSBzb3VyY2UgYnVmZmVyIG11c3QgYmUKKyAgICAgKiB0cmVhdGVkIGFzIGlmIGl0IGhhcyBiZWVuIG1vZGlmaWVkLgorICAgICAqCisgICAgICogSWYgdGhlIGxheWVyJ3MgY29udGVudHMgYXJlIG5vdCBtb2RpZmllZCByZWxhdGl2ZSB0byB0aGUgcHJpb3IgZnJhbWUsCisgICAgICogZGFtYWdlIG11c3QgY29udGFpbiBleGFjdGx5IG9uZSBlbXB0eSByZWN0KFswLCAwLCAwLCAwXSkuCisgICAgICoKKyAgICAgKiBUaGUgZGFtYWdlIHJlY3RzIGFyZSByZWxhdGl2ZSB0byB0aGUgcHJlLXRyYW5zZm9ybWVkIGJ1ZmZlciwgYW5kIHRoZWlyCisgICAgICogb3JpZ2luIGlzIHRoZSB0b3AtbGVmdCBjb3JuZXIuIFRoZXkgbXVzdCBub3QgZXhjZWVkIHRoZSBkaW1lbnNpb25zIG9mCisgICAgICogdGhlIGxhdGNoZWQgYnVmZmVyLgorICAgICAqCisgICAgICogQHBhcmFtIGxheWVyIGlzIHRoZSBsYXllciB0byB3aGljaCB0aGUgZGFtYWdlIHJlZ2lvbiBpcyBzZXQuCisgICAgICogQHBhcmFtIGRhbWFnZSBpcyB0aGUgbmV3IHN1cmZhY2UgZGFtYWdlIHJlZ2lvbi4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX0JMRU5EX01PREUgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckJsZW5kTW9kZShCbGVuZE1vZGUgbW9kZSkKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGJsZW5kIG1vZGUgb2YgdGhlIGdpdmVuIGxheWVyLgorICAgICAqCisgICAgICogQHBhcmFtIG1vZGUgaXMgdGhlIG5ldyBibGVuZCBtb2RlLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfQ09MT1IgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckNvbG9yKENvbG9yIGNvbG9yKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGNvbG9yIG9mIHRoZSBnaXZlbiBsYXllci4gSWYgdGhlIGNvbXBvc2l0aW9uIHR5cGUgb2YgdGhlIGxheWVyCisgICAgICogaXMgbm90IENvbXBvc2l0aW9uOjpTT0xJRF9DT0xPUiwgdGhpcyBjYWxsIG11c3Qgc3VjY2VlZCBhbmQgaGF2ZSBubworICAgICAqIG90aGVyIGVmZmVjdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjb2xvciBpcyB0aGUgbmV3IGNvbG9yLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfQ09NUE9TSVRJT05fVFlQRSBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldExheWVyQ29tcG9zaXRpb25UeXBlKENvbXBvc2l0aW9uIHR5cGUpOworICAgICAqCisgICAgICogU2V0cyB0aGUgZGVzaXJlZCBjb21wb3NpdGlvbiB0eXBlIG9mIHRoZSBnaXZlbiBsYXllci4gRHVyaW5nCisgICAgICogdmFsaWRhdGVEaXNwbGF5LCB0aGUgZGV2aWNlIG1heSByZXF1ZXN0IGNoYW5nZXMgdG8gdGhlIGNvbXBvc2l0aW9uCisgICAgICogdHlwZXMgb2YgYW55IG9mIHRoZSBsYXllcnMgYXMgZGVzY3JpYmVkIGluIHRoZSBkZWZpbml0aW9uIG9mCisgICAgICogQ29tcG9zaXRpb24gYWJvdmUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gdHlwZSBpcyB0aGUgbmV3IGNvbXBvc2l0aW9uIHR5cGUuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9EQVRBU1BBQ0UgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckRhdGFzcGFjZShEYXRhc3BhY2UgZGF0YXNwYWNlKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGRhdGFzcGFjZSB0aGF0IHRoZSBjdXJyZW50IGJ1ZmZlciBvbiB0aGlzIGxheWVyIGlzIGluLgorICAgICAqCisgICAgICogVGhlIGRhdGFzcGFjZSBwcm92aWRlcyBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0byBpbnRlcnByZXQgdGhlCisgICAgICogYnVmZmVyIGNvbnRlbnRzLCBzdWNoIGFzIHRoZSBlbmNvZGluZyBzdGFuZGFyZCBhbmQgY29sb3IgdHJhbnNmb3JtLgorICAgICAqCisgICAgICogU2VlIHRoZSB2YWx1ZXMgb2YgRGF0YXNwYWNlIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHBhcmFtIGRhdGFzcGFjZSBpcyB0aGUgbmV3IGRhdGFzcGFjZS4KKyAgICAgKgorICAgICAqCisgICAgICogU0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllckRpc3BsYXlGcmFtZShSZWN0IGZyYW1lKTsKKyAgICAgKgorICAgICAqIFNldHMgdGhlIGRpc3BsYXkgZnJhbWUgKHRoZSBwb3J0aW9uIG9mIHRoZSBkaXNwbGF5IGNvdmVyZWQgYnkgYSBsYXllcikKKyAgICAgKiBvZiB0aGUgZ2l2ZW4gbGF5ZXIuIFRoaXMgZnJhbWUgbXVzdCBub3QgZXhjZWVkIHRoZSBkaXNwbGF5IGRpbWVuc2lvbnMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZnJhbWUgaXMgdGhlIG5ldyBkaXNwbGF5IGZyYW1lLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfUExBTkVfQUxQSEEgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllclBsYW5lQWxwaGEoZmxvYXQgYWxwaGEpOworICAgICAqCisgICAgICogU2V0cyBhbiBhbHBoYSB2YWx1ZSAoYSBmbG9hdGluZyBwb2ludCB2YWx1ZSBpbiB0aGUgcmFuZ2UgWzAuMCwgMS4wXSkKKyAgICAgKiB3aGljaCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIHdob2xlIGxheWVyLiBJdCBjYW4gYmUgY29uY2VwdHVhbGl6ZWQgYXMgYQorICAgICAqIHByZXByb2Nlc3Npbmcgc3RlcCB3aGljaCBhcHBsaWVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246CisgICAgICogICBpZiAoYmxlbmRNb2RlID09IEJsZW5kTW9kZTo6UFJFTVVMVElQTElFRCkKKyAgICAgKiAgICAgICBvdXQucmdiID0gaW4ucmdiICogcGxhbmVBbHBoYQorICAgICAqICAgb3V0LmEgPSBpbi5hICogcGxhbmVBbHBoYQorICAgICAqCisgICAgICogSWYgdGhlIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgb3BlcmF0aW9uIG9uIGEgbGF5ZXIgd2hpY2ggaXMKKyAgICAgKiBtYXJrZWQgQ29tcG9zaXRpb246OkRFVklDRSwgaXQgbXVzdCByZXF1ZXN0IGEgY29tcG9zaXRpb24gdHlwZSBjaGFuZ2UKKyAgICAgKiB0byBDb21wb3NpdGlvbjo6Q0xJRU5UIHVwb24gdGhlIG5leHQgdmFsaWRhdGVEaXNwbGF5IGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYWxwaGEgaXMgdGhlIHBsYW5lIGFscGhhIHZhbHVlIHRvIGFwcGx5LgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfU0lERUJBTkRfU1RSRUFNIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShpbnQzMl90IHN0cmVhbUluZGV4KQorICAgICAqCisgICAgICogU2V0cyB0aGUgc2lkZWJhbmQgc3RyZWFtIGZvciB0aGlzIGxheWVyLiBJZiB0aGUgY29tcG9zaXRpb24gdHlwZSBvZiB0aGUKKyAgICAgKiBnaXZlbiBsYXllciBpcyBub3QgQ29tcG9zaXRpb246OlNJREVCQU5ELCB0aGlzIGNhbGwgbXVzdCBzdWNjZWVkIGFuZAorICAgICAqIGhhdmUgbm8gb3RoZXIgZWZmZWN0LgorICAgICAqCisgICAgICogQHBhcmFtIHN0cmVhbUluZGV4IGlzIHRoZSBuZXcgc2lkZWJhbmQgc3RyZWFtLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfU09VUkNFX0NST1AgaGFzIHRoaXMgcHNldWRvIHByb3RvdHlwZQorICAgICAqCisgICAgICogICBzZXRMYXllclNvdXJjZUNyb3AoRlJlY3QgY3JvcCk7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBzb3VyY2UgY3JvcCAodGhlIHBvcnRpb24gb2YgdGhlIHNvdXJjZSBidWZmZXIgd2hpY2ggd2lsbCBmaWxsCisgICAgICogdGhlIGRpc3BsYXkgZnJhbWUpIG9mIHRoZSBnaXZlbiBsYXllci4gVGhpcyBjcm9wIHJlY3RhbmdsZSBtdXN0IG5vdAorICAgICAqIGV4Y2VlZCB0aGUgZGltZW5zaW9ucyBvZiB0aGUgbGF0Y2hlZCBidWZmZXIuCisgICAgICoKKyAgICAgKiBJZiB0aGUgZGV2aWNlIGlzIG5vdCBjYXBhYmxlIG9mIHN1cHBvcnRpbmcgYSB0cnVlIGZsb2F0IHNvdXJjZSBjcm9wCisgICAgICogKGkuZS4sIGl0IHdpbGwgdHJ1bmNhdGUgb3Igcm91bmQgdGhlIGZsb2F0cyB0byBpbnRlZ2VycyksIGl0IG11c3Qgc2V0CisgICAgICogdGhpcyBsYXllciB0byBDb21wb3NpdGlvbjo6Q0xJRU5UIHdoZW4gY3JvcCBpcyBub24taW50ZWdyYWwgZm9yIHRoZQorICAgICAqIG1vc3QgYWNjdXJhdGUgcmVuZGVyaW5nLgorICAgICAqCisgICAgICogSWYgdGhlIGRldmljZSBjYW5ub3Qgc3VwcG9ydCBmbG9hdCBzb3VyY2UgY3JvcHMsIGJ1dCBzdGlsbCB3YW50cyB0bworICAgICAqIGhhbmRsZSB0aGUgbGF5ZXIsIGl0IG11c3QgdXNlIHRoZSBmb2xsb3dpbmcgY29kZSAob3Igc2ltaWxhcikgdG8KKyAgICAgKiBjb252ZXJ0IHRvIGFuIGludGVnZXIgY3JvcDoKKyAgICAgKiAgIGludENyb3AubGVmdCA9IChpbnQpIGNlaWxmKGNyb3AubGVmdCk7CisgICAgICogICBpbnRDcm9wLnRvcCA9IChpbnQpIGNlaWxmKGNyb3AudG9wKTsKKyAgICAgKiAgIGludENyb3AucmlnaHQgPSAoaW50KSBmbG9vcmYoY3JvcC5yaWdodCk7CisgICAgICogICBpbnRDcm9wLmJvdHRvbSA9IChpbnQpIGZsb29yZihjcm9wLmJvdHRvbSk7CisgICAgICoKKyAgICAgKiBAcGFyYW0gY3JvcCBpcyB0aGUgbmV3IHNvdXJjZSBjcm9wLgorICAgICAqCisgICAgICoKKyAgICAgKiBTRVRfTEFZRVJfVFJBTlNGT1JNIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqIFNldHMgdGhlIHRyYW5zZm9ybSAocm90YXRpb24vZmxpcCkgb2YgdGhlIGdpdmVuIGxheWVyLgorICAgICAqCisgICAgICogICBzZXRMYXllclRyYW5zZm9ybShUcmFuc2Zvcm0gdHJhbnNmb3JtKTsKKyAgICAgKgorICAgICAqIEBwYXJhbSB0cmFuc2Zvcm0gaXMgdGhlIG5ldyB0cmFuc2Zvcm0uCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9WSVNJQkxFX1JFR0lPTiBoYXMgdGhpcyBwc2V1ZG8gcHJvdG90eXBlCisgICAgICoKKyAgICAgKiAgIHNldExheWVyVmlzaWJsZVJlZ2lvbih2ZWM8UmVjdD4gdmlzaWJsZSk7CisgICAgICoKKyAgICAgKiBTcGVjaWZpZXMgdGhlIHBvcnRpb24gb2YgdGhlIGxheWVyIHRoYXQgaXMgdmlzaWJsZSwgaW5jbHVkaW5nIHBvcnRpb25zCisgICAgICogdW5kZXIgdHJhbnNsdWNlbnQgYXJlYXMgb2Ygb3RoZXIgbGF5ZXJzLiBUaGUgcmVnaW9uIGlzIGluIHNjcmVlbiBzcGFjZSwKKyAgICAgKiBhbmQgbXVzdCBub3QgZXhjZWVkIHRoZSBkaW1lbnNpb25zIG9mIHRoZSBzY3JlZW4uCisgICAgICoKKyAgICAgKiBAcGFyYW0gdmlzaWJsZSBpcyB0aGUgbmV3IHZpc2libGUgcmVnaW9uLCBpbiBzY3JlZW4gc3BhY2UuCisgICAgICoKKyAgICAgKgorICAgICAqIFNFVF9MQVlFUl9aX09SREVSIGhhcyB0aGlzIHBzZXVkbyBwcm90b3R5cGUKKyAgICAgKgorICAgICAqICAgc2V0TGF5ZXJaT3JkZXIodWludDMyX3Qgeik7CisgICAgICoKKyAgICAgKiBTZXRzIHRoZSBkZXNpcmVkIFogb3JkZXIgKGhlaWdodCkgb2YgdGhlIGdpdmVuIGxheWVyLiBBIGxheWVyIHdpdGggYQorICAgICAqIGdyZWF0ZXIgWiB2YWx1ZSBvY2NsdWRlcyBhIGxheWVyIHdpdGggYSBsZXNzZXIgWiB2YWx1ZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSB6IGlzIHRoZSBuZXcgWiBvcmRlci4KKyAgICAgKi8KKyAgICBlbnVtIENvbW1hbmQgOiBpbnQzMl90IHsKKyAgICAgICAgTEVOR1RIX01BU0sgICAgICAgICAgICAgICAgICAgICAgICA9IDB4ZmZmZiwKKyAgICAgICAgT1BDT0RFX1NISUZUICAgICAgICAgICAgICAgICAgICAgICA9IDE2LAorICAgICAgICBPUENPREVfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgID0gMHhmZmZmIDw8IE9QQ09ERV9TSElGVCwKKworICAgICAgICAvKiogc3BlY2lhbCBjb21tYW5kcyAqLworICAgICAgICBTRUxFQ1RfRElTUExBWSAgICAgICAgICAgICAgICAgICAgID0gMHgwMDAgPDwgT1BDT0RFX1NISUZULAorICAgICAgICBTRUxFQ1RfTEFZRVIgICAgICAgICAgICAgICAgICAgICAgID0gMHgwMDEgPDwgT1BDT0RFX1NISUZULAorCisgICAgICAgIC8qKiB2YWx1ZSBjb21tYW5kcyAoZm9yIHJldHVybiB2YWx1ZXMpICovCisgICAgICAgIFNFVF9FUlJPUiAgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDEwMCA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9DSEFOR0VEX0NPTVBPU0lUSU9OX1RZUEVTICAgICAgPSAweDEwMSA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9ESVNQTEFZX1JFUVVFU1RTICAgICAgICAgICAgICAgPSAweDEwMiA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9QUkVTRU5UX0ZFTkNFICAgICAgICAgICAgICAgICAgPSAweDEwMyA8PCBPUENPREVfU0hJRlQsCisgICAgICAgIFNFVF9SRUxFQVNFX0ZFTkNFUyAgICAgICAgICAgICAgICAgPSAweDEwNCA8PCBPUENPREVfU0hJRlQsCisKKyAgICAgICAgLyoqIGRpc3BsYXkgY29tbWFuZHMgKi8KKyAgICAgICAgU0VUX0NPTE9SX1RSQU5TRk9STSAgICAgICAgICAgICAgICA9IDB4MjAwIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0NMSUVOVF9UQVJHRVQgICAgICAgICAgICAgICAgICA9IDB4MjAxIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX09VVFBVVF9CVUZGRVIgICAgICAgICAgICAgICAgICA9IDB4MjAyIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgVkFMSURBVEVfRElTUExBWSAgICAgICAgICAgICAgICAgICA9IDB4MjAzIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgQUNDRVBUX0RJU1BMQVlfQ0hBTkdFUyAgICAgICAgICAgICA9IDB4MjA0IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgUFJFU0VOVF9ESVNQTEFZICAgICAgICAgICAgICAgICAgICA9IDB4MjA1IDw8IE9QQ09ERV9TSElGVCwKKworICAgICAgICAvKiogbGF5ZXIgY29tbWFuZHMgKFZBTElEQVRFX0RJU1BMQVkgbm90IHJlcXVpcmVkKSAqLworICAgICAgICBTRVRfTEFZRVJfQ1VSU09SX1BPU0lUSU9OICAgICAgICAgID0gMHgzMDAgPDwgT1BDT0RFX1NISUZULAorICAgICAgICBTRVRfTEFZRVJfQlVGRkVSICAgICAgICAgICAgICAgICAgID0gMHgzMDEgPDwgT1BDT0RFX1NISUZULAorICAgICAgICBTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UgICAgICAgICAgID0gMHgzMDIgPDwgT1BDT0RFX1NISUZULAorCisgICAgICAgIC8qKiBsYXllciBzdGF0ZSBjb21tYW5kcyAoVkFMSURBVEVfRElTUExBWSByZXF1aXJlZCkgKi8KKyAgICAgICAgU0VUX0xBWUVSX0JMRU5EX01PREUgICAgICAgICAgICAgICA9IDB4NDAwIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0NPTE9SICAgICAgICAgICAgICAgICAgICA9IDB4NDAxIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEUgICAgICAgICA9IDB4NDAyIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0RBVEFTUEFDRSAgICAgICAgICAgICAgICA9IDB4NDAzIDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUgICAgICAgICAgICA9IDB4NDA0IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1BMQU5FX0FMUEhBICAgICAgICAgICAgICA9IDB4NDA1IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1NJREVCQU5EX1NUUkVBTSAgICAgICAgICA9IDB4NDA2IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1NPVVJDRV9DUk9QICAgICAgICAgICAgICA9IDB4NDA3IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1RSQU5TRk9STSAgICAgICAgICAgICAgICA9IDB4NDA4IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1ZJU0lCTEVfUkVHSU9OICAgICAgICAgICA9IDB4NDA5IDw8IE9QQ09ERV9TSElGVCwKKyAgICAgICAgU0VUX0xBWUVSX1pfT1JERVIgICAgICAgICAgICAgICAgICA9IDB4NDBhIDw8IE9QQ09ERV9TSElGVCwKKworICAgICAgICAvKiogMHg4MDAgLSAweGZmZiBhcmUgcmVzZXJ2ZWQgZm9yIHZlbmRvciBleHRlbnNpb25zICovCisgICAgICAgIC8qKiAweDEwMDAgLSAweGZmZmYgYXJlIHJlc2VydmVkICovCisgICAgfTsKK307CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzdmODEwCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDczIEBACitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogImxpYmh3Y29tcG9zZXItY2xpZW50IiwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXSwKKyAgICBzcmNzOiBbIkNvbXBvc2VyQ2xpZW50LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMSIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliZm1xIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnN5bmMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIkh3Yy5jcHAiXSwKKyAgICBzdGF0aWNfbGliczogWyJsaWJod2NvbXBvc2VyLWNsaWVudCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMSIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliZm1xIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnN5bmMiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaHdjMm9uMWFkYXB0ZXIiCisgICAgXSwKK30KKworY2NfYmluYXJ5IHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEtc2VydmljZSIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbInNlcnZpY2UuY3BwIl0sCisgICAgaW5pdF9yYzogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMS1zZXJ2aWNlLnJjIl0sCisgICAgc3RhdGljX2xpYnM6IFsibGliaHdjb21wb3Nlci1jbGllbnQiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJiaW5kZXIiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmZtcSIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJzeW5jIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogImxpYmh3Y29tcG9zZXItY29tbWFuZC1idWZmZXIiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzaGFyZWRfbGliczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMSJdLAorICAgIGV4cG9ydF9pbmNsdWRlX2RpcnM6IFsiLiJdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJCYXNlLmggYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Db21wb3NlckJhc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWIxYTRkCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJCYXNlLmgKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0NPTVBPU0VSX0JBU0VfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX1YyXzFfQ09NUE9TRVJfQkFTRV9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9JQ29tcG9zZXIuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9od2NvbXBvc2VyMi5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6VHJhbnNmb3JtOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkRhdGFzcGFjZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpDb2xvck1vZGU7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6Q29sb3JUcmFuc2Zvcm07Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6SGRyOworCitjbGFzcyBDb21wb3NlckJhc2UgeworcHVibGljOgorICAgIHZpcnR1YWwgfkNvbXBvc2VyQmFzZSgpIHt9OworCisgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlQ2FsbGJhY2soYm9vbCBlbmFibGUpID0gMDsKKyAgICB2aXJ0dWFsIHVpbnQzMl90IGdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQoKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICBQaXhlbEZvcm1hdCogZm9ybWF0LCBEaXNwbGF5KiBvdXREaXNwbGF5KSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBkZXN0cm95VmlydHVhbERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBjcmVhdGVMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyKiBvdXRMYXllcikgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZGVzdHJveUxheWVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIpID0gMDsKKworICAgIHZpcnR1YWwgRXJyb3IgZ2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnKiBvdXRDb25maWcpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCwgRGF0YXNwYWNlIGRhdGFzcGFjZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZ2V0Q29sb3JNb2RlcyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBoaWRsX3ZlYzxDb2xvck1vZGU+KiBvdXRNb2RlcykgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgZ2V0RGlzcGxheUF0dHJpYnV0ZShEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcsCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZSBhdHRyaWJ1dGUsIGludDMyX3QqIG91dFZhbHVlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBoaWRsX3ZlYzxDb25maWc+KiBvdXRDb25maWdzKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXREaXNwbGF5TmFtZShEaXNwbGF5IGRpc3BsYXksIGhpZGxfc3RyaW5nKiBvdXROYW1lKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkRpc3BsYXlUeXBlKiBvdXRUeXBlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBnZXREb3plU3VwcG9ydChEaXNwbGF5IGRpc3BsYXksIGJvb2wqIG91dFN1cHBvcnQpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIGdldEhkckNhcGFiaWxpdGllcyhEaXNwbGF5IGRpc3BsYXksIGhpZGxfdmVjPEhkcj4qIG91dFR5cGVzLAorICAgICAgICAgICAgZmxvYXQqIG91dE1heEx1bWluYW5jZSwgZmxvYXQqIG91dE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgICBmbG9hdCogb3V0TWluTHVtaW5hbmNlKSA9IDA7CisKKyAgICB2aXJ0dWFsIEVycm9yIHNldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRQb3dlck1vZGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGUgbW9kZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6VnN5bmMgZW5hYmxlZCkgPSAwOworCisgICAgdmlydHVhbCBFcnJvciBzZXRDb2xvclRyYW5zZm9ybShEaXNwbGF5IGRpc3BsYXksIGNvbnN0IGZsb2F0KiBtYXRyaXgsCisgICAgICAgICAgICBpbnQzMl90IGhpbnQpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldENsaWVudFRhcmdldChEaXNwbGF5IGRpc3BsYXksIGJ1ZmZlcl9oYW5kbGVfdCB0YXJnZXQsCisgICAgICAgICAgICBpbnQzMl90IGFjcXVpcmVGZW5jZSwgaW50MzJfdCBkYXRhc3BhY2UsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgZGFtYWdlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRPdXRwdXRCdWZmZXIoRGlzcGxheSBkaXNwbGF5LCBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLAorICAgICAgICAgICAgaW50MzJfdCByZWxlYXNlRmVuY2UpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHZhbGlkYXRlRGlzcGxheShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dENoYW5nZWRMYXllcnMsCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OkNvbXBvc2l0aW9uPiogb3V0Q29tcG9zaXRpb25UeXBlcywKKyAgICAgICAgICAgIHVpbnQzMl90KiBvdXREaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dFJlcXVlc3RlZExheWVycywKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQzMl90Piogb3V0UmVxdWVzdE1hc2tzKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBhY2NlcHREaXNwbGF5Q2hhbmdlcyhEaXNwbGF5IGRpc3BsYXkpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHByZXNlbnREaXNwbGF5KERpc3BsYXkgZGlzcGxheSwgaW50MzJfdCogb3V0UHJlc2VudEZlbmNlLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+KiBvdXRMYXllcnMsCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxpbnQzMl90Piogb3V0UmVsZWFzZUZlbmNlcykgPSAwOworCisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllckN1cnNvclBvc2l0aW9uKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IHgsIGludDMyX3QgeSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0TGF5ZXJCdWZmZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXIsIGludDMyX3QgYWNxdWlyZUZlbmNlKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclN1cmZhY2VEYW1hZ2UoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiBkYW1hZ2UpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyQmxlbmRNb2RlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyQ29sb3IoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6Q29sb3IgY29sb3IpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyQ29tcG9zaXRpb25UeXBlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IHR5cGUpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyRGF0YXNwYWNlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBpbnQzMl90IGRhdGFzcGFjZSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3Igc2V0TGF5ZXJEaXNwbGF5RnJhbWUoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IGh3Y19yZWN0X3QmIGZyYW1lKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclBsYW5lQWxwaGEoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGZsb2F0IGFscGhhKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclNpZGViYW5kU3RyZWFtKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3Qgc3RyZWFtKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclNvdXJjZUNyb3AoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IGh3Y19mcmVjdF90JiBjcm9wKSA9IDA7CisgICAgdmlydHVhbCBFcnJvciBzZXRMYXllclRyYW5zZm9ybShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCB0cmFuc2Zvcm0pID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyVmlzaWJsZVJlZ2lvbihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4mIHZpc2libGUpID0gMDsKKyAgICB2aXJ0dWFsIEVycm9yIHNldExheWVyWk9yZGVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICB1aW50MzJfdCB6KSA9IDA7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgY29tcG9zZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfVjJfMV9DT01QT1NFUl9CQVNFX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0NvbXBvc2VyQ2xpZW50LmNwcCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0NvbXBvc2VyQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTRlMTdmCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJDbGllbnQuY3BwCkBAIC0wLDAgKzEsMTE0NSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJId2NQYXNzdGhyb3VnaCIKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiQ29tcG9zZXJDbGllbnQuaCIKKyNpbmNsdWRlICJDb21wb3NlckJhc2UuaCIKKyNpbmNsdWRlICJJQ29tcG9zZXJDb21tYW5kQnVmZmVyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIGNvbXBvc2VyIHsKK25hbWVzcGFjZSBWMl8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK25hbWVzcGFjZSB7CisKK3VzaW5nIE1hcHBlckVycm9yID0gYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OkVycm9yOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI7CisKK2NsYXNzIEhhbmRsZUltcG9ydGVyIHsKK3B1YmxpYzoKKyAgICBib29sIGluaXRpYWxpemUoKQorICAgIHsKKyAgICAgICAgLy8gYWxsb3cgb25seSBvbmUgY2xpZW50CisgICAgICAgIGlmIChtSW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIG1NYXBwZXIgPSBJTWFwcGVyOjpnZXRTZXJ2aWNlKCk7CisKKyAgICAgICAgbUluaXRpYWxpemVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCBjbGVhbnVwKCkKKyAgICB7CisgICAgICAgIG1NYXBwZXIuY2xlYXIoKTsKKyAgICAgICAgbUluaXRpYWxpemVkID0gZmFsc2U7CisgICAgfQorCisgICAgLy8gSW4gSUNvbXBvc2VyLCBhbnkgYnVmZmVyX2hhbmRsZV90IGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIgYW5kIHdlIG5lZWQgdG8KKyAgICAvLyBtYWtlIGEgY2xvbmUgZm9yIGh3Y29tcG9zZXIyLiAgV2UgYWxzbyBuZWVkIHRvIHRyYW5zbGF0ZSBlbXB0eSBoYW5kbGUKKyAgICAvLyB0byBudWxscHRyLiAgVGhpcyBmdW5jdGlvbiBkb2VzIHRoYXQsIGluLXBsYWNlLgorICAgIGJvb2wgaW1wb3J0QnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCYgaGFuZGxlKQorICAgIHsKKyAgICAgICAgaWYgKCFoYW5kbGUpIHsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFoYW5kbGUtPm51bUZkcyAmJiAhaGFuZGxlLT5udW1JbnRzKSB7CisgICAgICAgICAgICBoYW5kbGUgPSBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICBNYXBwZXJFcnJvciBlcnJvcjsKKyAgICAgICAgYnVmZmVyX2hhbmRsZV90IGltcG9ydGVkSGFuZGxlOworICAgICAgICBtTWFwcGVyLT5pbXBvcnRCdWZmZXIoCisgICAgICAgICAgICBoaWRsX2hhbmRsZShoYW5kbGUpLAorICAgICAgICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBCdWZmZXJIYW5kbGUpIHsKKyAgICAgICAgICAgICAgICBlcnJvciA9IHRtcEVycm9yOworICAgICAgICAgICAgICAgIGltcG9ydGVkSGFuZGxlID0gc3RhdGljX2Nhc3Q8YnVmZmVyX2hhbmRsZV90Pih0bXBCdWZmZXJIYW5kbGUpOworICAgICAgICAgICAgfSk7CisgICAgICAgIGlmIChlcnJvciAhPSBNYXBwZXJFcnJvcjo6Tk9ORSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaGFuZGxlID0gaW1wb3J0ZWRIYW5kbGU7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgdm9pZCBmcmVlQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUpCisgICAgeworICAgICAgICBpZiAoIWhhbmRsZSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbU1hcHBlci0+ZnJlZUJ1ZmZlcihjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGhhbmRsZSkpOworICAgIH0KKworcHJpdmF0ZToKKyBib29sIG1Jbml0aWFsaXplZCA9IGZhbHNlOworIHNwPElNYXBwZXI+IG1NYXBwZXI7Cit9OworCitIYW5kbGVJbXBvcnRlciBzSGFuZGxlSW1wb3J0ZXI7CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitCdWZmZXJDYWNoZUVudHJ5OjpCdWZmZXJDYWNoZUVudHJ5KCkKKyAgICA6IG1IYW5kbGUobnVsbHB0cikKK3sKK30KKworQnVmZmVyQ2FjaGVFbnRyeTo6QnVmZmVyQ2FjaGVFbnRyeShCdWZmZXJDYWNoZUVudHJ5JiYgb3RoZXIpCit7CisgICAgbUhhbmRsZSA9IG90aGVyLm1IYW5kbGU7CisgICAgb3RoZXIubUhhbmRsZSA9IG51bGxwdHI7Cit9CisKK0J1ZmZlckNhY2hlRW50cnkmIEJ1ZmZlckNhY2hlRW50cnk6Om9wZXJhdG9yPShidWZmZXJfaGFuZGxlX3QgaGFuZGxlKQoreworICAgIGNsZWFyKCk7CisgICAgbUhhbmRsZSA9IGhhbmRsZTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK0J1ZmZlckNhY2hlRW50cnk6On5CdWZmZXJDYWNoZUVudHJ5KCkKK3sKKyAgICBjbGVhcigpOworfQorCit2b2lkIEJ1ZmZlckNhY2hlRW50cnk6OmNsZWFyKCkKK3sKKyAgICBpZiAobUhhbmRsZSkgeworICAgICAgICBzSGFuZGxlSW1wb3J0ZXIuZnJlZUJ1ZmZlcihtSGFuZGxlKTsKKyAgICB9Cit9CisKK0NvbXBvc2VyQ2xpZW50OjpDb21wb3NlckNsaWVudChDb21wb3NlckJhc2UmIGhhbCkKKyAgICA6IG1IYWwoaGFsKSwgbVdyaXRlcihrV3JpdGVySW5pdGlhbFNpemUpCit7Cit9CisKK0NvbXBvc2VyQ2xpZW50Ojp+Q29tcG9zZXJDbGllbnQoKQoreworICAgIC8vIFdlIHdhbnQgdG8gY2FsbCBod2MyX2Nsb3NlIGhlcmUgKGFuZCBtb3ZlIGh3YzJfb3BlbiB0byB0aGUKKyAgICAvLyBjb25zdHJ1Y3RvciksIHdpdGggdGhlIGFzc3VtcHRpb24gdGhhdCBod2MyX2Nsb3NlIHdvdWxkCisgICAgLy8KKyAgICAvLyAgLSBjbGVhbiB1cCBhbGwgcmVzb3VyY2VzIG93bmVkIGJ5IHRoZSBjbGllbnQKKyAgICAvLyAgLSBtYWtlIHN1cmUgYWxsIGRpc3BsYXlzIGFyZSBibGFuayAoc2luY2UgdGhlcmUgaXMgbm8gbGF5ZXIpCisgICAgLy8KKyAgICAvLyBCdXQgc2luY2UgU0YgdXNlZCB0byBjcmFzaCBhdCB0aGlzIHBvaW50LCBkaWZmZXJlbnQgaHdjb21wb3NlcjIKKyAgICAvLyBpbXBsZW1lbnRhdGlvbnMgYmVoYXZlIGRpZmZlcmVudGx5IG9uIGh3YzJfY2xvc2UuICBPdXIgb25seSBwb3J0YWJsZQorICAgIC8vIGNob2ljZSByZWFsbHkgaXMgdG8gYWJvcnQoKS4gIEJ1dCB0aGF0IGlzIG5vdCBhbiBvcHRpb24gYW55bW9yZQorICAgIC8vIGJlY2F1c2Ugd2UgbWlnaHQgYWxzbyBoYXZlIFZUUyBvciBWUiBhcyBjbGllbnRzIHRoYXQgY2FuIGNvbWUgYW5kIGdvLgorICAgIC8vCisgICAgLy8gQmVsb3cgd2UgbWFudWFsbHkgY2xlYW4gYWxsIHJlc291cmNlcyAobGF5ZXJzIGFuZCB2aXJ0dWFsCisgICAgLy8gZGlzcGxheXMpLCBhbmQgcGVyZm9ybSBhIHByZXNlbnREaXNwbGF5IGFmdGVyd2FyZHMuCisgICAgQUxPR1coImRlc3Ryb3lpbmcgY29tcG9zZXIgY2xpZW50Iik7CisKKyAgICBtSGFsLmVuYWJsZUNhbGxiYWNrKGZhbHNlKTsKKworICAgIC8vIG5vIG5lZWQgdG8gZ3JhYiB0aGUgbXV0ZXggYXMgYW55IGluLWZsaWdodCBod2JpbmRlciBjYWxsIHdvdWxkIGhhdmUKKyAgICAvLyBrZXB0IHRoZSBjbGllbnQgYWxpdmUKKyAgICBmb3IgKGNvbnN0IGF1dG8mIGRweSA6IG1EaXNwbGF5RGF0YSkgeworICAgICAgICBBTE9HVygiZGVzdHJveWluZyBjbGllbnQgcmVzb3VyY2VzIGZvciBkaXNwbGF5ICUiIFBSSXU2NCwgZHB5LmZpcnN0KTsKKworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGx5IDogZHB5LnNlY29uZC5MYXllcnMpIHsKKyAgICAgICAgICAgIG1IYWwuZGVzdHJveUxheWVyKGRweS5maXJzdCwgbHkuZmlyc3QpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRweS5zZWNvbmQuSXNWaXJ0dWFsKSB7CisgICAgICAgICAgICBtSGFsLmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShkcHkuZmlyc3QpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgQUxPR1coInBlcmZvcm1pbmcgYSBmaW5hbCBwcmVzZW50RGlzcGxheSIpOworCisgICAgICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4gY2hhbmdlZExheWVyczsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb24+IGNvbXBvc2l0aW9uVHlwZXM7CisgICAgICAgICAgICB1aW50MzJfdCBkaXNwbGF5UmVxdWVzdE1hc2sgPSAwOworICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+IHJlcXVlc3RlZExheWVyczsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHVpbnQzMl90PiByZXF1ZXN0TWFza3M7CisgICAgICAgICAgICBtSGFsLnZhbGlkYXRlRGlzcGxheShkcHkuZmlyc3QsICZjaGFuZ2VkTGF5ZXJzLCAmY29tcG9zaXRpb25UeXBlcywKKyAgICAgICAgICAgICAgICAgICAgJmRpc3BsYXlSZXF1ZXN0TWFzaywgJnJlcXVlc3RlZExheWVycywgJnJlcXVlc3RNYXNrcyk7CisKKyAgICAgICAgICAgIG1IYWwuYWNjZXB0RGlzcGxheUNoYW5nZXMoZHB5LmZpcnN0KTsKKworICAgICAgICAgICAgaW50MzJfdCBwcmVzZW50RmVuY2UgPSAtMTsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPExheWVyPiByZWxlYXNlZExheWVyczsKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IHJlbGVhc2VGZW5jZXM7CisgICAgICAgICAgICBtSGFsLnByZXNlbnREaXNwbGF5KGRweS5maXJzdCwgJnByZXNlbnRGZW5jZSwgJnJlbGVhc2VkTGF5ZXJzLCAmcmVsZWFzZUZlbmNlcyk7CisgICAgICAgICAgICBpZiAocHJlc2VudEZlbmNlID49IDApIHsKKyAgICAgICAgICAgICAgICBjbG9zZShwcmVzZW50RmVuY2UpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChhdXRvIGZlbmNlIDogcmVsZWFzZUZlbmNlcykgeworICAgICAgICAgICAgICAgIGlmIChmZW5jZSA+PSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGNsb3NlKGZlbmNlKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtRGlzcGxheURhdGEuY2xlYXIoKTsKKworICAgIHNIYW5kbGVJbXBvcnRlci5jbGVhbnVwKCk7CisKKyAgICBtSGFsLnJlbW92ZUNsaWVudCgpOworCisgICAgQUxPR1coInJlbW92ZWQgY29tcG9zZXIgY2xpZW50Iik7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OmluaXRpYWxpemUoKQoreworICAgIG1SZWFkZXIgPSBjcmVhdGVDb21tYW5kUmVhZGVyKCk7CisgICAgaWYgKCFzSGFuZGxlSW1wb3J0ZXIuaW5pdGlhbGl6ZSgpKSB7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUwoImZhaWxlZCB0byBpbml0aWFsaXplIGhhbmRsZSBpbXBvcnRlciIpOworICAgIH0KK30KKwordm9pZCBDb21wb3NlckNsaWVudDo6b25Ib3RwbHVnKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb24gY29ubmVjdGVkKQoreworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobURpc3BsYXlEYXRhTXV0ZXgpOworCisgICAgICAgIGlmIChjb25uZWN0ZWQgPT0gSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb246OkNPTk5FQ1RFRCkgeworICAgICAgICAgICAgbURpc3BsYXlEYXRhLmVtcGxhY2UoZGlzcGxheSwgRGlzcGxheURhdGEoZmFsc2UpKTsKKyAgICAgICAgfSBlbHNlIGlmIChjb25uZWN0ZWQgPT0gSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb246OkRJU0NPTk5FQ1RFRCkgeworICAgICAgICAgICAgbURpc3BsYXlEYXRhLmVyYXNlKGRpc3BsYXkpOworICAgICAgICB9CisgICAgfQorCisgICAgYXV0byByZXQgPSBtQ2FsbGJhY2stPm9uSG90cGx1ZyhkaXNwbGF5LCBjb25uZWN0ZWQpOworICAgIEFMT0dFX0lGKCFyZXQuaXNPaygpLCAiZmFpbGVkIHRvIHNlbmQgb25Ib3RwbHVnOiAlcyIsCisgICAgICAgICAgICByZXQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKK30KKwordm9pZCBDb21wb3NlckNsaWVudDo6b25SZWZyZXNoKERpc3BsYXkgZGlzcGxheSkKK3sKKyAgICBhdXRvIHJldCA9IG1DYWxsYmFjay0+b25SZWZyZXNoKGRpc3BsYXkpOworICAgIEFMT0dFX0lGKCFyZXQuaXNPaygpLCAiZmFpbGVkIHRvIHNlbmQgb25SZWZyZXNoOiAlcyIsCisgICAgICAgICAgICByZXQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKK30KKwordm9pZCBDb21wb3NlckNsaWVudDo6b25Wc3luYyhEaXNwbGF5IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKQoreworICAgIGF1dG8gcmV0ID0gbUNhbGxiYWNrLT5vblZzeW5jKGRpc3BsYXksIHRpbWVzdGFtcCk7CisgICAgQUxPR0VfSUYoIXJldC5pc09rKCksICJmYWlsZWQgdG8gc2VuZCBvblZzeW5jOiAlcyIsCisgICAgICAgICAgICByZXQuZGVzY3JpcHRpb24oKS5jX3N0cigpKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpyZWdpc3RlckNhbGxiYWNrKAorICAgICAgICBjb25zdCBzcDxJQ29tcG9zZXJDYWxsYmFjaz4mIGNhbGxiYWNrKQoreworICAgIC8vIG5vIGxvY2tpbmcgYXMgd2UgcmVxdWlyZSB0aGlzIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBvbmx5IG9uY2UKKyAgICBtQ2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICBtSGFsLmVuYWJsZUNhbGxiYWNrKGNhbGxiYWNrICE9IG51bGxwdHIpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHVpbnQzMl90PiBDb21wb3NlckNsaWVudDo6Z2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpCit7CisgICAgcmV0dXJuIG1IYWwuZ2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpOworfQorCitSZXR1cm48dm9pZD4gQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZVZpcnR1YWxEaXNwbGF5KHVpbnQzMl90IHdpZHRoLAorICAgICAgICB1aW50MzJfdCBoZWlnaHQsIFBpeGVsRm9ybWF0IGZvcm1hdEhpbnQsIHVpbnQzMl90IG91dHB1dEJ1ZmZlclNsb3RDb3VudCwKKyAgICAgICAgY3JlYXRlVmlydHVhbERpc3BsYXlfY2IgaGlkbF9jYikKK3sKKyAgICBEaXNwbGF5IGRpc3BsYXkgPSAwOworICAgIEVycm9yIGVyciA9IG1IYWwuY3JlYXRlVmlydHVhbERpc3BsYXkod2lkdGgsIGhlaWdodCwKKyAgICAgICAgICAgICZmb3JtYXRIaW50LCAmZGlzcGxheSk7CisgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtRGlzcGxheURhdGFNdXRleCk7CisKKyAgICAgICAgYXV0byBkcHkgPSBtRGlzcGxheURhdGEuZW1wbGFjZShkaXNwbGF5LCBEaXNwbGF5RGF0YSh0cnVlKSkuZmlyc3Q7CisgICAgICAgIGRweS0+c2Vjb25kLk91dHB1dEJ1ZmZlcnMucmVzaXplKG91dHB1dEJ1ZmZlclNsb3RDb3VudCk7CisgICAgfQorCisgICAgaGlkbF9jYihlcnIsIGRpc3BsYXksIGZvcm1hdEhpbnQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxFcnJvcj4gQ29tcG9zZXJDbGllbnQ6OmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5kZXN0cm95VmlydHVhbERpc3BsYXkoZGlzcGxheSk7CisgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtRGlzcGxheURhdGFNdXRleCk7CisKKyAgICAgICAgbURpc3BsYXlEYXRhLmVyYXNlKGRpc3BsYXkpOworICAgIH0KKworICAgIHJldHVybiBlcnI7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Y3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICB1aW50MzJfdCBidWZmZXJTbG90Q291bnQsIGNyZWF0ZUxheWVyX2NiIGhpZGxfY2IpCit7CisgICAgTGF5ZXIgbGF5ZXIgPSAwOworICAgIEVycm9yIGVyciA9IG1IYWwuY3JlYXRlTGF5ZXIoZGlzcGxheSwgJmxheWVyKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EaXNwbGF5RGF0YU11dGV4KTsKKworICAgICAgICBhdXRvIGRweSA9IG1EaXNwbGF5RGF0YS5maW5kKGRpc3BsYXkpOworICAgICAgICBhdXRvIGx5ID0gZHB5LT5zZWNvbmQuTGF5ZXJzLmVtcGxhY2UobGF5ZXIsIExheWVyQnVmZmVycygpKS5maXJzdDsKKyAgICAgICAgbHktPnNlY29uZC5CdWZmZXJzLnJlc2l6ZShidWZmZXJTbG90Q291bnQpOworICAgIH0KKworICAgIGhpZGxfY2IoZXJyLCBsYXllcik7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6ZGVzdHJveUxheWVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5kZXN0cm95TGF5ZXIoZGlzcGxheSwgbGF5ZXIpOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobURpc3BsYXlEYXRhTXV0ZXgpOworCisgICAgICAgIGF1dG8gZHB5ID0gbURpc3BsYXlEYXRhLmZpbmQoZGlzcGxheSk7CisgICAgICAgIGRweS0+c2Vjb25kLkxheWVycy5lcmFzZShsYXllcik7CisgICAgfQorCisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBnZXRBY3RpdmVDb25maWdfY2IgaGlkbF9jYikKK3sKKyAgICBDb25maWcgY29uZmlnID0gMDsKKyAgICBFcnJvciBlcnIgPSBtSGFsLmdldEFjdGl2ZUNvbmZpZyhkaXNwbGF5LCAmY29uZmlnKTsKKworICAgIGhpZGxfY2IoZXJyLCBjb25maWcpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxFcnJvcj4gQ29tcG9zZXJDbGllbnQ6OmdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICB1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsIERhdGFzcGFjZSBkYXRhc3BhY2UpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5nZXRDbGllbnRUYXJnZXRTdXBwb3J0KGRpc3BsYXksCisgICAgICAgICAgICB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIGRhdGFzcGFjZSk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXRDb2xvck1vZGVzKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICBnZXRDb2xvck1vZGVzX2NiIGhpZGxfY2IpCit7CisgICAgaGlkbF92ZWM8Q29sb3JNb2RlPiBtb2RlczsKKyAgICBFcnJvciBlcnIgPSBtSGFsLmdldENvbG9yTW9kZXMoZGlzcGxheSwgJm1vZGVzKTsKKworICAgIGhpZGxfY2IoZXJyLCBtb2Rlcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5QXR0cmlidXRlKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgQ29uZmlnIGNvbmZpZywgQXR0cmlidXRlIGF0dHJpYnV0ZSwKKyAgICAgICAgZ2V0RGlzcGxheUF0dHJpYnV0ZV9jYiBoaWRsX2NiKQoreworICAgIGludDMyX3QgdmFsdWUgPSAwOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RGlzcGxheUF0dHJpYnV0ZShkaXNwbGF5LCBjb25maWcsIGF0dHJpYnV0ZSwgJnZhbHVlKTsKKworICAgIGhpZGxfY2IoZXJyLCB2YWx1ZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIGdldERpc3BsYXlDb25maWdzX2NiIGhpZGxfY2IpCit7CisgICAgaGlkbF92ZWM8Q29uZmlnPiBjb25maWdzOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RGlzcGxheUNvbmZpZ3MoZGlzcGxheSwgJmNvbmZpZ3MpOworCisgICAgaGlkbF9jYihlcnIsIGNvbmZpZ3MpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBnZXREaXNwbGF5TmFtZV9jYiBoaWRsX2NiKQoreworICAgIGhpZGxfc3RyaW5nIG5hbWU7CisgICAgRXJyb3IgZXJyID0gbUhhbC5nZXREaXNwbGF5TmFtZShkaXNwbGF5LCAmbmFtZSk7CisKKyAgICBoaWRsX2NiKGVyciwgbmFtZSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIGdldERpc3BsYXlUeXBlX2NiIGhpZGxfY2IpCit7CisgICAgRGlzcGxheVR5cGUgdHlwZSA9IERpc3BsYXlUeXBlOjpJTlZBTElEOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RGlzcGxheVR5cGUoZGlzcGxheSwgJnR5cGUpOworCisgICAgaGlkbF9jYihlcnIsIHR5cGUpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0RG96ZVN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBnZXREb3plU3VwcG9ydF9jYiBoaWRsX2NiKQoreworICAgIGJvb2wgc3VwcG9ydCA9IGZhbHNlOworICAgIEVycm9yIGVyciA9IG1IYWwuZ2V0RG96ZVN1cHBvcnQoZGlzcGxheSwgJnN1cHBvcnQpOworCisgICAgaGlkbF9jYihlcnIsIHN1cHBvcnQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBDb21wb3NlckNsaWVudDo6Z2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgZ2V0SGRyQ2FwYWJpbGl0aWVzX2NiIGhpZGxfY2IpCit7CisgICAgaGlkbF92ZWM8SGRyPiB0eXBlczsKKyAgICBmbG9hdCBtYXhfbHVtaSA9IDAuMGY7CisgICAgZmxvYXQgbWF4X2F2Z19sdW1pID0gMC4wZjsKKyAgICBmbG9hdCBtaW5fbHVtaSA9IDAuMGY7CisgICAgRXJyb3IgZXJyID0gbUhhbC5nZXRIZHJDYXBhYmlsaXRpZXMoZGlzcGxheSwgJnR5cGVzLAorICAgICAgICAgICAgJm1heF9sdW1pLCAmbWF4X2F2Z19sdW1pLCAmbWluX2x1bWkpOworCisgICAgaGlkbF9jYihlcnIsIHR5cGVzLCBtYXhfbHVtaSwgbWF4X2F2Z19sdW1pLCBtaW5fbHVtaSk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1EaXNwbGF5RGF0YU11dGV4KTsKKworICAgIGF1dG8gZHB5ID0gbURpc3BsYXlEYXRhLmZpbmQoZGlzcGxheSk7CisgICAgaWYgKGRweSA9PSBtRGlzcGxheURhdGEuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfRElTUExBWTsKKyAgICB9CisKKyAgICBkcHktPnNlY29uZC5DbGllbnRUYXJnZXRzLnJlc2l6ZShjbGllbnRUYXJnZXRTbG90Q291bnQpOworCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCitSZXR1cm48RXJyb3I+IENvbXBvc2VyQ2xpZW50OjpzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKQoreworICAgIEVycm9yIGVyciA9IG1IYWwuc2V0QWN0aXZlQ29uZmlnKGRpc3BsYXksIGNvbmZpZyk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0Q29sb3JNb2RlKERpc3BsYXkgZGlzcGxheSwgQ29sb3JNb2RlIG1vZGUpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5zZXRDb2xvck1vZGUoZGlzcGxheSwgbW9kZSk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0UG93ZXJNb2RlKERpc3BsYXkgZGlzcGxheSwgUG93ZXJNb2RlIG1vZGUpCit7CisgICAgRXJyb3IgZXJyID0gbUhhbC5zZXRQb3dlck1vZGUoZGlzcGxheSwgbW9kZSk7CisgICAgcmV0dXJuIGVycjsKK30KKworUmV0dXJuPEVycm9yPiBDb21wb3NlckNsaWVudDo6c2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwgVnN5bmMgZW5hYmxlZCkKK3sKKyAgICBFcnJvciBlcnIgPSBtSGFsLnNldFZzeW5jRW5hYmxlZChkaXNwbGF5LCBlbmFibGVkKTsKKyAgICByZXR1cm4gZXJyOworfQorCitSZXR1cm48RXJyb3I+IENvbXBvc2VyQ2xpZW50OjpzZXRJbnB1dENvbW1hbmRRdWV1ZSgKKyAgICAgICAgY29uc3QgTVFEZXNjcmlwdG9yU3luYzx1aW50MzJfdD4mIGRlc2NyaXB0b3IpCit7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNvbW1hbmRNdXRleCk7CisgICAgcmV0dXJuIG1SZWFkZXItPnNldE1RRGVzY3JpcHRvcihkZXNjcmlwdG9yKSA/CisgICAgICAgIEVycm9yOjpOT05FIDogRXJyb3I6Ok5PX1JFU09VUkNFUzsKK30KKworUmV0dXJuPHZvaWQ+IENvbXBvc2VyQ2xpZW50OjpnZXRPdXRwdXRDb21tYW5kUXVldWUoCisgICAgICAgIGdldE91dHB1dENvbW1hbmRRdWV1ZV9jYiBoaWRsX2NiKQoreworICAgIC8vIG5vIGxvY2tpbmcgYXMgd2UgcmVxdWlyZSB0aGlzIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBpbnNpZGUKKyAgICAvLyBleGVjdXRlQ29tbWFuZHNfY2IKKworICAgIGF1dG8gb3V0RGVzY3JpcHRvciA9IG1Xcml0ZXIuZ2V0TVFEZXNjcmlwdG9yKCk7CisgICAgaWYgKG91dERlc2NyaXB0b3IpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6Tk9ORSwgKm91dERlc2NyaXB0b3IpOworICAgIH0gZWxzZSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6Ok5PX1JFU09VUkNFUywgQ29tbWFuZFF1ZXVlVHlwZTo6RGVzY3JpcHRvcigpKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gQ29tcG9zZXJDbGllbnQ6OmV4ZWN1dGVDb21tYW5kcyh1aW50MzJfdCBpbkxlbmd0aCwKKyAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9oYW5kbGU+JiBpbkhhbmRsZXMsCisgICAgICAgIGV4ZWN1dGVDb21tYW5kc19jYiBoaWRsX2NiKQoreworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1Db21tYW5kTXV0ZXgpOworCisgICAgYm9vbCBvdXRDaGFuZ2VkID0gZmFsc2U7CisgICAgdWludDMyX3Qgb3V0TGVuZ3RoID0gMDsKKyAgICBoaWRsX3ZlYzxoaWRsX2hhbmRsZT4gb3V0SGFuZGxlczsKKworICAgIGlmICghbVJlYWRlci0+cmVhZFF1ZXVlKGluTGVuZ3RoLCBpbkhhbmRsZXMpKSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6OkJBRF9QQVJBTUVURVIsIG91dENoYW5nZWQsIG91dExlbmd0aCwgb3V0SGFuZGxlcyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgRXJyb3IgZXJyID0gbVJlYWRlci0+cGFyc2UoKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FICYmCisgICAgICAgICAgICAhbVdyaXRlci53cml0ZVF1ZXVlKCZvdXRDaGFuZ2VkLCAmb3V0TGVuZ3RoLCAmb3V0SGFuZGxlcykpIHsKKyAgICAgICAgZXJyID0gRXJyb3I6Ok5PX1JFU09VUkNFUzsKKyAgICB9CisKKyAgICBoaWRsX2NiKGVyciwgb3V0Q2hhbmdlZCwgb3V0TGVuZ3RoLCBvdXRIYW5kbGVzKTsKKworICAgIG1SZWFkZXItPnJlc2V0KCk7CisgICAgbVdyaXRlci5yZXNldCgpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyPgorQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZUNvbW1hbmRSZWFkZXIoKQoreworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI+KAorICAgICAgICBuZXcgQ29tbWFuZFJlYWRlcigqdGhpcykpOworfQorCitDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6Q29tbWFuZFJlYWRlcihDb21wb3NlckNsaWVudCYgY2xpZW50KQorICAgIDogbUNsaWVudChjbGllbnQpLCBtSGFsKGNsaWVudC5tSGFsKSwgbVdyaXRlcihjbGllbnQubVdyaXRlcikKK3sKK30KKworQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6On5Db21tYW5kUmVhZGVyKCkKK3sKK30KKworRXJyb3IgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlKCkKK3sKKyAgICBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQgY29tbWFuZDsKKyAgICB1aW50MTZfdCBsZW5ndGggPSAwOworCisgICAgd2hpbGUgKCFpc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKCFiZWdpbkNvbW1hbmQoJmNvbW1hbmQsICZsZW5ndGgpKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgcGFyc2VkID0gcGFyc2VDb21tYW5kKGNvbW1hbmQsIGxlbmd0aCk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKworICAgICAgICBpZiAoIXBhcnNlZCkgeworICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byBwYXJzZSBjb21tYW5kIDB4JXgsIGxlbmd0aCAlIiBQUkl1MTYsCisgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQsIGxlbmd0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAoaXNFbXB0eSgpKSA/IEVycm9yOjpOT05FIDogRXJyb3I6OkJBRF9QQVJBTUVURVI7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlQ29tbWFuZCgKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kIGNvbW1hbmQsIHVpbnQxNl90IGxlbmd0aCkgeworICAgIHN3aXRjaCAoY29tbWFuZCkgeworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRUxFQ1RfRElTUExBWToKKyAgICAgICAgcmV0dXJuIHBhcnNlU2VsZWN0RGlzcGxheShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRUxFQ1RfTEFZRVI6CisgICAgICAgIHJldHVybiBwYXJzZVNlbGVjdExheWVyKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DT0xPUl9UUkFOU0ZPUk06CisgICAgICAgIHJldHVybiBwYXJzZVNldENvbG9yVHJhbnNmb3JtKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DTElFTlRfVEFSR0VUOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRDbGllbnRUYXJnZXQobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX09VVFBVVF9CVUZGRVI6CisgICAgICAgIHJldHVybiBwYXJzZVNldE91dHB1dEJ1ZmZlcihsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpWQUxJREFURV9ESVNQTEFZOgorICAgICAgICByZXR1cm4gcGFyc2VWYWxpZGF0ZURpc3BsYXkobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6QUNDRVBUX0RJU1BMQVlfQ0hBTkdFUzoKKyAgICAgICAgcmV0dXJuIHBhcnNlQWNjZXB0RGlzcGxheUNoYW5nZXMobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6UFJFU0VOVF9ESVNQTEFZOgorICAgICAgICByZXR1cm4gcGFyc2VQcmVzZW50RGlzcGxheShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQ1VSU09SX1BPU0lUSU9OOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckN1cnNvclBvc2l0aW9uKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9CVUZGRVI6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyQnVmZmVyKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9TVVJGQUNFX0RBTUFHRToKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJTdXJmYWNlRGFtYWdlKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9CTEVORF9NT0RFOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckJsZW5kTW9kZShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQ09MT1I6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyQ29sb3IobGVuZ3RoKTsKKyAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEU6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyQ29tcG9zaXRpb25UeXBlKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9EQVRBU1BBQ0U6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyRGF0YXNwYWNlKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9ESVNQTEFZX0ZSQU1FOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllckRpc3BsYXlGcmFtZShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfUExBTkVfQUxQSEE6CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyUGxhbmVBbHBoYShsZW5ndGgpOworICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU0lERUJBTkRfU1RSRUFNOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllclNpZGViYW5kU3RyZWFtKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9TT1VSQ0VfQ1JPUDoKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJTb3VyY2VDcm9wKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9UUkFOU0ZPUk06CisgICAgICAgIHJldHVybiBwYXJzZVNldExheWVyVHJhbnNmb3JtKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9WSVNJQkxFX1JFR0lPTjoKKyAgICAgICAgcmV0dXJuIHBhcnNlU2V0TGF5ZXJWaXNpYmxlUmVnaW9uKGxlbmd0aCk7CisgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9aX09SREVSOgorICAgICAgICByZXR1cm4gcGFyc2VTZXRMYXllclpPcmRlcihsZW5ndGgpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2VsZWN0RGlzcGxheSh1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NlbGVjdERpc3BsYXlMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1EaXNwbGF5ID0gcmVhZDY0KCk7CisgICAgbVdyaXRlci5zZWxlY3REaXNwbGF5KG1EaXNwbGF5KTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNlbGVjdExheWVyKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2VsZWN0TGF5ZXJMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIG1MYXllciA9IHJlYWQ2NCgpOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0Q29sb3JUcmFuc2Zvcm0odWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRDb2xvclRyYW5zZm9ybUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZmxvYXQgbWF0cml4WzE2XTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDE2OyBpKyspIHsKKyAgICAgICAgbWF0cml4W2ldID0gcmVhZEZsb2F0KCk7CisgICAgfQorICAgIGF1dG8gdHJhbnNmb3JtID0gcmVhZFNpZ25lZCgpOworCisgICAgYXV0byBlcnIgPSBtSGFsLnNldENvbG9yVHJhbnNmb3JtKG1EaXNwbGF5LCBtYXRyaXgsIHRyYW5zZm9ybSk7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRDbGllbnRUYXJnZXQodWludDE2X3QgbGVuZ3RoKQoreworICAgIC8vIDQgcGFyYW1ldGVycyBmb2xsb3dlZCBieSBOIHJlY3RhbmdsZXMKKyAgICBpZiAoKGxlbmd0aCAtIDQpICUgNCAhPSAwKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBib29sIHVzZUNhY2hlID0gZmFsc2U7CisgICAgYXV0byBzbG90ID0gcmVhZCgpOworICAgIGF1dG8gY2xpZW50VGFyZ2V0ID0gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIGF1dG8gZmVuY2UgPSByZWFkRmVuY2UoKTsKKyAgICBhdXRvIGRhdGFzcGFjZSA9IHJlYWRTaWduZWQoKTsKKyAgICBhdXRvIGRhbWFnZSA9IHJlYWRSZWdpb24oKGxlbmd0aCAtIDQpIC8gNCk7CisgICAgYm9vbCBjbG9zZUZlbmNlID0gdHJ1ZTsKKworICAgIGF1dG8gZXJyID0gbG9va3VwQnVmZmVyKEJ1ZmZlckNhY2hlOjpDTElFTlRfVEFSR0VUUywKKyAgICAgICAgICAgIHNsb3QsIHVzZUNhY2hlLCBjbGllbnRUYXJnZXQsICZjbGllbnRUYXJnZXQpOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgZXJyID0gbUhhbC5zZXRDbGllbnRUYXJnZXQobURpc3BsYXksIGNsaWVudFRhcmdldCwgZmVuY2UsCisgICAgICAgICAgICAgICAgZGF0YXNwYWNlLCBkYW1hZ2UpOworICAgICAgICBhdXRvIHVwZGF0ZUJ1ZkVyciA9IHVwZGF0ZUJ1ZmZlcihCdWZmZXJDYWNoZTo6Q0xJRU5UX1RBUkdFVFMsIHNsb3QsCisgICAgICAgICAgICAgICAgdXNlQ2FjaGUsIGNsaWVudFRhcmdldCk7CisgICAgICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgICAgIGNsb3NlRmVuY2UgPSBmYWxzZTsKKyAgICAgICAgICAgIGVyciA9IHVwZGF0ZUJ1ZkVycjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoY2xvc2VGZW5jZSkgeworICAgICAgICBjbG9zZShmZW5jZSk7CisgICAgfQorICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0T3V0cHV0QnVmZmVyKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0T3V0cHV0QnVmZmVyTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBib29sIHVzZUNhY2hlID0gZmFsc2U7CisgICAgYXV0byBzbG90ID0gcmVhZCgpOworICAgIGF1dG8gb3V0cHV0QnVmZmVyID0gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIGF1dG8gZmVuY2UgPSByZWFkRmVuY2UoKTsKKyAgICBib29sIGNsb3NlRmVuY2UgPSB0cnVlOworCisgICAgYXV0byBlcnIgPSBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGU6Ok9VVFBVVF9CVUZGRVJTLAorICAgICAgICAgICAgc2xvdCwgdXNlQ2FjaGUsIG91dHB1dEJ1ZmZlciwgJm91dHB1dEJ1ZmZlcik7CisgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBlcnIgPSBtSGFsLnNldE91dHB1dEJ1ZmZlcihtRGlzcGxheSwgb3V0cHV0QnVmZmVyLCBmZW5jZSk7CisgICAgICAgIGF1dG8gdXBkYXRlQnVmRXJyID0gdXBkYXRlQnVmZmVyKEJ1ZmZlckNhY2hlOjpPVVRQVVRfQlVGRkVSUywKKyAgICAgICAgICAgICAgICBzbG90LCB1c2VDYWNoZSwgb3V0cHV0QnVmZmVyKTsKKyAgICAgICAgaWYgKGVyciA9PSBFcnJvcjo6Tk9ORSkgeworICAgICAgICAgICAgY2xvc2VGZW5jZSA9IGZhbHNlOworICAgICAgICAgICAgZXJyID0gdXBkYXRlQnVmRXJyOworICAgICAgICB9CisgICAgfQorICAgIGlmIChjbG9zZUZlbmNlKSB7CisgICAgICAgIGNsb3NlKGZlbmNlKTsKKyAgICB9CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VWYWxpZGF0ZURpc3BsYXkodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtWYWxpZGF0ZURpc3BsYXlMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPExheWVyPiBjaGFuZ2VkTGF5ZXJzOworICAgIHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb24+IGNvbXBvc2l0aW9uVHlwZXM7CisgICAgdWludDMyX3QgZGlzcGxheVJlcXVlc3RNYXNrID0gMHgwOworICAgIHN0ZDo6dmVjdG9yPExheWVyPiByZXF1ZXN0ZWRMYXllcnM7CisgICAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+IHJlcXVlc3RNYXNrczsKKworICAgIGF1dG8gZXJyID0gbUhhbC52YWxpZGF0ZURpc3BsYXkobURpc3BsYXksICZjaGFuZ2VkTGF5ZXJzLAorICAgICAgICAgICAgJmNvbXBvc2l0aW9uVHlwZXMsICZkaXNwbGF5UmVxdWVzdE1hc2ssCisgICAgICAgICAgICAmcmVxdWVzdGVkTGF5ZXJzLCAmcmVxdWVzdE1hc2tzKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0Q2hhbmdlZENvbXBvc2l0aW9uVHlwZXMoY2hhbmdlZExheWVycywKKyAgICAgICAgICAgICAgICBjb21wb3NpdGlvblR5cGVzKTsKKyAgICAgICAgbVdyaXRlci5zZXREaXNwbGF5UmVxdWVzdHMoZGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgICAgIHJlcXVlc3RlZExheWVycywgcmVxdWVzdE1hc2tzKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VBY2NlcHREaXNwbGF5Q2hhbmdlcyh1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a0FjY2VwdERpc3BsYXlDaGFuZ2VzTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuYWNjZXB0RGlzcGxheUNoYW5nZXMobURpc3BsYXkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlUHJlc2VudERpc3BsYXkodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtQcmVzZW50RGlzcGxheUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaW50IHByZXNlbnRGZW5jZSA9IC0xOworICAgIHN0ZDo6dmVjdG9yPExheWVyPiBsYXllcnM7CisgICAgc3RkOjp2ZWN0b3I8aW50PiBmZW5jZXM7CisgICAgYXV0byBlcnIgPSBtSGFsLnByZXNlbnREaXNwbGF5KG1EaXNwbGF5LCAmcHJlc2VudEZlbmNlLCAmbGF5ZXJzLCAmZmVuY2VzKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0UHJlc2VudEZlbmNlKHByZXNlbnRGZW5jZSk7CisgICAgICAgIG1Xcml0ZXIuc2V0UmVsZWFzZUZlbmNlcyhsYXllcnMsIGZlbmNlcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJDdXJzb3JQb3NpdGlvbih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQ3Vyc29yUG9zaXRpb25MZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckN1cnNvclBvc2l0aW9uKG1EaXNwbGF5LCBtTGF5ZXIsCisgICAgICAgICAgICByZWFkU2lnbmVkKCksIHJlYWRTaWduZWQoKSk7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllckJ1ZmZlcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQnVmZmVyTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBib29sIHVzZUNhY2hlID0gZmFsc2U7CisgICAgYXV0byBzbG90ID0gcmVhZCgpOworICAgIGF1dG8gYnVmZmVyID0gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIGF1dG8gZmVuY2UgPSByZWFkRmVuY2UoKTsKKyAgICBib29sIGNsb3NlRmVuY2UgPSB0cnVlOworCisgICAgYXV0byBlcnIgPSBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGU6OkxBWUVSX0JVRkZFUlMsCisgICAgICAgICAgICBzbG90LCB1c2VDYWNoZSwgYnVmZmVyLCAmYnVmZmVyKTsKKyAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgIGVyciA9IG1IYWwuc2V0TGF5ZXJCdWZmZXIobURpc3BsYXksIG1MYXllciwgYnVmZmVyLCBmZW5jZSk7CisgICAgICAgIGF1dG8gdXBkYXRlQnVmRXJyID0gdXBkYXRlQnVmZmVyKEJ1ZmZlckNhY2hlOjpMQVlFUl9CVUZGRVJTLCBzbG90LAorICAgICAgICAgICAgICAgIHVzZUNhY2hlLCBidWZmZXIpOworICAgICAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgICAgICBjbG9zZUZlbmNlID0gZmFsc2U7CisgICAgICAgICAgICBlcnIgPSB1cGRhdGVCdWZFcnI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGNsb3NlRmVuY2UpIHsKKyAgICAgICAgY2xvc2UoZmVuY2UpOworICAgIH0KKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyU3VyZmFjZURhbWFnZSh1aW50MTZfdCBsZW5ndGgpCit7CisgICAgLy8gTiByZWN0YW5nbGVzCisgICAgaWYgKGxlbmd0aCAlIDQgIT0gMCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBkYW1hZ2UgPSByZWFkUmVnaW9uKGxlbmd0aCAvIDQpOworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllclN1cmZhY2VEYW1hZ2UobURpc3BsYXksIG1MYXllciwgZGFtYWdlKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyQmxlbmRNb2RlKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0TGF5ZXJCbGVuZE1vZGVMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckJsZW5kTW9kZShtRGlzcGxheSwgbUxheWVyLCByZWFkU2lnbmVkKCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJDb2xvcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQ29sb3JMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckNvbG9yKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRDb2xvcigpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyQ29tcG9zaXRpb25UeXBlKAorICAgICAgICB1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyQ29tcG9zaXRpb25UeXBlTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJDb21wb3NpdGlvblR5cGUobURpc3BsYXksIG1MYXllciwgcmVhZFNpZ25lZCgpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyRGF0YXNwYWNlKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0TGF5ZXJEYXRhc3BhY2VMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllckRhdGFzcGFjZShtRGlzcGxheSwgbUxheWVyLCByZWFkU2lnbmVkKCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJEaXNwbGF5RnJhbWUodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllckRpc3BsYXlGcmFtZUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBlcnIgPSBtSGFsLnNldExheWVyRGlzcGxheUZyYW1lKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRSZWN0KCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJQbGFuZUFscGhhKHVpbnQxNl90IGxlbmd0aCkKK3sKKyAgICBpZiAobGVuZ3RoICE9IENvbW1hbmRXcml0ZXJCYXNlOjprU2V0TGF5ZXJQbGFuZUFscGhhTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJQbGFuZUFscGhhKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRGbG9hdCgpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpwYXJzZVNldExheWVyU2lkZWJhbmRTdHJlYW0odWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllclNpZGViYW5kU3RyZWFtTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIHN0cmVhbSA9IHJlYWRIYW5kbGUoKTsKKworICAgIGF1dG8gZXJyID0gbG9va3VwTGF5ZXJTaWRlYmFuZFN0cmVhbShzdHJlYW0sICZzdHJlYW0pOworICAgIGlmIChlcnIgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgZXJyID0gbUhhbC5zZXRMYXllclNpZGViYW5kU3RyZWFtKG1EaXNwbGF5LCBtTGF5ZXIsIHN0cmVhbSk7CisgICAgICAgIGF1dG8gdXBkYXRlRXJyID0gdXBkYXRlTGF5ZXJTaWRlYmFuZFN0cmVhbShzdHJlYW0pOworICAgICAgICBpZiAoZXJyID09IEVycm9yOjpOT05FKSB7CisgICAgICAgICAgICBlcnIgPSB1cGRhdGVFcnI7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllclNvdXJjZUNyb3AodWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllclNvdXJjZUNyb3BMZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gZXJyID0gbUhhbC5zZXRMYXllclNvdXJjZUNyb3AobURpc3BsYXksIG1MYXllciwgcmVhZEZSZWN0KCkpOworICAgIGlmIChlcnIgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbVdyaXRlci5zZXRFcnJvcihnZXRDb21tYW5kTG9jKCksIGVycik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnBhcnNlU2V0TGF5ZXJUcmFuc2Zvcm0odWludDE2X3QgbGVuZ3RoKQoreworICAgIGlmIChsZW5ndGggIT0gQ29tbWFuZFdyaXRlckJhc2U6OmtTZXRMYXllclRyYW5zZm9ybUxlbmd0aCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYXV0byBlcnIgPSBtSGFsLnNldExheWVyVHJhbnNmb3JtKG1EaXNwbGF5LCBtTGF5ZXIsIHJlYWRTaWduZWQoKSk7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllclZpc2libGVSZWdpb24odWludDE2X3QgbGVuZ3RoKQoreworICAgIC8vIE4gcmVjdGFuZ2xlcworICAgIGlmIChsZW5ndGggJSA0ICE9IDApIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGF1dG8gcmVnaW9uID0gcmVhZFJlZ2lvbihsZW5ndGggLyA0KTsKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJWaXNpYmxlUmVnaW9uKG1EaXNwbGF5LCBtTGF5ZXIsIHJlZ2lvbik7CisgICAgaWYgKGVyciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgICBtV3JpdGVyLnNldEVycm9yKGdldENvbW1hbmRMb2MoKSwgZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cGFyc2VTZXRMYXllclpPcmRlcih1aW50MTZfdCBsZW5ndGgpCit7CisgICAgaWYgKGxlbmd0aCAhPSBDb21tYW5kV3JpdGVyQmFzZTo6a1NldExheWVyWk9yZGVyTGVuZ3RoKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBhdXRvIGVyciA9IG1IYWwuc2V0TGF5ZXJaT3JkZXIobURpc3BsYXksIG1MYXllciwgcmVhZCgpKTsKKyAgICBpZiAoZXJyICE9IEVycm9yOjpOT05FKSB7CisgICAgICAgIG1Xcml0ZXIuc2V0RXJyb3IoZ2V0Q29tbWFuZExvYygpLCBlcnIpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitod2NfcmVjdF90IENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpyZWFkUmVjdCgpCit7CisgICAgcmV0dXJuIGh3Y19yZWN0X3R7CisgICAgICAgIHJlYWRTaWduZWQoKSwKKyAgICAgICAgcmVhZFNpZ25lZCgpLAorICAgICAgICByZWFkU2lnbmVkKCksCisgICAgICAgIHJlYWRTaWduZWQoKSwKKyAgICB9OworfQorCitzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6cmVhZFJlZ2lvbihzaXplX3QgY291bnQpCit7CisgICAgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4gcmVnaW9uOworICAgIHJlZ2lvbi5yZXNlcnZlKGNvdW50KTsKKyAgICB3aGlsZSAoY291bnQgPiAwKSB7CisgICAgICAgIHJlZ2lvbi5lbXBsYWNlX2JhY2socmVhZFJlY3QoKSk7CisgICAgICAgIGNvdW50LS07CisgICAgfQorCisgICAgcmV0dXJuIHJlZ2lvbjsKK30KKworaHdjX2ZyZWN0X3QgQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmRSZWFkZXI6OnJlYWRGUmVjdCgpCit7CisgICAgcmV0dXJuIGh3Y19mcmVjdF90eworICAgICAgICByZWFkRmxvYXQoKSwKKyAgICAgICAgcmVhZEZsb2F0KCksCisgICAgICAgIHJlYWRGbG9hdCgpLAorICAgICAgICByZWFkRmxvYXQoKSwKKyAgICB9OworfQorCitFcnJvciBDb21wb3NlckNsaWVudDo6Q29tbWFuZFJlYWRlcjo6bG9va3VwQnVmZmVyQ2FjaGVFbnRyeUxvY2tlZCgKKyAgICAgICAgQnVmZmVyQ2FjaGUgY2FjaGUsIHVpbnQzMl90IHNsb3QsIEJ1ZmZlckNhY2hlRW50cnkqKiBvdXRFbnRyeSkKK3sKKyAgICBhdXRvIGRweSA9IG1DbGllbnQubURpc3BsYXlEYXRhLmZpbmQobURpc3BsYXkpOworICAgIGlmIChkcHkgPT0gbUNsaWVudC5tRGlzcGxheURhdGEuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfRElTUExBWTsKKyAgICB9CisKKyAgICBCdWZmZXJDYWNoZUVudHJ5KiBlbnRyeSA9IG51bGxwdHI7CisgICAgc3dpdGNoIChjYWNoZSkgeworICAgIGNhc2UgQnVmZmVyQ2FjaGU6OkNMSUVOVF9UQVJHRVRTOgorICAgICAgICBpZiAoc2xvdCA8IGRweS0+c2Vjb25kLkNsaWVudFRhcmdldHMuc2l6ZSgpKSB7CisgICAgICAgICAgICBlbnRyeSA9ICZkcHktPnNlY29uZC5DbGllbnRUYXJnZXRzW3Nsb3RdOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnVmZmVyQ2FjaGU6Ok9VVFBVVF9CVUZGRVJTOgorICAgICAgICBpZiAoc2xvdCA8IGRweS0+c2Vjb25kLk91dHB1dEJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgICAgICBlbnRyeSA9ICZkcHktPnNlY29uZC5PdXRwdXRCdWZmZXJzW3Nsb3RdOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnVmZmVyQ2FjaGU6OkxBWUVSX0JVRkZFUlM6CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbHkgPSBkcHktPnNlY29uZC5MYXllcnMuZmluZChtTGF5ZXIpOworICAgICAgICAgICAgaWYgKGx5ID09IGRweS0+c2Vjb25kLkxheWVycy5lbmQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0xBWUVSOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNsb3QgPCBseS0+c2Vjb25kLkJ1ZmZlcnMuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgZW50cnkgPSAmbHktPnNlY29uZC5CdWZmZXJzW3Nsb3RdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQnVmZmVyQ2FjaGU6OkxBWUVSX1NJREVCQU5EX1NUUkVBTVM6CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8gbHkgPSBkcHktPnNlY29uZC5MYXllcnMuZmluZChtTGF5ZXIpOworICAgICAgICAgICAgaWYgKGx5ID09IGRweS0+c2Vjb25kLkxheWVycy5lbmQoKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0xBWUVSOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHNsb3QgPT0gMCkgeworICAgICAgICAgICAgICAgIGVudHJ5ID0gJmx5LT5zZWNvbmQuU2lkZWJhbmRTdHJlYW07CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKCFlbnRyeSkgeworICAgICAgICBBTE9HVygiaW52YWxpZCBidWZmZXIgc2xvdCAlIiBQUkl1MzIsIHNsb3QpOworICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9QQVJBTUVURVI7CisgICAgfQorCisgICAgKm91dEVudHJ5ID0gZW50cnk7CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjpsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGUgY2FjaGUsCisgICAgICAgIHVpbnQzMl90IHNsb3QsIGJvb2wgdXNlQ2FjaGUsIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUsCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCogb3V0SGFuZGxlKQoreworICAgIGlmICh1c2VDYWNoZSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQ2xpZW50Lm1EaXNwbGF5RGF0YU11dGV4KTsKKworICAgICAgICBCdWZmZXJDYWNoZUVudHJ5KiBlbnRyeTsKKyAgICAgICAgRXJyb3IgZXJyb3IgPSBsb29rdXBCdWZmZXJDYWNoZUVudHJ5TG9ja2VkKGNhY2hlLCBzbG90LCAmZW50cnkpOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGlucHV0IGhhbmRsZSBpcyBpZ25vcmVkCisgICAgICAgICpvdXRIYW5kbGUgPSBlbnRyeS0+Z2V0SGFuZGxlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKCFzSGFuZGxlSW1wb3J0ZXIuaW1wb3J0QnVmZmVyKGhhbmRsZSkpIHsKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICB9CisKKyAgICAgICAgKm91dEhhbmRsZSA9IGhhbmRsZTsKKyAgICB9CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIENvbXBvc2VyQ2xpZW50OjpDb21tYW5kUmVhZGVyOjp1cGRhdGVCdWZmZXIoQnVmZmVyQ2FjaGUgY2FjaGUsCisgICAgICAgIHVpbnQzMl90IHNsb3QsIGJvb2wgdXNlQ2FjaGUsIGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUpCit7CisgICAgLy8gaGFuZGxlIHdhcyBsb29rZWQgdXAgZnJvbSBjYWNoZQorICAgIGlmICh1c2VDYWNoZSkgeworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorCisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNsaWVudC5tRGlzcGxheURhdGFNdXRleCk7CisKKyAgICBCdWZmZXJDYWNoZUVudHJ5KiBlbnRyeSA9IG51bGxwdHI7CisgICAgRXJyb3IgZXJyb3IgPSBsb29rdXBCdWZmZXJDYWNoZUVudHJ5TG9ja2VkKGNhY2hlLCBzbG90LCAmZW50cnkpOworICAgIGlmIChlcnJvciAhPSBFcnJvcjo6Tk9ORSkgeworICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgICplbnRyeSA9IGhhbmRsZTsKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8xCit9IC8vIG5hbWVzcGFjZSBjb21wb3NlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Db21wb3NlckNsaWVudC5oIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDEwZjgwCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvQ29tcG9zZXJDbGllbnQuaApAQCAtMCwwICsxLDIyMyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX1YyXzFfQ09NUE9TRVJfQ0xJRU5UX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0NPTVBPU0VSX0NMSUVOVF9ICisKKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2h3Y29tcG9zZXIyLmg+CisjaW5jbHVkZSAiSUNvbXBvc2VyQ29tbWFuZEJ1ZmZlci5oIgorI2luY2x1ZGUgIkNvbXBvc2VyQmFzZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitjbGFzcyBCdWZmZXJDYWNoZUVudHJ5IHsKK3B1YmxpYzoKKyAgICBCdWZmZXJDYWNoZUVudHJ5KCk7CisgICAgQnVmZmVyQ2FjaGVFbnRyeShCdWZmZXJDYWNoZUVudHJ5JiYgb3RoZXIpOworCisgICAgQnVmZmVyQ2FjaGVFbnRyeShjb25zdCBCdWZmZXJDYWNoZUVudHJ5JiBvdGhlcikgPSBkZWxldGU7CisgICAgQnVmZmVyQ2FjaGVFbnRyeSYgb3BlcmF0b3I9KGNvbnN0IEJ1ZmZlckNhY2hlRW50cnkmIG90aGVyKSA9IGRlbGV0ZTsKKworICAgIEJ1ZmZlckNhY2hlRW50cnkmIG9wZXJhdG9yPShidWZmZXJfaGFuZGxlX3QgaGFuZGxlKTsKKyAgICB+QnVmZmVyQ2FjaGVFbnRyeSgpOworCisgICAgYnVmZmVyX2hhbmRsZV90IGdldEhhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1IYW5kbGU7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGNsZWFyKCk7CisKKyAgICBidWZmZXJfaGFuZGxlX3QgbUhhbmRsZTsKK307CisKK2NsYXNzIENvbXBvc2VyQ2xpZW50IDogcHVibGljIElDb21wb3NlckNsaWVudCB7CitwdWJsaWM6CisgICAgQ29tcG9zZXJDbGllbnQoQ29tcG9zZXJCYXNlJiBoYWwpOworICAgIHZpcnR1YWwgfkNvbXBvc2VyQ2xpZW50KCk7CisKKyAgICB2b2lkIGluaXRpYWxpemUoKTsKKworICAgIHZvaWQgb25Ib3RwbHVnKERpc3BsYXkgZGlzcGxheSwgSUNvbXBvc2VyQ2FsbGJhY2s6OkNvbm5lY3Rpb24gY29ubmVjdGVkKTsKKyAgICB2b2lkIG9uUmVmcmVzaChEaXNwbGF5IGRpc3BsYXkpOworICAgIHZvaWQgb25Wc3luYyhEaXNwbGF5IGRpc3BsYXksIGludDY0X3QgdGltZXN0YW1wKTsKKworICAgIC8vIElDb21wb3NlckNsaWVudCBpbnRlcmZhY2UKKyAgICBSZXR1cm48dm9pZD4gcmVnaXN0ZXJDYWxsYmFjaygKKyAgICAgICAgICAgIGNvbnN0IHNwPElDb21wb3NlckNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx1aW50MzJfdD4gZ2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVWaXJ0dWFsRGlzcGxheSh1aW50MzJfdCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0LAorICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0SGludCwgdWludDMyX3Qgb3V0cHV0QnVmZmVyU2xvdENvdW50LAorICAgICAgICAgICAgY3JlYXRlVmlydHVhbERpc3BsYXlfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yPiBkZXN0cm95VmlydHVhbERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCB1aW50MzJfdCBidWZmZXJTbG90Q291bnQsCisgICAgICAgICAgICBjcmVhdGVMYXllcl9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IGRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIGdldEFjdGl2ZUNvbmZpZ19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IGdldENsaWVudFRhcmdldFN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICAgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCwgRGF0YXNwYWNlIGRhdGFzcGFjZSkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgZ2V0Q29sb3JNb2Rlc19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlzcGxheUF0dHJpYnV0ZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBDb25maWcgY29uZmlnLCBBdHRyaWJ1dGUgYXR0cmlidXRlLAorICAgICAgICAgICAgZ2V0RGlzcGxheUF0dHJpYnV0ZV9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgZ2V0RGlzcGxheUNvbmZpZ3NfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIGdldERpc3BsYXlOYW1lX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBnZXREaXNwbGF5VHlwZV9jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0RG96ZVN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgZ2V0RG96ZVN1cHBvcnRfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldEhkckNhcGFiaWxpdGllcyhEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBnZXRIZHJDYXBhYmlsaXRpZXNfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yPiBzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IHNldENvbG9yTW9kZShEaXNwbGF5IGRpc3BsYXksIENvbG9yTW9kZSBtb2RlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IHNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIFBvd2VyTW9kZSBtb2RlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48RXJyb3I+IHNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksIFZzeW5jIGVuYWJsZWQpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvcj4gc2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIHVpbnQzMl90IGNsaWVudFRhcmdldFNsb3RDb3VudCkgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yPiBzZXRJbnB1dENvbW1hbmRRdWV1ZSgKKyAgICAgICAgICAgIGNvbnN0IE1RRGVzY3JpcHRvclN5bmM8dWludDMyX3Q+JiBkZXNjcmlwdG9yKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0T3V0cHV0Q29tbWFuZFF1ZXVlKAorICAgICAgICAgICAgZ2V0T3V0cHV0Q29tbWFuZFF1ZXVlX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBleGVjdXRlQ29tbWFuZHModWludDMyX3QgaW5MZW5ndGgsCisgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxoaWRsX2hhbmRsZT4mIGluSGFuZGxlcywKKyAgICAgICAgICAgIGV4ZWN1dGVDb21tYW5kc19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKworcHJvdGVjdGVkOgorICAgIHN0cnVjdCBMYXllckJ1ZmZlcnMgeworICAgICAgICBzdGQ6OnZlY3RvcjxCdWZmZXJDYWNoZUVudHJ5PiBCdWZmZXJzOworICAgICAgICBCdWZmZXJDYWNoZUVudHJ5IFNpZGViYW5kU3RyZWFtOworICAgIH07CisKKyAgICBzdHJ1Y3QgRGlzcGxheURhdGEgeworICAgICAgICBib29sIElzVmlydHVhbDsKKworICAgICAgICBzdGQ6OnZlY3RvcjxCdWZmZXJDYWNoZUVudHJ5PiBDbGllbnRUYXJnZXRzOworICAgICAgICBzdGQ6OnZlY3RvcjxCdWZmZXJDYWNoZUVudHJ5PiBPdXRwdXRCdWZmZXJzOworCisgICAgICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxMYXllciwgTGF5ZXJCdWZmZXJzPiBMYXllcnM7CisKKyAgICAgICAgRGlzcGxheURhdGEoYm9vbCBpc1ZpcnR1YWwpIDogSXNWaXJ0dWFsKGlzVmlydHVhbCkge30KKyAgICB9OworCisgICAgY2xhc3MgQ29tbWFuZFJlYWRlciA6IHB1YmxpYyBDb21tYW5kUmVhZGVyQmFzZSB7CisgICAgcHVibGljOgorICAgICAgICBDb21tYW5kUmVhZGVyKENvbXBvc2VyQ2xpZW50JiBjbGllbnQpOworICAgICAgICB2aXJ0dWFsIH5Db21tYW5kUmVhZGVyKCk7CisKKyAgICAgICAgRXJyb3IgcGFyc2UoKTsKKworICAgIHByb3RlY3RlZDoKKyAgICAgICAgdmlydHVhbCBib29sIHBhcnNlQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQgY29tbWFuZCwKKyAgICAgICAgICAgICAgICB1aW50MTZfdCBsZW5ndGgpOworCisgICAgICAgIGJvb2wgcGFyc2VTZWxlY3REaXNwbGF5KHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZWxlY3RMYXllcih1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0Q29sb3JUcmFuc2Zvcm0odWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldENsaWVudFRhcmdldCh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0T3V0cHV0QnVmZmVyKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VWYWxpZGF0ZURpc3BsYXkodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZUFjY2VwdERpc3BsYXlDaGFuZ2VzKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VQcmVzZW50RGlzcGxheSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJDdXJzb3JQb3NpdGlvbih1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJCdWZmZXIodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyU3VyZmFjZURhbWFnZSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJCbGVuZE1vZGUodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyQ29sb3IodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyQ29tcG9zaXRpb25UeXBlKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllckRhdGFzcGFjZSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJEaXNwbGF5RnJhbWUodWludDE2X3QgbGVuZ3RoKTsKKyAgICAgICAgYm9vbCBwYXJzZVNldExheWVyUGxhbmVBbHBoYSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJTaWRlYmFuZFN0cmVhbSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJTb3VyY2VDcm9wKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllclRyYW5zZm9ybSh1aW50MTZfdCBsZW5ndGgpOworICAgICAgICBib29sIHBhcnNlU2V0TGF5ZXJWaXNpYmxlUmVnaW9uKHVpbnQxNl90IGxlbmd0aCk7CisgICAgICAgIGJvb2wgcGFyc2VTZXRMYXllclpPcmRlcih1aW50MTZfdCBsZW5ndGgpOworCisgICAgICAgIGh3Y19yZWN0X3QgcmVhZFJlY3QoKTsKKyAgICAgICAgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4gcmVhZFJlZ2lvbihzaXplX3QgY291bnQpOworICAgICAgICBod2NfZnJlY3RfdCByZWFkRlJlY3QoKTsKKworICAgICAgICBlbnVtIGNsYXNzIEJ1ZmZlckNhY2hlIHsKKyAgICAgICAgICAgIENMSUVOVF9UQVJHRVRTLAorICAgICAgICAgICAgT1VUUFVUX0JVRkZFUlMsCisgICAgICAgICAgICBMQVlFUl9CVUZGRVJTLAorICAgICAgICAgICAgTEFZRVJfU0lERUJBTkRfU1RSRUFNUywKKyAgICAgICAgfTsKKyAgICAgICAgRXJyb3IgbG9va3VwQnVmZmVyQ2FjaGVFbnRyeUxvY2tlZChCdWZmZXJDYWNoZSBjYWNoZSwgdWludDMyX3Qgc2xvdCwKKyAgICAgICAgICAgICAgICBCdWZmZXJDYWNoZUVudHJ5Kiogb3V0RW50cnkpOworICAgICAgICBFcnJvciBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGUgY2FjaGUsIHVpbnQzMl90IHNsb3QsCisgICAgICAgICAgICAgICAgYm9vbCB1c2VDYWNoZSwgYnVmZmVyX2hhbmRsZV90IGhhbmRsZSwKKyAgICAgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QqIG91dEhhbmRsZSk7CisgICAgICAgIEVycm9yIHVwZGF0ZUJ1ZmZlcihCdWZmZXJDYWNoZSBjYWNoZSwgdWludDMyX3Qgc2xvdCwKKyAgICAgICAgICAgICAgICBib29sIHVzZUNhY2hlLCBidWZmZXJfaGFuZGxlX3QgaGFuZGxlKTsKKworICAgICAgICBFcnJvciBsb29rdXBMYXllclNpZGViYW5kU3RyZWFtKGJ1ZmZlcl9oYW5kbGVfdCBoYW5kbGUsCisgICAgICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90KiBvdXRIYW5kbGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBsb29rdXBCdWZmZXIoQnVmZmVyQ2FjaGU6OkxBWUVSX1NJREVCQU5EX1NUUkVBTVMsCisgICAgICAgICAgICAgICAgICAgIDAsIGZhbHNlLCBoYW5kbGUsIG91dEhhbmRsZSk7CisgICAgICAgIH0KKyAgICAgICAgRXJyb3IgdXBkYXRlTGF5ZXJTaWRlYmFuZFN0cmVhbShidWZmZXJfaGFuZGxlX3QgaGFuZGxlKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gdXBkYXRlQnVmZmVyKEJ1ZmZlckNhY2hlOjpMQVlFUl9TSURFQkFORF9TVFJFQU1TLAorICAgICAgICAgICAgICAgICAgICAwLCBmYWxzZSwgaGFuZGxlKTsKKyAgICAgICAgfQorCisgICAgICAgIENvbXBvc2VyQ2xpZW50JiBtQ2xpZW50OworICAgICAgICBDb21wb3NlckJhc2UmIG1IYWw7CisgICAgICAgIENvbW1hbmRXcml0ZXJCYXNlJiBtV3JpdGVyOworCisgICAgICAgIERpc3BsYXkgbURpc3BsYXk7CisgICAgICAgIExheWVyIG1MYXllcjsKKyAgICB9OworCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZFJlYWRlcj4gY3JlYXRlQ29tbWFuZFJlYWRlcigpOworCisgICAgQ29tcG9zZXJCYXNlJiBtSGFsOworCisgICAgLy8gNjRLaUIgbWludXMgYSBzbWFsbCBzcGFjZSBmb3IgbWV0YWRhdGEgc3VjaCBhcyByZWFkL3dyaXRlIHBvaW50ZXJzCisgICAgc3RhdGljIGNvbnN0ZXhwciBzaXplX3Qga1dyaXRlckluaXRpYWxTaXplID0KKyAgICAgICAgNjQgKiAxMDI0IC8gc2l6ZW9mKHVpbnQzMl90KSAtIDE2OworICAgIHN0ZDo6bXV0ZXggbUNvbW1hbmRNdXRleDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZFJlYWRlcj4gbVJlYWRlcjsKKyAgICBDb21tYW5kV3JpdGVyQmFzZSBtV3JpdGVyOworCisgICAgc3A8SUNvbXBvc2VyQ2FsbGJhY2s+IG1DYWxsYmFjazsKKworICAgIHN0ZDo6bXV0ZXggbURpc3BsYXlEYXRhTXV0ZXg7CisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPERpc3BsYXksIERpc3BsYXlEYXRhPiBtRGlzcGxheURhdGE7Cit9OworCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjJfMQorfSAvLyBuYW1lc3BhY2UgY29tcG9zZXIKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfVjJfMV9DT01QT1NFUl9DTElFTlRfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvSHdjLmNwcCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0h3Yy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNhMGViMwotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0h3Yy5jcHAKQEAgLTAsMCArMSw3NDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiSHdjUGFzc3Rocm91Z2giCisKKyNpbmNsdWRlICJId2MuaCIKKworI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgIkNvbXBvc2VyQ2xpZW50LmgiCisjaW5jbHVkZSAiaGFyZHdhcmUvaHdjb21wb3Nlci5oIgorI2luY2x1ZGUgImh3YzJvbjFhZGFwdGVyL0hXQzJPbjFBZGFwdGVyLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIGNvbXBvc2VyIHsKK25hbWVzcGFjZSBWMl8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKKworSHdjSGFsOjpId2NIYWwoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSkKKyAgICA6IG1EZXZpY2UobnVsbHB0ciksIG1EaXNwYXRjaCgpLCBtQWRhcHRlcigpCit7CisgICAgLy8gRGV0ZXJtaW5lIHdoYXQga2luZCBvZiBtb2R1bGUgaXMgYXZhaWxhYmxlIChIV0MyIHZzIEhXQzEuWCkuCisgICAgaHdfZGV2aWNlX3QqIGRldmljZSA9IG51bGxwdHI7CisgICAgaW50IGVycm9yID0gbW9kdWxlLT5tZXRob2RzLT5vcGVuKG1vZHVsZSwgSFdDX0hBUkRXQVJFX0NPTVBPU0VSLCAmZGV2aWNlKTsKKyAgICBpZiAoZXJyb3IgIT0gMCkgeworICAgICAgICBBTE9HRSgiRmFpbGVkIHRvIG9wZW4gSFdDIGRldmljZSAoJXMpLCBhYm9ydGluZyIsIHN0cmVycm9yKC1lcnJvcikpOworICAgICAgICBhYm9ydCgpOworICAgIH0KKyAgICB1aW50MzJfdCBtYWpvclZlcnNpb24gPSAoZGV2aWNlLT52ZXJzaW9uID4+IDI0KSAmIDB4RjsKKworICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSBIV0MyLCB3ZSBuZWVkIHRvIHdyYXAgd2hhdGV2ZXIgd2UgaGF2ZSBpbiBhbiBhZGFwdGVyLgorICAgIGlmIChtYWpvclZlcnNpb24gIT0gMikgeworICAgICAgICB1aW50MzJfdCBtaW5vclZlcnNpb24gPSBkZXZpY2UtPnZlcnNpb24gJiBIQVJEV0FSRV9BUElfVkVSU0lPTl8yX01BSl9NSU5fTUFTSzsKKyAgICAgICAgbWlub3JWZXJzaW9uID0gKG1pbm9yVmVyc2lvbiA+PiAxNikgJiAweEY7CisgICAgICAgIEFMT0dJKCJGb3VuZCBIV0MgaW1wbGVtZW50YXRpb24gdiVkLiVkIiwgbWFqb3JWZXJzaW9uLCBtaW5vclZlcnNpb24pOworICAgICAgICBpZiAobWlub3JWZXJzaW9uIDwgMSkgeworICAgICAgICAgICAgQUxPR0UoIkNhbm5vdCBhZGFwdCB0byBIV0MgdmVyc2lvbiAlZC4lZC4gTWluaW11bSBzdXBwb3J0ZWQgaXMgMS4xIiwKKyAgICAgICAgICAgICAgICAgIG1ham9yVmVyc2lvbiwgbWlub3JWZXJzaW9uKTsKKyAgICAgICAgICAgIGFib3J0KCk7CisgICAgICAgIH0KKyAgICAgICAgbUFkYXB0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEhXQzJPbjFBZGFwdGVyPigKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGh3Y19jb21wb3Nlcl9kZXZpY2VfMSo+KGRldmljZSkpOworCisgICAgICAgIC8vIFBsYWNlIHRoZSBhZGFwdGVyIGluIGZyb250IG9mIHRoZSBkZXZpY2UgbW9kdWxlLgorICAgICAgICBtRGV2aWNlID0gbUFkYXB0ZXIuZ2V0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbURldmljZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8aHdjMl9kZXZpY2VfdCo+KGRldmljZSk7CisgICAgfQorCisgICAgaW5pdENhcGFiaWxpdGllcygpOworICAgIGlmIChtYWpvclZlcnNpb24gPj0gMiAmJgorICAgICAgICBoYXNDYXBhYmlsaXR5KENhcGFiaWxpdHk6OlBSRVNFTlRfRkVOQ0VfSVNfTk9UX1JFTElBQkxFKSkgeworICAgICAgICBBTE9HRSgiUHJlc2VudCBmZW5jZSBtdXN0IGJlIHJlbGlhYmxlIGZyb20gSFdDMiBvbi4iKTsKKyAgICAgICAgYWJvcnQoKTsKKyAgICB9CisKKyAgICBpbml0RGlzcGF0Y2goKTsKK30KKworSHdjSGFsOjp+SHdjSGFsKCkKK3sKKyAgICBod2MyX2Nsb3NlKG1EZXZpY2UpOworfQorCit2b2lkIEh3Y0hhbDo6aW5pdENhcGFiaWxpdGllcygpCit7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIG1EZXZpY2UtPmdldENhcGFiaWxpdGllcyhtRGV2aWNlLCAmY291bnQsIG51bGxwdHIpOworCisgICAgc3RkOjp2ZWN0b3I8Q2FwYWJpbGl0eT4gY2Fwcyhjb3VudCk7CisgICAgbURldmljZS0+Z2V0Q2FwYWJpbGl0aWVzKG1EZXZpY2UsICZjb3VudCwgcmVpbnRlcnByZXRfY2FzdDwKKyAgICAgICAgICAgICAgc3RkOjp1bmRlcmx5aW5nX3R5cGU8Q2FwYWJpbGl0eT46OnR5cGUqPihjYXBzLmRhdGEoKSkpOworICAgIGNhcHMucmVzaXplKGNvdW50KTsKKworICAgIG1DYXBhYmlsaXRpZXMuaW5zZXJ0KGNhcHMuY2JlZ2luKCksIGNhcHMuY2VuZCgpKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK3ZvaWQgSHdjSGFsOjppbml0RGlzcGF0Y2goaHdjMl9mdW5jdGlvbl9kZXNjcmlwdG9yX3QgZGVzYywgVCogb3V0UGZuKQoreworICAgIGF1dG8gcGZuID0gbURldmljZS0+Z2V0RnVuY3Rpb24obURldmljZSwgZGVzYyk7CisgICAgaWYgKCFwZm4pIHsKKyAgICAgICAgTE9HX0FMV0FZU19GQVRBTCgiZmFpbGVkIHRvIGdldCBod2NvbXBvc2VyMiBmdW5jdGlvbiAlZCIsIGRlc2MpOworICAgIH0KKworICAgICpvdXRQZm4gPSByZWludGVycHJldF9jYXN0PFQ+KHBmbik7Cit9CisKK3ZvaWQgSHdjSGFsOjppbml0RGlzcGF0Y2goKQoreworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0FDQ0VQVF9ESVNQTEFZX0NIQU5HRVMsCisgICAgICAgICAgICAmbURpc3BhdGNoLmFjY2VwdERpc3BsYXlDaGFuZ2VzKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9DUkVBVEVfTEFZRVIsICZtRGlzcGF0Y2guY3JlYXRlTGF5ZXIpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0NSRUFURV9WSVJUVUFMX0RJU1BMQVksCisgICAgICAgICAgICAmbURpc3BhdGNoLmNyZWF0ZVZpcnR1YWxEaXNwbGF5KTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9ERVNUUk9ZX0xBWUVSLCAmbURpc3BhdGNoLmRlc3Ryb3lMYXllcik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fREVTVFJPWV9WSVJUVUFMX0RJU1BMQVksCisgICAgICAgICAgICAmbURpc3BhdGNoLmRlc3Ryb3lWaXJ0dWFsRGlzcGxheSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fRFVNUCwgJm1EaXNwYXRjaC5kdW1wKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9HRVRfQUNUSVZFX0NPTkZJRywgJm1EaXNwYXRjaC5nZXRBY3RpdmVDb25maWcpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9DSEFOR0VEX0NPTVBPU0lUSU9OX1RZUEVTLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlcyk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0NMSUVOVF9UQVJHRVRfU1VQUE9SVCwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guZ2V0Q2xpZW50VGFyZ2V0U3VwcG9ydCk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0NPTE9SX01PREVTLCAmbURpc3BhdGNoLmdldENvbG9yTW9kZXMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ESVNQTEFZX0FUVFJJQlVURSwKKyAgICAgICAgICAgICZtRGlzcGF0Y2guZ2V0RGlzcGxheUF0dHJpYnV0ZSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fR0VUX0RJU1BMQVlfQ09ORklHUywKKyAgICAgICAgICAgICZtRGlzcGF0Y2guZ2V0RGlzcGxheUNvbmZpZ3MpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ESVNQTEFZX05BTUUsICZtRGlzcGF0Y2guZ2V0RGlzcGxheU5hbWUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ESVNQTEFZX1JFUVVFU1RTLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXREaXNwbGF5UmVxdWVzdHMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ESVNQTEFZX1RZUEUsICZtRGlzcGF0Y2guZ2V0RGlzcGxheVR5cGUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9ET1pFX1NVUFBPUlQsICZtRGlzcGF0Y2guZ2V0RG96ZVN1cHBvcnQpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9IRFJfQ0FQQUJJTElUSUVTLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXRIZHJDYXBhYmlsaXRpZXMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX0dFVF9NQVhfVklSVFVBTF9ESVNQTEFZX0NPVU5ULAorICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9HRVRfUkVMRUFTRV9GRU5DRVMsCisgICAgICAgICAgICAmbURpc3BhdGNoLmdldFJlbGVhc2VGZW5jZXMpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1BSRVNFTlRfRElTUExBWSwgJm1EaXNwYXRjaC5wcmVzZW50RGlzcGxheSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fUkVHSVNURVJfQ0FMTEJBQ0ssCisgICAgICAgICAgICAmbURpc3BhdGNoLnJlZ2lzdGVyQ2FsbGJhY2spOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9BQ1RJVkVfQ09ORklHLCAmbURpc3BhdGNoLnNldEFjdGl2ZUNvbmZpZyk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0NMSUVOVF9UQVJHRVQsICZtRGlzcGF0Y2guc2V0Q2xpZW50VGFyZ2V0KTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfQ09MT1JfTU9ERSwgJm1EaXNwYXRjaC5zZXRDb2xvck1vZGUpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9DT0xPUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldENvbG9yVHJhbnNmb3JtKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfQ1VSU09SX1BPU0lUSU9OLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5zZXRDdXJzb3JQb3NpdGlvbik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX0JMRU5EX01PREUsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyQmxlbmRNb2RlKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfQlVGRkVSLCAmbURpc3BhdGNoLnNldExheWVyQnVmZmVyKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfQ09MT1IsICZtRGlzcGF0Y2guc2V0TGF5ZXJDb2xvcik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEUsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyQ29tcG9zaXRpb25UeXBlKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfREFUQVNQQUNFLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5zZXRMYXllckRhdGFzcGFjZSk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyRGlzcGxheUZyYW1lKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfUExBTkVfQUxQSEEsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyUGxhbmVBbHBoYSk7CisKKyAgICBpZiAoaGFzQ2FwYWJpbGl0eShDYXBhYmlsaXR5OjpTSURFQkFORF9TVFJFQU0pKSB7CisgICAgICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9MQVlFUl9TSURFQkFORF9TVFJFQU0sCisgICAgICAgICAgICAgICAgJm1EaXNwYXRjaC5zZXRMYXllclNpZGViYW5kU3RyZWFtKTsKKyAgICB9CisKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfU09VUkNFX0NST1AsCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyU291cmNlQ3JvcCk7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX1NVUkZBQ0VfREFNQUdFLAorICAgICAgICAgICAgJm1EaXNwYXRjaC5zZXRMYXllclN1cmZhY2VEYW1hZ2UpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9MQVlFUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyVHJhbnNmb3JtKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfTEFZRVJfVklTSUJMRV9SRUdJT04sCisgICAgICAgICAgICAmbURpc3BhdGNoLnNldExheWVyVmlzaWJsZVJlZ2lvbik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX0xBWUVSX1pfT1JERVIsICZtRGlzcGF0Y2guc2V0TGF5ZXJaT3JkZXIpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1NFVF9PVVRQVVRfQlVGRkVSLCAmbURpc3BhdGNoLnNldE91dHB1dEJ1ZmZlcik7CisgICAgaW5pdERpc3BhdGNoKEhXQzJfRlVOQ1RJT05fU0VUX1BPV0VSX01PREUsICZtRGlzcGF0Y2guc2V0UG93ZXJNb2RlKTsKKyAgICBpbml0RGlzcGF0Y2goSFdDMl9GVU5DVElPTl9TRVRfVlNZTkNfRU5BQkxFRCwgJm1EaXNwYXRjaC5zZXRWc3luY0VuYWJsZWQpOworICAgIGluaXREaXNwYXRjaChIV0MyX0ZVTkNUSU9OX1ZBTElEQVRFX0RJU1BMQVksICZtRGlzcGF0Y2gudmFsaWRhdGVEaXNwbGF5KTsKK30KKworYm9vbCBId2NIYWw6Omhhc0NhcGFiaWxpdHkoQ2FwYWJpbGl0eSBjYXBhYmlsaXR5KSBjb25zdAoreworICAgIHJldHVybiAobUNhcGFiaWxpdGllcy5jb3VudChjYXBhYmlsaXR5KSA+IDApOworfQorCitSZXR1cm48dm9pZD4gSHdjSGFsOjpnZXRDYXBhYmlsaXRpZXMoZ2V0Q2FwYWJpbGl0aWVzX2NiIGhpZGxfY2IpCit7CisgICAgc3RkOjp2ZWN0b3I8Q2FwYWJpbGl0eT4gY2FwcygKKyAgICAgICAgICAgIG1DYXBhYmlsaXRpZXMuY2JlZ2luKCksIG1DYXBhYmlsaXRpZXMuY2VuZCgpKTsKKworICAgIGhpZGxfdmVjPENhcGFiaWxpdHk+IGNhcHNfcmVwbHk7CisgICAgY2Fwc19yZXBseS5zZXRUb0V4dGVybmFsKGNhcHMuZGF0YSgpLCBjYXBzLnNpemUoKSk7CisgICAgaGlkbF9jYihjYXBzX3JlcGx5KTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBId2NIYWw6OmR1bXBEZWJ1Z0luZm8oZHVtcERlYnVnSW5mb19jYiBoaWRsX2NiKQoreworICAgIHVpbnQzMl90IGxlbiA9IDA7CisgICAgbURpc3BhdGNoLmR1bXAobURldmljZSwgJmxlbiwgbnVsbHB0cik7CisKKyAgICBzdGQ6OnZlY3RvcjxjaGFyPiBidWYobGVuICsgMSk7CisgICAgbURpc3BhdGNoLmR1bXAobURldmljZSwgJmxlbiwgYnVmLmRhdGEoKSk7CisgICAgYnVmLnJlc2l6ZShsZW4gKyAxKTsKKyAgICBidWZbbGVuXSA9ICdcMCc7CisKKyAgICBoaWRsX3N0cmluZyBidWZfcmVwbHk7CisgICAgYnVmX3JlcGx5LnNldFRvRXh0ZXJuYWwoYnVmLmRhdGEoKSwgbGVuKTsKKyAgICBoaWRsX2NiKGJ1Zl9yZXBseSk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gSHdjSGFsOjpjcmVhdGVDbGllbnQoY3JlYXRlQ2xpZW50X2NiIGhpZGxfY2IpCit7CisgICAgRXJyb3IgZXJyID0gRXJyb3I6Ok5PTkU7CisgICAgc3A8Q29tcG9zZXJDbGllbnQ+IGNsaWVudDsKKworICAgIHsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNsaWVudE11dGV4KTsKKworICAgICAgICAvLyBvbmx5IG9uZSBjbGllbnQgaXMgYWxsb3dlZAorICAgICAgICBpZiAobUNsaWVudCA9PSBudWxscHRyKSB7CisgICAgICAgICAgICBjbGllbnQgPSBuZXcgQ29tcG9zZXJDbGllbnQoKnRoaXMpOworICAgICAgICAgICAgY2xpZW50LT5pbml0aWFsaXplKCk7CisgICAgICAgICAgICBtQ2xpZW50ID0gY2xpZW50OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXJyID0gRXJyb3I6Ok5PX1JFU09VUkNFUzsKKyAgICAgICAgfQorICAgIH0KKworICAgIGhpZGxfY2IoZXJyLCBjbGllbnQpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworc3A8Q29tcG9zZXJDbGllbnQ+IEh3Y0hhbDo6Z2V0Q2xpZW50KCkKK3sKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtQ2xpZW50TXV0ZXgpOworICAgIHJldHVybiAobUNsaWVudCAhPSBudWxscHRyKSA/IG1DbGllbnQucHJvbW90ZSgpIDogbnVsbHB0cjsKK30KKwordm9pZCBId2NIYWw6OnJlbW92ZUNsaWVudCgpCit7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobUNsaWVudE11dGV4KTsKKyAgICBtQ2xpZW50ID0gbnVsbHB0cjsKK30KKwordm9pZCBId2NIYWw6OmhvdHBsdWdIb29rKGh3YzJfY2FsbGJhY2tfZGF0YV90IGNhbGxiYWNrRGF0YSwKKyAgICAgICAgaHdjMl9kaXNwbGF5X3QgZGlzcGxheSwgaW50MzJfdCBjb25uZWN0ZWQpCit7CisgICAgYXV0byBoYWwgPSByZWludGVycHJldF9jYXN0PEh3Y0hhbCo+KGNhbGxiYWNrRGF0YSk7CisgICAgYXV0byBjbGllbnQgPSBoYWwtPmdldENsaWVudCgpOworICAgIGlmIChjbGllbnQgIT0gbnVsbHB0cikgeworICAgICAgICBjbGllbnQtPm9uSG90cGx1ZyhkaXNwbGF5LAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PElDb21wb3NlckNhbGxiYWNrOjpDb25uZWN0aW9uPihjb25uZWN0ZWQpKTsKKyAgICB9Cit9CisKK3ZvaWQgSHdjSGFsOjpyZWZyZXNoSG9vayhod2MyX2NhbGxiYWNrX2RhdGFfdCBjYWxsYmFja0RhdGEsCisgICAgICAgIGh3YzJfZGlzcGxheV90IGRpc3BsYXkpCit7CisgICAgYXV0byBoYWwgPSByZWludGVycHJldF9jYXN0PEh3Y0hhbCo+KGNhbGxiYWNrRGF0YSk7CisgICAgYXV0byBjbGllbnQgPSBoYWwtPmdldENsaWVudCgpOworICAgIGlmIChjbGllbnQgIT0gbnVsbHB0cikgeworICAgICAgICBjbGllbnQtPm9uUmVmcmVzaChkaXNwbGF5KTsKKyAgICB9Cit9CisKK3ZvaWQgSHdjSGFsOjp2c3luY0hvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5LCBpbnQ2NF90IHRpbWVzdGFtcCkKK3sKKyAgICBhdXRvIGhhbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SHdjSGFsKj4oY2FsbGJhY2tEYXRhKTsKKyAgICBhdXRvIGNsaWVudCA9IGhhbC0+Z2V0Q2xpZW50KCk7CisgICAgaWYgKGNsaWVudCAhPSBudWxscHRyKSB7CisgICAgICAgIGNsaWVudC0+b25Wc3luYyhkaXNwbGF5LCB0aW1lc3RhbXApOworICAgIH0KK30KKwordm9pZCBId2NIYWw6OmVuYWJsZUNhbGxiYWNrKGJvb2wgZW5hYmxlKQoreworICAgIGlmIChlbmFibGUpIHsKKyAgICAgICAgbURpc3BhdGNoLnJlZ2lzdGVyQ2FsbGJhY2sobURldmljZSwgSFdDMl9DQUxMQkFDS19IT1RQTFVHLCB0aGlzLAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdjMl9mdW5jdGlvbl9wb2ludGVyX3Q+KGhvdHBsdWdIb29rKSk7CisgICAgICAgIG1EaXNwYXRjaC5yZWdpc3RlckNhbGxiYWNrKG1EZXZpY2UsIEhXQzJfQ0FMTEJBQ0tfUkVGUkVTSCwgdGhpcywKKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGh3YzJfZnVuY3Rpb25fcG9pbnRlcl90PihyZWZyZXNoSG9vaykpOworICAgICAgICBtRGlzcGF0Y2gucmVnaXN0ZXJDYWxsYmFjayhtRGV2aWNlLCBIV0MyX0NBTExCQUNLX1ZTWU5DLCB0aGlzLAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdjMl9mdW5jdGlvbl9wb2ludGVyX3Q+KHZzeW5jSG9vaykpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1EaXNwYXRjaC5yZWdpc3RlckNhbGxiYWNrKG1EZXZpY2UsIEhXQzJfQ0FMTEJBQ0tfSE9UUExVRywgdGhpcywKKyAgICAgICAgICAgICAgICBudWxscHRyKTsKKyAgICAgICAgbURpc3BhdGNoLnJlZ2lzdGVyQ2FsbGJhY2sobURldmljZSwgSFdDMl9DQUxMQkFDS19SRUZSRVNILCB0aGlzLAorICAgICAgICAgICAgICAgIG51bGxwdHIpOworICAgICAgICBtRGlzcGF0Y2gucmVnaXN0ZXJDYWxsYmFjayhtRGV2aWNlLCBIV0MyX0NBTExCQUNLX1ZTWU5DLCB0aGlzLAorICAgICAgICAgICAgICAgIG51bGxwdHIpOworICAgIH0KK30KKwordWludDMyX3QgSHdjSGFsOjpnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkKK3sKKyAgICByZXR1cm4gbURpc3BhdGNoLmdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQobURldmljZSk7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Y3JlYXRlVmlydHVhbERpc3BsYXkodWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCwKKyAgICBQaXhlbEZvcm1hdCogZm9ybWF0LCBEaXNwbGF5KiBvdXREaXNwbGF5KQoreworICAgIGludDMyX3QgaHdjX2Zvcm1hdCA9IHN0YXRpY19jYXN0PGludDMyX3Q+KCpmb3JtYXQpOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmNyZWF0ZVZpcnR1YWxEaXNwbGF5KG1EZXZpY2UsIHdpZHRoLCBoZWlnaHQsCisgICAgICAgICAgICAmaHdjX2Zvcm1hdCwgb3V0RGlzcGxheSk7CisgICAgKmZvcm1hdCA9IHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0Pihod2NfZm9ybWF0KTsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpkZXN0cm95VmlydHVhbERpc3BsYXkoRGlzcGxheSBkaXNwbGF5KQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShtRGV2aWNlLCBkaXNwbGF5KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Y3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciogb3V0TGF5ZXIpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guY3JlYXRlTGF5ZXIobURldmljZSwgZGlzcGxheSwgb3V0TGF5ZXIpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpkZXN0cm95TGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllcikKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5kZXN0cm95TGF5ZXIobURldmljZSwgZGlzcGxheSwgbGF5ZXIpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpnZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcqIG91dENvbmZpZykKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXRBY3RpdmVDb25maWcobURldmljZSwgZGlzcGxheSwgb3V0Q29uZmlnKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydChEaXNwbGF5IGRpc3BsYXksCisgICAgICAgIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgIFBpeGVsRm9ybWF0IGZvcm1hdCwgRGF0YXNwYWNlIGRhdGFzcGFjZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXRDbGllbnRUYXJnZXRTdXBwb3J0KG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICB3aWR0aCwgaGVpZ2h0LCBzdGF0aWNfY2FzdDxpbnQzMl90Pihmb3JtYXQpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oZGF0YXNwYWNlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OmdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3ZlYzxDb2xvck1vZGU+KiBvdXRNb2RlcykKK3sKKyAgICB1aW50MzJfdCBjb3VudCA9IDA7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guZ2V0Q29sb3JNb2RlcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsIG51bGxwdHIpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICBvdXRNb2Rlcy0+cmVzaXplKGNvdW50KTsKKyAgICBlcnIgPSBtRGlzcGF0Y2guZ2V0Q29sb3JNb2RlcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHN0ZDo6dW5kZXJseWluZ190eXBlPENvbG9yTW9kZT46OnR5cGUqPigKKyAgICAgICAgICAgICAgICBvdXRNb2Rlcy0+ZGF0YSgpKSk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgKm91dE1vZGVzID0gaGlkbF92ZWM8Q29sb3JNb2RlPigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCitFcnJvciBId2NIYWw6OmdldERpc3BsYXlBdHRyaWJ1dGUoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnLAorICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZSBhdHRyaWJ1dGUsIGludDMyX3QqIG91dFZhbHVlKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlBdHRyaWJ1dGUobURldmljZSwgZGlzcGxheSwgY29uZmlnLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oYXR0cmlidXRlKSwgb3V0VmFsdWUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXksIGhpZGxfdmVjPENvbmZpZz4qIG91dENvbmZpZ3MpCit7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlDb25maWdzKG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICAmY291bnQsIG51bGxwdHIpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICBvdXRDb25maWdzLT5yZXNpemUoY291bnQpOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXREaXNwbGF5Q29uZmlncyhtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgJmNvdW50LCBvdXRDb25maWdzLT5kYXRhKCkpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgICpvdXRDb25maWdzID0gaGlkbF92ZWM8Q29uZmlnPigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCitFcnJvciBId2NIYWw6OmdldERpc3BsYXlOYW1lKERpc3BsYXkgZGlzcGxheSwgaGlkbF9zdHJpbmcqIG91dE5hbWUpCit7CisgICAgdWludDMyX3QgY291bnQgPSAwOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlOYW1lKG1EZXZpY2UsIGRpc3BsYXksICZjb3VudCwgbnVsbHB0cik7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKworICAgIHN0ZDo6dmVjdG9yPGNoYXI+IGJ1Zihjb3VudCArIDEpOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXREaXNwbGF5TmFtZShtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsIGJ1Zi5kYXRhKCkpOworICAgIGlmIChlcnIgIT0gSFdDMl9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisgICAgYnVmLnJlc2l6ZShjb3VudCArIDEpOworICAgIGJ1Zltjb3VudF0gPSAnXDAnOworCisgICAgKm91dE5hbWUgPSBidWYuZGF0YSgpOworCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCitFcnJvciBId2NIYWw6OmdldERpc3BsYXlUeXBlKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSogb3V0VHlwZSkKK3sKKyAgICBpbnQzMl90IGh3Y190eXBlID0gSFdDMl9ESVNQTEFZX1RZUEVfSU5WQUxJRDsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXREaXNwbGF5VHlwZShtRGV2aWNlLCBkaXNwbGF5LCAmaHdjX3R5cGUpOworICAgICpvdXRUeXBlID0gc3RhdGljX2Nhc3Q8SUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZT4oaHdjX3R5cGUpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OmdldERvemVTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwgYm9vbCogb3V0U3VwcG9ydCkKK3sKKyAgICBpbnQzMl90IGh3Y19zdXBwb3J0ID0gMDsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXREb3plU3VwcG9ydChtRGV2aWNlLCBkaXNwbGF5LCAmaHdjX3N1cHBvcnQpOworICAgICpvdXRTdXBwb3J0ID0gaHdjX3N1cHBvcnQ7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6Z2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSwgaGlkbF92ZWM8SGRyPiogb3V0VHlwZXMsCisgICAgICAgIGZsb2F0KiBvdXRNYXhMdW1pbmFuY2UsIGZsb2F0KiBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgICAgICBmbG9hdCogb3V0TWluTHVtaW5hbmNlKQoreworICAgIHVpbnQzMl90IGNvdW50ID0gMDsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5nZXRIZHJDYXBhYmlsaXRpZXMobURldmljZSwgZGlzcGxheSwgJmNvdW50LAorICAgICAgICAgICAgbnVsbHB0ciwgb3V0TWF4THVtaW5hbmNlLCBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgICAgICAgICAgb3V0TWluTHVtaW5hbmNlKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgb3V0VHlwZXMtPnJlc2l6ZShjb3VudCk7CisgICAgZXJyID0gbURpc3BhdGNoLmdldEhkckNhcGFiaWxpdGllcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHN0ZDo6dW5kZXJseWluZ190eXBlPEhkcj46OnR5cGUqPigKKyAgICAgICAgICAgICAgICBvdXRUeXBlcy0+ZGF0YSgpKSwgb3V0TWF4THVtaW5hbmNlLAorICAgICAgICAgICAgb3V0TWF4QXZlcmFnZUx1bWluYW5jZSwgb3V0TWluTHVtaW5hbmNlKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICAqb3V0VHlwZXMgPSBoaWRsX3ZlYzxIZHI+KCk7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKKyAgICB9CisKKyAgICByZXR1cm4gRXJyb3I6Ok5PTkU7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZykKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRBY3RpdmVDb25maWcobURldmljZSwgZGlzcGxheSwgY29uZmlnKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0Q29sb3JNb2RlKERpc3BsYXkgZGlzcGxheSwgQ29sb3JNb2RlIG1vZGUpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0Q29sb3JNb2RlKG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90Pihtb2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksIElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlIG1vZGUpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0UG93ZXJNb2RlKG1EZXZpY2UsIGRpc3BsYXksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90Pihtb2RlKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksIElDb21wb3NlckNsaWVudDo6VnN5bmMgZW5hYmxlZCkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRWc3luY0VuYWJsZWQobURldmljZSwgZGlzcGxheSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PGludDMyX3Q+KGVuYWJsZWQpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0Q29sb3JUcmFuc2Zvcm0oRGlzcGxheSBkaXNwbGF5LCBjb25zdCBmbG9hdCogbWF0cml4LAorICAgICAgICBpbnQzMl90IGhpbnQpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0Q29sb3JUcmFuc2Zvcm0obURldmljZSwgZGlzcGxheSwgbWF0cml4LCBoaW50KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0Q2xpZW50VGFyZ2V0KERpc3BsYXkgZGlzcGxheSwgYnVmZmVyX2hhbmRsZV90IHRhcmdldCwKKyAgICAgICAgaW50MzJfdCBhY3F1aXJlRmVuY2UsIGludDMyX3QgZGF0YXNwYWNlLAorICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgZGFtYWdlKQoreworICAgIGh3Y19yZWdpb24gcmVnaW9uID0geyBkYW1hZ2Uuc2l6ZSgpLCBkYW1hZ2UuZGF0YSgpIH07CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0Q2xpZW50VGFyZ2V0KG1EZXZpY2UsIGRpc3BsYXksIHRhcmdldCwKKyAgICAgICAgICAgIGFjcXVpcmVGZW5jZSwgZGF0YXNwYWNlLCByZWdpb24pOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRPdXRwdXRCdWZmZXIoRGlzcGxheSBkaXNwbGF5LCBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLAorICAgICAgICBpbnQzMl90IHJlbGVhc2VGZW5jZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRPdXRwdXRCdWZmZXIobURldmljZSwgZGlzcGxheSwgYnVmZmVyLAorICAgICAgICAgICAgcmVsZWFzZUZlbmNlKTsKKyAgICAvLyB1bmxpa2UgaW4gc2V0Q2xpZW50VGFyZ2V0LCByZWxlYXNlRmVuY2UgaXMgb3duZWQgYnkgdXMKKyAgICBpZiAoZXJyID09IEhXQzJfRVJST1JfTk9ORSAmJiByZWxlYXNlRmVuY2UgPj0gMCkgeworICAgICAgICBjbG9zZShyZWxlYXNlRmVuY2UpOworICAgIH0KKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjp2YWxpZGF0ZURpc3BsYXkoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dENoYW5nZWRMYXllcnMsCisgICAgICAgIHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb24+KiBvdXRDb21wb3NpdGlvblR5cGVzLAorICAgICAgICB1aW50MzJfdCogb3V0RGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dFJlcXVlc3RlZExheWVycywKKyAgICAgICAgc3RkOjp2ZWN0b3I8dWludDMyX3Q+KiBvdXRSZXF1ZXN0TWFza3MpCit7CisgICAgdWludDMyX3QgdHlwZXNfY291bnQgPSAwOworICAgIHVpbnQzMl90IHJlcXNfY291bnQgPSAwOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnZhbGlkYXRlRGlzcGxheShtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgJnR5cGVzX2NvdW50LCAmcmVxc19jb3VudCk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUgJiYgZXJyICE9IEhXQzJfRVJST1JfSEFTX0NIQU5HRVMpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKworICAgIGVyciA9IG1EaXNwYXRjaC5nZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlcyhtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgJnR5cGVzX2NvdW50LCBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgb3V0Q2hhbmdlZExheWVycy0+cmVzaXplKHR5cGVzX2NvdW50KTsKKyAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5yZXNpemUodHlwZXNfY291bnQpOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlcyhtRGV2aWNlLCBkaXNwbGF5LAorICAgICAgICAgICAgJnR5cGVzX2NvdW50LCBvdXRDaGFuZ2VkTGF5ZXJzLT5kYXRhKCksCisgICAgICAgICAgICByZWludGVycHJldF9jYXN0PAorICAgICAgICAgICAgc3RkOjp1bmRlcmx5aW5nX3R5cGU8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj46OnR5cGUqPigKKyAgICAgICAgICAgICAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5kYXRhKCkpKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBvdXRDaGFuZ2VkTGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5jbGVhcigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgaW50MzJfdCBkaXNwbGF5X3JlcXMgPSAwOworICAgIGVyciA9IG1EaXNwYXRjaC5nZXREaXNwbGF5UmVxdWVzdHMobURldmljZSwgZGlzcGxheSwgJmRpc3BsYXlfcmVxcywKKyAgICAgICAgICAgICZyZXFzX2NvdW50LCBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBvdXRDaGFuZ2VkTGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5jbGVhcigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgb3V0UmVxdWVzdGVkTGF5ZXJzLT5yZXNpemUocmVxc19jb3VudCk7CisgICAgb3V0UmVxdWVzdE1hc2tzLT5yZXNpemUocmVxc19jb3VudCk7CisgICAgZXJyID0gbURpc3BhdGNoLmdldERpc3BsYXlSZXF1ZXN0cyhtRGV2aWNlLCBkaXNwbGF5LCAmZGlzcGxheV9yZXFzLAorICAgICAgICAgICAgJnJlcXNfY291bnQsIG91dFJlcXVlc3RlZExheWVycy0+ZGF0YSgpLAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90Kj4ob3V0UmVxdWVzdE1hc2tzLT5kYXRhKCkpKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBvdXRDaGFuZ2VkTGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRDb21wb3NpdGlvblR5cGVzLT5jbGVhcigpOworCisgICAgICAgIG91dFJlcXVlc3RlZExheWVycy0+Y2xlYXIoKTsKKyAgICAgICAgb3V0UmVxdWVzdE1hc2tzLT5jbGVhcigpOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7CisgICAgfQorCisgICAgKm91dERpc3BsYXlSZXF1ZXN0TWFzayA9IGRpc3BsYXlfcmVxczsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjphY2NlcHREaXNwbGF5Q2hhbmdlcyhEaXNwbGF5IGRpc3BsYXkpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guYWNjZXB0RGlzcGxheUNoYW5nZXMobURldmljZSwgZGlzcGxheSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnByZXNlbnREaXNwbGF5KERpc3BsYXkgZGlzcGxheSwgaW50MzJfdCogb3V0UHJlc2VudEZlbmNlLAorICAgICAgICBzdGQ6OnZlY3RvcjxMYXllcj4qIG91dExheWVycywgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIG91dFJlbGVhc2VGZW5jZXMpCit7CisgICAgKm91dFByZXNlbnRGZW5jZSA9IC0xOworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnByZXNlbnREaXNwbGF5KG1EZXZpY2UsIGRpc3BsYXksIG91dFByZXNlbnRGZW5jZSk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworICAgIH0KKworICAgIHVpbnQzMl90IGNvdW50ID0gMDsKKyAgICBlcnIgPSBtRGlzcGF0Y2guZ2V0UmVsZWFzZUZlbmNlcyhtRGV2aWNlLCBkaXNwbGF5LCAmY291bnQsCisgICAgICAgICAgICBudWxscHRyLCBudWxscHRyKTsKKyAgICBpZiAoZXJyICE9IEhXQzJfRVJST1JfTk9ORSkgeworICAgICAgICBBTE9HVygiZmFpbGVkIHRvIGdldCByZWxlYXNlIGZlbmNlcyIpOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorCisgICAgb3V0TGF5ZXJzLT5yZXNpemUoY291bnQpOworICAgIG91dFJlbGVhc2VGZW5jZXMtPnJlc2l6ZShjb3VudCk7CisgICAgZXJyID0gbURpc3BhdGNoLmdldFJlbGVhc2VGZW5jZXMobURldmljZSwgZGlzcGxheSwgJmNvdW50LAorICAgICAgICAgICAgb3V0TGF5ZXJzLT5kYXRhKCksIG91dFJlbGVhc2VGZW5jZXMtPmRhdGEoKSk7CisgICAgaWYgKGVyciAhPSBIV0MyX0VSUk9SX05PTkUpIHsKKyAgICAgICAgQUxPR1coImZhaWxlZCB0byBnZXQgcmVsZWFzZSBmZW5jZXMiKTsKKyAgICAgICAgb3V0TGF5ZXJzLT5jbGVhcigpOworICAgICAgICBvdXRSZWxlYXNlRmVuY2VzLT5jbGVhcigpOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyQ3Vyc29yUG9zaXRpb24oRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgaW50MzJfdCB4LCBpbnQzMl90IHkpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0Q3Vyc29yUG9zaXRpb24obURldmljZSwgZGlzcGxheSwgbGF5ZXIsIHgsIHkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllckJ1ZmZlcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLCBpbnQzMl90IGFjcXVpcmVGZW5jZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllckJ1ZmZlcihtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIGJ1ZmZlciwgYWNxdWlyZUZlbmNlKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0Vycm9yIEh3Y0hhbDo6c2V0TGF5ZXJTdXJmYWNlRGFtYWdlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiBkYW1hZ2UpCit7CisgICAgaHdjX3JlZ2lvbiByZWdpb24gPSB7IGRhbWFnZS5zaXplKCksIGRhbWFnZS5kYXRhKCkgfTsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclN1cmZhY2VEYW1hZ2UobURldmljZSwgZGlzcGxheSwgbGF5ZXIsCisgICAgICAgICAgICByZWdpb24pOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllckJsZW5kTW9kZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLCBpbnQzMl90IG1vZGUpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0TGF5ZXJCbGVuZE1vZGUobURldmljZSwgZGlzcGxheSwgbGF5ZXIsIG1vZGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllckNvbG9yKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIElDb21wb3NlckNsaWVudDo6Q29sb3IgY29sb3IpCit7CisgICAgaHdjX2NvbG9yX3QgaHdjX2NvbG9ye2NvbG9yLnIsIGNvbG9yLmcsIGNvbG9yLmIsIGNvbG9yLmF9OworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyQ29sb3IobURldmljZSwgZGlzcGxheSwgbGF5ZXIsIGh3Y19jb2xvcik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyQ29tcG9zaXRpb25UeXBlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGludDMyX3QgdHlwZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllckNvbXBvc2l0aW9uVHlwZShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIHR5cGUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllckRhdGFzcGFjZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBpbnQzMl90IGRhdGFzcGFjZSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllckRhdGFzcGFjZShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIGRhdGFzcGFjZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyRGlzcGxheUZyYW1lKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGNvbnN0IGh3Y19yZWN0X3QmIGZyYW1lKQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyRGlzcGxheUZyYW1lKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLAorICAgICAgICAgICAgZnJhbWUpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclBsYW5lQWxwaGEoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwgZmxvYXQgYWxwaGEpCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0TGF5ZXJQbGFuZUFscGhhKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLAorICAgICAgICAgICAgYWxwaGEpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclNpZGViYW5kU3RyZWFtKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgIGJ1ZmZlcl9oYW5kbGVfdCBzdHJlYW0pCit7CisgICAgaW50MzJfdCBlcnIgPSBtRGlzcGF0Y2guc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIHN0cmVhbSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyU291cmNlQ3JvcChEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBjb25zdCBod2NfZnJlY3RfdCYgY3JvcCkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclNvdXJjZUNyb3AobURldmljZSwgZGlzcGxheSwgbGF5ZXIsIGNyb3ApOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclRyYW5zZm9ybShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBpbnQzMl90IHRyYW5zZm9ybSkKK3sKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclRyYW5zZm9ybShtRGV2aWNlLCBkaXNwbGF5LCBsYXllciwKKyAgICAgICAgICAgIHRyYW5zZm9ybSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVycm9yPihlcnIpOworfQorCitFcnJvciBId2NIYWw6OnNldExheWVyVmlzaWJsZVJlZ2lvbihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgdmlzaWJsZSkKK3sKKyAgICBod2NfcmVnaW9uX3QgcmVnaW9uID0geyB2aXNpYmxlLnNpemUoKSwgdmlzaWJsZS5kYXRhKCkgfTsKKyAgICBpbnQzMl90IGVyciA9IG1EaXNwYXRjaC5zZXRMYXllclZpc2libGVSZWdpb24obURldmljZSwgZGlzcGxheSwgbGF5ZXIsCisgICAgICAgICAgICByZWdpb24pOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxFcnJvcj4oZXJyKTsKK30KKworRXJyb3IgSHdjSGFsOjpzZXRMYXllclpPcmRlcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLCB1aW50MzJfdCB6KQoreworICAgIGludDMyX3QgZXJyID0gbURpc3BhdGNoLnNldExheWVyWk9yZGVyKG1EZXZpY2UsIGRpc3BsYXksIGxheWVyLCB6KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RXJyb3I+KGVycik7Cit9CisKK0lDb21wb3NlciogSElETF9GRVRDSF9JQ29tcG9zZXIoY29uc3QgY2hhciopCit7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSA9IG51bGxwdHI7CisgICAgaW50IGVyciA9IGh3X2dldF9tb2R1bGUoSFdDX0hBUkRXQVJFX01PRFVMRV9JRCwgJm1vZHVsZSk7CisgICAgaWYgKGVycikgeworICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIGdldCBod2NvbXBvc2VyIG1vZHVsZSIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICByZXR1cm4gbmV3IEh3Y0hhbChtb2R1bGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAvLyBuYW1lc3BhY2UgVjJfMQorfSAvLyBuYW1lc3BhY2UgY29tcG9zZXIKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvSHdjLmggYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9Id2MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDUzODlhCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvSHdjLmgKQEAgLTAsMCArMSwyMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0hXQ19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfVjJfMV9IV0NfSAorCisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyLmg+CisjZGVmaW5lIEhXQzJfSU5DTFVERV9TVFJJTkdJRklDQVRJT04KKyNkZWZpbmUgSFdDMl9VU0VfQ1BQMTEKKyNpbmNsdWRlIDxoYXJkd2FyZS9od2NvbXBvc2VyMi5oPgorI3VuZGVmIEhXQzJfSU5DTFVERV9TVFJJTkdJRklDQVRJT04KKyN1bmRlZiBIV0MyX1VTRV9DUFAxMQorI2luY2x1ZGUgIkNvbXBvc2VyQmFzZS5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CisgICAgY2xhc3MgSFdDMk9uMUFkYXB0ZXI7Cit9CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIGNvbXBvc2VyIHsKK25hbWVzcGFjZSBWMl8xIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpUcmFuc2Zvcm07Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6RGF0YXNwYWNlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkNvbG9yTW9kZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpDb2xvclRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpIZHI7CisKK2NsYXNzIENvbXBvc2VyQ2xpZW50OworCitjbGFzcyBId2NIYWwgOiBwdWJsaWMgSUNvbXBvc2VyLCBwdWJsaWMgQ29tcG9zZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBId2NIYWwoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgdmlydHVhbCB+SHdjSGFsKCk7CisKKyAgICBib29sIGhhc0NhcGFiaWxpdHkoQ2FwYWJpbGl0eSBjYXBhYmlsaXR5KSBjb25zdDsKKworICAgIC8vIElDb21wb3NlciBpbnRlcmZhY2UKKyAgICBSZXR1cm48dm9pZD4gZ2V0Q2FwYWJpbGl0aWVzKGdldENhcGFiaWxpdGllc19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZHVtcERlYnVnSW5mbyhkdW1wRGVidWdJbmZvX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBjcmVhdGVDbGllbnQoY3JlYXRlQ2xpZW50X2NiIGhpZGxfY2IpIG92ZXJyaWRlOworCisgICAgLy8gQ29tcG9zZXJCYXNlIGludGVyZmFjZQorICAgIHZvaWQgcmVtb3ZlQ2xpZW50KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBlbmFibGVDYWxsYmFjayhib29sIGVuYWJsZSkgb3ZlcnJpZGU7CisgICAgdWludDMyX3QgZ2V0TWF4VmlydHVhbERpc3BsYXlDb3VudCgpIG92ZXJyaWRlOworICAgIEVycm9yIGNyZWF0ZVZpcnR1YWxEaXNwbGF5KHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgIFBpeGVsRm9ybWF0KiBmb3JtYXQsIERpc3BsYXkqIG91dERpc3BsYXkpIG92ZXJyaWRlOworICAgIEVycm9yIGRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpIG92ZXJyaWRlOworCisgICAgRXJyb3IgY3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciogb3V0TGF5ZXIpIG92ZXJyaWRlOworICAgIEVycm9yIGRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKSBvdmVycmlkZTsKKworICAgIEVycm9yIGdldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXksIENvbmZpZyogb3V0Q29uZmlnKSBvdmVycmlkZTsKKyAgICBFcnJvciBnZXRDbGllbnRUYXJnZXRTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsIERhdGFzcGFjZSBkYXRhc3BhY2UpIG92ZXJyaWRlOworICAgIEVycm9yIGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgaGlkbF92ZWM8Q29sb3JNb2RlPiogb3V0TW9kZXMpIG92ZXJyaWRlOworICAgIEVycm9yIGdldERpc3BsYXlBdHRyaWJ1dGUoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnLAorICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGUgYXR0cmlidXRlLCBpbnQzMl90KiBvdXRWYWx1ZSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgaGlkbF92ZWM8Q29uZmlnPiogb3V0Q29uZmlncykgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3N0cmluZyogb3V0TmFtZSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RGlzcGxheVR5cGUoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSogb3V0VHlwZSkgb3ZlcnJpZGU7CisgICAgRXJyb3IgZ2V0RG96ZVN1cHBvcnQoRGlzcGxheSBkaXNwbGF5LCBib29sKiBvdXRTdXBwb3J0KSBvdmVycmlkZTsKKyAgICBFcnJvciBnZXRIZHJDYXBhYmlsaXRpZXMoRGlzcGxheSBkaXNwbGF5LCBoaWRsX3ZlYzxIZHI+KiBvdXRUeXBlcywKKyAgICAgICAgICAgIGZsb2F0KiBvdXRNYXhMdW1pbmFuY2UsIGZsb2F0KiBvdXRNYXhBdmVyYWdlTHVtaW5hbmNlLAorICAgICAgICAgICAgZmxvYXQqIG91dE1pbkx1bWluYW5jZSkgb3ZlcnJpZGU7CisKKyAgICBFcnJvciBzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRDb2xvck1vZGUoRGlzcGxheSBkaXNwbGF5LCBDb2xvck1vZGUgbW9kZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0UG93ZXJNb2RlKERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlIG1vZGUpIG92ZXJyaWRlOworICAgIEVycm9yIHNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OlZzeW5jIGVuYWJsZWQpIG92ZXJyaWRlOworCisgICAgRXJyb3Igc2V0Q29sb3JUcmFuc2Zvcm0oRGlzcGxheSBkaXNwbGF5LCBjb25zdCBmbG9hdCogbWF0cml4LAorICAgICAgICAgICAgaW50MzJfdCBoaW50KSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRDbGllbnRUYXJnZXQoRGlzcGxheSBkaXNwbGF5LCBidWZmZXJfaGFuZGxlX3QgdGFyZ2V0LAorICAgICAgICAgICAgaW50MzJfdCBhY3F1aXJlRmVuY2UsIGludDMyX3QgZGF0YXNwYWNlLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8aHdjX3JlY3RfdD4mIGRhbWFnZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0T3V0cHV0QnVmZmVyKERpc3BsYXkgZGlzcGxheSwgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlciwKKyAgICAgICAgICAgIGludDMyX3QgcmVsZWFzZUZlbmNlKSBvdmVycmlkZTsKKyAgICBFcnJvciB2YWxpZGF0ZURpc3BsYXkoRGlzcGxheSBkaXNwbGF5LAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+KiBvdXRDaGFuZ2VkTGF5ZXJzLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj4qIG91dENvbXBvc2l0aW9uVHlwZXMsCisgICAgICAgICAgICB1aW50MzJfdCogb3V0RGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXI+KiBvdXRSZXF1ZXN0ZWRMYXllcnMsCisgICAgICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4qIG91dFJlcXVlc3RNYXNrcykgb3ZlcnJpZGU7CisgICAgRXJyb3IgYWNjZXB0RGlzcGxheUNoYW5nZXMoRGlzcGxheSBkaXNwbGF5KSBvdmVycmlkZTsKKyAgICBFcnJvciBwcmVzZW50RGlzcGxheShEaXNwbGF5IGRpc3BsYXksIGludDMyX3QqIG91dFByZXNlbnRGZW5jZSwKKyAgICAgICAgICAgIHN0ZDo6dmVjdG9yPExheWVyPiogb3V0TGF5ZXJzLAorICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIG91dFJlbGVhc2VGZW5jZXMpIG92ZXJyaWRlOworCisgICAgRXJyb3Igc2V0TGF5ZXJDdXJzb3JQb3NpdGlvbihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCB4LCBpbnQzMl90IHkpIG92ZXJyaWRlOworICAgIEVycm9yIHNldExheWVyQnVmZmVyKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVyLCBpbnQzMl90IGFjcXVpcmVGZW5jZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJTdXJmYWNlRGFtYWdlKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjxod2NfcmVjdF90PiYgZGFtYWdlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllckJsZW5kTW9kZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCBtb2RlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllckNvbG9yKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkNvbG9yIGNvbG9yKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllckNvbXBvc2l0aW9uVHlwZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCB0eXBlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllckRhdGFzcGFjZShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgaW50MzJfdCBkYXRhc3BhY2UpIG92ZXJyaWRlOworICAgIEVycm9yIHNldExheWVyRGlzcGxheUZyYW1lKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBjb25zdCBod2NfcmVjdF90JiBmcmFtZSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJQbGFuZUFscGhhKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBmbG9hdCBhbHBoYSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLAorICAgICAgICAgICAgYnVmZmVyX2hhbmRsZV90IHN0cmVhbSkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJTb3VyY2VDcm9wKERpc3BsYXkgZGlzcGxheSwgTGF5ZXIgbGF5ZXIsCisgICAgICAgICAgICBjb25zdCBod2NfZnJlY3RfdCYgY3JvcCkgb3ZlcnJpZGU7CisgICAgRXJyb3Igc2V0TGF5ZXJUcmFuc2Zvcm0oRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGludDMyX3QgdHJhbnNmb3JtKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllclZpc2libGVSZWdpb24oRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllciwKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGh3Y19yZWN0X3Q+JiB2aXNpYmxlKSBvdmVycmlkZTsKKyAgICBFcnJvciBzZXRMYXllclpPcmRlcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyLCB1aW50MzJfdCB6KSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGluaXRDYXBhYmlsaXRpZXMoKTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBpbml0RGlzcGF0Y2goaHdjMl9mdW5jdGlvbl9kZXNjcmlwdG9yX3QgZGVzYywgVCogb3V0UGZuKTsKKyAgICB2b2lkIGluaXREaXNwYXRjaCgpOworCisgICAgc3A8Q29tcG9zZXJDbGllbnQ+IGdldENsaWVudCgpOworCisgICAgc3RhdGljIHZvaWQgaG90cGx1Z0hvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5LCBpbnQzMl90IGNvbm5lY3RlZCk7CisgICAgc3RhdGljIHZvaWQgcmVmcmVzaEhvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5KTsKKyAgICBzdGF0aWMgdm9pZCB2c3luY0hvb2soaHdjMl9jYWxsYmFja19kYXRhX3QgY2FsbGJhY2tEYXRhLAorICAgICAgICBod2MyX2Rpc3BsYXlfdCBkaXNwbGF5LCBpbnQ2NF90IHRpbWVzdGFtcCk7CisKKyAgICBod2MyX2RldmljZV90KiBtRGV2aWNlOworCisgICAgc3RkOjp1bm9yZGVyZWRfc2V0PENhcGFiaWxpdHk+IG1DYXBhYmlsaXRpZXM7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBIV0MyX1BGTl9BQ0NFUFRfRElTUExBWV9DSEFOR0VTIGFjY2VwdERpc3BsYXlDaGFuZ2VzOworICAgICAgICBIV0MyX1BGTl9DUkVBVEVfTEFZRVIgY3JlYXRlTGF5ZXI7CisgICAgICAgIEhXQzJfUEZOX0NSRUFURV9WSVJUVUFMX0RJU1BMQVkgY3JlYXRlVmlydHVhbERpc3BsYXk7CisgICAgICAgIEhXQzJfUEZOX0RFU1RST1lfTEFZRVIgZGVzdHJveUxheWVyOworICAgICAgICBIV0MyX1BGTl9ERVNUUk9ZX1ZJUlRVQUxfRElTUExBWSBkZXN0cm95VmlydHVhbERpc3BsYXk7CisgICAgICAgIEhXQzJfUEZOX0RVTVAgZHVtcDsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0FDVElWRV9DT05GSUcgZ2V0QWN0aXZlQ29uZmlnOworICAgICAgICBIV0MyX1BGTl9HRVRfQ0hBTkdFRF9DT01QT1NJVElPTl9UWVBFUyBnZXRDaGFuZ2VkQ29tcG9zaXRpb25UeXBlczsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0NMSUVOVF9UQVJHRVRfU1VQUE9SVCBnZXRDbGllbnRUYXJnZXRTdXBwb3J0OworICAgICAgICBIV0MyX1BGTl9HRVRfQ09MT1JfTU9ERVMgZ2V0Q29sb3JNb2RlczsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0RJU1BMQVlfQVRUUklCVVRFIGdldERpc3BsYXlBdHRyaWJ1dGU7CisgICAgICAgIEhXQzJfUEZOX0dFVF9ESVNQTEFZX0NPTkZJR1MgZ2V0RGlzcGxheUNvbmZpZ3M7CisgICAgICAgIEhXQzJfUEZOX0dFVF9ESVNQTEFZX05BTUUgZ2V0RGlzcGxheU5hbWU7CisgICAgICAgIEhXQzJfUEZOX0dFVF9ESVNQTEFZX1JFUVVFU1RTIGdldERpc3BsYXlSZXF1ZXN0czsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0RJU1BMQVlfVFlQRSBnZXREaXNwbGF5VHlwZTsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0RPWkVfU1VQUE9SVCBnZXREb3plU3VwcG9ydDsKKyAgICAgICAgSFdDMl9QRk5fR0VUX0hEUl9DQVBBQklMSVRJRVMgZ2V0SGRyQ2FwYWJpbGl0aWVzOworICAgICAgICBIV0MyX1BGTl9HRVRfTUFYX1ZJUlRVQUxfRElTUExBWV9DT1VOVCBnZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50OworICAgICAgICBIV0MyX1BGTl9HRVRfUkVMRUFTRV9GRU5DRVMgZ2V0UmVsZWFzZUZlbmNlczsKKyAgICAgICAgSFdDMl9QRk5fUFJFU0VOVF9ESVNQTEFZIHByZXNlbnREaXNwbGF5OworICAgICAgICBIV0MyX1BGTl9SRUdJU1RFUl9DQUxMQkFDSyByZWdpc3RlckNhbGxiYWNrOworICAgICAgICBIV0MyX1BGTl9TRVRfQUNUSVZFX0NPTkZJRyBzZXRBY3RpdmVDb25maWc7CisgICAgICAgIEhXQzJfUEZOX1NFVF9DTElFTlRfVEFSR0VUIHNldENsaWVudFRhcmdldDsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0NPTE9SX01PREUgc2V0Q29sb3JNb2RlOworICAgICAgICBIV0MyX1BGTl9TRVRfQ09MT1JfVFJBTlNGT1JNIHNldENvbG9yVHJhbnNmb3JtOworICAgICAgICBIV0MyX1BGTl9TRVRfQ1VSU09SX1BPU0lUSU9OIHNldEN1cnNvclBvc2l0aW9uOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfQkxFTkRfTU9ERSBzZXRMYXllckJsZW5kTW9kZTsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX0JVRkZFUiBzZXRMYXllckJ1ZmZlcjsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX0NPTE9SIHNldExheWVyQ29sb3I7CisgICAgICAgIEhXQzJfUEZOX1NFVF9MQVlFUl9DT01QT1NJVElPTl9UWVBFIHNldExheWVyQ29tcG9zaXRpb25UeXBlOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfREFUQVNQQUNFIHNldExheWVyRGF0YXNwYWNlOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfRElTUExBWV9GUkFNRSBzZXRMYXllckRpc3BsYXlGcmFtZTsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX1BMQU5FX0FMUEhBIHNldExheWVyUGxhbmVBbHBoYTsKKyAgICAgICAgSFdDMl9QRk5fU0VUX0xBWUVSX1NJREVCQU5EX1NUUkVBTSBzZXRMYXllclNpZGViYW5kU3RyZWFtOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfU09VUkNFX0NST1Agc2V0TGF5ZXJTb3VyY2VDcm9wOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0Ugc2V0TGF5ZXJTdXJmYWNlRGFtYWdlOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfVFJBTlNGT1JNIHNldExheWVyVHJhbnNmb3JtOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfVklTSUJMRV9SRUdJT04gc2V0TGF5ZXJWaXNpYmxlUmVnaW9uOworICAgICAgICBIV0MyX1BGTl9TRVRfTEFZRVJfWl9PUkRFUiBzZXRMYXllclpPcmRlcjsKKyAgICAgICAgSFdDMl9QRk5fU0VUX09VVFBVVF9CVUZGRVIgc2V0T3V0cHV0QnVmZmVyOworICAgICAgICBIV0MyX1BGTl9TRVRfUE9XRVJfTU9ERSBzZXRQb3dlck1vZGU7CisgICAgICAgIEhXQzJfUEZOX1NFVF9WU1lOQ19FTkFCTEVEIHNldFZzeW5jRW5hYmxlZDsKKyAgICAgICAgSFdDMl9QRk5fVkFMSURBVEVfRElTUExBWSB2YWxpZGF0ZURpc3BsYXk7CisgICAgfSBtRGlzcGF0Y2g7CisKKyAgICBzdGQ6Om11dGV4IG1DbGllbnRNdXRleDsKKyAgICB3cDxDb21wb3NlckNsaWVudD4gbUNsaWVudDsKKworICAgIC8vIElmIHRoZSBIV0MgaW1wbGVtZW50YXRpb24gdmVyc2lvbiBpcyA8IDIuMCwgdXNlIGFuIGFkYXB0ZXIgdG8gaW50ZXJmYWNlCisgICAgLy8gYmV0d2VlbiBIV0MgMi4wIDwtPiBIV0MgMS5YLgorICAgIHN0ZDo6dW5pcXVlX3B0cjxIV0MyT24xQWRhcHRlcj4gbUFkYXB0ZXI7Cit9OworCitleHRlcm4gIkMiIElDb21wb3NlciogSElETF9GRVRDSF9JQ29tcG9zZXIoY29uc3QgY2hhciogbmFtZSk7CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8xCit9IC8vIG5hbWVzcGFjZSBjb21wb3NlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9WMl8xX0hXQ19ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9JQ29tcG9zZXJDb21tYW5kQnVmZmVyLmggYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9JQ29tcG9zZXJDb21tYW5kQnVmZmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmI3OGVmOAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L0lDb21wb3NlckNvbW1hbmRCdWZmZXIuaApAQCAtMCwwICsxLDg0OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX0NPTVBPU0VSX0NPTU1BTkRfQlVGRkVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19DT01QT1NFUl9DT01NQU5EX0JVRkZFUl9ICisKKyNpZm5kZWYgTE9HX1RBRworI3dhcm4gIklDb21wb3NlckNvbW1hbmRCdWZmZXIuaCBpbmNsdWRlZCB3aXRob3V0IExPR19UQUciCisjZW5kaWYKKworI3VuZGVmIExPR19OREVCVUcKKyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyLmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHN5bmMvc3luYy5oPgorI2luY2x1ZGUgPGZtcS9NZXNzYWdlUXVldWUuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgY29tcG9zZXIgeworbmFtZXNwYWNlIFYyXzEgeworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6Q29sb3JUcmFuc2Zvcm07Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6RGF0YXNwYWNlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpNZXNzYWdlUXVldWU7CisKK3VzaW5nIENvbW1hbmRRdWV1ZVR5cGUgPSBNZXNzYWdlUXVldWU8dWludDMyX3QsIGtTeW5jaHJvbml6ZWRSZWFkV3JpdGU+OworCisvLyBUaGlzIGNsYXNzIGhlbHBzIGJ1aWxkIGEgY29tbWFuZCBxdWV1ZS4gIE5vdGUgdGhhdCBhbGwgc2l6ZXMvbGVuZ3RocyBhcmUgaW4KKy8vIHVuaXRzIG9mIHVpbnQzMl90J3MuCitjbGFzcyBDb21tYW5kV3JpdGVyQmFzZSB7CitwdWJsaWM6CisgICAgQ29tbWFuZFdyaXRlckJhc2UodWludDMyX3QgaW5pdGlhbE1heFNpemUpCisgICAgICAgIDogbURhdGFNYXhTaXplKGluaXRpYWxNYXhTaXplKQorICAgIHsKKyAgICAgICAgbURhdGEgPSBzdGQ6Om1ha2VfdW5pcXVlPHVpbnQzMl90W10+KG1EYXRhTWF4U2l6ZSk7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorCisgICAgdmlydHVhbCB+Q29tbWFuZFdyaXRlckJhc2UoKQorICAgIHsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1EYXRhV3JpdHRlbiA9IDA7CisgICAgICAgIG1Db21tYW5kRW5kID0gMDsKKworICAgICAgICAvLyBoYW5kbGVzIGluIG1EYXRhSGFuZGxlcyBhcmUgb3duZWQgYnkgdGhlIGNhbGxlcgorICAgICAgICBtRGF0YUhhbmRsZXMuY2xlYXIoKTsKKworICAgICAgICAvLyBoYW5kbGVzIGluIG1UZW1wb3JhcnlIYW5kbGVzIGFyZSBvd25lZCBieSB0aGUgd3JpdGVyCisgICAgICAgIGZvciAoYXV0byBoYW5kbGUgOiBtVGVtcG9yYXJ5SGFuZGxlcykgeworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShoYW5kbGUpOworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoaGFuZGxlKTsKKyAgICAgICAgfQorICAgICAgICBtVGVtcG9yYXJ5SGFuZGxlcy5jbGVhcigpOworICAgIH0KKworICAgIElDb21wb3NlckNsaWVudDo6Q29tbWFuZCBnZXRDb21tYW5kKHVpbnQzMl90IG9mZnNldCkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IHZhbCA9IChvZmZzZXQgPCBtRGF0YVdyaXR0ZW4pID8gbURhdGFbb2Zmc2V0XSA6IDA7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ+KHZhbCAmCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6T1BDT0RFX01BU0spKTsKKyAgICB9CisKKyAgICBib29sIHdyaXRlUXVldWUoYm9vbCogb3V0UXVldWVDaGFuZ2VkLCB1aW50MzJfdCogb3V0Q29tbWFuZExlbmd0aCwKKyAgICAgICAgICAgIGhpZGxfdmVjPGhpZGxfaGFuZGxlPiogb3V0Q29tbWFuZEhhbmRsZXMpCisgICAgeworICAgICAgICAvLyB3cml0ZSBkYXRhIHRvIHF1ZXVlLCBvcHRpb25hbGx5IHJlc2l6aW5nIGl0CisgICAgICAgIGlmIChtUXVldWUgJiYgKG1EYXRhTWF4U2l6ZSA8PSBtUXVldWUtPmdldFF1YW50dW1Db3VudCgpKSkgeworICAgICAgICAgICAgaWYgKCFtUXVldWUtPndyaXRlKG1EYXRhLmdldCgpLCBtRGF0YVdyaXR0ZW4pKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byB3cml0ZSBjb21tYW5kcyB0byBtZXNzYWdlIHF1ZXVlIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAqb3V0UXVldWVDaGFuZ2VkID0gZmFsc2U7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhdXRvIG5ld1F1ZXVlID0gc3RkOjptYWtlX3VuaXF1ZTxDb21tYW5kUXVldWVUeXBlPihtRGF0YU1heFNpemUpOworICAgICAgICAgICAgaWYgKCFuZXdRdWV1ZS0+aXNWYWxpZCgpIHx8CisgICAgICAgICAgICAgICAgICAgICFuZXdRdWV1ZS0+d3JpdGUobURhdGEuZ2V0KCksIG1EYXRhV3JpdHRlbikpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiZmFpbGVkIHRvIHByZXBhcmUgYSBuZXcgbWVzc2FnZSBxdWV1ZSAiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1RdWV1ZSA9IHN0ZDo6bW92ZShuZXdRdWV1ZSk7CisgICAgICAgICAgICAqb3V0UXVldWVDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgICpvdXRDb21tYW5kTGVuZ3RoID0gbURhdGFXcml0dGVuOworICAgICAgICBvdXRDb21tYW5kSGFuZGxlcy0+c2V0VG9FeHRlcm5hbCgKKyAgICAgICAgICAgICAgICBjb25zdF9jYXN0PGhpZGxfaGFuZGxlKj4obURhdGFIYW5kbGVzLmRhdGEoKSksCisgICAgICAgICAgICAgICAgbURhdGFIYW5kbGVzLnNpemUoKSk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgY29uc3QgTVFEZXNjcmlwdG9yU3luYzx1aW50MzJfdD4qIGdldE1RRGVzY3JpcHRvcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gKG1RdWV1ZSkgPyBtUXVldWUtPmdldERlc2MoKSA6IG51bGxwdHI7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2VsZWN0RGlzcGxheUxlbmd0aCA9IDI7CisgICAgdm9pZCBzZWxlY3REaXNwbGF5KERpc3BsYXkgZGlzcGxheSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFTEVDVF9ESVNQTEFZLAorICAgICAgICAgICAgICAgIGtTZWxlY3REaXNwbGF5TGVuZ3RoKTsKKyAgICAgICAgd3JpdGU2NChkaXNwbGF5KTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NlbGVjdExheWVyTGVuZ3RoID0gMjsKKyAgICB2b2lkIHNlbGVjdExheWVyKExheWVyIGxheWVyKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VMRUNUX0xBWUVSLAorICAgICAgICAgICAgICAgIGtTZWxlY3RMYXllckxlbmd0aCk7CisgICAgICAgIHdyaXRlNjQobGF5ZXIpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0RXJyb3JMZW5ndGggPSAyOworICAgIHZvaWQgc2V0RXJyb3IodWludDMyX3QgbG9jYXRpb24sIEVycm9yIGVycm9yKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0VSUk9SLCBrU2V0RXJyb3JMZW5ndGgpOworICAgICAgICB3cml0ZShsb2NhdGlvbik7CisgICAgICAgIHdyaXRlU2lnbmVkKHN0YXRpY19jYXN0PGludDMyX3Q+KGVycm9yKSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldENoYW5nZWRDb21wb3NpdGlvblR5cGVzKGNvbnN0IHN0ZDo6dmVjdG9yPExheWVyPiYgbGF5ZXJzLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbj4mIHR5cGVzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsTGF5ZXJzID0gc3RkOjptaW4obGF5ZXJzLnNpemUoKSwgdHlwZXMuc2l6ZSgpKTsKKyAgICAgICAgc2l6ZV90IGN1cnJlbnRMYXllciA9IDA7CisKKyAgICAgICAgd2hpbGUgKGN1cnJlbnRMYXllciA8IHRvdGFsTGF5ZXJzKSB7CisgICAgICAgICAgICBzaXplX3QgY291bnQgPSBzdGQ6Om1pbih0b3RhbExheWVycyAtIGN1cnJlbnRMYXllciwKKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihrTWF4TGVuZ3RoKSAvIDMpOworCisgICAgICAgICAgICBiZWdpbkNvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0NIQU5HRURfQ09NUE9TSVRJT05fVFlQRVMsCisgICAgICAgICAgICAgICAgICAgIGNvdW50ICogMyk7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICB3cml0ZTY0KGxheWVyc1tjdXJyZW50TGF5ZXIgKyBpXSk7CisgICAgICAgICAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4odHlwZXNbY3VycmVudExheWVyICsgaV0pKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVuZENvbW1hbmQoKTsKKworICAgICAgICAgICAgY3VycmVudExheWVyICs9IGNvdW50OworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBzZXREaXNwbGF5UmVxdWVzdHModWludDMyX3QgZGlzcGxheVJlcXVlc3RNYXNrLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8TGF5ZXI+JiBsYXllcnMsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3Rvcjx1aW50MzJfdD4mIGxheWVyUmVxdWVzdE1hc2tzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsTGF5ZXJzID0gc3RkOjptaW4obGF5ZXJzLnNpemUoKSwKKyAgICAgICAgICAgICAgICBsYXllclJlcXVlc3RNYXNrcy5zaXplKCkpOworICAgICAgICBzaXplX3QgY3VycmVudExheWVyID0gMDsKKworICAgICAgICB3aGlsZSAoY3VycmVudExheWVyIDwgdG90YWxMYXllcnMpIHsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9IHN0ZDo6bWluKHRvdGFsTGF5ZXJzIC0gY3VycmVudExheWVyLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGtNYXhMZW5ndGggLSAxKSAvIDMpOworCisgICAgICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfRElTUExBWV9SRVFVRVNUUywKKyAgICAgICAgICAgICAgICAgICAgMSArIGNvdW50ICogMyk7CisgICAgICAgICAgICB3cml0ZShkaXNwbGF5UmVxdWVzdE1hc2spOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgd3JpdGU2NChsYXllcnNbY3VycmVudExheWVyICsgaV0pOworICAgICAgICAgICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PGludDMyX3Q+KGxheWVyUmVxdWVzdE1hc2tzW2N1cnJlbnRMYXllciArIGldKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbmRDb21tYW5kKCk7CisKKyAgICAgICAgICAgIGN1cnJlbnRMYXllciArPSBjb3VudDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldFByZXNlbnRGZW5jZUxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRQcmVzZW50RmVuY2UoaW50IHByZXNlbnRGZW5jZSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9QUkVTRU5UX0ZFTkNFLAorICAgICAgICAgICAgICAgIGtTZXRQcmVzZW50RmVuY2VMZW5ndGgpOworICAgICAgICB3cml0ZUZlbmNlKHByZXNlbnRGZW5jZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldFJlbGVhc2VGZW5jZXMoY29uc3Qgc3RkOjp2ZWN0b3I8TGF5ZXI+JiBsYXllcnMsCisgICAgICAgICAgICBjb25zdCBzdGQ6OnZlY3RvcjxpbnQ+JiByZWxlYXNlRmVuY2VzKQorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsTGF5ZXJzID0gc3RkOjptaW4obGF5ZXJzLnNpemUoKSwgcmVsZWFzZUZlbmNlcy5zaXplKCkpOworICAgICAgICBzaXplX3QgY3VycmVudExheWVyID0gMDsKKworICAgICAgICB3aGlsZSAoY3VycmVudExheWVyIDwgdG90YWxMYXllcnMpIHsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9IHN0ZDo6bWluKHRvdGFsTGF5ZXJzIC0gY3VycmVudExheWVyLAorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxzaXplX3Q+KGtNYXhMZW5ndGgpIC8gMyk7CisKKyAgICAgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9SRUxFQVNFX0ZFTkNFUywKKyAgICAgICAgICAgICAgICAgICAgY291bnQgKiAzKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgeworICAgICAgICAgICAgICAgIHdyaXRlNjQobGF5ZXJzW2N1cnJlbnRMYXllciArIGldKTsKKyAgICAgICAgICAgICAgICB3cml0ZUZlbmNlKHJlbGVhc2VGZW5jZXNbY3VycmVudExheWVyICsgaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZW5kQ29tbWFuZCgpOworCisgICAgICAgICAgICBjdXJyZW50TGF5ZXIgKz0gY291bnQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRDb2xvclRyYW5zZm9ybUxlbmd0aCA9IDE3OworICAgIHZvaWQgc2V0Q29sb3JUcmFuc2Zvcm0oY29uc3QgZmxvYXQqIG1hdHJpeCwgQ29sb3JUcmFuc2Zvcm0gaGludCkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DT0xPUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAgICAga1NldENvbG9yVHJhbnNmb3JtTGVuZ3RoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxNjsgaSsrKSB7CisgICAgICAgICAgICB3cml0ZUZsb2F0KG1hdHJpeFtpXSk7CisgICAgICAgIH0KKyAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4oaGludCkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgdm9pZCBzZXRDbGllbnRUYXJnZXQodWludDMyX3Qgc2xvdCwgY29uc3QgbmF0aXZlX2hhbmRsZV90KiB0YXJnZXQsCisgICAgICAgICAgICBpbnQgYWNxdWlyZUZlbmNlLCBEYXRhc3BhY2UgZGF0YXNwYWNlLAorICAgICAgICAgICAgY29uc3Qgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpSZWN0PiYgZGFtYWdlKQorICAgIHsKKyAgICAgICAgYm9vbCBkb1dyaXRlID0gKGRhbWFnZS5zaXplKCkgPD0gKGtNYXhMZW5ndGggLSA0KSAvIDQpOworICAgICAgICBzaXplX3QgbGVuZ3RoID0gNCArICgoZG9Xcml0ZSkgPyBkYW1hZ2Uuc2l6ZSgpICogNCA6IDApOworCisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9DTElFTlRfVEFSR0VULCBsZW5ndGgpOworICAgICAgICB3cml0ZShzbG90KTsKKyAgICAgICAgd3JpdGVIYW5kbGUodGFyZ2V0LCB0cnVlKTsKKyAgICAgICAgd3JpdGVGZW5jZShhY3F1aXJlRmVuY2UpOworICAgICAgICB3cml0ZVNpZ25lZChzdGF0aWNfY2FzdDxpbnQzMl90PihkYXRhc3BhY2UpKTsKKyAgICAgICAgLy8gV2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVjdGFuZ2xlcyBpbiB0aGUgZGFtYWdlIHJlZ2lvbiBhbmQgZG9Xcml0ZQorICAgICAgICAvLyBpcyBmYWxzZSwgd2Ugd3JpdGUgbm8gcmVjdGFuZ2xlIGF0IGFsbCB3aGljaCBtZWFucyB0aGUgZW50aXJlCisgICAgICAgIC8vIGNsaWVudCB0YXJnZXQgaXMgZGFtYWdlZC4KKyAgICAgICAgaWYgKGRvV3JpdGUpIHsKKyAgICAgICAgICAgIHdyaXRlUmVnaW9uKGRhbWFnZSk7CisgICAgICAgIH0KKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldE91dHB1dEJ1ZmZlckxlbmd0aCA9IDM7CisgICAgdm9pZCBzZXRPdXRwdXRCdWZmZXIodWludDMyX3Qgc2xvdCwgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXIsCisgICAgICAgICAgICBpbnQgcmVsZWFzZUZlbmNlKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX09VVFBVVF9CVUZGRVIsCisgICAgICAgICAgICAgICAga1NldE91dHB1dEJ1ZmZlckxlbmd0aCk7CisgICAgICAgIHdyaXRlKHNsb3QpOworICAgICAgICB3cml0ZUhhbmRsZShidWZmZXIsIHRydWUpOworICAgICAgICB3cml0ZUZlbmNlKHJlbGVhc2VGZW5jZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtWYWxpZGF0ZURpc3BsYXlMZW5ndGggPSAwOworICAgIHZvaWQgdmFsaWRhdGVEaXNwbGF5KCkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlZBTElEQVRFX0RJU1BMQVksCisgICAgICAgICAgICAgICAga1ZhbGlkYXRlRGlzcGxheUxlbmd0aCk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtBY2NlcHREaXNwbGF5Q2hhbmdlc0xlbmd0aCA9IDA7CisgICAgdm9pZCBhY2NlcHREaXNwbGF5Q2hhbmdlcygpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpBQ0NFUFRfRElTUExBWV9DSEFOR0VTLAorICAgICAgICAgICAgICAgIGtBY2NlcHREaXNwbGF5Q2hhbmdlc0xlbmd0aCk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtQcmVzZW50RGlzcGxheUxlbmd0aCA9IDA7CisgICAgdm9pZCBwcmVzZW50RGlzcGxheSgpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpQUkVTRU5UX0RJU1BMQVksCisgICAgICAgICAgICAgICAga1ByZXNlbnREaXNwbGF5TGVuZ3RoKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyQ3Vyc29yUG9zaXRpb25MZW5ndGggPSAyOworICAgIHZvaWQgc2V0TGF5ZXJDdXJzb3JQb3NpdGlvbihpbnQzMl90IHgsIGludDMyX3QgeSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9DVVJTT1JfUE9TSVRJT04sCisgICAgICAgICAgICAgICAga1NldExheWVyQ3Vyc29yUG9zaXRpb25MZW5ndGgpOworICAgICAgICB3cml0ZVNpZ25lZCh4KTsKKyAgICAgICAgd3JpdGVTaWduZWQoeSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllckJ1ZmZlckxlbmd0aCA9IDM7CisgICAgdm9pZCBzZXRMYXllckJ1ZmZlcih1aW50MzJfdCBzbG90LCBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlciwKKyAgICAgICAgICAgIGludCBhY3F1aXJlRmVuY2UpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQlVGRkVSLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckJ1ZmZlckxlbmd0aCk7CisgICAgICAgIHdyaXRlKHNsb3QpOworICAgICAgICB3cml0ZUhhbmRsZShidWZmZXIsIHRydWUpOworICAgICAgICB3cml0ZUZlbmNlKGFjcXVpcmVGZW5jZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldExheWVyU3VyZmFjZURhbWFnZSgKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4mIGRhbWFnZSkKKyAgICB7CisgICAgICAgIGJvb2wgZG9Xcml0ZSA9IChkYW1hZ2Uuc2l6ZSgpIDw9IGtNYXhMZW5ndGggLyA0KTsKKyAgICAgICAgc2l6ZV90IGxlbmd0aCA9IChkb1dyaXRlKSA/IGRhbWFnZS5zaXplKCkgKiA0IDogMDsKKworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UsCisgICAgICAgICAgICAgICAgbGVuZ3RoKTsKKyAgICAgICAgLy8gV2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVjdGFuZ2xlcyBpbiB0aGUgZGFtYWdlIHJlZ2lvbiBhbmQgZG9Xcml0ZQorICAgICAgICAvLyBpcyBmYWxzZSwgd2Ugd3JpdGUgbm8gcmVjdGFuZ2xlIGF0IGFsbCB3aGljaCBtZWFucyB0aGUgZW50aXJlCisgICAgICAgIC8vIGxheWVyIGlzIGRhbWFnZWQuCisgICAgICAgIGlmIChkb1dyaXRlKSB7CisgICAgICAgICAgICB3cml0ZVJlZ2lvbihkYW1hZ2UpOworICAgICAgICB9CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllckJsZW5kTW9kZUxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRMYXllckJsZW5kTW9kZShJQ29tcG9zZXJDbGllbnQ6OkJsZW5kTW9kZSBtb2RlKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0JMRU5EX01PREUsCisgICAgICAgICAgICAgICAga1NldExheWVyQmxlbmRNb2RlTGVuZ3RoKTsKKyAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4obW9kZSkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJDb2xvckxlbmd0aCA9IDE7CisgICAgdm9pZCBzZXRMYXllckNvbG9yKElDb21wb3NlckNsaWVudDo6Q29sb3IgY29sb3IpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfQ09MT1IsCisgICAgICAgICAgICAgICAga1NldExheWVyQ29sb3JMZW5ndGgpOworICAgICAgICB3cml0ZUNvbG9yKGNvbG9yKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyQ29tcG9zaXRpb25UeXBlTGVuZ3RoID0gMTsKKyAgICB2b2lkIHNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb24gdHlwZSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9DT01QT1NJVElPTl9UWVBFLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckNvbXBvc2l0aW9uVHlwZUxlbmd0aCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHN0YXRpY19jYXN0PGludDMyX3Q+KHR5cGUpKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyRGF0YXNwYWNlTGVuZ3RoID0gMTsKKyAgICB2b2lkIHNldExheWVyRGF0YXNwYWNlKERhdGFzcGFjZSBkYXRhc3BhY2UpCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfREFUQVNQQUNFLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckRhdGFzcGFjZUxlbmd0aCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHN0YXRpY19jYXN0PGludDMyX3Q+KGRhdGFzcGFjZSkpOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJEaXNwbGF5RnJhbWVMZW5ndGggPSA0OworICAgIHZvaWQgc2V0TGF5ZXJEaXNwbGF5RnJhbWUoY29uc3QgSUNvbXBvc2VyQ2xpZW50OjpSZWN0JiBmcmFtZSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9ESVNQTEFZX0ZSQU1FLAorICAgICAgICAgICAgICAgIGtTZXRMYXllckRpc3BsYXlGcmFtZUxlbmd0aCk7CisgICAgICAgIHdyaXRlUmVjdChmcmFtZSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQxNl90IGtTZXRMYXllclBsYW5lQWxwaGFMZW5ndGggPSAxOworICAgIHZvaWQgc2V0TGF5ZXJQbGFuZUFscGhhKGZsb2F0IGFscGhhKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1BMQU5FX0FMUEhBLAorICAgICAgICAgICAgICAgIGtTZXRMYXllclBsYW5lQWxwaGFMZW5ndGgpOworICAgICAgICB3cml0ZUZsb2F0KGFscGhhKTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyU2lkZWJhbmRTdHJlYW1MZW5ndGggPSAxOworICAgIHZvaWQgc2V0TGF5ZXJTaWRlYmFuZFN0cmVhbShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIHN0cmVhbSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9TSURFQkFORF9TVFJFQU0sCisgICAgICAgICAgICAgICAga1NldExheWVyU2lkZWJhbmRTdHJlYW1MZW5ndGgpOworICAgICAgICB3cml0ZUhhbmRsZShzdHJlYW0pOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJTb3VyY2VDcm9wTGVuZ3RoID0gNDsKKyAgICB2b2lkIHNldExheWVyU291cmNlQ3JvcChjb25zdCBJQ29tcG9zZXJDbGllbnQ6OkZSZWN0JiBjcm9wKQorICAgIHsKKyAgICAgICAgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1NPVVJDRV9DUk9QLAorICAgICAgICAgICAgICAgIGtTZXRMYXllclNvdXJjZUNyb3BMZW5ndGgpOworICAgICAgICB3cml0ZUZSZWN0KGNyb3ApOworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrU2V0TGF5ZXJUcmFuc2Zvcm1MZW5ndGggPSAxOworICAgIHZvaWQgc2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtIHRyYW5zZm9ybSkKKyAgICB7CisgICAgICAgIGJlZ2luQ29tbWFuZChJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9UUkFOU0ZPUk0sCisgICAgICAgICAgICAgICAga1NldExheWVyVHJhbnNmb3JtTGVuZ3RoKTsKKyAgICAgICAgd3JpdGVTaWduZWQoc3RhdGljX2Nhc3Q8aW50MzJfdD4odHJhbnNmb3JtKSk7CisgICAgICAgIGVuZENvbW1hbmQoKTsKKyAgICB9CisKKyAgICB2b2lkIHNldExheWVyVmlzaWJsZVJlZ2lvbigKKyAgICAgICAgICAgIGNvbnN0IHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4mIHZpc2libGUpCisgICAgeworICAgICAgICBib29sIGRvV3JpdGUgPSAodmlzaWJsZS5zaXplKCkgPD0ga01heExlbmd0aCAvIDQpOworICAgICAgICBzaXplX3QgbGVuZ3RoID0gKGRvV3JpdGUpID8gdmlzaWJsZS5zaXplKCkgKiA0IDogMDsKKworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfVklTSUJMRV9SRUdJT04sCisgICAgICAgICAgICAgICAgbGVuZ3RoKTsKKyAgICAgICAgLy8gV2hlbiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVjdGFuZ2xlcyBpbiB0aGUgdmlzaWJsZSByZWdpb24gYW5kCisgICAgICAgIC8vIGRvV3JpdGUgaXMgZmFsc2UsIHdlIHdyaXRlIG5vIHJlY3RhbmdsZSBhdCBhbGwgd2hpY2ggbWVhbnMgdGhlCisgICAgICAgIC8vIGVudGlyZSBsYXllciBpcyB2aXNpYmxlLgorICAgICAgICBpZiAoZG9Xcml0ZSkgeworICAgICAgICAgICAgd3JpdGVSZWdpb24odmlzaWJsZSk7CisgICAgICAgIH0KKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDE2X3Qga1NldExheWVyWk9yZGVyTGVuZ3RoID0gMTsKKyAgICB2b2lkIHNldExheWVyWk9yZGVyKHVpbnQzMl90IHopCisgICAgeworICAgICAgICBiZWdpbkNvbW1hbmQoSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfWl9PUkRFUiwKKyAgICAgICAgICAgICAgICBrU2V0TGF5ZXJaT3JkZXJMZW5ndGgpOworICAgICAgICB3cml0ZSh6KTsKKyAgICAgICAgZW5kQ29tbWFuZCgpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIHZvaWQgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZCBjb21tYW5kLCB1aW50MTZfdCBsZW5ndGgpCisgICAgeworICAgICAgICBpZiAobUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgIExPR19GQVRBTCgiZW5kQ29tbWFuZCB3YXMgbm90IGNhbGxlZCBiZWZvcmUgY29tbWFuZCAweCV4IiwKKyAgICAgICAgICAgICAgICAgICAgY29tbWFuZCk7CisgICAgICAgIH0KKworICAgICAgICBncm93RGF0YSgxICsgbGVuZ3RoKTsKKyAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGNvbW1hbmQpIHwgbGVuZ3RoKTsKKworICAgICAgICBtQ29tbWFuZEVuZCA9IG1EYXRhV3JpdHRlbiArIGxlbmd0aDsKKyAgICB9CisKKyAgICB2b2lkIGVuZENvbW1hbmQoKQorICAgIHsKKyAgICAgICAgaWYgKCFtQ29tbWFuZEVuZCkgeworICAgICAgICAgICAgTE9HX0ZBVEFMKCJiZWdpbkNvbW1hbmQgd2FzIG5vdCBjYWxsZWQiKTsKKyAgICAgICAgfSBlbHNlIGlmIChtRGF0YVdyaXR0ZW4gPiBtQ29tbWFuZEVuZCkgeworICAgICAgICAgICAgTE9HX0ZBVEFMKCJ0b28gbXVjaCBkYXRhIHdyaXR0ZW4iKTsKKyAgICAgICAgICAgIG1EYXRhV3JpdHRlbiA9IG1Db21tYW5kRW5kOworICAgICAgICB9IGVsc2UgaWYgKG1EYXRhV3JpdHRlbiA8IG1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICBMT0dfRkFUQUwoInRvbyBsaXR0bGUgZGF0YSB3cml0dGVuIik7CisgICAgICAgICAgICB3aGlsZSAobURhdGFXcml0dGVuIDwgbUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgICAgICB3cml0ZSgwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIG1Db21tYW5kRW5kID0gMDsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlKHVpbnQzMl90IHZhbCkKKyAgICB7CisgICAgICAgIG1EYXRhW21EYXRhV3JpdHRlbisrXSA9IHZhbDsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlU2lnbmVkKGludDMyX3QgdmFsKQorICAgIHsKKyAgICAgICAgbWVtY3B5KCZtRGF0YVttRGF0YVdyaXR0ZW4rK10sICZ2YWwsIHNpemVvZih2YWwpKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlRmxvYXQoZmxvYXQgdmFsKQorICAgIHsKKyAgICAgICAgbWVtY3B5KCZtRGF0YVttRGF0YVdyaXR0ZW4rK10sICZ2YWwsIHNpemVvZih2YWwpKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlNjQodWludDY0X3QgdmFsKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgbG8gPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4odmFsICYgMHhmZmZmZmZmZik7CisgICAgICAgIHVpbnQzMl90IGhpID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHZhbCA+PiAzMik7CisgICAgICAgIHdyaXRlKGxvKTsKKyAgICAgICAgd3JpdGUoaGkpOworICAgIH0KKworICAgIHZvaWQgd3JpdGVSZWN0KGNvbnN0IElDb21wb3NlckNsaWVudDo6UmVjdCYgcmVjdCkKKyAgICB7CisgICAgICAgIHdyaXRlU2lnbmVkKHJlY3QubGVmdCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHJlY3QudG9wKTsKKyAgICAgICAgd3JpdGVTaWduZWQocmVjdC5yaWdodCk7CisgICAgICAgIHdyaXRlU2lnbmVkKHJlY3QuYm90dG9tKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlUmVnaW9uKGNvbnN0IHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4mIHJlZ2lvbikKKyAgICB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgcmVjdCA6IHJlZ2lvbikgeworICAgICAgICAgICAgd3JpdGVSZWN0KHJlY3QpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB3cml0ZUZSZWN0KGNvbnN0IElDb21wb3NlckNsaWVudDo6RlJlY3QmIHJlY3QpCisgICAgeworICAgICAgICB3cml0ZUZsb2F0KHJlY3QubGVmdCk7CisgICAgICAgIHdyaXRlRmxvYXQocmVjdC50b3ApOworICAgICAgICB3cml0ZUZsb2F0KHJlY3QucmlnaHQpOworICAgICAgICB3cml0ZUZsb2F0KHJlY3QuYm90dG9tKTsKKyAgICB9CisKKyAgICB2b2lkIHdyaXRlQ29sb3IoY29uc3QgSUNvbXBvc2VyQ2xpZW50OjpDb2xvciYgY29sb3IpCisgICAgeworICAgICAgICB3cml0ZSgoY29sb3IuciA8PCAgMCkgfAorICAgICAgICAgICAgICAoY29sb3IuZyA8PCAgOCkgfAorICAgICAgICAgICAgICAoY29sb3IuYiA8PCAxNikgfAorICAgICAgICAgICAgICAoY29sb3IuYSA8PCAyNCkpOworICAgIH0KKworICAgIC8vIG93bmVyc2hpcCBvZiBoYW5kbGUgaXMgbm90IHRyYW5zZmVycmVkCisgICAgdm9pZCB3cml0ZUhhbmRsZShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSwgYm9vbCB1c2VDYWNoZSkKKyAgICB7CisgICAgICAgIGlmICghaGFuZGxlKSB7CisgICAgICAgICAgICB3cml0ZVNpZ25lZChzdGF0aWNfY2FzdDxpbnQzMl90PigodXNlQ2FjaGUpID8KKyAgICAgICAgICAgICAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6SGFuZGxlSW5kZXg6OkNBQ0hFRCA6CisgICAgICAgICAgICAgICAgICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkhhbmRsZUluZGV4OjpFTVBUWSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbURhdGFIYW5kbGVzLnB1c2hfYmFjayhoYW5kbGUpOworICAgICAgICB3cml0ZVNpZ25lZChtRGF0YUhhbmRsZXMuc2l6ZSgpIC0gMSk7CisgICAgfQorCisgICAgdm9pZCB3cml0ZUhhbmRsZShjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSkKKyAgICB7CisgICAgICAgIHdyaXRlSGFuZGxlKGhhbmRsZSwgZmFsc2UpOworICAgIH0KKworICAgIC8vIG93bmVyc2hpcCBvZiBmZW5jZSBpcyB0cmFuc2ZlcnJlZAorICAgIHZvaWQgd3JpdGVGZW5jZShpbnQgZmVuY2UpCisgICAgeworICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IG51bGxwdHI7CisgICAgICAgIGlmIChmZW5jZSA+PSAwKSB7CisgICAgICAgICAgICBoYW5kbGUgPSBnZXRUZW1wb3JhcnlIYW5kbGUoMSwgMCk7CisgICAgICAgICAgICBpZiAoaGFuZGxlKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlLT5kYXRhWzBdID0gZmVuY2U7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFMT0dXKCJmYWlsZWQgdG8gZ2V0IHRlbXBvcmFyeSBoYW5kbGUgZm9yIGZlbmNlICVkIiwgZmVuY2UpOworICAgICAgICAgICAgICAgIHN5bmNfd2FpdChmZW5jZSwgLTEpOworICAgICAgICAgICAgICAgIGNsb3NlKGZlbmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHdyaXRlSGFuZGxlKGhhbmRsZSk7CisgICAgfQorCisgICAgbmF0aXZlX2hhbmRsZV90KiBnZXRUZW1wb3JhcnlIYW5kbGUoaW50IG51bUZkcywgaW50IG51bUludHMpCisgICAgeworICAgICAgICBuYXRpdmVfaGFuZGxlX3QqIGhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKG51bUZkcywgbnVtSW50cyk7CisgICAgICAgIGlmIChoYW5kbGUpIHsKKyAgICAgICAgICAgIG1UZW1wb3JhcnlIYW5kbGVzLnB1c2hfYmFjayhoYW5kbGUpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBoYW5kbGU7CisgICAgfQorCisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MTZfdCBrTWF4TGVuZ3RoID0KKyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czx1aW50MTZfdD46Om1heCgpOworCitwcml2YXRlOgorICAgIHZvaWQgZ3Jvd0RhdGEodWludDMyX3QgZ3JvdykKKyAgICB7CisgICAgICAgIHVpbnQzMl90IG5ld1dyaXR0ZW4gPSBtRGF0YVdyaXR0ZW4gKyBncm93OworICAgICAgICBpZiAobmV3V3JpdHRlbiA8IG1EYXRhV3JpdHRlbikgeworICAgICAgICAgICAgTE9HX0FMV0FZU19GQVRBTCgiYnVmZmVyIG92ZXJmbG93ZWQ7IGRhdGEgd3JpdHRlbiAlIiBQUkl1MzIKKyAgICAgICAgICAgICAgICAgICAgIiwgZ3Jvd2luZyBieSAlIiBQUkl1MzIsIG1EYXRhV3JpdHRlbiwgZ3Jvdyk7CisgICAgICAgIH0KKworICAgICAgICBpZiAobmV3V3JpdHRlbiA8PSBtRGF0YU1heFNpemUpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHVpbnQzMl90IG5ld01heFNpemUgPSBtRGF0YU1heFNpemUgPDwgMTsKKyAgICAgICAgaWYgKG5ld01heFNpemUgPCBuZXdXcml0dGVuKSB7CisgICAgICAgICAgICBuZXdNYXhTaXplID0gbmV3V3JpdHRlbjsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gbmV3RGF0YSA9IHN0ZDo6bWFrZV91bmlxdWU8dWludDMyX3RbXT4obmV3TWF4U2l6ZSk7CisgICAgICAgIHN0ZDo6Y29weV9uKG1EYXRhLmdldCgpLCBtRGF0YVdyaXR0ZW4sIG5ld0RhdGEuZ2V0KCkpOworICAgICAgICBtRGF0YU1heFNpemUgPSBuZXdNYXhTaXplOworICAgICAgICBtRGF0YSA9IHN0ZDo6bW92ZShuZXdEYXRhKTsKKyAgICB9CisKKyAgICB1aW50MzJfdCBtRGF0YU1heFNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQzMl90W10+IG1EYXRhOworCisgICAgdWludDMyX3QgbURhdGFXcml0dGVuOworICAgIC8vIGVuZCBvZmZzZXQgb2YgdGhlIGN1cnJlbnQgY29tbWFuZAorICAgIHVpbnQzMl90IG1Db21tYW5kRW5kOworCisgICAgc3RkOjp2ZWN0b3I8aGlkbF9oYW5kbGU+IG1EYXRhSGFuZGxlczsKKyAgICBzdGQ6OnZlY3RvcjxuYXRpdmVfaGFuZGxlX3QgKj4gbVRlbXBvcmFyeUhhbmRsZXM7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29tbWFuZFF1ZXVlVHlwZT4gbVF1ZXVlOworfTsKKworLy8gVGhpcyBjbGFzcyBoZWxwcyBwYXJzZSBhIGNvbW1hbmQgcXVldWUuICBOb3RlIHRoYXQgYWxsIHNpemVzL2xlbmd0aHMgYXJlIGluCisvLyB1bml0cyBvZiB1aW50MzJfdCdzLgorY2xhc3MgQ29tbWFuZFJlYWRlckJhc2UgeworcHVibGljOgorICAgIENvbW1hbmRSZWFkZXJCYXNlKCkgOiBtRGF0YU1heFNpemUoMCkKKyAgICB7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorCisgICAgYm9vbCBzZXRNUURlc2NyaXB0b3IoY29uc3QgTVFEZXNjcmlwdG9yU3luYzx1aW50MzJfdD4mIGRlc2NyaXB0b3IpCisgICAgeworICAgICAgICBtUXVldWUgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbW1hbmRRdWV1ZVR5cGU+KGRlc2NyaXB0b3IsIGZhbHNlKTsKKyAgICAgICAgaWYgKG1RdWV1ZS0+aXNWYWxpZCgpKSB7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1RdWV1ZSA9IG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBib29sIHJlYWRRdWV1ZSh1aW50MzJfdCBjb21tYW5kTGVuZ3RoLAorICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8aGlkbF9oYW5kbGU+JiBjb21tYW5kSGFuZGxlcykKKyAgICB7CisgICAgICAgIGlmICghbVF1ZXVlKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIHF1YW50dW1Db3VudCA9IG1RdWV1ZS0+Z2V0UXVhbnR1bUNvdW50KCk7CisgICAgICAgIGlmIChtRGF0YU1heFNpemUgPCBxdWFudHVtQ291bnQpIHsKKyAgICAgICAgICAgIG1EYXRhTWF4U2l6ZSA9IHF1YW50dW1Db3VudDsKKyAgICAgICAgICAgIG1EYXRhID0gc3RkOjptYWtlX3VuaXF1ZTx1aW50MzJfdFtdPihtRGF0YU1heFNpemUpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNvbW1hbmRMZW5ndGggPiBtRGF0YU1heFNpemUgfHwKKyAgICAgICAgICAgICAgICAhbVF1ZXVlLT5yZWFkKG1EYXRhLmdldCgpLCBjb21tYW5kTGVuZ3RoKSkgeworICAgICAgICAgICAgQUxPR0UoImZhaWxlZCB0byByZWFkIGNvbW1hbmRzIGZyb20gbWVzc2FnZSBxdWV1ZSIpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgbURhdGFTaXplID0gY29tbWFuZExlbmd0aDsKKyAgICAgICAgbURhdGFSZWFkID0gMDsKKyAgICAgICAgbUNvbW1hbmRCZWdpbiA9IDA7CisgICAgICAgIG1Db21tYW5kRW5kID0gMDsKKyAgICAgICAgbURhdGFIYW5kbGVzLnNldFRvRXh0ZXJuYWwoCisgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxoaWRsX2hhbmRsZSo+KGNvbW1hbmRIYW5kbGVzLmRhdGEoKSksCisgICAgICAgICAgICAgICAgY29tbWFuZEhhbmRsZXMuc2l6ZSgpKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICB2b2lkIHJlc2V0KCkKKyAgICB7CisgICAgICAgIG1EYXRhU2l6ZSA9IDA7CisgICAgICAgIG1EYXRhUmVhZCA9IDA7CisgICAgICAgIG1Db21tYW5kQmVnaW4gPSAwOworICAgICAgICBtQ29tbWFuZEVuZCA9IDA7CisgICAgICAgIG1EYXRhSGFuZGxlcy5zZXRUb0V4dGVybmFsKG51bGxwdHIsIDApOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gKG1EYXRhUmVhZCA+PSBtRGF0YVNpemUpOworICAgIH0KKworICAgIGJvb2wgYmVnaW5Db21tYW5kKElDb21wb3NlckNsaWVudDo6Q29tbWFuZCogb3V0Q29tbWFuZCwKKyAgICAgICAgICAgIHVpbnQxNl90KiBvdXRMZW5ndGgpCisgICAgeworICAgICAgICBpZiAobUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgIExPR19GQVRBTCgiZW5kQ29tbWFuZCB3YXMgbm90IGNhbGxlZCBmb3IgbGFzdCBjb21tYW5kIik7CisgICAgICAgIH0KKworICAgICAgICBjb25zdGV4cHIgdWludDMyX3Qgb3Bjb2RlX21hc2sgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6T1BDT0RFX01BU0spOworICAgICAgICBjb25zdGV4cHIgdWludDMyX3QgbGVuZ3RoX21hc2sgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6TEVOR1RIX01BU0spOworCisgICAgICAgIHVpbnQzMl90IHZhbCA9IHJlYWQoKTsKKyAgICAgICAgKm91dENvbW1hbmQgPSBzdGF0aWNfY2FzdDxJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ+KAorICAgICAgICAgICAgICAgIHZhbCAmIG9wY29kZV9tYXNrKTsKKyAgICAgICAgKm91dExlbmd0aCA9IHN0YXRpY19jYXN0PHVpbnQxNl90Pih2YWwgJiBsZW5ndGhfbWFzayk7CisKKyAgICAgICAgaWYgKG1EYXRhUmVhZCArICpvdXRMZW5ndGggPiBtRGF0YVNpemUpIHsKKyAgICAgICAgICAgIEFMT0dFKCJjb21tYW5kIDB4JXggaGFzIGludmFsaWQgY29tbWFuZCBsZW5ndGggJSIgUFJJdTE2LAorICAgICAgICAgICAgICAgICAgICAqb3V0Q29tbWFuZCwgKm91dExlbmd0aCk7CisgICAgICAgICAgICAvLyB1bmRvIHRoZSByZWFkKCkgYWJvdmUKKyAgICAgICAgICAgIG1EYXRhUmVhZC0tOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgbUNvbW1hbmRFbmQgPSBtRGF0YVJlYWQgKyAqb3V0TGVuZ3RoOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHZvaWQgZW5kQ29tbWFuZCgpCisgICAgeworICAgICAgICBpZiAoIW1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICBMT0dfRkFUQUwoImJlZ2luQ29tbWFuZCB3YXMgbm90IGNhbGxlZCIpOworICAgICAgICB9IGVsc2UgaWYgKG1EYXRhUmVhZCA+IG1Db21tYW5kRW5kKSB7CisgICAgICAgICAgICBMT0dfRkFUQUwoInRvbyBtdWNoIGRhdGEgcmVhZCIpOworICAgICAgICAgICAgbURhdGFSZWFkID0gbUNvbW1hbmRFbmQ7CisgICAgICAgIH0gZWxzZSBpZiAobURhdGFSZWFkIDwgbUNvbW1hbmRFbmQpIHsKKyAgICAgICAgICAgIExPR19GQVRBTCgidG9vIGxpdHRsZSBkYXRhIHJlYWQiKTsKKyAgICAgICAgICAgIG1EYXRhUmVhZCA9IG1Db21tYW5kRW5kOworICAgICAgICB9CisKKyAgICAgICAgbUNvbW1hbmRCZWdpbiA9IG1Db21tYW5kRW5kOworICAgICAgICBtQ29tbWFuZEVuZCA9IDA7CisgICAgfQorCisgICAgdWludDMyX3QgZ2V0Q29tbWFuZExvYygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbUNvbW1hbmRCZWdpbjsKKyAgICB9CisKKyAgICB1aW50MzJfdCByZWFkKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtRGF0YVttRGF0YVJlYWQrK107CisgICAgfQorCisgICAgaW50MzJfdCByZWFkU2lnbmVkKCkKKyAgICB7CisgICAgICAgIGludDMyX3QgdmFsOworICAgICAgICBtZW1jcHkoJnZhbCwgJm1EYXRhW21EYXRhUmVhZCsrXSwgc2l6ZW9mKHZhbCkpOworICAgICAgICByZXR1cm4gdmFsOworICAgIH0KKworICAgIGZsb2F0IHJlYWRGbG9hdCgpCisgICAgeworICAgICAgICBmbG9hdCB2YWw7CisgICAgICAgIG1lbWNweSgmdmFsLCAmbURhdGFbbURhdGFSZWFkKytdLCBzaXplb2YodmFsKSk7CisgICAgICAgIHJldHVybiB2YWw7CisgICAgfQorCisgICAgdWludDY0X3QgcmVhZDY0KCkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IGxvID0gcmVhZCgpOworICAgICAgICB1aW50MzJfdCBoaSA9IHJlYWQoKTsKKyAgICAgICAgcmV0dXJuIChzdGF0aWNfY2FzdDx1aW50NjRfdD4oaGkpIDw8IDMyKSB8IGxvOworICAgIH0KKworICAgIElDb21wb3NlckNsaWVudDo6Q29sb3IgcmVhZENvbG9yKCkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IHZhbCA9IHJlYWQoKTsKKyAgICAgICAgcmV0dXJuIElDb21wb3NlckNsaWVudDo6Q29sb3J7CisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50OF90PigodmFsID4+ICAwKSAmIDB4ZmYpLAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4oKHZhbCA+PiAgOCkgJiAweGZmKSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KCh2YWwgPj4gMTYpICYgMHhmZiksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50OF90PigodmFsID4+IDI0KSAmIDB4ZmYpLAorICAgICAgICB9OworICAgIH0KKworICAgIC8vIG93bmVyc2hpcCBvZiBoYW5kbGUgaXMgbm90IHRyYW5zZmVycmVkCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiByZWFkSGFuZGxlKGJvb2wqIG91dFVzZUNhY2hlKQorICAgIHsKKyAgICAgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBudWxscHRyOworCisgICAgICAgIGludDMyX3QgaW5kZXggPSByZWFkU2lnbmVkKCk7CisgICAgICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSBzdGF0aWNfY2FzdDxpbnQzMl90PihJQ29tcG9zZXJDbGllbnQ6OkhhbmRsZUluZGV4OjpFTVBUWSk6CisgICAgICAgICAgICAqb3V0VXNlQ2FjaGUgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHN0YXRpY19jYXN0PGludDMyX3Q+KElDb21wb3NlckNsaWVudDo6SGFuZGxlSW5kZXg6OkNBQ0hFRCk6CisgICAgICAgICAgICAqb3V0VXNlQ2FjaGUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCkgPCBtRGF0YUhhbmRsZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlID0gbURhdGFIYW5kbGVzW2luZGV4XS5nZXROYXRpdmVIYW5kbGUoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQUxPR0UoImludmFsaWQgaGFuZGxlIGluZGV4ICV6dSIsIHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICpvdXRVc2VDYWNoZSA9IGZhbHNlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gaGFuZGxlOworICAgIH0KKworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogcmVhZEhhbmRsZSgpCisgICAgeworICAgICAgICBib29sIHVzZUNhY2hlOworICAgICAgICByZXR1cm4gcmVhZEhhbmRsZSgmdXNlQ2FjaGUpOworICAgIH0KKworICAgIC8vIG93bmVyc2hpcCBvZiBmZW5jZSBpcyB0cmFuc2ZlcnJlZAorICAgIGludCByZWFkRmVuY2UoKQorICAgIHsKKyAgICAgICAgYXV0byBoYW5kbGUgPSByZWFkSGFuZGxlKCk7CisgICAgICAgIGlmICghaGFuZGxlIHx8IGhhbmRsZS0+bnVtRmRzID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChoYW5kbGUtPm51bUZkcyAhPSAxKSB7CisgICAgICAgICAgICBBTE9HRSgiaW52YWxpZCBmZW5jZSBoYW5kbGUgd2l0aCAlZCBmZHMiLCBoYW5kbGUtPm51bUZkcyk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICBpbnQgZmQgPSBkdXAoaGFuZGxlLT5kYXRhWzBdKTsKKyAgICAgICAgaWYgKGZkIDwgMCkgeworICAgICAgICAgICAgQUxPR1coImZhaWxlZCB0byBkdXAgZmVuY2UgJWQiLCBoYW5kbGUtPmRhdGFbMF0pOworICAgICAgICAgICAgc3luY193YWl0KGhhbmRsZS0+ZGF0YVswXSwgLTEpOworICAgICAgICAgICAgZmQgPSAtMTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmZDsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRRdWV1ZVR5cGU+IG1RdWV1ZTsKKyAgICB1aW50MzJfdCBtRGF0YU1heFNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQzMl90W10+IG1EYXRhOworCisgICAgdWludDMyX3QgbURhdGFTaXplOworICAgIHVpbnQzMl90IG1EYXRhUmVhZDsKKworICAgIC8vIGJlZ2luL2VuZCBvZmZzZXRzIG9mIHRoZSBjdXJyZW50IGNvbW1hbmQKKyAgICB1aW50MzJfdCBtQ29tbWFuZEJlZ2luOworICAgIHVpbnQzMl90IG1Db21tYW5kRW5kOworCisgICAgaGlkbF92ZWM8aGlkbF9oYW5kbGU+IG1EYXRhSGFuZGxlczsKK307CisKK30gLy8gbmFtZXNwYWNlIFYyXzEKK30gLy8gbmFtZXNwYWNlIGNvbXBvc2VyCit9IC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfQ09NUE9TRVJfQ09NTUFORF9CVUZGRVJfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEtc2VydmljZS5yYyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTFiMGUzYgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xLXNlcnZpY2UucmMKQEAgLTAsMCArMSw2IEBACitzZXJ2aWNlIGh3Y29tcG9zZXItMi0xIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tcG9zZXJAMi4xLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwgYW5pbWF0aW9uCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBncmFwaGljcyBkcm1ycGMKKyAgICBjYXBhYmlsaXRpZXMgU1lTX05JQ0UKKyAgICBvbnJlc3RhcnQgcmVzdGFydCBzdXJmYWNlZmxpbmdlcgpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MmEzM2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMS1zZXJ2aWNlIgorCisjaW5jbHVkZSA8c2NoZWQuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL0lDb21wb3Nlci5oPgorCisjaW5jbHVkZSA8YmluZGVyL1Byb2Nlc3NTdGF0ZS5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbXBvc2VyOjpWMl8xOjpJQ29tcG9zZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICAvLyB0aGUgY29udmVudGlvbmFsIEhBTCBtaWdodCBzdGFydCBiaW5kZXIgc2VydmljZXMKKyAgICBhbmRyb2lkOjpQcm9jZXNzU3RhdGU6OmluaXRXaXRoRHJpdmVyKCIvZGV2L3ZuZGJpbmRlciIpOworICAgIGFuZHJvaWQ6OlByb2Nlc3NTdGF0ZTo6c2VsZigpLT5zZXRUaHJlYWRQb29sTWF4VGhyZWFkQ291bnQoNCk7CisgICAgYW5kcm9pZDo6UHJvY2Vzc1N0YXRlOjpzZWxmKCktPnN0YXJ0VGhyZWFkUG9vbCgpOworCisgICAgLy8gc2FtZSBhcyBTRiBtYWluIHRocmVhZAorICAgIHN0cnVjdCBzY2hlZF9wYXJhbSBwYXJhbSA9IHswfTsKKyAgICBwYXJhbS5zY2hlZF9wcmlvcml0eSA9IDI7CisgICAgaWYgKHNjaGVkX3NldHNjaGVkdWxlcigwLCBTQ0hFRF9GSUZPIHwgU0NIRURfUkVTRVRfT05fRk9SSywKKyAgICAgICAgICAgICAgICAmcGFyYW0pICE9IDApIHsKKyAgICAgICAgQUxPR0UoIkNvdWxkbid0IHNldCBTQ0hFRF9GSUZPOiAlZCIsIGVycm5vKTsKKyAgICB9CisKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElDb21wb3Nlcj4oNCk7Cit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdHlwZXMuaGFsIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZjBkZDhiCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3R5cGVzLmhhbApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbXBvc2VyQDIuMTsKKworLyoqIFJldHVybiBjb2RlcyBmcm9tIGFsbCBmdW5jdGlvbnMuICovCitlbnVtIEVycm9yIDogaW50MzJfdCB7CisgICAgTk9ORSAgICAgICAgICAgID0gMCwgLyoqIG5vIGVycm9yICovCisgICAgQkFEX0NPTkZJRyAgICAgID0gMSwgLyoqIGludmFsaWQgQ29uZmlnICovCisgICAgQkFEX0RJU1BMQVkgICAgID0gMiwgLyoqIGludmFsaWQgRGlzcGxheSAqLworICAgIEJBRF9MQVlFUiAgICAgICA9IDMsIC8qKiBpbnZhbGlkIExheWVyICovCisgICAgQkFEX1BBUkFNRVRFUiAgID0gNCwgLyoqIGludmFsaWQgd2lkdGgsIGhlaWdodCwgZXRjLiAqLworICAgIC8qKiA1IGlzIHJlc2VydmVkICovCisgICAgTk9fUkVTT1VSQ0VTICAgID0gNiwgLyoqIHRlbXBvcmFyeSBmYWlsdXJlIGR1ZSB0byByZXNvdXJjZSBjb250ZW50aW9uICovCisgICAgTk9UX1ZBTElEQVRFRCAgID0gNywgLyoqIHZhbGlkYXRlRGlzcGxheSBoYXMgbm90IGJlZW4gY2FsbGVkICovCisgICAgVU5TVVBQT1JURUQgICAgID0gOCwgLyoqIHBlcm1hbmVudCBmYWlsdXJlICovCit9OworCit0eXBlZGVmIHVpbnQzMl90IENvbmZpZzsKK3R5cGVkZWYgdWludDY0X3QgRGlzcGxheTsKK3R5cGVkZWYgdWludDY0X3QgTGF5ZXI7CmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2MzIzZDQKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDY2IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY19saWJyYXJ5X3N0YXRpYyB7CisgICAgbmFtZTogImxpYlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIiwKKyAgICBdLAorICAgIGNmbGFnczogWworICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdleHRyYSIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKKyAgICBleHBvcnRfaW5jbHVkZV9kaXJzOiBbIi4iXSwKK30KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJWMl8xVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsR3JhcGhpY3NDb21wb3NlclYyXzFUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21wb3NlckAyLjEiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmZtcSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlic3luYyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAibGliaHdjb21wb3Nlci1jb21tYW5kLWJ1ZmZlciIsCisgICAgICAgICJsaWJWdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzIiwKKyAgICAgICAgImxpYlZ0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzIiwKKyAgICAgICAgIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSIsCisgICAgXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1XYWxsIiwKKyAgICAgICAgIi1XZXh0cmEiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0KK30KZGlmZiAtLWdpdCBhL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmNwcCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2NmODRjCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuY3BwCkBAIC0wLDAgKzEsMzAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCisjaW5jbHVkZSAiVnRzSGFsR3JhcGhpY3NDb21wb3NlclRlc3RVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgdGVzdHMgeworCitDb21wb3Nlcjo6Q29tcG9zZXIoKSB7IGluaXQoKTsgfQorCit2b2lkIENvbXBvc2VyOjppbml0KCkgeworICBtQ29tcG9zZXIgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJQ29tcG9zZXI+KCk7CisgIEFTU0VSVF9ORShudWxscHRyLCBtQ29tcG9zZXIuZ2V0KCkpIDw8ICJmYWlsZWQgdG8gZ2V0IGNvbXBvc2VyIHNlcnZpY2UiOworCisgIHN0ZDo6dmVjdG9yPElDb21wb3Nlcjo6Q2FwYWJpbGl0eT4gY2FwYWJpbGl0aWVzID0gZ2V0Q2FwYWJpbGl0aWVzKCk7CisgIG1DYXBhYmlsaXRpZXMuaW5zZXJ0KGNhcGFiaWxpdGllcy5iZWdpbigpLCBjYXBhYmlsaXRpZXMuZW5kKCkpOworfQorCitzcDxJQ29tcG9zZXI+IENvbXBvc2VyOjpnZXRSYXcoKSBjb25zdCB7IHJldHVybiBtQ29tcG9zZXI7IH0KKworYm9vbCBDb21wb3Nlcjo6aGFzQ2FwYWJpbGl0eShJQ29tcG9zZXI6OkNhcGFiaWxpdHkgY2FwYWJpbGl0eSkgY29uc3QgeworICByZXR1cm4gbUNhcGFiaWxpdGllcy5jb3VudChjYXBhYmlsaXR5KSA+IDA7Cit9CisKK3N0ZDo6dmVjdG9yPElDb21wb3Nlcjo6Q2FwYWJpbGl0eT4gQ29tcG9zZXI6OmdldENhcGFiaWxpdGllcygpIHsKKyAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyOjpDYXBhYmlsaXR5PiBjYXBhYmlsaXRpZXM7CisgIG1Db21wb3Nlci0+Z2V0Q2FwYWJpbGl0aWVzKAorICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcENhcGFiaWxpdGllcykgeyBjYXBhYmlsaXRpZXMgPSB0bXBDYXBhYmlsaXRpZXM7IH0pOworCisgIHJldHVybiBjYXBhYmlsaXRpZXM7Cit9CisKK3N0ZDo6c3RyaW5nIENvbXBvc2VyOjpkdW1wRGVidWdJbmZvKCkgeworICBzdGQ6OnN0cmluZyBkZWJ1Z0luZm87CisgIG1Db21wb3Nlci0+ZHVtcERlYnVnSW5mbygKKyAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBEZWJ1Z0luZm8pIHsgZGVidWdJbmZvID0gdG1wRGVidWdJbmZvLmNfc3RyKCk7IH0pOworCisgIHJldHVybiBkZWJ1Z0luZm87Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxDb21wb3NlckNsaWVudD4gQ29tcG9zZXI6OmNyZWF0ZUNsaWVudCgpIHsKKyAgc3RkOjp1bmlxdWVfcHRyPENvbXBvc2VyQ2xpZW50PiBjbGllbnQ7CisgIG1Db21wb3Nlci0+Y3JlYXRlQ2xpZW50KFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wQ2xpZW50KSB7CisgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBjcmVhdGUgY2xpZW50IjsKKyAgICBjbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbXBvc2VyQ2xpZW50Pih0bXBDbGllbnQpOworICB9KTsKKworICByZXR1cm4gY2xpZW50OworfQorCitDb21wb3NlckNsaWVudDo6Q29tcG9zZXJDbGllbnQoY29uc3Qgc3A8SUNvbXBvc2VyQ2xpZW50PiYgY2xpZW50KQorICAgIDogbUNsaWVudChjbGllbnQpIHt9CisKK0NvbXBvc2VyQ2xpZW50Ojp+Q29tcG9zZXJDbGllbnQoKSB7CisgIGZvciAoYXV0byBpdCA6IG1EaXNwbGF5UmVzb3VyY2VzKSB7CisgICAgRGlzcGxheSBkaXNwbGF5ID0gaXQuZmlyc3Q7CisgICAgRGlzcGxheVJlc291cmNlJiByZXNvdXJjZSA9IGl0LnNlY29uZDsKKworICAgIGZvciAoYXV0byBsYXllciA6IHJlc291cmNlLmxheWVycykgeworICAgICAgRVhQRUNUX0VRKEVycm9yOjpOT05FLCBtQ2xpZW50LT5kZXN0cm95TGF5ZXIoZGlzcGxheSwgbGF5ZXIpKQorICAgICAgICAgIDw8ICJmYWlsZWQgdG8gZGVzdHJveSBsYXllciAiIDw8IGxheWVyOworICAgIH0KKworICAgIGlmIChyZXNvdXJjZS5pc1ZpcnR1YWwpIHsKKyAgICAgIEVYUEVDVF9FUShFcnJvcjo6Tk9ORSwgbUNsaWVudC0+ZGVzdHJveVZpcnR1YWxEaXNwbGF5KGRpc3BsYXkpKQorICAgICAgICAgIDw8ICJmYWlsZWQgdG8gZGVzdHJveSB2aXJ0dWFsIGRpc3BsYXkgIiA8PCBkaXNwbGF5OworICAgIH0KKyAgfQorICBtRGlzcGxheVJlc291cmNlcy5jbGVhcigpOworfQorCitzcDxJQ29tcG9zZXJDbGllbnQ+IENvbXBvc2VyQ2xpZW50OjpnZXRSYXcoKSBjb25zdCB7IHJldHVybiBtQ2xpZW50OyB9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OnJlZ2lzdGVyQ2FsbGJhY2soY29uc3Qgc3A8SUNvbXBvc2VyQ2FsbGJhY2s+JiBjYWxsYmFjaykgeworICBtQ2xpZW50LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrKTsKK30KKwordWludDMyX3QgQ29tcG9zZXJDbGllbnQ6OmdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQoKSB7CisgIHJldHVybiBtQ2xpZW50LT5nZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCk7Cit9CisKK0Rpc3BsYXkgQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZVZpcnR1YWxEaXNwbGF5KHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXRIaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qgb3V0cHV0QnVmZmVyU2xvdENvdW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQqIG91dEZvcm1hdCkgeworICBEaXNwbGF5IGRpc3BsYXkgPSAwOworICBtQ2xpZW50LT5jcmVhdGVWaXJ0dWFsRGlzcGxheSgKKyAgICAgIHdpZHRoLCBoZWlnaHQsIGZvcm1hdEhpbnQsIG91dHB1dEJ1ZmZlclNsb3RDb3VudCwKKyAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wRGlzcGxheSwgY29uc3QgYXV0byYgdG1wRm9ybWF0KSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gY3JlYXRlIHZpcnR1YWwgZGlzcGxheSI7CisgICAgICAgIGRpc3BsYXkgPSB0bXBEaXNwbGF5OworICAgICAgICAqb3V0Rm9ybWF0ID0gdG1wRm9ybWF0OworCisgICAgICAgIEFTU0VSVF9UUlVFKAorICAgICAgICAgICAgbURpc3BsYXlSZXNvdXJjZXMuaW5zZXJ0KHtkaXNwbGF5LCBEaXNwbGF5UmVzb3VyY2UodHJ1ZSl9KS5zZWNvbmQpCisgICAgICAgICAgICA8PCAiZHVwbGljYXRlZCB2aXJ0dWFsIGRpc3BsYXkgaWQgIiA8PCBkaXNwbGF5OworICAgICAgfSk7CisKKyAgcmV0dXJuIGRpc3BsYXk7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OmRlc3Ryb3lWaXJ0dWFsRGlzcGxheShEaXNwbGF5IGRpc3BsYXkpIHsKKyAgRXJyb3IgZXJyb3IgPSBtQ2xpZW50LT5kZXN0cm95VmlydHVhbERpc3BsYXkoZGlzcGxheSk7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpCisgICAgICA8PCAiZmFpbGVkIHRvIGRlc3Ryb3kgdmlydHVhbCBkaXNwbGF5ICIgPDwgZGlzcGxheTsKKworICBtRGlzcGxheVJlc291cmNlcy5lcmFzZShkaXNwbGF5KTsKK30KKworTGF5ZXIgQ29tcG9zZXJDbGllbnQ6OmNyZWF0ZUxheWVyKERpc3BsYXkgZGlzcGxheSwgdWludDMyX3QgYnVmZmVyU2xvdENvdW50KSB7CisgIExheWVyIGxheWVyID0gMDsKKyAgbUNsaWVudC0+Y3JlYXRlTGF5ZXIoCisgICAgICBkaXNwbGF5LCBidWZmZXJTbG90Q291bnQsCisgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcExheWVyKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gY3JlYXRlIGxheWVyIjsKKyAgICAgICAgbGF5ZXIgPSB0bXBMYXllcjsKKworICAgICAgICBhdXRvIHJlc291cmNlSXQgPSBtRGlzcGxheVJlc291cmNlcy5maW5kKGRpc3BsYXkpOworICAgICAgICBpZiAocmVzb3VyY2VJdCA9PSBtRGlzcGxheVJlc291cmNlcy5lbmQoKSkgeworICAgICAgICAgIHJlc291cmNlSXQgPQorICAgICAgICAgICAgICBtRGlzcGxheVJlc291cmNlcy5pbnNlcnQoe2Rpc3BsYXksIERpc3BsYXlSZXNvdXJjZShmYWxzZSl9KS5maXJzdDsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0VSVF9UUlVFKHJlc291cmNlSXQtPnNlY29uZC5sYXllcnMuaW5zZXJ0KGxheWVyKS5zZWNvbmQpCisgICAgICAgICAgICA8PCAiZHVwbGljYXRlZCBsYXllciBpZCAiIDw8IGxheWVyOworICAgICAgfSk7CisKKyAgcmV0dXJuIGxheWVyOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpkZXN0cm95TGF5ZXIoRGlzcGxheSBkaXNwbGF5LCBMYXllciBsYXllcikgeworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPmRlc3Ryb3lMYXllcihkaXNwbGF5LCBsYXllcik7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpIDw8ICJmYWlsZWQgdG8gZGVzdHJveSBsYXllciAiIDw8IGxheWVyOworCisgIGF1dG8gcmVzb3VyY2VJdCA9IG1EaXNwbGF5UmVzb3VyY2VzLmZpbmQoZGlzcGxheSk7CisgIEFTU0VSVF9ORShtRGlzcGxheVJlc291cmNlcy5lbmQoKSwgcmVzb3VyY2VJdCk7CisgIHJlc291cmNlSXQtPnNlY29uZC5sYXllcnMuZXJhc2UobGF5ZXIpOworfQorCitDb25maWcgQ29tcG9zZXJDbGllbnQ6OmdldEFjdGl2ZUNvbmZpZyhEaXNwbGF5IGRpc3BsYXkpIHsKKyAgQ29uZmlnIGNvbmZpZyA9IDA7CisgIG1DbGllbnQtPmdldEFjdGl2ZUNvbmZpZygKKyAgICAgIGRpc3BsYXksIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wQ29uZmlnKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IGFjdGl2ZSBjb25maWciOworICAgICAgICBjb25maWcgPSB0bXBDb25maWc7CisgICAgICB9KTsKKworICByZXR1cm4gY29uZmlnOworfQorCitib29sIENvbXBvc2VyQ2xpZW50OjpnZXRDbGllbnRUYXJnZXRTdXBwb3J0KERpc3BsYXkgZGlzcGxheSwgdWludDMyX3Qgd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGhlaWdodCwgUGl4ZWxGb3JtYXQgZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRhc3BhY2UgZGF0YXNwYWNlKSB7CisgIEVycm9yIGVycm9yID0gbUNsaWVudC0+Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydChkaXNwbGF5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhc3BhY2UpOworICByZXR1cm4gZXJyb3IgPT0gRXJyb3I6Ok5PTkU7Cit9CisKK3N0ZDo6dmVjdG9yPENvbG9yTW9kZT4gQ29tcG9zZXJDbGllbnQ6OmdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5KSB7CisgIHN0ZDo6dmVjdG9yPENvbG9yTW9kZT4gbW9kZXM7CisgIG1DbGllbnQtPmdldENvbG9yTW9kZXMoCisgICAgICBkaXNwbGF5LCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcE1vZGUpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBnZXQgY29sb3IgbW9kZSI7CisgICAgICAgIG1vZGVzID0gdG1wTW9kZTsKKyAgICAgIH0pOworCisgIHJldHVybiBtb2RlczsKK30KKworaW50MzJfdCBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheUF0dHJpYnV0ZSgKKyAgICBEaXNwbGF5IGRpc3BsYXksIENvbmZpZyBjb25maWcsIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlIGF0dHJpYnV0ZSkgeworICBpbnQzMl90IHZhbHVlID0gMDsKKyAgbUNsaWVudC0+Z2V0RGlzcGxheUF0dHJpYnV0ZShkaXNwbGF5LCBjb25maWcsIGF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcFZhbHVlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJmYWlsZWQgdG8gZ2V0IGRpc3BsYXkgYXR0cmlidXRlIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdG1wVmFsdWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgcmV0dXJuIHZhbHVlOworfQorCitzdGQ6OnZlY3RvcjxDb25maWc+IENvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5Q29uZmlncyhEaXNwbGF5IGRpc3BsYXkpIHsKKyAgc3RkOjp2ZWN0b3I8Q29uZmlnPiBjb25maWdzOworICBtQ2xpZW50LT5nZXREaXNwbGF5Q29uZmlncygKKyAgICAgIGRpc3BsYXksIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wQ29uZmlncykgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIGdldCBkaXNwbGF5IGNvbmZpZ3MiOworICAgICAgICBjb25maWdzID0gdG1wQ29uZmlnczsKKyAgICAgIH0pOworCisgIHJldHVybiBjb25maWdzOworfQorCitzdGQ6OnN0cmluZyBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5KSB7CisgIHN0ZDo6c3RyaW5nIG5hbWU7CisgIG1DbGllbnQtPmdldERpc3BsYXlOYW1lKAorICAgICAgZGlzcGxheSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBOYW1lKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IGRpc3BsYXkgbmFtZSI7CisgICAgICAgIG5hbWUgPSB0bXBOYW1lLmNfc3RyKCk7CisgICAgICB9KTsKKworICByZXR1cm4gbmFtZTsKK30KKworSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSBDb21wb3NlckNsaWVudDo6Z2V0RGlzcGxheVR5cGUoRGlzcGxheSBkaXNwbGF5KSB7CisgIElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGUgdHlwZSA9IElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGU6OklOVkFMSUQ7CisgIG1DbGllbnQtPmdldERpc3BsYXlUeXBlKAorICAgICAgZGlzcGxheSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBUeXBlKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IGRpc3BsYXkgdHlwZSI7CisgICAgICAgIHR5cGUgPSB0bXBUeXBlOworICAgICAgfSk7CisKKyAgcmV0dXJuIHR5cGU7Cit9CisKK2Jvb2wgQ29tcG9zZXJDbGllbnQ6OmdldERvemVTdXBwb3J0KERpc3BsYXkgZGlzcGxheSkgeworICBib29sIHN1cHBvcnQgPSBmYWxzZTsKKyAgbUNsaWVudC0+Z2V0RG96ZVN1cHBvcnQoCisgICAgICBkaXNwbGF5LCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcFN1cHBvcnQpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBnZXQgZG96ZSBzdXBwb3J0IjsKKyAgICAgICAgc3VwcG9ydCA9IHRtcFN1cHBvcnQ7CisgICAgICB9KTsKKworICByZXR1cm4gc3VwcG9ydDsKK30KKworc3RkOjp2ZWN0b3I8SGRyPiBDb21wb3NlckNsaWVudDo6Z2V0SGRyQ2FwYWJpbGl0aWVzKAorICAgIERpc3BsYXkgZGlzcGxheSwgZmxvYXQqIG91dE1heEx1bWluYW5jZSwgZmxvYXQqIG91dE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgZmxvYXQqIG91dE1pbkx1bWluYW5jZSkgeworICBzdGQ6OnZlY3RvcjxIZHI+IHR5cGVzOworICBtQ2xpZW50LT5nZXRIZHJDYXBhYmlsaXRpZXMoCisgICAgICBkaXNwbGF5LAorICAgICAgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBUeXBlcywKKyAgICAgICAgICBjb25zdCBhdXRvJiB0bXBNYXhMdW1pbmFuY2UsIGNvbnN0IGF1dG8mIHRtcE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgY29uc3QgYXV0byYgdG1wTWluTHVtaW5hbmNlKSB7CisgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpIDw8ICJmYWlsZWQgdG8gZ2V0IEhEUiBjYXBhYmlsaXRpZXMiOworICAgICAgICB0eXBlcyA9IHRtcFR5cGVzOworICAgICAgICAqb3V0TWF4THVtaW5hbmNlID0gdG1wTWF4THVtaW5hbmNlOworICAgICAgICAqb3V0TWF4QXZlcmFnZUx1bWluYW5jZSA9IHRtcE1heEF2ZXJhZ2VMdW1pbmFuY2U7CisgICAgICAgICpvdXRNaW5MdW1pbmFuY2UgPSB0bXBNaW5MdW1pbmFuY2U7CisgICAgICB9KTsKKworICByZXR1cm4gdHlwZXM7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OnNldENsaWVudFRhcmdldFNsb3RDb3VudChEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KSB7CisgIEVycm9yIGVycm9yID0KKyAgICAgIG1DbGllbnQtPnNldENsaWVudFRhcmdldFNsb3RDb3VudChkaXNwbGF5LCBjbGllbnRUYXJnZXRTbG90Q291bnQpOworICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIGVycm9yKSA8PCAiZmFpbGVkIHRvIHNldCBjbGllbnQgdGFyZ2V0IHNsb3QgY291bnQiOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKSB7CisgIEVycm9yIGVycm9yID0gbUNsaWVudC0+c2V0QWN0aXZlQ29uZmlnKGRpc3BsYXksIGNvbmZpZyk7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpIDw8ICJmYWlsZWQgdG8gc2V0IGFjdGl2ZSBjb25maWciOworfQorCit2b2lkIENvbXBvc2VyQ2xpZW50OjpzZXRDb2xvck1vZGUoRGlzcGxheSBkaXNwbGF5LCBDb2xvck1vZGUgbW9kZSkgeworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPnNldENvbG9yTW9kZShkaXNwbGF5LCBtb2RlKTsKKyAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCBlcnJvcikgPDwgImZhaWxlZCB0byBzZXQgY29sb3IgbW9kZSI7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OnNldFBvd2VyTW9kZShEaXNwbGF5IGRpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGUgbW9kZSkgeworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPnNldFBvd2VyTW9kZShkaXNwbGF5LCBtb2RlKTsKKyAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCBlcnJvcikgPDwgImZhaWxlZCB0byBzZXQgcG93ZXIgbW9kZSI7Cit9CisKK3ZvaWQgQ29tcG9zZXJDbGllbnQ6OnNldFZzeW5jRW5hYmxlZChEaXNwbGF5IGRpc3BsYXksIGJvb2wgZW5hYmxlZCkgeworICBJQ29tcG9zZXJDbGllbnQ6OlZzeW5jIHZzeW5jID0gKGVuYWJsZWQpID8gSUNvbXBvc2VyQ2xpZW50OjpWc3luYzo6RU5BQkxFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBJQ29tcG9zZXJDbGllbnQ6OlZzeW5jOjpESVNBQkxFOworICBFcnJvciBlcnJvciA9IG1DbGllbnQtPnNldFZzeW5jRW5hYmxlZChkaXNwbGF5LCB2c3luYyk7CisgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgZXJyb3IpIDw8ICJmYWlsZWQgdG8gc2V0IHZzeW5jIG1vZGUiOworfQorCit9ICAvLyBuYW1lc3BhY2UgdGVzdHMKK30gIC8vIG5hbWVzcGFjZSBWMl8xCit9ICAvLyBuYW1lc3BhY2UgY29tcG9zZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvMi4xL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuaCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGI1NzI2NAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVGVzdFV0aWxzLmgKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIFZUU19IQUxfR1JBUEhJQ1NfQ09NUE9TRVJfVVRJTFMKKyNkZWZpbmUgVlRTX0hBTF9HUkFQSElDU19DT01QT1NFUl9VVElMUworCisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHN0cmluZz4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9jb21wb3Nlci8yLjEvSUNvbXBvc2VyLmg+CisjaW5jbHVkZSA8dXRpbHMvU3Ryb25nUG9pbnRlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgdGVzdHMgeworCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6Q29sb3JNb2RlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkRhdGFzcGFjZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpIZHI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7CisKK2NsYXNzIENvbXBvc2VyQ2xpZW50OworCisvLyBBIHdyYXBwZXIgdG8gSUNvbXBvc2VyLgorY2xhc3MgQ29tcG9zZXIgeworIHB1YmxpYzoKKyAgQ29tcG9zZXIoKTsKKworICBzcDxJQ29tcG9zZXI+IGdldFJhdygpIGNvbnN0OworCisgIC8vIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBjb21wb3NlciBzdXBwb3J0cyB0aGUgc3BlY2lmaWVkIGNhcGFiaWxpdHkuCisgIGJvb2wgaGFzQ2FwYWJpbGl0eShJQ29tcG9zZXI6OkNhcGFiaWxpdHkgY2FwYWJpbGl0eSkgY29uc3Q7CisKKyAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyOjpDYXBhYmlsaXR5PiBnZXRDYXBhYmlsaXRpZXMoKTsKKyAgc3RkOjpzdHJpbmcgZHVtcERlYnVnSW5mbygpOworICBzdGQ6OnVuaXF1ZV9wdHI8Q29tcG9zZXJDbGllbnQ+IGNyZWF0ZUNsaWVudCgpOworCisgcHJpdmF0ZToKKyAgdm9pZCBpbml0KCk7CisKKyAgc3A8SUNvbXBvc2VyPiBtQ29tcG9zZXI7CisgIHN0ZDo6dW5vcmRlcmVkX3NldDxJQ29tcG9zZXI6OkNhcGFiaWxpdHk+IG1DYXBhYmlsaXRpZXM7Cit9OworCisvLyBBIHdyYXBwZXIgdG8gSUNvbXBvc2VyQ2xpZW50LgorY2xhc3MgQ29tcG9zZXJDbGllbnQgeworIHB1YmxpYzoKKyAgQ29tcG9zZXJDbGllbnQoY29uc3Qgc3A8SUNvbXBvc2VyQ2xpZW50PiYgY2xpZW50KTsKKyAgfkNvbXBvc2VyQ2xpZW50KCk7CisKKyAgc3A8SUNvbXBvc2VyQ2xpZW50PiBnZXRSYXcoKSBjb25zdDsKKworICB2b2lkIHJlZ2lzdGVyQ2FsbGJhY2soY29uc3Qgc3A8SUNvbXBvc2VyQ2FsbGJhY2s+JiBjYWxsYmFjayk7CisgIHVpbnQzMl90IGdldE1heFZpcnR1YWxEaXNwbGF5Q291bnQoKTsKKworICBEaXNwbGF5IGNyZWF0ZVZpcnR1YWxEaXNwbGF5KHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0SGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBvdXRwdXRCdWZmZXJTbG90Q291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGl4ZWxGb3JtYXQqIG91dEZvcm1hdCk7CisgIHZvaWQgZGVzdHJveVZpcnR1YWxEaXNwbGF5KERpc3BsYXkgZGlzcGxheSk7CisKKyAgTGF5ZXIgY3JlYXRlTGF5ZXIoRGlzcGxheSBkaXNwbGF5LCB1aW50MzJfdCBidWZmZXJTbG90Q291bnQpOworICB2b2lkIGRlc3Ryb3lMYXllcihEaXNwbGF5IGRpc3BsYXksIExheWVyIGxheWVyKTsKKworICBDb25maWcgZ2V0QWN0aXZlQ29uZmlnKERpc3BsYXkgZGlzcGxheSk7CisgIGJvb2wgZ2V0Q2xpZW50VGFyZ2V0U3VwcG9ydChEaXNwbGF5IGRpc3BsYXksIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQaXhlbEZvcm1hdCBmb3JtYXQsIERhdGFzcGFjZSBkYXRhc3BhY2UpOworICBzdGQ6OnZlY3RvcjxDb2xvck1vZGU+IGdldENvbG9yTW9kZXMoRGlzcGxheSBkaXNwbGF5KTsKKyAgaW50MzJfdCBnZXREaXNwbGF5QXR0cmlidXRlKERpc3BsYXkgZGlzcGxheSwgQ29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlIGF0dHJpYnV0ZSk7CisgIHN0ZDo6dmVjdG9yPENvbmZpZz4gZ2V0RGlzcGxheUNvbmZpZ3MoRGlzcGxheSBkaXNwbGF5KTsKKyAgc3RkOjpzdHJpbmcgZ2V0RGlzcGxheU5hbWUoRGlzcGxheSBkaXNwbGF5KTsKKyAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSBnZXREaXNwbGF5VHlwZShEaXNwbGF5IGRpc3BsYXkpOworICBib29sIGdldERvemVTdXBwb3J0KERpc3BsYXkgZGlzcGxheSk7CisgIHN0ZDo6dmVjdG9yPEhkcj4gZ2V0SGRyQ2FwYWJpbGl0aWVzKERpc3BsYXkgZGlzcGxheSwgZmxvYXQqIG91dE1heEx1bWluYW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQqIG91dE1heEF2ZXJhZ2VMdW1pbmFuY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0KiBvdXRNaW5MdW1pbmFuY2UpOworCisgIHZvaWQgc2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KERpc3BsYXkgZGlzcGxheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY2xpZW50VGFyZ2V0U2xvdENvdW50KTsKKyAgdm9pZCBzZXRBY3RpdmVDb25maWcoRGlzcGxheSBkaXNwbGF5LCBDb25maWcgY29uZmlnKTsKKyAgdm9pZCBzZXRDb2xvck1vZGUoRGlzcGxheSBkaXNwbGF5LCBDb2xvck1vZGUgbW9kZSk7CisgIHZvaWQgc2V0UG93ZXJNb2RlKERpc3BsYXkgZGlzcGxheSwgSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGUgbW9kZSk7CisgIHZvaWQgc2V0VnN5bmNFbmFibGVkKERpc3BsYXkgZGlzcGxheSwgYm9vbCBlbmFibGVkKTsKKworIHByaXZhdGU6CisgIHNwPElDb21wb3NlckNsaWVudD4gbUNsaWVudDsKKworICAvLyBLZWVwIHRyYWNrIG9mIGFsbCB2aXJ0dWFsIGRpc3BsYXlzIGFuZCBsYXllcnMuICBXaGVuIGEgdGVzdCBmYWlscyB3aXRoCisgIC8vIEFTU0VSVF8qLCB0aGUgZGVzdHJ1Y3RvciB3aWxsIGNsZWFuIHVwIHRoZSByZXNvdXJjZXMgZm9yIHRoZSB0ZXN0LgorICBzdHJ1Y3QgRGlzcGxheVJlc291cmNlIHsKKyAgICBEaXNwbGF5UmVzb3VyY2UoYm9vbCBpc1ZpcnR1YWxfKSA6IGlzVmlydHVhbChpc1ZpcnR1YWxfKSB7fQorCisgICAgYm9vbCBpc1ZpcnR1YWw7CisgICAgc3RkOjp1bm9yZGVyZWRfc2V0PExheWVyPiBsYXllcnM7CisgIH07CisgIHN0ZDo6dW5vcmRlcmVkX21hcDxEaXNwbGF5LCBEaXNwbGF5UmVzb3VyY2U+IG1EaXNwbGF5UmVzb3VyY2VzOworfTsKKworfSAgLy8gbmFtZXNwYWNlIHRlc3RzCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIGNvbXBvc2VyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBWVFNfSEFMX0dSQVBISUNTX0NPTVBPU0VSX1VUSUxTCmRpZmYgLS1naXQgYS9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NDb21wb3NlclYyXzFUYXJnZXRUZXN0LmNwcCBiL2dyYXBoaWNzL2NvbXBvc2VyLzIuMS92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc0NvbXBvc2VyVjJfMVRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NzIyMmYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9jb21wb3Nlci8yLjEvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NDb21wb3NlclYyXzFUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDgzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiZ3JhcGhpY3NfY29tcG9zZXJfaGlkbF9oYWxfdGVzdCIKKworI2luY2x1ZGUgPElDb21wb3NlckNvbW1hbmRCdWZmZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgIlZ0c0hhbEdyYXBoaWNzQ29tcG9zZXJUZXN0VXRpbHMuaCIKKyNpbmNsdWRlICJWdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oIgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlIDxhbGdvcml0aG0+CisjaW5jbHVkZSA8YXJyYXk+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBjb21wb3NlciB7CituYW1lc3BhY2UgVjJfMSB7CituYW1lc3BhY2UgdGVzdHMgeworbmFtZXNwYWNlIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkNvbG9yTW9kZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpDb2xvclRyYW5zZm9ybTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpEYXRhc3BhY2U7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6UGl4ZWxGb3JtYXQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6OmNvbW1vbjo6VjFfMDo6VHJhbnNmb3JtOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjptYXBwZXI6OlYyXzA6OklNYXBwZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6dGVzdHM6OkdyYWxsb2M7Cit1c2luZyBHcmFsbG9jRXJyb3IgPSBhbmRyb2lkOjpoYXJkd2FyZTo6Z3JhcGhpY3M6Om1hcHBlcjo6VjJfMDo6RXJyb3I7CisKKy8vIElDb21wb3NlckNhbGxiYWNrIHRvIGJlIGluc3RhbGxlZCB3aXRoIElDb21wb3NlckNsaWVudDo6cmVnaXN0ZXJDYWxsYmFjay4KK2NsYXNzIEdyYXBoaWNzQ29tcG9zZXJDYWxsYmFjayA6IHB1YmxpYyBJQ29tcG9zZXJDYWxsYmFjayB7CisgcHVibGljOgorICB2b2lkIHNldFZzeW5jQWxsb3dlZChib29sIGFsbG93ZWQpIHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgIG1Wc3luY0FsbG93ZWQgPSBhbGxvd2VkOworICB9CisKKyAgc3RkOjp2ZWN0b3I8RGlzcGxheT4gZ2V0RGlzcGxheXMoKSBjb25zdCB7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICByZXR1cm4gc3RkOjp2ZWN0b3I8RGlzcGxheT4obURpc3BsYXlzLmJlZ2luKCksIG1EaXNwbGF5cy5lbmQoKSk7CisgIH0KKworICBpbnQgZ2V0SW52YWxpZEhvdHBsdWdDb3VudCgpIGNvbnN0IHsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgIHJldHVybiBtSW52YWxpZEhvdHBsdWdDb3VudDsKKyAgfQorCisgIGludCBnZXRJbnZhbGlkUmVmcmVzaENvdW50KCkgY29uc3QgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgcmV0dXJuIG1JbnZhbGlkUmVmcmVzaENvdW50OworICB9CisKKyAgaW50IGdldEludmFsaWRWc3luY0NvdW50KCkgY29uc3QgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisgICAgcmV0dXJuIG1JbnZhbGlkVnN5bmNDb3VudDsKKyAgfQorCisgcHJpdmF0ZToKKyAgUmV0dXJuPHZvaWQ+IG9uSG90cGx1ZyhEaXNwbGF5IGRpc3BsYXksIENvbm5lY3Rpb24gY29ubmVjdGlvbikgb3ZlcnJpZGUgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisKKyAgICBpZiAoY29ubmVjdGlvbiA9PSBDb25uZWN0aW9uOjpDT05ORUNURUQpIHsKKyAgICAgIGlmICghbURpc3BsYXlzLmluc2VydChkaXNwbGF5KS5zZWNvbmQpIHsKKyAgICAgICAgbUludmFsaWRIb3RwbHVnQ291bnQrKzsKKyAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGNvbm5lY3Rpb24gPT0gQ29ubmVjdGlvbjo6RElTQ09OTkVDVEVEKSB7CisgICAgICBpZiAoIW1EaXNwbGF5cy5lcmFzZShkaXNwbGF5KSkgeworICAgICAgICBtSW52YWxpZEhvdHBsdWdDb3VudCsrOworICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICBSZXR1cm48dm9pZD4gb25SZWZyZXNoKERpc3BsYXkgZGlzcGxheSkgb3ZlcnJpZGUgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisKKyAgICBpZiAobURpc3BsYXlzLmNvdW50KGRpc3BsYXkpID09IDApIHsKKyAgICAgIG1JbnZhbGlkUmVmcmVzaENvdW50Kys7CisgICAgfQorCisgICAgcmV0dXJuIFZvaWQoKTsKKyAgfQorCisgIFJldHVybjx2b2lkPiBvblZzeW5jKERpc3BsYXkgZGlzcGxheSwgaW50NjRfdCkgb3ZlcnJpZGUgeworICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1NdXRleCk7CisKKyAgICBpZiAoIW1Wc3luY0FsbG93ZWQgfHwgbURpc3BsYXlzLmNvdW50KGRpc3BsYXkpID09IDApIHsKKyAgICAgIG1JbnZhbGlkVnN5bmNDb3VudCsrOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7CisgIH0KKworICBtdXRhYmxlIHN0ZDo6bXV0ZXggbU11dGV4OworICAvLyB0aGUgc2V0IG9mIGFsbCBjdXJyZW50bHkgY29ubmVjdGVkIGRpc3BsYXlzCisgIHN0ZDo6dW5vcmRlcmVkX3NldDxEaXNwbGF5PiBtRGlzcGxheXM7CisgIC8vIHRydWUgb25seSB3aGVuIHZzeW5jIGlzIGVuYWJsZWQKKyAgYm9vbCBtVnN5bmNBbGxvd2VkID0gZmFsc2U7CisKKyAgLy8gdHJhY2sgaW52YWxpZCBjYWxsYmFja3MKKyAgaW50IG1JbnZhbGlkSG90cGx1Z0NvdW50ID0gMDsKKyAgaW50IG1JbnZhbGlkUmVmcmVzaENvdW50ID0gMDsKKyAgaW50IG1JbnZhbGlkVnN5bmNDb3VudCA9IDA7Cit9OworCitjbGFzcyBHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHByb3RlY3RlZDoKKyAgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtQ29tcG9zZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbXBvc2VyPigpKTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtQ29tcG9zZXJDbGllbnQgPSBtQ29tcG9zZXItPmNyZWF0ZUNsaWVudCgpKTsKKworICAgIG1Db21wb3NlckNhbGxiYWNrID0gbmV3IEdyYXBoaWNzQ29tcG9zZXJDYWxsYmFjazsKKyAgICBtQ29tcG9zZXJDbGllbnQtPnJlZ2lzdGVyQ2FsbGJhY2sobUNvbXBvc2VyQ2FsbGJhY2spOworCisgICAgLy8gYXNzdW1lIHRoZSBmaXJzdCBkaXNwbGF5IGlzIHByaW1hcnkgYW5kIGlzIG5ldmVyIHJlbW92ZWQKKyAgICBtUHJpbWFyeURpc3BsYXkgPSB3YWl0Rm9yRmlyc3REaXNwbGF5KCk7CisgIH0KKworICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgIGlmIChtQ29tcG9zZXJDYWxsYmFjayAhPSBudWxscHRyKSB7CisgICAgICBFWFBFQ1RfRVEoMCwgbUNvbXBvc2VyQ2FsbGJhY2stPmdldEludmFsaWRIb3RwbHVnQ291bnQoKSk7CisgICAgICBFWFBFQ1RfRVEoMCwgbUNvbXBvc2VyQ2FsbGJhY2stPmdldEludmFsaWRSZWZyZXNoQ291bnQoKSk7CisgICAgICBFWFBFQ1RfRVEoMCwgbUNvbXBvc2VyQ2FsbGJhY2stPmdldEludmFsaWRWc3luY0NvdW50KCkpOworICAgIH0KKyAgfQorCisgIC8vIHVzZSB0aGUgc2xvdCBjb3VudCB1c3VhbGx5IHNldCBieSBTRgorICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IGtCdWZmZXJTbG90Q291bnQgPSA2NDsKKworICBzdGQ6OnVuaXF1ZV9wdHI8Q29tcG9zZXI+IG1Db21wb3NlcjsKKyAgc3RkOjp1bmlxdWVfcHRyPENvbXBvc2VyQ2xpZW50PiBtQ29tcG9zZXJDbGllbnQ7CisgIHNwPEdyYXBoaWNzQ29tcG9zZXJDYWxsYmFjaz4gbUNvbXBvc2VyQ2FsbGJhY2s7CisgIC8vIHRoZSBmaXJzdCBkaXNwbGF5IGFuZCBpcyBhc3N1bWVkIG5ldmVyIHRvIGJlIHJlbW92ZWQKKyAgRGlzcGxheSBtUHJpbWFyeURpc3BsYXk7CisKKyBwcml2YXRlOgorICBEaXNwbGF5IHdhaXRGb3JGaXJzdERpc3BsYXkoKSB7CisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgIHN0ZDo6dmVjdG9yPERpc3BsYXk+IGRpc3BsYXlzID0gbUNvbXBvc2VyQ2FsbGJhY2stPmdldERpc3BsYXlzKCk7CisgICAgICBpZiAoZGlzcGxheXMuZW1wdHkoKSkgeworICAgICAgICB1c2xlZXAoNSAqIDEwMDApOworICAgICAgICBjb250aW51ZTsKKyAgICAgIH0KKworICAgICAgcmV0dXJuIGRpc3BsYXlzWzBdOworICAgIH0KKyAgfQorfTsKKworLyoqCisgKiBUZXN0IElDb21wb3Nlcjo6Z2V0Q2FwYWJpbGl0aWVzLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXI6OmdldENhcGFiaWxpdGllcyByZXR1cm5zIG5vIGludmFsaWQgY2FwYWJpbGl0aWVzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBHZXRDYXBhYmlsaXRpZXMpIHsKKyAgYXV0byBjYXBhYmlsaXRpZXMgPSBtQ29tcG9zZXItPmdldENhcGFiaWxpdGllcygpOworICBBU1NFUlRfRVEoY2FwYWJpbGl0aWVzLmVuZCgpLAorICAgICAgICAgICAgc3RkOjpmaW5kKGNhcGFiaWxpdGllcy5iZWdpbigpLCBjYXBhYmlsaXRpZXMuZW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgSUNvbXBvc2VyOjpDYXBhYmlsaXR5OjpJTlZBTElEKSk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXI6OmR1bXBEZWJ1Z0luZm8uCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIER1bXBEZWJ1Z0luZm8pIHsgbUNvbXBvc2VyLT5kdW1wRGVidWdJbmZvKCk7IH0KKworLyoqCisgKiBUZXN0IElDb21wb3Nlcjo6Y3JlYXRlQ2xpZW50LgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQgaXMgYSBzaW5nbGV0b24uCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIENyZWF0ZUNsaWVudFNpbmdsZXRvbikgeworICBtQ29tcG9zZXItPmdldFJhdygpLT5jcmVhdGVDbGllbnQoWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJikgeworICAgIEVYUEVDVF9FUShFcnJvcjo6Tk9fUkVTT1VSQ0VTLCB0bXBFcnJvcik7CisgIH0pOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpjcmVhdGVWaXJ0dWFsRGlzcGxheSBhbmQKKyAqIElDb21wb3NlckNsaWVudDo6ZGVzdHJveVZpcnR1YWxEaXNwbGF5LgorICoKKyAqIFRlc3QgdGhhdCB2aXJ0dWFsIGRpc3BsYXlzIGNhbiBiZSBjcmVhdGVkIGFuZCBoYXMgdGhlIGNvcnJlY3QgZGlzcGxheSB0eXBlLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBDcmVhdGVWaXJ0dWFsRGlzcGxheSkgeworICBpZiAobUNvbXBvc2VyQ2xpZW50LT5nZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgPT0gMCkgeworICAgIEdURVNUX1NVQ0NFRUQoKSA8PCAibm8gdmlydHVhbCBkaXNwbGF5IHN1cHBvcnQiOworICAgIHJldHVybjsKKyAgfQorCisgIERpc3BsYXkgZGlzcGxheTsKKyAgUGl4ZWxGb3JtYXQgZm9ybWF0OworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShkaXNwbGF5ID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVWaXJ0dWFsRGlzcGxheSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0LCA2NCwgUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQnVmZmVyU2xvdENvdW50LCAmZm9ybWF0KSk7CisKKyAgLy8gdGVzdCBkaXNwbGF5IHR5cGUKKyAgSUNvbXBvc2VyQ2xpZW50OjpEaXNwbGF5VHlwZSB0eXBlID0gbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5VHlwZShkaXNwbGF5KTsKKyAgRVhQRUNUX0VRKElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGU6OlZJUlRVQUwsIHR5cGUpOworCisgIG1Db21wb3NlckNsaWVudC0+ZGVzdHJveVZpcnR1YWxEaXNwbGF5KGRpc3BsYXkpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpjcmVhdGVMYXllciBhbmQgSUNvbXBvc2VyQ2xpZW50OjpkZXN0cm95TGF5ZXIuCisgKgorICogVGVzdCB0aGF0IGxheWVycyBjYW4gYmUgY3JlYXRlZCBhbmQgZGVzdHJveWVkLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBDcmVhdGVMYXllcikgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbUNvbXBvc2VyQ2xpZW50LT5kZXN0cm95TGF5ZXIobVByaW1hcnlEaXNwbGF5LCBsYXllcik7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlOYW1lLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBHZXREaXNwbGF5TmFtZSkgeworICBtQ29tcG9zZXJDbGllbnQtPmdldERpc3BsYXlOYW1lKG1QcmltYXJ5RGlzcGxheSk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlUeXBlLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlUeXBlIHJldHVybnMgdGhlIGNvcnJlY3QgZGlzcGxheSB0eXBlCisgKiBmb3IgdGhlIHByaW1hcnkgZGlzcGxheS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgR2V0RGlzcGxheVR5cGUpIHsKKyAgQVNTRVJUX0VRKElDb21wb3NlckNsaWVudDo6RGlzcGxheVR5cGU6OlBIWVNJQ0FMLAorICAgICAgICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5VHlwZShtUHJpbWFyeURpc3BsYXkpKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydC4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpnZXRDbGllbnRUYXJnZXRTdXBwb3J0IHJldHVybnMgdHJ1ZSBmb3IgdGhlCisgKiByZXF1aXJlZCBjbGllbnQgdGFyZ2V0cy4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgR2V0Q2xpZW50VGFyZ2V0U3VwcG9ydCkgeworICBzdGQ6OnZlY3RvcjxDb25maWc+IGNvbmZpZ3MgPQorICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5Q29uZmlncyhtUHJpbWFyeURpc3BsYXkpOworICBmb3IgKGF1dG8gY29uZmlnIDogY29uZmlncykgeworICAgIGludDMyX3Qgd2lkdGggPSBtQ29tcG9zZXJDbGllbnQtPmdldERpc3BsYXlBdHRyaWJ1dGUoCisgICAgICAgIG1QcmltYXJ5RGlzcGxheSwgY29uZmlnLCBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZTo6V0lEVEgpOworICAgIGludDMyX3QgaGVpZ2h0ID0gbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5QXR0cmlidXRlKAorICAgICAgICBtUHJpbWFyeURpc3BsYXksIGNvbmZpZywgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OkhFSUdIVCk7CisgICAgQVNTRVJUX0xUKDAsIHdpZHRoKTsKKyAgICBBU1NFUlRfTFQoMCwgaGVpZ2h0KTsKKworICAgIG1Db21wb3NlckNsaWVudC0+c2V0QWN0aXZlQ29uZmlnKG1QcmltYXJ5RGlzcGxheSwgY29uZmlnKTsKKworICAgIEFTU0VSVF9UUlVFKG1Db21wb3NlckNsaWVudC0+Z2V0Q2xpZW50VGFyZ2V0U3VwcG9ydCgKKyAgICAgICAgbVByaW1hcnlEaXNwbGF5LCB3aWR0aCwgaGVpZ2h0LCBQaXhlbEZvcm1hdDo6UkdCQV84ODg4LAorICAgICAgICBEYXRhc3BhY2U6OlVOS05PV04pKTsKKyAgfQorfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpnZXREaXNwbGF5QXR0cmlidXRlLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQ6OmdldERpc3BsYXlBdHRyaWJ1dGUgc3VjY2VlZHMgZm9yIHRoZSByZXF1aXJlZAorICogZm9ybWF0cywgYW5kIHN1Y2NlZWRzIG9yIGZhaWxzIGNvcnJlY3RseSBmb3Igb3B0aW9uYWwgYXR0cmlidXRlcy4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgR2V0RGlzcGxheUF0dHJpYnV0ZSkgeworICBzdGQ6OnZlY3RvcjxDb25maWc+IGNvbmZpZ3MgPQorICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXREaXNwbGF5Q29uZmlncyhtUHJpbWFyeURpc3BsYXkpOworICBmb3IgKGF1dG8gY29uZmlnIDogY29uZmlncykgeworICAgIGNvbnN0IHN0ZDo6YXJyYXk8SUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGUsIDM+IHJlcXVpcmVkQXR0cmlidXRlcyA9IHt7CisgICAgICAgIElDb21wb3NlckNsaWVudDo6QXR0cmlidXRlOjpXSURUSCwgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OkhFSUdIVCwKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OlZTWU5DX1BFUklPRCwKKyAgICB9fTsKKyAgICBmb3IgKGF1dG8gYXR0cmlidXRlIDogcmVxdWlyZWRBdHRyaWJ1dGVzKSB7CisgICAgICBtQ29tcG9zZXJDbGllbnQtPmdldERpc3BsYXlBdHRyaWJ1dGUobVByaW1hcnlEaXNwbGF5LCBjb25maWcsIGF0dHJpYnV0ZSk7CisgICAgfQorCisgICAgY29uc3Qgc3RkOjphcnJheTxJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZSwgMj4gb3B0aW9uYWxBdHRyaWJ1dGVzID0ge3sKKyAgICAgICAgSUNvbXBvc2VyQ2xpZW50OjpBdHRyaWJ1dGU6OkRQSV9YLCBJQ29tcG9zZXJDbGllbnQ6OkF0dHJpYnV0ZTo6RFBJX1ksCisgICAgfX07CisgICAgZm9yIChhdXRvIGF0dHJpYnV0ZSA6IG9wdGlvbmFsQXR0cmlidXRlcykgeworICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXRSYXcoKS0+Z2V0RGlzcGxheUF0dHJpYnV0ZSgKKyAgICAgICAgICBtUHJpbWFyeURpc3BsYXksIGNvbmZpZywgYXR0cmlidXRlLAorICAgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRtcEVycm9yID09IEVycm9yOjpOT05FIHx8CisgICAgICAgICAgICAgICAgICAgICAgICB0bXBFcnJvciA9PSBFcnJvcjo6VU5TVVBQT1JURUQpOworICAgICAgICAgIH0pOworICAgIH0KKyAgfQorfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpnZXRIZHJDYXBhYmlsaXRpZXMuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIEdldEhkckNhcGFiaWxpdGllcykgeworICBmbG9hdCBtYXhMdW1pbmFuY2U7CisgIGZsb2F0IG1heEF2ZXJhZ2VMdW1pbmFuY2U7CisgIGZsb2F0IG1pbkx1bWluYW5jZTsKKyAgbUNvbXBvc2VyQ2xpZW50LT5nZXRIZHJDYXBhYmlsaXRpZXMobVByaW1hcnlEaXNwbGF5LCAmbWF4THVtaW5hbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWF4QXZlcmFnZUx1bWluYW5jZSwgJm1pbkx1bWluYW5jZSk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OnNldENsaWVudFRhcmdldFNsb3RDb3VudC4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsVGVzdCwgU2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KSB7CisgIG1Db21wb3NlckNsaWVudC0+c2V0Q2xpZW50VGFyZ2V0U2xvdENvdW50KG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OnNldEFjdGl2ZUNvbmZpZy4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpzZXRBY3RpdmVDb25maWcgc3VjY2VlZHMgZm9yIGFsbCBkaXNwbGF5CisgKiBjb25maWdzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBTZXRBY3RpdmVDb25maWcpIHsKKyAgc3RkOjp2ZWN0b3I8Q29uZmlnPiBjb25maWdzID0KKyAgICAgIG1Db21wb3NlckNsaWVudC0+Z2V0RGlzcGxheUNvbmZpZ3MobVByaW1hcnlEaXNwbGF5KTsKKyAgZm9yIChhdXRvIGNvbmZpZyA6IGNvbmZpZ3MpIHsKKyAgICBtQ29tcG9zZXJDbGllbnQtPnNldEFjdGl2ZUNvbmZpZyhtUHJpbWFyeURpc3BsYXksIGNvbmZpZyk7CisgICAgQVNTRVJUX0VRKGNvbmZpZywgbUNvbXBvc2VyQ2xpZW50LT5nZXRBY3RpdmVDb25maWcobVByaW1hcnlEaXNwbGF5KSk7CisgIH0KK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6c2V0Q29sb3JNb2RlLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQ6OnNldENvbG9yTW9kZSBzdWNjZWVkcyBmb3IgYWxsIGNvbG9yIG1vZGVzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBTZXRDb2xvck1vZGUpIHsKKyAgc3RkOjp2ZWN0b3I8Q29sb3JNb2RlPiBtb2RlcyA9CisgICAgICBtQ29tcG9zZXJDbGllbnQtPmdldENvbG9yTW9kZXMobVByaW1hcnlEaXNwbGF5KTsKKyAgZm9yIChhdXRvIG1vZGUgOiBtb2RlcykgeworICAgIG1Db21wb3NlckNsaWVudC0+c2V0Q29sb3JNb2RlKG1QcmltYXJ5RGlzcGxheSwgbW9kZSk7CisgIH0KK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6c2V0UG93ZXJNb2RlLgorICoKKyAqIFRlc3QgdGhhdCBJQ29tcG9zZXJDbGllbnQ6OnNldFBvd2VyTW9kZSBzdWNjZWVkcyBmb3IgYWxsIHBvd2VyIG1vZGVzLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0LCBTZXRQb3dlck1vZGUpIHsKKyAgc3RkOjp2ZWN0b3I8SUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGU+IG1vZGVzOworICBtb2Rlcy5wdXNoX2JhY2soSUNvbXBvc2VyQ2xpZW50OjpQb3dlck1vZGU6Ok9GRik7CisKKyAgaWYgKG1Db21wb3NlckNsaWVudC0+Z2V0RG96ZVN1cHBvcnQobVByaW1hcnlEaXNwbGF5KSkgeworICAgIG1vZGVzLnB1c2hfYmFjayhJQ29tcG9zZXJDbGllbnQ6OlBvd2VyTW9kZTo6RE9aRSk7CisgICAgbW9kZXMucHVzaF9iYWNrKElDb21wb3NlckNsaWVudDo6UG93ZXJNb2RlOjpET1pFX1NVU1BFTkQpOworICB9CisKKyAgLy8gcHVzaCBPTiBsYXN0CisgIG1vZGVzLnB1c2hfYmFjayhJQ29tcG9zZXJDbGllbnQ6OlBvd2VyTW9kZTo6T04pOworCisgIGZvciAoYXV0byBtb2RlIDogbW9kZXMpIHsKKyAgICBtQ29tcG9zZXJDbGllbnQtPnNldFBvd2VyTW9kZShtUHJpbWFyeURpc3BsYXksIG1vZGUpOworICB9Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OnNldFZzeW5jRW5hYmxlZC4KKyAqCisgKiBUZXN0IHRoYXQgSUNvbXBvc2VyQ2xpZW50OjpzZXRWc3luY0VuYWJsZWQgc3VjY2VlZHMgYW5kIHRoZXJlIGlzIG5vCisgKiBzcHVyaW91cyB2c3luYyBldmVudHMuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbFRlc3QsIFNldFZzeW5jRW5hYmxlZCkgeworICBtQ29tcG9zZXJDYWxsYmFjay0+c2V0VnN5bmNBbGxvd2VkKHRydWUpOworCisgIG1Db21wb3NlckNsaWVudC0+c2V0VnN5bmNFbmFibGVkKG1QcmltYXJ5RGlzcGxheSwgdHJ1ZSk7CisgIHVzbGVlcCg2MCAqIDEwMDApOworICBtQ29tcG9zZXJDbGllbnQtPnNldFZzeW5jRW5hYmxlZChtUHJpbWFyeURpc3BsYXksIGZhbHNlKTsKKworICBtQ29tcG9zZXJDYWxsYmFjay0+c2V0VnN5bmNBbGxvd2VkKGZhbHNlKTsKK30KKworLy8gVGVzdHMgZm9yIElDb21wb3NlckNsaWVudDo6Q29tbWFuZC4KK2NsYXNzIEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QgOiBwdWJsaWMgR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0IHsKKyBwcm90ZWN0ZWQ6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoR3JhcGhpY3NDb21wb3NlckhpZGxUZXN0OjpTZXRVcCgpKTsKKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jID0gc3RkOjptYWtlX3VuaXF1ZTxHcmFsbG9jPigpKTsKKworICAgIG1Xcml0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPENvbW1hbmRXcml0ZXJCYXNlPigxMDI0KTsKKyAgICBtUmVhZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxDb21tYW5kUmVhZGVyPigpOworICB9CisKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShHcmFwaGljc0NvbXBvc2VySGlkbFRlc3Q6OlRlYXJEb3duKCkpOworICB9CisKKyAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBhbGxvY2F0ZSgpIHsKKyAgICAgIElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvIGluZm97fTsKKyAgICAgIGluZm8ud2lkdGggPSA2NDsKKyAgICAgIGluZm8uaGVpZ2h0ID0gNjQ7CisgICAgICBpbmZvLmxheWVyQ291bnQgPSAxOworICAgICAgaW5mby5mb3JtYXQgPSBQaXhlbEZvcm1hdDo6UkdCQV84ODg4OworICAgICAgaW5mby51c2FnZSA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihCdWZmZXJVc2FnZTo6Q1BVX1dSSVRFX09GVEVOIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyVXNhZ2U6OkNQVV9SRUFEX09GVEVOKTsKKworICAgICAgcmV0dXJuIG1HcmFsbG9jLT5hbGxvY2F0ZShpbmZvKTsKKyAgfQorCisgIHZvaWQgZXhlY3V0ZSgpIHsKKyAgICBib29sIHF1ZXVlQ2hhbmdlZCA9IGZhbHNlOworICAgIHVpbnQzMl90IGNvbW1hbmRMZW5ndGggPSAwOworICAgIGhpZGxfdmVjPGhpZGxfaGFuZGxlPiBjb21tYW5kSGFuZGxlczsKKyAgICBBU1NFUlRfVFJVRSgKKyAgICAgICAgbVdyaXRlci0+d3JpdGVRdWV1ZSgmcXVldWVDaGFuZ2VkLCAmY29tbWFuZExlbmd0aCwgJmNvbW1hbmRIYW5kbGVzKSk7CisKKyAgICBpZiAocXVldWVDaGFuZ2VkKSB7CisgICAgICBhdXRvIHJldCA9IG1Db21wb3NlckNsaWVudC0+Z2V0UmF3KCktPnNldElucHV0Q29tbWFuZFF1ZXVlKAorICAgICAgICAgICptV3JpdGVyLT5nZXRNUURlc2NyaXB0b3IoKSk7CisgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHN0YXRpY19jYXN0PEVycm9yPihyZXQpKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtQ29tcG9zZXJDbGllbnQtPmdldFJhdygpLT5leGVjdXRlQ29tbWFuZHMoCisgICAgICAgIGNvbW1hbmRMZW5ndGgsIGNvbW1hbmRIYW5kbGVzLAorICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcE91dFF1ZXVlQ2hhbmdlZCwKKyAgICAgICAgICAgIGNvbnN0IGF1dG8mIHRtcE91dExlbmd0aCwgY29uc3QgYXV0byYgdG1wT3V0SGFuZGxlcykgeworICAgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpOworCisgICAgICAgICAgaWYgKHRtcE91dFF1ZXVlQ2hhbmdlZCkgeworICAgICAgICAgICAgbUNvbXBvc2VyQ2xpZW50LT5nZXRSYXcoKS0+Z2V0T3V0cHV0Q29tbWFuZFF1ZXVlKAorICAgICAgICAgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wRGVzY3JpcHRvcikgeworICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcik7CisgICAgICAgICAgICAgICAgICBtUmVhZGVyLT5zZXRNUURlc2NyaXB0b3IodG1wRGVzY3JpcHRvcik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfQorCisgICAgICAgICAgQVNTRVJUX1RSVUUobVJlYWRlci0+cmVhZFF1ZXVlKHRtcE91dExlbmd0aCwgdG1wT3V0SGFuZGxlcykpOworICAgICAgICAgIG1SZWFkZXItPnBhcnNlKCk7CisgICAgICAgIH0pOworICB9CisKKyAgLy8gQSBjb21tYW5kIHBhcnNlciB0aGF0IGNoZWNrcyB0aGF0IG5vIGVycm9yIG5vciB1bmV4cGVjdGVkIGNvbW1hbmRzIGFyZQorICAvLyByZXR1cm5lZC4KKyAgY2xhc3MgQ29tbWFuZFJlYWRlciA6IHB1YmxpYyBDb21tYW5kUmVhZGVyQmFzZSB7CisgICBwdWJsaWM6CisgICAgLy8gUGFyc2UgYWxsIGNvbW1hbmRzIGluIHRoZSByZXR1cm4gY29tbWFuZCBxdWV1ZS4gIENhbGwgR1RFU1RfRkFJTCgpIGZvcgorICAgIC8vIHVuZXhwZWN0ZWQgZXJyb3JzIG9yIGNvbW1hbmRzLgorICAgIHZvaWQgcGFyc2UoKSB7CisgICAgICB3aGlsZSAoIWlzRW1wdHkoKSkgeworICAgICAgICBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQgY29tbWFuZDsKKyAgICAgICAgdWludDE2X3QgbGVuZ3RoOworICAgICAgICBBU1NFUlRfVFJVRShiZWdpbkNvbW1hbmQoJmNvbW1hbmQsICZsZW5ndGgpKTsKKworICAgICAgICBzd2l0Y2ggKGNvbW1hbmQpIHsKKyAgICAgICAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0VSUk9SOiB7CisgICAgICAgICAgICBBU1NFUlRfRVEoMiwgbGVuZ3RoKTsKKyAgICAgICAgICAgIGF1dG8gbG9jID0gcmVhZCgpOworICAgICAgICAgICAgYXV0byBlcnIgPSByZWFkU2lnbmVkKCk7CisgICAgICAgICAgICBHVEVTVF9GQUlMKCkgPDwgInVuZXhwZWN0ZWQgZXJyb3IgIiA8PCBlcnIgPDwgIiBhdCBsb2NhdGlvbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgPDwgbG9jOworICAgICAgICAgIH0gYnJlYWs7CisgICAgICAgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFTEVDVF9ESVNQTEFZOgorICAgICAgICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfQ0hBTkdFRF9DT01QT1NJVElPTl9UWVBFUzoKKyAgICAgICAgICBjYXNlIElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0RJU1BMQVlfUkVRVUVTVFM6CisgICAgICAgICAgY2FzZSBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9QUkVTRU5UX0ZFTkNFOgorICAgICAgICAgIGNhc2UgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfUkVMRUFTRV9GRU5DRVM6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgR1RFU1RfRkFJTCgpIDw8ICJ1bmV4cGVjdGVkIHJldHVybiBjb21tYW5kICIgPDwgc3RkOjpoZXgKKyAgICAgICAgICAgICAgICAgICAgICAgICA8PCBzdGF0aWNfY2FzdDxpbnQ+KGNvbW1hbmQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBlbmRDb21tYW5kKCk7CisgICAgICB9CisgICAgfQorICB9OworCisgIHN0ZDo6dW5pcXVlX3B0cjxDb21tYW5kV3JpdGVyQmFzZT4gbVdyaXRlcjsKKyAgc3RkOjp1bmlxdWVfcHRyPENvbW1hbmRSZWFkZXI+IG1SZWFkZXI7CisKKyBwcml2YXRlOgorICBzdGQ6OnVuaXF1ZV9wdHI8R3JhbGxvYz4gbUdyYWxsb2M7Cit9OworCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfQ09MT1JfVFJBTlNGT1JNLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0NPTE9SX1RSQU5TRk9STSkgeworICBjb25zdCBzdGQ6OmFycmF5PGZsb2F0LCAxNj4gaWRlbnRpdHkgPSB7eworICAgICAgMS4wZiwgMC4wZiwgMC4wZiwgMC4wZiwgMC4wZiwgMS4wZiwgMC4wZiwgMC4wZiwgMC4wZiwgMC4wZiwgMS4wZiwgMC4wZiwKKyAgICAgIDAuMGYsIDAuMGYsIDAuMGYsIDEuMGYsCisgIH19OworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2V0Q29sb3JUcmFuc2Zvcm0oaWRlbnRpdHkuZGF0YSgpLCBDb2xvclRyYW5zZm9ybTo6SURFTlRJVFkpOworCisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0NMSUVOVF9UQVJHRVQuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfQ0xJRU5UX1RBUkdFVCkgeworICBtQ29tcG9zZXJDbGllbnQtPnNldENsaWVudFRhcmdldFNsb3RDb3VudChtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2V0Q2xpZW50VGFyZ2V0KDAsIG51bGxwdHIsIC0xLCBEYXRhc3BhY2U6OlVOS05PV04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KCkpOworCisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX09VVFBVVF9CVUZGRVIuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfT1VUUFVUX0JVRkZFUikgeworICBpZiAobUNvbXBvc2VyQ2xpZW50LT5nZXRNYXhWaXJ0dWFsRGlzcGxheUNvdW50KCkgPT0gMCkgeworICAgIEdURVNUX1NVQ0NFRUQoKSA8PCAibm8gdmlydHVhbCBkaXNwbGF5IHN1cHBvcnQiOworICAgIHJldHVybjsKKyAgfQorCisgIERpc3BsYXkgZGlzcGxheTsKKyAgUGl4ZWxGb3JtYXQgZm9ybWF0OworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShkaXNwbGF5ID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVWaXJ0dWFsRGlzcGxheSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0LCA2NCwgUGl4ZWxGb3JtYXQ6OklNUExFTUVOVEFUSU9OX0RFRklORUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQnVmZmVyU2xvdENvdW50LCAmZm9ybWF0KSk7CisKKyAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGU7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGhhbmRsZSA9IGFsbG9jYXRlKCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkoZGlzcGxheSk7CisgIG1Xcml0ZXItPnNldE91dHB1dEJ1ZmZlcigwLCBoYW5kbGUsIC0xKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpWQUxJREFURV9ESVNQTEFZLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgVkFMSURBVEVfRElTUExBWSkgeworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnZhbGlkYXRlRGlzcGxheSgpOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OkFDQ0VQVF9ESVNQTEFZX0NIQU5HRVMuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBBQ0NFUFRfRElTUExBWV9DSEFOR0VTKSB7CisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+dmFsaWRhdGVEaXNwbGF5KCk7CisgIG1Xcml0ZXItPmFjY2VwdERpc3BsYXlDaGFuZ2VzKCk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6UFJFU0VOVF9ESVNQTEFZLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgUFJFU0VOVF9ESVNQTEFZKSB7CisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+dmFsaWRhdGVEaXNwbGF5KCk7CisgIG1Xcml0ZXItPnByZXNlbnREaXNwbGF5KCk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0NVUlNPUl9QT1NJVElPTi4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9DVVJTT1JfUE9TSVRJT04pIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllckN1cnNvclBvc2l0aW9uKDEsIDEpOworICBtV3JpdGVyLT5zZXRMYXllckN1cnNvclBvc2l0aW9uKDAsIDApOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9CVUZGRVIuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfQlVGRkVSKSB7CisgIGF1dG8gaGFuZGxlID0gYWxsb2NhdGUoKTsKKyAgQVNTRVJUX05FKG51bGxwdHIsIGhhbmRsZSk7CisKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllckJ1ZmZlcigwLCBoYW5kbGUsIC0xKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfU1VSRkFDRV9EQU1BR0UpIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIElDb21wb3NlckNsaWVudDo6UmVjdCBlbXB0eXswLCAwLCAwLCAwfTsKKyAgSUNvbXBvc2VyQ2xpZW50OjpSZWN0IHVuaXR7MCwgMCwgMSwgMX07CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyU3VyZmFjZURhbWFnZShzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KDEsIGVtcHR5KSk7CisgIG1Xcml0ZXItPnNldExheWVyU3VyZmFjZURhbWFnZShzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KDEsIHVuaXQpKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJTdXJmYWNlRGFtYWdlKHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4oKSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0JMRU5EX01PREUuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfQkxFTkRfTU9ERSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyQmxlbmRNb2RlKElDb21wb3NlckNsaWVudDo6QmxlbmRNb2RlOjpOT05FKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJCbGVuZE1vZGUoSUNvbXBvc2VyQ2xpZW50OjpCbGVuZE1vZGU6OlBSRU1VTFRJUExJRUQpOworICBtV3JpdGVyLT5zZXRMYXllckJsZW5kTW9kZShJQ29tcG9zZXJDbGllbnQ6OkJsZW5kTW9kZTo6Q09WRVJBR0UpOworICBleGVjdXRlKCk7Cit9CisKKy8qKgorICogVGVzdCBJQ29tcG9zZXJDbGllbnQ6OkNvbW1hbmQ6OlNFVF9MQVlFUl9DT0xPUi4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9DT0xPUikgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyQ29sb3IoSUNvbXBvc2VyQ2xpZW50OjpDb2xvcnsweGZmLCAweGZmLCAweGZmLCAweGZmfSk7CisgIG1Xcml0ZXItPnNldExheWVyQ29sb3IoSUNvbXBvc2VyQ2xpZW50OjpDb2xvcnswLCAwLCAwLCAwfSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0NPTVBPU0lUSU9OX1RZUEUuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfQ09NUE9TSVRJT05fVFlQRSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb246OkNMSUVOVCk7CisgIG1Xcml0ZXItPnNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb246OkRFVklDRSk7CisgIG1Xcml0ZXItPnNldExheWVyQ29tcG9zaXRpb25UeXBlKElDb21wb3NlckNsaWVudDo6Q29tcG9zaXRpb246OlNPTElEX0NPTE9SKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJDb21wb3NpdGlvblR5cGUoSUNvbXBvc2VyQ2xpZW50OjpDb21wb3NpdGlvbjo6Q1VSU09SKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfREFUQVNQQUNFLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX0RBVEFTUEFDRSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyRGF0YXNwYWNlKERhdGFzcGFjZTo6VU5LTk9XTik7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX0RJU1BMQVlfRlJBTUUuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfRElTUExBWV9GUkFNRSkgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyRGlzcGxheUZyYW1lKElDb21wb3NlckNsaWVudDo6UmVjdHswLCAwLCAxLCAxfSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1BMQU5FX0FMUEhBLgorICovCitURVNUX0YoR3JhcGhpY3NDb21wb3NlckhpZGxDb21tYW5kVGVzdCwgU0VUX0xBWUVSX1BMQU5FX0FMUEhBKSB7CisgIExheWVyIGxheWVyOworICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgIGxheWVyID0gbUNvbXBvc2VyQ2xpZW50LT5jcmVhdGVMYXllcihtUHJpbWFyeURpc3BsYXksIGtCdWZmZXJTbG90Q291bnQpKTsKKworICBtV3JpdGVyLT5zZWxlY3REaXNwbGF5KG1QcmltYXJ5RGlzcGxheSk7CisgIG1Xcml0ZXItPnNlbGVjdExheWVyKGxheWVyKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJQbGFuZUFscGhhKDAuMGYpOworICBtV3JpdGVyLT5zZXRMYXllclBsYW5lQWxwaGEoMS4wZik7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1NJREVCQU5EX1NUUkVBTS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9TSURFQkFORF9TVFJFQU0pIHsKKyAgaWYgKCFtQ29tcG9zZXItPmhhc0NhcGFiaWxpdHkoSUNvbXBvc2VyOjpDYXBhYmlsaXR5OjpTSURFQkFORF9TVFJFQU0pKSB7CisgICAgR1RFU1RfU1VDQ0VFRCgpIDw8ICJubyBzaWRlYmFuZCBzdHJlYW0gc3VwcG9ydCI7CisgICAgcmV0dXJuOworICB9CisKKyAgYXV0byBoYW5kbGUgPSBhbGxvY2F0ZSgpOworICBBU1NFUlRfTkUobnVsbHB0ciwgaGFuZGxlKTsKKworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyU2lkZWJhbmRTdHJlYW0oaGFuZGxlKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfU09VUkNFX0NST1AuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfU09VUkNFX0NST1ApIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllclNvdXJjZUNyb3AoSUNvbXBvc2VyQ2xpZW50OjpGUmVjdHswLjBmLCAwLjBmLCAxLjBmLCAxLjBmfSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1RSQU5TRk9STS4KKyAqLworVEVTVF9GKEdyYXBoaWNzQ29tcG9zZXJIaWRsQ29tbWFuZFRlc3QsIFNFVF9MQVlFUl9UUkFOU0ZPUk0pIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIG1Xcml0ZXItPnNlbGVjdERpc3BsYXkobVByaW1hcnlEaXNwbGF5KTsKKyAgbVdyaXRlci0+c2VsZWN0TGF5ZXIobGF5ZXIpOworICBtV3JpdGVyLT5zZXRMYXllclRyYW5zZm9ybShzdGF0aWNfY2FzdDxUcmFuc2Zvcm0+KDApKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtOjpGTElQX0gpOworICBtV3JpdGVyLT5zZXRMYXllclRyYW5zZm9ybShUcmFuc2Zvcm06OkZMSVBfVik7CisgIG1Xcml0ZXItPnNldExheWVyVHJhbnNmb3JtKFRyYW5zZm9ybTo6Uk9UXzkwKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtOjpST1RfMTgwKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oVHJhbnNmb3JtOjpST1RfMjcwKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oCisgICAgICBzdGF0aWNfY2FzdDxUcmFuc2Zvcm0+KFRyYW5zZm9ybTo6RkxJUF9IIHwgVHJhbnNmb3JtOjpST1RfOTApKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJUcmFuc2Zvcm0oCisgICAgICBzdGF0aWNfY2FzdDxUcmFuc2Zvcm0+KFRyYW5zZm9ybTo6RkxJUF9WIHwgVHJhbnNmb3JtOjpST1RfOTApKTsKKyAgZXhlY3V0ZSgpOworfQorCisvKioKKyAqIFRlc3QgSUNvbXBvc2VyQ2xpZW50OjpDb21tYW5kOjpTRVRfTEFZRVJfVklTSUJMRV9SRUdJT04uCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfVklTSUJMRV9SRUdJT04pIHsKKyAgTGF5ZXIgbGF5ZXI7CisgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgbGF5ZXIgPSBtQ29tcG9zZXJDbGllbnQtPmNyZWF0ZUxheWVyKG1QcmltYXJ5RGlzcGxheSwga0J1ZmZlclNsb3RDb3VudCkpOworCisgIElDb21wb3NlckNsaWVudDo6UmVjdCBlbXB0eXswLCAwLCAwLCAwfTsKKyAgSUNvbXBvc2VyQ2xpZW50OjpSZWN0IHVuaXR7MCwgMCwgMSwgMX07CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyVmlzaWJsZVJlZ2lvbihzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KDEsIGVtcHR5KSk7CisgIG1Xcml0ZXItPnNldExheWVyVmlzaWJsZVJlZ2lvbihzdGQ6OnZlY3RvcjxJQ29tcG9zZXJDbGllbnQ6OlJlY3Q+KDEsIHVuaXQpKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJWaXNpYmxlUmVnaW9uKHN0ZDo6dmVjdG9yPElDb21wb3NlckNsaWVudDo6UmVjdD4oKSk7CisgIGV4ZWN1dGUoKTsKK30KKworLyoqCisgKiBUZXN0IElDb21wb3NlckNsaWVudDo6Q29tbWFuZDo6U0VUX0xBWUVSX1pfT1JERVIuCisgKi8KK1RFU1RfRihHcmFwaGljc0NvbXBvc2VySGlkbENvbW1hbmRUZXN0LCBTRVRfTEFZRVJfWl9PUkRFUikgeworICBMYXllciBsYXllcjsKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICBsYXllciA9IG1Db21wb3NlckNsaWVudC0+Y3JlYXRlTGF5ZXIobVByaW1hcnlEaXNwbGF5LCBrQnVmZmVyU2xvdENvdW50KSk7CisKKyAgbVdyaXRlci0+c2VsZWN0RGlzcGxheShtUHJpbWFyeURpc3BsYXkpOworICBtV3JpdGVyLT5zZWxlY3RMYXllcihsYXllcik7CisgIG1Xcml0ZXItPnNldExheWVyWk9yZGVyKDEwKTsKKyAgbVdyaXRlci0+c2V0TGF5ZXJaT3JkZXIoMCk7CisgIGV4ZWN1dGUoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGFub255bW91cworfSAgLy8gbmFtZXNwYWNlIHRlc3RzCit9ICAvLyBuYW1lc3BhY2UgVjJfMQorfSAgLy8gbmFtZXNwYWNlIGNvbXBvc2VyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworCisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKworICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvY29tcG9zZXIvQW5kcm9pZC5tayBiL2dyYXBoaWNzL2NvbXBvc2VyL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL2NvbXBvc2VyL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvQW5kcm9pZC5icCBiL2dyYXBoaWNzL21hcHBlci8yLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDhkNThmCi0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjUgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklNYXBwZXIuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL01hcHBlckFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0lId01hcHBlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9Cbkh3TWFwcGVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0JwSHdNYXBwZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvQnNNYXBwZXIuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5jb21tb25AMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC9BbmRyb2lkLm1rIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvSU1hcHBlci5oYWwgYi9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlZTIwNmIKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaGFsCkBAIC0wLDAgKzEsMjMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA7CisKK2ludGVyZmFjZSBJTWFwcGVyIHsKKyAgICBzdHJ1Y3QgQnVmZmVyRGVzY3JpcHRvckluZm8geworICAgICAgICAvKioKKyAgICAgICAgICogVGhlIHdpZHRoIHNwZWNpZmllcyBob3cgbWFueSBjb2x1bW5zIG9mIHBpeGVscyBtdXN0IGJlIGluIHRoZQorICAgICAgICAgKiBhbGxvY2F0ZWQgYnVmZmVyLCBidXQgZG9lcyBub3QgbmVjZXNzYXJpbHkgcmVwcmVzZW50IHRoZSBvZmZzZXQgaW4KKyAgICAgICAgICogY29sdW1ucyBiZXR3ZWVuIHRoZSBzYW1lIGNvbHVtbiBpbiBhZGphY2VudCByb3dzLiBUaGUgcm93cyBtYXkgYmUKKyAgICAgICAgICogcGFkZGVkLgorICAgICAgICAgKi8KKyAgICAgICAgdWludDMyX3Qgd2lkdGg7CisKKyAgICAgICAvKioKKyAgICAgICAgKiBUaGUgaGVpZ2h0IHNwZWNpZmllcyBob3cgbWFueSByb3dzIG9mIHBpeGVscyBtdXN0IGJlIGluIHRoZQorICAgICAgICAqIGFsbG9jYXRlZCBidWZmZXIuCisgICAgICAgICovCisgICAgICAgIHVpbnQzMl90IGhlaWdodDsKKworICAgICAgIC8qKgorICAgICAgICAqIFRoZSBudW1iZXIgb2YgaW1hZ2UgbGF5ZXJzIHRoYXQgbXVzdCBiZSBpbiB0aGUgYWxsb2NhdGVkIGJ1ZmZlci4KKyAgICAgICAgKi8KKyAgICAgICAgdWludDMyX3QgbGF5ZXJDb3VudDsKKworICAgICAgICAvKiogQnVmZmVyIHBpeGVsIGZvcm1hdC4gKi8KKyAgICAgICAgUGl4ZWxGb3JtYXQgZm9ybWF0OworCisgICAgICAgIC8qKgorICAgICAgICAgKiBCdWZmZXIgdXNhZ2UgbWFzazsgdmFsaWQgZmxhZ3MgY2FuIGJlIGZvdW5kIGluIHRoZSBkZWZpbml0aW9uIG9mCisgICAgICAgICAqIEJ1ZmZlclVzYWdlLgorICAgICAgICAgKi8KKyAgICAgICAgYml0ZmllbGQ8QnVmZmVyVXNhZ2U+IHVzYWdlOworICAgIH07CisKKyAgICBzdHJ1Y3QgUmVjdCB7CisgICAgICAgIGludDMyX3QgbGVmdDsKKyAgICAgICAgaW50MzJfdCB0b3A7CisgICAgICAgIGludDMyX3Qgd2lkdGg7CisgICAgICAgIGludDMyX3QgaGVpZ2h0OworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGVzIGEgYnVmZmVyIGRlc2NyaXB0b3IuIFRoZSBkZXNjcmlwdG9yIGNhbiBiZSB1c2VkIHdpdGggSUFsbG9jYXRvcgorICAgICAqIHRvIGFsbG9jYXRlIGJ1ZmZlcnMuCisgICAgICoKKyAgICAgKiBTaW5jZSB0aGUgYnVmZmVyIGRlc2NyaXB0b3IgZnVsbHkgZGVzY3JpYmVzIGEgYnVmZmVyLCBhbnkgZGV2aWNlCisgICAgICogZGVwZW5kZW50IG9yIGRldmljZSBpbmRlcGVuZGVudCBjaGVja3MgbXVzdCBiZSBwZXJmb3JtZWQgaGVyZSB3aGVuZXZlcgorICAgICAqIHBvc3NpYmxlLiBTcGVjaWZpY2FsbHksIHdoZW4gbGF5ZXJlZCBidWZmZXJzIGFyZSBub3Qgc3VwcG9ydGVkLCB0aGlzCisgICAgICogZnVuY3Rpb24gbXVzdCByZXR1cm4gVU5TVVBQT1JURUQgaWYgbGF5ZXJDb3VudCBpcyBncmVhdCB0aGFuIDEuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVzY3JpcHRvckluZm8gc3BlY2lmaWVzIHRoZSBhdHRyaWJ1dGVzIG9mIHRoZSBkZXNjcmlwdG9yLgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9WQUxVRSB3aGVuIGFueSBvZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZXMgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkIG9yIGNvbmZsaWN0aW5nLgorICAgICAqICAgICAgICAgICAgICAgICAgTk9fUkVTT1VSQ0VTIHdoZW4gdGhlIGNyZWF0aW9uIGNhbm5vdCBiZSBmdWxsZmlsbGVkIGF0CisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyB0aW1lLgorICAgICAqICAgICAgICAgICAgICAgICAgVU5TVVBQT1JURUQgd2hlbiBhbnkgb2YgdGhlIHNwZWNpZmllZCBhdHRyaWJ1dGVzIGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Qgc3VwcG9ydGVkLgorICAgICAqIEByZXR1cm4gZGVzY3JpcHRvciBpcyB0aGUgbmV3bHkgY3JlYXRlZCBidWZmZXIgZGVzY3JpcHRvci4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgY3JlYXRlRGVzY3JpcHRvcihCdWZmZXJEZXNjcmlwdG9ySW5mbyBkZXNjcmlwdG9ySW5mbykKKyAgICAgICAgICBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLAorICAgICAgICAgICAgICAgICAgICAgQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yKTsKKworICAgIC8qKgorICAgICAqIEltcG9ydHMgYSByYXcgYnVmZmVyIGhhbmRsZSB0byBjcmVhdGUgYW4gaW1wb3J0ZWQgYnVmZmVyIGhhbmRsZSBmb3IgdXNlCisgICAgICogd2l0aCB0aGUgcmVzdCBvZiB0aGUgbWFwcGVyIG9yIHdpdGggb3RoZXIgaW4tcHJvY2VzcyBsaWJyYXJpZXMuCisgICAgICoKKyAgICAgKiBBIGJ1ZmZlciBoYW5kbGUgaXMgY29uc2lkZXJlZCByYXcgd2hlbiBpdCBpcyBjbG9uZWQgKGUuZy4sIHdpdGgKKyAgICAgKiBuYXRpdmVfaGFuZGxlX2Nsb25lKSBmcm9tIGFub3RoZXIgYnVmZmVyIGhhbmRsZSBsb2NhbGx5LCBvciB3aGVuIGl0IGlzCisgICAgICogcmVjZWl2ZWQgZnJvbSBhbm90aGVyIEhBTCBzZXJ2ZXIvY2xpZW50IG9yIGFub3RoZXIgcHJvY2Vzcy4gQSByYXcKKyAgICAgKiBidWZmZXIgaGFuZGxlIG11c3Qgbm90IGJlIHVzZWQgdG8gYWNjZXNzIHRoZSB1bmRlcmx5aW5nIGdyYXBoaWNzCisgICAgICogYnVmZmVyLiBJdCBtdXN0IGJlIGltcG9ydGVkIHRvIGNyZWF0ZSBhbiBpbXBvcnRlZCBoYW5kbGUgZmlyc3QuCisgICAgICoKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIG11c3QgYXQgbGVhc3QgdmFsaWRhdGUgdGhlIHJhdyBoYW5kbGUgYmVmb3JlIGNyZWF0aW5nIHRoZQorICAgICAqIGltcG9ydGVkIGhhbmRsZS4gSXQgbXVzdCBhbHNvIHN1cHBvcnQgaW1wb3J0aW5nIHRoZSBzYW1lIHJhdyBoYW5kbGUKKyAgICAgKiBtdWx0aXBsZSB0aW1lcyB0byBjcmVhdGUgbXVsdGlwbGUgaW1wb3J0ZWQgaGFuZGxlcy4gVGhlIGltcG9ydGVkIGhhbmRsZQorICAgICAqIG11c3QgYmUgY29uc2lkZXJlZCB2YWxpZCBldmVyeXdoZXJlIGluIHRoZSBwcm9jZXNzLCBpbmNsdWRpbmcgaW4KKyAgICAgKiBhbm90aGVyIGluc3RhbmNlIG9mIHRoZSBtYXBwZXIuCisgICAgICoKKyAgICAgKiBCZWNhdXNlIG9mIHBhc3N0aHJvdWdoIEhBTHMsIGEgcmF3IGJ1ZmZlciBoYW5kbGUgcmVjZWl2ZWQgZnJvbSBhIEhBTAorICAgICAqIG1heSBhY3R1YWxseSBoYXZlIGJlZW4gaW1wb3J0ZWQgaW4gdGhlIHByb2Nlc3MuIGltcG9ydEJ1ZmZlciBtdXN0IHRyZWF0CisgICAgICogc3VjaCBhIGhhbmRsZSBhcyBpZiBpdCBpcyByYXcgYW5kIG11c3Qgbm90IHJldHVybiBCQURfQlVGRkVSLiBUaGUKKyAgICAgKiByZXR1cm5lZCBoYW5kbGUgaXMgaW5kZXBlbmRlbnQgZnJvbSB0aGUgaW5wdXQgaGFuZGxlIGFzIHVzdWFsLCBhbmQKKyAgICAgKiBmcmVlQnVmZmVyIG11c3QgYmUgY2FsbGVkIG9uIGl0IHdoZW4gaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSByYXdIYW5kbGUgaXMgdGhlIHJhdyBidWZmZXIgaGFuZGxlIHRvIGltcG9ydC4KKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICAgICAgICAgICBCQURfQlVGRkVSIHdoZW4gdGhlIHJhdyBoYW5kbGUgaXMgaW52YWxpZC4KKyAgICAgKiAgICAgICAgICAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSByYXcgaGFuZGxlIGNhbm5vdCBiZSBpbXBvcnRlZCBhdAorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgdGltZS4KKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBpcyB0aGUgaW1wb3J0ZWQgYnVmZmVyIGhhbmRsZSBhbmQgaGFzIHRoZSB0eXBlCisgICAgICogICAgICAgICBidWZmZXJfaGFuZGxlX3QuCisgICAgICovCisgICAgQGVudHJ5CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGltcG9ydEJ1ZmZlcihoYW5kbGUgcmF3SGFuZGxlKSBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLCBwb2ludGVyIGJ1ZmZlcik7CisKKyAgICAvKioKKyAgICAgKiBGcmVlcyBhIGJ1ZmZlciBoYW5kbGUuIEJ1ZmZlciBoYW5kbGVzIHJldHVybmVkIGJ5IGltcG9ydEJ1ZmZlciBtdXN0IGJlCisgICAgICogZnJlZWQgd2l0aCB0aGlzIGZ1bmN0aW9uIHdoZW4gbm8gbG9uZ2VyIG5lZWRlZC4KKyAgICAgKgorICAgICAqIFRoaXMgZnVuY3Rpb24gbXVzdCBmcmVlIHVwIGFsbCByZXNvdXJjZXMgYWxsb2NhdGVkIGJ5IGltcG9ydEJ1ZmZlciBmb3IKKyAgICAgKiB0aGUgaW1wb3J0ZWQgaGFuZGxlLiBGb3IgZXhhbXBsZSwgaWYgdGhlIGltcG9ydGVkIGhhbmRsZSB3YXMgY3JlYXRlZAorICAgICAqIHdpdGggbmF0aXZlX2hhbmRsZV9jcmVhdGUsIHRoaXMgZnVuY3Rpb24gbXVzdCBjYWxsIG5hdGl2ZV9oYW5kbGVfY2xvc2UKKyAgICAgKiBhbmQgbmF0aXZlX2hhbmRsZV9kZWxldGUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIGlzIE5PTkUgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICAgICAgICAgICBCQURfQlVGRkVSIHdoZW4gdGhlIGJ1ZmZlciBpcyBpbnZhbGlkLgorICAgICAqLworICAgIEBleGl0CisgICAgQGNhbGxmbG93KG5leHQ9IioiKQorICAgIGZyZWVCdWZmZXIocG9pbnRlciBidWZmZXIpIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IpOworCisgICAgLyoqCisgICAgICogTG9ja3MgdGhlIGdpdmVuIGJ1ZmZlciBmb3IgdGhlIHNwZWNpZmllZCBDUFUgdXNhZ2UuCisgICAgICoKKyAgICAgKiBMb2NraW5nIHRoZSBzYW1lIGJ1ZmZlciBzaW11bHRhbmVvdXNseSBmcm9tIG11bHRpcGxlIHRocmVhZHMgaXMKKyAgICAgKiBwZXJtaXR0ZWQsIGJ1dCBpZiBhbnkgb2YgdGhlIHRocmVhZHMgYXR0ZW1wdCB0byBsb2NrIHRoZSBidWZmZXIgZm9yCisgICAgICogd3JpdGluZywgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZCwgZXhjZXB0IHRoYXQgaXQgbXVzdCBub3QgY2F1c2UKKyAgICAgKiBwcm9jZXNzIHRlcm1pbmF0aW9uIG9yIGJsb2NrIHRoZSBjbGllbnQgaW5kZWZpbml0ZWx5LiBMZWF2aW5nIHRoZQorICAgICAqIGJ1ZmZlciBjb250ZW50IGluIGFuIGluZGV0ZXJtaW5hdGUgc3RhdGUgb3IgcmV0dXJuaW5nIGFuIGVycm9yIGFyZSBib3RoCisgICAgICogYWNjZXB0YWJsZS4KKyAgICAgKgorICAgICAqIFRoZSBjbGllbnQgbXVzdCBub3QgbW9kaWZ5IHRoZSBjb250ZW50IG9mIHRoZSBidWZmZXIgb3V0c2lkZSBvZgorICAgICAqIGFjY2Vzc1JlZ2lvbiwgYW5kIHRoZSBkZXZpY2UgbmVlZCBub3QgZ3VhcmFudGVlIHRoYXQgY29udGVudCBvdXRzaWRlIG9mCisgICAgICogYWNjZXNzUmVnaW9uIGlzIHZhbGlkIGZvciByZWFkaW5nLiBUaGUgcmVzdWx0IG9mIHJlYWRpbmcgb3Igd3JpdGluZworICAgICAqIG91dHNpZGUgb2YgYWNjZXNzUmVnaW9uIGlzIHVuZGVmaW5lZCwgZXhjZXB0IHRoYXQgaXQgbXVzdCBub3QgY2F1c2UKKyAgICAgKiBwcm9jZXNzIHRlcm1pbmF0aW9uLgorICAgICAqCisgICAgICogZGF0YSB3aWxsIGJlIGZpbGxlZCB3aXRoIGEgcG9pbnRlciB0byB0aGUgbG9ja2VkIGJ1ZmZlciBtZW1vcnkuIFRoaXMKKyAgICAgKiBhZGRyZXNzIHdpbGwgcmVwcmVzZW50IHRoZSB0b3AtbGVmdCBjb3JuZXIgb2YgdGhlIGVudGlyZSBidWZmZXIsIGV2ZW4KKyAgICAgKiBpZiBhY2Nlc3NSZWdpb24gZG9lcyBub3QgYmVnaW4gYXQgdGhlIHRvcC1sZWZ0IGNvcm5lci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgaXMgdGhlIGJ1ZmZlciB0byBsb2NrLgorICAgICAqIEBwYXJhbSBjcHVVc2FnZSBzcGVjaWZpZXMgb25lIG9yIG1vcmUgQ1BVIHVzYWdlIGZsYWdzIHRvIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGFjY2Vzc1JlZ2lvbiBpcyB0aGUgcG9ydGlvbiBvZiB0aGUgYnVmZmVyIHRoYXQgdGhlIGNsaWVudAorICAgICAqICAgICAgICBpbnRlbmRzIHRvIGFjY2Vzcy4KKyAgICAgKiBAcGFyYW0gYWNxdWlyZUZlbmNlLCB3aGVuIG5vbi1lbXB0eSwgaXMgYSBoYW5kbGUgY29udGFpbmluZyBhIGZpbGUKKyAgICAgKiAgICAgICAgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSBzeW5jIGZlbmNlIG9iamVjdCwgd2hpY2ggd2lsbCBiZQorICAgICAqICAgICAgICBzaWduYWxlZCB3aGVuIGl0IGlzIHNhZmUgZm9yIHRoZSBtYXBwZXIgdG8gbG9jayB0aGUgYnVmZmVyLiBJZgorICAgICAqICAgICAgICBpdCBpcyBhbHJlYWR5IHNhZmUgdG8gbG9jaywgYWNxdWlyZUZlbmNlIGlzIGVtcHR5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9CVUZGRVIgd2hlbiB0aGUgYnVmZmVyIGlzIGludmFsaWQgb3IgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jb21wYXRpYmxlIHdpdGggdGhpcyBmdW5jdGlvbi4KKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9WQUxVRSB3aGVuIGNwdVVzYWdlIGlzIDAsIGNvbnRhaW5zIG5vbi1DUFUgdXNhZ2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgb3IgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGJ1ZmZlci4KKyAgICAgKiAgICAgICAgICAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSBidWZmZXIgY2Fubm90IGJlIGxvY2tlZCBhdCB0aGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSwgYnV0IGxvY2tpbmcgbWF5IHN1Y2NlZWQgYXQgYSBmdXR1cmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLgorICAgICAqIEByZXR1cm4gZGF0YSBpcyBhIENQVS1hY2Nlc3NpYmxlIHBvaW50ZXIgdG8gdGhlIGJ1ZmZlciBkYXRhLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSJ1bmxvY2siKQorICAgIGxvY2socG9pbnRlciBidWZmZXIsCisgICAgICAgICBiaXRmaWVsZDxCdWZmZXJVc2FnZT4gY3B1VXNhZ2UsCisgICAgICAgICBSZWN0IGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgIGhhbmRsZSBhY3F1aXJlRmVuY2UpCisgICAgICAgIGdlbmVyYXRlcyAoRXJyb3IgZXJyb3IsCisgICAgICAgICAgICAgICAgICAgcG9pbnRlciBkYXRhKTsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgbGFyZ2VseSB0aGUgc2FtZSBhcyBsb2NrKCksIGV4Y2VwdCB0aGF0IGluc3RlYWQgb2YgcmV0dXJuaW5nIGEKKyAgICAgKiBwb2ludGVyIGRpcmVjdGx5IHRvIHRoZSBidWZmZXIgZGF0YSwgaXQgcmV0dXJucyBhbiBZQ2JDckxheW91dCBzdHJ1Y3QKKyAgICAgKiBkZXNjcmliaW5nIGhvdyB0byBhY2Nlc3MgdGhlIGRhdGEgcGxhbmVzLgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IHdvcmsgb24gYnVmZmVycyB3aXRoIFBpeGVsRm9ybWF0OjpZQ2JDcl8qXzg4OCBpZgorICAgICAqIHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlLCBhcyB3ZWxsIGFzIHdpdGggYW55IG90aGVyIGZvcm1hdHMgcmVxdWVzdGVkIGJ5CisgICAgICogbXVsdGltZWRpYSBjb2RlY3Mgd2hlbiB0aGV5IGFyZSBjb25maWd1cmVkIHdpdGggYQorICAgICAqIGZsZXhpYmxlLVlVVi1jb21wYXRpYmxlIGNvbG9yIGZvcm1hdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgaXMgdGhlIGJ1ZmZlciB0byBsb2NrLgorICAgICAqIEBwYXJhbSBjcHVVc2FnZSBzcGVjaWZpZXMgb25lIG9yIG1vcmUgQ1BVIHVzYWdlIGZsYWdzIHRvIHJlcXVlc3QuCisgICAgICogQHBhcmFtIGFjY2Vzc1JlZ2lvbiBpcyB0aGUgcG9ydGlvbiBvZiB0aGUgYnVmZmVyIHRoYXQgdGhlIGNsaWVudAorICAgICAqICAgICAgICBpbnRlbmRzIHRvIGFjY2Vzcy4KKyAgICAgKiBAcGFyYW0gYWNxdWlyZUZlbmNlLCB3aGVuIG5vbi1lbXB0eSwgaXMgYSBoYW5kbGUgY29udGFpbmluZyBhIGZpbGUKKyAgICAgKiAgICAgICAgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gYSBzeW5jIGZlbmNlIG9iamVjdCwgd2hpY2ggd2lsbCBiZQorICAgICAqICAgICAgICBzaWduYWxlZCB3aGVuIGl0IGlzIHNhZmUgZm9yIHRoZSBtYXBwZXIgdG8gbG9jayB0aGUgYnVmZmVyLiBJZgorICAgICAqICAgICAgICBpdCBpcyBhbHJlYWR5IHNhZmUgdG8gbG9jaywgYWNxdWlyZUZlbmNlIGlzIGVtcHR5LgorICAgICAqIEByZXR1cm4gZXJyb3IgaXMgTk9ORSB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9CVUZGRVIgd2hlbiB0aGUgYnVmZmVyIGlzIGludmFsaWQgb3IgaXMKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jb21wYXRpYmxlIHdpdGggdGhpcyBmdW5jdGlvbi4KKyAgICAgKiAgICAgICAgICAgICAgICAgIEJBRF9WQUxVRSB3aGVuIGNwdVVzYWdlIGlzIDAsIGNvbnRhaW5zIG5vbi1DUFUgdXNhZ2UKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgb3IgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGJ1ZmZlci4KKyAgICAgKiAgICAgICAgICAgICAgICAgIE5PX1JFU09VUkNFUyB3aGVuIHRoZSBidWZmZXIgY2Fubm90IGJlIGxvY2tlZCBhdCB0aGlzCisgICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZSwgYnV0IGxvY2tpbmcgbWF5IHN1Y2NlZWQgYXQgYSBmdXR1cmUKKyAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLgorICAgICAqIEByZXR1cm4gbGF5b3V0IGlzIHRoZSBkYXRhIGxheW91dCBvZiB0aGUgYnVmZmVyLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSJ1bmxvY2siKQorICAgIGxvY2tZQ2JDcihwb2ludGVyIGJ1ZmZlciwKKyAgICAgICAgICAgICAgYml0ZmllbGQ8QnVmZmVyVXNhZ2U+IGNwdVVzYWdlLAorICAgICAgICAgICAgICBSZWN0IGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgICAgICAgaGFuZGxlIGFjcXVpcmVGZW5jZSkKKyAgICAgICAgZ2VuZXJhdGVzIChFcnJvciBlcnJvciwKKyAgICAgICAgICAgICAgICAgICBZQ2JDckxheW91dCBsYXlvdXQpOworCisgICAgLyoqCisgICAgICogVW5sb2NrcyBhIGJ1ZmZlciB0byBpbmRpY2F0ZSBhbGwgQ1BVIGFjY2Vzc2VzIHRvIHRoZSBidWZmZXIgaGF2ZQorICAgICAqIGNvbXBsZXRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgaXMgdGhlIGJ1ZmZlciB0byB1bmxvY2suCisgICAgICogQHJldHVybiBlcnJvciBpcyBOT05FIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgICAgICAgICAgQkFEX0JVRkZFUiB3aGVuIHRoZSBidWZmZXIgaXMgaW52YWxpZCBvciBub3QgbG9ja2VkLgorICAgICAqIEByZXR1cm4gcmVsZWFzZUZlbmNlLCB3aGVuIG5vbi1lbXB0eSwgaXMgYSBoYW5kbGUgY29udGFpbmluZyBhIGZpbGUKKyAgICAgKiAgICAgICAgIGRlc2NyaXB0b3IgcmVmZXJyaW5nIHRvIGEgc3luYyBmZW5jZSBvYmplY3QuIFRoZSBzeW5jIGZlbmNlCisgICAgICogICAgICAgICBvYmplY3Qgd2lsbCBiZSBzaWduYWxlZCB3aGVuIHRoZSBtYXBwZXIgaGFzIGNvbXBsZXRlZCBhbnkKKyAgICAgKiAgICAgICAgIHBlbmRpbmcgd29yay4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgdW5sb2NrKHBvaW50ZXIgYnVmZmVyKQorICAgICAgICBnZW5lcmF0ZXMgKEVycm9yIGVycm9yLAorICAgICAgICAgICAgICAgICAgIGhhbmRsZSByZWxlYXNlRmVuY2UpOworfTsKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc3ZDk2NgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNDAgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHZlbmRvcjogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJHcmFsbG9jTWFwcGVyLmNwcCIsICJHcmFsbG9jME1hcHBlci5jcHAiLCAiR3JhbGxvYzFNYXBwZXIuY3BwIl0sCisgICAgY3BwZmxhZ3M6IFsiLVdhbGwiLCAiLVdleHRyYSJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlic3luYyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9oZWFkZXJzIHsKKyAgICBuYW1lOiAibGliZ3JhbGxvY21hcHBlcmluY2x1ZGVzIiwKKyAgICB2ZW5kb3I6IHRydWUsCisgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyIuIl0sCit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzBNYXBwZXIuY3BwIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MwTWFwcGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOGY1MDE2Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MwTWFwcGVyLmNwcApAQCAtMCwwICsxLDE1NiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR3JhbGxvYzBNYXBwZXIiCisKKyNpbmNsdWRlICJHcmFsbG9jME1hcHBlci5oIgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworR3JhbGxvYzBNYXBwZXI6OkdyYWxsb2MwTWFwcGVyKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpCisgICAgOiBtTW9kdWxlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3JhbGxvY19tb2R1bGVfdCo+KG1vZHVsZSkpLAorICAgICAgbU1pbm9yKG1vZHVsZS0+bW9kdWxlX2FwaV92ZXJzaW9uICYgMHhmZikgeworICAgIG1DYXBhYmlsaXRpZXMuaGlnaFVzYWdlQml0cyA9IGZhbHNlOworICAgIG1DYXBhYmlsaXRpZXMubGF5ZXJlZEJ1ZmZlcnMgPSBmYWxzZTsKKyAgICBtQ2FwYWJpbGl0aWVzLnVucmVnaXN0ZXJJbXBseURlbGV0ZSA9IGZhbHNlOworfQorCitFcnJvciBHcmFsbG9jME1hcHBlcjo6cmVnaXN0ZXJCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkgeworICAgIGludCByZXN1bHQgPSBtTW9kdWxlLT5yZWdpc3RlckJ1ZmZlcihtTW9kdWxlLCBidWZmZXJIYW5kbGUpOworICAgIHJldHVybiByZXN1bHQgPyBFcnJvcjo6QkFEX0JVRkZFUiA6IEVycm9yOjpOT05FOworfQorCit2b2lkIEdyYWxsb2MwTWFwcGVyOjp1bnJlZ2lzdGVyQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIHsKKyAgICBtTW9kdWxlLT51bnJlZ2lzdGVyQnVmZmVyKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSk7Cit9CisKK0Vycm9yIEdyYWxsb2MwTWFwcGVyOjpsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiogb3V0RGF0YSkgeworICAgIGludCByZXN1bHQ7CisgICAgdm9pZCogZGF0YSA9IG51bGxwdHI7CisgICAgaWYgKG1NaW5vciA+PSAzICYmIG1Nb2R1bGUtPmxvY2tBc3luYykgeworICAgICAgICAvLyBEdXAgZmVuY2VGZCBhcyBpdCBpcyBnb2luZyB0byBiZSBvd25lZCBieSBncmFsbG9jLiAgTm90ZSB0aGF0IGl0IGlzCisgICAgICAgIC8vIGdyYWxsb2MncyByZXNwb25zaWJpbGl0eSB0byBjbG9zZSBpdCwgZXZlbiBvbiBsb2NraW5nIGVycm9ycy4KKyAgICAgICAgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICAgICAgZmVuY2VGZCA9IGR1cChmZW5jZUZkKTsKKyAgICAgICAgICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+bG9ja0FzeW5jKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSwgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi53aWR0aCwgYWNjZXNzUmVnaW9uLmhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkYXRhLCBmZW5jZUZkKTsKKyAgICB9IGVsc2UgeworICAgICAgICB3YWl0RmVuY2VGZChmZW5jZUZkLCAiR3JhbGxvYzBNYXBwZXI6OmxvY2siKTsKKworICAgICAgICByZXN1bHQgPSBtTW9kdWxlLT5sb2NrKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSwgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLmxlZnQsIGFjY2Vzc1JlZ2lvbi50b3AsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLndpZHRoLCBhY2Nlc3NSZWdpb24uaGVpZ2h0LCAmZGF0YSk7CisgICAgfQorCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9WQUxVRTsKKyAgICB9IGVsc2UgeworICAgICAgICAqb3V0RGF0YSA9IGRhdGE7CisgICAgICAgIHJldHVybiBFcnJvcjo6Tk9ORTsKKyAgICB9Cit9CisKK0Vycm9yIEdyYWxsb2MwTWFwcGVyOjpsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZQ2JDckxheW91dCogb3V0TGF5b3V0KSB7CisgICAgaW50IHJlc3VsdDsKKyAgICBhbmRyb2lkX3ljYmNyIHljYmNyID0ge307CisgICAgaWYgKG1NaW5vciA+PSAzICYmIG1Nb2R1bGUtPmxvY2tBc3luY195Y2JjcikgeworICAgICAgICAvLyBEdXAgZmVuY2VGZCBhcyBpdCBpcyBnb2luZyB0byBiZSBvd25lZCBieSBncmFsbG9jLiAgTm90ZSB0aGF0IGl0IGlzCisgICAgICAgIC8vIGdyYWxsb2MncyByZXNwb25zaWJpbGl0eSB0byBjbG9zZSBpdCwgZXZlbiBvbiBsb2NraW5nIGVycm9ycy4KKyAgICAgICAgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICAgICAgZmVuY2VGZCA9IGR1cChmZW5jZUZkKTsKKyAgICAgICAgICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9fUkVTT1VSQ0VTOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+bG9ja0FzeW5jX3ljYmNyKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSwgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi53aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2Vzc1JlZ2lvbi5oZWlnaHQsICZ5Y2JjciwgZmVuY2VGZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgd2FpdEZlbmNlRmQoZmVuY2VGZCwgIkdyYWxsb2MwTWFwcGVyOjpsb2NrWUNiQ3IiKTsKKworICAgICAgICBpZiAobU1vZHVsZS0+bG9ja195Y2JjcikgeworICAgICAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+bG9ja195Y2JjcihtTW9kdWxlLCBidWZmZXJIYW5kbGUsIGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24ubGVmdCwgYWNjZXNzUmVnaW9uLnRvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXNzUmVnaW9uLndpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nlc3NSZWdpb24uaGVpZ2h0LCAmeWNiY3IpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzdWx0ID0gLUVJTlZBTDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfVkFMVUU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb3V0TGF5b3V0LT55ID0geWNiY3IueTsKKyAgICAgICAgb3V0TGF5b3V0LT5jYiA9IHljYmNyLmNiOworICAgICAgICBvdXRMYXlvdXQtPmNyID0geWNiY3IuY3I7CisgICAgICAgIG91dExheW91dC0+eVN0cmlkZSA9IHljYmNyLnlzdHJpZGU7CisgICAgICAgIG91dExheW91dC0+Y1N0cmlkZSA9IHljYmNyLmNzdHJpZGU7CisgICAgICAgIG91dExheW91dC0+Y2hyb21hU3RlcCA9IHljYmNyLmNocm9tYV9zdGVwOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorfQorCitFcnJvciBHcmFsbG9jME1hcHBlcjo6dW5sb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCogb3V0RmVuY2VGZCkgeworICAgIGludCByZXN1bHQ7CisgICAgaW50IGZlbmNlRmQgPSAtMTsKKyAgICBpZiAobU1pbm9yID49IDMgJiYgbU1vZHVsZS0+dW5sb2NrQXN5bmMpIHsKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+dW5sb2NrQXN5bmMobU1vZHVsZSwgYnVmZmVySGFuZGxlLCAmZmVuY2VGZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmVzdWx0ID0gbU1vZHVsZS0+dW5sb2NrKG1Nb2R1bGUsIGJ1ZmZlckhhbmRsZSk7CisgICAgfQorCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICAvLyB3ZSBhbHdheXMgb3duIHRoZSBmZW5jZUZkIGV2ZW4gd2hlbiB1bmxvY2sgZmFpbGVkCisgICAgICAgIGlmIChmZW5jZUZkID49IDApIHsKKyAgICAgICAgICAgIGNsb3NlKGZlbmNlRmQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIEVycm9yOjpCQURfVkFMVUU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgKm91dEZlbmNlRmQgPSBmZW5jZUZkOworICAgICAgICByZXR1cm4gRXJyb3I6Ok5PTkU7CisgICAgfQorfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbWFwcGVyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jME1hcHBlci5oIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MwTWFwcGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTc5MmE2OQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jME1hcHBlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQzBNQVBQRVJfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0MwTUFQUEVSX0gKKworI2luY2x1ZGUgIkdyYWxsb2NNYXBwZXIuaCIKKworI2luY2x1ZGUgPGhhcmR3YXJlL2dyYWxsb2MuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK2NsYXNzIEdyYWxsb2MwTWFwcGVyIDogcHVibGljIEdyYWxsb2NNYXBwZXIgeworICAgcHVibGljOgorICAgIEdyYWxsb2MwTWFwcGVyKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpOworCisgICBwcml2YXRlOgorICAgIEVycm9yIHJlZ2lzdGVyQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIG92ZXJyaWRlOworICAgIHZvaWQgdW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSBvdmVycmlkZTsKKyAgICBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgIHZvaWQqKiBvdXREYXRhKSBvdmVycmlkZTsKKyAgICBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgIFlDYkNyTGF5b3V0KiBvdXRMYXlvdXQpIG92ZXJyaWRlOworICAgIEVycm9yIHVubG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCBpbnQqIG91dEZlbmNlRmQpIG92ZXJyaWRlOworCisgICAgY29uc3QgZ3JhbGxvY19tb2R1bGVfdCogbU1vZHVsZTsKKyAgICB1aW50OF90IG1NaW5vcjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQzBNQVBQRVJfSApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2MxTWFwcGVyLmNwcCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jMU1hcHBlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFlNWFkYwotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jMU1hcHBlci5jcHAKQEAgLTAsMCArMSwyNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIkdyYWxsb2MxTWFwcGVyIgorCisjaW5jbHVkZSAiR3JhbGxvYzFNYXBwZXIuaCIKKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpCdWZmZXJVc2FnZTsKKworR3JhbGxvYzFNYXBwZXI6OkdyYWxsb2MxTWFwcGVyKGNvbnN0IGh3X21vZHVsZV90KiBtb2R1bGUpCisgICAgOiBtRGV2aWNlKG51bGxwdHIpLCBtRGlzcGF0Y2goKSB7CisgICAgaW50IHJlc3VsdCA9IGdyYWxsb2MxX29wZW4obW9kdWxlLCAmbURldmljZSk7CisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMKCJmYWlsZWQgdG8gb3BlbiBncmFsbG9jMSBkZXZpY2U6ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJlcnJvcigtcmVzdWx0KSk7CisgICAgfQorCisgICAgaW5pdENhcGFiaWxpdGllcygpOworICAgIGluaXREaXNwYXRjaCgpOworfQorCitHcmFsbG9jMU1hcHBlcjo6fkdyYWxsb2MxTWFwcGVyKCkgeworICAgIGdyYWxsb2MxX2Nsb3NlKG1EZXZpY2UpOworfQorCit2b2lkIEdyYWxsb2MxTWFwcGVyOjppbml0Q2FwYWJpbGl0aWVzKCkgeworICAgIG1DYXBhYmlsaXRpZXMuaGlnaFVzYWdlQml0cyA9IHRydWU7CisgICAgbUNhcGFiaWxpdGllcy5sYXllcmVkQnVmZmVycyA9IGZhbHNlOworICAgIG1DYXBhYmlsaXRpZXMudW5yZWdpc3RlckltcGx5RGVsZXRlID0gZmFsc2U7CisKKyAgICB1aW50MzJfdCBjb3VudCA9IDA7CisgICAgbURldmljZS0+Z2V0Q2FwYWJpbGl0aWVzKG1EZXZpY2UsICZjb3VudCwgbnVsbHB0cik7CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBjYXBhYmlsaXRpZXMoY291bnQpOworICAgIG1EZXZpY2UtPmdldENhcGFiaWxpdGllcyhtRGV2aWNlLCAmY291bnQsIGNhcGFiaWxpdGllcy5kYXRhKCkpOworICAgIGNhcGFiaWxpdGllcy5yZXNpemUoY291bnQpOworCisgICAgZm9yIChhdXRvIGNhcGFiaWxpdHkgOiBjYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgc3dpdGNoIChjYXBhYmlsaXR5KSB7CisgICAgICAgICAgICBjYXNlIEdSQUxMT0MxX0NBUEFCSUxJVFlfTEFZRVJFRF9CVUZGRVJTOgorICAgICAgICAgICAgICAgIG1DYXBhYmlsaXRpZXMubGF5ZXJlZEJ1ZmZlcnMgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBHUkFMTE9DMV9DQVBBQklMSVRZX1JFTEVBU0VfSU1QTFlfREVMRVRFOgorICAgICAgICAgICAgICAgIG1DYXBhYmlsaXRpZXMudW5yZWdpc3RlckltcGx5RGVsZXRlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit2b2lkIEdyYWxsb2MxTWFwcGVyOjppbml0RGlzcGF0Y2goZ3JhbGxvYzFfZnVuY3Rpb25fZGVzY3JpcHRvcl90IGRlc2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVCogb3V0UGZuKSB7CisgICAgYXV0byBwZm4gPSBtRGV2aWNlLT5nZXRGdW5jdGlvbihtRGV2aWNlLCBkZXNjKTsKKyAgICBpZiAoIXBmbikgeworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMKCJmYWlsZWQgdG8gZ2V0IGdyYWxsb2MxIGZ1bmN0aW9uICVkIiwgZGVzYyk7CisgICAgfQorCisgICAgKm91dFBmbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8VD4ocGZuKTsKK30KKwordm9pZCBHcmFsbG9jMU1hcHBlcjo6aW5pdERpc3BhdGNoKCkgeworICAgIGluaXREaXNwYXRjaChHUkFMTE9DMV9GVU5DVElPTl9SRVRBSU4sICZtRGlzcGF0Y2gucmV0YWluKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fUkVMRUFTRSwgJm1EaXNwYXRjaC5yZWxlYXNlKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fR0VUX05VTV9GTEVYX1BMQU5FUywKKyAgICAgICAgICAgICAgICAgJm1EaXNwYXRjaC5nZXROdW1GbGV4UGxhbmVzKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fTE9DSywgJm1EaXNwYXRjaC5sb2NrKTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fTE9DS19GTEVYLCAmbURpc3BhdGNoLmxvY2tGbGV4KTsKKyAgICBpbml0RGlzcGF0Y2goR1JBTExPQzFfRlVOQ1RJT05fVU5MT0NLLCAmbURpc3BhdGNoLnVubG9jayk7Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjp0b0Vycm9yKGludDMyX3QgZXJyb3IpIHsKKyAgICBzd2l0Y2ggKGVycm9yKSB7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfTk9ORToKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6Tk9ORTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9CQURfREVTQ1JJUFRPUjoKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0RFU0NSSVBUT1I7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfQkFEX0hBTkRMRToKKyAgICAgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0JVRkZFUjsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9CQURfVkFMVUU6CisgICAgICAgICAgICByZXR1cm4gRXJyb3I6OkJBRF9WQUxVRTsKKyAgICAgICAgY2FzZSBHUkFMTE9DMV9FUlJPUl9OT1RfU0hBUkVEOgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT05FOyAgLy8gdGhpcyBpcyBmaW5lCisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfTk9fUkVTT1VSQ0VTOgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgICAgIGNhc2UgR1JBTExPQzFfRVJST1JfVU5ERUZJTkVEOgorICAgICAgICBjYXNlIEdSQUxMT0MxX0VSUk9SX1VOU1VQUE9SVEVEOgorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpVTlNVUFBPUlRFRDsKKyAgICB9Cit9CisKK2Jvb2wgR3JhbGxvYzFNYXBwZXI6OnRvWUNiQ3JMYXlvdXQoY29uc3QgYW5kcm9pZF9mbGV4X2xheW91dCYgZmxleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUNiQ3JMYXlvdXQqIG91dExheW91dCkgeworICAgIC8vIG11c3QgYmUgWUNiQ3IKKyAgICBpZiAoZmxleC5mb3JtYXQgIT0gRkxFWF9GT1JNQVRfWUNiQ3IgfHwgZmxleC5udW1fcGxhbmVzIDwgMykgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgY29uc3QgYXV0byYgcGxhbmUgPSBmbGV4LnBsYW5lc1tpXTsKKyAgICAgICAgLy8gbXVzdCBoYXZlIDgtYml0IGRlcHRoCisgICAgICAgIGlmIChwbGFuZS5iaXRzX3Blcl9jb21wb25lbnQgIT0gOCB8fCBwbGFuZS5iaXRzX3VzZWQgIT0gOCkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHBsYW5lLmNvbXBvbmVudCA9PSBGTEVYX0NPTVBPTkVOVF9ZKSB7CisgICAgICAgICAgICAvLyBZIG11c3Qgbm90IGJlIGludGVybGVhdmVkCisgICAgICAgICAgICBpZiAocGxhbmUuaF9pbmNyZW1lbnQgIT0gMSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIENiIGFuZCBDciBjYW4gYmUgaW50ZXJsZWF2ZWQKKyAgICAgICAgICAgIGlmIChwbGFuZS5oX2luY3JlbWVudCAhPSAxICYmIHBsYW5lLmhfaW5jcmVtZW50ICE9IDIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXBsYW5lLnZfaW5jcmVtZW50KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoZmxleC5wbGFuZXNbMF0uY29tcG9uZW50ICE9IEZMRVhfQ09NUE9ORU5UX1kgfHwKKyAgICAgICAgZmxleC5wbGFuZXNbMV0uY29tcG9uZW50ICE9IEZMRVhfQ09NUE9ORU5UX0NiIHx8CisgICAgICAgIGZsZXgucGxhbmVzWzJdLmNvbXBvbmVudCAhPSBGTEVYX0NPTVBPTkVOVF9DcikgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgY29uc3QgYXV0byYgeSA9IGZsZXgucGxhbmVzWzBdOworICAgIGNvbnN0IGF1dG8mIGNiID0gZmxleC5wbGFuZXNbMV07CisgICAgY29uc3QgYXV0byYgY3IgPSBmbGV4LnBsYW5lc1syXTsKKworICAgIGlmIChjYi5oX2luY3JlbWVudCAhPSBjci5oX2luY3JlbWVudCB8fCBjYi52X2luY3JlbWVudCAhPSBjci52X2luY3JlbWVudCkgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgb3V0TGF5b3V0LT55ID0geS50b3BfbGVmdDsKKyAgICBvdXRMYXlvdXQtPmNiID0gY2IudG9wX2xlZnQ7CisgICAgb3V0TGF5b3V0LT5jciA9IGNyLnRvcF9sZWZ0OworICAgIG91dExheW91dC0+eVN0cmlkZSA9IHkudl9pbmNyZW1lbnQ7CisgICAgb3V0TGF5b3V0LT5jU3RyaWRlID0gY2Iudl9pbmNyZW1lbnQ7CisgICAgb3V0TGF5b3V0LT5jaHJvbWFTdGVwID0gY2IuaF9pbmNyZW1lbnQ7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworZ3JhbGxvYzFfcmVjdF90IEdyYWxsb2MxTWFwcGVyOjphc0dyYWxsb2MxUmVjdChjb25zdCBJTWFwcGVyOjpSZWN0JiByZWN0KSB7CisgICAgcmV0dXJuIGdyYWxsb2MxX3JlY3RfdHtyZWN0LmxlZnQsIHJlY3QudG9wLCByZWN0LndpZHRoLCByZWN0LmhlaWdodH07Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjpyZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSB7CisgICAgcmV0dXJuIHRvRXJyb3IobURpc3BhdGNoLnJldGFpbihtRGV2aWNlLCBidWZmZXJIYW5kbGUpKTsKK30KKwordm9pZCBHcmFsbG9jMU1hcHBlcjo6dW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSB7CisgICAgbURpc3BhdGNoLnJlbGVhc2UobURldmljZSwgYnVmZmVySGFuZGxlKTsKK30KKworRXJyb3IgR3JhbGxvYzFNYXBwZXI6OmxvY2tCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqKiBvdXREYXRhKSB7CisgICAgLy8gRHVwIGZlbmNlRmQgYXMgaXQgaXMgZ29pbmcgdG8gYmUgb3duZWQgYnkgZ3JhbGxvYy4gIE5vdGUgdGhhdCBpdCBpcworICAgIC8vIGdyYWxsb2MncyByZXNwb25zaWJpbGl0eSB0byBjbG9zZSBpdCwgZXZlbiBvbiBsb2NraW5nIGVycm9ycy4KKyAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgIGZlbmNlRmQgPSBkdXAoZmVuY2VGZCk7CisgICAgICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjb25zdCB1aW50NjRfdCBjb25zdW1lclVzYWdlID0KKyAgICAgICAgY3B1VXNhZ2UgJiB+c3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfTUFTSyk7CisgICAgY29uc3QgYXV0byBhY2Nlc3NSZWN0ID0gYXNHcmFsbG9jMVJlY3QoYWNjZXNzUmVnaW9uKTsKKyAgICB2b2lkKiBkYXRhID0gbnVsbHB0cjsKKyAgICBpbnQzMl90IGVycm9yID0gbURpc3BhdGNoLmxvY2sobURldmljZSwgYnVmZmVySGFuZGxlLCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtZXJVc2FnZSwgJmFjY2Vzc1JlY3QsICZkYXRhLCBmZW5jZUZkKTsKKworICAgIGlmIChlcnJvciA9PSBHUkFMTE9DMV9FUlJPUl9OT05FKSB7CisgICAgICAgICpvdXREYXRhID0gZGF0YTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9FcnJvcihlcnJvcik7Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjpsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwgaW50IGZlbmNlRmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBZQ2JDckxheW91dCogb3V0TGF5b3V0KSB7CisgICAgLy8gcHJlcGFyZSBmbGV4IGxheW91dAorICAgIGFuZHJvaWRfZmxleF9sYXlvdXQgZmxleCA9IHt9OworICAgIGludDMyX3QgZXJyb3IgPQorICAgICAgICBtRGlzcGF0Y2guZ2V0TnVtRmxleFBsYW5lcyhtRGV2aWNlLCBidWZmZXJIYW5kbGUsICZmbGV4Lm51bV9wbGFuZXMpOworICAgIGlmIChlcnJvciAhPSBHUkFMTE9DMV9FUlJPUl9OT05FKSB7CisgICAgICAgIHJldHVybiB0b0Vycm9yKGVycm9yKTsKKyAgICB9CisgICAgc3RkOjp2ZWN0b3I8YW5kcm9pZF9mbGV4X3BsYW5lX3Q+IGZsZXhQbGFuZXMoZmxleC5udW1fcGxhbmVzKTsKKyAgICBmbGV4LnBsYW5lcyA9IGZsZXhQbGFuZXMuZGF0YSgpOworCisgICAgLy8gRHVwIGZlbmNlRmQgYXMgaXQgaXMgZ29pbmcgdG8gYmUgb3duZWQgYnkgZ3JhbGxvYy4gIE5vdGUgdGhhdCBpdCBpcworICAgIC8vIGdyYWxsb2MncyByZXNwb25zaWJpbGl0eSB0byBjbG9zZSBpdCwgZXZlbiBvbiBsb2NraW5nIGVycm9ycy4KKyAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgIGZlbmNlRmQgPSBkdXAoZmVuY2VGZCk7CisgICAgICAgIGlmIChmZW5jZUZkIDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIEVycm9yOjpOT19SRVNPVVJDRVM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjb25zdCB1aW50NjRfdCBjb25zdW1lclVzYWdlID0KKyAgICAgICAgY3B1VXNhZ2UgJiB+c3RhdGljX2Nhc3Q8dWludDY0X3Q+KEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfTUFTSyk7CisgICAgY29uc3QgYXV0byBhY2Nlc3NSZWN0ID0gYXNHcmFsbG9jMVJlY3QoYWNjZXNzUmVnaW9uKTsKKyAgICBlcnJvciA9IG1EaXNwYXRjaC5sb2NrRmxleChtRGV2aWNlLCBidWZmZXJIYW5kbGUsIGNwdVVzYWdlLCBjb25zdW1lclVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhY2Nlc3NSZWN0LCAmZmxleCwgZmVuY2VGZCk7CisgICAgaWYgKGVycm9yID09IEdSQUxMT0MxX0VSUk9SX05PTkUgJiYgIXRvWUNiQ3JMYXlvdXQoZmxleCwgb3V0TGF5b3V0KSkgeworICAgICAgICBBTE9HRCgidW5hYmxlIHRvIGNvbnZlcnQgYW5kcm9pZF9mbGV4X2xheW91dCB0byBZQ2JDckxheW91dCIpOworCisgICAgICAgIC8vIHVuZG8gdGhlIGxvY2sKKyAgICAgICAgZmVuY2VGZCA9IC0xOworICAgICAgICBtRGlzcGF0Y2gudW5sb2NrKG1EZXZpY2UsIGJ1ZmZlckhhbmRsZSwgJmZlbmNlRmQpOworICAgICAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgICAgICBjbG9zZShmZW5jZUZkKTsKKyAgICAgICAgfQorCisgICAgICAgIGVycm9yID0gR1JBTExPQzFfRVJST1JfQkFEX0hBTkRMRTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9FcnJvcihlcnJvcik7Cit9CisKK0Vycm9yIEdyYWxsb2MxTWFwcGVyOjp1bmxvY2tCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KiBvdXRGZW5jZUZkKSB7CisgICAgaW50IGZlbmNlRmQgPSAtMTsKKyAgICBpbnQzMl90IGVycm9yID0gbURpc3BhdGNoLnVubG9jayhtRGV2aWNlLCBidWZmZXJIYW5kbGUsICZmZW5jZUZkKTsKKworICAgIGlmIChlcnJvciA9PSBHUkFMTE9DMV9FUlJPUl9OT05FKSB7CisgICAgICAgICpvdXRGZW5jZUZkID0gZmVuY2VGZDsKKyAgICB9IGVsc2UgaWYgKGZlbmNlRmQgPj0gMCkgeworICAgICAgICAvLyB3ZSBhbHdheXMgb3duIHRoZSBmZW5jZUZkIGV2ZW4gd2hlbiB1bmxvY2sgZmFpbGVkCisgICAgICAgIGNsb3NlKGZlbmNlRmQpOworICAgIH0KKworICAgIHJldHVybiB0b0Vycm9yKGVycm9yKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIG1hcHBlcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzFNYXBwZXIuaCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jMU1hcHBlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1MmFmZGYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvYzFNYXBwZXIuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0MxTUFQUEVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DMU1BUFBFUl9ICisKKyNpbmNsdWRlICJHcmFsbG9jTWFwcGVyLmgiCisKKyNpbmNsdWRlIDxoYXJkd2FyZS9ncmFsbG9jMS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworY2xhc3MgR3JhbGxvYzFNYXBwZXIgOiBwdWJsaWMgR3JhbGxvY01hcHBlciB7CisgICBwdWJsaWM6CisgICAgR3JhbGxvYzFNYXBwZXIoY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgfkdyYWxsb2MxTWFwcGVyKCk7CisKKyAgIHByaXZhdGU6CisgICAgdm9pZCBpbml0Q2FwYWJpbGl0aWVzKCk7CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGluaXREaXNwYXRjaChncmFsbG9jMV9mdW5jdGlvbl9kZXNjcmlwdG9yX3QgZGVzYywgVCogb3V0UGZuKTsKKyAgICB2b2lkIGluaXREaXNwYXRjaCgpOworCisgICAgc3RhdGljIEVycm9yIHRvRXJyb3IoaW50MzJfdCBlcnJvcik7CisgICAgc3RhdGljIGJvb2wgdG9ZQ2JDckxheW91dChjb25zdCBhbmRyb2lkX2ZsZXhfbGF5b3V0JiBmbGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUNiQ3JMYXlvdXQqIG91dExheW91dCk7CisgICAgc3RhdGljIGdyYWxsb2MxX3JlY3RfdCBhc0dyYWxsb2MxUmVjdChjb25zdCBJTWFwcGVyOjpSZWN0JiByZWN0KTsKKworICAgIEVycm9yIHJlZ2lzdGVyQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUpIG92ZXJyaWRlOworICAgIHZvaWQgdW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSBvdmVycmlkZTsKKyAgICBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgIHZvaWQqKiBvdXREYXRhKSBvdmVycmlkZTsKKyAgICBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgIFlDYkNyTGF5b3V0KiBvdXRMYXlvdXQpIG92ZXJyaWRlOworICAgIEVycm9yIHVubG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCBpbnQqIG91dEZlbmNlRmQpIG92ZXJyaWRlOworCisgICAgZ3JhbGxvYzFfZGV2aWNlX3QqIG1EZXZpY2U7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBHUkFMTE9DMV9QRk5fUkVUQUlOIHJldGFpbjsKKyAgICAgICAgR1JBTExPQzFfUEZOX1JFTEVBU0UgcmVsZWFzZTsKKyAgICAgICAgR1JBTExPQzFfUEZOX0dFVF9OVU1fRkxFWF9QTEFORVMgZ2V0TnVtRmxleFBsYW5lczsKKyAgICAgICAgR1JBTExPQzFfUEZOX0xPQ0sgbG9jazsKKyAgICAgICAgR1JBTExPQzFfUEZOX0xPQ0tfRkxFWCBsb2NrRmxleDsKKyAgICAgICAgR1JBTExPQzFfUEZOX1VOTE9DSyB1bmxvY2s7CisgICAgfSBtRGlzcGF0Y2g7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbWFwcGVyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0MxTUFQUEVSX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jQnVmZmVyRGVzY3JpcHRvci5oIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2NCdWZmZXJEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI1YWIwNAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jQnVmZmVyRGVzY3JpcHRvci5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DQlVGRkVSREVTQ1JJUFRPUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfR1JBUEhJQ1NfTUFQUEVSX1YyXzBfR1JBTExPQ0JVRkZFUkRFU0NSSVBUT1JfSAorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9ncmFwaGljcy9tYXBwZXIvMi4wL0lNYXBwZXIuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBncmFwaGljcyB7CituYW1lc3BhY2UgbWFwcGVyIHsKK25hbWVzcGFjZSBWMl8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpncmFwaGljczo6Y29tbW9uOjpWMV8wOjpQaXhlbEZvcm1hdDsKKworLyoqCisgKiBCdWZmZXJEZXNjcmlwdG9yIGlzIGNyZWF0ZWQgYnkgSU1hcHBlciBhbmQgY29uc3VtZWQgYnkgSUFsbG9jYXRvci4gSXQgaXMKKyAqIHZlcnNpb25lZCBzbyB0aGF0IElNYXBwZXIgYW5kIElBbGxvY2F0b3IgY2FuIGJlIHVwZGF0ZWQgaW5kZXBlbmRlbnRseS4KKyAqLworY29uc3RleHByIHVpbnQzMl90IGdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yU2l6ZSA9IDc7Citjb25zdGV4cHIgdWludDMyX3QgZ3JhbGxvY0J1ZmZlckRlc2NyaXB0b3JNYWdpY1ZlcnNpb24gPSAoKDB4OTQ4NyA8PCAxNikgfCAwKTsKKworaW5saW5lIEJ1ZmZlckRlc2NyaXB0b3IgZ3JhbGxvY0VuY29kZUJ1ZmZlckRlc2NyaXB0b3IoCisgICAgY29uc3QgSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvKSB7CisgICAgQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yOworICAgIGRlc2NyaXB0b3IucmVzaXplKGdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yU2l6ZSk7CisgICAgZGVzY3JpcHRvclswXSA9IGdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yTWFnaWNWZXJzaW9uOworICAgIGRlc2NyaXB0b3JbMV0gPSBkZXNjcmlwdG9ySW5mby53aWR0aDsKKyAgICBkZXNjcmlwdG9yWzJdID0gZGVzY3JpcHRvckluZm8uaGVpZ2h0OworICAgIGRlc2NyaXB0b3JbM10gPSBkZXNjcmlwdG9ySW5mby5sYXllckNvdW50OworICAgIGRlc2NyaXB0b3JbNF0gPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZGVzY3JpcHRvckluZm8uZm9ybWF0KTsKKyAgICBkZXNjcmlwdG9yWzVdID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRlc2NyaXB0b3JJbmZvLnVzYWdlKTsKKyAgICBkZXNjcmlwdG9yWzZdID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGRlc2NyaXB0b3JJbmZvLnVzYWdlID4+IDMyKTsKKworICAgIHJldHVybiBkZXNjcmlwdG9yOworfQorCitpbmxpbmUgYm9vbCBncmFsbG9jRGVjb2RlQnVmZmVyRGVzY3JpcHRvcigKKyAgICBjb25zdCBCdWZmZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLAorICAgIElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvKiBvdXREZXNjcmlwdG9ySW5mbykgeworICAgIGlmIChkZXNjcmlwdG9yLnNpemUoKSAhPSBncmFsbG9jQnVmZmVyRGVzY3JpcHRvclNpemUgfHwKKyAgICAgICAgZGVzY3JpcHRvclswXSAhPSBncmFsbG9jQnVmZmVyRGVzY3JpcHRvck1hZ2ljVmVyc2lvbikgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgKm91dERlc2NyaXB0b3JJbmZvID0gSU1hcHBlcjo6QnVmZmVyRGVzY3JpcHRvckluZm97CisgICAgICAgIGRlc2NyaXB0b3JbMV0sCisgICAgICAgIGRlc2NyaXB0b3JbMl0sCisgICAgICAgIGRlc2NyaXB0b3JbM10sCisgICAgICAgIHN0YXRpY19jYXN0PFBpeGVsRm9ybWF0PihkZXNjcmlwdG9yWzRdKSwKKyAgICAgICAgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihkZXNjcmlwdG9yWzZdKSA8PCAzMikgfCBkZXNjcmlwdG9yWzVdLAorICAgIH07CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIG1hcHBlcgorfSAgLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DQlVGRkVSREVTQ1JJUFRPUl9ICmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvY01hcHBlci5jcHAgYi9ncmFwaGljcy9tYXBwZXIvMi4wL2RlZmF1bHQvR3JhbGxvY01hcHBlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE2MTQzZAotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jTWFwcGVyLmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiR3JhbGxvY01hcHBlclBhc3N0aHJvdWdoIgorCisjaW5jbHVkZSAiR3JhbGxvY01hcHBlci5oIgorCisjaW5jbHVkZSAiR3JhbGxvYzBNYXBwZXIuaCIKKyNpbmNsdWRlICJHcmFsbG9jMU1hcHBlci5oIgorI2luY2x1ZGUgIkdyYWxsb2NCdWZmZXJEZXNjcmlwdG9yLmgiCisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorI2luY2x1ZGUgPHN5bmMvc3luYy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OworCituYW1lc3BhY2UgeworCitjbGFzcyBSZWdpc3RlcmVkSGFuZGxlUG9vbCB7CisgICBwdWJsaWM6CisgICAgYm9vbCBhZGQoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSkgeworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtTXV0ZXgpOworICAgICAgICByZXR1cm4gbUhhbmRsZXMuaW5zZXJ0KGJ1ZmZlckhhbmRsZSkuc2Vjb25kOworICAgIH0KKworICAgIG5hdGl2ZV9oYW5kbGVfdCogcG9wKHZvaWQqIGJ1ZmZlcikgeworICAgICAgICBhdXRvIGJ1ZmZlckhhbmRsZSA9IHN0YXRpY19jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlcik7CisKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgcmV0dXJuIG1IYW5kbGVzLmVyYXNlKGJ1ZmZlckhhbmRsZSkgPT0gMSA/IGJ1ZmZlckhhbmRsZSA6IG51bGxwdHI7CisgICAgfQorCisgICAgYnVmZmVyX2hhbmRsZV90IGdldChjb25zdCB2b2lkKiBidWZmZXIpIHsKKyAgICAgICAgYXV0byBidWZmZXJIYW5kbGUgPSBzdGF0aWNfY2FzdDxidWZmZXJfaGFuZGxlX3Q+KGJ1ZmZlcik7CisKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobU11dGV4KTsKKyAgICAgICAgcmV0dXJuIG1IYW5kbGVzLmNvdW50KGJ1ZmZlckhhbmRsZSkgPT0gMSA/IGJ1ZmZlckhhbmRsZSA6IG51bGxwdHI7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIHN0ZDo6bXV0ZXggbU11dGV4OworICAgIHN0ZDo6dW5vcmRlcmVkX3NldDxidWZmZXJfaGFuZGxlX3Q+IG1IYW5kbGVzOworfTsKKworLy8gR3JhcGhpY0J1ZmZlck1hcHBlciBpcyBleHBlY3RlZCB0byBiZSB2YWxpZCAoYW5kIGxlYWtlZCkgZHVyaW5nIHByb2Nlc3MKKy8vIHRlcm1pbmF0aW9uLiAgV2UgbmVlZCB0byBtYWtlIHN1cmUgSU1hcHBlciwgYW5kIGluIHR1cm4sIGdSZWdpc3RlcmVkSGFuZGxlcworLy8gYXJlIHZhbGlkIGFzIHdlbGwuICBDcmVhdGUgdGhlIHJlZ2lzdGVyZWQgaGFuZGxlIHBvb2wgb24gdGhlIGhlYXAsIGFuZCBsZXQKKy8vIGl0IGxlYWsgZm9yIHNpbXBsaWNpdHkuCisvLworLy8gSG93ZXZlciwgdGhlcmUgaXMgbm8gd2F5IHRvIG1ha2Ugc3VyZSBncmFsbG9jMC9ncmFsbG9jMSBhcmUgdmFsaWQuICBBbnkgdXNlCisvLyBvZiBzdGF0aWMvZ2xvYmFsIG9iamVjdCBpbiBncmFsbG9jMC9ncmFsbG9jMSB0aGF0IG1heSBoYXZlIGJlZW4gZGVzdHJ1Y3RlZAorLy8gaXMgcG90ZW50aWFsbHkgYnJva2VuLgorUmVnaXN0ZXJlZEhhbmRsZVBvb2wqIGdSZWdpc3RlcmVkSGFuZGxlcyA9IG5ldyBSZWdpc3RlcmVkSGFuZGxlUG9vbDsKKworfSAgLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCitib29sIEdyYWxsb2NNYXBwZXI6OnZhbGlkYXRlRGVzY3JpcHRvckluZm8oCisgICAgY29uc3QgQnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvKSBjb25zdCB7CisgICAgY29uc3QgdWludDY0X3QgdmFsaWRVc2FnZUJpdHMgPQorICAgICAgICBCdWZmZXJVc2FnZTo6Q1BVX1JFQURfTUFTSyB8IEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfTUFTSyB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpHUFVfVEVYVFVSRSB8IEJ1ZmZlclVzYWdlOjpHUFVfUkVOREVSX1RBUkdFVCB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpDT01QT1NFUl9PVkVSTEFZIHwgQnVmZmVyVXNhZ2U6OkNPTVBPU0VSX0NMSUVOVF9UQVJHRVQgfAorICAgICAgICBCdWZmZXJVc2FnZTo6UFJPVEVDVEVEIHwgQnVmZmVyVXNhZ2U6OkNPTVBPU0VSX0NVUlNPUiB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpWSURFT19FTkNPREVSIHwgQnVmZmVyVXNhZ2U6OkNBTUVSQV9PVVRQVVQgfAorICAgICAgICBCdWZmZXJVc2FnZTo6Q0FNRVJBX0lOUFVUIHwgQnVmZmVyVXNhZ2U6OlJFTkRFUlNDUklQVCB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpWSURFT19ERUNPREVSIHwgQnVmZmVyVXNhZ2U6OlNFTlNPUl9ESVJFQ1RfREFUQSB8CisgICAgICAgIEJ1ZmZlclVzYWdlOjpHUFVfREFUQV9CVUZGRVIgfCBCdWZmZXJVc2FnZTo6VkVORE9SX01BU0sgfAorICAgICAgICAobUNhcGFiaWxpdGllcy5oaWdoVXNhZ2VCaXRzID8gQnVmZmVyVXNhZ2U6OlZFTkRPUl9NQVNLX0hJCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBzdGF0aWNfY2FzdDxCdWZmZXJVc2FnZT4oMCkpOworCisgICAgaWYgKCFkZXNjcmlwdG9ySW5mby53aWR0aCB8fCAhZGVzY3JpcHRvckluZm8uaGVpZ2h0IHx8CisgICAgICAgICFkZXNjcmlwdG9ySW5mby5sYXllckNvdW50KSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoIW1DYXBhYmlsaXRpZXMubGF5ZXJlZEJ1ZmZlcnMgJiYgZGVzY3JpcHRvckluZm8ubGF5ZXJDb3VudCA+IDEpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmIChkZXNjcmlwdG9ySW5mby5mb3JtYXQgPT0gc3RhdGljX2Nhc3Q8UGl4ZWxGb3JtYXQ+KDApKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoZGVzY3JpcHRvckluZm8udXNhZ2UgJiB+dmFsaWRVc2FnZUJpdHMpIHsKKyAgICAgICAgLy8gY291bGQgbm90IGZhaWwgYXMgZ3JhbGxvYyBtYXkgdXNlIHRoZSByZXNlcnZlZCBiaXRzLi4uCisgICAgICAgIEFMT0dXKCJidWZmZXIgZGVzY3JpcHRvciB3aXRoIGludmFsaWQgdXNhZ2UgYml0cyAweCUiIFBSSXg2NCwKKyAgICAgICAgICAgICAgZGVzY3JpcHRvckluZm8udXNhZ2UgJiB+dmFsaWRVc2FnZUJpdHMpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6Y3JlYXRlRGVzY3JpcHRvcigKKyAgICBjb25zdCBCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8sIGNyZWF0ZURlc2NyaXB0b3JfY2IgaGlkbF9jYikgeworICAgIGlmICh2YWxpZGF0ZURlc2NyaXB0b3JJbmZvKGRlc2NyaXB0b3JJbmZvKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpOT05FLCBncmFsbG9jRW5jb2RlQnVmZmVyRGVzY3JpcHRvcihkZXNjcmlwdG9ySW5mbykpOworICAgIH0gZWxzZSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6OkJBRF9WQUxVRSwgQnVmZmVyRGVzY3JpcHRvcigpKTsKKyAgICB9CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6aW1wb3J0QnVmZmVyKGNvbnN0IGhpZGxfaGFuZGxlJiByYXdIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydEJ1ZmZlcl9jYiBoaWRsX2NiKSB7CisgICAgLy8gYmVjYXVzZSBvZiBwYXNzdGhyb3VnaCBIQUxzLCB3ZSBtdXN0IG5vdCBnZW5lcmF0ZSBhbiBlcnJvciB3aGVuCisgICAgLy8gcmF3SGFuZGxlIGhhcyBiZWVuIGltcG9ydGVkCisKKyAgICBpZiAoIXJhd0hhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfQlVGRkVSLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSA9CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvbmUocmF3SGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpKTsKKyAgICBpZiAoIWJ1ZmZlckhhbmRsZSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpOT19SRVNPVVJDRVMsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEVycm9yIGVycm9yID0gcmVnaXN0ZXJCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICBpZiAoZXJyb3IgIT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShidWZmZXJIYW5kbGUpOworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShidWZmZXJIYW5kbGUpOworCisgICAgICAgIGhpZGxfY2IoZXJyb3IsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIC8vIFRoZSBuZXdseSBjbG9uZWQgaGFuZGxlIGlzIGFscmVhZHkgcmVnaXN0ZXJlZD8gIFRoaXMgY2FuIG9ubHkgaGFwcGVuCisgICAgLy8gd2hlbiBhIGhhbmRsZSBwcmV2aW91c2x5IHJlZ2lzdGVyZWQgd2FzIG5hdGl2ZV9oYW5kbGVfZGVsZXRlJ2QgaW5zdGVhZAorICAgIC8vIG9mIGZyZWVCdWZmZXInZC4KKyAgICBpZiAoIWdSZWdpc3RlcmVkSGFuZGxlcy0+YWRkKGJ1ZmZlckhhbmRsZSkpIHsKKyAgICAgICAgQUxPR0UoImhhbmRsZSAlcCBoYXMgYWxyZWFkeSBiZWVuIGltcG9ydGVkOyBwb3RlbnRpYWwgZmQgbGVha2luZyIsCisgICAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIHVucmVnaXN0ZXJCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgaWYgKCFtQ2FwYWJpbGl0aWVzLnVucmVnaXN0ZXJJbXBseURlbGV0ZSkgeworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShidWZmZXJIYW5kbGUpOworICAgICAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoYnVmZmVySGFuZGxlKTsKKyAgICAgICAgfQorCisgICAgICAgIGhpZGxfY2IoRXJyb3I6Ok5PX1JFU09VUkNFUywgbnVsbHB0cik7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgaGlkbF9jYihFcnJvcjo6Tk9ORSwgYnVmZmVySGFuZGxlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48RXJyb3I+IEdyYWxsb2NNYXBwZXI6OmZyZWVCdWZmZXIodm9pZCogYnVmZmVyKSB7CisgICAgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUgPSBnUmVnaXN0ZXJlZEhhbmRsZXMtPnBvcChidWZmZXIpOworICAgIGlmICghYnVmZmVySGFuZGxlKSB7CisgICAgICAgIHJldHVybiBFcnJvcjo6QkFEX0JVRkZFUjsKKyAgICB9CisKKyAgICB1bnJlZ2lzdGVyQnVmZmVyKGJ1ZmZlckhhbmRsZSk7CisgICAgaWYgKCFtQ2FwYWJpbGl0aWVzLnVucmVnaXN0ZXJJbXBseURlbGV0ZSkgeworICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGJ1ZmZlckhhbmRsZSk7CisgICAgfQorCisgICAgcmV0dXJuIEVycm9yOjpOT05FOworfQorCit2b2lkIEdyYWxsb2NNYXBwZXI6OndhaXRGZW5jZUZkKGludCBmZW5jZUZkLCBjb25zdCBjaGFyKiBsb2duYW1lKSB7CisgICAgaWYgKGZlbmNlRmQgPCAwKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBpbnQgd2FybmluZ1RpbWVvdXQgPSAzNTAwOworICAgIGNvbnN0IGludCBlcnJvciA9IHN5bmNfd2FpdChmZW5jZUZkLCB3YXJuaW5nVGltZW91dCk7CisgICAgaWYgKGVycm9yIDwgMCAmJiBlcnJubyA9PSBFVElNRSkgeworICAgICAgICBBTE9HRSgiJXM6IGZlbmNlICVkIGRpZG4ndCBzaWduYWwgaW4gJXUgbXMiLCBsb2duYW1lLCBmZW5jZUZkLAorICAgICAgICAgICAgICB3YXJuaW5nVGltZW91dCk7CisgICAgICAgIHN5bmNfd2FpdChmZW5jZUZkLCAtMSk7CisgICAgfQorfQorCitib29sIEdyYWxsb2NNYXBwZXI6OmdldEZlbmNlRmQoY29uc3QgaGlkbF9oYW5kbGUmIGZlbmNlSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCogb3V0RmVuY2VGZCkgeworICAgIGF1dG8gaGFuZGxlID0gZmVuY2VIYW5kbGUuZ2V0TmF0aXZlSGFuZGxlKCk7CisgICAgaWYgKGhhbmRsZSAmJiBoYW5kbGUtPm51bUZkcyA+IDEpIHsKKyAgICAgICAgQUxPR0UoImludmFsaWQgZmVuY2UgaGFuZGxlIHdpdGggJWQgZmRzIiwgaGFuZGxlLT5udW1GZHMpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgKm91dEZlbmNlRmQgPSAoaGFuZGxlICYmIGhhbmRsZS0+bnVtRmRzID09IDEpID8gaGFuZGxlLT5kYXRhWzBdIDogLTE7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2hpZGxfaGFuZGxlIEdyYWxsb2NNYXBwZXI6OmdldEZlbmNlSGFuZGxlKGludCBmZW5jZUZkLCBjaGFyKiBoYW5kbGVTdG9yYWdlKSB7CisgICAgbmF0aXZlX2hhbmRsZV90KiBoYW5kbGUgPSBudWxscHRyOworICAgIGlmIChmZW5jZUZkID49IDApIHsKKyAgICAgICAgaGFuZGxlID0gbmF0aXZlX2hhbmRsZV9pbml0KGhhbmRsZVN0b3JhZ2UsIDEsIDApOworICAgICAgICBoYW5kbGUtPmRhdGFbMF0gPSBmZW5jZUZkOworICAgIH0KKworICAgIHJldHVybiBoaWRsX2hhbmRsZShoYW5kbGUpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6bG9jayh2b2lkKiBidWZmZXIsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9oYW5kbGUmIGFjcXVpcmVGZW5jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tfY2IgaGlkbF9jYikgeworICAgIGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUgPSBnUmVnaXN0ZXJlZEhhbmRsZXMtPmdldChidWZmZXIpOworICAgIGlmICghYnVmZmVySGFuZGxlKSB7CisgICAgICAgIGhpZGxfY2IoRXJyb3I6OkJBRF9CVUZGRVIsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIGludCBmZW5jZUZkOworICAgIGlmICghZ2V0RmVuY2VGZChhY3F1aXJlRmVuY2UsICZmZW5jZUZkKSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfVkFMVUUsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIHZvaWQqIGRhdGEgPSBudWxscHRyOworICAgIEVycm9yIGVycm9yID0KKyAgICAgICAgbG9ja0J1ZmZlcihidWZmZXJIYW5kbGUsIGNwdVVzYWdlLCBhY2Nlc3NSZWdpb24sIGZlbmNlRmQsICZkYXRhKTsKKworICAgIGhpZGxfY2IoZXJyb3IsIGRhdGEpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBHcmFsbG9jTWFwcGVyOjpsb2NrWUNiQ3Iodm9pZCogYnVmZmVyLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX2hhbmRsZSYgYWNxdWlyZUZlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NrWUNiQ3JfY2IgaGlkbF9jYikgeworICAgIFlDYkNyTGF5b3V0IGxheW91dCA9IHt9OworCisgICAgYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSA9IGdSZWdpc3RlcmVkSGFuZGxlcy0+Z2V0KGJ1ZmZlcik7CisgICAgaWYgKCFidWZmZXJIYW5kbGUpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6QkFEX0JVRkZFUiwgbGF5b3V0KTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpbnQgZmVuY2VGZDsKKyAgICBpZiAoIWdldEZlbmNlRmQoYWNxdWlyZUZlbmNlLCAmZmVuY2VGZCkpIHsKKyAgICAgICAgaGlkbF9jYihFcnJvcjo6QkFEX1ZBTFVFLCBsYXlvdXQpOworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KKworICAgIEVycm9yIGVycm9yID0KKyAgICAgICAgbG9ja0J1ZmZlcihidWZmZXJIYW5kbGUsIGNwdVVzYWdlLCBhY2Nlc3NSZWdpb24sIGZlbmNlRmQsICZsYXlvdXQpOworCisgICAgaGlkbF9jYihlcnJvciwgbGF5b3V0KTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gR3JhbGxvY01hcHBlcjo6dW5sb2NrKHZvaWQqIGJ1ZmZlciwgdW5sb2NrX2NiIGhpZGxfY2IpIHsKKyAgICBidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlID0gZ1JlZ2lzdGVyZWRIYW5kbGVzLT5nZXQoYnVmZmVyKTsKKyAgICBpZiAoIWJ1ZmZlckhhbmRsZSkgeworICAgICAgICBoaWRsX2NiKEVycm9yOjpCQURfQlVGRkVSLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBpbnQgZmVuY2VGZDsKKyAgICBFcnJvciBlcnJvciA9IHVubG9ja0J1ZmZlcihidWZmZXJIYW5kbGUsICZmZW5jZUZkKTsKKyAgICBpZiAoZXJyb3IgPT0gRXJyb3I6Ok5PTkUpIHsKKyAgICAgICAgTkFUSVZFX0hBTkRMRV9ERUNMQVJFX1NUT1JBR0UoZmVuY2VTdG9yYWdlLCAxLCAwKTsKKworICAgICAgICBoaWRsX2NiKGVycm9yLCBnZXRGZW5jZUhhbmRsZShmZW5jZUZkLCBmZW5jZVN0b3JhZ2UpKTsKKworICAgICAgICBpZiAoZmVuY2VGZCA+PSAwKSB7CisgICAgICAgICAgICBjbG9zZShmZW5jZUZkKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGhpZGxfY2IoZXJyb3IsIG51bGxwdHIpOworICAgIH0KKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK0lNYXBwZXIqIEhJRExfRkVUQ0hfSU1hcHBlcihjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIG1vZHVsZSA9IG51bGxwdHI7CisgICAgaW50IGVyciA9IGh3X2dldF9tb2R1bGUoR1JBTExPQ19IQVJEV0FSRV9NT0RVTEVfSUQsICZtb2R1bGUpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAgQUxPR0UoImZhaWxlZCB0byBnZXQgZ3JhbGxvYyBtb2R1bGUiKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgdWludDhfdCBtYWpvciA9IChtb2R1bGUtPm1vZHVsZV9hcGlfdmVyc2lvbiA+PiA4KSAmIDB4ZmY7CisgICAgc3dpdGNoIChtYWpvcikgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gbmV3IEdyYWxsb2MxTWFwcGVyKG1vZHVsZSk7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBuZXcgR3JhbGxvYzBNYXBwZXIobW9kdWxlKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFMT0dFKCJ1bmtub3duIGdyYWxsb2MgbW9kdWxlIG1ham9yIHZlcnNpb24gJWQiLCBtYWpvcik7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9IC8vIG5hbWVzcGFjZSBWMl8wCit9IC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gLy8gbmFtZXNwYWNlIGdyYXBoaWNzCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC9kZWZhdWx0L0dyYWxsb2NNYXBwZXIuaCBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jTWFwcGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWExYWVhYQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvZGVmYXVsdC9HcmFsbG9jTWFwcGVyLmgKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0NfTUFQUEVSX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9HUkFQSElDU19NQVBQRVJfVjJfMF9HUkFMTE9DX01BUFBFUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL21hcHBlci8yLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPHN5c3RlbS93aW5kb3cuaD4KKworI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIG1hcHBlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitjbGFzcyBHcmFsbG9jTWFwcGVyIDogcHVibGljIElNYXBwZXIgeworICAgcHVibGljOgorICAgIC8vIElNYXBwZXIgaW50ZXJmYWNlCisgICAgUmV0dXJuPHZvaWQ+IGNyZWF0ZURlc2NyaXB0b3IoY29uc3QgQnVmZmVyRGVzY3JpcHRvckluZm8mIGRlc2NyaXB0b3JJbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURlc2NyaXB0b3JfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGltcG9ydEJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0QnVmZmVyX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvcj4gZnJlZUJ1ZmZlcih2b2lkKiBidWZmZXIpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBsb2NrKHZvaWQqIGJ1ZmZlciwgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLAorICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfaGFuZGxlJiBhY3F1aXJlRmVuY2UsCisgICAgICAgICAgICAgICAgICAgICAgbG9ja19jYiBoaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gbG9ja1lDYkNyKHZvaWQqIGJ1ZmZlciwgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX2hhbmRsZSYgYWNxdWlyZUZlbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9ja1lDYkNyX2NiIGhpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiB1bmxvY2sodm9pZCogYnVmZmVyLCB1bmxvY2tfY2IgaGlkbF9jYikgb3ZlcnJpZGU7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCB3YWl0RmVuY2VGZChpbnQgZmVuY2VGZCwgY29uc3QgY2hhciogbG9nbmFtZSk7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBib29sIGhpZ2hVc2FnZUJpdHM7CisgICAgICAgIGJvb2wgbGF5ZXJlZEJ1ZmZlcnM7CisgICAgICAgIGJvb2wgdW5yZWdpc3RlckltcGx5RGVsZXRlOworICAgIH0gbUNhcGFiaWxpdGllcyA9IHt9OworCisgICBwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCB2YWxpZGF0ZURlc2NyaXB0b3JJbmZvKAorICAgICAgICBjb25zdCBCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8pIGNvbnN0OworCisgICAgLy8gUmVnaXN0ZXIgYSBidWZmZXIuICBUaGUgaGFuZGxlIGlzIGFscmVhZHkgY2xvbmVkIGJ5IHRoZSBjYWxsZXIuCisgICAgdmlydHVhbCBFcnJvciByZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSA9IDA7CisKKyAgICAvLyBVbnJlZ2lzdGVyIGEgYnVmZmVyLiAgVGhlIGhhbmRsZSBpcyBjbG9zZWQgYW5kIGRlbGV0ZWQgYnkgdGhlCisgICAgLy8gY2FsbGVlIGlmIGFuZCBvbmx5IGlmIG1DYXBhYmlsaXRpZXMudW5yZWdpc3RlckltcGx5RGVsZXRlIGlzIHNldC4KKyAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlckJ1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlKSA9IDA7CisKKyAgICAvLyBMb2NrIGEgYnVmZmVyLiAgVGhlIGZlbmNlIGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIuCisgICAgdmlydHVhbCBFcnJvciBsb2NrQnVmZmVyKGJ1ZmZlcl9oYW5kbGVfdCBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sIGludCBmZW5jZUZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiogb3V0RGF0YSkgPSAwOworICAgIHZpcnR1YWwgRXJyb3IgbG9ja0J1ZmZlcihidWZmZXJfaGFuZGxlX3QgYnVmZmVySGFuZGxlLCB1aW50NjRfdCBjcHVVc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSU1hcHBlcjo6UmVjdCYgYWNjZXNzUmVnaW9uLCBpbnQgZmVuY2VGZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWUNiQ3JMYXlvdXQqIG91dExheW91dCkgPSAwOworCisgICAgLy8gVW5sb2NrIGEgYnVmZmVyLiAgVGhlIHJldHVybmVkIGZlbmNlIGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIuCisgICAgdmlydHVhbCBFcnJvciB1bmxvY2tCdWZmZXIoYnVmZmVyX2hhbmRsZV90IGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqIG91dEZlbmNlRmQpID0gMDsKKworICAgIHN0YXRpYyBib29sIGdldEZlbmNlRmQoY29uc3QgaGlkbF9oYW5kbGUmIGZlbmNlSGFuZGxlLCBpbnQqIG91dEZlbmNlRmQpOworICAgIHN0YXRpYyBoaWRsX2hhbmRsZSBnZXRGZW5jZUhhbmRsZShpbnQgZmVuY2VGZCwgY2hhciogaGFuZGxlU3RvcmFnZSk7Cit9OworCitleHRlcm4gIkMiIElNYXBwZXIqIEhJRExfRkVUQ0hfSU1hcHBlcihjb25zdCBjaGFyKiBuYW1lKTsKKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gLy8gbmFtZXNwYWNlIFYyXzAKK30gLy8gbmFtZXNwYWNlIG1hcHBlcgorfSAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9IC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAvLyBBTkRST0lEX0hBUkRXQVJFX0dSQVBISUNTX01BUFBFUl9WMl8wX0dSQUxMT0NfTUFQUEVSX0gKZGlmZiAtLWdpdCBhL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuaGFsIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTliMmYzYQotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MubWFwcGVyQDIuMDsKKworZW51bSBFcnJvciA6IGludDMyX3QgeworICAgIE5PTkUgICAgICAgICAgICA9IDAsIC8qKiBubyBlcnJvciAqLworICAgIEJBRF9ERVNDUklQVE9SICA9IDEsIC8qKiBpbnZhbGlkIEJ1ZmZlckRlc2NyaXB0b3IgKi8KKyAgICBCQURfQlVGRkVSICAgICAgPSAyLCAvKiogaW52YWxpZCBidWZmZXIgaGFuZGxlICovCisgICAgQkFEX1ZBTFVFICAgICAgID0gMywgLyoqIGludmFsaWQgd2lkdGgsIGhlaWdodCwgZXRjLiAqLworICAgIC8qIDQgaXMgcmVzZXJ2ZWQgKi8KKyAgICBOT19SRVNPVVJDRVMgICAgPSA1LCAvKiogdGVtcG9yYXJ5IGZhaWx1cmUgZHVlIHRvIHJlc291cmNlIGNvbnRlbnRpb24gKi8KKyAgICAvKiA2IGlzIHJlc2VydmVkICovCisgICAgVU5TVVBQT1JURUQgICAgID0gNywgLyoqIHBlcm1hbmVudCBmYWlsdXJlICovCit9OworCisvKioKKyAqIEEgYnVmZmVyIGRlc2NyaXB0b3IgaXMgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCBvcGFxdWUgZGF0YSByZXR1cm5lZCBieQorICogY3JlYXRlRGVzY3JpcHRvci4gSXQgZGVzY3JpYmVzIHRoZSBwcm9wZXJ0aWVzIG9mIGEgYnVmZmVyIGFuZCBpcyBjb25zdW1lZAorICogYnkgdGhlIGFsbG9jYXRvci4KKyAqLwordHlwZWRlZiB2ZWM8dWludDMyX3Q+IEJ1ZmZlckRlc2NyaXB0b3I7CisKKy8qKgorICogU3RydWN0dXJlIGZvciBkZXNjcmliaW5nIFlDYkNyIGZvcm1hdHMgZm9yIGNvbnN1bXB0aW9uIGJ5IGFwcGxpY2F0aW9ucy4KKyAqIFRoaXMgaXMgdXNlZCB3aXRoIFBpeGVsRm9ybWF0OjpZQ0JDUl8qXzg4OC4KKyAqCisgKiBCdWZmZXIgY2hyb21hIHN1YnNhbXBsaW5nIGlzIGRlZmluZWQgaW4gdGhlIGZvcm1hdC4KKyAqIGUuZy4gUGl4ZWxGb3JtYXQ6OllDQkNSXzQyMF84ODggaGFzIHN1YnNhbXBsaW5nIDQ6MjowLgorICoKKyAqIEJ1ZmZlcnMgbXVzdCBoYXZlIGEgOCBiaXQgZGVwdGguCisgKgorICogeSwgY2IsIGFuZCBjciBwb2ludCB0byB0aGUgZmlyc3QgYnl0ZSBvZiB0aGVpciByZXNwZWN0aXZlIHBsYW5lcy4KKyAqCisgKiBTdHJpZGUgZGVzY3JpYmVzIHRoZSBkaXN0YW5jZSBpbiBieXRlcyBmcm9tIHRoZSBmaXJzdCB2YWx1ZSBvZiBvbmUgcm93IG9mCisgKiB0aGUgaW1hZ2UgdG8gdGhlIGZpcnN0IHZhbHVlIG9mIHRoZSBuZXh0IHJvdy4gSXQgaW5jbHVkZXMgdGhlIHdpZHRoIG9mIHRoZQorICogaW1hZ2UgcGx1cyBwYWRkaW5nLgorICogeVN0cmlkZSBpcyB0aGUgc3RyaWRlIG9mIHRoZSBsdW1hIHBsYW5lLgorICogY1N0cmlkZSBpcyB0aGUgc3RyaWRlIG9mIHRoZSBjaHJvbWEgcGxhbmVzLgorICoKKyAqIGNocm9tYVN0ZXAgaXMgdGhlIGRpc3RhbmNlIGluIGJ5dGVzIGZyb20gb25lIGNocm9tYSBwaXhlbCB2YWx1ZSB0byB0aGUKKyAqIG5leHQuIFRoaXMgaXMgMiBieXRlcyBmb3Igc2VtaXBsYW5hciAoYmVjYXVzZSBjaHJvbWEgdmFsdWVzIGFyZSBpbnRlcmxlYXZlZAorICogYW5kIGVhY2ggY2hyb21hIHZhbHVlIGlzIG9uZSBieXRlKSBhbmQgMSBmb3IgcGxhbmFyLgorICovCitzdHJ1Y3QgWUNiQ3JMYXlvdXQgeworICAgIHBvaW50ZXIgeTsKKyAgICBwb2ludGVyIGNiOworICAgIHBvaW50ZXIgY3I7CisgICAgdWludDMyX3QgeVN0cmlkZTsKKyAgICB1aW50MzJfdCBjU3RyaWRlOworICAgIHVpbnQzMl90IGNocm9tYVN0ZXA7Cit9OwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjMGU0YzUKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2NiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfbGlicmFyeV9zdGF0aWMgeworICAgIG5hbWU6ICJsaWJWdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscyIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYWxsb2NhdG9yQDIuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLm1hcHBlckAyLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsKKyAgICAgICAgIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSIsCisgICAgXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1XYWxsIiwKKyAgICAgICAgIi1XZXh0cmEiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCisgICAgZXhwb3J0X2luY2x1ZGVfZGlyczogWyIuIl0sCit9CisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxHcmFwaGljc01hcHBlclYyXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxHcmFwaGljc01hcHBlclYyXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlic3luYyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmFsbG9jYXRvckAyLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5ncmFwaGljcy5tYXBwZXJAMi4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWworICAgICAgICAibGliVnRzSGFsR3JhcGhpY3NNYXBwZXJUZXN0VXRpbHMiLAorICAgICAgICAiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIiwKKyAgICBdLAorICAgIGNmbGFnczogWworICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdleHRyYSIsCisgICAgICAgICItV2Vycm9yIiwKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5jcHAgYi9ncmFwaGljcy9tYXBwZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNTM0ODg5Ci0tLSAvZGV2L251bGwKKysrIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5jcHAKQEAgLTAsMCArMSwyNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlICJWdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIHRlc3RzIHsKKworR3JhbGxvYzo6R3JhbGxvYygpIHsKKyAgICBpbml0KCk7Cit9CisKK3ZvaWQgR3JhbGxvYzo6aW5pdCgpIHsKKyAgICBtQWxsb2NhdG9yID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUFsbG9jYXRvcj4oKTsKKyAgICBBU1NFUlRfTkUobnVsbHB0ciwgbUFsbG9jYXRvci5nZXQoKSkgPDwgImZhaWxlZCB0byBnZXQgYWxsb2NhdG9yIHNlcnZpY2UiOworCisgICAgbU1hcHBlciA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElNYXBwZXI+KCk7CisgICAgQVNTRVJUX05FKG51bGxwdHIsIG1NYXBwZXIuZ2V0KCkpIDw8ICJmYWlsZWQgdG8gZ2V0IG1hcHBlciBzZXJ2aWNlIjsKKyAgICBBU1NFUlRfRkFMU0UobU1hcHBlci0+aXNSZW1vdGUoKSkgPDwgIm1hcHBlciBpcyBub3QgaW4gcGFzc3Rocm91Z2ggbW9kZSI7Cit9CisKK0dyYWxsb2M6On5HcmFsbG9jKCkgeworICAgIGZvciAoYXV0byBidWZmZXJIYW5kbGUgOiBtQ2xvbmVkQnVmZmVycykgeworICAgICAgICBhdXRvIGJ1ZmZlciA9IGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oYnVmZmVySGFuZGxlKTsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShidWZmZXIpOworICAgICAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShidWZmZXIpOworICAgIH0KKyAgICBtQ2xvbmVkQnVmZmVycy5jbGVhcigpOworCisgICAgZm9yIChhdXRvIGJ1ZmZlckhhbmRsZSA6IG1JbXBvcnRlZEJ1ZmZlcnMpIHsKKyAgICAgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIEVYUEVDVF9FUShFcnJvcjo6Tk9ORSwgbU1hcHBlci0+ZnJlZUJ1ZmZlcihidWZmZXIpKQorICAgICAgICAgICAgPDwgImZhaWxlZCB0byBmcmVlIGJ1ZmZlciAiIDw8IGJ1ZmZlcjsKKyAgICB9CisgICAgbUltcG9ydGVkQnVmZmVycy5jbGVhcigpOworfQorCitzcDxJQWxsb2NhdG9yPiBHcmFsbG9jOjpnZXRBbGxvY2F0b3IoKSBjb25zdCB7CisgICAgcmV0dXJuIG1BbGxvY2F0b3I7Cit9CisKK3N0ZDo6c3RyaW5nIEdyYWxsb2M6OmR1bXBEZWJ1Z0luZm8oKSB7CisgICAgc3RkOjpzdHJpbmcgZGVidWdJbmZvOworICAgIG1BbGxvY2F0b3ItPmR1bXBEZWJ1Z0luZm8oCisgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBEZWJ1Z0luZm8pIHsgZGVidWdJbmZvID0gdG1wRGVidWdJbmZvLmNfc3RyKCk7IH0pOworCisgICAgcmV0dXJuIGRlYnVnSW5mbzsKK30KKworY29uc3QgbmF0aXZlX2hhbmRsZV90KiBHcmFsbG9jOjpjbG9uZUJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlKSB7CisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUgPQorICAgICAgICBuYXRpdmVfaGFuZGxlX2Nsb25lKHJhd0hhbmRsZS5nZXROYXRpdmVIYW5kbGUoKSk7CisgICAgRVhQRUNUX05FKG51bGxwdHIsIGJ1ZmZlckhhbmRsZSk7CisKKyAgICBpZiAoYnVmZmVySGFuZGxlKSB7CisgICAgICAgIG1DbG9uZWRCdWZmZXJzLmluc2VydChidWZmZXJIYW5kbGUpOworICAgIH0KKworICAgIHJldHVybiBidWZmZXJIYW5kbGU7Cit9CisKK3N0ZDo6dmVjdG9yPGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCo+IEdyYWxsb2M6OmFsbG9jYXRlKAorICAgIGNvbnN0IEJ1ZmZlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIHVpbnQzMl90IGNvdW50LCBib29sIGltcG9ydCwKKyAgICB1aW50MzJfdCogb3V0U3RyaWRlKSB7CisgICAgc3RkOjp2ZWN0b3I8Y29uc3QgbmF0aXZlX2hhbmRsZV90Kj4gYnVmZmVySGFuZGxlczsKKyAgICBidWZmZXJIYW5kbGVzLnJlc2VydmUoY291bnQpOworICAgIG1BbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICBkZXNjcmlwdG9yLCBjb3VudCwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBTdHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgdG1wQnVmZmVycykgeworICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBhbGxvY2F0ZSBidWZmZXJzIjsKKyAgICAgICAgICAgIEFTU0VSVF9FUShjb3VudCwgdG1wQnVmZmVycy5zaXplKCkpIDw8ICJpbnZhbGlkIGJ1ZmZlciBhcnJheSI7CisKKyAgICAgICAgICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGltcG9ydCkgeworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhhbmRsZXMucHVzaF9iYWNrKGltcG9ydEJ1ZmZlcih0bXBCdWZmZXJzW2ldKSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVySGFuZGxlcy5wdXNoX2JhY2soY2xvbmVCdWZmZXIodG1wQnVmZmVyc1tpXSkpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChvdXRTdHJpZGUpIHsKKyAgICAgICAgICAgICAgICAqb3V0U3RyaWRlID0gdG1wU3RyaWRlOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgIGlmICg6OnRlc3Rpbmc6OlRlc3Q6Okhhc0ZhdGFsRmFpbHVyZSgpKSB7CisgICAgICAgIGJ1ZmZlckhhbmRsZXMuY2xlYXIoKTsKKyAgICB9CisKKyAgICByZXR1cm4gYnVmZmVySGFuZGxlczsKK30KKworY29uc3QgbmF0aXZlX2hhbmRsZV90KiBHcmFsbG9jOjphbGxvY2F0ZSgKKyAgICBjb25zdCBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8sIGJvb2wgaW1wb3J0LAorICAgIHVpbnQzMl90KiBvdXRTdHJpZGUpIHsKKyAgICBCdWZmZXJEZXNjcmlwdG9yIGRlc2NyaXB0b3IgPSBjcmVhdGVEZXNjcmlwdG9yKGRlc2NyaXB0b3JJbmZvKTsKKyAgICBpZiAoOjp0ZXN0aW5nOjpUZXN0OjpIYXNGYXRhbEZhaWx1cmUoKSkgeworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBhdXRvIGJ1ZmZlcnMgPSBhbGxvY2F0ZShkZXNjcmlwdG9yLCAxLCBpbXBvcnQsIG91dFN0cmlkZSk7CisgICAgaWYgKDo6dGVzdGluZzo6VGVzdDo6SGFzRmF0YWxGYWlsdXJlKCkpIHsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgcmV0dXJuIGJ1ZmZlcnNbMF07Cit9CisKK3NwPElNYXBwZXI+IEdyYWxsb2M6OmdldE1hcHBlcigpIGNvbnN0IHsKKyAgICByZXR1cm4gbU1hcHBlcjsKK30KKworQnVmZmVyRGVzY3JpcHRvciBHcmFsbG9jOjpjcmVhdGVEZXNjcmlwdG9yKAorICAgIGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBkZXNjcmlwdG9ySW5mbykgeworICAgIEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBtTWFwcGVyLT5jcmVhdGVEZXNjcmlwdG9yKAorICAgICAgICBkZXNjcmlwdG9ySW5mbywgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiB0bXBEZXNjcmlwdG9yKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIGNyZWF0ZSBkZXNjcmlwdG9yIjsKKyAgICAgICAgICAgIGRlc2NyaXB0b3IgPSB0bXBEZXNjcmlwdG9yOworICAgICAgICB9KTsKKworICAgIHJldHVybiBkZXNjcmlwdG9yOworfQorCitjb25zdCBuYXRpdmVfaGFuZGxlX3QqIEdyYWxsb2M6OmltcG9ydEJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlKSB7CisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUgPSBudWxscHRyOworICAgIG1NYXBwZXItPmltcG9ydEJ1ZmZlcigKKyAgICAgICAgcmF3SGFuZGxlLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcEJ1ZmZlcikgeworICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCB0bXBFcnJvcikgPDwgImZhaWxlZCB0byBpbXBvcnQgYnVmZmVyICVwIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgcmF3SGFuZGxlLmdldE5hdGl2ZUhhbmRsZSgpOworICAgICAgICAgICAgYnVmZmVySGFuZGxlID0gc3RhdGljX2Nhc3Q8Y29uc3QgbmF0aXZlX2hhbmRsZV90Kj4odG1wQnVmZmVyKTsKKyAgICAgICAgfSk7CisKKyAgICBpZiAoYnVmZmVySGFuZGxlKSB7CisgICAgICAgIG1JbXBvcnRlZEJ1ZmZlcnMuaW5zZXJ0KGJ1ZmZlckhhbmRsZSk7CisgICAgfQorCisgICAgcmV0dXJuIGJ1ZmZlckhhbmRsZTsKK30KKwordm9pZCBHcmFsbG9jOjpmcmVlQnVmZmVyKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlKSB7CisgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisKKyAgICBpZiAobUltcG9ydGVkQnVmZmVycy5lcmFzZShidWZmZXJIYW5kbGUpKSB7CisgICAgICAgIEVycm9yIGVycm9yID0gbU1hcHBlci0+ZnJlZUJ1ZmZlcihidWZmZXIpOworICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIGVycm9yKSA8PCAiZmFpbGVkIHRvIGZyZWUgYnVmZmVyICIgPDwgYnVmZmVyOworICAgIH0gZWxzZSB7CisgICAgICAgIG1DbG9uZWRCdWZmZXJzLmVyYXNlKGJ1ZmZlckhhbmRsZSk7CisgICAgICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoYnVmZmVyKTsKKyAgICAgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoYnVmZmVyKTsKKyAgICB9Cit9CisKK3ZvaWQqIEdyYWxsb2M6OmxvY2soY29uc3QgbmF0aXZlX2hhbmRsZV90KiBidWZmZXJIYW5kbGUsIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sIGludCBhY3F1aXJlRmVuY2UpIHsKKyAgICBhdXRvIGJ1ZmZlciA9IGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oYnVmZmVySGFuZGxlKTsKKworICAgIE5BVElWRV9IQU5ETEVfREVDTEFSRV9TVE9SQUdFKGFjcXVpcmVGZW5jZVN0b3JhZ2UsIDEsIDApOworICAgIGhpZGxfaGFuZGxlIGFjcXVpcmVGZW5jZUhhbmRsZTsKKyAgICBpZiAoYWNxdWlyZUZlbmNlID49IDApIHsKKyAgICAgICAgYXV0byBoID0gbmF0aXZlX2hhbmRsZV9pbml0KGFjcXVpcmVGZW5jZVN0b3JhZ2UsIDEsIDApOworICAgICAgICBoLT5kYXRhWzBdID0gYWNxdWlyZUZlbmNlOworICAgICAgICBhY3F1aXJlRmVuY2VIYW5kbGUgPSBoOworICAgIH0KKworICAgIHZvaWQqIGRhdGEgPSBudWxscHRyOworICAgIG1NYXBwZXItPmxvY2soYnVmZmVyLCBjcHVVc2FnZSwgYWNjZXNzUmVnaW9uLCBhY3F1aXJlRmVuY2VIYW5kbGUsCisgICAgICAgICAgICAgICAgICBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mIHRtcERhdGEpIHsKKyAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiZmFpbGVkIHRvIGxvY2sgYnVmZmVyICIgPDwgYnVmZmVyOworICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSB0bXBEYXRhOworICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICBpZiAoYWNxdWlyZUZlbmNlID49IDApIHsKKyAgICAgICAgY2xvc2UoYWNxdWlyZUZlbmNlKTsKKyAgICB9CisKKyAgICByZXR1cm4gZGF0YTsKK30KKworWUNiQ3JMYXlvdXQgR3JhbGxvYzo6bG9ja1lDYkNyKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNwdVVzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYWNxdWlyZUZlbmNlKSB7CisgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisKKyAgICBOQVRJVkVfSEFORExFX0RFQ0xBUkVfU1RPUkFHRShhY3F1aXJlRmVuY2VTdG9yYWdlLCAxLCAwKTsKKyAgICBoaWRsX2hhbmRsZSBhY3F1aXJlRmVuY2VIYW5kbGU7CisgICAgaWYgKGFjcXVpcmVGZW5jZSA+PSAwKSB7CisgICAgICAgIGF1dG8gaCA9IG5hdGl2ZV9oYW5kbGVfaW5pdChhY3F1aXJlRmVuY2VTdG9yYWdlLCAxLCAwKTsKKyAgICAgICAgaC0+ZGF0YVswXSA9IGFjcXVpcmVGZW5jZTsKKyAgICAgICAgYWNxdWlyZUZlbmNlSGFuZGxlID0gaDsKKyAgICB9CisKKyAgICBZQ2JDckxheW91dCBsYXlvdXQgPSB7fTsKKyAgICBtTWFwcGVyLT5sb2NrWUNiQ3IoYnVmZmVyLCBjcHVVc2FnZSwgYWNjZXNzUmVnaW9uLCBhY3F1aXJlRmVuY2VIYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wTGF5b3V0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJmYWlsZWQgdG8gbG9ja1lDYkNyIGJ1ZmZlciAiIDw8IGJ1ZmZlcjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dCA9IHRtcExheW91dDsKKyAgICAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICBpZiAoYWNxdWlyZUZlbmNlID49IDApIHsKKyAgICAgICAgY2xvc2UoYWNxdWlyZUZlbmNlKTsKKyAgICB9CisKKyAgICByZXR1cm4gbGF5b3V0OworfQorCitpbnQgR3JhbGxvYzo6dW5sb2NrKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlKSB7CisgICAgYXV0byBidWZmZXIgPSBjb25zdF9jYXN0PG5hdGl2ZV9oYW5kbGVfdCo+KGJ1ZmZlckhhbmRsZSk7CisKKyAgICBpbnQgcmVsZWFzZUZlbmNlID0gLTE7CisgICAgbU1hcHBlci0+dW5sb2NrKAorICAgICAgICBidWZmZXIsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYgdG1wUmVsZWFzZUZlbmNlKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3I6Ok5PTkUsIHRtcEVycm9yKSA8PCAiZmFpbGVkIHRvIHVubG9jayBidWZmZXIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgYnVmZmVyOworCisgICAgICAgICAgICBhdXRvIGZlbmNlSGFuZGxlID0gdG1wUmVsZWFzZUZlbmNlLmdldE5hdGl2ZUhhbmRsZSgpOworICAgICAgICAgICAgaWYgKGZlbmNlSGFuZGxlKSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDAsIGZlbmNlSGFuZGxlLT5udW1JbnRzKSA8PCAiaW52YWxpZCBmZW5jZSBoYW5kbGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgZmVuY2VIYW5kbGU7CisgICAgICAgICAgICAgICAgaWYgKGZlbmNlSGFuZGxlLT5udW1GZHMgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICByZWxlYXNlRmVuY2UgPSBkdXAoZmVuY2VIYW5kbGUtPmRhdGFbMF0pOworICAgICAgICAgICAgICAgICAgICBBU1NFUlRfTFQoMCwgcmVsZWFzZUZlbmNlKSA8PCAiZmFpbGVkIHRvIGR1cCBmZW5jZSBmZCI7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKDAsIGZlbmNlSGFuZGxlLT5udW1GZHMpCisgICAgICAgICAgICAgICAgICAgICAgICA8PCAiIGludmFsaWQgZmVuY2UgaGFuZGxlICIgPDwgZmVuY2VIYW5kbGU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9KTsKKworICAgIHJldHVybiByZWxlYXNlRmVuY2U7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB0ZXN0cworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oIGIvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclRlc3RVdGlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1N2YyMGIKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzLmgKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgVlRTX0hBTF9HUkFQSElDU19NQVBQRVJfVVRJTFMKKyNkZWZpbmUgVlRTX0hBTF9HUkFQSElDU19NQVBQRVJfVVRJTFMKKworI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2dyYXBoaWNzL2FsbG9jYXRvci8yLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvZ3JhcGhpY3MvbWFwcGVyLzIuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8dXRpbHMvU3Ryb25nUG9pbnRlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGdyYXBoaWNzIHsKK25hbWVzcGFjZSBtYXBwZXIgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIHRlc3RzIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjphbGxvY2F0b3I6OlYyXzA6OklBbGxvY2F0b3I7CisKKy8vIEEgd3JhcHBlciB0byBJQWxsb2NhdG9yIGFuZCBJTWFwcGVyLgorY2xhc3MgR3JhbGxvYyB7CisgICBwdWJsaWM6CisgICAgR3JhbGxvYygpOworICAgIH5HcmFsbG9jKCk7CisKKyAgICAvLyBJQWxsb2NhdG9yIG1ldGhvZHMKKworICAgIHNwPElBbGxvY2F0b3I+IGdldEFsbG9jYXRvcigpIGNvbnN0OworCisgICAgc3RkOjpzdHJpbmcgZHVtcERlYnVnSW5mbygpOworCisgICAgLy8gV2hlbiBpbXBvcnQgaXMgZmFsc2UsIHRoaXMgc2ltcGx5IGNhbGxzIElBbGxvY2F0b3I6OmFsbG9jYXRlLiBXaGVuIGltcG9ydAorICAgIC8vIGlzIHRydWUsIHRoZSByZXR1cm5lZCBidWZmZXJzIGFyZSBhbHNvIGltcG9ydGVkIGludG8gdGhlIG1hcHBlci4KKyAgICAvLworICAgIC8vIEVpdGhlciBjYXNlLCB0aGUgcmV0dXJuZWQgYnVmZmVycyBtdXN0IGJlIGZyZWVkIHdpdGggZnJlZUJ1ZmZlci4KKyAgICBzdGQ6OnZlY3Rvcjxjb25zdCBuYXRpdmVfaGFuZGxlX3QqPiBhbGxvY2F0ZSgKKyAgICAgICAgY29uc3QgQnVmZmVyRGVzY3JpcHRvciYgZGVzY3JpcHRvciwgdWludDMyX3QgY291bnQsIGJvb2wgaW1wb3J0ID0gdHJ1ZSwKKyAgICAgICAgdWludDMyX3QqIG91dFN0cmlkZSA9IG51bGxwdHIpOworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYWxsb2NhdGUoCisgICAgICAgIGNvbnN0IElNYXBwZXI6OkJ1ZmZlckRlc2NyaXB0b3JJbmZvJiBkZXNjcmlwdG9ySW5mbywgYm9vbCBpbXBvcnQgPSB0cnVlLAorICAgICAgICB1aW50MzJfdCogb3V0U3RyaWRlID0gbnVsbHB0cik7CisKKyAgICAvLyBJTWFwcGVyIG1ldGhvZHMKKworICAgIHNwPElNYXBwZXI+IGdldE1hcHBlcigpIGNvbnN0OworCisgICAgQnVmZmVyRGVzY3JpcHRvciBjcmVhdGVEZXNjcmlwdG9yKAorICAgICAgICBjb25zdCBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyYgZGVzY3JpcHRvckluZm8pOworCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBpbXBvcnRCdWZmZXIoY29uc3QgaGlkbF9oYW5kbGUmIHJhd0hhbmRsZSk7CisgICAgdm9pZCBmcmVlQnVmZmVyKGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlKTsKKworICAgIC8vIFdlIHVzZSBmZCBpbnN0ZWFkIG9mIGhpZGxfaGFuZGxlIGluIHRoZXNlIGZ1bmN0aW9ucyB0byBwYXNzIGZlbmNlcworICAgIC8vIGluIGFuZCBvdXQgb2YgdGhlIG1hcHBlci4gIFRoZSBvd25lcnNoaXAgb2YgdGhlIGZkIGlzIGFsd2F5cyB0cmFuc2ZlcnJlZAorICAgIC8vIHdpdGggZWFjaCBvZiB0aGVzZSBmdW5jdGlvbnMuCisgICAgdm9pZCogbG9jayhjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSwgdWludDY0X3QgY3B1VXNhZ2UsCisgICAgICAgICAgICAgICBjb25zdCBJTWFwcGVyOjpSZWN0JiBhY2Nlc3NSZWdpb24sIGludCBhY3F1aXJlRmVuY2UpOworICAgIFlDYkNyTGF5b3V0IGxvY2tZQ2JDcihjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgY3B1VXNhZ2UsIGNvbnN0IElNYXBwZXI6OlJlY3QmIGFjY2Vzc1JlZ2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFjcXVpcmVGZW5jZSk7CisgICAgaW50IHVubG9jayhjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZSk7CisKKyAgIHByaXZhdGU6CisgICAgdm9pZCBpbml0KCk7CisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBjbG9uZUJ1ZmZlcihjb25zdCBoaWRsX2hhbmRsZSYgcmF3SGFuZGxlKTsKKworICAgIHNwPElBbGxvY2F0b3I+IG1BbGxvY2F0b3I7CisgICAgc3A8SU1hcHBlcj4gbU1hcHBlcjsKKworICAgIC8vIEtlZXAgdHJhY2sgb2YgYWxsIGNsb25lZCBhbmQgaW1wb3J0ZWQgaGFuZGxlcy4gIFdoZW4gYSB0ZXN0IGZhaWxzIHdpdGgKKyAgICAvLyBBU1NFUlRfKiwgdGhlIGRlc3RydWN0b3Igd2lsbCBmcmVlIHRoZSBoYW5kbGVzIGZvciB0aGUgdGVzdC4KKyAgICBzdGQ6OnVub3JkZXJlZF9zZXQ8Y29uc3QgbmF0aXZlX2hhbmRsZV90Kj4gbUNsb25lZEJ1ZmZlcnM7CisgICAgc3RkOjp1bm9yZGVyZWRfc2V0PGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCo+IG1JbXBvcnRlZEJ1ZmZlcnM7Cit9OworCit9ICAvLyBuYW1lc3BhY2UgdGVzdHMKK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbWFwcGVyCit9ICAvLyBuYW1lc3BhY2UgZ3JhcGhpY3MKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBWVFNfSEFMX0dSQVBISUNTX01BUFBFUl9VVElMUwpkaWZmIC0tZ2l0IGEvZ3JhcGhpY3MvbWFwcGVyLzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxHcmFwaGljc01hcHBlclYyXzBUYXJnZXRUZXN0LmNwcCBiL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NNYXBwZXJWMl8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc0MDEzYgotLS0gL2Rldi9udWxsCisrKyBiL2dyYXBoaWNzL21hcHBlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsR3JhcGhpY3NNYXBwZXJWMl8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw0MTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbEdyYXBoaWNzTWFwcGVyVjJfMFRhcmdldFRlc3QiCisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPHN5bmMvc3luYy5oPgorI2luY2x1ZGUgIlZ0c0hhbEdyYXBoaWNzTWFwcGVyVGVzdFV0aWxzLmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgZ3JhcGhpY3MgeworbmFtZXNwYWNlIG1hcHBlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgdGVzdHMgeworbmFtZXNwYWNlIHsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OkJ1ZmZlclVzYWdlOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmdyYXBoaWNzOjpjb21tb246OlYxXzA6OlBpeGVsRm9ybWF0OworCitjbGFzcyBHcmFwaGljc01hcHBlckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwcm90ZWN0ZWQ6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYyA9IHN0ZDo6bWFrZV91bmlxdWU8R3JhbGxvYz4oKSk7CisKKyAgICAgIG1EdW1teURlc2NyaXB0b3JJbmZvLndpZHRoID0gNjQ7CisgICAgICBtRHVtbXlEZXNjcmlwdG9ySW5mby5oZWlnaHQgPSA2NDsKKyAgICAgIG1EdW1teURlc2NyaXB0b3JJbmZvLmxheWVyQ291bnQgPSAxOworICAgICAgbUR1bW15RGVzY3JpcHRvckluZm8uZm9ybWF0ID0gUGl4ZWxGb3JtYXQ6OlJHQkFfODg4ODsKKyAgICAgIG1EdW1teURlc2NyaXB0b3JJbmZvLnVzYWdlID0gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KAorICAgICAgICAgIEJ1ZmZlclVzYWdlOjpDUFVfV1JJVEVfT0ZURU4gfCBCdWZmZXJVc2FnZTo6Q1BVX1JFQURfT0ZURU4pOworICB9CisKKyAgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgc3RkOjp1bmlxdWVfcHRyPEdyYWxsb2M+IG1HcmFsbG9jOworICBJTWFwcGVyOjpCdWZmZXJEZXNjcmlwdG9ySW5mbyBtRHVtbXlEZXNjcmlwdG9ySW5mb3t9OworfTsKKworLyoqCisgKiBUZXN0IElBbGxvY2F0b3I6OmR1bXBEZWJ1Z0luZm8gYnkgY2FsbGluZyBpdC4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEFsbG9jYXRvckR1bXBEZWJ1Z0luZm8pIHsKKyAgICBtR3JhbGxvYy0+ZHVtcERlYnVnSW5mbygpOworfQorCisvKioKKyAqIFRlc3QgSUFsbG9jYXRvcjo6YWxsb2NhdGUgd2l0aCB2YWxpZCBidWZmZXIgZGVzY3JpcHRvcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBBbGxvY2F0b3JBbGxvY2F0ZSkgeworICAgIEJ1ZmZlckRlc2NyaXB0b3IgZGVzY3JpcHRvcjsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgZGVzY3JpcHRvciA9IG1HcmFsbG9jLT5jcmVhdGVEZXNjcmlwdG9yKG1EdW1teURlc2NyaXB0b3JJbmZvKSk7CisKKyAgICBmb3IgKHVpbnQzMl90IGNvdW50ID0gMDsgY291bnQgPCA1OyBjb3VudCsrKSB7CisgICAgICAgIHN0ZDo6dmVjdG9yPGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCo+IGJ1ZmZlckhhbmRsZXM7CisgICAgICAgIHVpbnQzMl90IHN0cmlkZTsKKyAgICAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoYnVmZmVySGFuZGxlcyA9IG1HcmFsbG9jLT5hbGxvY2F0ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IsIGNvdW50LCBmYWxzZSwgJnN0cmlkZSkpOworCisgICAgICAgIGlmIChjb3VudCA+PSAxKSB7CisgICAgICAgICAgICBFWFBFQ1RfTEUobUR1bW15RGVzY3JpcHRvckluZm8ud2lkdGgsIHN0cmlkZSkKKyAgICAgICAgICAgICAgICA8PCAiaW52YWxpZCBidWZmZXIgc3RyaWRlIjsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoYXV0byBidWZmZXJIYW5kbGUgOiBidWZmZXJIYW5kbGVzKSB7CisgICAgICAgICAgICBtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihidWZmZXJIYW5kbGUpOworICAgICAgICB9CisgICAgfQorfQorCisvKioKKyAqIFRlc3QgSUFsbG9jYXRvcjo6YWxsb2NhdGUgd2l0aCBpbnZhbGlkIGJ1ZmZlciBkZXNjcmlwdG9ycy4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEFsbG9jYXRvckFsbG9jYXRlTmVnYXRpdmUpIHsKKyAgICAvLyB0aGlzIGFzc3VtZXMgYW55IHZhbGlkIGRlc2NyaXB0b3IgaXMgbm9uLWVtcHR5CisgICAgQnVmZmVyRGVzY3JpcHRvciBkZXNjcmlwdG9yOworICAgIG1HcmFsbG9jLT5nZXRBbGxvY2F0b3IoKS0+YWxsb2NhdGUoCisgICAgICAgIGRlc2NyaXB0b3IsIDEsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYsIGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9ERVNDUklQVE9SLCB0bXBFcnJvcik7CisgICAgICAgIH0pOworfQorCisvKioKKyAqIFRlc3QgSUFsbG9jYXRvcjo6YWxsb2NhdGUgZG9lcyBub3QgbGVhay4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEFsbG9jYXRvckFsbG9jYXRlTm9MZWFrKSB7CisgICAgYXV0byBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisgICAgaW5mby53aWR0aCA9IDEwMjQ7CisgICAgaW5mby5oZWlnaHQgPSAxMDI0OworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyMDQ4OyBpKyspIHsKKyAgICAgICAgYXV0byBidWZmZXJIYW5kbGUgPSBtR3JhbGxvYy0+YWxsb2NhdGUoaW5mbywgZmFsc2UpOworICAgICAgICBtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihidWZmZXJIYW5kbGUpOworICAgIH0KK30KKworLyoqCisgKiBUZXN0IElNYXBwZXI6OmNyZWF0ZURlc2NyaXB0b3Igd2l0aCB2YWxpZCBkZXNjcmlwdG9yIGluZm8uCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBDcmVhdGVEZXNjcmlwdG9yQmFzaWMpIHsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYy0+Y3JlYXRlRGVzY3JpcHRvcihtRHVtbXlEZXNjcmlwdG9ySW5mbykpOworfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6Y3JlYXRlRGVzY3JpcHRvciB3aXRoIGludmFsaWQgZGVzY3JpcHRvciBpbmZvLgorICovCitURVNUX0YoR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCwgQ3JlYXRlRGVzY3JpcHRvck5lZ2F0aXZlKSB7CisgICAgYXV0byBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisgICAgaW5mby53aWR0aCA9IDA7CisgICAgbUdyYWxsb2MtPmdldE1hcHBlcigpLT5jcmVhdGVEZXNjcmlwdG9yKAorICAgICAgICBpbmZvLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9WQUxVRSwgdG1wRXJyb3IpCisgICAgICAgICAgICAgICAgPDwgImNyZWF0ZURlc2NyaXB0b3IgZGlkIG5vdCBmYWlsIHdpdGggQkFEX1ZBTFVFIjsKKyAgICAgICAgfSk7Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjppbXBvcnRCdWZmZXIgYW5kIElNYXBwZXI6OmZyZWVCdWZmZXIgd2l0aCBhbGxvY2F0ZWQgYnVmZmVycy4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEltcG9ydEZyZWVCdWZmZXJCYXNpYykgeworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGJ1ZmZlckhhbmRsZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1HcmFsbG9jLT5hbGxvY2F0ZShtRHVtbXlEZXNjcmlwdG9ySW5mbywgdHJ1ZSkpOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jLT5mcmVlQnVmZmVyKGJ1ZmZlckhhbmRsZSkpOworfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6aW1wb3J0QnVmZmVyIGFuZCBJTWFwcGVyOjpmcmVlQnVmZmVyIHdpdGggY2xvbmVkIGJ1ZmZlcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBJbXBvcnRGcmVlQnVmZmVyQ2xvbmUpIHsKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGNsb25lZEJ1ZmZlckhhbmRsZTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgY2xvbmVkQnVmZmVySGFuZGxlID0gbUdyYWxsb2MtPmFsbG9jYXRlKG1EdW1teURlc2NyaXB0b3JJbmZvLCBmYWxzZSkpOworCisgICAgLy8gQSBjbG9uZWQgaGFuZGxlIGlzIGEgcmF3IGhhbmRsZS4gQ2hlY2sgdGhhdCB3ZSBjYW4gaW1wb3J0IGl0IG11bHRpcGxlCisgICAgLy8gdGltZXMuCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBpbXBvcnRlZEJ1ZmZlckhhbmRsZXNbMl07CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoaW1wb3J0ZWRCdWZmZXJIYW5kbGVzWzBdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUdyYWxsb2MtPmltcG9ydEJ1ZmZlcihjbG9uZWRCdWZmZXJIYW5kbGUpKTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShpbXBvcnRlZEJ1ZmZlckhhbmRsZXNbMV0gPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtR3JhbGxvYy0+aW1wb3J0QnVmZmVyKGNsb25lZEJ1ZmZlckhhbmRsZSkpOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jLT5mcmVlQnVmZmVyKGltcG9ydGVkQnVmZmVySGFuZGxlc1swXSkpOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKG1HcmFsbG9jLT5mcmVlQnVmZmVyKGltcG9ydGVkQnVmZmVySGFuZGxlc1sxXSkpOworCisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUobUdyYWxsb2MtPmZyZWVCdWZmZXIoY2xvbmVkQnVmZmVySGFuZGxlKSk7Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjppbXBvcnRCdWZmZXIgYW5kIElNYXBwZXI6OmZyZWVCdWZmZXIgY3Jvc3MgbWFwcGVyIGluc3RhbmNlcy4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEltcG9ydEZyZWVCdWZmZXJTaW5nbGV0b24pIHsKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIHJhd0hhbmRsZTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgcmF3SGFuZGxlID0gbUdyYWxsb2MtPmFsbG9jYXRlKG1EdW1teURlc2NyaXB0b3JJbmZvLCBmYWxzZSkpOworCisgICAgbmF0aXZlX2hhbmRsZV90KiBpbXBvcnRlZEhhbmRsZSA9IG51bGxwdHI7CisgICAgbUdyYWxsb2MtPmdldE1hcHBlcigpLT5pbXBvcnRCdWZmZXIoCisgICAgICAgIHJhd0hhbmRsZSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJiBidWZmZXIpIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShFcnJvcjo6Tk9ORSwgdG1wRXJyb3IpOworICAgICAgICAgICAgaW1wb3J0ZWRIYW5kbGUgPSBzdGF0aWNfY2FzdDxuYXRpdmVfaGFuZGxlX3QqPihidWZmZXIpOworICAgICAgICB9KTsKKworICAgIC8vIGZyZWUgdGhlIGltcG9ydGVkIGhhbmRsZSB3aXRoIGFub3RoZXIgbWFwcGVyCisgICAgc3RkOjp1bmlxdWVfcHRyPEdyYWxsb2M+IGFub3RoZXJHcmFsbG9jOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGFub3RoZXJHcmFsbG9jID0gc3RkOjptYWtlX3VuaXF1ZTxHcmFsbG9jPigpKTsKKyAgICBFcnJvciBlcnJvciA9IG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+ZnJlZUJ1ZmZlcihpbXBvcnRlZEhhbmRsZSk7CisgICAgQVNTRVJUX0VRKEVycm9yOjpOT05FLCBlcnJvcik7CisKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihyYXdIYW5kbGUpKTsKK30KKworLyoqCisgKiBUZXN0IElNYXBwZXI6OmltcG9ydEJ1ZmZlciBhbmQgSU1hcHBlcjo6ZnJlZUJ1ZmZlciBkbyBub3QgbGVhay4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIEltcG9ydEZyZWVCdWZmZXJOb0xlYWspIHsKKyAgICBhdXRvIGluZm8gPSBtRHVtbXlEZXNjcmlwdG9ySW5mbzsKKyAgICBpbmZvLndpZHRoID0gMTAyNDsKKyAgICBpbmZvLmhlaWdodCA9IDEwMjQ7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwNDg7IGkrKykgeworICAgICAgICBhdXRvIGJ1ZmZlckhhbmRsZSA9IG1HcmFsbG9jLT5hbGxvY2F0ZShpbmZvLCB0cnVlKTsKKyAgICAgICAgbUdyYWxsb2MtPmZyZWVCdWZmZXIoYnVmZmVySGFuZGxlKTsKKyAgICB9Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjppbXBvcnRCdWZmZXIgd2l0aCBpbnZhbGlkIGJ1ZmZlcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBJbXBvcnRCdWZmZXJOZWdhdGl2ZSkgeworICAgIG5hdGl2ZV9oYW5kbGVfdCogaW52YWxpZEhhbmRsZSA9IG51bGxwdHI7CisgICAgbUdyYWxsb2MtPmdldE1hcHBlcigpLT5pbXBvcnRCdWZmZXIoCisgICAgICAgIGludmFsaWRIYW5kbGUsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwgY29uc3QgYXV0byYpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvcjo6QkFEX0JVRkZFUiwgdG1wRXJyb3IpCisgICAgICAgICAgICAgICAgPDwgImltcG9ydEJ1ZmZlciB3aXRoIG51bGxwdHIgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisgICAgICAgIH0pOworCisgICAgaW52YWxpZEhhbmRsZSA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDAsIDApOworICAgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+aW1wb3J0QnVmZmVyKGludmFsaWRIYW5kbGUsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYpIHsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCB0bXBFcnJvcikKKyAgICAgICAgICAgIDw8ICJpbXBvcnRCdWZmZXIgd2l0aCBpbnZhbGlkIGhhbmRsZSBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKyAgICB9KTsKKyAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShpbnZhbGlkSGFuZGxlKTsKK30KKworLyoqCisgKiBUZXN0IElNYXBwZXI6OmZyZWVCdWZmZXIgd2l0aCBpbnZhbGlkIGJ1ZmZlcnMuCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBGcmVlQnVmZmVyTmVnYXRpdmUpIHsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGludmFsaWRIYW5kbGUgPSBudWxscHRyOworICAgIEVycm9yIGVycm9yID0gbUdyYWxsb2MtPmdldE1hcHBlcigpLT5mcmVlQnVmZmVyKGludmFsaWRIYW5kbGUpOworICAgIEVYUEVDVF9FUShFcnJvcjo6QkFEX0JVRkZFUiwgZXJyb3IpCisgICAgICAgIDw8ICJmcmVlQnVmZmVyIHdpdGggbnVsbHB0ciBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKworICAgIGludmFsaWRIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgwLCAwKTsKKyAgICBlcnJvciA9IG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+ZnJlZUJ1ZmZlcihpbnZhbGlkSGFuZGxlKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIGVycm9yKQorICAgICAgICA8PCAiZnJlZUJ1ZmZlciB3aXRoIGludmFsaWQgaGFuZGxlIGRpZCBub3QgZmFpbCB3aXRoIEJBRF9CVUZGRVIiOworICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGludmFsaWRIYW5kbGUpOworCisgICAgY29uc3QgbmF0aXZlX2hhbmRsZV90KiBjbG9uZWRCdWZmZXJIYW5kbGU7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICAgIGNsb25lZEJ1ZmZlckhhbmRsZSA9IG1HcmFsbG9jLT5hbGxvY2F0ZShtRHVtbXlEZXNjcmlwdG9ySW5mbywgZmFsc2UpKTsKKyAgICBlcnJvciA9IG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+ZnJlZUJ1ZmZlcihpbnZhbGlkSGFuZGxlKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIGVycm9yKQorICAgICAgICA8PCAiZnJlZUJ1ZmZlciB3aXRoIHVuLWltcG9ydGVkIGhhbmRsZSBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKworICAgIG1HcmFsbG9jLT5mcmVlQnVmZmVyKGNsb25lZEJ1ZmZlckhhbmRsZSk7Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjpsb2NrIGFuZCBJTWFwcGVyOjp1bmxvY2suCisgKi8KK1RFU1RfRihHcmFwaGljc01hcHBlckhpZGxUZXN0LCBMb2NrVW5sb2NrQmFzaWMpIHsKKyAgICBjb25zdCBhdXRvJiBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisKKyAgICBjb25zdCBuYXRpdmVfaGFuZGxlX3QqIGJ1ZmZlckhhbmRsZTsKKyAgICB1aW50MzJfdCBzdHJpZGU7CisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoYnVmZmVySGFuZGxlID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUdyYWxsb2MtPmFsbG9jYXRlKGluZm8sIHRydWUsICZzdHJpZGUpKTsKKworICAgIC8vIGxvY2sgYnVmZmVyIGZvciB3cml0aW5nCisgICAgY29uc3QgSU1hcHBlcjo6UmVjdCByZWdpb257MCwgMCwgc3RhdGljX2Nhc3Q8aW50MzJfdD4oaW5mby53aWR0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oaW5mby5oZWlnaHQpfTsKKyAgICBpbnQgZmVuY2UgPSAtMTsKKyAgICB1aW50OF90KiBkYXRhOworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obUdyYWxsb2MtPmxvY2soCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlckhhbmRsZSwgaW5mby51c2FnZSwgcmVnaW9uLCBmZW5jZSkpKTsKKworICAgIC8vIFJHQkFfODg4OAorICAgIHNpemVfdCBzdHJpZGVJbkJ5dGVzID0gc3RyaWRlICogNDsKKyAgICBzaXplX3Qgd3JpdGVJbkJ5dGVzID0gaW5mby53aWR0aCAqIDQ7CisKKyAgICBmb3IgKHVpbnQzMl90IHkgPSAwOyB5IDwgaW5mby5oZWlnaHQ7IHkrKykgeworICAgICAgICBtZW1zZXQoZGF0YSwgeSwgd3JpdGVJbkJ5dGVzKTsKKyAgICAgICAgZGF0YSArPSBzdHJpZGVJbkJ5dGVzOworICAgIH0KKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGZlbmNlID0gbUdyYWxsb2MtPnVubG9jayhidWZmZXJIYW5kbGUpKTsKKworICAgIC8vIGxvY2sgYWdhaW4gZm9yIHJlYWRpbmcKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShkYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KG1HcmFsbG9jLT5sb2NrKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXJIYW5kbGUsIGluZm8udXNhZ2UsIHJlZ2lvbiwgZmVuY2UpKSk7CisgICAgZm9yICh1aW50MzJfdCB5ID0gMDsgeSA8IGluZm8uaGVpZ2h0OyB5KyspIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3cml0ZUluQnl0ZXM7IGkrKykgeworICAgICAgICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHkpLCBkYXRhW2ldKTsKKyAgICAgICAgfQorICAgICAgICBkYXRhICs9IHN0cmlkZUluQnl0ZXM7CisgICAgfQorCisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoZmVuY2UgPSBtR3JhbGxvYy0+dW5sb2NrKGJ1ZmZlckhhbmRsZSkpOworICAgIGlmIChmZW5jZSA+PSAwKSB7CisgICAgICAgIGNsb3NlKGZlbmNlKTsKKyAgICB9Cit9CisKKy8qKgorICogVGVzdCBJTWFwcGVyOjpsb2NrWUNiQ3IuICBUaGlzIGxvY2tzIGEgWVYxMiBidWZmZXIsIGFuZCBtYWtlcyBzdXJlIHdlIGNhbgorICogd3JpdGUgdG8gYW5kIHJlYWQgZnJvbSBpdC4KKyAqLworVEVTVF9GKEdyYXBoaWNzTWFwcGVySGlkbFRlc3QsIExvY2tZQ2JDckJhc2ljKSB7CisgICAgYXV0byBpbmZvID0gbUR1bW15RGVzY3JpcHRvckluZm87CisgICAgaW5mby5mb3JtYXQgPSBQaXhlbEZvcm1hdDo6WVYxMjsKKworICAgIGNvbnN0IG5hdGl2ZV9oYW5kbGVfdCogYnVmZmVySGFuZGxlOworICAgIHVpbnQzMl90IHN0cmlkZTsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShidWZmZXJIYW5kbGUgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtR3JhbGxvYy0+YWxsb2NhdGUoaW5mbywgdHJ1ZSwgJnN0cmlkZSkpOworCisgICAgLy8gbG9jayBidWZmZXIgZm9yIHdyaXRpbmcKKyAgICBjb25zdCBJTWFwcGVyOjpSZWN0IHJlZ2lvbnswLCAwLCBzdGF0aWNfY2FzdDxpbnQzMl90PihpbmZvLndpZHRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQzMl90PihpbmZvLmhlaWdodCl9OworICAgIGludCBmZW5jZSA9IC0xOworICAgIFlDYkNyTGF5b3V0IGxheW91dDsKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgbGF5b3V0ID0gbUdyYWxsb2MtPmxvY2tZQ2JDcihidWZmZXJIYW5kbGUsIGluZm8udXNhZ2UsIHJlZ2lvbiwgZmVuY2UpKTsKKworICAgIGF1dG8geURhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obGF5b3V0LnkpOworICAgIGF1dG8gY2JEYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGxheW91dC5jYik7CisgICAgYXV0byBjckRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obGF5b3V0LmNyKTsKKyAgICBmb3IgKHVpbnQzMl90IHkgPSAwOyB5IDwgaW5mby5oZWlnaHQ7IHkrKykgeworICAgICAgICBmb3IgKHVpbnQzMl90IHggPSAwOyB4IDwgaW5mby53aWR0aDsgeCsrKSB7CisgICAgICAgICAgICBhdXRvIHZhbCA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGluZm8uaGVpZ2h0ICogeSArIHgpOworCisgICAgICAgICAgICB5RGF0YVtsYXlvdXQueVN0cmlkZSAqIHkgKyB4XSA9IHZhbDsKKyAgICAgICAgICAgIGlmICh5ICUgMiA9PSAwICYmIHggJSAyID09IDApIHsKKyAgICAgICAgICAgICAgICBjYkRhdGFbbGF5b3V0LmNTdHJpZGUgKiB5IC8gMiArIHggLyAyXSA9IHZhbDsKKyAgICAgICAgICAgICAgICBjckRhdGFbbGF5b3V0LmNTdHJpZGUgKiB5IC8gMiArIHggLyAyXSA9IHZhbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGZlbmNlID0gbUdyYWxsb2MtPnVubG9jayhidWZmZXJIYW5kbGUpKTsKKworICAgIC8vIGxvY2sgYWdhaW4gZm9yIHJlYWRpbmcKKyAgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKyAgICAgICAgbGF5b3V0ID0gbUdyYWxsb2MtPmxvY2tZQ2JDcihidWZmZXJIYW5kbGUsIGluZm8udXNhZ2UsIHJlZ2lvbiwgZmVuY2UpKTsKKworICAgIHlEYXRhID0gc3RhdGljX2Nhc3Q8dWludDhfdCo+KGxheW91dC55KTsKKyAgICBjYkRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obGF5b3V0LmNiKTsKKyAgICBjckRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4obGF5b3V0LmNyKTsKKyAgICBmb3IgKHVpbnQzMl90IHkgPSAwOyB5IDwgaW5mby5oZWlnaHQ7IHkrKykgeworICAgICAgICBmb3IgKHVpbnQzMl90IHggPSAwOyB4IDwgaW5mby53aWR0aDsgeCsrKSB7CisgICAgICAgICAgICBhdXRvIHZhbCA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGluZm8uaGVpZ2h0ICogeSArIHgpOworCisgICAgICAgICAgICBFWFBFQ1RfRVEodmFsLCB5RGF0YVtsYXlvdXQueVN0cmlkZSAqIHkgKyB4XSk7CisgICAgICAgICAgICBpZiAoeSAlIDIgPT0gMCAmJiB4ICUgMiA9PSAwKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHZhbCwgY2JEYXRhW2xheW91dC5jU3RyaWRlICogeSAvIDIgKyB4IC8gMl0pOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSh2YWwsIGNyRGF0YVtsYXlvdXQuY1N0cmlkZSAqIHkgLyAyICsgeCAvIDJdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKGZlbmNlID0gbUdyYWxsb2MtPnVubG9jayhidWZmZXJIYW5kbGUpKTsKKyAgICBpZiAoZmVuY2UgPj0gMCkgeworICAgICAgICBjbG9zZShmZW5jZSk7CisgICAgfQorfQorCisvKioKKyAqIFRlc3QgSU1hcHBlcjo6dW5sb2NrIHdpdGggaW52YWxpZCBidWZmZXJzLgorICovCitURVNUX0YoR3JhcGhpY3NNYXBwZXJIaWRsVGVzdCwgVW5sb2NrTmVnYXRpdmUpIHsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGludmFsaWRIYW5kbGUgPSBudWxscHRyOworICAgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+dW5sb2NrKAorICAgICAgICBpbnZhbGlkSGFuZGxlLCBbJl0oY29uc3QgYXV0byYgdG1wRXJyb3IsIGNvbnN0IGF1dG8mKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIHRtcEVycm9yKQorICAgICAgICAgICAgICAgIDw8ICJ1bmxvY2sgd2l0aCBudWxscHRyIGRpZCBub3QgZmFpbCB3aXRoIEJBRF9CVUZGRVIiOworICAgICAgICB9KTsKKworICAgIGludmFsaWRIYW5kbGUgPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgwLCAwKTsKKyAgICBtR3JhbGxvYy0+Z2V0TWFwcGVyKCktPnVubG9jaygKKyAgICAgICAgaW52YWxpZEhhbmRsZSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJikgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCB0bXBFcnJvcikKKyAgICAgICAgICAgICAgICA8PCAidW5sb2NrIHdpdGggaW52YWxpZCBoYW5kbGUgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisgICAgICAgIH0pOworICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGludmFsaWRIYW5kbGUpOworCisgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoaW52YWxpZEhhbmRsZSA9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4obUdyYWxsb2MtPmFsbG9jYXRlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUR1bW15RGVzY3JpcHRvckluZm8sIGZhbHNlKSkpOworICAgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+dW5sb2NrKGludmFsaWRIYW5kbGUsIFsmXShjb25zdCBhdXRvJiB0bXBFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYpIHsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yOjpCQURfQlVGRkVSLCB0bXBFcnJvcikKKyAgICAgICAgICAgIDw8ICJ1bmxvY2sgd2l0aCB1bi1pbXBvcnRlZCBoYW5kbGUgZGlkIG5vdCBmYWlsIHdpdGggQkFEX0JVRkZFUiI7CisgICAgfSk7CisgICAgbUdyYWxsb2MtPmZyZWVCdWZmZXIoaW52YWxpZEhhbmRsZSk7CisKKy8vIGRpc2FibGVkIGFzIGl0IGZhaWxzIG9uIG1hbnkgZXhpc3RpbmcgZHJpdmVycworI2lmIDAKKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoaW52YWxpZEhhbmRsZSA9IGNvbnN0X2Nhc3Q8bmF0aXZlX2hhbmRsZV90Kj4oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtR3JhbGxvYy0+YWxsb2NhdGUobUR1bW15RGVzY3JpcHRvckluZm8sIHRydWUpKSk7CisgIG1HcmFsbG9jLT5nZXRNYXBwZXIoKS0+dW5sb2NrKAorICAgICAgaW52YWxpZEhhbmRsZSwgWyZdKGNvbnN0IGF1dG8mIHRtcEVycm9yLCBjb25zdCBhdXRvJikgeworICAgICAgICBFWFBFQ1RfRVEoRXJyb3I6OkJBRF9CVUZGRVIsIHRtcEVycm9yKQorICAgICAgICAgICAgPDwgInVubG9jayB3aXRoIHVubG9ja2VkIGhhbmRsZSBkaWQgbm90IGZhaWwgd2l0aCBCQURfQlVGRkVSIjsKKyAgICAgIH0pOworICBtR3JhbGxvYy0+ZnJlZUJ1ZmZlcihpbnZhbGlkSGFuZGxlKTsKKyNlbmRpZgorfQorCit9ICAvLyBuYW1lc3BhY2UKK30gIC8vIG5hbWVzcGFjZSB0ZXN0cworfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBtYXBwZXIKK30gIC8vIG5hbWVzcGFjZSBncmFwaGljcworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgTE9HKElORk8pIDw8ICJUZXN0IHJlc3VsdCA9ICIgPDwgc3RhdHVzOworCisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9ncmFwaGljcy9tYXBwZXIvQW5kcm9pZC5tayBiL2dyYXBoaWNzL21hcHBlci9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9ncmFwaGljcy9tYXBwZXIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9BbmRyb2lkLmJwIGIvaGVhbHRoLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmYjJkN2IKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUhlYWx0aC5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSGVhbHRoQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL0lIZWFsdGguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUh3SGVhbHRoLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvMS4wL0JuSHdIZWFsdGguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvQnBId0hlYWx0aC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC9Cc0hlYWx0aC5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9BbmRyb2lkLm1rIGIvaGVhbHRoLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwM2I4NjgKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwzMDQgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQmF0dGVyeUhlYWx0aCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvQmF0dGVyeUhlYWx0aC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6dHlwZXMuQmF0dGVyeUhlYWx0aAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQmF0dGVyeVN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvQmF0dGVyeVN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6dHlwZXMuQmF0dGVyeVN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGVhbHRoQ29uZmlnKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9IZWFsdGhDb25maWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkhlYWx0aENvbmZpZworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGVhbHRoSW5mbykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvSGVhbHRoSW5mby5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMDo6dHlwZXMuSGVhbHRoSW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9SZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLlJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElIZWFsdGguaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0lIZWFsdGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lIZWFsdGguaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OklIZWFsdGgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZWFsdGguaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aC1WMS4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEJhdHRlcnlIZWFsdGgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0JhdHRlcnlIZWFsdGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkJhdHRlcnlIZWFsdGgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEJhdHRlcnlTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0JhdHRlcnlTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkJhdHRlcnlTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhlYWx0aENvbmZpZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvSGVhbHRoQ29uZmlnLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcy5IZWFsdGhDb25maWcKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEhlYWx0aEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC9WMV8wL0hlYWx0aEluZm8uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA6OnR5cGVzLkhlYWx0aEluZm8KKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjp0eXBlcy5SZXN1bHQKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJSGVhbHRoLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9oZWFsdGgvVjFfMC9JSGVhbHRoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JSGVhbHRoLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOjpJSGVhbHRoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGVhbHRoLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoLVYxLjAtamF2YS1jb25zdGFudHMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvaGVhbHRoL1YxXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZWFsdGguaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9JSGVhbHRoLmhhbCBiL2hlYWx0aC8xLjAvSUhlYWx0aC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgyODU4OQotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvSUhlYWx0aC5oYWwKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wOworCitpbnRlcmZhY2UgSUhlYWx0aCB7CisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBsZXRzIHlvdSBjaGFuZ2UgaGVhbHRoZCBjb25maWd1cmF0aW9uIGZyb20gZGVmYXVsdCBpZgorICAgICAqIGRlc2lyZWQuIEl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBhdCBzdGFydHVwIHRpbWUuCisgICAgICoKKyAgICAgKiBUaGUgY29uZmlndXJhdGlvbiB2YWx1ZXMgYXJlIGRlc2NyaWJlZCBpbiAnc3RydWN0IEhlYWx0aENvbmZpZycuCisgICAgICogVG8gdXNlIGRlZmF1bHQgY29uZmlndXJhdGlvbiwgc2ltcGx5IHJldHVybiB3aXRob3V0IG1vZGlmeWluZyB0aGUKKyAgICAgKiBmaWVsZHMgb2YgdGhlIGNvbmZpZyBwYXJhbWV0ZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGVmYXVsdCBoZWFsdGhkIGNvbmZpZ3VyYXRpb24uCisgICAgICovCisgICAgaW5pdChIZWFsdGhDb25maWcgY29uZmlnKSBnZW5lcmF0ZXMgKEhlYWx0aENvbmZpZyBjb25maWdPdXQpOworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyBhIGhvb2sgdG8gdXBkYXRlL2NoYW5nZSBkZXZpY2UncyBIZWFsdGhJbmZvIChhcyBkZXNjcmliZWQKKyAgICAgKiBpbiAnc3RydWN0IEhlYWx0aEluZm8nKS4KKyAgICAgKgorICAgICAqICdIZWFsdGhJbmZvJyBkZXNjcmliZXMgZGV2aWNlJ3MgYmF0dGVyeSBhbmQgY2hhcmdpbmcgc3RhdHVzLCB0eXBpY2FsbHkKKyAgICAgKiByZWFkIGZyb20ga2VybmVsLiBUaGVzZSB2YWx1ZXMgbWF5IGJlIG1vZGlmaWVkIGluIHRoaXMgY2FsbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSAgIERldmljZSBIZWFsdGggaW5mbyBhcyBkZXNjcmliZWQgaW4gJ3N0cnVjdCBIZWFsdGhJbmZvJy4KKyAgICAgKiBAcmV0dXJuICBza2lwTG9nZ2luZyBJbmRpY2F0aW9uIHRvIHRoZSBjYWxsZXIgdG8gYWRkICdvcicgc2tpcCBsb2dnaW5nIHRoZSBoZWFsdGgKKyAgICAgKiAgICAgICAgICBpbmZvcm1hdGlvbi4gUmV0dXJuICd0cnVlJyB0byBza2lwIGxvZ2dpbmcgdGhlIHVwZGF0ZS4KKyAgICAgKiBAcmV0dXJuICBpbmZvT3V0IEhlYWx0aEluZm8gdG8gYmUgc2VudCB0byBjbGllbnQgY29kZS4gKE1heSBvciBtYXkKKyAgICAgKiAgICAgICAgICBub3QgYmUgbW9kaWZpZWQpLgorICAgICAqLworICAgIHVwZGF0ZShIZWFsdGhJbmZvIGluZm8pIGdlbmVyYXRlcyAoYm9vbCBza2lwTG9nZ2luZywgSGVhbHRoSW5mbyBpbmZvT3V0KTsKKworICAgIC8qKgorICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGhlYWx0aGQgd2hlbiBmcmFtZXdvcmsgcXVlcmllcyBmb3IgcmVtYWluaW5nCisgICAgICogZW5lcmd5IGluIHRoZSBCYXR0ZXJ5IHRocm91Z2ggQmF0dGVyeU1hbmFnZXIgQVBJcy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gIHJlc3VsdCBSZXN1bHQgb2YgcXVlcnlpbmcgZW5lcnkgY291bnRlciBmb3IgdGhlIGJhdHRlcnkuCisgICAgICogQHJldHVybiAgZW5lcmd5IEJhdHRlcnkgcmVtYWluaW5nIGVuZXJneSBpbiBuYW5vd2F0dC1ob3Vycy4KKyAgICAgKiAgICAgICAgICBNdXN0IGJlICcwJyBpZiByZXN1bHQgaXMgYW55dGhpbmcgb3RoZXIgdGhhbiBSZXN1bHQ6OlNVQ0NFU1MuCisgICAgICovCisgICAgZW5lcmd5Q291bnRlcigpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCwgaW50NjRfdCBlbmVyZ3kpOworfTsKZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvaGVhbHRoLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZmZjkxZgotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNTkgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfQ19JTkNMVURFUyA6PSBzeXN0ZW0vY29yZS9oZWFsdGhkL2luY2x1ZGUgc3lzdGVtL2NvcmUvYmFzZS9pbmNsdWRlCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIEhlYWx0aC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAgXAorCitMT0NBTF9TVEFUSUNfTElCUkFSSUVTIDo9IGFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1jb252ZXJ0CisKK0xPQ0FMX0hBTF9TVEFUSUNfTElCUkFSSUVTIDo9IGxpYmhlYWx0aGQKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAtY29udmVydAorTE9DQUxfU1JDX0ZJTEVTIDo9IGNvbnZlcnQuY3BwCitMT0NBTF9DX0lOQ0xVREVTIDo9IHN5c3RlbS9jb3JlL2hlYWx0aGQvaW5jbHVkZSBzeXN0ZW0vY29yZS9iYXNlL2luY2x1ZGUKK0xPQ0FMX0VYUE9SVF9DX0lOQ0xVREVfRElSUyA6PSAkKExPQ0FMX1BBVEgpL2luY2x1ZGUKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYnV0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0xJQlJBUlkpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgSGVhbHRoU2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZGwgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wIFwKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCisKK2luY2x1ZGUgJChjYWxsIGZpcnN0LW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L0hlYWx0aC5jcHAgYi9oZWFsdGgvMS4wL2RlZmF1bHQvSGVhbHRoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYTAyOTU2Ci0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC9kZWZhdWx0L0hlYWx0aC5jcHAKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiaGVhbHRoLWhhbCIKKworI2luY2x1ZGUgPEhlYWx0aC5oPgorI2luY2x1ZGUgPGluY2x1ZGUvaGFsX2NvbnZlcnNpb24uaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBoZWFsdGggeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpoYWxfY29udmVyc2lvbjo6Y29udmVydFRvSGVhbHRoQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpoYWxfY29udmVyc2lvbjo6Y29udmVydEZyb21IZWFsdGhDb25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoZWFsdGg6OlYxXzA6OmhhbF9jb252ZXJzaW9uOjpjb252ZXJ0VG9IZWFsdGhJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpoYWxfY29udmVyc2lvbjo6Y29udmVydEZyb21IZWFsdGhJbmZvOworCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpJSGVhbHRoIGZvbGxvdy4KK1JldHVybjx2b2lkPiBIZWFsdGg6OmluaXQoY29uc3QgSGVhbHRoQ29uZmlnJiBjb25maWcsIGluaXRfY2IgX2hpZGxfY2IpICB7CisgICAgc3RydWN0IGhlYWx0aGRfY29uZmlnIGhlYWx0aGRfY29uZmlnID0ge307CisgICAgSGVhbHRoQ29uZmlnIGNvbmZpZ091dDsKKworICAgIC8vIFRvIGtlZXAgd29ya2luZyB3aXRoIGV4aXN0aW5nIGhlYWx0aGQgc3RhdGljIEhBTHMsCisgICAgLy8gY29udmVydCB0aGUgbmV3IEhlYWx0aENvbmZpZyB0byB0aGUgb2xkIGhlYWx0aGRfY29uZmlnCisgICAgLy8gYW5kIGJhY2suCisKKyAgICBjb252ZXJ0RnJvbUhlYWx0aENvbmZpZyhjb25maWcsICZoZWFsdGhkX2NvbmZpZyk7CisgICAgaGVhbHRoZF9ib2FyZF9pbml0KCZoZWFsdGhkX2NvbmZpZyk7CisgICAgbUdldEVuZXJneUNvdW50ZXIgPSBoZWFsdGhkX2NvbmZpZy5lbmVyZ3lDb3VudGVyOworICAgIGNvbnZlcnRUb0hlYWx0aENvbmZpZygmaGVhbHRoZF9jb25maWcsIGNvbmZpZ091dCk7CisKKyAgICBfaGlkbF9jYihjb25maWdPdXQpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEhlYWx0aDo6dXBkYXRlKGNvbnN0IEhlYWx0aEluZm8mIGluZm8sIHVwZGF0ZV9jYiBfaGlkbF9jYikgIHsKKyAgICBzdHJ1Y3QgYW5kcm9pZDo6QmF0dGVyeVByb3BlcnRpZXMgcCA9IHt9OworICAgIEhlYWx0aEluZm8gaW5mb091dDsKKworICAgIC8vIFRvIGtlZXAgd29ya2luZyB3aXRoIGV4aXN0aW5nIGhlYWx0aGQgc3RhdGljIEhBTHMsCisgICAgLy8gY29udmVydCB0aGUgbmV3IEhlYWx0aEluZm8gdG8gYW5kcm9pZDo6QmF0dGVyeXByb3BlcnRpZXMKKyAgICAvLyBhbmQgYmFjay4KKworICAgIGNvbnZlcnRGcm9tSGVhbHRoSW5mbyhpbmZvLCAmcCk7CisgICAgaW50IHNraXBMb2dnaW5nID0gaGVhbHRoZF9ib2FyZF9iYXR0ZXJ5X3VwZGF0ZSgmcCk7CisgICAgY29udmVydFRvSGVhbHRoSW5mbygmcCwgaW5mb091dCk7CisKKyAgICBfaGlkbF9jYighIXNraXBMb2dnaW5nLCBpbmZvT3V0KTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBIZWFsdGg6OmVuZXJneUNvdW50ZXIoZW5lcmd5Q291bnRlcl9jYiBfaGlkbF9jYikgeworICAgIGludDY0X3QgZW5lcmd5ID0gMDsKKyAgICBSZXN1bHQgcmVzdWx0ID0gUmVzdWx0OjpOT1RfU1VQUE9SVEVEOworCisgICAgaWYgKG1HZXRFbmVyZ3lDb3VudGVyKSB7CisgICAgICAgIGludCBzdGF0dXMgPSBtR2V0RW5lcmd5Q291bnRlcigmZW5lcmd5KTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBSZXN1bHQ6OlNVQ0NFU1M7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfaGlkbF9jYihyZXN1bHQsIGVuZXJneSk7CisKKyAgIHJldHVybiBWb2lkKCk7Cit9CisKK0lIZWFsdGgqIEhJRExfRkVUQ0hfSUhlYWx0aChjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgcmV0dXJuIG5ldyBIZWFsdGgoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgaGVhbHRoCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9oZWFsdGgvMS4wL2RlZmF1bHQvSGVhbHRoLmggYi9oZWFsdGgvMS4wL2RlZmF1bHQvSGVhbHRoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQzNjRjMQotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9IZWFsdGguaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9IRUFMVEhfVjFfMF9IRUFMVEhfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX0hFQUxUSF9WMV8wX0hFQUxUSF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUhlYWx0aC5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKyNpbmNsdWRlIDxoZWFsdGhkL2hlYWx0aGQuaD4KKyNpbmNsdWRlIDx1dGlscy9TdHJpbmc4Lmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgaGVhbHRoIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SGVhbHRoSW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SGVhbHRoQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpJSGVhbHRoOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgSGVhbHRoIDogcHVibGljIElIZWFsdGggeworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoZWFsdGg6OlYxXzA6OklIZWFsdGggZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBpbml0KGNvbnN0IEhlYWx0aENvbmZpZyYgY29uZmlnLCBpbml0X2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVwZGF0ZShjb25zdCBIZWFsdGhJbmZvJiBpbmZvLCB1cGRhdGVfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZW5lcmd5Q291bnRlcihlbmVyZ3lDb3VudGVyX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKK3ByaXZhdGU6CisgICAgc3RkOjpmdW5jdGlvbjxpbnQoaW50NjRfdCAqKT4gbUdldEVuZXJneUNvdW50ZXI7Cit9OworCitleHRlcm4gIkMiIElIZWFsdGgqIEhJRExfRkVUQ0hfSUhlYWx0aChjb25zdCBjaGFyKiBuYW1lKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGhlYWx0aAorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfSEVBTFRIX1YxXzBfSEVBTFRIX0gKZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9IZWFsdGhTZXJ2aWNlLmNwcCBiL2hlYWx0aC8xLjAvZGVmYXVsdC9IZWFsdGhTZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTg0OGQyCi0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC9kZWZhdWx0L0hlYWx0aFNlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUhlYWx0aC5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpJSGVhbHRoOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJSGVhbHRoPigpOworfQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlLnJjIGIvaGVhbHRoLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzY2Q3YTUKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5oZWFsdGhAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGhlYWx0aC1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvZGVmYXVsdC9jb252ZXJ0LmNwcCBiL2hlYWx0aC8xLjAvZGVmYXVsdC9jb252ZXJ0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZjFlM2M0Ci0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC9kZWZhdWx0L2NvbnZlcnQuY3BwCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgImluY2x1ZGUvaGFsX2NvbnZlcnNpb24uaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBoZWFsdGggeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGhhbF9jb252ZXJzaW9uIHsKKwordm9pZCBjb252ZXJ0VG9IZWFsdGhDb25maWcoY29uc3Qgc3RydWN0IGhlYWx0aGRfY29uZmlnICpoYywgSGVhbHRoQ29uZmlnJiBjb25maWcpIHsKKyAgICBjb25maWcucGVyaW9kaWNDaG9yZXNJbnRlcnZhbEZhc3QgPSBoYy0+cGVyaW9kaWNfY2hvcmVzX2ludGVydmFsX2Zhc3Q7CisgICAgY29uZmlnLnBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxTbG93ID0gaGMtPnBlcmlvZGljX2Nob3Jlc19pbnRlcnZhbF9zbG93OworCisgICAgY29uZmlnLmJhdHRlcnlTdGF0dXNQYXRoICAgICAgICA9IGhjLT5iYXR0ZXJ5U3RhdHVzUGF0aC5zdHJpbmcoKTsKKyAgICBjb25maWcuYmF0dGVyeUhlYWx0aFBhdGggICAgICAgID0gaGMtPmJhdHRlcnlIZWFsdGhQYXRoLnN0cmluZygpOworICAgIGNvbmZpZy5iYXR0ZXJ5UHJlc2VudFBhdGggICAgICAgPSBoYy0+YmF0dGVyeVByZXNlbnRQYXRoLnN0cmluZygpOworICAgIGNvbmZpZy5iYXR0ZXJ5Q2FwYWNpdHlQYXRoICAgICAgPSBoYy0+YmF0dGVyeUNhcGFjaXR5UGF0aC5zdHJpbmcoKTsKKyAgICBjb25maWcuYmF0dGVyeVZvbHRhZ2VQYXRoICAgICAgID0gaGMtPmJhdHRlcnlWb2x0YWdlUGF0aC5zdHJpbmcoKTsKKyAgICBjb25maWcuYmF0dGVyeVRlbXBlcmF0dXJlUGF0aCAgID0gaGMtPmJhdHRlcnlUZW1wZXJhdHVyZVBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlUZWNobm9sb2d5UGF0aCAgICA9IGhjLT5iYXR0ZXJ5VGVjaG5vbG9neVBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlDdXJyZW50Tm93UGF0aCAgICA9IGhjLT5iYXR0ZXJ5Q3VycmVudE5vd1BhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlDdXJyZW50QXZnUGF0aCAgICA9IGhjLT5iYXR0ZXJ5Q3VycmVudEF2Z1BhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlDaGFyZ2VDb3VudGVyUGF0aCA9IGhjLT5iYXR0ZXJ5Q2hhcmdlQ291bnRlclBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlGdWxsQ2hhcmdlUGF0aCAgICA9IGhjLT5iYXR0ZXJ5RnVsbENoYXJnZVBhdGguc3RyaW5nKCk7CisgICAgY29uZmlnLmJhdHRlcnlDeWNsZUNvdW50UGF0aCAgICA9IGhjLT5iYXR0ZXJ5Q3ljbGVDb3VudFBhdGguc3RyaW5nKCk7CisKK30KKwordm9pZCBjb252ZXJ0RnJvbUhlYWx0aENvbmZpZyhjb25zdCBIZWFsdGhDb25maWcmIGMsIHN0cnVjdCBoZWFsdGhkX2NvbmZpZyAqaGMpIHsKKyAgICBoYy0+cGVyaW9kaWNfY2hvcmVzX2ludGVydmFsX2Zhc3QgPSBjLnBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxGYXN0OworICAgIGhjLT5wZXJpb2RpY19jaG9yZXNfaW50ZXJ2YWxfc2xvdyA9IGMucGVyaW9kaWNDaG9yZXNJbnRlcnZhbFNsb3c7CisKKyAgICBoYy0+YmF0dGVyeVN0YXR1c1BhdGggPQorICAgICAgICBhbmRyb2lkOjpTdHJpbmc4KGMuYmF0dGVyeVN0YXR1c1BhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlTdGF0dXNQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUhlYWx0aFBhdGggPQorICAgICAgICBhbmRyb2lkOjpTdHJpbmc4KGMuYmF0dGVyeUhlYWx0aFBhdGguY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjLmJhdHRlcnlIZWFsdGhQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeVByZXNlbnRQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlQcmVzZW50UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeVByZXNlbnRQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUNhcGFjaXR5UGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5Q2FwYWNpdHlQYXRoLmNfc3RyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgYy5iYXR0ZXJ5Q2FwYWNpdHlQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeVZvbHRhZ2VQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlWb2x0YWdlUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeVZvbHRhZ2VQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeVRlbXBlcmF0dXJlUGF0aCA9CisgICAgICAgIGFuZHJvaWQ6OlN0cmluZzgoYy5iYXR0ZXJ5VGVtcGVyYXR1cmVQYXRoLmNfc3RyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgYy5iYXR0ZXJ5VGVtcGVyYXR1cmVQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeVRlY2hub2xvZ3lQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlUZWNobm9sb2d5UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeVRlY2hub2xvZ3lQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUN1cnJlbnROb3dQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlDdXJyZW50Tm93UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUN1cnJlbnROb3dQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUN1cnJlbnRBdmdQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlDdXJyZW50QXZnUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUN1cnJlbnROb3dQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUNoYXJnZUNvdW50ZXJQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlDaGFyZ2VDb3VudGVyUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUNoYXJnZUNvdW50ZXJQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUZ1bGxDaGFyZ2VQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlGdWxsQ2hhcmdlUGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUZ1bGxDaGFyZ2VQYXRoLnNpemUoKSk7CisKKyAgICBoYy0+YmF0dGVyeUN5Y2xlQ291bnRQYXRoID0KKyAgICAgICAgYW5kcm9pZDo6U3RyaW5nOChjLmJhdHRlcnlDeWNsZUNvdW50UGF0aC5jX3N0cigpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGMuYmF0dGVyeUN5Y2xlQ291bnRQYXRoLnNpemUoKSk7CisKKyAgICAvLyBlbmVyZ3lDb3VudGVyIGlzIGhhbmRsZWQgdGhyb3VnaCBzcGVjaWFsIG1lYW5zIHNvIGFsbCBjYWxscyB0bworICAgIC8vIHRoZSBmdW5jdGlvbiBnbyBhY3Jvc3MgdGhlIEhBTHMKKworICAgIC8vIGJvb3RfbWluX2NhcCAtIG5ldmVyIHVzZWQgaW4gQW5kcm9pZCAob25seSBpbiBjaGFyZ2VyLW1vZGUpLgorCisgICAgLy8gc2NyZWVuX29uIC0gbmV2ZXIgdXNlZCBpbiBBbmRyb2lkIChvbmx5IGluIGNoYXJnZXIgbW9kZSkuCit9CisKK3ZvaWQgY29udmVydFRvSGVhbHRoSW5mbyhjb25zdCBzdHJ1Y3QgYW5kcm9pZDo6QmF0dGVyeVByb3BlcnRpZXMgKnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFsdGhJbmZvJiBpbmZvKSB7CisgICAgaW5mby5jaGFyZ2VyQWNPbmxpbmUgICAgICAgID0gcC0+Y2hhcmdlckFjT25saW5lOworICAgIGluZm8uY2hhcmdlclVzYk9ubGluZSAgICAgICA9IHAtPmNoYXJnZXJVc2JPbmxpbmU7CisgICAgaW5mby5jaGFyZ2VyV2lyZWxlc3NPbmxpbmUgID0gcC0+Y2hhcmdlcldpcmVsZXNzT25saW5lOworICAgIGluZm8ubWF4Q2hhcmdpbmdDdXJyZW50ICAgICA9IHAtPm1heENoYXJnaW5nQ3VycmVudDsKKyAgICBpbmZvLm1heENoYXJnaW5nVm9sdGFnZSAgICAgPSBwLT5tYXhDaGFyZ2luZ1ZvbHRhZ2U7CisgICAgaW5mby5iYXR0ZXJ5U3RhdHVzICAgICAgICAgID0gc3RhdGljX2Nhc3Q8QmF0dGVyeVN0YXR1cz4ocC0+YmF0dGVyeVN0YXR1cyk7CisgICAgaW5mby5iYXR0ZXJ5SGVhbHRoICAgICAgICAgID0gc3RhdGljX2Nhc3Q8QmF0dGVyeUhlYWx0aD4ocC0+YmF0dGVyeUhlYWx0aCk7CisgICAgaW5mby5iYXR0ZXJ5UHJlc2VudCAgICAgICAgID0gcC0+YmF0dGVyeVByZXNlbnQ7CisgICAgaW5mby5iYXR0ZXJ5TGV2ZWwgICAgICAgICAgID0gcC0+YmF0dGVyeUxldmVsOworICAgIGluZm8uYmF0dGVyeVZvbHRhZ2UgICAgICAgICA9IHAtPmJhdHRlcnlWb2x0YWdlOworICAgIGluZm8uYmF0dGVyeVRlbXBlcmF0dXJlICAgICA9IHAtPmJhdHRlcnlUZW1wZXJhdHVyZTsKKyAgICBpbmZvLmJhdHRlcnlDdXJyZW50ICAgICAgICAgPSBwLT5iYXR0ZXJ5Q3VycmVudDsKKyAgICBpbmZvLmJhdHRlcnlDeWNsZUNvdW50ICAgICAgPSBwLT5iYXR0ZXJ5Q3ljbGVDb3VudDsKKyAgICBpbmZvLmJhdHRlcnlGdWxsQ2hhcmdlICAgICAgPSBwLT5iYXR0ZXJ5RnVsbENoYXJnZTsKKyAgICBpbmZvLmJhdHRlcnlDaGFyZ2VDb3VudGVyICAgPSBwLT5iYXR0ZXJ5Q2hhcmdlQ291bnRlcjsKKyAgICBpbmZvLmJhdHRlcnlUZWNobm9sb2d5ICAgICAgPSBwLT5iYXR0ZXJ5VGVjaG5vbG9neTsKK30KKwordm9pZCBjb252ZXJ0RnJvbUhlYWx0aEluZm8oY29uc3QgSGVhbHRoSW5mbyYgaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzICpwKSB7CisgICAgcC0+Y2hhcmdlckFjT25saW5lICAgICAgICAgID0gaW5mby5jaGFyZ2VyQWNPbmxpbmU7CisgICAgcC0+Y2hhcmdlclVzYk9ubGluZSAgICAgICAgID0gaW5mby5jaGFyZ2VyVXNiT25saW5lOworICAgIHAtPmNoYXJnZXJXaXJlbGVzc09ubGluZSAgICA9IGluZm8uY2hhcmdlcldpcmVsZXNzT25saW5lOworICAgIHAtPm1heENoYXJnaW5nQ3VycmVudCAgICAgICA9IGluZm8ubWF4Q2hhcmdpbmdDdXJyZW50OworICAgIHAtPm1heENoYXJnaW5nVm9sdGFnZSAgICAgICA9IGluZm8ubWF4Q2hhcmdpbmdWb2x0YWdlOworICAgIHAtPmJhdHRlcnlTdGF0dXMgICAgICAgICAgICA9IHN0YXRpY19jYXN0PGludD4oaW5mby5iYXR0ZXJ5U3RhdHVzKTsKKyAgICBwLT5iYXR0ZXJ5SGVhbHRoICAgICAgICAgICAgPSBzdGF0aWNfY2FzdDxpbnQ+KGluZm8uYmF0dGVyeUhlYWx0aCk7CisgICAgcC0+YmF0dGVyeVByZXNlbnQgICAgICAgICAgID0gaW5mby5iYXR0ZXJ5UHJlc2VudDsKKyAgICBwLT5iYXR0ZXJ5TGV2ZWwgICAgICAgICAgICAgPSBpbmZvLmJhdHRlcnlMZXZlbDsKKyAgICBwLT5iYXR0ZXJ5Vm9sdGFnZSAgICAgICAgICAgPSBpbmZvLmJhdHRlcnlWb2x0YWdlOworICAgIHAtPmJhdHRlcnlUZW1wZXJhdHVyZSAgICAgICA9IGluZm8uYmF0dGVyeVRlbXBlcmF0dXJlOworICAgIHAtPmJhdHRlcnlDdXJyZW50ICAgICAgICAgICA9IGluZm8uYmF0dGVyeUN1cnJlbnQ7CisgICAgcC0+YmF0dGVyeUN5Y2xlQ291bnQgICAgICAgID0gaW5mby5iYXR0ZXJ5Q3ljbGVDb3VudDsKKyAgICBwLT5iYXR0ZXJ5RnVsbENoYXJnZSAgICAgICAgPSBpbmZvLmJhdHRlcnlGdWxsQ2hhcmdlOworICAgIHAtPmJhdHRlcnlDaGFyZ2VDb3VudGVyICAgICA9IGluZm8uYmF0dGVyeUNoYXJnZUNvdW50ZXI7CisgICAgcC0+YmF0dGVyeVRlY2hub2xvZ3kgICAgICAgID0gYW5kcm9pZDo6U3RyaW5nOChpbmZvLmJhdHRlcnlUZWNobm9sb2d5LmNfc3RyKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBoYWxfY29udmVyc2lvbgorfSAvLyBuYW1lc3BhY2UgVjFfMAorfSAvLyBuYW1lc3BhY2UgaGVhbHRoCit9IC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L2luY2x1ZGUvaGFsX2NvbnZlcnNpb24uaCBiL2hlYWx0aC8xLjAvZGVmYXVsdC9pbmNsdWRlL2hhbF9jb252ZXJzaW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkyYjIwOAotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9pbmNsdWRlL2hhbF9jb252ZXJzaW9uLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgSEFSRFdBUkVfSU5URVJGQUNFU19IRUFMVEhfVjFfMF9ERUZBVUxUX0lOQ0xVREVfSEFMX0NPTlZFUlNJT05fSF8KKyNkZWZpbmUgSEFSRFdBUkVfSU5URVJGQUNFU19IRUFMVEhfVjFfMF9ERUZBVUxUX0lOQ0xVREVfSEFMX0NPTlZFUlNJT05fSF8KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC9JSGVhbHRoLmg+CisjaW5jbHVkZSA8aGVhbHRoZC9oZWFsdGhkLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgaGVhbHRoIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBoYWxfY29udmVyc2lvbiB7CisKK3ZvaWQgY29udmVydFRvSGVhbHRoQ29uZmlnKGNvbnN0IHN0cnVjdCBoZWFsdGhkX2NvbmZpZyAqaGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhbHRoQ29uZmlnJiBjb25maWcpOwordm9pZCBjb252ZXJ0RnJvbUhlYWx0aENvbmZpZyhjb25zdCBIZWFsdGhDb25maWcmIGMsIHN0cnVjdCBoZWFsdGhkX2NvbmZpZyAqaGMpOworCit2b2lkIGNvbnZlcnRUb0hlYWx0aEluZm8oY29uc3Qgc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzICpwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGVhbHRoSW5mbyYgaW5mbyk7Cit2b2lkIGNvbnZlcnRGcm9tSGVhbHRoSW5mbyhjb25zdCBIZWFsdGhJbmZvJiBpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzICpwKTsKKworfSAgLy8gbmFtZXNwYWNlIGhhbF9jb252ZXJzaW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHNlbnNvcnMKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBIQVJEV0FSRV9JTlRFUkZBQ0VTX0hFQUxUSF9WMV8wX0RFRkFVTFRfSU5DTFVERV9IQUxfQ09OVkVSU0lPTl9IXwpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L2xpYmhlYWx0aGQvQW5kcm9pZC5tayBiL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTVmNDQ0NQotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxMCBAQAorIyBDb3B5cmlnaHQgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9TUkNfRklMRVMgOj0gaGVhbHRoZF9ib2FyZF9kZWZhdWx0LmNwcAorTE9DQUxfTU9EVUxFIDo9IGxpYmhlYWx0aGQuZGVmYXVsdAorTE9DQUxfQ0ZMQUdTIDo9IC1XZXJyb3IKK0xPQ0FMX0NfSU5DTFVERVMgOj0gc3lzdGVtL2NvcmUvaGVhbHRoZC9pbmNsdWRlIHN5c3RlbS9jb3JlL2Jhc2UvaW5jbHVkZQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC9kZWZhdWx0L2xpYmhlYWx0aGQvaGVhbHRoZF9ib2FyZF9kZWZhdWx0LmNwcCBiL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL2hlYWx0aGRfYm9hcmRfZGVmYXVsdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3Zjk4ZQotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvZGVmYXVsdC9saWJoZWFsdGhkL2hlYWx0aGRfYm9hcmRfZGVmYXVsdC5jcHAKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxoZWFsdGhkL2hlYWx0aGQuaD4KKwordm9pZCBoZWFsdGhkX2JvYXJkX2luaXQoc3RydWN0IGhlYWx0aGRfY29uZmlnKikKK3sKKyAgICAvLyB1c2UgZGVmYXVsdHMKK30KKworaW50IGhlYWx0aGRfYm9hcmRfYmF0dGVyeV91cGRhdGUoc3RydWN0IGFuZHJvaWQ6OkJhdHRlcnlQcm9wZXJ0aWVzKikKK3sKKyAgICAvLyByZXR1cm4gMCB0byBsb2cgcGVyaW9kaWMgcG9sbGVkIGJhdHRlcnkgc3RhdHVzIHRvIGtlcm5lbCBsb2cKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2hlYWx0aC8xLjAvdHlwZXMuaGFsIGIvaGVhbHRoLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc3ZDFiZAotLS0gL2Rldi9udWxsCisrKyBiL2hlYWx0aC8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMjEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmhlYWx0aEAxLjA7CisKKy8qKgorICogUG9zc2libGUgcmV0dXJuIHZhbHVlcyBmb3Igb3B0aW9uYWwgSEFMIG1ldGhvZChzKSBsaWtlCisgKiBJSGVhbHRoOjplbmVyZ3lDb3VudGVyKCkKKyAqLworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTLAorICAgIE5PVF9TVVBQT1JURUQsCisgICAgVU5LTk9XTiwKK307CisKKy8qKgorICogUG9zc2libGUgdmFsdWVzIGZvciBCYXR0ZXJ5IFN0YXR1cy4KKyAqIE5vdGU6IFRoZXNlIGFyZSBjdXJyZW50bHkgaW4gc3luYyB3aXRoIEJhdHRlcnlNYW5hZ2VyIGFuZCBtdXN0IG5vdAorICogYmUgZXh0ZW5kZWQgLyBhbHRlcmVkLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQkFUVEVSWV9TVEFUVVNfIikKK2VudW0gQmF0dGVyeVN0YXR1cyA6IGludDMyX3QgeworICAgIFVOS05PV04gPSAxLAorICAgIENIQVJHSU5HID0gMiwKKyAgICBESVNDSEFSR0lORyA9IDMsCisgICAgLyoqCisgICAgICogQmF0dGVyeSBpcyAqbm90KiBjaGFyZ2luZyAtIHNwZWNpYWwgY2FzZSB3aGVuIGNoYXJnZXIgaXMgcHJlc2VudAorICAgICAqIGJ1dCBiYXR0ZXJ5IGlzbid0IGNoYXJnaW5nCisgICAgICovCisgICAgTk9UX0NIQVJHSU5HID0gNCwKKyAgICBGVUxMID0gNSwKK307CisKKy8qKgorICogUG9zc2libGUgdmFsdWVzIGZvciBCYXR0ZXJ5IEhlYWx0aC4KKyAqIE5vdGU6IFRoZXNlIGFyZSBjdXJyZW50bHkgaW4gc3luYyB3aXRoIEJhdHRlcnlNYW5hZ2VyIGFuZCBtdXN0IG5vdAorICogYmUgZXh0ZW5kZWQgLyBhbHRlcmVkLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQkFUVEVSWV9IRUFMVEhfIikKK2VudW0gQmF0dGVyeUhlYWx0aCA6IGludDMyX3QgeworICAgIFVOS05PV04gPSAxLAorICAgIEdPT0QgPSAyLAorICAgIE9WRVJIRUFUID0gMywKKyAgICBERUFEID0gNCwKKyAgICBPVkVSX1ZPTFRBR0UgPSA1LAorICAgIC8qKgorICAgICAqIEJhdHRlcnkgZXhwZXJpZW5jZWQgYW4gdW5rbm93bi91bnNwZWNpZmlkIGZhaWx1cmUuCisgICAgICovCisgICAgVU5TUEVDSUZJRURfRkFJTFVSRSA9IDYsCisgICAgQ09MRCA9IDcsCit9OworCitzdHJ1Y3QgSGVhbHRoQ29uZmlnIHsKKworICAgIC8qKgorICAgICAqIHBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxGYXN0IGlzIHVzZWQgd2hpbGUgdGhlIGRldmljZSBpcyBub3QgaW4KKyAgICAgKiBzdXNwZW5kLCBvciBpbiBzdXNwZW5kIGFuZCBjb25uZWN0ZWQgdG8gYSBjaGFyZ2VyICh0byB3YXRjaCBmb3IgYmF0dGVyeQorICAgICAqIG92ZXJoZWF0IGR1ZSB0byBjaGFyZ2luZykKKyAgICAgKi8KKyAgICBpbnQzMl90IHBlcmlvZGljQ2hvcmVzSW50ZXJ2YWxGYXN0OworCisgICAgLyoqCisgICAgICogcGVyaW9kaWNDaG9yZXNJbnRlcnZhbFNsb3cgaXMgdXNlZCB3aGVuIHRoZSBkZXZpY2UgaXMgaW4gc3VzcGVuZCBhbmQKKyAgICAgKiBub3QgY29ubmVjdGVkIHRvIGEgY2hhcmdlciAodG8gd2F0Y2ggZm9yIGEgYmF0dGVyeSBkcmFpbmVkIHRvIHplcm8KKyAgICAgKiByZW1haW5pbmcgY2FwYWNpdHkpLgorICAgICAqLworICAgIGludDMyX3QgcGVyaW9kaWNDaG9yZXNJbnRlcnZhbFNsb3c7CisKKyAgICAvKioKKyAgICAgKiBwb3dlcl9zdXBwbHkgc3lzZnMgYXR0cmlidXRlIGZpbGUgcGF0aHMuIFNldCB0aGVzZSB0byBzcGVjaWZpYyBwYXRocworICAgICAqIHRvIHVzZSBmb3IgdGhlIGFzc29jaWF0ZWQgYmF0dGVyeSBwYXJhbWV0ZXJzLiBDbGllbnRzIG11c3Qgc2VhcmNoCisgICAgICogZm9yIGFwcHJvcHJpYXRlIHBvd2VyX3N1cHBseSBhdHRyaWJ1dGUgZmlsZXMgdG8gdXNlLCBmb3IgYW55IHBhdGhzCisgICAgICogbGVmdCBlbXB0eSBhZnRlciB0aGUgSEFMIGlzIGluaXRpYWxpemVkLgorICAgICAqLworCisgICAgLyoqCisgICAgICogYmF0dGVyeVN0YXR1c1BhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IGNoYXJnaW5nIHN0YXR1cy4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfU1RBVFVTKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5U3RhdHVzUGF0aDsKKworCisgICAgLyoqCisgICAgICogYmF0dGVyeUhlYWx0aFBhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IGhlYWx0aC4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfSEVBTFRIKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5SGVhbHRoUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlQcmVzZW50UGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgcHJlc2VudCBzdGF0dXMuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX1BSRVNFTlQpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlQcmVzZW50UGF0aDsKKworCisgICAgLyoqCisgICAgICogYmF0dGVyeUNhcGFjaXR5UGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIHJlbWFpbmluZyBiYXR0ZXJ5IGNhcGFjaXR5LgorICAgICAqIChQT1dFUl9TVVBQTFlfUFJPUF9DQVBBQ0lUWSkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeUNhcGFjaXR5UGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlWb2x0YWdlUGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgdm9sdGFnZS4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfVk9MVEFHRV9OT1cpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlWb2x0YWdlUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlUZW1wZXJhdHVyZVBhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IHRlbXBlcmF0dXJlIGluIHRlbnRocworICAgICAqIG9mIGRlZ3JlZSBjZWxjaXVzLiAoUE9XRVJfU1VQUExZX1BST1BfVEVNUCkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeVRlbXBlcmF0dXJlUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlUZWNobm9sb2d5UGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgdGVjaG5vbG9neS4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfVEVDSE5PTE9HWSkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeVRlY2hub2xvZ3lQYXRoOworCisgICAgLyoqCisgICAgICogYmF0dGVyeUN1cnJlbnROb3dQYXRoIC0gZmlsZSBwYXRoIHRvIHJlYWQgYmF0dGVyeSBpbnN0YW50YW5lb3VzIGN1cnJlbnQuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX0NVUlJFTlRfTk9XKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5Q3VycmVudE5vd1BhdGg7CisKKyAgICAvKioKKyAgICAgKiBiYXR0ZXJ5Q3VycmVudEF2Z1BhdGggLSBmaWxlIHBhdGggdG8gcmVhZCBiYXR0ZXJ5IGF2ZXJhZ2UgY3VycmVudC4KKyAgICAgKiAoUE9XRVJfU1VQUExZX1BST1BfQ1VSUkVOVF9BVkcpCisgICAgICovCisgICAgc3RyaW5nIGJhdHRlcnlDdXJyZW50QXZnUGF0aDsKKworICAgIC8qKgorICAgICAqIGJhdHRlcnlDaGFyZ2VDb3VudGVyUGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgYWNjdW11bGF0ZWQgY2hhcmdlLgorICAgICAqIChQT1dFUl9TVVBQTFlfUFJPUF9DSEFSR0VfQ09VTlRFUikKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeUNoYXJnZUNvdW50ZXJQYXRoOworCisgICAgLyoqCisgICAgICogYmF0dGVyeUZ1bGxDaGFyZ2VyUGF0aCAtIGZpbGUgcGF0aCB0byByZWFkIGJhdHRlcnkgY2hhcmdlIHZhbHVlIHdoZW4gaXQKKyAgICAgKiBpcyBjb25zaWRlcmVkIHRvIGJlIGZ1bGwuIChQT1dFUl9TVVBQTFlfUFJPUF9DSEFSR0VfRlVMTCkKKyAgICAgKi8KKyAgICBzdHJpbmcgYmF0dGVyeUZ1bGxDaGFyZ2VQYXRoOworCisgICAgLyoqCisgICAgICogYmF0dGVyeUN5Y2xlQ291bnRQYXRoIC0gZmlsZSBwYXRoIHRvIHJlYWQgYmF0dGVyeSBjaGFyZ2UgY3ljbGUgY291bnQuCisgICAgICogKFBPV0VSX1NVUFBMWV9QUk9QX0NZQ0xFX0NPVU5UKQorICAgICAqLworICAgIHN0cmluZyBiYXR0ZXJ5Q3ljbGVDb3VudFBhdGg7Cit9OworCisvKioKKyAqIFRoZSBwYXJhbWV0ZXIgdG8gaGVhbHRoZCBtYWlubG9vcCB1cGRhdGUgY2FsbHMKKyAqLworc3RydWN0IEhlYWx0aEluZm8geworICAgIC8qKiBBQyBjaGFyZ2VyIHN0YXRlIC0gJ3RydWUnIGlmIG9ubGluZSAqLworICAgIGJvb2wgY2hhcmdlckFjT25saW5lOworCisgICAgLyoqIFVTQiBjaGFyZ2VyIHN0YXRlIC0gJ3RydWUnIGlmIG9ubGluZSAqLworICAgIGJvb2wgY2hhcmdlclVzYk9ubGluZTsKKworICAgIC8qKiBXaXJlbGVzcyBjaGFyZ2VyIHN0YXRlIC0gJ3RydWUnIGlmIG9ubGluZSAqLworICAgIGJvb2wgY2hhcmdlcldpcmVsZXNzT25saW5lOworCisgICAgLyoqIE1heGltdW0gY2hhcmdpbmcgY3VycmVudCBzdXBwb3J0ZWQgYnkgY2hhcmdlciBpbiB1QSAqLworICAgIGludDMyX3QgbWF4Q2hhcmdpbmdDdXJyZW50OworCisgICAgLyoqIE1heGltdW0gY2hhcmdpbmcgdm9sdGFnZSBzdXBwb3J0ZWQgYnkgY2hhcmdlciBpbiB1ViAqLworICAgIGludDMyX3QgbWF4Q2hhcmdpbmdWb2x0YWdlOworCisgICAgQmF0dGVyeVN0YXR1cyBiYXR0ZXJ5U3RhdHVzOworCisgICAgQmF0dGVyeUhlYWx0aCBiYXR0ZXJ5SGVhbHRoOworCisgICAgLyoqICd0cnVlJyBpZiBiYXR0ZXJ5IGlzIHByZXNlbnQgKi8KKyAgICBib29sIGJhdHRlcnlQcmVzZW50OworCisgICAgLyoqIFJlbWFpbmluZyBiYXR0ZXJ5IGNhcGFjaXR5IGluIHBlcmNlbnQgKi8KKyAgICBpbnQzMl90IGJhdHRlcnlMZXZlbDsKKworICAgIC8qKiBJbnN0YW50YW5lb3VzIGJhdHRlcnkgdm9sdGFnZSBpbiB1ViAqLworICAgIGludDMyX3QgYmF0dGVyeVZvbHRhZ2U7CisKKyAgICAvKiogSW5zdGFudGFuZW91cyBiYXR0ZXJ5IHRlbXBlcmF0dXJlIGluIHRlbnRocyBvZiBkZWdyZWUgY2VsY2l1cyAqLworICAgIGludDMyX3QgYmF0dGVyeVRlbXBlcmF0dXJlOworCisgICAgLyoqIEluc3RhbnRhbmVvdXMgYmF0dGVyeSBjdXJyZW50IGluIHVBICovCisgICAgaW50MzJfdCBiYXR0ZXJ5Q3VycmVudDsKKworICAgIC8qKiBCYXR0ZXJ5IGNoYXJnZSBjeWNsZSBjb3VudCAqLworICAgIGludDMyX3QgYmF0dGVyeUN5Y2xlQ291bnQ7CisKKyAgICAvKiogQmF0dGVyeSBjaGFyZ2UgdmFsdWUgd2hlbiBpdCBpcyBjb25zaWRlcmVkIHRvIGJlICJmdWxsIiBpbiB1QS1oICovCisgICAgaW50MzJfdCBiYXR0ZXJ5RnVsbENoYXJnZTsKKworICAgIC8qKiBJbnN0YW50YW5lb3VzIGJhdHRlcnkgY2FwYWNpdHkgaW4gdUEtaCAqLworICAgIGludDMyX3QgYmF0dGVyeUNoYXJnZUNvdW50ZXI7CisKKyAgICAvKiogQmF0dGVyeSB0ZWNobm9sb2d5LCBlLmcuICJMaS1pb24sIExpLVBvbHkiIGV0Yy4gKi8KKyAgICBzdHJpbmcgYmF0dGVyeVRlY2hub2xvZ3k7Cit9OwpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhNGM4YzgKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzMiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbEhlYWx0aFYxXzBUYXJnZXRUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxIZWFsdGhWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuaGVhbHRoQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXQorfQpkaWZmIC0tZ2l0IGEvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxIZWFsdGhWMV8wVGFyZ2V0VGVzdC5jcHAgYi9oZWFsdGgvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbEhlYWx0aFYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjRlYjlmCi0tLSAvZGV2L251bGwKKysrIGIvaGVhbHRoLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxIZWFsdGhWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiaGVhbHRoX2hpZGxfaGFsX3Rlc3QiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2hlYWx0aC8xLjAvSUhlYWx0aC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvaGVhbHRoLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKwordXNpbmcgSGVhbHRoQ29uZmlnID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpIZWFsdGhDb25maWc7Cit1c2luZyBIZWFsdGhJbmZvID0gOjphbmRyb2lkOjpoYXJkd2FyZTo6aGVhbHRoOjpWMV8wOjpIZWFsdGhJbmZvOwordXNpbmcgSUhlYWx0aCA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6SUhlYWx0aDsKK3VzaW5nIFJlc3VsdCA9IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhlYWx0aDo6VjFfMDo6UmVzdWx0OworCit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitjbGFzcyBIZWFsdGhIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBoZWFsdGggPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJSGVhbHRoPigpOworICAgICAgICBBU1NFUlRfTkUoaGVhbHRoLCBudWxscHRyKTsKKyAgICAgICAgaGVhbHRoLT5pbml0KGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgIFsmXShjb25zdCBhdXRvJiBoYWxDb25maWdPdXQpIHsgY29uZmlnID0gaGFsQ29uZmlnT3V0OyB9KTsKKyAgICB9CisKKyAgICBzcDxJSGVhbHRoPiBoZWFsdGg7CisgICAgSGVhbHRoQ29uZmlnIGNvbmZpZzsKK307CisKKy8qKgorICogRW5zdXJlIEVuZXJneUNvdW50ZXIgY2FsbCByZXR1cm5zIHBvc2l0aXZlIGVuZXJneSBjb3VudGVyIG9yIE5PVF9TVVBQT1JURUQKKyAqLworVEVTVF9GKEhlYWx0aEhpZGxUZXN0LCBUZXN0RW5lcmd5Q291bnRlcikgeworICAgIFJlc3VsdCByZXN1bHQ7CisgICAgaW50NjRfdCBlbmVyZ3kgPSAwOworICAgIGhlYWx0aC0+ZW5lcmd5Q291bnRlcihbJl0oUmVzdWx0IHJldCwgaW50NjRfdCBlbmVyZ3lPdXQpIHsKKyAgICAgICAgcmVzdWx0ID0gcmV0OworICAgICAgICBlbmVyZ3kgPSBlbmVyZ3lPdXQ7CisgICAgfSk7CisKKyAgICBBU1NFUlRfVFJVRShyZXN1bHQgPT0gUmVzdWx0OjpTVUNDRVNTIHx8IHJlc3VsdCA9PSBSZXN1bHQ6Ok5PVF9TVVBQT1JURUQpOworICAgIEFTU0VSVF9UUlVFKHJlc3VsdCAhPSBSZXN1bHQ6OlNVQ0NFU1MgfHwgZW5lcmd5ID4gMCk7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgeworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9oZWFsdGgvQW5kcm9pZC5icCBiL2hlYWx0aC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZjcwZWIKLS0tIC9kZXYvbnVsbAorKysgYi9oZWFsdGgvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL0FuZHJvaWQuYnAgYi9rZXltYXN0ZXIvMy4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTg0NjIwMAotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDYzIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJS2V5bWFzdGVyRGV2aWNlLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9LZXltYXN0ZXJEZXZpY2VBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvSUtleW1hc3RlckRldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9JSHdLZXltYXN0ZXJEZXZpY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvQm5Id0tleW1hc3RlckRldmljZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9CcEh3S2V5bWFzdGVyRGV2aWNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL0JzS2V5bWFzdGVyRGV2aWNlLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL0lLZXltYXN0ZXJEZXZpY2UuaGFsIGIva2V5bWFzdGVyLzMuMC9JS2V5bWFzdGVyRGV2aWNlLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjY0NzY1Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC9JS2V5bWFzdGVyRGV2aWNlLmhhbApAQCAtMCwwICsxLDM0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wOworCisvKioKKyAqIEtleW1hc3RlciBkZXZpY2UgZGVmaW5pdGlvbi4gIEZvciB0aG9yb3VnaCBkb2N1bWVudGF0aW9uIHNlZSB0aGUgaW1wbGVtZW50ZXIncyByZWZlcmVuY2UsIGF0CisgKiBodHRwczovL3NvdXJjZS5hbmRyb2lkLmNvbS9zZWN1cml0eS9rZXlzdG9yZS9pbXBsZW1lbnRlci1yZWYuaHRtbAorICovCitpbnRlcmZhY2UgSUtleW1hc3RlckRldmljZSB7CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSB1bmRlcmx5aW5nIGtleW1hc3RlciBoYXJkd2FyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaXNTZWN1cmUgaXMgdHJ1ZSBpZiBrZXlzIGFyZSBzdG9yZWQgYW5kIG5ldmVyIGxlYXZlIHNlY3VyZSBoYXJkd2FyZSAoVHJ1c3RlZAorICAgICAqICAgICAgICAgICAgIEV4ZWN1dGlvbiBFbnZpcm9ubWVudCBvciBzaW1pbGFyKS4gQ0REIHJlcXVpcmVzIHRoYXQgYWxsIGRldmljZXMgaW5pdGlhbGx5CisgICAgICogICAgICAgICAgICAgbGF1bmNoZWQgd2l0aCBNYXJzaG1hbGxvdyBvciBsYXRlciBtdXN0IGhhdmUgc2VjdXJlIGhhcmR3YXJlLgorICAgICAqCisgICAgICogQHJldHVybiBzdXBwb3J0c0VsbGlwdGljQ3VydmUgaXMgdHJ1ZSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgRWxsaXB0aWMgQ3VydmUgY3J5cHRvZ3JhcGh5CisgICAgICogICAgICAgICAgICAgd2l0aCB0aGUgTklTVCBjdXJ2ZXMgKFAtMjI0LCBQLTI1NiwgUC0zODQsIGFuZCBQLTUyMSkuIENERCByZXF1aXJlcyB0aGF0IGFsbAorICAgICAqICAgICAgICAgICAgIGRldmljZXMgaW5pdGlhbGx5IGxhdW5jaGVkIHdpdGggTm91Z2F0IG9yIGxhdGVyIG11c3Qgc3VwcG9ydCBFbGxpcHRpYyBDdXJ2ZQorICAgICAqICAgICAgICAgICAgIGNyeXB0b2dyYXBoeS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3VwcG9ydHNTeW1tZXRyaWNDcnlwdG9ncmFwaHkgaXMgdHJ1ZSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgc3ltbWV0cmljCisgICAgICogICAgICAgICAgICAgY3J5cHRvZ3JhcGh5LCBpbmNsdWRpbmcgQUVTIGFuZCBITUFDLiBDREQgcmVxdWlyZXMgdGhhdCBhbGwgZGV2aWNlcyBpbml0aWFsbHkKKyAgICAgKiAgICAgICAgICAgICBsYXVuY2hlZCB3aXRoIE5vdWdhdCBvciBsYXRlciBtdXN0IHN1cHBvcnQgaGFyZHdhcmUgZW5mb3JjZW1lbnQgb2YgS2V5bWFzdGVyCisgICAgICogICAgICAgICAgICAgYXV0aG9yaXphdGlvbnMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN1cHBvcnRzQXR0ZXN0YXRpb24gaXMgdHJ1ZSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgZ2VuZXJhdGlvbiBvZiBLZXltYXN0ZXIgcHVibGljCisgICAgICogICAgICAgICAgICAga2V5IGF0dGVzdGF0aW9uIGNlcnRpZmljYXRlcywgc2lnbmVkIHdpdGggYSBrZXkgaW5qZWN0ZWQgaW4gYSBzZWN1cmUKKyAgICAgKiAgICAgICAgICAgICBlbnZpcm9ubWVudC4gQ0REIHJlcXVpcmVzIHRoYXQgYWxsIGRldmljZXMgaW5pdGlhbGx5IGxhdW5jaGVkIHdpdGggQW5kcm9pZCBPIG9yCisgICAgICogICAgICAgICAgICAgbGF0ZXIgbXVzdCBzdXBwb3J0IGhhcmR3YXJlIGF0dGVzdGF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBzdXBwb3J0c0FsbERpZ2VzdHMgaXMgdHJ1ZSBpZiB0aGUgaGFyZHdhcmUgc3VwcG9ydHMgYWxsIGtleW1hc3RlciBkaWdlc3QgZnVuY3Rpb25zLAorICAgICAqICAgICAgICAgICAgIG5hbWVseSBORC01LCBTSEEtMSwgU0hBLTIyNCwgU0hBLTI1NiwgU0hBLTM4NCBhbmQgU0hBLTUxMi4gQ0REIHJlcXVpcmVzIHRoYXQgYWxsCisgICAgICogICAgICAgICAgICAgZGV2aWNlcyBsYXVuY2hlZCBpbml0aWFsbHkgd2l0aCBBbmRyb2lkIE8gb3IgbGF0ZXIgbXVzdCBzdXBwb3J0IGFsbCBkaWdlc3RzLgorICAgICAqCisgICAgICogQHJldHVybiBrZXltYXN0ZXJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBrZXltYXN0ZXIgaW1wbGVtZW50YXRpb24uCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleW1hc3RlckF1dGhvck5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGF1dGhvciBvZiB0aGUga2V5bWFzdGVyIGltcGxlbWVudGF0aW9uCisgICAgICogICAgICAgICAgICAgKGdlbmVyYWxseSB0aGlzIHNob3VsZCBiZSB0aGUgbmFtZSBvZiBhbiBvcmdhbml6YXRpb24sIG5vdCBhbiBpbmRpdmlkdWFsLikKKyAgICAgKi8KKyAgICBnZXRIYXJkd2FyZUZlYXR1cmVzKCkKKyAgICAgICAgZ2VuZXJhdGVzKGJvb2wgaXNTZWN1cmUsIGJvb2wgc3VwcG9ydHNFbGxpcHRpY0N1cnZlLCBib29sIHN1cHBvcnRzU3ltbWV0cmljQ3J5cHRvZ3JhcGh5LAorICAgICAgICAgICAgICAgICAgYm9vbCBzdXBwb3J0c0F0dGVzdGF0aW9uLCBib29sIHN1cHBvcnRzQWxsRGlnZXN0cywgc3RyaW5nIGtleW1hc3Rlck5hbWUsCisgICAgICAgICAgICAgICAgICBzdHJpbmcga2V5bWFzdGVyQXV0aG9yTmFtZSk7CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGVudHJvcHkgdG8gdGhlIFJORyB1c2VkIGJ5IGtleW1hc3Rlci4gRW50cm9weSBhZGRlZCB0aHJvdWdoIHRoaXMgbWV0aG9kIGlzIGd1YXJhbnRlZWQKKyAgICAgKiBub3QgdG8gYmUgdGhlIG9ubHkgc291cmNlIG9mIGVudHJvcHkgdXNlZCwgYW5kIHRoZSBtaXhpbmcgZnVuY3Rpb24gaXMgcmVxdWlyZWQgdG8gYmUgc2VjdXJlLAorICAgICAqIGluIHRoZSBzZW5zZSB0aGF0IGlmIHRoZSBSTkcgaXMgc2VlZGVkIChmcm9tIGFueSBzb3VyY2UpIHdpdGggYW55IGRhdGEgdGhlIGF0dGFja2VyIGNhbm5vdAorICAgICAqIHByZWRpY3QgKG9yIGNvbnRyb2wpLCB0aGVuIHRoZSBSTkcgb3V0cHV0IGlzIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gcmFuZG9tLiBUaHVzLCBpZiB0aGUKKyAgICAgKiBlbnRyb3B5IGZyb20gYW55IHNvdXJjZSBpcyBnb29kLCB0aGUgb3V0cHV0IG11c3QgYmUgZ29vZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBkYXRhIEJ5dGVzIHRvIGJlIG1peGVkIGludG8gdGhlIFJORy4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICovCisgICAgYWRkUm5nRW50cm9weSh2ZWM8dWludDhfdD4gZGF0YSkgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBrZXksIG9yIGtleSBwYWlyLCByZXR1cm5pbmcgYSBrZXkgYmxvYiBhbmQvb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUga2V5LgorICAgICAqCisgICAgICogQHBhcmFtIGtleVBhcmFtcyBLZXkgZ2VuZXJhdGlvbiBwYXJhbWV0ZXJzIGFyZSBkZWZpbmVkIGFzIGtleW1hc3RlciB0YWcvdmFsdWUgcGFpcnMsIHByb3ZpZGVkCisgICAgICogICAgICAgICAgICAgaW4gcGFyYW1zLiBTZWUgVGFnIGluIHR5cGVzLmhhbCBmb3IgdGhlIGZ1bGwgbGlzdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleUJsb2IgT3BhcXVlLCBlbmNyeXB0ZWQgZGVzY3JpcHRvciBvZiB0aGUgZ2VuZXJhdGVkIGtleSwgd2hpY2ggZ2VuZXJhbGx5IGNvbnRhaW5zIGEKKyAgICAgKiAgICAgICAgICAgICBjb3B5IG9mIHRoZSBrZXkgbWF0ZXJpYWwsIHdyYXBwZWQgaW4gYSBrZXkgdW5hdmFpbGFibGUgb3V0c2lkZSBzZWN1cmUgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleUNoYXJhY3RlcmlzdGljcyBEZXNjcmlwdGlvbiBvZiB0aGUgZ2VuZXJhdGVkIGtleS4gIFNlZSBLZXlDaGFyYWN0ZXJpc3RpcyBpbgorICAgICAqICAgICAgICAgICAgIHR5cGVzLmhhbC4KKyAgICAgKi8KKyAgICBnZW5lcmF0ZUtleSh2ZWM8S2V5UGFyYW1ldGVyPiBrZXlQYXJhbXMpCisgICAgICAgIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHZlYzx1aW50OF90PiBrZXlCbG9iLCBLZXlDaGFyYWN0ZXJpc3RpY3Mga2V5Q2hhcmFjdGVyaXN0aWNzKTsKKworICAgIC8qKgorICAgICAqIEltcG9ydHMgYSBrZXksIG9yIGtleSBwYWlyLCByZXR1cm5pbmcgYSBrZXkgYmxvYiBhbmQvb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUga2V5LgorICAgICAqCisgICAgICogQHBhcmFtIGtleVBhcmFtcyBLZXkgZ2VuZXJhdGlvbiBwYXJhbWV0ZXJzIGFyZSBkZWZpbmVkIGFzIGtleW1hc3RlciB0YWcvdmFsdWUgcGFpcnMsIHByb3ZpZGVkCisgICAgICogICAgICAgICAgICAgaW4gcGFyYW1zLiAgU2VlIFRhZyBmb3IgdGhlIGZ1bGwgbGlzdC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlGb3JtYXQgVGhlIGZvcm1hdCBvZiB0aGUga2V5IG1hdGVyaWFsIHRvIGltcG9ydC4gU2VlIEtleUZvcm1hdCBpbiB0eXBlcy5oYWwuCisgICAgICoKKyAgICAgKiBAcHJhbSBrZXlEYXRhIFRoZSBrZXkgbWF0ZXJpYWwgdG8gaW1wb3J0LCBpbiB0aGUgZm9ybWF0IHNwZWNpZmVkIGluIGtleUZvcm1hdC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bS4KKyAgICAgKgorICAgICAqIEByZXR1cm4ga2V5QmxvYiBPcGFxdWUsIGVuY3J5cHRlZCBkZXNjcmlwdG9yIG9mIHRoZSBnZW5lcmF0ZWQga2V5LCB3aGljaCB3aWxsIGdlbmVyYWxseQorICAgICAqICAgICAgICAgICAgIGNvbnRhaW4gYSBjb3B5IG9mIHRoZSBrZXkgbWF0ZXJpYWwsIHdyYXBwZWQgaW4gYSBrZXkgdW5hdmFpbGFibGUgb3V0c2lkZSBzZWN1cmUKKyAgICAgKiAgICAgICAgICAgICBoYXJkd2FyZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4ga2V5Q2hhcmFjdGVyaXN0aWNzIERlY3JpcHRpb24gb2YgdGhlIGdlbmVyYXRlZCBrZXkuICBTZWUgS2V5Q2hhcmFjdGVyaXN0aXMuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0uCisgICAgICovCisgICAgaW1wb3J0S2V5KHZlYzxLZXlQYXJhbWV0ZXI+IHBhcmFtcywgS2V5Rm9ybWF0IGtleUZvcm1hdCwgdmVjPHVpbnQ4X3Q+IGtleURhdGEpCisgICAgICAgIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHZlYzx1aW50OF90PiBrZXlCbG9iLCBLZXlDaGFyYWN0ZXJpc3RpY3Mga2V5Q2hhcmFjdGVyaXN0aWNzKTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgc3BlY2lmaWVkIGtleSwgaWYgdGhlIGtleUJsb2IgaXMgdmFsaWQgKGltcGxlbWVudGF0aW9ucworICAgICAqIG11c3QgZnVsbHkgdmFsaWRhdGUgdGhlIGludGVncml0eSBvZiB0aGUga2V5KS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBrZXlCbG9iIFRoZSBvcGFxdWUgZGVzY3JpcHRvciByZXR1cm5lZCBieSBnZW5lcmF0ZUtleSgpIG9yIGltcG9ydEtleSgpOworICAgICAqCisgICAgICogQHBhcmFtIGNsaWVudElkIEFuIG9wYXF1ZSBieXRlIHN0cmluZyBpZGVudGlmeWluZyB0aGUgY2xpZW50LiBUaGlzIHZhbHVlIG11c3QgbWF0Y2ggdGhlCisgICAgICogICAgICAgICAgICAgVGFnOjpBUFBMSUNBVElPTl9JRCBkYXRhIHByb3ZpZGVkIGR1cmluZyBrZXkgZ2VuZXJhdGlvbi9pbXBvcnQuICBXaXRob3V0IHRoZQorICAgICAqICAgICAgICAgICAgIGNvcnJlY3QgdmFsdWUgaXQgbXVzdCBiZSBjcnlwdG9ncmFwaGljYWxseSBpbXBvc3NpYmxlIGZvciB0aGUgc2VjdXJlIGhhcmR3YXJlIHRvCisgICAgICogICAgICAgICAgICAgb2J0YWluIHRoZSBrZXkgbWF0ZXJpYWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXBwRGF0YSBBbiBvcGFxdWUgYnl0ZSBzdHJpbmcgcHJvdmlkZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiBUaGlzIHZhbHVlIG11c3QgbWF0Y2ggdGhlCisgICAgICogICAgICAgICAgICAgVGFnOjpBUFBMSUNBVElPTl9EQVRBIGRhdGEgcHJvdmlkZWQgZHVyaW5nIGtleSBnZW5lcmF0aW9uL2ltcG9ydC4gIFdpdGhvdXQgdGhlCisgICAgICogICAgICAgICAgICAgY29ycmVjdCB2YWx1ZSBpdCBtdXN0IGJlIGNyeXB0b2dyYXBoaWNhbGx5IGltcG9zc2libGUgZm9yIHRoZSBzZWN1cmUgaGFyZHdhcmUgdG8KKyAgICAgKiAgICAgICAgICAgICBvYnRhaW4gdGhlIGtleSBtYXRlcmlhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGtleUNoYXJhY3RlcmlzdGljcyBEZWNyaXB0aW9uIG9mIHRoZSBnZW5lcmF0ZWQga2V5LiAgU2VlIEtleUNoYXJhY3RlcmlzdGlzIGluCisgICAgICogICAgICAgICAgICAgdHlwZXMuaGFsLgorICAgICAqLworICAgIGdldEtleUNoYXJhY3RlcmlzdGljcyh2ZWM8dWludDhfdD4ga2V5QmxvYiwgdmVjPHVpbnQ4X3Q+IGNsaWVudElkLCB2ZWM8dWludDhfdD4gYXBwRGF0YSkKKyAgICAgICAgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvciwgS2V5Q2hhcmFjdGVyaXN0aWNzIGtleUNoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvKioKKyAgICAgKiBFeHBvcnRzIGEgcHVibGljIGtleSwgcmV0dXJuaW5nIHRoZSBrZXkgaW4gdGhlIHNwZWNpZmllZCBmb3JtYXQuCisgICAgICoKKyAgICAgKiBAcGFybSBrZXlGb3JtYXQgVGhlIGZvcm1hdCB1c2VkIGZvciBleHBvcnQuIFNlZSBLZXlGb3JtYXQgaW4gdHlwZXMuaGFsLgorICAgICAqCisgICAgICogQHBhcmFtIGtleUJsb2IgVGhlIG9wYXF1ZSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IGdlbmVyYXRlS2V5KCkgb3IgaW1wb3J0S2V5KCkuICBUaGUKKyAgICAgKiAgICAgICAgICAgICByZWZlcmVuY2VkIGtleSBtdXN0IGJlIGFzeW1tZXRyaWMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2xpZW50SWQgQW4gb3BhcXVlIGJ5dGUgc3RyaW5nIGlkZW50aWZ5aW5nIHRoZSBjbGllbnQuIFRoaXMgdmFsdWUgbXVzdCBtYXRjaCB0aGUKKyAgICAgKiAgICAgICAgICAgICBUYWc6OkFQUExJQ0FUSU9OX0lEIGRhdGEgcHJvdmlkZWQgZHVyaW5nIGtleSBnZW5lcmF0aW9uL2ltcG9ydC4gIFdpdGhvdXQgdGhlCisgICAgICogICAgICAgICAgICAgY29ycmVjdCB2YWx1ZSBpdCBtdXN0IGJlIGNyeXB0b2dyYXBoaWNhbGx5IGltcG9zc2libGUgZm9yIHRoZSBzZWN1cmUgaGFyZHdhcmUgdG8KKyAgICAgKiAgICAgICAgICAgICBvYnRhaW4gdGhlIGtleSBtYXRlcmlhbC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBhcHBEYXRhIEFuIG9wYXF1ZSBieXRlIHN0cmluZyBwcm92aWRlZCBieSB0aGUgYXBwbGljYXRpb24uIFRoaXMgdmFsdWUgbXVzdCBtYXRjaCB0aGUKKyAgICAgKiAgICAgICAgICAgICBUYWc6OkFQUExJQ0FUSU9OX0RBVEEgZGF0YSBwcm92aWRlZCBkdXJpbmcga2V5IGdlbmVyYXRpb24vaW1wb3J0LiAgV2l0aG91dCB0aGUKKyAgICAgKiAgICAgICAgICAgICBjb3JyZWN0IHZhbHVlIGl0IG11c3QgYmUgY3J5cHRvZ3JhcGhpY2FsbHkgaW1wb3NzaWJsZSBmb3IgdGhlIHNlY3VyZSBoYXJkd2FyZSB0bworICAgICAqICAgICAgICAgICAgIG9idGFpbiB0aGUga2V5IG1hdGVyaWFsLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4ga2V5TWF0ZXJpYWwgVGhlIHB1YmxpYyBrZXkgbWF0ZXJpYWwgaW4gUEtDUyM4IGZvcm1hdC4KKyAgICAgKi8KKyAgICBleHBvcnRLZXkoS2V5Rm9ybWF0IGtleUZvcm1hdCwgdmVjPHVpbnQ4X3Q+IGtleUJsb2IsIHZlYzx1aW50OF90PiBjbGllbnRJZCwKKyAgICAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IGFwcERhdGEpIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHZlYzx1aW50OF90PiBrZXlNYXRlcmlhbCk7CisKKyAgICAvKioKKyAgICAgKiBHZW5lcmF0ZXMgYSBzaWduZWQgWC41MDkgY2VydGlmaWNhdGUgY2hhaW4gYXR0ZXN0aW5nIHRvIHRoZSBwcmVzZW5jZSBvZiBrZXlUb0F0dGVzdCBpbgorICAgICAqIGtleW1hc3Rlci4gVGhlIGNlcnRpZmljYXRlIHdpbGwgY29udGFpbiBhbiBleHRlbnNpb24gd2l0aCBPSUQgMS4zLjYuMS40LjEuMTExMjkuMi4xLjE3IGFuZAorICAgICAqIHZhbHVlIGRlZmluZWQgaW46CisgICAgICoKKyAgICAgKiAgICAgaHR0cHM6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vdHJhaW5pbmcvYXJ0aWNsZXMvc2VjdXJpdHkta2V5LWF0dGVzdGF0aW9uLmh0bWwuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5VG9BdHRlc3QgVGhlIG9wYXF1ZSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IGdlbmVyYXRlS2V5KCkgb3IgaW1wb3J0S2V5KCkuICBUaGUKKyAgICAgKiAgICAgICAgICAgICByZWZlcmVuY2VkIGtleSBtdXN0IGJlIGFzeW1tZXRyaWMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYXR0ZXN0UGFyYW1zIFBhcmFtZXRlcnMgZm9yIHRoZSBhdHRlc3RhdGlvbiwgbm90YWJseSBUYWc6OkFUVEVTVEFUSU9OX0NIQUxMRU5HRS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bSBpbiB0eXBlcy5oYWwuCisgICAgICovCisgICAgYXR0ZXN0S2V5KHZlYzx1aW50OF90PiBrZXlUb0F0dGVzdCwgdmVjPEtleVBhcmFtZXRlcj4gYXR0ZXN0UGFyYW1zKQorICAgICAgICBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yLCB2ZWM8dmVjPHVpbnQ4X3Q+PiBjZXJ0Q2hhaW4pOworCisgICAgLyoqCisgICAgICogVXBncmFkZXMgYW4gb2xkIGtleS4gS2V5cyBjYW4gYmVjb21lICJvbGQiIGluIHR3byB3YXlzOiBLZXltYXN0ZXIgY2FuIGJlIHVwZ3JhZGVkIHRvIGEgbmV3CisgICAgICogdmVyc2lvbiwgb3IgdGhlIHN5c3RlbSBjYW4gYmUgdXBkYXRlZCB0byBpbnZhbGlkYXRlIHRoZSBPUyB2ZXJzaW9uIGFuZC9vciBwYXRjaCBsZXZlbC4gSW4KKyAgICAgKiBlaXRoZXIgY2FzZSwgYXR0ZW1wdHMgdG8gdXNlIGFuIG9sZCBrZXkgd2l0aCBnZXRLZXlDaGFyYWN0ZXJpc3RpY3MoKSwgZXhwb3J0S2V5KCksCisgICAgICogYXR0ZXN0S2V5KCkgb3IgYmVnaW4oKSB3aWxsIHJlc3VsdCBpbiBrZXltYXN0ZXIgcmV0dXJuaW5nCisgICAgICogRXJyb3JDb2RlOjpLRVlfUkVRVUlSRVNfVVBHUkFERS4gVGhpcyBtZXRob2QgbXVzdCB0aGVuIGJlIGNhbGxlZCB0byB1cGdyYWRlIHRoZSBrZXkuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5QmxvYlRvVXBncmFkZSBUaGUgb3BhcXVlIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgZ2VuZXJhdGVLZXkoKSBvciBpbXBvcnRLZXkoKTsKKyAgICAgKgorICAgICAqIEBwYXJhbSB1cGdyYWRlUGFyYW1zIEEgcGFyYW1ldGVyIGxpc3QgY29udGFpbmluZyBhbnkgcGFyYW1ldGVycyBuZWVkZWQgdG8gY29tcGxldGUgdGhlCisgICAgICogICAgICAgICAgICAgdXBncmFkZSwgaW5jbHVkaW5nIFRhZzo6QVBQTElDQVRJT05fSUQgYW5kIFRhZzo6QVBQTElDQVRJT05fREFUQS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bS4KKyAgICAgKi8KKyAgICB1cGdyYWRlS2V5KHZlYzx1aW50OF90PiBrZXlCbG9iVG9VcGdyYWRlLCB2ZWM8S2V5UGFyYW1ldGVyPiB1cGdyYWRlUGFyYW1zKQorICAgICAgICBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yLCB2ZWM8dWludDhfdD4gdXBncmFkZWRLZXlCbG9iKTsKKworICAgIC8qKgorICAgICAqIERlbGV0ZXMgdGhlIGtleSwgb3Iga2V5IHBhaXIsIGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5IGJsb2IuIEFmdGVyIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpdAorICAgICAqIHdpbGwgYmUgaW1wb3NzaWJsZSB0byB1c2UgdGhlIGtleSBmb3IgYW55IG90aGVyIG9wZXJhdGlvbnMuIE1heSBiZSBhcHBsaWVkIHRvIGtleXMgZnJvbQorICAgICAqIGZvcmVpZ24gcm9vdHMgb2YgdHJ1c3QgKGtleXMgbm90IHVzYWJsZSB1bmRlciB0aGUgY3VycmVudCByb290IG9mIHRydXN0KS4KKyAgICAgKgorICAgICAqIFRoaXMgaXMgYSBOT1AgZm9yIGtleXMgdGhhdCBkb24ndCBoYXZlIHJvbGxiYWNrIHByb3RlY3Rpb24uCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5QmxvYlRvVXBncmFkZSBUaGUgb3BhcXVlIGRlc2NyaXB0b3IgcmV0dXJuZWQgYnkgZ2VuZXJhdGVLZXkoKSBvciBpbXBvcnRLZXkoKTsKKyAgICAgKgorICAgICAqIEByZXR1cm4gZXJyb3IgU2VlIHRoZSBFcnJvckNvZGUgZW51bS4KKyAgICAgKi8KKyAgICBkZWxldGVLZXkodmVjPHVpbnQ4X3Q+IGtleUJsb2IpIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IpOworCisgICAgLyoqCisgICAgICogRGVsZXRlcyBhbGwga2V5cyBpbiB0aGUgaGFyZHdhcmUga2V5c3RvcmUuIFVzZWQgd2hlbiBrZXlzdG9yZSBpcyByZXNldCBjb21wbGV0ZWx5LiBBZnRlcgorICAgICAqIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiBpdCB3aWxsIGJlIGltcG9zc2libGUgdG8gdXNlIGFueSBwcmV2aW91c2x5IGdlbmVyYXRlZCBvciBpbXBvcnRlZCBrZXkKKyAgICAgKiBibG9icyBmb3IgYW55IG9wZXJhdGlvbnMuCisgICAgICoKKyAgICAgKiBUaGlzIGlzIGEgTk9QIGlmIGtleXMgZG9uJ3QgaGF2ZSByb2xsYmFjayBwcm90ZWN0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtLgorICAgICAqLworICAgIGRlbGV0ZUFsbEtleXMoKSBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yKTsKKworICAgIC8qKgorICAgICAqIERlc3Ryb3lzIGtub3dsZWRnZSBvZiB0aGUgZGV2aWNlJ3MgaWRzLiBUaGlzIHByZXZlbnRzIGFsbCBkZXZpY2UgaWQgYXR0ZXN0YXRpb24gaW4gdGhlCisgICAgICogZnV0dXJlLiBUaGUgZGVzdHJ1Y3Rpb24gbXVzdCBiZSBwZXJtYW5lbnQgc28gdGhhdCBub3QgZXZlbiBhIGZhY3RvcnkgcmVzZXQgd2lsbCByZXN0b3JlIHRoZQorICAgICAqIGRldmljZSBpZHMuCisgICAgICoKKyAgICAgKiBEZXZpY2UgaWQgYXR0ZXN0YXRpb24gbWF5IGJlIHByb3ZpZGVkIG9ubHkgaWYgdGhpcyBtZXRob2QgaXMgZnVsbHkgaW1wbGVtZW50ZWQsIGFsbG93aW5nIHRoZQorICAgICAqIHVzZXIgdG8gcGVybWFuZW50bHkgZGlzYWJsZSBkZXZpY2UgaWQgYXR0ZXN0YXRpb24uIElmIHRoaXMgY2Fubm90IGJlIGd1YXJhbnRlZWQsIHRoZSBkZXZpY2UKKyAgICAgKiBtdXN0IG5ldmVyIGF0dGVzdCBhbnkgZGV2aWNlIGlkcy4KKyAgICAgKgorICAgICAqIFRoaXMgaXMgYSBOT1AgaWYgZGV2aWNlIGlkIGF0dGVzdGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0uCisgICAgICovCisgICAgZGVzdHJveUF0dGVzdGF0aW9uSWRzKCkgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvcik7CisKKyAgICAvKioKKyAgICAgKiBCZWdpbnMgYSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbiB1c2luZyB0aGUgc3BlY2lmaWVkIGtleS4gSWYgYWxsIGlzIHdlbGwsIGJlZ2luKCkgd2lsbCByZXR1cm4KKyAgICAgKiBFcnJvckNvZGU6Ok9LIGFuZCBjcmVhdGUgYW4gb3BlcmF0aW9uIGhhbmRsZSB3aGljaCBtdXN0IGJlIHBhc3NlZCB0byBzdWJzZXF1ZW50IGNhbGxzIHRvCisgICAgICogdXBkYXRlKCksIGZpbmlzaCgpIG9yIGFib3J0KCkuCisgICAgICoKKyAgICAgKiBJdCBpcyBjcml0aWNhbCB0aGF0IGVhY2ggY2FsbCB0byBiZWdpbigpIGJlIHBhaXJlZCB3aXRoIGEgc3Vic2VxdWVudCBjYWxsIHRvIGZpbmlzaCgpIG9yCisgICAgICogYWJvcnQoKSwgdG8gYWxsb3cgdGhlIGtleW1hc3RlciBpbXBsZW1lbnRhdGlvbiB0byBjbGVhbiB1cCBhbnkgaW50ZXJuYWwgb3BlcmF0aW9uIHN0YXRlLgorICAgICAqIEZhaWx1cmUgdG8gZG8gdGhpcyBtYXkgbGVhayBpbnRlcm5hbCBzdGF0ZSBzcGFjZSBvciBvdGhlciBpbnRlcm5hbCByZXNvdXJjZXMgYW5kIG1heQorICAgICAqIGV2ZW50dWFsbHkgY2F1c2UgYmVnaW4oKSB0byByZXR1cm4gRXJyb3JDb2RlOjpUT09fTUFOWV9PUEVSQVRJT05TIHdoZW4gaXQgcnVucyBvdXQgb2Ygc3BhY2UKKyAgICAgKiBmb3Igb3BlcmF0aW9ucy4gQW55IHJlc3VsdCBvdGhlciB0aGFuIEVycm9yQ29kZTo6T0sgZnJvbSBiZWdpbigpLCB1cGRhdGUoKSBvciBmaW5pc2goKQorICAgICAqIGltcGxpY2l0bHkgYWJvcnRzIHRoZSBvcGVyYXRpb24sIGluIHdoaWNoIGNhc2UgYWJvcnQoKSBuZWVkIG5vdCBiZSBjYWxsZWQgKGFuZCB3aWxsIHJldHVybgorICAgICAqIEVycm9yQ29kZTo6SU5WQUxJRF9PUEVSQVRJT05fSEFORExFIGlmIGNhbGxlZCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHVycG9zZSBUaGUgcHVycG9zZSBvZiB0aGUgb3BlcmF0aW9uLCBvbmUgb2YgS2V5UHVycG9zZTo6RU5DUllQVCwgS2V5UHVycG9zZTo6REVDUllQVCwKKyAgICAgKiAgICAgICAgICAgICBLZXlQdXJwb3NlOjpTSUdOIG9yIEtleVB1cnBvc2U6OlZFUklGWS4gTm90ZSB0aGF0IGZvciBBRUFEIG1vZGVzLCBlbmNyeXB0aW9uIGFuZAorICAgICAqICAgICAgICAgICAgIGRlY3J5cHRpb24gaW1wbHkgc2lnbmluZyBhbmQgdmVyaWZpY2F0aW9uLCByZXNwZWN0aXZlbHksIGJ1dCBtdXN0IGJlIHNwZWNpZmllZCBhcworICAgICAqICAgICAgICAgICAgIEtleVB1cnBvc2U6OkVOQ1JZUFQgYW5kIEtleVB1cnBvc2U6OkRFQ1JZUFQuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5QmxvYiBUaGUgb3BhcXVlIGtleSBkZXNjcmlwdG9yIHJldHVybmVkIGJ5IGdlbmVyYXRlS2V5KCkgb3IgaW1wb3J0S2V5KCkuICBUaGUga2V5CisgICAgICogICAgICAgICAgICAgbXVzdCBoYXZlIGEgcHVycG9zZSBjb21wYXRpYmxlIHdpdGggcHVycG9zZSBhbmQgYWxsIG9mIGl0cyB1c2FnZSByZXF1aXJlbWVudHMKKyAgICAgKiAgICAgICAgICAgICBtdXN0IGJlIHNhdGlzZmllZCwgb3IgYmVnaW4oKSB3aWxsIHJldHVybiBhbiBhcHByb3ByaWF0ZSBlcnJvciBjb2RlLgorICAgICAqCisgICAgICogQHBhcmFtIGluUGFyYW1zIEFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIG9wZXJhdGlvbi4gVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB0byBwcm92aWRlCisgICAgICogICAgICAgICAgICAgYXV0aGVudGljYXRpb24gZGF0YSwgd2l0aCBUYWc6OkFVVEhfVE9LRU4uIElmIFRhZzo6QVBQTElDQVRJT05fSUQgb3IKKyAgICAgKiAgICAgICAgICAgICBUYWc6OkFQUExJQ0FUSU9OX0RBVEEgd2VyZSBwcm92aWRlZCBkdXJpbmcgZ2VuZXJhdGlvbiwgdGhleSBtdXN0IGJlIHByb3ZpZGVkCisgICAgICogICAgICAgICAgICAgaGVyZSwgb3IgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwgd2l0aCBFcnJvckNvZGU6OklOVkFMSURfS0VZX0JMT0IuIEZvciBvcGVyYXRpb25zCisgICAgICogICAgICAgICAgICAgdGhhdCByZXF1aXJlIGEgbm9uY2Ugb3IgSVYsIG9uIGtleXMgdGhhdCB3ZXJlIGdlbmVyYXRlZCB3aXRoIFRhZzo6Q0FMTEVSX05PTkNFLAorICAgICAqICAgICAgICAgICAgIGluUGFyYW1zIG1heSBjb250YWluIGEgdGFnIFRhZzo6Tk9OQ0UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGVycm9yIFNlZSB0aGUgRXJyb3JDb2RlIGVudW0gaW4gdHlwZXMuaGFsLgorICAgICAqCisgICAgICogQHJldHVybiBvdXRQYXJhbXMgT3V0cHV0IHBhcmFtZXRlcnMuIFVzZWQgdG8gcmV0dXJuIGFkZGl0aW9uYWwgZGF0YSBmcm9tIHRoZSBvcGVyYXRpb24KKyAgICAgKiAgICAgICAgICAgICBpbml0aWFsaXphdGlvbiwgbm90YWJseSB0byByZXR1cm4gdGhlIElWIG9yIG5vbmNlIGZyb20gb3BlcmF0aW9ucyB0aGF0IGdlbmVyYXRlCisgICAgICogICAgICAgICAgICAgYW4gSVYgb3Igbm9uY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG9wZXJhdGlvbkhhbmRsZSBUaGUgbmV3bHktY3JlYXRlZCBvcGVyYXRpb24gaGFuZGxlIHdoaWNoIG11c3QgYmUgcGFzc2VkIHRvIHVwZGF0ZSgpLAorICAgICAqICAgICAgICAgICAgIGZpbmlzaCgpIG9yIGFib3J0KCkuCisgICAgICovCisgICAgYmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCB2ZWM8dWludDhfdD4ga2V5LCB2ZWM8S2V5UGFyYW1ldGVyPiBpblBhcmFtcykKKyAgICAgICAgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvciwgdmVjPEtleVBhcmFtZXRlcj4gb3V0UGFyYW1zLCBPcGVyYXRpb25IYW5kbGUgb3BlcmF0aW9uSGFuZGxlKTsKKworICAgIC8qKgorICAgICAqIFByb3ZpZGVzIGRhdGEgdG8sIGFuZCBwb3NzaWJseSByZWNlaXZlcyBvdXRwdXQgZnJvbSwgYW4gb25nb2luZyBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbiBiZWd1bgorICAgICAqIHdpdGggYmVnaW4oKS4KKyAgICAgKgorICAgICAqIElmIG9wZXJhdGlvbkhhbmRsZSBpcyBpbnZhbGlkLCB1cGRhdGUoKSB3aWxsIHJldHVybiBFcnJvckNvZGU6OklOVkFMSURfT1BFUkFUSU9OX0hBTkRMRS4KKyAgICAgKgorICAgICAqIHVwZGF0ZSgpIG1heSBub3QgY29uc3VtZSBhbGwgb2YgdGhlIGRhdGEgcHJvdmlkZWQgaW4gdGhlIGRhdGEgYnVmZmVyLiB1cGRhdGUoKSB3aWxsIHJldHVybgorICAgICAqIHRoZSBhbW91bnQgY29uc3VtZWQgaW4gaW5wdXRDb25zdW1lZC4gVGhlIGNhbGxlciBtYXkgcHJvdmlkZSB0aGUgdW5jb25zdW1lZCBkYXRhIGluIGEKKyAgICAgKiBzdWJzZXF1ZW50IGNhbGwuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3BlcmF0aW9uSGFuZGxlIFRoZSBvcGVyYXRpb24gaGFuZGxlIHJldHVybmVkIGJ5IGJlZ2luKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5QYXJhbXMgQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgb3BlcmF0aW9uLiBGb3IgQUVBRCBtb2RlcywgdGhpcyBpcyB1c2VkIHRvCisgICAgICogICAgICAgICAgICAgc3BlY2lmeSBUYWc6OkFERElUSU9OQUxfREFUQS4gTm90ZSB0aGF0IGFkZGl0aW9uYWwgZGF0YSBtYXkgYmUgcHJvdmlkZWQgaW4KKyAgICAgKiAgICAgICAgICAgICBtdWx0aXBsZSBjYWxscyB0byB1cGRhdGUoKSwgYnV0IG9ubHkgdW50aWwgaW5wdXQgZGF0YSBoYXMgYmVlbiBwcm92aWRlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnB1dCBEYXRhIHRvIGJlIHByb2Nlc3NlZCwgcGVyIHRoZSBwYXJhbWV0ZXJzIGVzdGFibGlzaGVkIGluIHRoZSBjYWxsIHRvIGJlZ2luKCkuCisgICAgICogICAgICAgICAgICAgTm90ZSB0aGF0IHVwZGF0ZSgpIG1heSBvciBtYXkgbm90IGNvbnN1bWUgYWxsIG9mIHRoZSBkYXRhIHByb3ZpZGVkLiBTZWUKKyAgICAgKiAgICAgICAgICAgICBpbnB1dENvbnN1bWVkLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gaW5wdXRDb25zdW1lZCBBbW91bnQgb2YgZGF0YSB0aGF0IHdhcyBjb25zdW1lZCBieSB1cGRhdGUoKS4gSWYgdGhpcyBpcyBsZXNzIHRoYW4gdGhlCisgICAgICogICAgICAgICAgICAgYW1vdW50IHByb3ZpZGVkLCB0aGUgY2FsbGVyIG1heSBwcm92aWRlIHRoZSByZW1haW5kZXIgaW4gYSBzdWJzZXF1ZW50IGNhbGwgdG8KKyAgICAgKiAgICAgICAgICAgICB1cGRhdGUoKSBvciBmaW5pc2goKS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gb3V0UGFyYW1zIE91dHB1dCBwYXJhbWV0ZXJzLCB1c2VkIHRvIHJldHVybiBhZGRpdGlvbmFsIGRhdGEgZnJvbSB0aGUgb3BlcmF0aW9uIFRoZQorICAgICAqICAgICAgICAgICAgIGNhbGxlciB0YWtlcyBvd25lcnNoaXAgb2YgdGhlIG91dHB1dCBwYXJhbWV0ZXJzIGFycmF5IGFuZCBtdXN0IGZyZWUgaXQgd2l0aAorICAgICAqICAgICAgICAgICAgIGtleW1hc3Rlcl9mcmVlX3BhcmFtX3NldCgpLgorICAgICAqCisgICAgICogQHJldHVybiBvdXRwdXQgVGhlIG91dHB1dCBkYXRhLCBpZiBhbnkuCisgICAgICovCisgICAgdXBkYXRlKE9wZXJhdGlvbkhhbmRsZSBvcGVyYXRpb25IYW5kbGUsIHZlYzxLZXlQYXJhbWV0ZXI+IGluUGFyYW1zLCB2ZWM8dWludDhfdD4gaW5wdXQpCisgICAgICAgIGdlbmVyYXRlcyhFcnJvckNvZGUgZXJyb3IsIHVpbnQzMl90IGlucHV0Q29uc3VtZWQsIHZlYzxLZXlQYXJhbWV0ZXI+IG91dFBhcmFtcywKKyAgICAgICAgICAgICAgICAgIHZlYzx1aW50OF90PiBvdXRwdXQpOworCisgICAgLyoqCisgICAgICogRmluYWxpemVzIGEgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb24gYmVndW4gd2l0aCBiZWdpbigpIGFuZCBpbnZhbGlkYXRlcyBvcGVyYXRpb25IYW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3BlcmF0aW9uSGFuZGxlIFRoZSBvcGVyYXRpb24gaGFuZGxlIHJldHVybmVkIGJ5IGJlZ2luKCkuIFRoaXMgaGFuZGxlIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICBpbnZhbGlkIHdoZW4gZmluaXNoKCkgcmV0dXJucy4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpblBhcmFtcyBBZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBvcGVyYXRpb24uIEZvciBBRUFEIG1vZGVzLCB0aGlzIGlzIHVzZWQgdG8KKyAgICAgKiAgICAgICAgICAgICBzcGVjaWZ5IFRhZzo6QURESVRJT05BTF9EQVRBLCBidXQgb25seSBpZiBubyBpbnB1dCBkYXRhIHdhcyBwcm92aWRlZCB0byB1cGRhdGUoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnB1dCBEYXRhIHRvIGJlIHByb2Nlc3NlZCwgcGVyIHRoZSBwYXJhbWV0ZXJzIGVzdGFibGlzaGVkIGluIHRoZSBjYWxsIHRvCisgICAgICogICAgICAgICAgICAgYmVnaW4oKS4gZmluaXNoKCkgbXVzdCBjb25zdW1lIGFsbCBwcm92aWRlZCBkYXRhIG9yIHJldHVybgorICAgICAqICAgICAgICAgICAgIEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEguCisgICAgICoKKyAgICAgKiBAcGFyYW0gc2lnbmF0dXJlIFRoZSBzaWduYXR1cmUgdG8gYmUgdmVyaWZpZWQgaWYgdGhlIHB1cnBvc2Ugc3BlY2lmaWVkIGluIHRoZSBiZWdpbigpIGNhbGwKKyAgICAgKiAgICAgICAgICAgICB3YXMgS2V5UHVycG9zZTo6VkVSSUZZLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKgorICAgICAqIEByZXR1cm4gb3V0UGFyYW1zIEFueSBvdXRwdXQgcGFyYW1ldGVycyBnZW5lcmF0ZWQgYnkgZmluaXNoKCkuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIG91dHB1dCBUaGUgb3V0cHV0IGRhdGEsIGlmIGFueS4KKyAgICAgKi8KKyAgICBmaW5pc2goT3BlcmF0aW9uSGFuZGxlIG9wZXJhdGlvbkhhbmRsZSwgdmVjPEtleVBhcmFtZXRlcj4gaW5QYXJhbXMsIHZlYzx1aW50OF90PiBpbnB1dCwKKyAgICAgICAgICAgdmVjPHVpbnQ4X3Q+IHNpZ25hdHVyZSkKKyAgICAgICAgZ2VuZXJhdGVzKEVycm9yQ29kZSBlcnJvciwgdmVjPEtleVBhcmFtZXRlcj4gb3V0UGFyYW1zLCB2ZWM8dWludDhfdD4gb3V0cHV0KTsKKworICAgIC8qKgorICAgICAqIEFib3J0cyBhIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9uIGJlZ3VuIHdpdGggYmVnaW4oKSwgZnJlZWluZyBhbGwgaW50ZXJuYWwgcmVzb3VyY2VzIGFuZAorICAgICAqIGludmFsaWRhdGluZyBvcGVyYXRpb25IYW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gb3BlcmF0aW9uSGFuZGxlIFRoZSBvcGVyYXRpb24gaGFuZGxlIHJldHVybmVkIGJ5IGJlZ2luKCkuIFRoaXMgaGFuZGxlIHdpbGwgYmUKKyAgICAgKiAgICAgICAgICAgICBpbnZhbGlkIHdoZW4gYWJvcnQoKSByZXR1cm5zLgorICAgICAqCisgICAgICogQHJldHVybiBlcnJvciBTZWUgdGhlIEVycm9yQ29kZSBlbnVtIGluIHR5cGVzLmhhbC4KKyAgICAgKi8KKyAgICBhYm9ydChPcGVyYXRpb25IYW5kbGUgb3BlcmF0aW9uSGFuZGxlKSBnZW5lcmF0ZXMoRXJyb3JDb2RlIGVycm9yKTsKK307CmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZjViZjgKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQyIEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1pbXBsCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgS2V5bWFzdGVyRGV2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmxvZyBcCisgICAgbGlic29mdGtleW1hc3RlcmRldmljZSBcCisgICAgbGliY3J5cHRvIFwKKyAgICBsaWJrZXltYXN0ZXIxIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjAKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIHNlcnZpY2UuY3BwCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmxvZyBcCisgICAgbGliY3V0aWxzIFwKKyAgICBsaWJkbCBcCisgICAgbGliYmFzZSBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5jcHAgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvS2V5bWFzdGVyRGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2RkMzI5Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5jcHAKQEAgLTAsMCArMSw3NTEgQEAKKy8qCisgKioKKyAqKiBDb3B5cmlnaHQgMjAxNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoqCisgKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoqCisgKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoqCisgKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wLWltcGwiCisKKyNpbmNsdWRlICJLZXltYXN0ZXJEZXZpY2UuaCIKKworI2luY2x1ZGUgPGN1dGlscy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2tleW1hc3Rlcl9kZWZzLmg+CisjaW5jbHVkZSA8a2V5bWFzdGVyL2tleW1hc3Rlcl9jb25maWd1cmF0aW9uLmg+CisjaW5jbHVkZSA8a2V5bWFzdGVyL3NvZnRfa2V5bWFzdGVyX2RldmljZS5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmtleW1hc3Rlcjo6U29mdEtleW1hc3RlckRldmljZTsKKworY2xhc3MgU29mdHdhcmVPbmx5SGlkbEtleW1hc3RlckVuZm9yY2VtZW50IDogcHVibGljIDo6a2V5bWFzdGVyOjpLZXltYXN0ZXJFbmZvcmNlbWVudCB7CisgIHB1YmxpYzoKKyAgICBTb2Z0d2FyZU9ubHlIaWRsS2V5bWFzdGVyRW5mb3JjZW1lbnQoKSA6IEtleW1hc3RlckVuZm9yY2VtZW50KDY0LCA2NCkge30KKworICAgIHVpbnQzMl90IGdldF9jdXJyZW50X3RpbWUoKSBjb25zdCBvdmVycmlkZSB7CisgICAgICAgIHN0cnVjdCB0aW1lc3BlYyB0cDsKKyAgICAgICAgaW50IGVyciA9IGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCAmdHApOworICAgICAgICBpZiAoZXJyIHx8IHRwLnR2X3NlYyA8IDApIHJldHVybiAwOworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRwLnR2X3NlYyk7CisgICAgfQorCisgICAgYm9vbCBhY3RpdmF0aW9uX2RhdGVfdmFsaWQodWludDY0X3QpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIGV4cGlyYXRpb25fZGF0ZV9wYXNzZWQodWludDY0X3QpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBhdXRoX3Rva2VuX3RpbWVkX291dChjb25zdCBod19hdXRoX3Rva2VuX3QmLCB1aW50MzJfdCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIFZhbGlkYXRlVG9rZW5TaWduYXR1cmUoY29uc3QgaHdfYXV0aF90b2tlbl90JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKworY2xhc3MgU29mdHdhcmVPbmx5SGlkbEtleW1hc3RlckNvbnRleHQgOiBwdWJsaWMgOjprZXltYXN0ZXI6OlNvZnRLZXltYXN0ZXJDb250ZXh0IHsKKyAgcHVibGljOgorICAgIFNvZnR3YXJlT25seUhpZGxLZXltYXN0ZXJDb250ZXh0KCkgOiBlbmZvcmNlbWVudF8obmV3IFNvZnR3YXJlT25seUhpZGxLZXltYXN0ZXJFbmZvcmNlbWVudCkge30KKworICAgIDo6a2V5bWFzdGVyOjpLZXltYXN0ZXJFbmZvcmNlbWVudCogZW5mb3JjZW1lbnRfcG9saWN5KCkgb3ZlcnJpZGUgeyByZXR1cm4gZW5mb3JjZW1lbnRfLmdldCgpOyB9CisKKyAgcHJpdmF0ZToKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8OjprZXltYXN0ZXI6OktleW1hc3RlckVuZm9yY2VtZW50PiBlbmZvcmNlbWVudF87Cit9OworCitzdGF0aWMgaW50IGtleW1hc3RlcjBfZGV2aWNlX2luaXRpYWxpemUoY29uc3QgaHdfbW9kdWxlX3QqIG1vZCwga2V5bWFzdGVyMl9kZXZpY2VfdCoqIGRldikgeworICAgIGFzc2VydChtb2QtPm1vZHVsZV9hcGlfdmVyc2lvbiA8IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wKTsKKyAgICBBTE9HSSgiRm91bmQga2V5bWFzdGVyMCBtb2R1bGUgJXMsIHZlcnNpb24gJXgiLCBtb2QtPm5hbWUsIG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uKTsKKworICAgIFVuaXF1ZVB0cjxTb2Z0S2V5bWFzdGVyRGV2aWNlPiBzb2Z0X2tleW1hc3RlcihuZXcgU29mdEtleW1hc3RlckRldmljZSk7CisgICAga2V5bWFzdGVyMF9kZXZpY2VfdCoga20wX2RldmljZSA9IE5VTEw7CisgICAga2V5bWFzdGVyX2Vycm9yX3QgZXJyb3IgPSBLTV9FUlJPUl9PSzsKKworICAgIGludCByYyA9IGtleW1hc3RlcjBfb3Blbihtb2QsICZrbTBfZGV2aWNlKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0UoIkVycm9yIG9wZW5pbmcga2V5c3RvcmUga2V5bWFzdGVyMCBkZXZpY2UuIik7CisgICAgICAgIGdvdG8gZXJyOworICAgIH0KKworICAgIGlmIChrbTBfZGV2aWNlLT5mbGFncyAmIEtFWU1BU1RFUl9TT0ZUV0FSRV9PTkxZKSB7CisgICAgICAgIEFMT0dJKCJLZXltYXN0ZXIwIG1vZHVsZSBpcyBzb2Z0d2FyZS1vbmx5LiAgVXNpbmcgU29mdEtleW1hc3RlckRldmljZSBpbnN0ZWFkLiIpOworICAgICAgICBrbTBfZGV2aWNlLT5jb21tb24uY2xvc2UoJmttMF9kZXZpY2UtPmNvbW1vbik7CisgICAgICAgIGttMF9kZXZpY2UgPSBOVUxMOworICAgICAgICAvLyBTb2Z0S2V5bWFzdGVyRGV2aWNlIHdpbGwgYmUgZGVsZXRlZCBieSBrZXltYXN0ZXJfZGV2aWNlX3JlbGVhc2UoKQorICAgICAgICAqZGV2ID0gc29mdF9rZXltYXN0ZXIucmVsZWFzZSgpLT5rZXltYXN0ZXIyX2RldmljZSgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBBTE9HRCgiV3JhcHBpbmcga2V5bWFzdGVyMCBtb2R1bGUgJXMgd2l0aCBTb2Z0S2V5bWFzdGVyRGV2aWNlIiwgbW9kLT5uYW1lKTsKKyAgICBlcnJvciA9IHNvZnRfa2V5bWFzdGVyLT5TZXRIYXJkd2FyZURldmljZShrbTBfZGV2aWNlKTsKKyAgICBrbTBfZGV2aWNlID0gTlVMTDsgIC8vIFNvZnRLZXltYXN0ZXJEZXZpY2UgaGFzIHRha2VuIG93bmVyc2hpcC4KKyAgICBpZiAoZXJyb3IgIT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgQUxPR0UoIkdvdCBlcnJvciAlZCBmcm9tIFNldEhhcmR3YXJlRGV2aWNlIiwgZXJyb3IpOworICAgICAgICByYyA9IGVycm9yOworICAgICAgICBnb3RvIGVycjsKKyAgICB9CisKKyAgICAvLyBTb2Z0S2V5bWFzdGVyRGV2aWNlIHdpbGwgYmUgZGVsZXRlZCBieSAga2V5bWFzdGVyX2RldmljZV9yZWxlYXNlKCkKKyAgICAqZGV2ID0gc29mdF9rZXltYXN0ZXIucmVsZWFzZSgpLT5rZXltYXN0ZXIyX2RldmljZSgpOworICAgIHJldHVybiAwOworCitlcnI6CisgICAgaWYgKGttMF9kZXZpY2UpIGttMF9kZXZpY2UtPmNvbW1vbi5jbG9zZSgma20wX2RldmljZS0+Y29tbW9uKTsKKyAgICAqZGV2ID0gTlVMTDsKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQga2V5bWFzdGVyMV9kZXZpY2VfaW5pdGlhbGl6ZShjb25zdCBod19tb2R1bGVfdCogbW9kLCBrZXltYXN0ZXIyX2RldmljZV90KiogZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIHN1cHBvcnRzX2FsbF9kaWdlc3RzKSB7CisgICAgYXNzZXJ0KG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uID49IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wKTsKKyAgICBBTE9HSSgiRm91bmQga2V5bWFzdGVyMSBtb2R1bGUgJXMsIHZlcnNpb24gJXgiLCBtb2QtPm5hbWUsIG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uKTsKKworICAgIFVuaXF1ZVB0cjxTb2Z0S2V5bWFzdGVyRGV2aWNlPiBzb2Z0X2tleW1hc3RlcihuZXcgU29mdEtleW1hc3RlckRldmljZSk7CisgICAga2V5bWFzdGVyMV9kZXZpY2VfdCoga20xX2RldmljZSA9IG51bGxwdHI7CisgICAga2V5bWFzdGVyX2Vycm9yX3QgZXJyb3IgPSBLTV9FUlJPUl9PSzsKKworICAgIGludCByYyA9IGtleW1hc3RlcjFfb3Blbihtb2QsICZrbTFfZGV2aWNlKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0UoIkVycm9yICVkIG9wZW5pbmcga2V5c3RvcmUga2V5bWFzdGVyMSBkZXZpY2UiLCByYyk7CisgICAgICAgIGdvdG8gZXJyOworICAgIH0KKworICAgIEFMT0dEKCJXcmFwcGluZyBrZXltYXN0ZXIxIG1vZHVsZSAlcyB3aXRoIFNvZktleW1hc3RlckRldmljZSIsIG1vZC0+bmFtZSk7CisgICAgZXJyb3IgPSBzb2Z0X2tleW1hc3Rlci0+U2V0SGFyZHdhcmVEZXZpY2Uoa20xX2RldmljZSk7CisgICAga20xX2RldmljZSA9IG51bGxwdHI7ICAvLyBTb2Z0S2V5bWFzdGVyRGV2aWNlIGhhcyB0YWtlbiBvd25lcnNoaXAuCisgICAgaWYgKGVycm9yICE9IEtNX0VSUk9SX09LKSB7CisgICAgICAgIEFMT0dFKCJHb3QgZXJyb3IgJWQgZnJvbSBTZXRIYXJkd2FyZURldmljZSIsIGVycm9yKTsKKyAgICAgICAgcmMgPSBlcnJvcjsKKyAgICAgICAgZ290byBlcnI7CisgICAgfQorCisgICAgLy8gU29mdEtleW1hc3RlckRldmljZSB3aWxsIGJlIGRlbGV0ZWQgYnkga2V5bWFzdGVyX2RldmljZV9yZWxlYXNlKCkKKyAgICAqc3VwcG9ydHNfYWxsX2RpZ2VzdHMgPSBzb2Z0X2tleW1hc3Rlci0+c3VwcG9ydHNfYWxsX2RpZ2VzdHMoKTsKKyAgICAqZGV2ID0gc29mdF9rZXltYXN0ZXIucmVsZWFzZSgpLT5rZXltYXN0ZXIyX2RldmljZSgpOworICAgIHJldHVybiAwOworCitlcnI6CisgICAgaWYgKGttMV9kZXZpY2UpIGttMV9kZXZpY2UtPmNvbW1vbi5jbG9zZSgma20xX2RldmljZS0+Y29tbW9uKTsKKyAgICAqZGV2ID0gTlVMTDsKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBpbnQga2V5bWFzdGVyMl9kZXZpY2VfaW5pdGlhbGl6ZShjb25zdCBod19tb2R1bGVfdCogbW9kLCBrZXltYXN0ZXIyX2RldmljZV90KiogZGV2KSB7CisgICAgYXNzZXJ0KG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uID49IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMl8wKTsKKyAgICBBTE9HSSgiRm91bmQga2V5bWFzdGVyMiBtb2R1bGUgJXMsIHZlcnNpb24gJXgiLCBtb2QtPm5hbWUsIG1vZC0+bW9kdWxlX2FwaV92ZXJzaW9uKTsKKworICAgIGtleW1hc3RlcjJfZGV2aWNlX3QqIGttMl9kZXZpY2UgPSBudWxscHRyOworCisgICAgaW50IHJjID0ga2V5bWFzdGVyMl9vcGVuKG1vZCwgJmttMl9kZXZpY2UpOworICAgIGlmIChyYykgeworICAgICAgICBBTE9HRSgiRXJyb3IgJWQgb3BlbmluZyBrZXlzdG9yZSBrZXltYXN0ZXIyIGRldmljZSIsIHJjKTsKKyAgICAgICAgZ290byBlcnI7CisgICAgfQorCisgICAgKmRldiA9IGttMl9kZXZpY2U7CisgICAgcmV0dXJuIDA7CisKK2VycjoKKyAgICBpZiAoa20yX2RldmljZSkga20yX2RldmljZS0+Y29tbW9uLmNsb3NlKCZrbTJfZGV2aWNlLT5jb21tb24pOworICAgICpkZXYgPSBudWxscHRyOworICAgIHJldHVybiByYzsKK30KKworc3RhdGljIGludCBrZXltYXN0ZXJfZGV2aWNlX2luaXRpYWxpemUoa2V5bWFzdGVyMl9kZXZpY2VfdCoqIGRldiwgdWludDMyX3QqIHZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiBzdXBwb3J0c19lYywgYm9vbCogc3VwcG9ydHNfYWxsX2RpZ2VzdHMpIHsKKyAgICBjb25zdCBod19tb2R1bGVfdCogbW9kOworCisgICAgKnN1cHBvcnRzX2VjID0gdHJ1ZTsKKworICAgIGludCByYyA9IGh3X2dldF9tb2R1bGVfYnlfY2xhc3MoS0VZU1RPUkVfSEFSRFdBUkVfTU9EVUxFX0lELCBOVUxMLCAmbW9kKTsKKyAgICBpZiAocmMpIHsKKyAgICAgICAgQUxPR0koIkNvdWxkIG5vdCBmaW5kIGFueSBrZXlzdG9yZSBtb2R1bGUsIHVzaW5nIHNvZnR3YXJlLW9ubHkgaW1wbGVtZW50YXRpb24uIik7CisgICAgICAgIC8vIFNvZnRLZXltYXN0ZXJEZXZpY2Ugd2lsbCBiZSBkZWxldGVkIGJ5IGtleW1hc3Rlcl9kZXZpY2VfcmVsZWFzZSgpCisgICAgICAgICpkZXYgPSAobmV3IFNvZnRLZXltYXN0ZXJEZXZpY2UobmV3IFNvZnR3YXJlT25seUhpZGxLZXltYXN0ZXJDb250ZXh0KSktPmtleW1hc3RlcjJfZGV2aWNlKCk7CisgICAgICAgICp2ZXJzaW9uID0gLTE7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmIChtb2QtPm1vZHVsZV9hcGlfdmVyc2lvbiA8IEtFWU1BU1RFUl9NT0RVTEVfQVBJX1ZFUlNJT05fMV8wKSB7CisgICAgICAgICp2ZXJzaW9uID0gMDsKKyAgICAgICAgKnN1cHBvcnRzX2FsbF9kaWdlc3RzID0gZmFsc2U7CisgICAgICAgIGludCByYyA9IGtleW1hc3RlcjBfZGV2aWNlX2luaXRpYWxpemUobW9kLCBkZXYpOworICAgICAgICBpZiAocmMgPT0gMCAmJiAoKCpkZXYpLT5mbGFncyAmIEtFWU1BU1RFUl9TVVBQT1JUU19FQykgPT0gMCkgeworICAgICAgICAgICAgKnN1cHBvcnRzX2VjID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJjOworICAgIH0gZWxzZSBpZiAobW9kLT5tb2R1bGVfYXBpX3ZlcnNpb24gPT0gS0VZTUFTVEVSX01PRFVMRV9BUElfVkVSU0lPTl8xXzApIHsKKyAgICAgICAgKnZlcnNpb24gPSAxOworICAgICAgICByZXR1cm4ga2V5bWFzdGVyMV9kZXZpY2VfaW5pdGlhbGl6ZShtb2QsIGRldiwgc3VwcG9ydHNfYWxsX2RpZ2VzdHMpOworICAgIH0gZWxzZSB7CisgICAgICAgICp2ZXJzaW9uID0gMjsKKyAgICAgICAgKnN1cHBvcnRzX2FsbF9kaWdlc3RzID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGtleW1hc3RlcjJfZGV2aWNlX2luaXRpYWxpemUobW9kLCBkZXYpOworICAgIH0KK30KKworS2V5bWFzdGVyRGV2aWNlOjp+S2V5bWFzdGVyRGV2aWNlKCkgeworICAgIGlmIChrZXltYXN0ZXJfZGV2aWNlXykga2V5bWFzdGVyX2RldmljZV8tPmNvbW1vbi5jbG9zZSgma2V5bWFzdGVyX2RldmljZV8tPmNvbW1vbik7Cit9CisKK3N0YXRpYyBpbmxpbmUga2V5bWFzdGVyX3RhZ190eXBlX3QgdHlwZUZyb21UYWcoY29uc3Qga2V5bWFzdGVyX3RhZ190IHRhZykgeworICAgIHJldHVybiBrZXltYXN0ZXJfdGFnX2dldF90eXBlKHRhZyk7Cit9CisKKy8qKgorICogbGVnYWN5X2VudW1fY29udmVyc2lvbiBjb252ZXJ0cyBlbnVtcyBmcm9tIGhpZGwgdG8ga2V5bWFzdGVyIGFuZCBiYWNrLiBDdXJyZW50bHksIHRoaXMgaXMganVzdCBhCisgKiBjYXN0IHRvIG1ha2UgdGhlIGNvbXBpbGVyIGhhcHB5LiBPbmUgb2YgdHdvIHRoaWdzIHNob3VsZCBoYXBwZW4gdGhvdWdoOgorICogVE9ETyBUaGUga2V5bWFzdGVyIGVudW1zIHNob3VsZCBiZWNvbWUgYWxpYXNlcyBmb3IgdGhlIGhpZGwgZ2VuZXJhdGVkIGVudW1zIHNvIHRoYXQgd2UgaGF2ZSBhCisgKiAgICAgIHNpbmdsZSBwb2ludCBvZiB0cnV0aC4gVGhlbiB0aGlzIGNhc3QgZnVuY3Rpb24gY2FuIGdvIGF3YXkuCisgKi8KK2lubGluZSBzdGF0aWMga2V5bWFzdGVyX3RhZ190IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oY29uc3QgVGFnIHZhbHVlKSB7CisgICAgcmV0dXJuIGtleW1hc3Rlcl90YWdfdCh2YWx1ZSk7Cit9CitpbmxpbmUgc3RhdGljIFRhZyBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGNvbnN0IGtleW1hc3Rlcl90YWdfdCB2YWx1ZSkgeworICAgIHJldHVybiBUYWcodmFsdWUpOworfQoraW5saW5lIHN0YXRpYyBrZXltYXN0ZXJfcHVycG9zZV90IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oY29uc3QgS2V5UHVycG9zZSB2YWx1ZSkgeworICAgIHJldHVybiBrZXltYXN0ZXJfcHVycG9zZV90KHZhbHVlKTsKK30KK2lubGluZSBzdGF0aWMga2V5bWFzdGVyX2tleV9mb3JtYXRfdCBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGNvbnN0IEtleUZvcm1hdCB2YWx1ZSkgeworICAgIHJldHVybiBrZXltYXN0ZXJfa2V5X2Zvcm1hdF90KHZhbHVlKTsKK30KK2lubGluZSBzdGF0aWMgRXJyb3JDb2RlIGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oY29uc3Qga2V5bWFzdGVyX2Vycm9yX3QgdmFsdWUpIHsKKyAgICByZXR1cm4gRXJyb3JDb2RlKHZhbHVlKTsKK30KKworY2xhc3MgS21QYXJhbVNldCA6IHB1YmxpYyBrZXltYXN0ZXJfa2V5X3BhcmFtX3NldF90IHsKKyAgcHVibGljOgorICAgIEttUGFyYW1TZXQoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYga2V5UGFyYW1zKSB7CisgICAgICAgIHBhcmFtcyA9IG5ldyBrZXltYXN0ZXJfa2V5X3BhcmFtX3Rba2V5UGFyYW1zLnNpemUoKV07CisgICAgICAgIGxlbmd0aCA9IGtleVBhcmFtcy5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5UGFyYW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBhdXRvIHRhZyA9IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oa2V5UGFyYW1zW2ldLnRhZyk7CisgICAgICAgICAgICBzd2l0Y2ggKHR5cGVGcm9tVGFnKHRhZykpIHsKKyAgICAgICAgICAgIGNhc2UgS01fRU5VTToKKyAgICAgICAgICAgIGNhc2UgS01fRU5VTV9SRVA6CisgICAgICAgICAgICAgICAgcGFyYW1zW2ldID0ga2V5bWFzdGVyX3BhcmFtX2VudW0odGFnLCBrZXlQYXJhbXNbaV0uZi5pbnRlZ2VyKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgS01fVUlOVDoKKyAgICAgICAgICAgIGNhc2UgS01fVUlOVF9SRVA6CisgICAgICAgICAgICAgICAgcGFyYW1zW2ldID0ga2V5bWFzdGVyX3BhcmFtX2ludCh0YWcsIGtleVBhcmFtc1tpXS5mLmludGVnZXIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLTV9VTE9ORzoKKyAgICAgICAgICAgIGNhc2UgS01fVUxPTkdfUkVQOgorICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IGtleW1hc3Rlcl9wYXJhbV9sb25nKHRhZywga2V5UGFyYW1zW2ldLmYubG9uZ0ludGVnZXIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLTV9EQVRFOgorICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IGtleW1hc3Rlcl9wYXJhbV9kYXRlKHRhZywga2V5UGFyYW1zW2ldLmYuZGF0ZVRpbWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBLTV9CT09MOgorICAgICAgICAgICAgICAgIGlmIChrZXlQYXJhbXNbaV0uZi5ib29sVmFsdWUpCisgICAgICAgICAgICAgICAgICAgIHBhcmFtc1tpXSA9IGtleW1hc3Rlcl9wYXJhbV9ib29sKHRhZyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBwYXJhbXNbaV0udGFnID0gS01fVEFHX0lOVkFMSUQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtNX0JJR05VTToKKyAgICAgICAgICAgIGNhc2UgS01fQllURVM6CisgICAgICAgICAgICAgICAgcGFyYW1zW2ldID0KKyAgICAgICAgICAgICAgICAgICAga2V5bWFzdGVyX3BhcmFtX2Jsb2IodGFnLCAma2V5UGFyYW1zW2ldLmJsb2JbMF0sIGtleVBhcmFtc1tpXS5ibG9iLnNpemUoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEtNX0lOVkFMSUQ6CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHBhcmFtc1tpXS50YWcgPSBLTV9UQUdfSU5WQUxJRDsKKyAgICAgICAgICAgICAgICAvKiBqdXN0IHNraXAgKi8KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBLbVBhcmFtU2V0KEttUGFyYW1TZXQmJiBvdGhlcikgOiBrZXltYXN0ZXJfa2V5X3BhcmFtX3NldF90e290aGVyLnBhcmFtcywgb3RoZXIubGVuZ3RofSB7CisgICAgICAgIG90aGVyLmxlbmd0aCA9IDA7CisgICAgICAgIG90aGVyLnBhcmFtcyA9IG51bGxwdHI7CisgICAgfQorICAgIEttUGFyYW1TZXQoY29uc3QgS21QYXJhbVNldCYpID0gZGVsZXRlOworICAgIH5LbVBhcmFtU2V0KCkgeyBkZWxldGVbXSBwYXJhbXM7IH0KK307CisKK2lubGluZSBzdGF0aWMgS21QYXJhbVNldCBoaWRsUGFyYW1zMkttUGFyYW1TZXQoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgcGFyYW1zKSB7CisgICAgcmV0dXJuIEttUGFyYW1TZXQocGFyYW1zKTsKK30KKworaW5saW5lIHN0YXRpYyBrZXltYXN0ZXJfYmxvYl90IGhpZGxWZWMyS21CbG9iKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBibG9iKSB7CisgICAgLyogaGlkbCB1bm1hcnNoYWxzIGZ1bm55IHBvaW50ZXJzIGlmIHRoZSB0aGUgYmxvYiBpcyBlbXB0eSAqLworICAgIGlmIChibG9iLnNpemUoKSkgcmV0dXJuIHsmYmxvYlswXSwgYmxvYi5zaXplKCl9OworICAgIHJldHVybiB7bnVsbHB0ciwgMH07Cit9CisKK2lubGluZSBzdGF0aWMga2V5bWFzdGVyX2tleV9ibG9iX3QgaGlkbFZlYzJLbUtleUJsb2IoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGJsb2IpIHsKKyAgICAvKiBoaWRsIHVubWFyc2hhbHMgZnVubnkgcG9pbnRlcnMgaWYgdGhlIHRoZSBibG9iIGlzIGVtcHR5ICovCisgICAgaWYgKGJsb2Iuc2l6ZSgpKSByZXR1cm4geyZibG9iWzBdLCBibG9iLnNpemUoKX07CisgICAgcmV0dXJuIHtudWxscHRyLCAwfTsKK30KKworaW5saW5lIHN0YXRpYyBoaWRsX3ZlYzx1aW50OF90PiBrbUJsb2IyaGlkbFZlYyhjb25zdCBrZXltYXN0ZXJfa2V5X2Jsb2JfdCYgYmxvYikgeworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdDsKKyAgICByZXN1bHQuc2V0VG9FeHRlcm5hbChjb25zdF9jYXN0PHVuc2lnbmVkIGNoYXIqPihibG9iLmtleV9tYXRlcmlhbCksIGJsb2Iua2V5X21hdGVyaWFsX3NpemUpOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbmxpbmUgc3RhdGljIGhpZGxfdmVjPHVpbnQ4X3Q+IGttQmxvYjJoaWRsVmVjKGNvbnN0IGtleW1hc3Rlcl9ibG9iX3QmIGJsb2IpIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXN1bHQ7CisgICAgcmVzdWx0LnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4oYmxvYi5kYXRhKSwgYmxvYi5kYXRhX2xlbmd0aCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworaW5saW5lIHN0YXRpYyBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4KK2ttQ2VydENoYWluMkhpZGwoY29uc3Qga2V5bWFzdGVyX2NlcnRfY2hhaW5fdCogY2VydF9jaGFpbikgeworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiByZXN1bHQ7CisgICAgaWYgKCFjZXJ0X2NoYWluIHx8IGNlcnRfY2hhaW4tPmVudHJ5X2NvdW50ID09IDAgfHwgIWNlcnRfY2hhaW4tPmVudHJpZXMpIHJldHVybiByZXN1bHQ7CisKKyAgICByZXN1bHQucmVzaXplKGNlcnRfY2hhaW4tPmVudHJ5X2NvdW50KTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNlcnRfY2hhaW4tPmVudHJ5X2NvdW50OyArK2kpIHsKKyAgICAgICAgYXV0byYgZW50cnkgPSBjZXJ0X2NoYWluLT5lbnRyaWVzW2ldOworICAgICAgICByZXN1bHRbaV0gPSBrbUJsb2IyaGlkbFZlYyhlbnRyeSk7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IGttUGFyYW1TZXQySGlkbChjb25zdCBrZXltYXN0ZXJfa2V5X3BhcmFtX3NldF90JiBzZXQpIHsKKyAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IHJlc3VsdDsKKyAgICBpZiAoc2V0Lmxlbmd0aCA9PSAwIHx8IHNldC5wYXJhbXMgPT0gbnVsbHB0cikgcmV0dXJuIHJlc3VsdDsKKworICAgIHJlc3VsdC5yZXNpemUoc2V0Lmxlbmd0aCk7CisgICAga2V5bWFzdGVyX2tleV9wYXJhbV90KiBwYXJhbXMgPSBzZXQucGFyYW1zOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2V0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIGF1dG8gdGFnID0gcGFyYW1zW2ldLnRhZzsKKyAgICAgICAgcmVzdWx0W2ldLnRhZyA9IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24odGFnKTsKKyAgICAgICAgc3dpdGNoICh0eXBlRnJvbVRhZyh0YWcpKSB7CisgICAgICAgIGNhc2UgS01fRU5VTToKKyAgICAgICAgY2FzZSBLTV9FTlVNX1JFUDoKKyAgICAgICAgICAgIHJlc3VsdFtpXS5mLmludGVnZXIgPSBwYXJhbXNbaV0uZW51bWVyYXRlZDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEtNX1VJTlQ6CisgICAgICAgIGNhc2UgS01fVUlOVF9SRVA6CisgICAgICAgICAgICByZXN1bHRbaV0uZi5pbnRlZ2VyID0gcGFyYW1zW2ldLmludGVnZXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLTV9VTE9ORzoKKyAgICAgICAgY2FzZSBLTV9VTE9OR19SRVA6CisgICAgICAgICAgICByZXN1bHRbaV0uZi5sb25nSW50ZWdlciA9IHBhcmFtc1tpXS5sb25nX2ludGVnZXI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBLTV9EQVRFOgorICAgICAgICAgICAgcmVzdWx0W2ldLmYuZGF0ZVRpbWUgPSBwYXJhbXNbaV0uZGF0ZV90aW1lOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS01fQk9PTDoKKyAgICAgICAgICAgIHJlc3VsdFtpXS5mLmJvb2xWYWx1ZSA9IHBhcmFtc1tpXS5ib29sZWFuOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS01fQklHTlVNOgorICAgICAgICBjYXNlIEtNX0JZVEVTOgorICAgICAgICAgICAgcmVzdWx0W2ldLmJsb2Iuc2V0VG9FeHRlcm5hbChjb25zdF9jYXN0PHVuc2lnbmVkIGNoYXIqPihwYXJhbXNbaV0uYmxvYi5kYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zW2ldLmJsb2IuZGF0YV9sZW5ndGgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgS01fSU5WQUxJRDoKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHBhcmFtc1tpXS50YWcgPSBLTV9UQUdfSU5WQUxJRDsKKyAgICAgICAgICAgIC8qIGp1c3Qgc2tpcCAqLworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6SUtleW1hc3RlckRldmljZSBmb2xsb3cuCitSZXR1cm48dm9pZD4gS2V5bWFzdGVyRGV2aWNlOjpnZXRIYXJkd2FyZUZlYXR1cmVzKGdldEhhcmR3YXJlRmVhdHVyZXNfY2IgX2hpZGxfY2IpIHsKKyAgICBib29sIGlzX3NlY3VyZSA9ICEoa2V5bWFzdGVyX2RldmljZV8tPmZsYWdzICYgS0VZTUFTVEVSX1NPRlRXQVJFX09OTFkpOworICAgIGJvb2wgc3VwcG9ydHNfc3ltbWV0cmljX2NyeXB0b2dyYXBoeSA9IGZhbHNlOworICAgIGJvb2wgc3VwcG9ydHNfYXR0ZXN0YXRpb24gPSBmYWxzZTsKKworICAgIHN3aXRjaCAoaGFyZHdhcmVfdmVyc2lvbl8pIHsKKyAgICBjYXNlIDI6CisgICAgICAgIHN1cHBvcnRzX2F0dGVzdGF0aW9uID0gdHJ1ZTsKKyAgICAvKiBGYWxscyB0aHJvdWdoICovCisgICAgY2FzZSAxOgorICAgICAgICBzdXBwb3J0c19zeW1tZXRyaWNfY3J5cHRvZ3JhcGh5ID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgfTsKKworICAgIF9oaWRsX2NiKGlzX3NlY3VyZSwgaGFyZHdhcmVfc3VwcG9ydHNfZWNfLCBzdXBwb3J0c19zeW1tZXRyaWNfY3J5cHRvZ3JhcGh5LAorICAgICAgICAgICAgIHN1cHBvcnRzX2F0dGVzdGF0aW9uLCBoYXJkd2FyZV9zdXBwb3J0c19hbGxfZGlnZXN0c18sCisgICAgICAgICAgICAga2V5bWFzdGVyX2RldmljZV8tPmNvbW1vbi5tb2R1bGUtPm5hbWUsIGtleW1hc3Rlcl9kZXZpY2VfLT5jb21tb24ubW9kdWxlLT5hdXRob3IpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxFcnJvckNvZGU+IEtleW1hc3RlckRldmljZTo6YWRkUm5nRW50cm9weShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgZGF0YSkgeworICAgIGlmICghZGF0YS5zaXplKCkpIHJldHVybiBFcnJvckNvZGU6Ok9LOworICAgIHJldHVybiBsZWdhY3lfZW51bV9jb252ZXJzaW9uKAorICAgICAgICBrZXltYXN0ZXJfZGV2aWNlXy0+YWRkX3JuZ19lbnRyb3B5KGtleW1hc3Rlcl9kZXZpY2VfLCAmZGF0YVswXSwgZGF0YS5zaXplKCkpKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6Z2VuZXJhdGVLZXkoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYga2V5UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVLZXlfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIEtleUNoYXJhY3RlcmlzdGljcyByZXN1bHRDaGFyYWN0ZXJpc3RpY3M7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0S2V5QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBrZXltYXN0ZXJfa2V5X2Jsb2JfdCBrZXlfYmxvYntudWxscHRyLCAwfTsKKyAgICBrZXltYXN0ZXJfa2V5X2NoYXJhY3RlcmlzdGljc190IGtleV9jaGFyYWN0ZXJpc3RpY3N7e251bGxwdHIsIDB9LCB7bnVsbHB0ciwgMH19OworCisgICAgLy8gY29udmVydCB0aGUgcGFyYW1ldGVyIHNldCB0byBzb21ldGhpbmcgb3VyIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBhdXRvIGttUGFyYW1zID0gaGlkbFBhcmFtczJLbVBhcmFtU2V0KGtleVBhcmFtcyk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmdlbmVyYXRlX2tleShrZXltYXN0ZXJfZGV2aWNlXywgJmttUGFyYW1zLCAma2V5X2Jsb2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleV9jaGFyYWN0ZXJpc3RpY3MpOworCisgICAgaWYgKHJjID09IEtNX0VSUk9SX09LKSB7CisgICAgICAgIC8vIG9uIHN1Y2Nlc3MgY29udmVydCB0aGUgcmVzdWx0IHRvIHdpcmUgZm9ybWF0CisgICAgICAgIHJlc3VsdEtleUJsb2IgPSBrbUJsb2IyaGlkbFZlYyhrZXlfYmxvYik7CisgICAgICAgIHJlc3VsdENoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkID0ga21QYXJhbVNldDJIaWRsKGtleV9jaGFyYWN0ZXJpc3RpY3Muc3dfZW5mb3JjZWQpOworICAgICAgICByZXN1bHRDaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQgPSBrbVBhcmFtU2V0MkhpZGwoa2V5X2NoYXJhY3RlcmlzdGljcy5od19lbmZvcmNlZCk7CisgICAgfQorCisgICAgLy8gc2VuZCByZXN1bHRzIG9mZiB0byB0aGUgY2xpZW50CisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdEtleUJsb2IsIHJlc3VsdENoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvLyBmcmVlIGJ1ZmZlcnMgdGhhdCB3ZSBhcmUgcmVzcG9uc2libGUgZm9yCisgICAgaWYgKGtleV9ibG9iLmtleV9tYXRlcmlhbCkgZnJlZShjb25zdF9jYXN0PHVpbnQ4X3QqPihrZXlfYmxvYi5rZXlfbWF0ZXJpYWwpKTsKKyAgICBrZXltYXN0ZXJfZnJlZV9jaGFyYWN0ZXJpc3RpY3MoJmtleV9jaGFyYWN0ZXJpc3RpY3MpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6Z2V0S2V5Q2hhcmFjdGVyaXN0aWNzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlCbG9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjbGllbnRJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgYXBwRGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRLZXlDaGFyYWN0ZXJpc3RpY3NfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIEtleUNoYXJhY3RlcmlzdGljcyByZXN1bHRDaGFyYWN0ZXJpc3RpY3M7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2tleV9jaGFyYWN0ZXJpc3RpY3NfdCBrZXlfY2hhcmFjdGVyaXN0aWNze3tudWxscHRyLCAwfSwge251bGxwdHIsIDB9fTsKKworICAgIGF1dG8ga21LZXlCbG9iID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5QmxvYik7CisgICAgYXV0byBrbUNsaWVudElkID0gaGlkbFZlYzJLbUJsb2IoY2xpZW50SWQpOworICAgIGF1dG8ga21BcHBEYXRhID0gaGlkbFZlYzJLbUJsb2IoYXBwRGF0YSk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmdldF9rZXlfY2hhcmFjdGVyaXN0aWNzKAorICAgICAgICBrZXltYXN0ZXJfZGV2aWNlXywga2V5QmxvYi5zaXplKCkgPyAma21LZXlCbG9iIDogbnVsbHB0ciwKKyAgICAgICAgY2xpZW50SWQuc2l6ZSgpID8gJmttQ2xpZW50SWQgOiBudWxscHRyLCBhcHBEYXRhLnNpemUoKSA/ICZrbUFwcERhdGEgOiBudWxscHRyLAorICAgICAgICAma2V5X2NoYXJhY3RlcmlzdGljcyk7CisKKyAgICBpZiAocmMgPT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgcmVzdWx0Q2hhcmFjdGVyaXN0aWNzLnNvZnR3YXJlRW5mb3JjZWQgPSBrbVBhcmFtU2V0MkhpZGwoa2V5X2NoYXJhY3RlcmlzdGljcy5zd19lbmZvcmNlZCk7CisgICAgICAgIHJlc3VsdENoYXJhY3RlcmlzdGljcy50ZWVFbmZvcmNlZCA9IGttUGFyYW1TZXQySGlkbChrZXlfY2hhcmFjdGVyaXN0aWNzLmh3X2VuZm9yY2VkKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihsZWdhY3lfZW51bV9jb252ZXJzaW9uKHJjKSwgcmVzdWx0Q2hhcmFjdGVyaXN0aWNzKTsKKworICAgIGtleW1hc3Rlcl9mcmVlX2NoYXJhY3RlcmlzdGljcygma2V5X2NoYXJhY3RlcmlzdGljcyk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gS2V5bWFzdGVyRGV2aWNlOjppbXBvcnRLZXkoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgcGFyYW1zLCBLZXlGb3JtYXQga2V5Rm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlEYXRhLCBpbXBvcnRLZXlfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIEtleUNoYXJhY3RlcmlzdGljcyByZXN1bHRDaGFyYWN0ZXJpc3RpY3M7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0S2V5QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBrZXltYXN0ZXJfa2V5X2Jsb2JfdCBrZXlfYmxvYntudWxscHRyLCAwfTsKKyAgICBrZXltYXN0ZXJfa2V5X2NoYXJhY3RlcmlzdGljc190IGtleV9jaGFyYWN0ZXJpc3RpY3N7e251bGxwdHIsIDB9LCB7bnVsbHB0ciwgMH19OworCisgICAgYXV0byBrbVBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChwYXJhbXMpOworICAgIGF1dG8ga21LZXlEYXRhID0gaGlkbFZlYzJLbUJsb2Ioa2V5RGF0YSk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmltcG9ydF9rZXkoa2V5bWFzdGVyX2RldmljZV8sICZrbVBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWN5X2VudW1fY29udmVyc2lvbihrZXlGb3JtYXQpLCAma21LZXlEYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5X2Jsb2IsICZrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgIGlmIChyYyA9PSBLTV9FUlJPUl9PSykgeworICAgICAgICAvLyBvbiBzdWNjZXNzIGNvbnZlcnQgdGhlIHJlc3VsdCB0byB3aXJlIGZvcm1hdAorICAgICAgICAvLyAoQ2FuIHdlIGFzc3VtZSB0aGF0IGtleV9ibG9iIGlzIHtudWxscHRyLCAwfSBvciBhIHZhbGlkIGJ1ZmZlciBkZXNjcmlwdGlvbj8pCisgICAgICAgIHJlc3VsdEtleUJsb2IgPSBrbUJsb2IyaGlkbFZlYyhrZXlfYmxvYik7CisgICAgICAgIHJlc3VsdENoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkID0ga21QYXJhbVNldDJIaWRsKGtleV9jaGFyYWN0ZXJpc3RpY3Muc3dfZW5mb3JjZWQpOworICAgICAgICByZXN1bHRDaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQgPSBrbVBhcmFtU2V0MkhpZGwoa2V5X2NoYXJhY3RlcmlzdGljcy5od19lbmZvcmNlZCk7CisgICAgfQorCisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdEtleUJsb2IsIHJlc3VsdENoYXJhY3RlcmlzdGljcyk7CisKKyAgICAvLyBmcmVlIGJ1ZmZlcnMgdGhhdCB3ZSBhcmUgcmVzcG9uc2libGUgZm9yCisgICAgaWYgKGtleV9ibG9iLmtleV9tYXRlcmlhbCkgZnJlZShjb25zdF9jYXN0PHVpbnQ4X3QqPihrZXlfYmxvYi5rZXlfbWF0ZXJpYWwpKTsKKyAgICBrZXltYXN0ZXJfZnJlZV9jaGFyYWN0ZXJpc3RpY3MoJmtleV9jaGFyYWN0ZXJpc3RpY3MpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6ZXhwb3J0S2V5KEtleUZvcm1hdCBleHBvcnRGb3JtYXQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlCbG9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjbGllbnRJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgYXBwRGF0YSwgZXhwb3J0S2V5X2NiIF9oaWRsX2NiKSB7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IHJlc3VsdEtleUJsb2I7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2Jsb2JfdCBvdXRfYmxvYntudWxscHRyLCAwfTsKKworICAgIGF1dG8ga21LZXlCbG9iID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5QmxvYik7CisgICAgYXV0byBrbUNsaWVudElkID0gaGlkbFZlYzJLbUJsb2IoY2xpZW50SWQpOworICAgIGF1dG8ga21BcHBEYXRhID0gaGlkbFZlYzJLbUJsb2IoYXBwRGF0YSk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmV4cG9ydF9rZXkoa2V5bWFzdGVyX2RldmljZV8sIGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oZXhwb3J0Rm9ybWF0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5QmxvYi5zaXplKCkgPyAma21LZXlCbG9iIDogbnVsbHB0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SWQuc2l6ZSgpID8gJmttQ2xpZW50SWQgOiBudWxscHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBEYXRhLnNpemUoKSA/ICZrbUFwcERhdGEgOiBudWxscHRyLCAmb3V0X2Jsb2IpOworCisgICAgaWYgKHJjID09IEtNX0VSUk9SX09LKSB7CisgICAgICAgIC8vIG9uIHN1Y2Nlc3MgY29udmVydCB0aGUgcmVzdWx0IHRvIHdpcmUgZm9ybWF0CisgICAgICAgIC8vIChDYW4gd2UgYXNzdW1lIHRoYXQga2V5X2Jsb2IgaXMge251bGxwdHIsIDB9IG9yIGEgdmFsaWQgYnVmZmVyIGRlc2NyaXB0aW9uPykKKyAgICAgICAgcmVzdWx0S2V5QmxvYiA9IGttQmxvYjJoaWRsVmVjKG91dF9ibG9iKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihsZWdhY3lfZW51bV9jb252ZXJzaW9uKHJjKSwgcmVzdWx0S2V5QmxvYik7CisKKyAgICAvLyBmcmVlIGJ1ZmZlcnMgdGhhdCB3ZSBhcmUgcmVzcG9uc2libGUgZm9yCisgICAgaWYgKG91dF9ibG9iLmRhdGEpIGZyZWUoY29uc3RfY2FzdDx1aW50OF90Kj4ob3V0X2Jsb2IuZGF0YSkpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IEtleW1hc3RlckRldmljZTo6YXR0ZXN0S2V5KGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlUb0F0dGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBhdHRlc3RQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0S2V5X2NiIF9oaWRsX2NiKSB7CisKKyAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4gcmVzdWx0Q2VydENoYWluOworCisgICAgYm9vbCBmb3VuZEF0dGVzdGF0aW9uQXBwbGljYXRpb25JZCA9IGZhbHNlOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgYXR0ZXN0UGFyYW1zLnNpemUoKTsgKytpKSB7CisgICAgICAgIHN3aXRjaCAoYXR0ZXN0UGFyYW1zW2ldLnRhZykgeworICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfQlJBTkQ6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9ERVZJQ0U6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9QUk9EVUNUOgorICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfU0VSSUFMOgorICAgICAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfSU1FSToKKyAgICAgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX01FSUQ6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NQU5VRkFDVFVSRVI6CisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NT0RFTDoKKyAgICAgICAgICAgIC8vIERldmljZSBpZCBhdHRlc3RhdGlvbiBtYXkgb25seSBiZSBzdXBwb3J0ZWQgaWYgdGhlIGRldmljZSBpcyBhYmxlIHRvIHBlcm1hbmVudGx5CisgICAgICAgICAgICAvLyBkZXN0cm95IGl0cyBrbm93bGVkZ2Ugb2YgdGhlIGlkcy4gVGhpcyBkZXZpY2UgaXMgdW5hYmxlIHRvIGRvIHRoaXMsIHNvIGl0IG11c3QKKyAgICAgICAgICAgIC8vIG5ldmVyIHBlcmZvcm0gYW55IGRldmljZSBpZCBhdHRlc3RhdGlvbi4KKyAgICAgICAgICAgIF9oaWRsX2NiKEVycm9yQ29kZTo6Q0FOTk9UX0FUVEVTVF9JRFMsIHJlc3VsdENlcnRDaGFpbik7CisgICAgICAgICAgICByZXR1cm4gVm9pZCgpOworCisgICAgICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRDoKKyAgICAgICAgICAgIGZvdW5kQXR0ZXN0YXRpb25BcHBsaWNhdGlvbklkID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIEtNMyBkZXZpY2VzIHJlamVjdCBtaXNzaW5nIGF0dGVzdCBhcHBsaWNhdGlvbiBJRHMuIEtNMiBkZXZpY2VzIGRvIG5vdC4KKyAgICBpZiAoIWZvdW5kQXR0ZXN0YXRpb25BcHBsaWNhdGlvbklkKSB7CisgICAgICAgIF9oaWRsX2NiKEVycm9yQ29kZTo6QVRURVNUQVRJT05fQVBQTElDQVRJT05fSURfTUlTU0lORywKKyAgICAgICAgICAgICAgICAgcmVzdWx0Q2VydENoYWluKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBrZXltYXN0ZXJfY2VydF9jaGFpbl90IGNlcnRfY2hhaW57bnVsbHB0ciwgMH07CisKKyAgICBhdXRvIGttS2V5VG9BdHRlc3QgPSBoaWRsVmVjMkttS2V5QmxvYihrZXlUb0F0dGVzdCk7CisgICAgYXV0byBrbUF0dGVzdFBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChhdHRlc3RQYXJhbXMpOworCisgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfLT5hdHRlc3Rfa2V5KGtleW1hc3Rlcl9kZXZpY2VfLCAma21LZXlUb0F0dGVzdCwgJmttQXR0ZXN0UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2VydF9jaGFpbik7CisKKyAgICBpZiAocmMgPT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgcmVzdWx0Q2VydENoYWluID0ga21DZXJ0Q2hhaW4ySGlkbCgmY2VydF9jaGFpbik7CisgICAgfQorCisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdENlcnRDaGFpbik7CisKKyAgICBrZXltYXN0ZXJfZnJlZV9jZXJ0X2NoYWluKCZjZXJ0X2NoYWluKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OnVwZ3JhZGVLZXkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleUJsb2JUb1VwZ3JhZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIHVwZ3JhZGVQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZ3JhZGVLZXlfY2IgX2hpZGxfY2IpIHsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgZm9yIHRoZSB3aXJlCisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0S2V5QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBrZXltYXN0ZXJfa2V5X2Jsb2JfdCBrZXlfYmxvYntudWxscHRyLCAwfTsKKworICAgIGF1dG8ga21LZXlCbG9iVG9VcGdyYWRlID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5QmxvYlRvVXBncmFkZSk7CisgICAgYXV0byBrbVVwZ3JhZGVQYXJhbXMgPSBoaWRsUGFyYW1zMkttUGFyYW1TZXQodXBncmFkZVBhcmFtcyk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPnVwZ3JhZGVfa2V5KGtleW1hc3Rlcl9kZXZpY2VfLCAma21LZXlCbG9iVG9VcGdyYWRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmttVXBncmFkZVBhcmFtcywgJmtleV9ibG9iKTsKKworICAgIGlmIChyYyA9PSBLTV9FUlJPUl9PSykgeworICAgICAgICAvLyBvbiBzdWNjZXNzIGNvbnZlcnQgdGhlIHJlc3VsdCB0byB3aXJlIGZvcm1hdAorICAgICAgICByZXN1bHRLZXlCbG9iID0ga21CbG9iMmhpZGxWZWMoa2V5X2Jsb2IpOworICAgIH0KKworICAgIF9oaWRsX2NiKGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24ocmMpLCByZXN1bHRLZXlCbG9iKTsKKworICAgIGlmIChrZXlfYmxvYi5rZXlfbWF0ZXJpYWwpIGZyZWUoY29uc3RfY2FzdDx1aW50OF90Kj4oa2V5X2Jsb2Iua2V5X21hdGVyaWFsKSk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48RXJyb3JDb2RlPiBLZXltYXN0ZXJEZXZpY2U6OmRlbGV0ZUtleShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYikgeworICAgIGlmIChrZXltYXN0ZXJfZGV2aWNlXy0+ZGVsZXRlX2tleSA9PSBudWxscHRyKSB7CisgICAgICAgIHJldHVybiBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQ7CisgICAgfQorICAgIGF1dG8ga21LZXlCbG9iID0gaGlkbFZlYzJLbUtleUJsb2Ioa2V5QmxvYik7CisgICAgYXV0byByYyA9IGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24oCisgICAgICAgIGtleW1hc3Rlcl9kZXZpY2VfLT5kZWxldGVfa2V5KGtleW1hc3Rlcl9kZXZpY2VfLCAma21LZXlCbG9iKSk7CisgICAgLy8gS2V5bWFzdGVyIDMuMCByZXF1aXJlcyBkZWxldGVLZXkgdG8gcmV0dXJuIEVycm9yQ29kZTo6T0sgaWYgdGhlIGtleQorICAgIC8vIGJsb2IgaXMgdW51c2FibGUgYWZ0ZXIgdGhlIGNhbGwuIFRoaXMgaXMgZXF1YWxseSB0cnVlIGlmIHRoZSBrZXkgYmxvYiB3YXMKKyAgICAvLyB1bnVzYWJsZSBiZWZvcmUuCisgICAgaWYgKHJjID09IEVycm9yQ29kZTo6SU5WQUxJRF9LRVlfQkxPQikgcmV0dXJuIEVycm9yQ29kZTo6T0s7CisgICAgcmV0dXJuIHJjOworfQorCitSZXR1cm48RXJyb3JDb2RlPiBLZXltYXN0ZXJEZXZpY2U6OmRlbGV0ZUFsbEtleXMoKSB7CisgICAgaWYgKGtleW1hc3Rlcl9kZXZpY2VfLT5kZWxldGVfYWxsX2tleXMgPT0gbnVsbHB0cikgeworICAgICAgICByZXR1cm4gRXJyb3JDb2RlOjpVTklNUExFTUVOVEVEOworICAgIH0KKyAgICByZXR1cm4gbGVnYWN5X2VudW1fY29udmVyc2lvbihrZXltYXN0ZXJfZGV2aWNlXy0+ZGVsZXRlX2FsbF9rZXlzKGtleW1hc3Rlcl9kZXZpY2VfKSk7Cit9CisKK1JldHVybjxFcnJvckNvZGU+IEtleW1hc3RlckRldmljZTo6ZGVzdHJveUF0dGVzdGF0aW9uSWRzKCkgeworICAgIHJldHVybiBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQ7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OmJlZ2luKEtleVB1cnBvc2UgcHVycG9zZSwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGluUGFyYW1zLCBiZWdpbl9jYiBfaGlkbF9jYikgeworCisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyBmb3IgdGhlIHdpcmUKKyAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IHJlc3VsdFBhcmFtczsKKyAgICB1aW50NjRfdCByZXN1bHRPcEhhbmRsZSA9IDA7CisKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIHRoZSBiYWNrZW5kIHVuZGVyc3RhbmRzCisgICAga2V5bWFzdGVyX2tleV9wYXJhbV9zZXRfdCBvdXRfcGFyYW1ze251bGxwdHIsIDB9OworICAgIGtleW1hc3Rlcl9vcGVyYXRpb25faGFuZGxlX3QmIG9wZXJhdGlvbl9oYW5kbGUgPSByZXN1bHRPcEhhbmRsZTsKKworICAgIGF1dG8ga21LZXkgPSBoaWRsVmVjMkttS2V5QmxvYihrZXkpOworICAgIGF1dG8ga21JblBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChpblBhcmFtcyk7CisKKyAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV8tPmJlZ2luKGtleW1hc3Rlcl9kZXZpY2VfLCBsZWdhY3lfZW51bV9jb252ZXJzaW9uKHB1cnBvc2UpLCAma21LZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma21JblBhcmFtcywgJm91dF9wYXJhbXMsICZvcGVyYXRpb25faGFuZGxlKTsKKworICAgIGlmIChyYyA9PSBLTV9FUlJPUl9PSykgcmVzdWx0UGFyYW1zID0ga21QYXJhbVNldDJIaWRsKG91dF9wYXJhbXMpOworCisgICAgX2hpZGxfY2IobGVnYWN5X2VudW1fY29udmVyc2lvbihyYyksIHJlc3VsdFBhcmFtcywgcmVzdWx0T3BIYW5kbGUpOworCisgICAga2V5bWFzdGVyX2ZyZWVfcGFyYW1fc2V0KCZvdXRfcGFyYW1zKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OnVwZGF0ZSh1aW50NjRfdCBvcGVyYXRpb25IYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaW5QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LCB1cGRhdGVfY2IgX2hpZGxfY2IpIHsKKyAgICAvLyByZXN1bHQgdmFyaWFibGVzIGZvciB0aGUgd2lyZQorICAgIHVpbnQzMl90IHJlc3VsdENvbnN1bWVkID0gMDsKKyAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IHJlc3VsdFBhcmFtczsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiByZXN1bHRCbG9iOworCisgICAgLy8gcmVzdWx0IHZhcmlhYmxlcyB0aGUgYmFja2VuZCB1bmRlcnN0YW5kcworICAgIHNpemVfdCBjb25zdW1lZCA9IDA7CisgICAga2V5bWFzdGVyX2tleV9wYXJhbV9zZXRfdCBvdXRfcGFyYW1ze251bGxwdHIsIDB9OworICAgIGtleW1hc3Rlcl9ibG9iX3Qgb3V0X2Jsb2J7bnVsbHB0ciwgMH07CisKKyAgICBhdXRvIGttSW5QYXJhbXMgPSBoaWRsUGFyYW1zMkttUGFyYW1TZXQoaW5QYXJhbXMpOworICAgIGF1dG8ga21JbnB1dCA9IGhpZGxWZWMyS21CbG9iKGlucHV0KTsKKworICAgIGF1dG8gcmMgPSBrZXltYXN0ZXJfZGV2aWNlXy0+dXBkYXRlKGtleW1hc3Rlcl9kZXZpY2VfLCBvcGVyYXRpb25IYW5kbGUsICZrbUluUGFyYW1zLCAma21JbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29uc3VtZWQsICZvdXRfcGFyYW1zLCAmb3V0X2Jsb2IpOworCisgICAgaWYgKHJjID09IEtNX0VSUk9SX09LKSB7CisgICAgICAgIHJlc3VsdENvbnN1bWVkID0gY29uc3VtZWQ7CisgICAgICAgIHJlc3VsdFBhcmFtcyA9IGttUGFyYW1TZXQySGlkbChvdXRfcGFyYW1zKTsKKyAgICAgICAgcmVzdWx0QmxvYiA9IGttQmxvYjJoaWRsVmVjKG91dF9ibG9iKTsKKyAgICB9CisKKyAgICBfaGlkbF9jYihsZWdhY3lfZW51bV9jb252ZXJzaW9uKHJjKSwgcmVzdWx0Q29uc3VtZWQsIHJlc3VsdFBhcmFtcywgcmVzdWx0QmxvYik7CisKKyAgICBrZXltYXN0ZXJfZnJlZV9wYXJhbV9zZXQoJm91dF9wYXJhbXMpOworICAgIGlmIChvdXRfYmxvYi5kYXRhKSBmcmVlKGNvbnN0X2Nhc3Q8dWludDhfdCo+KG91dF9ibG9iLmRhdGEpKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBLZXltYXN0ZXJEZXZpY2U6OmZpbmlzaCh1aW50NjRfdCBvcGVyYXRpb25IYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaW5QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBzaWduYXR1cmUsIGZpbmlzaF9jYiBfaGlkbF9jYikgeworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgZm9yIHRoZSB3aXJlCisgICAgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiByZXN1bHRQYXJhbXM7CisgICAgaGlkbF92ZWM8dWludDhfdD4gcmVzdWx0QmxvYjsKKworICAgIC8vIHJlc3VsdCB2YXJpYWJsZXMgdGhlIGJhY2tlbmQgdW5kZXJzdGFuZHMKKyAgICBrZXltYXN0ZXJfa2V5X3BhcmFtX3NldF90IG91dF9wYXJhbXN7bnVsbHB0ciwgMH07CisgICAga2V5bWFzdGVyX2Jsb2JfdCBvdXRfYmxvYntudWxscHRyLCAwfTsKKworICAgIGF1dG8ga21JblBhcmFtcyA9IGhpZGxQYXJhbXMyS21QYXJhbVNldChpblBhcmFtcyk7CisgICAgYXV0byBrbUlucHV0ID0gaGlkbFZlYzJLbUJsb2IoaW5wdXQpOworICAgIGF1dG8ga21TaWduYXR1cmUgPSBoaWRsVmVjMkttQmxvYihzaWduYXR1cmUpOworCisgICAgYXV0byByYyA9IGtleW1hc3Rlcl9kZXZpY2VfLT5maW5pc2goa2V5bWFzdGVyX2RldmljZV8sIG9wZXJhdGlvbkhhbmRsZSwgJmttSW5QYXJhbXMsICZrbUlucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrbVNpZ25hdHVyZSwgJm91dF9wYXJhbXMsICZvdXRfYmxvYik7CisKKyAgICBpZiAocmMgPT0gS01fRVJST1JfT0spIHsKKyAgICAgICAgcmVzdWx0UGFyYW1zID0ga21QYXJhbVNldDJIaWRsKG91dF9wYXJhbXMpOworICAgICAgICByZXN1bHRCbG9iID0ga21CbG9iMmhpZGxWZWMob3V0X2Jsb2IpOworICAgIH0KKworICAgIF9oaWRsX2NiKGxlZ2FjeV9lbnVtX2NvbnZlcnNpb24ocmMpLCByZXN1bHRQYXJhbXMsIHJlc3VsdEJsb2IpOworCisgICAga2V5bWFzdGVyX2ZyZWVfcGFyYW1fc2V0KCZvdXRfcGFyYW1zKTsKKyAgICBpZiAob3V0X2Jsb2IuZGF0YSkgZnJlZShjb25zdF9jYXN0PHVpbnQ4X3QqPihvdXRfYmxvYi5kYXRhKSk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48RXJyb3JDb2RlPiBLZXltYXN0ZXJEZXZpY2U6OmFib3J0KHVpbnQ2NF90IG9wZXJhdGlvbkhhbmRsZSkgeworICAgIHJldHVybiBsZWdhY3lfZW51bV9jb252ZXJzaW9uKGtleW1hc3Rlcl9kZXZpY2VfLT5hYm9ydChrZXltYXN0ZXJfZGV2aWNlXywgb3BlcmF0aW9uSGFuZGxlKSk7Cit9CisKK0lLZXltYXN0ZXJEZXZpY2UqIEhJRExfRkVUQ0hfSUtleW1hc3RlckRldmljZShjb25zdCBjaGFyKiBuYW1lKSB7CisgICAga2V5bWFzdGVyMl9kZXZpY2VfdCogZGV2ID0gbnVsbHB0cjsKKworICAgIEFMT0dJKCJGZXRjaGluZyBrZXltYXN0ZXIgZGV2aWNlIG5hbWUgJXMiLCBuYW1lKTsKKworICAgIHVpbnQzMl90IHZlcnNpb24gPSAtMTsKKyAgICBib29sIHN1cHBvcnRzX2VjID0gZmFsc2U7CisgICAgYm9vbCBzdXBwb3J0c19hbGxfZGlnZXN0cyA9IGZhbHNlOworCisgICAgaWYgKG5hbWUgJiYgc3RyY21wKG5hbWUsICJzb2Z0d2FyZW9ubHkiKSA9PSAwKSB7CisgICAgICAgIGRldiA9IChuZXcgU29mdEtleW1hc3RlckRldmljZShuZXcgU29mdHdhcmVPbmx5SGlkbEtleW1hc3RlckNvbnRleHQpKS0+a2V5bWFzdGVyMl9kZXZpY2UoKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgJiYgc3RyY21wKG5hbWUsICJkZWZhdWx0IikgPT0gMCkgeworICAgICAgICBhdXRvIHJjID0ga2V5bWFzdGVyX2RldmljZV9pbml0aWFsaXplKCZkZXYsICZ2ZXJzaW9uLCAmc3VwcG9ydHNfZWMsICZzdXBwb3J0c19hbGxfZGlnZXN0cyk7CisgICAgICAgIGlmIChyYykgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgYXV0byBrbXJjID0gOjprZXltYXN0ZXI6OkNvbmZpZ3VyZURldmljZShkZXYpOworICAgIGlmIChrbXJjICE9IEtNX0VSUk9SX09LKSB7CisgICAgICAgIGRldi0+Y29tbW9uLmNsb3NlKCZkZXYtPmNvbW1vbik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIHJldHVybiBuZXcgS2V5bWFzdGVyRGV2aWNlKGRldiwgdmVyc2lvbiwgc3VwcG9ydHNfZWMsIHN1cHBvcnRzX2FsbF9kaWdlc3RzKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5oIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L0tleW1hc3RlckRldmljZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUwNDhkNWIKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvS2V5bWFzdGVyRGV2aWNlLmgKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKioKKyAqKiBDb3B5cmlnaHQgMjAxNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoqCisgKiogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoqCisgKiogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoqCisgKiogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICoqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICoqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgSElETF9HRU5FUkFURURfYW5kcm9pZF9oYXJkd2FyZV9rZXltYXN0ZXJfVjNfMF9LZXltYXN0ZXJEZXZpY2VfSF8KKyNkZWZpbmUgSElETF9HRU5FUkFURURfYW5kcm9pZF9oYXJkd2FyZV9rZXltYXN0ZXJfVjNfMF9LZXltYXN0ZXJEZXZpY2VfSF8KKworI2luY2x1ZGUgPGhhcmR3YXJlL2tleW1hc3RlcjIuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC9JS2V5bWFzdGVyRGV2aWNlLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKworI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OkVycm9yQ29kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6SUtleW1hc3RlckRldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6S2V5Q2hhcmFjdGVyaXN0aWNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpLZXlGb3JtYXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OktleVBhcmFtZXRlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6S2V5UHVycG9zZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworY2xhc3MgS2V5bWFzdGVyRGV2aWNlIDogcHVibGljIElLZXltYXN0ZXJEZXZpY2UgeworICBwdWJsaWM6CisgICAgS2V5bWFzdGVyRGV2aWNlKGtleW1hc3RlcjJfZGV2aWNlX3QqIGRldiwgdWludDMyX3QgaGFyZHdhcmVfdmVyc2lvbiwgYm9vbCBoYXJkd2FyZV9zdXBwb3J0c19lYywKKyAgICAgICAgICAgICAgICAgICAgYm9vbCBoYXJkd2FyZV9zdXBwb3J0c19hbGxfZGlnZXN0cykKKyAgICAgICAgOiBrZXltYXN0ZXJfZGV2aWNlXyhkZXYpLCBoYXJkd2FyZV92ZXJzaW9uXyhoYXJkd2FyZV92ZXJzaW9uKSwKKyAgICAgICAgICBoYXJkd2FyZV9zdXBwb3J0c19lY18oaGFyZHdhcmVfc3VwcG9ydHNfZWMpLAorICAgICAgICAgIGhhcmR3YXJlX3N1cHBvcnRzX2FsbF9kaWdlc3RzXyhoYXJkd2FyZV9zdXBwb3J0c19hbGxfZGlnZXN0cykge30KKyAgICB2aXJ0dWFsIH5LZXltYXN0ZXJEZXZpY2UoKTsKKworICAgIC8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OklLZXltYXN0ZXJEZXZpY2UgZm9sbG93LgorICAgIFJldHVybjx2b2lkPiBnZXRIYXJkd2FyZUZlYXR1cmVzKGdldEhhcmR3YXJlRmVhdHVyZXNfY2IgX2hpZGxfY2IpOworICAgIFJldHVybjxFcnJvckNvZGU+IGFkZFJuZ0VudHJvcHkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGRhdGEpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZW5lcmF0ZUtleShjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBrZXlQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlS2V5X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0S2V5Q2hhcmFjdGVyaXN0aWNzKGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXlCbG9iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGNsaWVudElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGFwcERhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRLZXlDaGFyYWN0ZXJpc3RpY3NfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBpbXBvcnRLZXkoY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgcGFyYW1zLCBLZXlGb3JtYXQga2V5Rm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleURhdGEsIGltcG9ydEtleV9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGV4cG9ydEtleShLZXlGb3JtYXQgZXhwb3J0Rm9ybWF0LCBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBjbGllbnRJZCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGFwcERhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBvcnRLZXlfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBhdHRlc3RLZXkoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGtleVRvQXR0ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgYXR0ZXN0UGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0S2V5X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gdXBncmFkZUtleShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYlRvVXBncmFkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiB1cGdyYWRlUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZ3JhZGVLZXlfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvckNvZGU+IGRlbGV0ZUtleShjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYga2V5QmxvYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yQ29kZT4gZGVsZXRlQWxsS2V5cygpIG92ZXJyaWRlOworICAgIFJldHVybjxFcnJvckNvZGU+IGRlc3Ryb3lBdHRlc3RhdGlvbklkcygpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBiZWdpbihLZXlQdXJwb3NlIHB1cnBvc2UsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBrZXksCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGluUGFyYW1zLCBiZWdpbl9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHVwZGF0ZSh1aW50NjRfdCBvcGVyYXRpb25IYW5kbGUsIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIGluUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGlucHV0LCB1cGRhdGVfY2IgX2hpZGxfY2IpIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBmaW5pc2godWludDY0X3Qgb3BlcmF0aW9uSGFuZGxlLCBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBpblBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBpbnB1dCwgY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbmlzaF9jYiBfaGlkbF9jYikgb3ZlcnJpZGU7CisgICAgUmV0dXJuPEVycm9yQ29kZT4gYWJvcnQodWludDY0X3Qgb3BlcmF0aW9uSGFuZGxlKSBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIGtleW1hc3RlcjJfZGV2aWNlX3QqIGtleW1hc3Rlcl9kZXZpY2VfOworICAgIHVpbnQzMl90IGhhcmR3YXJlX3ZlcnNpb25fOworICAgIGJvb2wgaGFyZHdhcmVfc3VwcG9ydHNfZWNfOworICAgIGJvb2wgaGFyZHdhcmVfc3VwcG9ydHNfYWxsX2RpZ2VzdHNfOworfTsKKworZXh0ZXJuICJDIiBJS2V5bWFzdGVyRGV2aWNlKiBISURMX0ZFVENIX0lLZXltYXN0ZXJEZXZpY2UoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBISURMX0dFTkVSQVRFRF9hbmRyb2lkX2hhcmR3YXJlX2tleW1hc3Rlcl9WM18wX0tleW1hc3RlckRldmljZV9IXwpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlLnJjIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg0OWQyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGtleW1hc3Rlci0zLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wLXNlcnZpY2UKKyAgICBjbGFzcyBlYXJseV9oYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbSBkcm1ycGMKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2tleW1hc3Rlci8zLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNmE5YTkzCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMTYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5rZXltYXN0ZXJAMy4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvSUtleW1hc3RlckRldmljZS5oPgorCisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6Y29uZmlndXJlUnBjVGhyZWFkcG9vbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpqb2luUnBjVGhyZWFkcG9vbDsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6SUtleW1hc3RlckRldmljZTsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUtleW1hc3RlckRldmljZT4oKTsKK30KZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdHlwZXMuaGFsIGIva2V5bWFzdGVyLzMuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRhZDIzZQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmtleW1hc3RlckAzLjA7CisKK2VudW0gVGFnVHlwZSA6IHVpbnQzMl90IHsKKyAgICBJTlZBTElEID0gMCA8PCAyOCwgLyoqIEludmFsaWQgdHlwZSwgdXNlZCB0byBkZXNpZ25hdGUgYSB0YWcgYXMgdW5pbml0aWFsaXplZCAqLworICAgIEVOVU0gPSAxIDw8IDI4LAorICAgIEVOVU1fUkVQID0gMiA8PCAyOCwgLyoqIFJlcGVhdGFibGUgZW51bWVyYXRpb24gdmFsdWUuICovCisgICAgVUlOVCA9IDMgPDwgMjgsCisgICAgVUlOVF9SRVAgPSA0IDw8IDI4LCAvKiogUmVwZWF0YWJsZSBpbnRlZ2VyIHZhbHVlICovCisgICAgVUxPTkcgPSA1IDw8IDI4LAorICAgIERBVEUgPSA2IDw8IDI4LAorICAgIEJPT0wgPSA3IDw8IDI4LAorICAgIEJJR05VTSA9IDggPDwgMjgsCisgICAgQllURVMgPSA5IDw8IDI4LAorICAgIFVMT05HX1JFUCA9IDEwIDw8IDI4LCAvKiogUmVwZWF0YWJsZSBsb25nIHZhbHVlICovCit9OworCitlbnVtIFRhZyA6IHVpbnQzMl90IHsKKyAgICBJTlZBTElEID0gVGFnVHlwZTpJTlZBTElEIHwgMCwKKworICAgIC8qKgorICAgICAqIFRhZ3MgdGhhdCBtdXN0IGJlIHNlbWFudGljYWxseSBlbmZvcmNlZCBieSBoYXJkd2FyZSBhbmQgc29mdHdhcmUgaW1wbGVtZW50YXRpb25zLgorICAgICAqLworCisgICAgLyoqIENyeXB0byBwYXJhbWV0ZXJzICovCisgICAgUFVSUE9TRSA9IFRhZ1R5cGU6RU5VTV9SRVAgfCAxLCAgICAvKiogS2V5UHVycG9zZS4gKi8KKyAgICBBTEdPUklUSE0gPSBUYWdUeXBlOkVOVU0gfCAyLCAgICAgIC8qKiBBbGdvcml0aG0uICovCisgICAgS0VZX1NJWkUgPSBUYWdUeXBlOlVJTlQgfCAzLCAgICAgICAvKiogS2V5IHNpemUgaW4gYml0cy4gKi8KKyAgICBCTE9DS19NT0RFID0gVGFnVHlwZTpFTlVNX1JFUCB8IDQsIC8qKiBCbG9ja01vZGUuICovCisgICAgRElHRVNUID0gVGFnVHlwZTpFTlVNX1JFUCB8IDUsICAgICAvKiogRGlnZXN0LiAqLworICAgIFBBRERJTkcgPSBUYWdUeXBlOkVOVU1fUkVQIHwgNiwgICAgLyoqIFBhZGRpbmdNb2RlLiAqLworICAgIENBTExFUl9OT05DRSA9IFRhZ1R5cGU6Qk9PTCB8IDcsICAgLyoqIEFsbG93IGNhbGxlciB0byBzcGVjaWZ5IG5vbmNlIG9yIElWLiAqLworICAgIE1JTl9NQUNfTEVOR1RIID0gVGFnVHlwZTpVSU5UIHwgOCwgLyogTWluaW11bSBsZW5ndGggb2YgTUFDIG9yIEFFQUQgYXV0aGVudGljYXRpb24gdGFnIGluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBiaXRzLiAqLworICAgIEtERiA9IFRhZ1R5cGU6RU5VTV9SRVAgfCA5LCAgICAgICAgLyoqIEtleURlcml2YXRpb25GdW5jdGlvbi4gKi8KKyAgICBFQ19DVVJWRSA9IFRhZ1R5cGU6RU5VTSB8IDEwLCAgICAgIC8qKiBFY0N1cnZlLiAqLworCisgICAgLyoqIEFsZ29yaXRobS1zcGVjaWZpYy4gKi8KKyAgICBSU0FfUFVCTElDX0VYUE9ORU5UID0gVGFnVHlwZTpVTE9ORyB8IDIwMCwKKyAgICBFQ0lFU19TSU5HTEVfSEFTSF9NT0RFID0gVGFnVHlwZTpCT09MIHwgMjAxLCAvKiBXaGV0aGVyIHRoZSBlcGhlbWVyYWwgcHVibGljIGtleSBpcyBmZWQgaW50byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBLREYuICovCisgICAgSU5DTFVERV9VTklRVUVfSUQgPSBUYWdUeXBlOkJPT0wgfCAyMDIsICAgICAgLyogSWYgdHJ1ZSwgYXR0ZXN0YXRpb24gY2VydGlmaWNhdGVzIGZvciB0aGlzIGtleQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHdpbGwgY29udGFpbiBhbiBhcHBsaWNhdGlvbi1zY29wZWQgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGltZS1ib3VuZGVkIGRldmljZS11bmlxdWUgSUQuKi8KKworICAgIC8qKiBPdGhlciBoYXJkd2FyZS1lbmZvcmNlZC4gKi8KKyAgICBCTE9CX1VTQUdFX1JFUVVJUkVNRU5UUyA9IFRhZ1R5cGU6RU5VTSB8IDMwMSwgLyoqIEtleUJsb2JVc2FnZVJlcXVpcmVtZW50cy4gKi8KKyAgICBCT09UTE9BREVSX09OTFkgPSBUYWdUeXBlOkJPT0wgfCAzMDIsICAgICAgICAgLyoqIFVzYWJsZSBvbmx5IGJ5IGJvb3Rsb2FkZXIuICovCisKKyAgICAvKioKKyAgICAgKiBUYWdzIHRoYXQgc2hvdWxkIGJlIHNlbWFudGljYWxseSBlbmZvcmNlZCBieSBoYXJkd2FyZSBpZiBwb3NzaWJsZSBhbmQgd2lsbCBvdGhlcndpc2UgYmUKKyAgICAgKiBlbmZvcmNlZCBieSBzb2Z0d2FyZSAoa2V5c3RvcmUpLgorICAgICAqLworCisgICAgLyoqIEtleSB2YWxpZGl0eSBwZXJpb2QgKi8KKyAgICBBQ1RJVkVfREFURVRJTUUgPSBUYWdUeXBlOkRBVEUgfCA0MDAsICAgICAgICAgICAgIC8qKiBTdGFydCBvZiB2YWxpZGl0eS4gKi8KKyAgICBPUklHSU5BVElPTl9FWFBJUkVfREFURVRJTUUgPSBUYWdUeXBlOkRBVEUgfCA0MDEsIC8qIERhdGUgd2hlbiBuZXcgIm1lc3NhZ2VzIiBzaG91bGQgbm8gbG9uZ2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBiZSBjcmVhdGVkLiAqLworICAgIFVTQUdFX0VYUElSRV9EQVRFVElNRSA9IFRhZ1R5cGU6REFURSB8IDQwMiwgICAgICAgLyogRGF0ZSB3aGVuIGV4aXN0aW5nICJtZXNzYWdlcyIgc2hvdWxkIG5vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBsb25nZXIgYmUgdHJ1c3RlZC4gKi8KKyAgICBNSU5fU0VDT05EU19CRVRXRUVOX09QUyA9IFRhZ1R5cGU6VUlOVCB8IDQwMywgICAgIC8qIE1pbmltdW0gZWxhcHNlZCB0aW1lIGJldHdlZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyB3aXRoIHRoZSBrZXkuICovCisgICAgTUFYX1VTRVNfUEVSX0JPT1QgPSBUYWdUeXBlOlVJTlQgfCA0MDQsICAgICAgICAgICAvKiBOdW1iZXIgb2YgdGltZXMgdGhlIGtleSBjYW4gYmUgdXNlZCBwZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJvb3QuICovCisKKyAgICAvKiogVXNlciBhdXRoZW50aWNhdGlvbiAqLworICAgIEFMTF9VU0VSUyA9IFRhZ1R5cGU6Qk9PTCB8IDUwMCwgICAgICAgICAgIC8qKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZSAtLSBpZ25vcmUuICovCisgICAgVVNFUl9JRCA9IFRhZ1R5cGU6VUlOVCB8IDUwMSwgICAgICAgICAgICAgLyoqIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlIC0tIGlnbm9yZS4gKi8KKyAgICBVU0VSX1NFQ1VSRV9JRCA9IFRhZ1R5cGU6VUxPTkdfUkVQIHwgNTAyLCAvKiBTZWN1cmUgSUQgb2YgYXV0aG9yaXplZCB1c2VyIG9yIGF1dGhlbnRpY2F0b3IocykuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogRGlzYWxsb3dlZCBpZiBBTExfVVNFUlMgb3IgTk9fQVVUSF9SRVFVSVJFRCBpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHByZXNlbnQuICovCisgICAgTk9fQVVUSF9SRVFVSVJFRCA9IFRhZ1R5cGU6Qk9PTCB8IDUwMywgICAgLyoqIElmIGtleSBpcyB1c2FibGUgd2l0aG91dCBhdXRoZW50aWNhdGlvbi4gKi8KKyAgICBVU0VSX0FVVEhfVFlQRSA9IFRhZ1R5cGU6RU5VTSB8IDUwNCwgICAgICAvKiBCaXRtYXNrIG9mIGF1dGhlbnRpY2F0b3IgdHlwZXMgYWxsb3dlZCB3aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogVVNFUl9TRUNVUkVfSUQgY29udGFpbnMgYSBzZWN1cmUgdXNlciBJRCwgcmF0aGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdGhhbiBhIHNlY3VyZSBhdXRoZW50aWNhdG9yIElELiAgRGVmaW5lZCBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEhhcmR3YXJlQXV0aGVudGljYXRvclR5cGUuICovCisgICAgQVVUSF9USU1FT1VUID0gVGFnVHlwZTpVSU5UIHwgNTA1LCAgICAgICAgLyogUmVxdWlyZWQgZnJlc2huZXNzIG9mIHVzZXIgYXV0aGVudGljYXRpb24gZm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcHJpdmF0ZS9zZWNyZXQga2V5IG9wZXJhdGlvbnMsIGluIHNlY29uZHMuICBQdWJsaWMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBrZXkgb3BlcmF0aW9ucyByZXF1aXJlIG5vIGF1dGhlbnRpY2F0aW9uLiAgSWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBhYnNlbnQsIGF1dGhlbnRpY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBldmVyeSB1c2UuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogQXV0aGVudGljYXRpb24gc3RhdGUgaXMgbG9zdCB3aGVuIHRoZSBkZXZpY2UgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBwb3dlcmVkIG9mZi4gKi8KKyAgICBBTExPV19XSElMRV9PTl9CT0RZID0gVGFnVHlwZTpCT09MIHwgNTA2LCAvKiBBbGxvdyBrZXkgdG8gYmUgdXNlZCBhZnRlciBhdXRoZW50aWNhdGlvbiB0aW1lb3V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaWYgZGV2aWNlIGlzIHN0aWxsIG9uLWJvZHkgKHJlcXVpcmVzIHNlY3VyZSBvbi1ib2R5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc2Vuc29yLiAqLworCisgICAgLyoqIEFwcGxpY2F0aW9uIGFjY2VzcyBjb250cm9sICovCisgICAgQUxMX0FQUExJQ0FUSU9OUyA9IFRhZ1R5cGU6Qk9PTCB8IDYwMCwgLyogU3BlY2lmaWVkIHRvIGluZGljYXRlIGtleSBpcyB1c2FibGUgYnkgYWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYXBwbGljYXRpb25zLiAqLworICAgIEFQUExJQ0FUSU9OX0lEID0gVGFnVHlwZTpCWVRFUyB8IDYwMSwgIC8qKiBCeXRlIHN0cmluZyBpZGVudGlmeWluZyB0aGUgYXV0aG9yaXplZCBhcHBsaWNhdGlvbi4gKi8KKyAgICBFWFBPUlRBQkxFID0gVGFnVHlwZTpCT09MIHwgNjAyLCAgICAgICAvKiBJZiB0cnVlLCBwcml2YXRlL3NlY3JldCBrZXkgY2FuIGJlIGV4cG9ydGVkLCBidXQgb25seQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGlmIGFsbCBhY2Nlc3MgY29udHJvbCByZXF1aXJlbWVudHMgZm9yIHVzZSBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBtZXQuIChrZXltYXN0ZXIyKSAqLworCisgICAgLyoqCisgICAgICogU2VtYW50aWNhbGx5IHVuZW5mb3JjZWFibGUgdGFncywgZWl0aGVyIGJlY2F1c2UgdGhleSBoYXZlIG5vIHNwZWNpZmljIG1lYW5pbmcgb3IgYmVjYXVzZQorICAgICAqIHRoZXkncmUgaW5mb3JtYXRpb25hbCBvbmx5LgorICAgICAqLworICAgIEFQUExJQ0FUSU9OX0RBVEEgPSBUYWdUeXBlOkJZVEVTIHwgNzAwLCAgICAgIC8qKiBEYXRhIHByb3ZpZGVkIGJ5IGF1dGhvcml6ZWQgYXBwbGljYXRpb24uICovCisgICAgQ1JFQVRJT05fREFURVRJTUUgPSBUYWdUeXBlOkRBVEUgfCA3MDEsICAgICAgLyoqIEtleSBjcmVhdGlvbiB0aW1lICovCisgICAgT1JJR0lOID0gVGFnVHlwZTpFTlVNIHwgNzAyLCAgICAgICAgICAgICAgICAgLyoqIGtleW1hc3Rlcl9rZXlfb3JpZ2luX3QuICovCisgICAgUk9MTEJBQ0tfUkVTSVNUQU5UID0gVGFnVHlwZTpCT09MIHwgNzAzLCAgICAgLyoqIFdoZXRoZXIga2V5IGlzIHJvbGxiYWNrLXJlc2lzdGFudC4gKi8KKyAgICBST09UX09GX1RSVVNUID0gVGFnVHlwZTpCWVRFUyB8IDcwNCwgICAgICAgICAvKiogUm9vdCBvZiB0cnVzdCBJRC4gKi8KKyAgICBPU19WRVJTSU9OID0gVGFnVHlwZTpVSU5UIHwgNzA1LCAgICAgICAgICAgICAvKiogVmVyc2lvbiBvZiBzeXN0ZW0gKGtleW1hc3RlcjIpICovCisgICAgT1NfUEFUQ0hMRVZFTCA9IFRhZ1R5cGU6VUlOVCB8IDcwNiwgICAgICAgICAgLyoqIFBhdGNoIGxldmVsIG9mIHN5c3RlbSAoa2V5bWFzdGVyMikgKi8KKyAgICBVTklRVUVfSUQgPSBUYWdUeXBlOkJZVEVTIHwgNzA3LCAgICAgICAgICAgICAvKiogVXNlZCB0byBwcm92aWRlIHVuaXF1ZSBJRCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0NIQUxMRU5HRSA9IFRhZ1R5cGU6QllURVMgfCA3MDgsIC8qKiBVc2VkIHRvIHByb3ZpZGUgY2hhbGxlbmdlIGluIGF0dGVzdGF0aW9uICovCisgICAgQVRURVNUQVRJT05fQVBQTElDQVRJT05fSUQgPSBUYWdUeXBlOkJZVEVTIHwgNzA5LCAvKiBVc2VkIHRvIGlkZW50aWZ5IHRoZSBzZXQgb2YgcG9zc2libGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGFwcGxpY2F0aW9ucyBvZiB3aGljaCBvbmUgaGFzIGluaXRpYXRlZCBhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBrZXkgYXR0ZXN0YXRpb24gKi8KKyAgICBBVFRFU1RBVElPTl9JRF9CUkFORCA9IFRhZ1R5cGU6QllURVMgfCA3MTAsICAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIGJyYW5kIG5hbWUgdG8gYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX0RFVklDRSA9IFRhZ1R5cGU6QllURVMgfCA3MTEsIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3MgZGV2aWNlIG5hbWUgdG8gYmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX1BST0RVQ1QgPSBUYWdUeXBlOkJZVEVTIHwgNzEyLCAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIHByb2R1Y3QgbmFtZSB0byBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX1NFUklBTCA9IFRhZ1R5cGU6QllURVMgfCA3MTMsIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3Mgc2VyaWFsIG51bWJlciB0byBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVkIGluIGF0dGVzdGF0aW9uICovCisgICAgQVRURVNUQVRJT05fSURfSU1FSSA9IFRhZ1R5cGU6QllURVMgfCA3MTQsICAgLyogVXNlZCB0byBwcm92aWRlIHRoZSBkZXZpY2UncyBJTUVJIHRvIGJlIGluY2x1ZGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYXR0ZXN0YXRpb24gKi8KKyAgICBBVFRFU1RBVElPTl9JRF9NRUlEID0gVGFnVHlwZTpCWVRFUyB8IDcxNSwgICAvKiBVc2VkIHRvIHByb3ZpZGUgdGhlIGRldmljZSdzIE1FSUQgdG8gYmUgaW5jbHVkZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX01BTlVGQUNUVVJFUiA9IFRhZ1R5cGU6QllURVMgfCA3MTYsIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3MgbWFudWZhY3R1cmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSB0byBiZSBpbmNsdWRlZCBpbiBhdHRlc3RhdGlvbiAqLworICAgIEFUVEVTVEFUSU9OX0lEX01PREVMID0gVGFnVHlwZTpCWVRFUyB8IDcxNywgIC8qIFVzZWQgdG8gcHJvdmlkZSB0aGUgZGV2aWNlJ3MgbW9kZWwgbmFtZSB0byBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVkIGluIGF0dGVzdGF0aW9uICovCisKKyAgICAvKiogVGFncyB1c2VkIG9ubHkgdG8gcHJvdmlkZSBkYXRhIHRvIG9yIHJlY2VpdmUgZGF0YSBmcm9tIG9wZXJhdGlvbnMgKi8KKyAgICBBU1NPQ0lBVEVEX0RBVEEgPSBUYWdUeXBlOkJZVEVTIHwgMTAwMCwgLyoqIFVzZWQgdG8gcHJvdmlkZSBhc3NvY2lhdGVkIGRhdGEgZm9yIEFFQUQgbW9kZXMuICovCisgICAgTk9OQ0UgPSBUYWdUeXBlOkJZVEVTIHwgMTAwMSwgICAgICAgICAgIC8qKiBOb25jZSBvciBJbml0aWFsaXphdGlvbiBWZWN0b3IgKi8KKyAgICBBVVRIX1RPS0VOID0gVGFnVHlwZTpCWVRFUyB8IDEwMDIsICAgICAgLyogQXV0aGVudGljYXRpb24gdG9rZW4gdGhhdCBwcm92ZXMgc2VjdXJlIHVzZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYXV0aGVudGljYXRpb24gaGFzIGJlZW4gcGVyZm9ybWVkLiAgU3RydWN0dXJlIGRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogaW4gaHdfYXV0aF90b2tlbl90IGluIGh3X2F1dGhfdG9rZW4uaC4gKi8KKyAgICBNQUNfTEVOR1RIID0gVGFnVHlwZTpVSU5UIHwgMTAwMywgICAgICAgLyoqIE1BQyBvciBBRUFEIGF1dGhlbnRpY2F0aW9uIHRhZyBsZW5ndGggaW4gYml0cy4gKi8KKworICAgIFJFU0VUX1NJTkNFX0lEX1JPVEFUSU9OID0gVGFnVHlwZTpCT09MIHwgMTAwNCwgLyogV2hldGhlciB0aGUgZGV2aWNlIGhhcyBiZWVlbiBmYWN0b3J5IHJlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBzaW5jZSB0aGUgbGFzdCB1bmlxdWUgSUQgcm90YXRpb24uICBVc2VkIGZvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoga2V5IGF0dGVzdGF0aW9uLiAqLworfTsKKworZW51bSBBbGdvcml0aG0gOiB1aW50MzJfdCB7CisgICAgLyoqIEFzeW1tZXRyaWMgYWxnb3JpdGhtcy4gKi8KKyAgICBSU0EgPSAxLAorICAgIC8vIERTQSA9IDIsIC0tIFJlbW92ZWQsIGRvIG5vdCByZS11c2UgdmFsdWUgMi4KKyAgICBFQyA9IDMsCisKKyAgICAvKiogQmxvY2sgY2lwaGVycyBhbGdvcml0aG1zICovCisgICAgQUVTID0gMzIsCisKKyAgICAvKiogTUFDIGFsZ29yaXRobXMgKi8KKyAgICBITUFDID0gMTI4LAorfTsKKworLyoqCisgKiBTeW1tZXRyaWMgYmxvY2sgY2lwaGVyIG1vZGVzIHByb3ZpZGVkIGJ5IGtleW1hc3RlciBpbXBsZW1lbnRhdGlvbnMuCisgKi8KK2VudW0gQmxvY2tNb2RlIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFVuYXV0aGVudGljYXRlZCBtb2RlcywgdXNhYmxlIG9ubHkgZm9yIGVuY3J5cHRpb24vZGVjcnlwdGlvbiBhbmQgbm90IGdlbmVyYWxseSByZWNvbW1lbmRlZAorICAgICAqIGV4Y2VwdCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIG90aGVyIHByb3RvY29scy4gKi8KKyAgICBFQ0IgPSAxLAorICAgIENCQyA9IDIsCisgICAgQ1RSID0gMywKKworICAgIC8qKgorICAgICAqIEF1dGhlbnRpY2F0ZWQgbW9kZXMsIHVzYWJsZSBmb3IgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIGFuZCBzaWduaW5nL3ZlcmlmaWNhdGlvbi4gIFJlY29tbWVuZGVkCisgICAgICogb3ZlciB1bmF1dGhlbnRpY2F0ZWQgbW9kZXMgZm9yIGFsbCBwdXJwb3Nlcy4gKi8KKyAgICBHQ00gPSAzMiwKK307CisKKy8qKgorICogUGFkZGluZyBtb2RlcyB0aGF0IG1heSBiZSBhcHBsaWVkIHRvIHBsYWludGV4dCBmb3IgZW5jcnlwdGlvbiBvcGVyYXRpb25zLiAgVGhpcyBsaXN0IGluY2x1ZGVzCisgKiBwYWRkaW5nIG1vZGVzIGZvciBib3RoIHN5bW1ldHJpYyBhbmQgYXN5bW1ldHJpYyBhbGdvcml0aG1zLiAgTm90ZSB0aGF0IGltcGxlbWVudGF0aW9ucyBzaG91bGQgbm90CisgKiBwcm92aWRlIGFsbCBwb3NzaWJsZSBjb21iaW5hdGlvbnMgb2YgYWxnb3JpdGhtIGFuZCBwYWRkaW5nLCBvbmx5IHRoZQorICogY3J5cHRvZ3JhcGhpY2FsbHktYXBwcm9wcmlhdGUgcGFpcnMuCisgKi8KK2VudW0gUGFkZGluZ01vZGUgOiB1aW50MzJfdCB7CisgICAgTk9ORSA9IDEsIC8qKiBkZXByZWNhdGVkICovCisgICAgUlNBX09BRVAgPSAyLAorICAgIFJTQV9QU1MgPSAzLAorICAgIFJTQV9QS0NTMV8xXzVfRU5DUllQVCA9IDQsCisgICAgUlNBX1BLQ1MxXzFfNV9TSUdOID0gNSwKKyAgICBQS0NTNyA9IDY0LAorfTsKKworLyoqCisgKiBEaWdlc3RzIHByb3ZpZGVkIGJ5IGtleW1hc3RlciBpbXBsZW1lbnRhdGlvbnMuCisgKi8KK2VudW0gRGlnZXN0IDogdWludDMyX3QgeworICAgIE5PTkUgPSAwLAorICAgIE1ENSA9IDEsIC8qIE9wdGlvbmFsLCBtYXkgbm90IGJlIGltcGxlbWVudGVkIGluIGhhcmR3YXJlLCB3aWxsIGJlIGhhbmRsZWQgaW4gc29mdHdhcmUgaWYKKyAgICAgICAgICAgICAgKiBuZWVkZWQuICovCisgICAgU0hBMSA9IDIsCisgICAgU0hBXzJfMjI0ID0gMywKKyAgICBTSEFfMl8yNTYgPSA0LAorICAgIFNIQV8yXzM4NCA9IDUsCisgICAgU0hBXzJfNTEyID0gNiwKK307CisKKy8qKgorICogU3VwcG9ydGVkIEVDIGN1cnZlcywgdXNlZCBpbiBFQ0RTQQorICovCitlbnVtIEVjQ3VydmUgOiB1aW50MzJfdCB7CisgICAgUF8yMjQgPSAwLAorICAgIFBfMjU2ID0gMSwKKyAgICBQXzM4NCA9IDIsCisgICAgUF81MjEgPSAzLAorfTsKKworLyoqCisgKiBUaGUgb3JpZ2luIG9mIGEga2V5IChvciBwYWlyKSwgaS5lLiB3aGVyZSBpdCB3YXMgZ2VuZXJhdGVkLiAgTm90ZSB0aGF0IE9SSUdJTiBjYW4gYmUgZm91bmQgaW4KKyAqIGVpdGhlciB0aGUgaGFyZHdhcmUtZW5mb3JjZWQgb3Igc29mdHdhcmUtZW5mb3JjZWQgbGlzdCBmb3IgYSBrZXksIGluZGljYXRpbmcgd2hldGhlciB0aGUga2V5IGlzCisgKiBoYXJkd2FyZSBvciBzb2Z0d2FyZS1iYXNlZC4gIFNwZWNpZmljYWxseSwgYSBrZXkgd2l0aCBHRU5FUkFURUQgaW4gdGhlIGhhcmR3YXJlLWVuZm9yY2VkIGxpc3QgaXMKKyAqIGd1YXJhbnRlZWQgbmV2ZXIgdG8gaGF2ZSBleGlzdGVkIG91dGlkZSB0aGUgc2VjdXJlIGhhcmR3YXJlLgorICovCitlbnVtIEtleU9yaWdpbiA6IHVpbnQzMl90IHsKKyAgICBHRU5FUkFURUQgPSAwLCAvKiogR2VuZXJhdGVkIGluIGtleW1hc3Rlci4gIFNob3VsZCBub3QgZXhpc3Qgb3V0c2lkZSB0aGUgVEVFLiAqLworICAgIERFUklWRUQgPSAxLCAgIC8qKiBEZXJpdmVkIGluc2lkZSBrZXltYXN0ZXIuICBMaWtlbHkgZXhpc3RzIG9mZi1kZXZpY2UuICovCisgICAgSU1QT1JURUQgPSAyLCAgLyoqIEltcG9ydGVkIGludG8ga2V5bWFzdGVyLiAgRXhpc3RlZCBhcyBjbGVhcnRleHQgaW4gQW5kcm9pZC4gKi8KKyAgICBVTktOT1dOID0gMywgICAvKiBLZXltYXN0ZXIgZGlkIG5vdCByZWNvcmQgb3JpZ2luLiAgVGhpcyB2YWx1ZSBjYW4gb25seSBiZSBzZWVuIG9uIGtleXMgaW4gYQorICAgICAgICAgICAgICAgICAgICAqIGtleW1hc3RlcjAgaW1wbGVtZW50YXRpb24uICBUaGUga2V5bWFzdGVyMCBhZGFwdGVyIHVzZXMgdGhpcyB2YWx1ZSB0byBkb2N1bWVudAorICAgICAgICAgICAgICAgICAgICAqIHRoZSBmYWN0IHRoYXQgaXQgaXMgdW5rb3duIHdoZXRoZXIgdGhlIGtleSB3YXMgZ2VuZXJhdGVkIGluc2lkZSBvciBpbXBvcnRlZAorICAgICAgICAgICAgICAgICAgICAqIGludG8ga2V5bWFzdGVyLiAqLworfTsKKworLyoqCisgKiBVc2FiaWxpdHkgcmVxdWlyZW1lbnRzIG9mIGtleSBibG9icy4gIFRoaXMgZGVmaW5lcyB3aGF0IHN5c3RlbSBmdW5jdGlvbmFsaXR5IG11c3QgYmUgYXZhaWxhYmxlCisgKiBmb3IgdGhlIGtleSB0byBmdW5jdGlvbi4gIEZvciBleGFtcGxlLCBrZXkgImJsb2JzIiB3aGljaCBhcmUgYWN0dWFsbHkgaGFuZGxlcyByZWZlcmVuY2luZworICogZW5jcnlwdGVkIGtleSBtYXRlcmlhbCBzdG9yZWQgaW4gdGhlIGZpbGUgc3lzdGVtIGNhbm5vdCBiZSB1c2VkIHVudGlsIHRoZSBmaWxlIHN5c3RlbSBpcworICogYXZhaWxhYmxlLCBhbmQgc2hvdWxkIGhhdmUgQkxPQl9SRVFVSVJFU19GSUxFX1NZU1RFTS4gIE90aGVyIHJlcXVpcmVtZW50cyBlbnRyaWVzIHdpbGwgYmUgYWRkZWQKKyAqIGFzIG5lZWRlZCBmb3IgaW1wbGVtZW50YXRpb25zLgorICovCitlbnVtIEtleUJsb2JVc2FnZVJlcXVpcmVtZW50cyA6IHVpbnQzMl90IHsKKyAgICBTVEFOREFMT05FID0gMCwKKyAgICBSRVFVSVJFU19GSUxFX1NZU1RFTSA9IDEsCit9OworCisvKioKKyAqIFBvc3NpYmxlIHB1cnBvc2VzIG9mIGEga2V5IChvciBwYWlyKS4KKyAqLworZW51bSBLZXlQdXJwb3NlIDogdWludDMyX3QgeworICAgIEVOQ1JZUFQgPSAwLCAgICAvKiogVXNhYmxlIHdpdGggUlNBLCBFQyBhbmQgQUVTIGtleXMuICovCisgICAgREVDUllQVCA9IDEsICAgIC8qKiBVc2FibGUgd2l0aCBSU0EsIEVDIGFuZCBBRVMga2V5cy4gKi8KKyAgICBTSUdOID0gMiwgICAgICAgLyoqIFVzYWJsZSB3aXRoIFJTQSwgRUMgYW5kIEhNQUMga2V5cy4gKi8KKyAgICBWRVJJRlkgPSAzLCAgICAgLyoqIFVzYWJsZSB3aXRoIFJTQSwgRUMgYW5kIEhNQUMga2V5cy4gKi8KKyAgICBERVJJVkVfS0VZID0gNCwgLyoqIFVzYWJsZSB3aXRoIEVDIGtleXMuICovCisgICAgV1JBUF9LRVkgPSA1LCAgIC8qKiBVc2FibGUgd2l0aCB3cmFwcGluZyBrZXlzLiAqLworfTsKKworLyoqCisgKiBLZXltYXN0ZXIgZXJyb3IgY29kZXMuCisgKi8KK2VudW0gRXJyb3JDb2RlIDogdWludDMyX3QgeworICAgIE9LID0gMCwKKyAgICBST09UX09GX1RSVVNUX0FMUkVBRFlfU0VUID0gLTEsCisgICAgVU5TVVBQT1JURURfUFVSUE9TRSA9IC0yLAorICAgIElOQ09NUEFUSUJMRV9QVVJQT1NFID0gLTMsCisgICAgVU5TVVBQT1JURURfQUxHT1JJVEhNID0gLTQsCisgICAgSU5DT01QQVRJQkxFX0FMR09SSVRITSA9IC01LAorICAgIFVOU1VQUE9SVEVEX0tFWV9TSVpFID0gLTYsCisgICAgVU5TVVBQT1JURURfQkxPQ0tfTU9ERSA9IC03LAorICAgIElOQ09NUEFUSUJMRV9CTE9DS19NT0RFID0gLTgsCisgICAgVU5TVVBQT1JURURfTUFDX0xFTkdUSCA9IC05LAorICAgIFVOU1VQUE9SVEVEX1BBRERJTkdfTU9ERSA9IC0xMCwKKyAgICBJTkNPTVBBVElCTEVfUEFERElOR19NT0RFID0gLTExLAorICAgIFVOU1VQUE9SVEVEX0RJR0VTVCA9IC0xMiwKKyAgICBJTkNPTVBBVElCTEVfRElHRVNUID0gLTEzLAorICAgIElOVkFMSURfRVhQSVJBVElPTl9USU1FID0gLTE0LAorICAgIElOVkFMSURfVVNFUl9JRCA9IC0xNSwKKyAgICBJTlZBTElEX0FVVEhPUklaQVRJT05fVElNRU9VVCA9IC0xNiwKKyAgICBVTlNVUFBPUlRFRF9LRVlfRk9STUFUID0gLTE3LAorICAgIElOQ09NUEFUSUJMRV9LRVlfRk9STUFUID0gLTE4LAorICAgIFVOU1VQUE9SVEVEX0tFWV9FTkNSWVBUSU9OX0FMR09SSVRITSA9IC0xOSwgICAvKiogRm9yIFBLQ1M4ICYgUEtDUzEyICovCisgICAgVU5TVVBQT1JURURfS0VZX1ZFUklGSUNBVElPTl9BTEdPUklUSE0gPSAtMjAsIC8qKiBGb3IgUEtDUzggJiBQS0NTMTIgKi8KKyAgICBJTlZBTElEX0lOUFVUX0xFTkdUSCA9IC0yMSwKKyAgICBLRVlfRVhQT1JUX09QVElPTlNfSU5WQUxJRCA9IC0yMiwKKyAgICBERUxFR0FUSU9OX05PVF9BTExPV0VEID0gLTIzLAorICAgIEtFWV9OT1RfWUVUX1ZBTElEID0gLTI0LAorICAgIEtFWV9FWFBJUkVEID0gLTI1LAorICAgIEtFWV9VU0VSX05PVF9BVVRIRU5USUNBVEVEID0gLTI2LAorICAgIE9VVFBVVF9QQVJBTUVURVJfTlVMTCA9IC0yNywKKyAgICBJTlZBTElEX09QRVJBVElPTl9IQU5ETEUgPSAtMjgsCisgICAgSU5TVUZGSUNJRU5UX0JVRkZFUl9TUEFDRSA9IC0yOSwKKyAgICBWRVJJRklDQVRJT05fRkFJTEVEID0gLTMwLAorICAgIFRPT19NQU5ZX09QRVJBVElPTlMgPSAtMzEsCisgICAgVU5FWFBFQ1RFRF9OVUxMX1BPSU5URVIgPSAtMzIsCisgICAgSU5WQUxJRF9LRVlfQkxPQiA9IC0zMywKKyAgICBJTVBPUlRFRF9LRVlfTk9UX0VOQ1JZUFRFRCA9IC0zNCwKKyAgICBJTVBPUlRFRF9LRVlfREVDUllQVElPTl9GQUlMRUQgPSAtMzUsCisgICAgSU1QT1JURURfS0VZX05PVF9TSUdORUQgPSAtMzYsCisgICAgSU1QT1JURURfS0VZX1ZFUklGSUNBVElPTl9GQUlMRUQgPSAtMzcsCisgICAgSU5WQUxJRF9BUkdVTUVOVCA9IC0zOCwKKyAgICBVTlNVUFBPUlRFRF9UQUcgPSAtMzksCisgICAgSU5WQUxJRF9UQUcgPSAtNDAsCisgICAgTUVNT1JZX0FMTE9DQVRJT05fRkFJTEVEID0gLTQxLAorICAgIElNUE9SVF9QQVJBTUVURVJfTUlTTUFUQ0ggPSAtNDQsCisgICAgU0VDVVJFX0hXX0FDQ0VTU19ERU5JRUQgPSAtNDUsCisgICAgT1BFUkFUSU9OX0NBTkNFTExFRCA9IC00NiwKKyAgICBDT05DVVJSRU5UX0FDQ0VTU19DT05GTElDVCA9IC00NywKKyAgICBTRUNVUkVfSFdfQlVTWSA9IC00OCwKKyAgICBTRUNVUkVfSFdfQ09NTVVOSUNBVElPTl9GQUlMRUQgPSAtNDksCisgICAgVU5TVVBQT1JURURfRUNfRklFTEQgPSAtNTAsCisgICAgTUlTU0lOR19OT05DRSA9IC01MSwKKyAgICBJTlZBTElEX05PTkNFID0gLTUyLAorICAgIE1JU1NJTkdfTUFDX0xFTkdUSCA9IC01MywKKyAgICBLRVlfUkFURV9MSU1JVF9FWENFRURFRCA9IC01NCwKKyAgICBDQUxMRVJfTk9OQ0VfUFJPSElCSVRFRCA9IC01NSwKKyAgICBLRVlfTUFYX09QU19FWENFRURFRCA9IC01NiwKKyAgICBJTlZBTElEX01BQ19MRU5HVEggPSAtNTcsCisgICAgTUlTU0lOR19NSU5fTUFDX0xFTkdUSCA9IC01OCwKKyAgICBVTlNVUFBPUlRFRF9NSU5fTUFDX0xFTkdUSCA9IC01OSwKKyAgICBVTlNVUFBPUlRFRF9LREYgPSAtNjAsCisgICAgVU5TVVBQT1JURURfRUNfQ1VSVkUgPSAtNjEsCisgICAgS0VZX1JFUVVJUkVTX1VQR1JBREUgPSAtNjIsCisgICAgQVRURVNUQVRJT05fQ0hBTExFTkdFX01JU1NJTkcgPSAtNjMsCisgICAgS0VZTUFTVEVSX05PVF9DT05GSUdVUkVEID0gLTY0LAorICAgIEFUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lEX01JU1NJTkcgPSAtNjUsCisgICAgQ0FOTk9UX0FUVEVTVF9JRFMgPSAtNjYsCisKKyAgICBVTklNUExFTUVOVEVEID0gLTEwMCwKKyAgICBWRVJTSU9OX01JU01BVENIID0gLTEwMSwKKworICAgIFVOS05PV05fRVJST1IgPSAtMTAwMCwKK307CisKKy8qKgorICogS2V5IGRlcml2YXRpb24gZnVuY3Rpb25zLCBtb3N0bHkgdXNlZCBpbiBFQ0lFUy4KKyAqLworZW51bSBLZXlEZXJpdmF0aW9uRnVuY3Rpb24gOiB1aW50MzJfdCB7CisgICAgLyoqIERvIG5vdCBhcHBseSBhIGtleSBkZXJpdmF0aW9uIGZ1bmN0aW9uOyB1c2UgdGhlIHJhdyBhZ3JlZWQga2V5ICovCisgICAgTk9ORSA9IDAsCisgICAgLyoqIEhLREYgZGVmaW5lZCBpbiBSRkMgNTg2OSB3aXRoIFNIQTI1NiAqLworICAgIFJGQzU4NjlfU0hBMjU2ID0gMSwKKyAgICAvKiogS0RGMSBkZWZpbmVkIGluIElTTyAxODAzMy0yIHdpdGggU0hBMSAqLworICAgIElTTzE4MDMzXzJfS0RGMV9TSEExID0gMiwKKyAgICAvKiogS0RGMSBkZWZpbmVkIGluIElTTyAxODAzMy0yIHdpdGggU0hBMjU2ICovCisgICAgSVNPMTgwMzNfMl9LREYxX1NIQTI1NiA9IDMsCisgICAgLyoqIEtERjIgZGVmaW5lZCBpbiBJU08gMTgwMzMtMiB3aXRoIFNIQTEgKi8KKyAgICBJU08xODAzM18yX0tERjJfU0hBMSA9IDQsCisgICAgLyoqIEtERjIgZGVmaW5lZCBpbiBJU08gMTgwMzMtMiB3aXRoIFNIQTI1NiAqLworICAgIElTTzE4MDMzXzJfS0RGMl9TSEEyNTYgPSA1LAorfTsKKworLyoqCisgKiBIYXJkd2FyZSBhdXRoZW50aWNhdGlvbiB0eXBlLCB1c2VkIGJ5IEhhcmR3YXJlQXV0aFRva2VucyB0byBzcGVjaWZ5IHRoZSBtZWNoYW5pc20gdXNlZCB0bworICogYXV0aGVudGlhdGUgdGhlIHVzZXIsIGFuZCBpbiBLZXlDaGFyYWN0ZXJpc3RpY3MgdG8gc3BlY2lmeSB0aGUgYWxsb3dhYmxlIG1lY2hhbmlzbXMgZm9yCisgKiBhdXRoZW50aWNhdGluZyB0byBhY3RpdmF0ZSBhIGtleS4KKyAqLworZW51bSBIYXJkd2FyZUF1dGhlbnRpY2F0b3JUeXBlIDogdWludDMyX3QgeworICAgIE5PTkUgPSAwLAorICAgIFBBU1NXT1JEID0gMSA8PCAwLAorICAgIEZJTkdFUlBSSU5UID0gMSA8PCAxLAorICAgIC8vIEFkZGl0aW9uYWwgZW50cmllcyBtdXN0IGJlIHBvd2VycyBvZiAyLgorICAgIEFOWSA9IDB4RkZGRkZGRkYsCit9OworCitzdHJ1Y3QgS2V5UGFyYW1ldGVyIHsKKyAgICAvKioKKyAgICAgKiBEaXNjcmltaW5hdGVzIHRoZSB1aW5vbi9ibG9iIGZpZWxkIHVzZWQuICBUaGUgYmxvYiBjYW5ub3QgYmUgY29pbmNpZGVkIHdpdGggdGhlIHVuaW9uLCBidXQKKyAgICAgKiBvbmx5IG9uZSBvZiAiZiIgYW5kICJibG9iIiBpcyBldmVyIHVzZWQgYXQgYSB0aW1lLiAqLworICAgIFRhZyB0YWc7CisgICAgdW5pb24gSW50ZWdlclBhcmFtcyB7CisgICAgICAgIC8qKiBFbnVtIHR5cGVzICovCisgICAgICAgIEFsZ29yaXRobSBhbGdvcml0aG07CisgICAgICAgIEJsb2NrTW9kZSBibG9ja01vZGU7CisgICAgICAgIFBhZGRpbmdNb2RlIHBhZGRpbmdNb2RlOworICAgICAgICBEaWdlc3QgZGlnZXN0OworICAgICAgICBFY0N1cnZlIGVjQ3VydmU7CisgICAgICAgIEtleU9yaWdpbiBvcmlnaW47CisgICAgICAgIEtleUJsb2JVc2FnZVJlcXVpcmVtZW50cyBrZXlCbG9iVXNhZ2VSZXF1aXJlbWVudHM7CisgICAgICAgIEtleVB1cnBvc2UgcHVycG9zZTsKKyAgICAgICAgS2V5RGVyaXZhdGlvbkZ1bmN0aW9uIGtleURlcml2YXRpb25GdW5jdGlvbjsKKyAgICAgICAgSGFyZHdhcmVBdXRoZW50aWNhdG9yVHlwZSBoYXJkd2FyZUF1dGhlbnRpY2F0b3JUeXBlOworCisgICAgICAgIC8qKiBPdGhlciB0eXBlcyAqLworICAgICAgICBib29sIGJvb2xWYWx1ZTsgIC8vIEFsd2F5cyB0cnVlLCBpZiBhIGJvb2xlYW4gdGFnIGlzIHByZXNlbnQuCisgICAgICAgIHVpbnQzMl90IGludGVnZXI7CisgICAgICAgIHVpbnQ2NF90IGxvbmdJbnRlZ2VyOworICAgICAgICB1aW50NjRfdCBkYXRlVGltZTsKKyAgICB9OworICAgIEludGVnZXJQYXJhbXMgZjsgIC8vIEhpZGwgZG9lcyBub3Qgc3VwcG9ydCBhbm9ueW1vdXMgdW5pb25zLCBzbyB3ZSBoYXZlIHRvIG5hbWUgaXQuCisgICAgdmVjPHVpbnQ4X3Q+IGJsb2I7Cit9OworCitzdHJ1Y3QgS2V5Q2hhcmFjdGVyaXN0aWNzIHsKKyAgICB2ZWM8S2V5UGFyYW1ldGVyPiBzb2Z0d2FyZUVuZm9yY2VkOworICAgIHZlYzxLZXlQYXJhbWV0ZXI+IHRlZUVuZm9yY2VkOworfTsKKworLyoqCisgKiBEYXRhIHVzZWQgdG8gcHJvdmUgc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbi4KKyAqLworc3RydWN0IEhhcmR3YXJlQXV0aFRva2VuIHsKKyAgICB1aW50NjRfdCBjaGFsbGVuZ2U7CisgICAgdWludDY0X3QgdXNlcklkOyAgICAgICAgICAgICAvLyBTZWN1cmUgVXNlciBJRCwgbm90IEFuZHJvaWQgdXNlciBJRC4KKyAgICB1aW50NjRfdCBhdXRoZW50aWNhdG9ySWQ7ICAgIC8vIFNlY3VyZSBhdXRoZW50aWNhdG9yIElELgorICAgIHVpbnQzMl90IGF1dGhlbnRpY2F0b3JUeXBlOyAgLy8gSGFyZHdhcmVBdXRoZW50aWNhdG9yVHlwZSwgaW4gbmV0d29yayBvcmRlci4KKyAgICB1aW50NjRfdCB0aW1lc3RhbXA7ICAgICAgICAgIC8vIEluIG5ldHdvcmsgb3JkZXIuCisgICAgdWludDhfdFszMl0gaG1hYzsgICAgICAgICAgICAvLyBITUFDIGlzIGNvbXB1dGVkIG92ZXIgMCB8fCBjaGFsbGVuZ2UgfHwgdXNlcl9pZCB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYXV0aGVudGljYXRvcl9pZCB8fCBhdXRoZW50aWNhdG9yX3R5cGUgfHwgdGltZXN0YW1wLCB3aXRoIGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByZWZpeGVkIDAgYnl0ZSAod2hpY2ggd2FzIGEgdmVyc2lvbiBmaWVsZCBpbiBLZXltYXN0ZXIxIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gS2V5bWFzdGVyMikgYW5kIHRoZSBmaWVsZHMgcGFja2VkIChubyBwYWRkaW5nOyBzbyB5b3UgcHJvYmFibHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNhbid0IGp1c3QgY29tcHV0ZSBvdmVyIHRoZSBieXRlcyBvZiB0aGUgc3RydWN0KS4KK307CisKK2VudW0gU2VjdXJpdHlMZXZlbCA6IHVpbnQzMl90IHsKKyAgICBTT0ZUV0FSRSA9IDAsCisgICAgVFJVU1RFRF9FTlZJUk9OTUVOVCA9IDEsCit9OworCisvKioKKyAqIEZvcm1hdHMgZm9yIGtleSBpbXBvcnQgYW5kIGV4cG9ydC4KKyAqLworZW51bSBLZXlGb3JtYXQgOiB1aW50MzJfdCB7CisgICAgWDUwOSA9IDAsICAvKiogZm9yIHB1YmxpYyBrZXkgZXhwb3J0ICovCisgICAgUEtDUzggPSAxLCAvKiogZm9yIGFzeW1tZXRyaWMga2V5IHBhaXIgaW1wb3J0ICovCisgICAgUkFXID0gMywgICAvKiBmb3Igc3ltbWV0cmljIGtleSBpbXBvcnQgYW5kIGV4cG9ydCovCit9OworCit0eXBlZGVmIHVpbnQ2NF90IE9wZXJhdGlvbkhhbmRsZTsKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5tayBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MDk4NjY0Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMzkgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gVnRzSGFsS2V5bWFzdGVyVjNfMFRhcmdldFRlc3QKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgICAgIGF1dGhvcml6YXRpb25fc2V0LmNwcCBcCisgICAgICAgIGF0dGVzdGF0aW9uX3JlY29yZC5jcHAgXAorICAgICAgICBrZXlfcGFyYW1fb3V0cHV0LmNwcCBcCisgICAgICAgIGtleW1hc3Rlcl9oaWRsX2hhbF90ZXN0LmNwcCBcCisgICAgICAgIGtleXN0b3JlX3RhZ3NfdXRpbHMuY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUua2V5bWFzdGVyQDMuMCBcCisgICAgICAgIGxpYmNyeXB0byBcCisgICAgICAgIGxpYmhpZGxiYXNlIFwKKyAgICAgICAgbGlibG9nIFwKKyAgICAgICAgbGlic29mdGtleW1hc3RlcmRldmljZSBcCisgICAgICAgIGxpYnV0aWxzIFwKKworTE9DQUxfU1RBVElDX0xJQlJBUklFUyA6PSBcCisgICAgICAgIFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSBcCisKK0xPQ0FMX0NGTEFHUyA6PSAtV2FsbCAtV2Vycm9yCisKK2luY2x1ZGUgJChCVUlMRF9OQVRJVkVfVEVTVCkKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXR0ZXN0YXRpb25fcmVjb3JkLmNwcCBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXR0ZXN0YXRpb25fcmVjb3JkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDk2ZmZmCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdHRlc3RhdGlvbl9yZWNvcmQuY3BwCkBAIC0wLDAgKzEsMjkxIEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaW5jbHVkZSAiYXR0ZXN0YXRpb25fcmVjb3JkLmgiCisKKyNpbmNsdWRlIDxhc3NlcnQuaD4KKworI2luY2x1ZGUgPG9wZW5zc2wvYXNuMXQuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2JuLmg+CisjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL3g1MDkuaD4KKworI2luY2x1ZGUgIm9wZW5zc2xfdXRpbHMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCitzdHJ1Y3Qgc3RhY2tfc3RfQVNOMV9UWVBFX0RlbGV0ZSB7CisgICAgdm9pZCBvcGVyYXRvcigpKHN0YWNrX3N0X0FTTjFfVFlQRSogcCkgeyBza19BU04xX1RZUEVfZnJlZShwKTsgfQorfTsKKworc3RydWN0IEFTTjFfU1RSSU5HX0RlbGV0ZSB7CisgICAgdm9pZCBvcGVyYXRvcigpKEFTTjFfU1RSSU5HKiBwKSB7IEFTTjFfU1RSSU5HX2ZyZWUocCk7IH0KK307CisKK3N0cnVjdCBBU04xX1RZUEVfRGVsZXRlIHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoQVNOMV9UWVBFKiBwKSB7IEFTTjFfVFlQRV9mcmVlKHApOyB9Cit9OworCisjZGVmaW5lIEFTTjFfSU5URUdFUl9TRVQgU1RBQ0tfT0YoQVNOMV9JTlRFR0VSKQorCit0eXBlZGVmIHN0cnVjdCBrbV9yb290X29mX3RydXN0IHsKKyAgICBBU04xX09DVEVUX1NUUklORyogdmVyaWZpZWRfYm9vdF9rZXk7CisgICAgQVNOMV9CT09MRUFOKiBkZXZpY2VfbG9ja2VkOworICAgIEFTTjFfRU5VTUVSQVRFRCogdmVyaWZpZWRfYm9vdF9zdGF0ZTsKK30gS01fUk9PVF9PRl9UUlVTVDsKKworQVNOMV9TRVFVRU5DRShLTV9ST09UX09GX1RSVVNUKSA9IHsKKyAgICBBU04xX1NJTVBMRShLTV9ST09UX09GX1RSVVNULCB2ZXJpZmllZF9ib290X2tleSwgQVNOMV9PQ1RFVF9TVFJJTkcpLAorICAgIEFTTjFfU0lNUExFKEtNX1JPT1RfT0ZfVFJVU1QsIGRldmljZV9sb2NrZWQsIEFTTjFfQk9PTEVBTiksCisgICAgQVNOMV9TSU1QTEUoS01fUk9PVF9PRl9UUlVTVCwgdmVyaWZpZWRfYm9vdF9zdGF0ZSwgQVNOMV9FTlVNRVJBVEVEKSwKK30gQVNOMV9TRVFVRU5DRV9FTkQoS01fUk9PVF9PRl9UUlVTVCk7CitJTVBMRU1FTlRfQVNOMV9GVU5DVElPTlMoS01fUk9PVF9PRl9UUlVTVCk7CisKK3R5cGVkZWYgc3RydWN0IGttX2F1dGhfbGlzdCB7CisgICAgQVNOMV9JTlRFR0VSX1NFVCogcHVycG9zZTsKKyAgICBBU04xX0lOVEVHRVIqIGFsZ29yaXRobTsKKyAgICBBU04xX0lOVEVHRVIqIGtleV9zaXplOworICAgIEFTTjFfSU5URUdFUl9TRVQqIGRpZ2VzdDsKKyAgICBBU04xX0lOVEVHRVJfU0VUKiBwYWRkaW5nOworICAgIEFTTjFfSU5URUdFUl9TRVQqIGtkZjsKKyAgICBBU04xX0lOVEVHRVIqIGVjX2N1cnZlOworICAgIEFTTjFfSU5URUdFUiogcnNhX3B1YmxpY19leHBvbmVudDsKKyAgICBBU04xX0lOVEVHRVIqIGFjdGl2ZV9kYXRlX3RpbWU7CisgICAgQVNOMV9JTlRFR0VSKiBvcmlnaW5hdGlvbl9leHBpcmVfZGF0ZV90aW1lOworICAgIEFTTjFfSU5URUdFUiogdXNhZ2VfZXhwaXJlX2RhdGVfdGltZTsKKyAgICBBU04xX05VTEwqIG5vX2F1dGhfcmVxdWlyZWQ7CisgICAgQVNOMV9JTlRFR0VSKiB1c2VyX2F1dGhfdHlwZTsKKyAgICBBU04xX0lOVEVHRVIqIGF1dGhfdGltZW91dDsKKyAgICBBU04xX05VTEwqIGFsbG93X3doaWxlX29uX2JvZHk7CisgICAgQVNOMV9OVUxMKiBhbGxfYXBwbGljYXRpb25zOworICAgIEFTTjFfT0NURVRfU1RSSU5HKiBhcHBsaWNhdGlvbl9pZDsKKyAgICBBU04xX0lOVEVHRVIqIGNyZWF0aW9uX2RhdGVfdGltZTsKKyAgICBBU04xX0lOVEVHRVIqIG9yaWdpbjsKKyAgICBBU04xX05VTEwqIHJvbGxiYWNrX3Jlc2lzdGFudDsKKyAgICBLTV9ST09UX09GX1RSVVNUKiByb290X29mX3RydXN0OworICAgIEFTTjFfSU5URUdFUiogb3NfdmVyc2lvbjsKKyAgICBBU04xX0lOVEVHRVIqIG9zX3BhdGNobGV2ZWw7CisgICAgQVNOMV9PQ1RFVF9TVFJJTkcqIGF0dGVzdGF0aW9uX2FwcGxpY2F0aW9uX2lkOworfSBLTV9BVVRIX0xJU1Q7CisKK0FTTjFfU0VRVUVOQ0UoS01fQVVUSF9MSVNUKSA9IHsKKyAgICBBU04xX0VYUF9TRVRfT0ZfT1BUKEtNX0FVVEhfTElTVCwgcHVycG9zZSwgQVNOMV9JTlRFR0VSLCBUQUdfUFVSUE9TRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgYWxnb3JpdGhtLCBBU04xX0lOVEVHRVIsIFRBR19BTEdPUklUSE0ubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGtleV9zaXplLCBBU04xX0lOVEVHRVIsIFRBR19LRVlfU0laRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfU0VUX09GX09QVChLTV9BVVRIX0xJU1QsIGRpZ2VzdCwgQVNOMV9JTlRFR0VSLCBUQUdfRElHRVNULm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9TRVRfT0ZfT1BUKEtNX0FVVEhfTElTVCwgcGFkZGluZywgQVNOMV9JTlRFR0VSLCBUQUdfUEFERElORy5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfU0VUX09GX09QVChLTV9BVVRIX0xJU1QsIGtkZiwgQVNOMV9JTlRFR0VSLCBUQUdfS0RGLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBlY19jdXJ2ZSwgQVNOMV9JTlRFR0VSLCBUQUdfRUNfQ1VSVkUubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIHJzYV9wdWJsaWNfZXhwb25lbnQsIEFTTjFfSU5URUdFUiwKKyAgICAgICAgICAgICAgICAgVEFHX1JTQV9QVUJMSUNfRVhQT05FTlQubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFjdGl2ZV9kYXRlX3RpbWUsIEFTTjFfSU5URUdFUiwgVEFHX0FDVElWRV9EQVRFVElNRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgb3JpZ2luYXRpb25fZXhwaXJlX2RhdGVfdGltZSwgQVNOMV9JTlRFR0VSLAorICAgICAgICAgICAgICAgICBUQUdfT1JJR0lOQVRJT05fRVhQSVJFX0RBVEVUSU1FLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCB1c2FnZV9leHBpcmVfZGF0ZV90aW1lLCBBU04xX0lOVEVHRVIsCisgICAgICAgICAgICAgICAgIFRBR19VU0FHRV9FWFBJUkVfREFURVRJTUUubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIG5vX2F1dGhfcmVxdWlyZWQsIEFTTjFfTlVMTCwgVEFHX05PX0FVVEhfUkVRVUlSRUQubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIHVzZXJfYXV0aF90eXBlLCBBU04xX0lOVEVHRVIsIFRBR19VU0VSX0FVVEhfVFlQRS5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgYXV0aF90aW1lb3V0LCBBU04xX0lOVEVHRVIsIFRBR19BVVRIX1RJTUVPVVQubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFsbG93X3doaWxlX29uX2JvZHksIEFTTjFfTlVMTCwgVEFHX0FMTE9XX1dISUxFX09OX0JPRFkubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFsbF9hcHBsaWNhdGlvbnMsIEFTTjFfTlVMTCwgVEFHX0FMTF9BUFBMSUNBVElPTlMubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIGFwcGxpY2F0aW9uX2lkLCBBU04xX09DVEVUX1NUUklORywgVEFHX0FQUExJQ0FUSU9OX0lELm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBjcmVhdGlvbl9kYXRlX3RpbWUsIEFTTjFfSU5URUdFUiwgVEFHX0NSRUFUSU9OX0RBVEVUSU1FLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBvcmlnaW4sIEFTTjFfSU5URUdFUiwgVEFHX09SSUdJTi5tYXNrZWRUYWcoKSksCisgICAgQVNOMV9FWFBfT1BUKEtNX0FVVEhfTElTVCwgcm9sbGJhY2tfcmVzaXN0YW50LCBBU04xX05VTEwsIFRBR19ST0xMQkFDS19SRVNJU1RBTlQubWFza2VkVGFnKCkpLAorICAgIEFTTjFfRVhQX09QVChLTV9BVVRIX0xJU1QsIHJvb3Rfb2ZfdHJ1c3QsIEtNX1JPT1RfT0ZfVFJVU1QsIFRBR19ST09UX09GX1RSVVNULm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBvc192ZXJzaW9uLCBBU04xX0lOVEVHRVIsIFRBR19PU19WRVJTSU9OLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBvc19wYXRjaGxldmVsLCBBU04xX0lOVEVHRVIsIFRBR19PU19QQVRDSExFVkVMLm1hc2tlZFRhZygpKSwKKyAgICBBU04xX0VYUF9PUFQoS01fQVVUSF9MSVNULCBhdHRlc3RhdGlvbl9hcHBsaWNhdGlvbl9pZCwgQVNOMV9PQ1RFVF9TVFJJTkcsCisgICAgICAgICAgICAgICAgIFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRC5tYXNrZWRUYWcoKSksCit9IEFTTjFfU0VRVUVOQ0VfRU5EKEtNX0FVVEhfTElTVCk7CitJTVBMRU1FTlRfQVNOMV9GVU5DVElPTlMoS01fQVVUSF9MSVNUKTsKKwordHlwZWRlZiBzdHJ1Y3Qga21fa2V5X2Rlc2NyaXB0aW9uIHsKKyAgICBBU04xX0lOVEVHRVIqIGF0dGVzdGF0aW9uX3ZlcnNpb247CisgICAgQVNOMV9FTlVNRVJBVEVEKiBhdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbDsKKyAgICBBU04xX0lOVEVHRVIqIGtleW1hc3Rlcl92ZXJzaW9uOworICAgIEFTTjFfRU5VTUVSQVRFRCoga2V5bWFzdGVyX3NlY3VyaXR5X2xldmVsOworICAgIEFTTjFfT0NURVRfU1RSSU5HKiBhdHRlc3RhdGlvbl9jaGFsbGVuZ2U7CisgICAgS01fQVVUSF9MSVNUKiBzb2Z0d2FyZV9lbmZvcmNlZDsKKyAgICBLTV9BVVRIX0xJU1QqIHRlZV9lbmZvcmNlZDsKKyAgICBBU04xX0lOVEVHRVIqIHVuaXF1ZV9pZDsKK30gS01fS0VZX0RFU0NSSVBUSU9OOworCitBU04xX1NFUVVFTkNFKEtNX0tFWV9ERVNDUklQVElPTikgPSB7CisgICAgQVNOMV9TSU1QTEUoS01fS0VZX0RFU0NSSVBUSU9OLCBhdHRlc3RhdGlvbl92ZXJzaW9uLCBBU04xX0lOVEVHRVIpLAorICAgIEFTTjFfU0lNUExFKEtNX0tFWV9ERVNDUklQVElPTiwgYXR0ZXN0YXRpb25fc2VjdXJpdHlfbGV2ZWwsIEFTTjFfRU5VTUVSQVRFRCksCisgICAgQVNOMV9TSU1QTEUoS01fS0VZX0RFU0NSSVBUSU9OLCBrZXltYXN0ZXJfdmVyc2lvbiwgQVNOMV9JTlRFR0VSKSwKKyAgICBBU04xX1NJTVBMRShLTV9LRVlfREVTQ1JJUFRJT04sIGtleW1hc3Rlcl9zZWN1cml0eV9sZXZlbCwgQVNOMV9FTlVNRVJBVEVEKSwKKyAgICBBU04xX1NJTVBMRShLTV9LRVlfREVTQ1JJUFRJT04sIGF0dGVzdGF0aW9uX2NoYWxsZW5nZSwgQVNOMV9PQ1RFVF9TVFJJTkcpLAorICAgIEFTTjFfU0lNUExFKEtNX0tFWV9ERVNDUklQVElPTiwgdW5pcXVlX2lkLCBBU04xX09DVEVUX1NUUklORyksCisgICAgQVNOMV9TSU1QTEUoS01fS0VZX0RFU0NSSVBUSU9OLCBzb2Z0d2FyZV9lbmZvcmNlZCwgS01fQVVUSF9MSVNUKSwKKyAgICBBU04xX1NJTVBMRShLTV9LRVlfREVTQ1JJUFRJT04sIHRlZV9lbmZvcmNlZCwgS01fQVVUSF9MSVNUKSwKK30gQVNOMV9TRVFVRU5DRV9FTkQoS01fS0VZX0RFU0NSSVBUSU9OKTsKK0lNUExFTUVOVF9BU04xX0ZVTkNUSU9OUyhLTV9LRVlfREVTQ1JJUFRJT04pOworCit0ZW1wbGF0ZSA8VGFnIHRhZz4KK3ZvaWQgY29weUF1dGhUYWcoY29uc3Qgc3RhY2tfc3RfQVNOMV9JTlRFR0VSKiBzdGFjaywgVHlwZWRUYWc8VGFnVHlwZTo6RU5VTV9SRVAsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBUeXBlZFRhZzJWYWx1ZVR5cGU8ZGVjbHR5cGUodHRhZyk+Ojp0eXBlIFZhbHVlVDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNrX0FTTjFfSU5URUdFUl9udW0oc3RhY2spOyArK2kpIHsKKyAgICAgICAgYXV0aF9saXN0LT5wdXNoX2JhY2soCisgICAgICAgICAgICB0dGFnLCBzdGF0aWNfY2FzdDxWYWx1ZVQ+KEFTTjFfSU5URUdFUl9nZXQoc2tfQVNOMV9JTlRFR0VSX3ZhbHVlKHN0YWNrLCBpKSkpKTsKKyAgICB9Cit9CisKK3RlbXBsYXRlIDxUYWcgdGFnPgordm9pZCBjb3B5QXV0aFRhZyhjb25zdCBBU04xX0lOVEVHRVIqIGFzbjFfaW50LCBUeXBlZFRhZzxUYWdUeXBlOjpFTlVNLCB0YWc+IHR0YWcsCisgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIGF1dGhfbGlzdCkgeworICAgIHR5cGVkZWYgdHlwZW5hbWUgVHlwZWRUYWcyVmFsdWVUeXBlPGRlY2x0eXBlKHR0YWcpPjo6dHlwZSBWYWx1ZVQ7CisgICAgaWYgKCFhc24xX2ludCkgcmV0dXJuOworICAgIGF1dGhfbGlzdC0+cHVzaF9iYWNrKHR0YWcsIHN0YXRpY19jYXN0PFZhbHVlVD4oQVNOMV9JTlRFR0VSX2dldChhc24xX2ludCkpKTsKK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfSU5URUdFUiogYXNuMV9pbnQsIFR5cGVkVGFnPFRhZ1R5cGU6OlVJTlQsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFhc24xX2ludCkgcmV0dXJuOworICAgIGF1dGhfbGlzdC0+cHVzaF9iYWNrKHR0YWcsIEFTTjFfSU5URUdFUl9nZXQoYXNuMV9pbnQpKTsKK30KKworQklHTlVNKiBjb25zdHJ1Y3RfdWludF9tYXgoKSB7CisgICAgQklHTlVNKiB2YWx1ZSA9IEJOX25ldygpOworICAgIEJJR05VTV9QdHIgb25lKEJOX25ldygpKTsKKyAgICBCTl9vbmUob25lLmdldCgpKTsKKyAgICBCTl9sc2hpZnQodmFsdWUsIG9uZS5nZXQoKSwgMzIpOworICAgIHJldHVybiB2YWx1ZTsKK30KKwordWludDY0X3QgQmlnbnVtVG9VaW50NjQoQklHTlVNKiBudW0pIHsKKyAgICBzdGF0aWNfYXNzZXJ0KChzaXplb2YoQk5fVUxPTkcpID09IHNpemVvZih1aW50MzJfdCkpIHx8IChzaXplb2YoQk5fVUxPTkcpID09IHNpemVvZih1aW50NjRfdCkpLAorICAgICAgICAgICAgICAgICAgIlRoaXMgaW1wbGVtZW50YXRpb24gb25seSBzdXBwb3J0cyAzMiBhbmQgNjQtYml0IEJOX1VMT05HIik7CisgICAgaWYgKHNpemVvZihCTl9VTE9ORykgPT0gc2l6ZW9mKHVpbnQzMl90KSkgeworICAgICAgICBCSUdOVU1fUHRyIHVpbnRfbWF4KGNvbnN0cnVjdF91aW50X21heCgpKTsKKyAgICAgICAgQklHTlVNX1B0ciBoaShCTl9uZXcoKSksIGxvKEJOX25ldygpKTsKKyAgICAgICAgQk5fQ1RYX1B0ciBjdHgoQk5fQ1RYX25ldygpKTsKKyAgICAgICAgQk5fZGl2KGhpLmdldCgpLCBsby5nZXQoKSwgbnVtLCB1aW50X21heC5nZXQoKSwgY3R4LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ2NF90PihCTl9nZXRfd29yZChoaS5nZXQoKSkpIDw8IDMyIHwgQk5fZ2V0X3dvcmQobG8uZ2V0KCkpOworICAgIH0gZWxzZSBpZiAoc2l6ZW9mKEJOX1VMT05HKSA9PSBzaXplb2YodWludDY0X3QpKSB7CisgICAgICAgIHJldHVybiBCTl9nZXRfd29yZChudW0pOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfSU5URUdFUiogYXNuMV9pbnQsIFR5cGVkVGFnPFRhZ1R5cGU6OlVMT05HLCB0YWc+IHR0YWcsCisgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIGF1dGhfbGlzdCkgeworICAgIGlmICghYXNuMV9pbnQpIHJldHVybjsKKyAgICBCSUdOVU1fUHRyIG51bShBU04xX0lOVEVHRVJfdG9fQk4oYXNuMV9pbnQsIG51bGxwdHIpKTsKKyAgICBhdXRoX2xpc3QtPnB1c2hfYmFjayh0dGFnLCBCaWdudW1Ub1VpbnQ2NChudW0uZ2V0KCkpKTsKK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfSU5URUdFUiogYXNuMV9pbnQsIFR5cGVkVGFnPFRhZ1R5cGU6OkRBVEUsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFhc24xX2ludCkgcmV0dXJuOworICAgIEJJR05VTV9QdHIgbnVtKEFTTjFfSU5URUdFUl90b19CTihhc24xX2ludCwgbnVsbHB0cikpOworICAgIGF1dGhfbGlzdC0+cHVzaF9iYWNrKHR0YWcsIEJpZ251bVRvVWludDY0KG51bS5nZXQoKSkpOworfQorCit0ZW1wbGF0ZSA8VGFnIHRhZz4KK3ZvaWQgY29weUF1dGhUYWcoY29uc3QgQVNOMV9OVUxMKiBhc24xX251bGwsIFR5cGVkVGFnPFRhZ1R5cGU6OkJPT0wsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFhc24xX251bGwpIHJldHVybjsKKyAgICBhdXRoX2xpc3QtPnB1c2hfYmFjayh0dGFnKTsKK30KKwordGVtcGxhdGUgPFRhZyB0YWc+Cit2b2lkIGNvcHlBdXRoVGFnKGNvbnN0IEFTTjFfT0NURVRfU1RSSU5HKiBhc24xX3N0cmluZywgVHlwZWRUYWc8VGFnVHlwZTo6QllURVMsIHRhZz4gdHRhZywKKyAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFhc24xX3N0cmluZykgcmV0dXJuOworICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGJ1ZjsKKyAgICBidWYuc2V0VG9FeHRlcm5hbChhc24xX3N0cmluZy0+ZGF0YSwgYXNuMV9zdHJpbmctPmxlbmd0aCk7CisgICAgYXV0aF9saXN0LT5wdXNoX2JhY2sodHRhZywgYnVmKTsKK30KKworLy8gRXh0cmFjdCB0aGUgdmFsdWVzIGZyb20gdGhlIHNwZWNpZmllZCBBU04uMSByZWNvcmQgYW5kIHBsYWNlIHRoZW0gaW4gYXV0aF9saXN0Lgorc3RhdGljIEVycm9yQ29kZSBleHRyYWN0X2F1dGhfbGlzdChjb25zdCBLTV9BVVRIX0xJU1QqIHJlY29yZCwgQXV0aG9yaXphdGlvblNldCogYXV0aF9saXN0KSB7CisgICAgaWYgKCFyZWNvcmQpIHJldHVybiBFcnJvckNvZGU6Ok9LOworCisgICAgY29weUF1dGhUYWcocmVjb3JkLT5hY3RpdmVfZGF0ZV90aW1lLCBUQUdfQUNUSVZFX0RBVEVUSU1FLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+YWxnb3JpdGhtLCBUQUdfQUxHT1JJVEhNLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+YWxsX2FwcGxpY2F0aW9ucywgVEFHX0FMTF9BUFBMSUNBVElPTlMsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5hcHBsaWNhdGlvbl9pZCwgVEFHX0FQUExJQ0FUSU9OX0lELCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+YXV0aF90aW1lb3V0LCBUQUdfQVVUSF9USU1FT1VULCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+Y3JlYXRpb25fZGF0ZV90aW1lLCBUQUdfQ1JFQVRJT05fREFURVRJTUUsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5kaWdlc3QsIFRBR19ESUdFU1QsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5lY19jdXJ2ZSwgVEFHX0VDX0NVUlZFLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+a2V5X3NpemUsIFRBR19LRVlfU0laRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPm5vX2F1dGhfcmVxdWlyZWQsIFRBR19OT19BVVRIX1JFUVVJUkVELCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+b3JpZ2luLCBUQUdfT1JJR0lOLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+b3JpZ2luYXRpb25fZXhwaXJlX2RhdGVfdGltZSwgVEFHX09SSUdJTkFUSU9OX0VYUElSRV9EQVRFVElNRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPm9zX3BhdGNobGV2ZWwsIFRBR19PU19QQVRDSExFVkVMLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+b3NfdmVyc2lvbiwgVEFHX09TX1ZFUlNJT04sIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT5wYWRkaW5nLCBUQUdfUEFERElORywgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPnB1cnBvc2UsIFRBR19QVVJQT1NFLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+cm9sbGJhY2tfcmVzaXN0YW50LCBUQUdfUk9MTEJBQ0tfUkVTSVNUQU5ULCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+cnNhX3B1YmxpY19leHBvbmVudCwgVEFHX1JTQV9QVUJMSUNfRVhQT05FTlQsIGF1dGhfbGlzdCk7CisgICAgY29weUF1dGhUYWcocmVjb3JkLT51c2FnZV9leHBpcmVfZGF0ZV90aW1lLCBUQUdfVVNBR0VfRVhQSVJFX0RBVEVUSU1FLCBhdXRoX2xpc3QpOworICAgIGNvcHlBdXRoVGFnKHJlY29yZC0+dXNlcl9hdXRoX3R5cGUsIFRBR19VU0VSX0FVVEhfVFlQRSwgYXV0aF9saXN0KTsKKyAgICBjb3B5QXV0aFRhZyhyZWNvcmQtPmF0dGVzdGF0aW9uX2FwcGxpY2F0aW9uX2lkLAorICAgICAgICAgICAgICAgIFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwgYXV0aF9saXN0KTsKKworICAgIHJldHVybiBFcnJvckNvZGU6Ok9LOworfQorCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoS01fS0VZX0RFU0NSSVBUSU9OKQorCisvLyBQYXJzZSB0aGUgREVSLWVuY29kZWQgYXR0ZXN0YXRpb24gcmVjb3JkLCBwbGFjaW5nIHRoZSByZXN1bHRzIGluIGtleW1hc3Rlcl92ZXJzaW9uLAorLy8gYXR0ZXN0YXRpb25fY2hhbGxlbmdlLCBzb2Z0d2FyZV9lbmZvcmNlZCwgdGVlX2VuZm9yY2VkIGFuZCB1bmlxdWVfaWQuCitFcnJvckNvZGUgcGFyc2VfYXR0ZXN0YXRpb25fcmVjb3JkKGNvbnN0IHVpbnQ4X3QqIGFzbjFfa2V5X2Rlc2MsIHNpemVfdCBhc24xX2tleV9kZXNjX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGF0dGVzdGF0aW9uX3ZlcnNpb24sICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eUxldmVsKiBhdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGtleW1hc3Rlcl92ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eUxldmVsKiBrZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+KiBhdHRlc3RhdGlvbl9jaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIHNvZnR3YXJlX2VuZm9yY2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiB0ZWVfZW5mb3JjZWQsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiogdW5pcXVlX2lkKSB7CisgICAgY29uc3QgdWludDhfdCogcCA9IGFzbjFfa2V5X2Rlc2M7CisgICAgS01fS0VZX0RFU0NSSVBUSU9OX1B0ciByZWNvcmQoZDJpX0tNX0tFWV9ERVNDUklQVElPTihudWxscHRyLCAmcCwgYXNuMV9rZXlfZGVzY19sZW4pKTsKKyAgICBpZiAoIXJlY29yZC5nZXQoKSkgcmV0dXJuIEVycm9yQ29kZTo6VU5LTk9XTl9FUlJPUjsKKworICAgICphdHRlc3RhdGlvbl92ZXJzaW9uID0gQVNOMV9JTlRFR0VSX2dldChyZWNvcmQtPmF0dGVzdGF0aW9uX3ZlcnNpb24pOworICAgICphdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCA9CisgICAgICAgIHN0YXRpY19jYXN0PFNlY3VyaXR5TGV2ZWw+KEFTTjFfRU5VTUVSQVRFRF9nZXQocmVjb3JkLT5hdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCkpOworICAgICprZXltYXN0ZXJfdmVyc2lvbiA9IEFTTjFfSU5URUdFUl9nZXQocmVjb3JkLT5rZXltYXN0ZXJfdmVyc2lvbik7CisgICAgKmtleW1hc3Rlcl9zZWN1cml0eV9sZXZlbCA9CisgICAgICAgIHN0YXRpY19jYXN0PFNlY3VyaXR5TGV2ZWw+KEFTTjFfRU5VTUVSQVRFRF9nZXQocmVjb3JkLT5rZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwpKTsKKworICAgIGF0dGVzdGF0aW9uX2NoYWxsZW5nZS0+c2V0VG9FeHRlcm5hbChyZWNvcmQtPmF0dGVzdGF0aW9uX2NoYWxsZW5nZS0+ZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLT5hdHRlc3RhdGlvbl9jaGFsbGVuZ2UtPmxlbmd0aCk7CisKKyAgICB1bmlxdWVfaWQtPnNldFRvRXh0ZXJuYWwocmVjb3JkLT51bmlxdWVfaWQtPmRhdGEsIHJlY29yZC0+dW5pcXVlX2lkLT5sZW5ndGgpOworCisgICAgRXJyb3JDb2RlIGVycm9yID0gZXh0cmFjdF9hdXRoX2xpc3QocmVjb3JkLT5zb2Z0d2FyZV9lbmZvcmNlZCwgc29mdHdhcmVfZW5mb3JjZWQpOworICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSByZXR1cm4gZXJyb3I7CisKKyAgICByZXR1cm4gZXh0cmFjdF9hdXRoX2xpc3QocmVjb3JkLT50ZWVfZW5mb3JjZWQsIHRlZV9lbmZvcmNlZCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWM18wCit9ICAvLyBuYW1lc3BhY2Uga2V5bWFzdGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F0dGVzdGF0aW9uX3JlY29yZC5oIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdHRlc3RhdGlvbl9yZWNvcmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDQyMDU1Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9hdHRlc3RhdGlvbl9yZWNvcmQuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEhBUkRXQVJFX0lOVEVSRkFDRVNfS0VZTUFTVEVSXzMwX1ZUU19GVU5DVElPTkFMX0FUVEVTVEFUSU9OX1JFQ09SRF9IXworI2RlZmluZSBIQVJEV0FSRV9JTlRFUkZBQ0VTX0tFWU1BU1RFUl8zMF9WVFNfRlVOQ1RJT05BTF9BVFRFU1RBVElPTl9SRUNPUkRfSF8KKworI2luY2x1ZGUgImF1dGhvcml6YXRpb25fc2V0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKworLyoqCisgKiBUaGUgT0lEIGZvciBBbmRyb2lkIGF0dGVzdGF0aW9uIHJlY29yZHMuICBGb3IgdGhlIGN1cmlvdXMsIGl0IGJyZWFrcyBkb3duIGFzIGZvbGxvd3M6CisgKgorICogMSA9IElTTworICogMyA9IG9yZworICogNiA9IERvRCAoSHVoPyBPSURzIGFyZSB3ZWlyZC4pCisgKiAxID0gSUFOQQorICogNCA9IFByaXZhdGUKKyAqIDEgPSBFbnRlcnByaXNlcworICogMTExMjkgPSBHb29nbGUKKyAqIDIgPSBHb29nbGUgc2VjdXJpdHkKKyAqIDEgPSBjZXJ0aWZpY2F0ZSBleHRlbnNpb24KKyAqIDE3ID0gQW5kcm9pZCBhdHRlc3RhdGlvbiBleHRlbnNpb24uCisgKi8KK3N0YXRpYyBjb25zdCBjaGFyIGtBdHRlc3Rpb25SZWNvcmRPaWRbXSA9ICIxLjMuNi4xLjQuMS4xMTEyOS4yLjEuMTciOworCitFcnJvckNvZGUgcGFyc2VfYXR0ZXN0YXRpb25fcmVjb3JkKGNvbnN0IHVpbnQ4X3QqIGFzbjFfa2V5X2Rlc2MsIHNpemVfdCBhc24xX2tleV9kZXNjX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGF0dGVzdGF0aW9uX3ZlcnNpb24sICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eUxldmVsKiBhdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QqIGtleW1hc3Rlcl92ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWN1cml0eUxldmVsKiBrZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+KiBhdHRlc3RhdGlvbl9jaGFsbGVuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIHNvZnR3YXJlX2VuZm9yY2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiB0ZWVfZW5mb3JjZWQsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzx1aW50OF90PiogdW5pcXVlX2lkKTsKK30gIC8vIG5hbWVzcGFjZSBWM18wCit9ICAvLyBuYW1lc3BhY2Uga2V5bWFzdGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gSEFSRFdBUkVfSU5URVJGQUNFU19LRVlNQVNURVJfMzBfVlRTX0ZVTkNUSU9OQUxfQVRURVNUQVRJT05fUkVDT1JEX0hfCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmNwcCBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXV0aG9yaXphdGlvbl9zZXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwM2Y3ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmNwcApAQCAtMCwwICsxLDQyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJhdXRob3JpemF0aW9uX3NldC5oIgorCisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSA8aXN0cmVhbT4KKyNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8b3N0cmVhbT4KKyNpbmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKworI2luY2x1ZGUgPG5ldz4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCitpbmxpbmUgYm9vbCBrZXlQYXJhbUxlc3MoY29uc3QgS2V5UGFyYW1ldGVyJiBhLCBjb25zdCBLZXlQYXJhbWV0ZXImIGIpIHsKKyAgICBpZiAoYS50YWcgIT0gYi50YWcpIHJldHVybiBhLnRhZyA8IGIudGFnOworICAgIGludCByZXR2YWw7CisgICAgc3dpdGNoICh0eXBlRnJvbVRhZyhhLnRhZykpIHsKKyAgICBjYXNlIFRhZ1R5cGU6OklOVkFMSUQ6CisgICAgY2FzZSBUYWdUeXBlOjpCT09MOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBUYWdUeXBlOjpFTlVNOgorICAgIGNhc2UgVGFnVHlwZTo6RU5VTV9SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpVSU5UOgorICAgIGNhc2UgVGFnVHlwZTo6VUlOVF9SRVA6CisgICAgICAgIHJldHVybiBhLmYuaW50ZWdlciA8IGIuZi5pbnRlZ2VyOworICAgIGNhc2UgVGFnVHlwZTo6VUxPTkc6CisgICAgY2FzZSBUYWdUeXBlOjpVTE9OR19SRVA6CisgICAgICAgIHJldHVybiBhLmYubG9uZ0ludGVnZXIgPCBiLmYubG9uZ0ludGVnZXI7CisgICAgY2FzZSBUYWdUeXBlOjpEQVRFOgorICAgICAgICByZXR1cm4gYS5mLmRhdGVUaW1lIDwgYi5mLmRhdGVUaW1lOworICAgIGNhc2UgVGFnVHlwZTo6QklHTlVNOgorICAgIGNhc2UgVGFnVHlwZTo6QllURVM6CisgICAgICAgIC8vIEhhbmRsZSB0aGUgZW1wdHkgY2FzZXMuCisgICAgICAgIGlmIChhLmJsb2Iuc2l6ZSgpID09IDApIHJldHVybiBiLmJsb2Iuc2l6ZSgpICE9IDA7CisgICAgICAgIGlmIChiLmJsb2Iuc2l6ZSgpID09IDApIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXR2YWwgPSBtZW1jbXAoJmEuYmxvYlswXSwgJmIuYmxvYlswXSwgc3RkOjptaW4oYS5ibG9iLnNpemUoKSwgYi5ibG9iLnNpemUoKSkpOworICAgICAgICBpZiAocmV0dmFsID09IDApIHsKKyAgICAgICAgICAgIC8vIE9uZSBpcyB0aGUgcHJlZml4IG9mIHRoZSBvdGhlciwgc28gdGhlIGxvbmdlciB3aW5zCisgICAgICAgICAgICByZXR1cm4gYS5ibG9iLnNpemUoKSA8IGIuYmxvYi5zaXplKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gcmV0dmFsIDwgMDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2lubGluZSBib29sIGtleVBhcmFtRXF1YWwoY29uc3QgS2V5UGFyYW1ldGVyJiBhLCBjb25zdCBLZXlQYXJhbWV0ZXImIGIpIHsKKyAgICBpZiAoYS50YWcgIT0gYi50YWcpIHJldHVybiBmYWxzZTsKKworICAgIHN3aXRjaCAodHlwZUZyb21UYWcoYS50YWcpKSB7CisgICAgY2FzZSBUYWdUeXBlOjpJTlZBTElEOgorICAgIGNhc2UgVGFnVHlwZTo6Qk9PTDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBUYWdUeXBlOjpFTlVNOgorICAgIGNhc2UgVGFnVHlwZTo6RU5VTV9SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpVSU5UOgorICAgIGNhc2UgVGFnVHlwZTo6VUlOVF9SRVA6CisgICAgICAgIHJldHVybiBhLmYuaW50ZWdlciA9PSBiLmYuaW50ZWdlcjsKKyAgICBjYXNlIFRhZ1R5cGU6OlVMT05HOgorICAgIGNhc2UgVGFnVHlwZTo6VUxPTkdfUkVQOgorICAgICAgICByZXR1cm4gYS5mLmxvbmdJbnRlZ2VyID09IGIuZi5sb25nSW50ZWdlcjsKKyAgICBjYXNlIFRhZ1R5cGU6OkRBVEU6CisgICAgICAgIHJldHVybiBhLmYuZGF0ZVRpbWUgPT0gYi5mLmRhdGVUaW1lOworICAgIGNhc2UgVGFnVHlwZTo6QklHTlVNOgorICAgIGNhc2UgVGFnVHlwZTo6QllURVM6CisgICAgICAgIGlmIChhLmJsb2Iuc2l6ZSgpICE9IGIuYmxvYi5zaXplKCkpIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIGEuYmxvYi5zaXplKCkgPT0gMCB8fCBtZW1jbXAoJmEuYmxvYlswXSwgJmIuYmxvYlswXSwgYS5ibG9iLnNpemUoKSkgPT0gMDsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OlNvcnQoKSB7CisgICAgc3RkOjpzb3J0KGRhdGFfLmJlZ2luKCksIGRhdGFfLmVuZCgpLCBrZXlQYXJhbUxlc3MpOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OkRlZHVwbGljYXRlKCkgeworICAgIGlmIChkYXRhXy5lbXB0eSgpKSByZXR1cm47CisKKyAgICBTb3J0KCk7CisgICAgc3RkOjp2ZWN0b3I8S2V5UGFyYW1ldGVyPiByZXN1bHQ7CisKKyAgICBhdXRvIGN1cnIgPSBkYXRhXy5iZWdpbigpOworICAgIGF1dG8gcHJldiA9IGN1cnIrKzsKKyAgICBmb3IgKDsgY3VyciAhPSBkYXRhXy5lbmQoKTsgKytwcmV2LCArK2N1cnIpIHsKKyAgICAgICAgaWYgKHByZXYtPnRhZyA9PSBUYWc6OklOVkFMSUQpIGNvbnRpbnVlOworCisgICAgICAgIGlmICgha2V5UGFyYW1FcXVhbCgqcHJldiwgKmN1cnIpKSB7CisgICAgICAgICAgICByZXN1bHQuZW1wbGFjZV9iYWNrKHN0ZDo6bW92ZSgqcHJldikpOworICAgICAgICB9CisgICAgfQorICAgIHJlc3VsdC5lbXBsYWNlX2JhY2soc3RkOjptb3ZlKCpwcmV2KSk7CisKKyAgICBzdGQ6OnN3YXAoZGF0YV8sIHJlc3VsdCk7Cit9CisKK3ZvaWQgQXV0aG9yaXphdGlvblNldDo6VW5pb24oY29uc3QgQXV0aG9yaXphdGlvblNldCYgb3RoZXIpIHsKKyAgICBkYXRhXy5pbnNlcnQoZGF0YV8uZW5kKCksIG90aGVyLmRhdGFfLmJlZ2luKCksIG90aGVyLmRhdGFfLmVuZCgpKTsKKyAgICBEZWR1cGxpY2F0ZSgpOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OlN1YnRyYWN0KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIG90aGVyKSB7CisgICAgRGVkdXBsaWNhdGUoKTsKKworICAgIGF1dG8gaSA9IG90aGVyLmJlZ2luKCk7CisgICAgd2hpbGUgKGkgIT0gb3RoZXIuZW5kKCkpIHsKKyAgICAgICAgaW50IHBvcyA9IC0xOworICAgICAgICBkbyB7CisgICAgICAgICAgICBwb3MgPSBmaW5kKGktPnRhZywgcG9zKTsKKyAgICAgICAgICAgIGlmIChwb3MgIT0gLTEgJiYga2V5UGFyYW1FcXVhbCgqaSwgZGF0YV9bcG9zXSkpIHsKKyAgICAgICAgICAgICAgICBkYXRhXy5lcmFzZShkYXRhXy5iZWdpbigpICsgcG9zKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSB3aGlsZSAocG9zICE9IC0xKTsKKyAgICAgICAgKytpOworICAgIH0KK30KKworaW50IEF1dGhvcml6YXRpb25TZXQ6OmZpbmQoVGFnIHRhZywgaW50IGJlZ2luKSBjb25zdCB7CisgICAgYXV0byBpdGVyID0gZGF0YV8uYmVnaW4oKSArICgxICsgYmVnaW4pOworCisgICAgd2hpbGUgKGl0ZXIgIT0gZGF0YV8uZW5kKCkgJiYgaXRlci0+dGFnICE9IHRhZykKKyAgICAgICAgKytpdGVyOworCisgICAgaWYgKGl0ZXIgIT0gZGF0YV8uZW5kKCkpIHJldHVybiBpdGVyIC0gZGF0YV8uYmVnaW4oKTsKKyAgICByZXR1cm4gLTE7Cit9CisKK2Jvb2wgQXV0aG9yaXphdGlvblNldDo6ZXJhc2UoaW50IGluZGV4KSB7CisgICAgYXV0byBwb3MgPSBkYXRhXy5iZWdpbigpICsgaW5kZXg7CisgICAgaWYgKHBvcyAhPSBkYXRhXy5lbmQoKSkgeworICAgICAgICBkYXRhXy5lcmFzZShwb3MpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitLZXlQYXJhbWV0ZXImIEF1dGhvcml6YXRpb25TZXQ6Om9wZXJhdG9yW10oaW50IGF0KSB7CisgICAgcmV0dXJuIGRhdGFfW2F0XTsKK30KKworY29uc3QgS2V5UGFyYW1ldGVyJiBBdXRob3JpemF0aW9uU2V0OjpvcGVyYXRvcltdKGludCBhdCkgY29uc3QgeworICAgIHJldHVybiBkYXRhX1thdF07Cit9CisKK3ZvaWQgQXV0aG9yaXphdGlvblNldDo6Q2xlYXIoKSB7CisgICAgZGF0YV8uY2xlYXIoKTsKK30KKworc2l6ZV90IEF1dGhvcml6YXRpb25TZXQ6OkdldFRhZ0NvdW50KFRhZyB0YWcpIGNvbnN0IHsKKyAgICBzaXplX3QgY291bnQgPSAwOworICAgIGZvciAoaW50IHBvcyA9IC0xOyAocG9zID0gZmluZCh0YWcsIHBvcykpICE9IC0xOykKKyAgICAgICAgKytjb3VudDsKKyAgICByZXR1cm4gY291bnQ7Cit9CisKK051bGxPcjxjb25zdCBLZXlQYXJhbWV0ZXImPiBBdXRob3JpemF0aW9uU2V0OjpHZXRFbnRyeShUYWcgdGFnKSBjb25zdCB7CisgICAgaW50IHBvcyA9IGZpbmQodGFnKTsKKyAgICBpZiAocG9zID09IC0xKSByZXR1cm4ge307CisgICAgcmV0dXJuIGRhdGFfW3Bvc107Cit9CisKKy8qKgorICogUGVyc2lzdGVudCBmb3JtYXQgaXM6CisgKiB8IDMyIGJpdCBpbmRpcmVjdF9zaXplICAgICAgICAgfAorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgaW5kaXJlY3Rfc2l6ZSBieXRlcyBvZiBkYXRhICB8IHRoaXMgaXMgd2hlcmUgdGhlIGJsb2IgZGF0YSBpcyBzdG9yZWQKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiB8IDMyIGJpdCBlbGVtZW50X2NvdW50ICAgICAgICAgfCBudW1iZXIgb2YgZW50cmllcworICogfCAzMiBiaXQgZWxlbWVudHNfc2l6ZSAgICAgICAgIHwgdG90YWwgYnl0ZXMgdXNlZCBieSBlbnRyaWVzIChlbnRyaWVzIGhhdmUgdmFyaWFibGUgbGVuZ3RoKQorICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIHwgZWxlbWVudGVzX3NpemUgYnl0ZXMgb2YgZGF0YSB8IHdoZXJlIHRoZSBlbGVtZW50cyBhcmUgc3RvcmVkCisgKi8KKworLyoqCisgKiBQZXJzaXN0ZW50IGZvcm1hdCBvZiBibG9icyBhbmQgYmlnbnVtczoKKyAqIHwgMzIgYml0IHRhZyAgICAgICAgICAgICB8CisgKiB8IDMyIGJpdCBibG9iX2xlbmd0aCAgICAgfAorICogfCAzMiBiaXQgaW5kaXJlY3Rfb2Zmc2V0IHwKKyAqLworCitzdHJ1Y3QgT3V0U3RyZWFtcyB7CisgICAgc3RkOjpvc3RyZWFtJiBpbmRpcmVjdDsKKyAgICBzdGQ6Om9zdHJlYW0mIGVsZW1lbnRzOworfTsKKworT3V0U3RyZWFtcyYgc2VyaWFsaXplUGFyYW1WYWx1ZShPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IGhpZGxfdmVjPHVpbnQ4X3Q+JiBibG9iKSB7CisgICAgdWludDMyX3QgYnVmZmVyOworCisgICAgLy8gd3JpdGUgYmxvYl9sZW5ndGgKKyAgICBhdXRvIGJsb2JfbGVuZ3RoID0gYmxvYi5zaXplKCk7CisgICAgaWYgKGJsb2JfbGVuZ3RoID4gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKSB7CisgICAgICAgIG91dC5lbGVtZW50cy5zZXRzdGF0ZShzdGQ6Omlvc19iYXNlOjpiYWRiaXQpOworICAgICAgICByZXR1cm4gb3V0OworICAgIH0KKyAgICBidWZmZXIgPSBibG9iX2xlbmd0aDsKKyAgICBvdXQuZWxlbWVudHMud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmJ1ZmZlciksIHNpemVvZih1aW50MzJfdCkpOworCisgICAgLy8gd3JpdGUgaW5kaXJlY3Rfb2Zmc2V0CisgICAgYXV0byBvZmZzZXQgPSBvdXQuaW5kaXJlY3QudGVsbHAoKTsKKyAgICBpZiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkgfHwKKyAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KChzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkgLSBvZmZzZXQpKSA8CisgICAgICAgICAgICBibG9iX2xlbmd0aCkgeyAgLy8gb3ZlcmZsb3cgY2hlY2sKKyAgICAgICAgb3V0LmVsZW1lbnRzLnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIGJ1ZmZlciA9IG9mZnNldDsKKyAgICBvdXQuZWxlbWVudHMud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmJ1ZmZlciksIHNpemVvZih1aW50MzJfdCkpOworCisgICAgLy8gd3JpdGUgYmxvYiB0byBpbmRpcmVjdCBzdHJlYW0KKyAgICBpZiAoYmxvYl9sZW5ndGgpIG91dC5pbmRpcmVjdC53cml0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPigmYmxvYlswXSksIGJsb2JfbGVuZ3RoKTsKKworICAgIHJldHVybiBvdXQ7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBPdXRTdHJlYW1zJiBzZXJpYWxpemVQYXJhbVZhbHVlKE91dFN0cmVhbXMmIG91dCwgY29uc3QgVCYgdmFsdWUpIHsKKyAgICBvdXQuZWxlbWVudHMud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJnZhbHVlKSwgc2l6ZW9mKFQpKTsKKyAgICByZXR1cm4gb3V0OworfQorCitPdXRTdHJlYW1zJiBzZXJpYWxpemUoVEFHX0lOVkFMSURfdCYmLCBPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IEtleVBhcmFtZXRlciYpIHsKKyAgICAvLyBza2lwIGludmFsaWQgZW50cmllcy4KKyAgICByZXR1cm4gb3V0OworfQordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IE91dFN0cmVhbXMmIHNlcmlhbGl6ZShUIHR0YWcsIE91dFN0cmVhbXMmIG91dCwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgIG91dC5lbGVtZW50cy53cml0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPigmcGFyYW0udGFnKSwgc2l6ZW9mKGludDMyX3QpKTsKKyAgICByZXR1cm4gc2VyaWFsaXplUGFyYW1WYWx1ZShvdXQsIGFjY2Vzc1RhZ1ZhbHVlKHR0YWcsIHBhcmFtKSk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPiBzdHJ1Y3QgY2hvb3NlX3NlcmlhbGl6ZXI7Cit0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVGFncz4gc3RydWN0IGNob29zZV9zZXJpYWxpemVyPE1ldGFMaXN0PFRhZ3MuLi4+PiB7CisgICAgc3RhdGljIE91dFN0cmVhbXMmIHNlcmlhbGl6ZShPdXRTdHJlYW1zJiBvdXQsIGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICAgICAgcmV0dXJuIGNob29zZV9zZXJpYWxpemVyPFRhZ3MuLi4+OjpzZXJpYWxpemUob3V0LCBwYXJhbSk7CisgICAgfQorfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBjaG9vc2Vfc2VyaWFsaXplcjw+IHsKKyAgICBzdGF0aWMgT3V0U3RyZWFtcyYgc2VyaWFsaXplKE91dFN0cmVhbXMmIG91dCwgY29uc3QgS2V5UGFyYW1ldGVyJikgeyByZXR1cm4gb3V0OyB9Cit9OwordGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lLi4uIFRhaWw+CitzdHJ1Y3QgY2hvb3NlX3NlcmlhbGl6ZXI8VHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4sIFRhaWwuLi4+IHsKKyAgICBzdGF0aWMgT3V0U3RyZWFtcyYgc2VyaWFsaXplKE91dFN0cmVhbXMmIG91dCwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgICAgICBpZiAocGFyYW0udGFnID09IHRhZykgeworICAgICAgICAgICAgcmV0dXJuIFYzXzA6OnNlcmlhbGl6ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPigpLCBvdXQsIHBhcmFtKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHVybiBjaG9vc2Vfc2VyaWFsaXplcjxUYWlsLi4uPjo6c2VyaWFsaXplKG91dCwgcGFyYW0pOworICAgICAgICB9CisgICAgfQorfTsKKworT3V0U3RyZWFtcyYgc2VyaWFsaXplKE91dFN0cmVhbXMmIG91dCwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgIHJldHVybiBjaG9vc2Vfc2VyaWFsaXplcjxhbGxfdGFnc190Pjo6c2VyaWFsaXplKG91dCwgcGFyYW0pOworfQorCitzdGQ6Om9zdHJlYW0mIHNlcmlhbGl6ZShzdGQ6Om9zdHJlYW0mIG91dCwgY29uc3Qgc3RkOjp2ZWN0b3I8S2V5UGFyYW1ldGVyPiYgcGFyYW1zKSB7CisgICAgc3RkOjpzdHJpbmdzdHJlYW0gaW5kaXJlY3Q7CisgICAgc3RkOjpzdHJpbmdzdHJlYW0gZWxlbWVudHM7CisgICAgT3V0U3RyZWFtcyBzdHJlYW1zID0ge2luZGlyZWN0LCBlbGVtZW50c307CisgICAgZm9yIChjb25zdCBhdXRvJiBwYXJhbSA6IHBhcmFtcykgeworICAgICAgICBzZXJpYWxpemUoc3RyZWFtcywgcGFyYW0pOworICAgIH0KKyAgICBpZiAoaW5kaXJlY3QuYmFkKCkgfHwgZWxlbWVudHMuYmFkKCkpIHsKKyAgICAgICAgb3V0LnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIGF1dG8gcG9zID0gaW5kaXJlY3QudGVsbHAoKTsKKyAgICBpZiAocG9zIDwgMCB8fCBwb3MgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIHsKKyAgICAgICAgb3V0LnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIHVpbnQzMl90IGluZGlyZWN0X3NpemUgPSBwb3M7CisgICAgcG9zID0gZWxlbWVudHMudGVsbHAoKTsKKyAgICBpZiAocG9zIDwgMCB8fCBwb3MgPiBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpIHsKKyAgICAgICAgb3V0LnNldHN0YXRlKHN0ZDo6aW9zX2Jhc2U6OmJhZGJpdCk7CisgICAgICAgIHJldHVybiBvdXQ7CisgICAgfQorICAgIHVpbnQzMl90IGVsZW1lbnRzX3NpemUgPSBwb3M7CisgICAgdWludDMyX3QgZWxlbWVudF9jb3VudCA9IHBhcmFtcy5zaXplKCk7CisKKyAgICBvdXQud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmluZGlyZWN0X3NpemUpLCBzaXplb2YodWludDMyX3QpKTsKKworICAgIHBvcyA9IG91dC50ZWxscCgpOworICAgIGlmIChpbmRpcmVjdF9zaXplKSBvdXQgPDwgaW5kaXJlY3QucmRidWYoKTsKKyAgICBhc3NlcnQob3V0LnRlbGxwKCkgLSBwb3MgPT0gaW5kaXJlY3Rfc2l6ZSk7CisKKyAgICBvdXQud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmVsZW1lbnRfY291bnQpLCBzaXplb2YodWludDMyX3QpKTsKKyAgICBvdXQud3JpdGUocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oJmVsZW1lbnRzX3NpemUpLCBzaXplb2YodWludDMyX3QpKTsKKworICAgIHBvcyA9IG91dC50ZWxscCgpOworICAgIGlmIChlbGVtZW50c19zaXplKSBvdXQgPDwgZWxlbWVudHMucmRidWYoKTsKKyAgICBhc3NlcnQob3V0LnRlbGxwKCkgLSBwb3MgPT0gZWxlbWVudHNfc2l6ZSk7CisKKyAgICByZXR1cm4gb3V0OworfQorCitzdHJ1Y3QgSW5TdHJlYW1zIHsKKyAgICBzdGQ6OmlzdHJlYW0mIGluZGlyZWN0OworICAgIHN0ZDo6aXN0cmVhbSYgZWxlbWVudHM7Cit9OworCitJblN0cmVhbXMmIGRlc2VyaWFsaXplUGFyYW1WYWx1ZShJblN0cmVhbXMmIGluLCBoaWRsX3ZlYzx1aW50OF90PiogYmxvYikgeworICAgIHVpbnQzMl90IGJsb2JfbGVuZ3RoID0gMDsKKyAgICB1aW50MzJfdCBvZmZzZXQgPSAwOworICAgIGluLmVsZW1lbnRzLnJlYWQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJmJsb2JfbGVuZ3RoKSwgc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgYmxvYi0+cmVzaXplKGJsb2JfbGVuZ3RoKTsKKyAgICBpbi5lbGVtZW50cy5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZvZmZzZXQpLCBzaXplb2YodWludDMyX3QpKTsKKyAgICBpbi5pbmRpcmVjdC5zZWVrZyhvZmZzZXQpOworICAgIGluLmluZGlyZWN0LnJlYWQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJigqYmxvYilbMF0pLCBibG9iLT5zaXplKCkpOworICAgIHJldHVybiBpbjsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IEluU3RyZWFtcyYgZGVzZXJpYWxpemVQYXJhbVZhbHVlKEluU3RyZWFtcyYgaW4sIFQqIHZhbHVlKSB7CisgICAgaW4uZWxlbWVudHMucmVhZChyZWludGVycHJldF9jYXN0PGNoYXIqPih2YWx1ZSksIHNpemVvZihUKSk7CisgICAgcmV0dXJuIGluOworfQorCitJblN0cmVhbXMmIGRlc2VyaWFsaXplKFRBR19JTlZBTElEX3QmJiwgSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKikgeworICAgIC8vIHRoZXJlIHNob3VsZCBiZSBubyBpbnZhbGlkIEtleVBhcmFtYXRlcnMgYnV0IGlmIGhhbmRsZSB0aGVtIGFzIHplcm8gc2l6ZWQuCisgICAgcmV0dXJuIGluOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gSW5TdHJlYW1zJiBkZXNlcmlhbGl6ZShUJiYgdHRhZywgSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKiBwYXJhbSkgeworICAgIHJldHVybiBkZXNlcmlhbGl6ZVBhcmFtVmFsdWUoaW4sICZhY2Nlc3NUYWdWYWx1ZSh0dGFnLCAqcGFyYW0pKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFQ+IHN0cnVjdCBjaG9vc2VfZGVzZXJpYWxpemVyOwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFRhZ3M+IHN0cnVjdCBjaG9vc2VfZGVzZXJpYWxpemVyPE1ldGFMaXN0PFRhZ3MuLi4+PiB7CisgICAgc3RhdGljIEluU3RyZWFtcyYgZGVzZXJpYWxpemUoSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKiBwYXJhbSkgeworICAgICAgICByZXR1cm4gY2hvb3NlX2Rlc2VyaWFsaXplcjxUYWdzLi4uPjo6ZGVzZXJpYWxpemUoaW4sIHBhcmFtKTsKKyAgICB9Cit9OwordGVtcGxhdGUgPD4gc3RydWN0IGNob29zZV9kZXNlcmlhbGl6ZXI8PiB7CisgICAgc3RhdGljIEluU3RyZWFtcyYgZGVzZXJpYWxpemUoSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKikgeworICAgICAgICAvLyBlbmNvdW50ZXJlZCBhbiB1bmtub3duIHRhZyAtPiBmYWlsIHBhcnNpbmcKKyAgICAgICAgaW4uZWxlbWVudHMuc2V0c3RhdGUoc3RkOjppb3NfYmFzZTo6YmFkYml0KTsKKyAgICAgICAgcmV0dXJuIGluOworICAgIH0KK307Cit0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUuLi4gVGFpbD4KK3N0cnVjdCBjaG9vc2VfZGVzZXJpYWxpemVyPFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+LCBUYWlsLi4uPiB7CisgICAgc3RhdGljIEluU3RyZWFtcyYgZGVzZXJpYWxpemUoSW5TdHJlYW1zJiBpbiwgS2V5UGFyYW1ldGVyKiBwYXJhbSkgeworICAgICAgICBpZiAocGFyYW0tPnRhZyA9PSB0YWcpIHsKKyAgICAgICAgICAgIHJldHVybiBWM18wOjpkZXNlcmlhbGl6ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPigpLCBpbiwgcGFyYW0pOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGNob29zZV9kZXNlcmlhbGl6ZXI8VGFpbC4uLj46OmRlc2VyaWFsaXplKGluLCBwYXJhbSk7CisgICAgICAgIH0KKyAgICB9Cit9OworCitJblN0cmVhbXMmIGRlc2VyaWFsaXplKEluU3RyZWFtcyYgaW4sIEtleVBhcmFtZXRlciogcGFyYW0pIHsKKyAgICBpbi5lbGVtZW50cy5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZwYXJhbS0+dGFnKSwgc2l6ZW9mKFRhZykpOworICAgIHJldHVybiBjaG9vc2VfZGVzZXJpYWxpemVyPGFsbF90YWdzX3Q+OjpkZXNlcmlhbGl6ZShpbiwgcGFyYW0pOworfQorCitzdGQ6OmlzdHJlYW0mIGRlc2VyaWFsaXplKHN0ZDo6aXN0cmVhbSYgaW4sIHN0ZDo6dmVjdG9yPEtleVBhcmFtZXRlcj4qIHBhcmFtcykgeworICAgIHVpbnQzMl90IGluZGlyZWN0X3NpemUgPSAwOworICAgIGluLnJlYWQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJmluZGlyZWN0X3NpemUpLCBzaXplb2YodWludDMyX3QpKTsKKyAgICBzdGQ6OnN0cmluZyBpbmRpcmVjdF9idWZmZXIoaW5kaXJlY3Rfc2l6ZSwgJ1wwJyk7CisgICAgaWYgKGluZGlyZWN0X2J1ZmZlci5zaXplKCkgIT0gaW5kaXJlY3Rfc2l6ZSkgeworICAgICAgICBpbi5zZXRzdGF0ZShzdGQ6Omlvc19iYXNlOjpiYWRiaXQpOworICAgICAgICByZXR1cm4gaW47CisgICAgfQorICAgIGluLnJlYWQoJmluZGlyZWN0X2J1ZmZlclswXSwgaW5kaXJlY3RfYnVmZmVyLnNpemUoKSk7CisKKyAgICB1aW50MzJfdCBlbGVtZW50X2NvdW50ID0gMDsKKyAgICBpbi5yZWFkKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZlbGVtZW50X2NvdW50KSwgc2l6ZW9mKHVpbnQzMl90KSk7CisgICAgdWludDMyX3QgZWxlbWVudHNfc2l6ZSA9IDA7CisgICAgaW4ucmVhZChyZWludGVycHJldF9jYXN0PGNoYXIqPigmZWxlbWVudHNfc2l6ZSksIHNpemVvZih1aW50MzJfdCkpOworCisgICAgc3RkOjpzdHJpbmcgZWxlbWVudHNfYnVmZmVyKGVsZW1lbnRzX3NpemUsICdcMCcpOworICAgIGlmIChlbGVtZW50c19idWZmZXIuc2l6ZSgpICE9IGVsZW1lbnRzX3NpemUpIHsKKyAgICAgICAgaW4uc2V0c3RhdGUoc3RkOjppb3NfYmFzZTo6YmFkYml0KTsKKyAgICAgICAgcmV0dXJuIGluOworICAgIH0KKyAgICBpbi5yZWFkKCZlbGVtZW50c19idWZmZXJbMF0sIGVsZW1lbnRzX2J1ZmZlci5zaXplKCkpOworCisgICAgaWYgKGluLmJhZCgpKSByZXR1cm4gaW47CisKKyAgICAvLyBUT0RPIHdyaXRlIG9uZS1zaG90IHN0cmVhbSBidWZmZXIgdG8gYXZvaWQgY29weWluZyBoZXJlCisgICAgc3RkOjpzdHJpbmdzdHJlYW0gaW5kaXJlY3QoaW5kaXJlY3RfYnVmZmVyKTsKKyAgICBzdGQ6OnN0cmluZ3N0cmVhbSBlbGVtZW50cyhlbGVtZW50c19idWZmZXIpOworICAgIEluU3RyZWFtcyBzdHJlYW1zID0ge2luZGlyZWN0LCBlbGVtZW50c307CisKKyAgICBwYXJhbXMtPnJlc2l6ZShlbGVtZW50X2NvdW50KTsKKworICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBlbGVtZW50X2NvdW50OyArK2kpIHsKKyAgICAgICAgZGVzZXJpYWxpemUoc3RyZWFtcywgJigqcGFyYW1zKVtpXSk7CisgICAgfQorICAgIHJldHVybiBpbjsKK30KKwordm9pZCBBdXRob3JpemF0aW9uU2V0OjpTZXJpYWxpemUoc3RkOjpvc3RyZWFtKiBvdXQpIGNvbnN0IHsKKyAgICBzZXJpYWxpemUoKm91dCwgZGF0YV8pOworfQorCit2b2lkIEF1dGhvcml6YXRpb25TZXQ6OkRlc2VyaWFsaXplKHN0ZDo6aXN0cmVhbSogaW4pIHsKKyAgICBkZXNlcmlhbGl6ZSgqaW4sICZkYXRhXyk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBWM18wCit9ICAvLyBuYW1lc3BhY2Uga2V5bWFzdGVyCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmggYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2F1dGhvcml6YXRpb25fc2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWY5MmQ4MQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwvYXV0aG9yaXphdGlvbl9zZXQuaApAQCAtMCwwICsxLDQyMCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBIQVJEV0FSRV9JTlRFUkZBQ0VTX0tFWU1BU1RFUl8zMF9WVFNfRlVOQ1RJT05BTF9BVVRIT1JJWkFUSU9OX1NFVF9IXworI2RlZmluZSBIQVJEV0FSRV9JTlRFUkZBQ0VTX0tFWU1BU1RFUl8zMF9WVFNfRlVOQ1RJT05BTF9BVVRIT1JJWkFUSU9OX1NFVF9IXworCisjaW5jbHVkZSAia2V5bWFzdGVyX3RhZ3MuaCIKKworI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8dmVjdG9yPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CisKK2NsYXNzIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOworCisvKioKKyAqIEFuIG9yZGVyZWQgY29sbGVjdGlvbiBvZiBLZXlQYXJhbWV0ZXJzLiBJdCBwcm92aWRlcyBtZW1vcnkgb3duZXJzaGlwIGFuZCBzb21lIGNvbnZlbmllbnQKKyAqIGZ1bmN0aW9uYWxpdHkgZm9yIHNvcnRpbmcsIGRlZHVwbGljYXRpbmcsIGpvaW5pbmcsIGFuZCBzdWJ0cmFjdGluZyBzZXRzIG9mIEtleVBhcmFtZXRlcnMuCisgKiBGb3Igc2VyaWFsaXphdGlvbiwgd3JhcCB0aGUgYmFja2luZyBzdG9yZSBvZiB0aGlzIHN0cnVjdHVyZSBpbiBhIGhpZGxfdmVjPEtleVBhcmFtZXRlcj4uCisgKi8KK2NsYXNzIEF1dGhvcml6YXRpb25TZXQgeworICBwdWJsaWM6CisgICAgdHlwZWRlZiBLZXlQYXJhbWV0ZXIgdmFsdWVfdHlwZTsKKworICAgIC8qKgorICAgICAqIENvbnN0cnVjdCBhbiBlbXB0eSwgZHluYW1pY2FsbHktYWxsb2NhdGVkLCBncm93YWJsZSBBdXRob3JpemF0aW9uU2V0LgorICAgICAqLworICAgIEF1dGhvcml6YXRpb25TZXQoKXt9OworCisgICAgLy8gQ29weSBjb25zdHJ1Y3Rvci4KKyAgICBBdXRob3JpemF0aW9uU2V0KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIG90aGVyKSA6IGRhdGFfKG90aGVyLmRhdGFfKSB7fQorCisgICAgLy8gTW92ZSBjb25zdHJ1Y3Rvci4KKyAgICBBdXRob3JpemF0aW9uU2V0KEF1dGhvcml6YXRpb25TZXQmJiBvdGhlcikgOiBkYXRhXyhzdGQ6Om1vdmUob3RoZXIuZGF0YV8pKSB7fQorCisgICAgLy8gQ29uc3RydWN0b3IgZnJvbSBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+CisgICAgQXV0aG9yaXphdGlvblNldChjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBvdGhlcikgeyAqdGhpcyA9IG90aGVyOyB9CisKKyAgICAvLyBDb3B5IGFzc2lnbm1lbnQuCisgICAgQXV0aG9yaXphdGlvblNldCYgb3BlcmF0b3I9KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIG90aGVyKSB7CisgICAgICAgIGRhdGFfID0gb3RoZXIuZGF0YV87CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICAvLyBNb3ZlIGFzc2lnbm1lbnQuCisgICAgQXV0aG9yaXphdGlvblNldCYgb3BlcmF0b3I9KEF1dGhvcml6YXRpb25TZXQmJiBvdGhlcikgeworICAgICAgICBkYXRhXyA9IHN0ZDo6bW92ZShvdGhlci5kYXRhXyk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBBdXRob3JpemF0aW9uU2V0JiBvcGVyYXRvcj0oY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgb3RoZXIpIHsKKyAgICAgICAgaWYgKG90aGVyLnNpemUoKSA+IDApIHsKKyAgICAgICAgICAgIGRhdGFfLnJlc2l6ZShvdGhlci5zaXplKCkpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkYXRhXy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIC8qIFRoaXMgbWFrZXMgYSBkZWVwIGNvcHkgZXZlbiBvZiBlbWJlZGRlZCBibG9icy4KKyAgICAgICAgICAgICAgICAgKiBTZWUgYXNzaWdubWVudCBvcGVyYXRvci9jb3B5IGNvbnN0cnVjdG9yIG9mIGhpZGxfdmVjLiovCisgICAgICAgICAgICAgICAgZGF0YV9baV0gPSBvdGhlcltpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2xlYXIgZXhpc3RpbmcgYXV0aG9yaXphdGlvbiBzZXQgZGF0YQorICAgICAqLworICAgIHZvaWQgQ2xlYXIoKTsKKworICAgIH5BdXRob3JpemF0aW9uU2V0KCkgPSBkZWZhdWx0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgc2V0LgorICAgICAqLworICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gZGF0YV8uc2l6ZSgpOyB9CisKKyAgICAvKioKKyAgICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHNldCBpcyBlbXB0eS4KKyAgICAgKi8KKyAgICBib29sIGVtcHR5KCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpID09IDA7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIGRhdGEgaW4gdGhlIHNldCwgZGlyZWN0bHkuIEJlIGNhcmVmdWwgd2l0aCB0aGlzLgorICAgICAqLworICAgIGNvbnN0IEtleVBhcmFtZXRlciogZGF0YSgpIGNvbnN0IHsgcmV0dXJuIGRhdGFfLmRhdGEoKTsgfQorCisgICAgLyoqCisgICAgICogU29ydHMgdGhlIHNldAorICAgICAqLworICAgIHZvaWQgU29ydCgpOworCisgICAgLyoqCisgICAgICogU29ydHMgdGhlIHNldCBhbmQgcmVtb3ZlcyBkdXBsaWNhdGVzIChpbmFkdmVydGVudGx5IGR1cGxpY2F0aW5nIHRhZ3MgaXMgZWFzeSB0byBkbyB3aXRoIHRoZQorICAgICAqIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKS4KKyAgICAgKi8KKyAgICB2b2lkIERlZHVwbGljYXRlKCk7CisKKyAgICAvKioKKyAgICAgKiBBZGRzIGFsbCBlbGVtZW50cyBmcm9tIFxwIHNldCB0aGF0IGFyZSBub3QgYWxyZWFkeSBwcmVzZW50IGluIHRoaXMgQXV0aG9yaXphdGlvblNldC4gIEFzIGEKKyAgICAgKiBzaWRlLWVmZmVjdCwgaWYgXHAgc2V0IGlzIG5vdCBudWxsIHRoaXMgQXV0aG9yaXphdGlvblNldCB3aWxsIGVuZCB1cCBzb3J0ZWQuCisgICAgICovCisgICAgdm9pZCBVbmlvbihjb25zdCBBdXRob3JpemF0aW9uU2V0JiBzZXQpOworCisgICAgLyoqCisgICAgICogUmVtb3ZlcyBhbGwgZWxlbWVudHMgaW4gXHAgc2V0IGZyb20gdGhpcyBBdXRob3JpemF0aW9uU2V0LgorICAgICAqLworICAgIHZvaWQgU3VidHJhY3QoY29uc3QgQXV0aG9yaXphdGlvblNldCYgc2V0KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG9mZnNldCBvZiB0aGUgbmV4dCBlbnRyeSB0aGF0IG1hdGNoZXMgXHAgdGFnLCBzdGFydGluZyBmcm9tIHRoZSBlbGVtZW50IGFmdGVyIFxwCisgICAgICogYmVnaW4uICBJZiBub3QgZm91bmQsIHJldHVybnMgLTEuCisgICAgICovCisgICAgaW50IGZpbmQoVGFnIHRhZywgaW50IGJlZ2luID0gLTEpIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmVtb3ZlcyB0aGUgZW50cnkgYXQgdGhlIHNwZWNpZmllZCBpbmRleC4gUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwsIGZhbHNlIGlmIHRoZSBpbmRleCB3YXMKKyAgICAgKiBvdXQgb2YgYm91bmRzLgorICAgICAqLworICAgIGJvb2wgZXJhc2UoaW50IGluZGV4KTsKKworICAgIC8qKgorICAgICAqIFJldHVybnMgaXRlcmF0b3IgKHBvaW50ZXIpIHRvIGJlZ2lubmluZyBvZiBlbGVtcyBhcnJheSwgdG8gZW5hYmxlIFNUTC1zdHlsZSBpdGVyYXRpb24KKyAgICAgKi8KKyAgICBzdGQ6OnZlY3RvcjxLZXlQYXJhbWV0ZXI+Ojpjb25zdF9pdGVyYXRvciBiZWdpbigpIGNvbnN0IHsgcmV0dXJuIGRhdGFfLmJlZ2luKCk7IH0KKworICAgIC8qKgorICAgICAqIFJldHVybnMgaXRlcmF0b3IgKHBvaW50ZXIpIG9uZSBwYXN0IGVuZCBvZiBlbGVtcyBhcnJheSwgdG8gZW5hYmxlIFNUTC1zdHlsZSBpdGVyYXRpb24KKyAgICAgKi8KKyAgICBzdGQ6OnZlY3RvcjxLZXlQYXJhbWV0ZXI+Ojpjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdCB7IHJldHVybiBkYXRhXy5lbmQoKTsgfQorCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnRoIGVsZW1lbnQgb2YgdGhlIHNldC4KKyAgICAgKiBMaWtlIGZvciBzdGQ6OnZlY3Rvcjo6b3BlcmF0b3JbXSB0aGVyZSBpcyBubyByYW5nZSBjaGVjayBwZXJmb3JtZWQuIFVzZSBvZiBvdXQgb2YgcmFuZ2UKKyAgICAgKiBpbmRpY2VzIGlzIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBLZXlQYXJhbWV0ZXImIG9wZXJhdG9yW10oaW50IG4pOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgbnRoIGVsZW1lbnQgb2YgdGhlIHNldC4KKyAgICAgKiBMaWtlIGZvciBzdGQ6OnZlY3Rvcjo6b3BlcmF0b3JbXSB0aGVyZSBpcyBubyByYW5nZSBjaGVjayBwZXJmb3JtZWQuIFVzZSBvZiBvdXQgb2YgcmFuZ2UKKyAgICAgKiBpbmRpY2VzIGlzIHVuZGVmaW5lZC4KKyAgICAgKi8KKyAgICBjb25zdCBLZXlQYXJhbWV0ZXImIG9wZXJhdG9yW10oaW50IG4pIGNvbnN0OworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzZXQgY29udGFpbnMgYXQgbGVhc3Qgb25lIGluc3RhbmNlIG9mIFxwIHRhZworICAgICAqLworICAgIGJvb2wgQ29udGFpbnMoVGFnIHRhZykgY29uc3QgeyByZXR1cm4gZmluZCh0YWcpICE9IC0xOyB9CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gYm9vbCBDb250YWlucyhUIHRhZykgY29uc3QgeyByZXR1cm4gZmluZCh0YWcpICE9IC0xOyB9CisKKyAgICB0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUgVmFsdWVUPgorICAgIGJvb2wgQ29udGFpbnMoVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgY29uc3QgVmFsdWVUJiB2YWx1ZSkgY29uc3QgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHBhcmFtIDogZGF0YV8pIHsKKyAgICAgICAgICAgIGF1dG8gZW50cnkgPSBhdXRob3JpemF0aW9uVmFsdWUodHRhZywgcGFyYW0pOworICAgICAgICAgICAgaWYgKGVudHJ5LmlzT2soKSAmJiBzdGF0aWNfY2FzdDxWYWx1ZVQ+KGVudHJ5LnZhbHVlKCkpID09IHZhbHVlKSByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIC8qKgorICAgICAqIFJldHVybnMgdGhlIG51bWJlciBvZiBccCB0YWcgZW50cmllcy4KKyAgICAgKi8KKyAgICBzaXplX3QgR2V0VGFnQ291bnQoVGFnIHRhZykgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICBpbmxpbmUgTnVsbE9yPGNvbnN0IHR5cGVuYW1lIFR5cGVkVGFnMlZhbHVlVHlwZTxUPjo6dHlwZSY+IEdldFRhZ1ZhbHVlKFQgdGFnKSBjb25zdCB7CisgICAgICAgIGF1dG8gZW50cnkgPSBHZXRFbnRyeSh0YWcpOworICAgICAgICBpZiAoZW50cnkuaXNPaygpKSByZXR1cm4gYXV0aG9yaXphdGlvblZhbHVlKHRhZywgZW50cnkudmFsdWUoKSk7CisgICAgICAgIHJldHVybiB7fTsKKyAgICB9CisKKyAgICB2b2lkIHB1c2hfYmFjayhjb25zdCBLZXlQYXJhbWV0ZXImIHBhcmFtKSB7IGRhdGFfLnB1c2hfYmFjayhwYXJhbSk7IH0KKyAgICB2b2lkIHB1c2hfYmFjayhLZXlQYXJhbWV0ZXImJiBwYXJhbSkgeyBkYXRhXy5wdXNoX2JhY2soc3RkOjptb3ZlKHBhcmFtKSk7IH0KKworICAgIHZvaWQgcHVzaF9iYWNrKGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCkgeworICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogc2V0KSB7CisgICAgICAgICAgICBwdXNoX2JhY2soZW50cnkpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBwdXNoX2JhY2soQXV0aG9yaXphdGlvblNldCYmIHNldCkgeworICAgICAgICBtb3ZlKHNldC5iZWdpbigpLCBzZXQuZW5kKCkpOworICAgICAgICBzZXQuQ2xlYXIoKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8VGFnIHRhZz4KKyAgICB2b2lkIHB1c2hfYmFjayhUeXBlZFRhZzxUYWdUeXBlOjpCWVRFUywgdGFnPiB0dGFnLCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgZGF0YV9sZW5ndGgpIHsKKyAgICAgICAgaGlkbF92ZWM8dWludDhfdD4gbmV3X2Jsb2I7CisgICAgICAgIG5ld19ibG9iLnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1aW50OF90Kj4oZGF0YSksIGRhdGFfbGVuZ3RoKTsKKyAgICAgICAgcHVzaF9iYWNrKHR0YWcsIHN0ZDo6bW92ZShuZXdfYmxvYikpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEFwcGVuZCB0aGUgdGFnIGFuZCBlbnVtZXJhdGVkIHZhbHVlIHRvIHRoZSBzZXQuCisgICAgICogInZhbCIgbWF5IGJlIGV4YWN0bHkgb25lIHBhcmFtZXRlciB1bmxlc3MgYSBib29sZWFuIHBhcmFtZXRlciBpcyBhZGRlZC4KKyAgICAgKiBJbiB0aGlzIGNhc2UgInZhbCIgaXMgb21pdHRlZC4gVGhpcyBjb25kaXRpb24gaXMgY2hlY2tlZCBhdCBjb21waWxlIHRpbWUgYnkgQXV0aG9yaXphdGlvbigpCisgICAgICovCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFR5cGVkVGFnVCwgdHlwZW5hbWUuLi4gVmFsdWU+IHZvaWQgcHVzaF9iYWNrKFR5cGVkVGFnVCB0YWcsIFZhbHVlJiYuLi4gdmFsKSB7CisgICAgICAgIHB1c2hfYmFjayhBdXRob3JpemF0aW9uKHRhZywgc3RkOjpmb3J3YXJkPFZhbHVlPih2YWwpLi4uKSk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEl0ZXJhdG9yPiB2b2lkIHB1c2hfYmFjayhJdGVyYXRvciBiZWdpbiwgSXRlcmF0b3IgZW5kKSB7CisgICAgICAgIHdoaWxlIChiZWdpbiAhPSBlbmQpIHsKKyAgICAgICAgICAgIHB1c2hfYmFjaygqYmVnaW4pOworICAgICAgICAgICAgKytiZWdpbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBJdGVyYXRvcj4gdm9pZCBtb3ZlKEl0ZXJhdG9yIGJlZ2luLCBJdGVyYXRvciBlbmQpIHsKKyAgICAgICAgc3RkOjptb3ZlKGJlZ2luLCBlbmQsIHN0ZDo6YmFja19pbnNlcnRlcihkYXRhXykpOworICAgIH0KKworICAgIGhpZGxfdmVjPEtleVBhcmFtZXRlcj4gaGlkbF9kYXRhKCkgY29uc3QgeworICAgICAgICBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+IHJlc3VsdDsKKyAgICAgICAgcmVzdWx0LnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDxLZXlQYXJhbWV0ZXIqPihkYXRhKCkpLCBzaXplKCkpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIHZvaWQgU2VyaWFsaXplKHN0ZDo6b3N0cmVhbSogb3V0KSBjb25zdDsKKyAgICB2b2lkIERlc2VyaWFsaXplKHN0ZDo6aXN0cmVhbSogaW4pOworCisgIHByaXZhdGU6CisgICAgTnVsbE9yPGNvbnN0IEtleVBhcmFtZXRlciY+IEdldEVudHJ5KFRhZyB0YWcpIGNvbnN0OworCisgICAgc3RkOjp2ZWN0b3I8S2V5UGFyYW1ldGVyPiBkYXRhXzsKK307CisKK2NsYXNzIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyIDogcHVibGljIEF1dGhvcml6YXRpb25TZXQgeworICBwdWJsaWM6CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFRhZ1R5cGUsIHR5cGVuYW1lLi4uIFZhbHVlVHlwZT4KKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvbihUYWdUeXBlIHR0YWcsIFZhbHVlVHlwZSYmLi4uIHZhbHVlKSB7CisgICAgICAgIHB1c2hfYmFjayh0dGFnLCBzdGQ6OmZvcndhcmQ8VmFsdWVUeXBlPih2YWx1ZSkuLi4pOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZyB0YWc+CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb24oVHlwZWRUYWc8VGFnVHlwZTo6QllURVMsIHRhZz4gdHRhZywgY29uc3QgdWludDhfdCogZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpIHsKKyAgICAgICAgaGlkbF92ZWM8dWludDhfdD4gbmV3X2Jsb2I7CisgICAgICAgIG5ld19ibG9iLnNldFRvRXh0ZXJuYWwoY29uc3RfY2FzdDx1aW50OF90Kj4oZGF0YSksIGRhdGFfbGVuZ3RoKTsKKyAgICAgICAgcHVzaF9iYWNrKHR0YWcsIHN0ZDo6bW92ZShuZXdfYmxvYikpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZyB0YWc+CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb24oVHlwZWRUYWc8VGFnVHlwZTo6QllURVMsIHRhZz4gdHRhZywgY29uc3QgY2hhciogZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgZGF0YV9sZW5ndGgpIHsKKyAgICAgICAgcmV0dXJuIEF1dGhvcml6YXRpb24odHRhZywgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGRhdGFfbGVuZ3RoKTsKKyAgICB9CisKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvbnMoQXV0aG9yaXphdGlvblNldCYmIHNldCk7CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25zKGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgUnNhS2V5KHVpbnQzMl90IGtleV9zaXplLCB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2RzYUtleSh1aW50MzJfdCBrZXlfc2l6ZSk7CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEVjZHNhS2V5KEVjQ3VydmUgY3VydmUpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBZXNLZXkodWludDMyX3Qga2V5X3NpemUpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBIbWFjS2V5KHVpbnQzMl90IGtleV9zaXplKTsKKworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBSc2FTaWduaW5nS2V5KHVpbnQzMl90IGtleV9zaXplLCB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBSc2FFbmNyeXB0aW9uS2V5KHVpbnQzMl90IGtleV9zaXplLCB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2RzYVNpZ25pbmdLZXkodWludDMyX3Qga2V5X3NpemUpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2RzYVNpZ25pbmdLZXkoRWNDdXJ2ZSBjdXJ2ZSk7CisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEFlc0VuY3J5cHRpb25LZXkodWludDMyX3Qga2V5X3NpemUpOworCisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIFNpZ25pbmdLZXkoKTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgRW5jcnlwdGlvbktleSgpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBOb0RpZ2VzdE9yUGFkZGluZygpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBFY2JNb2RlKCk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQmxvY2tNb2RlKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxCbG9ja01vZGU+IGJsb2NrX21vZGVzKTsKKyAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgRGlnZXN0KHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxEaWdlc3Q+IGRpZ2VzdHMpOworICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBQYWRkaW5nKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxQYWRkaW5nTW9kZT4gcGFkZGluZ19tb2Rlcyk7CisKKyAgICAvLyBUaGUgZm9sbG93aW5nIGZvcndhcmRpbmcgdGVtcGxhdGVzIGVuYWJsZSBCbG9ja01vZGUsRGlnZXN0IGFuZCBQYWRkaW5nIHRvIGJlIGNhbGxlZCB3aXRoIGEKKyAgICAvLyB2YXJpYWJsZSBudW1iZXIgb2YgYXJndW1lbnRzOyBubyBuZWVkIHRvIHdyYXAgdGhlbSBpbiBicmFjZXMgdG8gbWFrZSB0aGVtIGFuIGluaXRhbGl6ZXJfbGlzdC4KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUuLi4gVD4gQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEJsb2NrTW9kZShUJiYuLi4gYSkgeworICAgICAgICByZXR1cm4gQmxvY2tNb2RlKHtzdGQ6OmZvcndhcmQ8VD4oYSkuLi59KTsKKyAgICB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lLi4uIFQ+IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBEaWdlc3QoVCYmLi4uIGEpIHsKKyAgICAgICAgcmV0dXJuIERpZ2VzdCh7c3RkOjpmb3J3YXJkPFQ+KGEpLi4ufSk7CisgICAgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZS4uLiBUPiBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgUGFkZGluZyhUJiYuLi4gYSkgeworICAgICAgICByZXR1cm4gUGFkZGluZyh7c3RkOjpmb3J3YXJkPFQ+KGEpLi4ufSk7CisgICAgfQorfTsKKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6QXV0aG9yaXphdGlvbnMoQXV0aG9yaXphdGlvblNldCYmIHNldCkgeworICAgIG1vdmUoc2V0LmJlZ2luKCksIHNldC5lbmQoKSk7CisgICAgc2V0LkNsZWFyKCk7CisgICAgcmV0dXJuICp0aGlzOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImCitBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6QXV0aG9yaXphdGlvbnMoY29uc3QgQXV0aG9yaXphdGlvblNldCYgc2V0KSB7CisgICAgcHVzaF9iYWNrKHNldC5iZWdpbigpLCBzZXQuZW5kKCkpOworICAgIHJldHVybiAqdGhpczsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6UnNhS2V5KHVpbnQzMl90IGtleV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHB1YmxpY19leHBvbmVudCkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpSU0EpOworICAgIEF1dGhvcml6YXRpb24oVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSk7CisgICAgQXV0aG9yaXphdGlvbihUQUdfUlNBX1BVQkxJQ19FWFBPTkVOVCwgcHVibGljX2V4cG9uZW50KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkVjZHNhS2V5KHVpbnQzMl90IGtleV9zaXplKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkVDKTsKKyAgICBBdXRob3JpemF0aW9uKFRBR19LRVlfU0laRSwga2V5X3NpemUpOworICAgIHJldHVybiAqdGhpczsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6RWNkc2FLZXkoRWNDdXJ2ZSBjdXJ2ZSkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpFQyk7CisgICAgQXV0aG9yaXphdGlvbihUQUdfRUNfQ1VSVkUsIGN1cnZlKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkFlc0tleSh1aW50MzJfdCBrZXlfc2l6ZSkgeworICAgIEF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpBRVMpOworICAgIHJldHVybiBBdXRob3JpemF0aW9uKFRBR19LRVlfU0laRSwga2V5X3NpemUpOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpIbWFjS2V5KHVpbnQzMl90IGtleV9zaXplKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkhNQUMpOworICAgIEF1dGhvcml6YXRpb24oVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSk7CisgICAgcmV0dXJuIFNpZ25pbmdLZXkoKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6UnNhU2lnbmluZ0tleSh1aW50MzJfdCBrZXlfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgcHVibGljX2V4cG9uZW50KSB7CisgICAgUnNhS2V5KGtleV9zaXplLCBwdWJsaWNfZXhwb25lbnQpOworICAgIHJldHVybiBTaWduaW5nS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYKK0F1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpSc2FFbmNyeXB0aW9uS2V5KHVpbnQzMl90IGtleV9zaXplLCB1aW50NjRfdCBwdWJsaWNfZXhwb25lbnQpIHsKKyAgICBSc2FLZXkoa2V5X3NpemUsIHB1YmxpY19leHBvbmVudCk7CisgICAgcmV0dXJuIEVuY3J5cHRpb25LZXkoKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6RWNkc2FTaWduaW5nS2V5KHVpbnQzMl90IGtleV9zaXplKSB7CisgICAgRWNkc2FLZXkoa2V5X3NpemUpOworICAgIHJldHVybiBTaWduaW5nS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkVjZHNhU2lnbmluZ0tleShFY0N1cnZlIGN1cnZlKSB7CisgICAgRWNkc2FLZXkoY3VydmUpOworICAgIHJldHVybiBTaWduaW5nS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkFlc0VuY3J5cHRpb25LZXkodWludDMyX3Qga2V5X3NpemUpIHsKKyAgICBBZXNLZXkoa2V5X3NpemUpOworICAgIHJldHVybiBFbmNyeXB0aW9uS2V5KCk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OlNpZ25pbmdLZXkoKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfUFVSUE9TRSwgS2V5UHVycG9zZTo6U0lHTik7CisgICAgcmV0dXJuIEF1dGhvcml6YXRpb24oVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OlZFUklGWSk7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYgQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkVuY3J5cHRpb25LZXkoKSB7CisgICAgQXV0aG9yaXphdGlvbihUQUdfUFVSUE9TRSwgS2V5UHVycG9zZTo6RU5DUllQVCk7CisgICAgcmV0dXJuIEF1dGhvcml6YXRpb24oVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OkRFQ1JZUFQpOworfQorCitpbmxpbmUgQXV0aG9yaXphdGlvblNldEJ1aWxkZXImIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpOb0RpZ2VzdE9yUGFkZGluZygpIHsKKyAgICBBdXRob3JpemF0aW9uKFRBR19ESUdFU1QsIERpZ2VzdDo6Tk9ORSk7CisgICAgcmV0dXJuIEF1dGhvcml6YXRpb24oVEFHX1BBRERJTkcsIFBhZGRpbmdNb2RlOjpOT05FKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJiBBdXRob3JpemF0aW9uU2V0QnVpbGRlcjo6RWNiTW9kZSgpIHsKKyAgICByZXR1cm4gQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKTsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJgorQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkJsb2NrTW9kZShzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VjNfMDo6QmxvY2tNb2RlPiBibG9ja19tb2RlcykgeworICAgIGZvciAoYXV0byBibG9ja19tb2RlIDogYmxvY2tfbW9kZXMpIHsKKyAgICAgICAgQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgYmxvY2tfbW9kZSk7CisgICAgfQorICAgIHJldHVybiAqdGhpczsKK30KKworaW5saW5lIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyJgorQXV0aG9yaXphdGlvblNldEJ1aWxkZXI6OkRpZ2VzdChzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VjNfMDo6RGlnZXN0PiBkaWdlc3RzKSB7CisgICAgZm9yIChhdXRvIGRpZ2VzdCA6IGRpZ2VzdHMpIHsKKyAgICAgICAgQXV0aG9yaXphdGlvbihUQUdfRElHRVNULCBkaWdlc3QpOworICAgIH0KKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK2lubGluZSBBdXRob3JpemF0aW9uU2V0QnVpbGRlciYKK0F1dGhvcml6YXRpb25TZXRCdWlsZGVyOjpQYWRkaW5nKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxWM18wOjpQYWRkaW5nTW9kZT4gcGFkZGluZ19tb2RlcykgeworICAgIGZvciAoYXV0byBwYWRkaW5nIDogcGFkZGluZ19tb2RlcykgeworICAgICAgICBBdXRob3JpemF0aW9uKFRBR19QQURESU5HLCBwYWRkaW5nKTsKKyAgICB9CisgICAgcmV0dXJuICp0aGlzOworfQorCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEhBUkRXQVJFX0lOVEVSRkFDRVNfS0VZTUFTVEVSXzMwX1ZUU19GVU5DVElPTkFMX0FVVEhPUklaQVRJT05fU0VUX0hfCmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleV9wYXJhbV9vdXRwdXQuY3BwIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzlmNjg1Ci0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmNwcApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJrZXlfcGFyYW1fb3V0cHV0LmgiCisKKyNpbmNsdWRlIDxpb21hbmlwPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworCituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBzZXQpIHsKKyAgICBpZiAoc2V0LnNpemUoKSA9PSAwKSB7CisgICAgICAgIG9zIDw8ICIoRW1wdHkpIiA8PCA6OnN0ZDo6ZW5kbDsKKyAgICB9IGVsc2UgeworICAgICAgICBvcyA8PCAiXG4iOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNldC5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIG9zIDw8IHNldFtpXSA8PCA6OnN0ZDo6ZW5kbDsKKyAgICB9CisgICAgcmV0dXJuIG9zOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEVycm9yQ29kZSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCAoaW50KXZhbHVlOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIERpZ2VzdCB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEFsZ29yaXRobSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEJsb2NrTW9kZSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIFBhZGRpbmdNb2RlIHZhbHVlKSB7CisgICAgcmV0dXJuIG9zIDw8IHN0cmluZ2lmeSh2YWx1ZSk7Cit9CisKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgS2V5T3JpZ2luIHZhbHVlKSB7CisgICAgcmV0dXJuIG9zIDw8IHN0cmluZ2lmeSh2YWx1ZSk7Cit9CisKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgS2V5UHVycG9zZSB2YWx1ZSkgeworICAgIHJldHVybiBvcyA8PCBzdHJpbmdpZnkodmFsdWUpOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEVjQ3VydmUgdmFsdWUpIHsKKyAgICByZXR1cm4gb3MgPDwgc3RyaW5naWZ5KHZhbHVlKTsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBLZXlQYXJhbWV0ZXImIHBhcmFtKSB7CisgICAgb3MgPDwgc3RyaW5naWZ5VGFnKHBhcmFtLnRhZykgPDwgIjogIjsKKyAgICBzd2l0Y2ggKHR5cGVGcm9tVGFnKHBhcmFtLnRhZykpIHsKKyAgICBjYXNlIFRhZ1R5cGU6OklOVkFMSUQ6CisgICAgICAgIHJldHVybiBvcyA8PCAiIEludmFsaWQiOworICAgIGNhc2UgVGFnVHlwZTo6VUlOVF9SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpVSU5UOgorICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5pbnRlZ2VyOworICAgIGNhc2UgVGFnVHlwZTo6RU5VTV9SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpFTlVNOgorICAgICAgICBzd2l0Y2ggKHBhcmFtLnRhZykgeworICAgICAgICBjYXNlIFRhZzo6QUxHT1JJVEhNOgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYuYWxnb3JpdGhtOworICAgICAgICBjYXNlIFRhZzo6QkxPQ0tfTU9ERToKKyAgICAgICAgICAgIHJldHVybiBvcyA8PCBwYXJhbS5mLmJsb2NrTW9kZTsKKyAgICAgICAgY2FzZSBUYWc6OlBBRERJTkc6CisgICAgICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5wYWRkaW5nTW9kZTsKKyAgICAgICAgY2FzZSBUYWc6OkRJR0VTVDoKKyAgICAgICAgICAgIHJldHVybiBvcyA8PCBwYXJhbS5mLmRpZ2VzdDsKKyAgICAgICAgY2FzZSBUYWc6OkVDX0NVUlZFOgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8IChpbnQpcGFyYW0uZi5lY0N1cnZlOworICAgICAgICBjYXNlIFRhZzo6T1JJR0lOOgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYub3JpZ2luOworICAgICAgICBjYXNlIFRhZzo6QkxPQl9VU0FHRV9SRVFVSVJFTUVOVFM6CisgICAgICAgICAgICByZXR1cm4gb3MgPDwgKGludClwYXJhbS5mLmtleUJsb2JVc2FnZVJlcXVpcmVtZW50czsKKyAgICAgICAgY2FzZSBUYWc6OlBVUlBPU0U6CisgICAgICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5wdXJwb3NlOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIG9zIDw8ICIgVU5LTk9XTiBFTlVNICIgPDwgcGFyYW0uZi5pbnRlZ2VyOworICAgICAgICB9CisgICAgY2FzZSBUYWdUeXBlOjpVTE9OR19SRVA6CisgICAgY2FzZSBUYWdUeXBlOjpVTE9ORzoKKyAgICAgICAgcmV0dXJuIG9zIDw8IHBhcmFtLmYubG9uZ0ludGVnZXI7CisgICAgY2FzZSBUYWdUeXBlOjpEQVRFOgorICAgICAgICByZXR1cm4gb3MgPDwgcGFyYW0uZi5kYXRlVGltZTsKKyAgICBjYXNlIFRhZ1R5cGU6OkJPT0w6CisgICAgICAgIHJldHVybiBvcyA8PCAidHJ1ZSI7CisgICAgY2FzZSBUYWdUeXBlOjpCSUdOVU06CisgICAgICAgIG9zIDw8ICIgQmlnbnVtOiAiOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhcmFtLmJsb2Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIG9zIDw8IDo6c3RkOjpoZXggPDwgOjpzdGQ6OnNldHcoMikgPDwgc3RhdGljX2Nhc3Q8aW50PihwYXJhbS5ibG9iW2ldKSA8PCA6OnN0ZDo6ZGVjOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvczsKKyAgICBjYXNlIFRhZ1R5cGU6OkJZVEVTOgorICAgICAgICBvcyA8PCAiIEJ5dGVzOiAiOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBhcmFtLmJsb2Iuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIG9zIDw8IDo6c3RkOjpoZXggPDwgOjpzdGQ6OnNldHcoMikgPDwgc3RhdGljX2Nhc3Q8aW50PihwYXJhbS5ibG9iW2ldKSA8PCA6OnN0ZDo6ZGVjOworICAgICAgICB9CisgICAgICAgIHJldHVybiBvczsKKyAgICB9CisgICAgcmV0dXJuIG9zIDw8ICJVTktOT1dOIFRBRyBUWVBFISI7Cit9CisKKzo6c3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KDo6c3RkOjpvc3RyZWFtJiBvcywgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBjaGFycykgeworICAgIHJldHVybiBvcyA8PCAiU1c6ICIgPDwgY2hhcnMuc29mdHdhcmVFbmZvcmNlZCA8PCA6OnN0ZDo6ZW5kbAorICAgICAgICAgICAgICA8PCAiVEVFOiAiIDw8IGNoYXJzLnRlZUVuZm9yY2VkIDw8IDo6c3RkOjplbmRsOworfQorCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmggYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleV9wYXJhbV9vdXRwdXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWRlYzJkCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXlfcGFyYW1fb3V0cHV0LmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxpb3N0cmVhbT4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUva2V5bWFzdGVyLzMuMC90eXBlcy5oPgorCisjaW5jbHVkZSAia2V5bWFzdGVyX3RhZ3MuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVmFsdWVUPgorOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBOdWxsT3I8VmFsdWVUPiYgdmFsdWUpIHsKKyAgICBpZiAoIXZhbHVlLmlzT2soKSkgeworICAgICAgICBvcyA8PCAiKHZhbHVlIG5vdCBwcmVzZW50KSI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb3MgPDwgdmFsdWUudmFsdWUoKTsKKyAgICB9CisgICAgcmV0dXJuIG9zOworfQorCis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIHNldCk7Cis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEJsb2NrTW9kZSB2YWx1ZSk7Cis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIERpZ2VzdCB2YWx1ZSk7Cis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIEVjQ3VydmUgdmFsdWUpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBFcnJvckNvZGUgdmFsdWUpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBQYWRkaW5nTW9kZSB2YWx1ZSk7Cis6OnN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PCg6OnN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IEtleUNoYXJhY3RlcmlzdGljcyYgdmFsdWUpOworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBLZXlQYXJhbWV0ZXImIHZhbHVlKTsKKworfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5bWFzdGVyX2hpZGxfaGFsX3Rlc3QuY3BwIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9rZXltYXN0ZXJfaGlkbF9oYWxfdGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNkNGRlYwotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5bWFzdGVyX2hpZGxfaGFsX3Rlc3QuY3BwCkBAIC0wLDAgKzEsNDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAia2V5bWFzdGVyX2hpZGxfaGFsX3Rlc3QiCisjaW5jbHVkZSA8Y3V0aWxzL2xvZy5oPgorCisjaW5jbHVkZSA8aW9zdHJlYW0+CisKKyNpbmNsdWRlIDxvcGVuc3NsL2V2cC5oPgorI2luY2x1ZGUgPG9wZW5zc2wveDUwOS5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL0lLZXltYXN0ZXJEZXZpY2UuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2tleW1hc3Rlci8zLjAvdHlwZXMuaD4KKworI2luY2x1ZGUgPGN1dGlscy9wcm9wZXJ0aWVzLmg+CisKKyNpbmNsdWRlIDxrZXltYXN0ZXIva2V5bWFzdGVyX2NvbmZpZ3VyYXRpb24uaD4KKworI2luY2x1ZGUgImF1dGhvcml6YXRpb25fc2V0LmgiCisjaW5jbHVkZSAia2V5X3BhcmFtX291dHB1dC5oIgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlICJhdHRlc3RhdGlvbl9yZWNvcmQuaCIKKyNpbmNsdWRlICJvcGVuc3NsX3V0aWxzLmgiCisKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3VzaW5nIDo6c3RkOjpzdHJpbmc7CisKKy8vIFRoaXMgc2VydmljZV9uYW1lIHdpbGwgYmUgcGFzc2VkIHRvIGdldFNlcnZpY2Ugd2hlbiByZXRyaWV2aW5nIHRoZSBrZXltYXN0ZXIgc2VydmljZSB0byB0ZXN0LiAgVG8KKy8vIGNoYW5nZSBpdCBmcm9tICJkZWZhdWx0IiBzcGVjaWZ5IHRoZSBzZWxlY3RlZCBzZXJ2aWNlIG5hbWUgb24gdGhlIGNvbW1hbmQgbGluZS4gIFRoZSBmaXJzdAorLy8gbm9uLWd0ZXN0IGFyZ3VtZW50IHdpbGwgYmUgdXNlZCBhcyB0aGUgc2VydmljZSBuYW1lLgorc3RyaW5nIHNlcnZpY2VfbmFtZSA9ICJkZWZhdWx0IjsKKworc3RhdGljIGJvb2wgYXJtX2RlbGV0ZUFsbEtleXMgPSBmYWxzZTsKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGJvb2wgb3BlcmF0b3I9PShjb25zdCBoaWRsX3ZlYzxUPiYgYSwgY29uc3QgaGlkbF92ZWM8VD4mIGIpIHsKKyAgICBpZiAoYS5zaXplKCkgIT0gYi5zaXplKCkpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGEuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKGFbaV0gIT0gYltpXSkgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCituYW1lc3BhY2Uga2V5bWFzdGVyIHsKK25hbWVzcGFjZSBWM18wIHsKKworYm9vbCBvcGVyYXRvcj09KGNvbnN0IEtleVBhcmFtZXRlciYgYSwgY29uc3QgS2V5UGFyYW1ldGVyJiBiKSB7CisgICAgaWYgKGEudGFnICE9IGIudGFnKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzd2l0Y2ggKGEudGFnKSB7CisKKyAgICAvKiBCb29sZWFuIHRhZ3MgKi8KKyAgICBjYXNlIFRhZzo6SU5WQUxJRDoKKyAgICBjYXNlIFRhZzo6Q0FMTEVSX05PTkNFOgorICAgIGNhc2UgVGFnOjpJTkNMVURFX1VOSVFVRV9JRDoKKyAgICBjYXNlIFRhZzo6RUNJRVNfU0lOR0xFX0hBU0hfTU9ERToKKyAgICBjYXNlIFRhZzo6Qk9PVExPQURFUl9PTkxZOgorICAgIGNhc2UgVGFnOjpOT19BVVRIX1JFUVVJUkVEOgorICAgIGNhc2UgVGFnOjpBTExPV19XSElMRV9PTl9CT0RZOgorICAgIGNhc2UgVGFnOjpFWFBPUlRBQkxFOgorICAgIGNhc2UgVGFnOjpBTExfQVBQTElDQVRJT05TOgorICAgIGNhc2UgVGFnOjpST0xMQkFDS19SRVNJU1RBTlQ6CisgICAgY2FzZSBUYWc6OlJFU0VUX1NJTkNFX0lEX1JPVEFUSU9OOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8qIEludGVnZXIgdGFncyAqLworICAgIGNhc2UgVGFnOjpLRVlfU0laRToKKyAgICBjYXNlIFRhZzo6TUlOX01BQ19MRU5HVEg6CisgICAgY2FzZSBUYWc6Ok1JTl9TRUNPTkRTX0JFVFdFRU5fT1BTOgorICAgIGNhc2UgVGFnOjpNQVhfVVNFU19QRVJfQk9PVDoKKyAgICBjYXNlIFRhZzo6QUxMX1VTRVJTOgorICAgIGNhc2UgVGFnOjpVU0VSX0lEOgorICAgIGNhc2UgVGFnOjpPU19WRVJTSU9OOgorICAgIGNhc2UgVGFnOjpPU19QQVRDSExFVkVMOgorICAgIGNhc2UgVGFnOjpNQUNfTEVOR1RIOgorICAgIGNhc2UgVGFnOjpBVVRIX1RJTUVPVVQ6CisgICAgICAgIHJldHVybiBhLmYuaW50ZWdlciA9PSBiLmYuaW50ZWdlcjsKKworICAgIC8qIExvbmcgaW50ZWdlciB0YWdzICovCisgICAgY2FzZSBUYWc6OlJTQV9QVUJMSUNfRVhQT05FTlQ6CisgICAgY2FzZSBUYWc6OlVTRVJfU0VDVVJFX0lEOgorICAgICAgICByZXR1cm4gYS5mLmxvbmdJbnRlZ2VyID09IGIuZi5sb25nSW50ZWdlcjsKKworICAgIC8qIERhdGUtdGltZSB0YWdzICovCisgICAgY2FzZSBUYWc6OkFDVElWRV9EQVRFVElNRToKKyAgICBjYXNlIFRhZzo6T1JJR0lOQVRJT05fRVhQSVJFX0RBVEVUSU1FOgorICAgIGNhc2UgVGFnOjpVU0FHRV9FWFBJUkVfREFURVRJTUU6CisgICAgY2FzZSBUYWc6OkNSRUFUSU9OX0RBVEVUSU1FOgorICAgICAgICByZXR1cm4gYS5mLmRhdGVUaW1lID09IGIuZi5kYXRlVGltZTsKKworICAgIC8qIEJ5dGVzIHRhZ3MgKi8KKyAgICBjYXNlIFRhZzo6QVBQTElDQVRJT05fSUQ6CisgICAgY2FzZSBUYWc6OkFQUExJQ0FUSU9OX0RBVEE6CisgICAgY2FzZSBUYWc6OlJPT1RfT0ZfVFJVU1Q6CisgICAgY2FzZSBUYWc6OlVOSVFVRV9JRDoKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fQ0hBTExFTkdFOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRDoKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfQlJBTkQ6CisgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX0RFVklDRToKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfUFJPRFVDVDoKKyAgICBjYXNlIFRhZzo6QVRURVNUQVRJT05fSURfU0VSSUFMOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9JTUVJOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NRUlEOgorICAgIGNhc2UgVGFnOjpBVFRFU1RBVElPTl9JRF9NQU5VRkFDVFVSRVI6CisgICAgY2FzZSBUYWc6OkFUVEVTVEFUSU9OX0lEX01PREVMOgorICAgIGNhc2UgVGFnOjpBU1NPQ0lBVEVEX0RBVEE6CisgICAgY2FzZSBUYWc6Ok5PTkNFOgorICAgIGNhc2UgVGFnOjpBVVRIX1RPS0VOOgorICAgICAgICByZXR1cm4gYS5ibG9iID09IGIuYmxvYjsKKworICAgIC8qIEVudW0gdGFncyAqLworICAgIGNhc2UgVGFnOjpQVVJQT1NFOgorICAgICAgICByZXR1cm4gYS5mLnB1cnBvc2UgPT0gYi5mLnB1cnBvc2U7CisgICAgY2FzZSBUYWc6OkFMR09SSVRITToKKyAgICAgICAgcmV0dXJuIGEuZi5hbGdvcml0aG0gPT0gYi5mLmFsZ29yaXRobTsKKyAgICBjYXNlIFRhZzo6QkxPQ0tfTU9ERToKKyAgICAgICAgcmV0dXJuIGEuZi5ibG9ja01vZGUgPT0gYi5mLmJsb2NrTW9kZTsKKyAgICBjYXNlIFRhZzo6RElHRVNUOgorICAgICAgICByZXR1cm4gYS5mLmRpZ2VzdCA9PSBiLmYuZGlnZXN0OworICAgIGNhc2UgVGFnOjpQQURESU5HOgorICAgICAgICByZXR1cm4gYS5mLnBhZGRpbmdNb2RlID09IGIuZi5wYWRkaW5nTW9kZTsKKyAgICBjYXNlIFRhZzo6RUNfQ1VSVkU6CisgICAgICAgIHJldHVybiBhLmYuZWNDdXJ2ZSA9PSBiLmYuZWNDdXJ2ZTsKKyAgICBjYXNlIFRhZzo6QkxPQl9VU0FHRV9SRVFVSVJFTUVOVFM6CisgICAgICAgIHJldHVybiBhLmYua2V5QmxvYlVzYWdlUmVxdWlyZW1lbnRzID09IGIuZi5rZXlCbG9iVXNhZ2VSZXF1aXJlbWVudHM7CisgICAgY2FzZSBUYWc6OlVTRVJfQVVUSF9UWVBFOgorICAgICAgICByZXR1cm4gYS5mLmludGVnZXIgPT0gYi5mLmludGVnZXI7CisgICAgY2FzZSBUYWc6Ok9SSUdJTjoKKyAgICAgICAgcmV0dXJuIGEuZi5vcmlnaW4gPT0gYi5mLm9yaWdpbjsKKworICAgIC8qIFVuc3VwcG9ydGVkIHRhZ3MgKi8KKyAgICBjYXNlIFRhZzo6S0RGOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitib29sIG9wZXJhdG9yPT0oY29uc3QgQXV0aG9yaXphdGlvblNldCYgYSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgYikgeworICAgIHJldHVybiBhLnNpemUoKSA9PSBiLnNpemUoKSAmJiBzdGQ6OmVxdWFsKGEuYmVnaW4oKSwgYS5lbmQoKSwgYi5iZWdpbigpKTsKK30KKworYm9vbCBvcGVyYXRvcj09KGNvbnN0IEtleUNoYXJhY3RlcmlzdGljcyYgYSwgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBiKSB7CisgICAgLy8gVGhpcyBpc24ndCB2ZXJ5IGVmZmljaWVudC4gT2gsIHdlbGwuCisgICAgQXV0aG9yaXphdGlvblNldCBhX3N3KGEuc29mdHdhcmVFbmZvcmNlZCk7CisgICAgQXV0aG9yaXphdGlvblNldCBiX3N3KGIuc29mdHdhcmVFbmZvcmNlZCk7CisgICAgQXV0aG9yaXphdGlvblNldCBhX3RlZShiLnRlZUVuZm9yY2VkKTsKKyAgICBBdXRob3JpemF0aW9uU2V0IGJfdGVlKGIudGVlRW5mb3JjZWQpOworCisgICAgYV9zdy5Tb3J0KCk7CisgICAgYl9zdy5Tb3J0KCk7CisgICAgYV90ZWUuU29ydCgpOworICAgIGJfdGVlLlNvcnQoKTsKKworICAgIHJldHVybiBhX3N3ID09IGJfc3cgJiYgYV90ZWUgPT0gYl9zdzsKK30KKworOjpzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoOjpzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBzZXQpIHsKKyAgICBpZiAoc2V0LnNpemUoKSA9PSAwKQorICAgICAgICBvcyA8PCAiKEVtcHR5KSIgPDwgOjpzdGQ6OmVuZGw7CisgICAgZWxzZSB7CisgICAgICAgIG9zIDw8ICJcbiI7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2V0LnNpemUoKTsgKytpKQorICAgICAgICAgICAgb3MgPDwgc2V0W2ldIDw8IDo6c3RkOjplbmRsOworICAgIH0KKyAgICByZXR1cm4gb3M7Cit9CisKK25hbWVzcGFjZSB0ZXN0IHsKK25hbWVzcGFjZSB7CisKK3RlbXBsYXRlIDxUYWdUeXBlIHRhZ190eXBlLCBUYWcgdGFnLCB0eXBlbmFtZSBWYWx1ZVQ+Citib29sIGNvbnRhaW5zKGhpZGxfdmVjPEtleVBhcmFtZXRlcj4mIHNldCwgVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUIGV4cGVjdGVkX3ZhbHVlKSB7CisgICAgc2l6ZV90IGNvdW50ID0gc3RkOjpjb3VudF9pZihzZXQuYmVnaW4oKSwgc2V0LmVuZCgpLCBbJl0oY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgeworICAgICAgICByZXR1cm4gcGFyYW0udGFnID09IHRhZyAmJiBhY2Nlc3NUYWdWYWx1ZSh0dGFnLCBwYXJhbSkgPT0gZXhwZWN0ZWRfdmFsdWU7CisgICAgfSk7CisgICAgcmV0dXJuIGNvdW50ID09IDE7Cit9CisKK3RlbXBsYXRlIDxUYWdUeXBlIHRhZ190eXBlLCBUYWcgdGFnPgorYm9vbCBjb250YWlucyhoaWRsX3ZlYzxLZXlQYXJhbWV0ZXI+JiBzZXQsIFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+KSB7CisgICAgc2l6ZV90IGNvdW50ID0gc3RkOjpjb3VudF9pZihzZXQuYmVnaW4oKSwgc2V0LmVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsgcmV0dXJuIHBhcmFtLnRhZyA9PSB0YWc7IH0pOworICAgIHJldHVybiBjb3VudCA+IDA7Cit9CisKK2NvbnN0ZXhwciBjaGFyIGhleF92YWx1ZVsyNTZdID0gezAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsICAyLCAgMywgIDQsICA1LCAgNiwgIDcsIDgsIDksIDAsIDAsIDAsIDAsIDAsIDAsICAvLyAnMCcuLic5JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vICdBJy4uJ0YnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLyAnYScuLidmJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAgMCwgIDAsICAwLCAgMCwgIDAsICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICAwLCAgMCwgIDAsICAwLCAgMCwgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworCitzdHJpbmcgaGV4MnN0cihzdHJpbmcgYSkgeworICAgIHN0cmluZyBiOworICAgIHNpemVfdCBudW0gPSBhLnNpemUoKSAvIDI7CisgICAgYi5yZXNpemUobnVtKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bTsgaSsrKSB7CisgICAgICAgIGJbaV0gPSAoaGV4X3ZhbHVlW2FbaSAqIDJdICYgMHhGRl0gPDwgNCkgKyAoaGV4X3ZhbHVlW2FbaSAqIDIgKyAxXSAmIDB4RkZdKTsKKyAgICB9CisgICAgcmV0dXJuIGI7Cit9CisKK3N0cmluZyByc2Ffa2V5ID0gaGV4MnN0cigiMzA4MjAyNzUwMjAxMDAzMDBkMDYwOTJhODY0ODg2ZjcwZDAxMDEwMTA1MDAwNDgyMDI1ZjMwODIwMjViIgorICAgICAgICAgICAgICAgICAgICAgICAgICIwMjAxMDAwMjgxODEwMGM2MDk1NDA5MDQ3ZDg2MzQ4MTJkNWEyMTgxNzZlNDVjNDFkNjBhNzViMTM5MDEiCisgICAgICAgICAgICAgICAgICAgICAgICAgImYyMzQyMjZjZmZlNzc2NTIxYzVhNzdiOWUzODk0MTdiNzFjMGI2YTQ0ZDEzYWZlNGU0YTI4MDVkNDZjOSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZGEyOTM1YWRiMWZmMGMxZjI0ZWEwNmU2MmIyMGQ3NzY0MzBhNGQ0MzUxNTcyMzNjNmY5MTY3ODNjMzBlIgorICAgICAgICAgICAgICAgICAgICAgICAgICIzMTBmY2JkODliODVjMmQ1Njc3MTE2OTc4NWFjMTJiY2EyNDRhYmRhNzJiZmIxOWZjNDRkMjdjODFlMWQiCisgICAgICAgICAgICAgICAgICAgICAgICAgIjkyZGUyODRmNDA2MWVkZmQ5OTI4MDc0NWVhNmQyNTAyMDMwMTAwMDEwMjgxODAxYmUwZjA0ZDljYWUzNyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMTg2OTFmMDM1MzM4MzA4ZTkxNTY0YjU1ODk5ZmZiNTA4NGQyNDYwZTY2MzAyNTdlMDViM2NlYWIwMjk3IgorICAgICAgICAgICAgICAgICAgICAgICAgICIyZGZhYmNkNmNlNWY2ZWUyNTg5ZWI2NzkxMWVkMGZhYzE2ZTQzYTQ0NGI4Yzg2MWU1NDRhMDU5MzM2NTciCisgICAgICAgICAgICAgICAgICAgICAgICAgIjcyZjhiYWY2YjIyZmM5ZTNjNWYxMDI0YjA2M2FjMDgwYTdiMjIzNGNmOGFlZThmNmM0N2JiZjRmZDNhYyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZTcyNDAyOTBiZWYxNmMwYjNmN2YzY2RkNjRjZTNhYjU5MTJjZjZlMzJmMzlhYjE4ODM1OGFmY2NjZDgwIgorICAgICAgICAgICAgICAgICAgICAgICAgICI4MTAyNDEwMGU0YjQ5ZWY1MGY3NjVkM2IyNGRkZTAxYWNlYWFmMTMwZjJjNzY2NzBhOTFhNjFhZTA4YWYiCisgICAgICAgICAgICAgICAgICAgICAgICAgIjQ5N2I0YTgyYmU2ZGVlOGZjZGQ1ZTNmN2JhMWNmYjFmMGM5MjZiODhmODhjOTJiZmFiMTM3ZmJhMjI4NSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMjI3YjgzYzM0MmZmN2M1NTAyNDEwMGRkYWJiNTgzOWM0YzdmNmJmM2Q0MTgzMjMxZjAwNWIzMWFhNThhIgorICAgICAgICAgICAgICAgICAgICAgICAgICJmZmRkYTVjNzllNGNjZTIxN2Y2YmM5MzBkYmU1NjNkNDgwNzA2YzI0ZTllYmZjYWIyOGE2Y2RlZmQzMjQiCisgICAgICAgICAgICAgICAgICAgICAgICAgImI3N2UxYmY3MjUxYjcwOTA5MmMyNGZmNTAxZmQ5MTAyNDAyM2Q0MzQwZWRhMzQ0NWQ4Y2QyNmMxNDQxMSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZGE2ZmRjYTYzYzFjY2Q0YjgwYTk4YWQ1MmI3OGNjOGFkOGJlYjI4NDJjMWQyODA0MDViYzJmNmMxYmVhIgorICAgICAgICAgICAgICAgICAgICAgICAgICIyMTRhMWQ3NDJhYjk5NmIzNWI2M2E4MmE1ZTQ3MGZhODhkYmY4MjNjZGQwMjQwMWI3YjU3NDQ5YWQzMGQiCisgICAgICAgICAgICAgICAgICAgICAgICAgIjE1MTgyNDlhNWY1NmJiOTgyOTRkNGI2YWMxMmZmYzg2OTQwNDk3YTVhNTgzN2E2Y2Y5NDYyNjJiNDk0NSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMjZkMzI4YzExZTExMjYzODBmZGUwNGMyNGY5MTZkZWMyNTA4OTJkYjA5YTZkNzdjZGJhMzUxMDI0MDc3IgorICAgICAgICAgICAgICAgICAgICAgICAgICI2MmNkOGY0ZDA1MGRhNTZiZDU5MWFkYjUxNWQyNGQ3Y2NkMzJjY2EwZDA1Zjg2NmQ1ODM1MTRiZDczMjQiCisgICAgICAgICAgICAgICAgICAgICAgICAgImQ1ZjMzNjQ1ZThlZDhiNGExY2IzY2M0YTFkNjc5ODczOTlmMmEwOWY1YjNmYjY4Yzg4ZDVlNWQ5MGFjMyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMzQ5MmQ2Iik7CisKK3N0cmluZyBlY19rZXkgPSBoZXgyc3RyKCIzMDgxODcwMjAxMDAzMDEzMDYwNzJhODY0OGNlM2QwMjAxMDYwODJhODY0OGNlM2QwMzAxMDcwNDZkMzAiCisgICAgICAgICAgICAgICAgICAgICAgICAiNmIwMjAxMDEwNDIwNzM3YzJlY2Q3YjhkMTk0MGJmMjkzMGFhOWI0ZWQzZmY5NDFlZWQwOTM2NmJjMDMyIgorICAgICAgICAgICAgICAgICAgICAgICAgIjk5OTg2NDgxZjNhNGQ4NTlhMTQ0MDM0MjAwMDRiZjg1ZDc3MjBkMDdjMjU0NjE2ODNiYzY0OGI0Nzc4YSIKKyAgICAgICAgICAgICAgICAgICAgICAgICI5YTE0ZGQ4YTAyNGUzYmRkOGM3ZGRkOWFiMmI1MjhiYmM3YWExYjUxZjE0ZWJiYmIwYmQwY2UyMWJjYzQiCisgICAgICAgICAgICAgICAgICAgICAgICAiMWM2ZWIwMDA4M2NmMzM3NmQxMWZkNDQ5NDllMGIyMTgzYmZlIik7CisKK3N0cnVjdCBSU0FfRGVsZXRlIHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoUlNBKiBwKSB7IFJTQV9mcmVlKHApOyB9Cit9OworCitYNTA5KiBwYXJzZV9jZXJ0X2Jsb2IoY29uc3QgaGlkbF92ZWM8dWludDhfdD4mIGJsb2IpIHsKKyAgICBjb25zdCB1aW50OF90KiBwID0gYmxvYi5kYXRhKCk7CisgICAgcmV0dXJuIGQyaV9YNTA5KG51bGxwdHIsICZwLCBibG9iLnNpemUoKSk7Cit9CisKK2Jvb2wgdmVyaWZ5X2NoYWluKGNvbnN0IGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiYgY2hhaW4pIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoYWluLnNpemUoKSAtIDE7ICsraSkgeworICAgICAgICBhdXRvJiBrZXlfY2VydF9ibG9iID0gY2hhaW5baV07CisgICAgICAgIGF1dG8mIHNpZ25pbmdfY2VydF9ibG9iID0gY2hhaW5baSArIDFdOworCisgICAgICAgIFg1MDlfUHRyIGtleV9jZXJ0KHBhcnNlX2NlcnRfYmxvYihrZXlfY2VydF9ibG9iKSk7CisgICAgICAgIFg1MDlfUHRyIHNpZ25pbmdfY2VydChwYXJzZV9jZXJ0X2Jsb2Ioc2lnbmluZ19jZXJ0X2Jsb2IpKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoISFrZXlfY2VydC5nZXQoKSAmJiAhIXNpZ25pbmdfY2VydC5nZXQoKSk7CisgICAgICAgIGlmICgha2V5X2NlcnQuZ2V0KCkgfHwgIXNpZ25pbmdfY2VydC5nZXQoKSkgcmV0dXJuIGZhbHNlOworCisgICAgICAgIEVWUF9QS0VZX1B0ciBzaWduaW5nX3B1YmtleShYNTA5X2dldF9wdWJrZXkoc2lnbmluZ19jZXJ0LmdldCgpKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKCEhc2lnbmluZ19wdWJrZXkuZ2V0KCkpOworICAgICAgICBpZiAoIXNpZ25pbmdfcHVia2V5LmdldCgpKSByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgRVhQRUNUX0VRKDEsIFg1MDlfdmVyaWZ5KGtleV9jZXJ0LmdldCgpLCBzaWduaW5nX3B1YmtleS5nZXQoKSkpCisgICAgICAgICAgICA8PCAiVmVyaWZpY2F0aW9uIG9mIGNlcnRpZmljYXRlICIgPDwgaSA8PCAiIGZhaWxlZCI7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vIEV4dHJhY3QgYXR0ZXN0YXRpb24gcmVjb3JkIGZyb20gY2VydC4gUmV0dXJuZWQgb2JqZWN0IGlzIHN0aWxsIHBhcnQgb2YgY2VydDsgZG9uJ3QgZnJlZSBpdAorLy8gc2VwYXJhdGVseS4KK0FTTjFfT0NURVRfU1RSSU5HKiBnZXRfYXR0ZXN0YXRpb25fcmVjb3JkKFg1MDkqIGNlcnRpZmljYXRlKSB7CisgICAgQVNOMV9PQkpFQ1RfUHRyIG9pZChPQkpfdHh0Mm9iaihrQXR0ZXN0aW9uUmVjb3JkT2lkLCAxIC8qIGRvdHRlZCBzdHJpbmcgZm9ybWF0ICovKSk7CisgICAgRVhQRUNUX1RSVUUoISFvaWQuZ2V0KCkpOworICAgIGlmICghb2lkLmdldCgpKSByZXR1cm4gbnVsbHB0cjsKKworICAgIGludCBsb2NhdGlvbiA9IFg1MDlfZ2V0X2V4dF9ieV9PQkooY2VydGlmaWNhdGUsIG9pZC5nZXQoKSwgLTEgLyogc2VhcmNoIGZyb20gYmVnaW5uaW5nICovKTsKKyAgICBFWFBFQ1RfTkUoLTEsIGxvY2F0aW9uKTsKKyAgICBpZiAobG9jYXRpb24gPT0gLTEpIHJldHVybiBudWxscHRyOworCisgICAgWDUwOV9FWFRFTlNJT04qIGF0dGVzdF9yZWNfZXh0ID0gWDUwOV9nZXRfZXh0KGNlcnRpZmljYXRlLCBsb2NhdGlvbik7CisgICAgRVhQRUNUX1RSVUUoISFhdHRlc3RfcmVjX2V4dCk7CisgICAgaWYgKCFhdHRlc3RfcmVjX2V4dCkgcmV0dXJuIG51bGxwdHI7CisKKyAgICBBU04xX09DVEVUX1NUUklORyogYXR0ZXN0X3JlYyA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGF0dGVzdF9yZWNfZXh0KTsKKyAgICBFWFBFQ1RfVFJVRSghIWF0dGVzdF9yZWMpOworICAgIHJldHVybiBhdHRlc3RfcmVjOworfQorCitib29sIHRhZ19pbl9saXN0KGNvbnN0IEtleVBhcmFtZXRlciYgZW50cnkpIHsKKyAgICAvLyBBdHRlc3RhdGlvbnMgZG9uJ3QgY29udGFpbiBldmVyeXRoaW5nIGluIGtleSBhdXRob3JpemF0aW9uIGxpc3RzLCBzbyB3ZSBuZWVkIHRvIGZpbHRlcgorICAgIC8vIHRoZSBrZXkgbGlzdHMgdG8gcHJvZHVjZSB0aGUgbGlzdHMgdGhhdCB3ZSBleHBlY3QgdG8gbWF0Y2ggdGhlIGF0dGVzdGF0aW9ucy4KKyAgICBhdXRvIHRhZ19saXN0ID0geworICAgICAgICBUYWc6OlVTRVJfSUQsIFRhZzo6SU5DTFVERV9VTklRVUVfSUQsIFRhZzo6QkxPQl9VU0FHRV9SRVFVSVJFTUVOVFMsCisgICAgICAgIFRhZzo6RUNfQ1VSVkUgLyogVGFnOjpFQ19DVVJWRSB3aWxsIGJlIGluY2x1ZGVkIGJ5IEtNMiBpbXBsZW1lbnRhdGlvbnMgKi8sCisgICAgfTsKKyAgICByZXR1cm4gc3RkOjpmaW5kKHRhZ19saXN0LmJlZ2luKCksIHRhZ19saXN0LmVuZCgpLCBlbnRyeS50YWcpICE9IHRhZ19saXN0LmVuZCgpOworfQorCitBdXRob3JpemF0aW9uU2V0IGZpbHRlcl90YWdzKGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCkgeworICAgIEF1dGhvcml6YXRpb25TZXQgZmlsdGVyZWQ7CisgICAgc3RkOjpyZW1vdmVfY29weV9pZihzZXQuYmVnaW4oKSwgc2V0LmVuZCgpLCBzdGQ6OmJhY2tfaW5zZXJ0ZXIoZmlsdGVyZWQpLCB0YWdfaW5fbGlzdCk7CisgICAgcmV0dXJuIGZpbHRlcmVkOworfQorCitzdGQ6OnN0cmluZyBtYWtlX3N0cmluZyhjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKSB7CisgICAgcmV0dXJuIHN0ZDo6c3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEpLCBsZW5ndGgpOworfQorCit0ZW1wbGF0ZSA8c2l6ZV90IE4+IHN0ZDo6c3RyaW5nIG1ha2Vfc3RyaW5nKGNvbnN0IHVpbnQ4X3QgKCZhKVtOXSkgeworICAgIHJldHVybiBtYWtlX3N0cmluZyhhLCBOKTsKK30KKworY2xhc3MgSGlkbEJ1ZiA6IHB1YmxpYyBoaWRsX3ZlYzx1aW50OF90PiB7CisgICAgdHlwZWRlZiBoaWRsX3ZlYzx1aW50OF90PiBzdXBlcjsKKworICBwdWJsaWM6CisgICAgSGlkbEJ1ZigpIHt9CisgICAgSGlkbEJ1Zihjb25zdCBzdXBlciYgb3RoZXIpIDogc3VwZXIob3RoZXIpIHt9CisgICAgSGlkbEJ1ZihzdXBlciYmIG90aGVyKSA6IHN1cGVyKHN0ZDo6bW92ZShvdGhlcikpIHt9CisgICAgZXhwbGljaXQgSGlkbEJ1Zihjb25zdCBzdGQ6OnN0cmluZyYgb3RoZXIpIDogSGlkbEJ1ZigpIHsgKnRoaXMgPSBvdGhlcjsgfQorCisgICAgSGlkbEJ1ZiYgb3BlcmF0b3I9KGNvbnN0IHN1cGVyJiBvdGhlcikgeworICAgICAgICBzdXBlcjo6b3BlcmF0b3I9KG90aGVyKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIEhpZGxCdWYmIG9wZXJhdG9yPShzdXBlciYmIG90aGVyKSB7CisgICAgICAgIHN1cGVyOjpvcGVyYXRvcj0oc3RkOjptb3ZlKG90aGVyKSk7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBIaWRsQnVmJiBvcGVyYXRvcj0oY29uc3Qgc3RyaW5nJiBvdGhlcikgeworICAgICAgICByZXNpemUob3RoZXIuc2l6ZSgpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdGhlci5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgKCp0aGlzKVtpXSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KG90aGVyW2ldKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgc3RyaW5nIHRvX3N0cmluZygpIGNvbnN0IHsgcmV0dXJuIHN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhKCkpLCBzaXplKCkpOyB9Cit9OworCitjb25zdGV4cHIgdWludDY0X3Qga09wSGFuZGxlU2VudGluZWwgPSAweEZGRkZGRkZGRkZGRkZGRkY7CisKK30gIC8vIG5hbWVzcGFjZQorCitjbGFzcyBLZXltYXN0ZXJIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgIHB1YmxpYzoKKyAgICB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAoa2V5X2Jsb2JfLnNpemUoKSkgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgpKTsKKyAgICAgICAgfQorICAgICAgICBBYm9ydElmTmVlZGVkKCk7CisgICAgfQorCisgICAgLy8gU2V0VXBUZXN0Q2FzZSBydW5zIG9ubHkgb25jZSBwZXIgdGVzdCBjYXNlLCBub3Qgb25jZSBwZXIgdGVzdC4KKyAgICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgeworICAgICAgICBrZXltYXN0ZXJfID0gSUtleW1hc3RlckRldmljZTo6Z2V0U2VydmljZShzZXJ2aWNlX25hbWUpOworICAgICAgICBBU1NFUlRfTkUoa2V5bWFzdGVyXywgbnVsbHB0cik7CisKKyAgICAgICAgQVNTRVJUX1RSVUUoCisgICAgICAgICAgICBrZXltYXN0ZXJfCisgICAgICAgICAgICAgICAgLT5nZXRIYXJkd2FyZUZlYXR1cmVzKFsmXShib29sIGlzU2VjdXJlLCBib29sIHN1cHBvcnRzRWMsIGJvb2wgc3VwcG9ydHNTeW1tZXRyaWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHN1cHBvcnRzQXR0ZXN0YXRpb24sIGJvb2wgc3VwcG9ydHNBbGxEaWdlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF9zdHJpbmcmIG5hbWUsIGNvbnN0IGhpZGxfc3RyaW5nJiBhdXRob3IpIHsKKyAgICAgICAgICAgICAgICAgICAgaXNfc2VjdXJlXyA9IGlzU2VjdXJlOworICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c19lY18gPSBzdXBwb3J0c0VjOworICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c19zeW1tZXRyaWNfID0gc3VwcG9ydHNTeW1tZXRyaWM7CisgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzX2F0dGVzdGF0aW9uXyA9IHN1cHBvcnRzQXR0ZXN0YXRpb247CisgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRzX2FsbF9kaWdlc3RzXyA9IHN1cHBvcnRzQWxsRGlnZXN0czsKKyAgICAgICAgICAgICAgICAgICAgbmFtZV8gPSBuYW1lOworICAgICAgICAgICAgICAgICAgICBhdXRob3JfID0gYXV0aG9yOworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLmlzT2soKSk7CisKKyAgICAgICAgb3NfdmVyc2lvbl8gPSA6OmtleW1hc3Rlcjo6R2V0T3NWZXJzaW9uKCk7CisgICAgICAgIG9zX3BhdGNoX2xldmVsXyA9IDo6a2V5bWFzdGVyOjpHZXRPc1BhdGNobGV2ZWwoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBUZWFyRG93blRlc3RDYXNlKCkgeyBrZXltYXN0ZXJfLmNsZWFyKCk7IH0KKworICAgIHN0YXRpYyBJS2V5bWFzdGVyRGV2aWNlJiBrZXltYXN0ZXIoKSB7IHJldHVybiAqa2V5bWFzdGVyXzsgfQorICAgIHN0YXRpYyB1aW50MzJfdCBvc192ZXJzaW9uKCkgeyByZXR1cm4gb3NfdmVyc2lvbl87IH0KKyAgICBzdGF0aWMgdWludDMyX3Qgb3NfcGF0Y2hfbGV2ZWwoKSB7IHJldHVybiBvc19wYXRjaF9sZXZlbF87IH0KKworICAgIEF1dGhvcml6YXRpb25TZXQgVXNlckF1dGhzKCkgeyByZXR1cm4gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19VU0VSX0lELCA3KTsgfQorCisgICAgRXJyb3JDb2RlIEdlbmVyYXRlS2V5KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGtleV9kZXNjLCBIaWRsQnVmKiBrZXlfYmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Q2hhcmFjdGVyaXN0aWNzKiBrZXlfY2hhcmFjdGVyaXN0aWNzKSB7CisgICAgICAgIEVYUEVDVF9ORShrZXlfYmxvYiwgbnVsbHB0cik7CisgICAgICAgIEVYUEVDVF9ORShrZXlfY2hhcmFjdGVyaXN0aWNzLCBudWxscHRyKTsKKyAgICAgICAgRVhQRUNUX0VRKDBVLCBrZXlfYmxvYi0+c2l6ZSgpKTsKKworICAgICAgICBFcnJvckNvZGUgZXJyb3I7CisgICAgICAgIEVYUEVDVF9UUlVFKGtleW1hc3Rlcl8KKyAgICAgICAgICAgICAgICAgICAgICAgIC0+Z2VuZXJhdGVLZXkoa2V5X2Rlc2MuaGlkbF9kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgSGlkbEJ1ZiYgaGlkbF9rZXlfYmxvYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEtleUNoYXJhY3RlcmlzdGljcyYgaGlkbF9rZXlfY2hhcmFjdGVyaXN0aWNzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqa2V5X2Jsb2IgPSBoaWRsX2tleV9ibG9iOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmtleV9jaGFyYWN0ZXJpc3RpY3MgPSBoaWRsX2tleV9jaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgLy8gT24gZXJyb3IsIGJsb2IgJiBjaGFyYWN0ZXJpc3RpY3Mgc2hvdWxkIGJlIGVtcHR5LgorICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCBrZXlfYmxvYi0+c2l6ZSgpKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUSgwVSwgKGtleV9jaGFyYWN0ZXJpc3RpY3MtPnNvZnR3YXJlRW5mb3JjZWQuc2l6ZSgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9jaGFyYWN0ZXJpc3RpY3MtPnRlZUVuZm9yY2VkLnNpemUoKSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgR2VuZXJhdGVLZXkoY29uc3QgQXV0aG9yaXphdGlvblNldCYga2V5X2Rlc2MpIHsKKyAgICAgICAgcmV0dXJuIEdlbmVyYXRlS2V5KGtleV9kZXNjLCAma2V5X2Jsb2JfLCAma2V5X2NoYXJhY3RlcmlzdGljc18pOworICAgIH0KKworICAgIEVycm9yQ29kZSBJbXBvcnRLZXkoY29uc3QgQXV0aG9yaXphdGlvblNldCYga2V5X2Rlc2MsIEtleUZvcm1hdCBmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGtleV9tYXRlcmlhbCwgSGlkbEJ1Zioga2V5X2Jsb2IsCisgICAgICAgICAgICAgICAgICAgICAgICBLZXlDaGFyYWN0ZXJpc3RpY3MqIGtleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yOworICAgICAgICBFWFBFQ1RfVFJVRShrZXltYXN0ZXJfCisgICAgICAgICAgICAgICAgICAgICAgICAtPmltcG9ydEtleShrZXlfZGVzYy5oaWRsX2RhdGEoKSwgZm9ybWF0LCBIaWRsQnVmKGtleV9tYXRlcmlhbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oRXJyb3JDb2RlIGhpZGxfZXJyb3IsIGNvbnN0IEhpZGxCdWYmIGhpZGxfa2V5X2Jsb2IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBoaWRsX2tleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmtleV9ibG9iID0gaGlkbF9rZXlfYmxvYjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqa2V5X2NoYXJhY3RlcmlzdGljcyA9IGhpZGxfa2V5X2NoYXJhY3RlcmlzdGljczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgLy8gT24gZXJyb3IsIGJsb2IgJiBjaGFyYWN0ZXJpc3RpY3Mgc2hvdWxkIGJlIGVtcHR5LgorICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCBrZXlfYmxvYi0+c2l6ZSgpKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUSgwVSwgKGtleV9jaGFyYWN0ZXJpc3RpY3MtPnNvZnR3YXJlRW5mb3JjZWQuc2l6ZSgpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9jaGFyYWN0ZXJpc3RpY3MtPnRlZUVuZm9yY2VkLnNpemUoKSkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgSW1wb3J0S2V5KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGtleV9kZXNjLCBLZXlGb3JtYXQgZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBrZXlfbWF0ZXJpYWwpIHsKKyAgICAgICAgcmV0dXJuIEltcG9ydEtleShrZXlfZGVzYywgZm9ybWF0LCBrZXlfbWF0ZXJpYWwsICZrZXlfYmxvYl8sICZrZXlfY2hhcmFjdGVyaXN0aWNzXyk7CisgICAgfQorCisgICAgRXJyb3JDb2RlIEV4cG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3QgSGlkbEJ1ZiYgY2xpZW50X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSGlkbEJ1ZiYgYXBwX2RhdGEsIEhpZGxCdWYqIGtleV9tYXRlcmlhbCkgeworICAgICAgICBFcnJvckNvZGUgZXJyb3I7CisgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAga2V5bWFzdGVyXworICAgICAgICAgICAgICAgIC0+ZXhwb3J0S2V5KGZvcm1hdCwga2V5X2Jsb2IsIGNsaWVudF9pZCwgYXBwX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKEVycm9yQ29kZSBoaWRsX2Vycm9yX2NvZGUsIGNvbnN0IEhpZGxCdWYmIGhpZGxfa2V5X21hdGVyaWFsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yID0gaGlkbF9lcnJvcl9jb2RlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqa2V5X21hdGVyaWFsID0gaGlkbF9rZXlfbWF0ZXJpYWw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgLy8gT24gZXJyb3IsIGJsb2Igc2hvdWxkIGJlIGVtcHR5LgorICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCBrZXlfbWF0ZXJpYWwtPnNpemUoKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBFeHBvcnRLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgSGlkbEJ1Zioga2V5X21hdGVyaWFsKSB7CisgICAgICAgIEhpZGxCdWYgY2xpZW50X2lkLCBhcHBfZGF0YTsKKyAgICAgICAgcmV0dXJuIEV4cG9ydEtleShmb3JtYXQsIGtleV9ibG9iXywgY2xpZW50X2lkLCBhcHBfZGF0YSwga2V5X21hdGVyaWFsKTsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgRGVsZXRlS2V5KEhpZGxCdWYqIGtleV9ibG9iLCBib29sIGtlZXBfa2V5X2Jsb2IgPSBmYWxzZSkgeworICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBrZXltYXN0ZXJfLT5kZWxldGVLZXkoKmtleV9ibG9iKTsKKyAgICAgICAgaWYgKCFrZWVwX2tleV9ibG9iKSAqa2V5X2Jsb2IgPSBIaWRsQnVmKCk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgRGVsZXRlS2V5KGJvb2wga2VlcF9rZXlfYmxvYiA9IGZhbHNlKSB7CisgICAgICAgIHJldHVybiBEZWxldGVLZXkoJmtleV9ibG9iXywga2VlcF9rZXlfYmxvYik7CisgICAgfQorCisgICAgRXJyb3JDb2RlIERlbGV0ZUFsbEtleXMoKSB7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IGtleW1hc3Rlcl8tPmRlbGV0ZUFsbEtleXMoKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBHZXRDaGFyYWN0ZXJpc3RpY3MoY29uc3QgSGlkbEJ1ZiYga2V5X2Jsb2IsIGNvbnN0IEhpZGxCdWYmIGNsaWVudF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhpZGxCdWYmIGFwcF9kYXRhLCBLZXlDaGFyYWN0ZXJpc3RpY3MqIGtleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yOworICAgICAgICBrZXltYXN0ZXJfLT5nZXRLZXlDaGFyYWN0ZXJpc3RpY3MoCisgICAgICAgICAgICBrZXlfYmxvYiwgY2xpZW50X2lkLCBhcHBfZGF0YSwKKyAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgS2V5Q2hhcmFjdGVyaXN0aWNzJiBoaWRsX2tleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3IsICprZXlfY2hhcmFjdGVyaXN0aWNzID0gaGlkbF9rZXlfY2hhcmFjdGVyaXN0aWNzOworICAgICAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgR2V0Q2hhcmFjdGVyaXN0aWNzKGNvbnN0IEhpZGxCdWYmIGtleV9ibG9iLCBLZXlDaGFyYWN0ZXJpc3RpY3MqIGtleV9jaGFyYWN0ZXJpc3RpY3MpIHsKKyAgICAgICAgSGlkbEJ1ZiBjbGllbnRfaWQsIGFwcF9kYXRhOworICAgICAgICByZXR1cm4gR2V0Q2hhcmFjdGVyaXN0aWNzKGtleV9ibG9iLCBjbGllbnRfaWQsIGFwcF9kYXRhLCBrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCBjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgaW5fcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zLCBPcGVyYXRpb25IYW5kbGUqIG9wX2hhbmRsZSkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkJlZ2luIik7CisgICAgICAgIEVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAgT3BlcmF0aW9uSGFuZGxlIHNhdmVkX2hhbmRsZSA9ICpvcF9oYW5kbGU7CisgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAga2V5bWFzdGVyXworICAgICAgICAgICAgICAgIC0+YmVnaW4ocHVycG9zZSwga2V5X2Jsb2IsIGluX3BhcmFtcy5oaWRsX2RhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaGlkbF9vdXRfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGhpZGxfb3BfaGFuZGxlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBoaWRsX2Vycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvdXRfcGFyYW1zID0gaGlkbF9vdXRfcGFyYW1zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvcF9oYW5kbGUgPSBoaWRsX29wX2hhbmRsZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICAvLyBTb21lIGltcGxlbWVudGF0aW9ucyBtYXkgbW9kaWZ5ICpvcF9oYW5kbGUgb24gZXJyb3IuCisgICAgICAgICAgICAqb3BfaGFuZGxlID0gc2F2ZWRfaGFuZGxlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJCZWdpbiIpOworICAgICAgICBFWFBFQ1RfRVEoa09wSGFuZGxlU2VudGluZWwsIG9wX2hhbmRsZV8pOworICAgICAgICByZXR1cm4gQmVnaW4ocHVycG9zZSwga2V5X2Jsb2JfLCBpbl9wYXJhbXMsIG91dF9wYXJhbXMsICZvcF9oYW5kbGVfKTsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQmVnaW4oS2V5UHVycG9zZSBwdXJwb3NlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJCZWdpbiIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IEJlZ2luKHB1cnBvc2UsIGluX3BhcmFtcywgJm91dF9wYXJhbXMpOworICAgICAgICBFWFBFQ1RfVFJVRShvdXRfcGFyYW1zLmVtcHR5KCkpOworICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgRXJyb3JDb2RlIFVwZGF0ZShPcGVyYXRpb25IYW5kbGUgb3BfaGFuZGxlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGlucHV0LCBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zLCBzdHJpbmcqIG91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgIHNpemVfdCogaW5wdXRfY29uc3VtZWQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJVcGRhdGUiKTsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yOworICAgICAgICBFWFBFQ1RfVFJVRShrZXltYXN0ZXJfCisgICAgICAgICAgICAgICAgICAgICAgICAtPnVwZGF0ZShvcF9oYW5kbGUsIGluX3BhcmFtcy5oaWRsX2RhdGEoKSwgSGlkbEJ1ZihpbnB1dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oRXJyb3JDb2RlIGhpZGxfZXJyb3IsIHVpbnQzMl90IGhpZGxfaW5wdXRfY29uc3VtZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaGlkbF9vdXRfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEhpZGxCdWYmIGhpZGxfb3V0cHV0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBoaWRsX2Vycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dF9wYXJhbXMtPnB1c2hfYmFjayhBdXRob3JpemF0aW9uU2V0KGhpZGxfb3V0X3BhcmFtcykpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dC0+YXBwZW5kKGhpZGxfb3V0cHV0LnRvX3N0cmluZygpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqaW5wdXRfY29uc3VtZWQgPSBoaWRsX2lucHV0X2NvbnN1bWVkOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgRXJyb3JDb2RlIFVwZGF0ZShjb25zdCBzdHJpbmcmIGlucHV0LCBzdHJpbmcqIG91dCwgc2l6ZV90KiBpbnB1dF9jb25zdW1lZCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIlVwZGF0ZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IFVwZGF0ZShvcF9oYW5kbGVfLCBBdXRob3JpemF0aW9uU2V0KCkgLyogaW5fcGFyYW1zICovLCBpbnB1dCwgJm91dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQsIGlucHV0X2NvbnN1bWVkKTsKKyAgICAgICAgRVhQRUNUX1RSVUUob3V0X3BhcmFtcy5lbXB0eSgpKTsKKyAgICAgICAgcmV0dXJuIGVycm9yOworICAgIH0KKworICAgIEVycm9yQ29kZSBGaW5pc2goT3BlcmF0aW9uSGFuZGxlIG9wX2hhbmRsZSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgaW5fcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBpbnB1dCwgY29uc3Qgc3RyaW5nJiBzaWduYXR1cmUsIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICBzdHJpbmcqIG91dHB1dCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkZpbmlzaCIpOworICAgICAgICBFcnJvckNvZGUgZXJyb3I7CisgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAga2V5bWFzdGVyXworICAgICAgICAgICAgICAgIC0+ZmluaXNoKG9wX2hhbmRsZSwgaW5fcGFyYW1zLmhpZGxfZGF0YSgpLCBIaWRsQnVmKGlucHV0KSwgSGlkbEJ1ZihzaWduYXR1cmUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShFcnJvckNvZGUgaGlkbF9lcnJvciwgY29uc3QgaGlkbF92ZWM8S2V5UGFyYW1ldGVyPiYgaGlkbF9vdXRfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBIaWRsQnVmJiBoaWRsX291dHB1dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IGhpZGxfZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpvdXRfcGFyYW1zID0gaGlkbF9vdXRfcGFyYW1zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQtPmFwcGVuZChoaWRsX291dHB1dC50b19zdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgb3BfaGFuZGxlXyA9IGtPcEhhbmRsZVNlbnRpbmVsOyAgLy8gU28gZHRvciBkb2Vzbid0IEFib3J0KCkuCisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgRmluaXNoKGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgc3RyaW5nKiBvdXRwdXQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJGaW5pc2giKTsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBvdXRfcGFyYW1zOworICAgICAgICBzdHJpbmcgZmluaXNoX291dHB1dDsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gRmluaXNoKG9wX2hhbmRsZV8sIEF1dGhvcml6YXRpb25TZXQoKSAvKiBpbl9wYXJhbXMgKi8sIG1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiAvKiBzaWduYXR1cmUgKi8sICZvdXRfcGFyYW1zLCBvdXRwdXQpOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgcmV0dXJuIGVycm9yOworICAgICAgICB9CisgICAgICAgIEVYUEVDVF9FUSgwVSwgb3V0X3BhcmFtcy5zaXplKCkpOworICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgfQorCisgICAgRXJyb3JDb2RlIEZpbmlzaChjb25zdCBzdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IHN0cmluZyYgc2lnbmF0dXJlLCBzdHJpbmcqIG91dHB1dCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkZpbmlzaCIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIEVycm9yQ29kZSBlcnJvciA9IEZpbmlzaChvcF9oYW5kbGVfLCBBdXRob3JpemF0aW9uU2V0KCkgLyogaW5fcGFyYW1zICovLCBtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0X3BhcmFtcywgb3V0cHV0KTsKKyAgICAgICAgb3BfaGFuZGxlXyA9IGtPcEhhbmRsZVNlbnRpbmVsOyAgLy8gU28gZHRvciBkb2Vzbid0IEFib3J0KCkuCisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICByZXR1cm4gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgRVhQRUNUX0VRKDBVLCBvdXRfcGFyYW1zLnNpemUoKSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQWJvcnQoT3BlcmF0aW9uSGFuZGxlIG9wX2hhbmRsZSkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkFib3J0Iik7CisgICAgICAgIGF1dG8gcmV0dmFsID0ga2V5bWFzdGVyXy0+YWJvcnQob3BfaGFuZGxlKTsKKyAgICAgICAgRVhQRUNUX1RSVUUocmV0dmFsLmlzT2soKSk7CisgICAgICAgIHJldHVybiByZXR2YWw7CisgICAgfQorCisgICAgdm9pZCBBYm9ydElmTmVlZGVkKCkgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkFib3J0SWZOZWVkZWQiKTsKKyAgICAgICAgaWYgKG9wX2hhbmRsZV8gIT0ga09wSGFuZGxlU2VudGluZWwpIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBBYm9ydChvcF9oYW5kbGVfKSk7CisgICAgICAgICAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBFcnJvckNvZGUgQXR0ZXN0S2V5KGNvbnN0IEhpZGxCdWYmIGtleV9ibG9iLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBhdHRlc3RfcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgaGlkbF92ZWM8aGlkbF92ZWM8dWludDhfdD4+KiBjZXJ0X2NoYWluKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQXR0ZXN0S2V5Iik7CisgICAgICAgIEVycm9yQ29kZSBlcnJvcjsKKyAgICAgICAga2V5bWFzdGVyXy0+YXR0ZXN0S2V5KAorICAgICAgICAgICAga2V5X2Jsb2IsIGF0dGVzdF9wYXJhbXMuaGlkbF9kYXRhKCksCisgICAgICAgICAgICBbJl0oRXJyb3JDb2RlIGhpZGxfZXJyb3IsIGNvbnN0IGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiYgaGlkbF9jZXJ0X2NoYWluKSB7CisgICAgICAgICAgICAgICAgZXJyb3IgPSBoaWRsX2Vycm9yOworICAgICAgICAgICAgICAgICpjZXJ0X2NoYWluID0gaGlkbF9jZXJ0X2NoYWluOworICAgICAgICAgICAgfSk7CisgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICB9CisKKyAgICBFcnJvckNvZGUgQXR0ZXN0S2V5KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIGF0dGVzdF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4qIGNlcnRfY2hhaW4pIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJBdHRlc3RLZXkiKTsKKyAgICAgICAgcmV0dXJuIEF0dGVzdEtleShrZXlfYmxvYl8sIGF0dGVzdF9wYXJhbXMsIGNlcnRfY2hhaW4pOworICAgIH0KKworICAgIHN0cmluZyBQcm9jZXNzTWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgS2V5UHVycG9zZSBvcGVyYXRpb24sIGNvbnN0IHN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXV0aG9yaXphdGlvblNldCYgaW5fcGFyYW1zLCBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiUHJvY2Vzc01lc3NhZ2UiKTsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgICAgIEJlZ2luKG9wZXJhdGlvbiwga2V5X2Jsb2IsIGluX3BhcmFtcywgJmJlZ2luX291dF9wYXJhbXMsICZvcF9oYW5kbGVfKSk7CisKKyAgICAgICAgc3RyaW5nIHVudXNlZDsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBmaW5pc2hfcGFyYW1zOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9vdXRfcGFyYW1zOworICAgICAgICBzdHJpbmcgb3V0cHV0OworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgICAgIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBtZXNzYWdlLCB1bnVzZWQsICZmaW5pc2hfb3V0X3BhcmFtcywgJm91dHB1dCkpOworICAgICAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7CisKKyAgICAgICAgb3V0X3BhcmFtcy0+cHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworICAgICAgICBvdXRfcGFyYW1zLT5wdXNoX2JhY2soZmluaXNoX291dF9wYXJhbXMpOworICAgICAgICByZXR1cm4gb3V0cHV0OworICAgIH0KKworICAgIHN0cmluZyBTaWduTWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBwYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJTaWduTWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBzaWduYXR1cmUgPSBQcm9jZXNzTWVzc2FnZShrZXlfYmxvYiwgS2V5UHVycG9zZTo6U0lHTiwgbWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgICAgIEVYUEVDVF9UUlVFKG91dF9wYXJhbXMuZW1wdHkoKSk7CisgICAgICAgIHJldHVybiBzaWduYXR1cmU7CisgICAgfQorCisgICAgc3RyaW5nIFNpZ25NZXNzYWdlKGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiU2lnbk1lc3NhZ2UiKTsKKyAgICAgICAgcmV0dXJuIFNpZ25NZXNzYWdlKGtleV9ibG9iXywgbWVzc2FnZSwgcGFyYW1zKTsKKyAgICB9CisKKyAgICBzdHJpbmcgTWFjTWVzc2FnZShjb25zdCBzdHJpbmcmIG1lc3NhZ2UsIERpZ2VzdCBkaWdlc3QsIHNpemVfdCBtYWNfbGVuZ3RoKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiTWFjTWVzc2FnZSIpOworICAgICAgICByZXR1cm4gU2lnbk1lc3NhZ2UoCisgICAgICAgICAgICBrZXlfYmxvYl8sIG1lc3NhZ2UsCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIG1hY19sZW5ndGgpKTsKKyAgICB9CisKKyAgICB2b2lkIENoZWNrSG1hY1Rlc3RWZWN0b3IoY29uc3Qgc3RyaW5nJiBrZXksIGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgRGlnZXN0IGRpZ2VzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nJiBleHBlY3RlZF9tYWMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja0htYWNUZXN0VmVjdG9yIik7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgSW1wb3J0S2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KGtleS5zaXplKCkgKiA4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIGV4cGVjdGVkX21hYy5zaXplKCkgKiA4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KGRpZ2VzdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpSQVcsIGtleSkpOworICAgICAgICBzdHJpbmcgc2lnbmF0dXJlID0gTWFjTWVzc2FnZShtZXNzYWdlLCBkaWdlc3QsIGV4cGVjdGVkX21hYy5zaXplKCkgKiA4KTsKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkX21hYywgc2lnbmF0dXJlKSA8PCAiVGVzdCB2ZWN0b3IgZGlkbid0IG1hdGNoIGZvciBkaWdlc3QgIiA8PCAoaW50KWRpZ2VzdDsKKyAgICAgICAgRGVsZXRlS2V5KCk7CisgICAgfQorCisgICAgdm9pZCBDaGVja0Flc0N0clRlc3RWZWN0b3IoY29uc3Qgc3RyaW5nJiBrZXksIGNvbnN0IHN0cmluZyYgbm9uY2UsIGNvbnN0IHN0cmluZyYgbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmcmIGV4cGVjdGVkX2NpcGhlcnRleHQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja0Flc0N0clRlc3RWZWN0b3IiKTsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleShrZXkuc2l6ZSgpICogOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0NBTExFUl9OT05DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UkFXLCBrZXkpKTsKKworICAgICAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBub25jZS5kYXRhKCksIG5vbmNlLnNpemUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2Uoa2V5X2Jsb2JfLCBtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkX2NpcGhlcnRleHQsIGNpcGhlcnRleHQpOworICAgIH0KKworICAgIHZvaWQgVmVyaWZ5TWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBzdHJpbmcmIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiVmVyaWZ5TWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLCBrZXlfYmxvYiwgcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKworICAgICAgICBzdHJpbmcgdW51c2VkOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9wYXJhbXM7CisgICAgICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBvdXRwdXQ7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgbWVzc2FnZSwgc2lnbmF0dXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJm91dHB1dCkpOworICAgICAgICBvcF9oYW5kbGVfID0ga09wSGFuZGxlU2VudGluZWw7CisgICAgICAgIEVYUEVDVF9UUlVFKG91dHB1dC5lbXB0eSgpKTsKKyAgICB9CisKKyAgICB2b2lkIFZlcmlmeU1lc3NhZ2UoY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBzdHJpbmcmIHNpZ25hdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiVmVyaWZ5TWVzc2FnZSIpOworICAgICAgICBWZXJpZnlNZXNzYWdlKGtleV9ibG9iXywgbWVzc2FnZSwgc2lnbmF0dXJlLCBwYXJhbXMpOworICAgIH0KKworICAgIHN0cmluZyBFbmNyeXB0TWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBpbl9wYXJhbXMsIEF1dGhvcml6YXRpb25TZXQqIG91dF9wYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJFbmNyeXB0TWVzc2FnZSIpOworICAgICAgICByZXR1cm4gUHJvY2Vzc01lc3NhZ2Uoa2V5X2Jsb2IsIEtleVB1cnBvc2U6OkVOQ1JZUFQsIG1lc3NhZ2UsIGluX3BhcmFtcywgb3V0X3BhcmFtcyk7CisgICAgfQorCisgICAgc3RyaW5nIEVuY3J5cHRNZXNzYWdlKGNvbnN0IHN0cmluZyYgbWVzc2FnZSwgY29uc3QgQXV0aG9yaXphdGlvblNldCYgcGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0KiBvdXRfcGFyYW1zKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiRW5jcnlwdE1lc3NhZ2UiKTsKKyAgICAgICAgcmV0dXJuIEVuY3J5cHRNZXNzYWdlKGtleV9ibG9iXywgbWVzc2FnZSwgcGFyYW1zLCBvdXRfcGFyYW1zKTsKKyAgICB9CisKKyAgICBzdHJpbmcgRW5jcnlwdE1lc3NhZ2UoY29uc3Qgc3RyaW5nJiBtZXNzYWdlLCBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBwYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJFbmNyeXB0TWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zLCAmb3V0X3BhcmFtcyk7CisgICAgICAgIEVYUEVDVF9UUlVFKG91dF9wYXJhbXMuZW1wdHkoKSkKKyAgICAgICAgICAgIDw8ICJPdXRwdXQgcGFyYW1zIHNob3VsZCBiZSBlbXB0eS4gQ29udGFpbmVkOiAiIDw8IG91dF9wYXJhbXM7CisgICAgICAgIHJldHVybiBjaXBoZXJ0ZXh0OworICAgIH0KKworICAgIHN0cmluZyBEZWNyeXB0TWVzc2FnZShjb25zdCBIaWRsQnVmJiBrZXlfYmxvYiwgY29uc3Qgc3RyaW5nJiBjaXBoZXJ0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdXRob3JpemF0aW9uU2V0JiBwYXJhbXMpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJEZWNyeXB0TWVzc2FnZSIpOworICAgICAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgICAgIHN0cmluZyBwbGFpbnRleHQgPQorICAgICAgICAgICAgUHJvY2Vzc01lc3NhZ2Uoa2V5X2Jsb2IsIEtleVB1cnBvc2U6OkRFQ1JZUFQsIGNpcGhlcnRleHQsIHBhcmFtcywgJm91dF9wYXJhbXMpOworICAgICAgICBFWFBFQ1RfVFJVRShvdXRfcGFyYW1zLmVtcHR5KCkpOworICAgICAgICByZXR1cm4gcGxhaW50ZXh0OworICAgIH0KKworICAgIHN0cmluZyBEZWNyeXB0TWVzc2FnZShjb25zdCBzdHJpbmcmIGNpcGhlcnRleHQsIGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHBhcmFtcykgeworICAgICAgICBTQ09QRURfVFJBQ0UoIkRlY3J5cHRNZXNzYWdlIik7CisgICAgICAgIHJldHVybiBEZWNyeXB0TWVzc2FnZShrZXlfYmxvYl8sIGNpcGhlcnRleHQsIHBhcmFtcyk7CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lIFZhbHVlVD4KKyAgICB2b2lkIENoZWNrS20wQ3J5cHRvUGFyYW0oVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUIGV4cGVjdGVkKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQ2hlY2tLbTBDcnlwdG9QYXJhbSIpOworICAgICAgICBpZiAoaXNfc2VjdXJlXykgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQsIHR0YWcsIGV4cGVjdGVkKSk7CisgICAgICAgICAgICBFWFBFQ1RfRkFMU0UoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgdHRhZykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgdHRhZywgZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgdHRhZykpOworICAgICAgICB9CisgICAgfQorCisgICAgdGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWcsIHR5cGVuYW1lIFZhbHVlVD4KKyAgICB2b2lkIENoZWNrS20xQ3J5cHRvUGFyYW0oVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUIGV4cGVjdGVkKSB7CisgICAgICAgIFNDT1BFRF9UUkFDRSgiQ2hlY2tLbTFDcnlwdG9QYXJhbSIpOworICAgICAgICBpZiAoaXNfc2VjdXJlXyAmJiBzdXBwb3J0c19zeW1tZXRyaWNfKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgdHRhZywgZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy5zb2Z0d2FyZUVuZm9yY2VkLCB0dGFnKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy5zb2Z0d2FyZUVuZm9yY2VkLCB0dGFnLCBleHBlY3RlZCkpOworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCB0dGFnKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUgVmFsdWVUPgorICAgIHZvaWQgQ2hlY2tLbTJDcnlwdG9QYXJhbShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiB0dGFnLCBWYWx1ZVQgZXhwZWN0ZWQpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja0ttMkNyeXB0b1BhcmFtIik7CisgICAgICAgIGlmIChzdXBwb3J0c19hdHRlc3RhdGlvbl8pIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCB0dGFnLCBleHBlY3RlZCkpOworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQsIHR0YWcpKTsKKyAgICAgICAgfSBlbHNlIGlmICghc3VwcG9ydHNfc3ltbWV0cmljXyAvKiBLTSB2ZXJzaW9uIDwgMSBvciBTVyAqLykgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoY29udGFpbnMoa2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgdHRhZywgZXhwZWN0ZWQpKTsKKyAgICAgICAgICAgIEVYUEVDVF9GQUxTRShjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgdHRhZykpOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCBDaGVja09yaWdpbigpIHsKKyAgICAgICAgU0NPUEVEX1RSQUNFKCJDaGVja09yaWdpbiIpOworICAgICAgICBpZiAoaXNfc2VjdXJlXyAmJiBzdXBwb3J0c19zeW1tZXRyaWNfKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSgKKyAgICAgICAgICAgICAgICBjb250YWlucyhrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCwgVEFHX09SSUdJTiwgS2V5T3JpZ2luOjpJTVBPUlRFRCkpOworICAgICAgICB9IGVsc2UgaWYgKGlzX3NlY3VyZV8pIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCBUQUdfT1JJR0lOLCBLZXlPcmlnaW46OlVOS05PV04pKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKAorICAgICAgICAgICAgICAgIGNvbnRhaW5zKGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQsIFRBR19PUklHSU4sIEtleU9yaWdpbjo6SU1QT1JURUQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN0YXRpYyBib29sIElzU2VjdXJlKCkgeyByZXR1cm4gaXNfc2VjdXJlXzsgfQorICAgIHN0YXRpYyBib29sIFN1cHBvcnRzRWMoKSB7IHJldHVybiBzdXBwb3J0c19lY187IH0KKyAgICBzdGF0aWMgYm9vbCBTdXBwb3J0c1N5bW1ldHJpYygpIHsgcmV0dXJuIHN1cHBvcnRzX3N5bW1ldHJpY187IH0KKyAgICBzdGF0aWMgYm9vbCBTdXBwb3J0c0FsbERpZ2VzdHMoKSB7IHJldHVybiBzdXBwb3J0c19hbGxfZGlnZXN0c187IH0KKyAgICBzdGF0aWMgYm9vbCBTdXBwb3J0c0F0dGVzdGF0aW9uKCkgeyByZXR1cm4gc3VwcG9ydHNfYXR0ZXN0YXRpb25fOyB9CisKKyAgICBzdGF0aWMgYm9vbCBLbTJQcm9maWxlKCkgeworICAgICAgICByZXR1cm4gU3VwcG9ydHNBdHRlc3RhdGlvbigpICYmIFN1cHBvcnRzQWxsRGlnZXN0cygpICYmIFN1cHBvcnRzU3ltbWV0cmljKCkgJiYKKyAgICAgICAgICAgICAgIFN1cHBvcnRzRWMoKSAmJiBJc1NlY3VyZSgpOworICAgIH0KKworICAgIHN0YXRpYyBib29sIEttMVByb2ZpbGUoKSB7CisgICAgICAgIHJldHVybiAhU3VwcG9ydHNBdHRlc3RhdGlvbigpICYmIFN1cHBvcnRzU3ltbWV0cmljKCkgJiYgU3VwcG9ydHNFYygpICYmIElzU2VjdXJlKCk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgS20wUHJvZmlsZSgpIHsKKyAgICAgICAgcmV0dXJuICFTdXBwb3J0c0F0dGVzdGF0aW9uKCkgJiYgIVN1cHBvcnRzQWxsRGlnZXN0cygpICYmICFTdXBwb3J0c1N5bW1ldHJpYygpICYmCisgICAgICAgICAgICAgICBJc1NlY3VyZSgpOworICAgIH0KKworICAgIHN0YXRpYyBib29sIFN3T25seVByb2ZpbGUoKSB7CisgICAgICAgIHJldHVybiAhU3VwcG9ydHNBdHRlc3RhdGlvbigpICYmICFTdXBwb3J0c0FsbERpZ2VzdHMoKSAmJiAhU3VwcG9ydHNTeW1tZXRyaWMoKSAmJgorICAgICAgICAgICAgICAgIVN1cHBvcnRzRWMoKSAmJiAhSXNTZWN1cmUoKTsKKyAgICB9CisKKyAgICBIaWRsQnVmIGtleV9ibG9iXzsKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3Mga2V5X2NoYXJhY3RlcmlzdGljc187CisgICAgT3BlcmF0aW9uSGFuZGxlIG9wX2hhbmRsZV8gPSBrT3BIYW5kbGVTZW50aW5lbDsKKworICBwcml2YXRlOgorICAgIHN0YXRpYyBzcDxJS2V5bWFzdGVyRGV2aWNlPiBrZXltYXN0ZXJfOworICAgIHN0YXRpYyB1aW50MzJfdCBvc192ZXJzaW9uXzsKKyAgICBzdGF0aWMgdWludDMyX3Qgb3NfcGF0Y2hfbGV2ZWxfOworCisgICAgc3RhdGljIGJvb2wgaXNfc2VjdXJlXzsKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c19lY187CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNfc3ltbWV0cmljXzsKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c19hdHRlc3RhdGlvbl87CisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNfYWxsX2RpZ2VzdHNfOworICAgIHN0YXRpYyBoaWRsX3N0cmluZyBuYW1lXzsKKyAgICBzdGF0aWMgaGlkbF9zdHJpbmcgYXV0aG9yXzsKK307CisKK2Jvb2wgdmVyaWZ5X2F0dGVzdGF0aW9uX3JlY29yZChjb25zdCBzdHJpbmcmIGNoYWxsZW5nZSwgY29uc3Qgc3RyaW5nJiBhcHBfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldCBleHBlY3RlZF9zd19lbmZvcmNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0IGV4cGVjdGVkX3RlZV9lbmZvcmNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWRsX3ZlYzx1aW50OF90PiYgYXR0ZXN0YXRpb25fY2VydCkgeworICAgIFg1MDlfUHRyIGNlcnQocGFyc2VfY2VydF9ibG9iKGF0dGVzdGF0aW9uX2NlcnQpKTsKKyAgICBFWFBFQ1RfVFJVRSghIWNlcnQuZ2V0KCkpOworICAgIGlmICghY2VydC5nZXQoKSkgcmV0dXJuIGZhbHNlOworCisgICAgQVNOMV9PQ1RFVF9TVFJJTkcqIGF0dGVzdF9yZWMgPSBnZXRfYXR0ZXN0YXRpb25fcmVjb3JkKGNlcnQuZ2V0KCkpOworICAgIEVYUEVDVF9UUlVFKCEhYXR0ZXN0X3JlYyk7CisgICAgaWYgKCFhdHRlc3RfcmVjKSByZXR1cm4gZmFsc2U7CisKKyAgICBBdXRob3JpemF0aW9uU2V0IGF0dF9zd19lbmZvcmNlZDsKKyAgICBBdXRob3JpemF0aW9uU2V0IGF0dF90ZWVfZW5mb3JjZWQ7CisgICAgdWludDMyX3QgYXR0X2F0dGVzdGF0aW9uX3ZlcnNpb247CisgICAgdWludDMyX3QgYXR0X2tleW1hc3Rlcl92ZXJzaW9uOworICAgIFNlY3VyaXR5TGV2ZWwgYXR0X2F0dGVzdGF0aW9uX3NlY3VyaXR5X2xldmVsOworICAgIFNlY3VyaXR5TGV2ZWwgYXR0X2tleW1hc3Rlcl9zZWN1cml0eV9sZXZlbDsKKyAgICBIaWRsQnVmIGF0dF9jaGFsbGVuZ2U7CisgICAgSGlkbEJ1ZiBhdHRfdW5pcXVlX2lkOworICAgIEhpZGxCdWYgYXR0X2FwcF9pZDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgcGFyc2VfYXR0ZXN0YXRpb25fcmVjb3JkKGF0dGVzdF9yZWMtPmRhdGEsICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0X3JlYy0+bGVuZ3RoLCAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0X2F0dGVzdGF0aW9uX3ZlcnNpb24sICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRfYXR0ZXN0YXRpb25fc2VjdXJpdHlfbGV2ZWwsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmF0dF9rZXltYXN0ZXJfdmVyc2lvbiwgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0X2tleW1hc3Rlcl9zZWN1cml0eV9sZXZlbCwgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRfY2hhbGxlbmdlLCAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmF0dF9zd19lbmZvcmNlZCwgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXR0X3RlZV9lbmZvcmNlZCwgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhdHRfdW5pcXVlX2lkKSk7CisKKyAgICBpZiAoYXR0X2tleW1hc3Rlcl92ZXJzaW9uID09IDMpIHsKKyAgICAgICAgRVhQRUNUX0VRKDJVLCBhdHRfYXR0ZXN0YXRpb25fdmVyc2lvbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgRVhQRUNUX0VRKDFVLCBhdHRfYXR0ZXN0YXRpb25fdmVyc2lvbik7CisgICAgfQorCisgICAgZXhwZWN0ZWRfc3dfZW5mb3JjZWQucHVzaF9iYWNrKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSGlkbEJ1ZihhcHBfaWQpKTsKKworICAgIGlmICghS2V5bWFzdGVySGlkbFRlc3Q6OklzU2VjdXJlKCkpIHsKKyAgICAgICAgLy8gU1cgaXMgS00yCisgICAgICAgIEVYUEVDVF9FUShhdHRfa2V5bWFzdGVyX3ZlcnNpb24sIDJVKTsKKyAgICB9CisKKyAgICBpZiAoS2V5bWFzdGVySGlkbFRlc3Q6OlN1cHBvcnRzU3ltbWV0cmljKCkpIHsKKyAgICAgICAgRVhQRUNUX0dFKGF0dF9rZXltYXN0ZXJfdmVyc2lvbiwgMVUpOworICAgIH0KKworICAgIGlmIChLZXltYXN0ZXJIaWRsVGVzdDo6U3VwcG9ydHNBdHRlc3RhdGlvbigpKSB7CisgICAgICAgIEVYUEVDVF9HRShhdHRfa2V5bWFzdGVyX3ZlcnNpb24sIDJVKTsKKyAgICB9CisKKyAgICBFWFBFQ1RfRVEoS2V5bWFzdGVySGlkbFRlc3Q6OklzU2VjdXJlKCkgPyBTZWN1cml0eUxldmVsOjpUUlVTVEVEX0VOVklST05NRU5UCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU2VjdXJpdHlMZXZlbDo6U09GVFdBUkUsCisgICAgICAgICAgICAgIGF0dF9rZXltYXN0ZXJfc2VjdXJpdHlfbGV2ZWwpOworICAgIEVYUEVDVF9FUShLZXltYXN0ZXJIaWRsVGVzdDo6U3VwcG9ydHNBdHRlc3RhdGlvbigpID8gU2VjdXJpdHlMZXZlbDo6VFJVU1RFRF9FTlZJUk9OTUVOVAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU2VjdXJpdHlMZXZlbDo6U09GVFdBUkUsCisgICAgICAgICAgICAgIGF0dF9hdHRlc3RhdGlvbl9zZWN1cml0eV9sZXZlbCk7CisKKyAgICBFWFBFQ1RfRVEoY2hhbGxlbmdlLmxlbmd0aCgpLCBhdHRfY2hhbGxlbmdlLnNpemUoKSk7CisgICAgRVhQRUNUX0VRKDAsIG1lbWNtcChjaGFsbGVuZ2UuZGF0YSgpLCBhdHRfY2hhbGxlbmdlLmRhdGEoKSwgY2hhbGxlbmdlLmxlbmd0aCgpKSk7CisKKyAgICBhdHRfc3dfZW5mb3JjZWQuU29ydCgpOworICAgIGV4cGVjdGVkX3N3X2VuZm9yY2VkLlNvcnQoKTsKKyAgICBFWFBFQ1RfRVEoZmlsdGVyX3RhZ3MoZXhwZWN0ZWRfc3dfZW5mb3JjZWQpLCBmaWx0ZXJfdGFncyhhdHRfc3dfZW5mb3JjZWQpKTsKKworICAgIGF0dF90ZWVfZW5mb3JjZWQuU29ydCgpOworICAgIGV4cGVjdGVkX3RlZV9lbmZvcmNlZC5Tb3J0KCk7CisgICAgRVhQRUNUX0VRKGZpbHRlcl90YWdzKGV4cGVjdGVkX3RlZV9lbmZvcmNlZCksIGZpbHRlcl90YWdzKGF0dF90ZWVfZW5mb3JjZWQpKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitzcDxJS2V5bWFzdGVyRGV2aWNlPiBLZXltYXN0ZXJIaWRsVGVzdDo6a2V5bWFzdGVyXzsKK3VpbnQzMl90IEtleW1hc3RlckhpZGxUZXN0Ojpvc192ZXJzaW9uXzsKK3VpbnQzMl90IEtleW1hc3RlckhpZGxUZXN0Ojpvc19wYXRjaF9sZXZlbF87Citib29sIEtleW1hc3RlckhpZGxUZXN0Ojppc19zZWN1cmVfOworYm9vbCBLZXltYXN0ZXJIaWRsVGVzdDo6c3VwcG9ydHNfZWNfOworYm9vbCBLZXltYXN0ZXJIaWRsVGVzdDo6c3VwcG9ydHNfc3ltbWV0cmljXzsKK2Jvb2wgS2V5bWFzdGVySGlkbFRlc3Q6OnN1cHBvcnRzX2FsbF9kaWdlc3RzXzsKK2Jvb2wgS2V5bWFzdGVySGlkbFRlc3Q6OnN1cHBvcnRzX2F0dGVzdGF0aW9uXzsKK2hpZGxfc3RyaW5nIEtleW1hc3RlckhpZGxUZXN0OjpuYW1lXzsKK2hpZGxfc3RyaW5nIEtleW1hc3RlckhpZGxUZXN0OjphdXRob3JfOworCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEtleW1hc3RlclZlcnNpb25UZXN0OworCisvKgorICogS2V5bWFzdGVyVmVyc2lvblRlc3QuU2Vuc2libGVGZWF0dXJlczoKKyAqCisgKiBRdWVyaWVzIGtleW1hc3RlciB0byBmaW5kIHRoZSBzZXQgb2YgZmVhdHVyZXMgaXQgc3VwcG9ydHMuIEZhaWxzIGlmIHRoZSBjb21iaW5hdGlvbiBkb2Vzbid0CisgKiBjb3JyZXNwb25kIHRvIGFueSB3ZWxsLWRlZmluZWQga2V5bWFzdGVyIHZlcnNpb24uCisgKi8KK1RFU1RfRihLZXltYXN0ZXJWZXJzaW9uVGVzdCwgU2Vuc2libGVGZWF0dXJlcykgeworICAgIEVYUEVDVF9UUlVFKEttMlByb2ZpbGUoKSB8fCBLbTFQcm9maWxlKCkgfHwgS20wUHJvZmlsZSgpIHx8IFN3T25seVByb2ZpbGUoKSkKKyAgICAgICAgPDwgIktleW1hc3RlciBmZWF0dXJlIHNldCBkb2Vzbid0IGZpdCBhbnkgcmVhc29uYWJsZSBwcm9maWxlLiAgUmVwb3J0ZWQgZmVhdHVyZXM6IgorICAgICAgICA8PCAiU3VwcG9ydHNBdHRlc3RhdGlvbiBbIiA8PCBTdXBwb3J0c0F0dGVzdGF0aW9uKCkgPDwgIl0sICIKKyAgICAgICAgPDwgIlN1cHBvcnRzU3ltbWV0cmljIFsiIDw8IFN1cHBvcnRzU3ltbWV0cmljKCkgPDwgIl0sICIKKyAgICAgICAgPDwgIlN1cHBvcnRzQWxsRGlnZXN0cyBbIiA8PCBTdXBwb3J0c0FsbERpZ2VzdHMoKSA8PCAiXSwgIgorICAgICAgICA8PCAiU3VwcG9ydHNFYyBbIiA8PCBTdXBwb3J0c0VjKCkgPDwgIl0sICIKKyAgICAgICAgPDwgIklzU2VjdXJlIFsiIDw8IElzU2VjdXJlKCkgPDwgIl0iOworfQorCitjbGFzcyBOZXdLZXlHZW5lcmF0aW9uVGVzdCA6IHB1YmxpYyBLZXltYXN0ZXJIaWRsVGVzdCB7CisgIHByb3RlY3RlZDoKKyAgICB2b2lkIENoZWNrQmFzZVBhcmFtcyhjb25zdCBLZXlDaGFyYWN0ZXJpc3RpY3MmIGtleUNoYXJhY3RlcmlzdGljcykgeworICAgICAgICAvLyBUT0RPKHN3aWxsZGVuKTogRGlzdGluZ3Vpc2ggd2hpY2ggcGFyYW1zIHNob3VsZCBiZSBpbiB3aGljaCBhdXRoIGxpc3QuCisKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBhdXRocyhrZXlDaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQpOworICAgICAgICBhdXRocy5wdXNoX2JhY2soQXV0aG9yaXphdGlvblNldChrZXlDaGFyYWN0ZXJpc3RpY3Muc29mdHdhcmVFbmZvcmNlZCkpOworCisgICAgICAgIEVYUEVDVF9UUlVFKGF1dGhzLkNvbnRhaW5zKFRBR19PUklHSU4sIEtleU9yaWdpbjo6R0VORVJBVEVEKSk7CisKKyAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OlNJR04pKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OlZFUklGWSkpOworICAgICAgICBFWFBFQ1RfVFJVRShhdXRocy5Db250YWlucyhUQUdfVVNFUl9JRCwgNykpCisgICAgICAgICAgICA8PCAiVXNlciBJRCBzaG91bGQgYmUgNywgd2FzICIgPDwgYXV0aHMuR2V0VGFnVmFsdWUoVEFHX1VTRVJfSUQpOworCisgICAgICAgIC8vIFZlcmlmeSB0aGF0IEFwcCBJRCwgQXBwIGRhdGEgYW5kIFJPVCBhcmUgTk9UIGluY2x1ZGVkLgorICAgICAgICBFWFBFQ1RfRkFMU0UoYXV0aHMuQ29udGFpbnMoVEFHX1JPT1RfT0ZfVFJVU1QpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGF1dGhzLkNvbnRhaW5zKFRBR19BUFBMSUNBVElPTl9JRCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoYXV0aHMuQ29udGFpbnMoVEFHX0FQUExJQ0FUSU9OX0RBVEEpKTsKKworICAgICAgICAvLyBDaGVjayB0aGF0IHNvbWUgdW5leHBlY3RlZCB0YWdzL3ZhbHVlcyBhcmUgTk9UIHByZXNlbnQuCisgICAgICAgIEVYUEVDVF9GQUxTRShhdXRocy5Db250YWlucyhUQUdfUFVSUE9TRSwgS2V5UHVycG9zZTo6RU5DUllQVCkpOworICAgICAgICBFWFBFQ1RfRkFMU0UoYXV0aHMuQ29udGFpbnMoVEFHX1BVUlBPU0UsIEtleVB1cnBvc2U6OkRFQ1JZUFQpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGF1dGhzLkNvbnRhaW5zKFRBR19BVVRIX1RJTUVPVVQsIDMwMSkpOworCisgICAgICAgIC8vIE5vdyBjaGVjayB0aGF0IHVuc3BlY2lmaWVkLCBkZWZhdWx0ZWQgdGFncyBhcmUgY29ycmVjdC4KKyAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX0NSRUFUSU9OX0RBVEVUSU1FKSk7CisKKyAgICAgICAgaWYgKFN1cHBvcnRzQXR0ZXN0YXRpb24oKSkgeworICAgICAgICAgICAgRVhQRUNUX1RSVUUoYXV0aHMuQ29udGFpbnMoVEFHX09TX1ZFUlNJT04sIG9zX3ZlcnNpb24oKSkpCisgICAgICAgICAgICAgICAgPDwgIk9TIHZlcnNpb24gaXMgIiA8PCBvc192ZXJzaW9uKCkgPDwgIiBrZXkgcmVwb3J0ZWQgIgorICAgICAgICAgICAgICAgIDw8IGF1dGhzLkdldFRhZ1ZhbHVlKFRBR19PU19WRVJTSU9OKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKGF1dGhzLkNvbnRhaW5zKFRBR19PU19QQVRDSExFVkVMLCBvc19wYXRjaF9sZXZlbCgpKSkKKyAgICAgICAgICAgICAgICA8PCAiT1MgcGF0Y2ggbGV2ZWwgaXMgIiA8PCBvc19wYXRjaF9sZXZlbCgpIDw8ICIga2V5IHJlcG9ydGVkICIKKyAgICAgICAgICAgICAgICA8PCBhdXRocy5HZXRUYWdWYWx1ZShUQUdfT1NfUEFUQ0hMRVZFTCk7CisgICAgICAgIH0KKyAgICB9Cit9OworCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuUnNhCisgKgorICogVmVyaWZpZXMgdGhhdCBrZXltYXN0ZXIgY2FuIGdlbmVyYXRlIGFsbCByZXF1aXJlZCBSU0Ega2V5IHNpemVzLCBhbmQgdGhhdCB0aGUgcmVzdWx0aW5nIGtleXMgaGF2ZQorICogY29ycmVjdCBjaGFyYWN0ZXJpc3RpY3MuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgUnNhKSB7CisgICAgZm9yIChhdXRvIGtleV9zaXplIDogezEwMjQsIDIwNDgsIDMwNzIsIDQwOTZ9KSB7CisgICAgICAgIEhpZGxCdWYga2V5X2Jsb2I7CisgICAgICAgIEtleUNoYXJhY3RlcmlzdGljcyBrZXlfY2hhcmFjdGVyaXN0aWNzOworICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KGtleV9zaXplLCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9ucyhVc2VyQXV0aHMoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAma2V5X2Jsb2IsICZrZXlfY2hhcmFjdGVyaXN0aWNzKSk7CisKKyAgICAgICAgQVNTRVJUX0dUKGtleV9ibG9iLnNpemUoKSwgMFUpOworICAgICAgICBDaGVja0Jhc2VQYXJhbXMoa2V5X2NoYXJhY3RlcmlzdGljcyk7CisKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBjcnlwdG9fcGFyYW1zOworICAgICAgICBpZiAoSXNTZWN1cmUoKSkgeworICAgICAgICAgICAgY3J5cHRvX3BhcmFtcyA9IGtleV9jaGFyYWN0ZXJpc3RpY3MudGVlRW5mb3JjZWQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBjcnlwdG9fcGFyYW1zID0ga2V5X2NoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkOworICAgICAgICB9CisKKyAgICAgICAgRVhQRUNUX1RSVUUoY3J5cHRvX3BhcmFtcy5Db250YWlucyhUQUdfQUxHT1JJVEhNLCBLTV9BTEdPUklUSE1fUlNBKSk7CisgICAgICAgIEVYUEVDVF9UUlVFKGNyeXB0b19wYXJhbXMuQ29udGFpbnMoVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSkpOworICAgICAgICBFWFBFQ1RfVFJVRShjcnlwdG9fcGFyYW1zLkNvbnRhaW5zKFRBR19SU0FfUFVCTElDX0VYUE9ORU5ULCAzKSk7CisKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgma2V5X2Jsb2IpKTsKKyAgICB9Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5Sc2FOb0RlZmF1bHRTaXplCisgKgorICogVmVyaWZpZXMgdGhhdCBmYWlsaW5nIHRvIHNwZWNpZnkgYSBrZXkgc2l6ZSBmb3IgUlNBIGtleSBnZW5lcmF0aW9uIHJldHVybnMgVU5TVVBQT1JURURfS0VZX1NJWkUuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgUnNhTm9EZWZhdWx0U2l6ZSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX0tFWV9TSVpFLAorICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OlJTQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19SU0FfUFVCTElDX0VYUE9ORU5ULCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlNpZ25pbmdLZXkoKSkpOworfQorCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuRWNkc2EKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBjYW4gZ2VuZXJhdGUgYWxsIHJlcXVpcmVkIEVDIGtleSBzaXplcywgYW5kIHRoYXQgdGhlIHJlc3VsdGluZyBrZXlzIGhhdmUKKyAqIGNvcnJlY3QgY2hhcmFjdGVyaXN0aWNzLgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEVjZHNhKSB7CisgICAgZm9yIChhdXRvIGtleV9zaXplIDogezIyNCwgMjU2LCAzODQsIDUyMX0pIHsKKyAgICAgICAgSGlkbEJ1ZiBrZXlfYmxvYjsKKyAgICAgICAgS2V5Q2hhcmFjdGVyaXN0aWNzIGtleV9jaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShrZXlfc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbnMoVXNlckF1dGhzKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtleV9ibG9iLCAma2V5X2NoYXJhY3RlcmlzdGljcykpOworICAgICAgICBBU1NFUlRfR1Qoa2V5X2Jsb2Iuc2l6ZSgpLCAwVSk7CisgICAgICAgIENoZWNrQmFzZVBhcmFtcyhrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgICAgICBBdXRob3JpemF0aW9uU2V0IGNyeXB0b19wYXJhbXM7CisgICAgICAgIGlmIChJc1NlY3VyZSgpKSB7CisgICAgICAgICAgICBjcnlwdG9fcGFyYW1zID0ga2V5X2NoYXJhY3RlcmlzdGljcy50ZWVFbmZvcmNlZDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGNyeXB0b19wYXJhbXMgPSBrZXlfY2hhcmFjdGVyaXN0aWNzLnNvZnR3YXJlRW5mb3JjZWQ7CisgICAgICAgIH0KKworICAgICAgICBFWFBFQ1RfVFJVRShjcnlwdG9fcGFyYW1zLkNvbnRhaW5zKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6RUMpKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoY3J5cHRvX3BhcmFtcy5Db250YWlucyhUQUdfS0VZX1NJWkUsIGtleV9zaXplKSk7CisKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgma2V5X2Jsb2IpKTsKKyAgICB9Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5FY2RzYURlZmF1bHRTaXplCisgKgorICogVmVyaWZpZXMgdGhhdCBmYWlsaW5nIHRvIHNwZWNpZnkgYSBrZXkgc2l6ZSBmb3IgRUMga2V5IGdlbmVyYXRpb24gcmV0dXJucyBVTlNVUFBPUlRFRF9LRVlfU0laRS4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBFY2RzYURlZmF1bHRTaXplKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX1NJWkUsCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6RUMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuU2lnbmluZ0tleSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpKTsKK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkVjZHNhSW52YWxpZFNpemUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGZhaWxpbmcgdG8gc3BlY2lmeSBhbiBpbnZhbGlkIGtleSBzaXplIGZvciBFQyBrZXkgZ2VuZXJhdGlvbiByZXR1cm5zCisgKiBVTlNVUFBPUlRFRF9LRVlfU0laRS4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBFY2RzYUludmFsaWRTaXplKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX1NJWkUsCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRWNkc2FTaWduaW5nS2V5KDE5MCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpKTsKK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkVjZHNhTWlzbWF0Y2hLZXlTaXplCisgKgorICogVmVyaWZpZXMgdGhhdCBzcGVjaWZ5aW5nIG1pc21hdGNoZWQga2V5IHNpemUgYW5kIGN1cnZlIGZvciBFQyBrZXkgZ2VuZXJhdGlvbiByZXR1cm5zCisgKiBJTlZBTElEX0FSR1VNRU5ULgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEVjZHNhTWlzbWF0Y2hLZXlTaXplKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9BUkdVTUVOVCwKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleSgyMjQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfRUNfQ1VSVkUsIEVjQ3VydmU6OlBfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzM2MjMzMzQzKSI7Cit9CisKK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgRWNkc2FBbGxWYWxpZFNpemVzKSB7CisgICAgc2l6ZV90IHZhbGlkX3NpemVzW10gPSB7MjI0LCAyNTYsIDM4NCwgNTIxfTsKKyAgICBmb3IgKHNpemVfdCBzaXplIDogdmFsaWRfc2l6ZXMpIHsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkVjZHNhU2lnbmluZ0tleShzaXplKS5EaWdlc3QoRGlnZXN0OjpOT05FKSkpCisgICAgICAgICAgICA8PCAiRmFpbGVkIHRvIGdlbmVyYXRlIHNpemU6ICIgPDwgc2l6ZTsKKyAgICAgICAgRGVsZXRlS2V5KCk7CisgICAgfQorfQorCisvKgorICogTmV3S2V5R2VuZXJhdGlvblRlc3QuRWNkc2FBbGxWYWxpZEN1cnZlcworICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIHN1cHBvcnRzIGFsbCByZXF1aXJlZCBFQyBjdXJ2ZXMuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgRWNkc2FBbGxWYWxpZEN1cnZlcykgeworICAgIEVjQ3VydmUgY3VydmVzW10gPSB7RWNDdXJ2ZTo6UF8yMjQsIEVjQ3VydmU6OlBfMjU2LCBFY0N1cnZlOjpQXzM4NCwgRWNDdXJ2ZTo6UF81MjF9OworICAgIGZvciAoYXV0byBjdXJ2ZSA6IGN1cnZlcykgeworICAgICAgICBFWFBFQ1RfRVEoCisgICAgICAgICAgICBFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5FY2RzYVNpZ25pbmdLZXkoY3VydmUpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzUxMikpKQorICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBnZW5lcmF0ZSBrZXkgb24gY3VydmU6ICIgPDwgY3VydmU7CisgICAgICAgIERlbGV0ZUtleSgpOworICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWMKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBzdXBwb3J0cyBhbGwgcmVxdWlyZWQgZGlnZXN0cywgYW5kIHRoYXQgdGhlIHJlc3VsdGluZyBrZXlzIGhhdmUgY29ycmVjdAorICogY2hhcmFjdGVyaXN0aWNzLgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEhtYWMpIHsKKyAgICBmb3IgKGF1dG8gZGlnZXN0IDoge0RpZ2VzdDo6TUQ1LCBEaWdlc3Q6OlNIQTEsIERpZ2VzdDo6U0hBXzJfMjI0LCBEaWdlc3Q6OlNIQV8yXzI1NiwKKyAgICAgICAgICAgICAgICAgICAgICAgIERpZ2VzdDo6U0hBXzJfMzg0LCBEaWdlc3Q6OlNIQV8yXzUxMn0pIHsKKyAgICAgICAgSGlkbEJ1ZiBrZXlfYmxvYjsKKyAgICAgICAgS2V5Q2hhcmFjdGVyaXN0aWNzIGtleV9jaGFyYWN0ZXJpc3RpY3M7CisgICAgICAgIGNvbnN0ZXhwciBzaXplX3Qga2V5X3NpemUgPSAxMjg7CisgICAgICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoa2V5X3NpemUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChkaWdlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb25zKFVzZXJBdXRocygpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrZXlfYmxvYiwgJmtleV9jaGFyYWN0ZXJpc3RpY3MpKTsKKworICAgICAgICBBU1NFUlRfR1Qoa2V5X2Jsb2Iuc2l6ZSgpLCAwVSk7CisgICAgICAgIENoZWNrQmFzZVBhcmFtcyhrZXlfY2hhcmFjdGVyaXN0aWNzKTsKKworICAgICAgICBBdXRob3JpemF0aW9uU2V0IHRlZUVuZm9yY2VkID0ga2V5X2NoYXJhY3RlcmlzdGljcy50ZWVFbmZvcmNlZDsKKyAgICAgICAgQXV0aG9yaXphdGlvblNldCBzb2Z0d2FyZUVuZm9yY2VkID0ga2V5X2NoYXJhY3RlcmlzdGljcy5zb2Z0d2FyZUVuZm9yY2VkOworICAgICAgICBpZiAoU3VwcG9ydHNBdHRlc3RhdGlvbigpIHx8IFN1cHBvcnRzQWxsRGlnZXN0cygpKSB7CisgICAgICAgICAgICAvLyBFaXRoZXIgS00yLCB3aGljaCBtdXN0IHN1cHBvcnQgYWxsLCBvciBLTTEgdGhhdCBjbGFpbXMgZnVsbCBzdXBwb3J0CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSh0ZWVFbmZvcmNlZC5Db250YWlucyhUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkhNQUMpKTsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKyAgICAgICAgfSBlbHNlIGlmIChTdXBwb3J0c1N5bW1ldHJpYygpKSB7CisgICAgICAgICAgICBpZiAoZGlnZXN0ID09IERpZ2VzdDo6U0hBMSB8fCBkaWdlc3QgPT0gRGlnZXN0OjpTSEFfMl8yNTYpIHsKKyAgICAgICAgICAgICAgICAvLyBLTTEgbXVzdCBzdXBwb3J0IFNIQTEgYW5kIFNIQTI1NiBpbiBoYXJkd2FyZQorICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6SE1BQykpOworICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHRlZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gT3RoZXJlIGRpZ2VzdHMgbWF5IG9yIG1heSBub3QgYmUgc3VwcG9ydGVkCisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUodGVlRW5mb3JjZWQuQ29udGFpbnMoVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvZnR3YXJlRW5mb3JjZWQuQ29udGFpbnMoVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKSk7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUodGVlRW5mb3JjZWQuQ29udGFpbnMoVEFHX0tFWV9TSVpFLCBrZXlfc2l6ZSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2Z0d2FyZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19LRVlfU0laRSwga2V5X3NpemUpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEtNMCBhbmQgU1cgS00gZG8gYWxsIGRpZ2VzdHMgaW4gU1cuCisgICAgICAgICAgICBFWFBFQ1RfVFJVRShzb2Z0d2FyZUVuZm9yY2VkLkNvbnRhaW5zKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6SE1BQykpOworICAgICAgICAgICAgRVhQRUNUX1RSVUUoc29mdHdhcmVFbmZvcmNlZC5Db250YWlucyhUQUdfS0VZX1NJWkUsIGtleV9zaXplKSk7CisgICAgICAgIH0KKworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRGVsZXRlS2V5KCZrZXlfYmxvYikpOworICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWNDaGVja0tleVNpemVzCisgKgorICogVmVyaWZpZXMgdGhhdCBrZXltYXN0ZXIgc3VwcG9ydHMgYWxsIGtleSBzaXplcywgYW5kIHJlamVjdHMgYWxsIGludmFsaWQga2V5IHNpemVzLgorICovCitURVNUX0YoTmV3S2V5R2VuZXJhdGlvblRlc3QsIEhtYWNDaGVja0tleVNpemVzKSB7CisgICAgZm9yIChzaXplX3Qga2V5X3NpemUgPSAwOyBrZXlfc2l6ZSA8PSA1MTI7ICsra2V5X3NpemUpIHsKKyAgICAgICAgaWYgKGtleV9zaXplIDwgNjQgfHwga2V5X3NpemUgJSA4ICE9IDApIHsKKyAgICAgICAgICAgIC8vIFRvIGtlZXAgdGhpcyB0ZXN0IGZyb20gYmVpbmcgdmVyeSBzbG93LCB3ZSBvbmx5IHRlc3QgYSByYW5kb20gZnJhY3Rpb24gb2Ygbm9uLWJ5dGUKKyAgICAgICAgICAgIC8vIGtleSBzaXplcy4gIFdlIHRlc3Qgb25seSB+MTAlIG9mIHN1Y2ggY2FzZXMuIFNpbmNlIHRoZXJlIGFyZSAzOTIgb2YgdGhlbSwgd2UgZXhwZWN0CisgICAgICAgICAgICAvLyB0byBydW4gfjQwIG9mIHRoZW0gaW4gZWFjaCBydW4uCisgICAgICAgICAgICBpZiAoa2V5X3NpemUgJSA4ID09IDAgfHwgcmFuZG9tKCkgJSAxMCA9PSAwKSB7CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KGtleV9zaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMjU2KSkpCisgICAgICAgICAgICAgICAgICAgIDw8ICJITUFDIGtleSBzaXplICIgPDwga2V5X3NpemUgPDwgIiBpbnZhbGlkIChQb3NzaWJseSBiLzMzNDYyMzQ2KSI7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleShrZXlfc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAyNTYpKSk7CisgICAgICAgICAgICBEZWxldGVLZXkoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWNDaGVja01pbk1hY0xlbmd0aHMKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciBzdXBwb3J0cyBhbGwgcmVxdWlyZWQgTUFDIGxlbmd0aHMgYW5kIHJlamVjdHMgYWxsIGludmFsaWQgbGVuZ3Rocy4gIFRoaXMKKyAqIHRlc3QgaXMgcHJvYmFiaWxpc3RpYyBpbiBvcmRlciB0byBrZWVwIHRoZSBydW50aW1lIGRvd24sIGJ1dCBhbnkgZmFpbHVyZSBwcmludHMgb3V0IHRoZSBzcGVjaWZpYworICogTUFDIGxlbmd0aCB0aGF0IGZhaWxlZCwgc28gcmVwcm9kdWNpbmcgYSBmYWlsZWQgcnVuIHdpbGwgYmUgZWFzeS4KKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBIbWFjQ2hlY2tNaW5NYWNMZW5ndGhzKSB7CisgICAgZm9yIChzaXplX3QgbWluX21hY19sZW5ndGggPSAwOyBtaW5fbWFjX2xlbmd0aCA8PSAyNTY7ICsrbWluX21hY19sZW5ndGgpIHsKKyAgICAgICAgaWYgKG1pbl9tYWNfbGVuZ3RoIDwgNjQgfHwgbWluX21hY19sZW5ndGggJSA4ICE9IDApIHsKKyAgICAgICAgICAgIC8vIFRvIGtlZXAgdGhpcyB0ZXN0IGZyb20gYmVpbmcgdmVyeSBsb25nLCB3ZSBvbmx5IHRlc3QgYSByYW5kb20gZnJhY3Rpb24gb2Ygbm9uLWJ5dGUKKyAgICAgICAgICAgIC8vIGxlbmd0aHMuICBXZSB0ZXN0IG9ubHkgfjEwJSBvZiBzdWNoIGNhc2VzLiBTaW5jZSB0aGVyZSBhcmUgMTcyIG9mIHRoZW0sIHdlIGV4cGVjdCB0bworICAgICAgICAgICAgLy8gcnVuIH4xNyBvZiB0aGVtIGluIGVhY2ggcnVuLgorICAgICAgICAgICAgaWYgKG1pbl9tYWNfbGVuZ3RoICUgOCA9PSAwIHx8IHJhbmRvbSgpICUgMTAgPT0gMCkgeworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX01JTl9NQUNfTEVOR1RILAorICAgICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCBtaW5fbWFjX2xlbmd0aCkpKQorICAgICAgICAgICAgICAgICAgICA8PCAiSE1BQyBtaW4gbWFjIGxlbmd0aCAiIDw8IG1pbl9tYWNfbGVuZ3RoIDw8ICIgaW52YWxpZC4iOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgbWluX21hY19sZW5ndGgpKSk7CisgICAgICAgICAgICBEZWxldGVLZXkoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqIE5ld0tleUdlbmVyYXRpb25UZXN0LkhtYWNNdWx0aXBsZURpZ2VzdHMKKyAqCisgKiBWZXJpZmllcyB0aGF0IGtleW1hc3RlciByZWplY3RzIEhNQUMga2V5IGdlbmVyYXRpb24gd2l0aCBtdWx0aXBsZSBzcGVjaWZpZWQgZGlnZXN0IGFsZ29yaXRobXMuCisgKi8KK1RFU1RfRihOZXdLZXlHZW5lcmF0aW9uVGVzdCwgSG1hY011bHRpcGxlRGlnZXN0cykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX0RJR0VTVCwKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQTEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7Cit9CisKKy8qCisgKiBOZXdLZXlHZW5lcmF0aW9uVGVzdC5IbWFjRGlnZXN0Tm9uZQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIHJlamVjdHMgSE1BQyBrZXkgZ2VuZXJhdGlvbiB3aXRoIG5vIGRpZ2VzdCBvciBEaWdlc3Q6Ok5PTkUKKyAqLworVEVTVF9GKE5ld0tleUdlbmVyYXRpb25UZXN0LCBIbWFjRGlnZXN0Tm9uZSkgeworICAgIEFTU0VSVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9ESUdFU1QsCisgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuSG1hY0tleSgxMjgpLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9ESUdFU1QsCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7Cit9CisKK3R5cGVkZWYgS2V5bWFzdGVySGlkbFRlc3QgR2V0S2V5Q2hhcmFjdGVyaXN0aWNzVGVzdDsKKworLyoKKyAqIEdldEtleUNoYXJhY3RlcmlzdGljc1Rlc3QuSG1hY0RpZ2VzdE5vbmUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGdldEtleUNoYXJhY3RlcmlzdGljcyBmdW5jdGlvbnMsIGFuZCB0aGF0IGdlbmVyYXRlZCBhbmQgcmV0cmlldmVkIGtleQorICogY2hhcmFjdGVyaXN0aWNzIG1hdGNoLgorICovCitURVNUX0YoR2V0S2V5Q2hhcmFjdGVyaXN0aWNzVGVzdCwgU2ltcGxlUnNhKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDI1NiwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3MgcmV0cmlldmVkX2NoYXJzOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZXRDaGFyYWN0ZXJpc3RpY3Moa2V5X2Jsb2JfLCAmcmV0cmlldmVkX2NoYXJzKSk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0IGdlbl9zdyA9IGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQ7CisgICAgQXV0aG9yaXphdGlvblNldCBnZW5fdGVlID0ga2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQ7CisgICAgQXV0aG9yaXphdGlvblNldCByZXRyaWV2ZWRfc3cgPSByZXRyaWV2ZWRfY2hhcnMuc29mdHdhcmVFbmZvcmNlZDsKKyAgICBBdXRob3JpemF0aW9uU2V0IHJldHJpZXZlZF90ZWUgPSByZXRyaWV2ZWRfY2hhcnMudGVlRW5mb3JjZWQ7CisKKyAgICBFWFBFQ1RfRVEoZ2VuX3N3LCByZXRyaWV2ZWRfc3cpOworICAgIEVYUEVDVF9FUShnZW5fdGVlLCByZXRyaWV2ZWRfdGVlKTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBTaWduaW5nT3BlcmF0aW9uc1Rlc3Q7CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgcmF3IFJTQSBzaWduYXR1cmUgb3BlcmF0aW9ucyBzdWNjZWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhUHNzU2hhMjU2U3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBLVBTUyBzaWduYXR1cmUgb3BlcmF0aW9ucyBzdWNjZWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FQc3NTaGEyNTZTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkpKTsKKyAgICAvLyBVc2UgbGFyZ2UgbWVzc2FnZSwgd2hpY2ggd29uJ3Qgd29yayB3aXRob3V0IGRpZ2VzdGluZy4KKyAgICBzdHJpbmcgbWVzc2FnZSgxMDI0LCAnYScpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQYWRkaW5nTm9uZURvZXNOb3RBbGxvd090aGVyCisgKgorICogVmVyaWZpZXMgdGhhdCBrZXltYXN0ZXIgcmVqZWN0cyBzaWduYXR1cmUgb3BlcmF0aW9ucyB0aGF0IHNwZWNpZnkgYSBwYWRkaW5nIG1vZGUgd2hlbiB0aGUga2V5CisgKiBzdXBwb3J0cyBvbmx5IHVucGFkZGVkIG9wZXJhdGlvbnMuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYVBhZGRpbmdOb25lRG9lc05vdEFsbG93T3RoZXIpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMiI7CisgICAgc3RyaW5nIHNpZ25hdHVyZTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOQ09NUEFUSUJMRV9QQURESU5HX01PREUsCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTikpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQa2NzMVNoYTI1NlN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGRpZ2VzdGVkIFJTQS1QS0NTMSBzaWduYXR1cmUgb3BlcmF0aW9ucyBzdWNjZWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FQa2NzMVNoYTI1NlN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCwgJ2EnKTsKKyAgICBzdHJpbmcgc2lnbmF0dXJlID0gU2lnbk1lc3NhZ2UobWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQa2NzMU5vRGlnZXN0U3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgdW5kaWdlc3RlZCBSU0EtUEtDUzEgc2lnbmF0dXJlIG9wZXJhdGlvbnMgc3VjY2VlZC4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhUGtjczFOb0RpZ2VzdFN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworICAgIHN0cmluZyBtZXNzYWdlKDUzLCAnYScpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQa2NzMU5vRGlnZXN0VG9vTGFyZ2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IHVuZGlnZXN0ZWQgUlNBLVBLQ1MxIHNpZ25hdHVyZSBvcGVyYXRpb25zIGZhaWwgd2l0aCB0aGUgY29ycmVjdCBlcnJvciBjb2RlIHdoZW4KKyAqIGdpdmVuIGEgdG9vLWxvbmcgbWVzc2FnZS4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhUGtjczFOb0RpZ2VzdFRvb0xvbmcpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworICAgIHN0cmluZyBtZXNzYWdlKDEyOSwgJ2EnKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisgICAgc3RyaW5nIHNpZ25hdHVyZTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0lOUFVUX0xFTkdUSCwgRmluaXNoKG1lc3NhZ2UsICZzaWduYXR1cmUpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FQc3NTaGE1MTJUb29TbWFsbEtleQorICoKKyAqIFZlcmlmaWVzIHRoYXQgdW5kaWdlc3RlZCBSU0EtUFNTIHNpZ25hdHVyZSBvcGVyYXRpb25zIGZhaWwgd2l0aCB0aGUgY29ycmVjdCBlcnJvciBjb2RlIHdoZW4KKyAqIHVzZWQgd2l0aCBhIGtleSB0aGF0IGlzIHRvbyBzbWFsbCBmb3IgdGhlIG1lc3NhZ2UuCisgKgorICogQSBQU1MtcGFkZGVkIG1lc3NhZ2UgaXMgb2YgbGVuZ3RoIHNhbHRfc2l6ZSArIGRpZ2VzdF9zaXplICsgMTYgKHNpemVzIGluIGJpdHMpLCBhbmQgdGhlIGtleW1hc3RlcgorICogc3BlY2lmaWNhdGlvbiByZXF1aXJlcyB0aGF0IHNhbHRfc2l6ZSA9PSBkaWdlc3Rfc2l6ZSwgc28gdGhlIG1lc3NhZ2Ugd2lsbCBiZSBkaWdlc3Rfc2l6ZSAqIDIgKworICogMTYuIFN1Y2ggYSBtZXNzYWdlIGNhbiBvbmx5IGJlIHNpZ25lZCBieSBhIGdpdmVuIGtleSBpZiB0aGUga2V5IGlzIGF0IGxlYXN0IHRoYXQgc2l6ZS4gVGhpcyB0ZXN0CisgKiB1c2VzIFNIQTUxMiwgd2hpY2ggaGFzIGEgZGlnZXN0X3NpemUgPT0gNTEyLCBzbyB0aGUgbWVzc2FnZSBzaXplIGlzIDEwNDAgYml0cywgdG9vIGxhcmdlIGZvciBhCisgKiAxMDI0LWJpdCBrZXkuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYVBzc1NoYTUxMlRvb1NtYWxsS2V5KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfNTEyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BTUykpKTsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX0RJR0VTVCwKKyAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwKKyAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl81MTIpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzMzMzQ2NzUwKSI7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhTm9QYWRkaW5nVG9vTG9uZworICoKKyAqIFZlcmlmaWVzIHRoYXQgcmF3IFJTQSBzaWduYXR1cmUgb3BlcmF0aW9ucyBmYWlsIHdpdGggdGhlIGNvcnJlY3QgZXJyb3IgY29kZSB3aGVuCisgKiBnaXZlbiBhIHRvby1sb25nIG1lc3NhZ2UuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYU5vUGFkZGluZ1Rvb0xvbmcpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworICAgIC8vIE9uZSBieXRlIHRvbyBsb25nCisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCAvIDggKyAxLCAnYScpOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR04pKSk7CisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0lOUFVUX0xFTkdUSCwgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKKworICAgIC8vIFZlcnkgbGFyZ2UgbWVzc2FnZSB0aGF0IHNob3VsZCBleGNlZWQgdGhlIHRyYW5zZmVyIGJ1ZmZlciBzaXplIG9mIGFueSByZWFzb25hYmxlIFRFRS4KKyAgICBtZXNzYWdlID0gc3RyaW5nKDEyOCAqIDEwMjQsICdhJyk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTikpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0lOUFVUX0xFTkdUSCwgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FBYm9ydAorICoKKyAqIFZlcmlmaWVzIHRoYXQgb3BlcmF0aW9ucyBjYW4gYmUgYWJvcnRlZCBjb3JyZWN0bHkuICBVc2VzIGFuIFJTQSBzaWduaW5nIG9wZXJhdGlvbiBmb3IgdGhlIHRlc3QsCisgKiBidXQgdGhlIGJlaGF2aW9yIHNob3VsZCBiZSBhbGdvcml0aG0gYW5kIHB1cnBvc2UtaW5kZXBlbmRlbnQuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYUFib3J0KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwKKyAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBBYm9ydChvcF9oYW5kbGVfKSk7CisKKyAgICAvLyBBbm90aGVyIGFib3J0IHNob3VsZCBmYWlsCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9PUEVSQVRJT05fSEFORExFLCBBYm9ydChvcF9oYW5kbGVfKSk7CisKKyAgICAvLyBTZXQgdG8gc2VudGluZWwsIHNvIFRlYXJEb3duKCkgZG9lc24ndCB0cnkgdG8gYWJvcnQgYWdhaW4uCisgICAgb3BfaGFuZGxlXyA9IGtPcEhhbmRsZVNlbnRpbmVsOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LlJzYVVuc3VwcG9ydGVkUGFkZGluZworICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBIG9wZXJhdGlvbnMgZmFpbCB3aXRoIHRoZSBjb3JyZWN0IGVycm9yIChidXQga2V5IGdlbiBzdWNjZWVkcykgd2hlbiB1c2VkIHdpdGggYQorICogcGFkZGluZyBtb2RlIGluYXBwcm9wcmlhdGUgZm9yIFJTQS4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhVW5zdXBwb3J0ZWRQYWRkaW5nKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYgLyogc3VwcG9ydGVkIGRpZ2VzdCAqLykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNykpKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIEVycm9yQ29kZTo6VU5TVVBQT1JURURfUEFERElOR19NT0RFLAorICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLAorICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikuUGFkZGluZyhQYWRkaW5nTW9kZTo6UEtDUzcpKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhUHNzTm9EaWdlc3QKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBQU1Mgb3BlcmF0aW9ucyBmYWlsIHdoZW4gbm8gZGlnZXN0IGlzIHVzZWQuICBQU1MgcmVxdWlyZXMgYSBkaWdlc3QuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIFJzYU5vRGlnZXN0KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKSk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX0RJR0VTVCwKKyAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwKKyAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUFNTKSkpOworCisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfRElHRVNULAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhUHNzTm9EaWdlc3QKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBvcGVyYXRpb25zIGZhaWwgd2hlbiBubyBwYWRkaW5nIG1vZGUgaXMgc3BlY2lmaWVkLiAgUGFkZGluZ01vZGU6Ok5PTkUgaXMKKyAqIHN1cHBvcnRlZCBpbiBzb21lIGNhc2VzIChhcyB2YWxpZGF0ZWQgaW4gb3RoZXIgdGVzdHMpLCBidXQgYSBtb2RlIG11c3QgYmUgc3BlY2lmaWVkLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FOb1BhZGRpbmcpIHsKKyAgICAvLyBQYWRkaW5nIG11c3QgYmUgc3BlY2lmaWVkCisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlNpZ25pbmdLZXkoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfUEFERElOR19NT0RFLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuUnNhU2hvcnRNZXNzYWdlCisgKgorICogVmVyaWZpZXMgdGhhdCByYXcgUlNBIHNpZ25hdHVyZXMgc3VjY2VlZCB3aXRoIGEgbWVzc2FnZSBzaG9ydGVyIHRoYW4gdGhlIGtleSBzaXplLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FUb29TaG9ydE1lc3NhZ2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIC8vIEJhcmVseSBzaG9ydGVyCisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCAvIDggLSAxLCAnYScpOworICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpOworCisgICAgLy8gTXVjaCBzaG9ydGVyCisgICAgbWVzc2FnZSA9ICJhIjsKKyAgICBTaWduTWVzc2FnZShtZXNzYWdlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FTaWduV2l0aEVuY3J5cHRpb25LZXkKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBlbmNyeXB0aW9uIGtleXMgY2Fubm90IGJlIHVzZWQgdG8gc2lnbi4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgUnNhU2lnbldpdGhFbmNyeXB0aW9uS2V5KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX1BVUlBPU0UsCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sCisgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5Sc2FTaWduVG9vTGFyZ2VNZXNzYWdlCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIGEgcmF3IHNpZ25hdHVyZSBvZiBhIG1lc3NhZ2Ugd2hpY2ggaXMgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBrZXksIGJ1dAorICogbnVtZXJpY2FsbHkgbGFyZ2VyIHRoYW4gdGhlIHB1YmxpYyBtb2R1bHVzLCBmYWlscyB3aXRoIHRoZSBjb3JyZWN0IGVycm9yLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBSc2FTaWduVG9vTGFyZ2VNZXNzYWdlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICAvLyBMYXJnZXN0IHBvc3NpYmxlIG1lc3NhZ2Ugd2lsbCBhbHdheXMgYmUgbGFyZ2VyIHRoYW4gdGhlIHB1YmxpYyBtb2R1bHVzLgorICAgIHN0cmluZyBtZXNzYWdlKDEwMjQgLyA4LCBzdGF0aWNfY2FzdDxjaGFyPigweGZmKSk7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKyAgICBzdHJpbmcgc2lnbmF0dXJlOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OklOVkFMSURfQVJHVU1FTlQsIEZpbmlzaChtZXNzYWdlLCAmc2lnbmF0dXJlKSk7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuRWNkc2FBbGxTaXplc0FuZEhhc2hlcworICoKKyAqIFZlcmlmaWVzIHRoYXQgRUNEU0Egb3BlcmF0aW9ucyBzdWNjZWVkIHdpdGggYWxsIHBvc3NpYmxlIGtleSBzaXplcyBhbmQgaGFzaGVzLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBFY2RzYUFsbFNpemVzQW5kSGFzaGVzKSB7CisgICAgZm9yIChhdXRvIGtleV9zaXplIDogezIyNCwgMjU2LCAzODQsIDUyMX0pIHsKKyAgICAgICAgZm9yIChhdXRvIGRpZ2VzdCA6IHsKKyAgICAgICAgICAgICAgICAgRGlnZXN0OjpTSEExLCBEaWdlc3Q6OlNIQV8yXzIyNCwgRGlnZXN0OjpTSEFfMl8yNTYsIERpZ2VzdDo6U0hBXzJfMzg0LAorICAgICAgICAgICAgICAgICBEaWdlc3Q6OlNIQV8yXzUxMiwKKyAgICAgICAgICAgICB9KSB7CisgICAgICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShrZXlfc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KGRpZ2VzdCkpOworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIGVycm9yKSA8PCAiRmFpbGVkIHRvIGdlbmVyYXRlIEVDRFNBIGtleSB3aXRoIHNpemUgIiA8PCBrZXlfc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiIGFuZCBkaWdlc3QgIiA8PCBkaWdlc3Q7CisgICAgICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgY29udGludWU7CisKKyAgICAgICAgICAgIHN0cmluZyBtZXNzYWdlKDEwMjQsICdhJyk7CisgICAgICAgICAgICBpZiAoZGlnZXN0ID09IERpZ2VzdDo6Tk9ORSkgbWVzc2FnZS5yZXNpemUoa2V5X3NpemUgLyA4KTsKKyAgICAgICAgICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkpOworICAgICAgICAgICAgRGVsZXRlS2V5KCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuRWNkc2FBbGxDdXJ2ZXMKKyAqCisgKiBWZXJpZmllcyB0aGF0IEVDRFNBIG9wZXJhdGlvbnMgc3VjY2VlZCB3aXRoIGFsbCBwb3NzaWJsZSBjdXJ2ZXMuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIEVjZHNhQWxsQ3VydmVzKSB7CisgICAgZm9yIChhdXRvIGN1cnZlIDoge0VjQ3VydmU6OlBfMjI0LCBFY0N1cnZlOjpQXzI1NiwgRWNDdXJ2ZTo6UF8zODQsIEVjQ3VydmU6OlBfNTIxfSkgeworICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoY3VydmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KSk7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBlcnJvcikgPDwgIkZhaWxlZCB0byBnZW5lcmF0ZSBFQ0RTQSBrZXkgd2l0aCBjdXJ2ZSAiIDw8IGN1cnZlOworICAgICAgICBpZiAoZXJyb3IgIT0gRXJyb3JDb2RlOjpPSykgY29udGludWU7CisKKyAgICAgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCwgJ2EnKTsKKyAgICAgICAgU2lnbk1lc3NhZ2UobWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpKTsKKyAgICAgICAgRGVsZXRlS2V5KCk7CisgICAgfQorfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkVjZHNhTm9EaWdlc3RIdWdlRGF0YQorICoKKyAqIFZlcmlmaWVzIHRoYXQgRUNEU0Egb3BlcmF0aW9ucyBzdXBwb3J0IHZlcnkgbGFyZ2UgbWVzc2FnZXMsIGV2ZW4gd2l0aG91dCBkaWdlc3RpbmcuICBUaGlzIHNob3VsZAorICogd29yayBiZWNhdXNlIEVDRFNBIGFjdHVhbGx5IG9ubHkgc2lnbnMgdGhlIGxlZnRtb3N0IExfbiBiaXRzIG9mIHRoZSBtZXNzYWdlLCBob3dldmVyIGxhcmdlIGl0IG1heQorICogYmUuICBOb3QgdXNpbmcgZGlnZXN0aW5nIGlzIGEgYmFkIGlkZWEsIGJ1dCBpbiBzb21lIGNhc2VzIGRpZ2VzdGluZyBpcyBkb25lIGJ5IHRoZSBmcmFtZXdvcmsuCisgKi8KK1RFU1RfRihTaWduaW5nT3BlcmF0aW9uc1Rlc3QsIEVjZHNhTm9EaWdlc3RIdWdlRGF0YSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoMjI0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UoNjQgKiAxMDI0LCAnYScpOworICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkFlc0VjYlNpZ24KKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVtcHRzIHRvIHVzZSBBRVMga2V5cyB0byBzaWduIGZhaWwgaW4gdGhlIGNvcnJlY3Qgd2F5LgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBBZXNFY2JTaWduKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlNpZ25pbmdLZXkoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6RUNCKSkpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zNjI1Mjk1NykiOworCisgICAgQXV0aG9yaXphdGlvblNldCBvdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX1BVUlBPU0UsCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIEF1dGhvcml6YXRpb25TZXQoKSAvKiBpbl9wYXJhbXMgKi8sICZvdXRfcGFyYW1zKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzM2MjMzMTg3KSI7CisKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QVVJQT1NFLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpWRVJJRlksIEF1dGhvcml6YXRpb25TZXQoKSAvKiBpbl9wYXJhbXMgKi8sICZvdXRfcGFyYW1zKSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzM2MjMzMTg3KSI7Cit9CisKKy8qCisgKiBTaWduaW5nT3BlcmF0aW9uc1Rlc3QuSG1hY0FsbERpZ2VzdHMKKyAqCisgKiBWZXJpZmllcyB0aGF0IEhNQUMgd29ya3Mgd2l0aCBhbGwgZGlnZXN0cy4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY0FsbERpZ2VzdHMpIHsKKyAgICBmb3IgKGF1dG8gZGlnZXN0IDoge0RpZ2VzdDo6U0hBMSwgRGlnZXN0OjpTSEFfMl8yMjQsIERpZ2VzdDo6U0hBXzJfMjU2LCBEaWdlc3Q6OlNIQV8yXzM4NCwKKyAgICAgICAgICAgICAgICAgICAgICAgIERpZ2VzdDo6U0hBXzJfNTEyfSkgeworICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5IbWFjS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KGRpZ2VzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDE2MCkpKQorICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBjcmVhdGUgSE1BQyBrZXkgd2l0aCBkaWdlc3QgIiA8PCBkaWdlc3Q7CisgICAgICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICAgICAgc3RyaW5nIHNpZ25hdHVyZSA9IE1hY01lc3NhZ2UobWVzc2FnZSwgZGlnZXN0LCAxNjApOworICAgICAgICBFWFBFQ1RfRVEoMTYwVSAvIDhVLCBzaWduYXR1cmUuc2l6ZSgpKQorICAgICAgICAgICAgPDwgIkZhaWxlZCB0byBzaWduIHdpdGggSE1BQyBrZXkgd2l0aCBkaWdlc3QgIiA8PCBkaWdlc3Q7CisgICAgICAgIERlbGV0ZUtleSgpOworICAgIH0KK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5IbWFjU2hhMjU2VG9vTGFyZ2VNYWNMZW5ndGgKKyAqCisgKiBWZXJpZmllcyB0aGF0IEhNQUMgZmFpbHMgaW4gdGhlIGNvcnJlY3Qgd2F5IHdoZW4gYXNrZWQgdG8gZ2VuZXJhdGUgYSBNQUMgbGFyZ2VyIHRoYW4gdGhlIGRpZ2VzdAorICogc2l6ZS4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY1NoYTI1NlRvb0xhcmdlTWFjTGVuZ3RoKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMjU2KSkpOworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0cHV0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIEVycm9yQ29kZTo6VU5TVVBQT1JURURfTUFDX0xFTkdUSCwKKyAgICAgICAgQmVnaW4oCisgICAgICAgICAgICBLZXlQdXJwb3NlOjpTSUdOLCBrZXlfYmxvYl8sCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMjY0KSwKKyAgICAgICAgICAgICZvdXRwdXRfcGFyYW1zLCAmb3BfaGFuZGxlXykpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkhtYWNTaGEyNTZUb29TbWFsbE1hY0xlbmd0aAorICoKKyAqIFZlcmlmaWVzIHRoYXQgSE1BQyBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBhc2tlZCB0byBnZW5lcmF0ZSBhIE1BQyBzbWFsbGVyIHRoYW4gdGhlCisgKiBzcGVjaWZpZWQgbWluaW11bSBNQUMgbGVuZ3RoLgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBIbWFjU2hhMjU2VG9vU21hbGxNYWNMZW5ndGgpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisgICAgQXV0aG9yaXphdGlvblNldCBvdXRwdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpJTlZBTElEX01BQ19MRU5HVEgsCisgICAgICAgIEJlZ2luKAorICAgICAgICAgICAgS2V5UHVycG9zZTo6U0lHTiwga2V5X2Jsb2JfLAorICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyMCksCisgICAgICAgICAgICAmb3V0cHV0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5IbWFjUmZjNDIzMVRlc3RDYXNlMworICoKKyAqIFZhbGlkYXRlcyBhZ2FpbnN0IHRoZSB0ZXN0IHZlY3RvcnMgZnJvbSBSRkMgNDIzMSB0ZXN0IGNhc2UgMy4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY1JmYzQyMzFUZXN0Q2FzZTMpIHsKKyAgICBzdHJpbmcga2V5KDIwLCAweGFhKTsKKyAgICBzdHJpbmcgbWVzc2FnZSg1MCwgMHhkZCk7CisgICAgdWludDhfdCBzaGFfMjI0X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4N2YsIDB4YjMsIDB4Y2IsIDB4MzUsIDB4ODgsIDB4YzYsIDB4YzEsIDB4ZjYsIDB4ZmYsIDB4YTksIDB4NjksIDB4NGQsIDB4N2QsIDB4NmEsCisgICAgICAgIDB4ZDIsIDB4NjQsIDB4OTMsIDB4NjUsIDB4YjAsIDB4YzEsIDB4ZjYsIDB4NWQsIDB4NjksIDB4ZDEsIDB4ZWMsIDB4ODMsIDB4MzMsIDB4ZWEsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV8yNTZfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHg3NywgMHgzZSwgMHhhOSwgMHgxZSwgMHgzNiwgMHg4MCwgMHgwZSwgMHg0NiwgMHg4NSwgMHg0ZCwgMHhiOCwKKyAgICAgICAgMHhlYiwgMHhkMCwgMHg5MSwgMHg4MSwgMHhhNywgMHgyOSwgMHg1OSwgMHgwOSwgMHg4YiwgMHgzZSwgMHhmOCwKKyAgICAgICAgMHhjMSwgMHgyMiwgMHhkOSwgMHg2MywgMHg1NSwgMHgxNCwgMHhjZSwgMHhkNSwgMHg2NSwgMHhmZSwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzM4NF9leHBlY3RlZFtdID0geworICAgICAgICAweDg4LCAweDA2LCAweDI2LCAweDA4LCAweGQzLCAweGU2LCAweGFkLCAweDhhLCAweDBhLCAweGEyLCAweGFjLCAweGUwLAorICAgICAgICAweDE0LCAweGM4LCAweGE4LCAweDZmLCAweDBhLCAweGE2LCAweDM1LCAweGQ5LCAweDQ3LCAweGFjLCAweDlmLCAweGViLAorICAgICAgICAweGU4LCAweDNlLCAweGY0LCAweGU1LCAweDU5LCAweDY2LCAweDE0LCAweDRiLCAweDJhLCAweDVhLCAweGIzLCAweDlkLAorICAgICAgICAweGMxLCAweDM4LCAweDE0LCAweGI5LCAweDRlLCAweDNhLCAweGI2LCAweGUxLCAweDAxLCAweGEzLCAweDRmLCAweDI3LAorICAgIH07CisgICAgdWludDhfdCBzaGFfNTEyX2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4ZmEsIDB4NzMsIDB4YjAsIDB4MDgsIDB4OWQsIDB4NTYsIDB4YTIsIDB4ODQsIDB4ZWYsIDB4YjAsIDB4ZjAsIDB4NzUsIDB4NmMsCisgICAgICAgIDB4ODksIDB4MGIsIDB4ZTksIDB4YjEsIDB4YjUsIDB4ZGIsIDB4ZGQsIDB4OGUsIDB4ZTgsIDB4MWEsIDB4MzYsIDB4NTUsIDB4ZjgsCisgICAgICAgIDB4M2UsIDB4MzMsIDB4YjIsIDB4MjcsIDB4OWQsIDB4MzksIDB4YmYsIDB4M2UsIDB4ODQsIDB4ODIsIDB4NzksIDB4YTcsIDB4MjIsCisgICAgICAgIDB4YzgsIDB4MDYsIDB4YjQsIDB4ODUsIDB4YTQsIDB4N2UsIDB4NjcsIDB4YzgsIDB4MDcsIDB4YjksIDB4NDYsIDB4YTMsIDB4MzcsCisgICAgICAgIDB4YmUsIDB4ZTgsIDB4OTQsIDB4MjYsIDB4NzQsIDB4MjcsIDB4ODgsIDB4NTksIDB4ZTEsIDB4MzIsIDB4OTIsIDB4ZmIsCisgICAgfTsKKworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzIyNCwgbWFrZV9zdHJpbmcoc2hhXzIyNF9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzI1NiwgbWFrZV9zdHJpbmcoc2hhXzI1Nl9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzM4NCwgbWFrZV9zdHJpbmcoc2hhXzM4NF9leHBlY3RlZCkpOworICAgIENoZWNrSG1hY1Rlc3RWZWN0b3Ioa2V5LCBtZXNzYWdlLCBEaWdlc3Q6OlNIQV8yXzUxMiwgbWFrZV9zdHJpbmcoc2hhXzUxMl9leHBlY3RlZCkpOworfQorCisvKgorICogU2lnbmluZ09wZXJhdGlvbnNUZXN0LkhtYWNSZmM0MjMxVGVzdENhc2U1CisgKgorICogVmFsaWRhdGVzIGFnYWluc3QgdGhlIHRlc3QgdmVjdG9ycyBmcm9tIFJGQyA0MjMxIHRlc3QgY2FzZSA1LgorICovCitURVNUX0YoU2lnbmluZ09wZXJhdGlvbnNUZXN0LCBIbWFjUmZjNDIzMVRlc3RDYXNlNSkgeworICAgIHN0cmluZyBrZXkoMjAsIDB4MGMpOworICAgIHN0cmluZyBtZXNzYWdlID0gIlRlc3QgV2l0aCBUcnVuY2F0aW9uIjsKKworICAgIHVpbnQ4X3Qgc2hhXzIyNF9leHBlY3RlZFtdID0geworICAgICAgICAweDBlLCAweDJhLCAweGVhLCAweDY4LCAweGE5LCAweDBjLCAweDhkLCAweDM3LAorICAgICAgICAweGM5LCAweDg4LCAweGJjLCAweGRiLCAweDlmLCAweGNhLCAweDZmLCAweGE4LAorICAgIH07CisgICAgdWludDhfdCBzaGFfMjU2X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4YTMsIDB4YjYsIDB4MTYsIDB4NzQsIDB4NzMsIDB4MTAsIDB4MGUsIDB4ZTAsCisgICAgICAgIDB4NmUsIDB4MGMsIDB4NzksIDB4NmMsIDB4MjksIDB4NTUsIDB4NTUsIDB4MmIsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV8zODRfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHgzYSwgMHhiZiwgMHgzNCwgMHhjMywgMHg1MCwgMHgzYiwgMHgyYSwgMHgyMywKKyAgICAgICAgMHhhNCwgMHg2ZSwgMHhmYywgMHg2MSwgMHg5YiwgMHhhZSwgMHhmOCwgMHg5NywKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzUxMl9leHBlY3RlZFtdID0geworICAgICAgICAweDQxLCAweDVmLCAweGFkLCAweDYyLCAweDcxLCAweDU4LCAweDBhLCAweDUzLAorICAgICAgICAweDFkLCAweDQxLCAweDc5LCAweGJjLCAweDg5LCAweDFkLCAweDg3LCAweGE2LAorICAgIH07CisKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yMjQsIG1ha2Vfc3RyaW5nKHNoYV8yMjRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yNTYsIG1ha2Vfc3RyaW5nKHNoYV8yNTZfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8zODQsIG1ha2Vfc3RyaW5nKHNoYV8zODRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl81MTIsIG1ha2Vfc3RyaW5nKHNoYV81MTJfZXhwZWN0ZWQpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5IbWFjUmZjNDIzMVRlc3RDYXNlNgorICoKKyAqIFZhbGlkYXRlcyBhZ2FpbnN0IHRoZSB0ZXN0IHZlY3RvcnMgZnJvbSBSRkMgNDIzMSB0ZXN0IGNhc2UgNi4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY1JmYzQyMzFUZXN0Q2FzZTYpIHsKKyAgICBzdHJpbmcga2V5KDEzMSwgMHhhYSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiVGVzdCBVc2luZyBMYXJnZXIgVGhhbiBCbG9jay1TaXplIEtleSAtIEhhc2ggS2V5IEZpcnN0IjsKKworICAgIHVpbnQ4X3Qgc2hhXzIyNF9leHBlY3RlZFtdID0geworICAgICAgICAweDk1LCAweGU5LCAweGEwLCAweGRiLCAweDk2LCAweDIwLCAweDk1LCAweGFkLCAweGFlLCAweGJlLCAweDliLCAweDJkLCAweDZmLCAweDBkLAorICAgICAgICAweGJjLCAweGUyLCAweGQ0LCAweDk5LCAweGYxLCAweDEyLCAweGYyLCAweGQyLCAweGI3LCAweDI3LCAweDNmLCAweGE2LCAweDg3LCAweDBlLAorICAgIH07CisgICAgdWludDhfdCBzaGFfMjU2X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4NjAsIDB4ZTQsIDB4MzEsIDB4NTksIDB4MWUsIDB4ZTAsIDB4YjYsIDB4N2YsIDB4MGQsIDB4OGEsIDB4MjYsCisgICAgICAgIDB4YWEsIDB4Y2IsIDB4ZjUsIDB4YjcsIDB4N2YsIDB4OGUsIDB4MGIsIDB4YzYsIDB4MjEsIDB4MzcsIDB4MjgsCisgICAgICAgIDB4YzUsIDB4MTQsIDB4MDUsIDB4NDYsIDB4MDQsIDB4MGYsIDB4MGUsIDB4ZTMsIDB4N2YsIDB4NTQsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV8zODRfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHg0ZSwgMHhjZSwgMHgwOCwgMHg0NCwgMHg4NSwgMHg4MSwgMHgzZSwgMHg5MCwgMHg4OCwgMHhkMiwgMHhjNiwgMHgzYSwKKyAgICAgICAgMHgwNCwgMHgxYiwgMHhjNSwgMHhiNCwgMHg0ZiwgMHg5ZSwgMHhmMSwgMHgwMSwgMHgyYSwgMHgyYiwgMHg1OCwgMHg4ZiwKKyAgICAgICAgMHgzYywgMHhkMSwgMHgxZiwgMHgwNSwgMHgwMywgMHgzYSwgMHhjNCwgMHhjNiwgMHgwYywgMHgyZSwgMHhmNiwgMHhhYiwKKyAgICAgICAgMHg0MCwgMHgzMCwgMHhmZSwgMHg4MiwgMHg5NiwgMHgyNCwgMHg4ZCwgMHhmMSwgMHg2MywgMHhmNCwgMHg0OSwgMHg1MiwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzUxMl9leHBlY3RlZFtdID0geworICAgICAgICAweDgwLCAweGIyLCAweDQyLCAweDYzLCAweGM3LCAweGMxLCAweGEzLCAweGViLCAweGI3LCAweDE0LCAweDkzLCAweGMxLCAweGRkLAorICAgICAgICAweDdiLCAweGU4LCAweGI0LCAweDliLCAweDQ2LCAweGQxLCAweGY0LCAweDFiLCAweDRhLCAweGVlLCAweGMxLCAweDEyLCAweDFiLAorICAgICAgICAweDAxLCAweDM3LCAweDgzLCAweGY4LCAweGYzLCAweDUyLCAweDZiLCAweDU2LCAweGQwLCAweDM3LCAweGUwLCAweDVmLCAweDI1LAorICAgICAgICAweDk4LCAweGJkLCAweDBmLCAweGQyLCAweDIxLCAweDVkLCAweDZhLCAweDFlLCAweDUyLCAweDk1LCAweGU2LCAweDRmLCAweDczLAorICAgICAgICAweGY2LCAweDNmLCAweDBhLCAweGVjLCAweDhiLCAweDkxLCAweDVhLCAweDk4LCAweDVkLCAweDc4LCAweDY1LCAweDk4LAorICAgIH07CisKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yMjQsIG1ha2Vfc3RyaW5nKHNoYV8yMjRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8yNTYsIG1ha2Vfc3RyaW5nKHNoYV8yNTZfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl8zODQsIG1ha2Vfc3RyaW5nKHNoYV8zODRfZXhwZWN0ZWQpKTsKKyAgICBDaGVja0htYWNUZXN0VmVjdG9yKGtleSwgbWVzc2FnZSwgRGlnZXN0OjpTSEFfMl81MTIsIG1ha2Vfc3RyaW5nKHNoYV81MTJfZXhwZWN0ZWQpKTsKK30KKworLyoKKyAqIFNpZ25pbmdPcGVyYXRpb25zVGVzdC5IbWFjUmZjNDIzMVRlc3RDYXNlNworICoKKyAqIFZhbGlkYXRlcyBhZ2FpbnN0IHRoZSB0ZXN0IHZlY3RvcnMgZnJvbSBSRkMgNDIzMSB0ZXN0IGNhc2UgNy4KKyAqLworVEVTVF9GKFNpZ25pbmdPcGVyYXRpb25zVGVzdCwgSG1hY1JmYzQyMzFUZXN0Q2FzZTcpIHsKKyAgICBzdHJpbmcga2V5KDEzMSwgMHhhYSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiVGhpcyBpcyBhIHRlc3QgdXNpbmcgYSBsYXJnZXIgdGhhbiBibG9jay1zaXplIGtleSBhbmQgYSBsYXJnZXIgdGhhbiAiCisgICAgICAgICAgICAgICAgICAgICAiYmxvY2stc2l6ZSBkYXRhLiBUaGUga2V5IG5lZWRzIHRvIGJlIGhhc2hlZCBiZWZvcmUgYmVpbmcgdXNlZCBieSB0aGUgSE1BQyAiCisgICAgICAgICAgICAgICAgICAgICAiYWxnb3JpdGhtLiI7CisKKyAgICB1aW50OF90IHNoYV8yMjRfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHgzYSwgMHg4NSwgMHg0MSwgMHg2NiwgMHhhYywgMHg1ZCwgMHg5ZiwgMHgwMiwgMHgzZiwgMHg1NCwgMHhkNSwgMHgxNywgMHhkMCwgMHhiMywKKyAgICAgICAgMHg5ZCwgMHhiZCwgMHg5NCwgMHg2NywgMHg3MCwgMHhkYiwgMHg5YywgMHgyYiwgMHg5NSwgMHhjOSwgMHhmNiwgMHhmNSwgMHg2NSwgMHhkMSwKKyAgICB9OworICAgIHVpbnQ4X3Qgc2hhXzI1Nl9leHBlY3RlZFtdID0geworICAgICAgICAweDliLCAweDA5LCAweGZmLCAweGE3LCAweDFiLCAweDk0LCAweDJmLCAweGNiLCAweDI3LCAweDYzLCAweDVmLAorICAgICAgICAweGJjLCAweGQ1LCAweGIwLCAweGU5LCAweDQ0LCAweGJmLCAweGRjLCAweDYzLCAweDY0LCAweDRmLCAweDA3LAorICAgICAgICAweDEzLCAweDkzLCAweDhhLCAweDdmLCAweDUxLCAweDUzLCAweDVjLCAweDNhLCAweDM1LCAweGUyLAorICAgIH07CisgICAgdWludDhfdCBzaGFfMzg0X2V4cGVjdGVkW10gPSB7CisgICAgICAgIDB4NjYsIDB4MTcsIDB4MTcsIDB4OGUsIDB4OTQsIDB4MWYsIDB4MDIsIDB4MGQsIDB4MzUsIDB4MWUsIDB4MmYsIDB4MjUsCisgICAgICAgIDB4NGUsIDB4OGYsIDB4ZDMsIDB4MmMsIDB4NjAsIDB4MjQsIDB4MjAsIDB4ZmUsIDB4YjAsIDB4YjgsIDB4ZmIsIDB4OWEsCisgICAgICAgIDB4ZGMsIDB4Y2UsIDB4YmIsIDB4ODIsIDB4NDYsIDB4MWUsIDB4OTksIDB4YzUsIDB4YTYsIDB4NzgsIDB4Y2MsIDB4MzEsCisgICAgICAgIDB4ZTcsIDB4OTksIDB4MTcsIDB4NmQsIDB4MzgsIDB4NjAsIDB4ZTYsIDB4MTEsIDB4MGMsIDB4NDYsIDB4NTIsIDB4M2UsCisgICAgfTsKKyAgICB1aW50OF90IHNoYV81MTJfZXhwZWN0ZWRbXSA9IHsKKyAgICAgICAgMHhlMywgMHg3YiwgMHg2YSwgMHg3NywgMHg1ZCwgMHhjOCwgMHg3ZCwgMHhiYSwgMHhhNCwgMHhkZiwgMHhhOSwgMHhmOSwgMHg2ZSwKKyAgICAgICAgMHg1ZSwgMHgzZiwgMHhmZCwgMHhkZSwgMHhiZCwgMHg3MSwgMHhmOCwgMHg4NiwgMHg3MiwgMHg4OSwgMHg4NiwgMHg1ZCwgMHhmNSwKKyAgICAgICAgMHhhMywgMHgyZCwgMHgyMCwgMHhjZCwgMHhjOSwgMHg0NCwgMHhiNiwgMHgwMiwgMHgyYywgMHhhYywgMHgzYywgMHg0OSwgMHg4MiwKKyAgICAgICAgMHhiMSwgMHgwZCwgMHg1ZSwgMHhlYiwgMHg1NSwgMHhjMywgMHhlNCwgMHhkZSwgMHgxNSwgMHgxMywgMHg0NiwgMHg3NiwgMHhmYiwKKyAgICAgICAgMHg2ZCwgMHhlMCwgMHg0NCwgMHg2MCwgMHg2NSwgMHhjOSwgMHg3NCwgMHg0MCwgMHhmYSwgMHg4YywgMHg2YSwgMHg1OCwKKyAgICB9OworCisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMjI0LCBtYWtlX3N0cmluZyhzaGFfMjI0X2V4cGVjdGVkKSk7CisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMjU2LCBtYWtlX3N0cmluZyhzaGFfMjU2X2V4cGVjdGVkKSk7CisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMzg0LCBtYWtlX3N0cmluZyhzaGFfMzg0X2V4cGVjdGVkKSk7CisgICAgQ2hlY2tIbWFjVGVzdFZlY3RvcihrZXksIG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfNTEyLCBtYWtlX3N0cmluZyhzaGFfNTEyX2V4cGVjdGVkKSk7Cit9CisKK3R5cGVkZWYgS2V5bWFzdGVySGlkbFRlc3QgVmVyaWZpY2F0aW9uT3BlcmF0aW9uc1Rlc3Q7CisKKy8qCisgKiBWZXJpZmljYXRpb25PcGVyYXRpb25zVGVzdC5Sc2FTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCBhIHNpbXBsZSBSU0Egc2lnbmF0dXJlL3ZlcmlmaWNhdGlvbiBzZXF1ZW5jZSBzdWNjZWVkcy4KKyAqLworVEVTVF9GKFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgbWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpOT05FKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSk7CisgICAgVmVyaWZ5TWVzc2FnZShtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKTsKK30KKworLyoKKyAqIFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LlJzYVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyBSU0Egc2lnbmF0dXJlL3ZlcmlmaWNhdGlvbiBmb3IgYWxsIHBhZGRpbmcgbW9kZXMgYW5kIGRpZ2VzdHMuCisgKi8KK1RFU1RfRihWZXJpZmljYXRpb25PcGVyYXRpb25zVGVzdCwgUnNhQWxsUGFkZGluZ3NBbmREaWdlc3RzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMjA0OCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FLCBEaWdlc3Q6Ok1ENSwgRGlnZXN0OjpTSEExLCBEaWdlc3Q6OlNIQV8yXzIyNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlnZXN0OjpTSEFfMl8yNTYsIERpZ2VzdDo6U0hBXzJfMzg0LCBEaWdlc3Q6OlNIQV8yXzUxMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9TSUdOKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UoMTI4LCAnYScpOworICAgIHN0cmluZyBjb3JydXB0X21lc3NhZ2UobWVzc2FnZSk7CisgICAgKytjb3JydXB0X21lc3NhZ2VbY29ycnVwdF9tZXNzYWdlLnNpemUoKSAvIDJdOworCisgICAgZm9yIChhdXRvIHBhZGRpbmcgOgorICAgICAgICAge1BhZGRpbmdNb2RlOjpOT05FLCBQYWRkaW5nTW9kZTo6UlNBX1BTUywgUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTn0pIHsKKworICAgICAgICBmb3IgKGF1dG8gZGlnZXN0IDoge0RpZ2VzdDo6Tk9ORSwgRGlnZXN0OjpNRDUsIERpZ2VzdDo6U0hBMSwgRGlnZXN0OjpTSEFfMl8yMjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlnZXN0OjpTSEFfMl8yNTYsIERpZ2VzdDo6U0hBXzJfMzg0LCBEaWdlc3Q6OlNIQV8yXzUxMn0pIHsKKyAgICAgICAgICAgIGlmIChwYWRkaW5nID09IFBhZGRpbmdNb2RlOjpOT05FICYmIGRpZ2VzdCAhPSBEaWdlc3Q6Ok5PTkUpIHsKKyAgICAgICAgICAgICAgICAvLyBEaWdlc3Rpbmcgb25seSBtYWtlcyBzZW5zZSB3aXRoIHBhZGRpbmcuCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChwYWRkaW5nID09IFBhZGRpbmdNb2RlOjpSU0FfUFNTICYmIGRpZ2VzdCA9PSBEaWdlc3Q6Ok5PTkUpIHsKKyAgICAgICAgICAgICAgICAvLyBQU1MgcmVxdWlyZXMgZGlnZXN0aW5nLgorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdHJpbmcgc2lnbmF0dXJlID0KKyAgICAgICAgICAgICAgICBTaWduTWVzc2FnZShtZXNzYWdlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpLlBhZGRpbmcocGFkZGluZykpOworICAgICAgICAgICAgVmVyaWZ5TWVzc2FnZShtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KGRpZ2VzdCkuUGFkZGluZyhwYWRkaW5nKSk7CisKKyAgICAgICAgICAgIGlmIChkaWdlc3QgIT0gRGlnZXN0OjpOT05FKSB7CisgICAgICAgICAgICAgICAgLy8gVmVyaWZ5IHdpdGggT3BlblNTTC4KKyAgICAgICAgICAgICAgICBIaWRsQnVmIHB1YmtleTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgRXhwb3J0S2V5KEtleUZvcm1hdDo6WDUwOSwgJnB1YmtleSkpOworCisgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcCA9IHB1YmtleS5kYXRhKCk7CisgICAgICAgICAgICAgICAgRVZQX1BLRVlfUHRyIHBrZXkoZDJpX1BVQktFWShudWxscHRyIC8qIGFsbG9jIG5ldyAqLywgJnAsIHB1YmtleS5zaXplKCkpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShwa2V5LmdldCgpKTsKKworICAgICAgICAgICAgICAgIEVWUF9NRF9DVFggZGlnZXN0X2N0eDsKKyAgICAgICAgICAgICAgICBFVlBfTURfQ1RYX2luaXQoJmRpZ2VzdF9jdHgpOworICAgICAgICAgICAgICAgIEVWUF9QS0VZX0NUWCogcGtleV9jdHg7CisgICAgICAgICAgICAgICAgY29uc3QgRVZQX01EKiBtZCA9IG9wZW5zc2xfZGlnZXN0KGRpZ2VzdCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX05FKG1kLCBudWxscHRyKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMSwgRVZQX0RpZ2VzdFZlcmlmeUluaXQoJmRpZ2VzdF9jdHgsICZwa2V5X2N0eCwgbWQsIG51bGxwdHIgLyogZW5naW5lICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwa2V5LmdldCgpKSk7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKHBhZGRpbmcpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFBhZGRpbmdNb2RlOjpSU0FfUFNTOgorICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfR1QoRVZQX1BLRVlfQ1RYX3NldF9yc2FfcGFkZGluZyhwa2V5X2N0eCwgUlNBX1BLQ1MxX1BTU19QQURESU5HKSwgMCk7CisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9HVChFVlBfUEtFWV9DVFhfc2V0X3JzYV9wc3Nfc2FsdGxlbihwa2V5X2N0eCwgRVZQX01EX3NpemUobWQpKSwgMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfU0lHTjoKKyAgICAgICAgICAgICAgICAgICAgLy8gUEtDUzEgaXMgdGhlIGRlZmF1bHQ7IGRvbid0IG5lZWQgdG8gc2V0IGFueXRoaW5nLgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBGQUlMKCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgxLCBFVlBfRGlnZXN0VmVyaWZ5VXBkYXRlKCZkaWdlc3RfY3R4LCBtZXNzYWdlLmRhdGEoKSwgbWVzc2FnZS5zaXplKCkpKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMSwgRVZQX0RpZ2VzdFZlcmlmeUZpbmFsKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRpZ2VzdF9jdHgsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHNpZ25hdHVyZS5kYXRhKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmF0dXJlLnNpemUoKSkpOworICAgICAgICAgICAgICAgIEVWUF9NRF9DVFhfY2xlYW51cCgmZGlnZXN0X2N0eCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIENvcnJ1cHQgc2lnbmF0dXJlIHNob3VsZG4ndCB2ZXJpZnkuCisgICAgICAgICAgICBzdHJpbmcgY29ycnVwdF9zaWduYXR1cmUoc2lnbmF0dXJlKTsKKyAgICAgICAgICAgICsrY29ycnVwdF9zaWduYXR1cmVbY29ycnVwdF9zaWduYXR1cmUuc2l6ZSgpIC8gMl07CisKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlZFUklGWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpLlBhZGRpbmcocGFkZGluZykpKTsKKyAgICAgICAgICAgIHN0cmluZyByZXN1bHQ7CisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELCBGaW5pc2gobWVzc2FnZSwgY29ycnVwdF9zaWduYXR1cmUsICZyZXN1bHQpKTsKKworICAgICAgICAgICAgLy8gQ29ycnVwdCBtZXNzYWdlIHNob3VsZG4ndCB2ZXJpZnkKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlZFUklGWSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpLlBhZGRpbmcocGFkZGluZykpKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlZFUklGSUNBVElPTl9GQUlMRUQsIEZpbmlzaChjb3JydXB0X21lc3NhZ2UsIHNpZ25hdHVyZSwgJnJlc3VsdCkpOworICAgICAgICB9CisgICAgfQorfQorCisvKgorICogVmVyaWZpY2F0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIEVDRFNBIHNpZ25hdHVyZS92ZXJpZmljYXRpb24gZm9yIGFsbCBkaWdlc3RzIGFuZCBjdXJ2ZXMuCisgKi8KK1RFU1RfRihWZXJpZmljYXRpb25PcGVyYXRpb25zVGVzdCwgRWNkc2FBbGxEaWdlc3RzQW5kQ3VydmVzKSB7CisgICAgYXV0byBkaWdlc3RzID0geworICAgICAgICBEaWdlc3Q6Ok5PTkUsICAgICAgRGlnZXN0OjpTSEExLCAgICAgIERpZ2VzdDo6U0hBXzJfMjI0LAorICAgICAgICBEaWdlc3Q6OlNIQV8yXzI1NiwgRGlnZXN0OjpTSEFfMl8zODQsIERpZ2VzdDo6U0hBXzJfNTEyLAorICAgIH07CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwIjsKKyAgICBzdHJpbmcgY29ycnVwdF9tZXNzYWdlID0gIjIyMzQ1Njc4OTAiOworICAgIGZvciAoYXV0byBjdXJ2ZSA6IHtFY0N1cnZlOjpQXzIyNCwgRWNDdXJ2ZTo6UF8yNTYsIEVjQ3VydmU6OlBfMzg0LCBFY0N1cnZlOjpQXzUyMX0pIHsKKyAgICAgICAgRXJyb3JDb2RlIGVycm9yID0gR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KGN1cnZlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChkaWdlc3RzKSk7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBlcnJvcikgPDwgIkZhaWxlZCB0byBnZW5lcmF0ZSBrZXkgZm9yIEVDIGN1cnZlICIgPDwgY3VydmU7CisgICAgICAgIGlmIChlcnJvciAhPSBFcnJvckNvZGU6Ok9LKSB7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoYXV0byBkaWdlc3QgOiBkaWdlc3RzKSB7CisgICAgICAgICAgICBzdHJpbmcgc2lnbmF0dXJlID0gU2lnbk1lc3NhZ2UobWVzc2FnZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoZGlnZXN0KSk7CisgICAgICAgICAgICBWZXJpZnlNZXNzYWdlKG1lc3NhZ2UsIHNpZ25hdHVyZSwgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoZGlnZXN0KSk7CisKKyAgICAgICAgICAgIC8vIFZlcmlmeSB3aXRoIE9wZW5TU0wKKyAgICAgICAgICAgIGlmIChkaWdlc3QgIT0gRGlnZXN0OjpOT05FKSB7CisgICAgICAgICAgICAgICAgSGlkbEJ1ZiBwdWJrZXk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEV4cG9ydEtleShLZXlGb3JtYXQ6Olg1MDksICZwdWJrZXkpKQorICAgICAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAgICAgY29uc3QgdWludDhfdCogcCA9IHB1YmtleS5kYXRhKCk7CisgICAgICAgICAgICAgICAgRVZQX1BLRVlfUHRyIHBrZXkoZDJpX1BVQktFWShudWxscHRyIC8qIGFsbG9jIG5ldyAqLywgJnAsIHB1YmtleS5zaXplKCkpKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShwa2V5LmdldCgpKTsKKworICAgICAgICAgICAgICAgIEVWUF9NRF9DVFggZGlnZXN0X2N0eDsKKyAgICAgICAgICAgICAgICBFVlBfTURfQ1RYX2luaXQoJmRpZ2VzdF9jdHgpOworICAgICAgICAgICAgICAgIEVWUF9QS0VZX0NUWCogcGtleV9jdHg7CisgICAgICAgICAgICAgICAgY29uc3QgRVZQX01EKiBtZCA9IG9wZW5zc2xfZGlnZXN0KGRpZ2VzdCk7CisKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoMSwgRVZQX0RpZ2VzdFZlcmlmeUluaXQoJmRpZ2VzdF9jdHgsICZwa2V5X2N0eCwgbWQsIG51bGxwdHIgLyogZW5naW5lICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwa2V5LmdldCgpKSkKKyAgICAgICAgICAgICAgICAgICAgPDwgY3VydmUgPDwgJyAnIDw8IGRpZ2VzdDsKKworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgxLCBFVlBfRGlnZXN0VmVyaWZ5VXBkYXRlKCZkaWdlc3RfY3R4LCBtZXNzYWdlLmRhdGEoKSwgbWVzc2FnZS5zaXplKCkpKQorICAgICAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDEsIEVWUF9EaWdlc3RWZXJpZnlGaW5hbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkaWdlc3RfY3R4LCByZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihzaWduYXR1cmUuZGF0YSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hdHVyZS5zaXplKCkpKQorICAgICAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAgICAgRVZQX01EX0NUWF9jbGVhbnVwKCZkaWdlc3RfY3R4KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gQ29ycnVwdCBzaWduYXR1cmUgc2hvdWxkbid0IHZlcmlmeS4KKyAgICAgICAgICAgIHN0cmluZyBjb3JydXB0X3NpZ25hdHVyZShzaWduYXR1cmUpOworICAgICAgICAgICAgKytjb3JydXB0X3NpZ25hdHVyZVtjb3JydXB0X3NpZ25hdHVyZS5zaXplKCkgLyAyXTsKKworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpKSkKKyAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICBzdHJpbmcgcmVzdWx0OworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VkVSSUZJQ0FUSU9OX0ZBSUxFRCwgRmluaXNoKG1lc3NhZ2UsIGNvcnJ1cHRfc2lnbmF0dXJlLCAmcmVzdWx0KSkKKyAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICAvLyBDb3JydXB0IG1lc3NhZ2Ugc2hvdWxkbid0IHZlcmlmeQorICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6VkVSSUZZLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChkaWdlc3QpKSkKKyAgICAgICAgICAgICAgICA8PCBjdXJ2ZSA8PCAnICcgPDwgZGlnZXN0OworCisgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELCBGaW5pc2goY29ycnVwdF9tZXNzYWdlLCBzaWduYXR1cmUsICZyZXN1bHQpKQorICAgICAgICAgICAgICAgIDw8IGN1cnZlIDw8ICcgJyA8PCBkaWdlc3Q7CisgICAgICAgIH0KKworICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgRGVsZXRlS2V5KCkpOworICAgIH0KK30KKworLyoKKyAqIFZlcmlmaWNhdGlvbk9wZXJhdGlvbnNUZXN0LkhtYWNTaWduaW5nS2V5Q2Fubm90VmVyaWZ5CisgKgorICogVmVyaWZpZXMgSE1BQyBzaWduaW5nIGFuZCB2ZXJpZmljYXRpb24sIGJ1dCB0aGF0IGEgc2lnbmluZyBrZXkgY2Fubm90IGJlIHVzZWQgdG8gdmVyaWZ5LgorICovCitURVNUX0YoVmVyaWZpY2F0aW9uT3BlcmF0aW9uc1Rlc3QsIEhtYWNTaWduaW5nS2V5Q2Fubm90VmVyaWZ5KSB7CisgICAgc3RyaW5nIGtleV9tYXRlcmlhbCA9ICJIZWxsb1RoaXNJc0FLZXkiOworCisgICAgSGlkbEJ1ZiBzaWduaW5nX2tleSwgdmVyaWZpY2F0aW9uX2tleTsKKyAgICBLZXlDaGFyYWN0ZXJpc3RpY3Mgc2lnbmluZ19rZXlfY2hhcnMsIHZlcmlmaWNhdGlvbl9rZXlfY2hhcnM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19QVVJQT1NFLCBLZXlQdXJwb3NlOjpTSUdOKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEExKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTYwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UkFXLCBrZXlfbWF0ZXJpYWwsICZzaWduaW5nX2tleSwgJnNpZ25pbmdfa2V5X2NoYXJzKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpITUFDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19QVVJQT1NFLCBLZXlQdXJwb3NlOjpWRVJJRlkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQTEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxNjApLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpSQVcsIGtleV9tYXRlcmlhbCwgJnZlcmlmaWNhdGlvbl9rZXksICZ2ZXJpZmljYXRpb25fa2V5X2NoYXJzKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJUaGlzIGlzIGEgbWVzc2FnZS4iOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZSgKKyAgICAgICAgc2lnbmluZ19rZXksIG1lc3NhZ2UsCisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6U0hBMSkuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTYwKSk7CisKKyAgICAvLyBTaWduaW5nIGtleSBzaG91bGQgbm90IHdvcmsuCisgICAgQXV0aG9yaXphdGlvblNldCBvdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOQ09NUEFUSUJMRV9QVVJQT1NFLAorICAgICAgICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpWRVJJRlksIHNpZ25pbmdfa2V5LCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQTEpLAorICAgICAgICAgICAgICAgICAgICAmb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKworICAgIC8vIFZlcmlmaWNhdGlvbiBrZXkgc2hvdWxkIHdvcmsuCisgICAgVmVyaWZ5TWVzc2FnZSh2ZXJpZmljYXRpb25fa2V5LCBtZXNzYWdlLCBzaWduYXR1cmUsCisgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQTEpKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBEZWxldGVLZXkoJnNpZ25pbmdfa2V5KSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgmdmVyaWZpY2F0aW9uX2tleSkpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEV4cG9ydEtleVRlc3Q7CisKKy8qCisgKiBFeHBvcnRLZXlUZXN0LlJzYVVuc3VwcG9ydGVkS2V5Rm9ybWF0CisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIGV4cG9ydCBSU0Ega2V5cyBpbiBQS0NTIzggZm9ybWF0IGZhaWxzIHdpdGggdGhlIGNvcnJlY3QgZXJyb3IuCisgKi8KK1RFU1RfRihFeHBvcnRLZXlUZXN0LCBSc2FVbnN1cHBvcnRlZEtleUZvcm1hdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgyNTYsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX0ZPUk1BVCwgRXhwb3J0S2V5KEtleUZvcm1hdDo6UEtDUzgsICZleHBvcnRfZGF0YSkpOworfQorCisvKgorICogRXhwb3J0S2V5VGVzdC5Sc2FDb3JydXB0ZWRLZXlCbG9iCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIGV4cG9ydCBSU0Ega2V5cyBmcm9tIGNvcnJ1cHRlZCBrZXkgYmxvYnMgZmFpbHMuICBUaGlzIGlzIGVzc2VudGlhbGx5CisgKiBhIHBvb3ItbWFuJ3Mga2V5IGJsb2IgZnV6emVyLgorICovCisvLyBEaXNhYmxlZCBkdWUgdG8gYi8zMzM4NTIwNgorVEVTVF9GKEV4cG9ydEtleVRlc3QsIERJU0FCTEVEX1JzYUNvcnJ1cHRlZEtleUJsb2IpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgyNTYsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5X2Jsb2JfLnNpemUoKTsgKytpKSB7CisgICAgICAgIEhpZGxCdWYgY29ycnVwdGVkKGtleV9ibG9iXyk7CisgICAgICAgICsrY29ycnVwdGVkW2ldOworCisgICAgICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfS0VZX0JMT0IsCisgICAgICAgICAgICAgICAgICBFeHBvcnRLZXkoS2V5Rm9ybWF0OjpYNTA5LCBjb3JydXB0ZWQsIEhpZGxCdWYoKSwgSGlkbEJ1ZigpLCAmZXhwb3J0X2RhdGEpKQorICAgICAgICAgICAgPDwgIkJsb2IgY29ycnVwdGVkIGF0IG9mZnNldCAiIDw8IGkgPDwgIiBlcnJvbmVvdXNseSBhY2NlcHRlZCBhcyB2YWxpZCI7CisgICAgfQorfQorCisvKgorICogRXhwb3J0S2V5VGVzdC5Sc2FDb3JydXB0ZWRLZXlCbG9iCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIGV4cG9ydCBFQ0RTQSBrZXlzIGZyb20gY29ycnVwdGVkIGtleSBibG9icyBmYWlscy4gIFRoaXMgaXMKKyAqIGVzc2VudGlhbGx5IGEgcG9vci1tYW4ncyBrZXkgYmxvYiBmdXp6ZXIuCisgKi8KKy8vIERpc2FibGVkIGR1ZSB0byBiLzMzMzg1MjA2CitURVNUX0YoRXhwb3J0S2V5VGVzdCwgRElTQUJMRURfRWNDb3JydXB0ZWRLZXlCbG9iKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShFY0N1cnZlOjpQXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5X2Jsb2JfLnNpemUoKTsgKytpKSB7CisgICAgICAgIEhpZGxCdWYgY29ycnVwdGVkKGtleV9ibG9iXyk7CisgICAgICAgICsrY29ycnVwdGVkW2ldOworCisgICAgICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfS0VZX0JMT0IsCisgICAgICAgICAgICAgICAgICBFeHBvcnRLZXkoS2V5Rm9ybWF0OjpYNTA5LCBjb3JydXB0ZWQsIEhpZGxCdWYoKSwgSGlkbEJ1ZigpLCAmZXhwb3J0X2RhdGEpKQorICAgICAgICAgICAgPDwgIkJsb2IgY29ycnVwdGVkIGF0IG9mZnNldCAiIDw8IGkgPDwgIiBlcnJvbmVvdXNseSBhY2NlcHRlZCBhcyB2YWxpZCI7CisgICAgfQorfQorCisvKgorICogRXhwb3J0S2V5VGVzdC5BZXNLZXlVbmV4cG9ydGFibGUKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVtcHRpbmcgdG8gZXhwb3J0IEFFUyBrZXlzIGZhaWxzIGluIHRoZSBleHBlY3RlZCB3YXkuCisgKi8KK1RFU1RfRihFeHBvcnRLZXlUZXN0LCBBZXNLZXlVbmV4cG9ydGFibGUpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNiTW9kZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIEhpZGxCdWYgZXhwb3J0X2RhdGE7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX0ZPUk1BVCwgRXhwb3J0S2V5KEtleUZvcm1hdDo6WDUwOSwgJmV4cG9ydF9kYXRhKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5TVVBQT1JURURfS0VZX0ZPUk1BVCwgRXhwb3J0S2V5KEtleUZvcm1hdDo6UEtDUzgsICZleHBvcnRfZGF0YSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX0tFWV9GT1JNQVQsIEV4cG9ydEtleShLZXlGb3JtYXQ6OlJBVywgJmV4cG9ydF9kYXRhKSk7Cit9Cit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEltcG9ydEtleVRlc3Q7CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LlJzYVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gUlNBIGtleSBwYWlyIHdvcmtzIGNvcnJlY3RseS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIFJzYVN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgSW1wb3J0S2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCA2NTUzNykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUFNTKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtleUZvcm1hdDo6UEtDUzgsIHJzYV9rZXkpKTsKKworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpSU0EpOworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0tFWV9TSVpFLCAxMDI0VSk7CisgICAgQ2hlY2tLbTBDcnlwdG9QYXJhbShUQUdfUlNBX1BVQkxJQ19FWFBPTkVOVCwgNjU1MzdVKTsKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19ESUdFU1QsIERpZ2VzdDo6U0hBXzJfMjU2KTsKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19QQURESU5HLCBQYWRkaW5nTW9kZTo6UlNBX1BTUyk7CisgICAgQ2hlY2tPcmlnaW4oKTsKKworICAgIHN0cmluZyBtZXNzYWdlKDEwMjQgLyA4LCAnYScpOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QU1MpOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBTaWduTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIFZlcmlmeU1lc3NhZ2UobWVzc2FnZSwgc2lnbmF0dXJlLCBwYXJhbXMpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5Sc2FLZXlTaXplTWlzbWF0Y2gKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbiBSU0Ega2V5IHBhaXIgd2l0aCBhIHNpemUgdGhhdCBkb2Vzbid0IG1hdGNoIHRoZSBrZXkgZmFpbHMgaW4gdGhlCisgKiBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIFJzYUtleVNpemVNaXNtYXRjaCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OklNUE9SVF9QQVJBTUVURVJfTUlTTUFUQ0gsCisgICAgICAgICAgICAgIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMjA0OCAvKiBEb2Vzbid0IG1hdGNoIGtleSAqLywgNjU1MzcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgcnNhX2tleSkpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5Sc2FQdWJsaWNFeHBvbmVudE1pc21hdGNoCisgKgorICogVmVyaWZpZXMgdGhhdCBpbXBvcnRpbmcgYW4gUlNBIGtleSBwYWlyIHdpdGggYSBwdWJsaWMgZXhwb25lbnQgdGhhdCBkb2Vzbid0IG1hdGNoIHRoZSBrZXkgZmFpbHMKKyAqIGluIHRoZSBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIFJzYVB1YmxpY0V4cG9uZW50TWlzbWF0Y2gpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpJTVBPUlRfUEFSQU1FVEVSX01JU01BVENILAorICAgICAgICAgICAgICBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FTaWduaW5nS2V5KDEwMjQsIDMgLyogRG9lc24ndCBtYXRjaCBrZXkgKi8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgcnNhX2tleSkpOworfQorCisvKgorICogSW1wb3J0S2V5VGVzdC5FY2RzYVN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gRUNEU0Ega2V5IHBhaXIgd29ya3MgY29ycmVjdGx5LgorICovCitURVNUX0YoSW1wb3J0S2V5VGVzdCwgRWNkc2FTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleSgyNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlGb3JtYXQ6OlBLQ1M4LCBlY19rZXkpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzM5NDUxMTQpIjsKKworICAgIENoZWNrS20wQ3J5cHRvUGFyYW0oVEFHX0FMR09SSVRITSwgQWxnb3JpdGhtOjpFQyk7CisgICAgQ2hlY2tLbTBDcnlwdG9QYXJhbShUQUdfS0VZX1NJWkUsIDI1NlUpOworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX0RJR0VTVCwgRGlnZXN0OjpTSEFfMl8yNTYpOworICAgIENoZWNrS20yQ3J5cHRvUGFyYW0oVEFHX0VDX0NVUlZFLCBFY0N1cnZlOjpQXzI1Nik7CisKKyAgICBDaGVja09yaWdpbigpOworCisgICAgc3RyaW5nIG1lc3NhZ2UoMzIsICdhJyk7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1Nik7CisgICAgc3RyaW5nIHNpZ25hdHVyZSA9IFNpZ25NZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgVmVyaWZ5TWVzc2FnZShtZXNzYWdlLCBzaWduYXR1cmUsIHBhcmFtcyk7Cit9CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LkVjZHNhU2l6ZU1pc21hdGNoCisgKgorICogVmVyaWZpZXMgdGhhdCBpbXBvcnRpbmcgYW4gRUNEU0Ega2V5IHBhaXIgd2l0aCBhIHNpemUgdGhhdCBkb2Vzbid0IG1hdGNoIHRoZSBrZXkgZmFpbHMgaW4gdGhlCisgKiBjb3JyZWN0IHdheS4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIEVjZHNhU2l6ZU1pc21hdGNoKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6SU1QT1JUX1BBUkFNRVRFUl9NSVNNQVRDSCwKKyAgICAgICAgICAgICAgSW1wb3J0S2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KDIyNCAvKiBEb2Vzbid0IG1hdGNoIGtleSAqLykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSksCisgICAgICAgICAgICAgICAgICAgICAgICBLZXlGb3JtYXQ6OlBLQ1M4LCBlY19rZXkpKTsKK30KKworLyoKKyAqIEltcG9ydEtleVRlc3QuRWNkc2FDdXJ2ZU1pc21hdGNoCisgKgorICogVmVyaWZpZXMgdGhhdCBpbXBvcnRpbmcgYW4gRUNEU0Ega2V5IHBhaXIgd2l0aCBhIGN1cnZlIHRoYXQgZG9lc24ndCBtYXRjaCB0aGUga2V5IGZhaWxzIGluIHRoZQorICogY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihJbXBvcnRLZXlUZXN0LCBFY2RzYUN1cnZlTWlzbWF0Y2gpIHsKKyAgICBpZiAoU3VwcG9ydHNTeW1tZXRyaWMoKSAmJiAhU3VwcG9ydHNBdHRlc3RhdGlvbigpKSB7CisgICAgICAgIC8vIEtNMSBoYXJkd2FyZSBkb2Vzbid0IGtub3cgYWJvdXQgY3VydmVzCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpJTVBPUlRfUEFSQU1FVEVSX01JU01BVENILAorICAgICAgICAgICAgICBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoRWNDdXJ2ZTo6UF8yMjQgLyogRG9lc24ndCBtYXRjaCBrZXkgKi8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpQS0NTOCwgZWNfa2V5KSkKKyAgICAgICAgPDwgIihQb3NzaWJseSBiLzM2MjMzMjQxKSI7Cit9CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LkFlc1N1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gQUVTIGtleSB3b3Jrcy4KKyAqLworVEVTVF9GKEltcG9ydEtleVRlc3QsIEFlc1N1Y2Nlc3MpIHsKKyAgICBzdHJpbmcga2V5ID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBJbXBvcnRLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KGtleS5zaXplKCkgKiA4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2JNb2RlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UEtDUzcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5Rm9ybWF0OjpSQVcsIGtleSkpOworCisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfQUxHT1JJVEhNLCBBbGdvcml0aG06OkFFUyk7CisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfS0VZX1NJWkUsIDEyOFUpOworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX1BBRERJTkcsIFBhZGRpbmdNb2RlOjpQS0NTNyk7CisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpFQ0IpOworICAgIENoZWNrT3JpZ2luKCk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dCA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBJbXBvcnRLZXlUZXN0LkFlc1N1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IGltcG9ydGluZyBhbmQgdXNpbmcgYW4gSE1BQyBrZXkgd29ya3MuCisgKi8KK1RFU1RfRihJbXBvcnRLZXlUZXN0LCBIbWFjS2V5U3VjY2VzcykgeworICAgIHN0cmluZyBrZXkgPSB7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMH07CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEltcG9ydEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoa2V5LnNpemUoKSAqIDgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDI1NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLZXlGb3JtYXQ6OlJBVywga2V5KSk7CisKKyAgICBDaGVja0ttMUNyeXB0b1BhcmFtKFRBR19BTEdPUklUSE0sIEFsZ29yaXRobTo6SE1BQyk7CisgICAgQ2hlY2tLbTFDcnlwdG9QYXJhbShUQUdfS0VZX1NJWkUsIDEyOFUpOworICAgIENoZWNrS20xQ3J5cHRvUGFyYW0oVEFHX0RJR0VTVCwgRGlnZXN0OjpTSEFfMl8yNTYpOworICAgIENoZWNrT3JpZ2luKCk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworICAgIHN0cmluZyBzaWduYXR1cmUgPSBNYWNNZXNzYWdlKG1lc3NhZ2UsIERpZ2VzdDo6U0hBXzJfMjU2LCAyNTYpOworICAgIFZlcmlmeU1lc3NhZ2UobWVzc2FnZSwgc2lnbmF0dXJlLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdDsKKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FOb1BhZGRpbmdTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCByYXcgUlNBIGVuY3J5cHRpb24gd29ya3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYU5vUGFkZGluZ1N1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9IHN0cmluZygxMDI0IC8gOCwgJ2EnKTsKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisgICAgc3RyaW5nIGNpcGhlcnRleHQxID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTAyNFUgLyA4LCBjaXBoZXJ0ZXh0MS5zaXplKCkpOworCisgICAgc3RyaW5nIGNpcGhlcnRleHQyID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTAyNFUgLyA4LCBjaXBoZXJ0ZXh0Mi5zaXplKCkpOworCisgICAgLy8gVW5wYWRkZWQgUlNBIGlzIGRldGVybWluaXN0aWMKKyAgICBFWFBFQ1RfRVEoY2lwaGVydGV4dDEsIGNpcGhlcnRleHQyKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FOb1BhZGRpbmdTaG9ydE1lc3NhZ2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IHJhdyBSU0EgZW5jcnlwdGlvbiBvZiBzaG9ydCBtZXNzYWdlcyB3b3Jrcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgUnNhTm9QYWRkaW5nU2hvcnRNZXNzYWdlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMSI7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworCisgICAgc3RyaW5nIGNpcGhlcnRleHQgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUSgxMDI0VSAvIDgsIGNpcGhlcnRleHQuc2l6ZSgpKTsKKworICAgIHN0cmluZyBleHBlY3RlZF9wbGFpbnRleHQgPSBzdHJpbmcoMTAyNCAvIDggLSAxLCAwKSArIG1lc3NhZ2U7CisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQsIHBhcmFtcyk7CisKKyAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRfcGxhaW50ZXh0LCBwbGFpbnRleHQpOworCisgICAgLy8gRGVnZW5lcmF0ZSBjYXNlLCBlbmNyeXB0aW5nIGEgbnVtZXJpYyAxIHlpZWxkcyAweDAwLi4wMSBhcyB0aGUgY2lwaGVydGV4dC4KKyAgICBtZXNzYWdlID0gc3RhdGljX2Nhc3Q8Y2hhcj4oMSk7CisgICAgY2lwaGVydGV4dCA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKDEwMjRVIC8gOCwgY2lwaGVydGV4dC5zaXplKCkpOworICAgIEVYUEVDVF9FUShjaXBoZXJ0ZXh0LCBzdHJpbmcoMTAyNCAvIDggLSAxLCAwKSArIG1lc3NhZ2UpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYU5vUGFkZGluZ1Rvb0xvbmcKKyAqCisgKiBWZXJpZmllcyB0aGF0IHJhdyBSU0EgZW5jcnlwdGlvbiBvZiB0b28tbG9uZyBtZXNzYWdlcyBmYWlscyBpbiB0aGUgZXhwZWN0ZWQgd2F5LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FOb1BhZGRpbmdUb29Mb25nKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UoMTAyNCAvIDggKyAxLCAnYScpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKworICAgIHN0cmluZyByZXN1bHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmcmVzdWx0KSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhTm9QYWRkaW5nVG9vTG9uZworICoKKyAqIFZlcmlmaWVzIHRoYXQgcmF3IFJTQSBlbmNyeXB0aW9uIG9mIHRvby1sYXJnZSAobnVtZXJpY2FsbHkpIG1lc3NhZ2VzIGZhaWxzIGluIHRoZSBleHBlY3RlZCB3YXkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYU5vUGFkZGluZ1Rvb0xhcmdlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgSGlkbEJ1ZiBleHBvcnRlZDsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgRXhwb3J0S2V5KEtleUZvcm1hdDo6WDUwOSwgJmV4cG9ydGVkKSk7CisKKyAgICBjb25zdCB1aW50OF90KiBwID0gZXhwb3J0ZWQuZGF0YSgpOworICAgIEVWUF9QS0VZX1B0ciBwa2V5KGQyaV9QVUJLRVkobnVsbHB0ciAvKiBhbGxvYyBuZXcgKi8sICZwLCBleHBvcnRlZC5zaXplKCkpKTsKKyAgICBSU0FfUHRyIHJzYShFVlBfUEtFWV9nZXQxX1JTQShwa2V5LmdldCgpKSk7CisKKyAgICBzaXplX3QgbW9kdWx1c19sZW4gPSBCTl9udW1fYnl0ZXMocnNhLT5uKTsKKyAgICBBU1NFUlRfRVEoMTAyNFUgLyA4LCBtb2R1bHVzX2xlbik7CisgICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ4X3RbXT4gbW9kdWx1c19idWYobmV3IHVpbnQ4X3RbbW9kdWx1c19sZW5dKTsKKyAgICBCTl9ibjJiaW4ocnNhLT5uLCBtb2R1bHVzX2J1Zi5nZXQoKSk7CisKKyAgICAvLyBUaGUgbW9kdWx1cyBpcyB0b28gYmlnIHRvIGVuY3J5cHQuCisgICAgc3RyaW5nIG1lc3NhZ2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4obW9kdWx1c19idWYuZ2V0KCkpLCBtb2R1bHVzX2xlbik7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworCisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0FSR1VNRU5ULCBGaW5pc2gobWVzc2FnZSwgJnJlc3VsdCkpOworCisgICAgLy8gT25lIHNtYWxsZXIgdGhhbiB0aGUgbW9kdWx1cyBpcyBva2F5LgorICAgIEJOX3N1Yihyc2EtPm4sIHJzYS0+biwgQk5fdmFsdWVfb25lKCkpOworICAgIG1vZHVsdXNfbGVuID0gQk5fbnVtX2J5dGVzKHJzYS0+bik7CisgICAgQVNTRVJUX0VRKDEwMjRVIC8gOCwgbW9kdWx1c19sZW4pOworICAgIEJOX2JuMmJpbihyc2EtPm4sIG1vZHVsdXNfYnVmLmdldCgpKTsKKyAgICBtZXNzYWdlID0gc3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KG1vZHVsdXNfYnVmLmdldCgpKSwgbW9kdWx1c19sZW4pOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FPYWVwU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBLU9BRVAgZW5jcnlwdGlvbiBvcGVyYXRpb25zIHdvcmssIHdpdGggYWxsIGRpZ2VzdHMuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYU9hZXBTdWNjZXNzKSB7CisgICAgYXV0byBkaWdlc3RzID0ge0RpZ2VzdDo6TUQ1LCAgICAgICBEaWdlc3Q6OlNIQTEsICAgICAgRGlnZXN0OjpTSEFfMl8yMjQsCisgICAgICAgICAgICAgICAgICAgIERpZ2VzdDo6U0hBXzJfMjU2LCBEaWdlc3Q6OlNIQV8yXzM4NCwgRGlnZXN0OjpTSEFfMl81MTJ9OworCisgICAgc2l6ZV90IGtleV9zaXplID0gMjA0ODsgIC8vIE5lZWQgbGFyZ2lzaCBrZXkgZm9yIFNIQS01MTIgdGVzdC4KKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleShrZXlfc2l6ZSwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfT0FFUCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoZGlnZXN0cykpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIkhlbGxvIjsKKworICAgIGZvciAoYXV0byBkaWdlc3QgOiBkaWdlc3RzKSB7CisgICAgICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5EaWdlc3QoZGlnZXN0KS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfT0FFUCk7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0MSA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgICAgIGlmIChIYXNOb25mYXRhbEZhaWx1cmUoKSkgc3RkOjpjb3V0IDw8ICItLT4iIDw8IGRpZ2VzdCA8PCBzdGQ6OmVuZGw7CisgICAgICAgIEVYUEVDVF9FUShrZXlfc2l6ZSAvIDgsIGNpcGhlcnRleHQxLnNpemUoKSk7CisKKyAgICAgICAgc3RyaW5nIGNpcGhlcnRleHQyID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKGtleV9zaXplIC8gOCwgY2lwaGVydGV4dDIuc2l6ZSgpKTsKKworICAgICAgICAvLyBPQUVQIHJhbmRvbWl6ZXMgcGFkZGluZyBzbyBldmVyeSByZXN1bHQgc2hvdWxkIGJlIGRpZmZlcmVudCAod2l0aCBhc3Ryb25vbWljYWxseSBoaWdoCisgICAgICAgIC8vIHByb2JhYmlsaXR5KS4KKyAgICAgICAgRVhQRUNUX05FKGNpcGhlcnRleHQxLCBjaXBoZXJ0ZXh0Mik7CisKKyAgICAgICAgc3RyaW5nIHBsYWludGV4dDEgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MSwgcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dDEpIDw8ICJSU0EtT0FFUCBmYWlsZWQgd2l0aCBkaWdlc3QgIiA8PCBkaWdlc3Q7CisgICAgICAgIHN0cmluZyBwbGFpbnRleHQyID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dDIsIHBhcmFtcyk7CisgICAgICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQyKSA8PCAiUlNBLU9BRVAgZmFpbGVkIHdpdGggZGlnZXN0ICIgPDwgZGlnZXN0OworCisgICAgICAgIC8vIERlY3J5cHRpbmcgY29ycnVwdGVkIGNpcGhlcnRleHQgc2hvdWxkIGZhaWwuCisgICAgICAgIHNpemVfdCBvZmZzZXRfdG9fY29ycnVwdCA9IHJhbmRvbSgpICUgY2lwaGVydGV4dDEuc2l6ZSgpOworICAgICAgICBjaGFyIGNvcnJ1cHRfYnl0ZTsKKyAgICAgICAgZG8geworICAgICAgICAgICAgY29ycnVwdF9ieXRlID0gc3RhdGljX2Nhc3Q8Y2hhcj4ocmFuZG9tKCkgJSAyNTYpOworICAgICAgICB9IHdoaWxlIChjb3JydXB0X2J5dGUgPT0gY2lwaGVydGV4dDFbb2Zmc2V0X3RvX2NvcnJ1cHRdKTsKKyAgICAgICAgY2lwaGVydGV4dDFbb2Zmc2V0X3RvX2NvcnJ1cHRdID0gY29ycnVwdF9ieXRlOworCisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBwYXJhbXMpKTsKKyAgICAgICAgc3RyaW5nIHJlc3VsdDsKKyAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VU5LTk9XTl9FUlJPUiwgRmluaXNoKGNpcGhlcnRleHQxLCAmcmVzdWx0KSk7CisgICAgICAgIEVYUEVDVF9FUSgwVSwgcmVzdWx0LnNpemUoKSk7CisgICAgfQorfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYU9hZXBJbnZhbGlkRGlnZXN0CisgKgorICogVmVyaWZpZXMgdGhhdCBSU0EtT0FFUCBlbmNyeXB0aW9uIG9wZXJhdGlvbnMgZmFpbCBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBhc2tlZCB0byBvcGVyYXRlCisgKiB3aXRob3V0IGEgZGlnZXN0LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FPYWVwSW52YWxpZERpZ2VzdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FFbmNyeXB0aW9uS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9PQUVQKS5EaWdlc3QoRGlnZXN0OjpOT05FKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfRElHRVNULCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5Sc2FPYWVwSW52YWxpZERpZ2VzdAorICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBLU9BRVAgZW5jcnlwdGlvbiBvcGVyYXRpb25zIGZhaWwgaW4gdGhlIGNvcnJlY3Qgd2F5IHdoZW4gYXNrZWQgdG8gZGVjcnlwdCB3aXRoIGEKKyAqIGRpZmZlcmVudCBkaWdlc3QgdGhhbiB3YXMgdXNlZCB0byBlbmNyeXB0LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FPYWVwRGVjcnlwdFdpdGhXcm9uZ0RpZ2VzdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5Sc2FFbmNyeXB0aW9uS2V5KDEwMjQsIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2LCBEaWdlc3Q6OlNIQV8yXzIyNCkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UoCisgICAgICAgIG1lc3NhZ2UsCisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjI0KS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfT0FFUCkpOworCisgICAgRVhQRUNUX0VRKAorICAgICAgICBFcnJvckNvZGU6Ok9LLAorICAgICAgICBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULAorICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApKSk7CisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpVTktOT1dOX0VSUk9SLCBGaW5pc2goY2lwaGVydGV4dCwgJnJlc3VsdCkpOworICAgIEVYUEVDVF9FUSgwVSwgcmVzdWx0LnNpemUoKSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuUnNhT2FlcFRvb0xhcmdlCisgKgorICogVmVyaWZpZXMgdGhhdCBSU0EtT0FFUCBlbmNyeXB0aW9uIG9wZXJhdGlvbnMgZmFpbCBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiBhc2tlZCB0byBlbmNyeXB0IGEKKyAqIHRvby1sYXJnZSBtZXNzYWdlLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBSc2FPYWVwVG9vTGFyZ2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9PQUVQKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQTEpKSk7CisgICAgY29uc3RleHByIHNpemVfdCBkaWdlc3Rfc2l6ZSA9IDE2MCAvKiBTSEExICovIC8gODsKKyAgICBjb25zdGV4cHIgc2l6ZV90IG9hZXBfb3ZlcmhlYWQgPSAyICogZGlnZXN0X3NpemUgKyAyOworICAgIHN0cmluZyBtZXNzYWdlKDEwMjQgLyA4IC0gb2FlcF9vdmVyaGVhZCArIDEsICdhJyk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsCisgICAgICAgICAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6UlNBX09BRVApLkRpZ2VzdChEaWdlc3Q6OlNIQTEpKSk7CisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTlZBTElEX0lOUFVUX0xFTkdUSCwgRmluaXNoKG1lc3NhZ2UsICZyZXN1bHQpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIHJlc3VsdC5zaXplKCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYVBrY3MxU3VjY2VzcworICoKKyAqIFZlcmlmaWVzIHRoYXQgUlNBIFBLQ1MgZW5jcnlwdGlvbi9kZWNyeXB0cyB3b3Jrcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgUnNhUGtjczFTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYUVuY3J5cHRpb25LZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X0VOQ1JZUFQpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICJIZWxsbyBXb3JsZCEiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X0VOQ1JZUFQpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0MSA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKDEwMjRVIC8gOCwgY2lwaGVydGV4dDEuc2l6ZSgpKTsKKworICAgIHN0cmluZyBjaXBoZXJ0ZXh0MiA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKDEwMjRVIC8gOCwgY2lwaGVydGV4dDIuc2l6ZSgpKTsKKworICAgIC8vIFBLQ1MxIHYxLjUgcmFuZG9taXplcyBwYWRkaW5nIHNvIGV2ZXJ5IHJlc3VsdCBzaG91bGQgYmUgZGlmZmVyZW50LgorICAgIEVYUEVDVF9ORShjaXBoZXJ0ZXh0MSwgY2lwaGVydGV4dDIpOworCisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQxLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworCisgICAgLy8gRGVjcnlwdGluZyBjb3JydXB0ZWQgY2lwaGVydGV4dCBzaG91bGQgZmFpbC4KKyAgICBzaXplX3Qgb2Zmc2V0X3RvX2NvcnJ1cHQgPSByYW5kb20oKSAlIGNpcGhlcnRleHQxLnNpemUoKTsKKyAgICBjaGFyIGNvcnJ1cHRfYnl0ZTsKKyAgICBkbyB7CisgICAgICAgIGNvcnJ1cHRfYnl0ZSA9IHN0YXRpY19jYXN0PGNoYXI+KHJhbmRvbSgpICUgMjU2KTsKKyAgICB9IHdoaWxlIChjb3JydXB0X2J5dGUgPT0gY2lwaGVydGV4dDFbb2Zmc2V0X3RvX2NvcnJ1cHRdKTsKKyAgICBjaXBoZXJ0ZXh0MVtvZmZzZXRfdG9fY29ycnVwdF0gPSBjb3JydXB0X2J5dGU7CisKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgc3RyaW5nIHJlc3VsdDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpVTktOT1dOX0VSUk9SLCBGaW5pc2goY2lwaGVydGV4dDEsICZyZXN1bHQpKTsKKyAgICBFWFBFQ1RfRVEoMFUsIHJlc3VsdC5zaXplKCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LlJzYVBrY3MxVG9vTGFyZ2UKKyAqCisgKiBWZXJpZmllcyB0aGF0IFJTQSBQS0NTIGVuY3J5cHRpb24gZmFpbHMgaW4gdGhlIGNvcnJlY3Qgd2F5IHdoZW4gdGhlIG1zc2FnZSBpcyB0b28gbGFyZ2UuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIFJzYVBrY3MxVG9vTGFyZ2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhRW5jcnlwdGlvbktleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfRU5DUllQVCkpKTsKKyAgICBzdHJpbmcgbWVzc2FnZSgxMDI0IC8gOCAtIDEwLCAnYScpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlJTQV9QS0NTMV8xXzVfRU5DUllQVCk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworICAgIHN0cmluZyByZXN1bHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmcmVzdWx0KSk7CisgICAgRVhQRUNUX0VRKDBVLCByZXN1bHQuc2l6ZSgpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5FY2RzYUVuY3J5cHQKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVtcHRpbmcgdG8gdXNlIEVDRFNBIGtleXMgdG8gZW5jcnlwdCBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEVjZHNhRW5jcnlwdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2RzYVNpZ25pbmdLZXkoMjI0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpKSk7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX1BVUlBPU0UsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zMzU0MzYyNSkiOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6OlVOU1VQUE9SVEVEX1BVUlBPU0UsIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIHBhcmFtcykpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zMzU0MzYyNSkiOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkhtYWNFbmNyeXB0CisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlbXB0aW5nIHRvIHVzZSBITUFDIGtleXMgdG8gZW5jcnlwdCBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEhtYWNFbmNyeXB0KSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkhtYWNLZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KTsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QVVJQT1NFLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzM1NDM2MjUpIjsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpVTlNVUFBPUlRFRF9QVVJQT1NFLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBwYXJhbXMpKQorICAgICAgICA8PCAiKFBvc3NpYmx5IGIvMzM1NDM2MjUpIjsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNFY2JSb3VuZFRyaXBTdWNjZXNzCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgRUNCIG1vZGUgd29ya3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0VjYlJvdW5kVHJpcFN1Y2Nlc3MpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpFQ0IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworCisgICAgLy8gVHdvLWJsb2NrIG1lc3NhZ2UuCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0MSA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBjaXBoZXJ0ZXh0MS5zaXplKCkpOworCisgICAgc3RyaW5nIGNpcGhlcnRleHQyID0gRW5jcnlwdE1lc3NhZ2Uoc3RyaW5nKG1lc3NhZ2UpLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dDIuc2l6ZSgpKTsKKworICAgIC8vIEVDQiBpcyBkZXRlcm1pbmlzdGljLgorICAgIEVYUEVDVF9FUShjaXBoZXJ0ZXh0MSwgY2lwaGVydGV4dDIpOworCisgICAgc3RyaW5nIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQxLCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0VjYlJvdW5kVHJpcFN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBlbmNyeXB0aW9uIGZhaWxzIGluIHRoZSBjb3JyZWN0IHdheSB3aGVuIGFuIHVuYXV0aG9yaXplZCBtb2RlIGlzIHNwZWNpZmllZC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzV3JvbmdNb2RlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgLy8gVHdvLWJsb2NrIG1lc3NhZ2UuCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfQkxPQ0tfTU9ERSwKKyAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwKKyAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzRWNiTm9QYWRkaW5nV3JvbmdJbnB1dFNpemUKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBlbmNyeXB0aW9uIGZhaWxzIGluIHRoZSBjb3JyZWN0IHdheSB3aGVuIHByb3ZpZGVkIGFuIGlucHV0IHRoYXQgaXMgbm90IGEKKyAqIG11bHRpcGxlIG9mIHRoZSBibG9jayBzaXplIGFuZCBubyBwYWRkaW5nIGlzIHNwZWNpZmllZC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzRWNiTm9QYWRkaW5nV3JvbmdJbnB1dFNpemUpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpFQ0IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKyAgICAvLyBNZXNzYWdlIGlzIHNsaWdodGx5IHNob3J0ZXIgdGhhbiB0d28gYmxvY2tzLgorICAgIHN0cmluZyBtZXNzYWdlKDE2ICogMiAtIDEsICdhJyk7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zKSk7CisgICAgc3RyaW5nIGNpcGhlcnRleHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmY2lwaGVydGV4dCkpOworICAgIEVYUEVDVF9FUSgwVSwgY2lwaGVydGV4dC5zaXplKCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0VjYlBrY3M3UGFkZGluZworICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIFBLQ1M3IHBhZGRpbmcgd29ya3MgZm9yIGFueSBtZXNzYWdlIGxlbmd0aC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzRWNiUGtjczdQYWRkaW5nKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6RUNCKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KSkpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkJsb2NrTW9kZShCbG9ja01vZGU6OkVDQikuUGFkZGluZyhQYWRkaW5nTW9kZTo6UEtDUzcpOworCisgICAgLy8gVHJ5IHZhcmlvdXMgbWVzc2FnZSBsZW5ndGhzOyBhbGwgc2hvdWxkIHdvcmsuCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAzMjsgKytpKSB7CisgICAgICAgIHN0cmluZyBtZXNzYWdlKGksICdhJyk7CisgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICAgICAgRVhQRUNUX0VRKGkgKyAxNiAtIChpICUgMTYpLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0LCBwYXJhbXMpOworICAgICAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKKyAgICB9Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzRWNiV3JvbmdQYWRkaW5nCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgZW5yeXB0aW9uIGZhaWxzIGluIHRoZSBjb3JyZWN0IHdheSB3aGVuIGFuIHVuYXV0aG9yaXplZCBwYWRkaW5nIG1vZGUgaXMKKyAqIHNwZWNpZmllZC4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzRWNiV3JvbmdQYWRkaW5nKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6RUNCKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6RUNCKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNyk7CisKKyAgICAvLyBUcnkgdmFyaW91cyBtZXNzYWdlIGxlbmd0aHM7IGFsbCBzaG91bGQgZmFpbAorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMzI7ICsraSkgeworICAgICAgICBzdHJpbmcgbWVzc2FnZShpLCAnYScpOworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfUEFERElOR19NT0RFLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKKyAgICB9Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzRWNiUGtjczdQYWRkaW5nQ29ycnVwdGVkCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgZGVjcnlwdGlvbiBmYWlscyBpbiB0aGUgY29ycmVjdCB3YXkgd2hlbiB0aGUgcGFkZGluZyBpcyBjb3JydXB0ZWQuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0VjYlBrY3M3UGFkZGluZ0NvcnJ1cHRlZCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkVDQikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNykpKTsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpFQ0IpLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gImEiOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0ID0gRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX05FKGNpcGhlcnRleHQsIG1lc3NhZ2UpOworICAgICsrY2lwaGVydGV4dFtjaXBoZXJ0ZXh0LnNpemUoKSAvIDJdOworCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIHBhcmFtcykpOworICAgIHN0cmluZyBwbGFpbnRleHQ7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9JTlBVVF9MRU5HVEgsIEZpbmlzaChtZXNzYWdlLCAmcGxhaW50ZXh0KSk7Cit9CisKK0hpZGxCdWYgQ29weUl2KGNvbnN0IEF1dGhvcml6YXRpb25TZXQmIHNldCkgeworICAgIGF1dG8gaXYgPSBzZXQuR2V0VGFnVmFsdWUoVEFHX05PTkNFKTsKKyAgICBFWFBFQ1RfVFJVRShpdi5pc09rKCkpOworICAgIHJldHVybiBpdi52YWx1ZSgpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0N0clJvdW5kVHJpcFN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBDVFIgbW9kZSB3b3Jrcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzQ3RyUm91bmRUcmlwU3VjY2VzcykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkNUUikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkJsb2NrTW9kZShCbG9ja01vZGU6OkNUUikuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjMiOworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDEgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBIaWRsQnVmIGl2MSA9IENvcHlJdihvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBpdjEuc2l6ZSgpKTsKKworICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dDEuc2l6ZSgpKTsKKworICAgIG91dF9wYXJhbXMuQ2xlYXIoKTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDIgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBIaWRsQnVmIGl2MiA9IENvcHlJdihvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBpdjIuc2l6ZSgpKTsKKworICAgIC8vIElWcyBzaG91bGQgYmUgcmFuZG9tLCBzbyBjaXBoZXJ0ZXh0cyBzaG91bGQgZGlmZmVyLgorICAgIEVYUEVDVF9ORShjaXBoZXJ0ZXh0MSwgY2lwaGVydGV4dDIpOworCisgICAgYXV0byBwYXJhbXNfaXYxID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9ucyhwYXJhbXMpLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBpdjEpOworICAgIGF1dG8gcGFyYW1zX2l2MiA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbnMocGFyYW1zKS5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgaXYyKTsKKworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MSwgcGFyYW1zX2l2MSk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7CisgICAgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dDIsIHBhcmFtc19pdjIpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworCisgICAgLy8gVXNpbmcgdGhlIHdyb25nIElWIHdpbGwgcmVzdWx0IGluIGEgInZhbGlkIiBkZWNyeXB0aW9uLCBidXQgdGhlIGRhdGEgd2lsbCBiZSBnYXJiYWdlLgorICAgIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQxLCBwYXJhbXNfaXYyKTsKKyAgICBFWFBFQ1RfTkUobWVzc2FnZSwgcGxhaW50ZXh0KTsKKyAgICBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MiwgcGFyYW1zX2l2MSk7CisgICAgRVhQRUNUX05FKG1lc3NhZ2UsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzSW5jcmVtZW50YWwKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyB3b3JrcywgYWxsIG1vZGVzLCB3aGVuIHByb3ZpZGVkIGRhdGEgaW4gdmFyaW91cyBzaXplIGluY3JlbWVudHMuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0luY3JlbWVudGFsKSB7CisgICAgYXV0byBibG9ja19tb2RlcyA9IHsKKyAgICAgICAgQmxvY2tNb2RlOjpFQ0IsIEJsb2NrTW9kZTo6Q0JDLCBCbG9ja01vZGU6OkNUUiwgQmxvY2tNb2RlOjpHQ00sCisgICAgfTsKKworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoYmxvY2tfbW9kZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgZm9yIChpbnQgaW5jcmVtZW50ID0gMTsgaW5jcmVtZW50IDw9IDI0MDsgKytpbmNyZW1lbnQpIHsKKyAgICAgICAgZm9yIChhdXRvIGJsb2NrX21vZGUgOiBibG9ja19tb2RlcykgeworICAgICAgICAgICAgc3RyaW5nIG1lc3NhZ2UoMjQwLCAnYScpOworICAgICAgICAgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKGJsb2NrX21vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpIC8qIGZvciBHQ00gKi87CisKKyAgICAgICAgICAgIEF1dGhvcml6YXRpb25TZXQgb3V0cHV0X3BhcmFtczsKKyAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMsICZvdXRwdXRfcGFyYW1zKSk7CisKKyAgICAgICAgICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgICAgICAgICAgc2l6ZV90IGlucHV0X2NvbnN1bWVkOworICAgICAgICAgICAgc3RyaW5nIHRvX3NlbmQ7CisgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1lc3NhZ2Uuc2l6ZSgpOyBpICs9IGluY3JlbWVudCkgeworICAgICAgICAgICAgICAgIHRvX3NlbmQuYXBwZW5kKG1lc3NhZ2Uuc3Vic3RyKGksIGluY3JlbWVudCkpOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBVcGRhdGUodG9fc2VuZCwgJmNpcGhlcnRleHQsICZpbnB1dF9jb25zdW1lZCkpOworICAgICAgICAgICAgICAgIHRvX3NlbmQgPSB0b19zZW5kLnN1YnN0cihpbnB1dF9jb25zdW1lZCk7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGJsb2NrX21vZGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6RUNCOgorICAgICAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpDQkM6CisgICAgICAgICAgICAgICAgICAgIC8vIEltcGxlbWVudGF0aW9ucyBtdXN0IHRha2UgYXMgbWFueSBibG9ja3MgYXMgcG9zc2libGUsIGxlYXZpbmcgbGVzcyB0aGFuCisgICAgICAgICAgICAgICAgICAgIC8vIGEgYmxvY2suCisgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9MRSh0b19zZW5kLmxlbmd0aCgpLCAxNlUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6R0NNOgorICAgICAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpDVFI6CisgICAgICAgICAgICAgICAgICAgIC8vIEltcGxlbWVudGF0aW9ucyBtdXN0IGFsd2F5cyB0YWtlIGFsbCB0aGUgZGF0YS4KKyAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKDBVLCB0b19zZW5kLmxlbmd0aCgpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaCh0b19zZW5kLCAmY2lwaGVydGV4dCkpIDw8ICJFcnJvciBzZW5kaW5nICIgPDwgdG9fc2VuZDsKKworICAgICAgICAgICAgc3dpdGNoIChibG9ja19tb2RlKSB7CisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6R0NNOgorICAgICAgICAgICAgICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSArIDE2LCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6Q1RSOgorICAgICAgICAgICAgICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dC5zaXplKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBCbG9ja01vZGU6OkNCQzoKKyAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpFQ0I6CisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpICsgbWVzc2FnZS5zaXplKCkgJSAxNiwgY2lwaGVydGV4dC5zaXplKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhdXRvIGl2ID0gb3V0cHV0X3BhcmFtcy5HZXRUYWdWYWx1ZShUQUdfTk9OQ0UpOworICAgICAgICAgICAgc3dpdGNoIChibG9ja19tb2RlKSB7CisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6Q0JDOgorICAgICAgICAgICAgY2FzZSBCbG9ja01vZGU6OkdDTToKKyAgICAgICAgICAgIGNhc2UgQmxvY2tNb2RlOjpDVFI6CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoaXYuaXNPaygpKSA8PCAiTm8gSVYgZm9yIGJsb2NrIG1vZGUgIiA8PCBibG9ja19tb2RlOworICAgICAgICAgICAgICAgIEVYUEVDVF9FUShibG9ja19tb2RlID09IEJsb2NrTW9kZTo6R0NNID8gMTJVIDogMTZVLCBpdi52YWx1ZSgpLnNpemUoKSk7CisgICAgICAgICAgICAgICAgcGFyYW1zLnB1c2hfYmFjayhUQUdfTk9OQ0UsIGl2LnZhbHVlKCkpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIEJsb2NrTW9kZTo6RUNCOgorICAgICAgICAgICAgICAgIEVYUEVDVF9GQUxTRShpdi5pc09rKCkpIDw8ICJFQ0IgbW9kZSBzaG91bGQgbm90IGdlbmVyYXRlIElWIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkRFQ1JZUFQsIHBhcmFtcykpCisgICAgICAgICAgICAgICAgPDwgIkRlY3J5cHQgYmVnaW4oKSBmYWlsZWQgZm9yIGJsb2NrIG1vZGUgIiA8PCBibG9ja19tb2RlOworCisgICAgICAgICAgICBzdHJpbmcgcGxhaW50ZXh0OworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaXBoZXJ0ZXh0LnNpemUoKTsgaSArPSBpbmNyZW1lbnQpIHsKKyAgICAgICAgICAgICAgICB0b19zZW5kLmFwcGVuZChjaXBoZXJ0ZXh0LnN1YnN0cihpLCBpbmNyZW1lbnQpKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgVXBkYXRlKHRvX3NlbmQsICZwbGFpbnRleHQsICZpbnB1dF9jb25zdW1lZCkpOworICAgICAgICAgICAgICAgIHRvX3NlbmQgPSB0b19zZW5kLnN1YnN0cihpbnB1dF9jb25zdW1lZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBFcnJvckNvZGUgZXJyb3IgPSBGaW5pc2godG9fc2VuZCwgJnBsYWludGV4dCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgZXJyb3IpCisgICAgICAgICAgICAgICAgPDwgIkRlY3J5cHRpb24gZmFpbGVkIGZvciBibG9jayBtb2RlICIgPDwgYmxvY2tfbW9kZSA8PCAiIGFuZCBpbmNyZW1lbnQgIgorICAgICAgICAgICAgICAgIDw8IGluY3JlbWVudCA8PCAiIChQb3NzaWJseSBiLzMzNTg0NjIyKSI7CisgICAgICAgICAgICBpZiAoZXJyb3IgPT0gRXJyb3JDb2RlOjpPSykgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpIDw8ICJEZWNyeXB0aW9uIGRpZG4ndCBtYXRjaCBmb3IgYmxvY2sgbW9kZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgYmxvY2tfbW9kZSA8PCAiIGFuZCBpbmNyZW1lbnQgIiA8PCBpbmNyZW1lbnQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0cnVjdCBBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3IgeworICAgIGNvbnN0IGNoYXIqIGtleTsKKyAgICBjb25zdCBjaGFyKiBub25jZTsKKyAgICBjb25zdCBjaGFyKiBwbGFpbnRleHQ7CisgICAgY29uc3QgY2hhciogY2lwaGVydGV4dDsKK307CisKKy8vIFRoZXNlIHRlc3QgdmVjdG9ycyBhcmUgdGFrZW4gZnJvbQorLy8gaHR0cDovL2NzcmMubmlzdC5nb3YvcHVibGljYXRpb25zL25pc3RwdWJzLzgwMC0zOGEvc3A4MDAtMzhhLnBkZiwgc2VjdGlvbiBGLjUuCitzdGF0aWMgY29uc3QgQWVzQ3RyU3A4MDAzOGFUZXN0VmVjdG9yIGtBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3JzW10gPSB7CisgICAgLy8gQUVTLTEyOAorICAgIHsKKyAgICAgICAgIjJiN2UxNTE2MjhhZWQyYTZhYmY3MTU4ODA5Y2Y0ZjNjIiwgImYwZjFmMmYzZjRmNWY2ZjdmOGY5ZmFmYmZjZmRmZWZmIiwKKyAgICAgICAgIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEiCisgICAgICAgICIzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIiwKKyAgICAgICAgIjg3NGQ2MTkxYjYyMGUzMjYxYmVmNjg2NDk5MGRiNmNlOTgwNmY2NmI3OTcwZmRmZjg2MTcxODdiYjlmZmZkZmYiCisgICAgICAgICI1YWU0ZGYzZWRiZDVkMzVlNWI0ZjA5MDIwZGIwM2VhYjFlMDMxZGRhMmZiZTAzZDE3OTIxNzBhMGYzMDA5Y2VlIiwKKyAgICB9LAorICAgIC8vIEFFUy0xOTIKKyAgICB7CisgICAgICAgICI4ZTczYjBmN2RhMGU2NDUyYzgxMGYzMmI4MDkwNzllNTYyZjhlYWQyNTIyYzZiN2IiLCAiZjBmMWYyZjNmNGY1ZjZmN2Y4ZjlmYWZiZmNmZGZlZmYiLAorICAgICAgICAiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MSIKKyAgICAgICAgIjMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiLAorICAgICAgICAiMWFiYzkzMjQxNzUyMWNhMjRmMmIwNDU5ZmU3ZTZlMGIwOTAzMzllYzBhYTZmYWVmZDVjY2MyYzZmNGNlOGU5NCIKKyAgICAgICAgIjFlMzZiMjZiZDFlYmM2NzBkMWJkMWQ2NjU2MjBhYmY3NGY3OGE3ZjZkMjk4MDk1ODVhOTdkYWVjNThjNmIwNTAiLAorICAgIH0sCisgICAgLy8gQUVTLTI1NgorICAgIHsKKyAgICAgICAgIjYwM2RlYjEwMTVjYTcxYmUyYjczYWVmMDg1N2Q3NzgxMWYzNTJjMDczYjYxMDhkNzJkOTgxMGEzMDkxNGRmZjQiLAorICAgICAgICAiZjBmMWYyZjNmNGY1ZjZmN2Y4ZjlmYWZiZmNmZGZlZmYiLAorICAgICAgICAiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MSIKKyAgICAgICAgIjMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiLAorICAgICAgICAiNjAxZWMzMTM3NzU3ODlhNWI3YTdmNTA0YmJmM2QyMjhmNDQzZTNjYTRkNjJiNTlhY2E4NGU5OTBjYWNhZjVjNSIKKyAgICAgICAgIjJiMDkzMGRhYTIzZGU5NGNlODcwMTdiYTJkODQ5ODhkZGZjOWM1OGRiNjdhYWRhNjEzYzJkZDA4NDU3OTQxYTYiLAorICAgIH0sCit9OworCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0N0clNwODAwMzhhVGVzdFZlY3RvcgorICoKKyAqIFZlcmlmaWVzIEFFUyBDVFIgaW1wbGVtZW50YXRpb24gYWdhaW5zdCBTUDgwMC0zOEEgdGVzdCB2ZWN0b3JzLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3IpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDM7IGkrKykgeworICAgICAgICBjb25zdCBBZXNDdHJTcDgwMDM4YVRlc3RWZWN0b3ImIHRlc3Qoa0Flc0N0clNwODAwMzhhVGVzdFZlY3RvcnNbaV0pOworICAgICAgICBjb25zdCBzdHJpbmcga2V5ID0gaGV4MnN0cih0ZXN0LmtleSk7CisgICAgICAgIGNvbnN0IHN0cmluZyBub25jZSA9IGhleDJzdHIodGVzdC5ub25jZSk7CisgICAgICAgIGNvbnN0IHN0cmluZyBwbGFpbnRleHQgPSBoZXgyc3RyKHRlc3QucGxhaW50ZXh0KTsKKyAgICAgICAgY29uc3Qgc3RyaW5nIGNpcGhlcnRleHQgPSBoZXgyc3RyKHRlc3QuY2lwaGVydGV4dCk7CisgICAgICAgIENoZWNrQWVzQ3RyVGVzdFZlY3RvcihrZXksIG5vbmNlLCBwbGFpbnRleHQsIGNpcGhlcnRleHQpOworICAgIH0KK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDdHJJbmNvbXBhdGlibGVQYWRkaW5nTW9kZQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIHJlamVjdHMgdXNlIG9mIENUUiBtb2RlIHdpdGggUEtDUzcgcGFkZGluZyBpbiB0aGUgY29ycmVjdCB3YXkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0N0ckluY29tcGF0aWJsZVBhZGRpbmdNb2RlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6OlBLQ1M3KSkpOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpDVFIpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOQ09NUEFUSUJMRV9QQURESU5HX01PREUsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0N0ckludmFsaWRDYWxsZXJOb25jZQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSB1c2VyIHN1cHBsaWVzIGFuIGluY29ycmVjdC1zaXplIG5vbmNlLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDdHJJbnZhbGlkQ2FsbGVyTm9uY2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpDVFIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQ0FMTEVSX05PTkNFKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgSGlkbEJ1ZihzdHJpbmcoMSwgJ2EnKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTk9OQ0UsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBIaWRsQnVmKHN0cmluZygxNSwgJ2EnKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTk9OQ0UsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q1RSKQorICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBIaWRsQnVmKHN0cmluZygxNywgJ2EnKSkpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTk9OQ0UsIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcykpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0N0ckludmFsaWRDYWxsZXJOb25jZQorICoKKyAqIFZlcmlmaWVzIHRoYXQga2V5bWFzdGVyIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSB1c2VyIHN1cHBsaWVzIGFuIGluY29ycmVjdC1zaXplIG5vbmNlLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDYmNSb3VuZFRyaXBTdWNjZXNzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpKSk7CisgICAgLy8gVHdvLWJsb2NrIG1lc3NhZ2UuCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpDQkMpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDEgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBIaWRsQnVmIGl2MSA9IENvcHlJdihvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQxLnNpemUoKSk7CisKKyAgICBvdXRfcGFyYW1zLkNsZWFyKCk7CisKKyAgICBzdHJpbmcgY2lwaGVydGV4dDIgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBIaWRsQnVmIGl2MiA9IENvcHlJdihvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQyLnNpemUoKSk7CisKKyAgICAvLyBJVnMgc2hvdWxkIGJlIHJhbmRvbSwgc28gY2lwaGVydGV4dHMgc2hvdWxkIGRpZmZlci4KKyAgICBFWFBFQ1RfTkUoY2lwaGVydGV4dDEsIGNpcGhlcnRleHQyKTsKKworICAgIHBhcmFtcy5wdXNoX2JhY2soVEFHX05PTkNFLCBpdjEpOworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0MSwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDYWxsZXJOb25jZQorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIGNhbGxlci1wcm92aWRlZCBub25jZXMgd29yayBjb3JyZWN0bHkuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0NhbGxlck5vbmNlKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0JMT0NLX01PREUsIEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0NBTExFUl9OT05DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworCisgICAgLy8gRG9uJ3Qgc3BlY2lmeSBub25jZSwgc2hvdWxkIGdldCBhIHJhbmRvbSBvbmUuCisgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIgcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5CbG9ja01vZGUoQmxvY2tNb2RlOjpDQkMpLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpOworICAgIEF1dGhvcml6YXRpb25TZXQgb3V0X3BhcmFtczsKKyAgICBzdHJpbmcgY2lwaGVydGV4dCA9IEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcywgJm91dF9wYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLnNpemUoKSwgY2lwaGVydGV4dC5zaXplKCkpOworICAgIEVYUEVDVF9FUSgxNlUsIG91dF9wYXJhbXMuR2V0VGFnVmFsdWUoVEFHX05PTkNFKS52YWx1ZSgpLnNpemUoKSk7CisKKyAgICBwYXJhbXMucHVzaF9iYWNrKFRBR19OT05DRSwgb3V0X3BhcmFtcy5HZXRUYWdWYWx1ZShUQUdfTk9OQ0UpLnZhbHVlKCkpOworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0LCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworCisgICAgLy8gTm93IHNwZWNpZnkgYSBub25jZSwgc2hvdWxkIGFsc28gd29yay4KKyAgICBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpDQkMpCisgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9OQ0UsIEhpZGxCdWYoImFiY2RlZmdoaWprbG1ub3AiKSk7CisgICAgb3V0X3BhcmFtcy5DbGVhcigpOworICAgIGNpcGhlcnRleHQgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKworICAgIC8vIERlY3J5cHQgd2l0aCBjb3JyZWN0IG5vbmNlLgorICAgIHBsYWludGV4dCA9IERlY3J5cHRNZXNzYWdlKGNpcGhlcnRleHQsIHBhcmFtcyk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2UsIHBsYWludGV4dCk7CisKKyAgICAvLyBUcnkgd2l0aCB3cm9uZyBub25jZS4KKyAgICBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpDQkMpCisgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9OQ0UsIEhpZGxCdWYoImFhYWFhYWFhYWFhYWFhYWEiKSk7CisgICAgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dCwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfTkUobWVzc2FnZSwgcGxhaW50ZXh0KTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNDYWxsZXJOb25jZVByb2hpYml0ZWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IGNhbGxlci1wcm92aWRlZCBub25jZXMgYXJlIG5vdCBwZXJtaXR0ZWQgd2hlbiBub3Qgc3BlY2lmaWVkIGluIHRoZSBrZXkKKyAqIGF1dGhvcml6YXRpb25zLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNDYWxsZXJOb25jZVByb2hpYml0ZWQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfQkxPQ0tfTU9ERSwgQmxvY2tNb2RlOjpDQkMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKworICAgIC8vIERvbid0IHNwZWNpZnkgbm9uY2UsIHNob3VsZCBnZXQgYSByYW5kb20gb25lLgorICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyIHBhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q0JDKS5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKTsKKyAgICBBdXRob3JpemF0aW9uU2V0IG91dF9wYXJhbXM7CisgICAgc3RyaW5nIGNpcGhlcnRleHQgPSBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMsICZvdXRfcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZS5zaXplKCksIGNpcGhlcnRleHQuc2l6ZSgpKTsKKyAgICBFWFBFQ1RfRVEoMTZVLCBvdXRfcGFyYW1zLkdldFRhZ1ZhbHVlKFRBR19OT05DRSkudmFsdWUoKS5zaXplKCkpOworCisgICAgcGFyYW1zLnB1c2hfYmFjayhUQUdfTk9OQ0UsIG91dF9wYXJhbXMuR2V0VGFnVmFsdWUoVEFHX05PTkNFKS52YWx1ZSgpKTsKKyAgICBzdHJpbmcgcGxhaW50ZXh0ID0gRGVjcnlwdE1lc3NhZ2UoY2lwaGVydGV4dCwgcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKKworICAgIC8vIE5vdyBzcGVjaWZ5IGEgbm9uY2UsIHNob3VsZCBmYWlsCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6Q0JDKQorICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PTkNFLCBIaWRsQnVmKCJhYmNkZWZnaGlqa2xtbm9wIikpOworICAgIG91dF9wYXJhbXMuQ2xlYXIoKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpDQUxMRVJfTk9OQ0VfUFJPSElCSVRFRCwgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zLCAmb3V0X3BhcmFtcykpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbVJvdW5kVHJpcFN1Y2Nlc3MKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gbW9kZSB3b3Jrcy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtUm91bmRUcmlwU3VjY2VzcykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19CTE9DS19NT0RFLCBCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBzdHJpbmcgYWFkID0gImZvb2JhciI7CisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2IjsKKworICAgIGF1dG8gYmVnaW5fcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyOCk7CisKKyAgICBhdXRvIHVwZGF0ZV9wYXJhbXMgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX0FTU09DSUFURURfREFUQSwgYWFkLmRhdGEoKSwgYWFkLnNpemUoKSk7CisKKyAgICAvLyBFbmNyeXB0CisgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSkKKyAgICAgICAgPDwgIkJlZ2luIGVuY3J5cHQiOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEF1dGhvcml6YXRpb25TZXQgdXBkYXRlX291dF9wYXJhbXM7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEZpbmlzaChvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCBtZXNzYWdlLCAiIiwgJnVwZGF0ZV9vdXRfcGFyYW1zLCAmY2lwaGVydGV4dCkpOworCisgICAgLy8gR3JhYiBub25jZQorICAgIGJlZ2luX3BhcmFtcy5wdXNoX2JhY2soYmVnaW5fb3V0X3BhcmFtcyk7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBiZWdpbl9wYXJhbXMpKSA8PCAiQmVnaW4gZGVjcnlwdCI7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBzaXplX3QgaW5wdXRfY29uc3VtZWQ7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIFVwZGF0ZShvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCBjaXBoZXJ0ZXh0LCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGxhaW50ZXh0LCAmaW5wdXRfY29uc3VtZWQpKTsKKyAgICBFWFBFQ1RfRVEoY2lwaGVydGV4dC5zaXplKCksIGlucHV0X2NvbnN1bWVkKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKCIiLCAmcGxhaW50ZXh0KSk7CisKKyAgICBFWFBFQ1RfRVEobWVzc2FnZSwgcGxhaW50ZXh0KTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNHY21Ub29TaG9ydFRhZworICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIGZhaWxzIGNvcnJlY3RseSB3aGVuIGEgdG9vLXNob3J0IHRhZyBsZW5ndGggaXMgc3BlY2lmaWVkLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21Ub29TaG9ydFRhZykgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1NiI7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgOTYpOworCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6SU5WQUxJRF9NQUNfTEVOR1RILCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNHY21Ub29TaG9ydFRhZ09uRGVjcnlwdAorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIGZhaWxzIGNvcnJlY3RseSB3aGVuIGEgdG9vLXNob3J0IHRhZyBpcyBwcm92aWRlZCB0byBkZWNyeXB0aW9uLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21Ub29TaG9ydFRhZ09uRGVjcnlwdCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworICAgIHN0cmluZyBhYWQgPSAiZm9vYmFyIjsKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTYiOworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01BQ19MRU5HVEgsIDEyOCk7CisKKyAgICBhdXRvIGZpbmlzaF9wYXJhbXMgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX0FTU09DSUFURURfREFUQSwgYWFkLmRhdGEoKSwgYWFkLnNpemUoKSk7CisKKyAgICAvLyBFbmNyeXB0CisgICAgQXV0aG9yaXphdGlvblNldCBiZWdpbl9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisgICAgRVhQRUNUX0VRKDFVLCBiZWdpbl9vdXRfcGFyYW1zLnNpemUoKSk7CisgICAgQVNTRVJUX1RSVUUoYmVnaW5fb3V0X3BhcmFtcy5HZXRUYWdWYWx1ZShUQUdfTk9OQ0UpLmlzT2soKSk7CisKKyAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9vdXRfcGFyYW1zOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgbWVzc2FnZSwgIiIgLyogc2lnbmF0dXJlICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpbmlzaF9vdXRfcGFyYW1zLCAmY2lwaGVydGV4dCkpOworCisgICAgcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbnMoYmVnaW5fb3V0X3BhcmFtcykKKyAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCA5Nik7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfTUFDX0xFTkdUSCwgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtQ29ycnVwdEtleQorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSBkZWNyeXB0aW9uIGtleSBpcyBpbmNvcnJlY3QuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0djbUNvcnJ1cHRLZXkpIHsKKyAgICBjb25zdCB1aW50OF90IG5vbmNlX2J5dGVzW10gPSB7CisgICAgICAgIDB4YjcsIDB4OTQsIDB4MzcsIDB4YWUsIDB4MDgsIDB4ZmYsIDB4MzUsIDB4NWQsIDB4N2QsIDB4OGEsIDB4NGQsIDB4MGYsCisgICAgfTsKKyAgICBzdHJpbmcgbm9uY2UgPSBtYWtlX3N0cmluZyhub25jZV9ieXRlcyk7CisgICAgY29uc3QgdWludDhfdCBjaXBoZXJ0ZXh0X2J5dGVzW10gPSB7CisgICAgICAgIDB4YjMsIDB4ZjYsIDB4NzksIDB4OWUsIDB4OGYsIDB4OTMsIDB4MjYsIDB4ZjIsIDB4ZGYsIDB4MWUsIDB4ODAsIDB4ZmMsIDB4ZDIsIDB4Y2IsIDB4MTYsCisgICAgICAgIDB4ZDcsIDB4OGMsIDB4OWQsIDB4YzcsIDB4Y2MsIDB4MTQsIDB4YmIsIDB4NjcsIDB4NzgsIDB4NjIsIDB4ZGMsIDB4NmMsIDB4NjMsIDB4OWIsIDB4M2EsCisgICAgICAgIDB4NjMsIDB4MzgsIDB4ZDIsIDB4NGIsIDB4MzEsIDB4MmQsIDB4MzksIDB4ODksIDB4ZTUsIDB4OTIsIDB4MGIsIDB4NWQsIDB4YmYsIDB4YzksIDB4NzYsCisgICAgICAgIDB4NzYsIDB4NWUsIDB4ZmIsIDB4ZmUsIDB4NTcsIDB4YmIsIDB4MzgsIDB4NTksIDB4NDAsIDB4YTcsIDB4YTQsIDB4M2IsIDB4ZGYsIDB4MDUsIDB4YmQsCisgICAgICAgIDB4ZGEsIDB4ZTMsIDB4YzksIDB4ZDYsIDB4YTIsIDB4ZmIsIDB4YmQsIDB4ZmMsIDB4YzAsIDB4Y2IsIDB4YTAsCisgICAgfTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dCA9IG1ha2Vfc3RyaW5nKGNpcGhlcnRleHRfYnl0ZXMpOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KQorICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT05DRSwgbm9uY2UuZGF0YSgpLCBub25jZS5zaXplKCkpOworCisgICAgYXV0byBpbXBvcnRfcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0NBTExFUl9OT05DRSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpOworCisgICAgLy8gSW1wb3J0IGNvcnJlY3Qga2V5IGFuZCBkZWNyeXB0CisgICAgY29uc3QgdWludDhfdCBrZXlfYnl0ZXNbXSA9IHsKKyAgICAgICAgMHhiYSwgMHg3NiwgMHgzNSwgMHg0ZiwgMHgwYSwgMHhlZCwgMHg2ZSwgMHg4ZCwKKyAgICAgICAgMHg5MSwgMHhmNCwgMHg1YywgMHg0ZiwgMHhmNSwgMHhhMCwgMHg2MiwgMHhkYiwKKyAgICB9OworICAgIHN0cmluZyBrZXkgPSBtYWtlX3N0cmluZyhrZXlfYnl0ZXMpOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBJbXBvcnRLZXkoaW1wb3J0X3BhcmFtcywgS2V5Rm9ybWF0OjpSQVcsIGtleSkpOworICAgIHN0cmluZyBwbGFpbnRleHQgPSBEZWNyeXB0TWVzc2FnZShjaXBoZXJ0ZXh0LCBwYXJhbXMpOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBEZWxldGVLZXkoKSk7CisKKyAgICAvLyBDb3JydXB0IGtleSBhbmQgYXR0ZW1wdCB0byBkZWNyeXB0CisgICAga2V5WzBdID0gMDsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgSW1wb3J0S2V5KGltcG9ydF9wYXJhbXMsIEtleUZvcm1hdDo6UkFXLCBrZXkpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6VkVSSUZJQ0FUSU9OX0ZBSUxFRCwgRmluaXNoKGNpcGhlcnRleHQsICZwbGFpbnRleHQpKTsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRGVsZXRlS2V5KCkpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbUFhZE5vRGF0YQorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBtb2RlIHdvcmtzIHdoZW4gcHJvdmlkZWQgYWRkaXRpb25hbCBhdXRoZW50aWNhdGVkIGRhdGEsIGJ1dCBubyBkYXRhIHRvCisgKiBlbmNyeXB0LgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21BYWROb0RhdGEpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKworICAgIHN0cmluZyBhYWQgPSAiMTIzNDU2Nzg5MDEyMzQ1NiI7CisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KTsKKworICAgIGF1dG8gZmluaXNoX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCBhYWQuZGF0YSgpLCBhYWQuc2l6ZSgpKTsKKworICAgIC8vIEVuY3J5cHQKKyAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIHBhcmFtcywgJmJlZ2luX291dF9wYXJhbXMpKTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgIiIgLyogaW5wdXQgKi8sICIiIC8qIHNpZ25hdHVyZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJmNpcGhlcnRleHQpKTsKKyAgICBFWFBFQ1RfVFJVRShmaW5pc2hfb3V0X3BhcmFtcy5lbXB0eSgpKTsKKworICAgIC8vIEdyYWIgbm9uY2UKKyAgICBwYXJhbXMucHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworCisgICAgLy8gRGVjcnlwdC4KKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKG9wX2hhbmRsZV8sIGZpbmlzaF9wYXJhbXMsIGNpcGhlcnRleHQsICIiIC8qIHNpZ25hdHVyZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaW5pc2hfb3V0X3BhcmFtcywgJnBsYWludGV4dCkpCisgICAgICAgIDw8ICIoUG9zc2libHkgYi8zMzYxNTAzMikiOworCisgICAgRVhQRUNUX1RSVUUoZmluaXNoX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICBFWFBFQ1RfRVEoIiIsIHBsYWludGV4dCk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtTXVsdGlQYXJ0QWFkCisgKgorICogVmVyaWZpZXMgdGhhdCBBRVMgR0NNIG1vZGUgd29ya3Mgd2hlbiBwcm92aWRlZCBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0ZWQgZGF0YSBpbiBtdWx0aXBsZSBjaHVua3MuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0djbU11bHRpUGFydEFhZCkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2IjsKKyAgICBhdXRvIGJlZ2luX3BhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKworICAgIGF1dG8gdXBkYXRlX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCAiZm9vIiwgKHNpemVfdCkzKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisKKyAgICAvLyBObyBkYXRhLCBBQUQgb25seS4KKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBzaXplX3QgaW5wdXRfY29uc3VtZWQ7CisgICAgQXV0aG9yaXphdGlvblNldCB1cGRhdGVfb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgVXBkYXRlKG9wX2hhbmRsZV8sIHVwZGF0ZV9wYXJhbXMsICIiIC8qIGlucHV0ICovLCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVydGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKDBVLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKDBVLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICAvLyBBQUQgYW5kIGRhdGEuCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIFVwZGF0ZShvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCBtZXNzYWdlLCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVydGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKCIiIC8qIGlucHV0ICovLCAmY2lwaGVydGV4dCkpOworCisgICAgLy8gR3JhYiBub25jZS4KKyAgICBiZWdpbl9wYXJhbXMucHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworCisgICAgLy8gRGVjcnlwdAorICAgIHVwZGF0ZV9wYXJhbXMgPQorICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oVEFHX0FTU09DSUFURURfREFUQSwgImZvb2ZvbyIsIChzaXplX3QpNik7CisKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgYmVnaW5fcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgRmluaXNoKG9wX2hhbmRsZV8sIHVwZGF0ZV9wYXJhbXMsIGNpcGhlcnRleHQsICIiIC8qIHNpZ25hdHVyZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1cGRhdGVfb3V0X3BhcmFtcywgJnBsYWludGV4dCkpOworICAgIEVYUEVDVF9UUlVFKHVwZGF0ZV9vdXRfcGFyYW1zLmVtcHR5KCkpOworICAgIEVYUEVDVF9FUShtZXNzYWdlLCBwbGFpbnRleHQpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbUFhZE91dE9mT3JkZXIKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gbW9kZSBmYWlscyBjb3JyZWN0bHkgd2hlbiBnaXZlbiBBQUQgYWZ0ZXIgZGF0YSB0byBlbmNpcGhlci4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtQWFkT3V0T2ZPcmRlcikgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5CbG9ja01vZGUoQmxvY2tNb2RlOjpHQ00pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NSU5fTUFDX0xFTkdUSCwgMTI4KSkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2IjsKKyAgICBhdXRvIGJlZ2luX3BhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKworICAgIGF1dG8gdXBkYXRlX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCAiZm9vIiwgKHNpemVfdCkzKTsKKworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisKKyAgICAvLyBObyBkYXRhLCBBQUQgb25seS4KKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBzaXplX3QgaW5wdXRfY29uc3VtZWQ7CisgICAgQXV0aG9yaXphdGlvblNldCB1cGRhdGVfb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgVXBkYXRlKG9wX2hhbmRsZV8sIHVwZGF0ZV9wYXJhbXMsICIiIC8qIGlucHV0ICovLCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVydGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKDBVLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKDBVLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICAvLyBBQUQgYW5kIGRhdGEuCisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIFVwZGF0ZShvcF9oYW5kbGVfLCB1cGRhdGVfcGFyYW1zLCBtZXNzYWdlLCAmdXBkYXRlX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2lwaGVydGV4dCwgJmlucHV0X2NvbnN1bWVkKSk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBpbnB1dF9jb25zdW1lZCk7CisgICAgRVhQRUNUX0VRKG1lc3NhZ2Uuc2l6ZSgpLCBjaXBoZXJ0ZXh0LnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUodXBkYXRlX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICAvLyBNb3JlIEFBRAorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OklOVkFMSURfVEFHLCBVcGRhdGUob3BfaGFuZGxlXywgdXBkYXRlX3BhcmFtcywgIiIsICZ1cGRhdGVfb3V0X3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjaXBoZXJ0ZXh0LCAmaW5wdXRfY29uc3VtZWQpKTsKKworICAgIG9wX2hhbmRsZV8gPSBrT3BIYW5kbGVTZW50aW5lbDsKK30KKworLyoKKyAqIEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdC5BZXNHY21CYWRBYWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gZGVjcnlwdGlvbiBmYWlscyBjb3JyZWN0bHkgd2hlbiBhZGRpdGlvbmFsIGF1dGhlbnRpY2F0ZWQgZGF0ZSBpcyB3cm9uZy4KKyAqLworVEVTVF9GKEVuY3J5cHRpb25PcGVyYXRpb25zVGVzdCwgQWVzR2NtQmFkQWFkKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMiI7CisgICAgYXV0byBiZWdpbl9wYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFDX0xFTkdUSCwgMTI4KTsKKworICAgIGF1dG8gZmluaXNoX3BhcmFtcyA9CisgICAgICAgIEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkuQXV0aG9yaXphdGlvbihUQUdfQVNTT0NJQVRFRF9EQVRBLCAiZm9vYmFyIiwgKHNpemVfdCk2KTsKKworICAgIC8vIEVuY3J5cHQKKyAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEJlZ2luKEtleVB1cnBvc2U6OkVOQ1JZUFQsIGJlZ2luX3BhcmFtcywgJmJlZ2luX291dF9wYXJhbXMpKTsKKyAgICBzdHJpbmcgY2lwaGVydGV4dDsKKyAgICBBdXRob3JpemF0aW9uU2V0IGZpbmlzaF9vdXRfcGFyYW1zOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgbWVzc2FnZSwgIiIgLyogc2lnbmF0dXJlICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpbmlzaF9vdXRfcGFyYW1zLCAmY2lwaGVydGV4dCkpOworCisgICAgLy8gR3JhYiBub25jZQorICAgIGJlZ2luX3BhcmFtcy5wdXNoX2JhY2soYmVnaW5fb3V0X3BhcmFtcyk7CisKKyAgICBmaW5pc2hfcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFyZm9vIiAvKiBXcm9uZyBBQUQgKi8sIChzaXplX3QpNik7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELAorICAgICAgICAgICAgICBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgY2lwaGVydGV4dCwgIiIgLyogc2lnbmF0dXJlICovLCAmZmluaXNoX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAmcGxhaW50ZXh0KSk7Cit9CisKKy8qCisgKiBFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QuQWVzR2NtV3JvbmdOb25jZQorICoKKyAqIFZlcmlmaWVzIHRoYXQgQUVTIEdDTSBkZWNyeXB0aW9uIGZhaWxzIGNvcnJlY3RseSB3aGVuIHRoZSBub25jZSBpcyBpbmNvcnJlY3QuCisgKi8KK1RFU1RfRihFbmNyeXB0aW9uT3BlcmF0aW9uc1Rlc3QsIEFlc0djbVdyb25nTm9uY2UpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQWVzRW5jcnlwdGlvbktleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUlOX01BQ19MRU5HVEgsIDEyOCkpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICBhdXRvIGJlZ2luX3BhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworCisgICAgYXV0byBmaW5pc2hfcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsICJmb29iYXIiLCAoc2l6ZV90KTYpOworCisgICAgLy8gRW5jcnlwdAorICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgYmVnaW5fcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcykpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBtZXNzYWdlLCAiIiAvKiBzaWduYXR1cmUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmluaXNoX291dF9wYXJhbXMsICZjaXBoZXJ0ZXh0KSk7CisKKyAgICAvLyBXcm9uZyBub25jZQorICAgIGJlZ2luX3BhcmFtcy5wdXNoX2JhY2soVEFHX05PTkNFLCBIaWRsQnVmKCIxMjM0NTY3ODkwMTIiKSk7CisKKyAgICAvLyBEZWNyeXB0LgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpERUNSWVBULCBiZWdpbl9wYXJhbXMsICZiZWdpbl9vdXRfcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELAorICAgICAgICAgICAgICBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgY2lwaGVydGV4dCwgIiIgLyogc2lnbmF0dXJlICovLCAmZmluaXNoX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAmcGxhaW50ZXh0KSk7CisKKyAgICAvLyBXaXRoIHdyb25nIG5vbmNlLCBzaG91bGQgaGF2ZSBnb3R0ZW4gZ2FyYmFnZSBwbGFpbnRleHQgKG9yIG5vbmUpLgorICAgIEVYUEVDVF9ORShtZXNzYWdlLCBwbGFpbnRleHQpOworfQorCisvKgorICogRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LkFlc0djbUNvcnJ1cHRUYWcKKyAqCisgKiBWZXJpZmllcyB0aGF0IEFFUyBHQ00gZGVjcnlwdGlvbiBmYWlscyBjb3JyZWN0bHkgd2hlbiB0aGUgdGFnIGlzIHdyb25nLgorICovCitURVNUX0YoRW5jcnlwdGlvbk9wZXJhdGlvbnNUZXN0LCBBZXNHY21Db3JydXB0VGFnKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkJsb2NrTW9kZShCbG9ja01vZGU6OkdDTSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBzdHJpbmcgYWFkID0gIjEyMzQ1Njc4OTAxMjM0NTYiOworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1NiI7CisKKyAgICBhdXRvIHBhcmFtcyA9IEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAuQmxvY2tNb2RlKEJsb2NrTW9kZTo6R0NNKQorICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQUNfTEVOR1RILCAxMjgpOworCisgICAgYXV0byBmaW5pc2hfcGFyYW1zID0KKyAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKFRBR19BU1NPQ0lBVEVEX0RBVEEsIGFhZC5kYXRhKCksIGFhZC5zaXplKCkpOworCisgICAgLy8gRW5jcnlwdAorICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6RU5DUllQVCwgcGFyYW1zLCAmYmVnaW5fb3V0X3BhcmFtcykpOworICAgIHN0cmluZyBjaXBoZXJ0ZXh0OworICAgIEF1dGhvcml6YXRpb25TZXQgZmluaXNoX291dF9wYXJhbXM7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIEZpbmlzaChvcF9oYW5kbGVfLCBmaW5pc2hfcGFyYW1zLCBtZXNzYWdlLCAiIiAvKiBzaWduYXR1cmUgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmluaXNoX291dF9wYXJhbXMsICZjaXBoZXJ0ZXh0KSk7CisgICAgRVhQRUNUX1RSVUUoZmluaXNoX291dF9wYXJhbXMuZW1wdHkoKSk7CisKKyAgICAvLyBDb3JydXB0IHRhZworICAgICsrKCpjaXBoZXJ0ZXh0LnJiZWdpbigpKTsKKworICAgIC8vIEdyYWIgbm9uY2UKKyAgICBwYXJhbXMucHVzaF9iYWNrKGJlZ2luX291dF9wYXJhbXMpOworCisgICAgLy8gRGVjcnlwdC4KKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6REVDUllQVCwgcGFyYW1zKSk7CisgICAgc3RyaW5nIHBsYWludGV4dDsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpWRVJJRklDQVRJT05fRkFJTEVELAorICAgICAgICAgICAgICBGaW5pc2gob3BfaGFuZGxlXywgZmluaXNoX3BhcmFtcywgY2lwaGVydGV4dCwgIiIgLyogc2lnbmF0dXJlICovLCAmZmluaXNoX291dF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAmcGxhaW50ZXh0KSk7CisgICAgRVhQRUNUX1RSVUUoZmluaXNoX291dF9wYXJhbXMuZW1wdHkoKSk7Cit9CisKK3R5cGVkZWYgS2V5bWFzdGVySGlkbFRlc3QgTWF4T3BlcmF0aW9uc1Rlc3Q7CisKKy8qCisgKiBNYXhPcGVyYXRpb25zVGVzdC5UZXN0TGltaXRBZXMKKyAqCisgKiBWZXJpZmllcyB0aGF0IHRoZSBtYXggdXNlcyBwZXIgYm9vdCB0YWcgd29ya3MgY29ycmVjdGx5IHdpdGggQUVTIGtleXMuCisgKi8KK1RFU1RfRihNYXhPcGVyYXRpb25zVGVzdCwgVGVzdExpbWl0QWVzKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkFlc0VuY3J5cHRpb25LZXkoMTI4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjYk1vZGUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTUFYX1VTRVNfUEVSX0JPT1QsIDMpKSk7CisKKyAgICBzdHJpbmcgbWVzc2FnZSA9ICIxMjM0NTY3ODkwMTIzNDU2IjsKKworICAgIGF1dG8gcGFyYW1zID0gQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5FY2JNb2RlKCkuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSk7CisKKyAgICBFbmNyeXB0TWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIEVuY3J5cHRNZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgRW5jcnlwdE1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKworICAgIC8vIEZvdXJ0aCB0aW1lIHNob3VsZCBmYWlsLgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OktFWV9NQVhfT1BTX0VYQ0VFREVELCBCZWdpbihLZXlQdXJwb3NlOjpFTkNSWVBULCBwYXJhbXMpKTsKK30KKworLyoKKyAqIE1heE9wZXJhdGlvbnNUZXN0LlRlc3RMaW1pdEFlcworICoKKyAqIFZlcmlmaWVzIHRoYXQgdGhlIG1heCB1c2VzIHBlciBib290IHRhZyB3b3JrcyBjb3JyZWN0bHkgd2l0aCBSU0Ega2V5cy4KKyAqLworVEVTVF9GKE1heE9wZXJhdGlvbnNUZXN0LCBUZXN0TGltaXRSc2EpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLk5vRGlnZXN0T3JQYWRkaW5nKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19NQVhfVVNFU19QRVJfQk9PVCwgMykpKTsKKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTYiOworCisgICAgYXV0byBwYXJhbXMgPSBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLk5vRGlnZXN0T3JQYWRkaW5nKCk7CisKKyAgICBTaWduTWVzc2FnZShtZXNzYWdlLCBwYXJhbXMpOworICAgIFNpZ25NZXNzYWdlKG1lc3NhZ2UsIHBhcmFtcyk7CisgICAgU2lnbk1lc3NhZ2UobWVzc2FnZSwgcGFyYW1zKTsKKworICAgIC8vIEZvdXJ0aCB0aW1lIHNob3VsZCBmYWlsLgorICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OktFWV9NQVhfT1BTX0VYQ0VFREVELCBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBwYXJhbXMpKTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBBZGRFbnRyb3B5VGVzdDsKKworLyoKKyAqIEFkZEVudHJvcHlUZXN0LkFkZEVudHJvcHkKKyAqCisgKiBWZXJpZmllcyB0aGF0IHRoZSBhZGRSbmdFbnRyb3B5IG1ldGhvZCBkb2Vzbid0IGJsb3cgdXAuICBUaGVyZSdzIG5vIHdheSB0byB0ZXN0IHRoYXQgZW50cm9weSBpcworICogYWN0dWFsbHkgYWRkZWQuCisgKi8KK1RFU1RfRihBZGRFbnRyb3B5VGVzdCwgQWRkRW50cm9weSkgeworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBrZXltYXN0ZXIoKS5hZGRSbmdFbnRyb3B5KEhpZGxCdWYoImZvbyIpKSk7Cit9CisKKy8qCisgKiBBZGRFbnRyb3B5VGVzdC5BZGRFbXB0eUVudHJvcHkKKyAqCisgKiBWZXJpZmllcyB0aGF0IHRoZSBhZGRSbmdFbnRyb3B5IG1ldGhvZCBkb2Vzbid0IGJsb3cgdXAgd2hlbiBnaXZlbiBhbiBlbXB0eSBidWZmZXIuCisgKi8KK1RFU1RfRihBZGRFbnRyb3B5VGVzdCwgQWRkRW1wdHlFbnRyb3B5KSB7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIGtleW1hc3RlcigpLmFkZFJuZ0VudHJvcHkoSGlkbEJ1ZigpKSk7Cit9CisKKy8qCisgKiBBZGRFbnRyb3B5VGVzdC5BZGRMYXJnZUVudHJvcHkKKyAqCisgKiBWZXJpZmllcyB0aGF0IHRoZSBhZGRSbmdFbnRyb3B5IG1ldGhvZCBkb2Vzbid0IGJsb3cgdXAgd2hlbiBnaXZlbiBhIGxhcmdpc2ggYW1vdW50IG9mIGRhdGEuCisgKi8KK1RFU1RfRihBZGRFbnRyb3B5VGVzdCwgQWRkTGFyZ2VFbnRyb3B5KSB7CisgICAgRVhQRUNUX0VRKEVycm9yQ29kZTo6T0ssIGtleW1hc3RlcigpLmFkZFJuZ0VudHJvcHkoSGlkbEJ1ZihzdHJpbmcoMTYgKiAxMDI0LCAnYScpKSkpOworfQorCit0eXBlZGVmIEtleW1hc3RlckhpZGxUZXN0IEF0dGVzdGF0aW9uVGVzdDsKKworLyoKKyAqIEF0dGVzdGF0aW9uVGVzdC5Sc2FBdHRlc3RhdGlvbgorICoKKyAqIFZlcmlmaWVzIHRoYXQgYXR0ZXN0aW5nIHRvIFJTQSBrZXlzIHdvcmtzIGFuZCBnZW5lcmF0ZXMgdGhlIGV4cGVjdGVkIG91dHB1dC4KKyAqLworVEVTVF9GKEF0dGVzdGF0aW9uVGVzdCwgUnNhQXR0ZXN0YXRpb24pIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19JTkNMVURFX1VOSVFVRV9JRCkpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpPSywKKyAgICAgICAgQXR0ZXN0S2V5KAorICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0UsIEhpZGxCdWYoImNoYWxsZW5nZSIpKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwgSGlkbEJ1ZigiZm9vIikpLAorICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKKyAgICBFWFBFQ1RfR0UoY2VydF9jaGFpbi5zaXplKCksIDJVKTsKKyAgICBFWFBFQ1RfVFJVRSh2ZXJpZnlfY2hhaW4oY2VydF9jaGFpbikpOworICAgIEVYUEVDVF9UUlVFKAorICAgICAgICB2ZXJpZnlfYXR0ZXN0YXRpb25fcmVjb3JkKCJjaGFsbGVuZ2UiLCAiZm9vIiwgICAgICAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9jaGFyYWN0ZXJpc3RpY3NfLnNvZnR3YXJlRW5mb3JjZWQsICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9jaGFyYWN0ZXJpc3RpY3NfLnRlZUVuZm9yY2VkLCAgICAgICAvLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRfY2hhaW5bMF0pKTsKK30KKworLyoKKyAqIEF0dGVzdGF0aW9uVGVzdC5Sc2FBdHRlc3RhdGlvblJlcXVpcmVzQXBwSWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVzdGluZyB0byBSU0EgcmVxdWlyZXMgYXBwIElELgorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBSc2FBdHRlc3RhdGlvblJlcXVpcmVzQXBwSWQpIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19JTkNMVURFX1VOSVFVRV9JRCkpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUShFcnJvckNvZGU6OkFUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lEX01JU1NJTkcsCisgICAgICAgICAgICAgIEF0dGVzdEtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpLkF1dGhvcml6YXRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRSwgSGlkbEJ1ZigiY2hhbGxlbmdlIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKK30KKworLyoKKyAqIEF0dGVzdGF0aW9uVGVzdC5FY0F0dGVzdGF0aW9uCisgKgorICogVmVyaWZpZXMgdGhhdCBhdHRlc3RpbmcgdG8gRUMga2V5cyB3b3JrcyBhbmQgZ2VuZXJhdGVzIHRoZSBleHBlY3RlZCBvdXRwdXQuCisgKi8KK1RFU1RfRihBdHRlc3RhdGlvblRlc3QsIEVjQXR0ZXN0YXRpb24pIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNkc2FTaWduaW5nS2V5KEVjQ3VydmU6OlBfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6OlNIQV8yXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19JTkNMVURFX1VOSVFVRV9JRCkpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpPSywKKyAgICAgICAgQXR0ZXN0S2V5KAorICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0UsIEhpZGxCdWYoImNoYWxsZW5nZSIpKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwgSGlkbEJ1ZigiZm9vIikpLAorICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKKyAgICBFWFBFQ1RfR0UoY2VydF9jaGFpbi5zaXplKCksIDJVKTsKKyAgICBFWFBFQ1RfVFJVRSh2ZXJpZnlfY2hhaW4oY2VydF9jaGFpbikpOworCisgICAgRVhQRUNUX1RSVUUoCisgICAgICAgIHZlcmlmeV9hdHRlc3RhdGlvbl9yZWNvcmQoImNoYWxsZW5nZSIsICJmb28iLCAgICAgICAgICAgICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2NoYXJhY3RlcmlzdGljc18uc29mdHdhcmVFbmZvcmNlZCwgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQsICAgICAgIC8vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydF9jaGFpblswXSkpOworfQorCisvKgorICogQXR0ZXN0YXRpb25UZXN0LkVjQXR0ZXN0YXRpb25SZXF1aXJlc0F0dGVzdGF0aW9uQXBwSWQKKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVzdGluZyB0byBFQyBrZXlzIHJlcXVpcmVzIGFwcCBJRAorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBFY0F0dGVzdGF0aW9uUmVxdWlyZXNBdHRlc3RhdGlvbkFwcElkKSB7CisgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssCisgICAgICAgICAgICAgIEdlbmVyYXRlS2V5KEF1dGhvcml6YXRpb25TZXRCdWlsZGVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkVjZHNhU2lnbmluZ0tleShFY0N1cnZlOjpQXzI1NikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpTSEFfMl8yNTYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfSU5DTFVERV9VTklRVUVfSUQpKSk7CisKKyAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4gY2VydF9jaGFpbjsKKyAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRF9NSVNTSU5HLAorICAgICAgICAgICAgICBBdHRlc3RLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKS5BdXRob3JpemF0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0UsIEhpZGxCdWYoImNoYWxsZW5nZSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICZjZXJ0X2NoYWluKSk7Cit9CisKKy8qCisgKiBBdHRlc3RhdGlvblRlc3QuQWVzQXR0ZXN0YXRpb24KKyAqCisgKiBWZXJpZmllcyB0aGF0IGF0dGVzdGluZyB0byBBRVMga2V5cyBmYWlscyBpbiB0aGUgZXhwZWN0ZWQgd2F5LgorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBBZXNBdHRlc3RhdGlvbikgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLAorICAgICAgICAgICAgICBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BZXNFbmNyeXB0aW9uS2V5KDEyOCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5FY2JNb2RlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpQS0NTNykpKTsKKworICAgIGhpZGxfdmVjPGhpZGxfdmVjPHVpbnQ4X3Q+PiBjZXJ0X2NoYWluOworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgRXJyb3JDb2RlOjpJTkNPTVBBVElCTEVfQUxHT1JJVEhNLAorICAgICAgICBBdHRlc3RLZXkoCisgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRSwgSGlkbEJ1ZigiY2hhbGxlbmdlIikpCisgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX0FUVEVTVEFUSU9OX0FQUExJQ0FUSU9OX0lELCBIaWRsQnVmKCJmb28iKSksCisgICAgICAgICAgICAmY2VydF9jaGFpbikpOworfQorCisvKgorICogQXR0ZXN0YXRpb25UZXN0LkhtYWNBdHRlc3RhdGlvbgorICoKKyAqIFZlcmlmaWVzIHRoYXQgYXR0ZXN0aW5nIHRvIEhNQUMga2V5cyBmYWlscyBpbiB0aGUgZXhwZWN0ZWQgd2F5LgorICovCitURVNUX0YoQXR0ZXN0YXRpb25UZXN0LCBIbWFjQXR0ZXN0YXRpb24pIHsKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywKKyAgICAgICAgICAgICAgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX05PX0FVVEhfUkVRVUlSRUQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuSG1hY0tleSgxMjgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRWNiTW9kZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6U0hBXzJfMjU2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkF1dGhvcml6YXRpb24oVEFHX01JTl9NQUNfTEVOR1RILCAxMjgpKSk7CisKKyAgICBoaWRsX3ZlYzxoaWRsX3ZlYzx1aW50OF90Pj4gY2VydF9jaGFpbjsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIEVycm9yQ29kZTo6SU5DT01QQVRJQkxFX0FMR09SSVRITSwKKyAgICAgICAgQXR0ZXN0S2V5KAorICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9DSEFMTEVOR0UsIEhpZGxCdWYoImNoYWxsZW5nZSIpKQorICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19BVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCwgSGlkbEJ1ZigiZm9vIikpLAorICAgICAgICAgICAgJmNlcnRfY2hhaW4pKTsKK30KKwordHlwZWRlZiBLZXltYXN0ZXJIaWRsVGVzdCBLZXlEZWxldGlvblRlc3Q7CisKKy8qKgorICogS2V5RGVsZXRpb25UZXN0LkRlbGV0ZUtleQorICoKKyAqIFRoaXMgdGVzdCBjaGVja3MgdGhhdCBpZiByb2xsYmFjayBwcm90ZWN0aW9uIGlzIGltcGxlbWVudGVkLCBEZWxldGVLZXkgaW52YWxpZGF0ZXMgYSBmb3JtZXJseQorICogdmFsaWQga2V5IGJsb2IuCisgKi8KK1RFU1RfRihLZXlEZWxldGlvblRlc3QsIERlbGV0ZUtleSkgeworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKSkpOworCisgICAgLy8gRGVsZXRlIG11c3Qgd29yayBpZiByb2xsYmFjayBwcm90ZWN0aW9uIGlzIGltcGxlbWVudGVkCisgICAgQXV0aG9yaXphdGlvblNldCB0ZWVFbmZvcmNlZChrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCk7CisgICAgYm9vbCByb2xsYmFja19wcm90ZWN0ZWQgPSB0ZWVFbmZvcmNlZC5Db250YWlucyhUQUdfUk9MTEJBQ0tfUkVTSVNUQU5UKTsKKworICAgIGlmIChyb2xsYmFja19wcm90ZWN0ZWQpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSh0cnVlIC8qIGtlZXAga2V5IGJsb2IgKi8pKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGRlbGV0ZV9yZXN1bHQgPSBEZWxldGVLZXkodHJ1ZSAvKiBrZWVwIGtleSBibG9iICovKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoZGVsZXRlX3Jlc3VsdCA9PSBFcnJvckNvZGU6Ok9LIHwgZGVsZXRlX3Jlc3VsdCA9PSBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQpOworICAgIH0KKworICAgIHN0cmluZyBtZXNzYWdlID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyIjsKKyAgICBBdXRob3JpemF0aW9uU2V0IGJlZ2luX291dF9wYXJhbXM7CisKKyAgICBpZiAocm9sbGJhY2tfcHJvdGVjdGVkKSB7CisgICAgICAgIEVYUEVDVF9FUSgKKyAgICAgICAgICAgIEVycm9yQ29kZTo6SU5WQUxJRF9LRVlfQkxPQiwKKyAgICAgICAgICAgIEJlZ2luKEtleVB1cnBvc2U6OlNJR04sIGtleV9ibG9iXywgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSksCisgICAgICAgICAgICAgICAgICAmYmVnaW5fb3V0X3BhcmFtcywgJm9wX2hhbmRsZV8pKTsKKyAgICB9IGVsc2UgeworICAgICAgICBFWFBFQ1RfRVEoRXJyb3JDb2RlOjpPSywgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwga2V5X2Jsb2JfLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZiZWdpbl9vdXRfcGFyYW1zLCAmb3BfaGFuZGxlXykpOworICAgIH0KKyAgICBBYm9ydElmTmVlZGVkKCk7CisgICAga2V5X2Jsb2JfID0gSGlkbEJ1ZigpOworfQorCisvKioKKyAqIEtleURlbGV0aW9uVGVzdC5EZWxldGVJbnZhbGlkS2V5CisgKgorICogVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHRoZSBIQUwgZXhjZXB0cyBpbnZhbGlkIGtleSBibG9icy4KKyAqLworVEVTVF9GKEtleURlbGV0aW9uVGVzdCwgRGVsZXRlSW52YWxpZEtleSkgeworICAgIC8vIEdlbmVyYXRlIGtleSBqdXN0IHRvIGNoZWNrIGlmIHJvbGxiYWNrIHByb3RlY3Rpb24gaXMgaW1wbGVtZW50ZWQKKyAgICBBU1NFUlRfRVEoRXJyb3JDb2RlOjpPSywgR2VuZXJhdGVLZXkoQXV0aG9yaXphdGlvblNldEJ1aWxkZXIoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlJzYVNpZ25pbmdLZXkoMTAyNCwgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5EaWdlc3QoRGlnZXN0OjpOT05FKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuQXV0aG9yaXphdGlvbihUQUdfTk9fQVVUSF9SRVFVSVJFRCkpKTsKKworICAgIC8vIERlbGV0ZSBtdXN0IHdvcmsgaWYgcm9sbGJhY2sgcHJvdGVjdGlvbiBpcyBpbXBsZW1lbnRlZAorICAgIEF1dGhvcml6YXRpb25TZXQgdGVlRW5mb3JjZWQoa2V5X2NoYXJhY3RlcmlzdGljc18udGVlRW5mb3JjZWQpOworICAgIGJvb2wgcm9sbGJhY2tfcHJvdGVjdGVkID0gdGVlRW5mb3JjZWQuQ29udGFpbnMoVEFHX1JPTExCQUNLX1JFU0lTVEFOVCk7CisKKyAgICAvLyBEZWxldGUgdGhlIGtleSB3ZSBkb24ndCBjYXJlIGFib3V0IHRoZSByZXN1bHQgYXQgdGhpcyBwb2ludC4KKyAgICBEZWxldGVLZXkoKTsKKworICAgIC8vIE5vdyBjcmVhdGUgYW4gaW52YWxpZCBrZXkgYmxvYiBhbmQgZGVsZXRlIGl0LgorICAgIGtleV9ibG9iXyA9IEhpZGxCdWYoImp1c3Qgc29tZSBnYXJiYWdlIGRhdGEgd2hpY2ggaXMgbm90IGEgdmFsaWQga2V5IGJsb2IiKTsKKworICAgIGlmIChyb2xsYmFja19wcm90ZWN0ZWQpIHsKKyAgICAgICAgQVNTRVJUX0VRKEVycm9yQ29kZTo6T0ssIERlbGV0ZUtleSgpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvIGRlbGV0ZV9yZXN1bHQgPSBEZWxldGVLZXkoKTsKKyAgICAgICAgQVNTRVJUX1RSVUUoZGVsZXRlX3Jlc3VsdCA9PSBFcnJvckNvZGU6Ok9LIHwgZGVsZXRlX3Jlc3VsdCA9PSBFcnJvckNvZGU6OlVOSU1QTEVNRU5URUQpOworICAgIH0KK30KKworLyoqCisgKiBLZXlEZWxldGlvblRlc3QuRGVsZXRlQWxsS2V5cworICoKKyAqIFRoaXMgdGVzdCBpcyBkaXNhcm1lZCBieSBkZWZhdWx0LiBUbyBhcm0gaXQgdXNlIC0tYXJtX2RlbGV0ZUFsbEtleXMuCisgKgorICogQkVXQVJFOiBUaGlzIHRlc3QgaGFzIHNlcmlvdXMgc2lkZSBlZmZlY3RzLiBBbGwgdXNlciBrZXlzIHdpbGwgYmUgbG9zdCEgVGhpcyBpbmNsdWRlcworICogRkJFL0ZERSBlbmNyeXB0aW9uIGtleXMsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGRldmljZSB3aWxsIG5vdCBldmVuIGJvb3QgdW50aWwgYWZ0ZXIgdGhlCisgKiBkZXZpY2UgaGFzIGJlZW4gd2lwZWQgbWFudWFsbHkgKGUuZy4sIGZhc3Rib290IGZsYXNoYWxsIC13KSwgYW5kIG5ldyBGQkUvRkRFIGtleXMgaGF2ZQorICogYmVlbiBwcm92aXNpb25lZC4gVXNlIHRoaXMgdGVzdCBvbmx5IG9uIGRlZGljYXRlZCB0ZXN0aW5nIGRldmljZXMgdGhhdCBoYXZlIG5vIHZhbHVhYmxlCisgKiBjcmVkZW50aWFscyBzdG9yZWQgaW4gS2V5c3RvcmUvS2V5bWFzdGVyLgorICovCitURVNUX0YoS2V5RGVsZXRpb25UZXN0LCBEZWxldGVBbGxLZXlzKSB7CisgICAgaWYgKCFhcm1fZGVsZXRlQWxsS2V5cykgcmV0dXJuOworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBHZW5lcmF0ZUtleShBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUnNhU2lnbmluZ0tleSgxMDI0LCAzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuUGFkZGluZyhQYWRkaW5nTW9kZTo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5BdXRob3JpemF0aW9uKFRBR19OT19BVVRIX1JFUVVJUkVEKSkpOworCisgICAgLy8gRGVsZXRlIG11c3Qgd29yayBpZiByb2xsYmFjayBwcm90ZWN0aW9uIGlzIGltcGxlbWVudGVkCisgICAgQXV0aG9yaXphdGlvblNldCB0ZWVFbmZvcmNlZChrZXlfY2hhcmFjdGVyaXN0aWNzXy50ZWVFbmZvcmNlZCk7CisgICAgYm9vbCByb2xsYmFja19wcm90ZWN0ZWQgPSB0ZWVFbmZvcmNlZC5Db250YWlucyhUQUdfUk9MTEJBQ0tfUkVTSVNUQU5UKTsKKworICAgIEFTU0VSVF9FUShFcnJvckNvZGU6Ok9LLCBEZWxldGVBbGxLZXlzKCkpOworCisgICAgc3RyaW5nIG1lc3NhZ2UgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiOworICAgIEF1dGhvcml6YXRpb25TZXQgYmVnaW5fb3V0X3BhcmFtczsKKworICAgIGlmIChyb2xsYmFja19wcm90ZWN0ZWQpIHsKKyAgICAgICAgRVhQRUNUX0VRKAorICAgICAgICAgICAgRXJyb3JDb2RlOjpJTlZBTElEX0tFWV9CTE9CLAorICAgICAgICAgICAgQmVnaW4oS2V5UHVycG9zZTo6U0lHTiwga2V5X2Jsb2JfLCBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuRGlnZXN0KERpZ2VzdDo6Tk9ORSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5QYWRkaW5nKFBhZGRpbmdNb2RlOjpOT05FKSwKKyAgICAgICAgICAgICAgICAgICZiZWdpbl9vdXRfcGFyYW1zLCAmb3BfaGFuZGxlXykpOworICAgIH0gZWxzZSB7CisgICAgICAgIEVYUEVDVF9FUShFcnJvckNvZGU6Ok9LLCBCZWdpbihLZXlQdXJwb3NlOjpTSUdOLCBrZXlfYmxvYl8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdXRob3JpemF0aW9uU2V0QnVpbGRlcigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLkRpZ2VzdChEaWdlc3Q6Ok5PTkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLlBhZGRpbmcoUGFkZGluZ01vZGU6Ok5PTkUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJlZ2luX291dF9wYXJhbXMsICZvcF9oYW5kbGVfKSk7CisgICAgfQorICAgIEFib3J0SWZOZWVkZWQoKTsKKyAgICBrZXlfYmxvYl8gPSBIaWRsQnVmKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSB0ZXN0Cit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gcG9zaXRpb25hbF9hcmdzOworICAgIGZvciAoaW50IGkgPSAxOyBpIDwgYXJnYzsgKytpKSB7CisgICAgICAgIGlmIChhcmd2W2ldWzBdID09ICctJykgeworICAgICAgICAgICAgaWYgKHN0ZDo6c3RyaW5nKGFyZ3ZbaV0pID09ICItLWFybV9kZWxldGVBbGxLZXlzIikgeworICAgICAgICAgICAgICAgIGFybV9kZWxldGVBbGxLZXlzID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBvc2l0aW9uYWxfYXJncy5wdXNoX2JhY2soYXJndltpXSk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHBvc2l0aW9uYWxfYXJncy5zaXplKCkpIHsKKyAgICAgICAgQUxPR0koIlJ1bm5pbmcga2V5bWFzdGVyIFZUUyBhZ2FpbnN0IHNlcnZpY2UgXCIlc1wiIiwgcG9zaXRpb25hbF9hcmdzWzBdLmNfc3RyKCkpOworICAgICAgICBzZXJ2aWNlX25hbWUgPSBwb3NpdGlvbmFsX2FyZ3NbMF07CisgICAgfQorICAgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleW1hc3Rlcl90YWdzLmggYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleW1hc3Rlcl90YWdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjI0MWVmMQotLS0gL2Rldi9udWxsCisrKyBiL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5bWFzdGVyX3RhZ3MuaApAQCAtMCwwICsxLDQ1MCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE0IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBTWVNURU1fU0VDVVJJVFlfS0VZU1RPUkVfS0VZTUFTVEVSX1RBR1NfSF8KKyNkZWZpbmUgU1lTVEVNX1NFQ1VSSVRZX0tFWVNUT1JFX0tFWU1BU1RFUl9UQUdTX0hfCisKKy8qKgorICogVGhpcyBoZWFkZXIgY29udGFpbnMgdmFyaW91cyBkZWZpbml0aW9ucyB0aGF0IG1ha2Ugd29ya2luZyB3aXRoIGtleW1hc3RlciB0YWdzIHNhZmVyIGFuZCBlYXNpZXIuCisgKgorICogSXQgbWFrZXMgdXNlIG9mIGEgZmFpciBhbW91bnQgb2YgdGVtcGxhdGUgbWV0YXByb2dyYW1taW5nLiBUaGUgbWV0YXByb2dyYW1taW5nIHNlcnZlcyB0aGUgcHVycG9zZQorICogb2YgbWFraW5nIGl0IGltcG9zc2libGUgdG8gbWFrZSBjZXJ0YWluIGNsYXNzZXMgb2YgbWlzdGFrZXMgd2hlbiBvcGVyYXRpbmcgb24ga2V5bWFzdGVyCisgKiBhdXRob3JpemF0aW9ucy4gIEZvciBleGFtcGxlLCBpdCdzIGFuIGVycm9yIHRvIGNyZWF0ZSBhIEtleVBhcmFtZXRlciB3aXRoIHRhZyA9PSBUYWc6OlBVUlBPU0UKKyAqIGFuZCB0aGVuIHRvIGFzc2lnbiBBbGdvcml0aG06OlJTQSB0byBhbGdvcml0aG0gZWxlbWVudCBvZiBpdHMgdW5pb24uIEJ1dCBiZWNhdXNlIHRoZSB1c2VyCisgKiBtdXN0IGNob29zZSB0aGUgdW5pb24gZmllbGQsIHRoZXJlIGNvdWxkIGJlIGEgbWlzbWF0Y2ggd2hpY2ggdGhlIGNvbXBpbGVyIGhhcyBub3cgd2F5IHRvCisgKiBkaWFnbm9zZS4KKyAqCisgKiBUaGUgbWFjaGluZXJ5IGluIHRoaXMgaGVhZGVyIHNvbHZlcyB0aGVzZSBwcm9ibGVtcyBieSBkZXNjcmliaW5nIHdoaWNoIHVuaW9uIGZpZWxkIGNvcnJlc3BvbmRzCisgKiB0byB3aGljaCBUYWcuIENlbnRyYWwgdG8gdGhpcyBtZWNoYW5pc20gaXMgdGhlIHRlbXBsYXRlIFR5cGVkVGFnLiBJdCBoYXMgemVybyBzaXplIGFuZCBiaW5kcyBhCisgKiBudW1lcmljIFRhZyB0byBhIHR5cGUgdGhhdCB0aGUgY29tcGlsZXIgdW5kZXJzdGFuZHMuIEJ5IG1lYW5zIG9mIHRoZSBtYWNybyBERUNMQVJFX1RZUEVEX1RBRywKKyAqIHdlIGRlY2xhcmUgdHlwZXMgZm9yIGVhY2ggb2YgdGhlIHRhZ3MgZGVmaW5lZCBpbiBoYXJkd2FyZS9pbnRlcmZhY2VzL2tleW1hc3Rlci8yLjAvdHlwZXMuaGFsLgorICoKKyAqIFRoZSBtYWNybyBERUNMQVJFX1RZUEVEX1RBRyhuYW1lKSBnZW5lcmF0ZXMgYSB0eXBlbmFtZSBUQUdfbmFtZV90IGFuZCBhIHplcm8gc2l6ZWQgaW5zdGFuY2UKKyAqIFRBR19uYW1lLiBPbmNlIHRoZXNlIHR5cGVkIHRhZ3MgaGF2ZSBiZWVuIGRlY2xhcmVkIHdlIGRlZmluZSBtZXRhZnVuY3Rpb25zIG1hcHBpbmcgdGhlIGVhY2ggdGFnCisgKiB0byBpdHMgdmFsdWUgYysrIHR5cGUgYW5kIHRoZSBjb3JyZWN0IHVuaW9uIGVsZW1lbnQgb2YgS2V5UGFyYW1ldGVyLiBUaGlzIGlzIGRvbmUgYnkgbWVhbnMgb2YKKyAqIHRoZSBtYWNyb3MgTUFLRV9UQUdfKlZBTFVFX0FDQ0VTU09SLCB3aGljaCBnZW5lcmF0ZXMgVHlwZWRUYWcyVmFsdWVUeXBlLCBhIG1ldGFmdW5jdGlvbiBtYXBwaW5nCisgKiBhIHR5cGVkIHRhZyB0byB0aGUgY29ycmVzcG9uZGluZyBjKysgdHlwZSwgYW5kIGFjY2VzcyBmdW5jdGlvbiwgYWNjZXNzVGFnVmFsdWUgcmV0dXJuaW5nIGEKKyAqIHJlZmVyZW5jZSB0byB0aGUgY29ycmVjdCBlbGVtZW50IG9mIEtleVBhcmFtZXRlci4KKyAqIEUuZy46CisgKiAgICAgIGdpdmVuICJLZXlQYXJhbWV0ZXIgcGFyYW07IiB0aGVuICJhY2Nlc3NUYWdWYWx1ZShUQUdfUFVSUE9TRSwgcGFyYW0pIgorICogICAgICB5aWVsZHMgYSByZWZlcmVuY2UgdG8gcGFyYW0uZi5wdXJwb3NlCisgKiBJZiB1c2VkIGluIGFuIGFzc2lnbm1lbnQgdGhlIGNvbXBpbGVyIGNhbiBub3cgY2hlY2sgdGhlIGNvbXBhdGliaWxpdHkgb2YgdGhlIGFzc2lnbmVkIHZhbHVlLgorICoKKyAqIEZvciBjb252ZW5pZW5jZSB3ZSBhbHNvIHByb3ZpZGUgdGhlIGNvbnN0cnVjdG9yIGxpa2UgZnVuY3Rpb24gQXV0aG9yaXphdGlvbigpLgorICogQXV0aG9yaXphdGlvbiB0YWtlcyBhIHR5cGVkIHRhZyBhbmQgYSB2YWx1ZSBhbmQgY2hlY2tzIGF0IGNvbXBpbGUgdGltZSB3aGV0aGVyIHRoZSB2YWx1ZSBnaXZlbgorICogaXMgc3VpdGFibGUgZm9yIHRoZSBnaXZlbiB0YWcuIEF0IHJ1bnRpbWUgaXQgY3JlYXRlcyBhIG5ldyBLZXlQYXJhbWV0ZXIgaW5pdGlhbGl6ZWQgd2l0aCB0aGUKKyAqIGdpdmVuIHRhZyBhbmQgdmFsdWUgYW5kIHJldHVybnMgaXQgYnkgdmFsdWUuCisgKgorICogVGhlIHNlY29uZCBjb252ZW5pZW5jZSBmdW5jdGlvbiwgYXV0aG9yaXphdGlvblZhbHVlLCBhbGxvd3MgYWNjZXNzIHRvIHRoZSBLZXlQYXJhbWV0ZXIgdmFsdWUgaW4KKyAqIGEgc2FmZSB3YXkuIEl0IHRha2VzIGEgdHlwZWQgdGFnIGFuZCBhIEtleVBhcmFtZXRlciBhbmQgcmV0dXJucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFsdWUgd3JhcHBlZAorICogYnkgTnVsbE9yLiBOdWxsT3IgaGFzIG91dC1vZi1iYW5kIGluZm9ybWF0aW9uIGFib3V0IHdoZXRoZXIgaXQgaXMgc2F2ZSB0byBhY2Nlc3MgdGhlIHdyYXBwZWQKKyAqIHJlZmVyZW5jZS4KKyAqIEUuZy46CisgKiAgICAgIGF1dG8gcGFyYW0gPSBBdXRob3JpemF0aW9uKFRBR19BTEdPUklUTSwgQWxnb3JpdGhtOjpSU0EpOworICogICAgICBhdXRvIHZhbHVlMSA9IGF1dGhvcml6YXRpb25WYWx1ZShUQUdfUFVSUE9TRSwgcGFyYW0pOworICogICAgICBhdXRvIHZhbHVlMiA9IGF1dGhvcml6YXRpb25WYWx1ZShUQUdfQUxHT1JJVE0sIHBhcmFtKTsKKyAqIHZhbHVlMS5pc09rKCkgeWllbGRzIGZhbHNlLCBidXQgdmFsdWUyLmlzT2soKSB5aWVsZHMgdHJ1ZSwgdGh1cyB2YWx1ZTIudmFsdWUoKSBpcyBzYXZlIHRvIGFjY2Vzcy4KKyAqLworCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9rZXltYXN0ZXIvMy4wL0lId0tleW1hc3RlckRldmljZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2h3X2F1dGhfdG9rZW4uaD4KKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBrZXltYXN0ZXIgeworbmFtZXNwYWNlIFYzXzAgeworCisvLyBUaGUgZm9sbG93aW5nIGNyZWF0ZSB0aGUgbnVtZXJpYyB2YWx1ZXMgdGhhdCBLTV9UQUdfUEFERElORyBhbmQgS01fVEFHX0RJR0VTVCB1c2VkIHRvIGhhdmUuICBXZQorLy8gbmVlZCB0aGVzZSBvbGQgdmFsdWVzIHRvIGJlIGFibGUgdG8gc3VwcG9ydCBvbGQga2V5cyB0aGF0IHVzZSB0aGVtLgorc3RhdGljIGNvbnN0IGludDMyX3QgS01fVEFHX0RJR0VTVF9PTEQgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihUYWdUeXBlOjpFTlVNKSB8IDU7CitzdGF0aWMgY29uc3QgaW50MzJfdCBLTV9UQUdfUEFERElOR19PTEQgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihUYWdUeXBlOjpFTlVNKSB8IDc7CisKK2NvbnN0ZXhwciBUYWdUeXBlIHR5cGVGcm9tVGFnKFRhZyB0YWcpIHsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VGFnVHlwZT4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRhZykgJiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oMHhmMDAwMDAwMCkpOworfQorCisvKioKKyAqIFR5cGVkVGFnIGlzIGEgdGVtcGxhdGl6ZWQgdmVyc2lvbiBvZiBUYWcsIHdoaWNoIHByb3ZpZGVzIGNvbXBpbGUtdGltZSBjaGVja2luZyBvZiBrZXltYXN0ZXIgdGFnCisgKiB0eXBlcy4gSW5zdGFuY2VzIGFyZSBjb252ZXJ0aWJsZSB0byBUYWcsIHNvIHRoZXkgY2FuIGJlIHVzZWQgd2hlcmV2ZXIgVGFnIGlzIGV4cGVjdGVkLCBhbmQKKyAqIGJlY2F1c2UgdGhleSBlbmNvZGUgdGhlIHRhZyB0eXBlIGl0J3MgcG9zc2libGUgdG8gY3JlYXRlIGZ1bmN0aW9uIG92ZXJsb2FkcyB0aGF0IG9ubHkgb3BlcmF0ZSBvbgorICogdGFncyB3aXRoIGEgcGFydGljdWxhciB0eXBlLgorICovCit0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZz4gc3RydWN0IFR5cGVkVGFnIHsKKyAgICBpbmxpbmUgVHlwZWRUYWcoKSB7CisgICAgICAgIC8vIEVuc3VyZSB0aGF0IGl0J3MgaW1wb3NzaWJsZSB0byBjcmVhdGUgYSBUeXBlZFRhZyBpbnN0YW5jZSB3aG9zZSAndGFnJyBkb2Vzbid0IGhhdmUgdHlwZQorICAgICAgICAvLyAndGFnX3R5cGUnLiAgQXR0ZW1wdGluZyB0byBpbnN0YW50aWF0ZSBhIHRhZyB3aXRoIHRoZSB3cm9uZyB0eXBlIHdpbGwgcmVzdWx0IGluIGEgY29tcGlsZQorICAgICAgICAvLyBlcnJvciAobm8gbWF0Y2ggZm9yIHRlbXBsYXRlIHNwZWNpYWxpemF0aW9uIFN0YXRpY0Fzc2VydDxmYWxzZT4pLCB3aXRoIG5vIHJ1bi10aW1lIGNvc3QuCisgICAgICAgIHN0YXRpY19hc3NlcnQodHlwZUZyb21UYWcodGFnKSA9PSB0YWdfdHlwZSwgIm1pc21hdGNoIGJldHdlZW4gdGFnIGFuZCB0YWdfdHlwZSIpOworICAgIH0KKyAgICBjb25zdGV4cHIgb3BlcmF0b3IgVGFnKCkgeyByZXR1cm4gdGFnOyB9CisgICAgY29uc3RleHByIGxvbmcgbWFza2VkVGFnKCkgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZz4oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHRhZykgJiBzdGF0aWNfY2FzdDx1aW50MzJfdD4oMHgwZmZmZmZmZikpOworICAgIH0KK307CisKK3RlbXBsYXRlIDxUYWcgdGFnPiBzdHJ1Y3QgVGFnMlR5cGVkVGFnIHsgdHlwZWRlZiBUeXBlZFRhZzx0eXBlRnJvbVRhZyh0YWcpLCB0YWc+IHR5cGU7IH07CisKK3RlbXBsYXRlIDxUYWcgdGFnPiBzdHJ1Y3QgVGFnMlN0cmluZzsKKworI2RlZmluZSBfVEFHU19TVFJJTkdJRlkoeCkgI3gKKyNkZWZpbmUgVEFHU19TVFJJTkdJRlkoeCkgX1RBR1NfU1RSSU5HSUZZKHgpCisKKyNkZWZpbmUgREVDTEFSRV9UWVBFRF9UQUcobmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFRhZzJUeXBlZFRhZzxUYWc6Om5hbWU+Ojp0eXBlIFRBR18jI25hbWUjI190OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBleHRlcm4gVEFHXyMjbmFtZSMjX3QgVEFHXyMjbmFtZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8PiBzdHJ1Y3QgVGFnMlN0cmluZzxUYWc6Om5hbWU+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHZhbHVlKCkgeyByZXR1cm4gIlRhZzo6IiBUQUdTX1NUUklOR0lGWShuYW1lKTsgfSAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKK0RFQ0xBUkVfVFlQRURfVEFHKElOVkFMSUQpOworREVDTEFSRV9UWVBFRF9UQUcoS0VZX1NJWkUpOworREVDTEFSRV9UWVBFRF9UQUcoTUFDX0xFTkdUSCk7CitERUNMQVJFX1RZUEVEX1RBRyhDQUxMRVJfTk9OQ0UpOworREVDTEFSRV9UWVBFRF9UQUcoTUlOX01BQ19MRU5HVEgpOworREVDTEFSRV9UWVBFRF9UQUcoUlNBX1BVQkxJQ19FWFBPTkVOVCk7CitERUNMQVJFX1RZUEVEX1RBRyhFQ0lFU19TSU5HTEVfSEFTSF9NT0RFKTsKK0RFQ0xBUkVfVFlQRURfVEFHKElOQ0xVREVfVU5JUVVFX0lEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFDVElWRV9EQVRFVElNRSk7CitERUNMQVJFX1RZUEVEX1RBRyhPUklHSU5BVElPTl9FWFBJUkVfREFURVRJTUUpOworREVDTEFSRV9UWVBFRF9UQUcoVVNBR0VfRVhQSVJFX0RBVEVUSU1FKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE1JTl9TRUNPTkRTX0JFVFdFRU5fT1BTKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE1BWF9VU0VTX1BFUl9CT09UKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFMTF9VU0VSUyk7CitERUNMQVJFX1RZUEVEX1RBRyhVU0VSX0lEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFVTRVJfU0VDVVJFX0lEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE5PX0FVVEhfUkVRVUlSRUQpOworREVDTEFSRV9UWVBFRF9UQUcoQVVUSF9USU1FT1VUKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFMTE9XX1dISUxFX09OX0JPRFkpOworREVDTEFSRV9UWVBFRF9UQUcoQUxMX0FQUExJQ0FUSU9OUyk7CitERUNMQVJFX1RZUEVEX1RBRyhBUFBMSUNBVElPTl9JRCk7CitERUNMQVJFX1RZUEVEX1RBRyhBUFBMSUNBVElPTl9EQVRBKTsKK0RFQ0xBUkVfVFlQRURfVEFHKENSRUFUSU9OX0RBVEVUSU1FKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFJPTExCQUNLX1JFU0lTVEFOVCk7CitERUNMQVJFX1RZUEVEX1RBRyhST09UX09GX1RSVVNUKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFTU09DSUFURURfREFUQSk7CitERUNMQVJFX1RZUEVEX1RBRyhOT05DRSk7CitERUNMQVJFX1RZUEVEX1RBRyhBVVRIX1RPS0VOKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEJPT1RMT0FERVJfT05MWSk7CitERUNMQVJFX1RZUEVEX1RBRyhPU19WRVJTSU9OKTsKK0RFQ0xBUkVfVFlQRURfVEFHKE9TX1BBVENITEVWRUwpOworREVDTEFSRV9UWVBFRF9UQUcoVU5JUVVFX0lEKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEFUVEVTVEFUSU9OX0NIQUxMRU5HRSk7CitERUNMQVJFX1RZUEVEX1RBRyhBVFRFU1RBVElPTl9BUFBMSUNBVElPTl9JRCk7CitERUNMQVJFX1RZUEVEX1RBRyhSRVNFVF9TSU5DRV9JRF9ST1RBVElPTik7CisKK0RFQ0xBUkVfVFlQRURfVEFHKFBVUlBPU0UpOworREVDTEFSRV9UWVBFRF9UQUcoQUxHT1JJVEhNKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEJMT0NLX01PREUpOworREVDTEFSRV9UWVBFRF9UQUcoRElHRVNUKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFBBRERJTkcpOworREVDTEFSRV9UWVBFRF9UQUcoQkxPQl9VU0FHRV9SRVFVSVJFTUVOVFMpOworREVDTEFSRV9UWVBFRF9UQUcoT1JJR0lOKTsKK0RFQ0xBUkVfVFlQRURfVEFHKFVTRVJfQVVUSF9UWVBFKTsKK0RFQ0xBUkVfVFlQRURfVEFHKEtERik7CitERUNMQVJFX1RZUEVEX1RBRyhFQ19DVVJWRSk7CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBFbGVtcz4gc3RydWN0IE1ldGFMaXN0IHt9OworCit1c2luZyBhbGxfdGFnc190ID0gTWV0YUxpc3Q8CisgICAgVEFHX0lOVkFMSURfdCwgVEFHX0tFWV9TSVpFX3QsIFRBR19NQUNfTEVOR1RIX3QsIFRBR19DQUxMRVJfTk9OQ0VfdCwgVEFHX01JTl9NQUNfTEVOR1RIX3QsCisgICAgVEFHX1JTQV9QVUJMSUNfRVhQT05FTlRfdCwgVEFHX0VDSUVTX1NJTkdMRV9IQVNIX01PREVfdCwgVEFHX0lOQ0xVREVfVU5JUVVFX0lEX3QsCisgICAgVEFHX0FDVElWRV9EQVRFVElNRV90LCBUQUdfT1JJR0lOQVRJT05fRVhQSVJFX0RBVEVUSU1FX3QsIFRBR19VU0FHRV9FWFBJUkVfREFURVRJTUVfdCwKKyAgICBUQUdfTUlOX1NFQ09ORFNfQkVUV0VFTl9PUFNfdCwgVEFHX01BWF9VU0VTX1BFUl9CT09UX3QsIFRBR19BTExfVVNFUlNfdCwgVEFHX1VTRVJfSURfdCwKKyAgICBUQUdfVVNFUl9TRUNVUkVfSURfdCwgVEFHX05PX0FVVEhfUkVRVUlSRURfdCwgVEFHX0FVVEhfVElNRU9VVF90LCBUQUdfQUxMT1dfV0hJTEVfT05fQk9EWV90LAorICAgIFRBR19BTExfQVBQTElDQVRJT05TX3QsIFRBR19BUFBMSUNBVElPTl9JRF90LCBUQUdfQVBQTElDQVRJT05fREFUQV90LCBUQUdfQ1JFQVRJT05fREFURVRJTUVfdCwKKyAgICBUQUdfUk9MTEJBQ0tfUkVTSVNUQU5UX3QsIFRBR19ST09UX09GX1RSVVNUX3QsIFRBR19BU1NPQ0lBVEVEX0RBVEFfdCwgVEFHX05PTkNFX3QsCisgICAgVEFHX0FVVEhfVE9LRU5fdCwgVEFHX0JPT1RMT0FERVJfT05MWV90LCBUQUdfT1NfVkVSU0lPTl90LCBUQUdfT1NfUEFUQ0hMRVZFTF90LCBUQUdfVU5JUVVFX0lEX3QsCisgICAgVEFHX0FUVEVTVEFUSU9OX0NIQUxMRU5HRV90LCBUQUdfQVRURVNUQVRJT05fQVBQTElDQVRJT05fSURfdCwgVEFHX1JFU0VUX1NJTkNFX0lEX1JPVEFUSU9OX3QsCisgICAgVEFHX1BVUlBPU0VfdCwgVEFHX0FMR09SSVRITV90LCBUQUdfQkxPQ0tfTU9ERV90LCBUQUdfRElHRVNUX3QsIFRBR19QQURESU5HX3QsCisgICAgVEFHX0JMT0JfVVNBR0VfUkVRVUlSRU1FTlRTX3QsIFRBR19PUklHSU5fdCwgVEFHX1VTRVJfQVVUSF9UWVBFX3QsIFRBR19LREZfdCwgVEFHX0VDX0NVUlZFX3Q+OworCisvKiBpbXBsZW1lbnRhdGlvbiBpbiBrZXlzdG9yZV91dGlscy5jcHAgKi8KK2V4dGVybiBjb25zdCBjaGFyKiBzdHJpbmdpZnlUYWcoVGFnIHRhZyk7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUeXBlZFRhZ1R5cGU+IHN0cnVjdCBUeXBlZFRhZzJWYWx1ZVR5cGU7CisKKyNkZWZpbmUgTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IodGFnX3R5cGUsIGZpZWxkX25hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8VGFnIHRhZz4gc3RydWN0IFR5cGVkVGFnMlZhbHVlVHlwZTxUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPj4geyAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgdHlwZWRlZiBkZWNsdHlwZShzdGF0aWNfY2FzdDxLZXlQYXJhbWV0ZXIqPihudWxscHRyKS0+ZmllbGRfbmFtZSkgdHlwZTsgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8VGFnIHRhZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpbmxpbmUgYXV0byBhY2Nlc3NUYWdWYWx1ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLT5jb25zdCBkZWNsdHlwZShwYXJhbS5maWVsZF9uYW1lKSYgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIHBhcmFtLmZpZWxkX25hbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB0ZW1wbGF0ZSA8VGFnIHRhZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpbmxpbmUgYXV0byBhY2Nlc3NUYWdWYWx1ZShUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiwgS2V5UGFyYW1ldGVyJiBwYXJhbSkgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLT5kZWNsdHlwZShwYXJhbS5maWVsZF9uYW1lKSYgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIHBhcmFtLmZpZWxkX25hbWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OlVMT05HLCBmLmxvbmdJbnRlZ2VyKQorTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IoVGFnVHlwZTo6VUxPTkdfUkVQLCBmLmxvbmdJbnRlZ2VyKQorTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IoVGFnVHlwZTo6REFURSwgZi5kYXRlVGltZSkKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OlVJTlQsIGYuaW50ZWdlcikKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OlVJTlRfUkVQLCBmLmludGVnZXIpCitNQUtFX1RBR19WQUxVRV9BQ0NFU1NPUihUYWdUeXBlOjpCT09MLCBmLmJvb2xWYWx1ZSkKK01BS0VfVEFHX1ZBTFVFX0FDQ0VTU09SKFRhZ1R5cGU6OkJZVEVTLCBibG9iKQorTUFLRV9UQUdfVkFMVUVfQUNDRVNTT1IoVGFnVHlwZTo6QklHTlVNLCBibG9iKQorCisjZGVmaW5lIE1BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IodHlwZWRfdGFnLCBmaWVsZF9uYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdGVtcGxhdGUgPD4gc3RydWN0IFR5cGVkVGFnMlZhbHVlVHlwZTxkZWNsdHlwZSh0eXBlZF90YWcpPiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHR5cGVkZWYgZGVjbHR5cGUoc3RhdGljX2Nhc3Q8S2V5UGFyYW1ldGVyKj4obnVsbHB0ciktPmZpZWxkX25hbWUpIHR5cGU7ICAgICAgICAgICAgICAgICAgICBcCisgICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaW5saW5lIGF1dG8gYWNjZXNzVGFnVmFsdWUoZGVjbHR5cGUodHlwZWRfdGFnKSwgY29uc3QgS2V5UGFyYW1ldGVyJiBwYXJhbSkgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC0+Y29uc3QgZGVjbHR5cGUocGFyYW0uZmllbGRfbmFtZSkmIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBwYXJhbS5maWVsZF9uYW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaW5saW5lIGF1dG8gYWNjZXNzVGFnVmFsdWUoZGVjbHR5cGUodHlwZWRfdGFnKSwgS2V5UGFyYW1ldGVyJiBwYXJhbSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC0+ZGVjbHR5cGUocGFyYW0uZmllbGRfbmFtZSkmIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBwYXJhbS5maWVsZF9uYW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCitNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKFRBR19BTEdPUklUSE0sIGYuYWxnb3JpdGhtKQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfQkxPQl9VU0FHRV9SRVFVSVJFTUVOVFMsIGYua2V5QmxvYlVzYWdlUmVxdWlyZW1lbnRzKQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfQkxPQ0tfTU9ERSwgZi5ibG9ja01vZGUpCitNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKFRBR19ESUdFU1QsIGYuZGlnZXN0KQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfRUNfQ1VSVkUsIGYuZWNDdXJ2ZSkKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX0tERiwgZi5rZXlEZXJpdmF0aW9uRnVuY3Rpb24pCitNQUtFX1RBR19FTlVNX1ZBTFVFX0FDQ0VTU09SKFRBR19PUklHSU4sIGYub3JpZ2luKQorTUFLRV9UQUdfRU5VTV9WQUxVRV9BQ0NFU1NPUihUQUdfUEFERElORywgZi5wYWRkaW5nTW9kZSkKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX1BVUlBPU0UsIGYucHVycG9zZSkKK01BS0VfVEFHX0VOVU1fVkFMVUVfQUNDRVNTT1IoVEFHX1VTRVJfQVVUSF9UWVBFLCBmLmhhcmR3YXJlQXV0aGVudGljYXRvclR5cGUpCisKK3RlbXBsYXRlIDxUYWdUeXBlIHRhZ190eXBlLCBUYWcgdGFnLCB0eXBlbmFtZSBWYWx1ZVQ+CitpbmxpbmUgS2V5UGFyYW1ldGVyIG1ha2VLZXlQYXJhbWV0ZXIoVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gdHRhZywgVmFsdWVUJiYgdmFsdWUpIHsKKyAgICBLZXlQYXJhbWV0ZXIgcGFyYW07CisgICAgcGFyYW0udGFnID0gdGFnOworICAgIHBhcmFtLmYubG9uZ0ludGVnZXIgPSAwOworICAgIGFjY2Vzc1RhZ1ZhbHVlKHR0YWcsIHBhcmFtKSA9IHN0ZDo6Zm9yd2FyZDxWYWx1ZVQ+KHZhbHVlKTsKKyAgICByZXR1cm4gcGFyYW07Cit9CisKKy8vIHRoZSBib29sZWFuIGNhc2UKK3RlbXBsYXRlIDxUYWcgdGFnPiBpbmxpbmUgS2V5UGFyYW1ldGVyIG1ha2VLZXlQYXJhbWV0ZXIoVHlwZWRUYWc8VGFnVHlwZTo6Qk9PTCwgdGFnPikgeworICAgIEtleVBhcmFtZXRlciBwYXJhbTsKKyAgICBwYXJhbS50YWcgPSB0YWc7CisgICAgcGFyYW0uZi5ib29sVmFsdWUgPSB0cnVlOworICAgIHJldHVybiBwYXJhbTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lLi4uIFBhY2s+IHN0cnVjdCBGaXJzdE9yTm9uZUhlbHBlcjsKK3RlbXBsYXRlIDx0eXBlbmFtZSBGaXJzdD4gc3RydWN0IEZpcnN0T3JOb25lSGVscGVyPEZpcnN0PiB7IHR5cGVkZWYgRmlyc3QgdHlwZTsgfTsKK3RlbXBsYXRlIDw+IHN0cnVjdCBGaXJzdE9yTm9uZUhlbHBlcjw+IHsKKyAgICBzdHJ1Y3QgdHlwZSB7fTsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBQYWNrPiB1c2luZyBGaXJzdE9yTm9uZSA9IHR5cGVuYW1lIEZpcnN0T3JOb25lSGVscGVyPFBhY2suLi4+Ojp0eXBlOworCit0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZywgdHlwZW5hbWUuLi4gQXJncz4KK2lubGluZSBLZXlQYXJhbWV0ZXIgQXV0aG9yaXphdGlvbihUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPiB0dGFnLCBBcmdzJiYuLi4gYXJncykgeworICAgIHN0YXRpY19hc3NlcnQodGFnX3R5cGUgIT0gVGFnVHlwZTo6Qk9PTCB8fCAoc2l6ZW9mLi4uKGFyZ3MpID09IDApLAorICAgICAgICAgICAgICAgICAgIlRhZ1R5cGU6OkJPT0wgQXV0aG9yaXphdGlvbnMgZG8gbm90IHRha2UgcGFyYW1ldGVycy4gUHJlc2VuY2UgaXMgdHJ1dGguIik7CisgICAgc3RhdGljX2Fzc2VydCh0YWdfdHlwZSA9PSBUYWdUeXBlOjpCT09MIHx8IChzaXplb2YuLi4oYXJncykgPT0gMSksCisgICAgICAgICAgICAgICAgICAiQXV0aG9yaXphdGlvbiBvdGhlciB0aGVuIFRhZ1R5cGU6OkJPT0wgdGFrZSBleGFjdGx5IG9uZSBwYXJhbWV0ZXIuIik7CisgICAgc3RhdGljX2Fzc2VydCgKKyAgICAgICAgdGFnX3R5cGUgPT0gVGFnVHlwZTo6Qk9PTCB8fAorICAgICAgICAgICAgc3RkOjppc19jb252ZXJ0aWJsZTxzdGQ6OnJlbW92ZV9jdl90PHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PEZpcnN0T3JOb25lPEFyZ3MuLi4+Pj4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIFR5cGVkVGFnMlZhbHVlVHlwZTxUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPj46OnR5cGU+Ojp2YWx1ZSwKKyAgICAgICAgIkludmFsaWQgYXJndW1lbnQgdHlwZSBmb3IgZ2l2ZW4gdGFnLiIpOworCisgICAgcmV0dXJuIG1ha2VLZXlQYXJhbWV0ZXIodHRhZywgc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKK30KKworLyoqCisgKiBUaGlzIGNsYXNzIHdyYXBzIGEgKG1vc3RseSByZXR1cm4pIHZhbHVlIGFuZCBzdG9yZXMgd2hldGhlciBvciBub3QgdGhlIHdyYXBwZWQgdmFsdWUgaXMgdmFsaWQgb3V0CisgKiBvZiBiYW5kLiBOb3RlIHRoYXQgaWYgdGhlIHdyYXBwZWQgdmFsdWUgaXMgYSByZWZlcmVuY2UgaXQgaXMgdW5zYWZlIHRvIGFjY2VzcyB0aGUgdmFsdWUgaWYKKyAqICFpc09rKCkuIElmIHRoZSB3cmFwcGVkIHR5cGUgaXMgYSBwb2ludGVyIG9yIHZhbHVlIGFuZCAhaXNPaygpLCBpdCBpcyBzdGlsbCBzYWZlIHRvIGFjY2VzcyB0aGUKKyAqIHdyYXBwZWQgdmFsdWUuIEluIHRoaXMgY2FzZSB0aGUgcG9pbnRlciB3aWxsIGJlIE5VTEwgdGhvdWdoLCBhbmQgdGhlIHZhbHVlIHdpbGwgYmUgZGVmYXVsdAorICogY29uc3RydWN0ZWQuCisgKi8KK3RlbXBsYXRlIDx0eXBlbmFtZSBWYWx1ZVQ+IGNsYXNzIE51bGxPciB7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCByZWZlcmVuY2VfaW5pdGlhbGl6ZXIgeworICAgICAgICBzdGF0aWMgVCYmIGluaXQoKSB7IHJldHVybiAqc3RhdGljX2Nhc3Q8c3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8VD4qPihudWxscHRyKTsgfQorICAgIH07CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBwb2ludGVyX2luaXRpYWxpemVyIHsKKyAgICAgICAgc3RhdGljIFQgaW5pdCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB9OworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgdmFsdWVfaW5pdGlhbGl6ZXIgeworICAgICAgICBzdGF0aWMgVCBpbml0KCkgeyByZXR1cm4gVCgpOyB9CisgICAgfTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KKyAgICB1c2luZyBpbml0aWFsaXplcl90ID0KKyAgICAgICAgc3RkOjpjb25kaXRpb25hbF90PHN0ZDo6aXNfbHZhbHVlX3JlZmVyZW5jZTxUPjo6dmFsdWUsIHJlZmVyZW5jZV9pbml0aWFsaXplcjxUPiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y29uZGl0aW9uYWxfdDxzdGQ6OmlzX3BvaW50ZXI8VD46OnZhbHVlLCBwb2ludGVyX2luaXRpYWxpemVyPFQ+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlX2luaXRpYWxpemVyPFQ+Pj47CisKKyAgcHVibGljOgorICAgIE51bGxPcigpIDogdmFsdWVfKGluaXRpYWxpemVyX3Q8VmFsdWVUPjo6aW5pdCgpKSwgbnVsbF8odHJ1ZSkge30KKyAgICBOdWxsT3IoVmFsdWVUJiYgdmFsdWUpIDogdmFsdWVfKHN0ZDo6Zm9yd2FyZDxWYWx1ZVQ+KHZhbHVlKSksIG51bGxfKGZhbHNlKSB7fQorCisgICAgYm9vbCBpc09rKCkgY29uc3QgeyByZXR1cm4gIW51bGxfOyB9CisKKyAgICBjb25zdCBWYWx1ZVQmIHZhbHVlKCkgY29uc3QgJiB7IHJldHVybiB2YWx1ZV87IH0KKyAgICBWYWx1ZVQmIHZhbHVlKCkgJiB7IHJldHVybiB2YWx1ZV87IH0KKyAgICBWYWx1ZVQmJiB2YWx1ZSgpICYmIHsgcmV0dXJuIHN0ZDo6bW92ZSh2YWx1ZV8pOyB9CisKKyAgcHJpdmF0ZToKKyAgICBWYWx1ZVQgdmFsdWVfOworICAgIGJvb2wgbnVsbF87Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8VD4gTnVsbE9yT3IoTnVsbE9yPFQ+JiYgdikgeworICAgIGlmICh2LmlzT2soKSkgcmV0dXJuIHY7CisgICAgcmV0dXJuIHt9OworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgSGVhZCwgdHlwZW5hbWUuLi4gVGFpbD4KK3N0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PEhlYWQ+IE51bGxPck9yKEhlYWQmJiBoZWFkLCBUYWlsJiYuLi4gdGFpbCkgeworICAgIGlmIChoZWFkLmlzT2soKSkgcmV0dXJuIGhlYWQ7CisgICAgcmV0dXJuIE51bGxPck9yKHN0ZDo6Zm9yd2FyZDxUYWlsPih0YWlsKS4uLik7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBEZWZhdWx0LCB0eXBlbmFtZSBXcmFwcGVkPgorc3RkOjpyZW1vdmVfcmVmZXJlbmNlX3Q8V3JhcHBlZD4gZGVmYXVsdE9yKE51bGxPcjxXcmFwcGVkPiYmIG9wdGlvbmFsLCBEZWZhdWx0JiYgZGVmKSB7CisgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2NvbnZlcnRpYmxlPHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZV90PERlZmF1bHQ+LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnJlbW92ZV9yZWZlcmVuY2VfdDxXcmFwcGVkPj46OnZhbHVlLAorICAgICAgICAgICAgICAgICAgIlR5cGUgb2YgZGVmYXVsdCB2YWx1ZSBtdXN0IG1hdGNoIHRoZSB0eXBlIHdyYXBwZWQgYnkgTnVsbE9yIik7CisgICAgaWYgKG9wdGlvbmFsLmlzT2soKSkgcmV0dXJuIG9wdGlvbmFsLnZhbHVlKCk7CisgICAgcmV0dXJuIGRlZjsKK30KKwordGVtcGxhdGUgPFRhZ1R5cGUgdGFnX3R5cGUsIFRhZyB0YWc+CitpbmxpbmUgTnVsbE9yPGNvbnN0IHR5cGVuYW1lIFR5cGVkVGFnMlZhbHVlVHlwZTxUeXBlZFRhZzx0YWdfdHlwZSwgdGFnPj46OnR5cGUmPgorYXV0aG9yaXphdGlvblZhbHVlKFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+IHR0YWcsIGNvbnN0IEtleVBhcmFtZXRlciYgcGFyYW0pIHsKKyAgICBpZiAodGFnICE9IHBhcmFtLnRhZykgcmV0dXJuIHt9OworICAgIHJldHVybiBhY2Nlc3NUYWdWYWx1ZSh0dGFnLCBwYXJhbSk7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoRGlnZXN0IGRpZ2VzdCkgeworICAgIHN3aXRjaCAoZGlnZXN0KSB7CisgICAgY2FzZSBEaWdlc3Q6Ok5PTkU6CisgICAgICAgIHJldHVybiAiTm9uZSI7CisgICAgY2FzZSBEaWdlc3Q6Ok1ENToKKyAgICAgICAgcmV0dXJuICJNZDUiOworICAgIGNhc2UgRGlnZXN0OjpTSEExOgorICAgICAgICByZXR1cm4gIlNoYTEiOworICAgIGNhc2UgRGlnZXN0OjpTSEFfMl8yMjQ6CisgICAgICAgIHJldHVybiAiU2hhMjI0IjsKKyAgICBjYXNlIERpZ2VzdDo6U0hBXzJfMjU2OgorICAgICAgICByZXR1cm4gIlNoYTI1NiI7CisgICAgY2FzZSBEaWdlc3Q6OlNIQV8yXzM4NDoKKyAgICAgICAgcmV0dXJuICJTaGEzODQiOworICAgIGNhc2UgRGlnZXN0OjpTSEFfMl81MTI6CisgICAgICAgIHJldHVybiAiU2hhNTEyIjsKKyAgICB9CisgICAgcmV0dXJuICJVTktOT1dOIERJR0VTVCEiOworfQorCitpbmxpbmUgY29uc3QgY2hhciogc3RyaW5naWZ5KEFsZ29yaXRobSBhbGdvcml0aG0pIHsKKyAgICBzd2l0Y2ggKGFsZ29yaXRobSkgeworICAgIGNhc2UgQWxnb3JpdGhtOjpSU0E6CisgICAgICAgIHJldHVybiAiUnNhIjsKKyAgICBjYXNlIEFsZ29yaXRobTo6RUM6CisgICAgICAgIHJldHVybiAiRWMiOworICAgIGNhc2UgQWxnb3JpdGhtOjpBRVM6CisgICAgICAgIHJldHVybiAiQWVzIjsKKyAgICBjYXNlIEFsZ29yaXRobTo6SE1BQzoKKyAgICAgICAgcmV0dXJuICJIbWFjIjsKKyAgICB9CisgICAgcmV0dXJuICJVTktOT1dOIEFMR09SSVRITSI7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoQmxvY2tNb2RlIGJsb2NrX21vZGUpIHsKKyAgICBzd2l0Y2ggKGJsb2NrX21vZGUpIHsKKyAgICBjYXNlIEJsb2NrTW9kZTo6RUNCOgorICAgICAgICByZXR1cm4gIkVjYiI7CisgICAgY2FzZSBCbG9ja01vZGU6OkNCQzoKKyAgICAgICAgcmV0dXJuICJDYmMiOworICAgIGNhc2UgQmxvY2tNb2RlOjpDVFI6CisgICAgICAgIHJldHVybiAiQ3RyIjsKKyAgICBjYXNlIEJsb2NrTW9kZTo6R0NNOgorICAgICAgICByZXR1cm4gIkdjbSI7CisgICAgfQorICAgIHJldHVybiAiVU5LTk9XTiBCTE9DSyBNT0RFIjsKK30KKworaW5saW5lIGNvbnN0IGNoYXIqIHN0cmluZ2lmeShQYWRkaW5nTW9kZSBwYWRkaW5nKSB7CisgICAgc3dpdGNoIChwYWRkaW5nKSB7CisgICAgY2FzZSBQYWRkaW5nTW9kZTo6Tk9ORToKKyAgICAgICAgcmV0dXJuICJOb25lIjsKKyAgICBjYXNlIFBhZGRpbmdNb2RlOjpSU0FfT0FFUDoKKyAgICAgICAgcmV0dXJuICJSc2FPYWVwIjsKKyAgICBjYXNlIFBhZGRpbmdNb2RlOjpSU0FfUFNTOgorICAgICAgICByZXR1cm4gIlJzYVBzcyI7CisgICAgY2FzZSBQYWRkaW5nTW9kZTo6UlNBX1BLQ1MxXzFfNV9FTkNSWVBUOgorICAgICAgICByZXR1cm4gIlJzYVBrY3MxMTVFbmNyeXB0IjsKKyAgICBjYXNlIFBhZGRpbmdNb2RlOjpSU0FfUEtDUzFfMV81X1NJR046CisgICAgICAgIHJldHVybiAiUnNhUGtjczExNVNpZ24iOworICAgIGNhc2UgUGFkZGluZ01vZGU6OlBLQ1M3OgorICAgICAgICByZXR1cm4gIlBrY3M3IjsKKyAgICB9CisgICAgcmV0dXJuICJVTktOT1dOIFBBRERJTkcgTU9ERSI7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoS2V5T3JpZ2luIG9yaWdpbikgeworICAgIHN3aXRjaCAob3JpZ2luKSB7CisgICAgY2FzZSBLZXlPcmlnaW46OkdFTkVSQVRFRDoKKyAgICAgICAgcmV0dXJuICJHZW5lcmF0ZWQiOworICAgIGNhc2UgS2V5T3JpZ2luOjpERVJJVkVEOgorICAgICAgICByZXR1cm4gIkRlcml2ZWQiOworICAgIGNhc2UgS2V5T3JpZ2luOjpJTVBPUlRFRDoKKyAgICAgICAgcmV0dXJuICJJbXBvcnRlZCI7CisgICAgY2FzZSBLZXlPcmlnaW46OlVOS05PV046CisgICAgICAgIHJldHVybiAiVU5LTk9XTiAoa2V5bWFzdGVyMCBkaWRuJ3QgcmVjb3JkIGl0KSI7CisgICAgfQorICAgIHJldHVybiAiVU5LT1dOIEtFWSBPUklHSU4gVkFMVUUiOworfQorCitpbmxpbmUgY29uc3QgY2hhciogc3RyaW5naWZ5KEtleVB1cnBvc2UgcHVycG9zZSkgeworICAgIHN3aXRjaCAocHVycG9zZSkgeworICAgIGNhc2UgS2V5UHVycG9zZTo6RU5DUllQVDoKKyAgICAgICAgcmV0dXJuICJFbmNyeXB0IjsKKyAgICBjYXNlIEtleVB1cnBvc2U6OkRFQ1JZUFQ6CisgICAgICAgIHJldHVybiAiRGVjcnlwdCI7CisgICAgY2FzZSBLZXlQdXJwb3NlOjpTSUdOOgorICAgICAgICByZXR1cm4gIlNpZ24iOworICAgIGNhc2UgS2V5UHVycG9zZTo6VkVSSUZZOgorICAgICAgICByZXR1cm4gIlZlcmlmeSI7CisgICAgY2FzZSBLZXlQdXJwb3NlOjpERVJJVkVfS0VZOgorICAgICAgICByZXR1cm4gIkRlcml2ZUtleSI7CisgICAgY2FzZSBLZXlQdXJwb3NlOjpXUkFQX0tFWToKKyAgICAgICAgcmV0dXJuICJXcmFwS2V5IjsKKyAgICB9OworICAgIHJldHVybiAiVU5LTk9XTiBLRVkgUFVSUE9TRSI7Cit9CisKK2lubGluZSBjb25zdCBjaGFyKiBzdHJpbmdpZnkoRWNDdXJ2ZSBjdXJ2ZSkgeworICAgIHN3aXRjaCAoY3VydmUpIHsKKyAgICBjYXNlIEVjQ3VydmU6OlBfMjI0OgorICAgICAgICByZXR1cm4gIlBfMjI0IjsKKyAgICBjYXNlIEVjQ3VydmU6OlBfMjU2OgorICAgICAgICByZXR1cm4gIlBfMjU2IjsKKyAgICBjYXNlIEVjQ3VydmU6OlBfMzg0OgorICAgICAgICByZXR1cm4gIlBfMzg0IjsKKyAgICBjYXNlIEVjQ3VydmU6OlBfNTIxOgorICAgICAgICByZXR1cm4gIlBfNTIxIjsKKyAgICB9CisgICAgcmV0dXJuICJVTktOT1dOIEVDIENVUlZFIjsKK30KKworfSAgLy8gbmFtZXNwYWNlIFYzXzAKK30gIC8vIG5hbWVzcGFjZSBrZXltYXN0ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBTWVNURU1fU0VDVVJJVFlfS0VZU1RPUkVfS0VZTUFTVEVSX1RBR1NfSF8KZGlmZiAtLWdpdCBhL2tleW1hc3Rlci8zLjAvdnRzL2Z1bmN0aW9uYWwva2V5c3RvcmVfdGFnc191dGlscy5jcHAgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleXN0b3JlX3RhZ3NfdXRpbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkZDk5ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL2tleXN0b3JlX3RhZ3NfdXRpbHMuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisqKgorKiogQ29weXJpZ2h0IDIwMTYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyoqCisqKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyoqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyoqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorKioKKyoqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyoqCisqKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisqKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorKiogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisqKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisqKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyovCisKKyNpbmNsdWRlICJrZXltYXN0ZXJfdGFncy5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIGtleW1hc3RlciB7CituYW1lc3BhY2UgVjNfMCB7CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUYWdMaXN0PiBzdHJ1Y3QgVGFnU3RyaW5naWZpZXI7CisKK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBUYWdzPiBzdHJ1Y3QgVGFnU3RyaW5naWZpZXI8TWV0YUxpc3Q8VGFncy4uLj4+IHsKKyAgICB0ZW1wbGF0ZSA8VGFnVHlwZSB0YWdfdHlwZSwgVGFnIHRhZz4KKyAgICBzdGF0aWMgVHlwZWRUYWc8dGFnX3R5cGUsIHRhZz4gY2hvb3NlU3RyaW5nKFR5cGVkVGFnPHRhZ190eXBlLCB0YWc+IHR0YWcsIFRhZyBydW50aW1lX3RhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqKiByZXN1bHQpIHsKKyAgICAgICAgaWYgKHRhZyA9PSBydW50aW1lX3RhZykgeworICAgICAgICAgICAgKnJlc3VsdCA9IFRhZzJTdHJpbmc8dGFnPjo6dmFsdWUoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHRhZzsKKyAgICB9CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN0cmluZ2lmeShUYWcgdGFnKSB7CisgICAgICAgIGNvbnN0IGNoYXIqIHJlc3VsdCA9ICJ1bmtub3duIHRhZyI7CisgICAgICAgIFtdKFRhZ3MmJi4uLikge30oY2hvb3NlU3RyaW5nKFRhZ3MoKSwgdGFnLCAmcmVzdWx0KS4uLik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorfTsKKworY29uc3QgY2hhciogc3RyaW5naWZ5VGFnKFRhZyB0YWcpIHsKKyAgICByZXR1cm4gVGFnU3RyaW5naWZpZXI8YWxsX3RhZ3NfdD46OnN0cmluZ2lmeSh0YWcpOworfQorCit9ICAvLyBuYW1lc3BhY2UgVjNfMAorfSAgLy8gbmFtZXNwYWNlIGtleW1hc3RlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9vcGVuc3NsX3V0aWxzLmggYi9rZXltYXN0ZXIvMy4wL3Z0cy9mdW5jdGlvbmFsL29wZW5zc2xfdXRpbHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZWJhOWJhCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyLzMuMC92dHMvZnVuY3Rpb25hbC9vcGVuc3NsX3V0aWxzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHZvaWQgKCpGKShUKik+IHN0cnVjdCBVbmlxdWVQdHJEZWxldGVyIHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoVCogcCkgY29uc3QgeyBGKHApOyB9Cit9OworCit0eXBlZGVmIFVuaXF1ZVB0ckRlbGV0ZXI8RVZQX1BLRVksIEVWUF9QS0VZX2ZyZWU+IEVWUF9QS0VZX0RlbGV0ZTsKKworI2RlZmluZSBNQUtFX09QRU5TU0xfUFRSX1RZUEUodHlwZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPHR5cGUsIFVuaXF1ZVB0ckRlbGV0ZXI8dHlwZSwgdHlwZSMjX2ZyZWU+PiB0eXBlIyNfUHRyOworCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoQVNOMV9PQkpFQ1QpCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoRVZQX1BLRVkpCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoUlNBKQorTUFLRV9PUEVOU1NMX1BUUl9UWVBFKFg1MDkpCitNQUtFX09QRU5TU0xfUFRSX1RZUEUoQk5fQ1RYKQorCit0eXBlZGVmIHN0ZDo6dW5pcXVlX3B0cjxCSUdOVU0sIFVuaXF1ZVB0ckRlbGV0ZXI8QklHTlVNLCBCTl9mcmVlPj4gQklHTlVNX1B0cjsKKworaW5saW5lIGNvbnN0IEVWUF9NRCogb3BlbnNzbF9kaWdlc3QoYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0IGRpZ2VzdCkgeworICAgIHN3aXRjaCAoZGlnZXN0KSB7CisgICAgY2FzZSBhbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpEaWdlc3Q6Ok5PTkU6CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNhc2UgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0OjpNRDU6CisgICAgICAgIHJldHVybiBFVlBfbWQ1KCk7CisgICAgY2FzZSBhbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpEaWdlc3Q6OlNIQTE6CisgICAgICAgIHJldHVybiBFVlBfc2hhMSgpOworICAgIGNhc2UgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0OjpTSEFfMl8yMjQ6CisgICAgICAgIHJldHVybiBFVlBfc2hhMjI0KCk7CisgICAgY2FzZSBhbmRyb2lkOjpoYXJkd2FyZTo6a2V5bWFzdGVyOjpWM18wOjpEaWdlc3Q6OlNIQV8yXzI1NjoKKyAgICAgICAgcmV0dXJuIEVWUF9zaGEyNTYoKTsKKyAgICBjYXNlIGFuZHJvaWQ6OmhhcmR3YXJlOjprZXltYXN0ZXI6OlYzXzA6OkRpZ2VzdDo6U0hBXzJfMzg0OgorICAgICAgICByZXR1cm4gRVZQX3NoYTM4NCgpOworICAgIGNhc2UgYW5kcm9pZDo6aGFyZHdhcmU6OmtleW1hc3Rlcjo6VjNfMDo6RGlnZXN0OjpTSEFfMl81MTI6CisgICAgICAgIHJldHVybiBFVlBfc2hhNTEyKCk7CisgICAgfQorICAgIHJldHVybiBudWxscHRyOworfQpkaWZmIC0tZ2l0IGEva2V5bWFzdGVyL0FuZHJvaWQuYnAgYi9rZXltYXN0ZXIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWI4Y2IyCi0tLSAvZGV2L251bGwKKysrIGIva2V5bWFzdGVyL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIzLjAiLAorXQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL0FuZHJvaWQuYnAgYi9saWdodC8yLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmZkYmUwCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2MyBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJTGlnaHQuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9MaWdodEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL2h3dHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JTGlnaHQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JSHdMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL0JuSHdMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL0JwSHdMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL0JzTGlnaHQuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL0FuZHJvaWQubWsgYi9saWdodC8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNGQ3YWIxCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwyNzAgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUubGlnaHQtVjIuMC1qYXZhCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChCcmlnaHRuZXNzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0JyaWdodG5lc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6dHlwZXMuQnJpZ2h0bmVzcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmxhc2gpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvRmxhc2guamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6dHlwZXMuRmxhc2gKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKExpZ2h0U3RhdGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvTGlnaHRTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5MaWdodFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbGlnaHQvVjJfMC9UeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLlR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJTGlnaHQuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvSUxpZ2h0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JTGlnaHQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6SUxpZ2h0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JTGlnaHQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0LVYyLjAtamF2YS1zdGF0aWMKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfU1RBVElDX0pBVkFfTElCUkFSSUVTIDo9IFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQnJpZ2h0bmVzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbGlnaHQvVjJfMC9CcmlnaHRuZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLkJyaWdodG5lc3MKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZsYXNoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0ZsYXNoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OnR5cGVzLkZsYXNoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChMaWdodFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0xpZ2h0U3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDo6dHlwZXMuTGlnaHRTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5TdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL2xpZ2h0L1YyXzAvVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjp0eXBlcy5UeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUxpZ2h0LmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9saWdodC9WMl8wL0lMaWdodC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUxpZ2h0LmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA6OklMaWdodAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUxpZ2h0LmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL0lMaWdodC5oYWwgYi9saWdodC8yLjAvSUxpZ2h0LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hN2NkNjg0Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL0lMaWdodC5oYWwKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA7CisKK2ludGVyZmFjZSBJTGlnaHQgeworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwcm92aWRlZCBsaWdodHMgdG8gdGhlIHByb3ZpZGVkIHZhbHVlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlIGxvZ2ljYWwgbGlnaHQgdG8gc2V0CisgICAgICogQHBhcmFtIHN0YXRlIGRlc2NyaWJlcyB3aGF0IHRoZSBsaWdodCBzaG91bGQgbG9vayBsaWtlLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHJlc3VsdCBvZiBhcHBseWluZyBzdGF0ZSB0cmFuc2Zvcm1hdGlvbi4KKyAgICAgKi8KKyAgICBzZXRMaWdodChUeXBlIHR5cGUsIExpZ2h0U3RhdGUgc3RhdGUpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICAvKioKKyAgICAgKiBEaXNjb3ZlciB3aGF0IGluZGljYXRvciBsaWdodHMgYXJlIGF2YWlsYWJsZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gdHlwZXMgbGlzdCBvZiBhdmFpbGFibGUgbGlnaHRzCisgICAgICovCisgICAgZ2V0U3VwcG9ydGVkVHlwZXMoKSBnZW5lcmF0ZXMgKHZlYzxUeXBlPiB0eXBlcyk7CisKK307CmRpZmYgLS1naXQgYS9saWdodC8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZjQ0ZTY2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQ0IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBMaWdodC5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmxvZyBcCisgICAgbGliY3V0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisgICAgbGliYmFzZSBcCisgICAgbGliY3V0aWxzIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wLXNlcnZpY2UucmMKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZGwgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoYXJkd2FyZSBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgKz0gXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9FWEVDVVRBQkxFKQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwIGIvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkZTE1MzYKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC8yLjAvZGVmYXVsdC9MaWdodC5jcHAKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImxpZ2h0IgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSAiTGlnaHQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBsaWdodCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdGF0aWNfYXNzZXJ0KExJR0hUX0ZMQVNIX05PTkUgPT0gc3RhdGljX2Nhc3Q8aW50PihGbGFzaDo6Tk9ORSksCisgICAgIkZsYXNoOjpOT05FIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChMSUdIVF9GTEFTSF9USU1FRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KEZsYXNoOjpUSU1FRCksCisgICAgIkZsYXNoOjpUSU1FRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoTElHSFRfRkxBU0hfSEFSRFdBUkUgPT0gc3RhdGljX2Nhc3Q8aW50PihGbGFzaDo6SEFSRFdBUkUpLAorICAgICJGbGFzaDo6SEFSRFdBUkUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3N0YXRpY19hc3NlcnQoQlJJR0hUTkVTU19NT0RFX1VTRVIgPT0gc3RhdGljX2Nhc3Q8aW50PihCcmlnaHRuZXNzOjpVU0VSKSwKKyAgICAiQnJpZ2h0bmVzczo6VVNFUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQlJJR0hUTkVTU19NT0RFX1NFTlNPUiA9PSBzdGF0aWNfY2FzdDxpbnQ+KEJyaWdodG5lc3M6OlNFTlNPUiksCisgICAgIkJyaWdodG5lc3M6OlNFTlNPUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQlJJR0hUTkVTU19NT0RFX0xPV19QRVJTSVNURU5DRSA9PQorICAgIHN0YXRpY19jYXN0PGludD4oQnJpZ2h0bmVzczo6TE9XX1BFUlNJU1RFTkNFKSwKKyAgICAiQnJpZ2h0bmVzczo6TE9XX1BFUlNJU1RFTkNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitMaWdodDo6TGlnaHQoc3RkOjptYXA8VHlwZSwgbGlnaHRfZGV2aWNlX3QqPiAmJmxpZ2h0cykKKyAgOiBtTGlnaHRzKHN0ZDo6bW92ZShsaWdodHMpKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OklMaWdodCBmb2xsb3cuCitSZXR1cm48U3RhdHVzPiBMaWdodDo6c2V0TGlnaHQoVHlwZSB0eXBlLCBjb25zdCBMaWdodFN0YXRlJiBzdGF0ZSkgIHsKKyAgICBhdXRvIGl0ID0gbUxpZ2h0cy5maW5kKHR5cGUpOworCisgICAgaWYgKGl0ID09IG1MaWdodHMuZW5kKCkpIHsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6TElHSFRfTk9UX1NVUFBPUlRFRDsKKyAgICB9CisKKyAgICBsaWdodF9kZXZpY2VfdCogaHdMaWdodCA9IGl0LT5zZWNvbmQ7CisKKyAgICBsaWdodF9zdGF0ZV90IGxlZ2FjeVN0YXRlIHsKKyAgICAgICAgLmNvbG9yID0gc3RhdGUuY29sb3IsCisgICAgICAgIC5mbGFzaE1vZGUgPSBzdGF0aWNfY2FzdDxpbnQ+KHN0YXRlLmZsYXNoTW9kZSksCisgICAgICAgIC5mbGFzaE9uTVMgPSBzdGF0ZS5mbGFzaE9uTXMsCisgICAgICAgIC5mbGFzaE9mZk1TID0gc3RhdGUuZmxhc2hPZmZNcywKKyAgICAgICAgLmJyaWdodG5lc3NNb2RlID0gc3RhdGljX2Nhc3Q8aW50PihzdGF0ZS5icmlnaHRuZXNzTW9kZSksCisgICAgfTsKKworICAgIGludCByZXQgPSBod0xpZ2h0LT5zZXRfbGlnaHQoaHdMaWdodCwgJmxlZ2FjeVN0YXRlKTsKKworICAgIHN3aXRjaCAocmV0KSB7CisgICAgICAgIGNhc2UgLUVOT1NZUzoKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OkJSSUdIVE5FU1NfTk9UX1NVUFBPUlRFRDsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6U1VDQ0VTUzsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OlVOS05PV047CisgICAgfQorfQorCitSZXR1cm48dm9pZD4gTGlnaHQ6OmdldFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzX2NiIF9oaWRsX2NiKSAgeworICAgIFR5cGUgKnR5cGVzID0gbmV3IFR5cGVbbUxpZ2h0cy5zaXplKCldOworCisgICAgaW50IGlkeCA9IDA7CisgICAgZm9yKGF1dG8gY29uc3QgJnBhaXIgOiBtTGlnaHRzKSB7CisgICAgICAgIFR5cGUgdHlwZSA9IHBhaXIuZmlyc3Q7CisKKyAgICAgICAgdHlwZXNbaWR4KytdID0gdHlwZTsKKyAgICB9CisKKyAgICB7CisgICAgICAgIGhpZGxfdmVjPFR5cGU+IGhpZGxfdHlwZXN7fTsKKyAgICAgICAgaGlkbF90eXBlcy5zZXRUb0V4dGVybmFsKHR5cGVzLCBtTGlnaHRzLnNpemUoKSk7CisKKyAgICAgICAgX2hpZGxfY2IoaGlkbF90eXBlcyk7CisgICAgfQorCisgICAgZGVsZXRlW10gdHlwZXM7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitjb25zdCBzdGF0aWMgc3RkOjptYXA8VHlwZSwgY29uc3QgY2hhcio+IGtMb2dpY2FsTGlnaHRzID0geworICAgIHtUeXBlOjpCQUNLTElHSFQsICAgICBMSUdIVF9JRF9CQUNLTElHSFR9LAorICAgIHtUeXBlOjpLRVlCT0FSRCwgICAgICBMSUdIVF9JRF9LRVlCT0FSRH0sCisgICAge1R5cGU6OkJVVFRPTlMsICAgICAgIExJR0hUX0lEX0JVVFRPTlN9LAorICAgIHtUeXBlOjpCQVRURVJZLCAgICAgICBMSUdIVF9JRF9CQVRURVJZfSwKKyAgICB7VHlwZTo6Tk9USUZJQ0FUSU9OUywgTElHSFRfSURfTk9USUZJQ0FUSU9OU30sCisgICAge1R5cGU6OkFUVEVOVElPTiwgICAgIExJR0hUX0lEX0FUVEVOVElPTn0sCisgICAge1R5cGU6OkJMVUVUT09USCwgICAgIExJR0hUX0lEX0JMVUVUT09USH0sCisgICAge1R5cGU6OldJRkksICAgICAgICAgIExJR0hUX0lEX1dJRkl9Cit9OworCitsaWdodF9kZXZpY2VfdCogZ2V0TGlnaHREZXZpY2UoY29uc3QgY2hhciogbmFtZSkgeworICAgIGxpZ2h0X2RldmljZV90KiBsaWdodERldmljZTsKKyAgICBjb25zdCBod19tb2R1bGVfdCogaHdNb2R1bGUgPSBOVUxMOworCisgICAgaW50IHJldCA9IGh3X2dldF9tb2R1bGUgKExJR0hUU19IQVJEV0FSRV9NT0RVTEVfSUQsICZod01vZHVsZSk7CisgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgIHJldCA9IGh3TW9kdWxlLT5tZXRob2RzLT5vcGVuKGh3TW9kdWxlLCBuYW1lLAorICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod19kZXZpY2VfdCoqPigmbGlnaHREZXZpY2UpKTsKKyAgICAgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgICAgICBBTE9HRSgibGlnaHRfb3BlbiAlcyAlcyBmYWlsZWQ6ICVkIiwgTElHSFRTX0hBUkRXQVJFX01PRFVMRV9JRCwgbmFtZSwgcmV0KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJod19nZXRfbW9kdWxlICVzICVzIGZhaWxlZDogJWQiLCBMSUdIVFNfSEFSRFdBUkVfTU9EVUxFX0lELCBuYW1lLCByZXQpOworICAgIH0KKworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXR1cm4gbGlnaHREZXZpY2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoIkxpZ2h0IHBhc3N0aHJvdWdoIGZhaWxlZCB0byBsb2FkIGxlZ2FjeSBIQUwuIik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KK30KKworSUxpZ2h0KiBISURMX0ZFVENIX0lMaWdodChjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgc3RkOjptYXA8VHlwZSwgbGlnaHRfZGV2aWNlX3QqPiBsaWdodHM7CisKKyAgICBmb3IoYXV0byBjb25zdCAmcGFpciA6IGtMb2dpY2FsTGlnaHRzKSB7CisgICAgICAgIFR5cGUgdHlwZSA9IHBhaXIuZmlyc3Q7CisgICAgICAgIGNvbnN0IGNoYXIqIG5hbWUgPSBwYWlyLnNlY29uZDsKKworICAgICAgICBsaWdodF9kZXZpY2VfdCogbGlnaHQgPSBnZXRMaWdodERldmljZShuYW1lKTsKKworICAgICAgICBpZiAobGlnaHQgIT0gbnVsbHB0cikgeworICAgICAgICAgICAgbGlnaHRzW3R5cGVdID0gbGlnaHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobGlnaHRzLnNpemUoKSA9PSAwKSB7CisgICAgICAgIC8vIExvZyBpbmZvcm1hdGlvbiwgYnV0IHN0aWxsIHJldHVybiBuZXcgTGlnaHQuCisgICAgICAgIC8vIFNvbWUgZGV2aWNlcyBtYXkgbm90IGhhdmUgYW55IGxpZ2h0cy4KKyAgICAgICAgQUxPR0koIkNvdWxkIG5vdCBvcGVuIGFueSBsaWdodHMuIik7CisgICAgfQorCisgICAgcmV0dXJuIG5ldyBMaWdodChzdGQ6Om1vdmUobGlnaHRzKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIGxpZ2h0Cit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS9saWdodC8yLjAvZGVmYXVsdC9MaWdodC5oIGIvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTg3MDM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9MSUdIVF9WMl8wX0xJR0hUX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9MSUdIVF9WMl8wX0xJR0hUX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbGlnaHQvMi4wL0lMaWdodC5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvbGlnaHRzLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorI2luY2x1ZGUgPG1hcD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBsaWdodCB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6SUxpZ2h0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OkxpZ2h0U3RhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OlR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBMaWdodCA6IHB1YmxpYyBJTGlnaHQgeworICAgIExpZ2h0KHN0ZDo6bWFwPFR5cGUsIGxpZ2h0X2RldmljZV90Kj4gJiZsaWdodHMpOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQgZm9sbG93LgorICAgIFJldHVybjxTdGF0dXM+IHNldExpZ2h0KFR5cGUgdHlwZSwgY29uc3QgTGlnaHRTdGF0ZSYgc3RhdGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0U3VwcG9ydGVkVHlwZXMoZ2V0U3VwcG9ydGVkVHlwZXNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdGQ6Om1hcDxUeXBlLCBsaWdodF9kZXZpY2VfdCo+IG1MaWdodHM7Cit9OworCitleHRlcm4gIkMiIElMaWdodCogSElETF9GRVRDSF9JTGlnaHQoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBsaWdodAorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfTElHSFRfVjJfMF9MSUdIVF9ICmRpZmYgLS1naXQgYS9saWdodC8yLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMC1zZXJ2aWNlLnJjIGIvbGlnaHQvMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzI4NGM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgbGlnaHQtaGFsLTItMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL2xpZ2h0LzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwYWU1NjUKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JTGlnaHQuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElMaWdodD4oKTsKK30KZGlmZiAtLWdpdCBhL2xpZ2h0LzIuMC90eXBlcy5oYWwgYi9saWdodC8yLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3YjY3ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC8yLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDsKKworZW51bSBTdGF0dXMgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTLAorICAgIExJR0hUX05PVF9TVVBQT1JURUQsCisgICAgQlJJR0hUTkVTU19OT1RfU1VQUE9SVEVELAorICAgIFVOS05PV04sCit9OworCitlbnVtIEZsYXNoIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogS2VlcCB0aGUgbGlnaHQgc3RlYWR5IG9uIG9yIG9mZi4KKyAgICAgKi8KKyAgICBOT05FLAorCisgICAgLyoqCisgICAgICogRmxhc2ggdGhlIGxpZ2h0IGF0IHNwZWNpZmllZCByYXRlLgorICAgICAqLworICAgIFRJTUVELAorCisgICAgLyoqCisgICAgICogRmxhc2ggdGhlIGxpZ2h0IHVzaW5nIGhhcmR3YXJlIGFzc2lzdC4KKyAgICAgKi8KKyAgICBIQVJEV0FSRSwKK307CisKK2VudW0gQnJpZ2h0bmVzcyA6IGludDMyX3QgeworICAgIC8qKgorICAgICAqIExpZ2h0IGJyaWdodG5lc3MgaXMgbWFuYWdlZCBieSBhIHVzZXIgc2V0dGluZy4KKyAgICAgKi8KKyAgICBVU0VSLAorCisgICAgLyoqCisgICAgICogTGlnaHQgYnJpZ2h0bmVzcyBpcyBtYW5hZ2VkIGJ5IGEgbGlnaHQgc2Vuc29yLgorICAgICAqLworICAgIFNFTlNPUiwKKworICAgIC8qKgorICAgICAqIFVzZSBhIGxvdy1wZXJzaXN0ZW5jZSBtb2RlIGZvciBkaXNwbGF5IGJhY2tsaWdodHMuCisgICAgICoKKyAgICAgKiBXaGVuIHNldCwgdGhlIGRldmljZSBkcml2ZXIgbXVzdCBzd2l0Y2ggdG8gYSBtb2RlIG9wdGltaXplZCBmb3IgbG93IGRpc3BsYXkKKyAgICAgKiBwZXJzaXN0ZW5jZSB0aGF0IGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2hlbiB0aGUgZGV2aWNlIGlzIGJlaW5nIHRyZWF0ZWQgYXMgYQorICAgICAqIGhlYWQgbW91bnRlZCBkaXNwbGF5IChITUQpLiBUaGUgYWN0dWFsIGRpc3BsYXkgYnJpZ2h0bmVzcyBpbiB0aGlzIG1vZGUgaXMKKyAgICAgKiBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQsIGFuZCBhbnkgdmFsdWUgc2V0IGZvciBjb2xvciBpbiBMaWdodFN0YXRlIG1heSBiZQorICAgICAqIG92ZXJyaWRkZW4gYnkgdGhlIEhBTCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgKgorICAgICAqIEZvciBhbiBvcHRpbWFsIEhNRCB2aWV3aW5nIGV4cGVyaWVuY2UsIHRoZSBkaXNwbGF5IG11c3QgbWVldCB0aGUgZm9sbG93aW5nCisgICAgICogY3JpdGVyaWEgaW4gdGhpcyBtb2RlOgorICAgICAqIC0gR3JheS10by1HcmF5LCBXaGl0ZS10by1CbGFjaywgYW5kIEJsYWNrLXRvLVdoaXRlIHN3aXRjaGluZyB0aW1lIG11c3QgYmUg4omkIDMgbXMuCisgICAgICogLSBUaGUgZGlzcGxheSBtdXN0IHN1cHBvcnQgbG93LXBlcnNpc3RlbmNlIHdpdGgg4omkIDMuNSBtcyBwZXJzaXN0ZW5jZS4KKyAgICAgKiAgIFBlcnNpc3RlbmNlIGlzIGRlZmluZWQgYXMgdGhlIGFtb3VudCBvZiB0aW1lIGZvciB3aGljaCBhIHBpeGVsIGlzCisgICAgICogICBlbWl0dGluZyBsaWdodCBmb3IgYSBzaW5nbGUgZnJhbWUuCisgICAgICogLSBBbnkgInNtYXJ0IHBhbmVsIiBvciBvdGhlciBmcmFtZSBidWZmZXJpbmcgb3B0aW9ucyB0aGF0IGluY3JlYXNlIGRpc3BsYXkKKyAgICAgKiAgIGxhdGVuY3kgYXJlIGRpc2FibGVkLgorICAgICAqIC0gRGlzcGxheSBicmlnaHRuZXNzIGlzIHNldCBzbyB0aGF0IHRoZSBkaXNwbGF5IGlzIHN0aWxsIHZpc2libGUgdG8gdGhlIHVzZXIKKyAgICAgKiAgIHVuZGVyIG5vcm1hbCBpbmRvb3IgbGlnaHRpbmcuCisgICAgICogLSBUaGUgZGlzcGxheSBtdXN0IHVwZGF0ZSBhdCA2MCBIeiBhdCBsZWFzdCwgYnV0IGhpZ2hlciByZWZyZXNoIHJhdGVzIGFyZQorICAgICAqICAgcmVjb21tZW5kZWQgZm9yIGxvdyBsYXRlbmN5LgorICAgICAqCisgICAgICovCisgICAgTE9XX1BFUlNJU1RFTkNFLAorfTsKKworLyoqCisgKiBUaGVzZSBsaWdodCBJRHMgY29ycmVzcG9uZCB0byBsb2dpY2FsIGxpZ2h0cywgbm90IHBoeXNpY2FsLgorICogU28gZm9yIGV4YW1wbGUsIGlmIHlvdXIgSU5ESUNBVE9SIGxpZ2h0IGlzIGluIGxpbmUgd2l0aCB5b3VyCisgKiBCVVRUT05TLCBpdCBtaWdodCBtYWtlIHNlbnNlIHRvIGFsc28gbGlnaHQgdGhlIElORElDQVRPUgorICogbGlnaHQgdG8gYSByZWFzb25hYmxlIGNvbG9yIHdoZW4gdGhlIEJVVFRPTlMgYXJlIGxpdC4KKyAqLworZW51bSBUeXBlIDogaW50MzJfdCB7CisgICAgQkFDS0xJR0hULAorICAgIEtFWUJPQVJELAorICAgIEJVVFRPTlMsCisgICAgQkFUVEVSWSwKKyAgICBOT1RJRklDQVRJT05TLAorICAgIEFUVEVOVElPTiwKKyAgICBCTFVFVE9PVEgsCisgICAgV0lGSSwKKworICAgIENPVU5ULAorfTsKKworLyoqCisgKiBUaGUgcGFyYW1ldGVycyB0aGF0IGNhbiBiZSBzZXQgZm9yIGEgZ2l2ZW4gbGlnaHQuCisgKgorICogTm90IGFsbCBsaWdodHMgbXVzdCBzdXBwb3J0IGFsbCBwYXJhbWV0ZXJzLiBJZiB5b3UKKyAqIGNhbiBkbyBzb21ldGhpbmcgYmFja3dhcmQtY29tcGF0aWJsZSwgZG8gaXQuCisgKi8KK3N0cnVjdCBMaWdodFN0YXRlIHsKKyAgICAvKioKKyAgICAgKiBUaGUgY29sb3Igb2YgdGhlIExFRCBpbiBBUkdCLgorICAgICAqCisgICAgICogRG8geW91ciBiZXN0IGhlcmUuCisgICAgICogICAtIElmIHlvdXIgbGlnaHQgY2FuIG9ubHkgZG8gcmVkIG9yIGdyZWVuLCBpZiB0aGV5IGFzayBmb3IgYmx1ZSwKKyAgICAgKiAgICAgeW91IHNob3VsZCBkbyBncmVlbi4KKyAgICAgKiAgIC0gSWYgeW91IGNhbiBvbmx5IGRvIGEgYnJpZ2h0bmVzcyByYW1wLCB0aGVuIHVzZSB0aGlzIGZvcm11bGE6CisgICAgICogICAgICB1bnNpZ25lZCBjaGFyIGJyaWdodG5lc3MgPSAoKDc3KigoY29sb3I+PjE2KSYweDAwZmYpKQorICAgICAqICAgICAgICAgICAgICArICgxNTAqKChjb2xvcj4+OCkmMHgwMGZmKSkgKyAoMjkqKGNvbG9yJjB4MDBmZikpKSA+PiA4OworICAgICAqICAgLSBJZiB5b3UgY2FuIG9ubHkgZG8gb24gb3Igb2ZmLCAwIGlzIG9mZiwgYW55dGhpbmcgZWxzZSBpcyBvbi4KKyAgICAgKgorICAgICAqIFRoZSBoaWdoIGJ5dGUgc2hvdWxkIGJlIGlnbm9yZWQuIENhbGxlcnMgd2lsbCBzZXQgaXQgdG8gMHhmZiAod2hpY2gKKyAgICAgKiB3b3VsZCBjb3JyZXNwb25kIHRvIDI1NSBhbHBoYSkuCisgICAgICovCisgICAgdWludDMyX3QgY29sb3I7CisKKyAgICAvKioKKyAgICAgKiBUbyBmbGFzaCB0aGUgbGlnaHQgYXQgYSBnaXZlbiByYXRlLCBzZXQgZmxhc2hNb2RlIHRvIExJR0hUX0ZMQVNIX1RJTUVELAorICAgICAqIGFuZCB0aGVuIGZsYXNoT25NUyBzaG91bGQgYmUgc2V0IHRvIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHR1cm4KKyAgICAgKiB0aGUgbGlnaHQgb24sIGZvbGxvd2VkIGJ5IHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHR1cm4gdGhlIGxpZ2h0CisgICAgICogb2ZmLgorICAgICAqLworICAgIEZsYXNoIGZsYXNoTW9kZTsKKworICAgIGludDMyX3QgZmxhc2hPbk1zOworICAgIGludDMyX3QgZmxhc2hPZmZNczsKKworICAgIEJyaWdodG5lc3MgYnJpZ2h0bmVzc01vZGU7Cit9OwpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL3Z0cy9BbmRyb2lkLm1rIGIvbGlnaHQvMi4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4OTUwM2IKLS0tIC9kZXYvbnVsbAorKysgYi9saWdodC8yLjAvdnRzL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvbGlnaHQvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi9saWdodC8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTU4ZmYyCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNCBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbExpZ2h0VjJfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbExpZ2h0VjJfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CisKZGlmZiAtLWdpdCBhL2xpZ2h0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxMaWdodFYyXzBUYXJnZXRUZXN0LmNwcCBiL2xpZ2h0LzIuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxMaWdodFYyXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDA1NDIyCi0tLSAvZGV2L251bGwKKysrIGIvbGlnaHQvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbExpZ2h0VjJfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJsaWdodF9oaWRsX2hhbF90ZXN0IgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC9JTGlnaHQuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL2xpZ2h0LzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPHNldD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OkJyaWdodG5lc3M7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6Rmxhc2g7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6SUxpZ2h0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OkxpZ2h0U3RhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpsaWdodDo6VjJfMDo6U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OlR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisjZGVmaW5lIEFTU0VSVF9PSyhyZXQpIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpCisjZGVmaW5lIEVYUEVDVF9PSyhyZXQpIEVYUEVDVF9UUlVFKHJldC5pc09rKCkpCisKK2NvbnN0IHN0YXRpYyBMaWdodFN0YXRlIGtXaGl0ZSA9IHsKKyAgICAuY29sb3IgPSAweEZGRkZGRkZGLAorICAgIC5mbGFzaE1vZGUgPSBGbGFzaDo6VElNRUQsCisgICAgLmZsYXNoT25NcyA9IDEwMCwKKyAgICAuZmxhc2hPZmZNcyA9IDUwLAorICAgIC5icmlnaHRuZXNzTW9kZSA9IEJyaWdodG5lc3M6OlVTRVIsCit9OworCitjb25zdCBzdGF0aWMgTGlnaHRTdGF0ZSBrTG93UGVyc2lzdGFuY2UgPSB7CisgICAgLmNvbG9yID0gMHhGRjEyMzQ1NiwKKyAgICAuZmxhc2hNb2RlID0gRmxhc2g6OlRJTUVELAorICAgIC5mbGFzaE9uTXMgPSAxMDAsCisgICAgLmZsYXNoT2ZmTXMgPSA1MCwKKyAgICAuYnJpZ2h0bmVzc01vZGUgPSBCcmlnaHRuZXNzOjpMT1dfUEVSU0lTVEVOQ0UsCit9OworCitjb25zdCBzdGF0aWMgTGlnaHRTdGF0ZSBrT2ZmID0geworICAgIC5jb2xvciA9IDB4MDAwMDAwMDAsCisgICAgLmZsYXNoTW9kZSA9IEZsYXNoOjpOT05FLAorICAgIC5mbGFzaE9uTXMgPSAwLAorICAgIC5mbGFzaE9mZk1zID0gMCwKKyAgICAuYnJpZ2h0bmVzc01vZGUgPSBCcmlnaHRuZXNzOjpVU0VSLAorfTsKKworY29uc3Qgc3RhdGljIHN0ZDo6c2V0PFR5cGU+IGtBbGxUeXBlcyA9IHsKKyAgICBUeXBlOjpCQUNLTElHSFQsCisgICAgVHlwZTo6S0VZQk9BUkQsCisgICAgVHlwZTo6QlVUVE9OUywKKyAgICBUeXBlOjpCQVRURVJZLAorICAgIFR5cGU6Ok5PVElGSUNBVElPTlMsCisgICAgVHlwZTo6QVRURU5USU9OLAorICAgIFR5cGU6OkJMVUVUT09USCwKKyAgICBUeXBlOjpXSUZJCit9OworCitjbGFzcyBMaWdodEhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGxpZ2h0ID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SUxpZ2h0PigpOworCisgICAgICAgIEFTU0VSVF9ORShsaWdodCwgbnVsbHB0cik7CisgICAgICAgIExPRyhJTkZPKSA8PCAiVGVzdCBpcyByZW1vdGUgIiA8PCBsaWdodC0+aXNSZW1vdGUoKTsKKworICAgICAgICBBU1NFUlRfT0sobGlnaHQtPmdldFN1cHBvcnRlZFR5cGVzKFt0aGlzXShjb25zdCBoaWRsX3ZlYzxUeXBlPiAmdHlwZXMpIHsKKyAgICAgICAgICAgIHN1cHBvcnRlZFR5cGVzID0gdHlwZXM7CisgICAgICAgIH0pKTsKKyAgICB9CisKKyAgICBzcDxJTGlnaHQ+IGxpZ2h0OworICAgIHN0ZDo6dmVjdG9yPFR5cGU+IHN1cHBvcnRlZFR5cGVzOworCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBmb3IgKGNvbnN0IFR5cGUmIHR5cGU6IHN1cHBvcnRlZFR5cGVzKSB7CisgICAgICAgICAgICBSZXR1cm48U3RhdHVzPiByZXQgPSBsaWdodC0+c2V0TGlnaHQodHlwZSwga09mZik7CisgICAgICAgICAgICBFWFBFQ1RfT0socmV0KTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OlNVQ0NFU1MsIHN0YXRpY19jYXN0PFN0YXR1cz4ocmV0KSk7CisgICAgICAgIH0KKworICAgICAgICAvLyBtdXN0IGxlYXZlIHRoZSBkZXZpY2UgaW4gYSB1c2VhYmxlIGNvbmRpdGlvbgorICAgICAgICBpZiAoc3RkOjpmaW5kKHN1cHBvcnRlZFR5cGVzLmJlZ2luKCksCisgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkVHlwZXMuZW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgVHlwZTo6QkFDS0xJR0hUKSAhPSBzdXBwb3J0ZWRUeXBlcy5lbmQoKSkgeworICAgICAgICAgICAgUmV0dXJuPFN0YXR1cz4gcmV0ID0gbGlnaHQtPnNldExpZ2h0KFR5cGU6OkJBQ0tMSUdIVCwga1doaXRlKTsKKyAgICAgICAgICAgIEVYUEVDVF9PSyhyZXQpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN0YXR1czo6U1VDQ0VTUywgc3RhdGljX2Nhc3Q8U3RhdHVzPihyZXQpKTsKKyAgICAgICAgfQorICAgIH0KKworfTsKKworLyoqCisgKiBFbnN1cmUgYWxsIGxpZ2h0cyB3aGljaCBhcmUgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkIHdvcmsuCisgKi8KK1RFU1RfRihMaWdodEhpZGxUZXN0LCBUZXN0U3VwcG9ydGVkKSB7CisgICAgZm9yIChjb25zdCBUeXBlJiB0eXBlOiBzdXBwb3J0ZWRUeXBlcykgeworICAgICAgICBSZXR1cm48U3RhdHVzPiByZXQgPSBsaWdodC0+c2V0TGlnaHQodHlwZSwga1doaXRlKTsKKyAgICAgICAgRVhQRUNUX09LKHJldCk7CisgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OlNVQ0NFU1MsIHN0YXRpY19jYXN0PFN0YXR1cz4ocmV0KSk7CisgICAgfQorfQorCisvKioKKyAqIEVuc3VyZSBCUklHSFRORVNTX05PVF9TVVBQT1JURUQgaXMgcmV0dXJuZWQgaWYgTE9XX1BFUlNJU1RBTkNFIGlzIG5vdCBzdXBwb3J0ZWQuCisgKi8KK1RFU1RfRihMaWdodEhpZGxUZXN0LCBUZXN0TG93UGVyc2lzdGFuY2UpIHsKKyAgICBmb3IgKGNvbnN0IFR5cGUmIHR5cGU6IHN1cHBvcnRlZFR5cGVzKSB7CisgICAgICAgIFJldHVybjxTdGF0dXM+IHJldCA9IGxpZ2h0LT5zZXRMaWdodCh0eXBlLCBrTG93UGVyc2lzdGFuY2UpOworICAgICAgICBFWFBFQ1RfT0socmV0KTsKKworICAgICAgICBTdGF0dXMgc3RhdHVzID0gcmV0OworICAgICAgICBFWFBFQ1RfVFJVRShTdGF0dXM6OlNVQ0NFU1MgPT0gc3RhdHVzIHx8CisgICAgICAgICAgICAgICAgICAgIFN0YXR1czo6QlJJR0hUTkVTU19OT1RfU1VQUE9SVEVEID09IHN0YXR1cyk7CisgICAgfQorfQorCisvKioKKyAqIEVuc3VyZSBsaWdodHMgd2hpY2ggYXJlIG5vdCBzdXBwb3J0ZWQgcmV0dXJuIExJR0hUX05PVF9TVVBQT1JURUQKKyAqLworVEVTVF9GKExpZ2h0SGlkbFRlc3QsIFRlc3RVbnN1cHBvcnRlZCkgeworICAgIHN0ZDo6c2V0PFR5cGU+IHVuc3VwcG9ydGVkVHlwZXMgPSBrQWxsVHlwZXM7CisgICAgZm9yIChjb25zdCBUeXBlJiB0eXBlOiBzdXBwb3J0ZWRUeXBlcykgeworICAgICAgICB1bnN1cHBvcnRlZFR5cGVzLmVyYXNlKHR5cGUpOworICAgIH0KKworICAgIGZvciAoY29uc3QgVHlwZSYgdHlwZTogdW5zdXBwb3J0ZWRUeXBlcykgeworICAgICAgICBSZXR1cm48U3RhdHVzPiByZXQgPSBsaWdodC0+c2V0TGlnaHQodHlwZSwga1doaXRlKTsKKyAgICAgICAgRVhQRUNUX09LKHJldCk7CisgICAgICAgIEVYUEVDVF9FUShTdGF0dXM6OkxJR0hUX05PVF9TVVBQT1JURUQsIHN0YXRpY19jYXN0PFN0YXR1cz4ocmV0KSk7CisgICAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICAgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvbGlnaHQvQW5kcm9pZC5icCBiL2xpZ2h0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQyYzk4NgotLS0gL2Rldi9udWxsCisrKyBiL2xpZ2h0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICIyLjAiLAorICAgICIyLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvbWVkaWEvMS4wL0FuZHJvaWQuYnAgYi9tZWRpYS8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MWVlYjNmCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1OCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVkaWFAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhLzEuMC90eXBlcy5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvMS4wL2h3dHlwZXMuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9tZWRpYS8xLjAvQW5kcm9pZC5tayBiL21lZGlhLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjNDRiOWUKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE0IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBtZWRpYV9wcm9maWxlc19WMV8wLmR0ZAorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKKworTE9DQUxfTU9EVUxFIDo9IG1lZGlhX3Byb2ZpbGVzX1YxXzAuZHRkCitMT0NBTF9TUkNfRklMRVMgOj0gbWVkaWFfcHJvZmlsZXMuZHRkCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gRVRDCitMT0NBTF9NT0RVTEVfUEFUSCA6PSAkKFRBUkdFVF9PVVRfRVRDKQorCitpbmNsdWRlICQoQlVJTERfUFJFQlVJTFQpCisKZGlmZiAtLWdpdCBhL21lZGlhLzEuMC9tZWRpYV9wcm9maWxlcy5kdGQgYi9tZWRpYS8xLjAvbWVkaWFfcHJvZmlsZXMuZHRkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwOTAwZTAKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS8xLjAvbWVkaWFfcHJvZmlsZXMuZHRkCkBAIC0wLDAgKzEsNTYgQEAKKzwhRUxFTUVOVCBNZWRpYVNldHRpbmdzIChDYW1jb3JkZXJQcm9maWxlcyssCisgICAgICAgICAgICAgICAgICAgICAgICAgRW5jb2Rlck91dHB1dEZpbGVGb3JtYXQrLAorICAgICAgICAgICAgICAgICAgICAgICAgIFZpZGVvRW5jb2RlckNhcCssCisgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9FbmNvZGVyQ2FwKywKKyAgICAgICAgICAgICAgICAgICAgICAgICBWaWRlb0RlY29kZXJDYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9EZWNvZGVyQ2FwKT4KKzwhRUxFTUVOVCBDYW1jb3JkZXJQcm9maWxlcyAoRW5jb2RlclByb2ZpbGV8SW1hZ2VFbmNvZGluZ3xJbWFnZURlY29kaW5nfENhbWVyYSkrPgorPCFBVFRMSVNUIENhbWNvcmRlclByb2ZpbGVzIGNhbWVyYUlkICgwfDEpICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBFbmNvZGVyUHJvZmlsZSAoVmlkZW8sIEF1ZGlvKT4KKzwhQVRUTElTVCBFbmNvZGVyUHJvZmlsZSBxdWFsaXR5IENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBFbmNvZGVyUHJvZmlsZSBmaWxlRm9ybWF0IChtcDR8M2dwKSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgRW5jb2RlclByb2ZpbGUgZHVyYXRpb24gKDMwfDYwKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgVmlkZW8gRU1QVFk+Cis8IUFUVExJU1QgVmlkZW8gY29kZWMgKGgyNjR8aDI2M3xtNHYpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlbyBiaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlbyB3aWR0aCBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW8gaGVpZ2h0IENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlbyBmcmFtZVJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFFTEVNRU5UIEF1ZGlvIEVNUFRZPgorPCFBVFRMSVNUIEF1ZGlvIGNvZGVjIChhbXJuYnxhbXJ3YnxhYWMpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpbyBiaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpbyBzYW1wbGVSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpbyBjaGFubmVscyAoMXwyKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgSW1hZ2VFbmNvZGluZyBFTVBUWT4KKzwhQVRUTElTVCBJbWFnZUVuY29kaW5nIHF1YWxpdHkgKDk1fDkwfDgwfDcwfDYwfDUwfDQwKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgSW1hZ2VEZWNvZGluZyBFTVBUWT4KKzwhQVRUTElTVCBJbWFnZURlY29kaW5nIG1lbUNhcCBDREFUQSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgQ2FtZXJhIEVNUFRZPgorPCFFTEVNRU5UIEVuY29kZXJPdXRwdXRGaWxlRm9ybWF0IEVNUFRZPgorPCFBVFRMSVNUIEVuY29kZXJPdXRwdXRGaWxlRm9ybWF0IG5hbWUgKG1wNHwzZ3ApICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBWaWRlb0VuY29kZXJDYXAgRU1QVFk+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG5hbWUgKGhldmN8aDI2NHxoMjYzfG00dnx3bXYpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0VuY29kZXJDYXAgZW5hYmxlZCAodHJ1ZXxmYWxzZSkgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBtaW5CaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0VuY29kZXJDYXAgbWF4Qml0UmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG1pbkZyYW1lV2lkdGggQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBtYXhGcmFtZVdpZHRoIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBWaWRlb0VuY29kZXJDYXAgbWluRnJhbWVIZWlnaHQgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRW5jb2RlckNhcCBtYXhGcmFtZUhlaWdodCBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG1pbkZyYW1lUmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgVmlkZW9FbmNvZGVyQ2FwIG1heEZyYW1lUmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgQXVkaW9FbmNvZGVyQ2FwIEVNUFRZPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBuYW1lIChhbXJuYnxhbXJ3YnxhYWN8d21hfGhlYWFjfGFhY2VsZCkgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBlbmFibGVkICh0cnVlfGZhbHNlKSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW9FbmNvZGVyQ2FwIG1pbkJpdFJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBtYXhCaXRSYXRlIENEQVRBICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpb0VuY29kZXJDYXAgbWluU2FtcGxlUmF0ZSBDREFUQSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW9FbmNvZGVyQ2FwIG1heFNhbXBsZVJhdGUgQ0RBVEEgI1JFUVVJUkVEPgorPCFBVFRMSVNUIEF1ZGlvRW5jb2RlckNhcCBtaW5DaGFubmVscyAoMXwyKSAjUkVRVUlSRUQ+Cis8IUFUVExJU1QgQXVkaW9FbmNvZGVyQ2FwIG1heENoYW5uZWxzICgxfDIpICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBWaWRlb0RlY29kZXJDYXAgRU1QVFk+Cis8IUFUVExJU1QgVmlkZW9EZWNvZGVyQ2FwIG5hbWUgKHdtdikgI1JFUVVJUkVEPgorPCFBVFRMSVNUIFZpZGVvRGVjb2RlckNhcCBlbmFibGVkICh0cnVlfGZhbHNlKSAjUkVRVUlSRUQ+Cis8IUVMRU1FTlQgQXVkaW9EZWNvZGVyQ2FwIEVNUFRZPgorPCFBVFRMSVNUIEF1ZGlvRGVjb2RlckNhcCBuYW1lICh3bWEpICNSRVFVSVJFRD4KKzwhQVRUTElTVCBBdWRpb0RlY29kZXJDYXAgZW5hYmxlZCAodHJ1ZXxmYWxzZSkgI1JFUVVJUkVEPgpkaWZmIC0tZ2l0IGEvbWVkaWEvMS4wL3R5cGVzLmhhbCBiL21lZGlhLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIxYTczYgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhLzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmNvbW1vbkAxLjA6OlBpeGVsRm9ybWF0OworCisvKioKKyAqIEFsaWFzZXMKKyAqLwordHlwZWRlZiBoYW5kbGUgRmlsZURlc2NyaXB0b3I7IC8vIFRoaXMgbXVzdCBoYXZlIG5vIG1vcmUgdGhhbiBvbmUgZmQuCit0eXBlZGVmIEZpbGVEZXNjcmlwdG9yIEZlbmNlOwordHlwZWRlZiB2ZWM8dWludDhfdD4gQnl0ZXM7CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL3VpL0dyYXBoaWNCdWZmZXIuaAorICogUmVmOiBzeXN0ZW0vY29yZS9pbmNsdWRlL3N5c3RlbS93aW5kb3cuaDogQU5hdGl2ZVdpbmRvd0J1ZmZlcgorICovCisKKy8qKgorICogVGhpcyBzdHJ1Y3QgY29udGFpbnMgYXR0cmlidXRlcyBmb3IgYSBncmFsbG9jIGJ1ZmZlciB0aGF0IGNhbiBiZSBwdXQgaW50byBhCisgKiB1bmlvbi4KKyAqLworc3RydWN0IEFud0J1ZmZlckF0dHJpYnV0ZXMgeworICAgIHVpbnQzMl90IHdpZHRoOworICAgIHVpbnQzMl90IGhlaWdodDsKKyAgICB1aW50MzJfdCBzdHJpZGU7CisgICAgUGl4ZWxGb3JtYXQgZm9ybWF0OworICAgIHVpbnQzMl90IHVzYWdlOyAvLyBUT0RPOiBjb252ZXJ0IHRvIGFuIGVudW0KKyAgICB1aW50MzJfdCBnZW5lcmF0aW9uTnVtYmVyOworICAgIHVpbnQ2NF90IGxheWVyQ291bnQ7CisgICAgdWludDY0X3QgaWQ7Cit9OworCisvKioKKyAqIEFuIEFud0J1ZmZlciBpcyBzaW1wbHkgQW53QnVmZmVyQXR0cmlidXRlcyBwbHVzIGEgbmF0aXZlIGhhbmRsZS4KKyAqLworc3RydWN0IEFud0J1ZmZlciB7CisgICAgaGFuZGxlIG5hdGl2ZUhhbmRsZTsKKyAgICBBbndCdWZmZXJBdHRyaWJ1dGVzIGF0dHI7Cit9OworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9hbmRyb2lkL3JlY3QuaAorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9pbmNsdWRlL3VpL1JlY3QuaAorICovCitzdHJ1Y3QgUmVjdCB7CisgICAgaW50MzJfdCBsZWZ0OworICAgIGludDMyX3QgdG9wOworICAgIGludDMyX3QgcmlnaHQ7CisgICAgaW50MzJfdCBib3R0b207Cit9OworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS91aS9SZWdpb24uaAorICovCit0eXBlZGVmIHZlYzxSZWN0PiBSZWdpb247CisKZGlmZiAtLWdpdCBhL21lZGlhL0FuZHJvaWQuYnAgYi9tZWRpYS9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyNWE2MDkKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsOSBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMS4wIiwKKyAgICAib214LzEuMCIsCisgICAgIm9teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8iLAorICAgICJvbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbXBvbmVudCIsCisgICAgIm9teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyIiwKKyAgICAib214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlbyIsCitdCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL0FuZHJvaWQuYnAgYi9tZWRpYS9vbXgvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU1NTI3ZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDEwNCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSUdyYXBoaWNCdWZmZXJTb3VyY2UuaGFsIiwKKyAgICAgICAgIklPbXguaGFsIiwKKyAgICAgICAgIklPbXhCdWZmZXJTb3VyY2UuaGFsIiwKKyAgICAgICAgIklPbXhOb2RlLmhhbCIsCisgICAgICAgICJJT214T2JzZXJ2ZXIuaGFsIiwKKyAgICAgICAgIklPbXhTdG9yZS5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvR3JhcGhpY0J1ZmZlclNvdXJjZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL09teEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL09teEJ1ZmZlclNvdXJjZUFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL09teE5vZGVBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9PbXhPYnNlcnZlckFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL09teFN0b3JlQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lHcmFwaGljQnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lId0dyYXBoaWNCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQm5Id0dyYXBoaWNCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnBId0dyYXBoaWNCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnNHcmFwaGljQnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSUh3T214LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JuSHdPbXguaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnBId09teC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cc09teC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214QnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lId09teEJ1ZmZlclNvdXJjZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cbkh3T214QnVmZmVyU291cmNlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JwSHdPbXhCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnNPbXhCdWZmZXJTb3VyY2UuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSUh3T214Tm9kZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cbkh3T214Tm9kZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9CcEh3T214Tm9kZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cc09teE5vZGUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lId09teE9ic2VydmVyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JuSHdPbXhPYnNlcnZlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9CcEh3T214T2JzZXJ2ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQnNPbXhPYnNlcnZlci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214U3RvcmUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSUh3T214U3RvcmUuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvQm5Id09teFN0b3JlLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0JwSHdPbXhTdG9yZS5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9Cc09teFN0b3JlLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMF9nZW5jKysiXSwKKyAgICBnZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuYnVmZmVycXVldWVAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvSUdyYXBoaWNCdWZmZXJTb3VyY2UuaGFsIGIvbWVkaWEvb214LzEuMC9JR3JhcGhpY0J1ZmZlclNvdXJjZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk0ZDBjYgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSUdyYXBoaWNCdWZmZXJTb3VyY2UuaGFsCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMDo6RGF0YXNwYWNlOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OnR5cGVzOworCitpbXBvcnQgSU9teE5vZGU7CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL2F2L21lZGlhL2xpYm1lZGlhL2FpZGwvYW5kcm9pZC9JR3JhcGhpY0J1ZmZlclNvdXJjZS5haWRsCisgKgorICogVE9ETzogQWRkIGRvY3VtZW50YXRpb25zLgorICovCitpbnRlcmZhY2UgSUdyYXBoaWNCdWZmZXJTb3VyY2UgeworCisgICAgY29uZmlndXJlKElPbXhOb2RlIG9teE5vZGUsIERhdGFzcGFjZSBkYXRhc3BhY2UpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICBzZXRTdXNwZW5kKGJvb2wgc3VzcGVuZCwgaW50NjRfdCB0aW1lVXMpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICBzZXRSZXBlYXRQcmV2aW91c0ZyYW1lRGVsYXlVcyhpbnQ2NF90IHJlcGVhdEFmdGVyVXMpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKKyAgICBzZXRNYXhGcHMoZmxvYXQgbWF4RnBzKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgc2V0VGltZUxhcHNlQ29uZmlnKGRvdWJsZSBmcHMsIGRvdWJsZSBjYXB0dXJlRnBzKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgc2V0U3RhcnRUaW1lVXMoaW50NjRfdCBzdGFydFRpbWVVcykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIHNldFN0b3BUaW1lVXMoaW50NjRfdCBzdG9wVGltZVVzKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgICAgZ2V0U3RvcFRpbWVPZmZzZXRVcygpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgaW50NjRfdCBzdG9wVGltZU9mZnNldFVzKTsKKworICAgIHNldENvbG9yQXNwZWN0cyhDb2xvckFzcGVjdHMgYXNwZWN0cykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIHNldFRpbWVPZmZzZXRVcyhpbnQ2NF90IHRpbWVPZmZzZXRVcykgZ2VuZXJhdGVzIChTdGF0dXMgc3RhdHVzKTsKKworICAgIHNpZ25hbEVuZE9mSW5wdXRTdHJlYW0oKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCit9OworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL0lPbXguaGFsIGIvbWVkaWEvb214LzEuMC9JT214LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWZjNDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC9JT214LmhhbApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmdyYXBoaWNzLmJ1ZmZlcnF1ZXVlQDEuMDo6SUdyYXBoaWNCdWZmZXJQcm9kdWNlcjsKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMDo6dHlwZXM7CisKK2ltcG9ydCBJT214Tm9kZTsKK2ltcG9ydCBJT214T2JzZXJ2ZXI7CitpbXBvcnQgSUdyYXBoaWNCdWZmZXJTb3VyY2U7CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvbWVkaWEvSU9NWC5oOiBJT01YCisgKgorICogSU9teCBoYXMgdGhlIGFiaWxpdHkgdG8gY3JlYXRlIE9NWCBub2Rlcy4KKyAqLworaW50ZXJmYWNlIElPbXggeworCisgICAgLyoqCisgICAgICogSW5mb3JtYXRpb24gZm9yIGFuIElPbXhOb2RlIGNvbXBvbmVudC4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgQ29tcG9uZW50SW5mbyB7CisgICAgICAgIHN0cmluZyBtTmFtZTsKKyAgICAgICAgdmVjPHN0cmluZz4gbVJvbGVzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBMaXN0IGF2YWlsYWJsZSBjb21wb25lbnRzLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIG5vZGVMaXN0IFRoZSBsaXN0IG9mIENvbXBvbmVudEluZm8uCisgICAgICovCisgICAgbGlzdE5vZGVzKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgdmVjPENvbXBvbmVudEluZm8+IG5vZGVMaXN0CisgICAgICAgICk7CisKKworICAgIC8qKgorICAgICAqIEFsbG9jYXRlIGFuIElPbXhOb2RlIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBub2RlIG5hbWUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgbm9kZSB0byBjcmVhdGUuCisgICAgICogQHBhcmFtIG9ic2VydmVyIEFuIG9ic2VydmVyIG9iamVjdCB0aGF0IHdpbGwgcmVjZWl2ZSBtZXNzYWdlcyBmcm9tCisgICAgICogdGhlIGNyZWF0ZWQgaW5zdGFuY2UuCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIG9teE5vZGUgVGhlIGFsbG9jYXRlZCBpbnN0YW5jZSBvZiBgSU9teE5vZGVgLgorICAgICAqLworICAgIGFsbG9jYXRlTm9kZSgKKyAgICAgICAgICAgIHN0cmluZyBuYW1lLAorICAgICAgICAgICAgSU9teE9ic2VydmVyIG9ic2VydmVyCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBJT214Tm9kZSBvbXhOb2RlCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBDcmVhdGUgYW4gaW5wdXQgc3VyZmFjZSBmb3IgcmVjb3JkaW5nLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgVGhlIHN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIHByb2R1Y2VyIFRoZSBhc3NvY2lhdGVkIHByb2R1Y2VyIGVuZCBvZiB0aGUgYnVmZmVyIHF1ZXVlLgorICAgICAqIEByZXR1cm4gc291cmNlIFRoZSBhc3NvY2lhdGVkIGBJR3JhcGhpY0J1ZmZlclNvdXJjZWAuCisgICAgICovCisgICAgY3JlYXRlSW5wdXRTdXJmYWNlKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgSUdyYXBoaWNCdWZmZXJQcm9kdWNlciBwcm9kdWNlciwKKyAgICAgICAgICAgIElHcmFwaGljQnVmZmVyU291cmNlIHNvdXJjZQorICAgICAgICApOworfTsKKwpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC9JT214QnVmZmVyU291cmNlLmhhbCBiL21lZGlhL29teC8xLjAvSU9teEJ1ZmZlclNvdXJjZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRjNDNmYwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSU9teEJ1ZmZlclNvdXJjZS5oYWwKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OnR5cGVzOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9tZWRpYS9saWJtZWRpYS9haWRsL2FuZHJvaWQvSU9NWEJ1ZmZlclNvdXJjZS5haWRsCisgKgorICogSU9teEJ1ZmZlclNvdXJjZSBpcyBhbiBpbnRlcmZhY2UgZm9yIGEgbGlzdGVuZXIgZm9yIGNlcnRhaW4gZXZlbnRzIGZyb20gYW4KKyAqIElPbXhOb2RlIGluc3RhbmNlLiBVc2UgSU9teE5vZGU6OnNldElucHV0U3VyZmFjZSgpIHRvIGF0dGFjaCBhbgorICogSU9teEJ1ZmZlclNvdXJjZSBpbnN0YW5jZSB0byBhbiBJT214Tm9kZSBpbnN0YW5jZS4KKyAqCisgKiBAc2VlIE9NWF9TVEFURVRZUEUgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgKi8KK2ludGVyZmFjZSBJT214QnVmZmVyU291cmNlIHsKKworICAgIC8qKgorICAgICAqIG9uT214RXhlY3V0aW5nKCkgaXMgaW52b2tlZCB3aGVuIHRoZSBub2RlIHN0YXRlIGNoYW5nZXMgdG8KKyAgICAgKiBPTVhfU3RhdGVFeGVjdXRpbmcgc3RhdGUuCisgICAgICovCisgICAgb25ld2F5IG9uT214RXhlY3V0aW5nKCk7CisKKyAgICAvKioKKyAgICAgKiBvbk9teElkbGUoKSBpcyBpbnZva2VkIHdoZW4gdGhlIG5vZGUgdHJhbnNpdGlvbnMgZnJvbSBPTVhfU3RhdGVFeGVjdXRpbmcKKyAgICAgKiB0byBPTVhfU3RhdGVJZGxlLgorICAgICAqLworICAgIG9uZXdheSBvbk9teElkbGUoKTsKKworICAgIC8qKgorICAgICAqIG9uT214TG9hZGVkKCkgaXMgaW52b2tlZCB3aGVuIHRoZSBub2RlIHRyYW5zaXRpb25zIGZyb20gT01YX1N0YXRlSWRsZSBvcgorICAgICAqIE9NWF9TdGF0ZUV4ZWN1dGluZyB0byBPTVhfU3RhdGVMb2FkZWQuCisgICAgICovCisgICAgb25ld2F5IG9uT214TG9hZGVkKCk7CisKKyAgICAvKioKKyAgICAgKiBvbklucHV0QnVmZmVyQWRkZWQoKSBpcyBpbnZva2VkIGFmdGVyIGEgbmV3IGlucHV0IGJ1ZmZlciBpcyBhZGRlZCB0byB0aGUKKyAgICAgKiBub2RlLiBUaGlzIG1heSBoYXBwZW4gd2l0aGluIElPbXhOb2RlOjphbGxvY2F0ZVNlY3VyZUJ1ZmZlcigpIG9yCisgICAgICogSU9teE5vZGU6OnVzZUJ1ZmZlcigpLgorICAgICAqCisgICAgICogQHBhcmFtW2luXSBidWZmZXIgaXMgdGhlIGlkIG9mIHRoZSBhZGRlZCBidWZmZXIuCisgICAgICovCisgICAgb25ld2F5IG9uSW5wdXRCdWZmZXJBZGRlZChCdWZmZXJJZCBidWZmZXIpOworCisgICAgLyoqCisgICAgICogb25JbnB1dEJ1ZmZlckVtcHRpZWQoKSBpcyBpbnZva2VkIGFmdGVyIGFuIGlucHV0IGJ1ZmZlciBpcyBlbXB0aWVkLiBUaGlzCisgICAgICogbWF5IGhhcHBlbiB3aXRoaW4gSU9teE5vZGU6OmVtcHR5QnVmZmVyKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW1baW5dIGJ1ZmZlciBpcyB0aGUgaWQgb2YgdGhlIGVtcHRpZWQgYnVmZmVyLgorICAgICAqIEBwYXJhbVtpbl0gZmVuY2UgaXMgdGhlIGZlbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgYnVmZmVyLgorICAgICAqLworICAgIG9uZXdheSBvbklucHV0QnVmZmVyRW1wdGllZChCdWZmZXJJZCBidWZmZXIsIEZlbmNlIGZlbmNlKTsKK307CisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvSU9teE5vZGUuaGFsIGIvbWVkaWEvb214LzEuMC9JT214Tm9kZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFjMGRhMwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSU9teE5vZGUuaGFsCkBAIC0wLDAgKzEsMzU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA7CisKK2ltcG9ydCBJT214QnVmZmVyU291cmNlOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYUAxLjA6OnR5cGVzOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9pbmNsdWRlL21lZGlhL0lPTVguaDogSU9NWE5vZGUKKyAqIFJlZjogaHR0cHM6Ly93d3cua2hyb25vcy5vcmcvcmVnaXN0cnkvb214aWwvc3BlY3MvT3Blbk1BWF9JTF8xXzFfMl9TcGVjaWZpY2F0aW9uLnBkZgorICovCisKKy8qKgorICogSU9teE5vZGUgaXMgYW4gaW50ZXJmYWNlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggYW4gT01YIGNvbXBvbmVudCAoY2FsbGVkCisgKiAibm9kZSIgaGVyZSkgdGhhdCBoYXMgYmVlbiBwcmV2aW91c2x5IG9idGFpbmVkIGJ5IGNhbGxpbmcKKyAqIElPbXg6OmFsbG9jYXRlTm9kZSgpLgorICovCitpbnRlcmZhY2UgSU9teE5vZGUgeworCisgICAgLyoqCisgICAgICogRnJlZSB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKi8KKyAgICBmcmVlTm9kZSgKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogSW52b2tlIGEgY29tbWFuZCBvbiB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBjbWQgVHlwZSBvZiB0aGUgY29tbWFuZC4KKyAgICAgKiBAcGFyYW0gcGFyYW0gUGFyYW1ldGVyIGZvciB0aGUgY29tbWFuZC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9TZW5kQ29tbWFuZCgpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIHNlbmRDb21tYW5kKAorICAgICAgICAgICAgdWludDMyX3QgY21kLAorICAgICAgICAgICAgaW50MzJfdCBwYXJhbQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZSBhIHBhcmFtZXRlciBzZXR0aW5nIGZyb20gdGhlIG5vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaW5kZXggVHlwZSBvZiB0aGUgcGFyYW1ldGVyIHRvIHJldHJpZXZlLgorICAgICAqIEBwYXJhbSBpblBhcmFtcyBJbmZvcm1hdGlvbiBhYm91dCB0aGUgcmV0cmlldmFsLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIG91dFBhcmFtcyBDdXJyZW50IHBhcmFtZXRlciBzZXR0aW5nLgorICAgICAqCisgICAgICogQHNlZSBPTVhfR2V0UGFyYW1ldGVyKCkgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgICAgICovCisgICAgZ2V0UGFyYW1ldGVyKAorICAgICAgICAgICAgdWludDMyX3QgaW5kZXgsCisgICAgICAgICAgICBCeXRlcyBpblBhcmFtcworICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgQnl0ZXMgb3V0UGFyYW1zCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBDaGFuZ2UgYSBwYXJhbWV0ZXIgc2V0dGluZyBvZiB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCBUeXBlIG9mIHRoZSBwYXJhbWV0ZXIgdG8gY2hhbmdlLgorICAgICAqIEBwYXJhbSBwYXJhbXMgTmV3IHBhcmFtZXRlciBzZXR0aW5nLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX1NldFBhcmFtZXRlcigpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIHNldFBhcmFtZXRlcigKKyAgICAgICAgICAgIHVpbnQzMl90IGluZGV4LAorICAgICAgICAgICAgQnl0ZXMgcGFyYW1zCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIGEgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBub2RlLgorICAgICAqCisgICAgICogQHBhcmFtIGluZGV4IFR5cGUgb2YgdGhlIGNvbmZpZ3VyYXRpb24gdG8gcmV0cmlldmUuCisgICAgICogQHBhcmFtIGluQ29uZmlnIEluZm9ybWF0aW9uIGFib3V0IHRoZSByZXRyaWV2YWwuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqIEByZXR1cm4gb3V0Q29uZmlnIEN1cnJlbnQgY29uZmlndXJhdGlvbi4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX0dldENvbmZpZygpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIGdldENvbmZpZygKKyAgICAgICAgICAgIHVpbnQzMl90IGluZGV4LAorICAgICAgICAgICAgQnl0ZXMgaW5Db25maWcKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIEJ5dGVzIG91dENvbmZpZworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQ2hhbmdlIGEgY29uZmlndXJhdGlvbiBvZiB0aGUgbm9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbmRleCBUeXBlIG9mIHRoZSBjb25maWd1cmF0aW9uIHRvIGNoYW5nZS4KKyAgICAgKiBAcGFyYW0gY29uZmlnIE5ldyBjb25maWd1cmF0aW9uLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX1NldENvbmZpZygpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIHNldENvbmZpZygKKyAgICAgICAgICAgIHVpbnQzMl90IGluZGV4LAorICAgICAgICAgICAgQnl0ZXMgY29uZmlnCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFNldCB0aGUgbW9kZSBvZiBhIHBvcnQgb24gdGhlIG5vZGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSBtb2RlIFRhcmdldCBtb2RlIG9uIHRoZSBzcGVjaWZpZWQgcG9ydC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICovCisgICAgc2V0UG9ydE1vZGUoCisgICAgICAgICAgICB1aW50MzJfdCBwb3J0SW5kZXgsCisgICAgICAgICAgICBQb3J0TW9kZSBtb2RlCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFByZXBhcmUgYSBwb3J0IGZvciBhZGFwdGl2ZSBwbGF5YmFjay4gVGhpcyBpcyBiYXNlZCBvbiB0aGUgZXh0ZW5zaW9uCisgICAgICogIk9NWC5nb29nbGUuYW5kcm9pZC5pbmRleC5wcmVwYXJlRm9yQWRhcHRpdmVQbGF5YmFjayIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSBlbmFibGUgV2hldGhlciB0aGUgYWRhcHRpdmUgcGxheWJhY2sgaXMgZW5hYmxlZCBvciBub3QuCisgICAgICogQHBhcmFtIG1heEZyYW1lV2lkdGggTWF4aW11bSBmcmFtZSB3aWR0aC4KKyAgICAgKiBAcGFyYW0gbWF4RnJhbWVIZWlnaHQgTWF4aW11bSBmcmFtZSBoZWlnaHQuCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqLworICAgIHByZXBhcmVGb3JBZGFwdGl2ZVBsYXliYWNrKAorICAgICAgICAgICAgdWludDMyX3QgcG9ydEluZGV4LAorICAgICAgICAgICAgYm9vbCBlbmFibGUsCisgICAgICAgICAgICB1aW50MzJfdCBtYXhGcmFtZVdpZHRoLAorICAgICAgICAgICAgdWludDMyX3QgbWF4RnJhbWVIZWlnaHQKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworCisgICAgLyoqCisgICAgICogQ29uZmlndXJlIGEgcG9ydCBmb3IgYSB0dW5uZWxlZCBwbGF5YmFjayBtb2RlLiBUaGlzIGlzIGJhc2VkIG9uIHRoZQorICAgICAqIGV4dGVuc2lvbiAiT01YLmdvb2dsZS5hbmRyb2lkLmluZGV4LmNvbmZpZ3VyZVZpZGVvVHVubmVsTW9kZSIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSB0dW5uZWxlZCBXaGV0aGVyIHRoZSB0dW5uZWxlZCBtb2RlIGlzIHVzZWQgb3Igbm90LgorICAgICAqIEBwYXJhbSBhdWRpb0h3U3luYyBIVyBTWU5DIElEIG9mIHRoZSBhdWRpbyBIQUwgb3V0cHV0IHN0cmVhbSB0byBzeW5jCisgICAgICogdGhlIHZpZGVvIHdpdGguCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBjYWxsLgorICAgICAqIEByZXR1cm4gc2lkZWJhbmRIYW5kbGUgQ29kZWMtYWxsb2NhdGVkIHNpZGViYW5kIHdpbmRvdyBoYW5kbGUuCisgICAgICovCisgICAgY29uZmlndXJlVmlkZW9UdW5uZWxNb2RlKAorICAgICAgICAgICAgdWludDMyX3QgcG9ydEluZGV4LAorICAgICAgICAgICAgYm9vbCB0dW5uZWxlZCwKKyAgICAgICAgICAgIHVpbnQzMl90IGF1ZGlvSHdTeW5jCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBoYW5kbGUgc2lkZWJhbmRIYW5kbGUKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlIHRoZSBidWZmZXIgdXNhZ2Ugb24gYSBwb3J0LiBUaGlzIGlzIGJhc2VkIG9uIHRoZSBleHRlbnNpb24KKyAgICAgKiAiT01YLmdvb2dsZS5hbmRyb2lkLmluZGV4LmdldEFuZHJvaWROYXRpdmVCdWZmZXJVc2FnZSIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIHVzYWdlIEN1cnJlbnQgZ3JhcGhpYyBidWZmZXIgdXNhZ2UuCisgICAgICovCisgICAgZ2V0R3JhcGhpY0J1ZmZlclVzYWdlKAorICAgICAgICAgICAgdWludDMyX3QgcG9ydEluZGV4CisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICB1aW50MzJfdCB1c2FnZQorICAgICAgICApOworCisgICAgLyoqCisgICAgICogU2V0IHVwIGEgbGlzdGVuZXIgdG8gZXZlbnRzIHJlbGF0ZWQgdG8gdGhlIGlucHV0IHN1cmZhY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gYnVmZmVyU291cmNlIExpc3RlbmVyIG9iamVjdCB0aGF0IGltcGxlbWVudHMKKyAgICAgKiBJT214QnVmZmVyU291cmNlLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgSU9teEJ1ZmZlclNvdXJjZS4KKyAgICAgKi8KKyAgICBzZXRJbnB1dFN1cmZhY2UoCisgICAgICAgICAgICBJT214QnVmZmVyU291cmNlIGJ1ZmZlclNvdXJjZQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBBbGxvY2F0ZSBhbiBvcGFxdWUgYnVmZmVyIG9uIGEgcG9ydCBhcyBhIG5hdGl2ZSBoYW5kbGUuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSBzaXplIERlc2lyZWQgc2l6ZSBvZiB0aGUgYnVmZmVyLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKiBAcmV0dXJuIGJ1ZmZlciBJZCBvZiB0aGUgYWxsb2NhdGVkIGJ1ZmZlciwgd2hpY2ggd2lsbCBiZSBuZWVkZWQgaW4KKyAgICAgKiBvdGhlciBidWZmZXItcmVsYXRlZCBmdW5jdGlvbnMuCisgICAgICogQHJldHVybiBuYXRpdmVIYW5kbGUgTmF0aXZlIGhhbmRsZSBvZiB0aGUgYWxsb2NhdGVkIGJ1ZmZlci4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX0FsbG9jYXRlQnVmZmVyKCkgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgICAgICovCisgICAgYWxsb2NhdGVTZWN1cmVCdWZmZXIoCisgICAgICAgICAgICB1aW50MzJfdCBwb3J0SW5kZXgsCisgICAgICAgICAgICB1aW50NjRfdCBzaXplCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICBCdWZmZXJJZCBidWZmZXIsCisgICAgICAgICAgICBoYW5kbGUgbmF0aXZlSGFuZGxlCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBBc3NpZ24gYSBidWZmZXIgdG8gYSBwb3J0LgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJbmRleCBJbmRleCBvZiB0aGUgcG9ydC4KKyAgICAgKiBAcGFyYW0gb214QnVmZmVyIEJ1ZmZlciB0byBiZSBhc3NpZ25lZCB0byB0aGUgcG9ydC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICogQHJldHVybiBidWZmZXIgSWQgb2YgdGhlIGFzc2lnbmVkIGJ1ZmZlciwgd2hpY2ggd2lsbCBiZSBuZWVkZWQgaW4KKyAgICAgKiBvdGhlciBidWZmZXItcmVsYXRlZCBmdW5jdGlvbnMuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9Vc2VCdWZmZXIoKSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICB1c2VCdWZmZXIoCisgICAgICAgICAgICB1aW50MzJfdCBwb3J0SW5kZXgsCisgICAgICAgICAgICBDb2RlY0J1ZmZlciBvbXhCdWZmZXIKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cywKKyAgICAgICAgICAgIEJ1ZmZlcklkIGJ1ZmZlcgorICAgICAgICApOworCisgICAgLyoqCisgICAgICogRnJlZSBhIGJ1ZmZlciBwcmV2aW91c2x5IGFzc2lnbmVkIHRvIGEgcG9ydCBieSBhbGxvY2F0ZVNlY3VyZUJ1ZmZlcigpIG9yCisgICAgICogdXNlQnVmZmVyKCkuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydEluZGV4IEluZGV4IG9mIHRoZSBwb3J0LgorICAgICAqIEBwYXJhbSBidWZmZXIgSWQgb2YgdGhlIGJ1ZmZlciB0byBiZSBmcmVlZC4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9GcmVlQnVmZmVyKCkgaW4gdGhlIE9wZW5NYXggSUwgc3RhbmRhcmQuCisgICAgICovCisgICAgZnJlZUJ1ZmZlcigKKyAgICAgICAgICAgIHVpbnQzMl90IHBvcnRJbmRleCwKKyAgICAgICAgICAgIEJ1ZmZlcklkIGJ1ZmZlcgorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBQYXNzIFxwIGZlbmNlIHRvIHRoZSBub2RlIGlmIGl0IHN1cHBvcnRzIGZlbmNlcy4gT3RoZXJ3aXNlLCBpdCB3YWl0cyBvbgorICAgICAqIFxwIGZlbmNlIGJlZm9yZSBjYWxsaW5nIE9NWF9GaWxsVGhpc0J1ZmZlcigpLiBUaGUgbm9kZSB3aWxsIHRha2UKKyAgICAgKiBvd25lcnNoaXAgb2YgdGhlIGZlbmNlIGV2ZW4gaWYgdGhpcyBjYWxsIGZhaWxzLgorICAgICAqCisgICAgICogSWYgdGhlIHBvcnQgaXMgaW4gbWV0YWRhdGEgbW9kZSwgdGhlIGJ1ZmZlciB3aWxsIGJlIHVwZGF0ZWQgdG8gcG9pbnQgdG8KKyAgICAgKiB0aGUgbmV3IGJ1ZmZlciBwYXNzZWQgaW4gdmlhIFxwIG9teEJ1ZmZlciBiZWZvcmUgT01YX0ZpbGxUaGlzQnVmZmVyKCkgaXMKKyAgICAgKiBjYWxsZWQuIE90aGVyd2lzZSwgXHAgb214QnVmZmVyIGlzIG5vdCB1c2VkLgorICAgICAqCisgICAgICogQHBhcmFtIGJ1ZmZlciBJZCBvZiB0aGUgYnVmZmVyIHRvIGZpbGwuCisgICAgICogQHBhcmFtIG9teEJ1ZmZlciBOZXcgYnVmZmVyIGluZm9ybWF0aW9uIChpbiBtZXRhZGF0YSBtb2RlKS4KKyAgICAgKiBAcGFyYW0gZmVuY2UgRmVuY2UgdG8gd2FpdCBmb3IgKGlmIG5vdCBudWxsKS4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICoKKyAgICAgKiBAc2VlIE9NWF9GaWxsVGhpc0J1ZmZlcigpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIGZpbGxCdWZmZXIoCisgICAgICAgICAgICBCdWZmZXJJZCBidWZmZXIsCisgICAgICAgICAgICBDb2RlY0J1ZmZlciBvbXhCdWZmZXIsCisgICAgICAgICAgICBGZW5jZSBmZW5jZQorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzCisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBQYXNzIFxwIGZlbmNlIHRvIHRoZSBub2RlIGlmIGl0IHN1cHBvcnRzIGZlbmNlcy4gT3RoZXJ3aXNlLCB3YWl0IG9uCisgICAgICogXHAgZmVuY2UgYmVmb3JlIGNhbGxpbmcgT01YX0VtcHR5VGhpc0J1ZmZlcigpLiBUaGUgbm9kZSB3aWxsIHRha2UKKyAgICAgKiBvd25lcnNoaXAgb2YgdGhlIGZlbmNlIGV2ZW4gaWYgdGhpcyBjYWxsIGZhaWxzLgorICAgICAqCisgICAgICogSWYgdGhlIHBvcnQgaXMgaW4gbWV0YWRhdGEgbW9kZSwgdGhlIGJ1ZmZlciB3aWxsIGJlIHVwZGF0ZWQgdG8gcG9pbnQgdG8KKyAgICAgKiB0aGUgbmV3IGJ1ZmZlciBwYXNzZWQgaW4gdmlhIFxwIG9teEJ1ZmZlciBiZWZvcmUgT01YX0VtcHR5VGhpc0J1ZmZlcigpIGlzCisgICAgICogY2FsbGVkLiBPdGhlcndpc2UsIFxwIG9teEJ1ZmZlciBpcyBub3QgdXNlZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBidWZmZXIgSWQgb2YgdGhlIGJ1ZmZlciB0byBmaWxsLgorICAgICAqIEBwYXJhbSBvbXhCdWZmZXIgTmV3IGJ1ZmZlciBpbmZvcm1hdGlvbiAoaW4gbWV0YWRhdGEgbW9kZSkuCisgICAgICogQHBhcmFtIGZsYWdzIEZsYWdzIHRvIGJlIHBhc3NlZCB0byBPTVhfRW1wdHlCdWZmZXIoKS4KKyAgICAgKiBAcGFyYW0gdGltZXN0YW1wVXMgVGltZXN0YW1wIE9NWF9FbXB0eUJ1ZmZlcigpLgorICAgICAqIEBwYXJhbSBmZW5jZSBGZW5jZSB0byB3YWl0IGZvciAoaWYgbm90IG51bGwpLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgT01YX0VtcHR5VGhpc0J1ZmZlcigpIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIGVtcHR5QnVmZmVyKAorICAgICAgICAgICAgQnVmZmVySWQgYnVmZmVyLAorICAgICAgICAgICAgQ29kZWNCdWZmZXIgb214QnVmZmVyLAorICAgICAgICAgICAgdWludDMyX3QgZmxhZ3MsCisgICAgICAgICAgICB1aW50NjRfdCB0aW1lc3RhbXBVcywKKyAgICAgICAgICAgIEZlbmNlIGZlbmNlCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIFJlcXVlc3QgdGhlIG5vZGUgdG8gdHJhbnNsYXRlIGFuIGV4dGVuc2lvbiBzdHJpbmcgdG8gYW4gaW5kZXguCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGFyYW1ldGVyTmFtZSBSZXF1ZXN0ZWQgZXh0ZW5zaW9uIHN0cmluZy4KKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIGNhbGwuCisgICAgICogQHJldHVybiBpbmRleCBUcmFuc2xhdGVkIGluZGV4LgorICAgICAqCisgICAgICogQHNlZSBPTVhfR2V0RXh0ZW5zaW9uSW5kZXgoKSBpbiB0aGUgT3Blbk1heCBJTCBzdGFuZGFyZC4KKyAgICAgKi8KKyAgICBnZXRFeHRlbnNpb25JbmRleCgKKyAgICAgICAgICAgIHN0cmluZyBwYXJhbWV0ZXJOYW1lCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIFN0YXR1cyBzdGF0dXMsCisgICAgICAgICAgICB1aW50MzJfdCBpbmRleAorICAgICAgICApOworCisgICAgLyoqCisgICAgICogQWRkIGFuIE9NWCBtZXNzYWdlIG9uIHRoZSBub2RlJ3MgbWVzc2FnZSBxdWV1ZS4gVGhlIGluc3RhbmNlIG9mCisgICAgICogSU9teE9ic2VydmVyIHRoYXQgd2FzIG9idGFpbmVkIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgdGhlIG5vZGUgd2lsbAorICAgICAqIHJlY2VpdmUgdGhlIG1lc3NhZ2UgaW4gYmF0Y2hlcyBieSB0aGUgY2FsbGJhY2sKKyAgICAgKiBJT214T2JzZXJ2ZXI6Om9uTWVzc2FnZXMoKS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBtc2cgTWVzc2FnZSB0byBzZW5kLgorICAgICAqIEByZXR1cm4gc3RhdHVzIFN0YXR1cyBvZiB0aGUgY2FsbC4KKyAgICAgKgorICAgICAqIEBzZWUgSU9teE9ic2VydmVyOjpvbk1lc3NhZ2VzKCkuCisgICAgICovCisgICAgZGlzcGF0Y2hNZXNzYWdlKAorICAgICAgICAgICAgTWVzc2FnZSBtc2cKKyAgICAgICAgKSBnZW5lcmF0ZXMgKAorICAgICAgICAgICAgU3RhdHVzIHN0YXR1cworICAgICAgICApOworfTsKKwpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaGFsIGIvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyNmE5MzcKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oYWwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9pbmNsdWRlL21lZGlhL0lPTVguaDogSU9NWE9ic2VydmVyCisgKi8KKworLyoqCisgKiBJT214T2JzZXJ2ZXIgaXMgYSBsaXN0ZW5lciBpbnRlcmZhY2UgZm9yIE9NWCBtZXNzYWdlcyBzZW50IGZyb20gYW4gSU9teE5vZGUKKyAqIHN0YW5jZS4KKyAqLworaW50ZXJmYWNlIElPbXhPYnNlcnZlciB7CisKKyAgICAvKioKKyAgICAgKiBJbnZva2VkIHRvIHByb2Nlc3MgbWVzc2FnZXMgZnJvbSBhbiBJT214Tm9kZSBpbnN0YW5jZS4gTm90ZSB0aGF0IG1lc3NhZ2VzCisgICAgICogY29tZSBpbiBiYXRjaGVzLgorICAgICAqLworICAgIG9uZXdheSBvbk1lc3NhZ2VzKHZlYzxNZXNzYWdlPiBtZXNzYWdlcyk7Cit9OworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL0lPbXhTdG9yZS5oYWwgYi9tZWRpYS9vbXgvMS4wL0lPbXhTdG9yZS5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTIyNGIwZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvSU9teFN0b3JlLmhhbApAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wOworCitpbXBvcnQgSU9teDsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvaW5jbHVkZS9tZWRpYS9JT01YLmg6IElPTVgKKyAqCisgKiBUaGVyZSB3aWxsIGJlIHR3byBpbnN0YW5jZXMgb2YgSU9teFN0b3JlOiAicGxhdGZvcm0iIGFuZCAidmVuZG9yIi4KKyAqCisgKiBUaGUgSU9teFN0b3JlIHNlcnZpY2UgcHJvdmlkZWQgYnkgdGhlIHBsYXRmb3JtIG11c3QgcHJlc2VudCAicGxhdGZvcm0iIGFzIHRoZQorICogaW50ZXJmYWNlIG5hbWUuCisgKgorICogVGhlIElPbXhTdG9yZSBzZXJ2aWNlIHByb3ZpZGVkIGJ5IHRoZSB2ZW5kb3IgbXVzdCBwcmVzZW50ICJ2ZW5kb3IiIGFzIHRoZQorICogaW5zdGFuY2UgbmFtZS4KKyAqLworaW50ZXJmYWNlIElPbXhTdG9yZSB7CisKKyAgICAvKioKKyAgICAgKiBBdHRyaWJ1dGUgaXMgYSBrZXktdmFsdWUgcGFpciBvZiBzdHJpbmdzLiBUaGUgYHZhbHVlYCBtZW1iZXIgaXMgZ2VuZXJhbGx5CisgICAgICogYSBzdHJpbmdpZmllZCB2YWx1ZSBvZiB0aGUgZm9sbG93aW5nOgorICAgICAqICAgZW51bTx2MSx2MiwuLi4sdm4+OiAgICB2MSB8IHYyIHwgLi4uIHwgdm4KKyAgICAgKiAgIG51bTogICAgICAgICAgICAgICAgICAgMCB8IFsxLTldWzAtOV0qCisgICAgICogICBzdHJpbmc6ICAgICAgICAgICAgICAgIGFyYml0cmFyeSBzdHJpbmcKKyAgICAgKiAgIHNpemU6ICAgICAgICAgICAgICAgICAgPG51bT54PG51bT4KKyAgICAgKiAgIHJhdGlvOiAgICAgICAgICAgICAgICAgPG51bT46PG51bT4KKyAgICAgKiAgIHJhbmdlPHR5cGU+OiAgICAgICAgICAgPHR5cGU+LTx0eXBlPgorICAgICAqICAgbGlzdDx0eXBlPjogICAgICAgICAgICA8dHlwZT4gfCA8dHlwZT4sPGxpc3Q8dHlwZT4+CisgICAgICovCisgICAgc3RydWN0IEF0dHJpYnV0ZSB7CisgICAgICAgIHN0cmluZyBrZXk7CisgICAgICAgIHN0cmluZyB2YWx1ZTsKKyAgICB9OworCisgICAgLyoqCisgICAgICogU2VydmljZSBhdHRyaWJ1dGUKKyAgICAgKgorICAgICAqIE9wdGlvbmFsIHNlcnZpY2UgYXR0cmlidXRlczoKKyAgICAgKiAgIGtleTogJ21heC12aWRlby1lbmNvZGVyLWlucHV0LWJ1ZmZlcnMnLCB2YWx1ZS10eXBlOiBudW0KKyAgICAgKiAgIGtleTogJ3N1cHBvcnRzLW11bHRpcGxlLXNlY3VyZS1jb2RlY3MnLCB2YWx1ZS10eXBlOiBlbnVtPDAsMT4KKyAgICAgKiAgIGtleTogJ3N1cHBvcnRzLXNlY3VyZS13aXRoLW5vbi1zZWN1cmUtY29kZWMnLCB2YWx1ZS10eXBlOiBlbnVtPDAsMT4KKyAgICAgKgorICAgICAqIEZvciBrZXlzIHdpdGggcHJlZml4ICdzdXBwb3J0cy0nLCB0aGUgdmFsdWUgb2YgMCBtZWFucyAibm8iIChub3QKKyAgICAgKiBzdXBwb3J0ZWQpIHdoaWxlIHRoZSB2YWx1ZSBvZiAxIG1lYW5zICJ5ZXMiIChzdXBwb3J0ZWQpLgorICAgICAqLworICAgIHR5cGVkZWYgQXR0cmlidXRlIFNlcnZpY2VBdHRyaWJ1dGU7CisKKyAgICAvKioKKyAgICAgKiBMaXN0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2VydmljZS1zcGVjaWZpYyAobm90IG5vZGUtc3BlY2lmaWMpLgorICAgICAqCisgICAgICogQHJldHVybiBhdHRyaWJ1dGVzIFRoZSBsaXN0IG9mIGBBdHRyaWJ1dGVgcyB0aGF0IGFyZSBzcGVjaWZpYyB0byB0aGlzCisgICAgICogICAgICAgICAgICAgICAgICAgIHNlcnZpY2UuCisgICAgICovCisgICAgbGlzdFNlcnZpY2VBdHRyaWJ1dGVzKAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBTdGF0dXMgc3RhdHVzLAorICAgICAgICAgICAgdmVjPFNlcnZpY2VBdHRyaWJ1dGU+IGF0dHJpYnV0ZXMKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIE5vZGUgYXR0cmlidXRlCisgICAgICoKKyAgICAgKiBPcHRpb25hbCBub2RlIGF0dHJpYnV0ZXMgdG8gZGVzY3JpYmUgc3VwcG9ydGVkIHZhbHVlczoKKyAgICAgKiAgIGtleTogJ2JpdHJhdGUtcmFuZ2UnLCB2YWx1ZS10eXBlOiByYW5nZTxudW0+CisgICAgICogICBrZXk6ICdtYXgtY29uY3VycmVudC1pbnN0YW5jZXMnLCB2YWx1ZS10eXBlOiBudW0KKyAgICAgKiAgIGtleTogJ21heC1zdXBwb3J0ZWQtaW5zdGFuY2VzJywgdmFsdWUtdHlwZTogbnVtCisgICAgICoKKyAgICAgKiBPcHRpb25hbCBub2RlIGF0dHJpYnV0ZXMgZm9yIGF1ZGlvIG5vZGVzIHRvIGRlc2NyaWJlIHN1cHBvcnRlZCB2YWx1ZXM6CisgICAgICogICBrZXk6ICdtYXgtY2hhbm5lbC1jb3VudCcsIHZhbHVlLXR5cGU6IG51bQorICAgICAqICAga2V5OiAnc2FtcGxlLXJhdGUtcmFuZ2VzJywgdmFsdWUtdHlwZTogbGlzdDxyYW5nZTxudW0+PgorICAgICAqCisgICAgICogT3B0aW9uYWwgbm9kZSBhdHRyaWJ1dGVzIGZvciB2aWRlbyBub2RlcyB0byBkZXNjcmliZSBzdXBwb3J0ZWQgdmFsdWVzOgorICAgICAqICAga2V5OiAnYWxpZ25tZW50JywgdmFsdWUtdHlwZTogc2l6ZQorICAgICAqICAga2V5OiAnYmxvY2stYXNwZWN0LXJhdGlvLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8cmF0aW8+CisgICAgICogICBrZXk6ICdibG9jay1jb3VudC1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPG51bT4KKyAgICAgKiAgIGtleTogJ2Jsb2NrLXNpemUnLCB2YWx1ZS10eXBlOiBzaXplCisgICAgICogICBrZXk6ICdibG9ja3MtcGVyLXNlY29uZC1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPG51bT4KKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtY2FuLXN3YXAtd2lkdGgtaGVpZ2h0JywgdmFsdWUtdHlwZTogZW51bTwwLDE+CisgICAgICogICBrZXk6ICdmcmFtZS1yYXRlLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8bnVtPgorICAgICAqICAga2V5OiAncGl4ZWwtYXNwZWN0LXJhdGlvLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8cmF0aW8+CisgICAgICogICBrZXk6ICdzaXplLXJhbmdlJywgdmFsdWUtdHlwZTogcmFuZ2U8c2l6ZT4KKyAgICAgKgorICAgICAqIFJlcXVpcmVkIG5vZGUgYXR0cmlidXRlcyBmb3IgdmlkZW8gbm9kZXMgdGhhdCBhcmUgcmVxdWlyZWQgYnkgQW5kcm9pZCB0bworICAgICAqIGRlc2NyaWJlIG1lYXN1cmVkIHZhbHVlcyBmb3IgdGhpcyBkZXZpY2U6CisgICAgICogICBrZXk6ICdtZWFzdXJlZC1mcmFtZS1yYXRlLTx3aWR0aD4tPGhlaWdodD4tcmFuZ2UnLAorICAgICAqICAgICB2YWx1ZS10eXBlOiByYW5nZTxudW0+OyB3aGVyZSB3aWR0aDogbnVtLCBoZWlnaHQ6IG51bQorICAgICAqCisgICAgICogT3B0aW9uYWwgbm9kZSBhdHRyaWJ1dGVzIGZvciBkZWNvZGVycyB0byBkZXNjcmliZSBzdXBwb3J0ZWQgdmFsdWVzOgorICAgICAqICAga2V5OiAnZmVhdHVyZS1hZGFwdGl2ZS1wbGF5YmFjaycsIHZhbHVlOiBlbnVtPDAsMT4KKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtc2VjdXJlLXBsYXliYWNrJywgdmFsdWU6IGVudW08MCwxPgorICAgICAqICAga2V5OiAnZmVhdHVyZS10dW5uZWxlZC1wbGF5YmFjaycsIHZhbHVlOiBlbnVtPDAsMT4KKyAgICAgKgorICAgICAqIE9wdGlvbmFsIG5vZGUgYXR0cmlidXRlcyBmb3IgdmlkZW8gZGVjb2RlcnMgdG8gZGVzY3JpYmUgc3VwcG9ydGVkIHZhbHVlczoKKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtcGFydGlhbC1mcmFtZScsIHZhbHVlOiBlbnVtPDAsMT4KKyAgICAgKgorICAgICAqIE9wdGlvbmFsIG5vZGUgYXR0cmlidXRlcyBmb3IgZW5jb2RlcnMgdG8gZGVzY3JpYmUgc3VwcG9ydGVkIHZhbHVlczoKKyAgICAgKiAgIGtleTogJ2NvbXBsZXhpdHktZGVmYXVsdCcsIHZhbHVlLXR5cGU6IG51bQorICAgICAqICAga2V5OiAnY29tcGxleGl0eS1yYW5nZScsIHZhbHVlLXR5cGU6IHJhbmdlPG51bT4KKyAgICAgKiAgIGtleTogJ2ZlYXR1cmUtYml0cmF0ZS1jb250cm9sJywgdmFsdWUtdHlwZTogbGlzdDxlbnVtPFZCUixDQlIsQ1E+PgorICAgICAqICAga2V5OiAnZmVhdHVyZS1pbnRyYS1yZWZyZXNoJywgdmFsdWUtdHlwZTogZW51bTwwLDE+CisgICAgICogICBrZXk6ICdxdWFsaXR5LWRlZmF1bHQnLCB2YWx1ZS10eXBlOiBudW0KKyAgICAgKiAgIGtleTogJ3F1YWxpdHktcmFuZ2UnLCB2YWx1ZS10eXBlOiByYW5nZTxudW0+CisgICAgICogICBrZXk6ICdxdWFsaXR5LXNjYWxlJywgdmFsdWUtdHlwZTogc3RyaW5nCisgICAgICoKKyAgICAgKiBGb3Iga2V5cyB3aXRoIHByZWZpeCAnZmVhdHVyZS0nIGFuZCB2YWx1ZSB0eXBlIGVudW08MCwxPiwgdGhlIHZhbHVlIG9mIDAKKyAgICAgKiBtZWFucyAib3B0aW9uYWwiLCB3aGlsZSB0aGUgdmFsdWUgb2YgMSBtZWFucyAicmVxdWlyZWQiLgorICAgICAqLworICAgIHR5cGVkZWYgQXR0cmlidXRlIE5vZGVBdHRyaWJ1dGU7CisKKyAgICAvKioKKyAgICAgKiBJbmZvcm1hdGlvbiBmb3IgYW4gSU9teE5vZGUgbm9kZS4KKyAgICAgKi8KKyAgICBzdHJ1Y3QgTm9kZUluZm8geworICAgICAgICAvKioKKyAgICAgICAgICogTmFtZSBvZiB0aGlzIG5vZGUuCisgICAgICAgICAqCisgICAgICAgICAqIGBuYW1lYCBjYW4gYmUgc3VwcGxpZWQgdG8gYElPbXg6OmFsbG9jYXRlTm9kZWAgb2YgYQorICAgICAgICAgKiBjb3JyZXNwb25kaW5nIGBJT214YCBpbnN0YW5jZSB0byBjcmVhdGUgdGhlIG5vZGUuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgbmFtZTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIE5hbWUgb2YgdGhlIGBJT214YCBpbnN0YW5jZSB0aGF0IGNhbiBjcmVhdGUgdGhpcyBub2RlLgorICAgICAgICAgKgorICAgICAgICAgKiBUbyBvYnRhaW4gdGhlIGBJT214YCBpbnN0YW5jZSwgY2FsbCBgZ2V0T214KG93bmVyKWAuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgb3duZXI7CisgICAgICAgIC8qKgorICAgICAgICAgKiBMaXN0IG9mIG5vZGUgYXR0cmlidXRlcy4KKyAgICAgICAgICovCisgICAgICAgIHZlYzxOb2RlQXR0cmlidXRlPiBhdHRyaWJ1dGVzOworICAgIH07CisKKyAgICAvKioKKyAgICAgKiBJbmZvcm1hdGlvbiBhYm91dCBub2RlcyBwcm92aWRlZCBmb3IgYSBzdXBwb3J0ZWQgbm9kZSByb2xlCisgICAgICovCisgICAgc3RydWN0IFJvbGVJbmZvIHsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFN0YW5kYXJkIE9NWCBub2RlIHJvbGUuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgcm9sZTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIENvcnJlc3BvbmRpbmcgbWVkaWEgdHlwZSAoYXMgZGVmaW5lZCBpbiBNZWRpYUZvcm1hdC5NSU1FVFlQRV8qCisgICAgICAgICAqIGNvbnN0YW50cyBmb3IgdHlwZXMgcmVxdWlyZWQgYnkgQW5kcm9pZCkuCisgICAgICAgICAqLworICAgICAgICBzdHJpbmcgdHlwZTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFdoZXRoZXIgdGhpcyByb2xlIGlzIGZvciBhbiBlbmNvZGVyIG9yIGEgZGVjb2Rlci4KKyAgICAgICAgICovCisgICAgICAgIGJvb2wgaXNFbmNvZGVyOworICAgICAgICAvKioKKyAgICAgICAgICogV2hldGhlciB0byBwcmVmZXIgcGxhdGZvcm0gbm9kZXMgZm9yIHRoaXMgcm9sZS4KKyAgICAgICAgICovCisgICAgICAgIGJvb2wgcHJlZmVyUGxhdGZvcm1Ob2RlczsKKyAgICAgICAgLyoqCisgICAgICAgICAqIExpc3Qgb2Ygbm9kZXMgdGhhdCBzdXBwb3J0IHRoaXMgcm9sZSwgb3JkZXJlZCBieSBwcmVmZXJlbmNlLgorICAgICAgICAgKi8KKyAgICAgICAgdmVjPE5vZGVJbmZvPiBub2RlczsKKyAgICB9OworCisgICAgLyoqCisgICAgICogUmV0dXJuIHRoZSBwcmVmaXggb2YgbmFtZXMgb2Ygc3VwcG9ydGVkIG5vZGVzLgorICAgICAqCisgICAgICogQHJldHVybiBwcmVmaXggVGhlIHByZWZpeCBvZiB0aGUgbmFtZXMgb2YgYWxsIG5vZGVzIHN1cHBvcnRlZCBieSB0aGlzCisgICAgICogICAgICAgICAgICAgICAgc2VydmljZS4KKyAgICAgKi8KKyAgICBnZXROb2RlUHJlZml4KAorICAgICAgICApIGdlbmVyYXRlcyAoCisgICAgICAgICAgICBzdHJpbmcgcHJlZml4CisgICAgICAgICk7CisKKyAgICAvKioKKyAgICAgKiBMaXN0IHJvbGVzIG9mIHN1cHBvcnRlZCBub2Rlcy4KKyAgICAgKgorICAgICAqIFRoZSBuYW1lIG9mIGVhY2ggbm9kZSBpbnNpZGUgYE5vZGVJbmZvYCBtdXN0IHN0YXJ0IHdpdGggdGhlIHByZWZpeAorICAgICAqIHJldHVybmVkIGJ5IGBnZXROb2RlUHJlZml4KClgLgorICAgICAqCisgICAgICogQHJldHVybiByb2xlTGlzdCBUaGUgbGlzdCBvZiBgUm9sZUluZm9gcy4KKyAgICAgKgorICAgICAqIEBzZWUgUm9sZUluZm8KKyAgICAgKi8KKyAgICBsaXN0Um9sZXMoCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIHZlYzxSb2xlSW5mbz4gcm9sZUxpc3QKKyAgICAgICAgKTsKKworICAgIC8qKgorICAgICAqIE9idGFpbiBhbiBgSU9teGAgaW5zdGFuY2Ugd2l0aCBhIHNwZWNpZmllZCBuYW1lLgorICAgICAqCisgICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGluc3RhbmNlLgorICAgICAqIEByZXR1cm4gb214IFRoZSBgSU9teGAgaW50ZXJmYWNlIGFzc29jaWF0ZWQgd2l0aCBgbmFtZWAuIFRoaXMgbXVzdCBiZQorICAgICAqIG51bGwgaWYgdGhlIG5hbWUgaXMgbm90IGZvdW5kLgorICAgICAqLworICAgIGdldE9teCgKKyAgICAgICAgICAgIHN0cmluZyBuYW1lCisgICAgICAgICkgZ2VuZXJhdGVzICgKKyAgICAgICAgICAgIElPbXggb214CisgICAgICAgICk7CisKK307CisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdHlwZXMuaGFsIGIvbWVkaWEvb214LzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZhNjAwNwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMjc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLm1lZGlhQDEuMDo6dHlwZXM7CisKKy8vIEFsaWFzZXMKK3R5cGVkZWYgdWludDMyX3QgQnVmZmVySWQ7CisKKy8qKgorICogUmVmOiBzeXN0ZW0vY29yZS9pbmNsdWRlL3V0aWxzL0Vycm9ycy5oCisgKiBSZWY6IGJpb25pYy9saWJjL2tlcm5lbC91YXBpL2FzbS1nZW5lcmljL2Vycm5vLWJhc2UuaAorICogUmVmOiBiaW9uaWMvbGliYy9rZXJuZWwvdWFwaS9hc20tZ2VuZXJpYy9lcnJuby5oCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvaW5jbHVkZS9tZWRpYS9zdGFnZWZyaWdodC9NZWRpYUVycm9yLmgKKyAqIFJlZjogZnJhbWV3b3Jrcy9hdi9tZWRpYS9saWJzdGFnZWZyaWdodC9vbXgvT01YVXRpbHMuY3BwOiBTdGF0dXNGcm9tT01YRXJyb3IKKyAqLworZW51bSBTdGF0dXMgOiBpbnQzMl90IHsKKyAgICBPSyAgICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgTk9fRVJST1IgICAgICAgICAgICAgICAgPSAwLAorCisgICAgTkFNRV9OT1RfRk9VTkQgICAgICAgICAgPSAtMiwKKyAgICBXT1VMRF9CTE9DSyAgICAgICAgICAgICA9IC0xMSwKKyAgICBOT19NRU1PUlkgICAgICAgICAgICAgICA9IC0xMiwKKyAgICBBTFJFQURZX0VYSVNUUyAgICAgICAgICA9IC0xNywKKyAgICBOT19JTklUICAgICAgICAgICAgICAgICA9IC0xOSwKKyAgICBCQURfVkFMVUUgICAgICAgICAgICAgICA9IC0yMiwKKyAgICBERUFEX09CSkVDVCAgICAgICAgICAgICA9IC0zMiwKKyAgICBJTlZBTElEX09QRVJBVElPTiAgICAgICA9IC0zOCwKKyAgICBUSU1FRF9PVVQgICAgICAgICAgICAgICA9IC0xMTAsCisgICAgRVJST1JfVU5TVVBQT1JURUQgICAgICAgPSAtMTAxMCwKKyAgICBVTktOT1dOX0VSUk9SICAgICAgICAgICA9IC0yMTQ3NDgzNjQ4LAorCisgICAgQlVGRkVSX05FRURTX1JFQUxMT0NBVElPTiA9IDB4MSwKKyAgICBSRUxFQVNFX0FMTF9CVUZGRVJTICAgICAgID0gMHgyLAorfTsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvYXYvaW5jbHVkZS9tZWRpYS9JT01YLmg6IG9teF9tZXNzYWdlCisgKgorICogRGF0YSBzdHJ1Y3R1cmUgZm9yIGFuIE9NWCBtZXNzYWdlLiBUaGlzIGlzIGVzc2VudGlhbGx5IGEgdW5pb24gb2YgZGlmZmVyZW50CisgKiBtZXNzYWdlIHR5cGVzLgorICovCitzdHJ1Y3QgTWVzc2FnZSB7CisKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgZm91ciBtYWluIHR5cGVzIG9mIG1lc3NhZ2VzLgorICAgICAqLworICAgIGVudW0gVHlwZSA6IHVpbnQzMl90IHsKKyAgICAgICAgRVZFTlQsCisgICAgICAgIEVNUFRZX0JVRkZFUl9ET05FLAorICAgICAgICBGSUxMX0JVRkZFUl9ET05FLAorICAgICAgICBGUkFNRV9SRU5ERVJFRCwKKyAgICB9OworCisgICAgLyoqCisgICAgICogQHNlZSBPTVhfRVZFTlRUWVBFIGluIHRoZSBPcGVuTWF4IElMIHN0YW5kYXJkLgorICAgICAqLworICAgIHN0cnVjdCBFdmVudERhdGEgeworICAgICAgICB1aW50MzJfdCBldmVudDsgLy8gVE9ETzogaWYgdGhlcmUgYXJlIGNvbW1vbiBjb3JlIGV2ZW50cywgY29udmVydCB0byBhbiBlbnVtIG9yIHBvaW50IHRvIHN0ZAorICAgICAgICB1aW50MzJfdCBkYXRhMTsKKyAgICAgICAgdWludDMyX3QgZGF0YTI7CisgICAgICAgIHVpbnQzMl90IGRhdGEzOworICAgICAgICB1aW50MzJfdCBkYXRhNDsKKyAgICB9OworCisgICAgc3RydWN0IEJ1ZmZlckRhdGEgeworICAgICAgICBCdWZmZXJJZCBidWZmZXI7CisgICAgfTsKKworICAgIHN0cnVjdCBFeHRlbmRlZEJ1ZmZlckRhdGEgeworICAgICAgICBCdWZmZXJJZCBidWZmZXI7CisgICAgICAgIHVpbnQzMl90IHJhbmdlT2Zmc2V0OworICAgICAgICB1aW50MzJfdCByYW5nZUxlbmd0aDsKKyAgICAgICAgdWludDMyX3QgZmxhZ3M7IC8vIFRPRE86IGlmIGNvbW1vbiBmbGFncyBleGlzdCwgZGVmaW5lIGFuIGVudW0gb2YgcG9pbnQgdG8gc3RkCisgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcFVzOworICAgIH07CisKKyAgICBzdHJ1Y3QgUmVuZGVyRGF0YSB7CisgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcFVzOworICAgICAgICBpbnQ2NF90IHN5c3RlbVRpbWVOczsKKyAgICB9OworCisgICAgdW5pb24gRGF0YSB7CisgICAgICAgIC8vIGlmIHR5cGUgPT0gRVZFTlQKKyAgICAgICAgRXZlbnREYXRhIGV2ZW50RGF0YTsKKworICAgICAgICAvLyBpZiB0eXBlID09IEVNUFRZX0JVRkZFUl9ET05FCisgICAgICAgIEJ1ZmZlckRhdGEgYnVmZmVyRGF0YTsKKworICAgICAgICAvLyBpZiB0eXBlID09IEZJTExfQlVGRkVSX0RPTkUKKyAgICAgICAgRXh0ZW5kZWRCdWZmZXJEYXRhIGV4dGVuZGVkQnVmZmVyRGF0YTsKKworICAgICAgICAvLyBpZiB0eXBlID09IEZSQU1FX1JFTkRFUkVECisgICAgICAgIFJlbmRlckRhdGEgcmVuZGVyRGF0YTsKKyAgICB9OworCisgICAgLyoqCisgICAgICogVGhlIHR5cGUgb2YgdGhlIG1lc3NhZ2UuCisgICAgICovCisgICAgVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogVGhlIGZlbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWVzc2FnZS4KKyAgICAgKi8KKyAgICBGZW5jZSBmZW5jZTsKKworICAgIC8qKgorICAgICAqIFRoZSB1bmlvbiBvZiBkYXRhLCBkaXNjcmltaW5hdGVkIGJ5IHR5cGUuCisgICAgICovCisgICAgRGF0YSBkYXRhOworfTsKKworLyoqCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvdWkvR3JhcGhpY0J1ZmZlci5oCisgKiBSZWY6IHN5c3RlbS9jb3JlL2luY2x1ZGUvc3lzdGVtL3dpbmRvdy5oCisgKiBSZWY6IGZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvYmluZGVyL0lNZW1vcnkuaAorICogUmVmOiBmcmFtZXdvcmtzL25hdGl2ZS9saWJzL2JpbmRlci9JTWVtb3J5LmNwcAorICogUmVmOiBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvbWVkaWEvT01YQnVmZmVyLmgKKyAqCisgKiBEYXRhIHN0cnVjdHVyZSBmb3IgYnVmZmVyIGluZm9ybWF0aW9uLiBUaGlzIGlzIGVzc2VudGlhbGx5IGEgdW5pb24gb2YKKyAqIGRpZmZlcmVudCBidWZmZXIgdHlwZXMuCisgKi8KK3N0cnVjdCBDb2RlY0J1ZmZlciB7CisKKyAgICAvKioKKyAgICAgKiBUaGVyZSBhcmUgZm91ciBtYWluIHR5cGVzIG9mIGJ1ZmZlcnMuCisgICAgICovCisgICAgZW51bSBUeXBlIDogaW50MzJfdCB7CisgICAgICAgIElOVkFMSUQgPSAwLAorICAgICAgICBQUkVTRVQsCisgICAgICAgIFNIQVJFRF9NRU0sCisgICAgICAgIEFOV19CVUZGRVIsCisgICAgICAgIE5BVElWRV9IQU5ETEUsCisgICAgfTsKKworICAgIHN0cnVjdCBQcmVzZXRBdHRyaWJ1dGVzIHsKKyAgICAgICAgdWludDMyX3QgcmFuZ2VPZmZzZXQ7CisgICAgICAgIHVpbnQzMl90IHJhbmdlTGVuZ3RoOworICAgIH07CisKKyAgICB1bmlvbiBBdHRyaWJ1dGVzIHsKKyAgICAgICAgLy8gaWYgYnVmZmVyVHlwZSA9PSBQUkVTRVQKKyAgICAgICAgUHJlc2V0QXR0cmlidXRlcyBwcmVzZXQ7CisKKyAgICAgICAgLy8gaWYgYnVmZmVyVHlwZSA9PSBTSEFSRURfTUVNCisgICAgICAgIC8vIE5vIGFkZGl0aW9uYWwgYXR0cmlidXRlcy4KKworICAgICAgICAvLyBpZiBidWZmZXJUeXBlID09IEFOV19CVUZGRVIKKyAgICAgICAgQW53QnVmZmVyQXR0cmlidXRlcyBhbndCdWZmZXI7CisKKyAgICAgICAgLy8gaWYgYnVmZmVyVHlwZSA9PSBOQVRJVkVfSEFORExFCisgICAgICAgIC8vIE5vIGFkZGl0aW9uYWwgYXR0cmlidXRlcy4KKyAgICB9OworCisgICAgLyoqCisgICAgICogVHlwZSBvZiB0aGUgYnVmZmVyLgorICAgICAqLworICAgIFR5cGUgdHlwZTsKKworICAgIC8qKgorICAgICAqIEF0dHJpYnV0ZXMgdGhhdCBjYW4gYmUgcHV0IGludG8gYSB1bmlvbi4KKyAgICAgKi8KKyAgICBBdHRyaWJ1dGVzIGF0dHI7CisKKyAgICAvKioKKyAgICAgKiBVc2VkIG9ubHkgZm9yIHR5cGVzIEFOV19CVUZGRVIgYW5kIE5BVElWRV9IQU5ETEUuCisgICAgICoKKyAgICAgKiAoQSBuYXRpdmUgaGFuZGxlIGNhbm5vdCBiZSBwdXQgaW50byBhIHVuaW9uIGFzIEhJREwgY3VycmVudGx5IGRvZXMgbm90CisgICAgICogc3VwcG9ydCBkaXNjcmltaW5hdGVkIHVuaW9ucy4pCisgICAgICovCisgICAgaGFuZGxlIG5hdGl2ZUhhbmRsZTsKKworICAgIC8qKgorICAgICAqIFVzZWQgb25seSBmb3IgdHlwZSBTSEFSRURfTUVNLgorICAgICAqLworICAgIG1lbW9yeSBzaGFyZWRNZW1vcnk7CisKK307CisKKy8qKgorICogUmVmOiBmcmFtZXdvcmtzL2F2L2luY2x1ZGUvbWVkaWEvSU9NWC5oCisgKgorICogRW51bWVyYXRpb24gb2YgcG9ydCBtb2Rlcy4KKyAqLworZW51bSBQb3J0TW9kZSA6IGludDMyX3QgeworICAgIFBSRVNFVF9TVEFSVCA9IDAsCisgICAgUFJFU0VUX0JZVEVfQlVGRkVSLAorICAgIFBSRVNFVF9BTldfQlVGRkVSLAorICAgIFBSRVNFVF9TRUNVUkVfQlVGRkVSLAorICAgIFBSRVNFVF9FTkQsCisgICAgRFlOQU1JQ19TVEFSVCA9IDEwMCwKKyAgICBEWU5BTUlDX0FOV19CVUZGRVIsCisgICAgRFlOQU1JQ19OQVRJVkVfSEFORExFLAorICAgIERZTkFNSUNfRU5ECit9OworCisvKioKKyAqIFJlZjogZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9oYXJkd2FyZS9WaWRlb0FQSS5oCisgKgorICogRnJhbWV3b3JrIGRlZmluZWQgY29sb3IgYXNwZWN0cy4gVGhlc2UgYXJlIGJhc2VkIG1haW5seSBvbiBJU08gMjMwMDEtOCBzcGVjLiBBcyB0aGlzIHN0YW5kYXJkCisgKiBjb250aW51ZXMgdG8gZXZvbHZlLCBuZXcgdmFsdWVzIG1heSBiZSBkZWZpbmVkIGluIHRoZSBmdXR1cmUuIFVzZSBPVEhFUiBmb3IgdGhlc2UgZnV0dXJlIHZhbHVlcworICogYXMgd2VsbCBhcyBmb3IgdmFsdWVzIG5vdCBsaXN0ZWQgaGVyZSwgYXMgdGhvc2UgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGZyYW1ld29yay4KKyAqLworc3RydWN0IENvbG9yQXNwZWN0cyB7CisgICAgZW51bSBSYW5nZSA6IHVpbnQzMl90IHsKKyAgICAgICAgVU5TUEVDSUZJRUQsICAvLyBVbnNwZWNpZmllZAorICAgICAgICBGVUxMLCAgICAgICAgIC8vIEZ1bGwgcmFuZ2UKKyAgICAgICAgTElNSVRFRCwgICAgICAvLyBMaW1pdGVkIHJhbmdlIChpZiBkZWZpbmVkKSwgb3Igbm90IGZ1bGwgcmFuZ2UKKworICAgICAgICBPVEhFUiA9IDB4ZmYsIC8vIE5vdCBvbmUgb2YgdGhlIGFib3ZlIHZhbHVlcworICAgIH07CisKKyAgICAvLyBDb2xvciBwcmltYXJpZXMKKyAgICBlbnVtIFByaW1hcmllcyA6IHVpbnQzMl90IHsKKyAgICAgICAgVU5TUEVDSUZJRUQsICAvLyBVbnNwZWNpZmllZAorICAgICAgICBCVDcwOV81LCAgICAgIC8vIFJlYy5JVFUtUiBCVC43MDktNSBvciBlcXVpdmFsZW50CisgICAgICAgIEJUNDcwXzZNLCAgICAgLy8gUmVjLklUVS1SIEJULjQ3MC02IFN5c3RlbSBNIG9yIGVxdWl2YWxlbnQKKyAgICAgICAgQlQ2MDFfNl82MjUsICAvLyBSZWMuSVRVLVIgQlQuNjAxLTYgNjI1IG9yIGVxdWl2YWxlbnQKKyAgICAgICAgQlQ2MDFfNl81MjUsICAvLyBSZWMuSVRVLVIgQlQuNjAxLTYgNTI1IG9yIGVxdWl2YWxlbnQKKyAgICAgICAgR0VORVJJQ19GSUxNLCAvLyBHZW5lcmljIEZpbG0KKyAgICAgICAgQlQyMDIwLCAgICAgICAvLyBSZWMuSVRVLVIgQlQuMjAyMCBvciBlcXVpdmFsZW50CisKKyAgICAgICAgT1RIRVIgPSAweGZmLCAvLyBOb3Qgb25lIG9mIHRoZSBhYm92ZSB2YWx1ZXMKKyAgICB9OworCisgICAgLy8gVHJhbnNmZXIgY2hhcmFjdGVyaXN0aWNzCisgICAgZW51bSBUcmFuc2ZlciA6IHVpbnQzMl90IHsKKyAgICAgICAgVU5TUEVDSUZJRUQsICAvLyBVbnNwZWNpZmllZAorICAgICAgICBMSU5FQVIsICAgICAgIC8vIExpbmVhciB0cmFuc2ZlciBjaGFyYWN0ZXJpc3RpY3MKKyAgICAgICAgU1JHQiwgICAgICAgICAvLyBzUkdCIG9yIGVxdWl2YWxlbnQKKyAgICAgICAgU01QVEUxNzBNLCAgICAvLyBTTVBURSAxNzBNIG9yIGVxdWl2YWxlbnQgKGUuZy4gQlQuNjAxLzcwOS8yMDIwKQorICAgICAgICBHQU1NQTIyLCAgICAgIC8vIEFzc3VtZWQgZGlzcGxheSBnYW1tYSAyLjIKKyAgICAgICAgR0FNTUEyOCwgICAgICAvLyBBc3N1bWVkIGRpc3BsYXkgZ2FtbWEgMi44CisgICAgICAgIFNUMjA4NCwgICAgICAgLy8gU01QVEUgU1QgMjA4NCBmb3IgMTAvMTIvMTQvMTYgYml0IHN5c3RlbXMKKyAgICAgICAgSExHLCAgICAgICAgICAvLyBBUklCIFNURC1CNjcgaHlicmlkLWxvZy1nYW1tYQorCisgICAgICAgIC8vIHZhbHVlcyB1bmxpa2VseSB0byBiZSByZXF1aXJlZCBieSBBbmRyb2lkIGZvbGxvdyBoZXJlCisgICAgICAgIFNNUFRFMjQwTSA9IDB4NDAsIC8vIFNNUFRFIDI0ME0KKyAgICAgICAgWFZZQ0MsICAgICAgICAvLyBJRUMgNjE5NjYtMi00CisgICAgICAgIEJUMTM2MSwgICAgICAgLy8gUmVjLklUVS1SIEJULjEzNjEgZXh0ZW5kZWQgZ2FtdXQKKyAgICAgICAgU1Q0MjgsICAgICAgICAvLyBTTVBURSBTVCA0MjgtMQorCisgICAgICAgIE9USEVSID0gMHhmZiwgLy8gTm90IG9uZSBvZiB0aGUgYWJvdmUgdmFsdWVzCisgICAgfTsKKworICAgIC8vIFlVViA8LT4gUkdCIGNvbnZlcnNpb24KKyAgICBlbnVtIE1hdHJpeENvZWZmcyA6IHVpbnQzMl90IHsKKyAgICAgICAgVU5TUEVDSUZJRUQsICAgIC8vIFVuc3BlY2lmaWVkCisgICAgICAgIEJUNzA5XzUsICAgICAgICAvLyBSZWMuSVRVLVIgQlQuNzA5LTUgb3IgZXF1aXZhbGVudAorICAgICAgICBCVDQ3MF82TSwgICAgICAgLy8gS1I9MC4zMCwgS0I9MC4xMSBvciBlcXVpdmFsZW50CisgICAgICAgIEJUNjAxXzYsICAgICAgICAvLyBSZWMuSVRVLVIgQlQuNjAxLTYgNjI1IG9yIGVxdWl2YWxlbnQKKyAgICAgICAgU01QVEUyNDBNLCAgICAgIC8vIFNNUFRFIDI0ME0gb3IgZXF1aXZhbGVudAorICAgICAgICBCVDIwMjAsICAgICAgICAgLy8gUmVjLklUVS1SIEJULjIwMjAgbm9uLWNvbnN0YW50IGx1bWluYW5jZQorICAgICAgICBCVDIwMjBDT05TVEFOVCwgLy8gUmVjLklUVS1SIEJULjIwMjAgY29uc3RhbnQgbHVtaW5hbmNlCisKKyAgICAgICAgT1RIRVIgPSAweGZmLCAgIC8vIE5vdCBvbmUgb2YgdGhlIGFib3ZlIHZhbHVlcworICAgIH07CisKKyAgICBSYW5nZSByYW5nZTsKKyAgICBQcmltYXJpZXMgcHJpbWFyaWVzOworICAgIFRyYW5zZmVyIHRyYW5zZmVyOworICAgIE1hdHJpeENvZWZmcyBtYXRyaXhDb2VmZnM7Cit9OworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL1JFQURNRS5tZCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhODg4MTEKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL1JFQURNRS5tZApAQCAtMCwwICsxLDMzIEBACisjIyBPbXggSGFsIEAgMS4wIHRlc3RzICMjCistLS0KKyMjIE92ZXJ2aWV3IDoKK1RoZSBzY29wZSBvZiB0aGUgdGVzdHMgcHJlc2VudGVkIGhlcmUgaXMgbm90IHJlc3RyaWN0ZWQgc29sZWx5IHRvIHRlc3Rpbmcgb214IGhhbCBAIDEuMCBBUEkgYnV0IGFsc28gdGVzdCB0byBvbXggY29yZSBmdW5jdGlvbmFsaXR5IGFuZCB0byBhbiBleHRlbnQgb214IGNvbXBvbmVudHMgYXMgd2VsbC4gVGhlIGN1cnJlbnQgZGlyZWN0b3J5IGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgZm9sZGVyczogYXVkaW8sIGNvbW1vbiwgY29tcG9uZW50LCBtYXN0ZXIgYW5kIHZpZGVvLiBCZXNpZGVzIGNvbW1vbiBhbGwgb3RoZXIgZm9sZGVycyBjb250YWluIHRlc3QgZml4dHVyZXMgZm9yIHRlc3RpbmcgQVYgZGVjb2RlciwgZW5jb2RlciBjb21wb25lbnRzLiBDb21tb24gY29uc3RpdHV0ZXMgZmlsZXMgdGhhdCBhcmUgdXNlZCBhY3Jvc3MgYnkgdGhlc2UgdGVzdCBhcHBsaWNhdGlvbnMuCisKKyMjIyMgbWFzdGVyIDoKK0Z1bmN0aW9uYWxpdHkgb2YgbWFzdGVyIGlzIHRvIGVudW1lcmF0ZSBhbGwgdGhlIG9teCBjb21wb25lbnRzIChhbmQgdGhlIHJvbGVzIGl0IHN1cHBvcnRzKSBhdmFpbGFibGUgaW4gYW5kcm9pZCBtZWRpYSBmcmFtZXdvcmsuCisKK3VzYWdlOiBWdHNIYWxNZWRpYU9teFYxXF8wVGFyZ2V0TWFzdGVyVGVzdCAtSSBkZWZhdWx0CisKKyMjIyMgY29tcG9uZW50IDoKK1RoaXMgZm9sZGVyIGluY2x1ZGVzIHRlc3QgZml4dHVyZXMgdGhhdCB0ZXN0cyBhc3BlY3RzIGNvbW1vbiB0byBhbGwgb214IGNvbXBhdGlibGUgY29tcG9uZW50cy4gRm9yIGluc3RhbmNlLCBwb3J0IGVuYWJsaW5nL2Rpc2FibGluZywgZW51bWVyYXRpbmcgcG9ydCBmb3JtYXRzLCBzdGF0ZSB0cmFuc2l0aW9ucywgZmx1c2gsIC4uLiwgc3RheSBjb21tb24gdG8gYWxsIGNvbXBvbmVudHMgaXJyZXNwZWN0aXZlIG9mIHRoZSBzZXJ2aWNlIHRoZXkgb2ZmZXIuIFRlc3QgZml4dHVyZXMgYXJlIGRpcmVjdGVkIHRvd2FyZHMgdGVzdGluZyB0aGUgb214IGNvcmUuIEV2ZXJ5IHN0YW5kYXJkIE9NWCBjb21wYXRpYmxlIGNvbXBvbmVudCBpcyBleHBlY3RlZCB0byBwYXNzIHRoZXNlIHRlc3RzLgorCit1c2FnZTogVnRzSGFsTWVkaWFPbXhWMVxfMFRhcmdldENvbXBvbmVudFRlc3QgLUkgZGVmYXVsdCAtQyA8Y29tcCBuYW1lPiAtUiA8Y29tcCByb2xlPgorCisjIyMjIGF1ZGlvIDoKK1RoaXMgZm9sZGVyIGluY2x1ZGVzIHRlc3QgZml4dHVyZXMgYXNzb2NpYXRlZCB3aXRoIHRlc3RpbmcgYXVkaW8gZW5jb2RlciBhbmQgZGVjb2RlciBjb21wb25lbnRzIHN1Y2ggYXMgc2ltcGxlIGVuY29kaW5nIG9mIGEgcmF3IGNsaXAgb3IgZGVjb2Rpbmcgb2YgYW4gZWxlbWVudGFyeSBzdHJlYW0sIGVuZCBvZiBzdHJlYW0gdGVzdCwgdGltZXN0YW1wIGRldmlhdGlvbnMgdGVzdCwgZmx1c2ggdGVzdCBhbmQgc28gb24uIFRoZXNlIHRlc3RzIGFyZSBhaW1lZCB0b3dhcmRzIHRlc3RpbmcgdGhlIHBsdWdpbiB0aGF0IGNvbm5lY3RzIHRoZSBjb21wb25lbnQgdG8gdGhlIG9teCBjb3JlLgorCit1c2FnZToKKworVnRzSGFsTWVkaWFPbXhWMVxfMFRhcmdldEF1ZGlvRGVjVGVzdCAtSSBkZWZhdWx0IC1DIDxjb21wIG5hbWU+IC1SIGF1ZGlvX2RlY29kZXIuPGNvbXAgY2xhc3M+IC1QIC9zZGNhcmQvbWVkaWEvCisKK1Z0c0hhbE1lZGlhT214VjFcXzBUYXJnZXRBdWRpb0VuY1Rlc3QgLUkgZGVmYXVsdCAtQyA8Y29tcCBuYW1lPiAtUiBhdWRpb19lbmNvZGVyLjxjb21wIGNsYXNzPiAtUCAvc2RjYXJkL21lZGlhLworCisjIyMjIHZpZGVvIDoKK1RoaXMgZm9sZGVyIGluY2x1ZGVzIHRlc3QgZml4dHVyZXMgYXNzb2NpYXRlZCB3aXRoIHRlc3RpbmcgdmlkZW8gZW5jb2RlciBhbmQgZGVjb2RlciBjb21wb25lbnRzIHN1Y2ggYXMgc2ltcGxlIGVuY29kaW5nIG9mIGEgcmF3IGNsaXAgb3IgZGVjb2Rpbmcgb2YgYW4gZWxlbWVudGFyeSBzdHJlYW0sIGVuZCBvZiBzdHJlYW0gdGVzdCwgdGltZXN0YW1wIGRldmlhdGlvbnMgdGVzdCwgZmx1c2ggdGVzdCBhbmQgc28gb24uIFRoZXNlIHRlc3RzIGFyZSBhaW1lZCB0b3dhcmRzIHRlc3RpbmcgdGhlIHBsdWdpbiB0aGF0IGNvbm5lY3RzIHRoZSBjb21wb25lbnQgdG8gdGhlIG9teCBjb3JlLgorCit1c2FnZToKKworVnRzSGFsTWVkaWFPbXhWMVxfMFRhcmdldFZpZGVvRGVjVGVzdCAtSSBkZWZhdWx0IC1DIDxjb21wIG5hbWU+IC1SIHZpZGVvX2RlY29kZXIuPGNvbXAgY2xhc3M+IC1QIC9zZGNhcmQvbWVkaWEvCisKK1Z0c0hhbE1lZGlhT214VjFcXzBUYXJnZXRWaWRlb0VuY1Rlc3QgLUkgZGVmYXVsdCAtQyA8Y29tcCBuYW1lPiAtUiB2aWRlb19lbmNvZGVyLjxjb21wIGNsYXNzPiAtUCAvc2RjYXJkL21lZGlhLworCmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL0FuZHJvaWQuYnAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZjNzNjZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vQW5kcm9pZC5icApAQCAtMCwwICsxLDc5IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9FbmNUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0VuY1Rlc3QuY3BwIiwKKyAgICAgICAgICAgIm1lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsbWVtb3J5IiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYnN0YWdlZnJpZ2h0X2ZvdW5kYXRpb24iLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorICAgIGluY2x1ZGVfZGlyczogWworICAgICAgICAiZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9vcGVubWF4LyIsCisgICAgICAgICJoYXJkd2FyZS9pbnRlcmZhY2VzL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tbW9uIiwKKyAgICBdLAorfQorCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9EZWNUZXN0IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgc3JjczogWyJWdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0RlY1Rlc3QuY3BwIiwKKyAgICAgICAgICAgIm1lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsbWVtb3J5IiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYnN0YWdlZnJpZ2h0X2ZvdW5kYXRpb24iLAorICAgICAgICAiYW5kcm9pZC5oaWRsLmFsbG9jYXRvckAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oaWRsLm1lbW9yeUAxLjAiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZWRpYS5vbXhAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorICAgIGluY2x1ZGVfZGlyczogWworICAgICAgICAiZnJhbWV3b3Jrcy9uYXRpdmUvaW5jbHVkZS9tZWRpYS9vcGVubWF4LyIsCisgICAgICAgICJoYXJkd2FyZS9pbnRlcmZhY2VzL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tbW9uIiwKKyAgICBdLAorfQorCisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9EZWNUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9EZWNUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2MxODE3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0RlY1Rlc3QuY3BwCkBAIC0wLDAgKzEsMTEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibWVkaWFfb214X2hpZGxfYXVkaW9fZGVjX3Rlc3QiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9hbGxvY2F0b3IvMS4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE9ic2VydmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE5vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpNZXNzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6Q29kZWNCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNYXBwZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxtZWRpYV9hdWRpb19oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8bWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPGZzdHJlYW0+CisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAKK2NsYXNzIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9CisKKyAgICBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKSA6IGluc3RhbmNlKCJkZWZhdWx0IiksIHJlcygiL3NkY2FyZC9tZWRpYS8iKSB7fQorCisgICAgdm9pZCBzZXRJbnN0YW5jZShjb25zdCBjaGFyKiBfaW5zdGFuY2UpIHsgaW5zdGFuY2UgPSBfaW5zdGFuY2U7IH0KKworICAgIHZvaWQgc2V0Q29tcG9uZW50KGNvbnN0IGNoYXIqIF9jb21wb25lbnQpIHsgY29tcG9uZW50ID0gX2NvbXBvbmVudDsgfQorCisgICAgdm9pZCBzZXRSb2xlKGNvbnN0IGNoYXIqIF9yb2xlKSB7IHJvbGUgPSBfcm9sZTsgfQorCisgICAgdm9pZCBzZXRSZXMoY29uc3QgY2hhciogX3JlcykgeyByZXMgPSBfcmVzOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIGluc3RhbmNlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRDb21wb25lbnQoKSBjb25zdCB7IHJldHVybiBjb21wb25lbnQ7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldFJvbGUoKSBjb25zdCB7IHJldHVybiByb2xlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSZXMoKSBjb25zdCB7IHJldHVybiByZXM7IH0KKworICAgIGludCBpbml0RnJvbU9wdGlvbnMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgICAgIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKKyAgICAgICAgICAgIHsiaW5zdGFuY2UiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0knfSwKKyAgICAgICAgICAgIHsiY29tcG9uZW50IiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdDJ30sCisgICAgICAgICAgICB7InJvbGUiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ1InfSwKKyAgICAgICAgICAgIHsicmVzIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdQJ30sCisgICAgICAgICAgICB7MCwgMCwgMCwgMH19OworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiSTpDOlI6UDoiLCBvcHRpb25zLCAmaW5kZXgpOworICAgICAgICAgICAgaWYgKGMgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICAgICAgICAgIHNldEluc3RhbmNlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0MnOgorICAgICAgICAgICAgICAgICAgICBzZXRDb21wb25lbnQob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUic6CisgICAgICAgICAgICAgICAgICAgIHNldFJvbGUob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUCc6CisgICAgICAgICAgICAgICAgICAgIHNldFJlcyhvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW5kIDwgYXJnYykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlc1xuXG4iCisgICAgICAgICAgICAgICAgICAgICJ1c2FnZTogJXMgPGd0ZXN0IG9wdGlvbnM+IDx0ZXN0IG9wdGlvbnM+XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInRlc3Qgb3B0aW9ucyBhcmU6XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgIi1JLCAtLWluc3RhbmNlOiBIQUwgaW5zdGFuY2UgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLUMsIC0tY29tcG9uZW50OiBPTVggY29tcG9uZW50IHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1SLCAtLXJvbGU6IE9NWCBjb21wb25lbnQgUm9sZVxuIgorICAgICAgICAgICAgICAgICAgICAiLVAsIC0tcmVzOiBSZXNvdXJjZSBmaWxlcyBkaXJlY3RvcnkgbG9jYXRpb25cbiIsCisgICAgICAgICAgICAgICAgICAgIGFyZ3Zbb3B0aW5kID86IDFdLCBhcmd2WzBdKTsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICBoaWRsX3N0cmluZyBpbnN0YW5jZTsKKyAgICBoaWRsX3N0cmluZyBjb21wb25lbnQ7CisgICAgaGlkbF9zdHJpbmcgcm9sZTsKKyAgICBoaWRsX3N0cmluZyByZXM7Cit9OworCitzdGF0aWMgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KiBnRW52ID0gbnVsbHB0cjsKKworLy8gYXVkaW8gZGVjb2RlciB0ZXN0IGZpeHR1cmUgY2xhc3MKK2NsYXNzIEF1ZGlvRGVjSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgZGlzYWJsZVRlc3QgPSBmYWxzZTsKKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgICAgIG9teCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElPbXg+KAorICAgICAgICAgICAgZ0Vudi0+Z2V0SW5zdGFuY2UoKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXgsIG51bGxwdHIpOworICAgICAgICBvYnNlcnZlciA9CisgICAgICAgICAgICBuZXcgQ29kZWNPYnNlcnZlcihbdGhpc10oTWVzc2FnZSBtc2cpIHsgaGFuZGxlTWVzc2FnZShtc2cpOyB9KTsKKyAgICAgICAgQVNTRVJUX05FKG9ic2VydmVyLCBudWxscHRyKTsKKyAgICAgICAgaWYgKHN0cm5jbXAoZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSwgIk9NWC4iLCA0KSAhPSAwKQorICAgICAgICAgICAgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBFWFBFQ1RfVFJVRShvbXgtPmFsbG9jYXRlTm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdFbnYtPmdldENvbXBvbmVudCgpLCBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElPbXhOb2RlPiBjb25zdCYgX25sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+b214Tm9kZSA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teE5vZGUsIG51bGxwdHIpOworICAgICAgICBBU1NFUlRfTkUoZ0Vudi0+Z2V0Um9sZSgpLmVtcHR5KCksIHRydWUpIDw8ICJJbnZhbGlkIENvbXBvbmVudCBSb2xlIjsKKyAgICAgICAgc3RydWN0IFN0cmluZ1RvTmFtZSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBOYW1lOworICAgICAgICAgICAgc3RhbmRhcmRDb21wIENvbXBOYW1lOworICAgICAgICB9OworICAgICAgICBjb25zdCBTdHJpbmdUb05hbWUga1N0cmluZ1RvTmFtZVtdID0geworICAgICAgICAgICAgeyJtcDMiLCBtcDN9LCB7ImFtcm5iIiwgYW1ybmJ9LCAgICAgICB7ImFtcndiIiwgYW1yd2J9LAorICAgICAgICAgICAgeyJhYWMiLCBhYWN9LCB7InZvcmJpcyIsIHZvcmJpc30sICAgICB7Im9wdXMiLCBvcHVzfSwKKyAgICAgICAgICAgIHsicGNtIiwgcGNtfSwgeyJnNzExYWxhdyIsIGc3MTFhbGF3fSwgeyJnNzExbWxhdyIsIGc3MTFtbGF3fSwKKyAgICAgICAgICAgIHsiZ3NtIiwgZ3NtfSwgeyJyYXciLCByYXd9LAorICAgICAgICB9OworICAgICAgICBjb25zdCBzaXplX3Qga051bVN0cmluZ1RvTmFtZSA9CisgICAgICAgICAgICBzaXplb2Yoa1N0cmluZ1RvTmFtZSkgLyBzaXplb2Yoa1N0cmluZ1RvTmFtZVswXSk7CisgICAgICAgIGNvbnN0IGNoYXIqIHBjaDsKKyAgICAgICAgY2hhciBzdWJzdHJpbmdbT01YX01BWF9TVFJJTkdOQU1FX1NJWkVdOworICAgICAgICBzdHJjcHkoc3Vic3RyaW5nLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgICAgIHBjaCA9IHN0cmNocihzdWJzdHJpbmcsICcuJyk7CisgICAgICAgIEFTU0VSVF9ORShwY2gsIG51bGxwdHIpOworICAgICAgICBjb21wTmFtZSA9IHVua25vd25fY29tcDsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrTnVtU3RyaW5nVG9OYW1lOyArK2kpIHsKKyAgICAgICAgICAgIGlmICghc3RyY2FzZWNtcChwY2ggKyAxLCBrU3RyaW5nVG9OYW1lW2ldLk5hbWUpKSB7CisgICAgICAgICAgICAgICAgY29tcE5hbWUgPSBrU3RyaW5nVG9OYW1lW2ldLkNvbXBOYW1lOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjb21wTmFtZSA9PSB1bmtub3duX2NvbXApIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgc3RydWN0IENvbXBUb0NvZGluZyB7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgICAgICBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2Rpbmc7CisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBDb21wVG9Db2Rpbmcga0NvbXBUb0NvZGluZ1tdID0geworICAgICAgICAgICAge21wMywgT01YX0FVRElPX0NvZGluZ01QM30sCisgICAgICAgICAgICB7YW1ybmIsIE9NWF9BVURJT19Db2RpbmdBTVJ9LAorICAgICAgICAgICAge2FtcndiLCBPTVhfQVVESU9fQ29kaW5nQU1SfSwKKyAgICAgICAgICAgIHthYWMsIE9NWF9BVURJT19Db2RpbmdBQUN9LAorICAgICAgICAgICAge3ZvcmJpcywgT01YX0FVRElPX0NvZGluZ1ZPUkJJU30sCisgICAgICAgICAgICB7cGNtLCBPTVhfQVVESU9fQ29kaW5nUENNfSwKKyAgICAgICAgICAgIHtvcHVzLCAoT01YX0FVRElPX0NPRElOR1RZUEUpT01YX0FVRElPX0NvZGluZ0FuZHJvaWRPUFVTfSwKKyAgICAgICAgICAgIHtnNzExYWxhdywgT01YX0FVRElPX0NvZGluZ0c3MTF9LAorICAgICAgICAgICAge2c3MTFtbGF3LCBPTVhfQVVESU9fQ29kaW5nRzcxMX0sCisgICAgICAgICAgICB7Z3NtLCBPTVhfQVVESU9fQ29kaW5nR1NNRlJ9LAorICAgICAgICAgICAge3JhdywgT01YX0FVRElPX0NvZGluZ1BDTX0sCisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3Qga051bUNvbXBUb0NvZGluZyA9CisgICAgICAgICAgICBzaXplb2Yoa0NvbXBUb0NvZGluZykgLyBzaXplb2Yoa0NvbXBUb0NvZGluZ1swXSk7CisgICAgICAgIHNpemVfdCBpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwga051bUNvbXBUb0NvZGluZzsgKytpKSB7CisgICAgICAgICAgICBpZiAoa0NvbXBUb0NvZGluZ1tpXS5Db21wTmFtZSA9PSBjb21wTmFtZSkgeworICAgICAgICAgICAgICAgIGVFbmNvZGluZyA9IGtDb21wVG9Db2RpbmdbaV0uZUVuY29kaW5nOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpID09IGtOdW1Db21wVG9Db2RpbmcpIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgZW9zRmxhZyA9IGZhbHNlOworICAgICAgICBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgICAgIHRpbWVzdGFtcFVzID0gMDsKKyAgICAgICAgdGltZXN0YW1wRGV2VGVzdCA9IGZhbHNlOworICAgICAgICBpZiAoZGlzYWJsZVRlc3QpIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISAgVGVzdCBEaXNhYmxlZFxuIjsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIGlmIChvbXhOb2RlICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKChvbXhOb2RlLT5mcmVlTm9kZSgpKS5pc09rKCkpOworICAgICAgICAgICAgb214Tm9kZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBjYWxsYmFjayBmdW5jdGlvbiB0byBwcm9jZXNzIG1lc3NhZ2VzIHJlY2VpdmVkIGJ5IG9uTWVzc2FnZXMoKSBmcm9tIElMCisgICAgLy8gY2xpZW50LgorICAgIHZvaWQgaGFuZGxlTWVzc2FnZShNZXNzYWdlIG1zZykgeworICAgICAgICBpZiAobXNnLnR5cGUgPT0gTWVzc2FnZTo6VHlwZTo6RklMTF9CVUZGRVJfRE9ORSkgeworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS5mbGFncyAmIE9NWF9CVUZGRVJGTEFHX0VPUykgeworICAgICAgICAgICAgICAgIGVvc0ZsYWcgPSB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS5yYW5nZUxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICAgICAgZnJhbWVzUmVjZWl2ZWQgKz0gMTsKKyAgICAgICAgICAgICAgICAvLyBGb3IgZGVjb2RlciBjb21wb25lbnRzIGN1cnJlbnQgdGltZXN0YW1wIGFsd2F5cyBleGNlZWRzCisgICAgICAgICAgICAgICAgLy8gcHJldmlvdXMgdGltZXN0YW1wCisgICAgICAgICAgICAgICAgRVhQRUNUX0dFKG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS50aW1lc3RhbXBVcywgdGltZXN0YW1wVXMpOworICAgICAgICAgICAgICAgIHRpbWVzdGFtcFVzID0gbXNnLmRhdGEuZXh0ZW5kZWRCdWZmZXJEYXRhLnRpbWVzdGFtcFVzOworICAgICAgICAgICAgICAgIC8vIFRlc3QgaWYgY3VycmVudCB0aW1lc3RhbXAgaXMgYW1vbmcgdGhlIGxpc3Qgb2YgcXVldWVkCisgICAgICAgICAgICAgICAgLy8gdGltZXN0YW1wcworICAgICAgICAgICAgICAgIGlmICh0aW1lc3RhbXBEZXZUZXN0KSB7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgdHNIaXQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6TGlzdDx1aW50NjRfdD46Oml0ZXJhdG9yIGl0ID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcFVzbGlzdC5iZWdpbigpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaXQgIT0gdGltZXN0YW1wVXNsaXN0LmVuZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKml0ID09IHRpbWVzdGFtcFVzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wVXNsaXN0LmVyYXNlKGl0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0c0hpdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBpdCsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICh0c0hpdCA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRpbWVzdGFtcFVzbGlzdC5lbXB0eSgpID09IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHRzSGl0LCB0cnVlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiVGltZVN0YW1wIG5vdCByZWNvZ25pemVkIjsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjZXJyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8ICJbICAgICAgICAgIF0gV2FybmluZyAhIFJlY2VpdmVkIG5vbi16ZXJvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm91dHB1dCAvIFRpbWVTdGFtcCBub3QgcmVjb2duaXplZCBcbiI7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHRlc3RFT1MoYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIGJvb2wgc2lnbmFsRU9TID0gZmFsc2UpOworCisgICAgZW51bSBzdGFuZGFyZENvbXAgeworICAgICAgICBtcDMsCisgICAgICAgIGFtcm5iLAorICAgICAgICBhbXJ3YiwKKyAgICAgICAgYWFjLAorICAgICAgICB2b3JiaXMsCisgICAgICAgIG9wdXMsCisgICAgICAgIHBjbSwKKyAgICAgICAgZzcxMWFsYXcsCisgICAgICAgIGc3MTFtbGF3LAorICAgICAgICBnc20sCisgICAgICAgIHJhdywKKyAgICAgICAgdW5rbm93bl9jb21wLAorICAgIH07CisKKyAgICBzcDxJT214PiBvbXg7CisgICAgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXI7CisgICAgc3A8SU9teE5vZGU+IG9teE5vZGU7CisgICAgc3RhbmRhcmRDb21wIGNvbXBOYW1lOworICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZzsKKyAgICBib29sIGRpc2FibGVUZXN0OworICAgIGJvb2wgZW9zRmxhZzsKKyAgICB1aW50MzJfdCBmcmFtZXNSZWNlaXZlZDsKKyAgICB1aW50NjRfdCB0aW1lc3RhbXBVczsKKyAgICA6OmFuZHJvaWQ6Okxpc3Q8dWludDY0X3Q+IHRpbWVzdGFtcFVzbGlzdDsKKyAgICBib29sIHRpbWVzdGFtcERldlRlc3Q7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCBkZXNjcmlwdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICAgIH0KK307CisKKy8vIGVuZCBvZiBzdHJlYW0gdGVzdCBmb3IgYXVkaW8gZGVjb2RlciBjb21wb25lbnRzCit2b2lkIEF1ZGlvRGVjSGlkbFRlc3Q6OnRlc3RFT1MoYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNpZ25hbEVPUykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHNpemVfdCBpID0gMDsKKyAgICBpZiAoc2lnbmFsRU9TKSB7CisgICAgICAgIGlmICgoaSA9IGdldEVtcHR5QnVmZmVySUQoaUJ1ZmZlcikpIDwgaUJ1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICAvLyBzaWduYWwgYW4gZW1wdHkgYnVmZmVyIHdpdGggZmxhZyBzZXQgdG8gRU9TCisgICAgICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGksIDAsIE9NWF9CVUZGRVJGTEFHX0VPUywgMCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgLy8gRGlzcGF0Y2ggYWxsIGNsaWVudCBvd25lZCBvdXRwdXQgYnVmZmVycyB0byByZWNvdmVyIHJlbWFpbmluZyBmcmFtZXMKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAoKGkgPSBnZXRFbXB0eUJ1ZmZlcklEKG9CdWZmZXIpKSA8IG9CdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICB3aGlsZSAoMSkgeworICAgICAgICBNZXNzYWdlIG1zZzsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKyAgICAgICAgZm9yICg7IGkgPCBpQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCgqaUJ1ZmZlcilbaV0ub3duZXIgIT0gY2xpZW50KSBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBpQnVmZmVyLT5zaXplKCkpIGJyZWFrOworICAgIH0KKyAgICAvLyB0ZXN0IGZvciBmbGFnCisgICAgRVhQRUNUX0VRKGVvc0ZsYWcsIHRydWUpOworICAgIGVvc0ZsYWcgPSBmYWxzZTsKK30KKworLy8gU2V0IERlZmF1bHQgcG9ydCBwYXJhbS4KK3ZvaWQgc2V0RGVmYXVsdFBvcnRQYXJhbSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZywKKyAgICBpbnQzMl90IG5DaGFubmVscyA9IDIsIGludDMyX3QgblNhbXBsZVJhdGUgPSA0NDEwMCwKKyAgICBPTVhfQVVESU9fUENNTU9ERVRZUEUgZVBDTU1vZGUgPSBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwKKyAgICBPTVhfTlVNRVJJQ0FMREFUQVRZUEUgZU51bURhdGEgPSBPTVhfTnVtZXJpY2FsRGF0YVNpZ25lZCwKKyAgICBpbnQzMl90IG5CaXRQZXJTYW1wbGUgPSAxNikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBvcnREZWYuZm9ybWF0LmF1ZGlvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgIHBvcnREZWYuZm9ybWF0LmF1ZGlvLmVFbmNvZGluZyA9IGVFbmNvZGluZzsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBzd2l0Y2ggKChpbnQpZUVuY29kaW5nKSB7CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ1BDTToKKyAgICAgICAgICAgIHNldHVwUENNUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIG5DaGFubmVscywgZU51bURhdGEsIG5CaXRQZXJTYW1wbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgblNhbXBsZVJhdGUsIGVQQ01Nb2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdBQUM6CisgICAgICAgICAgICBzZXR1cEFBQ1BvcnQob214Tm9kZSwgcG9ydEluZGV4LCBPTVhfQVVESU9fQUFDT2JqZWN0TnVsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDU3RyZWFtRm9ybWF0TVA0RkYsIG5DaGFubmVscywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBuU2FtcGxlUmF0ZSk7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8vIEluIGRlY29kZXIgY29tcG9uZW50cywgb2Z0ZW4gdGhlIGlucHV0IHBvcnQgcGFyYW1ldGVycyBnZXQgdXBkYXRlZCB1cG9uCisvLyBwYXJzaW5nIHRoZSBoZWFkZXIgb2YgZWxlbWVudGFyeSBzdHJlYW0uIENsaWVudCBuZWVkcyB0byBjb2xsZWN0IHRoaXMKKy8vIGluZm9ybWF0aW9uIHRvIHJlY29uZmlndXJlIG90aGVyIHBvcnRzIHRoYXQgc2hhcmUgZGF0YSB3aXRoIHRoaXMgaW5wdXQKKy8vIHBvcnQuCit2b2lkIGdldElucHV0Q2hhbm5lbEluZm8oc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZywgaW50MzJfdCogbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QqIG5TYW1wbGVSYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgKm5DaGFubmVscyA9IDA7CisgICAgKm5TYW1wbGVSYXRlID0gMDsKKworICAgIHN3aXRjaCAoKGludCllRW5jb2RpbmcpIHsKKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nR1NNRlI6CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ0c3MTE6CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ1BDTTogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX1BDTU1PREVUWVBFIHBhcmFtOworICAgICAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9QY20sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcGFyYW0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICpuQ2hhbm5lbHMgPSBwYXJhbS5uQ2hhbm5lbHM7CisgICAgICAgICAgICAqblNhbXBsZVJhdGUgPSBwYXJhbS5uU2FtcGxpbmdSYXRlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nTVAzOiB7CisgICAgICAgICAgICBPTVhfQVVESU9fUEFSQU1fTVAzVFlQRSBwYXJhbTsKKyAgICAgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvTXAzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBhcmFtKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICAqbkNoYW5uZWxzID0gcGFyYW0ubkNoYW5uZWxzOworICAgICAgICAgICAgKm5TYW1wbGVSYXRlID0gcGFyYW0ublNhbXBsZVJhdGU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdBbmRyb2lkT1BVUzogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX0FORFJPSURfT1BVU1RZUEUgcGFyYW07CisgICAgICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbUF1ZGlvQW5kcm9pZE9wdXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcGFyYW0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICpuQ2hhbm5lbHMgPSBwYXJhbS5uQ2hhbm5lbHM7CisgICAgICAgICAgICAqblNhbXBsZVJhdGUgPSBwYXJhbS5uU2FtcGxlUmF0ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ1ZPUkJJUzogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX1ZPUkJJU1RZUEUgcGFyYW07CisgICAgICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1ZvcmJpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZwYXJhbSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgKm5DaGFubmVscyA9IHBhcmFtLm5DaGFubmVsczsKKyAgICAgICAgICAgICpuU2FtcGxlUmF0ZSA9IHBhcmFtLm5TYW1wbGVSYXRlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBPTVhfQVVESU9fQ29kaW5nQU1SOiB7CisgICAgICAgICAgICBPTVhfQVVESU9fUEFSQU1fQU1SVFlQRSBwYXJhbTsKKyAgICAgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvQW1yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBhcmFtKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICAqbkNoYW5uZWxzID0gcGFyYW0ubkNoYW5uZWxzOworICAgICAgICAgICAgKm5TYW1wbGVSYXRlID0gODAwMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ0FBQzogeworICAgICAgICAgICAgT01YX0FVRElPX1BBUkFNX0FBQ1BST0ZJTEVUWVBFIHBhcmFtOworICAgICAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9BYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmcGFyYW0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICpuQ2hhbm5lbHMgPSBwYXJhbS5uQ2hhbm5lbHM7CisgICAgICAgICAgICAqblNhbXBsZVJhdGUgPSBwYXJhbS5uU2FtcGxlUmF0ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8vIExvb2tVcFRhYmxlIG9mIGNsaXBzIGFuZCBtZXRhZGF0YSBmb3IgY29tcG9uZW50IHRlc3RpbmcKK3ZvaWQgR2V0VVJMRm9yQ29tcG9uZW50KEF1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcCBjb21wLCBjaGFyKiBtVVJMLAorICAgICAgICAgICAgICAgICAgICAgICAgY2hhciogaW5mbykgeworICAgIHN0cnVjdCBDb21wVG9VUkwgeworICAgICAgICBBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcDsKKyAgICAgICAgY29uc3QgY2hhciogbVVSTDsKKyAgICAgICAgY29uc3QgY2hhciogaW5mbzsKKyAgICB9OworICAgIHN0YXRpYyBjb25zdCBDb21wVG9VUkwga0NvbXBUb1VSTFtdID0geworICAgICAgICB7QXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjptcDMsCisgICAgICAgICAiYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6Lm1wMyIsCisgICAgICAgICAiYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YWFjLAorICAgICAgICAgImJiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5hYWMiLAorICAgICAgICAgImJiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmFtcm5iLAorICAgICAgICAgInNpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouYW1ybmIiLAorICAgICAgICAgInNpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouaW5mbyJ9LAorICAgICAgICB7QXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjphbXJ3YiwKKyAgICAgICAgICJiYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmFtcndiIiwKKyAgICAgICAgICJiYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6dm9yYmlzLAorICAgICAgICAgImJiYl92b3JiaXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei52b3JiaXMiLAorICAgICAgICAgImJiYl92b3JiaXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6Om9wdXMsCisgICAgICAgICAiYmJiX29wdXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5vcHVzIiwKKyAgICAgICAgICJiYmJfb3B1c19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6ZzcxMWFsYXcsICJiYmJfZzcxMWFsYXdfMWNoXzhraHoucmF3IiwKKyAgICAgICAgICJiYmJfZzcxMWFsYXdfMWNoXzhraHouaW5mbyJ9LAorICAgICAgICB7QXVkaW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjpnNzExbWxhdywgImJiYl9nNzExbXVsYXdfMWNoXzhraHoucmF3IiwKKyAgICAgICAgICJiYmJfZzcxMW11bGF3XzFjaF84a2h6LmluZm8ifSwKKyAgICAgICAge0F1ZGlvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6Z3NtLCAiYmJiX2dzbV8xY2hfOGtoel8xM2ticHMucmF3IiwKKyAgICAgICAgICJiYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5pbmZvIn0sCisgICAgICAgIHtBdWRpb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OnJhdywgImJiYl9yYXdfMWNoXzhraHpfczMybGUucmF3IiwKKyAgICAgICAgICJiYmJfcmF3XzFjaF84a2h6X3MzMmxlLmluZm8ifSwKKyAgICB9OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2Yoa0NvbXBUb1VSTCkgLyBzaXplb2Yoa0NvbXBUb1VSTFswXSk7ICsraSkgeworICAgICAgICBpZiAoa0NvbXBUb1VSTFtpXS5jb21wID09IGNvbXApIHsKKyAgICAgICAgICAgIHN0cmNhdChtVVJMLCBrQ29tcFRvVVJMW2ldLm1VUkwpOworICAgICAgICAgICAgc3RyY2F0KGluZm8sIGtDb21wVG9VUkxbaV0uaW5mbyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHBvcnQgc2V0dGluZ3MgcmVjb25maWd1cmF0aW9uIGR1cmluZyBydW50aW1lLiByZWNvbmZpZ3VyZXMgc2FtcGxlIHJhdGUgYW5kCisvLyBudW1iZXIKK3ZvaWQgcG9ydFJlY29uZmlndXJhdGlvbihzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlIG1zZykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRQb3J0U2V0dGluZ3NDaGFuZ2VkKSB7CisgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RGlzYWJsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCkgeworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIC8vIHRlc3QgaWYgY2xpZW50IGdvdCBhbGwgaXRzIGJ1ZmZlcnMgYmFjaworICAgICAgICAgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgICAgICAgICAgICAgIC8vIGZyZWUgdGhlIGJ1ZmZlcnMKKyAgICAgICAgICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgICAgICAgICBvbXhOb2RlLT5mcmVlQnVmZmVyKGtQb3J0SW5kZXhPdXRwdXQsICgqb0J1ZmZlcilbaV0uaWQpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb0J1ZmZlcik7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydERpc2FibGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICAgICAgICAgIC8vIHNldCBQb3J0IFBhcmFtcworICAgICAgICAgICAgaW50MzJfdCBuQ2hhbm5lbHM7CisgICAgICAgICAgICBpbnQzMl90IG5TYW1wbGVSYXRlOworICAgICAgICAgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgJm5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5TYW1wbGVSYXRlKTsKKyAgICAgICAgICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbkNoYW5uZWxzLCBuU2FtcGxlUmF0ZSk7CisKKyAgICAgICAgICAgIC8vIElmIHlvdSBjYW4gZGlzYWJsZSBhIHBvcnQsIHRoZW4geW91IHNob3VsZCBiZSBhYmxlIHRvCisgICAgICAgICAgICAvLyBlbmFibGUKKyAgICAgICAgICAgIC8vIGl0IGFzIHdlbGwKKyAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgIHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RW5hYmxlKSwga1BvcnRJbmRleE91dHB1dCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAgICAgICAgIC8vIGRvIG5vdCBlbmFibGUgdGhlIHBvcnQgdW50aWwgYWxsIHRoZSBidWZmZXJzIGFyZSBzdXBwbGllZAorICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvQnVmZmVyKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgICAgICAgICAgYWxsb2NhdGVQb3J0QnVmZmVycyhvbXhOb2RlLCBvQnVmZmVyLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb0J1ZmZlcik7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydEVuYWJsZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgICAgICAgICAgLy8gZGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcnMKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIEVYUEVDVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKworLy8gYmxvY2tpbmcgY2FsbCB0byBlbnN1cmVzIGFwcGxpY2F0aW9uIHRvIFdhaXQgdGlsbCBhbGwgdGhlIGlucHV0cyBhcmUgY29uc3VtZWQKK3ZvaWQgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgc2l6ZV90IGkgPSAwOworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIEVYUEVDVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgcG9ydFJlY29uZmlndXJhdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgaUJ1ZmZlciwgb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIG1zZyk7CisgICAgICAgIH0KKyAgICAgICAgLy8gc3RhdHVzID09IFRJTUVEX09VVCwgaXQgY291bGQgYmUgZHVlIHRvIHByb2Nlc3MgdGltZSBiZWluZyBsYXJnZQorICAgICAgICAvLyB0aGFuIERFRkFVTFRfVElNRU9VVCBvciBjb21wb25lbnQgbmVlZHMgb3V0cHV0IGJ1ZmZlcnMgdG8gc3RhcnQKKyAgICAgICAgLy8gcHJvY2Vzc2luZy4KKyAgICAgICAgZm9yICg7IGkgPCBpQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgaWYgKCgqaUJ1ZmZlcilbaV0ub3duZXIgIT0gY2xpZW50KSBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBpQnVmZmVyLT5zaXplKCkpIGJyZWFrOworCisgICAgICAgIC8vIERpc3BhdGNoIGFuIG91dHB1dCBidWZmZXIgYXNzdW1pbmcgb3V0UXVldWUuZW1wdHkoKSBpcyB0cnVlCisgICAgICAgIHNpemVfdCBpbmRleDsKKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpbmRleCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIERlY29kZSBOIEZyYW1lcwordm9pZCBkZWNvZGVORnJhbWVzKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZywgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LCBzdGQ6Omlmc3RyZWFtJiBlbGVTdHJlYW0sCisgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4qIEluZm8sIGludCBvZmZzZXQsIGludCByYW5nZSwKKyAgICAgICAgICAgICAgICAgICBib29sIHNpZ25hbEVPUyA9IHRydWUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIGRpc3BhdGNoIG91dHB1dCBidWZmZXJzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpKTsKKyAgICB9CisgICAgLy8gZGlzcGF0Y2ggaW5wdXQgYnVmZmVycworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICBpbnQgZnJhbWVJRCA9IG9mZnNldDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgKGkgPCBpQnVmZmVyLT5zaXplKCkpICYmIChmcmFtZUlEIDwgKGludClJbmZvLT5zaXplKCkpICYmCisgICAgICAgICAgICAgICAgICAgICAgIChmcmFtZUlEIDwgKG9mZnNldCArIHJhbmdlKSk7CisgICAgICAgICBpKyspIHsKKyAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKyAgICAgICAgQVNTRVJUX0xFKCgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uZ2NvdW50KCksICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgIGZsYWdzID0gKCpJbmZvKVtmcmFtZUlEXS5mbGFnczsKKyAgICAgICAgaWYgKHNpZ25hbEVPUyAmJiAoKGZyYW1lSUQgPT0gKGludClJbmZvLT5zaXplKCkgLSAxKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAoZnJhbWVJRCA9PSAob2Zmc2V0ICsgcmFuZ2UgLSAxKSkpKQorICAgICAgICAgICAgZmxhZ3MgfD0gT01YX0JVRkZFUkZMQUdfRU9TOworICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGksICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgKCpJbmZvKVtmcmFtZUlEXS50aW1lc3RhbXApOworICAgICAgICBmcmFtZUlEKys7CisgICAgfQorCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworCisgICAgICAgIC8vIFBvcnQgUmVjb25maWd1cmF0aW9uCisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0sgJiYKKyAgICAgICAgICAgIG1zZy50eXBlID09IE1lc3NhZ2U6OlR5cGU6OkVWRU5UKSB7CisgICAgICAgICAgICBwb3J0UmVjb25maWd1cmF0aW9uKG9teE5vZGUsIG9ic2VydmVyLCBpQnVmZmVyLCBvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgbXNnKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChmcmFtZUlEID09IChpbnQpSW5mby0+c2l6ZSgpIHx8IGZyYW1lSUQgPT0gKG9mZnNldCArIHJhbmdlKSkgYnJlYWs7CisKKyAgICAgICAgLy8gRGlzcGF0Y2ggaW5wdXQgYnVmZmVyCisgICAgICAgIHNpemVfdCBpbmRleCA9IDA7CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKGlCdWZmZXIpKSA8IGlCdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KCgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICAgICAgQVNTRVJUX0xFKCgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KCgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFNpemUoKSkpOworICAgICAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgICAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmdjb3VudCgpLCAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQpOworICAgICAgICAgICAgZmxhZ3MgPSAoKkluZm8pW2ZyYW1lSURdLmZsYWdzOworICAgICAgICAgICAgaWYgKHNpZ25hbEVPUyAmJiAoKGZyYW1lSUQgPT0gKGludClJbmZvLT5zaXplKCkgLSAxKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZyYW1lSUQgPT0gKG9mZnNldCArIHJhbmdlIC0gMSkpKSkKKyAgICAgICAgICAgICAgICBmbGFncyB8PSBPTVhfQlVGRkVSRkxBR19FT1M7CisgICAgICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKkluZm8pW2ZyYW1lSURdLnRpbWVzdGFtcCk7CisgICAgICAgICAgICBmcmFtZUlEKys7CisgICAgICAgIH0KKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpbmRleCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHNldCBjb21wb25lbnQgcm9sZQorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIFNldFJvbGUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBTZXQgQ29tcG9uZW50IFJvbGUiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gcG9ydCBmb3JtYXQgZW51bWVyYXRpb24KK1RFU1RfRihBdWRpb0RlY0hpZGxUZXN0LCBFbnVtZXJhdGVQb3J0Rm9ybWF0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgQ29tcG9uZW50IG9uIE1hbmRhdG9yeSBQb3J0IFBhcmFtZXRlcnMgKFBvcnQgRm9ybWF0KSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBzdGF0dXMgPSBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfQVVESU9fQ29kaW5nUENNKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gdGVzdCBwb3J0IHNldHRpbmdzIHJlY29uZmlndXJhdGlvbiwgZWxlbWVudGFyeSBzdHJlYW0gZGVjb2RlIGFuZCB0aW1lc3RhbXAKKy8vIGRldmlhdGlvbgorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIERlY29kZVRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgUG9ydCBSZWNvbmZpZ3VyYXRpb24sIERlY29kZSBhbmQgdGltZXN0YW1wIGRldmlhdGlvbiIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXSwgaW5mb1s1MTJdOworICAgIHN0cmNweShtVVJMLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBzdHJjcHkoaW5mbywgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KGNvbXBOYW1lLCBtVVJMLCBpbmZvKTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtLCBlbGVJbmZvOworCisgICAgZWxlSW5mby5vcGVuKGluZm8pOworICAgIEFTU0VSVF9FUShlbGVJbmZvLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4gSW5mbzsKKyAgICBpbnQgYnl0ZXNDb3VudCA9IDA7CisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIHVpbnQzMl90IHRpbWVzdGFtcCA9IDA7CisgICAgdGltZXN0YW1wRGV2VGVzdCA9IHRydWU7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKCEoZWxlSW5mbyA+PiBieXRlc0NvdW50KSkgYnJlYWs7CisgICAgICAgIGVsZUluZm8gPj4gZmxhZ3M7CisgICAgICAgIGVsZUluZm8gPj4gdGltZXN0YW1wOworICAgICAgICBJbmZvLnB1c2hfYmFjayh7Ynl0ZXNDb3VudCwgZmxhZ3MsIHRpbWVzdGFtcH0pOworICAgICAgICBpZiAoZmxhZ3MgIT0gT01YX0JVRkZFUkZMQUdfQ09ERUNDT05GSUcpCisgICAgICAgICAgICB0aW1lc3RhbXBVc2xpc3QucHVzaF9iYWNrKHRpbWVzdGFtcCk7CisgICAgfQorICAgIGVsZUluZm8uY2xvc2UoKTsKKworICAgIGludDMyX3QgbkNoYW5uZWxzLCBuU2FtcGxlUmF0ZTsKKyAgICAvLyBDb25maWd1cmUgaW5wdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcpOworICAgIGlmIChjb21wTmFtZSA9PSByYXcpCisgICAgICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsIDEsIDgwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX1BDTU1vZGVMaW5lYXIsIE9NWF9OdW1lcmljYWxEYXRhU2lnbmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKTsKKyAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nLCAmbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgJm5TYW1wbGVSYXRlKTsKKyAgICAvLyBDb25maWd1cmUgb3V0cHV0IHBvcnQKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9BVURJT19Db2RpbmdQQ00sCisgICAgICAgICAgICAgICAgICAgICAgICBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisgICAgLy8gUG9ydCBSZWNvbmZpZ3VyYXRpb24KKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwKKyAgICAgICAgICAgICAgICAgIChpbnQpSW5mby5zaXplKCkpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICB0ZXN0RU9TKCZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgRVhQRUNUX0VRKHRpbWVzdGFtcFVzbGlzdC5lbXB0eSgpLCB0cnVlKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBlbmQgb2Ygc2VxdWVuY2UgdGVzdAorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIEVPU1Rlc3RfTSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IGVuZCBvZiBzdHJlYW0gbW9ua2V5aW5nIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgaW50MzJfdCBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlOworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZyk7CisgICAgaWYgKGNvbXBOYW1lID09IHJhdykKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgMSwgODAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwgT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsICZuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAmblNhbXBsZVJhdGUpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGF0IHRoZSBzdGFydAorICAgIHRlc3RFT1MoJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlKTsKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIEVYUEVDVF9HRShmcmFtZXNSZWNlaXZlZCwgMFUpOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICB0aW1lc3RhbXBVcyA9IDA7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBlbmQgb2Ygc2VxdWVuY2UgdGVzdAorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIFRodW1ibmFpbFRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBSZXF1ZXN0IGZvciB0aHVtYm5haWwiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgaW50MzJfdCBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlOworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZyk7CisgICAgaWYgKGNvbXBOYW1lID09IHJhdykKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgMSwgODAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwgT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsICZuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAmblNhbXBsZVJhdGUpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGZvciB0aHVtYm5haWwKKyAgICAvLyBzaWduYWwgRU9TIGZsYWcgd2l0aCBsYXN0IGZyYW1lCisgICAgc2l6ZV90IGkgPSAwOworICAgIHdoaWxlICghKEluZm9baV0uZmxhZ3MgJiBPTVhfQlVGRkVSRkxBR19TWU5DRlJBTUUpKSBpKys7CisgICAgZWxlU3RyZWFtLm9wZW4obVVSTCwgc3RkOjppZnN0cmVhbTo6YmluYXJ5KTsKKyAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsCisgICAgICAgICAgICAgICAgICBpICsgMSk7CisgICAgZWxlU3RyZWFtLmNsb3NlKCk7CisgICAgd2FpdE9uSW5wdXRDb25zdW1wdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIHRlc3RFT1MoJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIEVYUEVDVF9HRShmcmFtZXNSZWNlaXZlZCwgMVUpOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICB0aW1lc3RhbXBVcyA9IDA7CisKKyAgICAvLyBzaWduYWwgRU9TIGZsYWcgYWZ0ZXIgbGFzdCBmcmFtZQorICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBlbGVTdHJlYW0sICZJbmZvLCAwLCBpICsgMSwKKyAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKKyAgICB3YWl0T25JbnB1dENvbnN1bXB0aW9uKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgdGVzdEVPUygmaUJ1ZmZlciwgJm9CdWZmZXIsIHRydWUpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgRVhQRUNUX0dFKGZyYW1lc1JlY2VpdmVkLCAxVSk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIGVuZCBvZiBzZXF1ZW5jZSB0ZXN0CitURVNUX0YoQXVkaW9EZWNIaWRsVGVzdCwgU2ltcGxlRU9TVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IGVuZCBvZiBzdHJlYW0iKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgaW50MzJfdCBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlOworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZyk7CisgICAgaWYgKGNvbXBOYW1lID09IHJhdykKKyAgICAgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIGVFbmNvZGluZywgMSwgODAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fUENNTW9kZUxpbmVhciwgT01YX051bWVyaWNhbERhdGFTaWduZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzIpOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsICZuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAmblNhbXBsZVJhdGUpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5DaGFubmVscywgblNhbXBsZVJhdGUpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGF0IHRoZSBlbmQKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwKKyAgICAgICAgICAgICAgICAgIChpbnQpSW5mby5zaXplKCkpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICB0ZXN0RU9TKCZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgZmx1c2hQb3J0cyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICBmcmFtZXNSZWNlaXZlZCA9IDA7CisgICAgdGltZXN0YW1wVXMgPSAwOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gdGVzdCBpbnB1dC9vdXRwdXQgcG9ydCBmbHVzaAorVEVTVF9GKEF1ZGlvRGVjSGlkbFRlc3QsIEZsdXNoVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IEZsdXNoIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIGNoYXIgbVVSTFs1MTJdLCBpbmZvWzUxMl07CisgICAgc3RyY3B5KG1VUkwsIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIHN0cmNweShpbmZvLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBHZXRVUkxGb3JDb21wb25lbnQoY29tcE5hbWUsIG1VUkwsIGluZm8pOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW0sIGVsZUluZm87CisKKyAgICBlbGVJbmZvLm9wZW4oaW5mbyk7CisgICAgQVNTRVJUX0VRKGVsZUluZm8uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBhbmRyb2lkOjpWZWN0b3I8RnJhbWVEYXRhPiBJbmZvOworICAgIGludCBieXRlc0NvdW50ID0gMDsKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgdWludDMyX3QgdGltZXN0YW1wID0gMDsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAoIShlbGVJbmZvID4+IGJ5dGVzQ291bnQpKSBicmVhazsKKyAgICAgICAgZWxlSW5mbyA+PiBmbGFnczsKKyAgICAgICAgZWxlSW5mbyA+PiB0aW1lc3RhbXA7CisgICAgICAgIEluZm8ucHVzaF9iYWNrKHtieXRlc0NvdW50LCBmbGFncywgdGltZXN0YW1wfSk7CisgICAgfQorICAgIGVsZUluZm8uY2xvc2UoKTsKKworICAgIGludDMyX3QgbkNoYW5uZWxzLCBuU2FtcGxlUmF0ZTsKKyAgICAvLyBDb25maWd1cmUgaW5wdXQgcG9ydAorICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcpOworICAgIGlmIChjb21wTmFtZSA9PSByYXcpCisgICAgICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBlRW5jb2RpbmcsIDEsIDgwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX1BDTU1vZGVMaW5lYXIsIE9NWF9OdW1lcmljYWxEYXRhU2lnbmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKTsKKyAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUVuY29kaW5nLCAmbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgJm5TYW1wbGVSYXRlKTsKKyAgICAvLyBDb25maWd1cmUgb3V0cHV0IHBvcnQKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9BVURJT19Db2RpbmdQQ00sCisgICAgICAgICAgICAgICAgICAgICAgICBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICAvLyBEZWNvZGUgMTI4IGZyYW1lcyBhbmQgZmx1c2guIGhlcmUgMTI4IGlzIGNob3NlbiB0byBlbnN1cmUgdGhlcmUgaXMgYSBrZXkKKyAgICAvLyBmcmFtZSBhZnRlciB0aGlzIHNvIHRoYXQgdGhlIGJlbG93IHNlY3Rpb24gY2FuIGJlIGNvbnZlcmVkIGZvciBhbGwKKyAgICAvLyBjb21wb25lbnRzCisgICAgaW50IG5GcmFtZXMgPSAxMjg7CisgICAgZWxlU3RyZWFtLm9wZW4obVVSTCwgc3RkOjppZnN0cmVhbTo6YmluYXJ5KTsKKyAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBlRW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsCisgICAgICAgICAgICAgICAgICBuRnJhbWVzLCBmYWxzZSk7CisgICAgLy8gTm90ZTogQXNzdW1lcyAyMDAgbXMgaXMgZW5vdWdoIHRvIGVuZCBhbnkgZGVjb2RlIGNhbGwgdGhhdCBzdGFydGVkCisgICAgZmx1c2hQb3J0cyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAyMDAwMDApOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKworICAgIC8vIFNlZWsgdG8gbmV4dCBrZXkgZnJhbWUgYW5kIHN0YXJ0IGRlY29kaW5nIHRpbGwgdGhlIGVuZAorICAgIGludCBpbmRleCA9IG5GcmFtZXM7CisgICAgYm9vbCBrZXlGcmFtZSA9IGZhbHNlOworICAgIHdoaWxlIChpbmRleCA8IChpbnQpSW5mby5zaXplKCkpIHsKKyAgICAgICAgaWYgKChJbmZvW2luZGV4XS5mbGFncyAmIE9NWF9CVUZGRVJGTEFHX1NZTkNGUkFNRSkgPT0KKyAgICAgICAgICAgIE9NWF9CVUZGRVJGTEFHX1NZTkNGUkFNRSkgeworICAgICAgICAgICAgdGltZXN0YW1wVXMgPSBJbmZvW2luZGV4IC0gMV0udGltZXN0YW1wOworICAgICAgICAgICAga2V5RnJhbWUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZWxlU3RyZWFtLmlnbm9yZShJbmZvW2luZGV4XS5ieXRlc0NvdW50KTsKKyAgICAgICAgaW5kZXgrKzsKKyAgICB9CisgICAgaWYgKGtleUZyYW1lKSB7CisgICAgICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwgZUVuY29kaW5nLAorICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywKKyAgICAgICAgICAgICAgICAgICAgICBpbmRleCwgSW5mby5zaXplKCkgLSBpbmRleCwgZmFsc2UpOworICAgIH0KKyAgICAvLyBOb3RlOiBBc3N1bWVzIDIwMCBtcyBpcyBlbm91Z2ggdG8gZW5kIGFueSBkZWNvZGUgY2FsbCB0aGF0IHN0YXJ0ZWQKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIDIwMDAwMCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9FbmNUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0QXVkaW9FbmNUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZDRlODRmCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRBdWRpb0VuY1Rlc3QuY3BwCkBAIC0wLDAgKzEsNDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF9hdWRpb19lbmNfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG1lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxtZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8ZnN0cmVhbT4KKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cAorY2xhc3MgQ29tcG9uZW50VGVzdEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworICAgIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpIDogaW5zdGFuY2UoImRlZmF1bHQiKSwgcmVzKCIvc2RjYXJkL21lZGlhLyIpIHt9CisKKyAgICB2b2lkIHNldEluc3RhbmNlKGNvbnN0IGNoYXIqIF9pbnN0YW5jZSkgeyBpbnN0YW5jZSA9IF9pbnN0YW5jZTsgfQorCisgICAgdm9pZCBzZXRDb21wb25lbnQoY29uc3QgY2hhciogX2NvbXBvbmVudCkgeyBjb21wb25lbnQgPSBfY29tcG9uZW50OyB9CisKKyAgICB2b2lkIHNldFJvbGUoY29uc3QgY2hhciogX3JvbGUpIHsgcm9sZSA9IF9yb2xlOyB9CisKKyAgICB2b2lkIHNldFJlcyhjb25zdCBjaGFyKiBfcmVzKSB7IHJlcyA9IF9yZXM7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldEluc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gaW5zdGFuY2U7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldENvbXBvbmVudCgpIGNvbnN0IHsgcmV0dXJuIGNvbXBvbmVudDsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Um9sZSgpIGNvbnN0IHsgcmV0dXJuIHJvbGU7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldFJlcygpIGNvbnN0IHsgcmV0dXJuIHJlczsgfQorCisgICAgaW50IGluaXRGcm9tT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICAgICAgc3RhdGljIHN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0geworICAgICAgICAgICAgeyJpbnN0YW5jZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnSSd9LAorICAgICAgICAgICAgeyJjb21wb25lbnQiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0MnfSwKKyAgICAgICAgICAgIHsicm9sZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUid9LAorICAgICAgICAgICAgeyJyZXMiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ1AnfSwKKyAgICAgICAgICAgIHswLCAwLCAwLCAwfX07CisKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgIGludCBpbmRleCA9IDA7CisgICAgICAgICAgICBpbnQgYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJJOkM6UjpQOiIsIG9wdGlvbnMsICZpbmRleCk7CisgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdJJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0SW5zdGFuY2Uob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAgICAgICAgICAgIHNldENvbXBvbmVudChvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdSJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Um9sZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdQJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0UmVzKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJz8nOgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcHRpbmQgPCBhcmdjKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgInVucmVjb2duaXplZCBvcHRpb246ICVzXG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInVzYWdlOiAlcyA8Z3Rlc3Qgb3B0aW9ucz4gPHRlc3Qgb3B0aW9ucz5cblxuIgorICAgICAgICAgICAgICAgICAgICAidGVzdCBvcHRpb25zIGFyZTpcblxuIgorICAgICAgICAgICAgICAgICAgICAiLUksIC0taW5zdGFuY2U6IEhBTCBpbnN0YW5jZSB0byB0ZXN0XG4iCisgICAgICAgICAgICAgICAgICAgICItQywgLS1jb21wb25lbnQ6IE9NWCBjb21wb25lbnQgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLVIsIC0tcm9sZTogT01YIGNvbXBvbmVudCBSb2xlXG4iCisgICAgICAgICAgICAgICAgICAgICItUCwgLS1yZXM6IFJlc291cmNlIGZpbGVzIGRpcmVjdG9yeSBsb2NhdGlvblxuIiwKKyAgICAgICAgICAgICAgICAgICAgYXJndltvcHRpbmQgPzogMV0sIGFyZ3ZbMF0pOworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIGhpZGxfc3RyaW5nIGluc3RhbmNlOworICAgIGhpZGxfc3RyaW5nIGNvbXBvbmVudDsKKyAgICBoaWRsX3N0cmluZyByb2xlOworICAgIGhpZGxfc3RyaW5nIHJlczsKK307CisKK3N0YXRpYyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQqIGdFbnYgPSBudWxscHRyOworCisvLyBhdWRpbyBlbmNvZGVyIHRlc3QgZml4dHVyZSBjbGFzcworY2xhc3MgQXVkaW9FbmNIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgICBkaXNhYmxlVGVzdCA9IGZhbHNlOworICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICAgICAgb214ID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SU9teD4oCisgICAgICAgICAgICBnRW52LT5nZXRJbnN0YW5jZSgpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teCwgbnVsbHB0cik7CisgICAgICAgIG9ic2VydmVyID0gbmV3IENvZGVjT2JzZXJ2ZXIoW3RoaXNdKE1lc3NhZ2UgbXNnKSB7ICh2b2lkKW1zZzsgfSk7CisgICAgICAgIEFTU0VSVF9ORShvYnNlcnZlciwgbnVsbHB0cik7CisgICAgICAgIGlmIChzdHJuY21wKGdFbnYtPmdldENvbXBvbmVudCgpLmNfc3RyKCksICJPTVguIiwgNCkgIT0gMCkKKyAgICAgICAgICAgIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgRVhQRUNUX1RSVUUob214LT5hbGxvY2F0ZU5vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICBnRW52LT5nZXRDb21wb25lbnQoKSwgb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBbJl0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxJT214Tm9kZT4gY29uc3QmIF9ubCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMtPm9teE5vZGUgPSBfbmw7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXhOb2RlLCBudWxscHRyKTsKKyAgICAgICAgQVNTRVJUX05FKGdFbnYtPmdldFJvbGUoKS5lbXB0eSgpLCB0cnVlKSA8PCAiSW52YWxpZCBDb21wb25lbnQgUm9sZSI7CisgICAgICAgIHN0cnVjdCBTdHJpbmdUb05hbWUgeworICAgICAgICAgICAgY29uc3QgY2hhciogTmFtZTsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcCBDb21wTmFtZTsKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3QgU3RyaW5nVG9OYW1lIGtTdHJpbmdUb05hbWVbXSA9IHsKKyAgICAgICAgICAgIHsiYW1ybmIiLCBhbXJuYn0sIHsiYW1yd2IiLCBhbXJ3Yn0sIHsiYWFjIiwgYWFjfSwgeyJmbGFjIiwgZmxhY30sCisgICAgICAgIH07CisgICAgICAgIGNvbnN0IHNpemVfdCBrTnVtU3RyaW5nVG9OYW1lID0KKyAgICAgICAgICAgIHNpemVvZihrU3RyaW5nVG9OYW1lKSAvIHNpemVvZihrU3RyaW5nVG9OYW1lWzBdKTsKKyAgICAgICAgY29uc3QgY2hhciogcGNoOworICAgICAgICBjaGFyIHN1YnN0cmluZ1tPTVhfTUFYX1NUUklOR05BTUVfU0laRV07CisgICAgICAgIHN0cmNweShzdWJzdHJpbmcsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICAgICAgcGNoID0gc3RyY2hyKHN1YnN0cmluZywgJy4nKTsKKyAgICAgICAgQVNTRVJUX05FKHBjaCwgbnVsbHB0cik7CisgICAgICAgIGNvbXBOYW1lID0gdW5rbm93bl9jb21wOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtOdW1TdHJpbmdUb05hbWU7ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjYXNlY21wKHBjaCArIDEsIGtTdHJpbmdUb05hbWVbaV0uTmFtZSkpIHsKKyAgICAgICAgICAgICAgICBjb21wTmFtZSA9IGtTdHJpbmdUb05hbWVbaV0uQ29tcE5hbWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBOYW1lID09IHVua25vd25fY29tcCkgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBzdHJ1Y3QgQ29tcFRvQ29kaW5nIHsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcCBDb21wTmFtZTsKKyAgICAgICAgICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZzsKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IENvbXBUb0NvZGluZyBrQ29tcFRvQ29kaW5nW10gPSB7CisgICAgICAgICAgICB7YW1ybmIsIE9NWF9BVURJT19Db2RpbmdBTVJ9LAorICAgICAgICAgICAge2FtcndiLCBPTVhfQVVESU9fQ29kaW5nQU1SfSwKKyAgICAgICAgICAgIHthYWMsIE9NWF9BVURJT19Db2RpbmdBQUN9LAorICAgICAgICAgICAge2ZsYWMsIE9NWF9BVURJT19Db2RpbmdGTEFDfSwKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTnVtQ29tcFRvQ29kaW5nID0KKyAgICAgICAgICAgIHNpemVvZihrQ29tcFRvQ29kaW5nKSAvIHNpemVvZihrQ29tcFRvQ29kaW5nWzBdKTsKKyAgICAgICAgc2l6ZV90IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBrTnVtQ29tcFRvQ29kaW5nOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChrQ29tcFRvQ29kaW5nW2ldLkNvbXBOYW1lID09IGNvbXBOYW1lKSB7CisgICAgICAgICAgICAgICAgZUVuY29kaW5nID0ga0NvbXBUb0NvZGluZ1tpXS5lRW5jb2Rpbmc7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0ga051bUNvbXBUb0NvZGluZykgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBpZiAoZGlzYWJsZVRlc3QpIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISAgVGVzdCBEaXNhYmxlZFxuIjsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIGlmIChvbXhOb2RlICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKChvbXhOb2RlLT5mcmVlTm9kZSgpKS5pc09rKCkpOworICAgICAgICAgICAgb214Tm9kZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbnVtIHN0YW5kYXJkQ29tcCB7CisgICAgICAgIGFtcm5iLAorICAgICAgICBhbXJ3YiwKKyAgICAgICAgYWFjLAorICAgICAgICBmbGFjLAorICAgICAgICB1bmtub3duX2NvbXAsCisgICAgfTsKKworICAgIHNwPElPbXg+IG9teDsKKyAgICBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcjsKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZTsKKyAgICBzdGFuZGFyZENvbXAgY29tcE5hbWU7CisgICAgT01YX0FVRElPX0NPRElOR1RZUEUgZUVuY29kaW5nOworICAgIGJvb2wgZGlzYWJsZVRlc3Q7CisKKyAgIHByb3RlY3RlZDoKKyAgICBzdGF0aWMgdm9pZCBkZXNjcmlwdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgZGVzY3JpcHRpb24pIHsKKyAgICAgICAgUmVjb3JkUHJvcGVydHkoImRlc2NyaXB0aW9uIiwgZGVzY3JpcHRpb24pOworICAgIH0KK307CisKKy8vIFNldCBEZWZhdWx0IHBvcnQgcGFyYW0uCit2b2lkIHNldERlZmF1bHRQb3J0UGFyYW0oc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb0VuY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBuU2FtcGxlUmF0ZSwgaW50MzJfdCBuQml0UmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBvcnREZWYuZm9ybWF0LmF1ZGlvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgIHBvcnREZWYuZm9ybWF0LmF1ZGlvLmVFbmNvZGluZyA9IGVFbmNvZGluZzsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBhcnJQcm9maWxlOworICAgIGludDMyX3QgcHJvZmlsZTsKKyAgICBpZiAoKGludCllRW5jb2RpbmcgPT0gT01YX0FVRElPX0NvZGluZ0FBQykgeworICAgICAgICBlbnVtZXJhdGVQcm9maWxlKG9teE5vZGUsIHBvcnRJbmRleCwgJmFyclByb2ZpbGUpOworICAgICAgICBpZiAoYXJyUHJvZmlsZS5lbXB0eSgpID09IHRydWUpIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgcHJvZmlsZSA9IGFyclByb2ZpbGVbMF07CisgICAgfQorCisgICAgc3dpdGNoICgoaW50KWVFbmNvZGluZykgeworICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdGTEFDOgorICAgICAgICAgICAgc2V0dXBGTEFDUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIG5DaGFubmVscywgblNhbXBsZVJhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIDUgLyogbkNvbXByZXNzaW9uTGV2ZWwgKi8pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgT01YX0FVRElPX0NvZGluZ0FNUjoKKyAgICAgICAgICAgIHNldHVwQU1SUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIG5CaXRSYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgIChjb21wID09IEF1ZGlvRW5jSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YW1yd2IpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE9NWF9BVURJT19Db2RpbmdBQUM6CisgICAgICAgICAgICBzZXR1cEFBQ1BvcnQob214Tm9kZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9BVURJT19BQUNQUk9GSUxFVFlQRT4ocHJvZmlsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0FBQ1N0cmVhbUZvcm1hdE1QNEZGLCBuQ2hhbm5lbHMsIG5CaXRSYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgIG5TYW1wbGVSYXRlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCisvLyBMb29rVXBUYWJsZSBvZiBjbGlwcyBhbmQgbWV0YWRhdGEgZm9yIGNvbXBvbmVudCB0ZXN0aW5nCit2b2lkIEdldFVSTEZvckNvbXBvbmVudChBdWRpb0VuY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcCwgY2hhciogbVVSTCkgeworICAgIHN0cnVjdCBDb21wVG9VUkwgeworICAgICAgICBBdWRpb0VuY0hpZGxUZXN0OjpzdGFuZGFyZENvbXAgY29tcDsKKyAgICAgICAgY29uc3QgY2hhciogbVVSTDsKKyAgICB9OworICAgIHN0YXRpYyBjb25zdCBDb21wVG9VUkwga0NvbXBUb1VSTFtdID0geworICAgICAgICB7QXVkaW9FbmNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjphYWMsICJiYmJfcmF3XzJjaF80OGtoel9zMTZsZS5yYXcifSwKKyAgICAgICAge0F1ZGlvRW5jSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6YW1ybmIsICJiYmJfcmF3XzFjaF84a2h6X3MxNmxlLnJhdyJ9LAorICAgICAgICB7QXVkaW9FbmNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjphbXJ3YiwgImJiYl9yYXdfMWNoXzE2a2h6X3MxNmxlLnJhdyJ9LAorICAgICAgICB7QXVkaW9FbmNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjpmbGFjLCAiYmJiX3Jhd18yY2hfNDhraHpfczE2bGUucmF3In0sCisgICAgfTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZW9mKGtDb21wVG9VUkwpIC8gc2l6ZW9mKGtDb21wVG9VUkxbMF0pOyArK2kpIHsKKyAgICAgICAgaWYgKGtDb21wVG9VUkxbaV0uY29tcCA9PSBjb21wKSB7CisgICAgICAgICAgICBzdHJjYXQobVVSTCwga0NvbXBUb1VSTFtpXS5tVVJMKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gRW5jb2RlIE4gRnJhbWVzCit2b2lkIGVuY29kZU5GcmFtZXMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIHVpbnQzMl90IG5GcmFtZXMsCisgICAgICAgICAgICAgICAgICAgaW50MzJfdCBzYW1wbGVzUGVyRnJhbWUsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgIGludDMyX3QgblNhbXBsZVJhdGUsIHN0ZDo6aWZzdHJlYW0mIGVsZVN0cmVhbSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gZGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGkpOworICAgIH0KKyAgICAvLyBkaXNwYXRjaCBpbnB1dCBidWZmZXJzCisgICAgaW50IGJ5dGVzQ291bnQgPSBzYW1wbGVzUGVyRnJhbWUgKiBuQ2hhbm5lbHMgKiAyOworICAgIGludDMyX3QgdGltZXN0YW1wSW5jciA9CisgICAgICAgIChpbnQpKCgoZmxvYXQpc2FtcGxlc1BlckZyYW1lIC8gblNhbXBsZVJhdGUpICogMTAwMDAwMCk7CisgICAgdWludDY0X3QgdGltZXN0YW1wID0gMDsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKSAmJiBuRnJhbWVzICE9IDA7IGkrKykgeworICAgICAgICBjaGFyKiBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPigKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPigoKmlCdWZmZXIpW2ldLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICBBU1NFUlRfTEUoYnl0ZXNDb3VudCwKKyAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpXS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgZWxlU3RyZWFtLnJlYWQoaXBCdWZmZXIsIGJ5dGVzQ291bnQpOworICAgICAgICBpZiAoZWxlU3RyZWFtLmdjb3VudCgpICE9IGJ5dGVzQ291bnQpIGJyZWFrOworICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGksIGJ5dGVzQ291bnQsIDAsIHRpbWVzdGFtcCk7CisgICAgICAgIHRpbWVzdGFtcCArPSB0aW1lc3RhbXBJbmNyOworICAgICAgICBuRnJhbWVzLS07CisgICAgfQorCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworCisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisKKyAgICAgICAgaWYgKG5GcmFtZXMgPT0gMCkgYnJlYWs7CisKKyAgICAgICAgLy8gRGlzcGF0Y2ggaW5wdXQgYnVmZmVyCisgICAgICAgIHNpemVfdCBpbmRleCA9IDA7CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKGlCdWZmZXIpKSA8IGlCdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgY2hhciogaXBCdWZmZXIgPSBzdGF0aWNfY2FzdDxjaGFyKj4oCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KCgqaUJ1ZmZlcilbaW5kZXhdLm1NZW1vcnktPmdldFBvaW50ZXIoKSkpOworICAgICAgICAgICAgQVNTRVJUX0xFKGJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PigoKmlCdWZmZXIpW2luZGV4XS5tTWVtb3J5LT5nZXRTaXplKCkpKTsKKyAgICAgICAgICAgIGVsZVN0cmVhbS5yZWFkKGlwQnVmZmVyLCBieXRlc0NvdW50KTsKKyAgICAgICAgICAgIGlmIChlbGVTdHJlYW0uZ2NvdW50KCkgIT0gYnl0ZXNDb3VudCkgYnJlYWs7CisgICAgICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsIGlCdWZmZXIsIGluZGV4LCBieXRlc0NvdW50LCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXApOworICAgICAgICAgICAgdGltZXN0YW1wICs9IHRpbWVzdGFtcEluY3I7CisgICAgICAgICAgICBuRnJhbWVzLS07CisgICAgICAgIH0KKyAgICAgICAgLy8gRGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcgorICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChvQnVmZmVyKSkgPCBvQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGluZGV4KTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gc2V0IGNvbXBvbmVudCByb2xlCitURVNUX0YoQXVkaW9FbmNIaWRsVGVzdCwgU2V0Um9sZSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFNldCBDb21wb25lbnQgUm9sZSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyBwb3J0IGZvcm1hdCBlbnVtZXJhdGlvbgorVEVTVF9GKEF1ZGlvRW5jSGlkbFRlc3QsIEVudW1lcmF0ZVBvcnRGb3JtYXQpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBGb3JtYXQpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIHN0YXR1cyA9IHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIE9NWF9BVURJT19Db2RpbmdQQ00pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBlRW5jb2RpbmcpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyB0ZXN0IHJhdyBzdHJlYW0gZW5jb2RlCitURVNUX0YoQXVkaW9FbmNIaWRsVGVzdCwgRW5jb2RlVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBFbmNvZGUiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl07CisgICAgc3RyY3B5KG1VUkwsIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbTsKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKworICAgIC8vIENvbmZpZ3VyZSBpbnB1dCBwb3J0CisgICAgaW50MzJfdCBuQ2hhbm5lbHMgPSAyOworICAgIGludDMyX3QgblNhbXBsZVJhdGUgPSA0NDEwMDsKKyAgICBpbnQzMl90IHNhbXBsZXNQZXJGcmFtZSA9IDEwMjQ7CisgICAgaW50MzJfdCBuQml0UmF0ZSA9IDEyODAwMDsKKyAgICBzd2l0Y2ggKGNvbXBOYW1lKSB7CisgICAgICAgIGNhc2UgYW1ybmI6CisgICAgICAgICAgICBuQ2hhbm5lbHMgPSAxOworICAgICAgICAgICAgblNhbXBsZVJhdGUgPSA4MDAwOworICAgICAgICAgICAgc2FtcGxlc1BlckZyYW1lID0gMTYwOworICAgICAgICAgICAgbkJpdFJhdGUgPSA3NDAwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgYW1yd2I6CisgICAgICAgICAgICBuQ2hhbm5lbHMgPSAxOworICAgICAgICAgICAgblNhbXBsZVJhdGUgPSAxNjAwMDsKKyAgICAgICAgICAgIHNhbXBsZXNQZXJGcmFtZSA9IDE2MDsKKyAgICAgICAgICAgIG5CaXRSYXRlID0gMTU4NTA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBhYWM6CisgICAgICAgICAgICBuQ2hhbm5lbHMgPSAyOworICAgICAgICAgICAgblNhbXBsZVJhdGUgPSA0ODAwMDsKKyAgICAgICAgICAgIHNhbXBsZXNQZXJGcmFtZSA9IDEwMjQ7CisgICAgICAgICAgICBuQml0UmF0ZSA9IDEyODAwMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGZsYWM6CisgICAgICAgICAgICBuQ2hhbm5lbHMgPSAyOworICAgICAgICAgICAgblNhbXBsZVJhdGUgPSA0ODAwMDsKKyAgICAgICAgICAgIHNhbXBsZXNQZXJGcmFtZSA9IDExNTI7CisgICAgICAgICAgICBuQml0UmF0ZSA9IDEyODAwMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgIH0KKyAgICBzZXR1cFBDTVBvcnQob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBuQ2hhbm5lbHMsIE9NWF9OdW1lcmljYWxEYXRhU2lnbmVkLAorICAgICAgICAgICAgICAgICAxNiwgblNhbXBsZVJhdGUsIE9NWF9BVURJT19QQ01Nb2RlTGluZWFyKTsKKyAgICAvLyBDb25maWd1cmUgb3V0cHV0IHBvcnQKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIGVFbmNvZGluZywgY29tcE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlLCBuQml0UmF0ZSk7CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgZW5jb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCAxMDI0LCBzYW1wbGVzUGVyRnJhbWUsCisgICAgICAgICAgICAgICAgICBuQ2hhbm5lbHMsIG5TYW1wbGVSYXRlLCBlbGVTdHJlYW0pOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICBnRW52ID0gbmV3IENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpOworICAgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KGdFbnYpOworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBnRW52LT5pbml0RnJvbU9wdGlvbnMoYXJnYywgYXJndik7CisgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICAgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9hdWRpby9tZWRpYV9hdWRpb19oaWRsX3Rlc3RfY29tbW9uLmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vbWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA5ZDIxZAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vbWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5jcHAKQEAgLTAsMCArMSw1MzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIm1lZGlhX29teF9oaWRsX2F1ZGlvX3Rlc3RfY29tbW9uIgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Tm9kZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214T2JzZXJ2ZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvYWxsb2NhdG9yLzEuMC9JQWxsb2NhdG9yLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1hcHBlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNZW1vcnkuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhPYnNlcnZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXhOb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6TWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvZGVjQnVmZmVyOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjphbGxvY2F0b3I6OlYxXzA6OklBbGxvY2F0b3I7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWFwcGVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8aGlkbG1lbW9yeS9tYXBwaW5nLmg+CisjaW5jbHVkZSA8bWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxtZW1vcnk+CisKKy8vIGFsbG9jYXRlIGJ1ZmZlcnMgbmVlZGVkIG9uIGEgY29tcG9uZW50IHBvcnQKK3ZvaWQgYWxsb2NhdGVQb3J0QnVmZmVycyhzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIHBvcnRJbmRleCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKworICAgIGJ1ZmZBcnJheS0+Y2xlYXIoKTsKKworICAgIHNwPElBbGxvY2F0b3I+IGFsbG9jYXRvciA9IElBbGxvY2F0b3I6OmdldFNlcnZpY2UoImFzaG1lbSIpOworICAgIEVYUEVDVF9ORShhbGxvY2F0b3IuZ2V0KCksIG51bGxwdHIpOworCisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbDsgaSsrKSB7CisgICAgICAgIEJ1ZmZlckluZm8gYnVmZmVyOworICAgICAgICBidWZmZXIub3duZXIgPSBjbGllbnQ7CisgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpTSEFSRURfTUVNOworICAgICAgICBidWZmZXIub214QnVmZmVyLmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IDA7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICBhbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICAgICAgcG9ydERlZi5uQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgIFsmc3VjY2VzcywgJmJ1ZmZlcl0oYm9vbCBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkgY29uc3QmIG1lbSkgeworICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBfczsKKyAgICAgICAgICAgICAgICBidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeSA9IG1lbTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfRVEoc3VjY2VzcywgdHJ1ZSk7CisgICAgICAgIEFTU0VSVF9FUShidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeS5zaXplKCksIHBvcnREZWYubkJ1ZmZlclNpemUpOworICAgICAgICBidWZmZXIubU1lbW9yeSA9IG1hcE1lbW9yeShidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeSk7CisgICAgICAgIEFTU0VSVF9ORShidWZmZXIubU1lbW9yeSwgbnVsbHB0cik7CisgICAgICAgIG9teE5vZGUtPnVzZUJ1ZmZlcigKKyAgICAgICAgICAgIHBvcnRJbmRleCwgYnVmZmVyLm9teEJ1ZmZlciwKKyAgICAgICAgICAgIFsmc3RhdHVzLCAmYnVmZmVyXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGlkKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgYnVmZmVyLmlkID0gaWQ7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgYnVmZkFycmF5LT5wdXNoKGJ1ZmZlcik7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IExvYWRlZCAtPiBJZGxlCisvLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG1ha2UgYW55IGJhY2tncm91bmQgY2hlY2tzIGZvciB0aGlzIHRyYW5zaXRpb24uCisvLyBUaGUgY2FsbGVlIGhvbGRzIHRoZSByZXBvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGUgbGVnYWxpdHkgb2YgdGhlIHRyYW5zaXRpb24uCit2b2lkIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVJZGxlKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBEb250IHN3aXRjaCBzdGF0ZXMgdW50aWwgdGhlIHBvcnRzIGFyZSBwb3B1bGF0ZWQKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworCisgICAgLy8gYWxsb2NhdGUgYnVmZmVycyBvbiBpbnB1dCBwb3J0CisgICAgYWxsb2NhdGVQb3J0QnVmZmVycyhvbXhOb2RlLCBpQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQpOworCisgICAgLy8gRG9udCBzd2l0Y2ggc3RhdGVzIHVudGlsIHRoZSBwb3J0cyBhcmUgcG9wdWxhdGVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIC8vIGFsbG9jYXRlIGJ1ZmZlcnMgb24gb3V0cHV0IHBvcnQKKyAgICBhbGxvY2F0ZVBvcnRCdWZmZXJzKG9teE5vZGUsIG9CdWZmZXIsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgLy8gQXMgdGhlIHBvcnRzIGFyZSBwb3B1bGF0ZWQsIGNoZWNrIGlmIHRoZSBzdGF0ZSB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFN0YXRlU2V0KTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBPTVhfU3RhdGVJZGxlKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IElkbGUgLT4gTG9hZGVkCisvLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG1ha2UgYW55IGJhY2tncm91bmQgY2hlY2tzIGZvciB0aGlzIHRyYW5zaXRpb24uCisvLyBUaGUgY2FsbGVlIGhvbGRzIHRoZSByZXBvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGUgbGVnYWxpdHkgb2YgdGhlIHRyYW5zaXRpb24uCit2b2lkIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIHNldCBzdGF0ZSB0byBMb2FkZWQKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUxvYWRlZCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gZG9udCBjaGFuZ2Ugc3RhdGUgdW50aWwgYWxsIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4SW5wdXQsICgqaUJ1ZmZlcilbaV0uaWQpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfQorCisgICAgLy8gZG9udCBjaGFuZ2Ugc3RhdGUgdW50aWwgYWxsIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4T3V0cHV0LCAoKm9CdWZmZXIpW2ldLmlkKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KKworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlTG9hZGVkKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IElkbGUgLT4gRXhlY3V0ZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUV4ZWN1dGluZyk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlRXhlY3V0aW5nKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IEV4ZWN1dGUgLT4gSWRsZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gSWRsZQorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlSWRsZSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlSWRsZSk7CisKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKmlCdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KK30KKworLy8gZ2V0IGVtcHR5IGJ1ZmZlciBpbmRleAorc2l6ZV90IGdldEVtcHR5QnVmZmVySUQoYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXkpIHsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGJ1ZmZBcnJheS0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKCgqYnVmZkFycmF5KVtpXS5vd25lciA9PSBjbGllbnQpIHJldHVybiBpOworICAgIH0KKyAgICByZXR1cm4gYnVmZkFycmF5LT5zaXplKCk7Cit9CisKKy8vIGRpc3BhdGNoIGJ1ZmZlciB0byBvdXRwdXQgcG9ydAordm9pZCBkaXNwYXRjaE91dHB1dEJ1ZmZlcihzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIENvZGVjQnVmZmVyIHQ7CisgICAgdC5zaGFyZWRNZW1vcnkgPSBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkoKTsKKyAgICB0Lm5hdGl2ZUhhbmRsZSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSgpOworICAgIHQudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpQUkVTRVQ7CisgICAgdC5hdHRyLnByZXNldC5yYW5nZU9mZnNldCA9IDA7CisgICAgdC5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IDA7CisgICAgbmF0aXZlX2hhbmRsZV90KiBmZW5jZU5oID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoMCwgMCk7CisgICAgQVNTRVJUX05FKGZlbmNlTmgsIG51bGxwdHIpOworICAgIHN0YXR1cyA9IG9teE5vZGUtPmZpbGxCdWZmZXIoKCpidWZmQXJyYXkpW2J1ZmZlckluZGV4XS5pZCwgdCwgZmVuY2VOaCk7CisgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShmZW5jZU5oKTsKKyAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShmZW5jZU5oKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGJ1ZmZlckluZGV4KS5vd25lciA9IGNvbXBvbmVudDsKK30KKworLy8gZGlzcGF0Y2ggYnVmZmVyIHRvIGlucHV0IHBvcnQKK3ZvaWQgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVySW5kZXgsIGludCBieXRlc0NvdW50LCB1aW50MzJfdCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCB0aW1lc3RhbXApIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBDb2RlY0J1ZmZlciB0OworICAgIHQuc2hhcmVkTWVtb3J5ID0gYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5KCk7CisgICAgdC5uYXRpdmVIYW5kbGUgPSBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGUoKTsKKyAgICB0LnR5cGUgPSBDb2RlY0J1ZmZlcjo6VHlwZTo6UFJFU0VUOworICAgIHQuYXR0ci5wcmVzZXQucmFuZ2VPZmZzZXQgPSAwOworICAgIHQuYXR0ci5wcmVzZXQucmFuZ2VMZW5ndGggPSBieXRlc0NvdW50OworICAgIG5hdGl2ZV9oYW5kbGVfdCogZmVuY2VOaCA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDAsIDApOworICAgIEFTU0VSVF9ORShmZW5jZU5oLCBudWxscHRyKTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5lbXB0eUJ1ZmZlcigoKmJ1ZmZBcnJheSlbYnVmZmVySW5kZXhdLmlkLCB0LCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAsIGZlbmNlTmgpOworICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoZmVuY2VOaCk7CisgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoZmVuY2VOaCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChidWZmZXJJbmRleCkub3duZXIgPSBjb21wb25lbnQ7Cit9CisKKy8vIEZsdXNoIGlucHV0IGFuZCBvdXRwdXQgcG9ydHMKK3ZvaWQgZmx1c2hQb3J0cyhzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LCBpbnQ2NF90IHRpbWVvdXRVcykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gRmx1c2ggaW5wdXQgcG9ydAorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRGbHVzaCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0KTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIHRpbWVvdXRVcywgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZEZsdXNoKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBrUG9ydEluZGV4SW5wdXQpOworICAgIC8vIHRlc3QgaWYgY2xpZW50IGdvdCBhbGwgaXRzIGJ1ZmZlcnMgYmFjaworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgRVhQRUNUX0VRKCgqaUJ1ZmZlcilbaV0ub3duZXIsIGNsaWVudCk7CisgICAgfQorCisgICAgLy8gRmx1c2ggb3V0cHV0IHBvcnQKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kRmx1c2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgdGltZW91dFVzLCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kRmx1c2gpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHRlc3QgaWYgY2xpZW50IGdvdCBhbGwgaXRzIGJ1ZmZlcnMgYmFjaworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgRVhQRUNUX0VRKCgqb0J1ZmZlcilbaV0ub3duZXIsIGNsaWVudCk7CisgICAgfQorfQorCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0QXVkaW9Qb3J0Rm9ybWF0KAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgT01YX0FVRElPX0NPRElOR1RZUEUgZUVuY29kaW5nKSB7CisgICAgT01YX1UzMiBpbmRleCA9IDA7CisgICAgT01YX0FVRElPX1BBUkFNX1BPUlRGT1JNQVRUWVBFIHBvcnRGb3JtYXQ7CisgICAgc3RkOjp2ZWN0b3I8T01YX0FVRElPX0NPRElOR1RZUEU+IGFyckVuY29kaW5nOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgcG9ydEZvcm1hdC5uSW5kZXggPSBpbmRleDsKKyAgICAgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Qb3J0Rm9ybWF0LCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydEZvcm1hdCk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIGFyckVuY29kaW5nLnB1c2hfYmFjayhwb3J0Rm9ybWF0LmVFbmNvZGluZyk7CisgICAgICAgIGluZGV4Kys7CisgICAgICAgIGlmIChpbmRleCA9PSA1MTIpIHsKKyAgICAgICAgICAgIC8vIGVudW1lcmF0ZWQgd2F5IHRvbyBtYW55IGZvcm1hdHMsIGhpZ2hseSB1bnVzdWFsIGZvciB0aGlzIHRvCisgICAgICAgICAgICAvLyBoYXBwZW4uCisgICAgICAgICAgICBFWFBFQ1RfTEUoaW5kZXgsIDUxMlUpCisgICAgICAgICAgICAgICAgPDwgIkV4cGVjdGluZyBPTVhfRXJyb3JOb01vcmUgYnV0IG5vdCByZWNlaXZlZCI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIWluZGV4KSByZXR1cm4gc3RhdHVzOworICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGFyckVuY29kaW5nLnNpemUoKTsgaW5kZXgrKykgeworICAgICAgICBpZiAoYXJyRW5jb2RpbmdbaW5kZXhdID09IGVFbmNvZGluZykgeworICAgICAgICAgICAgcG9ydEZvcm1hdC5lRW5jb2RpbmcgPSBhcnJFbmNvZGluZ1tpbmRleF07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoaW5kZXggPT0gYXJyRW5jb2Rpbmcuc2l6ZSgpKSB7CisgICAgICAgIEFMT0dFKCJzZXR0aW5nIGRlZmF1bHQgUG9ydCBmb3JtYXQgJXgiLCAoaW50KWFyckVuY29kaW5nWzBdKTsKKyAgICAgICAgcG9ydEZvcm1hdC5lRW5jb2RpbmcgPSBhcnJFbmNvZGluZ1swXTsKKyAgICB9CisgICAgLy8gSW4gc2V0UGFyYW0gY2FsbCBuSW5kZXggc2hhbGwgYmUgaWdub3JlZCBhcyBwZXIgb214LWlsIHNwZWNpZmljYXRpb24uCisgICAgLy8gc2VlIGhvdyB0aGlzIGhvbGRzIHVwIGJ5IGNvcnJ1cHRpbmcgbkluZGV4CisgICAgcG9ydEZvcm1hdC5uSW5kZXggPSBSQU5ET01fSU5ERVg7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Qb3J0Rm9ybWF0LCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0Rm9ybWF0KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0Um9sZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgY29uc3QgY2hhciogcm9sZSkgeworICAgIE9NWF9QQVJBTV9DT01QT05FTlRST0xFVFlQRSBwYXJhbXM7CisgICAgc3RyY3B5KChjaGFyKilwYXJhbXMuY1JvbGUsIHJvbGUpOworICAgIHJldHVybiBzZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVN0YW5kYXJkQ29tcG9uZW50Um9sZSwgJnBhcmFtcyk7Cit9CisKK3ZvaWQgZW51bWVyYXRlUHJvZmlsZShzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyclByb2ZpbGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQVVESU9fUEFSQU1fQU5EUk9JRF9QUk9GSUxFVFlQRSBwYXJhbTsKKyAgICBwYXJhbS5uUHJvZmlsZUluZGV4ID0gMDsKKyAgICBhcnJQcm9maWxlLT5jbGVhcigpOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbSgKKyAgICAgICAgICAgIG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtQXVkaW9Qcm9maWxlUXVlcnlTdXBwb3J0ZWQsCisgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIGFyclByb2ZpbGUtPnB1c2hfYmFjayhzdGF0aWNfY2FzdDxpbnQzMl90PihwYXJhbS5lUHJvZmlsZSkpOworICAgICAgICBwYXJhbS5uUHJvZmlsZUluZGV4Kys7CisgICAgICAgIGlmIChwYXJhbS5uUHJvZmlsZUluZGV4ID09IDUxMikgeworICAgICAgICAgICAgLy8gZW51bWVyYXRlZCB3YXkgdG9vIG1hbnksIGhpZ2hseSB1bnVzdWFsIGZvciB0aGlzIHRvIGhhcHBlbi4KKyAgICAgICAgICAgIEVYUEVDVF9MRShwYXJhbS5uUHJvZmlsZUluZGV4LCA1MTJVKQorICAgICAgICAgICAgICAgIDw8ICJFeHBlY3RpbmcgT01YX0Vycm9yTm9Nb3JlIGJ1dCBub3QgcmVjZWl2ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgc2V0dXBQQ01Qb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgaW50MzJfdCBuQ2hhbm5lbHMsCisgICAgICAgICAgICAgICAgICBPTVhfTlVNRVJJQ0FMREFUQVRZUEUgZU51bURhdGEsIGludDMyX3QgbkJpdFBlclNhbXBsZSwKKyAgICAgICAgICAgICAgICAgIGludDMyX3QgblNhbXBsaW5nUmF0ZSwgT01YX0FVRElPX1BDTU1PREVUWVBFIGVQQ01Nb2RlKSB7CisgICAgT01YX0FVRElPX1BBUkFNX1BDTU1PREVUWVBFIHBhcmFtOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUGNtLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcGFyYW0ubkNoYW5uZWxzID0gbkNoYW5uZWxzOworICAgIHBhcmFtLmVOdW1EYXRhID0gZU51bURhdGE7CisgICAgcGFyYW0uZUVuZGlhbiA9IE9NWF9FbmRpYW5MaXR0bGU7CisgICAgcGFyYW0uYkludGVybGVhdmVkID0gT01YX1RSVUU7CisgICAgcGFyYW0ubkJpdFBlclNhbXBsZSA9IG5CaXRQZXJTYW1wbGU7CisgICAgcGFyYW0ublNhbXBsaW5nUmF0ZSA9IG5TYW1wbGluZ1JhdGU7CisgICAgcGFyYW0uZVBDTU1vZGUgPSBlUENNTW9kZTsKKyAgICBzd2l0Y2ggKG5DaGFubmVscykgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBwYXJhbS5lQ2hhbm5lbE1hcHBpbmdbMF0gPSBPTVhfQVVESU9fQ2hhbm5lbENGOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIHBhcmFtLmVDaGFubmVsTWFwcGluZ1swXSA9IE9NWF9BVURJT19DaGFubmVsTEY7CisgICAgICAgICAgICBwYXJhbS5lQ2hhbm5lbE1hcHBpbmdbMV0gPSBPTVhfQVVESU9fQ2hhbm5lbFJGOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CisgICAgfQorICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUGNtLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBNUDNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19NUDNTVFJFQU1GT1JNQVRUWVBFIGVGb3JtYXQsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgaW50MzJfdCBuQml0UmF0ZSwgaW50MzJfdCBuU2FtcGxlUmF0ZSkgeworICAgIE9NWF9BVURJT19QQVJBTV9NUDNUWVBFIHBhcmFtOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvTXAzLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcGFyYW0ubkNoYW5uZWxzID0gbkNoYW5uZWxzOworICAgIHBhcmFtLm5CaXRSYXRlID0gbkJpdFJhdGU7CisgICAgcGFyYW0ublNhbXBsZVJhdGUgPSBuU2FtcGxlUmF0ZTsKKyAgICBwYXJhbS5uQXVkaW9CYW5kV2lkdGggPSAwOworICAgIHBhcmFtLmVDaGFubmVsTW9kZSA9IChuQ2hhbm5lbHMgPT0gMSkgPyBPTVhfQVVESU9fQ2hhbm5lbE1vZGVNb25vCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE9NWF9BVURJT19DaGFubmVsTW9kZVN0ZXJlbzsKKyAgICBwYXJhbS5lRm9ybWF0ID0gZUZvcm1hdDsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb01wMywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwRkxBQ1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICBpbnQzMl90IG5TYW1wbGVSYXRlLCBpbnQzMl90IG5Db21wcmVzc2lvbkxldmVsKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0FVRElPX1BBUkFNX0ZMQUNUWVBFIHBhcmFtOworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvRmxhYywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBhcmFtLm5DaGFubmVscyA9IG5DaGFubmVsczsKKyAgICBwYXJhbS5uU2FtcGxlUmF0ZSA9IG5TYW1wbGVSYXRlOworICAgIHBhcmFtLm5Db21wcmVzc2lvbkxldmVsID0gbkNvbXByZXNzaW9uTGV2ZWw7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9GbGFjLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBPUFVTUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQVVESU9fUEFSQU1fQU5EUk9JRF9PUFVTVFlQRSBwYXJhbTsKKyAgICBzdGF0dXMgPQorICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1BdWRpb0FuZHJvaWRPcHVzLAorICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBhcmFtLm5DaGFubmVscyA9IG5DaGFubmVsczsKKyAgICBwYXJhbS5uQml0UmF0ZSA9IG5CaXRSYXRlOworICAgIHBhcmFtLm5TYW1wbGVSYXRlID0gblNhbXBsZVJhdGU7CisgICAgc3RhdHVzID0KKyAgICAgICAgc2V0UG9ydFBhcmFtKG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtQXVkaW9BbmRyb2lkT3B1cywKKyAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworT01YX0FVRElPX0FNUkJBTkRNT0RFVFlQRSBwaWNrTW9kZUZyb21CaXRSYXRlKGJvb2wgaXNBTVJXQiwgaW50MzJfdCBicHMpIHsKKyAgICBpZiAoaXNBTVJXQikgeworICAgICAgICBpZiAoYnBzIDw9IDY2MDApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVXQjA7CisgICAgICAgIGlmIChicHMgPD0gODg1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCMTsKKyAgICAgICAgaWYgKGJwcyA8PSAxMjY1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCMjsKKyAgICAgICAgaWYgKGJwcyA8PSAxNDI1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCMzsKKyAgICAgICAgaWYgKGJwcyA8PSAxNTg1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCNDsKKyAgICAgICAgaWYgKGJwcyA8PSAxODI1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCNTsKKyAgICAgICAgaWYgKGJwcyA8PSAxOTg1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCNjsKKyAgICAgICAgaWYgKGJwcyA8PSAyMzA1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCNzsKKyAgICAgICAgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZVdCODsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoYnBzIDw9IDQ3NTApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVOQjA7CisgICAgICAgIGlmIChicHMgPD0gNTE1MCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZU5CMTsKKyAgICAgICAgaWYgKGJwcyA8PSA1OTAwKSByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkIyOworICAgICAgICBpZiAoYnBzIDw9IDY3MDApIHJldHVybiBPTVhfQVVESU9fQU1SQmFuZE1vZGVOQjM7CisgICAgICAgIGlmIChicHMgPD0gNzQwMCkgcmV0dXJuIE9NWF9BVURJT19BTVJCYW5kTW9kZU5CNDsKKyAgICAgICAgaWYgKGJwcyA8PSA3OTUwKSByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkI1OworICAgICAgICBpZiAoYnBzIDw9IDEwMjAwKSByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkI2OworICAgICAgICByZXR1cm4gT01YX0FVRElPX0FNUkJhbmRNb2RlTkI3OworICAgIH0KK30KKwordm9pZCBzZXR1cEFNUlBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5CaXRSYXRlLAorICAgICAgICAgICAgICAgICAgYm9vbCBpc0FNUldCKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0FVRElPX1BBUkFNX0FNUlRZUEUgcGFyYW07CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9BbXIsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwYXJhbS5uQ2hhbm5lbHMgPSAxOworICAgIHBhcmFtLm5CaXRSYXRlID0gbkJpdFJhdGU7CisgICAgcGFyYW0uZUFNUkJhbmRNb2RlID0gcGlja01vZGVGcm9tQml0UmF0ZShpc0FNUldCLCBuQml0UmF0ZSk7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9BbXIsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cFZPUkJJU1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUsIGludDMyX3QgblF1YWxpdHkpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQVVESU9fUEFSQU1fVk9SQklTVFlQRSBwYXJhbTsKKyAgICBzdGF0dXMgPQorICAgICAgICBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1ZvcmJpcywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBhcmFtLm5DaGFubmVscyA9IG5DaGFubmVsczsKKyAgICBwYXJhbS5uQml0UmF0ZSA9IG5CaXRSYXRlOworICAgIHBhcmFtLm5TYW1wbGVSYXRlID0gblNhbXBsZVJhdGU7CisgICAgcGFyYW0ublF1YWxpdHkgPSBuUXVhbGl0eTsKKyAgICBzdGF0dXMgPQorICAgICAgICBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb1ZvcmJpcywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwQUFDUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDUFJPRklMRVRZUEUgZUFBQ1Byb2ZpbGUsCisgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDU1RSRUFNRk9STUFUVFlQRSBlQUFDU3RyZWFtRm9ybWF0LAorICAgICAgICAgICAgICAgICAgaW50MzJfdCBuQ2hhbm5lbHMsIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQVVESU9fUEFSQU1fQUFDUFJPRklMRVRZUEUgcGFyYW07CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9BYWMsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwYXJhbS5uQ2hhbm5lbHMgPSBuQ2hhbm5lbHM7CisgICAgcGFyYW0ublNhbXBsZVJhdGUgPSBuU2FtcGxlUmF0ZTsKKyAgICBwYXJhbS5uQml0UmF0ZSA9IG5CaXRSYXRlOworICAgIHBhcmFtLmVBQUNQcm9maWxlID0gZUFBQ1Byb2ZpbGU7CisgICAgcGFyYW0uZUFBQ1N0cmVhbUZvcm1hdCA9IGVBQUNTdHJlYW1Gb3JtYXQ7CisgICAgcGFyYW0uZUNoYW5uZWxNb2RlID0gKG5DaGFubmVscyA9PSAxKSA/IE9NWF9BVURJT19DaGFubmVsTW9kZU1vbm8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogT01YX0FVRElPX0NoYW5uZWxNb2RlU3RlcmVvOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvQWFjLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CmRpZmYgLS1naXQgYS9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL21lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uaCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvYXVkaW8vbWVkaWFfYXVkaW9faGlkbF90ZXN0X2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MjBhYjUKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2F1ZGlvL21lZGlhX2F1ZGlvX2hpZGxfdGVzdF9jb21tb24uaApAQCAtMCwwICsxLDk5IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBNRURJQV9BVURJT19ISURMX1RFU1RfQ09NTU9OX0gKKyNkZWZpbmUgTUVESUFfQVVESU9fSElETF9URVNUX0NPTU1PTl9ICisKKyNpbmNsdWRlIDxtZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmg+CisvKgorICogUmFuZG9tIEluZGV4IHVzZWQgZm9yIG1vbmtleSB0ZXN0aW5nIHdoaWxlIGdldC9zZXQgcGFyYW1ldGVycworICovCisjZGVmaW5lIFJBTkRPTV9JTkRFWCAxNzI5CisKKy8qCisgKiBDb21tb24gYXVkaW8gdXRpbHMKKyAqLwordm9pZCBhbGxvY2F0ZVBvcnRCdWZmZXJzKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgcG9ydEluZGV4KTsKKwordm9pZCBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0KTsKKwordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0KTsKKwordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyKTsKKwordm9pZCBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyKTsKKworc2l6ZV90IGdldEVtcHR5QnVmZmVySUQoYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXkpOworCit2b2lkIGRpc3BhdGNoT3V0cHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1ZmZlckluZGV4KTsKKwordm9pZCBkaXNwYXRjaElucHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCwgaW50IGJ5dGVzQ291bnQsIHVpbnQzMl90IGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcCk7CisKK3ZvaWQgZmx1c2hQb3J0cyhzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0LCBpbnQ2NF90IHRpbWVvdXRVcyA9IERFRkFVTFRfVElNRU9VVCk7CisKK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRBdWRpb1BvcnRGb3JtYXQoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBPTVhfQVVESU9fQ09ESU5HVFlQRSBlRW5jb2RpbmcpOworCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0Um9sZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgY29uc3QgY2hhciogcm9sZSk7CisKK3ZvaWQgZW51bWVyYXRlUHJvZmlsZShzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyclByb2ZpbGUpOworCit2b2lkIHNldHVwUENNUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgT01YX05VTUVSSUNBTERBVEFUWVBFIGVOdW1EYXRhLCBpbnQzMl90IG5CaXRQZXJTYW1wbGUsCisgICAgICAgICAgICAgICAgICBpbnQzMl90IG5TYW1wbGluZ1JhdGUsIE9NWF9BVURJT19QQ01NT0RFVFlQRSBlUENNTW9kZSk7CisKK3ZvaWQgc2V0dXBNUDNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19NUDNTVFJFQU1GT1JNQVRUWVBFIGVGb3JtYXQsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgaW50MzJfdCBuQml0UmF0ZSwgaW50MzJfdCBuU2FtcGxlUmF0ZSk7CisKK3ZvaWQgc2V0dXBGTEFDUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIGludDMyX3QgbkNoYW5uZWxzLAorICAgICAgICAgICAgICAgICAgIGludDMyX3QgblNhbXBsZVJhdGUsIGludDMyX3QgbkNvbXByZXNzaW9uTGV2ZWwpOworCit2b2lkIHNldHVwT1BVU1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICBpbnQzMl90IG5CaXRSYXRlLCBpbnQzMl90IG5TYW1wbGVSYXRlKTsKKwordm9pZCBzZXR1cEFNUlBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5CaXRSYXRlLAorICAgICAgICAgICAgICAgICAgYm9vbCBpc0FNUldCKTsKKwordm9pZCBzZXR1cFZPUkJJU1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBpbnQzMl90IG5DaGFubmVscywKKyAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUsIGludDMyX3QgblF1YWxpdHkpOworCit2b2lkIHNldHVwQUFDUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDUFJPRklMRVRZUEUgZUFBQ1Byb2ZpbGUsCisgICAgICAgICAgICAgICAgICBPTVhfQVVESU9fQUFDU1RSRUFNRk9STUFUVFlQRSBlQUFDU3RyZWFtRm9ybWF0LAorICAgICAgICAgICAgICAgICAgaW50MzJfdCBuQ2hhbm5lbHMsIGludDMyX3QgbkJpdFJhdGUsIGludDMyX3QgblNhbXBsZVJhdGUpOworCisjZW5kaWYgIC8vIE1FRElBX0FVRElPX0hJRExfVEVTVF9DT01NT05fSApkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vbWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21tb24vbWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyZDhhZTIKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbi9tZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmgKQEAgLTAsMCArMSwyNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIE1FRElBX0hJRExfVEVTVF9DT01NT05fSAorI2RlZmluZSBNRURJQV9ISURMX1RFU1RfQ09NTU9OX0gKKworI2lmZGVmIF9fTFA2NF9fCisjZGVmaW5lIE9NWF9BTkRST0lEX0NPTVBJTEVfQVNfMzJCSVRfT05fNjRCSVRfUExBVEZPUk1TCisjZW5kaWYKKworI2luY2x1ZGUgPG1lZGlhL3N0YWdlZnJpZ2h0L2ZvdW5kYXRpb24vQUxvb3Blci5oPgorI2luY2x1ZGUgPHV0aWxzL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHV0aWxzL0xpc3QuaD4KKyNpbmNsdWRlIDx1dGlscy9NdXRleC5oPgorCisjaW5jbHVkZSA8bWVkaWEvb3Blbm1heC9PTVhfSW5kZXguaD4KKyNpbmNsdWRlIDxtZWRpYS9vcGVubWF4L09NWF9Db3JlLmg+CisjaW5jbHVkZSA8bWVkaWEvb3Blbm1heC9PTVhfQ29tcG9uZW50Lmg+CisjaW5jbHVkZSA8bWVkaWEvb3Blbm1heC9PTVhfSW5kZXhFeHQuaD4KKyNpbmNsdWRlIDxtZWRpYS9vcGVubWF4L09NWF9BdWRpb0V4dC5oPgorI2luY2x1ZGUgPG1lZGlhL29wZW5tYXgvT01YX1ZpZGVvRXh0Lmg+CisKKy8qCisgKiBUT0RPOiBCb3Jyb3dlZCBmcm9tIENvbnZlcnNpb24uaC4gVGhpcyBpcyBub3QgdGhlIGlkZWFsIHdheSB0byBkbyBpdC4KKyAqIExvb3NlIHRoZXNlIGRlZmluaXRpb25zIG9uY2UgeW91IGluY2x1ZGUgQ29udmVyc2lvbi5oCisgKi8KK2lubGluZSB1aW50MzJfdCB0b1Jhd0luZGV4VHlwZShPTVhfSU5ERVhUWVBFIGwpIHsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGwpOworfQorCitpbmxpbmUgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyB0b1N0YXR1cygKKyAgICBhbmRyb2lkOjpzdGF0dXNfdCBsKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+KGwpOworfQorCitpbmxpbmUgaGlkbF92ZWM8dWludDhfdD4gaW5IaWRsQnl0ZXModm9pZCBjb25zdCogbCwgc2l6ZV90IHNpemUpIHsKKyAgICBoaWRsX3ZlYzx1aW50OF90PiB0OworICAgIHQuc2V0VG9FeHRlcm5hbChzdGF0aWNfY2FzdDx1aW50OF90Kj4oY29uc3RfY2FzdDx2b2lkKj4obCkpLCBzaXplLCBmYWxzZSk7CisgICAgcmV0dXJuIHQ7Cit9CisKK2lubGluZSB1aW50MzJfdCB0b1Jhd0NvbW1hbmRUeXBlKE9NWF9DT01NQU5EVFlQRSBsKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90PihsKTsKK30KKworLyoKKyAqIEhhbmRsZSBDYWxsYmFjayBmdW5jdGlvbnMgRW1wdHl0aGlzQnVmZmVyKCksIEZpbGx0aGlzQnVmZmVyKCksCisgKiBFdmVudEhhbmRsZXIoKQorICovCisjZGVmaW5lIERFRkFVTFRfVElNRU9VVCA0MDAwMAorCitlbnVtIGJ1ZmZlck93bmVyIHsKKyAgICBjbGllbnQsCisgICAgY29tcG9uZW50LAorICAgIHVua25vd24sCit9OworCitzdHJ1Y3QgQnVmZmVySW5mbyB7CisgICAgdWludDMyX3QgaWQ7CisgICAgYnVmZmVyT3duZXIgb3duZXI7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OkNvZGVjQnVmZmVyIG9teEJ1ZmZlcjsKKyAgICA6OmFuZHJvaWQ6OnNwPElNZW1vcnk+IG1NZW1vcnk7Cit9OworCitzdHJ1Y3QgRnJhbWVEYXRhIHsKKyAgICBpbnQgYnl0ZXNDb3VudDsKKyAgICB1aW50MzJfdCBmbGFnczsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXA7Cit9OworCitzdHJ1Y3QgQ29kZWNPYnNlcnZlciA6IHB1YmxpYyBJT214T2JzZXJ2ZXIgeworICAgcHVibGljOgorICAgIENvZGVjT2JzZXJ2ZXIoc3RkOjpmdW5jdGlvbjx2b2lkKE1lc3NhZ2UpPiBmbikgOiBjYWxsQmFjayhmbikge30KKyAgICBSZXR1cm48dm9pZD4gb25NZXNzYWdlcyhjb25zdCBoaWRsX3ZlYzxNZXNzYWdlPiYgbWVzc2FnZXMpIG92ZXJyaWRlIHsKKyAgICAgICAgYW5kcm9pZDo6TXV0ZXg6OkF1dG9sb2NrIGF1dG9Mb2NrKG1zZ0xvY2spOworICAgICAgICBmb3IgKGhpZGxfdmVjPE1lc3NhZ2U+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1lc3NhZ2VzLmJlZ2luKCk7CisgICAgICAgICAgICAgaXQgIT0gbWVzc2FnZXMuZW5kKCk7ICsraXQpIHsKKyAgICAgICAgICAgIG1zZ1F1ZXVlLnB1c2hfYmFjaygqaXQpOworICAgICAgICB9CisgICAgICAgIG1zZ0NvbmRpdGlvbi5zaWduYWwoKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBkZXF1ZXVlTWVzc2FnZSgKKyAgICAgICAgTWVzc2FnZSogbXNnLCBpbnQ2NF90IHRpbWVvdXRVcywKKyAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVycyA9IG51bGxwdHIsCisgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlcnMgPSBudWxscHRyKSB7CisgICAgICAgIGludDY0X3QgZmluaXNoQnkgPSBhbmRyb2lkOjpBTG9vcGVyOjpHZXROb3dVcygpICsgdGltZW91dFVzOworICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICBhbmRyb2lkOjpNdXRleDo6QXV0b2xvY2sgYXV0b0xvY2sobXNnTG9jayk7CisgICAgICAgICAgICBhbmRyb2lkOjpMaXN0PE1lc3NhZ2U+OjppdGVyYXRvciBpdCA9IG1zZ1F1ZXVlLmJlZ2luKCk7CisgICAgICAgICAgICB3aGlsZSAoaXQgIT0gbXNnUXVldWUuZW5kKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXQtPnR5cGUgPT0KKyAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U6OlR5cGU6OkVWRU5UKSB7CisgICAgICAgICAgICAgICAgICAgICptc2cgPSAqaXQ7CisgICAgICAgICAgICAgICAgICAgIG1zZ1F1ZXVlLmVyYXNlKGl0KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0s7CisgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdC0+dHlwZSA9PSBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZTo6VHlwZTo6RklMTF9CVUZGRVJfRE9ORSkgeworICAgICAgICAgICAgICAgICAgICBpZiAob0J1ZmZlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG9CdWZmZXJzLT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKm9CdWZmZXJzKVtpXS5pZCA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC0+ZGF0YS5idWZmZXJEYXRhLmJ1ZmZlcikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FsbEJhY2spIGNhbGxCYWNrKCppdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9CdWZmZXJzLT5lZGl0SXRlbUF0KGkpLm93bmVyID0gY2xpZW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dRdWV1ZS5lcmFzZShpdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9MRShpLCBvQnVmZmVycy0+c2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXQtPnR5cGUgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2U6OlR5cGU6OkVNUFRZX0JVRkZFUl9ET05FKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChpQnVmZmVycykgeworICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGk7CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaUJ1ZmZlcnMtPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgqaUJ1ZmZlcnMpW2ldLmlkID09CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0LT5kYXRhLmJ1ZmZlckRhdGEuYnVmZmVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlCdWZmZXJzLT5lZGl0SXRlbUF0KGkpLm93bmVyID0gY2xpZW50OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dRdWV1ZS5lcmFzZShpdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9MRShpLCBpQnVmZmVycy0+c2l6ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICArK2l0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGZpbmlzaEJ5IC0gYW5kcm9pZDo6QUxvb3Blcjo6R2V0Tm93VXMoKSA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIHRvU3RhdHVzKGFuZHJvaWQ6OlRJTUVEX09VVCk7CisgICAgICAgICAgICBhbmRyb2lkOjpzdGF0dXNfdCBlcnIgPQorICAgICAgICAgICAgICAgICh0aW1lb3V0VXMgPCAwKQorICAgICAgICAgICAgICAgICAgICA/IG1zZ0NvbmRpdGlvbi53YWl0KG1zZ0xvY2spCisgICAgICAgICAgICAgICAgICAgIDogbXNnQ29uZGl0aW9uLndhaXRSZWxhdGl2ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnTG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbmlzaEJ5IC0gYW5kcm9pZDo6QUxvb3Blcjo6R2V0Tm93VXMoKSkgKiAxMDAwbGwpOworICAgICAgICAgICAgaWYgKGVyciA9PSBhbmRyb2lkOjpUSU1FRF9PVVQpIHJldHVybiB0b1N0YXR1cyhlcnIpOworICAgICAgICB9CisgICAgfQorCisgICAgYW5kcm9pZDo6TGlzdDxNZXNzYWdlPiBtc2dRdWV1ZTsKKyAgICBhbmRyb2lkOjpNdXRleCBtc2dMb2NrOworICAgIGFuZHJvaWQ6OkNvbmRpdGlvbiBtc2dDb25kaXRpb247CisgICAgc3RkOjpmdW5jdGlvbjx2b2lkKE1lc3NhZ2UpPiBjYWxsQmFjazsKK307CisKKy8qCisgKiBVc2VmdWwgV3JhcHBlciB1dGlsaXRpZXMKKyAqLwordGVtcGxhdGUgPGNsYXNzIFQ+Cit2b2lkIEluaXRPTVhQYXJhbXMoVCogcGFyYW1zKSB7CisgICAgcGFyYW1zLT5uU2l6ZSA9IHNpemVvZihUKTsKKyAgICBwYXJhbXMtPm5WZXJzaW9uLnMublZlcnNpb25NYWpvciA9IDE7CisgICAgcGFyYW1zLT5uVmVyc2lvbi5zLm5WZXJzaW9uTWlub3IgPSAwOworICAgIHBhcmFtcy0+blZlcnNpb24ucy5uUmV2aXNpb24gPSAwOworICAgIHBhcmFtcy0+blZlcnNpb24ucy5uU3RlcCA9IDA7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IGdldFBhcmFtKAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfSU5ERVhUWVBFIG9teElkeCwgVCogcGFyYW1zKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgSW5pdE9NWFBhcmFtcyhwYXJhbXMpOworICAgIG9teE5vZGUtPmdldFBhcmFtZXRlcigKKyAgICAgICAgdG9SYXdJbmRleFR5cGUob214SWR4KSwgaW5IaWRsQnl0ZXMocGFyYW1zLCBzaXplb2YoKnBhcmFtcykpLAorICAgICAgICBbJnN0YXR1cywgJnBhcmFtc10oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNvbnN0JiBvdXRQYXJhbXMpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgc3RkOjpjb3B5KG91dFBhcmFtcy5kYXRhKCksIG91dFBhcmFtcy5kYXRhKCkgKyBvdXRQYXJhbXMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx2b2lkKj4ocGFyYW1zKSkpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRQYXJhbSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX0lOREVYVFlQRSBvbXhJZHgsIFQqIHBhcmFtcykgeworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICByZXR1cm4gb214Tm9kZS0+c2V0UGFyYW1ldGVyKHRvUmF3SW5kZXhUeXBlKG9teElkeCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbkhpZGxCeXRlcyhwYXJhbXMsIHNpemVvZigqcGFyYW1zKSkpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBnZXRQb3J0UGFyYW0oCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9JTkRFWFRZUEUgb214SWR4LCBPTVhfVTMyIG5Qb3J0SW5kZXgsIFQqIHBhcmFtcykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICBwYXJhbXMtPm5Qb3J0SW5kZXggPSBuUG9ydEluZGV4OworICAgIG9teE5vZGUtPmdldFBhcmFtZXRlcigKKyAgICAgICAgdG9SYXdJbmRleFR5cGUob214SWR4KSwgaW5IaWRsQnl0ZXMocGFyYW1zLCBzaXplb2YoKnBhcmFtcykpLAorICAgICAgICBbJnN0YXR1cywgJnBhcmFtc10oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNvbnN0JiBvdXRQYXJhbXMpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgc3RkOjpjb3B5KG91dFBhcmFtcy5kYXRhKCksIG91dFBhcmFtcy5kYXRhKCkgKyBvdXRQYXJhbXMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx2b2lkKj4ocGFyYW1zKSkpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRQb3J0UGFyYW0oCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9JTkRFWFRZUEUgb214SWR4LCBPTVhfVTMyIG5Qb3J0SW5kZXgsIFQqIHBhcmFtcykgeworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICBwYXJhbXMtPm5Qb3J0SW5kZXggPSBuUG9ydEluZGV4OworICAgIHJldHVybiBvbXhOb2RlLT5zZXRQYXJhbWV0ZXIodG9SYXdJbmRleFR5cGUob214SWR4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluSGlkbEJ5dGVzKHBhcmFtcywgc2l6ZW9mKCpwYXJhbXMpKSk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IGdldFBvcnRDb25maWcoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9JTkRFWFRZUEUgb214SWR4LCBPTVhfVTMyIG5Qb3J0SW5kZXgsIFQqIHBhcmFtcykgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIEluaXRPTVhQYXJhbXMocGFyYW1zKTsKKyAgICBwYXJhbXMtPm5Qb3J0SW5kZXggPSBuUG9ydEluZGV4OworICAgIG9teE5vZGUtPmdldENvbmZpZygKKyAgICAgICAgdG9SYXdJbmRleFR5cGUob214SWR4KSwgaW5IaWRsQnl0ZXMocGFyYW1zLCBzaXplb2YoKnBhcmFtcykpLAorICAgICAgICBbJnN0YXR1cywgJnBhcmFtc10oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPHVpbnQ4X3Q+IGNvbnN0JiBvdXRQYXJhbXMpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgc3RkOjpjb3B5KG91dFBhcmFtcy5kYXRhKCksIG91dFBhcmFtcy5kYXRhKCkgKyBvdXRQYXJhbXMuc2l6ZSgpLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihzdGF0aWNfY2FzdDx2b2lkKj4ocGFyYW1zKSkpOworICAgICAgICB9KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgVD4KK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRQb3J0Q29uZmlnKAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfSU5ERVhUWVBFIG9teElkeCwgT01YX1UzMiBuUG9ydEluZGV4LCBUKiBwYXJhbXMpIHsKKyAgICBJbml0T01YUGFyYW1zKHBhcmFtcyk7CisgICAgcGFyYW1zLT5uUG9ydEluZGV4ID0gblBvcnRJbmRleDsKKyAgICByZXR1cm4gb214Tm9kZS0+c2V0Q29uZmlnKHRvUmF3SW5kZXhUeXBlKG9teElkeCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbkhpZGxCeXRlcyhwYXJhbXMsIHNpemVvZigqcGFyYW1zKSkpOworfQorCisjZW5kaWYgIC8vIE1FRElBX0hJRExfVEVTVF9DT01NT05fSApkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQvQW5kcm9pZC5icCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tcG9uZW50L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDJmZTE4MgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvY29tcG9uZW50L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw0NSBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldENvbXBvbmVudFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldENvbXBvbmVudFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJzdGFnZWZyaWdodF9mb3VuZGF0aW9uIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5hbGxvY2F0b3JAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKKyAgICBpbmNsdWRlX2RpcnM6IFsKKyAgICAgICAgImZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvb3Blbm1heC8iLAorICAgICAgICAiaGFyZHdhcmUvaW50ZXJmYWNlcy9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbiIsCisgICAgXSwKK30KKwpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQvVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0Q29tcG9uZW50VGVzdC5jcHAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbXBvbmVudC9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRDb21wb25lbnRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xN2M0OWNhCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9jb21wb25lbnQvVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0Q29tcG9uZW50VGVzdC5jcHAKQEAgLTAsMCArMSwxNDA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF9jb21wb25lbnRfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cAorY2xhc3MgQ29tcG9uZW50VGVzdEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworICAgIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpIDogaW5zdGFuY2UoImRlZmF1bHQiKSB7fQorCisgICAgdm9pZCBzZXRJbnN0YW5jZShjb25zdCBjaGFyKiBfaW5zdGFuY2UpIHsgaW5zdGFuY2UgPSBfaW5zdGFuY2U7IH0KKworICAgIHZvaWQgc2V0Q29tcG9uZW50KGNvbnN0IGNoYXIqIF9jb21wb25lbnQpIHsgY29tcG9uZW50ID0gX2NvbXBvbmVudDsgfQorCisgICAgdm9pZCBzZXRSb2xlKGNvbnN0IGNoYXIqIF9yb2xlKSB7IHJvbGUgPSBfcm9sZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0SW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpbnN0YW5jZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Q29tcG9uZW50KCkgY29uc3QgeyByZXR1cm4gY29tcG9uZW50OyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSb2xlKCkgY29uc3QgeyByZXR1cm4gcm9sZTsgfQorCisgICAgaW50IGluaXRGcm9tT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICAgICAgc3RhdGljIHN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0geworICAgICAgICAgICAgeyJpbnN0YW5jZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnSSd9LAorICAgICAgICAgICAgeyJjb21wb25lbnQiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0MnfSwKKyAgICAgICAgICAgIHsicm9sZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUid9LAorICAgICAgICAgICAgezAsIDAsIDAsIDB9fTsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkk6QzpSOiIsIG9wdGlvbnMsICZpbmRleCk7CisgICAgICAgICAgICBpZiAoYyA9PSAtMSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKKyAgICAgICAgICAgICAgICBjYXNlICdJJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0SW5zdGFuY2Uob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnQyc6CisgICAgICAgICAgICAgICAgICAgIHNldENvbXBvbmVudChvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdSJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Um9sZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW5kIDwgYXJnYykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlc1xuXG4iCisgICAgICAgICAgICAgICAgICAgICJ1c2FnZTogJXMgPGd0ZXN0IG9wdGlvbnM+IDx0ZXN0IG9wdGlvbnM+XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInRlc3Qgb3B0aW9ucyBhcmU6XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgIi1JLCAtLWluc3RhbmNlOiBIQUwgaW5zdGFuY2UgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLUMsIC0tY29tcG9uZW50OiBPTVggY29tcG9uZW50IHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1SLCAtLVJvbGU6IE9NWCBjb21wb25lbnQgUm9sZVxuIiwKKyAgICAgICAgICAgICAgICAgICAgYXJndltvcHRpbmQgPzogMV0sIGFyZ3ZbMF0pOworICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICBwcml2YXRlOgorICAgIGhpZGxfc3RyaW5nIGluc3RhbmNlOworICAgIGhpZGxfc3RyaW5nIGNvbXBvbmVudDsKKyAgICBoaWRsX3N0cmluZyByb2xlOworfTsKKworc3RhdGljIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCogZ0VudiA9IG51bGxwdHI7CisKKy8vIGdlbmVyaWMgY29tcG9uZW50IHRlc3QgZml4dHVyZSBjbGFzcworY2xhc3MgQ29tcG9uZW50SGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgZGlzYWJsZVRlc3QgPSBmYWxzZTsKKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgICAgIG9teCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElPbXg+KAorICAgICAgICAgICAgZ0Vudi0+Z2V0SW5zdGFuY2UoKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXgsIG51bGxwdHIpOworICAgICAgICBvYnNlcnZlciA9IG5ldyBDb2RlY09ic2VydmVyKG51bGxwdHIpOworICAgICAgICBBU1NFUlRfTkUob2JzZXJ2ZXIsIG51bGxwdHIpOworICAgICAgICBpZiAoc3RybmNtcChnRW52LT5nZXRDb21wb25lbnQoKS5jX3N0cigpLCAiT01YLiIsIDQpICE9IDApCisgICAgICAgICAgICBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIEVYUEVDVF9UUlVFKG9teC0+YWxsb2NhdGVOb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZ0Vudi0+Z2V0Q29tcG9uZW50KCksIG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8SU9teE5vZGU+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBfczsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT5vbXhOb2RlID0gX25sOworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pc09rKCkpOworICAgICAgICBBU1NFUlRfTkUob214Tm9kZSwgbnVsbHB0cik7CisgICAgICAgIEFTU0VSVF9ORShnRW52LT5nZXRSb2xlKCkuZW1wdHkoKSwgdHJ1ZSkgPDwgIkludmFsaWQgQ29tcG9uZW50IFJvbGUiOworICAgICAgICBzdHJ1Y3QgU3RyaW5nVG9DbGFzcyB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBDbGFzczsKKyAgICAgICAgICAgIHN0YW5kYXJkQ29tcENsYXNzIENvbXBDbGFzczsKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3QgU3RyaW5nVG9DbGFzcyBrU3RyaW5nVG9DbGFzc1tdID0geworICAgICAgICAgICAgeyJhdWRpb19kZWNvZGVyIiwgYXVkaW9fZGVjb2Rlcn0sCisgICAgICAgICAgICB7ImF1ZGlvX2VuY29kZXIiLCBhdWRpb19lbmNvZGVyfSwKKyAgICAgICAgICAgIHsidmlkZW9fZGVjb2RlciIsIHZpZGVvX2RlY29kZXJ9LAorICAgICAgICAgICAgeyJ2aWRlb19lbmNvZGVyIiwgdmlkZW9fZW5jb2Rlcn0sCisgICAgICAgIH07CisgICAgICAgIGNvbnN0IHNpemVfdCBrTnVtU3RyaW5nVG9DbGFzcyA9CisgICAgICAgICAgICBzaXplb2Yoa1N0cmluZ1RvQ2xhc3MpIC8gc2l6ZW9mKGtTdHJpbmdUb0NsYXNzWzBdKTsKKyAgICAgICAgY29uc3QgY2hhciogcGNoOworICAgICAgICBjaGFyIHN1YnN0cmluZ1tPTVhfTUFYX1NUUklOR05BTUVfU0laRV07CisgICAgICAgIHN0cmNweShzdWJzdHJpbmcsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICAgICAgcGNoID0gc3RyY2hyKHN1YnN0cmluZywgJy4nKTsKKyAgICAgICAgQVNTRVJUX05FKHBjaCwgbnVsbHB0cikgPDwgIkludmFsaWQgQ29tcG9uZW50IFJvbGUiOworICAgICAgICBzdWJzdHJpbmdbcGNoIC0gc3Vic3RyaW5nXSA9ICdcMCc7CisgICAgICAgIGNvbXBDbGFzcyA9IHVua25vd25fY2xhc3M7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga051bVN0cmluZ1RvQ2xhc3M7ICsraSkgeworICAgICAgICAgICAgaWYgKCFzdHJjYXNlY21wKHN1YnN0cmluZywga1N0cmluZ1RvQ2xhc3NbaV0uQ2xhc3MpKSB7CisgICAgICAgICAgICAgICAgY29tcENsYXNzID0ga1N0cmluZ1RvQ2xhc3NbaV0uQ29tcENsYXNzOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChjb21wQ2xhc3MgPT0gdW5rbm93bl9jbGFzcykgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBpZiAoZGlzYWJsZVRlc3QpIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISAgVGVzdCBEaXNhYmxlZFxuIjsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgICAgIGlmIChvbXhOb2RlICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIEVYUEVDVF9UUlVFKChvbXhOb2RlLT5mcmVlTm9kZSgpKS5pc09rKCkpOworICAgICAgICAgICAgb214Tm9kZSA9IG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBlbnVtIHN0YW5kYXJkQ29tcENsYXNzIHsKKyAgICAgICAgYXVkaW9fZGVjb2RlciwKKyAgICAgICAgYXVkaW9fZW5jb2RlciwKKyAgICAgICAgdmlkZW9fZGVjb2RlciwKKyAgICAgICAgdmlkZW9fZW5jb2RlciwKKyAgICAgICAgdW5rbm93bl9jbGFzcywKKyAgICB9OworCisgICAgc3A8SU9teD4gb214OworICAgIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyOworICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlOworICAgIHN0YW5kYXJkQ29tcENsYXNzIGNvbXBDbGFzczsKKyAgICBib29sIGRpc2FibGVUZXN0OworCisgICBwcm90ZWN0ZWQ6CisgICAgc3RhdGljIHZvaWQgZGVzY3JpcHRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIFJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIGRlc2NyaXB0aW9uKTsKKyAgICB9Cit9OworCisvLyBSYW5kb20gSW5kZXggdXNlZCBmb3IgbW9ua2V5IHRlc3Rpbmcgd2hpbGUgZ2V0L3NldCBwYXJhbWV0ZXJzCisjZGVmaW5lIFJBTkRPTV9JTkRFWCAxNzI5CisKKy8vIGFsbG9jYXRlIGJ1ZmZlcnMgbmVlZGVkIG9uIGEgY29tcG9uZW50IHBvcnQKK3ZvaWQgYWxsb2NhdGVQb3J0QnVmZmVycyhzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIHBvcnRJbmRleCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKworICAgIGJ1ZmZBcnJheS0+Y2xlYXIoKTsKKworICAgIHNwPElBbGxvY2F0b3I+IGFsbG9jYXRvciA9IElBbGxvY2F0b3I6OmdldFNlcnZpY2UoImFzaG1lbSIpOworICAgIEVYUEVDVF9ORShhbGxvY2F0b3IuZ2V0KCksIG51bGxwdHIpOworCisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbDsgaSsrKSB7CisgICAgICAgIEJ1ZmZlckluZm8gYnVmZmVyOworICAgICAgICBidWZmZXIub3duZXIgPSBjbGllbnQ7CisgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpTSEFSRURfTUVNOworICAgICAgICBidWZmZXIub214QnVmZmVyLmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IDA7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICBhbGxvY2F0b3ItPmFsbG9jYXRlKAorICAgICAgICAgICAgcG9ydERlZi5uQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgIFsmc3VjY2VzcywgJmJ1ZmZlcl0oYm9vbCBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkgY29uc3QmIG1lbSkgeworICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBfczsKKyAgICAgICAgICAgICAgICBidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeSA9IG1lbTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfRVEoc3VjY2VzcywgdHJ1ZSk7CisgICAgICAgIEFTU0VSVF9FUShidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeS5zaXplKCksIHBvcnREZWYubkJ1ZmZlclNpemUpOworCisgICAgICAgIG9teE5vZGUtPnVzZUJ1ZmZlcigKKyAgICAgICAgICAgIHBvcnRJbmRleCwgYnVmZmVyLm9teEJ1ZmZlciwKKyAgICAgICAgICAgIFsmc3RhdHVzLCAmYnVmZmVyXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGlkKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgYnVmZmVyLmlkID0gaWQ7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgYnVmZkFycmF5LT5wdXNoKGJ1ZmZlcik7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IExvYWRlZCAtPiBJZGxlCisvLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG1ha2UgYW55IGJhY2tncm91bmQgY2hlY2tzIGZvciB0aGlzIHRyYW5zaXRpb24uCisvLyBUaGUgY2FsbGVlIGhvbGRzIHRoZSByZXBvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGUgbGVnYWxpdHkgb2YgdGhlIHRyYW5zaXRpb24uCit2b2lkIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVJZGxlKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBEb250IHN3aXRjaCBzdGF0ZXMgdW50aWwgdGhlIHBvcnRzIGFyZSBwb3B1bGF0ZWQKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworCisgICAgLy8gYWxsb2NhdGUgYnVmZmVycyBvbiBpbnB1dCBwb3J0CisgICAgYWxsb2NhdGVQb3J0QnVmZmVycyhvbXhOb2RlLCBpQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQpOworCisgICAgLy8gRG9udCBzd2l0Y2ggc3RhdGVzIHVudGlsIHRoZSBwb3J0cyBhcmUgcG9wdWxhdGVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIC8vIGFsbG9jYXRlIGJ1ZmZlcnMgb24gb3V0cHV0IHBvcnQKKyAgICBhbGxvY2F0ZVBvcnRCdWZmZXJzKG9teE5vZGUsIG9CdWZmZXIsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgLy8gQXMgdGhlIHBvcnRzIGFyZSBwb3B1bGF0ZWQsIGNoZWNrIGlmIHRoZSBzdGF0ZSB0cmFuc2l0aW9uIGlzIGNvbXBsZXRlCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFN0YXRlU2V0KTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBPTVhfU3RhdGVJZGxlKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IElkbGUgLT4gTG9hZGVkCisvLyBOb3RlOiBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IG1ha2UgYW55IGJhY2tncm91bmQgY2hlY2tzIGZvciB0aGlzIHRyYW5zaXRpb24uCisvLyBUaGUgY2FsbGVlIGhvbGRzIHRoZSByZXBvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGUgbGVnYWxpdHkgb2YgdGhlIHRyYW5zaXRpb24uCit2b2lkIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIHNldCBzdGF0ZSB0byBMb2FkZWQKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUxvYWRlZCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gZG9udCBjaGFuZ2Ugc3RhdGUgdW50aWwgYWxsIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4SW5wdXQsICgqaUJ1ZmZlcilbaV0uaWQpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfQorCisgICAgLy8gZG9udCBjaGFuZ2Ugc3RhdGUgdW50aWwgYWxsIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4T3V0cHV0LCAoKm9CdWZmZXIpW2ldLmlkKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KKworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlTG9hZGVkKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IElkbGUgLT4gRXhlY3V0ZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUV4ZWN1dGluZyk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlRXhlY3V0aW5nKTsKKworICAgIHJldHVybjsKK30KKworLy8gU3RhdGUgVHJhbnNpdGlvbiA6IEV4ZWN1dGUgLT4gSWRsZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBpQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gSWRsZQorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlSWRsZSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlSWRsZSk7CisKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKmlCdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KK30KKworLy8gZGlzcGF0Y2ggYnVmZmVyIHRvIG91dHB1dCBwb3J0Cit2b2lkIGRpc3BhdGNoT3V0cHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1ZmZlckluZGV4KSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgQ29kZWNCdWZmZXIgdDsKKyAgICB0LnNoYXJlZE1lbW9yeSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeSgpOworICAgIHQubmF0aXZlSGFuZGxlID0gYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlKCk7CisgICAgdC50eXBlID0gQ29kZWNCdWZmZXI6OlR5cGU6OlBSRVNFVDsKKyAgICB0LmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICB0LmF0dHIucHJlc2V0LnJhbmdlTGVuZ3RoID0gMDsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGZlbmNlTmggPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgwLCAwKTsKKyAgICBBU1NFUlRfTkUoZmVuY2VOaCwgbnVsbHB0cik7CisgICAgc3RhdHVzID0gb214Tm9kZS0+ZmlsbEJ1ZmZlcigoKmJ1ZmZBcnJheSlbYnVmZmVySW5kZXhdLmlkLCB0LCBmZW5jZU5oKTsKKyAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGZlbmNlTmgpOworICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGZlbmNlTmgpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBidWZmQXJyYXktPmVkaXRJdGVtQXQoYnVmZmVySW5kZXgpLm93bmVyID0gY29tcG9uZW50OworfQorCisvLyBkaXNwYXRjaCBidWZmZXIgdG8gaW5wdXQgcG9ydAordm9pZCBkaXNwYXRjaElucHV0QnVmZmVyKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCwgaW50IGJ5dGVzQ291bnQsIHVpbnQzMl90IGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHRpbWVzdGFtcCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIENvZGVjQnVmZmVyIHQ7CisgICAgdC5zaGFyZWRNZW1vcnkgPSBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkoKTsKKyAgICB0Lm5hdGl2ZUhhbmRsZSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX2hhbmRsZSgpOworICAgIHQudHlwZSA9IENvZGVjQnVmZmVyOjpUeXBlOjpQUkVTRVQ7CisgICAgdC5hdHRyLnByZXNldC5yYW5nZU9mZnNldCA9IDA7CisgICAgdC5hdHRyLnByZXNldC5yYW5nZUxlbmd0aCA9IGJ5dGVzQ291bnQ7CisgICAgbmF0aXZlX2hhbmRsZV90KiBmZW5jZU5oID0gbmF0aXZlX2hhbmRsZV9jcmVhdGUoMCwgMCk7CisgICAgQVNTRVJUX05FKGZlbmNlTmgsIG51bGxwdHIpOworICAgIHN0YXR1cyA9IG9teE5vZGUtPmVtcHR5QnVmZmVyKCgqYnVmZkFycmF5KVtidWZmZXJJbmRleF0uaWQsIHQsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCwgZmVuY2VOaCk7CisgICAgbmF0aXZlX2hhbmRsZV9jbG9zZShmZW5jZU5oKTsKKyAgICBuYXRpdmVfaGFuZGxlX2RlbGV0ZShmZW5jZU5oKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgYnVmZkFycmF5LT5lZGl0SXRlbUF0KGJ1ZmZlckluZGV4KS5vd25lciA9IGNvbXBvbmVudDsKK30KKworLy8gRmx1c2ggaW5wdXQgYW5kIG91dHB1dCBwb3J0cwordm9pZCBmbHVzaFBvcnRzKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLCBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIEZsdXNoIGlucHV0IHBvcnQKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kRmx1c2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRGbHVzaCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwga1BvcnRJbmRleElucHV0KTsKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKmlCdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KKworICAgIC8vIEZsdXNoIG91dHB1dCBwb3J0CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZEZsdXNoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZEZsdXNoKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KK30KKworLy8gZ2V0L3NldCB2aWRlbyBjb21wb25lbnQgcG9ydCBmb3JtYXQKK1JldHVybjxhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzPiBzZXRWaWRlb1BvcnRGb3JtYXQoCisgICAgc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgIE9NWF9WSURFT19DT0RJTkdUWVBFIGVDb21wcmVzc2lvbkZvcm1hdCwgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0LAorICAgIE9NWF9VMzIgeEZyYW1lcmF0ZSkgeworICAgIE9NWF9VMzIgaW5kZXggPSAwOworICAgIE9NWF9WSURFT19QQVJBTV9QT1JURk9STUFUVFlQRSBwb3J0Rm9ybWF0OworICAgIHN0ZDo6dmVjdG9yPE9NWF9DT0xPUl9GT1JNQVRUWVBFPiBhcnJDb2xvckZvcm1hdDsKKyAgICBzdGQ6OnZlY3RvcjxPTVhfVklERU9fQ09ESU5HVFlQRT4gYXJyQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBwb3J0Rm9ybWF0Lm5JbmRleCA9IGluZGV4OworICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb1BvcnRGb3JtYXQsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0Rm9ybWF0KTsKKyAgICAgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSBicmVhazsKKyAgICAgICAgaWYgKGVDb21wcmVzc2lvbkZvcm1hdCA9PSBPTVhfVklERU9fQ29kaW5nVW51c2VkKQorICAgICAgICAgICAgYXJyQ29sb3JGb3JtYXQucHVzaF9iYWNrKHBvcnRGb3JtYXQuZUNvbG9yRm9ybWF0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXJyQ29tcHJlc3Npb25Gb3JtYXQucHVzaF9iYWNrKHBvcnRGb3JtYXQuZUNvbXByZXNzaW9uRm9ybWF0KTsKKyAgICAgICAgaW5kZXgrKzsKKyAgICAgICAgaWYgKGluZGV4ID09IDUxMikgeworICAgICAgICAgICAgLy8gZW51bWVyYXRlZCB3YXkgdG9vIG1hbnkgZm9ybWF0cywgaGlnaGx5IHVudXN1YWwgZm9yIHRoaXMgdG8KKyAgICAgICAgICAgIC8vIGhhcHBlbi4KKyAgICAgICAgICAgIEVYUEVDVF9MRShpbmRleCwgNTEyVSkKKyAgICAgICAgICAgICAgICA8PCAiRXhwZWN0aW5nIE9NWF9FcnJvck5vTW9yZSBidXQgbm90IHJlY2VpdmVkIjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmICghaW5kZXgpIHJldHVybiBzdGF0dXM7CisgICAgaWYgKGVDb21wcmVzc2lvbkZvcm1hdCA9PSBPTVhfVklERU9fQ29kaW5nVW51c2VkKSB7CisgICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGFyckNvbG9yRm9ybWF0LnNpemUoKTsgaW5kZXgrKykgeworICAgICAgICAgICAgaWYgKGFyckNvbG9yRm9ybWF0W2luZGV4XSA9PSBlQ29sb3JGb3JtYXQpIHsKKyAgICAgICAgICAgICAgICBwb3J0Rm9ybWF0LmVDb2xvckZvcm1hdCA9IGFyckNvbG9yRm9ybWF0W2luZGV4XTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXggPT0gYXJyQ29sb3JGb3JtYXQuc2l6ZSgpKSB7CisgICAgICAgICAgICBBTE9HRSgic2V0dGluZyBkZWZhdWx0IGNvbG9yIGZvcm1hdCAleCIsIChpbnQpYXJyQ29sb3JGb3JtYXRbMF0pOworICAgICAgICAgICAgcG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQgPSBhcnJDb2xvckZvcm1hdFswXTsKKyAgICAgICAgfQorICAgICAgICBwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCA9IE9NWF9WSURFT19Db2RpbmdVbnVzZWQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgYXJyQ29tcHJlc3Npb25Gb3JtYXQuc2l6ZSgpOyBpbmRleCsrKSB7CisgICAgICAgICAgICBpZiAoYXJyQ29tcHJlc3Npb25Gb3JtYXRbaW5kZXhdID09IGVDb21wcmVzc2lvbkZvcm1hdCkgeworICAgICAgICAgICAgICAgIHBvcnRGb3JtYXQuZUNvbXByZXNzaW9uRm9ybWF0ID0gYXJyQ29tcHJlc3Npb25Gb3JtYXRbaW5kZXhdOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpbmRleCA9PSBhcnJDb21wcmVzc2lvbkZvcm1hdC5zaXplKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCJzZXR0aW5nIGRlZmF1bHQgY29tcHJlc3Npb24gZm9ybWF0ICV4IiwKKyAgICAgICAgICAgICAgICAgIChpbnQpYXJyQ29tcHJlc3Npb25Gb3JtYXRbMF0pOworICAgICAgICAgICAgcG9ydEZvcm1hdC5lQ29tcHJlc3Npb25Gb3JtYXQgPSBhcnJDb21wcmVzc2lvbkZvcm1hdFswXTsKKyAgICAgICAgfQorICAgICAgICBwb3J0Rm9ybWF0LmVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRVbnVzZWQ7CisgICAgfQorICAgIC8vIEluIHNldFBhcmFtIGNhbGwgbkluZGV4IHNoYWxsIGJlIGlnbm9yZWQgYXMgcGVyIG9teC1pbCBzcGVjaWZpY2F0aW9uLgorICAgIC8vIHNlZSBob3cgdGhpcyBob2xkcyB1cCBieSBjb3JydXB0aW5nIG5JbmRleAorICAgIHBvcnRGb3JtYXQubkluZGV4ID0gUkFORE9NX0lOREVYOworICAgIHBvcnRGb3JtYXQueEZyYW1lcmF0ZSA9IHhGcmFtZXJhdGU7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Qb3J0Rm9ybWF0LCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0Rm9ybWF0KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCisvLyBnZXQvc2V0IGF1ZGlvIGNvbXBvbmVudCBwb3J0IGZvcm1hdAorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IHNldEF1ZGlvUG9ydEZvcm1hdCgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9BVURJT19DT0RJTkdUWVBFIGVFbmNvZGluZykgeworICAgIE9NWF9VMzIgaW5kZXggPSAwOworICAgIE9NWF9BVURJT19QQVJBTV9QT1JURk9STUFUVFlQRSBwb3J0Rm9ybWF0OworICAgIHN0ZDo6dmVjdG9yPE9NWF9BVURJT19DT0RJTkdUWVBFPiBhcnJFbmNvZGluZzsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHBvcnRGb3JtYXQubkluZGV4ID0gaW5kZXg7CisgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUG9ydEZvcm1hdCwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnRGb3JtYXQpOworICAgICAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIGJyZWFrOworICAgICAgICBhcnJFbmNvZGluZy5wdXNoX2JhY2socG9ydEZvcm1hdC5lRW5jb2RpbmcpOworICAgICAgICBpbmRleCsrOworICAgICAgICBpZiAoaW5kZXggPT0gNTEyKSB7CisgICAgICAgICAgICAvLyBlbnVtZXJhdGVkIHdheSB0b28gbWFueSBmb3JtYXRzLCBoaWdobHkgdW51c3VhbCBmb3IgdGhpcyB0bworICAgICAgICAgICAgLy8gaGFwcGVuLgorICAgICAgICAgICAgRVhQRUNUX0xFKGluZGV4LCA1MTJVKQorICAgICAgICAgICAgICAgIDw8ICJFeHBlY3RpbmcgT01YX0Vycm9yTm9Nb3JlIGJ1dCBub3QgcmVjZWl2ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFpbmRleCkgcmV0dXJuIHN0YXR1czsKKyAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBhcnJFbmNvZGluZy5zaXplKCk7IGluZGV4KyspIHsKKyAgICAgICAgaWYgKGFyckVuY29kaW5nW2luZGV4XSA9PSBlRW5jb2RpbmcpIHsKKyAgICAgICAgICAgIHBvcnRGb3JtYXQuZUVuY29kaW5nID0gYXJyRW5jb2RpbmdbaW5kZXhdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGluZGV4ID09IGFyckVuY29kaW5nLnNpemUoKSkgeworICAgICAgICBBTE9HRSgic2V0dGluZyBkZWZhdWx0IFBvcnQgZm9ybWF0ICV4IiwgKGludClhcnJFbmNvZGluZ1swXSk7CisgICAgICAgIHBvcnRGb3JtYXQuZUVuY29kaW5nID0gYXJyRW5jb2RpbmdbMF07CisgICAgfQorICAgIC8vIEluIHNldFBhcmFtIGNhbGwgbkluZGV4IHNoYWxsIGJlIGlnbm9yZWQgYXMgcGVyIG9teC1pbCBzcGVjaWZpY2F0aW9uLgorICAgIC8vIHNlZSBob3cgdGhpcyBob2xkcyB1cCBieSBjb3JydXB0aW5nIG5JbmRleAorICAgIHBvcnRGb3JtYXQubkluZGV4ID0gUkFORE9NX0lOREVYOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvUG9ydEZvcm1hdCwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydEZvcm1hdCk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworLy8gc2V0IGNvbXBvbmVudCByb2xlCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0Um9sZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgY29uc3QgY2hhciogcm9sZSkgeworICAgIE9NWF9QQVJBTV9DT01QT05FTlRST0xFVFlQRSBwYXJhbXM7CisgICAgc3RyY3B5KChjaGFyKilwYXJhbXMuY1JvbGUsIHJvbGUpOworICAgIHJldHVybiBzZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVN0YW5kYXJkQ29tcG9uZW50Um9sZSwgJnBhcmFtcyk7Cit9CisKKy8vIHRlc3QgZGlzcGF0Y2ggbWVzc2FnZSBBUEkgY2FsbAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBkaXNwYXRjaE1zZykgeworICAgIGRlc2NyaXB0aW9uKCJ0ZXN0IGRpc3BhdGNoIG1lc3NhZ2UgQVBJIGNhbGwiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZ2luLCBtc2dvdXQ7CisKKyAgICBtc2dpbi50eXBlID0gTWVzc2FnZTo6VHlwZTo6RVZFTlQ7CisKKyAgICAvLyBkaXNwYXRjaCBFT1MgZXZlbnQsIG5vcm1hbGx5IHRoaXMgaXMgYnkgY29tcG9uZW50IHdoZW4gaXQgcmVjZWl2ZXMgYQorICAgIC8vIEVPUyBmbGFnCisgICAgbXNnaW4uZGF0YS5ldmVudERhdGEuZXZlbnQgPSBPTVhfRXZlbnRCdWZmZXJGbGFnOworICAgIG1zZ2luLmRhdGEuZXZlbnREYXRhLmRhdGExID0gMFU7CisgICAgbXNnaW4uZGF0YS5ldmVudERhdGEuZGF0YTIgPSAodWludDMyX3QpT01YX0JVRkZFUkZMQUdfRU9TOworICAgIHN0YXR1cyA9IG9teE5vZGUtPmRpc3BhdGNoTWVzc2FnZShtc2dpbik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2dvdXQsIERFRkFVTFRfVElNRU9VVCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2dvdXQudHlwZSwgbXNnaW4udHlwZSk7CisgICAgQVNTRVJUX0VRKG1zZ291dC5kYXRhLmV2ZW50RGF0YS5ldmVudCwgbXNnaW4uZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgIEFTU0VSVF9FUShtc2dvdXQuZGF0YS5ldmVudERhdGEuZGF0YTEsIG1zZ2luLmRhdGEuZXZlbnREYXRhLmRhdGExKTsKKyAgICBBU1NFUlRfRVEobXNnb3V0LmRhdGEuZXZlbnREYXRhLmRhdGEyLCBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMik7CisKKyAgICAvLyBkaXNwYXRjaCBkYXRhc3BhY2UgY2hhbmdlZCBldmVudAorICAgIG1zZ2luLmRhdGEuZXZlbnREYXRhLmV2ZW50ID0gT01YX0V2ZW50RGF0YVNwYWNlQ2hhbmdlZDsKKyAgICBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMSA9IDI4MTE0OTQ0MFU7ICAvLyBWMF9CVDYwMV82MjU7CisgICAgbXNnaW4uZGF0YS5ldmVudERhdGEuZGF0YTIgPSAweDExMTE7CisgICAgbXNnaW4uZGF0YS5ldmVudERhdGEuZGF0YTMgPSAweDI0OyAgLy8gUkFXX09QQVFVRQorICAgIHN0YXR1cyA9IG9teE5vZGUtPmRpc3BhdGNoTWVzc2FnZShtc2dpbik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2dvdXQsIERFRkFVTFRfVElNRU9VVCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2dvdXQudHlwZSwgbXNnaW4udHlwZSk7CisgICAgQVNTRVJUX0VRKG1zZ291dC5kYXRhLmV2ZW50RGF0YS5ldmVudCwgbXNnaW4uZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgIEFTU0VSVF9FUShtc2dvdXQuZGF0YS5ldmVudERhdGEuZGF0YTEsIG1zZ2luLmRhdGEuZXZlbnREYXRhLmRhdGExKTsKKyAgICBBU1NFUlRfRVEobXNnb3V0LmRhdGEuZXZlbnREYXRhLmRhdGEyLCBtc2dpbi5kYXRhLmV2ZW50RGF0YS5kYXRhMik7Cit9CisKKy8vIHNldCBjb21wb25lbnQgcm9sZQorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBTZXRSb2xlKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgU2V0IENvbXBvbmVudCBSb2xlIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKKy8vIHBvcnQgaW5kaWNlcyBlbnVtZXJhdGlvbgorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBHZXRQb3J0SW5kaWNlcykgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IENvbXBvbmVudCBvbiBNYW5kYXRvcnkgUG9ydCBQYXJhbWV0ZXJzIChQb3J0IEluZGljZXMpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIEdldCBOdW1iZXIgb2YgUG9ydHMgYW5kIHRoZWlyIEluZGljZXMgZm9yIGFsbCBEb21haW5zCisgICAgLy8gKEF1ZGlvL1ZpZGVvL0ltYWdlL090aGVyKQorICAgIC8vIEFsbCBzdGFuZGFyZCBPTVggY29tcG9uZW50cyBzaGFsbCBzdXBwb3J0IGZvbGxvd2luZyBPTVggSW5kZXggdHlwZXMKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtSW1hZ2VJbml0LCAmcGFyYW1zKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbU90aGVySW5pdCwgJnBhcmFtcyk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKKy8vIHBvcnQgZm9ybWF0IGVudW1lcmF0aW9uCitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIEVudW1lcmF0ZVBvcnRGb3JtYXQpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBGb3JtYXQpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIgfHwgY29tcENsYXNzID09IGF1ZGlvX2VuY29kZXIpIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisKKyAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgIE9NWF9VMzIgeEZyYW1lcmF0ZSA9IDI0VSA8PCAxNjsKKworICAgIC8vIEVudW1lcmF0ZSBQb3J0IEZvcm1hdAorICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgc2V0QXVkaW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgT01YX0FVRElPX0NvZGluZ1BDTSk7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBzdGF0dXMgPSBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9BVURJT19Db2RpbmdBdXRvRGV0ZWN0KTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfSBlbHNlIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlcikgeworICAgICAgICBzdGF0dXMgPSBzZXRBdWRpb1BvcnRGb3JtYXQob214Tm9kZSwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0FVRElPX0NvZGluZ0F1dG9EZXRlY3QpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIHNldEF1ZGlvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfQVVESU9fQ29kaW5nUENNKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfSBlbHNlIGlmIChjb21wQ2xhc3MgPT0gdmlkZW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgT01YX1ZJREVPX0NvZGluZ1VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIHhGcmFtZXJhdGUpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQ29kaW5nQXV0b0RldGVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9DT0xPUl9Gb3JtYXRVbnVzZWQsIDBVKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19Db2RpbmdBdXRvRGV0ZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0Zvcm1hdFVudXNlZCwgMFUpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQ29kaW5nVW51c2VkLCBlQ29sb3JGb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4RnJhbWVyYXRlKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgfQorfQorCisvLyBnZXQvc2V0IGRlZmF1bHQgcG9ydCBzZXR0aW5ncyBvZiBhIGNvbXBvbmVudAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBTZXREZWZhdWx0UG9ydFBhcmFtcykgeworICAgIGRlc2NyaXB0aW9uKAorICAgICAgICAiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBEZWZpbml0aW9uKSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworCisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgLy8gci93IGRlZmF1bHQgaS9vIHBvcnQgcGFyYW1ldGVycworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgaVBvcnREZWY7CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJmlQb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEVYUEVDVF9FUShpUG9ydERlZi5lRGlyLCBPTVhfRGlySW5wdXQpOworICAgICAgICBFWFBFQ1RfRVEoaVBvcnREZWYuYkVuYWJsZWQsIE9NWF9UUlVFKTsKKyAgICAgICAgRVhQRUNUX0VRKGlQb3J0RGVmLmJQb3B1bGF0ZWQsIE9NWF9GQUxTRSk7CisgICAgICAgIEVYUEVDVF9HRShpUG9ydERlZi5uQnVmZmVyQ291bnRNaW4sIDFVKTsKKyAgICAgICAgRVhQRUNUX0dFKGlQb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCwgaVBvcnREZWYubkJ1ZmZlckNvdW50TWluKTsKKyAgICAgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEoaVBvcnREZWYuZURvbWFpbiwgT01YX1BvcnREb21haW5BdWRpbyk7CisgICAgICAgICAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIpIHsKKyAgICAgICAgICAgICAgICBpUG9ydERlZi5mb3JtYXQuYXVkaW8uYkZsYWdFcnJvckNvbmNlYWxtZW50ID0gT01YX1RSVUU7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJmlQb3J0RGVmKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjb21wQ2xhc3MgPT0gdmlkZW9fZW5jb2RlciB8fCBjb21wQ2xhc3MgPT0gdmlkZW9fZGVjb2RlcikgeworICAgICAgICAgICAgRVhQRUNUX0VRKGlQb3J0RGVmLmVEb21haW4sIE9NWF9Qb3J0RG9tYWluVmlkZW8pOworICAgICAgICAgICAgaWYgKGNvbXBDbGFzcyA9PSB2aWRlb19kZWNvZGVyKSB7CisgICAgICAgICAgICAgICAgaVBvcnREZWYuZm9ybWF0LnZpZGVvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgICAgICAgICAgICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZpUG9ydERlZik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgZHVtbXkgPSBpUG9ydERlZjsKKyAgICAgICAgaVBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsID0gaVBvcnREZWYubkJ1ZmZlckNvdW50TWluIC0gMTsKKyAgICAgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsICZpUG9ydERlZik7CisgICAgICAgIEVYUEVDVF9ORShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAvLyBFZGl0IFJlYWQtT25seSBmaWVsZHMuCisgICAgICAgIGlQb3J0RGVmLmVEaXIgPSBPTVhfRGlyT3V0cHV0OyAgLy8gUmVhZCBPbmx5IGZpZWxkCisgICAgICAgIGlQb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCA9IGR1bW15Lm5CdWZmZXJDb3VudEFjdHVhbCA8PCAxOworICAgICAgICBpUG9ydERlZi5uQnVmZmVyQ291bnRNaW4gPSBkdW1teS5uQnVmZmVyQ291bnRNaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTsgICAgICAgICAgICAgICAgLy8gUmVhZCBPbmx5IGZpZWxkCisgICAgICAgIGlQb3J0RGVmLm5CdWZmZXJTaXplID0gZHVtbXkubkJ1ZmZlclNpemUgPDwgMTsgIC8vIFJlYWQgT25seSBmaWVsZAorICAgICAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJmlQb3J0RGVmKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCAmaVBvcnREZWYpOworICAgICAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgRVhQRUNUX0VRKGlQb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCwgZHVtbXkubkJ1ZmZlckNvdW50QWN0dWFsIDw8IDEpOworICAgICAgICBpZiAoKGlQb3J0RGVmLmVEaXIgIT0gT01YX0RpcklucHV0KSB8fAorICAgICAgICAgICAgKGlQb3J0RGVmLm5CdWZmZXJDb3VudE1pbiAhPSBkdW1teS5uQnVmZmVyQ291bnRNaW4pIHx8CisgICAgICAgICAgICAoaVBvcnREZWYubkJ1ZmZlclNpemUgIT0gZHVtbXkubkJ1ZmZlclNpemUpKSB7CisgICAgICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgQ29tcG9uZW50IGlucHV0IHBvcnQgZG9lcyBub3QgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVzZXJ2ZSBSZWFkLU9ubHkgZmllbGRzIFxuIjsKKyAgICAgICAgfQorICAgIH0KKworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgb1BvcnREZWY7CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsICZvUG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEVYUEVDVF9FUShvUG9ydERlZi5lRGlyLCBPTVhfRGlyT3V0cHV0KTsKKyAgICAgICAgRVhQRUNUX0VRKG9Qb3J0RGVmLmJFbmFibGVkLCBPTVhfVFJVRSk7CisgICAgICAgIEVYUEVDVF9FUShvUG9ydERlZi5iUG9wdWxhdGVkLCBPTVhfRkFMU0UpOworICAgICAgICBFWFBFQ1RfR0Uob1BvcnREZWYubkJ1ZmZlckNvdW50TWluLCAxVSk7CisgICAgICAgIEVYUEVDVF9HRShvUG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWwsIG9Qb3J0RGVmLm5CdWZmZXJDb3VudE1pbik7CisgICAgICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlcikgeworICAgICAgICAgICAgRVhQRUNUX0VRKG9Qb3J0RGVmLmVEb21haW4sIE9NWF9Qb3J0RG9tYWluQXVkaW8pOworICAgICAgICAgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgICAgICAgICAgb1BvcnREZWYuZm9ybWF0LmF1ZGlvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgICAgICAgICAgICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAmb1BvcnREZWYpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGNvbXBDbGFzcyA9PSB2aWRlb19lbmNvZGVyIHx8IGNvbXBDbGFzcyA9PSB2aWRlb19kZWNvZGVyKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEob1BvcnREZWYuZURvbWFpbiwgT01YX1BvcnREb21haW5WaWRlbyk7CisgICAgICAgICAgICBpZiAoY29tcENsYXNzID09IHZpZGVvX2VuY29kZXIpIHsKKyAgICAgICAgICAgICAgICBvUG9ydERlZi5mb3JtYXQudmlkZW8uYkZsYWdFcnJvckNvbmNlYWxtZW50ID0gT01YX1RSVUU7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsICZvUG9ydERlZik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgZHVtbXkgPSBvUG9ydERlZjsKKyAgICAgICAgb1BvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsID0gb1BvcnREZWYubkJ1ZmZlckNvdW50TWluIC0gMTsKKyAgICAgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0LCAmb1BvcnREZWYpOworICAgICAgICBFWFBFQ1RfTkUoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgLy8gRWRpdCBSZWFkLU9ubHkgZmllbGRzLgorICAgICAgICBvUG9ydERlZi5lRGlyID0gT01YX0RpcklucHV0OyAgLy8gUmVhZCBPbmx5IGZpZWxkCisgICAgICAgIG9Qb3J0RGVmLm5CdWZmZXJDb3VudEFjdHVhbCA9IGR1bW15Lm5CdWZmZXJDb3VudEFjdHVhbCA8PCAxOworICAgICAgICBvUG9ydERlZi5uQnVmZmVyQ291bnRNaW4gPSBkdW1teS5uQnVmZmVyQ291bnRNaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgMTsgICAgICAgICAgICAgICAgLy8gUmVhZCBPbmx5IGZpZWxkCisgICAgICAgIG9Qb3J0RGVmLm5CdWZmZXJTaXplID0gZHVtbXkubkJ1ZmZlclNpemUgPDwgMTsgIC8vIFJlYWQgT25seSBmaWVsZAorICAgICAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsICZvUG9ydERlZik7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsICZvUG9ydERlZik7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBFWFBFQ1RfRVEob1BvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsLCBkdW1teS5uQnVmZmVyQ291bnRBY3R1YWwgPDwgMSk7CisgICAgICAgIGlmICgob1BvcnREZWYuZURpciAhPSBPTVhfRGlyT3V0cHV0KSB8fAorICAgICAgICAgICAgKG9Qb3J0RGVmLm5CdWZmZXJDb3VudE1pbiAhPSBkdW1teS5uQnVmZmVyQ291bnRNaW4pIHx8CisgICAgICAgICAgICAob1BvcnREZWYubkJ1ZmZlclNpemUgIT0gZHVtbXkubkJ1ZmZlclNpemUpKSB7CisgICAgICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgQ29tcG9uZW50IG91dHB1dCBwb3J0IGRvZXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJub3QgcHJlc2VydmUgUmVhZC1Pbmx5IGZpZWxkcyBcbiI7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHBvcHVsYXRlIHBvcnQgdGVzdAorVEVTVF9GKENvbXBvbmVudEhpZGxUZXN0LCBQb3B1bGF0ZVBvcnQpIHsKKyAgICBkZXNjcmlwdGlvbigiVmVyaWZ5IGJQb3B1bGF0ZWQgZmllbGQgb2YgYSBjb21wb25lbnQgcG9ydCIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9VMzIgcG9ydEJhc2UgPSAwOworCisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBwb3J0QmFzZSA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgIH0KKworICAgIHNwPElBbGxvY2F0b3I+IGFsbG9jYXRvciA9IElBbGxvY2F0b3I6OmdldFNlcnZpY2UoImFzaG1lbSIpOworICAgIEVYUEVDVF9ORShhbGxvY2F0b3IuZ2V0KCksIG51bGxwdHIpOworCisgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgIHN0YXR1cyA9CisgICAgICAgIGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0QmFzZSwgJnBvcnREZWYpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShwb3J0RGVmLmJQb3B1bGF0ZWQsIE9NWF9GQUxTRSk7CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gcEJ1ZmZlcjsKKyAgICBwQnVmZmVyLmNsZWFyKCk7CisgICAgdWludDMyX3QgbkJ1ZmZlclNpemUgPSBwb3J0RGVmLm5CdWZmZXJTaXplID4+IDE7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBvcnREZWYubkJ1ZmZlckNvdW50QWN0dWFsOyBpKyspIHsKKyAgICAgICAgQnVmZmVySW5mbyBidWZmZXI7CisgICAgICAgIGJ1ZmZlci5vd25lciA9IGNsaWVudDsKKyAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci50eXBlID0gQ29kZWNCdWZmZXI6OlR5cGU6OlNIQVJFRF9NRU07CisgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIuYXR0ci5wcmVzZXQucmFuZ2VPZmZzZXQgPSAwOworICAgICAgICBidWZmZXIub214QnVmZmVyLmF0dHIucHJlc2V0LnJhbmdlTGVuZ3RoID0gMDsKKyAgICAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgIGFsbG9jYXRvci0+YWxsb2NhdGUoCisgICAgICAgICAgICBuQnVmZmVyU2l6ZSwKKyAgICAgICAgICAgIFsmc3VjY2VzcywgJmJ1ZmZlcl0oYm9vbCBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9tZW1vcnkgY29uc3QmIG1lbSkgeworICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBfczsKKyAgICAgICAgICAgICAgICBidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeSA9IG1lbTsKKyAgICAgICAgICAgIH0pOworICAgICAgICBBU1NFUlRfRVEoc3VjY2VzcywgdHJ1ZSk7CisgICAgICAgIEFTU0VSVF9FUShidWZmZXIub214QnVmZmVyLnNoYXJlZE1lbW9yeS5zaXplKCksIG5CdWZmZXJTaXplKTsKKworICAgICAgICBvbXhOb2RlLT51c2VCdWZmZXIoCisgICAgICAgICAgICBwb3J0QmFzZSwgYnVmZmVyLm9teEJ1ZmZlciwKKyAgICAgICAgICAgIFsmc3RhdHVzLCAmYnVmZmVyXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGlkKSB7CisgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgYnVmZmVyLmlkID0gaWQ7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgcEJ1ZmZlci5wdXNoKGJ1ZmZlcik7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KKworICAgIHN0YXR1cyA9CisgICAgICAgIGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0QmFzZSwgJnBvcnREZWYpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIC8vIEEgcG9ydCBpcyBwb3B1bGF0ZWQgd2hlbiBhbGwgb2YgdGhlIGJ1ZmZlcnMgaW5kaWNhdGVkIGJ5CisgICAgLy8gbkJ1ZmZlckNvdW50QWN0dWFsIHdpdGggYSBzaXplIG9mIGF0IGxlYXN0IG5CdWZmZXJTaXplaGF2ZSBiZWVuCisgICAgLy8gYWxsb2NhdGVkIG9uIHRoZSBwb3J0LgorICAgIEFTU0VSVF9FUShwb3J0RGVmLmJQb3B1bGF0ZWQsIE9NWF9GQUxTRSk7Cit9CisKKy8vIEZsdXNoIHRlc3QKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgRmx1c2gpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBGbHVzaCIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKyAgICAvLyBkaXNwYXRjaCBidWZmZXJzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsICZvQnVmZmVyLCBpKTsKKyAgICB9CisgICAgLy8gZmx1c2ggcG9ydAorICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gZGlzcGF0Y2ggYnVmZmVycworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci5zaXplKCk7IGkrKykgeworICAgICAgICBkaXNwYXRjaElucHV0QnVmZmVyKG9teE5vZGUsICZpQnVmZmVyLCBpLCAwLCAwLCAwKTsKKyAgICB9CisgICAgLy8gZmx1c2ggcG9ydHMKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBsb2FkZWQKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIHN0YXRlIHRyYW5zaXRpb25zIHRlc3QKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgU3RhdGVUcmFuc2l0aW9ucykgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFN0YXRlIFRyYW5zaXRpb25zIExvYWRlZDwtPklkbGU8LT5FeGVjdXRlIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIgfHwgY29tcENsYXNzID09IGF1ZGlvX2VuY29kZXIpIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworICAgIC8vIGRpc3BhdGNoIGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXIuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgJm9CdWZmZXIsIGkpOworICAgIH0KKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKyAgICAvLyBkaXNwYXRjaCBidWZmZXJzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpQnVmZmVyLnNpemUoKTsgaSsrKSB7CisgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgJmlCdWZmZXIsIGksIDAsIDAsIDApOworICAgIH0KKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gbG9hZGVkCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBzdGF0ZSB0cmFuc2l0aW9ucyB0ZXN0IC0gbW9ua2V5aW5nCitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIFN0YXRlVHJhbnNpdGlvbnNfTSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFN0YXRlIFRyYW5zaXRpb25zIG1vbmtleWluZyIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gbG9hZGVkIDsgcmVjZWl2ZSBlcnJvciBPTVhfRXJyb3JTYW1lU3RhdGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUxvYWRlZCk7CisgICAgRVhQRUNUX05FKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZyA7IHJlY2VpdmUgZXJyb3IgT01YX0Vycm9ySW5jb3JyZWN0U3RhdGVUcmFuc2l0aW9uCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVFeGVjdXRpbmcpOworICAgIEVYUEVDVF9ORShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUgOyByZWNlaXZlIGVycm9yIE9NWF9FcnJvclNhbWVTdGF0ZQorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlSWRsZSk7CisgICAgRVhQRUNUX05FKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nIDsgcmVjZWl2ZSBlcnJvciBPTVhfRXJyb3JTYW1lU3RhdGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUV4ZWN1dGluZyk7CisgICAgRVhQRUNUX05FKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gc2V0IHN0YXRlIHRvIExvYWRlZCA7IHJlY2VpdmUgZXJyb3IgT01YX0Vycm9ySW5jb3JyZWN0U3RhdGVUcmFuc2l0aW9uCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVMb2FkZWQpOworICAgIEVYUEVDVF9ORShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBJZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworCisgICAgLy8gc2V0IHN0YXRlIHRvIExvYWRlZAorICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gcG9ydCBlbmFibGUgZGlzYWJsZSB0ZXN0CitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIFBvcnRFbmFibGVEaXNhYmxlX0xvYWRlZCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFBvcnQgRW5hYmxlIGFuZCBEaXNhYmxlIChDb21wb25lbnQgU3RhdGUgOjogTG9hZGVkKSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9VMzIgcG9ydEJhc2UgPSAwOworICAgIE1lc3NhZ2UgbXNnOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIGlmIChjb21wQ2xhc3MgPT0gYXVkaW9fZGVjb2RlciB8fCBjb21wQ2xhc3MgPT0gYXVkaW9fZW5jb2RlcikgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbUF1ZGlvSW5pdCwgJnBhcmFtcyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIH0KKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAgcG9ydEJhc2UgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gcG9ydEJhc2U7IGkgPCBwb3J0QmFzZSArIDI7IGkrKykgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnREaXNhYmxlKSwgaSk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50Q21kQ29tcGxldGUpIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydERpc2FibGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgaSk7CisgICAgICAgICAgICAvLyBJZiB5b3UgY2FuIGRpc2FibGUgYSBwb3J0LCB0aGVuIHlvdSBzaG91bGQgYmUgYWJsZSB0byBlbmFibGUgaXQKKyAgICAgICAgICAgIC8vIGFzIHdlbGwKKyAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgIHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RW5hYmxlKSwgaSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VUKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RW5hYmxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGkpOworICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRFcnJvcikgeworICAgICAgICAgICAgQUxPR0UoIlBvcnQgJWQgRGlzYWJsaW5nIGZhaWxlZCB3aXRoIGVycm9yICVkIiwgKGludClpLAorICAgICAgICAgICAgICAgICAgKGludCltc2cuZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gc29tZXRoaW5nIHVuZXhwZWN0ZWQgaGFwcGVuZWQKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gcG9ydCBlbmFibGUgZGlzYWJsZSB0ZXN0CitURVNUX0YoQ29tcG9uZW50SGlkbFRlc3QsIFBvcnRFbmFibGVEaXNhYmxlX0lkbGUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBQb3J0IEVuYWJsZSBhbmQgRGlzYWJsZSAoQ29tcG9uZW50IFN0YXRlIDo6IElkbGUpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgT01YX1UzMiBwb3J0QmFzZSA9IDA7CisgICAgTWVzc2FnZSBtc2c7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBwb3J0QmFzZSA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgIH0KKyAgICBrUG9ydEluZGV4SW5wdXQgPSBwb3J0QmFzZTsKKyAgICBrUG9ydEluZGV4T3V0cHV0ID0gcG9ydEJhc2UgKyAxOworCisgICAgLy8gQ29tcG9uZW50IFN0YXRlIDo6IElkbGUKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gcEJ1ZmZlclsyXTsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgZm9yIChzaXplX3QgaSA9IHBvcnRCYXNlOyBpIDwgcG9ydEJhc2UgKyAyOyBpKyspIHsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RGlzYWJsZSksIGkpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgJnBCdWZmZXJbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcEJ1ZmZlclsxXSk7CisgICAgICAgIGlmIChzdGF0dXMgPT0gYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRDbWRDb21wbGV0ZSkgeworICAgICAgICAgICAgICAgIC8vIGRvIG5vdCBkaXNhYmxlIHRoZSBwb3J0IHVudGlsIGFsbCB0aGUgYnVmZmVycyBhcmUgZnJlZWQKKyAgICAgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRFcnJvcikgeworICAgICAgICAgICAgICAgIEFMT0dFKCJQb3J0ICVkIERpc2FibGluZyBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIChpbnQpaSwKKyAgICAgICAgICAgICAgICAgICAgICAoaW50KW1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIHNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbmVkCisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PQorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCkgeworICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCBwQnVmZmVyW2kgLSBwb3J0QmFzZV0uc2l6ZSgpOyArK2opIHsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5mcmVlQnVmZmVyKGksIHBCdWZmZXJbaSAtIHBvcnRCYXNlXVtqXS5pZCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydERpc2FibGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgaSk7CisKKyAgICAgICAgICAgIC8vIElmIHlvdSBjYW4gZGlzYWJsZSBhIHBvcnQsIHRoZW4geW91IHNob3VsZCBiZSBhYmxlIHRvIGVuYWJsZSBpdAorICAgICAgICAgICAgLy8gYXMgd2VsbAorICAgICAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgdG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnRFbmFibGUpLCBpKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgICAgICAgICAgLy8gZG8gbm90IGVuYWJsZSB0aGUgcG9ydCB1bnRpbCBhbGwgdGhlIGJ1ZmZlcnMgYXJlIHN1cHBsaWVkCisgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICAgICAgICAgIGFsbG9jYXRlUG9ydEJ1ZmZlcnMob214Tm9kZSwgJnBCdWZmZXJbaSAtIHBvcnRCYXNlXSwgaSk7CisgICAgICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kUG9ydEVuYWJsZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIHNvbWV0aGluZyB1bmV4cGVjdGVkIGhhcHBlbmVkCisgICAgICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gTG9hZGVkCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBwb3J0IGVuYWJsZSBkaXNhYmxlIHRlc3QKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgUG9ydEVuYWJsZURpc2FibGVfRXhlY3V0ZSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFBvcnQgRW5hYmxlIGFuZCBEaXNhYmxlIChDb21wb25lbnQgU3RhdGUgOjogRXhlY3V0ZSkiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBPTVhfVTMyIHBvcnRCYXNlID0gMDsKKyAgICBNZXNzYWdlIG1zZzsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBpZiAoY29tcENsYXNzID09IGF1ZGlvX2RlY29kZXIgfHwgY29tcENsYXNzID09IGF1ZGlvX2VuY29kZXIpIHsKKyAgICAgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1BdWRpb0luaXQsICZwYXJhbXMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIHBvcnRCYXNlID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgfQorICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBvcnRCYXNlOworICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBwb3J0QmFzZSArIDE7CisKKyAgICAvLyBDb21wb25lbnQgU3RhdGUgOjogSWRsZQorICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBwQnVmZmVyWzJdOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJnBCdWZmZXJbMF0sICZwQnVmZmVyWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIGRpc3BhdGNoIGJ1ZmZlcnMKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHBCdWZmZXJbMV0uc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgJnBCdWZmZXJbMV0sIGkpOworICAgIH0KKworICAgIGZvciAoc2l6ZV90IGkgPSBwb3J0QmFzZTsgaSA8IHBvcnRCYXNlICsgMjsgaSsrKSB7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydERpc2FibGUpLCBpKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsICZwQnVmZmVyWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBCdWZmZXJbMV0pOworICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50Q21kQ29tcGxldGUpIHsKKyAgICAgICAgICAgICAgICAvLyBkbyBub3QgZGlzYWJsZSB0aGUgcG9ydCB1bnRpbCBhbGwgdGhlIGJ1ZmZlcnMgYXJlIGZyZWVkCisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICAgICAgfSBlbHNlIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50RXJyb3IpIHsKKyAgICAgICAgICAgICAgICBBTE9HRSgiUG9ydCAlZCBEaXNhYmxpbmcgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCAoaW50KWksCisgICAgICAgICAgICAgICAgICAgICAgKGludCltc2cuZGF0YS5ldmVudERhdGEuZXZlbnQpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZAorICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT0KKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwgcEJ1ZmZlcltpIC0gcG9ydEJhc2VdLnNpemUoKTsgKytqKSB7CisgICAgICAgICAgICAgICAgLy8gdGVzdCBpZiBjbGllbnQgZ290IGFsbCBpdHMgYnVmZmVycyBiYWNrCisgICAgICAgICAgICAgICAgRVhQRUNUX0VRKHBCdWZmZXJbaSAtIHBvcnRCYXNlXVtqXS5vd25lciwgY2xpZW50KTsKKyAgICAgICAgICAgICAgICAvLyBmcmVlIHRoZSBidWZmZXJzCisgICAgICAgICAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+ZnJlZUJ1ZmZlcihpLCBwQnVmZmVyW2kgLSBwb3J0QmFzZV1bal0uaWQpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnREaXNhYmxlKTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGkpOworCisgICAgICAgICAgICAvLyBJZiB5b3UgY2FuIGRpc2FibGUgYSBwb3J0LCB0aGVuIHlvdSBzaG91bGQgYmUgYWJsZSB0byBlbmFibGUgaXQKKyAgICAgICAgICAgIC8vIGFzIHdlbGwKKyAgICAgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKAorICAgICAgICAgICAgICAgIHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RW5hYmxlKSwgaSk7CisgICAgICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAgICAgICAgIC8vIGRvIG5vdCBlbmFibGUgdGhlIHBvcnQgdW50aWwgYWxsIHRoZSBidWZmZXJzIGFyZSBzdXBwbGllZAorICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworCisgICAgICAgICAgICBhbGxvY2F0ZVBvcnRCdWZmZXJzKG9teE5vZGUsICZwQnVmZmVyW2kgLSBwb3J0QmFzZV0sIGkpOworICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcEJ1ZmZlclswXSwgJnBCdWZmZXJbMV0pOworICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnRFbmFibGUpOworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgaSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZAorICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gc2V0IHN0YXRlIHRvIElkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSk7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gTG9hZGVkCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZwQnVmZmVyWzBdLCAmcEJ1ZmZlclsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBwb3J0IGVuYWJsZSBkaXNhYmxlIHRlc3QgLSBtb25rZXlpbmcKK1RFU1RfRihDb21wb25lbnRIaWRsVGVzdCwgUG9ydEVuYWJsZURpc2FibGVfTSkgeworICAgIGRlc2NyaXB0aW9uKAorICAgICAgICAiVGVzdCBQb3J0IEVuYWJsZSBhbmQgRGlzYWJsZSBNb25rZXlpbmcgKENvbXBvbmVudCBTdGF0ZSA6OiBMb2FkZWQpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1UzMiBwb3J0QmFzZSA9IDA7CisgICAgTWVzc2FnZSBtc2c7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgaWYgKGNvbXBDbGFzcyA9PSBhdWRpb19kZWNvZGVyIHx8IGNvbXBDbGFzcyA9PSBhdWRpb19lbmNvZGVyKSB7CisgICAgICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtQXVkaW9Jbml0LCAmcGFyYW1zKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgfQorICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBwb3J0QmFzZSA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgIH0KKworICAgIC8vIGRpc2FibGUgaW52YWxpZCBwb3J0LCBleHBlY3RpbmcgT01YX0Vycm9yQmFkUG9ydEluZGV4CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFBvcnREaXNhYmxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSQU5ET01fSU5ERVgpOworICAgIEFTU0VSVF9ORShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIGVuYWJsZSBpbnZhbGlkIHBvcnQsIGV4cGVjdGluZyBPTVhfRXJyb3JCYWRQb3J0SW5kZXgKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydEVuYWJsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkFORE9NX0lOREVYKTsKKyAgICBBU1NFUlRfTkUoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICAvLyBkaXNhYmxlIGFsbCBwb3J0cworICAgIHN0YXR1cyA9CisgICAgICAgIG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RGlzYWJsZSksIE9NWF9BTEwpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VUKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRDbWRDb21wbGV0ZSkgeworICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRQb3J0RGlzYWJsZSk7CisgICAgICAgICAgICBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyICE9IHBvcnRCYXNlIHx8CisgICAgICAgICAgICAgICAgbXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyICE9IHBvcnRCYXNlICsgMSkKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShmYWxzZSk7CisgICAgICAgIH0gZWxzZSBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudEVycm9yKSB7CisgICAgICAgICAgICBBTE9HRSgiUG9ydCAlZCBEaXNhYmxpbmcgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCAoaW50KWksCisgICAgICAgICAgICAgICAgICAoaW50KW1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZAorICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gZW5hYmxlIGFsbCBwb3J0cworICAgIHN0YXR1cyA9CisgICAgICAgIG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RW5hYmxlKSwgT01YX0FMTCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMjsgaSsrKSB7CisgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudENtZENvbXBsZXRlKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnRFbmFibGUpOworICAgICAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiAhPSBwb3J0QmFzZSB8fAorICAgICAgICAgICAgICAgIG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiAhPSBwb3J0QmFzZSArIDEpCisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoZmFsc2UpOworICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCA9PSBPTVhfRXZlbnRFcnJvcikgeworICAgICAgICAgICAgQUxPR0UoIlBvcnQgJWQgRW5hYmxpbmcgZmFpbGVkIHdpdGggZXJyb3IgJWQiLCAoaW50KWksCisgICAgICAgICAgICAgICAgICAoaW50KW1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZAorICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICB9CisgICAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICBnRW52ID0gbmV3IENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpOworICAgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KGdFbnYpOworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBnRW52LT5pbml0RnJvbU9wdGlvbnMoYXJnYywgYXJndik7CisgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICAgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9tYXN0ZXIvQW5kcm9pZC5icCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmVkYmY0YQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzOCBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldE1hc3RlclRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldE1hc3RlclRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lZGlhLm9teEAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CisKZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldE1hc3RlclRlc3QuY3BwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC9tYXN0ZXIvVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0TWFzdGVyVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWM2NmMyNQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvbWFzdGVyL1Z0c0hhbE1lZGlhT214VjFfMFRhcmdldE1hc3RlclRlc3QuY3BwCkBAIC0wLDAgKzEsMTg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF9tYXN0ZXJfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teFN0b3JlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214U3RvcmU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvLyBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwCitjbGFzcyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorCisgICAgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KCkgOiBpbnN0YW5jZSgiZGVmYXVsdCIpIHt9CisKKyAgICB2b2lkIHNldEluc3RhbmNlKGNvbnN0IGNoYXIqIF9pbnN0YW5jZSkgeyBpbnN0YW5jZSA9IF9pbnN0YW5jZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0SW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpbnN0YW5jZTsgfQorCisgICAgaW50IGluaXRGcm9tT3B0aW9ucyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICAgICAgc3RhdGljIHN0cnVjdCBvcHRpb24gb3B0aW9uc1tdID0geworICAgICAgICAgICAgeyJpbnN0YW5jZSIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnSSd9LCB7MCwgMCwgMCwgMH19OworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiSToiLCBvcHRpb25zLCAmaW5kZXgpOworICAgICAgICAgICAgaWYgKGMgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICAgICAgICAgIHNldEluc3RhbmNlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJz8nOgorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChvcHRpbmQgPCBhcmdjKSB7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgInVucmVjb2duaXplZCBvcHRpb246ICVzXG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInVzYWdlOiAlcyA8Z3Rlc3Qgb3B0aW9ucz4gPHRlc3Qgb3B0aW9ucz5cblxuIgorICAgICAgICAgICAgICAgICAgICAidGVzdCBvcHRpb25zIGFyZTpcblxuIgorICAgICAgICAgICAgICAgICAgICAiLUksIC0taW5zdGFuY2U6IEhBTCBpbnN0YW5jZSB0byB0ZXN0XG4iLAorICAgICAgICAgICAgICAgICAgICBhcmd2W29wdGluZCA/OiAxXSwgYXJndlswXSk7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgaGlkbF9zdHJpbmcgaW5zdGFuY2U7Cit9OworCitzdGF0aWMgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KiBnRW52ID0gbnVsbHB0cjsKKworY2xhc3MgTWFzdGVySGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgb214U3RvcmUgPSBudWxscHRyOworICAgICAgICBvbXhTdG9yZSA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElPbXhTdG9yZT4oKTsKKyAgICAgICAgQVNTRVJUX05FKG9teFN0b3JlLCBudWxscHRyKTsKKyAgICAgICAgb214ID0gbnVsbHB0cjsKKyAgICAgICAgb214ID0gb214U3RvcmUtPmdldE9teChnRW52LT5nZXRJbnN0YW5jZSgpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teCwgbnVsbHB0cik7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICAgIHNwPElPbXhTdG9yZT4gb214U3RvcmU7CisgICAgc3A8SU9teD4gb214OworCisgICBwcm90ZWN0ZWQ6CisgICAgc3RhdGljIHZvaWQgZGVzY3JpcHRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIFJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIGRlc2NyaXB0aW9uKTsKKyAgICB9Cit9OworCit2b2lkIGRpc3BsYXlDb21wb25lbnRJbmZvKGhpZGxfdmVjPElPbXg6OkNvbXBvbmVudEluZm8+JiBub2RlTGlzdCkgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbm9kZUxpc3Quc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgcHJpbnRmKCIlcyB8ICIsIG5vZGVMaXN0W2ldLm1OYW1lLmNfc3RyKCkpOworICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8ICgobm9kZUxpc3RbaV0pLm1Sb2xlcykuc2l6ZSgpOyBqKyspIHsKKyAgICAgICAgICAgIHByaW50ZigiJXMgIiwgbm9kZUxpc3RbaV0ubVJvbGVzW2pdLmNfc3RyKCkpOworICAgICAgICB9CisgICAgICAgIHByaW50ZigiXG4iKTsKKyAgICB9Cit9CisKKy8vIGxpc3Qgc2VydmljZSBhdHRyaWJ1dGVzCitURVNUX0YoTWFzdGVySGlkbFRlc3QsIExpc3RTZXJ2aWNlQXR0cikgeworICAgIGRlc2NyaXB0aW9uKCJsaXN0IHNlcnZpY2UgYXR0cmlidXRlcyIpOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIGhpZGxfdmVjPElPbXhTdG9yZTo6QXR0cmlidXRlPiBhdHRyaWJ1dGVzOworICAgIEVYUEVDVF9UUlVFKG9teFN0b3JlCisgICAgICAgICAgICAgICAgICAgIC0+bGlzdFNlcnZpY2VBdHRyaWJ1dGVzKFsmc3RhdHVzLCAmYXR0cmlidXRlc10oCisgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgaGlkbF92ZWM8SU9teFN0b3JlOjpBdHRyaWJ1dGU+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAgICAgLmlzT2soKSk7CisgICAgaWYgKGF0dHJpYnV0ZXMuc2l6ZSgpID09IDApCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBBdHRyaWJ1dGUgbGlzdCBlbXB0eSBcbiI7Cit9CisKKy8vIGdldCBub2RlIHByZWZpeAorVEVTVF9GKE1hc3RlckhpZGxUZXN0LCBnZXROb2RlUHJlZml4KSB7CisgICAgZGVzY3JpcHRpb24oImdldCBub2RlIHByZWZpeCIpOworICAgIGhpZGxfc3RyaW5nIHByZWZpeDsKKyAgICBvbXhTdG9yZS0+Z2V0Tm9kZVByZWZpeCgKKyAgICAgICAgWyZwcmVmaXhdKGhpZGxfc3RyaW5nIGNvbnN0JiBfbmwpIHsgcHJlZml4ID0gX25sOyB9KTsKKyAgICBpZiAocHJlZml4LmVtcHR5KCkpCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBOb2RlIFByZWZpeCBlbXB0eSBcbiI7Cit9CisKKy8vIGxpc3Qgcm9sZXMKK1RFU1RfRihNYXN0ZXJIaWRsVGVzdCwgTGlzdFJvbGVzKSB7CisgICAgZGVzY3JpcHRpb24oImxpc3Qgcm9sZXMiKTsKKyAgICBoaWRsX3ZlYzxJT214U3RvcmU6OlJvbGVJbmZvPiByb2xlTGlzdDsKKyAgICBvbXhTdG9yZS0+bGlzdFJvbGVzKFsmcm9sZUxpc3RdKGhpZGxfdmVjPElPbXhTdG9yZTo6Um9sZUluZm8+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgcm9sZUxpc3QgPSBfbmw7CisgICAgfSk7CisgICAgaWYgKHJvbGVMaXN0LnNpemUoKSA9PSAwKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgUm9sZUluZm8gbGlzdCBlbXB0eSBcbiI7Cit9CisKKy8vIGxpc3QgY29tcG9uZW50cyBhbmQgcm9sZXMKK1RFU1RfRihNYXN0ZXJIaWRsVGVzdCwgTGlzdE5vZGVzKSB7CisgICAgZGVzY3JpcHRpb24oImVudW1lcmF0ZSBjb21wb25lbnQgYW5kIHJvbGVzIik7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgaGlkbF92ZWM8SU9teDo6Q29tcG9uZW50SW5mbz4gbm9kZUxpc3Q7CisgICAgRVhQRUNUX1RSVUUoCisgICAgICAgIG9teC0+bGlzdE5vZGVzKFsmc3RhdHVzLCAmbm9kZUxpc3RdKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGxfdmVjPElPbXg6OkNvbXBvbmVudEluZm8+IGNvbnN0JiBfbmwpIHsKKyAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgbm9kZUxpc3QgPSBfbmw7CisgICAgICAgICAgIH0pCisgICAgICAgICAgICAuaXNPaygpKTsKKyAgICBpZiAobm9kZUxpc3Quc2l6ZSgpID09IDApCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBDb21wb25lbnRJbmZvIGxpc3QgZW1wdHkgXG4iOworICAgIGVsc2UKKyAgICAgICAgZGlzcGxheUNvbXBvbmVudEluZm8obm9kZUxpc3QpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgICBnRW52ID0gbmV3IENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCgpOworICAgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KGdFbnYpOworICAgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICAgIGludCBzdGF0dXMgPSBnRW52LT5pbml0RnJvbU9wdGlvbnMoYXJnYywgYXJndik7CisgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgICAgICAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICAgIH0KKyAgICByZXR1cm4gc3RhdHVzOworfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9BbmRyb2lkLmJwIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE4YzhkOTkKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3NyBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldFZpZGVvRGVjVGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9EZWNUZXN0LmNwcCIsCisgICAgICAgICAgICJtZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbG1lbW9yeSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJzdGFnZWZyaWdodF9mb3VuZGF0aW9uIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5hbGxvY2F0b3JAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKKyAgICBpbmNsdWRlX2RpcnM6IFsKKyAgICAgICAgImZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvb3Blbm1heC8iLAorICAgICAgICAiaGFyZHdhcmUvaW50ZXJmYWNlcy9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbiIsCisgICAgXSwKK30KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbE1lZGlhT214VjFfMFRhcmdldFZpZGVvRW5jVGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9FbmNUZXN0LmNwcCIsCisgICAgICAgICAgICJtZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbG1lbW9yeSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJzdGFnZWZyaWdodF9mb3VuZGF0aW9uIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5hbGxvY2F0b3JAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGlkbC5tZW1vcnlAMS4wIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVkaWEub214QDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAgIi1PMCIsCisgICAgICAgICItZyIsCisgICAgXSwKKyAgICBpbmNsdWRlX2RpcnM6IFsKKyAgICAgICAgImZyYW1ld29ya3MvbmF0aXZlL2luY2x1ZGUvbWVkaWEvb3Blbm1heC8iLAorICAgICAgICAiaGFyZHdhcmUvaW50ZXJmYWNlcy9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL2NvbW1vbiIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9EZWNUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9EZWNUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNWMyYjBjCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRWaWRlb0RlY1Rlc3QuY3BwCkBAIC0wLDAgKzEsMTAyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibWVkaWFfb214X2hpZGxfdmlkZW9fZGVjX3Rlc3QiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC9JT214Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhOb2RlLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXhPYnNlcnZlci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVkaWEvb214LzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9hbGxvY2F0b3IvMS4wL0lBbGxvY2F0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWFwcGVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL21lbW9yeS8xLjAvSU1lbW9yeS5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE9ic2VydmVyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6SU9teE5vZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpNZXNzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6Q29kZWNCdWZmZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmFsbG9jYXRvcjo6VjFfMDo6SUFsbG9jYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6bWVtb3J5OjpWMV8wOjpJTWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNYXBwZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKyNpbmNsdWRlIDxtZWRpYV9oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8bWVkaWFfdmlkZW9faGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPGZzdHJlYW0+CisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAKK2NsYXNzIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQorICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9CisKKyAgICBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKSA6IGluc3RhbmNlKCJkZWZhdWx0IiksIHJlcygiL3NkY2FyZC9tZWRpYS8iKSB7fQorCisgICAgdm9pZCBzZXRJbnN0YW5jZShjb25zdCBjaGFyKiBfaW5zdGFuY2UpIHsgaW5zdGFuY2UgPSBfaW5zdGFuY2U7IH0KKworICAgIHZvaWQgc2V0Q29tcG9uZW50KGNvbnN0IGNoYXIqIF9jb21wb25lbnQpIHsgY29tcG9uZW50ID0gX2NvbXBvbmVudDsgfQorCisgICAgdm9pZCBzZXRSb2xlKGNvbnN0IGNoYXIqIF9yb2xlKSB7IHJvbGUgPSBfcm9sZTsgfQorCisgICAgdm9pZCBzZXRSZXMoY29uc3QgY2hhciogX3JlcykgeyByZXMgPSBfcmVzOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRJbnN0YW5jZSgpIGNvbnN0IHsgcmV0dXJuIGluc3RhbmNlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRDb21wb25lbnQoKSBjb25zdCB7IHJldHVybiBjb21wb25lbnQ7IH0KKworICAgIGNvbnN0IGhpZGxfc3RyaW5nIGdldFJvbGUoKSBjb25zdCB7IHJldHVybiByb2xlOyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSZXMoKSBjb25zdCB7IHJldHVybiByZXM7IH0KKworICAgIGludCBpbml0RnJvbU9wdGlvbnMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgICAgIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKKyAgICAgICAgICAgIHsiaW5zdGFuY2UiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ0knfSwKKyAgICAgICAgICAgIHsiY29tcG9uZW50IiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdDJ30sCisgICAgICAgICAgICB7InJvbGUiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ1InfSwKKyAgICAgICAgICAgIHsicmVzIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdQJ30sCisgICAgICAgICAgICB7MCwgMCwgMCwgMH19OworCisgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICBpbnQgaW5kZXggPSAwOworICAgICAgICAgICAgaW50IGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBhcmd2LCAiSTpDOlI6UDoiLCBvcHRpb25zLCAmaW5kZXgpOworICAgICAgICAgICAgaWYgKGMgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoIChjKSB7CisgICAgICAgICAgICAgICAgY2FzZSAnSSc6CisgICAgICAgICAgICAgICAgICAgIHNldEluc3RhbmNlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ0MnOgorICAgICAgICAgICAgICAgICAgICBzZXRDb21wb25lbnQob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUic6CisgICAgICAgICAgICAgICAgICAgIHNldFJvbGUob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnUCc6CisgICAgICAgICAgICAgICAgICAgIHNldFJlcyhvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICc/JzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAob3B0aW5kIDwgYXJnYykgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCisgICAgICAgICAgICAgICAgICAgICJ1bnJlY29nbml6ZWQgb3B0aW9uOiAlc1xuXG4iCisgICAgICAgICAgICAgICAgICAgICJ1c2FnZTogJXMgPGd0ZXN0IG9wdGlvbnM+IDx0ZXN0IG9wdGlvbnM+XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgInRlc3Qgb3B0aW9ucyBhcmU6XG5cbiIKKyAgICAgICAgICAgICAgICAgICAgIi1JLCAtLWluc3RhbmNlOiBIQUwgaW5zdGFuY2UgdG8gdGVzdFxuIgorICAgICAgICAgICAgICAgICAgICAiLUMsIC0tY29tcG9uZW50OiBPTVggY29tcG9uZW50IHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1SLCAtLXJvbGU6IE9NWCBjb21wb25lbnQgUm9sZVxuIgorICAgICAgICAgICAgICAgICAgICAiLVAsIC0tcmVzOiBSZXNvdXJjZSBmaWxlcyBkaXJlY3RvcnkgbG9jYXRpb25cbiIsCisgICAgICAgICAgICAgICAgICAgIGFyZ3Zbb3B0aW5kID86IDFdLCBhcmd2WzBdKTsKKyAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICB9CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgcHJpdmF0ZToKKyAgICBoaWRsX3N0cmluZyBpbnN0YW5jZTsKKyAgICBoaWRsX3N0cmluZyBjb21wb25lbnQ7CisgICAgaGlkbF9zdHJpbmcgcm9sZTsKKyAgICBoaWRsX3N0cmluZyByZXM7Cit9OworCitzdGF0aWMgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KiBnRW52ID0gbnVsbHB0cjsKKworLy8gdmlkZW8gZGVjb2RlciB0ZXN0IGZpeHR1cmUgY2xhc3MKK2NsYXNzIFZpZGVvRGVjSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworICAgcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgZGlzYWJsZVRlc3QgPSBmYWxzZTsKKyAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgICAgIG9teCA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElPbXg+KAorICAgICAgICAgICAgZ0Vudi0+Z2V0SW5zdGFuY2UoKSk7CisgICAgICAgIEFTU0VSVF9ORShvbXgsIG51bGxwdHIpOworICAgICAgICBvYnNlcnZlciA9CisgICAgICAgICAgICBuZXcgQ29kZWNPYnNlcnZlcihbdGhpc10oTWVzc2FnZSBtc2cpIHsgaGFuZGxlTWVzc2FnZShtc2cpOyB9KTsKKyAgICAgICAgQVNTRVJUX05FKG9ic2VydmVyLCBudWxscHRyKTsKKyAgICAgICAgaWYgKHN0cm5jbXAoZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSwgIk9NWC4iLCA0KSAhPSAwKQorICAgICAgICAgICAgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBFWFBFQ1RfVFJVRShvbXgtPmFsbG9jYXRlTm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdFbnYtPmdldENvbXBvbmVudCgpLCBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElPbXhOb2RlPiBjb25zdCYgX25sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+b214Tm9kZSA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teE5vZGUsIG51bGxwdHIpOworICAgICAgICBBU1NFUlRfTkUoZ0Vudi0+Z2V0Um9sZSgpLmVtcHR5KCksIHRydWUpIDw8ICJJbnZhbGlkIENvbXBvbmVudCBSb2xlIjsKKyAgICAgICAgc3RydWN0IFN0cmluZ1RvTmFtZSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBOYW1lOworICAgICAgICAgICAgc3RhbmRhcmRDb21wIENvbXBOYW1lOworICAgICAgICB9OworICAgICAgICBjb25zdCBTdHJpbmdUb05hbWUga1N0cmluZ1RvTmFtZVtdID0geworICAgICAgICAgICAgeyJoMjYzIiwgaDI2M30sIHsiYXZjIiwgYXZjfSwgeyJtcGVnMiIsIG1wZWcyfSwgeyJtcGVnNCIsIG1wZWc0fSwKKyAgICAgICAgICAgIHsiaGV2YyIsIGhldmN9LCB7InZwOCIsIHZwOH0sIHsidnA5IiwgdnA5fSwKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGtOdW1TdHJpbmdUb05hbWUgPQorICAgICAgICAgICAgc2l6ZW9mKGtTdHJpbmdUb05hbWUpIC8gc2l6ZW9mKGtTdHJpbmdUb05hbWVbMF0pOworICAgICAgICBjb25zdCBjaGFyKiBwY2g7CisgICAgICAgIGNoYXIgc3Vic3RyaW5nW09NWF9NQVhfU1RSSU5HTkFNRV9TSVpFXTsKKyAgICAgICAgc3RyY3B5KHN1YnN0cmluZywgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgICAgICBwY2ggPSBzdHJjaHIoc3Vic3RyaW5nLCAnLicpOworICAgICAgICBBU1NFUlRfTkUocGNoLCBudWxscHRyKTsKKyAgICAgICAgY29tcE5hbWUgPSB1bmtub3duX2NvbXA7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga051bVN0cmluZ1RvTmFtZTsgKytpKSB7CisgICAgICAgICAgICBpZiAoIXN0cmNhc2VjbXAocGNoICsgMSwga1N0cmluZ1RvTmFtZVtpXS5OYW1lKSkgeworICAgICAgICAgICAgICAgIGNvbXBOYW1lID0ga1N0cmluZ1RvTmFtZVtpXS5Db21wTmFtZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcE5hbWUgPT0gdW5rbm93bl9jb21wKSBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIHN0cnVjdCBDb21wVG9Db21wcmVzc2lvbiB7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgICAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBDb21wVG9Db21wcmVzc2lvbiBrQ29tcFRvQ29tcHJlc3Npb25bXSA9IHsKKyAgICAgICAgICAgIHtoMjYzLCBPTVhfVklERU9fQ29kaW5nSDI2M30sICAge2F2YywgT01YX1ZJREVPX0NvZGluZ0FWQ30sCisgICAgICAgICAgICB7bXBlZzIsIE9NWF9WSURFT19Db2RpbmdNUEVHMn0sIHttcGVnNCwgT01YX1ZJREVPX0NvZGluZ01QRUc0fSwKKyAgICAgICAgICAgIHtoZXZjLCBPTVhfVklERU9fQ29kaW5nSEVWQ30sICAge3ZwOCwgT01YX1ZJREVPX0NvZGluZ1ZQOH0sCisgICAgICAgICAgICB7dnA5LCBPTVhfVklERU9fQ29kaW5nVlA5fSwKKyAgICAgICAgfTsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBrTnVtQ29tcFRvQ29tcHJlc3Npb24gPQorICAgICAgICAgICAgc2l6ZW9mKGtDb21wVG9Db21wcmVzc2lvbikgLyBzaXplb2Yoa0NvbXBUb0NvbXByZXNzaW9uWzBdKTsKKyAgICAgICAgc2l6ZV90IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBrTnVtQ29tcFRvQ29tcHJlc3Npb247ICsraSkgeworICAgICAgICAgICAgaWYgKGtDb21wVG9Db21wcmVzc2lvbltpXS5Db21wTmFtZSA9PSBjb21wTmFtZSkgeworICAgICAgICAgICAgICAgIGVDb21wcmVzc2lvbkZvcm1hdCA9IGtDb21wVG9Db21wcmVzc2lvbltpXS5lQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGkgPT0ga051bUNvbXBUb0NvbXByZXNzaW9uKSBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIGVvc0ZsYWcgPSBmYWxzZTsKKyAgICAgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgICAgICB0aW1lc3RhbXBVcyA9IDA7CisgICAgICAgIHRpbWVzdGFtcERldlRlc3QgPSBmYWxzZTsKKyAgICAgICAgaWYgKGRpc2FibGVUZXN0KSBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgIFRlc3QgRGlzYWJsZWRcbiI7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAob214Tm9kZSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSgob214Tm9kZS0+ZnJlZU5vZGUoKSkuaXNPaygpKTsKKyAgICAgICAgICAgIG9teE5vZGUgPSBudWxscHRyOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gY2FsbGJhY2sgZnVuY3Rpb24gdG8gcHJvY2VzcyBtZXNzYWdlcyByZWNlaXZlZCBieSBvbk1lc3NhZ2VzKCkgZnJvbSBJTAorICAgIC8vIGNsaWVudC4KKyAgICB2b2lkIGhhbmRsZU1lc3NhZ2UoTWVzc2FnZSBtc2cpIHsKKyAgICAgICAgaWYgKG1zZy50eXBlID09IE1lc3NhZ2U6OlR5cGU6OkZJTExfQlVGRkVSX0RPTkUpIHsKKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEuZmxhZ3MgJiBPTVhfQlVGRkVSRkxBR19FT1MpIHsKKyAgICAgICAgICAgICAgICBlb3NGbGFnID0gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEucmFuZ2VMZW5ndGggIT0gMCkgeworICAgICAgICAgICAgICAgIGZyYW1lc1JlY2VpdmVkICs9IDE7CisgICAgICAgICAgICAgICAgLy8gRm9yIGRlY29kZXIgY29tcG9uZW50cyBjdXJyZW50IHRpbWVzdGFtcCBhbHdheXMgZXhjZWVkcworICAgICAgICAgICAgICAgIC8vIHByZXZpb3VzIHRpbWVzdGFtcAorICAgICAgICAgICAgICAgIEVYUEVDVF9HRShtc2cuZGF0YS5leHRlbmRlZEJ1ZmZlckRhdGEudGltZXN0YW1wVXMsIHRpbWVzdGFtcFVzKTsKKyAgICAgICAgICAgICAgICB0aW1lc3RhbXBVcyA9IG1zZy5kYXRhLmV4dGVuZGVkQnVmZmVyRGF0YS50aW1lc3RhbXBVczsKKyAgICAgICAgICAgICAgICAvLyBUZXN0IGlmIGN1cnJlbnQgdGltZXN0YW1wIGlzIGFtb25nIHRoZSBsaXN0IG9mIHF1ZXVlZAorICAgICAgICAgICAgICAgIC8vIHRpbWVzdGFtcHMKKyAgICAgICAgICAgICAgICBpZiAodGltZXN0YW1wRGV2VGVzdCkgeworICAgICAgICAgICAgICAgICAgICBib29sIHRzSGl0ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6Okxpc3Q8dWludDY0X3Q+OjppdGVyYXRvciBpdCA9CisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBVc2xpc3QuYmVnaW4oKTsKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGl0ICE9IHRpbWVzdGFtcFVzbGlzdC5lbmQoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCppdCA9PSB0aW1lc3RhbXBVcykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcFVzbGlzdC5lcmFzZShpdCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHNIaXQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaXQrKzsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAodHNIaXQgPT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aW1lc3RhbXBVc2xpc3QuZW1wdHkoKSA9PSBmYWxzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYUEVDVF9FUSh0c0hpdCwgdHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgIlRpbWVTdGFtcCBub3QgcmVjb2duaXplZCI7CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2VycgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBSZWNlaXZlZCBub24temVybyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdXRwdXQgLyBUaW1lU3RhbXAgbm90IHJlY29nbml6ZWQgXG4iOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCB0ZXN0RU9TKGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLCBib29sIHNpZ25hbEVPUyA9IGZhbHNlKTsKKworICAgIGVudW0gc3RhbmRhcmRDb21wIHsKKyAgICAgICAgaDI2MywKKyAgICAgICAgYXZjLAorICAgICAgICBtcGVnMiwKKyAgICAgICAgbXBlZzQsCisgICAgICAgIGhldmMsCisgICAgICAgIHZwOCwKKyAgICAgICAgdnA5LAorICAgICAgICB1bmtub3duX2NvbXAsCisgICAgfTsKKworICAgIHNwPElPbXg+IG9teDsKKyAgICBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcjsKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZTsKKyAgICBzdGFuZGFyZENvbXAgY29tcE5hbWU7CisgICAgT01YX1ZJREVPX0NPRElOR1RZUEUgZUNvbXByZXNzaW9uRm9ybWF0OworICAgIGJvb2wgZGlzYWJsZVRlc3Q7CisgICAgYm9vbCBlb3NGbGFnOworICAgIHVpbnQzMl90IGZyYW1lc1JlY2VpdmVkOworICAgIHVpbnQ2NF90IHRpbWVzdGFtcFVzOworICAgIDo6YW5kcm9pZDo6TGlzdDx1aW50NjRfdD4gdGltZXN0YW1wVXNsaXN0OworICAgIGJvb2wgdGltZXN0YW1wRGV2VGVzdDsKKworICAgcHJvdGVjdGVkOgorICAgIHN0YXRpYyB2b2lkIGRlc2NyaXB0aW9uKGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXNjcmlwdGlvbikgeworICAgICAgICBSZWNvcmRQcm9wZXJ0eSgiZGVzY3JpcHRpb24iLCBkZXNjcmlwdGlvbik7CisgICAgfQorfTsKKworLy8gZW5kIG9mIHN0cmVhbSB0ZXN0IGZvciB2aWRlbyBkZWNvZGVyIGNvbXBvbmVudHMKK3ZvaWQgVmlkZW9EZWNIaWRsVGVzdDo6dGVzdEVPUyhhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2lnbmFsRU9TKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgc2l6ZV90IGkgPSAwOworICAgIGlmIChzaWduYWxFT1MpIHsKKyAgICAgICAgaWYgKChpID0gZ2V0RW1wdHlCdWZmZXJJRChpQnVmZmVyKSkgPCBpQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIC8vIHNpZ25hbCBhbiBlbXB0eSBidWZmZXIgd2l0aCBmbGFnIHNldCB0byBFT1MKKyAgICAgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaSwgMCwgT01YX0JVRkZFUkZMQUdfRU9TLCAwKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAvLyBEaXNwYXRjaCBhbGwgY2xpZW50IG93bmVkIG91dHB1dCBidWZmZXJzIHRvIHJlY292ZXIgcmVtYWluaW5nIGZyYW1lcworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICgoaSA9IGdldEVtcHR5QnVmZmVySUQob0J1ZmZlcikpIDwgb0J1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHdoaWxlICgxKSB7CisgICAgICAgIE1lc3NhZ2UgbXNnOworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgIEVYUEVDVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpOworICAgICAgICBmb3IgKDsgaSA8IGlCdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKCppQnVmZmVyKVtpXS5vd25lciAhPSBjbGllbnQpIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChpID09IGlCdWZmZXItPnNpemUoKSkgYnJlYWs7CisgICAgfQorICAgIC8vIHRlc3QgZm9yIGZsYWcKKyAgICBFWFBFQ1RfRVEoZW9zRmxhZywgdHJ1ZSk7CisgICAgZW9zRmxhZyA9IGZhbHNlOworfQorCisvLyBTZXQgRGVmYXVsdCBwb3J0IHBhcmFtLgordm9pZCBzZXREZWZhdWx0UG9ydFBhcmFtKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgbkZyYW1lV2lkdGggPSAzNTIsIE9NWF9VMzIgbkZyYW1lSGVpZ2h0ID0gMjg4LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgbkJpdHJhdGUgPSAwLAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgeEZyYW1lcmF0ZSA9ICgyNFUgPDwgMTYpKSB7CisgICAgc3dpdGNoICgoaW50KWVDb21wcmVzc2lvbkZvcm1hdCkgeworICAgICAgICBjYXNlIE9NWF9WSURFT19Db2RpbmdVbnVzZWQ6CisgICAgICAgICAgICBzZXR1cFJBV1BvcnQob214Tm9kZSwgcG9ydEluZGV4LCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgIG5CaXRyYXRlLCB4RnJhbWVyYXRlLCBlQ29sb3JGb3JtYXQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKKy8vIEluIGRlY29kZXIgY29tcG9uZW50cywgb2Z0ZW4gdGhlIGlucHV0IHBvcnQgcGFyYW1ldGVycyBnZXQgdXBkYXRlZCB1cG9uCisvLyBwYXJzaW5nIHRoZSBoZWFkZXIgb2YgZWxlbWVudGFyeSBzdHJlYW0uIENsaWVudCBuZWVkcyB0byBjb2xsZWN0IHRoaXMKKy8vIGluZm9ybWF0aW9uIHRvIHJlY29uZmlndXJlIG90aGVyIHBvcnRzIHRoYXQgc2hhcmUgZGF0YSB3aXRoIHRoaXMgaW5wdXQKKy8vIHBvcnQuCit2b2lkIGdldElucHV0Q2hhbm5lbEluZm8oc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90KiBuRnJhbWVXaWR0aCwgdWludDMyX3QqIG5GcmFtZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCogeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgICpuRnJhbWVXaWR0aCA9IDM1MjsKKyAgICAqbkZyYW1lSGVpZ2h0ID0gMjg4OworICAgICp4RnJhbWVyYXRlID0gKDI0VSA8PCAxNik7CisKKyAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwgJnBvcnREZWYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICAqbkZyYW1lV2lkdGggPSBwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVXaWR0aDsKKyAgICAgICAgKm5GcmFtZUhlaWdodCA9IHBvcnREZWYuZm9ybWF0LnZpZGVvLm5GcmFtZUhlaWdodDsKKyAgICAgICAgKnhGcmFtZXJhdGUgPSBwb3J0RGVmLmZvcm1hdC52aWRlby54RnJhbWVyYXRlOworICAgIH0KK30KKworLy8gTG9va1VwVGFibGUgb2YgY2xpcHMgYW5kIG1ldGFkYXRhIGZvciBjb21wb25lbnQgdGVzdGluZwordm9pZCBHZXRVUkxGb3JDb21wb25lbnQoVmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wIGNvbXAsIGNoYXIqIG1VUkwsCisgICAgICAgICAgICAgICAgICAgICAgICBjaGFyKiBpbmZvKSB7CisgICAgc3RydWN0IENvbXBUb1VSTCB7CisgICAgICAgIFZpZGVvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcCBjb21wOworICAgICAgICBjb25zdCBjaGFyKiBtVVJMOworICAgICAgICBjb25zdCBjaGFyKiBpbmZvOworICAgIH07CisgICAgc3RhdGljIGNvbnN0IENvbXBUb1VSTCBrQ29tcFRvVVJMW10gPSB7CisgICAgICAgIHtWaWRlb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmF2YywKKyAgICAgICAgICJiYmJfYXZjXzE5MjB4MTA4MF81MDAwa2Jwc18zMGZwcy5oMjY0IiwKKyAgICAgICAgICJiYmJfYXZjXzE5MjB4MTA4MF81MDAwa2Jwc18zMGZwcy5pbmZvIn0sCisgICAgICAgIHtWaWRlb0RlY0hpZGxUZXN0OjpzdGFuZGFyZENvbXA6OmhldmMsCisgICAgICAgICAiYmJiX2hldmNfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5oZXZjIiwKKyAgICAgICAgICJiYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8ifSwKKyAgICAgICAge1ZpZGVvRGVjSGlkbFRlc3Q6OnN0YW5kYXJkQ29tcDo6bXBlZzIsCisgICAgICAgICAiYmJiX21wZWcyXzE3NngxNDRfMTA1a2Jwc18yNWZwcy5tMnYiLAorICAgICAgICAgImJiYl9tcGVnMl8xNzZ4MTQ0XzEwNWticHNfMjVmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjpoMjYzLAorICAgICAgICAgImJiYl9oMjYzXzM1MngyODhfMzAwa2Jwc18xMmZwcy5oMjYzIiwKKyAgICAgICAgICJiYmJfaDI2M18zNTJ4Mjg4XzMwMGticHNfMTJmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjptcGVnNCwKKyAgICAgICAgICJiYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMubTR2IiwKKyAgICAgICAgICJiYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjp2cDgsICJiYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMudnA4IiwKKyAgICAgICAgICJiYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMuaW5mbyJ9LAorICAgICAgICB7VmlkZW9EZWNIaWRsVGVzdDo6c3RhbmRhcmRDb21wOjp2cDksCisgICAgICAgICAiYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLnZwOSIsCisgICAgICAgICAiYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8ifSwKKyAgICB9OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2Yoa0NvbXBUb1VSTCkgLyBzaXplb2Yoa0NvbXBUb1VSTFswXSk7ICsraSkgeworICAgICAgICBpZiAoa0NvbXBUb1VSTFtpXS5jb21wID09IGNvbXApIHsKKyAgICAgICAgICAgIHN0cmNhdChtVVJMLCBrQ29tcFRvVVJMW2ldLm1VUkwpOworICAgICAgICAgICAgc3RyY2F0KGluZm8sIGtDb21wVG9VUkxbaV0uaW5mbyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHBvcnQgc2V0dGluZ3MgcmVjb25maWd1cmF0aW9uIGR1cmluZyBydW50aW1lLiByZWNvbmZpZ3VyZXMgZnJhbWUgZGltZW5zaW9ucwordm9pZCBwb3J0UmVjb25maWd1cmF0aW9uKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LCBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSBtc2cpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50UG9ydFNldHRpbmdzQ2hhbmdlZCkgeworICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiA9PSAwKSB7CisgICAgICAgICAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCgKKyAgICAgICAgICAgICAgICB0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kUG9ydERpc2FibGUpLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvQnVmZmVyKTsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgPT0KKyAgICAgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpUSU1FRF9PVVQpIHsKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIHRlc3QgaWYgY2xpZW50IGdvdCBhbGwgaXRzIGJ1ZmZlcnMgYmFjaworICAgICAgICAgICAgICAgICAgICBFWFBFQ1RfRVEoKCpvQnVmZmVyKVtpXS5vd25lciwgY2xpZW50KTsKKyAgICAgICAgICAgICAgICAgICAgLy8gZnJlZSB0aGUgYnVmZmVycworICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgICAgICAgICAgICAgb214Tm9kZS0+ZnJlZUJ1ZmZlcihrUG9ydEluZGV4T3V0cHV0LCAoKm9CdWZmZXIpW2ldLmlkKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnREaXNhYmxlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgICAgICAgICAgICAgIC8vIHNldCBQb3J0IFBhcmFtcworICAgICAgICAgICAgICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIHhGcmFtZXJhdGU7CisgICAgICAgICAgICAgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0KKyAgICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICAgICAgICAgICAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgJm5GcmFtZVdpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5GcmFtZUhlaWdodCwgJnhGcmFtZXJhdGUpOworICAgICAgICAgICAgICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsIGVDb2xvckZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIDAsIHhGcmFtZXJhdGUpOworCisgICAgICAgICAgICAgICAgLy8gSWYgeW91IGNhbiBkaXNhYmxlIGEgcG9ydCwgdGhlbiB5b3Ugc2hvdWxkIGJlIGFibGUgdG8KKyAgICAgICAgICAgICAgICAvLyBlbmFibGUKKyAgICAgICAgICAgICAgICAvLyBpdCBhcyB3ZWxsCisgICAgICAgICAgICAgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQoCisgICAgICAgICAgICAgICAgICAgIHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRQb3J0RW5hYmxlKSwga1BvcnRJbmRleE91dHB1dCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgICAgICAgICAgICAgLy8gZG8gbm90IGVuYWJsZSB0aGUgcG9ydCB1bnRpbCBhbGwgdGhlIGJ1ZmZlcnMgYXJlIHN1cHBsaWVkCisgICAgICAgICAgICAgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKAorICAgICAgICAgICAgICAgICAgICBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICAgICAgICAgICAgICBhbGxvY2F0ZVBvcnRCdWZmZXJzKG9teE5vZGUsIG9CdWZmZXIsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgICAgICAgICAgICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlCdWZmZXIsIG9CdWZmZXIpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgICAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZFBvcnRFbmFibGUpOworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIGtQb3J0SW5kZXhPdXRwdXQpOworCisgICAgICAgICAgICAgICAgLy8gZGlzcGF0Y2ggb3V0cHV0IGJ1ZmZlcnMKKyAgICAgICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGkpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQVNTRVJUX1RSVUUoZmFsc2UpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiA9PQorICAgICAgICAgICAgICAgICAgIE9NWF9JbmRleENvbmZpZ0NvbW1vbk91dHB1dENyb3ApIHsKKyAgICAgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBPTVhfRXZlbnRQb3J0U2V0dGluZ3NDaGFuZ2VkLyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgIk9NWF9JbmRleENvbmZpZ0NvbW1vbk91dHB1dENyb3Agbm90IGhhbmRsZWQgXG4iOworICAgICAgICB9IGVsc2UgaWYgKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiA9PSBPTVhfSW5kZXhWZW5kb3JTdGFydFVudXNlZCArIDMpIHsKKyAgICAgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBPTVhfRXZlbnRQb3J0U2V0dGluZ3NDaGFuZ2VkLyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgImtEZXNjcmliZUNvbG9yQXNwZWN0c0luZGV4IG5vdCBoYW5kbGVkIFxuIjsKKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50ID09IE9NWF9FdmVudEVycm9yKSB7CisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISBPTVhfRXZlbnRFcnJvci8gIgorICAgICAgICAgICAgICAgICAgICAgIkRlY29kZSBGcmFtZSBDYWxsIG1pZ2h0IGJlIGZhaWxlZCBcbiI7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBzb21ldGhpbmcgdW5leHBlY3RlZCBoYXBwZW5lZAorICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgfQorfQorCisvLyBibG9ja2luZyBjYWxsIHRvIGVuc3VyZXMgYXBwbGljYXRpb24gdG8gV2FpdCB0aWxsIGFsbCB0aGUgaW5wdXRzIGFyZSBjb25zdW1lZAordm9pZCB3YWl0T25JbnB1dENvbnN1bXB0aW9uKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleElucHV0LCBPTVhfVTMyIGtQb3J0SW5kZXhPdXRwdXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHNpemVfdCBpID0gMDsKKyAgICAgICAgc3RhdHVzID0KKyAgICAgICAgICAgIG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICBFWFBFQ1RfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIHBvcnRSZWNvbmZpZ3VyYXRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsIGlCdWZmZXIsIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCwgbXNnKTsKKyAgICAgICAgfQorICAgICAgICAvLyBzdGF0dXMgPT0gVElNRURfT1VULCBpdCBjb3VsZCBiZSBkdWUgdG8gcHJvY2VzcyB0aW1lIGJlaW5nIGxhcmdlCisgICAgICAgIC8vIHRoYW4gREVGQVVMVF9USU1FT1VUIG9yIGNvbXBvbmVudCBuZWVkcyBvdXRwdXQgYnVmZmVycyB0byBzdGFydAorICAgICAgICAvLyBwcm9jZXNzaW5nLgorICAgICAgICBmb3IgKDsgaSA8IGlCdWZmZXItPnNpemUoKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKCppQnVmZmVyKVtpXS5vd25lciAhPSBjbGllbnQpIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChpID09IGlCdWZmZXItPnNpemUoKSkgYnJlYWs7CisKKyAgICAgICAgLy8gRGlzcGF0Y2ggYW4gb3V0cHV0IGJ1ZmZlciBhc3N1bWluZyBvdXRRdWV1ZS5lbXB0eSgpIGlzIHRydWUKKyAgICAgICAgc2l6ZV90IGluZGV4OworICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChvQnVmZmVyKSkgPCBvQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGluZGV4KTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gRGVjb2RlIE4gRnJhbWVzCit2b2lkIGRlY29kZU5GcmFtZXMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwKKyAgICAgICAgICAgICAgICAgICBzdGQ6Omlmc3RyZWFtJiBlbGVTdHJlYW0sIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+KiBJbmZvLAorICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQsIGludCByYW5nZSwgYm9vbCBzaWduYWxFT1MgPSB0cnVlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBkaXNwYXRjaCBvdXRwdXQgYnVmZmVycworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb0J1ZmZlci0+c2l6ZSgpOyBpKyspIHsKKyAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaSk7CisgICAgfQorICAgIC8vIGRpc3BhdGNoIGlucHV0IGJ1ZmZlcnMKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgaW50IGZyYW1lSUQgPSBvZmZzZXQ7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IChpIDwgaUJ1ZmZlci0+c2l6ZSgpKSAmJiAoZnJhbWVJRCA8IChpbnQpSW5mby0+c2l6ZSgpKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAoZnJhbWVJRCA8IChvZmZzZXQgKyByYW5nZSkpOworICAgICAgICAgaSsrKSB7CisgICAgICAgIGNoYXIqIGlwQnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KCgqaUJ1ZmZlcilbaV0ubU1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgIEFTU0VSVF9MRSgoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KCgqaUJ1ZmZlcilbaV0ubU1lbW9yeS0+Z2V0U2l6ZSgpKSk7CisgICAgICAgIGVsZVN0cmVhbS5yZWFkKGlwQnVmZmVyLCAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQpOworICAgICAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmdjb3VudCgpLCAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQpOworICAgICAgICBmbGFncyA9ICgqSW5mbylbZnJhbWVJRF0uZmxhZ3M7CisgICAgICAgIGlmIChzaWduYWxFT1MgJiYgKChmcmFtZUlEID09IChpbnQpSW5mby0+c2l6ZSgpIC0gMSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGZyYW1lSUQgPT0gKG9mZnNldCArIHJhbmdlIC0gMSkpKSkKKyAgICAgICAgICAgIGZsYWdzIHw9IE9NWF9CVUZGRVJGTEFHX0VPUzsKKyAgICAgICAgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihvbXhOb2RlLCBpQnVmZmVyLCBpLCAoKkluZm8pW2ZyYW1lSURdLmJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsICgqSW5mbylbZnJhbWVJRF0udGltZXN0YW1wKTsKKyAgICAgICAgZnJhbWVJRCsrOworICAgIH0KKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKworICAgICAgICAvLyBQb3J0IFJlY29uZmlndXJhdGlvbgorICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LICYmCisgICAgICAgICAgICBtc2cudHlwZSA9PSBNZXNzYWdlOjpUeXBlOjpFVkVOVCkgeworICAgICAgICAgICAgcG9ydFJlY29uZmlndXJhdGlvbihvbXhOb2RlLCBvYnNlcnZlciwgaUJ1ZmZlciwgb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0LCBtc2cpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZyYW1lSUQgPT0gKGludClJbmZvLT5zaXplKCkgfHwgZnJhbWVJRCA9PSAob2Zmc2V0ICsgcmFuZ2UpKSBicmVhazsKKworICAgICAgICAvLyBEaXNwYXRjaCBpbnB1dCBidWZmZXIKKyAgICAgICAgc2l6ZV90IGluZGV4ID0gMDsKKyAgICAgICAgaWYgKChpbmRleCA9IGdldEVtcHR5QnVmZmVySUQoaUJ1ZmZlcikpIDwgaUJ1ZmZlci0+c2l6ZSgpKSB7CisgICAgICAgICAgICBjaGFyKiBpcEJ1ZmZlciA9IHN0YXRpY19jYXN0PGNoYXIqPigKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx2b2lkKj4oKCppQnVmZmVyKVtpbmRleF0ubU1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgICAgICBBU1NFUlRfTEUoKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpbmRleF0ubU1lbW9yeS0+Z2V0U2l6ZSgpKSk7CisgICAgICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgKCpJbmZvKVtmcmFtZUlEXS5ieXRlc0NvdW50KTsKKyAgICAgICAgICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uZ2NvdW50KCksICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCk7CisgICAgICAgICAgICBmbGFncyA9ICgqSW5mbylbZnJhbWVJRF0uZmxhZ3M7CisgICAgICAgICAgICBpZiAoc2lnbmFsRU9TICYmICgoZnJhbWVJRCA9PSAoaW50KUluZm8tPnNpemUoKSAtIDEpIHx8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnJhbWVJRCA9PSAob2Zmc2V0ICsgcmFuZ2UgLSAxKSkpKQorICAgICAgICAgICAgICAgIGZsYWdzIHw9IE9NWF9CVUZGRVJGTEFHX0VPUzsKKyAgICAgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqSW5mbylbZnJhbWVJRF0uYnl0ZXNDb3VudCwgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgqSW5mbylbZnJhbWVJRF0udGltZXN0YW1wKTsKKyAgICAgICAgICAgIGZyYW1lSUQrKzsKKyAgICAgICAgfQorICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChvQnVmZmVyKSkgPCBvQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGRpc3BhdGNoT3V0cHV0QnVmZmVyKG9teE5vZGUsIG9CdWZmZXIsIGluZGV4KTsKKyAgICAgICAgfQorICAgIH0KK30KKworLy8gc2V0IGNvbXBvbmVudCByb2xlCitURVNUX0YoVmlkZW9EZWNIaWRsVGVzdCwgU2V0Um9sZSkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IFNldCBDb21wb25lbnQgUm9sZSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyBwb3J0IGZvcm1hdCBlbnVtZXJhdGlvbgorVEVTVF9GKFZpZGVvRGVjSGlkbFRlc3QsIEVudW1lcmF0ZVBvcnRGb3JtYXQpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBDb21wb25lbnQgb24gTWFuZGF0b3J5IFBvcnQgUGFyYW1ldGVycyAoUG9ydCBGb3JtYXQpIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBPTVhfVTMyIHhGcmFtZXJhdGUgPSAoMjRVIDw8IDE2KTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgZUNvbXByZXNzaW9uRm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfQ09MT1JfRm9ybWF0VW51c2VkLCAwVSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0KKyAgICAgICAgc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIHhGcmFtZXJhdGUpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyB0ZXN0IHBvcnQgc2V0dGluZ3MgcmVjb25maWd1cmF0aW9uLCBlbGVtZW50YXJ5IHN0cmVhbSBkZWNvZGUgYW5kIHRpbWVzdGFtcAorLy8gZGV2aWF0aW9uCitURVNUX0YoVmlkZW9EZWNIaWRsVGVzdCwgRGVjb2RlVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBQb3J0IFJlY29uZmlndXJhdGlvbiwgRGVjb2RlIGFuZCB0aW1lc3RhbXAgZGV2aWF0aW9uIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIGNoYXIgbVVSTFs1MTJdLCBpbmZvWzUxMl07CisgICAgc3RyY3B5KG1VUkwsIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIHN0cmNweShpbmZvLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBHZXRVUkxGb3JDb21wb25lbnQoY29tcE5hbWUsIG1VUkwsIGluZm8pOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW0sIGVsZUluZm87CisKKyAgICBlbGVJbmZvLm9wZW4oaW5mbyk7CisgICAgQVNTRVJUX0VRKGVsZUluZm8uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBhbmRyb2lkOjpWZWN0b3I8RnJhbWVEYXRhPiBJbmZvOworICAgIGludCBieXRlc0NvdW50ID0gMDsKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgdWludDMyX3QgdGltZXN0YW1wID0gMDsKKyAgICB0aW1lc3RhbXBEZXZUZXN0ID0gdHJ1ZTsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAoIShlbGVJbmZvID4+IGJ5dGVzQ291bnQpKSBicmVhazsKKyAgICAgICAgZWxlSW5mbyA+PiBmbGFnczsKKyAgICAgICAgZWxlSW5mbyA+PiB0aW1lc3RhbXA7CisgICAgICAgIEluZm8ucHVzaF9iYWNrKHtieXRlc0NvdW50LCBmbGFncywgdGltZXN0YW1wfSk7CisgICAgICAgIGlmIChmbGFncyAhPSBPTVhfQlVGRkVSRkxBR19DT0RFQ0NPTkZJRykKKyAgICAgICAgICAgIHRpbWVzdGFtcFVzbGlzdC5wdXNoX2JhY2sodGltZXN0YW1wKTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgLy8gc2V0IFBvcnQgUGFyYW1zCisgICAgdWludDMyX3QgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgeEZyYW1lcmF0ZTsKKyAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCAmbkZyYW1lV2lkdGgsICZuRnJhbWVIZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAmeEZyYW1lcmF0ZSk7CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfVklERU9fQ29kaW5nVW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgZUNvbG9yRm9ybWF0LCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCAwLCB4RnJhbWVyYXRlKTsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisgICAgLy8gUG9ydCBSZWNvbmZpZ3VyYXRpb24KKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsIChpbnQpSW5mby5zaXplKCkpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgdGVzdEVPUygmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIEVYUEVDVF9FUSh0aW1lc3RhbXBVc2xpc3QuZW1wdHkoKSwgdHJ1ZSk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworLy8gZW5kIG9mIHNlcXVlbmNlIHRlc3QKK1RFU1RfRihWaWRlb0RlY0hpZGxUZXN0LCBFT1NUZXN0X00pIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBFbmQgb2Ygc3RyZWFtIG1vbmtleWluZyIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKworICAgIC8vIHNldCBQb3J0IFBhcmFtcworICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIHhGcmFtZXJhdGU7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgJm5GcmFtZVdpZHRoLCAmbkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgJnhGcmFtZXJhdGUpOworICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX1ZJREVPX0NvZGluZ1VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVDb2xvckZvcm1hdCwgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgMCwgeEZyYW1lcmF0ZSk7CisgICAgb214Tm9kZS0+cHJlcGFyZUZvckFkYXB0aXZlUGxheWJhY2soa1BvcnRJbmRleE91dHB1dCwgZmFsc2UsIDE5MjAsIDEwODApOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGF0IHRoZSBzdGFydAorICAgIHRlc3RFT1MoJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlKTsKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIEVYUEVDVF9HRShmcmFtZXNSZWNlaXZlZCwgMFUpOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICB0aW1lc3RhbXBVcyA9IDA7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBlbmQgb2Ygc2VxdWVuY2UgdGVzdAorVEVTVF9GKFZpZGVvRGVjSGlkbFRlc3QsIFRodW1ibmFpbFRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBSZXF1ZXN0IGZvciB0aHVtYm5haWwiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICB1aW50MzJfdCBrUG9ydEluZGV4SW5wdXQgPSAwLCBrUG9ydEluZGV4T3V0cHV0ID0gMTsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBPTVhfUE9SVF9QQVJBTV9UWVBFIHBhcmFtczsKKyAgICBzdGF0dXMgPSBnZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW5pdCwgJnBhcmFtcyk7CisgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgIEFTU0VSVF9FUShwYXJhbXMublBvcnRzLCAyVSk7CisgICAgICAgIGtQb3J0SW5kZXhJbnB1dCA9IHBhcmFtcy5uU3RhcnRQb3J0TnVtYmVyOworICAgICAgICBrUG9ydEluZGV4T3V0cHV0ID0ga1BvcnRJbmRleElucHV0ICsgMTsKKyAgICB9CisgICAgY2hhciBtVVJMWzUxMl0sIGluZm9bNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgc3RyY3B5KGluZm8sIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIEdldFVSTEZvckNvbXBvbmVudChjb21wTmFtZSwgbVVSTCwgaW5mbyk7CisKKyAgICBzdGQ6Omlmc3RyZWFtIGVsZVN0cmVhbSwgZWxlSW5mbzsKKworICAgIGVsZUluZm8ub3BlbihpbmZvKTsKKyAgICBBU1NFUlRfRVEoZWxlSW5mby5pc19vcGVuKCksIHRydWUpOworICAgIGFuZHJvaWQ6OlZlY3RvcjxGcmFtZURhdGE+IEluZm87CisgICAgaW50IGJ5dGVzQ291bnQgPSAwOworICAgIHVpbnQzMl90IGZsYWdzID0gMDsKKyAgICB1aW50MzJfdCB0aW1lc3RhbXAgPSAwOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIGlmICghKGVsZUluZm8gPj4gYnl0ZXNDb3VudCkpIGJyZWFrOworICAgICAgICBlbGVJbmZvID4+IGZsYWdzOworICAgICAgICBlbGVJbmZvID4+IHRpbWVzdGFtcDsKKyAgICAgICAgSW5mby5wdXNoX2JhY2soe2J5dGVzQ291bnQsIGZsYWdzLCB0aW1lc3RhbXB9KTsKKyAgICB9CisgICAgZWxlSW5mby5jbG9zZSgpOworCisgICAgLy8gc2V0IFBvcnQgUGFyYW1zCisgICAgdWludDMyX3QgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgeEZyYW1lcmF0ZTsKKyAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQgPSBPTVhfQ09MT1JfRm9ybWF0WVVWNDIwUGxhbmFyOworICAgIGdldElucHV0Q2hhbm5lbEluZm8ob214Tm9kZSwga1BvcnRJbmRleElucHV0LCAmbkZyYW1lV2lkdGgsICZuRnJhbWVIZWlnaHQsCisgICAgICAgICAgICAgICAgICAgICAgICAmeEZyYW1lcmF0ZSk7CisgICAgc2V0RGVmYXVsdFBvcnRQYXJhbShvbXhOb2RlLCBrUG9ydEluZGV4T3V0cHV0LCBPTVhfVklERU9fQ29kaW5nVW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgZUNvbG9yRm9ybWF0LCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCAwLCB4RnJhbWVyYXRlKTsKKyAgICBvbXhOb2RlLT5wcmVwYXJlRm9yQWRhcHRpdmVQbGF5YmFjayhrUG9ydEluZGV4T3V0cHV0LCBmYWxzZSwgMTkyMCwgMTA4MCk7CisKKyAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4gaUJ1ZmZlciwgb0J1ZmZlcjsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0V4ZWN1dGUob214Tm9kZSwgb2JzZXJ2ZXIpOworCisgICAgLy8gcmVxdWVzdCBFT1MgZm9yIHRodW1ibmFpbAorICAgIHNpemVfdCBpID0gMDsKKyAgICB3aGlsZSAoIShJbmZvW2ldLmZsYWdzICYgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSkgaSsrOworICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwgaSArIDEpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgdGVzdEVPUygmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgRVhQRUNUX0dFKGZyYW1lc1JlY2VpdmVkLCAxVSk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIGVsZVN0cmVhbS5vcGVuKG1VUkwsIHN0ZDo6aWZzdHJlYW06OmJpbmFyeSk7CisgICAgQVNTRVJUX0VRKGVsZVN0cmVhbS5pc19vcGVuKCksIHRydWUpOworICAgIGRlY29kZU5GcmFtZXMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgMCwgaSArIDEsIGZhbHNlKTsKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKKyAgICB3YWl0T25JbnB1dENvbnN1bXB0aW9uKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIHRlc3RFT1MoJmlCdWZmZXIsICZvQnVmZmVyLCB0cnVlKTsKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQpOworICAgIEVYUEVDVF9HRShmcmFtZXNSZWNlaXZlZCwgMVUpOworICAgIGZyYW1lc1JlY2VpdmVkID0gMDsKKyAgICB0aW1lc3RhbXBVcyA9IDA7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlRXhlY3V0ZXRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyKTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4SW5wdXQsIGtQb3J0SW5kZXhPdXRwdXQpOworfQorCisvLyBlbmQgb2Ygc2VxdWVuY2UgdGVzdAorVEVTVF9GKFZpZGVvRGVjSGlkbFRlc3QsIFNpbXBsZUVPU1Rlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBFbmQgb2Ygc3RyZWFtIik7CisgICAgaWYgKGRpc2FibGVUZXN0KSByZXR1cm47CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgdWludDMyX3Qga1BvcnRJbmRleElucHV0ID0gMCwga1BvcnRJbmRleE91dHB1dCA9IDE7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIGNoYXIgbVVSTFs1MTJdLCBpbmZvWzUxMl07CisgICAgc3RyY3B5KG1VUkwsIGdFbnYtPmdldFJlcygpLmNfc3RyKCkpOworICAgIHN0cmNweShpbmZvLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBHZXRVUkxGb3JDb21wb25lbnQoY29tcE5hbWUsIG1VUkwsIGluZm8pOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW0sIGVsZUluZm87CisKKyAgICBlbGVJbmZvLm9wZW4oaW5mbyk7CisgICAgQVNTRVJUX0VRKGVsZUluZm8uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBhbmRyb2lkOjpWZWN0b3I8RnJhbWVEYXRhPiBJbmZvOworICAgIGludCBieXRlc0NvdW50ID0gMDsKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgdWludDMyX3QgdGltZXN0YW1wID0gMDsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAoIShlbGVJbmZvID4+IGJ5dGVzQ291bnQpKSBicmVhazsKKyAgICAgICAgZWxlSW5mbyA+PiBmbGFnczsKKyAgICAgICAgZWxlSW5mbyA+PiB0aW1lc3RhbXA7CisgICAgICAgIEluZm8ucHVzaF9iYWNrKHtieXRlc0NvdW50LCBmbGFncywgdGltZXN0YW1wfSk7CisgICAgfQorICAgIGVsZUluZm8uY2xvc2UoKTsKKworICAgIC8vIHNldCBQb3J0IFBhcmFtcworICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIHhGcmFtZXJhdGU7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBnZXRJbnB1dENoYW5uZWxJbmZvKG9teE5vZGUsIGtQb3J0SW5kZXhJbnB1dCwgJm5GcmFtZVdpZHRoLCAmbkZyYW1lSGVpZ2h0LAorICAgICAgICAgICAgICAgICAgICAgICAgJnhGcmFtZXJhdGUpOworICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgT01YX1ZJREVPX0NvZGluZ1VudXNlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVDb2xvckZvcm1hdCwgbkZyYW1lV2lkdGgsIG5GcmFtZUhlaWdodCwgMCwgeEZyYW1lcmF0ZSk7CisgICAgb214Tm9kZS0+cHJlcGFyZUZvckFkYXB0aXZlUGxheWJhY2soa1BvcnRJbmRleE91dHB1dCwgZmFsc2UsIDE5MjAsIDEwODApOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIHJlcXVlc3QgRU9TIGF0IHRoZSBlbmQKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsIChpbnQpSW5mby5zaXplKCkpOworICAgIGVsZVN0cmVhbS5jbG9zZSgpOworICAgIHdhaXRPbklucHV0Q29uc3VtcHRpb24ob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgdGVzdEVPUygmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIGZsdXNoUG9ydHMob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlciwga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworICAgIHRpbWVzdGFtcFVzID0gMDsKKworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7Cit9CisKKy8vIHRlc3QgaW5wdXQvb3V0cHV0IHBvcnQgZmx1c2gKK1RFU1RfRihWaWRlb0RlY0hpZGxUZXN0LCBGbHVzaFRlc3QpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBGbHVzaCIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXSwgaW5mb1s1MTJdOworICAgIHN0cmNweShtVVJMLCBnRW52LT5nZXRSZXMoKS5jX3N0cigpKTsKKyAgICBzdHJjcHkoaW5mbywgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KGNvbXBOYW1lLCBtVVJMLCBpbmZvKTsKKworICAgIHN0ZDo6aWZzdHJlYW0gZWxlU3RyZWFtLCBlbGVJbmZvOworCisgICAgZWxlSW5mby5vcGVuKGluZm8pOworICAgIEFTU0VSVF9FUShlbGVJbmZvLmlzX29wZW4oKSwgdHJ1ZSk7CisgICAgYW5kcm9pZDo6VmVjdG9yPEZyYW1lRGF0YT4gSW5mbzsKKyAgICBpbnQgYnl0ZXNDb3VudCA9IDA7CisgICAgdWludDMyX3QgZmxhZ3MgPSAwOworICAgIHVpbnQzMl90IHRpbWVzdGFtcCA9IDA7CisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKCEoZWxlSW5mbyA+PiBieXRlc0NvdW50KSkgYnJlYWs7CisgICAgICAgIGVsZUluZm8gPj4gZmxhZ3M7CisgICAgICAgIGVsZUluZm8gPj4gdGltZXN0YW1wOworICAgICAgICBJbmZvLnB1c2hfYmFjayh7Ynl0ZXNDb3VudCwgZmxhZ3MsIHRpbWVzdGFtcH0pOworICAgIH0KKyAgICBlbGVJbmZvLmNsb3NlKCk7CisKKyAgICAvLyBzZXQgUG9ydCBQYXJhbXMKKyAgICB1aW50MzJfdCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCB4RnJhbWVyYXRlOworICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRZVVY0MjBQbGFuYXI7CisgICAgZ2V0SW5wdXRDaGFubmVsSW5mbyhvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsICZuRnJhbWVXaWR0aCwgJm5GcmFtZUhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICZ4RnJhbWVyYXRlKTsKKyAgICBzZXREZWZhdWx0UG9ydFBhcmFtKG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIG5GcmFtZVdpZHRoLCBuRnJhbWVIZWlnaHQsIDAsIHhGcmFtZXJhdGUpOworCisgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+IGlCdWZmZXIsIG9CdWZmZXI7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIGNoYW5nZVN0YXRlTG9hZGVkdG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyBzZXQgc3RhdGUgdG8gZXhlY3V0aW5nCisgICAgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKG9teE5vZGUsIG9ic2VydmVyKTsKKworICAgIC8vIERlY29kZSAxMjggZnJhbWVzIGFuZCBmbHVzaC4gaGVyZSAxMjggaXMgY2hvc2VuIHRvIGVuc3VyZSB0aGVyZSBpcyBhIGtleQorICAgIC8vIGZyYW1lIGFmdGVyIHRoaXMgc28gdGhhdCB0aGUgYmVsb3cgc2VjdGlvbiBjYW4gYmUgY29udmVyZWQgZm9yIGFsbAorICAgIC8vIGNvbXBvbmVudHMKKyAgICBpbnQgbkZyYW1lcyA9IDEyODsKKyAgICBlbGVTdHJlYW0ub3BlbihtVVJMLCBzdGQ6Omlmc3RyZWFtOjpiaW5hcnkpOworICAgIEFTU0VSVF9FUShlbGVTdHJlYW0uaXNfb3BlbigpLCB0cnVlKTsKKyAgICBkZWNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIGVsZVN0cmVhbSwgJkluZm8sIDAsIG5GcmFtZXMsIGZhbHNlKTsKKyAgICAvLyBOb3RlOiBBc3N1bWVzIDIwMCBtcyBpcyBlbm91Z2ggdG8gZW5kIGFueSBkZWNvZGUgY2FsbCB0aGF0IHN0YXJ0ZWQKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIDIwMDAwMCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworCisgICAgLy8gU2VlayB0byBuZXh0IGtleSBmcmFtZSBhbmQgc3RhcnQgZGVjb2RpbmcgdGlsbCB0aGUgZW5kCisgICAgaW50IGluZGV4ID0gbkZyYW1lczsKKyAgICBib29sIGtleUZyYW1lID0gZmFsc2U7CisgICAgd2hpbGUgKGluZGV4IDwgKGludClJbmZvLnNpemUoKSkgeworICAgICAgICBpZiAoKEluZm9baW5kZXhdLmZsYWdzICYgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSA9PQorICAgICAgICAgICAgT01YX0JVRkZFUkZMQUdfU1lOQ0ZSQU1FKSB7CisgICAgICAgICAgICB0aW1lc3RhbXBVcyA9IEluZm9baW5kZXggLSAxXS50aW1lc3RhbXA7CisgICAgICAgICAgICBrZXlGcmFtZSA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBlbGVTdHJlYW0uaWdub3JlKEluZm9baW5kZXhdLmJ5dGVzQ291bnQpOworICAgICAgICBpbmRleCsrOworICAgIH0KKyAgICBpZiAoa2V5RnJhbWUpIHsKKyAgICAgICAgZGVjb2RlTkZyYW1lcyhvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLCBrUG9ydEluZGV4SW5wdXQsCisgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleE91dHB1dCwgZWxlU3RyZWFtLCAmSW5mbywgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgSW5mby5zaXplKCkgLSBpbmRleCwgZmFsc2UpOworICAgIH0KKyAgICAvLyBOb3RlOiBBc3N1bWVzIDIwMCBtcyBpcyBlbm91Z2ggdG8gZW5kIGFueSBkZWNvZGUgY2FsbCB0aGF0IHN0YXJ0ZWQKKyAgICBmbHVzaFBvcnRzKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQsIDIwMDAwMCk7CisgICAgZnJhbWVzUmVjZWl2ZWQgPSAwOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUV4ZWN1dGV0b0lkbGUob214Tm9kZSwgb2JzZXJ2ZXIsICZpQnVmZmVyLCAmb0J1ZmZlcik7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvTG9hZGVkKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga1BvcnRJbmRleElucHV0LCBrUG9ydEluZGV4T3V0cHV0KTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9FbmNUZXN0LmNwcCBiL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vVnRzSGFsTWVkaWFPbXhWMV8wVGFyZ2V0VmlkZW9FbmNUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44N2FhYzBjCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9WdHNIYWxNZWRpYU9teFYxXzBUYXJnZXRWaWRlb0VuY1Rlc3QuY3BwCkBAIC0wLDAgKzEsNTc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF92aWRlb19lbmNfdGVzdCIKKyNpZmRlZiBfX0xQNjRfXworI2RlZmluZSBPTVhfQU5EUk9JRF9DT01QSUxFX0FTXzMyQklUX09OXzY0QklUX1BMQVRGT1JNUworI2VuZGlmCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG1lZGlhL2hhcmR3YXJlL0hhcmR3YXJlQVBJLmg+CisjaW5jbHVkZSA8bWVkaWFfaGlkbF90ZXN0X2NvbW1vbi5oPgorI2luY2x1ZGUgPG1lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxmc3RyZWFtPgorCisvLyBBIGNsYXNzIGZvciB0ZXN0IGVudmlyb25tZW50IHNldHVwCitjbGFzcyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgICBwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorCisgICAgQ29tcG9uZW50VGVzdEVudmlyb25tZW50KCkgOiBpbnN0YW5jZSgiZGVmYXVsdCIpLCByZXMoIi9zZGNhcmQvbWVkaWEvIikge30KKworICAgIHZvaWQgc2V0SW5zdGFuY2UoY29uc3QgY2hhciogX2luc3RhbmNlKSB7IGluc3RhbmNlID0gX2luc3RhbmNlOyB9CisKKyAgICB2b2lkIHNldENvbXBvbmVudChjb25zdCBjaGFyKiBfY29tcG9uZW50KSB7IGNvbXBvbmVudCA9IF9jb21wb25lbnQ7IH0KKworICAgIHZvaWQgc2V0Um9sZShjb25zdCBjaGFyKiBfcm9sZSkgeyByb2xlID0gX3JvbGU7IH0KKworICAgIHZvaWQgc2V0UmVzKGNvbnN0IGNoYXIqIF9yZXMpIHsgcmVzID0gX3JlczsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0SW5zdGFuY2UoKSBjb25zdCB7IHJldHVybiBpbnN0YW5jZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0Q29tcG9uZW50KCkgY29uc3QgeyByZXR1cm4gY29tcG9uZW50OyB9CisKKyAgICBjb25zdCBoaWRsX3N0cmluZyBnZXRSb2xlKCkgY29uc3QgeyByZXR1cm4gcm9sZTsgfQorCisgICAgY29uc3QgaGlkbF9zdHJpbmcgZ2V0UmVzKCkgY29uc3QgeyByZXR1cm4gcmVzOyB9CisKKyAgICBpbnQgaW5pdEZyb21PcHRpb25zKGludCBhcmdjLCBjaGFyKiogYXJndikgeworICAgICAgICBzdGF0aWMgc3RydWN0IG9wdGlvbiBvcHRpb25zW10gPSB7CisgICAgICAgICAgICB7Imluc3RhbmNlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdJJ30sCisgICAgICAgICAgICB7ImNvbXBvbmVudCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnQyd9LAorICAgICAgICAgICAgeyJyb2xlIiwgcmVxdWlyZWRfYXJndW1lbnQsIDAsICdSJ30sCisgICAgICAgICAgICB7InJlcyIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnUCd9LAorICAgICAgICAgICAgezAsIDAsIDAsIDB9fTsKKworICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgaW50IGluZGV4ID0gMDsKKyAgICAgICAgICAgIGludCBjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgIkk6QzpSOlA6Iiwgb3B0aW9ucywgJmluZGV4KTsKKyAgICAgICAgICAgIGlmIChjID09IC0xKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICAgICAgICAgIGNhc2UgJ0knOgorICAgICAgICAgICAgICAgICAgICBzZXRJbnN0YW5jZShvcHRhcmcpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlICdDJzoKKyAgICAgICAgICAgICAgICAgICAgc2V0Q29tcG9uZW50KG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1InOgorICAgICAgICAgICAgICAgICAgICBzZXRSb2xlKG9wdGFyZyk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgJ1AnOgorICAgICAgICAgICAgICAgICAgICBzZXRSZXMob3B0YXJnKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAnPyc6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKG9wdGluZCA8IGFyZ2MpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAorICAgICAgICAgICAgICAgICAgICAidW5yZWNvZ25pemVkIG9wdGlvbjogJXNcblxuIgorICAgICAgICAgICAgICAgICAgICAidXNhZ2U6ICVzIDxndGVzdCBvcHRpb25zPiA8dGVzdCBvcHRpb25zPlxuXG4iCisgICAgICAgICAgICAgICAgICAgICJ0ZXN0IG9wdGlvbnMgYXJlOlxuXG4iCisgICAgICAgICAgICAgICAgICAgICItSSwgLS1pbnN0YW5jZTogSEFMIGluc3RhbmNlIHRvIHRlc3RcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1DLCAtLWNvbXBvbmVudDogT01YIGNvbXBvbmVudCB0byB0ZXN0XG4iCisgICAgICAgICAgICAgICAgICAgICItUiwgLS1yb2xlOiBPTVggY29tcG9uZW50IFJvbGVcbiIKKyAgICAgICAgICAgICAgICAgICAgIi1QLCAtLXJlczogUmVzb3VyY2UgZmlsZXMgZGlyZWN0b3J5IGxvY2F0aW9uXG4iLAorICAgICAgICAgICAgICAgICAgICBhcmd2W29wdGluZCA/OiAxXSwgYXJndlswXSk7CisgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgIHByaXZhdGU6CisgICAgaGlkbF9zdHJpbmcgaW5zdGFuY2U7CisgICAgaGlkbF9zdHJpbmcgY29tcG9uZW50OworICAgIGhpZGxfc3RyaW5nIHJvbGU7CisgICAgaGlkbF9zdHJpbmcgcmVzOworfTsKKworc3RhdGljIENvbXBvbmVudFRlc3RFbnZpcm9ubWVudCogZ0VudiA9IG51bGxwdHI7CisKKy8vIHZpZGVvIGVuY29kZXIgdGVzdCBmaXh0dXJlIGNsYXNzCitjbGFzcyBWaWRlb0VuY0hpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyAgIHB1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgICAgIGRpc2FibGVUZXN0ID0gZmFsc2U7CisgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgICAgICBvbXggPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJT214PigKKyAgICAgICAgICAgIGdFbnYtPmdldEluc3RhbmNlKCkpOworICAgICAgICBBU1NFUlRfTkUob214LCBudWxscHRyKTsKKyAgICAgICAgb2JzZXJ2ZXIgPSBuZXcgQ29kZWNPYnNlcnZlcihbdGhpc10oTWVzc2FnZSBtc2cpIHsgKHZvaWQpbXNnOyB9KTsKKyAgICAgICAgQVNTRVJUX05FKG9ic2VydmVyLCBudWxscHRyKTsKKyAgICAgICAgaWYgKHN0cm5jbXAoZ0Vudi0+Z2V0Q29tcG9uZW50KCkuY19zdHIoKSwgIk9NWC4iLCA0KSAhPSAwKQorICAgICAgICAgICAgZGlzYWJsZVRlc3QgPSB0cnVlOworICAgICAgICBFWFBFQ1RfVFJVRShvbXgtPmFsbG9jYXRlTm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGdFbnYtPmdldENvbXBvbmVudCgpLCBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmXShhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIF9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwPElPbXhOb2RlPiBjb25zdCYgX25sKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gX3M7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy0+b214Tm9kZSA9IF9ubDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgICAgICAuaXNPaygpKTsKKyAgICAgICAgQVNTRVJUX05FKG9teE5vZGUsIG51bGxwdHIpOworICAgICAgICBBU1NFUlRfTkUoZ0Vudi0+Z2V0Um9sZSgpLmVtcHR5KCksIHRydWUpIDw8ICJJbnZhbGlkIENvbXBvbmVudCBSb2xlIjsKKyAgICAgICAgc3RydWN0IFN0cmluZ1RvTmFtZSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBOYW1lOworICAgICAgICAgICAgc3RhbmRhcmRDb21wIENvbXBOYW1lOworICAgICAgICB9OworICAgICAgICBjb25zdCBTdHJpbmdUb05hbWUga1N0cmluZ1RvTmFtZVtdID0geworICAgICAgICAgICAgeyJoMjYzIiwgaDI2M30sIHsiYXZjIiwgYXZjfSwgeyJtcGVnNCIsIG1wZWc0fSwKKyAgICAgICAgICAgIHsiaGV2YyIsIGhldmN9LCB7InZwOCIsIHZwOH0sIHsidnA5IiwgdnA5fSwKKyAgICAgICAgfTsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGtOdW1TdHJpbmdUb05hbWUgPQorICAgICAgICAgICAgc2l6ZW9mKGtTdHJpbmdUb05hbWUpIC8gc2l6ZW9mKGtTdHJpbmdUb05hbWVbMF0pOworICAgICAgICBjb25zdCBjaGFyKiBwY2g7CisgICAgICAgIGNoYXIgc3Vic3RyaW5nW09NWF9NQVhfU1RSSU5HTkFNRV9TSVpFXTsKKyAgICAgICAgc3RyY3B5KHN1YnN0cmluZywgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgICAgICBwY2ggPSBzdHJjaHIoc3Vic3RyaW5nLCAnLicpOworICAgICAgICBBU1NFUlRfTkUocGNoLCBudWxscHRyKTsKKyAgICAgICAgY29tcE5hbWUgPSB1bmtub3duX2NvbXA7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga051bVN0cmluZ1RvTmFtZTsgKytpKSB7CisgICAgICAgICAgICBpZiAoIXN0cmNhc2VjbXAocGNoICsgMSwga1N0cmluZ1RvTmFtZVtpXS5OYW1lKSkgeworICAgICAgICAgICAgICAgIGNvbXBOYW1lID0ga1N0cmluZ1RvTmFtZVtpXS5Db21wTmFtZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcE5hbWUgPT0gdW5rbm93bl9jb21wKSBkaXNhYmxlVGVzdCA9IHRydWU7CisgICAgICAgIHN0cnVjdCBDb21wVG9Db21wcmVzc2lvbiB7CisgICAgICAgICAgICBzdGFuZGFyZENvbXAgQ29tcE5hbWU7CisgICAgICAgICAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQ7CisgICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBDb21wVG9Db21wcmVzc2lvbiBrQ29tcFRvQ29tcHJlc3Npb25bXSA9IHsKKyAgICAgICAgICAgIHtoMjYzLCBPTVhfVklERU9fQ29kaW5nSDI2M30sICAge2F2YywgT01YX1ZJREVPX0NvZGluZ0FWQ30sCisgICAgICAgICAgICB7bXBlZzQsIE9NWF9WSURFT19Db2RpbmdNUEVHNH0sIHtoZXZjLCBPTVhfVklERU9fQ29kaW5nSEVWQ30sCisgICAgICAgICAgICB7dnA4LCBPTVhfVklERU9fQ29kaW5nVlA4fSwgICAgIHt2cDksIE9NWF9WSURFT19Db2RpbmdWUDl9LAorICAgICAgICB9OworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGtOdW1Db21wVG9Db21wcmVzc2lvbiA9CisgICAgICAgICAgICBzaXplb2Yoa0NvbXBUb0NvbXByZXNzaW9uKSAvIHNpemVvZihrQ29tcFRvQ29tcHJlc3Npb25bMF0pOworICAgICAgICBzaXplX3QgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGtOdW1Db21wVG9Db21wcmVzc2lvbjsgKytpKSB7CisgICAgICAgICAgICBpZiAoa0NvbXBUb0NvbXByZXNzaW9uW2ldLkNvbXBOYW1lID09IGNvbXBOYW1lKSB7CisgICAgICAgICAgICAgICAgZUNvbXByZXNzaW9uRm9ybWF0ID0ga0NvbXBUb0NvbXByZXNzaW9uW2ldLmVDb21wcmVzc2lvbkZvcm1hdDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoaSA9PSBrTnVtQ29tcFRvQ29tcHJlc3Npb24pIGRpc2FibGVUZXN0ID0gdHJ1ZTsKKyAgICAgICAgaWYgKGRpc2FibGVUZXN0KSBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgIFRlc3QgRGlzYWJsZWRcbiI7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeworICAgICAgICBpZiAob214Tm9kZSAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSgob214Tm9kZS0+ZnJlZU5vZGUoKSkuaXNPaygpKTsKKyAgICAgICAgICAgIG9teE5vZGUgPSBudWxscHRyOworICAgICAgICB9CisgICAgfQorCisgICAgZW51bSBzdGFuZGFyZENvbXAgeworICAgICAgICBoMjYzLAorICAgICAgICBhdmMsCisgICAgICAgIG1wZWc0LAorICAgICAgICBoZXZjLAorICAgICAgICB2cDgsCisgICAgICAgIHZwOSwKKyAgICAgICAgdW5rbm93bl9jb21wLAorICAgIH07CisKKyAgICBzcDxJT214PiBvbXg7CisgICAgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXI7CisgICAgc3A8SU9teE5vZGU+IG9teE5vZGU7CisgICAgc3RhbmRhcmRDb21wIGNvbXBOYW1lOworICAgIE9NWF9WSURFT19DT0RJTkdUWVBFIGVDb21wcmVzc2lvbkZvcm1hdDsKKyAgICBib29sIGRpc2FibGVUZXN0OworCisgICBwcm90ZWN0ZWQ6CisgICAgc3RhdGljIHZvaWQgZGVzY3JpcHRpb24oY29uc3Qgc3RkOjpzdHJpbmcmIGRlc2NyaXB0aW9uKSB7CisgICAgICAgIFJlY29yZFByb3BlcnR5KCJkZXNjcmlwdGlvbiIsIGRlc2NyaXB0aW9uKTsKKyAgICB9Cit9OworCisvLyByZXF1ZXN0IFZPUCByZWZyZXNoCit2b2lkIHJlcXVlc3RJRFIoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4KSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX0NPTkZJR19JTlRSQVJFRlJFU0hWT1BUWVBFIHBhcmFtOworICAgIHBhcmFtLkludHJhUmVmcmVzaFZPUCA9IE9NWF9UUlVFOworICAgIHN0YXR1cyA9IHNldFBvcnRDb25maWcob214Tm9kZSwgT01YX0luZGV4Q29uZmlnVmlkZW9JbnRyYVZPUFJlZnJlc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgdW5hYmxlIHRvIHJlcXVlc3QgSURSIFxuIjsKK30KKworLy8gbW9kaWZ5IGJpdHJhdGUKK3ZvaWQgY2hhbmdlQml0cmF0ZShzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIHVpbnQzMl90IG5CaXRyYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX0NPTkZJR19CSVRSQVRFVFlQRSBwYXJhbTsKKyAgICBwYXJhbS5uRW5jb2RlQml0cmF0ZSA9IG5CaXRyYXRlOworICAgIHN0YXR1cyA9CisgICAgICAgIHNldFBvcnRDb25maWcob214Tm9kZSwgT01YX0luZGV4Q29uZmlnVmlkZW9CaXRyYXRlLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgdW5hYmxlIHRvIGNoYW5nZSBCaXRyYXRlIFxuIjsKK30KKworLy8gbW9kaWZ5IGZyYW1lcmF0ZQorUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IGNoYW5nZUZyYW1lUmF0ZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIHVpbnQzMl90IHhGcmFtZXJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfQ09ORklHX0ZSQU1FUkFURVRZUEUgcGFyYW07CisgICAgcGFyYW0ueEVuY29kZUZyYW1lcmF0ZSA9IHhGcmFtZXJhdGU7CisgICAgc3RhdHVzID0gc2V0UG9ydENvbmZpZyhvbXhOb2RlLCBPTVhfSW5kZXhDb25maWdWaWRlb0ZyYW1lcmF0ZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhcmFtKTsKKyAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgIHN0ZDo6Y2VyciA8PCAiWyAgICAgICAgICBdIFdhcm5pbmcgISB1bmFibGUgdG8gY2hhbmdlIEZyYW1lcmF0ZSBcbiI7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworLy8gbW9kaWZ5IGludHJhIHJlZnJlc2ggaW50ZXJ2YWwKK3ZvaWQgY2hhbmdlUmVmcmVzaFBlcmlvZChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgblJlZnJlc2hQZXJpb2QpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fQ09ORklHX0FORFJPSURfSU5UUkFSRUZSRVNIVFlQRSBwYXJhbTsKKyAgICBwYXJhbS5uUmVmcmVzaFBlcmlvZCA9IG5SZWZyZXNoUGVyaW9kOworICAgIHN0YXR1cyA9IHNldFBvcnRDb25maWcob214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleENvbmZpZ0FuZHJvaWRJbnRyYVJlZnJlc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgdW5hYmxlIHRvIGNoYW5nZSBSZWZyZXNoIFBlcmlvZFxuIjsKK30KKworLy8gc2V0IGludHJhIHJlZnJlc2ggaW50ZXJ2YWwKK3ZvaWQgc2V0UmVmcmVzaFBlcmlvZChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgblJlZnJlc2hQZXJpb2QpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fUEFSQU1fSU5UUkFSRUZSRVNIVFlQRSBwYXJhbTsKKyAgICBwYXJhbS5lUmVmcmVzaE1vZGUgPSBPTVhfVklERU9fSW50cmFSZWZyZXNoQ3ljbGljOworICAgIHBhcmFtLm5DaXJNQnMgPSAwOworICAgIGlmIChuUmVmcmVzaFBlcmlvZCA9PSAwKQorICAgICAgICBwYXJhbS5uQ2lyTUJzID0gMDsKKyAgICBlbHNlIHsKKyAgICAgICAgT01YX1BBUkFNX1BPUlRERUZJTklUSU9OVFlQRSBwb3J0RGVmOworICAgICAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgICAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgICAgIHBhcmFtLm5DaXJNQnMgPQorICAgICAgICAgICAgICAgICgocG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lV2lkdGggKyAxNSkgPj4KKyAgICAgICAgICAgICAgICAgNCAqIChwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVIZWlnaHQgKyAxNSkgPj4gNCkgLworICAgICAgICAgICAgICAgIG5SZWZyZXNoUGVyaW9kOworICAgICAgICB9CisgICAgfQorICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSW50cmFSZWZyZXNoLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwYXJhbSk7CisgICAgaWYgKHN0YXR1cyAhPSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICBzdGQ6OmNlcnIgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgdW5hYmxlIHRvIHNldCBSZWZyZXNoIFBlcmlvZCBcbiI7Cit9CisKKy8vIFNldCBEZWZhdWx0IHBvcnQgcGFyYW0uCit2b2lkIHNldERlZmF1bHRQb3J0UGFyYW0oc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19DT0RJTkdUWVBFIGVDb21wcmVzc2lvbkZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIG5CaXRyYXRlLCBPTVhfVTMyIHhGcmFtZXJhdGUpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5CaXRyYXRlID0gbkJpdHJhdGU7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ueEZyYW1lcmF0ZSA9IHhGcmFtZXJhdGU7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8uYkZsYWdFcnJvckNvbmNlYWxtZW50ID0gT01YX1RSVUU7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8uZUNvbXByZXNzaW9uRm9ybWF0ID0gZUNvbXByZXNzaW9uRm9ybWF0OworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLmVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRVbnVzZWQ7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtUG9ydERlZmluaXRpb24sIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnREZWYpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4gYXJyUHJvZmlsZTsKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBhcnJMZXZlbDsKKyAgICBlbnVtZXJhdGVQcm9maWxlQW5kTGV2ZWwob214Tm9kZSwgcG9ydEluZGV4LCAmYXJyUHJvZmlsZSwgJmFyckxldmVsKTsKKyAgICBpZiAoYXJyUHJvZmlsZS5lbXB0eSgpID09IHRydWUgfHwgYXJyTGV2ZWwuZW1wdHkoKSA9PSB0cnVlKQorICAgICAgICBBU1NFUlRfVFJVRShmYWxzZSk7CisgICAgaW50MzJfdCBwcm9maWxlID0gYXJyUHJvZmlsZVswXTsKKyAgICBpbnQzMl90IGxldmVsID0gYXJyTGV2ZWxbMF07CisKKyAgICBzd2l0Y2ggKChpbnQpZUNvbXByZXNzaW9uRm9ybWF0KSB7CisgICAgICAgIGNhc2UgT01YX1ZJREVPX0NvZGluZ0FWQzoKKyAgICAgICAgICAgIHNldHVwQVZDUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX0FWQ1BST0ZJTEVUWVBFPihwcm9maWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fQVZDTEVWRUxUWVBFPihsZXZlbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgeEZyYW1lcmF0ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPTVhfVklERU9fQ29kaW5nSEVWQzoKKyAgICAgICAgICAgIHNldHVwSEVWQ1BvcnQob214Tm9kZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fSEVWQ1BST0ZJTEVUWVBFPihwcm9maWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX0hFVkNMRVZFTFRZUEU+KGxldmVsKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPTVhfVklERU9fQ29kaW5nSDI2MzoKKyAgICAgICAgICAgIHNldHVwSDI2M1BvcnQob214Tm9kZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fSDI2M1BST0ZJTEVUWVBFPihwcm9maWxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX0gyNjNMRVZFTFRZUEU+KGxldmVsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgeEZyYW1lcmF0ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPTVhfVklERU9fQ29kaW5nTVBFRzQ6CisgICAgICAgICAgICBzZXR1cE1QRUc0UG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fTVBFRzRQUk9GSUxFVFlQRT4ocHJvZmlsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fTVBFRzRMRVZFTFRZUEU+KGxldmVsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHhGcmFtZXJhdGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgT01YX1ZJREVPX0NvZGluZ1ZQODoKKyAgICAgICAgICAgIHNldHVwVlBYUG9ydChvbXhOb2RlLCBwb3J0SW5kZXgsIHhGcmFtZXJhdGUpOworICAgICAgICAgICAgc2V0dXBWUDhQb3J0KG9teE5vZGUsIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxPTVhfVklERU9fVlA4UFJPRklMRVRZUEU+KHByb2ZpbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19WUDhMRVZFTFRZUEU+KGxldmVsKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPTVhfVklERU9fQ29kaW5nVlA5OgorICAgICAgICAgICAgc2V0dXBWUFhQb3J0KG9teE5vZGUsIHBvcnRJbmRleCwgeEZyYW1lcmF0ZSk7CisgICAgICAgICAgICBzZXR1cFZQOVBvcnQob214Tm9kZSwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE9NWF9WSURFT19WUDlQUk9GSUxFVFlQRT4ocHJvZmlsZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8T01YX1ZJREVPX1ZQOUxFVkVMVFlQRT4obGV2ZWwpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorfQorCisvLyBMb29rVXBUYWJsZSBvZiBjbGlwcyBhbmQgbWV0YWRhdGEgZm9yIGNvbXBvbmVudCB0ZXN0aW5nCit2b2lkIEdldFVSTEZvckNvbXBvbmVudChjaGFyKiBVUkwpIHsKKyAgICBzdHJjYXQoVVJMLCAiYmJiXzM1MngyODhfNDIwcF8zMGZwc18zMmZyYW1lcy55dXYiKTsKK30KKworLy8gRW5jb2RlIE4gRnJhbWVzCit2b2lkIGVuY29kZU5GcmFtZXMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgIE9NWF9VMzIgcG9ydEluZGV4T3V0cHV0LAorICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIHVpbnQzMl90IG5GcmFtZXMsCisgICAgICAgICAgICAgICAgICAgdWludDMyX3QgeEZyYW1lcmF0ZSwgaW50IGJ5dGVzQ291bnQsCisgICAgICAgICAgICAgICAgICAgc3RkOjppZnN0cmVhbSYgZWxlU3RyZWFtKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisgICAgdWludDMyX3QgaXBDb3VudCA9IDA7CisKKyAgICBpZiAoaXBDb3VudCA9PSAwKSB7CisgICAgICAgIHN0YXR1cyA9IGNoYW5nZUZyYW1lUmF0ZShvbXhOb2RlLCBwb3J0SW5kZXhPdXRwdXQsICgyNFUgPDwgMTYpKTsKKyAgICAgICAgaWYgKHN0YXR1cyA9PSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKQorICAgICAgICAgICAgeEZyYW1lcmF0ZSA9ICgyNFUgPDwgMTYpOworICAgIH0KKworICAgIC8vIGRpc3BhdGNoIG91dHB1dCBidWZmZXJzCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7IGkrKykgeworICAgICAgICBkaXNwYXRjaE91dHB1dEJ1ZmZlcihvbXhOb2RlLCBvQnVmZmVyLCBpKTsKKyAgICB9CisgICAgLy8gZGlzcGF0Y2ggaW5wdXQgYnVmZmVycworICAgIGludDMyX3QgdGltZXN0YW1wSW5jciA9IChpbnQpKChmbG9hdCkxMDAwMDAwIC8gKHhGcmFtZXJhdGUgPj4gMTYpKTsKKyAgICB1aW50NjRfdCB0aW1lc3RhbXAgPSAwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaUJ1ZmZlci0+c2l6ZSgpICYmIG5GcmFtZXMgIT0gMDsgaSsrKSB7CisgICAgICAgIGNoYXIqIGlwQnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KAorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dm9pZCo+KCgqaUJ1ZmZlcilbaV0ubU1lbW9yeS0+Z2V0UG9pbnRlcigpKSk7CisgICAgICAgIEFTU0VSVF9MRShieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PigoKmlCdWZmZXIpW2ldLm1NZW1vcnktPmdldFNpemUoKSkpOworICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgYnl0ZXNDb3VudCk7CisgICAgICAgIGlmIChlbGVTdHJlYW0uZ2NvdW50KCkgIT0gYnl0ZXNDb3VudCkgYnJlYWs7CisgICAgICAgIGRpc3BhdGNoSW5wdXRCdWZmZXIob214Tm9kZSwgaUJ1ZmZlciwgaSwgYnl0ZXNDb3VudCwgMCwgdGltZXN0YW1wKTsKKyAgICAgICAgdGltZXN0YW1wICs9IHRpbWVzdGFtcEluY3I7CisgICAgICAgIG5GcmFtZXMtLTsKKyAgICAgICAgaXBDb3VudCsrOworICAgIH0KKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHN0YXR1cyA9CisgICAgICAgICAgICBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKworICAgICAgICBpZiAoc3RhdHVzID09IGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKSB7CisgICAgICAgICAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICAgICAgICAgIGlmIChtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQgPT0gT01YX0V2ZW50UG9ydFNldHRpbmdzQ2hhbmdlZCkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIHBvcnRJbmRleE91dHB1dCk7CisgICAgICAgICAgICAgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0luZGV4Q29uZmlnQW5kcm9pZEludHJhUmVmcmVzaCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIEFTU0VSVF9UUlVFKGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChuRnJhbWVzID09IDApIGJyZWFrOworCisgICAgICAgIC8vIERpc3BhdGNoIGlucHV0IGJ1ZmZlcgorICAgICAgICBzaXplX3QgaW5kZXggPSAwOworICAgICAgICBpZiAoKGluZGV4ID0gZ2V0RW1wdHlCdWZmZXJJRChpQnVmZmVyKSkgPCBpQnVmZmVyLT5zaXplKCkpIHsKKyAgICAgICAgICAgIGNoYXIqIGlwQnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhcio+KAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHZvaWQqPigoKmlCdWZmZXIpW2luZGV4XS5tTWVtb3J5LT5nZXRQb2ludGVyKCkpKTsKKyAgICAgICAgICAgIEFTU0VSVF9MRShieXRlc0NvdW50LAorICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oKCppQnVmZmVyKVtpbmRleF0ubU1lbW9yeS0+Z2V0U2l6ZSgpKSk7CisgICAgICAgICAgICBlbGVTdHJlYW0ucmVhZChpcEJ1ZmZlciwgYnl0ZXNDb3VudCk7CisgICAgICAgICAgICBpZiAoZWxlU3RyZWFtLmdjb3VudCgpICE9IGJ5dGVzQ291bnQpIGJyZWFrOworICAgICAgICAgICAgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihvbXhOb2RlLCBpQnVmZmVyLCBpbmRleCwgYnl0ZXNDb3VudCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wKTsKKyAgICAgICAgICAgIHRpbWVzdGFtcCArPSB0aW1lc3RhbXBJbmNyOworICAgICAgICAgICAgbkZyYW1lcy0tOworICAgICAgICAgICAgaXBDb3VudCsrOworICAgICAgICB9CisgICAgICAgIGlmICgoaW5kZXggPSBnZXRFbXB0eUJ1ZmZlcklEKG9CdWZmZXIpKSA8IG9CdWZmZXItPnNpemUoKSkgeworICAgICAgICAgICAgZGlzcGF0Y2hPdXRwdXRCdWZmZXIob214Tm9kZSwgb0J1ZmZlciwgaW5kZXgpOworICAgICAgICB9CisgICAgICAgIGlmIChpcENvdW50ID09IDE1KSB7CisgICAgICAgICAgICBjaGFuZ2VCaXRyYXRlKG9teE5vZGUsIHBvcnRJbmRleE91dHB1dCwgNzY4MDAwKTsKKyAgICAgICAgICAgIHJlcXVlc3RJRFIob214Tm9kZSwgcG9ydEluZGV4T3V0cHV0KTsKKyAgICAgICAgICAgIGNoYW5nZVJlZnJlc2hQZXJpb2Qob214Tm9kZSwgcG9ydEluZGV4T3V0cHV0LCAxNSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8vIHNldCBjb21wb25lbnQgcm9sZQorVEVTVF9GKFZpZGVvRW5jSGlkbFRlc3QsIFNldFJvbGUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdCBTZXQgQ29tcG9uZW50IFJvbGUiKTsKKyAgICBpZiAoZGlzYWJsZVRlc3QpIHJldHVybjsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBzdGF0dXMgPSBzZXRSb2xlKG9teE5vZGUsIGdFbnYtPmdldFJvbGUoKS5jX3N0cigpKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKworLy8gcG9ydCBmb3JtYXQgZW51bWVyYXRpb24KK1RFU1RfRihWaWRlb0VuY0hpZGxUZXN0LCBFbnVtZXJhdGVQb3J0Rm9ybWF0KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3QgQ29tcG9uZW50IG9uIE1hbmRhdG9yeSBQb3J0IFBhcmFtZXRlcnMgKFBvcnQgRm9ybWF0KSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCA9IE9NWF9DT0xPUl9Gb3JtYXRZVVY0MjBQbGFuYXI7CisgICAgT01YX1UzMiB4RnJhbWVyYXRlID0gKDMwVSA8PCAxNik7CisgICAgc3RhdHVzID0gc2V0Um9sZShvbXhOb2RlLCBnRW52LT5nZXRSb2xlKCkuY19zdHIoKSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgT01YX1BPUlRfUEFSQU1fVFlQRSBwYXJhbXM7CisgICAgc3RhdHVzID0gZ2V0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0luaXQsICZwYXJhbXMpOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBBU1NFUlRfRVEocGFyYW1zLm5Qb3J0cywgMlUpOworICAgICAgICBrUG9ydEluZGV4SW5wdXQgPSBwYXJhbXMublN0YXJ0UG9ydE51bWJlcjsKKyAgICAgICAga1BvcnRJbmRleE91dHB1dCA9IGtQb3J0SW5kZXhJbnB1dCArIDE7CisgICAgfQorICAgIHN0YXR1cyA9CisgICAgICAgIHNldFZpZGVvUG9ydEZvcm1hdChvbXhOb2RlLCBrUG9ydEluZGV4SW5wdXQsIE9NWF9WSURFT19Db2RpbmdVbnVzZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBlQ29sb3JGb3JtYXQsIHhGcmFtZXJhdGUpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgc3RhdHVzID0gc2V0VmlkZW9Qb3J0Rm9ybWF0KG9teE5vZGUsIGtQb3J0SW5kZXhPdXRwdXQsIGVDb21wcmVzc2lvbkZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX0NPTE9SX0Zvcm1hdFVudXNlZCwgMFUpOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCisvLyB0ZXN0IHJhdyBzdHJlYW0gZW5jb2RlCitURVNUX0YoVmlkZW9FbmNIaWRsVGVzdCwgRW5jb2RlVGVzdCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0IEVuY29kZSIpOworICAgIGlmIChkaXNhYmxlVGVzdCkgcmV0dXJuOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIHVpbnQzMl90IGtQb3J0SW5kZXhJbnB1dCA9IDAsIGtQb3J0SW5kZXhPdXRwdXQgPSAxOworICAgIHN0YXR1cyA9IHNldFJvbGUob214Tm9kZSwgZ0Vudi0+Z2V0Um9sZSgpLmNfc3RyKCkpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIE9NWF9QT1JUX1BBUkFNX1RZUEUgcGFyYW1zOworICAgIHN0YXR1cyA9IGdldFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Jbml0LCAmcGFyYW1zKTsKKyAgICBpZiAoc3RhdHVzID09IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIHsKKyAgICAgICAgQVNTRVJUX0VRKHBhcmFtcy5uUG9ydHMsIDJVKTsKKyAgICAgICAga1BvcnRJbmRleElucHV0ID0gcGFyYW1zLm5TdGFydFBvcnROdW1iZXI7CisgICAgICAgIGtQb3J0SW5kZXhPdXRwdXQgPSBrUG9ydEluZGV4SW5wdXQgKyAxOworICAgIH0KKyAgICBjaGFyIG1VUkxbNTEyXTsKKyAgICBzdHJjcHkobVVSTCwgZ0Vudi0+Z2V0UmVzKCkuY19zdHIoKSk7CisgICAgR2V0VVJMRm9yQ29tcG9uZW50KG1VUkwpOworCisgICAgc3RkOjppZnN0cmVhbSBlbGVTdHJlYW07CisgICAgZWxlU3RyZWFtLm9wZW4obVVSTCwgc3RkOjppZnN0cmVhbTo6YmluYXJ5KTsKKyAgICBBU1NFUlRfRVEoZWxlU3RyZWFtLmlzX29wZW4oKSwgdHJ1ZSk7CisKKyAgICAvLyBDb25maWd1cmUgaW5wdXQgcG9ydAorICAgIHVpbnQzMl90IG5GcmFtZVdpZHRoID0gMzUyOworICAgIHVpbnQzMl90IG5GcmFtZUhlaWdodCA9IDI4ODsKKyAgICB1aW50MzJfdCB4RnJhbWVyYXRlID0gKDMwVSA8PCAxNik7CisgICAgT01YX0NPTE9SX0ZPUk1BVFRZUEUgZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFlVVjQyMFBsYW5hcjsKKyAgICBzZXR1cFJBV1BvcnQob214Tm9kZSwga1BvcnRJbmRleElucHV0LCBuRnJhbWVXaWR0aCwgbkZyYW1lSGVpZ2h0LCAwLAorICAgICAgICAgICAgICAgICB4RnJhbWVyYXRlLCBlQ29sb3JGb3JtYXQpOworICAgIC8vIENvbmZpZ3VyZSBvdXRwdXQgcG9ydAorICAgIHVpbnQzMl90IG5CaXRSYXRlID0gNTEyMDAwOworICAgIHNldERlZmF1bHRQb3J0UGFyYW0ob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgZUNvbXByZXNzaW9uRm9ybWF0LCBuQml0UmF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHhGcmFtZXJhdGUpOworICAgIHNldFJlZnJlc2hQZXJpb2Qob214Tm9kZSwga1BvcnRJbmRleE91dHB1dCwgMCk7CisgICAgdW5zaWduZWQgaW50IGluZGV4OworICAgIG9teE5vZGUtPmdldEV4dGVuc2lvbkluZGV4KAorICAgICAgICAiT01YLmdvb2dsZS5hbmRyb2lkLmluZGV4LnByZXBlbmRTUFNQUFNUb0lEUkZyYW1lcyIsCisgICAgICAgIFsmc3RhdHVzLCAmaW5kZXhdKGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfbmwpIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgaW5kZXggPSBfbmw7CisgICAgICAgIH0pOworICAgIGlmIChzdGF0dXMgPT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgeworICAgICAgICBhbmRyb2lkOjpQcmVwZW5kU1BTUFBTVG9JRFJGcmFtZXNQYXJhbXMgcGFyYW07CisgICAgICAgIHBhcmFtLmJFbmFibGUgPSBPTVhfVFJVRTsKKyAgICAgICAgc3RhdHVzID0gc2V0UGFyYW0ob214Tm9kZSwgc3RhdGljX2Nhc3Q8T01YX0lOREVYVFlQRT4oaW5kZXgpLCAmcGFyYW0pOworICAgIH0KKyAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spCisgICAgICAgIHN0ZDo6Y2VycgorICAgICAgICAgICAgPDwgIlsgICAgICAgICAgXSBXYXJuaW5nICEgdW5hYmxlIHRvIHByZXBlbmRTUFNQUFNUb0lEUkZyYW1lc1xuIjsKKworICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiBpQnVmZmVyLCBvQnVmZmVyOworCisgICAgLy8gc2V0IHN0YXRlIHRvIGlkbGUKKyAgICBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisgICAgLy8gc2V0IHN0YXRlIHRvIGV4ZWN1dGluZworICAgIGNoYW5nZVN0YXRlSWRsZXRvRXhlY3V0ZShvbXhOb2RlLCBvYnNlcnZlcik7CisKKyAgICBlbmNvZGVORnJhbWVzKG9teE5vZGUsIG9ic2VydmVyLCBrUG9ydEluZGV4T3V0cHV0LCAmaUJ1ZmZlciwgJm9CdWZmZXIsIDEwMjQsCisgICAgICAgICAgICAgICAgICB4RnJhbWVyYXRlLCAobkZyYW1lV2lkdGggKiBuRnJhbWVIZWlnaHQgKiAzKSA+PiAxLCBlbGVTdHJlYW0pOworICAgIC8vIHNldCBzdGF0ZSB0byBpZGxlCisgICAgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKG9teE5vZGUsIG9ic2VydmVyLCAmaUJ1ZmZlciwgJm9CdWZmZXIpOworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRpbmcKKyAgICBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChvbXhOb2RlLCBvYnNlcnZlciwgJmlCdWZmZXIsICZvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCwga1BvcnRJbmRleE91dHB1dCk7CisKKyAgICBlbGVTdHJlYW0uY2xvc2UoKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSB7CisgICAgZ0VudiA9IG5ldyBDb21wb25lbnRUZXN0RW52aXJvbm1lbnQoKTsKKyAgICA6OnRlc3Rpbmc6OkFkZEdsb2JhbFRlc3RFbnZpcm9ubWVudChnRW52KTsKKyAgICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgICBpbnQgc3RhdHVzID0gZ0Vudi0+aW5pdEZyb21PcHRpb25zKGFyZ2MsIGFyZ3YpOworICAgIGlmIChzdGF0dXMgPT0gMCkgeworICAgICAgICBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgICAgICAgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgICB9CisgICAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL21lZGlhL29teC8xLjAvdnRzL2Z1bmN0aW9uYWwvdmlkZW8vbWVkaWFfdmlkZW9faGlkbF90ZXN0X2NvbW1vbi5jcHAgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL21lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwMzUwNDgKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL21lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uY3BwCkBAIC0wLDAgKzEsNTg5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJtZWRpYV9vbXhfaGlkbF92aWRlb190ZXN0X2NvbW1vbiIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL0lPbXguaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE5vZGUuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lZGlhL29teC8xLjAvSU9teE9ic2VydmVyLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZWRpYS9vbXgvMS4wL3R5cGVzLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oaWRsL2FsbG9jYXRvci8xLjAvSUFsbG9jYXRvci5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGlkbC9tZW1vcnkvMS4wL0lNYXBwZXIuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hpZGwvbWVtb3J5LzEuMC9JTWVtb3J5Lmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OklPbXg7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214T2JzZXJ2ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpJT214Tm9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6Ok1lc3NhZ2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpDb2RlY0J1ZmZlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGlkbDo6YWxsb2NhdG9yOjpWMV8wOjpJQWxsb2NhdG9yOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjptZW1vcnk6OlYxXzA6OklNZW1vcnk7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6Om1lbW9yeTo6VjFfMDo6SU1hcHBlcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGhpZGxtZW1vcnkvbWFwcGluZy5oPgorI2luY2x1ZGUgPG1lZGlhX2hpZGxfdGVzdF9jb21tb24uaD4KKyNpbmNsdWRlIDxtZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorCisvLyBhbGxvY2F0ZSBidWZmZXJzIG5lZWRlZCBvbiBhIGNvbXBvbmVudCBwb3J0Cit2b2lkIGFsbG9jYXRlUG9ydEJ1ZmZlcnMoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBwb3J0SW5kZXgpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfUEFSQU1fUE9SVERFRklOSVRJT05UWVBFIHBvcnREZWY7CisKKyAgICBidWZmQXJyYXktPmNsZWFyKCk7CisKKyAgICBzcDxJQWxsb2NhdG9yPiBhbGxvY2F0b3IgPSBJQWxsb2NhdG9yOjpnZXRTZXJ2aWNlKCJhc2htZW0iKTsKKyAgICBFWFBFQ1RfTkUoYWxsb2NhdG9yLmdldCgpLCBudWxscHRyKTsKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9ydERlZi5uQnVmZmVyQ291bnRBY3R1YWw7IGkrKykgeworICAgICAgICBCdWZmZXJJbmZvIGJ1ZmZlcjsKKyAgICAgICAgYnVmZmVyLm93bmVyID0gY2xpZW50OworICAgICAgICBidWZmZXIub214QnVmZmVyLnR5cGUgPSBDb2RlY0J1ZmZlcjo6VHlwZTo6U0hBUkVEX01FTTsKKyAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5hdHRyLnByZXNldC5yYW5nZU9mZnNldCA9IDA7CisgICAgICAgIGJ1ZmZlci5vbXhCdWZmZXIuYXR0ci5wcmVzZXQucmFuZ2VMZW5ndGggPSAwOworICAgICAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgYWxsb2NhdG9yLT5hbGxvY2F0ZSgKKyAgICAgICAgICAgIHBvcnREZWYubkJ1ZmZlclNpemUsCisgICAgICAgICAgICBbJnN1Y2Nlc3MsICZidWZmZXJdKGJvb2wgX3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5IGNvbnN0JiBtZW0pIHsKKyAgICAgICAgICAgICAgICBzdWNjZXNzID0gX3M7CisgICAgICAgICAgICAgICAgYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkgPSBtZW07CisgICAgICAgICAgICB9KTsKKyAgICAgICAgQVNTRVJUX0VRKHN1Y2Nlc3MsIHRydWUpOworICAgICAgICBBU1NFUlRfRVEoYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkuc2l6ZSgpLCBwb3J0RGVmLm5CdWZmZXJTaXplKTsKKyAgICAgICAgYnVmZmVyLm1NZW1vcnkgPSBtYXBNZW1vcnkoYnVmZmVyLm9teEJ1ZmZlci5zaGFyZWRNZW1vcnkpOworICAgICAgICBBU1NFUlRfTkUoYnVmZmVyLm1NZW1vcnksIG51bGxwdHIpOworICAgICAgICBvbXhOb2RlLT51c2VCdWZmZXIoCisgICAgICAgICAgICBwb3J0SW5kZXgsIGJ1ZmZlci5vbXhCdWZmZXIsCisgICAgICAgICAgICBbJnN0YXR1cywgJmJ1ZmZlcl0oYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBfcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBpZCkgeworICAgICAgICAgICAgICAgIHN0YXR1cyA9IF9zOworICAgICAgICAgICAgICAgIGJ1ZmZlci5pZCA9IGlkOworICAgICAgICAgICAgfSk7CisgICAgICAgIGJ1ZmZBcnJheS0+cHVzaChidWZmZXIpOworICAgICAgICBBU1NFUlRfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICB9Cit9CisKKy8vIFN0YXRlIFRyYW5zaXRpb24gOiBMb2FkZWQgLT4gSWRsZQorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUxvYWRlZHRvSWRsZShzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0KSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gaWRsZQorICAgIHN0YXR1cyA9IG9teE5vZGUtPnNlbmRDb21tYW5kKHRvUmF3Q29tbWFuZFR5cGUoT01YX0NvbW1hbmRTdGF0ZVNldCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1N0YXRlSWRsZSk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworCisgICAgLy8gRG9udCBzd2l0Y2ggc3RhdGVzIHVudGlsIHRoZSBwb3J0cyBhcmUgcG9wdWxhdGVkCisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIERFRkFVTFRfVElNRU9VVCwgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6VElNRURfT1VUKTsKKworICAgIC8vIGFsbG9jYXRlIGJ1ZmZlcnMgb24gaW5wdXQgcG9ydAorICAgIGFsbG9jYXRlUG9ydEJ1ZmZlcnMob214Tm9kZSwgaUJ1ZmZlciwga1BvcnRJbmRleElucHV0KTsKKworICAgIC8vIERvbnQgc3dpdGNoIHN0YXRlcyB1bnRpbCB0aGUgcG9ydHMgYXJlIHBvcHVsYXRlZAorICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICAvLyBhbGxvY2F0ZSBidWZmZXJzIG9uIG91dHB1dCBwb3J0CisgICAgYWxsb2NhdGVQb3J0QnVmZmVycyhvbXhOb2RlLCBvQnVmZmVyLCBrUG9ydEluZGV4T3V0cHV0KTsKKworICAgIC8vIEFzIHRoZSBwb3J0cyBhcmUgcG9wdWxhdGVkLCBjaGVjayBpZiB0aGUgc3RhdGUgdHJhbnNpdGlvbiBpcyBjb21wbGV0ZQorICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRTdGF0ZVNldCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwgT01YX1N0YXRlSWRsZSk7CisKKyAgICByZXR1cm47Cit9CisKKy8vIFN0YXRlIFRyYW5zaXRpb24gOiBJZGxlIC0+IExvYWRlZAorLy8gTm90ZTogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBtYWtlIGFueSBiYWNrZ3JvdW5kIGNoZWNrcyBmb3IgdGhpcyB0cmFuc2l0aW9uLgorLy8gVGhlIGNhbGxlZSBob2xkcyB0aGUgcmVwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhlIGxlZ2FsaXR5IG9mIHRoZSB0cmFuc2l0aW9uLgordm9pZCBjaGFuZ2VTdGF0ZUlkbGV0b0xvYWRlZChzcDxJT214Tm9kZT4gb214Tm9kZSwgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBvQnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIGtQb3J0SW5kZXhJbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4T3V0cHV0KSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgTWVzc2FnZSBtc2c7CisKKyAgICAvLyBzZXQgc3RhdGUgdG8gTG9hZGVkCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVMb2FkZWQpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIC8vIGRvbnQgY2hhbmdlIHN0YXRlIHVudGlsIGFsbCBidWZmZXJzIGFyZSBmcmVlZAorICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPmZyZWVCdWZmZXIoa1BvcnRJbmRleElucHV0LCAoKmlCdWZmZXIpW2ldLmlkKTsKKyAgICAgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIH0KKworICAgIC8vIGRvbnQgY2hhbmdlIHN0YXRlIHVudGlsIGFsbCBidWZmZXJzIGFyZSBmcmVlZAorICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCBERUZBVUxUX1RJTUVPVVQsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6OlRJTUVEX09VVCk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIHN0YXR1cyA9IG9teE5vZGUtPmZyZWVCdWZmZXIoa1BvcnRJbmRleE91dHB1dCwgKCpvQnVmZmVyKVtpXS5pZCk7CisgICAgICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICB9CisKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kU3RhdGVTZXQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIE9NWF9TdGF0ZUxvYWRlZCk7CisKKyAgICByZXR1cm47Cit9CisKKy8vIFN0YXRlIFRyYW5zaXRpb24gOiBJZGxlIC0+IEV4ZWN1dGUKKy8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgbWFrZSBhbnkgYmFja2dyb3VuZCBjaGVja3MgZm9yIHRoaXMgdHJhbnNpdGlvbi4KKy8vIFRoZSBjYWxsZWUgaG9sZHMgdGhlIHJlcG9uc2liaWxpdHkgdG8gZW5zdXJlIHRoZSBsZWdhbGl0eSBvZiB0aGUgdHJhbnNpdGlvbi4KK3ZvaWQgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKHNwPElPbXhOb2RlPiBvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3A8Q29kZWNPYnNlcnZlcj4gb2JzZXJ2ZXIpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIHNldCBzdGF0ZSB0byBleGVjdXRlCisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZFN0YXRlU2V0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfU3RhdGVFeGVjdXRpbmcpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VUKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kU3RhdGVTZXQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIE9NWF9TdGF0ZUV4ZWN1dGluZyk7CisKKyAgICByZXR1cm47Cit9CisKKy8vIFN0YXRlIFRyYW5zaXRpb24gOiBFeGVjdXRlIC0+IElkbGUKKy8vIE5vdGU6IFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgbWFrZSBhbnkgYmFja2dyb3VuZCBjaGVja3MgZm9yIHRoaXMgdHJhbnNpdGlvbi4KKy8vIFRoZSBjYWxsZWUgaG9sZHMgdGhlIHJlcG9uc2liaWxpdHkgdG8gZW5zdXJlIHRoZSBsZWdhbGl0eSBvZiB0aGUgdHJhbnNpdGlvbi4KK3ZvaWQgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlcikgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE1lc3NhZ2UgbXNnOworCisgICAgLy8gc2V0IHN0YXRlIHRvIElkbGUKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kU3RhdGVTZXQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9NWF9TdGF0ZUlkbGUpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBzdGF0dXMgPSBvYnNlcnZlci0+ZGVxdWV1ZU1lc3NhZ2UoJm1zZywgREVGQVVMVF9USU1FT1VULCBpQnVmZmVyLCBvQnVmZmVyKTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgQVNTRVJUX0VRKG1zZy50eXBlLCBNZXNzYWdlOjpUeXBlOjpFVkVOVCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5ldmVudCwgT01YX0V2ZW50Q21kQ29tcGxldGUpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTEsIE9NWF9Db21tYW5kU3RhdGVTZXQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZGF0YTIsIE9NWF9TdGF0ZUlkbGUpOworCisgICAgLy8gdGVzdCBpZiBjbGllbnQgZ290IGFsbCBpdHMgYnVmZmVycyBiYWNrCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvQnVmZmVyLT5zaXplKCk7ICsraSkgeworICAgICAgICBFWFBFQ1RfRVEoKCpvQnVmZmVyKVtpXS5vd25lciwgY2xpZW50KTsKKyAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpQnVmZmVyLT5zaXplKCk7ICsraSkgeworICAgICAgICBFWFBFQ1RfRVEoKCppQnVmZmVyKVtpXS5vd25lciwgY2xpZW50KTsKKyAgICB9Cit9CisKKy8vIGdldCBlbXB0eSBidWZmZXIgaW5kZXgKK3NpemVfdCBnZXRFbXB0eUJ1ZmZlcklEKGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5KSB7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBidWZmQXJyYXktPnNpemUoKTsgaSsrKSB7CisgICAgICAgIGlmICgoKmJ1ZmZBcnJheSlbaV0ub3duZXIgPT0gY2xpZW50KSByZXR1cm4gaTsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZBcnJheS0+c2l6ZSgpOworfQorCisvLyBkaXNwYXRjaCBidWZmZXIgdG8gb3V0cHV0IHBvcnQKK3ZvaWQgZGlzcGF0Y2hPdXRwdXRCdWZmZXIoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVySW5kZXgpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBDb2RlY0J1ZmZlciB0OworICAgIHQuc2hhcmVkTWVtb3J5ID0gYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5KCk7CisgICAgdC5uYXRpdmVIYW5kbGUgPSBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9oYW5kbGUoKTsKKyAgICB0LnR5cGUgPSBDb2RlY0J1ZmZlcjo6VHlwZTo6UFJFU0VUOworICAgIHQuYXR0ci5wcmVzZXQucmFuZ2VPZmZzZXQgPSAwOworICAgIHQuYXR0ci5wcmVzZXQucmFuZ2VMZW5ndGggPSAwOworICAgIG5hdGl2ZV9oYW5kbGVfdCogZmVuY2VOaCA9IG5hdGl2ZV9oYW5kbGVfY3JlYXRlKDAsIDApOworICAgIEFTU0VSVF9ORShmZW5jZU5oLCBudWxscHRyKTsKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5maWxsQnVmZmVyKCgqYnVmZkFycmF5KVtidWZmZXJJbmRleF0uaWQsIHQsIGZlbmNlTmgpOworICAgIG5hdGl2ZV9oYW5kbGVfY2xvc2UoZmVuY2VOaCk7CisgICAgbmF0aXZlX2hhbmRsZV9kZWxldGUoZmVuY2VOaCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIGJ1ZmZBcnJheS0+ZWRpdEl0ZW1BdChidWZmZXJJbmRleCkub3duZXIgPSBjb21wb25lbnQ7Cit9CisKKy8vIGRpc3BhdGNoIGJ1ZmZlciB0byBpbnB1dCBwb3J0Cit2b2lkIGRpc3BhdGNoSW5wdXRCdWZmZXIoc3A8SU9teE5vZGU+IG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1ZmZlckluZGV4LCBpbnQgYnl0ZXNDb3VudCwgdWludDMyX3QgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgdGltZXN0YW1wKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgQ29kZWNCdWZmZXIgdDsKKyAgICB0LnNoYXJlZE1lbW9yeSA9IGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeSgpOworICAgIHQubmF0aXZlSGFuZGxlID0gYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfaGFuZGxlKCk7CisgICAgdC50eXBlID0gQ29kZWNCdWZmZXI6OlR5cGU6OlBSRVNFVDsKKyAgICB0LmF0dHIucHJlc2V0LnJhbmdlT2Zmc2V0ID0gMDsKKyAgICB0LmF0dHIucHJlc2V0LnJhbmdlTGVuZ3RoID0gYnl0ZXNDb3VudDsKKyAgICBuYXRpdmVfaGFuZGxlX3QqIGZlbmNlTmggPSBuYXRpdmVfaGFuZGxlX2NyZWF0ZSgwLCAwKTsKKyAgICBBU1NFUlRfTkUoZmVuY2VOaCwgbnVsbHB0cik7CisgICAgc3RhdHVzID0gb214Tm9kZS0+ZW1wdHlCdWZmZXIoKCpidWZmQXJyYXkpW2J1ZmZlckluZGV4XS5pZCwgdCwgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wLCBmZW5jZU5oKTsKKyAgICBuYXRpdmVfaGFuZGxlX2Nsb3NlKGZlbmNlTmgpOworICAgIG5hdGl2ZV9oYW5kbGVfZGVsZXRlKGZlbmNlTmgpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBidWZmQXJyYXktPmVkaXRJdGVtQXQoYnVmZmVySW5kZXgpLm93bmVyID0gY29tcG9uZW50OworfQorCisvLyBGbHVzaCBpbnB1dCBhbmQgb3V0cHV0IHBvcnRzCit2b2lkIGZsdXNoUG9ydHMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwgaW50NjRfdCB0aW1lb3V0VXMpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBNZXNzYWdlIG1zZzsKKworICAgIC8vIEZsdXNoIGlucHV0IHBvcnQKKyAgICBzdGF0dXMgPSBvbXhOb2RlLT5zZW5kQ29tbWFuZCh0b1Jhd0NvbW1hbmRUeXBlKE9NWF9Db21tYW5kRmx1c2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtQb3J0SW5kZXhJbnB1dCk7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIHN0YXR1cyA9IG9ic2VydmVyLT5kZXF1ZXVlTWVzc2FnZSgmbXNnLCB0aW1lb3V0VXMsIGlCdWZmZXIsIG9CdWZmZXIpOworICAgIEFTU0VSVF9FUShzdGF0dXMsIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBBU1NFUlRfRVEobXNnLnR5cGUsIE1lc3NhZ2U6OlR5cGU6OkVWRU5UKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmV2ZW50LCBPTVhfRXZlbnRDbWRDb21wbGV0ZSk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMSwgT01YX0NvbW1hbmRGbHVzaCk7CisgICAgQVNTRVJUX0VRKG1zZy5kYXRhLmV2ZW50RGF0YS5kYXRhMiwga1BvcnRJbmRleElucHV0KTsKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGlCdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKmlCdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KKworICAgIC8vIEZsdXNoIG91dHB1dCBwb3J0CisgICAgc3RhdHVzID0gb214Tm9kZS0+c2VuZENvbW1hbmQodG9SYXdDb21tYW5kVHlwZShPTVhfQ29tbWFuZEZsdXNoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICBBU1NFUlRfRVEoc3RhdHVzLCBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgc3RhdHVzID0gb2JzZXJ2ZXItPmRlcXVldWVNZXNzYWdlKCZtc2csIHRpbWVvdXRVcywgaUJ1ZmZlciwgb0J1ZmZlcik7CisgICAgQVNTRVJUX0VRKHN0YXR1cywgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworICAgIEFTU0VSVF9FUShtc2cudHlwZSwgTWVzc2FnZTo6VHlwZTo6RVZFTlQpOworICAgIEFTU0VSVF9FUShtc2cuZGF0YS5ldmVudERhdGEuZXZlbnQsIE9NWF9FdmVudENtZENvbXBsZXRlKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGExLCBPTVhfQ29tbWFuZEZsdXNoKTsKKyAgICBBU1NFUlRfRVEobXNnLmRhdGEuZXZlbnREYXRhLmRhdGEyLCBrUG9ydEluZGV4T3V0cHV0KTsKKyAgICAvLyB0ZXN0IGlmIGNsaWVudCBnb3QgYWxsIGl0cyBidWZmZXJzIGJhY2sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9CdWZmZXItPnNpemUoKTsgKytpKSB7CisgICAgICAgIEVYUEVDVF9FUSgoKm9CdWZmZXIpW2ldLm93bmVyLCBjbGllbnQpOworICAgIH0KK30KKworUmV0dXJuPGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM+IHNldFZpZGVvUG9ydEZvcm1hdCgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgT01YX1ZJREVPX0NPRElOR1RZUEUgZUNvbXByZXNzaW9uRm9ybWF0LCBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQsCisgICAgT01YX1UzMiB4RnJhbWVyYXRlKSB7CisgICAgT01YX1UzMiBpbmRleCA9IDA7CisgICAgT01YX1ZJREVPX1BBUkFNX1BPUlRGT1JNQVRUWVBFIHBvcnRGb3JtYXQ7CisgICAgc3RkOjp2ZWN0b3I8T01YX0NPTE9SX0ZPUk1BVFRZUEU+IGFyckNvbG9yRm9ybWF0OworICAgIHN0ZDo6dmVjdG9yPE9NWF9WSURFT19DT0RJTkdUWVBFPiBhcnJDb21wcmVzc2lvbkZvcm1hdDsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIHdoaWxlICgxKSB7CisgICAgICAgIHBvcnRGb3JtYXQubkluZGV4ID0gaW5kZXg7CisgICAgICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvUG9ydEZvcm1hdCwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvcnRGb3JtYXQpOworICAgICAgICBpZiAoc3RhdHVzICE9IDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spIGJyZWFrOworICAgICAgICBpZiAoZUNvbXByZXNzaW9uRm9ybWF0ID09IE9NWF9WSURFT19Db2RpbmdVbnVzZWQpCisgICAgICAgICAgICBhcnJDb2xvckZvcm1hdC5wdXNoX2JhY2socG9ydEZvcm1hdC5lQ29sb3JGb3JtYXQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhcnJDb21wcmVzc2lvbkZvcm1hdC5wdXNoX2JhY2socG9ydEZvcm1hdC5lQ29tcHJlc3Npb25Gb3JtYXQpOworICAgICAgICBpbmRleCsrOworICAgICAgICBpZiAoaW5kZXggPT0gNTEyKSB7CisgICAgICAgICAgICAvLyBlbnVtZXJhdGVkIHdheSB0b28gbWFueSBmb3JtYXRzLCBoaWdobHkgdW51c3VhbCBmb3IgdGhpcyB0bworICAgICAgICAgICAgLy8gaGFwcGVuLgorICAgICAgICAgICAgRVhQRUNUX0xFKGluZGV4LCA1MTJVKQorICAgICAgICAgICAgICAgIDw8ICJFeHBlY3RpbmcgT01YX0Vycm9yTm9Nb3JlIGJ1dCBub3QgcmVjZWl2ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFpbmRleCkgcmV0dXJuIHN0YXR1czsKKyAgICBpZiAoZUNvbXByZXNzaW9uRm9ybWF0ID09IE9NWF9WSURFT19Db2RpbmdVbnVzZWQpIHsKKyAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgYXJyQ29sb3JGb3JtYXQuc2l6ZSgpOyBpbmRleCsrKSB7CisgICAgICAgICAgICBpZiAoYXJyQ29sb3JGb3JtYXRbaW5kZXhdID09IGVDb2xvckZvcm1hdCkgeworICAgICAgICAgICAgICAgIHBvcnRGb3JtYXQuZUNvbG9yRm9ybWF0ID0gYXJyQ29sb3JGb3JtYXRbaW5kZXhdOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChpbmRleCA9PSBhcnJDb2xvckZvcm1hdC5zaXplKCkpIHsKKyAgICAgICAgICAgIEFMT0dFKCJzZXR0aW5nIGRlZmF1bHQgY29sb3IgZm9ybWF0ICV4IiwgKGludClhcnJDb2xvckZvcm1hdFswXSk7CisgICAgICAgICAgICBwb3J0Rm9ybWF0LmVDb2xvckZvcm1hdCA9IGFyckNvbG9yRm9ybWF0WzBdOworICAgICAgICB9CisgICAgICAgIHBvcnRGb3JtYXQuZUNvbXByZXNzaW9uRm9ybWF0ID0gT01YX1ZJREVPX0NvZGluZ1VudXNlZDsKKyAgICB9IGVsc2UgeworICAgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBhcnJDb21wcmVzc2lvbkZvcm1hdC5zaXplKCk7IGluZGV4KyspIHsKKyAgICAgICAgICAgIGlmIChhcnJDb21wcmVzc2lvbkZvcm1hdFtpbmRleF0gPT0gZUNvbXByZXNzaW9uRm9ybWF0KSB7CisgICAgICAgICAgICAgICAgcG9ydEZvcm1hdC5lQ29tcHJlc3Npb25Gb3JtYXQgPSBhcnJDb21wcmVzc2lvbkZvcm1hdFtpbmRleF07CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGluZGV4ID09IGFyckNvbXByZXNzaW9uRm9ybWF0LnNpemUoKSkgeworICAgICAgICAgICAgQUxPR0UoInNldHRpbmcgZGVmYXVsdCBjb21wcmVzc2lvbiBmb3JtYXQgJXgiLAorICAgICAgICAgICAgICAgICAgKGludClhcnJDb21wcmVzc2lvbkZvcm1hdFswXSk7CisgICAgICAgICAgICBwb3J0Rm9ybWF0LmVDb21wcmVzc2lvbkZvcm1hdCA9IGFyckNvbXByZXNzaW9uRm9ybWF0WzBdOworICAgICAgICB9CisgICAgICAgIHBvcnRGb3JtYXQuZUNvbG9yRm9ybWF0ID0gT01YX0NPTE9SX0Zvcm1hdFVudXNlZDsKKyAgICB9CisgICAgcG9ydEZvcm1hdC5uSW5kZXggPSAwOworICAgIHBvcnRGb3JtYXQueEZyYW1lcmF0ZSA9IHhGcmFtZXJhdGU7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Qb3J0Rm9ybWF0LCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0Rm9ybWF0KTsKKyAgICByZXR1cm4gc3RhdHVzOworfQorCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0Um9sZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgY29uc3QgY2hhciogcm9sZSkgeworICAgIE9NWF9QQVJBTV9DT01QT05FTlRST0xFVFlQRSBwYXJhbXM7CisgICAgc3RyY3B5KChjaGFyKilwYXJhbXMuY1JvbGUsIHJvbGUpOworICAgIHJldHVybiBzZXRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVN0YW5kYXJkQ29tcG9uZW50Um9sZSwgJnBhcmFtcyk7Cit9CisKK3ZvaWQgZW51bWVyYXRlUHJvZmlsZUFuZExldmVsKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+KiBhcnJQcm9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyckxldmVsKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX1BBUkFNX1BST0ZJTEVMRVZFTFRZUEUgcGFyYW07CisgICAgcGFyYW0ublByb2ZpbGVJbmRleCA9IDA7CisgICAgYXJyUHJvZmlsZS0+Y2xlYXIoKTsKKyAgICBhcnJMZXZlbC0+Y2xlYXIoKTsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBzdGF0dXMgPQorICAgICAgICAgICAgZ2V0UG9ydFBhcmFtKG9teE5vZGUsIE9NWF9JbmRleFBhcmFtVmlkZW9Qcm9maWxlTGV2ZWxRdWVyeVN1cHBvcnRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgICAgIGlmIChzdGF0dXMgIT0gOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSykgYnJlYWs7CisgICAgICAgIGFyclByb2ZpbGUtPnB1c2hfYmFjayhzdGF0aWNfY2FzdDxpbnQzMl90PihwYXJhbS5lUHJvZmlsZSkpOworICAgICAgICBhcnJMZXZlbC0+cHVzaF9iYWNrKHN0YXRpY19jYXN0PGludDMyX3Q+KHBhcmFtLmVMZXZlbCkpOworICAgICAgICBwYXJhbS5uUHJvZmlsZUluZGV4Kys7CisgICAgICAgIGlmIChwYXJhbS5uUHJvZmlsZUluZGV4ID09IDUxMikgeworICAgICAgICAgICAgLy8gZW51bWVyYXRlZCB3YXkgdG9vIG1hbnksIGhpZ2hseSB1bnVzdWFsIGZvciB0aGlzIHRvIGhhcHBlbi4KKyAgICAgICAgICAgIEVYUEVDVF9MRShwYXJhbS5uUHJvZmlsZUluZGV4LCA1MTJVKQorICAgICAgICAgICAgICAgIDw8ICJFeHBlY3RpbmcgT01YX0Vycm9yTm9Nb3JlIGJ1dCBub3QgcmVjZWl2ZWQiOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgc2V0dXBSQVdQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwgT01YX1UzMiBuRnJhbWVXaWR0aCwKKyAgICAgICAgICAgICAgICAgIE9NWF9VMzIgbkZyYW1lSGVpZ2h0LCBPTVhfVTMyIG5CaXRyYXRlLCBPTVhfVTMyIHhGcmFtZXJhdGUsCisgICAgICAgICAgICAgICAgICBPTVhfQ09MT1JfRk9STUFUVFlQRSBlQ29sb3JGb3JtYXQpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKworICAgIE9NWF9QQVJBTV9QT1JUREVGSU5JVElPTlRZUEUgcG9ydERlZjsKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1Qb3J0RGVmaW5pdGlvbiwgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydERlZik7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ubkZyYW1lV2lkdGggPSBuRnJhbWVXaWR0aDsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5uRnJhbWVIZWlnaHQgPSBuRnJhbWVIZWlnaHQ7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8ublN0cmlkZSA9ICgoKG5GcmFtZVdpZHRoICsgMTUpID4+IDQpIDw8IDQpOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLm5TbGljZUhlaWdodCA9ICgoKG5GcmFtZUhlaWdodCArIDE1KSA+PiA0KSA8PCA0KTsKKyAgICBwb3J0RGVmLmZvcm1hdC52aWRlby5uQml0cmF0ZSA9IG5CaXRyYXRlOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLnhGcmFtZXJhdGUgPSB4RnJhbWVyYXRlOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLmJGbGFnRXJyb3JDb25jZWFsbWVudCA9IE9NWF9UUlVFOworICAgIHBvcnREZWYuZm9ybWF0LnZpZGVvLmVDb21wcmVzc2lvbkZvcm1hdCA9IE9NWF9WSURFT19Db2RpbmdVbnVzZWQ7CisgICAgcG9ydERlZi5mb3JtYXQudmlkZW8uZUNvbG9yRm9ybWF0ID0gZUNvbG9yRm9ybWF0OworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVBvcnREZWZpbml0aW9uLCBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwb3J0RGVmKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cEFWQ1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0FWQ1BST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0FWQ0xFVkVMVFlQRSBlTGV2ZWwsIE9NWF9VMzIgeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9BVkNUWVBFIHBhcmFtOworICAgICh2b2lkKXhGcmFtZXJhdGU7ICAvLyBuZWNlc3NhcnkgZm9yIGludHJhIGZyYW1lIHNwYWNpbmcKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvQXZjLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisgICAgcGFyYW0ublNsaWNlSGVhZGVyU3BhY2luZyA9IDA7CisgICAgcGFyYW0ublBGcmFtZXMgPSAweEZGRkZGRkZFOworICAgIHBhcmFtLm5CRnJhbWVzID0gMDsKKyAgICBwYXJhbS5iVXNlSGFkYW1hcmQgPSBPTVhfVFJVRTsKKyAgICBwYXJhbS5uUmVmRnJhbWVzID0gMTsKKyAgICBwYXJhbS5lUHJvZmlsZSA9IGVQcm9maWxlOworICAgIHBhcmFtLmVMZXZlbCA9IGVMZXZlbDsKKyAgICBwYXJhbS5uQWxsb3dlZFBpY3R1cmVUeXBlcyA9CisgICAgICAgIE9NWF9WSURFT19QaWN0dXJlVHlwZUkgfCBPTVhfVklERU9fUGljdHVyZVR5cGVQOworICAgIHBhcmFtLmJGcmFtZU1Cc09ubHkgPSBPTVhfVFJVRTsKKyAgICBwYXJhbS5iRW50cm9weUNvZGluZ0NBQkFDID0gT01YX0ZBTFNFOworICAgIHBhcmFtLmJXZWlnaHRlZFBQcmVkaWN0aW9uID0gT01YX0ZBTFNFOworICAgIHBhcmFtLmVMb29wRmlsdGVyTW9kZSA9IE9NWF9WSURFT19BVkNMb29wRmlsdGVyRW5hYmxlOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvQXZjLCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBIRVZDUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0hFVkNQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fSEVWQ0xFVkVMVFlQRSBlTGV2ZWwpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fUEFSQU1fSEVWQ1RZUEUgcGFyYW07CisKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1WaWRlb0hldmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKyAgICBwYXJhbS5lUHJvZmlsZSA9IGVQcm9maWxlOworICAgIHBhcmFtLmVMZXZlbCA9IGVMZXZlbDsKKyAgICBwYXJhbS5uS2V5RnJhbWVJbnRlcnZhbCA9IDB4RkZGRkZGRkU7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtVmlkZW9IZXZjLAorICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBNUEVHNFBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fTVBFRzRQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX01QRUc0TEVWRUxUWVBFIGVMZXZlbCwgT01YX1UzMiB4RnJhbWVyYXRlKSB7CisgICAgYW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cyBzdGF0dXM7CisgICAgT01YX1ZJREVPX1BBUkFNX01QRUc0VFlQRSBwYXJhbTsKKyAgICAodm9pZCl4RnJhbWVyYXRlOyAgLy8gbmVjZXNzYXJ5IGZvciBpbnRyYSBmcmFtZSBzcGFjaW5nCisKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb01wZWc0LCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBwYXJhbS5uU2xpY2VIZWFkZXJTcGFjaW5nID0gMDsKKyAgICBwYXJhbS5iU1ZIID0gT01YX0ZBTFNFOworICAgIHBhcmFtLmJHb3YgPSBPTVhfRkFMU0U7CisgICAgcGFyYW0ublBGcmFtZXMgPSAweEZGRkZGRkZFOworICAgIHBhcmFtLm5CRnJhbWVzID0gMDsKKyAgICBwYXJhbS5uSURDVkxDVGhyZXNob2xkID0gMDsKKyAgICBwYXJhbS5iQUNQcmVkID0gT01YX1RSVUU7CisgICAgcGFyYW0ubk1heFBhY2tldFNpemUgPSAyNTY7CisgICAgcGFyYW0uZVByb2ZpbGUgPSBlUHJvZmlsZTsKKyAgICBwYXJhbS5lTGV2ZWwgPSBlTGV2ZWw7CisgICAgcGFyYW0ubkFsbG93ZWRQaWN0dXJlVHlwZXMgPQorICAgICAgICBPTVhfVklERU9fUGljdHVyZVR5cGVJIHwgT01YX1ZJREVPX1BpY3R1cmVUeXBlUDsKKyAgICBwYXJhbS5uSGVhZGVyRXh0ZW5zaW9uID0gMDsKKyAgICBwYXJhbS5iUmV2ZXJzaWJsZVZMQyA9IE9NWF9GQUxTRTsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb01wZWc0LCBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7Cit9CisKK3ZvaWQgc2V0dXBIMjYzUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0gyNjNQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fSDI2M0xFVkVMVFlQRSBlTGV2ZWwsIE9NWF9VMzIgeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9IMjYzVFlQRSBwYXJhbTsKKyAgICAodm9pZCl4RnJhbWVyYXRlOyAgLy8gbmVjZXNzYXJ5IGZvciBpbnRyYSBmcmFtZSBzcGFjaW5nCisKKyAgICBzdGF0dXMgPSBnZXRQb3J0UGFyYW0ob214Tm9kZSwgT01YX0luZGV4UGFyYW1WaWRlb0gyNjMsIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBhcmFtLm5QRnJhbWVzID0gMHhGRkZGRkZGRTsKKyAgICBwYXJhbS5uQkZyYW1lcyA9IDA7CisgICAgcGFyYW0uZVByb2ZpbGUgPSBlUHJvZmlsZTsKKyAgICBwYXJhbS5lTGV2ZWwgPSBlTGV2ZWw7CisgICAgcGFyYW0ubkFsbG93ZWRQaWN0dXJlVHlwZXMgPQorICAgICAgICBPTVhfVklERU9fUGljdHVyZVR5cGVJIHwgT01YX1ZJREVPX1BpY3R1cmVUeXBlUDsKKyAgICBwYXJhbS5iUExVU1BUWVBFQWxsb3dlZCA9IE9NWF9GQUxTRTsKKyAgICBwYXJhbS5iRm9yY2VSb3VuZGluZ1R5cGVUb1plcm8gPSBPTVhfRkFMU0U7CisgICAgcGFyYW0ublBpY3R1cmVIZWFkZXJSZXBldGl0aW9uID0gMDsKKyAgICBwYXJhbS5uR09CSGVhZGVySW50ZXJ2YWwgPSAwOworICAgIHN0YXR1cyA9IHNldFBvcnRQYXJhbShvbXhOb2RlLCBPTVhfSW5kZXhQYXJhbVZpZGVvSDI2MywgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwVlBYUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9VMzIgeEZyYW1lcmF0ZSkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9BTkRST0lEX1ZQOEVOQ09ERVJUWVBFIHBhcmFtOworICAgICh2b2lkKXhGcmFtZXJhdGU7ICAvLyBuZWNlc3NhcnkgZm9yIGludHJhIGZyYW1lIHNwYWNpbmcKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbVZpZGVvQW5kcm9pZFZwOEVuY29kZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBhcmFtLm5LZXlGcmFtZUludGVydmFsID0gMHhGRkZGRkZGRTsKKyAgICBwYXJhbS5lVGVtcG9yYWxQYXR0ZXJuID0gT01YX1ZJREVPX1ZQWFRlbXBvcmFsTGF5ZXJQYXR0ZXJuTm9uZTsKKyAgICBwYXJhbS5uTWluUXVhbnRpemVyID0gMjsKKyAgICBwYXJhbS5uTWF4UXVhbnRpemVyID0gNjM7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtVmlkZW9BbmRyb2lkVnA4RW5jb2RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQorCit2b2lkIHNldHVwVlA4UG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICBPTVhfVklERU9fVlA4UFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICBPTVhfVklERU9fVlA4TEVWRUxUWVBFIGVMZXZlbCkgeworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXMgc3RhdHVzOworICAgIE9NWF9WSURFT19QQVJBTV9WUDhUWVBFIHBhcmFtOworCisgICAgc3RhdHVzID0gZ2V0UG9ydFBhcmFtKG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtVmlkZW9WcDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKKworICAgIHBhcmFtLmVQcm9maWxlID0gZVByb2ZpbGU7CisgICAgcGFyYW0uZUxldmVsID0gZUxldmVsOworICAgIHBhcmFtLmJFcnJvclJlc2lsaWVudE1vZGUgPSBPTVhfVFJVRTsKKyAgICBwYXJhbS5uRENUUGFydGl0aW9ucyA9IDE7CisgICAgc3RhdHVzID0gc2V0UG9ydFBhcmFtKG9teE5vZGUsIChPTVhfSU5ERVhUWVBFKU9NWF9JbmRleFBhcmFtVmlkZW9WcDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRJbmRleCwgJnBhcmFtKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzLCA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZWRpYTo6b214OjpWMV8wOjpTdGF0dXM6Ok9LKTsKK30KKwordm9pZCBzZXR1cFZQOVBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOVBST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOUxFVkVMVFlQRSBlTGV2ZWwpIHsKKyAgICBhbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzIHN0YXR1czsKKyAgICBPTVhfVklERU9fUEFSQU1fVlA5VFlQRSBwYXJhbTsKKworICAgIHN0YXR1cyA9IGdldFBvcnRQYXJhbShvbXhOb2RlLCAoT01YX0lOREVYVFlQRSlPTVhfSW5kZXhQYXJhbVZpZGVvVnA5LAorICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0SW5kZXgsICZwYXJhbSk7CisgICAgRVhQRUNUX0VRKHN0YXR1cywgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVkaWE6Om9teDo6VjFfMDo6U3RhdHVzOjpPSyk7CisKKyAgICBwYXJhbS5lUHJvZmlsZSA9IGVQcm9maWxlOworICAgIHBhcmFtLmVMZXZlbCA9IGVMZXZlbDsKKyAgICBwYXJhbS5iRXJyb3JSZXNpbGllbnRNb2RlID0gT01YX1RSVUU7CisgICAgcGFyYW0ublRpbGVSb3dzID0gMTsKKyAgICBwYXJhbS5uVGlsZUNvbHVtbnMgPSAxOworICAgIHBhcmFtLmJFbmFibGVGcmFtZVBhcmFsbGVsRGVjb2RpbmcgPSBPTVhfVFJVRTsKKyAgICBzdGF0dXMgPSBzZXRQb3J0UGFyYW0ob214Tm9kZSwgKE9NWF9JTkRFWFRZUEUpT01YX0luZGV4UGFyYW1WaWRlb1ZwOSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydEluZGV4LCAmcGFyYW0pOworICAgIEVYUEVDVF9FUShzdGF0dXMsIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1czo6T0spOworfQpkaWZmIC0tZ2l0IGEvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9tZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmggYi9tZWRpYS9vbXgvMS4wL3Z0cy9mdW5jdGlvbmFsL3ZpZGVvL21lZGlhX3ZpZGVvX2hpZGxfdGVzdF9jb21tb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMGY5YWZlCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvb214LzEuMC92dHMvZnVuY3Rpb25hbC92aWRlby9tZWRpYV92aWRlb19oaWRsX3Rlc3RfY29tbW9uLmgKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNiwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIE1FRElBX1ZJREVPX0hJRExfVEVTVF9DT01NT05fSAorI2RlZmluZSBNRURJQV9WSURFT19ISURMX1RFU1RfQ09NTU9OX0gKKworLyoKKyAqIFJhbmRvbSBJbmRleCB1c2VkIGZvciBtb25rZXkgdGVzdGluZyB3aGlsZSBnZXQvc2V0IHBhcmFtZXRlcnMKKyAqLworI2RlZmluZSBSQU5ET01fSU5ERVggMTcyOQorCisvKgorICogQ29tbW9uIHZpZGVvIHV0aWxzCisgKi8KK3ZvaWQgYWxsb2NhdGVQb3J0QnVmZmVycyhzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBPTVhfVTMyIHBvcnRJbmRleCk7CisKK3ZvaWQgY2hhbmdlU3RhdGVMb2FkZWR0b0lkbGUoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCk7CisKK3ZvaWQgY2hhbmdlU3RhdGVJZGxldG9Mb2FkZWQoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGlCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT01YX1UzMiBrUG9ydEluZGV4SW5wdXQsIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCk7CisKK3ZvaWQgY2hhbmdlU3RhdGVJZGxldG9FeGVjdXRlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlcik7CisKK3ZvaWQgY2hhbmdlU3RhdGVFeGVjdXRldG9JZGxlKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBzcDxDb2RlY09ic2VydmVyPiBvYnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogb0J1ZmZlcik7CisKK3NpemVfdCBnZXRFbXB0eUJ1ZmZlcklEKGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogYnVmZkFycmF5KTsKKwordm9pZCBkaXNwYXRjaE91dHB1dEJ1ZmZlcihzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kcm9pZDo6VmVjdG9yPEJ1ZmZlckluZm8+KiBidWZmQXJyYXksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBidWZmZXJJbmRleCk7CisKK3ZvaWQgZGlzcGF0Y2hJbnB1dEJ1ZmZlcihzcDxJT214Tm9kZT4gb214Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIGJ1ZmZBcnJheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnVmZmVySW5kZXgsIGludCBieXRlc0NvdW50LCB1aW50MzJfdCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCB0aW1lc3RhbXApOworCit2b2lkIGZsdXNoUG9ydHMoc3A8SU9teE5vZGU+IG9teE5vZGUsIHNwPENvZGVjT2JzZXJ2ZXI+IG9ic2VydmVyLAorICAgICAgICAgICAgICAgIGFuZHJvaWQ6OlZlY3RvcjxCdWZmZXJJbmZvPiogaUJ1ZmZlciwKKyAgICAgICAgICAgICAgICBhbmRyb2lkOjpWZWN0b3I8QnVmZmVySW5mbz4qIG9CdWZmZXIsIE9NWF9VMzIga1BvcnRJbmRleElucHV0LAorICAgICAgICAgICAgICAgIE9NWF9VMzIga1BvcnRJbmRleE91dHB1dCwgaW50NjRfdCB0aW1lb3V0VXMgPSBERUZBVUxUX1RJTUVPVVQpOworCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0VmlkZW9Qb3J0Rm9ybWF0KAorICAgIHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICBPTVhfVklERU9fQ09ESU5HVFlQRSBlQ29tcHJlc3Npb25Gb3JtYXQsIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCwKKyAgICBPTVhfVTMyIHhGcmFtZXJhdGUpOworCitSZXR1cm48YW5kcm9pZDo6aGFyZHdhcmU6Om1lZGlhOjpvbXg6OlYxXzA6OlN0YXR1cz4gc2V0Um9sZSgKKyAgICBzcDxJT214Tm9kZT4gb214Tm9kZSwgY29uc3QgY2hhciogcm9sZSk7CisKK3ZvaWQgZW51bWVyYXRlUHJvZmlsZUFuZExldmVsKHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPGludDMyX3Q+KiBhcnJQcm9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8aW50MzJfdD4qIGFyckxldmVsKTsKKwordm9pZCBzZXR1cFJBV1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LCBPTVhfVTMyIG5GcmFtZVdpZHRoLAorICAgICAgICAgICAgICAgICAgT01YX1UzMiBuRnJhbWVIZWlnaHQsIE9NWF9VMzIgbkJpdHJhdGUsIE9NWF9VMzIgeEZyYW1lcmF0ZSwKKyAgICAgICAgICAgICAgICAgIE9NWF9DT0xPUl9GT1JNQVRUWVBFIGVDb2xvckZvcm1hdCk7CisKK3ZvaWQgc2V0dXBBVkNQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19BVkNQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19BVkNMRVZFTFRZUEUgZUxldmVsLCBPTVhfVTMyIHhGcmFtZXJhdGUpOworCit2b2lkIHNldHVwSEVWQ1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19IRVZDUFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0hFVkNMRVZFTFRZUEUgZUxldmVsKTsKKwordm9pZCBzZXR1cE1QRUc0UG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsCisgICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19NUEVHNFBST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgICBPTVhfVklERU9fTVBFRzRMRVZFTFRZUEUgZUxldmVsLCBPTVhfVTMyIHhGcmFtZXJhdGUpOworCit2b2lkIHNldHVwSDI2M1BvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19IMjYzUFJPRklMRVRZUEUgZVByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX0gyNjNMRVZFTFRZUEUgZUxldmVsLCBPTVhfVTMyIHhGcmFtZXJhdGUpOworCit2b2lkIHNldHVwVlBYUG9ydChzcDxJT214Tm9kZT4gb214Tm9kZSwgT01YX1UzMiBwb3J0SW5kZXgsIE9NWF9VMzIgeEZyYW1lcmF0ZSk7CisKK3ZvaWQgc2V0dXBWUDhQb3J0KHNwPElPbXhOb2RlPiBvbXhOb2RlLCBPTVhfVTMyIHBvcnRJbmRleCwKKyAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19WUDhQUk9GSUxFVFlQRSBlUHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgIE9NWF9WSURFT19WUDhMRVZFTFRZUEUgZUxldmVsKTsKKwordm9pZCBzZXR1cFZQOVBvcnQoc3A8SU9teE5vZGU+IG9teE5vZGUsIE9NWF9VMzIgcG9ydEluZGV4LAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOVBST0ZJTEVUWVBFIGVQcm9maWxlLAorICAgICAgICAgICAgICAgICAgT01YX1ZJREVPX1ZQOUxFVkVMVFlQRSBlTGV2ZWwpOworCisjZW5kaWYgIC8vIE1FRElBX1ZJREVPX0hJRExfVEVTVF9DT01NT05fSApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl8zNTJ4Mjg4XzQyMHBfMzBmcHNfMzJmcmFtZXMueXV2IGIvbWVkaWEvcmVzL2JiYl8zNTJ4Mjg4XzQyMHBfMzBmcHNfMzJmcmFtZXMueXV2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1YTNlNGIKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiXzM1MngyODhfNDIwcF8zMGZwc18zMmZyYW1lcy55dXYKQEAgLTAsMCArMSBAQAorysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLS09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs8Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/RERBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nzw7Pjo9Ojo6ODg6Ozs4ODo6Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo+O0Q8PTo8PDk4Ojk6Ojk7PDo6Ozk+PD45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT0zNjY6Ozw4QzxBQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWy8vLzMvLy8vLy8vLy8vLy8vLzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw7OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OR6jZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1svLzMzLy8vLy8vLy8vLy8vKysvLy8vMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2tra29vb2dnZ2dnZ2dna2tra2trY1tfX19fX19fY19jX19fa29ra2tra2trb3Nvb29zc3Nzc3Nzc3dzb29vb2tTT09PT09PT09PT1NTW1dXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZElJTE5AOTk6MztAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTUaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjY2RkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0jYuLi4uLi4uLi4qKiouHgYKCgoKCgoKBgYGBf5HT09PT09PT0tLS0tPT09vi4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOUmJMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7r6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFhSU1NTU1NTU1NTU1NUTUNERERERERDQ0NEQz9d0dPT09PT09LS0tLS0tLf6uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7QEM+Njo3Pj87PUJAOTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0NLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpp5cVldXV1dXV1dXV1dXWFFJSUlJSUlJSUhISEhEYNDT0tLS0tLS0tLS0tLR3+rq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw8PDs+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzc/R0dLS0tLS0tHS0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWFiYmJiYmJejKypqampqampqampqaqjZ2FiYmJiYmJiYmJiYmJcVFRUVFRUVFRUVFRVUWvQ0tLS0tLS0tLS0tLS0d/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk6Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Nzs7Ozs7Ozs7OzczMzM7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs7OzcvMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcXGxsbLzMvMy8zMzMzMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzLy8vLysrKysrKysrLy8rKy8vN1dXV1tbW1tbW1tbW1tXX2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo7ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7OztLTz8/P0tTPz9LU1dTPz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0NHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tXW1tbW1tbX19fX19fX19bW1tbW1tbX19fX19fX19fX19jY19bW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08CazM/Ozs7OztKrnM/Q07mf0dCcgoSKyM/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbW1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTEJAPT08PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK2nKWj1bKXmLW2k7i5r6LSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/OnZyRncOdoqar0pF9fq+w0c7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4+PDw5Nj9CP0I5NjQ4Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqYqtTPz8/Rv5igm7KtyIaZrdXSzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPj8+OjhFQD9COzc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmKrUz8/P07SZlqq4pNujmK3V08CgoNDPz8/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PDk2NDo5ODo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8qgo7/KnKWMp63Yqpmq1M/Pz9Srmn6jj6DYoZit1dWwoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD45PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDUrJuni5ah2aGYrdXUo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbX19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk9Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q07aysqWZqdqhmK7WzZ6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXEopmWm7Tao5iv2MKfodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS09PT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6DH1aKrpJrM2KGZrdqypKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtLQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09PIkY201dSxhMPWuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVaWpbTF9NSkxKVUxGQjw8P0ZFR0tIPTY2Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MjB1dHS0cPV0tHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRExMQD43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHT1NLS0tLV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj09Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRENJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZJRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0FMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhRQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f3+Dg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tva2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREQ+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29ra2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODg5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREU+PDw4Ojg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPDs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5OTo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29ra2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFEPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3F0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h1fHZ9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg2NTQzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tba2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg0NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7Oz4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubi4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTQ2ODg2ODY7Ojk8PT07Ojg2Njg4Ojc2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trq+ztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBGPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2Njg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm6ubm4t7e2tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+cnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NjQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO1tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tbS2tre3trW0tLOztLS1tbS0tLW1tba2tra2tre3t7e3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmZqZl5eXl5eWmZuYmZmZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+QkA/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utrausr7Cxr6+wsrW1tre1tba1tbW1tba1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmpqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura6rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJmam5ycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BBQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytrayrqqelpaWlpaaoqKioqKWnqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDY1NzM4Ojo6Ojo8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OztAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Slpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpaenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqalpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioaCfn56enJycnJ2dnZydnp+goqGio6OjoaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaWoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZmJeXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAP0JCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc1Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCcnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWkpaSlpaaoqKeop6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGho6Ojo6Kjpaampqenp6afm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6Wmpqako6GgoJ+foaGfoKCdmpiYmZucoaSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODk6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/PkFBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+mpp/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6elpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goqKioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6SmpqWlpqempqKdnJ+hn5eRkZCUl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+fn5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3OTk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaampaWjoKChoaCZkpCPlpuZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2dnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSk5KRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU5OTg5PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5qcnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5WSlJicmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJycnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqOjpKSkpKKhoZ6bmpmXobWemZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NjY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpmXmJmcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKCgoKKkoaKioaGgnpybm5uZn6ubnJqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY6NzU2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2goaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaCls6ygoJ+fnpyZmZqam65qdp2dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJuam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn52dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCfppKbq5+goJ6bmpmamaiERH+fnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpuam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpOTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnqCeYpymnp6cmpqbnKGjUUeDoJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5yam5ubm5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODo7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZuapmZdo6CbmpmbnZyudUlMhqCcnJ2cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8Pjk6Ojs+Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmKSAUniimZmanZugpF9WToehnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ybm5ucnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGgoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFxcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PUNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuYmJmgiFtflJqZm5yco49kWkyBop6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbW0xGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiZn5ddXXaXmpydnaKBZFlNfqKenp6dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubmpydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmaYGFggJadnJ6YdGNVToCin5+fnp2eoaCenZ6dnp2dn5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmZn2leW2V/nJyejGpfUFKGnpudnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M+Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qal5NzaGFUdpOXnIdcVlBXipKOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY6Smp6SfaCjlqScbkxPY4aGgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4Ojs/PDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz9ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CEoJ2Of2yWpZWfgIl/X3J/gIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz05OTk3NDg2OTM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE+P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5/gKKLfG5SdZyMjFpxfXx+fXyGjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODk4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfZiad1hPTHCUhoJMYG9xd4iFio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY2jjVUvMD13h3d2QURea22EkImJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KmnGdBWkg7d3lrZ0UvOFtsc5CPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mpr49Lb6F4QXt3Y2JQUFpHYG6KoaGknpuapKekqauurKWkqKuvsbSuqqyus6+srLS0tLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKN4YL/WpkN7jIB1T22OdVJkf6Oop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkp6eZnaSlo6KdYn+9wK93nqOalGVMYXhtUXSVoqKgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dQXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA8Pjw5OTxBQkVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioaKnoaaupqadnmqEnLqPptChmbGoWEysk1Nlj6CeoKCenaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq+roqKGd359cs7JsZunr2tVqrBiWoemn6WioZ2fopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PjxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7e0tbazra6tj4aDbo/NuZWQopd0VG96c257laaqp6OfnqObnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKno6GmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm42Ad3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEI+Qz07OT45QEBAP0JDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K3u7u7ubnBuLS1oIh5ZFmft8CmqJ2Id2txb3h4en2GjpKYnKKlpqulpJihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKempaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgXZ4eXhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz5DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW3wcbMz87Myb6zpJBzZlJEi5eJiYh+eHFuZ2ZsaWtxcnFxcnR8jKnExLuip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWhpKenoZ+dnpaTnKCXmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYWZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PFx9vj49rLvK+kl4h0WVpRQ2l6bG91bmtlZVlXXlhcY2lpaGVgaIm0wMC5qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hnp2loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3b21bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs6PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVejIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxr7N0dXKuaedlIZyXlFUS0RbZl5ka2VhYGhZVFhSVlhZXFhadJm2u6u0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudnJydnJnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkzW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/wsHHy8i3lHVlVVBPVEg+XmteX2ViYF1kYVNWVlVTVFdym6uwqqiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzM2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI8ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO5uMObYUlER0tEPVtlYmFoY2BbY19XUU5PT1V/tLqsrqWkoqekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnZSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcl5ecm5+eo5yelpiXk5acmZmclJadlJaTiXZ5ent3bmtpaHZaZ3N4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6Ozs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTExMLEwa2DT0ZNRTtNW19la2VfW2BZWFJNVH+iqrm1s6upo6GtqqynrZ+stLS/w765uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4yVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dmVmaWpoXmtwbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMzKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCxpZqWEc/P0deY2JqYFpYV1NVdpm2vru8urysraapu7q5t7+ztbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rraussZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWh2aWpqdW55bF5kW1ZgWUxIRDY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8HDxMbJxczQzcfMycLCx8LLy8jHzMnOxcbGvalyUEswWFNVZmFTTk9wqcjIwsTGwLy+tLGwsMG+vsHGwL63tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2tr7WlpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOi5R9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpudnpaco6ChoqSjpKKempmbm5udnpyDfXJ9eHBnYGtqd21pZnZvdGNdY1VXVVRNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODo9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPCwbyRP052folWTG+ky9TFtr+/wL+6ur21s7PAv7m/wrnBt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopycn56joKaZeXp5gHNwZmVnZGtlYmtub29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw8PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzFp3dqg5CYb6nIyMfRwa+9vbi5u7u+uLWxur+0vL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsKempaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaOgmp6gpKKjnKKho6CenJ6eqaWolX16g3huZmFlYmFjZGRqY2dkW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OztAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPTo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Aur/AvLvFvbrAxL+9vq9zZX2Ri4nRxb+/yb+wwb+6t7u+uba4tLi8tb24tbSvs7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhY2Noa2dnamZqXlZWVFlPVExGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdaNt7+7w7W6x7a1uLq8uLm2qqOYjn+Dyb+/u8G+uca9wr+8xbi3t7W4tra8u7m2tLi6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVnb2plbGhZWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/Ed6fMvce3ubettrS3ubO1sbzJw5VLesq+v769vL/Iw8XFvse4tbOzvri5uL67urm8u7q0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucWdxa3RmY25gXFVIS0pESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Yk723x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTWr3R/usjPwsC4rrS0u723ubG9w8qPQ3TNw8K/vr28x8zHx8THvLa1t8G9u7zAw7u/wr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFmbGpvdW94ZGhjXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsbJ0ppxcqvS0czKxLW6v8TIvr60v8DAeVJty8bCvsG8v8PMysfFxsG5vr3Ev8C/wsi9x8bFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0cG1tdGxtb2BjX2JiTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8TQw7q+vMS+t7zAv8nPx8jKysKHcnOjy8zLzcrGwsPLzsG8uL26sXBjYrvIxMDAv8TAysnDw8PDucO+vrnAvcPGwsrOx8a9usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaahn5uCe3qIe21teHxgcWRcX2BgVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9rDvra+wL6+uqacqbK2w7+lenZ4msTHy8jBw8DAycrBv7u5saF9c2qtyMXEv8DBv8vHw8DIwLvCu7m0u7vDw8HN0MrEvbW8u7m/ubq1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp2wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3l0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs8Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEuW2szr22ucC8q35uaG5scoGVmHN3fJe9v8bAucC8vsXEvb24sbCZkH6Am8rCw7y9v7/Dw76/yL2+wLjIvquhoaGmucHJxbiyuLi3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cW9qXGBhWlRRQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbR2gLO9trXCpYdpWl1gTVJbWm5zd4CfuLjCurO7t7u9v7q7u66km5mIkX7AxMO+vL+7u7i2wcK2wLvIrLyturifk5Gbo7e0sLS0tby5vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra8tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z3eG5yYV9nXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmohHiJoK+1nmtlZlZYX0lJTVBTbHeFpbC3vrmytbK7uby2ub60lZynlqFwrsnEwL2/ubOusr27rru7lI/O3Obi0biakoZ/na2vrrO6t7q+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybWBkYlxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fq4h8doygmWBUQ1dWSGFrVk9GSWCNoKuvtrq1tLKsvLm4tbjBvYuZsqOmcqXLwr+5urWupayzsKazuZro49vV19XPuol1amyYrKevtrOyurW7u7u1uLawtcSyvry+vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3Zzb2ReaFldXlNPTkI/SkNBS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7WRgniIj29OSj9jWkFOd4CUa01BXIGwtbO1srSvrLu6uLa5v8Z2hKqfm2Wnv7i1srGtrZ+kp6edq6K9y6uotcrPz8uZdGtscqCkqq2up7Csr7GxrbGurq+5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2dG12amxdXGtVXlxQTkhER01CR05HODY2NTo1Oj04Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHtYRkFOhlpKSlh2jYBjQFKiubO0srCxrbC5uLa7t7q9kKKyrKRzq7Cpq62ro6ignZ6dmJqus1o4S3mqxcrGooCFkoiInqOpqKCmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusayqqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWl1dG9lVWJkWF1ST01JQElTRE5DPTg4NzU6Nzw9Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+xu6qZmZVpTkBSeHFQSUlLZ5uBWUVRrbuxrLOvrqyttraytLWuqaafmpudn6aonqCoqZ+hp5ablpeMrH0yUmhWdK+1sZ6MmqKim5ado6KfnqSgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqaSpq6aprKumoYh5g3x2f3pjeG1uXFFpVVBPR1BNTUNQUkA/Oz40Ojo1Ozo9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqLzCq6S+aUVSnIJRV0lJX0tTjmFkYoCutaqytK6qq6+wsrOtpZ2Rl5OPmKCfoqCco6SfnaiTmZSVi6BjXoaHdFqMo5mbmJ2hpKemnZ6foJyhn6Oop5ynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJaTj4+SkZmQlpWYl5+Ym5qbpJmXlJWanaCdp6iloKOioaOfnKCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fYB1dn1ubHtkaFZTZE5KSEdPU05LTkg8RUA9MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutra6ubq3t7uuqKChqaGqxr/KoVBBcp54T25LS2JldXNgW15wj7GvrrO1qqasrKObmZSNkZWXmJicn6KinJ2knpqklpaWlI+Iboe6v6NjZ5OHlJGOnqOipqKdn6aenZ+jpqieo6afqp2qraqup6iwpaOkpqespqGlopuZnq+orrKrpquqoJuYmJiVk5aak5WWmpabl5iYoZ6cnJeboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GfoKWipqCJfIB+d3l9ZXl5YWJTVmFJSUtMU1VKU1FNOT5BNjc9NjU7Ojw8OTs7ODo8PTs7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NTU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWdo8fHj1dTSWSjXWV+b3JdUGtjW2RfXWuPtLCwuKymoZydmpSYmpmQjpGVkYyOjZOZopyXopiZlpaZiHqkx9bVn09sf4mAg5SamJuro6Gwo5qjpqaqoqGqoqmkqLKrsbKruaimq6erq6isrKehoKOxrrKxtKqyr6OZnJ2eoZibm5qYmZuVlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWooqejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2iCbWVcU1taTVJLT09WTVRNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6rpI16VWlydXVxYnZ2WFdjYGNnWVhXZayurK+nn56ioZeRlJygnJmYkpOfnKGjmp6alp6ZnZaal493n8rasrJnRmZ6eH+DgXuKta+ms6yhra2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7W4s7itsrSkoJ2loKyhoaKhoJqZlpagnJuYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGDf3x4dmp3dV5tW1JhSVJWSEZWV0tDTUg9S0k4RTw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqK6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuioaCkgG6CcGBjWExbU1pNTFBYUkhNTUeXrKqppaCfmpGSlJiYlpaVjIiLjpWdnJ2cnpadmKWdoJqTcIa9slOKdXlxZWlqZV5Qa6y6rLS0sLewrrSppqSlrKm5s7W7w7zDwbe7tquusbi3vK+zsLXBvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaign5+oqKWln52qoqKem5+ooKSnrZmgo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mGhX52cm1pd21obl1YW0NXTkpHTkdDR049Pkw+NTw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqamUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnYpiV15lYFdNUUc+Pj9DQz8+QlF4qK2pqqagnp+ho56fnpudnJSTlZWenpiUhZ2Zn5mpoqygkoJ7iIN6gZClh3NaS19aSUCnwbW5u8DDub27rK6nsa2xwra4wsbAyMrAyr+wubm9uMK+uLS7xsS9w7y4tKqzraqztK+zrqqvo56sqLeyraOwpqGjsLGusKSlrqOhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJra3VycWhXXFFGVUhESlBJP0ZCNEZIOTY8Pjc7PD48PDo6ODk8ODk7ODs6OTs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw8Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5V9YF5lYFFHRD1DP0U8Pzk2Tn+qs6ekpKKgnqWspp+YnZWSmp6ZlYyKhoiGeGyGn6Khqam0kXmMh4eWo6SmiGJua5GugExEt8S/xMjN0MjLw7K3tb6yvsW7vszNxszMzNLHvr/Awr3Hx8K4xMrJxMHHv7q0uru0u7ewtrKru7Kuu7fAu7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5WUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtmWlxGTE1FRFRNRUJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo6Pz89Qj4/NzpBQD08PTg2Njw6PEA/QUFBPpKroKeup6KrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9c2phV05FPklZfHBiQj1cjq6soZmbnJ6emZeXmJONj5eXlI+NkIyCg4J2cnBsb42kq62yp3N2eW5sbIKEe4VZVnmMwKdhbszExMvQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsbGysjPv8nRzcfGycbCvcTBvr6/tb6zrb/Aw8TIxcjEr7+5sri9xMLBu7y8ta6np66ooKKppJqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXVzZWJncm9nX1paRE9NQ0ZRSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6Oz5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOem52Wa2ZdVElEQD9LhZ6lmoSgsq2jnpyfmpiXlJOUl5GQkI2IhISJh4OAgYGAeXFxbmp2obe1mZdvZWZcTVaDgHCQemhvX7SnbJ/Tz8TN1NXY0dfNxsfJzMPFys/K0tfS19LV1tPUyMzHzM3K083O083GycrLwsfMx8nJxr/Ds7PIxcvLzM/Hyr++v73Bx8XMzMnJwMPArrCzqJ6hqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3dqZVdYUkROR0BJUUM+Qj06MjJBPEU8Nzg8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnWNTTEpEQz9CUq3RvbKvppycnKCkoZ2blJSVlIp9eXFsZWJocnBye4WKgHVwbXBybYOsmIuaaVdjWF9kcIBtfo9yT3ObmYDG0NHCz9PW2NXV0svJztDLxs3SydLV19nW2NPW2M3Sys7RzM/RzdPQwMnIy8TMzczP0MbHyLbAy8DSzczQx8rJwMTDyM/N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYWVzY11SXEpLR0FGSUo/O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpaWgoqNbSUBBREFGUHWxr6aalJefnJqgoJ6bnZqViXdpZGFfYGBfXl9fXWFsdXNwb25rcG5yho2LjmJPXFRcYFFmXlhlWk1qd3mH1dHQy9DN09fW09XQz9LT0cnT0cfQ19fY0tjS19nU1szPz8nN0szP0cDHxMnHz87S0dHIzM3Ay83G1M/Nz8jFy8fHyczL1NTR1c/SzNPCucWxpai1rqibqKulnbKosLOsrJOPk46Iio6Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUWBKSkNGQ1NOPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI8Ojw3NDo+PD9APUZBRD2CpJygpZ6lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6up6qooaOsZ0M4PT5EWIKqqJ+XlZeZmpyfnZibnZN9cWVjYl9fYV9eYWBeYWBfYGVtcHBtam1vc3R/e3FrZVRHSVFQR0U9SlBcX3Vbc9XU0MnOzNLW0tHWzc/V1dHF0dPK0NTV1s7T0djX19fMyM7Eys/Nys3AysHJys7P0MzQzs7Mz9DIzNHRy87Lw8rIys3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO/u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSUZGRU1ZRTtAPTMzPDw4Nzg2NTs+QD05PDw4PD45PEA7QDo9OD85ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+ZpaegoKOnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksnxIRkI7Vo2hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYF5fX11cYm1ybm1xcXJxd2lPfo1qUVhLV09LYEBLW1JtYnbR0s7GzczN1MvO0szK1tbQzNDTy8zQ0tPKztHV0tXWysDKwsbNw8nKw83ExsnLy8/Lzs3RztTMx8nQzcnHy8bHwsbKzM7R0cfQz83OzNDFx8G4ub3Ewr3DubKyvrC7w8O1qpiloZiWkZWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTUlRUUI7RD87Njg6ODo7NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9vdo+ajYyXlZCTkZGVlpWQi3tlYmJiYF1eYWNiYF9fYGFhYF9dW11ncXFvcHFtaW5wZn2LemZnW0pWXWM8QVZLYWl3zs3GxMbNytHHys3NxdDSz83M1MrHys7Px8bO0svQz8W6xL/Gyr3Dx8nOxcPIwMfOyMTNy83QycXF0MnGwsbJxb/ByM3MzM/DyszJx8zQxcXIu8fDycnCz8C9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdJSEdJTVVHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KGoamTjY2Wj4WDg4OBfYSEf3NfW15dXmBeYGNkY19dXF5fYGBfW1pcYWtycG1taGdpanaDkZJ9aGhUV2ZQQkVcVlddecrEv8K/wsfJyMjJx7/Ey8XHyszJxMHKycHBy8/Ey8i/ucG8xsi+wMbPy8TAw7vKx8i7ycbFysG+wsvGxcS+xr69wcTGzMbFvL/Kw8XH0sXBycDKysfIxtDDw8bDrsTLx8PKt7+8urOprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdDR0RMREZTQDU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL64vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bV56e52RipKWhnqAhIV/dXh1cnBfWltcYGBiY2RkZWRgW1xeXV5dX1tZWlxhbnFtaWZna2hsf5KdjnNlWltTQUJFT1JTVpHCt7i7ubfAwcHDvb24vL64w8nExsG8xr+3usPIv8HJu7a7u8XDv7zCzsPGvr61wb7Eu73HvMO6tb3GxMLDt8C2tr+/vM3Evba6yLu/vszEwsbDxsnHycbQxsLMx7LHycPOzMDFwr+8srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRkJGSkE5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1q7e0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtbU1dfNys/FycXHwbrFvayup2Bjd4CSi4iLhHh/hoZ/fYN7dHRjXFxdXl9gYmNiYmRlYl1cW1xeXF5dWltcXWdyb2tkY2lpa3KJopJ/ZllRUVNOQDtHTHCgs66ysrKysrq0u7C2r7OusbrBu8DEu7+6tLG6vsC4x7i0vLbBwr24vcbBw7u1r7O1u7+0xbi7tay5vb7AvbG6trC3urPGvbevvL+1t7XFvb7DxsDExsbHzMW/xca7x8u/z8nHw8XBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpHQkRBRUY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJpbZ2+IjoWIiXp4foWGdneBfHNoXV1dXV5gX2BkYV5jZWNfXlxbXlxdXlpbW11fa29sZmNmaGdqdZGPg21fU1hkXU9ERF2VmKOmraqoqqeyrLSvsaetpquyurm1wrm5ua+qtLm6s8G5r8Cxvby7tbvHucO2raqosLLAtri9sLGosrO1u7yrrranrrauvLKwqriwrruuu7i7wMC+usO/xsPFwLzGwcfKuMXHxb/Hw8K5xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMTE1KRUFDP0ZBOzo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc3Sy8PFwcTPxs3Bw8a/xMTDw8rCycq/wLzCurO1tcOvqrGTW2l+koiOj3t4fYmFeXuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWlpaXGNtbWZkZGRmZ2p4h35vaFxjbGlxc4SUl4+SnaSqoaahqairqa+ipZ6prLS1sLy4r7aup623s7O7t7O8r7i5tbK7wbLBr6Wpo6uxs7OovaqrqKusrrW0pqiuoaSwqbOmp6iupqi3rLGzt7q6u7K8vr6+xL+1wcDHyLe+v8W3xMO/u7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlNTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8HLvrvJtr3DvrrKuMHDwrW2vLaxr7W8rqirk2NtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1hXWVxfZWpkYmNhZGRobXp3cXFodH9/aGuTmpCNhpibpKCgnqOjpaWsnpuao6WrsK+2tqavq6aps6uzubC1ta22ubKwurqxtqWgpKCmsaisqbmqpaenqKezraCnpp+cpKWsn5+npKGhsa2trLK1s7Owtby2u8HAsrq+w8GxubnCs8C9wLW4u72+vMLHxMPEv7/EoIR4cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk7Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbq9tqCelZ2gprq2q7Ozu7PEz8nLwsW4t8fAzL+4yre7xbizxbizv8CstryyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYWBeXFtcXFhZWFhYVlhaXV5jYmBjY2NiZWZpdnh0b3yDfFJnjZWKioCUmZyimZydoaOhpZyZoZqdqa6ssLSiqKipq6uktListq+ssrSus7WvsKqfnp+korKkpqq4raKmpqCoraqZn5+emZ2fpZqZo5ycnrCprKiqq6ytsLK4r7i5urC2vLu6q7OyubO9tLeysbW0v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTYzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uci4uL+3ssK0sbu7rLq6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFdXV1dXWFdaXWFiY2NiYmNkZG16cm53fmc9ZYyShoqCkZmaopuXmqGkoKKanZ+Zl6ysrK2woKShrKqmobSvsLGsqK+yp7qzprWgop+co6Kto6Kqtqqio6aepqajlpidl5manaCal52cnZytoayoo6Smrauys6q1sLKrsrm1r6qvsrKzt7Ovqa2usbexura6vb+3s7GUhnp2Zl9mX1tZVlNaVUtbUUxKRUhLSUM9P0JCQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+ynaWjmKWxw7W2va20uMLMyMa/xbbBwMfOt8DDvbO5ubLAtrG5u62yta+fmqSqoJSbkHh/g4R/eG9xdHFoZWRoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVVdgYmNhYWJgYGRmcnBrcntQOVt9jYaMhYyYlpqZkpydpqGcnaWbmpippK2uqZqhobaooJ+tqLWppqetsKS3sKO3oKOcmZmqpqGarbmvo6GknKKgn5OVoZSWlpyZmJaXnJWfqZ6qpKKdo6qqsK2otKyqpq2ysKWrrbOxr7Cvr6eop7KtsbSwu7S6t66jlIJ6d2VfYVdZWFNSVEtNXkxQTEdITUxFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0usKxvre9rZ2np6Kqu8C9wLmutLjBzMjFwsO9xbjIzLLBwsGuvLu1u7y1ubmwsLGqnJqhqpWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtbWVtbWlhWV1dWV1hXV1ZVWmJiYGBhX19gYmdwaW5uOS4wTICJjYeKk5iWmpGbmqOioKSknZudpJ2praSeoKG1pqCgoqeyoaWnpa+lsa2rtZ6gnZWVqaGilK2xsZ+io56emZuTi6CTkZOYmJKXmJiXnqebp6GimqSlpaukpbCnpaKrrK2mqa6vr6uoqqqzpqarr7Sxrry2sbCvn5J7eHNlYlxbXVhOTFFIUmFNVlBPSk5PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTs3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sba9sLyxt6yepaasuLu8wcW6srm1xMnJwMLGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZoKSMinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVlJUUlRfX11eX1xdXWBhaGtrYS4fK0x1hIqFiI6ak5qRl5uhnqmioaGhoqCap6iimJyisKmgoJykqZ2nop6srKqpra2ioaGVmKKanI+rqLCcn6KfnpeZk4qdkY2Sk5WQmJiTnKGjnKShopWgoqSlm6OrpaKkqqSrraWtsqmmpaamtaapqK2ztbS5uq+rrJ6Mc3FwYVtXVlZSR1FPSFpcT1JKVEtTTEVHSkM4Ozs9PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Gtnainr7m5s8DIurXAr8XIzLrByczItcm9sb7Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5QWFxaW1xcXF1cX2JpamI9Kz1MboCHg4eIkpOblZWapKSmpKikp6SglqOropOXo62nn5uYmp+erpmcqrOfpaafo6OhlJSblpaSqamtmpyfoaCblJCMmY2LkY2SjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq6+jrbilo6SirK2qqKuvtLeyvbWzq66YhXV0aVxZWVNVUkZYTFFbWE1VT1BMUVJJT0lCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ojo9Njg6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zMxsW4wM7Px7PEu7e7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFBYWVlZXFtaW11eY25zU0RQW2B8gn2Jho6QmZiUmaakoqqopa2hpZacqZ2Tk6KnpZyXj46Zna2WmKeqmJ+dlKWgnpKRkpGTlaiqpZqYmZ6el46Mi5OFiI2Dj4uRlZGgnqGkmZaflZqhop6Um6WlqKiooLCwprG9p5+jrLSqrqevtLC5tcCxrrCrkX9zdGJXVFVOUkpHVlBSUkxMWE5LTE9TR05LQUNGREM+Qjc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxtri8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5xam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRRTU5NUldYWVhYV1pbW2BqaWZuX25can94iH+KipCTkZejlpqlo6Kom6SVnaKZkIydoZmWloWEkZqjj5WjnJWWlYeimpuTjI6KkJqlp5uVlZeckZOIlI6LgYuNgJCLkpKSoZqgopaUmZiVoqaajZmlp6inoaC0sqizuKGdo7asqq2ksrKmtby0q6yxoop6dG5eTlFRTU9ETk5OUEtGTk5KSk5OUUhNSkFITElIRD85NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4NTg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKqloKmmpLOqorLEtbWys8bFt7rDyszGs6y6vbS4wK+tqbCepq67r62gmpuelZWIfIRuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlJTUFFUUVNVUU5NS0tTV1dWV1dXV1pcYWVZX1xsX154b4N6hICLiYuWm4qVl5+eoJajk56Zk4qEl5mLc4yCfY2WlYWSmZCTjo17mY+cjIKJgIqYoKOekJOYloWOgpR+fnOKjnqQh5OQkJ2bmpqSlpCejqKjjomaoKGjpJuitK+sr62fmKa4pqWwobGunLG7qqmvqZmEeHRkVk1SUFBNQ1NOTFBNQlBRSElOU05JSkpFS01HS0s+ODQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpqWmpqayp6a0wbivtLDJxLi5wM7GvrOtu8GsrcStp6Gmkp2mt62joJGWl5KQfnh/ZldWX2dmaWdobmNpaWZiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOT05PT1BTVFFNTUpHTlNTU1RUU1VYWlxoWFpXaW1lZEVPaYh5jX6FlZCGjoyblZqUlZSRjJSIfpKIXjtWbnuKk4mAjJGMj4aGcouEloF5gXuGlJ2Vg5aOkI+Dhn2TeHFvho1+iYGQjpCYmpmTi5CKnYifmIiIlp6aoaCXp66prampnpats6KlrZmtq5iotKOpraKTf3RuYFtOU1JXTERUSlBMTEZOT0lFTFFNS1BKSU5QR0pKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebegoq2hpqaqoKepp6OqsKintMK5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpmHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtIRkhOUVFMT1JUVVdZYGBUUmJuY0U4N3mNiYd1gI2GgIWIlomUlYmRhYOShHeHfl9JUG13ipGDfYSMioR/f21+f5N3dXZ4hI2acFGNiIqGfH55lHZnd4aIfoqIlYuOkZOXjISKiZWEm42ChJKblp6dlKSjqKmlpZ6bsKqhpKSRpqqWoqqcoaaninduZl5cSFFRU01JVU1TSUxLT0lIRkpOTE1VS1FSUEdKRD03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnp6+sqrW8tri3s8G7tqe5yLi2qKi1tqqyvKeelY5/ipSplpWLf46Eg354cW9YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlOUVNTVVpmXFRgZ1dYUEqIfIyAbHd/e3d/h45+j5mLjniDjX5zfndxbXRwdI2NgHp+iaqEentodnuOcHJteIGLjZJ4e4B7gHdzcpJ4aHWFhISFfJWLiIqNi4B/hIuNgJSEfICPmJSclpGfnameoKGdoKmln52YjaekkqCglp6epIJzaWJdXUpXUFJIS1hST0pNTFJKSkpMUEhMUUxSVU5GSUI9Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZicn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6Rf3eGeHx2cG9qWUtISUhHRUhIUFRUVFdXU1VVVVVWV1hXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE5RUVNWXmJeXGFVZX6NkomKc2ByeXBzeYOLeICYkn5uhI16dHluan2tfHSQin56hpKAfH90ZnV8hmxvaHN8io2IgG16cX1xbXaPcWhxgX6OcESLhYKDhX93eHqMhn2Me3V9jpKPmIuSm5ujlpmdm52eoZyWjYulm46dl46WmJB5b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUU9JT1BMRkQ9Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0tLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rp6mwr7Gru7irur64s6ynm7CnrJuPlpylqaShmJqOhJJ6iY+Li3ZxfG11cWptalhLRkdFQUBDREhMTE1RUU9RU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFellKTk9RVFhcXFtXVneXm7t6a29bc3BodnOCi3V4iINsaYmPdnJ3aGh+gXGWkYqAfZV/SZKZbmd3foJtamRseYWQkoZrc2x8bnJ8hmltcH9zjYmFhnt9fnt3cHV0hoJ5gXlwfI6LipODlpaYmpCTlpaZlp2WjIOJn5KLko2GkJaAb2pvb29ZVlhUUlJZT1JVVFNYVU1PSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYmp+krK+iraqota+urLO/q7zCv6aimpWkmJ6NhIuUoaKYmZGTi3OOeoCGjIZ1b3RscW1la2tZTkRGQ0A8Pj5CRkZHS0tLTE9SUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSk1OT1JWWlFWUlCYeleQX2hvXXZpZ3l0hYRxfYOBcWqWj3JxemhonI5MeYSRiISNZjF2h3JrfX2DdGZldX6EhIWAZmlsdWtwgHxocXF8bpONj3t0fX1xcW92bYN/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW05QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo6VmYuOhXqEkJiVjZGMkIdxh4J0h4yGenBzcW9wZHBnX1RGSUM/PDs5Oj9AQURDRUdJS09RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUtBSFBGXaWpl2ZxbmR1Zmt8e398dn+CgnZvnJFxd35xc5KGNXGcp5yNoKGEooV2cIZ7hnxzjK2NiYFoZ2JqbnJtcIN1aW9YdXCOm5F2bX97fW5ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2OfHRycW1gXF1eXFpZYV9STltaWFdMSElGSUg/Q0FCSD9DRD07Ojc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTAxMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpGBkoeVkZ2kp56vlaW0qa2xrsGyu8HFlo+MlI+AiHxugZCSiYOKh4+FdYODbJWIiHx1eHhteG53ZGpeSVBHPj83NDQ4Ozo7PT5AQkVIS0xMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1NUEw3Q01QUUJGe2l0cnJtdmZwgYF2eH9+e4h6c56Wd3yEf4OYg5qcYIWpnpyLg5COenaHfomIjnOKl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVnaGBbXF5TXGdeV1BUWFtVR0pKRUxHP0ZAREQ/QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTQyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2eppGgq6CxqK/AsrvFupaOkZOHeoZ2a3+LkYN9ioOOjHiDgHOghIp9fYF/cIF+emh3a1JYTEBFMjExMjc2Njg4Ojw+QUVGRkdJS01PUVJTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklLTU5RS0pTWlZORl93fXF/cXRqdYiFdXeEgnqRg3SdloaEjJCTpIysqUiGrK+uioGAlIqBioGEkamHgZiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZHbYB3cnl2aG1rX3Z9goh/h4SLeZScm4mKiJF/enWKdnx4bW93foF1dXNtXF5eXGNkWGdmXFVQUFdZUERMS0ZPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2Nzc4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmEh5GOlZeSlqCdrKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzg0Ll2WcHOjVUZJS0xNT1dfVmlXWFphf4d7inh8eX2KjHmAhIx8lZJ/nZ6VkpmZpKySmbuxprrHw6eLjKGljpOJgZF8cYOen5Gdf3eFhYqPh5BpaHCEgXSMhoSKcoaCd4eAe3aEfG12dWZ/lI6GiIiGh4egqqKWiI6Xf3qBiHp5b2dreH58gHVsZl5aW15qXmFnYFpQTE5XUlFJUEpETkdDSkRDQEREQjw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVvZneCen+Mf4GQjoqamqScoaymqq6wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOhICBjIqCiY2Df4p/bHBqXUJBNC4tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlRSU1NUUlBPSEVCPDg3LzlDPjw8NjMubJOXTVBISkxLSk1VX153Y2JnbI+Pgo+Ii4OGiJODjYuZh5ycj5+moqGpkqe0oafBwq3Hr3i5lJp8jaGemISThYKOoZ+UmZGFioWPmpGWbHB1ioyClYyNjnePhHFthYGKlpGChYhyiKCVhpGJjY+WpLSom4yUooKHkoN9f2tqanyCg4N1Y15lYFtobF1tbF9XS0hOUlBOTExGSVBDRE5GQkNFRkM+Ojk2PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnB2kYZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXmAkoiRkn2KhJiSkIOAgIuMiYaQh4SJhnh4f2dNUj4vLy4sLy4tLzAwMDIxMjU2Nzo/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDc1Mjw/UjVISEhMS01OUV1pgXdtenWSkI6cm5mSmZCckJeapJqjppylqKeos5aqvaq0xsi2yNDPvpugcGmqqZ+Ek5KFnKCam5mmkZGIlaObmnd6fpSYk6GTl5eBlJ57d5WSqrKIjJaefJOdm42RlZijoaW1r5yRmKeGlo+NgIhsc3N9gX5zamJeYmBiaGVgZ2dcUkVKS1BPSUpMRkdNQ0hMRkZDQkdFQjs4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbXxhd419e5OOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Ljo18ioaPkI6BgoCJi4qFkoWDhomBgId2XmJQNTYwLTEvLC4wLy4vLi4wMDE1PkFBTVBSU1FSU1RSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUlNTlBZaX6JcoyClZudqrSwnaelp6OksKetsq6uqrivsbybscOquMnLt8O/t6WisLOsrKqji5aYhKWmoKOXgaaZjaKqqKWIhZSkoaGqoKSpj5uwi5Wjpre6m6Cir5KinKGdj6Khq66rsrShlKSph5mIkomVeXp+hoFpYmldZmNfZGRfZ2dfW09DSUhTTkZIS0ZKR0ZGSEFLRkNGRkI7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2luWHmEdoGThYeCnIORkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GOg4SBi4WGiJKGgoWJh4iHh3FuYUBFNjQ8Mi8xMTAtLCstMC4uND5DQU1VUFJTVVVWVU5bUEdIRDw+PkZIQ0RBNzs8NUM7PUZLSUZIUU5QV32LmH+lm6agp7fAvKWuwLOor7yvtLqyvLK/tLm5orfEp7XIx7W9uLSoo7OtsLGbmZKan4inr6ullHafpJehrLK0mZaqrqivtrqyuqyvtaKxq7G1u7a0rbSfpqeippmor6yxuLe3p5q1qIukjZCSnoZ4goV4W2NmV2djYmRhYWdhW1RKRERMVFBISUlESUdFQUBAS0RCTUc9ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiYld5dXGBk32EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeEgY5/gYmPhn+GiIaKh5F7eG5dV0BETjw2OjQ2QUI3NjQwLzZDSENRW09RVVdVXFdQX1VJS0tBPz5HS0ZFRDs+QDdENz9CSkpFRlZTT16Knaeeq6y4q6+4xcSxt8G6sLC+tLW+sbyutXOvsqS5xKOvxriws7Gzp6S1tqqwoKKWm6KSpbCupq2rp6SYoa20u6Kosrq1vL/Mv8XFvb2zwbe6t762ure4q6uwpK+orL2vvLrBwauYuaeUrY6Xl6mIfYN+bVhlY1lsZmtmV1xkWVZTSUdGTFBHQ0hJQUhEPj9CQkxAP01EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpwfo2EgI6FbnpzeIdiuaGZo4mUlJaSlJONj5eSh4d7hoGNlYqAhIGKenyKh4Z9ioOCi4SWfXh6dWZQXGRHRUw7UWNhW15TRz87SFBEWmNRUVlYWmdZVGBfTFJPREE/SUpIRUVBQEM8RTZCPkhHSkxTWlRdj6ixr7Wywbezt8XJt7m/urWzubi1vLK4sMRfc7CksZqdqryopKirqqOisrWhqqiflZaemKCupaempZ+klKOosbSosrO9tsK+08nJ08bCxczCysPAvby+u7u2tK+4trbCucW9wsevnripoauNpKe1iIGBdGFkY19ZY2BqZ1NYYVZSVUlFRU1KQD5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtKy9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWQc2tycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaKfoOAgnh7i4OHe4t6gYqCl350fXpsZXB1WV5cUGVkYmBlZF1cWFdcTWRtVVJtbV9uX1hnZFRZVUpEQktLSUZISEhHQkk6RD9IS1NUVVxaW5C0u7S5scG6tbXHyLe0uLS3uLG1s7KttLWYY3SnnK1wXqKsm5egopuknqqllJ+fkJOOlZiYqJ6mn56amYOkna2lqrCtuLC9udTRz9fQyszSzM/Nysa/vsHJvMC8wMDExMTJvsfNsqO6sLSumqu3u5iAfG5fYl5bYGNaZGNRXGBTUUpDQUVGRTxARj9BSEI/Qzw6RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVtZaV9vlpKQlG5rb3R1h7SsoaGfi5mcmYyNlZGbkoWKin6IhoyQi4h8gYNzfIqDhXuJdIGKhpV/c3t5bG11e2hyZWlsaWZqamlgZmlpbFptc5atpLyIhmdcb2ddWVlUSEtOUEpLUEtTUUlMQUpGSk9fXmFmaWCWs8Ktta+3ubKvwsSzrrevr7mqsbClqrari7WnnJqmmk2ZnYyOn5aRppillYqTk4mQiY+RkZ2boZealZaHn5qnm6yvqbCotLTU1NTW08zQ09XN0s/MxMHJ0L3JycrJ0cbMzcLP0bevw7zDuaS1ucGihHFlXl9fWmJZWmdaUV1YTlBBQkhFQkg7QEM+QUc/P0E3O0M+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWco+QmIJncW94eYOhqp6ml4yam5eLjZWRmo59iYuFjYqKipCHfISCcH+HgYZ7h3KDkouOfXF4dmxweH5xem14c21pgXFtY2ptcHhpd3x+y77B36dtY3huY1thYEpQUlVOWV5PXVxOUE5UUFRUXG5tdoJxlay1qbGkrbOoq7q+r6mzpaO3paqtoKuzoo2wrZmXmIyOkZGEjpuBjaaRnImDi4SLiYSLhJSWmJeUm5Gcl5man5+rrKWooqytz9LV0s7M09TUz9TRzsfD1NHGzdLT09bM0dHE0dbFwM7Hx8KovbbOnnxxaGBkX1hhVF9bUFFUUU9IPkBGQUJFPEBBPkRDPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxVUU1OWnSGhYp3bHdwfX5/oZ6eoYyMmJOTi4yTj5WFeYWPkI2LiYiQhn6Ce3F+gIGHeoR1hZOQiH9vdnNsc317d3tzgnhya4FzcmlwcXp5cnq+y5p9i7GEdnKEdmdhal1DWllbVmVjWGNqU1hcXWBjXWN3en2LgZeoo6OfnZ+mpKmut6mlsqGhrKCiraGmsZ6IppqTkpGJjo2IgZOIapWijJmEgYZ+kYODk5eti5WNlJmOhpKRnpeosKKhoaWkqcnNz8jDzNHV0tTSztPNxtbSzNTY1tbY1NfVydTazcjX19HKq8LCy411cWViYVpWW1RdUUtHSkpKQDs6O0RBRDxCQz5HQj5CQjo8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7T0xGSlhwgHV9aHJ4coKKgJ2VnZSFi5WJjomIjYaOf3iDk5iKjIiIi4h+gnhze32CiHd/eoaRlYCDbndwbXZ/dnh8dIZ8em2HdnRvfXaEdXh7nbWMO0GKxaV+jHxpZVdJQ2ZjZWNnamNtd1teZmhrbmhtgIKHkYqcnZ+ckJaXnaKjpLCjo7GeoaScn6iforGbhZ2RkZKQioqKhoOPg36cm4uNgoSFeZR/gqmVo42SipeSjH6Yi5qSq7OYm5yonKe+w8a5t8fO0tHS0MzSy8jUztDV2tfX2NTZ2M3Y287J2drR1b7Ky7V6eXBnX1tUV1NcWEZHS0lFRT06NzpAQEI5R0Q/RENBQ0I7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjX2XkZ2LfoeSg4mGhImBh3x4hZaWiY6Ch4WHeoR5cXp7g4V1eYWOjZx5i3B8cHB6gHF7gHGDh4Fujnp1d3x8gnV+fIaHr3NYqcK2jZGCcG1iPV5ocnBxcG54doFlaG9ydXhxeYuGjZORmpWflIaLkpqfmpyonqCrmqGZmJ2knZ+rmYqZi4+RjYR7h4eDhIuNn5mTiIOHfmyZeoSZhoiTjI2UjIZ8nImUkK6qlJaYn5mnr7a9qa6+x8zJyszL0MnD0srU19nX2NfV29fT2dvV0Nra0dbI1MqWfH5ra11cUVVUYUpDRkpIPkE+PTc6PT87PUc8P0FBQURBPj86ODdEQjc1NTQ3OS41NTY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEPkNHUmpebWRiZmt2gIhxkZCagHqAjX6CgYGEfoN7fISYjYeLfYWHgHeCeW97e4aBdHmSno6gdo91gnR1gX50gINvgZCCb5KEdXyBhXp2hnuJt8Wkwcm5gZabj3dwZU9mY4F6gXeGopCKeHl2e4N/e4R2bZOWk5SOl5CCiY6VmZaVpJuWnpWdkpGWop2YqpWQkImMkYKLg4iIgYWPkZ2amYiFi4GFl3qIiZ+XkIiNiYuCfaGJkYy8oZiTmJmdqaamrp+otr/AwbnIys7OxM3K0dbV1dnV19vU19na29fb2tnYztvGiH18amxoYlZZV1hOTEVOQzs9PTw4Ojs9OT1ANj0/Pzw+PT05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzOTU1NTY0NTU3SEg9REpFNzkyNTtIPjs5OjdJUF1bUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bIqNknd2eop7fn9+gHyEen2BkYmEhXqEh3t1fXRtfH2Gf3N+kp6RnoKQe4Z+eI9+eYqKboKagHSZhn2BiYV8fpB6j6mOj8OhvYyco519iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CRhIiKkJKUjZyZkpOPlYyLlJ6bk5+UkI2Nj4p+jo2NioOIkpaZnp6Ii5SRnZGBin+lmIiEjYGFhIGlhoqMt5idkZWWoqehnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuHt8e25saFpiXVRRT0lETEI8PD45OTs6OTk7PDY/PT48PTk5OzszN0Q/NzM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw6RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PUNRU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97h3p8e4uGgn10g4V5cnlzbYB+hH53hZyhm52UkX+MiICYiICckm+IqIV6oYt8kY2DiIScfZqQiYyjo6CQpK+gipCLhYuBkoZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlIuGh4uSkouTk5OOi46Jh5WZm46UlZCKkZOFf4qHkYyKiZyWmKGhhpKdlZ+KiYiNm5CDh45/goeGpIWMkbKYnZKVl6Gin5mSnJ2osritpr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19bZ2aBygHdqaV9gWlVYWUNASUM/Pj46NDg6Ozc6OzozOzs/PT43Ozo6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNjem1hfpKDbm13i3h5fnqBfIZ7e3eGhH9zcIWCenV2dnSEgoR+f5Kmo5+lopaKnZCVl4uKp5dzirKNhKiShJmThZmMopWfmJKImp6jk6mwoJCUkI2OiJaMbo23hZrEyLKboaWbnJiWkLGRZKTNyJWOhoeIj5KMjJGTiISJiIWVmJmOj5OShpOWg36Pi5mHjZCqlpaioYiYnpaaiI6Hl5eJhI6MgX+Hj6WJjpOompeTl5mhmZ+Zk52bo7O1pqO8wr7IxcXJyMnCy9TNzdSp0tHW1dbY2tTS2c6FdYNrZmFgYFFLVlxCQkdDO0E9ODM3Ozw6OT02NDk6PDo4Mj85OTI6STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfHxtfYh4en56gYGDfnZ2gIJ7bG6Kfnl8d3h8hIaLfoujtKikq7OhlqegpqSWla+ig5C4lZGzmoyhoIykm6+jpJ2YkKiXqZmusKSXlJWUkIuYmpagwI6jybirmqOlrZmRm5yynYaFqKKcl4WIiI2Ui4qSjoaAhYaIkZeTi4qTkoaTl4WDkI+bc5CYspWWo6CHm5qTj4qQipaaiIqWjYZ9jJieipCQnJqZk5mYn5SgnZSem6GxrqOkuL+0xMfEvcPDv8fOy8nSp8/M09LQ1tjSz9i8dX16YGNYY1lSSUtPRkJDRDU+Ozc2Oj87PDc9NDI2Njk3NzQ9NTs1PEs8Pjs8QkE3NTw7NTI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNXF1ZSmhhO0iEi3p7bYWGeXyEeICEgX1weHx9fG9yjHl9gXt4houJhoSTqLytqbO9sKWus7Spo6KwrYqatZ6juaWVrKOXqa24pqSjn5mpmKqksLGqmZiclJWRl6CXmru7rcqhaba4qrCVmJ6jq5KXvaNeqbKCiYmMlIaQfI6NfIOFjY+Tk4iGkpWLjpWMioyWmJGbmbOWlKqdipuUkYyQkYuYmomRnY+KiZWfoY6VjZeZnZKcmJ6UoaCUnJ2mrqiipLO4q8LIxLW6vbvGyMjC0KHGyc3NxNfW0MrUo3N9bF9dVmJTUUhEPjxDQUE3Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGdIYWBicEpAi4l+gHOHh3yBiXWBioN+bX18fH5wd4d3jYGHe42PjIaMmqvDwLC9xryztMG9tK2ss7eMqLKurr2rm7qjqK25uKunpqKho6Oqr7Kxq52co5mbmJeeoqWlkqO5rqi/u6ytsrmlo6d9iIadrbywgouLipCDj4ORjnqBhpCMjZuHh42WjIqUlpOQmZabp5mwmZCqnI6aj5GOlZCPlZaOkKCQiJWbo6yVlo+UnJ6UoJ2bmJ+glJqfqKekoqOws6bAxsOwsLu2xcXDv82nx8PHw7zW0MzEyop3dmVfXWJeT0xDTEBFRz9BPkI8OjQ+QT09NT02PjMzMzI0MkExN0BCTT5HQENOQ0E9Qzw7ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxpRl9pZ1tdXJOMjIh7h4uGg4x1hZCKgW5+e4F+cX6BepR6kpSVmJCTlqi0xsnAwszCw7nIvbqwq7m7mLK2ubLArqXAo6uwvL2qrqujo56nrK+1saqboKqcopyWn6+zp4yjurq1wbyrqJyypKOolISOqsTDpIKLjoaHhIaVlIx6g4yQjpGgi4uTkI6Hl5+XkpiUlqWfrpyLqZuNlo+RkZSVjZCUkY6hk4aXn5+zn5SblJ+hmqSfmqCboJSYnqekpqekr62lv8PCrqi3tcnDvrbOssS+w7uz0cnIwbV4fHBfW19tVE5JRExMTEpAQT1CRDw1QUQ7OjM9OEIzMzIyNjJBMTVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJoXU1lXGZUY2qajZaKi4iSj4aJeYWTj4FygHuNf3eHgoGPeY2hlqiam5i6vsnIysLSycvCzb3Bs628v6e6v728xLiswamss7y+qrCqpKWjrK61rre2oJ+un6ajmKOzvKmcqLzBo7a3r6uTsKyqrJeGmqqnpZCCjJKklYmAdYmReYSNkY+dn5GOkoqOi5Oil5aalJOhnamekKSZi46Pj5WWiHyOlZKRopqUoKKctqaQn5elpKOln56mmJ6Vl5ulo6ioorKsqLu/w6+ls7fMwLquw7O7vcG5rMLCwb+acXxkXFleXUxNTktHRUNIQUFBREs6NERIOjs0PDdGLjEyMzUyQTI2U0hOPEpCSlFFS0NFRTpFTEI8N0VWPTw9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bEpfWGFaZGVYnpCdjZaOnpKJin+InpKEd4V/lH5/kIiJkICWoJqup6SYxL7IxMjG0s3Ozcu8wriwury0vcu7w8K3tryttL+6vK6vqKGpqLaur6qyuJqerKKoop2rt7eqpa++xLG9ubOnqrSzra6WlaWtqaCRjpKxxaeUjnyRlX2HkZiPqZiXkpKOkpSSpJySnJiToKGhm5iel4qLj46eiFqPlpeSlqSZZpmkn7OllqOVq6yrqJyfppeZlpiVoqSopp61q6m6vMK0prS1y8G4qrass7u4rqi4ury3hG9xXVtXWFBHS1ROSz9BR0RESEZGODVGTTs+Nz5BSy4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZmRNRqaUnJWhl6iVjJCDhqWSiIGHgpqEg5WQkJOOmqGfr76uoci+xcXIx87Oz9LKvry2sbu7vL/PtsS+uLm3s7O2s7i0rKecq6y5q6mor7CYo66lqKSltcCwq6y0vsO5wLizp7i0t7KvlaStsLCli5OUoI1zwZl8lpmEjpaai7CVmZmUkZGZmKSilJ6alZmnnJqgn5iKjI+VnV9KlpyalJmll1SWsJ+vnZ+lla+vraaboaaUk5mYjp2gpqGZtKmqs7y7u6uwssfAuKWrq62xsaOhsrK0pXNyaF9dUVNNRlFRUFE7SEpIRkdBQz05S1Q/QTo9Rk0vNzUzNDpCNDROV048SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzVGQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVc8OkJDQD1SRVdTdGJWRkiql5mfoaiumJGXh4qnlo6IkoSfh4Sdl46doJqjpbXJtanHvMPEycvJyMzOx7+7s6+6ucDCzbXIu8G5trqyr6+0taeknKu0tauqpq6smqStpqWprLq/qKu3t77BwL64srLCsLe8rKOuta26poialqWbdb6fhJicjpKYmouulqCbmpaUmZ6fqJ2mn5iZqZmgpp2Xj4yQnYJtdZKimpWcop+QrrKiq5aqq5irr6WloaWqkpKZnImVnKKelrCmqaq6tr6zsq6+ubago6aopaacnK2pqY1maWRiVE1OSElPSlZMPUxETUlKQENEPFFVPEFBQkVPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQzo5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2e2ZXPDo9Li5TYUxWSH5lXkhGrJSboZ+7rpiUnouSqpuRkpOIqo2Hop6Mo62Uo6S2x720wbvCwsjJxsLOyMK+urKvubXBw8q2xrLBvLW7rKmtrbGko5mqtbunqqesqp2or6ikq6u+u6itvbS3vse8trW4wLC9wLOqtbasv6aPopaQoJ+7noman5mWnZ2Ptp6om6SimpugmaeksaCanaWcp6mcl5OOlJuKloiMpKGUnKKeobWvpaWTsqyaq62fn6Wkq5KWlaCEkJ6fnJWopKGhs7S6tq2otbKynZ2jpZqXlZmqoZ54ZGBiYExJR0hOUUlNRUZGQlFKSEBER0FWU0RIPEFHUTE6Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRKiXpJ6ew6ybl6SXmKiblZmajqqWlaimlaytmaGrt8XBu7+4wcLAyMS/zce8vrqysLi0v8PItsCwvLa6t6ekq6ytoaGbq6vEoqWorKaeq6+toqqovrimrb+wt7fHt7S5uL+xvsG2tLK1sL6klqOVkpqTrZ+QoaKkoqKekL6kqJ2oq5ycoJqln7yil6OeoaiqoJyUjJSdk52GjoSNk56koJ22rKWcl7OnmrCpoJurn6KOmpaghY6hmpySpaSal6uxtrKrpaqtrJyYoKCSjpCWqZ+UaWZcY19RSkhLT01IRURJQD1PSEA7RklIW1JPSz1ITlU0QkY4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLS0wTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9TRjxLeGZjWE6im6ObnsWsoJ6rnZytn5GinpakoKaqq5e3saOqs7bFwr3Atr/BvMnCv8rItri2tLG0tLfCxre/sbi1uragp62rrZ+en6WkwaWhqq6gpKmtsKKmqL21pbG8t7a2xLKzt7q+ssPAt7ittLW1o5yklJGToKyemKGcqKiqoprCrKidq62amp2YpZ+9oZykl6qrq6WgmI2an5KdiI5Xf5aepaGguaunk5m3o5+zoqGcsZihkJuWnoKPoJeXjqKjlZClrrKsqaKipaSVlZ2Yi4+Sk6SfiWNnXGViTkpLS09GRUFHSz49SUE6OEpKTl1RUUk9TFZcOUZJPUVNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExQnp+hmJ7Dp6Wis6CbsaaSqaOfo5+tqaudvLGprLWyyMPBw7PCw73HxL3Fyr2wsbausbWwv8W1urGwuratm6mwqqucnqahqMGtnK2xnKmirrGqpKi9t6a2u72vt8Sts7TCv7LGs7q3q7W2raqipZWUk6KroJ+fmqeqrq+vu7Gln6mpmJiXkqGjuKCgo5Gur6ukpZ2RoJ2UnY6QjJSdmqKfqLWnp42ZtZyjsJugnbCRoZWZlZuBkqKWkI6goJOLpaywpaainaCekpKak4aLko2cn4BkaF1pZ0tKTUpTQUNASUc7O0Y+OTlOTVVfUlNKPk9eXj1IUEJNTUk4TmRcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQTdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wO3ZdXj9bVV9nckA4PEiWd2VBNJ+knpufwqejqbGgo7SplLGqpqKksqytqbuzrbC0tMe/xMO1v8S+ysW2wcnCtqy1qbG4rMDEtLivrba6pZmrsqyrmaGnmK27tJyosJusn660sqirurKnubS3srnBqrezw720xae+rq23tamorKGWlZGlo6Kil5ekrretsbS2n56opJmUlJOjoLaipKWVrbGxpaikoJ2amZmVl6ign5minq+zoqaNmK+apa2Ym6Cnk56QlpqbhpeglI2QnZ6Ti6ipq6GnoJqelo2PmZCChpaJlZ96ZWtebWtOUU5OVD1DQU5DOzpJPzc3UU5dX1JWUUFXYV1CSVNIV0tIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2NaMzM5MDZwW2JIMDVKcWpXRFdGjHlmQzukpJygpb+lqK6uoKm1qZy3r6ujqrS2sbC4t7C3t7jFvMPHvbzDwsjBusLGwruqtqWtu67Bw7i4q66yvKOVrrGus5emqJGquqmhp7CdqqCvtLOrqra1rLuss7K6t6y5sMK6vr+mw6qwt6+pq6umnZiYqqChoJGXoLCus6qwuJmbqp+ZlpKXpp+2qKSioq+ws6uxpqqfm5+fm52lnaGYnaO0sJyfkZSmm6GqnJakopibjJealJaXnpSJkZuZlI6pqKefo5uZm5OHj5mLfYyXho+abGluYm5vWFFSWlRBQ0RVQDs6SUE3OlhQZF5QV1dFWV9eTUxTTl5MSj9aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1ERkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZUAxNzQ3Z1lhRihAOG19aVxWO4l7Y0M9qJ+coam8oaqvqqKwt6iks7Kroay1va6zub27vbe2wcK/ycO5xMPBwbnFvsG5sLaorLeyvL+/taqvsrifl6ytqa+YqamOp7uepa2zn6uisbCzrKq1s7W8ra+xtaywtbLAusW3q72vsbesramisaWepaieo5aPmJ+yqbKpqbKZnaebmpSMoKaktK6noqysrbCnsqqwqaKbnqijnpShmZyot6mYmpOSn5qfoqCSraGbm4iXmoyemp2Ui4+Xl5qXpqWjoJ2WlpaTgJCVhHuPk4SMl2dtcmhxc19HWWZWRENOWERaOUhCNT5dUWhcTlpdSFtfXk5NU1hkSktDXWNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7R0RGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FVMTUxPWBWXzgpQzNZVVxoSzWMemZMQKWaoKSstaOsqKWurbWorrK4pqewt8W3sbe/wcK2tbrFvsvEucPBu8C6xbjBurO0rKq6t7u7vrWrr7G3mZmorKysna2rj6u9nquvsaOpn7Gts6+utrG5tqqtr7KotrC0urzKsqq1tLG0sK+nobOfmqisn6SVlZqZsaKtoKWvlqKkmZmSjKKlp7Kpoaaxq6m0pa6vs66jmJ2tp5uXnpqarLmjmJSRj5mdoZmYla6ioJeDlpuPnp2Zl5GKlJOemqWio6GZlpOSlXuMkIV6jYuDi5Nsbnlvdn1hRmBqWklIWlw9e0pHRTZBY1RpW01cYUtcXVtSUlNiYUxLRWBhYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1hUTEWalp+wqLCprKSjrq21qLayt6Oss7fJu7W7vMC+tbS3w8DMx7zDvbi/wMC4wL2yva6ourq4t8O3rK6yupaXp6+tqKSyqpSvu6SssrKnp6OytLGysbWwt7Oprqyyp7ivtrTDxbaptbWrsK2qp6O2np+nsZ+jlJuYlLGep5ufqY2po52clZelpaS3p6Kxs6unsKetr7SspJigrKicnJ2claq5nJWPj4yZnaKYkZmppaKZhpSYkZ6cmJeXiZeQl5qonaSgkpaSkJV2hJCGe4aDhIyMbnF4dnyAXExlbFxLTmNdPmJ7R0k4R2hXZVtMXmJNWVpXVFhVal1QUEhhXl9QS0dRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3FqTEVEkZikraSsraqlo7Cxs6m2r7Wfq7S5yLquwr3DuLOytcLDzsTAwr61vsHAu7+9tMSpq7qxt7jAvLCttLSeoaexrqamsaWdsbWsqbKwq6iptbqstbK1q7OsqquprKm5rrKwx7+4pLmvqa2tpqetsaWko66jqJydm5qumaOioqOQrJ+joJ+hqaaluKSrtLSkqquprK62rqKdo6iqnKCam5OktJmPio6IkaOhlo+Vn6OXloeQlZWem5mWlYiYk5WZp52hn42TkY6Qd36PhHx9foeKinJ0c39+fVxTY25fTllnXEZElltHOk1uWGJbTmFiT1ZXVldUWWheUVNNY1tbVUtGT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RlOzYqSGRISis6ST8zQ0lTLD6PbEBISZCaqKmhqK+kpqKzs7CztK+woKutvcy7rsG9x7G0rrTCw9HExb/Cs7/Cw7y/uL3FqK23rLS5vcCxrLOuoqSnrqqopbCjqbCqraqxrq6sq7O7p7awsqmzqaumpaSuuqyqscO5tKu5qamoramnsaWppKOtqaiinpuirJWknZeemaydoqeooaymo62st7GwoKmioKqusKydnqeoqZqjmJmQoaiYh4SPi4ufoZCNj5ifk5KIiZOXoZ2WmZaHl5OTl6WcnZ2MkpCNiX9/iIR7d4CHhYd0dHKJd2xfWWBuY1FzclxLO4R8Rj5XdVhhWU9kXE5WVlVXUVxiX1NQT2hZV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTM5ODsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDI9XkswLklnREY4PEIwNUVLWDFAlF1BTkaVlqynoKmxnKeosLWst7StqqSrqr3JvLG/ucOvsa2zxMPNzsO/wLTAw8S6wbTJxKyvt66zusC+tK+vrKeoqrGpp6ixpbOsqq+trbGusq2zu6W4s6yrrqeroKOesbirqq26tqS1taSqp6ysqq2gqKensLGjpqWhoayWqqGTm6CmnqSiqqOsop6msbasrKGlopqpqq6qnKGlpKSZoJmWkJielIKDkImFnaGNjJCOnJKUjoWPmqWbk5KbjJOSkpSjmpyai4+Li3yGgYKBenWBg4F/dXiKooZ4al5gbmZXZYdkTkBnkkxEYnpXYlhSZlVNVlZWVE9cXWFVS09pV1ZWSEpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC4yLCYwN1haLjBKZ0FBPDxDKzpKT140RIdDSklElpCvpKGqr5eop621qrWwqqSrqqi8wcC5urS8taayr8TJy9G/wbu4v8DDusK6wsSusrWytLzBvbOyr62srae2qqatr6q3raewsK6xq7WqtrantberrKSpqZyknrSzqaiks7Sfta2hqqiqqKynn6usqbi1qamqqaGpoK2bkaqhnaCko6ajqp2cprSup6SpoqOXpKanqpyipKOgmpigkY+PmY5/iI2HhJ6eiYaMjJGRk4+FiZejmo6Nm5GSkI+SoJial42LhH90hoJ/fnh1g397eH5/h5yPcHFmZ3F4XGF0iGpPXZhWSG15VWVWU2RQTVZVVVFPWFtiVklQalVXVEdPWFVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UyMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIvMjIlLzNSYzAyP2Y9Tlg/Qyw/TFRfL0lsOFJGO5WMr6CkqquZqaOtrrK0r6mlr6mou7+8wbKwua2itq/Ix8fQwL+9u7zDvrvEwr+/r7Kzsra+vMKxsrSrtKmltamlrbKyt66irLSxr7G5q7iuqa63rKqeqqugo6G2ramhn6+yobSqn6inqqKqoaGsrai9rquuraGnp5+smY+wopiioainnqebmamwqaKeq6GhkqGio6eYmamlmJiZnY+Lh5WIfY6GhIWkl4aDhI2IkZCShoeWoZeIkp6Sk5CNkZ2Vl4+Lhod4dIGAfHR3eYB7dXR7a4KHpHZpXmVsgXVniIx8UlZvXkt4c1RkU1JfTU1TWmdOTVdZZVlHU2lSUj9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytITztZRDOPjbGgpKWpo6SirKazsrCopLCnqri+wbyxqbmqp66wycbH0MO+wL65v8C9ybzBuLGwtbK6vLnAs7S8rLmso7Smpquwtbexpaa5tKyzu6+8pa2ttqutnKmvpJ+krKqonJ6qsqSzqJqrp6qkqJ2iqaeqvaq0sK6dqaSgrpyas6OWpZylpJ+lmpqoq6Wemqihm5GboKSdmZepqpKZmpKQi4OPhX6Pgn+In4+HgX+NiJORkYaDlZuUhZOjjpSRi5Gbk5aHin+AcXp5fXxodnx6dXFyfmqGeYWIZF9nY3KFe21oeV1eVUFXe21UYVBSWUxMTnB0XUlaW2haRlZmUEM+Sk9EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTtGXUAqjZGwmJ6fqKSioauktrGxpKmwpq25wb22saS5rKiosMLIyMzCt72/tbjBuci2wrW1s7Wyvbm6vbavuba/rKKzpqqqrrS2s6ibubuosL6yuqCutLapq5+tsaOcpaipo52bpbCmr6Cfq6mnoambo6igrbynrrCuoaqipK6enq2mmJ+aoaKcn5uZo6qimpqipJWWlJ+hlpuWpayMn5GQkYyCioCAj4B7mpWNin2AjYiSkY2LhpOYkYaUo4uSkYiQmZCUgYl9eWt9dnh4Ynp6cW9xdHhrgnVrgmdjZ2Juc45tYmpvYG9AXHlsVV5OUVJLSk1UWVZNXF5tV0VZYFBeT0hNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl4+I5GWrJiel6eioJ+no7evraGvr6isuMO7tK6gua+rqLS6x8rHv7jBva+0v7fEt8OzsLqxssC2u763qrm4vqqktaeoqa+suK+nmLm7o62+tLSgrbe1p6ansLOgnqWmp6CkmZ6sp6ieoKqvp6CmlqKon7G4n6Sxr6CroayknKanqJqbnJ+jlZybmp2pppabnqiRmJOZnZOZlqGqkZuKjpCHfYd/go59fKGNjYl6hI6GjI6NhoqTmo6IlZ+JkZWCjJeNkn2FfHNwfHFzdF94d2lucXFwa4B0ZXpsZ2VkYmaGgGBbcmpyTU2AaVhaTVFMS0hQU1BHTFtgb1RGWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VcRk89UlpnSCo/MF1cNSiVm6aYm5Wsnp2ho6C2qq+jtLOpqbnFt7OuoLetraywtcXHwLe/wbmwtb23v7u+sKy+sLO/srzCuKq7urinqLWnp6qvqrGupJe7taOqurWvnrG4r6mlp6+xm6GkoKSjoJabr6WhnqKor6GgoZKjpKK3sKGmsaufq6OumJ2qpaifmJudpJOZm5qdpamZm5ullZSXlZyOk5iiqaKRiouQhnqEfoSLeo6Xio6He4OJhIqOj4aQk5iMjpWZi4+XfoaXjJB6gXtwcndub3Ned3dkbGxsa2qFb2dyaWplaV1kc4FgW2t2aVpKf15bWU5PS0hIU1ZHMzheX2xQRVlWWmVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFRdaEQuPDJkVywxlKGhlpSbqpujoaKhtqmtoLu3pay9xbSwr6O2sKysrrTDw7yzvrq2sLO5uLq3uq+uwLOzua+/wLesvbq1paKyqaaosamrsJ+Zv7Skp7S1qJ6yvKmopamvq5mip5yjpZSXoLGkmZ6kqaicoZ+SpKCkuKmkp66nnaShqJOgqaKhoZmbnJ+SmZuWn6Kqm5qYoJSRlZeajZOTpKmkkImKj4Z6hHuEhXydjYqLh3uChYiJipGGl5KSi5CUlI2OlHqDl5CLd358bHRybGtzYHd0aGhqZ2dwh2hoaGRmaWpgamNqaFtme2JgU3RUXFtSTEpHSVBUQCEqaF9pTUVYVV9gTEpIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEaFtKV0dVYGhCMzc5Z1AnMp6ipJGOo6eZnJ6do7Osp6q6tqasw8G4sayjtq6nra62v7+8ssG2sK2ytra4tratqr2zrrKxvL63r7y7saWftamkpLOmqK2dnMCqp6Svs6mstbueqamssKWYnamdpqSRmKWsoZidpKmhm6Gblp+dp7WmsKquoKCdnaGVoKagoqCam5mbkpidk6WdrKGXlp2Uk42VmIuOmJupoJKJiouJeYV2gYKBnYeLg4l+gIaJh4eRhJeUj46PkZGRjJN6g5WPhnN+fmZ5b2pqa2V0c2tiZ2RkdoFjZWZmZWpqY2tyW19ZXWxjYU5pWFpgVkpHSEtNU1c+OV5saEhEVlRdW0lKR0ZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlbTFpKVmJmQDozQmhIJTWao6CPjKuhlpaglqSysaKyvbahscW8urKxo7esqq2puLy6uq3Asa6urravsrizqau5sa+us7W6tbC4vaymnrSpn6Cwoqitm6K/n7CjrrGvt661nq2vra2imZ2mqKWflZqnpZ+YpKKonZqfmpOcnqyvprqorqKhmpuemZ6kmqSdl56Ym5SYn5KolaqnmpOampKMlZmNlJSbqqeOjoqKj3yCc4GBipiFh32JioaGi42Lk4WVm5OSjo+Rlo6Qf4CNjoNvgX9meW1na2lmcHJrXGdjY3SCYmZnam5sZ2pqaW5dbGxycGBUY2ljZlpJRk1NT1hRUFVhZYBVQVdTWVRHSUZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlBMS0rLjM8O0s2MC4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyY0kaGbjY6vnZmToZqpsa+euL+1oLTBu766saa3sKetpLe4t7asu66sqqu3qrO3rqaytbKuqbC1tbCytbmmqJ+0p5ydqKCnq5qnvZeso66wtbWtraCxrbCooZuco6unm5SbpqOdmqmipJWan5uQm6Sqq6q7oKekoJiamZ2hj2uilpmccIKVmaOAdZKpp56UlJ6QiZiagJaKopB5h5SNg21qf3eDcWyGi4Z+hYyHcV9kYWeEmIVrio2UknR3i4R+g5CAZ4eAZ3VoZVdcaHNuTVBpY2dyhWhfZWZubWpdYGGKj4OEZU5LRDlHVGheSkhRUVVVTEhTYXB0ZUZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsLDA4PUc3MDEuKi4qLzU2OCwjMScyMTQ6Mjc2WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoukmYaVsJuak6Cbqqyqo73Frqm3wre9vK2nt7CkqqK3s7GysLmsqaastKWvtKOpt7W1qKertrKttK2zoaifsqmdoaOZpKWYq7mTpaWvs7etr6WqrqqspKGenKCmppuWoKWkm5unpp2Tnp6Xj52oqaS2sKSjopyWmJeXo4ihjpKahqCHkpygf6V/pqqekpKakYiEc3iNjoWIoXaJjWmXiWZ+c3igb4iHhH6PfX+hoKCZgH2HnnOGjnWbimyHgYNtaWVjemxyYVOFbWJsaZhxWGlxb4hZXmlbbGxbiHJuenKFZoaEWl9HTj9HX05GUlZWUVFSV1VnXU1WSVJST0ZIRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiouKC00NTczJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiKp5aDnaudmJidn6qpp6q/w66xury3wL+qpbewqKylsrSurrO2qqiksK2ltLKcrrW2tKanp7KwrLKorZ2poLCnn6OimJ+hmq2yk6OlpbW9pq2nq6qsqKWgn5ifpqOZmKWio5icpKiWk6Kbk5OjpaahuKSkoKOYlZOXk5yIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZzGeXixpbeXZYDAnL95hIV6koR9kJCRynKXu5zFenK1pruQe4Btl7GrsHlobFixrm5labySvG5nem5yj9h+U2tjtrJ+gXOUc5qhqpBXT1diT1ZORlVbWFFQU41dV1tRQV1EUE5FSEk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT46Qjw/QTg6Sj41MioyMkJFLy4zMi4rLygtLzE4Ni0gLzQxNkExPTlXg3cyMVRrXE9bTV5nXD5MMVtdNDEhi6eTgaepn5ecnaWssaiwwr2ytcC1tr7Bq6azrKyopq6zqa62s6anpbSlp7etnLOxtaumpKewraywpqmcpqOvoqCfnZWZnpytq5Odop+zuqOrqaKtrqWhm5qZoaefl5qnn56XnqankZymmZOdoaaiobGjn5+jl5aSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUcK6hpH54u31soZB2sV9qtFulgGWckGFng3tngGt5a6llvnFnpot1sWp7sXh0kpRjbm2nbluEoUVoZoeWRXWcYH5nfKSnglpgjKtogJV4eWqnN0qvXFhTbGRbS09YYFxXVjtOi09XVy9JVFNKREZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MDMuMzNFNC4uNTMvKy8oLjAuOjYvJyQyMDNCLz47VYJ2Mi1WalxPWUxfZ1k6TTVfWDMwG5CilYOtp6Weo6Sqsbestb2+sLbEsbe6waaosKquqKivrqOwuq+jpK2yo6m3p56ysrCjpaGprK6rr6amnaKhr5qhm5aUlpqbrKSVmqGes7OirJyjra2gnZmWn6GonJieo5+bmaGmpI+copmWoJ+qnqemoZqgoZWVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH9rgaZ7goaIk5STd6tna7Fcq3qNhpR0iXKPh4GBiZCXeIKBi5eLg6COg7B2d59xbGxsfItOpFhIYmKZfmNopl95cnVTk4deUaltY3F9hoBinC5RoW9bU2toYExKXGVZXFpCPrJ7WFhBI01oRkNFQUBBMTk+ODg6ODQ7OTk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QEZCQEFEPEZEOzAyMDE7Ri0wLjk0MCwuKC8zLD44MzEfLzItRDE9PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuUoJWHs6amoa+pqLKsqbu2wrC7wa24t7+prK2traWssamgrruqoKezraOqtKOmsrKno6Kepqqxp6+npJ2fn66VnpmUlJSYnaygmZmkqLWvoqqPqqiqm52Ul6Clp5qenKKem5+ipKKVm56XmZ2iqZummpyboqGXk5GSk5yD1ZOZuXCwwX7FhnzWlJu7fJqVpY+NnY2ke46IpIOlg3qseY+dVq96iH6fa7lbuneHhH6mgpR7l3qqeI2dj3qxbo6EdJG8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiFgIl8Y6QzQp12XVBqaWNQQFhoWmRhSkhNcVFcUU9ZZlpDRT9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdIOmFQNzElm6KUmLKoqKa0qqW0qaS8t8Gwub+wtbS6srSnsK+ir7Kln621qJqnuK2ir7Cfs7SwoKSen6apsKizqKObnJ2qlZiXlZaTlqCpnJmWp62wqaOfj62iqJadlZugpaCYoaChoJqhoaeanqGelJiapqCcp5Wbm5+hmJCSlJCdiLJuaLVxq4dujqZytHNytnual6SLj52Non6RoaZ/sXeDkdLSdlyue4V/pG+bqqZrh4V9rX2YmY57sXGSno53s2WXdISeb55nlFHIi1rCXKB5Yl+sYHVzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFQa2BsaFBWR0o5PVVSWldYSUQ/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE/Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1gTDYyMKKdkqSxraOrvK2mtKantbq8srq+trWzubiypLSyoLCxop6rr6OXpritpLGwnLS3qaClnqGppLGnrKmjmZuZp52Vk5eXkJKhp5+Vk6WqsKail5OtoKaSk5+bo6WelZqlpqCaop+tmaGenZCVm6GdnKWVnZWZop6VmJWRm4Wse3eodqONiIapb62KgqeDmJihipKbi6J/k5qJroSAgrNccrNSrn2CgqN/cth+eIZ+j52Gmpl2r4aHkZyHdrRhmmWagoKVbZJasFhLmnWYeWZgrF51d4homIhrXa93lZ6PeGw1eciusl9CVG9eZ2BFUG1gcG1WVk0uZmVpU1lQO0JFQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdCX0g6OTmgnpWgubGXtMKuqLKoqbK6t7O3vri3sbS6tKS3sp6zrJ+fqKuelKe1q6iwsaqts6ObqaCfp6G1pqWpopiclKSgk5Kbl5GUoqSakpCmra+moZaZqaCijpChmaekn5WZpKidnKSerJyhnJ+Mk5+anaGZmZuWl6Kgk5ePpp2GqX19pXihjo2CqnCti4GnhpafoYmYmIijg5KIlKt9gIudeW+xWqiCgoifenTZgHeIdKiBjpuMkqR7lI+fhHqyXp1koH6DlW2SXatbWpOAkX9oZ6pjcXuBa5iHc12rWomgjmtvZU9KQ6FcW0x0XWJnTVthX3FzX0tXN0qcmFhHRT1IR0FNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDUuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSF5CMj84o56ZmsGrl7TCrqusqaa0sLewtb65uLGwtbqourOfr6SdpKamnpOpr6iuqLWrqa6hmKCgpqSjuaGiq6CWmpChn5STnpmTmJ6fkIyMqbCwp56Xm6imoIyRo5enqqaUl6innp6goq2koZ6hjJOhmJ+gkp6XnJWdoZWWjaqcj65tcrRzqYt1iqdztHhzs4CRpKORnY6JpIeQd7hwjXuLomprtlqhhWWXl2mgoqdulHK0dJOZfrJqhZGHrWp1s2GdZqJvh5Nrl12tYE2hfIaSUnOja3l/fm+Yh3Fcr1Y8nHdmVG9uLlynT2NTa2VibVljXWFwe2NUW1M+PW5xM0NCQD9MOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKacm568oZyywK+tq6unt6m3rrW/tLqvrre2qsC1qKmgm6WjoZyRqamntKKyp62poJecp5+kq7idoqyalZiOo6KVjJ2gm5icn5GTlKu2saiZlZysqZeMk6WYpKyikZWqsaOfnqarsZmho5CYopagm5aclqGTnKmclJCqmYfUkpq7c7DDgMOGftWWm7h4iJCYjJiLjKeIeqS2dX53dsKCmrJgg7p5wH12uGO1gYyHqX2VgaupcXt/dLyIp6BpnWGmjq+hfox1h6t9vm9zvHSyg3R4gYpumohxbo2kdL1ed31aYXm8a1pWXGp5XmpgZmdjbXhvWVxaQ0BAdEBDRys0RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgYF9fWlBQUktFRko0SExSQEpORUZPQj1FODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmom56jvaGXssOwramqrLGmt6+2w7C4sK24rq3AsKujop2joZybkKijqrKktKWspJ6VmqqYpqy4nKKtl5SfkKSfkoycop6XnZqRlZOvubKslpikqKeUkJaknKOsnZCfqKuemp+oorOfo6WOp6GUopudmJWjmI+vn5GUqZ6FkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSfwbu9mnuBsahwgHORuYN9h4aNh418ioeNmHyku7m9nHR5tKN0d5d2dLB1mZ5mh2qNtnRycXi2jF5/en2JaIN5bnpji6xwdYV/WFunakVkWlRmYGNeY1FnZ3BsdUNOUUxDOlpNP0syOy8gOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlUnPjs8qJ6hosCllrXEtKyqqKyqqbmusMWts7Kttaa0uKypoaGlnqCdmZOqo6yqpbWnpp+blaCjnaykvKWgqZaTm5Chm5KPoaehkp2XlJiVsrW3rZmepKSii5KRpZukqpuVqKSlm5mhqKanpKqhkq2el6SemJeXnZ6Pr6iTm6WhjWp9aZqld4ZyfZqOdHlkh3u9vsC6b5ODcpaIYXNrWl+bimFjiI+Va2CAlmRunndjlmyBmpWUZV5gYnCZiGlyi32GlWdrf3J0eH1/Ylx4dIFoUF1ug317i2tYa3qCc0pKb4ZwTnRMRVhdZ2FMW1hmY19PW211aXFSUURFTTtHST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTX1Y0KVBfTCgyPVtPJz8yPqmgqKLCo5u1u7airKWup6e0sazHq6+yqrOivbCwpZ+ip52jm5mZq6auo6S0qaSbmJWgmqatqL2nqKSUk5qVn5mSlqSpqJCekZCYnbCzv6ybp56nooiTkamap6Obmqqgo5mao6eso6Cso5uxm5SnoJeVnZ+dlrCkl6CnmJqQm5uhoZekoZmcmZmZj5WBZ219cXeSmJSShoy2q42HmJaOioyYloeUlYuEk5SSiY6TlJmUmJaZn6GZmpOgnI2CeqWFbWt9kH2AdYuKgXGCeHl2dYl/fIlqc4F0g3Vldn13a296bV9kXXBoTVlaZmpfV1pveW1tZlVPRlI5TllNUk8oKzpLQjYzNT1AQTo6Qz48RU5TU1RWV1haWlxcYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODEwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSiw8LUCzobOjwKGksrK3oKmlsqelr7Sqx6qsr6SzpMCns6CdpKSco5WVn6qmrKKjtqufmJaVn5etqaXAnqqjlZGal56YkpOhnp6ip5OSmqmos8Swmqudq5+PlpaonaqcnJ+rmKCam6Kkr6eipqigr5iXp52ZmaCenZyvoJygpZSWkZeTnp+UoZ2XoI6Wk4qKjY6XrpB8lpyDkoKLq6mFgZmXiYSPnoh6hJCIhpqSiIeKlo+bl42Ql52jlZiSkJyNf45nobOvhYqFdnuSin13eXpvZnmPgYGJa3WBeYhzaXN/e3aDhoJqdWR6ZmBqZWNkZmtZa3tvaWpdU0xQRF5URUA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaW19iY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RcUTA1TlsxN0UzW0c1PCxAtKG5sL+sq6+ysaCqp7Ktoqyyr8Svqaqisa28orObn6aioZyYl6elqaWkpbK0npSTnZmZsKWtvqCropCQnZmZlJGVoZyXqJ2Enqyso7TItKCqpKuXlZeapp2omp6jqpOen52gqq+qpqSso6+bn6CgmKSenJ6crqOYnqeSlpabkKKXlqecmpZlgpJ8ZX6NmpBjeY5taGt7kqWramWbmH1nhoplZWloe46ij2xojZiRo3draoqYop6Xc2tteoSOiHpYZl6Gg15tjIqBdlxoc3d2kX+Igm13gXh/c255hHR2iYeOg3xqh1lebHVlXXOJaWt7cGtjX1JOV0lkWEFKND5GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJVV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaWgury6r6y0saqlqK2usKatrLC7sKimo6ytsJ6slp+jnaKZmaaqnK2jpaeosq6elKKPoq+ltbilraKOjZmgmZOSm6CZmaWWfKWvo6i1xbiloqevnpyUnqKeo5uiqKiRnqCdoaqwq6ykq6Gqm6efp5+rlqCbpa+jlpuolZ+cmpGilZypl519vYOIcrRyhJ2GrWh4ucS4cZSjo3qmmZlyq4J8y8DAu3GMo4iDnnyWmImdwL2Blp2djJzBwXyCfJONmsPAfmylsm+MgW/Ken+bdpCDjoF1eYCAeXF6f4dwd4WMk3lteJRiZ2B4ZF9lgmJec2dsZGRZTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUVNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9VQUI7LziWo7nDtbCwwaqolKOvqLCuraWys66ppKWlr6ueqpiaop+cmqqmoZ2roqSopKS0pJyikqWtq7ezp62ikZCYnKWSkKChmJyfnYinraWsrsHAsaGprqmWkp6doZmhoqmjkqCgnZ6sr6uup6SkqKGmpZ2sqJGjmqisqZqcp5qqn5WWo5SfoZWbfs6UeHqkgXmVlptfro9ejqiCo6F8p5abc6uDgK9eY42qe6iHhaB0l5OIs2OCq4agjY2zaoSvdX2XiLdig61ao81ukHZ72nt/mXB9iJJ2fWV6h3Z2a3yHbn2FkJF+bYOQYHFscGhgX3llXHFnamRnYFJUUlddS09ENUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqits6ulsqqrqqKrpq6pn6abmaWYnKKvn6CfqKejpaCesKuanZWmrauwqqirn5SRmp+kko+fpZeep6Ofr6atsanAx7OoqbGulpKdm6GXn6ipnpSgn52drbCprKucqKiloquSq7KWpKGqqZ2ipaSfrp+RmKWXnpmSk5CXoHGFjJd1haiGcbF9nnKsf6KfgaWQn3argn2tf5xzrX+sh4afdpmSe3yXfqqIoYuRi519q3uJlZCggXutV53Fe49wk8F9gZVsdXCMbWV2ZYVvYXducm+JipKOg26TkmZwdXVxYWdtZl9vaGluZ2RXVF1hWlJTQzlKSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08KD0xKTNXQEYhHEc6QzEuK7DTxsays5+coo6joqKsrrauqLGlqKmmraqqp6GjnZmilZ+lq5+hpZ+oqKKenbCsl5qWqaeuq6imp56XlJmjoZKUoa2bnaejr62lrrarus6xraauq5aVnJ2imJ6tq5yWoJmdn6mzq6urnK2rpaOsmq6xoaerraWXpKmnp6+gkJSiopiTkISkaqR1iXqpdHqycIKmipmMcYmgmoakYGFSrIV/roObdq2CqIaFn3uZl4V6ZoCjiaSYhoKjfal+gZaIrl98qVaeo5KBeqOfgHvDrsSLcq+zs7lxYqmvwnRojIyYjoFunJVxb3p4eXBsZmZlcnBmfWpjXVdgalhZVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NSoyUEtMIyBBOUQ0LCfDydbUv6GZq6egrqKer7SwrqmsoqelqaqqqKSmoJuknp2mp6ejnKuZoqyho5+voZ2akquktK6uoKeanZWTpqKRm6KooKCmnbGmpqmyrbfJsrWqq6mWkZycopifpbOcmaCUnZ+nrK2lsJutq6OjqqGyraGpsrChmainrK2zoZGUoaWWmZB7qWyehId1q3l8sG+CpYyJn5aWoJWB0ri0t8mBgbJfYJSpg6WIh6B6mZWaeKrJdJmklKmpkJKbjYCdiprGxnlnoYKldIGfjoJ9r11vtGKwdUujh22nR4KTZI6QnpJ8cZmVgXF7dX58blxmanNxZoFrX2FZZG5cX1lJTU1LRURBQj5BPEI/STs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKSim7K4rKqgpZqopKmrqqefpqaYqqOgr6uepaCsmp6ppZ2ntZ6il5OpqrWxrJuknKCUj6WskZqcp6OhqqeuoqaoqrG1w7Kzqqyok4mXnKSaoaOupZehlZmcpaatnLGerqmnn6uitqygsLiunZqtprCxsKKSlqahmJ6Ngp1OeJqBf596hKN9g6SFh6afnZ+UhLh7fHm5gn/MxsK2eJuhkYuefpqWl4p2n5eKpZekqX+whZ2GoISsfZqVY6ZtpHCPhZCBfJaCcqxgo3JwgJpgvH1SVXSOkqOWe36Uk4x2e3OHgHFdbW54cmqCb1tkX2pvY2VdS01RVEFJSEZJOjlLP0IxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZZWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJz9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmKmrpKq4qq6gm6CssrOlnqCVpa2traqnnKanm6OoobOvo6mnsqCYqKSUorWiopWXoqm0uKOboZyjko+hsZmenKemoaKwrp2mqaO2s8WwramsqZGHkJynnKKknKWWnpiZmqalq5yxoq+lppivpLutobW1rJycs7C2r7CklZyunqKchY/RtcO3eYeOhZGTkICmeZShd4ygkoSlgopxqoaFtW5yaZqknJWKn32YmYaHj3Ovgqabo46mi5Odi5WQm25xsl2ldJN6nGyYf3uZfG2pYaJxcX6fYnOyuGh3j5SmmH2NjpWOen15kINuanlpenNvgXVeZWVvbmZoYEpbWFg8SEhAVTRARj48Kik2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBfXVtaW1hVUlJRRjoyMjMvLysrKEBRUlRVVFNUVldXWFhXVVVVVVFPUVtVJSEyQUgkKSWSc4yKrb2+vLm0npanpK21oaGYlaOnpq2rrJmmo5+moaG2qKOpp7CjlKujjqWto52QmZqqs7OknKOcqJGUl66foJ6npJ2onbaao6uktq3EsKmrqaKMhI6coqCmopWZmZyZm5mnpqiZraivo6WbrKa9rJS8r6ydoa6wt6mwpJinr6GmlnmokH18sHeKgKSliJxtsnChh618oY+DqJWYgKyJha6FoJWqoKKXhp+BmpWAe5J+q4CdmpeLqnedoJKKlJKBeq9epIF9pqdknX98l3Jqr12kanCGmV1gW4ygbZWRppmClY+ajnx8hJqAa26AY390boB6YGdmcW9paGdDWmFbPUtVM1U4QkJDOCQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaV1NQT05JNzA0Mi4qLEFUVlZWVFRVVFVVVFRVVFNUVldXWFZVVVFIRklKIygovZKag6jFwbbAs56arKCtt6WjjpukoqCwsKufpaCerZmfuaGjq6CvqZqtoZCrqKSWiZuQrbCspp6lm62XmI+soaGdpaGapZ2vmaKpp7eqwa+lqKSei4CNm5qfpp6SlJialJuapqWmm6qsraSknqmovqWWwaqpoaCqsLepq6Sesq2mqJd1r36Qi5yFh366rYqZZbCNZZWtfaGPg6eVmoGsioSwhaaapKGikYWhXWxrgbNgf617e4OBsW1nbpmZjYmxW361XKSEa8iiZJ+Ae7tXdrVZsn1SroB6rFeAoW2Xj6ibjJiSmpl8epGgf2R1f2OGeHWBfWJraHJuZ2ZlUFVkXEFWYD5JKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFdaXmBgYGFiXl9cW1hVUE5KR0M1NTMuL0BVWVhXWFdYWFdXV1dWV1dWV1hXV1hZWlpbXFhXV0dCO9KfsrG2vbqzwbKinKympLWooIqaoJ2cs7Oqn6ShnraZobSoqqyesK2eq5yVr6ehjoibj6+rqKahpZmukpiPqJminaWfmqSjppqho6qzqr2vpKienY59i5uVoKCZj5GZm5KamKmgo5qprqilpaKkqLqen8Slo6efqbKzqqyknbmrqquUgKmSo6+Om4CHpJeZkIKAuMO6g46ck4Snl5yCrIqCr4mnnJumq5F+1r3CqmKkv719fqOCg9e7uLWGlpSEnr2+hG2jgm+rhGycgHqysMeDaauwvKx3dqG+vHOAlo6mnZGckpqge4OTnnxjfntlj2d6g3xhbGZta2NRYVtTalxAVWJDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzg7PkFDRUdJS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbOzsL+4sbyyopytpqWypp2LmKXAqriyqKLAp6iznZ+ynbqon66vpaaVlLCrl4yCm5GupaKsoKOcqp+XiqOTp56nnJuhqaSZoKKsrqq6raijm5eSfIiZkaWbko6Ql5mPmJOpmqGZqqmhqqego6q6najDop+soamwsqitp564paysmXN2qqS4hmSJoHBorpGLkG5ud6SQmZ+Bda6ZlHCPi3GWqKSbmK+kc21tbWaLeG9ugplwgXpqcWlnipiWmXJpaoWIZ3GGZF2IYmpvWVxmfXamX2FwjZBuZWV/jJOPoZmZmpOZoX2JkZh3Zoh4aY9se4B6ZW1kaG1jS2RYSmtaO1FmRlEnSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERkhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1dXWV1eXl1cXFxdXl1eXVtbVVdeqZWss6i5uLGzqqmhrZ6jsqqYkr+zxcu+t6ufwa2upKKpraC6o6SurK2ljZauqY+LhZaWrJ6mqqCdpKOgkYukk6eZqZqXpKuil5+npqiwu6usmpuSknyEl42lmI2RkJiUjpiVqJWgmamjm7CmnaKruZ+vv6ejsaSqrq+oq6mltaKstpWKoammt52JlqOZiKqbkZWdkqmzmZqiqqCylqKhnZ+inaGlopWsp42Tk42Hk5yclZGZk5mRj5aGgaWbmZaPjJSUjJCHhH5niX50gnVzh4pwp2x6k4+TkYCBjY6Qj52VopeamaWEiZeRdGuRd3KMeHh9emptZmVwZVVgWUBqW0hkYlBZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVV1leYGFjXV5UUUtFQz45PUBBU1hbXFpXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKaWqamktLWurqKwo62foLWxkI2syL7Gu7qro6afnaefsqqkt6edqbWnp5GYraKLh4mPm6eVrKSfmaifnpKUo5eomqialaeipJGcqJqhtrunqpmakI18gZWLoJSKlZGWkI+Ul6aRoJupoJy1o52mqranrsCtorWkra2uqqemsLafrLqYkaWjp7aikp6noI6qoI6Tn6OrsJqgo7CosJejoJyjqp+enp2XrJ6TmqKclJCWq5qOmZmXkZegkoihnpeVh5ONkY6Vi4F+ZYuFdYZ0d4eCc5xqho6Sk4+JfYuVkpKYlKOUn5mkhYmbin10l3R8jIBzfIBqb2ZfcWpgW2BabmRQYWZRWjpHR0U+Mj0+OS8qJispJh0mMzE2NjU4OT09P0FBQ0lKR0pLTE1TU1RVWmBgaWFlVlBLQUNCOjlFTVZbXl5bWlxbW1tcXV1eX11eX2BhYmJhYWFgYmJiZGJcW2OXlaOmoq+xq66jqaasn6e1qpCQnaS1vbCtraOkm3yfpLOlprGpl5u4pqOUmaqcjoaKiZyij66eopWon6CSlpmbrouqlo+qmqmNmqmQn7m2pKWZnI2IeYGTi5qTipSRk5CNkpejjZ+fqJ6fuKJ/g661oq6udKK7obCedniep6+4k3Sro56Jf6t/ZFxidqCOpZ+EmH1tkrOdoqatqqNlnZ+Sc3mal3GBmamYbX+jqIplnKadkpeYloyTnZGGnpuRloSTiJCQkomFd2qOhnaFcHqFf39gaIeKk5GKWnWUkGdoj49zfKicnGZ7m4qFeplqhoyEcHqAa3FmYHdwbGtpXGZmYmNxVFs+Tk5OU0c+QFVEOjEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVlcYGhmZ1dRSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5WloqCur6urqaWoraKmraWSlau3sbOnm6yorZh0jZ+xoKirp5SXuaCgj5yknpF/iYibnoyrmaKVp6GdjpeSnYV2rY+Jp5yqkpmkipy7s6egmZiLiHV3ko2Wk4mTkZCUjJCUoY+coaeZnLGVgYybtJyzjJKNuaWffaeieaCstH+NjaWeg4uGkLGqr42Ll6SbeoGLrIWcnqGmqKeHlYWYd6WbeoecgZeng4J7nbN6ioahmJqVmJaCkZeXhJuaY3qHkYWPkJKLg21wjod5f3B/gIR9hXOFg5SRd5ZoknSgmnR9mYSjoImYf5WOh4aaa5COh2x5fHJxaGZ5cGpsa1xlbGpndV1eSVRMUkBFNi5bVVU3KSEwOT4+NzQzNDY4Ozo9Pj5AREk/SUVKTEdTWFtZXGJhaGZZUUg5RUw7PmFWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop6lrKyrp6ygp7CmpqmmmZOvycCyopeoqrefkYWfrZynoqCOkL6emo2fmqCQfYaOmZeHq5yilqChkY2TioWAkqeNh6OepZWZnoegurGnnpuSjoVwdpCJlZCKlI+Pm4uPkqCSmKGklp6rh5+0ibSZrYrKhqisiLaFjK+BrquCqIymmI2dfaiPc3t3nI+nl2iVpHm0i6CdpaeSmMKAf6uImKFynoCapX6XhZWzgaF9oZShkJiXgY+UnIuZkox9hZOHjpaSioNtc4+FfnlxhoCDe4N0hICVgI/FZn+ph4+ja56FpJ2FmoGPkYmMmnGQlYZqeXZ8eGhpdnFoaGxeZHBtZ25ZZ0ddUU0zRTU3TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05KSkxDUFpdXFdiXmptXFFFPUtNQEljWF1jZmhnYmJiYmRjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqGer6anqKWrn6S3sKmrp5qVoKOlrKWYpqy5pLCBoqmdpp6dipS8mpONoZKej3qElpaRh6uZm5uaooWOjHeanI+fkIifpZyYmpmIo7mtpJmcjYx+Ym2PipOQjZCMjZeMkJKgj5SgoJmhp36hp4etnZ+VrY+cm5yQhH+gjKishaONqZmMmn+idYGZlGuCrXZNq3iHjZyRmqemgKmrfYOhe3qnap5/kmxnmIaYt4mefm5gZFmDl4CNfGRoi3KZfXmWbF19l25fUnCDXF9reIJfWGSAfIN/lnCnqmuDo25ypXCfhaBqZ6BtXHCOfmdaYISBY1hRcHdmbnZ0bGpwX2txbmxqWWlPXVhGOUE1SEVfbDUsSURSTU49ODQ4NTk7NkA7Oz5CUD5RUkxNQkpcXV9XXV5jdmBNRDpNT05UYVxcZmZpaWJiZGJkZGJhYmBjZGNhY2prZGJkZGdkYmdlYWNol5Wcn7ifqaOmrJGhtbuqrqOZmKGipa2uoZ6wtqSpk6KhoKecmo6ZtJqQi56MlYt1gZSSjYqnlZWZnp9+k4WFrKWHm5CLmqqZm5uSiaaxp6GVmoiJgGluiIeLjo6Ji42Si5CTo4yUn5+boaR/k4GPoqCToHaclI6ngZ+lfoWnqoKleIl8hJp+onBzlIiWfJ+NeW2Gm4yZj5qomY6HnXuConN2pmaefnekX5h6fZR0om6Yt7S6dJOIg4C1qGSBxrh7cJW2jHKAmqNjc6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGCdmrSXc32Yn7N1dFyesoNrY3B1eHJpcFlrbXRzZ11qXmJMRT1ENlJCWnMzPVNHYEpSPTwzOTU6OjZEOztASlA/VU1PUUBFX19bWlhgYHxkSEM4TVdVV2JhWmVma2tiYmVhZGRgYWJgZGNfYGNrbmNjZGRoZGJnZmNoaJOWlKK3mKqbk5+NpLe0raygmqKdpKSmr52cs6+tlJmim6GlmpuVnqubi4iSeYuFcYGWjoqQoI+SlJ6YfZGKjqihh5eOipKklZ2bjYypqKWej5eHhH5qe4Z+fY+NgouQkImPlKGDl56fnJ+ei4l3nJihjJ9xoYqGqYeao42Upah8rYx+eqCZeqOTeIF0loiNnH2Wn4abjpiapYWiZKF8iJaQm41tnmibjm+amXuAi6d+c2l0q4Ofg3SqaJWaXZuFdoWeZ6prgLhmXKhvgZxglYxep3Z1h4h+nWeadYaTkpeOgJ9vmpFvqJpeqX95vGx/qlyOhF20aF1vcnt4bGpccWt6emRgZ1hiQlFGTzdXRFJvNUtbW19OWkRAMTUxPDs3SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5cXllkZlhmZ25tYmJlX2FhX19gYGViXmJkb3FgZGVla2VjaWhna2mVm4ips5qmiGOUm6u6sbCsnqacnKmgn6+cnrKprp+YpZyhoJmXlqCjmYaJjWqJgHJ7l4iLlpaDkZSZkHqLhJWknIqVj4aNn5OenYmQqaOgmoySioCAaYGGeH+WjHqIjo6Ij5abf5Oinp+gk5hyaJ+Jno6LcJKMgKmGl52gpJ6le7Cto6K4l3ejs6OkgImUeZ17q5l+oo6cmpaIl3GhfIWNr7V9a5qRoXl+mbWjpKuohJl8m32em390qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJpcXuObICIg5l1m3iGibGzf4Cbk6d3g55udH6VcJp0a6RelXZIZWRhdHJ/f29mYWxpd3xlZWJRX1deVVdAWkZRaEVUV11iWF5JRD1COEBBOklGOExFWEFXUltXREZiXFpgS2BtfXJFQjxVX2JaZWlWZ2htb2JmZ15hYVxdXmBoYl9lZHZsXWVnZmtkZWxpaWtpk5yAr6yYg1NeoKazubKyqZqjjJysnJ2qlaKtpaOpkKCfnZualpihnZaIh4l3hoJveZWFkZuLfJGTl4hygYmRoZtzkZCBiZqWoZyGj6qcm5WLi4p8g2yEhXGBoYt4hY2Ih5OZlnyTo5+dooithn21hI2dnHullXmpgJSajoiemnunaHdtfpl0oXNyfJ6GmXCTg659o4OlnZiAo29eqGd1omNvpWGc05B9e5l4c3RiooaRf6N0pJB2a4+zjGCCmIlzqrKovH93g21+v6aptF2cbXtwlm1/cqJxXaRnc6ZgaKZtm9SafYabcHt7mGycfXiYc26ppGdhZnpygYVsaGZlb3d4aWFjU1xnUlJiSFhKVWFYVFxma1xlUUVDS01KS0JLRThPQFFOWFNZT1NRYGZlalJkd3l3SUZFY15mWmhqVGloam9jamdgY19dXV1faGJhaWV8ZF5kZ2RrZGpsZmhsaJeaf6+rVFtKfqmvsbOvsqObmYWZqqCipY+mqaGaq4ubmZmUmZOToZiOiIZ7cH2EaH2Pg5WbgXeRjo+Jb3+Gj5OSbJeUfIqTlKWXg4+rm5SSi4aJeYN2iIBugZ+Gd4CShoiZo5d6lKKimZ+Js6Gitot5rKekrqVvqH+ZjYWAmY96pH+hmYaYcp6EpK6vipeMgI2kjZWCraCTdrW2tcmhc5SLgZ9gnpepbXqVh6GcdaKId6B+k5iLgXBNZqOScJqHc6V7eXRhg4FrfaBrcWRfnHF9c5ZoemmztbPGpnKYfXqda5ybq3aFm254eZhqmnx2mXNRRX2zX2p3bHqIZ2toY3V2cW9XX1RZaVFTaUpXTVlUVl5pbG9WZ1dNS0FKTUtIS09CUUtQZWNqbWV0cnN/eXxudYl7e1RRT2xeaVxraVJqaGlsZ2xmY2VfXV1dXmliZGlre19dZGhjamZvbWVpbGWgm4eupYNkP5Ohsqqur7WiopCAmKqio6aNpqifnqeEm5iXjpeQkJyTjoiDemp5h2WDjX+YoHl1j4mMgmmEhZGDjIWdjXqNjJenlISYqpiMkYuCiXqAfYt4cJChhnmClYeJlqCVf5SkppuVlYNmbnicbKJke3Cld5uXcGWmgJSJeqR5n5aDl3Oed4GKlZePuW6RiqJifZiglIhtcmmqa3WgbW+mYJtpi5BploeblnWigX6aYIyGjXVviGJooGWefmmbdW9jZoiBbXGiWV5aYqFsXYiLbXp9c3FkpW14omRnp2iZc4yZcKJwVYmQcKBgZqhVi15UmG5udGxzg25xaWt5dGtwUllXV2ZaVG1KWlBdSVhpaXNqWWtWUVJGVl1MWFNiVWlrX3h0e31wfHxyg3uAc3aNgIR2XlJyYmdicGdQamhobGxuaGRnX11eXWBqYmppdnRdXGNoY2pqc2xma21jnKOXpXlkc2yKpq2jqbCxpp+MgJisnp+njaOinKSjgZaZlI6akIyYkI6Ke4dxgIhoi4t8mZtzdYl+kHtlg4aUiomVmoJ8iYiYqJKBo62RhpCLgop+gICOcmmPpoR9h5ONiZigj4eTqaWciKZ4lZt+pYiWirGXnY+CrpaepHaThXipc6WPhJpupKKMkoSNg7tufaWvg4aFhpOVm598pXpyqJWglmeefm+sZJaKlpN3qG2qooGJdomDeKuRpohrkbBrdrOMqWuKhW1tn56RlF99q4uqdn1+iqSddp98g6SVnaBqm4h4rGifroy2dXi+jaSTWoOnjqthdnN1cnx1cWNrf29obVRXW1ZhYl1sTV1SXkpebW93YFtxWVxgW2d1ZW5vcmJydGB4en55cnmDc4R+gXt7jIGDgHZieGRkbnNkUmtnaG9scmpmaWFfXlxha2JsbHpvXFxiaWJsandtZ2xuYpWkqZuAf52jlqmpnaimraSZioOYrJufpoqcpp6rnoWNm5CHnJGGko2MjXSHe4iEcI2FfpmTdHSGcpGDbn+LkYeFlI99fIOHmaePgKenj4GOiYWVdoKHkm5si6mAg4uUjomcn4mMk6min45/dJOXiH6BeJOuon6BmnCPhXaOiYJ9e3KnjHF+fXqYlpuEkHl7f36HlJWTinaQmJ2gg3t9iWuMhVt5eXJ6cWlufpKKcoB1gY+UlHGHhINljH9ggYCLd3VzlHVveW5th2yDhl51Z3eOZX+AhYynmX10e5VqiYhwgXZ9h3dubmmNdHp8mHiFXGxYeY9pb3hzc3B4eHBdbIdvamhXW2BXXWZrZFdjVV9SYHB5eW1rd2dqa2t3fXJzdXNhb3ZidHuCeHV5gnZ/gICBeYuFg357bn9sZHluXlZuZ2l1a3hqaWllXGBaY2llbHF0blpbYmxkbGx5bmhsb2GOk7anpoqgoZqmo5ilnKuioYSEmK2SnqKKm6ibqpiDgpyMf5eUh46KiY1yg3yPfX6PhHuYj3RyhHGVhXt8kYuGhpCFeX6AiZuljnyooYuFj5CFlYKGjph2coSpho6SnZCJn56IjJqmnp+qg4iNlZp+foiWrKeOkaWPd26bjoF4kG59qIVxfpVxa3B9gqCNgJOOi2hsXIKLi5uano5zlYuIcXRrgnd0gVlyboeRgn5/jGldamV7hoSKgGBpeXube4KLgnWBhYFnd4qGamBvcYB1XnGJgIiOpZOEZYuNg253i4Rxho96cWhpZn2Ee5ZbXWtobnZcfHp4dm90c4NoXW6LbGxjWlpfWlltclxgYlpfXmZ0f3x2cHVka2trfH5zfHl1ZG51aG18fnZ6fHt5eoCBfm+FiYR7fXR+eXN/aVRccWlsdnB1Z2tnZF1hWGpoa2txcm5XW2VubGdzeW9oam1gi4qor6CPoqCZnp2Xnpioo6J+g5mujqCViJ2jkaaVgHyZhn2SmYqJh4eLc36BjHaFi4KEl4pyb4BymIaEfpGDhIaKgXuBhY2coZGDqKKIeI6XiZWKi5yXhIN5rYKRmJqVip6diIigqZ6hoaOKh5ObnKKZlamgpqSekZqFk4t5doyNg6d+f5KQk5SdsqablZ+QjbGSl4Oki4yUmp+JkJuCiJGKa3yOd3hlg4eRi3yJnoSHjJGJiYGFhZB3fHp0mqCJhoqdiYSTfn2KgH90bnOEgX12hYaJjqOPgoSMhoKMkIx9h4yLkYR6boWGfnqZa3NpYXSLcX57d3dwd3WCXV5vh2huYV9aXV1TaXFWZV1dYm1odnx9dG9wZWtqaYB9bnmAcmpwcW1ngXtzgoF4f31/hXptgoyGfHp4e316hHlOZHZqc25wemVrZWNiYFt0ZXBncnFtVl5sdG1oeXpxZ2lrZIyHnLielqGgl5SYmZSYpKCefICarI+fjoahnYyeln55lYR8jpqKh4SEh255gYFzgYh+iZSEbWt+epeHhIOPfoCGhIZ9iIWPnJ+UiKyghHOKkIaSkYuckX2NeqqEjpOYl4+cloeGm6SeoZmchYKSmpmYj5mmn6Scm4+Vfo6HdHqFjYOle32PkJGGmKuhnpSdkI6pjZCAnYuIk5mego+XfoaOg3B4hnJ1YH+EkIZ1jZmBg5CDh4V/hoWVbnl2dJKiioyFmoSDjHN/iXx7cXB6hoJ6doiNg5GkjoSCjoCDiomKd4aJi41+cm6Agn1vaWxuaF56gGh+fXd2d3V8eF1gcX5udWFkW11fUmduVGZcXmJraXd7f3JsbWRramiBf2x0gmxtdXB6cIZ5boeAdoKAfYV2cYKNiH57fHx/fIKLYGh7anVpaYJkamNgaVxkdWhvYnVtbFVjcXllcHp7c2VqbW2LiJ61maCinpKRlZiKmp+fn3t5n6eRnIuHppWMmJl6e42GfYmSg42DgoNufIB5c4CFfouSfWtofYKXiYGIjXx9hoWHfZCDkZ2dk4qpnYFxi4uMkoagoYmFjHynkYmQk5iUlpN4jKKen52VmH6AkJqYkouaoqCimJWQmXyLgnd/go6GoH9+jI2PfJikoqKTmpGQpoyOgZqRiZKWm36Tkn6HjoF1dIJxd2F+gY6GcouXfYmMco1/g4aHj2l4cniMmJGPf5Z+h4lygYZ7e293eomDeXiOi4GUo5KKhI96hoaHhHaDhImJfGh0foF6fHJtbGhffnNpfXZ2dX5zgWtfYXR3cXhlZFlfX1JraVZmWmBhaGp3eoJyZ2xkbGhmgIFrbn5ob3Jsf3mHe2yMgXOBgX6CdHaCjYZ/fHt/gX5/j2lyg250aWGHaGxiX3FWdG9sbmB4aG1XanR2Y3V6e3Jiam96iYyesJGkpJyOj5ePhpygm558d6WhjpiBjaOLiZqWeXyGiH+Din+Jg4F/coB7dHaChX6LkXhnY32Gl4qCiot4fYCOhHmXg5aZmI6XoZx/cIuBkZOFpZuIjYmDppWFk4yXmJKSd5Gdn6CXk5Z5fo6Xl42WmpyjnJeRk5l3jYOBdoOVjZ1+gomNjHOXo5+ilJmPj6GMioKWl4OSlZl+mI18iI2BdnF+bntkgX2LhXGIlICSgmyJhIKBioVmdm97hZGYjHySeIuHe3+Ge3pwfXeIhHiCjoeJlp+UgYKKdoiDg4J3fIOKh3hienp/dX94aG1mYn9qa3h0dXd+cn1kZGFzbnVzbmFaYV9bbWVTZFlhYWlrdnqHcmNrY21maH2CbGl1aW5waYB9gnpukIZyf4ODf3R8g4yBf356goN+fJBtdolzdW1limxqYmJ1VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPm6yWpqeejYyXh4afk5eZfniqnYuZe5iejIyZkHl8gYx+fYR8gYOBeHR6enR9gISAiYuAZF99i5SHf4SGdH1+i4B+mYaXlpmOpaOZgHOHe5OSiaaPjI6KkqCRhJKQlZeRi4GOl56akY+Qcn+NkZOInJyepZeWi5OVcYuLiWuEl4+ZeoiIj4lvl56bpJSVi4yei4WBkZx/kpKVhpmIe4qKgXpxemx1bHx/jH5uhpOElXhwg4R+f4uAZXJqe3+Wl4N+jXSPh4J4hnx0dn58hH97gYqCipKhj3iDgXSJh32AdHWCiYVxY3x2e3J+cGJwZGV8Y29wd3N5eHR1YndgcGx2bnBdXGBeXmteUV5ZY2FpbnR8imxgamVqY2h3h25nbWlrbWiBfXt4b5CIc4CDhX10gYaJe4N9eoKEfX2OcnmKeHhtbIdraF9pcmOHZ3FvZXdnbmxhemlqfXt4cGF4bYuAmJipn6OonYmKkoaKnYuVmX54r5mNl36flJGXlIh3fnyKfXyAd3iAgHB1dHxwhnyBgYp/fGFcfo+RhoCDgnJ6gIh7kJOKk5OelKedlYJ9gX2NipGjiY6KjZiajYaSmZSVjomHi5Gbko6MjG2EkI+RiJ6ZoaCWlIiVj2yGl4JlhJiOk3qJhJCKcJablKOTkomLmYyBf5CefZKOkoyZjnuKhYd0c3ZscW52fYt0b4aSj5NxdYF8goOJfWZxbXl8mZN8g4h0kImAc4d4bX58f4R7g4qGgYuTpot6hnt9ioR3fnFwgYeEZml6dXZxfGNfcWFrdF9xa3t6em1zcWZ6Xm9tc21zWFtfYGJsW1FYWWVjZ3FygIhnXWppZ2JncY1vZGpoZWlpgXp3dm+OhXSBgoN8dYKIhniFfHiEhXp/iXd+i3t7c3iCamtfcGh0gGtyb21yZ29sZXxjboB6dnFsd3eKfqKXoaehppuGi4uBj5yHk512gqyWk46HoY2WlJCAdHx3hXh5f3Nze4Zsc3B7bop2gIGHb3BbWX6RjYeAf392dYGBgaGHkouVnpmilph5in+AjIicnYqPhpKYloWJlZqQlouLi42Lm4mNj4JtiYuQkImclqGblpOEloZogqGBZYSbiZB+i4OLgXeTmZOfkpGJiJSMfn2Ol3uQjI+OmpJ8ioCCb3ZwbG1vcXyGanSEj5mLcXeAdYKJg3pnc251gJmOeoeEeZOQeXWHc2+HeoSKeImEgIaMmaGGe4N1gYp/eHhua4GEg190dXRycnlbX3FhcWtfcGt+fHFubmtud2FwcGtybVlZYmFib1hRVFtmZ2N1cIWDY11rbWRiZmuSbmBnZ19oa4F1cnNwi4B1f4OAeXaAi4B4hX94iIZ3g4V8hox/e3eKf2pxY3xjhnxucW10amhvbHZ4YHF/eXx0dXSAg36klZmsnqeWhI2Ef5eUg5CgdoyglZOGi5uNlo6LenJ4dYJwcoV0cneJbHBudm2IdoN+gG1tVVGBqpSGg3d+d3KEe4OihJSDlpSZnZObeZJ7g4ySo5mTjomVmZKEh5eajJOKiI2OhpyDj4l7couFio6HnJqfmpSTfpJ8ZoOahWaFn4eRhJGCiXGDkJeQnI+PjIuPjHd6kZB6joqMkpaMfIh8gGt2a29rbG17f2F6fpCYgnd7gniDjX16aHRsc4aVin2HhXuSjnF5g292i3mHi3iHfH+Jjpybg3t6doGKfHZwamyChHtheXFvbXN0Vl9wY3JiYG1venJpcGZndXVpcmxid2VdV2ZhYXNUUU9dZ2VeeXCJfWBdaXJiYmZmkWpfaGVbZ3B+cGxxdIp9dn2GgHV2fox5e4WBeIiDc4aFf4yMg3t6lHhmcWuDYIh9b29remBqbnV/dV90fXmHeHRzhX14oI+ZsJyljoKLf4OaiICNn4CMmpSPhYiYjo+PhHd0d3SAcXCFdHByhHBsandug259fW10c1JNgt/IktaSe3B1hXeFooSVeJaSmp2RmnyUc4WQnqGSk5CJk5yUhn+XloiMjYeQjIebfo2Ad3qMfomMiZybnJqUkniMdGWGkIVrh6GEkYiXg4ZjjJGZj5aLl4yNiopxepOIe46IipORiXmFe39tfGVyb2tte3pcgXqRkIF7foCAh497e2lzanOKjoiAhYR8lIpsfn5tf4l9ioZ7g3h/jJKYmIl8dXeDj3hybWdxgIVua3Vwamt2blRfcGVwWmBtc3lobGtjZ3lzcXFkYHhhYFZsYF93UU5MYmdjXXpxinZdXGV2YWJmZY5kYWdiWWlzc25rcneMfXR6hoJ1dn6Lc3+Gf3uJf3KJiIKQiod8fph2ZXNufGWIfm9wbIBZbG55eXNgdnp7jXdzd4p3eZ6Lmq6an5CChXeIlX59i56IhqCSj4WMmISTj4eBdXhweXFvhXBtb39zZWV5cX1teX1qaGtjpJrB3K7woHJsdoV3hqWHk2+YkpeilpyCknKGi6KXiI2VipCdloOBlpCFiY+AkImIlX2GenR/iXeHhI2bmpiYjY51iXVshIeJfImihJGJnISFXouTmIuPiY6LioSJbXuVgX2IhYmRj4Z2hX1+a31keHZrb3lzWIl7koiGen+BgYaMf3pmcml/iY2JgYJ/ipWEa4B1bYaPgI6CfIF4fY2TkJePdHJ3h4x1c3FndXqEY3VucWNrd2hTYXJobFZgb3V6YXNkYGl/cXNvW2RzYWJXblteeU5NTWVnYl53dIpuXF1leV9gZWWFYGNjX1lqc2tua3N4jH50d4SBeHd7iXGDhH1+iXt0i4mIloaLf36Xc2h1cXlsjHtudHGBV3F6dnlyZHd5h4xpd4CKcn+chpinnKOShH1xjJR4eYyehYahjY98lo2AmoiEe3N4cHRqcIJsam19dV9heXd7cXV7Z2BkfOvatcnD3IdybHSDd4udi49rmpGRnpaUgolxhIifjYSLlYqMmJR8jZOIg4iQe4+LhY6Af3V4g4RyiIGTm5aUl4WLdYZ9boOAh4aXoYKTjJ6DiWGDlI+HioaKjYeBh2l8k399g4OJjo2CcYZ+f3F3aHZzanV4bFqNfZKEhn6ChYKFi4N3YXJrh4GOiYB+fpCPfG2Ba3eEjYSQgXqAe32OkI6Uh21weYyFdGtxa3J5gmF1anBebHdhUmVzaWZTYHF3dWFwYV1ohHJ0a1hoaWNpWW5XXHZNS01mZ15ic3SGa1xcZXlfXmRne2FkX11Za29lbmp0eIp+c3SBfnt2eohzhYJ9f4h3doqGj5iBjIJ7k3Vsd3Z5eJN0bnh7fVh6hnF/b2d4d5KCZHaGhnCJloWZoZqiiod0b5KMcXePnX6LmomKfaB/hJqAgXhydG5vZHJ/aWdteHhcYHl7e3FxgGlhZ2F/1baPkaZ3bnF4fXKUko6JbJuQip2TjId7aYeLmIaBkpGGh5iOfI2NgYGJjXuOjH2IhHpzeoN6cIeAlZmOk5KAh3SChHSBfoiRm56GlY+ffohif5OHhYmFi41/f4JnfJCAfn+CjI+Qfm2DfIN1bG13dXR3dmxjjoKQgYZ/fYaAhYmAcF9xb4R7jYqAe36Qh3pwg2V5gYiFioF6hHx9kYyPkYJtbnmLfnVtbmpsfH9kaWxrWm53WVNqc2liUWNzeG1jZl5aa4VvdWNcaF9lbWBvVVxwT0lPZ2ZcaG9ygG1aXGNzYFtjbHdlZV1dWmxtY21qdHeHf3Fwf3x9dHiGeIWCfYCIdXmJgZKVfIiGdoiAb3h5e4OTb257gXdeg390gm1penSUc2dziHxxkZCDmp+boIaIdnaUf213lJh/iJGEi46afYyad312cW9samF1fWdianV6WmB4fHpscH5lY2dnV52PX3J0l77FhXhylouRgHSZjYeelI2Jc2qIj5WAe5SLgYSbjHyKhn18iIx+kod0h4V2dn2BcXWGgZ6UhpSOgoJxfoZzgnqIlpuWhZKNnYCIZn2TgoGGhIqJcoF9Z32Le3l/f4eLj31pgH2EdmZweXhzeHRsa4+Gi4KMgHqDgoSEgGtecHZ6fYuHhHuAjn9+coBod4GGiYSBd4J6fpSKjot8bWt6iHx2dG9oaH54ZV1yY1lxdFRUb3NpYk5odXlnYV5dWHCBcHVaZWNea25hcVBabFNEVGhiWmxvbnxwWltebWNaY293ZGdcXWBramNsaXN3goNxb357f3R1g3qDgnyChnZ+iYGWkHiDinSBh3J5eX6NkG9ve4FxaoJ5en5ubXx2lWtqeIR0a5OMhZ6YoJmFiG99jHZqeZmPgIOLg5aYinmPlm95c3FsamRgdHtpX2Zye1thc316ZnB6YWVkjrGyd0tjWqXb0phzfJONknqAl42GmpKNh29shZKReXmThoCEmYp8h4B5eIiKg5R/bomGcXN9e2p5hoOlkISSjIJ+bn2BdIF3hJmXk4mSj5SFiHB6koR+hIOJg26BeGiAhXhyf3+Diod8ZXx+hHZjcXOAaXpxb3aajYeEjH14eYGFe4NrXG98cn+Gg4h8hId6iHGAbW+ChY2CgnGDd3+WioyCdmxsfYR+dnplaGp/cmFaeFxacm5PWHJ0Z2BLbnd1Yl5cW1l2f3RwWGdeZ2tyYG9PWGlTP1pnX1txa2d6clxbWWxlWWRxeV9oXV5lbGhma2lxd3+Ib2x/foF1cIJ6gIF/g4B2gYWIl4pxgo1xe4V8enmElIx1a3p/bHB+dX9+b3J8e5Nwb4F/eGeRioKhmJ2Sg4Znh4RwZ3qXin+AhYKaioJ8jY1peHJsbGZfYW96bl9jcHldZGyDemBwdl9kZdXrvoszOj6Mj4BzeoeLkY94hZmOgJSPjX9ubYWMi3V8j3+FgpWJfIN4bnaGhYKVdm2HhGt0e3VleYOEp4yDjouCfG1+cnSCeISaj4qPkZKNjId/e5KIeYCFjoNsgHJpgH94bXx8gYqDd2F5hIJyZHFpf252cnWDnY2CgYeAdHZ+gHOBcFtrfHN3iIGJeoZ/fIh4eXBqhoKOgohwgHd9k4iJfXNtanWAgHV1XGlpeXFZV35UW3JmTVtzcmZcSnJ5cV5cW1pddoB2alpiW2hmb2RqTlhnUj5fZlxedmZgdXFbWVVvZFplcXlbaF5gZm1oamtocHh+jm1qgYR/eW6Ae32Bf4J7doKCjJOFcICLbnh9gHt7iJOJgGl7fmp0fHKGe3N3fn+MeniEfnxri4yDm52WjIKAbY1+bGl/j458fn+DlIJ/fYqIa3VxZ2ljW2Nnc29gYmx1YWhwiXphc3NeYmSboJBuXTZbsLZ1a4GLf5SId4iZiHWQjIp3cG2FgoZ0eYl4iX2TiHp/c2d1h318lm5vhX1odnluZXqJhaSHgIaMiX1tfXR9f3uKl4aAk5CYiYuFinyPinF8foZ8aX5ta4B7eWp6d4KHgXJfd4J+cmRyaHaDbnV8hpaTgn6DgXB4enx1f21XbX11c4mAhXaGdYGJendybId/jn+DcX17fJCGh3ltbWhsgoF0blxoZnVyUlx8T11yXU9cc3BkVkt0eWtYWllaYXKBdmJeXWFnZGlqZk9aaU5BYmVcYXdhXHVuWFhTdWJaZW9zWGpfYmhrZ21saXB3fJNsaYSKfX1wf358gX+Ce3eAgIqMhHF7h29yd4N/e4mNj4RqfntueHl2i3d9eICCh4CDfn56bYSMiJijjYWEe3aLeWtthYqSeX58gpKAgH6Lg3BycGNmXlhnX3BwYGFocWZqb4l0YXNvW2FjanZ7f7+dqKXKuXKHhnSVfnqJlYR1ko6HcnNwg3qCc3WGdIh3lIl5eXFjdoV4f5JocYN2ZnZ1Y2p8hIiegn9+jo18cX1ygnd9j46CdpWNlJCIgoh7iYpseXqAdWh7aWx/eXNpenaAg31nYHeHfWtqdGh8gWp2gY2Sln98f39yfXd8dX9iVXV7cXKHgYF7gnCGiXd3b26BgIt9fHd8enOMhIB0Z3Bna4iBcW9daGN0b0xmd01fb1ZVWnRuYlFQdXljU1hYXWJyg3RdYlxpZWVkbGVRXHFJRGViXGRyX114aFVXVnheW2ZuaVdsXmFqZ2Vvbmlwd3qTbmmIjHl+c3t+eYKBgnx2fYOIhoNwd4NzbneCgn6Ji5R/cYB8eHp6gYt1g3h/gYGChHqAdW59iYubnoh+hnt3h3xodYeNkXp/gHyKhoR3j4BncG5gZVxYZVpuc2FhYXFtbGiJbmBzaVheY22Ad6naqciHiLNzi3pxj3d9iZGCe5SLgHV0dX12f29wf26FdJSGeHVsYHmAeIeNZHGCbmd1bVttfYGQk4CAeJKRfHd6bIVzfY+Kg3KVipGPiIaGe3+GbnV3f21od2VtfHZta3d3f398YGJ4hnpodXZjfnxodYePjpd9doF3coB7fW6AWlZxfG9zgYV9f3driIZzeGpzfoKCfHl7d3pxiX96cmZyZGyLg2xzWmpgdmZJb29NXWNYV1Z5bmJQU3V3WlFWWF5hc4VwXWFjbmVkXm9jVV5zR0NnYF5naV1afGNSVl12W1tnbGJXa2BhbmZmbHBocHZ4j3Rrjo12f3d4fXeBhIF8dX2DiIiDb3F/dXF1foWBiY2Le3d/eIR8fYWHeIh8fYF9hIB7fnJ1eIuOn4yJe4p3dYN6Xn6Hmo15h4R0hoeFd4l7Ym5tXGJbW2FWanRkYVxob3Bnh3FhcWZXXGNrf3zKzoe6omtub4xuc4ZzfoaMgHuShXp5dHl0dHpqbHZjhHaSgnZwZ158gHiKh2RxgGpqcWNYbXuGnIiCgXKXk3Z9em2Gb3+IioZwlo6QiIaMhHt5f3JycH5naHJjbnhxamxyeH18eV1keYB4aXV5Z4J3aHWIjI+WfnOIa3B/gHlufV1Xb3xscn2IeoBtbomAcHZmdn5/foB0em95coV6d3BkcWBtjIFrcldrX3ldSXBsTlhWX1RVfGtiT1R2c1JSVFdeY3aGal5ha2tmY1pvYllkcUhBaV1hZ19cVnxeT1ZmcVpbamhdWGhhX3JmamhxZ3Fzdod5bpSKdX97eH55g4iAdXR/hoWOg3Bve3h3dXqGhYaMhnp8f3WLf32GhISHf35+fYZ/fHh2eXaRlJ9+jX2LbnWAemSEiJiGc5KLcIWFgnqDdWNuallgWl1eVGhzZWFZZHJyZ4FyYWtlV1pfaX94vq57oLduY3WIaXZ9c3uFiHt+jYB3eHN3bnp2ZWpvYId1joFzamJefXZ4ioJlcH1na2taVm94i6OBhX9wmZJwf3ZzgGx+gI+GcpSIjYiFiYV9eXVzcGl6YWptYW12amdra3l3endaZn19eGVyfm6FdGZ2ho2Hl4BxjGhse4N1bXViW216anJ5iXqAZXSGfW1wZ3R9dn1+cHpqeXl/d3ZvZGtgbIp9bG1VamB4VkxsbVBTUGhOWX1oYk9VdmxNUVRVX2h3hGdeYXFpZ2BXal1dbGpKRWtbY2VXWVZ6Wk5Xb2tZXWxlXFplY151ZmxlcWdzcHSBeHCZhXZ/f3h/fIaHfXZ0goiAlYNuc3l7e3NzhYaIiIR5gX12j399hYmOhIGDen6Lg3t3fHZ2mZ2YeoqDh2p2fn1thYWVgXKPgnGGgn6CgHBmbGdYXVpcW1RlcWVfWGNzdWl2cGVlY1dbW2h/cG9ygHOKZWZ6gGt2d3R1hYZ4goV6d3R2bmp6cGFoa2eGdI2EbmZeXntteYh8Z2x3ZmpkVVdzcI6mfIR7dpaPc3txenhseXmPg3WXfIiGhIeEfXVxc21odV1taWBsdWRnZ2l6b3tyWWeBdnVocIB4gnZid4WLfZaCb4xsbnyBcWZzZWBqeGZwdYh5fGF0g3Zpa3BzeW95eHJ7ZX19fXZ1bWJkYGyGfGxqVWliclRMa2xQTU9wSF58ZmFOVnVlS09TWGJseH9mXmdza2VgV2RYY3JeTExsWGRiVVRWdFdNWXdlWl9sYVxbZGVfdmdtYnBqdG9xfnV0mYF4f4B4gH6GhHp9doKDfpiFbnJ0fHt0cYWFj4KAeot2dJGAfIGVjoGFhHx+jIZ6foB2eqOminmJhoVsdX18doSDjXtvhnN6hX2Cg3VvamllVl1bW1pTY29lW1lhdHtqaG1oYGFYXlppgGlsb4BobWJpe3prdXV1cIeCeoF+d3ZuemhqeWpfZW5ogXeQhGdlWGF2aH2GeG5pb2ZmXVVYb2iPqHaBenyQjXh0bn1tcXR4jX53lHSGg4CGiXZqdHdoaW9cbWVebnNfZ2JqeGh7bVttg3J0am+Bfnp4YneFhXmRhnSJc3B6f3JjcWhbbXVkb3GGendhcn9wZ2l3c3Frd3ZzdWKCeXx1dG9jYmFsfHxra1VpYmdUTG5pUEhTa0ZieWZiTVRyXkpOVVpmbXh7Zl9ucmpkXVZhVm9vWEtUaVhnXlhOVmxUS116YFxfbF1dW2JmYHpobGFvb3Zub3d1epd9d4CBeYCAh4Z6eXqDfYGThHFzdH56dnSFiJB+gX2RbHOVgXyDn4V/h32Bf4aCgIp7doSrn396iIiFbHGCe3aBgIJ1b4hufYB0ioBqcG5lZFhfWlpaVWJrZ1xaX3WCaV5tbFxhV1tca4FlcnR9amtebXh3aXZ4c2+HfH5+enZybHpoaXdnXWRzaHp3koBjYlRjbmWBhHV2ZmhpYVdWWWhkkKdufneAi415cG57ZXdteYp6do5xhH5/gIduZHd0ZWhpXWxiXnBvW2hfbHVlemhddIBucmtxe392dmN1hox8iYiBgHlzdn50YXBsWHBxYW5vgnpzY3GAbGFseW5paHl4c3BkhHN4eHNvY2BjbHN9aWtUaF5fVUx1ZFFIVmJIY3dmYkxUcVlLTVhZaWx3e2VlbnJnY1pYXll4Z1VKXWRYaVlZSVdmUEljeVteX21bXl1iZF5/aWpgb3R5bW9udoOXeXKBgH1/iYyGfnZ2hniGjH1zdXWCeXp6goyOfX+FiWp0l4F7i51+foZ6gHt+fIaJc3GPrYx7fIePfmZxiXt0fn13c3CGbHx+bZB6Y3BwYmVeZVZaWVdkZmxgXV10hWhYcG1bXlhaXGx7Y3F3dm5jXG91dWl2d3Jvhnl/gXp3bm90ZWh0ZVtndWZ2dpF5X11SZWVpgYFzfGFiaVxUWF5jZJCkaHh0goWQd2xteGZ2bHuDeXSHcoF5fXmAaWZ3bWFnYV9qYF51a1lmXW9vYnplW3d8a25vcHh5dHVlc4STgImEiXt3cHN9cmF4Y1lubmBub396cmVxgGRebXVoY2Z3enJsbYFzcXtxcGFdZGxufGVpU2dZWlVOemBSS1pZSGN1ZGFKVW5VS01aV2ptc3tkbG10Y2FZWlxieF1UTGReWWpUV0hZYU5Ia3dZX2FuXFxfYmNchWloYm54em1vanaBkHltgn6AgZKIhIF3dYl0i4Z0cnZ2gXh9fX6Mj4F/k35weJaDfZmTeYCBd3l+f3OIhHNwmaF7e3+JlXlldYl6c3l3bHVwf2x5fHCSc15wb2FoYmxUW1pXaWRuZlxccollU3JuW1pZV2BsdmNqdWtrX1tvdXJudXV1a4d9f4F8d29ubGRpcGNba3JkdHaOc1xWU2NfcH59cIBcYWNeU1phXGSSnmVycYWDkHNraXhrbm55eXpxgHZ/c3t6e2RmdmheYlthaFxfd2hXYl9waGF3YVt8dmpqcm54dHR1aXGCloSIgIZ2dGtwfGxmd1dbaWxhb3B+d3Nlb31bYG9wYl5pcH1ranJ9cG92aW5fWmRrbHphZlNmVVhTUXhdU1BZUkhkdGJhR1ZsUUlQWlZsbGx8ZW1vcmFcWlhabXFYU1FnV1dqVFVGWl1PSXN2WWBjbmNZYWFhXoxqY2Vtenlsb2l2eYZ7a4N9gISafIKEeX2Ibo+GcW52en10goJ9i4+Dg5d0eIKUhYGfiXWBgIFzf4Fwh4N2b6KXc3uGjId7ZneLb258cGd5cntsc3ZzjWtedG9iZ2ZrU15cVmhibW1bXHGMZE5vbV1WWFVmaXNoY3VlZV5bcHdvcXZ2emyIfX99iHePc2Nka29hXG5tY3N4h2taVFZhYnZ7e2+EXGNeY1NaYFpjlpRjbnCChYlyaWZ4bWRydXF6a3l0dW97f3ZfZ3NkW15XYmRZYnVlVWBhbWRhcV1cfm9oaXNxdHF1d2xthZWDin2GcnNnb3xvcW9SWmVpZG9xfnRyYmx1VWJxalpebmR7ZGt0e3BxcWhsXlhjaWp4XmVTZFVXUVZvWFJXVFBIZXNgYkZYa09JWFRXbmllfGlseWtiV11WXHVlVFNYaVJaZ1VUSVtaUE55d1tfZW1pWmJhX16PbmJna3l2bm9pdnZ/fmyDgH2GmHt/h4GKf2uTiHJnc4B7dYCDfomOf4yTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOCjYx3eG56jWBlfXFnenR5bW1xd4NnZHxtY2dnaVRgX1VnYG1wXF5ujmhNaWxgVVZTb2dza2Z4ZWZeWnJ2bnN8eXRuiXt/d5x6eWthZWxtXmBvamVxeX5nWlVXX2t2enlugl5hXWhWWWBYZJyIYmtwgYZ8dmtpdWtbdXBqeWl1cm5vfIFzWWtuYFleVmJkWGVxY1RfYmlhYmxaYH5rZmx0dW9teHdsaIaNgIp8iG5xZnB7bHFsYVhfZ2ZtcX9ycl5pbFNlcGRVYm1heGFvdHp0aW5qaV5XYGZodVxkVWFWVE9ZZ1NPXE9QSWVwXWNHWmpOSmBMWW1lYHhpb4BlYFVfVV52XFVTYWhPXmNVVEtdWlFadnZdX2ZtaFhjYVtejnFjaGp4cXNtZ3Z0eYJzgoN6iI9/fIqIjnpukIp0bHOBdH9/iIWHkoSVj3p9jI+IkZuEgHuMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56enx+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo2NjY2NjY2NjY2NjY6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx9fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMk5OTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjY2NjY2Njo+NjI2NjY6Pj46Ojo6OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHx9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTEwL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhXdlZ2ZmZmhcQ0RERERDR2RoZ2dnZ2drb25tbm5xSisuLi4uK0iFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI4uGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgoKDcl1fX19fYVI0NTU1NTQ5XGBfX19fX2VnZ2dnZ2o8GBwcHBwYO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmIiIiIiIeNkJCQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaIiYiJiYmJioqKioqKiYWDg4ODg4OFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkZKRiYeOipCSk5GLkI2OjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjY2NjY6Ojo6OjY2NjY2Njo6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQi4WJiYmOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3d4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCIhYeNiZCJjJCPj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfXt3dnd7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkIiFiIyJj4eOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4SKjIiOh4+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin99d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pio6Ni42Mj4+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgICAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgHt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGiouHh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/fn9/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTk5OTk5SVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOSk5OTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGSkZGSkpOIhZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj4+Pj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCSgoKSkJGRjnWGkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPkJCQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CIcISQj5B8dIiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4xzb4qPinJ4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX1+fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjXdte4+Cc3iGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH5+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWFhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHc25vhHt1doCFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxZWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3RiXmRfYWtxZmhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGRUVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYl1qbF1lZmdlY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGRkhJSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpaandsYm5yamJZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtrcmthbXRyZlFRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OXWNva1hpc3VwU01PUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZCRkhVYmdsb3BvbWxaTExOTU5PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVDRkdITVpnaGdybm5oZmRgXl5YTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7PklaXVpcZWxuam9tbWxraWhrZFNHRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7Oz1LW2ltbm9qb21ramxtZlFHRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozo9SGNvc21ubGtsaFVDPkNGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN0cnF0eHh5fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5PUpgc3NwaFQ/Ojs9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT48OkJsfWpAOjs+PT4/QEBAPz9BP0BAQUBAQD0/Pz08Ojs9PTw/QEBCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO1tuQD5ERT9AQURfZDs9PTs6PT5BQT8/QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pLSFZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo6bXdIODs6PT5BO0hkPTw9PDg6O0A/PTw9PDxAPT08PD47PTw9PkFAQkFAQEBCRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJYHBwcnJydHV2eXt9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUj08PUlMRkV1dk43ODg6Oz4/V2pBOzw8Ojo7Pj4+PT03OT89PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3J6Sjtcf4N/enx3Vzw9Pz09PkVodEw6PT4/PT0+TlNVUkxDQEA/PkE9Oz9CQEJDQkBCQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFRT9BR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFHcnprYoOEg4KDgH1ePkBDQEA9SnN7WTo9QUVCQUdmaGxoYV9PQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEVudH2CgoGDfn2Edk1BQ0VAPz5Ze4BdP0NFSUlJV2pqaGloZmdPREdFRUVERUNBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx7fX99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTU1TbXdwaW1vcWVLSklIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSExOTVRyeHhybm9vbE1HSUdGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSkhJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiIRWbIWHhoaGh4iIh3xQTE1KW3d6gnFubW1sS0NDQkNGRkVCQD4+QEFCQEJEPz4/REZIREZHSUtJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wcnJ0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pUgYOEhIKChYaGhIKFhYSEhoaGh4eGinVKSkdbZ2hqZmlzenFDPTs6PEFBQD48OTk4PDw8Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgICAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpJSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMj2dFVmRqbGFlbHiAZTc5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJR09SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouNimVib3BsaGtxbXhRMzg3MzU2ODo4NzY1NjU2NzY3Njc6Njc4ODk6NzU3ODk3OTg2Njo8QEdGSUdJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDY3ODg9Oj1FQ0JlhYOBgIKDg4ODg4aJi4qJiYqKioqLiouLiHF1dnBwdXBqbks0ODg1NTc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc2Njk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ5e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgICAgICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhIWGiYqKiIeHiIiKioyLiouOiHZ4d3Z4cm1tSjg7PDk6Ozk6Ozo6OTs6OT09PT47Ozw8Oj47OTs7PDs8Ozk6PDg6Ojo6OTk5PD88PEFCRElKTUtJS0xXb3JzdXN2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuKjI2NgnV4e3hycWpIQUFCPkBDQUA+PT4+QD8/P0A/QD09P0I+QEE/QT89QEBAPj9BPD48Ozo7Ojk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PDw6Ojs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4uMjYyMf3h7enprV0xISEhFRkhHRUNBQEJFQ0NBQkNCP0BESEVDRUNFREFGREZERUZEQEI+PUA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDo3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhoaGiImJiIeGhoaHiYmKi4yNjIyMjIyMfnl6d1lOU01LS0lKSkpJRURER0hGRERFRkRCSElLR0hHRkhHRUtJS0lKS0pDRUNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtBQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjY2MjI6Jenp1XVFUT0xOS0pLSEtHREdJSUlFRklGRkVMTE1JSkdHSElKTk1PTExOS0dGR0dFRUNGRUZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7Oz06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjIyMjY2EeXp0XlFQTk5MSklGSklFS0lHS0pJSkdHR0tMTkxMSEhJSk1RTk9OTE9LSUdJSkhJRElISEZGR0dJR0NCQUNUbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhYSEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIyMjI12dnhtVFNQTUxJR0RIS0hNTEdLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRkZJRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIyMjn9kZ21ZWFVRT01MRUZHTVBPUFdVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkhHSkZFSEpFREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39URkZHR0dHSEY+QEI9Pz09QkBCQkdWTkZOUFBUWHuGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyNj4yMjG9hY29kSFVTU1JLOztTVFJgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRTExLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+BgICAf39/gIB/f39+flNISklIR0dGRT8/QUFFQUNHRURFTFhSTVRVVlhafIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH5hiouLiHNialk+W1taVVI/QFdWWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFVUVlRPT01LTEpJSUxNS09NU290dnh5eHh6enp7enp8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImLjH10c1teXl1UVVNXV1ZbW3WDWVV9kGFcWF1fV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBRT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiYqBboaJiIeEioBqXV1eW1ZXVVhUU1hWY5aAUmVyWFpXX2hQYGZbW1hcZ2FHT1poZ11bXF1dV1JPU1BQUlZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE5NS0pFQz9AO1BQWlpbU1NRUFJSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn6BfWBVWVtWVFdUUlJNUE1MZnpbXVRZVVZdWkxUWlVTVF5aWFdXV3pqWFtcXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fn5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a39+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eIenBzWk5PUVFNT0xKS0VGSUZDP1RkVX9SUVFOS1FUUU1PWVJNTlFTVlVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3x9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGFze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ2YWBQSEJFRUREREFFUUNFQUM+Q0lHVkBITkxHXWlQSEZORkRFRklHSEJESEdJS0dEQkFEQE9RTVNkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNQVVlTVVFRVFJPVl9rbHJ2e3t4eXVybnN0c3l4fX+DgIODgoCCgIOBgmxPSUJDPTw+QEFAQD9rUUtgRUZISUVCP0dMTkdNUlVJQkU/Pjw9PD09Pz0/QUNDQD89PUI+Sk5HVW50dHVzdHZ4enx7fHx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXkpKUFBOS0xRUlFUVVVXUVFXVVBYW2FdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUVCQkM+O0NDQkJEQlxdT3tOT09OS0xNT09RTEtNV01IR0BCPDo3NzU5OT07Ozs4Ojg6PzxCSD9cc3R1dnV2d3l8fHx9fHx9fX59fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BfXVpJSFBSUU9NUFFOUVJUVlhTU1lUT1laXFdZXV5eX2VfXV5xdmteYGdrd29vbGpvbm5sZWJZSEdISENCR0lGRkZETVJPYVdTV1FQU1NSVVtPT1FWUE1JQ0Y/Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn17fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BWV15aWE1LVFRTUFFVT0xSU1RXWFRUWVJNWFlaVlhYVlhZXVdXWGhza11WYXRrYWFfXmRhX15ZVVFOT09NSUhKTEpJRkNRUFNaV1RUTlFTWVNcZVVPU1RSTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTpHbnF0d3h6e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQU1RXVFVSXW5fUk5aYFtXWTtEVlhUW2ZKTFBTUk9OTU5OTkxKRlFQVVlTVE9KT09VU1RcVlJVU1JPTUxJSEhGPz88Ojc4NzY1OTk2NzY3NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF1SVFpXWFVUV1RSWFhZWVlTVU9KR09QT09NUkpPUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBTTUlNS09SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmhpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExISkhGTE1QTUcvRV9SPjM/PmpvYVNSUUBHVFFQUVBRTlFPUVBMSkxMT1BOTlBRUU5QT0pMTU1LR0VFQ0E7PTw8Oj1HNjY3N0RtcHR2eXt7fXx9fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nVFFTQUdVUE9RUVBNTU9NS0xLTE5PT1FMT09NSExLSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7e3t9e3x7eXx6e35+fHt1dHVydnZ6e3h6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05MUVNMVFVUV1dVTExLSTw5ODc7PkA+PD1BQEI9PkVIRkNFRklHSkpARkFBQEZIRUpPSFFSYlxSUFJPU09PUExNT01MTU1OT05bV0tNUU9HSUhDSUpMTEtGRkZFP0JDPjxCRz9CP0FkcHN2enp7e3x7enp3e3d5fn58e3FzdHByc3dzeHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENEPTk3Nzk/Qj47P0JAQD5AREpFQ0dHSUdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xOS0xOTU1MTE9OU2ROSkxSSUlJRUFISkxNTkpHSUdCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg5Oj9CPzxBQkFBREVHSkZESEhHR0hDRD9CPz9AQT5DRUNLTlJUTEpJTVRGSUlKTEpLTElKTU1PUFJQSkdDTEdDQkpJTE1PTklKSUdDQ0NESEpNTElZcm13eXh6e3p5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9tcG92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFIS0RHSElHSktJSktERkI9Pj06OTo7QEI/PUFCQ0NHRklLSkVJSUZHR0NDO0FAQj5AQENFQ0lNUEhIS0dIS0RISkxNSEpMSElKTEtNXVJISERORkFDSkpNTFBNS0xKS0ZHR0pOTlFOTGJtaXZ2d3p5e3p9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLQ0ZGR0VGRkdFR0JDQD48PTk6OjtAQ0A+QUNFRUlFSUpMRklJR0ZGQ0I7QUJDPkBDRENER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lHRU5IQkZNS01MT01NTk1LSUhJT1JSU05SZmZmcm9zeHZ7enxsaGpuZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lERkZFQ0NCRUBEQj4/Pjo7Oz06PD5DQT5BQ0RGSkZJSExIR0dHRkVDQD1EREI+QUNDQ0VHSUlHTVFKRkZHS05PS0ZISUZFREVJSkhLSUZIT0tDSUxLT01PTk9PTkpKSUxSVVVTT1dkYGBtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPUJBPkE9Ojo9Pzo+PUBCPkBBREdKRklGSUhGRkdEQ0JBQUZGQ0JCQ0RFRUdHSEZMUUxJT0pKTUxJR0hFR0VEQ0lJSEtKR0tSTUJOTkxPTk9PTU5PS0tLT1VXVlVTWF9eXGlhbmpuaHJzYmRmZWRoaGZuamZtbWhra21yaXF2dHNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd3dnR3dWpzdW51dHNxcmtrck1HR0ZIQkJBREU8QUBAQzw4Ojw+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDRkVCRUdFRkdHRUlNS0lRTUpLSEhJRUZISEVDSUpJS0xLUFNORFFST1BRTk9NTlBNTE1TV1ZYWFVYXVpdZGBpY2ppZ2tfZGVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRTw/QkJEPDc7PT46PjpAQj4/P0JFRkRHREVIRURGQ0RGRUZKRUVJR0NHSEZIR0VDRktKSE5LTEtISkxGSUlLSEVLS0xNTk9SVE9IU1RSUFJPUU1OUU5NUFdaVlpZVlpdWVhhYGFgXmhlY2BkZWhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXd1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSEhISURCQ0hFPEBFQkU9ODk+Pj08PEFCPD8+QUFGQ0ZDRElEREVFRkdHR0lGR0tIREhIR0lHRkRIS0lHS0lNS0pLTEhMS0xLSk5LT05PUlVWT0tVVlNQU1FSTE9RUE9UWVpZXFpZW11eXWBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdExJS0lLRkJFR0U8QEdDREA6PD5APz4/QkI8QD5CQUZDRUVFSUZGRUdGR0hGSEhJS0pGSkhIS0hGRkxJSEdKR0xMTUxMSU1LTU1NUExQUFFVVldPS1ZVVFJTUVJMT1JSUVZaWl1eW1xeXl5gYGFkXWNgZWZgZWhqZHNzZmpnZmtvcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQ0VERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRkdJRkpGR0RJSEdJSEpMSEhKSklMSkZKS0hJS0pHS0tNTUpKTUxOTk5QS09QUlVYVk1NVFVUUlFRUE1OVFNSV1tdXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbG9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ1bndLTExMTUdEQ0FFPD9FRUVDPUFBQ0JCQ0RBQ0VBQUVHQ0hISUhHSkdDR0lHSEpGSU1ISUpNS05MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlJQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2NoaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAREJFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdJSklJTEhKSk5MT0tJTEhLTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2hmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQj9AQj89REVGRENEQ0VFREZCRkZHREVLRkZKTUxLTExHR01JR0pLSEtLSUtLTkxNTExMSUxNTFtzYmRwXmxtVU1OZnNdZmZxbG50Z3BpX2FZbm5icHBia2pqZm9xdGV0bm9cb3VncE1KcXl2a2Fga2VlbXhsa3ZsbXBzcnBycXBxcnFycnJ0cm1tc25ub3BzdXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdDRkNGRUZFRENISEhERUtIR0xOTkxNTUZKTkhKS0pJTEtKSktMTU5OTU1KTU1OW3Jvb25wcGxrTVBRbFdNaWJ0cnBhbW51XFlsUFxubVpxbWtvbXh4dHNpcF1fcmtxalV1eXhvY15rZmJncG9qam5vcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGSENHRElGRUVCRklISEVITEtHTU1PTE1OR0xNSUxLSUpNSUtKSkpOUE9OTExOTkxcaGR1XWxxV2xOUFFtVFlrXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHhrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNGREhHTEhFQ0NIS0lIRkpMTEZOTExTUkxHTExITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5Zcmtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmltdHVwc3V2c3FwcHFvcXR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVERUFBPkREQkdESElNSUZDRkpMSkdGS05MRk9KS1dRS0dLSkpOSkhKTElLSkhIS01NTU1JS0tLU2tjW2leX2ljcnJaX1lqbl9lZVVrX2NbYWFRYGxoXWpcbmlpZFtvZWRwXVpca1ttcWNwc2xkZ2NjZ2Bgam1xcG50eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFxdXR3ckdHRklERURGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMWlBKRUhIS01JSEpKS0tJSElGS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT05RTk9RSkpPUFFkcWlUWVZcW1xWWVtdWF1cXGNmYWFlYmNmX19ma25pbXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NER0VFQUVDQERIREZHQ0lLTEhGQ0dLTElFR0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJR0hJRUZMSUpMT01KUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSS1lhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGFhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHJ4cnhzcXJ1cnRPQkNETE1CRERCRUlFR0dGS0pLSEVFSUpLRkVISFBLTU1KTVJJR0VASEZLSUtMSkxKSEZESUZERkdFRkpIQ0pNTExVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoaGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFSSkpNSUVDQkNHSEZIR0lLSkpJREZLS0tFRklKTktOS0hMTkdHRT5HR0tJS0xKS0tJR0RJRENERUFGSkVBS0xKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR4eXl5eX9+fXl1eXZ2cm56d3Z4WVFLRkRHRUJFR0hGR0hIRkdJR0hHSEtJTERES0tOTUxLSEpKSElGP0dHTktLS01LS0tJRkdDREBEQUhJQ0BKS0hQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUE9cX2FjY2NjYl1kY2JkY2ZYUVZUUVpXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGREZLSkZGRkhHR0lHRkZJTEpORkRLS01OSkxJS0pISEZCSEhRTUxLT01KS0lHR0VEP0VDSUlDQ0hHRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11VWWFSUV9fYmJgYGJiYGNiYWRkYlhPUVBRWlJbXV1dXV5fX2NoZ2xqbm5we3t8fnuAgoOEhYSFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBSEZER01SSENRSkVHSEhFRktKTVBFRklKS05MTElLS0lJR0RIS1FPTU1QTExLS0hJQ0RBRURJR0NDSEZEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1OWGFcYGBfYmNiXWFiV19fVFBPT09XUVxbW1xcXl9hZmZlbGVvb3d8e4B7fX+AhISEhISEhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+Sk5GREZGSERJUmJQQ1ZeSUdHSERGTUpQUEVJSUpLTkxLSkxLSUpHRUpOUVFOT09NTkxNSEtBREJDREdEQ0NGR0JNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TUEtPU1JVWllXWVhYZFdPU1RQUE5NTlRSWlhYWl1cYGBkZWNnY2tscHNyeXl/e3p/hISEhYSEhISChIB+e4GDgX17hYSGhoaHh4WFhYSEhIKBgH1LSUVFSEZHREtNXUxHR1hMR0hKSEdNTFFQSEtLS0tOTVVOT0pKS0dHS1BTU05QT05PTk5HS0ZgRURfTEVnZEZOXEleW3JtT01VbVlMRFBgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgX2FiYWJfZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUdGSEVFS09TSUpGYFNHSk9KSU9NUlBMTUxMT1JVUk9PSUtOR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXJ0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fWm5YXVZcWFVraFVdVmNaYFlbX1ZWWH9qdHV1Xl92XldhW1tmW15gYWFhXV9hZ21wbF9wd3R4gYGCg4OCfn1/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEZJS0VRVUxLTklLUlhXUU5OT01RVE5PUU9LS05HTU9TW1pUUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJvb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29ycnt8b354boByX2BgYmFaYF9na25rYmxmZ2x3foGAgn17eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOTEdgXUdBRUxNR0pKR0lPTk1NSk5WXllVTFFTTlhaTVNTUk1LT0hRUlRZV1dQVFBQUFFLSGd4bGN4cm1bTE5WeXB1bXVib3ZQZWVKZnZxbXdvgGpmeHdpV3JRaHptaWp6en1seHp/b2hvWXZ2anZ1cIBfcmZ9aWx4fG9eX19iYVpdYmRnaWlkZ2JjZGxscHBzdHNzc3pxcnhibHVncnl7cnJ2eX6Bc3V6bnx9eXhybk5LU3VOQ0JGUFBISktJS1BOTk9NUFpgWldLVFdQYV5SVlFZUkxQSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYVduTHFwXkZoeVd2VEtoeX14YHl7c25hXW1vY1JncXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXF9kZGlnZ2VlXmFiaWlpamtub2txb21qcGFjZmNvd3hvbXBzeX9ucXBre3p0cm9tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xZVU1VWVVlWFJSWV1TTE5JVFRXV1lXT1NOTk5RSVJtSGl3S2BkdndWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9acHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbF92dWtpdXt6bX54a3xwXF5eYlteYWRkZmVlZWJaY2Npa2tyc3J2Z2xpaGRnYWFrYWdzcmxnbW1yfWttaGt7dG1ta21PSEtLSEpISFFQTE5PTEtSUlJPU1JXUlZUUFdaVlZUVFRhX1BOTUpUU1RRVlZOTkxNT1BLSFFOUFVMS0xTVFNTVFBWVVFRTlFRWFlSTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1hYUl5ZV15XVVBZUldXV1dYXlpncl5bW1lcXV9jWl9jY2RmZGNjYlpjYmdmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdnanVqaGdpbFBJS0xMTUtKU1FNUVFPTFZVVFBUVVhVWlVRWl1VVVRXVVlXT09LTVZUUU5VU05PTUxRUExKUlFLUU1LTFBSVVNRUlNTSUhMTk9RUlFQUVRWUlhXXFdTUlBSVFVVU1pRTlNSWFZUWVdVWlZUUlZUVFVXWFZcWV1gXVtaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY1xaZFxhbWFeZmVmbXNkaWdqa2VkY2ZoUEpLTE9PTE1TUE5TUVBNWFdVVFVXV1dZVVNcYFZXVllVWFJQUEpOV1NQTlVQTlFOTFNQTU9VU05STk1PUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXVlZZW1RQVFVYVVVaVlhaVVNSWFZVV1tYWV5cVVheXF5cW11gYF1bYmJjZ2ZlZGJYX2FiXmBnZGZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmdmZGBiY2JPTE1MUVFMT1RPT1NRT1FbWVdXWFpZWFlWXWpkVlhZWldWU1NPSk5WVFBPVFBQUE1NUlJQUlhUUVFPTVBUVk9YUlRVVU9OTVFUVVVUVFJUV1ZbXVxaVlZRUVZYVltbV1FUVlZWVllUWFhWU1NZV1ZaXllcXl5VXlxeYFxbX19fXlpiYmRoZ2RkYlhhYGJeXmZjY2BiXVxcXFxZWltYW2FcX11cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xZWltkcW1oZF9bWFVVV1FMTVZTTU5ST1FST0xQU1JVWlVTUFBNUVhXUldTU1NYTU9PUVRYVlVVU1VZWFteXVtbVlFOVVZVW1tXUlNXVldYVlRZW1VUU1pYV1xeWl5fX1RhXGBhXWBiX1xgXWNgY2doZGZgWWNgYV9fZWRfYGJbWlxbXFpaWVhXXFpcW2BeX1teXmFgX2JcWWBbUU5PTlZRUFRRT1RUU1BXXFxcWF5cXlZbXmpxd3mAY1xbVVVXUE1PVlNOUVFPUlRSTFJUVFlbV1VPUk9TWFdUU1VSUlpPUFJSVltWV1dTVlpYXF1bW11WUk1UVVVbXFZSVVZWWFlTVVpcVVNTXVhaXV5cYGBfVmFbY2JdYWReXGJhYl5jZmlkZl1bZGBhYGBjZV9iXllaXltcWllYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1tUV1dRTlJaU1JRVFJUVVRLUldWW1laU09TUVZWVlRPV1JSWlJUVFRYXVdYWVNYXVheXVlaXVRUTlVWV15bWFJVVVlZWVVXWlxWVFdeWl1dYF1iYl1ZX1tlYV9kZF5eY2NhXWVmaWRmXV1kYWBhYWJkYGJeWFpfWlxbWFhYV1dbWVtgXFtbXFtYWVteVl5ZXVFPT1JaUFpUVVZWU1RUXl5gXl5iXGBVXV5ia3l0bH1rWlRZVFBQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUlZRWVhZX1taVFVWWllaV1haXFdVW15dXmBhX2NjXF5dXWVhYWZkXl5kY2BcZ2RoZWRhX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QVllRXVVWWVdXVVhfX2FhYGNdX1VdXmJlZXWBemhXWFlTVVNWW1hXV1ZWV11YT1VdWl5dXFRSWFNXV1VTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWFRZWlphWlxWV1hbWltZWVpbWVdeX2BfY2JhZGRcYlxgZmFkZmReX2RiYVtmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lYXVpbW1hYWVtZWlpdX11UWV1VTlNZVlNcVFZXWVZWXGBhYmNgY15fVltgZGFfenVvaFlaWVRXVFdbWlpbWVhZYFdQVV5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1ldXlldVVJYV1lZXWJaXldYW1xbXFtbWlxaWl9fYGBkYmNkZGJkWmFlYmZmZV5hYmBjXWJjaWRjZ19nXmFhY2FhYF5fWFRbWlpbW1hbWFhcW1pbWFZZWFdcW1tgXVZdXVNPVllWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheXFxaVldYWVxcXV9bWVtiVlVYXl1hY1xSVllQV1dXV1dWU1VUWFxcXmBgXWBcV2FeW15bWl5XVVhYW1pfYFxfWVlcXF1eX1xbXVlbYGFeYGRjZGVlZWJYY2VkaGdkXmNgYGVjXGVpZGVpX2ZdY2JjYWFgX19bWFlaWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWVhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZcXV5gYWBfYl5ZYV1dXllcXllYVVZbXGBeXV9bWl5dXl5hXVtbWlxgYl9iZWNlZmVmYlpkZmZpZ2JfY15hZmRZaGhiZmljZV5iYmNhYGBfXVxaWFxZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVZcW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXXFxfXWBfXVtgZF1cWFtiZWNhUlxaT1lYWltbWldaWWBdYGJiYGFjX1xiXV9dW15dWVhUV11eX2BfYFxbXl5gYmNcXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiW2NnX1xpaGJoaWVkYGJhY2FfYF9cXVxZXFlYV1hZWFdcWlpXVlhPWFpdYWNlZnJrf0pZV1xaWl9cW15bWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5ZWFVbX15dYWJgXltgYWJmY19dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBaZWddYWdoY2hoZmNgYmFjYl9fX11dW1pbWVhYWFZaVlxbWlZWVU1YV1xoaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4SCgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXp7e3t7e3t7enp6enp6enp7e3t7enp7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3p6enp6enp6e3t7e3t6ent8e3t8fH18fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a8homJiYmIkMzT0tLS09PEvb6/vr7AooqMjI2Njol/f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIqU3ebk5OXk5dPMzMzMzM+qjY+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5eXl5endvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2DhISEhIODgoKCgoKCgn58fX19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV5dnZ2ent4e3h3dnd6d3l5en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3l5eXl5eXl5eXl5eXl6e3t7fHx8fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2eX18fHt5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjYyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fXx6e3h8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3dnt9e3l7eHx5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp5en16eXt5fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4e3h5enl5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGhIOEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYF+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiIaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgoGAgYGBgYGAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgYKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXFxcnN0c3R0dHR0c3N0c3NzdHR0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NxcHFwcG9ubm5ubm9ub3BwcXFxcXFwcHFyb29ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzc3NycnBwcHBwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXNxcnJxcG58gm9wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFwh4ZwcnFvcpiCbnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF9oYJwcm+LnnxucHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXWdoXdxd5+cfW9xcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXFxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZiokG+Co51+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4d3d2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4GDeXJzc3JycnNycnNzc3Nyc3Ryk6mkeYignXxyc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f4B+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn18dnZ3d3Z1eHp4eHh4eHd4eXmftKmkqKiXfXt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgYGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7fHt7ia+mobWrrKN+e3p6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2YpZahsqCZp5N9gH99fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgZycjqCvoJ+in4CAgYB+fn9/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImHh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYGAl5qOmLGhmJachXx+fn6Afn5+f39+f4CAgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+foCBfn6fq6WWpJublqCfhn9+fX+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CKioqLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgYGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KDg4aNn7KooqCYnZ2mqK2ooJmQh4GAgIGAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4aNoK2xppuaoJuenJydoaSjnZSHg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYOLl5mXlpigm52dnZmal5CJhoaHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODg4SDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBho6Uk5eanJyblI+Jh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5OSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgYGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDg4iQk4+VmJKHg4KFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgYKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHh4WGhoaHiJGTkZCOkI6RkYyJiIWBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKBgIebiIuHgoKCgYCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo+PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIiIeIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAf4OIjoCBgoODgX9/f4GAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYmGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/f4yVgoKBgoSDgYGBgoKDg4OCg4ODg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChIODg4KEhIWEg4ODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSk5CNjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYycjoCCgYGCgoSUlIyBgoGCg4OBi5yaoZqKgoKCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpOSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoaGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZiMgIOBgYGAjpSMkIGCgYKCgYmSkIyWo6OPgYKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWFhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4t+hISDhIKDg4KNiYWMgoKDgoOCk5SWmJKXnpyJgYKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf319fX+ChIODhISLmZSamZeWlZKEhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaGhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39+f4CDhIOEhJGVg4mWmJaVlIiEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWFhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYSFnZOBgZiZmJiWi4WGhYaFhYaHh4eIhoeHhoaGh4eHhoaHh4aGhoWDg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaFg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf359foB/f39/f4CAf3+Af3+FhYihoJubn56SjZCKh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aGhYODhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGBgoGBgYGAf4B/f357eoCImqCamqOim4yBjIqIiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeHhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSSkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCg4OCgoB/fn19fX1+fnx7e5Shl5aZn5+bmIuLiYiJi4qJiYiJiIqKiYuJhoaGhoeFhoiIiIiGhoeEg4KEh4iIiIeFgoKCg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiIWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKDg4F+fX1+fn5+fn59fn19gZWTkJeYk5ial42Hh4eIh4eJh4eGiIeGiYmEg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoODhIKDg4SCgYKBgYGDg4SDhJGSkI6PjouHhYaGhIKBgYGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoOBfXx9f4B/fn5+fXx9fnx6gJGOj5COk5iZioOGhYWDg4WEhISEhISFhIKCgoGEhIGCg4OFhoWEgoKBgoKDg4WEhISFhISGg4ODhYOCg4GCg4OEhYSHkpGPjY+MiYWEhYSFgoGBgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4GEhIODg4KCgH19f4CAgX99fn59fH19e3p6hZCNjI+Ul5SEgIKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgIGAgYKBg4GBgoSDg4SEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn1/goSEgoOCg4J+fX5/gICBgH59fX19fn18ent7iI+NjY+Phn9+f4CAfn2Af36AgIF/gICBf3+AgYF+fX1/gIF/f35/gIB/gICAgH+AgoCAgoGAgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GBg4SBgoKDgoOEhYCAf3x8fX59fX6AgH59f359foCDg4OCgoGBf319fn+AgIB/fX19fXx7e3t6enp7i4+NkIZ+fn5+f39+f4B/fn9/gH+AgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af39/fn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fX5/fn1+f3+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp6enl/jo6Uin9/f35/f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f36Af39+f3+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp6enmDkI2VjIGCgICBgH+Bf4CAgIGBgoKAfoB+f35+fn6BgIGAf39/f4CAgH+Af4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEhIKBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WCgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXx6enl5eXuHiJSVhIOBgoOBgIKAgoGBg4KDg4GBgYCBgH+AgYOBhIKAgIGAgYGBgIGAgoF/gYCBf4CAf4CAgH5/f358fImUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgIGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl5eXyCh5GEg4KEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGBgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4eHl5en2Bh3+CioSDhISEl5eDg4SBfX6BgYKBgYGCgYOGiIyFg4KCgYSCg4OCg4WEhIWDg4ODgoODgoKCgoODgoKRkIuIiIeJh4aGhIaFhISEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHh4eHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl6e31/fIWRg4ODhISUk4CBgX9/f35+hIyAf4CAhIaQiYWEgoKBhYWLgoGChYWGhoSEhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhISCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6enp7f4KAgYGDgoB+fX9/e4iRfHyOloB9fn+ChoqFg4OEg4KDjIl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXh8fX6Af4B/fXt7f359gpWRf4SIfXx+f4KEfHyBgoSDf3+Hg32CgYCCgoCDg4OEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e35+fn9+fn59fXyAgYB9ho+Bfn2Cfn9+gIJ8fIB/goCBgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMi46OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4WEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX+AgX1/f4B/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjY2Ojo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgH+Af36Afn9/f35/gX58e3x8fHx8fHx8fHx9fXx7fXx8fHt8fHx6enl7fHp9hYODgYGBfoB/f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fHx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhYOBgIB9fn1+f36LhIGHfn18fH9+goJ/fXx9fYF8e318foGEg4GAfn5+fn18fn+AfX6Afn9+hJKNjYyPjYyKhoSFhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOBen5+fH5+gIB+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX6AgIODgn9+f3x8fH18fIGDfox+fHt7fX59fn19fHt7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f3+Af39/f39/gH+BgYB/fYB/f35/fn5+fn98gn1+fX19e3t9fXx6fHx9gYKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt8e3t8fHp6fXp+gn6ChISCgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9e3+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5+f35+f358fH18fH18fX57fHt8fHx8fXx9fH18fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko+NiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/fn9/f4CAf35+fn1/gH9/f3+AgH+Ag4KAf4CBgICAf3+AgIB+fHl8fn1+fX1+foyGfX1+e3uDg319fXx9fH19fX19fXx9e318fX1+fX59fX59fHt7e3x7fHx7ent7enp6e359goaIh4iKiouLiYyRkI6KiYaFhIKCgoKDg4ODgYGBgYGBgYGBgYGCgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKDg4GAgIGBgIF/gIGCgX9/fn9+foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fX18fH19fX18fX19fn19fn58e3t7fHt9fHt6e3t5enp5ent+f4ODhIiJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2BgX+BgIF/f4B/gIF/gICBgoGBhIOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5GEhIOBf359fI2HfX1+fX19fn58fX18fX1+fn1+f3x9fHt8fX58fHt8fXp6enl5eXp7fn6AgYOHhIiPjouKh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKFhYSCgYGCgYKBgICChIF/foF/fX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Afn19fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6ent8fX59f4KAiY6LjIiFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgIGCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICBg4F/gIGEgX5+gH9+foB+fX5+gIB+gX5/gH9/f4B/fX9/f35/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fn18fHt8fHt7e3x7fHx9fXyKiomJhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgH+AgIOBfn6Af31/gH19fn6AgH+Cf4GAgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4SDhIOCg4SEhIOFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19fYCAf4GAgYGAgICBgX5+gH+BgICBgYB/fn19fX59fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISFg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhIWDgX9/gH+AgX59fX5/fn5+foB9fX98fX1+gX+AgICCgICBgIOCgH+AfoCBf4CBf4B/fn59fn5+f31+hYWBgYF/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH58ent6fHt8goF/gn9/gYCCgoGBf39/goB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSDgoSDgYOBgICBf39/f4B8fX1+gH1+f39/f31/fH5+foF/gX9/fn+Af4GDgoOAf3+BgYGCgYGBgICBgICAf4CBgYGCg4GBf4CEgH2Bg4SAgIF/gYGCgH16e3t8fHx/fX+AfH9/fX2BgIB+fX1/fn6CgIGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhIGEhIWEhISBg4KBg4F/gIF+foB+gH19fX6Afn+Afn5/fX99f39/gYCBf398foB+gIGCg4GAgIGDhYKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fX19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYSDg4KDgYGDgYCBgX1/gX6BfX19f39/f4B+fn99fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICBgoGAgH6Agn9/gYKDgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgYKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hYSEhYOCg4SEg4KCgoOBgoKBf4GBfYCAfoB9fn1+f4CAf39/f358foB/gYCBgH9/fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgICAf4GCgYB/fX+Bf3+AgoKAgYOChIWGhIB+fXx9fHx7eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHWGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1+gICAf39/f3x/f3+BgIGAgH98gH9+fn6Afn1+foGBgoJ+f359fn5+fn9/gH99gIGAfn59f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgoGCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYGAf32Afn5+f399fX1+gIGBgH5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8e3t7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKAgICAfX5+f4B9fH58f4CBgICAgIB8gH+Af3+BgH9/fYF/fn9/fn19fH+AgICAfn9+fn59fH5/f39+fH2Af359foCCf39/gH9+goSCgoOFhYKCfn18e3t7fHl3e3l3eHd3eHt7e3t8hYl9e3p3enx9fXx8fX19f358fX5+fX19fH19fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYGBgYKAgoCAgIB+f35/f318fn6AgYKBgICBgX1+gH9+f4F/gH9/gX9/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5fHx8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fn1/foCAgYGCf4KBfX6Bf3+AgX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGBgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKNenx9fHt9eXt6enh6gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgYCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgoKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKBgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x8fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf3+AgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+AgICAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYGCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58e318e31+eHd2eXl6e318fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4SBgoSAhIOCgoCAgoKEgYGCgYOCf4CAf4GDgoGAgYGAgH+BgYGBgYOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f316fX97enZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfH9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCgoKDhIKDhIOAgYODhoODg4KChIGEg4GDgICCgYOBgoKBgoF/gICAgoGCgYGCgoCBgICAgoKBhIB+gYOCf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3x7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0dnuEgoOCg4OEgoSDg4GCgoSGhIKDgoOEgYSDgYOAgYOCgoKCgoGCgH+BgICCgYKBgoKCgYCBgYGCgoKDgH6Bg4J/f4GEhIGDf4KCgYOCgoKBhIODhICCg4KDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX+AgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgYKDhYWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoKAf4GDgn+AgoSDg4KBgoKBg4KCg4ODg4OEgIKDgoODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKAgYB7fYB+fHl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgYCAgICCgYCAf319fH19fHZyd3h4dnR/dnV9h4eDgoSFg4OEhYSBgoSGhISDgoOEhIGDhYOCgoKDg4GDgYKAgoB9gICBgoOCgoKChIKAgoKDg4KCgYF/goOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgoKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHx4dn92d3+Eh4OCg4WDg4SGhIGChoaFhISDg4SEgoSFhIKCg4OEgoOCg4KCgX6AgIKCg4KCg4OEg4GCgoODg4OCgoGBg4J/goOEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fn1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIhoWEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODgoKCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4OBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB/fXx+gn9/fn5+fn19f39/f4CAgH+AhISEg4SFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKEhYuIhIWEhIWFg4eGhoSEhISFhISEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4KDgYOEg4SEhYOEhYaEhIZ9g3p9fn+De4WDgYSDgH99fn9+foGDgX17f31+gH59fHx8fX19fXx9fX6Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWDioiFhYWDhoWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhGp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWEgmh6cnNzfIBygoR+g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fX18fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgoKEhoaDhYSGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OFhIaGhoSGhIOEhIZ9cHuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId6bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KCg4WHhYaAgoWDg4WHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foF/f3t/fn2AfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIWFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WDhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIV5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGBf35+f39/en59fH59f39+fYCBg4OAgoOBgoSCgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4eEhISFh4aFhYWFh4aIhYWGhYeHhoaEhoaJiIWEiYqIhYSFhYaFg4WFhIaGhoaGhoN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBhIGAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGg4aFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SDhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WDhISDgYF+f357fHt+e3x9fn9/fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhoWFg4SFhoWEhoaHhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaFh4WGhoiGhYiHh4WHhoaIhYWGh4WGhoWDgoWFhoWFg4WDhISGhIaGhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH99f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSGhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYKDhYaGhISDhISDhIaEhoaEhYWDhoaFhoWEhoeFhISFhYOEh4aEgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn59fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoWEhoaHhoiGhISEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFhoiFhoeFh4aHhoeFiIiHh4WGhoeFhoaFgoSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4SHg4SBgoSFg4GAgIB7e319fHx8fn18fHx9fnx9fH59fHx9fHx8fH18fn17fIB/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhISGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoWHh4eFh4aIiIeHhoeGh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt8fn18fHx+fXx8fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoeGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiHh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaIhIOEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn5/fH9+fnx8fX99fH19fH57e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fHyJh4OGhYaFhoaGhYSFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaEhIaGh4aFhIOFhYaGhoaGhYaHhoaHh4WDhYWDgYKCgYOFgoN+gYKBf4SCfn5+gH5/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhISHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4WFiIOEhYSGhoWHhYWEg4WFhoaHhoaFhoaGhYaHhIOEhYKBgoGAhIOCgn2BgYB/g4F+f3+AfX98fX1+fXt+fXx9eXp6eXt8fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWGhIaFhYWFhYWDg4GDgYCBgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeGhoiJhoWIh4mHhoeHhYSGhYWGhYSHhISFhIiGhoiFhYSChYWGhYaGh4SGhoaFhYaCg4OFgICBgICEgIOAfIGAfn6DgH1/f4F9gHx9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KBgIKBgICAg4F+fn+AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaFhIWEh4aGhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAhIB8gX99foJ+foB+gH5/fX1+fX57f317enl6enl6fH15ent7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4aEhISChYODhoKDhYWEhoSHhoWGhYWDg4WEhYaFhoSEhISFg4WEgICCg39+f39/f4CEf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXl6eXp7fHl6enp7e3x6e3t7fH19fX2AfX18e32Af318hoOGhoWGhoOEgoWChYGBgH9/gIB+f4GBfH5/f35/gIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoOChIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOEhIWGhIaGhoeGhYOEhIOEhYWFg4SDg4SChISAf4KCf31+fn5+f4R+e398fICBfoGAfX6DfH5+fX1+e357e3p5enp5enp7eXp6ent7fHp8fHt8fn59f4B8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH5/f4J8fX9+fn9/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGChoWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhYWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYF+gn99f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX59f4CAgIaDhIWEhYKEgoKEgoGAgoB+fX5/fn9+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFg4WDgoOFhYKEgYOAgYCBgIGCgYCBhIODhoWFh4aFhYSFgoKCg4WEgoGBgYGAhYOBf36Af358fH59fH6DfXt+fH2Af4CDfX2AgX9+f318fH19e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/f4B/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PD45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT0zNjY6Ozw4QzxBQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWy8vLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NTU09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw7OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OR6jZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1svL0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19jX19fa29ra2tra2trb3Nvb3NnX19fX19fX19bW1tbW19rb2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZElJTE5AOTk6NDtAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTUaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbLzINtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0jYuLi4uLi4uLi4qKioihv729vb29vby8vLy8vbSLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOUmJMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXy81OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFhSU1NTU1NTU1NTU1NOeq6qqqqqqqqqqampqaybVFNTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUJAOTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18vNUiwxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpp5cVldXV1dXV1dXV1dXU32wq6urq6urq6uqqqqtnVlYWFdXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDs+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fMzlw5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqiZmFiYmJiYmJiYmJiYl6Fs6+vr6+vr6+vr6+vsaFjYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk6Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzM3EwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs7OzcvMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzLy8vLztLS0tLS0tLS0tLS09PRzM3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo7ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M3Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7OztLTz8/Q1NLPz8/T0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19fX19fX19bW1tbW1tXV1tbW1tXW1tbW1tfW1tfY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztKrnM/RyJSn0tHHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTEJAPT08PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK2nKWk0ZqsnLDRmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/OnZyRnryViJyexJKGnZzNz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4+PDw5Nj9CP0I6NjQ4Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv5igm7KuwcmYmMW8yZeZxdDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9COjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P07SZlqq4pNaUlp/O0ZKZoc/Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PDk2NDo5ODo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8qgo7/KnKWMp63Yqpmq1M/Pz9Srmn6jj6Szn8Ob2q2jv57V0dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD45PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDUrJuni5Wh0IqSnsfLiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbX19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q07aysqWZqtHbpZmz0NujmbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXEopmWnauSp5qgrZCnmJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6DH1aKrpJ2xpKWooK+noqmd0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtLQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09PIkY201p2SjbrVmpKOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVaWpbTF9NSkxKVUxGQjw8P0ZFR0tIPTY2Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MjB1dPTucfV09O5yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRExMQD43NzU6ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHT1NLS0tXU09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj09Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRENJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZJRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0FMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhRQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29ra2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODg5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ojg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5OTo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3F0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h1fHZ9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg2NTQzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg0NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7Oz4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojc2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBGPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2Njg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm6ubm4t7e2tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NjQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO1tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3trW0tLOztLS1tbS0tLW1tba2tra2tre3t7e3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+QkA/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utrausr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmpqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BBQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpaWlpaaoqKioqKWnqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDY1NzM4Ojo6Ojo8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OztAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpaenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioaCfn56enJycnJ2dnZydnp+goqGio6OjoaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5iXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAP0JCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc1Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5KUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6afm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6Wmpqako6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODk6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/PkFBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+mpp/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6elpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6SmpqWlpqempqKdnJ+hn5eRkZCUl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3OTk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaampaWjoKChoaCZkpCPlpuZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaCgn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSk5KRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU5OTg5PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5WSlJicmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqOjpKSkpKKhoZ6bmpmXobWemZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NjY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpmXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Cfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKCgoKKkoaKioaGgnpybm5uZn6ubnJqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY6NzU2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaCls6ygoJ+fnpyZmZqam65qdp2dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJuam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCfppKbq5+goJ6bmpmamaiERH+fnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnqCeYpymnp6cmpqbnKGjUUeDoJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODo7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZuapmZdo6CbmpmbnZyudUlMhqCcnJ2cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8Pjk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmKSAUniimZmanZugpF9WToehnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGgoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFxcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuYmJmgiFtflJqZm5yco49kWkyBop6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbW0xGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiZn5ddXXaXmpydnaKBZFlNfqKenp6dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubmpydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc5ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmaYGFggJadnJ6YdGNVToCin5+fnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmZn2leW2V/nJyejGpfUFKGnpudnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qal5NzaGFUdpOXnIdcVlBXipKOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY6Smp6SfaCjlqScbkxPY4aGgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CEoJ2Of2yWpZWfgIl/X3J/gIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2OTM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5/gKKLfG5SdZyMjFpxfXx+fXyGjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfZiad1hPTHCUhoJMYHBxd4iFio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY2jjVUvMD13h3d2QUVea22EkImJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVGJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KmnGdBWkg7d3lrZ0UwOFlsc5CPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRfTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mpr49Kb6F4QXt3ZGFQUVtHYG6KoaGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKN4YMDWpkN7jIB1T22OdlNkf6Oop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkp6eZnaSlo6KdYn+9wK93nqOalGVMYXhtUXSVoqKgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioaKnoaaupqadnmqEnLqPptChmbGoWEysk1Nlj6CeoKCenaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq+roqKGd359cs/JsZunr2tVqrBiWoemn6WioZ2fopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7e0tbazra6tj4aDbo/NuZWRo5d0VG96c257laaqp6OfnqObnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAP0JDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K3u7u7ubnBuLS1oIh5ZFmft8CmqZ2Id2txb3h4en2GjpKYnKKlpqulpJihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW3wcbMz87Myb6zpJBzZlJEi5eJiYh+eHFuZ2ZsaWtxcnFxcnR8jKnExLuip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYWZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PFx9vj49rLvK+kl4h0WVpRQ2l6bG91bmtlZVlXXlhcY2lpaGVgaIm0wMC5qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3b21bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxr7N0dXKuaedlIZyXlFUS0RbZl5ka2VhYGhZVFhSVlhZXFhadJm2u6u0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudnJydnJnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/wsHHy8i3lHVlVVBPVEg+XmteX2ViYF1kYVNWVlVTVFdym6uwqqiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO5uMObYUlER0tEPVtlYmFoY2BbY19XUU5PT1V/tLqsrqWko6ekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnZSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent3bmtpaHZaZ3N4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTExMLEwa2DT0ZNRTtNW19la2VfW2BZWFJNVH+iqrm1sqypo6GtqqynrZ+stLS/w765uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dmVmampoXmtwbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCxpZqWEc/P0deY2JqYFpYV1NVdpm2vru8urysraapu7q5t7+ztbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rraussZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWh2aGpqdW55bF5kW1ZgWUxIRDY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnOxcbGvalyUEswWFNVZmFTTk9wqcjIwsTGwLy+tLGwsMG+vsHGwL63tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2tr7WkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOi5R9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ9eHBnYGtqd21pZnZvdGNdY1VXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPCwbyRP092folWTG+ky9TFtr+/wL+6u721s7PAv7m/wrnBt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5gHNwZmVnZGxlYmtub29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzFp3drg5CYb6nIyMfRwa+9vbi5u7u+t7Sxur+0vL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX16g3huZmFlYmFjZGRqY2dkW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Aur/AvLvFvbrAxL+9vq9zZX2Ri4nRxb+/yb+wwb+6t7u+ubW4tLi8tb24tbSvs7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhY2Noa2dnamZqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdaNt7+7w7W6x7a1uLq8uLm2qqOYjn+Dyb+/u8G+uca9wr+8xbi3t7S4tra8u7m2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVnb2plbGhZWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/Ed6fMvce3ubettrS3ubO1sbzJw5VLesq+v769vL/Iw8XFvse4trO1vbi4uL67urm8u7q0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucWdxa3RmY25gXFVIS0pESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTWr3R/usjPwsC4rrS0u723ubG9w8qPQ3TNw8K/vr28x8zHx8THvLTAwcC9u7zAw7rAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFmbGpvdW94ZGhjXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsbJ0ppxcqvS0czKxLW6v8TIvr60v8DAeVJty8bCvsG8v8PMysfFxsG5wrrFv8C/wsi9x8fGxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0cG1tdGxtb2BjX2JiTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8TQw7q+vMS+t7zAv8nPx8jKysKHcnOjy8zLzcrGwsPLzsG8uL26sXBjYrvIxMDAv8TAysnDw8PDu7e0wbnAvcLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaahn5uCe3qIe21teHxgcWRcX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9rDvra+wL6+uqacqbK2w7+lenZ4msTHy8jBw8DAycrBv7u5saF9c2qtyMXEv8DBv8vHw8DIwL2sq8Czu7vBvsDKzsrEvbW8u7m/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3l0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEuW2szr22ucC8q35uaG5scoGVmHN3fJe9v8bAucC8vsXEvb24sbCZkH6Am8rCw7y9v7/Dw76/yL2/pZXDtLa1vb6+zszMwriyuLi3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cW9qXGBhWlRRQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbR2gLO9trXCpYdpWl1gTVJbWm5zd4CfuLjCurO7t7u9v7q7u66km5mIkX7AxMO+vL+7u7i2wcK2wqCBp7aqsL7CutLJyMOxsLS0tby5vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra8tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z3eG5yYV9nXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmohHiJoK+1nmtlZlZYX0lJTVBTbHeFpbC3vrmytbK7uby2ub60lZynlqFwrsnEwL2/ubOusr27rr+fcnqjjZOcn6XDwr+9rKqvrbK6t7q+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybWBkYlxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fq4h8doygmWBUQ1dWSGFrVk9GSWCNoKuvtrq1tLKsvLm4tbjBvYuZsqOmcqXLwr+5urWupayzsKa0oXmEp5eRj5COjpmwtKWoqa7BtbOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3Zzb2ReaFldXlNPTkI/SkNBS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7WRgniIj29OSj9jWkFOd4CUa01BXIGwtbO1srSvrLu6uLa5v8Z2hKqfm2Wnv7i1srGtrZ+kp6edp6q6xcvTwKSQlJeCg6CgpKW8xKyup7Crr7GxrbGurq+5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2dG12amxdXGtVXlxQTkhER01CR05HODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHtYRkFOhlpKSlh2jYBjQFKiubO0srCxrbC5uLa7t7q9kKKyrKRzq7Cpq62ro6ignZ6dmJjO5uHh39XGp5GJeW1xl6GpwaaoqKGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusayqqa6vsK2lpqqkqLOurauopqapq6aqp6uyrK+zsauploF/gXdyeWl1dG9lVWJkWF1ST01JQElSRE5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+xu6qZmZVpTkBSeHFQSUlLZ5uBWUVRrbuxrLOvrqyttraytLWuqaafmpudn6aonqCoqZ+hp5ablpWb28/GxszPzL+bfWxqZXulxqqXoqKfn6WgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqaSpq6aprKumoYh5g3x2f3pjeG1uXFFpVVBPR1BNTUNQUkA+Oz40Ojo1Ozo9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqLzCq6S+aUVSnIJRV0lJX0tTjmBjYoCutaqytK6qq6+wsrOtpZ2Rl5OPmKCfoqCco6SfnaiTmZSTrpxjcpC0xsfHq3xpaW5mlLWLm56foZyhn6Oop5ynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJaTj4+SkZmQlpWYl5+Ym5qbpJmXlJWanaCdp6iloKOioaOfnKCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fYB1dn1ubHtkaFZTZE5KSEdPU05LTkg8RUA9MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutra6ubq3t7uuqKChqaGqxr/KoVBBcp54T25LS2JldXNfWl5wj7GvrrO1qqasrKObmZSNkZWXmJicn6KinJ2knpqklpaWl6FLLUhaiLPCwauAcYOJg3h9lKKen6aenZ+jpqieo6afqp2qraqup6iwpaOkpqespqGlopuZnq+orrKrpquqoJuYmJiVk5aak5WWmpabl5iYoZ6cnJeboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GfoKWipqCJfIB+d3l8ZXl5YWJTVmFJSUtMU1VKU1FNOT5BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWdo8fHj1dTSWSjXGV+b3JdUGtjW2RfXWuPtLCwuKymoZydmpSYmpmQjpGVkYyOjZOZopyXopiZlZyEUmt/aWCUr66eg4GdnqOaf6qqpaGwo5qjpqaqoqGqoqmkqLKrsbKruaimq6erq6isrKehoKOxrrKxtKqyr6OZnJ2eoZibm5qYmZuVlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWooqejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbWVcU1taTVJLT09WTVRNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6rpI16VWhydXVxYnZ2WFdjYGNnWVhXZayurK+nn56ioZeRlJygnJmYkpOfnKGjmp6alp6ZnZaYfGuQootecJmYj4uNnqOlp6e3tbCms6yhra2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7W4s7itsrSkoJ2loKyhoaKhoJqZlpagnJuYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGDf3x4dmp3dl5tW1JhSVJWSEZWV0tDTUg9S0k4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqK6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuioaCkgG6CcGBjWExbU1pNTFBYUkhNTUeXrKqppaCfmpGSlJiYlpaVjIiLjpWdnJ2cnpadmKWfkYGAs8rKk2KDhYaPiJWgo6GuvL64rLS0sLewrrSppqSlrKm5s7W7w7zDwbe7tquusbi3vK+zsLXBvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaign5+oqKWln52qoqKem5+ooKSnrZmgo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mGhX52cm1pd21obl1YW0NXTkpHTUhDRk49Pkw+NDw6Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqamUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnYpiV15lYFdNUUc+Pj9DQz8+QlF4qK2pqqagnp+ho56fnpudnJSTlZWenpiUhZ2Zn5mqpY1+gbDU0rF0YXN7g3iNlpmVpcDAvrW5u8DDub27rK6nsa2xwra4wsbAyMrAyr+wubm9uMK+uLS7xsS9w7y4tKqzraqztK+zrqqvo56sqLeyraOwpqGjsLGusKSlrqOhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhESlBJP0VCNEZIOTY8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw8Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5V9YF5lYFFHRD1DP0U8Pzk2Tn+qs6eko6KgnqWspp+YnZWSmp6ZlYyKhoiGeGyGn6Khqa2QfXCk1ZR7h0tacHRxgoN6eJO9yMK/xMjN0MjLw7K3tb6yvsW7vszNxszMzNLHvr/Awr3Hx8K4xMrJxMHHv7q0uru1u7ewtrKru7Kuu7fAu7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5WUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtmWlxGTE1FRFRNRUJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEA/QUFBPpKroKeup6KrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9c2phV05FPklZfHBiQj1cjq6soZmbnJ6emZeXmJONj5eXlI+NkIyCg4J2cnBsb42kq66ujoVmg6h/fHZfYmBkaWhjW1J2wMrExMvQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsbGysjPv8nRzcfGycbCvcTBv7+/tb6zrb/Aw8TIxcjEr7+5sri9xMLBu7y8ta6np66ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXVzZWJncm9nX1paRE9NQ0ZRSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6Oz5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOem52Wa2ZdVElEQD9LhZ6lmoSgsq2jnpyfmpiXlJOUl5GQkI2IhISJh4OAgYGAeXFxbmp2orayl3R9fHp6fnl7koRlXFBsaVo8bs7P0MTN1NXY0dfNxsfJzMPFys/K0tfS19LV1tPUyMzHzM3K083O083GycrLwsfMx8nJxr/Ds7PIxcvLzM/Hyr++v73Bx8XMzMnJwMPArrCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3dqZVdYUkROR0BJUUM+Qj06MjJBPEU8Nzg8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY5Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnWNTTEpEQz9CUq3RvbKvppycnKCkoZ2alJSVlIp9eXFsZWJocnBye4WKgHVwbXBybYSkmYZlfHh3f4+XnJBpaGZkqKV1P6TYz9HCz9PW2NXV0svJztDLxs3SytLV19nW2NPW2M3Sys7RzM/RzdPQwMnIy8TMzczPz8bHyLbAy8DSzczQx8rJwMTDyM/N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYWVzY11SXEpLR0FGSUo/O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpaWgoqNbSUBBREFGUHWxr6aalJefnJqgoJ6bnZqViXdpZGFfYGBfXl9fXWFsdXNwb25rcG5yhJCGXl9eWVdxg318XFNxVYq3iWPP1dLQzNDN09fW09XQz9LT0cnT0cjQ19fY0tjS19nU1szPz8nN0szP0cDHxMnHz87S0dLIzM3Ay83G1M/Nz8jFy8fHyczL1NTR1c/SzNPCucWxpai1rqibqKulnbKosLOsrJOPk46Iio6Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUWBKSkNGQ1NOPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI8Ojw3NDo+PD9APUZBRD2CpJygpZ6lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6up6qooaOsZ0M4PT5EWIKqqJ+XlZeZmpyfnZibnZN9cWVjYl9fYV9eYWBeYWBfYGVtcHBtam1vc3SGfk9PUkpRb3tsfmxTclqSrIKR0NXU0MnPzNLW0tHWzc/V1dHF0dPK0NTV1s7T0djX19fMyM7Eys/Nys3AysHJys7P0MzQzs7Mz9DIzNHRy87Lw8rIys3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO/u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSUZGRU1ZRTtAPTMzPDw4Nzg2NTs+QD05PDw4PD45PEA7QDo9OD85ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+ZpaegoKOnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksnxIRkI7Vo2hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYF5fX15cYm1ybm1xcXJydnFUT05NXGF1ZnqFdllng4x0nszS0c3GzszN1MvO0szK1tbQzNDTy8zQ0tPKztHV0tXWysDKwsbNw8nKw83ExsnLy8/Lzs3RztTMx8nQzcnHy8bHwsbKzM7R0cfQz83NzNDFx8G4ub3Dwr3DubKyvrC7w8O1qpiloZiWkZWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTUlRUUI7RD87Njg6ODo7NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9vdo+ajYyXlZCTkZGVlpWQi3tlYmJiYF1eYWNiYF9fYGFhYF9dW11ncXFvcHFtaW1ycV1KQ01OXVtgcWJIXW9nVpHGzc3GxMbNytHHys3NxdDSz83M1MrHys7Px8bO0svQz8W6xL/Gyr3Dx8nOxcPIwMfOyMTNy83QycXF0MnGwsbJxb/ByM3MzM/DyszJx8zQxMXIu8fDycnCz8C9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdJSEdJTVVHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KGoamTjY2Wj4WDg4OBfYSEf3NfW15dXmBeYGNkY19dXF5fYGBfW1pcYWtycG1taGdpaXeDYEZESEdCP01MUVRnXk6XvcfEwMK/wsfJyMjJx7/Ey8XHyszJxMHKycHBy8/Ey8i/ucG8xsi+wMbPy8TAw7vKx8i7ycbFysG+wsvGxcS+xr69wcTGzMbFvL/Kw8XH0sXBycDKysfIxtDDw8bDrsTLx8PKt7+8urOprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdDR0RMREZTPzU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL64vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bV56e52RipKWhnqAhIV/dXh1cnBfWltcYGBiY2RkZWRgW1xeXV5dX1tZWlxhbnFtaWZna2hsfnFbTUlHOEY/Q1NKVGRYlK+/uLi7ubfAwcHDvb24vL64w8nExsG8xr+3usPIv8HJu7a7u8XDv7zCzsPGvr61wb7Eu73HvMO6tb3GxMLDt8C2tr+/vM3Evba6yLu/vszEwsbDxsnHycbQxsLMx7LHycPOzMDFwr+8srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRUJGSkA5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1q7e0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys/FycXHwbrFvayup2Bjd4CSi4iLhHh/hoZ/fYN7dHRjXFxdXl9gYmNiYmRlYl1cW1xeXF5dWltcXWdyb2tkY2lpa3SBbVhLQ05XOTpNRkhbVJWis7CzsrKysrq0u7C2r7OusbrBu8DEu7+6tLG6vsC4x7i0vLbBwr24vcbBw7u1r7O1u7+0xbi7tay5vb7AvbG7trC3urPGvbevvL+1t7XFvb7DxcDExsbHzMW/xca7x8u/z8nHw8XBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpHQkRBREY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJpbZ2+IjoWIiXp4foWGdneBfHNoXV1dXV5gX2BkYV5jZWNfXlxbXlxdXlpbW11fa29sZmNmaGhqd3tfT1FZRTk4RklESmGfl6SnrqqoqqeyrLSvsaetpquyu7m1wrm5ua+qtLm7s8G6r8Cxvby7tbvHucO3raqosLLAtri9sLGosrO1u7yrrranrrauvLKwqriwrruuu7i7wMG+usO/xsPFwLzGwcfKuMXHxb/Hw8K5xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMTE1KRUFDP0ZBOjo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc3Sy8PFwcTPxs3Bwsa/xMTDw8rCycq/wLzCurO1tcOvqrGTW2l+koiOj3t4fYmFeXuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWlpaXGNtbWZkZGRmZ2p6bE9aW0RAOzY6PU2KmpGUn6Sqoaahqairqa+ipZ6prLS1sLy4r7aup623tLO7t7O8r7i5tbK7wbLAr6Wpo6uxs7OovaqrqKusrrW0pqiuoaWwqbOnp6iupqi3rLGzt7q6u7K8vr6+xL+1wcDHyLe+v8W3xcO/u7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlNTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8HLvrvJtr3DvrrKuMHDwrW2vLaxr7W8rqirk2NtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1hXWVxfZWpkYmNhZGRobXddTEpWVlFRPkJ6nZGOh5mcpaCgnqOjpaWsnpuao6Srsa62tqavq6aps6uzubC1ta22ubKwurqxtqWgpaCmsaisqbmqpaenqKezraCnpp+cpKWsn5+npKGhsa2trLK1s7Owtby2u8HAsrq+w8GxubnCs8C9wLW4u72+vMLHxMPEv7/EoIR4cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbq9tqCelZ2gprq2q7Ozu7PEz8nLwsW4t8fAzL+4yre7xbizxbizv8CstryyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBeXFtcXFhZWFhYVlhaXV5jYmBjY2NiZWZrcldQYGdvalp8j5aMi4KWmpyimpydoaOhpZyZoZqdqa6ssLSiqKipq6uktListq+ssrSus7WvsKqfnp+korKkpqq4raKmpp+oraqZn5+emZ2fpZqZo5ycnrCprKiqq6ytsLK4r7i5u7C2vLu6q7OyubO9tLeysbW1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTYzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uci4uL+3ssK0sbu7rLq6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFdXV1dXWFdaXWFiY2NiYmNkZG9sZXR8b0pPgpCUioyFk5qbo5uXmaKkoKKanZ+Zl6yrrK2woKShrKqmobSvsLGsqK+yp7qzprWgop+co6Kto6Kqtqqio6aepqajlpidl5manaCal52cnZytoayoo6Smrauys6q1sLKrsrm1r6qvsrKzt7Ouqa2usbexura6vb+3s7GUhnp2Zl9mX1tZVlNaVUtbUUxKRUhLSUM9P0JCQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+ynaWjmKWxw7W2va20uMLMyMa/xbbBwMfOt8DDvbO5ubLAtrG5u62yta+fmqSqoJSbkHh/g4R/eG9xdHFoZWRoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVVdgYmNhYWJgYGRmcXF2eWA+TGByjYmOiI6Yl5uZkp2dpqGcnaabmpippK2uqZqhoraooJ+tqLWppqetsKS3sKO3oKOcmZmqpqGarbmvo6GknKKgn5OVoZSWlpuZmJaXnJWfqZ6qpKKdo6qqsK2otKyqpq2ysKWrrbOxsLCvr6eop7KtsbSwvLS6t66jlIJ6d2VfYVdZWFNSVEtNXkxQTEdITUxFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rZ2np6Kqu8C9wLmutLjBzMjFwsO9xbjIzLLBwsGuvLu1u7y1ubmwsLGqnJqhqpWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1ZVWmJiYGBhX19gYmdwb3RSMSwpP3iOjomMlJiWmpGbm6SioKSknZudpJ2praSeoKG1pqCgoqeyoaWnpa+lsa6rtZ6gnZWVqaGilK2xsZ+io56emJuTi6CTkZOYmJKWmJiXnqebp6KimqSlpaukpbCnpaKrrK2mqa6vr6uoqqqzpqarr7Sxrry2sbCvn5J7eHNlYlxbXVhOTFFIUmFNVlBPSk5PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLyxt6yepaasuLu8wcW6srm1xMnJwMLGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZoKSMinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVlJUUlRfX11eX1xdXWBhaG9uSSsfKUVvk42Hio6bk5uSl5uhnqmioaKhoaCap6mimJyisKmgoJykqZ2nop6srKqpra2ioaGVmKKanI+rqLCcn6Kfn5eZk4qdkY2Sk5aQmJiTnKGjnKWhopWgoqSlm6OrpaKkqqSqraWtsqmmpaamtaapqK2ztbS5uq+rrJ6Mc3FwYVtXVlZSR1FPSFpcT1JKVEtTTEVHSkM4Ozs9PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Gtnainr7m5s8DIurXAr8XIzLrByczItcm9sb7Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5QWFxaW1xcXF1cX2Jrako7Lz1JXIeOhYmJk5SclpabpKSmpKmkp6ShlqOropOXo62nn5uYmp+erpmcqrOfpaafo6OhlJSblpaSqamtmpyfoaCblJCMmY2LkY2SjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq6+krrilo6SirK2qqKuvtLeyvbWzq66YhXV0aVxZWVNVUkZYTFFbWE1VT1BMUVJJT0lCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njg6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zMxsW4wM7Px7PEu7e7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFBYWVlZXFtaW11eY3BsTUJPdGxrhICLh4+RmpmVmqakoqqopa2ipZacqZ2Tk6KnpZyXj46Zna2WmKeqmJ+dlKWgnpKRkpGTlaiqpZqYmZ6elo6Mi5OFiI2Dj4uRlZGgnqGkmZaflZqhop6Um6WlqKiooLCwp7G9p5+jrLSqrqevtLC5tcCxrrCrkX9zdGJXVFVOUkpHVlBSUkxMWE5LTE9TR05LQUNGREM+Qjc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxtri8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5xam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRRTU5NUldYWVhYV1pbW2BpamZsZHV2YXt8i4GMi5CUkpejlpumo6Kom6SVnaKYkIydoZmWloWEkZqjj5WjnJWWlYeimpuTjI6KkJqlp5uVlZeckZOIlI6LgYuNgJCLkpKSoZqgopaUmZiVoqaajZmlp6inoaC0sqizuKGdo7asqq2ksrKmtbu0q6yxoop6dG5eTlFRTU9ETk5OUEtGTk5KSk5OUUhNSkFITElIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4NTg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKqloKmmpLOqorLEtbWys8bFt7rDyszGs6y6vbS4wK+tqbCepq67r62gmpuelZWIfIRuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlJSUFFUUVNVUU5NS0tTV1dWV1dXV1pcYWVaYFtueGV2coV6hYGMiYyXm4qVl6CeoJejk56Zk4uFl5mLc4yCfY2XlYWSmZCTjo17mY+cjIKJgIqYoKOekJOYloWOgpR+fnOKjnqQh5OQkJ2bmpqSlpCejqOjjomaoKGjpJuitK+sr62gmKa4pqWwobGunLG8qqmvqZmEeHRkVk1SUFBNQ1NOTFBNQlBRSElOU05JSkpFS01HS0s+ODQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpqWmpqayp6a0wbivtLDJxLi5wM7GvrOtu8GsrcStqKGmkp2mt62joJGWl5KQfnh/ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpHTlNTU1RUU1VYWlxoWFpYaXFrZkZQaYl6jn+FlpGGjoyblZqVlZSRjJSIfpKIXjtWbnuLk4mAjJGMj4aGcouEloF5gXuGlJ2Vg5aOkI+Dhn2TeHFvho1+iYGQjpCXmpmTi5CKnYifmIiIlp6aoaCXp66pramonpats6KlrZmtq5iotKOpraKTf3RuYFtOU1JXTERUSlBMTEZOT0lFTFFNS1BKSU5QR0pKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebegoq2hpqaqoKepp6OqsKintMK5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpmHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtIRkhOUVFMT1JUVVdZYGBVU2RsY0Y5OHqOioh2gY2Hf4WIl4qUlYmRhYOShHeHfl9JUG13ipGDfYSMioR/f21+f5N3dXZ4hI2acFGNiIqGfH55lHZnd4aIfoqIlYuOkZOXjISKiJWEm42ChJKblp6dlKSjqKmlpJ6bsKqhpKSRpqqWoqqcoaaninduZl5cSFFRU01JVU1TSUxLT0lIRkpOTU1VS1FSUEdKRD03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnp6+sqrW8tri3s8G7tqe5yLi2qKi1tqqyvKeelY5/iZSplpWLf46Eg354cW9YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlOUVNTVVpmXVZhaVpaUUuIfY2AbHd/e3eAh49+kJmLjnmDjX1zfndxbXRwdI2NgHp+iaqEentodnuOcHJteIGLjZJ4e4B7gHdzcpJ4aHWFhISFfJWLiIqNi4B/hIuNgJSEfICPmJSclpGfnameoKGdoKmln52YjaekkqCglp6epIJzaWJdXUpXUFJIS1hST0pNTFJKSkpMUElMUU1SVU5GSUI9Nzg7OTk+PTo7PDk4QD86Oj48Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZicn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6Rf3eGeHx2cG9qWUtISUhHRUhIUFRUVFdXU1VVVVVWV1hXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE5RUVNWXmJhYGNWaIGOkomLdGByenBzeoSMeYGYkn5vhI16dXluan2tfHSQin56hpKAfH90ZnV8hmxvaHN8io2HgG16cX1xbXaPcWhxgX6OcESLhYKDhX93eHqMhn2Me3V9jpKPmIuSm5ujlpmdm52eoZyWjYulm46dl46WmJB5b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUU9JT1BMRkQ9Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rp6mwr7Gru7irur64s6ynm7CnrJuPlpylqaShmJqOhJJ5iY+Li3ZxfG11cWptalhLRkdFQUBDREhMTE1RUU9RU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFellKTk9RVFhcXmBcWXmZnLx7bXBcdHFpdnODjHZ5iYNtaomQd3J3aGl/gXGWkYqAfZV/SZKZbmd3foJtamRseYWQkoZrc2x8bnJ8hmltcH9zjYmFhnt9fnt3cHV0hoJ5gXlwfI6MipODlpaYmpCTlpaZlp2WjIOJn5KLko2GkJaAb2pvb29ZVlhUUlJZT1JVVFJYVU1PSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYmp+krK+iraqota+urLO/q7zCv6aimpWkmJ6NhIuUoaKYmZGTi3OOeoCGjIZ1b3RscW1la2tZTkRGQ0A8Pj5CRkZHS0tLTE9SUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSk1OT1JWWlFXVVObe1iQYGpwXndqaHl1hoVyfoSBcWqWj3JxemlpnI5MeYSRiISNZjF2h3JrfX2DdGZldX6EhIWAZmlsdWtwgHxocXF8bpONj3t0fX1xcW92bYN/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW05QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo6VmYuOhXqEkJiVjZCMkIdxh4J0h4yGenBzcW9wZHBnX1RGSUM/PDs5Oj9AQURDRUdJS09RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUtBSE9HXqaqmGdyb2V2Z2x9fIB9doCCgnZvnZJyd35xc5KGNXGcp5yNoKGEooV2cIZ7hnxzjK2NiYFoZmJqbnJtcIN1aW9YdXCOm5F2bX97fW5ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2OfHRycW1gXF1eXFpZYV9STltaWFdMSElGSUg/Q0FCSD9DRD07Ojc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTAxMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpGBk4eVkZ2kp56vlaW0qa6wrsGyu8HFlo+MlI+AiHxugZCSiYOKh4+FdYODbJWIiHx1eHhteG53ZGpeSVBHPj83NDQ4Ozo7PT5AQkVIS0xMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1NUEw3Q01QUUJGfGp1cnJud2dwgYJ3eYB/e4h7c56XeHyEfoOYg5qcYIWpnpyLg5COenaHfomIjnOKl4+Ee1xkcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVnaGBbXF5TXGdeV1BUWFtVR0pKRUxHP0ZAREM/QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTQyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2eppGgq6CxqK/AsrvFupaOkZOHeoZ2a3+LkYN9ioOOjHiDgHOghIp9fYF/cIF+emh3a1JYTEBFMjExMjc2Njg4Ojw+QUVGRkdJS01PUVJTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklLTU5RS0pTWlZPR2B4f3KAcnRrdomGdXiEg3qSg3WdloaEjJCTpIysqUiGrK+uioGAlIqBioGFkqmHgZiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZHbYB3cnl2aG1rX3Z9goh/h4SLeZScm4mKiJF/enWKdnx4bW93foF1dXNtXF5eXGNkWGdmXFVQUFdZUERMS0ZPSUNGQ0NBP0NBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2Nzc4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5COlZeSlqCdrKCmuK+zvLOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzg0Ll2WcHOjVUZJS0xNT1dfVmtXWVpigYl8i3l8en+LjHqBhIx9lpF/nZ6VkpmZpKySmbuxprrHw6eLjKGljpOJgZF8cYOen5Gdf3eFhYqPh5BpaHCEgXSMhoSKcoaCd4eAe3aEfG12dWZ/lI6GiIiGh4egqqKWiI6Xf3qBiHp5b2dreH58gHVsZl5aW15qXmFnYFpPTE5XUlFIUEpETkdDSkRDQURDQjw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVvZneCen+Mf4GQjoqamqScoaymqq6wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOhICBjIqCiY2Df4p/bHBqXUJBNC4tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlRSU1NUUlBPSEVCPDg3LzlDPjw8NjMubJOXTVBISkxLSk5WX196ZGNobZCPg5CKi4SHiJSDjouZh5ycj6CnoqGpkqe0oafBwq3Hr3i5lJp8jaGemISThYKOoZ+UmZGFioWPmpGWbHB1ioyClYyNjnePhHFthYGKlpGChYhyiKCVhpGJjY+WpLSom4yUooKHkoN9f2tqanyCg4N1Y15lYFtobF1tbF9XS0hOUlBOTExGSVBDRE5GQkNFRkM+Ojk2PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnB2kYZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXmAkoiRkn2KhJiSkIOAgIuMiYaQh4SJhnh4f2dNUj4vLy4sLy4tLzAwMDIxMjU2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDc1Mjw/UjVISEhMS01OUV5qhHhve3aTko+enJqTm5CdkZiapJqkp5ymqaeos5aqvaq1x8i2yNDPvpugcGmqqZ+Ek5KFnKCam5mmkZGIlaObm3h6fpSYk6GTl5eBlJ57d5WSqrKIjJaefJOdm42RlZijoaW1r5yRmKeGlo+NgIhsc3N9gX5zamJeYmBiaGVgZ2dcUkVKS09OSUlMRkdNQ0hNRkZDQkdFQjs4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbXxhd459e5OOjoqfkpedlpuqmJ6qQkR9h4mHmI14go2Ljo18ioaPkI6BgoCJi4qFkoWDhomBgId2XmJQNTYwLTEvLC4wLy4vLi4wMDE1PkFBTVBSU1FSU1RSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUlNTlBZaoGKc42Dl5yfq7WxnqimqKOksKits66uqrivsbybscOqucnLt8O/t6WisLOsrKqji5aYhKWmoKOXgaaZjaKqqKWIhZSkoaGqoKSpj5uwi5Wjpre6m6Cir5KinKGdj6Khq66rsrShlKSph5mIkomVeXp+hoFpYmldZmNfZGRfZ2dfW09DSUhTTkZIS0ZKR0ZGSEFLRkRGRkI7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2hvWHmEdoGThYeCnIORkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GOg4SBi4WGiJKGgoWJh4iHh3FuYUBFNjQ8Mi8xMTAtLCstMC4tND9DQU1VUFJTVVVWVU1bUEdIRDw+PkZIQ0RBNzs8NUM7PUZLSUZIUU5QV36OmoCmnKigqLjBvaWvwbOpsL2wtbqzvLK/tLm5orfEp7XIx7W9uLSoo7OtsLGbmZKan4inr6ullHafpJehrLK0mZaqrqivtrqyuqyvtaKxq7G1u7a0rbSfpqeippmor6yxuLe3p5q1qIukjZCSnoZ4goV4W2NmV2djYmRhYWdhW1RKRERMVFBISUlESUdFQUBAS0RCTUc9ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFhYld5dHGBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeEgY5/gYmPhn+GiIaKh5F7eG5dV0BETjw2OjQ1QUI3NjQwLzZDSENRW09RVVdVXFdPX1VJS0tBPz5HS0ZFRDs+QDdENz9CSkpFRlZTT16LnqifrK25rLC5xsSyuMG7sbG+tLW/sryutXOvsqS5xKOvxriws7Gzp6S1tqqwoKKXm6KSpbCupq2rp6SYoa20u6Kosrq1vL/Mv8XFvb2zwbe6t762ure4q6uwpK+orL2vvLrBwauYuaeUrY6Xl6mIfYN+bVhlY1lsZmtmV1xkWVZTSUdGTFBHQ0hJQUhEPj9CQkxAP01EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpwfo6EgI6FbnpzeIdiuaGZo4mUlJaSlJONj5eSh4d7hoGNlYqAhIGKenyKh4Z8ioKCi4SWfXh6dWVQXGRHRUw7UWNhW15TRz87SFBEWmNRUVlYWmdZU2BfTFNQRUE/SUpIRUVBQEM8RTZCPkhHSkxTWlRdkKqysLaywre0t8XKuLm/urazubm1vLK4sMRfc7CksZqeqryopKirqqOisrWhqqiflZaemKCupaempZ+klKOnsbSosrO9tsK+08nJ08bCxczCysPAvby+u7u2tK+4trbCucW9wsevnripoauNpKe1iIGBdGFkZF9ZY2BqZ1NYYVZSVUlFRU1KQT5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtKy9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWQc2tycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaKfoOAgnh7i4OHe4t5gYqCl350fXprZXB1WV5cUGVkYmBlZF1cWFdcTWRtVVJtbV9uX1hnZFRZVUpEQktLSUZISEhHQkk6RD9IS1NUVVxaW5C0u7S6scG6trXHyLe0uLS3uLG1s7KttLWXY3SnnK1vXqKsm5egopuknqqllJ+fkJOOlZiYqJ6moJ6amYOknq2lqrCtuLC9udTRz9fQyszSzM/Oysa/vsHJvMC8wMDExMTJvsfNsqO6sLSumqu3u5iAfG5fYl5aYGNaZGRRXGBTUUpDQUVGRTxARj5BSEI/Qz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVtZaF9vlpKQlG5rb3R1h7SsoaGfi5mcmYyNlZGakoaKin6IhouQi4h8gYNze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWZqamhgZmlpbFptc5atpLyIhmdcb2ddWlpUSEtOUEpLUEtTUUlMQUpGSk9fXmFmaWCWtMOuta64ubKvwsSzrrevr7qqsbClqrari7WnnJqmmk2ZnYyOn5aRppillYqTk4mQiY+RkZ2boZeblZaHn5qnm6yvqbCotLTU1NTW08zQ09XN0s/MxMHJ0L3JycrJ0cbMzcLP0bevw7zDuaS1ucGihHFlXl9fWmJZWmZaUV1YTlBBQkhFQkg7QUM+QUc/P0E3O0M+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJncW94eYOhqp6ml4yam5eLjZWRmo59iYuFjYqJipCHfISCcH+HgYZ7h3KDkouOfXF4dWxweH5xem14c21pgHBtY2ptcHhod3x+y77B36dtY3huY1thYEpQUlVOWV5PXVxOUE5UUFRUXG5tdoJxlay1qrGkrbOoq7q+r6mzpaO3paqtoKuzoo2wrZmXmIyOkZGEjpuBjaaRnImDi4SLiYSLhJSWmJeTm5Gcl5man5+rrKWooqytz9LV0s7M09TUz9TRzsfD1NHGzdLT09fM0dHE0dbFwM7Hx8KovbbOnnxxaGBkX1hiU19bUFFUUU9IPkBGQUJFPEBBPkRDPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxVUU1OWnWGhYp3bHdwfX5/oZ6eoYyMmJOTi4ySj5WFeYWQkI2LiYiQhn6Ce3F+gICHeoR1hZOQiH9vdnNsc317d3tzgnhya4BzcmlwcXp5cnq+y5p9i7GEdnKEdmhhal1DWllbVmVjWGNqU1hcXWBjXWN3en2LgZeoo6Ofnp+mpKmut6mlsqGhraCiraGmsZ6IppqTkpGJjo2IgZOJapSijJmEgYZ+kYODk5eti5WNlJmOhpORnpeosKKhoaWkqcnNz8jDzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcjX19HKq8LCy411cWViYVpWWlRdUUtHSkpKQDs6O0RBRDxCQz5HQj5CQjo8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7T0xGSlhwgHV9aHJ4coKJgJ2VnZSFi5WJjomIjYaOf3iDk5iKjIiIi4h+gnhze32Ch3d/eoaRlYCDbndwbXZ/dnh9dIV8em2HdnVvfXaEdXh7nbWMO0GKxaV+jHxpZVdJQ2ZjZWNnamNtd1teZmhrbmhtgIKHkYqcnZ+ckJaXnaKjpLCio7GeoaScn6iforGbhZ2RkZGPioqKhoOPg36cm4uNgoSFeZR/gqmVo42SipeSjH6Yi5uSq7OYm5yonKe+w8a5t8fO0tHS0MzSy8jUztDV2tfX2NTZ2M3Y287J2drR1b7Ky7V6eXBnX1tUV1JcWEZHS0lFRT06NzpAQEI6R0Q/RENBQ0I7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhImBh3x4hZaWiI6Ch4WHeoR5cXp7g4V1eYWOjZx5i298cHB6gHF7gHGDh4Fujnp1d3x8gnV+fIaHr3NYqcK2jZGCcG1iPV5ocnBxcG54doFlaG9ydXhxeYuGjZORmpWflIaLkpqfmp2onqCrm6GZmJ2knZ6rmYqZi4+RjYR7h4eDhIuNn5mTiIOHfmyZeoSYhoiTjI2UjIZ8nImUkK6qlJaYn5mnr7a9qa6+x8zJyczL0MnD0srU19nX2NfV29fT2dvV0Nra0dbI1MqWfH5ra11cUVVUYUpDRkpIPkE+PTc6PT87PUc8P0FBQURBPj86ODdEQjc1NTQ3OS41NTY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEPkNHUmpebWRiZmt2gIhxkZCagHqAjX6CgYGEfoN7fISYjYeLfYWHgHeCeW97e4aBdHmSno6gdo51gnR1gX50gIRvgZCCb5KEdXyBhXp2hnuJt8Wkwcm5gZaaj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWk5SOl5CCiY6WmZaVpJuXnpWdkpGWop2ZqpWQkImMkYKLg4iIgYWPkZ2bmYmFi4GFmHqIiZ+XkIiNiouCfaGJkYy8oZiTmJmdqaamrp+otr/AwbnIys7Oxc3J0dbV1dnV19vU19na29fb2tnYztvGiH18amxoYlZZV1hOTEVOQzs9PTw4Ojs9OT1ANj0/Pzw+PT05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs5OjdJUF1bUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bIqNknd2eop7fn9+gHyEen2BkYmEhXqEh3t1fXRtfH2GfnN+kp6RnoORe4Z+eI9+eYqKboKagHSZhn2BiYV8fpB6j6mOj8OhvYyco5x9iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CRhIiKkJKTjZyZkpOPlYyLlJ6ck5+UkI2Nj4p+jo2NioOIkpaanp6Ii5SRnZGBi3+lmIiEjYKFhIGlhoqMt5idkZWWoqehnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuHt8e25saFpiXVRRT0lETEI8PD45OTo6OTk7PDY/PT48PTk5OzszN0Q/NzM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw6RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PUNRU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97h3p8e4uGgn10g4V5cnlzbYB+hH53hZuhm52Ukn+MiICYiICckm6IqIV6oYt8kY2DiIScfZqQiYyjo6CQpK+fipCLhYuBkoZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlIuGh4uSkouTk5OOi46Jh5WanI6UlpCKkZOFf4qHkYyKiZyWmKKihpKdlaCKiYiNm5CDh45/g4eGpIWMkbKYnZKUl6Gin5mSnJ2os7mtpr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aBygHdqaV9gWlVYWUNASUM/Pj46NDg6Ozc6OzozOzs/PT43Ozo6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNiem1hfpKDb213i3h5fnqBfYZ7e3eGhH9zcIWCenV2dnSEgoR+f5Kmo5+lopaKnZCVl4uKp5dyirKNhKiShJmThZmMopWfl5KJm56jk6qwn5CUkI2OiJaMbo23hZrEyLKboaWbnJiWkLGRZKTNyJWOhoeIj5KMjJGTiISJiIWVmZqOj5OShpOWg36Pi5mHjZCql5aiooiYnpaaiI6Gl5eJhI6MgX+Hj6SIjpOompeTl5mhmZ+Zk52bo7O1pqO8wr7HxcXJyMnCy9TNzdSp0tHW1dbY2tTS2s6FdYNrZ2FgYFFLVlxCQkdDO0E9ODM3Ozw6OT02NDk6PDo4Mj85OTI6STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfHxtfoh4en56gYGDfnZ2gIJ7bG6Kfnl8d3h8hIaLfoujtKikq7OhlqegpqSWla+ig5C4lZGzmoyhoIykm6+jpZ2YkKeXqZmusKSXlJWUkIuYmpagwI6jybirmqOlrZmRm5yynYaFqKKcl4WIiI2Ui4qSj4aAhYaIkpeTi4qTkoaTl4WDkI+bc5CYspWWo6GInJmTj4qQipaaiIqWjYZ9jJifipCQnJqZk5mYoJSgnZSem6GxrqOkuL+0xMfEvcPDv8fOy8nSp8/M09LQ1tjSz9i8dX16YGNXY1hSSUtPRkJDRDU+Ozc2Oj87PDc9NDI2Njk3NzQ9NTs1PEs8Pjs8QkE3NTw7NTI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNXF1ZSmhhO0iEi3p6bYWGeXyEeICFgX1weHx9fG9yjHl9gXt4houJhoSSqLytqbO9sKWus7Spo6KwrYqatZ6juaWVrKSXqa24pqWjn5mpmKqksLGqmZiclJWRl6CXmru7rcqhaba4qrCVmJ6iq5KXvaNeqbKCiYmMlIaQfI6NfIOFjY+Tk4iGkpWLjpSMioyWmJGbmbSWlKqdi5uUkY2QkouYmomRnY+Lipafoo2VjZiZnZKcmJ6UoaCUnJ2mrqeipLO4q8LIxLW6vbzGyMjC0KHGyc3NxNfW0MrTo3N9bGBdVmJUUUdEPjxDQUE3Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGdIYWBicEpAi4l+gHKHh3yBiXWCioN/bX18fH5wd4d3jYGHe42PjIaMmqvDwLC9xryztMG9tK2ss7aMqLKtrr2rm7ujqK25uKunpqKho6Oqr7Kxqp2co5ibmJeeoqalkqO5r6i/vKytsrmlo6d9iIadrbywgouLipCDj4ORjnmBhpCMjZuHh42WjIqUlpOQmZabp5qxmZCqnI6aj5GOlZCPlZaOkKCQiJSbo6yVlo+UnJ6UoJ6bmJ+glJqfqKekoqOws6bAxsOwsLu2xcTDvsynx8PHw7zW0MzEyop3dmVfXWJeT0xDTEBFRz9BPkI8OjQ+QT09NT02PjMzMzI0MkExN0BCTT5HQENOQ0E9Qzw7ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxpRl9pZ1tdXJOMjIh7h4uGg4x1hpCKgW9+e4F+cX6BepR6kpSVmJCTlai0xsnAwszCw7nIvbqwq7m7l7K2ubLArqXApKuwvL2qrqujo56nrK+1samboKqcopyWn7C0p4yjurq1wburqJyypKSolISOqsTDpIKLjoaHhIaVlIx5g4yQjpGgi4uTkI6Hl5+XkpiUlqWgrpyMqZyNlo+RkZSVjZCUkY6hk4aXn5+zn5SblJ+hmaSfmqCboJSYn6akpaekr62lv8PCrqi3tcnDvrbOssS+w7uz0cnIwbV4fHBfW19tVE5JRExMTEpAQT1CRDw1QUQ7OjM9OEIzMzIyNjJBMTVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJoXU1lXGZUY2qajZaKi4iSj4aJeYaTkIFygHuMf3eHgoGPeY2hlqiam5i6vsnIysLSycvCzb3Bs628v6e6wL28xLiswamts7y+qrGqpKWjrK60rre1oJ+un6aimKO0vKmcqLzBo7a2r6uTsKyqrJeGmqqnpZCCjJKklYmAdYmReYSMkZCdn5GOkoqOi5Oil5aalJOhnqmekKSZi4+Pj5WWiHyOlZKRopqUoKKctqaQn5ekpKOln56mmJ6Vl5ulo6ioorKsqLvAxK+ls7fMwLquw7O7vcG5rMLCwb+acXxkW1peXUxNTktHRUNIQUFBREs6NERIOjs0PDdGLjEyMzUyQTI2U0hOPEpCSlFFS0NFRTpFTEI8N0VWPTw9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bEpfWGFaZGVYno+djpaOnpKJin+Jn5KEeIV/lH5/kIiJkICWoJqup6SYw77IxMjG0s3Ozcu8wriwur20vcu7xMK2tryttL+6vK6vqKGoqLaurqmyt5qerKKoop2rt7eqpa++xLG9ubOnqrSzra2XlaWtqaCRjpKxxaeUjnyRlXyGkJiPqZiXkpKOkpSSpJySnJiToKGhm5iel4qMj4+eiFqPlpeSlqSZZpmjnrOllqOWq62rp5yfppeZlpiVoaSopp61q6m6vMK0prS1y8G4qrWss7u4rqi4ury3hHBxXVtXWFBHS1ROSz9BR0RESEZGODVGTTs+Nz5BSy4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZmRNRqaUnJWhl6iWjJCDhqWSiIGHgpqDg5WQkJOOmqGfr76uoce+xcXIx87OztLKvru2sbu7vL/PtsS+t7m3s7K1s7i0rKecq6y5q6mosLCYo66lqKSltMCwq6y0vsK5wLmzp7i0t7KvlaStsLCli5OUoI1zwZl9lpmEjpaZi7CVmZmUkZGZmKSilJ6alZmonJqhn5iKjI+VnV9KlpyalJmkl1SWsJ+vnZ+lla+wraWboaWUk5mYjp2fpqGZtKmqs7y7u6uwssfAuKarq62xsaOhsrK0pXNyaF9dUVNNRlFRUFE7SEpIRkdBQz05S1Q/QTo9RU0vNzUzNDpCNDROV048SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzVGQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTdGJWRkirl5mfoaiumJGXh4qnlo2IkoSfh4Sdl46doJqjpbXJtanHvMPEycvJyM3Nx7+7s6+6uMDCzbXIu8G5trqyr6+0taeknKu0tauqpq6smqStpqWprLq/qKu3t77BwL63srLDsLe9rKOuta26poialqWbdb6fhJmdjpKYmouulqCbmpaUmp6fqJ2mn5mZqZmgpp2Wj4yQnYJtdZKimpWcop+QrrKiq5aqqpirr6WloaWqkpKZnImVnKKelrCmqaq6tr6zsq6+ubago6eopaacnK2pqY1maWNiVE1OSElPSlVMPUxETUlKQENEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQzo5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYUxWSH5lXkhGrJWcoZ+7rpiUnouTqpuRkZOIqo2Hop6Mo62Uo6S2x720wbvCwsjJxcLOyMK+urKvubXAwsq2xrLBvLW7rKmtrbGjo5mqtbumqqesqp2or6ikq6q9u6isvbS3vse8trW4wLC9wLOqtbesv6aPopaQoJ+7nomaoJiWnZ2Otp6om6SimpugmaeksaCanaWcp6mcl5OOlJuKloiMpKGUnKKeoLWwpKWTsquaq62fn6WkqpKWlaCEkJ6fnJWppaGhs7S6tq2otbKynpyjpZqXlZmqoZ54ZGBhYExJR0hOUUlNRUZGQlFKSEBER0FWU0RIPEFHUTE6Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRKiXpJ6fw6ybl6SXmaiblZmajqqWlaimlaytmaKrt8XCvL+4wcLAyMS/zca8vrmysLm0v8LItsCwvLe6t6ekq6ytoaGbq6vEoqWorKaeq6+toqqovrimrb6wt7fHt7S5uL+wvsG3tbK1sL6klqOVkpqTrZ+QoaKkoqKekL2kqJ2oq5ycoJqln7yil6OeoaiqoJyUjJSdk52GjoSNk56koJ22rKacl7OnmrCooJyrn6KNmpaghY6hmpySpaWal6uxtrKqpaqtrJyYoKCSjpCWqZ+UaWZcY19RSkhLT0xHRURJQD1PSEA7RklIW1JQSz1ITlU0QkY4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLS0wTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9TRjxLeGZjWE6im6ObnsWroJ6rnZytn5Ginpakn6aqq5e2saOqs7bFw73Atr/BvMnCv8rItrm1tLG0tLfCxre/sbi1urWgp6yrrJ6en6WkwaWgqq6gpKmtsKKmqL21pbG8t7a2w7Kzt7q+ssPAt7iutLW1o5yklJGToKyemKGcqKiqoprBrKidq62amp2YpZ+9oZykl6qqq6WgmI2an5KdiI1Xf5aepaGguaqnk5m3o5+zoqGcsJihj5uVnoKPoJeXjqKjlZClrrKsqaKipaSVlZyYi4+Sk6SfiWNnXGViTkpLS05GRUFHSz49SUE6OEpKTl1RUUk9TFZcOUZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExQnqCgmJ7Dp6Sis6CbsaaSqaOfo56tqaudu7GprLWxyMTBw7PCw73HxL3Fyr2wsbausbWvv8W1urGxurasm6mwqqqbn6ahp8Gtm6yxnKmirrGqpKi9t6a2u72vt8Sts7TCv7LGs7q3q7W2rquipZWVk6KroJ6fmqeqrq6vu7Gln6ipmZiXkqKjt6Cho5GtrqukpZ2RoJ2UnY6QjJSdmqKfqLWnp42ZtZyjr5ufnLCRoZWZlZuAkqKWkI6goZOLpqywpaeinaCekpKak4WLko2cn4BkaF1oZktKTEtTQUNASUc7O0Y+OTlOTVVfUlNKPk9eXj1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQTdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9nckA4PEiWd2VBNJ+knpqgwqejqbGgo7SplbGrpqKksqytqbuzrbC1tMe/xMO1v8S+ysW2wcnCtay1qbC5rL/EtLivrba6ppmrsqyrmKGnmK27tJyosJusn660sqequrKnubS4srnBqrezw720xae+rq23tamorKGWlpGlo6Ghl5ekrretsbS2n56opJmTlJOjoLaipKWVrbGxpaikoJ2amZqVl6ign5minq+zoqaNmK+apayYm5+nk56QlZmbhpeglI2QnZ6Ti6mpq6GnoJqelo2PmZCChpaJlZ96ZWtebGtOUU5OVD1DQU5DOzpJPzc3UU5dX1JWUUJXYF1CSlNIV0tIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWpXRFdGjHlmQzukpJygpb6lqK6uoKm1qp23r6ujqrS2sbC4t7C3uLjFvcPHvbzDwsjBusLGwrqqtqWtu63Bw7i4qq2yvKOVrrCus5emqJGquqqgprCdqqCvtLOqqra1rLuss7K6t6y5sMK6vb+mw6qwt6+pq6umnZiYqqChoJGXoLCus6qwuJmbqZ+ZlpGXpqC2qKWioq+ws6uxpqqfm5+fmp2lnaGYnaO0sJyfkZSmm6GpnJajopiajJealJaXnpSJkZuZlI6pqaefo5yZm5OHj5mLfoyXhY+bbGluYm5vWFFRWlRBQ0RVQDs6SUE3OlhQZF5RV1dFWV9eTUxTT15MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1ERkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOG19aVxWO4l7Y0M9qJ+coam8oKqvqqKwt6iks7Kroa21va+zub27vbe3wcK/ycO5xMPBwLnFvsG4sLaoq7eyvL+/tKqvsrifl6utqa6YqamOp7ufpa2zn6uisbCzrKq1s7W8rbCxtaywtbLAusW2q72vsbesraqjsaWepaieo5aPmJ+yqbKpqbKZnaebmpSMn6aktK6noqysrbCnsqqwqaKbnqejnpWhmZyotqmYmpKSn5meoaCSraGbmoiXmoyemp2Ui4+Xl5qXpqajoJ6WlpaTgJCVhHuPk4OMl2dtcmhxc19HWWZWRENNWERaOUhCNT5dUWhcT1pdR1tfXk5NU1hjSktDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7R0RGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FWMTUxPWBWXzgpQzNZVVxoSzWMemZMQKWZn6SstaOsqKSurbWorrO4pqewt8a3sbe/wcK2tbrFvszFucPBusC6xbjBurO0rKq6t7u6vrWrr7G3mJiorKusnK6rj6u9nauusaOpn7Gts66utbG5tqqtr7KotrC0urzJsqq1tLG0sK+nobOfmqirn6SVlZqZsaKtoKWvlqKkmZmSjKKlp7Kpoaaxq6m0pa6vs66jmJ2tp5uXnpqarLiimJORj5icoZmYla6hn5eDlZqOnp2al5GKlJOemqWjo6GZlpOSlXuMkIV7jYuDi5Nsbnlvdn1hRmBqWklIWls9e0pHRTZBY1RpW01dYUtcXVtSUlNiYUxLRWBhYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1hUTEWalp+wqLCprKSjrq21qLazt6Oss7fJu7W7u7++tbS3w8DMx7zDvbe/v8G4wL2yva6ourq4t8K3rK6xupaXp66tqaSyqZSvu6SssrKmp6KytLGysbWwt7Oprqyyp7ivtrTDxbaptbWrsK2qp6O2n5+nsJ+jlJuYlLGep5ufqY2pop2blZelpaS3p6Kxs6unsKetr7SspJigrKicnJ2claq5nJWOj4yYnaKYkZmopKGZhpSYkZ6cmJeXiZeQl5uonaWhkpaSkJV2hJCGe4aChI2NbnF4dnyAXExlbFxLT2RdP2J7R0k4R2hXZVxMXmJNWVpXVFhVal1PUEhhXl9QS0dRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3JqTEVEkZmkraSsraqlorCxsqm3r7Wfq7S5yLmuwbzDuLOytcLDzsTAwr61vsDAu7+9tMSpqrmxtrfAvLCstLSeoaexr6ansaWdsbWsqrKwq6iotbqstbK1q7OsqquprKm5rrKxyL+4pLmwqa2tpqitsaWko66jqJydm5qumaOioqOQrJ+joJ+hqaaluKSrtLSkqquprK61rqKdo6iqnKCam5OktZqPiY6IkaOhlo+Wn6OXloeRlZWem5mXlYiYk5WZp52hoI2TkY6Qd36PhH18fYeKinJ0c39+fVxTY25eTlpnXUZElltHOk1uWGFbTWFiTlZXVldVWWheUVNNY1tbVEtGT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RlOzYqSGRISis6ST8zQ0lTLD6Pa0BISZCaqKmhqK+kpqOzs7CztLCwoKutvcy7rsK9x7K0rrTCw9HExb/Cs77Cw7y/uL3FqK23rLO5vcCxrLKtoqSnrquopbCjqrCqrqqxrq6sq7O7p7ewsaiyqqulpaOvuqyqscK5tKy5qamoramnsaWppKKtqaiinpuirJWlnZeemaydoaeooaymo62strCxoKmioKqtsKydnqenqZqkmJmQoaiYhoSPi4qfoZCNj5iekpKIiZKWoZ2WmZaHl5OTl6WdnZ2MkpCNiX9/iIR8d3+HhYZ1dHKJd2xfWV9uYlFzcVxLO4R8Rj5XdVdhWU9kXE5WVlVXUVxiX1NQTmhZWFdLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTM5ODsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDI9XkswLklnREY4PEIwNUVLWDFAlF1ATkaVlqynoKmxnKeosLWsuLWtqaSrqr3JvLG/ucOvsK2zxMPNzsO/wLPAw8S6wbTJxKyvt66zusC+tK6urKepqrGpp6ixpbOtqq+trbCusq2zu6W3s6ysrqirn6Oesberqq26tqS1taSqp6usqq2gqKamsLGjp6WhoauWqqGTm6CmnqOiqqOsop6msbasrKKlopqpqq6pnKGlpKSZoJmWkJidk4GCkImFnaCNi5COnJGTjYWPmqWbk5KbjJOSkZSjmpyai4+Li3yGgoKBenWBg4F+dXiKooZ4al1fbmZXZYdkTkBnkkxEYnpXYlhSZlVNVlZWVE9cXWFWS09pWFZWSEpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC4yLCYwN1haLjBKZ0FBPDxDKzpKT140RIdCSUlElpCupKGqr5epqK21qrWxqqSrqqm8wcC4urS8taazr8TJy9K/wbu4v7/DusK6wcSusbWytLzBvrOyr62srae3qqatr6q3rqewr66xqrWqtrantLerrKSpqpyknrSzqKiks7Sfta2hqqirqKunn6usqLi1qaqpqaKon62bkaqhnaCkoqaiqp2cprSup6WpoqOXpKanqpyipKOgmpifkY+PmY1/h4yHhJ6eiYaMjJGRk4+FiJejmo6Om5KSkI+SoJiZl42LhH90hoJ/fnh1g397eH5/h52PcHFmZnB3XGF0iGpPXZhWSG15VWRWUmNQTVZUVVFPWFtiVUlRalVXVEdPWFVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UyMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIvMjIlLzNSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JGO5WMr6CkqqyZqaOtrrK0r6mkr6mou7+8wbKwua2itq/Ix8jQwL+9urzDvrvEwr+/r7KzsrW9vMGysrSrtKmltamlrbOyuK6hrLSxr7G5q7muqq63q6qeqqugo6G2ramhn66yoLSqn6inqqKqoaGsrai9rquuraGnp5+smY+wopiioKinnqebmamwqKKfq6KhkqGioqeZmamlmJiZnY+Lh5WIfY6GhIWkl4aDhI2IkZCShoeWoZeIkZ6Sk5CNkZ2VmI+LhoZ4dIF/fHR3eYB7dXR7a4OHpHZpXmVrgHVniIx8UlZvXkt4c1RkU1FfTU1TWmdOTVdZZVlHU2pSUj9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzOPjbGgo6Wqo6OirKazsrGopLCnqri+wb2xqbqqp66wycbI0MO+v725v8C9ybzBuLGwtbK6vLm/s7S8rLmso7Smpquxtbexpaa5tKyzvK+8pa2ttautnKmvpJ+krKqonJ2qsqOzqJqrp6mkqJ2iqaepvaq0sK6dqaSgrpyas6KWpJylpJ+lmpqoqqWemqmhm5GboKSdmZaoqZGZmpKQi4KPhX6Pgn+In4+HgX+NiJORkYaDlZuUhZOijpSRi5Gbk5aHin+AcXp5fXtndnx6dXFyfmqGeYWIZF9nY3KFe21oeV1eVUFXe21UYlBSWUtMTnB0XUlaW2haRlZmUEM+Sk9EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpGwmJ6fqKShoauktrGxpKmwpq25wb23saS5rKior8PJyMzCt72/tbjBusi2wrW0srWyvbm6vbauuba/rKKzpqqqrrS2s6ibubuosL6yuqCutLapq5+tsKOcpampo52bpLCmr6Cfqqmnoambo6igrbynrrCuoaqipK6enq2mmJ+boaKcn5uZo6qimpmjo5WWlKChlpuWpayMn5KQkYyCioCAj4B7mpWNin2AjYiSkY2LhpOYkYaUpIqTkoiQmpCUgYl9eWt9dnh4Ynp6cW9xdHhqgnVrgmdjZ2Fuc45tYmpvYG9AXHlrVl5OUVJLSU1UWVZNXF5tV0VZYFBeT0hNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl4+I5GWrJiel6eioJ+no7evraKvr6isuMO7tK6gua+rqLO6x8rHv7jBva+0v7fEtsOyr7qxssC2u723qrm4vqqktKaoqa+tuK+nl7i8o62+tLSgrbi1p6ansLOfnqWmqKClmJ6sp6ieoKqvp6Cml6Kon7C4n6Sxr6CroayknKanqJqbm56jlZybmp2pppabnqiRmJKZnZOZlqGqkZqKjZCHfYd+go58fKGNjYl6hI2GjI+NhoqTmo6IlKCKkZWCjJeNkn2FfHNwfXFzc194d2lucXFwa4BzZHpsZ2VjYWaGgGBbcmpyTU2AaVhaTVFMS0hQU1BHTFtgb1RGWVpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1cNSiVm6WYm5Wsn52ho6C2q7CjtLOpqbnFt7OuobitrayvtcXHwLe/wbmwtb23v7u+sKy+sLO/srzCuKq7urinp7Snp6qvq7KvpJe7taSrurWvnrG5r6mlp6+xm6GkoKSjoJabr6ahnqKor6GgoZKkpKG3sKGmsaufq6OumJ2qpaifmJqdpJOZm5qdpamZm5uklZSXlZyOk5eiqaKRioqQhnqEfoSLeY+Xio2He4OJhYqOj4aQk5iMjpWZi5CXfoaXjJB6gXtwcndub3Ned3ZkbGxsa2qFbmZyaWplaF1kc4FgW2t2aVpKf15bWE9PS0hIU1ZHMzleX2xQRVlWWWZNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFRdaEQuPDJkVywxlKGhlpSbqpujoaKhtqqtoLu3pay9xbSwr6O1r6ysr7TDw7yzvrq2sLO5uLq3uq+twLOzuK+/wLesvbq1paKyqaepsamrsJ+Zv7Skp7S1qJ6yvKmopamvq5mip5yjpZSXoLKkmZ6kqamcop+SpKCkuKmlp66nnaWhqJOgqaKhoZmbnJ+RmZuWn6Gqm5qYoJSRlJeajpOTpKikkImKj4Z6hHuEhn2djYqLh3uChYiJipKGl5KSi5CVlI6OlHuDl5CLd358bHRybGtzYXd0aGhqaGdwhmhoaWRmaWlgamNqaFtme2JgU3RUXFtSTEpHSVBUQCEqaF9pTURXVV5gTEpIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp6ipJGOo6eZnJ6do7Osp6q6tqesw8G4sayjtq6nra+3v7+8ssG2sK6ytra4tratqr2zrrKwvL63r7u7saWftamlpLOmqK2cnMCqp6Wvs6qstbueqamssKWYnamdpqSRmKWsopidpKmhm6Gblp+dp7WmsKquoKCdnqGVoKagoqCam5mbkpidk6WdrKGXlp2Uk42Vl4uPmJupoJKJiouJeYV2gYKBnYeLg4l+gIaJh4aRhJeUj46PkZGRjJN7g5WPhnN+fmZ5b2pqa2Z0c2tiZ2RkdoFjZWZmZWppY2tyW19ZXWxjYU5pWFpgVkpHSUtNU1g+OV9saEhDVlRcW0lKR0ZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao6CPjKyhlpaglaSysaKyvbahscW8urKxo7esqq2puLy6uq3Asa6urravs7izqau5sa+us7W6tbC4vKumnrSpn5+voqitm6G/n7CjrrGvt661nq2vra2imZ2mqKWflZqnpZ+YpKKonZqfmpOcnqyvprqorqKhmpuemZ6kmqSdl56Ym5SYn5KolaqnmpOampKMlZmNlJSbqqeOjoqKj3uCc4GBipiFh32JioaGi4yKk4WVm5OSjo+Rl46Qf4CNjoNvgX9meW1na2lmcHJrXGdjY3SBYmZnam5sZ2pqaG5dbGxycGBUY2ljZlpJRkxNT1hRUVVhZYBVQVdTWVRGSUZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlBMS0rLjM8O0s2MC4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyY0kaGbjY6vnZiToZqpsa+euL+1oLTCu766saa3r6etpLa3t7asu66sqqu2qrO3rqaytbGuqbC1tbCztbmmqJ+1p5ydqKCnq5qnvZeso66wtbWtraCxrbCooZuco6unm5SbpqOdmqmipJaan5uQm6Sqq6m7oKekoJiamZ2hj2uilpmccIKVmaN/dZGpp56UlJ6QiZiagJaKopB5h5SNg21pf3eDcWyGi4Z+hYyHcV9kYWeEmIVrio2UknR3i4R+g5CAZ4eAZ3VoZVdcaHNuTVBpY2dyhWhfZWZubWpdYGGKj4OEZU5LRDlHVGheSkhRUFVVTEhTYXB0ZUZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsLDA4PUc3MDEuKi4qLzU2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoukmYaVsJubk6Cbqqyqo73Fr6m3wre9vK2mt7ClqqK2s7KysLmsqaastKWvtKOpt7W1qKertrKttK2yoaiesqmdoaOZpKWYq7mTpaWvs7etr6WqrqqspKGenKCmppuWoKWkm5unpp2Tnp6Xj52nqaS2sKSiop2WmJeXo4ihjpKahqCHkpygf6V/paqekpKakYiEc3iNjoWIoXaJjWmXiGZ+c3igb4iHhH6PfX+hoKCZgH2HnnOGjnWbimyHgYNtaWVjemxyYVOFbWJsaZhxWGlxcIhZXmlbbGxbiHJuenKFZoaEWl9HTj9HX05GUlZWUVFSV1VnXU1WSVJST0ZIRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiouKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiKp5eDnKudmJidnqqpp6q/w6+xury2wL6qpbewqKylsrSurrO2qqiksK2ltLKcrrW2tKanp7KwrLKnrZ2poLCnn6OimJ+hmqyzk6OlpbW9pq2nq6qsqKShoJifpqOZmKWio5icpKiWk6Kbk5Kjpaaht6SkoKOYlZOXk5yIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZzGeXixpbeXZYDAnL95hIV6koR9kJCRynKXu5zFenK1p7qQe4Btl7GrsHlobFixrm5labySvG5nem5yj9h+U2tjtrJ+gXKUc5qhqpBXT1diT1ZORlVbWFFRU41dV1tRQV1EUU5FSEk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT46Qjw/QTg6Sj41MioyMkJFLy4zMi4rLygtLzE4Ni0gLzQxNkExPTlXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKeTgaeqn5ecnaWssaiwwr2ytcC1tr7BqqazrKyopq6zqa61s6anpbSlp7itnLOxtaumpKexra2wpqqcpqOvoqCfnZWZnpytq5Odop+zuqOrqaKtrqWhnJqZoaefl5qnn56XnqankZymmZOdoaaiobGjn5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUcK6hpH54u31soZB2sV9qtFulgGWckGFng3tngGt5a6llvnFnpot1sWp7sXh0kpRjbm2nbluEoUVoZoeWRXWcYH5nfKSnglpgjKtogJR4eWqnN0qvXFhTbGRbS09YX1xXVjtOik9XVy9JVFNKREZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MDMuMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWDMwG5CilYOtp6Weo6Sqsbestb2+sLbEsre6waaosKquqKivrqOwuq+jpK2yo6m4p56ysrCjpaGprK6rr6amnqKhr5qhm5aUlpqaq6WVmqGes7OirJyjraygnZmWn6GonJieo5+bmaGmpI+copmWoJ+qnqemoZqgoZaVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH9rgaZ7goaIk5STd6tna7Fcq3qNhpR0iXKPh4GBiZCXeIKBi5eLg6CPhLB2d59xbGxsfItOpFhIYmKZfmNopmB5cnVTk4deUaltY3F9hoBinC5RoW9bU2toYExKW2RYXFpCPrJ7WFhBI01oRkNFQUBBMTk+ODg6ODQ7OTk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QEZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuUoJWIs6amoa+pqLOsqbu2wrC7wa24t7+prK2traWssamgrruqoKezrKOrtKOmsrKno6Kepqqxp6+npJ2fn66VnpmUlJSXnaygmZmkqLWvoqqPqqiqm52Ul6Clp5qenKKem5+ipKKVm56XmZyiqZqmmpyboqGXk5GSk52D1ZOZuXCwwX7FhnzWlJu7fJqVpY+NnY2ke46IpIOlg3qseY+dVq96iH6fa7lbuneHhH6mgpR7l3qqeI2dj3qxbo6EdJG8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiFgIl8Y6QzQp12XVBqaWNQQFhoWmRhSkhNcVBcUU9ZZlpDRT9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdIOmFQNzElm6KUmLKoqKa0qqW0qaS8t8Gwub+wtbS6srSnsK+ir7Kln621p5qnuK2ir7Gfs7SwoKSen6apsKizqKObnJ2qlZiXlZWTlaCpnJmWp62wqaOfj62iqJadlZugpaCXoaChoJqhoaebnqGelJiapqCbp5Wbm5+hmJCSlJCdiLJuaLVxq4dujqZytHNytnual6SLj52Non6RoaZ/sXeDkdLSdlyue4V/pG+bqqZrh4V9rX2YmY57sXGSno53s2WXdISeb55nlFHIi1rCXKB5Yl+sYHVzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFQa2BsaFBWR0o5PVVSWldYSUQ/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1gTDYyMKKdkqWxraOrvK2mtKantbq8sbq+trWzubiypLSyoLCxop6rr6OXpritpLGwnLS3qaClnqGppLGnrKmjmZuZp52Vk5eXkJGhpp+Vk6WqsKailpOtoKaSk5+bo6WelZqlpqCaop+tmaGenZCUm6GdnKWVnZWZop6VmJWRmoWse3eodqONiIapb62KgqeDmJihipKbi6J/k5qJroSAgrNccrNSrn2CgqN/cth+eIZ+j52Gmpl2r4aHkZyHdrRhmmWagoKVbZJasFhLmnWYeWZgrF51d4homIhrXa93lZ6PeGw1eciusl9CVG9eZ2BFUGxgcG1WVk0uZmVpU1lQO0JFQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdCX0g6OTmgnpWgubCXtMKuqLOoqbK6t7O3vri3sbS6tKS3sp6zrJ+fqKuelKe1q6iwsaqts6ObqaCfp6G1pqWpopiclKSgk5Kbl5GUoaSakpCmra+moZWZqqCijpChmaekn5SZpaicnKSerJyhnJ+Mk5+anaGYmZuWl6Kgk5ePpp2GqX19pXihjo2CqnCti4GnhpafoYmYmIijg5KIlKt9gIudeW+xWqiCgoifenTZgHeIdKiBjpuMkqR7lI+fhHqyXp1koH6DlW2SXatbWpOAkX9oZ6pjcXyCa5iHc12rWomgjmtvZU9KQ6FcW0x0XWJnTlthX3FzX0tXN0qcmFhHRT1IR0FNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDUuOj4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSF9DMj84op6amsGrl7TCrqutqaW0sLewtb65uLGwtbqourOfr6SdpKamnpOpr6iuqLSrqa6hmKCgpqSjuaGiq6CWmpChn5STnpmTl56fkIyMqLCwp56Xm6imoIyRo5enqqaUl6innZ6goq2koZ6hjJShmJ+gkp6XnJWdoZWWjaqcj65tcrRzqYt1iqdztHhzs4CRpKORnY6JpIeQd7hwjXuLomprtlqhhWWXl2mgoqdulHK0dJOZfrJqhZGHrWp1s2GdZqJvh5Nrl12tYE2hfIaSUnOja3h/fm+Yh3Fcr1Y8nHdmVG9uLlynT2NTa2VibVljXWFwe2NUW1I+PW5xM0NCQD9MOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1RkxeODFDOKacm568oZuywK+tq6unt6m3rrW/tLqvrre2qsC1qKmhm6WjoZyRqamntKKyp62poJecp5+kq7ido6yalZiOo6KVjJ2gm5icn5GTlKq2sKiZlZysqZeMk6WYpKyikZWqsaOfnqarsZmho4+Yopafm5aclqGTnKmclI+qmYfUkpq7c7DDgMOGftWWm7h4iJCYjJiLjKeIeqS2dX53dsKCmrJgg7p5wH12uGO1gYyHqX2VgaupcXt/dLyIp6BpnWGmjq+hfox1h6p9vm9zvHSyg3R4gYpumohxbo2kdL1ed31aYXm8a1pWXGp5XmphZmdjbXdvWVxaQ0BAdEBDRys0RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgYF9fWlBQUktFRko0SExSQEpORUZPQj1FODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56ivaGXssOwraqqq7Gmt6+2w6+4sK24rq3AsKujop2joZybkKijqbKktKWspJ6VmqqYpqy4nKGtmJSfj6Sekoycop2XnZmRlZKvubKslpikqKeUkJakm6OsnZCfqKufmp+oo7Sfo6WOp6GUopqcmJWjmI+vn5KUqZ6FkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSfwbu9mnuBsahwgHORuYN9h4aNh418ioeNmHyku7m9nHR5tKN0d5d2dLB1mZ5mh2qNtXRycXi2jF5/en2JaIN5bnpji6xwdYV/WFunakVlWlRmYGNeY1FnZ3BsdUNOUU1EOltNP0ozOy8gOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlUnPjs8p56hosCllrXDtKuqqKyqqbmusMWts7Kttaazt6upoaGknqCdmZOqo6yqpbWnpp+blaCjnaukvaagqZaTm5ChmpGOoaehkpyXlJiUsbW3rpmepKSii5KRppqlqpuVp6Slm5mhqKWnpKqhkq2el6Sel5eXnZ6Pr6iTm6WhjWp9aZqld4ZyfZqOdHlkh3u9vsC6b5ODcpaIYXNrWl+bimFjiI+Va2CAlmRunndjlmyAmpWUZV5gYnCZiGlyi32GlWdrf3J0eH1/Ylt3dIFoUF1tg317i2tYa3qCc0pKb4ZwTnRMRVhdZ2FMW1dnY19PW210aXFSUURFTTtHSTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTX1Y0KVBfTCgyPVtPJz8yPqmgqKLCo5u1u7ajrKWup6e0sazIq66yqrOivbCxpZ+ip52jm5mZq6auo6S0qKSbmJSgmqWtp76nqKSUk5qVn5mSl6SpqJCekZCYnLCzv62cp56noomTkamaqKOamqqgo5mao6eso6Cso5qxm5SnoJaVnZ+dlrCkl6CnmJqQm5uhoZekoZmcmZmZj5WBZ219cXeSmJSShoy2q42GmJaOioyYloeUlYuEk5SSiY6TlJiUmJaZn6GZmpOgnI2CeqWFbWt9kH2AdYqKgXGCeHl2dYl/fIpqc4F0g3Vld313a296bV9kXXBoTVlaZmpgV1pveG1tZlVPRlI5T1lNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxcYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSiw8LUCzoLOiwKGksrK3oKmlsqelr7Sqx6qrr6WzpMCns6Cdo6Sco5WVn6qmrKKitqufmJaVn5etqaTAnqujlJGalp2YkpShnp6ip5ORmains8Swmqudq5+PlpaonaqbnJ+rmKGanKKkr6eipqifrpiXp52ZmaCenZuvoJyhpZSWkZeTnp+UoZ2XoI6Wk4qKjY6XrpB8lpyDkoKLq6mFgJmXiYSPnoh6hJCIhpqSiIeKlo+bl42Ql52jlZiSkJyNf45nobOvhYqFdnuSin13eXpvZnmPgYCJanWBeYhzaXN/e3aDhoJqdWR6ZmBqZWNkZmtZbHtvaWpdU0xQRF5URUA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaW19iY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RcUTA1TlsxN0UzW0c1PCxAtKC5sL+srK+ysaCqp7Ksoqyyr8Svqaqisa28orObn6aioZyYl6elqaWkpbK0npSTnZmZr6WtvqCropCQnZmZlJCVoZyXqJyEnquso7TItKCqpKqWlZeapp2omp2jqpSen52gqq+qpqSso6+bn6Chl6SenJ6crqOYnqeSlpabkKKXlqecmpZlgpJ8ZX6NmpBjeY5taGt7kqWramWbmH1nhoplZWloe46ij2xojZiRo3draoqYop6Xc2tteoSOiHpYZl6Gg15tjIqBdlxoc3d2kYCIgm54gnh/c255hHR2iYeOg3xqh1lebHRkXXOJaWt8cGtjX1JOV0lkWEFKND5GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJVV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaagury6r6y0saqlqK2usKatrLC7sKimo62tsJ6rlp+jnaGZmaaqnK2jpaepsq6elKOPoq+ltbmlraKOjZmgmJOSmqCZmaWVfKauo6i0xbiloqevnpyVnqKeo5uiqKiRnqGdoaqwrKylq6Gqm6efqKCslqCbpa+jlpuolJ+cmpGilZypl519vYOIcrRyhJ2GrWh4ucS4cZSjo3qmmZlyq4J8y8DAu3GMo4iDnnyXmYmdwL2Blp2djJzBwXyCfJONmsPAfWylsm+MgW/Ken+bd5CDjoF1eYB/eXF6f4dwd4WMk3lteJRjZ2B4ZGBlgmJec2dsZGRZTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUVNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9VQUI7LziWo7nDtbCwwaqolKOvqbCuraWys66ppKWlr6qfq5iaop+cmqqmoZyroqSoo6S0pJyikqWtqrazp62hkZCZnKSSkJ+hmJugnYinraWsrsDAsaGpr6mWkp+doZmio6mjkqChnZ6tr6uuqKSkqKGmpZ2sqJGjmqisqZqcp5qqn5WWo5SfoZWbfs6UeHqkgXmVlptfro9ejqiCo6F8p5abc6uDgK9eY42qe6iHhaB0l5OIs2OCq4agjY2zaoSvdX2XiLdig61ao81ukHZ72nt/mXB9iJJ2fWV7h3Z2a3yHbn2FkJF+bYOQYHJtcGhgX3llXHFnaWRnYFJUU1ddS09ENUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqittKulsqurqqKrpq6qn6abmaWXnKKvn6CeqKeipaCfsKuanZWmrquwqqirn5SRmp+kko+epZiep6Ofrqassai/x7OoqbGulpKdnKGXn6mqnpSgn52drrCprKucqailoquSrLKWpKGqqZ2ipaSfrp+RmKWXnpmSk5CXoHGFjJd1haiGcbF9nnKsf6KfgaWQn3argn2tf5xzrX+sh4afdpmSe3yXfqqIoYuRjJ19q3uJlZCggXutV53Fe49wk8F9gZVsdXCMbWV2ZIZuYXducm+JipKPg26SkWZwdXVxYWdtZl9vaGluZ2RXVF1hWlJTQzlJSUBEPD49QEZFQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08KD0xKTNXQEYhHEc6QzEuK7DTxsays6Ccoo6ioqKsrrauqLGlqKmmraurpqGjnZiilZ+lq5+hpZ+oqKKenbCsl5qWqKeuq6imp56XlJmioZKUoK2bnaejsK2lrbWrus2xraauq5aVnJ2imJ6urJyWoJmen6mzq6urnK2rpaOsmq6xoaerraWXpKmnp6+gkZWiopiTkISkaqR1iXqpdHqycIKmipmMcYmgmoakYGFSrIV/roObdq2CqIaFn3uZl4V6ZoCjiaSYhoKjfal+gpaIrl98qVaeo5KBeqOfgHvDrsSLcq+zs7lxYqmvwnRojIyYjoFunJVxb3p4eXBsZmZlcnBmfWpjXVdgalhZVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NSoyUEtMIyBBOUQ0LCfDydbUv6GZq6egrqKer7SwrqisoqelqKqrqaSmoJuknp2lp6ejnKuZoqygo5+voZyakquktK6uoKeanZWTpqKRm6KooKCmnbGmpqmyrbfIsrWqq6mWkZ2copifpbOdmaGUnZ+nrK2lsJutq6OjqqGyraGpsrChmainrK2zoZGUoaWWmZB7qWyehId1q3l8sG+CpYyJn5aWoJWB0ri0t8mBgbJfYJSpg6WIh6B6mZWaeKrJdJmklKipkJKbjYGdiprGxnlnoYKldIGfjoJ9r11vtGKwdUujh22nR4KTZI6QnZJ8cZmVgXF7dX58blxmanNxZoFrX2FZZG5cX1lJTU1LRURBQj5BPEI/STs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqbKsrKWim7K4q6qhpZqnpKmrqqafpqaYqqOfrqudpaCsmp6ppZyntZ6il5OpqrWxrJulnKCUj6WskZqcp6OhqqeuoqWnqrC1w7GzqqyolIqXnKWaoaOupZehlZmcpqatnLGerqmnn6yjtqygsbiunZmtprCxsKKSlqahmJ6Ngp1OeJqBf596hKN9g6SFh6afnZ+UhLh7fHm5gn/MxsK2eJuhkYuefpqWl4p2n5eKpZekqX+whZ2GoISsfZqVY6ZtpHCPhZCBfJaCcqxgo3JxgJpgvH1SVXSOkqOXe36Uk4x2e3OHgHFdbW54cmqCb1tkYGlvY2RdS0xRVEFJSEZJOjlLP0IxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZZWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJz9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmKmrpKu4qq6gm6Css7KlnqCVpa2trqqnnKanm6OoobOuoqmmsqCYqaSUo7WiopWXoqm0uKOboZyiko+hsZmenKemoaKwrp2mqaO2s8WxramsqZGHkJynnKKknKWXnpmamqalq5yxoq+lppivpLutoba1rJ2cs7C2r7CklpyunqKchY/RtcO3eYeOhZGTkICmeZShd4ygkoSlgopxqoaFtW5yaZqknJWKn32YmYaHj3Ovgqabo46mi5Odi5WQm25xsl2ldJN6nGyYf3uZfG2pYaJxcX+fYnOyuGh3j5SmmH2NjpWOen15kINuanlpenNvgXVeZWVvbmZoYEpbWFg8SEdAVTRARj48Kik2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBfXVtaW1hVUlJRRjoyMjMvLysrKEBRUlRVVFNUVldXWFhXVVVVVVFPUVtVJSEyQUgkKSWSc4yKrb6+vLm0npanpK20oaGZlKKnpq6qq5imo5+loaC2p6Oop7CjlKujjqSto52Qmpqqs7OknKScqJGUlq6fn56npJ2onbabo6uktqzEsKmrqKGMhI6coqCmopWZmZyZnJmnpqiZraivo6abrKa9rJS8r6yeoa6xt6mwpJmnr6GmlnmokH18sHeKgKSliJxtsnChh618oY+DqJWYgKyJha6FoJWqoKKXhp+BmpWAe5J+q4CdmpeLqnedoJKKlJKBeq9epIF9pqdknX98l3Jqr12ka3CGmV1gW4ygbZWRppmClY+ajnx8hJmAa26AY390boB6YGhmcW9paGdDWWFbPUtUM1U4QkJDOCQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFSU1NWWl1fYWBhYWFdXVtaV1NQT05JNzA0Mi4qLEFUVlZWVFRVVFVVVFRVVFNUVldXWFZVVVFIRklKIygovZKag6jFwrbAs56arKCtt6WjjpukoqCwr6qfpaCerZmeuaGjq6CvqZquoZCrqKSWiZqQra+spp6lm6yXmI+soaGdpaGapZ2vmaKpp7eqwa+kqaOei4CNm5qfpp6SlJmalJuapqWmm6qsraSln6movqSWwaqpoaCqsLepq6Sdsq2mqJd1r36Qi5yFh366rYqZZbCNZZWtfaGPg6eVmoGsioSwhqeapKGikYWhXWxrgbNgf617e4OBsW1nbpmZjYmxW361XKSEa8iiZJ+Ae7tXdrVZsnxSroB6rFeAoW2Xj6ibjJiSmpl8epGgf2R1f2OGeHWBfWJqZ3FuZ2ZlUFVkW0FWYD5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOT1FSVFdaXmBgYGFiXl9cW1hVUE5KRkM1NTMuL0BVWVhXWFdYWFdXV1dWV1dWV1hXV1hZWlpbXFhXV0dCO9KfsrG2vbqzwbKinKympLWooIqaoJ2cs7Opn6ShnraZobSoqqyer62eq5uVr6ehjoibjq+rqKahpZmukpiPqJmhnaWfmqSjppqho6qzqr2vpKeenI59i5uVoKCZj5Gam5KamKmgo5qprqilpqKkqLuen8Wlo6efqbKzqqyknbmrqquUgKmSo6+Om4CHpJeZkIKAuMO6g46ck4Snl5yCrIqCr4mnnJumq5F/1r3CqmKkv719fqOCg9e7uLWGlpSEnr2+hG2jgm+rhGycgHqysMeDaauwvKx3dqG+vHOAlo6mnZGckpqge4OTnnxjfntlj2d6g3xhbGZra2NRYVtTalxAVWJDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzc7PkFDRkdJS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbOzsL+4sbyyopytpaWypp2LmKXAqriyqKLAp6iznZ+ynbqon62vpaaVlLCrl4yDm5GupaKsoKOcqp+XiqOSpp6nm5uhqaSZoKKsrqq6raijm5aSfIiZkaWbko+RmJmPmJOpm6GZqqmhqqego6q6nqjDop+soamxsqetp564paysmXN2qqS4hmSJoHBorpGLkG5ud6SQmZ+Bda6ZlHCPi3GWqKScmK+kc21tbWaLeG9ugplwgXpqcWlnipiWmXJpaoWIZ3GGZF2IYmpvWVxmfXamX2FwjZBuZWV/jJOPoZmZmpOZoX2JkZh3Zoh4aY9seoB6ZW1kZ21jS2RYSmtaOlFmRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1dXWV1eXl1cXFxdXl1eXVtbVVdeqZWss6i5uLGzqqmhrZ6jsqqYkr+zxcq+t6qfwa2upKKorJ+6o6SurK2ljZauqY+LhZaWrJ2mqqCdpKOgkYukk6eZqZqXpKuil56npqiwu6usmpuSknyEl42ll42RkJiVjpiVqZagmamjm7GmnaKruZ+vwKajsaSrrq+oq6mltaKstpWKoammt52JlqOZiKqbkZWdkqmzmZqiqqCylqKhnZ+inaGlopWsp42Tk42Hk5yclZGZk5mRj5WFgaWbmZaPjJSUjJCHhH5niX50gnVzh4pwp2x6k4+TkYCBjY6Qj52VopeamaWEiZeQdGqRd3KMeHh9emptZWRwZVVgWUBqXEhkYlBZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVV1leYGFjXV5UUUtFQz45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKaWqamktLWurqKwo62fn7WxkI2syL7Gu7qro6afnaefsamjtqedqbWnp5GYraKLh4mPm6eVrKSfmaifnpKUo5eomqialaeipJGcqJmitrqoqpiakI18gZWLoJSKlZGWkZCUl6aRoJupoJy2o52mq7enrsCtorWkrq2uqqensbafrLqYkaWjp7aikp6noI6qoI6Tn6OrsJqgo7CosJejoJyjqp+enp2XrJ6TmqKclJCWq5qOmZmXkJegkoihnpeVh5ONkY6Vi4F+ZYuFdYZ0d4eCc5xqhY+Sk4+JfYuVkpKYlKOUn5mkhYmbin1zl3N7jIBzfH9qb2VfcWpgW2BabmRRYWVRWjpHR0U+Mj0+OS8qJispJh0mMzE2NjY4Oj09P0FBQ0lKR0pLTE1TU1RVWmBgaWFlVlBLQUNCOjlFTVZbXl5bWlxbW1tcXV1eX11eX2BhYmJhYWFgYmJiZGJcW2OXlaOmoq+xq66jqaasn6e1qpCPnaS1vbCtraOkm3yfpLKkpbGpl5u4pqOUmaqcjoaKiZyij66eopWon6CSlpmbrouplo+pmqqNmqmQn7m3pKWZnI2IeYGTjJqTipSRlJCOkpejjp+fqJ6fuKN/g6+1oq6udKK7obCedniep6+4k3Sro56Jf6t/ZFxidqCOpZ+EmH1tkrOdoqetqqNlnp+Sc3mamHGBmamYbX+iqYplnKadkpeYloyTnJGGnpuRloSTiI+QkomFd2qOhnaFcHqFf39gaIeJk5GKWnWUkGdoj49zfKicnGZ7m4qFeZlqhYyEb3qAa3FlYHdwbGtpXGZlYmJxVFs+Tk5OU0c+QFVEOjEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVlcYGhmZ1dRSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5WloqCur6urqaWoraKnraSSlqu2sbOnm6uorZh0jZ+xoKirp5SXuaCgj5yknpF/iYibnoysmaKVp6GdjpeSnYV2rY+Jp5upkpilipy7tKegmZiLiXV3k42Wk4mTkZCUjZCUoY+coaeZnLGVgIybtJyyjJKNuaWffaeieaCstX+NjaWeg4uGkLCqr42Ll6SbeoGLrIWcnqGmqKeHlYWYd6WbeoicgZeng4J7nLN6ioahmJqVmJaCkZeXhJuZY3qIkIWPkJKLg21wjod5f3B/gIR9hXOFg5SRd5ZoknSgmnR9mYSjoImYf5WNhoWaa4+Oh2x5fHJxaGV5cGpsa1xlbGtmdV1eSVRMUkBFNi5bVVU3KSEwOT4+NzQzNTY4Ozo9Pj5AREk/SUVKTEdTWFtZW2JhaGZZUUg5RUw7PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop6lrKyrp6ygp7CmpqmlmZSvyL+xopeoqrefkYWerZynoqCOkL6emoyfmqCQfYaPmJeHrJyhlp+hkY2TiYWAkqeNh6OepJWZn4efurKnnZuSjoVxdpCJlZCKlI+Pm4yPkqCSmKGklp6rh5+0ibSZrYrKhqisiLaFjK+BrquCqIymmI2dfaiPc3t3nI+nl2iVpHm0jKCdpaeSmMKBf6uImKFynoCapX6XhZWzgaF9oZOhkJiXgY+UnIuZkox9hZOHjZaSiYNtc4+FfnlxhoCDe4N0hICVgI/FZn+ph4+ja56FpJ2EmoGOkImMmnGPlIZpeXZ8eGhpdnJoaGxeZHBtZ25ZZ0ddUk0zRTU3TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05KSkxDUFpdXFdhXmlsXFFFPUtNQEljWF1jZmhnYmJiYmRjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqGer6anqKWrn6S3sKmrppqUoKOkrKWYpqy5pLCBoqmdpp6diZS8mZONoZGej3qEl5aRh6uZm5yaooSPjHeanI+fkIifpZyXmpmHo7mtpJqcjIx+Ym2PipOQjZCMjZiMkJKgj5WhoZmgp36hp4etnZ+WrY+cm5yQhH+gjKishaONqZmMmn+idYGZlGuCrXZNq3iHjZyRmqemgKmrfYOhe3qnap5/kmxnmIaYt4mefm5gZFmDl4CNfGRoi3KZfXmWbF19l21fUnCDXF9reIJfWGSAfIN/lnCnqmuDo25ypXCfhaBqZ6BtXHCOfmdaYISBY1hRcHdmbnVza2pwXmtxbmxqWWlPXVlGOUE1SEVfbDUsSURSTU49ODQ4NTk7NkA7Oz5CUD5RUkxNQkpcXV9XXV5idWBNRDpNT05UYVxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5Wcn7ifqaOmrJGhtbuqrqKZmKGipa2voZ6wtqSpk6KhoKecmo6ZtJmQi5+MlYt1gpSSjIqmlZWYnp9+k4WFrKSHm5CLmquZm5uSiKaxp6GVmoiJgGluiIeLjo6Ji42SjJCTo42Un5+coaR/k4GPoqCTn3aclI6ngZ+lfoWnqoKleIl8hJp+onBzlIiWfJ+NeW2Gm4yZj5qomY6HnXuConN2pmaefnekX5h6fZR0om6Yt7S6dJOIg4C1qGSBxrh7cJW2jHKAmqNjc6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGGdmbSXc32Yn7N1dFyesoNrY3B1d3JpcFlsbXNzZ11qXmJMRT1ENlJCWnMzPVNHYEpSPTwzOTU6OjZEOztASlA/VU1PUUBFX19bWlhgYHxkSEM4TVdVV2JhWmVma2tiYmVhZGRgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOWlKK3mKqbk5+NpLe0rK2gmqKdpKOmr52cs6+tlJmimqGlmZqVn6ubi4iSeIuFcYCWjYmQoY+TlJ2YfZGKjaihh5eOiZOklZybjYypqKWej5eHhH5qe4d+fZCNgouQkImQlKGDl56gnZ+ei4l3nJihjJ9xoYqGqYeapI2Upah8rYx+eqCZeqOTeIF0loiNnH2Wn4abjpiapYWiZKF8iJaQm41tnmibjm+amXuAi6d9cml0q4Ofg3SqaJWaXZuFdoWeZ6prgLhmXKhwgZxglYxep3Z1h4h+nWeadYaTkpeOgJ9vmpFup5peqX95u2t+qlyOhF20aF1ucnp4bGpccWt5emRhZ1hiQlJGTzdXRFJvNUtbW19OWkRBMjUxPDs3SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5cXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4ips5qmiGOUm6u6sa+snqacnKmgn6+cnrKprp+YpJuhoJmXlqCjmYaJjWmIgHJ7l4iLlpaEkZWYkHqLhJWknIqUj4aNn5OenYmRqaOgmoySioCAaYGGeH+WjHqJjo6IkJebf5Sinp+gk5hyaJ+Jno6LcJKMgKmGmJ2gpJ6le7Cto6K4l3ejs6OkgImUeZ17q5l+oo6cmpaIl3GhfIWNr7V9a5qRoXl+mbWjpKuohJl8m32em390qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJpcXuObICIg5l1m3iGibGzf4Cbk6d3g55udH6VcJp0a6RelXZIZWRhdHJ+f29mYWxpd3xlZWJRX1ddVVdAWkZRaEVUV11iWF5JRD1COEBBOklGOExFWEFXUltXREZiXFpgS2BtfXJFQjxVX2JaZWlWZ2htb2JmZ15hYVxdXmBoYl9lY3ZsXWVnZmtkZWxpaWtpk5yAr6yYg1NeoKazubGyqJqijJysnJyqlaKtpaOpkJ+enpualpihnZaIh4l3hoFveZWFkZuLfJGTl4hygYmRoZtzkZCBiZqWoZuFj6qcm5WLi4p8g2yEhXGBoYt4ho2Ih5OZlnyTpKCeooithn21hI2dnHullXmpgJSajoiemnunaHdtfpl0oXNyfJ6GmXCTg659o4OlnZiAo29eqGd1omNvpWGc05B9e5l4c3RiooaQfqN0pJB2a4+zjGCCmIlzqrKovH93g21+v6aptF2cbXtwlm1/cqJxXaRnc6ZgaKZtm9SafoabcHt7mGycfHiYc26ppGdhZXpygIVsaGZkb3Z4aGFjU1xmUVJiSFhKVWFYVFxma1xlUUZDS01KS0JLRThPQFFOWFNZT1NRYGZmalJkd3l3SUZFY15mWmhqVGloam9jamdgY19dXV1faGJhaWV8ZF5kZ2RrZGpsZmhsaJeaf6+rVFtKfqmvsbOvsqObmYWZqqCipY+mqaGaq4ubmZmUmZOToZiOiIV7cH2EaH2Pg5WbgXeRjo+Kb3+Gj5OSbJeUfIqTlKWXg4+rm5SSi4aJeYN2iIBtgZ+Gd4CThoiZo5h7lKKjmZ+Js6Gitot5rKekrqVvqH+ZjYWAmY96pH+hmYaYcp6EpK6vipeMgI2kjZWCraCTdrW2tcmhc5SLgZ9gnpepbXqVh6GcdaKId6B+kpeLgXBNZqOScJqHc6V7eXRhg4FrfaBrcWRfnHF9c5ZoemmztbPGpnKYfXqda5ybq3aFm253eZhqmnx2mHNRRX2zX2p3bHqIZ2toY3V2cW9XX1RZaVBTaUpXTVlUVl5pbG9WaFdNS0FKTUtISk9CUUtQZWNqbWV0cnN/eXxudYl7e1RRT2xeaVxraVJqaGlsZ2xmY2VfXV1dXmliZGlre19dZGhjamZvbWVpbGWgm4eupYNkP5OhsqqurrSiopCAmKqio6aNpqifnqeEm5iXjpeQkJyTjoiDemp5h2WDjX+YoHl1jomMgWmEhZGDjIWdjXqNjJemlISYqpiMkYuBiXqAfYt4cJChhnmClYeJlqCWf5Slp5uVlYNmbnicbKJke3Cld5uXcGWmgJSJeqR5n5aDl3Oed4GKlZePuW6RiqJifZiglIhtcmmqa3WgbW+mYJtpi5BploeblnWigX6aYIyGjXVwiGJooGWefmmbdW9jZoiBbXGiWV5aYqFsXYiLbXp9c3FkpW14omRnp2iZc4yZcKJwVYmQcKBgZqhVi15UmG5udGxzg25xaWt5dGtwUllXV2ZaVG1KWlBdSVhpaXNqWWxXUVJGVlxMWFNiVWlrX3h0e31wfHxyg3uAc3aNgIR2XlJyYmdjcGdQamhobGxuaGRnX11eXWBqYmppdnRdXGNoY2pqc2xma21jnKOXpXlkc2yKpq2jqbCxpp+LgJisnp+njaOinKSjgZaZlI6akIyYkI6Ke4dxgIhoi4t8mJtzdIl+kHtlg4aUioqWmoJ8iYiYqJKBo62RhpCLgol+gICOcmmPpoR9h5ONiZigj4iTqaWciKZ4lZt+pYiWirGXnY+CrpaepHWThXipc6WPhJpupKKMkoSNg7tufaWvg4aFhpKVnJ98pXpyqJWglmeefm+sZJaKlpN3qG2qooGJdomDd6uRpohrkbBrdrOMqWuKhW1tn56RlF99q4uqdn1+iqSddp98g6SVnaBqm4h4rGifro22dXi+jaSTWoOnjqthdXN1cnx1cWNrf29obVRXW1ZhYl1sTV1SXkpebW93YFtxWVtgW2d0ZW5vcmJydGB4en55cnmDc4R+gXt7jIGDgHZieGRjbnJkUmtnaG9scmpmaWFfXlxha2JtbHtvXFxiaWJsandtZ2xuYpWkqZuAf52jlqmpnaimraSZioKYrJufpoqcpp6rnoWNm5CHnJGGko2MjXSHe4iEcI2FfpiTdHSGcpGDbn+LkYeGlI99fIOHmaePgKenj4GOiYWUdoKHkm5si6mAg4yUjomdn4mNk6min45/dJOXiH6BeJOuon6BmnCPhXaOiYJ9e3KnjHF+fXqYlpuEkHl7f36HlJWTinaQmJ6gg3t+iWuMhVt5eXJ6cWlufpKKcoB1gY+Uk3GHhINljH9fgYCLd3VzlHVveW5th2yDhl51Z3eOZX+AhY2omn10e5VqiYhwgXZ9h3dubmiNdHp8mHiFXGxYeY9pb3hzcnB4eHBdbIdvamhXW2BXXWdrZFdjVV9SYHB5eW1rd2Zra2t3fXJydXNhb3ZidHuCeHV6gnWAgICBeYuFg317bn9sZHluXlZuZ2h1a3hqaWllXGBaY2llbHF1blpbYmxkbGx5bmhrb2GOk7anpoqgoZqmo5ilnKuioYSEmK2SnqKKm6ibqpiDgpyMf5eUh46KiY1yg3yPfX6PhHuYj3RzhHGVhXt8kYuGhpCFeX6AiZulj3yooYuFj5CFlYKGjph2coSpho6SnZCJn56IjJumnp+qg4iNlZp+foiWrKeOkaWPd26bjoF4kG59qIVxfpVxa3B9gqCNgJOOi2hsXIKLi5uano5zlYuIcXRrgnd0gVlyboeRgn5/jGpdamV7hoSKgGBpeXube4KLgnWBhYFnd4qGamBvcYB1XnGJgImOpZOEZYuNg253i4Rxho96cWhpZn2Fe5ZbXWtobnZcfHp4dm90c4NoXW6LbGxjWlpfWlltclxgYlpfXmZ0f3x2cHVka2trfH1zfHl1ZG51aG18fnZ6fXt5eoCBfm+FiYR7fXR+eXN/aVRccWlsdnB1Z2tnZF1hWGpoa2txcm5XW2VubGdzeW9oamxgi4qor6CPoqCZnp2Xnpioo6J+g5mujqCViJ2jkaaVgHyZhn2SmYqJh4eLc36BjHaFi4KEl4pyb4BymIaEfpGDg4aKgXuBhY2coZGDqKKIeI6XiJSKi5yXhIN5rIKRmJqVip6diIihqZ6hoaOKh5ObnKKZlamgpqSekZqFk4t6do2Ng6d+f5KQk5SdsqablZ+QjbGSl4OljIyVmp+JkZuCiJGKa3yOd3hlg4eRi3yJnoSHjJCJiYGFhZB3fHp0mqCJhoqdiYSTfn2KgH90bnOEgX12hYaJjqSPgoSMhoKMkIx9h4uKkYR6boSGfnqZa3NpYXSLcX57eHdweHWCXV5vh2lvYF9aXV1TaXJWZV1dYm1odnx9dG9wZWtqaYB9bnmAcmpwcW1ngXtzgoF3f35/hXptgoyGfHp4e316hHlOZHZqc25wemVrZWNiYFt0ZXBmcnFtVl5sdG1oeXpxZ2lrZYyHnLielqGgl5SYmZSYpKCefH+arI+fjoahnYyeln55lYR8jpqKh4SEh255gYFzgYh+iZSEbWt+epeHhIOPfoCGhIZ9iIWPnJ+UiKyghHKKkIaSkYudkX2NeqmEjpOYl4+cloeGm6SeoZmchYKSmpmYj5imn6Scm4+Vfo6HdHqGjYOle32PkJGGmKuhnpSdkI6pjZCAnYyIk5mego+XfoaOg3B4hnJ1YH+EkIZ1jZmBg4+Dh4V/hoWVbnl2dJKiioyFmoSDjHN/iXx8cXF6hoJ6doiNg5GkjoSCjoCDiomKd4aJi41+cm2Agn1vaWxuaF56gGh+fXd2d3Z7eF1gcX5udWFkW11fUmduVWZcXmJraXd7f3JsbWRramiBf2x0gmxsdXB6cIZ5boeBdoKAfYV2cYKNiH57fHx/e4KKYGh7anVoaYJkamNgaVxkdWhvYnVtbFVjcXllcHp7c2VqbW2LiJ61maCin5KRlZiKmp+fn3t4n6eRnIuHppWMmJl6e42GfYmSg42DgoNufIB5c4CFfouSfWtofYKXiYGIjXx9hoSHfY+DkZ2dk4qpnYFwi4uMkoafoYqFjHynkYiQk5iUlpN4jKKen52VmH6AkJqYkouZoqCjmJWQmXyLgnd/go6GoH9+jI2PfJikoqKTmpGQpoyOgZqQiZKWm36Tkn6HjoF1dIJxd2F+gY6GcouXfYmMcoyAg4WGj2l4cniMmJGPf5Z+h4lygYZ7e293eomDeXiOi4KUo5KKhI96hoaHhHaChImJfWhzfoF6fHJtbGhffnNpfXZ2dH10gGtfYHR3cXhlZFlfX1JraVZmWmBhaWp3eoJyZ2xkbGhmgIFrbn5ob3Fsf3mHe2yMgXOAgX6CdHaCjYZ/fHt/gX1/j2lyg250aWGHaGxiX3FWdG9sbmB4aG1XanR2Y3V6e3Jiam96iYyesJGkpJyOj5ePhpygm558d6WhjpiAjaOKiZqWeXyGiH+Din+Jg4F/coB7dHaChX6LkXhnY32Gl4qCiot4fYCOhHmXg5aZmI6XoZt/cIuCkZOFpZuHjImDppWFk4yXmJKSd5Gcn6CXk5Z5fo6Xl42WmpyjnJeRk5l3jYOBdoOVjZ1+gomNjHOXo5+ilJmPj6GMioKWl4OSlZl+mI18iI2BdnF+bntkgX2LhXGHk4CRgmyIg4KAiYVmdm97hZGYi3ySeIuHe3+Ge3pwfXeIhHiCjoeKl5+UgYKLdoiDg4J3fIOKh3hhenp/dX94aG1mYn9qa3h0dHd+cn1jZGFzbnVzbmFaYV5bbWVTZFlhYWlsdnqHcmNrY21maH2CbGl1aG5waoB9gnpukIZygIODf3R8g4yBf356goN+fJBtdolzdW1limxqYmJ1VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPm6yWpqeejYyXh4afk5eZfniqnYuZepidjIyZkHl8gYx+fYR8gYOBeHR6enR9gISAiYuAZF99i5SHf4SGdH1+i4B+mYaXlZiOpaKYgHOHe5ORiaaPjI6KkqCRhJKQlZeRi4GPl56akY+Qcn+NkZOInJyepZeWi5OVcYuLiWuEl4+ZeoiIj4lvl56bpJSVi4yei4WBkZx/kpKVhpmIe4qKgXpxemx1bHx/jH5uhpODlXdwg4R+f4uAZXJqe3+Wl4N+jXSPh4J4hnx0dn58hH97gYqCi5Khj3iDgXSJh32AdHWCiYVxYnx2e3J+cGJwZGV8Y29wd3N5eHR1YndgcGx2bnBdXGBeXmteUV5ZY2FpbnR8imxgamVrY2h3h25nbWlrbWmCfXt4b5CIdIGEhH10gYaJe4N9eoGEfX2OcnmLeHhtbIdqaF9pcmOHZ3FvZXdnbmxhemlqfXt4cGF4bYuAmJipn6OonYmKkoaKnYuVmX54r5mNl36flJGXlIh3fnyKfXyAd3iAgHB1dHxwhn2BgYp/fGFcfo+RhoCDgnJ6gIh7kJOKk5OdlKadlYJ9gX2NipGjiY6KjZiajYaSmZSVjomIjJGbko6MjG2EkI+RiJ6ZoqCWlIiVj2yGl4JlhJiOk3qJhJCKcJablaOTkomLmYyBf5CefZKOkoyZjnuKhYd0c3ZscW52fYt0b4eRj5NxdYF8goOIfGZxbXl8mZN8g4h0kImAc4d4bX58f4R7g4qGgYuUpot6hnt+ioR3fnFwgYaEZml6dXZxfGNfcWFrdF9xa3t6em1zcWZ6Xm9tc21zWFtfYGJsW1BYWWVjaHJygIhnXWppZ2JncY1vZGpoZWlpgXp3dnCOhXSBgoN8dYKIhXiFfHiEhXp/iXd+i3t7c3iDamtfcGh0gGtyb21yZ29sZXxjboB6dnFsd3eKfqKXoaegppuGi4uBj5yHk512gquVk46HoY2WlJCAdHx3hXh5f3Nze4Zsc3B7bot2gIGHb3BbWX6RjYeAf392dYGBgaGHkouUnpmilZh5in+BjIicnYqPhpKYloWJlZqQl4yLjI2Lm4mNj4JtiYuQkImclqGbl5SEloZogqGBZYSbiZB+i4OLgXeTmZOfk5GJiJSMfn2Ol3uRjI+OmpJ8ioCCb3ZwbG1vcXyGanSEj5mLcXeAdYKJgnlnc251gJmOe4eEeZOQeXWHcm6HeoSKeImEgIaNmqGGe4N1gYp/eHhua4GEg190dXRycnlbX3FhcGtfcGt+fHFubmtud2FwcGtybVlZYmFib1hRVFtmZ2N1cIWDY11rbWRiZmuSbmBnZ19oa4F1cnNxi4B1f4OBeXaAi4B4hX94iIZ3g4V8hot/e3eKf2pxY3xjhnxucW10amhvbHZ4YHF/eXx0dXSAg36klZmsnqeWhI2Ef5eUg5CgdoyglJOGi5uNlo6LenJ4dYJwcoV0cneJbHBudm2IdoN+gG1tVVGBqpSGg3d+d3KDeoOig5SClpSZnZObeZF7g4ySo5mTjomUmZKEh5eajJSLiY6OhpyDj4l7couFio6HnJqfmpWTfpJ8ZoOahWaFn4eRhJGCiXGDkJeQnI+QjYuPjHd6kZB6jouMkpaMfIh8gGt2a29rbG17f2F6fpCXgnd6gniDjHx6aHRsc4aVi32HhXuSj3F5g291i3mIi3iHfH+Jjp2bg3t6doKKfHdwamyChHxheXFvbXN0Vl9wYnJiYG1venJpcGZndXVpcmxid2VdV2ZhYHNUUU9dZ2VeeXCJfWBcaXJiYmZmkWpfaGVbZ3B+cGxxdIp9dn2FgHV1fox5e4WBeIiDc4aFf4yMhHx6lHhmcWuDYIh9b29remBqbnR/dV90fXmHeHRzhX14oI+ZsJyljoKLf4OaiICNn4CMmpSPhYiYjo+PhHd0d3SAcXCFdHByhHBsandug259fW10clJNgt/IktaSe3B1hHaFoYSUeJeSmZ2RmnyUc4WPnqGTk5CKk5yUhn+XloiNjYeRjIebfo2Ad3qMfomMiZybnJqUkniMdGWGkIVrh6KEkYiXg4ZjjJGZj5aLl4yNiopxepOIe46IipORiXmFfH9tfGVyb2tse3pcgXqQkIF7fYCAho56emlzanOKj4mBhYR8lIpsfn5tf4p9ioV7g3h/jZOZmIp8dXeDj3hzbWdwgIVua3VwaWt1blRfcGVwWmBtc3lobGtjZ3lzcHFkYHhhYFZsX193UU5MYmdjXXpxinZdXGV2YWJmZY5kYWdiWWlzc25rcneMfXR6hoJ1dn2Lc3+Gf3uJfnKJiIKQioh8fph2ZXNufGWIfm9wbIBZbG55eXNgdnp7jXZyd4p3eZ6Lmq6an5CChXeIlX59i56IhqCSj4WMmISTj4eBdXhweXFvhHBtb39zZWV5cX1teX1qZ2tjpJrB3K7woHJsdoV3hqSGk2+YkpahlZyCknGGiqKXiY2VipCdloOBlpCFiY+AkImIlX2GenR/iXeHhI2cmpiYjY51iXVshIeJfImihJGJnISFXouTmIuQiY6LioSIbHuVgX2IhYmRj4Z2hX1+a31keHZqbnlzWIl7koiGen+BgYaMf3pmcml/iY2JgoF/ipWEa4F1bYePgY6CfYF4fY6UkZePdHJ3h4x1c3FndXqEY3VucWNrd2hSYXJobFZgb3V6YXJkYGl/cXNvW2RyYWJXbltdeU5NTWVnYl53c4puXF1keV5gZWWFYGNjX1lqc2tua3N4jH50d4SBeHd7iXGDhH1+iXp0i4mIlYaMf36Xc2h1cXlsjHtudHGBV3F6dnlyZHd5hoxpdoCJcn+chpinm6OShH1xjJR4eYyehYahjY98lY2AmoiEe3N4cHNqcIJsam19dV9heHd7cXV7Z2BkfOvatcnD3IdybHSCd4ucio9rmpGQnpaUgYlxhIifjYSLlYqMmJR8jZOIg4iQe4+LhY6Af3V4g4RyiIGTm5aUl4WLdYZ9boOAh4aXoYKTjJ6DiWGDlI+HioaKjYeBh2l8k399g4SJjo2CcYZ+f3F3aHZzanV3bFqNfJKDhn6BhIGFioJ2YXJrh4GOiYF+fpGQfW6Ba3eEjoSQgXqAe32PkY6UiG1weYyFdGtwa3J5gmF1anBdbHdhUmVzaWZTYHF3dWFwYF1ohHJ0a1hoaWNpWW5XXHZNS01mZ15ic3SGa1xcZXleXmRne2FkX11Za29lbmp0eIp+c3SBfnt2eohzhYN8f4h2doqGj5iBjIJ7k3Vsd3Z5eJN0bnh7fVh5hnF/b2d4d5KCZHaGhXCJloWZoZqiiod0b5KMcXePnX6LmomKfaB/hJqAgXhydG5vZHJ/aWZteHhcYHl7e3FxgGphZ2F/1baPkaZ3bnF4fXGUko6Ia5uQip2TjId7aIeKmYaBkpGGh5iOfI2NgYGJjXuPjH2IhHpzeoN6cIeAlZmOk5OAh3SChHSBfoiRm52GlY+ffohigJOHhYiFi41/f4JnfJCAfn+CjI+Qfm2DfIN1bG13dXR3dmxjjoKPgIZ/fYaAhYl/cF9xb4R7jouBfH6QiHpwg2V5gYiFioB6hHx9kY2PkYJtbnmLfnVtbmtre39kaWxrWm53WlNqc2liUWNzeG1jZl5aa4RudGJcaF9lbWBvVVxwT0lPZ2ZcaG9ygG1aXGNzYFxjbHdlZV1dWmxtY21qdHeGgHJwf3x9dHiGeIWCfYCIdXiJgZOVfIiGdoiAb3h5e4OTb257gXdeg390gW1penSUc2dziHxxkZCDmp+boIaIdnaUf213lJh/iJGEio6afYyad312cW9samF1fWdianV6WmB4fHpscH9lY2dnV52PX3Jzlr3FhXdylYuRgHSZjYeelI2Jc2qIjpWAe5SMgYSbjHyKhn18iIx+k4d0h4V2dn2BcXWGgZ6UhpSOgoJxfoZzgnqIlpuWhpONnYCIZn6Tg4GGhIqJcoJ+Z32Le3l/f4eLj31pgH2EdmZweXhzeHRsa4+Gi4KLgHmDgYSEgGtecHZ6fYuHhHuAjn9+coBod4GFiYSBd4J6fpWKjot8bWt6iXx2dG9oaH53ZV1yZFlxdFRUb3NpYk5odXlnYV5dWXCBcHRaZWNea25hcVBabFNEVGhiWmxvbnxwWltebWNaY293ZGdcXWBramNsanN3goNxb357f3R1g3qDgnyChnZ+iYGWkXiDinSBh3J5eX6NkG9ve4FxaoJ5en5ubXx2lWtqeIR0a5OMhZ6YoJmFiG9+jHZqeZmPgIKLgpaYinmPlm95c3FsamRgdHtpYGZye1thcn16ZnB6YWVkjrGyd0tiWqXb0phzfJKNkXl/l4yFmpKNh29shZKRenmThoCEmYp8h4B5eImKg5V/bomGcXN9e2p5hoOlkISSjIJ+bn2BdIF3hJmXkoqTj5SFiHB7k4R+hIOJg26BeGiAhXhyf3+Diod8ZXx+hHZjcXOAaXpxb3aajYaEi313eYGFe4NrXG98cn+Hg4h8hId6iHGAbW+ChYyCgnGDd36WioyDd21sfYR+dnplaGp+cmFaeFtac25PWHJ0Z2BLbnd1Yl5cW1l1fnRvWGdeZmtxX29PWGlTP1pnX1txa2d6clxbWWxlWWRxeV9oXV5lbGhma2lxd3+Hb2x/foF1cIJ6gIF/g4B2gYWIl4pxgo1xe4V8enmElIx1a3p/bHB+dX99b3J8e5Nwb4F/eGaRioKhmZ2Sg4Znh4RwZ3qXin+AhYKaioF8jY1peHJsbGZfYW96bl9jcHlcZGyDemBwdl9kZdXrvoszOj6Mj4BzeoaKkI53hZmOf5SOjX9ubYWMi3V8j3+FgpWJfIN4bnaGhIKVdm2HhGt1e3VleYOEp4yDjouCfG1+cnSCeIOaj4qPkZKNjId/e5KIeYCFjoNsgHJpgH94bXx8gYqDeGJ5hIJyZHFpf252cnWCnYyBgIZ/c3Z+gXOBcFtrfHN4iIGKe4Z/fIh4eXBqhoKOgohwgHd9k4mKfXNtanaAgHV1XGlpeXFZV35UW3JmTVtzcmZcSnJ5cF1cW1pddoB2alpiW2hmb2NqTlhnUj5fZl1edmZgdXFbWVVvZFplcXlbaF5gZm1oamtocHh+jm1qgYR/eW6Be32Bf4J6dYGBjJOFcICLbnh9gHt7iJOJgGl7fmp0fHKGe3N2fn+MeniEfnxri4yDm56XjIKBbY1+bGl/j458foCDlIJ/fYqIa3VxZ2ljW2Nnc29gYmx0YWhwiXphc3NeYmOboJBuXTZbsLZ1a4GKfpSHd4iZh3WQjIp3cG2FgoZ0eYl4iX2TiHp/c2d1iH18lm5vhX1odnluZXqJhaSHgIaMiX1tfXR9f3uKl4aAk5CYiYuFinyQinF8foZ8aX5ta4B7eWp6d4KHgXJgd4J+cmRyZ3aDbnV8hpWSgn6DgHB3enx1f21XbX11c4mAhXaGdIKJendybId/jn+DcX17fJCHh3ltbWhsgoF0blxoZnVyUlx9T11yXU9cc3BkVkt0eWtYWlpaYXKBdmJeXWFnZGlqZk9aaU5BYmVcYXdhXHVuWFhTdWJbZW9zWGpfYmhrZ21saXB3fJNsaYSKfXxwf357gX+Ce3eAgImMhHJ7h29yd4N/e4mNj4RqfntueHl2ind9eICCh4CDfn56bYSMiJijjYWEe3aLeWtthYmSeX58gpKAgH6KhHBycGNmXllnX3BwYGBocWZqb4l0YXNvW2BkanZ7f7+dqKXKuXKGhXSVfnqJlYR0ko6HcnNwg3qCc3WGdIh3lIl5eXFjdoV5f5JocYN1ZnZ1Y2p8hIiegn9+jo18cX1ygnd+kI6CdpWNlJCIgoh7iYpseXqAdWh7aWx/eXNpenaAg31oYHeHfWtqdGh7gWp2gY2SlX98f39yfHd8dH9iVXV7cXKHgoF7gXCGind4b26CgYt9fHd8enOMhIB1Z3BnbIiBcW9daGN0b0xmd01fb1ZUWnRuY1FQdXliUlhYXWJyg3RdYlxpZWVja2RSXHFJRGViXGRxXl14aFZXVnheXGZuaVdsXmFqZ2Vvbmhwd3qTbmmIjHl9c3t+eYKBgn12fYOIhoNwdoNzbneCgn6Ii5R/cYB8eHp6gYt1g3h/gYGChHqAdW59iYubnoh+hnt3h3xodYaNkXp/gHyJhoR2kIBnb25gZVxYZlluc2FhYXFsbGiJbmBzaVleY22Ad6naqciHiLNzi3pxj3Z9iZGBe5SLgHV0dX12f29wf22FdJSGeHVsYHmAeIeNZXGCbmd1bVttfYGQk4CAeJKRfHd6bIVzfo+Kg3KVipGPiIaGe3+GbXV3f21od2VtfHZta3d3f398YWJ4hnpodXZjfnxodYePjpZ9doF2coB6fW2AWlVxfG9zgYV9f3driIZzeGpzf4KCfHl7d3pxiX97cmZzZG2Lg2xzWmpgdmZJb29NXGNYV1Z5bmJQU3V3WVFWWF5hc4VwXWFjbWVjXm9jVV5zR0NnYF5naV1afGNSVl12W1tnbGJXa2BhbmZmbHBocHZ4j3Rrjo12f3Z4fXeBhIF7dH2DiIiDb3F/dXF1foWBiI2Le3d/eIR8fYWHeIh8fYF9hIB7fnJ1eIuOn4yJe4p3dYN6Xn6Hmo15h4R0hoeFd4l7Ym5tXGJbW2FWanRkYVxob3Bnh3FhcGZXXGNrf3zKzoe6omtub4xucoVzfoaMf3uThXp5dHl0dHpqbHZjhHaSgnZwZ158gHiKh2RxgGpqcWNYbXuGnIiCgXKXk3Z9em2Gb3+IioZwlo6QiIaMhHt5f3JycH5naHJjbnhxamxyeH18eV1leYB4aXV5Z4J3aHWIjI+WfnOIanB+gHhufV1Xb3xsc36IeoBubol/cHZmdn5/foB1em95coV6eHFlcWBtjIFrcldrX3ldSXBsTlhWX1VWfGtiT1R2c1JSVFdeY3aGal5ha2tmY1pvYlljcUhBaV1hZ19cVnxeT1ZmcVpbamhdWGhhX3JmamhxZ3Fzdod5bpWKdX97eH55g4iAdXN/hYWOg3Bve3h3dXqGhYaMhnp8f3WLf32Gg4SHf35+fYZ/fHh2eXaRlJ9+jX2LbnWAemSEiJiGc5KKb4WFgnqDdWRuallfW11dVGhzZmFZZHJyZ4FyYWtkV1pfaX94vq57oLduY3WIaXV9c3uFiHt+jYB3eHN3bnp2ZWpvYId1joFzamJefXZ4ioJlcH1na2taVm94i6OBhX5wmZJxf3ZzgGx+gI+GcZSIjYiFiYV9eXVzcGl6YWptYW12amdra3l3endaZn19eGVyfm6FdGZ2ho2Gl4BxjGhse4J0bXViW216anN6iXqAZXSHfW1wZ3R9dn1+cHpqeXl/eHZvZGtgbYl9bG1VamB4VkxsbVBTUGlOWXxoYk9VdmxNUVRVX2d3hGdeYXFpZ2FXaV1dbGpKRWtbY2VXWVZ6Wk5Xb2tZXWxlXFplY151ZmxlcWdzcHSBeHCZhXZ/f3h/fIaHfXZzgod/lYNuc3l7e3NzhYaIiYR5gX12j399hYmOhIGDen6Lg3t3fHZ2mZ2YeoqDh2l2fn1thYWVgXKPgnGGgn6CgHBmbGdYXVtcW1NlcWVfWGNzdWl2cGRlYldbW2h/cG9ygHOKZWZ6gGt2d3R1hYZ4goV6d3R2bmp6cGFoa2eGdI2EbmZeXntueYh8Z2x3ZmpkVldzcI6mfIR7dpaQc3txenhseXqPg3WXfIiGhIeEfXVxc21odV1taWBtdWRnZ2l6b3tyWWeBd3VocIB4gnZid4WLfZWCb4xrbnuBcWVzZWBqeGZwdYh5fGF1g3Zqa3B0eW95eHJ7ZX19fXZ1bWNkYGyGfGxqVWpiclRMa2xQTU9xSF58ZmFOVnVlS05UWGFreH9mXmdzamVgV2RYY3JeTExsWWRiVVRVdFdNWXdlWl9sYVxbZGVfd2dtYm9qdG9xfnV0mYF4f4B4gH6GhHp9doKDfpeFbnJ0fHt0cYWFj4KBeot2dJGAfIGVjoCFhHx+jIZ6foB2e6OminmJhoVsdX18doSDjXtvhnN6hX2Cg3VuamllVl1bW1pTY29lW1hhdHtqaG1oYGFYXlppgGlrcIBobWJpe3prdXV1cIeCeoF+d3ZuemhqeWpfZW5ogXeQhGdlWGF2aH2GeW5pb2ZmXVVYb2iPqHeAenyQjXh0bn1tcXR4jX53lHSGg4CGiXZqc3doaW9cbWVebnNfZ2JqeGh7bVttg3N0am+Bfnp4YneFhXmRhnOIcnB6f3JjcWhbbXVkbnGGendhc4BwZ2l3c3Frd3ZzdWKCeX11dG9jYmJsfXxra1VpYmdUTG5pUEhTbEZieWZiTVRyXkpNVVpmbXh7Zl9tcWpkXVZgVm9vWEtUaVhnXlhOVmxUS116YFxfbF1dW2JlYHpobGFvcHZub3d1eph9d4CBeYCAh4Z6eXqDfYGThHF0dH56dnSFiJB+gX2RbHOVgXuCn4V/h32AfoaCgIp7doSsn396iIiEbHKDe3aBgIJ1b4hufYB0ioBqb25lZFhfWlpaVWJrZ1xaX3aCaV5tbFxhV1tca4FlcnR9ampebXh3aXV4c2+HfH5+enZybHpoaXdnXWRzaHp3koBjYlRjbmWBhHV2ZmhpYVdWWWhkkKhvfneAi415cG57ZndteYp6do5xhH5/gIduZHd0ZWhpXWxiXnBvW2hfbXVlemhddIBucmtxe392dmN1hox8iYiBgHhydn50YXBsWHBxYW5vgnpzY3GAbGFtem5qaHl4c3BkhHR4eHRvY2BjbXN9aWtUaF5fVUx1ZFFIV2JIY3dmYkxUcVlLTFhZaWx3e2VlbnJmY1pYXll3Z1VKXWRYaVlZSVdlUUljeVteX21bXl1iZF5/aWpgbnR4bW9udoOXeXKBgH1/iYyGfnZ2hniGjH10dXWCeXp6gouNfX+FiWp0l4F7ip19foV5gHt+fIaJc3GProx7e4eQfmZxiXt0fn13c3CGbXx+bZB6Y3BwYmVdZVZaWVdkZmxgXV10hmhZcG1bXlhaXGx7YnF3dm1jXG91dWl2d3Jvhnl/gXp3bm90ZWh0ZVtndGZ2dpF5X11SZWVpgYFzfGFiaVxUWF5jZJClaHh0goWQd2xteGZ3bHuDeXSHcoF5fXmAaWV3bWBnYV9qYF51a1lmXW9vYnplW3d8a25vcHh5dHVlc4SUgImDiXt3cHJ9cmF4Y1ptbmBub396c2VxgGRebnVoY2Z3enJrbYFzcXtxcGFdZG1vfWRpU2hZWlVOemBSS1pZSGN1ZGFKVW5VSkxaV2ptc3tkbGx0Y2FZWlxid1xUTGReWWpUV0hZYU5Ia3dZX2FuW1tfYmNdhWloYm54eW1vanaBkHltgn6AgZKIhIF3dYl0jId0cnZ2gXd9fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OHhHNwmaF7e3+JlnlldYl6c3l3bHRwf2x5fHCSc15wb2FnYmxUW1pXaWRuZlxccollU3JtW1lYV2BsdmNqdWpqX1tvdXJudXR1a4d9f4F8d29ubGRpcGNba3JkdHaOc1xWU2NfcH5+cIBcYWNeU1phXGSSn2VycYWDkHNraXhrbm55eXpxgHZ/c3t6e2RmdmheY1thaFxfd2hXYl9waGF3YVt8dmpqcm54dHR1aXGCloSIf4V2c2twe2xmd1dbaWxhb3F+eHNlb35bYHBwYV5pcH1ranJ9cG92aW9gWmRrbXthZlNmVVhTUXhdU1BaUkhkdGJhR1ZsUUlQWlZsbGx8ZW1vcmFbWlhabXFYU1BnWFdqVFVGWl1PSXN2WWBjbmNYYWFhXoxqY2Vtenlsb2l2eYZ7a4N9gISafIKEeX2IbY+GcW92en10goJ9i4+Dg5d0eIKUhoGfiXWBgIF0f4Jwh4N2b6KXc3uGjId7ZneLb258cGd4cXtsc3ZzjWtedG9iZ2ZrU15cVmhibW1bXHGMZE5vbVxWV1VmaXNoY3RlZV5bcHdvcXZ2emyIfX99iHeQc2Nka29hXG5tY3N4h2taVFZhYnd7fG+EXGNeY1NaYFpjlpRjbnCChYlyaWZ4bWRydXF6a3l0dW97f3ZfZ3NkXF9XYmRZYnVlVWBhbWRhcV1dfm9oaXNxdHF1d2xthZSDinyGcnJnbntvcW9SWmRpZG9xfnRzYm11VWJxaltebmV8ZGt1fHBxcWhsXlhjaWp4XmZUZFVXUVZvWFJXVFBIZXNgYkZYa09JWVVXbmllfGlseWtiV1xWXHVlVFNXaVJaZ1VUSVtaUE55d1tfZW1qWmJhXl6PbmJnbHp2bm9pdnZ/fm2DgH2GmHt/h4GKf2uTiHJndIB7dYCDfomOf4yTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOCjYx3eG56jWBlfXFnenR5bW1xd4NnZHxtY2dnaFNgX1VnYG1wXF5ujmhOamxgVVZTb2dza2Z4ZWZeWnJ2bnN8eXRuiXuAd5x7emthZWxtXmBvamVxeX5nWlVXX2t3enpugl5hXWhWWWBYZJyIYmtwgYZ8dmtpdWtbdXBqeWl1cm5vfIFzWWtuYFleVmJkWGVxY1RfYmlhYmxaYH5rZmx0dW9teHdsaIaNgIp7iG5xZnB7bHFsYVhfZ2dtcX9ycl5pbFNlcWRVYm1heGFvdHp0aW5qaV5XYGZodVxkVWFWVE9ZZ1NPXU9QSWVwXWNHWmpOSmBMWW1lYHhpb4BlYFVeVF52XFVTYWdPXmNVVEtdWlFadnZdX2ZtaFhjYVtejnFjaGp4cnNtZ3Z0eYJzgoN6iI9/fIqIjnpukIp0bHOBdH9/iIWHkoSVj3p9jI+HkZuEgHyNhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo2NjY2NjY2NjY2NjY2Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjY2NjY2NjY2NjY2NjY2Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERDR2RoZ2dnZ2WQoqCgoKCjgGRnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTQ5XGBfX19fXZGmpKSkpKd8XV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaIiYiJiYmJjY+Pj4+Pj4uIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkJCQkJCLjpGRiYeOipCSk5GLkIyOj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjY2NjY6Ojo6NjIyMjIyMjI2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQi4WJioaNhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCIhYaKhY6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfXt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkIiFiIyGjIiIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4SIh4aIhYmPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin99d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pio6Ki42Kjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgHt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/fn9/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTk5OTk5SVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOSk5OTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGSkZGSkpOIhZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCSgoKSkJGRjnWGkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CIcISQj5B8dIiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4xzb4qPinJ4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX1+fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjXdte4+Cc3iGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH5+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHc25vhHt1doCFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxZWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3RiXmRfYWtxZmhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYl1qbF1lZmdlY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGRkhJSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpaandsYm5yamJZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtrcmthbXRyZlFRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OXWNva1hpc3VwU01PUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZCRkhVYmdsb3BvbWxaTExOTU5PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVDRkdITVpnaGdybm5oZmRgXl5YTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7PklaXVpcZWxuam9tbWxraWhrZFNHRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7Oz1LW2ltbm9qb21ramxtZlFHRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozo9SGNvc21ubGtsaFVDPkNGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN0cnF0eHh5fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5PUpgc3NwaFQ/Ojs9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT48OkJsfWpAOjs+PT4/P0FAPz9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO1tuQD5ERT9AQURfZDs9PTs6PT9BQT8/QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pLSFZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo6bXdIODs6PT5BO0hkPTw9PDg6O0REPDw9PDxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJYHBwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUj08PUlMRkV1dk43ODg6Oz4/V2pBOzw8Ojo7TFI9PT05Oj88PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3J6Sjtcf4N/enx3Vzw9Pz09PkVodEw6PT4/PTxPaEtAPDg8QT8+PkE9Oz9CQEJDQkBCQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFRT9BR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFHcnprYoOEg4KDgH1ePkBDQEA9SnN7WTo9QUVCQVBuXlRQSEFDQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEVudH2CgoGDfn2Edk1BQ0VAPz5Ze4BdP0NFSUpJVGhnZV9gWEZNTUZFRUVERUNBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx7fX99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTU1caWhqZWJnWmFOSUlIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSExOTWZ2b2hraWxuYUdISEdGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiIRWbIWHhoaGh4iIh3xQTE1ObHh2bm1vcXBRP0RDQkNGRkVCQD4+QEFCQEJEPz4/REZIREZHSUtJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pUgYOEhIKChYaGhIKFhYSEhoaGh4eGinVKSVJ0eoN3cG1sblY7Pzs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgICAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpJSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMj2dFWWtvem5sb3FzTzY5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJR09SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouNimdkamxjZWl1gXM8NDg3MzU2ODo4NzY1NjU2NzY3Njc6Njc4ODk6NzU3ODk3OTc3Njo8QEdGSUdJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDY3ODg9Oj1FQ0JlhYOBgIKDg4ODg4aJi4qJiYqKioqLiouLh3Nxb2ZncHJ9ZTQ2ODg1NTc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc2Njk6OTg4Njg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ5e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhIWGiYqKiIeHiIiKioyLiouNh3hzbm9zbXFhOTo7PDk6Ozk6Ozo6OTs6OT09PT47Ozw8Oj47OTs7PDs8Ozk6PDg6Ojo6OTk5PD88PEFCRElKTUtJS0xXb3JzdXN2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuKjI2OhHd1eXJvb11CQkFCPkBDQUA+PT4+QD8/P0A/QD09P0I+QEE/QD89QEBAPj9BPD48Ozo7Ojk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PDw6Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4uMjY2NgXt7dnNxVktISEhFRkhHRUNBQEJFQ0NBQkNCP0BESEVDRUNFREFGRUZERUZEQEI+PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhoaGiImJiIeGhoaHiYmKi4yNjIyMjIyMf3p7dF5PUkxLS0lKSkpJRkRER0hGRERFRkRCSElLR0hHRkhHRUtJS0lKS0pDRUNDREJBQkNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjY2NjI6Je3pwXFFSTkxOS0pLSUtHREdJSUlFRklGRkVMTE1JSkdHSElKTk1PTExOS0dGR0dFRUNGRUZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7Oz06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjI2MjY2Eenp4ZFBPTU5MSklGSklFS0lHS0pJSkdHR0tMTkxMSEhJSk1RTk9OTE9LSUdJSkhJRElISEZGR0dJR0NCQUNUbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhYSEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIyMjIx2d3RxVVJQTUxJR0RISkhNTEdLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRkZJRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIyMjn5kYGhdV1VRT01MRUZHTVBPUFdVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkhHSkZFSEpFREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09QkBCQkdWTkZOUFBUWHuGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyNj4yMjG9fXm9kSFVTU1JLOztTVFJgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRTExLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0dGRT8/QUFFQUNHRURFTFhSTVRVVlhafIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH5hiouLiHNiaVk9W1pZVFI/QFdWWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFVUVlRPT01LTEpJSUxNS09NU290dnh5eHh6enp7enp8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImLjH1zc1teXVxTVVNXV1VbWnWDWVV9kGFcWF1fV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiYqBboaJiIeEi4BpXFxdW1ZXVVhUUlhWY5aAUmVyWFpXX2hQYGZbW1hcZ2FHT1poZ11bXF1dV1JPU1BQUlZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRUFJSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn6AfWBUWFtWVFZTUlJNUE1MZnpbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtcXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fn5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eIem9zWk5OUVFNT0xKS0VGSUZDP1RkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3x9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eXFlVUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGFze3x/gIGCgYF/fXp7gH+DgoWGh4KGhoaBhIGGhYZ2YV5PR0FFRUREQ0FFUUNFQUM+Q0lHVkBITkxHXWlQSEZORkRFRklHSEJESEdJS0dEQkFEQE9RTVNkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNQVVlTVVFRVFJPVl9rbHJ2e3t4eXRybnN0c3l4fX+DgIODgoCCgIOBgmxPSUJCPDw+QEFAQD9rUUtgRUZISUVCP0dMTkdNUlVJQkU/Pjw9PD09Pz0/QUNDQD89PUI+Sk5HVW50dHVzdHZ4enx7fHx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXkpKUFFOS0xRUlFUVVVXUVFXVVBYW2FdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZURCQkI+O0NDQkJEQlxdT3tOT09OS0xNT09RTEtNV01IR0BCPDo3NzU5OT07Ozs4Ojg6PzxCSD9cc3R1dXV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BfXVpJSFBSUU9NUFFOUVJUVlhTU1lUT1laXFdZXV5eX2VfXV5xdmteYGdrd29vbGpvbm5sZWJZSEdISENCR0lGRkZETVJPYVdTV1FQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3p5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BWV15aWE1LVFRTUFFVT0xSU1RXWFRUWVJNWFlaVlhYVlhZXVdXWGhza11WYXRrYWFfXmRhX15ZVVFOT09NSUhKTEpJRkNRUFNaV1RUTlFTWVNcZVVPU1RSTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTpHbnF0d3h6e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQU1RXVFVSXW5fUk5aYFtXWTtEVlhUW2ZKTFBTUk9OTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz89Ojc4NzY1OTk2NzY3NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF1SVFpXWFVUV1RSWFhZWVlTVU9KR09QT09NUkpPUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBTTUlMSk9SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmhpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExISkhGTE1QTUcvRV9SPjM/PmpvYVNSUUBHVFFQUVBRTlFPUVBMSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR2eXt7fX19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nVFFTQUdVUE9RUVBNTU9NS0xLTE5PT1FMT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6e3h6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05MUVNMVFVUWFdVTExLSTw5ODc7PkA+PD1BQEI9PkVIR0NFRklHSkpARkFBQEZIRUpPSFFSYlxRUFJPU09PUExNT05MTU1OT05bV0tNUU9HSUhDSEpMTEtGRkZFP0JDPjxCRz9CP0FkcHR2enp6e3x7enp3e3d5fn58e3FzdHByc3dzeHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENEPTk3Nzk/Qj47P0JAQD5BREpFQ0dHSUdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xOS0xOTU1MTE9OU2ROSkxSSUlJRUFISkxNTkpHSUdCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg5Oj9CPzxBQkFBREVHS0ZDSEhHR0hDRD9CPz9AQT5DRUNLTlJUTEpJTVRHSUlKTEpLTElKTU1PUFJQSkdDTEdDQkpJTE1PTklKSUdDQ0NESEpNTElZcm13eXh6e3p5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9tcG92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFHS0RHSEhHSktJSktERkI9Pj06OTo7QEI/PUFCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQENFQ0lNUEhIS0dIS0RISkxNSEpMSElKTEtNXVJISERORkFDSkpNTFBNS01KS0ZHR0pOTlFOTGJtaXZ2d3p5e3p9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjtAQ0A+QUNERUlFSUpMRklJR0ZGQ0I7QUJDPkBDRENER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lHRU5IQkZNS01MT01NTk1LSEhJT1JSU05SZmZmcW9zeHV7enxsaGpuZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lERkZFQ0NCRUBEQj4/Pjo7Oz06PD5DQT5BQ0RGSkZJSExIR0dHRkVDQD1EREI+QUNDQ0RHSElHTVFJRkZHS05PS0ZISUZFREVJSkhLSUZIT0tDSUxLT0xOTU9PTkpKSUxSVVVST1dkYGFtZ3Fyb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPEJBPkE9Ojo9Pzs+PkBCPkBBREdKRUlGSUhHRkdEQ0JBQUZGQ0JCQkRFREdHSEZMUUxJT0pKTUxJR0hFR0VEQ0lJSEtKR0tSTUJOTkxQTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmRmZWRoaGZuamZtbWhra21yaXF2dHNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd3dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREU8QUBAQzw4Ojw+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDRkVCRUdFRkdHRUlNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFST1BRTk9NTlBNTE1TV1ZYWFVYXVpdZGBpYmppZ2tfZGVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRTw/QkJEPDc7PT46PjpAQj4/P0JFRkRHREVIRURFQ0RFRkdKRUVJR0NHSEZIR0VDRkpKR05LTEtISkxGSUlLSEVLS0xNTk9SVE9IU1RSUFJPUU1OUU5NUFdaVlpZVlpdWlhhYGFgXmhlY2BkZWhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXd1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSEhHSURCQ0hFPEBFQ0U9ODk+Pj08PEFCPD8+QUFGQ0ZDRElEREVFRkdHR0lGR0tIRElIR0lHRkRIS0lHS0hNS0pLTEhMS0xLSU1LT05PUlVWT0tVVlNQU1FSTE9RUE9UWVpZXFpZW15eXWBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdExJS0lLRkJFR0U8QEdDREA6PD5APz4/QkE8QD5CQUZDRUVFSUVGRUdGSEhGSEhJS0pGSkhIS0hGRkxISEhKR0xMTUxMSU1LTU1NT0xQUFFVVldPS1ZVVFJSUVJMT1JSUVZbW11eW1xeXl5gYGFkXWNgZWZgZWhqZHNzZmpnZ2tvcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQ0VERTxARkREQzs/P0JAQEBEQT9CP0FDSENGRkdJRkpGR0RJSEdJSEpMSEhKSklMSkZKTEhJS0pHS0tNTUpKTUxOTk1QS09QUlRYVk1NVFVUUlJRUE1OVFNSV1tdXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ1bndLTExMTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0VBQUVHQ0hISUhHSkdDR0pHSEpGSU1ISUpNS05MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlJQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAREJFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdJSklJTEhKSk5MT0tJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2hmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQ0VFREZCRkZHREVLRkZKTUxLTExHR01JR0pLSEtLSUtLTkxNTExMSUxNTFtzYmRwXmxtVU1OZnNdZmZxbG50Z3BpX2FZbm5icHBia2pqZm9xdGV0bm9cb3VncE1KcXl2a2Fga2VlbXhsa3ZsbXBzcnBycXBxcnFycnJ0cm1tc25ub3BzdXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdDRkNGRUZFRENISEhERUtIR0xOTkxNTUZKTkhKS0pJTEtKSktMTU5OTU1KTU1OW3Jvb25wcGxrTVBRbFdNaWJ0cnBhbW51XFlsUFxubVpxbWtvbXh4dHNpcF1fcmtxalV1eXhvY15rZmJncG9qam5vcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGSENHRElGRUVCRklISEVITEtHTU1PTE1OR0xNSUxLSUpNSUtKSktPUE9OTExOTkxcaGR1XWxxV2xOUFFtVFlrXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHhrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNGREhHTEhFQ0NIS0lIRkpMTEZOTExTUkxHTExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5Zcmtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmltdHVwc3V2c3FwcHFvcXR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFBPkREQkdESElNSUZDRkpMSkdGS05MRk9KS1dSS0dLSkpOSUhKTElLSkhIS01NTU1JS0tLU2tjW2leX2ljcnJaX1lqbl9lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bgam1xcG50eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFxdnR3ckdHRklERUNGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElGS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT05RTk9RSkpPUFFkcWlUWVdcW1xWWVtdWF1cXGNmYWFlYmNmX19ma25pbXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0VFQUVDQERIREZHQ0lLTEhGREdLTElFR0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJR0hJRUZMSUpMT01KUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSS1lhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHJ4cnhzcXJ1cnRPQkNETE1CRERCRUlFR0dGS0pLSEVFSUpLRkVISFBLTU1KTVJIR0VBSEZKSUtMSkxKSEZESUZERkdFRktIQ0pNTExVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoaGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFSSkpNSUVDQkNHSEZIR0hLSkpJREZLS0tFRklKTktOS0hMTkdIRT5HR0xJS0xLS0tJR0RIRENERUFGSkVBS0xKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR4eXl5eX9+fXl1eXZ2cm56d3Z4WVFLRkRHRUJFR0lGR0hIRkZJR0hHSEtJTERES0tOTUxLSEtKSElGP0dHTktLS01LS0tJRkdDREBEQUhJQ0BKS0hQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYl1kY2JkY2ZYUVZUUVpXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGREZLSkZGRkhHR0lHRkZJTEpORkRLS01OSkxJS0pISUZCSEhRTUxLT01KS0lHR0VEP0VDSUlDQ0hHRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11VWWFSUV9fYmJgYGJiYGNiYWRkYlhPUVBRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYSFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBSEZER01SSENRSkVHSEhFRktKTVBFRklKS05MTElLTElJSERIS1FPTU1QTExLS0hJQ0RBRURJR0NDSEZEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1OWGFcYGBfYmNiXWFiV19fVFBPT09XUVxbW1xcXl9iZmZlbGVvb3d8e4B7fX+AhISEhISEhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+Sk5GREZGSERJUmJQQ1ZeSUdHSERGTUpQUEVJSUpLTkxLS0xLSUpHRUpOUVFOT09NTUxNSEtBREFDREdEQ0NGR0JNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TUEtPU1JVWllXWVhYZFdPU1RQUE5NTlRSWlhYWl1cYGFkZWNnY2tscHNyeXl/e3p/hISEhYSEhISChIB+e4GDgX17hYSGhoaHh4WFhYSEhIKBgH1LSUVFSEZHREtNXUxGR1hMR0hKSEdNTFFQSEtLS0tNTVVOT0pKS0dHS1BTU05QT01OTk5HS0ZgRURfTEVnZEZOXEleW3JtT01VbVlMRFBgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYWJfZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUdGSEVFS09TSUpGYFNISk9KSU9NUlFMTUxMT1JVUk9PSUxOR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXJ0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fWm5YXVZcWFVraFVdVmNaYFlbX1ZWWH9qdHV1Xl92XldhW1tmW19gYWFhXV9hZ21wbF9wd3R4gYGCg4OCfn1/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEZJS0VRVUxLTklLUlhXUU5OT01RVE5PUU9LS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJvb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29ycnt8b354boByX2BgYmFaYF9na25rYmxmZ213foGAgn17eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOTEdgXUdBRU1NSEpKR0lPTk1NSk5WXllVTFFTTlhaTVNTUk1LT0hRUlRZV1dRVFBQUFFLSGd4bGN4cm1bS05WeXB1bXVib3ZQZWVJZnZxbXdvgGpmeHdpV3JRaHptaWp6en1seHp/b2hvWXZ2anZ1cIBfcmZ9aWx4fG9eX19iYVpdYmRnaWlkZ2JjZGxscHBzdHNzc3pxcnhibHVncnl7c3J2eX6Bc3V6bnx9eXhybk5LU3VOQ0JGUFBISktJS1BOTk9NUFpgWldLVFdQYV5SVlFZUkxQSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JncXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXF9kZGlnZ2VlXmFiaWlpamtub2txb21qcGFjZmNvd3hvbXBzeX9ucXBre3p0cm9tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xZVU1VWVVlWFJSWV1TTE5JVFRXV1lXT1NOTk5RSVJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9acHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbF92dWtpdXt6bX54a3xwXF5eYlteYWRkZmVlZWJaY2Npa2tyc3J2Z2xpaGRnYWFrYWdzcmxnbW1yfWttaGt7dG1ta21PSEtLSEpISFFQTE5PTEtSUlJPU1JXUlZUUFdaVlZVVFRhX1BOTUpUU1RRVlZOTkxNT1BLSFFOUFVMS0xTVFRTVFBWVVFRTlFRWFlSTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1hYUl5ZV15XVVBZUldXV1dYXlpncl5bW1lcXV9jWl9jY2RmZGNjYlpjYmdmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdnanVqaGdpbFBJS0xMTUtKU1FNUVFPTFZVVFBUVVhVWlVRWl1VVVRXVVlXT09LTVZUUU5VU05PTUxRUExKUlFLUU1LTFBSVVNRUlNTSUhMTk9RUlFQUVRWUlhXXFdTUlBSVFVVU1pRTlNSWFZUWVdVWlZUUlZUVFVXWFZcWV1gXVtaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWdqa2VkY2ZoUEpLTE9PTE1TUE5TUVBNWFdVVFVXV1dZVVNcYFZXVllVWFJQUEpOV1NQTlVQTlFOTFNQTU9VU05STk1PUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXVlZZW1RQVFVYVVVaVlhaVVNSWFZVV1tYWV5cVVheXF5cW11gYF1bYmJjZ2ZlZGJYX2FiXmBnZGZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmdmZGBiY2JPTE1MUVFMT1RPT1NRT1FbWVdXWFpZWFlWXWpkVlhZWldWU1NPSk5WVFBPVFBQUE1NUlJQUlhUUVFPTVBUVk9YUlRVVU9OTVFUVVVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUVlZWVllUWFhWU1JZV1ZaXllcXl5VXlxeYFxbX19fXlpiYmRoZ2RkYlhhYGJeXmZjY2BiXVxcXFxZWltYW2FcX11cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xYWltkcW1oZF9bWFVVV1FMTVZTTU5ST1FST0xRU1JVWlVTUFBNUVhXUldTU1NYTU9PUVRYVlVVU1VZWFteXVtbVlFOVVZVW1tXUlNXVldYVlRZW1VUUlpYV1xeWl5fX1RhXGBhXWBiX1xgXWNgY2doZGZgWWNgYV9fZWRfYGJbWlxbXFlaWVhXXFpcW2BeX1teXmFgX2NcWWBbUU5PTlZRUFRRT1RUU1BXXFxcWF5cXlZcXmpxd3mAY1xbVVVXUE1PVlNOUVFPUlRSTFJUVFlaV1VPUk9TWFdUU1VSUlpPUFJSVltWV1dTVlpYXF1bW11WUk1UVVVbXFZSVVZWWFlTVVpcVVNTXVhaXV5cYGBfVmFbY2JdYWReXGJhYl5jZmlkZl1bZGBhYGBjZV9iXllaXltcW1hYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1tUV1dRTlJaU1JRVFJUVVRLUldWW1paU09TUVZWVlRPV1JTWlJUVFRYXVdYWVNYXVheXVlaXVRUTlVWV15bWFJVVVlZWVVXWlxWU1deWl1dYF1iYl1ZX1tlYV9kZF5eY2NhXWVmaWRmXV1kYWBhYWJkYGJeWFpfWlxbWFhYV1dbWVtgXFtbXFtYWlteVl5ZXVFPT1JaUFpUVVZWU1RUXl5gXl5iXGBVXV5ia3l0bH1rWlRZVFBQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUlZRWVhZX1taVFVWWllaV1haXFdVW15dXmBhX2NjXF5dXWVhYWZkXl5kY2BcZ2RoZWRhX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QVllRXVVWWVdXVVhfX2FhYGNdX1VdXmJlZXWBemhXWFlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSWFNXV1VTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWFRZWlphWlxWV1hbWltZWVpbWVdeX2BfY2JhZGRcYlxgZmFkZmReX2RiYVtmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lYXVpbW1hYWVtZWlpdX11UWV1VTlNZVlNcVFZXWVZWXGBhYmNgY15fVltgZGFfenVvaFlaWVVXVFdbWlpcWVhZYFdQVV5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1pdXlldVVJYV1lZXWJaXldYW1xbXFxbWlxaWl9fYGBkYmNkZWJkWmFlY2ZmZV1hYmBjXWJjaWRjZ19nXmFhY2FhYF5fWFRbWlpbW1hbWFhcW1pbWFZZWFdcW1tgXVZdXVNPVllWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheXFxaVldYWVxcXV9bWVtiVlRYXl1hY1xSVllQV1dXV1dWU1VUWFxcXmBgXWBcV2FeW15bWl5XVVdXW1tfYFxfWFlcXF1eXlxbXVlbYGFeYGRjZGVlZmJYY2VkaGdkXmNgYGVjXGVpZGVpX2ZdY2JjYWFgX19bWFlaWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWVhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZcXV5gYWBfYl5ZYV1dXllcXllYVVZbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZWNlZmVmYlpkZmZpZ2JfY15hZmRZaGhiZmljZV5iYmNhYGBfXV1aWFxZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVZcW1tdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXXFxfXWBfXVtgZF1cWFtiZWNhUlxaT1lYWltbWldaWWBdYGJiYGFjX1xiXV9dW15dWVhUWF1dX2BfYFxbXl5gYmNcXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiW2NnX1xpaGJoaWVkYGJhY2FfYF9cXVxZXFlYV1hZWFdcWlpXVlhPWFpdYWNmZnJrf0pZV1xaWl9cW15bWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5ZWFVbX15dYWJgXltgYWJmY19dVF1gYWNkZGZlZ2VmZmVeZWZoaGdkZGBaZWddYWdoY2hoZmNgYmFjYl9fX1xdW1pbWVhYWFZaVlxbWlZWVk1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4SCgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7enp6enp6ent8fHx8e3x7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXp7e3t7e3p6enp6enp6fH19fHx8fXx7enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a8homJiYmIkMzT0tLS09haJSoqKioijNvS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIqU3ebk5OXl61QTGhoaGxCP7+Xl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXl5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2DhISEhIOEeHNzc3Nzc32EhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnd6eHp5eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3l5eXl5eXl8fX19fX19e3p6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2eX17e316fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjYyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fXx7fnl8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3dnt9fHl8enx7d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp5en17e3x7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4e3h6enl7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGhIOEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYGAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgYKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXFxcnN0dHR0dHR0c3N0c3NzdHR0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXFwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzc3NycnFxcHBwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXNxcnJxcW98gm9wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFwh4ZwcnFwc5iCbnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF9oYJwcm+LnnxucHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXWdoXdxd5+cfW9xcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXFxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZiokG+Co51+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4d3d2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4GDeXJzc3JycnNycnNzc3Nyc3Ryk6mkeYignXxyc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f4B+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn18dnZ3d3Z1eHp4eHh4eHd4eXmftKmkqKiXfXt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7fHt7ia+mobWrrKN+e3p6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2YpZahsqCZp5N9gH99fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgZycjqCvoJ+in4CAgYB+fn9/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYGAl5qOmLGhmJachXx+fn6Afn5+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+foCBfn6fq6WWpJublqCfhn9+fX+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgYGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KDg4aNn7KooqCYnZ2mqK2ooJmQh4GAgIGAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4aNoK2xppuaoJuenJydoaSjnZSHg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYOLl5mXlpigmp2dnZmal5CJhoaHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBho6Uk5eanJyblI+Jh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5OSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDg4iQk46UmJKHg4KFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgYKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGTkZCOkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKBgIebh4uHgoKCgYCBgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo+PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAf4OIjoCBgoODgYCBgIGAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYmGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/f4yVgoKBgoSDgoeIgoKEg4OCg4ODg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChIOCjJGBgYSFhIOEg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSk5CNjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYycjoCCgYGCgoSUlIyBgoGCg4GOm4mDg4ODg4ODg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpOSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZiMgIOBgYGAjpSMkIGCgYKCgY6doaWgkYSCg4SCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4t+hISDhIKDg4KNiYWMgoKDgoODi5KPmaall4SKiIKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf319fX+ChIODhIaPlJWSmKCgmJSGg4SEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaGhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39+f4CDhIOEh5iXm5iWmZiak4aEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWFhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYOMm4mNmZmWlJONh4aGhYaFhYaHh4eIhoeHhoaGh4eHhoaHh4aGhoWDg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaFg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf359foB/f39/f4CAf3+Af3+GhJaZgH2RmJiXlY+Ih4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aGhYODhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGBgoGBgYGAf4B/f357eoCLn6GTjZqbl5WSjYmIiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeHhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSSkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCg4OCgoB/fn19fX1+fnx7e5WjnJuhoZ+QgoqLiYiJi4qJiYiJiIqKiYuJhoaGhoeFhoiIiIiGhoeEg4KEh4iIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKDg4F+fX1+fn5+fn59fn19gZOVlqChm5SHiYiHh4eIh4eJh4eGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgYGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoOBfXx9f4B/fn5+fXx9fnx6f4+UmZuampWOg4SGhYWDg4WEhISEhISFhIKCgoGEhIGCg4OFhoWEgoKBgoKDg4WEhISFhISGg4ODhYOCg4GCg4OEhYSHkpGPjY+MiYWEhYSFgoGBgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4GEhIODg4KCgH19f4CAgX99fn59fH19e3p6g4+RjpWXmI+BgYKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgIGAgYKBg4GBgoSDg4SEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn1/goSEgoODg4J+fX5/gICBgH59fX19fn18ent7hoyNkZSWhX9/f4CAfn2Af36AgIF/gICBf3+AgYF+fX1/gIF/f35/gIB/gICAgH+AgoCAgoGAgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GBg4SBgoKDgoOEhYCAf3x9fX59fX6AgH59f359foCDg4OCgoGBf319fn+AgIB/fX19fXx7e3t6enp7iY2Nkol+f39+fn9+f4B/fn9/gH+AgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af39/fn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+f3+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp6enl/jo6UioJ/f35/f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f36Af35+f3+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp6enmDj4uUlIKCgICBgH+Bf4CAgIGBgoKAfoB+f35+fn6BgIGAf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEhIKBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WCgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXx6enl5eXqHiI+Wh4OBgoOBgIKAgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGBgIGAgoF/gYCBf4CAf4CAgH5/f358fImUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgIGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl5eXyChI2HgoKEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGBgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4eHl5en6Bg3+CioSDhISEl5eDg4SBfX6BgYKBgYGCgYOGiIyFg4KCgYSCg4OCg4WEhIWDg4ODgoODgoKCgoODgoKRkIuIiIeJh4aGhIaFhISEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHh4eHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl6e31/fIWRg4ODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLgoGChYWGhoSEhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhISCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6ent7f4KAgYGDgoB+fX9/e4iRfHyOln99f3+ChoqFg4OEg4KDjYl/fn+DhIWFg4SGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXh8fX6Af4B/fXt8f359gpWRf4SIfXx+f4KEfHyBgoSDf3+Hg32CgYCCgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e35+fn9+fn59fXyAgYB9ho+Bfn2Cfn9+gIJ8fIB/goCBgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMi46OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4WEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX+AgX1/f4B/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjY2Ojo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3x8fHx8fHx8fHx9fXx7fXx8fHt8fHx6enl7fHp9hYODgIGBfoB/f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fHx8fX59fHx8fX19fXx+fH18e318fHp7enx9fX+GhYOAgIB9fn1+f36LhIGHfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn+AfX6Afn9+hJKNjYyPjYyKhoSFhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOBen5+fH5+gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX6AgIODgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f3+Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx9gYKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgIKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9e3+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5+f35+f358fH18fH18fX57fHt8fHx8fXx9fH18fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko+NiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/fn9/f4CAf35+fn1/gH9/f3+AgH+Ag4KAf4CBgICAf3+AgIB+fHl8fn1+fX1+foyGfX1+e3uDg319fXx9fH19fX19fXx9e318fX1+fX59fX19fHt7e3x7fHx7ent7enp6e35+goaIh4iLiouLiYyRkI6KiYaFhIKCgoKDg4ODgYGBgYGBgYGBgYGCgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGCgX9/fn9+foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fX18fH19fX18fX19fn19fn58e3t7fHx9fHt6e3t5enl5eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2BgX+BgYF/f4B/gIF/gICBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX19fn58fX18fX1+fn1+f3x9fHt8fX58fHt8fXp6eXl5eXp7fn6AgYOHhIiPjouLh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGCgYKBgICChIF/foGAfX6Bfn1+f4CAfX6AhIB+fn99fn19ioV9fn99fn6Afn19fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6ent8fX59f4KAiY6LjIiFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgIGCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICBg4F/gIGEgX5+gH99foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fn18fHt8fHt7e3x7fHx9fXyKiomJhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgH+AgIOBfn6Af31/gH19fn6AgH+Cf4GAgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhIOFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19foB/f4GAgYCAgICBgX5+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISFg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhIWDgX9/gH+AgX59fX5/fn5+foB9fX98fX1+gX+AgICCgICBgIOCgH+AfoCBf4CBgIB/fn59fn5+f31+hYWBgYF/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foB/gYB/fn+Af4GDgoOAf3+BgYCCgYGBgICBgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH2AfX+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISBg4KBg4F/gIF+foB+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fX59fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWFgoSEhYSDg4KDgYGDgYCBgX1/gX6BfX19f39/f4B+fn99fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOGhYF/f35+gH+AgYCAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgYKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hYSEhoOChISEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgIB/f4GCgYB/fX+Bfn+AgoKAgYOChISGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB+fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1+gICAf39/f3x/f3+BgIGAgH98gH9+fn6Afn1+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e3+FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYGAf32Afn5+f39+fX1+gIGBgH5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKAgICAfX5+f4B9fH58f4CBgICAgIB8f3+Af3+BgH9/fYF/fn9/fn19fH+AgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t7fHl3e3l3eHd3eHt7ent8hYl9e3p3enx9fXx8fX19f358fX5+fX19fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYGBgYKAgoCAgIB+f35/f318fn6AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5fHx8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fn1/foCAgYGCf4KBfX6Bf3+AgX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKNenx9fHt9eXt6enh6gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgYCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgoKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKBgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x8fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+AgICAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgIGCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58e318e31+eHd2eXl6e318fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4SBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGAgYGAgH+BgYGBgYOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f316fX97enZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfH9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYOBgoKBgoF+gICAgoGCgYGCgoCAgICAgoKBhIB+gYOCf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3x7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0dnuEgoOCg4OEgoSDg4GCgoSGhIKDgoOEgYSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4J/f4GEhIGDf4KCgYOCgoKBhIODhICCg4KDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp7fX98e3x8fX19fHyAgICAgIGBgYGCgX+AgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgYKDhYWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4ODg4OEgIKDgoODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKAgYB7fYB+fHl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgYCAgICCgYCAf319fHx9fHZyd3h4dnR/dnV9h4eDgoSFg4OEhYSBgoSGhISDgoOEhIGDhYOCgoKDg4GDgYKAgoB9gICBgoOCgoKChIKAgoKDg4KCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX5+f359fHx4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhIKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOCgoGBg4J/goOEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fn1+gYGAfn59fn1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIhoWEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4OBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB/fXx+gn9/fn5+fn19f39/f4CAgH+AhISEg4SFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKEhYuJhISEhIWFg4eGhoSEhISFhISEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4KDgoOEg4SEhYOEhYaEhYZ9g3p9fn+De4WDgYSDgH99fn9+foGDgX17f31+gH59fHx8fX19fXx9fX6Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWEgmh6cnNzfIBygoR+g4N9gX1+f35/goOCfH+BfX+AfX18fHx8fX18fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgoKEhoaDhYSGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhIZ9cHuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId6bX1yc3Zzdm1ud2xweWx1fX9+fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KCg4WHhYaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fn2AfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIWFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39/en59fX59f39+fYCBg4OAgoOBgoSCgX+BgoB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4eEhISFh4aFhYWFh4aIhYWGhYeHhoaEhoaJiIWEiYqIhYSFhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBhIGAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGg4aFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SDhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WDhISDgoF+f357fHt+e3x9fn9/fXx/foCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaHhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaFh4WGhoiGhYiHh4WHhoaIhYWGh4WGhoWDgoWFhoWFg4WDhISGhIaGhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSGhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYKDhYaGhISDhISDhIaEhoaEhYWDhoaFhoWEhoeFhISFhYOEh4aEgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoWEhoaHhoiGhISEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFhoiFhoeFh4aHhoeFiIeHh4WGhoeFhoaFgoSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4SHg4SBgoSFg4GAgIF7e359fHx8fn18fHx9fnx9fH59fHx9fHx8fH18fn17fIB/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoWHh4eFh4aIiIeHhoeGh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9f318fHx+fXx8fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoeGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaIhIOEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH57e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaGhYSFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4SCf35+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhISHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFiIOEhYSGhoaIhYWEg4WFhoaHhoeFhoaGhYaGhIOEhYKBgoGAhIODgn2BgYB/g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCBgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeGhoiJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoiFhYSChYWGhYaGh4SFhoaFhYaCg4OFgICBgICEgIOAfIGAfn6DgH1/f4F9gHx9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaFhYWEhYWEg4KBgIKBgICAg4F+fn6AeXp9gIOEhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDg4aEhIWEh4aGhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B8gX99foJ+foB+gH9/fX1+fX97f317enl6enl6fH15ent7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWGhYWDg4WEhYaFhoSEhISFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXl6eXp7fHl6enp7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoWGhoOEgoWChYGBgH9/gIB+f4GBfH5/f35/gIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoOChIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOEhIWGhIaGhoaGhYOEhIOEhYWFg4SDg4SChISAf4KCf31+fn5+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5enp5enp7eXp6ent7fHp7fHt8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9+fn9/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGChoWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYF+gn9+f4J8f359fXx8fHt7enp6enl7eXt6eXp6ent8eXt9e3t+f3+BgH1/fX19f4CAgIaEhIWEhYKEgoKEgoGAgYB+fX5/fn5+gH19gH5+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFg4WDgoOFhYKEgYOAgYCBgIGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fH59fH6DfXt+fH2Af4CDfX2AgH9+f318fH19e3t6eXp5eXt5enp5enp7e3t6e319fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lgZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PD45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT0zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWy8vLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU09LT09PT09TU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw7OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OR6jZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1svL0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19jX19fa29ra2tra2trb3Nvb3NnX19fX19fX19bW1tbW1tPS0tPT09PT09TV1NTW1dXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTUaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbLzJWFhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0jYuLi4uLi4uLi4qKioihv729vb29vb28vLy8u7/S0tLT09PT0tLT1NPT09vi4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOU2JMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXy8xuUFNTU1NTVFRUVFRUTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFhSU1NTU1NTU1NTU1NOeq6qqqqqqqqqqampqaiw0tLS09PT09LS0tLS0tLf6+rr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUJAOTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18vMcVVYV1dXWFhYWFhYWFGh8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpp5cVldXV1dXV1dXV1dXU32wq6urq6urq6uqqqqpstLS0tLS0tLS0tLS0tLR3+rq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDs+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fMzXheYWBgYGBhYWFhYWFapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqiZmFiYmJiYmJiYmJiYl6Fs6+vr6+vr6+vr6+vrrbS0tLS0tLS0tLS0tLS0d/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk6Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzMzHxcXFxcXFxcXFxcXFxcrQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs7OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzLy8vLztLS0tLS0tLS0tLS09PS1dPU1tbW1tbW1tbW1tXX2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo7ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M3Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7OztLTz87R1NTTzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19fX19fX19bW1tbW1tXV1tbW1tbW1tbW1tfW1tbW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvVkpfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztKrnM/SrYODlc/RpaLQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT08PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK2nKWkypu8uJm1s6CiqtLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/OnZyRnrOmjYGNxp6YlpzHz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4+PDw5Nj9CP0I6NjQ4Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv5igm7WYo4qr1rqYop6vsdLPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9COjc0Ojo6OTs7ODs9Pz0+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P07SZlqq7iq2rm6WxmZaws6nU0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PDk2NDo5ODo6OTc7P0A8PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8qgo7/KnKWMp63Yqpmq1M/Pz9Srmn6jkY2lnJankJmEnZOj1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD45PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDUrJuni5aiqLSqnn+gqYWZpdXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q07aysqWZq8/YwZyAvK2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXEopmWnaeRoZ6emaiWmJq61dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTo6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6DH1aKrpJy4pKujnsOgq6Sb0NLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtLQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09PIko202amPkKzXwo+Nu9TR0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVaWpbTF9NSkxKVUxGQjw8P0ZFR0tJPTY2Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MjB1dLVwL/W0tXFxNXR0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/Pj5BRExMQT43NzU6ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHT1NLS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj09Nzg2OTc3ODk5Ozs9P0A8PDg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRENJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZJRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0FMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhRQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29ra2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ojg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc2ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg2NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7Oz4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU5NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBGPjg7NzI3OTY3NDUzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBCRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO1tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7e3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6uvsKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo6Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmpqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpaWlpaaoqKioqKWnqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo5Ojk8Pjo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OztAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpaenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0E/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJ2dnZydnp+goqGio6OjoaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5iXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAP0JCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc1Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6alpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5KUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqanp6afm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6Wmpqako6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODk6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/PkFBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+mpp/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5ODk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6SmpqWlpqempqKdnJ+hn5eRkZCUl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PTo6Ozc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaWmpaWjoKChoaCZkpCPlpuZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaCgn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU5ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5WSlJicmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODY4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqOjpKSkpKKhoZ6bmpmXobWemZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpmXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6ChoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKCgoKKkoaKioqGgnpybm5uZn6ubnJqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaCls6ygoJ+fnpyZmZqam65qdp2dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5uam5qYmZiYmJiYmJWUk5GQkZCQkJKSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCfppKbq5+goJ6bmpqamaiERICfn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs5Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnqCeYpymnp6cmpqbnKGjUUiEoJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZuapmZdo6CbmpmbnZyudUlMhqGcnZ2cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmKSAUniimZmanZugpF9WToehnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGgoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFxcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuYmJmgiFtflJqZm5yco49kWk2Bop6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbW0xGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiZn5ddXXaXmpydnaKBZFlNf6Ken56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp6enZubmpydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmaYGFggJadnJ6YdGNVT4Gin5+fnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTo7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmZn2leW2V/nJyejGpfUFOGnpuenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOTc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qal5NzaGFUdpOXnIdcVlBXipKOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaOimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY6Smp6SfaCjlqScbkxPY4aGgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CEoJ2Of2uWpZWff4l/X3J/gIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2OTM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5/gKKLfG5SdZyMjFlxfXx+fXyGjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj07Pzo4PDk5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfZiad1hPTHGUhoJLX3Bxd4iFio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY2jjVQvMD14h3d3QERda22EkImJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KmnGdCW0g7eHlrZ0UxOFpsc5CPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mpr49KcqJ5QXx4ZGJRU11JYG6KoaGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKN4YMHWpUN8jYJ1T22OdlNkf6Oop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBEQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkp6eZnaSlo6KdYn+9wK54oKOalWVMYXhtUXSVoqKgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioaKnoaaupqadnmqEnLqPqNGimrOoWEysk1Nlj6CeoKCenaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq+roqKGd359cs/IsJqnr2tVqrBjW4eln6WioZ6gopiVnpufn6ShnJWYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7e0tbazra6tj4aDbpHMu5STpJZ0VG96c3B9lqaqp6Sgn6ObnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQENDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K3u7u7ubnBuLS1oIh5ZFiftr2mp5qId2txb3h5e36GjpKYnaOlpqulpJihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW3wcbMz87Myb6zpJBzZlJEi5WGhoZ9eHFuZ2ZsaWxycnFycnV9janExLuip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYWZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PFx9vj49rLvK+kl4h0WVpRRGl4a250bmtlZVlXXVhcY2pqaWZhaYq1wcC5qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3b21bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxr7N0tXKuaedlIZyXlFUS0RbZV5jamVhYGhZVFhTVllaXVlbdZq3vKy0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudnJydnJnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/wsHHy8i3lHVlVVBPVEg+XmxeX2ViYF1kYVNVV1ZVVVhznK2xqqiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO5uMObYUlER0tEPVtlYmJpY2BbY19XUk9QUFaAtLqsrqWko6ikoKClmam0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnZSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent3bmtpaHZaZ3N4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTExMLEwa2DT0ZNRTtNW19la2VfW2BZWVNOVYCjq7m1sqypo6GtqaynrZ+stLS/w765uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dmVmampoXmtwbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCxpZqWEc/P0deY2JqYFpYV1RWd5q3wLu8urysraapu7q5t7+ztbiywca6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rraussZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWh2aGpqdW55bF5kW1ZgWUxIRDY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnOxcbGvalyUEswWFNVZmFTTlBxqcjIwsTHwLy+tLCwsMK+vsHGwL63tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2tr7WkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOi5R9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ9eHBnYGtqd21pZnZvdGNdY1VXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPCwbyRP092folWTG+ly9TFtr+/wL+6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5gHNwZmVnZGxlYmtub29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzFp3drg5CXb6rJyMfRwa+9vbi5u7u+t7Swub6zvL6xubW4vLa8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFlYmFjZGRqY2dkW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Aur/AvLvFvbrAxL+9vq9zZX2RiorRxb+/yb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7e4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhY2Noa2dnamZqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz05NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWNuL+7w7W6x7a1uLq8uLm2qqSYjn6Eyb+/u8G+uca9wr+8xbi2t7S4tra7u7i2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVncGplbGhZWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/Ed6jMvce3ubettrS3ubO1sb3JxJVKe8q+v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfWtucWdxa3RmY25gXFVIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTWrnSAu8jPwsC4rrS0u723ubG9w8qOQ3XNw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXJmbGpvdW94ZGhjXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsbJ0plxcqvR0czKxLW6v8TIvr60v8DAeVJuy8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0cG1tdGxtb2BjX2JiTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQw7q+vMS+t7zAv8nPx8jKysKGcnOjzMzLzcrGwsPLzsG8uL26snBjYrvIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWRcX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9rDvra+wL6+uqacqbK2w7+leXV4mcTHy8jBw8DAycrBv7u5saF9c2utyMXEv8DBv8vHw8DIwLrBv8OzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3h0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEuW2szr22ucC8rH1uaG5tcoGVmHN3fJe9v8bAucC8vsXEvb24sbCYkH2Am8rCw7y9v7/Dw7+/x7y8wrWsrrS0vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cW9qXGBhWlRRQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzrR2gLO9trXCpYdpWl5gTVJbWm5zd4CfuLjCurO7t7u9v7q7u66km5iHkX7AxMO+vL+7u7i2wcK1wbqAoLCsr73Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra8tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2eG5yYV9nXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmohHiJoK+1nWplZ1ZZYElJTVBTbHeGpbC3vrmytbK7uby2ub60lZyllqFwrsnEwL2/ubOusry6rsF+cKKrpqy6vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybWBkYlxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fq4h8dougmWBUQ1hVR2FqVk9FSmCNoKyvtrq1tLKsvLm4tbjBvYuYsKKlcqXLwr+5urWupayzsKmkVICWoZ6lrba0wba1s6WnqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8cHZzb2ReaFldXlNPTkI/SkNBS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7WRgniHj29OSj9kWUJOd4CUak5BXYGwtbO1srSvrLu6uLa5v8Z2g6qemmSnv7i1srGtrZ+kpqeliEmDj5mYmZ+prbirqqqepKmkq66vp7Crr7GxrbGurq+5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2dG12amxdXGtVXlxQTkhER01CR05HODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e3lYyIhHtYRkFOh1lKSlh3jYFjQVOjubO0srCxrbC5uLa7t7q9kKKyq6Nyq7Cpq62ro6ignZ6dpG9Ke4aJiIWPm6ito6KjnquvoaOpqKGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWl1dG9lVWJkWF1ST01JQElSRE5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKqZmZVpTkBSeHFQSUlLZpuBWUVSrruxrLOvrqyttraytLWvqaafmpudnqaonqCoqZ+hp5ablad6Ym5se4N+gIibqJ+en6G6pKWdo6OgnqWgpKylpqiloqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CWlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqaSpq6aprKumoYh4g3x2f3pjeG1uXVFpVVBPR1BNTUNQUkE/Oz40Ojo1Ozo9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3Cq6W+aUVSnYJRV0lKX0lTjmBjYoCutaqytK6qq6+wsrOtpZ2Rl5OPmKCfoqCco6SfnaiUmpWgtZ6Dfo2Ri4N6e4yZnZynqpKqnJ+goZyhn6Oop5ynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJaTj4+SkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOfnaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fIB1dn1ubHxkaVZTZE5KSEdPU05LTkg8RUA9MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutra6ubq3t7uuqKChqaCqxr/LoVBBc554T25LS2JldHNgWl5wkLGvrrO1qqasrKObmZSNkZWXmJicn6KinJ2knpqklpaVw9rDurahkYyMhHNrepmfsYGbq6GfoKefnZ+jpqieo6afqp2qraqup6iwpaOkpqespqKlopuZnq+orrKrpquqoJuYmJiVk5aak5WWmpabl5iYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJfIB+d3l8ZXl5YWJTVmFJSUtMU1VKU1FNOT9BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMfHj1dTSWSkXGV+b3JdUGtjW2RfXWuPtLCwuKymoZydmpSYmpmQjpGVkYyOjZOZopyXopiWquHd1dXRuaGKiot1ZmCOvKFyqq6rpqKxo5qjpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuVlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbWVcU1taTVJLT09WTVRNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6rpI16VWlydnVwY3Z2WFdjYGNnWVhXZq2urK+nn56ioJaQk5ugnJmXkpOfnKGjmp6blp6Znb21sr7DxMGxlIB4bGlhjbRxhre4trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7W4s7itsrSkoJ2loKyhoaKhoJqZlpafm5uYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dmp3dV5tW1JhSVJWSEZWV0tDTUg9S0k4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqK6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuioaCkgG6CcGBjWExbU1pNTFBYUkhNTUiYrKqppaCfmpKRlJiYlpaWjIiLjpSdnJ2dnpadl6yXT1qDo7e8tqJ/bmVoaXKBX6q6vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwbe7tquusbm3vK+zsLXBvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaegn5+oqKWln52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21oblxYXENXTkpHTUhDRk49Pkw+NDw6Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqamUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnYpiV15lYFdNUUc+Pj9DQz8+QlF4qa2pqqagnp+io52fnpudm5STlZSenpiUhZ2Zn5msZkFSWnqjsreogmhhaHFwYIHHvr/Cv7a6u8DDub27rK6nsa2xwra4wsbAyMrAyr+wubm9uMK+uLS7xsS9w7y4tKqzraqztK+zrqqvo56sqLeyraOwpqGjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqKgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhESlBJP0VCNEZIOTY8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw8Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5V9YF5lYFFHRDxDPkU8Pzk2Tn6qs6eko6KgnqWspp+YnZWSmp6ZlYyKhoiGeGyGn6Kkm2xve2phg6aupn9maHmIjH6zx8TCx8HAxcjN0MjLw7K3tb6yvsW7vszNxszMzNLHvr/Aw77Hx8K4xMrJxMHHv7q0uru1u7ewtrKru7KvvLfAu7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5WUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtlWlxGTE1FRFRNRUJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEA/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p+c2phV05FPklZfG9iQj1cjq6soJmbnJ6emZeXmJONj5eXlI+NkIyCg4J2cnBsb42krY10fKKVZWaUnpl5aHyQnaKpwc3LxsjExczQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsfGysjPwMnRzcfGyMbCvcTBv7+/tb6zrb/Aw8PHxcjEr7+5sri9xMLBu7y8ta6np66ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXVzZWJncm9nXlpaRE9NQ0ZRSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6Oz5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOem52Wa2ZdVElEQD9Lhp6lmoSgsq2jnpyfmpiXlJOUl5GQkI2IhISJh4OAgYGAeXFxbmp2orGIco+4xZtie4qFdHGIlKGlpbjRzMzNz8TN1NXY0dfNxsfJzMPFys/K0tfS19LV1tPUyMzHzM3K083O083GycrKwsfMx8nJxr/Ds7PIxcvLy8/Hyr++v73Bx8XMzMnJwMPArrCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZVZYUkROR0BJUUM+Qj06MjJBPEU8Nzg8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+OTo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnGNTTEpEQz9DUq7RvbKvppycnKCkoZ2alJSVlIp9eXFsZWJocnBye4WKgHVwbXBybYWfhWmEtdeXamx2cnh3g5Cbm5u21NPSz9LD0NPW2NXV0svJztDLxs3SytLV19nW2NPW2M3Sys/RzM/RzdPQwMnIy8TMzczPz8bHyLbAy8DSzczQx8rJwMTDyM/N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYWVyY11SXEpLR0FGSUo/O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpaWgoqJbSUBBREFGUXayr6aalJefnJqgoJ6bnZqViXdpZGFfX19fXl9fXWFsdXNwb25rcG5zgolmbKe1aHxjX2V0cHiIiomKp9XT09HRzNDN09fW09XQz9LT0cnT0cjQ19fY0tjS19nV1szPz8nN0szO0cDHxMnHz87R0dLIzM3Ay83G1M/Nz8nFy8fHyczL1NTR1c/SzNPCucWxpai1rqibqKulnbKosLOsrJOPk46Iio6Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUWBKSkNFQ1NOPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ6lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6up6qooaOsZ0M4PT5EWIKqqJ+XlZeZmpyfnZibnZN9cWVjYl9fYV9fYWBeYGBfYGVtcHBtam1vc3WAaF6DmIqDWUxaZ2JxeHJqaJfUzNXU0crPzNPW0tHVzc/V1dHF0dPK0NTV1s7T0djY2NfLyM7Eys/NyszAycHJys7P0MzQzs7Mz9DIzNDRy87Lw8rIys3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO/u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSUZGRE1ZRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD85ODo/PD04Oz5COjo9PDpBPT08OjY9PT9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+ZpaegoKOnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksnxIRkI7Vo2hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBgYGBgYF5gX15cYm1ybm1wcHJydnNnaXBxZFhQUVdYYWJcV0un0MnS0s7GzszN1MvO0szK1tbQzNDTy8zQ0dPKztHV0tXWyr/KwsbNw8jKw83ExsnLy8/Lzs3RztTMx8nQzcnHy8bHwsbKzM7R0cfQz87OzNDFx8G4ub3Dwr3DubKyvrC7w8O1qpiloZiWkZWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTElRUUI7RD87Njg6ODo7NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc2Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9wd4+ajYyXlZCTkZGVlpWQi3xlYmJiYF1eYWNiYF9fYGFhYF9dW11ncXFvcHFtaW11bmVxc3J4cFZPTlR5d1VuwcDDzs7HxcfNytHHys3NxdDSz83M1MrHys7Px8fP0svQz8W6xL/Gyr3Dx8nOxcPIwMfOyMTNy83QycXF0MnGwsbJxb/ByM3MzM/DyszJx8zQxcXIu8fDycnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdJSEdJTVVHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KGoqqTjY2Wj4WDg4OBfYSEfnNfW15dXmBeYGNkY19dXF5fYGBfW1pcYWtycG1taGdpanNfZXyGhWhXWk5WoJZlm7q2u8fFwcPAw8jJyMjJx7/Ey8XHyszJxMHKycHBy8/Ey8i/ucG8xsi+wMbPy8TAw7vKx8i7ycbFysG+wsvGxcS+xr69wcTGzMbFvL/Kw8XH0sXBycDKysfIxtDDw8bDrsTLx8PKt7+8urOprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdDR0RMREZTPzU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL64vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bV56fJ6RipKWhnqAhIV/dXh1cnBfWltdYGBiY2RkZWRgW1xeXV5dX1tZWlxhbnFtaWZna2huclttcG9ZS11eeaGJbaCxrq3Aubm7ubjAwcHDvb24vL64w8nExsK9xsC3u8PIv8HJu7a7u8XDv7zCzsPGvr61wb7Eu73HvMO6tb3GxMLDt8C2tr+/vM3Evba6yLu/vszEwsbDxsnHycbQxsLMyLLHycPOzMDFw7+8srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRUJGSkE5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1q7e0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys/FycXHwbrFvayup2BjdoGSi4iLhHh/hoZ/fYN7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXWdyb2tkY2lpa3Z3ZmBoYEZmYneBb16XqqiitLG0s7Kys7u0u7C2r7OusbrBu8DEvL+6tLK6vsC4x7i0vLbAwr24vcfBw7u1r7O1u7+0xbi7tay5vb7AvbG7trC3urPGvbevvL+1t7XFvb7DxsDExsbHzMW/xsa7x8u/z8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpHQkRBRUY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TFy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJpbZ2+IjoaIiXp4foWGdneBfHNoXV1dXV9gX2BkYV5jZWNfXlxbXlxdXlpbW1xfa29sZmNmaGhqeHBTZW5kXVdiXUxamaaimKaor6upq6iyrLSvsaetpquyu7m1wrm6ubCqtLm7s8G5r8Cxvby7tbvHucO3raqosLLAtri9sLGosrO1u7yrrranrrauvLKwqriwrruuu7i7wMG+usO/xsPFwLzGwcfKuMXHxb/Hw8O5xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMTE1KRUFDP0ZBOjo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTPx83Bwsa/xMTDw8rCycq/wLzCurO1tcOuqrGTW2l+koiOj3t4fYmFeXuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWlpaXGNtbWZkZGRmZ2x5WVJoY0VLWlM+XZifmpOWoKaroqahqqirqq+ipZ6prLS1sLy4r7evqK24tLO7t7O8r7i5tbK8wbLArqWpo6uxs7OovaqrqKusrrW0pqmuoaWwqbOmp6iupqi3rLGzt7q7u7K8vr6+xL+1wcDHyLe+v8W3xcPAu7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlNTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8LLvrvJtr3DvrrKt8HDwrW2vLaxr7W8ramrk2NtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1hXWVxfZWpkYmNhZGRobnJCRkVEREZTSV6WnJOQipuepaGhnqSkpqWsn5yao6WssrC2tqewq6eqtKuzubC1ta22ubKwurqxtqSgpKCmsaisqbmqpaenqKezraCnp5+cpaasn5+npKGhsa2trLK1s7Swtby2u8HAsru+w8GxubnCs8C9wLW4vL2+vMLHxMPEv8DEoIR5cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs8ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbq9tqCelZ2gprq2q7Ozu7PEz8nLwsW4t8fAzL+4yre7xbizxbizv8CstryyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBeXFtcXFhZWFhYVlhaXV5jYmBjY2NiZWVtZjM1Qj01R0NulZqPjYSXnJ2jm52doqSipp2aoZqeqq6ssbSjqKmpq6yktListq+ssrSus7WvsKqfnp+korKlpqq4raKmpp+orauZn6CfmZ2fpZqZo5ycnrCprKiqq6ytsLO5r7i5urC2vLu6q7OyubO9tLeysba1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTYzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uci4uL+3ssK0sbu7rLq6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFdXV1dXWFdaXWFiY2NiYmNkZXFSMTo0LzhCXmOMlo2HlZydpZyYm6OloaObnp+YmK2sra6xoKSiraunobWwsbGsqK+yp7qzp7ahop+co6Gto6Kqtqqio6aepqajlpmdl5manaCal52cnZytoayoo6Smrauzs6q1sLKrsrm0r6qvsrKzt7Ouqa2usriwura6vb+3s7GUhnp2Zl9mX1tZVlNaVUtbUUxKRUhLSUM9P0JCQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+ynaWjmKWxw7W2va20uMLMyMbAxbbBwMfOt8DDvbO5ubK/trG5u62yta+fmqOqoZSaj3h/g4R/eG9xdHFoZmRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVVdgYmNhYWJgYGRncFBRPywxKyQ6a6WViZCamZyak56ep6Kcnaabmpmqpq6wqZuiorepoaCuqLWqpqetsKS3sKS3oKOcmZmqpqGarbmwo6GknKKgoJOVoZSWlpyZmJaXnJWfqZ6qpKKeo6qqsa2otKyqp62zsKWrrrOxr7Cvr6eoqLKusrSwvLS6uK6jlIJ6d2VfYVdZWFNSVEtNXkxQTEdITUxFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rZ2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwsLGqnJqhqZWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1ZVWmJiYWBhX19gYmhwaEoxIhwmSkl/louOlZqXnJKcnKSjoaSlnZuepZ6qrqWfoKK2p6GhoqizoqWnpa+lsa6rtZ+hnZaVqaGilK2xsZ+jo56emJyTjKCUkZOYmJKWmJiXnqebp6KimqSlpaukpbCnpaOrrK2mqa6vr6uoqqqzpqarr7Sxrry2sa+vn5J7eHNlYlxbXVhOTFFIUmFNVlBPSk5PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaasuLu8wcW6srm1xMnJwMLGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZn6OLinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVlJUUlRfX11eX1xdXl9hamlHOjQvOml8cISLjJCdlZyTmJyin6mjoqKhoqGbqKqjmZ2jsKmhoJ2kqp6oop6srKqprq2ioqKVmKKanJCrqbCcn6Kfn5eZk4qdkY2SlJaQmJiTnKGjnKWhopagoqSlm6OrpaKkqqSrraWusqmmpaemtaaqqK2ztbS5uq+qrJ6Mc3FwYFtXVlZSR1FPSFpcT1JKVEtTTEVHSkM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Nzs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Gtnainr7m5s8DIurXAr8XIzLrByczItcm8sb7Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpaWxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RVVlVUVVVSU05QWVxbW1xcXF1cX2JrSzVCQlJ9hnd7iouLlZWdl5edpKWnpamlqKWhl6SsopSYpK2on5uYmp+erpmcqrOfpaafo6OhlJSblpaSqamtm5yfoaCblJCMmY2MkY2SjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq7Ckrrilo6SjrK2qqKuvtLeyvbWzq66YhXV0aVtZWVNVUkZYTFFbWE1VT1BMUVJJT0pCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njg6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7euqKivrpupqKy3tqy8yru2v6zMxsW4wM7Px7PEu7e7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FYWVlZXFtaW11eZmNVWGxtfIF6gIKNiZGTnJuWm6elo6uppq6jppedqp6UlKOnpZyXj46Zna2WmKeqmJ+dlKWgnpKRkpGTlaiqpZqYmZ6elo6Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6Wlp6mooLCwprG9p5+jrLSqrqevtLC5tcCxrrCrkX5ydGNWVFVOUUpHVlBSUkxMWE5LTE9TR05LQUNGRUM+Qjc1ODg5Ozk6Nzo6Nzw9Ojs/Pjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxt7i8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5xam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRRTU5NUldYWVhYV1pbW2BqcGpwZXd9eIN9jYKOjZGWk5mkl5ynpKSpnKWXnqOakY2eoZmWloWEkZqjj5WinJWWlYeimpuTjI6KkJqlp5uVlZeckZOIlI6LgYyNgJCLkpKSoZqgopaUmZiVoqaajZmkp6mnoaC0sqizuKGdo7asqq6ksrKmtbu0q6yxoop6c25eTlFRTU9ETk5OUEtGTk5KSk5OUUhNSkFITElIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKqloKmmpLOqorLEtbWys8bFt7rDyszGs626vbS4wK+uqbCepq67r62gmpuelZWIfIRuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0tTV1dWV1dXV1pdYWdfY15yeHN8dId9h4OOi46ZnYuWmaGfoZeklJ+alIyGmJmLc42CfY2WloaSmpCTjo17mY+cjIKJgIqYoKOekJOYloWOgpR+fnSKjnqQiJOQkJ2bmpqSlpCejqOjjomaoKGkpJuitK+ssK2fmKa4pqWwobGunLG8qqmvqZmEeHRkVk1SUFBNQ1NOTFBNQlBRSElOU05JSkpFS01HS0s+ODQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY2Ojg3QTd4t6GjtKimpaijpaWmpqayp6a0wbivtLDJxLi5wM7GvrOsusGsrcStqKKmkp2mt62joJGWl5KQfnh/ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpHTlNTU1RUU1VZWl1oXF5bbHVtaUdSa4p8kIGHl5KHkI2dlpuVlZWSjZWIf5OJXztXb3uLk4mAjJKMj4aGcouEloF5gXuGlJ2Vg5aOkI+Dhn2TeHFwho19iYGQjpCXmpmTi5CKnYifmIeIlp6aoaCXp66prampnpats6KlrZmtq5iotKOpraOTf3RuYFtOU1JXTERUSlBNTEZOT0lFTFFNS1BKSU5QR0pKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebegoq2hpqaqoKapp6OqsKintMK5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpmHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtIRkhOUVFMT1JUVVhZYWNaVmhwZUg7OnuQjIp4go+IgIaJmIuVlYmRhoSThXiIf2BKUW53ipGDfoSMi4R/f21+f5N3dXZ4hI2acFGNiIqGfH55lHZnd4aIfoqIlYuOkZOXjISKiJWEm42ChZKblp6dlKSiqKmlpJ6bsKqhpKSRpqqWoqqcoaaninduZl5cSFFRU01JVU1SSUxLT0lIRkpOTU1VS1FSUEdKRD03Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Nzc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+sqrW8tri3s8G7tqe5yLi2qKi1tqqyvKeelY5/iZSplpWLf46Eg354cW9YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlPUVNTVVpoZlxkbVxdU02KgI+Cb3mBfHiBiZB/kJmLj3qEjX50f3hybnVwdI6OgXp+iquFentodnuOcHJteIGLjZJ4e4B7gHdzcpJ4aHWFhISFfJWKiIqNi4B/hIuNgJSEfIGPmJSclpGfnameoKGdoKmln52YjaekkqCglp6fpIFzaWJdXUpXUFJIS1hST0pNTFJKSkpMUElMUU1SVU1GSUI9Nzg7OTk+PTo7PDk4QD86Oj48Nz09Nzk5NDc3ODU2NzUyNTE0NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6Rf3eGeHx2cG9qWUtISUhHRUhIUFRUVFdWU1VVVVVWV1hXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE5RUVNWXmhtaWhZa4OPlIuMdmJ0e3J1e4WNeoKYkn9whY16dnpua36tfHSQi396hpKAfH90ZnV8hmxvaHN8io2HgG16cX1xbXaPcWhxgX6OcESLhYKDhX93d3qMhn2Me3V9jpKPmIuSm5ujlpmdm52eoZyWjYulm46dl46WmJB4b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUU9JT1BMRkQ9Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rp6mwr7Gru7iru764s6ynm7CnrJuPlpylqaWhmJqOhJJ5iY+Li3ZxfG11cWptalhLRkdFQUBDREhMTE1RUk9RU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFellKTk9RVFhdYWdjXnycoL18bnJednNqd3SFjXd6iYRua4qQd3N4aWp/gnGWkYyBfZV/SZKZbmd3foJtamRseYWQkoZrc2x8bnJ8hmltcH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6MipODlpaYmpCTlpaZlp2WjIOJn5KLko2GkJeAcGpvb29ZVlhUUlJZT1JVVFJYVU1PSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYm5+krK+iraqota+urLO/q7zDv6aimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ1b3RscW1la2tZTkRGQ0A8Pj5BRkZHS0tLTE9SUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JWWlFXWFedfluTYmxyYHlraXt2h4Vzf4WDcmuXj3Jye2lqnY5MeYWTiYSNZjF2h3JrfX2DdGZldX+EhIWAZmlsdWtwgHxocXF8bpONj3t0fn1xcW91bYN/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW05QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo6VmYuOhXqEkJiVjZCMkIdxh4J0h4yGenBzcW9wZHBnX1RGSUM/PDs5Oj9AQURDRUdJS09RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUtBSVBIX6mtmmp0cWd4aG1+fYF+d4GDg3dwnpJyd4BydJOHNXCdqJ2NoKGEooV2cIZ7hnx0jK6NiYFoZ2JqbnJtcIN1aW9YdXCOm5F2bX97fW5ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2OfHNycW1gXF1eXFpZYV9STltaWFdMSElGSUg/Q0FCSD9DRD07Ojc9Ozo7Ozk6OTk7OT88ODg9Ojg7NjY2NTAxMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpGBkoiVkZ2kp56vlaW0qa6wrsGyu8HFlo+MlI+AiHxugZCSiYOKh4+GdYKEbJWIiHx1eHhteG53ZGpeSVBHPj83NDQ4Ozo7PT5AQkVITExMTE5QUVNUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SUkNIfm14dXRweWhyg4R4eoGAfIl7dJ+XeH2FgISZhJqcYYaqnpyLg5COeneIfomIjnSLl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVnaGBbXF5TXGdeV1FUWFtVR0pKRUxHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTQyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2epZGgq6CxqK/AsrvEupaOkZOHeoZ2a3+LkYN9ioOOjHiDgXOghIp9fYF/cIF+emh3a1JYTEBFMjExMzc2Njg4Ojw+QUVGRkdJS01PUVJTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklLTU9RS0pUW1dQSGJ7gXSCdHZteIuHdnmFhHuThHWel4aGjZGUpYysqUiGra+uioGAlIuCi4KEkqmIgZiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZIbIB3cnl2aG1rX3Z9goh/h4SLeZScm4mLiJF/enWKdnx4bW93foF1dXNtXF5eXGNkWGdlXFVQUFdZUERMS0ZPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2Nzc4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5COlZeSlqCdrKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzk0Ll2WcHOjVUZJS0xNT1dgV2xYWltkhIt+jXt+fICMjnuChY1+l5KAnp+Wk5qZpa2SmbuxprrHw6eLjKGljpOJgZF8cYOen5Gdf3eFhYuQh5BpaHCEgXSMh4SKcoaCd4iAe3aEfG12dWZ/lI6GiIiGh4egqqKWiY6Xf3qBiHl5b2dreH58gHVsZV5bW15qXmJnYFpPTE5XUlFIUEpETkdDSkRDQERDQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneCen+Mf4GRjoqam6Sdoaymqq6wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOhICBjIqCiY2Df4p/bHBqXUJANC0tLy8uLzAyMjM0Nzc5Oz0/QkRISU5RUlRSU1NUUlBPSEVCPDg3LzlDPjw8NjMubJOXTVBISkxLSk1WX2F7ZWRpb5OShpOMjYaJipWEj4yaiJ2dkKCoo6Kqk6i1oafBwq3Hr3i5lJp8jaGemYSThYKOoZ+UmZGFioWPmpGWbHB1ioyClYyNjnePhHFthYGKlpGChYhyiKCVhpGJjY+WpLSom4yUooOHkoN9f2tqanyCg4N1Y19lYFtobF5sbF5XS0hOUlBOTExGSVBDRE5GQkNFRkM+Ojk2PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXmAkoiRkn2KhJiSkIOAgIuMiYaQh4SJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDg1Mjw/UjVISEhMS01OUl5rhnlwfXiWlJKgn5yVnJKekZmbpZulqJ2mqqiptJarvqu1x8i2yNDPvpugcGmrqZ+Ek5KFnKCam5mmkpGIlaObm3h6fpSYk6GTl5eBlJ57d5WSqrKIjJaefJOdm42RlZijoaW1r5yQmKeHlo+NgIhsc3N9gX5zamFeYmBiaGRgaGdcUkVKS09OSUlMRkdNQ0hMRkZDQkdFQjs4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Ljo18ioaPkI6BgoCJi4qFkoWDhomBgId3XmJQNDYwLTIvLC4wLy4vLi4wMDE1PkFBTVFSU1FSU1VSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUpNTlFZa4KMdI+FmZ+hrbezoKmoqaSmsamutK+vq7mwsr2bssOrucnLt8O/t6WisLOsraqji5aYhKWmoKOXgaaZjaKqqKWIhZSkoaGqoKSoj5yxi5Wjpre6m6Cir5KinKGdj6Khq66rsrShlKSpiJmIkomVeXp+hoFpYmldZmNfZWReZ2dfW09DSUhTTkZIS0ZKR0ZGSEFLRkRGRkI7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2luWHqEdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GOg4SBi4WGiJKGgoWJh4iHh3FuYUBFNjQ8My8xMTAtLCstMC4tND9DQU1VUFJTVVVWVU5bUEdIRDw+PkZIQ0RBODs8NUM7PUZLSUZIUU5QV3+Pm4GonqqjqrrCv6ewwrSqsb6xtruzvbPAtbu6orjFqLXIx7W9uLSoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqivtrqyuqywtaKxrLG1u7a0rbSfpqeippmor6yxuLe4ppq1qIykjpCSn4Z4goV4W2NlV2djYmRhYWdgW1RKRERMVFBISUlESUdFQUBAS0RCTUc9ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiYld5dXGBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeEgY5/gYmPhn+GiIaKh5B6eG5dV0BFTjw2OjQ1QUI3NjQvLzZDSEJRW09RVVdVXFdQX1VJS0tBPz5HS0ZFRDs+QDdENz9CSkpFRlZTUF6MoKqgrq67r7K7yMWzucO7srK/tbbAs72vtnSws6W6xKOvxriws7Gzp6S1tqqxoKKXm6KSpbCupq2rp6SYoa20u6Kosrq1vL/Mv8XFvb2zwbe6t762ure4q6uwpK+orL2vvLrBwauYuaeUrY6Xl6mIfoN+bVhkYllsZmtmWFxjWVZTSUdGTFBHQ0hJQUhEPj9CQkxAP01EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWFVadmpwfo6DgI6EbnpzeIdiuaGZo4mUlJaSlJONj5eSh4d7hoGNlYqAhIGKenyKh4Z8ioKBi4OVfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNRUVlYWmdZVGBfTFNQRUE/SUpIRUVBQEQ8RTZCPkhHSkxTWlRdkauzsbezxLm2ucfKubrAu7a0urm1vLO5scVgdLGksZqeqr2ppairqqOisrWhq6iflZafmaCupaempZ+klKOnsbSosrO9tsK+08nJ08bDxczCysPAvby+u7u2tK+4trbCucW9wsevnripoauNpKe1iIGBdGFjY19YY2BqZ1NYYFZSVUlFRU1KQT5HRD1LQT1CQD1HPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtKy9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaKfoOAgnh7i4OHe4t5gYqCl35zfXprZnB1WV5cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFRZVUpEQktLSUZISEhIQkk6RD9IS1NUVVxaW5K2vbW7s8K8t7bIybi1urW3uLK2s7KttbaYZHWnnK1wXqKsnJigopuknqqllJ+fkJOOlpmYqJ+moJ6amYOknq2lqrCtuLC9udTRz9fQyszSzM/Nysa/vsHJvMC8wMDExMTJvsfNsqO6sLSumqu3u5iAfG1fYl5aYGNaZGNRW2BTUEtDQUVGRTxARj9BSEI/Qz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVtZaF9vlpKQlG5sb3R1h7SsoaGfi5mcmYyNlZGakoaKin6IhouQi4h8gYNze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWZqamlgZmlpbFptc5atpLyIhmdcb2ddWlpUSEtOUEpLUEtTUUlMQUpGSk9fXmFmaWGXtcSutrC5urOvwsW0rriwsLursrClqrerjLWnnZqnmk2ZnYyOn5aRppillYqTk4mQiY+RkZ2boZealZeHn5qnm6yvqLCotLTU1NTW08zQ09XN0s/MxMHJ0L3JycrJ0cbMzcLP0bevw7zDuaS1ucGihHFlXl9fWmJZWmdaUV1YT1BCQkhFQkg7QEM+QUc/P0E3O0M+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJncW95eYOhqp6ml4yam5eLjZWRmo59iYuFjYqJipCHfISCcH+HgYZ7h3KDkouOfXF4dWxxeH5xem14c21pgHBtY2ltcHhpd3x+y77B36dtY3huY1tiYEpQUlVOWV5PXVxOUE5UUFRUXG5tdoJxlqy2q7Klr7Spq7u/sKq0pqS4pqutn6u0o46wrZqXmIyPkpGEjpuBjaaRnImDi4SKiYSLhJSVmJeUm5Gcl5man5+rrKWooqytz9LV0s7M09TU0NTRzsfD1NHGzdLT09fM0dHE0tbFwc7Hx8KovbfOnnxxaGBlX1hiU19bUFFUUU9IPkBGQUJFPEBBPkRDPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxVUU1OWnWGhYp3bHdwfX5/oZ6eoYyMmJOTi4ySj5WFeYWQkI2LiYiQhn6Ce3F+gICHeoR1hZOQiH9vdnJrc317d3tzgnhya4BzcmlvcXp5cXq+y5p9i7GEdnKEdmhha11DWlpbVmVjWGRqU1hcXWBjXWN3en2LgZipo6SgnqCnpaqvuKqls6KhraGjraGmsZ6IppqTkpGJj46IgZOJapSijJmEgYZ+kYODk5eti5WNlZmOhpKRnpeosKKhoaWkqcnNz8jCzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy411cWViYVpWWlRcUUtHSkpKQDs6O0RBRDxCQz5HQj5CQjo8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7T0xGSlhwgHV9aHN4coKJgJ2VnZSFi5WJjomIjYaOf3iDk5iKjIiIi4h+gnhze32Ch3d/eoaRlX+DbndwbXV/dXh9dIV8eW2HdnRufXaEdHh7nbWMO0GKxaV+jHxpZVdJQ2ZjZWNnamNtd1teZmhrbmhugIKHkYucnaCckJeYnqOjpbGjpLKfoaWdoKiforGbhZ6SkZGPioyKhoOPhH+cm4yNgoSFeZR/gqmVo4yRiZeSi36Yi5uSq7OYm5yonKe+w8a5tsbO0tHS0MzSy8jUztDV2tfX2NTZ2M3Y287J2drR1b7Ky7V6eXBnX1tUV1JcV0ZHSklFRT06NzpAQEI5R0Q/RENBQ0I7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhImBh3x4hZeWiI6Ch4WHeoR5cXp7g4V1eYWOjZx5i3B8b296f3F7gHGDh4Fujnp1d318gnR+fIaHr3NYqcK2jZGCcG1iPV5ocnBxcG54doFlaG9ydXhxeouGjZORmpWflYeLk5ugmp2pnqCrm6GamJ6knp+rmYqai5CRjYR8h4eDhYuOn5mTiIOHfmyZeoSYhoiTjI2UjIZ8nImUkK6qlJaYn5mnr7a9qa2+x8zJyczL0MnD0srU19jX2NfV29fT2tvV0Nra0dbI1MuWfH5ra11cUVVUYUlDRklIPkE+PTc6PT87PUc8P0FBQURBPj86ODdEQjc1NTQ3OS81NTY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEPkNHUmpebWRiZmt2gIhxkZCagHqAjX6CgoGDfoN7fISYjYeLfoWHgHeCeW57e4aBdHmSno6gdo51gnN1gX1zgIRvgZCCb5KEdXyBhXp2hnuJt8Wkwcm4gZabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJSOl5CCiY6WmZaVpJuXnpWdkpGWop2Zq5WQkImMkYKMhIiIgYWPkZ2bmYmFi4GFmHqIiZ+XkIiNiouCfaGJkYy8oZiTmJmcqaamrp+otr/AwbnIys7Oxc3J0dbV1dnV19vU1tna29fa2tnYztvGiH18amxoYlZZV1dOTEVOQzs9PTw4Ojs9OT1ANj0/Pzw+PT05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs5OjdJUF1bU1VYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bIqNknd2eop7foB+f3yEen6CkYmEhXmEh3t1fXRtfH2GfnN+kp6RnoORe4Z+eI9+eIqKboKagHSZhn6BiYR7fpB6j6mOj8OhvYucpJ19iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CRhIiKkJKTjZyZkpOPlYyLlJ6clKCUkI2Nj4t+j42NioOIkpaanp6Ii5SRnZGBi3+lmIiEjYKFhIGlhoqMuJidkZWWoqehnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuHt8e25saFpiXVRQT0lETEI8PD45OTs6OTk7PDY/PT48PTk5OzszN0RAODM3OD42MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw6RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PUNRU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97h3p8e4uGgn10g4V5c3pzbYB+hH53hZuim52Ukn+MiH+Yh4Cbkm6IqIV6oYt8kY2DiIScfZqQioyjoqCQpK+fi5CLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlIuGh4uSkouTk5OOi46Jh5WanI+UlpCKkZOGgIuIkYyKiZyWmKKihpKdlaCKiYiNm5CDh45/g4eGpIWMkbOYnZKUl6Gin5qSnJ6osritpr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aBygHdqaV9gWlVZWUNBSUM/Pj46NDg6Ozc6OzozOzs/PT43Ozo6MTpHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOjg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNiem1hfpKDb213i3h5f3qBfIZ8e3eGhH9zcIWCenV3dnSEgoR+f5KmpJ+lopeKnZCUl4uKqJdzirKNhKiShJmThZmMopWfmJKIm56jkqmwn5CUkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNyJWOhoeIj5KMjJGTiISJiIWVmZqPj5SShpOWg3+Pi5mHjZCql5aiooiYnpaaiI6Gl5eJhI6MgX+Hj6SIjpOompeTl5mhmZ+ZlJ2bo7O0pqO8wr7HxsXJyMnCy9PNzdSp0tHW1tbY2tTS2s6FdYNrZ2FgYFFLVlxCQkdDO0E9ODM3Ozw6OT02NDk6PDo4Mj85OTI6STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfHxtfoh4en56gYGCfnZ2gIJ7bG6Lfnl8d3h8hIaLfoujtKikq7OhlqegpaSWla+ig5C4lZKzmo2hoIykm6+ipJ2YkKeXqZmtsKSXlJWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKcl4WIiI2Ui4qSj4aAhYaIkpiUjIqTkoaTl4aEkZCcc5CYspWWo6GInJmTj4qQipaaiIqWjYZ9jJifipCQnJqZk5mYoJSgnZWfm6GxraOkuL+0xMfEvcPDv8bOysnSp8/M09HQ1tjSz9i8dX15YGNXY1hSSUtPRUJDRDU+Ozc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NTI3Nz9ANj8/Nzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OklFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNXFxZSmhhO0iEi3p6bYWGeXyEeICFgX1weHx9fG9yjHp9gXt4houJhoSSqLytqbO9sKWus7Opo6KwrYqatZ2juaWVraSXqa23pqSjn5mpmKqkr7GqmpmclJWRmKCXmru7rcqhaba3qrCVmJ6iq5KXvaReqbKCiYmMlIaQfI6NfIOFjY+UlIiHkpaLjpWNi4yXmJGbmbSWlKqdi5yUkYyQkouYmomRnY+Lipafoo2VjZeZnZOcmJ6UoaCUnJ2mrqiipLO4q8LIxLa6vbzFyMjC0KHGyc3NxNfW0MrTo3N9bGBdVmJUUUdEPjxDQUE4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGZIYWBicEpAi4l/gHKGh3yBiXWCioN+bX18fH5wd4d3jYGHe42QjIaMmqvDwLC9xryztMG8tKyrs7aMqLKtrr2rm7ujqK25uKumpqKipKOqr7Kxqp2co5ibmJieoqalk6O5r6i/vKytsrmlo6d9iIacrb2wgouLipCDj4ORjnmBhpCMjZuHh42WjIqUlpOQmZabp5qxmZCqnI6aj5GOlZCPlZaOkKCQiJSbo6yVlo+UnJ6UoJ2bmJ+glZufp6ekoqSws6bAxsOwsLu2xcXDv82nx8PHw7zV0MzEyop3dmVfXWJeT0xDTEBFRz9BP0I8OjQ+QT09NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFSkhOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxoRl9pZ1tdXJOMjIh7h4uGg4x1hpCKgW9+e4F+cX6BepR6kpSUmJGTlai0x8nAwszCw7nHvLqvq7m7l7K2ubLBrqXApKuwvLyqrqujo56nrK+1samboKqcopyWn7C0p4yjurq1wburqJyypKSolISOqcTEpIKLjoeIhIaVlIx5g4yQjpGgi4uTkI6Hl5+XkpiUlqWgrpyMqZyOlo+RkJSVjZCUkY6hk4aXn6Cyn5SblKChmaSfmqCboJSZn6ekpqekr62lv8PCrqi3tcnDvrbOssS+w7uz0cnIwbV4fHBfW19tVE5JRExMTEpAQT1CRDw1QUQ7OjM9OEIzMzIyNjNBMTVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qajZaKi4iSj4aJeYaTkIFygHuMf3eHgoGPeY2hlqiam5i6vsnIysLSycvCzb3Bs628v6e6v728xLiswamts7y9qrCqpKWjrK60rre1oJ+un6aimaO0vamcqLzBo7a2r6uTsKyqrJaGmqqnpZGCjJKklYmAdYmReYSMkZCdn5GOkoqOi5Oil5aalJOhnqmekKSZjI+Oj5WWiHyOlZKRopqUoKKctaaQoJelpKOln56mmJ6Vl5ylo6ioorKtqLvAxK+ls7fMwLquw7O7vcG5rcLCwb+acXxkW1pfXkxNTktHRUNIQUFBREs6NERIOjs0PDdGLjEyMzUyQTI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bElfWGFaZGVYno+djpeOnpKJin+In5KEeIV/lH5/kIiJkICWoZqtp6SYw77JxMjG083Ozcu8wrewur20vcu7xMK2tryttL+5vK6vqKGpqLaurqmyt5qerKKoop2rt7eqpa++xLG9ubOnqrSzra2WlaWtqKCRjpKxxaeVjnyRlXyGkJiPqZiXkpKOkpSSpJySnJiToKGhm5iel4qLjo6diFqPlpeSlqSZZpmjnrOllqKWrK2sp5yfppeYlpiVoaOopp+1q6m6u8O0prS1y8G4qrass7u4rqi4ury3hHBxXVtWV1BHS1ROSz9BR0RESEZGODVGTTs+Nz5BSy4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZmRNRqaUnJahl6iWjJCDh6WSiIGHgpuDg5WQkJOOmqKfr76uoce+xsXIx87Oz9LKvru2sbu7vL/PtsS+t7m3s7K1s7izrKecq6y5q6mosLCYo66lqKSltcGwq620vsO5wLmzp7i0t7KvlaStsK+li5OUoI1zwZl9lpmEjpaZi7CVmZmUkZGZmKSilJ6alZmonJqhn5iJi46UnF9KlpyalJmkl1SWsJ+vnJ+lla+vraaboaaUk5mYjp2fpqGZtKmqs7y8u6uwssfAuKasq62xsaOhsrK0pXNyaF9dUVJMRlFRUFE7SEpIRkdBQz05S1Q/QTo9RU0vNzUzNDpCNDROV048SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzVFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTdGJWRkirl5mfoaiumJCXh4qnlo2IkoWfh4Sdl46doJqjpLXJtanHvMTEycvJyMzOx766s6+6uMDBzbXIu8G5trqyr6+ztKeknKu0tauqpq6smqStpqWprLq/qKu3t77BwL63srLDsLe9rKOuta26poibl6Wbdb6fhJmdjpKYmouulqCbmpaUmp6fqJ2mn5mZqZmgpp2Wj4yQnIJtdZKimpWcop+QrrKiq5Wpqpiqr6aloaWqkpKZnImVnKKelrCnqaq6t76zsq6+ubago6eopaacnK2pqY1maWNiVE1NR0lPSlVMPUxETUlKQENEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQzo5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYU1WSH5lXkhGrJScoZ+7rpiUnouTqpuRkZOIqo2Hop6Mo62Uo6S2x720wbvCwsjJxcLOyMK9ubKvubXAw8q2xrLBvLW7rKmtrbGjo5mqtbumqqesqp2or6ikq6q+u6itvbS3vse8trW4wLC9v7Optbesv6WPopeQoZ+8nomaoJiWnZ2Otp6om6WimpugmaeksaCanaWcp6mcl5OOk5uKlomMpKGUnKKfoLWwpaaUsauaq62fn6WkqpKWlaCEkJ6fnJappaGhs7S7tq2otbKynpyjpZqXlZmqoZ54ZF9hYExJRkhOUUlORUZGQlFKSEBER0FWU0RIPEFHUTE7Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRKiXpJ6fw6ybl6SXmaiblZqajqqWlaimla2smaKrt8XCvL+4wcLAyMS/zca7vrmysLm0vsPItsCwvLa6t6ekq6ytoaGbq6vEoqWorKaeq6+toqqovrimrb6wt7fHt7S4uL6xvsC2tLK1r76jlqOVkpqTrZ+QoaGkoqKekL6kqJ2oq5ycoJqln7yil6OeoaiqoJyVjZWek56HjoSNk56koJ22rKadl7OnmrCooJyrn6KNmpWfhI6hmpySpaWal6uxtrKqpaqtrJyYoKCSj5CWqZ+UaWZcYl5QSkhLT0xIRURJQD1PSEA7RklIW1JQSz1ITlU0QkY4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLS0wTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE6im6ObnsWroJ6rnZytn5Ginpakn6aqq5e2saOqs7bFw73Atr/BvMnCv8rItri1tLG0tLfCxre/sbm1uragp6yrrJ6foKWkwaWhqq6gpKmtsKKmqL21pbG8t7a2w7Kyt7q+ssPAuLittLS1o52klJGToKyfmKGdqKiqoprCrKidq62amp2YpZ+9oZykl6urq6WgmY2aoJKeiI5Yf5afpqGguaqnlJm3o5+zoqGcsJihj5qVnoKPoJeWjqKjlZClrrKsqaKipaSVlZyYi4+Sk6SfiWNnXGVhTUpLS09GRUFHSz49SUE5OUpKTl1RUUk9TFZdOUZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExQnqCgmJ7Dp6Sis6CbsaeSqqOfo56tqaydu7GprLWxyMTBw7PCw73HxL3Eyr2wsbausbWwwMW1urGxuratmqmwqqqbn6ahp8KtnK2xnKmirrGqpKi9t6a1u72vt8Sts7PCv7LGs7q3q7S2raqippWVk6KroZ+fmaeqrq6vu7Gln6mpmZiXkqKjt6Cho5GurqukpZ6RoZ6UnY6QjZSdmqOfqLWnp42ZtZyjr5ugnLCRoZWYlZuAkqKWj46goZOLpqywpaeinaCekpKak4WLko2cn4BkaF1oZktKTEtTQUNASUc7O0Y+ODlOTVVfUlNKPk9eXj1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9nckA4PEiWd2VBNJ+knpqgwqejqbGgo7SplbGrpqKksqytqbuyrbC1tMe/xMO1v8S+ysW2wMnCtay1qbC5rMDEtLivrba6pZmrsqyrmKGnmK27tJyosJusn660sqequrKmuLO4srnBqreyw720xae+rq23tamnrKGWlpGlo6Ghl5ekrretsbS2n56opJmTlJOjoLaipKWVrbGxpaikoZ2ZmZqVmKign5minq+zoqaNmK+apayYm5+nk56QlZmahpaglYyQnZ6Ti6mpq6GnoZqelo2PmZCChpWJlZ96ZWtebGtOUU5OVD1DQU5DOzpJPzc3UU5dX1JWUUJXYF1CSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWpWQ1dGjHlmQzukpJygpb+mqK6uoKm1qp23r6ujqrS2sLC4t7C3uLjFvcPHvbzDwsjBusHGwbqqtqWtu63Bw7i4qq2yvKOVrbCus5emqJGquaqhp7CdqqCvtLOqqra1rLqrs7K6t6y4sMG6vb+mw6qwtq6pq6umnZiYqqChoJGXoLCus6qwuJmbqZ+ZlpGXpqC2qKWioq+ws6uxp6ufmp+fm56lnaGYnaO0sJyfkZSmmqGpnJakopiajJaZlJaXnZSJkZuZlI6pqaefo5yZm5OHj5mLfo2Xho+abGluYm5uWFFRWlRBQ0RVQDs7SEA3OlhQZF5RV1dFWV9eTkxTT19MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOG19aFxWOol7Y0M9qJ+coam8oKqvqqKwt6mltLKroa21va+zuLy7vbe3wcK/ycO5xMPBwLnFvcG4r7aoq7eyvL+/tKqvsrifl6utqa6YqamOp7ufpa2zn6uisbCzrKq1s7W7rK+xtaywtbLAusW2q7yvsbesraqjsaWepaieo5aPmJ+yqbKpqbKZnaebmpSMn6aktK6noqysrbCnsquxqaKbnqiknpWhmZyotqmYmpKSn5mfoaCSrqGbmoiXmYydmp2Ui4+Xl5qXpqajoJ6XlpaUgJCVhHuPk4OMl2dtcmhxc2BHWWZWRENNWERaOUhCNj5dUWhcT1pdR1teXk9NU1hkSktDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FWMTUxPWBWXzgpQzNZVVxnSzWMemZMQKWZn6SrtqOsqKSurbWpr7O5pqewt8a3sbe/wcK2tbrFvszFucPBusC6xbjBurO0rKq6uLu6vrWrr7G3mJioq6usnK6rj6u9nauusaOqn7Gts66utbG5t6qtr7Kotq+zurzJs6q1tbG0sK+nobOfmqisoKWVlpqZsaKtoKWvlqKkmZmSjKKlp7Kpoaaxq6m0pa6vs66jmZ6tp5uXnpqZrLiimJORj5icoZmYla6hn5aClZmOnp2al5GKlJOemqWjo6CZl5OSlnuMkYV7jYuDi5Nsbnlvdn1iRmBqWklIWls9e0pHRTZBY1RpW01cYUtcXFpSUlJiYUxLRWBhYVFNSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1hUTEWalp+wqLGprKSjrq21qLezt6OstLfJu7W7u8C+tbS3w8DMx7zDvbe/v8G4wL2yva6ourm4t8K3rK6xupaXp66sqKSyqZSvu6SssrKmp6OytLGysbWwt7Oprqyyp7ivtbPExbaptbWrsK6qp6O2n5+msKCjlJuZlLCep5ufqY2pop2blZelpaS3p6Kws6unsKetr7SspJihrKicnJ2clKq5nJWPj4yYnaKYkZmopKGYhZSXkZ2cmJeXiZeQl5uonaWhkpaSkJZ3hJGGfIaChI2NbnF4dnyAXUxlbFxLT2RdP2J7R0k4R2hXZVtNXmJNWVlXVVhVal1PUEhhXl9QS0dRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGcyNydGYUxWJS1CLj1FTFE8M3JqTEVEkZmkraSsraqmorCxsqq3sLWfq7W5ybmuwbzDuLOytcLDzsTAwr61vsDAu7+9tMSpqrmxtrfAvK+stLSeoaexrqWmsaWesrWsqrKwq6iotbqstbK1q7StqquprKm5rbKwx7+4pbmwqa2tpqitsaWko66jqJydm5qvmaKioqOQrJ+joJ+hqaaluKSrtLSkqquprK61rqKco6irnKCZm5KktZqPiY6IkaOhlo+Wn6OXlYaQlZSem5mXlYiYk5WZp5ygoI2Tko6ReH6PhX18fYeKinJ0c39+fl1TY25eTlpnXUZElltHOk1uWGFbTmFiTlZWVldVWWheUVNNY1pbVEtGT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RkOzYqSGRISis6ST8zQ0lTLD6Pa0BISZCaqKmhqbCkp6Ozs7C0tbCwoKutvcy7rsK9x7K0rrTCw9HExb/Cs77Cw7y/uL3FqK23rLS4vMCxrLKtoqSnrqqopbGjqrGqrqqxrq6sq7O7p7ewsqmyqqumpaSuuqyqsMK5tKy5qamoramnsaWppKKuqaiinpyirJWlnZiemaydoaeooaymo62strCxoKmioKqtsKydnqenqZqjmJmQoKiYhoSPi4ufoZCNj5iekpKIiJKWoZ2WmZaHl5OTl6Wdnp2MkpCOin9/iIV8d3+HhYd1dHKJd2xfWV9uYlFzcVxLO4R8Rj5XdVdhWU9jXE5VVlVXUVxiX1NPT2hYWFdLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTM5ODsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLkpnREY4PEIwNUVLWDFAlF1ATkaVlqynoKmxnKeosLWsuLWtqqSqqr3JvLG/ucOvsK2zxMPNzsO/wLPAw8S6wbTJxKyvt66zusC+tK6urKepqrGppqmxprStqq+trbGusq20u6W3s6ysrqiroKOesberqq25tqS1taSqp6ysqq2gqKansbGkp6WhoayWqqGTm6CmnqOiqqOsop6msbasrKKlopqpqq6pnKGlpKSZoJmWj5idk4GCkImFnaCNi5COnJGTjYWOmaWbk5KbjJOSkZSjmpyai4+LjHyGgoKBenWBg4F+dXeLood4al5fbmZXZYdkTkBnkkxFYnpXYlhSZlVNVlZVVE9cXWFWTE9qWFZWSEpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIdCSUlElpCupKGqr5ioqK21qrWxqqWrqqm9wMC4urS8taazr8TJy9K/wbu4v7/DusK6wcSusbWytLzBvrOxr62srae3qqWtsKu4rqewr66xq7WqtrWntLerrKSqqpyknrSzqKiks7Sfta2hqqirqKunn6urqLm2qaqqqqKpn62bkaqhnaCkoqaiqp6cprSup6WpoqOYpKanqpyipKOgmZifkY6PmY1/h4yHhJ6eiYaMjJGRk4+FiJajmo6Om5KSkI+Sn5iZl42LhIB0h4J/fnh1g397eH5/iJ2PcHFmZnB3XGF0iGpPXZhWSG15VWRWU2RQTVVVVVFPWFtiVklRalVXVEdPWFVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UyMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyQGY9Tlg/Qyw/TFRfL0lrN1JGO5WMr6CkqqyZqaOtrrK0r6qkr6mou7+8wbKwua2itq/Ix8fQwL+9urzDvrvEwsC/rrKzs7a9vMGxsrSrtKmltamlrbOyuK6hrLSxr7G5q7muqq63q6qeqqugo6G1raihn6+yobSqn6inqqKqoaGsrai9rquuraGnqJ+smY+wopiioKinnqebmamwqaKfrKKhkqGioqeZmammmJiZnY+Lh5WIfY6GhIWkl4aDhI2HkJCShYaWoZeIkZ2Rk5CNkZ2VmI+LhoZ4dIF/fXR4eoB7dXR7a4KHpHZpXmVrgHVniIt8UlZwX0t4c1RkU1FfTU1TWmZOTVdZZVlHU2pSUj5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzOPjbGgpKWqo6SirKazsrGopLCnqri/wb2xqbqqp62wycbH0MO+wL25v8C9ybzCuLGwtbK6vLnAs7W8rLmso7Smpquxtbexpaa5tK20vK+8pa2ttqutnKmvpJ+krKqonJ2qsqSzqJqrp6mkqJ2iqaepvau0sK6dqaSgr5yas6KWpJulpJ+lmpqoqqWemqmhm5GboKSdmZapqpGZmpOQi4KPhX6Qg4CIn4+HgX+NiJKQkIWClZuUhpOhjZSRi5Gbk5aHin+Acnp5fXtndnx7dXFyfmqGeYWIZF9nY3KFe21neV1eVkJXe21UYlBSWUtMTnB0XUlaW2hZRlZnT0M+S09EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpGwmJ+fqaSioauktrKxpKmwpq25wr23saS5rKmosMLIyMzCt72/tbjBusi2w7W0s7Wyvbm6vbauuba/rKKzpqqqrrS2s6ibubuosb6yuqCutLapq5+tsaOcpaipo52bpbCmr6Cfqqmnoambo6igrbynrrGuoaqipK6enq2mmJ+aoaKbn5uZo6qimpmjo5WWlKChlpuWpqyMn5KPkYyCioCAj4F7mpWNin2AjIeRkI2KhZOYkYaTo4qSkYeQmZCUgYh9emx9dnh4Ynp6cnBxdHhqgnVrgmdjZ2Fuc45tYmpvX3BBXXlrVl5OUVFLSU1TWVZNXF5sV0VYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl0+I5GWrJifl6ejoZ+no7evraKvr6isuMO7tK6gua+rp7O6x8rHv7jCva+0v7fEtsOysLqxssC2u723qrm4vqqktKaoqa+tuK+nl7i8o62+tLShrbi1p6aosLOgnqWlp6ClmZ6sp6ieoKqvp6Cml6Kon7C4n6Oxr6GroayknKenqJqbm5+ilZycmp2pppabnqiRmJKZnZOZlqGqkZuKjpCHfYd+go58fKGNjYl6hI2Fi46NhYmTmo6IlJ+JkJWCjJeNkXyFfHRwfHFzc194eGpvcXFwa4BzZHpsZ2VjYWaHgGBbcmpyTU6AaVhaTVFMS0hQUlBHTVtfb1RFWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsn56ho6C2q7CjtLOpqbrFt7OuobitrauvtcXHwLe/wrmwtb23v7u+sKy+sLO/srzCuKq7urinp7Snp6qvq7KvpJe7taSrurWvnrG5r6mlp6+ynKGkoKSjoJabr6WhnqKor6GgoZKjpKK2sKGmsaufrKOumJ2qpaifmJqdo5Oam5qdpaqam5ullZSXlZyOk5eiqaKRiouQhnqEfoSLeo+Xio2He4OIhImNj4WPk5iMjpWZi4+WfoaXjI96gXtwcnZub3NeeHdlbGxsa2qFbmZyaWplaF1kc4FgW2t2aVpKf15bWE9PS0hIUlVHMzldXmxQRVlVWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFRdaEQuPDJkVywylKGhlpSbqpyjoaKhtqmtoLu3pay+xbSwr6O1r6ysrrTDw7yzv7q3sbO5uLq4uq+uwLOzuK+/wLetvbq1paKyqaepsamrsJ+Zv7Skp7S1qJ6yvKmopamvrJmip5ykpZSXoLGkmZ6kqamcop+SpKCkuKmkp66mnqWhqJOgqaKhoZmbnZ+RmZuWn6Gqm5qYoJSRlJeajpOTpKikkImKj4Z6hHuEhn2djYqLh3uChYeIipKFlpKSi5CVlI6NlHuDmI+Ld358bHRybGtzYXd1aGhqaGdwhmhoaWRmaWlgamNqaFtme2NgU3RUXFtSTEpGSU9TQCEqaF5pTERXVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp6ipJGOpKeZnJ6do7Ssp6q6tqesw8G4sayjtq6nra63wL+8ssK2sK6ytra5tratqr2zrrKxvL+3r7u7saWftamlpLOmqK2cnMCqp6Wvs6qstbueqaqrsaWYnqqdpqSRmKWsoZidpKmhm6Gblp+dp7WmsKquoaGdnqGVoKagoqCam5mbkpidk6WdrKGXlp2Uk42Vl4uPmJupoJKJiouJeYV3gYKBnYeLg4l+gIWIh4aRhJeUj46PkZGRjJN7g5WPhnN+fmZ5b2pqa2Z0c2tjZ2RkdoFjZWZmZWppY2tyW19ZXWxkYU5pWFpgVkpHSEtNUlg+OV9saEhDVVRdW0lJR0ZBLjw/OUE4OVJHQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyssMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao6CPjKyhlpaglqSzsaKyvbahscW8u7Kxo7esqq2puLy7uq3Asa6urravs7izqau5sa+us7a6tq+4vaymnrSpn5+voqitm6G/n7CjrrGvt661nq2vra2imZ2nqaWflZqnpZ+YpKKonZqfmpOcnqyvprqorqKhmpuemZ6kmqSdl56Ym5SYn5KolaqnmpOampKMlZmNlJSbqqeOjoqKj3uCc4GBipiFh3yJioaGioyJkoWVm5OSjo+Rl46Qf4CNjoNvgX9meW1na2lmcHJrXGdjY3SBYmZnam5sZ2pqaG5dbGxycGBUY2ljZllJRkxNT1hSUVVhZYBVQVdTWVRHSUZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlBMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyY0kaGbjY6vnZiToZqpsa+fub+1oLTCu766saa3r6etpLe4t7esu66sqqu3qrO3rqaytbKuqbC2trCztbqmqZ+1p5ydqKCnq5qnvZespK6wtrWsrZ+xrbCpopuco6uom5SbpqOdmqmipJaan5uQm6Sqq6q8n6ekoJiamZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJiagJaKopB5h5SNg21pf3eDcWyGi4Z9hYyHcV5jYWeEmIVrio2UknR3i4R+g5CAZ4eAZ3VoZVdcaHNuTVBpY2dzhWhfZWZubWpdYGGKj4OEZU5LRDlHVGheSkdQUFVVTEhTYXB0ZUZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsLDA4PUc3MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoukmYaVsJuak6Cbqq2qo73Fr6m3wre9va2mt7ClqqK3s7KysLmsqaastKavtKKpt7a2qKestrKutK2zoamfsqmdoaOZpKWYq7mTpaWvs7etrqWprquspaGenKGnppuWoKWkm5unpp2Tnp6Xj52nqaS2sKSjop2WmJeXo4ihjpKahqGHk5ygf6V/paqekpKakYiEc3iNjoWIoXaKjWmXiGZ+c3igb4iHhH6PfX+hoKCZgH2HnnOGjnWbimyHgYNtaWVjemxyYVOFbWJsaZhxWGlxcIhZXmlbbGxbiHJuenKFZoaEWl9HTj9HX01FUlZWUVFSV1VnXU1WSFJST0ZIRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiKp5eDnKudmJidn6qpp6q/w6+xury2wL+qpbewqKylsrSurrK1qailsK2ltLKbrbW2taanqLKwrLKnrZ2poLCnn6OimJ+hmqyzk6Olpba9pq2nq6qsqKWhoJigpqOZmKWio5icpKiWk6Kbk5Kjpaaht6SkoKOYlZOXk5yIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZzGeXixpbeXZYDAnL95hIV6koR8kJCRynKXu5zFenK1p7qQe4BtlrGrsHlobFixrm5labySvG5nem9yj9h+U2tjtrJ+gXKUc5qhqpBXT1diT1ZORlVbWFFRU41dV1tRQVxEUU5FSEk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT46Qjw/QTg6Sj41MioyMkJFLy4zMi4rLygtLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKeTgaeqn5ecnqWssqmwwr2ytcC1tr7Bq6e0rKyopq6zqa+1sqanpbSlp7itnLOytqulpKexraywpqqdpqOvoqCfnZWZnpytq5Odop+zuqOqqaKtrqWhnJqaoqefl5qnn56XnqankZymmZOdoaaiobGjn5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUca6hpH54u31soZB2sV9qtFulgGWckWBng3tnf2p4a6llvnFnpot1sWp7sXh0kpRjbm2nbluEoUVoZoeWRXWcYH5nfKSnglpgjKtogJV4eWqnN0qvXFhTbGRbS05YX1xXVjtOik9XVy9JVFNKREZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MDMuMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYOtp6Weo6Sqsbestb2/sLbEsre6waapsKquqKiwrqOwua6jpK2yo6m4p56zs7CjpaCprK+rr6annqOhr5qhm5aUlpqaq6SVmqGftLOiq5yjra2gnpmWoKKonJido5+bmaGmpI+copmXoJ+qnqamoJqgoZaVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH5rgqZ7goaIk5STd6tna7Fcq3qNhpR0iXKPh4B/iJCXeIKBi5eLg6CPhLB2d59xbGxsfItOpFhIYmKZfmNopmB5cnVTk4deUaltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrJ7WFhBI01oRkNFQUBBMTk+ODg6ODQ7OTk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE9PFN9bjMrWGpcT1hNX2dXN0o4YVU1MBuUoJWIs6amoa+pp7Ksqbu2wrC7wa24t7+prK2traWssamgrruqoKezrKOrtKOmsrKno6Kep6qxp7CnpZ2enq6VnpmUlJSXnayhmZmkqLWvoqqPqqiqm52Vl6Clp5menaOfm5+jpaOVm56XmZyiqZummpyboqCXk5GSk52D1ZOZuXCwwX7FhnzWlJu7fJqVpY+NnY2ke46IpIOlgnqseY+dVq96iH6farlauXaGhH6mgpR7l3qqeI2dj3qxbo6EdJG8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiFgIl8Y6QzQp12XVBqaWNQQFhnWmRhSkhNcVBcUU9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6O0RIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFQNzElm6KUmLKoqKa0qqW0qaS8t8Gwub+xtbS6srSnsK+ir7Kln621qJqnuK2ir7Cfs7SwoKSen6apsKi0qKOanJ2qlZiXlZWTlaCpnJmWp62wqaOfj62jqJadlpuhpZ+XoaGioZqhoqebnqCelJiapqCbp5Wbm5+hmJCSlJCdiLJuaLVxq4dujqZytHNytnual6SLj52Non+RoaZ/sXaDkdLSdlyue4V/pG+bqqZrh4V9rX2YmY57sXGSno54s2WXdISeb55nlFHIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFPa2BsaFBWR0o5PVVSWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTDYyMKKdkqWxraOrvK2mtKantru8srq+tra0ubiypLSyoLCxop6rr6OXpritpLGwnLS3qaClnqGppLGnrKmjmZqZp52Vk5eXkJGhpp+Vk6WqsKailpOtoKaSlKCbpKWelJqlp6Gao5+tmaCenpCVm6GdnKWVnZWaop+VmJWRmoWse3eodqONiIapb62KgqeDmJihiZKai6J/k5qJroV/grNccrNSrn2CgqR/cdd9eIV+j52Gmpl2r4aHkZyHd7RhmmWagoKVbZJasFhLmnWYeWZgrV52d4homIhsXa93lZ6PeGw1eciusl9CVG9eZ2BFUGxgcG1WVk0uZmVpU1lQO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEg6OTmgnpWgubCXtMKtqLOoqbK6t7O3vrm3sbS6tKS3sp6zrJ+fqKuelKe1q6ivsaqts6ObqaCfp6G1pqapopidlKSgk5Kbl5GUoaSakpCmra+moZWZqqCjj5GhmKekoJSapaidnKSerZ2hnJ+Mk56anaCXmZuWl6KglJePpp2GqX19pXihjo2CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTYf3aIdKiBjpuMkqR7lI+fhHuyXp1koH6DlW2SXatbWpOAkX9oZ6pkcnuBa5iHc16rWomgjmtvZU9KQ6FcW0x0XWJnTlthX3JzX0tXN0qbllhIRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDUuOj4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84op6amsGrl7TCrqutqaW0sLewtb65ubGwtLmourOfr6SdpKamnpOpsKmvqbSrqa6hmKCgpqSjuaKiq6CWm5Ghn5STnpmTl56fkIyMqLCwp56Xm6imoIySpJamqqeUmKmnnZ6goq2koZ6gjJShmJ+fkZ2XnJWeoZWWjaqcj65tcrRzqYt1iqdztHhzs4CRpKOSnI6JpIeQd7hwjXuLomprtlqhhWWXl2mhoqdtlHK0dJOZfrJqhZGHrWp1s2GdZqJvh5Nrl12tYE2hfIeRUnOjbHl/fm+Yh3Jdr1Y8nHdmVG9uLlynT2NTa2VibVpjXWFwe2NUW1I+PW5wM0NCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKacm568oZuywK6tq6ynt6m3r7W/tLuvrra1qsC1qKmhm6WjoZyRqamntaKyp62poJecp5+kq7idoqyalZmOo6KVjJ2gm5icn5GTlKq2sKiZlZysqZeMlKWXo6yikZarsaOfnqarsZmhoo+Yopafm5WclqGTnamclI+qmYfUkpq7c7DDgMOGfdWWm7h4iJCYjJeLjKeIeqS2dX53dsKCmrJgg7p5wHx1uGO1gYyHqX2VgaupcXt/dLyIp6BpnWGmjq+hfox1h6p9vm9zvHSyg3V4gYpumohybo2kdL1ed31aYXm8a1pWXGp5XmphZWdjbXhvWVxaQ0BAc0BDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQj1FODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56ivaGXssOwraqrrLGnt6+2w7C4sK25rq3AsKujop6joZybkKijqrKktKWspJ6VmqqYpqy4nKKtl5Sfj6Sfkoycop2XnZqRlpKvubKslpikqKeUkJakm6OtnpGgqKufmp+oo7SfoqSOp6KUopqcl5WjmJCvn5KUqZ6EkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSfwbu9mnuBsahxgHORuYN9h4aMh418ioeNmHyku7m9nHR5tKN0d5d2dLB1mZ5mh2qNtXRycXe2jF5/en2JaIN5bnpji6xwdYV/WFunakVlWlRmYGNeY1FnZ3BsdUNOUU1EOlpNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlNZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzkqT15dPSs6VlUnPjs8p56hosCllrXDtKyrqKyrqbqusMWts7Kttqazt6upoaGlnqCdmZOqo6yppbWnp5+blaCjnaukvaahqZaTm5Chm5GPoaehkpyXlJiUsbW3rZmepKSii5KSppulqpuVqaWlm5mhqKWnpKqgka2el6Sel5eXnZ6Pr6iTm6WhjWp9aZuld4ZyfZqOdHlkh3u9vsC6b5ODcpaIYXNrWl6biWBjiI+Va2CAlmRunndjlmyAmpWUZV5gYnCZiGlyi32GlWdrf3J0eH1/Ylt3dIFoUFxtg317i2tYa3qCc0pKb4ZwTnRMRVhdZ2FMW1dnY19PW210aXFSUURFTTtHST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTX1Y0KVBfTCgzPltPJz8yPqmgqKLCo5u1urajrKWup6e1sazIq6+yqrOivbCxpZ+ip52jm5mZq6auo6S0qKWbl5SgmqWtqL2nqKSUk5uVn5mSl6SpqJCekZCYnLCyv6ycp56noomTkamaqKOamqugo5mao6eso6Cropqxm5SnoJaUnZ+dlrCkl6CnmJuQnJyhoZekoZmcmZmZj5WBZ219cXeSmJSShoy2q42GmJWOioyYloeUlYuEk5SSiY6TlJiUmJaZn6GZmpOgnI2CeqWFbWt9kH2AdYqKgXGCeHl2dYl/fIpqc4F0g3Vld313a296bV9kXXBoTVlaZmpgV1pveG1tZlVQRlM5T1pNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSiw8LUCzobOiwKGksrK2oKmlsqelsLSqyKqsr6W0pcCns6CdpKSco5WVn6qmrKKjtqufmJaVn5etqaXAnqujlJGbl52XkpShnp6ip5OSmainssSwm6udq5+QlpaonaqcnJ+smKGbnKKkr6eipaefrpiXp52ZmaCenZyvoJyhpZSWkZeTnp+UoZ2XoI6Wk4qKjY6XrpB8lpyDkoKLq6mFgJmXiYSQnoh6hJCIhpqSiIeKlo+bl42Ql52jlZiSkJyNf45nobOvhYqFdnuSin13eXpvZnmPgYCJanWBeYhzaXN/e3aDh4JqdWR6ZmBqZWNkZmtZbHtvaWtdU0xQRF5URkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9iY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RcUTA1TlsxN0U0W0c1PCxAtKC5sL+srK+ysaCqprKtoqyzr8Svqaqisa27orObn6aioZyYl6elqaWkpbK1npSTnZmZr6WtvqCropCRnZmZlJGVoZyXqJyEn6uso7TItKCqpKuXlpeapp2pm5+kq5Sen52gqq+ppaOroq+bn6CgmKSenJ6crqOYnqeSlpWbkaOXlqecmpZlgpJ8ZX6NmpBjeY5taGt7kqWramWbmH1nhoplZWloe46ij2xojZiRo3draoqYop6Xc2tteoSOiHpYZl6Gg15tjIqBdlxoc3d2kYCIgm13gXh/c215hHR2iYiPg3xqh1lebHRkXnOJaWt8cGtkX1JOWElkWEFKND5GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaagur26r6y0saqlqK2usKatrbC8sKimo62usJ6rlp+jnaGZmaaqnK2jpaepsq2elKOPoq+ltrmlrqKOjpqhmZOSmqCZmaWVfKauo6i0xLiloqevn52VnqKeo5yjqaiSn6Gdoaqwq6ukqqCqm6efp6CslqCbpa+jlpuplJ+bmZGjlZypl519vYOIcrRyhJ2GrWh4ucS4cZSjo3qmmZlyq4J8y8DAu3GMo4iDnnyXmYmdwL2Blp2djJzBwXyCfJONmsPAfWylsm+MgW/Ken+bdpCDjoF1eYCAeXF6f4dwd4WMk3lteJRjZ2B4ZGBlgmJec2dsZGRZTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhDQ0JDRUhJS01OUFNWWV5fX2FfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9WQUI7LziWo7nDtbCwwKmolKOvqLCuraays66ppKWmr6qeq5iaop+cmqqmoZyroqSoo6S0pJyikqWtq7ezp66ikZCZnKWSkZ+hmJugnYinraWrrsDAsaGpr6mWkp+dopmipKqjk6CinZ6tr6qtp6OjqKGlpZ2sqJGjmqisqZqcp5uqn5SWo5SfoZWbf86UeHqkgXmVlptfro9ejqiCo6F8p5abc6uDgK9eY42qe6iHhaB0l5OIs2OCq4agjY2zaoSvdX2XiLdhg61ao81ukHZ72nt/mXB9h5J2fWV6h3Z2a3yHbn2GkZF+bYOQYHJtcGhgYHpkXHFnaWRnYFJUU1ddS09ENUFIREQ4PjY7QD9BOz03QD4+P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqets6umsqurqqKrpq6qn6abmaWXnKKvn6CeqKeipaCfsKuanZWmrqywqqirn5SRmp+kko+epJeep6Ofrqassai/x7OoqbGulpKdnKGXn6mqn5Whn52drrCprKqcqKiloquSrLKWpKGqqZ2ipaSfrp+RmKWXnpmTk5GXoHGFjJd1haiGcbF9nnKsf6KfgaWPnnargn2tf5xzrX+sh4afdpmSe3yXfqqHooySjJ1+q3uJlJCfgHutV53Fe49wk8F9gZVtdW+MbWV2ZIVuYXducm+JipKPg26SkWZwdXVxYWdtZV9vaWlvZ2RYVF1hWlJTQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXlxbWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08KD4xKTNXQEYhHEc6QzEuK7DTxsaytKCdo46joqKsr7auqLGlqKmmraurpqGjnZmilZ+lq5+hpZ+oqKKenbCsl5qWqKeuq6emp56XlJmioZKUoK2bnaeksK2lrbWrus2xraauq5aVnJ2imZ6urJyXoJqen6mzq6urm6yrpaOsmq6xoaerraWXpKmnp6+gkZWiopiTkISkaqR1iXqpdHqycIKmipmMcYmgm4ekYGBSq4V/roObdq2CqIaFn3uZl4V6ZoCjiaSZhoKjfal+gpaHrl98qVaeo5KBeqOfgHvDr8WLcq+zs7lxYqmvwnRojIyYjoJunJVxb3p4eXBtZ2VlcnBmfWpjXVdgalhZVU1NUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmFhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioyUEtMIyBBOUQ0LCfDydbUv6GZq6egr6KesLSwrqmsoqelqKqrqaSmoJuknp2lp6ejnKuZoqygo5+voZyakqukta+uoKeanZWTpqKRm6KooKCmnbGmpqmyrbfIsrWqq6mWkZ2copmgpbOdmqGUnZ+nrK2ksJutq6OjqqGyraGpsrChmainrK2zoZGUoaWWmZB7qmyehId1q3l8sG+CpYyJn5aWoJWB0ri0uMmBgbJfYJSpg6WIh6B6mZWaeKrJdJmklaipkZOajYGciprGxnlnoYKldIGfjoJ9r11wtGKwdUujh22nR4KTZI+QnpF8cZmVgXF8dX58blxmanNxZoFrX2FZZG5cX1lJTU1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKWinLK4rKqhpZqnpKmrqqafpqaYqqOfrqudpaCsmp6ppZyntp6il5OpqrWyrJulnKCUj6WskZqcp6OhqqeuoqWnqrC1w7GzqqyolIqXnKWboaOupZehlZmcpqatnLGerqmnn6yjtqygsbiunZqtprCxsKKSlqahmJ6Ngp1OeJqBf596hKN9g6SFh6afnZ+UhLh7e3m5gn/MxsK2eJuhkYuffpqWl4p2n5eKpZikqX+whZ2GoISsfZqVY6ZtpHCPhZCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Uk413e3OGf3Fcbm54cmqCb1tkYGlvY2RdS0xRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZZWVpbXF9fXl1fX11aWlpYVVNPSEA4ODIuLCouKyonJz9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmKmrpKu5qq6fm6GssrOlnqCVpa2trqqnnKanm6OoobOuoqmmsqCYqaSUo7aiopWXoqm0uKOboZyiko+hsZmenKemoaKwrp2mqaO2s8WxramsqZGHkJyonaKknKWXnpmamqalq5uwoq+lppivpLutoba1rJycs7C2r7CklpyunqKchY/RtcO3eYeOhZGTkICmeZShd4ygkoSlgYpxqoaFtG5yapqknJWKn32YmYaHj3Ovgqaco46mi5Odi5aQm25xsl2ldJN6nGyZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2NjpWOen55kINuanlpenNvgXVeZWVvbmZoYEpbWFg8SEhAVTRARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtbWlhVUlJRRjoyMjMvLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWScoyKrb6/vLq0npanpK21oaKZlKKnpq6qq5imo5+loaG2p6Oop7CjlKujjqStop2Qmpqqs7OknKScqJGUlq6fn56npJ2onbabo6uktqzEsKmrqKGMhI6coqCmo5aZmp2ZnJmnpqeZraivo6WbrKa9rJS8r6yeoa6xt6mwpJmnr6GmlnmokX18sHeKgKSliJxtsnChh618oY+DqJWYgKyJha2FoJWqoKKXhp+BmpWAe5J+q4Cdm5aLq3idoZKKlJKBeq9epIF9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWRppmDlo6ajnx8hJmAa25/Y390boB6YGhmcW9paGdDWWFbPktVM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFSU1NWWl1fYWBgYWFeXVtaWFNQT05JNzA0Mi4qLEFUVlZWVVRVVVVVVFRVVFRUVldXWFZVVVFIRklKIygovZOag6jFwrbAs56arKCtt6WjjpukoqCwr6qfpaCerZmeuaGjq6CvqZmuoZCrqKOWiZqQrrCspp6lm6yXl4+soaGdpaCapZ2umKKpp7eqwa+kqaOei4GOm5qfpp6SlJmblZuapqWmm6qsraSln6movqSWwqupoaCqsLepq6Sesq2mqJd1r36Qi5yFh366rYqZZbCNZZWtfaGPhKeVmoGsioSwhaaapKGikYWhXGxqgbNgf617e4OBsW1nb5mZjIixW361XKSEa8iiZJ+Ae7xYdrRZsn1SroB6rFiAoW6Yj6icjJiSmpp8epGgf2R1f2OGeHWBfWJqZ3FuZ2ZlUFVkXEFVYD5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFFSVFdaXmBgYGBiXl9cW1hVUE5KRkM1NTMuL0BVWVhXWFdYWFdXWFdWV1dWV1hXV1hZWlpbXFhXV0dCO9KfsrG3vbqzwbKinKympLWpoIqaoJ6cs7Opn6ShnraZoLSoqqyer62drJuVr6ehjoibjq+rqKahpZmukpiPqZminaSemaOjpZmho6qzqr2vpKeenY9+i5uWoaCYj5GanJKamKmgo5qprqimpqKlqLuen8Wmo6efqbOzqqyjnbqrqquUgKmSo6+Om4CHpJeZkIKAuMO6g46ck4Snl5yCrIqCr4innJumq5F/1r3CqmKjv719fqOCg9e6uLWFlZODnr2+hG2jgm+rhGycf3qysMeDaauwvax4d6K+vHOAlo6nnZGckpqge4OTnnxjfntlj2d6g3xhbGZra2NRYVtTalxAVWJDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzc7PkFDRkdJS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbOzsL+4sbyyopyupqWypp2LmKXAqriyqKLAp6iznZ+ynbqon62vpaeUlLCrl4yDm5GupaKsoKOcqqCXi6OSpp6mm5qhqaOZoKKsrqq6raijm5eTfYiZkaabko+RmJmPmJSpm6GZqqmhq6ego6q6nqjDop+toqmysqitp564paysmXN2qqW4hmSJoHBorpGLkW5ud6SQmZ+Bda6ZlHCPi3GVqKScmK+kc21tbGaLeG9ugplxgXpqcWlnipeWmHFpaYaIZ3GGZF2IYmpvWVxmfXamX2FxjpFuZWR/jZOPopmZmpOZoX2JkZh3Zoh4aY9se4B6ZW1kZ21jS2RYSmtaOlFmRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1dXWV1eXl1cXFxdXl1eXVtbVVdeqZSss6m5uLKzqqmhrp6js6qYkr+zxcq/t6qfwa2upKKorJ+6o6Suq62mjpeuqY+LhZWWrZ6lqaCdpKOgkYulkqeZqJmXo6uhl52mpqiwu6usmpuSknyElo2lmI2RkZmVjpiWqZagmaqjnLGmnaKruZ+vwKajsaSrrq+oq6mltaKstpWKoaimt52JlqOZiKqbkZWdkqmzmZqjqqCylqKhnZ+inKGlopWsp42Tk4yHk5ydlZGZk5mRj5WFgaWbmJaOi5SUjJCHhH5niX50gnVzh4pwp2x6k5CTkoCBjY+Qj52VopeamaWEiZeQdGqRd3KMeHh9emptZWRwZVVgWUBqXEhkYlBZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVV1leYGFjXV5UUUtFQz45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKaWqKqktLaurqGwo62foLaxkI6syL7GvLqro6afnaefsamjtqedqbSmqJGYrKKLh4mPnKeVq6OfmKeenpKUo5eomqeZlKaipZGbp5mitrqoqpiaj4x8gZSLoZSKlZGWkZCUmKaQoJuqoJ22o52mq7enrsCtorWlrq2uqqensbafrLqYkaWkpraikp6noI6qoI6Tn6OrsJqgo7CosJejoJyjqp6enpyWrJ6TmqKblJCWq5qOmZmXkZafkYihnpaVhpKNkY6Vi4F+ZYuFdYZ1eIeCc5xqhY+Sk5CJfYuVkpKYlKOUn5mkhYmbin1zl3R8jIBzfH9qb2VfcWpgW2BabmRRYWVRWjpHR0U+Mj0+OS8qJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1RVWmBgaWFlVlBLQUNCOjlFTVZbXl5bWlxbW1tcXV1eX11eX2BhYmNhYWFgYmJiZGJcW2OXlaOnoq+xq66jqaasn6e1qpCPnaW1vbCuraOkm3yfpLKkpbGpl5u5pqOTmaqcjoaKiZyjj62dopWon6CSlpmbrouolY+omqqNmamQn7m3pKWZnIyIeYKUjJuTipWSlJGNkpejjZ+fqZ6fuKN/g6+1oq6udKK7obGedneeqK+4k3Sro56JgKt/ZFxidqCPpZ+EmH1tkrOco6etqqNlnp+Sc3mamHCAmKmYbX+iqIplnKadkpiYlo2SnJCGnpuRl4SSh4+QkomFd2qOhnaGcHuFf39gaIeJk5GLWnWUkGdokI9zfKicnGZ7m4qFeZlqhoyEb3qAa3JlYHdwbGtpXGZlYmJxVFs+Tk5OU0c+QFVEOjEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNVVVldYGhmZ1hRSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6Cur6yrqaWoraKnraSSlqu2sbOnm6uorZh0jZ+xoKirp5SXuaCgj5yknZF/iYibnoyrmaKVp6GdjpaSnoV1rY+Ip5uqkpilipy7tKegmZiLiXV3k42Wk4qTkZGUjZCUoY+coaeZnLKVgIybtJyyjJKOuqWffaeheaCstX+NjaWeg4uGkLCqr42Ll6SbeoGLrIWcnaGnqKeHlYWYd6WbeoicgJengoF7nLN6ioahmJqVmJaCkZeXhJuZY3uHkIWPkJKLg21wjod5gHB/gIR+hXOFg5SReJZoknSgmnV9mYSjoImYf5WNhoWaa4+Oh2x5fHJxaGV5cGpsa1xlbGtmdV1eSVRMUkBFNi5aVVU3KSEwOT4+NzQzNTY4Ozo9Pj5AREk/SUVKTEdTWFtZXGJhaGZaUUg5RUw7PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop+mrK2rqKygp7CmpqmlmZSvyL+xopeoqrefkYWerZynoqCOkL6emoyfmqCQfIaPmJeHrJyilp+gkYyTiYWAkqeNh6OepJWZn4efurKnnZuSjoVxdpCJlZCKlJCPm4yQkqCSmKGklp6rh5+0ibSZrYrKh6msiLaFjK+BrquCqIymmI2dfaiPc3t3nI+nl2iVpHm0jJ+epqeSmMKBf6uImKFynoCapX2XhZWzgaF9oZShkJiXgY+UnIuZkot9hZOHjZaSiYNtc4+FfnlxhoCDe4N0hICWgI/FZn+ph4+ja56FpJ2EmoGOkImMmnGPlIZpeXZ8eGhpdnJoaGxeZHBtZ25ZZ0ddUk0zRTU3TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmlsXFFFPUtNQEpjWF1jZmhnYmJiYmRjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqKfr6eoqKWrn6S3sKmrppqUoKOkrKWYpqy5pLCBoqmdpp6diZS9mZONoZKej3mEl5aRh6uZm5uZoYSOjHeanI+fkIiepZyXmpmHo7mtpJqcjIx+Ym2Pi5OQjZCNjZiMkZOgj5WhoZmhp36hp4etnZ+WrY+dnJyQhH+gjKishaONqZmMmn+idYGZlGuCrXZNq3iHjZyRmqimgKmrfYOhe3qnap5/kmtnl4aYt4mefm5gZFmDl4CNfGRoi3KZfXmWbF19l21fUnCDXF9reIJfWGSBfIN/l3CnqmuDo25ypXCfhaBqZ6BtXHCOfmdaYISBY1hRcHdmbnVza2pwXmtxbmxqWWlPXVlGOUE1SERfbDUsSURSTU49ODQ4NTk7NkA7Oz5CUD5RUkxNQkpcXV9XXV5idWBNRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5WdoLigqaOmrJGhtbuqrqKZmKGipa2voZ6wtqSpk6KhoKecmo6ZtJmQi5+MlYt1gZSSjIqmlZWZnp5+koWFrKSHm5CKmaqZm5uSiKaxp6GVmoiJgGluiIeLjo6Ki42SjJGTo42Un5+coqR/k4GPoqCTn3aclY+ngZ+lfoWnqoKleIl8hJp+onBzlIiWfJ+NeW2Gm4yZj5uomY6HnXuConN2pmaefnekX5h6fZR0om6Yt7S6dJOIg4C1qGSBxrh7cJW2jHKAmqNjc6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGGdmbSXc32Yn7N1dFyesoNrY3B1d3JpcFlsbXNzZ11qXmJMRT1ENlFCWnMzPVNHYEpSPTwzOTU6OTZEOztASlA/VU1PUUBFX19bWlhgYHxkSEM4TVdVV2JhWmVma2tiYmVhZGRgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOVlKO3mKqbk5+NpLe0ra2gmqKdpKOmr52cs6+tlJmimqGlmZuVn6ubi4iSeIuFcYCWjYmQoY+SlJ2YfZCJjaihh5eOiZKklZybjYypqKWej5eHhH5qe4d+fZCNg4uRkYmQlKGDl56gnZ+ei4l3nJihjJ9xoYqHqYeapI6Vpah8rYx+eqCZeqOTeIF0loiNnH2Wn4abjpibpYWiZKF8iJaQm41tnmibjm+amXqAi6d9cml0q4Ofg3SqaJWaXZuFdoWeZ6prgLhmXKhwgZxglYxep3Z1h4h+nmiadYaTkpeOgJ9vmpFup5peqX95u2t+qlyOhF20aF1ucnp4bGpccWt5emRhZ1hiQlJGTzdXQ1JvNUxbW19OWkRBMjUxPDo3SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4mptJqniGOUm6u6sa+snqacnKmgn6+cnrKprp+YpZuhoJmXl6CjmYaJjWqIgHJ7l4iLlpaEkZWYkHqKhJWknIqUj4aMn5OenYmRqaOgmoySioCAaYGGeX+XjHuJjo6IkJebf5Sinp+hk5hyaJ+Jno6LcJKMgamGmJ2hpZ6le7Cto6K4l3ejs6OkgImUeZ17q5l+oo6cmpaIl3GhfIWNr7V9a5qRoXl+mLWipKuohJl8m32em390qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJqcXuObICIhJl1m3iGibGzf4Cbk6d3g55udH6VcJp0a6RelXZIZWRhdHJ/f29mYWxpd3xlZWJRX1ddVVdAWkZRaEVUV11iWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQjxVX2JaZWlWZ2htb2JmZ15hYVxdXmBoYl9lY3ZsXWVnZmtkZWxpaWtpk5yAsK2ZhFNeoKazubKyqZqijJysnJyqlaKtpaOpkKCfnpualpmhnZaIh4l3hoFveZWFkZuLfJGTlohygIiRoZtzkJCBiZqWoZuFj6qcm5WLi4p8g2yEhXGCoYx4ho2IiJOZlnyTpKCeooithn21hI2dnHullnqpgJSaj4memnunaHdtfpl0oXNyfJ6GmXCTg659pIOlnZmAo29eqWd1omNvpWGc05B9e5l4c3NiooaQfqN0pJB2a4+zjGCCmIlzqrKovH93g21+v6aptF2bbXxwlm1/cqJyXaRnc6ZgaKZtm9SafoabcHt7mGycfHiYc26ppGdhZXpygIVsaGZkb3Z4aGFjU1xmUVJiSFlKVWFXVFxma1xlUUZDS01KS0JLRThPQFFOWFNZT1NRYGZmalJjd3l3SUZFY11lWmhqVGloam9jamdgY19dXV1faGJhaWV8ZF5kZ2RrZGpsZmhsaJeaf6+qVFxLfqmvsbOvsqObmYWZqaCipY+mqaGaq4ubmZmUmZOSoZiOh4V7cH2EaH2Pg5WbgHeRjo+Jb3+FjpKSbJeTfImSlKWXg4+rm5SSi4aJeYN2iIBugp+Gd4CThoiZo5h7lKKjmZ+Js6Gitot6rKekrqVwqYCZjoWAmY96pIChmYaYcp6EpK6vipeMgI2kjZWDraCTdrW2tcmhc5SLgZ9gnpepbXmWh6CbdKKId6B+k5eLgXBNZqOScJuHc6V7eXRhg4FrfqBrcWRfnHF9c5ZoeWmztbTGpnOYfXqda5ybq3aFm253eZhqmnt2mHNRRX2zX2p3bHqIZ2toY3V2cW9XX1RZaVBTaElXTVlUVl5pbG9WaFdOS0FKTUtISk9BUUtQZWNqbWV0cnN/eXxudYl7e1RRT2xeaVxraVJqaGlsZ2xmY2VfXF1dXmliZGlre19dZGdjamZvbWVpbGWhm4iupYNkP5Ohsqqur7WiopCAl6qio6aNpqifnqeEm5iXjpeQj5yTjoiDemp5h2WDjX+YoHl1j4mMgWmEhZGCjIWdjXmNjJemlISZqpiNkYuBiXqAfYt4cJChhnqBlYeJlqCWf5SkppuVlYNmbnicbKJke3Gld5uYcGamgJSJeqR6n5aDl3Oed4GKlZePuW6RiqJifZiglYhucmmqa3WgbW+mYJtpi5BploeblnWigX6aYIyGjXVwiGJooGWefmmbdW9jZoiBbXGiWV5aYqFsXYiLbnp9c3JkpW14omRnp2iZc4yZcKJwVYmQb6BfZqhVi15UmG5udGtzg25xaWx5dGtwUllXV2ZaVG1JWlBdSVhpaXNqWWxXUVJGVlxMWFNhVWlrX3d0e31wfHxyg3uAc3aNgIR2XlJyYmdjcGdQamhoa2xuaGRnX11eXWBqYmppdnVdXGNoY2pqc2xma21jnKOXpXlkc22Lpq2jqbCxpp+LgJirnZ+njaOinKSjgZaZlI6akIuYkI6Ke4dxgIhpi4t8mJtzdYl+kHtkg4eUiYqVmYJ8iIeYqJKBo62RhpCLgol+gICOcmmQpoR9h5ONiJmgj4iTqaWciKZ4lZt+pIiWi7GYnZCCr5efpHWThXipc6WPhJpupKKMkoSNg7tufaWvg4eFhpOVnJ98pXpyqJWglmeefm+sZJaKlpN3qG2qooGJdomDd6uRpohrkbBrdrOMqWuKhW1tn56RlF99q4uqdn5+i6Wedp98g6SVnaBqm4h4rGifroy2dHe+jaSTWoOnjqthdnN1cnx1cWNrf29obVRXW1ZhYl1rTV1SXkpebW93YFtxWVxgW2d0ZW5vcmNydGB3en55cnmDc4R/gXt7jIGDgHZieGRjbnJkUmtnaG9scmpmaWFgXlxha2JtbHpvXFxiaWJsandtZ2xuYpWkqZyBf52jlqmpnaimrqSZioKYrJqfpoqcpp6rnoWNm5CHnJGFko2MjXSHe4iEb42FfpiTdHSGc5KCbX+LkYeGk459e4KHmaePgKenj4GOiYWUdoKHkm5si6mBg4yUjomdn4mMlKmin45/dJOXiH6BeZSuon+BmnGPhneOiYJ9e3KnjHJ+fXqYlpuEkHl7f36HlJWTinaQmJ6gg3t9iWuMhVt5eXJ6cWlufpKJcYB1gY+Uk3GHhIJljH9fgICLd3VzlHVveW5th2yDhl51Z3eOZX+AhIyomn10e5VqiYhwgXZ9h3dubmiNdHp8mHiFXGxYeY9pb3hzcnB4eHBdbIdvamhXW2BXXWZrZFZjVV9SYHB5eW1rd2Zra2t3fXJydXRhb3ZidHuCeHV6gnWAgICBeYuFg317bn9sZHluXlduZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhrb2GNk7eopomgopqmo5ilnKuioYSEmK2SnqKKm6ibqpiDgpyMf5aUh46KiY1yg3yPfX6PhHuYj3RyhHGVhXt9kouGho+EeX6AiJulj3yoooyGkJCFlYKGjph2coSpho6SnZCJn56IjJumnp+qg4iNlZp+fomWraePkqWPd2+bjoF4kG5+qIVxfpVxa3B9gqCNgJOOi2hsXIKLi5uano5zlYuIcXRrgnd0gVlyboeRgX5/jGpdamV7hoSJgGBpeHqbe4KLgnWBhYFnd4qGamBvcYB1XnGJgIiOppSFZYuNg253i4Rxho96cWhpZnyEe5ZbXWtobnZcfHp4dm90c4NoXW6LbGxjWlpfW1lscVxfYVpfXmZ0f3x2cHVka2trfH1zfHl1ZW51aG18fnd6fHt5eoCAfm+FiYR7fXR+eXN/aFRccWlsdnB1Z2toZF1hWGtoa2txcm5XW2VubGdzeW9oamxgi4qpsKGPoqGanp2Xnpioo6J+g5mujqCViZ2jkaaVgHyYhn2SmYmJhoeKc36BjHaFi4KEl4pyb4BymIaDfpKDhIaJgHqBhI2coZGDqKKIeY6XiJSKi5yXhIN6rYKRmJqVip6dh4ihqZ6hoaOKh5ObnKOZlaqhp6afkpqGlIt6do2Ng6d+f5OQkpSdsqablZ+QjbGSl4OljIyVmp+JkJuCiJGKa3yOd3hlg4aRi3yJnoSHjJCJiYGFhJB3fHp0mqCJhoqdiYSTfn2KgH90bnKEgX12hYWJjqWQgoWMhoKMkIx9iIyKkYR6boSFfnqZa3NpYXSLcX57eHdweHWCXV5viGlvYF9aXV1TaHJWZF1dYm1odnx9dG9wZWtqaX99bnmAcmpwcWxngXtygoB4f31/hHptgoyGfHp4e316g3hOY3Zqc25wemVrZWNiYFt0ZnBncnFtVV1sdG1oeXpxZ2lrZYyHnLmelqGgmJSYmZSYpKGffH+arI+fjoagnYyeln15lYR8jpmKhoOEh255gYFzgYh+iZSEbWt+epeHg4OPfoCHhIV8h4WPnJ+TiKyghHOKkIaSkYudkX2Ne6qEjpOYlo+cl4eHm6SeoZmchYKSmpmYj5mmn6Scm4+Vf46HdHqGjYSle3yOkJGGmauinpSdkI6pjZCAnYyIk5mego+XfoeOg294hnJ1YH+EkIZ0jJmBg4+Dh4V/hYSVbnl2dJKiioyFmoSEjHN/iXx7cXF6hoJ6d4iNg5Gmj4WDjoCDiomKd4aJi41+cm2Agn1vaWxuaF56gGl+fXd2d3Z7eF1gcX5udWBjW11fUmduVWZbXmJraXZ6f3JsbWRramiBf2x0gmxsdXB6cIZ5boeAdoKAfoV2cYKNiH57fHx/e4KKYGh7anVpaYJkamNgaVxjdWhvYnVtbFVjcXllcHp7c2VqbW2LiZ62maCjn5KRlZiLmp+fn3t4n6eRnIuHpZWMmZl6e42GfYmRhIyCgoNufIB5c4GFfouSfWtofYKXiYGIjXt9hoSGfI+CkJ2dk4mpnYFxi4uMkoagoYqFjHyokYmQkpeTlpN4jKKen52VmH6AkJqYkouZoqCjmJWQmXyLgnd/go6GoH9+jIyPfJiloqKTmpGQpoyPgZqQiZKWm36Tkn6HjoF1dIJxd2F+gY6GcYuXfYmMcox/goWGj2h4cniMmJGPf5Z+iIlygYZ7e293eoqDeXiPi4KVpJOKhY97hoaHhHaDhImJfWhzfoF6fHJtbGhffnRpfXZ2dH1zgWtfYHR2cHdkY1lfX1JraVZmWmBhaWp2eYJyZ2xkbGhmgIFrbn5ob3Fsf3mHemyMgXOBgX6BdHaCjYZ/fHt/gX1/j2lyg250aWGHaGxiX3FWdG9sbWB4aG1XanR2Y3V6e3Jiam96iYyesZGlpJyOj5ePhpygm558d6WhjpiAjaOLiZqWeXyGiH+DiX+JgoF/cn97dHaDhX6LkXhnY32Gl4qCiot4fICNg3mWgpaZmI6XoZt/cIyCkZOGpZuHjImDppaFk4uWl5OSdpGdn6CXk5Z5fo6Xl42WmpyjnJeRk5l3jYOBdoOWjZ1+gYmNjHOXo5+ilJmPj6KMioKWl4OSlZl+mI18iI2BdnF+bntkgHyLhXCHk4CRgmyIg4GAiYVmdW97hZGYi3yTeIuIe3+Ge3pwfXeIhXiDj4eKl6GVgYOLdoiEg4J3fIOKhnhhenp/dYB5aG1mYn9qa3h0dHd+cn1jZGFzbnVybWFaYV5bbWVTZFlhYWlrdXmGcmNrY21maH2CbGl1aG5waoB9g3ltkIZygIODfnR8g4yBf356goN+fJBtdolzdW1limxqYmJ1VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPm62XpqeejYyXh4afk5eZfniqnYuZepedjIyZkHl8gYx+fIR8gYOBeHR5enR9gISAiYuAZF99i5SHf4SGdHx+i399mIaXlZiNpKKYgHOHe5ORiaaPjI6Kk6CShJKQlJeRi4GPl56akY+Qcn+NkZOInJyepZeWi5OVcYuLiWuEl4+ZeoeIj4lvl56bpJSWi4yei4aBkZx/kpKVhpmIe4qKgXlyemx1bHx/i35thZODlXdwg4R+fouAZXJpe3+Wl4N+jXSQh4J4hn10dn58hIB7gYuCi5Ojj3iDgXSJh32AdHaCiYVxYnx2e3J+cGNwZGV8Y29wd3N5eHR1YnZgcGx2bm9cXGBeXmteUV5ZY2FpbnR7imxgamVrY2h3h25nbWlrbWmCfXt3b5CIc4CEhH10gYaJe4N9eoGEfX2OcnqLeHhtbIdqaF9pcmOHZ3FvZXdnbmxheWlrfXt4cGF4bYuAmJipn6SonYqKkoaKnYuVmX54r5mNl32flJGXlIh3fnyKfXyAd3iAgHB1dHxvhn2BgYp/fGFcfo+RhoCDgnJ6gId6j5KJk5Kdk6adlYJ9gX2OipGjiY6KjZiajYaSmZSWjoqIjJGbko6MjG2EkI+RiJ6ZoqCWlIiVj2yGl4JlhJiOk3qJhJCKcJablaOUk4mLmYyBf5CefZKOkoyZjnuKhYdzc3ZscW51fIp0b4eRj5NxdYF8gYGIfGVwbHl8mZN8g4h0kImAc4d4bn98gIV7hIqGgYuUp4x6hnt+i4V4fnFwgYeFZml6dXZxfGNfcWFrdF9xa3t6eWxzcWV5Xm9sc21yWFtfYGJsW1BYWWVjaHJyf4hnXWppZ2JncY1vZGpoZWlpgXp3dW+OhXSBgoN7dYKIhXiFfHiEhXp/iXd/i3t7cniDamtfcGh0gGtyb21yZ29sZXxjboB6dnFsd3eKfqKXoaegppuHi4uBj5yHk512gquVk46HoY2WlJCAdHx3hXh5f3Jze4Zrc3B6bot2gIGHb3BbWX6RjYeAf391dIGAgKCHkouUnpiilZh5in+BjYicnYqPhpKYloWJlZqQl4yMjY2Lm4mNj4JtiYuQkImclqGbl5SEloZogqGBZYSciZB+i4OLgXeTmZOgk5KJiZSNfn2Ol3uRjI+OmpJ8ioCCb3ZwbG1vcHuGaXSEj5mLcXeBdYKIg3lmcm51gJmOe4eEeZOQeXWHc2+IeoSKeYqEgIaNm6KHe4N1got/eHlubIGFg190dXRycnlbX3FhcGtfcGt+fHFubmttdmFwb2txbVlZYmFib1hRVFtmZ2N1cIWDY11rbWRiZmuSbmBnZ19oa4F1cnNwi4B1f4OAeXaAi4B4hX94iIZ3g4V8hot/e3aKf2pxY3xjhnxucW10amhvbHZ4X3F/eXx0dXSAg36klZqtnqeWhY2Ef5eUg5CgdoyglJOGi5uNlo6LenJ5dYJwcoV0cXaIbHBudm2IdoN+gG1tVVGBqpSGgnd/dnGDeoOhg5OClZSZnZObeJF7g4ySo5mTjomVmZKEh5eZjJSLiY6PhpyDj4l7couFio6HnJqfmpSTfpJ8ZoOahWaFn4eRhJGCiXGDkZiQnI+QjYyPjHd7kZB6jouMkpaMfIh8gGt3am5rbGx7f2F6fo+Xgnd7gniDjH15Z3Nsc4aVi32HhXqTj3F5g291i3mIinmIe4CKjp2chHt6doKLfHdxamyChHtheXFvbnN0Vl9wYnJiYG1venFpcGZnc3Vpcmxid2VdV2ZhYXNUUU9dZ2VeeXCJfWBdaXJiYmZmkWpfaGVbZ3B+cGxxdIp9dnyGgHV2fox5e4WBeIiDc4aFfoyMhHx5lXhmcmqDYIh+b29remBqbnR/dV90fXmHeHRzhX14oI+ZsZyljoKLf4OaiICMn4CLmpSPhYiYjo+PhHd0d3SAcW+FdHByhHBraXdug259fW10clJNgt/IktaTe3B1hHaFoYSUeJeSmZ2RmXuUc4WQnqGTlJGKk5yUhn+XloiNjYeRjIebfo2Ad3qMfomMipybnJqTkXiMdGWGj4Vrh6KEkYiWg4ZjjJGZj5aLl4yMiopxepSIe46IipORiXmFfH9tfGVzb2tsenpbgXmQkIF6fn+Aho57e2lzanOKj4mBhYR8lIprfX5tf4p9ioV8hHiAjZOZmIl8dXeDj3hybWdxgIVubHVwaWt2b1NfcGVwWmBtc3lobGtjZ3hycHFkYHhhYFZsX193UU5MYmdjXXpyinZeXWV2YWJlZY5kYWdiWWlzc25rcXaMfHR6hoJ1dn2Lc3+Gf3uJf3KJiIGRi4h8fph2ZXNufGWIfm9wbIBZbG55eXNgdnp7jXZyd4p3eZ6Lm66aoJCChXeIlX58ip6IhqCSj4WMmISTj4eBdHhweXFvhHBtb39zZWV5cX1teX1qZ2tjpJrB3K7woXNsdoV3hqSGk2+YkpailpyBknKGi6KXiI6Wi5CdloOBlpCFiY+AkImIlX2GenR/iXeHhI6cmpiYjY51iXVshIeJfImig5GJnISFXouTmIuQiY+Li4SJbXuWgX2IhYmRj4Z2hX1+a31keHZqbnlzWIl7koiFen6BgYaMf3lmcml/iY2JgoF+i5WEa4F1bYaPgY6CfYF4fo6UkZePdHJ3h4x1c3FndnqEY3VucWNreGhSYXJobFZgb3V6YXJkYGl9cHNvW2RyYWJXbltdeU9NTGVnYl53dIpuXV1keV5fZWWFYGNjX1lqc2tua3N3jH10d4SBeHd7iXGDhH1+iHt0i4mIloaMf36Xc2d1cnlsjHtudHGBV3F6dnlyZHd5hoxpdoCJcn+chpinm6OShH1xjJR3eYyehYWhjY98lo2AmoiEe3N3cHRqcIJsam18dV9heHd7cXV7Z2BkfOvatcnD3IdzbHSCd4ucio9rmpGQnpaUgYlxhYifjYSLlouMmJR8jZOIg4mQe4+LhY6Af3V4g4RyiIKTnJaUl4SLdYZ9boKAh4aYoYKTjJ6DiWGDlI+HioaKjoeBh2l8k399g4SJjo2CcYZ+f3F3aHZzanR3bFqNfZODhX2AhIGEioJ2YXJrh4GOiYF+fpGQfW2Ba3eFjoSQgXuAe32PkY6UiG1weYyFdGtxbHN5gmF1anBebXhhUmVzaWZTYHF3dWFwYF1og3F0a1hoaWNpWW5XXHZNS0xmZ15ic3SGa1xcZXleXmRne2FkX11Za29mb2p0eIp+c3OBfnt2eoh0hYN8f4d2d4qGj5mBjIJ7k3Vsd3Z5eJN0bnh7fVh5hnF/b2d4d5KCZHaGhXCKloWZoZqiioh0b5KMcXePnH6LmomJfaB/hJqAgXhydG5vZHJ/aWZteHhcYHl7e3FxgGphZ2F/1baOkaZ4b3F4fXGUko6Ia5uQip2TjIZ7aYeLmYaBkpGGh5iOfI2NgYGJjXuPjH2IhHpzeoN6cIaAlpqOk5OAh3SChHSBfYiQm56GlY+ffohigJOHhYmFi42AgINnfJCAfn+CjI+Qfm2DfIJ0bG13dXR3dmxjjoGPgIV+fYZ/hIl/cF9xb4R7jouBe36QiHlwg2V5gYiFioB6hHx+ko2PkYJtbnmLfnVtbmtse39kaWxrWm94WlNqc2liUWNzeG1jZl5aa4RudGJcaF9lbWBvVVxwT0hPZ2ZcaG9xgG5bXGNzYFxjbHdlZV1dWmxtY21qc3eGf3JxgHx9dHiGeIWCfYCIdXmJgZOVfImGdoiBcHh5e4STb257gXdeg4B0gW1penSUc2dziHxxkpGDmZ+boIaIdnaUf213lJh/iJCEi46afYyad352cnBsamF1fWdianV6W2B4fHpscH9lY2dnV52PX3Fzlr3FhXdylYuRgHSZjYedlI2Ic2uIj5WAe5SLgYSbjHyKhn18iYx+k4d0h4V2dn2BcXWGgZ6VhpSOgYFxfoZzgnmHlZuWhpONnYCIZn6Tg4GGhIqJcoF9Z32Le3l/f4eLj31pgHyDdmZweXhzd3Rsa4+Gi4KLf3mDgYSEgGtecHZ6fYuHhHuAjn9+coBoeIGFiYSBd4J7f5WKjot8bWt6iXx2dG9paH53ZV1yZFlxdVRUb3NpYk5odXlnYV5dWW+BcHRaZWNea25hcVBabFJEVGhiWmxvbXtwWltebWNaY293ZGdcXWBramNsaXN3gYNyb357f3R1g3qDgnyChnZ+iYGWkXiDinSBiHN5eX6NkG9ve4FxaoJ5en5ubXx2lWtqeIR0a5OMhZ6YoJmFiG9+jHZqeZmPgIKKgpaYinmPlm96c3FsamRgdHtpYGZye1thcn16ZnB6YWVkjrGyd0tiWqXa0phzfJKNkXp/l4yFmpKNhm9shZKReXmThoCEmYp8h4B5eImKg5V/bomGcXN9e2p5hoOlkYSSjIJ+bn2BdIF2g5mXkoqTj5SFiHB7k4R+hIOJg2+BeGiAhXhyf3+Diod8ZXx+g3VjcXOAaXlxb3WZjYaEi3x3eYCEeoJrXG98cn+Hg4h9hYd6iHGAbXCChYyCgnGDd3+WioyDd21sfoR/dnplaGp+cmFaeFtac29PWHJ0Z2BLbnd2Yl5cW1l1fnNwWGdeZmtyX29PWGlTP1lnX1txa2d5clxbWWxlWmNweV9oXV5lbGhmbGlyeH+HcG6AfYF2cIJ7gIF/g392gYWJl4pxgo1xe4Z8enmElIx1a3p/bHB+dX99b3J8e5Nwb4F/eWaSioKhmJ2Rg4Znh4RwZ3qXin+AhYKaioF8jY1peHJsbGZfYW95bWBjb3lcZGyDemFxdl9kZdXrvoszOj6Lj4ByeYaKkI54hpmOf5SOjX9ubYWMi3V9j3+FgpWJfIN4bnaHhIKVdm2HhGt1e3VleYOEp4yDjouCfGx+cnSBeIOaj4qPkZKNjId/e5KIeYCFjoNsgHJpgH94bXx8gYqDeGJ5hIJyZHFpf251cnWCnIyBgIZ/dHZ+gHOBcFtrfHN4iIGKe4Z/fIh3eXBrh4OPgohwgHd9k4mKfXNtanaAgHV1XWlpeXFaV35UW3JmTVtzcmZcSnJ5cV1bW1pedoB2aVpiW2hmb2NqTlhnUj5eZl1edmZfdXFbWVVvZFplcXlbaF5gZ21oamtpcHh+jm1qgoSAeW6Be32Bf4J6dYKBjJOFcICLbnd9gHt7iJOJgGl7fWt0fHKGe3N2fX6MeniEfnxrjIyEm52WjIKBbY1+bGl/j458fn+DlIJ/fYqIa3VxZ2ljW2Nnc29gYWx0YWhwiXphc3ReYmOboJBuXTZbsLZ1aoCJfpSHeIiZh3WQjIp3cG2FgoZ0eYl4iX2TiHp/c2d2iH18lm5vhX1odnluZXqJhaWHgIaMiX1tfXR9f3uKl4aAk5CYiYuFinyQinF8foZ8aX5ta4B7eWp6d4KHgXJgd4J+cmRyZ3aDbnV7hpWSgn2CgHB3enx1f21XbX11c4mAhXaGdIKJendybYiAjn+DcX17fJCHh3lubWhtgoF1bl1oZ3VyUlx9T11yXU9cc3BkVkt0eWtYWVlaYnKBdmFeXWFnZGlqZk9aaU5BYmRcYHdhXXVuWFhTdWJbZW9zWGpfYmhrZ21saXB3fJNsaISKfXxwf357gX+CeneAgImLhHJ7h29xd4R/e4mNj4RqfntueHl2ind9eH+Bh3+Efn56bYSMiJijjYWEfHaLemtthYmTen17gpKAgH6KhHBycGNmXllnX3BwYGFocGZqb4l0YXRvW2BkanZ7f7+dqKXJuHKFhHSVfnqJlYR0ko6HcnNwhHqCc3WGdIh3lIl5eXFkd4Z5f5JocYN1Znd2ZGp8hIiegn9+jo18cX1ygnd+kI6CdpWNlJCIgoh7iYpseXqAdWh7aWx/eXNpenaAg31oYHeIfWtqdGh7gGp2gY2RlX98fn5xfHd8dH9iVXV7cXKHgoF7gXCGiXd4b2+Cgot9fHd8enOMhIB1aHBnbIiBcnBdaGN0b0xmd01fb1ZUWnRuYlFPdXliUlhYXWJxg3RcYl1pZWVja2RSXHFJRGViXGRxXl14aFZXVnheXGZuaVZsXmFqZ2Vvbmhwd3qTbmmIjHl9c3t+eYKBgnx2fYOIhoNwdoNzbneCgn6Ii5R/cYB8eHp6gYt1g3h+gIGChHqAdW99ioubnoh+hnt3hnxodYeNknp/gHyJhoR2j4BncG5gZVxYZlltc2FhYXFsbGiJbmBzaVheY22Ad6naqciHiLNyinlxj3Z9iZGBe5SLgHV0dX52f29wf22FdJSGeHVsYHmAeIeNZXGCbmd1blttfYGQk4CAeJKRfHd6bIVzfo+Kg3KVipGPiIaGe3+GbXV3f21od2VtfHZta3d3f398YGJ4hnpodXZjfntodYaPjpZ9dYB2coB7fW2AWlVxfG9zgYV9f3driIZzeGp0f4OCfHl7d3pxiX97cmdzZG2LhGxzW2pgdmZJb29NXGNYV1Z5bWJQU3V3WVFWWF5hcoVwXWFjbWVjXm9jVV5zR0NnYF5naV1ae2NSVl12W1tnbGJWa2BgbmZmbHBocHZ4j3Rrjo12f3Z4fXeBg4F7dH2DiIiDb3F/dXF1fYWBiY2Le3d/eIR8fYWHeIh8fYF9hIB7fnJ2eIuOn4yJe4p3dYN6Xn6Hmo16h4R0hoeFd4l7Ym5tXGJbW2FVanRkYFtob3Bnh3FhcWZXXGNrf3zKzoe6omtub4tucoVzfoaMf3uThXp5dHp1dHpqbHZjhHaSgnZvZ198gHiKh2RxgGpqcWNYbXuGnImDgXKXk3Z9em2Gb3+IioZwlo6QiIaMhHt5f3JycH5naHJjbnhxamxyeH18eV1leoB4aXV5Z4J3aHWHjI6VfXOHam9+gHhufV1Xb3xsc36IeoBubop/cHZmdn+AfoB1em95coV6eHFlcmBtjIFrclhrX3ldSXBsT1hWX1VWfGtiT1R2c1JSVFdeY3WGal1ha2tmY1pvYlljcUhBaV1hZ19cVXteT1ZmcVpbamhdWGhhX3JmamhxZ3Fzdod5bpWKdX97eH55g4eAdXN/hYWOg3Bwe3h3dXmGhYeMhnp8f3WLf32Gg4SHf35+fYZ/fHh2eXaSlJ9+jX2LbnWAemSEiJiGdJKKb4WGgnqDdWNuallfW11dVWhzZWBZZHJyZ4FyYWtkV1pfaX94vq57oLduYnSHaXV9c3uFiHt+jYB3eHN3b3p2ZWpvYYd1joFzamJefXd4ioJlcH1na2tbVm94i6SBhX9wmZJxf3ZzgGx+gI+GcpSIjYiFiYV9eXVzcGl6YWptYW12amdra3l3endbZ318eWZyfm6FdGZ1ho2GloBwi2dre4J0bXViW216anN6iXqAZXSGfG1wZ3R+d31+cHpqeXl/eHZvZGxhbIl9bG5WamF4VkxsbVBTUGlOWX1oYk9VdmxNUVRVX2h3hGdeYXFpZ2FXaV1dbGpKRWxbYmVXWVR5Wk5Xb2tZXWxlXFplY150ZmxlcWdzcHSBeHCZhXZ/f3h/fIWHfXVzgod/lYNuc3l7e3NyhYaIiYR5gX12j399hYmOhIGDen6Lg3t3fHd2mp2YeoqDh2p2fn1thYWVgXOPgnGGgn+CgHBmbGdXXVtcW1NlcGVfWGNydWl2cGRlYldbW2h/cG9ygHOKZWZ6f2p2d3V1hYZ4goV6d3R2bmt6cGFoa2eGdI2EbmdeX3xueYh8Z2x3ZmpkVldzcI6nfYR7dpaQdHtxenhseXqPg3WXfIiGhIeEfXVxc21odV1taWBtdWRnZ2l6b3tzWWeBdnVocIF4gnZid4WLfZWCb4xrbXuBcWVzZWBqd2ZwdYh5fGF1g3Zqa3F0enB5d3J7ZX19fXZ1bWNlYGyGfG1rVmpjclRMa2xQTU9wR158ZmFOVnVlS05UWGFseH9mXmdzamVgV2RYY3JeTExsWGRiVVRVc1dNWXdlWl9sYVxbZGVfd2dtYm9qdG9xfnV0mYF4f4B4gH6GhHp9doKDfpiFbnJ0fHt1cYWFj4KBeot1dJGAfIGVjoGFhHx+jIZ6foF2e6OminmJhoVsdXx8dYSDjXtvhnR6hX2Cg3VuamllVl1bW1pTY25lXFlidHtqaG1oYGFXXVppgGlrcIBobWJpe3prdXV1cIeCeoF+d3Zue2hqeWpfZW5ogXeQhGdlWGF2aX2GeW5pb2ZmXVVYb2iPqHeBe3yQjnh0bn1tcXR4jX53lHSGg4CGiXZqdHdoaW9cbWVebnNfZ2JqeGh7bVttg3N0am+Bfnp3YXeFhXqRhnOIcnB6f3JjcWhbbXVkbnGGendhc4BwaGp4dHFrd3ZzdWKCeX11dG9jYmJsfXxra1VpYmdUTG5pUEhSbEVheWZiTlRyXkpNVVpmbXh7Zl9tcWpkXVZgVnBvV0pUaVhnXlhOVmxUS116YFxfbF1dW2JlYHpobGFucHZub3d1eph9d4CBeYCAh4Z6eXqDfYGThHF0dH96dnSFiJB+gX2RbHOVgXuCn4V/h32AfoaCgIp7dYSsn396iIiEbHKCenaBgIJ1b4hvfYB0ioBqb25lZFhfWlpaVWJqZ1xaX3WCaV5tbFxhVlpba4FlcnR9ampebXh3aHV4c2+HfH5+enZzbHpoaXdnXWRzZ3p3koBjY1Rkb2aBhHV2ZmhpYVdWWWhkkKhvf3d/io56cG57ZndteYp6do5xhH5/gIduZHd0ZWhpXWxiXnBvW2hfbXVlemhddIBucmtxe392dWJ1hox8iYiAf3hydX50YXBsWHBxYW5vgnpzY3GAbGFte3BqZ3l3c3BkhHR4eHRvY2BjbXN9amxUaV5fVUx1ZFFIV2JHY3dmYkxUcVlLTFhZaWx3e2VlbnJmY1pYXll3ZlRJXWRYaVlZSVdlUUljeVteX21bXl1iZF5/aWpgbnR4bW9udoOXeXKBgH1/iYyGfnV2hniGjH10dXWCeXp6gouNfX+FiWp0loF7ip19foV5gHt+fIaJc3GProx8fIeQfmZxiHp0fn13c3CGbXx+bZB6Y3BwYmVdZVZaWVdjZmtgXV10hmhZcG1bXldZW2x7YnF3dm1jXG50dWh2d3Jvhnl/gXp3b290ZWh0ZVtndWZ2dpF5X11TZWVqgYFzfGFiaVxUWF5jZJClaXl0goWQd2xteGZ3bHuDeXSHcoF5fXmAaWZ3bWFnYV9rYF51a1lmXW9vYnplW3d8a25vcHh5dHVlc4OTgImDiXp2b3J9cmF4Y1lubmBvcH96c2VxgGRfbnZqY2Z4enJsbYFzcXtxcGFdZG1vfWVpVGhZWlVOemBSS1pZSGN1ZGFKVW5VSkxaV2ptc3tkbGx0Y2FZWlxid1xUS2ReWWpUV0hZYU5Ia3dZX2FuW1tfYmNdhWloYm54eW1vanaBkHlug36AgpKIhIF2dYl0i4Z0cXZ2gXd9fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OHhHNwmaJ7e3+JlnlldYh6c3l3bHRwf2x5fHCSc15wb2FnYmxUW1pXaWRtZlxccollU3JtW1lYV2BsdmNqdWpqX1tudHJtdXR1a4d9f4F8d29ubGRpcGNba3JkdHaOc1xXVGRgcX5+cIBcYWNeU1phXGSTn2VycYWDkHNraXhrbm55eXpxgHZ/c3t6e2RmdmheY1thaFxfd2hXYl9waGF3YVt8dmpqcm54dHR0aXGCloSHf4V2c2pwfG1md1dbaWxhb3F/eHNlb35bYXFxYl9pb3xranJ9cG92anBgWmRrbXthZ1RnVVhTUXhdU1BZUkhkdGJhR1ZsUUlQWlZsbGx8ZW1vcmFbWlhabXFYU1BnWFdqVFVGWl1PSXN2WWBjbmNYYWFhXoxqY2Vtenlsb2l2eYZ7a4R9gIWZfIKEeX2IbY+GcW92en10goJ9i4+Dg5d0eIKUhYGfiXWBgIF0f4Jwh4N2b6KXdHuGjId7ZneLb258cGd4cXtsc3ZzjWtedG9iZ2ZrU15cVmhibGxbXHGMZE5vbVxWV1VmaXNoY3RlZV5acHZvcXZ2emyIfX99iHeQc2Nka29hXG5tY3N4h2taVFZiY3d7fG+EXGNeY1RbYFpjl5VjbnCChYlyaWZ4bWRydXF6a3l0dW97f3ZfZ3NkXF9XYmRZYnVlVWBhbWRhcV1dfm9oaXNxdHF1dmxthZSDinyFcXJnbnxvcW9SWmVpZHByf3RzYm11VWNya1xebmR7ZGt1fHBxcWltX1hjaWp4XmZVZFVXUVZvWFJXVFBIZXNgYkZYa09JWVVXbmllfGlseWtiV1xWXHVlVFNXaVJaZ1VUSVtaUE55d1tfZW1qWmJhXl6PbmJnbHp2bm9pdnZ/fm2EgH6Gl3t/h4GKf2uTiHJndIB7doCDfomOf4yTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOCjYx3eG56jWBlfXFnenR5bW1xd4NnZHxtY2dnaFNgX1VnYGxvXF5ujmhOamxgVVZTb2dza2Z4ZWZeWnJ2bnN8eXRuiXuAd5x7emthZWxtXmBuamVxeX5nWlZYX2x4enpugl5hXWhWWGBYZJyIYmtwgYZ8dmtpdWtbdXBqeWl1cm5vfIFzWWtuYFleVmNkWWVxY1RfYmlhYmxaYH5rZmx0dW9teHZsaIaNgIp7iG1xZnB7bHFsYVhfZ2Zucn9ycl5pbFNmcWVWYm1heGFvdHp0aW5ral9XYGZodVxkVmJWVE9ZZ1NPXU9QSGVwXWNHWmpOSmBMWW1lYHhpb4BlYFVeVF52XFVTYWdPXmNVVEtdWlFadnZdX2ZtaFhjYVtejnFjaGp4cnNtZ3ZzeYNzgoN7iI5+fIqIjnpukIp0bHOCdH9/iIWHkoSVj3p9jI+IkZuEgHyNhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo2NjY2NjY2NjY2NjY2Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjY2NjY2NjY2NjY2NjY2Oj46Ojo6OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERDR2RoZ2dnZ2WQoqCgoKClXiouLi4uK0iFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTQ5XGBfX19fXZGmpKSkpKpWFRwcHBwYO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fn1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHhomTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaIiYiJiYmJjY+Pj4+Pj4iCg4OCg4KFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5GLj4qKkImPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjY2NjY6Ojo6NjIyMjIyMjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQi4WHhouKhYiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCIhYWFiIeFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkIiFiI2JhIaJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp+fHZ2eHx8e3x9fX19fX5+fn5+f35/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4SJiIeIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6fHp6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pio6Ki46Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fH1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fn9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f3+Af4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/gICAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f3+AgH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fn5+f39+fn1+fn5+fn9/f35/f4B/f39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOSk5OTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGSkZGSkpOIhZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCSgoKSkJGRjnWGkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9+f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CIcIWQj5B8dYiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj4+QkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4xzb4qPinJ4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fXx+fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjXdte4+Cc3iGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHc25vhHt1doCFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxZWFhXVFBRUlNSU01NSklGRUhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39+fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3RiXmRfYWtxZmhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f35+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYl1qbF1mZmdlY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hJSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpaandtYm5zamFZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtrcmxhbnVyZlFRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OXWNva1lpc3VwU01PUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZCRkhVYmhsb3BvbWxaTExOTU5PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHR0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICCb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVDRkdITVpnaGdybm5oZmRgXl5YTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7PklaXVtcZWxua29tbWxraWhrZFNHRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHp9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+AgICAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7Oz1LXGltbm9qb21ramxtZlFHRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYGCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozo9SGNvc21ubGtsaVVDPkNGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN0cnF0eHh5fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5PUpgc3NwaFQ/Ojs9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT48OkJsfWpAOjs+PT4/QEFAPz9BQEBAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO1tuQD5ERT9AQURfZDs9PTs6PT5BQUA+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKR1ZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo6bXdJODs6PT5BO0hkPTw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUj08PUlMRkV1dk43ODg6Oz4/V2pBOzw8Ojo7Pj8/PT05Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N6Sjtcf4N/enx3Vzw9Pz09PkVodEw6PT4/PTxBU0Q/PDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcG9xdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFHcnprYoOEg4KDgH1ePkBDQEA9SnN7WTo9QUVBQFlhR0M9PUBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dHd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEVvdH2CgoGDfn2Edk1BQ0VAPz5Ze4BdP0NFSUpJamZRTUVDR0ZHRUdFRUVERUNBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTE5pZ1tbVkxITk1ISUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhGSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSExNVmVkYmBlYE5fSUdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiIRWbIWHhoaGh4iIh3xQTE1jamloY2ZoZ19AQENDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREZHSUpJSkhISEdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pUgYOEhIKChYaGhIKGhYSEhoaGh4eGinVJTW11bWppaWlrSTo8Pjs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUtHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgICAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpJSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMj2ZRdXh0bW1ub2xENzg5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJR09SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouNim12fIRxb3BvbksyNjg3MzU2ODo4NzY1NjU2NzY3Njc6Njc4ODk6NzU3ODk3OTc3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDY3ODg9Oj1FQ0JlhYOBgIKDg4ODg4aJi4qJiYqKioqLiouLiHJzfHJxbm9uRDM2ODg1NTc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc2Njk6OTg4Njg2ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDg4SEhIWGiYqKiIeHiIiKioyLiouNhWxobG95fWY+Ozs7PDk6Ozk6Ozo6OTs6OT09PT47Ozw8Oj47OTs7PDs8Ozk6PDg6Ojo6OTk5PD88PEFCRElKTUtJS0xXb3JzdXN1eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuKjI2Pf2Zsb3l+XkVDQkFCPkBDQUA+PT4+QD8/P0A/QD09P0I+QEE/QD89QEBAPj9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUJBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4uMjY2NeXByb3ZdS0xISEhFRkhHRUNBQENFRENBQkNCP0BESEVDRUNFREFGRUZERUZEQEI+PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhYaGh4mJiIeGhoaHiYmKi4yNjIyMjIyNfHNycFhMUkxLS0lKSkpJRkRER0hHRERFRkRCSElLR0hHRkhHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQD07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjY2NjI2KeXd1b2NRTkxOS0pLSEtHREdJSUlFRklGRkVMTE1JSkdHSElKTk1PTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/f359fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7Oz06PkA+P0BDRklJUF+Bg4WFhYaGh4iIiIiIiIeHiIiIiYqMjY2MjI2MjI6FeXx4cllOTU5MSklGSklGS0lHS0pJSkdHR0tMTkxNSEhJSk1RTk9OTU9LSUdJSkhJRElISEZGR0dJR0NCQUNUbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIyMjIx5cmJdW1BQTUxJR0RISkhNTEdLT0xLSkpMTUxPUE5ISUtMT1FQUFFPT0pISkpMSkxGR0hHRkZIRkVFQkFCQlxvcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIyMjX9gXFdXV1VRT01MRUZHTVBPUFdVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1MTkdHSkZGSEpFREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09QkBCQkdWTkZOUFBUWHuGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyNj4yMi25fW21kSFVTU1JLOztTVFNgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRS0xLSEhKSEVGSUlJSElpcnZ5eHl4ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0dGRT8/QUFFQUNHRURFTFhSTVRVVlhafIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH5hiouLiHJhaFg9W1pZVFI/QFdWWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFVUVlRPT01KTEpJSUxNS09NU29zdnh5eHh6eXp7ent8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSGhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImLjHxyc1teXVxTVVNXV1VbWnWDWVV9kGFcWF1fV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiYqBboaJiIeEi4BpXFxdW1ZXVVhUUlhWY5aAUmVyWFpXX2hQYGZbW1hcZ2FHT1poZ11bXF1dV1JPU1BQUlZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fX1/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRUFJSUlZTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIiHiIeDkY6JiYiGhYiIhn6AfWBUWFtWVFZTUlJNUE1MZnpbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtcXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a39+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmJh4aDh4eHem9zWk1OUVFNT0xKS0VGSUZDP1RkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3x9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eXFlVUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ2YV5PRkFFRUREQ0FFUUNFQUM+Q0lHVkBITkxHXWlQSEZORkRFRklHSEJESEdJS0dEQkFEQE9RTVNkcnR2dXN0dXp8e3t7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn+DgIODgoCCgIKBgmxPSUJCPDw+QEFAQD9rUUtgRUZISUVCP0dMTkdNUVVJQUU/Pzw9PD09Pz0/QUNDQD89PUI+Sk5HVW51dHVzdHZ4e3x7fHx8fH19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqamZgW1FSWlxZXkpKUFFOS0xRUlFUVlVXUVFXVVBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZURCQkI+O0NDQkJEQlxdT3tOT09OS0xNT09RTEtNV01IR0BBPDk3NzU5OT07Ozs4Ojg6PzxCSD9cc3R1dXV2d3l8fHx9fHx9fX1+fH59fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BfXVpJSFBSUU9NUFFOUVJUVlhTU1lUT1laW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEdISENCR0lGRkZETVJQYVdTWFFQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BWV15aWE1LVFRTUFFVT0xSU1RXWFRUWVJNV1laVlhYVlhZXVdXWGhza11WYXNrYmFfXmRhX15ZVVFOT09NSUhKTEpJRkNRUFNbV1RUTlFTWVNcZVVPU1RSTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTlHbXJ0d3h5e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQU1VXVFVSXW5eUk5aX1tWWTtEVlhUW2ZKTFBTUk9OTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz88Ojc4NzY1OTk2NzY2NVdwcHN3eXp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF1SVFpWV1VUV1RSWFhZWVlTVU9KR09QT09NUkpQUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBTTUlMSk9SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmhpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0hGTE1QTUcvRV9SPjM/PmpvYVNSUUBHVFFQUVBRTlFPUVBMSkxMT1BPTlBRUU5QT0pMTU1LR0VFREI7PT08OT1HNjY3N0RtcHR2eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nVFFTQUdVUE9RUVBNTU9NS0xLTE5PT1FMT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6e3h6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT09NUVNMVFVUWFdVTExLSTw5ODc7PkA+PD1BQEI9PkVIR0NFRklHSkpARkFBQEZIRUpPSFFSYlxRUFJPU09PUExNT05MTU1OT05bV0tNUU9HSUhDSEpMTEtGRkZFP0JDPjxCRz9CP0FkcHR2enp6e3x7enp3e3d5fn58e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENEPTk3Nzk/Qj47P0JAQD5ARElFQ0dHSkdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xOS0xOTU1MTE9OU2ROSkxSSUlJRUFISkxNTkpHSUdCQUJAP0VGRUhES25vdnl5eXt7ent6d3R4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg6Oj9CPzxBQkFBREVHS0ZDSEhHR0hDQz9CPz9AQT5ERUNLTlJUTEpJTVRGSUlKTEpLTElKTU1PUFJQSkdDS0dDQklJTE1PTklKSUdDQ0NESEpNTElZcm13eXh6e3p5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFHS0RHSEhHSktJSktERkI9Pj06OTo7QEI/PUFCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISkxNSEpMSElKTEtNXVJISERORkFDSkpNTFBNS01KS0ZHR0pOTlFOTGJtaXZ2d3p5e3p9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLREZFR0VGRkdER0JDQD48PTk6OjpAQ0A+QUNERUlFSUpMRkhIR0ZGQ0I7QUJDPkBDRENER0xOSEtOSERIRUlNTk1HSUxHRkdJSUxOS0lHRU5IQkZNS01MT01NTk1LSEhJT1JSU05SZmZmcW9zeHV7eXxsaGpuZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lERkZFQ0NDRUBEQj4/Pjo7Oz06PD5DQT5BQ0VGSkZJSExIR0dHRkVDQD1EREI+QUNDQ0RHSElHTVBKRkZHS05PS0ZISUZFREVJSkhKSUZIT0tESUxLT01PTk9PTkpKSUxSVVVST1dkYGFtZ3Fyb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPEJBPkE9Ojo9Pzs9PkBCPkBCREdKRUlGSUhHRkdFQ0JBQUZGQ0JCQkRFREdHSUZMUUxJT0pKTUxJR0hFR0VEQ0lJSEtKR0tSTUJOTkxQTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmVmZmRoaGZuamZtbWhra21yaXF2dHNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd3dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREU8QUBAQzw4Ojw+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDR0VCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFST1BRTk9NTlBNTE1TV1ZYWFVYXVpdZGBpYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRTw/QkJEPDc7PT06PjpAQj4/P0NFRkRGREVIRURFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR05LTEtISkxGSUlLSEVLS0xNTk9SVE9IU1RTUFJPUU1OUU5NUFdaVlpZVlpdWlhhYGFgXmhlY2BkZmhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXd1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSEhHSURCQ0hFPEBFQkU9ODk+Pj08PEFCPD8+QUFGQ0ZDRElEREVFRkdHR0lGR0tIRElIR0lHRkRIS0lHS0hNS0pLTEhMS01LSU1LT05PUlVWT0tVVlNQU1FSTE9RUE9UWVpZXFpZW15eXWBiXlxhY2tiYGRmZ3KFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdExJS0lLRkJFR0U8QEdDREA6PD9APz4/QkE8QD5CQUZDRUVFSUVGRUdGSEhGSEhJS0pGSkhIS0hGRkxJSEhKR0xMTUxMSU1LTU1NT0xQUFFVVldPS1ZWVVNSUVJMT1JSUFZbW11eW1xeXl5gYGFkXWNgZWZgZWhqZHNzZmpnZ2tvcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRkdJRkpGR0RJSEdJSEpMSEhKSklMSkZKS0hJS0pHS0tNTUpKTUxOTk1QS09QUlRYVk1OVFVUUlJRUE1OVFNSV1tdXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTUxMTUdDQ0FEPD9FRUVDPUFBQ0JDQ0RBQ0RBQUVHQ0hISUhHSkdDSElHSEpGSU1ISUpNS05MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAREJFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdISklJTEhKSk5MT0tJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQ0VFREZCRkZHREVLRkZKTUxLTExHR01JR0pLSEtLSUtLTkxNTExMSUxNTFtzYmRwXmxtVU1OZnNdZmZxbG50Z3BpX2FZbm5icHBia2pqZm9xdGV0bm9cb3VncE1KcXl2a2Fga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BzdXRxc3N0dXV1dHd4dnR0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdDRkNGRUZFRENISEhERUtIR0xOTkxNTUZKTkhKS0pJTEtKSktMTU5OTU1KTU1OW3Jvb25wcGxrTVBRbFdNaWJ0cnBhbW51XFlsUFxubVpxbWtvbXh4dHNpcF1fcmtxalV1eXhvY15rZmJncG9qam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGSENHRElGRUVCRklISEVITEpHTU1PTE1OR0xNSUxLSUpNSUtKSktPUE9OTExOTkxcaGR1XWxxV2xOUFFtVFlrXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNGREhHTEhFQ0NIS0lIRkpMTEZOTExTUkxHTExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5Zcmtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmltdHVwc3V2c3FwcHFvcXR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnRzdnNIS0hJQkVFRUFBPkREQkdESElNSUZDRkpMSkdGS05MRk9KS1dSS0dLSkpOSUhKTElLSkhIS01NTU1JS0tLU2tjW2leX2ljcnJaX1lqbl9lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21xcG50eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFxdnR3ckdHRklERUNGQUBCRkVER0JISkxIRkNHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElGS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT05RTk9RSkpPUFFkcWlUWVdcW1xWWVtdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NER0VFQUVDQERIREZHQ0lLTEhGREdLTElFR0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJSEhJRUZMSUpMT01KUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSS1lhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGFhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHJ4cnhzcXJ1cnRPQkNETE1CRERCRUlFSEdGS0pLSEVGSUpLRkVISFBLTU1KTVJJR0VBSEZKSUtMSk1KSEZESUZERkdFRktIQ0pOTExVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoaGhX91cXBycnN2eXl6eXl4eHh2cnl2eHJxeHZ1dmFTSkpNSUVDQkNHSEZIR0hLSkpJREZLS0tFRklKTktOS0hMTkdIRT5HR0xJS0xLS0tJR0RIRENERUFGSkVBS0xKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFYVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR4eXl5eX9+fXl1eXZ2cm56d3Z4WVFLRkNHRUJFSElGR0hIRkZJR0hHSUtJTERES0tOTUxLSEtKSElGP0dHTktLS01LS0tJRkdDREBEQUhJQ0BKS0hQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUVtXWmBfXV5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHR0lHRkZJTEpORkRLSk1OSkxJS0pISUZCSEhRTUxLT01KS0lHR0VEP0VDSUlDQ0hHRVRdWV5YX1lfW11VWFhPXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJaXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYSFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHiIeFg4B8eFxTS0NBSEZER01SSENRSkVHSEhFRktJTVBFRklKS05MTElLTElJSERIS1FPTU1QTExKS0hJQ0RBRURJR0NDSEZEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1PWWFcYGBfYmNiXWFiV2BfVFBPT09XUVxbW1xcXl9iZmZlbGVvb3d8e4B7fX+AhISEhISEhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUpLTkxLS0xLSUpHRUpOUVFOT09NTkxNSEtBREFDREdFQ0NGR0JNSEJLS09PTkxGTUZHSUpIR0xMTU9QSUxPUE9TT0xQU1JVWllXWVhYZFdPU1RQUE5NTlRSWlhYWl1cYGFkZWNnY2tscHNyeXl/e3p/hISEhYSEhISChIB+e4GDgX17hYSGhoaHh4WFhYSEhIKBgH1LSUVFSEZHREtNXUxHR1hMR0hKSEdNTFFRSExLS0tOTVVOT0pKS0dHS1BTU05QT05OTk5IS0ZgRURfTEVnZEZOXEleW3JtT01VbVlMRFBgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRkdGSEVFS09TSUpGYFRISU9KSU9NUlFLTUxMT1JVUk9PSUxNR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXJ0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fWm5YXVZcWFVraFVdVmNaYFlbX1ZWWH9qdHV1Xl92XldhW1tmW19gYWBhXWBhZ21wbGBwd3R4gYGCg4SCf31/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEdJS0VSVkxLTklLUlhXUU1PT0xRVE5PUU9LS05HTVBTW1pTUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJvb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29ycnt8b354boByX2BgYmFaYF9na25rYmxmZ213foGAgn57eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOS0dgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5MT0hRUlRZV1ZQVFBQUFFLSGd4bGN4cm1bS05WeXB1bXVib3ZQZWVKZnZxbXdvgGpmeHdpV3JRaHptaWp6en5seHp/b2hvWXZ2anZ1cIBfcmZ9aWx4fG9eX19iYVtdYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncXl7c3J1eX6Bc3V6bnx9eXhybk5LU3VOQ0JGUE9ISktJS1BPT09NUFpgWlhLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXF9kZGlnaGVlXmFiaWlpamtub2txb21qcGFjZmNvd3hvbXBzeX5ucXBre3p0cm9tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xYVU1VWVVlWFJSWV5TTE5JVFRXV1lXT1NOTk5RSVJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9acHp7XmB6c2Nyb3hxaGR9aXJ8XlVMbGB2dWtpdXt6bX54a3xwXF5eYlteYWRkZ2VlZWJaY2Npa2tyc3J2Z2xpaGRnYWFrYWdzcmxnbG1yfGttaGt7dG1ta21PSEtLSEpISFFQTE5PTEtSUlJPU1JXUlZUUFdaVlZUVFRhX1BOTUtUU1RRVlZOTkxNT1BLSFFOUFVMS0xTVFRTVFBWVVFRTlFRWFlSTlBVVFhYWFtbVVJTV1tXWFhaT1NVV1hYUl5ZV15WVFBZUldXV1dYXlpncl5bW1lcXV9jWl9jY2RmZGNjYlpjYmdmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdnanVqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09MTVZUUU5VU05PTUxRUExKUlFLUU1LTFBTVVNRUlNTSUhMTk9RUlFQUVRWUlhXXFdTUlBSVFVWU1pRTlNSWFZUWVZVWlZUUlVTVFVXWFZcWV5gXVxaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWdqa2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEpOV1NQTlVQTlFOTFNQTU9VU05STk1PUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXVlZZW1RQVFVYVVVaVVdaVlNSV1ZVV1tYWl9cVVheXF5dW11gYF1bYmJjZ2ZlZGJYX2FiXmBnZGZlYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2JPTE1MUVFMT1RPT1NRT1FbWVdXWFtZWFhWXWpkVlhZWldWU1NPSk5WVFBPVVBQUE5NUlJQUlhUUVFPTVBUVk9YUlRVVU9OTVFTVlVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUVlZWVllUWFhWU1JZV1ZaXlldX15VXlxeYFxbX19fXlpiYmRoZ2RkYlhhYGJeXmZjZGBiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xZWltkcW1oZF9bWFZVV1FMTVZTTU5ST1FST0xRU1JVWlVTUFBNUVhXUldTU1NYTU9PUVRYVlVVU1VYWFteXVtbVlFOVVZVW1xXUlNXVldYVlRZW1VUUlpYV1xeWl5fYFVhXGFhXWBiX1xgXWNhY2doZGZgWWNgYV9fZWRfYGJbWlxbXFlaWVhXXFpcW2BeX1teXmFgXmJcWWBbUU5PTlZRUFRRT1RUU1BXXFxcWF5cXldcXmpxd3mAY1xbVVVXUE1PVlNOUVFPUlRRTFJUVFlbV1VPUk9TWFdUU1VSUlpPUFJSVltWV1dUVlpYXF1bW11WU01UVVVbXFZSVVZWWFlTVVpcVVNTXVhaXV5cYGBgVmFbY2JdYWReXGJhY19jZmlkZl5bZGBhYGBjZV9iXllaXltcW1lYWVZXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1xUV1dRT1JaU1JRVFJUVVRLUldWW1laU09TUVZWV1RPV1JTWlJUVFRYXVdYWVNYXFheXVlaXVRVTlVWV15bWFJVVVlZWVVXWlxWU1deWl1dYF1iYl1ZX1tlYV9kZF5eY2NhXmVmaWRmXl1kYWBhYWJkYGJeWFpfW1xbWFhYV1dbWVtgXFtbXFtYWlteVl5ZXVFPT1JaUFpUVVZWVFRUXl5gXl5iXGBVXV5ia3l0bH1rWlVZVFBQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtaVVpeWF9eWVxZUVdSWVlZX1taVFVWWllaV1haXVdVW15dXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU05QVllRXVVWWVdXVVhfX2FhYGNdX1RdX2JlZXWBemhXWVlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSWFNXV1VTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWFRZWlphWlxWV1hbWltZWVpbWVdeX2BfY2JhZGRcYlxgZmFkZmReX2RiYltmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlNZVlNcVFZXWVZWXGBhYmNgY15fVltgZGFfenVvaFlbWVVXVFdbWlpcWVhZYFdQVV5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1pdXlldVVJZV1lZXWJaXldYW1xbXFtbWlxaWl9fYGBkYmNkZGJkWWFmY2ZmZV5hYmBjXmJjaWRjZ19nXmFhY2FhYF5fWFRbWlpbW1hbWFhcW1pbWFdZWFdcW1tgXVZdXVNPVllWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheW1xaVldYWVxcXV9bWVtiVlRYXl1hY1xSVllQV1dXV1dWU1VUWFxcXmBgXWBcV2FeW15bWl5YVVhXW1tfYFxfWFlcXF1eX1xbXVlbYGFeYGVjZGVlZmJYY2VkaGdkXmNgYGVjXGVpZGVpX2ZdY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWVhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZcXV5gYWBfYl5ZYV1dXllcXllYVVdbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZWNlZmVmYlpkZmZpZ2JfY15hZmRaaGhiZmljZV5iYmNhYGBfXV1aWFtZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVZcW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZF1cWFtiZWNhUlxaT1lYWltbWldaWWBdYGJiYGFjX1xiXV9dW15dWVlUWF1dX2BfYFxbXl5gYmNdXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiW2NnYFxpaGJoaWVkYGJhY2FfYF9cXVxZXFlYV1hZWFdcWlpXV1hPWFpdYWNmZnJrf0pZV1xaWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5ZWFVbX15dYWJgXltgYWJmY19dVF1gYWNkZGZlZ2VmZmVeZWZoaGdkZGBaZWdeYWdoY2hoZmNgYmFjYl9fX1xdW1pbWVhYWFZaVlxbWlZWVk1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4SCgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7enp6enp6ent8fHx8fHx7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3p6enp6enp6fH19fX18fHx7fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIkMzT0tLS09haJSsrKyolY5KNjYyMjYl/f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIqU3ebk5OXl61QTGxsbGxRdlpGQkI+RjH9/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXl5e3hwb29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2EhYSEhIOEeHNzc3Nzc3l9fHx9fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnd6eHp6eX55eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3l5eXl5eXl8fX19fX19fHt7e3x8fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2eX18fXp7fnt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjYyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fX18fXx+fHd4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4SEgoKCgoGBgoKCgoKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3dnt9fHl7fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp5en17fH18fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4e3h6e3l8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKCgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mFhIOEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHl5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veHl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4OBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7e3x8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYGAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoKCgoGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXFxcnN0dHR0dHR0c3N0c3NzdHR0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXFwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm5ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoKBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzc3NycnFxcHBwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycXJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubm5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoCBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXNxcnJxcW98gm9wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKBgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFwh4ZwcnFwc5iCbnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF9oYJwcm+LnnxvcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFycXSdoXZxd5+cfW9xcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXFxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZiokG+Co51+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3Jyc3N1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4GDeXJzc3JycnNycnNzc3Nyc3Ryk6mkeYignXxyc3NzcnNzdHR1dXV1dXR1d3h3d3d3d3h4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f4B+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn18dnZ3d3Z1eHp4eHh4eHd4eXmftKmkqKiXfXt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7fHt7ia+mobWrrKN+e3p6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2YpZaisqCZp5N9gH99fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+gIB/f35/f4CAgYCAgYCBgZycjqCwoJ+in4CAgYB+fn9/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYGAl5qOmLKhmJachXx+fn6Afn5+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f4CBfn6fq6SWpJublqCfhn9+fn+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KDg4aNn7KooqCYnZ2mqK2ooJmRh4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4aNoK2xppuaoJuenJydoaSjnZSHg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoOLl5qXlpigmp2dnZqamJCJhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj5CSkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBho6Uk5eanJyblI+Jh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5OSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDg4iQk46UmJKHg4KFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgYKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGTkpCOkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgYGCg4GCgoKBgIebh4uHgoOCgYCAgICBgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAf4OIjoCBgoODgH9/gICAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYmGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/f4yVgoKBgoSDgYGAgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkZGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChIODgoWCgYSFhIODg4KDg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTk5CNjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgZCMg4F/fn18fYycjoCCgYGCgoWUlIyBgoGCg4KFk4OBg4WDg4SDg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUk5OSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX17gZiMgIOBgYGAjpSMkIGCgYKCgpGUgYGDg4KDg4OCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGVn4p+foB9h4t+hISDhIKDg4KNiYWMgoKDgoOGlpWQjIKCg4SEg4ODg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4SEhISDg4KCg5CUk5KSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhH2GiYB+hYWFhIWCf319fYCDhIOEhIuZoKqom4qEjomDhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaGhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkZKNioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39/f3+DhISFipOYoKWkm42Wh4WEhYWFhIWEhoWFhYWGhoaFhoWFhoWFhoaGh4aGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhYWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6Fgn9/f39/f39+gICEhIaVl5WXn5+enZKHiIaGhYaFhYaHh4eIhoeHhoaGh4aHhoaHh4aGhoWDg4SFhYaEhYWGhoeHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4iIhYaFg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FjJybmpeanJuZjoeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4eHh4aHhYODhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjImBgIGCgoGBgYGAf4B/f357en+Zl4qUmZmYlZSMiYmJiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeHhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSSkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fnx7fJqVf4GWmJeVk42JiYiJi4qJiYiJiIqKiYuJhoaGhoeFhoiIiIiGhoeEg4OEh4iIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn19gZePjJiWmJeTiYeHh4eIh4eJhoeGiIeHiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgYGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoOBfXx9f4B/fn5+fXx9fnx6gpqfnJiNiouDhISGhYWDg4WEhISEhISFhIKCgoGEhIGCg4OFhoWEgoKBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjZCMiYaEhYSFgoGBgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4GEhIODg4KCgH19f4CAgX99fn59fH19e3p5h6CemoyHiICCgYKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgIGAgYKBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goSDgoODg4F+fX5/gICBgH59fX19fn18ent6j5uXlpKJfoB/f4CAfn2Af3+AgIF/gICBf3+AgYF+fX1/gIF/f35/gIB/gICAgH+AgoCAgoGAg4GBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GBg4SBgoKDgoOEhYCAf3x9fX59fX5/gH99f359foCDg4KCgoGBf319fn+AgIB/fn19fXx7e3t6enp7jpeVl4Z+fn9+fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f39/f3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp6enl/kJCPkZF/f35/f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af35+f3+AgH5+gH9/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp6enmCjYmPloeBgICBgH+Bf4CAgIGBgoKAfoB+f35+f36BgIGAf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaFhIKBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WCgYODg4WEhISEhIODg4SCgYKCgoB/fn19fX5+gH19fX19fX19fXx6enl5eXuIiYeHiIOBgoOBgIKAgoGBg4ODg4GBgYCBgH+AgYOBhIKAgIGAgYGBgIGAgoF/gYCBf4CAf4CAgH5/f358fImUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgIGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYSEhYSFhoaGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eXyCgoSFg4KEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCAgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGBgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4eHl5en6Bgn+Ci4SDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDg4SDgoODgoKCgoODgoKRkIuIiYeJh4aGhIaFhISEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHh4eHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl6fH+AfYaTg4ODhISUk4CAgX9/f35+hIuAf4GAhIaQiYWEgoKBhYWLg4GChYWGhoSEhYWDhISDg4SDhIWEiJKPjImIiImHh4eFhoWEhISCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6ent9gIKBgoGDgoB+fX9/e4iRfHyOln99f3+ChoqFg4OEg4KDjYl/fX+DhIWFg4SGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYOEg4GCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXl9fn+Af4F/fXt8f359gpWRf4SIfXx+f4KEfHyBgoSDf3+Hg32CgYCCgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4SFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH9+ioJ7ent6eHp7e3x9e35+f39+fn5+fXyAgYB+ho+Bfn2Cfn9+gIJ8fIB/goCBgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMjI6OjYiIh4WFhYSDgoKCgoODgoKDg4KBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX+AgX1/f4B/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3x8fHx8fHx8fHx9fXx7fXx8fHt8fHx6enl7fHt9hYODgIGBfoB/f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn9+f4CAf3+Af399fXx8fX59fH19fX19fXx9fH18e318fHp7enx9fX+GhYOAgIB9fn1+f36LhIGHfn18fH5+goJ/fX19fYF8e318foGEg4GAfn5+fn18fn+AfX6Afn9+hJKNjYyPjYuKhoSFhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fX1+foGBgoOAen5+fH5+gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX6AgIODgn9+f3x8fH18fYGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f3+Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx9gYKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9e3+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fH18fH18fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIkY+NiYqHhYWDgoKDg4SDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gH9/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg319fXx9fH19fX19fnx9fH18fX1+fX59fX19fHt7e3x7fHx7ent7enp6e35+g4WIh4iKi4uKiYyRkI6KiYaFhIKCgoKDg4ODgYGBgYGBgYGBgYGCgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX19fX18fH19fX18fX19fn19fn58e3t7fHx9fHt6e3t5enl4eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgYCAgYOCgH+Bf31+gH58f3+Jgn9+gpGEhIOBf359fI2HfX1+fX18f358fX18fX1+fn1+f3x9fHt8fX58fHt8fXp6eXl5eXp7fn6AgYOHhIiPjouLh4WEhIOCgYKCgoKBgYGBgoKCgYKCgYKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGCgYOBgICChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Afn19fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY6LjIiFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICBg4F/gIGEgX5+gH99foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fXt7e3x7fHx9fXyKiomJhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKDg4SDhYaDgoF/f4CCgH+AgIOAfn6Af31/gH19fn6AgH+Cf4GAgICAgYB9f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e31+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgoGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoKCg4WDhIOCg4SEhIOFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19foB/f4GAgYCAgICBgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISEg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhIWDgYCAgH+AgX59fX5/fn5+foB9fX98fX1+gX+AgICCgICBgIOCgH+AfoCBf4CBgIB/fn59fn59f35+hYWBgYF/gIOBf36BgH9+f36Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX+Af3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f39/f4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf39/goB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fnt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhYSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4CDg4OBf3+BgYCCgYGBgICBgICAgICBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH2Afn+AfX9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhIOBg4KBg4F/gIF+foB+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgYOCgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fX59fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2d3ZzdIaEhIWFgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn99fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXt5eH9+e3x8fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgYKBgIGBfYCAfoB9fn1+f4CAgH9/f398f4B/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+Af4B/f4GCgYB/foCBfn+AgoKAgYOChIWGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXx/fYB+fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4GBg4J/gX9+f35/gH19fX1+gICAf39/f3yAf3+BgIGAgH98gH9+fn6Af31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXh5eHh4eXd7fHt7e3+FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYCAf32Afn5+f39+fX1+gIGBgH5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGAgICAfX5+f4B9fH58f4CBgICAgIB8f3+Afn+BgH9/foF/fn9/fn19fH+AgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t7fHl3e3l3eHd3eHt7ent8hYl9e3p3enx9fXx8fX19f358fX5+fX19fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgoCAgIB+f35/f318fn6AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/foCAgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKNenx9fHt9eXt6enh6gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fX17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgYCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5fHx7fXx7fHx8fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgoKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKBgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fXx9fHx9fX59fX1+fn9/gH99e3x8fHx8e3p5e3t5eXNydW52cnB4cXZ2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKAf4CAgIB/gn9+gIGAgn+AgICAf4B/gICAf359gH9/f3+Af4B/gIB/gIGBgICAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXx8fXh4dXh4eXt8fH17e3x8fH1+f39/f359fX6Af3+BgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgIGCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf4CAf4CHfn58e318e31/eHd2eXl6e3x8fHx7fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enJ2eYWFgoOCg4OCgoSEgICDgIaDg4SBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGAgYGAgYCBgYGBgYOAf4GDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f316fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfH9+fn59eXl7enp6eXNydG93cXd5c3d7hYOCg4KDhIKDhIOAgYODhoODg4KChIGEg4GDgICCgYOBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOCf36Ag4KAgX+AgoOCgIGCgYOCg4GBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3x7d3x5eXl7en1+fXx9fHx9fn5/gYGAgICBgYGDhIB9gH9/f39+e3t7ent6dHF4cXl0dnh0dnuEgoOCg4OEgoSDg4GCgoSFhIKDgoOEgYSDgYOAgYOCgoKCgoGCgH+BgICCgYKBgoKCgYCBgYGCgoKDgH6Bg4F/f4GEhIGDf4KCgYOBgoKBg4ODhICCg4KDgoKBgoKDgYOEg4SDhIWEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX+AgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgYKDhYWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoKAf4GCgoCAgoSDg4KBgoKBg4KCg4OEg4OEgIKDgoODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKAgYB7fYF+fHl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgYCAgICBgYCAf319fHx9e3Zydnh4dnR/dnV9h4eDgoSFg4OEhYSBgoSGhISDgoOEhIGDhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKAgoKDg4KCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgYKEhIKEg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX5+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOCgoGBg4J/goOEg4OChH+ChIODg4OEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fn1+gYGAfn59fn1+fn5+fn9/gHx9gIGCgoODhYOEg4aEgYKIhoWEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4KBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYOAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB/fXx+gn9/fn5+fn19f39/f4GAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKEhYqJhISEhIWFgoeGhoSEhISFhIWEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOCfYR+fnJ1g4KBdn6DhYB9gXWBeoR/f39/hISCg4KCgYOEg4SEhYOEhYaEhYZ9hHp9fn+De4WDgYSDgX99fn9+foKDgX17f31+gH59fHx8fX19fXx9fX6Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISGhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgIJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygoR+g4N9gX1+f35/goOCfH+BfX+AfX18fHx8fX18fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgoKEhoaDhYSGiIaGhYKGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhIZ9cHuBcHl2foN/gm55cHVzfHZ5eYZzhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fX9+fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KCg4WHhoaAgoWDg4WHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB1gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fn2AfoCAfn6AgIGAfn5/fn6Bf4CAfn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhISDhYeGhIWFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WEhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39/en59fX99f39+fYCBg4OAgoOBgYSCgH+BgoB9f3+Bfn9+fX6BgH5+gYKAgIKEh4aDg4aEhYSFh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3B5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fX1/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFhoaGhYSFhYWFhYaJioeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhoaFhoSGhIOEhIaEg4GEg4SDhYOFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WEhISDgoF+f357fHt+fHx9fn9/fX1/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaGhoWFhoSFhoaGhoSHhoeHhoWHiIiIiIaFh4WGhoiGhYiHiIWHhoaIhYWGhoWGhoWDgoWFhoWFg4SEhISGhIaGhIWFg4aGhYWFhIaGhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH1+f35+fn58fX1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYODhYaGhISDhISDhIaEhoaFhYWDhoaFhoWEhoeFhISFhYOEiIaEg4OEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn59fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFhoiFhoeFh4aHhoeFiIiHh4WGhoeFhoaFgoSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGh4WEg4SEg4SHg4SBgoSFg4GAgIB7e35+fHx8fn18fHx9fnx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoWHh4eFh4aIiIeHhYeHh4aGh4SChIOEhoWHhYSEhISEhYaGhoaFhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9fn58fHx+fXx8fXx9e3x8fHx8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoeGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiGhYeHhoaHh4WHhoiIh4aFh4eIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH57e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhYSFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4SCf39+f35+fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYWFhISDhIKAg4GGgoGCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYWEg4WFhoaHhoeFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfH98fX1+fXt+fXx9enp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYSDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeGhoiIhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4WFhoaFhYaCg4OFgYCBgICEgIOAfIGAfn6CgH2Af4F9gHx9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaFhYWEhYWEhIKCgIKBgICAg4F+fn6AeXp9gIOEhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDg4aEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B8gX99foJ+foB+gH9/fX1+fX97f317enl6enl6fH15ent7e3p8e3t7e3x9fX18f359fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhoSEhoSHhoaFhYWDg4WEhYaFhoSEhISFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6enp7e3x6e3t7fH1+fX2AfX18fH2Af318hoOGhoWGhoOEg4aChYGBgH9/gIB+f4GBfH5/f35/gIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoOChIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGhoaGhYOEhIOEhYWFg4SDg4SChISAf4KCf31+fn5+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5enp5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9+fn9/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGChoWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYF+gn9+f4J8f359fXx8fHt7enp6enl7eXt6eXp6ent8eXt9e3t+f3+BgH1/fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH5+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgIGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fH59fH6DfXt+fH2Af4CDfX2AgX9+f318fH19e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PD45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT0zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWy8vLzMvLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NTT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw7OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OR6jZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1svLzMzLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19jX19fa29ra2tra2trb3Nvb29nX19fX19fX19fX19fW19rb2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTUaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0jYuLi4uLi4uLi4qKioifu7m5ubm5ubi4uLi4ubCLi4uKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOU2JMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFhSU1NTU1NTU1NTU1NPd6ikpKOjo6Ojo6Ojo6WVU1NTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUJAOTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0NLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpp5cVldXV1dXV1dXV1dXU3qppaWlpKSkpKSkpKSml1dXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDs+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzc/R0dLS0tLS0tHS0dHR3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqiZmFiYmJiYmJiYmJiYl6Crampqampqampqampq55jYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk6Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Nzs7Ozs7Ozs7Ozs3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs/Ozs7OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzLy8vLzdLS0tLS0tLS0tLS0tLRzczNzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo7ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7OztLTz8/O0NPQztLU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19fX19fX19bW1tbW1tXW1tbW1tbW1tbW1tfX1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvVkpfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rOzc3N0LmDhIvH08Cay8/Ozs7OztKrnM/P0rmPvtScgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT08PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK2nKWj1MCUsJyxlri5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/OnZyRncWkoIuRw5N9fq+w0c7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4+PDw5Nj9CP0I6NjQ4Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv5igm7OnnYedutTSzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9COjc0Ojo6OTs7ODs9Pz0+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P07SZlqq5l5yQn6DS08CgoNDPz8/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PDk2NDo5ODo6OTc7P0A8PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz9Srmn6jkoqsr5GhudevoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD45PDk3NjU5OjY6PDs3PD9APDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDUrJuni5iKoZqtm6nYo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q07aysqWbm5qmxZii0Z6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXEopmWnK+enJubrcefodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTo6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6DH1aKrpJrPpquknsW0pKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtLQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09PIko201syTkKfXuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVaWpbTF9NSkxKVUxGQjw8P0ZFR0tJPTY2Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MjB1dHUyr3V0tHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRExMQT43NzU6ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHT1NLS0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj09Nzg2OTc3ODk5Ozs9P0A8PDg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0FMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhRQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29ra2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ojg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc2ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg2NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7Oz4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PD0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBGPjg7NzI3OTY3NDUzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO1tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7e3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6uvsKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo6Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmpqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmpqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpaWlpaaoqKioqKWnqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo5Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OztAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpaenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0E/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioaCfn56enJycnJ2dnZydnp+goqGio6OjoaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5iXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAP0JCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc1Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5KUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqanp6afm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6Wmpqako6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODk6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/PkFBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+mpp/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5KTkpeanJqWl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6SmpqWlpqempqKdnJ+hn5eRkZCUl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaWmpaWjoKChoaCZkpCPlpuZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaCgn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU5ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5WSlJicmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODY4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqOjpKSkpKKhoZ6bmpmXobWemZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpmXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6ChoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKCgoKKkoaKioqGgnpybm5uZn6ubnJqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY6NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaCls6ygoJ+fnpyZmZqam65qdp2dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5uam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCfppKbq5+goJ6bmpmamaiERICfn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5eVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnqCeYpymnp6cmpqbnKGjUUiEoJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZuapmZdo6CbmpmbnZyudUlMhqGcnZ2cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmKSAUniimZmanZugpF9WToehnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGgoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFxcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuYmJmgiFtflJqZm5yco49kWk2Bop6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbW0xGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiZn5ddXXaXmpydnaKBZFlNf6Ken56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubmpydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmaYGFggJadnJ6YdGNVT4Gin5+fnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozg3OTo7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmZn2leW2V/nJyejGpfUVOGnpuenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qal5NzaGFUdpOXnIdcV1BXipKOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaOimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY6Smp6SfaCjlqScbk1QY4aGgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CEoJ2OfmqUpZWdfYiAX3J/gIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2OTM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5/gKKLe21RdZyMjFpxfXx+fXyGjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfZiad1dOS3KThoNNX29xd4iFio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY2jjVQvLz14h3d2QURda22EkImJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KmnGdCW0g7eHlrZ0UxOFpsc5CPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mpr49KcqJ5QXx4ZGJRVF5JYG6KoaGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKN4YMHWpUN8joN1T26OdlNkf6Oop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkp6eZnaSlo6KdYn+9wK55oaSalWVMX3htUXSVoqKgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioaKnoaaupqadnmqEnLqOqdGimrOoWEytk1Nlj6CeoKCenaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq+roqKFd359cs7Gr5mmr2tVqrBjW4eln6WioZ6gopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7e0tbazra6sjoaDbpHMvJSUpZZ0VG96c3B9lqaqp6Sgn6ObnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K3u7u7ubnBuLS1n4d5ZFiftbump5mId2txb3h5e36FjpKYnaOlpqulpJihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW3wcbMz87Myb6zpI9yZlJEi5WFhYV9eHFuZ2ZsaWxycnFycnV9janExLuip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYWZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PFx9vj49rLvK6jlYh0WVpRRGl3am50bmtlZVlXXVhcY2pqaWZhaYu2wcC5qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3b21bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxr7N0tXKuaack4VyXlFUS0RbZV5jamVhYGhZVFhTV1laXVlbdZq3vKy0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudnJydnJnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/wsHHy8i2k3RjVVBPVEg+XmxfX2ViYF1kYVNVV1ZVVVhznK2xqqiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO5uMObYUlER0tEPVtlYWJpY2BbY19XUk9QUFeBtLqsrqWko6ikoKClmam0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnZSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent3bmtpaHZaZ3N4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTExMLEwa2DT0ZNRTtNWl1lbGVfW2BZWVNOVYCjq7m1sqypo6GtqaynrZ+stLS/w765uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dmVmampoXmtwbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCxpZqWEc/P0ZdYmFqYFpYV1RWd5q3v7u8urysraapu7q5t7+ztbiywca6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rraussZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWh2aGpqdW55bF5kW1ZgWUxIRDY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnOxcbGvalyUEswWFNWZWFTTlBxqcjIwsTHwLy+tLCwsMK+vsHGwL63tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2tr7WkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOi5R9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ9eHBnYGtqd21pZnZvdGNdY1VXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPCwbyRP093gIpWTG+ly9TFtr+/wL+6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5gHNwZmVnZGxlYmtub29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzFp3drgpCXb6vIyMfRwa+9vbi5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFlYmFjZGRqY2dkW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Aur/AvLvFvbrAxL+9vq9zZH2RiorRxb+/yb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7e4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhY2Noa2dnamZqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWNuL+7w7W6x7a1uLq8uLm2qqSYjX6Eyb+/u8G+uca9wr+8xbi2t7S4tra7u7i2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVncGplbGhZWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/Ed6jMvce3ubettrS3ubO1sb3JxJRJe8q+v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfWtucWdxa3RmY25gXFVIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTWrnSAu8jPwsC4rrS0u723ubG9w8qNQ3XNw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXJmbGpvdW95ZGhjXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsbJ0plxcqvR0czKxLW6v8TIvr60v8DBeFJuy8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0cG1tdGxtb2BjX2JiTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQw7q+vMS+t7zAv8nPx8jKysKGcnOjzMzLzcrGwsPLzsG8uL26sW9jYrvIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWRcX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9vDvra+wL6+uqacqbK2w7+leXV4mcTHy8jBw8DAycrBv7u5saB8cmytyMXEv8DBv8vHw8DIwLrCu7mzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3h0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEuG2tzr22ucC8rH1uaG5tcoGVmHN3fJe9v8bAucC8vsXEvb24sbCYkH2Am8rCw7y9v7/Dw7+/x7y8wLSzrrS0vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cW9qXGBhWlRRQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbN2gbO9trXCpYdpWl5gTVJbWm5zd4CfuLjCurO7t7u9v7q7u66km5iHkH7AxMO+vL+7u7i2wcK1v7q0ra6sr73Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra8tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2eG5yYV9nXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmohHiKoK+1nWplZ1ZZYElJTVBTbHeGpbC3vrmytbK7uby2ub60lpyllaFxrsnEwL2/ubOusry6rru0s6Wqpqy6vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybWBkYlxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fqoh8dYygmWBUQ1hVR2FqVk9FSmCNoKyvtrq1tLKsvLm4tbjBvYuYsKGlcqXLwr+5urWupayzsaaysKidoJ6krba0wba1s6WnqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8cHZzb2ReaFldXlNPTkI/SkNBS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7WRgniIj29OSj9kWUJOd4CUak5BXYGwtbO1srSvrLu6uLa5v8V1g6qemWOpv7i1srGtrZ+kp6airqaclZiXmZ6orbirqqqepKikq66vp7Crr7GxrbGurq+5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2dG12amxdXGtVXlxQTkhER01CR05HODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHtYRkFOh1lKSlh3jYFjQVOjubO0srCxrbC5uLa7t7q8j6Gyq6NyrLCpq62ro6ignZ2lmoWflJCUlo6Wnaeto6Kjn6GmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWl1dG9lVWJkWF1ST01JQElSRE5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmZmZVpTkBSeHFQSUlLZ5yBWUVSrruxrLOvrqyttraytLWuqKafmpudnqaonqCoqZ+hp5afkVWBnpGMjpSLlZmip5+foaKhpaWco6OgnqWgpKylpqiloqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqaSpq6aprKumoYh4g3x2f3pjeG1uXVFpVVBPR1BNTUNQUkE/Oz40Ojo1Ozo9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3Cq6W+aUVSnYJRV0lKYEpUjmBjYoCutaqytK6qq6+wsrOtpZ2Rl5OPl6CfoaCco6SfnqiUo1VWh5WPi4yUkJaaoKeen5+go6WonJ+goZyhn6Oop5ynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJaTj4+SkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOfnaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fIB1dn1ubHtkaVZTZE5KSEdPU05LTkg8RUA9MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutra6ubq3t7uuqKChqaCqxr/LoVBBcp53T25LS2NmdXNgWl5wkLGvrrO1qqasrKObmZSNkZWXmJicn6KinJ2knpqkmpM6ZISNjIuOl5SZnqKpnaGgnKanq6KfoKefnZ+jpqieo6afqp2qraqup6iwpaOkpqespqKlopuZnq+orrKrpquqoJuYmJiVk5aak5WWmpabl5iYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJfIB+d3l8ZXl5YWJTVmFJSUtMU1VKU1FNOT9BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMfHjldTSWWjW2V+b3JdUWtjW2RfXWuPtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXoqOAPWSAgXt5f5SYnaOjp56mq5+nrq6qpqKxo5qjpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuVlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbWVcU1taTVJLT09WTVRNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6rpI16VWlydnVwY3Z2WFdjYGNnWVhXZq2urK+nn56ioJaQk5ugnJmXkpOfnKGjmp6blp6gg2pjZnB6eHV+jJumqaultbKfrbS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7W4s7itsrSkoJ2loKyhoaKhoJqZlpafm5uYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dmp3dV5tW1JhSVJWSEZWV0tDTUg9S0k4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqK6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuioaCkgG6CcGBjWExbU1pNTFBYUkhNTUiYrKqppaCfmpKRlJiYlpaWjIiLjpSdnJ2cnpadnrarf2d/hn11eXuBnbSus8GYqbe4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwbe7tquusbm3vK+zsLXBvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaegn5+oqKWln52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21oblxYXENXTkpHTUhDRk49Pkw+NDw6Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqamUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnYpiV15lYFdNUUc+Pj9DQz8+QlF4qa2pqqagnp+io52fnpudm5STlZSenpiUhZ2ZoLzVuZWFiIyFenFwbICpu8SckLnDvr/Cv7a6u8DDub27rK6nsa2xwra4wsbAyMrAyr+wubm9uMK+uLS7xsS9w7y4tKqzraqztK+zrqqvo56sqLeyraOwpqGjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhESlBJP0VCNEZIOTY8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5V9YF5lYFFHRDxDPkU8Pzk2Tn6qs6eko6KgnqWspp+YnZWSmp6ZlYyKhoiGeG2Hn7Pb1LyrnImGi4JyaF1dkM62c63HxcXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxszMzNLHvr/Aw77Hx8K4xMrJxMHHv7q0uru1u7ewtrKru7KvvLfAu7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5WUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtlWlxGTE1FRFRNRUJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEA/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p+c2phV05FPklZfG9iQj1cjq6soJmbnJ6emZeXmJONj5eXlI+NkIyCg4J2cnBtcJG7w8fEwLeWg4KEhHJgV4W5gIDQzMzMx8rFxczQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsfGysjPwMnRzcfGyMbCvcTBv7+/tb6zrb/Aw8PHxcjEr7+5sri9xMLBu7y8ta6np66ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXVzZWJncm9nXlpaRE9NQ0ZRSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6Oz5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOem52Wa2ZdVElEQD9Lhp6lmoSgsq2jnpyfmpiXlJOUl5GQkI2IhISJh4OAgYGAeXFyb2x7iGeOrba1oY59enpraGVxhF+61NHRzc3O0MTN1NXY0dfNxsfJzMPFys/K0tfS19LV1tPUyMzHzM3K083O083GycrKwsfMx8nJxr/Ds7PIxcvLy8/Hyr++v73Bx8XMzMnJwMPArrCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZVZYUkROR0BJUUM+Qj06MjJBPEU8Nzg8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnGNTTEpEQz9DUq7RvbKvppycnKCkoZ2alJSVlIp9eXFsZWJocnBye4WKgHVwbXFxcHlRWXyYpKOWfm9qY2ZqZl2T2NHS09TSz9HD0NPW2NXV0svJztDLxs3SytLV19nW2NPW2M3Sys/RzM/RzdPQwMnIy8TMzczPz8bHyLbAy8DSzczQx8rJwMTDyM/N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYWVyY11SXEpLR0FGSUo/O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpaWgoqJbSUBBREFGUXayr6aalJefnJqgoJ6bnZqViXdpZGFfX19fXl9fXWFsdXNwcG5scW91gGNad5KbmYVpYV9jaWN5zNTNz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ19fY0tjS19nV1szPz8nN0szO0cDHxMnHz87R0dLIzM3Ay83G1M/Mz8nFy8fHyczL1NTR1c/SzNPCucWxpai1rqibqKulnbKosLOsrJOPk46Iio6Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUWBKSkNFQ1NOPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ6lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6up6qooaOsZ0M4PT5EWIKqqJ+XlZeZmpyfnZibnZN9cWVjYl9fYV9eYWBeYWBfYGVtcHBta25xcnZ8YF2AlJiKZ1lZXm11l8fUzsvSzdXU0crPzNPW0tHWzc/V1dHF0dPK0NTV1s7T0djY2NfLyM7Eys/NyszAycHJys7P0MzQzs7Mz9DIzNDRy87Lw8rIys3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO/u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSUZGRE1ZRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD85ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+ZpaegoKOnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksnxIRkI7Vo2hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYF5fX15cYm1xbm5xcXJxd3dbZ4ePimJVWWqCkZ2zzc7EzcrS0s7GzszN1MvO0s3L19bQzNHUy8zQ0dPKztHV0tXWysDKwsbNw8jKw83ExsnLy8/Lzs3RztTMx8nQzcnHy8bHwsbKzM7R0cfQz87OzNDFx8G4ub3Dwr3DubKyvrC7w8S1qpiloZiWkZWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTElRUUI7RD87Njg6ODo6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9wd4+ajYyXlZCTkZGVlpWQi3xlYmJiYF1eYWNiYF9fYGFhYF9dW11ncXFwcXFtaW14aFV4g3xbVGl/kpufrsXGv8HEzs7HxcfNytHHys3NxtHSz83M1MrHys7Px8fP0svQz8W6xL/Gyr3Dx8nOxcPIwMfOyMTNy83QycXF0MnGwsbJxb/ByM3MzM/DyszJx8zQxcXIu8fDycnCz8G9vL+wwcnHub2qsbKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdJSEdJTVVHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KFoqqTjY2Wj4WDg4OBfYSEfnNfW15dXmBeYGNkY19dXF5fYGBfW1pcYWtycG1taGdpa3FfZW9qWFx3gpGXl6K3urq4u8jFwcPAw8jJyMjJx8HFy8XHys3JxMHKycHBy8/Ey8i/ucG8xsi+wMbPy8TAw7vKx8i7ycbFysG+wsvGxcS+xr69wcTGzMbFvL/Kw8XH0sXBycDKysbIxtDDw8bDrsTLx8PKt7+8urOprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdDR0RMREZTPzU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL64vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bV56fJ6RipKWhnqAhIV/dXh1cnBfWltdYGBiY2RkZWRgW1xeXV5dX1tZWlxibnFuaWZna2ludlxaWlxgc36GhoKSrq+xr67Aubq7ubjAwcHDvb25vL+5xMnFxsK9xsC3u8PIv8HJu7a7u8XDv7zCzsPGvr61wb7Eu73HvMO6tb3GxMLDt8C2tr+/vM3Evba6yLu/vszEwsbDxsnHycbQxsLMyLLHycPOzMDFw7+8srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRUJGSkE5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1q7e0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys/FycXHwbrFvayup2BjdoGSi4iLhHh/hoZ/fYN7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXWdycGtkY2lqanVwSE9cWWhzb2lkk6WmqqijtbG1s7Kys7u1vLC2r7OvsrvCu8HEvL+6tLK6vsC4yLi0vLbAwr24vcfBw7u1r7O1u7+0xbi7tay5vb7AvbG7trC3urPGvbevvL+1t7XFvb7DxsDExsbHzMW/xsa7x8u/z8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpHQkRBRUY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TFy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJpbZ2+IjoaIiXp4foWGdneBfHNoXV1dXV9gX2BkYV5jZWNfXlxbXlxdXlpbW1xfa29sZmNmaGdqeV9DUExcXFZSc6Ganqaimqepr6upq6izrbWvsaetpqyzu7q2w7m6ubCqtLm7s8K5r8Cxvby7tbvHucO3raqosLLAtri9sLGosrO1u7yrrranrrauvLKwqriwrruuu7i7wMG+usO/xsPFwLzGwcfKuMXHxb/Hw8O5xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMTE1KRUFDP0ZBOjo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTPx83Bwsa/xMTDw8rCycq/wLzCurO1tcOuqrGTW2l+koiOj3t4fYmFeXuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWlpaXWNtbWZkZGRlZ2x4UT1FTFhfWpellp2fm5WXoaeroqahqqmrqq+ipZ6qrbW2sb24r7evqK24tLO8t7O8sLi5tbK8wbLArqWpo6uxs7OovaqrqKusrrW0pqmuoaWwqbOmp6iupqi3rLGzt7q7u7K8vr6+xL+1wcDHyLe+v8W3xcPAu7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlNTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8LLvrvJtr3DvrrKt8HDwrW2vLaxr7W8ramrk2RtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1hXWVxfZWpkYmNhZGRobnNGRGSBcF2UmYecrpaSjJyepqGhn6SlpqWsn5ybpKWssrC2tqewq6eqtKuzubC1ta62ubOwurqxtqSgpKCmsaisqbmqpaenqKezraCnp5+cpaasn5+npKGhsa2trLK1s7Swtby2u8HAsru+w8GxubnCs8C9wLW4vL2+vMLHxMPEv8DEoIR5cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs8ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbq9tqCelZ2gprq2q7Ozu7PEz8nLwsW4t8fAzL+4yre7xbizxbizv8CstryyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBeXFtcXFhZWFhYVlhaXV5jYmBjY2NiZWVsa1l7eV9UXEReYpOkkYeYnZ6km52eoqSipp2aopueqq6ssbSjqKmpq6yktListq+ts7Wvs7WvsKqfnp+korKlpqq4raKmpp+orauZn6CfmZ2fpZqZo5ycnrCprKiqq6ytsLO5r7i5urC2vLu6q7OyubO9tLeysba1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTYzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uci4uL+3ssK0sbu7rLq6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFdXV1dXWFdaXWFiY2NiYmNkZW9mWVhIMiEiXFhfjpSJlp2epZyZm6OloaSbnqCamK2tra6xoKSiraunobWwsbGsqa+zqLqzp7ahop+co6Gto6Kqtqqio6aepqajlpmdl5manaCal52cnZytoayoo6Smrauzs6q1sLKrsrm0r6qvsrKzt7Ouqa2usriwura6vb+3s7GUhnp2Zl9mX1tZVlNaVUtbUUxKRUhLSUM9P0JCQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+ynaWjmKWxw7W2va20uMLMyMbAxbbBwMfOt8DDvbO5ubK/trG5u62yta+fmqOqoZSaj3h/g4R/eG9xdHFoZWRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVVdgYmNhYWJgYGRmcVE6MyEaK2iUj3iRjJGbmZ2alJ+fqKKdnqecmpmqpq6wqpuio7epoaCuqLWqpqeusaS4sKS3oKOcmZmqpqGarbmwo6GknKKgoJOVoZSWlpyZmJaXnJWfqZ6qpKKeo6qqsa2otKyqp62zsKWrrrOxr7Cvr6eoqLKusrSwvLS6uK6jlIJ6d2VfYVdZWFNSVEtNXkxQTEdITUxFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0usKxvre9rZ2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwsLGqnJqhqZWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1ZVWmJiYGBhX19gYmlpPTMtMk5/jZOMk46PlpuYnJOdnaWkoqWmnpyepZ+qrqWfoaO2p6GhoqmzoqWopbCmsa6rtZ+hnZaVqaGilK2xsZ+jo56emJyTjKCUkZOYmJKXmJiXnqebp6KimqSlpaukpbCnpaOrrK2mqa6vr6uoqqqzpqarr7Sxrry2sa+vn5J7eHNlYlxbXVhOTFFIUmFNVlBPSk5PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sba9sLuxt6yepaasuLu8wcW6srm1xMnJwMLGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZn6OLinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVlJUUlRfX11eX1xdXWBha1g0P010hIqJjJKMjpGelZ2UmZ2joKuko6Oio6GbqaqjmZ2ksamhoJ2lqp6oop+trKqprq2ioqKVmKKanJCsqbCcn6Kfn5eZk4qdkY2SlJaQmJiTnKGjnKWhopWgoqSlm6OrpaKkqqSrraWusqmmpaamtaaqqK2ztbS5uq+qrJ6Mc3FwYVtXVlZSR1FPSFpcT1JKVEtTTEVHSkM4Ozs9PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Gtnainr7m5s8DIurXAr8XIzLrByczItcm8sb7Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RVVlVUVVVSU05QWV1bW1xcXF1cX2NoQFJxh3uFhoWPioyMl5aemJiepaappqqmqKWimKSto5SYpK6poJyZm6CfrpmcqrOfpaafo6OhlJSblpaSqamtm5yfoaCblJCMmI2MkY2SjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq7Ckrrilo6SjrK2qqKuvtLeyvbWzq66YhXV0aVtZWVNVUkZYTFFbWE1VT1BMUVJJT0lCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njg6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7euqKivrpupqKy3tqy8yru2v6zMxsW4wM7Px7PEu7e7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FYWVlZXFtaW11eZXF5dn9zgIWBiYSPi5KUnZuXnKinpKyqp6+jppieq5+UlKOopp2XkY+anq6WmKeqmJ+dlKWgnpKRkpGTlaiqpZqYmZ6elo6Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6Wlp6mooLCwprG9p5+jrLSqrqevtLC5tcCxrrCrkX5ydGNWVFVOUkpHVlBSUkxMWE5LTE9TR05LQUNGRUM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxt7i8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5xam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRRTU5NUldYWVhYV1pbW2BqdGxyaXuCfIZ/j4SPjpOXlZqlmJ2opaSqnaaXnqSakY6eopqXl4aFkpukj5WinJWWlYeimpuTjI6KkJqlp5uVlZeckZOIlI6LgYyNgJCLkpKSoZqgopaUmZiVoqaajZmkp6mnoaC0sqizuKGdo7asqq6ksrKmtbu0q6yxoop6c25eTlFRTU9ETk5OUEtGTk5KSk5OUUhNSkFITElIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKqloKmmpLOqorLEtbWys8bFt7rDyszGs626vbS4wK+uqbCepq67r62gmpuelZWIfIRuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0tTV1dWV1dXVlpdYWlkaGN2fHZ+d4l+iIWPjY+anYyXmqKgopiklaCalIyGmJqLc42Dfo6XloaSmpCTjo17mY+cjIKJgIqYoKOekJOYloWOgpR+fnSKjnqQiJOQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmKa4pqWwobGunLC7qqmvqZmEeHRkVk1SUFBNQ1NOTFBNQlBRSElOU05JSkpFS01HS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY2Ojg3QTd4t6GjtKimpaijpaWmpqayp6a0wbivtLDJxLi5wM7GvrOsusGsrcStqKKmkp2mt62joJGWl5KQfnh/ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpHTlNTU1RUU1VZWl1oX2NgcXhxa0lTbYt9kYKImJOIkY6el5yVlZWTjZWJf5OJXztWb3yMlIqAjJKMj4aGcouEloF5gXuGlJ2Vg5aOkI+Dhn2TeHFwho19iYGQjpCXmpmTi5CKnYifmIeIlp6aoaCXp66prampnpats6KlrZmtrJins6OpraOTf3RuYFtOU1JXTERUSlBNTEZOT0lFTFFNS1BKSU5QR0pKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebegoq2hpqaqoKapp6OqsKintMK5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpmHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtIRkhOUVFMT1JUVVhZYGVeW211aUo9O3ySjYt5hJCJgoeKmYyVlImRhoSUhXiIf2BKUW54i5KEfoSMi4R/f21+f5N3dXZ4hI2acFGNiIqGfH55lHZnd4aIfoqIlYuOkZOXjISKiJSFm42ChZKblp6dlKSiqKmlpJ6bsKqhpKSRpqqWoamcoaaninduZl5cSFFRU01JVU1TSUxLT0lIRkpOTE1VS1FSUEdKRD03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+sqrW8tri3s8G7tqe5yLi2qKi1tqqyvKeelY5/iZSplpWLf46Eg354cW9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlOUVNTVVprdGRocWBfVU+Mg5CEcHqCfXmCipGAkZmLj3qFjn90f3hybnVwdI6OgXp+iquFentodnuOcHJteIGLjZJ4e4B7gHdzcpJ4aHWFhISFfJWKiIqNi4B/hIuNgJSEfIGPmJSclpGfnameoKGdoKmln52YjaekkqCflp6fpIFzaWJdXUpXUFJIS1hST0pNTFJKSkpMUEhMUU1SVU1GSUI8Nzg7OTk+PTo7PDk4QD86Oj48Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6Rf3eGeHx2cG9qWUtISUhHRUhIUFRUVFdXU1VVVVVWV1hXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE5RUVNWXnF6cGtcboaRlYyMd2N1fXN1fIaOe4KYkn9who57dnpua36tfHSQi396hpKAfH90ZnV8hmxvaHN8io2HgG16cX1xbXaPcWhxgX6OcESLhYKDhX93d3qMhn2Me3V9jpKPmIuSm5ujlpmdm52eoZyWjYulm46dl46WmJB4b25nY1tYWFVRSlNVVE9QTlBWS05LT09LUk9JT1BMRkQ9Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rqKmxr7GrvLiru764s6ynm7CnrJuPlpylqaWhmJqOhJJ5iY+Li3ZxfG11cWptalhLRkdFQUBDREhMTE1RUU9RU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFellKTk9RVFhdZG1pYn+fo758cHRfd3RreHWGjnh6ioRua4uReHN4aWp/gnGWkYyBfZV/SZKZbmd3foJtamRseYWQkoZrc2x8bnJ8hmltcH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6LipODlpaYmpCTlpaZl52WjIOJn5KLko2GkJeAcGpvb29ZVlhUUlJZT1JVVFJYVU1OSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYm5+krK+iraqota+urLS/q7zDv6aimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ1b3RscW1la2tZTkRGQ0A8Pj5BRkZHS0tLTE9SUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JWWlFYWlqggV2VY210YXpsanx3iIZ0gIWEc2uYkHNye2lqnY5MeYWTiYSNZjF2h3JrfX2DdGZldX+EhIWAZmlsdWtwgHxocXF8bpONj3t0fn1xcW91bYN/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW05QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo6VmYuOhXqEkJiVjZCMkIdxh4J0h4yGenBzcW9wZHBnX1RGSUM+PDs5Oj9AQURDRUdJS09RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUtBSVFIYKqunGx1cmh5aW5/foJ/eIKEhHhxn5Nzd4BydJOHNXCdqJ2NoKGEooV2cIZ7hnx0jK6NiYFoZ2JqbnJtcIN1aW9YdXCOm5F2bX97fW5ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2OfHNycW1gXF1eXFpZYV9STltaWFdMSEpGSUg/Q0FCSD9DRD07Ojc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTAxMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpGBkoiVkZ2kp56vlaW0qa6wrsGyu8HFlo+MlI+AiHxugZCSiYOKh4+GdYKEbJWIiHx1eHhteG53ZGpeSVBHPT83NDQ5Ozo7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01RUkNIgG96d3ZxemlzhIV5e4KBfYp8dKCYeX2FgISZhJqcYYaqnpyLg5COeneIfomIjnSLl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVnaGBbXF5TXGdeV1FUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTQyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2eppGgqqCxqK/AsrvEupaOkZOHeoZ2a3+LkYN9ioOOjHiDgHOghIp9fYF/cIF+emh3a1JYTEBFMjExMzc2Njg4Ojw+QUVGRkdKS01PUVJTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklLTU9RS0pUW1dRSWR9g3aEdXdueYuId3qGhH2UhXafmIeGjZGUpYysqUiGra+uioGAlIuCi4KEkqmIgZiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZIbIB3cnl2aG1rX3Z9g4h/h4WLeZScm4mLiJF/enWKdnx4bW93foF1dXNtXF5eXGNkWGdlXFVQUFdZUERMS0ZPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2Nzc4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5COlZeSlqCdrKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9GQz84MCwjh1s/Pzg0Ll2WcHOjVUZJS0xNT1dgWG1YWlxlho2Aj3yAfYGNj3yDho5/mJOAn6CXlJqZpa2Smbuxp7vHw6eLjKGljpOJgZF8cYOen5Gdf3eFhYuQh5BpaHCEgXSMh4SKcoaCd4iAe3aEfG11dWZ/lI6GiIiHiIegqqKWiY6Xf3qBiHp5b2dreH58gHVsZV5bW15qXmJnYFpPTE5YUlFIUEpETkdDSkRDQUREQjw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneCen+Mf4GRjoqam6Sdoaymqq6wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOhICBjIqCiY2Df4p/bHBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlRSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISkxLSk1WX2F8ZWVqcZWUiJWOj4eKi5aFkI2biZ6ekKGppKKqk6i1oafBwq3Hr3i5lJp8jaGemYSThYKOoZ+UmZGFioWPmpGWbHB1ioyClYyNjnePhHFthYGKlpGChYhxiKCWhpGJjY+WpLSom4yUooOHkoN9f2tqanyCg4N1Y19lYFtobF5sbF5XS0hOUlFOTExGSVBDRE5GQkNFRkM9Ojk2PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXmAkoiRkn2KhJiSkIOAgIuMiYaQh4SJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDc1Mjw/UjVISEhMS01OUl5sh3pxfnmYlpWioJ2WnZOfkpqcppymqZ2nq6iptJarvqu2x8i3yNDPvpugcGmrqZ+Ek5KFnKCam5mmkpGIlaObm3h6fpSYk6KSl5eBlJ57d5WSqrKIjJeffJSdm42RlZijoaW1r5yQmKeHlo+NgIhsc3N9gX5zamFeYmBiaGRgaGdcUkVKS1BPSUlMRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Ljo18ioaPkI6BgoCJi4qFkoWDhomBgId3XmJQNDYwLTIvLC4wLy4vLi4wMDE1PkFBTVFSU1FSU1VSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUlNT1FZbIONdZCGnKCjr7m0oKqpqqWmsqmutLCwrLqwsr2bssOrusnLuMO/t6WisLOsraqji5aYhKWmoKOXgaaZjaKqqKWIhZSkoaCroaSoj5yxi5Wjpre6m6Cir5KinKGdj6Ohq66rsrShlKSpiJmIkomVeXp+hoFpYmldZmNfZWReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2luWHqEdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GOg4SBi4WGiJKGgoWJh4iHh3FuYUBFNjQ8My8xMTAtLCstMC4tND9DQU1VUFJTVVVWVU5bUEdHRDw+PkZIQ0VBNzs8NUM7PUZLSUZIUU5QV4CQnYKqn62lrLzEwKeww7Wqsb6xtry0vbPAtbu6orjFqLXJx7W9uLSoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqiutruyuqywtaKxrLG1u7a0rrSfpqehppqpr6yxuLe4ppq1qIykjpCSn4Z4goV4W2NlV2djYmRhYWdgW1RKRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiYld5dXGBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeEgY5/gYmPhn+GiIaKh5B6eG5dV0BFTjw2OjQ1QUI3NjQvLzZDSEJRW09RVVdVXFdQX1VJS0pBPz5HS0ZFRDs+QDdENz9CSkpFRlZTUF6NoaqhrrC9sLO8yca0ucO8srK/tbbAs76vtnSws6W6xKSvxrmws7Gzp6S1tqqxoKKXm6KSpbCupq2rp6SYoa20u6Kosrq1vL/Mv8XFvb2zwbe6t762ure5rKuwpK+prb2wvLrBwauYuaeUrY6Xl6mIfoN+bVhkYllsZmtmWFxjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpwfo6DgI6EbnpzeIdiuaGZo4mUlJaSlJONj5aRh4Z7hoGNlYqAhIGKenyKh4Z8ioKBi4OVfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNRUllYWmdZVGBfTFNQRUE/SUpIRUVBQEQ8RTZCPkhHSkxTWlRdkqy0sri1xbu2usfLubrAu7a0urm2vbO5scVgdLGksZqeqr2ppairqqOisrWgq6iflZafmaCupaempZ+klKOnsbSosrO9tsG+08nJ08bDxczCysPAvr2+u7y3tK+4t7bDucW9wsevnripoauNpKe1iIGBdGFjY19ZY2BqZ1NYYFZSVUlFRU5LQT5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCstLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaKfoN/gnh7i4OHe4t5gYqCl350fXprZnB1WV5cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFRZVUpEQktLSUZISEhIQkk6RD9IS1NUVVxaW5K2vra7tMO8uLfIybm1ubW3uLK2tLOutbWYZHWnnK1wXqKsnJigopuknqqllJ+fkJOOlpmYqJ+moJ6amYOknq2lqrCtuLC9udTRz9fQyszSzM/Oysa/vsLJvcG8wcDExMXKvsfNsqO6sLSumqu3u5iAfG1fYl5aX2NaZGNRW2BTUEtDQUVGRTxARj5BSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVtZaF9vlpKQlG5sb3R1h7SsoaGfi5mcmYyNlZGakYWKin6IhoyQi4h8gYNze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWdqamlgZmlpbFptc5atpLyIhmdbb2ddWlpUSEtOUEpLUEtTUUlMQUpGSk9fXmFmaWGXtcWvt7G5u7Oww8W0r7iwsLursrCmqrerjLWnnZqnmk2ZnYyOn5aRppillYqTk4mQiY+RkZ2boZealZeHn5qnm6yvqLCotLTU1NTW08zQ09XN0s/MxcLJ0L7JycrJ0cfMzcLP0bevw7zDuaS1ucGihHFlXl9fWmJZWmdaUV1YT1BCQkhFQkg7QUM+QUc/P0E3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJncW95eYOhqp6ml4yam5eLjZWRmo59iYuEjYqKipCHfISCcH+HgYZ7h3KDkouOfXF4dWxxeH5xem14c21pgXBtY2ltcHhpd3x+y7/B36dtY3huY1tiYEpQUlVOWV5PXVxOUE5UUFRUXG5tdoJxlq23q7Klr7Spq7u/sKq0pqS4pquuoKu0o46wrZqXmIyPkpGEjpuBjaaRnImDi4SKiYSLhJSVmJeUm5Gcl5man5+rrKWooqytz9LV0s7M09TUz9TRzsfD1NHHzdLT09fM0dHE0tbFwc7Hx8KovbfOnnxxaGBlX1hiU19bUFFUUU9IPkBGQUJFPEBBPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxVUU1OWnWGhYp3bHdwfX5/oZ6eoYyMmJOTi4ySj5WFeYWPkI2KioiQhn6Ce3J+gICHeoR1hZOQiH9vdnJrc317d3tzgnhya4BzcmlvcXp5cXq+y5p+jLKEdnKEdmhha11DWlpbVmVjWGRqU1hcXWBjXWN3en2LgZipo6SgnqCnpaqvuKqls6KhraGjraGnsZ+IppqTkpGJkI6IgZOJapSijJmEgYZ+kYODk5eti5WNlZmOhpKRnpeosKKhoaWkqcnNz8jCzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy411cWViYVpWWlVcUUtHSkpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7T0xGSlhwgHV9aHN4coKJgJ2VnZSFi5WJjomIjYaOf3iDk5iKjIeIi4h+gndze32Ch3d/eoaRlX+DbndwbXV/dXh9dIV8eWyHdnRufXaEdHh7nbWMO0GLxaV+jHxpZVdJQ2ZjZWNnamNtd1teZmhrbmhugIKHkYucnaCckJeYnqOjpbGjpLKfoaWdoKigo7GchZ6SkZGPioyKhoOPhH+cm4yNgoSFeZR/gqmVo4yRiZeSi36Yi5uSq7OYm5yonKe+w8a5tsbO0tHS0MzSy8jUztDV2tfX2NTZ2M3Y287J2drR1b7Ky7V6eXBnX1xUV1JdV0ZHSklFRT06NzpAQEI6RkQ/RENBREI7Pzs7N0RDNzU2NTU7MDY3OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhImBh3x4hZeWiI6Dh4WHeoR4cXp7g4V1eYWOjZx5i3B8b296f3F7gHGDh4Fujnp1d318gnR+fIaHr3NYqcK2jZGCcG1iPV5ocnBxcG54doFlaG9ydXhxeouGjZORmpWflYeLk5ugmp2pnqGsm6GamJ6lnp+rmYuai5CRjYR8h4eDhYuOn5mTiISHfmyZeoSYhoiTjI2UjIZ8nImUkK6qlJaYn5mnr7a9qa2+x8zJyczL0MnD0srU19nX2NfV29fT2dvV0Nra0dbI1MuWfH1ral1cUVVUYUlDRklIPkE+PTc6PT87PUc9P0FBQURBPj46ODdEQjc1NTQ3OS41NTY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEPkNHUmpebWRiZmt2gIhxkZCagHqAjX6CgoGDfoN7fISYjYeLfoWGgHeCeW57e4aBdHmSno6gdo51gnN1gX1zgIRvgZCCb5KEdXyBhXp2hnuJt8Wkwcm4gZabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJSOl5CDiY+WmZaVpZyXn5Wek5GXop2Zq5WQkIqMkYKMhIiIgYWPkZ2bmYmGjIGFmHqIiZ+XkIiNiouCfaGJkYy8oZiTmJmdqaamrp+otr/AwbnHys7Oxc3J0dbV1dnV19vU19na29fb2tnYztvGiH18aWtnYVZZV1dOTEVOQzs9PTw4Ojs9OT1ANj0/QDw/PTw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1bU1VYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bIqNknd2eop7foB+f3yEen6CkYmEhXqEh3t1fXRtfH2GfnN+kp6RnoORe4Z+eI9+eIqKboKagHSZhn6BiYR7fpB6j6mOj8OhvYucpJ19iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYiKkJKTjZyZkpOQlo2LlZ+clKCUkY2Nj4t+j46NioOIkpaanp6IjJWSnZGBi3+lmYiEjYKFhIGlhoqMuJidkZWWoqihnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuHt8em5raFliXVRQT0lETEI8PD45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw6RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PUNRU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97h3p8e4uGgn10g4V5c3pzbYB+hH53hZuim52Ukn+MiH+Yh4Cbkm6IqIV6oYt8kY2DiIScfZqQioyjoqCQpK+fi5CLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlIyGiIuSkouTk5OOi4+Kh5aanI+UlpCKkZOGgIuIkYyKiZyWmKKihpOdlqCKiYiNm5CDiI5/g4eGpIWMkbOYnZKUl6GhnpqSnJ6osritpr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aBygHdqaF9fWlVZWUNBSUM/Pj46NDk6Ozc6OzozOzs/PT43Ozk6MTpHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOjg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNiem1hfpKDb213i3h5f3qBfIZ8e3eGhH9zcIWCenV3dnSEgoR+f5KmpJ+lopeKnZCUl4uKqJdzirKNhKiShJmThZmMopWfmJKIm56jkqmwn5CUkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNyJWOhoeIj5KMjJKTiYWKiYWWmZqPj5SThpSXg3+Pi5mHjZCql5aiooiZnpaaiI6Gl5eJhI6MgX+Hj6SIjpOompeTl5mhmZ+Zk52bo7O0pqO8wb7HxcXJyMnCy9PNzdSp0tHW1tbY2tTS2s6FdYNrZmBgX1FLVlxCQkdDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI6STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfHxtfoh4en56gYGCfnZ2gIJ7bG6Lfnl8d3h8hIaLfoujtKikq7OhlqegpaSWla+ig5C4lZKzmo2hoIykm6+ipJ2YkKeXqZmtsKSXlJWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKcmIWIiI2Ui4uTj4eAhoeIkpiUjIqTk4aUmIaEkZCcc5CYspWWo6GInJmTj4qQipaaiYqWjYZ9jJifipCQnJqZk5mYoJShnZWfm6GxraOkt76zxcfEvcPDv8bOysnSp8/M09HQ1tjSz9i8dX15YGJXYlhSSUtPRUJDRDU+Ozc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj8/Nzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OklFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNXFxZSmhhO0iEi3p6bYWGeXyEeICFgX1weHx9fG9zjXp9gXt4houJhoSSqLytqbO9sKWus7Opo6KwrYqatZ2juaWVraSXqa23pqSjn5mpmKqkr7GqmpmclJWRmKCXmru7rcqhaba3qrCVmJ6iq5KXvaReqrKCiYmMlIaQfI6OfYOGjo+UlIiHkpaLj5WNi4yXmJGbmbSWlaqdi5yUko2QkouYmoqSnY+Lipafoo2VjZeZnZOcmJ6UoaCUnJ2mrqiipLO4q8LIxLa6vbzFyMjC0KHGyc3NxNfW0MrTo3N9bF9cVWFTUUhEPjxDQUE4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGZIYWBicEpAi4l/gHKGh3yBiXWCioN+bX18fH5wd4d3jYGHe42QjIaMmqvCwLC9xryztMG8tKyrs7aMqLKtrb2rm7ujqK25uKumpqKipKOqr7Kxqp2cpJibmJieoqalk6O5r6i/vKytsrmlo6d9iIacrb2wgouLipCDj4ORjnqBh5CNjpyIiI+XjYqUl5SQmpabp5qxmpGrnY6aj5KOlZCPlZaOkKCQiJWcpKyUlo+UnJ6UoJ2bmJ+glZufqKekoqSws6bAxsOwsLu2xcXDv82nx8PHw7zV0MzEyop2dWRfXWJdT0xDTEBFRz5BP0I8OjQ+QT09NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQjVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFSkhOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxoRl9pZ1tdXJOMjIh7h4uGg4x1hpCKgW5+e4F+cX6BepR6kpSUmJGTlai0x8nAwszCw7nHvLqvq7m7l7K2urLAr6XAo6uwvLyqrqujo56nrK+1samboKqcopyWn7C0p4yjurq1wburqJyypKSolISOqcTEpIKLjoeIhIaVlIx6g4yRjpGhjIyUkY6Hl6CYk5mVlqWgrp2MqpyOlo+SkZWVjZCUkY6hk4aXn6Cyn5SblKChmaSfmqCboJSZn6ekpqekr62lv8PCrqi3tcnDvrbOssS+w7uz0cnHwbV3e29eW19tVE5JRE1LS0pAQT1CRDw1QUQ7OjM9OEIzMzIyNjNBMTVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qajZaKi4iSj4aJeYaTkIFygHuMf3eHgoGPeY2hlqiampi7vsnIysLSycrCzb3Bs628v6e6v728xLitwamss7y9qrCqpKWjrK60rra1oJ+un6aimaO0vamcqLzBo7a2r6uTsKyqrJaGmqqnpZGCjJKklYmAdYmReYWNkZCen5KPlIuPi5OjmZeblJOhnqmfkaWajI+PkJWWiHyOlZKRopqVoKKctaaQoJelpKOln56mmJ6Vl5ylo6ioorKtqLvAxK+ls7fMwLquw7O7vcG5rcLCwr+ZcHtjW1lfXkxNTktHRENIQkFBREs6NERIOjs0PDdGLjEyMzUyQTI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bElfWGFaZGVYno+djpeOnpKJin+In5KEeIV/lH5/kIiJkICWoZqup6OYw77JxMjG083Ozcu8wrewur20vcu7w8G2t7yttMC5vK6vqKGpqLaurqmyt5qerKKoop2rt7eqpa++xLG9ubOnqrSzra2WlaWtqKCRjpKxxaeVjX2RlX2HkZiPqpmXk5OPk5SSpZ2TnZmToKGhnJifmIuMj5CeiFqPlpeSlqSZZpmjnrOllqKWrK2sp5yfppeYlpiVoaOopp+1q6m6u8O0prS1y8G4qrass7u4rqi4ury3hG9wXFpWV1BHTFROSz9BSERESEZGODVGTTs+Nz5BSy4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZmRNRqaUnJahl6iWjJCDh6WSiIGHgpuDg5WQkJSOmqKfr76uoce+xsXIx87Oz9LKvru2sbu7vL/PtcS9t7m3s7K2s7izrKecq6y5q6mor6+Xo66lqKSltcGwq620vsK5wLmzp7i0t7KvlaStsK+li5OUoI1zwZl9l5mEjpaai7GVmpmVkpKZmKWjlZ+alZmonJuhoJmKjI+WnWBKlpyalJmkl1SWsJ+vnJ+lla+vraaboaaUk5mYjp2fpqGZtKmqs7y8u6uwssfAuKasq62xsaOhsrK0pXNxZ15cUFJNRlFRUFE7SEtIRkdBQz05S1Q/QTo9RU0vNzUzNDpCNDROV048SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzVFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTdGJWRkirl5mfoaiumJCXh4qnlo2IkoWfh4Sdl46eoJqjpLXJtKnHvMPEycvJyMzOxr66s6+6uMDBzbXIusG5tbqyr6+ztKeknKu0tauqp62smaSupqWprLq/qKu3t77BwL63srLDsLe9rKOutK26poibl6Wadb6fhJidjpKYmouulqGcm5eUmp6gqZ6noJiZqZmhp52XkI2RnYNtdZOimpWcop+QrrKiq5Wpqpiqr6aloaWqkpKZnImVnKKelrCnqaq6t76zsq6+ubago6eopaacnK2pqY1maGNgU01NR0lPSlVMPUxFTUlKQENEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQzo5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYU1WSH5lXkhGrJScoZ+7rpiUnouTqpuRkZOIqo2Hop6Mo6yUo6S2x720wrvDwsjJxcLOyMK9ubKvubXAw8q2xrLBvLW7rKmtrLCjo5mqtbumqqesqp2or6ikq6u+vKitvLS3vsa8trW4wLC9v7Optbesv6WPopeQoZ+8nomaoJmXnZ2Pt56onKWjmpugmqelsqGanaWcp6mdmJSPlJuLlomMpKGUnKKfoLWwpaaUsauaq62fn6WkqpKWlaCEkJ6fnJappaGhtLS6tq2otbKynpyjpZqXlZmqoZ54Y19hX0xJRkhOUUlORUZGQlFKSEBER0FWU0RIPEFHUTE7Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6fw6ybl6SXmaiblZqajqqWlaimla2smaKrt8XCvL+3wcLAyMS/zca7vrmysLm0vsPItcCwvLa6t6ekq6utoaGbq6vEoqWorKaeq6+soqqovrimrb6wt7fGt7S4uL6xvsC2tLK1sL6jlqOVk5qTrZ+QoaGkoqOekL6kqJ2oq5ycoJumn72imKSeoqmroJ2VjZWek56HjoSNk56koJ22rKadl7OnmrCooJyrn6KNmpWfhI6hmpySpaSamKuxtbGqpaqtrJyYoKCSj5CWqZ+UaWVcYl5QSkhLT0xIRURJQD1PSEA7RklIW1JQSz1ITlU0QkY4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLS0wTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE6im6ObnsWroJ6rnZytn5Ginpakn6aqq5e2saOps7bFwr3AtsDCvMnCv8rItri1tLG0tLfCxre/sbm1uragp6yrrJ6foKWkwaWhqq2gpKmtsKKnqL21pbG7t7a1w7Kyt7q+ssPAuLittLW1o52klJGToK2fmKGdqKiqoprCrKidq62amp2YpqC9oZ2kmKurrKahmY2an5KeiI5Yf5afpqGguaqnlJm3o5+zoqGcsJihj5qVnoKPoJeXjqKjlZClrrOrqaKipaSVlZyYi4+Sk6SfiWNnXGVhTUpLS09GRUFHSz49SUE5OUpKTl1RUUk9TFZdOUZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExQnqCgmJ7Dp6Sis6CcsqeSqqOfo56tqaydu7GprLWxyMPBw7PCw77HxL3Eyr2wsbausbWwwMW1urGxuratmqmwqaqbn6ahp8KtnK2xnKqirrGqpKi9t6a2u72vt8Ots7PCv7LGs7q3q7W2rqqippWVlKKroZ+fmaerr6+vu7Gln6mpmZiXk6KkuKCho5Kur6ukpZ6RoZ6UnY6QjZSdmqOfqLWnp42ZtZyjr5ugnLCRoZWYlZuAkqKWkI6foJOLpqywpaeinaCekpKak4WLko2cn4BkaF1oZktKTEtTQUNASUc7O0Y+ODlOTVVfUlNKPk9eXj1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9nckA4PEiWd2VBNJ+knpqgwqejqbGgo7SplbGrpqKksqytqbuyrbC1tMa/xMS2v8S+ysW2wMnCtay1qbC5rMDEtLivrba6pZmrsqyqmKGnmK27tJyosJutn661sqequ7OnubO4srjAqreyw720xae+rq23tamnrKGWlpGlpKGhl5ekrretsbS2n56opJmTlJOjoLejpKWVrrGxpamloZ6bmZqVmKign5minq+zoqaNmK+apayYm5+nk56QlZmahpeglY2QnZ6Ui6mpqqKnoZqelo2PmZCChpWJlZ96ZWpdbGtOUU5OVD1DQU5DOzpJPzc3UU5dX1JWUUJXYF1CSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWpWQ1dGjHlmQzukpJygpb+mqK6uoKm1qp23r6ujqrS2sLC4t7C3uLfEvcPHvbzDwsfBusHGwbqqtqWtu63Bw7i4qq2yvKOVrbGtspemqJGquaqhp7Cdq6CvtLOqqre1rLuss7K5t6y4sMG6vb+mw6qwtq6pq6umnZiYqqGhoJGXoLCvs6uwuJmbqZ+ZlpKXpqC3qaWioq+xs6uxp6ugnKCfm56lnaGYnaO0sJyfkZSmmqGpnJakopiajJaZlJaXnpSJkpuZlI6pqaego5yZm5OHj5mLfo2Xho+bbGltYm5uWFFRWlRBQ0RVQDs7SEA3OlhQZF5RV1dFWV9eTkxTT19MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOG19aFxWOol7Y0M9qJ+coam8oKqvqqOxt6mltLKroa21va+zuLy7vbe2wMK/ycS5xMPAwLnFvcG4r7aoq7eyvL+/tKqvsrifl6ytqK6YqamOp7ufpa2znquisbCzrKq2s7W8rbCxtaywtbLAusW2q7yvsbesraqjsaWepaieo5aPmJ+yqrOpqrKZnaebmpSMoKaktK6noaysrbGns6uxqaObnqiknpWhmpyotqmYmpKSn5mfoaCSraGbmoiXmYydmp6Ui4+Xl5qXp6WjoJ6XlpaUgJCVhHuPk4SNl2dtcmhxc2BHWWZWRENNWERaOUhCNT5dUWhcT1pdR1teXk9NU1hkSktDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FWMTUxPWBWXzgpQzNZVVxnSzWMemZMQKWZn6SrtqOsqKWurbWpr7O5pqewt8a3sbe/wsK2tbrFvszFucPBusC6xbjBurO0rKq6uLu6vrWrr7G3mZioq6usnK6rj6u+nquvsaOqn7Gts66utbG5t6qtrrGntbCzurzJsqq1tbG0sK6moLOgmqisoKWVlpqZsaKtoKWvlqGkmpmSjaKlp7KpoaaxrKq1pa6wtK+jmZ2tp5uXnpuarLiimJORj5icoZmYla6hn5eDlpuOnpyal5GLlJOemaWjo6GZl5OSlnuMkYV7jYuDjJNsbnlvdn1iRmBqWklIWls9e0pHRTZBYlVpW01cYUtcXFpSU1NiYUxLRWBhYFBNSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1lUTEWalp+wqLGprKSjrq21qLezt6OstLfJu7W7u8C+tbS3w8DMx7vEvbe/v8G4wL2yva6ourm4t8K3rK6yupaXp6+sqKSyqZSvu6SssrKmp6OytLGysbWwt7OprquyprivtbPExbaptbWrsK6pp6K2np+msKCjlJuZlLCep5ufqY2pop6blZelpaS3p6Kws6unsKetr7SspJmhrKicnJ2dlaq5nJWPj4yYnaOYkZiopKGZhpWYkZ2cmJeWiJePl5uonaWhkpaSkJZ3hJGGfIaChI2NbnF4dnyAXUxlbFxKT2RdP2J7R0k4R2dXZltNXmJNWVlXVVhVaV1PUEhhXl9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGcyNydGYUxWJS1CLj1FTFE8M3JrTEVEkZmkraSsraqmo7Cysqq3sLWfq7W5ybmuwbzDuLOytcLDz8TAwr61vsDAu7+9tMSpqrmxtrfAvK+stLSeoaexrqWmsaWesrWtqrKxq6iotbqstbK1q7StqquorKm5rbKwx7+4pbmwqa2tpqetsKWko66jqJydm5qvmaKioqOQrJ+joJ+hqaaluKSrtLSkqquprK62rqKdo6irnKCZm5OktZqPiY6IkaOhlo+Wn6OXloeRlpSem5mWlYeYkpWZp5ygoI2Tko6ReH6PhX19fYeKinJ0c39+fl1TY25eTlpnXUZElltHOk5tWGJbTmFiTlZWVldVWWheUVNNY1pbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RkOzYqSGRISis6ST8zQ0lTLD6PbEBISZCaqKmhqbCkp6OztLC0tLCwoKutvcy7rsK9x7K0rrTBw9HExr/Bsr7Cw7y/uL3FqK23rLS4vMCxrLKuoaOnrqqopbGjqrCqrquxrq6sq7O7p7ewsqmyqqumpaOtuq2rsMK5tKy5qamoramnsaWppKKuqaiinpyirJWlnZiemayeoqeooaymo62strCxoKmjoKqtsKydnqenqZqjmJmQoKiYhoSPi4ufoJCMjpeekpKIiZKWoZ2WmZaGl5OUl6Wcnp2MkpCOin9/iIR8d4CHhYd1dHKJd2xfWWBuY1FzcVxLO4R8Rj5XdVhgWU9jXE5VVlVXUVxiX1NPT2hZV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTM5NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLkpnREY4PEIwNUVLWDFAlF1ATkaVlqynoKmxnKeosLWsuLWtqqSqqr3JvLG/ucOvsK2zw8TOzsO/wLTAw8S6wbTJxKyvt66zusC+tK6urKaoqrGppqmyprStqq+trbGusq20u6W3s6ysrqiroKOesLesqq25tqS1taSqp6ysqq2gqKansbGkp6WhoauWqqGTm6CmnqSjqqOsop6msbasrKKlo5qpq66pnaGlpKSZoJmWj5idk4GCkImFnaCNi5CNnJGTjYWOmaWbk5GbjJOSkpSjmpyai4+LjHyGgoKBenWBhIF+dXeLood4al5gbmZXZodkTkBnkkxFYnpXYlhSZlVNVlZVVE9cXWFWTE9qV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOzo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIdCSUlElpCupKGqr5ipqK21qrWxqqWrqqm8wMC5urS8taazr8PJy9G/wbu5v7/DusK6wcSusbWytLzBvrOxr62srKe3qqWtsKu4rqiwr66xq7WqtrWntLerrKSqqpyknrOzqaiks7Sfta2hqqirqKunn6urqLm2qaqqqaKpn62bkaqhnaCko6aiqp6cprSup6WpoqSYpaanqpyipKOgmZifkY6PmY1/h4yHhJ6eiYaMjJCQk4+FiJajmo6Nm5GSkI+Sn5iZl42LhIB0h4J/fnh1g4B6eH5/iJ2PcHFmZ3F4XGF0iGpPXZhWSG15VWRWU2NQTVVVVVFPWFtiVklRalRWVEdQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UyMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyQGY9Tlg/Qyw/TFRfL0lrN1JGO5WNr6ClqqyZqqOtrrK0r6qkr6mou7+8wbKwua2itq/Ix8jRwL+9urzDvrvEwsC/r7Kzs7a9vMGxsrSrtKmltqmlrbOyuK+irbSxr7G5q7muqq63q6qeqqugo6G1ramhn66yobSqnqinq6OqoaGsrai9rquuraGnqJ+smY+woZiioKimnqebmamwqaKfrKKhkqKio6eZmqmmmJiZnY+Lh5WIfY6GhIWkloaDhI2IkZCShoeWoZeJkZ6Rk5CNkZyVmI+LhoZ4dIGAfXR4eoB7dHR7aoKIpHZpXmVrgXVniIt8UlZwX0t4c1RkU1FfTU1TWmZOTVdZZVlHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzOPjrCgpKWqo6SjrKa0s7GopLCnqri/wb2xqbqqp62wycbI0MO+wL25v8C9ybzCuLGwtbK6vLnAs7W8rLmso7Wnp6yxtriypae5ta20vK+8pa2ttqutnKmvpJ+krKqonJ2qsqSzqJqqp6qkqZ2iqaepvau0sK6dqaSgr5yas6KWpZulpJ+lmpqoqqWemqmhm5GboKSemZepqpGZmpKQi4KPhX6Qg4CIn4+HgX+NiZOQkYaDlZuUhpOijpSRi5Gbk5aHin+Acnp5fnxodnx7dXFxfmqGeoWIZF9nY3KFe21neV1eVkJXe21UYVBSWUtMTnB0XUlaW2hZRlZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpKwmZ+fqaSioauktrKxpKmwpq25wr23sKS5rKmosMLIyczCt72/tbjBusi2w7W0s7Wyvbm6vbauuba/rKK0pqqrrrW3tKmcubuosb6yuqCutLapq5+tsaOcpaipo52bpLCmr6Gfqqmnoqqco6igrbynrrGuoaqipK6enqymmJ+aoaKbn5uZo6qimpmjo5WWlJ+hlpyWpqyMn5KPkYyCioCAj4F7mpWMiX2AjYiSkI2Lh5OYkYeUpIqSkYeQmZCUgYh9emx9dnl4Ynp6cnBxc3hqgnVrgmdjZ2Fuc45tYmpvX3BBXXlrVl5OUVFLSU1TWVZNXF5sV0VYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl0+I5GWq5ifl6eioZ+opLevraKvr6isuMO6tK6gua+rp7O6x8rHv7jCva+0v7fEtsOysLqxssC2u723qrm4vqqktaeoqq+tuK+omLi8pK2+tLShrbi1p6aosLOgnqWlp6GlmZ6sp6ieoKqvp6Cml6Kon7C4n6Oxr6GroayknKemqJqbm5+ilZycmp2pppabnqiRmJKZnZOZlqGqkZuKjpCHfYd+go58fKGNjIl6hI2GjI6NhoqTmo+JlaCJkJWCjJeNkXyFfHRwfHFzdGB4eGpvcXFwa39zZHpsaGVjYWaHgGBbcmpyTU6AaVhaTVFMS0hQUlBHTVtfb1RFWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsn56hpKG3q7CjtLOpqbrFt7OuobitrauvtcXHwLe/wrmwtb23v7u+sKy+sLO/srzCuKq7urinqLWop6uvq7KvpJi7tqSrurWvnrG5r6mlp6+ynKGkoKSjoJabr6ahn6Kor6GgopOjpKK2sKGmsaufrKOumJ2qpaifmJqdo5Oam5qdpaqam5ullZSXlZyOk5eiqaKRiouQhnqEfoSLeo+Xio2HeoKIhYqNj4aQk5iMjpaZi4+WfoaXjI96gXtwcnZub3NfeHdlbGxsamqFbmZyaWtlaF1kc4FgW2t2aVpKf15cWE9PS0hIUlVHMzldXmxQRVlVWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFRdaEQuPDJkVywylKGhl5SbqpyjoaKht6qtoLu3pay9xbSxr6O1r6ysrrTDw7yzv7q3sbO5uLq4uq+uwLOzuK+/wLetvbq1paKyqaepsaqtsZ+Zv7Wkp7S1qJ6yvKmopamvrJmip5ykpZSXoLKkmZ6jqKmcop+SpKCkuKmkp66mnqWhqJOgqaKhoZmbnZ+RmZuWn6Gqm5qYoJSRlJeajZSTpKikkImKj4Z6hHuEhn2djYqLh3qBhYiJipKGl5KSi5CVlI6NlHuDmI+Ld358bHRybGxzYXd1aGhqZ2dwh2hoaWRmaWlgamNqaFtme2NgU3RUXFtSTEpGSU9TQCEqaF5pTERXVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp6ipJGOpKaanZ6do7Stp6q6tqesxMG4sayjtq6nra63wL+8ssK3sK6ytra5tratqr2zrrKxvL+3rru7saWftqqlpbOnqa2dnMCrp6Wvs6qstbueqaqrsaWYnqqdpqSRmKWsopiepKmhnKGblp+dp7WmsKquoaGdnqGVoKafoaCam5mbkpidk6WdrKGXlp2Uk42Vl4uPmJupn5KJiouJeYV3gYKBnYeLgop9gIWIh4aRhJeUkI6PkZGRjJN7g5WPhnN+fmZ5b2pqa2Z0c2tjZ2RkdoFiZWZmZmppY2tyW19ZXm1kYU5pWFpgVkpHSEtNUlg+OV9saEhDVVRdW0lJR0VBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFlKVmJmQDozQmhIJTWao6CPjK2hl5eglqSzsaKyvbahsca8urKxo7esqq2puLy7uq3Asq6urravs7izqau5sa+us7a6tq+4vaymnrWqn6Cvo6mum6G/oLCjrrGvt661nq2vra2imZ2nqaWflZqnpZ+ZpKKonZqfmpOcnqyvprqorqKhmpuemZ6kmqSdl56Ym5SYn5KolaqnmpOampKMlZmOlJSaqaaOjoqKj3uCc4GBipiFh3yJioaGioyJkoWVm5OSj5CRl46Qf4CNjoNvgX9meW1na2lmcXJrXGhjY3SBYmZnam5sZ2pqaG5dbGxzcGBUY2ljZllJRkxNT1hSUVVhZYBVQVdTWVRHSUZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyY0kaGbjY+wnZmToZqpsa+fub+1oLTCu766saa3r6etpLe4t7etu66tqqu3qrO3rqaytbKuqbC2trCztbqmqZ+1qJydqKCorJqnvZispK6vtrWsrZ+xrbCpopuco6uonJScp6OdmqmipJaan5uQm6Sqq6q8n6ekoJiamZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJiagJaKoZB5h5SNg21pf3eDcWyGi4Z9hYyHcV5jYWeEmIZri46UknR3i4R+g5CAZ4eAZ3VoZVdcaHNtTlBqY2dzhWhfZWZubWpdYGGKj4OEZU5LRDlHVGheSkdQUFVVTEhSYG90ZUZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsKzA4PUc3MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoukmYaVsJubk6Cbqq2qo73Fr6m3wre9va2mt7ClqqK3s7KysbmsqaastKavtKKpt7a2qKestrKutK2zoamfs6mdoaObpaaYq7mUpaWvs7etrqWprquspaGenKGnppuXoKWlm5unpp2Tnp6Xj52nqaS2sKSjop2WmJeXo4ihjpKahqGHk5ygf6V/paqekpKakYiEc3iNjoWIoXaJjWmXiGZ+c3igb4iHhH6PfX+hoKCZgH2InnSHjnWbimyHgYNtaWVjemxyYVOFbWJsaZhxWGlxcIhYXmlbbGxbiHJuenKFZ4aEWl9HTj9HX01FUlZWUVFTV1RnXU1WSFJST0ZIRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiKp5eDnKucmJidn6qpp6q/w6+xury3wL+qpbewqayksrSurrO3qqilsK2ltLKbrbW2taanqLKwrLKnrZ2poLGnn6OimZ+hmqyzlKOlpba9pq2nq6qsqKWhoJigpqOZmaWjpJicpKmWlKKbk5Kjpaaht6SkoKOYlZOXkpyIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZYDAnL95hIV6koR8kJCRynKXvJzFenK1pruQe4BtlrGrsHlobFixrm5lab2SvG5nem9yj9h+U2tjtrJ+gXKUc5qhqpBXT1diT1ZORlVbWFFRU4xcV1tQQVxEUU5FSEk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT46Qjw/QTg6Sj41MioyMkJFLy4zMi4rLygtLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKeTgaeqn5ecnqWssqmwwr6ytb+1tr7Bq6e0rKyppq6zqa+2s6enprSlp7itnLOytqulpKexraywpqqdpqSwoqGfnZaanpytq5Odop+zuqOqqaKtrqWhnJqaoqefl5unoJ+YnqenkZymmpOdoaaiobGjn5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUca6hpH54u31roZB2sV9qtFulgGWckWBng3tnf2p4a6llvnJnpox1sWp8sXh0kpRjbm2nbluEoUVoZoeWRXWcYH5nfKSnglpfjKtogJV4eWqnN0qvXFhTbGRbS05YX1xXVjtOiU9XVy9JVFNKQ0ZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYOtp6Weo6Sqsbestb2/sLbEsre6waapsKquqKivrqOwuq+jpK2yo6m4p56zs7CjpaCprK+rr6annqOhr5uim5aVlpqaq6WVmqGftLOiq5yjra2gnpmWoKKonJido5+bmaGmpI+copmXoJ+qnqamoJqgoZaVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH5rgqZ7goaIk5STd6tna7Fcq3qNhpR0iXKPh4B/iJCXeIKBi5iLg6CPhLB2d59xbGxsfItOpFhIYmKZfmNopmB5cnVTk4deUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5V1hBI01oRkNFQUBBMTk+ODg6ODQ7Ojk8ODpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE9PFN9bjMrWGpcT1hNX2dXN0o4YVU1MBuUoJWIs6amoa+pp7Osqbu2wrC7wa24t7+prK2traatsamgrruqoKe0rKOrtKSmsrOno6Kep6qxp7CnpZ2fn66VnpmUlJWYnaygmZmkqLWvoqqPqqiqm52Vl6ClqJqenKKem5+jpaOVm56XmZyiqZummZyboqCXk5GTk5yD1ZOZuXCwwX7FhnzWlJu7fJqVpY+NnY2ke46IpIOlgnqseY+dVq96iH6farlauXaGhH6mgpR7mHqqeI2dj3qxbo6EdJG8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiFgIl8Y6QzQp12XVBqaWNQQFhnWmRhSkhNbk5cUU9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6O0RIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFQNzElm6KUmLKoqKa0qqW0qaS8t8Gwub+xtbS6srSnsa+isLKmn621p5qnua2ir7Cfs7SwoaSen6apsKi0qKObnZ2qlZiXlZWUlqCpnJmWp62wqaOfj62jqJadlpuhpaGYoaGhoZqhoqebnqCelJiapqCbp5Wbm5+hmJCSlJCdiLJuaLVxq4dujqZytHNytnual6SLj52Non+RoaZ/sXaDkdLSdlyue4V/pG+bqqZrh4V9rX2YmY57sXGSno54s2WXdISeb55mlFHIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFPa2BsaFBWR0k5PVVSWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTDYyMKKdkqWwrKOrvK2mtKantru8srq+tra0ubiypbSzoLGxop6rr6SXprmtpLGwm7S4qqClnqGppLGnrKmjmZyZp52Vk5eXkZKhpp+Vk6WqsKailpOtoKaSlKCbpKaflZqlpqGao5+tmaCenpCVm6GdnKWVnZWaop+VmJWRm4Wse3eodqONiIapb62KgqeDmJihiZKai6J/k5qJroV/grNccrNSrn2CgqR/cdd9eIV+j52Gmpl2r4aHkZyHd7RhmmWagoKVbZJasFhLmnWYeWZgrV52d4homIhsXa93lZ6PeGw1eciusl9CVG9eZ2BFUGxgcG1WVk0uZmRpU1lQO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEg6OTmgnpWgubCXtMKtqLOoqbK6t7O3vrm3sbS6tKS3sp+zrJ+eqKuflKe1q6ivsaqttKSbqaCfp6G1pqapopidlKSgk5Kbl5GUoaSakpCmra+moZWZqqCjj5GhmaikoJWZpaidnKSerZ2hnaCNk56anaGYmZuWl6KglJeQpp2GqX19pXihjo2CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTYf3aIdKiBjpuMkqR7lI+fhHuyXp1koH6DlW2SXKtbWpOAkX9oZ6pkcnuBa5iHc16rWomgjmtvZU9KQ6FcW0x0XWJnTlthX3JzX0tWN0qblVlHRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDUuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84op6amsCrmLTCrqutqaW0sLewtb65ubGwtbqourSfr6SdpKennpOpsKmvqbSrqq6hmKCgpqSjuaKiq6CWm5Ghn5STnpmTl56fkIyMqLCwp56Xm6imoIySpJeoqqeUl6mnnp6goq2koZ6ijJShmJ+gkp6XnJWeoZWWjqucj65tcrRzqYt1iqdztHhzs4CRpKOSnI6JpIeQd7hwjXuLomprtlqhhWWXl2mhoqdtlHK0dJOZfrJqhZGHrWp1s2GdZqJvh5Nrl1ytX02hfIeRUnOjbHl/fm+Yh3Jdr1Y8nHdmVG9uLlynT2NTa2VibVpjXWFwe2NUWlI+P25wM0NCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKacm568oZuywK6tq6ynt6m3r7W/tLuvrre2qsC1qKmgmqWjoZyRqqmntaKyp66poJecp5+kq7idoqyalZmOo6KVjJ2gm5icn5GTlKq2sKiZlZysqZeMlKWZpayikZaqsqOfnqarsZmho4+Yopafm5aclqGTnamclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJeLjKeIeqS2dX53dsKCmrJgg7p5wHx1uGO1goyHqX2VgaupcXt/dLyIp6BpnWGmjq+hfox0h6p9vm9zvHSyg3V4gYpumohybo2kdL1ed31aYXm8a1pWXGp5XmphZWdjbXhvWlxZQ0FBc0BDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQj1FODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56ivaGXssOwraqrrLGnt6+2xLC4sK25rq3AsKujoZ6joZybkKijqrKktKWspZ6VmqqYpqy4nKKtl5Sfj6Sfkoycop2XnZqRlpKvubKslpikqKeUkJaknKSsnpCgqKufmp+oo7Ofo6WOp6KUopqcmJWjmJCvoJKUqZ6EkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSfwbu9mnuBsahxgHORuYN8hoaMh418ioeNmHyku7m9nHR6tKN0d5d2dLB1mZ5mhmqNtXRycXe2jF5/en2JaIN5bnpji6xwdYV/WFunakVlWlRmYGNeY1FnZ3BsdUNOUE1EO1pNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PjcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT11dPSs6VlUnPjs8p56hor+llrTDtKyrqKyrqbqusMWts7KttqazuKupoaGlnqCdmZOqo6yppbWnp5+blaCjnaukvaahqZaTm5Chm5GPoaehk5yXlJiUsbW3rZmepKSii5KSppulqpuVqaWlm5mhqKWnpKmhka2flqSel5eXnZ6Pr6iUm6ahjWp9aZumd4dyfZmOdHlkh3u9vsC6b5ODcpaIYHJqWl6biWBjiI+Va2CAlWNtnXdilWyAmpWUZV5gY3Caimlyi32GlWdrf3J1eH1+Ylt3dIFoUFxtg317i2tYa3qCc0pKb4ZwTnRNRVhdZ2FMW1dnY19PW211aXFSUURFTTtHST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFS09IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPltPJz8yPqmgqKLCo5u1urajrKWup6e1sazIq6+yqrOivbCxpp+ip52jm5mZq6auo6S0qKWbl5Sgm6atqL2nqKSUk5uVn5mSl6SoqJCdkZCYnLCyv6ycp56noomTkamaqKOamqugo5mao6eso6Cro5qwm5WnoJaUnZ+dl7ClmKGnmZuQnJyiopiloZmbmZmZj5WBZ219cXeSmJSShYu1qo2GmJWOioyYloeUlYqEk5SRiY6TlJiUmJaaoKGam5SgnI2CeqWFbWt9kXyAdYqKgXGCeHl2dYl/fIpqc4F0g3Vld313a296bWBjXXBoTVlaZmpgV1pveW1tZlRQRlM5T1pNUU8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSiw8LUCzobOiwKGksrK2oKmlsqelsLSqyKqsr6W0pcCms6CdpKSco5WVn6qmrKKjtqufmJaVn5atqaXAnqujlJGbl52XkpShnp6ip5OSmainssSwm6udq5+QlpaonaqcnJ+smKGbnKKkr6eipaifrpiXp52ZmaCenZyvoJyhppWXkpeTn6CUop2XoI6Wk4qKjY6XrpB8lpyDkoKLqqmFgJmXiYSQnoh6hJCHhpqSiIaKlo+bl42RmJ2klpmTkJyNf45nobOvhYqEdnuSin13eXpvZnmPgYCJanWBeYhzaXN/e3aDh4JrdWR5ZmBqZWNkZmtZbHtvaWtdU0xQRF5URUA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9iY2FfXV5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0W0c1PCxAtKC5sL+sq66ysaCqprKtoqyzr8Svqaqisa28orObn6aioZyYl6elqaWkpbK1npSTnZmZr6WtvqCropCRnZmZlJGVoZyXqJyEn6uso7TItKCqpKuXlpeapp2pm5+kq5Sen52gqq+qpqSroq6bn6CgmKSenJ+cr6OYnqeSl5ackaOYl6ecmpdlgpJ8ZX6NmpBjeY5taGt7kqSqamWbmH1nhoplZWloe46hj2tnjZiRo3draouZo5+Yc2xteoSOiHpYZl6Gg15tjIqBdlxoc3d2kYCIgm13gXh/c215hHR2iYiPg3xrh1lebHRkXnOJaWt8cWtkX1JOWElkWEFKND5HNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaagur26r6y0saqlqK2usKatrbC8sKimo62usJ6slp+jnaGZmaaqnK2jpaepsq2elKOPoq+ltrmlrqKOjpqhmZOSmqCZmaSVfKauo6i0xLiloqevn52VnqKeo5yjqaiSn6Gdoaqwq6ukq6CqnKefp6CslqGbpbCkl5uplaCdmpGjlp2pl519vYOIcrRyhJ2GrWh4ucS4cZOio3qmmZlyq4J8y8DAu3GMo4iCn32XmYmdwL2Cl52ejZ3CwXyCfJONmsPAfWylsm+MgW/Ken+bdpCDjoF1eYCAeXF6f4dwd4WMk3lueJRjZ2B4ZGBlgmNedGdsZGRZTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhDQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9WQUI7LziWo7nDtbCwwKmolKOvqLCuraays66ppKWmr6ufqpiaop+cmqqmoZyroqSopKS0pJyikqatq7ezp66ikZCZnKWSkZ+hmJufnYinraWsrsDAsaGpr6mWkp+dopqipKqjk6CinZ6tr6qtp6SkqKGmpZ2sqJGjmqitqZqcqJuroJWWpJWfopacfs6UeHqkgXmVlptfro9ejqeBoqB8p5abc6uDgK9eY42qe6iHhaB1l5OIs2OCq4ahjo2zaoSvdH2XiLdhg61ao81ukHZ72nt/mXB9h5J2fWV6h3Z2a3yHbn2GkZF+bYOQYXJtcGhgYHpkXHFoamRnYFJUU1ddS09DNUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqets6umsqurqqOqpq+pn6abmaWXnKKvn6CfqKeipaCfsKuanZWnrqywqqirn5SRmp+kko+epZiep6OfrqassanAx7OoqbGulpKdnKKXn6mqn5Whn52drrCprKqcqKiloquSrLKWpaKqqp2ipaSgrp+RmKaYn5mTk5GXoHGFjJd1haiGcbF9nnKsfqKfgaWPnnargn2tf5xzrX+sh4afdpmSe3yXfqqIooySjJ1+q3uJlJCfgHutV53Fe49wk8F9gZVtdW+MbWV2ZYZvYXducm+JipKPg26SkWZwdXVxYWdtZV9vaWlvZ2RYVF1hWlJTRDlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXlxbWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNXQEYhHEc6QzEuK7DTxsaytKCdo46joqKsr7auqLGmqKqmraurpqGjnZmilZ+lq5+hpZ+oqKKenbCsl5qWqKeuq6emp56XlJmjoZGUoK2bnaejsK2lrbarus6yraaurJeVnJ2imZ6urJyXoJqen6mzq6urm62rpaOrmq6xoaerraWYpKmoqK+hkZWio5mTkYSkaqR1iXqpdHqycIKmipmMcYmgm4ekYGBSq4V/roObdq2CqIaFn3qZl4Z7ZoCjiaSZhoKjfal+gpaHrl98qVaeo5KBeqOfgHvDr8WLcq+zs7lyYqmvwnRojIyYjoJunJVxb3p4eXBtZ2VlcnBmfWpjXVdgalhZVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioyUEtMIyBBOUQ0LCfCydXUv6GZq6egr6KesLSwrqmsoqemqKqrqaSmoJuknp2lp6ejnKuaoqyho5+voZyakqukta+uoKeanZWTpqKQmqKooKCmnLGmpqmyrrfIsrWqrKmWkZ2copmgpbOdmqGUnZ+nrK2ksJutq6OjqqGzraGqs7Ghmqinra60oZGUoqaXmpF7qmyehId1q3l8sG+CpYyJn5aWoJWB0ri0uMmBgbJfYJSpg6WIh6B6mJaaeKrJdJqklaipkZOajYGciprGxnlnoYKldIGfjoJ9r11wtGKwdUujh22nR4KTZI+QnpF8cZmVgXF8dX58blxmanNxZoFrX2FZZG5cX1lJTk1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKWinLK4rKqhpZqopKqrqqafpqaYqqOfrqudpaCsmp6ppZyntp6il5Opq7WyrJulnKCUj6WskZmcqKOhqqeuoqWnqbC1w7Kzqq2ok4qXnKWboaOupZehlZmcpqatnLGer6mnn6yjt6yhsbivnZquprGysaOTlqaimJ6Ogp1OeJqBf596hKN9g6SFh6afnZ+UhLh7e3m5gn/MxsK2eJuhkYuffpqWl4p2npiKpJejqX+whZ2GoISsfZqVY6ZtpHCPhZCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Uk413e3OGf3Fcbm54cmqCcFtkYGlvY2RdTE1RVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZZWVpbXF9fXl1fX11aWlpYVVNPSEA4ODIuLCouKyonJz9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq6fm6GssrOlnqCVpa2trqqnnKanm6OoobOuoqmmsqCYqaSUo7aiopWXoqm0uKOboZyiko+hsZmem6emoaKwrp2mqaK2ssWxramtqZGHkJyonaKknKWXnpmamqalq5uwoq+lp5ivpLusoba2rZ2ctLG3r7Gll5yun6KdhY/RtcO3eYeOhZGTkICmeZShd4ygkoSlgYpxqoaFtG5yaZqknJWKn3yYmYaHj3OvgqWboo6mi5Odi5aQm25xsl2ldJN6nGyZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2NjpWOen55kINuanlpenNvgXVeZWVvbmZoYEtbWFg8SEhAVTRARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtbWlhVUlJRRjoyMjMvLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWSc4yKrb6/vLq0npanpK21oaKZlKKopq6rq5imo5+loaG2p6Oop7CjlKyjjqStop2Qmpqqs7OknKScqJGUl66fn56npJ2onbabo6uktqzEsKmrqaKMhI6coqCmopaZmp2ZnJmnpqeZraivpKabraa9rJS9r6yfoa+yt6mypZqosKKnl3mokX18sHeKgKSliJxtsnChh618oY+Dp5WYgKyJha2FoJWqoKKXhp+AmZWAe5J+q4CdmpaLq3idoZKKlJKBeq9epIF9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWRppmDlo6ajnx8hJmAa25/Y390boB6YGhmcW9paGhDWmFbPktVM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFSU1NWWl1fYWBhYWFeXVtaWFNQT05JNzA0Mi4qLEFUVlZWVVRVVVVVVFRVVFRUVldXWFZVVVFIRklKIygovZOag6jFwrbAs56arKCtt6Wjjpukop+wsKqfpaCerZmeuaGjq6CvqZmuoZCrqKOWiZqQrrCspp6lm6yXl4+soaGdpqGapZ2umKGop7epwa+kqaSei4GOm5qfp5+SlJmblZuapqWmm6qsraSln6movqSWwqyqoqCqsbeorKWesq2nqJd1r36Qi5yFh366rYqZZbCNZZWtfaGPhKaVmoGsioSwhaaapKGhkYWhXGxqgbNgf617e4OBsW1nb5mZjIixW361XKSEa8iiZJ+Ae7xYdrRZsn1SroB6rFiAoW2Yj6ibjJiSmpp8epGff2V1f2OGeHSBfWJqZ3FuZ2ZmUFVkXEFVYD5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFFSVFdaXmBfYGFiXl9cW1hVUE5KRkM1NTMuL0BVWVhXWFdXWFdXV1dWV1dWV1hXV1hZWlpbXFhXV0dCO9KfsrG3vbqzwbKinKympLWpoIqaoJ6cs7Opn6ShnraZoLSoqqyer62drJuVr6ehjoibjq+rqKahpZmukpiPqZminqWfmqOjpZmgoqqzqb2vpKienY9+i5uWoaGakJGanJKamKmgopqprqimpqKkqbueoMampKigqbOzqq2lnrqsq6uUgKmSo6+Om4CHpJeZkIKAuMO6g46ck4Snl5yCrIqCr4innJumqpB+1b3CqmKjv719fqOChNe6uLWFlZODnr2+hG2jgm+rhGycf3qysMeDaauwvax4d6K+vHOAlo6nnZGbkpqge4OTnXtkfntlj2d5gnxhbGZra2NRYltTalw/VWJDTSk9OjQvHx8kHyUyIB0kKDA0OTY2Nzc7PkFDRkdJS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbOzsL+4sbyyopyupqWypp2LmKXAqriyqKLAp6iznZ+ynbqon62vpaeUlLCrl4yDm5GupaKsoKOcqqCXi6OSpp6nnJqhqaOZn6Gsrqq6raejmpeTfYiZkaack4+RmJmPmJSpm6GZqqmhq6ego6q7nqjEop+toqiysqeuqZ+5pq2tmXN2qqW4hmSJoHBorpGLkG5ud6SQmZ+Bda6YlHCPi3GVqKOal66kcmxsbGaLeG9ugplxgXpqcWlnipeWmHFpaYaIZ3GGZF2IYmpvWVxmfXamX2FxjpFuZWR/jZOPopmZmZOaon6JkZh3Z4l4aY9reYB6ZW1kZ21jS2VYSmtaOlFmRlEnSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1dXWV1eXl1cXFxdXl1eXVtbVVdeqZSss6m5uLKzqqmhrp6js6qYkr+zxcq/t6qfwa2upKKorJ+6o6Suq62mjpeuqY+LhZWWrZ6mqqCdpKOgkYulkqeZqZqXo6qhlp6mp6iwu6urmpuTk3yElo6mmY6SkZmVjpiWqZagmamjnLGmnaKruZ+vwaejsqWqrrCpq6mltaKstpWKoaimt52JlqOZiKqbkZWdkqmzmZqjqqCylqKhnZ+inKGlopWrp42SkoyHk5ydlZGZk5mRj5WFgaWbmJaOi5SUjJCHhX5niX50gnVzh4pwp2x6k5CTkoCBjY+Qj52VopeamqWEiZeQc2uRd3GMeHd9emptZWRwZVVhWUBqXEhjYlBZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhUVlleYGFjXV5UUUtFQz45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKaWqKqktLaurqGwo62foLaxkI6syL7GvLqro6afnaefsamjtqedqbSmqJGYrKKLh4mPnKeVrKSfmKeenpKUo5eomqialKahpJGcqZqitrunqpiakI19gZWMopWLlZGWkZCUmKaQoJuqoJ22o52mq7enrsCtoralrq6vq6ensbafrbuYkaWkpraikp6noI6qoI6Tn6OrsJqgo7Cor5ijoJyjqp6enp2XrJ2TmaGblJCWq5qOmZmXkZafkYihnpaVhZKNkY6Vi4F+ZouFdYZ1eIeCc5xqhY+Sk5CJfYuVkpKYlKOTn5mkhYqbin10l3R7jIBzfH9qb2VfcWpgW2BabmRQYWZRWjpHR0U+Mj0+OS8qJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWFlVlBLQUNCOjlFTVZbXl5bWlxbW1tcXV1eX11eX2BhYmJhYWFgYmJiZGJcW2OXlaOnoq+xq66jqaasn6e1qpCPnaW1vbCuraOkm3yfpLKkpbGpl5u5pqOTmaqcjoaKiZyij66eopWon6CSlpmbrouplo+omaiNmqqQn7q3pKSYnI2JeoKUjZyUi5WSlJGNkpejjZ+fqZ6fuKN/g6+1oq+udKO8orCed3iep6+4lHWso56JgKt/ZFxidqCPpZ+EmH1tkrOco6etqqJlnp+Sc3mal3GBmaiYbX+iqIplnKadkpiYlo2SnJCGnpuQloSSh4+QkomFd2qOh3aGcHuFf39gaIeJk5GLWnWUkGdokI9ze6icnGZ7m4qFeplqhYyEb3qAa3JlYHdwbGtpXGZmYmJxVFs+Tk5OU0c+QFVEOjEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVldYGhmZ1hRSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6Cur6yrqaWoraKnraSSlqu3sbOnm6uorZh0jZ6xoKirp5SXuaCgj5yknZF/iYianoyrmaGUp6GdjpaSnoR2rY+Ip5upkpmlip27tKigmZiLiXV3k42Xk4qUkZGUjZCUoY+coaeZnLKVgIybtZ2zjJKOuqaffaeieaCstH+OjaWeg4uGkLCqr42Ll6SbeoGLrIWcnaGnqKeHlYWYd6WbeoecgZengoJ7nLJ6ioahmJqVmJaCkZeXhJuZYnqHkIWPkJKLg21wjYd5gHB/gIR+hXOFg5SReJZoknSgmnV9mYWjoImYf5SMhYWaa4+Ohmx5fHFxaGV4cGpsa1xlbGpmdV1eSVRMUkBFNi5aVVU3KSEwOT4+NzQzNTY4Ozo9Pj5AREk/SkVKS0dTWFtZXGJhaGZaUUg5RUw7PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop+mrK2rqKygp6+mpqmlmZSvycCxopeoqrefkYWerZynoqCOkL6emoyfmqCQfIWOmJeHqpuglZ+gkYyTiYaAkaeNh6OepJWZn4ifurKonpqSjoVxdpCJlZCKlJCPm4yQkqCSmKGklp6rh5+0ibSarYrKh6msiLaFjbCBr6yCqIymmI2dfaiPc3t3nY+nl2iVpHm0jJ+epqeSmMKBf6uImKFynoCapX2XhZWygaF9oZShkJiXgY+UnIuZkot9hZOHjZaSiYNtco+FfnlxhoCDe4N0hICWgI/FZn+ph4+ja56FpJ2FmoGOj4eLmnGQlIZpeXV8eGhpdnJoaGxeZHBtZ25ZZ0ddUk0zRTQ3TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmlsXFFFPUtNQEpjWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqKfr6eoqKWrn6O3sKmrppqUoKSlrKWYpqy5pLCBoqmdpp6diZS9mZONoZKej3mElpWRh6qYmpqZoYSOi3ebnI+fkIiepZyXmpmIpLmupZqcjIx+Ym2Pi5OQjZCNjZiMkZOgj5WhoZmhp36hp4etnaCWrY+dnJyQhYCgjKmshaONqZmMmn+idYGZlGyCrXZNq3iHjZyRmqimgKmrfYOhe3qnap5/kmtnl4aXt4mefm5gZFmDl4CNe2Roi3KZfXmWbF19l21fUnCDXF9reIJfWGSBfIN/l3CnqmuDo25ypXCfhaBqZ6BtW2+MfWdaYISBY1hRcHdmbnVza2pvXWpxbmxqWWlPXVlGOUE1SERfbDUsSURSTU49ODQ4NTk7NkA7Oz5CUD5RUkxNQkpcXV9XXV5idWBNRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5WdoLigqaOmrJGgtruqrqKZmKGjpq2voZ6wtqSpk6KhoKecmo6ZtJmQi5+MlYt1gZOSjIqmlJSYnZ5+koWFrKSHm5CKmaqZm5uSiaexp6KWmoiJgGluiIeLjo6Ki42SjJGTo42Un5+coqR/k4GPoqGUoHaclY+ngqCmf4Wnq4OleIl8hJp+onBzlIiWfJ+NeW2Gm4yZj5uomY6HnXuConN2pmaefnekX5h6fZN0om6Yt7S6dJOIg4C1qGSBxrh7cJW2jHKAmqNic6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGGdmbOWcn2Yn7N1dFyesoNrY3B1d3Jpb1hrbXNzZ11pXmJMRT1ENlFCWnMzPVNHYEpSPTwzOTU6OTZEOztASlA/VU1PUUBEX19bWlhgYHxkSEM4TVdVV2JhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOVlKO3mKqbk5+NpLa0ra2gmqKdpKOmr52cs6+tlJmimqGlmZuVn6ubi4iSeIuFcYGWjYqPoI6SlJ2YfZCJjaigh5eOiZKklZybjYupqKWekJeHhX5qe4d+fZCNg4uRkYmQlKGDl56gnZ+ei4l3nJiijZ9xoYqHqYebpY6Upql9rYx+eqCZeqOTeIF0loiNnH2Wn4abjpibpYWiZKF8iJaQm41tnmibjm+amXqAi6d9cml0q4Ofg3SqaJWaXZuFdoWeZ6prgLhmXKhwgZxglYxep3Z1h4h+nmiadYaTkpeOgJ9vmpFup5pdqX95u2t+qlyOhF20aF1ucnp4a2lccWt5emRgZlhiQlFGTzdXQ1JvNUxbW19OWkRBMjUxPDs3SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4mptJqniGOUm6u5sa+snqacnKmgn6+cnrKprp+YpZuhoJmXl6CjmYaJjWqIgHJ7l4iLlpWDkZWYkHqKhJWknIqUj4aMn5OenYmQqaOgmoySioGAaYGGeX+XjHuJjo6IkJebf5Sinp+hk5hyaJ+Jn4+McJKMgamHmJ6hpZ6me7Cto6K4l3ejs6OkgImUeZ17q5l+oo6cmpaIl3GhfIWNr7V9a5qRoXl+mLWipKuohJl8m32em390qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJqcXuObICIhJl1m3iGibGzf4Cbk6d3g55uc32VcJp0a6RelXZIZWRhdHJ/f29mYGxpd3xlZWFRX1ddVFdAWkZRaEVUV11iWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQjxVX2JaZWlWZ2htb2JmZ15hYVxdXmBoYl9lY3ZtXWVnZmtkZWxpaWtpk5yAsK2ZhFNeoKazubKyqZqijJysnJyqlaKtpaOpkKCfnZualpmhnZaIh4l3hoFveZWFkZuKe5GTlohygIiSoZxzkZCBiZqWoZyFj6mcm5WLi4t9g2yEhXGCoYx4ho2IiJOZlnyTo6Ceooithn21hI6enXullnqpgJWbj4mfm3ynaHdtfpl0oXNyfJ6GmXCTg659pIOlnZmAo29eqGd1omNvpWGc05B9e5l4c3NiooaQfqN0pJB2a4+zjGCCmIlzqrKovH93g21+v6aptF2bbXxwlm1/cqJyXaRnc6ZgaKZtm9SafoabcHp7l2ycfHiXc26ppGdhZXpygIVsaGZkb3Z4aGBjU1xmUVFiSFlKVWFXVFxma1xlUUZDS01KS0JLRThPQFFOWFNZT1NRYGZmalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaWV8ZF5kZ2RrZGpsZ2hsaJeaf6+qVFxLfqmvsbOvsqObmYWZqqGipY+mqaGaq4ubmZmUmZOToZiOh4V7cH2EaH2Pg5SagHeRjo+Jb3+FjpKSbJeTfIqTlKWXg4+rm5STi4aJeYN2iIFugp+GeIGShoiZo5h7lKKjmZ+Js6Gitot6rKekrqVwqYCajoWAmpB7pIChmYaYcp6EpK6vipeMgI2kjZWDraCTdrW2tcmhc5SLgZ9gnpepbXmWh6CbdKKId6B+k5eLgXBNZqOScJuHc6R7eXRhg4FrfqBrcWRfnHF9c5ZoeWiytbTGpnOYfXqda5ybq3aFm253eZhqmnt1mHJRRX2zX2p3bHqIZ2toY3V1cW5XX1RZaVBTaElXTVlUVl5pbG9WaFdOS0FKTUtISk9BUUtQZWNqbWV0cnN/eXxudYl7e1RRT2xeaVxraVJqaGlsaGxmY2VfXF1dXmliZGlre19dZGdjamZvbWVpbGWhm4iupYNkP5Ohsqqur7WiopCAmKujo6aNpqifnqeEm5iXjpeQkJyTjoiDemp5h2WDjX+YoHl1j4mMgWmEhZGCjIWdjXqOjJemlISZqpiNkouBiXqAfYx5cJChhnqClYeJlqCWf5SlqJyVlYNmbnicbKJke3Gld5uYcGemgJWKeqR6n5aDl3Oed4GKlZePuW6RiqJifZmglYhucmmqa3WgbW+mYJtpi5BploeblnWigX6aYIyGjXVwiGJooGWefmmbdW9jZoiBbXGiWl5bYqFsXYiLbnp9cXFkpW14omRnp2iZc4yZcKJwVYmQb6BfZqhUi15UmG5udGtzg25xaWx5dGtwUllXV2ZaVG1JWlBdSVhpaXNqWWxXUVJGVlxMWFNhVWlrX3d0e31wfHxyg3uAc3aNgIR2XlJyYmdjcGdQamhoa2xuaGRnX11eXWBqYmppdnVdXGNoY2pqc21ma21jnKOXpXlkc22Lpq2jqbCxpp+LgJisnp+njaOinKSjgZaZlI6akIyYkI6Ke4dxgIhpi4t8mJtzdYl+kHtkg4eUiYqVmYJ8iYiYqJKBo62RhpCLgop+gICPdGmQpoR9h5SNiJmgj4iTqaadiKZ4lZt+pIiWi7GYnZCCr5efpXaUhnipc6WPhJpupKKMkoSNg7tufaWvg4aFhpOVnJ98pXpyqJWglmeefm+sZJaKlpN3qG2qooGJdomDd6uRpohrkbBrdrOMqWuKhW1tn56SlWB+q4uqdn5+iqSed598g6SVnaBqm4h4rGifroy2dHe+jaSTWoOnjqthdnN1cnx1cWNrf29pbVNXW1ZhYl1rTV1SXkpebW93YFtxWVxgW2d0ZW5vcmNydGB3en55cnmDc4R/gXt7jIGDgHZieGRjbnJkUmtnaG9scmpmaWFgXlxha2JtbHpvXFxiaWJsanhtZ2xuYpWkqZyBf52jlqmpnaimrqSZioKYrJufpoqcpp6rnoWNm5CHnJGGko2MjHOGeoiEb4yEfZmTdHSGc5KCbX+LkYeGk459e4KHmaePgKenj4GOiYWVdoKHkm9si6mBg4yUjomdn4mMlKqin4+AdZSXiH6BeZSuon+BmnGPhneOiYJ9e3KnjHJ+fXqYlpuEkHl7f36HlJWTinaQmJ6gg3t9iWuMhVt5eXJ6cWlufpKJcYB1gY+Uk3GHhIJljH9fgX+Ld3RylHVveW5th2yDhV11Z3eOZX+AhIynmX10e5VqiYhwgXZ9h3dubmiNdHp8mHiFXGxYeY9pb3hzcnB4eHBdbIduamdWW2BXXWZrZFZjVV9SYHB5eW1rd2Zra2t3fXJydXRhb3ZidHuCeHV6gnWAgICBeIuFg317bn9sZHluXlduZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhsb2GNk7eopomgopqmo5iknKuioYSEmK2SnqKKm6ibqpmDgpyMf5eUh46KiY1xgnyPfX6OhHuYj3RyhHGVhXt9kouGho+EeX6AiJulj3yoooyGkJCFlYOGjph2coSpho6SnZCJn56IjJunn5+qg4mOlZp+fomWraePkaWPd2+bj4F4kG5+qIVxfpVxa3B9gqCNgJOOi2hsXIKLi5uano5zlYuIcXRrgnd0gVlyboeRgX5/jGpdamV7hoSJgGBpeHqae4KKgXWBhYFnd4qGal9vcYF1XnGJgIiNpJSFZYuNg253i4Rxho96cWhpZnyEe5ZbXGtobnZbfHl4dm90c4NoXW6La2tiWlpfW1lscVxfYVpfXmZ0f3x2cHVka2trfH1zfHl1ZG51aG18fnd6fHt5eoCAfm+GioR7fXR+eXN/aFRccWlsdnB1Z2toZF1hWGtoa2txcm5XW2VubGdzem9oam1gi4qpsKGPoqGanp2Xnpioo6J+g5mujqCViZ2jkaaVgHyYhn2SmYqJh4eKcn2BjHaFi4GEl4pyb4BymIaDfpKDhIaJgHqBhI2coZGDqKKIeY6XiZWLi5yXhIN6rYKRmJqVip6dh4ihqp+hoqSLiJObnKOZlaqhp6afkpqGlIx6do2Ng6d+f5KQkpSdsqablZ+QjbGSl4OljIyVmp+JkJuCiJGKa3yOd3hlg4eRi3yJnoSHjJCJiYGFhJB3fHp0maCIhomdiYSTfn2KgH90bnKEgX12hYWJjqSPgoWMhoKMkIx9iIyKkYR6boSFfnqZa3NpYXSKcX57eHdweHWCXV5vh2huX15aXV1TaHJWZF1dYm1odnx9dG9wZWtqaYB9bnmAcmpwcWxngXtygoB4f31/hHttgoyGfHp4e316g3hOY3Zqc25wemVrZWNiYFt0ZnBncnFtVV1sdG1peXpxZ2lrZIyHnLmelqGgmJSYmZSYpKGefH+arI+fjoegnYyeln15lYR8jpmKhoSEhm55gYFzgYd9iZSEbWt+epeHg4OPfoCHhIV8iIWPnJ+TiKyghHOLkIaSkYudkX2Ne6qEjpOYlo+cl4eHm6WfopmchYKSmpmYj5qnn6WdnI+Vf4+IdXuGjYSle3yOkJGGmauinpSdkI6pjZCAnYyIk5mego+XfoaOg294hnJ1YH+EkIZ1jZmBg5CDh4V/hYSVbnl2dJKhiouFmoSEjHN/iXt8cXF6h4J6d4iNg5GljoWDjoCDiomKd4aJi41+cm2Agn1vaWxuaF56f2l+fXd2d3Z7eF1gcX5udGBjW11fUmduVGZbXmJraXZ6f3JsbWRramiBf2x0gmxsdW96cIZ6boeAdoKAfoV2cYKNiH57fHx/e4KKYGh7anVpaYJkamNgaVxjdWhvYnVtbFVjcXllcHp7c2VqbW2LiZ62maCjn5KRlZiLmp6fnnt4n6eRnIuHpZWMmZl6eo2GfYmRhIyCgoNufIB5c4GEfYuSfWtofYKXiYGIjXt9hoSGfJCDkZ2dk4mpnYFxjIuMkoagoYqFjHyokYmQkpeTlpN4jaOfoJ2VmH6AkJqYkoybo6GjmZaQmn2Mg3d/go6GoH9+jIyPfJiloqKTmpGQpoyPgZqRiZKXm36Tkn6HjoF1dIJxd2F+gI6GcouWfYiMcox/goWGj2h4cniLmJGPf5Z+iIlygYZ7fHB3eoqDeXiPi4KVpJOKhY97hoaHhHaDhImJfWhzfoF6fHJtbGhffnRpfXZ2dH1zgWtfYHR2cHdkY1lfX1JraVZmWmBhaGp2eYJxZ2tkbGhmgIBrbn5ob3FsfniHe2yMgXOBgX6BdHaCjYZ/fHuAgX1/j2lyg250aWGHaGxiX3FWdG9sbWB4aG1XanR2Y3V6e3Jiam96iYyesZGlpJyOj5ePhpygm519d6WhjpiAjaOLiZqWeXyGiH+DiX+JgoF/cn97dHaDhX2KkXdnY36Gl4qCiot4fICNg3mXg5aZmI2XoZx/cIyCkZOGpZuHjImDppaFk4uWl5OSdpGdoKGXk5V4fo6Xl42Wm52knZiSlJp4jYSCd4OVjZ1+gYmNjHOXo5+ilJmPj6KMioKWl4OSlpl+mI18iI2BdnF+bntkgHyLhXGHk4CRgmyHg4GAiYVmdW97hpGXi3yTeIuIe3+Ge3pxfXeIhXiDj4eKl6GVgYOLdoiEg4J3fIOKhnhhenp/dYB5aG1mYn9qa3h0dHd+cn1jZGFzbnVybWFaYV5bbGVTZFlhYWhrdnmGcWNrY21maHyDbWl1aG5waYB9g3pukIZygIODfnR8g4yBgH57goN+fJBtdolzdW1limxqYmJ1VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPm62XpqeejYyXh4afk5eZfniqnYuae5edjIyZkHl8gYx+fIR8gYOBeHR5enR9gIR/iYuAZF99i5SHf4SGdH1+i399mYaXlZiNpKKZgHOHe5ORiaaPjI6Kk6CShJKQlJeRi4GPl5+akY+Pcn+NkZOJnZ2eppeXjJSVcouMiWuEl4+ZeoeIj4lvl56bpJSVi4yei4aBkZx/kpKVhpmIe4qKgXlxemx1bHx/i35uhpODlXhxgoR+fouAZXJpe3+VloN+jXSQh4J4hn11d398hIB7gouCi5Ojj3iDgXSJh32AdHaCiYVxYnx2e3J+cGNwZGV8Y29wd3N5eHR1YndgcGx2bm9cXF9eXmteUF5ZY2FobnR7iWxgaWVrY2l3h25nbWlrbWiBfXt4b5CIc4CEhH10gYaJe4N9eoGEfX2OcnqLeHhtbIdqaF9pcmOHZ3FvZXdnbmxheWlrfXt4cGF4bYuAmJipn6SonYqKkoaKnYuVmH54r5mNmH6flJGXlIh3fnyKfXyAd3iAgHB1dHxvhn2BgYp/fGFcfo+RhoCDgnN7gId6j5KJk5KdlaacloJ9gX2OipGjiY6KjZiajYaSmZSWjoqIjJKcko+Li22EkI+RiJ6ZoqCWlYiWkG2HmINlhZiOk3qJhJCKcJablaOTkomLmYyBf5CdfZKOkoyZjnuKhYdzc3ZscW51fIp0boaRj5NxdYF8gYGIfGVwbHl7mJN8g4h0kImAc4d4bn98gIV7hIuHgouUp4x6hnt+i4V4fnFwgYeFZml6dXZxfGNfcWFrdF9xa3t6eWxzcWZ6Xm9sc21yWFtfYGFsXFBXWGVjZ3Fxf4hnXWlpZ2JncY1vZGpoZWlpgXp3dW+OhXSBgoN7dYKIhXiFfHiEhXp/iXd/i3t7cniDamtfcGh0gGtyb21yZ29sZXxjboB6d3Fsd3eKfqKXoaegppuHi4uBj5yHk512gquVk4+IoY2WlJCAdHx3hXh5f3Jze4Zrc3B6bot2gIGHb3BbWX6RjYeAf392dYCAgKCHkouUnpqilZh4in+BjYicnYqPhpKYloWJlZqQl4yMjY2MnImOkIJsiYuRkYqdlqGbl5SEl4Zpg6KBZYSciZB+i4OLgXeTmZOfkpGJiZSNfn2Ol3uRjI+OmpJ8ioCCb3ZwbG1vcHuGaXSDj5mLcXeAdYKIg3lmcm51f5iOe4eEeZOQeXWHc2+IeoSKeYqFgYaNm6KHe4N1got/eHlubIGFg190dXRycnlbX3FhcGtfcGt+fHFubmtud2Fwb2txbVlZYmFib1lRVFpmZ2N1cISDY11rbmRjZmuSbmBnZ19oa4F1cnNwi4B1f4OAeXaAi4B5hX94iIZ3g4V8hot/e3aKf2pxY3xjhnxucW10amhvbHZ4X3F/eXx0dXSAg36klZqsnqeWhY2Ef5eUg5CgdoyglJOHjJuNlo6LenJ5dYJwcoV0cXaIbHBudm2IdoN+gG1tVVGBq5SGgnd/d3KDeoOhg5OClZSanZObeJJ7g4ySo5mTjomVmZKEh5eZjJSLiY+Ph52EkIp7couFio6InJqfm5WTf5N9Z4SbhmeFn4eRhJGCiXGDkZiQnI+PjIyPjHd7kZB6jouMkpaMfIh8gGt3am5rbGx7f2J6fo+XgXZ7gXiDjH15Z3Nsc4aUi36HhXqSj3F5g291i3mIinmIfICKjp2chHt6doKLfHdxamyChHtheXFvbXN0Vl9wYnJiYG1venFpcGZndXVpcmxid2VdV2ZhYHNUUU9cZmVdeXCIfWBcaXJiYmVmkWpfaGVbZ3B+cGtxdIp9dnyGgHV2fox5e4WBeIiDc4aFfoyMhHx5lXhmcmqDYIh+b29remBqbnR/dV90fXmHeHRzhX14oI+ZsJyljoKLf4Oah4CMn4CLmpSPhYiYjo+PhHd0d3SAcXCFdHByhHBraXdug259fW10c1JNgt/IktaTe3B1hHaFoYSUd5aRmZ2RmXuUc4WQnqGSk5GLk5yUhn+XloiNjYeRjYebfo2Ad3qNfomMipybnJqUknmMdWaHkIVrh6KEkYiWg4ZjjJGZj5WLl4yMiopxepSIe46IipORiXqGfH9tfGVzb2tsenpbgXmQkIF6fn+Aho57e2lzanOKj4mBhYR8lIprfX5tf4p9ioV8hHmAjZOZmIl8dXeDj3hzbWdxgIVubHVwaWp1blNfcGVwWmBtc3lobGtjZ3lzcHFkYHhhYFZsX192UE5MYmdjXXpxiXVdXGV2YWJlZY5kYWdiWWlzc25rcXaMfHR6hoJ1dn2Lc4CGf3uJf3KJiIGRi4h8fph2ZXNufGWIfm5wbIBZbG55eXNgdnp7jXZyd4p3eZ6Lm66aoJCChXeIlX58ip6IhqCSj4WMmISTj4eBdHhweXFvhHBtb39zZWV5cX1teX1qaGtjpJrB3K7woXNsdoV3hqSGk3CXkZahlZyBknKGi6KXiY2Wi5CdloOBlpCFiY+AkYuJlX2GenV/iXiHhI6cmpiYjo92iXVthYiJfImig5GJnISFXouTl4uPiY+Li4SJbXuWgX2IhYmRj4Z2hn5+a31keHZqbnlzWIl7koiFen6BgYaMf3lmcml/iY2JgoF+i5WEa4F1bYaPgY6CfYF4fo6UkZePdHJ3h4x1c3FndnqEY3VucWNqdmhSYXJobFZgb3V6YXJkYGl/cXNvW2RyYWJXbltdeE5NTGVnYl53c4luXFxkeV5fZWWFYGNjX1lqc2tua3N3jH10d4SBeHd7iXGDhH1+iHt0i4mIloaMf36Xc2d1cnlsjHtudHGBV3F6dnlyZHd5hoxpdoCJcn+chpinm6OShH1xjJR3eYyehYWhjY98lo2AmoiEe3N3cHRqcIJsam18dV9heHd7cXV7Z2BkfOvatcnD3IdzbHSCd4ucio9qmZGQnpaUgYlxhYifjYSLlouMmJR8jZOIg4mQe5CLhY6Af3V4g4RyiIKTnJaUl4WMdYZ9b4OBh4aYoYKTjJ6DiWGDlI+HioaKjoeBh2l8k399g4SJjo2Ccod/f3F3aHZzanR3bFqNfZODhX2AhIGEioJ2YXJriIGOiYF+fpGQfW2Ba3eFjoSQgXuAfH2PkY6UiG1weYyFdGtwbHN5gmF1anBebHdhUmVzaWZTYHF3dWFwYF1ohHJ0a1hoaGNpWW1XXHVMS0xmZ15ic3OFalxcZXleXmRne2FkX11Za29mb2p0eIp+c3OBfnt2eohzhYN8f4d2d4qGj5mBjIJ7k3Vsd3Z5eJN0bnh7fVh5hnF/b2d4d5KCZHaGhXCKloWZoZqiioh0b5KMcXePnH6LmomJfaB/hJqAgXhydG5vZHJ/aWZteHhcYHl7e3FxgGlhZ2F/1baOkaZ4b3F4fXGUko6Ia5qPiZ2TjIZ7aYeLmYaBkpGGh5iOfI2NgYGJjXuOjH2IhHpzeoN7cYaAlpqOk5OBiHSChXWCf4mRnJ2GlY+ffohif5OHhYiFi42AgINnfJCAfn+CjI+Qfm2DfIN1bG13dXV4dmxjjoGPgIV+fYZ/hIl/cF9xcIR7jouBe36QiHlwg2V5gYiFioB6hHx+ko2PkYJtbnmLfnVtbmtse39kaWxrWm53WlNqc2liUWNzeG1jZl5aa4RudGJcaF9lbWBvVVxwT0hPZ2ZcaG9ygG5bXGNzYFxjbHdlZV1dWmxtY21qc3eGf3Fwf3x9dHiGeIWCfICHdXmJgZOVfImGdoiBcHh5e4STb257gXdeg4B0gW1penSUc2dziHxxkpGDmZ+boIaIdnaUf213lJh/iJCEi46afYyad352cnBsamF1fWdianV6W2B4fHpscH5lY2dnV52PX3Fzlr3FhXdylYuRgHSYjIedlI2Ic2uIj5WAe5SLgYSbjHyKhn18iYx+k4d0h4V2dn2CcXWGgZ6VhpSPgoJxfodzg3qIlpuWhpONnYCIZn2TgoCGhIqJcoF9Z32Le3l/f4eLj31pgH2EdmZweXh0eHRsa4+Gi4KLf3mDgYSEgGtecHZ6fYuHhHuAjn9+coBoeIGFiYSBd4J7f5WKjot8bWt6iXx2dG9oaH53ZV1yZFlwdFNUb3NpYk5odXlnYV5dWW+BcHRaZWNda25hcVBabFJEVGhiWmxvbnxwWltebWNaY293ZGdcXWBramNsaXN3gYNxbn57f3R1g3qEgnyChXZ+iYGWkXiDinSBiHN5eX6NkG9ve4FxaoJ5en5ubXx2lWtqeIR0a5OMhZ6YoJmFiG9+jHZqeZmPgIKKgpaYinmPlm96c3FsamRgdHtpYGZye1thcn16ZnB6YWVkjrGyd0tiWqXa0phzfJKNkXp/loyFmpKNhm9shZKReXmThoCEmYp8h4B5eImKg5V/bomGcXN9e2p5hoOlkYSTjIJ/bn6CdYJ3hJqXkoqTj5SFiHB6koR+g4SJg2+BeGiAhXhyf3+Diod8ZXx+hHZjcXOAanpxb3WZjYaEi3x3eYCEeoJrXHB8cn+Hg4h9hYd6iHGAbXCChY2CgnGDd3+WioyDd21sfYR+dnplaGp+cmFaeFtacm5OWHJ0Z2BLbnd2Yl5cW1l1fnNwWGdeZmtxX29PWGlTP1lnX1txa2h6clxbWWtlWWNweV9oXV5lbGhmbGlxeH+Hb21/fYF1cIJ7gIF/g392gYWJl4pxgo1xe4Z8enmElIx1a3p/bHB+dH99b3J8e5Nwb4F/eWaSioKhmJ2Rg4Znh4RwZ3qXin+AhYKaioF8jY1peHJsbGZfYW95bV9ib3lcZGyDemFxdl9kZdXrvoszOj6Lj4ByeYaKkI54hZmOf5SOjX9ubYWMi3V9j3+FgpWJfIN4bnaHhIKVdm2HhGt1e3VleYOEp4yDj4yDfW1/c3WCeISaj4uPkZKMjId/e5KIeYCFjoNsgHJpgH54bXx7gYqDeGJ5hIJyZHFpf252cnWCnIyBgIZ/dHZ+gHOBb1trfXN4iIGKe4Z/fIh3eXBrh4KOgohwgHd9k4mKfXNtanaAgHV1XWlpeXFaV35UW3JmTVtzcmZcSnJ5cV1bW1pedoB2aVpiW2dmb2NqTlhmUT1eZl1edmZfdXFbWVVvZFpkcXpcaF5gZ21namtpcHh9jm1qgoSAeW6Be32Bf4J6dYKBjJOFcICLbnd9gHt7iJOJgGl7fWt0fHKGe3N2fX+MeniEfnxrjIyEm52WjIKBbY1+bGl/j458fn+DlIJ/fYqIa3VxZ2ljW2Nnc29gYWx0YWhwiXphc3ReYmOboJBuXTZbsLZ1aoCJfpSHd4iZh3WQjIp3cG2FgoZ0eYl4iX2TiHp/c2d2iH18lm5vhX1odnluZXqJhaWHgIeNiX1tfXR+f3uKl4aBkpCYiYuFinyQinF8foZ8aX5ta4B7eWp6doKHgXJgd4J+cmRyZ3aDbnV8hpWSgn2CgHB3enx1fm1XbX11c4mAhXaGdIKJendybYh/jn+DcX17fJCHh3ltbWhsgoF1bl1oZ3VyUlx9T11yXU9cc3BkVkt0eWtYWVlaYnKBdmFeXWFnZGlqZk9aaE5BYWRcYHdhXHVtWFhTdWJaZW9zWGpfYmhrZ21saXB3fJNsaYSKfXxwf357gX+CeneAgImLhHJ7h29xd4R/e4mNj4RqfntueHl3ind9eICCh3+Efn56bYSMiJijjYWEfHaLemtthYmTen17gpKAgH6KhHBycGNmXllnX3BwYGFocGZqb4l0YXRvW2BkanZ7f7+dqKXJuHKFhHSVfnqJlYR0ko6HcnNwhHqCc3WGdIh3lIl5eXFkd4Z5f5JocYN1Znd2ZGp8hIiegoB/jo59cX5yg3h+kI6Cd5WMlJCIgoh7iYpseXqAdWh7aWx/eXNpenaAg31oYHeIfWtqdGh7gWp2go2RlX98fn5xfHZ8dH5iVXV7cXKHgoF7gXCGiXd4b2+CgYt9fHd8enOMhIB1Z3BnbIiBcnBdaGN0b0xmd01fb1ZUWnRuYlFPdXliUlhYXWJxg3RcYl1pZWVja2RSXHFJRGRiXGRxXlx4aFVXVnheXGZuaVdsXmFqZ2Vubmhwd3qTbmmIjHl+c3t+eYKBgnx2fYOIhoNwdoNzbneCgn6Ii5R/cYB8eHp6gYt1g3h/gYGChHqAdW99ioubnoh+hnt3hnxodYeNknp/gHyJhoR2j4BncG5gZVxYZlltc2FhYXFsbGiJbmBzaVheY22Ad6naqciHiLNyinlxj3Z9iZGBe5SLgHV0dX52f29wf22FdJSGeHVsYHmBeYiNZXGCbmd1blttfYGQk4CBeZKSfXd6bIV0f4+Kg3KViZGPiIaGe3+GbXV3f21od2VtfHZtand2f398YGJ4hnpodXZjfnxodYePjpZ9dYB2coB6fW2AWVZyfW9zgYV9f3driIZzeGp0f4KCfHl7d3pxiX97cmZzZG2LhGxzW2pgdmZJb29NXGNYV1Z5bWJQU3V3WVFWWF5hcoVwXWFjbWVjXm9jVV5yR0JmX15naV1ae2NSVl12W1tna2FXa2BgbmZmbHFocHZ4j3Rrjo12f3d4fXeBg4F7dH2DiIiDb3F/dXF1fYWBiY2Le3d/eIR8fYWHeIh8fYF9hIB7fnJ2eIuOn4yJe4p3dYN6Xn6Hmo16h4R0hoeFd4l7Ym5tXGJbW2FVanRkYFtob3Bnh3FhcWZXXGNrf3zKzoe6omtub4tucoVzfoaMf3uThXp5dHp1dHpqbHZjhHaSgnZvZ198gXmLiGRxgGpqcWNYbXuGnImDgnKXk3d9e22Gb4CJioZwlo6QiIaMhHt5f3JycH5naHJjbnhxamxxd318eV1leoB4aXV5Z4J3aHWIjI6VfXOHam9+gHhufV1XcH1tc36IeoBubop/cHZmdn5/foB1em95coV6eHFlcWBtjIFrclhrX3ldSXBsT1hWX1VWfGtiT1R2c1JSVFdeY3WGal1ha2tmY1pvYlljcEdBaF1hZ19cVnxeT1ZmcVpbamhdWGhhX3JmamhxZ3Fzdod5bpWKdYB7d355g4eAdXN/hYWOg3Bwe3h3dXmGhYeMhnp8f3WLfn2Gg4SHf35+fYZ/fHh2eXaSlJ9+jX2LbnWAemSEiJiGdJKKb4WGgnqDdWNuallfW11dVWhzZWBZZHJyZ4FyYWtkV1pfaX94vq57n7huYnSHaXV9c3uFiHt+jYB3eHN3b3p2ZWpvYYd1joFzamJefXd5i4JlcH1na2tbVm94i6SBhX9wmZJxf3d0gGx/gI+GcpOHjIiFiYV9eXVzcGl6YWptYW12amdra3l3endbZ318eWZyfm6FdGZ2ho2GloBwi2dre4N0bHViW256anN6iXqAZXSGfG1wZ3R9dnx+cHpqeXl/eHZvZGtgbYl9bG5WamF4VkxsbVBTUGlOWX1oYk9VdmxNUVRVX2h3hGdeYXFpZ2FXaV1dbGlKRGpaYmVXWVV5Wk5Xb2tZXWxlXVplY150ZmxlcWZzcHSBeHCZhXaAf3h/fIWHfXVzgod/lYNuc3l7e3NyhYaIiYR5gX12j399hImOhIGDen6Lg3t3fHd2mp2YeoqDh2p2fn1thYWVgXOPgnGGgn+CgHBmbGdYXVtcW1RlcGVfWGNydWl2cGRlYldbW2h/cG9ygHOKZWZ6f2p2d3R0hYZ4goV6d3R2bmt6cGFoa2eGdI2DbWdeX3xveol8aGx3ZmpkVldzcI6nfYR8dpaQc3txe3hseXqPg3WXe4iGhIeEfXVxc21odV1taWBsdWRnZml6b3tyWWeBdnVocIF4gndjeIWLfZWCb4xrbXuBcWZzZWBreGZwdYh5fGF1g3Vpa3F0eW94d3J7ZX19fXZ1bWNkYGyGfG1rVmpjclRMa2xQTU9wR158ZmFOVnVlS05UWGFseH9mXmdzamVgV2RYY3JeTEtrWWRiVlRVc1ZNWXdlWl9sYFxbZGVfd2dtYm9pdG9xfnV0mYF4gIF4gH+GhHp9doKDfpiFbnJ0fHt1cYWFjoKBeot1dJCAfYGVjoCFhHx+jIZ6foF2e6OminmJhoVsdXx8dYSDjXtvhnR6hX2Cg3VuamllVl1bW1pTY25lXFlidHtqaG1oYGFXXlppgGlrcIBobWJpe3prdXV1cIeCeoF+d3Zue2hqeWpfZW5ogXeQhGdlWGF2aX2GeW5pb2ZmXVVYb2iPqHeBenyQjnh0bn1tcXR4jX53lHSGg4CGiXZqc3doaW9cbWVebnNfZ2JqeGh7bVttg3N0am+Bfnp4YneFhXqRhnOIcnB6f3JjcWhbbXVkbnGGendhcoBvZ2l4c3Frd3ZzdWKCeX11dG9jYmJsfXxra1VpYmdUTG5oUEhSbEVheWZiTVRyXkpNVVpmbXl7Zl9tcWpkXVZgVm9vWEtUaVhnX1lOVWxUS116X1xfbF1dW2JlYHpobGFucHZub3d1eph9d4CBeYCAh4Z6eXqDfYGThHF0dH96dnSFiJB+gX2RbHOVgXuCn4V/h32AfoaCgIp7dYSsn396iIiEbHKCenaBgIJ1b4hvfYB0ioBqb25lZFhfWlpaVWJqZ1xaX3WCaV5tbFxhV1tca4FlcnR9ampebXh3aHV4c2+HfH5+enZzbHpoaXdnXWRzZ3p3koBjY1Rkb2aBhHZ2ZmhpYVdWWWhkkKhvf3d/io56cG97ZndteYp6do5xhH5/gIduZHd0ZWhpXWxiXnBwW2dfbXVlemhddIBucmtxe392dmR1hox8iYiAf3hydX50YXBsWHBxYW5vgnpzY3GAa2Bsem5paHl3c3BkhHR4eHRvY2BjbXN9amxUaV5fVUx1Y1FHV2JHY3dmYUxUcVlLTFhZaW13e2VlbnJmY1pYXll3ZlVLXWRYaVhaSVdlUUljeFtdX21bXlxiZF5/aWpgbnR4bW9udoOXeXKBgH1/iYyGfnV2hniGjH10dXWCeXp6goyOfX+FiWp0loF7ip19foV5gHt+fIaJc3GProx8fIeQfmZxiHp0fn13c3CGbXx+bZB6Y3BwYmVdZVZaWVdjZmtgXV10hmhYcG1bXlhaXGx7YnF3dm1jXG50dWl2d3Juhnl/gXp3b290ZWh0ZVtndWZ2dpF5X11TZWVqgoFzfGFiaVxUWF5jZJClaXl0goWQeGxteWZ3bHuDeXSHcoF5fXmAaWV3bWBnYV9rYF51a1lmXW9vYnplW3d8a25vcHh5dHVmc4OTgImDiXp2b3J9cmF4Y1lubmBvcIB6c2VxgGRebXVoY2Z4enJsbYFzcXtxcGFdZG1vfWVpVGhZWlVOeV9SSlpZSGN1ZGFKVW5VSkxbV2ptc3tkbGx1Y2FZWlxid1xUTGReWWpUV0hZYU5IanZYX2FuW1tfYmNdhWloYm54eW1vanaBkHlug36AgpKIhIF2dYl0jIZ0cXZ2gXd9fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OHhHNwmaJ7e3+JlnlldYh6c3l3bHRwf2x5fHCSc15wb2FnYmxUW1pXaWRtZlxccollU3JuW1lYV2BsdmNqdWpqX1tudXNudXR1a4d9f4F8d29ubGRpcGNba3JkdHaOc1xXVGRgcX9+cYFcYWNeU1phXGSTn2VycYWDkHNranhsbm55eXpxgHZ/c3t6e2RmdmheY1thaFxfd2hXYl5waGF3YVt8dmpqcm54dHR1anKCloSHf4V2c2pwfG1md1dbaWxhb3F/eXNlb35aYHBwYV5pb3xranJ9cG92anBgWmRrbXthZ1RnVVhTUXdcUlBZUkhkc2JgR1ZsUUlQWlVrbGt8ZW1vcmFbWlhabXFYU1BnWFdpVFVHWlxPSXN1WGBjbmNYYWFhXoxqY2Vtenlsb2l2eYZ7a4R9gIWZfIKEeX2IbY+GcW92en10goJ9i4+Dg5d0eIKUhYGfiXWBgIF0f4Jwh4N2b6KXdHuGjId7ZneLb258cGd4cXtsc3ZzjWtedG9iZ2ZrU15cVmhibGxbXHGMZE5vbVxWV1VnaXNoY3RlZV5acHZwcnZ2emyIfX99iHeQc2Nka29hXG5tY3N4h2taVFZiY3d8fHCEXGNeY1RbYFpjl5VjbnCChYlyaWZ5bmRydXF6a3l0dW97f3ZfZ3NkXF9XYmRZYnVlVV9gbWRhcV1dfm9oaXNxdHF1d21thZSDinyFcXJnbnxvcW9SWmVpZHByf3VzYmx1VWJxaltebmR7ZGt1fHBxcWltX1hjaWp4XmZVZFVXUVZvWFFXVFBIZXJfYUZYa09JWVRWbmlkfGlseWtiV1xWXHVlVFJWaVJZZ1VUSVpbUE55d1tfZW1qWmJhXl6PbmJnbHp2bm9pdnZ/fm2EgH6Gl3t/h4GKf2uTiHJndIB7dYCDfomOf4yTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOCjYx3eG56jWBlfXFnenR5bW1xd4NnZHxtZGdnaFNgX1VnYGxvXF5ujmhNaWxgVVZTb2dza2Z4ZWZeWnJ2b3R8eXRuint/d5x7emthZWxtXmBuamVxeX5nWlZYX2x4e3pvg15hXWhWWGBYZJyIYmtwgYZ8dmtqdmxbdXBqeWl1cm5vfIFzWWtuYFleVmNkWWVxY1RfYmlhYmxaYH5rZmx0dW9teHdtaYaNgIp7iG1xZnB7bHFsYVhfZ2ZucoBzcl5pbFNlcGRVYm1heGFvdHp0aW5ral9XYGZodVxkVmJWVE9ZZ1NPXU9QSGVwXWNHWmpOSmBLWG1lX3hpb39lYFVeVF52XFVSYGdQXmJVVEtcWlFadnZdX2ZtaFhjYVtejnFjaGp4cnNtZ3ZzeYNzgoN7iI5+fIqIjnluj4p0bHOCdH9/iIWHkoSVj3p9jI+IkZuEgHyNhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpSTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjY2NjY2Njo6Ojo6Ojo2Njo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPy8xMTEwL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERDR2RoZ2dnZ2hNQkNDRERDWGhmZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIaCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTQ5XGBfX19gYUE1NjU1NTRNYV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fn1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmHh4iIiIeOkJCQkJCQjIeHh4eHhomSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaIiYiJiYmJh4WFhYWFhYeJiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkZKRiYeOipCSk5GLkI6LjYWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjY2NjY6Ojo6Ojo6Ojo6OjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQi4WIh4qOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCIhYWFiI+JjJCPj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkIiFh4eIjIiOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp+fHZ2eHx8e3x9fX19fX5+fn5+f35/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4SJiIWMiI+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pio6Mi42Mjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5eXt9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Pjo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fH1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fn9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fn5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTk5KTk5SVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOSk5OTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGSkZGSkpOIhZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCSgoKSkJGRjnWGkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9+f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CIcIWQj5B8dYiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4xzb4qPinJ4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjXdte4+Cc3iGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/f39+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHc25vhHt1doCFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxZWFhXVFBRUlNSU01NSklGRUhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3RiXmRfYmxxZmhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYl1qbF1mZmdlY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hJSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpaandtYm5yamFZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtrcmxhbXVyZlFRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OXWNva1lpc3VwU01PUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZCRkhVYmhrb3BvbWxaTExOTU5PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVDRkdITVpnaGdybm5oZmRgXl5YTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gH+AgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7PklaXVpcZWxua29tbWxraWhrZFNHRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7Oz1LW2ltbm9qb21raWxtZlFHRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYGCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozo9SGNvc21ubGpraFVDPkNGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN0cnF0eHh5fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5PUpgc3RwZ1Q/Ojs9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT48OkJsfGo/OTs+PT4/QEBAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO1tuQD5ERT9AQURfZDs9PTs6PT5BQUA+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKR1ZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo6bXdJODs6PT5BO0hkPTw9PDg6Oz8/PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw9PUlMRkV1dk43ODg6Oz4/V2pBOzw8Ojo7Pj8/PT05Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtcf4N/enx3Vzw9Pz09PkVodEw6PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFHcnlrYoOEg4KDgH1ePkBDQEA9SnN7WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEVvdH2CgoGDfn2Edk1BQ0VAPz5Ze4BdP0NFSUlMUU1NS0VDRkdHRUdFRUVERUNBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTmlaT1BOSUdJSEhJSUhIR0dISEVDRUVFRkZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSEtWc15WUUtISEhIREdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiIRWbISHhoaGh4iIh3xQSlluZV5dVEdDTUZAQENDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREZHSUpJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pUgYOEhIKChYaGhIKGhYSEhoaGh4eGinVKYGJhYWNlU05YPDw8Pjs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgICAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpJSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMjnFoaGdlZ2lmaEY2ODg5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJR09SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouMjHhtbGloaWpZNTY1NTg3MzU2ODo4NzY1NjU2NzY3Njc6Njc4ODk6NzU3ODk3OTc3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDY3ODg9Oj1FQ0JlhYOBgIKDg4ODg4aJi4qJiYqKioqLioqLiXZtbW1sbFU3ODU2ODg1NTc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc2Njk6OTg4Njg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhIWGiYqKiIeHiIiKioyLiouNiHJub29wZUA+Ojs7PDk6Ozk6Ozo6OTs6OT09PT47Ozw8Oj47OTs7PDs8Ozk6PDg6Ojo6OTk5PD88PEFCRElKTUtJS0xXb3JzdXN2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuKjI2OgnJycXFjR0ZDQkFCPkBDQUA+PT4+QD8/P0A/QD09P0I+QEE/QD89QEBAPj9BPD48Ozo7Ojk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4uMjY2NfnJzclNLSktISEhFRkhHRUNBQEJFQ0NBQkNCP0BESEVDRUNFREFGRUZERUZEQEI+PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyMjIyLe3p0XmddUEtLS0lKSkpJRkRER0hHRENFRkRCSElLR0hHRkhHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjY2NjI6Je3h7b2dVTUxNSkpLSEtHREdJSElFRUhGRkVMTE1JSkdHSElKTk1PTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7Oz06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjI2MjY6CeHJVUlJPTU5LSUlGSklFS0lHS0pJSkdHR0tMTkxMSEhJSk1RTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNUbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIyMjIxzW1ZUUVFPTEtIR0NISkhNTEdLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pISkpMSkxGR0hHRkZJRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIyMjXxcW1dWV1VRTkxLRUZHTVBPUFdVUVBPUVNSTVNUT01TTFBTVVZSU1JQTEpNTU1LTkdHSkZGSEpFREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09QkBCQkdWTkZOUFBUWHuGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyNj4yLi2xdWm1iR1VTUlFLOztTVFNgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl4ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0dGRT8/QUFFQUNHRURFTFhSTVRVVlhafIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH5hiouLh29fZ1g8WVpZVFE/QFdWWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFVUVlRPT01KTEpJSUxNS09NU29zdnh5eHd5eXp7ent8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mLjHtxclpdXVxTVVNXV1VbWnWDWVV9kGFcWF1fV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeEi4BoW1xdWlVXVVhTUlhWY5aAUmVyWFpXX2hQYGZbW1hcZ2FHT1poZ11bXF1dV1JPU1BQUlZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRUFJSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn6AfV9TV1pWU1ZUUlJNUE1MZnpbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtcXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a39+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHem9yWUxNUFBNT0xKS0VGSUZDP1RkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3x9e319fX59fX1+fX5/f39/f39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eXFlVUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ2YF5ORUBEREREQ0FFUUNFQUM+Q0lHVkBITkxHXWlQSEZORkRFRklHSEJESEdJS0dEQkFEQE9RTVJkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn+DgIODgoCCgIKBgmxOSEFBPDw+QEFAQD9rUUtgRUZISUVCP0dMTkdNUVVJQUU/Pzw9PD09Pz0/QUNDQD89PUI+Sk5HVW51dHVzdHZ4e3x7fHx8fH19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVlVXUVFXVVBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZURCQUI9O0NDQkJEQlxdT3tOT09OS0xNT09RTEtNV01IR0BBPDk3NzU5OT07Ozs4Ojg6PzxCSD9cc3R1dXV2d3l8fHx9fHx9fX1+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BfXFpJSFBSUU9NUFFOUVJUVlhTU1lUT1laW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEdISENCR0lGRkVETVJQYVdTWFFQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BWV15aWE1LVFRTUFFVT0xSU1RYWFRUWVJNV1laVlhYVlhZXVdXWGhza11WYXNrYmFfXmRhX15ZVVFOT09NSUhKTEpJRkNRUFNbV1RUTlFTWVNcZVVPU1RSTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTpHbXJ0d3h5e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQU1VXVFVSXW5eUk5aX1tWWTtEVlhUW2ZKTFBTUk9OTU5OTkxKRlFQVVlTVE9KT09VU1RcVlJVU1JPTUxJSEhGPz48Ojc4NzY1OTk2NzY3NVdvcHN3eXp7fH19fX18fX18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF1SVFpWV1VUV1RSWFhZWVlTVU9KR09QT09NUkpQUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBTTUlMS09SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0hGTE1QTUcvRV9SPjM/PmpvYVNSUUBHVFFQUVBRTlFPUVBMSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR1eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nVFFTQUdVUE9RUVBOTU5NS0xLTE5PT1FMT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9e3x7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTExLSTw5ODc7PkA+PD1BQEI9PkVIR0NFRklHSkpARkFBQEZIRUpPSFFSYlxRUFJPU09PUExMT01MTU1OT05bV0tNUU9HSUhDSEpMTEtGRkZFP0JDPjxCRz9CP0FkcHN3enp6e3x7enp3e3d5fn58e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENEPTk3Nzk/Qj47P0JAQD5ARElFQ0dHSUdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xOS0xNTU1MTE9OU2ROSkxSSElJRUFISkxNTkpHSUdCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg6Oj9CPzxBQkFBREVHS0ZDSElHR0hDQz9CPz9AQT5ERUNLTlJUTEpJTVRGSUlKTEpLTElKTU1PUFJQSkdDTEdDQkpJTE1PTklKSUdDQ0NESEpNTElZcm13eXh6e3p5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFHS0RHSEhHSktJSktERkI9Pj05OTo7QEI/PUFCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISkxNSEpMSElKTEtNXVJISERORkFDSkpNTFBNS01KS0ZHR0pOTlFOTGJtaXZ2d3p5e3p9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjpAQ0A+QUNERUlFSUpMRklJR0ZGREI7QUNDPkBDRENER0xOSEtOSERIRUlMTk1ISUxHRkdJSUxOS0lHRU5IQkZNS01MT01NTk1LSEhJT1JSU05SZmZmcW9zeHV7enxsaGpuZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lERkZFQ0NDRUBEQj4/Pjo7Oz06PT5DQT5BQ0VGSkZJSExIR0dHRkVDQD1ERUI+QUNDQ0RHSElHTVBKRkZHS05PS0ZISUZFREVJSkhKSUZIT0tDSU1LT01PTk9QTkpKSUxSVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPUJBPkE9Ojo9Pzs9PkBCPkBCREdKRUlGSUhHRkdFQ0JBQUZGQ0JCQkRFREdHSUZMUUxJT0pKTUxJR0hFR0ZEQ0lJSEtKR0tSTUJOTk1QTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmVmZmRoaGZuamZtbWhra21yaXF2dHNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd3dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREU8QUBAQzw4Oj0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDR0VCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFSUFBRTk9NTlBNTE1TV1ZYWFVYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRTw/QkJEPDc6Pj06PjpAQj4/P0NFRkRGREVIRkRFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR05LTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFJPUU1OUU5NUFdaVlpZVlpdWVhhYGFgXmhlY2BkZmhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXd1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSEhHSURCQ0hFPEBFQkU9ODk+Pj08PEFCPD8+QUFGQ0ZDRElFREVFRkdHR0lGR0tIRElIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5LT05PUlVWT0tVV1NQU1FSTE9RUE9UWVpZXFpZW15eXWBjXlxhY2tiYGRnZ3KFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdExJS0lLRkJFR0U8QEdDREA6PD9APz4/QkE8QD5BQUZDRUVFSUVGRUdGSEhGSEhJS0pGSkhIS0hGRkxJSEhKR0xMTUxMSU1LTk1NUExQUFFVVldPS1ZWVVNTUVJMT1JSUFZbW11eW1xeX19hYGFkXWNgZWZgZWhqZHNzZmpnZ2tvcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQ0VERTxARkREQzs/P0JAQEBDQT9CP0FDSENGRkdJRklGR0RJSEdJSEpMSEhKSklMSkZKS0hJS0pHS0tNTUpKTU1OTk5QS09RUlRYVk1OVFZUUlJRUE1OVFNSV1tdXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTExMTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hISUhHSkdDSElHSEpGSUxISUpNS05MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAREJFRERGQkNFR0NDSUZDSEpLSUlLR0RLSkdISklJS0hKSk5MT0tJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQ0ZFREZCRkZHREVLRkZKTUxLTExHR01JR0pLSEtLSUtLTkxNTExMSUxNTFtzYmRwXmxtVU1OZnNdZmZxbG50Z3BpX2FZbm5icHBia2pqZm9xdGV0bm9cb3VncE1KcXl2a2Fga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdCRkNGRUZFRENISEhERUtIR0xOTkxNTUZKTkhKS0pJTEpKSktMTU5OTU1KTU1OW3Jvb25wcGxrTVBRbFdNaWJ0cnBhbW51XFlsUFxubVpxbWtvbXh4dHNpcF1fcmtxalV1eXhvY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGR0JHRElGRUVCRklISUVITEpHTU1PTE1OR0xNSUxLSUpNSUtKSktPUE9OTUxOTkxcaGR1XWxxV2xOUFFtVFlrXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNHREhHTEhFQ0NISklIRkpMTEZOTExTUkxHTExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5Zcmtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmltdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFBPkREQkdESElNSUZDRkpMSkdGS05MRk9KS1dSS0dLSkpOSUhKTElLSkhIS01NTU1JS0tLU2tjW2leX2ljcnJaX1lqbl9lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERUNGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElHS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSkpPUFFkcWlUWVdcW1xWWVtdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZFQUVDQERIREZHQ0lLTEhGREdLTElFR0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJR0hJRUZMSUpMT01KUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSS1lhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CRENCRUlFR0dGS0pLSEVFSUpLRkVISFBLTU1KTVJJR0VBSEZKSUtMSkxKSEZESUZERkdFRktIQ0pOTExVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOX1xeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoaGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNHSEZIR0hLSkpJREZLS0tFRklKTktOS0hMTkdIRT5HR0xJS0xLS0tJR0RIRENERUFGSkVASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFYVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR4eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFR0lGR0hIRkZJR0hHSEtJTERES0tOTUxLSEtKSElGP0dHTktLS01LS0tJRkdDREBEQUhJQ0BJSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUVtXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGREZLSkZGRkhHR0lHRkZJTEpORkRLS01OSkxJS0pISEZCSEhRTUtLT01KS0lHR0VEP0VDSUlCQkdGRVRdWV5YX1lfW11VWFhPXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYSFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBSEZER01SSENRSkVHSEhFRktKTVBFRklKS05MTElLTElIR0RIS1FPTU1QTExKS0hJQ0RBRURJR0NCR0ZEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1PWWFcYGBfYmNiXWFiV2BfVFBPT09XUVxbW1xcXl9iZmZlbGVvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUpLTkxLS0xLSUpHRUpOUVFOT09NTkxNSEtBREFDREdFQ0JFR0JNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xQU1JVWllXWVhYZFdPU1RQUE5NT1RTWlhYWl1cYGFkZWNnY2tscHNyeXl/e3p/hISEhYSEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hMR0hKSEdNTFFRSEtLS0tOTVVOT0pKS0dHS1BTU05QT05OTk5HS0ZgRURfTEVmZEVOXEleW3JtT01VbVlMRFBgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgIODf356e0xJRkdGSEVFS09TSUpGYFRISU9KSU9NUlFMTUxMT1JVUk9PSUtNR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXJ0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbX1ZWWH9qdHV1Xl92XldhW1tmW19gYWBhXWBhZ21wbGBwd3R4gYGCg4OCf31/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEZJS0VSVkxLTklLUlhXUU1PT01RVE5PUU9LS05HTVBTW1pTUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29ycnt8b354boByX2BgYmFaYF9na25rYmxmZ213foGAgn57eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOS0dgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5LT0hRUlRZV1ZQVFBQUFFLSGd4bGN4cm1bS05WeXB1bXVib3ZQZWVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/b2hvWXZ2anZ1cIBfcmZ9aWx4fG9eX19iYVtdYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncXl7c3J2eX6Bc3V6bnx9eXhyb05LU3VOQ0JGUFBISktJS1BPT09NUFpgWldLVFdQYV5SVlFZUkxQSVNUVlhXV09VUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnZ2VlXmFiaWlpamtub2txb21qcGFjZmNvd3hvbXBzeX5ucXBre3p0c29tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xYVU1VWVVlWFJSWV5TTE5JVFRWV1lXT1NOTk5SSVJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9acHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbGB2dWtpdXt6bX54a3xwXF5eYlteYmRkZ2VlZWJaY2Npa2tyc3J2Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ua21PSEtLSEpISFFQTE5PTEtSUlJPU1JXUlZUUFdaVlZUVFRhX1BOTUtUU1RRVlZOTkxNT1BLSFFOUFVMS0xTVFRTVFBWVVFRTlFRWFlSTlBVVFhYWFtbVVJTV1tXWFhaT1NVV1hYUl5ZV15WVFBZUldXV1dYXlpncl5bW1lcXV9jWl9jY2RmZGNjYlpjYmdmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdnanVqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09MTVZUUU5VU05PTUxRUExKUVFLUU1LTFBSVVNRUlNTSUhMTk9RUlFRUVRWUlhXXFdTUlBSVFVWU1pRTlNSWFZUWVZVWlZUUlVUVFVXWFZcWV5gXVxaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWdqa2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEpOV1NQTlVQTlFOTFNQTU9VU05STk1PUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXVlZZW1RQVFVYVVVaVVdaVlNSV1ZVV1tYWl9cVVheXF5dW11hYV5bYmJjZ2ZlZGJYX2FiXWBnZGZlYV5fXV1eWlpgWl9nYF5dXWJoa2FnZmhmZGBiY2JPTE1MUVFMT1RPT1NRT1FbWVdXWFtZWFlWXWpkVlhZWldWU1NPSk5WVFBPVVBQUE1NUlJQUlhUUVFPTVBUVk9YUlRVVU9OTVFUVlVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUVlZWVllUWFhWU1JZV1ZaXlldX15VXlxeYFxbX19fX1piYmRoZ2RkYlhhYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xYWltkcW1oZF9bWFZVV1FMTVZTTU5ST1FST0xRU1JVWlVTUFBNUVhXUldTU1NYTU9PUVRYVlVVU1VZWFteXVtbVlFOVVZVW1xXUlNXVldYVlRZW1VUUlpYV1xeWl5fYFVhXGFhXWBiX1xgXWNhY2doZGZgWWNgYV9fZWRfYGJbWlxbXFlaWVhXXFpcW2BeX1teXmFgXmJcWWBbUU5PTlZRUFRRT1RUU1BXXFxcWF5cXlZcXmpxd3mAY1xbVVVXUU1PVlNOUVFPUlRSTFJUVFlaV1VPUk9TWFdUU1VSUlpPUFNSVltWV1dTVlpYXF1bW11WU01UVVVcXFdSVVZWWFlTVVpcVVNTXVhaXV5cYGBgVmFbY2JdYWReXGJhY19jZmlkZl5bZGBhYGBjZV9iXllaXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1xUV1dRTlJaU1JRVFJUVVRLUldWW1paU09TUVZWVlRPV1JTWlJUVFRYXVdYWVNYXVheXVlaXVRVTlVWV15bWVJVVVlZWVVXWlxWU1deWl1dYFxiYl1ZX1tlYV9kZF5eY2NhXmVmaWRmXl1kYWBhYWJkYGJeWFpfW1xbWFhYV1dbWVtgXFtbXFtYWlteVl5ZXVFPT1JaUFpUVVZWU1RUXl5gXl5iXGBVXV5ia3l0bH1rWlVZVFBQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUVdSWVhZX1taVFVWWllaV1haXVdVW15dXmBhX2RjXF5dXWVhYmZkXl5kY2BcZ2RoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU05QVllRXVVWWVdXVVhfX2FhYGNdX1RdX2JlZXWBemhXWVlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSV1NXV1VTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWFRZWlphWVxWV1hbWltZWVpbWVdeX2BfY2JhZGRcYlxgZmFkZmReX2RiYltmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlNZVlNcVFZXWVZWXGBhYmNgY15fVltgZGFfenVvaFlbWVVXVFdbWlpcWVhZYFdQVV5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1pdXlldVVJZV1lZXWJaXldYW1xbXFtbWlxaWl9fYGBkYmNkZGJkWWFmY2ZmZV5hYmBjXmJjaWRjZ19nXmFiY2FhYF5fWFRbWlpbW1hbWFhcW1pbWFdZWFdcW1tgXVZdXVNPVllWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheW1xaVldYWVxcXV9bWVtiVlRYXl1hY1xSVllQV1dXV1dWU1VUWFxcXmBgXWBcV2FeW15bWl5YVVhXW1tfYFxfWFlcXF1eX1xbXVlbYGFeYGVjZGVlZmJYY2VkaGdkXmNgYGVjXGVpZGVpX2ZdY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWVhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXllcXllYVVdbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZWNlZmVmYlpkZmZpZ2JfY15hZmRaaWhiZmljZV5iYmNhYGBfXV1aWFxZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVZcW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZF1cWFtiZWNhUlxaT1lYWltbWldaWWBdYGJiYGFjX1xiXV9dW15dWVlUWF1dX2BfYFxbXl5gYmNdXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGNnYFxpaGJoaWVkYGJhY2FfYF9cXVxZXFlYV1hZWFdcWlpXV1hPWFpdYWNmZnJrf0pZV1xaWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5ZWFVbX15dYWJgXltgYWJmY19dVF1gYWNkZGZlZ2VmZmVeZWZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX1xdW1pbWVhYWFZaVlxbWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4SCgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7enp6enp6ent7e3x7e3t7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3p6enp6enp6e3t7e3t7e3t6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIkMzT0tLS09WehomJiYmGs9bS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIqU3ebk5OXk56WJjIyMjIi/6eXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5eXl5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2EhYSEhISEfnx8fHx8e4GEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV5dnZ2ent4e3h3dnd6d3l6en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3l5eXl5eXl6e3t6e3t7enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2eX18fHp5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjYyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fX1+fXl7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4SEgoKCgoGBgoKCgoKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3dnt9fHx8enx5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp5en17fH16fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4e3h6e3l5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKCgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mFhIOEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4OBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7e3x8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYGAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoKCgoGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXFxcnN0dHR0dHR0c3N0c3NzdHR0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXFwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm5ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoKBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzc3NycnFxcHBwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubm5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgYKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXNxcnJxcW98gm9wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKBgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFwh4ZwcnFwc5iCbnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGBgYGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF9oYJvcm+LnnxvcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKBgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFycXWdoXZxd5+cfW9xcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXFxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgoKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZiokG+Co51+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4GDeXJzc3JycnNycnNzc3Nyc3Ryk6mkeYihnnxyc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f4B+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn18dnZ3d3Z1eHp4eHh4eHd4eXmftKmkp6mXfXt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7fHt7ia+mobWqrKN+e3p6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2YpZaisqCZp5N9gH99fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+gIB/f35/f4CAgYCAgYCBgZycjqCwoJ+in4CAgYB+fn9/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYGAl5qOmLGhmJWchXx+fn5/fn5+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+foCBfn6fq6SXpJublqGfhn99fX+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgYGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KDg4aOn7KooqCZnZ2mqKyooJmRh4GAgIGAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4aNoK2xppuaoJuenJydoaSjnZSHg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYOLl5qXlpigm52dnZmal5CJhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj5CSkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBho6Uk5eanJyblI+Jh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5OSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDhIiQk4+UmJKHg4KFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgYKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGTkpCOkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKBgIebiIuHgoKCgYCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAf4OIjoCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYmGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/f4yVgoKBgoSCgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkZGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSk5CNjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgZCMg4F/fn18fYycjoCCgYGCgoSUlIyBgoGCg4KBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYSFhYSDg4SDhIOChpSUkpOSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX17gZiMgIOBgYGAjpSMkIGCgYKCgYOCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGVn4p+foB9h4t+hISDhIKDg4KNiYWMgoKDg4KKj4KDg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhH2GiYB+hYWFhIWCf319fYCDhIODhpiPgoOEhISEhYODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaGhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39/f3+DhIONmZWSiISFhIWFhISEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhZSbo6uik4eFkIeGh4aGhYaFhYaHh4eIhoeHhoaGh4eHhoaHh4aGhoWDg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaFg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+Jkp2lpqaik5CSiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aHhYODhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGCgoGBgYGAf4B/f357eYmYl5yhoJ2dmoyIiYmJiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeHhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSSkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fXx7fpKbmZ2enJ2Th4iJiYiJi4qJiYiJiIqKiYuJhoaGhoeFhoiIiIiGhoeEg4OEh4iIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn19gJWamZuamZKFhoeHh4eIh4eJh4eGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgYGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoOBfXx9f4B/fn5+fXx9fnx6gJaZmZiVkoKChISGhYWDg4WEhISEhISFhIKCgoGEhIGCg4OFhoWEgoKBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYWEhYSFgoGBgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4GEhIODg4KCgH19f4CAgX99fn59fH19e3t6hpeXlZaPgYGCgYKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgIGAgYKBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goSEgoOCg4J+fX5/gICBgH59fX19fn18enx7ipaWk4SAf4B/f4CAfn2Af36AgIF/gICBf3+AgYF+fX1/gIF/f35/gIB/gICAgH+AgoCAgoGBg4GBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GBg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foCDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6e3t8jYyKi5eMfX9+fn9+f4B/fn9/gH+AgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp6enl+jI2KkY+Bf35/f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f36Af39+f3+AgH5+gH9/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp6enmGjoeCgoOCgICBgH+Bf4CAgIGBgoKAfoB+f35+fn6BgIGAf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEhIKBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WCgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXx6enl5eXuFhIKChIOBgoOBgIKAgoGBg4ODg4GBgoCBgH+AgYOBhIKAgIGAgYGBgIGAgoJ/gYCBf4CAf4CAgH5/f358fImUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgIGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYSEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl5eHyCg4SFg4GEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCAgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGBgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4eHl5en+Cgn+Di4SDhISEl5eDg4SBfX6BgYKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDg4SDgoODgoKCgoODgoKRkIuIiIeJh4aGhIaFhISEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHh4eHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl5fICAfYeUg4ODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhISCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6e3x9gYKBgoGDgoB+fX9/e4iRfHyOln99f3+ChoqFg4OEg4KDjYl/fX+DhIWFg4WGhoSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYOEg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXl9fn+Af4F/fXt8f359gpWRf4SIfXx+f4KEfHyBgoSDf3+Hg32CgYCCgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e35+f39+fn5+fXyAgYB+ho+Bfn2Cfn9+gIJ8fIB/goCBgH58e4qCfYB/foGAgIGCgIKAgICBgH+LlJCMjI6OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoWEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX+AgX1/f4B/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gZSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3x8fHx8fHx8fHx9fXx7fHx8fHt8fHx6enl7fHp9hYODgIGBfoB/f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhYOAgIB9fn1+f36LhIGHfn18fH9+goJ/fX19fYF8e318foGEg4GAfn5+fn18fn+AfX6Afn9+hJKNjYyPjYyKhoSFhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen5+fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX6AgIODgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx9gYKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISDgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9e3+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fH18fH18fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJioiKiYWIko+NiYqHhYWDgoKDg4SDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn5/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg319fXx9fH19fX19fnx9e318fX1+fX59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiYyRkI6KiYaFhIKCgoKDg4ODgYGBgYGBgYGBgYGCgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fn1+fXx8fH59fX18fX19fn19fn58e3t7fHx9fHt6e3t5enp5eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH+AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18fn98fX18fX1+fn1+f3x9fHt8fX58fHt8fXp6eXl5eXp7fn6AgYOHhIiPjouKh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKFhYSCgYGCgYKBf4CChIF/foGAfX6Bfn1+f4CAfX6AhIB+fn99fn19ioV9fn99fn6Afn19fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY6LjIiFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICBg4F/gIGEgX5+gH99foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fXt7e3x7fHx9fXyKiomJhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgYCAgIOAfn6Af31/gH19fn6AgH+Cf4GAgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e31+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19foB/f4GAgYCAgICBgX5+gH+BgH+BgIB/fn19fX59fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISFg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhISDgYCAgH+AgX59fX5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBf4CBgIB/fn5+fn59f35+hYWBgYF/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf3+Af4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4GDgoOAf3+BgYCCgYGBgICBgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH2AfX+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISBg4KBg4F/gIF+foB+gH19fX6Afn+Afn5/fX98f3+AgYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fX59fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWFgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p9eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hYSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398f4B/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgIB/f4GCgYB/foCBfn+AgoKAgYOChISGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB+fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1+gICAf39/f3yAf3+BgIGAgH98gH9+f35/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e3+FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYCAf32Afn5/f39+fX1+gIGBgH5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKAgICAfX5+f4B9fH58f4CBgICAgIB8gH+Afn+BgH9/fYF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3e3l3eHd3eHt7ent8hYl9e3p3enx9fXx8fX19f358fX5+fX19fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgoCAgYB+f35/f318fn6AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/foCAgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKNenx9fHt9eXt6enh6gYF4eXx8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+Af4CAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fXh4dXh4eXt8fH17fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgIGCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58e318e31/eHd2eXl6fHx8fHx7fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4SBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGAgYGAgH+BgYGBgYOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f316fX97enZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfH9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYOBgoKBgoF+gICAgoGCgoGCgoCBgICAgoKBhIB+gYOBf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0dnuEgoOCg4OEgoSDg4GCgoSGhIKDgoOEgYSDgYOAgYOCgoKCgoGCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhICChIKDgoKBgoKDgYOEg4SDhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX+AgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgYKDhYWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKAgYB7fYF+fHl8enp6fXx8gX56fHx9fXx6e35+foCAf4GBgYCAgICCgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSBgoSGhISDgoOEhIGDhYOCgoKDg4GDgYKAgoB9gICBgoOCgoKChIKAgoKDg4KCgYCAgoOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX5+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOCgoGBg4J/goOEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fn1+gYGAfn59fn1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIhoWEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4KBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+fn9/f31/fXt8fX19fX1+fn+AgYCBgYB/fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDhISFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKEhYuJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeoR/f39+hISCg4KCgYOEg4SEhYOEhYaEhYZ9hHl9fn+De4WDgISDgH99fn9+foGDgX17f31+gH59fHx8fX19fXx9fX6Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgIJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYR+g4N9gX1+f35/goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYSGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhIZ9cHuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fX9+fH6BgIF9gH99gH+Af319fHx9fXx9fn99gH+AgH58f36AgYGAgYCAgIGBgICCg4KCg4WHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fn2BfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIWFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WEhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39/en59fX99f39+fYCBg4OAgoOBgYSCgX+BgoB9f3+Bfn9+fX6BgH5+gYKAgIKEh4aDg4aEhISFh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhYSGhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3B5fX1tfXVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEg4GDg4SDhYOFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WDhISDgoF+f357fHt+e3x9fn9/fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoeFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaHhoWEhoSFhoaGhoSHhoeHhoaHiIiIiIaFh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISGhIaFhIWFg4aGhYWFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYODhYaGhISDhISDhIaEhoaFhYWDhoaFhoWEhoeFhISFhYOEiIaEg4OEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFhoiFhoeGh4aHhoeFiIiHh4WGhoeFhoaFgoSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4SHg4SBgoSFg4GAgIF7e359fHx8fn18fHx9fnx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9f318fHx+fXx9fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoeGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaIhIOEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH57e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhYSFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeIiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4SCf39+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYWFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhISHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFiIOEhYSGhoaHhYWEg4WFhoaHhoeFhoaGhYaGhIOEhYKBgoGAhIOCgn2BgX9+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt8fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYSDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iIhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4WFhoaFhYaCg4OFgYCBgICEgIOAfIGAfn6CgH2Af4F9gHx9fn1+e359fHt5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaFhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIOEhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFhoeGiIiGhYiHiYeGhYWFg4aEhYeDg4aEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B8gX99foJ+foB+gH9/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhoSEhoSHhoaFhYWDhIWEhYaFhoSEhISFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoWGhoOEg4aChYGBgH9/gIB+f4GBfH5/f35/gIKCgoSFg4KBgoSBgIOCgYCEhYSCgX+AgoOChIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGhoaGhYOEhIOEhYWFg4SDg4SChISAf4KCf31+fn5+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9+fn9/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGChoWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYF+gn9+f4J8f359fXx8fHt7enp6enl7eXt6eXp6ent8eXt9e3t+f3+BgH1/fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH5+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgIGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fH59fH6DfXt+fH2Af4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj08Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PD45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT0zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWy8vLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU09PT09PT09TU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw7OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OR6jZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1svL0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19jX19fa29ra2tra2trb3Nvb29nX19fX19fX19fX19fX1tTT09PT09PT09PT1NTW1dXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtAPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTUaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbLzINtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0jYuLi4uLi4uLi4qKioifu7m5ubm5ubi4uLi4t73T09PT09PT0tLS0tPT09vi4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOU2JMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXy81OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFhSU1NTU1NTU1NTU1NPd6ikpKOjo6Ojo6Ojo6Kr09LS09PT09LS0tLS0tLf6+rr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUJAOTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18vNUiwxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpp5cVldXV1dXV1dXV1dXU3qppaWlpKSkpKSkpKSjrNLS0tLS0tLS0tLS0tLR3+rq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDs+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fMzlw5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqiZmFiYmJiYmJiYmJiYl6CrampqampqampqampqLDS0tLS0tLS0tLS0tLS0d/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk6Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzM3EwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs7OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzLy8vLzdLS0tLS0tLS0tLS0tLS1NPU1tbW1tbW1tbW1tXX2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo7ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M3Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7OztLTz8/P09PPz9DT0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19fX19fX19bW1tbW1tXW1tbW1tbW1tbW1tfX1tbW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvVkpfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztKrnM/Q0KGWy9PHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT08PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK2nKWj1qegq5/PmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/OnZyRnrmelpChtJWGnZzNz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4+PDw5Nj9CP0I6NjQ4Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv5igm7WXn6CombW/yZeZxdDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9COjc0Ojo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P07SZlqq5nKagi5/E05GZoc/Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PDk2NDo5ODo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8qgo7/KnKWMp63Yqpmq1M/Pz9Srmn6jj6Wbx8mU2K2jv57V0dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX19jY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD45PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDUrJuni5eUn5WVpLvNiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PD05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q07aysqWdhp6vs52l0NujmbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXEopmWoI+jm6KcnJGnmJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTo6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6DH1aKrpJy+nqiho56ooqmd0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZSUUtLQD49RDw/Q0Y9NTU3Ozk2Ojs6Oz06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09PIkY202a+NkaXUmpKOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVaWpbTF9NSkxKVExGQjw8P0ZFR0tJPTY2Nzo5Nzk6Ozo7PTk+OTg6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MjB1dLVwL3W1NO5yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRExMQT43NzU6ODg4OTk6PD48Pjc6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHT1NLS0tTV09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj09Nzg2OTc3ODk5Ozs9P0A8PDg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT0tLS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCREtJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0FMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTU1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhRQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ7Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIREVAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29ra2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDg3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojs4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ojg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5OTo4Njg4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/hoG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc2ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg2NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTM1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY5PTs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5ubi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY8Ojk8PT07Ojg2Njg4Ojc2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBGPjg7NzI4OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2Njg/PkBCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NjQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO1tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7e3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6uvsKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOj0+QD9AOkBCQkI/P0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3s7CwrayrqqmpqKeoqampqKiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJiZmZmZmpqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OTM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpaWlpaaoqKeoqKWmqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmJiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8Pjo6QTw3PDgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OztAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutraysrKuqqailo6Slpqalpqenqqimpqenp6iop6eoqKelpKSioaGhoJ+enp+fn5+en6ChoaOlpKOjpKSkpaenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsK2rqamuq6ilpaamp6WkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiZmpqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PD89P0E/PD9CQz9CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlo6KjpaampaWlpqmqqaalo6Slpqako6OioqOioZ+fn56enJycnJ2dnZydnp+goqGio6OjoaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZmJeXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+Pjs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAP0JCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWkpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc1Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5KUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTg9Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Kjo6SkpaampaSkoqGho6Ojo6Kjpaampqanp6afm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6Wmpqako6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODk6ODk3ODg6PTs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/PkFBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+mpp/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqChoKSnp6alo6Kho6empqWjo6ampqamp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKio6WkpaWlpaWlpaSjpKOioqKhoKChoJ6fn5+fn56en6CfnJuamZeVlJSUk5GQkJGSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqcnZ6hpqampaSjoqKmp6emo6SmpqWlpqempqKdnJ+hn5eRkZCUl5udmJaXl5ibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjo6SlpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ2fnpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo4NjU4NDY3ODk9ODg7Ojs/Ozo7PDo6Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpeYl5eanqKioaKjpKSjo6ampaSmp6alpaWmpaWjoKChoaCZkpCPlpuanpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaCgn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpGQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqWlpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6fn6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5WTlZmcmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODY4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZycnZyenp6foKGgn5+goKChoqOjpKSkpKKhoZ6cmpmXo7efmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZmJmWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpmXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Cfn6ChoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKChoKGhoKChoaKmoaKioqGgnpybm5uZoamWnJubmZyempaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkZKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQT09Ozo6Ozs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjw6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqWhnqChoqKioaClsq2goJ+fnpyZmZqanK5meJ2dnpuZmpyZl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5KQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCfppOYrJ+gn52bmpqamaqARIGfnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ+enZuampqbmpiZmZiXl5aVlJSTkZGQkJGSkpOTkpOTlJeZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD05ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzo5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm5+iop6bnJ2cnJydnqCfYZmon56cmpqbnKOhT0iEoJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+goaCdnJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn56cmZuanJybmpqZlpaWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7QkM5PD8/Ozo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E8Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiXmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZuap2pcoqCbmZmbnZyvckpMhqGcnJ2cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mYmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmKWCU3eimZmanZugo19XToehnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bmpycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGgoZ+fn5+dmZqbnJ2amZiVlpeWlZaWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFxcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuYmJmgilxgk5uam52co49lWk2Bop6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+QjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbW0xGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZiZnpldXnWWmpydnaKBZVpNf6Ken56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpubm5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8OT0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnJydnJubm5ubnJqYmZmbYWJgfpWenJ6XdGNVT4Ginp+fnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiZmpiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmZidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk6PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp2dnZyam5ucm5ubmJmZn2ldW2N9nJyei2leUFOHn5uenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yQjpCLi4+PloiIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiqrG3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODo5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M9Pj45YZmVi5GGjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZm5qal5N2bmZWeZSYnYlbVFBZi5KOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojg7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4yRj4uMj5CRkY6TnZ+Sf6KlmKaddE9QZIeHgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjpAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CFopuMfGaSpZOce4iDY3SAgIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2OTM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+gqOJeWxRc5yNi1hwe3x/fnyFjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc5Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfZmZdVNLS3OThYJMXm9xd4mFio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj04ODs6OTo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLgIKJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4OChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY6ji1AwLzt4hnZ1QEJbam6CkImJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz86PDg5NTg3NTc5NTo6Ojk8ODo8PTo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KnnGNDX0s8eHhpZkcxNldtcpCPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkM+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mqro5JeKp+QHx4ZWJRVmNKXm+KoaGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dFPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKJ2Y8LUpUV9kIR4T22NeFZigKOop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBEQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqqmkp6eZnaSlo6KeY4G7wK58pKOal2xJXHtwUnSVo6KgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTtAQUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioKKnoaaupqacn2yDmLmLrNOjm7SsXE2vmlVlkKGeoKCenaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq+ro6OHd356c9HEsJmjrWxWp65mXYemoKWioZ2fopiVnpufn6ShnJWYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7e1tbayrbCtj4eBbZLLvZWVppV0Vm13dXN/laaqp6Shn6ObnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K4u7y8urrCubW0noZ2YVaetbump5mHeG1ycHh5en2EjJGWm6Gmp6ympZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW4wsjO0tDMyL2xo41wZVJEiJSFhYV9eHJvZmVraGtxc3FxcnR7i6nGxruip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYWZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PFx9vk49nJu66jlYZyWVpRRGZ3am50bmtlZVlYXVhcYmlqaGVha4+4wcC5qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxr7M0NTKuaaakYRwXFFUS0RbZl5jamViYWhbVVlUV1laXFldeZ64uqu0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudnJydXJnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS+w8HHy8m4lXRhVE9PU0g+X2xfX2VjYl9kYlRWV1ZUVVt5oq6wqqirrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO5uMOfZktER0tEPVpkYmJqZGFcZF9YU1BQUlyHtrqsrqWko6ikoKClmam0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnZSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent3bmtpaHZaZ3J4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTExMLEwbCKU0dNRTtLWl9mbGdfXGBZWlRPWYenrLi1sqypo6GtqaynrZ+stLS/w765uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dmVmampoXmtvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCx51xXEg/P0ReYmFrYltYV1NZgKG5v7u8urysraapu7q5t7+ztbiywca6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWh2aGpqdG55bF5kW1VgWUxIRDY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnOxsbGwK96VU4vVlRXaGFSTlR6ssnIwsTHwLy+tLCwsMK+vsHGwL63tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOi5R9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ9eHBnYGtqd21pZnZvdGNdY1VXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsLCw8GVQ055g45WUHmtzdPFtr+/wL+6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5gHNwZmVnZGxlYmtub29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvrzHpnltgpGWcrTMyMfRwa+9vbi5u7u+t7Swub6zvL6xubW4vLa8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX16g3huZmFlYmFjZGRqY2dkW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8yc/Aur/AvLvFvbrAxL+9v65wYXyRiovRxb+/yb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7e4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKynpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCnoaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhY2Noa2dnamZqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz05NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdSMuL+7w7W6x7a1uLq8uLm2q6WYjXyEyb+/u8G+uca9wr+8xbi2t7S4tra7u7i2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGhoqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVncGplbGhZWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/DdqjMvce3ubettrS3ubO1sb3JxZVIfMq+v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfWtucWdxa3RmY25gXFVIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrXOAu8jPwsC4rrS0u723ubG9w8qNRHbNw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXJmbGpudW95ZGhjXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsbJ0Zhwc6zR0czKxLW6v8TIvr60v8DAd1Fvy8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0cG1sdGxtb2BjX2JiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XRw7q+vMS+t7zAv8nPx8jKycGFcXOlzMzLzcrGwsPLzsG8uL26sG5jY7zIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWRcX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9vDvra+wL6+uqacqbK2w7+leHV4m8TGy8jBw8C/ycrBv7u5saB8cmuuyMXEv8DBv8vHw8DIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpJ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3h0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEt22tzr22ucC8rH1uaG5tcoGVmHN3fJe9v8bAucC8vsXEvb24sbCYj3yAm8rCw7y9v7/Dw7+/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cG9qXGBhWlRRQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbJ2gbO9trXCpYdpWl5gTVJbWm5zd4GfuLjCurO7t7u9v7q7u66kmpeGkH7AxMO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra8tLGso6irqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d25yYV9mXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmnhXiKoK+1nWplZ1ZZYElJTVBTbHeGpbC3vrmytbK7uby2ub60lpullaBxrsnEwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fqoh8dYygmGBUQ1hVR2FqVk9FSmGNoKyvtrq1tLKsvLm4tbjBvYuXr6GlcqXLwr+5urWupayzsKavraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZzbmNeZ1ldXlNPTkI/SkNBS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4vrSQgniIj29OSj9kWUJOd4CUak5BXYGwtbO1srSvrLu6uLa5v8V1gqidmWOpv7i1srGtrZ+kpqaco6WclpmZmp+prrmsq6ufpaikq66vp7Crr7GxrbGurq+5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211amxdXGtUXlxQTkhER01CR05HODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHtYRkFOh1lKSlh3jYFjQVOjuLO0srCxrbC5uLa7t7q8j6GxqqNyrLCpq62ro6ignZ6dlpehlZGVl4+XnqiupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWh1dG9lVWFkV11ST01JQElSRE5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKqZmZVpTUBSeHFQSUlLZ5yBWURSrruxrLOvrqyttraytLWuqKaempudnqaonqCoqZ+hp5aalpeNm5KMjpSMlpqjqKCfoaKhpqWco6OgnqWgpKylpqiloqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqaSpq6aprKumoYh4g3x2f3pjeG1uXVFpVVBPR1BNTUNQUkE/Oz40Ojo1Ozo9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3Cq6W+aUVSnYJRV0lKYEtUjmFjYoGutaqytK6qq6+wsrOtpZ2Rl5OPl6CfoaCco6SfnqiUmZSVipSOio2VkZeboamenp+go6WonJ+goZyhn6Oop5ynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJaTj4+SkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOfnaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fIB1dn1ubHtkaVZSZE5JSEdPU05LTkg8RUA9MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutra6ubq3t7uuqKChqaCqxr/LoVBBc513UG5LTGNmdXNgWl5wkLGvrrO1qqasrKObmZSNkZWXmJicn6KinJ2knpqklZ2alI2Pj4+Ql5aanqOpnaCgnqanq6KfoKefnZ+jpqieo6afqp2qraqup6iwpaOkpqespqKlopuZnq+orrKrpquqoJuYmJiVk5aak5WWmpabl5iYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJfIB+d3l8ZXl5YWJTVmFISUtMU1VKU1FNOT9BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMfHjldTSmWjWmV+b3JdUWtjW2RfXGuPtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyWp6WhlZWWkZaWlJuZnaOkqJ+lo56nrq6qpqKxo5qjpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuVlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbWVcU1taTVFLT09WTVRNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6rpI16VWlydnVwY3Z2WFdjYGNnWVhXZ62urK+nn56ioJaQk5ugnJmXkpOfnKGjmp6amKNufZeZoJuinpyinKKmq62nq6ikrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7W4s7itsrSkoJ2loKyhoaKhoJqZlpafm5uYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dmp3dV5tW1JhSVJWSEZWV0tDTUg9S0k4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqK6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuioaCkgG6CcGBjWExbU1pNTFBYUkhNTUiYrKqppaCfmpKRlJiYlpaWjIiLjpSdnJ2cn5lIR4+fn6ajrqekrKCoq7WwtLCwrba4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwbe7tquusbm3vK+zsLXBvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaegn5+oqKWln52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21oblxYXENXTkpHTUhDRk49Pkw+NDw6Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqamUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnYlhV15lYFdNUUc+Pj9DQz8+QlF4qa2pqqagnp+io52fnpudm5STlZSenpiUhaZ2KmCSnqOrrrivr66vr7i8u7u4tbjDvr/Cv7a6u8DDub27rK6nsa2xwra4wsbAyMrAyr+wubm9uMK+uLS7xsS9w7y4tKqzraqztK+zrqqvo56sqLeyraOwpqGjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhESlBJP0VCNEZIOTY8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5V8X15lYFFHRDxDPkU8Pzk2Tn6qs6eko6KgnqWspp+YnZWSmp6ZlYyKhoiGeGyLVzVmhXx5gJa8vLywucHDwsa/vsLGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxszMzNLHvr/Aw77HxsK4xMrJxMHHv7q0uru1u7ewtrKru7KvvLfAu7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5WUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtlWlxGTE1FRFRNRUJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEA/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9c2phV05FPklZfG9iQj1cjq6soJmbnJ6emZeXmJONj5eXlI+NkIyCg4J2cnBscGxUYGtwcm5zj67EvsHMzdDIxMjQzMzMx8rFxczQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsfGysjPwMnRzcfGyMbCvcTBv7+/tb6zrb/Aw8PHxcjEr7+5sri9xMLBu7y8ta6np66ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXVzZWJncm9nXlpaRE9NQ0ZRSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6Oz5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOem52Wa2ZdVElEQD9Lhp6lmoSgsq2jnpyfmpiXlJOUl5GQkI2IhISJh4OAgYGAeXFxbmp7gGRYd3dybnJ/nb7PzdPKs9HQ0NHRzc3O0MTN1NXY0dfNxsfJzMPFys/K0tfS19LV1tPUyMzHzM3J083O083GycrKwsfMx8nJxr/Ds7PIxcvLy8/Hyr++v73Bx8XMzMnJwMPArrCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZVZYUkROR0BJUUM+Qj06MjJBPEU8Nzg8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnGNUTEpEQz9DUq7RvbKvppycnKCkoZ2alJSVlIp9eXFsZWJocnBye4WKgHVwbXByb4R7doB9dHJ1b3Sez9DTmbbX09HS1NTSz9HD0NPW2NXV0svJztDLxs3SytLV19nW2NPW2M3Sys/RzM/RzdPQwMnIy8TMzczPz8bHyLbAy8DSzczQx8rJwMTDyM/N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYWVyY11SXEpLR0FGSUo/O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpaWgoqJbSUBBREFGUXayr6aalJefnJqgoJ6bnZqViXdpZGFfX19fXl9fXWFsdXNwb25rcG9zg4B7gXltaWhebb7To3/S1tTOz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ19fY0tjS19nV1szPz8nN0szO0cDHxMnHz87R0dLIzM3Ay83G1M/Mz8nFy8fHyczL1NTR1c/SzNPCucWxpai1rqibqKulnbKosLOsrJOPk46Iio6Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUWBKSkNFQ1NOPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ6lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6up6qooaOsZkM4PT5EWIKqqJ+XlZeZmpyfnZibnZN9cWVjYl9fYV9eYWBeYWBfYGVtcHBtamxvc3Z9cnmAcmJcU1mjrXKr2s/TzsvSzdXU0crPzNPW0tHWzc/V1dHF0dPK0NTV1s7T0djY2NfLyM7Eyc/NyszAycHJys7P0MzQzs7Mz9DIzNDRy87Lw8rIys3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO/u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSUZGRE1ZRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD85ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+ZpaegoKOnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksntIRkI7V42hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYF5fX15cYm1ybm5wcXJxdnRvd3l0Y1tce3eI0dTJzM3EzcrS0s7GzszN1MvO0s3L19bQzNHUy8zQ0tPKztHV0tXWysDKwsbNw8jKw83ExsnLy8/Lzs3RztTMx8nQzcnHy8bHwsbKzM7R0cfQz87OzNDFx8G4ub3Dwr3DubKyvrC7w8S1qpiloZiWkZWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTElRUUI7RD87Njg6ODo7NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9wd4+ajYyXlZCTkZGVlpWQi3xlYmJiYF1eYWNiYF9fYGFhYF9dW11ncXFvcHFtaW1zcGhydGdmY113wsXHx8TEvcHFzs7HxcbNytHIy83NxtHSz83M1MrHys7Px8fP0svQz8W6xL/Gyr3Dx8nOxcPIwMfOyMTNy83QycXF0MnGwsbJxb/ByM3MzM/DyszJx8zQxcXIu8fDycnCz8G9vL+wwcnHub2qsbKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdJSEdJTVVHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ojo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KFoqqTjY2Wj4WDg4OBfYSEfnNfW15dXmBeYGNkY19dXF5fYGBfW1pcYWtycG1taGdpanVqY2JeYmVdqMa4v8G5ubi4vcjFwcPAw8fKyMjJyMHFzMbIys3JxMHKycHBy8/Ey8i/ucG8xsi+wMbPy8TAw7vKx8i7ycbFysG+wsvGxcS+xr69wcTGzMbGvL/Kw8XH0sXBycDKysbIxtDDw8bDrsTLx8PKt7+8urOprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdDR0RMREZTPzU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL64vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bF55fJ+RipKWhnqAhIV/dXh1cnBfWltdYGBiY2RkZWRgW1xeXV5dYFtZWlxhbnFtaWZna2lud1xYVl1haarBrbW4sLCxr6/Burq7urjAwcHEvr25vcC5xMrFxsK9xsC3u8PIv8HJu7a7u8XDv7zCzsPGvr61wb7Eu73HvMO6tb3GxMLDt8C2tr+/vM3Evba6yLu/vszEwsbDxsnHycbQxsLMyLLHycPOzMDFw7+8srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRUJGSkE5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1q7e0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys/FycXHwbrFvayupmBjdoGSi4iLhHh/hoZ/fYN7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXWdyb2tkY2lqa3dyT1FXYnGatKuurqSnq6mktbK1s7KztLu1vbG3sLWvsrvCu8HEvL+6tLK6vsC4yLi0vLbAwr24vcfBw7u1r7O1u7+0xbi7tay5vb7AvbG7trC3urPGvbevvL+1t7XFvb7DxsDExsbHzMW/xsa7x8u/z8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpHQkRBRUY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TFy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJlbZ2+Ij4aIiXp4foWGdneBfHNoXV1dXV9gX2BkYV5jZWNfXlxbXlxdXlpbW11fa29sZmNmaGhse2VJXHWHlKioqKObn6ekm6ipsKypq6mzrbWwsqitp6yzu7q2w7m6ubCqtLm7s8K5r8Cxvby7tbvHucO3raqosLLAtri9sLGosrO1u7yrrranrrauvLKxqriwrruuu7i7wMG+usO/xsPFwLzGwcfKuMXHxb/Hw8O5xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMTE1KRUFDP0ZBOjo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTPx83Bwsa/xMTDw8rCycq/wLzCurO1tcOuqrCSW2l+koiOj3t4fYmFeXuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWlpaXGNtbWZkZGRmaG15ZG2EkJOboqWumpuhnZaZoqiso6ehq6mrq7Cjpp+prbW2sb24r7evqK24tLO8t7O9sLi5tbK8wbLAr6Wpo6uxs7OovaqrqKusrrW0pqmuoaWvqbOmqKiupqi3rLGzt7q7u7K8vr6+xL+1wcDHyLe/v8W3xcPAu7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlNTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8LLvrvJtr3DvrrKt8HEwbS2vLaxr7W8ramrk2RtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1hXWVxfZWpkYmNhZGRobXl5gIeGk5iRla2moJiUjp6gp6Kin6SkpqWtn5ybo6WssrC2t6ewrKiqtKuzubC2tq62urOwurqxtqSgpKCmsaisqbmqpaenqKezraCnp5+cpKasn5+npKGhsa2trLK1s7Swtby2u8HAsru+w8GxubnCs8C9wLW4vL2+vMLHxMPEv8DEoIR5cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbq9tqCelZ2gprq2q7Ozu7PEz8nLwsW4t8fAzL+4yre7xbizxbizv8CstryyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBeXFtcXFhZWFhYVlhaXV5jYmBjY2NiZWZseXNxalhbb0V7oJ+Ukomanp+lm56eoqSip52bopueqq6ssbWkqKqprKyktList7Css7Wvs7WvsKqfnp+korKlpqq4raKmpp+orauZn6CemZ2fpZqZo5ycnrCprKiqq6ytsLO5r7i5urC2vLu6q7OyubO9tLeysba1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTYzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uci4uL+3ssK0sbu7rLm6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dXWFdaXWFiY2NiYmNkZXBqWEEiOnFoaYeckpKMl56epp2am6OloaSbn6CZmK6tra+yoKSiraunobWwsbKsqbCzqLqzp7ahop+co6Gto6Kqtquio6aepqajlpmdl5manZ+al52cnZytoayoo6Smrauzs6q1sLKrsrm0r6qvsrKzt7Ouqa2usriwura6vb+3s7GUhnp2Zl9mX1tZVlNaVUtbUUxKRUhLSUM9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+ynaWjmKWxw7W2va20uMLMyMbAxbbBwMfOt8DDvbO5ubK/trG5u62yta+fmqOqoZSaj3h/g4R/eG9xdHFoZWRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXVlZYV1hXVVdgYmNhYWJgYGRmckQZHEiKlJCOmZGUjpOcmp6blZ+fp6Kdnaebmpqrp6+wqpyjo7epoaCuqLWqp6eusaS4sKS3oKOcmZmqpqGarbmwo6GknKKgoJOVoZSWlpyZmJaXnJWfqZ6qpKKeo6qqsa2otKyqp62zsKWrrrOxr7Cvr6eoqLKusrSwvLS6uK6jlIJ6d2VfYVdZWFNSVEtNXkxQTEdITUxFPUA+PUI8Ojc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0usKxvre9rZ2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJqhqZWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1ZVWmJiYGBhX19gYmpfJTduh4uOjpSSlpCRmJyZnZSenaWkoqWmnpyfpqCrr6afoaO2p6GhoqmzoqWopbCmsa6rtZ+hnZaVqaGilK2xsZ+jo56emJyTjKCUkZOYmJKXmJiXnqebp6KimqSlpaukpbCnpaOrrK2mqa6vr6uoqqqzpqarr7Sxrry2sa+vn5J7eHNlYlxbXVhOTFFIUmFNVlBPSk5PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sba9sLuxt6yepaasuLu8wcW6srm1xMnJwMLGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZn6OLinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVVRWVlJUUlRfX11eX1xdXWBhbFdch4OJh42LjZWOkJOgl56Vmp6joKuko6OipKKcqqukmp6lsaqhoZ6lqp6oop+trKqprq2ioqKVmKKanJCrqbCcn6Kfn5eZk4qdkY2SlJaQmJiTnKGjnKWhopWgoqSlm6OrpaKkqqSrraWusqmmpaamtaaqqK2ztbS5uq+qrJ6Mc3FwYFtXVlZSR1FPSFpcT1JKVEtTTEVHSkM4Ozs9PDk2NjY6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Gtnainr7m5s8DIurXAr8XIzLrByczItcm8sb7Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU05QWV1bW1xcXF1cX2Jrg4l9in+IiIeSjI+OmJigmZmfpqeqp6unqaWimKSupJWYpK+poJyZm6CfrpmcqrOfpqafo6OhlZSblpaSqamtm5yfoaGblJCMmI2MkY2SjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq7Ckrrilo6SjrK2qqKuvtLeyvbWzq66YhXV0aVtZWVNVUkZYTFFbWE1VT1BMUVJJT0lCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7euqKivrpupqKy3tqy8yru2v6zMxsW4wM7Px7PEu7e7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2hmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FYWVlZXFtaW11eZHqEeoN3hIiDi4eRjJOWnp2Ynqmopa2rqbCjp5merKCUlKOop52YkI+anq6WmKeqmJ+dlKWgnpKRkpGTlaiqpZqYmZ6el46Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6Wlp6mooLCwprG9p5+jrLSqrqevtLC5tcCxrrCrkX5ydGNWVFVOUUpHVlBSUkxMWE5LTE9TR05LQUNGRUM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxt7i8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5xam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRSTU5NUldYWVhYV1pbW2Bpd3B2bX+Ff4iCkYaQkJSYlpummZ6ppqWrnaaYnqWbko6eopqXl4aFkpukj5WinJaWlYeimpuTjI6KkJqlp5yVlZeckZOIlI6LgYyNgJCLkpKSoZqgopaUmZiVoqaajZmkp6mnoaC0sqizuKGdo7asqq6ksrKmtbu1q6yxoop6c25eTlFRTU9ETk5OUEtGTk5KSk5OUUhNSkFITElIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKqloKmmpLOqorLDtbWys8bFt7rDyszGs626vbS4wK+uqbCepq67r62gmpuelZWIfIRuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0tTV1dWV1dXVlpdYWxpbWd7f3qBeoyAioaRjZCbn42Ym6Oho5iklqGblI2HmZqMc42Dfo6XloaSmpCUjo17mY+djIKJgIqYoKOekJOYloWOgpR+fnSKjnqQiJOQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmKa4pqWwobGunLG8qqmvqZmEeHRkVk1SUFBNQ1NOTFBNQlBRSElOU05JSkpFS01HS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY2Ojg3QTd4t6GjtKimpaijpaWmpqayp6a0wbivtLDJxLi5wM7GvrOsusGsrcStqKKmkp2mt62joJGWl5KQfnh/ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpHTlNTU1RUU1VYW11pZGdkdXx0bUtVbox/k4OKmpWJkpCemJ2VlJaTjZWJgJSJXztWb3yMlIqAjJKMj4aGcouEloF5gXuGlJ2Vg5aOkI+Dhn2TeHFwho19iYGQjpCXmpmTi5CKnYifmIeIlp6aoaCXp66prampnpats6KlrZmtq5iotKOpraOTf3RuYFtOU1JXTERUSlBNTEZOT0lFTFFNS1BKSU5QR0pKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebegoq2hpqaqoKapp6OqsKintMG5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpmHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtIRkhOUVFMT1JUVVhZYGlkXnF5bEw/PX2Tj416hZKKg4iLmo2WlImRhoSThXmJf2BKUW54i5KEfoSMi4R/f21+f5N3dXZ4hI2acFGNiIqGfH55lHZnd4aIfoqIlYuOkZOXjISKiJSFm42ChZKblp6dlKSiqKmlpJ6bsKqhpKSRpqqWoqqcoaaninduZl5cSFFRU01JVU1SSUxLT0lIRkpOTE1VS1FSUEdKRD03Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+sqra8tri3s8G7tqe5yLi2qKi1tqqyvKeelY5/iZSplpWLf46Dgn54cW9YTUtNTU5LTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlOUVNUVVptfWptdmNjWFKOhpKFcXyEfnqDi5KBkpmLjnqFj391f3hzb3VwdI6OgXp+iquFentodnuOcHJteIGLjZJ4e4B7gHdzcpJ4aHWFhISFfJWKiIqNi4B/hIuNgJSEfIGPmJSclpGfnameoKGdoKmln52Yjaejk6Cflp6fpIFzaWJdXUpXUFJIS1hST0pNTFJKSkpMUEhMUU1SVU1GSUI9Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5NDc3ODU2NzUyNTE0NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6RfneGd3x3cG9qWUtISUhHRUhIUFRUVFdXU1RVVVVWV1hXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE5RUVNWXnN+dnJhcYmUl42NeWR3fnR2fYePfIOYkX9who97dntva36tfHSQi396hpKAfH90ZnV8hmxvaHN8io2HgG15cX1xbXaPcWhxgX6OcESLhYKDhX93d3qMhn2Me3V9jpKPmIuSmpujlpmdm52eoZyWjYulmo6dl46WmJB4b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUk9JT1BMRkQ9Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzUxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rqKmxr7GrvLiru764s6ynm7CnrJuPlpylqaWhmJqOhJJ5iY+Li3ZxfG11cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFellKTk9RVFhdZW9vZ4OlqcB9cXZgeXZseXeGj3l7i4Vua4uSeHN4aWqAgnGWkYyBfZV/SZKZbmd3foJtamRseYWQkoZrcmx8bnJ8hmltcH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6LipODlpeYmpCTlpaZl52WjIOJn5KLko2GkJeAcGpvb29ZVlhUUlJZT1JVVFJYVU1OSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYm5+krK+iraqota+urLS/q7zDv6aimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ1b3RscG1la2tZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JWWlFYW16lhmGYZW91Ynxta314iYd1gYeFc2uZkXRzfGlqnY5MeYWTiYSOZjF2h3JrfX2DdGZldX+EhIWAZmlsdWtwgHxocXF8bpONj3t0fn1xcW91bYN/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW05QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzM1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo6VmYuOhXqEkJiVjZCMkIdxh4J0iIyGenBzcW9wZHBnX1RGSUM+PDs5Oj9AQURDRUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUxCSVFJYq6ynm53dGl6am+Af4OAeYOFhXlyoJR0eIBzdJSHNXCdqJ2PoaGEooV2cIZ7hnx0jK6NiYFoZ2JqbnJtcIN1aW9YdXCOm5F2bX97fW5ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2OfHNycW1gXF1eXFpZYV9STltaWFdMSEpGSUc/Q0FCSD9DRD07Ojc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMTEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpGBkoiVkZ2kp56vlaW0qa6wrsGyu8HFlo+MlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt1eHhsd253ZGpeSVBHPT83NDQ4Ozo7PT5AQkVITExMTE5QUVNUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw4RE5SU0RKhHN8eXlze2p0hYZ6fIOCfot9daGZeX6FgISZhJqcYYaqn52Kg5COeneIfomIjnOLl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVnaGBbXF5TXGdeV1FUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2eppGgqqCxqK/AsrvEupaOkZOHeoZ2a3+LkYN9ioOOjHiDgHOhhIp9fYF/cIF+emh3a1JYTEBFMjExMzc2Njg4Ojw+QUVGRkdKS01PUVJTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9RTEtUXFhSS2eBhXiGd3lveo2JeHuHhX6Wh3agmYeGjpKUpY2sqUiGrrCui4GAlIuCi4KEkqmHgJiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZIbIB3cnl2aG1rX3Z9g4h/h4WLeZScm4mLiJF/enWKdnx4bW93foF1dXNtXF5eXGNkWGdmXFVQUFdZUERMS0ZPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2Nzc4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5COlZeSlqCdrKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIgIKIhXiHiX5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzk0Ll2WcHOjVUZJS01NUFdgWG9ZW11niY+DkX6Bf4OPj3yEh4+AmZSBn6CXlJuapq2Tmbuxp7vHw6iLjKGljpOJgZF8cYOen5Gdf3eFhYuQh5BpaHCEgXSMh4SKcoaCd4iAe3aEfG11dWZ/lI6GiIiHiIegqqKWiY6Xf3qBiHl5b2dreH58gHVsZV5bW15qXmJnYFpPTE5YUlFJUEpETkdDSkRDQUREQjw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneCen+Mf4GQjoqam6Sdoaymqq6wl5GRhKGUhHh3f4yUfH6ShpKVf4qAkpuOhICBjIqCiY2Df4p/bHBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlRSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISkxMS05WX2J+ZmZrcpiWi5eQkIiLjJeGkY6cip+fkaKppKOrk6m2oqjBwq3Hr3i6lJp8jaGemYSThYKOoZ+UmZGFioWPmZGWbHB1ioyClYyNjnePhHFthYGKlpGChYhxiKCWhpGJjY+WpLSom4yUooOHkoN9f2tqanyCg4N1Y19lYFtobF5sbF5XS0hOUlFNTExGSVBDRE5GQkNFRkM9Ojk2PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIOAgIuMiYaQh4SJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDg1Mjw/UjVISEhMTE1OUl5tiXtyf3ubmZekop+XnpSgk5udp52nqp6nq6mqtZerv6u2x8i3yNDPvpugcGmrqZ+Ek5KFnKCam5mmkpGIlaKbm3h6fpSYk6KSl5eBlJ57d5WSqrKIjJeffJSdm42RlZijoaW1r5yQmKeHlo+NgIhsc3N9gX5zamFeYmBiaGRgaGdcUkVKS1BPSUlMRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjox8ioaPkI6BgoCJi4qFkoWDhomBgId3XmJQNDYwLTEvLC4wLy4vLi4wMDE1PkFBTVFSU1FSU1VSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUpOT1FZbISOdpKInqKmsbu2oqyqq6ans6qvtbGxrbqxs72bssOrusnLt8O/uKWisLOsraqji5aYhKWmoKOXgaaZjaKrqKWIhZSkoaCroaSoj5yxi5Wjpre6m6Cir5KjnaKdj6Ohq66rsrShlKSpiJmIkomVeXp+hoFpYmldZmNfZWReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2luWHqEdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GOg4SBi4WGiJKGgoWJh4iHh3FuYUBFNjQ8Mi8xMTAtLCstMC4tND9DQU1VUFJTVVVWVU5bUEdHRDw+PkZIQ0VBODs8NUM7PUZLSUdIUU9RV4CRnoOroa+nrr7FwaixxLWrsr+yt721vrTBtru6o7jFqLXIx7W9ubSoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqiutruyuqywtaKxrLG1u7a0rrSgp6ijp5qpr6yxuLe4ppq1qIykjpCSn4Z4goV4W2NlV2djYmRhYWdgW1RKRERMVVFISUpESUdFQUBAS0RCTUc8OTY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiYld5dXCBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIyTjIeEgY5/gYmPhn+GiIaKh5B6eG5dVkBFTjw2OjQ1QUI3NjQvLzZDSEJRW09RVVdVXFdQX1VJS0pBPz5HS0ZGRDs+QDdENz9CSkpFRlZUUF6Oo6yisLG/srW+yse1usS9srPAtrfBtL6wt3Sxs6a6xKSwxrmwsrG0qKS1tqqxoKKXm6KSpbCupq2rp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwbe6t762ure5rKyxpbCprb2wvLrBwauYuaeUrY6Xl6mIfoN+bVhkYllsZmtmWFxjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpvfo6DgI6EbnpzeIdiuaGZo4mUlJaSlJONj5aRh4Z7hoGNlYqAhIGKenyKh4Z8ioKBi4OVfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNRUlhYWmdZVGBfTFNQRUE/SUpIRUVBQEQ8RTZCPkhHSkxTWVRdkq22s7m2x7y4u8nMurvAu7e1u7q2vbO5scVgdbKksZqeqr2ppairqqSisrWgq6iflZafmaCupaempZ+jk6OnsbSosrO9tsG+08nJ08bDxczCysPAvby+u7y3tK+4t7bDucW9wsevnripoauNpKe1iIGBdGFjY19ZY2BqZ1NYYFZSVUlFRU5LQD5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VBSU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaKfoN/gnh7i4OHe4t5gYqCl350fXprZnB1WV5cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFRZVUpEQktLSUZISEhIQkk6RD9IS1NUVVxaW5K3vre8tcS+ubjJyrq2ubW3ubK3tLOutbaYZHWnnK1wXqKsnJigopuknqqllJ+fkJOOlpmYqJ+moJ6amYOknqylqrCtuLC9udTRz9fQyszSzM/Oysa/vsLKvcG8wcDExMXKvsfNsqO6sLSumqu4u5iAfG1fYl5aX2NaZGNRW2BTUEtDQUVGRTxART5BSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVtZaF9vlpKQlG5sb3R1h7SsoaGfi5mcmYyNlZGakYWKin6IhoyQi4h8gYNze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWdqamlgZmlpbFptc5atpLyIhmdbb2ddWlpUSEtOUEpLUEtTUUlMQUpGSk9fXmFmaWGWtcWwuLK6u7OwxMa1r7iwsLursrGmqrerjLWnnZqnmk6ZnYyOn5aRppillYqTk4mQiY+RkZ2boZealZaHnpqnm6yvqLCotLTU1NTW08zQ09XN0s/MxMLJ0L7JycrJ0cfMzcLP0bevw7zDuaS1ucGihHFlXl9fWmJZWmdaUV1YT1BCQkhFQkg7QUM+QUc/P0E3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJncW95eYOhqp6ml4yam5eLjZWRmo59iYuEjYqKipCHfISCcH+HgYZ7h3KDkouOfXF4dWxxeH5xem14c21pgXBtY2ltcHhpd3x+y7/B36dtY3huY1tiYEpQUlVOWV5PXVxOUE5UUFRUXG5tdoJxlqy3q7Omr7Wpq7u/sKq0paS4pquuoKu0o46wrZqXmIyQk5GEjpuBjaaRnImDi4SKiYSLhJSVmJeUm5Gcl5man5+rrKWooqytz9LV0s7M09TUz9TRzsfD1NHHzdLT09fM0dHE0tbFwc7Hx8KovbfOnnxxaGBlX1hiU19bUFFUUU9IPkBGQUJFPEBBPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxVUU1OWnWGhYp3bHdwfX5/oZ6eoYyMmJOTi4ySj5WFeYWPkI2KioiQhn6Ce3J+gICHeoR1hZOQiH9vdnJrc317d3tzgnhya4BzcmlvcXp5cXq+y5p+jLKEdnKEdmhha11DWlpbVmVjWGRqU1hcXWBjXWN3en2LgZippKShn6CnpaqvuKqlsqGhraGjraGnsZ+IppqTkpGJkY6IgZOJapSijJmEgYZ+kYODk5eti5WNlZmOhpKRnpeosKKhoaWkqcnNz8jCzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy411cWViYVpWWlVcUUtHSkpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7T0xGSlhwgHV9aHN4coKJgJ2VnZSFi5WJjomIjYaOf3iDk5iKjIeHi4h+gndze32Ch3d/eoaRlX+DbndwbXV/dXh9dIV8eWyHdnRufXaEdHh7nbWMO0GLxaV+jHxpZVdJQ2ZjZWNnamNtd1teZmhrbmhugIKHkYucnaCdkJeYnqOjpbGjo7GeoaWdoKigo7GchZ6SkZGPi42LhoOPhH+cm4yNgoSFeZR/gqmVo4yRiZeSi36Yi5qSq7OYm5yonKe+w8a5tsbO0tHS0MzSy8jUztDV2tfX2NTZ2M3Y287J2drR1b7Ky7V6eXBnX1xUV1JdV0ZHSklFRT06NzpAQEI6RkQ/RENBREI7Pzs7N0RDNzU2NTU7MDY3OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhImBh3x4hZaWiI6Ch4WHeoR4cXp7g4V1eYWOjZx5i3B8b296f3F7gHGDh4Bujnp1d318gnR+fIaHr3NYqcK2jZGCcG1iPV5ocnBxcG54doFlaG9ydXhxeouGjZORmpWflYeMk5qgmp6pn6Csm6GamJ+lnp+rmYuai5CSjYV9iIeDhYuOoJmTiIOHfmyZeoSYhoiTjI2UjIZ8nImUkK6qlJaYn5mnr7a9qa2+x8zJyczL0MnD0srU19nX2NfV29fT2dvV0Nra0dbI1MuWe31ral1cUVRVYElDRklIPkE+PTc6PT87PUc9P0FBQURBPj46ODdEQjc1NTQ3OS41NjY0MzU1NDIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEPkNHUmpebWRiZmt2gIhxkZCagHqAjX6CgoGDfoN7fISYjYeLfoWGgHeCeW57e4aBdHmSno6gdo51gnN1gX1zgIRvgZCCb5KEdXyBhXp2hnuJt8Wkwcm4gZabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJSOl5GDiY+WmpaWpZyXn5aekpGXop2Zq5WQkIqMkYKMhYiIgYaQkZ6bmYiGjIGFl3qIiZ+XkIiNiouCfaGJkYy8oZiTmJmdqaamrp+otr/AwbnHys7Oxc3J0dbV1dnV19vU1tna29fb2tnYztvGiH17aWtnYVVZVldOTEVOQzs9PTw4Ojs9OT1ANj0/QDw/PTw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bIqNknd2eop7foB+f3yEen2CkYmEhXqEh3t1fXRtfH2GfnR/kp6RnoORe4Z+eI9+eIqKboKagHSZhn6BiYR7fpB6j6mOj8OhvYucpJ19iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYiKkJOUjpyZkpSQlo2MlZ+clKCUkY2Nj4t+kI6OioSJkpaanp+JjJSSnZGCi4ClmYiEjYKFhIGlhoqMuJidkZWWoqihnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuXt7em5raFliXVRQT0lETEI8PD45OTo6OTk7PTY/Pj48PTk6OzszN0Q/NzM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PUNRU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97h3p8e4uGgn10g4V5c3pzbYB+hH53hZuim52Ukn+MiH+Yh4Cbkm6IqIV6oIt8kY2DiIScfZqQioyjoqCQpK+fi5CLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlYyHiIySkouUlJOOi4+Kh5aanI+UlpCKkZOGgIuIko2KipyWmKKihpOdlqCKiYiNm5CDiI6Ag4eGpIWMkbOYnZKUl6GhnpqSnJ6osritpr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aByf3dqaF9eWVVZWUNBSUM/Pj46NDk6Ozc6OzozOzs/PT43Ozk6MDpHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNiem1hfpKDb213i3h5f3qBfIV7e3aFhH9zcIWCenV3dnSEgoR+f5KmpJ+lopeKnZCUl4uKqJdzirGNhKeShJmThZmMopWfmJOImp6jkqmwn5CUkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNyJaPhoeIkJKNjZKTiYWKiYWWmZqPj5SThpSXg3+Pi5mIjZCqlpejo4iZnpaaiI6GlpeJhI6MgX+Hj6SIjpOompeTl5mhmZ+Zk52bo7O0pqO8wb7HxcXJyMnCy9PNzdSp0tHW1tbY2tTS2s6EdYJrZmBgX1BLVlxCQkdDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfHxtfoh4en56gYGCfnZ2gIJ7bG6Lfnl8d3h8hIaKfoujtKikqrOhlqegpaSWla+ig5C4lZKzmo2hoIykm6+ipJ2YkKeXqZmtsKSXlJWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKcmIWIiI6UjIqTj4eAhoeIk5iUjIqTk4aUmIaEkZCcdJCYspWWpKGInJmTj4qQipaaiYqWjYZ9jJifipCQnJqZk5mYoJShnZWfm6GxraOkt76zxcfEvcPDv8bOysnSp87M09HQ1tjSz9i8dXx4X2JXYlhSSUtPRUJDRDU+Ozc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj8/Nzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OklFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNXFxZSmhhO0iEi3p6bYWGeXyEeICFgX1weHx9fG9zjXp9gXt4houJhoSSqLytqbK9sKWus7Opo6KwrYqatZ2iuKWVraSXqa23pqSjn5mpmKqkr7GqmpmclJWRmKCXmru7rcqhaba3qrCVmJ6iq5KXvaReqrKCiYqMlIeQfI6OfYOGjpCUlIiHkpaLj5WNi4yXmZKcmbSWlauei5yUko2QkouYmoqSnY+LiZagoo2VjZeZnZOcmJ6UoaCUnJ2mrqiipLO4q8LIxLa6vbzFyMjC0KHGyc3NxNfW0MrTo3N9a19bVWFTUUdEPjxDQUI4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQUVANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGZIYWBicEpAi4l/gHKGh3yBiXWCioN+bX18fH5wd4d3jYGHe42QjIaMmqvCwLC9xryztMG8tKyrs7aMqLKtrb2rm7ujqK25uKumpqKipKOqr7Kxqp2cpJibmJieoqalk6O5r6i/vKytsrmlo6d9iIacrb2wgouLipCDj4ORjnqBh5CNjpyIiI+XjYqUl5SQmpacp5qwmpGrnY6aj5KOlpGPlZeOkaCQiJSbpKyUlo+UnJ6UoZ6bmKCglZqep6ekoqSws6bAxsOwsLu2xcXDv82nx8PHw7zV0MzEyop2dmRfXGJdT0xDTEBFRz5BP0I8OjQ+QT09NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQjVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFSkhOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxoRl9pZ1tdXJOMjIh7h4uGg4x1hpCKgW5+e4F+cX6BepR6kpSUmJGTlai0x8nAwszCw7nHvLqvq7m7l7K2urLAr6XAo6uwvLyqrqujop6nrK+1samboKqcopyWn7C0p4yjurq1wburqJyypKSolISOqcTEpIKLjoaIhIaVlIx6g4yRj5GhjIyUkY+Il6CYk5mUlqWgrpyMqpyOlo+SkZWVjZCUkY+hk4aXn6Cyn5SblKChmaSgmqCboJSYnqekpqekr62lv8PCrqi3tcnDvrbOssS+w7uz0cnHwbV3e29eW15sVE5JRE1LS0pAQT1CRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qajZaKi4iSj4aJeYaTkIFygHuMf3eHgoKPeY2hlqiampi7vsnIysLSycrCzb3Bs628v6e6v728xLitwamss7y9qrCqpKWjrK60rra1oJ+un6aimaO0vamcqLzBo7a2r6uTsKyqrJaGmqqnpZGCjJKklYmAdYmReYWNkZCen5KPlIuPjJSjmZeblJOinqmfkaWajI+PkJWWiHyOlZKSo5qVoKKctaaQoJelpKOln56mmJ6Vl5ylo6ioorKsqLvAxK+ls7fMwLquw7O7vcG5rcLCwr+ZcHtjW1leXU1NTktHRENIQkFBREs6NERIOjs0PDdGLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bElfWGFaZGVYno+djpeOnpKJin+In5KEeIV/lH5/kIiJkICWoZqup6OYw77JxMjG083Ozcu8wrewur20vcu7w8G2t7yttMC5vK6vqKGpqLaurqmyt5qerKKoop2rt7eqpa++xLG9ubOnqrSzra2WlaWtqKCRjpKxxaeVjX2RlX2HkZiPqpmXk5OOk5WTpZ2TnZmToKKhnJifmIuMj5CeiFqQlpeSlqSZZpmjnrOllqKWrK2sp5yfp5eYlpiWoaOopp+1q6m6u8O0prS1y8G4qrass7u4rqi4ury3hG9wXFpWV1BHTFROSz9BSERESEZGODVGTTs+Nz5BSy4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZmRNRqaUnJahl6iWjJCDh6WSiIGHgpuDg5WQkJSOmqKfr76uoce+xsXIx87Oz9LKvru2sbu7vL/PtcS9t7m3s7K2s7izrKecq6u5q6mor6+Xo66lqKSltcGwq620vsK5wLmzp7i0t7KvlaStsK+li5OUoI1zwZl9l5mEjpaZi7GVmpmVkpKZmaWjlZ+blpqonJuhoJmKjI+WnWBKlpyalZmll1SWsJ+vnJ+lla+vraaboaaUk5mZjp2fpqGZtKmqs7y8u6uwssfAuKasq62xsaOhsrK0pXNxZ15cUFNNRlFRUFE7SEtIRkdBQz05S1Q/QTo9RU0vNzUzNDpCMzROV048SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzVFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTdGJWRkirl5mfoaiumJCXh4qnlo2IkoWfh4Scl46eoJqjpLXJtKnHvMPEycvJyMzOxr66s6+6uMDBzbXIusG5tbqyr6+ztKeknKq0tauqp62smaSupqWprLrAqKu3t77BwL63srLDsLe9rKOuta26poibl6Wadb6fhJidjpKYmouulqGcm5eUmp+gqZ6noJmaqpmhp56XkI2RnYNtdZOimpWcop+QrbKiq5Wpqpiqr6aloaWqk5KZnImVnKKelrCnqaq6t76zsq6+ubago6eopaacnK2pqY1maGNgU01NR0lPSlVMPU1FTUlKQENEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQzo5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYU1WSH5lXkhGrJScoZ+7rpiUnouTqpuRkZOIqoyGoZ6Mo6yUo6S2x720wrvDwsjJxcLOyMK9ubKvubXAw8q2xrHBvLW7rKmtrLCjo5mqtLumqqesqp2or6ikq6u+vKitvLS3vsa8trW4wLC9v7Optbesv6WPopeQoZ+8nomaoJmXnZ2Pt5+pnKWjmpyhmqeks6GbnaWcp6mdmJSPlJuLlomMpKKUnKOfoLWwpaaTsauaq62fn6WkqpKWlaCEkJ6fnJappKGhtLW6tq2otbKynpyippqXlZmroZ54Y19hX0xJRkhOUUlORUZHQlFKSEBER0FWU0RIPEFHUTE7Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6fw6ybl6SXmaiblZqajqqWlaimla2smaKrt8XCvL+3wcLAyMS/zca7vrmysLm0vsPItb+wvLa6t6ekq6utoaGbq6rEoqWorKaeq6+soqqovrimrb6wt7fGt7S4uL6xvsC2tLK1r76jlqOVk5qTrZ+QoaGkoqOekL6kqZ2prJ2doZumn72imKOeoqmroJ2VjZWek56HjoSNk56koJ22rKaclrKmmbCooJyrn6GNmpWfhI6hmpySpaSamKuxtbGqpaqtrJuYoKGSjpCWqZ+UaWVcYl5QSkhLT0xIRURJQD1PSEA7RklIW1JPSz1ITlU0QkY4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLS0wTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE6jm6ObnsWroJ6rnZytn5Ginpakn6aqq5e2saOps7bFwr3AtsDCvMnCv8rItri1tLG0tLfCxre+sbi0uragp6yqq56en6WkwaWhqq2gpKmtsKKnqL21pbG7t7a1w7Kyt7q+ssPAuLittLS1o52klJGToKyfmKGdqKiqoprCrKidrK2bm56YpqC9oZ2kmKurrKahmY2an5KeiI5Yf5afpqGguaqnlJi2o56zoqGcsZigj5qVnoKPoJeWjqKjlZClrrOrqaKipaSVlZyZi4+Sk6SfiWNnXGVhTUpLS09GRUFHSz49SUE5OUpKTl1RUUk9TFZcOEZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExQn6CgmJ7Dp6Sis6CcsqeSqqOfo56tqaydu7GprLWxyMPBw7PCw77HxL3Eyr2wsbausbWwwMW1urGwuratmqmwqambnqahp8KtnK2xnKqirrGqpKi9t6a2u72vt8Ots7PCv7LGs7q3q7S2raqippWVlKKroZ+fmaerr6+vu7Kln6mpmZmXk6KkuKCho5Kur6ukpZ6RoZ6UnY6QjZSdmqOfqLWnp42YtJyjr5ugnLCRoZSYlZuAkqKWj46goJOLpqywpaeinaCekpKalIWLko2cn4BkaF1oZktKTEtTQUNASUc7O0Y+ODlOTVVfUlNKPk9eXT1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9nckA4PEiWd2VBNJ+kn5ugwqejqbGgo7SplbGrpqKksqytqbuyrbC1tMa/xMS2v8S+ysW2wMnCtay1qbC5rMDEtLevrba6pZmrsqyqmKGnmK27tJyosJutn661sqequ7OnubO4srjAqreyw720xae+rq23tamnrKGWlpGlpKGhl5ekrretsbS2n5+ppJmTlJOjoLejpKWVrrGxpamloZ6bmZqVl6ign5min6+zo6aMl6+apauXm5+nk52PlZmahpaglYyQnZ6Ui6mpqqKnoZqeloyPmZCBhpWIlZ96ZWpdbGtOUU5OVD1DQU5DOzpJPzc3UU5dX1JWUUFXYFxCSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWlWQ1dGjHlmQzukpJyhpb+mqK6uoKm1qp23r6ujqrS2sbC4t7C3uLfEvcPHvbzDwsfBusHGwbqqtqWtu63Bw7e3qq2yvKOVrbGtspemqJGquaqhp7Cdq6CvtLOqqre1rLuss7K5t6y4sMG6vb+mw6qwtq6pq6umnZiYqqGhoJGXoLCvs6uwuZmbqZ+ZlpKXpqC3qaWioq+xs6uxp6ugnKCfm56lnaGYnaS0sJyfkJOmmqGpm5ajoZiai5aZlJaXnZSJkpuZlI6pqaego5yZm5OHj5mLfoyXho+bbGltYm5uWFFRWlRBQ0RVQDs7SEA3OlhQZF5QV1dEWV5eTkxTTl9MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOGx9aFxWOol7Y0M9qJ+coam8oKqvqqOxt6mltLKroa21va+zuLy7vbe2wMK/ycS5xMPAwLnFvcG4r7aoq7eyvL+/tKqusrifl6ytqK6YqKmOp7ufpa2znquisbCzrKq2s7W8rbCxtaywtbLAusW2q7yvsbesraqjsaWepKieo5aPmJ+yqrOpqrOZnaebmpSNoKaktK6noaysrbGns6uxqaObnqiknpWhmZyotqmYmpKRnpmeoZ+SraCamoeXmYydmp2Ui4+Xl5qXp6ajoJ6XlpaUgZCVhXuPk4OMl2dtcmhxc2BHWWZWRENNWERaOUhCNT5dUWhcTlpdR1teXU9NU1hkSktDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FWMTUxPWBWXzgpQzNZVVxnSzWMemZMQKWZn6SrtqOrqKWurbWprrO4pqewt8a2sLe/wcK2tLrFvszFucPBusC6xLjBurO1rKq6uLu6vrWrr7G3mZioq6usnK6rj6u+nquvsaOqn7Gts66utrG4tqqtrrGntbCzurzJsqq1tbG0sK6moLOgmqisoKSVlZqZsaKtoKWvlqKkmpmSjKKlp7KpoaaxrKq1pK6wtK+jmZ2tp5uXnpqZrLiil5ORj5icoZmYla6hn5aClZmOnpyal5GLlJOemaWjo6GZl5OSlnuMkYV7jYuDjJNsbnlvdn1iRmBqWklIWls9e0pHRTZBYlVpW01cYUpcXFpSU1NiYUxLRWBhYFBNSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1lUTEWalp+wqLGprKSjrq21qLezt6OstLfJurS7u8C+tLO3w8DMx7vEvbe/wMC4wL2yva6ourm4t8K3rK6yupaXp6+sqKSzqZSvu6SssrKmp6OytLGysbWwt7KprquyprivtbPExbaptbWrsK6pp6K2np+msKCjlJuZlLCep5ufqY2pop2blZelpaS3p6Kws6unsaetr7WspJmgrKicnJ2clKq5nJWPj4yYnaOYkZiopKCYhZOXkZ2cmJeWiJePl5uonaWhkpaSkJZ3hJGGfIaChI2NbnF4dnyAXExlbFxKT2RdP2J7R0k4R2dXZltMXmJMWVlXVVhVaV1PUEhhXl9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGcyNydGYUxWJS1CLj1FTFE8M3JrTEVEkZmkraSsraqmo7Cysqq3sLWfq7W5ybiuwbzDt7OxtcLDz8TAwr61vsHAu7+8tMSoqrmxtrfAvK+stLSeoaexrqWmsaWesrWsqrKxq6iotbqstbK1q7OsqquorKm5rbKwx7+4pbmwqa2tpqetsKWko66jqJudm5qvmaKioqOQrJ+joJ+hqaaluKSrtLSkqquorK62rqKdo6irnKCZm5KktZqPiY6IkaOhlo+Wn6KWlYaQlZSem5mWlYeYkpWZp5ygoI2Tko6ReH6OhH19fYeKinJ0c39+flxTY25eTlpnXUZElltHOk5tWGJaTWFiTlZWVldVWWheUVNNY1pbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RkOzYqSGRISis6ST8zQ0lTLD6PbEBISZCaqKmhqa+kp6OztLC0tLCwoKutvcy6rsG8x7G0rbPBw9HExr/Bsr7Dwry/uL3FqK23rLS4vMCxrLKuoaOnrqqopbGjqrCqrquxrq6sq7O7p7ewsqmyqaqmpaOtuq2rsMK5tKy5qamoramnsaWppKKuqqihnpujrJWlnZiemaudoaeooaymo62strCxoKmin6qtsKudnqenqZqjmJmQoKiYhoOPi4ufoJCMjpeekpGIiJKWoZ2WmZaGl5OUl6Wcnp2MkpCOin9/iIR9d4CHhYd1dHKJd2xfWWBuY1FzcVxLO4R8Rj9XdVhgWU9jXE1VVlVXUVxiX1NPT2hZV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTM5NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLkpnREY4PEIwNUVLWDFAlF1ATkaVlqynoKmxm6iosLWsuLWtqaSrqr3JvLG+uMOvsKyzw8TOzsO/wLTAxMS6wbXJxKyvt66zusC+tK6urKaoqrGppqmyprStqq+trbGusq20u6W4s6ysraeroKOesLesqq25tqS1taSqp6ysqq2gqKansbGkpqWhoauWqqGTm6ClnqOjqqOsop6msbasrKKlo5qpq62pnaGlpKSZoJmWj5idk4GCkImFnaCNi5CNm5CSjYWOmaWbk5GbjJOSkpSjmpyai4+LjHyHgYKCe3WBhIF+dXeLo4d4al5gbmZXZodkTkBnkkxFYnpXYlhSZVVNVlZVVE9cXWFWTE9qV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOzo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIdCSUlElpCupKGpr5ipqK21qrWwqqSrqqm8wMC5ubS8taayr8PJy9G/wbu5wMDCusG6wsSusbWytLzBvrOxr62srKe3qqWtsKu4rqiwr66xq7WqtrWntbesrKSpqpyknrOzqaiks7Sfta2hqqirqKunn6urqLm2qaqqqaGpn62bkaqhnaCjo6aiqp6cprSup6WpoqSXpKanqpyipKOgmZifkY6PmY1+h4yHhZ6eiYWMi5CPko6FiJejmo6Nm5GSkI+Sn5iZl42LhIB0h4F/fnh1g4B6eH5/iJ2PcHFmZ3F4XGF0iGpPXZhWSG15VWRWUmJPTFVVVVFPWFtiVklRalRWVEdQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UyMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyQGY9Tlg/Qyw/TFRfL0lrN1JGO5WNr6ClqayZqqOtrrK0r6qkr6mou7+8wbKwua2itq/Ix8jRwL+9urzDvrvEwcC/r7Kzs7a9vMGysrSrtKmltqmlrbOyuK+irbWxr7G5q7muqq63q6qeqqugo6G1ramhn66yobSqnqinq6OqoaGsrai9rquuraGnqJ+smY+woZiioKinnqebmKmwqaKfrKKhkqGio6eYmqmmmJiZnY+Lh5WIfI2GhIWkloaDg4yHkJCShYeVoJaJkZ2Rk5CNkZyVmI+LhoZ4dIF/fXR4eoB7dHR7aoKIpHZpXmVsgXVniIt8UlZwXkt4c1RkU1FfTU1TWmZOTVdZZVlHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzOPjrCgpKWqoqWjrKa0s7GopLCnqri/wb2xqbqqp62wycbI0MO+wL25v8C9ybzCuLGwtbK6vLnAs7W8rbmso7Wmp6yxtriypqe5ta20vK+8pa2ttautnKmvpJ+krKqonJ2qsqSzqJqqp6qkqZ2iqaepvauzsK6dqaSgr5yas6KWpZulpJ+lmpmoqqWemqmhm5GboKSdmZepqpGZmpKQi4KPhX2Pg4CIno+HgH6MiJKQkYWClJqThpOijZSRi5Gbk5aHin+Acnp5fnxodnx7dXFxfmqGeoWIZF9oY3KFe21neV1eVkJXe21UYVBSWUtMTnB0XUlaW2hZRlZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpKwmZ+fqaSioauktrKxpKmwpq25wr23sKS5rKmosMLIyczCt72/tbjBusi2w7W0s7Wyvbm6vbauuba/raKzpqqrrrS3tKmcubuosb6yuqCutLapq56tsaOcpaipo52bpLCmr6Gfqqmnoqqco6igrbynrrGuoaqipK6enqymmJ+aoaKbn5uZo6qimpmjo5WWlJ+hlpyWpqyMn5KPkYyCioCAj4F7mpSMiX1/jIeRkI2KhpKXkYeUo4qSkYeQmZCUgYh9emx9dnl4Ynp6cnBxc3hqgnVrgmdjZ2Fuc45tYmpvX3BBXXlrVl5OUVFLSU1TWVZNXF5sV0VYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl0+I5GWq5ifl6eioZ+opLevraKvr6isuMO6tK6gua+rp7O6x8rHv7jCva+0v7fEtsOysLqxssC2u723qrq4vqqktaeoqq+tuLComLi8o62+tLShrbe1pqaosLOgnqWlp6GkmZ6sp6ieoKqvp6Cml6Kon7C4n6Oxr6GroayknKemqJqbm5+ilZybmp2pppabnqiRmJKZnZOZlqGqkZuKjpCHfYd/go58fKGMjIl6hI2Fi46NhYmTmo6JlZ+JkJWCjJeNkXyFfHRwfHFzdGB4eGpvcXFwa39zZHpsaGVkYWaHgGBbcmpyTU6AaVhaTVFMS0hQUlBHTVtfb1RFWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsn56hpKG3q7CjtLOpqbrFt7OuobitrauvtcXHwLe/wrmwtb23v7u+sKy+sLO/srzCuKq7urinqLWop6uvq7KvpJi7tqSrurWvnrG4r6mlp6+ynKGkoKSjoJabr6ahn6Kor6GgopOjpKK2sKGmsaufrKOumJ2qpaifmJqdo5Oam5qdpaqam5ullZSXlZyOk5eiqaKRiouQhnqDfoSLeY+Xio2HeoKIhImNj4WPk5iMjpaZi4+WfoaXjI96gXtwcnZub3NfeHdlbGxsamqFb2ZyaWtmaF5kc4FgW2t2aVpKf15cWE9PS0hIUlVHMzldXmxQRVlVWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJkVywylKGhl5SbqpyjoaKht6qtoLu3pay9xbSxr6O1r6ysrrTDw7yzv7q3sbO5uLq4uq+uwLOzuK+/wLetvbq1pqKyqaepsaqtsaCZv7Wkp7S1qJ6yvKmopamwrJmip5ykpZSXoLKkmZ6jqKmcop+SpKCkuKmkp66mnqWhqJOgqaKhoZmbnZ+RmZuWn6Gqm5qYoJSRlJaZjZSTpKikkImKj4Z5hHuEhn2djYmKh3qBhIeIipKFlpOTi5CWlI6NlHuDmI+Ld358bHRybGxzYXd1aGhqZ2dwh2hoaWNmampga2NqaFtme2NgU3RUXFtSTEpGSU9TQCEqaF5pTERXVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp6ipJGOpKaanZ6do7Stp6q6tqesxMG4sKyjtq6nra62wL+8ssK2sK6ytrW4tratqr2zrrKxvL+3r7y7saWftqqlpbOnqa2dnMCrp6Wvs6qstbueqKqrsaWYnqqdpqSRmKWsopiepKmhnKKclp+dp7WmsKquoaGdnqGVoKafoaCam5mbkpidk6WdrKGXlp2Uk42Vl4uPmJupn5KIiouIeIV2gYKBnYeKgop9f4WIh4aRhJaUkI6PkZGRjJN7g5WPhnN+fmZ5b2tqa2Z1c2tjZ2RkdoFiZWZmZmpqY2tyW19ZXm1kYU5pWFpgVkpHSEtNUlg+OV9saEhDVVRdW0lJR0VBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyssMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFlKVmJmQDozQmhIJTWao6CPjK2hl5eglqSzsaKyvbahsca8urGxo7esqq2puLy7uq3Asq6urrausrizqau5sa+us7a6tq+4vaymnrWpn5+vo6munKG/oLCjrrGvt661nq2vra6imZ2nqaWflZqnpZ+ZpKKonZqfmpScnqyvprqorqKhmpuemZ6kmqSdl56Xm5OYn5KolaqnmpOampKMlZmOlJSaqaaOjYqJjnuBc4GBipiFh3yJiYWFioyJkoSUm5OSj5CRl46Qf4CNjoNvgX9meW1oa2lmcXJrXGhjY3SBYmZnam5sZ2tqaG5dbGxzcGBUY2ljZllJRkxNT1hRUVVhZYBVQVdTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyY0kaGbjY+wnZmToZqpsa+fub+1oLTCu726saa3r6etpLe3tretu66sqqu2qbO3rqaytbKuqbC2trCztrqmqZ+1qJydqKCorJqnvZispK6vtrWsrZ+xrbCpopuco6uonJScp6SdmqmipJaan5uQm6Sqq6q8n6ekoJiamZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJiagJaKoZB5h5SMg21pfnaDcWyGi4Z9hYyHcF5jYWeEmIVri46UknR3i4R+g5CAZ4eAZ3VoZVdcaHNtTlBqY2dzhWhfZWZubWpeX2GKj4OEZU5LRDlHVGheSkdRUFRVTEhSYG90ZUZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsKzA4PUc3MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoukmYaVsJubk6Cbqq2qo73Fr6m3wre9va2mt7ClqqK2s7GysbmsqaastKWvtKKpt7a2qKestrKutK2zoamfs6qeoKObpaaXq7mUpaWvs7etrqWprquspaGenKGnppuXoKWlm5unpp2Tnp+YkJ6oqaS2sKSjop2WmJeXo4ihjpKahqCHk5ygf6V/paqekpKakYiEc3iNjoWIoXaIjGmXiGZ9c3igb4iHg36OfH+hoKCZgHyHnnSHjnWbimyHgYNtaWVjemxyYVOFbWJsaZhxWGlxcIhYXmlbbGxbiHJuenKFZ4aEWl9HTj9HX01FUlZWUVFTV1RnXU1WSFJST0ZHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiKp5eDnKucmJidn6mpp6q/w6+xury2wL+qpbevqayksrSurrO2qqilsK2ltLKbrbW2taanqLKwrLKnrZ2qoLGnn6KimaChmqyzlKOlpba9pq2nq6qsqKahoJigpqOZmaWjpJicpKmWlKKck5Ojpaaht6SkoKOYlZOXkpyIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kYR8kJCRynKXvJzFenK1pruQe4BtlrGrsHlobFixrm5lab2SvG5nem9yj9h+U2tjtrJ/gXKUc5qhqpBXT1diT1ZORlVbWFFQUoxcV1tQQVxEUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT46Qjw/QTg6Sj41MioyMkJFLy4zMi4rLygtLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKeTgaeqn5ecnqWssqiwwr6ytb+1tr7Bq6ezrKyppq6zqa62s6enprSlp7etnLOytqulpKexraywpqqdpqOwoqGfnZaanpytq5Odop+0uqOqqaKtrqWhnZqaoqefl5unoJ+YnqenkZymmpOdoaaiobGjn5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUca6hpH54u31roY92sV9qtFulgGWckWBmgntmf2p4a6llvnJnpox1sWp8sXh0kpRjbm2nbluEoUVoZoeWRXWcYH5nfKSnglpfjKtogJV4eWqnN0qvXFhTbGRbS05YX1xXVjtOiU9XVy9JVFNKQ0ZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYOtp6Weo6Sqsbestb2/sLbEsre6waapsKquqKivrqKwuq+jpK2yo6i4p56zs7CjpaCprK+rr6annqOhr5uimpaVlpmaq6WVmqGftLOiq5yjra2gnpqWoKKonJido5+bmaGmpI+copmXoJ+qnqamoJqfoZaVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH5rgqZ7goaIkpSSd6tna7Fcq3qNhpR0iXKPhoB/iJCXeIKCi5iLg6CPhLB2d59xbGxsfItOpFhIYmKZfmNopmB5cnVTk4deUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5V1hBI01oRkNFQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o5YVU1MBuVoJWIs6amoa+pp7Osqbu2wrC7wa24t7+prK2traatsamgrruqoKe0rKOrtKSmsrOno6Kep6qxp7CnpZ6fn66VnpmUlZWXnaugmZmkqLWvoqmPqaiqm52Vl6ClqJqenKKem5+jpaOVm56XmZyiqZummZyboqCXk5GTk5yD1ZOZuXCwwX7FhnzWlJu7fJqVpY+NnY2ke46HpIKlgnqseY+dVq96iH6farlauXaGg32mgpN8mHqqeI2dj3qxbo6EdJG8hW+UUK+nxYpRoHpjYKlic3KIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWNQQFhnWmRhSkhNbk5cUU9ZZllDRD9FPzA9PDU5Ozc0PDw4PTo8QzpGOjo/NjpAQzs2QE9MSDw6O0RIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFQNzElm6KUmbKoqKa0qqW0qaS8t8Gwub+xtbS6srSnsa+isLKmn621p5qnua2ir7Cfs7SwoaSen6apsKi0qKObnZ2qlZiWlZaUlqConJmWqK2wqaOej62iqJadl5ugpaGYoaGhoZqhoqebnqCelJiapqCbp5Wbm5+hmJCSlJCdiLJuaLVxq4dujqZytHNytnual6SLj52Non+RoaV+sHaDkdLSdlyue4V/pG+bqqZrhoR8rX2XmY57sHKSnY54s2WXdISeb55mlFHIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFPa2BsaFBWR0k5PVVSWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTDYyMKKdk6WwrKOrvK2mtKantru8srq+tra0ubiypbSzoLGxop6rr6SXprmtpLGwm7S4qqClnaGppLGnrKmjmZyZp52Vk5eXkZGhpp+VkqWrsKailpOtoKWSlKCbpKaflZqlpqGao5+tmaCenpCVm6GdnKWVnZWaop+VmJWRm4Wse3eodqONiIapb62KgqeDmJihiZKai6J/k5qJroV/grNccrNSrn2CgqR/cdd9eIV+jp2Fmpp2r4aJkZyHd7RhmmWagoKVbZJasFhLmnWYeWZgrV52d4homIhsXa93lZ6PeGw1eciusl9CVG9eZ2BFUGxgcG1WVk0uZmRpU1lQO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEg6OTmgnpWgubCXtMKtqLOoqbK6t7O3vrm3sbS6tKS3sp+zrJ+eqKuflKe1q6ivsaqttKSbqaCfp6G1pqapopidlKSgk5KbmJGUoaSakpCmra+moJWZqaCij5GhmaikoJWZpaidnKSerZ2hnaCNk56anaGYmZuWl6KglJeQpp2GqX19pXihjo2CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTYf3aHc6iBjpuNkqR8lpCfhHuyXp1koH6DlW2SXKtbWpOAkX9oZ6pkcnuBa5iHc16rWomgjmtvZU9KQ6FcW0x0XWJnTlthX3JzX0tWN0qblFhHRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDUuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84op6amsCrmLTCrqutqaW0sLewtb65ubGwtbqourSfr6SdpKennpOpsKmvqbWrqq6hmKCfpqSjuaKjq6CWm5Chn5STnpmTl56fj4yLqLCwp52Xm6imn4ySpJeoqqeUl6mnnp6goq2koZ6ijJShmJ+gkp6XnJWeoZWWjqucj65tcrRzqYt1iqdztHhzs4CRpKOSnI6JpIeQd7hvjHuLomprtlqhhWWXl2mhoqdtk3K0dJOYf7JqhZKIrWp1s2GdZqJvh5Nrl1ytX02hfIeRUnOjbHl/fm+Yh3Jdr1Y8nHdmVG9uLlynT2NTa2VibVpjXWFwe2NUWlI+Pm1vM0NCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKacm5+8oZuywK6tq6ynt6m3r7W/tLuvrre2qsC1qKmgmqWjoZyRqqmntaKyp66poJebp5+kq7idoqyalZmOo6KVjJygm5icn5GTlKq2sKiZlJusqpeMlKWYpayikZaqsqOfnqarsZmho4+Yopafm5aclqGTnamclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJeLjKeIeqS2dX13dsKCmrJgg7p5wHx1uGO1goyHqXyVgaypcXt/dLyIp6BpnWGmjq+hfox0h6p9vm9zvHSyg3V4gYpumohybo2kdL1ed31aYXm8a1pWXGp5XmphZWdjbXhvWlxZQ0FAc0BDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56ivaGXssOwraqrrLGnt6+2xLC4sK25rq3AsKujoZ6joZybkKmjqrKktKWspZ6VmaqYpqy4nKKtl5Sfj6Sfkoycop2XnZqRlZKvubKslpikqKeUkJaknKStnpGgqKufm5+oo7Ofo6WOp6KUopqcmJWjmJCvoJKUqZ6EkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSfwbu9mnuBsahxgHORuYN8hoaMh418ioeMl3yku7m9nHV6tKN0d5d2dLB1mZ5mhmqNtXRycXe2jF5/en2JaIN5bnpji6xwdYV/WFunakVlWlRmYGNeY1FnZ3BsdUNOUE1EOlpNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlNZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlUnPjs8p56gor+llrTDtKyrqKyrqbqusMWts7KttaazuKupoaGlnqCdmZOrpKyppbWnp5+blaCjnaukvaahqZaTm5ChmpGPoaehk5yXk5eUsbW3rZmepKSii5KSppulqpuVqaSlnJqhqKWnpKmhka2flqSel5eXnZ6Pr6iUm6ahjWp9aZumeIdyfZmOdHlkh3u9vsC6b5ODcpaIYHJqWl6biWBjiI+Va2CAlWNtnXdilWyAmpWUZV5gY3Gaimlyi32GlWdrf3J1eH1+Ylt3dIFoUFxug317i2tYa3qCc0pKb4ZwTnRNRVhdZ2FMW1hnY19PW211aXFSUURFTTtHST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPltPJz8yPqmgqKLCo5u1urajrKWup6e1sazIq6+yqrOivbCxpp+ip52jm5mZq6auo6S0qKSbl5Sgm6atqL2nqKSUk5qVn5mSl6SoqJCdkZCYnLCyv6ycp56noomTkamaqKObmqugo5mbo6eso6Cro5qwm5WnoJaUnZ+dl7ClmKGnmZuQnJyio5iloZmbmZmZj5WBZ219cXeSmJSShYu1qo2GmJWOioyYloeUlYqEk5SRiY6TlJiUmJaaoKGanJShnY6CeqWFbWt9kXyAdYqKgXGCeHl2doqAfIprc4F0g3Vld313a296bWBjXXBoTVlaZmpgV1pveW1tZlRQRlM5T1pNUU8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSiw8LUCzoLOiwKGksrK2oKmlsqelsLSqyKqsr6S0pcCms6CdpKSco5WVn6qmrKKjtqufmJaVn5atqaXAnqujlJGbl52XkpOhnp6ip5KSmainssSwm6udq5+QlpannaqbnJ+smKGbnKKkr6eipaifrpiXp52ZmaCenZyvoJyhppWXkpeTn6CVop2XoI6Wk4qKjY6XrpB8lpyDkoKLqqmFgJmXiYSQnoh6hJCHhpqSiIaKlo+bl42RmJ2klpqTkZ2Nf45nobOvhYqEdnuSin13eXpvZnmQgYCJa3WBeohzaXN/e3aDh4JrdWR5ZmBqZmNkZmtZbHtvaWtdU0xQRF5URUA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9iY2FfXV5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0W0c1PCxAtKC5r7+sq66ysaCqprKtoqyzr8Svqaqisa28orObn6aioZyYl6elqaWkpbK1nZSTnZmZr6WtvqCropCRnZmYlJCUoZyXqJyEnqqro7TItKCqpKuXlpeZpZ2pmp6jq5Sen56gqa+qpqSroq6bn6CgmKSenJ+cr6OYnqeSl5ackaOYl6ecmpdlgpJ8ZX6NmpBjeY5taGt7kqSqamWbmH1nhoplZWloe46hj2tnjZiRo3draouZo5+Yc2xueoSOiHpYZl6Gg15ti4mBdlxoc3d2koCIgm54gniAc215hHR2iYiPg3xrh1lebHRkXnOJaWt8cWtkX1JOWElkWEFKND5HNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaWfury6r6y0saqlqK2usKatrbC8sKimo62usJ6slp+jnaGZmaaqnKyjpaeosq2elKOPoq+ltrmlrqKOjpqhmZOSmqCZmaSVe6Wtoqi0xLiloqevn52UnaGeo5uiqaiSn6GeoKmwq6ukq6CqnKefp6CslqGbpbCkl5uplaCdmpGjlp2pl519vYOIcrRyhJ2GrWh4ucS4cZOio3qmmZlyq4J8y8DAu3GMo4iCn32XmYmdwL2Cl52ejZ3CwXyCfJONmsPAfWylsm+MgW/Ken+bd5GDjoF2eYGAeXF6f4dwd4WMk3lueJRjZ2B4ZGBlgmNedGdsZGRZTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2FfXl5eXl9fX15cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9WQUI7LziWo7nDtbCwwKmolKOvqLCuraays66ppKWmr6ufqpiaop+cmqqnop2roqSopKS0o5yikqatq7ezp66ikZGZnKWSkZ+hl5ufnYimrKSsrcDAsaGpr6mXkZ6copmho6qjk6GinZ2srqqtp6Skp6GmpZ2sqJGjmqitqZqcqJuroJWVpJWgopacfs6UeHqkgXmVlptfro9ejqeBoqB8p5abc6uDgK9eY4yqe6iHhaB1mJOIs2OCq4ahjo2zaoSvdX2XiLdhg61ao81ukHZ72nt/mXB+h5J2fmV7iHZ2a3yHbn2GkZF+bYOQYXJtcGhgYHlkXHFoamRnYFJUU1ddS09DNUFIREQ4PjY7QD9BOz04QD4+P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqets6umsqurqqOqpq+pn6abmaSXnKKvn6CfqKeipaCfsKyanZWnrqywqqirn5SRmp+kko+epJedp6OfraWrsKjAx7OoqbGulpKcmqGXn6mpn5Whn52crK6orKqcqKikoquSrLKWpaKqqp2ipaSgrp+RmKaZn5mTk5CXoHGFjJd1haiGcbF9nnKsfqKfgaWPnnargn2tf5xyrX6rh4afdpmSe3yXfqqIooySjJ1+q3uJlJCfgHutV53Fe49wk8F9gZVtdW+MbWV2ZYZvYXducm+JipKPg26TkWZwdXVxYWdtZV9vaWluZ2RYU11hWVJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNXQEYhHEc6QzEuK7DTxsaytKCdo46joqKsr7auqLGmqKqmraurpqGjnZmhlZ+lq5+hpZ+oqKKenbCsl5qWqKeuq6emp56XlJmjoZGUoKyanaajr6ykrLWqus6yraaurJeUm5yimZ6urJyXoJqen6ixqqurm62rpaOrmq6xoairrqWYpKmoqK+hkZWio5mTkYSkaqR1iXqpdHqycIKmipmMcYmgm4ekYGBSq4V/roObdq2Bp4aFn3qZl4Z7ZoCjiaSZhoKjfal+gpaHrl98qVaeo5KBeqOfgHvDr8WLcq+zs7lyYqmvwnRojIyYjoJunJVxb3p4eXBtZ2VlcnBmfGljXVdgalhZVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmFhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXUv6GZq6egr6KesLSwrqmsoqemqKqrqaSln5uknp2lp6ejnKuaoqyho5+voZyakqujta+uoKeanZWTpqKQmqKnn5+lnLGlpKixrbfIsrWqrKmWkpybopmfpbOdmqGUnZ+mrK2ksJutqqOjqqGzraGqs7Ghmqinra60oZGUoqaXmpF8qWyehId1q3l8sG+CpYyJn5aWoJWB0ri0uMmBgbJfYJSpg6SJh6B6mJaaeKrJdJqklaipkZOajYGciprGxnlnoYKldIGfjoJ9r11wtGKwdUujh22nR4KTZI+QnpF8cZmVgXF8dX58blxmanNxZoFrXmFZZG1cX1lJTUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKWinLK4rKqhpZqopKqrqqafpqWYqqOfrqudpaCsmp6ppZyntp6il5OoqrWyrJulnKCUj6WskZmcp6OfqaeuoaWnqbC1w7Kzqq2ok4qXnKWboaOvpZehlZmcpaatnLGerqimn6yjt6yhsrivnZquprGysaOTlqaimZ6Ogp1OeJqBf596hKN9g6SFh6afnZ+UhLh7e3m5gn/MxsK2eJuhkIuffpqWl4p2npiKpZikqX+whZ2GoISsfZqVY6ZtpHCPhZCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Uk4x2e3OGgHFcbm54cmqBb1tkX2luYmReTExRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX11aWlpYVVNPSEA4ODIuLCouKyonJz9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq6fm6GssrOlnqCVpa2trqqnnKammqOnobOuoqmmsqCYqaSUo7aiopWXoam0uKOboZyiko+hsZmem6aloKGvrpylqKK2ssWxramtqZGHkJyonKKknKWXnpiamqakq5uwoq6kppivpLusoba2rZ2ctLG3r7Gll5yuoKOchY/RtcO3eYeOhZGTkICmeZShd4ygkoSlgYpxqoaFtG5yapmjnJWKnnyYmYaHj3Ovgqaco46mi5Odi5aQm25xsl2ldJN6nGyZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2NjpWOeX55kINuanlpenNvgHVeZWVvbWZnYEpbWFg8SEhAVTRARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtbWlhVUlJRRjoyMjMvLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWSc4yKrb6/vLq0npanpK21oaKZlKKopq6rq5imop+moKC2p6Oop7CjlKyjjqStop2Qmpqqs7OknKScqJGUl66fn56mopynnbWaoqqktqzEsKmrqaGMhI6coqCmopWZmp2Zm5mmpaiZraiuo6Wbraa9rJS9r6yfoa+yuKmypZqosKKnl3mokX18sHeKgKSliJxtsnChh618oY+Dp5WYgKyJha6Fn5SqoKGXhp+AmZWAe5J+q4Cdm5aLq3idoZKKlJKBeq9epIF9pqdknYB9l3Nqr12la3CFmV1gW4ygbZWRppmDlo6Zjnx8hJmAa25/Y390boB6YGdmcW5oZ2hDWWFbPktVM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFSU1NWWl1fYWBhYWFeXVtaWFNQT05JNzA0Mi4qLEFUVlZWVFRVVFVVVFRVVFNUVldXWFZVVVFIRklKIygovZOag6jFwrbAs56arKCtuKWjjpukop+wsKqfpJ+drZmeuaCjq6CvqZmuoZCrqKOWiZqQrrCspp6lm6yXl4+soaCdpqGapJ2umKGop7epwa+lqaSei4COm5qfpp6SlJmblJuapqWmm6qsrKSln6movqSWwqyqoqCrsriprKWesq2nqJd1r36Qi5yFh366rYqZZbCNZZWtfaCPg6aVmoGsioSwhaaapKGhkISgXGxqgbNgf617e4OBsW1nb5mZjIixW361XKSEa8iiZJ+Ae7xYdrVZsn1SroB6rFiAoW2YkKibjJiSmpp8epGff2V1fmOGeHSBfGFqZ3BtZ2VmT1VkXEFVXz5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFFSVFdaXmBfYGFhXl9cW1hVUE5KRkM1NTMuL0BVWVhXWFdXWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9KfsrG3vbqzwbKinKympLWooIqaoJ6cs7Opn6OgnrWZoLSoqqyer62drJuVr6ehjoibjq+rqKahpZmukpiPqJmhnaWfmqOjpZmgoqqzqb2wpaienI59i5uWoaCYj5GanJKamKmgopqprqimpqKlqbueoMampKigqrS0q62lnrqsq6uUgKmSo6+Om4CHpJeZkIKAuMO6g46ckoSnl5yCrIqCr4innJumqpB+1b3CqmKjv719fqOCg9e6uLWFlZODnr2+hG2jgm+rhGycf3qysMeDaauwvax4d6K+vHOAlo6mnZGbkpqge4OTnHtkfntlj2d5gnthbGVramNQYltTalw/VGFDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzc7PkFDRkdJS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbOzsL+4sbyyopyupqSypp2LmKXAqriyqKG/pqeynJ6xnLqon62vpaeUlLCrl4yDm5GupaKsoKOcqqCXi6OSpp2nnJqhqaOZn6Gsraq6rqijmpaSfIiZkaabko+RmJmPmJSpm6GZqqmhq6ego6q7nqjEop+toqmzs6muqJ+5pq2tmXN2qqW4hmSJoHBorpGKkG5ud6SQmZ+Bda6YlHCPi3GVqKObl66kcmxsbGaLeG9ugplxgXpqcWlnipeWmHFpaYWIZ3GGZF2IYmpvWVxmfXamX2FxjpFuZWR/jZOPoZiZmZOaon6JkZZ2Z4h4aY9reYB5ZW1jZmxiS2VYSmxaOlBlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWVxeXl1cXFxdXl1eXVtbVVdeqZSss6m5uLKzqqmhrp2jsqmXkr+zxcq/t6uewKytpKKnrJ+6o6Suq62mjpeuqY+LhZWWrZ6mqqCdpKOgkYukkqaYqZqXo6qhlp2mpqevuqysmpuSkXuElo2lmI2RkZmVjpiWqZagmKmjm7GmnaKruZ+vwaejsqWrr7CprKqmtaKstpWKoaimt52JlqOZh6qbkZWdkqmymZqjqqCylqKhnZ+inKGloZWrp42SkoyHk5ydlZGZk5mRj5aGgaWbmJaOi5SUjJCGhH1niX50gnVzh4pwp2x6lJGTkoGBjY+Qj52VopeamqWEiZePc2qRd3GMeHd9emptZGNvZFVhWUBqXEhjYU9ZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVVlleYGFjXV5UUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaWlxcXl9fYF5eXl9fYGBgX1lZYKaWqKqktLaurqGwo62foLWxkI6syL7GvLqro6WenKefsamjtqedqbSmqJGYrKKLh4mPnKeVrKSfmKeenpKUo5anmaialKahpJCbqJmhtbqoq5maj4x8gZSLoZSKlZGWkZCUmKaQoJuqn5y2o52mq7enrsCtoralrq+vq6iosbegrbuYkaWkpraikp6noI6qoI6Sn6Orr5qgo6+or5ijoJyjqp6enpyWq52TmaGblJCWq5qOmZmXkZafkomhnpaVhZKNkY6Vi4B9ZouFdYZ1eIeCc5xqhY+Uk5CJfYuVkpKYlKOTn5mkhYqaiXxzl3N7jIBzfH9qb2RecGpgW2BabmRQYGVQWjpHR0U+Mj0+OS8qJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWFlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1eX11eX19hYWJhYWFgYmJiZGJcW2OXlaOnoq+xq66jqaasn6e1qpCPnaW1vbCuraKjmnqeo7KkpbGpl5u5pqOTmaqcjoaKiZyij66eopWon6CSlpmbrYqplo+omamNmamPnrm2pKWZnIyIeYKUjJuTipWSlJGNkpejjZ+fqZ6fuKN/g6+1oq+udKO8orGfd3ifqLC5lHWso56JgKt/ZFxidqCPpZ+El31tkrOco6etqqJlnp+Sc3mal3CAmKiYbX+iqIplnKadkpiYlo2SnJKGnpuQloSSh4+PkomFd2qOhnaGcHuFf39gaIeKlJKLWnWUkGdokI9ze6icnGZ7m4mEeZlqhYyEb3qAa3JlX3ZxbGtoXGZmYmJwU1s+Tk5OU0c+QFVEOjEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVldYGhmaFhQSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6CusKyrqaWoraKnraSSlqu2sbOnm6unrJdzjJ2woKirp5SXuaCgj5yknZF/iYibnoysmqKVp6GdjpaSnoR1rY+Ip5upkZekiZy6s6igmZiLiXV3k42Wk4qUkZGUjZCUoY+coaeZnLKVgIybtZ2zjJKOuqagfqeieqGttYCOjaWeg4uGkLGqr4yKl6SbeoCLrIabnaGnqKeHlYWYd6WbeoecgZengoJ7nLJ6ioahmJqVmJaDkZeXhZuZYnqHkIWPkJKLg21wjod5gHB/gIR+hXOFhJWReJZoknSgmnV9mYWjoImYf5SMhYWaa4+Ohmx4e3FxZ2R3b2psa1xla2pmdFxeSVRMUkBFNi5aVVU3KSEwOT4+NzQzNTY4Ozo9Pj5AREk/SUVKTEdTWFtZXGJhaGZaUUg5REw7PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop+mrK2rqKygp6+mpqmlmZSvyL+xopeoqbaekISdrJynoqCOkL6emoyfmqCQfIaPmZeHrJyhlp+gkYyTiYaAkaeNh6OdpJSYnoaeurKonpqSjoVxdpCJlZCKlJCPm4yQkp+Sl6Gllp6rh5+0ibSarYrKh6msiLaFjbCBr6yCqIymmI2dfaiPcnt3nI+nl2iVpHm0jJ+epqeSmMKBf6uImKFynoCapX2XhZWygaF9oZShkJmXgY+UnIuZkot9hZOHjpaSiYNtco+FfnlxhoCDe4N0hICWgI/FZn+ph4+ja56FpJ2FmoGOj4eLmnGPlIVoeHV8eGhodnBoaGxeZHBsZ25ZZ0ddUk0zRTQ3TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmlsXFFFPUtNQEpjWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqKfr6eoqKWrn6O3sKmrppqUoKOkq6SXpqu4o6+Aoaidpp6diZS9mZONoZKej3mElpaRh6uZm5yZoYSOi3ebnI+fkIiepJyWmpiHo7mupZqcjIx+Ym2Pi5OQjZCNjZiMkZKgj5ShoZmhp36hp4etnaCWrY+dnJyQhYCgjKmthaONqZmMmn+idYCZlGuCrXZNq3iHjZyRmqimgKmrfYOhe3qnap5/kmtnl4aXt4mefm5gZFmDl4CNe2Roi3KZfXmWbF19l21fUnCDXF9reIJfWGSBfIN/lnCnqmuDo25ypXCfhaBqZ6BtW2+MfWdaYISAYlhQb3dmbXRya2pvXWpwbGxqWWlPXVlGOUE1SERfbDUsSURSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXV5idWBNRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5WdoLigqaOmrJGgtruqrqKZmKGipa2uoZ6vtaOokqGgoKecmo6ZtJmQi5+MlYt1gZSSjIqmlZWZnp5+koWFrKSHm5CKmamZmpuSiKaxp6KWmoiJgGluiIeLjo6Ki42SjJGTo42Un6CcoaR/k4GPoqGUoHaclY+ngqCmf4Wnq4OleIl8hJp+onBzlIiWfJ+NeW2Gm4yZj5uomY6HnXuConN2pmaefnekX5h6fZN0om6Yt7S6dJOIg4C1qGSBxrh7cJW2jHKAmqNic6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGGdmbOWcn2Yn7N1c1uesoNqYm90dnFpb1hrbHJzZ11pXmJMRT1ENlFCWnMzPVNHYEpSPTwzOTU6OTZEOztASlA/VU1PUUBFX19bWlhgYHxkSEM4TVdVV2JhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOVlKO3mKqbk5+NpLa0ra2gmqKdpKOmrp2csq6sk5iimqGkmZuVn6ubi4iSeIuFcYCWjoqQoY+SlJ2YfZCJjaigh5eOiZKklJybjYupqKWekJeHhX5qe4d+fZCNg4uRkYmQlKGDl56gnaCei4l3nJiijZ9xoYqHqYebpY6Upql9rYx+eqCZeqOTeIF0loiNnH2Wn4abjpibpYWiZKF8iJaQm41tnmibjm+amXqAi6d9cml0q4Ofg3SqaJWaXZuFdoWeZ6prgLhmXKhwgZxglYxep3Z1h4h+nmiadYaTkpeOgJ9vmpFup5pdqX95u2t+qlyOhF20Z1xucnp4a2lccWp4eWRgZlhiQlFGTzdXQ1JvNUxbW19OWkRBMjUxPDs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4mptJqniGOUm6u5sbCsnqacnKmgn6+cnrGprZ6XpJuhoJmXl6CjmYaJjWqIgHJ7l4iMlpaEkZWYkHqKhJWjnIqUj4aMn5KdnYmQqaOgmoySioGAaYGGeX+XjHuJjo6IkJebf5Sjn6Chk5hyaJ+Jn4+McJKMgamHmJ6hpZ6me7Cto6K4l3ejs6OkgIiUeZ17q5l+oo6cmpaIl3GhfIWNr7V9a5qRoXl+mLWipKuohJl8m32em390qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJqcXuObICIhJl1m3iGibGzf4Cbk6d3g55uc32VcJp0a6RdlXZIZWRgdHF+fm9mYGxpdnxlZWFRX1ddVFdAWkZRaEVUV11iWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQjxVX2JaZWlWZ2htb2JmZ15hYVxdXmBoYl9lY3ZtXWVnZmtkZmxpaGtpk5yAsK2ZhFNeoKazubKyqZqijJysnJyqlKKspKOoj6CenZualpmhnZaIh4l3hoFveZWFkZuLfJGTlohygIiSoZxzkZCBiZqVoZuFj6mcm5WLi4t8g2yEhXGCoYx4ho2IiJOZlnyTpKCeooithn21hI6enXullnqpgZWbj4mfm3ynaHdtfpl0oXNyfJ2GmXCTg659pIOlnZmAo29eqWd1omNvpWGc05B9e5l4c3NiooaQfqN0pJB2a4+zjGCCmIlzqrKovH93g21+v6aptF2bbnxwlm1/cqJyXaRnc6ZgaKZtm9SafoabcHp7mGycfHiXc26ppGdgZXpxgIVsaGZkbnV4aGBjU1xmUVFiSFlKVWFXVFxma1xlUUZDS01KS0JLRThPQFFOWFNZT1NRYGZmalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaWV8ZF5kZ2RrZGptZ2hsaJeaf6+qVFxLfqmvsbOvsqObmYWZqaChpI6mqaGZqoubmZmUmZOSoZiOh4V7cH2EaH2Pg5SagHeRjo+Jb3+Gj5OSbJeTfImSk6WXg4+rm5STi4aJeYN2h4Bugp+Gd4CShoiZo5h7lKOkmZ+Js6Gitot6rKekrqVwqYCajoWAmpB7pIChmYaYcp6EpK6vipeMgI2kjZWDraCTdrW2tcmhc5SLgZ9gnpepbXmWh6CbdKKId6B+k5eLgXBNZqOScJuHc6R7eXRhg4FrfqBrcWRfnHF9c5ZoeWmztbTGpnOYfXqda5ybq3aFm212eJhqmnt1mHJRRX2zX2p2a3qIZmtoY3V1cW5XX1RZaVBTaElXTVlUVl5pbG9WaFdOS0FKTUtISk9BUUtQZWNqbWV0cnN/eXxudYl7e1RRT2xeaVxraVJqaGlsaGxmY2VfXF1dXmliZGlre19dZGhjamZvbWVpbGWhm4iupYNkP5Ohsqqur7WiopCAl6qio6WMpaeenaaDm5iXjpeQj5yTjoiDemp5h2WDjX+YoHl1j4mMgWmEhZKDjIWdjXmNi5amk4SZqpiNkouBiXqAfYt5cJChhnmAlYeJlqCWf5SlqJyVlYNmbnicbKJke3Gld5uYcGemgJWKeqR6n5aDl3Oed4GKlZePuW6RiqJifZmglYhucmmqa3WgbW+mYJtpi5BploeblnWigX6aYIyGjXVwiGJooGWefmmbdW9jZoiBbXGiWl5bYqFtXYiLbnp9c3JkpW14omRnp2iZc4yZcKJvVYmQb6BfZqhUi15UmG5tc2tygm1waWx5dGtwUllXV2ZaVG1JWU9dSVhpaXNrWWxXUVJGVlxMWFNhVWlrX3d0e31wfHxyg3uAc3aNgIR2XlJyYmdjcGdQamhoa2xuaGRnX11eXWBqYmppdnVdXGNoY2pqc21ma21jnKOXpXlkc22Lpq2jqbCxpp+LgJirnZ+mjKOim6OigZaZlI6akIuYkI6Ke4dxgIhpi4t8mJtzdYl+kHtkg4eVioqVmYJ8iIeXqJGBo62RhpCLgop+gICOc2mQpoR9hpONiJmgj4iTqaadiKZ4lZt+pIiWi7GYnZCCr5efpXaUhnipc6WPhJpupKKMkoSNg7tufaWvg4aFhpOVnJ98pXpyqJWglmeefm+sZJaKlpN3qG2qooGJdomDd6uRpohrkbBrdrOMqWuKhW1tn56SlWB+q4uqdn5+i6Wedp98g6SVnaBqm4h4rGierYy2dHe+jaSTWoOnjqthdXJ0cHx1cWNrf29pbVNXW1ZhYl1rTV1SXUpebW93YFtxWVxgW2d0ZW5vcmNydGB3en55cnmDc4R/gXt7jIGCgHZieGRjbnJkUmtnaG9scmpmaWFgXlxha2JtbHpvXFxiaWJsanhtZ2xuYpWkqZyBf52jlqmpnaimrqSZioKYrJqfpYqbpp2pnYWNm5CHnJGFko2MjXSHe4iEb42FfpiTdHSGc5KCbX+LkYeGk459e4KGmKaOf6enj4GOiYWVdoKHkm9si6mBg4yUjomdn4mMlKqin4+AdZSXiH6BeZSuon+Bm3GPhneOiYJ9e3KnjHJ+fXqYlpuEkHl7f36HlJWTinaQmJ6gg3t9iWuMhVt5eXJ6cWlufpKJcYB1gY+Uk3GHhIJljH9fgX+Ld3RylHVveW5th2yEhV51Z3eOZYCAhY2omn10e5VqiYhwgXZ9h3dubmiMc3p8mHiFXGxYeY9pb3hycW94eHBda4duamdWW2BXXWZrZFZjVV9RX3B5eW1rd2Zra2t3fXJydXRhb3ZidHuCeHV6gnWAgICBeIuFg317bn9sZHluXlduZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhsb2GNk7eopomgopqmo5iknKuioYSEmK2SnqGJm6ebqZiDgpyMf5aUh46KiY1yg3yPfX6PhXuYj3RyhHGVhXt9kouGho+EeX6Ah5qljnyoooyGkJCFlYOGjph3coSpho6SnZCJn56IjJunn5+qhImOlZp+fomWraePkaaPd2+bj4F4kG5+qIVxfpVxa3B9gqCNgJOOi2hsXIKLi5uano5zlYuIcXRrgnd0gVlyboeRgX5/jGpdamR7hoSJgGBpeHqae4KKgXWBhYFnd4qGamFwcYF0XnGKgYiOpZSFZYuNg253i4Rxho96cWhoZXyEe5ZbXGtobnZbfHl4dW5zc4NnXG2La2tiWlpfW1lscVxfYVpfXWV0f3x2cHVka2trfH1zfHl1ZG51aG18fnd6fHt5eoCAfm+GioR7fXR+eXN/aFRccWlsdnB1Z2toZF1hWGtoa2txcm5XW2VubGdzem9oam1gi4qpsKGPoqGanp2Xnpioo6J+g5mujqCViJyikaWVf3yYhn2SmYmJhoeKc36BjHaFjIKEl4pyb4BymIaDfpKDhIaJgHqBhIycoZGDp6KIeY6XiZWLi5yXhIN6rYKRmJqVip6dh4ihqp+hoqOLiJObnKOZlaqhp6afkpqHlYx6do2Ng6d+f5KQk5SdsqablZ+QjbGSl4OljIyVmp+JkJuCiJGKa3yOd3hlg4eRi3yJnoSHjJCJiIGFhJB3fHp0maCIhomdiYSTfn2KgIB1b3KEgn53hYaKj6WQgoWMhoKMkIx9iIyKkYR6bYOFfnqZa3NpYXSKcX56d3dvd3SCXV5vh2huX15aXV1TaHJWZF1dYmxodnx9dG9wZWtqaYB9bnmAcmpwcWxngXtygoB4f31/hHttgoyGfHp4e316g3hOY3Zqc25wemVrZWNiYFt0ZnBncnFtVV1sdG1peXpxZ2lrZIyHnLmelqGgmJSYmZSYpKCefH+arI+fjoagnYueln15lYR8jpmKhoOEh255gYFzgYh+iZSEbWt+epeHhIOQf4CHhIV8h4WPnJ+TiKyghHOLkIaSkYudkX2Ne6qEjpOYlo+cloeHm6WfopqdhYKSmpqYj5mmn6WdnI+Vf4+IdXuGjYSle3yOkJGGmauinpSdkI6pjZCAnYyIk5mego+XfoeOg294hnJ1YH+EkIZ1jZmBg5CDh4V/hYSVbnl2dJKhiouFmoOEjHN/iXt8cnF6h4J6d4mNg5Gmj4WDjoCDiomKd4aJi4x+cW1/gnxvaGxtaF96f2h+fHZ1dnV7eFxfcX5udGBjW11fUmduVGVbXmJraXZ6f3JsbWRramiBf2x0gWxsdW96cIZ5boeAdoKAfoV2coKNiH57fHx/e4KKYGh7anVpaYJkamNgaVxjdWhvYnVtbFVjcXllcHp7c2VqbW2LiZ62maCjn5KRlZiLmp6fnnt4n6eRnIuHpZWLmJl5eo2FfImRhIyCgoNufIB5c4GFfouRfWtofYKXiYGIjnx+hoSGfI+CkJ2dk4mpnYFxjIuMkoagoYqFjHyokYiQkpeTlpN4jaOfoJ2WmX+AkJuZkoyaoqCjmZeQmn2Mg3d/go6GoH9+jIyPfJikoaKTmpGQpoyPgZqRiZKXm36Tkn6HjoF1dIJxd2F+gI6GcouWfYiMcox/goWGj2h4cniLmJGPf5Z9iIpygYZ7fHB3eoqCeHiPi4GUpZKLhY97hYaHhHaDhImJfGdzfYB5e3Fta2dffnNofHV2dHxzgGpeYHR2cHdkY1lfX1JraVVlWWBhaGp2eYJxZ2tkbGhmgIBrbn5ob3FsfnmHemyMgXOBgX6BdHaCjYZ/fHuAgX1/j2lyg250aWGHaGxiX3FWdG9tbWB4aG1XanR2Y3V6e3Jiam96iYyesZGlpJyOj5ePhpygm519d6WhjpiAjaOLiJqWeXuGh36DiX+JgoF/cn97dHaDhX6KkXhnY36Gl4qCiox5fYCNg3mWgpaZmI2XoZx/cIyCkZOGpZuHjImDppWFk4uWmJOSd5GdoKGXlJZ5fo6YmI6WmpyjnZiSlJp4jYSCd4OVjZ1+gYmNjHOXo5+ilJmPj6KMioKWl4OSlpl+mI18iI2BdnF+bntkgHyLhXGHk4CRgmyHg4GAiYVmdW97hZGXi3ySd4uIe3+Ge3pxfXeIg3iDj4eJl6GVgYOLdoiEg4J3fIOKh3hgenl+dH94Z21lYX9qandzdHZ+cXxjY2BzbnVybWFaYV5bbGVSY1lhYWhrdnmGcWNrY21maHyDbWl1aG5waYB9gnltkIZygIODfnR8g4yBgH57goN+fJBtdolzdW1limxqYmJ2VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPm62XpqeejYyXh4afk5eZfniqnYuZepedi4yYkHl8gYx+fIR8gYOBeHR5enR9gISAiYuAZF99i5WHf4WGdX1+i399mIaXlZiNpKKZgHOHe5ORiaaPjI6Kk6CRg5KQlZeRi4GPl5+akZCQc3+NkpSJnZ2eppeXjJSVcouMiWuEl4+ZeoeIj4lvl52apJSVi4yejIaBkZx/kpKVhpmIe4qKgXlxemx1bHx/i35uhpODlXhxgoR+fouAZXJpe3+Wl4N+jXOPh4J4hn11d398hH97gouDipOjj3iDgXSJh32AdHaCiYVwYnx2e3J9cGJvY2R8Y25wdnN4d3N0YnZgb2x2bm9cXF9eXmpeUF1ZY2FobnR7iWxgaWVrY2l3h25nbGlrbWiBfXt3b5CIc4CEhH10gYaJe4N9eoGEfX2OcnqLeHhtbIdqaF9pcmOHZ3FvZXdnbmxheWlrfXt4cGF4bYuAmJipn6SonYqKkoaKnYuVmH54r5mNl32flJGXk4h3fnuKfXyAd3iAgHB1dHxvhn2BgYp/fGFcfo+RhoCDg3N7gId6j5KJk5KdlaacloJ9gX2OipGjiI6KjZiajYaSmZSWjoqIjJKcko+MjG6EkI+RiJ6ZoqCWlYmWkG2HmINlhZiOk3qJhJCKcJaalKOTkomLmYyBf5CdfZKOkoyZjnuKhYdzc3ZscW51fIp0boaRj5NxdYF8gYGIfGVwbHl8mZN8g4h0kImAc4d4bn98gIV7hIuHgouUp4x6hnt+ioV3fnFwgYeFZml6dXZxfGJfcGFrdF9xant5eWxzcGV5Xm5sc21yWFtfYGFrW1BXWGVjZ3Fxf4hnXWlpZ2JncY1vZGloZWlpgXp3dW+OhXSBgoN7dYKIhXiFfHiEhXp/iXd/i3t7cniDamtfcGh0gGtyb21yZ29sZXxjboB6d3Fsd3eKfqKXoaegppuHi4uBj5yHk512gquVk46HoY2WlI9/c3x2hXh5f3Nze4Zrc3B6bot2gIGIb3FbWX6RjYeAf392dYCAgKCHkouUnpqilZh4in+BjYicnYqPhpKYloWJlZqQl4uLjY2MnImNkINtiYuQkYqdlqGbl5SFl4dpg6KBZYSciZB+i4OLgXeTmJKfk5GJiZSNfn2Ol3uRjI+OmpJ8ioCCb3ZwbG1vcHuGaXSDj5mLcXeAdYKIg3lmcm51gJmOe4eDeZOQeXWHc2+HeoSKeYqFgYeNmqKGe4N1got/d3lubIGFg190dXNxcXlaX3FhcGtecGp9e3FtbWptdmBvb2txbVlZYmFiblhRVFpmZ2N1cISDY11rbmRjZmuSbmBnZ19oa4F1cnNwi4B1f4OAeXaAi4B5hX94iIZ3g4V8hot/e3aKf2pxY3xjhnxucW10amhvbHZ4X3F/eXx1dXSAg36klZqsnqeWhY2Ef5eUg5CgdoyglJOHi5uNlo6LeXF4dIJwcoV0cXaIbHBudm2IdoN+gG5uVVGBq5WHg3h/d3KDeoOggpOClZSanZObeJJ7g4ySo5mTjomVmZKEh5eZjJSLiY+Ph52EkIp8c4uFio6InJqfm5WTf5N9aISbhmeFn4eRhJGCiXGDkZiQnI+PjIyPjHd7kZB6jouMkZaMfIh8gGt3am5rbGx7f2J6fo+XgXZ7gXiDjH15Z3Nsc4aVi36HhXqTj3F5g292i3mIinmIfIGKj52dhHt6doKLfHdxamyChHtheXFubXJ0Vl9wYnJhYG1venFob2Zmc3RpcWtid2VdV2ZgYHJTUU9cZmVdeXCIfWBcaXJiYmVmkWpfaGVbZ3B+cGtxdIp9dnyGgHV2fox5e4WBeIiDc4aFfoyMhHx5lXhmcmuDYIh+b29remBqbnR/dV90fXmGeHRzhX14oI+ZsJuljoKLf4OaiICMn4CLmpSPhYiYjo+PhHZ0d3SAcXCFdHByhHBraXdug259fW11c1JNgt/IktaTe3B1hHaEoIOUd5aRmZ2RmXuUc4WQnqGTk5CJk5yUhn+XloiNjYiRjIebf46Ad3qNfomMipybnJqUknmMdWaHkIVrh6KEkYiXg4ZjjJGZj5WLl4yMiopxepSIe46IipKRiXqGfH9tfGVzb2tsenpbgXmQkIF6fn+Aho57emhyanOKj4mBhYR8lIprfX5tf4t9ioV8g3iAjpSZmYp8dXeDj3hybWdxgIVua3VwaGp1blNfb2VwWmBscnhna2piZnhycHFjX3dgYFZrX152UE5MYWdjXXpxiXVdXGV2YWJlZY5kYWdiWWlzc25rcXaMfHR6hoJ1dn6Lc4CGf3uJf3KJiIGRi4h8fph2ZXNufGWIfm5wbIBZbG55eXNgdnp7jXZyd4p3eZ6Lm66aoJCChXeIlX58ip6IhqCSj4WMmISTjoeBdHhweXFvhG9tb39zZWV5cX1ten1qaGtjpJrB3K7woXNsdoR2haOGk3CXkZahlZyBknKGi6KXiY2VipCdloOBlpCFiY+AkYmJln6HenV/iXiHhI6cmpiYjo92iXVthYiJfImig5GJnISFXouTl4uPiY+Li4SJbXuWgX2IhYmRj4Z2hn5+a31keHZqbnlzWIl7koiFen6BgYaMf3llcml/iY2JgoF+i5WEa4F1bYePgY6DfYF4fo+UkpiPdHJ3h4x1c3FndnqEY3VucWNqdmhSYXFnbFZfb3R6YXJkYGl9cHNvW2NyYGJWbllceE5NTGRmYl53c4luXFxkeV5fZWWFYGNjX1lqc2tua3N3jH10d4SBeHd7iXGDhH1+iHt0i4mIloaMf36Xc2d1cnlsjHtudHGBV3F6dnlyZXd5h41pdoCJcn+chpimm6OShH1xjJR3eYyehYWhjY98lo2AmYiEe3N3cHRqcIFsaW18dV9heHd8cXV8aGBkfOvatcnD3IdzbHSCd4ubiY9qmZGQnpaUgYlxhYifjYSLlYqMmJR8jZOIg4mPe4+KhY+Bf3Z4g4RyiIKTnJaUl4WMdYZ+b4OBh4aYoYKTjJ6DiWGDlI+HioaKjoeBh2l8k399g4SJjo2Ccod/f3F3aHZzanR3bFqNfZODhX2AhIGEioJ2YXJriIGOiYF+fpGQfW2Ba3eEjoSQgnuAfH6PkY+ViG5weYyFdGtxbHN5gmF1am9dbHdhUmVyaWZTYHB2dWFwYF1og3Fza1dnaGJpWG1WW3VMS0xlZ15ic3OFalxcZXleXmRne2FkX11Za29mb2p0eIp+c3OBfnt2eohzhYN8f4d2d4qGj5mBjIJ7k3Vsd3Z5eJN0bnh7fVh5hnGAb2d5d5KDZHaGhXCKloWZoJqiiod0b5KMcXePnH6LmomJfaB/g5mAgXhydG5vZHJ/aWZteHhcYHl7e3FxgGphZ2F/1baOkaZ4bnF3fHGTkY2Ia5qPiZ2TjIZ7aYeLmYaBkpGGh5iOfI2NgYGKjXyPjH2JhHp0eoN7cYaAlpqOk5OBiHWChXSCf4mRnJ2GlI+ffohif5OHhYiFi42AgINnfJCAfn+CjI+Qfm2DfIN1bG13dXV4dmxjjoGPgIV+fYZ/hIl/cF9xb4R7jouBe36QiHlwg2V5gYmFioF6hHx+ko2PkYNtbnmLfnVtbmtse39kaWxqWW53WlNqc2liUWNyeG1jZl5aaoNudGJcaF9kbF9uVVtwT0hPZ2VcZ29xgG1aXGNzYFxjbHdlZV1dWmtsY21qc3eGf3Fwf3x9dHiGeIWCfICHdXmJgZKVfImGdoiBcHh5e4STb257gXdeg4B0gm1penSUc2dziHxxkpGDmZ6boIaIdnaUf213lJh/iJCEi46afIuad352cXBsamF1fGdianV6W2B4fHptcX9lY2hnV52PX3FzlrzEhHdxlIqQgHSYjIedlI2Ic2uIj5WAe5SLgYSbjHyKhn18iYx/k4d0iIV2dn2CcXWGgZ6VhpSPgoJxfodzg3qIlpuWhpKNnICIZn2TgoCGhIqJcoF9Z32Le3l/f4eLj31pgH2EdmZweXh0eHRsa4+Gi4KLf3mDgYSEgGtecHd6fYuHhXuAjn9+coBoeIGGiYSCd4J6f5aLjot8bWt6iHx2dG9paH53ZV1xY1hwdFNUb3NpYk5odXlnYV5dWG+Ab3RZZWNdam1gcE9ZbFJEVGhiWmxvbXtvWVtebWNaY293ZGdcXWBramNsaXN3gYNxbn57f3R1g3qEgnyChXZ+iYGWkXiDinSBiHN5eX6NkG9ve4FxaoJ5en5ubXx2lmtqeIR0a5OMhZ6YoJmFiG9+jHZqeZmPgIKKgpaYinmOlm96c3FsamRgdHtpYGZye1thc316Z3B6YWVkjrGyd0tiWqXa0Zdye5KMkXl/loyFmpKNhm9shZKReXmThoCEmYp8h4B5eImKhJWAb4qHcXR9e2p5hoOlkYSTjIJ/bn6CdYJ3hJqXkoqTj5SFh3B6koR+g4SKg2+BeGiAhXhyf3+Diod8ZXx+hHZjcXOAanpxb3WZjYaEi3x3eYCEeoJrXG98cn+Gg4h9hYd6iHGAbXCChY2Cg3GDd3+Xi42Dd21tfoN/dnplaGp+cmFaeFpZcm5OWHJ0ZmBLbXd1Yl5cW1l1fXJwV2deZmpxX29OV2lTP1lnX1twa2d5cVtbWWtlWWNweV9oXV5lbGhmbGlxeH+Hb21/fYF2cIJ7gIF/g392gYWJl4pxgo1xe4Z8enmElIx1a3p/bHB+dH99b3J8e5Rwb4B/eWaSioKhmJ2Rg4Znh4RwZ3qXin6AhYKZioF8jY1peHJsbGZfYW95bV9ib3lcZGyDemFxdl9kZdXrvosyOj6LjoByeYaJj413hZmOf5SOjX9ubYWMi3V9j3+FgpWJfIN4bnaHhYKWd26HhGt1e3RleYOEp4yDj4yDfW1/c3WCeISaj4uPkZKMi4d/e5KHeICFjYNsgHNpgH54bXx7gYqDeGJ5hIJyZHFpf252cnWCnIyBgIZ/dHZ+gHOBb1prfXN4iIGKe4Z/fIh3eXBrh4KOgolxgHd9lImKfXRtanaAgHV1XGlpeXFaV31TWnJmTVtzcmZcSnF4cF1bW1pddX91aVliW2dlbmJpTVdmUT1eZl1edmZfdXFbWVVvZFpkcHlbaF5gZ21namtpcHh9jm1qgoSAeW6Be32Bf4J6dYKBjJOFcICLbnd9gHt7iJOJgGl7fmt0fHKGe3N3fX+MeniEfnxrjIyEm52WjIKBbI1+a2h/j458fn+DlIJ/fYqIa3VxZ2ljW2Nnc29gYWx0YWhwiXphc3ReYmOboJBuXDVar7V1aoCKfpOHd4iYh3WQjIp3cG2FgoZ0eYl4iX2TiHp/c2d1iH59l29xhX1odnluZXqJhaWHgIeNiX1tfXR+f3uKl4aBkpCYiYuFinyPiXJ8foV8aX5ta4F7eWp6doKHgXJgd4J+cmRyZ3aDbnV8hpWSgn2CgHB3enx1fm1YbX11c4p/hnaGdIKJendybYh/jn+DcX17fJGHiHptbWhtgoF1bl1oZnRyUlx8TlxxXU9cc3BkVkt0eWtYWVlaYXGBdWFdXWBmZGhoZk5aaE5BYWRcYHZhXHVtWFhTdGFbZW9yV2pfYmhrZ21saXB3fJNsaYSKfXxwf357gX+CeneAgImLhHJ7h29xd4R/e4mNj4RqfntueHl3ind9eICCh3+Efn56bYSMiJijjYWEe3aLemtthYmSeX17gpKAgH2KhHBycGNmXllnX3BwYGFocGZqb4l0YXRvW2BkanZ7f76cp6TJuHKFhHOUfXmIlIR0ko6HcnNwhHqCc3WGdIh3lIl5eXFkd4Z6gJJocYR1Znd2ZGp8hIiegoB/jo59cX5yg3h+kI6Cd5WMlJCIgoh6iYlseXp/dWh6aWx/eXNpenaAg31oYHiIfWtqdGh7gWp2go2RlX98fn5xfHZ8dH5iVXV7cXKIgoJ7gXCGiXd4b2+CgYt9fHd8e3SNhIF1aHBnbIiCcnBdaGN0b0xmdkxeb1ZUWnRuYlFPdHliUlhYXWFwgnNbYV1oZWVjamRRW3FJRGRiXGRxXlx4aFVXVndeXGZuaFZsXmFqZ2Vubmhwd3qTbmmIjHl9c3t+eYKBgnx2fYOIhoNwdoNzbneCgn6Ii5R/cYB8eHp6gYt0g3h/gYGChHqAdW99ioubnoh+hnt3hntndYeNkXp/gHyJhoR2j4BncG5gZVxYZlltc2FhYXFsbGiJbmBzaVheY22Ad6naqceGiLNyinlwjnZ9iJCBe5SLgHV0dX52f29wf22FdJSGeHVsYHmBeYiOZXGDb2d1blttfYGQk4CBeZKSfXd6bIV0f4+Kg3KViZGPiIaGe3+GbXV2f21od2ZtfHZtand2f398YGJ4hnpodXZjfnxodYePjpZ9dYB2coB6fW2AWVZyfW9zgoZ+f3driIZzeGp0f4KCfHl7d3lxin97cmdzZG2LhGxzW2pfdmZJb29MW2NYV1Z5bWJQU3V2WVFWWF5gcoRvXGBjbWRjXW9jVF1yR0JmX15maV1ae2NSVlx1W1tna2FWa2BgbmZmbHFocHZ4j3Rrjo12f3Z4fXeBg4F7dH6DiIiDb3F/dXF1fYWBiY2Le3d/eIR8fYWHeId8fYF9hIB7fnJ2eIuOn4yJe4p3dYN6Xn6Hmo15h4R0hoeEd4l7Ym5tXGJbW2FVanRkYFtob3Bnh3FhcWZXXGNrf3zKzoe6omtub4ttcoRyfoaLf3uShXp5dHp1dHpqbHZjhHaSgnZvZ198gXmLiGVxgGpqcWNYbXuGnImDgnKXk3d9e22Gb4CJioZwlo6QiIaMhHt5f3JycH5naHJjbnhxamxxd318eV1leoB4aXV5Z4J3aHWIjI6VfXOHam9+gHhufV1XcH1tc36Je4Btbop/cHZmdn5/foB1e3B4coV7eHFlcmBti4FrclhrX3hdSXBsTldWX1RVfGtiT1R2clFSVFdeYnSGaV1ga2pmYlluYVhjcEdBaF1hZl9cVnxeT1ZlcVlbamhdWGhhX3JmamhxZ3Fzd4d5bpWKdX97d355g4eAdXN/hYWOg3Bwe3h3dXmGhYeMhnp8f3WLfn2GhISHf35+fYZ/fHh2eXaSlJ9+jX2LbnWAemSEiJiGdJKKb4WFgnqDdWNuallfW11dVWhzZWBZZHJyZ4FyYWtkV1pfaX94vq56n7huYnSHaXV8cnqEh3t+jYB3eHN3b3p2ZWpvYYd1joFzamJefXd4ioJlcH1oa2taVm94i6SBhX9wmZJxf3d0gGx/gI+GcpOHjIiFiYV9eXVzb2l5YWptYW12amdra3l3endbZ318eWZyfm6FdGZ2ho2GloBwi2dre4N0bHViW256anN6inuAZXSHfG1wZ3R9dnx+cHpqeHl/eHdvZWxhbIl9bG5WamF4VktrbE9ST2lOWX1oYk9VdWtNUVRVXmZ2hGddYXFoZ2FXaVxca2lKRWpaYmVXWFV5Wk5XbmpZXWxlXFplY150ZmxlcWZzcHSBeHCZhXZ/f3h/fIWHfXV0god/lYNuc3l7e3NyhYaIiIR5gX12j399hImOhIGDen6Lg3t3fHd2mp2YeoqDh2p2fn1shIaVgXKPgnGGgn6CgG9mbGdYXVtcW1RlcGVfWGNydWl2cGRlYldbW2h/cG9ygHOKZWZ6f2p1d3R0hIZ4goV6d3R2bmt6cGFoa2eGdI2EbmZeX3xveol9aG13ZmpkVldzcI6nfYR8dpaQc3txe3hseXqPg3WXfIiGg4eEfXVxc21odV1taWBtdWRnZml6b3tzWWeBdnVocIF4gnZid4WLfZWCb4xrbXuBcWZzZV9reGZxdYl6fWF1g3Vpa3F0eW94d3J7ZXx9fnd1bmNlYGyGfG1rVmpjclRMamtQTE9wSF58ZmFOVnRkS09UWGFrd35mXWdzaWVfV2NXY3FdS0trWGRiVVRVc1ZNWXZlWl9sYFxbZGVfd2dtYnBpdG9xfnV0mYF4f4B4gH+GhHp9doKDfpiFbnJ0fHt0cYWFjoGBeot1dJCAfYGUjoCFhHx+jIZ6foF2e6OminmJhoVsdXx8dYSDjXtvhXN6hX2Cg3VuamllVl1bW1pTY25lW1hidHtqaW1oYGFXXlppgGlsb4BnbWJpe3prdHV1b4aCeoF+d3Zue2hqeWpfZW5ogXeQhGdlWGF2aX2GeW5pb2ZmXVVYb2mPqHeBenyQjnh0bn1tcXR4jX53lHSGg4CFiXZqc3ZoaW9cbWVebnNfZ2JqeGh7bVttg3N0am+Bfnp3YXeFhXqRhnOIcnB6f3JjcWhbbXZkb3KHendhcoBvZ2l4c3Frd3ZzdWKCen12dW9jYmJtfHxra1VpYmdUTG5oUEhSbEVheWZiTVRyX0pNVVllbHh7Zl9tcGpjXVZgVnBvV0pTaFhnXlhNVWxUS116X1xfbF1dW2JlYHpobGFvb3Zub3d1eph9d4CBeYCAh4Z6eXqDfYGThHF0dH56dnSFiJB+gX2RbHOVgXuCn4V/h32AfoaCgIp7dYSsn396iIiEbHKCenaBgYJ1bodvfYB0ioBqb25lZFhfWlpaVWJqZ1xaX3WCaV5tbFxhV1tca4FlcXV9aWpebXh3aHV4c26HfH5+enZzbHpoaXdnXWRzZ3p3koFjY1Rkb2aBhHZ2ZmhqYVdWWWhjkKhvf3d/io56cG97ZndteYp6do5xhH1/f4duZHd0ZWhpXWxiXnBwW2dfbXVlemhddIBucmtxe392dWJ1hox8iYiAf3hydX50YXBsWHByYW9wg3p0Y3GAa2Bsem5paHl3c3Bkg3R4eHRwZGBjbXJ9amxUaV5fVUx1Y1FHV2JHY3dmYUxUcVlLTFhYaGx2emVkbXFmY1pYXVh3Z1RKXGNYaVhYSFdlUUljeFtdX21bXlxiZF5/aWpgb3R4bW9udoOXeXKBgH1/iYyGfnV2hniGjH10dXWCeXp6goyOfX+FiWp0loF7ip19foV5gHt+fIaJc3GProx8fIeQfmZxiHp0fn12cm+GbHx+bZB6Y3BwYmVdZVZaWVdjZmtgXV1zhmlZcW5bXlhaXGx7YnF3dmxjXG50dWh1d3Fuhnl/gXp3b290ZWh0ZVtndWZ2dpJ6X11TZWVqgoFzfGFjaVxUV15iZJClaXl0goWQeGxteWZ3bHuDeXSHcoF4fHmAaWV3bWBnYV9rYF51a1lmXW9vYnplW3d8a25vcHh5dHVlc4OTgImDiXp2b3J9cmF4Y1pub2BvcIB6c2VxgGRebXVoY2Z4enJrbYBzcntxcWFeZW1ufWRpVGhZWlVOeV9SSlpZSGN1ZGFKVW5VSkxaV2lscntkbGxzYmFZWlthd11US2NdWWpTVkdZYU5IanZYX2FuW1tfYmNdhWloYm54eW1vanaBkHlug36AgpKIhIF2dYl0jIZ0cXZ2gXd9fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OHhHNwmaJ7e3+JlnlldYh6c3l3bHRwf2x5fHCSc15wb2FnYmxUW1pXaWRtZlxccYllU3JuW1lYV2BrdWRqdWpqX1tudHJtdHR1a4d9f4F9d29ubGRpcGNba3JkdHaOc1xXVGNfcH9+cYFcYmNeU1phXGSTn2VycYWDkHNranhsbm55eXpxgHZ/c3t6e2RmdmheY1thaFxed2hXYl5waGF3YVt8dmpqcm54dHR0aXGCloSHf4V2c2pwfG1md1dbaWxhcHF/eHNlb35aYHBwYV5pb3xranJ9cW92aW9gW2RrbHthZlRnVVhTUXdcUlBZUkhkc2JgR1ZsUUlQWlVrbGt8ZW1vcmFbWlhZbHBXU1BmV1dpU1RGWlxPSXN1WGBjbmNYYWFhXoxqY2Vtenlsbml2eYZ7a4R9gIWZfIKEeX2IbY+GcW92en10goJ9i4+Dg5d0eIKUhYGfiXWBf4F0f4Jwh4N2b6KXdHuGjId7ZneLb258cGd4cXtsc3ZzjWtedG9iZ2ZrU15cVmhibGxbXHGNZE9vbVxWV1VmaHNoY3RlZV5acHZvcXZ2emyIfYB9iHeQc2Nka29hXG5tY3N4h2taVFZiYnZ8fHCEXGNfY1RaYFpjl5VjbnCChYlyaWZ5bmRydXF6a3l0dW97f3ZfZ3NkXF9XYmRZYXVlVV9gbWRhcV1dfm9oaXNxdHF1dmxthZSDinyFcXJnbnxvcW9SWmVpZHByf3VzYmx1VWJxaltebmR7ZGt0fHFxcWlsX1hkaWp4XmZVZFVXUVZvWFFXVFBIZXJfYUZYa09JWVRWbmlkfGlreGthV1xVW3RkU1JWaFFZZ1RTSFpbUE55d1tfZW1qWmJhXl6PbmJnbHl2bm5pdnZ/fm2EgH6Gl3t/h4GKf2uTiHJndIB7dYCDfomOf4yTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOCjYx3eG56jWBlfXFnenR5bG1xd4NnZHxtZGdnaFNgX1VnYGxvXF5ujmhNaWxgVVZTb2Vya2Z4ZWVdWnJ2bnN7eXNuinuAd5x7emthZWxtXmBuamVweX5nWlZYX2p3e3pvg19iXmdWWWBYZJyIYmtwgYZ8d2tqdmxbdXBqeWl1cm5ve4FzWGtvYFleVmNkWGVxY1RfYmlhYmxaYH5rZmx0dW9teHZsaIaNgIp7iG1xZnB7bHFsYVhfZ2ducn9zcl5pbFNlcGRVYm1heGFvdHp0aW5ral5XYGZodVxkVmJWVE9ZZ1NPXU9QSGVwXWNHWmpOSmBLWG1lX3hobn5kYFVeVF11W1RSYGdOXmJVU0pcWlFadnZdX2ZtaFhjYVtejnFjaGp4cnNtaHZzeYNzgoN7iI5+fIqIjnluj4p0bHOCc39/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo2NjY2NjY6Ojo6Ojo6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjY2NjY2Njo6Ojo6Ojo6Oj46Ojo6OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERDR2RoZ2dnZ2hNQkNDRERFOS4uLi4uK0iFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTQ5XGBfX19gYUE1NjU1NTcnGxwcHBwYO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fn1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaIiYiJiYmJh4WFhYWFhYSDg4OCg4KFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkJCQkJCLjpGRiYeOipCSk5GLkI2Mj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjY2NjY6Ojo6Ojo6Ojo6Ojo6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQi4WHh4eMhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCIhYWGhY6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkIiFhoaHjIiIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp+fHZ2eHx8e3x9fX19fX5+fn5+f35/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4SIhoaIhYmPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6fHp6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pio6KioyKjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fH1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fn9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f3+Af4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/gICAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f3+AgH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f4B/f39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJWVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5KSkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX1+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOSk5OTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpCSkZGSkpOHhZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCSgoGSkZGSjnWGkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9+f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CIcISRj5B8dYiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj4+QkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fX19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4xzb4qPiXJ4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjXZue4+Cc3iGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHc21ug3p0doCFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxZWFhXVFBRUlNSU01NSklGRUhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39+fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3RiXmRfYmtxZmhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f35+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYl5sbF1mZ2dlYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hJSkhISElJSElWcHN1eXp7eXZ2eXp6e31+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWVZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpaa3dtYm5zamJaWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fX59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtrcmxhbXRyZ1FRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OXGRva1lpc3VwU01PUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgIB/gWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZCRUlWY2drb3BubWxaTUxOTU5PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICCb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVDR0hJTltnaWdybm5pZmRgX19YTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7PklaXVtdZmxua29tbWxraWlrY1JHRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+AgICAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7Oz1KW2lubm9qb21ramxsZVBHRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYGCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ojo9R2Juc25ubGtsZ1RCP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VGRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN0cnF0eHh5fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5PElfc3RxZlI/Ojs9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT48OkJsfWk+Ojs+PT4/QEBAPj9BQEBAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQURGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9APFxuQD5ERT8/QURfZDw9PTs7PT5BQUA+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJDRUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdIODs6PT5BOkllPTw9PDg6Oz8/PTw9OzxAPT08PT07PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUdISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw8PUlMRkZ1d003ODg6Oz4/V2pBOzw8Ojs7Pj8/PT04Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3J5STtcf4N/enx3Vzw9Pz09PkVodEw6PT4/PT0/QUNAPDk7QT8+PkE9Oz9BQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFHcnlrYoOEg4KDgH1ePkBDQEA9SnN7WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEVudH2CgoGDfn2Edk1BQ0VAPz5Ze4BdP0NFSUpKSU1NS0VDRkZHRUdFRUVERUNBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTE5PUFBNSUdJR0hJSUhIR0dISEVDRUVFRkZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSEpPTk9PTUtHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiIRWbISHhoaGh4iIh3xPWGRMSUlHR0REQ0NAQENDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREZHSUpJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pUgYOEhIKChYaGhIKGhYSEhoaGh4eGinZvaVNNQD5BPz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgICAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpJSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMjn5sYmFSPjg/QDc3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJR09SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouNjG9gZGVZQVc9NTY1NTg3MzU2ODo4NzY1NjU2NzY3Nzc6Njc4ODk6NzU3ODk3OTc3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDY3ODg9Oj1FQ0JlhYOBgIKDg4ODg4aJioqJiYqKioqLiouMhmpma2lmUTc4ODU1ODg1NTc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc2Njk6OTg4Njg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhIWGiYqKiIeHiIiKioyLiouOhGtsa2I/PD4/OTk7PDk6Ozk6Ozo6OTs6OT09PT47Ozw8Oj47OTs7PDs8Ozk6PDg6Ojo6OTk5PD88PEFCRElKTUtJS0xXb3JzdXN2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuKjI2OgG1sYEVERkZCQUFCP0BDQUA+PT4+QD8/P0A/QD09P0I+QEE/QD89QEBAPj9BPD48Ozo7Ojk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t9fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKDgoKEhYSFhIaJiYiIhoaGh4iJiouLi4uMjYyNe21rT0tNS0pHSEhFRkhHRUNBQEJFQ0NBQkNCP0BESEVDRUNFREFGRUZERUZEQEI+PUA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyMjI2LeG1hbWRNT0tLS0lJSkpJRkRER0hHRENFRkRCSElLR0hHRkhHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjY2MjIyHeXllYU9PTUxNSklKSEtHREdJSElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7Oz06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjIyLjI2GaVJST05OTU5KSEhFSklFS0lHS0pJSkdHR0tMTkxNSEhJSk1RTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNUbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIyMjIxhVFVTUFBPTEtIR0NISkdMS0dLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pISkpMSkxGR0hHRkZJRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIyMjn1aWFVVVlVQTkxLRUZGTE9OUFdVUVBPUVNSTVNUT01TTFBTVVZSU1JQTEpNTU1LTkdHSkZGSEpFREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09QkBCQkdWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyNj4yMjGpaWGxjR1RSUlFLOztSU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl4ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0dGRT8/QUFFQUNHRURFTFhSTVRVVlhafIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqLjH5hiouLh25dZVY7WVpZVFE/QFZVWFxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFVUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6enp7ent8fXt+f359fn19fX5+f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKjHpvcFpcXVxTVVNWVlVbWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f3+Af39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeEi35nWlpcWlVXVVdSUVdWY5aAUmVyWFpXX2hQYGZbW1hcZ2FHT1poZ11bXF1dV1JPU1BQUlZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbU1NRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn6AfF5SV1lWU1ZTUlFMT01LZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtcXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fn5/fX19fn19fn9/f4CAf39/f35+enh3dnN1e39/gIB0a39+a3J5XltWVVNST0tGQ0RBTl6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmJh4aDh4eHeW9yWEtNT1BNT0xKS0RFSUVDPlRkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3x9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eXFlVUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ2YF5NRUBEREREQ0FFUEJDQUM9Q0lHVkBITkxHXWlQSEZORkRFRklHSEJESEdJS0dEQkFEQE9RTVJkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn+DgIODgoCCgIKBgmxOSEBBOzw+QEA/QD9rUEpgRUZISUVCP0dMTkdNUVVJQUU+Pzw9PD09Pz0/QUNDQD89PUI+Sk5HVW51dHVzdHZ4e3x7fHx8fX19fXx+fX18fn5/f3+AgH9/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVlVXUVFXVVBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZURCQUI9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtNV01IR0BBPDk3NzU5OT07Ozs4Ojg6PzxCSD9cc3R1dXV2d3l8fHx9fHx9fX5+fH59fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BfXVpJSFBSUU9NUFFOUVJUVlhTU1lUT1laW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEdISEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BWV15aWE1MVFRTUFFVT0xSU1RYWFRUWVJNV1laVlhYVlhZXVdXWGhza11WYXNrYmFfXmRhX15ZVFFOT05MSUhKTElJRkNRUFNbV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTlHbXJ0d3h5e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQU1VXVFVSXW5eUk5aX1tWWTtEVlhUW2ZKTFBTUk9NTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz48Ojc4NzY1OTk2NzY2NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF1SVFpWV1VUV1RSWFhZWVlTVU9KR09QT09NUkpQUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBTTUlMSk9SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0hGTE1QTUcvRV9SPjM/PmpvYVNSUUBHVVFQUVBRTlFPUVBMSkxMT1BPTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR1eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nVFFTQUdVUE9RUVBOTU5NS0xLS05PT1FMT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT09NUVNMVFVUWFdVTExLSTw5ODc7PkA+PD1BQEI9PkVIR0NFRklHSkpARkFBQEZIRUpPSFFSYlxRUFJPU09PUExMT01MTUxNT05bV0tNUU9HSUhDSEpMTEpGRkZFP0JDPjxCRz9CP0FkcHN3enp7e3x7enp3e3d5fn58e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENEPTk3Nzk/Qj47P0FAQD5ARElFQ0dHSUdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xNS0xNTU1MTE9OU2ROS0xSSUlJRUFISkxNTkpHSUdCQUJAP0VGRUhES25vdnl5eXt7enx6d3R4dXh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg6Oj9CPzxAQkFBREVHS0ZDSElHR0hDQz9CPz9AQT5ERUNLTlJUTEpJTVRHSUlKTElLTElKTU1PUFJQS0dDS0dDQklJTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3p5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFIS0RHSEhHSktJSktERkI9Pj05OTo7QEI/PUJCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISUxNSEpMSElKTEtNXVJISERORkFDSkpNTFBNS01KS0ZHR0pNTlFOTGJtaXZ2d3p5e3p9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjpAQ0A+QkNERUlFSUpMRklJR0ZGREI7QUNDPkBDRENER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lHRU5IQkZNS01MT01NTk1LSEhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lERkZFQ0NCRUBEQT4/Pjo7Oz06PD5DQT5BQ0VGSkZJSExIR0dHRkVDQD1ERUI+QUNDQ0RHSElHTVBKRkZHS05PS0ZISUZFREVJSkhKSUZIT0tDSU1LT01PTk9PTkpKSUxSVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPUJBPkE9Ojo9Pzo9PkBCPkBCREdKRUlGSUhGRkdFQ0JBQUZGQ0JCQkRFREdHSUZMUUxJT0pKTExJR0hFR0ZEQ0lJSEtKR0tSTUJOTk1QTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmVmZmRoaGZuamZtbWhra21yaXF2dHNxbXZub3Fyc3dzcnN0dXV2dnZ3dnd3dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREU8QUBAQzw4Oj0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDR0VCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFSUFBRTk9NTlBNTE1TV1ZYWFVYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRTw/QkJEPDc6Pj46PjpAQj4/P0NFRkRGREVIRURFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR05LTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFJPUU1OUU5NUFdaVlpZVlpdWVhhYGFgXmhlY2BkZmhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXd1e359eHZ0d3Z2dnhwbHVwbXN0bm9ycnhOSEhHSURCQ0hFPEBFQkU9ODk+Pj08PEFCPD8+QUFGQ0VDQ0lEREVFRkdHR0lGR0tIRElIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5LT05PUlVWT0tVV1NQU1FSTE9RUE9UWVpZXFpZW15eXWBjXlxhY2tiYGRmZ3KFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdExJS0lLRkJFR0U8QEdDREA6PD9APz4/QkE8QD5BQUZDRUVESUVGRUdGSEhGSEhJS0pGSkhIS0hGRkxJSEhKR0xMTUxMSU1LTk1NT0xQUFFVVldPS1ZWVVNSUVFMT1JSUFZbW11eW1xeX19hYGFkXWNgZWZgZWhqY3NzZmpnZ2tvcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRUZJRklGR0RJSUdJSEpMSEhKSklMSkZKS0hJS0pHS0tNTUpKTU1OTk5QS09QUlRYVk1OVFZUUlJRUExOVFNSV1tdXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW5zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTExMTUdDQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdDSElHSEpGSUxISUpNS05MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltbnNycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdISklJS0hKSk5MT0tJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHREVLRkVKTUxLTExHR01JR0pLSEtLSUtLTkxOTExMSUxMTFtzYmRwXmxtVU1OZnNdZmZxbG50Z3BpX2FZbm5icHBia2pqZm9xdGV0bm9cb3VncE1KcXl2a2Fga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnR0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdCRkNGRUZFRENISEdERUtIR0xOTkxNTEZKTkhKS0pJTEpKSktMTU5OTU1KTU1OW3Jvb25wcGxrTVBRbFdNaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcF1fcmtxalV1eXhvY15rZmJncHBqaW9wcHJzcHFwcXBycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGR0JHRElGRUVCRklISEVITEpHTU1OS01OR0xOSUxLSUpNSUtKSktPUE9OTUxOTkxcaGR1XWxxV2xOUFFtVFlrXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNHREhHTEhFQ0NIS0lIRkpMTEZOTExTUkxHTExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5Zcmtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmltdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFBPkREQkdESElNSUZDRkpMSkdGS05MRU9KS1dSS0dLSkpOSUhKTElLSkhIS01NTU1JS0tLU2tjW2leX2ljcnJaX1lqbl9lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERUNGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElHS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSkpPUFFkcWlUWVdcW1xWWVtdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZFQUVDQERIREZHQ0lLTEhGREdLTElFR0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJR0hJRUZMSUpMT01KUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSS1lhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGFhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CRENCRUlFR0dGS0pLSEVGSUpLRkVISFBLTU1KTVJJR0VBSEZKSUtMSkxKSEZESUZERkdFRkpIQ0pOS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOX1xeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNHSEZIR0hLSkpJREZLS0tFRklKTktOS0hMTkdIRT5HR0xJS0xLS0tJR0RIRENERUFGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFYVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR4eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFR0lGR0hIRkZJR0hHSEtJTERES0tOTUxLSEtKSElGP0dHTktLS01LS0tJRkdDREBEQUhJQj9JSkhPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUVtXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHR0lHRkZJTEpORkRLS01OSkxJS0pISEZCSEhRTUtLT0xKS0lHR0VEP0VDSUlCQkdGRVRdWV5YX1lfW11VWFhPXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYSFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHiIeFg4B8eFxTS0NBSEZER01SSENRSkVHSEhFRktKTVBFRklKS05MTElLTElIR0RIS1FPTU1QTExKS0hJQ0RBRURJR0NCR0ZEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1PWWFcYGBfYmNiXWFiV2BfVFBPT09YUVxbW1xcXl9iZmZlbGVvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUpLTkxMS0xLSUpHRUpOUVFOT09NTkxNSEtBREFDREdFQ0JFR0JNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xQU1JVWllXWVhYZFdPU1RQUE5NT1RTWlhYWl1cYGFkZWNnY2tscHNyeXl/e3p/hISEhYSEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hMR0hKSEdNTFFRSExLS0tOTVVOT0pKS0dHS1BTU05QT05OTk5HS0ZgRURfTEVmZEVOXEleW3JtT01VbVlMRFFgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRkdGSEVFS09TSUpGYFRISU9KSU9NUlFMTUxMT1JVUk9PSUxNR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXJ0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbX1ZWWH9qdHV1Xl92XldhW1tmW19gYWBhXWBhZ21wbGBwd3R4gYGCg4OCf31/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEZJS0VRVkxLTklLUlhXUU5PT01RVE5PUU9LS05HTVBTW1pTUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29ycnt8b354boByX2BgYmFaYF9na25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOS0dgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5LT0hRUlRZV1ZQVFBQUFFLSGd4bGN4cm1bS05WeXB1bXVib3ZQZWVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en5seHp/b2hvWXZ2anZ1cIBfcmZ9aWx4fG9eX19iYVtdYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncXl7c3J2eX6Bc3V6bnx9eXhybk5LU3VOQ0JGUFBISktJS1BPT09NUFpgWldLVFdQYV5SVlFZUkxQSVNUVlhXV09VUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txb21qcGFjZmNvd3hvbXBzeX9ucXBre3p0c29tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xYVU1VWVVlWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9acHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbGB2dWtpdXt6bX54a3xwXF5eYlteYmRkZ2VlZWJaY2Npa2tyc3J2Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ua21PSEtLSEpISFFQTE5PTEtSUlJPU1JXUlZUUFdaVlZUVFRhX1BOTUtUU1RRVlZOTkxNT1BKSFFOUFVMS0xTVFRTVFBWVVFRTlFRWFlSTlBVVFhYWFtbVVJTV1tXWFhaT1NVV1hYUl5ZV15WVFBZUldXV1dYXlpncl5bW1lcXV9jWl9jY2RmZGNjYlpjYmdmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdnanVqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09MTVZUUU5VU05PTUxRUExKUVFLUU1LS1BTVVNRUVNTSUhMTk9RUlFRUVRWUlhXXFdTUlBSVFVWU1pRTlNSV1ZUWVZVWlZUUlVUVFRXWFZcWV5gXVxaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWdqa2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEpOV1NQTlVQTlFOTFNQTU9VU05RTk1OUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXVlZZW1RQVFVYVVVaVVdaVlNSV1ZVV1tYWl9cVVheXF5dW11gYV5bYmJjZ2ZlZGJYX2FiXWBnZGZlYV5fXV1eWlpgWl9nYF5dXWJoa2FnZmhmZGBiY2FPTE1MUVFMT1RPT1NRT1FbWVdXWFtZWFhWXGpkVlhZWldWU1NPSk5WVFBPVFBQUE1NUlJQUlhUUVFPTU9TVk9YUlRVVU9OTVFUVlVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUV1ZWVllUWFhWU1JZV1VaXlldX15VXlxeYFxbX19fX1piYmRoZ2RkYVhhYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xZWltkcW1oZF9bWFZVV1FMTVZTTU5ST1FST0xRU1JVWlVTUFBNUVdXUldTU1NYTU9PUVRYVlVVU1VZWFteXVtbVlFOVVZVW1xXUlRXVldYVlRYW1VUUlpYV1xeWl5fYFVhXGFhXWBiX1xgXWNgY2doZGZgWWNgYV9fZWRfYGJbWlxbXFlaWVhXXFpcW2BeX1teXmFgXmNcWWBaUU5PTlZRUFRRT1RUU1BXXFxcWF5cXldcXmpxd3mAY1xbVVVXUU1PVlNOUVFPUlRSTFJUVFlaV1VPUk9TWFdUU1VSUlpPUFNSVltWV1dUVltYXF1bW11WU01UVVVcXFZSVVZWWFlTVVpcVVNTXVhaXV5cYGBgVmFbY2JdYWReXGJhYl9jZmlkZl5bZGBhYGBjZV9iXllaXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1xUV1dRTlJaU1JRVFJUVVRLUldWW1paU09TUVZWVlRPV1JTWlJUVFRYXVdYWVNYXVheXVlaXVRVTlVWV15bWFJVVVlZWVVXWlxWVFdeWl1dYF1iYl1ZX1tlYV9kZF5eY2NhXmVmaWRmXl1kYWBhYWJkYGJeWFpfW1xbWFhYV1dbWVtgXFtbXFtYWlteVl5ZXVFPT1JaUFpUVVZWU1RUXl5gXl5iXGBVXV5ia3l0bH1rWlVZVFBQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUVdSWVhZX1taVFVWWllaV1haXFdVW15cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU05QVllRXVVWWVdXVVhfX2FhYGNdX1RdX2JlZXWBemhXWVlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSV1NXV1VTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWFRZWlphWVxWV1hbWltZWVpbWVdeX2BfY2JhZGRcYlxgZmFkZmReX2RiYltmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlNZVlNcVFZXWVZWXGBhYmNgY15fVltgZGFfenVvaFlbWVVXVFdbWlpcWlhZYFdQVV5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1pdXlldVVJZV1lZXWJaXlZXW1xbXFxbWlxaWl9fYGBkYmNkZGJkWWFmYmZmZV5hYmBjXmJjaWRjZ19nXmFiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNPVllWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheW1xaVldYWVxcXV9bWVtiVlRYXl1hY1xSVllQV1dXV1dWU1VUWFxcXmBgXWBcV2FeW15bWl5YVVhXW1tfYFxfWFlcXF1eX1xbXVlcYGFeYGVjZGVlZmJYY2VkaGdkXmNgYGVjXGVpZGVpX2ZdY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWVhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZcXV5gYWBfYl5ZYV1dXllcXllYVVdbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZWNlZmVmYlpkZmZpZ2JfY15hZmRaaWhiZmljZV5iYmNhYGBfXVxaWFtZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVZcW1xdWldcXV9gYmRhYmFdYFhiY2JgY2FiXVtcW1hXW1xfXWBfXVtgZF1cWFtiZWNhUlxaT1lYWltbWldaWWBdYGJiYGFjX1xiXV9dW15dWVlUWF1dX2BfYFxbXl5gYmNdXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGNnYFxpaGJoaWVkYGJhY2FfYF9dXVxZXFlYV1hZWFdcWlpXV1hPWFpdYWNmZnJrf0pZV1xaWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5ZWFVbX15dYWFgXltgYWJmY19dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBaZmdeYWhoYmhoZmNgYmBjYl9fX1xdW1pbWVhYWFZaVlxbWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4SCgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7enp6enp6ent7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3p6enp6enp6e3t7e3t7e3t7e3t7e318fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIkMzT0tLS09WehomJiYmJi42MjIyMjol/f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIqU3ebk5OXk56WJjIyMjIyPkI+Pj4+Qi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXl5enhvb29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2DhISEhISEfnx8fHx8fHx9fHx9fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnd6eHp6eX15eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3l5eXl5eXl6e3t6e3t7e3t7e3x8fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2eX18fX16fHt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjYyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fX19fXl8end4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4SEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3dnt8fXx7enx7d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp5en18fXx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4e3h6e3l7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgoGCgoKCgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mFhIOEg4OCgYGBgYKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHl5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veHl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEgoOFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4OBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYGAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoGCgoGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXFxcnN0dHR0dHR0c3N0c3NzdHR0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXFwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm5ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoKBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzc3NycnFxcHBwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycXJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubm5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoCBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXRxcnJxcW9+gm5wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFwh4hwcnFwdJqBbnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF9ooNvcm+Nn3xvcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFycXWeondxd6CcfW9xcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXFxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZipkG+Co51+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4GDeXJzc3JycnNycnNzc3Nyc3Ryk6mke4mhnXxyc3NzcnNzdHR1dXV1dXR1d3h3d3d3d3h4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f4B+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn18dnZ3d3Z1eHp4eHh4eHd4eXmgtKmmqamXfXt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf39/f359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7fHt7iq+kobWqrKN/e3p6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2ZpZaisaCZp5R9gH99fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgZycjaCwoJ+in4CAgYB+fn9/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYGAl5uQmLGhmJWdhX1+fn6Afn5+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJioyOjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+f39/f39/f4B+foCBfn+hq6WWpJubmKKgh39+fn+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgYGBg4OBgYGCg4KEhIePobKnoaCZnZ2mqKypoZqRh4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4aNn62xppuaoJuenJyeoaSjnZSIg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoOKl5mXlpigm52enZqal5CJhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj5CSkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBho6Uk5eanJ2clY+Jh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5OSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDg4iQlI6UmJGHgoKFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgYKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGTkpCOkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgYGCg4GCgoKBgIebiIyHgoOCgYCAgH+BgICAgIB/f4CBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gIGAf4OJjoCBgoODgH9/f4CAgICAgICAgoOCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYmGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDipaIhIKEgoF/f4yVgoKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhoSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChIODgoOBgYSFhIODg4KCg4SEg4SDg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSkpCNjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgZCMg4F/fn18fYycjoCCgYGCgoWUlIyBgoGCg4KCgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYSFhYSDg4SDhIOChpSUkpSSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX17gZiMgIOBgYGAjpSMkIGCgYKCgoGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGVn4p+foB9h4t+hISDhIKDg4KNiYWMgoKDg4OCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf319fYCDhIOCg4SDhIODhISEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaGhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKNioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39/f3+Dg4SLhoSEhISFhYSEhISEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICDj5eGhYaFhYWFhYaHh4aGhYaFhYaHh4eIhoeHhoaGh4eHhoaHh4aGhoWDg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4iIhYaFg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af4GVlpKPiIiHh4aHiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aHhYODhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjImBgIGCgoGBgYGAf4B/f357eoqdp6SYjImLi4iJiYmJiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeHhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSSkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fnx7fZmnpKKYj5WLiIiKiYiJi4qJiYiJiIqKiYuJhoaGhoeFhoiIiIiGhoeEg4OEh4iIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn18gZygnZ2cj4aFhoeHh4eIh4eJh4eGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgYGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoOBfXx9f4B/fn5+fXx9fnx6g5ybnJWEg4KDg4SGhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoKBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYWEhYSFgoGBgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4GEhIODg4KCgH19f4CAgX99fn59fH19e3p5iZubl4WAgYGBgYKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgIGAgYKBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goSEgoOCg4J+fX5/gICBgH59fX19fn18enp7jZqVhYKAf39/f4CAfn2Af3+AgIF/gICBf3+AgYF+fX1/gIF/f35/gIB/gICAgH+AgoCAgoGBg4GBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GBg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foCDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp7j5ORmo9+fn9+fn9+f4B/fn9/gH+AgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp6enmAjIyMi4F/f35/f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f36Af39+f3+AgH5+gH9/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp6enl/hYCAgYGCgICAf3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGAf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WCgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fHx6enl5eXqBgoKChYOBgoOBgIKAgoGBg4ODg4GBgoCBgH+AgYOBhIKAgIGAgYGBgIGAgoJ/gYCBf4CAf4CAgH5/f358fImUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgIGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYSEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl5eXyCg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCAgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGBgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4eHl5eYCCg3+DjISDhISEl5eDg4SBfX6BgYKBgoGCgYSGiIyFg4KCgYSChIOCg4WEhIWDg4SDgoODgoKCgoODgoKRkIuIiIeJh4aGhIaFhISEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHh4eHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl5fIGBfoiVg4ODhISUk4CAgX9/f35+hIuAf4GAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhISCgYKCg4ODg4ODgoGBgYGAf4CAgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6e3x+gYOBgoGDgoB+fX9/e4iRfHyOln99f3+ChoqFg4OEg4KDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYOEg4GBgoKCg4SDg4OBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXl9fX+Af4F/fXt7f359gpWRf4SIfXx+f4KEfHyBgoSDf3+Hg32DgYCCgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4SFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH9+ioJ7ent6eHp7e3x9fH5+f39+fn5+fXyAgYB9ho+Bfn2Cfn9+gIJ8fIB/goCBgH59e4qCfYB/foGAgIGCgIKAgICBgH+LlI+MjI6OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4WEgIaUiICCgYGBgYB/f39/gH5+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX+AgX1/f4B/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX18fXx8fYB/gIB+gH5+gpSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx9fXx7fXx8fHt8fHx6enl7fHt9hYODgIGBfoB/f4B/hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYCAgYGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn9+f4CAf4CAf399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhYOAgIB9fn1+f36MhIGHfn18fH9+goJ/fX19fYF8e318foGEg4GAfn5+fn18fn+AfX6Afn9+hJKNjoyPjYyKhoSFhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOBen5+fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX6AgIODgn9+f3x8fH18fYGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx9gYKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgIKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9e3+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5+f35+f358fH18fH18fn57fHt8fHx8fXx9fH58fXx7e3t8ent8e3x9en1+fn+AgIOHiYmJiomKiYWIko+NiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg319fX19fH19fX19fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uLiYyRkI6KiYaFhIKCgoKDg4ODgYGBgYGBgYGBgYGCgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fn1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt7e3t5enl5eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2BgX+BgYF/f4B/gIF/gICBgoGBhYOEgoGBgoGCgYCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18fn58fX18fX1+fn1+f3x9fXt8fX58fHt8fXp6eXl5eXp7fn6AgYOHhIiPjouKh4WEhISCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKFhYSCgYGCgYKBf4CChIF/foGAfX6Bfn1+f4CAfX6AhIB+fn99fn19ioV9fn99fn6Afnx9fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY6LjIiFhYWEhIKCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICBg4F/gIGEgX5+gH99foB+fX5+gIB/gX9/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fXt7e3x7fHx9fXyKiomJhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgYCAgIOAfn6Af31/gH19fn6AgH+Cf4GAgICAgYB9f39/gICAgICAf358fX19fX5+fYJ9gH6CgH1+gIF/fH5+fX19e31+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19foB/f4GAgYCAgICBgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISEg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn19fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhISDgYCAgH+AgX59fX5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn59f35+hYWBgYF/gIOBf36BgH9+f36Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX+Af3+AfX19fn99fn9/f359fnx9fX6Bf3+Af4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4CDgoOBf3+BgYGCgYGBgYCBgICAgICBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH2Afn+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhIOBg4KBg4F/gIF+foB+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fX59fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWFgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p9eXt5eH9+e3x8fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN3dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398f4B/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB+fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1+gICAf39/f3yAf3+BgIGAgH98gH9+f35/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e3+FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYCAf32Afn5/f39+fX1+gIGBgH5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKAgICAfX5+f4B9fH58f4CBgICAgIB8f3+Afn+BgH9/fYF/fn9/fn19fH+AgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn19e3t8fHl3e3l3eHd3eHt7e3t8hYl9e3p3enx9fXx8fX19f358fX5+fX19fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgoCAgIB+f35/f318fn6AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+fn18fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgIGBgH+Af39/fX1/foCAgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/foCAf39/f4B/gICAgIB/gYGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh6gYF4eXx8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fX17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fH19fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+Af4CAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBgICAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fXh4dXh4eXt8fH17fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgIGCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf4CAf4CHfn58e318e31/eHd2eXl6e318fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgIaDg4SBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGAgYGAgH+BgYGBgYOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f317fX97enZ6eHl7e3x9fXt8fX19fX5/gIGAgIB/gICAg4OAfH9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCgoKDhIKDhIOAgYODhoODg4KChIGEg4GDgICCgYOBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOBf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0dnuEgoOCg4OEgoSDg4GCgoSFhIKDg4OEgYSDgIOAgYOCgoKCgoGCgH+BgICCgYKBgoKCgYCBgYGCgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhICChIKDgoKBgoKDgYOEg4SDhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX+AgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgYKDhYWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4SDgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKAgYB7fYF+fHl8enp6fXx8gX16fHx9fXx6e35+foB/f4GBgICAgICCgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSBgoSGhISDgoOEhIGDhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKAgoKDg4KCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX5+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOCgoGBg4J/goOEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fn1+fn5+fn9/gHx9gIGCgoODhYOEg4aEgYKIhoWEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4OBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+f35/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKEhYuJhISEhIWFgoeGhoSEhISFhIWEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYB9gXWBeoR/f39+hYSCg4OCgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn9+foGDgX17f31+gH59fHx8fX19fXx9fX6Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+f35/goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYSGiIaGhYKGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cHuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fX9+fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydWaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIWFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WEhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foN0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39/en59fH99f39+fYCBg4OAgoOBgYSCgX+BgoB9f3+Bfn9+fX6BgH5+gYKAgIKEh4aDg4aEhISFh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhYSGhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3B5fX1tfXVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fXx/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYWFhYaJioeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGEg4SDhYOFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WDhISDgoF+f357fHt+fHx8fX9/fX1/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiYaEhoWHhYWFg4SFhoWEhoaHhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIWFh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4SEhISGhIaFhIWFg4aGhYWFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH19f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYODhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoeFhISFhYOEh4aDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIiYiFhoiFhoeGh4aHhoeFiIiHh4WGhoeFhoaFgoSEhYaFhYSEhIOEhYWGhoaFhoSGhYaGhYWGh4WEg4SEg4SHg4SBgoSFg4GAgIB7e35+fHx8fn18fHx9fnx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoaHhoeFh4aIiIeHhYeHh4aGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9fn58fHx+fXx9fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoeGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4eIhoaIhIOEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH57e3t6e3x8fHt7e357fH17ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhYSFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeIiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaEg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4SCf35+f35+fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYWFhISDhIKAg4GGgoGCf3qEjHuAhIWHhoaGhISHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIiHh4aHiIaEhoaGh4WFiIOEhYSGhoaHhYWEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIOCgn2BgX9+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iIhoWIh4iHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SFhoaFhYaCg4OFgICBgICDgIOAfIGAfn6CgH2Af4F9gHx9fn1+e359fHt5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIOEhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFhoeGiIiGhYiHiYeGhYWFg4aEhYeDg4aEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B8gH99foJ+foB+gH9/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhoSEhoSHhoaFhYWDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfn1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6enp7e3x6e3t7fH1+fX2AfX18fH2Af318hoOGhoWGhoOEg4WChYGBgH9/gIB+f4GBfH5/f36AgIKCgoSEg4KBgoSBgIOCgYCDhYSCgX+AgoOChIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGhoaGhYOEhIOEhYWFg4SDg4SChISAf4KCf31+fn5+f4R+e398fICBfYGAfX6DfH5+fX1+e357e3p5enp5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9+fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGChoWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYF+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1/fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH5+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgIGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fH59fH6DfXt+fH2Af4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PD45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT0zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWy8vLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw7OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OR6jZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1svL0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fY2djY2NjY2NjY2dnZ2dvc3Nzc3Nzc3dzb29vb29ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTUaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbLzJWFhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi3qaenp6enp6enp6enp6mXgIKCgoKCgoKBgYGBgYOLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOU2JMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXy8xuUFNTU1NTVFRUVFRUTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OjoIeEhISEhISEhISEhISIZ0BERERERERDQ0NERENGU1NTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUJAOTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18vMcVVYV1dXWFhYWFhYWFGh8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpaKKhoeHh4eHh4eHh4eHimpGSUlJSUlJSUhISEhHSldXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDs+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fMzXheYWBgYGBhYWFhYWFapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamnkI6Ojo6OjY2NjY2NjZBzUVRUVFRUVFRUVFRVVFZgYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk6Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzMzHxcXFxcXFxcXFxcXFxcrQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs7PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tDQ0NDQz8/Pz8/Pz8/PzcrKysrKysrLy8rLy8vLzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo7ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M3Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7OztHUz8/O0tLPzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dbX19fX19fX19fX19jY19jY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztO7nc/P0qee0M/RpaLQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK1lZuz1rOeo6bWsKCiqtLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/Rn6CqrtCdmpOdwJ6YlpzHz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4+PDw5Nj9CP0I6NjQ4Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0cWHmrTAmKGctJicop6vsdLPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9COjc0Ojo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Wp5m1tpmWrbmGnpaws6nU0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PDk2NDo5ODo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8qgo7/KnKWMp63Yqpmq1M/Pz8/P1aWZtq2YgaCWeJuEnpOj1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD45PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0Nalmbaum6iInHmfqYWZpdXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NDVpZq2t7WvppyKva2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njk5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPQ1qaatMajl5edpaeWmJq61dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HH0telm7HYn6ukm9Cfq6Sb0NLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtLQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09HUtYLD1cWQjbfXwo+Nu9TR0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVaWpbTF9NSkxKVUxGQjw8P0ZFR0tJPTY2Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dHD1NHUx8PV0dXFxNXR0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRExMQT03NzU6ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS1NLS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj09Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZJRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0FMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhRQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29ra2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg2NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7Oz4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7e3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OztAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpaenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJ2dnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAP0JCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc1Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5KUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6afm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6Wmpqako6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODk6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/PkFBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+mpp/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ+hn5eRkZCUl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaampaWjoKChoaCZkpCPlpuZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaCgn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5WTlZmcmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqKjpKSkpKKhoZ6bmpmWprmfmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKOmoaKhoqGgnpybm5uZo6aRnJucmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaCmsa6goJ+fnpyZmZqana1heZ2dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJuam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goKCfppKVrZ+goJ6bmpmamat7Q4Gfnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp+hYZaonp6cmpqbm6SfTUmEoJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZuZp2xaoKCbmpqbnZyvbktMhqGcnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmKWEVHSimpmanZuhoWBYToehnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGgoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFxcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuYmJmgi11gkZqZm52co45lWkyAop6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbW0xGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiZnpleX3OVmpydnaGAZVpNf6Ken56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZibYWJgfJSenJ6Wc2NVT4Ghnp+fnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmYoGpcWmF7m5yeiWleUFSInpuenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qalpJ4c2tYfJWYnopbVFBZi5KOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY6Vn5+SgKSnmaaaeVVPZIeHgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CFpJmLemKOo5KYc4WFaHV/gIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2OTM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+hKKHdmpQcZuNildueXt/fnyFjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfZmYck5HSXOSg4BKXG5vdomFio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY+jiEwzMjt5hHVyPz1Wam2BkImJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6Knm19FZE49eXdnZEg1NlRucY+Pi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mproxLgraGQHt7aGNSX3FRW2+KoaGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKJ0aMXSqEmAlYx9T2yKe1pggKOop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkp6eZnaSlo6KeYoK4v6qFr6OanXdHV4FyUnOUoqKgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioaKnoaaupqacnm+ClLOIttamnLixYlC0o1ZkkKGeoKCenaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq+ro6OJd391eNO7qZOeqGxVoapoX4enoKWioZ2fopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7e1tLayrLCtkIh/bJjHxJecqpJ2WmlzdXV/kqWpp6Sgn6ObnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gqrK3u7y8urrCubSznYR0XlGdsK+kopGEd25zcXd4eXyCiY6UmaClp6ympZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW4w8nQ1NHMx7yvoYxtY1JDg41+foB5dW9tZGRpZ2pxcnFxcXJ5ianHx7yip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PEx9vk49fHua2ilIRvV1hQRGFyZ2tya2hjZVhXXFdbYGhpZ2RgbJK6wL+5qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxr7Lz9TLuaWYj4JuWlBUSkNcZl1haGRhYWlcVFhVV1hZW1hffaG4uau0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudXJydXJnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS+w8HHy8m6l3RfUk5PUkc9XmxgX2VjYV5kY1RVV1ZUVV1/p66vqqirrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO5t8SjakxDRUpEPVlhYWRsZGFcZV9ZU1BQVWGLt7msrqWko6ekoKClmam0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnZSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent3bmtpaHZaZ3J4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTExMLEwbOQVkhNRjtJWF9obWhfXF9ZWlRQXY2qrLi1sqypo6GtqaynrZ+stLS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dWVmampoXmtvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCyKN3YEg/P0FeXVxrZFtYVlJdiKi6vrq8urysraapu7q5t7+ztbiywca6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWh2aGpqdG55bF5kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxsbHwrWBXVQvVVldbF9RTVeEucrHwsTGwLy+tLCwsMK+vsHGwL63tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOi5R9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ9eHBnYGtqd21pZnZvdGNdY1VXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwcLCxcacTlKAiZVVVIO1ztLFtr+/wL+6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5gHNwZmVnZGxlYmtub29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvrzFp3x0gJGUdbzOx8fQwK+9vbi5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFlYmFjZGRqY2djW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8yc/Aur/AvLvFvbrAxL+9vrFzYYCRiYrPxL/Ayb6wwb+6t7u+ubW4tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNnamdnamZqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdSMuL+7w7W6x7a1uLq8uLm2s7aejXSEyb+/u8G+uca9wr+8xbi2t7S4tra7u7i2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVmcGplbGhZWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/DdqjMvce3ubettrS3ubO1sbvGx5ZCfMq+v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucWdxa3RmY25gXFVIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrXOAu8jPwsC4rrS0u723ubC9w8iMRnbNw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGpudW94Y2hjXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsbJ0Zhwc6zR0czKxLW6v8TIvr60v8C/d1Nvy8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0cG1sdGxsbl9jX2JiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKycGGcXOlzMzLzcrGwsPLzsG8uL26sG9kY7vIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWNbX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9rDvra+wL6+uqacqbK2w7+leHV4m8TGy8jBw8DAycrBv7u5saB+c2ytyMXEv8DBv8vHw8DIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO1uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3h0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEt22tzr22ucC8rH1uaG5tcoGVmHJ3fJe9v8bAucC8vsXEvb24sbCZj36CnMrCw7y9v7/Dw7+/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsbess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cG9qXGBhWlNRQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbJ1gbO9trXCpYdpWl5gTVJbWm5zdoGfuLjCurO7t7u9v7q7u6+kmpeIkn7AxMO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra8tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d25yYV9mXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmnhHiKoK+1nWplZ1ZZYElJTVBTbHaGpbC3vrmytbK7uby2ub60lZyml6FyrsnEwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fqoh8dYygmGBUQ1hVR2FqVk9FSmCNoKyvtrq1tLKsvLm4tbjBvYqXsKGmc6XLwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtsSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZzbmNeZ1ldXlNPTkE/SkNBS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4vrSQgniIj29OSj9kWUJOd4CUak5AXIGvtbO1srSvrLu6uLa5v8V1gamdmmSnv7i1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ3c211amxdXGtUXlxQTkhER01CR05HODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHtYRkFOh1lKSlh3jYFjQFOjubO0srCxrbC5uLa7t7q8j6Gxq6Rzq7Cpq62ro6ignZ6el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWh1dG9lVWFkV11ST01JQElSRE5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKqZmZVoTkBSeHBQSUlLZ5yAWURSrruxrLOvrqyttraytLWuqKaempudn6aonqCoqZ+hp5aalpeOnZOOkJaNl5ukqKCgoqKhpaWco6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqaSpq6aprKumoYh4g3x2f3pjd21uXVFpVVBPR1BNTUNQUkA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3Cq6W9aEVSnYJRV0lKYEpUjWBjYoGutaqytK6qq6+wsrOtpZ2Rl5OPl6CfoqCco6SfnqiUmpWWi5aRjY+Xkpidoqqfn5+go6WonJ+goZyhn6Oop5ynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJaTj4+SkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fIB1dn1ua3tkaVZSZE5JSEdPU05LTkg8RUA9MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutra6ubq3t7uuqKChqaCqxr/LoFBBc513UG5LS2NmdHNfWl5wkLGvrrO1qqasrKObmZSNkZWXmJicn6KinJ2knpqklpeXlY+RkZGSmpeboKSqnqGhnqanq6KfoKefnZ+jpqieo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpquqoJuYmJiVk5aak5WWmpabl5iYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJfIB+d3l8ZXl6YGJTVmFISUtLU1RKU1FNOT9BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMfHjldTSmWjWmV+b3JcUWtjW2RfXGqPtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXopiZl5eYlJmYlp2bn6WlqaCmpJ6nrq6qpqKxo5qjpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuVlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbGZbU1taTVFLT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6rpIx5VWlydnVwY3Z2WFdjYGNnWFdWZ62urK+nn56ioJaQk5ugnJmXkpOfnKGjmp6blp6anpeaop2koJ6jnqSorK2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7W4s7itsrSkoJ2loKyhoaKhoJqZlpafm5uYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dmp4dV5tW1JhSVJWSEZWV0pDTUg9S0k4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqK6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuioaCjgG6CcGBjWExbU1pNTFBYUkdMTEeYrKqppaCfmpKRlJiYlpaWjIiLjpSdnJ2cnpadmaafoKelsKmmraKqrbawtbKwrba4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm3vK+zsLXBvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21oblxYXENXTkpHTUhDRk49Pkw+NDw6Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqamUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnYphV15lYFdNUUc+Pj9DQz8+QlF4qa2pqqagnp+io52enpqdm5STlZSenpiUhZ6doJmro6uxr7mxsbCxsLq9vLy5trjDvr/Cv7a6u8DDub27rK6nsa2xwra4wsbAyMrAyb+wubm9uMK+uLS7xsS9w7y4tKqzraqztK+zrqquo56sqLayraOwpqGjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhFSlBJP0VCNEZIOTY8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5V8X15lYFFHRDxDPkU8Pzk2Tn6qs6eko6KgnqWspp6XnJSRmp6ZlYyKhoiGeGyKpaKiq6uyvLbDvb6yu8HDwsW/v8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxszMzNLHvr/Aw77HxsK4xMrJxMHHv7q0uru1u7ewtrKru7KvvLe/u7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5WUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtlWlxGTE1FRFRNRUJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEA/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9c2phV05FPklZfG9iQj1cjq6soJmbnJ6emZeXmJKNj5eXlI+NkIyCg4J2cnBtcIelrK20uMS6zcfLvsLMzc3Mx8jQzMzMx8rFxczQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsfGysjPwMnRzcfGyMbCvMPBv7+/tb6zrb/Aw8PHxcfEr7+5sri9xMLCury8ta6np66ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXVzZWJncm9nXlpaRE9NQ0VQSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6Oz5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOem52Wa2ZdVElEQD9Lhp6lmoSgsq2jnpyfmpiXlJOUl5GQj4yHhISIhoOAgYGAeXFyb2t4ora7ubzKwdPS0sjNztHT0dHQ0NHRzc3O0MTN1NXY0dfNxsfJzMPFys/K0tfS19LV1tPUyMzHzM3J083O083GycrKwsbMx8nJxr/Ds7PIxcvLy8/Hyr++v73Bx8XMzMnJwMPArrCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZVZYUkROR0BJUUM+Qj06MjJBPEU8Nzg8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnGNUTEpEQz9DUq7RvbKvppycnKCkoZ2alJSVlIp9eHFrZWJocnBye4WKgHVwbXFyb4ScrbzH0dHX1tXR1s3U1tbT09HS1NTSz9HD0NPW2NXV0svJztDLxs3SytLV19nW2NPW2M3Sys/RzM/RzdPQwMnIy8TMzczPz8bHyLbAy8DSzczQx8rIwMTDyM/N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYWVyY11SXEpLR0FGSUo/O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpaWgoqJbSUBBREFGUXayr6aalJefnJqgoJ6bnJqViXdpY2FfX19fXl9fXWFsdXNwcG5scG91gHeYuNXX1tfW09fP1dTZ1NTOz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ19fY0tjS19nV1szPz8nN0szO0cDHxMnHz87S0dLIzM3Ay83G1M/MzsnFy8fHyczL1NTR1c/SzNPCucWxpai1rqibqKulnbKosLOsrJOPk46Iio6Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUWBKSkNFQ1NNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6up6qooaOsZkM4PT5EWIKqqJ+XlZeZmpyfnZibnJN9cWVjYl9fYV9eYWBeYWBfYGVtcHBta25wdHl2aXypzdTY2NjRxdPS18/TzsvSzdXU0crPzNPW0tHWzc/V1dHF0dPK0NTV1s7T0djY2NfLyM7Eyc/NyszAycHJys7O0MzQzs7Mz8/IzNDRy87Lw8nHys3LzNLTztPS0dDQyr3IubCuu7m1q7awrai4rbO/u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSUZGRE1ZRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD85ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksntIRkI7V42hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYF5fX15cYm1xbm5ycnR1enFibZ7H1dTQpMrPztPKzc7EzcrS0s7GzszN1MvO0s3K1tbQzNHUy8zQ0dPKztHV0tXWysDKwcbNw8jKw83ExsnLy8/Lzs3QztTMxsnQzcnHy8bHwsbKzM7R0cfQz87OzNDFx8G4ub3Dwr3DubKyvrC7w8S1qpiloZiWkZWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTElRUUI7RD87Njg6ODo7NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9wd4+ajYyXlZCTkZGVlpWQi3xlYmJiYF1eYWNiYF9fYGFhYF9dW11ncXFwcXJva3F5dGVun8/Nm5fWycPIyMXGvsLFzs7HxcbNytHIy83NxdDSz83M1MrHys7Px8fP0svQz8W6xL/Gyr3Dx8nOxcPIwMfOyMTNyszQyMXF0MnGwsbJxb/ByM3MzM/DyszJx8zQxcXIu8fDycnCz8G9vL+wwcnHub2qsbKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdJSEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KFoqqTjY2Wj4WDg4OBfYSEfnNfW15dXmBeYGNkY19dXF5fYGBfW1pcYWtycG5uaWptbnpnVYDAonm7z8O4v8K6urq4vcjFwcPAw8fKyMjJx8DFy8bIys3JxMHKycHBy8/Ey8i/ucG8xsi+wMbPy8TAw7vKx8i7ycbFysG+wsvGxcS+xr69wcTGzMbGvL/Kw8XH0sXBycDKysbIxtDDw8bDrsTLx8PKt7+8urOprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdCR0RMREZSQDU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL64vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bF55fJ+RipKWhnqAhIV/dXh1cnBfWltdYGBiY2RkZWRgW1xeXV5eYFtZWlxibnFuamhpbm1zeVZqlHurw8XArrW4sLGysLDBu7u7ubjAwcHEvr25vb+5xMnFxsK9xsC3u8PIv8HJu7a7u8XDv7zCzsPGvr61wb7Eu73HvMO6tb3GxMLDt8C2tr+/vM3Evba6yLu/vszEwsbDxsnHycbQxsLMyLLHycPOzMDFw7+8srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRUJGSkE5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1q7e0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys/FycXHwbrFvayupmBjdoGSi4iLhHh/hoZ/fYN7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXWdycGxmZWxtb3t4XmaSx7m/t6yvrqWorKqlt7O1s7KztLu1vbG3sLWusrvCu8HEvL+6tLK6vsC4yLi0vLbAwr24vcfBw7u1r7O1u7+0xbi7tay5vb7AvbG7trC3urPGvbevvL+1t7XFvb7DxsDExsbHy8W/xsa7x8u/z8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpHQkRBRUY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJlbZ2+IjoaIiXp4foWGdneBfHNoXV1dXV9gX2BkYV5jZWNfXlxbXlxdXlpbW1xfa29tZ2Voa2xvfm1ouri2s66oq6WcoKelnKmqsaypq6mzrbWwsqitpqyzu7q2w7m6ubCqtLm7s8K5r8Cxvby7tbvHucO3raqosLLAtri9sLGosrO1u7yrrranrrauvLKxqriwrruuu7i7wMG+usO/xsPFwLzGwcfKuMXHxb/Hw8O5xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMTE1KRUFDP0ZBOjo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTPx83Bwsa/xMTDw8rCycq/wLzCurO1tcOuqrCSW2l+koiOj3t4fYmFeXuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWlpaXGRtbmZlZmdpa3B6ibevtKyjoqSkmJ6inpiao6mso6ehq6msq7Cjpp+qrbS2sb24r7evqK24tLO8t7O9sLi5tbK8wbLAr6Wpo6uxs7OovaqrqKusrrW0pqmuoaWvqbOmqKiupqi3rLGzt7q6u7K8vr++xL+1wcDHyLe/v8W3xcPAu7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlNTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8LLvrvJtr3DvrrKt8HEwbS2vLaxr7W8ramrkmNtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1hXWVxfZmtlY2VkZmhscYKlpKqimpmeoZGaopiVj5+gp6Kin6Wlp6Wtn5ybpKassrC2t6ewrKiqtKuzubC2tq62urOwurqxtqSgpKCmsaisqbmqpaenqKezraCnp5+cpKasn5+npKGhsa2trLK1s7Owtby2u8HAsru+w8GxubnCs8C9wLW4vL2+vMLHxMPEv8DEoIR5cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbq9tqCelZ2gprq2q7Ozu7PEz8nLwsW4t8fAzL+4yre7xbizxbizv8CstryyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBeXFtcXFhZWFhYVlhbXV5kYmFkZWVkaGpshpynpaKWl52TmJ+Vk4mbn6Clm56fo6Wip52aopufqq+tsbWkqKqprKyktList7Css7Wvs7WvsKqfnp+korKlpqq4raKmpqCorauZn6CemZ2fpZqZo5ycnrCprKiqq6ytsLK5r7i5urC2vLu6q7OyubO9tLeysba1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTYzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uce4uL+3ssK0sbu7rLm6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dXWFdaXWFjY2RkZWZnaXGJkIKTq5eWk5edkpONmZ+fpp2bnKSmoaSbn6GbmK6tra6yoKSiraunobWwsbKsqbCzqLqzp7ahop+co6Gto6Kqtquio6adpqajlpmdl5manZ+al52cnZytoayoo6Smrauzs6q1sLKrsrm0r6qvsrKzt7Ouqa2usriwura6vb+3s7GUhnp1Zl9mX1tZVlNaVUtbUUxKRUhLSUM9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+ynaWjmKWxw7W2va20uMHMyMa/xbbBwMfOtsDDvbO5ubK/trG5u62yta+fmqOqoZSaj3h/g4R/eG9xdHFoZWRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXVlZYV1hXVVdhY2RiYmNjY2Zpc3NHTX2QkJKTmpOWkZSdm5+blqCgqKOenqicm5qrp66wqpyjo7epoaCuqLWqp6eusaS4sKS3oKOcmZmqpqGarbmwo6GknKOgoJOVoZSWlpyZmJaXnJWfqZ6qpKKdo6qqsa2otKyqp62zsKWrrrOxr7Cvr6eoqLKusrSwvLS6uK6jlIJ6dmVfYVdZWFNSVEtNXkxQTEdITEtFPUA+PUI8Ojc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0usKxvre9rZ2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJqhqZWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1ZVWmJiYWFiYGFjZGtyZWduiI6Pj5aUmJKSmJ2anZWfnqalo6ann52fpqCqr6afoaO2p6GhoqmzoqWopbCmsa6rtZ+hnZaVqaGilK2xsZ+io52emJyTjKCUkZOYmJKXmJiXnqebp6GimqSlpaukpbCnpaOrrK2mqK6vr6uoqqqzpqarr7Sxrry2sa+vn5J7eHNlYlxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sba9sLuxt6yepaasuLu8wcW6srm1xMnJwMLGxce2xcSzwb/Fq7e3vba9uru1sqytqJmZn6OLinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVlJUUlRfX15fYF1fX2FjaYGPhYWLiY+NjpeQkZOhl56Vm56koaylpKSjo6Kcqqukmp6lsaqhoZ6lqp6oop+trKqprq2ioqKVmKKanJCrqbCbn6Kfn5eZk4qdkY2SlJaQmJiTnKGjnKSgopWgoqSlm6OrpaKkqqSrraWusqmmpaamtKaqqK2ztbS5uq+qrJ6Mc3FwYFtXVlZSR1FPSFpcT1JKVEtTTEVHSUM4Ozs9PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Gtnainr7m5s8DIurXAr8XIzLrByczItcm8sb7Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU05QWV1bXF1dXV5eYWNsiIp+i4GKi4mUj5CPmZmhmpqfp6iqqKunqaajmaWvpJWZpa+poJyZm6CfrpmcqrOfpqafo6OhlJSblpaSqamtm5yfoaGblJCMmI2MkY2SjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq7Ckrrilo6SjrK2qqKuvtLeyvbWzq66YhXV0aVtYWVNVUkZYTFFbWE1VT1BMUVJJT0lCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7euqKivrpupqKy3tqy8yru2v6zMxsW4wM7Px7PEu7e7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FZWVlZXFxcXV5fZHqGfIR5houFjYmTjZSXn56Znqqopq6sqbCkqJqfrKCVlaSop52YkI+anq6WmKeqmJ+dlKWgnpKRkpGTlaiqpZqYmZ6el46Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6Wlp6mooLCwprG9p5+jrLSrrqevtLC5tcCxrrCrkX5ydGNWVFVOUUpHVlBSUkxMWE5LTU9SR05LQUNGREM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxt7i8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5xam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRRTU5NUldYWVhZWFtbXGBpenR5b4KHgouFk4eRkZWYl5ynmp+qpqarnaeZoKWbko+fo5qXl4aFkpukj5WinJaWlYeimpuTjI6KkJqlp5yVlZeckZOIlI6LgYyNgJCLkpKSoZqgopaUmZiVoqaajZmkp6mnoaC0sqizuKGdo7esqq6ksrKmtbu1q6yxoop6c25eTlFRTU9ETk5OUEtGTk5KSk5OUUlNSkFITElIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKqloKmmpLOqorLDtbWys8bFt7rDyszGs626vbS4wK+uqbCepq67r62gmpuelZWIfIRuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWV1hYV1pdYWxscGp+gn2DfI2Bi4eSjpGcoI6ZnKOho5ikl6GclY2HmZqMc42Dfo6XloaSmpCUjo17mY+djIKJgIqYoKOekJOYloWOgpR+fnSKjnqQiJOQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmKa4pqWwobGunLG8qqmvqZmEeHRkVk1SUFBNQ1NOTFBNQlBRSElOU01ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY2Ojg3QTd4t6GjtKimpaijpaWmpqayp6a0wbivtLDJxLi5wM7GvrOsusGsrcStqKKmkp2mt62joJGWl5KQfnh/ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpHTlNTU1RVVFZYWl1pZmtneX93cExWb42AlISLmpaJkpCemJ2VlJaUj5aKgJSJXztWb3yMlIqAjJKMj4aGcouEloF5gXuGlJ2Vg5aOkI+Dhn2TeHFwho19iYGQjpCXmpmTi5CKnYifmIeIlp6aoaCXp66prampnpats6KmrZmtq5iotKOpraKTf3RuYFtOU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebegoq2hpqaqoKapp6OqsKintMG5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpmHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtIRkhOUVFNT1JUVVhZYGpoYnV8b01APn6VkI57hpOLg4mMmo2WlImSh4WVhnmJf2BKUW54i5KEfoSMi4R/f21+f5N3dXZ4hI2acFGNiIqGfH55lHZnd4aIfoqIlYuOkZOXjISKiJSFm42ChZKblp6dlKSiqKmlpJ6bsKqhpKSRpqqWoqqcoaaninduZl5cSFFRU01JVU1TSUxLT0lIRkpOTE1US1FRT0ZKRD03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2m6KmnZ+hrqGnqKWnqK+sqra8tri3s8G7tqe5yLi2qKi1tqqyvKeelY5/iZSplpWLf46Dgn54cW9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlOUVNUVVpugW5weGVlWVKOiJOGcn2Ff3uEi5OBkpmLj3uGj4B1f3hzb3VwdI6OgXp+iquFentodnuOcHJteIGLjZJ4e4B7gHdzcpJ4aHWFhISFfJWKiIqNi4B/hIuNgJSEfIGPmJSclpGfnameoKGdoKmln52Yjaejk6Cflp6fpIFzaWJdXUpXUFJIS1hST0pNTFJKSkpMUEhMUU1SVE1GSUI9Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6RfneGd3x3cG9qWUtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE5RUVNWXnWBeXRic4qUl42NemV4f3V3foiQfIOYkoBxho97dntva36tfHSQi396hpKAfH90ZnV8hmxvaHN8io2HgG15cX1xbXaPcWhxgX6OcESLhYKDhX93d3qMhn2Me3V9jpKPmIuSmpujlpmdm52eoZyWjYulmo6dl46WmJB4b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUk9JT1BMRkQ9Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rqKmxr7GrvLiru764s6ynm7CnrJuPlpylqaShmJmOhJJ5iY+Li3ZxfG11cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFellKTk9RVFhdZnBwaYWlqcB9cndhendteneHj3l7i4VvbIySeHN4aWqAgnGWkYyBfZV/SZKZbmd3foJtamRseYWQkoZrcmx8bnJ8hmltcH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6LipODlpeYmpCTlpaZl52WjIOJn5KLko2GkJeAcGpvb29ZVlhUUlJZT1JVVFJYVU1OSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYm5+krK+iraqota+urLS/q7zDv6WimZWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ1b3RscGxlbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JWWlFZW1+mhmGYZnB3Y3xubH55ioh1gYeFdGyZkXRzfGlqnY5MeYWTiYSOZjF2h3JrfX2DdGZldX+EhIWAZmlsdWtwgHxocXF8bpONj3t0fn1xcW91bYJ/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW05QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo+VmYuOhXqEkJiVjZCMkIdxh4J0iIyGenBzcW9wZHBnX1RGSUM+PDs5Oj9AQURDRUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUxCSVFJYq6ynnB5dWp7a3CCgISAeoSFhXlyoJR0eIBzdJSHNXCdqJ2PoaGEooV2cIZ7hnx0jK6NiYFoZ2JqbnJtcIN1aW9YdXCOm5F2bX97fW5ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2OfHNycW1gXF1eXFpZYV9STltaWFdMSEpGSUc/Q0FCSD9DRD07Ojc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpGBkoiVkZ2kp56vlaW0qa6wrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt1eHhsd253Y2peSVBHPT83NDQ5Ozo7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw4RE5SU0RKhHN+enp0fWt1hod7fISDfot9daGZeX6FgISZhJqcYYaqn52Kg5COeneIfomIjnOLl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVnaGBbXF5TXGdeV1FUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2eppGgqqCxqK/AsrvFupaOkZOHeoZ2a3+LkYN9ioOOjHiDgHOghIp9fYF/cIF+emh2a1JYTEBFMjExMzc2Njg4Ojw+QUVHRkdKS01PUVJTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9RTEtUXFhSS2eBh3qIeHpwe46KeXuIhn6Wh3ahmYeGjpKUpY2sqUiGrrCui4GAlIuCi4KEkqmHgJiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZIbIB3cnl2aG1rX3Z9g4h/h4WLeZScm4mLiJF/enWKdnx4bW93foF1dXNtXF5eXGNkWGdmXFVQUFdZUERMS0ZPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2Nzc4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5COlZeSlqCdrKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzg0Ll2WcHOjVUZJS01NUFdgWG9ZW11oi5GFk3+CgIOQkX2FiJCAmZSBoKGYlJuapq2Tmbuxp7vHw6iLjKGljpOJgZF8cYOen5Gdf3eFhYuQh5BpaHCEgXSMh4SKcoaCd4iAe3aEfG11dWZ/lI6GiIiHiIegqqKWiY6Xf3qBiHp5b2dreH58gHVsZV5bW15qXmJnYFpPTE5YUlFJUEpETkdDSkRDQUREQjw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneCen+Mf4GQjoqam6Sdoaymqq6wl5GRhKGUhHh3f4yUfH6ShpKVf4qAkpuOg4CBjIqCiY2Df4p/bHBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlRSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISUxMS05WYGN/ZmZsdJqYjZiRkYmMjZiHko+di6CfkaOqpaOrk6m2oqjBwq3Hr3i6lJp8jaGemYSThYKOoZ+UmZGFioWPmZGWbHB1ioyClYyNjnePhHFthYGKlpGChYhxiKCWhpGJjY+WpLSom4yUooOHkoN9f2tqanyBgoN1Y19lYFtobF5sbF5XS0hOUlFNTExGSVBDRE5GQkNFRkM9Ojk2PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYaQh4SJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDc1Mjw/UjVISEhMTE1OUl5uintygHydmpqlpKCYn5ahlJyep52oqp+orKmqtZerv6u2x8i3yNDPvpugcGmrqZ+Ek5KFnKCam5mmkpGIlaKbm3h6fpSYk6KSl5eBlJ57d5WSqrKIjJeffJSdm42RlZijoaW1r5yQmKeHlo+NgIhsc3N9gX5zamFeYmBiaGRgaGdcUkVKS1BPSUlMRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjox8ioaPkI6BgoCJi4qFkoWDhomBgId3XmJQNDYwLTEvLC4wLy4vLi4wMDE1PkFBTVFSU1FSU1VSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUpOT1FZbYWPdpSJoKSnsry3o62rq6aos6uvtbGxrbuxs72bssOrusnLt8O/uKWisLOsraqji5aYhKWmoKOXgaaZjaKrqKWIhZSkoaCroaSoj5yxi5Wjpre6m6Cir5KhnaKdj6Ohq66rsrShlKSpiJmIkomVeXp+hoBpYmldZmNfZWReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2luWHqEdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4SBi4WGiJKGgoWJh4iHh3FuYUBFNjQ8Mi8xMTAtLCstMC4tND9DQU1VUFJTVVVWVU5bUEdHRDw+PkZIQ0VBNzs8NUM7PUZLSUdIUU9QV4CSn4OsorGpsL/GwqmyxbWrsr+yt721v7TBtru6o7jFqLXIx7W9ubSoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqiutruyuqywtaKxrLG1u7a0rrSfpqejp5qpr6yxuLe4ppq1qIykjpCSn4Z4gYV3W2NlV2djYmRhYWdgW1RKRERMVVFISUpESUdFQUBAS0RCTUc9ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiYld5dXCBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeEgY5/gYmPhn+GiIaKh5B6eG5dVkBFTjw2OjQ1QUI3NjQvLzZDSEJRW09RVVdVXFdQX1VJS0pBPz5HS0ZGRDs+QDdENz9CSkpFRlZUUF6Oo6yisbPBtLbAy8i1u8S9srO/trfBtL+wt3Sxs6a6xKSwxrmwsrG0qKS1tqqxoKKXm6KSpbCupq2rp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwbe6t762ure5rKuwpbCprb2wvLrBwauYuaeUrY6Xl6mIfoN+bFhkYllsZmtmWFxjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpvfo6DgI6EbnpzeIdiuaGZo4mUlJaSlJONj5aRh4Z7hoGNlYqAhIGKenyKh4Z9ioKBi4OVfXd6dWVQXGRHRUs7UWNhW15TRj87SFBFWmNRUllYWmdZVGBfTFNQRUE/SUpIRUVBQEQ8RTZCPkhHSkxTWVRdk663tLm3yL64vMnMurvAu7e1u7q2vbO5scVgdbGksZqeqr2ppairqqSisrWgq6iflZafmaCupaempZ+jk6OnsbSosrO9tsG+08nJ08bDxczCysPAvr2+u7y3tK+4t7bDucW9wsevnripoauNpKe1iIGBc2FjY19ZY2BqZ1NYYFZSVUlFRU5LQD5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaKfoN/gnh7ioOHe4t5gYqCl350fXprZnB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFRZVUpEQktLSUZISEhIQkk6RD9IS1NUVVxaW5O4v7i9tsW/urjJyrq2ubW3ubK3tLOutbaYZHWnnK1wXqKsnJigopuknqqllJ+fkJOOlpmYqJ+moJ6amYOknqylqrCtuLC9udTRz9fQyszSzM/Oysa/vsLKvcG8wcDExMXKvsfNsqO6sLSumqu4upiAe21fYV1aX2JaZGNRW2BTUEtDQUVGRTxART5BSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVtZaF9vlpKQlG5sb3R1h7OroKGfi5mcmYyMlZGakYWKin6IhoyQi4h8gYNze4qChXuJdIKKhpV/c3t5bG11e2hyZWlsaWdqamlgZmlpbFptc5atpLyIhmdbb2ddWVpUSEtOUEpLUEtTUUlMQUpGSk9fXmFmaWGXtsawuLK6vLSwxMa1r7iwsLursrGmqrerjLWnnZqnmk6ZnYyOn5aRppillYqTk4mQiY+RkZ2boZealZaHnpqnm6yvqLCotLTU1NTW08zQ09XN0s/MxcLJ0L7JycrJ0cfMzcLP0bevw7zDuaS1ucGig3BlXl9fWmFYWmdaUV1YT1BCQkhFQkg7QUM+QUc/P0E3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJncW95eYOgqZ6ml4yam5eLjZWRmo59iYuEjYqKipCHfISCcH+HgYZ7h3KDkouOfXF4dWxxeH5xem54c21pgXBtY2ltcHhpd3x+y7/B36dtY3huY1tiYEpQUlVOWV5PXVxOUE5UUFRUXG5tdoJxlq23q7Omr7WprLu/sKq0pqS4pquuoKu0o46wrZqXmIyRk5GEjpuBjaaRnImDi4SKiYSLhJSVmJeUm5Gcl5man5+rrKWooqytz9LV0s7M09TUz9TRzsfD1NHHzdLT09fM0dHE0tbFwc7Hx8KovbfOnnxwZ19kX1dhU19bUFFUUU9IPkBGQUJFPEBBPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxVUU1OWnWGhYp3bHdwfX5/oZ6eoYyMmJOTi4ySj5WFeYWPkI2KioiQhn6Ce3J+gIGHeoR1hZOQiH9vdnJrc317d3tzgXhya4BzcmlvcXp5cXq+y5p+i7GEdnKEdmhha11DWlpbVmVjWGRqU1hcXWBjXWN3en2LgZippKShn6CnpaqvuKqls6KhraGjraGnsZ+IppqTkpGJko+IgZOJapSijJmEgYZ+kYODk5eti5WNlZmOhpKRnpeosKKhoaWkqcnNz8jCzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy411cGViYVlVWlRcUUtHSkpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7T0xGSlhwgHV9aHN4coKJgJyUnZSFi5WJjomIjYaOf3iDk5iKjIeIi4h+gndze32Ch3d/eoaRlX+DbndwbXV/dXh9dIV8eWyHdnRufXaEdHh7nbWMO0CLxaV+jHxpZVdJQ2ZjZWNnamNtd1teZmhrbmhugIKHkYucnaCdkJeYnqOjpbGjpLKfoaWdoKigo7GchZ6SkZGPi46LhoOPhH+cm4yNgoSFeZR/gqmVo4yRiZeSi36Yi5qSq7OYm5yonKe+w8a5tsbO0tHS0MzSy8jUztDV2tfX2NTZ2M3Y287J2drR1b7Ky7V6eXBmX1tTV1JcV0ZHSklFRT06NzpAQEI6RkQ/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkJ2LfoeSg4mGhImBh3x4hZaWiI6Dh4WGeoR4cXp7g4Z1eYWOjZx5i3B8b296f3F7gHGDh4Bujnp1d318gnR+fIaHr3NYqsK2jZGCcG1iPV5ocnBxcG54doFlaG9ydXhxeouGjZORmpWflYeMk5qgmp6pn6Gsm6GamJ+lnp+rmYuai5CRjYV9iIeDhYuOoJmTiIOHfmyZeoSYhoiTjI2UjIZ8nImUj66qlJaYn5mnr7a9qa2+x8zJyczL0MnD0srU19nX2NfV29fT2dvV0Nra0dbI1MuWe31qal1cUVRUYElDRklIPkE+PTc6PT87PUc9P0FBQURBPj46ODdEQjc1NTQ3OS41NTY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEPkNHUmpebWRiZmt2gIhxkZCagHqAjX6CgoGDfoN7fISYjYeLfoWGgHaCeW57e4aBdHmSno6gdo51gnN1gX1zgIRvgZCCb5KEdXyBhXp2hnuJt8Wkwcm4gZabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWk5SOl5GDiY+WmpaWpZyXn5aekpGXop2Zq5WQkIqMkYKMhYiIgYaQkZ6bmYiGjIGFl3qIiZ+XkIiNiouCfaGJkYu8oZiTmJmdqaamrp+otr/AwbnHys7Oxc3J0dbV1dnV19vU19na29fb2tnYztvGiH17aWtnYVVZVldOTEVOQzs9PTw4Ojs9OT1ANj0/QDw/PTw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bIqNknd2eop7foB+f3yEen2CkYmEhXqEh3p1fXRtfH2GfnR/kp6RnoORe4Z+eI9+eIqKboKagHSZhn6BiYR7fpB6j6mOj8OhvYucpJx9iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Li5CShYiKkJOUjpyZkpSQlo2MlZ+clKCUkY2Nj4t+kI6Oi4SJkpaanp+JjJSSnZGCi4ClmYiEjYKFhIGkh4uLuJidkZWWoqihnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuXt7em5raFliXVRQT0lETEI8PD45OTo6OTk7PTY/Pj48PTk6OzszN0Q/NzM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PUNRU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97h3p8e4uGgn10g4V5cnpzbYB+hH53hZuim52Ukn+MiH+Yh4Cbkm6HqIV6oIt8kY2DiIScfZqQioyjoqCQpK+fi5CLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlYyHiIySkouUlJOOi4+Kh5aanI+UlpCKkZOGgIuIko2KipyWmKKihpOdlqCKiYiNm5CDiI6Ag4eFpIaMkLOYnZKUl6GhnpmSnJ6osritpr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aByf3dqaF9eWVVZWUNBSUM/Pj46NDk6Ozc6OzozOzs/PT43Ozk6MDpHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNiem1hfpKDb213i3h5f3qBfIV7e3aFhH9zcIWBenV2dnSEgoR+f5KmpJ+lopeKnZCUl4uKqJdyirGNhKeShJmThZmMopWfmJOImp6jkqmwn5CUkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNx5WPhoeIkJKNjZKTiYWKiYWWmZqPj5SThpSXg3+Pi5mIjZCqlpejo4iZnpaaiI6GlpeJhI6MgX+Hj6SJjpSompeTl5mhmZ+Zk52bo7O0pqO8wb7HxcXJyMnCy9PNzdSp0tHW1tbY2tTS2s6EdYJrZmBgX1BLVlxCQkdDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfHxtfoh4en56gYGCfnZ2gIJ7bG+Kfnl8d3h8hIaKfoujtKikqrOhlqegpaSWla+ig5C4lZKzmo2hoIykm6+ipJ2YkKeXqZmtsKSXlJWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKcmIWIiI6UjIqTj4eAhoeIk5iUjIqTk4aUmIaEkZCcdJGYspWWpKGInJmTj4qQipaaiYqWjYZ9jJifipCQnJqZk5mYoJShnZWfm6GxraOkt76zxcfEvcPDv8bOysnSp87M09HQ1tjSz9i8dXx4X2JXYlhSSUtPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNXFxZSmhhO0iEi3p6bYWGeXyEeICFgX1weHx9fG9zjHl9gXt4houJhoSSqLytqbK9sKWus7Opo6KwrIqatZ2iuKWVraSXqa23pqSjn5mpmKqkr7GpmZiblJWRmKCXmbu7rcqhaba3qrCVmJ6jq5KXvaReqrOCiYqMlIeQfI6OfYOGjpCUlIiHkpaLj5WNi4yXmZOcmbSWlauei5yUko2QkouYmoqSnY+LiZWgoo2VjZeZnZOcmJ6UoaCUnJ2lrqiipLO4q8LIxLa6vbzFyMjC0KHGyc3NxNfW0MrTo3N9a19bVWFTUUdEPjxDQUI4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGZIYWBicEpAi4p+gHKGh3yBiXWCioN+bX18fH5wd4d3jYGHe42QjIaMmqvDwLC9xryztMG8tKyrs7aMqLKtrb2rm7ujqK25uKumpqKipKOqr7Kxqp2co5ibmJieoqWlk6O5r6jAu6ytsrmlo6d9iIacrb2wgouLipCDj4ORjnqBh5CNjpyIiI+XjYqUl5SQmpedp5qwmpGrnY6aj5KOlZGPlZeOkaCQiJSbpKyUlo+UnJ6UoZ6bmJ+glZqep6ekoqSws6bAxsOwsLu2xcXDv82nx8PHw7zV0MzEyop2dmRfXGJdT0xDTEBFRz5BP0I8OjQ+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxoRl9pZ1tdXJOMjIh7h4uGg4x1hpCKgW5+e4F+cX6BepR6kpSUmJGTlai0x8nAwszCw7nHvLqvq7m7l7K2urLAr6XAo6uwvLyqrqujop6nrK+1samboKqcopyWn7Czp4yiurq1wburqJyypKOolISOqcTEpIKLjoaIhIaVlIx6g4yRj5GhjIyUkY+Il6CYk5mVl6WgrpyMqpyOlo+SkZWVjZCUkY+hk4aXn6Cyn5SblKChmaSgmqCboJSYnqekpqekr62lv8PCrqi3tcnDvrbOssS+w7uz0cnIwbV3e29eW15sVE5JRE1LS0lAQT1CRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZaJi4iSj4aJeYaTkIFygHuMf3eGgYKPeY2hlqiampi7vsnIysLSycrCzb3Bs628v6e6v728xLitwamss7y9qrCqpKWjrK60rra1oJ+un6aimaO0vKmbqbzBo7a2r6uTr6uqrJaGmqqnpZGCjJKklYmAdYmReYWNkZCen5KPlIuPjJSjmZeblZSinqmfkaWajI+PkJWWiHyOlZKSo5qVoKKctaaQoJelpKOln56mmJ6Vl5ylo6ioorKsqLvAxK+ls7fMwLquw7O7vcG5rcLCwr+ZcHtjW1leXU1NTktHRENIQkFBQ0s6NERIOjs0PDdGLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bElfWGFaZGVXnpCdjpeOnpKJin+In5KEeIV/lH5/kIiJkICWoZqup6OYw77JxMjG083Ozcu8wrewur20vcu7w8G2t7yttMC5vK6vqKGpqLaurqmyt5qerKKoop2rt7eppa++xLG9uLOnqrSzra6WlaWtqKCRjpKxxaeVjX2RlX2HkZiPqpmXk5OOk5WTpZ2TnZmUoKKhnJifmIuMj5CeiFqPlpeSlqSZZpmjnrOllqKWrK2sp5yfp5eYlpiWoaOopp+1q6m6u8O0prS1y8G4qrass7u4rqi4ury3hG9wXFpWV1BHTFROSz9BSERESEZGODVGTTs+Nz5BSy4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZmNNRqaUnJahl6iWjJCDh6WSiIGHgpuDg5WQkJSOmqKfr76uoce+xsXIx87Oz9LKvru2sbu7vL/PtcS9t7m3s7K2s7izrKecq6u5q6mor6+Xo66lqKSltcGwq6y0vsO5wLizp7i0t7KvlaStsK+ki5OUoI1zwZl9l5mEjpaZi7GVmpmVkpKZmaWjlZ+blpqonJuhoJmKjI+WnWBKlpyalZmll1SWsJ+vnJ+lla+vraaboaaUk5mZjp2fpqGZtKmqs7y8u6uwssfAuKasq62xsaOhsrK0pXNxZ15cUFNNRlFRUFE7SEtIRkdBQz05S1Q/QTo9RU0vNzU0NDpCMzROV048SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzVFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTc2JWRkirl5mfoaiumJCXh4qnlo2IkoWfh4Scl46doJqjpLXJtKnHvMPEycvJyMzOx766s6+6uMDBzbXIusG5tbqyr6+ztKeknKq0tauqp62smaSupqWprLrAqKu3tr7BwL63srLDsLe8rKOuta26pYibl6Wadb6fhJidjpKYmouulqGcm5eUmp+gqZ6noJmaqpmhp56XkI2RnYNtdZOimpSco5+QrbKiq5Wpqpiqr6aloaWqk5KZnImVnKKelrCnqaq6t76zsq6+ubago6eopaacnKypqY1maGNgU01NR0lPSlVMPU1FTUlKQENEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQzo5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYU1WSH5lXkhGrJScoZ+7rpiUnouTqpuRkZOIqoyGoZ6Mo6yUo6S2x720wrvDwsjJxcLOyMK9ubKvubXAw8q2xrHBvLW7rKmtrLCjo5mqtLumqqesqp2or6ikq6q+vKitvLS3vsa8trW4wLC9v7Optbesv6WPopeQoZ+8nomaoJmXnZ2Ptp+pnKWjmpugmqels6GbnaWcqKqdmJSPlJuLlomMpKGUnKKfoLWwpaaTsauaq62fn6WkqpKWlaCEkJ6fnJappKGhtLW6tq2otbKynpyippqXlZmqoZ54Y19hX0xJRkhOUUlORUZHQlFKSEBER0FWU0RIPEFHUTE7Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6fw6ybl6SXmaiblZqajqqWlaimla2smaKrt8XCvL+3wcLAyMS/zca7vrmysLm0vsPItb+wvLa6t6ekq6utoaGbq6rEoqWorKaeq6+soqqovrimrb6wt7fGt7S4uL6xvsC2tLK1r76jlqOVk5qTrZ+QoaGkoqOekL6kqJ2prJycoJumn72imKOeoqmroJ2VjZWek56HjoSNk56koJ22rKaclrKmmbCooJyrn6GNmpWfhI6hmpySpaSamKuxtbGqpaqtrJuYoKGSjpCWqZ+UaWVcYl5QSkhLT0xIRURJQD1PSEA7RklIW1JPSz1ITlU0QkY4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLS0wTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE6jm6ObnsWroJ6rnZytn5Ginpakn6aqq5e2saOps7bFwr3AtsDCvMnCv8rItri1tLG0tLfCxre+sbi0uragp6yqq56en6WkwaWhqq2gpKmtsKKmqL21pbG7t7a1w7Kyt7q+ssPAuLittLS1o52klJGToKyfmKGdqKiqoprCrKidrK2amp2YpqC9oZ2kmKurq6agmY2an5KeiI5Yf5afpqGguaqmlJi2o56zoqGcsZigj5qVnoKPoJeWjqKjlZClrrOrqaKipaSVlZyZi4+Sk6SfiWNnXGVhTUpLS09GRUFHSz49SUE5OUpKTl1RUUk9TFZcOEZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExQn5+gmJ7Dp6Sis6CcsqeSqaOfo56tqaydu7GprLWxyMPBw7PCw77HxL3Eyr2wsbausbWwwMW1urGwuratmqmwqambnqahp8KtnK2xnKqirrGppKe9t6a2u72vt8Ots7PCv7LGs7q3q7S2raqippWVlKKroZ+fmaerr6+vu7Kln6mpmZiXkqKkuKCho5Kur6ukpZ6RoZ6UnY6QjZSdmqOfqLWnp42YtJyjr5ugnLCRoZSYlZuAkqKWj46goJOLpqywpaeinaCekpKalIWLko2cn4BkaF1oZktKTEtTQUNASEc7O0Y+ODlOTVVfUlNKPk9eXT1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9nckA4PEiWd2VBNJ+knpugwqejqbGgo7SplbGrpqKksqytqbuyrbC1tMa/xMS2v8S+ysW2wMnCtay1qbC5rMDEtLevrba6pZmrsqyqmKGnmK27tJyosJutn660saequrOnubO4srjAqreyw720xae+rq23tamnq6CWlpGlpKGhl5ekrretsbS2n5+ppJmTlJOjoLejpKWVrrGypamloZ6bmZqVl6ifnpmin6+zoqaNmK+apauXm5+nk52PlZmahpaglYyQnZ6Ui6mpqqKnoZmeloyPmZCBhpWIlZ96ZWpdbGtOUU5OVD1DQU5DOzpJPzc3UU5dX1JWUUFXYFxCSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWlWQ1dGjHlmQzukpJygpb+mqK6uoKm1qp23r6ujqrS2sbC4t7C3uLfEvcPHvbzDwsfBusHGwbqqtqWtu63Bw7e3qq2yvKOVrbGtspemqJGquaqhp7Cdq6CvtLOqqre1rLuss7K5t6y4sMG6vb+mw6qwtq6pq6umnZiYqqGhoJGXoLCvs6uwuZmbqZ+ZlpKXpqC3qaWioq+xs6uxp6ugnKCfm56lnaGYnaO0sJufkZSmmqGpm5ajoZiai5aZlJaXnZSJkpuZlI6pqaego5yYm5OHj5mLfoyXho+bbGltYm5uWFFRWlRBQ0RUQDs7SEA3OlhQZF5QV1dEWV5eTkxTTl9MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOGx9aFxWOol7Y0M9qJ+coai8oKmvqqKxt6iktLGqoa21va+zuLy7vbe2wMK/ycS5xMPAwLnFvcG4r7aoq7eyvL+/tKqusrifl6ytqK6YqKmOp7ufpa2znquisbCzrKq2s7W8rbCxtaywtLLAusW2q7yvsbesramjsaWepKieo5aPmJ+yqrOpqrOZnaebmpSNoKaktK6noaysrbGnsquxqaObnqiknpSgmZyotqmXmpOSn5meoZ+SraCamoeXmYydmp2Ui4+Xl5qXp6ajoJ6WlpaUgZCVhXuPk4OMl2dtcmhxc2BHWWZWRENNWERaOUhCNT5dUWhcTlpdR1teXU9NU1hkSktDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FWMTUxPWBWXzgpQzNZVVxnSzWMemZMQKSaoKSrtqOrqKSurbWprrO4pqewt8a2sLe/wcK2tLrFvszFucPBusC6xLjBurO1rKq6uLu6vrWrr7G2mZioq6usnK6rj6u+nquvsaOqn7Gts66utrG4tqqtrrGntbCzurzJsqq1tLC0sK6moLOgmqisoKSVlZqZsaKtoKWvlqKkmpmSjKKlp7KpoaaxrKq1pK6wtK+jmZ2tp5uXnpqZrLiil5ORj5icoZmYla6hn5aClZmOnpyal5GLlJOemaWjo6GZl5OSlnuMkYV7jYuDjJNsbnlvdn1iRmBqWklIWls9e0pHRTZBYlVpW01cYUpcXFpSU1NiYUxLRWBhYFBNSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1hUS0WalqCwp7GprKSjrq20qLezt6OstLfJurS7u8C+tLO3w8DMx7vEvbe/wMC4wL2yva6ourm4t8K3rK6xuZWXp6+sqKSzqZSvu6SssrKmp6OytLCysbSwt7KprquyprivtbPExbaptbWrsK2pp6K2np+msKCjlJuZlLCep5ufqY2pop2blZelpaS3p6Kws6unsaetr7WspJmgrKicnJ2clKq5nJWPj4yYnaOYkZiopKCYhZOXkZ2cmJeWiJePl5uonaWhkpaSkJZ3hJGGfIaChI2NbnF4dnyAXExlbFxKT2RdP2J7R0k4R2dXZltMXmJMWVlXVVhVaV1PUEhhXl9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGcyNydGYUxWJS1CLj1FTFE8M3JrTEREkZmkraOsraqmo7Cysqq3sLWfq7W5ybiuwbzDt7OxtcLDz8TAwr61vsHAu7+8tMSoqrmxtrfAvK+stLSeoaexrqWmsaWesrWsqrKxq6iotLqstLK0q7OsqquorKm5rbKwx7+4pLmwqa2tpqetsKWko66jqJudm5qvmaKioqOQrJ+joJ+hqaaluKSrtLSkqquorK62rqKdo6irnKCZm5KktZqPiY6IkaOhlo+Wn6KWlYaQlZSem5mWlYeYkpWZp5ygoI2Tko6ReH6OhH19fYeKinJ0c39+flxTY25eTlpnXUZElltHOk5tWGJaTWFiTlZWVldVWWheUVNNY1pbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RkOzYqSGRISis6ST8zQ0lTLD6Paz9ISZCbqamhqa+kp6Ozs7C0tLCwoKutvcy6rsG8x7G0rbPBw9HExr/Bsr7Dwry/uL3FqK23rLS4vMCxrLKtoaOnrqqopbGjqrCqrquxrq6sq7O6prewsqmyqaqmpaOtuqyqsMK5tKy5qKioramnsaWppKKuqqihnpujrJWlnZiemaudoaeooaymo62strCxoKmin6qtsKudnqenqZqjmJmQoKiYhoOPi4ufoJCMjpeekpGIiJKWoZ2WmZaGl5OUl6Wcnp2MkpCOin9/iIR9d4CHhYd1dHKJd2xfWWBuY1FzcVxLO4R7Rj9XdVhgWU9jXE1VVlVXUVxiX1NPT2hZV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLklnREY4PEIwNUVLWDFAlF1ATkaVlqynoKmxm6iosLWsuLWtqaSrqr3JvLG+uMOvsKyzw8TOzsO/wLTAxMS6wbXJxKyvt66zusC+tK6urKaoqbGppqmyprStqq+trbGusq2zuqS4s6ysraeroKOesLerqq25tqS1taOpp6ysqq2gqKansbGkpqWhoauWqqGTm6ClnqOjqqOsop6msbasrKKlo5qpq62pnaGlpKSZoJmWj5idk4GCkImFnaCNi5CNm5CSjYWOmaWbk5GbjJOSkpSjmpyai4+LjHyHgYKCe3WBhIF+dXeLo4d4al5gbmZXZodkTkBnkkxEYnpXYlhSZVVNVlZVVE9cXWFWTE9qV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZCSUlElpGvpKKpr5ipqK21qrWwqqSrqqm8wMC5ubS8taayr8PJy9G/wbu5wMDCusG6wsSusbWytLzBvrOxrq2srKe3qqWtsKu4rqiwr66xq7WqtrWmtLesrKSpqpyknrOzqKiks7Sfta2hqairqKunn6urqLm2qaqqqaGpn62bkaqhnaCjo6aiqp6cprSup6WpoqSXpKanqpyipKOgmZifkY6PmY1+h4yHhZ6eiYWMi5CPko6FiJajmo6Nm5GSkI+Sn5iZl42LhIB0h4F/fnh1g4B6eH5/iJ2PcHFmZ3F4XGF0iGpPXZhWSG15VWRWUmJPTFVVVVFPWFtiVklRalRWVEdQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JGO5WNr6ClqayZqqOsrrK0r6qkr6mou7+8wrKvua2itq/Ix8jRwL+9urzDvbvDwb+/r7Gzsra9vMGysrSrtKmltqmlrbOyuK+irbWxr7G5qriuqq63q6qeqqugo6G1ramhn66yobSqnqinq6OqoaGsrai9rquuraGnp5+rmY+wopiioKinnqebmKmwqaKfrKGhkqGio6eYmqilmJiYnI+Lh5WIfI2GhIWkloaDg4yHkJCShYeVoZaJkZ6Rk5CNkZyVmI+LhoZ4dIF/fXR4eYB7dHR7aoKIpHZpXmVsgXVniIt8UlZwXkp4c1RkU1FfTU1TWmZOTVdZZVlHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzOPjrCgpKWqoqWjrKa0s7GopLCnqri+wb2wqLmqp62wycbI0MK9v725v7+9ybzCuLGwtbG6vLnAs7S8rbmso7Wmp6yxtriypqe5ta20vK+7pa2ttautnKmvpJ+krKqonJ2qsqSzqJqqp6qkqZ2iqaepvauzsK6dqaOgrpuas6KWpZulpJ+lmpmoqqWemqmgm5GaoKSdmZepqZGZmpKQi4KPhX2Pg4CIno+HgH6MiJKQkYWClJuUhpOijZSRi5Gbk5aHin+Acnp5fnxodnx7dXByfmqGeoWIZF9oY3KFe21neV1eVkJXe21UYVBSWUtMTnB0XUlaW2hZRlZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpKwmZ+fqaSioauktrKxpKmwpq25wr23sKS5rKmosMLIyczBt72/tbjBusi1w7W0s7Wyvbm6vbauuba/raKzpqqrrrS3tKmcubuosb6yuqCutLapq56tsaOcpaipo52bpLCmr6Gfqqmnoqqco6igrbynrrGuoaqio66enqymmJ+aoaKbn5uZo6qimpqjo5WWk5+hlpyWpqyLn5GPkYyCi4CAj4F7mpSMiX1/jIeRkI2KhpOYkYeUo4qSkYeQmZCUgYh9emx9dnl4Ynp6cnBwc3hqgnVrgmdjZ2Fuc45tYmpvX3BBXXlrVl5OUVFLSU1TWVZNXF5sV0VYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl0+I5GWq5ifl6eioZ+no7evraKvr6iruMK6s62gua+rp7O6x8rHv7fCva+0vrfEtsKysLmxssC2u723qrm4vqqktaeoqq+tuLComLi8o62+tLShrbe1pqaosLOgnqWlp6GkmZ6sp6ieoKqvp6Cml6Kon7C4n6Oxr6GroayknKamqJqbm5+ilZybmp2pppabnqiRmJKYnZOZlqGqkJqJjZCHfYd/go58fKGMjIl6hI2Fi46NhYmTmo6JlZ+JkJWCjJeNkXyFfHRwfHFzdGB4eGlvcHFwa39zZHpsaGVkYWaHgGBbcmpyTU6AaVhaTVFMS0hQUlBHTVtfb1RFWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsn56hpKG3q7CjtLOpqbrEt7KuobitrauvtcXHwLe/wbmwtL23v7u+sKy+sLO/sbzCuKm7urinqLWop6uvq7KvpJi7tqSrurWvnrG4r6mlp6+ynKGkoKSjoJabr6ahn6Kor6GgopOjpKK2sKGmsaufrKOul5yqpaifmJqdo5Oam5qdpaqam5ullJSXlZyOk5eiqKGQiYqPhnqDfoSLeY+Xio2HeoKIhImNj4WPk5iMjpaZi4+WfoaXjI96gXtwcnZub3NfeHdkbGxsamqFb2ZyaWtmaF5kc4FgW2t2aVpKf15cWE9PS0hIUlVHMzldXmxQRVlVWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJkVywylKGhl5SbqpyjoaKht6qtoLu3pay9xbSxr6O1r6ysrrTDw7yzv7q3sbO5uLq3uq+uwLO0ua+/wLesvbq1pqKyqaepsaqtsaCZv7Wkp7S1qJ6yvKmopamwrJmip5ykpZSXoLKkmZ6jqKmcop+SpKCkuKmkp66mnqWhqJKfqaKhoZmbnZ+RmZuWn6Gqm5qYoZSRlJaZjZSTpKikkImJjoZ5hHuEhn2djYmKh3qBhIeIipKFlpOTi5CWlI6NlHuDmI+Ld358bHRybGxzYXd0aGhqZ2dwh2hoaWNmaWlgamNqaFtme2NgU3RUXFtSTEpGSU9TQCEqaF5pTERXVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp6io5CNpKaanZ6do7Stp6q6tqesxMG3sayjtq6nra62wL+8ssK2sK6ytrW4tratqr2zrrKxvL+3rry7saWftqqlpbOnqa2dnMCrp6SvsqmstbueqKqrsaWYnqqdpqSRmKWsopiepKmhnKKblp+dp7WmsKquoaGdnqGUoKafoaCam5mbkpidk6WdrKGXlp2Tk42Vl4uPmJuon5GIiYuIeIV2gYKBnYeKgop9f4WIh4aRhJaUkI6PkZGRjJN7g5WPhnN+fmZ5b2tqa2Z0c2tjZ2RkdoFiZWZmZmpqY2tyW19ZXm1kYU5pWFpgVkpHSEtNUlg+OV9saEhDVVRdW0lJR0ZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao6CPjK2hl5eglqSzsaKyvbahsca8urGxo7esqq2puLy7uq3Asq6urrausrizqau5sa+us7a6trC4vaymnbWpn5+vo6munKG/oLCjrrCut661nq2vra6imZ2nqaWflZqnpZ+ZpKKonZqfmpScnqyvprqorqKhmpuemZ6kmqSdl56Xm5OYn5KolaqnmpOampKMlZmNlJSaqaaOjYqJjnuBc4GBipiFh3yJiYWFioyJkoSUm5OSj5CRl46Qf4CNjoNvgX9meW1oa2lmcXJrXGhjY3SBYmZnam5sZ2tqaG5dbGxzcGBUY2ljZllJRkxNT1hRUVVhZYBVQVdTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyY0kaGbjY+wnZmToZqpsa+fub+1oLTCu726saa3r6etpLe3tretu66sqqu2qbO3rqaytbKuqbC2trCztrqnqJ+1qJydqKCorJqnvZiso66vtbWtrZ+xrbCpopuco6uonJScpqSdmqmipJaan5uQm6Oqq6q8n6ekoJiamZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJeZgJaKoZB5h5SMg21pfnaDcWyGi4Z9hYyHcF5jYWeEmIVri46UknR3i4R+g5CAZ4eAZ3VoZVdcaHNtTlBqY2dzhWhfZWZubWpeX2GKj4OEZU5LRDlHVGheSkdRUFRVTEhSYG90ZUZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsKzA4PUc3MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoqjmYWVsJubk6Cbqq2qo73Fr6m3wre9va2mt7ClqqK2s7GysbmsqaastKWvtKKpt7a2qKestrKutK2zoames6qeoKObpaaXq7mUpaWvs7etrqWprquspaGenKGnppuXoKWlmpunpp2Tnp+XkJ2oqaS2sKSjop2WmJeXo4ihjpKahqCHk5ygf6V/paqekpKakYiEcniNjoWIoXaIjGmXiGZ9c3igb4iHg36OfH+hoKCZgHyHnnSHjnWbimyHgYNtaWVjemxyYVOFbWJsaZhxWGlxcIhYXmlbbGxbiHJuenKFZ4aEWl9HTj9HX01FUlZWUVFTV1RnXU1WSFJST0ZHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiKppaCnKucmJidn6mpp6q/w66xury2wL+qpbevqayksrSurrO2qqilsK2ltLKbrbW2taanqLKwrLKnrZ2pn7Gnn6KimaChmqyzlKOkpbW8pq2nq6qsqKahoJigpqOZmaWjpJicpKmWk6Kck5Kjpaaht6SkoKOYlZOXkpyIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kYR8kJCRynKXvJzFenK1pruQe4BtlrGrsHlobFixrm5lab2SvG5nem9yj9h+U2tjtrJ/gXKUc5qhqpBXT1diT1ZORlVbWFFQUoxcV1tQQVxEUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT46Qjw/QTg6Sj41MioyMkJFLy4zMi4rLygtLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKaSgKeqn5ecnqWssqiwwr2xtb+1tr7Bq6ezrKyppq6zqa62s6enprSlp7etnLOytqulpKexraywpqqdpqOwoqGfnZaanpytq5Odop+0uqOqqaKtrqWhnZqaoqefl5unoJ+YnqenkZymmpOdoaaiobGjn5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUca6hpH54u31roY92sV9qtFulgGWckWBmgntmf2p4a6llvnJnpox1sWp8sXh0kpRjbm2nbluEoEVoZoeWRXWcYH5nfKSnglpfjKtogJV4eWqnN0qvXFhTbGRbS05YX1xXVjtOiU9XVy9JVFNKQ0ZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKtp6Weo6SqsbestL2/r7bEsre6waapsKquqKivrqKwuq+jpK2yo6i4p56zs7CjpaCprK+rr6annqOhr5uimpaVlpmaq6WVmqGetLOiq5yjra2gnpmWoKKonJido5+bmaGmpI+copmWoJ+qnqamoJqfoZaVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH5rgaZ7goaIkpSSd6tna7Fcq3qNhpR0iXKPhoB/iJCXeIKCi5iLg6CPhLB2d59xbGxsfItOpFhIYmKZfmNopmB5cnVTk4deUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5V1hBI01oRkNFQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVQ1MBuVoJWIs6amoa+pp7Osqbu2wrC7wa24t7+prK2traatsamgrruqoKe0rKOrtKSmsrOno6Kep6qxp7CnpJ6fn66VnpmUlZWXnaugmZmkqLSvoqmPqaiqm52Vl6ClqJqenKKem5+jpaOVm56XmZyiqZummZyboqCXk5GTk5yD1ZOZuXCwwX7FhnzWlJu7fJqVpY+NnY2ke46Ho4KlgnqseY+dVq96iH6farlauXaGg32mgpN8mHqqeI2dj3qxbo6EdJG8hW+UUK+nxYpRoHpjYKlic3KIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWNQQFhnWmRhSkhNbk5cUU9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6O0RIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFQNzElm6KUmbKoqKa0qqW0qaS8t8Gwub+xtbS6srSnsa+isLKmn621p5qnua2ir7Cfs7SwoaSen6apsKi0qKObnZ2qlZiWlZaUlqConJmWp62wqaOej62iqJadl5ugpaGYoaGhoZqhoqebnqCelJiapqCbp5Wbm5+hmJCSlJCdiLJuaLVxq4dujqZytHNytnual6SLj52No3+RoaV+sHaDkdLSdlyue4V/pG+bqqZrhoR8rX2XmY57sHKSnY54s2WXdISeb55mlFHIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFPa2BsaFBWR0k5PVVSWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTDYyMKGdkqWwrKOrvK2mtKantru8srq+tra0ubiypbSzoLGxop6rr6SXprmtpLGwm7S4qqClnaGppLGnrKmjmZyZp52Vk5eXkZGhpp+VkqWqsKailpOtoKWSlKCbpKaflZqlpqGaop+smaCenpCVm6GdnKWVnZWaop+VmJWRm4Wse3eodqONiIapb62KgqeDmJihiZKai6J/k5qJroV/grNccrNSrn2CgqR/cdd9eIV+jp2Fmpp2r4aJkZyHd7RhmmWagoKVbZJasFhLmnWYeWZgrV52d4homIhsXa93lZ6PeGw1eciusl9CVG9eZ2BFUGxfcG1WVk0uZmRpU1lQO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEg6OTmgnpWgubCXtMKtqLOoqbK6t7O3vri3sbS6tKS3sp+zrJ+eqKuelKe1q6ivsaqttKSbqaCfp6G1pqapopidlKSgk5KbmJGUoaSakpCmra+moJWZqaCij5GhmaikoJWZpaidnKSerJyhnaCNk56anaGYmZuWl6KglJeQpp2GqX19pXihjo2CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTYf3aHc6iBjpuNkqR8lpCfhHuyXp1koH6DlW2SXKtbWpOAkX9oZ6pkcnuBa5iHc16rWomgjmtvZU9KQ6FcW0x0XWJnTlthX3JzX0tWN0qblFhHRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDUuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84op6amr+rmLTCrqutqaW0sLewtb64uLGwtbqourSfr6SdpKennZOpsKmvqbSrqq6hmKCfpqSjuaKjq6CWm5Chn5STnpmTl56fj4yLqLCvp52Xm6imn4ySpJeoqqeUl6mnnp6goq2koZ6ijJShmJ+gkp6XnJWeoZWWjqucj65tcrRzqYt1iqdztHhzs4CRpKOSnI6JpIeQd7hvjHuLomprtlqhhWWXl2mhoqdtk3K0dJOYf7JqhZKIrWp1s2GdZqJvh5Nrl1ytX02hfIeRUnOjbHl/fm+Yh3Jdr1Y8nHdmVG9uLlynT2NTa2VibVpjXWBwe2NUWlI+Pm1vM0NCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKacm567oZuywK6tq6ynt6m3r7W/tLqvrre2qsC1qKmgmqWjoZyRqqmntaKyp66poJebp5+kq7idoqyalZmOo6KVjJygm5icn5GTlKq2sKiZlJysqpeMlKWYpayikZaqsqOfnaarsZmho4+Yopafm5aclqGTnamclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJeLjKeIeqS2dX13dsKCmrJgg7p5wHx1uGO1goyHqXyVgaypcXt/dLyIp6BpnWGmjq+hfox0h6p9vm9zvHSyg3V4gYpumohybo2kdL1ed31aYXm8a1pWXGp5XmphZWdibXhvWlxZQ0FAc0BDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56ivaGXssOwraqrrLGnt6+2w7C4sK25rq3AsKujoZ2ioZubkKmjqrKktKWspZ6VmaqYpqy4nKKtl5Ofj6Sfkoycop2XnZqRlZKvubKslZejp6eUkJaknKSsnpCgqKufm5+oo7Ofo6WOp6KUopqcmJWjmJCvoJKUqZ6EkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSfwbu9mnuBsahwgHORuYN8hoaMh418ioeMl3yku7m9nHV6tKN0d5d2dLB1mZ5mhmqNtXRycXe2jF5/en2JaIN5bnpji6xwdYV/WFunakVlWlRmYGNeY1FnZnBsdUNOUE1EOlpNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlUnPjs8p56gor+llrTDtKyrqKyrqbqusMWts7KttaazuKupoqGlnqCdmZOro6yppbWnp5+blaCjnaukvaahqZaTm5ChmpGPoaehk5yXk5eUsbW3rZmepKSii5KSppulqpuVqaSlnJqhqKWnpKmhka2flqSel5eXnZ6Pr6iUm6ahjWp9aZumeIdyfZmOdHlkh3u9vsC6b5ODcpWHYHJqWl6biWBjiI6Va2CAlWNtnXdilWuAmpWUZV5gY3Caimhyi32GlWdrf3J1eH1+Ylt3dIFoUFxug317i2tYa3qCc0pKb4ZwTnRNRVhdZ2FMWlhnY19PW211aXFSUERFTTtHST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPltPJz8yPqmgqKLCo5u1urajrKWup6e1sazIq6+yqrOivbCxpp+ip5yjm5mZq6auo6S0qKSbl5Sgm6atqL2nqKSUk5qVn5mSl6SoqJCdkZCYnLCyv6ybp56noomTkamaqKObmqugo5mbo6eso6Cro5qwm5WnoJaUnZ+dl7ClmKGnmZuQnJyio5iloZmbmZmZj5WBZ219cXeSl5SShYu1qo2GmJWOioyYloeUlYqEk5SRiY6SlJiTmJaaoKGanJSgnY6CeqWFbWt9kXyAdYqKgXGCeHl2doqAfIpqc4F0g3Vld313a296bWBjXXBoTVhaZmpgV1pveW1tZlRPRlM5T1pNUU8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSiw8LUCzoLOiwKGksrK2oKmlsqelsLSqyKqsr6S0pcCms6CdpKSco5WVn6qmrKKjtqufmJaVn5atqaXAnqujlJGbl52XkpOhnp6ip5KSmainssSwmqudqp+QlpaonaqbnJ+smKGbnKKkr6eipaifrpiXp52ZmaCenZyvoJyhppWXkpeTn6CVop2XoI6Wk4qKjY6XrpB8lpuDkoKLqqmFgJmXiYOPnoh6hJCHhpqSiIaKlo6bl42RmJ2klpqTkZ2Nf45nobOvhYqEdnuSin13eXpvZnmQgYCJa3WBeohzaXN/e3aDh4JrdWR5ZmBqZWNkZmtZbHtvaWtcU0xQRF5URUA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9iY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0W0c1PCxAtKC5r7+sq66ysaCqprKtoqyzr8Svqaqisa28orObn6aioZyYl6elqaWkpbK1nZSTnZmZr6WtvqCropCRnZmYlJCUoZyXqJyEnqqro7TItJ+qpKqWlpeapp2pmp6jq5Sen56gqa+qpqSroq6bn6CgmKSenJ+cr6OYnqeSl5ackaOYl6ecmpdlgpJ8ZX6NmpBjeY5taWt7kqSqamWbmH1nhoplZWloe46hj2tnjZiRo3draouZo5+Yc2xueoSOiHpYZl6Gg15ti4mBdlxoc3d2koCHgm53gniAc215hHR2iIiPg3xrh1lebHRkXnOJaWt8cWtkX1JOWElkWEFKND5HNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaWfury6r6y0saqlqK2usKatrbC8sKimo62usJ6slp+jnaGZmaaqnKyjpaeosq2elKOPoq+ltrmlrqKOjpmhmZOSmqCZmaSVe6Wtoqi0xLiloqevn52UnqKeo5uiqaiSn6GeoKmwq6ukq6CqnKefp6CslqGbpbCkl5uplaCdmpGjlp2pl519vYOIcrRyhJ2GrWh4ucS4cZOio3qmmZlyq4J8y8DAu3GMo4iCn32WmImdwL2Cl52ejZ3CwXyCfJONmsPAfWylsm+MgW/Ken+bd5GDjoF2eYCAeXF6f4dwd4WMk3lueJRjZ2B4ZGBlgmNedGdsZGNYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9WQUI7LziWo7nDtbCwwKmolKOvqLCuraays66ppKWmr6ufqpiaop+cmqqnopyroqSopKS0o5yikqatq7ezp66hkZGZnKWSkJ+hmJufnYimrKSsrcDAsaGpr6mXkZ+dopmho6qjk6GinZ6sr6qtp6Skp6GmpZ2sqJGjmqitqZqcqJuroJWWpJWgopacfs6UeHqkgXmVlptfro9ejqeBoqB8p5abc6uDgK9eY4yqe6iHhaB0l5OIs2OCq4ahjo2zaoSvdX2XiLdhg61ao81ukHZ72nt/mXB+h5J2fmV7iHZ2a3yHbn2GkZF+bYOQYXJtcGhgYHlkXHFoamRnYFJUU1ddS09DNUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqets6umsqurqqOqpq+pn6abmaSXnKKvn6CeqKeipaCfsKyanZWnrqywqqirn5SRmp+kko+epZiep6OfraWrsKjAx7OoqbGulpKdm6KXn6mpn5Whn52dra+prKqcqKiloquSrLKWpaKqqp2ipaSgrp+RmKaZn5mTk5CXoHGFjJd1haiGcbF9nnKsfqGegaWPnnargn2tf5xyrX6rh4afdpmSe3yXfqqIooySjJ1+q3uJlJCfgHutV53Fe49wk8F9gZVtdW+MbWV2ZYZvYXducm6JipKPg26TkWZwdXVxYWdtZV9vaWluZ2RYU11hWVJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DTxsaytKCdo46joqKsr7auqLGmqKqmraurpqGjnZmhlZ+lq5+hpZ+oqKKenbCsl5qWqKeuq6emp56XlJmjoZGUoK2bnaajr6ykrLWqus6yraaurJeVnJ2imZ6urJyXoJqen6myq6urm62rpaOrmq6xoairrqWYpKmoqK+hkZWio5mTkYSkaqR1iXqpdHqycIKmipmMcYigmoekYGBSrIV/roObdq2Bp4aFn3qZl4Z7ZoCjiaSZhoKjfal+gpaHrl98qVaeo5KBeqOfgHvDr8WLcq+zs7lxYqmvwnRojIyYjoJunJVxb3p4eXBtZ2VlcnBmfGljXVdgalhZVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXUv6GZq6egr6KesLSwrqmsoqemqKqrqaSln5uknp2lp6ejnKuaoqyho5+voZyakqujta+uoKeanZWTpqKQmqKooJ+lnLGlpKixrbfIsrWqrKmWkZ2copmfpbOdmqGUnZ+nrK2ksJutqqOjqqGzraGqs7Ghmqinra60oZGUoqaXmpF8qWyehId1q3l8sG+CpYyJn5aWn5SB0ri0uMmBgbJfYJSpg6SJh6B6mJaaeKrJdJqklaipkZKajYGciprGxnlnoYKldIGfjoJ9r11wtGKwdUujhm2nR4KTZI+QnpF8cZmVgXF8dX58blxmanNxZoFrXmFZZG1cX1lJTUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKWinLK4rKqhpZqopKqrqqafpqWYqqOfrqudpaCsmp6ppZyntp6il5OoqrWyrJulnKCUj6WskZmcqKOgqqeuoaWnqbC1w7Kzqq2ok4qXnKWboaOvpZehlZmcpaatnLGer6mnn6yjt6yhsbivnZquprGysaOTlqaimZ6Ogp1OeJqBf596hKN9g6SFh6afnJ6ThLh7e3m5gn/MxsK2eJuhkIuffpqWl4p2npiKpZikqX+whZ2GoISsfZqVY6ZtpHCPhZCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Uk4x2e3OGgHFcbm54cmqBb1tkX2luYmReTExRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX11aWlpYVVNPSEA4ODIuLCouKyonJz9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq6fm6GssrOlnqCVpa2trqqnnKammqOnobOuoqmmsqCYqaSUo7aiopWXoam0uKOboZyiko+hsZmem6emoaKwrpylqKK2ssWxramtqZGHkJyonKKknKWXnpiamqakq5uwoq+lp5ivpLusoba1rZ2ctLG3r7Gll5yuoKOchY/RtcO3eYeOhZGTkICmeZShd4ygkYSlgYpxqoaFtG5yapmjnJWKnnyYmYaHj3Ovgqaco46mi5Odi5aQm25xsl2ldJN6nGyZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2NjpWOeX55kINuanlpenNvgHVeZWVvbWZnYEpbWFg8SEhAVTRARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtbWlhVUlJRRjoyMjMvLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWSc4yKrb6/vLq0npanpK21oaKZlKKopq6rq5imop+moKC2p6Oop7CjlKyjjqStop2Qmpqqs7OknKScqJGUl66fn56npJ2onbWaoqqktqzEsKmrqaGMhI6coqCmopWZmp2Zm5mmpaiZraivpKabraa9rJS9r6yeoa+yuKmypZqosKKnl3mokX18sHeKgKSliJxtsnChh618oY+Dp5WYgKyJha6Fn5SqoKGXhp+AmZWAe5J+q4Cdm5aLq3idoZKKlJKBeq9epIF9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWRppmDlo6Zjnx8hJmAa25/Y390boB6YGdmcW5oZ2hDWWFbPktVM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFSU1NWWl1fYWBhYWFeXVtaV1NQT05JNzA0Mi4qLEFUVlZWVFRVVFVVVFRVVFNUVldXWFZVVVFIRklKIygovZOag6jFwrbAs56arKCtuKWjjpukop+vsKqfpJ+drZmeuaCjq6CvqZmuoZCrqKOWiZqQrrCspp6lm6yXl4+soaCdpqGapZ2umKGop7epwa+lqaSei4COm5qfpp6SlJmblJuapqWmm6qsraSln6movqSWw6ypoqCrsriprKWesq2nqJd1r36Qi5yFh326rYqZZbCNZZWtfaCPg6aVmoGsioSwhaaapKGhkISgXGxqgbNgf617e4OBsW1nb5mZjIixW361XKSEa8iiZJ+Ae7xYdrVZsn1SroB6rFiAoW2YkKibjJiSmZl8epCff2V1fmOGeHSBfGFqZ3BtZ2VmT1VkXEFVXz5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFFSVFdaXmBgYGFiXl9cW1hVUE5KRkM1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9KfsrG3vbqzwbKinKympLWooIqaoJ6cs7Opn6OgnrWZoLSoqqyer62drJuVr6ehjoibjq+rqKahpZmukpiPqJmhnaWfmqOjpZmgoqqzqb2wpaienI59i5uWoaCYj5GanJKamKmgopqprqimpqKkqbueoMampKigqrS0q62lnrqsq6uUgKmSo6+Om3+HpJeZkIKAuMO6g46ckoSnl5yCrIqCr4innJumqpB+1b3CqmKjv719fqOCg9e6uLWFlZODnr2+hG2jgm+rhGycf3qysMeDaauwvax4d6K+vHOAlo6mnZGbkpqfe4KSnHtkfntlj2d5gnthbGVramNQYltTalw/VGFDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzc7PkFDRkdJS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbOzsL+4sbyyopyupqSypp2LmKXAqriyqKG/pqeynJ6xnLqon62vpaeUlLCrl4yDm5GupaKsoKOcqqCXi6OSpp2nnJqhqaOZn6Gsraq6rqijmpaSfIiZkaabko+RmJmPmJSpm6GZqqmhq6ego6q7nqjEop+toqmzs6muqJ+5pq2tmXN2qqW4hmSJoHBorpGKkG5ud6SQmZ+Bda6YlHCPi3GVqKObl66kcmxsbGaLeG9ugplxgXpqcWlnipeWmHFpaYWIZ3GGZF2IYmpvWVxmfXamX2FxjpFuZWV/jZOPoZiZmZOZoX6IkZZ3Z4h4aY9reYB5ZW1jZmxiS2VYSmxaOlBlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWVxeXl1cXFxdXl1eXVtbVVdeqZSss6m5uLKzqqmhrp2jsqmXkr+zxcq/t6qewKytpKKnrJ+6o6Suq62mjpeuqY+LhZWWrZ6mqqCdpKOgkYukkqeYqZqXo6qhlp2mpqewu6ysmpuSkXuElo2lmI2RkZmVjpiWqZagmKmjm7GmnaKruZ+vwaejsqWrr7CprKqmtaKstpWKoaimt52JlqOZh6qbkZWdkqmymZqjqqCylqKhnZ+inKGloZWrp42SkoyHk5ydlZGZk5mRj5WGgaWbmJaOi5SUjJCGhH1niX50gnVzh4pwp2x6lJGTkoGBjY+Qj52VopeamqSEiZaPc2qRd3GMeHd9emptZGNvZFVhWUBqXEhjYU9ZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVVlleYGFjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaWlxcXl9fYF5eXl9fYGBgX1lZYKaWqKqktLaurqGwo62foLWxkI6syL7Fu7mroqWenKefsamjtqedqbSmqJGYrKKLh4mPnKeVrKSfmKeenpKUo5aomqialKahpJCbqJmhtruoq5maj4x8gZSLoZSKlZGWkZCUmKaQoJuqn5y2o52mq7enrsCtoralrq+vq6iosbegrbuYkaWkpraikp6noI6qoI6Sn6Orr5qgo6+or5ijoJyjqp6enpyWq52TmaGblJCWq5qOmZmXkZafkomhnpaVhZKNkY6Vi4B9ZouFdYZ1eIeCc5xqhY+Uk5CJfIuVkpKYlKOTn5mkhYqaiXxzl3N7jIBzfH9qb2RecGpgW2BabmRQYGVQWjpHR0U+Mj0+OS8qJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1eX11eX19hYWJhYWFgYmJiZGJcW2OXlaOnoq+xq66jqaasn6e1qpCPnaW1vLCtraKjmnqeo7KkpbGpl5u5pqOTmaqcjoaKiZyij66eopWon6CSlpmbrouqlo+omamNmamPn7q3pKWZnIyIeYKUjJuTipWSlJGNkpejjZ+fqZ6fuKN/g6+1oq+udKO8orGfd3ifqLC5lHWso56JgKt/ZFxidqCPpZ+El31tkrOco6etqqJlnp+Sc3mal3CAmKiYbX+iqIplnKadkpiYlo2SnJKGnpuQloSSh4+PkomFd2qOhnaGcHuFf39gaIeKlJKLWnWUkGdokI9ze6icm2Z6momEeZlqhYyEb3qAa3JlX3ZxbGtoXGZmYmJwU1s+Tk5OU0c+QFVEOjEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVldYGhmZ1hQSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6Cur6yrqaWoraKnraSSlqu2sbOnm6unrJdzjJ2woKirp5SXuaCgj5yknZF/iYibnoysmqKVp6GdjpaSnoR1rY+Ip5upkZekiZy7tKigmZiLiXV3k42Wk4qUkZGUjZCUoY+coaeZnLKVgIybtZ2zjJKOuqagfqeieqGttYCOjaWeg4uGkLGqr4yKl6SbeoCLrIabnaGnqKeHlYWYd6WbeoecgZengoJ7nLJ6ioahmJqVmJaDkZeXhZuZYnqHkIWPkJKLg21wjoZ5gHB/gIR+hXOFhJWReJZnknSgmnV9mYWjoIiYf5SMhYWaa4+Ohmx4e3FxZ2R3b2psa1xla2pldFxeSVRMUkBFNi5aVVU3KSEwOT4+NzQzNTY4Ozo9Pj5AREk/SUVKTEdTWFtZW2FhaGZaUUg5REw7PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop+lrKyrqKygp6+mpqmlmZSvyL+xopeoqbaekISdrJynoqCNkL6emoyfmqCQfIaPmZeHrJyhlp+gkYyTiYaAkaeNh6OdpJSYnoaeurKonpqSjoVxdpCJlZCKlJCPm4yQkp+Sl6Gllp6rh5+0ibSarYrKh6msiLaFjbCBr6yCqIymmI2dfaiPcnt3nI+nl2iVpHm0jJ+epqeSmMKBf6uImKFynoCapX2XhZWygaF9oZShkJiXgY+UnIuZkot9hZOHjpaSiYNtco+FfnlxhoCDe4N0hICWgI/FZn+ph4+ja56FpJ2EmoGOj4eLmnGPlIVoeHV8eGhodnBoaGxeZHBsZmxYZ0ddUk0zRTQ2TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmlsXFFFPUtNQEpjWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqKfr6eoqKWrn6O3sKmrppqUoKOkq6SXpqu4o6+Aoaidpp6diZS9mZONoZKej3mElpaRh6uZm5yZoYSOi3ebnI+fkIiepJyWmpiHo7mupZqcjIx+Ym2Pi5OQjZCNjZiMkZKgj5ShoZmhp36hp4etnaCWrY+dnJyQhYCgjKmthaONqZmMmn+idYCZlGuCrXZNq3iHjZyRmqimgKmrfYOhe3qnap5/kmtnl4aXt4mefm5gZFmDl4CNe2Roi3KZfXmWbF19l21fUnCDXF9reIJfWGSBfIN/l3CnqmuDo25ypXCfhaBqZ6BtW2+MfWdaYISAYlhQb3dmbXRya2pvXWpxbWtpWGlPXVlGOUE1SERfbDUsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXV5idWBNRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5WdoLigqaOmrJGgtruqrqKZmKGipa2uoZ6vtaOokqGgoKecmo6ZtJmQi5+MlYt1gZSSjIqmlZWZnp5+koWFrKSHm5CKmamZmpuSiKaxp6KWmoiJgGluiIeLjo6Ki42SjJGTo42Un6CcoaR/k4GPoqGUoHaclY+ngqCmf4Wnq4OleIl8hJp+onBzlIiWfJ+NeW2Gm4yZj5uomY6HnXuConN2pmaefnekX5h6fZN0om6Yt7S6dJOIg4C1qGSBxrh7cJW2jHKAmqNic6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGGdmbOWcn2Yn7N1c1uesoNqYm90dnFpb1hrbXNyZl1pXmJMRT1ENlFCWnMzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1PUUBFX19bWlhgYHxkSEM4TVdVV2JhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOVlKO3mKqbk5+NpLa0rK2gmqKdpKOmrp2csq6sk5iimqGkmZqUnqubi4iSeIuFcYCWjoqQoY+SlJ2YfZCJjaigh5eOiZKklJybjYupqKWekJaHhX5qe4d+fZCNg4uRkYmQlKGDl56gnaCei4l3nJiijZ9xoYqHqYebpY6Upql9rYx+eqCZeqOTeIF0loiNnH2Wn4abjpibpYWiZKF8iJaQm41tnmibjm+amXqAi6d9cml0q4Ofg3SqaJWaXZuFdoWeZ6prgLhmXKhwgZxglYxep3Z1h4h+nmiadYaTkpeOgJ9vmpFup5pdqX95u2t+qlyOhF20Z1xucnp4a2lccWt5eWNgZlhiQlFGTzdXQ1JvNUtbWl9OWkRBMjUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4mptJqniGOUm6u5sa+snqacnKmgn6+cnrGprZ6XpJuhoJmWlqCjmYaJjWqIgHJ7l4iMlpaEkZWYkHqKhJWjnIqUj4aMn5KdnYmQqaOgmoySioGAaYGGeX+XjHuJjo6IkJebf5Sjn6Chk5hyaJ+Jn4+LcJKMgKmHmJ6hpZ6me7Cto6K4l3ejs6OkgIiUeZ17q5l+oo6cmpaIl3GhfIWNr7V9a5qRoXl+mLWipKuohJl8m32em390qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJqcXuObICIhJl1m3iGibGzf4Cbk6d3g55uc32VcJp0a6RdlXZIZWRgdHF+fm9mYGxpdnxkZWJRX1ddVFdAWkZRaERTV1xiWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQjxVX2JaZWlWZ2htb2JmZ15hYVxdXmBoYl9lY3ZtXWVnZmtkZmxpaGtpk5yAsK2ZhFNeoKazubKyqJqijJysnJyqlKKspKOoj6CenZuZlpihnZaIh4l3hoFveZWFkZuLfJGTlohygIiSoZxzkZCBiZqVoZuFj6mcm5WLi4t8g2yEhXGCoYx4ho2IiJOZlnyTpKCeooithn21hI6enHullnqpgZWbj4mfm3ynaHdtfpl0oXNyfJ2GmXCTg659pIOlnZmAo29eqGd1omNvpWGc05B9e5l4c3NiooaQfqN0pJB2a4+zjGCCmIlzqrKovH93g21+v6aptF2cbXxwlm1/cqJyXaRnc6ZgaKZtm9SafoabcHl7l2ycfHiXc26ppGdgZXpxgIVsaGZkbnZ4Z2BjU1xmUVFiSFhKVWFXVFtlalxlUUZDS01KS0JLRThPQFFOWFNZT1NRYGZmalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaWV8ZF5kZ2RrZGptZ2hsaJeaf6+qVFxLfqmvsbOvsqObmYWZqaChpI6mqaGZqoqamJiTmZOSoZiOh4V7cH2EaH2Pg5SagXeRjo+Jb3+Gj5OSbJeTfImSk6WXg4+rm5STi4aJeYN2h4Bugp+GeIGShoiZo5h7lKOkmZ+Js6Gitot6rKekrqVwqYCajoWAmpB7pIChmYaYcp6EpK6vipeMgI2kjZWCraCTdrW2tcmhc5SLgZ9gnZepbXqVh6CbdKKId6B+k5eLgXBNZqOScJqHc6R7eXRhg4FrfaBrcWRfnHF9c5ZoeWmztbTGpnOYfXqda5ybq3aFm212eJhqmnt1mHJRRX2zX2p2a3qIZmtoY3V1cW5XX1RZaVBTaElWTVlUVl1oa25WZ1dOS0FKTUtISk9BUUtQZWNqbWV0cnN/eXxudYl7e1RQTmxeaVxraVJqaGlsaGxmY2VgXF1dXmliZGlre19dZGhjamZubWVpbGWhm4iupYNkP5Ohsqqur7WiopCAl6qio6WMpaeenaaDmpeWjpeQj5yTjoiDemp5h2WDjX+YoHl1j4mMgWmEhZKDjIWdjXmNi5amk4OYqpiNkouBiXqAfYt5cJChhnqClYeJlqCWf5SlqJyVlYNmbnicbKJke3Gld5uYcGemgJWKeqR6n5aDl3Ked4GKlZePuW6RiqJifZiglYhtcmmqa3WgbW+mX5ppi5BploeblnWigX6aYIyGjXVwiGJooGWefmmbdW9jZoiBbXGiWl5bYqFtXYiLbnp9c3JkpW14omRnp2iZc4yZcKJvVYmQb6BfZqhUi15UmG5tc2tygm1waWx5dGtwUllXV2ZaVG1JWU9dSVhpaXNqWWtWUVJGVlxMWFNhVWlrX3d0e31wfHxyg3uAc3aNgIR2XlFyYmdjcGdQamhoa2xuaGRnX11eXWBqYmppdnVdXGNoY2pqc21ma21jnKOXpXlkc22Lpq2jqbCxpp+LgJirnZ+mjKOim6OigZaYk46akIuYkI6Ke4dxgIhpi4t8mJtzdYl9kHtkg4eVioqVmYJ8iIeXqJGBo6yQhpGLgop+gICOc2mQpoR9h5SNiJmgj4iTqaadiKZ4lZt+pIiWi7GYnZCCr5eepXaUhnipc6WPhJpupKKMkoSNg7tufaWvgoaFhpOVnJ98pXpyqJWglmaefm+sZJaKlpN3qG2qooGJdomDd6uRpohrkbBrdrOMqWuKhW1tn56SlWB+q4uqdn5+i6Wedp98g6SVnaBqm4h4rGierYy2dHe+jaSTWoOnjqthdXJ0cHx1cWNrf29pbVNXW1ZhYl1rTV1SXUpebW53X1txWVxgW2d0ZW5vcmNydGB3en55cnmDc4R/gXt7jIGCgHZieGRjbnJkUmtnaG9scmpmaWFgXlxha2JtbHpvXFxiaWJtanhtZ2xuYpWkqZyBf52jlqmpnaimrqSZioKYrJqfpYqbpp2pnYWMmo+GnJGFko2MjXSHe4iEb42FfpiTdHSGcpGCbX+LkYeGk459e4KGmKaOf6anjoGOiYWVdoKHkm9si6mBg4yUjomdn4mMlKqin4+AdZSXiH6BeZSuon+Bm3GPhneOiYJ9e3KnjHF9fXqYlpuEj3l7f36HlJWTinaQmJ6gg3t9iWuMhVt5eXJ6cWlufpKJcYB1gY+Uk3GHhIJljH9fgX+Ld3RylHVveW5th2yEhV51Z3eOZYCAhY2omn10e5VqiYhwgXZ9h3dubmiMc3p8mHiFXGxYeY9pb3hycW94eHBda4duamdWW2BXXWZrZFZjVV9RX3B4eWxrdmZra2t3fXJydXRhb3ZidHuCeHV6gnWAgICBeIuFg317bn9sZHluXlduZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhsb2GNk7eopomgopqmo5iknKuioYSEmK2SnqGJm6ebqZiDgZuLf5aUh46KiY1yg3yPfX6PhXuYj3RyhHCVhXt9kouGho+EeX6Ah5qljnyooYuGkJCFlYOGjph3coSpho6SnZCJn56IjJunn5+qg4iOlZp+fomWraePkaaPd2+bj4F4kG5+qIVwfZVxa3B9gaCNgJOOi2hsXIKLi5uano5zlYuIcXRrgXZ0gVlyboeRgX5/jGpdamR7hoSJgGBpeHqae4KKgXWBhYFnd4qGamFwcYF0XnGKgYiOpZSFZYuNg253i4Rxho96cWhoZXyEe5ZbXGtobnZbfHl4dW5zc4NnXG2La2tiWlpfW1lscVxfYVpfXWV0f3t1cHRka2trfH1zfHl1ZG51aG18fnd6fHt5eoCAfm+GioR7fXR+eXN/aFRccWlsdnB1Z2toZF1hWGtoa2txcm5XW2VubGdzem9oam1gi4qpsKGPoqGanp2Xnpioo6J+g5mujqCViJyikaWVf3uYhX2SmYmJhoeKc36BjHaFjIKEl4pyb4BymIaDfpKDhIaJgHqBhIycoZGDp6KIeY6XiZWLi5yXhIN6rYKRmJqVip6dh4ihqp+hoqOLh5ObnKOZlaqhp6afkpqHlYx6do2Ng6d+f5KQk5SdsqablZ+QjbGSl4OljIyVmp+JkJuCiJGKa3yOd3hlg4eRi3yJnoSHjJCJiIGFhJB3fHp0maCIhomdiYSTfn2KgIB1b3KEgn53hoaKj6WQgoWMhoKMkIx9iIyKkYR6bYOFfnqZa3NpYXSKcX56d3dvd3SCXV5vh2huX15aXV1TaHJWZF1dYmxodXx8c29wZGtqaYB9bnmAcmpwcWxngXtygoB4f31/hHttgoyGfHp5e316g3hOY3Zqc25wemVrZWNiYFt0ZnBncnFtVV1sdG1oeXpxZ2lrZIyHnLmelqGgmJSYmZSYpKCefH+arI+fjoagnYueln15lIN7jpmKhoOEh255gYFzgYh+iZSEbWt+epeHhIOQf4CHhIV8h4WPnJ+Th6ughHOLkIaSkYudkX2Ne6qEjpOYlo+cloeHnKWfopqdhYKSmpmYj5mmn6WdnI+Vf4+IdXuGjYSle3yOkJGGmauhnpSdkI6pjZCAnYyIk5mego+XfoaOg294hnF1YH+EkIZ1jZmBg5CDh4V/hYSVbnl2dJKhiouFmoOEjHN/iXt8cnF6h4N6d4mOg5Gmj4WDjoCDiomKd4aJi4x+cW1/gnxvaGxtaF96f2h+fHZ1dnV7eFxfcX5udGBjW11fUmduVGVbXmJraXZ5f3FsbWRramiBf2x0gWxsdW96cIZ5boeAdoKAfoV2cYKNiH57e3x/e4KKYGh7anVoaYJkamNgaVxjdWhvYnVtbFVjcXllcHp7c2VqbW2LiZ62maCjn5KRlZiLmp6fnnt4n6eRnIuHpZWLmJl5eo2FfImRhIyCgoNufIB5c4GFfouRfWtofYKXiYGIjnx+hoSGfI+CkJ2dk4monYBwjIuMkoagoYqFjHyokYiQkpeTlpN4jaOfoJ2WmX+AkJqYkoyaoqCjmZeQmn2Mg3d/go6GoH9+jIyPfJikoaKTmpGQpoyPgZqRiZKXm36Tkn6HjoF1c4Jwd2F+gI6GcouWfYiMcox/goWGj2h4cniLmJGPf5Z9iIpxgYZ7fHB3eoqDeXmPjIKUpJKLhY97hYaHhHaDhImJfGdzfYB5e3Fta2dffnNofHV2dHxzgGpeYHR2cHdkY1lfX1JraVVlWWBhaGp2eYJxZ2tkbGhmgIBrbn5ob3FsfnmHemyMgXOBgX6BdHaCjYZ/fHp/gX1/j2lyg250aWGHaGxiX3FWdG9tbWB4aG1XanR2Y3V6e3Jiam96iYyesZGlpJyOj5ePhpygm519d6WhjpiAjaOLiJqWeXuGh36DiX+JgoF/cn97dHaDhX6KkXhnY36Gl4qCiox5fYCNg3mWgpaZmI6XoZx+cIyCkZOGpZuHjImDppWFk4uWmJOSd5GdoKGXlJZ5fo6Xl42WmpyjnZiSlJp4jYSCd4OVjZ1+gYmNjHOXo5+ilJmPj6KMioKWl4OSlpl+mI18iI2BdnF9bntkgHyLhXGHk4CRgmyHg4GAiYVmdW97hZGXi3ySd4uIe3+Fe3pxfXeIhHmDj4iKl6GVgYOLdoiEg4J3fIOKh3hgenl+dH94Z21lYX9qandzdHZ+cXxjY2BzbnVybWFaYV5bbGVSY1lhYWhrdnmGcWNrY21maHyDbWl1aG5waYB9gnltkIZygIODf3R8g4yBgH16goN+fJBtdolzdW1limxqYmJ2VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPm62XpqeejYyXh4afk5eZfniqnYuZepedi4yYkHl8gYx+fIR8gYOBeHR5enR9gISAiYuAZF99i5WHfoSGdX1+i399mIaXlZiNpKKZf3KHe5ORiaaPjI6Kk6CRg5KQlZeRi4GPmJ+akZCQc3+NkZOJnZ2eppeXjJSVcouMiWuEl4+ZeoeIj4lvl52apJSVi4yei4aBkZx/kpKVhpmIe4qKgXlxeWt1bHx/i35uhpODlXhxgoR+fouAZXJpe3+Wl4N+jXOPh4N4hnx1d398hH97gouDi5Ojj3iDgXSJh32AdHaCiYVwYXx2e3J9cGJvY2R8Y25wdnN4d3N0YnZgb2x2bm9cXF9eXmpeUF1ZY2FobnR7iWtgaWVrY2l3h25nbGlrbWiBfXt3b5CIc4CEhH10gYaJe4N9eoGEfX2OcnqLeHhtbIdqaF9pcmOHZ3FvZXdnbmxheWlrfXt4cGF4bYuAmJipn6OonYqKkoWKnYuVmH54r5mNl32flJGXk4h3fnuKfXyAd3iAgHB1dHxvhn2BgYp/fGFcfo+Rhn+Dg3N7gId6j5KJk5Kdk6acloJ9gX2OipGjiI6KjZiajYaSmZSWjoqIjJKcko+MjG6EkI+RiJ6ZoqCWlYmWkG2HmINlhZiOk3qJhJCKcJaalKOTkomLmYyBf5CdfZKOkoyZjnuKhYdzc3ZrcG51fIp0boaRj5NxdYF8gYGIfGVwbHl8mZN8g4h0kImAc4d4bn98gIV7hIuHgouUp4x6hnt+ioV3fnFwgYeEZWh5dXZxfGJfcGFrdF9xant5eWxzcGV5Xm5sc21yWFtfYGFrW1BXWGVjZ3Fxf4dmXWlpZ2JncY1vZGloZWlpgXp3dW+OhXSBgoN7dYKIhXiFfHiEhXp/iXd/i3t7cniDamtfcGh0gGtyb21yZ29sZXxjboB6d3Fsd3eKfqKXoaegppuHi4uBj5yHk512gquVk46HoY2WlI9/c3x2hXh5f3Nze4Zrc3B6bot2gIGIb3FbWX6RjYeAf392dYCAgKCHkouUnpiilZh4in+BjYicnYqPhpKYloWJlZqQl4uLjI2MnImOkINtiYuQkYqdlqGbl5SFl4dpg6KBZYSciZB+i4OLgXeTmJKfk5GJiZSNfn2Ol3uRjI+OmpJ8ioCCb3ZwbG1vcHuGaXSDj5mLcXeAdYKIg3lmcm51gJmOe4eDeZOQeXWHc2+HeoSKeYqFgoeNmqKGe4N1got/d3lubIGFg15zdXNxcXlaX3FhcGtecGp9e3FtbWptdmBwb2txbVlZYmFiblhRVFpmZ2N1cISCYl1rbmRjZmuSbmBnZ19oa4F1cnNwi4B1f4OAeHWAi4B5hX94h4Z3g4V8hot/e3aKf2pxY3xjhnxucW10amhvbHZ4X3F/eXx1dXSAg36klZqsnqeWhY2Ef5eUg5CgdoyglJOGi5uNlo6LeXF4dIJwcoV0cXaIbHBudm2IdoN+gG5uVVGBq5SHg3h/d3KDeoOggpOClZSZnJObeJJ7g4ySo5mTjomVmZKEh5eZjJSLiY+Ph52EkIp8c4uFio6InJqfm5WTf5N9aISbhmeFn4eRhJGCiXGDkZiQm4+PjIyPjHd7kZB6jouMkZaMfIh8gGt2am5rbGx7f2J6fo+XgXZ7gXiDjH15Z3Nsc4aVi32HhXqTj3B5g292i3mIinmIfIGLj52dhHt6doKLfHdxamyChHtgeHFubXJ0Vl9wYnJhYG1venFob2Zmc3RpcWtid2VdV2ZgYHJTUU9cZmVdeXCIfGBcaXJiYmVmkWpfaGVbZ3B+cGtxdIp9dnyGgHV1fox5e4WBeIiDc4aFfoyMhHx5lXhmcmuDYIh9b29remBqbnV/dV90fXmGeHRzhX14oI+ZsJuljoKLf4OZh4CMn4CLmpSPhYiYj4+PhHZ0d3SAcXCFdHByhHBraXdug259fW11c1JNgt/IktaTe3B1hHaEoIOUd5aRmZ2RmXuUc4WQnqGTk5CJk5yUhn+XloiNjYiSjYibf46Ad3qNfomMipybnJqUknmMdWaHkIVrh6KEkYiXg4ZjjJGZj5WLl4yMiotxepSIe46IipKRiXmFfH9se2VzcGtsenpbgXmQkIF6fn+Aho57emhyanOKjomBhIR8lIprfX5tf4t9ioV8g3iAjpSZmYp8dXeDj3hybWdxgIVua3VwaGp1blNfb2VwWmBscnhna2piZnhycHBjYHdgYFZrX152UE5MYWdiXXpxiXVdXGV2YWJlZY5kYWdiWWlzc25rcXaMfHR6hoJ1dn6Lc4CGf3uJf3KJiIGRi4h8fph2ZXNufGWIfm9wbIBZbG55eXNgdnp7jXZyd4p3eZ6Lm66aoJCChXeIlX58ip6IhqCSj4WMmISTjoeBdHhweXFvhG9tb39zZWV5cX1ten1qaGtjpJrB3K7woXNsdoR2haOGk3CXkZahlZyBknKGi6KXiY2VipCdloOBlpCFiY+AkYqJln6HenV/iXiHhI6cmpiYjo92iXRthYiJfImig5GJnISFXouTl4uPiY+Li4SJbXuWgX2IhYmRj4Z2hX1+a31keHVqbnlzWIl7koiFen6BgYaMf3llcml/iY2JgYJ+i5WEa4F1bYaPgY6DfYF4fo+UkpiPdHJ3h4x1c3FndnqEY3VucWNqdmhSYXFnbFZfb3R6YXJkYGl9cHJuW2NyYGJWbllceE5NTGRmYl53c4luXFxkeV5fZWWFYGNjX1lqc2tua3N3jH10d4SBeHd7iXGDhH1+iHt0i4mIloaMf36Xc2d1cnlsjHtudHGBV3F6dnlyZXd5h41pdoCJcn+chpimm6OShH1xjJR3eYyehYWhjY98lo2AmYiEe3N3cHRqcIFsaW18dV9heHd8cXV8aGBkfOvatcnD3IdzbHSCd4ubiY9qmZGQnpaUgYlxhYifjYSLlYqMmJR8jZOIg4mPe5CLhY+Bf3Z4g4RyiIKTnJaUl4WMdYZ+b4OBh4aYoYKTjJ6DiWGDlI+HioaJjYeBh2l8k399g4SJjo2CcYZ+f3F3aHZyaXR3bFqNfZODhX2AhIGEioJ2YXJriICOiYF+fpGQfW2Ba3eEjYSQgnuAfH6PkY+ViG5weYyFdGtxbHN5gmF1am9dbHdhUmVyaWZTYHB2dWFwYF1og3FzaldnaGJpWG1WW3VMS0xlZ15ic3OFalxcZXleXmRne2FkX11Za29mb2p0eIp+c3OBfnt2eohzhYN8f4d2d4qGj5mBjIJ7k3Vsd3Z5eJN0bnh7fVh6hnGAb2d5d5KDZHaGhXCKloWZoJqiiod0b5KMcXePnH6LmomJfKB/hJmAgXhydG5vZHJ/aWZteHhcYHl7e3FxgGphZ2F/1baOkaZ4bnF3fHGTkY2Ia5qPiZ2TjIZ7aYeLmYaBkpGGh5iOfI2NgYGKjXyPjH2JhHp0eoN7cYaAlpqOk5OBiHSChXSCf4mRnJ2GlI+ffohif5OHhYiEio2AgINnfJCAfn+CjI+Qfm2DfIJ0a213dXR3dmxjjoGPgIV+fYZ/hIl/cF9xb4R7jouBe36QiHlwg2V5gYmFioF6hHx+ko2PkYNtbnmLfnVtbmtse39kaWxqWW53WlNqc2liUWNyeG1jZl5aaoNuc2JbZ19kbF9uVVtwT0hPZ2VcZ29xgG1aXGNzYFxjbHdlZV1dWmtsY21qc3eGf3Fwf3x9dHiGeIWCfICHdXmJgZKVfImGdoiBcHh5e4STb257gXdeg4B0gm1penSUc2dziHxxkpGDmZ6boIaIdnaUf213lJh/iJCEi46afYyadn52cXBsamF1fGdianV6W2B4fHptcX9lY2hnV52PX3FzlrzEhHdxlIqQgHSYjIedlI2Ic2uIj5WAe5SLgYSbjHyKhn18iYx/k4d0iYV2dn2CcXWGgZ6VhpSPgoJxfodzg3qIlpuWhpKNnICIZn2TgoCGg4mJcoF9Z32Le3l/f4eLj31pgHyDdmZveXhzd3Rsa4+Gi4KLf3mDgYSEgGtecHd6fYuHhHuAjn9+coBoeIGGiYSCd4J6f5aLjot8bWt6iHx2dG9paH53ZV1xY1hwdFNUb3NpYk5odXlnYV5dWG+Ab3RZZGFdam1gcE9ZbFJEVGhiWmxvbXtvWVtebWNaY293ZGdcXWBramNsaXN3gYNxbn57f3R1g3qEgnyChXZ+iYGWkXiDinSBiHN5eX6NkG9ve4FxaYJ5en5ubXx2lmtqeIR0a5OMhZ6YoJmFiG9+jHZqeZmPgIKKgpaYinqPlm96c3FsamRgdHtpYGZye1thc316Z3B6YWVkjrGyd0tiWqXa0Zdye5KMkXl/loyFmpKNhm9shZKReXmThoCEmYp8h4B5eImKhJWAb4qHcXR9e2p5hoOlkYSTjIJ+bn6CdYJ3hJqXkoqTj5SFh3B6koR+g4OJg2+BeGiAhXhyf3+Diod8ZXx+g3ZjcHOAaXlxb3WZjYaEi3x3eYCEeoJrXG98cn+Hg4h9hYd6iHGAbXCChY2Cg3GDd3+Yi42Dd21tfoN/dnplaGp+cmFaeFpZcm5OWHJ0ZmBLbXd1Yl5cW1l1fXJwV2ZdZmpxX29OV2lTP1lnX1twa2d5cVtbWWtlWWNweV9oXV5lbGhmbGlxeH+Hb21/fYF1cIJ7gIF/g392gYWJl4pxgo1xe4Z8enmElIx1a3p/a29+dH99b3J8e5Rwb4B/eWaSiYKhmJ2Rg4Znh4RwZ3qXin6AhYKZioF8jY1peHJsbGZfYW95bWBib3lcZGyDemFxdl9kZdXrvosyOj6LjoByeYaJj413hZmOf5SPjX9ubYWMi3V9j3+FgpWJfIN4bnaHhYKWd26HhGt1e3RleYOEp4yDj4yDfW1/c3WCeISaj4uPkZKMi4Z+e5KHeICFjYNsgHJpf354bXx7gYqDeGJ5hIJxZHFofm51cnWCnIyBgIZ/dHZ+gHOBb1trfXN4iIGKe4Z/fIh3eXBrh4KOgolxgHd9lImKfXRtanaAgHV1XGlpeXFaV31TWnJmTVtzcmZcSnF4cF1bW1pddX91aVliW2dlbmJpTVdmUT1eZl1edmZfdXFbWVVvZFpkcHlbaF5gZ21namtocHh9jm1qgYR/eW6Be32Bf4J6dYKBjJOFcICLbnd9gHt7iJOJgGl7fmp0fHKGe3N3fX+MeniEfnxrjIyDm52WjIKBbI1+a2h/j458fn+DlIJ/fYqIa3VxZ2ljW2Nnc29gYWx0YWhwiXphc3ReYmOboJBuXDVar7V1aoCKfpOHd4iYh3WQjIp3cG2FgoZ0eYl4iX2TiHp+c2d1iH59l29xhn1odnluZXqJhaWHgIeNiX1tfXR+f3uKl4aBkpCYiIuEiXyPiXJ8foV8aX5ta4B7eWp6doKHgHJgd4F+cWRyZ3WCbnV7hpWSgn2CgHB3enx1fm1XbX11c4p/hnaGdIKJendybYh/jn+DcX17fJGHiHptbWhtgoF1bl1oZnRyUlx8TlxxXU9cc3BkVktzeWpYWVlaYXGBdWFdXWBmZGhoZk5aaE5BYWRcYHZhXHVtWFhTdGFbZW9yV2pfYmhrZ21saXB3fJNsaISJfXxwf357gX+CeneAgImLhHJ7h29xd4R/e4mNj4RqfntueHl3ind9eICCh3+Efn56bYSMiJijjYWEe3aLemtthYmSeX17gpKAgH2KhHBycGNmXllnX3BwYGFocGZqb4l0YXRvW2BkanZ7f76cp6TJuHKFhHOUfXmIlIR0ko2HcnNwhHqCc3WGdIh3lIl5eXFkd4Z6gJJocYR1Znd2ZGp8hIiegoB/jo59cX5yg3h+kI6Cd5WMlI+Igoh6iYlseXp/dWh6aWx/eXNpenaAg31oYHiHfWpqdGh7gGp2gY2RlX98fn5xfHZ8dH5iVXV7cXKIgoJ7gXCGiXd4b2+CgYt9fHd8e3ONhIF1aHBnbIiCcnBdaGN0b0xmdkxeb1ZUWnRuYlFPdHliUlhYXWFwgnNbYV1oZWVjamRRW3FJRGRiXGRxXlx4aFVXVndeXGZuaFZsXmFqZ2Vubmhwd3qTbmmIjHl9c3t+eYKBgnx2fYOIhoNwdoNzbneCgn6Ii5R/cYB8eHp6gYt0g3h/gYGChHqAdW99iYubnoh+hnt3hntndYeNkXp/gHyJhoR2j4BncG5gZVxYZlltc2FhYXFsbGiJbmBzaVheY22Ad6naqceGiLNyinlwjnZ9iJCBe5SLgHV0dX52f29wf22FdJSGeHRsYHmBeYiOZXGDb2d1blttfYGQk4CBeZKSfXd6bIV0f4+Kg3KViZGPh4WFe3+GbXV2f21od2ZtfHZtand2f398YGJ4hnpodXZjfntodYaPjpZ9dYB2coB6fW2AWVZyfW9zgoZ+f3driIZzeGp0f4KCfHl7d3pxin97cmdzZG2LhGxzW2pfdmZJb29MW2NYV1Z5bWJQU3V3WVFWWF5gcoRvXGBjbWRjXW9jVF1yR0JmX15maV1ae2NSVlx1W1tna2FWa2BgbmZmbHFocHZ4jnRrjox1f3Z4fXeBg4F7dH6DiIiDb3F/dXF1fYWBiY2Le3d/eIR8fYWHeId8fYF+hYB7fnJ2eIuOn4yJe4p3dYN6Xn6Hmo15h4R0hoeEd4l7Ym5tXGJbW2FVanRkYFtob3Bnh3FhcWZXXGNrf3zKzoe6omtub4ttcoRyfoaLf3uShXp5dHl1dHpqbHZjhHaSgnZvZ198gXmLiGVxgGpqcWNYbXuGnImDgnKXk3d9e22Gb4CJioZwlo6QiIaMhHt5f3JycH5naHJjbXhxamxxd318eV1leYB3aXV4ZoJ3aHWHjI6VfXOHam9+gHhufV1XcH1tc36Je4Btbop/cHZmdn5/foB1e3B5c4V7eHFlcmBti4FrclhrX3hdSXBsTldWX1RVfGtiT1R2c1JSVVdeYnSGaV1ga2pmYlluYVhjcEdBaF1hZl9cVnxeT1ZlcVlbamhdWGhhX3JmamhxZ3FzdoZ5bpWKdH97d355g4eAdXN/hYWOg3Bwe3h3dXmGhYeMhnp8f3WLfn2GhISHf35/fYd/fHh2eXaRk59+jX2LbnWAemSEiJiGdJKKb4WFgnqDdWNuallfW11dVWhzZWBZZHJyZ4FyYWtkV1pfaX94vq56n7huYnSHaXV8cnqEh3t+jYB3eHJ3b3p2ZWpvYYd1joFzamJefXd4ioJlcH1oa2taVm94i6SBhX9wmZJxf3d0gGx/gI+GcpOHjIiFiYV9eXVzb2l5YWptYW12amdra3l3endbZ318eGVyfW6EdGZ1ho2GloBwi2dre4N0bHViW256anN6inuAZXSHfG1wZ3R9dnx+cHpqeXqAeHZvZWxhbIl9bG5WamF4VktrbE9ST2lOWX1oYk9VdmxNUVRVXmZ2hGddYXFoZ2FXaVxca2lKRWtaYmVXWFV5Wk5XbmpZXWxlXVplY150ZmxlcWZzcHSBeHCZhXZ/f3h/fIWHfXVzgod/lYNuc3l7e3NyhYaIiIR5gX12j399hImOhIGDe36Lg3t3fHd2mp2XeoqDh2p2fn1shIaVgXKPgnGFgn6CgG9mbGdYXVtcW1RlcGVfWGNydWl2cGRlYldbW2h/cG9ygHOKZWZ6f2p1d3R0hIV4gYV6d3R1bmt6cGFoa2eGdI2EbmZeX3xveol9aG13ZmpkVldzcI6nfYR8dpaQc3txe3hseXqPg3WXfIeGg4eEfXVxc21odV1taWBtdWRnZml6b3tyWWeBdnVocIB4gnZid4WLfJWCb4xrbXuBcWZzZWBreGZxdYl6fWF1g3Vpa3F0eW94d3J7ZX19fnd1bmJlYGyGfG1rVmpjclRMamtQTE9wSF58ZmFOVnVlSk9TWGFrd35mXWdzaWVfV2NXYnFdS0trWGRiVVRVc1ZNWXZlWl9sYFxbY2Vfd2dtYnBpdG9xfnV0mYF3f4B4gH+GhHp9doKDfpiFbnJ0fHt0cYWFjoGAeot1dJCAfYGUjoCFhH1+jIZ6foF2e6OlinmJhoVsdXx8dYSDjXtvhXN6hX2Cg3VuamllVl1bW1pTY25lW1hidHtqaW1oYGFXXlppgGlsb4BnbWJpe3prdHV1b4aCeoF+dnVuemhqeWpfZW5ogXeQhGhlWGF2aX2GeW5pb2ZnXVVYb2mPqHeBenyQjnh0bn1tcXR4jX53lHSFg4CFiXZqc3ZoaW9cbWVebnNfZ2JqeGh7bVttg3J0am+Afnl3YXeFhHiQhnOIcnB6f3JjcWhbbXZkb3KHendhcoBvZ2l4c3Frd3ZzdWKCen12dW9jYmJtfHxra1VpYmdUTG5oUEhSbEVheWZiTVRyXkpNVVllbHh7Zl9tcGpjXVZgVW9uV0pTaFhnXlhNVWxUS116X1xfbF1dW2JlYHpobGFvb3Zub3d1eph9d4CBeYCAh4Z6eXqDfYGThHF0dH56dnSFiJB+gX2QbHOVgXuCn4V/h32AfoaCgIp7dYSsn396iIiEbHKCenaBgYJ1bodvfYB0ioBqb25lZFhfWlpaVWJqZ1xaX3WCaV5tbFxhV1tca4FlcXV9aWpebXh3aHV4c26HfH5+enZzbHpnaXdnXWRzZ3p3koFjY1Rkb2aBhHZ2ZmhqYVdWWWhjkKhvf3d/io56cG97ZndteYp6do5xg31/f4duZHd0ZWhpXWxiXnBwW2dfbXVlemhddIBucmtxe351dWJ1hox7iIiAf3hydX50YXBsWHByYW9wg3p0Y3GAa2Bsem5paHl3c3Bkg3R4eHRwZGBjbXJ9amxUaV5fVUx1Y1FHV2JHY3dmYUxUcFlLTFhYaGx2emVkbXFmY1pYXVh2ZlRKXGNYaVhYSFdlUUljeFtdX21bXlxiY15/aWpgbnR4bW9udoOXeXKBgH1/iYyGfnV2hniGjH10dXWCeXp6goyOfX6FiWp0loF7ip19foV5gHt+fIaJc3GProx7e4eQfmZxiHp0fn12cm+GbHx+bZB6Y3BwYmVdZVZaWVdjZmtgXV1zhmhZcW5bXlhaXGx7YnF3dmxjXG50dWh1d3FuhXl/gXp3b290ZWh0ZVtndWZ2dpJ6X11TZWVqgoFzfGFjaVxUV15iZJClaXl0goWQeGxteWZ3bHuDeXSHcoB4fHmAaWV3bWBnYV9rYF51a1lmXW9vYnplW3d8a25ucHh5dHVlc4OTf4iDiXp2b3J9cmF4Y1pub2BvcIB6c2VxgGRebXVoY2Z4enJrbYBzcntxcWFeZW1ufWRpVGhZWlVOeV9SSlpZSGN1ZGFKVG1VSkxaV2lscntkbGxzYmFZWlthdlxUS2NdWWpTVkdZYU5IanZYX2FuW1tfYmNdhWloYm53eW1vanaBkHhtg36AgpKIhIF2dYl0jIZ0cXZ2gXd9fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OHhHNwmaJ6e4CJlXlldYh6c3l3bHRwf2x5fHCSc15wb2FnYmxUW1pXaWRtZlxccYllU3JuW1lYV2BsdmRqdWpqX1tudHJtdHR1a4Z9f4B9d29ubGRpcGNba3JkdHaOc1xXVGRgcX9+cYFcYmNeU1phXGSTn2VycYWDkHNranhsbm55eXpxgHZ/c3t6e2RmdmheY1thaFxed2hXYl5waGF3YVt8dmpqcm94dHN0aXGClYOHf4V2c2pwfG1md1dbaWxhcHF/eHNlb35aYHBwYV5pb3xranJ9cW92aW9gW2RrbHthZlRnVVhTUXdcUlBZUkhkc2JgR1ZrUUlQWlVrbGt8ZW1vcmFbWlhZbHBXU1BmV1dpU1RGWlxPSXN1WGBjbmNYYWFiXYxqY2Vtenlsbml2eYZ6a4R9gIWZfIKEeX2IbY+GcW92en10goJ9i4+Dgpd0eIKUhYGfiXWBf4F0f4Jwh4N2b6KXc3uGi4d7ZneLb258cGd4cXtsc3ZzjWtedG9iZ2VrU15cVmhibGxbXHGNZE5vbVxWV1VnaXRoY3RlZV5acHZvcXZ2emyIfYB9iHeQc2Nka29hXG5tY3N4h2taVFZiY3d8fHCEXGNfY1RaYFpjl5VjbnCChYlyaWZ5bmRydXF6a3l0dW97f3ZfZ3NkXF9XYmRZYXVlVV9gbWRhcV1dfm9oaXNxdHB1dmxthZSCiXyFcXJnbnxvcW9SWmVpZHByf3VzYmx1VWJxaltebmR7ZGt0fHFxcWlsX1hkaWp4XmZVZFVXUVZvWFFXVFBIZXJfYUZYa09JWFRWbmlkfGlreGthV1xVW3RkU1JWaFFZZ1RTSFpbUE55d1tfZW1qWmJgX16PbmFna3l2bm5pdnZ/fm2EgH6Gl3t/h4GKf2uTiHJndIB7dYCDfomOf4uTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYt3eG56jWBlfXFnenR5bG1xd4NnZHxtY2dnaFNgX1VnYGxvXF5ujmhNaWxgVVZTb2Zza2Z4ZWVdWnJ2bnN7eXNuiXuAd5x7emthZWxtXmBuamVweX5nWlZYX2x4e3pvg19iXmdWWWBYZJyIYmtwgYZ8d2tqdmxbdXBqeWl1cm5vfIFzWGtvYFleVmNkWGVxY1RfYmlhYmxaYH5rZmxzdW9teHZsaIaMf4l7iG1xZnB7bHFsYVhfZ2ducn9zcl5pbFNlcGRVYm1heGFvdHp0aW5ral5XYGZodVxkVmJWVE9ZZ1NPXU9QSGVwXWNHWmpOSmBLWG1lX3hobn5kYFVeVF11W1RSYGdOXmJVU0pcWlFadnZdX2ZtaFhjYVtejnBjaGp3cnNtaHZ0eYJzgoN6iI5+fIqIjnluj4p0bHOCc39/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6OjY2NjY2NjY2NjY6NjI2Njo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCS5KamZmZmZp6bG5tbm5vamZnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTM/k56cnJycnXdlZ2dnZ2hjX19fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaNjo6Ojo6Oi4qKioqJiomIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5GLko6NkYiPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyMjI2NjY2NjY2NjY2NjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoWNh4aJhoiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCQiIuGhYSFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkJCIi4SHhIaJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMkIiMhoaIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6fHp6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pi46Mi46Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTkpKSkpKTk5OTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKRkZGRkpOSkpKTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSko+SkZGSkpOGhZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCRgoCSkJGSjXWHkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CIcIKQj5B7dYiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4xzbomPiXJ4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjHZteo+Cc3iGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHc21tgnl0dYCFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxZWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3RhXmRfYmpwZmhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYV9tbF1mZ2dlYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpaa3dsYm9zamJaWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtqcmtfbHRzZ1FRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OXGNua1ppc3VwU01PUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0VDRUlWYmZrcXBubWxaTUxOTU5PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVDR0hJTltnaGdxbm5pZmRgX19YTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8PUhZXFteZmxua29tbWxraWlqYlFHRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7Oz1KWmhubnBqbm1ramxsZE9HRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozo9RWBuc25ubGxsZlFCP0NGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN0cnF0eHh5fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5PEhcdHVxZVA+Ojs9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT48OkFqfGk9OTs+PT4/QEBAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9APFxuQD5ERT9AQUFbYzw9PTs6PT5BQUA+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdIODs6PT5BOklkPTw9PDg6Oz8/PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw9PUlMRkZ1d003ODg6Oz4+VmpBOzw8Ojo7Pj8/PT05Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3J5STtcf4N/enx3Vzw9Pz09PkVodEw6PT4/PT0/QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFHcnlrYoOEg4KDgH1ePkBDQEA9SnN7WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEVudH2CgoGDfn2Edk1BQ0VAPz5Ze4BdP0NFSUpJSU1NS0VDRkdHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8ent7fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRkZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fH1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSExNTE1OTElGR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINWbISHhoaGh4iIh3xQS0xLSEhGRkREQ0NAQENDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pUgYOEhIKChYaGg4KGhYSEhoaGh4eGinVLSkZCPz9APz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgICAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpJSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMj2hDQT04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJR09SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouMiWBDNzU1NTc2NjY1NTg3MzU2ODo4NzY1NjU2NzY3Njc6Njc4ODk6NzU3ODk3OTc3Njo8QEdGSUdJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDY3ODg9Oj1FQ0JlhYOBgIKDg4ODg4aJi4qJiYqKioqLiYqKh2ZJNTlANTg4NzQ1Nzg1NTc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc2Njk6OTg4Njg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhIWGiYqKiIeHiIiKioyLioqMg2VQWkM6PD0+OTk6Ozg6Ozk6Ozo6OTs6OT09PT47Ozw8Oj47OTs7PDs8Ozk6PDg6Ojo6OTk5PD88PEFCREhJTUtJS0xXb3JzdXN2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuKi4uMfWpTPUJERUVCQUBCP0BDQUA+PT4+QD8/P0A+Pz09P0I+QEE/QD89QEBAPj9BPD48Ozo7Ojk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4uLjIqLdEVDR0pMSkpHR0hFRkhHRUJBQENFRENBQkJCP0BESEVDRUNFREFGRUZERUZEQEI+PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyMi4uJWkpQTk5MT0pKS0lJSkpJRUNERkdGRENFRkRCSElLR0hHRkhHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjYyMi4yBbG1VTk1PTEpMSklKSEpGREdJSElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7Oz06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjIyLi459YFhQT05NTE1KSEhFSUlFS0lHSkpJSkdHR0tMTkxMSEhJSk1RTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNUbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIyLi4pfVFRST09OS0pHRkJHSkdMS0ZLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRkZIRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIuLjn1aWFRUVlRPTUtKREVHTE9OT1dVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09QkBCQkdWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyNj4yMjGlZWGtiRlRRUVBKOztSU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0ZGRT8/QUFFQUNHRURFTFhSTVRVVlhafIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH5hiouLh21cZVY6WVlYU1E/QFZVWFxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU290dnh5eHd6eXp7enp8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKjHpvcFlbXFtSVFJWVlVbWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeEi35nWVlcWVRWVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ11bXF1dV1JPU1BQUlZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn6AfF1RVlhVUlVTUVFMT01LZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtcXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fn5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xV0pMTk9LTktJSkRFSUVDPlRkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3x9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eXFlVUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11MRD9DQ0NDQkBEUEJDQUM9Q0lHVkBITkxHXWlQSEZORkRFRklHSEJESEdJS0dEQkFEQE9RTVJkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fX+DgIODgoCCgIKBgmtNRz9AOzs+Pz8/Pz5rUEpgRUZISUVCP0dMTkdNUlVJQkU/Pzw9PD09Pz0/QUNDQD89PUI+Sk5HVW50dHVzdHZ4enx7fHx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVVVXUVFXVVBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtNV01IR0BCPDk3NzU5OT07Ozs4OTg6PzxCSD9cc3R1dXV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BfXVpJSFBSUU9NUFFOUVJUVlhTUllUT1laW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZGSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BWV15aWE1LVFRTUFFVT0xSU1RYWFRUWVJNV1laVlhYVlhZXVdXWGhza11WYXNrYWFfXmRhX15ZVFFOT05MSUhKTElJRkNRUFNbV1RUTlFTWVNcZVVPU1NRTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTpHbnF0d3h5e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1RWWFhZU1VUTEtUVlVVVVdQU1VXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTFBTU09NTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz49Ojc4NzY1OTk2NzY3NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF1SVFpWV1VUV1RSWFhZWVlTVU9KR09QT09NUkpQUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMSk9SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0hGTE1QTUcvRV9SPjM/PmpvYVNSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR1eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nU1FTQUdVUE9RUVBOTU5NS0xLS05PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTExLSTw5ODc7PkA+PD1BQEI9PkVIR0NFRklHSkpARkFBQEZIRUpPSFFSYVxRUFJPU09PUExMT01MTUxNT05bV0tNUU9HSUhDSEpMTEpGRkZFP0JDPjxCRz9CP0FkcHN3enp6e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENEPTk3Nzk/Qj47P0JAQD5ARElFQ0dHSUdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xNS0xNTU1MTE9OU2ROSkxSSUlJRUFISkxNTkpHSUdCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg6Oj9CPzxAQkFBREVHS0ZDSElHR0hDQz9CPz9AQT5ERUNLTlJUTEpJTVRHSUlKTEpLTElKTU1PUFJQS0dDTEdDQkpKTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3p5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFIS0RHSEhHSktJSktERkI9Pj05OTo7QEI/PUJCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISUxNSEpMSElKTEtNXVJISERORkFDSkpNTFBNS01KS0ZHR0pNTlFOTGJtaXZ2d3p5e3p9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjpAQ0A+QkNERUlFSUpMRklJR0ZGREI7QUNDPkBDRENER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lHRU5IQkZNS01MT01NTk1LSEhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lERkZFQ0NCRUBEQj4/Pjo7Oz06PT5DQT5BQ0VGSkZJSExIR0dHRkVDQD1ERUI+QUNDQ0RHSElHTVBKRkZHS05PS0ZISUZFREVJSkhKSUZIT0tDSU1LT01PTk9QTkpKSUxSVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFR0NCQUJEPUJBPkE9Ojo9Pzo9PkBCPkBCREZKRUlGSUhGRkdFQ0JBQUZGQ0JCQkRFREdHSUZMUUxJT0pKTExJR0hFR0ZEQ0lJSEtKR0tSTUJOTk1QTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmVmZmRoaGZuamZtbWhra21yaXF2dHNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREU8QUBAQzw4Oj0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDR0VCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFSUFBRTk9NTlBNTE1TV1ZYWFVYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRTw/QkJEPDc6Pj06PjpAQj4/P0NFRkRGREVIRURFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR05LTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFJPUU1OUU5NUFdaVlpZVlpdWVhhYGBgXmhlY2BkZmhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXd1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSEhHSURCQ0hFPEBFQkU9ODk+Pj08PEFCPT8+QUJGQ0VDQ0lEQ0VFRkdHR0lGR0tIRElIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5LT05PUlVWT0tVV1NQU1FSTE9RUE9UWVpZXFpZW15eXWBjXlxhY2tiYGRnZ3KFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdExJS0lLRkJFR0U8QEdDREA6PD9APz4/QkE8QD5BQUZDRUVESUVGRUdGSEhGSEhJS0pGSkhIS0hGRkxJSEdKR0xMTUxMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1JSUFZbW11eW1xeX19hYGFkXWNgZWZgZWhqZHNzZmpnZ2tvcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQ0VERTxARkREQzs/P0JAQEBDQT9CP0FDSENGRUZJRklGR0RJSUdJSEpMSEhKSklMSkZKS0hJS0pHS0tNTUpKTUxOTk5QS09RUlRYVk1OVFZUUlJRUExOVFNSV1tdXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTExMTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdDSElHSEpGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdISklJS0hKSk5MTktJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHREVLRkVKTUxLTExHR01JR0pLSEtLSUtLTkxOTExMSUxNTFtzYmRwXmxtVU1OZnNdZmZxbG50Z3BpX2FZbm5icHBia2pqZm9xdGV0bm9cb3VncE1KcXl2a2Fga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdCRkNGRUZFRENISEdERUtIR0xOTktNTUZKTkhKS0pJTEtKSktMTU5OTU1KTU1OW3Jvb25wcGxrTVBRbFdNaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcF1fcmtxalV1eXhvY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGR0JHRElFRUVCRklISEVITEpHTU1OS01OR0xNSUxLSUpNSUtJSktPUE9OTUxOTkxcaGR1XWxxV2xOUFFtVFlrXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNHREhHTEhFQ0NIS0lIRkpMTEZOTExTUkxHTExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5Zcmtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmltdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFBPkREQkdESElNSUZDRkpMSkdGS05MRU9KS1dSS0dLSkpOSUhKTElLSkhIS01NTU1JS0tLU2tjW2leX2ljcnJaX1lqbl9lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERUNGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElHS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xWWVtdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZFQUVDQERIREZHQ0lLTEhGREdLTElFR0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJR0hJRUZMSUpMT0xJUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CRENCRUlFR0dGS0pLSEVFSUpLRkVISFBLTU1KTVJJR0VBSEZKSUtMSkxKSEZESUZERkdFRkpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNHSEZIR0hLSkpJREZLS0tFRklKTktOS0hMTkdIRT5HR0xJS0xLS0tJR0RIRENERUFGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFYVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR4eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFR0lGR0hIRkZJR0hHSEtJTERES0tOTUxLSEtKSElGP0dHTktLS01LS0tJRkdDREBEQUhJQj9JSkhPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUVtXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHR0lHRkZJTEpORkRLS01OSkxJS0pISEZCSEhRTUtLT0xKS0lHR0VEP0VDSUlCQkdGRVRdWV5YX1lfW11VWFhPXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYSFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBSEZER01SSENRSkVHSEhFRktKTVBFRklKS05MTElLTElIR0RIS1FPTU1QTExKS0hJQ0RBRURJR0NCR0ZEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1PWWFcYGBfYmNiXWFiV19fVFBPT09XUVxbW1xcXl9iZmZlbGVvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUpLTkxLS0xLSUpHRUpOUVFOT09NTkxNSEtBREFDREdFQ0JFR0JNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xQU1JVWllXWVhYZFdPU1RQUE5NT1RTWlhYWl1cYGFkZWNnY2tscHNyeXl/e3p/hISEhYSEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFSEZHREtNXUxHR1hMR0hKSEdNTFFRSExLS0tOTVVOT0pKS0dHS09TU05QT05OTk5HS0ZgRURfTEVmZEVOW0leW3JtT01VbVlMRFBgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRkdGSEVFS09TSUpGYFRISU9KSU9NUlFLTUxMT1JVUk9PSUxNR0hMUFtZT1BQTk9PT0lKUX9RSXxZWXF0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbX1ZWWH9qdHV1Xl92XldhW1tmW19gYWFhXWBhZ21wbGBwd3R4gYGCg4OCf31/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEZJS0VRVkxLTklLUlhXUU1PT01RVE5PUU9LS05HTU9SW1pTUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29ycnt8b354boByX2BgYmFaYF9na25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5LT0hRUlRZV1ZQVFBQUFFLSGd4bGN4cm1bS05WeXB1bXVib3ZQZWVJZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/b2hvWXZ2anV1cIBfcmZ9aWx4fG9eX19iYVtdYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncXl7c3J2eX6Bc3V6bnx9eXhybk5KU3VOQ0JGUFBISktJS1BPT09NUFpgWldLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txb21qcGFjZmNvd3hvbXBzeX5ucXBre3p0c29tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xYVU1VWVVlWFJSWV5TTU1JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9acHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbGB2dWtpdXt6bX54a3xwXF5eYlteYmRkZ2VlZWJaY2Npa2tyc3J2Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ta21PSEtLSEpISFFQTE5PTEtSUlJPU1JXUlZUUFdaVlZUVFRhX1BOTUpUU1RRVlZOTkxNT1BKSFFOUFVMS0xTVFNTVFBWVVFRTlFRWFlSTlBVVFhYWFtbVVJTV1tXWFhaT1NVV1hYUl5ZV15WVFBZUldXV1dYXlpncl5bW1lcXV9jWl9jY2RmZGNjYlpjYmdmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdnanVqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09MTVZUUU5VU05PTUxRUEtKUVFLUU1LS1BSVVNRUlNTSUhMTk9RUlFRUVRWUlhXXFdTUlBSVFVWU1pRTlNSV1ZUWVZUWlZUUlVUVFRXWFZcWV5gXVxaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWdqa2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEpOV1NQTlVQTlFOTFNQTU9VU05RTk1OUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXVlZZW1RQVFVYVVVaVVdaVlNSV1ZVV1tYWl9cVVheXF5dW11gYV5bYmJjZ2ZlZGJYX2FiXWBnZGZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FPTE1MUVFMT1RPT1NRT1FbWVdXWFtZWFlWXGpkVlhZWldWU1NPSk5WVFBPVFBQUE1NUlJQUlhUUVFPTU9TVk9YUlRVVU9OTVFTVlVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUV1ZWVllUWFhVU1JZV1VaXlldX15VXlxeYFxbX19fX1piYmRoZ2RkYlhhYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xYWltkcW1oZF9bWFZVV1FMTVZTTU5ST1FST0xRU1JVWlVTUFBNUVhXUldTU1NYTU9PUVRYVlVVU1VYWFteXVtbVlFOVVZVW1xXUlRXVldYVlRYW1RTUlpYV1xeWl5fYFVhXGFhXWBiX1xgXWNgY2doZGZgWWNgYV9fZWRfYGJbWlxbXFlaWVhXXFpcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRRT1RUU1BXXFxcWF5cXlZcXmpxd3mAY1xbVVVXUU1PVlNOUVFPUlRSTFJUVFlaV1VPUk9TWFdUU1VSUlpPUFNSVltWV1dUVlpYXF1bW11WU01UVVVcXFZSVFZWWFlTVVpcVVNTXVhaXV5cYGBgVmFbY2JdYWReXGJhYl9jZmlkZl5bZGBhYGBjZV9iXllaXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1xUV1dRTlJaU1JRVFJUVVRLUldWW1paU09TUVZWVlRPV1JTWlJUVFRYXVdYWVNYXFheXVlaXVRVTlVWV15bWFJVVVlZWVVXWlxWVFdeWl1dYF1iYl1ZX1tlYV9kZF5eY2NhXmVmaWRmXl1kYWBhYWJkYGJeWFpfW1xbWFhYV1dbWVtgXFtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWU1RUXl5gXl5iXGBVXV5ia3l0bH1rWlVZVFBQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUVdSWVhZX1taVFVWWllaV1haXFZVW15cXmBhXmRjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU05QVllRXVVWWVdXVVhfX2FhYGNdX1RdX2JlZXWBemhXWVlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSV1NXV1VTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWFRZWlphWVxWV1hbWltZWVpbWFdeX2BfY2JhZGRcYlxgZmFkZmReX2RiYltmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlNZVlNcVFZXWVZWXGBhYmNgY15fVltgZGFfenVvaFlbWVVXVFdbWlpcWVhZYFdQVl5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1pdXlldVVJZV1lZXWJaXlZXW1xbXFtbWlxZWl9fYGBkYmNkZGJkWWFmY2ZmZV5hYmBjXmJjaWRjZ19nXmFiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNPVllWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheW1xaVldYWVxcXV9bWVtiVlRYXl1hY1xSVllQV1dXV1dWU1VUWFxcXmBgXWBcV2FeW15bWl5YVVhXW1tfYFxfWFlcXF1eX1xbXVhbYGFeYGVjZGVlZmJYY2VkaGdkXmNgYGVjXGVpZGVpX2ZdY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWVhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXllcXllYVVdbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZWNlZmVmYlpkZmZpZ2JfY15hZmRaaWhiZmljZV5iYmNhYGBfXVxaWFxZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVZcW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZF1cWFtiZWNhUlxaT1lYWltbWldaWWBdYGJiYGFjX1xiXV9dW15dWVlUWF1dX2BfYFxbXl5gYmNdXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGNnYFxpaGJoaWVkYGJhY2FfYF9cXVxZXFlYV1hZWFdcWlpXV1hPWFpdYWNmZnJrf0pZV1xaWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5ZWFVbX15dYWFgXltgYWJmY19dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBaZmdeYWhoYmhoZmNgYmBjYl9fX1xdW1pbWVhYWFZaVlxbWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4SCgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXp7e3t7e3t7e3t7e3t7e3t7e3t7e3p6enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t8fHx8fHx8ent7e3t6e3t7enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a8homJiYmKgkU+Pz8/Pzubw76/vr69ytTS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjI2DOjIzMzMzLqHSzMzMzMvZ5eXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXp6enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx2dXV1dXV1foOCgoKCgoOEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnd6eHp6eX56eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3x8fHx8fHx6eXl5eXl6enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eH15fX18fXt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHp9fXx9fXh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8en17fH18eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHx6fXx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4enl6enh7eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGhIOEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXFxcnN0dHR0dHR0c3N0c3NzdHR0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXFwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJyc3NycnFxcHBwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXRxcnJxcW5/g25wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFwiIhwcXFwdJqAbnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF8ooRwcnCOnnxucHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXWeo3hweKCcfW9xcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXFxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZipkW+Co51+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4GDeXJzc3JycnNycnNzc3Nzc3Nyk6qlfIqhnXxyc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn18dnZ3d3Z1eHp4eHh4eHd4eHmhs6mnqaqXfXt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7fHt7iq+iobWpq6R/e3p6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2ZpJahsZ+YppV9gH99fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgZybjJ+woaCinoCAgYB+fn9/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYGAl5uQl7CgmJSchnx+fn6Afn5+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f3+AfoChrKWXopqcmaKhiIB+fn+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KEhIiQorKmoKGZnZ2mp6ypoZuSh4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4aNn62vpJqaoJudnJ2doKSinJOHg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYOJlZiWlZifm52enZqZl4+IhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBhY2Uk5aZnJ2clY+Jh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDg4ePlY2UmJCGg4KFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgYKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKBgIaZiIyGgoKCgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAf4KJjoCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/f4yVgoKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgZCMg4F/fn18fYycjoCCgYGCgoSUlIyBgoGCg4KCgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX17gZiMgIOBgYGAjpSMkIGCgYKCgoGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGVn4p+foB9h4t+hISDhIKDg4KNiYWMgoKDgoOCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf319fYCDhIODhIODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkZKMioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39/f3+DhIOEhISEhISEhISEhISEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhISFhoaGhYWFhoaHh4aGhYaFhYaHh4eIhoeHhoaGh4eHhoaHh4aGhoWDg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaFg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af4CJhYaIiIiHh4aGiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aHhYODhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGCgoGBgYGAf4B/f357e4KGh4mKiomJiYiJiYmJiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeHhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSSkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fnx7e4uMiIuKi4qJiIiJiYiJi4qJiYiJiIqKiYuJhoaGhoeFhoiIiIiGhoeEg4KEh4iIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn19gZeQiIyOh4eFhoeHh4eIh4eJh4eGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgYGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoOBfXx9f4B/fn5+fXx9fnx6hJqTloqDg4GCg4SGhYWDg4WEhISEhISFhIKCgoGEhIGCg4OFhoWEgoKBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYWEhYSFgoGBgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4CDg4ODg4KCgH19f4CAgX99fn59fH19e3p6iJ2Ng4KBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgIGAgYKBg4GBgoSDg4WEgYOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goODgoOCg4J+fX5/gICBgH59fX19fn18ent7ioWCgH9/f39+f4CAfn2Af36AgIF/gICBf3+AgYF+fX1/gIF/fn5/gIB/gICAgH+AgoCAgoGBg4GBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GBg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foCDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp7g4SDfoB/fn59f39+f4B/fn9/gH+AgH9+fX5/f359fH5/gH5+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp6enl+lpODf4B/f35/f36AgH9+f3+Af4KAf3x+fn9+fn18f3+Af35+f36Af39+f3+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enp6eXmCi4SAgYGBgICAf3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WCgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fXx6enl5eXqAgoKChYOBgoOBgIKAgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fImUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgIGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYSEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl5eH2Cg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCAgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGBgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4eHl5eYCDg3+DjISDhISEl5eDg4SBfX6BgYKBgYGCgYOGiIyFg4KCgYSChIOCg4WEhIWDg4ODgoODgoKCgoODgoKRkIuIiIeJh4aGhIaFhISEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHh4eHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl5fIGBfoiWg4ODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhISCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6e3x+gYOBgoGDgoB+fX9/e4iRfHyOln99f3+ChoqFg4OEg4KDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYOEg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhYSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXl9fX+Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSDf3+Hg32CgYCCgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4ODgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9fH5+fn9+fn19fXx/gYB9ho+Bfn2Cfn9+gIJ8fIB/goCBgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMi46OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4WEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX9/gH1/fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx9fXx7fXx8fHt8fHx6enl7fHp9hYODgIGBfoB+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhYOAgIB9fn1+f36LhIGHfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn+AfX6Afn9+hJKNjYyPjYyKhoSFhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOBen5+fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX6AgIODgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx9gYKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISDgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9e3+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5+f35+f358fH18fH18fX57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko+MiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn2AgIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg319fXx9fH19fX19fXx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uLiYyRkI6KiYaFhIKCgoKDg4ODgYGBgYGBgYGBgYGCgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt6e3t5enl5eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2BgX+BgYF/f4B/gIF/gICBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18fn58fX18fX1+fn1+f3x9fXt8fX58fHt8fXp6eXl5eXp7fn6AgYOHhIiPjouKh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGCgYKBf4CChIF/foGAfX6Bfn1+f4CAfX6AhIB+fn99fn18ioV9fn99fn6Afn19fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX19gIOAiY6LjIiFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICBg4F/gIGEgX5+gH99foB+fX5+gIB/gX5/gH9/f4B/fX5+f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fn18fHt8fXt7e3x7fHx8fXyKiomJhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgYCAgIOAfn6Af31/gH19fn6AgH+Cf4GAgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e31+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19foB/f4GAgYCAgICBgX5+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISFg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhISDgYCAgH+AgX59fX5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn59f35+hYWBgYF/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf3+Af4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4GDgoOAf3+BgYCCgYGBgYCBgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH2AfX+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhIKEhIWEhISBg4KBg4F/gIF+foB+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4KAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fX59fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p9eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hYSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgICAf4GCgYB/fn+Bfn+AgoKAgYOChISGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB+fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1+gICAf39/f3yAf3+BgIGAgH98gH9+f35/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e3+FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYCAf32Afn5/f39+fX1+gIGBgH5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKAgICAfX5+f4B9fH58f4CBgICAgIB8f3+Afn+BgH9/fYF/fn9/fn19fH+AgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3e3l3eHd3eHt7ent8hYl9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgoCAgIB+f35/f318fn6AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgIGBgH+Af39/fX1/foCAgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh6gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+Af4CAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgIGCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58e318e31/eHd2eXl6fHx8fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGAgYGAgH+BgYGBgYOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f316fX97enZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfH9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYOBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOBf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0dnuEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSDgIOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhICChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX+AgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgYKDhYWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKAgYB7fYF+fHl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSBgoSGhISDgoOEhIGEhYOCgoKDg4GDgYKAgoB9gICBgoOCgoKChIKAgoKDg4KCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX5+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOCgoGBg4J/goOEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fn1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIhoWEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4OBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKEhYuJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4KDgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn9+foGDgX17f31+gH59fHx8fX19fXx9fX6Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygoR+g4N9gX1+f35/goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYSGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cHuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fX9+fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIWFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39/en59fH99f39+fYCBg4OAgoOBgYSCgX+BgoB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4eEhISFh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhYSFhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fXx/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGg4aFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SDhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WDhISDgoF+f357fHt+e3x8fX9/fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fIB+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaHhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaFh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISGhIaFhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoeFhISFhYOEh4aDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFhoiFhoeFh4aHhoeFiIiHh4WGhoeFhoaEgoSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4SHg4SBgoSFg4GAgIF7e359fHx8fn18fHx9fnx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9f318fHx+fXx9fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoeGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaHhIOEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH57e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhYSFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4SCf35+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhISHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFiIOEhYSGhoaHhYWEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIOCgn2BgX9+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt8fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iIhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SFhoaFhYaCg4OFgICBgICDgIOAfIGAfn6CgH2Af4F9gHx9fn1+e359fHt5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KBgIKBgICAg4F+fn6AeXp9gIOEhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFhoeGiIiGhYiHiYeGhYWFg4aEhYeDg4aEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B8gX99foJ+foB+gH9/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhoSEhoSHhoaFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoWGhoOEg4aChYGBgH9/gIB+f4GBfH5/f36AgIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoOChIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGhoaGhYOEhIOEhYWFg4SDg4SChISAf4KCf31+fn5+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9+fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGChYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFg4ODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYF+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1/fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH5+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgIGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fH59fH6DfXt+fH2Af4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PkJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtBPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NXV1NLT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01PSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fY2djY2NjY2NjY2dnZ2dvc3Nzc3Nzc3dzb29vc2tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi3qaenp6enp6enp6enp6mXgIKCgoKCgoKBgYGBgI/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5FybGlOU2JMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS1BGntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OjoIaEhISEhISEhISEhISIZ0BERERERERDQ0NEQz9c09PS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYd2xpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUJAODw6PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpaKJh4eHh4eHh4eHh4eHimpGSUlJSUlJSUhISEhDYNLT0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDw+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamnkI6Ojo6OjY2NjY2NjZBzUVRUVFRUVFRUVFRVUWrS09LS0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs7OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tDQ0NDQz8/Pz8/Pz8/PzcrKysrKysrLy8rLzMzM09TU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7OztHUz8/O0dLOz9LU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX1tbW1tbW1tbV1dXV1dbX19fX19fX19fX19jY19bW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztO7nc/P07iez9GcgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK1lZuz1bKXmbm6lbi5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/Rn6CqrtSco6iy0ZJ9fq+w0c7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw5Nj9CP0I6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0cWHmrHVw4aatdXTzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Wp5mx1NajmLTU08CgoNDPz8/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P1KSZsdTVopm01NWwoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NSkmbLV1aKZtdTUo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDR0RBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NDVpJqz1dWimrbUzZ6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkmxdXG9naGJdT0Y/SEhGRUA8PD4+PD09PDc1Njk5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPQ1aSas9XWo5q218OfoNLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HH0tajm7HW16KbtNqypKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09HVtYLD09Wxg8bWuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw8P0dFR0tJPTY2Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dHD1NLS0MPV0dHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/Pj5BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS1NLS0tLV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6Njk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8Ozk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6OTs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq5urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKipqqelpKOioqKjoqCioqGhoaCgoaGio6Sjo6WlpqiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSmpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk+NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoKCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PjY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6efm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqamp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlp6empqKenJ+hn5eRkJCUl5udmJaXlpibmZqampqamZeYmpuhoZ+en52cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoKCfoJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjY4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNAREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaampaWjoKChoaCZko+OlpuZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5iVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9CQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOkpKampaSko6KhoZ6cm5SZqpybmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqKjpKSkpKKhoZ6bmpmaraqemZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6ChoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKKwp6GioqKgnpybm5uarnl6m5ucmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaCkpa2nn6CgnpyZmZqZppNLgZ2dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCfo6J5qqSgoJ6bmpqbnahaSYSfnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+ipKSioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp6obW+rop+cmpqcnKyCS0+Hn56enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZyapIhUhKibmpmbnJ6qZFRRiKCdnZ2cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubnJqamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxRPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmaCTYmKbnZibnZuilmZdUYehnZ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJyZmJmcmWVjfZyYm52cpIdnXFGCop2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXExGPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZmZmqRoZ2aIl5ycnpx5ZlpUg6Ken56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZifbmVibIadnZ+Qb2NWV4ehn6Cfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmZn3lzcl54mZyhjmFZU1qOnZuenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOTc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0JAQUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qalpKbn5R5mqihqpR8YlJgkJKOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY6gn459YompmJpug4drcIiHgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg3+MqI14aVJwnY+MVm15e4J+f4KSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+kKB6T0NJdpSDg0lXb3N3gnuGjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCBgKCUUzQ0O3mFdXJDOE5rb4CHio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY+hbkZkVT96emdkTDw5TW51jYqJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KkmFF0sJFIe4d4bVJpf1lXcYiQjJiaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mprIRfv9isRpKjmpBda4J7Xl6DoqGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKZver3AqprMqJ6zmkhWhHBSeJ+pp6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKeanaSlo6KicoGZro7JzrKesLJuU76gVGyUo6KgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioKOnoaaupqacoI19hXuG0L2Yl6icclKarGdjjqOdoKCenaCjmpaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqmioKKoqq6xsq6rpKmYiHtqnb3Dq66eiXZkcHh6doejpKejoZ2gopmVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7a0s7aysLKniXVeTpafkI+NgHtzcHNxeHx+hZKdoaSjoqSbnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K2u76/wL/Fv7Wrk3BmWEd3gHN1enFuaWhiYmlpb3Z3eH2DjZijqKympJmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW6yNLZ3NXHuq2fkHhcW09FXmtlanBoZGJnWVddWV5mbm5tbWxugajIxruip6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PExdni38+9sKicjXhiVVdNRV5sYWNqZWFiaV1VXFdZWl5jYVxjgKnFwL24qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrzHx87QxKuNe29cU1RWS0BebGVmbmViXmZhVVhaWFZXV2KDpba7uau0sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudXJydXFnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/xMLGycnApIhaTEhKTkg+WmBibHFoYV9lXFhVU1RRVoC2w6+sqqqqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIx8bExMO4s8G6oHdMSlFJPU1UYmppbmNfX1pcVVNaf5qtt7SrrqWko6ekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiMlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent3bmtpaHZaZnJ4c3pnZ15kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLFvbu+kWVWS0JKPV5WWGtnW1pZWFZwkLCxq7i1s6ypo6GtqaynraCstbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl2dWVmaWpoXmpvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMi/xsa2oGxLWUFScnuAWlJQU2ufvsC6vbu8urysraapu7q5t8CztbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aWpqdG55bF5kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxcXFxMnAqo14b4yZnVNPcZ/C0sfEwcTHwby+tLGwsMK+vsHGwL+4tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ9eHBnYGtqd2xpZnVvdGNdY1VXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwcHAws68c2qFmZdakcvLzc/Ftr+/wMC6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5gHNwZmVmY2tkYmttb29fWV1XVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzCwZmAjpmIf9LLxMjRwa+9vbi5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFlYmFjY2RqY2djW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Au7/AvLvEvbrAxL+9vba+yKSUZo/NxL/Ayb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnamVqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWNur+7w7W6x7e2ubu8uLm1usTJpkKLyb+/u8G+uca9wr+8xbi2t7S4tra7u7i2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVmcGplbGhYWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/EeKnMvce3ubittrS3ubO1srrFyppGgMq/v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucWdxa3RmYm5gXFRIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrnSBu8jPwsC4rrW1u723ubG+w8eOTHvNw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGpudW94Y2hiXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0plxdK7R0czKxLW6v8TIvr60vsDAe1lzy8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGxsbl9jX2FiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysGGcnSmzMzLzcrGwsPLzsG8uLy6sXJpZrvIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWNbX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9rDvra+wL6+uqacqbK2w8CleXZ5nMTGy8jBw8DAycrBv7u5saGBeHGuyMXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO1uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3h0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEt22tzr22ucC9q31uaG5tcoGVmHN4fZi9v8bAucC8vsXEvb24sa+clYOInMrCw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsbess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cW9qXGBgWlNQQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbJ2gbO9trXCpYdpWl5gTVJbW250d4KhuLjCurO7t7u9v7q7u66jnp2OmX+/xMO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d29xYV9mXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmnhXiKoK+1nWpmZ1ZZYElJTVBUbHeHprC3vrmytbK8uby2ub61laCrnah0rsnEwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVm5WNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Fqoh8doyhmGBUQ1hVR2FqVk9FSmGOoayvtrq1tLKsvLm4tbjBvYuas6aqdKbLwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtsSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZzbmNeZ1ldXVNPTkE/SkNBSkpANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJqRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7SQgnmIkG9PSj9kWUJOd4CUak5BXIKwtbO1srSvrLu6uLa5v8Z2hKygnGWpv7i1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ3c211amxdXGtVXlxQTkhER01CR05GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHxYRkFPh1lKSlh3jYFjQVOjubO0srCxrbC5uLa7t7u8kKKxq6RzrLCpq62ro6ihnZ2el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWh1dG5lVWFkV11ST01JQElTRU5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmYmZRoTT9SeHFQSUlLZ5yAWkVTr7uxrLOvrqyttraytLWuqaaempudn6aonqCoqZ+hp5ablpeOnZOPkJaNl5ukqKCgoqKhpaWco6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CWlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoYh4g3x2f3pjd21uXVFpVVBPR1BNTUNQUkA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3CqqW9aERSnYJRV0lKYEpVjWFkY4GutaqytK6qq6+wsrOtpZ2Rl5OPl6CfoqCco6SfnqiUm5aWjJeRjZCXk5ido6qfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fH91dn1ubHtkaVZSZE5KSEdPU05LTkg8RUA8MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCqxr/KoFBBc512T21KS2NmdHNgW2BxkLGvrrO1qqasrKObmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZKTmpeboKSqnqGhnqanq6KfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpquqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3l8ZXl6YGJTVWFISUpLU1RKU1FNOT9BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMbGjFdTSmWkWmV9b3JcUWtjW2VgXmuPtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmpJ6nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qXmZuUlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbGZcU1paTVFLT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWlxdnVwY3Z2WFhjYGNoWllXZ62urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2prKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7a4s7itsrSkoJ2loKyhoaKhoJqYlpWfm5uYpaGgnqOhoJ+bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCgH14dmp4dV5tW1JhSVJVSEZVV0pDTUc9S0k4RTw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCjgG+CcGBjWExbUlpNTFBYUkhNTUeYrKqppaCfmpKRlJiYlpaWjIiLjpWdnZ2cnpeemaafoKilsaqnrqOrrrawtbKxrra4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm4vK+zsLXCvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21pblxYXENXTkpHTUhDRk49Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOenYpiV15lYFdNUUc9P0BDQz8+QlF4qa2pqqafnp+io52enZqdm5STlZSenpiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyb+wubm9ucK+uLS7xsS9w7y3s6qzraqztK+zrqqvo52sqLaxraOwpqGjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhESlBJP0VCNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw8Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFFHRTxDPkY8Pjk2Tn6qs6ejo6KgnqWrpp6XnJSRmp6ZlYyKhoiGeG2IoKSiq6y0vLbDvb6zu8HDwsXAv8LGxcXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8rJw8HHv7q0uru1u7ewtrKqurKuvLi/u7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtlWlxGTE1FRFRNRUNFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz49Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9c2phV09FPklafG9iQj1cjq6soJmbm56emZeXl5KNj5eXlI+NkIyCg4J3cnFtcI+mra60ucW7zcfLvsHMzc3MyMjQzMzMx8rFxszQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsbGysjPwMnRzcfGyMbCvMTBvr+/tr6zrb/Aw8PHxMfEr7+5sri9xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXRzZWJncm9nXlpaRE9NREVQSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E/PEA/Pjk7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ2VamZdVElEQT9Lhp6lmYSgsq2jnpyfmpiXlJKUlpGQj4yHhISIhoOAgYGAeXFyb2x5pLa6ub7LwdPR08jNztHT0dLQ0NHRzc7P0MXN1NXY0dfNxsfJzMPFys/K09fR19LV1tPUyMzGzM3J083O083GycrKwsbMx8nJxr/Ds7PIxcvLy8/Hyr++v73Bx8XMzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZVZYUkRORkBJUUM+Qj06MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnGJUTEpEQz9DUq/RvbKvppycnKCkoZ2alJOVlIl9eHFrZWJocnBye4WKgHVwbnFzcIWzw77F0dDX1tXS1s3U1tbU09HS09TSz9LD0NPW2NXV0svKztHLxs3SytLV1tnW2NPW2M3Sys/RzM/RzNPQwMnIy8TMzczPz8XHyLbAy8DSzczQxsrJwMTDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYGVyY11SXEpLR0FFSUo+O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFaSUBBREFGUXayr6aalJefnJqgoJ6bnJqViXdpY2FfX19fXl9fXWFsdXNwcG9scXF1ksTIx9TW19fW09bQ1dTZ1NTOz9XU1NHRzNHN09fW09XQz9LT0cnT0cjQ2NfY0djS19nU1szPz8nN0svO0cDGxMnHz87R0dLIzM3Ay83G1M/Mz8jEy8fHyMzL1NTR1c/SzNPCucWxpai1rqebqKulnbKosLOtrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYmNpbV9WUWBKSkNFQ1JNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu32NTV2dnRztC/vMzJtr6upqqooaOsZkM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cWVjYl9fYV9eYWBfYGBfYGVtcHBua29ydneczMHT1dPY2NbZ0dLS18/TzsvSzdXU0crPzNPW0tHVzc/V1dHF0dTK0NTV1s7T0djX19fLyM7Eyc/MyszAycHJys7Oz8vQzs7Mz8/IzNDQy87Lw8rHyc3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO+u7GajqCUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxbSkZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PT9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Onn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksXpIRkI7V42hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYF5gX15cYm1yb29zdHV2eaS/zNXR1tPT2NbOztPLzs7FzsrS0s/Hzs3N1MvO0s3L19bQzNHUy8vQ0tPKztHV0tXVysDKwcbNwsnKw83ExsnLy8/Kzs3QztTMxsnQzcnHy8XHwsbKzM3Q0sfQz87OzNDFx8G4ub3Dw73DubOyvrG7w8S2qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTElQUUI7RD87Njg6ODo7NTc9PUA7Ojw9OTw9OT09Oj46PDc7PTk7QDw+Oz4+QTw5PT49Qj07Nzc2Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9wd4+ajYyXlZCTkZGVlpWQi3tlYmJiYF1eYWNiYF9gYGFhX19dW11ncnJwcnNwbXJ5pcfTzszQz9PUycTIyMXGv8PFz87HxcfNytHIy87NxtHS0M7M1MrHys7Px8fP0svQz8W6xL/Gyr3DyMrOxcPHwMfNyMTMyszPyMTE0MnGwsbJxb/Bx8zLzM/Cy8zJx8vQxcXHu8fDycnCz8G9vL+wwcnHur2qsbKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KFoqqTjY2Wj4WDg4OBfYSEfnNgW15dXmBeYGNkY19dXV5fYGBfW1pcYGxycW5va2xvb3250cvCws/LzcS6v8O6u7q5vsjGwsPAw8jKycjKyMHFzMbIys3JxMHKycHBy9DFy8i/ucG8xse+wMbPy8TAw7vJx8m8ycfFysG+wsvGxcS+xr29wcPFzMXGvMDJw8XH0sTByb/KysbIxtHDw8bDrsTLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdCR0VMREZTQDU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bF55fJ+RipKWhnqAhYV/dXh1cnBfW1tdYGBiZGRkZWRgXFxeXV5eYFtZWlxib3Jua2lrcG9zj8i7mMDMwMbBsLa5sbGzsbDBu7u8urjBwcHEvr25vb+5xMrFxsK9xsC3u8PJv8HJu7a7usbDv7zCzsPGvr61wb3Du73HvMO6tL3GxMLDt8C2tr6/u8zDvba6yLu/vsvDwcbDxsnHycbQxsLMx7LHycPOzcHFw7+9srewsqeoqLmwpa2wqq2slHp3eGtlaGBob2RWXllKRkpGSEtBRkJGSkE5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys7FycXHwbrFvayupmBjdYGSi4iLhHh/hoZ/fYN7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmbjp/Ew7rAuK2wsKaprault7O1tLOztLu2vbK3sLSusrvCvMHEvL+6tLK6vsC4yLi0vLbBwr24vcfBxLu1r7K1ur+0xbi7tay5vb7AvbG7trC3urPGvLevu7+1t7XFvL/DxsDExcbHzMXAxsa7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUY/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJlbZ2+JjoaIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfXlxbXlxdXlpbW11fbHBuaWZqbW5ze4q/v7i4tK+qq6adoaimnamqsa2qrKm0rbaws6mup6yzu7q2w7m6ubCrtLm7tMK5r8Cxvry7trzIucO3raqosLLAtri9sLGosbO1u7ysrramrrauu7KxqrmwrruuvLi8wMC+usO/xsPFwLzGwsjLuMXHxb/HxMO6xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMS01KRUFDQEdBOzo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTPx83Bwsa/xMTDw8rCycq/wLzBurO1tcOuqrCSW2l+koiOj3t4fYmFenuEgHduXl1cXF1fYF9fZGNiY2RiYF9eWltaWl1aWlpaXGVub2hmZ2lrbnKErbmwta2ko6WlmZ+jn5iapKqtpKiiq6qsq7Cjpp+qrbW2sb24r7evqK64tLS8uLO8sLi5trK8wbLBr6apo6uxs7SovaqrqKutrrW0pqitoaSvqbKmqKiupai3rLGzt7q6u7K8vr6/xb+1wsHHyLe/wMW3xMPAu7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz83Dx7m5y8LLvrvJtr3DvrrKt8HDwbS2vLaxr7W8ramrkmNtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZGZlaGtvcoWppaujnJqfo5Obo5mWj6ChqKOjn6Wlp6auoJ2bpKassrC3t6ewrKiqtKu0urG2tq62urOwu7qxt6WgpKCnsaisqbqqpaanqKezraCop5+cpKasn5+npKChsa2trLK1s7Sxtb22u8HAsru+w8GyubnCs8C9wLW4vL2+vMLHxMPEv8DEoIR4cWxiZmBrb2BVWV9ITmhPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wLq9taCelJ2hprq2q7Ozu7PEz8nLwsa4t8fAzL+4yre7xbizxbizv8CstbyyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBeXFtcXFhZWFhYVlhbXV9kY2NmZ2dna21uh52onZOTl56UmaCWlIucoKGmnJ+fo6Wjp56bopyfq7CtsbWkqaqqrKyltLitt7Css7Wvs7avsaqfnp+korKlpqq5raKmpqCorauZoKCemZ2fpZqao5ycnrCprKiqq6ytsLO5r7i5urC2vLu6rLOzubO9tLexsba1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTUzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLW3xc/IyMDGu7vDw8++uce4uL+3ssK0sbu7rLm6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXWJkZGZmZmhpa3KMp5qQkZGYlJiek5SOmqCgp56bnaWmoqWbn6Gama+urq+yoaWjrquoorWwsrKsqbCzqLuzp7aho5+co6Kuo6Kqtqujo6aepqajlpmdl5mbnaCal52cnZytoayoo6SmrauztKq1sLKrs7m0r6qwsrKzt7Ouqa2usrewura6vcC4s7GUhnl1Zl9mX1taVlNaVUtbUUxKRUhLSUM9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+znaWjmKWxw7W2va20ucHMyMa/xbbBwMfOtsDDvbO5ubK/trG5u62ytK+fmqOqoZSaj3h/g4R/eG9xdHFoZWRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqCZkJCNkZOUnJSXkpWenKCclqGhqaOenqicmpqrp6+wq5yjpLiqoaCvqLerp6eusaS4sKS3oKOcmZmrpqGarbmwo6GknKKgn5OUoZSWlpuZmJaXnJWfqZ6qpKKdo6qqsa2otKyqp62zsKWrrrOxr7Cvr6eoqLKusbSwvLS6uK+jlYJ6dmVfYVdZWFNSVEtNXkxQTEdITEtFPUA+PUI8Ojc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0usKxvre9rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJqhqZWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjY2JjYmJjZmmAko6RiY6QkZeVmZOUmZ6bnpWgn6alo6ann5yfpqCrr6agoqO3qKGhoqmzoqWopbCmsa6stZ+hnZaVqaGilK2xsZ+jo56emJuTi6GUkZOYmJOXmJiXnqebp6GimqSlpaukpbCnpaOrrK2mqa6wr6uoqqqzpqarr7Sxrry2sbCvoJN7eHNlYlxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sba9sLuxt6yepaast7u8wcW6srm1xMnJwMPGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZn6OLinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVVRWVlJUUlVgYV9gYV9gYGJkaX6OjoaNi5COkJmRk5WimJ+WnKCloaylpKSjpKOdq6ulmp+lsaqhoZ6lqp6oop+urKqprq2ioqKVmKKbnJCrqbCcn6Kfn5eYk4mekY2Sk5aQmJiTnKGjnKSgopWgoqSlm6OrpaKjq6SrraWusqqmpaamtKaqqK2ztbS5urCrrJ6Mc3FwYFtXVlZSR1FPSFpcT1JKVEtTTEVHSkQ4Ozs+PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Ktnainr7m5s8DIurbAr8XIzLrByczItcm8sb3Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RVVlVUVVVSUk5RWV1cXV1eXl9fYmRtiYt/jYKLjYuWkJGQm5qhm5ugqKmrqKynqaakmaWvpJWZpa+poJyZm6Cfrpqcq7OgpqafoqShlJSblpaSqaqtm52foaGblJCMmY6MkYySjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq7Ckrrimo6SjrK2pqKuvtLeyvbWzq6+YhXV0aVtYWVJVUkZYTFFbWE1VT1FMUVJJTkpCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zLxsW4wc7Px7PEure7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FZWlpaXVxcXV9gZHuIfYZ6iIyGj4qUj5WXoJ+an6uppq+sqLClqZqfraGVlqSop52YkI+anq+XmaeqmaCdlKWhn5KRkpGTlairpZqZmZ6el46Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6Wlp6mooLCwprG9qKCjrLSqrqewtLC5tcCxrrGrkH5ydGNWVFZOUkpHVlBSUkxMWE5LTU9SSE5LQUNGREQ+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqytri8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5yam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRSTk5OUldYWllZWFxcXWFqfHZ7cYSJg42GlYiSkpaamJ2om6CrpqasnqiZoKack4+fo5qXl4aFkpukkJWjnZaWloiim5uUjI6KkJqlp5yVlZebkZOIlI6LgYyNgJCLkpKSoZqgopaUmZiVoqaajZmkp6mnoaC0sqizuKGdo7esqa2ks7Kmtbu1q6yxo4p6c25eTlFRTU9ETk5OUEtGTk5KSk5OUUlNSkFITEhIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS3saWnpKqloKmmpLOqorLDtbWys8bGt7rDyszGs6y5vbS4wK+uqbCepq67r62gmpuelZWIfIRuX19mcnB2cWpuaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFpdYW5ucmyAhH+FfY+CjYiSkJKdoY6anaOipJillqKclY2ImZqMc42Dfo6XloaSmpCUjo57mY+djYKJgIqYoKOekJOYloWOg5R+fnSKjnqQiJOQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmKa4pqWwobGunLG8qqmvqpmDeHRkVk1SUFBNQ1NOTFBNQlBRSElOU01ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY2Ojg3QTd4t6GjtKimpaijpaWmpqayp6a0wbivtLDJxLi5wM7GvrOsusGsrcStqKKmkp2mt62joJCWl5KQfnh/ZldWX2dmaWdob2NpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlRTU1RVVVdZW11paG1oe4F5cU1WcI6BlYWMm5eKk5GfmJ2VlJaUj5aKgJSJXztWb3yMlIqAjJKMkIaGc4uFl4F5gXuGlJ2Vg5aOkZCDhn2TeHFwho19iYGQjpCXmpmTi5CKnYifmIiIlp6aoaCXp66prampnpats6KmrpmsrJiotKOpraOTf3RuYFtOU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqapoKapp6OqsKintMG5sLWwx8K4s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpiHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtJRkhOUVFNT1JUVlhaYGtqZHZ+cU5BP3+VkZB8h5SMhIqNm46WlYmSiIaVh3mJf2BKUW54i5KEfoSNi4WAf21/f5R4dnZ4hI2acFGNiIqGfH54lHZod4aIfoqIlYuOkZOXjISKiJWEm42DhJKblp6dlKSiqKmlpJ6bsKqhpKSSpqqWoqqcoaaoiXZuZ15cSFFRU01JVU1SSUxLT0lIRkpOTE1US1FRT0dKRD03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hrqGnqKWnqK+sqra8tri3s8G7tqi5yLi2qKi1tqqyvKeelY1/iZSplpWLf46Dgn54cW9YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVlYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRURDSU5PaFlPUVNUVVpugXBzemdmWlOPiZSHc36GgHyFjJOCkpmLj3uGj4B2gHhzb3VxdI6OgXp+iquFentpdnuOcHJteIGLjZJ4e4B7gHdzc5J4Z3WFhISFfJWKiIqNi4B/hIuNgJSEfICPmJSclpGfnameoKGdoKmlnp2Yjaekk6Cflp6fpIFzaWJdXUpXUFJHS1hST0pNTFJKSkpMUEhMUUxSVE1GSUI9Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6Rf3aGd3x2b29qWUtISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWCenZkdIuVmI2Oe2Z5gHZ4f4iQfIOYkoBxh498d3tva36tfXSQi396hpKBfX90ZnZ8hmxvaHN8io2HgG15cX1xbXaPcWhxgX6OcESLhYKDhX93d3qMhn2Me3V9jpKPmIuSmpujlpmdmp2eoZyWjYulm46dl46WmJB4b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUk9ITlBMRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzUxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlp2lqaShmJmPhZJ5iY+Li3ZxfG11cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFhdZW9waoalqsB+c3hie3due3iHj3l7i4ZvbYySeXR5amqAgnGWkYyBfZWASpOZbmh3foJtamRseYWQkoZrcmx8bnJ8hmltcH9zjYmFh3t+f3t3cHR0hoJ5gXlwfI6LipODlpeYmpCTlpaZl52WjIOJn5KLko2GkJeAb2pvb29ZVlhUUlFZT1JUVFJYVU1OSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYm5+lra+iraqota+urLS/q7zDv6WimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ1b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JWWlFYW1+mh2GZZ3J4ZH1vbH95ioh1gYeFdGyaknR0fGpqnY5NeYWTiYSOZzF2h3Nsfn6DdGZldX+EhIWAZmlsdWtwgHxocXF8bpONj3x0fn1xcW51bYJ/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJbWFlZW01QVVZZWE5JSEVKSkhHQ0BHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEvKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVtkoiakJmWpKitnrGep7qvq7KwwrG7w8ealo+UmYuOhXqEkJiUjZCMj4Zxh4J0iIyGenBycG9vZHFnX1RGSUM+PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUxBSVFJYq+yn3B6dmt8bHGCgYSAeoSFhXlyoJV0eIBzdZSHNXGdqJ2OoaGEo4V2cId8h3x0jK6NiYFoZ2JqbnJtcIN1aXBYdXCOm5F2bX97fW1ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2Oe3NxcW1gW11eXFpZYV9STltaWFdMSEpGSUc/Q0FCRz9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiVkZ2kp56vlaW0qa6wrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt1eHhtd253ZGpeSVBHPT83NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9ITE1OUEw3Q01RU0RLhXR/e3t1fmx2h4d7fISDfot9daKaen6GgYSZhJqcYYaqn52Kg5COeneJfomIjnOLl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWEenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVmZ2BbW15TXGdeV1BUWFtVR0pKRUtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCYnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyNeIp/k4yRnJ2fppGgqqCxqK/AsrvFupaOkZSHe4Z2a3+MkYJ9ioOOjHiDgHOghIp9fYF/cIF+emh2bFJYTEBFMjExMzc2Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9RTEtUXVlSS2iCh3qJeXtxfI+LeXyIhn6Wh3ahmoiHj5KUpY2tqUiGrq+ui4GAlIuCi4KEkqmHgJiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZIbIB3cnl2aG1rX3Z9g4h/iISLeZWcm4mLiJF/enWKdnx4bW93foF1dXNtXF5eW2NkWGdlXFRQUFZZUERMS0ZPSUNGQ0NAQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5GOlpeSlqCerKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1dLQjYwLi8zMzEyMzY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzg0Ll2WcHOjVUZJS01NUFdgWW9ZXF5pjJKGlICDgYSRkn6FiJGBmpWCoaGYlZuapq2Tmbuxp7vHw6iLjKGljpSJgZF8cYOen5Gdf3eFhYuQh5BpaHCEgXSMh4SKcoaCd4iAe3aEfG52dWZ/lI6HiImHiIehq6KWiY6Xf3qBiHl5cGdreH98f3VsZV5bW15qXmJnYFpPTE5XUlFJUEpETkdDSkRDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneDen+Mf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShpKVf4qAkpuOg4CBjIqCiY2Df4qAbXBqXUJANC0tLy8uLjAyMjM0Nzc5Oz0/QkRISU5RUlRSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBJSUxMS05WYGN/ZmdtdJuZjpmSkoqNjpmIko+di6CgkqOqpaSsk6m2oqjBwq7Hr3i6lJp8jaGemYSThYKOoZ+UmZGFioWPmZGWbHB1ioyCloyNjnePhHFthYGKlpGDhYhxiKCWhpKJjY+WpLSpm4yUooOHkoN9f2tqanyBgoN1Y15kYFtnbF1sbF5XS0hOUlFNTExGSVBDRE1GQkNFRkI9OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYaRh4WJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDc1Mjw/UjVISEhMTE1OUl5uinxzgXyenJunpaGZoJailJyeqJ6oq5+orKmqtperv6u2yMi3yNDPvpugcGmrqZ+Ek5KFnKCam5mmkpGIlaKbm3h6fpSYk6KTl5eBlJ57d5WSq7KJjZeffJSdm42SlZijoaa1r5yQmKiHlo+NgIhsc3N9gX5zaWBeYmBiaGRgZ2ZcUkVKS1BPSUlMRkZNQ0hMRkdDQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbXxhd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjox8ioaPkI6BgoCJi4qEkoWDh4mBgId2XmJQNDYwLTEvLC4wLy8vLi4wMDE1PkFBTVFSU1FSU1RSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUpOT1FZbYWPd5SJoaWos7y3pK6rq6aotKuwtrKxrbuxs76cs8OrusnKt8O/uKWisLOsraqji5aYhaamoKOXgaaZjaKrqKWIhZSkoaCroaSoj5yxi5Wjpre6m6CisJKinaKdkKOhq6+ssrWilKSqiJmIkomVeXp+hoBpYmldZmNeZGReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2lvWHqFdoGThYiCm4OSkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4SBi4WGiJKGg4WJh4iHh3FuYUBFNjQ8My8xMTAtLCstMS4tND9DQU1VUVJTVVVWVU5bUEdIRTw+PkZIQ0VBNzs8NUM7PUZLSUdIUU9QV4GSn4StorGpscDGwqqzxbars7+zuL62v7TBtru6o7jFqLbJx7W+ubSoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqmutruyuqywtaKxrLG1u7e1rrSgp6ijp5qpr6yyube4ppu2qYykjpGTn4Z4gYV3W2NlV2djYmRgYWdgW1RKRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiY1d5dXCBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeEgY5/gYmPh4CGiIWKh5F6eG5dVkBFTTw2OjU2QUI3NjQvLzZDSEJRXFBRVVdVXFZQX1VJTEtBPz5HS0ZGRDs+QDdENz9CSkpFRlZTUF6PpK2jsbPBtbfBzMi1u8S9s7PAtrjBtb+vt3Sxs6W6xKSwxrmxs7G0qKS1tqqxoKKXm6KSpbCupq2rp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwbe6t763ure5rKywpbCprb2wvLrBwauYuaeUrY6Xl6qIfoN+bFhkYllrZmpmV1xjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpvfo6EgI2EbnpzeIdiuaGZo4mUlJaSlJONj5aSh4Z7hoGNlYqAhIGKenyLh4Z9ioKBi4SVfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNRUlhYWmdZVGBgTFNQRUE/SUpIRUVBQEQ8RTZCPkhHSkxTWlRdk664tLq4yL+5vcnMu7zBu7e1u7q2vbS6scZgdbKksZqeq72ppairqqSisrWgq6iflZafmaCupaempZ+kk6KnsbSnsrK9tsG+08nJ08bDxczCysPAvr2+u7y3tK+4t7bDucW9wsevnrmpoauOpKi1iIGBc2BjY19YY2BqZ1JYYFZSVUlFRU5LQD5HRD1KQT1CQD1GPjtIQTc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjISPc2xycnOH1cC1maCNlZiZkY6XkpaWjoaHfYaDjZaKfoN/g3h7i4OHfIt5gYqCl350fXprZnB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFVZVUpEQktLSUZISEhIQkk6RD9IS1RUVlxaW5K5wLi9tsW/urjJyrq2ubW3ubK3tbOutraYZHWonK1wXqKsnJigopuknqqllJ+gkJOOlpmYqJ+moJ6amYOknqylqrCtuLC9udTRz9bQyszSzM/Oysa/vsLKvcG8wcDExMXKvsjOs6S7sLSvmqu4u5h/e21eYV1aX2JaZGNQW2BTUEtDQUVGRTxART5BSEFARD06RT49Sj8zNzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vlpGQlG5sb3R1h7OroKGfi5mcmYyMlZGbkoWKin6Ih4yQi4l8gYNze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWdqaWhgZmlpbFptc5atpLyIhmdbb2hdWlpUSEtOUEpLUEtTUUhMQUpGSk9fXmJnaWGXt8ewubK6vbWxxMa1r7ixsLursrGnq7erjLannZqnmk6anYyOn5aRppillYqTk4mQiY+RkZ2boZealZaHnpqnm6yvqLCotLTU1dXW08vQ1NXN08/NxcLJ0L7JycrJ0cfMzcLQ0bevw7zEuaW1usKig3BlXl5fWWFYWmZaUV1YT1BCQkhFQkg7QUM+QUc/P0E3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJocW95eYOgqZ6ml4yam5eLjZWRmo59iYuEjYqKi5CIfISCcH+HgYZ7h3KDkouOfXF4dWxxeH5xem54c2xpgXBtY2ptcHhpd3x+y7/B36dtY3huY1thYEpQUlVOWV5QXVxOUE5UUVVUXG5tdoJxlq24rLSmsLWqrLy/sKq0pqS4pquuoKu0o46xrpqXmIyRk5GEjpuBjaaRnImDi4SKiYSLhJSVmJeTm5CcmJman56rrKWooqytz9LV0s7M09TU0NTRzsjD1NHHzdLT09fM0dHF0tbFwM7Hx8KovrfOnntwZ19kXlhhU15aUFFUUU9IPkBGQUJFPEBBPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OWnWGhYp3bHdvfX5/oZ6eoYyMmJOTi4ySj5aEeYWPkI2KiYiRhn+Ce3J+gIGHeoR1hZOQiH9vdnJrc317d3tzgXhyaoBzcmlvcXp5cXq+y5p+jLKEdnKEdmhha11DWlpbVmVjWWRqVFhcXWBkXmN3en6LgZipo6Whn6CopaqwuKqls6OhraKjraGnsZ+IppqTkpGJkY6IgZOJapSijJmEgYZ+kYODk5eti5WNlJqOhpORnpensKGhoaWkqcjNz8jCzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy4x0cGViYVlVWlRcUEtHSUpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJyUnZSFi5WJj4qIjYeOf3iDk5iKjIiIi4l+g3hze32Dh3d/eoaRlX+DbndwbXV/dnh9dIV8eWyHdnRufXaEdHh7nbWMO0GLxaV+jHxpZVdJQ2ZjZWNnamRud1teZmhrbmlugIOIkIucnaCdkJeYnqOjpbGjpLOfoaWdoKigo7GchZ6SkpKQio6LhoOPhH6cm4yNgoSFepR/gqmVo4yRipeSi36Yi5qSq7OYm5yonKe9w8a5tsbO0tHS0MzSy8nUztDV2tfX2NTZ2M3Y287J2drR1r7Ly7V6eHBmXltTV1JbVkZHSklFRT06NzpAQEI6RkQ/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXOFjXyXkJ2Lf4eSg4mGhYmBh3x4hZaWiI6Ch4WGeoR5cXt7g4Z1eoWOjZx5i3B8b296f3F7gXGDh4Bujnp0d318gnV+e4aHr3NYqcK2jZGCcG5iPV5ocnBxcG54doFlaG9ydXhxeouGjpORm5WflYeMk5ugmp6pn6Gsm6GamZ+lnp+rmYuajJCRjYR9iIeDhYuOoJmTiIOHfmyZeoSZhoiTjI2UjIZ8nImUj66qlJaYn5mnr7a9qa2+x8zJyczL0MnD0srU19jX2NfV29fT2dvV0Nva0dbI1MuWe31qalxbUVRUX0hDRklIPkE+PTc6PT87PUc9P0FBQURBPj86ODdFQjc1NTQ3OS81NjY0MzU1NDIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEP0NHUmpebWRiZmt2gIhxkY+agHqAjX6CgoGDfoN7fISYjYeLfoWGgHaCeW97e4aBdHqSno6gdo51gnR1gX1zgIRvgZCCb5KEdXyBhXp2hnuIt8Wkwcm4gZabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJWPl5GEiY+WmZeWpZyYn5aek5KXo52Zq5WQkImMkYKMhYiIgYaQkZ6bmYiGjIGFl3qIiZ+XkIiNiouCfaGKkYu8oZiUmJmcqaamrp+otr/AwLnHys7Oxc3K0dbV1dnV19vU1tna29fb2trYztvGiH17aWtnYlVYVlZOTEVOQzs9PTw4Ojw+OD1ANj0/QD0/Pjw5ODY3REE2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bImMknd2eop7foB+f3yEen2CkYmEhXqEh3p1fXRtfH2GfnR/k56RnoORfIZ+eI9+eIqKboKagHSZhn6BiYV8fZB6j6mOj8OhvYyco5x9iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYmLkJKUjp2akpSQlo2MlZ+clKCUkY2Nj4t+kI6Oi4SJkpaanp+JjJSSnZGCi4CmmYiEjYKFhIClh4qLuJidkZWWoqihnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuXt7em1rZ1liXFRQT0lETEI8PD45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD42MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PURSU1JYXlVYZm1tbWmBjopxc3mKe3p/fH97h3p8e4uGgn10g4V5cnpzbYB+hH53hZyim52UkoCMiH+Yh4CckW6HqIV6oIt8kY2DiISbfZqQioyjoqCQpK+fi5CLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlYyHiIySk4uUlJOOi4+Kh5abnI+UlpCKkpOGgIuIko2Kip2WmaKihpOdlqCKiYiNnJCDiI5/g4eFpIaMkLOYnZKVl6Gin5mSnJ2osrmspr3Cx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aByf3dpaF9eWVRYWUNBSEM/Pj46NDk6Ozc6OzszOzs/PT43Ozk6MTpIPjozNz1ANTE2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNjem1hfpGDb213i3h5f3qBfIV7e3aFhH9zcIWBenV2dnSEg4V+f5KmpJ+mopaKnZCUl4uKqJdzirGNhKeShJmThZmMopWfmJOImp6jkqmwoJCUkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNyJaPhoeIj5KNjZKTiYWKiYWWmZuPj5SThpSXg3+Pi5mIjZCqlpejo4iZn5aaiI6GlpeKhI6NgX+Ij6SJjZOompeTl5mhmZ+Zk52bo7O0pqO8wb7HxcXJyMnCy9PNzdSp0tHW1tbY2tTT2s6EdYJrZmBgX1BLVlxCQkdDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZYNHdYKOfXxtfYh4en56gYGCfnZ2gIJ7bG+Lfnl8d3h8hIeLfoujtKikq7OhlqegpaSWla+ig5C4lZKzmY2hoIykm6+ipJ2YkKeXqZmtsKSXlJWUkIuYmpagwI6jybmrmqKlrZmRm5yynYaFqKKdmIWIiI6VjIuTj4eBhoeIk5iUjIqTk4aUmIaEkZCcdJGZspWWpKGInJqTj4qQipeaiYuWjYZ9jJmeipCPnJqZk5mYoJWhnZWfm6GxrqOkt76zxcfEvcPDv8bOysnSp8/N09HQ1tjSz9i8dXx4X2JXYlhSSUtPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNW1xZSWhhO0iEinp7bYWGeXyEeICFgX1weHx9fG9zjHp9gnt4hYuJhoOSqLytqbO9r6Wus7Opo6KwrIqatZ2iuKWVraSXqa23pqSjn5mpmKqkr7GqmpiblJWRmKCXmbu7rcqhaba3qrCVmJ6iq5KXvaReqbKCiYqMlIeRfI+OfYOGjpCUlIiHkpaLj5WNi42WmZOdmrSWlauei5yUko2QkouYm4qSnY+LiZWgoY2VjZeZnZOcmZ6VoqCUnJ2lr6ihpbO4q8LIxLa7vbzFyMjC0KHGyc3NxNfW0MvTo3N9a19cVWFTUUdEPjxDQUI4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGZIYWBicElAi4l/gHKGh3yBiXWCioN+bX19fH5wd4d3jYGHe42PjIaMmqvDwLC9xruztMG8tKyrs7eMqLKtrb2rm7qkqK25t6qmpqKipKOqr7Kxqp2co5ibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIacrb2vgouLipCDjoORjnmBh5CNjpyIiI+XjYqUl5SQmpedp5qwmpGrnY6aj5KOlZCPlZeOkaCQiJSbo6yVlo+UnJ6UoJ6bmKChlJqep6ekoqSws6bBxsOwsLu2xcTDv82nx8PHw7zW0MzEyop2dWRfXGJdT0tDTEBFRz5BP0I8OjQ+QT09NT02PjMzMzI0MkExN0BCTj9HQENOQ0E9Qz07ODZDQjVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxoRl9pZ1pdXJOMjIh7h4uGg4x1hpCKgW5+e4F+cX6BepV6kpSUmJGTlai0x8nAwszBw7rHvLqvq7m7l7K2urPArqXApKuwvLyqrqujo56orK+1sKqboKqcopyWn7C0p4uiurq1wburqJyypKSolISOqcTDpIKLjoeIhIaVlIx5g4yRj5KhjIyUkY+Il6CXkpmVl6agrpyMqpyOlo+SkZWVjpCVkY+hk4aXn6Cyn5SblKChmaSgmqCcoJSYnqekpqekr62lv8TCrqm3tcnDvrbPssW+w7yz0cnHwbV3e29fWl5sVE5JRE1LS0lAQT1CRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZeJi4iSj4aJeYaTkIFygHuNf3eGgYKQeo2hlqiampi7vsnIysLSycrCzbzBs628v6e6v768xLiswamss7u9qrCqpKWjrK60rba1oKCun6WimKO0vKmbqLzBo7W2r6uSr6yqq5aGmqqnpZGCjJOklYqAdYmSeYWNkZCeoJKOlIuPjJSjmZablJSjnqmfkaWajI+PkJWWiH2PlZKSo5qVoKKctaaQn5elpKOln56mmJ6Vl5ylo6ioorKtqLvAxK+ls7fMwLmuw7O7vcG5rcLCwr+ZcHtjW1heXE1NTkpHRENIQkJBQ0s6NERIOjs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bElfWGFaZGRXnpCdjZeOnpKJin+In5KEeIV/lX5/kIiKkICVoJmup6OYw77JxMjG0s3Ozcu8wrewur20vcu7w8G2t7yts8C5vK6vqKGpqLatrqmyt5qerKKnoZ2rt7eppa++xLG9ubOnqbOzra6WlaWtqKCRjpKxxaeVjX2RlX2HkZiPqpmYk5OOk5WTpZ6TnZmToaKhnJifmIuMj4+eiFqQlpeSlqWZZZijnrOllqKWq62rp5yfp5eYlpiVoaSpp5+2rKm6vMO1prS1y8G4qrass7u4rqi4ury3hG5wXFpWV1BHS1NNSz9BSEVESEZGODVGTTs+Nz5BSi4zMjAyNUI1NVBXTjxMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZWNMRqWUnJWhl6iWjJCDh6WSiIGHgpuEg5WQkZSOmqKfr76uoce+xsXIx87OztLKvru2sbq7vL/PtcS9t7m3srK2s7ezrKacq6u5q6mor7CXo66kp6SltMGwq6yzvsK5wLmzp7i0t7OvlaStsK+li5OVoY1zwZl9lpmEjpaZi7GVmpqVkpKZmaajlaCblpqpnJuhoJmKjI+WnWBKlpyalZmll1SWsJ+vnJ+llK+vraaboaaUk5mZjp2gp6GZtKmqs728u6uwssfAuKasq62xsaOhsrK0pXNxZ15cUFJNRVFRUFE7SEtJRkdBQz05S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTc2JWRkirl5mfoaiumJCXh4qnlo6Ik4WgiIScl4+eoJujpbXJtKnGvMPEyMvJyMzOx766s665ucHBzbXIu8G5tbqxr6+ytKeknKq0tauppq2smaSupaWorLrAqKu2tr/BwL+4srLDsLe9q6Outa26pYibl6abdr6fhJicjpKYmouulqGcm5eUmp+hqZ6ooJqbqpmhp56XkI2RnYNtdZOimpWdo5+QrrKjq5Wpqpirr6WloaWqk5KZnImVnKKelrGmqau6t72zsq6+ubago6eppaacnKypqY1maGJgU0xNR0hOSlVMPU1FTUlKQENEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYU1WSH5lXkhGrJWcoZ+7rpmUnouTqpuRkpOJqo2GoZ6Mo6yUpKS2x720wbvCwsfJxcLOyMK9ubKvubXAwsq2xrHBvLW7q6mtrLCjo5mqtLqmqqesqp2or6ekq6q+vKitvLS4vsa8trW4wLC9wLOptbarv6WPo5eRoZ+7nomaoJmXnZ2Ptp6pnKWjm5yhmqels6KbnqWcqKqdmJWPlJuLlomMpKGUnKKfobWvpaaTsauaq62fn6WkqpGWlaCEkJ6fnJappKGhtLS6ta2otbKynpyjppqXlZmqoZ54Y19hX0xJRkhOUUlNREZGQlFLSEFER0FWUkRIPEFHUTE7QTc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaeXpJ6ew6ybl6SXmaiblZqaj6qWlaimla2smaKqtsXCvL+4wMLAyMS/zca7vrmysLi0v8PItb+wvLe6t6ekq6usoaGbq6rEoqWprKaeq6+soqqov7imrb6wt7fGtrS5uL6yv8G2tLK0r72jlqOVkpuTrZ+QoaGkoqOekL6kqZ2prJ2doJumn72imKOeoqmroJ2WjZWek56HjoSNk56koZ21rKaclrKmmbCpoJurn6GNmpWfhI6hmpuSpaSamKuxtbGqpaqtrJyYoKGSjpCVqJ+UamVcYl5QSkhLT01IRUNJQD1PSEA7R0lIW1JPSz1ITlU0QkU4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE6im6SbnsWsoZ+snZytn5KinpaloKaprJe2saOqs7bFwr3Atr/Bu8nCv8rItri1tbG0tLfCxre+sbi1uragp62qq52en6WkwaWgqa6gpKmtsKKmqL21prK8t7a1w7Kzt7q+s8TAuLiutLS0o52klJGToKyfmKGdqKiqoprCramdrK2bm56YpqC9oZ2kmKurq6agmY2Zn5KeiI5Yf5aepqGguKqmlJi2o56yoqGcsJigj5qUnoKPoJeWjqKjlZClrrOrqaKipaWVlZyZi4+Rk6SfiWNnXGVhTUpLS09GRUFGSz49SUE5OUpKTl1RUUk9TFZcOEZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExPnqChmJ7Dp6Wis6CcsqeTqqOfo5+sqaydu7GprLWxyMPBw7PCw77HxL3Eyr2wsLausbWwwMW1urGwuratmqmwqambnqahqMKtm6yxnKqirrGqpKe9t6a3u72vt8Ots7PCv7LHs7q3q7S2raqippWVlKKroZ+fmaerr6+vu7Kmn6mpmZmXk6KkuKGho5Kur6ukpZ6SoZ6UnY6QjZSdmqOfp7Snp42YtJyjr5ufnK+RoJSYlJqAkqKWj46goJOLpqywpaeinaCekpKalIWLko2cn4BkaF1oZktKTEtTQkNASUc7O0Y+ODlOTVVfUlNKPk9eXT1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9mckA4PEiWd2VBNJ+kn5ufwqijqrGgo7SplbKrpqKksqytqbuyrbC0tMa/xMS1wMS+ysW2wMnCtau1qbG5rMDFtLiurba6pZmrsquqmKGnl627tZuosJutn660sqequrOnubK4srjAqriywr20xae+rq23tamnrKGWlpGlpKGhl5ekrretsrW2n56opJmUlJOjoLejpKWVrrGypamkoZ6amZqVmKifnpiin6+yoqeNl6+YpauYm5+mkp2PlZiahpaglYyQnZ6Ui6mpqqKnoZmdloyPmZCBhpaJlZ96ZmpdbGtPUU5OVD1CQU5DOzpJPzc3UU5dX1JWUUFXYFxCSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWpWQ1dGjHlmQzukpJyhpb+mqK6uoKm1qp24r6ukqrS3sbC4t7C3uLfFvcPHvbzEwsfBucHGwbqqtqWtu63Bw7e4qq2yvKOVrbCtspemqJGquaqhp7Cdq6CvtLOqqre1rLuss7K5t6y4sMG6vb+mw6qwtq6pqqumnZiYqqGhoJGXoLCus6uwuZmbqZ+ZlpKXpqC3qaWioq+xs6uxp6ugnKCfm56lnaCXnaS0sJufkJSmmqCpm5ajoJeZi5aZlJaXnZSJkpuZlI6pqaego5yYm5OHj5mLfoyXho+abGptYm5uWFFRWlRBQ0VVQDs7SEA3OlhQZF5QV1dEWV5eTkxTT19MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOG19aFxWOol7Y0M9qJ+coam8oaqvqqKxt6mltLKroa21va+zuL27vbe2wcO/ycS5xcPAwLnFvsG4r7aoq7eyvL+/tKqusrifl6ytqK6YqKmOp7ufpa2zn6uisbCzrKq2s7W8rbCxtaywtbHAusW2q7yvsbesrKmisaWepKifo5aPmJ+yqrOpqrOZnaebmpSNoKaktK6noaysrbGnsquxqaObnqiknpSgmZuptqmXmpKSn5meoZ+SraCamYeXmIydmp2Ui4+Wl5qXpqajoJ6WlpeUgZCVhXuPk4OMl2dtc2hwc19HWWZWRENOWERaOUhCNT5dUWhcTlpdR1teXU9NUlhkS0tDXWNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FWMTUxPWBWXzgpQzNZVVxnSzWMemZMQKSan6SstqOsqKSurbWprrO4pqawuMa2sLe/wcK2tLrFvszFucPBusC6xLjBubK1rKq6uLu6vrWrr7G3mZioq6urnK6rj6u+nquvsaOqn7Gtsq6utrK4tqqtrrGnta+0urzJsqq1tLG0r66moLOfmqisoKSVlZqZsaKtoKWvlqGkmZmSjaKlprKpoaaxrKq1pK6wtK+jmZ2tp5uXnZmZrLiil5ORj5mcoZiYlK2hn5aClZmOnp2alpGKlJOemqWjo6GZl5OSlnuMkYV7jYuDi5NsbnlvdXxhRmBqWklIWls9e0pHRTZBYlVpW01cYUpbXFpTU1NiYUxLRWBhYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1hUS0Walp+vqLGprKWjrq61qbezt6OstLfKurS7u8C+tLO3xMDMx7zEvbe/wMC4wL2yva6ourm4t8K3rK6yuZWXp66sp6SyqpSvu6SssrKmp6Kxs7CysbWwt7KprquyprivtbPExbaptbWrsK2pp6K2n5+msaCklJuYlLCep5ufqY2pop2blZelpaS2p6Kws6unsaetsLWspJmhrKicnJ2blKq5nJWPj4yYnaKYkZiopKCYhZOXkZ2cmJeXiJaPl5uonKShkpaSkJZ3hJGGfIaChIyNbnF4dnx/XUtlbFxKT2RcP2J7R0k4R2dXZltMXmJNWFlXVVhVaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGcyNydGYUxWJS1CLj1FTFE8M3JrTEREkZmkraSsraumo7Cysqq3sLWfq7W6ybiuwbzDt7OxtcLDz8TAwr60vcHAu7+8tMSoqrmxtrfAvK+stLSdoaexraWmsaWesrWsqrKxq6iotLmstLK1rLOsqquorKm5rbKwx7+4pLmwqa2tpqessKWko66jqZydm5qvmaKioqOQrJ+joJ+hqaaluKSrtLSkqquorK62rqKdo6iqnKCZmpKktJmPiY6IkaOglo6Vn6KWlYaQlZSem5mWlYeXkpWZp5ygoI2Tko6ReH6OhH19fYeKinJ0c39+flxTZG5eTlpnXUZElltHOk5tWGJaTWFiTlZWVldUWWheUVJMZFpbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0RkOzYqSGRISis6ST8zQ0lTLD6Paz9ISZCbqaqhqa+kp6OztLC0tbGwoKutvcy6rsG8x7G0rbTCw9HExb/Bsr7Dwry/uL3FqK23rLS4vMCxrLKuoaOnrqqnpbGjq7Gqrquxrq6sq7K6p7exsqmyqaqmpaOtuqyqsMK5tKy5qKmoramnsKWppKKuqqiinpyirJWlnZeemKudoaeooaymoqystrCxoKmin6qtsKydnqanqZqjl5iQoKiYhoOPi4ufoJCMjpeekpGIiJKWoZ2WmJaGlpOTl6WcnZ2MkpCNin9/iIR9d4CHhYd1dHKJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU9jXE1VVlVXUVxiX1NPT2hYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLklnREY4PEIwNUVLWDFAlF1ATkaVl6ynoamxnKior7WsuLWuqaSrq73Ju7C+uMOvsKyyxMTOzsO/v7TBxMS6wbTJxKyvt66zusC+tK6urKanqbGppqiyprStqrCtrbGvsqyzuqS4s6ysraeroKOesLerqq25tqS1taOpqKysqqygqKansbGjpqWhoauWqqGUm6ClnqOiqqOsop6msbasrKKlo5qpq66pnaGlpKSZn5mVj5idk4GCkImFnaCNi4+Nm5CTjYWOmaWbkpGbi5ORkZSjmpuai4+Li3yHgYKCe3WBhIF+dXiLo4d4a15gbmdXZodkTkBnkkxEYnpXYlhSZVVNVlVVVE9cXWFWS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZCSUlEl5GvpKKpr5ipqK21qrawqqSrqam8wcC4ubS8taayr8TKy9G/wbu4wMDCusG6wsSusbWytLzBvrOxr62srKi3qqatsKu4rqixsK6xq7WqtbantberrKSpqpyknrOzqKiks7Sfta2hqairqKumn6urqLm2qaqpqaGpn62bkamhnaCjoqaiqp2bprSup6WpoqSXpaanqpyio6OfmZifkY6PmI1+h4yHhZ6eiIWLi5CQko6FiJajmo6NmpGSkI6Sn5eZlo2LhH90h4F/fnh1g4B6eH6AiJ2PcHJnZ3F4XGF0iGlPXZhWSG15VWRWUmJPTFZUVVFPWFtiVkhQalRWVEdQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JGO5WNr5+lqqyZqqStrrK0r6qlr6mpu767wbGwua2itq/Jx8jRwL+9urzDvbvDwb+/r7Kzsra9vMGxsrOrs6mltaikrLOyuK+irbWxr7G5qriuqq+3q6qeqqugo6G1ramhn6+yobWqnqinqqOqoaGsrai9r6uuraGnp5+rmY+vopiioKimnqebmKmwqaKfrKKhkqGio6eYmqilmJiYnY+Lh5SIfI2GhIWkloaDgoyHkI+ShYeVoZaJkp2Rk5CNkZyUl4+KhoZ4dIF/fXR4eoF7dHR7aoKIo3ZpXmVsgXVniIt8UldwXkt4c1RkU1FfTU1TWmdOTVdZZVlHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzSPjrCepKWqoqWjrKa0s7GppLCnqri+wbywqLmqp66wycfI0cK9wL65v7+9ybzCuLGwtbK6vLnAs7S8rbmso7Wmp6yxtriypqe5ta20vK+7pa2ttqqtnKmvpJ+lrKuonJ2qsqS0qZqqp6mkqZ2jqaipvauzsK6dqaOgrpuasqKWpJulpJ+lmpmnqqWemqmhm5GboKSdmZaoqZGZmpKQi4KPhX2Pgn+Ino+HgH6MiJKQkYWClJuUhpOijZORi5GakpWHin+Acnp4fnxod3x7dXFyfmmGeoSIZGBoY3KFe21oeV1eVkNYe21UYVBSWUtLTXB0XUlaW2daRlZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpKvmJ+eqaSjoaqkt7KxpKmxp625wb21sKS5rKiosMPJyczBt72/tbjBusi1w7W0s7Wyvbm6vbauuba/raKzpqqrrrW3tKmcuruosb+yuqCvtLaprJ6tsaOcpaepo52cpK+mr6Gfq6mnoqqco6mgrbunrrGuoaqio66enqyml5+aoaKbn5qZoqqimpqjo5WWk5+hlpyWpayLn5GPkYyCin9/j4B6mpSMiX1/jIeRkI2KhpOYkYeUo4qRkYeQmZCTgYh9eWx9dnl4Ynt6cnBxc3hqgnVqg2djaGFuc45tYmpwYG9CXXlrVl5OUVFLSU1TWVZNXF5tV0VYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl09I5GXq5ifl6ejoZ+no7evrqKvsKmrucK6s62gua+rp7O6x8rIv7fBvq+0vrfEtsKysLqxssC2u763qrm4vaqktKaoqq+tubComLi8o62+tLOhrri1p6aosLOgnqSlqKGkmZ6sqKieoKqvp6Cml6KooLC4n6Oxr6GroayknKamqZqam5+ilZybmZ2pppabnqiQl5KYnZOZlqGpkJqJjZCHfYd+go18e6GMjYh5hI2Gi46NhomTmo6JlZ+JkJWDjJaNkX2FfHRwfHFzdGB5eGpvcHFwan9zZHpsaGVkYmaHgGBbcmpxTU6AaVhaTVFMS0hQUlFITVxfb1RFWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsn56hpKG3q7CjtLSpqbrFt7OuoLitrqywtcXHwLa/wrmwtL23v7u+sKy+sLO/sr3Cuaq7urinqLWop6uvq7OwpZi7tqSrurWunrG4r6mlp6+ynKGkoKSkoZabr6ahn6Oor6GgopOkpKK3sKGmsaufrKOvl5yqpaifmJqdo5Oam5mcpaqam5uklJSXlZyOk5eiqKGQiYqPhnqDfYOKeY6Xio2HeoKIhImNj4WPk5iMjpaZi46Wf4aXjI95gXtwcnZub3RfeHdlbWxsamqEb2ZyaWtmaF5kdIFgW2t2aVpKf15cWE9PS0hIUlVHMzldXmxRRVlVWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJkVywylKGhl5ScqpykoaKgt6quoLu4pay9xbSxr6O1sKysrrXDw7yzv7q3sbO5uLq3uq+uwLO0ubC/wLitvbq1paKyqaepsautsaCZv7Wkp7W1qJ6yvKmopamwrJmjp5ykpZSYobGlmZ+jqKmcop+TpaCkuKikp66mnqWhqJKfqKKhoZmbnZ+RmpuWn6Gqm5qYoJSQk5aZjZSTo6ekkImJjoZ5hHqEhXydjYmKh3qBhIeJipKFlpOTi5CWlI2NlHyDl46Ld358bHRybGxzYXd1aWlqZ2dvhmhoaWNmaWlgamNqaFxme2NgU3RUXFtTTEpHSU9TQCEqaF5qTURXVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp2ipJCNpKaanZ6do7Stp6q6tqesxMG3sayjtq6nrq62v768ssG3sK6ytra4tratqr2zrrKxvb+3rry7saSftqqlpbOoqq2dnMCrp6WvsqmstbueqKmrsaWYnqmdpqSRmaasopiepKmhm6Gclp+dp7WmsKquoaGdnqGUoKafoaCam5mbkpick6WdrKGXlpyUko2Vl4uPmJupn5GIiYuIeIV2gYKBnYeKgol9f4WIh4aRhJaUkI6QkZGRjJJ7g5WOhnN9fWZ4b2tqa2Z1c2tjZ2RkdoFjZWZmZmpqY2tzW19aXW1kYU5pWFpgVkpHSEtNU1g+OV9saUhDVVRdW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao6CPi6yhmJeglqSzsaKyvbahsca8urGxpLasqq6ouLu6ua3Asq6urrausrizqay5sa+us7a6trC4vaymnrWpn5+vo6munKLAoLGjrrCut621nq2ura2imp2mqaWflZqnpZ+ZpaKonZqfm5ScnqyvprqorqKhmpuemZ6kmqSdl56Xm5OYn5KolaqnmpOampKMlZmNlJSaqaaOjYqJjnuBdIGBipiFh3yJiYWFioyKkoSUm5OSj5CQlo6Qf4CMjoJwgH5meW1oa2lmcXJrXGhjY3SBYmZnam5sZ2pqaG5dbGx0cGFUY2lkZlpJRkxNT1lRUFZhZYFVQVdTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kaGbjY6wnpqToZqpsa+fub+1oLTCu726saa2r6itpLa3trasvK+sqqu2qrO4rqaztbKuqbC2trGztbqmqZ+1qJydqKGorJqnvZiso66vtbWsrJ+xra+popucoquonJScpqSdmqqipJaan5yQm6Sqqqq8n6ekoJiamZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiZeZgJaKoZB5h5SMg21pfnaDcWyGi4Z9hYyHcF5jYWeEmIVri4+UknR3i4R+g49/Z4aAZ3VoZVdcaHNuTlBqY2dzhWhfZWZubWpdYGGKj4SEZk5LRDlHVGdeSkdQUFVVTEhTYXB0ZkZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUFAQD0yOEBFPTEsKzA4PUc2MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoujmYWVsJubk6Cbqq2qo73Fr6m4wri9vK2ntrClq6O2srGysLmtqaastKavtaOpuLa2qKestrKutK2zoamfs6qeoKObpaaYq7mUpaWvs7etrqWpraqspaGenKCnppuXoKWlm5unpp2Tn5+YkJ6oqaS2sKSjop2WmJeXo4igjpKZhqCHk5ygf6R/paqekpKakoiEcniNjoWIoXaIjGmXiGZ9c3igb4iHg36OfH+hoKCZgHyHnnSHjnWbimyHgYNsaGVjemxxYVOFbWJsaZhxWGlxcIhYXmlbbGxbiHFuenKFZ4aEWl5HTj9HX01FUlZWUVFSV1VnXk1XSVJSUEZHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiKppaDnKucmZidn6qqp6q/w66xur23wL6qpbewqaylsrSur7K2qqmlsK2ltLOcrbW2taanqLOwrbKnrp2qn7Gnn6KimaGhmq2zlKOlpbW9pqynq6qsqKWhoJifpqOZmaWjpJicpKmWlKOclJOjpKaht6SkoKOYlZOXkpyIr5CXlImpi5ahnIWxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kYR8kJCRynKXvJzFenK1pruQe4BslrGrsHhoa1ixrm5labySvG5nem9yj9h+U2tjtrJ/gXKVdJqhqpBXT1diUFZORlVbWFFQUo1cV1tRQV1EUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKaSgKeqn5ecnaWssqiwwr2xtb+1t77BqqezrKypp66zqa+1s6anprSlp7ivnLOytqulpKexrq6wpqqdp6OwoqGfnZaanpytq5Oeop+0uqKqqaGtrqWhnZqaoaefl5unoJ+YnqenkZynmpSdoaaiobGjn5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnZ2UmaaUca6hpH54u31roY92sV9qtFulgGWckWBmgntmf2p4a6llvnJnpox1sWp8sXh0kpNjbW2nbluEoEVoZoeWRXWcYH5nfKSnglpfi6tpgJV4eWqnN0qvXFhTbGRbS05YX1xXVjtOiVBXVy9JVFNKREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKsqKWeo6SqsbestL2/r7bEsre6waapsKuuqKmvrqOwuq6jpK2yo6i4qJ6zs7CjpaCqra+sr6ann6Ohr5uimpaVlpqarKWWm6GftLOiq5yira2gnZqXoKGonJido5+cmaGmpI+dopmXoZ+qnqamoJqfoZaVkZaQmoW1m7V4hamZtZl2hrObt36TlpaplH9rgaZ7goaIkpSSd6tna7Fcq3qNhpR0iXKPhoB/iJCXeIKCi5iLg6CPhLB2d59xa2tsfItOpFhIYmKZfmNopmB5cnVTk4deUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCP7J5WFhBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5WIs6amoa+pp7Osqbu2wrC7wq24tr+qrK2traatsamgrryqoKe0rKOrtaSmsrOnpKKep6qyqLCnpZ6fn62Vn5iUlZWXnaugmZmkqLSuoqmPqaiqm52VmKCkp5qenKKfm6CjpKOVm56XmZ2iqZummZycoqCXk5GTk52D1ZOZuXCwwX7GhnzWlJu7fJqVpY+NnY2ke46HpIKlgnqseY+dVq96iH6farlbuneHhH2mgpN8mHqpeI2dj3uxbo6EdJG8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhObk5cUk9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6O0RIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSguMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzElm6KUmbKoqKa0qqW0qaS8t8GwucCxtbS6s7Wnsa+isLKmn622qJqnua2jr7Ggs7SxoaSen6epsKi0qKSbnZ2plZiXlZeVlqConJmWp62wqaOfj62iqJael5uhpaGYoaGhoZqhoqabnqGelJmbpp+bp5WbnJ+hmJCRlJGdiLJuaLVxq4dujqZytHNytnual6SLj52No3+RoaV+sHaDkdLSdlyue4V/pG+bqqZrh4V9rX2XmY57sHKSnY54s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa2BsaFBVSEk5PVZSWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGdkqWwrKOrvK2mtKantru8srq/t7azubmypLSzoLGxop6rsKSXprmtpLGwnLS4qqCmnaGppLGorKmkmZuZpp2Vk5eYkpKhpp+VkqWqsKailpOtoKWSlKCbpKaflZumpqGaop+tmaCenpCVm6GdnKaVnZaaop+VmJWRm4Wse3eodqONiIapb62KgqeDmJihiZKai6J/k5mJroV/grNccrNSrn2CgqR/cth+eIZ+j52Fmpp2r4aJkZyHd7RhmmWagoKUbJJasFhLmnWYeWZgrV52d4homIhrXa93lZ6PeGw1eciusl9CVG9eZ2BFUG1fcG1WVk0uZmRpU1hRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk6OTmfnpSgubCXtMKtqLOoqbK6t7O4vrm3sbS7taS3sp+zrJ+eqKyflKe1q6iwsauttKSbqaCfqKG1pqapopmdlKOhk5KbmJGUoaSakpCmra+moZWZqZ+ijpGhmailoZWZpamdnKSerJ2hnaCNk56anaGYmZuWl6Kgk5eQpp6GqX19pXihjo2CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTZgHeIdKiBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpOAkX9oZ6pkcnuBa5iHc12rWomgjmtvZU9KQ6FcW0x0XWJnTVthX3J0X0tWN0qblFhHRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84op6amr+rmLTCrqutqaW0sLextb65ubKwtrqourSfr6SdpKennpOqsKmvqbWsqq+hmKGgpqSkuaKjq6CWm5Chn5STnpmTl56ej4yLqLCvp52Xm6imn4ySo5eoq6eVl6mnnp6go62koZ6ijZShmJ+gkp6XnJWeoZWWjqucj65tcrRzqYt1iqdztHhzs4CRpKOSnI6JpIeQd7hvjHuLomprtlqhhWWXl2mgoqdulHK0dJOYf7JqhZKIrWt1s2GdZqJvh5Nql1ytX02hfIeRUnOjbHl/fm+Yh3Fcr1Y8nHdmVG9uLlynT2NTa2VibVpjXWFwe2NUWlI+Pm1vM0NCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKabm527oZuywK+tq6ynt6m3r7XAtLuvrre2qsC1qKmgmqWjoZyRqqmntaOyqK6qoJecp6Clq7mdo62blpmOpKKVjJ2gm5icn5GTlKq2sKiZlJysqZeMk6WZpa2jkZaqsqSfnqarsZmho5CZopagm5acl6GTnamclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJeLjKeIeqO2dX13dsKCmrJgg7p5wHx1uGO1gYyHqX2VgaypcXt/dLyIp6BpnWGmjq+ifox0h6p9vm9zvHSyg3V4gYpumohxbo2kdL1ed31aYXm8a1pWXGp5XmphZWdjbXhvWlxaREFAc0BDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnmp6ivKGXssOwraqrq7GnuK+2xLC5sKy5rq3Asaujop6joZubkKmkqrKjtKatpZ+WmqqZp6y5naOtmJSgkKWfkoycop2YnZqRlZKvubKslZejp6eUkJaknKStnpGgqKufm5+oo7Ofo6WOqKGUopqcmJWjmJCvoJKUqZ6EkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSewbu9mXqBsahwgHORuYN8hoaMh418ioeNl3yku7m9nHV6tKN0dpd2dLB1mZ5mhmqNtXRycXe2jF5/en2JaIN5bnlii6xwdYV/WFunakVlWlRmYGNeY1FoZ3FtdUJOUE1EO1pNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43MDdMVF9HJ1NiVzgqT15dPSs6VlYnPjs8p56gob+llrTDtKyrqKyrqbqusMWutLGstqa0uKypoaGlnqCdmZOrpK2ppbSnp5+blqCjnaykvqahqpaTnJChmpGPoaehk5yXk5eUsbW3rZmepKSii5KSppulqpuWqaWlnJqhqKWnpKmhkq2elqOel5eXnZ6Pr6iUm6ahjWp9aZumeIdyfZmOdHlkh3u9vsC6b5ODcpWHYXNqWl2aiWFjiI6Va2CAlWNtnXdilWuAmpWUZV5gY3Caimhyi32FlWdqfnJ1eH1+Ylt3dIFoUFxug318i2tYa3uCckpKb4ZwTnRNRVhdZ2FMWlhnY19PW251aXJSUERFTjtIST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPltPJz8yPqmgqKLCo5u1urWjrKWup6e1sazIq6+xqbOivbGxpqCiqJyim5mZrKavo6O0qaWbl5Whm6atqL6nqKWUk5uVn5mSl6SoqJCekZCYnLCyv6ybp56noomTkamaqKOamqygo5mbo6eso6Cro5qxm5SnoJaUnZ+dl7Cll6GnmZuQnJyio5iloZmbmZmZj5WBZ219cXeSl5SShYu1qoyFl5WOioyYloeUlYqEk5SRiY6SlJiUmJaaoKGanJSgnY2CeqWGbGp8kXyAdYqKgXGCeHl2doqAfIpqc4F1g3Vld313a296bWBjXXBoTVhaZmpgV1pwem5tZlRPRlM5T1pNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzobOiwKGksrK2oKqmsqelsLSqyKqsr6S0pcCns6CdpKSco5WVoKqnrKOitqufmZaWn5etqqXBnqujlZGbl52XkpOhnp2hp5OSmainssSwmqudq5+Ql5aonaqbnJ+tmaGbnaKkr6eipaifrpiXp5yZmqCenZyvoJyhppWXkpeTn6CVop2XoI6Wk4qKjY6XrpB8lpuDkoKLqqmFgJiXiYOPnoh6hJCHhpqSiIaKlo+bl42RmJ2jlpqTkZ2Nf45mobOvhYqEdnuSin12eXpvZnmQgYCJa3WBeohyaXN/e3aDh4JrdWR5ZmBqZWNkZmtZbHtwaWpcU0xQRF5URkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9iY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0W0c1PCxAtKC6r7+sq66ysaCrprGtoqyzr8Svqquisq28o7Obn6aioZyZl6ilqaakpbK0npWUnZmZsKWuvqCsopCRnZmZlJGUoZyXqJyEn6qro7TItJ+qpKuWlpeapp2pmp6jrJSen56gqa+qpqSsoq6bn6CgmKSenJ+cr6OYnqeSl5ackaOYl6ecmpdlgpJ8ZX6NmpBjeY5taWt7kqSqamSal31nhoplZWloe46hj2xojZiRo3draouZo56Zc2xueoONh3pYZV6Gg15ti4mBdlxoc3d3koCHgm54gniAc215hHR2iIiPg3xrh1lebHVkXnOJaWt8cWtjXlJOWElkWEFKND5HNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaWfury5r6y0saqlqK2tsKatrbC8sKmmo62usJ6slqCjnaKZmaaqnK2jpaipsq2elaOPoq+ltrmmrqOOjpqhmZOSmp+ZmaSVe6Wtoqi0xLiloqevn56UnqKeo5uiqamSn6GeoKqwq6ykq6Cqm6efp6CrlaGbpbCkl5uqlaCcmpGjlp2pl519vYOIcrRyhJ2GrWh4ucS4cZOio3qlmZhzq4J8y8DAu3GMooiDn32WmImdwL2Cl52djZ3CwXyCe5KNmsPAfmylsm6MgW/Ken+bd5GDjoF2eYGAeXF6f4dwd4WMk3lueJRjZl95ZGBlgmNedGhsZGNYTFdJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9WQUI7LziWo7nDtLCwwKmolKOvqbCuraaztK+ppaWmsKufq5iaop+cmqqnop2soqWopKS0pJ2ikqatq7ezp66ikZGZnKWSkZ+gmJufnYemrKSrrcDAsaGpr6mXkZ+dopqho6qjk6Cinp6tr6qtp6Skp6GmpZ2tqJGkmqitqZqcqZuroJWVpJWgopacfs6UeHqkgXmVlptfro9ejqeBoqB8p5abc6uDgK9eY42qe6eHhaB1l5OIs2OCq4ahjY2zaoSudH2XiLdhgq1ao81tkHV72nt/mXB+iJJ2fmV7iHZ2a3yIbn2GkZF/bYOQYXJscGhgYHlkXHFoamRnYFJUU1ddS09DNUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NDc3MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqets6umsqysqqKqp6+poKebmaWXnKKvn6CeqKejpqGfsKyanZWnrqywqqisn5SSm5+kk4+epJedp6OerqWrsKi/x7OoqbGulpKdm6KXn6mqn5Wgn52dra+prKqdqKikoquSrLKWpaKqqp2jpqShr5+RmKaYn5mTk5GXoHGFjJd1haiGcbF9nnKsfqGegaWPnneqgn2tf5xzrX6rh4afdpmSe3yXfqqIooyRjJ1+q3qIlJCfgHutVpzEeo9vksF9gZVtdW+MbWV2ZYZvYXducm+JipKPhG6SkWZwdXVxYWdtZV9vaWluZ2RYU11hWlJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08KD4xKTNWQEYhHEc6QzEuK7DTxsaytKCdo46joqKsr7auqLCmqKqmraurpqGknZmhlaClq5+ipaCoqKOfnbCsl5qWqaeurKinqJ6XlJqjoZKUoK2bnaair6ykrLWquc2yraaurJeVnJ2imJ6trJ2XoJmen6myq6urnKyrpKOsm6+xoqirrqWYpaqoqbChkZWipJmTkYSkaqR1iXqpdHqycIKmipmMcYigmoekYGBSq4R/roObdq2Bp4aGn3qZl4Z7ZoCjiaSZhoKjfal+gZaHrl99qVWdopKBeqKfgHvDr8WLcq+zs7lxYqmvwnRojIyYjoJunJVxbnp4eXBtZ2VlcnBmfGljXVdgalhZVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydXVv6GZq6egr6KesLSwrqmsoqemqKqrqaSmn5uknp2mp6ejnKyaoqyho5+vopybk6ukta+uoKianZaUpqOQmqKon6ClnLCmpKixrLbIsrWqrKmWkZ2coZifpLOdmqGUnZ+nrK2lsJutqqOiqqGzraGqs7Chmqinrq60opKVoqaYmpF7qmyehId1q3l8sG+CpIuJn5aWn5SB0ri0uMmAgbJfYJSpg6SJh6B6mJaaeKrJdJqklaipkZOajICciprGx3hmoYKlc4GfjoJ9r11wtGKwdUujhm2nR4KTZI6QnpJ8cZmVgXF8dX58blxmanNxZoFrXmFZZG1cX1lJTkxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKWinLK4rKqgpZqopaqrqaafpqaYqqOgrqudpqCsmp6ppZ2ntp+il5OpqrayrZulnKCUj6WskZmcp6KgqaauoaSnqbC1w7Kzqq2ok4mXnaWaoaOupZehlZmcpaatnLGer6mnnqyjt6yhsbivnZquprKysqOTlqeimZ6Ogp1OeJqBf596hKN9g6SEh6aenJ6ThLh7e3m5gn/MxsK2eJuhkIuffpqWl4p2npiKpZikqH+whZ2GoISsfZqUYqVspHCPhJCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Uk4x2fHOGgHFcbm54cmqBb1tkX2luYmReTExRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX11aWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq6fm6GssrOlnqCVpa6trqunnKammqOnobOvoqmnsqCZqqWUorWiopWXoam0uKSbop2jko+hsZmem6akoaKvrpylqKK2ssSxramtqZGHkJynnKKknKWXnpiamqakq5uwoq+lppivpLusoba2rZ2ctLG3sLGll5yun6OchY/RtcO3eYeOhZGTkICmeJShd4ygkYSlgYpxqoaFtG5yapmjnJWKnnyYmYaHj3OvgqWboo2mi5Odi5aQm21xsl2lc5N6m2uZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2NjpWNeX55kINuanlpeXJvgHVeZWVvbWZnYEpbWFg8SEhAVTRARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWTc42Krb+/vLq0npanpa21oaKZlaOopq6rrJmmop+moKG2p6Opp7GjlKyjjqWto52Qmpqqs7OknKScqZGUl66fn56mo5ynnLWZoqqktqvDsKmrqaGMhI6coqCmo5WampyZm5mnpaiZramvo6Wbraa9rJS9sKyeoa+yuaqypZqosKKnl3mokH18sHeKgKSliJxtsm+gh618oY+Dp5WYgKyJha6Fn5SqoKGXhp+AmZWAe5J+q4CdmpaLq3idoJKKlJKBeq9eo4F9pqdjnYB8l3Nqr12la3CFmV1gW4ygbZWRppmDlo6ZjXx8hJiAa25/Y390boB6YWdmcW5oZ2hDWmFbPktVM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBgYWFdXVtaWFNQT05JODA1Mi4qLEFUVlZWVVRVVVVVVFRVVFRUVldXWFZVVVFIRklKIygovZOag6nGwrbBs5+arKCtuKWjjpuko5+wsKqfpJ+drZmfuaCjq6CvqZquoZCrqKSWiZuQrrCspp6mm6yXl4+soaCdpaGZpJyumKGop7epwa+lqaSei4COm5qfpp6SlZqblJuapqWlm6qsraSln6qovqSWwqupoqCrsripraWfsq2nqJd2r36Qi5yFh326rYqZZbGNZZWtfaCPg6aVmoGsioSwhaaapKGhkYWgW2xqgbNgf617e4OBsW1nb5mYjIixW361XaSEa8iiZJ+Ae7xYdrVZsn1SroB6rFiAoW2YkKibjJiSmZh8epCef2V1f2OFeHSAfGJqZ3FtZ2VmT1ZkXEFVXz5JKD46PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFdaXmBfYGFiXl9cW1hVUE5KR0M1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vbqzwbOjnKympLaooIqaoJ+ds7Opn6OgnrWZoLSoqqyer62erJuVr6iijoibjq+sqKehppmukpiPqJmhnaSfmaOjppmgoqqzqb2vpKienY99i5uWoaCZkJKanJKamKmgopqprqimpqKlqbueoMampKigqrS0q62lnrqsq6uUgKmSo6+Om3+HpJeZkIKAuMO6g46ckoSnl5yCrIqCr4innJumqpB+1b3CqmKjv719fqOCg9e6uLWFlZODnr2+hGyjgm+rhGycf3qysMeDaauwvax4d6K+vHOAlo6mnZGbkpqfe4KSnHtkfnxljmd5gnthbGVramNQYVtTalw/VWJDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbOzsb+5sr2yoZyupqWypp2MmKW/qriyqKK/p6eynJ6xnLqon62vpqeUlLCsl4yDm5GupaKsoKOcqqCXiqKSpp2nnJqhqKKZn6Gsrqq6raijmpeTfIeZkaabko+RmJiPmJSpm6GZqqmhqqego6q7najFoqCuo6mzs6muqJ+5pq2tmXN1qqS3hmSJoHBorpGKkG5ud6SQmZ+Bda6YlHCPi3GVqKObl66kcm1sbGaLeG9ugplxgXpqcWlnipeWmHFpaYWIZ3GGZF2IYmpvWVxmfXamX2FxjpFuZWV/jZOPoZiZmZOZoX6JkZZ3Z4h4aY5ren95ZWxjZmxiS2RYSmxaOlBlRVInSzorIxwgGyIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVlXV1ZXWVxeXl1cXFxdXl1eXVtbVVdeqZSss6m5uLKzqqmhrp6jsqmXkr6yxMq/t6qfwKytpKGnrKC6o6SurK6njpeuqY+LhZaXrZ2mqqCdo6OgkYukkqaZqJmWo6qglp2mpqewu6ysmpuTknuElo2lmI2RkZmUjpiWqZagmKmjm7GmnaKruZ+vwaejsqWrr7CprKqmtqKstpWKoKiltp2JlqOZh6qbkZWdkqmymZqjqqCylqKhnZ+inKGloZWrp42SkoyHk5ydlZGZk5mRjpWGgaWbmJaOi5SUi5CGhH1niX50gnVzhopwp2x6lJGTkoGBjY+Qj52VopeamaSEiZaPc2qRd3GMeHd8emptZGNvZFVhWUBqXEhjYU9ZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhUVlleYGFjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1xcXl9fYF5eXl9fYGBgX1lZYKaWqKqltLaurqKwo62foLWxkI6sx77Gu7mro6WenKafsamkt6edqbWnqJGYraKLh4mPnKeVrKSfmKeenpKUo5anmqiZlKahpJCbqJmhtruoq5makIx8gZSLoZSKlZGWkJCUmKaQn5uqn5y2o56nq7enrsGto7alrq+vq6iosregrbuYkaWkpraikp6noI6qoI6Sn6Osr5qgo6+or5ijoJyjqp6enZyWq52TmaGblJCWq5qOmZmWkJafkomhnpWVhZKNkY6Vi4B9ZouFdYZ1eIeCc5xqhY+Uk5CJfIuVkpKYlKOTn5mkhYqaiXxzl3N6i4BzfH9qb2RecGpgW2BZbmRQYGVQWjpHR0U+Mj0+OS8qJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWJhYWFgYmJiZGJcW2OXlaOno6+yrK6jqaatn6e1qpCQnaW1vLCtraKjmnueo7KkpbGpl5u5p6OTmaqcjoaKiZyij66eopWon6CSlpiarYuplo+omamNmamPnrq3pKWZm42IeYGUjJuTipWSlJGNkpejjZ6fqZ6fuKOAhK+1oq+vdKO9o7Gfd3mfqbC5lHWso56JgKp/ZFxidqCPpZ+El31tkrOco6etqqJlnp+Sc3mal3CAmKiXbX+iqIplnKadkpiYloySnJKGnpqQloSSh4+PkomFd2qOhnaGcHuFf39gaIeKlJKLWnWUkGdokI9ze6icm2Z6momEeZlqhIuEb3mAa3JlX3ZwbGtoW2dmYmJwU1w+Tk5OU0c+QFVEOTEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVldYGhmZ1dRSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6CusKyrqaWorqKmraSSlqu2sbOnm6unrJd0jJ2woKirp5SXuaCgj5yknZF/iYibno2smqKVp6GdjpaRnoR1rY+IppupkZekiZy7tKigmZiLiXV3k42Wk4qTkZGUjJCUoY+boaeZnLKWgIybtZyzjJKOu6agfqeieqGttYCOjaWeg4uGkLGqr4yKl6SbeoCLrIacnaGnqKeHlYWYd6WbeoebgZingoJ7nLJ6ioahmJqVmJaCkZeXhZuZY3qHkIWPkJKLg21wjoZ5gHB/gIR+hXOFhJWReJZnknSgmnV9mYWjn4iYf5SMhYWaa46Ohmx4e3FxZ2R4b2psa1tlbGpldFxeSVRMUkBFNS5aVVU2KSEwOT0+NzQzNTY4Ozo9Pj5AREk/SUVKTEdTWFtZW2FhaGZZUUg5RUw8PmJWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXop+lrKyrqKyfqLCmpqmlmZSvyL+xopeoqbWekIWdrJynoqCNkL6emo2fmqCQfIaPmZiIrJyilp+hkYyTiYaAkaeNh6KdpJSYnoefurKonpqSjoVxdpCJlZCKlJCPm4yQkp+Sl6Gllp6rh5+0ibSarYrKh6mtiLeFjbCBrqyCqIymmI2dfaiPcnt3nI+nl2iVpHm0jJ+epqeSmMKBf6uImKFynoCapX2XhZWygaF9oZOgkJiXgY6TnIuZkox9hZOHjpaSiYNtco+FfnlxhoCDe4N0hICWgI/FZn+ph4+ja56EpJ2EmoGOj4eLmnGQlIVoeHV8eGhodnFoaGxeZHBtZ21YZ0ddUk0yRDQ2TmJlNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmlsXFFFPUxNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqKfr6eoqKWrn6O3sKmqppqUoKOkq6SXpqu4o7CBoaidpp6diZS9mpONoZKej3mElpaRiKuZm5uZooWOi3ebnI+fkIiepZyWmpiHo7mupZqcjIx+Ym2Pi5OQjZCNjZiMkZKgj5SgoZmhp36hp4etnaCWrY+enJ2RhYCgjKmthaONqZmMmn+jdYCZlGuCrXZNq3iHjZyRmqingKmrfYOhe3qnap5/kmtnl4aXt4mefm5gZFmDl3+Me2Roi3OZfXmWbF19l21fU3CDXF9reIJfWGSBfIN/l3CnqmuDo25ypXCfhaBqZqBtW2+MfWdaYISAYlhQb3dmbXRza2pvXmtxbWtpWGlPXllGOUE0SERfbDUsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl5idWBNRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5WdoLigqaOmrJGgtrurraKZmKGipa2uoZ6vtaOok6GgoKecmo6ZtJqQi5+MlYt1gZSSjYqnlpWYnp9/koWFrKSHmpCKmamZmpuSiKaxp6KWmoiJgGluiIeLjo6Ki42SjJGTo42Un6CcoaR/k4GPo6GUoHeclY+ng6Gmf4Wnq4OleIl8hJp+onBzlIiWfJ+NeW2Hm4yZj5uomo+HnXuConN2pmaefnekX5h6fZN0om6Yt7S6dJOHgn+1qGSBxrh7cJW2jHKAmqRjc6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGCdmbOWcX2Yn7N1c1uesoNqY290dnFob1hrbXNyZl1pXmNMRT1ENlJCWnMzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1PUUBFX15bWlhgYHxkSEM4TFdVV2NhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOVlKO3mKqbk6CNpLe0ra2gmqKdpKOmrp2csq6sk5ihmqGkmZqUn6ubi4iSeIuFcYCWjoqQoY+SlJ2YfZCJjaigh5eOiZKjlJybjYupqKWekJeHhX5qe4d+fZCNg4uQkYmQlKGDl5+gnaCei4l3nJiijJ9yoYuHqYibpY6Upql9rYx+eqCZeqOTeIF0loiNnH2Wn4abjpibpYaiZKF8iJaQm41tnmibjm+amXuAi6d9cmh0q4Oeg3SqaJWaXZuFdoWdZ6prgLhmXKhwgZxglYxep3Z1h4h+nmiadIWTkpeOgJ9vmpBup5pdqH54u2t+qlyOhF20Z1xucnp4a2lccWt5eWNgZlhiQlFGTzdXRFNvNUtbWl9PWkRAMTUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXlllZ1hmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4mptJqniGOUm6u6sa+snqacnKmgn6+cnrGprZ2XpJuhoJmWlqGkmYaJjWqIgHJ7l4iLlpaEkZWYkHqKhJWknIqUj4aMnpKdnYmQqaOgmoySioGAaYGGeX+XjHuJjo6IkJebf5Sjn6Chk5hyaJ+Kn4+McJKMgamHmJ6hpZ6me7Cto6K4l3ejs6OkgIiUeZ17qpp/oo6cmpaIl3GhfIWNr7V9a5qRoXl+mbWjpKuohJl8m32dmn90qlpdb3uWi3ieYkx/e3qFY3mXQkyfWKJqcXuObICIhJl1m3iGibGzf4Cbk6d3g51uc32VcJp0a6RdlXZIZWRgdHF+fm5mYGxpdntkZGJRX1hdVVdAWkZRaEVTV1xiWF5JRD1COD9BOklGOExFWEFXUltWREZiXFpgS2BtfnJFQzxVX2JaZmpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZtXWVnZmtkZmxpaGtpk5yAsK2ZhFNeoKazubKyqZqijJysnJyqlKKspKKoj6CenZuZlpihnZaIh4l3hoFveZWFkZuLfJGTlohygIiSoZtzkJCBiZqVoZuFj6mcm5WLi4t9g2yEhXGCoYx4ho2IiJOZlnyUpKGeooithn21hI6enHullnqpgZWbj4mfm3ynaHdtfpl0oXNyfJ2GmXCTg659pIOmnZmBpG9eqGd1omNvpWGc05B9e5l4c3RiooaQfqNzpI91a4+zjGCCmIlzqrKovH93g21+v6aptF2bbnxwlm1/cqJyXaRnc6ZgaKZtm9SafYabcHp7mGycfHiXc26ppGdgZXpxgIRsZ2Zkb3V3Z2FjU1xmUVFiSVhKVWFXU1tlaltlUUZES01KS0JLRThPQFFOWFNZT1NRYWVlalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJeagLCrVFxLfqmvsbSvs6ObmYWZqaChpI6lqaGZqoqamJiTmZOSoZiPiIZ7cH2FaH2Pg5SagXeQjY+Jb3+Fj5OSbJeTfImSk6WWg4+rm5STi4aKeYN2iIBugp+Gd4CShoiao5h7lKOkmp+Js6Gitot6rKekrqVwqYCajoWAmpB7pIChmYaYcp6Eo66vipeMgI2kjZWDraCUdrW1tcmhc5SLgZ9gnZepbXmVh6CbdKKHd6B+k5eLgW9NZqOScJqHc6R7enRhg4FrfaBrcWRfnHF9c5ZoeWmztbTGpnOYfXqda5ybq3aFm212eJhqmnt1mHJQRX2zX2p2a3mHZmtoY3V1cG5XX1RZaVFTaElWTVlUVl1oa25WZ1dOS0JKTUtISk9BUUtQZWNqbWV0c3N+eXxudYl7e1RQT2xeaVxraVJqaGlsZ2xmY2VgXF1dXmliZGlre19dZGhjamZubWVpbGWhm4iupoRlP5Ohsqqur7WiopCAl6qio6WMpaeenaaDm5eWjpeQj5yTjoiDemp5h2WDjX+YoHl1j4iMgWmEhZGDjIWdjXqNi5amk4OZqpiNkouBiXp/fYt5cJChhnqBlYeJlqCWf5SlqJyWloRmbnicbKJkfHGld5uYcGemgJWKeqR6n5aDl3Kfd4GKlZePuW6RiqJifZmglYhtcmmqa3WgbW+mX5ppi5BploeblXSigH2aYIyGjXVviGJooGWefmmbdW9jZoiCbXGiWl5bY6FtXYiLbnp9c3JkpW14omRnp2iZc4yZcKJvVYmQb6BfZqhUi15UmG5tc2tygm1waWx5c2tvUllXV2ZaVG1JWU9dSVhpaXNqWWtWUVJGVlxNWFNhVWlrX3d0e31wfXxyg3uAc3aNgIR2XlFyYmdjcGdQamhoa2xuaGRnX11eXWBqY2ppdnVdXGNpY2pqc21ma21jnKSYpXpkdG2Lp66jqbCxpp+MgJirnZ+mjKOim6OigZaYk46akIuYkI6KfIdxgIlpi4t8mJxzdIl9kHxkgoeUiYmVmYJ8iIeXqJGBo6yQhpGLgop+gICPc2mQpoR9hpSNiJmgj4iTqaadiKZ4lZt+pYiWjLKYnpCCr5efpXaUhnipc6WPhJpupaKMkoSNg7tufaWvg4aFhpOVnJ98pXpyqJWglmaefm+sY5WKlpN3qG2qooGJdoiDd6uRpohrkbBrdrOMqWuKhm1tn56SlWB+q4uqdn5+i6Wedp98g6SVnaBqm4h4rGierYy2dHe+jaSTWYOnjqthdXJ0cXx1cWNrf29obFNXW1ZhYl1rTV1SXUpebW53X1txWVxgW2d0ZW5vcmJxdGB3en55cnmDc4N/gXt7jIGCgHZieGRjbnJkUmtnaG9scmpmaWFgXlxia2JtbHpvXFxiaWJsanhtZ2xuYpWlqpyAf52jlqmqnaimrqSZioKYrJqfpYqbpp2pnYWMmo+HnJGFko2MjXSHe4mEcI2FfpiUdHSFcpKDbX+LkYeGk459e4KGmKaOf6anjoGOiYWVdoKHk29si6mBg4yUjomdn4qMlKujoI+AdZSXiH6BeZSuo3+Bm3GPhneOiYJ9e3KnjHF9fXqYlpuEj3l7f36Hk5WTinaQmJ6gg3t9iWuMhVt5eXJ6cWlufpKJcYB1gY+Uk3GGhIJljH9fgH+Ld3RylHVveW5uh2yEhV51Z3eOZYCAhY2omn10e5VqiYhwgXZ9h3dubWeMc3p8mHiFXGtYeY9pb3hycm94eHBda4duamdWW2BXXWZrZFZiVV9RX3B4eWxrdmZqa2x3fXJydXNhb3VidHuBeHV6g3V/gH+AeIqFg317bX9sZHluX1duZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhsb2GNlLiopomgopqmpJilnKuioYSEmK2SnqGJm6ebqZiDgZuLf5aUh46KiY1yg3yPfX6PhXuYj3Ryg3CVhXt8kouGho+FeX6Ah5qljnyooYuGkJCFlYOGjph3coSpho6SnZCJn56IjJuon6Cqg4iOlZp+fomWraiPkaaPd2+bj4F4kG5+qIVwfZVxa3B9gaCNgJOOjGhtXYOLi5uano5zlYuIcXRrgXZ0gVlyboaRgX5+jGpdamR7hYSJgGBpeHqae4KKgXWBhYJnd4qGamFwcYF1XnGKgIiOpZSFZYuNg253i4RxhpB6cWdoZXyEe5ZbXGpnbnZbfHl4dW5zc4NnXG2La2tiWlpfW1pscVxfYVpfXWZ0fnt1cHRja2trfH5zfHh1ZG11aG18fnZ6fHt5eoCAfm+GioR7fXN+eXN/aFVccWlsdW91Z2toZF1hWGtobGtxcm1XW2VubGdzem9oam1gi4uqsKCPoqGanp2Xnpioo6J+g5mujqCViJyikaWVf3uYhX2SmYmJhoeKc36BjHaFjIKFl4pxb4BymIaDfpKDhIaKgXqBhYycoZGDp6KIeY6XiZWLi5yYhIN6rYKRl5qVip6diIihqp+hoqOLh5ObnKOZlqqhp6afkpqGlIx6do2Ng6d+f5KQkpOcsqablZ+QjbKTl4OljIyVmp+JkJuCiJGKa3yOd3hlgoaQi3yJnYSHjJCIiICEhJB3fHp0maCIhomdiYSTfn2KgIB1b3KEgX13hoaKj6WQgoWMhoKMkIx9h4yKkYR5bYOFfnqZa3JoYXSKcX56d3dwd3SCXV5vh2huX15aXV1TaHJWZFxdYmxodXt8c29wZGtraoB9bnmAcmpwcGxngXtygoB4f31/hHttgo2GfHl4e316g3hOZHZqcm1wemVrZWNiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZIyHnLmelqKgmJSYmJSYpKCefH+arI+fjoagnYueln14lIN8jpmKhoOEh255gYFzgYh+iZSEbWt+epeGg4KPf4CHhIZ9h4WOnJ6Th6ughHOLkIaSkYudkn2Ne6qEjpOYlo+cloeHnKWfopqdhYKSmpmZkJqmn6WdnY+Vf4+IdXuGjYSle3yOkJGGmKuhnpSdkI6qjZCAnYyIk5mego+XfoaOg293hnF1YH6Dj4Z1jJiAg4+ChoV+hYSUbnl1dJGhiouFmoSEjHN/iXx8cnF6h4J6d4qOg5Gmj4WDjoCDiomKd4aJi41+cGx/gnxuaGxtaF96f2l+fHZ1dnV7eFxfcH5udWBjW11fUmduVGVbXmJraXZ6fnFsbWRramiBgGxzgWxsdW95b4Z5boeAdoKAfoV2cYKNiH57enx/e4KKYGl8anVoaYJkamNgaVxjdWhvYnVtbFVjcXllcHp7c2VqbW2LiZ63mqGjn5GRlZeLmp6fnnt4n6eRnIuHpZSLmJl5eo2FfImRhIyCgoNufIB5c4GFfouRfWpofYKXiH+HjX1+hoSGfY+CkJydkomonYBwjIuMkoegoYqFjH2okYmQkpeTlpN4jKOgoJ2WmX+AkJqYkoybo6GkmZeRmn2Mg3d/go6Gn39+jIyPfJiloaKTmpGQpoyPgZqRiZKXm36Tkn6HjoF1dIJwd2F9gI2GcYuVfIiMcYx/goWGj2h3cXiLmJGPf5Z9h4pxgYZ7fHB3eoqDeXmPjIKUpZKLhY97hoaHhHaDhImJfGdzfYB5e3Fsa2dffnNofHV2dH1zgGpeYHR2cHdkY1lfX1JraVVlWV9haGp2eYJxZ2tkbWhmgIFrbn1ob3JsfnmHemyMgXOBgX6BdHaCjYZ/fHp/gX1/j2lyg25zaWGHaGxiX3FWdG9tbWB4aG1XanR2Y3V6e3Jiam96iYyespKlpZyOj5ePhpygm518dqWhjpiAjaOLiJqWeXuGh36DiX+JgoF/cn97dHaDhX6KkXhnY32Gl4mAiYt5fYCNg3mXgpaZl42XoZx+cIyCkZSGppuIjImDppWFk4uWl5OSd5GdoKGXk5Z5f46Yl46WmpyknZiSlJp4joSCd4OVjZ1+gYmNjHOXo5+ik5mPj6KMi4OWmIOSlpl+mIx8iI2BdnF9bntkgHyKhXCHk3+RgmyHg4KAiYVldW57hZGXi3yTd4uIe3+FfHpxfXeIhHiEj4iKl6GVgYOLdoiEg4J3fIOKh3hhenl+dH94Z21lYX9qandzdHV9cXxiY2B0bnVybWFaYV5bbGVSY1lgYWhrdnmGcWNqY21laH2DbGh0aG5waYB9gnltkIZxgISDf3R8g4yBgH16goN+fJBtdol0dG1limxqYmJ2VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPnK2XpqiejYyXh4afk5eZfniqnYuZepedi4uYkHl8gYx+fIN8gYOBeHR5e3R9gYSAiYuAZF99i5SGfoSGdX1+in99mYWXlZiNpKOZf3OHe5SSiqaPjI6Kk6GSg5GQlZeRi4GPl5+ako+Qc3+NkpSJnZ2eppeXjJSVcouNiWuEl4+ZeoeIj4lvl52apJSVi4yfjIaCkpx/kpKVh5mIfIqKgXpxeWt1bHt+i35thZKClHhwgYN+fouAZHFpe3+Wl4R+jHOPh4N4hnx1d398hH97gouEi5Ojj3iDgXSJh32AdHaCiYVwYXx2enF9b2JvY2R8Y25vdnN4d3N0YXZgb2x1bW9cXF9eXmpeUF1ZY2FobXR7iWxgaWZqY2l3iG5mbGlqbWiBfXt3b5CIc4CEhH10gYaJe4N9eoGEfX2OcnqLeHhubIdqaF9pcmOHZ3FvZXdnbmxheWlrfXt4cGF4bYuAmJmqoKOonYqKkYaKnYuVmH54r5mNl32flJGWk4h3fnyKfXyAd3iAgHB1dHxvhn2BgYp/fGFcfo+Shn+Dg3N7gId7j5KJk5Kdk6acloJ9gX2OipKkiY6KjZibjYaRmJSWj4qIjJKcko+LjG2Dj4+RiZ6ZoqGXlYiWkG2HmINmhZiOk3qIhJCKcJaalKOTkomLmYyCf5CdfZKPkoyZjnuKhYdzcnVrcG51fIp0boaQjpJxdYB8gYKIfGRwbHl8mZN9g4hzkImAc4d4bn98f4V7hIuHg4uUp4x7h3t+i4V3fnFwgYeEZWh5dXVwfGJfcGFrdF5xant5eWxzcGV4XW5sc21yWFtfYGFrW1BXWGVjZ3Fxf4dmXWppZ2JncY1vZGlnZWlpgXp3dW+OhXSBgoN7dYKIhXiFfHiEhXp/iXd/i3t7cniDamtgcGh0gGtyb21yZ29sZXxjboB6d3Fsd3eKfqKXoaigppuHjIqBkJyHk512gquVk46HoY2Wk49/dHx3hXh5f3Nze4Zrc3B6bot3gIGIb3FbWX6RjYiAf393dYGBgKCGkYuTnZihlZh4in+BjYmcnYqPhpKYloWJlZmQl4uLjI2MnImNj4JtiYuQkYqdlqGcl5SFl4dpg6KCZYSciZB+i4OLgXeTmJKfk5GJiZWNf36Pl3yRjY+OmpF8ioCDb3VwbG1vcHuFaXODjpiLcXeAdYKJg3lmcm51gJqOe4eDeZOQeXaHc2+IeoSLeYqFgoeNmqKHe4N1got/d3lubIKFg15zdXNxcHlaX3FhcGtecGp9e3FtbWpsdmBvb2pxbVlZYmFiblhRVFpmZ2N2cISCYl1rbmRiZmuSbmBnZmBoa4F1cnNwi4B1f4OAeHWAi4B5hX93h4Z3g4V8h4x/e3eKf2pxY3xjhnxucW10amhvbHZ4X3F/eXx1dXSAg36klZqtnqaWhY2Df5eUg5CgdoyglJOGi5uNlo6LenJ4dIJwcoV0cXaIbHBudm2Jd4N+gG5uVVGBq5SHgniAd3KDeoKhgpOClZSZnJObeJJ7g4ySpJqTjomVmZKEh5eZjJSLiY+Ph52EkIp8couFiY6InJqfm5WUf5N9aISbhmeFn4eShJGCiXGDkZiQnI+QjIyPjXd7kpF6jouMkZaMfIh8gGt2am5rbGx7f2F6fo6WgnZ6gHiDjHx5ZnNrc4aVi36HhXqTjnB5hG92i3mIi3mHfIGLj52dhHx7doKLfXdwamyChHtheXFubXN0Vl9wYnJhYGxuenFocGZmc3RocWthd2VdV2ZhYHJTUU9cZmVdeXCIfGBcaXJiYmVmkWpfaGVbZ3B+cGxxdIp9dnyFgHV1fox5e4WBeIiDc4aFfoyNhHx5lXhmcmuDYIh+b29remBqbnR/dV90fXmGeHRzhX14oI+ZsJyljoKKf4OaiICMnoCLmpSPhYiYj4+PhHd0d3SAcXCFdHByhHBraXdug259fW51c1JNgt/IktaTe3B1g3WEoIOUd5aSmZyRmXuUc4WQn6GTk5GJk5yUhn+XlomOjYiSjYicf46Bd3qMfomMipybnJuVknmMdWaHkIZrh6KEkYiXg4ZjjJGZj5WLl4yMiotxepSIe46IipKRiXmFfH5se2VzcGtrenlbgHmPj4F6fX5/ho57emdyanKKjomBhYR8lIprfX5tf4t+ioV8g3mAjpSZmYl8dXeDkHhybWdxgIVua3VwaGp1blRfb2VwWmBscnhna2tiZnhycHBjX3dgYFZrX152UE5LYWdjXXpxinVdXGV2YWJlZY9kYWZiWWlzc25rcneMfXR6hoJ1dn6Lc4CGf3uJf3KJiIGRi4h8fph2ZXNufWWIfm5wbIBZbG55eXRhdnt7jXZyd4p3eZ+Lm66bn5CChXeIlX59ip2IhqCRj4WMmISTjoeBdHhweXFvhG9tb39zZWV5cX1ten1qaGtjpJrB3K7woXJsdoR2haOGkm+XkZahlpyBknKGi6OXiY6VipGdloOBlpCGipCAkYqJln6HenV/iXiHhI6cmpiZjo92iXVthYiKfImig5GJnISFXouTl4uPiY+Li4WJbXuWgX2IhYmRj4Z2hX19a31keHVqbnlzV4h6koeFeX6AgYaMf3llcml/iY6JgYJ+i5aEa4F1bYeQgY6DfYF4fo+UkpiPdHJ3h4x1c3FndnqEY3VucWNqd2hSYXFnbFZfb3R6YXJkX2h+cHJuWmNyYGJWbllceE5NTGRnYl53c4luXFxkeV5gZGWFYGNjX1lqcmtua3N3jH50d4SBeHd7iXGDhH1+iHt0i4mIloaMf36Xc2d1cnlsi3tudHGBV3F6dnlyZXd5h4xpdoCJcn+ch5innKOShX1xjJR4eYyehIWhjY58lo2AmYeEe3J3cHRqcIFsaW18dV9heHd7cXV8aGBkfOvatcnD3IdybHSBdoubiY5qmZCQnZaUgYlxhYmgjoWLlYqMmJR8jZOIg4mQe5CLhY+Bf3Z4g4RyiIKTnJaUl4aMdYZ9boOBiIaYoYKTjJ6DiWGDlI+HioaJjYeBh2p9lIB9g4SJjo2CcYZ+f3F3aHZyaXR3a1qMfJKChX1/g4CEioJ1YXJqh4CPioF+fpGQfG2Ba3eFjoWRgnuAfH6PkY+ViG5weYyGdWtxbHN5gmB1am9da3dgUmVyaWZTYHB2dGFwYF1og3FzaldnaGJpWG1WW3VMS0xlZ19ic3OFalxcZXleXmRne2FkX11Za25lb2p0eIp+c3OBfnt2eodzhYN8f4d2d4qGj5mBjIJ7k3Vsd3Z5eJN0bnh6fVh6hnGAb2d5d5KCZHaGhXCKloWZoZqiiod0b5OLcnePnH6LmomJfKB/hJl/gXhydG5vZHJ/aWZteHhcX3l7e3FxgGphZmF/1baOkaZ4bnF3fHGTkY2Ha5qPiZyTjIZ7aYeLmYeBkpGGh5iOfI2NgYGKjXyPjH2JhHp0eoN7cYaAlpqOk5SBiHWDhXWCf4mRnJ6GlI+ffohif5OHhYiEio2AgINnfZGAfn+CjI+Qfm2CfIJ0a213dXR3dmtjjYGOgIV+fIV/hIl/cF9xb4R7jouBe36Qh3lwg2V5gYmGi4J6g3x+ko2PkYNubnmLfnVtbmtse35kaWxqWW53WlJqc2liUWNzeGxiZV5aaoNuc2JcaF9kbGBuVVtwTkhPZ2VcZ29xgG1aXGNzYFxjbHdkZV1dWmxsY21qc3eHf3FwgHt9dHiGeIWCfICIdXmJgZKWfImGdomBcHh5e4STb258gXdeg390gm1penOUc2dziHxykpGDmp+boIaIdnaVf213lZh+iJCEio2afYyadn52cXBsamF1fGdianV6W2B4fHptcX9lY2dnV52PX3FzlrzEhHdxlIqQf3OYjIedlI2IdGuIj5WAe5SMgYSbjHyKhn18iYx/k4h1iYV2dn2BcXWGgZ6VhpSPgoJxf4dzg3qIlpuXhpONnICIZn2TgoCGg4mJcoJ+Z32Le3l/f4eLj31pgH2DdmZveXhzd3Nsao6FioGKf3iCgYSEgGtdcHd6fYuIhXuAjn99cYBoeIGGioWDd4J6f5aLjot8bWt6iXx2dG9paH13ZV1xY1hwdFNUb3NpYk5odHhmYV5dWG+Ab3RZZWNdam1gcE9ZbFJEVGhiWmxvbXtvWVtebWNaY3B2ZGdcXWBsamNsaXN3gYJxbn57f3R1g3qEgnyChnZ+iYGWkXiDinSBiHN5eX6NkG9ve4FxaYF5en5ubXx2lmtqeIR0a5SNhZ6YoJmFiG9+jHZqeZmPf4KKgpWXinqPlm96c3BsamRgdHtpYGZye1thc316Z3B6YWVkjrGyd0tiWqXa0Zdye5KMkXl/loyFmZKNhm9shpKRenmTh4GEmYp8h395eImKhJWAb4qHcXR9e2p5hoOlkYWTjYN/bn6CdYJ3hZmXk4qTj5SFh3B7koR+g4OJg2+BeGiAhXhyf3+Diod8ZXx+hHZjcHOAaHlxb3WZjIaDint2eICEeoJrW298cn+Hg4h9hYh6iHGAbXCChY2DhHGDd3+Yi42Dd21tfYN/dnplaGp+cmFaeFtZcm5OWHJzZmBLbXd1Yl5bW1l1fXJwWGheZmpxX29OV2lSP1lnX1twa2d5cVtbWWtlWWNxeV9oXV5lbGhmbGlxeH+Hb21/fYF1cIF7gIF/g392gYWJl4pxgo1xe4Z8enmElIx1a3p/bG9+dIB9b3J8e5Rwb4B/eWaSioKhmJ2Sg4Vnh4NwZ3qXin6AhYKaioF8jY1peHJra2ZfYW95bV9ib3ldZGyDemFxdl9kZdXrvosyOj6LjoByeYaJj413hZiNf5OPjX9ubYWMjHV9j3+FgpWJfIN4bnaHhYOWd26HhGt1e3VleYOEp4yDj4yDfW1/c3WCeISaj4uPkZKMi4Z+e5KHeICFjYNsgHJpgH54bXx7gYqDeGJ5hIFxZHFofm11cXWBm4uBf4V+c3V9gHKAb1prfHN4iIGKe4Z/fId3eXBrhoKOgolxgHd+lYqKfnRtanaAgHV1XGlpeHFaV35TWnJlTFtzcmZbSnF4cF5bWllcdX91aVliW2dlbmJpTVhmUT1eZl1edmZfdXFbWVVvZFplcXlbaF5gZ21naWtpcHh9jm1qgYR/eW6Ae32Bf4J6dYKBjJOFcICLbnd+gXt7iJOJf2l7fWt0fHKGe3N3fX+MeniEfnxrjIyEm52WjIKAbI1+a2h/j457fn+DlYJ/fYqIa3VxZ2ljW2Nnc29gYWx0YWhwiXphc3ReYmOboJBuXDVar7V1aoCKfpOGd4eYh3WPjIp4cG2Fg4d0eYl4iX2TiHp+cmd2iH59l29xhn1odnluZXqJhaWHgIeNiX1tfXV+f3uKl4aBk5CXiIuEiXyPiXF8foV8aX5ta4F7eWp6doKHgHJgd4J+cWRyZ3WCbXV7hpSRgX2Bf293eXt0fWxXbX11c4qAhneGdYGJendybYh/jn+DcX17fJGHiHpubWltgoJ1bl1oZnRyUlx8TlxxXE9cc29kVktzeWtYWVhZYHGAdWFdXWBnZGhoZk5aaE5BYWRcYHZhXHVtWFhTdGFbZW9zV2pfYmhrZ21saXB3fJNsaISJfXxwfn58gX+CeneAgImLhHJ7h29xd4R/e4mNj4NqfntueHl3ind9eICCh3+Efn56bYSMiJijjYWEe3aLeWtthYmSeX17gpKAgH2Kg3BycGJmXllnX3BwYGFocGZqb4l0YXRvW2BkanZ7f76cp6TJuHKFhHOTfXmIlIR0kY2IcnNwhHuDc3WGdIh3lIl5eXBjd4Z5gJJpcoR1Znd2Y2p8hIiegoB/jo99cX5zg3h+kI6Cd5WNlI+Igoh7iYlseXp/dmh6aWx/eXNpenaAg31oYHiIfWpqc2h7gGp2gYyRlH56fX5xe3Z7c31hVXV7cXOIgoF7gnCGiXd3b2+CgYt9fHd8e3SNhIF1aHFobIiCcnBdaGN0b0xmdkxeb1VUWXNuYlFPdHliU1dXXGFwgnNbYV1oZWVjamRRW3FJRGRiXGRxXlx4aFVXVndeXGZuaVZsXmFqZ2Vubmhwd3qTbmmIjHl9cnt+eYKBgnx2fYOIhoNwdoNzbXeCgn6Ji5R/cYB8eHp6gYt0g3h/gYGChHqAdW99iYubnoh+hnt3h3xodYaNkXp/gHyJhoR2j4BncG5fZFxYZlltc2FhYXFsbGiJbmBzaVheY22Ad6nZqceGiLNyinlwjnZ9iJCBepSLgHV0dX53f3Bwf26FdJSGeHRsYHqBeYiOZXGDb2d1blttfYGQk4CBeZGSfXd6bIV0fo+Kg3KVipCOh4WFe3+GbXV2f25od2VtfHZtand2f398YGJ4hnpodXVjfntndYaOjZV8dH91cYB6fGx+WVZyfG90goZ+f3driIZzeGp0f4KCfHl7d3pxin98cmd0ZG2LhG10W2tgdmZJb29MW2NYV1Z4bWJQU3V2WVFVV11gcoRvXGBjbWRjXW9jVF1yR0JmX15maV1ae2NSVlx1W1tna2FWa2BgbmZmbHFocHZ4j3Rrjox1f3Z4fXeBg4F7dH6DiIiDb3GAdXF1foaCiY2Le3d/eIR8fYWHeId8fYF+hYB7fnN2eIuOn42Je4p3dYN6Xn6Hmo15h4R0hoeEd4l6Ym5sW2JbW2FVanRkYFtob3Bnh3FhcWZXXGNrf3zKzoa5omtubottcoVyfoWLf3uShnp5dHp1dXtqbHZjhHaSgnZvZ198gXmLiGVxgGpqcWNYbHuGnImDgnKXlHZ9e22HcICJioZwlo6QiIWLhHt5f3JycH5naHJjbnhxamxxd319el1leoB3aXV5ZoJ2Z3SHi42UfXKGam9+gHhte1xYcH1sc36Je4Ftbol/cHZmdn6AfoB1enB5c4V7eHFlcmBti4Frc1hrX3ldSXBsTldWX1RVfGtiT1R2c1FSVFZdYnSGaVxga2pmYlluYVhjcEdBaF1hZl9cVnxeT1ZlcVlbamhdWGdhX3JmamhxZ3Fzd4d5bpWKdH97d355g4eAdXN/hoWOg3BwfHh3dXmHhoeMhnp8f3WLfn2GhISHf35+fYd/fHh2eXaRk59+jX2LbnWAemSEiJeGc5KKb4WFgnqDdWRuallfW11dVWhzZWBZZHJyZ4FyYWtkV1pfaX94vq56n7duYnSHaXR8cnqEh3t+jYB4eHN3b3t3ZWpvYId1joFzamJefnh4ioJlcH1oa2taVm93i6SBhX9xmZJxf3d0gWx/gY+GcpOHjIeEiYV9eXVzb2l5YWptYW12amdra3l3endbZ358eGVzfm6EdGZ2ho2GlX9vi2ZreoJ0bHRiW256anN6inqBZXSGfW1wZ3R+d3x+cHpqeXqAeHdvZWxhbIl9bG5Wa2F4VkxrbE9ST2lOWX1nYk9VdmxNUVRVXmZ2hGdeYXFoZ2FXaV1ca2lKRWtaYmVXWFV5Wk5XbmpZXWxlXVplY151ZmxlcWZzcHSBeHCZhXZ/f3h/fIWHfXZ0goeAlYNuc3l7e3NzhYeIiIR5gX12j399hImOg4GDe36Lg3t3fHd2mp2XeoqDh2p2fn1shIaUgHKPgnGGgn6CgHBmbGdXXVtcW1NlcGVfWGNydWl2cGRlYldbW2h/cG9yf3OJZWZ6f2p1dnR0hIV4gYV6d3R1bmt6cWJoa2eGdI2DbWZeX3xveol9aG13ZmpkVldzcI6nfYR8dpaQc3tye3lsenqPg3aXfIeGg4eEfXVxc21odV1taV9sdWRnZml6b3tyWWeBd3VocIB4gnZid4WLfJSBbotqbXuAcGVyZV9reGZxdYl6fWF1g3Zpa3F0em94eHJ7ZX1+fnd1bmNlYWyGfG1rVmpjclRMa2xQTE9wSF57ZWFOVnVlS09TV2Brd35mXWdzaWVfV2NXYnFdTEtrWGRiVVRVc1dNWXZlWl9sYFxbY2Vfd2dtYnBpdG9xfnV0mYF3f4B4gH+GhHp9doKDfpiFbnJ0fHt0cYWFj4KAeot1dJCAfYGUjoCFhHx+jIZ6foF2e6OlinmJhoVsdX17dYSDjXpvhXN6hX2ChHVuamllVl1bW1pTY25lW1hidHtqaG1oYGFXX1ppgGlrb39nbGJpe3prdHV1b4aCe4F9dnZuemhqeWpfZW5pgXeQhGdlWGJ3aX6GeW5pb2ZmXVVZcGmPqHeBenyQjnh1b31ucnR4jn53lHSFgoCGiHZqc3ZoaW9cbWVebnNfZ2JqeGh7bVttg3N0am+Afnl3YXaFhHmQhnOIcW95f3FicGhbbXZjcHKHendhcoBvZ2l4c3Frd3Z0dWKCen12dW9jY2JtfHxra1VpYmdUTG5oUEhSbEVheGVhTVRzXkpNVVllbHh7Zl9tcGpkXVZgVW9vV0pTaFhnXlhNVWxUS1x6X1xfa11dW2JlYHpobGFvb3Zub3d1epd9d4CBeYCAh4Z6eXqDfYGThHF0dH56dnSFiJB9gXyQbHOVgXuCn4V/h32AfoaCgIp7doSsn396iIiEbHKCenaBgYJ0bodvfYB0ioBqb25kZFhfWlpaVWJqZ1xaX3WCaV5tbFxhVltca4FlcXR8aWpdbXh3aHV4c26GfH5+enZzbHpoaXhnXWRzaHp3koFjY1Rkb2eBhHZ2ZmhpYVdWWWhkkKhvf3iAi456cG97ZnhueYp6do5xg31/f4ZuZHdzZGlpXWxiXnBvW2dfbXVlemhddIBvcmtxe351dmJ1hYt7iIiAf3dydX5zYHBsWHByYXBwg3tzY3GAa2Bsem9pZ3l3dHBkg3R5eXRxZGFkbXJ+amtUaV5fVUx1Y1FHV2JHY3ZlYUxUcVlLTFhYZ2x2emVlbXFmY1pYXVh3ZlRKXGNYaVhYSFdlUUlieFtdX21bXl1iY16AaWtgb3R4bW9udoOXeXKBgH1/iYyGfnV2hniGjH10dXWCeXp6goyOfX+EiWp0loF7ip19foV5gHt+fIaJc3GProx7e4eQfmZxiHp0fn12cm+GbHt+bZB6Y3BvYmVdZVZaWVdjZmtgXV1zhmlYcG1bXldaXGx7YnF3dWxiW250dWh1d3Juhnl/gXp3b290ZWh0ZVtndWZ2dpJ6YF1TZWZqgoFzfGFjaVxUWF5iZJClaXl0goWQeGxueGZ3bHuDeXSIcoB4fHiAaWZ3bWBoYV9rYF51a1lmXW9vYnplW3d8a25ucHh5dHRlc4OSf4iDiHp2b3F8cWF3Y1pub2BvcIB7cmVxgGRebXVpY2Z4enJsbYB0cnxycWFeZW1ufWVpVGhZWlVOeWBSS1pZSGJ0Y2BKVW5VSkxaVmlscntjbGxzY2FaWlthd1xUS2NdWWpTVkdZYU5IanZYX2FtW1tfYmNdhWloYm54eWxvanaBkHhtgn6AgZKIhIF2dYl0i4Z0cXZ2gnd9fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OIhHNwmaJ7e3+JlnhkdYl5c3l2a3Rwf2x5fHCRcl5wb2BnYmxUW1pXaWRtZlxccolmUnJtW1lYV2BsdmRqdWppX1tudXJtdHV1a4Z9f4B8d29ubGVpcWNba3JkdHaOc1xXVGRgcX9+cYFcYmNeU1phXGSTn2VycYSDkHNranhsbm95eXpxgHZ/c3p6e2RmdmheY1thaFxed2lXYl5waGF3YVt8dmpqcm94dHN0aHGClYOHf4R1cmpwe2xldldbaWxhcHF/eXNlb35aYG9xYl5pb3xranJ9cW92aW9gW2RrbHthZ1RnVVhSUXdcU1BZUkhjc2JgR1ZsUUlQWlZrbGt8ZW1vcmFbWlhZbHBXU1BmV1dpU1RGWlxPSXN1WGBkbWNYYGFiXYxqZGVtenhrb2l1eYV7a4R9gISZfYKEeX2IbY+GcW92en10goJ9i4+Dgpd0eIKThoGfiXWBf4F0f4Jwh4J1b6KXc3uGjId7ZneLb258cGd4cXtsc3ZzjWtedG5hZ2ZrU15cVmhibGxbXHGMZE5vbVxWV1VmaXRoY3RlZV1acHZvcXZ2emyIfYB9iHeQc2Nla29hXW5tZHN4iGtaVFZiY3d8fHCEXGNfY1RaYFpjl5VjbnCDhIlyamd5bmVydXF6a3l0dW96fnZfZ3NkXF9XYmRZYXVmVl9gbWRhcV1dfnBoaXNxdHF1dmtthZOCiXyFcXFmbntvcG5SWmVpZHByf3VzYmx1VWJxa1tebmR7ZGt0fHFxcWlsX1hkaWp4XmZVZVVWUFVvWFJXVFBIZXJfYUZYa09JWFRWbmlkfGlreGthV1xWW3RkU1JXaFFZZ1RTSFpbUE54d1tfZm1qWmJgX16PbmJna3l2bm5pdnZ+fm2EgH6Gl3t/h4GKfmuTiHJndIB7dYCDfomOf4uTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYx3eG56jWBlfXFnenR5bG1xd4NnZHxtY2ZnaFNgX1VnYGxvXF5ujmhNaWxgVVZTbmZza2Z4ZGVdWnJ2bnN7eXRuiXuBd5x7emxiZWxtXmBvamVxeX9nWlZYX2x4e3pvg19iXmhWWWBYZJyIYmtxgYZ8d2tqdmxbdXBqeWl1cm5ve4BzWGtvX1leV2NkWGVxY1RfYmlhYmxaYH5rZmxzdW9teHZraIWMf4l6iG1wZW97bHFsYlhfZ2ducn9zcl5pbFNlcGRVYm1heGJvdXp0am5ral9YYGZodV1kV2JWU09ZZ1NPXU9PSGVvXWNHWmpOSl9LWG1lX3hobn5kYFVeVF11W1RTYGdOXmJVU0pcWlFadnZdX2ZtaFhjYVtejnFjaGp4cnNtZ3ZzeYNzgoN7iI5+fIqIjnlukIp0bHOCdH9/iIWHkYSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6OjY2NjY2NjY2NjY6NjI2NjY6Pj4+Ojo6NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCS5KamZmZmZp6bG5tbm5xSSwwMC8vLEmFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIaCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTM/k56cnJycnXdlZ2dnZ2s8GBwcHR0YO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmHiIiIiIaNkJCQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaNjo6Ojo6Oi4qKioqJiYaCgoKCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkpKRiYeOipCSk5GLko6OjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyMjI2NjY2NjY2NjY2NjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoWOiYmOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCQiI6NiZGJjJCPj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkJCJjoyJkIiOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x8fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouLkIiNjImOh4+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2PjI6Ni42Mjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5eXt9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHt7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx7fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fH1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eHiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fn5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTk5OUk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOTkY+TkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZGSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSko6QkZGRkpN/hJORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCShHmQkZCSiHOJkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj5CNcHuQj493doiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo51bIWQh3J4h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjXhtdY6BdHaGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uIcGJneHNvdYKFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3JcYmlcYmRrZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoYGN0bF5qbmdkYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpba3NrYW10bmVZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVtlb2taaXN0a1JRU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OWGJobW5vcHFuU0xPUFBQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0VDRklWY2ZncW5taGddUU5OTk9PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVFS01NUl9qbWhubW1qaGZjY2NaTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8PkVUXV9jaWxuaW1sbGpqa2pnXk9HRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7OztHVl9ucHFrbWtqaW1nWElFRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs8PVFlcXJzb2xoWEVAP0NGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5OTxLbntxVkE4Ojw9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5ent9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT09PDtKbGU5Ojs9PT4/QEFAPz9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9APFxuQD5ERT8/QTpGXz4+PTs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3x8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdIODs6PT1BPEtkPTw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw8PUlNRkZ1d003ODg6Oz4+V2pBOzw8Ojo7Pj8/PT05Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/enx3Vzw9Pz09PkZodEw6PT4/PT0/QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoOEg4ODgH1ePkBDQEE9SnJ7WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2Fdk1BQ0VAPz5Ze4BdP0NFSUpJSU1NS0VDRkdHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhGSEZRbm5wcXJ1dnl7e3t6fH1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIpsQUFWdIeJh4eHiINXSExNTE1OTElHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINWbISHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQENDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpUgYOEhIKChYaGhIKGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhLTUxHSUpNTU5NSkpLS0pMTFNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1NTc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouMiVQ6ODY1Njc2NjY1Njc3MzU2ODo4NzY1NjU2NzY3Njg6Njc4ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGUFNSU1NST1BQUlRlcXFzdHR2eXt7e3x9fn5+f359fX19fX9/f39/f35/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JlhYOBgIGDg4ODg4WJi4qJiYqKioqLiYqKgUc1NjY0Njg4NzQ1Nzg1Njc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc3Nzk6OTg4Nzg2ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ6e3t7fX1+f35/fn19fX1+f3+Afn9/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDg4SEhIWGiYqKiIeIiIiKioyKiYmMej48Ojg7PD0+OTo6Ozg6Ozk6Ozo6OTs6OT09PT47Ozw9Oj07OTs7PDs8PDk6PDg6Ojo6OTk5PD88PEFCRElKTEtJS0xXb3JzdXN1eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMb08+PkJERUVCQUBCP0BCQUA+PT4+QD8/P0A/Pz09P0I/QUE/QD89QEBAPj9BPT48Ozo7OTk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t9fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUJBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4qKi4mMYz5ERkpMSkpGR0hFRkdHRUJBQENFQ0NBQkNCP0BESERDRUNFRUFGRUZERUZEQEI+PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyLioqHVkhNTU5MT0pKS0lJSkpJRUNERkdGRENFRkRCSElLSEhHRkhHRUpJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtBQkJBOTg8Pjs8Oz5AP0E+QkJHR0pZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjYyLiox/UE5QT01PTEpMSklJSEpGREZISElFRUhGRkVMTE1JSkdGSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7PD06PkA+P0BDRklKUV+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjIuLio1yTlNRT05NTE1KSEdFSUlFSkhHSkpJSkdHR0tMTkxNSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVbnB1d3d5enh5ent8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIuLi4tgVFRST09OS0pIRkJHSkdMSkZLT0xLSkpLTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRkZIRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIuLjn1ZWFRUVVRPTUtKREVGS09OT1dVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQkdWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLjGlZV2thRlRRUVBJOztSU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl4ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0ZGRT8/QUFFQUNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh21cZVU6WVlYU1E/QFZVWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd5eXp7ent8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKi3lvcFlbXFtSVFJWVlRbWnWDWVV9kGFdWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeEin5nWVlcWVRWVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbU1NRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2AfFxRVlhVUlVSUVFMT01LZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW5xVkpMTk9LTUtISkRFSUVDPlRkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3t9e319fX59fX1+fX5/f39/f39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11MRD9DQ0NDQj9EUEJDQEM9Q0lHVkBITkxHXWlQSEZORkRFRklHSENESEdIS0dEQkFEQE9RTVJkcnR2dXN0dXp8e3t7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT09MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn+DgIODgoCCgIKBgmtNRz9AOzs+QEA/Pz5rUEthRUZISUVCP0dMTkdNUVVJQUU/Pzw9PD09Pz0/QUNDQD88PUI+Sk5HVW50dHVzdHZ4enx7fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOTExRUlFUVlRXUlFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQkJEQlxdT3tOT05OS0xNT09RTEtNV01IR0BBPDk3NzU5OT07Ozs4OTg5PzxCSD9cc3R1dnV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZGSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aWE1MVFRTUFFVT0xSU1RXWFRUWFFMV1laVlhYVlhZXVdYWGhza11WYXNrYmFfXmRhX15ZVFFOTk5MSUhKTElJRkNRUFNbV1RUTlFTWVNcZVVPU1NRTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTlHbXF0d3h5e3t8fX19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcG5tZF1fX1lXT1BYVlZTVFZPT1RWWFhZU1VUTEtUVlVVVVdQU1VXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTE9SUk9NTU5OTk1KRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz49Ojc4NzY1OTk2NzY2NVdwcHN3eXp7fH1+fX58fX18fX19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF1SVFpWV1VUV1RSWFhZWVlSVU9KR09QT09NUkpQUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMS09SUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0lGTE1QTUcvRV9SPjM/PmpvYVJSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR1eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRkZISk1MRUdDT1JDOEVOU11nU1BTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTUxLSTw5ODc7PkA+PD1BQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFFSYVxRUFJPU09PUExMT01MTUxNT05bV0tNUU9HSUhDSEpMTEpGRkZFP0JDPjxCRz9CP0FkcHN3enp7e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSEREPTk3Nzk/Qj47P0JAQD5BREpFQ0dHSUZJRUJCPz49Q0JBR0lFTk9iZVFNT05XS0xNS0xNTU1MS09OU2ROSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7ent6d3R4dXh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ2clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg6Oj9CPzxAQkFBREVHSkZDSElHR0hDQz9CPz9AQT5ERUNMTlJUTEpJTVRHSUlKTEpLTElKTE1PUFJQS0dDTEdDQkpJTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFHS0RHSEhHSktJSktER0I9Pj06OTo7QUI/PUJCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQENFRElNUEhIS0dIS0RISUxNSEpMSElKTEtNXVJISERORkFESkpNTVBNS01KS0ZHR0pNTlFOTGJtaXZ2d3p5fHp9cm1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjtAQ0A+QkNFRUlFSUpMRklJR0ZGREI7QUNDPkBDQ0NER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lHRU5IQ0dNS01MT01NTk1LSEhJT1JRUk5SZmZmcW9zeHV7enxsaGpvZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQ0NCRUBEQT4/Pjo7Oz06PT5DQT5BQ0VGSkZJSExIR0dHRkVDQD1ERUI+QUNDQ0RHSElHTVBKRkZHS05PS0ZISUZFREVJSkhKSUZIUEtESU1LT01PTk9QTkpKSUxSVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPUJBPkE9Ojo9Pzo9PkBCPkBCREdKRUlGSUhGRkdFQ0JBQUZGQ0JCQkRFRUdHSUZMUUxJT0pKTExJR0hFR0ZEQ0lJSEtKR0tSTUJOT01RTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREQ8QUBAQzw4OT0+OT88P0JAQEBERkhFSUZGSEdGRkRDRUNESUVDR0VCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFSUFFRTlBNTlBNTE1TV1ZYV1VYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRDw/QkJEPDc6Pj46PjpAQj4/P0JFRkRHREVIRkRFRERFRkdKRUVKR0NHSEZIR0VDRkpKR01LTEtISkxGSUlLSEVLS0xMTk9SVFBIU1VTUFNPUU1OUU5NUFdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSUhHSUNBQ0hFPEBFQkU9OTo+Pj08PEFCPD8+QUJGQ0VDQ0hFQ0VFRkdHR0lGR0tIREhIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT09PUlVWT0tVV1NRU1FSTE9RUE9UWVpZXFpZW15eXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdE1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkE8QD5BQUZDRUVESUVGRUdGSEhGSEhJS0pGSkhIS0hGRkxJSEhKR0xMTUxMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1JSUFZbW11eW1xeX19hYGFkXWNgZWZgZWhqY3NzZmpnZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SkpMSkxHQ0VERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRUZJRklGRkVJSUdJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QTE9QUlRYVk1OVFZUUlJRUExOVFNSV1teXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdESElHSEpGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luaGNpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUVDSUpKSUlLR0VLSkdISklJS0hKSk5MTktJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHREVKRUVKTU1LTExHR01JR0pLSEtLSUtLTkxOTExMSUxNTFtzYmRwXmxtVU1OZnNdZ2ZxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1KcXl2a2Jga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydnRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEP0FCQD5DRkdCRkNGRUZFRENISEdERUtIR0xNTkxNTUZKTkhKS0pJTEpKSktMTU5OTU1KTk1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcF1fcmtxalV1eXhwY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGR0JHRElFRUVCRklISEVHS0pHTU1OS01OR0xOSUxLSUpNSUtJSktPUE9OTUxOTkxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRqdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNHREhHTEhFQ0NIS0hIRkpMTEZOTExTUkxHTE1ITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnRzdnNIS0hJQkVFRUFAPkREQkdESElNSUZDRkpMSUdGSk1MRU9KS1dSS0dLS0pOSUlKTElLSklISk1NTU1JS0tLU2tjW2leX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4dHVucXVud3FydnR3ckdHRklERURGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEtKS0tJSElHS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xVWVtdWF1cXGNmYWFlYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDQERIREZHQ0lLTEhGREdLTEhER0lQS0xPS0xXTElFRUhJSkhJS0lNSkhGR0dJR0hJRUZMSUpMT0xJUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHh5eXh5eHd4dHF4cnhzcXJ1cnRPQkNFTE1CRENCRUlFR0dGS0pLSEVGSUpLRkVISFBKTU1KTVJJSEVBSEZKSUtMSk1KSEZESUZERkdFRUpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmJhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNHSEZIR0hLSUlJREdLS0tFRklKTktOTEhMTkdIRT5HR0xJS0xLS0tJR0RJRENERUJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVpQWl9hYV1eY2FgYmJiY2NlWlFZVlVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFR0lGR0hIRkZKR0hHSUtJTERES0pNTUxMSEpKSEpGP0dHTktLS01LS0tJRkdDREBEQUhJQj9JSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUltXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHRklGRkZJTEpORkRLS0xOSkxJS0pISUZCSElRTUxLT0xKS0lHR0VEP0VDSEhBQkdHRVRdWV5YX1lfW11VWFhPXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYVhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhISFhYWFhISFg4SFh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBSEZER01SSENRSkZISEhFRktKTVBFRklKS05MTElMTEhJR0RIS1FOTUxQTExKS0hJQ0RBRURIR0JBR0VEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1PWWFcYGBfYmNiXWFiV19fVFBPT09XUVxbW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUpLTkxMTE1LSkpHRUpOUVFOT09NTkxNSEtBREFDREZEQ0JFRkJNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xQU1JVWllXWVhYZFdPU1RQUE5NT1RSWlhYWl1cYGFkZWNnY2tscHNyenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFSEZHREtNXUxHR1hNSEhKSEdNTFFRSExLS0tOTVVOT0tLS0dHS1BTU05QT05PTk5HS0ZgRURfTEVmZEVNW0leW3JtT01VbVlMRFBgVWtXZ0pdWFVeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYmJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgYOEhIWFgYSFgYODf356e0xJRkdGSEVFS09TSUpGYFRISU9KSU9NUlFLTUxMT1JVUk9PSUtNR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXF0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZWWH9qdHV1X192X1hhW1tmW19gYWFhXWBiZ21wbGBwd3R4gYGCg4OCf31/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEdJTEVRVkxLTklLUlhXUU1PT01RVE5PUVBLS05HTVBTW1pTUVJPUFBQSkhaeF1UeGVoWlNVUnZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zcnt8b354boByX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpLR0pQT01NSk5WXllVTFFTTllaTVNTUk5LT0hRUlNZV1ZQVFBQUFFLSGd4bGN4cm1bS05WeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/b2hvWXZ2anV1cIFgcmZ9aWx4fG9eX19iYVtdY2RnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncXl7c3J2eX6Bc3V6bnx9eXdybk5KU3VOQ0JGUFBISktJS1BPT09NUFpgWldLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpMcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txbm1qcGFjZmNvd3hvbXBzeX5ucXBqe3p0c29tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xYVU1VWVVlWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9bcHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbGB2dWtpdXt7bX54a3xwXF5fYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ta21PR0tLSUpISFFQTE5PTEtSUlJPU1JXUlZUUFdbVlZUVFRhX1BOTUtUU1RRVVZOTkxNT1BKSFFOUFVMS0xTVFNTVFBWVVFRTlFRWFlSTlBVVFhYWFtaVVJTV1tXWFdaT1NVV1hYUl5ZV15WVFBZUldXV1dYXltncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xNTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09LTVZUUU5VU05PTUxRUEtKUlFLUU1LS1BSVVNRUlNTSUhMTk9RUlFRUVRWUlhXXFdTU1BSVFVWU1pRTlNSWFZUWVZUWlZUUlVUVFVXWFZdWV5gXVxaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLS09PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEpOV1NQTlVQTlFOTFNQTE9VU05RTk1OUVVRVVFSVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RQVFVYVVVaVVdaVlNSV1ZVV1tYWl9cVVheXF5dW11gYV5bYmJjZ2ZlZGJYX2FiXWBnZGZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQTE1MUFFMT1RPT1NRT1FbWlhXWFtZWFlWXGpkVlhZWldWU1NPSk5WVFBPVFBQUE5MUVFQUlhUUVFPTU9TVk9XUlRVVU9OTVFTVlVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUV1ZWVllUWFhWU1JZV1ZaXlldX15VXlxeYFxbX19fX1piYmRoZ2RkYlhhYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xYWltkcW1oZF9bWVZVV1FMTVZTTU5ST1FST0xQU1JVWlVTUFBNUVhXUldTU1NYTU9PUVRYVlVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpYV1xeWl5fYFVhXGFhXWBiX11gXWNgY2doZGZgWWNgYV9fZWRfYGNbWlxbXFlaWVhXXFlcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRST1VUU1BXXFxcWF5cXlZcXmpxd3mAY1xbVVVYUU1PVlNOUVFQUlRSS1FUVFlaV1VPUk9TWFdUU1VSUlpPUFNSVltWVldTVlpYXV5bW15WU05UVVZcXFZSVFZWWFlTVFlcVVNTXVhaXV5cYGBgVmFbY2JdYWNfXGJhYl9jZmlkZl5bZGBhYGFjZF9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1xUV1dRTlJaU1JRVFJUVVRLUlZWW1paU09TUVZWVlRPV1JTWlJUVFRYXVdYWFNYXFheXVlaXVRVTlZXV15bWFJVVVlZWVVXWVxVVFdeWV1dYF1iYl5ZX1tlYV9kZF5eY2NhXmVmaWRmXV1kYWBgYWJkYGJeWFpfW1xbWFhYV1dbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFtUVVZWVFRUXl5gXl5iXGBVXV5ia3l0bH1rWlVZVVFRU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVlZX1taVFVWWllaV1haXFZVWl5cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXFVWWVdXVVhfX2FhYGNdX1RdX2JlZXWBemhYWVlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSV1NXVlVTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWVRZWlphWVxWV1hbWltZWVpbWFZdX2BfY2JhZGRdYlxgZmFkZmReX2RiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRZVlNcVFZXWVZWXGBhYmNhY15fVltgZGFfenVvaFlcWlVXVFdbWllcWVhZYFdQVl5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1ldXlleVVNZV1lZXWJaXlZXW1xbXFtbWltZWV9fYGBkY2NkZWJkWWFmY2ZmZV5hYmBjXmJjaWRjZ19nXmFiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNPVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheW11bVldYWVxcXF9bWVtiVlRYXl1hY1xSVllQV1ZXV1dWU1VUWFxcXmBgXWBcV2FeW15cW15YVlhYW1tfYFxfWFlcXF1eXlxbXVhbYGFeYGVjZGVlZmJYY2VkaGdkXmNgYGVjXWVpZGVpX2ZdY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWlhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNZWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXlldXllYVVdbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZWNlZmVmYlpkZmZpZ2NfY15hZmRaaWljZmljZV5iYmNhYGBfXV1aWFxZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVddW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXW11fXWBfXVtgZF1cWFpiZWNhUlxaT1hYWltbWldaWWBdYGJiYGFjX1xiXV9dW15eWVlUWF1eX2BfYFxbXl5gYmNdXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGNnYFxpaWJoaWVkYGJhY2FfYF9dXVxZXFlYV1hZWFdcWlpXV1hPWFpdYWNmZnJrf0pZV1xaWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiY2JcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1cWltbY2BiYmNgYmRhYGNeYFxeXl5aWFZbX15dYWFgXltgYWJlY19dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBbZWdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxbW1ZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WDgoKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKCgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7e3p7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t8fHx8fHx8ent7e3t6enp7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKgkU+Pz8/Pzubw76/vr7BooqMjIyMjYl+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjI2DOjIzMzMzLqHSzMzMzM+qjZCQkJCSi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eXh4eHh3d3d3d3d3eHl5eXp5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx2dXV1dXV1foOCgoKCgoB8fH19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dXV5dnZ2ent4e3h3dnd6d3l5en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3x8fHx8fHx6eXl5eXl6enx7e3x8e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eH15e3t5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgYKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3e3l5e3h8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d7eXp7d3x5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6d3t5enx5fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4enl5enl5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mFg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhYWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEgoOFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgYGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbW1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoKBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXFwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dwcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJyc3NycnFwcnVwcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcnd0cXJycW6Jhm5wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHJwhZNycXFve55+bnBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXF3o5BwcXGVn31vcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcnOcqIFve6KefnBxcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXFwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycZSrm3CDo59+cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h3eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3Nyk7Gqi5WmnXtzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHh4eHypr6Oxra+ffHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx8fHx7j6uZobSkn6mIent6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2ZoZWjr5+co5p+f399fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgZmbiZiwoZ2dnYOAgYB/f39/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f4CAgYF/l6SdlKObmZGdiHt9fn6Afn5+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f3+Afoaor6aemZ2fpqmmj4WBf3+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KFho2aq6+gm6Odn56ipKqrpZ+Uh4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEg4aMn6upoJmZop2enp+dnqGgmpCGg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoKGj5KUlZecnJ6fnpmYk42IhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4SEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5GPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGAg4iQlZSQl52akYqGh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDgoOMm4eQlIqEgoOFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKCgYGIh42DgoOCgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAf3+JkYCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/gIyVgoKBgoSCgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAkZmGgoKChISDgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgZCMg4F/fn18fYycjoCCgYGCgoWUlIyBgoGCg4OCgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX17gZiMgIOBgYGAj5SMkIGCgYKCgoGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGVn4p+foB9h4t+hISDhIKDg4KOiYWMgoKDgoKCgoODg4KDg4OCgoKDg4OCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf359fYCChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMi4iFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhYWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYSFhoaGhYWFhoaHh4aGhYaFhYaHh4eIhoeHhoaGh4aHhoaHh4eGhoWEg4SFhYaFhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aHhYSDhIWGhoWFhYaGhoeHhYaHhoeGh4eHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjImBgIGCgoGBgYGAf4B/f357eoCGh4iKiomJiYiJiYmJiouKiIiIiYmLi4qKiIeHiIiJh4eIiIeIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgIWEgoKCgoKCgoB/fn19fX1+fnx7fIOHiYuLioqJiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiGhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJh4eGiIeHiYmDg4SDhYSEhYWHiIiGhYODgoOFh4aHhoaEgoKDhIKDhISCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoKChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOIiIaEg4KCg4SGhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoGBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjZCMiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhISFhYaHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4GDg4ODg4KCgH19f4CAgX99fn59fH19e3p6gZCEhIKBgYCBgIKCgX9+gYGBgoGDgYKBgoKCgYOEgH+AgIGCgoCAgICAgYGBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goODgoOCg4J+fX5/gICBgH59fX19fn18enl8g4KCgX9/f39+f4CAfn2Af36AgIF/gICBf3+AgYF+fX1/gIGAf36AgICAgICAgH+AgoCAgoGBg4GBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foCDg4KCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gICAf39/fn59f39+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af39/fn+AgX+Afn9/f4B/fn+Af4WSko+Oj4yLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gIB/f35/f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f3+AgH59gH9/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXh9gYCAgYGBgICAf3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fXt6enl5eXqBgoKChYOBgoOBgIKAgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoaEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl4eH2Dg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCAgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX+BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDg4ODgoODgoKCgoODgoKRkIuIiYeJh4aGhIaGhYSEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl5fIGBfoiWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYSDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CAgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6e3x/gYOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WFhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gHp5ent8eXl9fX+Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4WFhYWDg4OEgoGCg4KDg4KBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9fH5+fn9+fn19fXx/gYB9ho+BfX2Cfn9+gIJ8fIB/goCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMjI6OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3p6fIKAgX9/gX1/fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYODgIGBfoB+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn9+f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhYOAgIB9fn1+f36MhIGHfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX6Afn9+hJKNjYyPjYyKhoSFhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen5+fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8ent6fX+AgIODgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx+gIKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISDgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fH18fH18fX57fHt8fHx8fXx9fH18fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko+MiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx8fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgX9+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fX19fXx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiYyRkI6KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fn1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt6e3t5enp4eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/gICBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+gpGEhIOBf359fI2HfX1+fX18fn58fX18fX1+fn1+f3x9fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiPjouLh4WEhISCgYKCgoKBgYGBgoKCgYKCgYKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Afnx9fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY6LjIiFhYWEhIKCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOBgICBg4F/gIGEgX5+gH9+foB+fX5+gIF/gX9/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx7fHt7e3x7fHx9fXyKi4mIhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKDg4SDhYaDgoF/f4CDgYCAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICAgICAf358fX19fX5+foJ9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+fn+AfX6AfX19foB/f4GAgYGAgICBgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISFg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH+AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhISDgYB/gH+AgX59fX5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn59f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OEhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf3+Af4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4GDgoOAf3+BgYCCgYGBgICBgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhIKEhIWEhIOBg4KBg4F/gIF+f4B+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgIGBgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgIF/f4GCgYB/fn+Bfn+AgoKAgYOChISGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fXx+gICAf39/f3yAf3+BgIGAgH98gH9+f36Af31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgICAgICAfIB+gIB/gYCAf32Bf35/f39+fX1+gIGCgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDg4ODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgICAgIB8f3+Afn+BgH9/foF/fn9/fn19fH+AgICAfn9+fn99fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYl9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgYCAgYB+f35/f318fn2AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/foCAgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKAgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh6gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgYGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoGAgoGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+Af4CAf4B/gICAf359gH9+f3+Af4B/gIB/gIGBgICAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXx8fHh4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKDgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgYGAf4CAf4CHfn58e318e31/eHd2eXl6e318fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGBgYGAgH+BgYGBgIOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f317fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYSBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOCf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDgoOEgYSDgYOAgYOCgoKCgoGCgH+BgICCgYKBgYKCgYCBgYGCgoKDgH6Bg4F/gIGEhIGDf4KCgYOBgoKBg4ODhICChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoGCf4GAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7fYF+fHl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKAgoKDhIKCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn+DgYKEhIKEg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9f31/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX5+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEhIODgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fn1+fX1+fn9/gHx9gIGCgoODhYOEg4aEgYKIh4WEg4KEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4KBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+f35/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSFhISFhIWEhIOEg4GCgoODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeoR/f39+hISCg4KCgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYR+g4N9gX1+f31+goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fn9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WDhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39/en59fH99f39+fYCBg4OAgoOBgYSCgX+BgoB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX17fXt8fXx/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SDhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9eIWDhISDgoF+f357fHt+e3x8fX9/fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISGhIaGhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoeFhISFhYOEh4aDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFhoeFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4SHg4SBgoSFg4GAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9f318fHx+fXx9fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH57e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIh4iGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4SCf35+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhISHiIeHh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYWEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfX98fX1+fXt+fXx9eXp6eXt8fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SFhoaFhYaCg4OFgICBgICDgIOAfIGAfn6CgH2Af4J9gHx9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH9/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoWGhoOEg4aChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SChISAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1+f4J8fX9+fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFg4ODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH5+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMzMzLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NTU09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fY2djY2NjY2NjY2dnZ2djX19fX19fX19bW1tbW19rb2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtAPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi3qaenp6enp6enp6enp6axvr29vb29vb28vLy8vbSLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OjoIaEhISEhISEhISEhISClayqqqqqqqqqqampqaybVFNTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PEJAODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpaKJh4eHh4eHh4eHh4eHhZetq6urq6urq6uqqqqtnVlYWFdXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDw+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamnkI6Ojo6OjY2NjY2NjYucsa+vr6+vr6+vr6+vsaFjYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs7OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tDQ0NDQz8/Pz8/Pz8/O0NPS0tLS0tLS0tLS09PRzM3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7OztHUz8/Q1NLPz8/T0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1tbW1tbW1tbW1tfW1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztO7nc/RyJSn0tHHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK1lZu00ZqsnLDRmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/Rn6Cqr82TiJyexJKGnZzNz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw5Nj9CP0I6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0cWHmrHXvcmYmMW8yZeZxdDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Wp5mx1dKUlp/O0ZKZoc/Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P1aWZsdmwn8Ob2q2jv57V0dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NalmbLWzYqSnsfLiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NDVpZqz1s3bpZmz0NujmbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0Y/SEhHRUA8PD4+PD09PDc1Njk5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPQ1qaatM2Op5qgrZCnmJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQzs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HH0telm7S8o6WooK+noqmd0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09HUtYLE1Z2SjbrVmpKOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw8P0dFR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dHD1NPTucfV09O5yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT03NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS1NLS0tXU09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6Njk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxBQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0RFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Firzd29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tvc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv72+v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKinqKinqKipqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6efm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn5ybnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5KTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKenJ+hoJiSkY+Ul5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaSmp6alpaanpqWjoKChoZ+ZkpWkmpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKjoqOlpKWlpaSko6KhoZ2cmpapqp2bmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+foKChoqako6SkpKKhoZ6bmpmqfX6cmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKCxtaSgoqGgnpybmpqil1CDnJucmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaChp5Kxop+fnpyZmZqbqmJMh52dnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCgn6qBfa6ioJ6bmZqap4xOU4qfnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp6il1mJrZ6cmZucnatqVVWKnp2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZybnaJtY56gmZmcnaGaaWBYjKCcnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmZuic2l/opibnJyji2pfWIagnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJyZmJmZqXVwaouXnJ2dm3xoX1yHoZ2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZiZmKN7bGtvh5ycnpRwZVtfiqGen56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmfiYuSdH6coKOReGVVYJChn6Cfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmaoKacjWyIsaekeIqGY2GXnJuenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qalqWgiHhba6eWllt0gXx2lJKNkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkJKoj2tUUHKciotOXXR4gIiHgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg3+TqHo7Lzx4j3p5RzpTb3WBgIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5/nplPT1Q/e4RuZk47NVBwen6Fjo2Lho2UkYuQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCBgKR1U4F4UHyViXlSaHxSXHWEio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYB+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYt/iI2Mi4uHkY2fYY3WwF+mr6SmcHGKf1ZohouJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnqGdk5eboZqdm6KjkWW/0K2V27emwLFUXndpVYSQi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mqsoFzs6+d0cWimKytcWrFh1B7n6KknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipqmnqKyNfpOEisjOsLOqknRGrrFbcJ2pp6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxkY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKaanaSlo6KloYyDb5ixo56ch4F0Y3qMdW2UpKKgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmVkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioKOnoaaupqacqJ2Ba1GMkoB+gnZ0b3BzdH6AkKOhoZ+enaCjmpaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq2xsq6sq6mDcF9Ib3VucXZraWVoZmdxdn6KlqGkpZ+gopmVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFVcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKehnpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevt7Wztrq9u6+UamNXSFxrZmpxZ2NjZVpaYWJrdXp+iJSdo6acnaCalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K3vsXN0MfAtaaTd15dU0dcdGtqcWVgY2laWF5ZXmVucHF0eIWYpq6npZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmtxaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW80Nzg2cq7r6CReWNcXlNBX2xqcXdnYl5nXlVcXFtbXmVkYmNuibLJwrmhp6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PEwM7X2M66o498b11WWFhMPV5iaHRybWJhZltXV1hYVlhYXXGSsMXLuri3qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrrEwMfP0semhV1PS09TTD1WV2hiYHFoYV9YWldYVlReh7HEvbO0tqq1sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Ef2pmaGFrbGdudXJydXFnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/w8PGxsG2ncezjFxTVlBDVlNcYWZwZVhbWl5YWWeQr7+6tqapqamqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhveWppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbDxMS5tL+5u8queV1QTld8dJCXllVUWFdZYYGwt6mrsrSsrqWlo6ekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt3bmtpaHZaZnJ4c3lmZl5kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLFvre9w8OyfVZMcHeXpZ1OUVNbdKC1t7KtrLi1s6ypo6GtqaynrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXmpvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMe/xMfDx8iwgGBYkaaSSExtl7PCvL65vLq8urysraapu7q5t7+ytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aWpqdG55bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxcXFwsXFzdDHk4uoi0VtucXJzcbFwcTHwby+tLGwsMK+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGtqd2xpZnVvdGNdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwcHAwcXGyc6xjF5pxNDHy8/Ftr+/wMC6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVmY2tkYmttbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzBwb/AyZM/lNLMxcjRwa+9vbi5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFlYmFjY2RqY2djW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8yc7Bu7/AvLvEvbrAxL+9vLi7wMWrSJXMxMDAyb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnamVqXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdSNur+7w7W6x7e2ubu8uLm1usPJqUyPyb+/u8G+uca9wr+8xbi2t7S4tra7u7i2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVmcGplbGhYWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/EeKrLvce3ubittrS3ubO1srrFyZxNhMq/v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucWdxa3RmYm5gXFRIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrnWCvMjPwsC4rrW1u723ubG+w8eRVH/Nw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGpudW94Y2hiXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0plydK7R0czKxLW6v8TIvr60vsC/f2F2y8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGxsbl9jX2FiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysGGc3SmzMzLzcrGwsPLzsG8uLy6sHhxabvIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWNbX2BfVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7q9rDvra+wL6+uqacqrK2w8CleXd6nMTGy8jBw8DAycrBv7u5sqKKf3WuyMXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3h0aHBeXF9dWlJGRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vEt22tzr22ucC8qn1uaG5tcoGWmHR4fZm9v8bAucC8vsXEvb24sa6gn4yOncrCw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXV7cW9qXGBgWlNQQUZJR0tARUNJPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbJ1gbO9trXBpIZpWl5gTVJbW290eIOiuLjCurO7t7u9v7q7u66ioqaXn4C+xMO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d29xYV9mXVtVSj0/P0dHPUdDQzk6NTs5OT48PDk6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmmhHiKoK+1nGpmZ1ZZYElJTVBUbXiIp7C3vrmytbK8uby2ub61laW1pa12rcnEwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/GqYh8doyhmF9TQ1hVR2FqVk9FSmGOoq2vtrq1tLKsvLm4tbjBvYueuauudabLwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZzbmNeZ1ldXVNPTkE+SkJASkpANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7SQgnmIkG5OSz9kWUJOd4CUaU1BXYOwtbO1srSvrLu6uLa5v8Z2h7CknGapv7i1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211amxdXGtVXlxQTkhER01CRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHxYRkFPh1lKSlh3jYFiQFOjubO0srCxrbC5uLa7t7u8kaOzraR0rLCpq62ro6ihnZ2el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWh1dG5lVWFkV11ST01JQElSRE5DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmYmZRoTT9SeHFQSUlLaJyAWkVSrruxrLOvrqyttraytLWuqaefmpudn6aonqCoqZ+hp5ablpeOnZSPkJaNl5ukqKCgoqKhpaWco6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoYh4g3x2f3pjeG1uXVFpVVBPR1BNTUNQUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3CqqW9aERSnYJRV0lKYEpVjWFkY4GutaqytK6qq6+wsrOtpZ2Rl5OPl6CfoqCco6SfnqiUm5aWjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fH91dn1ta3tkaFZSZE5KSEdPU05LTkg8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCqxr/KoFBBc512T21KS2NmdHNgXGBykLGvrrO1qqasq6KbmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanq6KfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpquqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3l8ZXl6YGJTVWFISUpLU1RKU1FNOT9BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMbGjFdTSmWkWmV9b3JbUWtjW2VhXmuPtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qXmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2mCbGZbU1paTVFLT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWlxdnVwY3Z2WFdjYGNoWllXZ62urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2orKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7a4s7itsrSkoJ2loKyhoaKhoJqYlpWfm5uYpaGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCgH14dmp4dV1tW1JhSVJVSEZVV0pDTUc9S0k4RTw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCjgG+CcGBjWExbUlpMS1BYUkhNTUeYrKqppJ+fmZKSlJiYlpaWjIiLjpWdnJ2dnpeemaafoKilsaqnrqOrrrawtbKxrra4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm4vK+zsLXCvLe+s7O1oqyiqamyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21pbVxYXENXTkpHTUhDRk49Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOenYpiV15lYFdNUUc9Pj9DQz8+QlF4qa2pqqWfnp+io52enZqdm5STlZSenZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyb+wubm9ucK+uLS7xsS9w7y3s6qzraqztK+zrqqvo52sqLaxraOwpqGjsLGusKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJrbHVycWhXXFFGVUhESlBJP0VCNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFFGRDtDPkY8Pzk2Tn6qs6ejo6KgnqWrpp6XnJSRmp6ZlYyKhoiGeG2IoKSiq6y0vLbDvb6zu8HDwsXAv8LGxcXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8rJw8HHv7q0uru1u7ewtrKqurKuvLi/u7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGplWltGTE1FRFRNRUNFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9c2phV05FPklZfG9hQj1cjq6soJmbm56emZeXl5KNj5eXlI+NkIyCg4J3cnFtcI+mra60ucW7zcfLvsHMzc3MyMjQzMzMx8rFxszQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrBxsbGysjPwMnRzcfGyMbCvMTBvr+/tr6zrb/Aw8PHxMfEr7+5sri9xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXRzZWJncm9mXlpaRE9NREVQSURDQTU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ2VamZdVElEQD9KhZ6kmYOgsq2jnpyfmpiXlJKUlpGQj4yHhISIhoOAgYGAeXFyb2x5pLa6ub7LwdPR08jNztHT0dLQ0NHRzc7P0MXN1NXY0dfNxsfJzMPFys/K09fR19LV1tPUyMzGzM3J083O083GycrKwsbMx8nJxr/Ds7PIxcvLy8/Hyr++v73Bx8XMzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZFZXUkRORkBJUUM+Qj06MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2JUTEpEQz9DUq/RvbKvppycnKCkoZ2alJOVlIl9eHFrZWJocnBye4WKgHVwbnFzcIWzw77F0dDX1tXS1s3U1tbU09HS09TSz9LD0NPW2NXV0svKztHLxs3RytLV1tnW2NPW2M3Sys/RzM/RzNPQwMnIysTMzMzPz8XHyLbAy8DSzczQxsrJwMTDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYGVyY11SXElLR0FFSUo+O0E4PjU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFaSUBBREFGUXaxr6aalJefnJqgoJ6bnJqViXdpY2FfX19fXl9fXWFsdXNwcG9scXF1ksTIx9TW19fW09bQ1dTZ1NTOz9XU1NHRzNHN09fW09XQz9LT0cnT0cjQ2NfY0djS19nU1szPz8nN0svO0cDGw8jGz87R0dLIzM3Ay83G1M/Mz8jEy8fHyMzL1NTR1c/SzNPCucWxpai1rqebqKulnbKosLOtrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYmNpbV9WUWBKSkNFQ1JNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6upqqooaOrZkM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cWVjYl9fYV9eYWBeYWBfYGVtcHBua29ydneczMHT1dPY2NbZ0dLS18/TzsvSzdXU0crPzNPW0tHWzc/V1dHF0dTK0NTV1s7T0djX19fLyM7Eyc/MyszAysDJys7Oz8vQzs7Mz8/IzNDQy87Lw8rHyc3LzNLTztTS0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhWFxaSkZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksXtIRkI7V42hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBhYF5fX15cYm1yb29zdHV2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3N1MvO0s3L19bQzNHUy8vQ0tPKztHV0tXVysDKwcbNwsjKw8zExsjLy8/Kzs3QztTMxsnPzcnHy8XHwsbKzM3Q0sfQz87OzNDFx8G4ub3Dw73DubOyvrG7w8S1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWhgYHFoWVhoVk1HTElQUUI7Qz47Njg6ODo7NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMrV1tna29jMzM/I1tXEwrWvtKigrZd4bG9wd4+ajYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNhYGBgYGFhX19dW11ncnJwcnNwbXJ5pcfTz8vQ0NPUycTIycXGv8PFz87HxcfNytHIy87NxtHS0M7M1MrHys7Px8fP0svQz8W6xL/Gyr3DyMnOxcPHwMfNyMTMyszPyMTE0MnGwsbJxb/Bx8zLzM/Cy8zJx8vQxcXHu8fDycnCz8G9vL+wwcnHubyqsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG91ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7utpLZ+Z4KFoqqTjY2Wj4WDg4OBfYSEfnNfW15dXmBeYGNkY19dXV5fYGBfW1pcYGxycW5va2xvb3250cjJys/LzcS6v8O6u7q5vcjGwsPAw8jKyMjKyMHFzMbIys3JxMHKycHBy9DFy8i/ucG8xse+wMbPy8TAw7vJx8m8ycfFysG+wsvGxcS+xr29wcPFzMXGvMDJw8XH0sTByb/KysbIxtHDw8bDrsTLx8TKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdWZqW2FubVpcWFJETEdCR0VMREZTQDU0MzM1QD0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srC2bF55fJ+RipKWhnqAhYV/dXh1cnBfWltdYGBiY2RkZWRgXFxeXV5eYFtZWlxib3Jua2lrcG9zj8e9ycXLwMbBsLa5sbGzsrHCvLy8urjAwcHEvr25vb+5xMrFxsK9xsC3u8PJv8HJu7a7usbDv7zCzsPGvr61wb3Du73HvMO6tL3GxMLDt8C2tr6/u8zDvba6yLu/vsvDwcbDxsnHycbQxsLMx7LHycPOzMHFw7+9srewsqeoqLmwpa2wqq2slHp2eGtlaGBob2RWXllKRkpGSEtBRkJGSUA5OjY1ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1dfNys7FycXHwbrFvayupmBjdYGSi4iLhHh/hoZ/fYN7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmdvcvBw7rAuK2wsKapraumuLS2tLOzs7u2vbG3sLSusrvCvMHEvL+6tLK6vsC4yLi0vLbBwr24vcfBxLu1r7K1ur+0xbi7tay5vb7AvbG7trC3urPGvLevu7+1t7XFvL/DxsDExcbHy8XAxsa7x8vAzsnHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PTo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDLzcjJyMrJysTQzdLPzcXHwcXBv7q4ybersJlbZ2+JjoaIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfXlxbXltdXlpbW11fbHBuaWZqbW5yfKTGv7i4tK+qq6eeoammnqqssq2qrKm0rbaxs6mup6yzu7q2w7m6ubCrtLm7tMK5r8Cxvry7trzHucO3raqosLLAtri9sLGosbO1u7ysrramrrauu7KxqrmwrruuvLi8wMC+usO/xsPFwLzGwsjLuMXHxb/HxMO6xMbCu8bJzMuzucK9u7OJdHZ3a2lgYmxpWVdXW0FMS01KRUFDQEZBOjo6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTPx83Bwsa/xMTDw8rCycq/wLzBurO1tcOuqrCSW2l+koiOj3t4fYmFenuEgHduXl1cXF1fYF9fZGNiY2RiYF9eWltaWl1aWllaXGVub2hmZ2lrbnKBrbqwta2lo6ammZ+kn5mbpKqupKiiq6qsqrCjpp+qrbW2sby4r7evqK64tLS8uLO8r7i5tbK8wbLBr6Wpo6uxsrOovaqrqKutrrW0pqitoaSvqbKmqKiupai3rLGzt7q6u7K8vr6+xL+1wcHHyLe+wMW3xcPAu7/Ewr7EyMzKv7/EwMCph3N0c2ppXGFvZFdWWFBIWlJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz83Dx7m5y8LLvrvJtr3DvrrKt8HDwbS2vLaxr7W8ramrkmNtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZGZlaGtvcoWppauknZugo5Oco5qXkKCiqaOin6Wmp6atoJ2bpKassq+3t6ewrKiqtKu0urG2tq62ubKwurqxt6SgpKCmsaisqbqqpaenqKezraCop5+cpKasn5+npKChsa2trLK1s7Sxtb22u8HAsru+w8GxubnCs8G9wLW4vL2+vMLHxMPEv8DEoIR4cWxiZmBrb2BUWV9ITmhPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wLq9taCelJ2hprq2q7Ozu7PEz8nLwsa4t8fAzL+4yre7xbizxbizv8CstbyyrKavtK2ho5JpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXV9kY2NmZ2dna21uh52onpSUmZ+UmaGXlYudoKGmnJ+fpKWip56bopufq7CtsbWkqaqqrKyktLitt7Css7avs7WvsKqfnp+korKlpqq5raKmpqCorauZoKCemZ2fpZqao5ycnrCprKiqrK2tsLO5r7i5urC2vLu6q7OzubO9tLexsba1v7W9wL3Dwru7vZeEe3NsX2VeZGRYVFdeSVddS1BHSkpHQTw/P0E7PzwwNTUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67uMHBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uce4t7+3ssK0sbu7rLm6saKfqaunmJ6QbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2FhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXWJkZGZmZmhpa3KMp5uRkpKZlZmflJWPm6GhqJ6bnaWmoqWboKGama+ura+yoaWjrquoorWwsrKsqa+zp7qzpraho5+co6Gto6Kqtqujo6aepqajlpmdl5mbnaCal52cnZytoayoo6SmrauztKq1sLKrs7m0r6uvsrKzuLOuqa2usrewura6vcC4s7GUhnl1Zl9mX1tZVlNaVUtbUUxKRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+znaWjmKWxwrW2va20uMHMyMa/xbbBwMfOtsDDvbO5ubK/trG5u62ytK+fmqOqoJSaj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqCakZGOkpSVnZWXk5afnaCclqGhqKSfn6mdm5urpq+wq5yjpLipoKCvqLerp6etsKS3sKS3oKOcmZmqpqGbrbmwo6GknKKgn5OUoZSWlpuZmJaXnJWfqZ6qpKKdo6qqsa2otKyqp62zsKWrrrOxsLCvr6eoqLKusbSwvLS6uK6jlYJ6dmVfYVdZWFNSVEtNXkxQTEdITEtFPUA+PUI8Ojc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0usKxvre9rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJqhqZWRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjY2JjYmJjZmmAk4+Sio+RkpiWm5OUmp+bnpWfn6empKeooJ2fpqCrr6agoqO3qKGhoqmzoqWopbCmsa6stZ6hnZaVqaGilK2xsZ+jo56emJuTi6GUkZOYmJOXmJiXnqebqKGimqSlpaukpbCnpaOrrK2mqa6vr6uoqqqzpqarr7Sxrry2sbCvoJJ7eHNlYlxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sba9sLuxt6yepaast7u8wcW6sbm1xMnJwMPGxce2xsSzwb/Fq7e3vba9uru1sqytqJmZn6OLinSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVJUUlVgYV9gYV9gYGJkaX+Pj4eOi5GPkZqSk5WjmaCWnKCloa2mpaWkpKOdqqulmp+lsaqhoZ6lqp6oop+urKqpra2ioqKVl6KanJCrqbCcn6Kfn5eYk4mekY2Sk5aQmJiTnKGjnKShopWgoqSlm6OrpaKjq6SrraWusqqmpaamtKaqqK2ztbS5urCrrJ6Mc3FwYFtXVlZSRlBPSFpcT1JKVEtTTEVHSkQ4Ozs+PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByczItcm8sb3Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5RWV1cXV1eXl9fYmRtioyBjoONjYyXkZKRnJqhnJugqKmrqKynqaakmaWvpJWZpa+poJyZm6Cerpqcq7Sgpqafo6ShlJOblpaSqaqtm52goaGblJCMmY6MkYySjZaVkJ2hoKOdnKOVm6GjoZiiqKOiqKugq7Ckrrimo6SjrK2pqKuvtLeyvbWzq6+YhXV0aVtYWVJVUkVYTFFbWE1VT1FMUVJJTkpCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zLxsW4wc7Px7PEure7wsixrbi/t7y+u7O2pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FZWlpaXVxcXV9gZHyJf4h8iY2HkIuVj5aYoZ+aoKuqpq+sqLClqZqfraGVlqSop52YkI+anq+XmaeqmaCdlKWhn5KRkpGTlairpZqZmZ6elo6Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6Wlp6mooLCwprG9qKCjrLSqrqewtLC5tcCxrrGrkH5ydGNWVFZOUkpHVlBSUkxMWE5KTE9SR01LQUNGREQ+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqaepsrCktsa0ubqzysW5usHL0Mqytri8vcDDsbCxt660tLuztKOjnZ2Yl5WEgHZrZ2xucW5yam9rZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRSTk5OUldYWllZWFxcXWFqfXd8coWLhI6HlYiTkpeamJ6om5+rpqasnqiZoKack4+fo5qXl4aFkpukkJWjnZaWloiim5uTjI6KkJqlp5yVlZebkZKHlI6LgYyNgJCLkpKSoZqgopaUmJiVoqaajZmkp6mnoaC0sqizuKGco7esqa2ks7Kmtbu1q6yxo4p6c25eTlFRTU9ETk5OUEtGTk5KSk5OUUlNSkFITEhIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS3saWnpKqloKmmpLOqorLDtbWys8bGtrrDyszGs6y5vbS4wK+uqbCepq67r62gmpuelZWIfIRuX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFpdYW5vc22BhX+Ffo+CjYmTkJKdoY6anKOipJillqKclY2ImZqMc42Dfo6XloaSmpCUjo57mY+djIKJgIqYoKOekJOYloWOg5R+fnSKjnqQiJOQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmKa4pqWwobGunLG8qqmvqpmDeHRkVk1SUFBNQ1NOTFBNQlBRSElOU01ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpaWmpqayp6a0wbivtLDJxLe5wc7GvrOsusGsrcStqKKmkp2mt62joJCWl5KQfnh/ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlRTU1RVVVdZW11paW9qfIJ6ck1XcY6BloWMnJeLk5GfmJ2VlJaUj5aKgJSJXztWb3yMlIqAjJKMkIaGc4uFl4F5gXuGlJ2Vg5WOkZCDhn2TeHFwho19iYGQjpCXmpmTi5CKnIifmIiIlp6aoaCXp66praionpats6KmrpmsrJiotKOpraOTf3RuYFtOU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqapoKapp6OqsKintMG5sLWwx8K3s73Pv7mvrrXCp6rEqqKdmIOUnLGjmpiHlJCLh35zdl1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtJRkhOUVFNT1JUVlhaYGtsZnh/ck9BP3+VkZB8iJSMhIqNm46WlYmSiIaVh3mJf2BKUW54i5KEfoSNi4WAf21/f5R3dXZ4hI2acFGNiIqGfH54lHZod4aIfoqIlYuOkZOXjISKiJSEm42DhJKblp6dlKSiqKmlpJ6bsKqhpKSSpqqWoqqcoaaoiXZuZ15cSFFRU01JVU1TSUxLT0lIRkpOTE1US1FRT0dKRD03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hrqGnqKWnqK+sqra8tri3s8G7tqi5yLi2qKi1tqqyvKeelY1/iZSplpWLf46Dgn54cW9YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERDSU5PaFlOUVNUVlpugnF0fGhnW1OPiZSIc36GgXyFjJOCkpmLj3uGj4B2gHhzb3VxdI6OgXp+iquFenpodnuOcHJteIGLjZJ4e4B7gHdzc5J4Z3WFhISFfJWKiIqNi4B/hIuNgJSEfICPmJSclpGfnamen6GdoKmlnp2Yjaekk6Cflp6fpIFzaWJdXUpXUFJHS1hST0pNTFJKSkpMUEhMUUxSVE1GSUI8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK7uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6Rf3aGd3x2b29qWUtISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3dldYuVmI2OfGd4gHZ4f4mQfYSYkoBxh498d3tva36tfXSQi396hpKAfH90ZnZ8hmxvaHN8io2HgG15cX1xbXaPcWhxgX6OcESLhYKDhX93d3qMhn2Me3V9jpKPmIuSmpujlpmdmp2eoZyWjYulm46dl46WmJB4b25nY1tYWFVRSlNVVE9QTlBWS05LT09KUk9ITlBMRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKawrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlp2lqaShmJmPhZJ5iY+Li3ZxfG11cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBxa4emqsB+dHhie3due3mIkHl8i4ZvbYySeXR5amqAgnGWkYyBfZV/SZKZbmh3foJtamRseYWQkoZrcmx8bnJ8hmltcH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6LipODlpeYmpCTlpaZl52WjIOJn5KLko2GkJeAb2pvb29ZVlhUUlFZT1JUVFJYVU1OSE1LTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuYm5+kra+iraqota+urLS/q7zDv6WimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JWWlFZXF+nh2GZaHJ5ZH5vbH96i4l2goiGdGyaknR0fGpqnY5NeYWTiYSOZjF2h3Nsfn6DdGZldX+EhIWAZmlsdWtwgHxocXF8bpONj3t0fn1xcW51bYJ/d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIh4qGgJCIeGxrcGhlWFJaWFlZW01QVVZZWE5JSEVKSkhHQ0BHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakJmWo6itnrGep7qvq7KwwrG7w8ealo+UmYuOhXqEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHFnX1RGSUM+PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVUxBSVFJYq+yn3F6d2t8bHGCgYWBeoSGhnlyoJV0eIBzdZSHNXGdqJ2OoaGEooV2cId8h3xzi62NiYFoZ2JqbnJtcIN1aW9YdXCOm5F2bX97fW1ybnCAe3N2bmJ1g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2Oe3NxcW1gW11eXFpZYV9STltaWFdLSEpGSUc/Q0FCRz9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiVkZ2kp56vlaW0qa6wrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt0eHhtd253ZGpeSVBHPT83NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01RU0RLhnV/fHt1fmx2iIh8fYSDf4x+daKaen6GgYSZhJqcYYaqn52Kg5COeneJfomIjnOKl4+Ee11kcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0enhrbmlddoZ9h3yHho5/ipKXg42FjIZ9cYR/hH12d3t8iXhxdHVmZ2BbW15TXGdeV1BUWFtVR0pKRUtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIp/k4yRnJ2fppGgqqCxqK/AsrvFupaOkZSHe4Z2a3+MkYJ9ioOOjHiDgHOghIp8fIF/cIF9emh2bFJYTEBFMjExMzY2Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9RTEtUXVlSS2iDiHuJeXtxfI+MenyJh36Xh3ahmoiHj5KUpY2tqUiGrq+ui4GAk4qCi4KEkqmHgJiYipx0bXyBhod+jmhnaHl/boWHgoVxhIZIbIB3cnl2aG1rX3Z9goh/h4SLeZScm4mLiJF/enWKdnx4bW93foB1dXNtXF5eW2NjWGdmXFRQUFdZUERMS0ZPSUNGQ0NAQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5GOlpeSlqCerKCmuK+zvbOXjZKLmIt9dHB+iZJ+fYyDkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s/Pzg0Ll2WcHOjVUZJS01NUFdgWHBZXF5pjJOGlICEgYWRkn6FiJGAmpWCoaGYlZuapq2Tmbuxp7vHw6iLjKGlj5SJgZF8cYOen5Gdf3eFhYuQh5BpaHCEgXSMh4SKcoaCd4d/e3aEfG52dWZ/lI6HiIiHiIegqqKWiY6Xf3qBiHp5cGdreH97f3VsZV5bW15qXmJnYFpPTE5XUlFJUEpETkdDSkRDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneDen+Mf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShpKVf4qAkpuOg4CBjIqCiY2Df4qAbXBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlNSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISUxMS05WYGN/ZmdtdJuajpmSkoqNjpmIko+di6CgkqOqpaSsk6m2oqjBwq7Hr3i6lJp8jaGemYSThYKOoZ+UmZGFioWPmZGWbHB1ioyCloyNjnePhHFthYGKlpGDhYhxiKCVhpKJjY+WpLSpm4yUooOHkoN9f2tqanyBgoN1Y15kYFtnbF1sbF5XS0hOUlFNTExGSVBDRE1GQkNFRkI9OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYaQh4WJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOT1JUUFBRU1FOUElFRD47PDpERj8+PDc1Mjw/UjVISEhMTE1OUl5uinxzgX2fnJunpaGZoZeilJyeqJ6oq5+orKmqtperv6u2yMi3yNDPvpugcGmrqZ+Ek5KFnKCam5mmkpGIlaKbm3h6fpSYk6KTl5eBlJ57d5WSq7KJjZeffJSdm42SlZijoaa1r5yQmKiHlo+NgIhsc3N9gX1zaWBeYmBiaGRgZ2ZcUkVKS1BPSUlMRkZNQ0hMRkdDQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbXxhd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjox8ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wLy8vLi4wMDE1PkFBTVFSVFFSU1RSTlNMRUVAPD49RkdAQUA4NjYyPDk7RkhHSUpOT1FZbYWPd5SKoqaptLy4pK2srKaotKuwtrKxrbuxs76cs8OrusnLt8O/uKWisLOsraqji5aYhaamoKOXgaaZjaKrqKWIhZSkoaCroaSoj5yxi5Wjpre6m6CisJKinaKdkKOhq6+ssrWilKSqiJmIkomVeXp+hoBpYmldZmNeZGReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhiV2lvWHqFdoGThYiCm4OSkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4SBi4WGiJKGgoSJh4iHh3FuYUBFNjQ8My8xMTAtLCstMS4tND9DQU1VUVJTVVVWVU5bUEdIRTw+PkZIQ0VBNzs8NUM7PUZLSUdIUU9QV4GSn4Sto7KpscDGwqqzxbars7+zuL62v7TBtru6o7jFqLbJx7W+ubSoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqmutruyuqywtaKxq7G1u7e1rrSgp6ijp5qpr6yyube4ppu2qYykjpGTn4Z4gYV3WmNlV2djYmRgYWdgW1RKRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWVFiY1d5dXCBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeEgY5/gYmPh4CGiIWKh5F6eG5dVkBFTjw2OjU2QUI3NjQvLzZDSEJRXFBRVVdVXFZQX1VJS0tBPz5HS0ZGRDs+QDdENz9CSkpFRlZTUF6PpK2jsbTCtbfBy8i1u8S9s7PAtrjBtb+vt3Sxs6W6xKSwxrmxs7G0qKS1tqqxoKKXm6KSpbCupq2rp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwbe5t763ure5rKywpbCprb2wvLrCwauYuaeUrY6Xl6qIfoN+bFhkYllrZmpmV1xjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUVZTWVVadmpvfo6EgI2EbnpzeIdiuaGZo4mUlJaSlJONj5aSh4Z7hoGNlYqAhIGKenyLh4Z9ioKBi4SVfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNSUllYWmdZVGBgTFNQRUE/SUpIRUVBQEQ8RTZCPkhHSkxTWlRdk664tLq4yL+5vcnMu7vAu7e1u7q2vbS6scZgdbKksZqeq72ppairqqSisrWgq6ielZafmZ+upaempZ+kk6KnsbSnsrK9tsG+08nJ08bDxczCysPAvr2+u7y3tK+4t7bDucW9wsevnrmpoauOpKi1iIGBc2BjY19YY2BqZ1JYYFZSVUlFRU5LQD5HRD1LQT1CQD1GPjtIQTc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjISPc2xycnOH1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaKfoN/g3h7i4OHfIt5gYqCl350fXprZnB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFVZVUpEQktLSEZISEhIQkk6RD9IS1RUVlxaW5K5wLi9tsW/urjJyrq2ubW3ubK3tbOutraYZHWonK1wXqKsnJigopuknqqllJ+gkJOOlpmXp56moJ6amYOknqylqrCtuLC9udTRz9bQyszSzM/Oysa/vsLKvcG8wcDExMXKvsjOs6S7sLSvmqu4u5h/e21eYV1aX2JaZGNQW2BTUEtDQUVGRTxART5BSEFARD06RT49Sj8zNzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vlpGQlG5sb3R1h7OroKGfi5mcmYyMlZGbkoWKin6Ih4yQi4l8gYNze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWdqaWhgZmlpbFptc5atpLyIhmdbb2hdWlpUSEtOT0pLUEtTUUhMQUpGSk9fXmJnaWGXt8ewuLK6vbWxxMa1r7iwsLursrGnq7erjLannZqnmk6anYyOn5aRppillYqTk4iQiY+RkZ2boZealZaHnpqnm6yvqLCotLTU1dXW08zQ09XN08/NxcLJ0L7JycrJ0cfMzcLQ0bevw7zEuaW1usKig3BlXl5fWWFYWmZaUV1YT1BCQkhFQkg7QUM+QUc/P0E3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZUmVWc5CQmIJocW95eYOgqZ6ml4yam5eLjZWRmo59iYuEjYqKi5CHfISCcH+HgYZ7h3KDkouOfXF4dWxxeH5xem54c2xpgXBtY2ptcHhpd3x+y7/B36dtY3huY1thYEpQUlVOWV5QXVxOUE5UUVVUXG5tdoJxlq24rLSmsLWqrLy/sKu0pqS4pquuoKu0o46xrpqXmIyRk5GEjpuBjaaRnImDi4SKiYSLhJSVl5eTm5CcmJman56rrKWooqytz9LV0s7M0tTU0NTRzsjD1NHHzdLT09fM0dHF0tbFwM7Hx8KovrfOnntwZ19kXlhhU15aUFFUUU9IPkBGQUJFPEBBPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OWnWGhYp3bHdvfX5/oZ6eoYyMmJOTi4ySj5aEeYWPkI2KiYeRhn6Be3J+f4GHeoR1hZOQiH9vdnJrc317dntzgXhyaoBzcmlvcXp5cXq+y5p+jLKEdnKEdmhha11DWlpbVmVjWWRqVFhcXWBkXmN3en6LgZipo6Shn6CopaqwuKqls6OhraKjraGnsZ+IppqTkpGJkY6IgZOJapSijJmEgYZ+kYODk5eti5WNlJqOhpORnpensKGhoaWkqcjNz8jCzNHU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy4x0cGViYVlVWlRcUEtHSUpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJyUnZSFi5WJj4qIjYeOf3iDk5iKjIiIi4h+gnhze32Dh3d/eoaRlX+DbndwbXV/dnh9dIV8eWyHdnRufXaEdHh7nbWMO0GLxaV+jHxpZVdJQ2ZjZWNnamNud1teZmhrbmlugIOIkIucnaCdkJeYnqOjpbGjo7KfoaWdoKigo7GchZ6SkpKQio6LhoOPhH6cm4yNgoSFepR/gqmVo4yRipeSi36Yi5qSq7OYm5yonKe9w8a5tsbO0tDS0MvSy8nUztDV2tfX2NTZ2M3Y287J2drR1r7Ly7V6eHBmXltTV1JbVkZHSklFRT06NzpAQEI6RkQ/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXOFjXyXkJ2Lf4eSg4mGhYmBh3x4hZaWiI6Dh4WGeoR5cXp7g4Z1eoWOjZx5i3B8b296f3F7gXGDh4Bujnp0d318gnV+e4aHr3NYqcK2jZGCcG5iPV5ocnBxcG54doFlaG9ydXhxeouGjpORm5WflYeMk5ugmp6pnqCsm6GamZ+lnp+rmYuajJCRjYR9iIeDhYuOoJmTiIOHfmyZeoSZhoiTjI2UjIZ8nImUj66qlJaYn5mnr7a9qa2+x8vJyczLz8nE0srU19nX2NfV29fT2dvV0Nva0dbI1MuWe31qalxbUVRUX0hDRklIPkE+PTc6PT87PUc9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEP0NHUmpebWRiZmt2gIhxkY+agHqAjX6CgoGDfoN7fISYjYeLfoWGgHaCeW57e4aBdHqSno2gdo51gnR1gX1zgIRvgZCCb5KEdXyBhXp2hnuIt8Wkwcm4gZaaj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJWPl5GEiY+WmZeWpZyXn5aek5KXop2Zq5WQkImMkYKMhYiIgYaQkZ6bmYiFjIGFl3qIiZ+XkIiNiouCfaGKkYu8oJiTl5mdqaamrp+otr/AwLnHyc3Oxc3K0dbV1dnV19vU19na29fb2trYztvGiH17aWtnYlVYVlZOTERNQjs9PTw4Ojw+OD1ANj0/QD0/Pjw5ODY3REE2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWGVhXVtodHp5bImMknd2eop7foB+f3yEen2CkYmEhXqEh3p1fXRtfH2GfnR/kp6RnoORfIZ+eI9+eIqKboKagHSZhn6BiYV8fZB6j6mOj8OhvYuco5x9iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYmLkJKUjpyZkpSQlo2MlZ+clKCUkY2Nj4t+kI6Oi4SJkpaanp+JjJSRnZGCi3+lmYiEjYKFhIClh4qLuJidkZWWoqihnp6dpK+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuXt7em1rZ1liXFRQT0lDTEE8PD45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PURSU1JYXlVYZm1tbWmBjopxc3mKe3p/fH97h3p8e4uGgn10g4V5cnpzbYB+hH53hZyhmp2UkoCMiH+Yh4CckW6HqIV6oIt8kY2DiISbfZqQioyjoqCQpK6fipCLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlYyHiIySk4uUlJOOi4+Kh5abnI+UlpCKkpOGgIuIko2KipyWmaKihpOdlqCKiYiNnJCDiI5/g4eFpIaMkLOYnZKVl6Ghn5mSnJ2osrmspr3Bx83Ixs/N0MzP19HR1a7W1dja2Nra19XZ2aByf3dpaF9eWVRYWUNBSEM/Pj46NDk6Ozc6OzszOzs/PT43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieW1hfpGDb213i3h5f3qBfIV7e3aFhH9zcISBenV2dnSEg4V+f5KmpJ+lopaKnZCUl4uKqJdzirGNhKeShJmThZmMopWfmJOImp6jkqmvn5GUkI2OiJaMbo23hZrEyLGboaWbnJiWkLKRZKTNyJaPhoeIj5KNjZKTiYWKiYWWmZqPj5SThpSXg3+Pi5mIjZCqlpejo4iZn5aaiI6GlpeKhI6NgX+Ij6SJjZOompeTl5mhmZ+Zk52bo7O0pqO8wb7HxcXJyMnCy9PNzdSp0tHW1tbY2tTT2s6EdYJrZmBgX1BLVlxCQkZDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0SlE8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCZINHdYKOfXxtfYh4en56gYGCfnZ2gIJ7bG6Kfnl8d3h8hIeLfoujs6ikq7KhlqegpaSWla+ig5C4lZKzmY2hoIykm6+ipJ2YkKeXqZmtr6SXlJWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKdmIWIiI6VjIuTj4eBhoeIkpiUjIqTk4aUmIaDkZCcdJGZspWWpKGInJqTj4qQipeaiYqWjYZ9jJieipCPnJqZk5mYn5SgnZWfm6GxrqOkt76zxcfEvcPDv8bOysnSp8/N09HQ1tjSz9i8dXx4X2JXYlhSSUtPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdNW1xZSWhhO0iEinp7bYWGeXyEeICFgH1weHx9fG9zjHp9gnt4hYuJhoOSqLytqbK9r6Wus7Opo6KwrIqatZ2iuKWVraSXqa23pqSjn5mpmKqkr7CpmpmblJWRmKCXmbu7rcmhaba3qrCVmJ6iq5KXvaNeqbKCiYqMlIeRfI6OfYOGjY+UlIiHkpaLj5WNi4yXmZKdmrSWlauei5yUko2QkouYmoqSnY+LiZWfoY2VjZeZnZOcmJ6VoqCUnJ2lr6ihpbO4q8LIxLa7vbzFyMjC0KHGyc3NxNfW0MrTo3N9a19cVWFTUUdEPjxDQUI4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGZIYWBicElAi4l/gHKGh3yBiXWCioJ+bX19fH5wd4d3jYGHe42PjIaMmqvDwLC9xruztMG8tKyrs7eMqLKtrb2rm7qkqK25t6qmpqGio6Oqr7Kxqp2co5ibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIacrb2vgouLipCDjoORjnqBh5CNjpyIiI+XjYqUl5SQmpedp5qwmpGrnY6aj5KOlZCPlZeOkaCQiJSbo6yVlo+UnJ6UoJ6bmKChlJqep6ekoqSws6bBxsOwsLu2xcTDv82nx8PHw7zW0MzEyop2dWRfXGJdT0tDTEBFRj5BP0E8OjQ+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxoRl9pZ1pdXJOMjIh7h4uGg4x1hpCKgW5+e4F+cX6BepV6kpSUmJGTlai0x8nAwszBw7rHvLqvq7m7l7K2urPArqXApKuwvLyqrquiop6nrK+1sKqboKqcopyWn7C0p4uiurq1wburqJyypKSolISOqcTDpIKLjoeIhIaVlIx5g4yRj5KhjIyUkY+Il6CXkpmVl6agrpyMqpyOlo+SkZWVjpCVkY+hk4aXn6Cyn5SblKChmaSfmqCcoJSYnqakpqekr62lv8TCrqm3tcnDvrbOssS+w7uz0cnHwbV3e29fWl5sVE5JRE1LS0lAQT1CRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZeJi4iSj4aJeYaTkIFyf3uNfneHgYKQeo2hlqiampi7vsnIysLSycrCzbzBs627v6e6v768xLiswamss7u9qrCqpKWjrK60rba1oKCun6WimKO0vKmbqLzBo7W2r6uSr6yqq5aGmqmnpZGCjJOklYqAdYmSeYWNkZCeoJKOlIuPjJSjmZablJSjnqmfkaWajI+PkJWWiH2PlZKSo5qVoKKctaaQn5elpKOln56mmJ6Vl5ylo6ioorKtqLvAxK+ls7fMwLmuw7O7vsG4rcLCwr+ZcHtjW1heXE1NTkpHRERIQkJBQ0s6NERIOjs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+bElfWGFaZGRXnpCdjZeOnpKJin+In5KEeIV/lX5/kIiKkICVoJmup6OYw77JxMjG0s3Ozcu8wrewur20vMu7w8G2t7yts8C5vK6vqKGpqLatrqmyt5qerKKnoZ2rt7eppa++xLG9ubOnqbOzra6WlaWtqKCRjpKxxaeVjX2RlX2HkZiPqpmYk5OOk5WTpZ6TnZmToaKhnJifmIuMj4+eiFqQlpeSlqWZZZijnrOllqKWq62rp5yfp5eYlpiVoaSop5+2rKm6vMO1prS1y8G4qrass7u4rqi4ury3hG5wXFpWV1BHS1NNSz9BSERESEZGODVGTTs+Nz5BSi4zMjAyNUI1NVBXTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVjw+QEJGQnNGaUlSZWNMRqWUnJWhl6iWjJCDh6WSiIGHgpuEg5WQkZSOmqKfr76uoce+xsXIx87OztLKvru2sbq7vL/PtcS9t7m3srK2s7ezrKadq6u4q6mor7CXo66kp6SltMGwq6yzvsK5wLmzp7i0t7OvlaStsK6ki5OVoY1zwZl9lpmEjpaZi7GVmpqVkpKZmaajlaCblpqpnJuhoJmKjI+VnGBKlpyalJqll1SWsJ+vnJ+llK+vraaboaaUk5mZjp2gp6KZtKmqs728u6uwssfAuKasq62ysaOhsrK0pXNxZ15cUFJNRVFRUFE7SEtJRkdBQz05S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFg8OkJDQD1SRVdTc2JWRkirl5mfoaiumJCXh4qnlo6IkoWfiIScl4+eoJujpbXJtKnGvMPEyMvJyMzOx766s665ucDBzbXIu8G5tbqxr6+ytKejm6q0tKuppq2smaSupaWorLrAqKu2tr/BwL+4srLDsLe9q6OutK25pYibl6abdr6fhJicjpKYmouulqGcm5eUmp+hqZ6ooJqbqpmhp56XkI2QnYNtdZOimpWcop+QrrKjq5Wpqpirr6WloKWqk5KZnImVnKKelrGmqau6t72zsq6+ubago6eppaacnKypqY1maGJgU0xNR0hOSlVMPU1ETUlKQUNEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXPDo9Li5TYU1WSH5lXkhGrJWcoZ+7rpiUnouTqpuRkZOJqo2GoZ6Mo6yUpKS2x720wbvCw8jJxcLOyMK9ubKvubTAwsq2xrHBvLW7q6mtrLCjo5mqtLqmqqesqp2or6ekq6u+vKitvLS4vsa8trW4wLC9v7OptbarvqSPopeRoZ+7nomaoJmXnZ2Ptp6pnKWjm5yhmqels6KbnqWcqKqdmJWPlJuLlomMpKGUnKKeobWvpaaTsauaq62fn6WkqpGWlaCEkJ6fnJappKGhtLS6ta2otbKynpyjppqXlZmqoZ54Y19hX0xJR0hNUUlNREZGQVFLSUFER0FWUkRIPEFHUTE7Qjc6QkY3OV1ZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6ew6ybl6SXmaiblZqaj6qWlaimla2smaKqtsXBvL+4wcPByMS/zca7vrmysLi0v8PItb+wvLe6t6ekq6usoaGbq6rEoqWprKaeq6+soqqov7imrL2wt7fGtrS5uL6wvsG2tLK0r72jlqOVkpuTrZ+QoaGkoqOekL6kqZ2prJ2doJumn72imKOeoqmroJ2WjZWek56HjoSNk56koZ21rKaclrKmmbCpoJurn6GNmpWfhI6hmpuSpaSamKuxtbGqpaqtrJyYoKGSjpCVqJ+UaWVbYl5QSkhLT0xIRUNJQD1PSEA7R0lIW1JPSz1ITlU0QkU4PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjV02im6SbnsWroZ+rnZytn5KinpaloKaprJe2saOqs7bFwr3AtsDCvMnCv8rItri1tbG0tLfCxre+sbi1uragp62qq52en6WkwaWgqa6gpKmtr6KmqL21pbG7t7a1w7Kzt7q+scPAuLiutLS0o5yklJGToKyfmKGdqKiqoprCramdrK2bm56YpqC9oZ2kmKurq6agmY2Zn5KeiI5Yf5aepqGguKqmlJi2o56yoqGcsJigj5qUnoKPoJeWjqKjlZClrrOrqaKipaWVlZyZi4+Rk6SfiWNnXGVhTUpLS09GRUFGSz49SUE5OUpKTl1RUUk9TFZcOEZJPURNSThIY1xLQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2FTNlNaa1dzSEU2PXVlXExPnqChmJ7Dp6Wis6CcsqeTqqOfo5+sqaydu7GprLWxyMPBw7PCxL7HxL3Eyr2wsLausbWvwMW1urGwuratmqmwqambnqahqMKtm6yxnKqirrCppKe9t6a2ur2vt8Ots7PCv7HGs7q3q7S2rqqippWVlKKroZ+fmaerr6+vu7Kmn6mpmZmXk6KkuKGho5Kur6ukpZ6SoZ6UnY6QjZSdmqOfp7Snp42YtJyjr5ufnK+RoJSYlJqAkqKWj46goJOLpqywpaeinaCekpKalIWLko2cn4BkaF1oZktKTEtTQkNASUc7O0Y+ODlOTVVeUlNKPk9eXT1IUEJNTEk4TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHddXj9bVV9mckA4PEiWd2VBNJ+kn5ufwqijqbGgo7SplbKrpqKksqytqbuyrbC0tMa/xMS1v8S+ysW2wMnCtau1qbG4rMDFtLiurba6pZmrsquqmKGnl627tZuosJutn660sqequrOnubO4srjAqriywr20xae+rq23tamnrKGWlpGlpKGhl5ekrretsrW2n56opJmUlZOjoLejpKWVrrGypamkoZ6amZqVmKifnpiin6+yoqeNl6+YpauYm5+mkp2PlZiahpaglYyQnZ6Ui6mpqqKnoZmdloyPmZCBhpaJlZ96ZWpdbGtPUU5OVD1CQU5DOzpJPzc3UU5dX1JWUUFXYFxCSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcWpWQ1dGjHlmQzukpJyhpb+mqK6uoKi1qp24r6ukqrS3sbC4t7C3uLfFvcPHvbzEwsfBucHGwbqqtqWtu63Bw7e4qq2yvKOVrbCtspemqJGquaqhp7Cdq5+vtLOqqre1rLurs7K5t6y4sMG6vb+mw6qwtq6pqqumnZiYqqGhoJGXoLCus6uwuZmbqZ+ZlpKXpqC3qaWioq+xs6uxp6ugnKCfm56lnaCXnaS0sJufkJSmmqCpm5akoJeZi5aZlJaXnZSJkpuZlI6pqaego5yYm5OHj5mLfoyXho+abGptYm5uWFFRWlRBQ0VVQDs7SEA3OlhQZF5QV1dEWV5eTkxST19MSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lhRihAOG19aFxWOol7Y0M9qJ+coam8oaqvqqKxt6iltLKroa21va+zuLy7vbe2wcO/ycS5xcPAwLnFvsG4r7aoq7eyvL+/tKmvsrifl6ytqK6YqKmOp7ufpa2zn6uisbCzrKq2s7W8ra+xtaywtbG/usW2q7yvsbesrKmisaWepKifo5aPmJ+yqrOpqrOZnaebmpSNoKaktK6noaysrbGnsquxqaObnqiknpSgmZuptqmXmpKSn5meoZ+SraCamYeWmYydmp2Ui4+Wl5qXpqajoJ6WlpeUgZCVhXuPk4OMl2dtc2hwc19HWWZWRENOWERaOUhCNT5dUWhcTlpdR1teXU9NUlhkSktDXWNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFWMTUxPWBWXzgpQzNZVVxnSzWMemZMQKSan6SstqOsqKSurbWprrO4pqawuMa2sLe/wsK1tLrFvszFucPBusC6xLjBubK1rKq6t7u6vrWrrrG3mZioq6urnK2rj6u+nquvsaOqn7Gtsq6utbG4tqqtrrGnta+0urzJsqq1tLG0r66moLOfmqisoKSVlZqZsaKtoKWvlqGkmZmSjaKlprKpoaaxq6q1pK6wtK6jmZ2tp5uXnZmZrLiil5OQj5icoZmYlK2gnpWClJmOnp2alpGKlJOemqWjo6GZl5OSlnuMkYV7jYuDi5Nsb3lvdXxhRmBqWklIWls9e0pHRTZBYlVpW01cYUpbXFpSU1NiYUxLRWBhYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuK0EvSkdQW0czY1hUS0Walp+vqLGprKWjrq61qbezt6OstLfKurS7u8C/tbO3xMDMx7zEvbe/wMC4wL2yva6ourm3t8K3rK6yuZWXp66sp6SyqpSvu6SssrKmp6Kxs7CysbSwt7KprquyprivtbPExbaptbWrsK2pp6K2n5+msaCklJuYlLCep5ufqY2pop2blZelpaS2p6Kws6unsaetr7WspJmhrKicnJ2blKq5nJWOjouYnKKYkZioo6CYhZOXkZ6cmJeXiJaPl5uonKShkpaSkJZ3hJGGfIaChIyNbnF4dnx/XUtlbFxKT2RcP2J7R0k4R2dXZltMXmJNWFlXVVhUaV1QT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3JrTEREkZmkraSsraumo7Cysqq3sLWfq7W6ybiuwbzDt7OxtcLDz8TAwr60vcHAu7+8tMSoq7qxtre/va+stLSdoaexraWmsaWesrWsqrKxq6iotLmstLK1rLOsqquorKm5rbGwx7+4pLmvqa2tpqessKWko66jqZydm5qvmaKioqOQrJ+joJ+hqaaluKSrs7SkqquorK62rqKdo6iqnKCZmpKktJmPiY2HkaOglo6Vn6KWlYaQlJSem5mWlYeXkpWZp5ygoI2Tko6ReH6OhH19fYeKinJ0c39+flxSZG5eTlpnXUZElltHOk5tWGJaTWFiTlZWVldUWWheUVJMZFpbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NlOzYqSGRISis6ST8zQ0lTLD6Paz9ISZCaqaqhqa+kp6OztLC0tbGwoKutvcy6rsG8x7G0rrTCw9HExb/Bsr7Dwry/uL3FqK23rbS5vMCwrLKuoaOnrqqnpbGjq7Gqrqqwrq6sq7K6p7exsqmyqaqlpaOtuqyqsMK5tKy5qKmoramnsKWppKKuqqiinpyirJWlnZeemKudoaeooaymoqyst7CxoKmin6qtsKudnqanqZqjl5iQoKiYhoOOioufoJCMjpeekpGHiJGVoZ2WmJaGlpOTl6WcnZ2MkpCNin9/iIR9d4CHhYd1dHKJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU9jXE1VVlVXUVxiX1RPT2hYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLklnREY4PEIwNUVLWDFAlF1ATUaVlqynoamxnKior7WsuLWuqaSrq73Ju7C+uMOvsK2yxMTOzsO/v7TBxMS6wbTJxKyvuK6zucC/tK6urKanqbGppqiyprStqrCtrbGvsqyzuqS4s6ysraern6OesLerqq25tqS1taOpqKysqqygqKansbGjpqWhoauWqqGUm6ClnqOiqqOsop6msbesrKKlopqpqq2pnaGlpKSZn5mVj5idk4GCkImFnaCNi4+Nm5CSjIWOmaSbkpGbi5ORkZSjmpuai4+Li3yHgYKCe3WBhIF+dXiLo4d4a15gbmdXZodkTkBnkkxEYnpXYlhSZVVNVlVVVE9cXWJWS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZCSUhElpCvpKKpr5ipqK21qrawqqSrqam8wcC4ubS8taayr8TKy9G/wbu4wMDCusG6wsSusbaytLvBvrOyr62srKi3qqatsKu4rqewsK6xq7WqtbantberrKSpqpyjnrOzqKiks7Sfta2hqairqKumn6urqLm2qaqpqaGpn62bkamhnaCjoqaiqp2bprSup6WpoqOXpaamqZyio6OfmZifkY6PmI1+h4yHhZ6eiIWLi4+Qko2Fh5ajmo6NmpGSkI6Sn5eZlo2LhH90h4F/fnh1g4B6eH6AiJ2PcHJnZ3F4XGF0iGlPXZhWSG15VWRWUmJPTFZUVVFPWFtiVkhQalRWVEdQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JGO5WNr6ClqayZqqStrrK0r6qlr6mpu767wbGwua2itq/Jx8jQwL+9urzDvbvDwcC/r7Kzsra9vMGxsrOrs6mltaikrLOyuK+irbSxr7G5qriuqq+3q6qeqaugo6G1ramhnq+yobWqnqinqqOqoaGsrai9r6uurKGnp5+rmY+vopiioKimnqebmKmwqKKfrKGhkqGioqaYmailmJiYnY+Kh5SIfI2GhIWkloaDgoyHkI+RhYaUoZaJkZ2Qk5CNkZyUl4+KhoZ4dIF/fXR4eoF7dHR7aoKIo3ZpXmVsgXVniIt8UldwXkt4c1RkU1FfTU1TWmdOTVdZZVlHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytIUDtZQzSPjrGfpKWqo6WjrKa0s7CppLCnqri+wbywqLmqp66wycbI0MK9wL65v7+9ybzCubGwtbK6vLnAs7S8rbmso7Wmp6yxtriypqe6ta20vK+7pa2ttaqtnKmvpJ+lrKqnnJ2qsqS0qZqqp6qkqZ2iqKipvauzsK2dqaOgrpyasqKWpJukpJ+kmpmnqqWemqmhm5GboKSdmJaoqZGZmZKQi4KPhX2Pgn+Ino+HgH6MiJKQkIWBlJuUhpOijJORi5GakpWHiX6Acnp4fnxod3x7dXFyfmmGeoSIZGBoY3KFe21neV1eVkNYe21UYVBSWUtLTXB0XUlaW2daRVZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpKwmZ+eqaSjoaqktrKxpKmxp625wb22sKS5rKiosMPJyMzBt72/tbjBusi2xLa0s7Wyvbm6vbauuba/raKzpqqrrrW3tKmcuruosb+yuqCutLWorJ6usaOcpaepo52cpK+mr6Gfq6mnoamco6igrbunrrGuoaqio62enqymmJ+boaKbn5qZoqqimpqjo5WWk56hlpuVpayLnpGPkYyCin9/j4B6mpSMiX1/jIeQj4yKhpOYkYeUo4mRkYeQmZCTgYh8eWx9dnl4Ynt6cnBxc3hqgnVqg2djaGFuc45tYmlwYG9CXXlrVl5OUVFLSU1TWVZNXF5tV0VYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl09I5GXrJifl6ajoZ+no7evraKvsKmrucK6s62gua+rp7O6x8rIv7fBvq+0vrfEtsOysLqxssC2u763qrm4vaqktKaoqq+tuLComLi8o62+tLOhrre0pqansLOgnqSlp6GkmZ6sqKieoKqvp6Cml6Kon7C4n6Oxr6Groa2km6amqZqam56ilZybmZ2pppabnqiQl5KYnZOZlqGpkJqJjY+HfYd+go18e6GMjYh5hI2Fio2NhYmTmo6JlZ+IkJWCjJaNkX2Ee3NwfHFzdGB5eGpvcHFwan9zZHpsaGVkYmaHgGBbcmpxTU6AaVhaTVFMS0hQUlFITVxfb1RFWVpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsn56hpKG3q7Cjs7SpqbrFtrKuoLitrqywtcXHwLa/wrmwtL23v7u+sKy+sLO/sr3Cuaq7urinqLWop6uvq7OvpZi7tqSrurWunrC4rqmlp6+ynKGkoKSkoZabr6ahn6Oor6GgopOjpKG3sKGmsKufq6Ovl5uqpaifmJqdo5Oam5mcpamZm5uklJSXlZyOk5eiqKGQiYqPhnqDfYOKeY6Xio2HeoKIhImNj4WPk5iMjpaZio6WfoWXjI96gHpwcXZub3RfeHdlbWxsamqEb2ZyaWtmaF5kdIFgW2t2aVpKf15cWE9PS0hIUlVHMzldXmxRRVlVWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJkVywylKGhl5SbqpykoaKgt6quoLu4pay9xbOwrqO1sKysrrTDw7yzv7q3sbO5uLq4u6+uwLO0ubC/wLitvbq1paKyqaepsqqtsZ+Zv7Wkp7W1qJ2yvKinpamvrJmjp5ykpZSYobGlmZ+jqKmcop+SpJ+juKikp62mnaWhqJKfqKKhoZmbnJ+RmpuWn6Gpm5qYoJSQk5aZjZOTo6ekkImJjoZ5hHqEhXydjYmKh3qBhIeJiZKFlpOSi5CVk4yNlHuCl46Ld357bHRxbGxzYXd1aWlqZ2dvhmhoaWNmaWlgamNqaFxme2NgU3RUXFtTTEpHSU9TQCEqaF5qTURXVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp2ipJCNpKaanZ6do7Ssp6q6t6esxMG2sKyjtq6nrq63v7+8ssG3sK6ytra4trauqr2zrrKxvb+3rry7saSftqqlpbOoqq2dnMCqp6WvsqmstbueqKmrsaWYnqmdpqSRmaatopiepKmhm6Gclp+dp7Wmr6quoaGdnaGUoKafoaCam5mbkpick6Wcq6GXlpyUkoyVl4uPmJqon5GIiYqIeIV2gYKBnYeKgol9gIWIh4aQhJaUkI6QkZCRjJJ7g5WOhnN9fWZ4b2tqa2Z1c2tjZ2RkdoFjZWZmZmpqY2tzWl9aXW1kYU5pWFpgVkpHSEtNU1g+OV9saUhDVVRdW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao6CPi6yhmJeglqSzsaKyvbahsca8urGxpLasqq6puby7uq3Asq6urrausrizqay5sa+us7a6trC4vaymnrWqoJ+vo6munKK/oLGjrrCut621nq2ura2imp2mqaWflZqnpZ+ZpaKonZqfm5ScnqyvpbqnrqKhmpqdmZ6kmqSdl56Xm5OYn5KolamnmpOampGLlZmNlJSaqKaOjYqJjnuBdIGBipiFh3yJiYWFioyKkoSUm5OSj5CRlo6Qf4CMjoJwgH5meW1oa2lmcXJrXGhjY3SBYmZnam5sZ2pqaG5dbGx0cGFUY2lkZVpJRkxNT1lRUFZhZYFVQVZTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kaGbjY6wnpqToZmpsa+fub+1oLTCu726saa2r6itpbe4t7etu66sqqu2qrO4raaztbKuqbC2trGztbqmqZ+1qJ2dqKGorJqnvZiso66vtbWsrJ+xra+popucoquonJScpqSdmqqipJaan5yQm6Sqqqm7n6ekoJiZmZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJeZgJaKoZB4hpSMg21pfnaDcWyGi4Z9hYyHcF5jYWeEmIVri4+UknR3i4R+g49/Z4aAZ3VoZVdcaHNuTlBqY2dzhWhfZWZubWpdYGGKj4SEZk5LRDlHVGdeSkdQUFVVTEhSYW90ZkZbUVVQRkhFQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4PUc2MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoujmYWVsJubkqCbqq2qo73Fr6m4wri9vK2ntrClq6O3s7KzsbmtqaastKavtaKpuLa2qKestrKutK2zoamfs6qeoaObpaaYq7mUpaWvs7etrqWpraqspaGenKCnppuXoKWlm5unp52Tn5+YkJ6nqaO1r6Oiop2Wl5eXo4igjpKZhqCHk5ygf6V/paqekpGakYiEcniNjoWIoXaIjGmXiGZ9cnigb4iHhH6OfX+hoKCZgHyHnnSHjnWbimyHgYNsaGVjemxxYVOFbWJsaZhxWGpxcIhZXmlbbGxbiHFuenKFZ4aEWl5HTj9HX01FUlZWUVFSV1VnXk1XSVJSUEZHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiKppaDnKucmZidn6qqp6q/w6+xur23wL6qpbewqaylsrSur7O3qqmlsK2ltLOcrbW2taanqLOwrbKnrp2qoLKon6KimaGhmq2zk6OkpbW8pqynq6qsqKWhoJifpqOZmaWjpJicpKmWlKOck5OjpKaht6OkoKOYlZKXk5yIr5CXlImpi5ahm4WxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZH/AnL95hIR5kYR8kJCRynGXvJzFenK1pruQe4BslrGrsHhoa1ixrm5labySvG5nem9yj9h+U2tjtrJ/gXKVdJqhqpBXT1diUFZORlVbWFFQUo1cV1xQQV1EUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjKaSgKeqn5ecnaWssqixwr2ytb+1t77BqqezrKypp66zqa+2tKenpbSlp7ivnLOytqulpKexrq6wpqqdp6Swo6GfnZaanpytq5Oeop+zuqKqqaGtrqWhnZqaoaefl5unoJ+YnqenkZynmpSdoaahobCin5+jlpaSl5KZha9raoqNqn5mg5WGrWRwnJ2UmaWUca6hpH54u31roY92sV9qtFulgGWckWBmgntmf2p4a6lkvnJnpox1sWp8sXh0kpNjbW2nbluEoEVoZoeWRXWcYH5ofKSngllfi6tpgJV4eWqnN0qvXFhTbGRbS05YX1xXVjtOiVBXVy9JVFNKREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKsqKWdo6Sqsbestb2/sLbEsre6waapsKuuqKmwrqOwuq+jpK2yo6i4qJ6zs7CjpaCqra+sr6ann6OisJuimpaVlpqaq6WVm6Ges7Ohq5yira2gnZqXoKGonJido5+cmaGmpI+dopmXoZ+qnqamn5qfoZWVkZaQmoW1m7V4hamZtZl2hrObt36TlpaolH5rgaZ7goaIkpSSd6tna7Fbq3qNhpR0iXKPhoB/iJCXeIKCi5iLg6CPhLB2d59xa2tsfItOpFhIYmKZfmNopmB5c3ZTkodeUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCP7J5WFhBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5WIs6amoK+pp7Ksqru2wrC7wq24tr+qrK2traatsamhrryqoKe0rKOrtaWmsrOnpKKdp6qyqLCnpZ6fn66Wn5iUlZWXnaygmZmkqLSuoamPqaiqm52VmKCkp5qenKKfm6CjpKOVm56XmZ2iqJulmZycoqCWk5GTk52D1ZOZuXCwwX7FhnzWlJu7fJqVpI+NnI2ke46Ho4KlgnqseY+dVq96iH6farlbuneHhH2mgpN8mHqpeI2dj3uxbo6EdJG8hW+UUK+nxYpRoHpjYKlic3OIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhObk5cUk9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6O0RIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzElm6KUmbKoqKW0qqW0qaS8t8KwucCxtbS6s7WnsbCisLKmn622qJqnua2jr7Ggs7SwoaSen6epsKi0qKSbnZ2qlpiXlZeVlqCpnJmWp62wqKKfj6yiqJadlpuhpaGYoaGhoZqhoqabnqGelJmbpp+bp5Wbm5+gmJCRlJGdiLJuaLVxq4dujqZytHNytnual6OLj52No3+RoaV+sHaDkdLSdlyue4V/pG+bqqZrh4V9rX2XmY57sHKSnY54s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZ0h2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa2BsaFBVSEk5PVZSWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGdkqWwraOqvK2mtKantru8srq/t7azubmypbSzobGxop+rsKSXprmtpLGwnLS4qqCmnaGppLGorKmkmZuZqJ6Vk5eYkpKhpp+WkqWqsKahlZOtn6WSk6CbpKaflZqlpqGaop+tmaCenZCVm6GdnKWUnZWZop6VmJWRm4Wse3eodqONiIapb62KgqeDmJigiZKaiqJ/k5mJroV/grNccrNSrn2CgqR/cth+eIZ+j52GmZl2r4aJkZyHd7RhmmWagoKUbJJasFhLmnWYeWZgrV52d4domIhrXa93lZ6PeGw1eciusl9CVG9eZ2BFUG1fcG1WVk4uZWRpU1hRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk6OTmfnpSgubCWtMKtqLOoqbK6t7O4vrm3sbS7taS4sp60rJ+eqKyflKe1q6ixsauttKSbqaCfqKG1pqapopmdlKShk5KbmJGUoqSako+mra+moJWZqZ+ijpGhmqikoJWZpaidnKSerJyhnaCNk56anaCYmZuWl6Ggk5eQpp6GqX19pXihjo2CqnCti4GnhpafoImXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTZgHeIdKiBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpOAkX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcW0x0XWJnTVthX3JzX0tWNkqblFhHRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84op6amr+rmLTCrqutqaW0sLextb65ubKwtrqou7SfsKSepKennpOqsKmvqbWsqq+hmKGgpqSkuaKjq6CWm5Chn5STnpmTl56fj4yLqLCvpp2Wm6imn4ySo5eoqqaUlqmnnp6go62joZ6ijZShmJ+fkp6XnJWdoZWWjqucj65tcrRzqYt1iqdztHhzs4CRpKOSnI2JpIeQd7hvjHuLomprtlqhhWWXl2mgoqdulHK0dJOYf7JqhZKIrWt1s2GdZqJvh5Nql1ytX02hfIeRUnOjbHl/fm+Yh3Fcr1Y8nHdmVG9uLlynT2NTa2VibVpjXWFwe2NUWlE+Pm1vM0NCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKabm527oZuywK6tq6ynt6m4r7XAtLuvrre2q8C1qKmgm6WkoZyRqqmntaOyp66qoJecp6Ckq7mdo62blpmOpKKVjJ2gm5icnpGSlKq2sKeYlJysqZeMk6WZpayikZaqsqOfnqarsJmho5CZopagm5acl6GSnKmclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJeKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGO1gYyHqX2VgaypcXt/dLyIp6BpnWGmjq+ifox0h6p9vm9zvHSyg3V4gYtumohxbo2kdL1ed31aYXm8a1pWXGp5XmphZWdibXhvWVtZREFAc0BDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnmp6ivKGXssOwrKqrq7GnuK+2xLC5sK25rq3Asaujop6joZubkKmjqrKktaatpZ6WmqqZpqy5naOtmJSgkKWfkoycop2YnZqRlZKuubKslZejp6eUkJaknKSsnpCgqKufm5+oo7Ofo6WOp6GUopqcl5Wjl4+voJKUqZ6EkJi2f4+RjLeVeIKTmrV3bWtuc295kIWPinSewbu9mnuBsahwgHORuYN8hoaMh418ioeNl3yku7m9nHV6tKN0dpd2dLB1mZ5mhmqNtXRycXe2jF5/en2JaIN5bnlii6xwdYV/WFunakVlWlRmYGNeY1FoZ3FtdUJOUE1EO1pNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlYnPjs8p56gor+llrTDtKyrqKyrqbqusMWutLKttqa0uKypoaGlnqCdmZOrpK2qprWnp5+blqCjnaykvqahqpaTnJChmpGPoaehk5yXk5eUsbW3rZidpKSiipKSpZulqpuWqKWlnJqhqKWnpKmhkq2elqOel5eXnZ6Pr6iUm6ahjWp9aZumeIdyfZmOdHlkh3u9vsC6b5ODcpWHYXNqWl6biWFjiI6Va2CAlWNtnXdilWuAmpWUZV5gY3Caimhyi32FlWdqfnJ0eH1+Ylt3dIFoUFxug318i2tYbHqCckpKb4ZwTnRMRVddZ2FMWlhnY19PW251aXJSUERFTjtIST1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPltPJz8yPqmgqKLBopu1urWjrKWup6e1sazIq6+yqrSivbGxpqCiqJyim5mZrKavpKS1qaWbl5Whm6atqL6nqKWUk5uVn5mSl6SoqJCdkZCYnK+yv6ybp56nooiTkamaqKOamqygo5qbo6eso6Cro5qxm5SnoJaUnZ+dl7Cll6GnmZuQnJyio5iloZmbmZmZj5WBZ219cXeSl5SShYu1qo2GmJWOioyYloeUlYqEk5SRiY6SlJiTmJaaoKGanJSgnY2CeqWGbGp8kHyAdYqKgXGCeHl2doqAfIpqc4F1g3Vld313a296bWBjXXBoTVhaZmpgV1pwem5tZlRPRlM5T1pNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzobOiwKGksrK3oKqmsqelsLSqyKqssKS0pcCns6CdpKSco5WVoKqnrKOjtqufmZaWn5etqqXBnqujlZGbl52XkpOhnp2hp5OSmainssSvmqudqp+Ql5annaqbnJ+tmaGbnaKkr6eipaifrpiXp5yZmqCenZyvoJyhppWXkpeTn6CVop2XoI6Wk4qKjY6XrpB8lpuDkoKLqqmFgJmXiYOPnoh6hJCHhpqSiIaKlY+bl42RmJ2jlpqTkZ2Nf45mobOvhYqEdnuSin12eXpvZnmQgYCJa3WBeYhyaXN/e3aDhoJrdWR5ZmBqZWNkZmtZbHtwaWpcU0xQRF5URkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0W0c1PCxAtKC6r7+tq66ysqCrprGtoqyzr8Svqquisq28o7Obn6aioZyZl6ilqaakpbK0npWUnZmZsKWuvqCsopCRnZmZlJGUoZyXqJyEn6qrorPIs5+qpKqWlpeapp2omp6jq5Sen56gqa+qpqSsoq6bn6CgmKSenJ+cr6OYnqeSl5ackaOYl6ecmpdlgpJ8ZX6NmpBjeY5taWt7kqSqamSal31nhoplZWloe46hj2xojJeRo3draouZo56Zc2xueoONh3pYZV6Ggl5ti4mBdlxoc3d3koCHgm53gnh/c215hHR2iIiOg3xqh1lebHVkXnOJaWt8cWtjXlJOWElkWEFKND5HNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMllDOz8uPaWfury6r6y0saqlqK2tsKatrbC8sKmmo62usJ6slqCjnaKZmaaqnK2jpaipsq2elaOPoq+ltrmlraOOjpqhmZOSmp+ZmaSVe6Wtoqi0xLiloqevnp2UnqKeo5uiqamSnqGeoKqwq6ykq6Cqm6efp6CrlaGbpbCkl5uqlaCcmpGjlp2pl519vYOIcrRyhJ2GrWh4ucS4cZOio3qlmZhzq4J8y8DAu3GMooiDn32WmImdwL2Cl52djZ3CwXyCe5KNmsPAfWulsm6MgW/Ken+bd5GDjoF2eYGAeXF6f4dwd4WMk3lueJRjZl95ZGBlgmNedGhsZGNYTFdJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLiNGWzNQWS9WQUI7LziWo7nDtbCwwKmolKOvqbCuraaztK+ppaWmsKufq5iaop+cmqqnop2soqWopKS0pJ2ikqatq7ezp66ikZGZnKWSkJ+gmJufnIemrKSrrcDAsaCpr6mXkZ6doZmho6qkk6Chnp6tr6qtp6Skp6GmpZ2tqJGkmqitqZqcqZuroJWVpJWgopacfs6UeHqkgXmVlptfro9ejqeBoqB8p5abc6uDgK9eY42qe6eHhaB1l5OIs2OCq4ahjY2zaoSudH2XiLdhg61Zo81tkHV72nt/mXB+iJJ2fmV7h3Z2a3yIbn2FkJF/bYOQYXJscGhgYHlkXHFoamRnYFJUU1ddS09DNUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGjqqits6umsqysqqKqp6+poKebmaSXnKKvn6CeqKejpaGfsKyanZWnrqywqqisn5SSm5+kko+epJedp6OerqWrsKi/x7OoqbGulpKdm6KXn6mqn5Wgn52drbCorKqcqKikoquSrLKWpaKqqp2jpqShr5+RmKaYn5mTk5GXoHGFjJd1haiGcbF9nnKsfqGegaWPnneqgn2tf5xzrX6qhoafdpiSe3yXfqqIooyRjJ1+q3qIlJCfgHutVpzEeo9vksF9gZVtdW+MbWV2ZYZvYXducm+JipKPhG6SkWZwdXVxYWdtZV9vaWluZ2RYU11hWlJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DTxsaytKCdo46jo6Ksr7auqLCmqKqmraurpqGknZmhlaClq5+ipaCoqKKenbCsl5qWqaeurKinqJ6XlJqjoZGToKybnaair6ykrLWquc2yraatrJeVnJ2imJ6trJ2XoJmenqmyqquqnKyrpKOsm6+xoqirrqWYpaqoqbChkZWipJmTkYSkaqR1iXqpdHqycIKmipmMcYigmoekYGBSq4R/roObdq2Bp4aGn3qZl4Z7ZoCjiaSZhoKjfal+gpWHrl99qVWdopKBeqKfgHvDr8WLcq+zs7lxYqmvwnRojIyYjoJtm5Vxbnp4eXBtZ2VlcnBmfGljXVdgalhZVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydXVv6GZq6egr6KesLSwrqmsoqemqKqrqaSmn5uknp2mp6ejnKyaoqyho5+vopybk6ukta+uoKianZaUpqKQmqKon6ClnLCmpKixrLbIsrWqq6mWkZ2coZifpLOdmqGUnZ6nrKylr5utqqOiqqGzraGqs7Chmqinrq60opKVoqaYmpF7qmyehId1q3l8sG+CpIuJn5aWn5SB0ri0uMmAgbJfYJSpg6SIh6B6mJaaeKrJdJmjlaipkZOajICciZrGx3hmoYKlc4GfjoJ9r11wtGKwdUujhm2nR4KTZI6QnpJ8cZiVgXF8dX58blxmanNxZoFrXmFZZG1cX1lJTkxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqLKtrKWinLK4rKqgpZqopaqrqaafpqaYqqOfrqudpqCsmp6ppZ2ntZ+il5OpqrayrZulnKCUj6WskZmcp6KgqaauoaSnqbC1w7Kyqayok4mXnKWaoaOupZehlZmcpaasm7Cerqmnnqyjt6yhsbivnZquprKysqOTlqaimZ6Ogp1OeJqBf596hKN9g6SEh6aenJ6ThLh7e3m5gn/MxsK2eJuhkIuffpqWl4p2npiKpZikqH+whZyFn4SsfZqUYqVspHCPhJCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Tk4x2fHOGgHFcbm54cmqBb1tkX2luYmReTExRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq+gm6GssrOlnqCVpa6trqunnKammqOnobOvoqmnsqCYqaSUorWiopWXoam0uKSbop2jko+hsZiem6akoaKvrpylqKK2ssSxramtqZGHkJynnKKknKWXnpmZmqakqpuwoq+lppivpLusoba2rZ2ctLG3sLGll5yun6KdhY/RtcO3eYeOhZGTkICmeJShd4ygkYSlgYpxqoaFtG5yapmjnJWKnnyYmYaHj3OvgqWboo2mi5OdipWQm21wsl2lc5N6m2uZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2NjpWNeX55kINuanlpeXJvgHVeZWVvbWZnYEpbWFg8SEhAVTRARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWTc42Krb+/vLq0npanpa21oaKZlaOopq6rrJmmop+moKC2p6Opp7GjlKyjjqSto52Qmpqqs7OknKScqZGUl62fn52mo5ynnLWZoqqktqvDsKmqqaGMhI6boqCmo5WampyZm5mnpaeZraivo6Wbraa9rJS9sKyeoa+yuaqypZqosKKml3mokH18sHeKgKSliJxtsm+gh618oY+Dp5WYgKyJha6Fn5SqoKGXhp+AmZWAe5J+q4CdmpaLq3idn5GJlJKAea9eo4F9pqdjnYB8l3Nqr12la3CFmV1gW4ygbZWRppmDlY6ZjXx8hJiAa25/Y390boB6YGdlcW5oZ2hDWmFbPktVM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JODA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVldXWFZVVVFIRklKIygovZOag6nGwrbBtJ+arKCtuKWjjpuko5+wsKqfpJ+drZmfuaCjq6CvqZquoZCrqKSWiZqQrrCspp6mm6yXl4+soaCdpaGZpJyumKGoprapwK+lqaOei4CNm5qfpp6SlZqblJuapqWlm6qsraSln6qovqSWwqupoqCrsripraWfsq2nqJd2r36Qi5yFh326rYqZZbGNZZWtfaCPg6aVmoGsioSwhaaapKGhkIWgW2xqgbNgf617e4OBsW1nb5mYjIixW320XKSDa8iiZJ+Ae7xYdrVZsn1SroB6rFiAoW2Yj6ebjJeRmJh8epCef2V1f2OFeHSAfGFqZ3FtZ2VmT1ZkXEFVXz5JKD46PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFdaXmBgYGFiXl9cW1hVUE5KRkM1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vbqzwbOjnKympLaooIqaoJ+cs7Spn6OgnrWZoLSoqqyer62erJuVr6mijoibjq+sqKehppmukpiPqJmhnaSfmaOjppmgoqmyqb2vpaienY99jJuWoKCZkJKanJKamKmgopqprqimpqKlqbueoMampKigqrS0q62lnrqsq6uUgKmSo6+Om3+HpJeZkIKAuMO6g46ckoSnl5yCrIqCr4innJumqpB+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGuigW+rhGycf3qysMeDaauwvax4d6K+vHOAlo6mnJGbkZmee4KSnHtkfnxljmd5gnthbGVramNQYVtTalw/VWJDTik9OjQvHx8kHyUyIB0kKDA0OTY2Nzg6PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PUE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbOzsb+5sr2yoZyupqWypp2MmKW/qriyqKK/p6eynJ6xnLqon62vpqeUlLCsl4yDm5GupaKsoKOcqqCXiqKSpp2nnJqhqKKZn6Gsram5raijmpeTfIeZkaaako+RmJiPmJSpm6GZqqmhqqego6q7najFoqCuo6mzs6muqJ+5pq2tmXN1qqS3hmSJoHBorpGKkG5ud6SQmZ+Bda6YlHCPi3GVqKObl66kcm1sbGaLeG9ugplxgXpqcWlniZaWmHFpaYSHZnCGZF2IYmpvWVxmfXamX2FxjpFuZWV/jZOPoZiZmZKYoX6IkJZ3Z4h4aY5ren95ZWxjZmxiS2RYSmxaOlBlRVInSzorIxwgGyIsKRgbGC0yLjU6NDU3OTw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWVxeXl1cXFxdXl1eXVtbVVdeqZSss6m5uLKzqqmhrp6jsqmXkr6yxMm+t6qfwKytpKGnrKC6o6SurK6njpeuqY+LhZaXrZ2mqqCdo6OgkYukkqaZqJmWo6qglp2mpqewuqusmpuTknuElo2lmI2RkZmUjpiWqJWgmKmjm7GmnaKruZ+vwaejsqWrr7CprKqmtqKstpWKoKiltp2JlqOZh6qbkZWdkqmymZqjqqCylqKhnZ+inKGloZWrp42SkoyHk5yclJCZk5mRjpWFgaSal5aOi5OTi4+GhH1niX50gnVzhopwp2x6lJGTkoGBjY+Qj5yUoZaamKODiZaPc2qRd3GMeHd8emptZGNvZFVhWUBqXEhjYU9ZK0Y9KychNzUwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVVlleYGFjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1xcXl9fYF5eXl9fYGBgX1lZYKaWqKqltLaurqGvo62foLWxkI6sx77Gu7mro6WenKafsamkt6edqbWnqJGYraKLh4mPnKeVrKSfmKeenpKUo5anmqiZlKahpJCbp5mhtruoq5makIx8gZSLoZSKlZGWkJCUmKaQn5uqn5y2o56nq7enrsGto7alrq+vq6iosregrbuYkaWkpraikp6noI6qoI6Sn6Osr5qgo6+or5ijoJyjqp2enZyWq52TmaGblJCWqpmNmJmXkJaekYignZWVhZKMkI2UioB9ZouFdYZ1eIeCc5xqhY+Uk5CJfIuVkpKXlKKTnpijhYqaiXxzl3N6i4BzfH9qb2RecGpgW2BZbmRQYGVQWjpHR0U+Mj0+OS8qJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWJhYWFgYmJiZGJcW2OXlaOno6+yrK6jqaatn6e1qpCQnaW1vLCtraKjmnueo7KkpbGpl5u5pqOTmaqcjoaKiZyij66eopWon6CSlpiarYuplo+omamNmamPnrq2pKWZm42IeYGUjJqTipWSlJGNkpejjZ6fqZ6fuKOAhK+1oq+vdKO9o7Gfd3mfqbC5lHWso56JgKp/ZFxidqCPpZ+El31tkrOco6etqqJlnp+Sc3mZl3CAmKiXbX+iqIplnKWckZeYloySnJGGnZqPlYOSh46OkomEd2qOhnaGcHuFf39gaIeKlJKLWnWUkGdokI9ze6ebm2Z6momEeZlqhIuEb3mAa3JlX3ZwbGtoW2dmYmJwU1w+Tk5OU0c+QFVEOTEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVNUVVldYGhmZ1dRSjxERzw4VVJbYGFiYF5fX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6CusKyrqaWorqKmraSSlqu2sbKnm6unrJd0jJ2wn6irp5SXuaCgj5yknZF/iYibno2smqKUp6GdjpaRnoR1rY+IppupkZekiZy7tKegmZiLiXR3k42Wk4qTkZGUjZCUoI+boaeZnLKWgIybtZyzjJKOu6agfqeieqGttYCOjaWeg4uGkLGqr4yKl6SbeoCLrIacnaGnqKeHlYWYd6WbeoebgZingoJ7nLJ6ioagl5mUmJaCkZeXhJqZYnmHkISNj5GKg21wjoZ5gHB/gIR+hXOFhJWReJZnknSgmnV9mYSin4iYf5SMhYWaa46Nhmx4e3FxZ2R4b2psa1tlbGpldFxeSVRMUkBFNS5aVVU3KSEwOT0+NzQzNTY4Ozo9Pj5AREk/SUVKS0dTWFtZW2FhaGZZUUg5RUw8PmJWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyYo5+mrK2rqKyfqLCmpqmlmZSvyL+xopeoqbWekISdrJynoqCNkL6emo2fmqCQfIaPmZiIrJyilZ+hkYySiYaAkaeNh6KdpJSYnoefurKnnZuSjoVwdZCJlZCKlJCPm4yQkp+Sl6Gllp6rh5+0ibSarYrKh6mtiLeFjbCBr6yCqIymmI2dfaiPcnt3nI+nl2iVpHm0jJ+epqeSmMKBf6uImKFynoCapX2XhZWygaF9oZOgkJiXgY6Tm4qYkYt8hZOGjZWSiYNtco+FfnlxhoCDe4N0hICWgI/FZn+ph4+ja56Eo5yEmoGOj4eLmnGPk4Vod3R8eGhodnFoaGxeZHBtZ21YZ0ddUk0yRDQ2TmJkNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmlsXFFFPUxNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUlqKgsKeoqKWrn6O3sKmqppqUoKOkq6SXpqu4o7CAoaidpZ6diZS8mpSNoZKej3mElpaRiKuZm5uZooWOi3eanI+fkIiepZyWmpiHo7mtpJqcjIx+Ym2Pi5OQjZCNjZiMkZKgj5ShoZmhp36hp4etnaCWrY+enJ2RhYCgjKqthaONqZmMmn+jdYCZlGuCrXZNq3iHjZyRmqingKmrfYOhe3qnaZ5/kmtnl4WXt4mefm5gZFmDl3+Me2Roi3KZfXmVbF18lm1fU3CDXF9reIJfWGSBfIN/l3CnqmuDo25ypXCfhaBqZqBtW2+MfWdaYISAYldQb3dmbXRza2pvXmtxbWtpWGlPXlhGOUE0SERfazQsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl5idWBNRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5WdoLigqaOmrJGgtrurraKZmKGipa2uoZ6vtaOok6GgoKecmo6ZtJqQi5+MlYt1gZSSjYqnlpWYnp9/koWFq6SHmpCKmamZmpuSiKaxp6GVmoiJgGluiIiLjo6Ki42SjJCSo4yUn6CcoaR/k4GPo6GUoHeclY+ng6Gmf4aoq4OleIl8hJp+onBzlIiWfJ+NeW2Hm4yZj5uomo+HnXuConN2pmaefnekX5h6fZN0om6Yt7S6dJOHgn+1qGSBxrh7cJW2jHF/mqRic6yrYHxpnbN+bXyGgY2Ci5hxf6NscqN0n4WBpGCdmbOWcX2Yn7N1c1uesoNqY290dnFob1hrbXNyZlxpXmNMRD1ENlFCWnIzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1OUUBFX15bWlhgYHxkSEM4TFdVV2NgWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJOWlKO3maubk6CNpLe0ra2gmqKdpKOmrp2csq6sk5ihmaGkmZqUn6ubi4iSeIuFcYCWjoqQoY+SlJ2YfZCJjaegh5eOiZKjlJybjYupqKWej5eHhH5qe4d/fZCNg4uQkYmQlKCDl56gnaCei4l3nJiijJ9yoYuHqYibpY+Vpql9rYx+eqCZeqOTeIF0loiNnH2Wn4abjpibpYaiZKF8iJaQm41snmiajW6amXqAi6d9cmh0q4Oeg3SqaJWaXZuFdoSdZ6pqgLhmXKhwgZxglYxep3Z1h4h+nmiadIWTkpeOgJ9vmpFup5pdqH54u2t+qlyOhF20Z1xucnp4a2lccWt5eWNfZlhiQlFGTzdXQ1JvNUtbWl9PWkRAMTUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXlllZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FgZGVla2VjaWhna2mVm4mptZuniGOUmqu5sa+snqacnKmgn6+cnrGprZ2XpJuhoJmWlqGkmYaJjWqIgHJ7l4iLlpaEkZWYkHqKg5WjnIqUj4aMnpKdnYmQqaOgmoyRioCAaYCHeX+XjHuJjo6Ij5abf5Sin6Chk5hyaJ+Kn4+McJKMgamHmJ6hpZ6me7Cto6K4l3ejs6KkgIiUeZ17qpp/oo6cmpaIl3GhfIWNr7V9a5qRoXh+mLSio6uohJl8m32dmn90qlpdb3uWi3ieYkx+e3qFY3mXQkyfWKJqcXuObICIhJl1m3iGibGzf4Cbk6d3g51uc32VcJp0a6RdlXZIZWRgdHF+fm5mYGxpdntkZGFRX1ddVVdAWUZRaERTV1xiWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQzxVX2JaZmpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZtXWVnZmtkZmxpaGtpk5yAsK2ZhFNeoKazubKyqZqijJysnJyqlKKspKKoj6CenZuZlpihnZaIh4l3hoFveZWFkZuLfJGTlohygIiSoJtzkZCBiZqVoZuFj6mcm5WLi4p8g2yEhnGBoYx4ho2IiJOZlnyTo6Ceooithn21hI6enHullnqpgZWbj4mfm3ynaHdtfpl0oXNxfJ6GmXCTg659pIOmnZmApG9eqGd1omNvpWGc05B8e5l4cnNjooaQfqNzpI91a5CzjGCCmIlzqrKnvH93g21+vqaptF2bbnxwlm1/cqJyXaRnc6ZgaKZtm9SafYabcHp7mGycfHiXc26ppGdgZXpxgIRrZ2Zkb3V3Z2BjU1xmUVFiSVdKVGFXU1tlaltlUUZDS01KS0JLRThPQFFOWFNZT1NRYWVlalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJeagLCrVFxLfqmvsbSvs6ObmYWZqaChpI6lqaCZqoqamJiTmZOSoZiPiIZ7cH2EaH2Pg5SagXeQjY+Jb3+Fj5KSbJeTfImSk6WWg4+qm5SSi4WJeYN2iIBugp+Gd4CThoiZopd6lKOkmp+Js6Gitot6rKekrqVwqYCajoWAmpB7pIChmYaYcp6Eo66vipeMgI2kjZWDraCUdrS1tcmhc5SLgZ9gnZepbXmVh6CbdKKHd6B+kpeLgW9MZqOScJuHc6R7enRhg4FrfqBrcWRfnHF9c5ZoeWmztbTGpnOYfXqda5ybq3aFm212eJhqmnt1mHJQRX20X2p2a3mHZmpnY3V1cG5WXlRZaVBSaElWTVlUVl1oa25WZ1dOS0FKTUtISk9BUUtQZWNqbWV0c3N+eXxudYl7e1RQT2xeaVxraVJqaGlsZ2xmY2VgXF1dXmliZGlre19dZGhjamZubWVpbGWhm4iupoRlP5Ohsqqur7WiopCAl6qio6WMpaeenaaDm5eWjpeQj5yTjoiDemp5h2WDjX+YoHl1j4iMgWmEhZGDjIWdjXqNi5amk4OYqZiNkYuBiHp/fYt5cJChhnqBlYeJlqCWf5SlqJyWloRmbnicbKJkfHGld5uYcGemgJWKeqR6n5aDl3KedoGKlZePuW6RiqJifZmglYhtcmmqa3WgbW+mX5ppi5BploeblXSigH2aYIyGjXVviGJooGWefmmbdW9jZoiCbXGiWl9bYqFtXYiLbnp9c3JkpW14omRnp2iZc4yZcKJvVYmQb6BfZqhUi15UmG5tc2tygm1waWx5c2tvUllXV2daU21JWU9dSVhpaXNqWWtWUVJFVlxMWFNhVWlrX3d0e31wfXxyg3uAc3aNgIR2XlFyYmdjcGdQamhoa2xuaGRnX11eXWBqY2ppdnVdXGNpY2pqc21ma21jnKSYpXpkdG2Lp66jqbCxpp+MgJirnZ+mjKOim6OigZaYk46akIuYkI6Ke4ZxgIhoi4t8mJxzdIl9kHxkgoeUiYmVmYJ8iIeXqJGBoqyRhpCKgop+gICPc2mQpoR9hpSNiZmgj4iTqaadiKZ4lZt+pYiWjLKYnpCCr5efpXaUhnipc6WPhJpupKKMkoSNg7tufaWvg4aFhpOVnJ98pXpyqJWglmaefm+sY5WKlpN3qWypooGJdoiDd6qRpodqkbBrdrOMqWuKhm1tn56SlWB+q4uqdn5+i6Wedp98g6SVnaBqm4h4rGierYy2dHe+jaSTWYOmjathdXJ0cXx1cWNrf29obFNXW1ZhYl1rTV1SXUpebW53X1txWVxgW2Z0ZW5vcmJxdGB3en55cnmDc4N/gXt7jIGCgHZieGRjbnJkUmtnaG9scmpmaWFgXlxia2JtbHpvXFxiaWJsanhtZ2xuYpWlqpyAf52jlqmqnaimrqSZioKYrJqfpYqbpZ2pnYWMmo+HnJGFko2MjXSGeoiEcI2FfpiUdHSFcpKDbX+LkYeGk459e4KGmaaOf6amjoGOiYWUdoKHk29si6mBg4yUjomdn4qMlKujoI+AdZSXiH6BeZSuo3+Bm3GPhneOiYJ9e3KnjHF9fXqYlpuEj3l7f36Hk5WTinaQmJ6gg3t9iWuMhVt5eXJ6cWlufpKJcYB1gY+Uk3GGhIJljH9egH+Ld3RylHVueW5thmyEhV51Z3eOZYCAhY2omn10e5VqiYhwgXZ9h3dubWeMc3l8mHiFXGtYeY9pbnhycm94eHBda4duamdWW2BXXGZrZFZiVV9RX3B4eWxrdmZqa2t2fXFydXNhb3VidHuBeHV6g3V/gH+AeIqFg317bX9sZHluXlduZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhsb2GNlLiopomgopqmpJilnKuioYSEmK2SnqGJm6eaqZiDgZuLf5aUh46KiY1yg3yPfX6PhXuYj3Ryg3CVhXt8kouGho+FeX6Ah5qljnynoYuGkJCFlYOGjph3coSqho2SnZCJn56IjJuon6Cqg4iOlZp+fomWraiPkaaPd2+bj4F4kG5+qIVwfZVxa3B9gaCNgJOOjGhtXYOLi5uano5zlYuIcXRrgXZ0gVlyboaRgX5+jGpdamR7hYSJgGBpd3qae4KKgXWBhYJnd4mFamFwcYF1XnGKgIiOpZSFZYuNg253i4RxhpB6cWdoZXyEepZbXGpnbnZbe3l4dW5zc4JnXG2La2tiWlpfWllscVxfYVpfXWZ0fnt1cHRja2trfH1zfHh1ZG11aG18fnZ6fHt5eoCAfm+GioR7fXN+eXN/aFRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VubGdzem9oam1gi4uqsKCPoqGanp2Xnpioo6J+g5mujqCViJyikaWVf3uYhX2SmYmJhoeKc32BjHaFi4KFl4pxb4BymIaDfZKDhIaKgXqBhYycoZGDpqKIeI6XiZWKi5yYhIN6rYKRl5qVip6diIihq5+hoqOLh5ObnKOZlqqhp6afkpqGlIx6do2Ng6d+f5KQk5ScsqablZ+QjbKTl4OljIyVmp+JkJuCiJGKa3yOd3hlgoaQi3yJnYSHi5CIiICEhJB3fHl0maCIhomdiYSTfn2Kf391b3KEgX13hoaKj6WQgoWMhoKMkIx9h4yKkYR5bYOFfXqZa3JoYXSKcX56d3dwd3SBXV5vh2huX15aXV1UaHJWZFxcYmxodXt8c29wZGtraYB8bnmAcmpwcGxngXtygoB4f31/hHttgo2GfHl4e316g3hOZHZqcm1wemVrZWNiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZIyHnLmelqKgmJSYmJSYpKCefH+arI+fjoagnYueln14lIN7jpmJhoOEh255gYBygYh+iZSEbWt+epeHhIOQf4CGhIZ9h4WOnJ6Th6ufhHKLkIaSkYudkn2Oe6qEjpOYlo+cloeGm6WfopqdhYKSmpmZkJqmn6WdnY+Vf4+IdXuGjYOkenyOkJGGmKuhnpSdkI6qjZB/nYyIk5mego6XfoaOg293hnF1YH6Dj4Z1jJiAg4+ChoR+hYSUbnh1dJGhiouFmoOEjHN/iHt8cnF6h4J6d4qNg5GmjoWDjoCDiomKd4aJiox+cGx/gnxuaGxtaF96f2l9fHZ1dnV7d1xfcH5udWBjW11eUmduVGVbXmJraXZ6fnFsbWRrameBgGxzgWxsdW95cIV5boeAdoKAfoV2cYKNiH57enx/e4KKYGl8anVoaYJkamNgaVxjdWhvYnVtbFVjcXllcHp7c2VqbW2KiZ63mqGjn5GRlZeLmp6fnnt4n6eRnIuHpZSLmJl5eo2FfImRg42CgoNufH95c4GFfouRfWpofYKYiYGIjnx9hoSGfY+CkJydkomonYBwjIuMkoegoYqFjH2okYmQkpeTlpN4jKOgoJ2WmX+AkJqYkoybo6GkmZeRmn2Mg3d/go6Gn39+jIyPfJiloaKTmpGQpoyPgZqRiZKXm36Tkn6HjoF0dIJwd2F9gI2GcYuVfIiMcYx/goWGjmh3cXiLl5GPf5Z9h4pxgYZ6fHB3eoqDeXmPi4KUpZKLhI96hoaHhXaChImJfGdzfYB5e3Fsa2dffnNofHV2dH1zgGpeYHR2cHdkY1lfXlJraVVlWV9haGp2eYFxZ2tkbWhmgIFrbn1ob3FsfniHemyMgXOBgX6BdHaCjYZ/fHp/gX1/j2lyg25zaWGHaGxiX3FWdG9tbWB4aG1XanR2Y3V6e3Jiam96iIyespKlpZyOj5ePhpygm518dqWhjpiAjaOLiJqWeXuGh36Din+JgoF/cn97dHaDhX6KkXhnY32Gl4qBiox4fYCNg3mXgpaZl42XoJx+cIyCkZSGppuIjImDppWFk4uWl5OSd5GdoKGXk5Z5f46Yl46WmpyknZiSlJp4joSCd4OVjZx9gYmNjHOXo5+ik5mPj6KMi4OWmIOSlpl+mIx8iI2AdnF9bntkgHyKhXCHk3+RgmyHgoGAiYRldW57hZGXi3ySd4uIe3+Fe3pxfXeIhHiDj4iKl6GUgYKKdoiEgoJ3fIOKhnhhenl+dH94Z21lYX9qandzdHV9cXxiY2B0bnVybWFaYV5bbGVSY1lgYWhrdnmGcWJqY21laH2DbGh0aG5waYB9gnltkIZxgISDf3R8g4yBgH16goN+fI9tdol0dG1limxqYmJ2VoRpcG5geGdsYmp2cGZ5fHpxYHJshoWPnK6XpqiejYyXh4afk5eZfniqnYuZepedi4uYkHl8gYt9fIR8gYOBeHR5enN9gISAiYuAZF99i5WHfoSGdH1+in99mYWXlZiNpKKZf3OHe5OSiqaPjI6Kk6GSg5GQlZeRi4GPl5+ako+Qc3+NkpSJnZ2eppeXjJSVcouNiWuEl4+YeoeIj4lvl52apJSVi4yejIaCkpx/kpKVh5mIfIqJgXpxeWt1bHt+i35thZKClHhwgYN9fop/ZHFpe3+Wl4R+jHOPh4J4hXx1d398hH97gouDi5Kjj3iDgXSJh32AdHaCiYVwYXx2enF9b2JvY2R8Y25vdnN4d3N0YXZgb2x1bW9cXF9eXmpeUF1ZY2FobnR7iGtgaWZqY2l3iG5mbGlqbWiBfXt3b5CIc4CEhH10gYaJe4N9eoGEfXyOcnqLeHhubIdqaF9pcmOHZ3FvZXdnbmxheWlrfXt4cGF4bYuAmJmqoKOonYqKkYaKnYuVmH54r5mNl32flJGWk4h3fnuKfHuAd3iAgHB1dHxvhn2BgYp/fGFcfo+Shn+Dg3N6gId6j5KJk5Kdk6adlYJ9gX2NipKkiY6KjZibjYaRmJSWj4qIjJKcko+LjG2Dj4+RiZ6ZoqGXlYiWkG2HmINmhZiOk3qIhJCKcJaalKOTkomLmYyCf5CdfZKPkoyZjnuKhYdzcnVrcG51fIp0boaQjpJxdYB7gYGHe2RwbHl8mZN9g4hzkImAc4d4bn98f4V7hIuHg4uUp4x6h3t9i4V3fnFwgYaEZWh5dXVwfGJfcGFrdF5xant5eWxzcGV4XW5sc21yWFpfX2FrWlBXWGVjZ3Fxf4dmXWppZ2JncY1vZGlnZWlogXp3dW+OhXSBgoN7dYKJhXiFfHiEhXp/iXd/i3t7cniDamtgcGh0gGtyb21yZ29sZXxjboB6d3Fsd3eKfqKXoaigppuHjIqBkJyHk512gquVk46HoY2Wk49/dHx2hXh5f3Nze4Zrc3B6bYp2gIGIb3FbWX6RjYeAf392dYCAgKCGkYuTnZihlZh4in+AjImcnYqPhpKYloWJlZmQl4uLjI2MnImNj4JtiYuQkYqdlqGcl5SFl4dpg6KCZYSciZB+i4OLgXeTmJKfk5GJiZWNf36Pl3yRjY+NmpF8ioCDbnVwbG1vcHuFaXODjpiLcXeAdYKIgnhmcm51gJmOe4eDeZOQeXWHc2+IeoSLeYqFgoeNmqKHe4N1gYt/d3lubIKEgl5zdXNxcHlaX3FhcGtecGp9e3FtbWpsdmBvb2pxbVlYYWBhblhRVFpmZ2N1cISCYl1rbmRiZmuSbmBnZmBna4F1cnNwi4B1f4OAeHWAi4B5hX93h4Z3g4V8h4x/e3eKf2pxY3xjhnxucW10amhvbHZ4X3F/eXx1dXSAg36klZqtnqaWhY2Df5eUg5CgdoyglJOGi5uNlo6LenJ4dIJwcoV0cXaIbHBtdm2IdoN+gG5tVVGBq5SHgniAd3KDeoKhgpOClZSZnJObeJJ7g4ySpJqTjomVmZKEh5eZjJSLiY+Ph52Ej4p8couFiY6InJqfm5WUf5N9aISbhmeFn4eRg5GCiXGDkZiQnI+QjIyPjXd7kpF6jouMkpaMfIh8gGt2am5rbGx7f2F6fo6WgnZ6gHiDjHx5ZnNrc4aVi36HhXqTjnB5g291i3mIi3mHfICLj52dhHx6doGLfHdwamyChHtgeXFubXN0Vl5wYnJhYGxuenFocGZmc3RocWthd2VdVmZgYHJTUU5cZmVdeXCIfF9caXJiYmVmkWpfaGVbZ3B9cGxxdIp9dnyFgHV1fot6e4WAeIiDc4aFfoyNhHx5lXhmcmqDYIh9b29remBqbnR/dV90fXmGeHRzhX14oI+ZsJyljoKKf4OaiICMnoCLmpSPhYiYj4+PhHd0d3SAcHCFdHByhG9raXdug259fW51c1JNgt/IktaTe3B1g3WEoIOUd5aSmZyRmXuUc4WQn6GTk5GJk5yUhn6WlomNjYiSjYicf46Ad3qMfomMipybnJuVknmMdmaHkIZrh6KEkYiXg4ZjjJGZj5WLl4yNiotxepSIe46IipORiXmFfH5se2Vyb2trenlbgHmPj4F6fX5/ho56emdyanKKjomBhYR8lIprfX5tf4p9ioV8g3mAjpSZmYp8dXeDkHhybWdxgIVua3VwaGp1blRfcGVwWmBscnhna2tiZnhycHBjX3dgYFZrX152UE5LYWdjXXpwiXRcXGV2YGFlZY9kYWdiWGlzc25rcneMfXR6hoJ1dn6Lc4CGf3qJf3KJh4GRi4h8fph2ZXNufWWIfm9wbIBZbG55eXNhdnt7jXZyd4p3eZ+Lm66bn5CChXeIlX59ip2IhqCRj4WMmISTjoeBdHdweXFvhG9tb39zZWV5cX1ten1qaGtjpJrB3K7woXJsdoR2haOGkm+XkZahlpyBknKFi6OXiY6VipGdloOAlZCFiZCAkYqJln6HenV/iXiHhI6cmpiZjo92iXVthYiKfImig5CJnISFXouTl4uPiY+Li4WJbXuWgX2IhYmRj4Z2hX19a31keHVqbnlzV4h6koeFeX6AgIWMfnhlcml/iY6JgYJ+i5aEa4F1bYaPgY6DfYF4fo+UkpiPdHJ3h4x1c3FndnqEY3VucWJqd2hSYXFna1Zfb3R6YXJkX2h9cHJuWmNyYGJWbllceE5NTGRnYV53c4luXFxkeV5fZGWFYGNjX1lqcmtua3N3jH50d4SBeHd7iXGDhHx+iHt0i4mHloaMf36Xc2d1cXlti3tudHGBV3F6dnlyZHd5h4xpdoCJcn+ch5innKOShX1xjJR4eYyehIWhjY58lo2AmYeEe3J3cHRqcIFsam18dV9heHd7cXV8aGBkfOvatcnD3IdybHSBdoubiY5qmZCQnZaUgYlxhYmgjoWLlYqMmJR8jZKIg4mQe5CLhY+Bf3Z4g4RyiIKTnJaUl4aMdYZ9boOBiIaYoYKTi56DiWGDlY+HioaJjYiBh2p9lIB9g4SJjo2CcYZ+f3F3aHZyaXR3a1qMfJKChX1/g4CEioJ1YXJqh4CPioF+fpGQfG2Ba3eEjYWRgnuAfH6PkY+ViG5weYyGdWtxbHN5gmB1am9da3dgUmVyaGZTYHB2dGFwYF1og3FzaldnaGJpWG1WW3VMS0xmZ15icnOFaltcZXleXmRne2FkX11Za25lb2p0eIp+c3OBfnt2eodzhYN8f4d2doqGjpmBjIJ7k3Vsd3V5eJN0bnh6fVh6hnGAb2d5d5KCZHaGhXCKloWZoZqiiod0b5OLcnePnH6LmomJfKB/hJl/gXhydG5vZHJ/aWZteHhcX3l7e3FxgGphZmF/1baOkaZ4bnF3fHGTkY2Ha5qPiZyTjIZ7aYeLmYaBkpGGh5iOfI2MgIGKjXyPjH2JhHp0eoN7cYaAlpqOk5OBiHWDhXWCf4mRnJ2FlI6ffohigJOIhYiEio6AgINnfZGAfn+CjI+Qfm2CfIJ0a213dXR3dmtjjYGOgIV+fIV/hIh+b19xb4R7jouBe36Qh3lwg2V5gYmFioF6g3x+ko2PkoRubnmLfnVtbmtse35kaWxqWW53WlJqc2liUWNzeGxiZV5aaoNuc2FbZ19kbF9uVVtwTkhPZ2VcZ25xgGxaW2NzYFxjbHdkZV1dWmxsY21qc3eHf3FwgHt9dHiGeIWCfICHdXmJgZKWfImGdomBcHh5e4STb258gXdeg390gW1penOUc2dziHxykpGDmp+boIaIdnaVf213lZh+iJCEio2afYyadn52cXBsamF1fGdianV6WmB4fHptcX9lY2dnV52PX3FzlrzEhHdxlIqQf3OYjIedlI2IdGuIj5WAe5SMgYSbjHyKhn18iYx/k4h1iYV2dn2BcXWGgZ6VhpSPgoJxf4dzg3qIlpuWhpONnICIZn2TgoCGhIqJcoJ+Z32Le3l/f4eLj31pgH2DdmZveXhzd3Nsao6FioGKf3iCgISDf2pdcHd6fYuIhXuAjn99cYBoeIGGiYSCd4J6f5aLj4x9bWt6iXx2dG9paH13ZV1xY1hwdFNUb3NoYk5odHhmYV5dWG+Ab3NZZWJdam1gcE9ZbFJEVGdhWmxubXtvWVtebGNaY3B2ZGdcXWBsamNsaXN3gYJxbn57f3R1g3qEgnyChXZ+iYGWkXiDinSBiHN5eX6NkG9ve4FxaYF5en5ubXx2lmtqeIR0a5SNhZ6YoJmFiG9+jHZqeZmPf4KKgpWXinqPlm96c3BsamRgdHtpYGVye1thc316Z3B6YWVkjrGyd0tiWqXa0Zdye5KMkXl/loyFmpKNhm9shpKRenmTh4GEmYp8hn94eImKhJWAb4qHcXR9e2p5hoOlkYWTjIN+bn6CdYJ3hZmYk4qSj5SFh3B7koN9g4SKhG+BeGiAhXhyf3+Diod8ZXx+hHZjcHOAaHlxb3WZjIaDint2eICEeYFqW298cn+Hg4h9hYh6iHGAbXCChY2Cg3GDd3+Yi4yEd21tfYR/dnplaGp+cmFaeFtZcm5OWHJzZmBLbXd1Yl5bW1l1fXJvV2ddZmpwX29OV2lSP1lnX1pwa2d5cVtbWWtlWWNxeV9oXV5lbGhmbGlxeH+Hb21/fYF1cIF7gIF/gn92gYWJl4pxgo1xe4Z8enmElIx1a3p/a29+dIB9b3J8e5Rwb4B/eWaSioKhmJ2Sg4Vnh4NwZ3qXin5/hYKZioF8jY1peHJra2ZfYW95bV9ib3ldZGyDemBxdl9kZdXrvosyOj6LjoByeYaJj413hZiNf5OOjX9ubIWNjHV9j3+FgpWJfIJ4bnaHhYOWd26HhGt1e3VleYOEp4yDj4yDfW1/c3WCeISaj4uPkZKMi4Z+e5KHeICFjYNsgHJpgH54bXx7gYqDeGJ5hIFxZHFofm11cXWBm4uBf4V+c3V9gHKAblprfHN4iIGKe4Z/fId3eXBrhoKOgolxgHd+lYqKfnRtanaAgHV1XGlpeHFaV35TWnJlTFtzcmZbSnF4cF5bW1lcdX91aVliW2dlbmJpTFdmUT1eZl1ddmZfdXFbWVVvZFplcXlbaF5gZ21namtpcHh9jm1qgYR/eW6Ae32Af4J6dYKBjJOFcICLbnd+gXt7iJOJf2l7fWt0fHKGe3N3fX+MeniEfnxrjIyEm52WjIKAbI1+a2h/j457fn+DlIJ/fYqIa3VxZ2ljW2Nnc29gYWx0YWhwiXphc3ReYmOboJBuXDVar7V1aoCKfpOGd4eYh3WPjIp3cGyFg4d0eYl4iX2TiHl+cmd2iH59l29whn1odnluZXqJhaWHgIeNiX1tfXV+f3uKl4aBk5CXiIuEiXyPiXF8foV8aX5ta4F7emp6doKHgHJgd4J+cWRyZ3WCbXV7hpSRgX2Bf293eXt0fWxXbX11c4qAhneGdYGJendybYh/jn+DcX17fJGHiHpubWltgoF0bl1oZnRyUlx8TlxxXE9cc29kVktzeWtYWVlaYHGAdWFdXWFnZGhoZk5aaE5BYWRcYHZhXHVtWFhTdGFbZW9zV2pfYmhrZ21saXB3fJNsaISJfXxwfn58gX+CeneAgImLhHJ7h29xd4R/e4mNj4NqfntueHl3ind9eICCh3+Efn56bYSMiJijjYWEe3aLeWtthYmSeX17gpKAgH2Kg3BycGJmXllnX3BwYGFocGZqb4l0YXRvW2BkanZ7f76cp6TIuHKFhHOTfXmIlIR0kY2IcnNwhHuDc3WGdIh3lIl5eXBjd4Z5gJJpcoR1Znd2Y2p8hIiegoB/jo99cX5zg3h+kI6Cd5WNlI+Igoh7iYlseXl/dmh6aWx/eXNpenaAg31oYHiIfWpqc2h7gGp2gYyRlH56fX5xe3Z7c31hVXV7cXOIgoF7gnCGiXd3b2+CgYt9fHd8e3SNhIF1aHFobIiCcnBdaGN0b0tmdkxeb1VUWXNuYlFPdHliU1hYXGFwgnNbYVxoZWRjamRRW3FJRGRiXGNxXlx4aFVXVndeXGZuaVZsXmFqZ2Vubmhwd3qTbmmIjHl9cnt+eYKAgnx2fYOIhoNwdoNzbXeCgn6Ji5R/cYB8eHl6gYt0g3h/gYGChHqAdW99iYubnoh+hnt3h3xodYaNkXp/gHyJhoR2j4BncG5fZFxYZlltc2FhYXFsbGiJbmBzaVheY22Ad6nZqceGh7NyinlwjnZ9iJCBepSKgHV0dX53gG9wf26FdJSGeHRsYHqBeYiOZXGCb2d1blttfYGQk4CBeZGSfXd6bIV0fo+Kg3KVipCOh4WFe3+GbXV2f25od2VtfHZtand2f398YGJ4hnpodXVjfntndYaOjZV8dH91cYB6fGx+WVZyfG90goZ+f3driIZzeGp0f4KCfHl7d3pxin98cmd0ZG2LhG10W2tgdmZJb29MW2NYV1Z4bWJQU3V2WVFWWF1gcoRvXGBjbWRjXW5iVF1yR0JmX15maV1ae2NSVlx1W1tna2FWa2BgbmZmbHFocHZ4j3Rrjox1f3Z4fXeBg4F7dH2DiIiDb3GAdXF1foaCiY2Le3d/eIR8fYWHeId8fYF+hIB7fnN2eIuOn42Je4p3dYN6Xn6Hmo15h4R0hoeEd4l6Ym5sW2JbW2FVanRkYFtob3Bmh3JhcWZXXGNrf3zKzoa5omtubottcoVyfoWLf3uShXp5dHl1dXtqbHZjhHaSgnZvZ198gXmLiGVxgGpqcWNYbHuGnImDgnKXlHZ9e22HcICJioZwlo6QiIWLhHt5f3JycH5naHJjbnhxamxxd318el1leoB3aXV5ZoJ2Z3SHi42UfXKGam9+gHhte1xYcH1sc36Je4Ftbol/cHZmdn6AfoB1enB5c4V7eHFlcmBti4Frc1hrX3ldSXBsTldWX1RVfGtiT1R2c1FSVFZdYnSGaVxga2pmYlluYVhjcEdBaF1gZl9cVnxeT1ZlcFlbamhdWGdhX3Jma2hxZ3Fzd4d5bpWKdH97d355g4eAdXN/hoWOg3Bwe3h3dXmHhoeMhnp8f3WLfn2GhISHf35+fYd/fHh2eXaRk59+jX2LbnWAeWSEiJeGc5KKb4WFgnqDdWRuallfW11dVWhzZWBZZHJyZ4FyYWtkV1pfaX94vq56n7duYnSHaXR8cnqEh3t+jYB3d3N3b3t2ZWpvYId1joFzamJefnh4ioJlcH1oa2taVm94i6SBhX9xmZJxf3d0gWx/gY+GcpOHjIeEiYV9eXVzb2l5YWptYW12amdra3l3endbZ358eGVzfm6EdGZ2ho2GlX9vi2ZreoJ0bHRiW216anN6inqBZXSGfW1wZ3R+d3x+cHpqeXqAeHdvZWxhbIl9bG5Wa2F4VkxrbE9ST2lOWX1nYk9VdmxNUVRVXmZ2hGdeYXBoZ2FXaV1ca2lKRGtaYmRWWFV5Wk5XbmpZXWxlXVplY151Zm1kcmZzcHSBeHCZhXZ/f3h/fIWHfXV0goeAlYJuc3l7e3NzhYeIiIR5gX12j399hImOg4GDe36Lg3t3fHd2mp2XeoqDh2p2fnxshIaUgHKPgnGFgn6CgHBmbGdXXVtcW1RlcGVfWGNydWl1cGRlYldbW2h/cG9yf3OJZGV5f2p0dnR0hIV4gYR6d3N1bmt6cGFoa2eGdI2DbWZeX3xveol9aG13ZmpkVldycI6nfYR8dpaQc3tye3lsenqPg3aWe4eGg4eEfXVxc21odV1taV9tdWRnZml6b3tyWWeBdnVocIB4gnZid4WLfJSBbotqbXuAcGVyZV9reGZxdYl6fWF1g3Zpa3F0em94d3F7ZX1+fnd1bmNlYWyGfG1rVmpjclRMamtQTE5wSF57ZmJOVnVlS09TV2Brd35mXWdzaWVfVmJXYnBdS0trWGRhVVRVc1ZNWXZlWl9sYFxbY2Vfd2dtYnBpdG9xfnV0mYF3f4B4gH+GhHp9doKDfpiFbnJ0fHp0cYWFj4KAeot1dJCAfYGUjoCFhHx+jIZ6foF2e6OlinmJhoVsdX17dYSDjXpvhXN6hX2ChHVuamllVl1bW1pTY25lW1hidHtqaG1oYGFXX1ppf2lsb39nbGFpenprdHV0b4aCe4F9dnVuemhqeWpfZW5pgXeQhGdlWGJ3aX6GeW5pb2ZmXVVYb2iPqHeBenyQjnh1b31ucnR4jn53lHSFgoCGiHZqc3ZoaW9cbWVebnNfZ2JqeGh7bVttg3N0am+Afnl3YXaFhHiPhXOIcW95f3FicGhbbXZjcHKHendhcoBvZ2l4c3Frd3ZzdWKCen12dW9jY2JtfHxra1VpYmdUTG1oUEdSbEVheGZiTVRzXkpNVVllbHh7Zl9tcWpjXFZfVW5vV0pTaFhnXlhNVWxUS1x6X1xfa11dW2JlYHpobGFvb3Zub3d1epd9d4CBeYCAh4Z6eXqDfYGThHF0dH56dnSFiJB9gXyQbHOVgXuCn4V/h32AfoaCgIp7doSsn396iIiEbHKCenaBgYJ0bodvfYB0ioBqb25kZFhfWlpaVWJqZ1xaX3WCaV5tbFxhVltca4FlcnR8aWpdbHh3aHV3cm6HfH5+enZzbHpoaXhnXWRzaHp3koFjY1Rkb2eBhHZ2ZmhpYVdWWWhkkKhvf3iAi456cG97ZnhueYp6do5xg31/f4ZuZHdzZGlpXWxiXnBvW2dfbXVlemhddIBvcmtxe351dmJ1hYt7h4eAf3dydX5zYHBsWHByYXBwg3tzY3GAa2Bsem9paHl3c3Bkg3R5eXRxZGFkbXJ+amxUaV5fVUx0Y1FHV2JHY3dmYUxUcVlLTFhYZ2x2emVlbXFmY1pYXVh2ZlRKXGNYaVhYSFdlUUlieFtdX21bXl1iY16AaWpgbnR4bW9udoOXeXKBgH1/iYyGfnZ2hniGjH10dXWBeXp6goyOfX+EiWp0loF7ip19foV5gHt+fIaJc3GProx7e4eQfmZxiHp0fn12cm+GbHt+bZB6Y3BvYmVdZVZaWVdjZmtgXV1zhmlYcG1bXldaXGx7Y3F3dWxiW250dWh1dnFthXl/gXl3bm90ZWh0ZVtndWZ2dpJ6YF1TZWZqgoFzfGFjaVxUWF5iZJClaXl0goWQeGxueGZ3bHuDeXSIcoB4fHiAaWZ3bWBoYV9rYF51a1lmXW9vYnplW3d8a25ucHh5dHRlc4OSf4eCiHp2b3F8cWF3Y1lub2BvcIB7cmVxgGRebXVpY2Z3eXJrbYB0cntycWFeZW1ufWVpVGhZWlVOeWBSS1pZSGJ1ZGFKVW5USkxaVmlscntjbGxzY2FZWlthd1xUS2NdWWpTVkdZYU5IanZYX2FtW1tfYmNdhWloYW53eWxvanaBkHhtgn6AgZKIhIF2dYl0i4Z0cXZ2gXd8fX6Mj4F/k35weJaDfZmSeYCAeHl+f3OIhHNwmaJ7e3+JlnhkdYl5c3l2a3Rwf2x5fHCRcl5wb2BnYmxUW1pXaWRtZlxccolmUnJtW1lYV2BrdmNqdWppX1ttdHJtdHR0a4Z9f4B8d29ubGRpcWNba3JkdHaOc1xXU2RgcX9+cYFcYmNeU1phXGSTn2VycYSDkHNranhsbm95eXpxgHZ/cnp6e2RmdmheY1thaFxed2lXYl5waGF3YVt7dmpqcm94dHN0aHGClYOGfoR1cmpwe2xldldbaWxhcHF/eXNlb35aYG9xYl5pb3xranJ9cW92aW9gW2RrbHthZ1RnVVhSUXdcU1BZUkhjc2JhR1ZsUUlQWlZrbGt8ZW1vcWFbWlhZbHBXU09mV1dpU1RGWlxPSXJ1WGBkbWNYYGFiXYxqZGRteXhrb2l1eYV7a4R9gISZfYKEeX2IbY+GcW92en10gYJ9i4+Dgpd0eIKThoGfiXWBf4F0f4Jwh4J1b6KXc3uGjId7ZneLb258cGd4cXtsc3ZzjWtedG5hZ2ZrU15cVmhibGxbXHGMZE5vbVxWV1VmaXNoY3RlZV1ab3ZvcXV1emyIfYB9iHeQc2Nla29hXW5tZHN4iGtaVFZiY3d8fHCEXGNfY1RaYFpjl5VjbnCDhIlyamd5bmVydXF6a3lzdW96fnZfZ3NkXF9XYmRZYXVmVl9gbWRhcV1dfm9oaXNxdHF1dmtthZOBiXuFcXFmbntvcG5SWmVpZHByf3VzYmx1VWJxa1tebmR7ZGt0fHFxcWlsX1hkaWp4XmZUZVVWUFVvWFFXVFBIZXJfYUZYa09JWFRWbmlkfGlreGthV1xVW3RkU1JWaFFZZ1RTSFpbUE54d1tfZm1qWmJgX16PbmJna3l2bm5pdnZ+fm2EgH6Gl3t/h4GJfmuTiHJndIB7dX+DfomOf4uTc32KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYx3eG56jWBlfXFnenR5bG1xd4NnZHxtY2ZnaFNgX1VnYGxvXF5ujmhNaWxgVVZTbmZza2Z4ZGVdWnF1bnN7eHNuiXuBd5x7emxiZWxtXmBvamVxeX9nWlZYX2x4e3pvg19iXmhWWWBYZJyIYmtxgYZ8d2tqdmxbdXBqeWl1cm1ve4BzWGtvX1leV2NkWGVxY1RfYmlhYmxaYH5rZmtzdW9teHZraIWMf4l6h21wZW97bHFsYlhfZ2ducn9zcl5pbFNlcGRVYm1heGFvdHp0am5ral9YYGZodV1kVmJWU09ZZ1NPXU9PSGVvXWNHWmpOSl9LWG1lX3hobn5kYFVeVF10W1RTYGZOXWJVU0pcWlFZdXZdX2ZtaFhjYVtejnFjaGp4cnNtZ3ZzeYNzgoN7iI5+fIqIjnlukIp0bHOCdH9/iIWHkYSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY2Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6OjY2NjY2NjY2NjY2NjY2NjY2Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCS5KamZmZmZmeoKCgoKCjgGRnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTM/k56cnJybm6KkpKSkpKd8XV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaNjo6Ojo6Oj4+Pj4+Pj4uIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p8fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk5GLkYyOj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyMjI2NjY2MjIyMjIyMjI2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoWOioaNhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCQiI6KhY6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkJCIjYyGjIiIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x8fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMkIiLh4aIhYmPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Pi42Ki42Kjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5eXt9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTk5OTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkpGRkpKTioeUkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkoyLkpGRkpF3hpORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCRiXKKkpCSgHOJkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pc3CMkIx0d4iQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo93a3qQhnR3h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjntla4Z+cXWGjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLiouHaF5oZWdjboKFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d29ecmxcaW1nZWhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoXmh1bF1tdW5mYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpdZ29tX2tzdWxZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVZiaG1zcHBzblJRVFBQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OVGFlZW5tbWloVE1OT1BQT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0RDRkxaaGxobWxtaWdjW1VST05PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVFUFRVWmRrbWdsbGtqamloaWdbTEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7PkJKWWNobGtvbG1samlqa2lfVElFRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7OzpGTk1hbXBwdHBqa2lYS0JFRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs9OztLYG17c2pbRz1AQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5Ojk4QmptSDk3PDw9QEFAPTs7Pjw9PEBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT08PTw7R1w5PDw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9APFxuQD5ERT8+QTxFXj0+PTs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdIODs6PT1BPEtjPTw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw9PUlMRkZ1d003ODg6Oz4+V2pBOzw8Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4OAenx3Vjw9Pz09PkZpdEw6PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoKEg4KDgHxdPkBDQEA9SnJ7WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2EdUxBQ0VAPz5Ze4BdP0NFSUpJSU1NS0VDRkdHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRENXdYaHh35YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSExNTE1OTElHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINWbISHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQENDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpUgYOEhIKChYaGg4KGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47ODs/QUJAQUNDQkBBQUREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1NTc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47PD1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaEhIF+gYODg4KDhIaJioyMi4uJiouMiVQ6ODY1Njc2NjY1Njc3MzU2ODo4NzY1NjU2NzY3Njg6Njc4ODk7NzU3ODk3OTc3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JlhYOBgIKDg4ODg4WJi4qJiYqKioqLiYqKgUc2NzY0Njg4NzQ1Nzg1Njc2OTk3NzY3NjU6OTo6Ojs3OTg5ODc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXZ6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhIWGiYqKiIeIiIiKioyKiYmMej45ODg7PD4+OTo6Ozg5Ozk6Ozo6OTs6OT09PT47Ozw9Oj07OTs7PDs8PDk5PDg6Ojo6OTk5PD88PEFCRElKTUtJS0xXb3JzdXN2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVCQUBCPkBCQUA+PT4+QD8/P0A/Pz09P0I/QUE/QD89QEBAPj9BPT48Ozo7OTk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lMSkpGR0dERkdHRUJBQENFQ0NBQkNCP0BESERDRUNFRUFGRUZERUZEQEI+PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyLioqIVkhNTE5MTkpJS0lJSkpJRUNERkdGRENFRkRCSElLSEdHRkhHRUpJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0pZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2NjYyLiox/UE5QTkxPTEpMSklJSEpGREZISElFRUhGRkVMTE1JSkdGSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7PD06PkA+P0BDRklKUV+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjY2MjIuLio1yTlJQTk1NTExKSEdFSUlFSkhHSkpJSkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dIR0NCQUNVbnB1d3d5enh5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4tfU1NRTk9NS0pHRUJHSkdMSkZLTktLSkpLTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRkZJRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uKjIyMjIuLjXxYV1NTVVNOTEtKREVGS09OT1dVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkVDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQkdWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hYV2thRVJRUVBJOztSU1JgdVxVVlRWWVlSWFhSWmZQVVdaXVJUV1FPTVJRUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0ZGRT8/QUFFQUNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh21cZFU6WFhYU1E/QFZVWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6eXp7enp8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKi3lucFlaW1tSU1JWVlRbWnWDWVV9kGBcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeEin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRFSUVDPlRkVX9SUVFOS1FUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXV1c3N3enp7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11MRD9DQ0NDQj9EUEJDQEM9Q0lHVkBITkxHXWlQSEZORkRFRklHSENESEdIS0dEQkFEQE9RTVJkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn+DgIODgoCCgIKBgmtNRz9AOzs+QEA/Pz5rUEthRUZISUVCP0dMTUdNUlVJQkU/Pzw9PD09Pz0/QUNDQD88PUI+Sk5HVW50dHVzdHZ4enx7fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQkJEQlxdT3tOT05OS0xNT09QTEtNV01IR0BCPDk3NzU5OT07Ozs4OTg5PzxCSD9cc3R1dnV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZHSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FWUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aWE1LVFRTUFFVT0xSU1RXWFRUWFFMV1laVlhYVlhZXVdXWGhza11WYXNrYmFfXmRhX15ZVFFOTk5MSUhKS0lJRkNRUFNbV1RUTlFTWVNcZVVPU1NRTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTpHbnF0d3h5e3t8fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcG5tZF1fX1lXT1BYVlZTVFZPT1RWWFhZU1VUTEtUVlVVVVdQU1VXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTE9SUk9NTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz49Ojc4NzY1OTk2NzY3NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF1SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpQUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMSk9SUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0lGTE1QTUcvRV9SPjM/PmpvYVJSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR1eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nU1BTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTUxLSTw5ODc7PkA+PD1BQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFFSYVxRUFJPU05PUExMT01LTUxNT05bV0tNUU9HSUhDSEpMTEpGRkZEP0JDPjxCRz9CP0FkcHN3enp6e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSEREPTk3Nzk/Qj47P0JAQD5BREpFQ0dHSUdJRUJCPz49Q0JBR0lFTk9iZVFNT05XS0tNS0xNTU1MS09OU2ROSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR01NSk1QTVBPSEpEP0E9OTg6Oj9CPzxAQkFBREVHS0ZDSElHR0hDQz9CPz9AQT5ERUNMTlJUTEpJTVRGSUlKTEpLTElKTE1PUFJQS0dDTEdDQkpKTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFHS0RHSEhHSktJSktER0I9Pj06OTo7QUI/PUJCQ0NHRklLSkRJSUZHR0NDO0FAQj5AQENFRElNUEhIS0dIS0RISUxNSEpMSElKTEtNXVJISERORkFESkpNTVBNS01KS0ZHR0pNTlFOTGJtaXZ2d3p5fHp9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLQ0ZFR0VGRkdFR0JDQD48PTk6OjtAQ0A+QkNFRUlFSUpMRklJR0ZGREI7QUNDPkBDQ0NER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lHRU5IQ0dNS01MT01NTk1LSEhJT1JRUk5SZmZmcW9zeHV7enxsaGpvZWtxbHNwZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQ0NCRUBEQj5APjo7Oz06PT5DQT5BQ0VGSkZJSExIR0dHRkVDQD1ERUI+QUNDQ0RHSElHTVBKRkZHS05PS0ZISUZFREVJSkhKSUZIUEtESU1LT01PTk9QTkpKSUxSVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSEVFSENCQUJEPUJBPkE9OTo9Pzo9PkBCPkBCREdKRUlGSUhGRkdFQ0JBQUZGQ0JCQkRFRUdHSUZMUUxJT0pKTExJR0hFRkVEQ0lJSEtKR0tSTUJOT01RTk9PTU5PS0tLT1VXVlVTWF9eXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJBREQ8QUBAQzw4Oj0+OT88P0JAQEBERkhFSUZGSEdGRkRDRUNESUVDR0VCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUlJS01LT1NORFFSUFFRTlBNTlBNTE1TV1ZYV1VYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW55TUhHSEhCQkJGRDw/QkJEPDc6Pj46PjpAQj4/P0JFRkRHREVIRkRFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR01LTEtISkxGSUlLSEVLS0xNTk9SVFBIU1VTUFNPUU1OUU5NUFdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnaWhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSUhHSUNBQ0hFPEBFQkU8ODo+Pj08PEFCPD8+QUJGQ0VDQ0hFQ0VFRkdHR0lGR0tIREhIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05PUlVWT0tVV1NRU1FSTE9RUE9UWVpZXFpZW15eXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdE1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkE8QD5BQUZDRUVESUVGRUdFSEhGSEhJS0pGSkhIS0hGRkxJSEhKR0xMTUxMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1JSUFZbW11eW1xeX19hYGFkXWNgZWZgZWhqY3NzZmpnZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SkpMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRUZJRklGRkRJSUdJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QTE9QUlRYVk1OVFZUUlJRUExOVFNSV1teXl9dXWBfYGFhYGFjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdESElHSEpGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNQV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUVDSUpKSUlLR0VLSkdISklJS0hKSk5MTktJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHREVKRUVKTU1LTExHR01JR0pLSEtLSUtLTkxOTExMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1KcXl2a2Jga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEQEJCQD5DRkdCRkNGRUZFRENISEdERUtIR0xNTkxNTUZKTkhKS0pJTEpKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcF1fcmtxalV1eXhwY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0dFRUVCQkI+QEBGR0JHRElFRUVCRklISEVHS0pHTU1OS01OR0xOSUxLSUpNSUpJSktPUE9OTUtOTkxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SExGSURFRUNBQj1CQUNHREhHTEhFQ0NIS0hIRkpMTEZOTExTUkxHTE1ITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFAPkREQkdESElNSUZDRkpMSUdGSk1MRU9KS1dSS0dLS0pOSUhKTElLSklISk1NTU1JS0tLU2tjW2leX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERURGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElHS0tLTEdIS0tMTU1MSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xVWVtdWF1cXGNmYWFlYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDQENIREZHQ0lLTEhGREdLTEhER0lQS0xPS0xXTElFRUhJSkhJS0lMSkhGR0dJR0hJRUZMSUpMT0xJUFxXXlBcW2BeTVhZU1xcYl5NWFpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNFTE1CRENCRUlFR0dGS0pLSEVFSkpLRkVISFBKTU1KTVJJR0VBSEZKSUtMSkxKSEZESUZERkdFRUpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfY1tgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNHSEZIR0hLSUlJREZLS0tFRklKTktOTEhMTkdIRT5HR0xJS0xLS0tJR0RJRENERUJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVVVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFR0lGR0hIRkZKR0hHSEtJTERES0pNTUxMSEpKSEpGP0dHTktLS01LS0tJRkdDREBEQUhJQj9JSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUltXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGREZLSkZGRkhHRklGRkZJTEpORkRLS0xOSkxJS0pISUZCSEhRTUtLT0xKS0lHR0VEP0VDSEhBQkdHRVRdWV5YX1lfW11VWFhPXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBSEZER01SSENRSkZISEhFRktKTVBFRklKS05MTElMTEhJR0RIS1FOTU1QTExKS0hJQ0RBRURIR0JBR0VEV1VFXFRdU1ZfWE9UVU5aWk1JSlRgYVtfWF5eYV1PWWFcYGBfYmNiXWFiV19fVFBOT09XUVxbW1xcXl9iZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUpLTkxMTE1LSkpHRUpOUVFOT09NTkxNSEtBREFDREZEQ0JFRkJNSEJLS09PTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xQU1JVWllXWVhYZFdPU1RQUE5NT1RSWlhYWl1cYGFkZWNnY2tscHNyenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFSEZHREtNXUxHR1hMR0hKSEdNTFFRSExLS0tOTVVOT0tLS0dHS1BTU05QT05PTk5HS0ZgRURfTEVmZEVNW0leW3JtT01VbVlMRFBgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalJWVVRbXFtgYGFiYmJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRkdGSEVFS09TSUpGYFNISk9KSU9NUlFLTUxMT1JVUk9PSUtNR0hNUVtZT1BQTk9PT0lKUX9RSXxZWXF0WVFtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZWWH9qdHV1X192X1hhW1tmW19gYWFhXWBiZ21wbGBwd3R4gYGCg4OCf31/gHZ4emx2fnR4fYB8foCBgoR8gIN6f4F/fnd3TkpFSE1OQkRMTEZJTEVRVkxLTklLUlhXUU1PT01RVE5PUVBLS05HTVBTW1pTUVJPUFBQSkhaeF1UeGVoWlNUUnZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zcnt8b354boByX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnN8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpLR0pQT01NSk5WXllVTFFTTllaTVNTUk5LT0hRUlRZV1ZQVFBQUFFLSGd4bGN4cm1bS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/b2hvWXZ2anV1cIFgcmZ9aWx4fG9eX19iYVtdYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncXl7c3J2eX6Bc3V6bnx9eXdybk5LU3VOQ0JGUFBISktJS1BPT09NT1pgWldLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txbm1qcGFjZmNvd3hvbXBzeX5ucXBqe3p0c29tTExbVkhHRUdSUElMTUpLUFFQUFBQV1xYVU1VWVVlWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9bcHp7XmB6c2Nyb3hxaGR9aXJ8XlRMbGB2dWtpdXt7bX54a3xwXF5fYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ta21PSEtLSUlISFFQTE5PTEtSUlJPU1JXUlZUUFdbVlZUVFRhX1BOTUtUU1RRVVZOTkxNT1BKSFFOUFVMS0xTVFNTVFBWVVFRTlFRWFlSTlBVVFhYWFtaVVJTV1tXWFdaT1NVV1hYUl5ZV15WVFBZUlZXV1dYXltncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xNTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09LTVZUUU5VU05PTUxRUEtKUlFLUU1LS1BSVVNRUlNTSUhMTk9RUlFRUVRWUlhXXFdTU1BSVFVWU1pRTlNSWFZUWVZUWlZUUlVUVFVXWFZdWV5gXVxaWlxcX2NbXWJjZGZkZGRhWWBhY2FiaGhpbWJhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLS09PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEpOV1NQTlVQTlFOTFNQTE9VU05RTk1OUVVRVVFSVFVOS01PUVRUUlJRVldUWVpbWVNVUlRXV1dZW1RQVFVYVVVaVVdaVlNSV1ZVV1tYWl9cVVheXF5dW11gYV5bYmJjZ2ZlZGJYX2FiXWBnZGZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FbWlhXWFtZWFlWXGpkVlhZWldWU1NPSk5WVFBPVFBQUE5MUVFQUlhUUVFPTU9TVk9XUlRVVU9OTVFTVVVUVFJUV1ZaXVxaVlZRUVZYVltbV1FUV1ZWVllUWFhWU1JZV1ZaXVldX15VXl1eYFxbX19fX1piYmRoZ2RkYlhhYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xYWltkcW1oZF9bWVZVV1FMTVZTTU5ST1FST0xQU1JVWlVTUFBNUFhXUldTU1NYTU9PUVRYVlVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpYV1xeWl5fYFVhXGFhXWBiX11gXWNgY2doZGZgWWNgYV9fZWRfYGNbWlxbXFlaWVhXXFlcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRST1VUU1BXXFxcWF5cXlZcXmpxd3mAY1xbVVVYUU1PVlNOUVFQUlRSS1FUVFlaV1VPUk9TWFdUU1VSUlpPUFNSVltWVldTVlpYXV5bW15WU05UVVZcXFZSVFZWWFlTVFlcVVNTXVhaXV5cYGBgVmFbY2JdYWNfXGJhYl9jZmlkZl5bZGBhYGFjZF9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVFJRV1JUUFteXl1bYFxgVVxdaGpyfXNsZ1xUV1dRTlJaU1JRVFJUVVRLUlZWW1paU09TUVZWVlRPV1JTWlJUVFRYXVdYWFNYXFheXVlaXVRVTlZXV15bWFJVVVlZWVVXWVxVVFdeWV1dYF1iYl5ZX1tlYV9kZF5eY2NhXmVmaWRmXV1kYWBgYWJkYGJeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFtUVVZWVFRUXl5gXl5iXGBVXV5ia3l0bH1rWlVZVVFRU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1taVFVWWllaV1haXFZVWl5cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXFVWWVdXVVhfX2FhYGNdX1RdX2JlZXWBemhYWVlTVVNWXFhXV1ZWV11YT1VdWl5dXFRSV1NXVlVTVFhSU1ZUWFdYXV5YXVtWXV9YX19YXFZRWVRZWlphWVxWV1hbWltZWVpbWFZdX2BfY2JhZGRcYlxgZmFkZmReX2RiYltmY2hlY2ZgZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRZVlNcVFZXWVZWXGBhYmNhY15fVltgZGFfenVvaFlcWlVXVFdbWllcWVhZYFdQVl5cYGBcVFRYUFVXVlRWV1JTVVdaWltfXlpfXFZfX1ldXlleVVNZV1lZXWJaXlZXW1xbXFtbWltZWV9fYGBkYmNkZWJkWWFmY2ZmZV5hYmBjXmJjaWRjZ19nXmFiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNPVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheW11bVldYWVxcXF9bWVtiVlRYXl1hY1xSVllQV1ZXV1dWU1VUWFxcXmBgXWBcV2FeW15cW15YVlhYW1tfYFxfWFlcXF1eXlxbXVhbYGFeYGRjZGVlZmJYY2VkaGdkXmNgYGVjXWVpZGVpX2ZdY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWlhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXlldXllYVVdbXGBeXV9aWl5dXl5hXVxbWlxgYl9iZGNlZmVmYlpkZmZpZ2NfY15hZmRaaWljZmpjZV5iYmNhYGBfXV1aWFxZWVhYWlhXWltaWVdYVVVbXV1dYGBiYnhLWFdbWVddW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpiZWNhUlxaT1hYWltbWldaWWBdYGJiYGFjX1xiXV9dW15eWVlUWF1eX2BfYFxbXl5gYmNdXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGNnYFxpaWJoamVkYGJhY2FfYF9dXVxZXFlYV1hZWFdcWlpXV1hPWFpdYWNmZnJrf0pZV1xaWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiY2JcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxeXl5aWFZbX15dYWFgXltgYWJlY19dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBbZWdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxbW1ZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t8fHx8e3x7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t8fHx8fHx8fX19fX18fXx7enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29vb3l+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKgkU+Pz8/P0AwKisrKyoijNvS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29ueYB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjI2DOjIzMzMzNCEaGxsbGxCP7+Xl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXp5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx2dXV1dXV1dHNzc3Nzc32FhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnd6eHp5eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3x8fHx8fHx8fX19fX19e3p6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eH15e316fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgYKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHl7fnl8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8eXl8enx7d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHx6e3x7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4enl6enl7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgYGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHNzcnFxcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycXBwcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJycnNzcnFven9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXl7cHJxcHGXg25wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHJxfZ56cHFvhqB8b3BwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFynZ92cHScn31vcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcnCXrJBuf6OffnBxcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycI6xqHqIpqB9cHFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3NznLOmpKexonZzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHh3d4GrnaG2pqKnhHp5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx8fHx7kqaZo7Ghm6SUent6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2VnoqUrJ6en5qAf399fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgJSjnJScm5eOm4N/gYB+f39/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f3+AgYB+mrKpo5ufn6WnkX18fX6Af35+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f4CBhJWvpp6ln5+epKitn5GHgX+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KGiZamsamem6Wfnp+gn6OoqKOXh4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODg4WKmaOfmZiYnZ2eoZ+bnJ2Zk4yFg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCBh4yRlZiZjZWdm5iUjYeGhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGBgYOLlpyHjpuajIeGiIiIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SEgoGEi4qSjoWEg4OFhYWDhISFhYOBgoB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKBgYGAiJGCgoOBgoCAgH+BgICAf4B/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAgICJkYCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/gIyVgoKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmIqDhYSEhIKAkpqGgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYycjYCCgYGCgoWUk4yBgoGCg4OBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZeMgIOBgYGAj5OMkIGCgYKCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4t+hISDhIKDg4KOiYWMgoKDgoKCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf359fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkZKMioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiZGDhIuFgoGBfn2Bh4aDgH5+f39/fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhYWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYSFhoaGhYWFhoaHh4aGhYaFhYaHh4eIhoeHhoaGh4eHhoaHh4aGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aHhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhYSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGCgoGBgYGAf4B/f357eoCGh4iKiomJiYiJiYmJiouKiIiIiYmLi4qKiIeHiIiJh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fnx7fIOHiYuLioqJiIiKiYiJi4qJiYiIiIqKiYuJh4aGhoeFhoiIiYiGhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiYWFhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJh4eGiIeGiYmDg4SDhYSEhYWHiIiGhYOCgoOFh4aHhoaEgoKDhIKDhISCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGhoaEg4GCg4SFhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoGBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYWEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhISFhYeHh4eGgIGBhYODhIWEh4iFgoCAgIF/f4CDg4ODg4KCgH19f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIGCgoCAgICAgYGBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgIGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goODgoOCg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f4CAfn2Af36AgIF/gICBf3+AgIF+fX1/gIF/f35/gICAgICAgH+Agn+AgoGBg4GBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foCDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/f39/fn58f39+f4B/fn9/gH+BgH9+fX5/f359fH5/gH5+fn9/gH9/f3+Af39/fn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/fn1+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gIB/f35+f36AgH9+f3+Af4KAf3x+fn9+fn18f3+Af35+f3+Af39+f3+AgH59gH9/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXh9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+f36BgIGBf39/f4CAgH9/f4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOAgoOBgIKAgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqUkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoaEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl4eHyCg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoGCgoCAgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4eEhoaGhYaGh4eGh4eIh4eHhn99gICAgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgYGCgYOGiIyFg4KCgYSChIOCg4WEhIWDg4ODgoODgoKCgoODgoKRkIuIiIeJh4aGhIaFhYSEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gICAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXl5fIGBfoiWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYSDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eXp6e3x/gYOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WFhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp5ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fXx/gYB9ho+Bfn2Cfn9+gIJ8fIB/goCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMjI6OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fXx5ent7eHh5e3t6fIKAgX5/gHx+fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoGBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYODf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fXx+f4CBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f36LhIGHfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX6Afn9+hJKNjYyPjYyKhoSFhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen5+fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fX17fHx8e3t6fX+AgIODgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx+gIKBgICAfX19fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISDgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fH18fH18fX57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko+MiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn2AgIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fX19fXx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiYyRkI6KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fn1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt6e3t5enl5eXt+f4ODhIeJioiJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/gICBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18fn58fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiPjouLh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Afn19fHx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX19gIOAiY6LjIiFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOBgICAgoF/gIGEgX5+gH9+foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx7fHt7e3x7fHx8fXyKi4mIhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgYCAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt7foqHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+fn+AfX6AfX19foB/f4GAgYGAgICBgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISFg4GCgYGCgYCAgoKDgYKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhIODhISDgYB/gH+AgX59fX5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn59f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OEhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf3+Af4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af398fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4GDgoOAf3+BgYCCgYGBgICBgICAf4CBgICCg4GBf4CEgH2BgoSAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhIKEhIWEhISBg4KBg4F/gIF+f4B+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgIGBgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgIF/f4GCgYB/fn+Bfn+AgoGAgYOChISGhIB+fnx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fXx+gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYCAf32Bf35+f39+fX1+gIGCgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgICAgIB8f3+Afn+BgH9/foF/fn9/fn19fH+AgICAfn9+fn99fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYl9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgYCAgYB+f35/f318fn2AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH17fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKAgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh6gYF4eXt8fH18fHt8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e49/d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3p4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+Af4CAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYKCg4CAgoGEg4OEgYGDgYKDgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58e318e31/eHd2eXl6fHx8fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYOCf4CAf4GDgoGAgYGAgH+BgYGBgIOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f316fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydG93cXd5c3d7hYKCg4ODhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYSBgoKBgoF+gICAgoGCgYGDgoCBgICAgoKBhIB+gYOBf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cXl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDg4KEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGCgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhICChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoGCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7fYF+fHl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgYKAgoB9gICBgoOCgoKChIKAgoKDhIKCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn+DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBgoOEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDg4KDg4OBhIOBg4OEhIOEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4SDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4KDgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+f31+goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fn9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYGAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29sd314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgX+BgoB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX16fXt8fXx/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SDhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4WDhISDgoF+f357fHt+e3x8fX9/fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9fn58fH59gH59f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYaGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoeFhISFhYOEh4aDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2Bf3x8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFhoeFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4SHg4SBgoSFg4GAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4SGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9f318fHx+fXx9fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH57e3t6e3x8fHt7e357fH17ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIh4iGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYOFgoN+gYKBf4OBf35+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8fImHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhISHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYWEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfH98fX1+fXt9fXx9eXp6eXt8fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SFhoaFhYaCg4OFgICBgICDgIOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoSFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhIWGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoWGhoOEg4aChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgYKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SChISAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1+f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFg4ODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fY2djY2NjY2NjY2dnZ2djX19fX19fX19bW1tbW1tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtBPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi3qaenp6enp6enp6enp6axvr29vb29vb28vLy8u7/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OjoIaEhISEhISEhISEhISClayqqqqqqqqqqampqaiw0tLS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PEJAODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpaKJh4eHh4eHh4eHh4eHhZetq6urq6urq6uqqqqpstLS0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDw+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamnkI6Ojo6OjY2NjY2NjYucsa+vr6+vr6+vr6+vrrbS0tLS0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tDQ0NDQz8/Pz8/Pz8/O0NPS0tLS0tLS0tLS09PS1dTU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7OztHUz8/R1NTTzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1tbW1tbW1tbW1tfW1tbW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztO7nc/SrYODlc/SpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK1lZu1ypq8uJm1s5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/Rn6CqsMSijICNxZ2XlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw5Nj9CP0I6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0cWHmrPAnois1rqXoZ2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Wp5m1u6erm6WymZavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P1aWZtMGgnZankJqEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX19jY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NalmbLWo7Srn3+gqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NDVpZqz1snYwZyAvK2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0Y/SEhHRUA8PD4+PD09PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPQ1aWZtMmNoZ+fmaiWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQzs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HH0tajmrPCpKqjocOgq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09HVtYLD2KmPkKzXwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw8P0dFR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dHC1NLVwb/W0tXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS1NLS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj0+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6Njk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9CR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2tvb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg1NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU5NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi3t7e4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo6Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsrK2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3uLe2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7a3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo5Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tLa2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKuopqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6efm5qboqCalpeVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5OSkZeanJqWl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlp6empqKenJ+hoJmRkpqWl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaWmp6alpaenpqWjoKChoJ+ak6avm5qZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqSlpKampqSko6KioZ6dmqOKh5ucmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqaupKSkpKKhoZ6bm5+gW4acmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKCqtLCio6KgnpybmpqpcFCLm5ucmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaGgq5OcrqCgnp2amZqimVNaj5ydnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCgoKOhaJesn52bmpucqnNWX4+enp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp6dqHRopKObm5ucn6FrYmKRnp2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZybmqeCbIGnm5ucnKKSbGRjjZ+cnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmZqmhHZwk5qbnJ2dgmplZYygnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJyZmJmZpo11fHyOmp2flnhmX2WNoZ2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZiZmZyVlJ17f5yioIaMf2BmkaCen56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmfqZyKa22uqqFnf4t6Z5efoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmXpqWIcF9qpJSYVmd7fXydnJuenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qal6mZZ0VIdJmDhU9FYHWAlJGNkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkJathD06PHiMdm5ROTVedoKHgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg36Yo1pebFB5oZaDU2NqRmd4gYKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+nYxZmKNvtryxvIJ5mn1OdX6Fjo2Lho2UkouQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhH+CfaB4jNzMs9axnri8ZWJyYWCIi46LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYx/iI2Mi4uIkoqaaLPJtMjUr666p3SLqWpYiIuKkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmRnqGdk5eboZqenKOjk2+pm5HCvraxmI13XcqaVYKPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6qps6CHkHmUrJSMj315cmednGN4naKknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipamnp6mqjnhXg417eoBwbmtzdnx9dqCpp6Cioq6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKaanaSmoqGpnnxoS2l0bnB4amhkamtueoSWpKOgoZ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioaOnoaaupqenr4RsYktdc25vd2diY2VfXmp0fo6boqGfnaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqmioKGoqa2ws7W8spZvZVxHVnZyc3xnYWRqWlpgY214f4qZoqKhopmWnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOrqqiutri8wcO9r5l7ZWRbQF1sbnh7a2FfZ1tYYF5hZnBzeYGToqidnqGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7O6xtDa1ca4qJZ9Z2JjVT1eamx2cXJkYmNZV1xfXV1haGprbnuSpa6npZmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1pdmtwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW90uDh0LqlkoNyYVlbW08/V3JpXltubF5dV1lYWlpYWVlbZHKGnbrIvrehp6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PDvMPIztTQwKN+YVVTVVhRRkmCbnqDf15WWFdcW11aV2B8nLK8wMbHt7e3qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwcXIyMW/xa2KZVZYVVFJa3WjrKNPVVxfYVxdbJCxxLy9rqmyt6u1sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH6Ef2pmaGFrbGdudXJydXFnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEJCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/xMPGxsCxlMTI0ruLZlVWUVZmoq6dTlZXWFtnh7O3rrCtsqaqqqqrrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhvemppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMS5tMC2s77GyLCAWlRTUJmxkUdPVllxjqa8sKWttLWsr6Wlo6ekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt3bmtpaHZaZ3J4c3lmZl5kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLFvri9wMLCw6FuVUqNtoVFS1p+oaKntLKtrLi1s6ypo6GtqaynrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXmpvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMe/xMfExMjLxqxzX3ZfS1eWt7nAvb65vLq8urysraapu7q5t7+ytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aWpqdG55bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxcXFw8bFyMzUzIZJTFegycHIzcbEwcTHwby+tLGwsMK+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGtqd2xpZnVvdGNdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPBwsbGxsrMe0eFzs3HzNDFtr+/wMC6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnY2pkYmttbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvr3BwL/Ax6VKn9LMxcnRwa+9vbi5u7u+t7Sxub6zvL6xubW4u7a8tLW5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjY2RqY2djW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Bu7/AvLvEvbrAxL+9vLi8wMWvT5nNxMDByb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7e4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWOu7+7w7W6x7e2ubu8uLm1usTIqlCRyb+/u8G+uca9wr+8xbi2t7S4tra7u7m2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZmVmcGpla2hYWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/FeazMvce3ubittrS3ubO1srrFyp5SiMq/v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfWtucWdxa3RmYm5gXFRIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrnaEvcjPwsC4rrW1u723ubG+w8eTWIPOw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGpudW94Y2diXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0ZlzdrDR0czKxLW6v8TIvr60vsC/gmZ4y8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4J0b2xsdGxsbl9jXmFiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysKHdXanzMzLzcrGwsPLzsG8uLy6sH13a7zIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWRbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u7rNvDvra+wL6+uqacqrO3w8Cme3l7nsTGy8jBw8DAycrBv7u5saORhXqvyMXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3h0aHBeXF9cWlFFRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFt22uzr22ucC8qn1uaG5tdIKXmXR6fpq+v8bAucC8vsXEvb24sq6kp5KSncrDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bXZ7cW9qXGBgWVNQQUZJR0tARUNIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbJ2grO9trXBpIZpWl5gTlNbXHB1eYSjuLfCurO7t7u9v7q7u6+iqK2epIG+xcO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d29yYV9mXVtVSj0/P0dHPUdDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmnhHiLobC1nGpmZ1ZZX0lJTVBUbnmJqbC3vrmytbK8uby2ub61lqq8q7F3rMrEwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXV3dHdybGBjYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/GqYd7doyhmF9TQ1lVSGJqVU9FSmOQpK6vtrq1tLKsvLm4tbjBvY2ivq+wdqfLwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZzbmNeZ1ldXVNPTkE+SkJASkpANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7SQgXmIkG5OSz9lWUJPeIGTaE1CXoSxtbO1srSvrLu6uLa5v8V3irSnnmaqv7i1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLavqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211amxdXGtVXVtQTkhER01CRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHxYRkFPh1hKSll4joNjQVSjubO0srCxrbC5uLa7t7u9kqOzrqR0rLCpq62ro6ihnZ2el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh1dG9lVWFkV11RT01IQElSRE1DPTg4NzU6Nzw+Ojs9ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmYmZVoTUBTeXFQSUlLaJyAWkVUr7uxrLOvrqyttraytLWuqaefmpuen6aonqCoqZ+hp5ablpeOnZSPkJaNl5ukqKCgoqKhpaWdo6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56em5mml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoYh4g3x2f3pjd2xuXVFpVVBPR1BNTENQUUA+Oz40OTo1Ozk9Ozo5PDk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3CqqW8Z0RTm39RWElLYUpWjmJlZIKvtaqytK6qq6+wsrOtpZ2Rl5OOl6CfoqCco6SfnqiUm5aXjJeRjZCXk5ido6qfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fH91dn1ua3tkaFZSZE5KSEdPU05LTkg8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCqxr/Kn09Bc5hzUG5KTGNmdXRgXGJzkbKvrrO1qqasq6KbmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpaqqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3l8ZXl5YGJTVmFISUpLU1RJU1FNOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpcbGjFdTSmakWmZ9b3JbUWtjXGZiYGyRtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWlyd3VwY3d2WFdjYGRpWlpXZ62urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2orKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7a4s7itsrSkoJ2loKyhoaKhoJqYlpWfm5uYpaGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCgH14dmp3dV5tW1JhSVJVSEZVV0pDTUc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCkf2+CcGBjWExbUlpMTFFZUkhOTkiZrKqppJ+fmZKSlJiYlpaVjIiLjpWdnJ2dnpeemaafoKilsaqnrqOrrrawtLKxrra4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm4vK+zsLXCvLe+s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21obVxYXENXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOenIliV15lYFdNUUc9PkBDRD8+QlJ4qa2pqqWfnp+io52enZqcm5STlZSenZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a7u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6qzraqztK+zrqqvo52sqLaxraOwpqCjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJra3VycWhWXFFGVUhESlBJP0VBNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFFGRDtDP0Y8Pjk2Tn6qs6ejo6KgnqWrpp6YnJSRmZ2ZlYyKhoiGeG2IoKSiq6y0vLbDvb6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3w8rKw8HHv7q0uru1u7ewtrKqurKuu7i/u7qruK2rqri7tbyurrijpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrZGlveGtlWVtGS0xFRFRNRUNFNzo/OjU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz49Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9cmlhV05FPklafG9hQT1cjq6soJmbm56emZeXmJKNj5eXk46NkIyCg4J3cnFtcI+mra60ucW7zcfLvsHMzc3Mx8nRzMzMx8nFxszQ0tXO08m9wL/Du8bFyMXR083U0NPTzMrCxcbGysjPwMnRzMfGyMbCvMPBv7+/tr6zrb/Aw8PHxcfEr7+5sri8xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXRzZWJncm9mXlpaQ05MREZQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E/PEA/Pjk7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaWZcVElEQD9Lhp6kmIOgsq2jnpyfmpiXlJKUlpGQj4yIhIOIh4OAgYGAeXFyb2x5pLa6ub7LwdPR08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fS19LV1tPUyMzHzM3K083O083GycrKwsbMx8nJxr/Ds7PIxcvLy8/Hyr++v73BxsXNzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuWkIyGkYuAe3J1dmdjZ3ZqZFZXUURORkBJUUM+Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2FTTEpEQz9DUrDSvbKvppycnKCkoZ2alJOVlIl9eHFrZWJocm9xe4WKgHVwbnF0cIWzw77F0dDX1tXS1s3U1tfU09HT1NTTz9LE0NPW2NXW0svJztHLxs3RytLV1tnW19PX2M7Sys/RzM/QzNPQwMnIysTMzMzPz8XHyLbAy8DSzczQxsrJwMTDyM7N0NHPzcvIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYGVyY11SXElKR0FFSUo+O0E4PTU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFZSUBBREFGUXayr6aalJefnJqgoJ6bnJqViXdpY2FfX2BfXl9fXWFsdXNwcG9scnF1ksTIx9TW19fW09bQ1dTa1NTOz9XU1NHRzNHO09fW09XQz9LT0cnT0cjQ2NfY0djS19nU1czPz8rN0svP0cDGw8jGz87R0dLIzM3Ay83G08/MzsjEy8fHyczK1NTR1c/SzNPCucWxpai1rqebqKulnbKosLOtrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYmNpbV9WUF9KSkNGQ1JNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu32NTV2dnRztC/vMzJtr6upqqooaOrZUM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cWVjYl9fYV9eYWBfYGBfYGVtcHBua29yd3eczMHT1dPY2NbZ0dLS18/TzsvSzdXU0cvPzdPW0tHVzc/V1dHF0dTK0NTV1s7T0djX19jLyM7Eyc/MyszAysDJys7Oz8vQzs7Mz8/IzNDQy87Lw8rHyc3KzNLTzdPS0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksXpIRkI7V42hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3O1MzO0s3L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXNwsjKw8zExsnKy8/Lzs3QztPMxsnQzcjHy8XHwsbKzM3Q0sfQz87OzNDFx8G4ub3Dw73DuLKyvrG7w8O1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWdgYHFoWVhoVk1HTElQUUI7Qz47Njg6ODo6NTc9PUA7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzs8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfDuMrV1tna29jMzM/I1tXEwrWvtKifrZd4bHBxeY+ajYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNhYF9fYGFhYF9dW11ncnJwcnNxbXJ5pcfTz8vQ0NPUysXJycbGv8PFz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svQz8a6xL/Gyr3DyMnOxcPHwMfNyMTMy8zPyMTE0MnGwsbJxb/Bx8zLzM/Cy8zJx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG90ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7uto7Z+aIOFpKuTjY2Wj4WDg4OBfYSEfnNfW15eXmBeYGNkY19dXV5fYGBfW1pcYGxycW9va2xvb3250cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIys3JxMLLycHBy9DFy8i/ucK7xse+wMbPy8TAw7vJx8m8ycfFysC+wsvGxcS+xr29wcPFzMXGvMDJw8XH0sXByb/KycbIxtHDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdGZpWmFubVpcWFJETEZCR0VMREZTQDU0MzM1PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1drY2c/L0s3NzsjBtcO+sa+2bF56faGRipKWhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lrcG9zj8e9ysXLwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7usbDv7zCzsPGvr61wb3Eu73Hu8O6tL3GxMLDt8C2tr6/u8zDvba6yLu/vsvDwcbCxcnHycbQxsLMyLLHycPOzMDFw7+9srewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2RWXllKRkpGSEtBRkJGSkA5OjY1ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysnGzc3O0cjQxtXU1dfNys7FycXHwbnFvauupmBkdYOTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXmhzcW1nZ25wcnmdvczAw7rAuK2wsaeqraynuLS2tLOztLu2vbG3sLWvsrvCvMHEvL+7tbK6vsC4yLm0u7fBwr24vcfBxLy1r7K2u7+0xbe7tau5vb7AvbG7trC3urPGvLevu7+1t7XFvL7DxcDExcbHy8XAxsa7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjJyMrIysTQzdLPzcXHwcbAv7q3ybaqsJlbZ3CKj4WIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaWZqbW5yfKTHwLi4tbCrrKeeoqmnnqqss62qrKq0rbaxs6mup6yzu7q2w7m6urGrtbm7tMK6sMCxvry7trzHucO2raqosLLAtri9sLGnsbO1u7ysrramrrauu7Kxqrmwrruuu7i7wMC+usO/xsPFwLzGwcfLuMXHxb/Hw8O6xMbCu8bJzMuzucK9u7OJc3Z2a2lgYmxpWVdXW0FMS01KRUFDQEZBOjk6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTQx83Bw8a/xMTDw8rCycq/wLzCurO1tcOuqrCSW2p/koeOj3t4fYmFenuEgXduXl1cXF1fYF9fZGNiY2RiYF9dWltaWl1aWlpaXGVub2hmaGlrbnKBrbqwta6lpKammqCkoJmcpauupKiiq6qsq7Cjpp+qrbS2sb25r7ewqK64tLO8uLS8r7i5trK8wbLBrqWoo6uxsrOovaqrqKutrrW0pqitoaSvqbKmqKiupqi3rLGzt7q6u7K8vr6+xL+1wsHHyLe+wMS3xMO/u7/Ewr7EyMzKv7/DwMCph3N0c2ppXGFvZFdWWFBIWVJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz83Dx7m5y8HLvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairkmRtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9eXVxaWFlbW1lYWlxfZmtmZGdlaGtvcoWqpaulnpygpJSdpJqXkaGiqaOjn6Wmp6atoJ2cpKatsrC2t6exraiqtKu0urG2tq62ubOwurqxt6WgpJ+msaisqbqqpKenqKeyraCop5+cpKasn5+npKChsa2trLK0s7Swtby2u8HAsru+w8GxubnCs8G+wLW4vL2+vMLHxcPEv8DEoIR4cWxiZmBrb2BUWV9ITmdPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLS2vbi6wLq9tqCelJ2hprq2q7Ozu7PEz8nLw8a4t8fAzL+4ybe7xbizxbizv8CstbyyrKWvs62ho5FpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGFeXFtcXFhZWFhYVlhbXl9kY2JlZ2dna21viJ2pn5WVmqCVmqKYlYydoaKnnKCfpKWip56bo5ygq7CtsbWkqaqqrKyktLitt7Css7avs7WvsKqfnp+jorKlpqq5raKmpqCorauZoKCemZ2fpZqao5ycnq+pq6iqrK2tsLK4r7i5urC2vLu6q7OyubO9tLaxsba1v7a9wL7Dwru6vZeEe3NrX2VeZGRYVFdeSVdcS1BHSkpHQTw/P0A7PzwwNTUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uce4t763ssK0sbu7rLm6saKeqaunmJ6PbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGZmZmhpa3KNp5ySk5OalpqglZWQm6KhqJ6cnaWnoqWcoKGbma+urq+yoaWjrqunorWwsrKsqa+zp7qzpraho5+bo6Gto6Kqtqujo6aepaajlpmdl5mbnaCal56dnZytoauoo6Smrauys6q1sLKrsrm0r6qvsrKzt7Ouqa2usrixura6vcC4s7GUhnp1Zl9mXltZVlNaVUtbUUxKRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+znaWjmKWxwrW2va20uMHMyMa/xbbBwMfOt8DEvbO5ubK/trG5u62ytK+fmqSqoJSaj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqCbkpOPk5WWnpaYk5efnaGclqGhqaSfn6mdnJurp6+wq5yjpLiqoaCuqLaqp6itsaS4sKS3oKOcmZmqp6Gbrbmwo6GknKKgoJOUoZSWlpuZmJaXnJWfqZ6ppKKdo6qqsa2otKyqp62zsKWrrrOxsLCvr6eoqLKusrWwvLS6uK6jlYJ6d2VfYVZZWFNSVEtNXkxQTEdITEtFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJmhqZSRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmJjZmmAlJGTi5CSk5mXnJWVm5+cn5agoKempKeooJ2gpqCqr6afoqO3qKGhoqizoqWopbCmsa2stZ6hnZaVqaKilK2ysZ+jo56emJuTi6GUkZOYmJOXmJiXnqebp6KimqSlpaukpbCnpaOrrK2mqK6vr6uoqqqzpqarr7Sxr7y2sa+voJJ7eHNlYVxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaast7u8wcW6sbm1xMnJwMPGxce2xcSzwb/Fq7e3vba9uru1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpaW1lZWltXVVhXVFRWVVJUUlVgYV9gYV9gYWNkaYCRkYePjZKQkpyTlZakmaCXnKCloq2mpaWkpKOdqqulmp+lsaqgoZ6lq56oop+uramprq2ioqKVmKKbnJCrqbGcn6Kfn5eYk4mekY2Sk5aQmJiUnKGjnaShopWgoqWmm6OrpaKkqqOrrqWusqmmpaamtKaqqK2ztbS5urCqrJ6Mc3FwYFtXVlZSRlBPSFpcT1JKVExTTEVHSkQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Ktnainr7m5s8DJurXAr8XIzLrByszItcm8sb3Dya2xuMG1vMC8tLWqrKaVmZubiIFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXF1eXl9fYmRtjI2Cj4SOj42YkpOSnJqinJuhqamrqaynqaakmaWvpZWapa+poJyZm6Ger5qcq7Sgpqafo6ShlJOblpaSqaqtmp2goaGblJCMmY6MkYySjZaVkJ6ioKOdnKOVm6CjoZeiqKOjqKugq6+krrimo6SjrK2qqKuvs7eyvbWzq6+YhXRzaFtYWVNVUkVYTFFbWE1VT1FMUVJJTkpDPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7evqKevrpupqKy3tqu8yru2v6zLxsW4wc7PyLPEure7wsixrbi/t7y9u7O1pqmglpeYlod6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOT1FZWlpaXVxcXl9gZX2KgIl9io+IkIyWkZeZoqCboKuqpq+sqLGlqZqgraGVlqSop52YkI+anq6XmaeqmaCdlKWhn5KRkpGTlairpZqZmZ6elo6Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6WmqKiooLGwprG9qKCjrLSrrqewtbC5tcCxrrGrkX5yc2JWVFZOUkpHVlBSUkxMWE5KTE9SR01LQUNGREQ+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NzYxMzIxLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxtre8vcHDsbCxt620tLuztKKjnZ2Xl5SDgHZrZ2xucW5ya3BrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlRSTk5OUldYWllZWVxcXWFqfnh9c4eMhY6Il4mUk5ibmJ6pm6Crpqasnqiaoaack4+fo5qXl4WEkpukkJWjnZaWloiim5uUjI6KkJqlp5yVlZebkZKHlI6LgYyNgJCLkpKSoJqgopaUmZmVoqaZjZmkpqmmoaC0sqizuKGco7esqq6ksrKmtby1q6yxo4l5c25dTlFRTE9ETk5OUEtGTk5KSk5OUUlNSkFITEhIQz45NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSopLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS3saWnpKqloKmmpLOqorLDtbWys8bGtrrDyszGs6y5vbS4wK+tqbCepq66r62fmZqdlZSHe4NuX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW5wdG6ChoGHf5CDjoqTkZOdoY+anKOipJmll6KclY2ImZqMc42Dfo6XloaSmpCUjo57mY+djIKJf4qYoKOekJOYloWOg5R+fnSKjnqQh5OQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmaa4pqaxobCunLC8qqmvqpmDd3NjVk1ST1BNQ1NOTFBNQlBRSElOU01ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGsrcOtqKKmkp2mtq2joI+VlpKQfXd+ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlRTU1RVVVZZW11qanBrfYN7c05Yco+Cl4aNnJeLlJGgmZ2VlJaVj5eKgJSJXztWb3yMlImAjJKMkIaGc4uFl4F5gXuGk52Ug5WOkZCDhn2TeHFwho19ioGRjY+XmpmTi5CKnYifmIeIlp6aoaCXp66praionpeus6Kmrpmsq5iotKOpraOTf3NuX1tOU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklKPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCgrKy0zODU0Nzc5PDo3OTs4NkE5ebego66hpqaqoKapp6Opr6intMK5sLWwx8K3s73Pv7mvrrXCp6rFqqOdmIOUnLGimpiGlI+Lh31zdV1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU5RTUtJRkhOUVFNT1JUVlhaYGxtZ3mAc1BCP3+VkpF9iJWMhIqNm46WlYqSiIaVh3mJf2BKUW54i5KEfoSNi4WAf21/f5R3dXZ4hI2acFGNiIqGfH54lHZod4aIfoqJlouOkZOXjISKiJWEm42ChJKalp6dlKSjqKmlpJ6csaqhpKSRpqmWoqqcoqaoiXZtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FRT0dKRD03Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKiosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hr6GnqKWnqK+sqrW8tri2s8G7tqi5yLi2qKi1tqqyvKeelo1/ipSolpWKfo6Dgn13cG9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1KRURDSU5PaFlPUVNUVVpugnJ1fWloXFSQiZSIdH6GgXyFjJOCkpqLj3uGj4B2gHhzb3ZxdI6OgXp+iquEenpodnuOcHJteIGLjZJ4e4B7gHZzcpJ4Z3WFhISFfJWKiIqNi4B/hIuNgJSEfICPmJWclpGfnamen6CdoKmlnp2YjaekkqCglp6fpIFzaGFdXUpXUFJHS1hST0pMTVJKSkpMUEhMUUxSVE1GSUI8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK8uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6RfnaGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmdoyWmI2OfGd5gXZ4gImQfYSYkoFxh498d3tva36tfXSQi397hpKAfH90ZnZ8hmxvaHN8iYyHgG15cX1xbXaPcWhxgX6OcESLhYKDhX93eHqMhn2Me3V9jpKPmIuSmpujlpmcmp2eoZyWjYulmo6dl46WmJB4b25nY1tYWFVRSlNVVE9QTlFWS05LT09KUk9JTlBMRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzUxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoaawrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlp2lqaShmJmPhZJ5iY6LinVxe211cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFhdZXBybIinqsB+dHlie3hvfHmJkHp9i4ZvbYySeXR5amqAgnGWkYuBfpaASZKZbmh3foJtamRseYWQkoZscmx8bnJ8hmlucH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6MipSDlpeYmpCSlpeZl52WjIOJnpKLko2GkJaAb2pvb29ZVlhUUlFZT1JUVFJYVU1OSE1KTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrLCjraqota+urLS/q7zDv6WimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXF+nh2GaaXN5ZX5vbX96i4l2goiGdGyaknR0fGpqnY9NeYWTiYSOZzF2h3Nsfn6DdGZldX+EhIWAZ2lsdWtxgHxocXF8bpONj3x0fn1xcW52bYJ/d3l1anmJgoiJg5aSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trcGhmWFJaV1lZW01QVVZZWE5JSEVKSkhHQ0BHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakZmWo6itnrGep7qvq7KwwrG7w8ealo+UmYuOhXqEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+yoHF7eGx9bHGCgoWBeoSGhnlyoZV0eIFzdZSHNXGdqJ2OoaGEooV2cId8h3x0jK6NiYFoZ2JqbnJtcIJ1aW9YdXCOm5J3bX97fW1ybnCAe3N2bmJ2g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2Oe3NxcW1gXF1eW1lYYF9STltaWFdMSEpGSkc/Q0FCSD9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp5+vlaW0qa6xrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt0eHhsd253Y2leSlBHPj82NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8foWDf4x+daKaen6GgYSZhJucYYaqn52Lg5COeneJfomIjnOLl4+Ee11lcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0eXhrbmlddoZ8h3yHh45/ipKXg42FjIZ9cYR/hH11d3t8iXdwc3RmZ2BbW15TW2deV1BUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIyRnJ2fppGgqqCxqK/AsrvFupaOkZSHe4Z2a3+MkYJ9ioSPjHiDgHOghIp9fIF/cIB+emd2a1JXTEBFMjExMzY2Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmiEiHuJeXxxfI+Men2Jh36Xh3ahmoiHj5KUpY2tqkiGrq+vi4GAk4qCi4KEkqmHgJiYipx0bXyBhod9jmhnaHl/boWHgoVxhIZHbIB3cnl2aG1rX3Z9goh/h4SLeZSdnImLiJF/enWLdnx4bXB3foB0dHJsW15eXGNjWGdlXFRPUFZZUERMS0ZOSUNGQ0NAQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5GOlpeSl6CeraGmuK+zvbOXjZKLmIt9dHB+iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01NUFdgWHBZXF5pjZOHlYCEgoWRk36FiJGBmpWCoaGYlZubpq2Tmruxp7vHw6iLjKGlj5SKgZF8cYOen5Gcf3aGhYuQh5BpaHCEgXSNh4SKcYaCd4d/e3aFfW52dWZ/lI6HiIiHiIegq6KWiY6Xf3qCiHl5b2dreH97f3RsZV5bW15qXmJnYFpPS05XUlFJUEpETkdDSkRDQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneDe4CMf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShZKVf4qAkpuOg4CBjIqCiY2Df4qAbXBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlNSU1NUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUxMS05WYGN/Z2dtdZ2bj5qSk4uNjpqIk4+di6CgkqOqpaOsk6m2oqjBwq7Hr3i6lJp8jaGemYSThYKOop+TmJKEioWPmZGWbHB1ioyCloyNjnePhHFthYGKlpGDhYhxiKCWhpKJjo+WpLWpm42UooOHk4N9f2tqa32BgoN1Y15kYFtnbF1sbF5XS0dOUlFNTExGSVBDRE1GQkNFRkI9OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYaQh4WJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOUFJUUFBRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpaKZoZeilJyeqJ6oq5+orKmqtperv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGIlaKbm3h6fpSYkqGTl5eBlJ57d5WSq7KJjZeffJSdm42SlZijoqa2r52RmaiHlo+NgYhsc3N9gX1zaWBeYmBiaGRgZ2ZcUkVKS1BPSUlMRkZNQ0hMRkdEQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wMC8vLi4wMDE1PkFCTVFSU1FSU1RSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYWQd5WKo6eqtL24pK2srKeotKuwtrKyrbuxs72cs8OrusnLt8O/uKWisLOsraqji5aYhaamoKOXgaaZjaKrqKWIhZSkoaCroaSpj5uwi5Wjpre7m6GjsJKinaKdkKOhq6+ssrWilKSqiJmJkomVenp+hoBpYmldZmNeZGReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhjV2lvWHqFdoGThYeCm4OSkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4SBi4WGiJKGgoSJhoiHh3FuYUBFNjQ8My8xMTAtLCstMS4tND9DQU1VUVJTVVVWVU5bUEdIRDw+PkZIQ0VBODs8NUM7PUZLSUdIUU9QV4GSoISuo7OqssDHw6qzxbass7+zuL62v7TBtru6o7jFqLbJx7W+ubWoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqiutruyuqyvtaKxq7G1u7e1rrSgp6ijp5qpr62yube4p5u2qIykjpGTn4Z4goR3WmNlV2diYmRgYWZgW1VKRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFiY1d5dXCBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeEgY5/gYmPh4CGiIWJh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZQX1VJS0tBQD9HS0ZFRDs+QDdENz9CSkpFRlZTUF6PpK2jsbTDtrjBzMm2u8S9s7PAtrjBtb6vt3Sxs6W6xKSwxrmxs7G0qKS1tqqxoKKWm6KSpbCupq2sp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwre5t7+3ure5rKywpbCprb2wvLrCwqyZuqiTrY+Xl6qIfYN+bFhkYllrZmpmV1xjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldTWVVadmpvfo6EgI2EbnpzeIdiuaGZooiUlJaSlJONkJaSh4Z7hoGNlYqAhIGKenyLh4Z9ioKBioOVfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNRUlhYWmdZVGBgTFNQRUE/SUpIRUVBQEM8RTZCPkhHSkxTWlRdk664tbq4yL+6vcnMu7zAvLe1u7q2vbS6scZgdbKksZqeq72qpairq6SisrWgq6eflZafmJ+upaempZ+jlKOnsbSnsrO9tsG+08nJ08fDxczCysPAvr2+u7y3tK+4t7bDucW9wsevnrmqoauOpKi2iIGBc2BjY19YYmBqZ1JYYFZRVUlFRU5LQD5HRD1KQT1CQD1GPjxIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzM0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xyc3OH1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaKfoN/g3h7i4OHfIt5gYqCl35zfXprZnB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFVZVUpEQktKSEZISEhHQUk5RD9IS1RUVlxaW5O5wLi9t8bAu7nKyrq2ubW4ubK3tbSutraZZHWonK1wXqKsnJigopuknqullJ+fkJSOlpiXp5+ln56amYOknaylqrCtuLC9udTRztbPyczSzM/Oysa/vsLKvcG8wcDExMXKvsjOs6S7sLSvmqu4u5h/e21eYV1aX2FaZGNQW2BTUEtDQUVGRTxART5BSEFARD06RT49Sj8zNzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU0RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vlpKQlG5sb3V1h7OsoaCfi5mcmYyMlZGbkoWKin6Ih4yQi4l8gYRze4qDhXuJdIKKhpV/c3t5bG11e2hyZWlsaWdqaWhgZmlpbFptc5atpLyIh2dbb2hdWlpUSEtOT0pLUEtTUUhMQUpHSk9fXmJmaWGXt8ewuLK7vbWxxMa1sLiwr7ursrGnq7erjbWnnZqnmk6anYyOn5aRppillYqTk4mQiZCRkZ2boZealZaHnpqnm6yvqLCntLTU1NTW0svQ09XN08/NxcLJ0L7JycrJ0cfMzcLQ0bevw7zEuaW1usKig3BlXl5eWWFYWmZaUV1XT1BCQkhFQkg7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VWc5CQmIJocW95eYOgqp6lloyam5eLjZWRmo59iYuEjYqKi5CHfISCcH+IgYZ7h3KDkouOfXF4dWxxeH5xe254c2xpgXBtY2ptcHhpd3x+y7/B36duY3huY1thYEpQUlVOWV5QXVxOUE5UUVVUXG5tdoJxlq24rLSmr7aqrLzAsKu0pqS4pquuoKu0o46xrZqXmIyRk5GEjpuBjaaRnImDi4SKiYSLg5SVl5eTnJGcmJmZn56rrKSnoqytz9LV0c3M0tTU0NTRzsjD1NHHzdLT09fM0dHF0tbFwM7Hx8KovrfOnntwZ19kXlhhU15aUFFUUE9IPkBGQUJFPEBCPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OWnWGhYp3bHdwfX5/oZ6eoYuMmJOTi4ySj5aEeYWQkI2KiYeRhn6Be3J+gIGHeoR1hZOQiH9vdnJrc317dntzgXhyaoBzcmlwcXp5cnq+y5p+jLKEdnKEdmhha11DWlpbVmVjWGRqU1hdXWBkXmN4en6LgZipo6Shn6CopaqwuKqls6OhraGjraGnsZ+JppqTkpGJkY+IgZSJapSijJmEgIV+kYODk5ati5WNlZqOhpKRnpensKGgoaWkqMjOz8jCy9HU0tTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPCy4x0cGViYVlVWlRcUEtHSUpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5WJj4qIjYePgHiElJiKjIiIi4h+gnhze32Dh3d/eoaRlX+DbndwbXV/dXh9dIV8eWyHdnRufXaEdXh8nbWMO0GLxaV+jHxpZVdJQ2ZjZWNnamRueFteZmhrbmlugIOIkYucnaCdkJeYnqOjprGjo7OfoaWdoKmgo7Gchp6SkpKQio6LhoOPhH6cm4yNgoSFepR+gqmVo4yRipeSi32XipqSq7OYmpyonKe9w8a5tsbO0tDS0MvSy8nUztDV2tfX2NTZ2M3Y287J2drR1r7Ly7V6eHBmXltTV1JbVkZHSklFRT06NzpAQEI6R0Q/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc1NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjX2XkZ2LfoeSg4mGhYmBh3x4hZaWiI6Dh4WGeoR5cXp7hIZ1eoWOjZx5i3B8b296f3F7gXGDh4Bujnp1d318gnV+e4aHr3NYqcK2jZGCcG5iPV5ocnBxcG54doFlaG9ydXhxeoyHjpORm5WflYeMk5ugm56qn6CsnKGamJ+lnp+rmYuajJCRjYR9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI2UjIZ8nImUj66qlJWYn5mnr7W9qa2+x8vJyczL0MnD0srU19jX2NfV29fT2dvV0Nra0dbI1MuWe31qaVxbUVRUX0hDRklIPkE9PTc6PT87PUc9P0FBQURBPj86ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDY1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjpEP0NHUmpebWRiZmt2gIhykY+agHqAjX6CgoGDfoN7fISYjYeLfoWGgHaCeW57e4eCdHqSno2gdo51gnR1gX10gIRvgY+Bb5KFdHyAhHp2hnuIt8Wkwcm4gZaaj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJWPl5CDiY6WmZeWpZyXn5aek5GXo52Zq5WQkImMkYKMhYiIgYaQkZ6bmYmFjIGGl3qIiJ+Xj4iNiouCfaGKkYy8oZiTl5mdqaamrp+otr/AwLnHys7Oxc3J0dbV1dnV19vU1tna29fb2trYztzGh317aWtnYVVYVlZOTERNQjs9PTw4Ojw+OT1ANj0/QD0/Pjw5ODY3REE2NDU1PTgwNjY1NTQ3NzQ1NjEzODU1NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImMknd2eop8foB+f3yEen2CkYmEhXqEh3p1fnVtfH2GfnN+kp6RnoORfIZ+eI59eIqKboKagHSZhn2BiIR7fZB6j6mOj8OhvYuco519iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYmKkJKVj52ak5SQlo2MlZ+clKCUkY2Nj4p+kI6Oi4SJkpaanp+JjJSSnZGCi3+lmYiEjYKFhIGlh4uLuJidkZWWoqihnZ6do6+3urWswMbK0MjHzM/T09LY09XXwNfY2dvY2trZ2dfbuHp7em1rZ1hiXFRQT0lDTEE8PD45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PURSU1JYX1ZYZm1tbWmBjopxc3mKe3p/fH97h3p8e4uGgn10g4V5cnpzbYB+hH53hZyhmp2UkoCMiH+Yh4Cbkm6HqIV6oIt8kY2CiISbfZqQioyjoqCQpK6gi5GLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlIyGiIySk4yUlJSPi4+Kh5abnY+VlpCKkpOFgIuIko2KipyWmaKjh5OdlqCKiYiNnJCDiI5/g4eGpIaMkLOYnZKVl6Ghn5mSnJ2osrmspr3Cx83Ixs/M0MzP19DR1K7W1dja2Nra19bZ2Z9xf3ZpaF9eWVRYWUNBSEM/Pj46NDk6Ozc6OzszOzs/PT43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieW1ifpGDb214i3h6f3qBfIV7e3aFhH9zcISBenV2dnSEg4V9fpKmpJ+lopaKnZCUl4uKqJdyirGNhKeShJmThJmMopWfmJOImp6jkqmvn5CVkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNx5WOhoeJkJKNjZOUiYWKiYWWmZuPkJSThpSXhH+Pi5mIjZCql5ejo4iZn5aaiI6Hl5eKhI6NgX+Ij6WJjZOpmpeTl5mhmZ+Zk52bo7O0pqO8wb7HxcXJyMnCy9PNzdSp0tHW1tbY2tTT2s6Dc4FpZWBfX1BLVlxCQkZDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdYKOfXxtfoh4en56gYGCfnZ2gIJ7bG6Kfnl8d3h8hIeLfoujs6ikq7KhlqegpaSWla6ig5C3lZKzmY2hoIukm6+ipJ2YkKeXqZmtr6SXlZWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKcmIWIiY6VjYuTj4eBhoeIk5iUjIuTk4aUmIaDkZCcdJGZspaXpKGInJqTj4qQi5eaiYqWjoZ9jJmfipCQnJqZk5mYn5SgnZWfm6GyrqOlt76zxcfEvcPDv8bOysnSp87N09LQ1tjSz9i7c3t3XmJXYlhRSUpPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdOW1xZSmdhO0iEinp7bYWGeXyEeICFgH1weHx9fG9zjHp9gnt4houJhYSSp7ytqbK9r6Wus7Ooo6KwrIqatZ6iuKWVraSXqa23pqSjn5mpmKqkr7CpmpmclJWRmKCXmbu7rcmgaba4q7CVmJ+iq5KXvaNeqrKCiYqNlYeRfI+OfYOGjo+UlIiHkpaLj5WNi42XmZKdmbSWlauei5yUko2QkoyYm4qSno+LiZWfoo6VjpianZOcmJ6VoqCUnJylr6iipbO4q8LIxLW7vbzFyMjC0aHGyc3NxNbW0MvTonF8al5cVWBTUUdEPz1DQUI4Pzg3ND5GPDw2PDM1MzQ1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo5Nj49NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVIYmBjcEpAi4p+gHKGh3yBiXWCioJ+bX19fH9wd4d3jYGHe42PjIaMmqvCwLC+xruztMG8tKyrs7aMqLKurr2rm7qkqK25t6umpqKho6Oqr7Kxqp2co5ibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIacrb2wg4uMi5CDj4ORj3qBh5CNjpyIiI+XjYuVl5SQmpacp5uxmpGrnY6Zj5KOlZCQlpePkaCRiJWbpKyVlo+UnJ6UoZ6bmaChlJqeqKekoaSws6bBxsOwsLu2xcTDvs2nx8PHw7zW0M3Eyol2dWRfXGJdT0tDTEBFRj5BP0I7OjQ+QT09NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxnR2BpZ1pdW5OMjIh7h4uGg4x1hpCKgW5+e4J/cX6BepV6kpSUmJGTlai0x8nAwszBw7rHvLqvq7m7l7K2urPArqXApKuwu7uqrquiop6nrK+1sKqboKqcopyWn7C0p4ujurq1wburqJyypKSolISOqcPEpIKLjoeIhIaVlI16g4yRj5GhjIyUkY+JmKCXk5mUl6agrp2MqpyOlY+SkZWVjpCVkY+hlIaXn6Czn5SblKChmaSfmqCcoJSYnqekpqekr62lv8TCrqm3tcnDvrbOssW+w7uz0cnIwbV3e29fWl5sVE5JRE1LS0lAQT1DRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZaJi4iSj4aJeYaTkIFyf3uNfneHgYKQeo2hlqiampi7vsnIysLSycrCzbzBs627vqe6v768w7iswamss7u9qrCppKWjrK60rba1oKCun6WimKO0vambqLzBo7a2r6uSr6yqq5aGmqmmpZGCjJOllYmAdYqSeYWNkZCeoJKOlIuPjZSjmZeblJSjnqmfkaWajI+Pj5WWiH2PlZKSo5qVoKKctaaQn5elpKOln56mmJ6Vl5ylo6moorKtqLvAxK+ls7fMwLmuw7O7vsG5rcLCwcCZcHtjW1leXE1NTkpHRENIQkJBQ0s6NERIOjs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+a0lfWGFaZGVWno+djpeOnpKJin+Jn5KEeIV/lX5/kIiKkICVoJmup6OYw77JxMjG083Ozcu8wrewury0vMq8w8G2t7yttMC5vK2vqKCpp7atrqmyt5qerKKnoZ2rt7ippa++xLG9ubOnqbOzra6WlaWsp6CRjpKxxaeVjXyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuMj4+eiFqQl5eSlqWZZpmjn7OllqOWrK2rp5yfp5eYlpiVoaSopp62rKm6vMO1prS2y8G4qrass7u4rqi4ur24g25wXFpWV1BHS1NNSz9BSEVER0ZHODVGTTs+Nz5BSi4zMjAyNUI1NVBXTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnJGaUlSZWJMRqaUnJahl6iWjJCDh6WSiIGHgpyEg5WQkZSOmqKfr76uoce+xsXIx87OztLKvru2sbq7vL7OtsS9t7m3srK1s7iyq6acq6u4q6mosLCXo66kp6SltMCwqqyzvsK6wLmzp7izt7OulaWtrq6ki5OVoY1zwZl9lpmEjpaai7GVmpqVkpOZmaajlaCblpqonJuhoJmLjI+WnWBKlpyalJqll1SWsJ+vnJ+llK+vraaboaaUk5mZjp2gp6KZtKmqs728u6uwssfAuKarq62xsaOhsrK0pHJxZ15cUFJNRVFRUFE7SEtJRkhBQz45S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1SRVdSc2JXRkirl5mfoaiumJCXh4unlo6IkoWfiIScl4+eoJujpbXJtKnGvMPEyMrJyMzOx766s6+5uMDBzbXIusC4tbqxr6+ytKajm6q0tKuppq6smaSupaWorLq/qKu2tr/BwL+4s7LCr7e9q6OutKy4pYibl6abdr6ghJicjpOZmouulqGcm5eVm6ChqZ6ooJqaqpmhp56XkI2RnYNudpOimpWdop+QrrKjq5WpqpirrqWloKWqk5KZnImVnKKelrGnqqu6t72zsq6+ubafo6eopaacnKypqY1laGJgU0xNR0hOSlVMPU1ETUlKQUNEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5TYU1WSH9lXkhGrJScoZ+7rpiUnouTqpuRkpOJq42Hop6MpKyUo6O2x720wbvDw8jJxcLOyMK9ubKvubTAwsq2xrHBvLW7q6mtrK+jopiqtLqmqqesqp2or6ekq6u+vKisvLO4vsa8t7W4wLC9v7OptbarvqSPopeRop+8n4maoJmXnp2Ot5+pnKWjm5yhmqels6KbnaWcqKqemZWPlJqLl4mNpKKUnKKfoLWvpaaTsauaq62fn6WkqpKWlaCEkJ6fnJWppaKhtLW6ta2otbKynpyippqXlZmqoZ54Yl9hX0xJR0hNUUlNRUZGQlJKSEFER0FWU0RIPEFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6ew6ybl6WXmamclpqaj6qWlaimla2smaGqtsTCvL+4wcPByMS/zca7vrmysLizv8PItcCwvLe5t6ekq6usoaCaqqrEoqWprKaerK+soqqov7imrL2wt7fGtrW5uL6wvsG2tLK0r76jlqOWk5uUrZ+QoaGlo6OfkL6lqZ2orJ2doZumn72imKSeoqmroZ2WjZWek5+Hj4WNk56koJ21rKaclrKnmbCpoJurn6GNmpWfhI6hmpuSpaSamKyxtrGqpaqtrJyYoKGSjpCVqJ+UaWVbYl5QSkhLT0xIRUNJQD1PSEA7R0lIW1JPSz1ITlU0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE2imqObnsWroZ+snZ2tn5KinpakoKeqrJe2sKOqs7bFwr3AtsDCvMnCv8rItri1tbG0tLfBxre+sbi1uragp62qrJ2en6WkwaWgqa6gpKmtr6Kmp722pbG7t7a1w7Kzt7q+scPAuLiutLS0opyklZGToK2fmKGdqKiroprDramerK6bm56YpqC9oZ2kmKurq6ahmY2an5KeiY5Yf5aepqGguKqnk5m3o5+zoqGcsJigj5qUnoKPoJeWjaKklZCmrrOrqaKipaWVlZyZi4+Rk6SfiWNnXGVhTUpLS09GRUFGSz49SUE5OUpKTl1RUUk9TFdcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXExPnp+hmJ7Dp6Wis6GcsqeTqqSfo5+tqaydu7CorLWyyMPBw7PCxL7HxL3Fyr2wsLausbWvv8W1urGwuratmqmxqaqanqahp8Ktm6yxnKqirrCppKe9t6a2ur2vt8Ots7PCv7HGs7q3q7S2raqipZWVlKOroZ+fmaerr6+vu7KmoKmpmZmXkqKkuKGhpJKur6ykpp+SoZ6Vno+RjZWdmqOfp7Snp42YtJyjr5ufnK+RoJSYlJqAkqKWj46goZOLpqywpaeinaCekpKalIWLko2cn4BkaFxoZktKTEtTQkNASUc7O0Y+ODlOTVVeUlNKPk9eXj1IUEJNTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugwqijqrGho7SplrKrpqKksqyuqbuyrbC0tMa/xMS2wMW+ysW2wMnCtau1qbG4rMDEtLeurbe6pZmrsquqmJ+ml627tZuosJutn660sqequrOnurO4srjAqreywry0xae9rq23tamnrKGXlpGlpKGhl5ekr7itsrW2oJ+opJmUlZOjoLejpKWVrrGypamlop6ampqVmKifnpiinq6yoqaNmK+ZpayYm5+mkp2PlZiahpaflIyQnJ6Ui6mpq6KnoZmdloyPmZCBhpaJlZ96ZWpdbGtPUU5OVD1CQU5DOzpJPzc3UU9dXlJWUUFXYFxCSlNIV0tIOlVkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcGlWQ1dGjHlmQzukpJyhpb+mp6+voam1qp25r6ukqrS3sbC5trC3uLjFvcPHvbzEwsfBucHHwbqqtqWtu63Bw7e4qq2yvKOVrbCtspelqJGquaqgp7Cdqp+wtLOqqba2rLuss7K5t6y5sMG5vb6mwquwtq6pqqumnZiYqqGhoJGXoLCus6uwuZqbqZ+ZlpKXpqC3qaWioq+xs6uxp6ufm6Cgm56lnaGXnaOzsJufkJSmmqGpm5akoJeZi5aZlJaXnZOIkJuZlI6pqaego5yYm5OHj5mLfoyXho+abGptYm5uWFJRWlRBQ0VVQDs7SEA3OlhQZF5QV1dEWV5eTUxST19LSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lgRihAOGx9aFxWOol7Y0M9qJ+coam8oaqwqqOxuKmltbKroay1va+zuLy6vbe2wcK/ycS5xcPBwLnFvsG4r7anq7eyvL+/taqusrifl6ytqK2XqKmOp7ufpa2znquisbCzrKq2s7W9ra+xtaywtbHAucS2q7yvsbesrKmisaWepKifo5aPmJ+yqrOpqrOZnaebmZSNoKaktK6noqysrrGnsqyyqaObn6iknpWgmZuotamXmZKSn5mfoZ+SraCamYeWmYydmp2Tio2Wl5qXp6ajoJ6WlpeUgZCVhXuPk4SMl2dtc2hwc19HWWZWRENOWERaOUhCNT5dUmhcTlldR1teXU9NUlhkSkpDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFWMTUxPWBWXjgpQzNZVVxnSzWMemZMQKSZoKSstqOsqaWurraqrrS5pqawuMa3sbe+wcK1tLvFvszFucPBusC6xLjBubO1rKq6t7u6vrWrrrG2mJioq6qrm62rj6u9nquusaOqn7Gts66utrK5t6qtrrKnta+0urzJsqq1tLG0r66moLOfmaisoKWVlZqZsaKtoKWvlqGkmZmSjaKlprKpoaaxq6q1pK6wta+jmJ6tp5uXnpmZrLiil5OQj5icoZmYlK2gnpWClJmOnp2al5GLlJKemqWjo6GZlpOSlnuMkYV7jYuDi5RsbnlvdXxhRmBqWklIWls9e0pHRTZBYlRpWk1cYUpbXFpSUlNiYUxLRWBhYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuKkEvSkdQW0czY1lUS0SZl5+vqLGprKWjrq61qba0t6OrtLfKurS7ur++tbS3w8HNx7zEvbe/wMC4wL2yva6nurq3t8K3rK6yuJWXpq6rp6OzqpSvuqStsrGmp6Kys7GysbWxt7Kprquyp7ivtbPExLaptLWrsK2pp6K2n56msaCklJuYlLGdp5ufqY2pop2blZelpaS2p6Kws6unsaetsLWspJmhrKicnJ2blKq5nJWOjouYnKKYkZioo6CXhJOXkZ6cmJeWiJaPl5qonaShk5aSkJZ3hZGHfIaChI2NbnF4dnx/XUtlbFxKT2RcP2J7R0k4R2dXZVtNXmJNWFlXVVhUaV1QT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3JrS0RDkZikraSsraumo7Cys6q2sLafq7W6yLmuwbvDt7OytcLDz8TAwr60vcHAur+9s8SoqrmxtrfAvbCss7OdoKewraWmsaWesrWsq7KwrKmotLqstLO1rLSsqauorKm5rbGwx764pLmvqa2tpqessKWjo66jqZydm5qvmaKjoqOQrJ+joJ+hqaaluKSrtLSkqquorK62rqKdo6iqnKCZmpKktJmPiY2HkaOglo6Vn6GWlIaQlJSem5mWlYeYkpWZp52goI2TkY6ReH6OhX19fYeKinJ0c39+flxSZG5eTlpnXUZElltHOk5tWGJbTWFiTlZWVldUWWdeUVJMZFpbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NlOzYqSGRISis6ST8zQ0lTLD6Paz5ISY+aqaqhqa+kp6OztLG0tbGxoautvcy6rsG7xrG0rbTCw9HExr/Bs77DwrzAuLzFqK23rLO4vMGxrLKtoaSnramopLGjq7Gqr6uxrq6tq7O7p7exsqmyqaumpaOtuqyqsMK5tKy5qKmoramnsKWppKKuqqiinpyirJWknZeemKudoaeooaymoqyrt7GxoKmin6qtsKydnqanqZqjmJmPoKiYhoOOioufoJCMjpeekZCHiJGVoZ2WmJaGlpOTl6WdnZ2MkpCOioB/iIV9d4CHhYd1c3KJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU9jXE5VVlVXUFxhX1RPT2hYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLklnREY4PEIwNUVLWDFAlFxATUaVlqynoamxnKipsLasuLSuqqSrq73Ju7G+t8OvsK2zxMTOzsO/v7TBxMS6wbTJxKyvt66yusC/tK6uq6WoqrCppqiyprStqrCurbGvs6yzuqS4s6ysraeroKKesLerqq26tqS1taOpqKysqqygqKamsbKjpqWhoauWqaCTmqCmnqOiqqSsop6msbesrKKlopqpqq2pnKGlpKSZoJqVj5idk4GCkImFnaCNi4+Nm5CSjIWOmaSck5GbjJORkZSjm5uai46Li3yHgYKCe3WBhIJ+dXeLpId5a15gbmdXZodkTkBnkkxEYnpXYlhSZVVNVlVVVE9cXWFWS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZBSUhElpGvpKKpr5ipqK21q7awq6Srqqm8wcC4ubO8taayr8TJy9G/wbu5wMDCusG6wsSusbWytLvBvrOyr62rrKi2qqWtsKu5rqiwsK6xq7WqtrWmtLarrKSpqpyjnbOzqKiks7Sgtq6hqairqKumn6urqLm2qampqaGpn62bkaihnaCjoqaiqp2bprSup6WpoqOXpaanqpyio6OgmZifkY6PmI1+h42HhZ6eiIWLi4+PkY2Fh5ajmo6NmpGSkY6Tn5iZlo2LhH90h4GAf3h1hIB7eH6AiJ2PcHJnZ3F4XGF0iGlPXZhWSG15VWRWUmNPTFZUVVFPWFpiVkhQalRWU0dQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1FFO5WNr6ClqqyZqqStrrO0rqqlr6mpu767wbGvuK2ita/Jx8jQwL+9u7zDvbrDwcC/r7Gzsra9vMGysrOrtKmltaikrbOyuK+irbWxr7G5qriuqq62q6qeqaugo6G1ramhnq+yobWqnqioqqOqoaGsrai9r6yurKGnp5+smY+vopiioKinnqebmKmwqKKfrKKhkqGioqaYmqilmJiYnY+Kh5SIfI2GhIWkloaDgoyHkI+RhYaUoZeJkZ2Qk5CNkZ2Vl4+KhYZ4c4F/fXR4eoF7dHR7aoKIpHZpXmVsgXVniIt8UldwXkt4c1RkU1FfTU1TWmdOTVdZZVlHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWk6MzhfPWFkP0YxQ1BbWytIUDtZQzSPjrGfpKWqo6WjrKa0s7CppLCnqri+wbywqLmqp66wycbI0MK9wL65vr68ybzCubGwtbK6vLnAs7S7rbmso7Wmp6yxtriypqe6ta20vK+7pa2ttautnKmvpJ+lrKqnnJ2qsqS0qZqqp6qkqZ2iqKipvau0r62dqaOgrpuasqKWpJukpZ+kmpmnqqWemqmhm5GboKSdmJapqZGZmZKQi4KPhX2PgoCIno+HgH6MiJKQkIWBlJuUhpOijJORi5Gbk5WHiX6Acnp5fnxod3x7dXFyfmmGeoSIZGBoY3KFe21oeV1eVkNYe21UYVBSWUtLTXB0XUlaW2haRVZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpKwmZ+fqaWjoaqktrKxpKmxp625wb21sKO5raiosMPJyMzBt73Atbe/usi2w7W0s7Wyvbm6vbatuba/raKzpqqrrrW3tKqduruosb+yuqCvtLaprJ6usaOcpaepo52cpK+mr6Gfqqmnoamco6igrbunrrGuoKuio62enqymmJ+boaKcn5qZoqqimpmjo5WWk56hlpuWpqyLnpGPkYyCin9/j4F7mpSMiX1/jIeQj4yKhpOYkYeUo4mRkYeQmpCTgYh8eWx9dnl4Ynt6cnBxc3hqgnVqg2djaGFuc45tYmpwYG9CXXlrVl5OUVFLSU1TWVZNXF5tV0RYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUl09I5GXrJifl6ejoZ+no7evraKvr6mrucK6s62fua+rqLS6x8rIv7fCvq+0vrbEtsOysLqxssC2u764qbm4vaqktKaoqq+tuLCpmbm8o62+tLOhrre1p6ansLOgnqSlp6GkmZ6sqKieoKqup6Cml6Kon7C4n6Oxr6Groa2km6amqZqam5+jlZybmZ2pppaanqiRmJKYnZOZlqGqkJqJjY+HfYd+go18fKGMjIh5hI2Fio2NhYmTmo6JlZ+IkJWCjJeNkX2Ee3NwfHFzdGB5eGpvcHFwan9zZHpsaGZkYmaHgGBbcmpxTU6AaVhaTVFMS0hQUlFITVxfb1RFWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MF1bNSiVm6WYnJWsoJ6hpKG3qrCjtLSpqbrFtrKuoLesra2wtcXHwLa/wrmwtby2vru/r6y+sLO/sr3Duam7urinqLWop6uvq7OvpZm8tqSrurWun7G4r6mlp6+ynKGkoKSkoZabr6ahn6Oor6GgopOjpKK2sKGmsKufq6Ovl5uqpaifmJqdpJOam5mcpamZm5uklJSXlZyOk5eiqaGQiYqPhnqDfYOKeY+Xio2HeoKIhImNj4WPk5iMjpaZio6WfoWXjI96gHpwcXZub3RfeHdlbWxsamqEb2ZyaWtmaV5kdIFgW2t2aVpKf15cWE9PS0hIUlVHMzleXm1RRVhWWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJkVywylKGhl5Sbqp2koaKht6muoLq4pay9xbOwrqO1r62trrTDw7yzv7q3sbO5t7m3uq+uwLO0ua+/wbisvbq1pqKyqaepsqqtsaCawLWkp7W1qJ6yvKmnpamvrJmjp5ykpZSYobGlmZ+kqKmcop+SpJ+juKikp62mnaWhqJKfqKKhoZmbnKCSmpuWn6Gqm5qYoJSQk5aZjZOTo6ikkImJjoZ5hHqDhX2djYmKh3qBhIeJiZKFlpOSi5CVk4yNlHuCl46Ld357bHRxbGxzYXd1aWlqZ2dvhmhoaWNmaWpga2NqaFxle2NgU3RUXFtTTEpHSU9TQCEqaV5qTURXVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z1AnMp2io5GNpKebnp6do7Wsp6q6t6esxMG2sKyjta6nrq+3v7+8ssG3sK6ytrW4tratqr2zrrKxvb+4rry7saWftqqlpbOoqq2encCrqKWvsqmstbueqKmrsaWYnqmdpqSRmaatopiepKmhm6Gclp+dp7alr6quoaGdnaGUoKafoaCam5mckZick6Wdq6GXlpyUkoyVl4uPmJqpoJGIiYqIeYV2gYKCnYiLgol9f4WIh4aQhJaVkI6QkZCRjJJ7g5WOhnN9fWZ4b2tqa2d1c2tjZ2RkdoFjZWZmZmpqY2tzWl9ZXW1kYU5pWFpgVkpHSUtNUlg+OV9saUhDVVNcW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao5+QjK2hmJiflqSzsaKxvbahsca8urGxpLesqq6puby7uq3Asq6urrausrizqKu5sa+us7a6trC4vaymnrWqoKCvo6munKLAoLGjrq+tt661nq2ura2imp2nqaWflZqnpZ+ZpaKonZqfm5ScnayvpbqnrqKhmpqdmZ6kmqSel56Ym5SZoJKolamnmpOampGLlZmOlJSZqaeOjYqJj3yCdIGBipiFh3yJiYWFioyKkoSUnJOSj5CRlo6Qf4CMjYJwgH5meW1oa2lncXJrXGhjY3SBYmZoam5sZ2pqaG5dbGx0cGFVY2lkZVpJRkxNT1hRUVZhZYFUQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kaGajY6wnpqToZmosq+fuL+2oLTCu725saa2sKiupbe4t7etu66sqqu2qrO4raWztbKuqbC3trGztbqmqZ+1qJ2eqKGorJqnvpito66utLWtrJ+xra+popydo6uonJScpqSdmqqipJaan5yQm6Orqqm7n6ekoJiZmZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJeZgJaKoZB4hpSMg25pfnaDcWyGi4Z9hIyHcF5jYWeEmIZsi4+UknR3i4R+g49/Z4aAZ3VoZVdcaHNuTlBqY2dzhWdfZGZubWpdYGGKj4OEZU5LRDlGVGdeSkdQUFRVS0hSYG90ZUZaUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoujmYaVsJuck6Cbqq2qo73Fr6m4wri9vK2ntrClq6O3s7KzsbmtqaastKavtaKouLa2qKest7OutK2zoames6qeoaObpaaYq7qVpaWvsratrqSprquspaGfnKCnp5uXoKWlm5unp52Tn5+YkJ6nqqO1r6Oiop2Wl5eXo4igjpKah6GHk5ygf6R/paqekpGakYiEcniNjoWIoXaIjGmXiGZ9cnihb4iHhH6OfX+hoKCZgHyHnnSHjnabimyHgYNsaGVjemtxYVOFbWNsaZhxWWpwb4hYXmlbbGxbiHFuenKFZ4aEWl5HTj9HX01FUlZWUVFSV1RnXk1XSVJTUEZHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiLppaDnKucmZidn6qqp6q/w6+xur23wL+qpbewqa2lsrSur7O3qqmlsK2ltLOcrbW2tKanqLOxrbKorp2qoLKooKOimaGhmq2zlKOkpbW8pqynq6qsqKWhoJigpqOZmaWjpJicpKmWlKOclJOkpaaht6OjoKOYlZOXkpyIr5CYlImpi5ehm4WxgKOsnZOZnZR5g9SogIeVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGXvJzFenK1pruQe4BslrGrsHhoa1ixrm5labySvG5oem9ykNh+U2tjtrJ/gXKVdJqhqpBXT1diUFZORlVbWFFQUoxcV1xQQFxEUU5FR0o8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaSgKeqn5ecnaWtsqixwr2ytcC1t77Cq6azraypp66zqa+2tKenpbSlp7eunLOytqqlpKeyrq6xpqqdp6Sxo6KfnZaanp2uq5Seop+zuaOqqaKtrqWhnZuaoqefl5unoJ+YnqenkZynmpOdoaaioLCin5+jlpaSl5KZha9raoqNqn5ng5WGrWRwnZ2UmaWUca6hpH54u31roY92sV9qtFulgGackWBmgnpmf2p4a6lkvnJnpox1sWp8sXh0kpNjbW2nbluEoEVoZoeWRXWcYH5ofKSngllfi6tpgJZ4eWqnN0qvXFhTbGRbS05YX1xXVjtOiU9YVy9JVFRKREZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKsp6Weo6SqsrestL2+sLbEsre6wqepsKuuqamwrqOwuq+jpK2yo6i4qJ6zsrCjpaCqra+sr6ann6OisJuim5aVlpqarKWWm6Ges7Kiq5yira2gnZqXoKGonJido5+cmaGmpI+dopqXoJ+qnqamoJufoZWVkZaRmoW1m7V4hamZtZl2hrObt36TlpaolH5sgqZ7goaIkpSSd6tna7Fbq3uPh5R0iXGPhoB/iJCXeIKCi5iMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5c3VTk4deUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5WFhBI01oRkNFQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5WHs6amoK6pp7Ksqbu2wrC7wq24tr+qrK2trqatsamhrruqoKe0rKOrtaWms7Ono6Kdp6qyqLCopZ6fn6+Wn5iUlZWXnayhmZmkqLSuoamPqaiqm52VmKClp5qenKKfm6CjpKOVm56XmZ2iqZulmZycoqCWk5GTk52D1ZOZuXCwwn7FhnzWlJu7fJqVpI+NnI2ke46HpIKlgnqseY+dVq96iH6farlauXaHhH2mgpN8mHqqeY2dkHuxbo6EdJC8hW+UUK+nxYpRoHpjYKlic3OIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhObU1bUk9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzElm6KTmLGoqKWzqqW0qaS8t8GwucCxtbO6s7WnsbCjsLKmn621p5qnua2jr7Ggs7SwoKSen6epsKm0qKSbnZ6rl5iXlZeVlaCpnJmWp62wqKKfj6yiqJadlpuhpaGYoaGhoZqhoqabnqGelJmbpqCbp5Wbm5+gmJCRlJGdiLJuaLVxq4dujqZytHNytnual6SLj52No3+RoaV+sHaDkdLSdlyue4V/pG+bqqZrh4V9rX2XmY97sXOSnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZ0h2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa2BsaFBVR0k4PVZRWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGdkqWvraSqvK2mtaWntru8srq/t7WzubqzpbS0obGxop+rr6SXprmtpLGwnLS4qqCmnaGppLKorKmkmZuaqJ6VlJeYkpKip5+WkqWqsKahlZOtn6WSk6CbpKaflZqlpqGaop+tmaCenZCVm6GdnKWUnZWZop6VmJWRm4Wse3eodqOOiIapb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9eIV+j52GmZp3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV52d4domIhrXa93lZ6PeGw1eciusl9CVG9eZ2BFUG1fcG1WVU0uZWNoUlhRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk6OTmfnZSfuLCXtMGtqLOoqbK6t7O4v7m3sbS7tKS4s56zrJ+eqKuelKe1q6ixsauttKSbqaCgqKG2p6apopmdlKShk5KbmJGUoqWako+mra+moJWZqZ+ijpGhmqikoJWZpaidnKSerJyhnaCNlJ6anaCYmZuWl6Ggk5eQpp6GqX19pXihj46CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeG+xWqiCgoigeXTYf3aIdKiBjpuNkqN8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcW0x0XWJnTVthX3JzX0pWNkqbk1hIRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84oZ2Zmb+rl7TCrqytqaa0sLextb+5ubGwtbqpurSer6SepKennZOqsKmvqbWsqq+hmKGgpqWkuqKjq6CWm5GioJSTnpmTl56fj42LqLCvpp2Wm6imn4ySo5eoqqaUlqmnnp6go62joZ6ijZWhmJ+fkp6XnJWdoZWWjqucj65tcrRyqYx2iqdztHhzs4CRpKOSnI2JpIeQd7hvjHuLomprtlqghWWXl2mhoqdtk3K0dJOYf7JqhZKIrWt1s2GdZqJvh5Jql1ytX02hfIeRUnOjbHl/fm+Yh3Fcr1Y8nHdlVG9uLlynT2NTa2VibVpjXWFwe2NUWlE+Pm1vM0NCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWam527oZyywK6uq6unt6m4r7XAtbuwrri2qsG1qKigm6WkoZyRqqmntaOyqK+qoJecp6Ckq7ido62blpmPpaOVjJ2gmpicn5GTlKq2sKeYlJysqZeMk6WZpayikZaqsqOfnqarsJmho4+Zopafm5acl6GSnKmclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2VgaypcXt/dbyIp6BpnWGmjq+hfox0h6p9vm5zvHSyg3V4gYtumohxbo2kdL1ed31bYXm8a1pWXGp5XmphZWdibXhvWVtZQ0FAckBDRis1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03Qjmnm56hvKKXscOwraqrrLGnuK+2xLG5sK25rq3Asaujop6joZybkKmjqrKktaatpZ6WmaqZpqy5naOumJSgkKWfkoyco52XnZuRlZKuubKslZejp6eUkJaknKSsnpCgqKufmp6oo7Oeo6WOp6KUopqcl5WjmJCvoJKUqZ6FkJm1f4+RjLeVeIKTmrV3bWtuc295j4SOiXSewbu9mnuBsqhwgHSRuYN8hoaMho17ioeNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmqNtXRycXe2jF6Aen2KaIN5bXlji6xwdYV/WVunakVlWlRmYGNeY1FoZ3FtdUJNUExEOlpNP0ozOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlYnPjs8p56gob+llrTCtKyrqKyrqbqusMWutLKttqa0uKypoaGlnqCdmZOrpK2qprWnp5+blqCjnaykvqahqpeUnJChmpGPoaihk52Yk5eUsbW3rZidpKSiipKSpZulqpuVqKWlm5mgqKamo6mhka2elqOel5eXnZ6PsKiUm6ehjmp+aZuleIdyfZqOdHpkh3u9vsC6b5KCcZWHYXNqWl6bimFjiI6Va2CAlWRtnXdilWuAmpWUZV5gY3GaimlyjH2FlWdqfnJ0eH1+Ylt3dIFoUFxuhH18i2tYbHqCc0pKb4ZwTnRMRVddZ2FMWlhnY19PW251aXJST0RFTjtISD1NPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPVtPJz8yPqigqKHCo5q0ubWjrKWup6e1savIq7CyqrSivbGxpqCiqJyim5mZrKavpKS1qaWbl5Whm6atqL6nqKaVk5uVn5mSl6SpqJCdkY+YnK+yv6ybp56nooiTkamaqKOam6ygo5mZoqesop+ropqxm5SnoJaUnZ+dl7Gkl6GomZyRnZyio5iloZqcmpqZj5WBZ259cXeSl5SRhYu1qo2GmJWOioyYl4eUlYqEkpSRiY6SlJiUmJaaoKGanJShno2CeqSGbGp8kHyAdYqKgXGCeHl2douAfIprc4F0g3Vldn13a296bWBjXXBoTVhaZmpgV1pwem5tZlNPRlM5T1lOUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzobOhv6GksbK3oKqmsqelsLSqyKutsKS0pcCns6CdpKSco5WVoKqnrKOjtqufmZaWn5etqqXBnquklZKcl52XkpOin56ip5ORmainssSvmqudqp+Ql5annaqbnKCsmKGam6Gkr6ahpaifrpiXp5yZmqCenpyvoJyhppWXkpiTn6CVop2YoI6Wk4qKjY6XrpB8lZuCkoKLqqiGgZmXioSPn4h7hJCHhpqSiIaKlY+bl42RmJ2jlpqTkZ6Nf45mobOvhYqEdnuSin12eXpvZnqRgYCJa3WBeYhzaXN/e3aDhoJrdWR5ZmBqZWNkZmtZbHtwaWpcU0xQRF9URkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r7+sq66ysaCrprGtoqyzsMSwqquisq28o7Obn6aioZyZl6elqaakpbK0npWUnZmZsKWuvqCropCRnZqZlJGUopyXqJyEnqqrorPIs5+qpKqWlpeapp2omp+jqpOen52gqa+ppaOroq6bn6CgmKSenJ+dr6OYnqiTl5abkKOYl6ecmpdlgpJ8ZX6NmpBkeY1saGt7kqSqamWamH5nhoplZWloe46hj2tojZeRo3draouZo56Zc2xue4SNh3pYZV6Ggl5ti4mBdlxoc3d3koCHgm54gniAc215hHR2iIiOg3xqh1lebHVkXXOJaWt8cWtjXlJOV0pkWEFKND5HNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsaqlqK2tsKatrbC8sammo62usJ6slqCjnaKZmaarnK2jpaipsq2elaOPoq+ltrmlrqOOjpqhmZOSmqCZmaWVe6Wtoqi0xLikoqevnp2UnqKeo5yjqaiRnqGdoKqwqqukqqCqm6efp6CrlaGbpbCkl5uqlaCdmpGklp2pl55+vYOIcrRyhJ2GrWh4ucS4cZOio3qmmZlzqoJ8y8DAu3GMooiCn32WmImdwL2Cl52djZ3CwXyCfJKNmsPAfWulsm6MgW/Ken+bd5GDjoF2eoGAeXF6f4dwd4WMk3lueJRjZl95ZGBlgmNedGhsZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JRLyNGWzNQWS9VQUI7LziWo7nDtLCwwKmolKOvqbCuraaztK+ppaamsKufq5iaop+cmqqnop2so6WopKS0pJ2ikqatq7izp6+ikZGZnaWSkJ+hmJufnYenrKSrrcDAsaCpr6mXkZ6doZmio6mjkqChnZ2trqmsp6Ojp6GmpZ2tqJGkmqitqZucqZusoJWVpJWgopacf86UeHqkgXmVlptfro9ejqeBoqB9p5abdKuDgK9eY42qe6eHhaB1l5OIs2OCq4ahjo2zaoWvdH2XiLdhg61Zo81tkHV72nt/mXB+iJJ2fmV7iHZ2a3yIbn2FkJF+bYOQYXJscGhgX3lkXHFoamRmYFJUUlddS09DNUFIREQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGkqqits6umsqysqqOqpq+qoKebmaSWnKKvn6CeqKejpaGfsKyanZWnrqyxqqisoJSSm5+kko+epZidp6OerqSrsKi/x7OoqbGulpKdm6GXn6mqn5Sgn5ydra+nq6mcp6ikoquSrLKWpaKqqp2jpqShsKCSmaaYn5mTlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnneqgn2tf5xzrX6rh4afdpiSe3yXfqqIooyRjJ1+q3uJlJCfgHutVpzEeo9vksF9gZVtdW+MbWV2ZYZvYXducm+JipKPg22SkGZwdXVxYWdtZV9vaWluZ2RYU1xhWVFTQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytKCco46jo6Ksr7auqLCmqKqmrKurp6KjnZmhlKClq5+ipaCoqKKenbCsl5qWqaeurKimqZ6XlJqjoZGToK2bnaajr6yjrLWquc2yraatrJaVnJ2imJ6urJ2WoJmdn6myqaqqm6yrpKOsm6+xoqirrqWYpaqoqbGikpajpJmTkYSkaqR1iXqpdHqycIKmipmMcYigmoekYGFSq4R/roObdq2BpoaGn3qZl4Z7ZoCjiaSZhoKjfal/gpWHrl99qVWdopKBeqKfgHvDr8WLcq+zs7lxYqmvwnRojIyYjoFtmpRwbnl4eXBtZmVlcXBmfGpjXVdgaVhYVUxMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVv6GZq6ehr6KesLSwrqmsoqemqaqrqaSmoJuknZymp6ejnKyaoqyho5+vopybk6uktbCvoKmbnZaUpqKQmqKooKClnLCmpKixrLbIsrWqq6mVkZ2copifpbOdmqCUnJ+nrKykrpqtqqOiqqGzraGqs7Ghmqinrq62opKWoqaYmpF8qmyehId1q3l8sG+CpIuJn5aWn5SB0ri0uMmAgbJfYJSpg6OIh6B6mJaaeKrJdJmklaipkZOajICciprGx3hmoYKlc4GfjoJ9r11wtGKwdUujhm2nR4KTZI6QnpJ8cZeTgHF7dX58b1tmanJwZYFrXmFZY21cXllJTkxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqbOtrKWinLK4rKqgpZqopaqrqqegpqWYqqOfrqudpqCsmp6ppZ2ntZ+il5OpqrWyrJylnKCUj6WskZmbp6OgqaauoaSnqbC1w7Kzqq2ok4iWnKSaoaOuppihlZicpaarm7Cdrqimn6yjt6yhsbmvnZquprKysqSTl6eimZ6Ogp1OeJqBf596g6N9g6SEhqaenJ6ThLh7fHm5gn7MxsK2eJuhkIuffpqWl4p2npiKpZikqH+whZ2Fn4SsfZqUYqVspHCPhZCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Tkot1e3OFf3Fdbm54cmqBb1tkX2huYmRdTExRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq+gm6GssrOlnqCVpa6trqqnnaammqOnobOuoqmnsqCYqaSUorWiopWXoam0uaObop2ik4+hsZiem6eloaKvrp2kqKK2ssSxramtqZGHj5unnKKknKWXnpiZmqakqZqvoq6lppivpLusoba3rZ2dtLG3sLKml52un6KdhY/RtcO3eYeOhZGTkIGmeJShd4ygkYSlgYpxqoaEtG5yapmjnJWKnnyYmYaHj3OvgqWboo2mi5OdipWQm21wslylc5N6nGyZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2MjZSNeH15j4JuanlpeXJugHVeZWRubWZnYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWTc42Krb+/vLq0npanpa21oaKZlaOop66rrJmmop+moKC1p6Opp7GjlKyjjqSto52QmpqqtLSknaScqZGUl62fn52npJ2nnLWaoaqktqvDsKmrqaGMhI2boaCmopWampyYm5mmpKaYrKiuo6Wbraa9rJS9sKyfoq+yuaqzppqosaKml3mokH18sHeKgKSliJxtsm+gh618oY6DqJWZgKyJha6Fn5SqoaGXhp+AmZWAe5J+q4CdmpaLq3idn5GKlJKBeq9do4F9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWRppmClY6YjXt7hJh/bG5/Y350boB6YGdlcW5oZ2hCWmFbPktUM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JODA1Mi4qLEFUVlZWVFRVVVVVVFRVVFRUVldXWFZVVVFIRklKIygovZKag6nGwrbBtJ+arKCtuKWjjpuko5+wr6qfpJ+drZmeuaCjq6CvqZquoZCrqKSWiZqQrrGspp6mmqyXl4+soaGdpaGapJytmKCoprapwK+lqaSfi4CNm5qfpp6SlJqalJqapaSkmqmsrKSln6qovqSWw6yqoqGrsrmqrqafsq2nqJd2r36Qi5yFh326roqYZbCMZZWtfaGPg6aVmoGsioSwhaaZpKGhkYWgW2xqgbNgf617e4KBsW1nb5mYjIiwW320XKSDa8iiZJ+Ae7xYdrVasn1SroB6rFiAoW6YkKibi5eRl5h8eo+efmV1fmKEeHSAfGFqZnFtZmVmT1ZkXEJVXz5KKD46PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFdaXmBfYGFiXl9cW1hVUE5KRkM1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpcXFhXV0dCO9Kfs7K3vbqzwbOjm6ympLaooIuaoJ+cs7Opn6OgnrWYoLSoqqyer62erJuVr6mijoibjq+sqKehppmukpiPqJqhnqSfmaOjpZmfo6myqb2vpKienI59i5qVoKCZj5Gam5Kal6ifoZqorqimpqOlqbueoMampKihq7S1rK6mnrqsq6uUgKmSo6+Om4CHpJeYkIGAuMO6g46ck4SnlpyCrIqCr4imm5ulqpF+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGujgW+rhGycf3qysMeDaquwvax4d6K+vHOBlo6nnJCbkZiee4KSnHtkfntkjmd5gntga2VramJQYVtTalxAVWFDTik9OjQvHh8kHiUyIB0kKDA0OTY2Nzg6PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbO0sb+5sr2yop2upaWypp2MmKW/qriyqKG/pqeynJ6xnLqon62vpaaUlLCsl4yCm5GupaKsoKOcqqCXiqOSpp6nnJqhqKKZnqGsram5raijmpeSe4eZkaabk46RmJiPmJOomqCYqamhqqeho6q7nqjEoqCuo6qztKqvqZ+5pq2tmXN1qqS3hmSJoHBnrY+Kj21vd6SQmZ+Bda6YlHCPi3GVqKObl66kcm1tbGaLeG9ugplxgXpqcWlniZaVmHFpaYSHZ3CGZF2IYmpvWV1nfnemX2FxjpFuZWV/jZOPopiZmZGYoH6IkJZ3Z4h4aY5reX95ZGxjZmxiS2RYSmtaOlFlRVInSzorIxwgGyIsKRgbGC0yLjU6NDU3OTw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6m5uLKzqqmhrp6jsqmYkr6yxMm+tqqewKyso6GorKC6o6SurK2njZeuqY+LhZWWrZ6mqqCdo6OgkYukkqeZqJmWo6qglpympqewuqusmpuTknuEl42lmI2RkZiUjZeVqJWfmKmjm7GmnqKruZ+vwKeksqWssLGqraqmtqKstpWKoKiltp2JlqOZh6makJSdkqmzmZujq6CxlqKgnaCinKCloZWrp42TkoyHk5yclZCak5iRjpWFgaSal5WNi5OTi4+GhH1niX50gnZ0h4txp2x6lJGTkoGBjZCQj52VoZaamKODiZaOc2qRd3GLeHd8empsZGNvZFVhWUBqW0hjYU9ZK0Y9KychNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhUVlleYGFjXV5VUUpFRD45PUBBU1hbXFpXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltLaurqKwo62foLWxkI6sx73Fu7mroqaem6afsaijtqedqbWnqZGYraKLh4mPm6iVrKSfmKeenpKUo5eomqiZlKaho5Cap5mhtruoq5makI17gZSLoJSKlZGVkJCTl6WQn5qqoJy2o56nq7enrsGuo7amr6+wrKiosrefrbuYkaWkpraikp6nn42pn42Sn6Osr5uho7Cor5ejoJyjqp6enZyWq52SmaGblJCWqpmNmZmWkJaekYmgnZWUhZKMkI2Ui4B9ZouFdYZ1eYiDc5xqhZCUk5CJfIuWkpKXlKKTnpijhYmaiHtzl3N6i39yfH9qb2RecGphW2BZbmNQYGRQWjpHR0U+Mj09OC8rJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX19hYWJhYWFgYmJiZGJcW2OXlaSooq+yrK6jqaatn6e1qpCQnaW0vK+traKjmnqdorGkpbGpl5u5p6OUmaqcjoaKiZyjj66eopWnn6CSlpibrouplo+omaiMmKmPn7q2pKWZm42IeYKTi5qTipWSlJCNkpeijZ2eqJ6fuKOAhK+1oq+vdaS9o7Kfd3mfqbC5lHWro56JgKp/ZFxidqCOpJ6El31uk7Odo6etqqNlnZ+Sc3mZlnCAmKiXbH+iqIplnKWckZeYloySnJGGnZqQlYOSh4+PkomEd2qOhnaGcHuGgIBhaYeKlJKLWnWUkGhoj49ze6aammZ6moiEeZlqhIuDb3mAa3FlX3ZwbGtoW2dlYmJwU1w+Tk5OU0c+QFREOTEvHh8mNDozMDY2Nzg8Oz5AQUFGSEJHRklLTVRUVVldYGhmZ1dRSjxERzw4VVJbYGFiYF5gX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6CvsKyrqaWorqOmraSSlqu2sLKnm6umrJd0jJ2wn6irp5SXuaCgj5yknZF/iYibno2smqKVp6GdjpaRnoR1rY6IppqpkZekiZy6tKegmZiLiXV3k42Wk4qUkZCUjJCToI6boaeZnLKWgIybtZ2zjJKPu6egfqeieqKttYCOjaWeg4uGkLGqr4yKlqOaeYCLrIacnaKnqaeHlYWYd6WbeoebgZengoJ7nLJ6ioagl5mUmJaCkZeXhJqZY3mHkISOj5GLg21wjod5gHCAgYV/hnSGhJWReJZnknSgmnR9mYSinoiYf5SLhYWaa46OhWx4e3FxZ2R4b2psaltla2pldFxeSVRMUUBFNS5aVFU3KSEwOT0+NzQzNTY4Ozo9Pj5AREk/SkVKS0dTWFtZW2FhaGZZUUg5RUs8PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mra6rqKyfqLCmpqmlmZSuyL6xopenqbaekISdrJynoqCNkL6emY2fmqCQfIaOmZiIrJyhlZ+gkY2TiYaAkaeMhqKdpJSYnoafurKnnZuSjoVwdZCJlZCKlJCPm4uPkZ+Sl6Gllp6rh5+0ibSarYrKh6qtiLeFjK+CsKyCqY2lmI2dfaiPcnt3nI+nlmiVpHm0jJ+epqiSmMKBf6uImKFynoCapX2XhZWxgKF9oZOgkJiXgY6Tm4qYkYt8hZOGjZWSiYNtcpCFf3lxhoGEfIR1hIGWgI/FZn+ph4+ja56Do5yDmoGOj4eLmnGOk4Vod3R8d2hodnFoaGteZHBtZ21YZ0ddUk0yRDQ2TmFjNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmptXFFFPUxNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUl6KfsKepqaarn6O3sKmqppqUoKOkq6SXpau4o7CAoaidpZ6diZS9mZONoZKej3mElpaRiKuZm5uZoYWPjHebnI+ej4eepJyWmpiHo7mupJqcjIx+Ym2Pi5OQjZCNjZiMj5Gfj5ShoZmhp36hp4etnaCWrY+enJ2RhYCgjaqthaONqZmMmn+jdYCZlGuCrHVNq3iHjZyRm6ingKmrfYOhe3qnaZ5/kmtnl4aXtomefm5gZFmDl3+Me2Roi3KZfXmVbF18lm1fU3CDXF9reYNgWWWCfYOAl3CnqmuDo25ypXCfhaBqZqBtW2+MfWdaYIN/YldQb3dmbXRza2pvXmtwbWxpWGlPXlhGOUE0R0ReazQsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl5jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5adoLigqqSmrJGgtrurraKZmKCipa2uoZ2utqOok6GgoKecmo6ZtJmQi5+MlYt1gZSSjYqmlpWYnp5/koWGrKSHmo+KmKmZmpuSiKaxp6KVmoiJgGluiIiLj46Ki42SjJCRooyUn6CcoaR/k4GPo6GUoHeclo+ng6Gnf4aoq4OleIp8hJp+onBzlIiWe56MeW2Hm4yZkJuomo+HnXuConN2pmaefnekX5h6fZJzom6Yt7S6dJOHgn+1qGSBxrh7cJW3i3GAmqRic6yrYH1pnbN+bnyGgo2Ci5hxf6NscqN0n4WBpGCdmbOWcX2Yn7R0c1uesoNqYm90dnFpb1hrbHJyZl1pXmNMRD1ENlFBWXEzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1OUUBFX15bWlhgYHxkSEM4TFdVVmNhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLe0ra2gmqKdo6Omrp2csq6sk5igmKGkmZqUn6ubi4iSeIuFcYCWjoqPoZCSlJ2XfZCJjqigh5iOipGjlJybjYupqKWej5eHhH5re4d+fY+Ng4uQkYmPlKCDl56gnaCei4l3nJiijJ9yoYuHqIibpY+Vpql9rYx+eqCZeqOTeIF0loiNnH2Vn4abjpmbpoaiZKF8iJaQm41snmiajW6amXuAi6d9cmh0q4Oeg3SqaJWaXZuFdoSdaKpqgLhmXKhwgZxglYxep3Z1h4l+nmiadYaTkpeOgJ9vmpBtp5pdqH54u2t+qluOhF2zZ1xucnp4a2lccWp4eWNgZlhiQlFGTzdWQ1JvNUtbWl9PWkRAMTUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXVllZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniGOUmqu5sa+snqacnKmfn6+cnrGprZ2Xo5qhoJmWlqGkmYaJjWqIgHJ7l4iLlpaEkZSYj3qKhJajnYqUj4aLnpKdnYmQqaOgmoyRioCAaYCGeH+XjHuJjo6Ij5aaf5Sin6Chk5hyaJ+Kn4+McJKMgamHmJ6hpp6me7Cto6K4l3ejs6KkgIiUeZ17qpp/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmn90qlpdb3uWi3ieYkx+enqFY3mXQkyeWaJqcnyObYCIhJl1m3iGibGzf4Cbk6d3gp1uc32VcJp0a6RdlXZIZWRhdHF+fm5mYGxpdntkZWJSX1ddVVdAWkZRaERTV1xiWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQzxVX2JaZmpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZsXmVnZmtkZmxpaGtpk5yBsK6ZhFReoKazubKyqZqijJyrnJyqlKKspKKoj56dnZuZlpihnZaIh4l3hoFveZWFkZuLfJGTlohyf4iSoZtzkZCBiJmVoZuFjqmcmpWLi4p8g2yEhXGBoYx4ho2IiJOYlXyTo6Ceo4ithn21hI6enHullnqpgZWcj4mfm3ynaHdtfpl0oXNxfJ6GmXCTg659pIOmnpmAo29eqGd1o2NvpWGc05B8e5l4cnNjooaQfqNzpI92a5CzjGCCmIlzqrKovH93g21+vqaptF6cbn1xl25/cqJyXaRnc6ZhaKZtm9SafYWbcHp7mGycfHiXc26ppGdhZXpxgIRrZ2ZkbnV3Z2BjU1xmUVFiSVdKVGFXU1tlalxlUUZDS01KS0JLRThPQFFOWFNZT1NRYWZlalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7CrVFxLfqmvsbSvs6ObmYWZqaChpI6lqKCYqYqamJiTmZOSoJiOh4Z7cH2EaH2Pg5SagXeQjY+Jb3+Gj5KSbJaTfImSk6WWg4+rm5SSi4WJeoN2h4BugZ+Gd4CShoeZopd7lKOkmp+Js6Gitot6rKekrqVwqICakIWAmpB7pIChmYaYcp6Eo66vipeMf4ykjZWDraGUdrS1tcmhc5SKgZ9gnZepbXmVhqCbdaGHd6B+kpeLgW9MZqOScJuHc6R7enRhg4FrfqBrcWRfnHF9dJdpemmztbTGpnOYfnqda5ybq3aFm212eJhqmXt1mHJQRX20Xmp2a3mIZmpoYnR1cG5WXlRZaVBTaUpWTVlUVl1oa25WaFdOS0FKTUtISk9BUUtQZWNqbWV1c3N/eXxudYl7e1RQT2xeaFtraVJqaGlsZ2xmY2VgXF1cXmliZGlre19dZGhjamZvbWVpbGWhnIivpoRmP5Ohsqqur7WiopCAmKqio6WMpqednaaCm5eWjpeQj5yTjoiDeWp5h2WDjX+YoHl1j4iMgWmEhZKCjIWdjXqNi5amk4OYqZiNkYuBiXqAfYt5cJChhnmBlYeJlqCVf5Slp5yWloRmbnicbKJkfHGld5uYcGemgJWKeqR6n5aDl3KedoGKlJaPuW6QiqJifZmhlYhtcmmqa3WgbW6mX5ppi5BoloealXWigH2aYIyGjXVviGJooGWefmmbdW9jZoiCbXKiWl9bYqFtXYmMbnt+c3JkpW13omRnp2iZc4yZcKJvVYmQb6BfZqhUi15UmG5tc2tygm1waWt5c2tvUllXV2daVG1KWU9dSVhpaXNqWWtWUVJFVlxMWFNhVWlrX3d0e31wfXxyg3t/c3aNgIR2XlFyYmdicGdQamhoa2xuaGRnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKSYpnpldG2Lp66jqbCxpp+LgJirnZ+mjaOhm6KigJaZk46aj4uYkI6Ke4ZxgIhoi4t8mJxzdIl9kHtkgoeViomWmYJ8iIeXqJGBoqyRhpCKgop+gICOc2mPpYR9hpSNiJigjoiTqqadiaZ4lZt+pYiWjLKYnpCCr5efpXeUhnipc6WPhJpupKKMkoSMg7tufaWvg4aGhpOVnJ98pXpyqJWglmaefm+rY5aKlZJ4qGypooGJdoiDd6qRpodqkbBrdrOMqWuKhm1tn56SlWB+q4uqdn5/jKWedp99hKSVnaBqm4h3rGeerYy2dHe+jaSTWYOmjathdXJ0cXx0cWNqfm5obFNXW1ZhYl1rTV1SXUpebW52YFtxWVxgW2Z0ZW5vcmJxdGB3en55cnmDc4R/gXt7jIGCgHZieGRjbXNkUmtnaG9scmpmaWFgXlxia2JtbHpvXFxiaWJsandtZ2xuYpWlqp2BgJ6klqmqnaimrqSZiYOYq5qfpYqbpZ2pnYWMmo+HnJGFko2MjXSGeoiEcI2FfpiUdHSFcpKDbX+LkoeGk459e4KGmaaOf6amjoGOioWUdoKHkm9si6mAg4uUjomcn4mMlKqin4+AdZSXiH6BeZSuo3+Bm3GPhXiPioN+e3KnjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3t9iWuMhVt5eXJ6cGhufpKJcX91gY+Uk3GGhIJljH9egX+Ld3RylHVveW5uh22EhV52aHiOZYCAhY2pm310fJZqiYhwgXZ9hnZubWeMc3l7mHiFXGtYeY9pbnhycm94eHBdbIZuaWdWW2BXXGZrZFZiVV9RX3B4eGxrdmZqa2t2fXFydXNhb3VidHuBeHV6g3WAgX+BeYuFg317bX9sZHhuXlduZ2h1a3hqaWplXGBaY2plbXF0bltbYmxkbGx5bmhsb2GNlLiopouhopqmpJilnKuioYSEmKySnqGJm6eaqZiDgZuLf5aTh46KiY1yg3yPfX6PhXuYj3Ryg3CWhXt9kouGhpCFeX6Ah5qljnynoYuGkJCFlIOGjph3coWphY6RnZCInp6IjJuon5+qg4mOlZp+fomWraiPkqaPd2+ckIJ5kW5+qIVwfZVxa3B9gZ+Mf5OOjGhtXYOLjJybno5zlYuIcXRrgnZ0gVlyboaRgX1+jGpdamR7hYSJgGBpeHqae4KKgXWBhYJnd4qGa2FwcYF2XnKKgYiPppWFZYyPg253i4Rxho96cWdoZXuDepZbXGpnbnZbe3l4dW5zc4JmXG2Ka2tiWlpfWllscVxfYVpfXWZ0fnp0cHRja2trfH1zfHh1ZG11aG18fnZ6fHt6eoCAfm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VubGdzeW9oam1gi4uqsKGQo6Ganp2Xnpioo6J+g5mtjaCViJyikaWVf3uYhX2SmYmIhoeKc32AjHaFi4KFl4pxb4BymIaEfpOEg4aKgXqBhYycoZGCpqKIeI6YiJSLi5yXhYN6rIKRl5mUip6dh4ihq56hoaOLiJObnKOZlqqhp6agkpuHlY17d42Ng6d+f5KRkpOcsqablZ6QjbKSl4SljIyVm5+JkJuCiJGKa3yOd3hlgoaQi3yJnYSHi5CIiICEhJB3fHl0maCIhomeioSUfn2KgIB1b3OEgn53hoaKj6aQg4WNh4ONkIx9iIyKkYR5bYOEfXqZanJoYXSKcH16d3dwd3SBXV5vhmhuX15aXV1UaHJWY1xcYmxodXx8c29wZGtraYB8bnmAcmpwcGxngXtygoB4f35/hXttgoyGfHl4e316g3lOZHZqcm1wemVrZWNiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZIyHnbmelqKhmJSYmJSYpKCee4Caq46fjYagnIueln15lIN7jpmJhoSEhm54gYBzgYh+iZSEbWt+epeHhIOQf4CGhIZ9h4WOnJ6Th6yfhHKLkIaSkYudkX2Ne6qEjZKYlo+cloeGm6afoZqdhoKRmpmYkJqmn6WdnZCWf4+JdXuGjYOkenyOkJGGmKqhnZOdj42qjpGAnYyJk5qego6XfoaOg294hnJ1YX6Dj4Z1i5iBg4+ChoV+hYSUbnl1dJKhiouFmoOEjHN/iXx8cnJ7h4N6eIqOg5KmjoWDjoCDiomKd4aJiox+cW1/gXxuaGxtaF96f2h9fHZ1dnV7d1xfcH1udWBjW11eUWduVGVbXmJraXZ6fnFsbWRramiBgGxzgWxtdW55cIV5boeAdoKAfoV2cYKNiH57enx/e4KKYGl8anVoaYJlamNgaVxkdWhvYnVtbFVjcXllcHp7c2VqbWyLiZ63mqGjn5GRlZeLmp+fnnt4nqeRnIqHpJSLmJl5eo2FfImRg4yCgoJufH95c4GFfYuQfWtofYKYiYCHjXx+hoSGfY+CkJydkompnYBwjIuMk4ehooqFjH2okYiQkpeTlpN4jKOfoJ2WmX+AkJqYkoyao6GjmpeRmn2Mg3d/go6GoH9+jIyPfJikoKGTmZCPpo2PgZqRiZOXm36Tkn6HjoF0dIJwdmB9gI2GcYqVfIiMcYx/goWGjmh3cXiLmJGPfpZ9h4pygYZ7fHF4eoqEenmQi4KVpZOLhI96hoaHhXaChImIfGdzfX95e3Fsa2dffnNofHV2dH1zgGpeYHN2cHdkY1lfXlJraVVlWV9haGp2eYFxZ2tkbWhlgIFrbX5ocHFrfXmHemuMgXOBgX6BdHaCjYZ/fHp/gX1/j2pyg25zaWKHaGxiX3FWdG9tbmB4aG1XanR2Y3V6e3Jiam95iY2espKlpZyOj5ePhp2gm518dqWhjpiAjKKKiJqWeHuGh36DiX+IgoF/cX97dHaDhX6KkXhnY32Gl4qBiYx5fYCNg3mXgpaZl42XoZx+cIyCkZSGppuHjImDppWFk4uWl5OSd5GdoKGXk5Z5fo6Yl46Wmp2knZiSlJp4jYSCd4OWjZ1+gYmNjHKXo56hk5mOj6KMi4OWmIOSlpl+mIx8iI2AdnF9bnpkgHyKhXCGk3+QgmyHgoGAiYRldW97hpKXjHySd4uIe3+FfHtxfneIhXmEj4mKl6KVgYKKdoiEgoJ3fIKKhnhhenl9dH94Z21lYX9qandzdHV9cXxiY2FzbnVybWFaYV5bbGVSY1lgYWhrdnmGcWJqY21laH2DbGh1aW5vZ399gnltkIZxgISDf3R8g4yBgH56goN+fJBtdol0dG1limxqYmN1VoRpcW5geGdsYmp2cGZ5fHpxX3FshoWPnK6XpqiejYyXh4afk5eZfXiqnIqZepedi4yYkHl8gYx+fIN8gIKBeHR5enR9gIR/iYuAZF59i5WHfoSGdX1+in99mYWXlZiNpKOZf3OHe5SSiqePjI6Kk6GSg5GQlJeRi4GPl5+ako+Qc3+NkpSJnZ2eppeXjZWVc4yNiWuFl4+ZeoeIkIlvl52ao5OVio2ejIaCkpx/kpKVh5mIfIqJgXlxemt1bHt+i35thZKClHhwgoN9fop/ZHJpe4CWl4R+jHOPh4N4hn12d398hYB8goyDi5Okj3iDgXSJh32AdHaBiYVwYnx2enF9b2JvY2R8Y25vdnN4d3N0YXVgb2x1bW9cXF9eX2peUF1ZY2FobXR7iGtfaWZqY2h3iG5mbGlqbGeAfXt3bpCIc4CEhH10gYaJe4N9eoGEfX2OcnqLeHhubIdqaF9pcmKHaHFvZXZnbmxheWlrfXt4cGF3bYuAmZmqoKOonYqKkYaKnouVmH53rpmNl32fk5GWlIh3fnuKfXuAdnh/gHB0dHxvhn2BgIp/fGFbfo+Shn+Dg3N6gId6j5KJk5Kdk6aclYJ9gnyOi5KkiY6KjZibjYaRmJOWj4qIjJKcko+LjG6Dj4+RiJ6ZoqGXlomWkW6HmINmhZiOk3qIhJCKcJWalKKSkomLmYyCf5CefZKPkoyZjnuKhIdzcnVrcG51fIp0boaQjpJxdYB7gYGHe2RwbHh9mZN9g4hzkImAc4d5bn99gIV7hYuIg4uVqIx6h3t9i4V3fnFwgYaEZGl5dXVwfGJfcGFrdF5xant5eWxzcGV4XW5sc21yWVpfX2FrWlBXWGVjZ3FxfodmXWppZ2JncY1uZGlnZGlpgXp3dW+OhXSBgoN7dYKIhXiFfHiDhXqAiXd/i3t6cniDamtfcGh0gGpyb21xZ29sZXxjboB6d3Fsd3eKfqKXoaigppuHjIqBj52Hk511gaqVk46HoYyVk5CAdHx2hXh5f3Jze4VrcnB6bYp2gIGHbnFbWH6RjYh/f393dYGBgKCGkYuTnZihlZh4ioCBjYmcnoqPhpKYloWJlZmPlouLjI2MnImNj4NtiYuQkIqdlqGcl5SFmIdqg6KCZYWdipB+i4OLgXeTmJGekZCJiZWNf36PmHyRjY+NmpF8ioCCbnVwbG1vcHuFaXODjpiKcXeAdYKIgnhmcm51gZmOe4iDeZOQeXaHc2+Ie4WLeoqFgoeNm6OHe4N1gYt/d3lubIGEgl5zdXNxcHhaXnFhcGtecGp9e3FtbWpsdmBwb2pxbVpYYWFiblhRVFpmZ2N2b4SCYl1rbmRiZmuSbmBmZl9na4F1cnNwi4B1f4OAeHWAi4B5hX93h4Z3g4V8h4x/e3aKf2pxY3xjhnxucWx0amhvbHZ4X3F/eXx0dXSAgn6klZqtnqeWhY2Df5eUg5CgdYuglJKGi5uMlY6LenJ4dIJwcoVzcXWIa29tdm2IdoN+gG1uVVGBq5WHgnd/d3OCeoKhgpOClZSZnJOaeJJ7g42TpJqTjomVmZKFh5eZjJSLiY+Ph52Ej4p8c4uFiY6InJqfm5WUf5N+aISbhmeFoIeRg5GCiXGDkZePm46PjIyPjXh7kpB6jouMkpaMfIh8gGt2am5rbGx7f2F6fo6WgnZ6gHiDjHx5Z3Nsc4eVin6HhXqTjnF5g292jHqJi3mIfYGLj56dhHx6doGLfXdwamyCg3pheXFubXJ0Vl5wYnJhYGxuenFocGZmc3RocGthd2VdVmZgYHJTUU5cZmVdeXCIfF9caXJiYmVmkmpfaGRbZ3B+cGtxdIp9dnyFgHR1fox5e4aAeIiDc4aFfo2NhHx5lXhmcmqDYIh9b29remBqbnR/dV90fXmGeHRzhXx4oI+ZsJyljoKKf4Oah4CMnn+LmpSPhYiYjo6PhHd0dnOAcG+FdHByhHBrandug259fW11c1JNgt/IktaTfHB1g3aEoIOUd5WSmZyRmXuUc4WQn6GTk5GJkpuUhn6WloiNjYiSjYicf46Ad3qMfomMipybnZuVk3mMdWaHkIZrh6KEkYiXgoVjjJGZjpWKl4uNiotxepSIe42IipORiXmFfH5se2Vyb2trenlbgHmQjoB6fX5/ho56emhyanOKjomBhYR8lIprfX5uf4t+i4Z8g3mAjpSamop8dXeDkHhybWdxgIVua3VwaGp1blNfcGVwWmBscnhna2tiZnhycHBjX3dgYFZrX152UE5LYWdjXXpwiXRcXGV2YGFlZY9jYWZiWGlzc21qcXaMfXR5hoF1dn6Lc4CGf3qJfnKJh4GRi4h8fph2ZXNufWWIfm9wa4BabG55eXNhdnt7jXZyd4p3eZ+Lm66boJCChXeIlX59ip2HhqCRj4WMmISTjoeBdHdweXFuhG9tb39zZWV5cX1teX1qaGtjpJrB3K7voXNsdoR2haOGkm+XkZahlpyBknKFi6OXiY6VipCdloOBlZCFiZCAkYqJln6HenV/iXiHhI6cm5iZjo92iXVthYiKfImig5CJnISFXouTl4qOiY6KioSJbXuWgX2IhYmRj4Z2hX19a31keHVqbnlzV4h6koeFeX6AgIWMfnhlcml/iY6JgYJ+i5aEa4F1bYeQgY+EfYF4fpCVk5iQdHJ3h4x1c3FndnqEY3VucWJqd2hSYXFna1Zfb3R6YXJkX2h9cHJtWmNyYWJWbllceE5NTGRnYl53c4ltXFxkeV5gZGWFYGNjXllqcmtua3J3jH50d4SBeHd7iXGDhHx+iHt0i4mHloaMf36Xc2h1cXlti3pudHCAV3F6dnlxZXh5h4xpdoCJcn+ch5mnnKOShX1wjJR4eYudhIWhjY58lo2AmoiEe3N3cHNqcIFsam18dV9heHd7cXV7Z2BkfOvatcnD3IhzbHSBdoubiY5qmZCQnpaUgYlxhYmgjoWLlYqMmJR8jpOIg4mQe5CLhY+Bf3Z4g4RyiIKTnJeUl4aMdYZ9boOBiIaYoYKTi56DiWGDlI+GiYaJjYeBh2p9lIB9g4SJjo2CcYZ+f3F3aHZyaXR3a1qMfJKDhX1/g4CEioJ1YXNriICPioF+fpGQfG2Ba3iFjoWRgnuAfH6RkpCWiG5weYyGdWtxbHN5gmB1am9da3dgUmVyaGZTYHB2dGFwYF1og3FzaldnaGJpWG1WW3VMS0xmZ19icnOFaVtcZXleXmRne2FkX11Za25mb2lzeIp+c3OBfnp2eohzhYN8f4d2d4qGjpmBjIJ7k3Vsd3V5eJN0bnh7fFh6hnGAb2d5d5KCZHaGhXGKloWZoZqiiodzb5OLcneOnH6LmomJfJ9/hJp/gXhyc25vZHJ/aWZteHhcX3l7e3FxgGphZ2F/1baOkKZ4bnF3fHGTkY2Ha5qPiZ2TjIZ7aYeLmYaBkpGGh5iOfI2NgYGKjXyPjH2JhHp0eoN7cYaAlpqOk5SBiHSDhXWCf4mRnJ2FlI6ffohhf5OHhIiEiY1/gINnfZGAfn+CjI6Qfm2CfIJ0a213dXR3dmtjjYGPf4V+fIR/hIh+b15xcIR7jouBe36Qh3lwg2Z5goqGi4J6g31/k46PkoRubnmLfnVtbmxse35jaWxqWW53WlJqc2liUWNzeGxiZV5aaoNuc2FbZ19kbF9uVVtwTkhPZ2VcZ25xgGxbW2NzYFxjbHdkZV1dWmtsYm1qdHeGf3Fwf3x9dHiGeIWCfICHdXmJgZKWfImGdomBcHd5e4STb218gXdeg390gW1penSUc2dzh3xykpGDmp+boIaIdnaVfm12lJd+iJGEio6afYyadn12cW9samF1fGdianV6WmB4fHptcX9lZGhnV52PXnFzlrzEhHZxlIqQf3OYjIeclI2IdGuIj5WAe5SMgYSbjHyLhn18iYx/k4h1iYV2dn2BcXWGgZ6VhpWPgoJxf4dzg3qIlpuWhpONnICIZX2Sgn+Fg4mJcoJ+Z32Le3l/f4eLj31pgH2DdmZveXhzd3Nsao2FioGKf3mCgISDf2pdcHd6fIuIhXuAjn99coBoeIKGioWCd4J7gJeMj4x9bWt6iXx2dG9paH13ZV1xY1hwdFNUb3NoYk5odHhmYV5dWG+Ab3NZZWJdam1gcE9ZbFJEVGhhWmtubXtvWltebGNaY3B2ZGdcXWBramNsaXN2gYNxbn57f3R1g3qEgnyChXZ+iYGWkXiDinSBiHJ5eX+OkG9vfIFxaYF5en5tbXx2lmtqeIR0a5SNhZ+YoJqFiG59jHZqeJiPf4KKgpWYinqPlm96c3FsamRgdHtpYGZye1thc316Z3B6YWVljrGyd0piWqTZ0Jdye5KMkXl/loyFmpKNhm9shpKRenmTh4GEmYp8h394eImKhJWAb4qHcXR9e2p5hoOlkYSTjYN+bn6CdYJ3hZmYk4qSj5SFh296koN9g4OJg2+CeGiAhXhyf3+Diod8ZX1+hHVjcHOAaHlxb3WYjYWCint2eICEeYFqWm98cn+Hg4h9hYh6iHKAbXCDho2Dg3GDeICYjI2Ed21tfYN/dnplaGp+cmFaeFtZcm5OWHJzZmBLbXd1Yl5bW1l1fXJvV2ddZmpwX29OV2lSP1lnX1twamd5cVtbWWtlWWNxeV9oXV5lbGhmbGlxd3+Hb21/fYB1cIF7gIF/gn92gYWJl4pxgo1xe4Z9enqElIx1anp/bG9+dH99b3J8e5Rwb4B/eGaSioKhmJySgoVnh4RwaHqXiX6AhYKZioF8jY1peHJrbGZfYW95bV9ib3ldZGyDemFxdl9lZdXrvosyOj6LjoByeYaJj413hZiNf5OOjX9ubIWNjHV9j3+FgpWJfIN4bnaHhYOXd26IhGx1e3VmeYKDqIyDj4yDfW1/dHaBeISbj4uPkZKMi4Z+e5KHeICEjYNsgHNpf354bXx7gYqDeGF5hIFxZHFpfm10cXSBm4uAf4R+c3V9gHOAblprfXR4iYKKe4Z/fIh4eXBrh4KOgolxgXh/loqKfnRtanaAgHV1XGlpeHFZV31TWnJlTFtzcmVbSnF4cF5bW1lcdX91aFliW2dlbmJpTVdmUT1eZl1ddmZfdHBbWVVvZFplcXlaaF5gZ21naWxocHh+jmxqgoR/eW6Ae32Af4J6dYKBjJOFcICLbnd+gXt7iJOJgGl7fmt0fHKGe3N3fX+MeniEfnxrjIyDm52WjIGAbI1+a2l/j417fn+DlIJ/fYqIa3VxZ2hjW2Jnc29gYWx0YWhwiXphc3ReY2SboJBuXDVZr7V1aoCKfpOGd4eYh3WPjIp3cGyFg4d0eYl4iX2TiHp/c2d2iH59mG9whn1od3luZXqIhKWHgYeNin5ufnZ+f3uKmIaBk5CXiIuEiXyPiHF7fYV8aX5ta4B7emp6doKHgHJgd4F+cWRyZ3WCbXV7hZWRgXyBfm93eXt0fWxXbX11c4qBhneHdYGJendybYh/jn+Dcn58fZKIiHpubWltgoF1bl1oZnRyUlt7TlxxXE9ccm9kVktzeWtYWVlaYHGBdWBdXWFnZGhoZk5aaE5BYWRcYHZiXHVtWFhTdGFaZG5yV2peYmhrZ21saXB3fJNsaYSKfX1wfn57gX+CeneAgImLhHJ7h29xd4N/e4qNj4NqfntueHl3ind9eICCh3+Df356bYWMiJijjYSDe3aMeWtthImSeX17gpGAgH2Kg3BycGNmXllnX3BwYGFocGZqb4p1YXRvW2FkaXZ7f76cpqPIuHKFhHOTfXmIlIR0kY2IcnNwhHuDc3WGdIh3lIl5eXFjd4Z5gJNpcoR1Znd2Y2p8g4iegoB/jo59cn5zg3d+kI+Cd5WNlI+Hgoh6iYlreHl+dWh6aWx/eXNpenaAg31oYHeHfmpqc2h7gGl2gYyQlH56fX1xe3Z7c31hVXV7cXOJg4J8gnCGind3b2+CgYt9fHh9fHWNhYJ2aHFobIiCcnBdaGN0b0tldkxeb1VUWXNtYlFPdHliU1hYXGFwgnRbYFxoZWRjamRQW3FJRGRiXGNxX1x3aFVXVndeXGVuaFZsXmFqZ2Vvb2hwd3qTbmmIi3l+c3t+eYKBgnx2fYOIhoNwdoNzbXeDg36Ji5R/cYB8eHl6gYt0g3h/gYGChHmAdm9+iYubnoh9hnp3h3xodIaNkXp/f3yJhoR2kIBncG5fZFxYZVltc2FhYXFsbGiJbmBzaVleZG2Ad6naqseGh7NyinlwjnZ9iJCBepSKgHV0dX53gHBxfm2FdJSFeHRsYHqBeYiOZnGDb2d1blttfYGQk4CBeZKSfXh7bYZ0f5CLg3KVipCOh4WFe3+FbXV2f25od2ZtfHZtand2f398YGJ4hnpodXVjfntndIaOjJV7dIB1cYB6fGx+WVZyfG90g4Z/f3hriIZzeGp0f4KCfHl8d3tyioB8c2d0ZG2LhG10W2tgdmZIbm9MW2NYV1Z4bWJQU3V3WVFWWF1gcoRvXGBjbWRjXW5iVF1yR0NmX15maV1ae2JSVlx1W1tna2FWa19hbmZmbHFocHZ4j3Rrjo11f3Z4fXeBg4F7dH2DiIiDb3GAdXF1foaCiY2Ke3d/eIR8fYWHeId8fYF+hIB7fnN2eYyOn4yJeol3dYN5Xn6Gmo15h4N0hoaEd4l7Ym5sW2JbW2FVanRkYFtob3Bnh3JhcWZXXWNrf3zKzoe5omtubottcoVyfoWLf3uShXp5dHl1dXtqbXVjhHaSgXZvZ198gXmLiWVxgWpqcWNYbXuGnImDgnOXlHd+e22HcICJioZwlo6QiIWLg3p5fnFxb31naHJjbnhyamxxd318el1leYB3aXV5ZoJ2Z3SHjI2UfHKHam5+gHhte1xYcH1sc3+KfIFubol/cHZmdn6AfoB1e3F6c4Z7eXFlcmBtjIJsc1hrX3hdSW9sTVdWX1RVfGthT1R2c1FSVFZdYnSFaFxga2pmYlluYVhjcEdBaF1gZl9cVnteT1ZlcFpbamhdV2dgX3JmamhyaHFzd4d4bpWKdH97d355g4eAdXN/hoWOgnBwe3h3dXmHhYeMhnp8f3WLfn2GhISHf35+fYd/fHh1eXeRk59+jH2LbnWAeWSDiJeGdJKKb4WFgnqDdWNuallfW11dVWhzZWBZZHJyZ4FzYmtkV1tgaX94vq57n7dtYnSHaXR8cnqEh3t+jYB4eHN3b3t3ZWpuYId1joByaWJffnh5ioNmcH1oamtbV294iqOBhX9xmZNxgHh0gW1/gZCHcpOHjIeDiIV9eXRyb2h5YWptYW12a2drbHp3endbZ318eGVzfm6EdGV1ho2GlX5wi2ZreoJ0bHRiW216anR7i3qBZnSGfW1wZ3R+d3x+cXtreXuBeXdwZWxhbIl+bW5Wa2B4VktrbE9ST2lOWX1nYk5VdmxNUVRVXmZ2g2ZdYXBoZ2FXaV1cbGlKRWtaYmRWWFV5Wk5XbmpZXWxlXFllY150ZmxkcmdzcHSBeHCZhXaAf3h/fIWHfXVzgoeAlYJuc3l7e3NyhYeIiIR5gX12j399hImOg4GDe36Lg3t3fHd3mp2XeoqDh2l2fnxshIWUgHKPgnGGgn6Cf29mbGdXXVtcW1NlcGVfWGNzdWl1cGRlYldcXGiAcG9ygHOJZWV5f2p0dnR0hIV4goR6d3R1bmt6cGFna2eGdI2DbWZeX3xve4l9aG13ZmlkVldycI2nfIR8dpaQc3xye3ltenqQhHaWe4eGgoaDfXVwcm1ndV1taV9sdWRnZml6b3tyWWeBdnVncIB4gnZid4WLfJSAbotqbXqAcGVyZWBreGZydol6fWF1g3Zpa3F0em94eHJ8ZX1+fnh2bmNlYWyGfG1rVmpiclRMaWtQTE5wSF57ZmFOVXVlS09TV2Brd35lXWdzaWVfVmNXYnBdS0trWGRhVVRVc1dNWXZlWl9rYFxaY2Vfd2dtYnBpdG9xfnV0mYF4gIB4gH6GhHp9doKDfpiFbnJ0fHp0cYWFj4KAeot1dJCAfYGUjoCFhHx+jIZ6foB2e6OlinmIhoVsdXx7dYSCjHpvhXN6hX2Cg3VuamllVl1bW1pTY25lW1hhdHtqaG1oYGJXX1tpgGlrb4BnbGFpenlqdHV0b4aCe4F9dnVuemhqeWpfZW5pgXeQhGhmWGJ3aX6Hem9pb2dmXVVYb2iPp3aBenyQjnh1bn1tcXR4jn53lHSFgn+FiHZqcnZnaG9cbWVebnNfZ2JqeGh7bVttg3N0am+Afnl3YneEhHiPhXOIcXB5f3FicGhbbndkcHOHe3hhcoBwZ2l4c3Frd3ZzdWKCen53dXBjY2NtfH1ra1VpYmdUTG1pUEdSbEVheGZiTVRzXkpNVVllbHh7Zl9tcWpjXFZfVW9vV0pTaFhnXlhNVWxUS1x6X1tfa11dW2JlYHpobGFvb3Vub3d1epd9d4CBeYCAh4Z6eXqDfYGThHF0dH96dnSFiJB9gH2QbHOVgXuCn4V/h32AfoaCgIp7doSsn396iIeEbHKCeXaBgIJ0bodvfYB0ioBqb25kZFhfWlpaVWJqZ1xaX3WCaV5tbFxhVlxca4FlcnR9aWpdbHd2aHV3cm6HfH5+enZzbHpnaXdnXWRzaHp3koFjY1Rkb2eChHd2ZmhqYVdWWWhkkKdufniAi456cG97ZnhueYp6do5xg31+f4ZuZHZzZGhoXWxiXnBvW2debXVlemlddIBvcmtxe351dmN1hYp7h4eAf3dydX5zYHBsWXByYnFxhHt1ZHKAbGBsem9qaHp3dHBkg3R5eXVxZGFkbXN+amxUaV5fVUx0Y1FHV2JHY3dmYUxUcVlLTFhYZ2x2emVlbXFmY1pYXVh2ZlRKXGNYaVhYSFdlUUljeVtdYGxbXlxiZF6AaWpfb3R4bm9udoOXeXKBgH2AiYyGfnZ2hniGjH10dXWCeXp6goyOfX6EiWp0loF7ip19foV5gHt+fIaIc3GProx7e4aQfmZxiHp0fX12cm+GbXt+bY96YnBvYmVdZVZaWVdjZmtgXV1zhmlYcG1bXlhaXGx7Y3F3dm1jW250dGh1dnFthXl/gXl3bm90ZWh0ZVtndWZ2dpJ6YF1TZWZqgoFzfWFjaVxVWF5iZJClaHl0goWQeGxueGZ3bHuDeXSIcoB4e3h/aGV2bWBmYV9qYF51a1llXW9uYnpmW3h8a25ucHd5dHVlcoOSf4eDiHp2b3F8cWF3Y1pub2FwcYF7c2VxgGRebXZpY2Z4enNrbYB0c3xycWJeZW1vfWVpVGhZWlVOeWBSS1pZSGJ1ZGFKVW5USkxaVmlscntjbGxzY2FZWlthd1xUS2NdWWpTVkdZYU5IanZYX2JtW1tfYmNdhWloYW54eWxvanaBkHhtgn6AgpKIhIF2dYl0i4Z0cXZ2gnh8fX6MkIB+k35weJaDfZmSeYCAeHl+f3OIg3NwmaJ7e4CJlXlkdYh5c3l2a3Nwf2x5fHCRcl5wb2FnYmxUW1pXaWRtZlxccolmUnJtW1lYWGBsdmRqdWpqX1ttdHJtdHR0a4Z9f4B8d29ubGRpcGNba3JkdHaOc1xXU2RgcX9+cYJcYWNeU1phXGSTn2VycYSDkHNranhsbm95eXpxgHZ/cnl6emRmdWdeYlthaFxed2lXYl5waGF4YVt7dmpqcm93dHN0aXCBlIOGfoR2cmpwe2xldldbam1icHKAenNlb35bYG9xYl5pb31sanJ9cXB3a3BgW2VrbXthZ1RnVVhSUXdcU1BZUkhjc2JhR1ZsUUlQWlZrbGt8ZW1vcWFbWlhZbHBXU09mV1dpU1RGWlxPSXJ1WWBkbWNYYWBhXoxqY2RteXhrb2l1eYV7a4R9gIWZfYKEeX2IbY+GcW93enx0goJ9i4+DgpZ0eIKThoGfiXWBf4F0f4Jwh4J1b6KXc3uGi4d7ZneLb258cGZ4cXtsc3ZzjWtedG5hZ2ZrU15cVmhibGxbXHGMZE5vbVxWWFVnaXRoY3RlZV1ab3ZvcXV1emyIfYB9iHeQc2Nka29hXW5tZHN4iGtaVFZiY3d8fHCFXGNfY1RaYFpjlpVjbnCDhIlyamd5bmVydXF6a3lzdW56fnVfZnNjW15XYmRZYXVmVl9hbWNhcV1dfm9oaXNxc3B1dWtshJOBiXuFcXJmbntvcG5SWmVqZXFzgHZzYmx2VWJxa1tebmR8ZWt0fHFycmptYFljaWp4XmZUZVVWUFVvWFFXVFBIZXJfYUZYa09JWFRWbmlkfGlreGthV1xVW3RkU1JWaFFZZ1RTSFpbUE54d1tgZmxpWmJgXl6PbmJma3l1bm5pdnZ+fm2EgH6Gl3t/h4GJfmuTiHJndIB6dYCDfomPf4uTcn2KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYt3eG57jWBkfHFneXN5bW1xdoNnZHxtY2ZnaFNgX1VnYGxvXF5ujmhNaWxgVVZTb2ZzbGV4ZGVdWnF1bnN7eHNuiXuBd5x7emxiZWxtXmBvamVxeX9nWlZYX2x4e3tvg19iXmhWWWBYZJyIYmtxgYZ8d2tqdmxbdXBqeWl1cm1ue4ByWGpuXlldVmJkWGVxZFRfYmliYm1aYH5rZmtzdW5td3ZraIWMf4l6h21xZm97bHFsYlhfaGhvc4Bzc15pbVNlcGRVYm5heWJvdHp0am9sal9YYGZodV1lVmJWU09ZZ1NPXU9PSGVvXWNHWmpOSl9LWG1lX3hobn5kYFVeVF10W1RTYGZOXWJVU0pcWlFZdXZdX2ZtaFhiYVtejnFjZ2p3cXNtZ3ZzeYNzgoN7iI5+fIqIjnlukIp0bHOBc39/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY2Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6OjY2NjY2NjY2NjY2NjY2NjY2Pj46Ojo2OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCS5KamZmZmZmeoKCgoKClXiovLy8wLEiFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTM/k56cnJybm6KkpKSkpKpWFRwcHBwXOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaNjo6Ojo6Oj4+Pj4+Pj4iCg4OCgoKFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5GLkIuKkImPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyMjI2NjY2MjIyMjIyMjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoaMhYqKhoiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCQiIyGiIeFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkJCIjY2JhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMkIiMh4WIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2PjI6Kio6Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+JiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5OUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpKTk5KSkpKSlJKRlJOVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkpGRkpOUg4WUkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSko6DkpGRk411iZORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCRjm9/kpGRfHSJkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+QeGqEkYpzdoiQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo97Z3GOhHJ1h4+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjnlcaHVwZG+Ijo2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLioqGZGlrXGdqa4OFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d25jdWxbanVuZWhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hnYGdvb2ZscnRqYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXllcYmdqcm9xc21aWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVJfY2Vtbm5qaFJRVFBQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OT01NVWNrZ2xtbWdlWVFPT1BRT05OT05PUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0VFS1JeaG1nbG1sampmYlxVUE9PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEZGU1tdYWZqbmpvbWtqa2tqamZaS0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7P0BDU15jbWxsbndyamlraF9UTUZFRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7PDtHS0JOYm1wenNramBLRkJFRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHN0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs9PDo+TWB0cGNOQz9AQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5Ozo2OFdmQTg4Ozw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT08PDw6RFk5PDw9PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9APF1uQD5ERT8/QTxGXT0+PTs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdJODs6PT1BPEtiPTw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw9PUlMRkZ2d043ODg6Oz4+V2lBOzw8Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dnd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/eXx3Vjw9Pz09PkVpdE06PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoKEg4ODgH1dPkBDQEA9SXJ7Wjo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2EdUxBQ0VAPz5Ye4BdP0NFSUpJSU1NS0VDRkdHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVxQ0RFRENXdYaHh35YR0hKTUxOT09MSEdISEhJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fH1+fn19fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIptQUFWdIeJh4eHiINXSExNTE1OTElHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3Z3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINWbIWHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSkhISEdJSUlKSUhGSkpKSklKSUpKSkZJTExLSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpVgYOEhIKChYaGhIKGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJioyMi4qJiouMiVQ6ODY2Njc2NjY0NTc3MzU2ODo4NzY1NjU2NzY3Nzg6Njc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIKDg4ODg4WJioqJiYqKioqLiYqKgUc2NzY0Njg4NzQ1Nzg1Njc2OTk3NjY3NjU6OTo7Ojs4OTg5ODc3Nzk6OTg4Nzg2ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhISGiYqKiIeIiImKiouKiYmMej45ODg7PD0+OTo6PDk6Ozk6Ozo5OTs6OT09PT47Ozw9Oj47OTs7PDs8PDk6PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXN2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUBCPkBCQEA+PT0+QD8+P0A/QD09P0I/QEE/QT89QEBAPj9BPT48Ozo7OTk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t9fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUJBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4qKi4qLXj5ER0lLSklGR0dERkhHRUJAQENFQ0JAQkNCP0BESEVDRUNFRUFGRUZERUZEQEI/PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyLioqIVkhNTE1MT0lJS0lJSkpJRUNERkdGRENFRkRCSElLSEdHRkhHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE5QTkxOTEpMSklJSEpGREZISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hHR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7PD06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIuLio1yTlJQTk1NTExKSEdFSUlESkhHS0pISkdHR0tMTkxMSEhJSk1RTlBOTU9LSUdJSkhJRElISEZGR0dIR0NCQUNVbnB1d3d5enh5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4tfUlJQTU5NS0pHRUJHSkdMS0ZLTktLSkpMTUxPUE5ISUtMT1FQUFFPT0pJSkpMSkxGR0hHRkZJRkVFQkFCQlxvcnd4eXp6eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxYVlJSVFNPTEtKREVGS09OT1dVUVBPUVNTTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSUpEREVFQkRDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQkdWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hXVWthRVJRUVBJOztSVFJgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTlJQUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0dGRT8/QUFFQkNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqLjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJdXVddWlVFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd5eXp7ent8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKi3lucFhaXFtSU1JWVlRbWnWDWVV9kGBcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTlBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVRVVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlbXVRZVVZdWktUWlVTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlNVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlRkVX9SUVFOS1JUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXZ1c3N3enp7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM9Q0lHVkBITkxHXWlQSEZPRkRFRklHSENESEdIS0dEQkFEQE5RTVJkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgmtNRz9AOjs+QEA/Pz5qUUthRUZISUVCP0dMTkdNUVVJQkU/Pzw9PD09Pz0/QUNDQD88PUI+Sk1HVW50dHVzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqamZgW1FSWlxZXkpKUFFOS0xRUlFUVlRXUVFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtMV05IR0BBPDk3NzY5OT07Ozs4OTg5PzxCSD9cc3R1dnV2eHp8fHx9fHx9fX5+fH59fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZGSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FXUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxDPmVzc3Z3d3l5e319fHx7fH19fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aWE1MVFRTUFFVT0xSU1RXWFRUWFFMV1laVlhYVlhZXVdYWGhza11WYXNrYWFfXmRhX15ZVFFOTk5MSUhKS0lJRkNRUFNbV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTlHbnF0d3h5e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fn9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1RWWFhZU1VUTEtUVlVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTE9SUk9NTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz88Ojc4NzY1OTk2NzY2NVdwcHN3eXp7fH1+fX58fX18fX19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF1SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMSk9SUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9xdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lGTE1QTUcvRV9SPjM/PmpvYVJSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR2ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydXl7ent9fHx7eXx6en5+fHt1dHZydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTUxLSTw5ODc7PkA+PD1BQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFBSYVxRUFJOU05PUExMT01LTUxNT05bV0tNUU9HSUhDSEpMTEpGRkZFP0JDPjxCRz9CP0FkcHR3e3p7e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSEREPTk3Nzk/Qj47P0JAQD5BRElFQ0dHSUdJRUJCPz49Q0JBR0lETU9iZVFNTk5XS0tNS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7ent6d3R4dXh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEpEP0E9OTk5Oj9CPzxAQkJBREVHS0ZDSElHR0hDQz9CPz9AQT5ERURLTVJUTEpJTVRHSUlKTEpLTElKTE1PUFFQS0dDS0dDQkpKTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFHS0RHSEhHSktJSktER0I9Pj06Ojo7QUI/PUJCQ0NIRklMSkRJSUZHR0NDO0FAQj5AQEJFRElNUEhIS0dIS0RISUtNSEpMSElKS0pNXFJISERORkFES0pNTVBNS01KS0ZHR0pNTlFOTGJtaXZ2d3t4fHp9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLQ0ZFR0VGRkdFR0JDQD08PTk6OjpBQ0A+QkNFRUlFSUpMRklJR0ZGQ0I7QUNDPkBDQ0NER0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lIRU5JQkZNTE5MT01OTk1LSEhJT1JRU05SZmZmcW9zeHV7eXxsaGpuZWtxbHNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQ0NDRUBEQj5APzo7Oz06PT5DQT5BQ0VGSkZJSExIR0dHRkVDQD1FRUI+QkNDQ0RHSElHTVBKRkZHS05PS0ZISkZFREVJSkhLSUZIUEtDSU1MUE1PTk9PTkpKSUxSVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxmcWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMR0VFSENCQUJEPUNCPkA9OTo9Pzo9PkBCPkBCREdKRklGSUhGRkdFQ0NBQUZGQ0JDQkRFRUdHSUZMUUxJT0pKTExJR0hFRkVEQ0lJSEtKR0tSTUJOT01RTk9PTU5PS0tLUFVXVlVUWF9eXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJAREQ8QkFBQzw4Oj0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISEVDSUpJS01LT1NORFFSUFFRTlBNTlBNTE1TV1ZYWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW95TUhHSEhCQkJGRTxAQ0JEPDc6Pj06PjpAQj4/P0NFRkRGREVIRkRFRERFRkdKRUVKR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFNPUU1OUU5NUFdaVlpZVlpdWlhhYGBgX2hlY2BkZmhnamhoaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSUhHSUNBQ0hFPEBFQkU8ODo+Pj08PEFCPD8+QUJGQ0VDQ0hFQ0VFRkdHR0lGR0tIRElIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05PUlVWT0tVV1NRU1FSTE9RUE9UWVpZXFpZW15eXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdE1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkE8QD5BQUZDRUVESUVGRUdFSEhGSEhJS0pGSkhIS0hGRkxJSEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1JSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpnZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRUZJRklGRkRJSUdJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QTE9QUlRYVk1OVFZUUlJRUExOVFNSV1teXl9dXWBfYGFhX2FjZWJkaGJkaWpndotsa2lnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2bndLTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdER0lHSEpGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNRV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUVDSUpKSUlLR0RLSkdISklJS0hKSk5MTkxJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxrVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHREVKRUVKTU1LTExHR01JR0pLSEtLSUtLTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZmVxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm5cb3VncE1Kcnl2a2Jga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEQEFCQD5DRkdCRkNGRUVFRENISEdERUtIR0xNTkxNTUZKTkhKS0pJTEpKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcF1fcmtxalV1eXhwY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0hFRUVCQkI+QEBGR0JHRElFRUVCRklISEVHS0pHTU1OTE1OR0xOSUxLSUpNSUpJSktPUE9OTUtOTkxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SE1HSURFRENBQj1CQUJGREdGTEhFQ0NIS0hIRkpMTEZOTExTUkxHTE1ITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnRzdnNIS0hJQkVFRUFAPkREQkdESElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLS0pOSUhKTElLSklISk1NTU1JS0tLU2tiW2leX2ljcnJaX1lqb19lZVVrX2NbYWFRYG1oXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERURGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKS0tJSElHS0tLTEdIS0tMTExMSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xVWVpdWF1cXGNmYWFlYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDQENIREZHQ0lLTEhGREdLTEhER0lQS0xPS0xXTElFRUhJSkhJS0lMSkhGR0dJR0hJRUZLSUpLTkxJUFxXXlBcW2BeTVhZU1xcYl5NWVpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNFTE1CRENCRUlFR0dGS0pLSEVFSkpLRkVISFBKTU1KTVNIR0VBSEZKSUtLSUxKSEZFSUZERkdFRUpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfYltgXltUWFdZXl1jYmNhY2VoZWtycG9wcG5ud4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNHSEVIR0hLSUlJREZLS0tFRklKTktOTEhMTkdIRT5HR0xJS0tKTEtJR0VJRENERUJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVlVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFR0lGR0hIRkZKR0hHSEtJTERES0pNTUxMSEpKSEpGP0dGTktLS01LS0tJR0dDREBEQUhJQj9JSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUltXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHRklGRkZJTEpORkRLSkxOSkxJS0pISUZCSElRTUtLT01LS0lIR0VEP0VDSEhCQkdHRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBR0ZER01SSENRSkZISEhFRktKTVBFRklKS05MTElMTElJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VEV1VFXFVeU1ZfWE5UVU5aWk1KS1RgYVtfWF5eYV1OWWJcYGBfYmNiXWFiV19fVFBOT09XUV1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJUmJQQ1ZeSUdHSERGTUtQUEVJSUtLTkxMTE1LSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0JFRkJNSEJLTFBPTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xRU1JVWllXWVhYZFdPU1RQUE5NT1RTW1lYWl1cYGFkZWNnY2tscHNyenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hMR0hKSEdNTFFRSUxLTEtOTVVOT0tLTEdHS1BTU05QT05PTk9IS0ZgRURfTERmZEVNW0leW3JtT01VbVlMQ1FgVWtXZ0pdWFVeRE1RVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalNXVlRbXFtgYGFhYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xIRUdGSEVFS09TSUpGYFNHSk9KSU9NUlFLTUxMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUX9RSXxZWXFzWFBtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZWWH9qdHV1X192X1hhW1xmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1OQkRMTEdJTEVRVkxLTklLUlhXUU1PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWlJUUXZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zcnt8b355b39yX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpLR0pQT01NSk5WXllVTFFTTlhaTFNTUk5MUElRUlRZV1dQVFBQUFFLSGd4bGN4cm1bS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en5seHp/b2hvWXZ2anV1cIFgcmd8aWx4fG9eX19iYVtdYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXdybk5LU3ROQ0JGUFBISktKTFFPT09NUFpgWldLVFdQYV5SVlFZUkxPSVNUVlhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybW5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGZlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUElMTUtMUVFQUFBRV1xYVU1VWVVmWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9bcHp7XmB6c2Nyb3hxaGR8aXJ8XlRMbGB2dWtpdXx7bX54a3xwXV5fYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z2xpaGRnYWFrYWdzcmxnbW1yfGttaGt7dG1ta21PSEpLSElISFFQTE5PTU1TUlJPU1JXUlZUUFdbVlZUVFRhX1BOTUtUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFQTlFRWFlSTlBVVFhYWFtaVVJTV1tXWFdaT1NVV1hYUl1ZV15XVFBZUlZXV1dYX1tncl5bW1ldXV9jWl9jY2RmZGNjYlpjY2ZmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlXT09MTVZUUE5VU05PTUxRUEtKUlFLUU1LS09SVVJRUlNSSUhMTk9RUlFRUVRWUlhXXFdTU1BRVVVWU1pRT1NSWFZUWVZUWlVUUlVTVFVXWFddWl5hXVtaWlxcYGNbXWJjZGZkZGRhWWBhY2FiaGhpbWNhZF5fY11aZFxibWFeZmVnbXNkaWhra2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNQUEtPV1NQTlVQTlFOS1NQTE9VU05STk1OUVRRVVFTVFVOS01PUVRUUlJRVldUWVpbWVNVUlRXV1dZW1RPVFVYVVVaVVdZVVJSV1ZVV1tZWl9dVVheXF5dW11hYV5bYmJjZ2ZkZGJYX2BiXmBoZWZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FbWlhXWFpaWFlWXGpkVlhZWldWU1NPSk5WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVk9YUlRVVU9OTVFTVVVUVFJUV1ZaXVxaVldRUldYVltbV1FUV1ZWVllUWFhVUlJZV1ZaXVldX15WXl1eYFxbX19fX1piYmRoZ2RkYlliYGFeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFPVVxbWldbW1xZWltkcW1oZF5bWVZVV1FMTVZSTU5ST1FST0xQU1JVWlVTUFBMUFhXUldTU1NYTU9QUlRYVlVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpYV1xeWl5fYFVhXGFhXWBiX11gXWNgY2doZGZgWmNgYV9fZWRfYGNbWlxbXFlaWVlXXFlcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRST1VUU1BXXF1cWF5cXlZcXmpxd3mAYlxbVlZYUU1PVlNOUVFQUlRSS1FUVFlaV1VPUU5TWFdUU1VSUlpPUFNTVltWVldUVlpYXV5bW15WU05UVVZcXFZSVFZWWFlTVFlcVVNTXVhaXV5cYGBgVmFbY2JdYWNfXGJhYl9jZmlkZl5bZGBhYGFjZF9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJRV1JUUFtdXl5bYFxgVVxdaWpyfXNsZ1xVWVdQTlJaU1JRU1JUVVRLUlZWW1paU09TUlZWVlRPV1JTWlJUVFRYXVdYWFNYXFheXVlaXVRVTlZXV15bWFJVVVlZWVVXWVxVVFdeWV1dYF1iYl5ZX1tlYV9kZF5eY2NhXmVmaWRmXl5kYWBgYWJkYGJeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWVteVl5ZXVBPT1JaUFpUVVZWU1RUXl5gX15iXGBVXV5ia3l0bH1rWlVZVVFQU1xUVVRVVFZZV0xSW1ddW11ST1VTWFdXVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paVFVWWllaV1haXFZVWl5cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09RV1lRXVVWWVdXVVhfX2FhYGNdYFRdX2JlZXWBemhYWVlTVlNWXFhXV1ZWV11YT1VdWl5dXVRSV1NXVlVTVFhSU1ZUWFhYXV5YXVtWXV9YX19YXVZRWVRZWlphWVxWV1hbWltZWVpbWFZdX2BeY2JiZWRcYlxgZmFkZmRfYGRiYltmY2hlY2ZhZl9gYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVZWXGBhYmNhY19fVltgZGFfenVvaFlcWlVYVFdbWllcWVhZYFdQVl5cYGFcVFRYUFVXVlRWV1JTVVdaWlxfXlpfXFZfX1leXlleVlNZV1lZXWJaXlZXW1xbXFtbWltZWV9fYGBkYmNkZWJkWWJmY2ZmZV5hYmBjXmJjaWRjZ19nXmJiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheXF1bVldYWVxcXF9bWVtiVlRYXl1hY1xSVlhQV1ZXV1dWU1VUWFxcXmBgXWBdV2FeW15cW15YVlhYW1tfYFxfWFldXF1eXlxbXVhbYGFeYGRjZGVlZmJYY2VkaGdkXmNgX2VjXWVpZGVpX2ZeY2JjYWFgX19bWFlaWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWlhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXlldXllYVldbXGBeXWBaWl5dXl5hXFtbWlxfYl5iZGNlZmVmYlpkZmZpZ2NfY15hZmVaaWljZmljZV5iYmNhYGBfXV1aWFxZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhLWFdcWVdcW1xdWldcXV9gYmRhYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpiZWNhUlxaT1hYWltbWldaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfYFxbXl5gYmNcXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGNnYFxpaWJoamVkYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxdXl9aWFZbX15dYWFgXltgYWJlYl9dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBbZWdeYWhoYmhoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t8fHx8fHx7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t8fHx8fHx8fX19fX18fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKgkU+Pz8/P0AwKisrKyolYpKMjI2Njol+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjI2DOjIzMzMzNCEaGxsbGxRdlo+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXp5e3hub29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx2dXV1dXV1dHNzc3Nzc3l9fX19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnd6eHt6eX15eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3x8fHx8fHx8fX19fX19fHt7e3t7fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eH16fXp7fXt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHp9fH1+fHd4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8enp7fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt5fH18fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4eXh6e3l8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3N0cnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3NycHFzcG9ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzcXRzcnFvhoRucG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXiDcXJycHedf25wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcXFxdqGIcHJwj6F9b3BwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXJvlap/cHegoX1vcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcnCPsZ5wgaWhfXBxcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycIy2qpGbsqZ6cXFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3N1oKejs6impXh0c3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHd4eIKon6Oxo5ukj3p5enl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fn18e3x8j6ORk6WcoKGWe3t5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX2OoJiWmZyWkJmCf399fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgI+xqqWfoZ+hoYN+gYB+f39/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f3+AgYCDpK6hp6GgoKisnoV+fX6Af35+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f4CFj6expJynoaCgoqOrqZyMgoCAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KGi5upqqOdmqKdn6Ggnp+ipaGVhoGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgoSHkJiYlpeZnIyUn52bnJqUjIiEg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoGBhIaOlpeVh4+anJaOiYeGh4eHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj5CSkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGCgYGIkpeOlJqThoeHiIiIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SEgoKCh5KWioSEg4OFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6RkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKCgoKBiJGCg4OBgoCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAgICIkYCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/gIyWgoKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmIqDhYSEhIKAkpqGgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSk4+MjIqFhIODg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYucjYCCgYGCgoaUk4yBgoGCg4OBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiIOEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZeLgIOBgYGAj5OMkIGCgYKCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4p9hIWDhIKDg4KOiYWMgoKDgoKCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUk5KSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf359fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMi4iFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFgoGBfn2Bh4aDgH5+f35/fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6Fgn9/f39/f39+gICEhYSFhoaGhYWFhYaHh4aGhYaFhYaHh4eIh4eHhoaGh4aHhoaHh4eGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoeGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiHh4eHh4aHhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoOCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGCgoGBgYGAf4B/f357eoCGh4iKiomJiYiJiYmJiouKiIiIiYmKi4qKiIiHiIiIh4iIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaGhoWDiZSTkI+QjoqGhIaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgYSEgoKCgoKCgoB/fn19fX1+fXx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGh4eFhoiIiYiGhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoODhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX5+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4iJh4iGiIeGiYmDg4SDhYSEhYWHiIiGhYOCgoOFh4aHhoaEgoKDhIKDhISCgYKBgYGDg4SDhJGSkI6PjouHhYaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGh4eEg4GDg4SFhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoGBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhISFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4GDg4ODg4KCf319f4CAgX99fn59fH19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIKDgoCAgICAgYGBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn1/goODgoOCg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f3+Afn2Af3+AgIF/gICBf3+AgYF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/f4B/fn59fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gIB/f35+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f3+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXh+gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAgH+Af4GAfn9/gH5/f35/gH99fn19e3yGk5KMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKChIOAgoOBgIKBgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTj4mJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf39/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeIh4eHhn99gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCCg3+DjYSEhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSCg4OCg4WEhIWDgoODgoODgoKCgoOCgoKSkIuIiIeJh4aGhIaFhYSEg4GCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaHh4eHhoeFf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEgoGDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fXx8fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMi46KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4SFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn19fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fXyAgYB9ho+BfX2Cfn9+gIJ8fIB/goCCgH59e4qCfYB/foGAgIGCgIKAgICBgH+LlJCMjI6OjYiIh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIKAgX5/gXx+fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX18fXx8fYB/gIB+gH5+gZSSjY2Njo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoCBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYODf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fX1+gICBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6NjY+OjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f32LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX6Afn9+hJKNjYyPjYuKhoSGhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fnx7fHx8ent6fX+AgISDgn9+f3x8fH18fYGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn5+fX19e3x9fXx6fHx+gIKBgICAfXx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISDgYKBhYaFhYaGh4WBhJGPjYuKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fX18fHx7fn57fHt8fH18fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJioiLiYWIko+MiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8f4B/f39/f4CAf35+fn2AgIB/f39/gH+Ag4KAf4CBgICAf3+AgX9+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fX19fXx9e318fX1+fH59fX19fHt7e3x7e3x7ent7enp6e35+g4WIh4iKi4uKiYyRkI6KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99fn9+e36Bkox8fX+KgI2Mfn59fX1+fn1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt7e3t5enl4eXt+f4ODhIeJioeJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/gICBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18fn58fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiPjouLh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKFhYSCgoGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn5/f319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY6LjIiFhYWEg4OBgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYKCgYGCgoKCgYGBg4ODgoWGhIOBgICAg4F/gIGEgX5+gH9+foB+fX5+gIB/gX9/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fHt7e3x7fHx8fXyKi4mIhoaFhISEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fYmHh4WGiIWEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISEhIGBgIB+gIKAfn5+gX9+fn+AfX6AfX19foB/f4GAgYGAgICBgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAiIOEhIWEhISEg4GCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4GDg4ODhYSFg4ODhISDg4SDgYB/gH+AgX59fn5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn19f35+hYWBgYB/gIOBf36BgH9+f36Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359f3x9fX6Bf3+Af4CAf4CAg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Bg4F/f4OCf3+Af4F/gH98ent6fHt8goB/gn9/gICCgoGBf39/goB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4GDg4OAf3+BgYCCgYGBgICAgICAgICBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgH16e3t8fHx/fn+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhIKEhIWEhISBg4KBg4F/gIF+f4B+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt8fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+Af4CAf4GCgIB/foCBfn+AgoGAgYOChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fXx/gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXh5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAfIB+gIB/gYCAf32Bf35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59gICBgICAgIB8f3+Afn+BgH9/foF/fn9/f319fH+AgICAfn9+fn99fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYl9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgYCAgYB+f35/f318fn2AgYKBgICBgX1+gH9+f4F/gH9/gYB/gH99fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KBhIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYGBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/fn+Af39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f356gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gIB/f39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgYF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+Afn+AgH9+fX6Afn5/gH9/f4B/f4CBgX+AgYB/gYCBgYOCgYCAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf3+AgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgn+Af4CAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBgICAgICBgICBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHh4dXh4eXt8fH18e3x8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgoKCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgICAgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKCgoKAgoGBgoGAf4CAf4CHfn58e318e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYOCf4CAf4GDgoGAgYGAgH+BgYGBgIOAf4CDgn9+f4KBgIB/foGAgX+AgIGBgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/f4R9fX18f317fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCgoKDhIKDhIOAgYODhoODg4KChIGEg4GDgICCgYSBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOCf3+Ag4KAgX+AgoOCgIGCgYKCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDgoKEgYSDgYOAgYOCgoKCgoGCgH+BgICCgYKBgoKCgYCBgYGCgoKDgH6Bg4F/f4GEhIGDf4KCgYOBgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SDhIWEhYOEgoGDgoGDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GCgoCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4SDgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7fYF+fHl8enp6fXx8gX56fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn6DgYKEhIKDg4OEhISDhISDhIOFhIODg4KCgHyAgX98fH16enx9gH1/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KDgX6AgIKCg4KDg4OEg4GCgoODgoOCgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSCgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhYOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4KBhIOBg4OEg4OEhIWEhISFhYWFhIODg39+gYSAfX18fHx8f4F+fn5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4SDhYSFhYSBhIODhoKDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhIWEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeoR/f39/hISCg4OCgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN+g4N9gX1+f31+goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYKGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgX+Afn5/gYB/foKDgoKEhYeHhH6GhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYSFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSBgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYaFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfXVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX16fXt8fX1/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhIaEhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEg4GDg4OEhYSFhIWEhoOFhoWFhISFh4aEhIWGhYZ9d4WEhISDgoF9f357fHt+e3x8fX9+fX1/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoeFhYWFhoaHiIaEhoWHhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYWFhIaGhoSEhYaDhYSChIODhYODgX2Af3x7fH57fHx9f358fH59gH59f4B+foB/fX18gH1+f35+fn98fX1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKEhYaGhISDhISDhIaEhYWFhoWDhoaFhoWEhoeFhYSFhYOEh4aDgoOEg4SCfoGAfHt9fnt8e35+fXt8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGh4WEg4SEg4SHg4SBgoSFg4GAgIB7e35+fHx8fn18fHx9fXx9fH59fH19fXx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WGhoaHh4eFh4aIiIeHhYeHh4aGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9fn58fHx+fXx9fXx9e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4eIhoaIhIOEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH57e3t6e3x8fHt7e357fH17ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIh4iGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4WHh4WDhYWDgYKCgYOFgoN+gYKBf4OBf35+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYWFhISDhIKAg4GGgoGCf3qEjHuAhIWHhoaGhYSHiIeHh4WFh4qHg4eFhoaIhoWHhIaHiYaGiIiHh4aHiIaEhoaGh4WFiIOEhYSHhoaHhYWEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfH98fX1+fXt9fXx9eXp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeGh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoiFhYSChYWGhYaGh4SFhoaGhYaCg4OFgYCBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICBg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4N/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn1+f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSFhoSHhoWFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3uAfX1/gn5/gX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6enp7e3x6e3t7fH1+fX2AfX18fH2Af318hoOGhoaGhYOEg4WChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhISGhIaGh4aGhYKEhIOEhYWFg4SDg4SChISAf4KCfn1+f35+f4R+e398fICBfYGAfX6DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1+f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFg4ODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fY2djY2NjY2NjY2dnZ2djX19fX19fY19fX19fW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtBPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi3qaenp6enp6enp6enp6auubi4uLi4uLi4uLi4ubCKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OjoIaEhISEhISEhISEhISCkqWjo6Ojo6Ojo6Ojo6WVU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PEJAODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpaKJh4eHh4eHh4eHh4eHhZWmpKSkpKSkpKSkpKSml1dXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDw+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamnkI6Ojo6OjY2NjY2NjYyaqqmpqampqampqampq55iYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs/Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tDQ0NDQz8/Pz8/Pz8/O0NHS0tLS0tLS0tLS0tLRzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7OztHUz8/O0NPQztLU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXW1tbW1tbW1tbW1tfX1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztO7nc/P0rmPvtScgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK1lZuz1MCUsJyxlri5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/Rn6CqrtaioIuRw5N9fq+w0c7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw5Nj9CP0I6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0cWHmrHPmIedutTSzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Wp5mzyJmQn6DS08CgoNDPz8/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P1aWZtL6pr5GhudevoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NalmbW/npqtm6nYo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NDVpZq1xpamxZii0Z6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0Y/SEhHRUA8PD4+PD09PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPQ1aWZs9GanJubrcefodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQzs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HH0tajmrDZpauknsW0pKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09HVtYLD1cyTkKfXuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw8P0dFR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dHC1NLUy73V0tHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT03NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS1NLS0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj0+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6Njk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ4ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9CR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2tvb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU5NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5uLi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubi4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo5Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tLa2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKuopqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6efm5qboqCalpeUmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Ggl5OSlJmanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKenJ+hoJiQoayXl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaWmp6alpaanpaWjoKChoZ+ZmZqWmJuanpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqSlpKalpaSko6KioZ2cnKJqiZucmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqW2qaOkpKKhoZ6amaWBVo6bmpqYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKCnqrCooKGgnpybmp2iWV2UmpucmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaGgpqKAq6Wfnp2amZmnf1VmlZydnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goKCgoJ+qd3atop6cmpqcpGthaZWcn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJyen56dqIxpjKucm5ucoJduaWuWnZ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZybmqOReXWfnJqcnaCIa2lrkp+cnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmpqjlHh8hZianJ6ZfWpnbJKfnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuZmZmaoJyLnoB+mKCchY2BZm2UoJ2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZmZmpynoZFxZaasoWiBjXlrl5+en56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZihrZJ3ZWaml5pYZ31/eJ2eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmXp6V4Tkpwm4SEUkRheIKdm5uenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qal6uZTjc8dJJ9cFM/NmF6jpKNkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkJatc1RwV3ywqZlaZ25Ia32Igo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg36WpFyFm3zKxbHFnX6delB4goKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+kpFyz9fN1aacubxrXXJdZ4CFjo2Lho2UkouQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhH+CfJl3mtG9x9PHwbScd6WoY2KKio6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYx/iI2Ni4uIkoybb6KmlbmsoqGJhXZhyItaiIqJkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmRnqGdk5eboZqenKOgnYSTfI+ljYWLd3VwbKaXYYGPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaiprKqqr6eWflhyhnl5gG1raXV4f3h6oKGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipamop6uphXBSYHRxcnppZmJpa3B8haKpp6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKaanaSmoqOwmHBpT1Z4dnR8aGFkZl9fbn2KoKSgoJ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKOnoqatp7CyqXxpY0lSc3V4gWhgY2paW2JrdYORnaGgnaCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqmioKGoqa21ury9rIptZ2FCWm5wfX5uYV9mW1lhYWhweH+NmqChopmWnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY21paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOrqqeuucHGzMW3pY5yaGlaP1Nwb3FsdGhhYVpYX2NhYmpxdnuMn6ednqGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gqrS/ztnbzrqrnIhvYGFiU0NKeWtgYm1sW1tXWlldW1peY2ZmaHePpa+npZmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1pdmtwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW8ztrd1MCkinZlXVlaXFNKQ21qlJ6UVlRYV11cXV1YVVdbaX6VqsHHurahp6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PDub3Axs7RzbeSdWRbWVpXU0lVb6qzpk5VXmFiX19fZneQp7q+wcXFtLa2qa+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvFwcXGwb68zMSwkW9cVVhTUFOhtZtOWVtdXWBtjqq6wbW5qaextau1sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH6Ef2pmaGFrbGdudXJydXFnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEJCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/w8PGxsGxkr+/zs68lWlYV1pMmbmTTFRZV2B/prywpqussqaqqamrrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3VrbG5kb21pcXhvemppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMS5tcC3s7zBxr6peVhVUYq3hkxTVV2EoKa3r6WttLStrqWko6ekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt3bmtpaHZaZ3J4c3lmZl5kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLFvri9wcO/x72WbFJaaVpRUmSUq5+mtLKtrLi1sqypo6GtqaynrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXmpvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMe/xMfExMbJzsqcVkhPUGutu7fAvb65vLq8urysraapu7q5t7+ytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aWpqdG55bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxcXFw8XEycvR06RSTGCwx8DJzcbEwcTHwby+tLGwsMK+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGtqd2xpZnVvdGNdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPBwsbGxsjOikmTzszHzNDFtr+/wMC6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnY2pkYmttbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvr3BwMDAxapOpNHMxcnRwa+9vbi5u7u+t7Sxub6zvL6xubW4u7a8tLW5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjY2RqY2djW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Bu7/AvLvEvbrAxL+9vbi8wMSvU5zMxMDByb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7e4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWOvL67w7W6x7e2ubu8uLm1usTJqlSTyL+/u8G+uca9wr+8xbi2t7S4tra7u7m2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZmVmcGpla2hYWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vM/Fea3Lvce3ubittrS3ubO1srvFyp9Vi8q/v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfWtucWdxa3RmYm5gXFRIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXr3aEvsjPwsC4rrW1u723ubG+w8eUXIbOw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGpudG94Y2diXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0Zt0d7HR0czKxLW6v8TIvr60vr+/hWp6y8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4J0b2xsdGxsbl9jXmFiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysKIdneozMzLzcrGwsPLzsG8uLy5r4J8bbzIxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWRbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u6rNvDvra+wL6+uqacqrO3w8CmfHp8n8TGy8jBw8DAycrBv7u5saOYin6wyMXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3h0aHBeXF9cWlFFRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFtm2uzr22ucC8qn1uaG5tdIKXmXV7f5y+v8bAucC8vsXEvb24sa+nrJeXncrDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bHZ7cW5pXGBgWVNQQUZJR0tARUNIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbF2grO9trXBpIZpWl5gTlNbXHB2eoWkuLfCurO7t7u9v7q7u6+irLKiqIK+xcO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d29xYV9mXVtVSj0/P0dGPUdDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmmhHiLoa+1nGpmZ1ZZX0lJTVBUb3uLqbC3vrmytbK8uby2ub61lq/AsLV4rMrDwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXV3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/GqId7doyhmF9TQ1lVSGJqVU9FSmWRpa+vtrq1tLKsvLm4tbjBvY2nwrKydqfKwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZzbmNeZ1ldXVNPTkE+SkJAS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7SQgXmIkG5OSz9lWUJPeIGTaE1DXoWxtbO1srSvrLu6uLa5v8V4jripn2arv7i1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211amxdXGtVXVtQTkhER01CRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhXxYRkFPh1hKSll4joNjQVWjubO0srCxrbC5uLa7t7u8kqSzrqR0rLCpq62ro6ihnZ2el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh1dG9lVWFkV11RT01IQElSRE1DPTg4NzU6Nzw+OTs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmYmZVoTT9TeHFQSUlLaJ2AWkVVsLqxrLOvrqyttraytLWuqaeemZuen6aonqCoqZ+hp5ablpeOnZSPkJaNl5ukqKCgoqKipaWdo6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56em5mml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoYh4g3x2f3pjd2xuXVFpVVBPR1BNTENQUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3CqqW8Z0RTm31RWElLYUpWjWJlZYOvtaqytK6qq6+wsrOtpZ2Rl5OPl6CfoqCco6SfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+YnJmbpJmXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fH91dn1ua3tkaFZSZE5KSEdPU05LTkg8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCrxr/Kn09BdJhxUG5KTGNmdXRgXWJ0krKvrrO1qqasq6KbmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpaqqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3l8ZXl5YGJTVmFISUpLU1RJU1FNOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpcbGjFdTSmakWWZ9b3JbUmtjXGdiYG2RtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWlyd3VwY3d2WFdiYGRpW1pXaK2urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2orKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7a4s7itsrSkoJ2loKyhoaKhoJqYlpWfm5uYpaGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCgH14dmp3dV5tW1JhSVJVSEZVV0pDTUc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCkf2+CcGBjWExbUlpMTFFZUkhPTkiZrKqppJ+fmZKSlJiYlpaVjIiLjpWdnJ2dnpeemaafoKilsaqnrqOrrrawtLKxrra4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm4vK+zsLXCvLe+s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhX52cm1pd21obVxYXENXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOenIliV15lYFdNUUc9PkBDRD8+QlJ4qa2pqqWfnp+io52enZqcm5STlZSenZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a7u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6qzraqztK+zrqqvo52sqLaxraOwpqCjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF8dHJra3VycWhWXFFGVUhESlBJP0VBNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFFGRDtDPkY8Pjk2Tn6qs6ejo6KgnqWrpp6YnJSRmZ2ZlYyKhoiGeG2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3w8rKw8HHv7q0uru1u7ewtrKqurKuu7i/u7qruK2rqri7tbyurrmjpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrY2lveGtlWVtGS0xFRFRNRUNFNzo/OjU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9cmlhV05FPklZfG9hQT1cjq6soJmbm56emZeXl5KNj5eXk46NkIyCg4J3cnFtcI+mra60ucW7zcfLv8LMzc3Mx8nRzMzMx8nFxszQ0tXO08m9wL/Du8bFyMXR083U0NPTzMrCxcbGysjPwMnRzMfGyMbCvMPBv7+/tr6zrb/Aw8PHxcfEr7+5sri8xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXRzZWJncm9mXlpaQ05MREZQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaWZcVElEQD9Khp6kmIOgsq2jnpyfmpiXlJKUlpGQj4yHhIOIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fS19LV1tPUyMzHzM3K083O083GycrKwsfMx8nJxr/Ds7PIxcvLy8/Hyr++v73BxsXNzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAe3J1dmdjZ3ZqZFZXUURORkBJUUM+Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2FTTEpEQz9DUrDRvbKvppycnKCkoZ2alJOVlIl9eHFrZWJocm9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s7U1tfU09HT1NTTz9HE0NPW2NXW0svJztHLxs3RytLV1tnW19PX2M7Sys/RzM/QzNPQwMnIysTMzMzPz8XHyLbAy8DSzczQx8rJwMTDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYGVyYl1SXElKR0FFSUo+O0E4PTU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFZSUBBREFGUXayr6aalJefnJqgoJ6bnJqViXdpY2FfX2BfXl9fXWFsdXNwcG9scnF1ksTIx9TV19fX09fQ1dTa1NTOz9XU1NHRzNHO09fW09XQz9LT0cnT0cjQ2NfY0djS19nU1czPz8rN0svP0cDGw8jGz87R0dLIzM3Ay83G08/Mz8jFy8fHyczK1NTR1c/SzNPCucWxpai1rqebqKulnbKosLOtrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu32NTV2dnRztC/vMzJtr6upqqooaOrZUM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cWVjYl9fYV9eYWBfYGBfYGVtcHBua29yd3eczMHT1dPY2NbZ0dLS18/TzsvSzdXU0crPzdPW0tHWzc/V1dHF0dTK0NTV1s7T0djX19jLyM7Eyc/Mys3AysDJys7Oz8vQzs7Mz8/IzNDQy87Lw8rHyc3LzNLTzdPS0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksXpIRkI7V42hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3O1MzO0s3L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXNwsjKw8zExsnKy8/Lzs3QztPMxsnQzcnHy8XHwcbKzM3Q0sfQz87OzNDFx8G4ub3Dw73DuLKyvrG7w8O1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWdgYHFoWVhoVk1HTElQUUI7Qz47Njg6ODo6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfDuMrV1tna29jMzM/I1tXEwrWvtKifrZd4bHBxeY+ajYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNhYGBfYGFhYF9dW11ncnJwcnNxbXJ5pcfTz8vQ0NPUysXJycbGv8PFz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svQz8a6xL/Gyr3Cx8nOxcPHwMfNyMTMy8zPyMTE0MnGwsbIxL/Bx8zLzM/Cy8zJx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG90ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7uto7Z+aIOFpKuTjY2Wj4WDg4OBfYSEfnNfW15eXmBeYGNkY19dXV5fYGBfW1pcYGxycW9va2xvb3250cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIys3JxMLLycHBy9DFy8i/ucK7xse+wMbPy8TAw7vJx8m8ycfFysC+wsvGxcS+xr28wcPFzMXGvMDJw8XH0sXByb/KycbIxtHDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdGZpWmFubVpcWFJETEZCR0VMREZTQDU0MzM1PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1drY2c/L0s3NzsjBtcO+sa+2bF56faGRipKWhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lrcG9zj8e9ysXLwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7usbDv7zBzsPGvr61wb3Du73Hu8O6tL3GxMLCt7+2tr6/u8zDvba6yLu/vsvDwcbCxcnHycbQxsLMyLLHycPOzMDFw7+9srewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2RWXllKRkpGSEtBRkJGSkA5OjY1ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysnGzc3O0cjQxdXU1dfNys7FycXHwbnFvauupmBkdYOTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmdvczAw7rAuK2wsaeqraynuLS2tLOztLu2vbG3sLWvsrvCvMHEvL+7tbK6vsC4yLm0u7fBwr24vcfBxLy1r7K2u7+0xbe7tau5vb7AvbG6trC3urPGvLevu7+1t7XFvL7DxcDExcbHy8XAxsa7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjJyMrIysTQzdLPzcXHwcbAv7q3ybaqsJlbZ3CKj4WIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaWZqbW5yfKTHwLi4tbCrrKeeoqmnnqqss62qrKq0rbaxs6mup6yzu7q2w7m6urGrtbm7tMK6sMCxvry7trzIucO2raqosLLAtri9sLGnsbO1u7yrrrWmrrauu7Kxqrmwrruuu7i7wMC+usO/xsPFwLzGwcfLuMXHxb/Hw8O6xMbCu8bJzMuzucK9u7OJc3Z2a2lgYmxpWVhXW0FMS01KRUFDP0ZBOjk6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTQx83Bw8a/xMTDw8rCycq/wLzCurO1tcOuqrCSW2p/koeOj3t4fYmFenuEgXduXl1cXF1fYF9fZGNiY2RiYF9dWltaWl1aWllaXGVub2hmaGlrbnKBrbqwta6lpKenmqCkoJqcpauupKiiq6qsq7Ckpp+qrbS2sb25r7ewqK64tLO8uLS8r7i5tbK8wbLBrqWoo6uxsrOovaqrqKusrrWzpaiuoaSvqbKmqKiupqi3rLGyt7q6u7K8vr6+xL+1wsHHyLe+wMS3xMO/u7/Ewr7EyMzKv7/DwMCph3N0c2ppXGFvZFdXWFBIWVJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz83Dx7m5y8HLvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairkmRtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9eXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWqpaylnpyhpJSdpJqXkaGjqaOjn6Wmp6atoJ2cpKatsrC2t6exraiqtKu0urG2tq62ubKwurqxt6WgpJ+msaisqbqqpKenqKeyraCnpp+bpKasn5+npKChsa2trLK0s7Swtby2u8HAsru+w8GxubnCs8G+wLW4vL2+vMLHxcPEv8DEoIR4cWxiZmBrb2BVWV9ITmdPVEhGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLS2vbi6wLq9tqCelJ2hprq2q7Ozu7PEz8nLw8a4t8fAzL+4ybe7xbizxbizv8CstbyyrKWvs62ho5FpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGFeXFtcXFhZWFhYVlhbXl9kY2JlZ2dna21viJ2pn5aVmqGWm6KYlYyeoaKnnKCfpKWip56bo5ygq7CtsbWkqaqqrKyktLitt7Css7avs7WvsKqfnp+jorKlpqq5raKmpqCorauZoJ+emZ2fpZqao5ycnq+pq6iqrK2tsLK4r7i5urC2vLu6q7OyubO9tLaxsba1v7a9wL7Dwru6vZeEe3NrX2VeZGRYVFddSVdcS1BHSkpHQTw/P0A7PzwwNTUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uce4t763ssK0sbu7rLm6saKeqaunmJ6PbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2FhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3KNp5yTlJSal5qhlpaQm6KhqJ6cnaWnoqWcoKGbma+urq+yoaWjrqunorWwsrKsqa+zp7qzpraho5+bo6Gto6Kqtqujo6aepaajlpmdl5mbnaCal56dnZytoauoo6Smrauys6q1sLKrsrm0r6qvsrKzt7Ouqa2usrixura6vcC4s7GUhnp1Zl9mXltZVlNaVUtbUUxKRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+znaWjmKWxwrW2va20uMHMyMa/xbbBwMfOt8DEvbO5ubK/trG5u62ytK+fmqSqoJSaj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqCbk5OPk5aWnpaYk5egnaGclqGhqaSfn6mdnJurp6+wq5yjpLiqoaCuqLaqp6itsaS4sKS3oKOcmZmqp6Gbrbmwo6GknKKgoJOUoZSWlpuYmJaXnJWfqZ6ppKKdo6qqsa2otKyqp62zsKWrrrOxsLCvr6eoqLKusrWwvLS6uK6jlYJ6d2VfYVZZWFNSU0tNXkxQTEdITEtFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJmhqZSRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmJjZmmBlZKUi5GTk5qYnJWWnJ+cn5agoKempKeooJ2gpqCqr6afoqO3qKGhoqizoqWopbCmsa2stZ6hnZaVqaKilK2ysZ+jo56emJuTi6GUkZOYmJOXmJiXnqebp6KimqSlpaukpbCnpaOrrK2mqK6vr6uoqqqzpqarr7Sxr7y2sa+voJJ7eHNlYVxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaast7u8wcW6sbm1xMnJwMPGxce2xcSzwb/Fq7e3vba9uru1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpaW1lZWltXVVhXVFRWVVJUUlVgYF9gYV9hYWNkaYCSkoiPjZORkpyUlZakmaCXnKCloq2mpaWkpKOdqqulmp+lsaqgoZ6lq56oop+uramprq2ioqKVmKKbnJCrqbGcoKKfn5eYk4qekY2Sk5aQmJiUnKGjnaShopWgoqWmm6OrpaKkqqOrrqWusqmmpaamtKaqqK2ztbS5urCqrJ6Mc3FvYFtXVlVSRlBOSFpcT1JKVEtTTEVHSkQ4Ozs9PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6PDw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb3Dya2xuMG1vMC8tLWqrKaWmpyciYFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5RWV1cXV1eX19fYmRtjI2CkIWOkI2YkpSSnJqinJuhqamrqaynqaakmaWvpZWZpa+poJyZm6Ger5qcq7Sgpqafo6ShlJOblpaSqaqtmp2goaGblJCMmY6MkYySjZaVkJ6ioKOdnKOVm6CjoZeiqKOjqKugq6+krremo6SjrK2qqKuvs7eyvbWzq6+YhXRzaFtYWVNVUkVYTFFbWE1VT1BMUVJJTkpDPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1NzY1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7evqKivrpupqKy3tqu8yru2v6zLxsW4wc7PyLPEure7wsixrbi/t7y9u7O1pqmglpiZl4h6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZX2KgIl9io+IkIyWkZeZoqCboKuqpq+sqLGlqZqgraGVlqWop52YkI+anq6XmairmaCdlKWhn5KRkpGTlairpZqZmZ6elo6Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6WmqKiooLGwprG9qKCjrLSrrqewtbC5tcCxrrGrkX5yc2JWVFZOUkpHVlBSUkxMWE5KTE9SR01LQUNGREQ+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7SsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxtre8vcHDsbCxt620tLuztKKjnZ2Yl5WEgHZrZ2xucW5ya3BrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqfnh+dIeMhY6Il4mUk5ibmJ6pm6Crpqasnqiaoaack4+fo5qXl4WEkpukkJWjnZaWloiim5uUjI6KkJqlp5yVlZebkZKHlI6LgYyNgJCLkpKSoJqgopaUmJmVoqaZjZmkpqmmoaC0sqizuKGco7esqq6ksrKmtby1q6yxo4l5c25dTlFRTE9ETk5OUEtGTk5KSk5OUUlNSkFITEhIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSopLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS3saWnpKqloKmmpLOqorLDtbWys8bGtrrDyszGs6y5vbS4wK+tqbCepq66r62fmZqdlZWIfINuX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW5wdW+Dh4GHf5CDjoqTkZOdoY+anKOipJmll6KclY2ImZqMc42Dfo6XloaRmpCUjo57mY+djIKJf4qYoKOekJOYloWOg5R+fnSKjnqQh5OQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssK2fmaa4pqaxobCunLC8qqmvqpmDeHRkV01ST1BNQ1NOTFBNQlBRSElOU01ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGsrcOtqKKmkp2mtq2joI+VlpKQfnh+ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVZZW11qanBrfoR7c05Yco+Cl4aNnJeLlJGgmZ2VlJaVj5aKgJSJXztWb3yMlIqBjJKMkIaGc4uFl4F5gXuGk52Ug5WOkZCDhn2TeHFwho19ioGRjY+XmpmTi5CKnYifmIeIlp6aoaCXp66praionpeus6Kmrpmsq5iotKOpraOTf3RvYFxPU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego66hpqaqoKapp6Opr6intMK5sLWwx8K3s73Pv7mvrrXCp6rFqqOdmIOUnLGimpiGlI+Lh35zdV1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNT1JUVlhaYGxuZ3qBc1BCP3+VkpF9iJWMhIqNm46WlYqSiIaVh3mJf2BKUW54i5KEfoSNi4V/f21/f5R3dXZ4hI2acFGNiIqGfH54lHZod4aIfoqJlouOkZOXjISKiJWEm42ChJKalp6dlKSjqKmlpJ6csaqhpKSRpqmWoqqcoqaoiXZuZ19dSFFRU01JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQz03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hr6GnqKWnqK+sqrW8tri2s8G7tqi5yLi2qKi1tqqyvKeelo1/ipSolpWKfo6Dgn14cW9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3J1fWloXFSQiZSIdH6GgXyFjJOCkpqLj3uGj4B2gHhzb3ZxdI6OgXp+iquFeXtodnuOcHJteIGLjZJ4e4B7gHZzcpJ4Z3WFhISFfJWKiIqNi4B/hIuNgJSEfICPmJWclpGfnamen6CdoKmlnp2YjaekkqCglp6fpIFzaGJdXUpXUFJHS1hST0pMTVJKSkpMUEhMUUxSVE1FSEE9Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK8uLa6tLGft7qyqp2drKmosq+impGNlIGOnI6RfnaGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmdoyWmI2OfGd5gXZ4gImQfYSYkoFxh498d3tva36tfXSQi397hpKBfH91ZnZ8hmxvZ3N8iYyHgG15cX1xbXaPcWhxgX6OcESLhYKDhX93eHqMhn2Me3V9jpKPmIuSmpujlpmcmp2eoZyWjYulmo6dl46WmJB4b21nY1tYWFVRSlNVVE9QTlFWS05LT09KUk9JTlBMRkQ8PDc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoaawrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlp2lqaShmJmPhZJ5iY6LinVxe211cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFhdZXBybIinqsB+dHlie3hvfHmJkHp9i4ZvbYySeXR5amqAgnGWkYuBfpaASZKYbmh4foJtaWRseYWQkoZscmx8bnJ8hmlucH9zjYmFhnt+f3t3cHR0hoJ5gXlwfI6MipSDlpeYmpCSlpeZl52WjIOJnpKLko2GkJaAb2pvb29ZVlhUUlFZT1JUVFJYVU1OSE1KTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrLCjraqota+urLS/q7zDv6WimpWkmJ6NhIuUoaGYmZGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXF+nh2GaaXN5ZX5vbX96i4l2goiGdGyaknR0fGpqnY9NeYWTiYSOZzF2hnNsfn2DdGZldX+EhIWAZ2lsdWtxgHxocXF8bpONj3x0fn1xcW52bYJ/d3l1anmJgoiJg5aSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trcGhmWFJaV1lZW01QVVZZWE5JSEVKSkhHQ0BHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakZmWo6itnrGep7qvq7KwwrG7w8ealo+UmYuOhXqEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+yoHF7eGx9bHGCgoWBeoSGhnlyoZV0eIFzdZSHNXGdqJ2OoaGEooV2cId8h3x0jK6NiYFoZ2JqbnJtcIJ1aW9YdXCOm5J3bX97fW1ybnCAe3N2bmJ2g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2Oe3NxcW1gXF1eW1lYYF9STltaWFdMSEpGSkc/Q0FCSD9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp5+vlaW0qa6xrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt0eHhsd253Y2leSlBHPj82NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8foWDf4x+daKaen6GgYSZhJucYYaqn52Lg5CNeneIfomJjnOLl4+Ee11lcXR6fHeKbWhqYnlvhZCCem+BeHWFenB0eXhrbmlddoZ8h3yHh45/ipKXg42FjIZ9cYR/hH11d3t8iXdwc3RmZ2BbW15TW2deV1BUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIyRnJ2fppGgqqCxqK/AsrvFupaOkZSHe4Z2a3+MkYJ9ioSPjHiDgHOghIp8fIF/cIB+emd2a1JXTEBFMjExMzY2Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmiEiHuJeXxxfI+Men2Jh36Xh3ahmoiHj5KUpY2tqkiGrq+vi4GAk4uCi4KEkqmHgJiYipx0bXyBhod9jmhnaHl/boWHgoVxhIZHbIB3cnl2aG1rX3Z9goh/h4SLeZSdnImLiJF/enWLdnx4bXB3foB0dHJsW15eXGNjWGdlXFRPUFZZUERMS0ZOSUNGQ0NAQENBPTo4ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5GOlpeSl6CeraGmuK+zvbOXjZKLmIt9dHB+iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWHBZXF5pjZOHlYCEgoWRk36FiJGBmpWCoaGYlZubpq2Tmruxp7vHw6iLjKGlj5SKgZF8cYOen5Gcf3aGhYuQh5BpaHCEgXSNh4SKcYWCd4d/e3aFfW52dWZ/lI6GiYiHiIegq6KWiY6Xf3qCiHp5b2dreH97f3RsZV5bW15qXmJnYFpPS05XUlFJUEpETkdDSkRDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneDe4CMf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShZKVf4qAkpuOg4CBjIqCiY2Df4qAbXBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlNSU1NUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WX2N/Z2dtdZ2bj5qSk4uNjpqIk4+di6CgkqOqpaOsk6m2oqjBwq7Hr3i6lJp8jaGemYSThYKOop+TmJKEioWPmZGWbHB1ioyCloyNjnePhHFthYGKlpGDhYhxiKCVhpKJjo+WpLWpm42UooOHk4N9f2tqa32BgoN1Y15kYFtnbF1sbF5XS0dOUlFNTExGSVBDRE1GQkNFRkI9OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYaQh4WJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOUFJUUFBRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpaKZoZeilJyeqJ6oq5+orKmqtperv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGIlaKbm3h6fpSYkqGTl5eBlJ57d5WSq7KJjZeffJSem42SlZijoqa2r52RmaiHlo+NgYhsc3N9gX1zaWBeYmBiaGRgZ2ZcUkVKS1BPSUlMRkZNQ0hMRkdEQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wMC8vLi4wMDE1PkFCTVFSU1FSU1RSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYWQd5WKo6eqtL24pK2srKeotKuwtrKyrbuxs72cs8OrusnLt8O/uKWisLOsraqji5aYhaamoKOXgaaZjaKrqKWIhZSkoaCroaSpj5uwi5Wjpre7m6GjsJKinaGdkKOhq6+ssrWilKSqiJmJkomVenp+hoBpYmldZmNeZGReZ2dfW09DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhjV2lvWHqFdoGThYeCm4OSkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4WBjIWGiJKGgoSJhoiHh3BuYUBFNjQ8Mi8xMTAtLCstMS4tND9DQU1VUVJTVVVWVU5bUEdIRTw+PkZIQ0VBNzs8NUM7PUZLSUdIUk9QV4GSoISuo7OqssDHw6qzxbass7+zuL62v7TBtru6o7jFqLbJx7W+ubWoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqiutruyuqyvtaKxq7G1u7e1rrSgp6eip5qpr62yube4p5u2qIykjpGTn4Z4goR3WmNlV2diYmRgYWZgW1VKRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFiY1d5dXGBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeFgY5/gYmPh4CGiIWJh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0tBQD9HS0ZGRDs+QDdENz9CSkpFRldUUF6PpK2jsbTDtrjBzMm2u8S9s7PAtrjBtb6vt3Sxs6W6xKSwxrmxs7G0qKS1tqqxoKKWm6KSpbCupq2sp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwre5uL+3ure5rKywpbCqrb2wvLrCwqyZuqiTrY+Xl6qJfYN+bFhkYllrZmpmV1xjWVZTSUdGTFFHQ0hJQUhEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldTWVVadmpwfo6EgI2EbnpzeIdiuaGZo4mUlJaSlJONkJaSh4Z7hoGNlYqAhIGKenyLh4Z9ioKBioOWfXd6dWVQXGRHRUw7UWNhW15TRj87SFBFWmNRUllYWmdZVGBgTFNQRUE/SUpIRUVBQEM8RTZCPkhHSkxTWlRdk664tbq4yL+6vcnMu7zAu7e1u7q2vbS6scZgdbKksZqeq72qpairq6SisrWgq6eflZafmJ+upaempZ+jlKOnsbSnsrO9tsG+08nJ08fCxczCysPAvr2/u7y3tK+4t7bDucW9wsevnrmqoauOpKe2iIGBc2BjY19YYmBpZ1JYYFZRVUlFRU5LQD5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xyc3OH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaLfoN/g3h7i4OHfIt5gYqCl350fXprZnB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFVZVUpEQktLSEZISEhHQUk5RD9IS1RUVlxaW5O5wLi9t8bAu7nKyrq2ubW4ubK3tbSutraZZHWonK1wXqKsnJigopuknqullJ+fkJSOlpiXp5+ln56amYOknaylqrCtuLC9udTRztbQyczSzM/Oysa/v8LKvcG8wcDExMXKvsjOs6S7sLSvmqu4u5mAe21eYV1aX2FaY2NQW2BTUEtDQUVGRTxART5BSEFARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vlpKQlG5sb3V1h7OsoaCfi5mcmYyNlZGbkoWKin6Ih4uQjIl8gYRze4qDhXuJdIGKh5V/c3t5bG11e2hyZWlsaWZqaWhgZmlpbFptc5atpLyIh2dbb2hdWlpUSEtOT0pLUEtTUUhMQUpHSk9fXmJmaWGXt8ewuLK7vbWxxMa1sLiwr7ursrGnq7erjbWnnZqnmk6anYyOn5aRppillYqTk4mQiZCRkZ2boZealZaHnpqnm6yvqLCntLTU1NTW0svP1NXN08/NxcLJ0L/KycrJ0cfMzcLQ0bevw7zEuaW2usOig3BlXl5eWWFYWmZaUV1XT1BCQkhFQkg7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VWc5CQmIJocW95eYOgqp6lloyam5eLjZWRmo59iYuFjYqKi5CHfISCcH+IgYZ7h3KDkouPfXF4dWxxeH5xe254c2xogXBtY2ptcHhpd3x+y7/B36duY3huY1thYEpQUlVOWV5QXVxOUE5UUVVUXG5tdoJxlq24rLSmr7aqrLzAsKu0pqS4pquuoKu0o46xrZqXmIyRk5GEjpuBjaaRnImDi4SKiYSLg5SVl5eTnJGcmJmZn56rrKSnoqytz9LV0c3L0tPU0NTRzsjD1NHHzdLT09fM0dHF0tbFwM7Hx8KovrfPnnpwZl9kXlhhU11aUFFUUE9IPkBGQUJFPEBCPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OWnWGhYp3bHdwfX5/oZ6eoYuMmJOTjIuTj5aEeYWQkI2LioeRh3+Ce3J+gIGHeoR1hZORiH9vdnJrc317dntzgXdxaoBzcmlwcXp5cnq+y5p+jLKEdnKEdmhha11DWlpbVmVjWGRqU1hdXWBkXmN4en6LgZipo6Shn6CopaqwuKqls6OhraGjraGnsZ+JppqTkpGJkY+IgZSJapSijJmEgIV+kYODk5ati5WNlZqOhpKRnpensKGgoaWkqMjOz8jCy9HU0dTTztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPDzIx0cGRhYFlVWlRcUEtHSkpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5WJj4qIjoePf3iDlJiKjYiIi4l+gnhze32Dh3d/eoeRloCDbndwbXV/dXh9dIV8eWyHdnRufXaEdXh8nbWMO0GLxaV+jHxpZVdJQ2ZjZWNnamRueFteZmhrbmlugIOIkYucnaCdkJeYnqOjprGjo7OfoaWdoKmgo7Gchp6SkpKQio6LhoOPhH6cm4yNgoSFepR+gqmVo4yRipeSi32XipqSq7OYmpyonKe9w8a5tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2drR1r7LzLR5d3BmXltTV1JbVkZHSklFRT06NzpAQEI6R0Q/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc1NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjX2XkZ2LfoeSg4mGhYmBh3x4hZaWiI6Dh4WGeoR5cXp7hIZ1eoWOjZ15i3B8b296f3F7gXGDh4Bujnp1d318gnV+e4aHr3NYqcK2jZGCcG5iPV5ocnBxcG54doFlaG9ydXhxeoyHjpORm5WflYeMk5ugm56qn6CsnKGamJ+lnp+rmYuajJCRjYR9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI2UjIZ8nImUj66qlJWYn5mmr7W9qa2+x8vJyczL0MnD0srU19jX2NfV29fT2dvV0Nra0dbI1MuVe31qaVxbUVRUX0hDRklIPkE+PTc6PT87PUc9P0FBQURBPj86ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDY1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjpEP0NHUmpebWRiZmt2gIhykY+agHqAjX6CgoGDfoN8fISYjoeLfoaGgHeCeW57e4eCdHqSno2gdo51gnR1gX10gIRvgY+Bb5KFdHyAhHp2hnuIt8Wkwcm4gpabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJWPl5GEiY+WmZeWpZyXn5aek5KXo52Zq5WQkImMkYKMhYiIgYaQkZ6bmYmFjIGGl3qIiJ+Xj4iNiouCfaGKkYy8oZiTl5mdqaamrp+otr/AwLnHyc3Oxc3J0dbV1dnV19vU19na29fb2trYztzGh317aWtnYVVYVlZOTERNQjs9PTw4Ojw+OT1ANj0/QD0/Pjw5ODY3REE2NDU1PTgwNjY1NTQ3NzQ1NjEzODU1NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImMknd2eop8foB+f3yEe36CkYmEhXqEh3p1fXVtfH2GfnN+kp2RnoORfIZ+eI59eIqKboKagHSZhn2BiIR7fZB6j6iOj8OhvYyco519iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYmLkJKVj52ak5SQlo2MlZ+clKCUkY2Nj4p+kI6Oi4SJkpaanp+JjJSSnZGCi3+lmYiEjYKFhIGlh4uLuJidkZWWoqihnZ6do6+3urWswMXK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbuHp7em1rZ1hiXFRQT0lDTEE8PD45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYX1ZYZm1tbWmBjopxc3mKe3p/fH97h3t8e4uHgX51g4V5cnpzbYB+hH53hZuhmp6UkoCMiH+Yh4Cbkm6HqIV6oIt8kY2CiISbfZqQioyjoqCQpK6gi5GLhYuBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlYyHiIySk4yUlJSPi4+Jh5abnY+VlpCKkpOFgIuIko2Kip2WmaKjh5OdlqCKiYiNnJCDiI5/g4eGpIaMkLOYnZKVl6Ghn5mSnJ2osrmspr3Cx83Ixs/M0MzO19DR1K7W1dja2Nra19bZ2Z9xf3ZpaF9eWVRYWUNBSEM/Pj46NDk6Ozc6OzszOzs/PT43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieW1ifpGDb214i3h6f3qBfIZ8e3eGhH9zcIWCenV2dnSEg4V9fpKmo5+lopaKnZCUl4uKqJdyirGNhKeShJmThJmMopWfmJOJmp6jkqmvn5CVkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNyJaPhoeJkJKNjZOUiYWKiYWWmZuPkJSThpSXhH+Pi5mIjZCql5ejo4iZn5aaiI6Hl5eKhI6NgX+Ij6WJjZOpmpeTl5mhmZ+Zk52bo7O0pqO8wb7IxcXJyMnCytPNzdSp0tHW1tbY2tTT2s6Dc4FpZWBfX1BLVlxCQkZDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdYKOfXxtfoh4en56gYGCfnZ2gIJ7bG6Lf3l8eHh8hIeLfoujs6ijq7KhlqegpaSWla6ig5C3lZKzmY2hoIukm6+ipJ2YkKeWqZmtr6SXlZWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKdmIWIiY6VjYuTj4eBhoeIk5iUjIuTk4aUmIaDkZCcdJGZspaXpKGInJqTj4qQi5eaiYqWjoZ9jJmfipCQnJqZk5mYn5SgnZWfm6GyrqOlt760xcfEvcPDv8bOysnSp87N09LQ1tjSz9i7c3t3XmJXYlhRSUpPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdOW1xZSmdhO0iEinp7bYWGeXyEeICFgX1weH19fG9zjXp9gXt4houJhYSSqLutqLK9r6Wus7Ooo6KwrIqatZ6iuKWVrKSXqa23pqSjn5mpmKqkr7CpmpmclJWRmKCXmbu7rcmgaba4q7CVmJ+iq5KXvaNeqbKCiYqNlYeRfI+OfYOGjY+UlIiHkpaLj5WNi42XmZKdmrOWlauei5yUko2QkoyYm4qSno+LiZWfoo6VjpianZOcmJ6VoqCUnJylr6iipbO4q8LIxLW7vbvFyMjC0aHGyc3NxNbW0MvTonF8al5cVWBSUUdEPj1DQUI4Pzg3ND5GPDw2PDM1MzU1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj49NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVIYmBjcEpAi4p+gHKGh3yBiXWCioJ+bX19fH9wd4d3jYGHe42PjIaMmqvCwLC+xruztMG8tK2rs7aMqLKurr2qm7ukqK25t6umpqKho6Oqr7Kxqp2cpJibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIacrb2wg4uMi5CDj4ORj3qBh5CNjpyIiI+XjYuVl5SQmpacp5qxmpGrnY6Zj5KOlZCQlpePkaCRiJWbpKyVlo+UnJ6UoZ6bmaChlJqeqKekoaSws6bBxsOwsLu2xcTDvs2nx8PHw7zV0M3Eyol2dWReXGFcT0tDTEBFRj5BP0I7OjQ+QT09NTw2PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxnR2BpZ1pdW5OMjIh7h4uGg4x1hpCKgW5+fIJ/cX6BepV6kpSUmJGTlae0xsnAwszBw7rHu7qvq7m7l7K2urPArqXApKqwu7uqrquiop6nrK+1sKqboKqcopyWn7C0p4ujurq1wburqJyypKSolISOqcPEpIKLjoeIhIaVlI16g4yRj5GhjIyUkY+JmKCXk5mUl6agrp2MqpyOlY+SkZWVjpCVkY+hlIaXn6Czn5SblKChmaSfmqCcoJSYnqakpqekr62lv8TCrqm3tcnDvrbOssW+w7yz0crIwbV2e25eWl1sVE5JQ0xLSklAQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZaJi4iSj4aJeYaTkIFygHyNfneHgYKQeo2hlqiampi6vsjJysLSycrCzbzBs627vqe6v768w7eswamss7u9qrCppKWjrK60rba2oKCvn6WimKO0vambqLzBo7a2r6uSr6yqq5aGmqmmpZGCjJOllYmAdYqSeYWNkZCeoJKOlIuPjZSjmZeblJSjnqmfkaWajI+Pj5WWiH2PlZKSo5qVoKKctaaQn5elpKOln56mmJ6Vl5ulo6moorKtqLvAxK+ls7fMwLmuw7O7vsG4rcLCwcCZcHtjWlhdXE1MTUlHRENIQkJBQ0s6NERIOjs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+a0lfWGFaZGVWno+djpeOnpKJin+Jn5KEeIV/lX5/kIiKkICVoJmup6OYwr3JxMjG083Ozcu8wrewury0vMq8w8G2truts7+5vK2vqKCpp7atrqmyt5qeraKnoZ2rt7ippa++xLG9ubOnqbOzra6WlaWsp6CRjpKxxaeVjXyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuMj4+eiFqQl5eSlqWaZpmjn7OllqOWrK2rp5yfp5iZlpmVoaSopp62rKm6vMO1prS2y8G4qrass7q4rqi4ur24g25wXFpWV09HS1NNSz9BSEVER0ZHODVGTTs+Nz5BSi4zMjAyNUI1NVBXTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnJGaUlSZWJMRqaUnJahl6iWjJCDh6WSiIGHgpyEg5WQkZSOmqKfr76uoce9xsXIx87OztLKvru2sbq7vL7OtsS9t7i3srK1s7iyq6acq6u4q6mosLCXo66kp6SltMCwqqyzvsK6wLmzp7izt7OulaWtrq6ki5OVoY1zwZl9lpmEjpaai7GVmpqVkpOZmqajlaCblpqonJuhoJmLjI+WnWBKlpyalJqll1SWsJ+vnJ+llK+vraaboaaUk5mZjp2gp6KZtKmqs728u6uwssfAuKarq62xsaOhsrK0pHJwZ15cUFJNRVBQUFE7SEtJRkhBQz45S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1SRVdSc2JXRkirl5mfoaiumJCXh4unlo6IkoWfiIScl4+eoJujpbXJtKnGu8PEyMrJyMzOx766s6+5uMDBzbXIusC5tbqxr6+ytKajm6q0tKuppq6smaSupaWorLq/qKu2tr/BwL64s7LCr7e9q6OutKy4pYibl6abdr6ghJicjpOZmouulqGcm5eVm6ChqZ6ooJqaqpmhp56XkI2RnYNudpOimpWdop+QrrKjq5Wpqpirr6WloKWqk5KZm4iUnKKelrGnqqu6t72zsq6+ubafo6eopaecnKypqY1laGJgU0xNR0hOSlZMPU1ETUlKQUNEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5TYU1WSH9lXkhGrJScoZ+7rpiUnouTqpuRkpOJq42Hop6MpKyUo6O2x720wbrDw8jJxcLOyMK9ubKvubTAwsq2xrHBvLW6q6itrK+jopmqtLqmqaasqp2or6ekq6q+vKisvLO3vca8trW4wLC9v7OptLarvqSPopeRop+8n4maoJmXnp2Ot5+pnKWjm5yhmqels6KbnaWcqKqemZWPlJqLl4mNpKKUnKKfoLWvpaaTsauaq62fnqWkqpGVlaCDkJ6fnJWppaKhtLW6ta2otbKznpyippqXlZmqoZ54Yl9hX0xJR0hNUUlNRUZGQlJKSEFER0FWU0RIPEFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6ewqybl6WXmamclpqaj6qWlaimla2smaGqtsTBvL+4wcPByMS/zca7vrmysLizv8PItb+wvLe5t6ekq6usoaGbq6vEoqWorKaerK+soqqov7imrL2wt7bHtrS5uL6wvsG2tLK0r76jlqOWk5uUrZ+QoaKlo6OfkL6lqZ2orJ2doZumn72imKSeoqmroZ2WjZWek5+Hj4WNk56koJ21rKaclrKnmbCooJurn6GNmZWfhY6hmpuSpaSamKyxtrGqpamtrJyYoKGSjpCVqZ+UamVbYl5QSklLT01IRkNJQD1PSEA7R0lIW1JPSz1ITlU0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE2imqObncSroZ+snZ2tn5KinpakoKeqrJe2sKOqs7bFwr3AtsDCvMnCv8rItri1tbG0tLfBxre+sbi1uragp62qrJ2en6WkwaWgqq6gpKmtr6Kmp722pbG7t7a1w7Kzt7q+scPAuLits7S1opyklZGToK2gmaGdqairoprDramerK6bm56YpqC9oZ2kmKurq6ahmY2an5KeiY5Yf5aepqGguKqnk5i3o5+zoqGcr5igj5mUnYKPoJeWjaKklZCmrrOrqaKipaWVlZ2Zi4+Rk6SfiWNmXGVhTUpLS09GRUFGSz49SkE5OUpKTl1RUUo9TFdcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXExPnp+hmJ7Dp6Wis6GcsqeTqqSfo5+tqaydu7CorLWyyMPBw7PCxL7HxL3Fyr2wsbeusbWvv8W1urGwuratmqmxqaqbnqahqMKtm6yxnKqirrCppKe9t6a2uryvt8Sts7PCv7HGs7q3q7S2raqipZWVlKOroZ+fmqerr6+vu7KmoKmpmZmXkqKkuKGhpJKur6ykpp+SoZ6Vno+RjZWdmqOfp7Snp42YtJyjr5ufnK+RoJSXlJqAkqGWj46goZOLpqywpaeinKCekpKblIWLko2cnoBjZ1xoZktKTEtTQkNASUc7O0Y/OTlOTVVeUlNKPk9eXj1IUEJNTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugwqijqrGho7SplrKrpqKksqyuqbuyrbC0tMa/xMS1wMW+ysW2wMnCtqu1qbG4rMDEtLeurba6pZmrsquqmKCnl627tZuosJutn660sqequrOnurO3srjAqreywry0xae+rq23tamnrKGXlpGlpKKil5ekr7itsrW2oJ+opJmUlZOjoLejpKWVrrKypamlop6ampqVmKifn5iinq6yoqaNl6+ZpayYm5+mkp2OlZmbhpeflIyQnJ6Ui6mpq6KnoZmeloyPmZCBhpaJlJ96ZWpdbGtPUU5OVD1CQU5DOzpJQDc3UU9dXlJWUUFXYFxCSlNIV0tIOlVkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcGlWQ1dGjHlmQzukpJyhpb+mqK+voam1qp25r6ukqrS3sbC5trC3uLjFvcPHvbzEwsfBucHHwbqqt6Wtu63Bw7e4qq2yvKOVrbCtspemqJGquaqgp7Cdqp+wtLOqqba2rLussrK5t6y5sMG5vb6mw6uwt66oqqumnZiYqqGioJGXoLCus6uwuZqbqZ+ZlpKXpqC3qaWioq+xs6uxp6ufm6Cgm56lnaGXnaOzsJufkJSmmqGpm5ajoJeZipaZlJeYnZOIkJuZlI6pqaegpJuYm5OHj5mLfoyWho6ba2puYm5uWFJRWlRBQ0VVQDs6SUE3OlhQZF5QV1dEWV5eTUxST19LSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lgRihAOGx9aFxWOol7Y0M9qJ+coam9oaqwqqOxuKmltbKroa21va+zuLy6vbe2wcO/ycS5xcPBwLnFvsG4r7aoq7eyvL+/taqusrifl6ytqK2XqKmPp7ufpa2znquisbCzrKq2s7W9ra+xtaywtbHAucS2q7yvsbisrKmisaWepKiepJeQmJ+yqrOqqrOZnaebmZSNoKaktK6noqysrrGnsqyyqaObn6iknpWgmZuotamXmZKSn5mfoZ+RrJ+ZmYaWmIyemp2Tio2Wl5qXp6ajoJ6WlZaUgZCVhXuPkoSMl2Ztc2hwc19HWWZWRENOWERaOUhCNj5dUmhcTlpdR1teXU9NUlhkSkpDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFWMTUxPWBWXjgpQzNZVVxnSzWMemZMQKSZoKSst6OsqaWurraqrrS5pqewuMW3sbe+wcK1tLvFvszFucPBur+6xLfBubO1rKq6t7u6vrWrrrG3mZioq6qrm62rj6u9nquusaOqn7Gts66utrK5t6qtrrGnta+0urzJsqq1tLG0r66mobOfmqisoKWVlZqZsaKtoKWvlqGkmZmSjaKlprKpoaaxq6q1pK6wta+jmZ2tp5uXnpmZrLiil5OQj5icoZmYlK2gnpWCk5mNnpyal5GLlJKemqWjoqGZlpOSlnuMkIV7jYuDi5RsbnlvdXxhRmBqWklIWls9e0pHRTZBYlRpWk1cYUpbXFpSUlNiYUxLRWBhYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuKkEvSkdQW0czY1lUS0SZl5+vqLGprKWjrq61qba0t6OstLfJurS7ur++tbS3w8HNx7zEvbe+v8C3v72yva6nurq3t8K3rK6yuZWXp66rp6OzqpSvuqStsrGmp6Kys7GysbWxuLKprquyp7ivtbPExLaptLWrsK2pp6K2n56msaCklJuZlLGep5ufqY2pop2blZelpaS3p6Kws6unsaetsLWspJmhrKibnJ2blKq5nJWPjouZnaKYkZioo6CXhJKWkJ2cmJeWiJaPl5qonaShkpaSkJZ3hJCHfIaChI2NbnF4dnx/XUtlbFxKT2RcP2J7R0k4R2dXZVtNXmJNWFlXVVhUaV1QT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3JrS0RDkZikraStraumo7Cys6q2sLafq7W5ybmuwbvDt7OytcLDz8TAwr61vcC/ur+9s8SoqrmxtrfAvbCstLSdoaewraWmsaWesrWsq7KwrKmotLqstLO1rLSsqauorKm5rbGwx764pLmvqa2tpqitsKWjo66jqZydm5qvmaKjoqOQrJ+joJ+hqaWluKSrtLSkqquorK62rqKdo6iqnKCZmpKktJmPiY2HkaOglo6Vn6GWlIaOlJOdm5mWlYeYkpWZp52goI2TkY6ReH6OhX19fYeKinJ0c39+flxSZG5eTlpnXUZElltHOk5tWGJbTWFiTlZWVldUWWdeUVJMZFpbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NlOzYqSGRISis6ST8zQ0lTLD6Paz5ISY+aqaqhqbCkqKOztLG0tbGxoaytvcu6rsG7xrG0rbTCw9HExr/Bs77Cwry/uLzFqK23rLO4vMGxrLKuoaSnramopLGjq7Gqr6uxrq6tq7O7p7exsqmyqaumpaOtuqyqsMK5tKy5qKioramnsaWppKKuqqiinpuirJWlnZeemKudoaeooaylo62st7GxoKmin6qtsKydnqanqZqjmJmPoKiYhoOOioufoJCMjZeekZCHiJGVoZ2WmJaGlpOTl6WdnZ2MkpCOioB/iIV9d4CHhYd1c3KJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU9jXE5VVlVXUFxhX1RPT2hYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLklnREY4PEIwNUVLWDFAlFxATUaVlqynoaqynKmpsLasuLSuqqSrq73Ju7G+t8OvsK2zxMTOzsO/v7TBw8S6wLTJxKyvt66yusC/tK6urKaoqrCppqiyprStqrCurbGvs6yzuqS4s6ysraeroKKesLerqq26tqS1taSpp6ysqqyhqKamsbKkpqWhoauWqqGTmqCmnqOiqqSsop6msbesrKKlopqpqq2pnKGlpKSZoJqVj5idk4GCkIiFnaCNi4+Nm5CSjISNmaWck5GbjJORkZSjm5uai46Li3yHgYKCe3WBhIJ+dXeLpId5a15gbmdXZodkTkBnkkxEYnpXYlhSZVVNVlVVVE9cXWFWS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZBSUhElpGvpKKqsJiqqK21q7awq6Srqqm8wcC4ubO8taayr8TJy9G/wbu5wMDCucG6wsSusbWytLvBvrOyr62srKi2qqWtsKu5rqiwsK6xq7WqtrWmtLarrKSpqpyjnbOzqKiks7Sgtq6hqairqKunoKqrqLm2qaqqqaGpn62bkaihnaCjoqaiqZ2cprSup6WpoqOXpaamqZyio6OfmZifkY6PmI1+h42HhZ6eiIWLi4+PkY2Ehpajmo6NmpGSkY6Tn5iZlo2LhH90h4GAf3h1hIB7eH6AiJ2PcHJnZ3F4XGF0iGlPXZhWSG15VWRWUmNPTFZUVVFPWFpiVkhQalRWU0dQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JFO5WNr6ClqqyZq6StrrO0rqqlr6mpu767wbGvuK2ita/Jx8jRwL+9u7zDvbrDwcC/r7Gzsra9vMGysrOrtKmltamkrbOzuK+irbWxr7G5qriuqq62q6qeqqugo6G2raihnq+yobSqnqinqqOqoaGsrai9r6yurKGnp5+smY+vopiioKinnqebmKmwqKKfrKKhkqGioqaYmqilmJiYnY+Kh5WIfY2GhIWkloaDgoyHkI+RhYaVoZeJkp2Rk5CNkZ2Vl4+KhYZ4c4F/fXR4eoF7dHR7aoKIpHZpXmVsgXVniIt8UldwXkt4c1RkU1FfTU1SWmdOTFZZZVhHU2pSUT5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWk6MzhfPWFkP0YxQ1BbWytITztYQjSPjrGgpKWqo6WjrKa0s7CppLCnqri+wbywqLmqp66wycfI0MK9wL65vr68ybzCubGwtbK6vLnAs7S7rbmso7Wnp6yytrmypqe6ta20vK+8pa2ttautnKmvpJ+lrKqnnJ2qsqSzqJqqp6qkqZ6iqaipvau0r62eqaOgrpyasqKWpJukpZ+kmpmnqqWemqmhm5GboKSdmJapqZGZmpOQioKPhX2PgoCIno+HgH6Mh5KPkIWBlJuUhpOijZSRi5Gbk5WHiX6Acnp5fnxod3x7dXFyfmmGeoSIZGBoY3KFe21oeV1eVkNYe21UYVBSWUtLTXB0XUhaW2dZRVZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpOxmZ+fqaWjoaqktrKxpKmxp625wb21sKO5raiosMPJyczBt73Atbe/usi2w7W0s7Wyvbm6vbatuba/raKzp6qrr7W3tKqduruosb+yuaCvtLaprJ6tsaOcpaiqo52cpLCmr6Cfq6mnoamco6igrbunrrGuoaqio62enqyml5+boaKcn5qZoqqimpmjo5WWk56hlpuWpqyLnpGQkYyCi4B/j4F7mpSMiX1/jIeQkIyKhpKYkYeUpIqSkoeQmpCTgYh8eWx9dnl4Ynt6cnBxc3hqgnVqg2djaGFuc45tYmpwYG9CXXlrVl5OUVFLSUxTWVZNXF5tV0RYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUV09I5KXrJmfl6ejoZ+no7evraKvr6mrucK6s62fua+rqLS6x8rHv7fCvq+0vrfEtsOysLqxssC2u764qbm4vaqktaeoqrCtubCpmbm8o62/tLShrre1pqansLOgn6WmqKGkmZ6sqKmeoKqup6Cml6Kon7C4n6SxrqCsoa2km6amqZqam5+jlZybmZ2pppaanqiRmJKYnZOZlqGqkJqJjZCHfYh/go58fKGMjIh5hI2Fio2NhYmTmo6JlZ+JkZWDjJeNkX2Ee3NwfHFzdGB5eGpvcXFwa39zZHpsaGZkYmaHgGBbcmpxTU6AaVhaTVFMS0hQUlFITVtfb1REWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MFxbNSiWm6WYnJWsoJ6hpKG3qrCjtLSpqbrFtrKuoLesra2wtsXHwLe/wrmwtby3v7u/r6y+sLO/sr3Duam7urinqLaop6uwrLOwppi8tqOqurWun7G4r6mlp6+ym6GkoKSjoZabr6ahn6Oor6GgopOjpKK2sKGmsaufrKOvl5uqpaifmJqdpJOam5mcpamZm5uklJSXlZyOk5eiqaGQiYqPhnqEfoSKeo+Xio2HeoKIhImNj4WOk5iMjpaZio+XfoaXjI96gHpwcXZub3RfeHdlbWxsa2qEb2ZyaWtmaV5kdIFgW2t2aVpKf15bWE9PS0hIUlVGMjldXm1QRFhWWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJjViwylaKhl5Sbqp2koaKht6muoLq4pay9xbOwrqO1r62tr7TDw7yzv7q3sbO5uLq4uq+uwLO0ua+/wbisvbq1pqKzqqepsqutsaCawLWkprS1qJ6yvKmopamvrJmjp5ykpZSYobKlmZ+kqKmcoqCTpJ+juKikp66mnaWhqJKfqKKhoZmbnKCSmpuWn6Gqm5qYoJSQk5aZjZOTo6ikkImJj4Z5hHuEhn2djYmKh3qBhIeJiZKFlpOTjJCVlI2OlHuDl46Ld357bHRxbGxzYXd1aWlqZ2dvhmhoaWNmaWpga2NqaFxle2NgU3RUXFtTTEpHSU9TQCEqaF5qTENWVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z08nMp6io5GOpKebnp6do7Wsp6q6t6esxMG2sKyjta6nrq+3wL+8ssG3sK6ytra4tratqr2zrrKxvb+4rry7saWftqulpbSpqq6encCrqKSvsqmstbueqKmrsaWYnqmdpqSRmaatopiepKmhm6Gclp+dp7alr6quoaGdnaGUoKafoaGam5mckZick6Wdq6GXlpyUkoyVl4uPmJqpoJGIiYuIeYV3goKCnYiLgol9gIWIh4aRhJeVkI6QkZGRjJJ7g5WOhnN9fWZ4b2tqa2d1c2tjZ2RkdoFjZWZmZmpqZGtyWl9ZXW1kYU5pWFtgVkpHSUtNUlg+OV9saUhCVFNcW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao5+QjK2hmJiflqSzsaKxvbahsca8urGxpLesqq6puby7u67Bsq6urrausrizqKu5sa+us7a6trC4va2mnrWqoKCwpKqunKLAoLGkrrCut661nq2ura2imp2nqaWflZqnpZ+ZpaKonZqfm5ScnayvpbqorqKhmpqdmZ6kmqSel56Ym5SZoJKolamnmpOampGLlZmOlJSZqaeOjYqJj3yCc4GBipiFh3yJiYWFioyKkoSUnJOSj5CQlo6Qf4CMjYJwgH5meW1oa2lncXJrXGhjY3SBYmZoam5sZ2pqaG5dbGx0cGFVY2lkZVpJRkxNT1hRUVZhZYFVQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kaGajY6wnpqToZmosq+fuL+2oLTCu726saa2sKiupbe4t7etu6+sqqu2qrO4raWztbKuqbC3trGztbqnqZ+1qJ2eqKKprZqnvpito66vtbWtrJ+xra+popydo6uonJScpqSdmqqipJaan5yQm6Orqqm7n6ekoJiZmZ2hj2uilpmccIKVmqN/dZGpp56UlJ6QiJeZgJaKoZB4hpSMg25pfnaDcWyGi4Z9hIyHcF5jYWeEmIZsi4+UknR3i4R+g49/Z4aAZ3VoZVdcaHNuTlBqY2dzhWdfZGZubWpeX2GKj4OEZU5LRDlGVGdeSkdQUFRVS0hSYG90ZUZaUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoujmYaVsJuck6Cbqq2qo73Fr6m4wri9va2nt7Clq6S3s7KzsbmtqaastKavtaKouLa2qKest7OutK2zoqmfs6qeoaScpqeYq7qVpqWvs7etrqSprquspaGfnKCnp5uXoKWlm5unp52Tn5+YkJ6nqqO1r6Ojo5yWl5eXo4igjpKah6GHk5ygf6R/paqekpGakYiEcniNjoWIoXaIjGmXiGZ9cnihb4iHhH6OfX+hoKCZgHyHnnSHjnabimyHgYNsaGVjemtxYVOFbWNsaZhxWWpwb4hYXmlba2tbiHFuenKFZ4aEWl5HTj9HX01GUlZWUVFSV1RnXk1XSVJTUEZHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiLppaDnKucmZidn6qqp6m+w6+xur23wL+qpbewqa2ms7Sur7O3q6mlsa2ltLOcrbW2tKanqLOxrbKorp6roLKooKOimqGimq2zlKOlpbW8p6ynq6qsqKWhoJigpqOZmaWjpJicpKmWlKOclJOkpaaht6OjoKSYlJOXkpyIr5CYlImpi5ehm4WxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGXvJzFenK1pruQe4BslrGrsHhoa1ixrm5labySvG5oem9ykNh+U2pitrJ/gXKVdJqhqpBXT1diUFZORlRbWFFQUoxcV1xQQFxEUU5FR0o8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaSgKeqn5ecnaWtsqewwr2ytcC1t77Cq6ezraypp66zqa+2tKenprSlp7iunLOytqqlpKeyrq6xpqqep6Sxo6Kfnpebn52uq5Sdop+zuqOqqaKtrqWhnZuaoaefl5unoJ+YnqenkZynmpOdoaaioLCin5+jlpWSmJKZha9raoqNqn5ng5WGrWRwnZ2UmaWUca6hpH54u31roY92sV9qtFulgGackWBmgnpmf2p4a6lkvnJnpox1sWp8sXh0kpNjbW2nbluEoEVoZoeWRXWcYH5ofKSngllfi6tpgJZ4eWqnN0qvXFhTbGRbS05XX1xXVjtOiU9YVy9JVFRKREZGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKsp6Weo6Sqsrers72+sLbEsre6waepsKuuqKmwrqOwuq+kpK6yo6m4qJ6zsrCjpaCqra+sr6ann6OisJuim5eVl5ubrKWWm6Ges7Oiq5yira2gnZmXoKGonJido5+cmaGmpI+dopqXoJ+qnqamoJufoZWVkZaRmoW1m7V4hamZtZl2hrObt36TlpaolH5sgqZ7goaIkpSSd6tna7Fbq3uPh5R0iXGPhoB/iJCXeIKCi5iMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5c3VTk4deUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5WFhBI01oRkNFQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5WHs6amoK6pp7Ksqbu2wrC7wq24tr+pq62trqatsamhr7yqoae0rKOrtaWms7Ono6Kdp6qyqLCopZ6fn6+Wn5iUlZWXnayhmZmkqLSuoamPqaipmp2VmKClp5ufnaKfm6CjpKOVm5+XmZ2iqZulmZycoqCXk5GTk52D1ZOZuXCwwn7FhnzWlJu7fJqVpI+NnI2ke46HpIKlgnqseY+dVq96iH6farlauXaHhH2mgpN8mHqqeY2dkHuxbo6EdJC8hW+UUK+nxYpRoHpjYKlic3OIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhObU1bUk9ZZllDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzElm6KTmLGoqKWzqqW0qaS8t8GwucCxtbO6srSmsbCjsLKmn662qJqnua2jr7Ggs7SwoKSen6epsKm0qaScnZ6rl5iXlZeVlaCpnJmWp62wqKOej62ippWel5yhpaGZoqGhoZqhoqabnqGelJmbpqCcp5Wbm5+hmY+RlJGdiLJuaLVxq4dujqZytHNytnual6SLj52No3+RoaV+sHaDkdLRdlyue4V/pG+bqqZrh4V9rX2XmY97sXOSnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZ0h2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa2BsaFBVR0k4PVZRWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGdkqWvraSqvK2mtaWntru8srq/t7WzubmypLS0obGxop+ssKSXprmtpLGwnLS4qqCmnaGppLKorKmkmpyaqJ6VlJeYkpKip5+WkqWqsKailpOtn6SRlKCbpKaflZumpqGaop+tmqCenZCVm6GenKaVnZaZop+VmJWRm4Wse3eodqOOiIapb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9eIV+j52GmZp3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV52d4domIhrXa93lZ6PeGw1eciusl9CU29eZ2BFUG1fcG1WVU0uZWNoUlhRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk6OTmfnZWgubCXtMGtqLOoqbK6t7O4v7m3sbS7tKS3s5+0rJ+fqKyflKe1q6ixsauttKSbqaCgqKG2p6apopmdlaShk5KbmJGUoqWako+mra+moJWZqZ+hjZGimailoJSZpaidnKSerJ2hnaCNlJ6anaGYmZyWl6Ggk5iQpp6GqX19pXihj46CqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aIdKiBjpuNkqN8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcW0x0XWJnTVthXnFzXkpWNkqbk1hIRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84oZ2amr+rl7TCrqytqaa0sLextb+5ubGwtbqpurSfsKSepaennpOqsKmvqbWsqq+hmKGgpqWkuqKjq6CXm5GioJSTnpmTl56fj42LqLCvpp2Wm6imnouSpJeoq6eUlqmnnp6go62koZ6hjZWhmJ+gkp2XnJWdoZWWj6ucj65tcrRyqYx2iqZztHhzs4CRpKOSnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZKIrWt1s2GdZqJvh5Jql1ytX02hfIeRUnOjbHl/fm+Yh3Fcr1Y8nHdlVG9uLlynT2NSa2VibVpjXF9vemJUWlE+Pm1vM0NCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWanJ67oZyywK6uq6unt6m4r7XAtbuvrri2qsG2qamgm6akop2RqqmntaOyp6+qoJecp6Ckq7ido62blpmPpaOVjJ2gmpicn5GTlKq2sKeZlJysqZWLk6WZpa2ikJaqsqOfnqarsJiho4+Zopafm5acl6GSnKmclJCrmYfUkpq7c7DDgMOGftWWm7h4iJCYjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2VgaypcXt/dbyIp6BpnWGmjq+hfox0h6p9vm5zvHSyg3V4gYtumohxbo2kdL1ed31bYXm8a1pWW2p6XmphZWdhbHduWVtZQ0FAckBDRys1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56ivKGXscOwraqrrLGnuK+2xLG5sa26r67Asaukop6joZybkKmjqrKktaatpZ6WmaqZpqy5naOumJSgkKWfkoyco52XnZuRlZKuubKslZejp6eTkJaknKSsnpCgqKufm5+oo7Oeo6WOp6KUopqcmJWjmI+woJKUqZ6FkJm1gJCRjLeVeIKTmrV3bWtuc295j4SOiXSewbu9mnuBsqhwgHSRuYN8hoaMho17ioeNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtXRycHe2jF6Aen2KaIN5bXlji6xwdYV/WlunakVkWVNmYGNeY1FnZnBsdUJNUExEOlpNP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlYnPjs8p56gob+llrTCtKyrqKyrqbqusMWutLKut6e0uK2poqGlnqCdmZOrpK2qprWop5+blqCjnaykvqahqpeUnJChmpGPoaihk52Yk5eUsbW3rZidpKSiipKSppulqpuWqaWlnJqhqKamo6mhka2elqOel5eXnZ6PsKiUm6ehjmp+aZymeIdyfZqOdHpkh3u9vsC6b5KCcZWHYXNqWl6bimFjiI6Va2CAlWRtnXdilWuAmpWUZV5hY3GaimlyjH2FlWdqfnJ0eH1+Ylt3dIFoUFxuhH18i2tYbHqCc0pKb4ZwTXVNRVdeZmBLWldnY19PW211aXJST0RFTjtISD1MPzItMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPVtPJz8yPqigqKHCo5q0ubWjrKWup6e1savIq7Cyq7SjvrGypqCiqJyim5mZrKavpKS1qaWbl5Whm6atqL6nqKaVk5uVn5mSl6SpqJCdkY+YnK+yv6ybp56nooiTkamaqKOam6ygo5qao6esop+ropqxm5WnoJeVnZ+dl7Gkl6GomZyRnZyipJimopqcmpqZj5WBZ259cXeSl5SRhYu1qo2GmJWOioyYl4eUlYqEkpSRiY6SlJiUmJeaoKKanJShno2CeqSGbGp8kHyAdYmKgXGCeHl2douAfIprc4F0g3Vldn13a3B7bWBjXXBnTFhaZmpgV1pveW1tZlNPRlM5T1lNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzobOhv6GksbK3oKqmsqelsLSqyKussKW1psCntKCdpKSco5WVoKqnrKOjtqufmZaWn5etqqXBnquklZKcl52XkpOin56ip5ORmainssSvmqudqp+QlpaonaqbnKCsmKGbnKKkr6ahpaifrpiXp52ZmqCenpyvoJyhppWXkpiToKGVo56XoI6Wk4qKjY6XrpB8lZuCkoKLqqiGgZmXioSPn4h7hJCHhpqSiIaKlY+bl42RmJ6jlpqTkZ6Nf45mobOvhYqEdnuQinx2eXpvZnqRgYCJa3WBeYhzaXN/enWDh4JrdWR5ZmBpZWNkZmtZbHtvaWpcUkxQRF9URUA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r7+sq66ysaCrprGtoqyzsMSwqqujs668o7Sbn6aioZyZl6elqaakpbK0npWUnZmZsKWuvqCropCRnZqZlJGUopyXqJyEnqqrorPIs5+qpKqWlpeap52omp+kq5Oen52gqa+ppaOroq6bn6ChmKSenJ+dr6OYnqiTl5ackaSYl6idmpdlgpJ8ZX6NmpBkeY1saGt7kqSqamWamH5nhoplZWloe46hj2tojZeRo3draouZo56Zc2xue4SNh3pYZV6Ggl5si4mAdlxoc3d3koCHgm54gniAc215hHR3iYiOhHxqhllea3RkXXOJaWt8cWtjXlFNV0pkWEFKND1GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsaqlqK2tsKatrbG8samnpK2vsJ+tl6CjnaKZmaarnK2jpaipsq2elaOPoq+mtrmlrqOOjpqhmZOSmqCZmaWVe6Wtoqi0xLikoqevnp2UnqKeo5yjqaiSnqGdoKqwqqukqqCqm6efqKCslqGbpbCkl5uqlaCdmpKll56qmJ5+vYOIcrRyhJ2GrWh4ucS4cZOio3qmmZlzqoJ8y8DAu3GMooiCn32WmImdwL2Cl52djZ3CwXyCfJKNmsPAfWulsm+MgW/Ken+bd5GDjoF2eoGAeXF6f4dxeIWNk3lueJRjZl95ZGBlgmNedGdsZGJXS1VJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JRLyNGWzNQWS9VQUI7LziWo7nDtLCwwKmolKOvqbCuraaztK+ppaamsaufq5iaop+cmqqnop2so6WopKS0pJ2ikqatq7izp6+ikZGZnaWSkJ+hmJufnYenrKSrrcDAsaCpr6mXkZ6doZmio6qjk6ChnZ6trqmsp6Ojp6GmpZ2tqZKkmqitqZucqZysoJaWpZWhopecf86UeHqkgXmVlptfro9ejqeBoqB8p5abdKuDgK9eY42qe6eHhaB0l5OIs2OCq4ahjY2zaoWvdH2XiLdhg61Zos1ukHV72nt/mXB+iJJ2fmV7iHZ2a3yIb32FkZF+bYOQYHJscGhgX3lkXHFoamNmX1FUUlddS09DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGkqqittKumsqysq6SrprCqoKebmaWXnKKvn6CeqKejpqGfsKyanZWmrayxqqisoJSSm5+kko+epZidp6OerqSrsKi/x7OoqbGulpKdm6GXn6mqn5Wgn52drrCnq6mcp6ikoquTrLOXpaKqqp2jpqWhsKCSmaaZoJqUlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnneqgn2tf5xzrX6rh4afdpiSe3yXfqqIooyRjJ1+q3uJlJCfgHutVpzEeo9vksF9gZVtdW+MbWV2ZYZvYXducm+JipKPg22SkGZwdXVxYWdtZV9vaWluZ2NXU1xhWVJTQzhJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytKCco46jo6Ksr7avqLGmqKqnraurp6KjnZmilaClq5+ipaCoqKKfnbCsl5qXqKaurKimqZ6XlJqjoZGToK2bnaajr6yjrLWquc2yraatrJaVnJ2imJ6urJ2WoJmen6qyqaqqm6yrpKOsm6+xoqirrqWYpqqpqbGikpajpJqUkoWkaqR1iXqpdHqycIKmipmMcYigmoekYGFSq4R/roObdq2BpoaGn3qZl4Z7ZoCjiaSZhoKkfal/gpWHrl99qVWdopKBeqKfgHvDr8WLcq+zs7lxYqmvwnRojIyYjoFtmpRwbnl4eXBtZmVlcXBmfGliXVdgaVhYVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVv6GZq6ehr6KesLSwr6mtoqemqqurqaSmoJuknp2mp6ejnKyaoqyhpJ+vopybk6qjtbCvoKmbnZaUpqKQmqKooKClnLCmpKixrLbIsrWqq6mVkZ2copifpbOdmqCUnZ+nrKykrpqtq6OjqqKzrqKqs7Ghmqmorq+2opKVoqeYm5F8qmyehId1q3l8sG+CpIuJn5aWn5SB0ri0uMmAgbJfYJSpg6OIh6B6mJaaeKrJdJmklaiqkZOajICciprGx3hmoYKlc4GfjoJ9r11wtGKwdUujhm2nR4KTZI6QnpJ8cZeTgHF7dX58bltmanJwZYFqX2FYZG1cXllJTkxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqbOtrKWinLK5rKqhppqopaqrqqegpqWYqqOfr6udpqCsmp6ppZ2ntZ+il5OoqbWyrJylnKCUj6WskZmbp6OgqaauoaSnqbC0wrGzqq2ok4mXnaSaoaOuppihlZmcpqasm7Cdrqmnnqykt6ygsbmvnZuup7Kzs6STl6eimZ+Ogp1OeJqBf596g6N9g6SEhqaenJ6ThLh7fHm5gn7MxsK2eJuhkIuffpqWl4p2npiKpZikqX+whZ2Fn4SsfZqUYqVspHCPhZCBfZaCcqxgo3NxgJpgvH1SVXSOkqOWe36Tkox2e3OFf3FcbW54cmqBb1tkX2huYmRdS0xRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq+gm6Gss7Oln6CVpa6trqqnnaammqOnobOuoqmnsqCZqaSUorWiopWXoai0uaObop2ik4+hsZiem6eloaKvrp2kqKK2sMOxramtqZGHkJynnKKknKWXnpiZmqakqZqvoa+lppivpbytoba3rZ2dtbK4sLOml52voKOdhY/RtcO3eYeOhZGTkIGmeJShd4ygkYSlgYpxqoaEtG5yapmjnJWKnnyYmYaHj3OvgqWboo6mi5OdipWQm21wslylc5N6nGyZf3uZfG2pYaNxcX+fYnOyuGh3j5SmmH2MjZSOeX15j4JtaXhpeXJugHVdZWRubWZnYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWTc42Krb+/vLq0npanpa21oaKZlaOop66rrJmmop+moKC1p6Opp7GjlKyjjqSto52Qmpqos7SknaScqZGUl62fn52npJ2nnLWaoaqktqrCsKmrqaGMhI6coaCmo5WampyYm5mnpaaYrKiuo6Wbraa+rJS9sKyforCyuau0ppqosaOnl3qokH18sHeKgKSliJxtsm+gh618oY6DqJWYgKyJhK6Fn5SqoaGXhp+AmZWAe5J+q4CdmpeLq3idn5GKlJKBeq9do4F9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWRppmClY6Yjnx7hJh/a21/Y350boB6YGdlcW5oZ2dDWmFbPktUM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JODA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVldXWFZVVVFIRklKIygovZOag6nGwrbBtJ+arKCuuKWjjpuko5+wr6qfpJ+drZmeuaCjq6CvqZquoZCrqKSWiZqPrrGspp6mmquWl46soaGdpaGapJytmKCopraov6+lqaSfi4CNm5qfpp6SlJqalJqapqWlm6qsrKSln6qovqSWw6yqoqGrsrmqrqafs66oqZh2r36Qi5yFh326roqYZbCMZZWtfaGPg6aVmoGsioSwhaaZpKGhkYWgW2xqgbNgf617e4KBsW1nb5mYjIixW320XKSDa8iiZJ+Ae7xYdrVasn1SroB6rFiAoW6YkKibi5eRmJh8eo+dfmR0fmKEeHSAfGFqZ3FtZmVlT1VkXEJVXz5KKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFdaXmBfYGFiXl9cW1hVUE5KRkM1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpcXFhXV0dCO9Kfs7K3vbqzwbOjm6ympbaooIuaoJ+cs7Opn6OgnrWYoLSoqqyer62erJuVr6iijoibjq+sqKehppitkZiOqJqhnqSfmaOjpZmfo6qyqLuvpKienI59i5uWoaCZj5Gam5KamKmgopqprqimpqOlqbueoMampKihq7S1rK6mnrusrKyVgKmSo6+Om4CHpJeYkIGAuMO6g46ck4SnlpyCrIqCr4imm5ulqpF+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGujgW+rhGycf3qysMeDaquwvax4d6K+vHOBlo6nnJCbkZiee4KSm3pjfXtkjmd5gntgbGVramJQYVpTalxAVWFCTio9OjQvHh8kHiUyIB0kKDA0OTY2Nzg6PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbS0sb+5sr2yop2upqWypp2MmKW/qriyqKG/pqeynJ6xnLqon62vpqaUlLCsl4yDm5GupaKsoKObqJ6XiqOSpp6nnJqhqKKZnqGsrai4raijm5eSe4eZkqabk46RmJiPmJOpm6GZqqmhqqeho6q7nqjEoqCuo6qztKqvqJ+6p66umnN1qqS3hmSJoHBnrY+Kj21vd6SQmZ+Bda6YlHCPi3GVqKObl66kcm1tbGaLeG9ugplxgXpqcWlniZaWmHJpaYSHZ3CGZF2IYmpvWV1nfnemX2FxjpFuZWV/jZOPopiZmZGYoH6IkJV2Zod4aY5reX95ZGxjZmxiS2RYSmxaOlFlRVInSzorIxwgGyIsKRgbGC0yLjU6NDU3OTw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqZWts6m5uLKzqqmhrp6jsqmYkr6yxMm+tqqewKyso6GorKC6o6SurK2mjZeuqZCMhZWWrZ6mqqCdo6KekIqkkqeZqJmWo6qglpympqevuqusmpuSknuElo2lmI2RkZiUjZeVqJWfmKqkm7GmnqKruZ+vwKeksqWssLGqraumt6Ktt5aKoKiltp2JlqOZh6makJSdkqmymZqjq6CxlqKgnaCinKCloZWrp42TkoyHk5yclZCak5iRjpWFgaSZl5aOi5OTi4+GhH1niX50gnZ0h4txp2x6lJGTkoGBjZCQj52VoZaamKODiZaNcmmQd3GLeHd8empsZGNvZFVgWEBpW0hjYU9aK0Y9KychNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVVlleYGFjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKaWqaqktLaurqKwo62foLWxkI6sx73Fu7mroqaem6afsaijtqedqbSnqJGYrKKLh4mPm6iVrKSfmKadnZGUo5eomqiZlKaho5Cap5mhtbuoq5iZj417gZSMoZSKlZGVkJCTl6WQn5uqoJy2o56nq7enrsGuo7amr6+wrKmpsrigrryZkaWkpraikp6nn42pn42Sn6Osr5qgo7Cor5ejoJyjqp6enZyWq52SmaGblJCWqpmNmZmWkJaekYmgnZWUhZKMkI2Ui4B9ZouFdYZ1eYiDc5xqhZCUk5CJfIuWkpKXlKKTnpijhYmZiHtylnN6i39yfH9qb2RecGphW19YbWNQYGRQWjpHR0U+Mj09OC8rJispJh0mNDE2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVVBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX19hYWJhYWFgYmJiZGJcW2OXlaSoo6+yrK6jqaatoKe1qpCQnaW0vK+traKjmnqdorGkpbGpl5y4pqOUmaqcjoaKiZyjkK6eopWnnqCRlpibrouplo+omaiMmKmPn7m2pKWYmoyIeYKUjJuTipWSlJCNkpeijZ6fqZ6fuKOAhK+1oq+vdaS9o7Kfd3mgqrG6lHWspJ6JgKp/ZFxidqCOpJ6El31uk7Oco6etqqNlnZ+Sc3mZlnCAmKiXbH+iqIplnKWckZeYloySnJGGnZqQlYOSh4+PkomEd2qOhnaGcHuGgYBhaYeKlJKLWnWUkGhoj49ze6aammZ7moeDeJhqhIuDb3mAa3FlX3ZwbGtoW2ZlYmJwU1w+Tk5OU0c+QFREOTEvHh8mNDozMTY2Nzg8Oz5AQUFGSEJHRklLTVRUVVldYGhmZ1dRSjxERzw4VVJbYGFiYF5gX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6CvsKyrqaWprqOmraSSlqu2sLKnm6umrJd0jJ2vn6irp5SXuZ+gj5yknZF/iYmbnoyrmaKUpqCcjZaRnoR1rY6IppqpkZekiJu6s6egmZeKiXV3k42Wk4qUkZCUjJCToI+boaeZnLKWgIybtZ2zjJKPu6egfqeieqKutoCOjqaeg4uGkLGqr4yKlqOaeYCLrIacnaGnqaeHlYWYd6WbeoebgZengoJ7nLJ6ioagl5mUmJaCkZeWhJqZYnmHkISOj5GKg21wjod5gHCAgYV/hnSGhJWReJZnknSgmnR9mYSinoiYf5OKhISZa46OhWx4e3FxZ2R4b2psalpla2pldFxfSVRMUUBFNS5aVFU3KSEwOT0+NzQzNTY4Ozo9Pj5AREk/SkVKS0dTWFtZW2FhaWZZUUg5RUs8PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mra6rqKygqLGmpqmlmZSuyL6xopenqbWej4SdrJynoqCNkL6emo2fmqCQfIaOmJeHqpuglJ6fkY2TiYZ/kKeMhqKdpJSYnoaeubCnnZuTjoVwdZCJlZCKlJCPm4yQkp+Sl6Gllp6rh5+0ibSarYrKh6qtiLeFjK+Cr6yCqY2lmI2dfaiPcnt3nI+nlmiVpHm0jJ+epqiSmMKBf6uImKFynoCapX2XhZWxgKF9oZOgkJiXgY6Tm4qYkYt8hZKGjZWSiYNtcpCFf3lxhoGEfIR1hIGWgI/FZn+ph4+ja56Do5yEmoCNjoaKmXGOk4Vod3R8d2hodXFoaGtdY3BtZ21YZ0ddUk0yRDQ2TmFjNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmptXFFFPUxNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUl6KfsKepqaaroKS4sKmqppqUoKOkq6SXpaq3o6+AoaecpZ6diZS9mZONoZKej3mElpaQhqqYmZqZoISPjHeam46ej4eepJyWmpiGorispJqcjIx+Ym2Pi5OQjZCNjZiMkZKgj5ShoZmhp36hp4etnaCWrY+enJ2RhYCgjaqthaONqZmMmn+jdYCZlGuCrHVNq3iHjZyRm6ingKmrfYOhe3qnaZ5/kmtnl4aXtomefm5gZFmDl3+Me2Roi3KZfXmVbF18lm1fU3CDXF9reYNgWWWCfYOAl3CnqmuDo25ypXCfhaBqZqBsW26LfGZaYIN/YldQb3dmbXRya2pvXWpwbWxpWGlPXlhGOUE0R0ReazQsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl5jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5adoLigqqSmrJGhtbyrrqKZmKCipayuoZ2utaOokqGgn6abmo6ZtJmQi5+MlYt1gZSSjIqmlZOXnZ1+koWFq6OHmo+KmKmZmpuRh6WwpqGVmoiJgGluiIiLj46Ki42SjJCSo4yUn6CcoaR/k4GPo6GUoHeclo+ng6Gnf4aoq4OleIp8hJp+onBzlIiWe56MeW2Hm4yZkJuomo+HnXuConN2pmaefnekX5h6fZJzom6Yt7S6dJOHgn+1qGSBxrh7cJW3i3GAmqRic6yrYH1pnbN+bnyGgo2Ci5hxf6NscqN0n4WBpGCdmLKVcXyXn7N0c1uesoNqYm90dnFpb1hqbHJyZl1pXmNMRD1ENlFBWXEzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1OUUBFX15bWlhgYHxkSEM4TFdVVmNhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLe1rq2gmqKdo6Omrpybsq6tk5ihmaGkmZqUn6ubi4iSeIuFcYCWjYqPoY+Rk52YfZCJjaigh5iOipGjlJybjIuoqKWej5eHhH5re4d+fY+Ng4uQkYmQlKCDl56gnaCei4l3nJiijJ9yoYuHqIibpY+Vpql9rYx+eqCZeqOTeIF0loiNnH2Vn4abjpmbpoaiZKF8iJaQm41snmiajW6amXuAi6d9cmh0q4Oeg3SqaJWaXZuFdoSdaKpqgLhmXKhwgZxglYxep3Z1h4l+nmiadYaTkpeOgJ9vmpBtp5lcqH54u2p9qVuOhF2zZ1xucnp4a2lccGp4eWNgZlhiQlFGTzdWQ1JvNUtaWl9PWkRAMTUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXVllZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniGOUm6u6srGsnqacnKmfnq6bnrGprJ2XpJqhn5iWlqGkmYaJjWqIgHJ7l4iLlpaEkJOYj3qKhJWjnIqUj4aLnpKdnYmOqKOgmoyRioCAaYCGeH+XjHuJjo6Ij5abf5Sin6Chk5hyaJ+Kn4+McJKMgamHmJ6hpp6me7Cto6K4l3ejs6KkgIiUeZ17qpp/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmn90qlpdb3uWi3ieYkx+enqFY3mXQkyeWaJqcnyObYCIhJl1m3iGibGzf4Cbk6d3gp1tcn2Ub5lyaqNdlXZIZWRhc3F+fm5mYGxpdntkZWJSX1ddVVdAWkVRaERTV1xiWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQzxVX2JaZmpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZsXmVnZmtkZmxpaGtpk5yBsK2ZhFNeoKazubOzqZqijJyrnJyplKGspaKoj5+enZqZlpihnZaIh4l3hoFveZWFkJuLfJCRlohyf4iSoJtzkZCBiJmVoZuFjaicmpWLi4p8g2yEhXGBoYx4ho2Ih5OZlnyTo6Ceo4ithn21hI6enHullnqpgZWcj4mfm3ynaHdtfpl0oXNxfJ6GmXCTg659pIOmnpmAo29eqGd1omNvpWGc05B8e5l4cnNjooaQfqNzpI92a5CzjGCCmIlzqrKovH93g21+vqaptF6cbn1xl25/cqJyXaRnc6ZhaKZtm9SafYWbb3h6l2ube3eXc26ppGdhZXlxgIRrZ2ZkbnV3Z2BjU1xmUVFiSVdKVGFXU1tlalxlUUZDS01KS0JLRThPQFFOWFNZT1NRYWZlalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7CrVFxLfqmvsbSws6ObmYWZqaChpI6lqKCYqYqamJiTmZOSoJiOh4Z7cH2EaH2Pg5SagXePjI6Ib36Fj5KSbJeTfImRkqSWg46qmpOSi4WJeoN2h4BugZ+Gd4CTh4iZopd7lKOkmp+Js6Gitot6rKekrqVwqICakIWAm5F7pICimYaYcp6Eo66vipeMf4ykjZWDraGUdrS1tcmhc5SKgZ5gnZepbXmVhqCbdaGHd6B+kpeLgW9MZqOScJuHc6R7enRhg4FrfqBrcWRfnHF9dJdpemmztbTGpnOYfnqda5ybq3WEm211eJhpmnt1mHJQRX20Xmp2a3mIZmpoYnR1cG5WXlRZaVBTaUpWTFlUVl1oa25WaFdOS0FKTUtISk9BUUtQZWNqbWV1c3N/eXxudYl7e1RQTmxeaFtraVJqaGlsZ2xmY2VgXF1cXmliZGlre19dZGhjamZvbGVpbGWhnIivpoRmP5Shs6uvr7aiopCAmKqio6WMpqednaaCm5eWjpeQj5yTjoiDeWp5h2WDjH+XoHl1jYeLgGeDhZGDjIWdjXqMi5Wmk4OXqZiMkYuBiXqAfYt5cJChhnmBloiJlqCVf5Slp5yWloRmbnicbKJkfHGld5uYcGemgJaLe6R6n5aDl3KedoGKlJaPuW6QiqJifZmhlYhtcmmqa3WgbW6mX5ppi5BoloealXWigH2aYIyGjXVviGJooGWefmmbdW9jZoiCbXKiWl9bYqFtXYmMbnt+c3JkpW13omRnp2iZc4yZb6JvU4mQb6BfZqhUi15UmG5tc2tygm1waWt5c2tvUllXV2daVG1KWU9dSVhpaXNqWWtWUVJFVlxMWFNhVWlrX3d0e31wfXxyg3t/c3aNgIR2XlFyYmdicGdQamhoa2xuaGRnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKSYpnpldG2Lp66kqbCxpp+LgJirnZ+mjaOhm6KigJaZk46aj4uYkI6Ke4ZxgIhoi4t8mJtzdIh8j3pjgYaUiYmVmYJ8iIeWqJGBoqyRhpCKgop+gICOc2mPpYR9hpSOiZigjoiTqqadiaZ4lZt+pYiWjLKYnpCCr5efpXeUh3mpdKWPhJpupKKMkoSMg7tufaWvg4aGhpOVnJ98pXpyqJWglmaefm+rY5aKlZJ4qGypooGJdoiDd6qRpodqkbBrdrOMqWuKhm1tn56SlWB+q4uqdn5/jKWedp99hKSVnaBqm4h3rGefrYy2dHe+jaSTWYOmjathdXJ0cXx0cWNqfm5obFNXW1ZhYl1rTV1SXUpebW52YFtxWVxgW2Z0ZW5vcWJxdGB3en55cnmDc4R/gXt7jIGCgHZieGRjbXNkUmtnaG9scmpmaWFgXlxia2JtbHpvXFxiaWJsandtZ2xuYpWlqp2BgJ6klqmqnainrqSZiYOYq5qfpYqbpZ2pnYWMmo+HnJGFko2MjXSGeoiEcI2EfpiTdHSFcpKDbH+LkYeGk499e4KFmKaOf6WmjoGOiYWVdoKHkm9si6mAg4uUjomcn4mMlKqjoI+AdZSXiH6BeZSuo3+Bm3GPhXiPioN+e3KnjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3t9iWuMhVt5eXJ6cGhufpKJcX91gY+Uk3GGhIJljH9egX+Ld3VzlHVveW5uh22EhV52aHiOZYCAhY2pm310fJZqiYhwgXZ9hnZtbWeMc3l7mHiFXGtYeY9pbnhycm94eHBdbIZuaWZWW2BXXGZrZFZiVV9RX3B4eGxrdmZqa2t2fXFydHNhb3VidHuBeHV6g3WAgX+BeYuFg317bX9sZHhuXlduZ2h1a3hqaWplXGBaY2pmbHF1blpbYmxkbGx5bmhsb2GNlLiopouhopqmpJmlnKujoYSEmKySnqGJm6eaqZiDgZuLf5aTh46KiY1yg3yPfX6PhXuXjnNyg3CVhXt9kouGhpCFeH2AhpmkjnynoYuGkJCFloOGjph3coWphY6RnZCInp6IjJuon6Cqg4mOlZp+fomWraiPkqaPd2+ckIJ5kW9+qIVwfZVxa3B9gZ+Mf5OOjGhtXYOLjJybno5zlYuIcXRrgnZ0gVlyboaRgX1+jGpdamR7hYSJgGBpeHqbe4KLgnWBhYJnd4qGa2FwcYF2XnKKgYiPppWFZYyPg253i4Rxho96cGZnZXuDepZbXGpnbnZbe3l4dW5zc4JmXG2Ka2thWVpfWllscVxfYVpfXWZ0fnp0cHRja2trfH1ze3h0ZG11aG18fnZ6fHt6eoCAfm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VubGdzeW9oam1gi4uqsKGQo6Ganp6Ynpmoo6N+g5mtjaCViJyikaWVf3uYhX2SmYmIhoeKc32BjHaFi4GElopxb4BymIaEfpKDhIaKgXqAg4uboJCCp6GHeI6YiZWLi5yXhIN6rIKRl5mUip6dh4ihq5+ioqOLiJObnKOZlqqhp6agkpuHlY17d42OhKd+f5KRkpOcsqablZ6QjbKTl4SljIyVm5+JkJuCiJGKa3yOd3hlgoaQi3yJnYSHi5CIiICEhJB3fHl0maGIhomeioSUfn2KgIB1b3OEgn53hoaKj6aQg4WNh4ONkIx9iIyKkYN3bIKEfXqZanJoYXSKcH16d3dwd3SBXV5vhmhuXl5aXV1UaHJWY1xcYmxodXx8c29wZGtraYB8bnl/cWpwcGxngXtygoB4f31/hHttgoyGfHp4fH16g3lOZHdqcm1wemVrZWNiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZIyHnbmelqKhmJWYmZWZpKGefICaq46ejYafnIueln15lIN7jpmJhoSEhm54gIBygYh+iZSEbWt+epeHhIOQf4CGhIZ9h4SOm52Sh6ufhHKLkIaTkYudkX2Ne6qEjZKYlo+cloeGm6afopqdhoKSmpmYkJqmoKWdnZCWf4+JdXyHjoSle3yOkJGGmKqinpOdj42qjZGAnYyJk5qego6XfoaOg294hnJ1YX+Dj4Z1i5iBg4+ChoV+hYSUbnl1dJKiiouFmoSEjHN/iHx8cnJ7h4N6eIqOg5Kmj4WDjoGDiomKd4aJiox9b2x+gXxuaGxtaF96f2h9e3Z1dnV7d1xfcH1udF9jW11eUWduVGVbXmJraXZ6fnFsbWRrameBgGxzgWxsdW95cIV5boeAdoKAfoV2cYKNiH57e3x/e4KKYGl7anVoaYJkamNgaVxkdWhvYnRtbFVjcXllcHp7c2VqbWyLiZ63mqGjn5KRlpiLmp+fnnt4nqeRm4qGpJOLmJl5eo2FfImRg4yCgoJue394c4GFfYuRfWtofYKYiYCHjXx+hoSHfY+BkJubkYmonIBwjIuMk4ehooqFjH2okYiQkpiUlpN4jKOfoJ2WmX+AkJqYkoyao6GkmpeRmn2MhHiAg46GoH9+jIyPfJikoqKTmZCPpoyOgJqRiZOXm36Tkn6HjoF0dIJwdmB+gI2GcYqVfIiMcYx/goWGjmh3cXiLmJGPfpd9h4pygYZ7fHF4eoqEenmQi4KVpZOLhZB7hoaHhXaChImIe2ZyfH95e3FsamZffnNofHV2dH1zgGpeYHN2cHdkY1lfXlJraVRkWV9haGp2eYFxZmtkbGhlgIFrbX5ob3FsfniHemuMgXOBgX6BdHaCjYZ/fHp/gX1/j2pygm1zaWKHaGxiX3FWdG9tbmB4aG1XanR2Y3V6e3Jiam95iY2espKlpZyOkJiPhp2gm518dqWhjpd/jKKKiJqWeHuGh36DiX+IgoF/cX97dHaChX6KkXhnY32Gl4qBiYx5fYCNg3mWgZWYlo2WoJt+cIyCkZSGppuHjImDppWFk4uXmJOSd5GdoKCXk5Z5fo6Yl46Wmp2knZiSlJp4joSCd4SWjZ1+gYmNjHKXo5+ik5mOj6GLioKWmIOSlpl+mIx8iI2AdnF9bnpkgHyKhXCGk3+QgmyHgoGAiYRldW97hpKXjHyTd4qIe3+FfHtxfneIhXmEj4mKl6KVgYOLdoiEgoJ3fIKKhndgeXh9dH94Z2xlYX9pandzdHZ9cXxiY2FzbnVybWFaYV5bbGVSY1hhYWlsdnmGcWNqY21laH2DbGh1aGxwaYB9gnltkIZxgISDf3R8g4yBgH56goN+fJBtdohzdG5limxqYmN1VoRpcW5geGdsYmp2cGZ5fHpxX3FshoWPnK6XpqiejY2Xh4afk5eZfXiqnIqZepaci4yYkHl8gYx+fIN8gIKBeHR5enR9gIR/iYuAZF59i5WHfoSGdX1+in99mISXlJeMpKKYf3OHe5SSiqePjI6Kk6GSg5GQlZiRi4GPmJ+ako+Qc3+NkpSJnZ2eppiYjZWVcoyNiWuFl4+ZeoeIkIlvl56bpJOVio2ei4aBkpx/kpKVh5mIfIqJgXlxemt1bHx+i35thZKClHhwgoN9fop/ZHJpe4CWl4R+jXOPiIN4hn12d398hYB8goyEjJSkj3iEgnSJh32AdHaBiYRvYXt1enF9b2JvY2R7Ym5vdnN4d3N0YXVgb2x1bW9cXF9eXmteUF1YY2JpbXR7iGtfamZqY2h3iG5mbGhqbGiBfXt3bpCIc4GEhH10gYaJe4N9eoGEfX2OcnqKeHhubIdqaF9pcmKHaHFvZXZnbmxheWlrfXt4cGF3bYuAmZmqoKOonYqKkYaLnouVmH53rpmNl32ek5CWlIh3fnuKfXuAdnh/gHB0dHtvhX2BgIp/fGFbfo+Shn+Dg3N6gId6j5KIkpGck6WclYJ9gn2Oi5KkiY6KjZibjYaRmJOWj4qIjJKdk4+LjG6Dj4+RiJ6ZoqGXlomWkG2HmINmhZiOk3qIhJCKcJWalKOSkomLmYyCf5CefZKPkoyZjnuKhIdzcnVrcG51e4t0boaQjpJxdYB7gICHe2RwbHh9mZN9hIh0kIqAc4d5bn99gIV7hYuIhIyVqIx6h3x+i4V3fnFwgYaEZGl5dHVwfGJfcGFrdF5want5eWxzcGV4XW5sc21yWVpfX2JrWlBXWGVjZ3FxfodmXWloZ2JncY1uZGlnZGlogXp3dW+OhXSBgoN7dYKIhXiFfHiDhXqAiXd/i3t6cniDamtfcGh0gGpyb21xZ29sZXxjboB6d3Fsd3eKfqKXoaigppuHjIqCkJ2Hk511gaqVk46HoIyVk5CAdHx2hXh5f3Jze4VrcnB6bYp2gIGHbnFbWH6RjYh/f393dYGAf6CGkYuSnZihlZh4ioCBjYmcnoqPhpKYloWJlZmPlouLjY2NnYqNj4NtiYuQkIqdlqGcmJWFmIdpg6KCZoWdipB+i4OLgXeTmJKfkZCJiZWNf36PmHyRjY+NmpF8ioCCbnVwbG1vcHuFaXODjpiKcXeAdIGHgnhmcm51gZmOe4iEepOReXaHc2+Ie4WLeoqFgoiOm6OHe4N1got/d3lubIGEgl5zdHJwcHlaXnBgcGpeb2p8e3FtbWpsdmBwb2pxbVpYYWFiblhRVFpmZ2N2b4SCYl1rbWRiZmuSbmBmZl9na4F1cnNwi4B1f4OAeHWAi4B5hX93h4Z3g4V8h4x/e3aKf2pxY3xjhnxucWx0amhvbHZ4X3F/eXx0dXSAgn6klZqtnqaWhY2Ef5eUg5CgdYuglJOGi5qMlY6LenJ4dIJwcoVzcXWIa29tdW2IdoN+gG1uVVGBq5WHgnd/d3ODeoKggpKCk5OYnJOaeJJ7g42TpJqTjomVmZKFh5eZjJSLiY+PiJ6Ej4p8couFiY6InJqfm5aUf5N9Z4SbhmeFoIeRg5GCiXGDkZiQm46PjIyPjXh7kpB6jouMkpaMfIh8gGt2am5rbGx7fmF6fo6Wgnd6gHeCjHx5Z3Nsc4eVin6IhnuTj3F5g292jHqJi3qIfYGLkJ6dhHx7d4KLfXZwamyCg3pheHBubHJ0Vl5vYnJgX2xueXFocGZnc3RocGthd2VdVmZgYHJTUU5cZmVeeXCIfF9caHJiYmVmkmpfaGRbZ3B+cGtxdIp9dnyFgHR1fox5e4aBeIiDc4aFfo2NhHx5lXhmcmqDYIh9b29remBqbnR/dV90fXmGeHRzhXx4oI+ZsJyljoKKf4Oah4CMnn+LmpSPhYiYjo6PhHd0dnOAcG+Fc3Bxg29qaXZug259fW11c1JNgt/IktaTfHB1g3aEoIOTd5WSmZyRmXuUc4WQn6GTk5KKkpuUhn6WlomNjYiRjIicfo6Ad3qMfoiMipycnZuVk3mMdWaIkYZsiKKEkYiXgoVjjJGZj5WKl4uNiotxepSIe46IipORiXmFfH5se2Vyb2treXlcgHmQjoB7fX5+hY16emhyanOKj4mChYR8lIprfX5uf4t+i4Z8hHmBjpSamop8dniDkHhybGdxgIVua3VvaGp0bVJeb2RwWV9rcXdna2tiZnhyb3BjX3dgYFZrX152UE5LYWdjXXpwiXRcXGV2YGFlZY9jYWZiWGlzc21qcXaMfXR5hoJ1dn6Lc4CGf3qJfnKJh4GRi4h8fph2ZXNufWWIfm9wa4BabG55eXNhdnt7jXZyd4p3eZ+Lm6+boJCChXeIlX59ip2HhqCRj4WMmISTjoeBdHdweXFuhG9tbn5yZGV4cH1ten1qaGtjpJrB3K7voXNsdoR2haOGkm+XkZahlpyBknKFi6OXiY6Wi5CdloOBlZCFiY+AkYqJln6He3V/iXiGhI2cm5iZjo91iXVthYiKfYqig5CJnISFXouTmIyPiY6KioSJbXuWgX2IhYmRj4Z2hX19a31keHVpbnhzWIh6koeFeX6Af4SLfnhlcml/iY6JgoJ/i5aFa4F1bYeQgY+Ef4J5f4+Vk5iQdXN3iI11c3BndnqEY3VucGJpdmdRYHFnbFVfbnR5YXJkX2h9cHJuWmNyYWJWbllceE5NTGRnYl53c4ltXFxkeV5gZGWFYGNjXllqcmtua3J3jH50d4SBeHd7iXGDhH1+iHt0i4mHloaMf36Xc2h1cXlti3pudHCAV3F6dnlxZXh5h4xpdoCJcn+ch5mnnKOShX1wjJR4eYudhIWhjY58lo2AmoiEe3N3cHNqb4FraW18dV5heHd7cXV7Z2BkfOvatcnD3IhzbHSBd4ubiY5qmZCQnpaUgYlxhYmgjoWLlouMmJR8jpOIg4mPe5CLhY+Bf3Z4g4Ryh4KTm5eUl4aMdYZ+b4SBiYaYoYKTi56DiWGDlI+HioaJjYeBh2p9lIB9g4SJjo2CcYZ+f3F3aHZyaXN2a1qMfJKDhXx/g4CDiYJ1YXNriIGPioF+fpGQfW2Ba3iFjoWRg3yBfH+QkpCWiG5xeYyGdWxwa3N5gmB1am5da3ZfUWRxaWZTYHB2dGBwYF1ognFzaVdnaGJpWG1WW3VMS0xmZ19icnOFaVtcZXleXmRne2FkX11Za25mb2lzeIp+c3OBfnp2eodzhYN8gId2d4qGjpmBjIJ7k3Vsd3V5eJN0bnh7fFh6hnGAb2d5d5KCZHaGhXGKloWZoZmiiodzb5OLcneOnH6LmomJfJ9/hJp/gXhyc25vZHJ+aGZsd3hbX3l7e3FxgGlgZmF/1baOkKZ4bnF3fHGTkY2Ha5qPiZyTjIZ7aYeLmYaBkpGGh5iOfI2NgYGKjXuPjX2IhHp0eoN7cYeBlpqOk5SBiHSChXWCf4qSnJ2FlI6ffohhf5OIhYmEiY1/gINnfZGAfn+CjI6Qfm2CfIJ0a213dXR2dWpijYGPf4R9fIR/hIh+b19ycIR7joyBfH6QiHlwg2Z5goqGi4J7hH1/k46PkoRub3mMfnVtb2tse35kaWxqWW52WlJpcmliUWJyd2xiZV5aaoNtc2JbZ19kbF9uVVtwTkhPZ2VcZ25xgGxbW2NzYFxjbHdkZV1dWmtsYm1qdHeGf3Fwf3t9dHiGeIWCfYCHdXmJgZKWfImGdomBcHd5e4STb218gXdeg390gW1penSUc2dzh3xykpGDmp6an4aIdnaVfm12lJd+iJGEio6afYyadn12cW9samF1fGZiaXV6Wl93fHptcX9lY2dnV52PXnFzlrzEhHZxlImQfnOYjIeclI2IdGuIj5WAe5SMgYSbjHyLhn18iYx/lIh1iYV1dn2BcXWHgp6VhpWPgoJxfod0g3uJl5yWhpONnICIZX2Sg4CGg4mJcoJ+Z32Le3l/f4eLj31pgH2DdmZveXhzdnJrao2FioGJfniCgISDf2pecXd6fYyJhXuAj39+coBoeIKGioSDeIN7gJeMj4x9bmx6iX13dG9paH13ZV5yY1hwc1NUbnNpYk5ndHhmYF5dWG6Ab3NZZWJdam1gcE9ZbFJEVGhhWmtubXtvWltebGNaY3B2ZGdcXWBramNsaXN2gYNxbn57f3R1g3qEgnyBhXZ+iYGWkXiDinSBiHN5eX+OkG9vfIFxaYF5en5tbXx2lmtqeIR0a5SNhZ+Xn5mFiG59jHZqeJiPf4KKgpWYinqPlm96c3FsamRgdHpoX2Vye1phcnx5ZnB6YWRkjrGyd0piWqTZ0Jdye5GLkXh/loyFmpKNhm9shpKRenmTh4GEmYp8h394eImKhJaAb4qHcXR9e2p5hoSmkYSTjYN+bX2CdoJ4hZqYk4uSj5SFh296koR+g4OJg2+BeGiAhXhyf3+Diod8ZX1+g3VjcHOAaHhwbnSYjYWCiXp2eICEeYFqW3B8coCHhIl9hYh6iHKAbXCDho2Dg3KDeICYjI2Ed21ufoR/d3plaGp+cmFaeFpZcm1OWHJzZmBKbXZ0YV5bW1l1fXJvV2ddZmpwX29OV2lSP1lnX1twamd5cVxaWWtlWWNxeV9oXV5lbGhmbGlxd3+Hb21/fYB1cIF7gIF/gn92gYWJl4pxgo1xe4Z9enqElIx1anp/a29+dH99b3J8e5Rwb4B/eGaSioKhmJySgoVnh4RwaHqXiX5/hYKZioF8jY1peHJrbGZfYW95bV9ib3lcZGyDeWBwdl9lZdXrvosyOj6LjoByeYWIjo12hJiNf5OOjX9ubIWNjHV9j3+FgpWJfIN4bnaHhYOXd26IhGx1e3RmeYODqIyDj4yDfW1/dHWDeYWaj4uPkZKMi4Z+e5KHeYCEjYNsgHNpf354bXx7gYqDeGJ5hIFxZHFpfm10cXSBm4uAf4R9c3V+gHOAb1trfXR4iYKKe4Z/fIh4enFsiIKOgolxgXh/lYqKfnRtanaAgHV1XGlpeHFZV31TWnFlTFtzcmVbSnB3b11bWllddH50aFliW2dlbmJpTVdmUT1eZl1ddmZfdHBbWVVvZFplcXlaaF5gZ21naWxpcHh9jmxqgoR/eW6Ae32Af4J6dYKBjJOFcICLbnd+gXt7iJOJf2h7fmt0fHKGe3N3fX+MeniEfnxrjIyDm52WjIGAbI1+a2l/j417fn+DlIJ/fYqIa3VxZ2hjW2Jnc29fYWx0YWhwiXlgc3ReY2SboJBuXDVZr7V1aoCJfZKGdoaYh3WPjIp3cGyFg4d0eYl4iX2TiHp/c2d2iH59l29whn1od3luZXqIhKWHgYeNin5ufnZ+gHyLl4aBk5CXiIuEiXyPiXJ8fYV8aX5ta4B7emp6doKHgHJgd4F+cWRyZ3WCbXV7hZWRgXyBfm93eXx0fm1XbX52c4qBhneHdYGJendzbomAjn+Dcn58fZKIiHpubWltgoF1bl1oZnRyUlt7TlxxXE9ccm9kVktzeGpXWVlaYXGAdGBdXWBmZGhoZk5aaE5BYWRbYHZhXHVtWFhTdGFaZG5yV2peYmhrZ21saXB3fJNsaYSKfX1wfn57gX+CeneAgImLhHJ7h29xd4R/e4qNj4NqfntueHl3ind9eICCh3+Df356bYWMiJijjYSDe3aMeWtthImSeX17gpGAgH2Kg3BxcGNmXllnX3BwYGBocGZqb4p0YHNvW2FkaXZ7f76cpqPIuHKFg3OUfXiHlIR0kY2IcnNwhHuDc3WGdIh3lIl5eXFjd4Z5gJNpcoR1Znd2Y2p8g4iegoB/jo59cn5zg3l/kI6Cd5WNlI+Hgoh6iYlteXl+dWh6aWx/eXNpenaAg31oYHeHfmpqc2h7gGl2gYyQlH56fX1xe3Z7dH1hVXV8cnOJg4J8gnCGind4cHCDgot9fHh9fHWNhYJ2aHFobIiCcnBdaGN0b0tldkxeb1VUWnNtYlFPdHhhUldYXGFwgnNbYFxoZWRjamRQW3FJRGRhXGRxXlx3aFVXVndeXGVuaFZsXmFqZ2Vvb2hwd3uTbmmIi3l+c3t+eYKBgnx2fYOIhoNwdoNzbXeDg36Ji5R/cIB8eHl6gYt0g3h/gYGChHmAdm9+iYubnoh9hnp3h3xodIaNkXp/f3yJhoR2j4Bnb21fZFxYZVltc2FgYXFsbGiJbV9zaVleZG2Ad6naqseGh7JyinhwjXV7h5CBepSKgHV0dX53gHBxfm2FdJSGeHVsYHqBeYiOZnGDb2d1blttfYGQk4CBeZKSfXh7bYZ1f4+Kg3OVipCOh4WFe3+FbXV2f25od2ZtfHZtand2f398YWJ4hnpodXVjfntndIaOjJV7dIB1cYB6fGx/WVZyfW90g4Z/f3hriIZzeGt1f4OCfHl8d3tyioB8c2d0ZW2LhG10W2tgdmZIbm9MW2NYV1Z4bWJQU3R2WFBVWF5gcYRvXGBibGRjXm5iVF1yR0NmX11maF5ae2JSVlx1W1tna2FWa19hbmZmbHFocHZ4j3Rrjo11f3Z4fXeBg4F7dH2DiIiDb3GAdXF1foaCiY2Ke3d/eIR8fYWHeId8fYF+hIB7fnN2eYyOn4yJeol3dYN5Xn6Gmo15h4N0hoaEd4l7Ym5sW2JbW2FWanRjYFtob3Bnh3FgcWZXXWNrf3zKzoe5omttbottcoVyfYWLf3uShXp5dHl1dXtqbXVjhHaSgndvZ198gXmLiWVxgWpqcWNYbXuGnImDgnOXlHd+e22HcICJioZwlo6QiIWLg3p5fnFxb31naHJjbnhyamxxd318el1leYB3aXV5ZoJ2Z3SHjI2UfHKHam5+gHltfF1YcH1tc3+KfIFubol/cHZnd36Afn91e3F6c4Z7eXFlcmFujIJsc1hrX3hdSW9sTVdWX1RVfGthT1R1clFRVFZeYnSFaFxgamllYlluYVhjcEdBaF1gZl5dVnteT1ZlcFpbamhdV2dgX3JmamhyaHFzdod4bpWKdH97d355g4eAdXN/hoWOgnBwe3h3dXmHhYeMhnp8f3WLfn2GhISHf35+fYd/fHh1eXeRk59+jH2LbnWAeWSDiJeGdJKKb4WFgnqDdGNuallfW11dVGdzZWBZZHJyZ4FyYWtkV1tgaX94vq57n7duYnOHaHR8cnqDh3t+jYB4eHN3b3t2ZWpuYYd1joFzamJffnh5ioNmcH1oamtbV294iqOBhX9xmZNxgHh0gWx/gY+GcpSHjIeDiIV9eXRyb2h5YWptYW12a2drbHp3endbZ318eGVzfm6EdGV1ho2GlX5wi2ZreoN0bHRiW257a3R8i3qBZnSGfW1waHV+d3x9cXtreXuBeXdwZWxhbYl+bW5Wa2B4VktrbE9ST2lOWXxnYk5VdWtNUFRVXmd2g2ZdYW9nZmFXaV1cbGlKRWpaYmRXWVV5Wk5XbmpZXWxlXFllY150ZmxkcmdzcHSBeHCZhXaAf3h/fIWHfXVzgoeAlYJuc3l7e3NyhYeIiIR5gX12j399hImOg4GDe36Lg3t3fHd3mp2XeoqDh2l2fnxshIWUgHKPgnGGgn6Cf29mbGZXXVtcW1RkcGVfWGNydWl2b2RlYldcXGiAcG9ygHOJZWV5f2p0dnNzg4V4gYR6d3R1bmt6cGJna2eGdI2EbmZeX3xve4l9aG13ZmlkVldycI2nfIR8dpaQc3xye3lsenqPhHaXe4eGgoaDfXVwcm1ndV1taV9tdWRnZml6b3tyWWeBdnVncIB4gnVhd4WLfJSBbotqbXqBcWVyZWBseWdydol6fWF1g3Zpa3F1enB5d3J8Zn1+fnh2bmNlYW2GfG1rVmpicVRMamtQTE5wSF57ZWFNVXRkS05TV2Fqd35lXWdyaGVfVmNXYnBdS0trWGNhVFNUc1ZMWXZlWl9rYFxaY2Vfd2dtYnBpc29xfnV0mYF4gIB4gH6FhHp9doKDfpiFbnJ0fHp0cYWFj4KAeot1dJCAfYGUjoCFhHx+jIZ6foB2e6OminmIhoVsdXx7dYSCjHpvhXN6hX2Cg3VuamllVl1bW1pTY25lW1hhdHtqaW1oYGJXX1ppgGlrb4BnbGFoenlrdHR0b4aCe4B9dnVuemlrempfZW5ogXeQhGdlWGJ3aX6Hem9pb2dmXVVYb2iPp3aBenyRjnh1b35ucnR4jn53lHSFgn+FiHZqcnZnaG9cbWVebnNfZ2JqeGh7bVttg3N0am+Afnl3YHaEhHiPhXOIcXB5f3FjcGhbbnZkcHOHe3hhcoBwZ2l4c3Frd3Z0dmODe353dXBjY2Nse3xra1VpYmdUS21pUEdSbEVheGVhTVRyXUtNVVlka3d6ZV9tcGlkXFZfVW9uVklTaFhmXldMVGtUS1x6X1tfa11dW2JlYHpobGFvb3Vub3d1epd9doCBeYB/h4Z6eXqDfYGThHF0dH55dnSFiJB9gH2QbHOVgXuCn4V/h32AfoaCgIp7doSsn4B6iIeEbHKCeXaBgIJ0bodvfYB0ioBqb25kZFhfWlpbVWJqZ1taX3WCaV5ubFxhVlxca4FlcnR9aWpdbHd2Z3R3cm6HfH5+enZzbHpoanhmXWRyZ3p3koFjY1Rkb2eChHd2ZmhqYVdWWWhkkKdufniAi456cHB8ZnhueYp6do5xg31+f4ZuZHZzZGhoXWxiXnBvW2debXVlemlddIBvcmtxe351dWF0hYp7h4eAf3dydX50YXBsWXByYnFxhHt1ZHKAbGBsem9qaHp3dHFlhHR5eXVxZGFkbHJ9amxUaV5eVUx0Y1FHV2JHY3ZlYEtUcFhKTVhYZ2t2emRlbXBmY1pYXVh2ZlNJXGNYaFhYSFZkUEhieVtdYGxbXlxiZF6AaWpfb3R4bm9udoOXeXKBgH1/iYuGfnV2hniGjH10dXWBeXp6goyOfX6EiWp0loF7ip19foV5gHt+fIaIc3GProx8e4aQfmZxiHp0fX12cm+GbXt+bY96YnBvYmVdZVZaWVdjZmtgXV1zhmlZcW5bXlhaXGx7Y3F3dm1jW21zdGh1dnFthXl/gXl3bm90ZWl1ZVtndGZ2dpF6X11TZWZqgoFzfWFjaVxVWF5iZJClaHl0g4aQeGxueWd3bHuDeXSIcoB4e3h/aGV2bWBmYV9qYF51a1llXW9uYnpmW3h8a25ucHd5dHRkcoOSf4eCiHp2b3F8cmF3Y1pub2FwcYF7c2VxgGRebXZpY2Z4enNsbYF0c3xycWJeZW1ufWVpVGhZWlVOeWBSS1pZSGN0Y2BJVG1USk1aVmlscntjbGxzY2FZWlthd1xTSmNdWGlTVkdYYE5HanZYX2JtW1tfYmNdhWloYW54eWxvanaBkHhtgn6AgpKIhIF2dYl0i4Z0cXZ2gXd8fX6MkIB+k35weJaDfZmSeYCAeHl+f3OIg3NwmqJ7e4CJlXlkdYh5c3l2a3Nwf2x5fHCRcl5wb2FnYmxUW1pXaGNtZlxccolmU3JuW1lYWGBsdmRqdWpqX1ttdHFtdHR0a4Z9f4B8d29vbGVpcWNba3JkdHaPc1xWU2RgcX9+cYJcYWNeU1phXGSTn2VycYSDkHRranlsbm95eXpxgHZ/cnl6emRmdWdeYlthaFxed2lXYl5waGF4YVt7dmpqcm93dHN0aXCBlIOGfoR2cmpwfG1ldldbam1icHKAenNlb35bYG9xYl5pb3tra3N9cnB3a3BgW2VrbXthZ1RnVVhSUXdcU1BZUkhjc2JgR1ZsUklQWlVra2t8ZW1vcWFbWlhZbHBXUk9mV1ZoU1RGWVxPSXJ1WWBkbWNYYWBhXoxqY2RteXhrb2l1eYZ7a4R9gIWZfIKEeX2IbY+GcW93enx0goJ9i4+DgpZ0eIKThoGfiXWBf4F0f4Jwh4J1b6KXdHuGi4d7ZneLb258cGZ4cXtsc3ZzjWtedG5hZ2ZrU15cVmhibGxbXHGMZE5vbl1WWFVnaXRoY3RlZV1abnVucHV1emuIfYB9iHeQc2Nla25hXG5tY3N4h2taVFZiY3d8fHCFXGNfY1RaYFpjlpVjbnCDhIpzamd5bmVydXF6a3l0dW56fnVfZnNjW15XYmRZYXVmVl9hbWNhcV1dfm9oaXNxc3B1dWtshJOBiXuFcXJmbntvcW5TWmVqZXFzgHZzYmx2VWJxa1tebmR7ZGt1fHJycmptYFljaWp4XmZUZVVWUFVvWFFXVFBIZXJfYUZYa09JWFRWbWhkfGlrd2phV1xVW3RkU1JWaFFYZVNTSFlaUE54d1tgZmxpWmJgXl6PbmJma3l1bm5pdnZ/fm2EgH6Gl3t/h4GJfmuTiHJndIB7dYCDfomPf4uTcn2KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYt3eG57jWBkfHFneXN5bW1xdoNnZHxtY2ZnaFNgX1VnYGxvXF5ujmhNaW1gVVZTb2ZzbGV4ZGVdWXF1bXJ7eHNtiXyBd5x7emxiZWxtXmBuamVweX5nWlZYX2x4e3tvg19iXmhWWWBYZJyIYmtxgYZ8d2tqdmxbdXBqeWl1cm1ue4ByWGpuXlldVmJkWGVxZFRfYmliYm1aYH5rZmtzdW5td3ZraIWMf4l6h21xZm97bHFsYlhfaGhvc4Bzc15pbVNlcGRVYm5heGJvdXt1am9sal9YYGZodV1lVmJWU09ZZ1NPXU9PSGVvXWNHWmpOSmBLWG1kX3hobn1kYFVeVF10W1RSX2ZOXGFUU0pbWVFadnZdX2ZtaFhiYVtejnFjZ2p3cXNtZ3ZzeYNzgoN7iI5+fIqIjnlukIp0bHOBc39/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2Ojo6Njo6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6OjY2NjY2NjY2NjY6Ojo6Ojo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCS5KamZmZmZxbQURERERDWGhnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIaCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTM/k56cnJycn1IxNTU1NTRNYV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmHh4iIiIeOkJCQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaNjo6Ojo6OiIaGhoWFhYeJiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkZKRiYeOipCSk5GLko+MjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyMjI2NjY2Ojo6Ojo6OjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoWOh4iNiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCQiIyFho+JjJCPj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkJCIjIeIjIiOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMkIiNh4WMiI+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2PjI+Mi42Mjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Pjo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5OUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlZWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKSlI+OlJOVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkpGRkpKTfIaUkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSko9+j5KRk4hzjJORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCQkHR2kJGQeHSKkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+RfGh9kYl1domQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6OjpCAYmqKfmx0iI+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjndeamZpY2yKjo2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLiouGZG9tW2lya4GGg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d29jcW9hanNxZWhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoY2VrbnNwcnVsY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXllcYGJjbW9wcG1aWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTU9faGZsbm1nZVFQU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OT0xMVmRtZmptbWpnXFNPT1BRT05OT05PUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0dHT1VgaG5obGxrampoZF9WT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVFU15iZmhqbWxzcGppamxramZYSkpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj8/TVleam1sbnlzampsZlxSTEVFRUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7OztHSj5HWWpvd3BraVlHREFFRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs+PTo7RFhtbF9IQT5BQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk6Ozo3N1NjPTc4PDw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT49PT07RVk5Ozw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9APF1uQD5ERT8/QTxFXD09PTs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXZIODs6PT1BPEphPDw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw9PUlMRkZ2d003ODg6Oz4/V2lBOzw8Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/eXx3Vjw9Pz09PkZqdU06PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoKEg4ODgH1dPkBDQEA9SnN8WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2EdUxBQ0VAPz5ZfIBdP0NFSUpJSU1NS0VDRkZHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVxQkRFRENXdYaHh35YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhGSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIpsQUFWdIeJh4eHiINXSExNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3Z3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINWbISHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSkhISEdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpVgYOEhIKChYaGhIKGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDg4SFhYaIiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJioyMi4qJiouMiVQ6ODY1Njc2NjY0NTc3MzU2ODo4NzY1NjU2NzY3Nzg6Njc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BPUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIKDg4ODg4WJi4qJiYqKioqLiYqKgUc2NzY0Njg4NzQ1Nzg1Njc2OTk3NjY3NjU6OTo7Ojs4OTg5ODc3Nzk6OTg4Njg2ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhISGiYqKiIeIiIiKiouKiYmMej45ODg7PD0+OTo6PDk6Ozk6Ozo5OTs6OT09PT47Ozw9Oj47OTs7PDs8PDk6PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXN1eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUBCPkBCQEA+PT0+QD8+P0A/QD09P0I/QEE/QT89QEBAPj9BPT48Ozo7OTk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t9fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUJAQENFQ0JAQkNCP0BESEVDRUNFRUFGRUZERUZEQEI/PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyLioqIVkhNTE1LTkpJS0lJSkpJRUNERkdGRENFRkRCSElLSEdHRkhHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0lZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE5QTkxOS0pMSklJSEpGREZISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hHR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7PD06PkA+P0BDRklJUF+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1yTlJPTkxMTExKSEdFSUlESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dIRkNCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4tfUlJQTU5NS0pHRUJHSkdMSkZLTktLSkpMTUxPUE5ISUtMT1FQUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkFCQlxvcnd4eXp6eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxYVlJSVFNPTEtKREVGS09OT1dVUVBPUlNTTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSUpEREVFQkRDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQkdWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hXVWthRVJRUVBJOztSVFJgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTlJQUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0ZGRT8/QUFFQUNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJdXVddWlZFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6eXp7enp8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKi3pucFhaXFtSU1JWVlRbWnWDWVV9kGBcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTlBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVRVVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlNVY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlRkVX9SUVFOS1JUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXZ1c3N3enp7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM9Q0lHVkBITkxHXWlQSEZPRkRFRklHSENESEdIS0dEQkFEQE5RTVJkcnR2dXN0dXp8e3t7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgmtNRz9AOjs+QEA/Pz5qUUthRUZISUVCP0dMTkdNUVVJQkU/Pzw9PD09Pz0/QUNDQD88PUI+Sk1HVW50dHVzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PzxCSD9cc3R1dnV2eHp8fHx9fHx9fX1+fH59fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZGSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FXUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxCPWVzc3Z3d3l6e319fHx7fH19fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aWE1MVFRTUFFVT0xSU1RXWFRUWFFMV1laVlhYVlhZXVdXWGhza11WYXNrYWFfXmRhX15ZVFFOTk5MSUhKS0lJRkNRUFNbV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NTc1Nzg1OTlHbXJ0eHh5e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1RWWFhZU1VUTEtUVlVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTE9SUk9NTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz88Ojc4NzY1OTk2NzY3NVdwcHR3eXp7fH19fX58fX18fX19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF1SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMSk9SUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9ydXh4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0lGTE1QTUcvRV9SPjM/PmpvYVJSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR2ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1MRUdDT1JDOEVOU11nU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydXl7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTUxLSTw5ODc7P0A+PD1BQEI9PkVIR0NGRklHSklARkFBQEZIRUpPSFFSYVxRUFJOU05PUExMT01LTUxNT05bV0tNUU9HSUhDSEpMTEpGRkZFP0JDPjxCRz9CP0FkcHR3e3p6e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSEREPTk3Nzk/Qj47P0FAQD5BRElFQ0dHSUZJRUJCPz49Q0JBR0lFTU9iZVFNTk5XS0tNS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dXh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEpEP0E9OTk5Oj9CPzxAQkFBREVHS0ZDSElHR0hDQz9CPz9AQT5ERURMTVJUTEpJTVRHSUlKTEpLTElKTE1PUFFQS0dDS0dDQkpKTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFIS0RHSEhHSktJSktER0I9Pj06Ojo7QUI/PUJCQ0NIRklLSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISUtNSEpMSElKS0pNXFJISERORkFES0pNTVBNS01KS0ZHR0pNTlFOTGJtaXZ2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLQ0ZFR0VGRkdFR0JDQD08PTk6OjpAQ0A+QkNERUlFSUpMRklJR0ZGREI7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1HSUxHRkdJSUxOS0lIRU5JQkZNTE5NT01OTk1LSUhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZWtxbHNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQ0NDRUBEQj5APzo7Oz06PT5DQT5BQ0VGSkZJSExIR0dHRkVDQD1FRUI+QkRDQ0VHSElHTVBKRkZHS05PS0ZISkZFREVJSkhLSUZIUEtDSU1MUE1PTk9PTkpKSE1SVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxmcWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMR0VFSENCQUJEPUJBPkE9OTo9Pzo9PkBCPkBCREdKRklGSUhGRkdFQ0JBQUZGQ0JDQkRFRUdHSEZMUUxJT0pKTExJR0hFRkZEQ0lJSEtKR0tSTUJOT01RT09PTU5PS0tLUFVXVlVUWF9eXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJAREQ8QUBAQzw4OT0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISUZDSUpJS01LT1NORFFSUFFSTlBNTlBNTE1TV1ZYWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW95TUhHSEhCQkJGRDw/QkJEPDc6Pj46PjpAQj4/P0NFRkRGREVIRkRFRERFRkdKRUVKR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFNPUU1OUU5NUFdaVlpZVlpdWlhhYGBgX2hlY2BkZmhnamloaWZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSUhHSUNBQ0hFPEBFQkQ9OTo+Pj08PEFCPD8+QUJGQ0VDQ0hFQ0VFRkdHR0lGR0tIQ0lIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05PUlVWT0tVV1NRU1FSTE9RUE9UWVpZXFpZXF9fXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZvdE1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkE8QD5BQUZDRUVESUVGRUdFSEhGSEhJS0lFSkhIS0hGRkxJSEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1NSUFZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpnZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRUZJRklGRkRJSEdJSEpNSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QTE9QUlRYVk1OVFZUUlJRUExOVFNSV1teXl9dXWBfYGFhX2FjZWJkaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dLTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdER0lHSEpGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNRV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdISklJS0hKSk5MTkxJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxrVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHREVLRUVKTU1LTExHR01JR0pLSEtLSUtLTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEQEJCQD5DRkdCRkNGRUZFRENISEdERUtIR0xNTkxNTUZKTkhKS0pJTEpKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcF1fcmtxalV1eXhwY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0hFRUVCQkI+QEBGR0JHRElFRUVCRklISEVHS0pHTU1OTE1OR0xNSUxLSUpNSUpJSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SE1HSURFRUNBQj1CQUJGREhHTEhFQ0NIS0hIRkpMTEZOTExTUkxHTExITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnRzdnNIS0hJQkVFRUFAPkREQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTU1JS0tLU2tiW2leX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERURGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKSktJSElHS0tLTEdIS0tMTExMSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xVWVpdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDQENIREZHQ0lLTEhGREdLTEhER0lQS0xPS0xXTElFRUhJSkhJS0hMSkhGR0dJR0hJRUZMSUpLTkxJUFxXXlBcW2BeTVhZU1xcYl5NWVpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNFTE1CRERCRUlFR0dGS0pLSEVFSkpLRkVISFBKTU1KTVNIR0VBSEZKSUtLSUxKSEZFSUZERkdFRUpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfYltgXltUWFdZXl1jYmNhY2ZoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ1dmFTSkpNSURCQkNHSEVIR0hLSUlJREZLS0tFRklKTktOTEhMTkdIRT5HR0xJS0tKTEtJR0VJRENEREJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVlVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFSElGR0hIRkZKR0hGSEtJTERES0pNTUxMSEpKSEpGP0dGTkpLS01LS0tJR0dDREBEQUhJQj9JSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUltXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHRklGRkZJTEpORkRLSkxOSkxJS0pISUZCSEhRTUtLT01LS0lIR0VEP0VDSEhBQUdHRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBR0ZER01SSENRSkZISEhFRktKTVBFRklKS05MTElMTElJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VEV1VFXFVeU1ZfWE5UVU5aWk1KS1RgYVtfWF5eYV1PWWJcYGBfYmNiXWFiV19fVFBOT09XUV1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQQ1ZeSUdHSERGTUpQUEVJSUtLTkxMTE1LSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0JFRkJNSEJLTFBPTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xRU1JVWllXWVhYZFdPU1RQUE5NT1RTW1hYWl1cYGFkZWNnY2tscHNyenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hMR0hKSEdNTFFRSUxLTEtOTVVOT0tLTEdHS1BTU05QT05PTk9IS0ZgRURfTERmZEVNW0leW3JtT01VbVlMQ1BgVWtXZ0pdWFVeRE1RVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalNXVlRbXFtgYGFhYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xIRUdGSEVFS09TSUpGYFNISk9KSU9NUlFLTUxMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUX9RSXxZWXFzWFBtSHFub2FWUHFxc1BCa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZWWH9qdHV1X192X1hhW1xmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1OQkRMTEZJS0VRVkxLTklLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWlJUUXZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zcnt8b315b39yX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5LT0lRUlRZV1dRVFBQUFFLSGd4bGN4cm1bS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/b2hvWXZ2anV1cIFgcmd8aWx4fG9eX19iYVtdYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXdybk5LU3ROQ0NGUFBISktKS1BPT09NUFpgWlhLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRybG5ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGZlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUElMTUpLUFFQUFBRV1xYVU1VWVVmWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9bcHp7XmB6c2Nyb3hxaGR8aXJ8XlRMbGB2dWtpdXx7bX54a3xwXV5fYltfYmRkZ2VlZWJaY2Npa2tyc3J3Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ta21PSEpLSElISFJQTE5PTEtSUlJPU1JXUlZUUFdbVlZUVFRhYFBOTUtUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFlSTlBVVFhYWFtaVVJTV1tXWFdaT1NVV1hYUl1ZV15WVFBZUlZXV1dYXltncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlYUE9MTVZUUE5VU05PTUxRUEtKUlFLUU1LS09SVVJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1BRVVVWU1pRT1NSWFZUWVZUWVVUUlVUVFVXWFddWl5hXVxaWlxcYGNbXWJjZGZkZWRhWWBhY2FiaGhpbWNhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNRUEtPV1NQTlVQTlFOS1NQTE9VU05STk1OUVRQVFFTVFVOS01PUVRUUlJRVldUWVpbWVNVUlRXV1dZW1RPVFVYVVVaVVdZVVJSWFZVV1tZWmBdVVheXF5dXF1hYV5bYmJjZ2ZlZGJYX2FiXmBoZWZlYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FbWlhXWFpaWFlWXGpkVlhZWldWU1RPSk5WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVk5XUlRVVU9OTVFTVVVUVFJUV1ZaXVxaVldRUldYVltbV1FUVlZWVllUWFhVUlJYVlZaXVldX15WXl1eYFxcYF9fX1piYmRoZ2RkYlliYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF5bWVZVV1FMTVZTTU5ST1FST0xQU1JVWlVTUFBMUFdXUldTU1NYTU9QUlRYVlVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpXV1xeWl5fYFVhXGFhXmBiX11gXWNgY2doZGZgWmNgYV9fZWRfYGNbWlxbXFlaWFlXXFlcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRST1VUU1BXXF1cWF5cX1dcXmpxd3mAYlxbVlZYUU1PVlNOUVFQUlRSS1FUVFlaV1VPUk5TWFdUU1VSUlpPUFNTVltWVldUVlpYXV5bW15WU05UVVZcXFZSVFZWWFlTVFlcVVNTXVhaXV5cYGBgVmJbY2JeYWNfXGJhYl9jZmlkZl5bZGBhYGFjZF9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJRV1JUUFtdXl5bYFxgVVxdaWpyfXNsZ1xVWFdQTlJaU1JRVFJUVVRLUVdWW1paU09TUlZWVlRPV1JTWlJUVFRYXVdYWFNYXFheXVlaXVRVTlZXV15bWFJVVVlZWVVXWVxWVFdeWV1dYF1iYl5ZX1tlYl9kZF5eY2NhXmVmaWRmXl5kYWBhYmJkYGJeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWVFRUXl5gX15iXGBVXV5ia3l0bH1sWlVZVVFQU1xUVVRVVFZZV0xSWlddW11ST1VTWFdWVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paVFVWWllaV1haXFZVWl5cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfX2FhYGNdYFRdX2JlZXWBemhYWVlTVlNWXFhXV1ZWV11YT1VdWl5dXVRSV1NXVlVTVFhSU1ZUWFhYXV5YXVtWXV9YX19YXVZRWVRZWlphWVxWV1hbWltZWVpbWFZdX2BeY2JiZWRcYlxgZmFkZmRfYGRiYltmY2hlY2ZhZl9gYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVZWXGBhYmNhY19fVltgZGFfenVvaFlcWlVYVFdbWllcWVhZYFdQVl5cYGFcVFRYUFVXVlRWV1JTVVdaWlxfXlpfXFZfX1leXlleVlNZV1laXWJaXlZXW1xbXFtbWltZWV9fYGBkYmNkZWJkWmJmY2dmZV5hYmBjXmJjaWRjZ19nXmJiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheXF1bVldYWVxcXF9bWVtiVlRYXl1hY1xSVllQV1ZXV1dWVFZUWFxcXmBgXWBcV2FeW15cW15YVlhYW1tfYFxfWFldXF1eXlxbXVhbYGFeYGRjZGVlZmJZY2VlaGdkXmNhYGVjXWVpZGVpX2ZeY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWlhbXFhXWV5gYmFlYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWFfYl5ZYV1dXlldXllYVldbXGBeXV9aWl5dXl5hXFtbWlxgYl5iZGNlZmVmYlpkZmZpZ2NfY19hZmVaaWljZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMWFdcWVdcW1xdWldcXV9gYmRiYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpiZWNhUlxaT1hYWltbWldaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfYFxbXl5gYmNcXFhcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGRnYFxpaWJoaWZlYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxdXl9aWFZbX15dYWFgXltgYWJlYl9dVF1gYGNkZGZlZ2VmZmVeZWZoaGdkZGBbZWdeYWhoYmhoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3x7e3t7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t8fHx8fHx8fHx8e3t7e3t6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKgkU+Pz8/Pz11jYmJiYmGs9bS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjI2DOjIzMzMzMHOQjIyMjIi/6eXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4d3h3d3d3d3d3eHl5eXp5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx2dXV1dXV1en19fXx8e4GEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV5dnZ2ent4e3h3dnd6d3l6en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3x8fHx8fHx7e3t7e3t7enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eH15fXp5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHp+fXl7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8enx8enx5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHx5fH16fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4eXh6e3l5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh4eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzc3NycnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHN0cnFwcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3N0c3NxcHV3b29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzcnNzcnFvkINucG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXaMdXJyb32ge25wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcp2VcXFxlaJ7b3BwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXJvj6+Jb3mionpvcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcnCIsqZ2iqyke3BxcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycI2zqKSmsah2cXFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3N2oaGjtKabpHxzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHd4eIKnn5ynn6Ojknp5enl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fn18fHx8i6GOj5iamZuVe3t5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX1+fX+Ip6ejnaCak5iBf399fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYGBgI2yp6mioKGrpoR+gIB+f39/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f3+AgH+Kqa6fqaOgoaWppIx+fH6Af35+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f4GIlaqvpJykoaChoaGpq6CNgYCAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4OGjJumo52cmp+TmKGgnp2eoaCUhYGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYKEjJSWl5eZmIeQnZubnJiRi4eDg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoCCg4SMlpmViZKZnJKLh4WGh4eHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj5CSkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGCgYGEj5eUlpmQhYeHiIiIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SEgoODhJGWiISFg4OFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKCgoKBh5GCg4OBgoCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAgICIkoCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDipaIhIKEgoJ/gIyWgoKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmIqDhYSEhIKAkpqGgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSk4+MjIqFhIODg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYucjYCCgYGDgoWUk4yBgoGCg4OBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZeMgIOBgYGAj5OLkIGCgYKCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4p9hISDhIKDg4KOiYWMgoKDgoKCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUk5KSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf359fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKNioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFgoGBfn2Bh4aDgH5+f35/fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhYWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYSFhoaGhYWFhYaHh4aGhYaFhYaHh4eIh4eHhoaGh4aHhoaHh4eGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iJiYmJiIeGh4eHiYiGh4eHh4aHhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoOCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjImBgIGCgoGBgYGAf4B/f357eoCGh4iKiomJiYiJiYmJiouKiIiIiYmKi4qKiIiHiIiIh4iIiIeIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaGhoWDiZSTkI+QjoqGhIaFg4GBgoGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgYSEgoKCgoKCgoB/fn19fX1+fXx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiGhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fnx9fYOHiYqKh4eFhoeHh4eIh4eJh4iGiIeGiYmDg4SDhYSEhYWHiIiGhYOCgoOFh4aHhoaEgoKDhIKDhISCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGhoeEg4GDg4SFhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoGBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjZCMiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhISFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4GDg4ODg4KCf319f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIKDgoCAgICAgYGBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goODgoOCg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f3+Afn2Af36AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/f39/fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gH9/f35+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f3+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXh9gYCAgYGBf3+Af3+Bf4GAgIGBgoKAfoB+f35+f36BgIKBf39/f4CAf3+Af4GAfn9/gH5/f35/gH99fn59e3yGk5KMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fXt6eXl5eXmAgoKChIOAgoKBgIKAgoGBg4KCg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTj4mJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX1+fHt5eXl5eHyCg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSEhISEl5eDg4SBfX6BgoKBgoGCgYSGiIyFg4KCgYSCg4OCg4WEhIWDgoODgoODgoKCgoOCgoKSkIuIiIeJh4aGhIaFhYSEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fXx/gYF9ho+Bfn2Cfn9+gIJ8fIB/goCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMi46OjIiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3t6fIKAgX5/gXx+fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjY2Njo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYODf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fX1+gICBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6Njo+OjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX6Afn9+hJKNjoyPjYuKhoSGhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fnx7fHx8ent6fX+AgISDgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2NjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfXx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fX18fHx7fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJioiKiYWIko+MiYqHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx8fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fX19fXx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uKiYyRkI6KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fn1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt6e3t5enp4eXt+f4ODhIeJioeJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiPjouLh4WEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn5/f319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY6LjIiEhYWEg4OBgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYKCgYGCgoKCgYGBg4ODgoWGhIOBgICAg4F/gIGEgX5+gH9+foB+fX5+gIF/gX9/gH9+f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fHt7e3x7fHx8fXyKi4mIhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKDg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fYmHh4WFh4WEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl3dHSAgIKCgoKCg4WDhIOCg4SEhISEhIGBgIB+gIKAfn9+gX9+fn+AfX6AfX19foB/f4GAgYGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4OEhIWEhISEg4GCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SDgYB/gH+AgX59fn5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn59f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fX+AfX9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhIKEhIWEhISBg4KBg4F/gIF+f4B+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYODgYF/gIOAfoKDhICAgoGCgoSCfnt8fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgICAf4GCgYB/fn+Bfn+AgoKAgYOChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fXx/gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAe4B+gIB/gYCAf32Bf35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDg4ODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgICAgIB8gH+Afn+BgH9/foF/fn9/fn19fH+AgICAfn9+fn99fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgYCAgYB+f35/f318fn2AgYKBgICBgX1+gH9+f4F/gH9/gYB/f399fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKAgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt7fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf3+AgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBgICAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXx8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgoKCg4CAgoGEg4OEgYGDgYKDgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgYB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgYGAf4CAf4CHfn58en18e31/eHd2eXl6fHx8fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYOCf4CAf4GDgoGAgYGAgH+BgYGBgIOAf4CDgn9+f4KBgIB/foGAgX+AgIGBgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/gIR9fX17f316fX97enZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYSBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOCf36Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDg4KEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoSCgoOAf4GDgoCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7fYF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYOCgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhYOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhISBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeoR/f39/hISCg4OCgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgIJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6GhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foN0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhIaEhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4aDhISDgoF9f357fHt+e3x8fX9+fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9f358fH59gH59f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoaFhISFhYOEh4WDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSFg4GAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4SCgoJ/gHt9f318fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4eIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH57e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIh4iGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYSFgoN+gYKBf4OBf35+f35/fHx9f317fX18fnp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSHhoaHhYWEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfH98fX1+fXt9fXx9eXp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYWChYWGhYaGh4SGhoaGhYaCg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICBg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18gH59fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoaGhYOEg4aChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSEg4OBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhYWFg4SDg4SChISAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU09PT09PT09TU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fY2djY2NjY2NjY2dnZ2djX19fX19fY19fX19fX1tTT09PT09PU1NTU1NTV1dXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtBPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi3qaenp6enp6enp6enp6auubi4uLi4uLi4uLi4t73T09PT09PT09PT09PT09vi4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OjoIaEhISEhISEhISEhISCkqWjo6Ojo6Ojo6Ojo6Kr09LS0tLS0tLS0tLS09Hf6urr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PEJAODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpaKJh4eHh4eHh4eHh4eHhZWmpKSkpKSkpKSkpKSjrNLS0tLS0tLS0tLS09PR3+rq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDw+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamnkI6Ojo6OjY2NjY2NjYyaqqmpqampqampqampqLDS0tLS0tLS0tLS0tPS0uDp6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tDQ0NDQz8/Pz8/Pz8/O0NHS0tLS0tLS0tLS0tLS1NTU1dXV1dbW1tbW1tfZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7OztHUz8/P09PPz8/T0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXW1tbW1tbW1tbW1tfX1tXW1tbW19fX19fX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztO7nc/Q0KGWy9LHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztK1lZuz1qegq5/PmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/Rn6Cqr8qclpChtJWGnZzNz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw5Nj9CP0I6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0cWHmrO/m6CombW/yZeZxdDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Wp5myzKOgi5/E05GZoc/Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P1aWZsdmYx8mU2K2jv57V0dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX19jY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NalmbPInJWVpLvNiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NDVpZq3sZqvs52l0NujmbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0Y/SEhHRUA8PD4+PD09PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPQ1aWZt7Gem6KcnJGnmJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQzs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HH0tajmrLJnaiho56ooqmd0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09HVtYLD16+NkaXUmpKOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw8P0dFR0tIPTU1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dHC1NLVwL3W1NO5yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT42NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS1NLS0tTV09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6Njk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZJRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT0tLS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+PEhGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0tAOzs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPkhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQT9KTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BQ0NGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9CR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2tvb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vc3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTY2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk1NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNDY0OTg1NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDQ3Mzc4Njc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tre2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2tbW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NDczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsrK2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKeoqKWmqKiop6inqKmpqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo5Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqilpqenp6iop6eoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaurq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6SlpqakpKOioqOioZ+fn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6enqOkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6bm5qdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6efm5qcoqCalpWVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqamp6amoJuZm6Ggl5KdoJeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqenpqKenZ+hoJeYqKKUl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaWmp6alpaampqWjoKChoZ+aoHSPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqSlpaympKWko6KhoZ2bpoJhlJmbmZuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqS2taWjpKKhoZ6bnKNdZpqZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqGio6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKCmpZOxoqGgnpybmqeFVW6cmZqcmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaGgoK16jK2fnp2ampymZ11xnJqdnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCgoJ+pjWmcp52cmpqfl2pncp2bnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJyen56dpJZ0famcmpucootraXCbnZ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZybmqCWe3eRnZqcnpx9amlym56cnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmZqgoHqKhZCZnZ6SgGtmc5qfnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJuZmZmam6CXoH1ymaWbeI6GaXKbn52enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZmZmZyrn4pxYKepnWF6iXl0np6en56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZifrY1wYGmikJNUX3l7haCeoKCfnp2foaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmXp6d0RUZul4B7UD5bdoSdm5uenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbStr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qblqmaTERGcJWCcVJHOGB4jpKNkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKiqoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkJWsdV14X4O2r6Vidn5Lan6Igo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ6Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg3+SqGCOs4zOw6zApYCVelJ6goGSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+ipdy0NbJ162furNjZHBaboGGjY2Lho2UkouQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKabkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhH+CfZF/kM21ws7Iv6yUfKqsX2iJjI6LjZCZnJSUlKCamp+irbGuqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYx/iI2NjIuIkouYdZiijbSqnZ6HgnBozYBgi4uKkI+Nj5SUmJCVnJqdnqiusrCwtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmRnqGdk5eboZqenKOhnYqQeoajjISJd3RtdqOLZoaPjJiaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaiprKqqr6eZfltmhnh4f21qaHV2fXeEo6GknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipaqop6qsh3FWW3RxcnlpZWJpaXB8i6Opp6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUU9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKaZnqWloqKwnnFrUlJ2d3R7aGFlZl5fb3yLoKSgoJ+hoaignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioKOnoaauqLCyrIBoZktOcHV3gGlgYmlaXWJrdYORnaGgnaCjmpaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGnqa22vL69rI1uaGNGVW5vfHxuYF5mWlphYmdweH+OmqChopiWnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY21qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqevvMbLzca3po9zaGpcQk5wbnRuc2diYVlYX2NhYmpxdXqOoaicnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19fXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7TA1N3by7mrm4dwYGBiVUZFdW5gX21tXFtXWlldW1teYmRlaHiSp6+mpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1pdmtwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLS3xdLZ1smukXhmXVpbXFRMQWtqjJiPWVRYV1xcXV1YVVhgcomhssXDtLKgp6qsp6uppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PDub2+wcfN0MSgfmldWVhXU0lUbKezqE5VXmFiX19fZnqWr7++vsDCsrW2qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV3bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvFwcXGwLy5zMm5l3NcVVhUUVKcs59OWVxeXWBtjqq7wbK2p6axtau1sq2zramur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH6Ef2pmaGFrbGdudXJydXFnXmBcUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEJCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/w8PGxsGxk7+8y9C/mGpYV1lMkreWTVVZWGB/prywpquus6eqqamrrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3RrbG5kb21pcXhvemppYV1nYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMS5tcC4s7zBxb+pd1dVUYq9j01TVluDoKa3r6WttLStr6Wko6ikoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt3bmtpaHVaZnJ4c3lmZl5kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLFvri9wcO/x7uNY1Fhf2VQU2CNqp+mtLKtrLi1s6upo6GtqaynrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXWpvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMe/xMfExMbKzsKNUklQUWanurfAvb65vLq8urysraapu7q5t7+ytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGlpdG15bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxcXFw8XEyczT05ZNTVyqx8DIzcbEwcTHwby+tLGwsMK+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGtqd2xpZXVudGNdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwsPBwsbGx8rNf0mPzc3HzNDFtr+/wMC6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnY2pkYmptbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvr3BwcDAx6ZNpNHMxcnRwa+9vbi5u7u+t7Sxub6zvL6xubW4u7a8tLW5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjY2NqYmdjW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Bu7/AvLvEvbrAxL+9vbi7wMSwU57NxMDByb+wwb+6t7u+ubW4tLi8tL24tbSws7yxt7e4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWOvL67w7W6x7e2uLu9ubm1usPIq1SXyL+/u8G+uca9wr+8xbi2t7S4tra7u7m2tLe6tbO4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVmcGpla2hYWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNDFea3Lvce3ubittrS3urS3s7vFyqBVjsm/v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfWtucWdwa3NmYm5gXFRIS0tESkNDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTYr3aEvsjPwsC4rrW1u763urK+wsiWW4jNwsK/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGpudG53Y2diXGNRS1VIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0Zt0d7HR0czKxLW6v8TIvr61v8DAh2h9zcbCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4J0b2xsdGxsbl9jXmFiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysKIdneozMzLzcrGwsPLzsG8ub27sYF6bcDHxMDAv8TAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIe21teHxgcWNbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u6rdvDvra+wL6+uqacqrO3xMCmfHp8n8TGy8jBw8DAycrBwLy6sqWWiHmzyMXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3h0aHBdXF9cWlFFRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFtm6vzr22ucC8qn1uaG5tdIKXmXV7f5y+v8bAucC8vsXEvb24sa6mq5aUosrDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bHV7cG5pXF9fWVNQQUZJR0tARUNIPD02Ozk5PDs6Ojs7PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbF2grS9trXBpIZpWl5gTlNbXHB2eoWkuLfCurO7t7u9v7q7u66lrbKhpYfBxcO+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d25xYV9mXVtVSj0/P0dGPUdDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmmhHiLorC1nGpmZ1ZZX0lJTVBUb3uLqbC3vrmytbK8uby2ub61mbG+rrN4sMnEwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/GqId7doyhmF9TQ1lVSGJqVU9FSmWRpa+vtrq1tLKsvLm4tbjBvY+sxLS0d6fKwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZybmNdZlldXVNPTkE+SkJAS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7OQgXmIkG5OS0BlWUJPeIGTaE1DXoWxtbO1srSvrLu6uLa5v8Z+k7qromirv7i1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLavqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWxdW2pUXVtQTkhER01CRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhXxYRkFPh1hJSll4joNjQVWjubO0srCxrbC5uLa7t7q9lKe0r6d3rbCpq62ro6ihnZ2el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh1dG5lVWFjV11RT01IQElSRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmYmZVoTUBTeXFPSUlMaZ2AWkVVsLqxrLOvrqyttraytLWuqaafmpudn6aonqCoqZ+hp5abl5eOnZSPkJaNl5ukqKCgoqKipaWdo6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56em5mml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoYh4g3x2f3pjd2xuXVFpVFBOR1BNTENQUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3BqqW8Z0RTnH5QWElLYUpXjmJlZYOvtaqytK6qq6+wsrOtpZ2Rl5OPl6CfoqCco6SfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+Ym5mbpJmXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fH91dn1ua3tkaFZSZE1KSEdPU05LTkg8RUA8Mj84NTk7Pjs5ODs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCrxr/Kn09BdZlwUG1KTGRmdnRhXWJ0krKvrrO1qqasq6KbmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpaqqoJuYmJiVk5aak5WVmpabl5eZoZ6cnJaboZuemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3l8ZXl5YGJTVWBISUpLU1RJU1FNOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpcfGi1dTSmakWWZ9b3JbUmtkXGdiYG2RtbCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKehoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuUlpuWmZ2loaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1tZTVFKT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWpyd3VwY3d2WFdiYGRpW1pXaK2urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2orKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7a4s7itsrSkoJ2loKyhoaKhoJqYlpWfm5uYpaGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCgHx4dmp3dV5tW1JgSFJVSEZVV0pDTUc9S0g4Rjw3Nzs+PTw6Ozk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCkf2+CcGBjV0tbUlpMTFFZUkhPTkiZrKqppJ+fmZKSlJiYlpaVjIiLjpWdnJ2dnpeemaafoKilsaqnrqOrrrawtLKxrra4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm4vK+zsLXCvLe+s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pd21obVxYW0NXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOenIliV15lYFdNUUc9P0BDRD8+QlJ4qa2pqqWfnp+io52enZqcm5STlZSenZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a7u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6qzraqztK+zrqqvo52sqLaxraOwpqCjsLGusKSlr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppqboqSen5ubm5yHhoF7dHJra3VycWhWXFFGVUhESlBJP0VBNEZIOTU8Pjc7PD49PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFBGRDtDPkY8Pjk2Tn6qsqejo6KgnqWrpp6YnJSRmZ2ZlYyKhoiGeG2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3w8rJw8HHv7q0uru1u7ewtrKqurKuu7i/u7qruK2rqri7tbyurrmjpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIV+enJrY2lveGtlWVtGS0xFRFRMRENFNzo/OjU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9cmlhV05FPklZfG9hQT1cjq6soJmbm56emZeXl5KNj5eXk46NkIyCg4J3cnFtcI+mra60ucW7zcfLv8LMzc3Mx8nRzMzMx8nFxszQ0tXO08m9wL/Du8bFyMXR083U0NPTzMrCxcbGysjPwMnRzMfGyMbCvMPBvr+/tr6zrb/Aw8PHxcfEr7+5sri8xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WBeXRzZWJncm9mXlpaQ05MREZQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaWZcVElEQD9Lhp6kmIOgsq2jnpyfmpiXlJKUlpGQj4yHhIOIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fS19LV1tPUyMzHzM3K083O083FycrKwsfMx8nJxr/Ds7PIxcvLy8/Hyr++v73BxsXNzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAe3J1dmdjZ3ZqZFZXUURORkBKUUI+Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2FTTEpEQz9DU7DSvbKvppycnKCkoZ2alJOVlIl9eHFrZWJocm9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s7U1tfU09HT1NTTz9HE0NPW2NXW0svJztHLxs3RytLV1tnW19PX2M7Sys/RzM/QzNPQwMjIysTMzMzOz8XHyLa/ysDSzczQx8rJwMTDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfXhzdnBjYGVyYl1SXElKR0FFSUo+O0E4PTU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFZSUBBREFGUXayr6aalJefnJqgoJ6bnJqViXdpY2FfX2BfXl9fXWFsdXNwcG9scnF1ksTIx9TW19fX09bQ1dTa1NTOz9XU1NHRzNHO09fW09XQz9LT0cnT0cjQ2NfY0djS19nU1czPz8rN0svO0cDGw8jGz87R0dLIzM3Ay8zG08/Mz8jFy8fHyczK1NTR1c/SzNPCucWxpai1rqebqKulnbKosLOtrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu32NTV2dnRztC/vMzJtr6upqqooaOrZUM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cWVjYl9fYV9eYWBfYGBfYGVtcHBua29yd3eczMHT1dPY2NbZ0dLS18/TzsvSzdXU0crPzdPW0tHWzc/V1dHF0dTL0NTV1s7T0djX19jLyM7Eyc/MyszAysDJys7O0MvQzs7Mz8/IzNDQy87Lw8rHyc3LzNLTzdPS0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiXp2b3Fva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksXpIRkI7V46hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3O1MzO0s3L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXNwsjKw8zExsnLy8/Lzs3QztPMxsnPzcjHy8XHwcbKzM3Q0sfQz87OzNDFx8G4ub3Dw73DuLKyvrG7w8O1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWdgYHFoWVhoVk1HTElQUUI7Qz47Njg6ODo6NTc9PUA7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfDuMrV1tna29jMzM/I1tXEwrWvtKifrZd4bHBxeZCbjYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNhYGBfYGFhYF9dW11ncnJwcnNxbXJ5pcfTz8vQ0NPUysXJycbGv8PFz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svQz8a6xL/Gyr3Cx8nOxcPHwMfNyMTMy8zPyMTE0MjGwsbIxL/Bx8zLzM/Cy8zJx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG90ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7uto7Z+aIOFpKuUjo2Wj4WDg4OBfYSEfnNfW15eXmBeYGNkY19dXV5fYGBfW1pcYGxycW9va2xvb3250cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIys3JxMLLycHBy9DFy8i/ucK7xse+wMbPy8TAw7vJx8m7ycfFysC+wsvGxcS+xr28wcPFzMXGvMDJw8XH0sXByb/KycbIxtHDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdGZpWmFubVpbWFJETEZCR0VMREZTQDU0MzM1PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1drY2c/L0s3NzsjBtcO+sa+2bF96fKGRi5KWhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lrcG9zj8e9ysXLwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7usbDv7zBzsPGvr61wb3Du73Gu8O6tLzGxMLCt7+2tr6/u8zDvba6yLu/vsvDwcbCxcnHycbQxsLMyLLHycPOzMDFw7+9srewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NWXllKRkpGSEtBRUJGSkA5OjY1ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysnGzc3O0cjQxdXU1dfNys7FycXHwbnFvauupmBkdoOTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXmhzcW1nZ25wcnmdvczAw7rBuK2wsaeqraynuLS2tLOztLu2vbG3sLWvsrvCvMHEvL+7tbK6vsC4yLm0u7fBwr24vcfBxLy1r7K2ur+0xbe7tau4vb7AvbG6trC3urPGvLevu7+1t7XFvL7DxcDExcbHy8XAxsa7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25dVl5gRktISEpGQkRBRUU/PDo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjJyMrIysTQzdLPzcXHwcbAv7q3ybaqsJlbaHCKj4WIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaWZrbm5yfKTHwLi4tbCrrKeeoqmnnqqss62qrKq0rbaxs6mup6yzu7q2w7m6urGrtbm7tMK6sMCxvry7trzIucO2raqosLLAtri9sLGnsbO0u7yrrrWmrrauu7Kxqrmwrruuu7i7wMC+usO/xsPFwLzGwcfLuMXHxb/Hw8O6xMbCu8bJzMuzucK9u7OJc3d2a2lgYmxoWFhXW0FMS01KRUFDP0ZBOjk6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTQx83Bw8a/xMTDw8rCycq/wLzCurO1tcOuqrCSW2p/koeOj3t4fYmFenuEgXduXl1cXF1fYF9fZGNiY2RiYF9dWltaWl1aWllaXGVub2hmaGlrbnKBrbqwta6lpaenmqCkoJqcpauupKiiq6qsq7Cjpp+qrbS2sb25r7ewqK64tLO8uLS9r7i5trK8wbLArqWoo6uxsrOovaqrqKusrbWzpaiuoaSvqbKmqKiupai3rLGzt7q6u7K8vr6+xL+1wsHHyLe+wMS3xMO/u7/Ewr7EyMzKv7/DwMCph3N0c2ppXGFvY1dWWFBIWVJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8HLvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairkmRtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9eXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWqpaylnpyhpJSdpJqXkaGjqaOjn6Wmp6atoJ2cpKassrC2t6exraiqtKu0urG2tq62ubOwurqxt6WgpJ+msairqLmqpKanqKeyraCnpp+bpKasn5+no6Chsa2trLK0s7Swtby2u8HAsru+w8GxubnCs8G+wLW4vL2+vMLHxcPEv8DEoIN4cGxiZmBrb2BVWV9ITmdPVEdGS0Y8PUA9Ojs7ODI2NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLS2vbi6wLq9tqCelJ2hprq2q7Ozu7PEz8nLw8a4t8fAzL+4ybe7xbizxLizv8CstbyyrKWvs62ho5FpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGFeXFtcXFhZWFhYVlhbXl9kY2JlZ2dna21viJ2pn5aVmqGWm6KYlYyeoaKnnKCfpKWip56bo5ugq7CtsbWkqaqqrKyktLitt7Css7avs7WvsKqfnp+jorKlpqm4raKmpqCorauZoJ+emZ2fpZqao5ycnq+pq6iqq62tsLK4r7i5urC2vLu6q7OyubO9tLaxsba1v7a+wL7Dwru6vZeEenNrX2VeZGRYVFddSVdcS09HSkpHQTw/P0A7PzwwNTUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uce4t763ssK0sbu7rLm6saKeqaunmJ6PbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2FhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3KNp5yTlJSal5qhlpaQm6KhqJ6cnaWnoqWcoKGbma+urq+yoaWjrqunorWwsrKsqa+zp7qzpragop+co6Gto6Kqtqujo6aepaajlpmdl5mbnaCal52cnZytoauno6Omrauys6q1sLKrs7m0r6qvsrKzt7Ouqa2usrixura6vcC4s7GUhXl1Zl9mXltZVlNaVUtbUUxJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+znaWjmKWxwrW2va20uMHMyMa/xbbBwMfOt8DEvbO5ubO/trG5u62ytK+fmqSqoJSaj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqCbk5OPk5aWnpaYk5egnaGclqGhqaSfn6mdm5urp6+wq5yjpLiqoaCuqLaqp6etsaS4sKS3oKOcmZmqp6GarLmvoqGknKKgoJOUoZSWlpuYmJaXnJWfqZ6ppKKdo6qqsa2otKyqp62zsKWrrrOxsLCvr6eop7KusbSvvLS6uK6jlIF6dmVfYVZZWFNSU0tNXkxQTEdITEtFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJmhqZSRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmJjZmmBlZKUi5GTk5qYnJWWnJ+cn5agoKempKann52gpqCqr6afoqO3qKGhoqizoqWopbClsa6stZ6hnZaVqaGilK2xsZ+jo56emJuTi6GUkZOYmJOXmJiXnqebp6KimqSlpaukpbCnpaOrrK2mqK6vr6uoqqqzpaarr7Sxrry2sa+voJJ6d3JlYVxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaast7u8wcW6sbm1xMnJwMPGxce2xcSzwb/Fq7e3vba9uru1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpaW1lZWVtXVVhXVFRWVVJUUlVgYF9gYV9hYWNkaYCSkoiPjZORkpyUlZakmaCXnaCloq2mpaWjpKOdqqulmp+lsaqgoZ6lq56oop+urKmprq2ioqKVl6KbnJCrqbCcn6Kfn5eYk4qekY2Sk5aQmJiTnKGjnaShopWgoqWmm6OrpaKkq6SrrqWusqmmpaamtKapqK2ztbS5urCqrJ6McnBvYFtXVlVSRlBOSFpcUFJJVEtTTEVHSkQ4Ozs9PDk2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTU3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb3Dya2xuMG1vMC8tLWqrKaVmZubiIFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5RWV1cXV1eX19fYmRtjY+DkIWOkI2Zk5SSnJqinJuhqamrqKynqaakmaWvpZWapa+poJyZm6Ger5qcq7Sgpaafo6ShlJOblpaSqaqtmp2goaGblJCMmY6MkYySjZaVkJ2ioKSdnKOVm6CjoZeiqKOjqKugq6+krbemo6SirK2qqKuvs7eyvbWzq6+YhXRzaFtYWVNVUkVYTFFbWE1UTlBMUVJJTkpDPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7evqKevrpupqKy3tqu8yru2v6zLxsW4wc7PyLPEure7wsixrbi/t7y9u7O1pqmglpeYlod6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9hZX2LgIp9io+Jko2WkZeZoqCboKuqpq+sqLGlqZqgraGVlqWop52YkI+anq6XmairmZ+dlKWhn5KRkpGTlairpZqZmZ6elo6Mi5OGiY2Dj4uSlZGgnqGkmZaflZqhop6Um6WmqKiooLGwprG9qJ+jrLSqrqewtbC5tcCxrrGrkX5yc2JWVFZOUkpHVlBSUkxMV01KTU9SR01LQUNGREQ+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NzYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxtre8vcHDsbCxt620tLuztKKjnZ2Xl5SDgHZrZ2xucW5ya3BrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqf3l+dIeMhpCJl4mUlJibmJ6pm6Crpqasnqiaoaack4+fo5qXl4WEkpukkJWjnZaWloiim5uTi46KkJqlp5yVlZebkZKHlI6LgYyNgJCLkpKSoJqhopaUmJmVoqaZjZmkpqmmoaC0sqeyuKGcorasqa2ksrKmtby1q6yxo4l5c25dTlFRTE9ETk5OUEtGTk5KSk5OUUlNSkFITEhIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKWnpKqloKmmpLOqorLDtbWys8bGtrrDyszGs6y5vbS4wK+tqbCepq66r62fmZqdlZSHe4NuX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW5xdW+Dh4GHf5CDjoqUkZOdoY+anKOipJmll6KclY2ImZqMc42Dfo6XloaRmpCUjo57mY+djIKJf4qYoKOekJOYloWOg5R+fnSKjXqQh5OQkJ2bmpqSlpCdjqOjjomaoKGkpJuitK+ssKyfmKW4pqaxobCunLC8qqmvqpmDd3NjVk1ST1BNQ1NOTFBNQlBRSElOUk1ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGsrcOtqKKmkp2mtq2joI+VlpKQfXd+ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11qanFrfoR7c05Yco+Cl4aNnJeLlJGfmJ2VlJaVj5aKgJSJXztWb3yMlIqBjJKMkIaGc4qFl4F5gXuGk52Ug5WOkZCDhn2TeHFwhox9iYGRjZCXmpiTi5CKnYifmIeIlp6aoaCXp66praionpats6Kmrpmsq5iotKOpraOTf3NuX1tOU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego66hpqaqoKapp6Opr6intMK5sLWwx8K3s73Pv7mvrrXCp6rFqqOdmIOUnLGimpiGlI+Lh31zdV1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNT1JUVlhaYGxuZ3qBc1BCP3+VkpF9iJWMhIqNm46WlYqSiIaVh3mJf2BKUW54i5KEfoSNi4V/f25/f5R4dXZ4hI2acFGNiIqGfH54lHZod4aIfoqJlouOkZKWjISKiJWEm42ChJKalp6dlKSjqKmlpJ6bsKqhpKSRpqmWoqqcoqaoiXZtZl5bSFFRU01JVU1SSUxLT0lIRkpOTE1US1FQT0ZJQz03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hr6GnqKWnqK+sqrW8tri2s8G7tqi5yLi2qKi1tqqyvaaelY1/iZOolpWKfo6Dgn13cG9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3J1fWloXFSQiZSIdH6GgXyFjJOCkpqLj3uGj4B2gHhzb3ZxdI6OgXp+iquFeXtodnuOcHJteIGLjZJ4eoB7gHZzcpJ4Z3WEhISFfJWKiIqNioB/hIuNgJSEfICPmJSclpGfnamen6CdoKmlnp2YjaekkqCglp6fpIFzaGFdXEpXUFJHS1hST0pMTVJKSkpMUEhMUUxSVE1FSEI8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTI0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK8uLa6tLGft7qyqp2drKmosrChmpGNlICNnI6RfnaGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmdoyWmI2OfGd5gXZ4gImQfYSYkoFxh498d3tva36tfXSQi397hpKBfH91ZnZ8hmxvZ3N8iYyHgGx5cX1xbXaPcWhxgX6OcEOLhYKDhX53d3qMhn2Me3V9jpKPmIuSmpujlpmcmp2eoZyWjYulmo6dl46WmJB4b21mY1pYWFVRSlNVVE9QTlBWS05LT09KUk9JTlBMRkQ8PDc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoaawrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlp2lqaSgmJmPhZJ5iI6LinVxe211cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybIinqsB+dHlie3hvfHmJkHp9i4ZvbYySeXR5amqAgnGWkYuBfpaASZKYbmh4foJtaWRseYWQkoZrc2x8bnJ8hmlucH9zjYmEhnt+f3t2b3R0hoJ5gXlwfI6MipODlpeYmpCSlpeZl52WjIOJnpKLko2GkJaAb2pvbm9YVlhUUlFZT1JUVFJYVU1OSE1KTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrLCjraqota+urLS/q7zDv6WimpWkmJ6NhIuUoaGZmZGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXF+nh2GaaXN5ZX5vbX96i4l2goiGdGyaknRzfGpqnY9NeYWTiYSOZzF2hnNsfn2DdGZldX+EhIWAZmlsdWtxgHxocXF8bpONj3x0fn1xcG51bYJ/d3l1anmJgoiJg5aSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trb2hlWFJaV1lZW01QVVZZWE5JSEVKSkhHQ0BHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakZmWo6itnrGep7qvq7KwwrG7w8ealo+UmYuOhXqEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+yoHF7eGx9bHGDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooV2cId8h3x0jK6NiYBoZ2JqbnJtcIJ1aW9YdXCOm5J3bH96fW1ybnCAe3N2bmJ2g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2Oe3NxcW1gW11eW1lYYF9STltaWFdMSEpGSkc/Q0FCSD9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp5+vlaW0qa6xrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt0eHhsd253Y2leSlBHPj82NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9ITE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8foWDf4x+daKZeX6GgYSZhJqcYYaqn52Lg5CNeneIfomJjnOLl4+Eel1kcXR6fHeKbWhqYnlvhZCCem6Bd3SEenB0eXhrbmlddoZ8h3yHh45/ipKXg42FjIZ9cYR/hH11d3t8iXdwc3RmZ2BbW15TW2deV1BUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIyRnJ2fppGgqqCxqK/AsrvFupaOkZSHe4Z2a3+MkYJ9ioSPjHiDgHOghIp9fIF/cIB+emd2a1JXTEBFMjExMzY2Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmiEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqkiGrq+vi4GAk4uCi4KEkqmHgJiYipt0bXyBhod9jmhnaHl/boWHgoVxhIZHbIB3cnl2aG1rX3Z9goh/h4SLeZSdnImLiJF/enWLdnx4bW93foB0dHJsW15eW2NjWGdlW1RPUFZZUERMS0ZOSUNGQ0NAQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5GOlpeSl6CeraGmuK+zvbOXjZKLmIt9dHB+iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWHBZXF5pjZOHlYCEgoWRk36FiJGBmpWCoaGYlZubpq2Tmruxp7vHw6iLjKGlj5SKgZF8cYOen5Gcf3aGhYuQh5BpaHCEgXSNh4SKcYaCd4d/e3aFfW52dWZ/lI6GiYiHiIegq6KWiY6Xf3qCiHl5b2dreH57fnRsZV5bW15qXWFmYFpPS05XUlFJUEpETkdDSkRCQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneDe4CMf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShZKVf4qAkpuOg4CBjIqCiY2Df4qAbXBqXUJANC0tLy8uLjAyMjM0Nzc5Oz0/QkRISU5RUlNSU1NUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBJSUtLS05WX2N/Z2dtdZ2bj5qSk4uNjpqIk4+di6CgkqOqpaOsk6m2oqjBwq7Hr3i6lJp8jaGemYSThYKOop+TmJKEioWPmZGWbHB1ioyCloyNjnePhHFthYGKlpGDhYhxiKCVhpKJjo+WpLWpm42UooOHk4N9f2tqanyBgYJ0Yl5kYFtna11sa15XS0dOUlFNTExGSVBDRE1GQUNFRkI9OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYWQh4WJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOUFJUUFBRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpaKZoZeilJyeqJ6oq5+orKmqtperv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGIlaKbm3h6fpSYkqGTl5eBlJ57d5WSq7KIjZeffJSem46SlZijoqa2sJ2RmaiHlo+NgYhsc3N9gH1yaWBdYmBiaGRgZ2ZbUkVKS1BPSUlMRkZNQ0hMRkdEQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wMC8vLi4wMDE1PkFCTVFSU1FSU1RSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYWQd5WKo6eqtL24pK2srKeotKuwtrKyrbuxs72cs8OrusnLt8O/uKWisLOsraqji5aYhaamoKOXgaaZjaKrqKWIhZSkoaCroaSpj5uwi5Wjpre6m6CjsJKinaKekKOhq6+ssrWilKSqiJmJkomVenp9hX9oYWhcZWNeZGReZmdfWk9DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhjV2lvWHqFdoGThYeCm4OSkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4WBjIWGh5KGgoSJhoiHh3BuYUBFNjQ8Mi8xMTAtLCstMS4tND9DQU1VUVJTVVVWVU5bUEdHRDw+PkZIQ0VBNzs8NUM7PUZLSUdIUk9QV4GSoISuo7OqssDHw6qzxbass7+zuL62v7TBtru6o7jFqLbJx7W+ubWoo7StsLGbmZKan4inr6ullHafpJehrLK0mZaqrqiutruyuqyvtaKxq7G1u7e0rrSgp6ijp5qpr62yube4p5u2qIykjpGSn4Z4goN2WmJlV2ZiYmRgYGZgW1RJRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFiY1d5dXGBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeFgY5/gYmOhoCGiIWKh5F6eG5dVkBFTjw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0pBQD9HS0ZGRDs+QDdENz9CSkpFRldUUF6PpK2jsbTDtrjBzMm2u8S9s7PAtrjBtb6vt3Sxs6W6xKSwxrmxs7G0qKS1tqqxoKKWm6KSpbCupq2sp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwre6uL63ure5rKywprGqrb2wvLvCwqyZuqiTrY+Xl6qJfYJ9a1dkYllrZWpmV1xjWVZTSUdGTFFHQ0hJQUhEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldTWVVadmpwfo6EgI2DbnpzeIdiuaGZo4mUlJaSlJONkJaSh4Z7hoGNlYqAhIGKenyKh4Z9ioOBioOVfXd6dWVPXGRHRUw7UWNhW15TRj87SFBFWmNRUllYWmdZVGBgTVNQRUE/SUtIRUVBQEM8RTZCPkhHSkxTWlRdk664tbq4yL+6vcnMu7zAu7e1u7q2vbS6scZgdbKksZqeq72qpairq6SisrWgq6eflZafmJ+upaempZ+jlKOnsbSnsrO9tsG+08nJ08fCxczCysPAvr2/u7y3tK+4t7bDucW9wsiwnrmpoauOpKe2iIGBc2BjYl5YYmBpZ1JYYFZRVUlFRU5LQD5HRD1KQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzM0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xyc3OH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaLfoOAg3h7i4OHfIt5gYqCl350fXprZXB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFVZVUpEQktLSEZISEhHQUk5RD9IS1RUVlxaW5O5wLi9t8bAu7nKyrq2ubW4ubK3tbSutraZZHWonK1wXqKsnJigopuknqullJ+fkJSOlpiXp5+ln56amYOknaylqrCtuLC9udTRztbQyczSzM/Oysa/v8LKvcG8wcDExMXKvsjOs6S7sLSvmqu4u5mAe21fYV1ZXmFaY2NQW2BTUEtDQUVGRTxART5BSEFARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU0RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vl5KQlG5sb3V1h7OsoaCfi5mcmYyNlZGbkoWKin6Ih4uQi4h8gYRze4qDhXuJdIGJh5V/c3t5a211e2hyZWlsaWZqaWhgZmlpbFptc5atpLyIh2dbb2hdWlpUSEtOT0pLUEtTUUhMQUpHSk9fXmJmaWGXt8ewuLK7vbWxxMa1sLiwr7ursrGnq7erjbWnnZqnmk6anYyOn5aRppillYqTk4mQiZCRkZ2boZealZaHnpqnm6yvqLCntLTU1NTW0svP1NXN08/NxcLJ0L/KycrJ0cfMzcLQ0rivw7zEuaW2usOig3BlXl5eWWBXWWZaUV1XT1BCQkhFQkg7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VWc5CQmIJocW95eYOgqp6lloyam5eLjZWRmo59iYuFjYqKipCHfISCcH+IgYZ7h3KDkYuPfXF4dWtxeH5xe254c2xogXBtY2ptcHhpd3x+y7/B36duY3huY1thYEpQUlVOWV5QXVxOUE5UUVVUXG5tdoJxlq24rLSmr7aqrLzAsKu0pqS4pquuoKu0o46xrZqXmIyRk5GEjpuBjaaRnImDi4SKiYSLg5SVl5eTnJGcmJmZn56rrKSnoqytz9LV0c3L0tPU0NTRzsjD1NHHzdLT09fM0dHF0tbFwM7Hx8KovrfPnnpwZl9jXVdgU11aUFFUUE9IPkBGQUJFPEBCPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OW3WGhYp3bHdwfX5/oZ6eoYuMmJOTjIuTj5aEeYWQkI2LioeRh3+Ce3J+gIGHeoR1hZOQiH9vdnJrc3x8d3tzgXdxaoBzcmlwcXp5cnq+y5p+jLKEdnKEdmhha11DWlpbVmVjWGRqU1hdXWBkXmN4en6LgZipo6Shn6CopaqwuKqls6OhraGjraGnsZ+JppqTkpGJkY+IgZSJapSijJmEgIV+kYODk5ati5WNlZqOhpKRnpensKGgoaWkqMjOz8jCy9HU0dTTztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPDzIx0cGRhYFhUWVRcUEtHSkpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5WJj4qIjoePf3iDlJiKjYiIi4l+gnhze32Dh3d/eoeRloCDbndwbXV/dnh9dIV8eWyHdnRufXaEdXh8nbWMO0GKxaV+jHxpZVdJQ2ZjZWNnamRueFteZmhrbmlugIOIkYucnaCdkJeYnqOjprGjo7OfoaWdoKmgo7Gchp6SkpKQio6LhoOPhH6cm4yNgoSFepR+gqmVo4yRipeSi32XipqSq7OYmpyonKe9w8a5tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2drR1r7LzLR5d3BmXltTVlJbVkZHSklFRT06NzpAQEI6R0Q/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhYmCh3x4hZaWiI+Dh4WGeoR5cXp7hIZ1eoWOjZ15i3B8b296f3F7gXGDh4Bujnp1d318gnV+e4aHr3NYqcK2jZGCcG5iPV5ocnBxcG54doFlaG9ydXhxeoyHjpORm5WflYeMk5ugm56qn6CsnKGamJ+mnp+rmYuajJCRjYR9iIeDhYuOoJmTiIOHfm2ZeYSYhoiTjI2UjIZ8m4iUj66qlJWYn5mnrrW9qa2+x8vJyczL0MnD0srU19jX2NfV29fT2dvV0Nva0dbI1MuVe31qaVxbUFNUXkhDRklIPkE+PTc6PT87PUc9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1NDIzMjM2NDY1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjpEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoGEf4N8fISYjoeLfoaGgHeCeW97e4eCdHqSno2gdo51gnR1gX10gIRvgY+Bb5KFdHyAhHp2hnuIt8Wkwcm4gpabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJWPl5CDiY6WmZeWpZyXn5aekpKXo52Zq5WQkImNkYKMhYiIgYaQkZ6bmYmFjIGGl3qIiJ+Xj4iNiouCfaGJkIu8oZiTl5qcqaalrp+otr/AwLnHyc3Oxc3J0dbV1dnV19vU19na29fb2trYztzGh317aWtnYVRYVVVNTEROQzs9PTw4Ojw+OT1ANj0/QDw/Pjw5ODY3REE2NDU1PTgwNjY1NTQ3NzQ1NjEzODU1NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop8foB+f3yEe36CkYmEhXqEh3p1fXRtfH2GfnN+kp2RnoORfIZ+eI59eIqKboKagHSZhn2BiIR7fZB6j6iOj8OhvYyco519iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYmKkJKVj52ak5SQloyLlZ+clKCUkY2Nj4p+kI6Oi4SJkpaanp+JjJSSnZGCi3+lmYiEjYOGhIClh4uLuJidkZSWoqehnZ6do6+3urWswMXK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbuHp7em1rZ1hgXFNQT0lDTEI9PD45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg2ODk/PURSU1JYX1ZYZm1tbWmBj4pxc3mKe3p/fH97h3t8e4uHgX51g4V5cnpzbYB+hH53hZuhmp6UkoCMiH+Yh4Cbkm6HqIV6oIt8kY2CiISbfZqQioyjoqCQpK6gi5GLhYyBk4ZXcq2Ln6ubj4OYm4+PjlyCopGCjJ+TlIyGiIySk4yUlJSPi4+Jh5abnY+VlpCLkpOFgIuIko2Kip2WmaKjhpOdlqCKiYiNnJCDiI+Ag4iFpIaMkLOYnZKUl6GhnpmSnJ2osrmspr3Cx87Hxs/M0MzO19DR1K7W1dja2Nra19bZ2Z9xf3ZpaF9eWFRXWENASEM+Pj46NDk6Ozc6OzozOzs/PT43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieW1ifpKDb214i3h5f3qBfIZ8e3eGhH9zcIWCenV2dnSEg4V9fpKmo5+lopaKnZCUl4uKqJdyirGNhKeShJmThJmMopWfmJOJmp6jkqmvn5CVkI2OiJaMbo23hZrEyLKboaWbnJiWkLKRZKTNx5WOhoeJkJKNjZOUiYWKiYWWmZuPkJSThpSXhH+Pi5mIjZCql5ejo4iZn5aaiI6Hl5eKhI6NgX+IkKWJjZOpmpeTlpmhmZ+Zk52bo7O0pqO8wb7IxcXJyMnCytPNzdSp0tHW1tbY2tTT2s6Dc4FpZWBfX09KVVtCQUZDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdYKOfXxtfoh4en56gYGCfnZ2gIJ7bG6Lf3l8eHh8hIeLfoujs6ijq7KhlqegpaSWla6ig5C3lZKzmY2hoIukm6+ipJ2YkKeWqZmtr6SXlZWUkIuYmpagwI6jybirmqKlrZmRm5yynYaFqKKcmIWIiY6VjYuTj4eBhoeIk5iUjIuTk4aUmIaDkZCcdJGZspaXpKGInJmTj4qQi5eaiYqWjoZ9jJmfipCQnJqZk5iYn5SgnZWfm6GyrqOlt760xcfEvcPDv8bOysnSp87N09LQ1tjSz9i7c3t3XmJXYlhQSEpPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj8/Nzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdOW1xZSmdhO0iEi3p7bYWGeXyEeICFgX1weH19fG9zjXp9gXt4houJhYSSqLutqLK9r6Wus7Ooo6KwrIqatZ6iuKWVrKSXqa23pqSjn5mpmKqkr7CpmpmclJWRmKCXmbu7rcmgaba4q7CVmJ+iq5KXvaNeqrKCiYqNlYeRfI+OfYOGjY+UlIiHkpaLj5WNi42XmZKdmrOWlauei5uUko2QkoyYm4qSnpCMiZWfoo2VjpianZObmJ6UoaCUnJylr6iipbO4q8LIxLW7vbvFyMjC0aHGyc3NxNbW0MvTonF8al5cVWBSUEZEPj1DQUI4Pzg3ND5GPDw2PDM1MzU1NDUzQjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj49NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVIYmBjcEpAi4p+gHKGh3yBiXWCioJ+bX19fH9wd4d3jYGHe42PjIaMmqvCwLC+xruytMG8tK2rs7aMqLKurr2qm7ukqK25t6umpqKho6Opr7Kxqp2cpJibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIacrb2wg4uMi5CDj4ORj3qBh5CNjpyIiI+XjYuVl5SQmpacp5qxmpGrnY6Zj5KOlZCQlpePkaCRiJWbpKyUlo+UnJ6UoJ6bmKChlJqeqKekoaOwsqbBxsOwsLu2xcTDvs2nx8PHw7zV0M3Eyol1dGReXGFcT0tCTEBFRj5BP0I7OjQ+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxnR2BpZ1pdW5OMjIh7h4uGg4x1hpCKgW5+fIJ/cX6BepV6kpSUmJGTlae0xsnAwszBw7nIvLqvq7m7l7K2urPArqXApKqwu7uqrquiop6nq661sKqboKqcopyVnrC0p4uiurq1wburqJyypKSolISOqcPEpIKLjoeIhIaVlI16g4yRj5GhjIyUkY+JmKCXkpmUl6agrp2MqpyOlY+SkZWVjpCVkY+hlIaXn6CznpSblKChmaSfmqCcoJSYnqakpqekr62lv8TCrqm3tcnDvrbOssW+w7yz0crIwbV2em5eWl1sVE5JQ0xKSklAQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZaJi4iSj4aJeYaTkIFygHyNfneHgYKQeo2hlqiampi6vsjIysLSycrCzbzBs627vqe6v768w7eswamss7u9qrCppKWjq660rra1oJ+un6aimKO0vambqLzAo7a2r6uSr6yqq5aGmqmmpZGCjJOllYmAdYqSeYWNkZCen5OOlIuPjZSjmZeblJSjnqmfkaWajI+Pj5WWiH2PlZKSo5qVoKKctaaRn5elpKOlnp6mmJ6Vl5ulo6moorKsqLvAxK+ls7fMwLmuw7O7vsG4rcLCwcCZcHtjWlhdXE1MTUlHRENIQkJBQ0s6NERIOjs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+a0lfWGFaZGVWno+djpeOnpKJin+Jn5KEeIV/lX5/kIiKkICVoJmup6OYwr3IxMjG083Ozcu8wrewury0vMq8w8G2truts7+5vK2vqKCpp7atrqmyt5qeraKooZ2rt7ippa++xLG9ubOnqbOzra6WlaWsp6CRjpKxxaeVjXyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuMj4+eiFqQl5eSlqWaZpijn7OllqOWrK2rp5ufp5iZlpmVoaSopp62q6m6vMO1pbS2y8G4qrass7q4rqi4ur24g25wXFpWV09HS1NNSz9BSEVER0ZHODVGTTs+Nz5BSi4zMjAyNUI1NVBXTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnJGaUlSZWJMRqaUnJahl6mWjJCDh6WSiIGHgpyEg5WQkZSOmqKfr76uoce9xcTHx87OztLKvru2sbq7vL7OtsS9t7i3srK1s7iyq6acq6u4qqmnr7CXo66kp6SltMCwqqyzvsK5wLmzp7izt7OulaWtrq6ki5OVoY1zwZl9lpmEjpaai7GVmpmVkpOZmqajlaCblpqonJuhoJmLjI+WnWBKlpyalJqll1SWsJ+vnJ+llK+vraWaoaaUk5mZjp2gp6KZtKmqs728u6uwssfAuKarq62xsaOhsrK0pHJwZ15cUFJNRVBQUFE7SEtJRkhBQz45S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1SRVdSc2JXRkirl5mfoamvmJCXh4unlo6IkoWfiIScl4+eoJujpbXJtKnGu8PEyMrIx8zOx766s6+5uMDBzbXIusC5tbqxr6+ytKejm6q0tKqppq6smaSupaWprbq/qKu2tr7Bv764s7LCr7e9q6OutKy4pYibl6abdr6ghJicjpOZmouvlqGcm5eVm6ChqZ6ooJmaqpmhp56XkI2RnYNudpOimpWdop+QrrKjq5WpqpirrqWkn6WpkpKZm4iUnKKelrCnqau6t76zsq6+ubafo6eopaecnKypqY1laGNgU0xNR0hOSlZMPU1ETUlKQUNEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5TYU1WSH9lXkhGrJScoZ+7r5iUnouTqpuRkpOJq42Hop6MpKyUo6O2x720wbrCw8jJxcLOyMG9ubKvubTAwsq2xrHAvLW6q6itrK+jopiqtLqmqaasqp2or6ekq6u+u6isvLO3vca8trW4wLC9v7OptLarvqSPopeRop+8n4mZoJmWnp2Pt5+pnKWjm5yimqils6GbnaWcqKqemZWPlJqLl4mNpKKUnKKfoLWvpaWTsauarKyfnqSjqZKVlaCDkJ6fnJWppaKhtLW6ta2otbKznpyippqXlZmqoZ53Yl5gXktJR0hNUUlNRUZGQlJKSEFER0FWU0RIPEFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREOccGJHRaiXpJ6ew62bl6WXmamclpqaj6qWlaimla2smaGqtsTBvL+4wcPByMS+zca7vrmysLizv8PItb+vvLe5t6ekqqusoKCaqqrEoqWorKaerK+soqqovrimrL2wt7bHtrS5uL6wvsG2tLK0r76jlqOWk5uUrZ+QoaKlo6OfkL6lqZ2prJ2doZumn72imKSeoqmroZ2WjZWek5+Hj4WNk56koJ21rKWclrKnmbCon5qqnqCNmZWfhY6hmpuSpaSamKyxtrGqpamtrJyZoKGSjpCVqZ+UaWRaYV1QSklLT01IRUNJQD1PSEA7R0lIW1JPSz1ITlU0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGZjWE2imqObnsWsoZ+snZ2tn5KjnpakoKeqrJe2sKOqs7bFwr3AtsDCvMnCvsrItri1tLCztLfBxra+sLi0uragp62qq52en6WkwaWgqq6gpKmtr6Kmp721pbG7t7a1w7Kzt7q+scPAuLits7S1opyklZGToK2gmKGdqairoprDramerK6bm56ZpqC9oZ2kmKurq6ahmY2an5KeiY5Xf5WepqGguKqnk5i2o5+zoqCbr5efj5mUnYKPoJeWjaKklZCmrrOrqaKipaWVlZ2Zi4+Rk6SfiWNlW2RgTElLS09GRUFGSz49SkE5OUpKTl1RUUo9TFdcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXExPnp+hmJ7Ep6Wis6GcsqeTqqSfo5+tqaydu7CorLWyyMPBw7PCxL7HxL3Eyr2wsLausLWvv8W1ubCwuratmqmwqamanqahp8Ktm6yxnKqirrCppKe9t6a2ur2vt8Sts7PCv7HGs7q3q7S2raqipZWVlKOroZ+fmairsK6uu7KmoKmpmZmXk6KkuKGhpJKur6ykpp+SoZ6Vno+RjZSdmqOfp7Snp4yYtJyjsJqem66Rn5SXlJqAkqKWj46goZOLpqywpaeinKCekpKblIWLko2cnoBjZltoZktJTUtTQkNASUc7O0Y/OTlOTVVeUlNKPk9eXj1IUEJNTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ufwqijqrGho7SplrKrpqKksqyuqbuyrbC0tMa/xMS1wMW+ysS1wMjCtau1qLC4rMDEtLeurLa6pZmrsaupmJ+ml627tZuosJutn660sqequrOnurK3srjAqreywry0xae+rq23tamnrKGXlpGlpKKil5ikr7itsrW2oJ+opJmUlZOjn7ejpKWVrrGypamlop6ampqVmKifn5iinq6yoqaNl66ZpayXmp6lkZuOlJiahZaflIyQnJ6Ui6mpq6KnoZmeloyPmZCBhpaJlJ95ZGldbGpOUE5OVD1CQU5DOzpJQDc3UU9dXlJWUUFXYFxCSlNIV0tIOlVkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM5MDZwW2JIMDVKcGlWQ1dGjHlmQzuko5yhpb+mqK+voam1qp25r6ukqrS3sbC5trC3uLjFvcPHvbzEwsfBucHGwbqqtqWtu63Bw7e3qq2yvKOVrbCtsZalqJGquaqgp7Cdqp+vtLOqqba2rLursrK5t6y5sMG5vb6mw6uwt66oqqumnZiYqqGhoJGXoLCus6uwuZqbqZ+ZlpKXpqC2qaWioq+xs6uxp6ufm6Cgm56lnKGXnaOzsJufkJSmmqGpm5Win5aYipWYk5aXnZOJkJuZlI6pqaegpJuYm5OHjpmLfo2Who6ba2ltYW1uWFFRWlRBQ0VVQDs6SUE3OlhQZF5QV1dEWV5eTUxST19LSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNzQ3Z1lgRihAOGx9aFxWOol7Y0M9qJ+coam9oaqwqqOxuKmltbKroa21va+zuLy6vbe2wcO/ycS5xcPBwLjFvcG4r7anq7eyvL++tamusrifl6ytqK2Xp6mOp7ufpa2znquisbCzrKq2s7W8ra+xtaywtbHAucS2q7yvsbisrKmisaWepKifpJeQmJ+yqrOpqrOZnaebmZSNoKWktK6noqysrrGnsqyyqaObn6eknZWhmJuotamXmZGSn5mfoZ6QrJ+YmIaVmIudmp2Tio2Wl5qXp6ajoJ2WlZaUgY+VhXuPkoSMlmZsc2hwcl9HWWZWRENOWERaOUhCNj5dUmhcTlldR1teXU5NUlhkSkpDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFWMTUxPWBWXjgpQzNZVVxnSzWMemZMQKSaoKSst6OsqaWurraqrrS5pqewuMW3sbe+wcK1tLvFvszFucPBur+6xLjBubO1rKq6t7u6vrWqrbG2mJioq6qrm6yrj6u9nquusaOqn7Gts66utrK5tqmtrrGntbCzurzJsqq1tLG0r66mobOfmqisoKWVlZqZsaKtoKWvlqGkmZmSjaKlprKpoaaxq6q1pK6wta+jmJ2tp5qXnpmZrLiimJOQj5icoZmXlKyfnZSBk5mNnpyalpCKlJKemqWjoqCZlpKSlnuLkIV7jIqDi5JrbnludXxhRmBqWklIWls9e0pHRTZBYlRpWk1cYUpbXVpSUlNiYUxLRWBhYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuKkEvSkdQW0czY1lUS0SZl5+vqLGprKWjrq61qba0t6OstLfJurS7ur++tbS3w8HNx7zEvbe+v8C3v72yva6nurq3t8K3rK2xuZWXpq6rp6OyqpSvuqStsrGnp6Kxs7GysbWxuLKorquyp7ivtbPDxbaptLWrsK2pp6K2n56msaCklJuZlLGdp5ufqY2pop2blZelpaS3p6Kws6unsaetsLWspJmhrKibnJ2blKq4nJWOjouZnaKYkJenop+Wg5KWkJ2cmJeWiJePl5qnnaSgkpaRkJZ2hJCHe4WChIyMbnF4dnx/XUtlbFxKT2RcP2J7R0k4R2dXZVtMXmJNWFlXVFhUaV1QT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3JrS0RDkZikraStraumo7Cys6q2sLafq7W5ybmuwbvDt7OytcLDz8TAwb20vcC/ur+9s8Soqrmxtre/va+rs7OdoKewraWmsKWesrWsq7KwrKmotLmstLO1rLSsqauorKm5rbGwx764pLmvqa2tpqitsKWjo66jqZydm5qvmaKjoqOQrJ+joJ+hqaWluKSrtLSkqquorK62r6Kdo6iqm6CZmpKktJqPiY2HkaOglo6UnqCVk4WOlJOdm5mWlIeYkpWZp5ygn42SkY6Rd36OhXx8fYeKiXF0c359flxSZG5eTlpnXUZElltHOk5tWGFbTWBiTlZXVldUWWdeUVJMZFpbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NlOzYqSGRISis6ST8zQ0lTLD6Paz5ISY+aqaqhqLCkqKOztLG0tbGxoaytvcu6rsG7xrG0rbTCw9HExr7Asr7Cwry/uLzFqK23rLO4vMGwq7KtoaSnramopLCjq7Gqr6uxrq6tq7O7p7exsqmyqaqmpaOtuqypscK5tKy5qKioramnsaWppKKuqqiinpuirJWknZeemKudoaeooaylo62st7GxoKmin6qtsKydnqanqZmjmJiPoKeYhoOOioufoZCMjZedkJCGiJGVoJ2VmJWGlpOTl6WcnZyLkZCNin9/h4V8d3+HhYd1c3KJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU9kXE5VVlVXUFxhX1NPTmhYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkswLklnREY4PEIwNUVLWDFAlFxATUaVlqynoaqynKmosLWsuLSuqqSrq73Ju7G+t8OvsK2zxMTOzsO/v7TAw8S6wLTJxKyvt66yusC/s66uq6WoqrCppqiypbStqrCurbGvs6yzuqS4tKysrqeroKKesLerqq26tqS1taSpp6ysqqyhqKamsbKkpqWhoauWqaCTmqCmnqOiqqSsop6msbesrKKlopqpqq2pnKGlpKOYoJqVj5idlIGCkIiFnaCNio6Nmo+Ri4SNmKSckpGbjJORkZSjmpuai46Li3yHgYKCe3WAhIF+dXeLo4d5a15gbmdXZodkTkBnkkxEYnpXYlhSZVVNVlVVVE9cXWFVS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZBSUhElpGvpKKqsJeqqK21q7awq6Srqqm8wcC4ubO8taayr8TJy9G/wbu5wMDCucG6wsSusbWytLzBvrOyrq2rrKi2qqWtsKq5r6iwsK6xq7WqtrWmtLarrKSpqpyjnbOzqKiktLSgtq6hqairqKunoKqrqLm2qaqpqaGpn62bkaihnaCjoqaiqZ2cprSup6WpoqOXpaanqpyio6OfmZifkY6PmY5+h42HhZ6eiISKi4+OkY2EhpWimo6NmpGSkY6Tn5eYlo2Kg390h4F/f3h1g397eH6AiJ2PcHJnZ3F4XGF0iGlPXZhWSG15VWRWUmNPTFVUVVFPWFpiVkhQalRXU0dQWVVJPklIT1FQeE1OVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JFO5WNr5+lqq2Zq6StrrO0rqqlr6mpu767wbGvuK2ita/Jx8jRwL+9urzDvbrDwcC/r7Kzsra9vMGysrOrs6mltamkrbOzua+irbWxr7G5qriuqq62q6qeqqugo6G2rqihnq+yobSqnqinqqOqoaGsrai9r6yurKGnp5+rmI+vopiioKinn6ebmamwqKKfrKGgkqGio6aYmqilmJiYnY+Kh5WIfY2GhIWkl4aCgoyHj46RhYWVoJeJkp2Rk5CNkZ2Vl4+KhYZ4c4F/fXV4eoB7dHR7aoKHo3VpXmVsgXVniIt8UldwXkt4c1RkU1FfTU1TWmdOTFZZZVhHU2pSUj5CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWk6MzhfPWFkP0YxQ1BbWytITztYQjSPjrCfpKWqo6WjrKa0s7CppLCnqri+wbywqLmqp66wycfI0MK9wL65vr68ybzCubGwtbK6vLnAs7S7rbmso7Wnp6yytrmypqe6ta20vK+8pa2ttautnKmvpJ+lrKqnnJ2qsqSzqJqqp6qkqZ6iqKipvau0r62eqaOgrpuasqKVpJukpZ+kmpmoqqWemqmhm5GaoKSdmJapqZGZmZOQioKPhX2PgoCIno+HgH6Mh5GPkIWAlJuUhpOijJSRi5GbkpWHiX6Acnp5fnxod3x6dXBxfmmGeYSIZGBoZHKFe21neV1eVkNYe21UYVBSWEtLTXB0XUhaW2dZRVZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpOwmZ+fqaWjoaqktrKxpKmxpq25wb21sKO5raiosMPJyczBt73Atbe/usi2w7W0s7Wyvbm6vbatuba/raKzp6qrr7W3tKqduruosb+yuaCvtLaprJ6tsaOcpaipop2cpLCmr6Cfq6mnoamco6igrbunrrGuoaqio62enqyll5+boKKcn5uZoqqimpmjo5WWk5+hlpuWpqyLnpGQkYyCi4B/j4F7mpSNiX1+jIeQj4yKhZKYkYeUpIqSkoeQmpCTgYh8eWx9dnl4Ynt6cnBwc3hqgnRqgmdjaGFuc45tYmpwYG9CXXlrVl5OUFFKSUxTWVZNXF5tV0RYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUV09I5KXq5ifl6ejoZ+no7evraKvr6mruMK6s62fua+rqLS6x8rHv7fCvq+0vrfEtsOysLqys8C1u764qbm4vauktaeoqrCtubCpmbm8o66/tLShrre1p6ansLOgn6Wmp6ClmZ6sqKmeoKqup6Cml6Kon7C4n6SxrqCsoaykm6amqJqam56jlZ2cmp2pppaanqiRl5KYnZOZlaGqkJqJjZCHfYh/go58fKGMjYl5g42Fio2NhYiTmo6JlZ+JkZWCjJeNkH2Ee3NwfHFzdGB5eGpvcHFwan9zY3psaGZkYWWHgGBbcmpxTU6AaVhaTVBMSkdQUlFITVtfb1REWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MFxbNSiWm6WYnJWsn5+hpKG3qrCjtLSpqbnFtrKuoLesra2wtsXHwLe/wrmwtby3v7u/r6y+sLO/sb3Duam7urinqLaop6uwrLOwppm8tqSrurWun7G4r6mlp6+ym6GkoKOkoZabr6ahn6Oor6GgopOjpKK2sKGmsaufrKKul5uqpKiel5qdpJOam5qdpamZm5uklJSXlJyOk5eiqaGQiYqPhXqEfoSKeo+Xio2HeoKIhImMjoWOk5iMjpaZio+Wf4aXi496gHpwcXZucHRfeHdlbWxsa2mEbmZyaWtmaV1jdIFgW2t2aVpKf15bWE9PS0hIUlVGMjldXm1QRFhWWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJjViwylaKhl5SbqZykoaKht6muoLq4pay9xbOwrqO1r62tr7TDw7yzv7q3sLO5uLq4uq+uwLO0ubC/wbisvbq1paKzqqepsqutsaGawLWkp7W1qJ6yvKmopamvrJmjp5ykpZSXobKlmZ+kqKmcoqCTpJ+juKikp66mnaWhqJKfqKGhoJianKCSmpuWn6Gqm5qYoJSQk5aZjZSSo6ikkImJj4Z5hHuEhn2djomKh3qBhIeJiZGFlZOTjJCVlI2OlHuCl46Ld357bHRxbGxzYXd0aGhqZ2dvhWdoaGNmaWpgamNpZ1tle2NgU3RUXFtTTEpHSU9TQCEqaF5qTENWVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z08nMp6io5GOo6abnp6do7Wsp6q6t6esxMG2sKyjta6nrq+3wL+8ssG2sK6ytra4tratqr2zrrKxvb+4rry7saWftqulpbSpqq6encGrqKWvsqmstbueqamrsaWYnqmdp6SRmKatopiepKmhm6Gclp+dp7alr6quoaGdnaGUoKafoaCZm5mckZmdlKWdq6GXlpyUkoyVl4uPmJqpoJGIiYuIeYV3goKCnYiLgol9f4WIhoaRhJaVkI6QkZGRjJJ7g5WNhnN9fWZ4b2tqa2d1c2tjZ2RkdoBiZWZmZWpqZGtyWl9ZXW1kYU5pWFtgVkpHSUtNUlg+OV9saUhCVFNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEIqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao5+Qi6yhmJiflqSzsaKxvbahsca8urGxpLesqq6puby7u67Asq6urrausrizqKu5sa+us7a6trC4va2mnrWroKCwpKqunKLAoLGkrrCut661nq2vra2imp2nqaWelZqnpZ+ZpKKonZqfm5ScnayvpbqorqKhmpqdmZ6jmqSdl56Ym5SZoJKolamnmpOampGLlJmNlJSZqaeOjYqJj3yCc4GBipiFh3yJiYWFioyKkoSUnJORj5CQlo6Qf4CMjYJwgH5meW1oa2lncXJrXGhjY3OBYWZoam5sZ2pqaG5dbGx0cGFVY2lkZVpJRkxNT1hRUVZhZYFVQFZTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kaGajY+wnZqToZmosq+fuL+2oLTCu725saa2sKiupbe4t7etu6+sqqu2qrO4raWztbKuqbC3trGztbqnqZ+1qJ2eqKKprZqnvpito66vtLWtrJ+xrbCpopyco6uom5ScpqOdmqmipJaan5yQm6Orqqm7n6ekoJiZmZ2hj2uhlpmccIKVmqN/dZGpp56UlJ6QiJeZgJaKoZB4hpSMg25qfnaDcWyGi4Z9hIyHcF5jYWeEmIZsi4+UknR3i4R+g49/Z4aAZ3VoZVdcaHNuTlBqY2dyhGdfZGZubWpeX2GKj4OEZU5LRDlGVGdeSkdQUFRVS0hSYG90ZUZaUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoujmYaUsJuck6Cbqq2qo73Fr6m4wri9vK2ntrClq6S3s7KzsbmtqaastKavtaKouLa2qKest7OutK2zoqmfs6qeoaScpqaYq7qVpqWvsratrqSprquspaGfnaCnp5uXoKWlm5unp52Tn5+YkJ6nqqO1r6Ojo5yWl5eXo4ihjpKah6GHk5ygf6R/paqekpGakYiEcniNjoWIoXaIjGmXiGZ9cnihb4iHhH6OfX+hoKCZgHyHnnSHjnabimyHgYNsaGVjemtxYVOFbWNsaZhxWWpxb4dYXmlba2tbiHFuenKFZ4aEWl5HTj9HX01GUlZWUVFSV1RnXk1XSVJTT0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiLppaDnKudmZidn6qqp6q/w6+xur23wL+qpbewqa2ms7Sur7O3q6mlsa2ltLOcrbW2tKanqLOxrbKorp6roLKooKOimqChmq2zlKOlpbW8p6ynq6qsqKWhoJigpqOZmaWjpJibo6mWlKOclJOkpaaht6OjoKSYlJOXk5uIro+YlImpi5ehm4WxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGXvJzFenK1pruQe4BslrGrsHhoa1ixrm5labySvG5oem5yj9h+U2pitrJ/gXKVdJqhqpBXT1diUFZORlRbWFFQUoxcV1xQQFxEUU5ER0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaSgKeqn5ecnaWtsqixwr2ytcC1t77Cq6azraypp66zqa+2tKenprSlp7iunLOytqqlpKeyrq6xpqqep6Sxo6Kfnpeanpyuq5Sdop+zuqOqqaKtrqWhnZqaoaefl5unoJ+YnaankZynmpOdoaaioLCin5+jlpWSmJKZha9qaoqNqn5ng5WGrWRwnZ2UmaWUca6hpH54u31roY92sV9qtFulgGackWBmgnpmf2p4a6lkvnJnpox1sWp8sXh0kpNjbW2nbluEoEVoZoeWRXWcYH5nfKSngllfi6tpgJZ4eWqnN0qvXFhTbGRbS05XX1xXVjtOiU9YVy9JVFRJQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKsp6Weo6SqsrestL2+sLbEsre6wqapsKuuqKmwrqOwuq+jpK6yo6m4qJ6zsrCjpaCqra+sr6ann6OisJuim5eVlpqarKWWm6Ges7Oiq5yira2gnZmXoKGonJmdo5+cmaClpI+dopqXoJ+qnqamoJufoZWVkZaRmoW1m7V4hamZtZl2hrObt36TlpaolH5rgaZ7goaIkpSSd6tna7Fbq3uPh5R0iXGPhoB/iJCXeIKCi5iMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5WFhBI01oRUJFQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5WHs6amoa6pp7Ksqbu2wrC7wq24t8CqrK2trqatsamhr7yqoae0raOrtaSms7Ono6Kdp6qyqLCnpZ6fn6+Wn5iUlZWXnayhmZmkqLSvoqmPqaiqm52VmKClp5qfnKKfm6CjpKOVm5+XmZ2iqZulmZycoqCXk5GTkpyD1ZOZuXCwwn7FhnzWlJu7fJqVpI+NnI2ke46HpIKlgnqseY+dVq96iH6farlauXaHhH2mgpN8mHqqeY2dkHuxbo6EdJC8hW+UUK+nxYpRoHpjYKljdHKIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhObU1bUk9ZZlpDRD9FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzElm6KTmLGoqKWzqqW0qaS8t8GwucCxtbS7s7WnsbCjsLKmn662qJqnua6jr7Ggs7SwoKSen6epsKm0qKSbnZ6rl5iXlpeVlaCqnJmWp62wqaOej6yiqJadl5yhpaGYoqGhoZqhoqebnqGelJmbpqCcp5Wbm5+hmY+RlJGciLJuaLVxq4dujqZytHNytnual6SLj52No3+RoaV+sHaDkdLRdlyue4V/pG+bqqZrh4V9rX2XmY97sXOSnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa2BsaFBVR0k4PVZRWldYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGdkqWvraSqvK2mtaWntru8srq/t7W0urqzpbS0obGxop+ssKSXprqupLGwnLS4qp+mnaGppLKorKmkmZuaqJ6VlJiZkpKip5+WkqWqsKailpOtn6WSlKCbpKaflJqlpqGaop+tmqCenZCVm6GenKWVnZaZop+VmJWRmoWse3eodqOOiIapb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9eIV+j56GmZl3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV93d4domIhrXa93lZ6PeGw1eciusl9CU29eZ2BFUG1fcG1WVU0uZWNoUlhRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk6OTmfnZSfuLCXtMGtqLOoqbK6t7O4v7m3srW8taS3s5+0rJ+fqKyflKe1q6ixsauttKSbqaCgqKG2p6apopmdlaWhk5KbmJKUoqWakpCmrK+moJWZqZ+ijpGimailoJWapaidnKSerJ2hnaCNlJ6anaGYmZyWl6Ggk5iQpp6GqX19pXihj46DqnCti4GnhpafoYmXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aIdKiCjpuNkqN8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcW0x0XWJmTVthX3JzX0pWNkqbk1hIRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84oZ2Zmb+rl7TCrqytqaa0sLextb+5ubKwt7upurSfsKSepaennpOqsKmvqrWsqq+hmKGgpqWkuqKjq6CWm5GioJSTnpqUl56fj42LqK+vpp2Wm6imn4ySpJeoq6eUl6mnnp6go62koZ6hjZWhmJ+gkp2XnJWdoZWWjqubj65tcrRyqYx2iqZztHhzs4CRpKOSnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZKIrWt1s2GdZqJvh5Jql1ytX02hfIeRUnOjbXp/fm+Yh3Fcr1Y8nHdlVG9uLlynT2NSa2VibVpjXWBwe2NTWlE+Pm1vM0NCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWam527oZyywK6uq6unt6m4r7XAtbywr7m4q8G2qamgm6ajop2RqqqotqOyp6+qoJecp6Ckq7ido62blpmPpaKVjJ2hm5icn5GTlKu1sKeZlJysqpeMk6WZpa2ikZaqsaSfnqarsJiho5CZopafm5acl6GSnKmclJCqmYfUkpq7c7DDgMOGftWWm7h4iJCYjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2VgaypcXt/dbyIp6BpnWGmjq+hfox0h6p9vm5zvHSyg3V4gYpumohxbo2kdL1ed31bYXm8a1pWW2p6XmphZWdibXhvWVtZQ0FAckBDRys1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56hvKKXscOwraqqrLGnuK+2xLG6sa66r67Asaukop6jopybkKmkqrKktaatpZ+WmaqZpqy4nKKumJSgkKWfkoyco56XnZuRlZKvubKslZejp6eTkJaknKSsnpGgqKufm5+oo7Oeo6WOp6GUopqcmJWjmI+woJKUqZ6FkJm1gJCRjLeVeIKTmrV3bWtuc295j4SOiXSewbu9mnuBsqhwgHSRuYN8hoaMho17ioeNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtXRycHe2jF6Aen2KaIN5bXlji6xwdYV/WlunakVlWlRmYGNdY1FnZ3BsdUJNUExEOlpNP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVzgqT15dPSs6VlYnPjs8p56gob+llrTCtKyqqKyrqbuusMWutLKut6e0uK2poqGlnqCdmZOrpK2qprWop5+blqCjnaukvaagqpeUnJChmpGPoqihk52Yk5eUsrW3rZido6OiipKSppulqpuWqaSlnJqhqKamo6mhka2elqOel5eXnZ6PsKiUm6ehjmp+aZymeIdyfZqOdHpkh3u9vsC6b5KCcZWHYXNqWl6bimFjiI6Va2CAlWRtnXdilWuAmpWUZV5hY3GaimlyjH2FlWdqfnJ0eH19Ylt3dIFoUFxuhH18i2tYbHqCc0pKb4ZwTXVNRVddZ2FMWldnY19PW211anFST0RFTjtISD1MPzItMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBfTCgzPVtPJz8yPqigqKHCo5q0ubajrKWup6i1sqvIq7Czq7SjvrGypqCiqJ2jm5mZrKavpKS1qaWbl5WhmqatqL2nqKaVk5uVn5mSl6SpqJCdkY+YnLCyv6ybp52moYiTkamaqKOam6yfo5mao6esop+ropqxm5WnoJeVnZ+dl7Gkl6GomZyRnZyipJimopqcmpqZj5WBZ219cXeSl5SRhYu1qo2GmJWOioyYl4eUlYqEkpSRiY6SlJiUmJeaoKKanJShno2CeqSGbGp8kHyAdImKgXGCeHl2douAfIprc4F0g3Vldn13a3B7bWBjXXBoTVhaZmpgV1pveW1tZlNPRlM5T1lNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzobOhv6GksbK3oKmlsqelsLWqyKussKW1psCntKCdpKSco5WVoKqnrKOjtqufmZaVn5atqaXAnquklZKcl52XkpOin56ip5ORmainssSvmqucqp6QlpaonaqbnKCsmKGbnKKkr6ahpaifrpiXp52ZmqCenpyvoJyhppWYkpiToKGVo56XoI6Wk4qKjY6WrY98lZuCkoKLqqiGgZmXioSPn4h7hJCHhpqSiIaKlY+bl42RmJ6klpqTkZ6Nf45mobOvhYqEdnqQinx2eXpvZnqRgYCJa3WBeYhzaXN/enWDh4JrdGR5ZmBpZWNkZmtZbHtwaWpcU0xQRF9URUA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r7+sq66ysaCqprGtoqyzsMSwqqujs668o7Sbn6aioZyZl6elqaakpbK0npWUnZmZsKatvqCropCRnZqZlJGUopyXqJyEnqqrorPIs5+qpKqWlpeap52omp+kq5Oenp2gqa+ppaOroq6bn6ChmKSenJ+dr6OYnqiTmJeckaSZmKidmpdlgpJ8ZX6NmY9jeY1saGt7kqSqamWamH5nhoplZWloe46hj2tojZeRo3draouZo56Zc2xue4SNh3pYZV6Ggl5si4mAdlxoc3d3koCHgm54gniAc215hHR3iYiOg3tphllea3RkXXOJaWt9cWtjXlJOV0pkWEFKND1GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsKqlqK2tsKetrbC8samnpK2vsJ+tl6CjnaKZmaarnK2jpaipsq2elaOQoq+mtrmlrqOOjpqhmZOSmqCZmaWVe6WtoqizxLikoqevnp2UnqKeo5yjqamSnqGdoKqwqqukqqCqm6efqKCslqGbpbCkl5uqlaGem5Kll56qmJ5+vYOHcrRyhJ2FrWh4ucS4cZOio3qmmZlzqoJ8y8DAu3GMooiCn32WmImdwL2Cl52djZ3CwXyCfJKNmsPAfWulsm+MgW/Ken+bd5KDjoF2eoGAeXF6f4dxeIWNk3ltd5RjZl95ZGBlgmNedGhsZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JRLyNGWzNQWS9VQUI7LziWo7nDtLCwwKmolKOvqbCuraaztK+ppaamsaufq5iaop+cmqqnop2so6WopKS0pJ2ik6atq7ezp66ikZGZnaWSkJ+hmJufnYenrKSrrcDAsaCpr6mXkZ6doZmio6qjk6ChnZ6trqmsp6Ojp6GmpZ2tqZKkmqitqZucqZysoZaWpZWhopecf86UeHqkgXmUlptfro9ejqeBoqB9p5acdKuDgK9eY42qe6eHhaB0l5OIs2OCq4ahjY2zaoWvdH2XiLhhg61Zo81tkHV72nt/mXB+iJJ2fmV7iHZ2a3yIb36FkZJ+bYKPYHJscGdgX3lkXHFoamNmYFJUUlddS09DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSzAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGkqqittKulsqysq6SrprCqoKebmaWXnKKvn6CfqKejpaGfsKyanZWnrq2xq6isoJSSm5+kko+epZidp6OerqSrsKnAx7OoqbGulpKdm6GXn6mqn5Sgn52drrCnq6mcp6ikoquTrLOXpaKqqZ2jpqWhsKCSmaaZoJqUlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnneqgn2tf5xzrX6rh4afdpiSe3yXfqqIooyRjJ1+q3uJlI+fgHutVpzEeo9vksF9gZVtdW+MbWV2ZYZvYXducm+Ki5KQg22SkGZwdXVwYGdtZV9vaWluZ2NXU1xhWVJTQzhJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytKCco46jo6Ksr7avqLGmqKqnraurp6KjnZmilaClqp+hpaCoqKKfnbCsl5qWqKevrKimqZ6XlJqjoZGToK2bnaajr6yjrLWqus6yraatrJaVnJ2imJ6urJ2WoJmen6qyqaqqm6yrpKOsm6+xoqirrqWYpqqpqbGikpajpJqUkoWkaqR1iXqpdHqycIKmipmMcYigmoekYGFSq4R/roObdq2BpoaGn3qZl4Z7ZoCjiaSZhoKkfal/gpWHrl59qVWdopKBeqKfgHvDr8WLcq+zs7lxYqmvwnRojYyYj4FtmpRwbnl4eG9sZmVlcXBmfGliXVdgaVhYVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVv6GZq6ehr6KesLSwr6mtoqemqqurqaSmoJuknp2mp6ajnKuaoqyhpJ+vopybk6qktbCvoKmbnZaUpqKQmqKooKClnLCmpKiyrbfJsrWqq6mVkZ2copifpbOdmqCUnZ+nrKykrpqtq6OjqqKzrqKqs7Ghmqmorq+2opKWoqeYm5F8qmyehId1q3l8sG+CpIuJn5aWn5SB0ri0uMmAgbJfYJSpg6OIh6B6mJaaeKrJdJmklaiqkZOajICbipnGxnhmoYKlc4GfjoJ9r11wtGKwdUujhm2nR4KTZI+QnpJ8cZeTgHF7dX57bltmanJwZYFqX2FYZG1cXllJTkxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqbOtrKWinLK5rKqhppqopaqrqqegpqWYqqOfr6udpqCsmp6ppZ2ntZ+il5OpqrayrJylm5+Uj6WskZmbp6OgqaauoaSnqrC1wrKzqq2ok4mXnaSaoaOuppihlZmcpqasm7Cdrqmnnqykt6ygsbmvnZuup7Kzs6SUl6eimZ+Ogp1OeJqBf596g6N9g6SEhqaenJ6ThLh7fHm5gn7MxsK2eJuhkIuffpqWl4p2npiKpZikqX+whZ2Fn4SsfZqUYqVspHCPhZCBfZaCcqxgo3NxgJpgvH1SVXWPkqSXe36Tkot1e3OFf3FcbW54cmqBb1tkX2huYmRdS0xRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq+gm6Gss7Oln6CVpa6trqqnnaammqOnobOuoqmmsqCZqaSUorWiopWXoqm1uaObopyhko+hsZiem6eloaKvrp2kqKK2ssSxramtqZGHkJynnKKknKWXnpiZmqakqZqvoa+lppivpbytoba3rZ2dtbK4sLOml52voKOdhY/RtcO3eYeOhZGTkIGmeJShd4ygkYSlgYpxqoaEtG5yapmjnJWKnnyYmYaHj3OvgqWboo6mi5OdipWQmm1wslylc5N6nGyZf3uZfG2pYaNxcX+fYnOyuGh4kJSmmH2MjZSNeH15j4JtaXhpeXJugHVdZWRubWZnYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWTc42Krb+/vLq0npanpa21oaKZlaOop66rrJmmop+moKC1p6Kpp7CjlKyjjqSto52QmpqqtLSknaSbp5GUl62fn52npJ2nnLWaoaqktqvDsKmrqaGMhI6coaCmo5WampyYm5mnpaaYrKiuo6Wbraa+rJS9sKyforCyuauzppqosaOnl3qokH18sHeKgaSliJxtsm+gh618oY6DqJWYgKyJhK6Fn5SqoaGXhp+AmZWAe5J+q4CdmpeLq3idn5GJk5KAea9do4F9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWSppmClY6YjXt7hJh/a21/Y350boB6YGdlcW5oZ2dDWmFbPktUM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBgYWFeXVtaWFNQT05JODA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVldXWFZVVVFIRklKIygovZKag6nGwrbBs5+arKCuuKWjjpuko5+wr6qfpJ+drZmeuaCjq6CvqZquoZCrqKSWiZqQrrGspp+mmqyXmI+soaGdpaGapZ2tmKCoprapwK+lqaSfi4CNm5qfpp6SlJqalJqapaSkmqmsrKSln6qovqSWw6yqoqGrsrmqrqegs66oqZh2r36Qi5yFh3y6roqYZbCMZZWtfaGPg6aVmoGsioSwhaaZpKGhkYWgW2xqgbNgf617e4KBsW1nb5mYjIiwW320XKSDa8iiZJ+Ae7xYdrVasn1SroB6rFiAoW6YkKibi5eRmJh8eY+dfmR0fmKEeHSAfGFqZ3FtZmVlT1VkXEJVXz5KKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFhaXmBgYGFiXl9cW1hVUE5KRkM1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpcXFhXV0dCO9Kfs7K3vbq0wrOjm6ympbaooIuaoJ+cs7Opn6OgnrWYoLSoqqyer62erJuVr6iijoibjq+sqKeippmukpmPqJqhnaSfmaSjpZmfo6qyqb2vpaienY59i5qVoKCZj5Gam5Kal6ifoZqorqimpqOlqbueoMampKihq7S1rK6mnrutrKyVgKmSo6+Pm4CHpJeYkIGAuMO6g46ck4SnlpyCrIqCr4imm5ulqpF+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGujgW+rhGycf3qysMeDaquwvax4d6K+vHSBlo6nnJCbkZideoKRm3pjfXtkjmd5gntgbGVramJQYVpTalxAVWFCTio9OjQvHh8kHiUyIB0kKDA0OTY2Nzg6PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbO0sb+5sb2yop2upqWypp2MmKW/qriyqKG/pqeynJ6xnLqon62vpqaUlLCsl4yDm5GupaKsoaOcqp+Yi6OSpp6nnJqhqKKZnqGsraq5rqijm5eSe4eZkaabk46RmJiPmJOomqCYqamhqqeho6q7nqjEoqCuo6qztKqwqaC6p66umnN1qqS3hmWJoHBnrY+Kj21vd6SQmZ+Bda6YlHCPi3GVqKObl66kcm1tbGaLeG9ugplxgXpqcWlniZaVmHFpaYSHZ3CGZF2IYmpvWV1nfnemX2FxjpFuZmWAjZOPopiZmZGYn32HkJV2Zod4aY5reX95ZGxjZmxiS2RYSmxaOlFlRVInSzorIxwgGyIsKRgbGC0yLjU6NDU3OTw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6m5ubKzqqmhrp6jsqmYkr6yxMm+tqqewKyso6GorKC6o6SurK2mjZeuqZCMhZWWrZ6mq6Geo6OfkYukkqeZqJmWo6qglpympqevuqysmpuTknuEl42lmI2RkZiUjZeVqJWfmKmjm7GmnqKruZ+vwKeksqWssLGqraunt6Ott5aKoKiltp2JlqKYh6makJSdkqmzmZujq6CxlqKgnaCinKCloZWrp42TkoyHk5yclZCak5iRjpWFgaSal5WNi5OTi4+GhH1niX50gnZ0h4txp2x6lJGTkoGBjpCQj52VoZaamKKDiJWNcmmQd3GLeHd8empsZGNvZFVgWEBqW0hjYU9aK0Y9KychNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhUVlleYGFjXV5VUUpFRD45PUBBU1hbXFpXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbaurqKwo62foLWxkI6sx73Fu7mroqaem6afsaijtqedqbSnqJGYrKKLh4mPm6eWrKWgmaeenpKVo5eomqiZlKaho5Cap5mhtbuoq5iakI17gZSLoJSKlZGVkJCTl6WQn5qqoJy2o56nq7enrsGuo7amr6+wrKmps7igrryZkaWkpraikp2mn42pn42Sn6Osr5uho7Cor5ejoJyjqp6enZyWq52SmaGblJCWqpmNmZmWkJaekYmgnZWUhZKMkI2Ui4B9ZouFdYZ1eYiDc5xqhZCUk5CJfYyWkpKXlKKTnpiihImZh3tylnN6i39yfH9qb2RecGphW19ZbmNQYGRQWjpHR0U+Mj09OC8rJispJh0mNDA2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVVBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX19hYWJhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaatoKe1qpCQnaW0vK+traKjmnqdorGkpbGpl5y4pqOUmaqcjoaKiZyjj66fopWnn6GSl5ibrouqlo+omaiMmKmPn7m2paaZm42IeYKTi5qTipWSlJCNkpeijZ2eqJ6fuKOAhK+1oq+vdaS9o7Kgd3mgqrK6lHWspJ6JgKp/ZFxidqCOpJ6El31uk7Odo6etqqNlnZ+Sc3mZlnCAmKiXbH+iqIplnKWckZeYloySnJGGnZqQlYOSh4+PkomEd2qOhnaGcHuGgYBhaYeKlJKLWnWVkWhoj49ze6aamWV5mYeDeJhqhIuDb3mAa3FlX3ZwbGtoXGdlYmJwU1w+Tk5OU0c+QFREOTEvHh8mNDozMTY2Nzg8Oz5AQUFGSEJHRklLTVRUVVldYGhmZ1dRSjxERzw4VVJbYGFiYF5gX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6GvsayrqaWprqOmraSSlqu2sLKnm6umrJd0jJ2vn6irp5SXuZ+gj5yknZF/iYibno2rmqKVp6GdjpeRnoR1ro+IppqpkZekiZy6tKigmZiLiXV3k42Vk4qUkZCUjJCToI6boaeZnLKWgIybtZ2zjJKPvKegfqeieqKutoGOjqaeg4uGkLGpr4yKlqOaeYCLrIacnaKnqaeHlYWYd6WbeoebgZengoJ7nLJ6ioagl5mUmJaCkZeWhJqZY3mHkISOj5GKg21wjod5gHCAgYV/hnSGhJWReJZoknSgmnR9mYSinoeYf5OLg4SZa46OhWx4e3FxZ2R4b2psalxma2pldFxfSVRMUUBFNS5aVFU3KSEwOT0+NjQzNTY4Ozo9Pj5AREk/SkVKS0dTWFtZW2FhaWZaUUg5RUs8PmFWXmJkZmRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mra6rqKygqLGmpqmlmZSuyL6xopenqbWej4SdrJynoqCNkL6emo2fmqCQfIaOmZiIrJyhlp+gkY2TiYaAkaiNh6KdpJSYnoafurKnnpuSjoVwdZCJlJCKlJCPm4yQkp+Sl6Gllp6rh5+0ibSarYrKh6quiLeFjK+CsK6DqY2lmI2dfaiPcnt3nI+nlmiVpHm0jJ+epqiSmMKBf6uImKFynoCapX2XhZWxgKF9oZOgkJiXgY6Tm4qYkYt8hZOGjZWSiYNtcpCFf3lxhoGEfIR1hIGWgI/FZn+ph4+ja56Do5uEmoGOjoaKmXGOk4Vod3R8d2hodXFoaGteZHBtZ21YZ0ddUk0yRDQ2TmFjNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmptXFFFPUxNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUl6KfsKepqKaroKS4sKmqppqUoKOkq6SXpaq3o6+AoaecpZ6diZS9mZONoZKej3mElpaRiKuZm5uZoYWPjHebnI+fkIiepJyWmpiHo7mupZqcjIx+Ym2Pi5OQjZCNjZiMkZKfj5ShoZmhp36hp4etnaCWrY+enJ2RhYCgjauuhqONqZmMmn+jdYCZlGuCrHVNq3iHjZyRm6ingKmrfYOhe3qnaZ5/kmtnl4aXtomefm5gZFmDl3+Me2Roi3KZfXmVbF18lm1fU3CDXF9reYNgWWWCfYOAl3CnqmuDo25ypXCfhaBpZqBtW26KfGZaYIN/YldQb3dmbXRya2pvXmtwbWxpWGlPXVhGOUE0R0ReazQsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl5jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5adoLigqqSmrJGhtbyrrqKZmKCipayuoZ2utaKokqGgn6abmo6ZtJmQi5+MlYt1gZSSjYqmlpWYnp5/koWGrKSHm5CKmKmZmpuSiKaxp6KWmoiJgGluiIiLjo6Ki42SjJCSooyUn6CcoaR/k4GPo6GUoHeclo+ng6Gnf4aprISleIp8hJp+onBzlIiWe56MeW2Hm4yZkJuomo+HnXuConN2pmaefnekX5h6fZJzom6Yt7S6dJOHgn+1qGSBxrh7cJW3i3GAmqRic6yrYH1pnbN+bnyGgo2Ci5hxf6NscqN0noSAo2CdmbOWcXyXn7N0c1uesoNqYm90dnFpb1hrbHJyZl1pXmJLRT1ENlFBWXEzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1OUUBEX15bWVhgYHxkSEM4TFdVVmNhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLe1rq2gmqKdo6Omrpybsa2sk5ihmaGkmZqUn6ubi4iSeIuFcYCWjYqPoZCSlJ2XfZCJjaihh5iOipGjlJybjYupqKWekJeHhX5re4d+fY+Ng4uQkYmPlKCDl56gnaCei4l3nJiijJ9yoYuHqIibpY+Wp6p+rYx+eqCZeqOTeIF0loiNnH2Vn4abjpmbpoaiZKF8iJaQm41snmiajW6amXuAi6d9cmh0q4Oeg3SqaJWaXZuFdoSdaKpqgLhmXKhwgZxglYxep3Z1h4l+nmiadYaTkpeOf59umpBtp5pdqH54u2t+qluOhF2zZ1xucnp4a2lccWp4eWNgZlhiQVFGTzdWQ1JvNUtaWl9PWkRAMTUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXVllZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniGOUm6u6srGsnqacnKmfnq6bnrCorJ2XpJqhn5iWlqGkmYaJjWqIgHJ7l4iLlpaEkZSYj3qKhJaknYqUj4aLnpKdnYmQqaOgmoySioCAaYCGeH+XjHuJjo6Ij5aaf5Sin6Chk5hyaJ+Kn4+McJKMgamHmJ6ip5+nfK+to6K4l3ejs6KkgIiUeZ17qpp/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmn90qlpdb3uWi3ieYkx+enqFY3mXQkyeWaJqcnyObYCIhJl1m3iGibGzf3+bk6d2gp1uc32Ub5lza6RdlXZIZWRhc3F+fm5mYGxpdntkZWJSXlddVVdAWkVRaERTV1xiWF5JRD1COD9COklGOExFWEFXUltWREZiXFpgS2BtfnJFQzxVX2JaZmpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZsXmVnZmtkZmxpaGtpk5yBsK2ZhFReoKazubOzqZqijJyrnJyplKGrpKGoj5+enZqZlpihnZaIh4l3hoFveZWFkJuLfJGTlohyf4iSoZxzkZCBiJmVoZuFjqmcmpWLi4t8g2yEhXGBoYx4ho2IiJOYlXyTo6Ceo4ithn21hI6enHullnqpgZWcj4qgnHynaHdtfpl0oXNxfJ6GmXCTg659pIOmnpmAo29eqGd1o2NvpWGc05B8e5l4cnNjooaQfqNzpI92a5CzjGCCmIlzqrKovH93g21+vqaptF6cbn1xl25/cqJyXaRnc6ZhaKZtm9SZfYWbcHp6l2ubfHiXc26ppGdhZXlwgIRrZ2ZkbnV3Z2BjVFtmUVFiSVdKVGFXU1tlalxlUUZDS01KS0JLRThPQFFOWFNZT1NRYWZlalJjd3l3SUZFY11lWmhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7CrVFxLfqmvsbSws6OcmYWZqaChpI6lqKCYqYqZmJiTmZOSoJiOh4Z7cH2EaH2Pg5SagXeQjo+Jb3+Gj5KSbJeTfImRkqSWg46qmpOSi4WJeoN2h4BugZ+Gd4GShoiZopd7lKOkmp+Js6Gitot6rKekrqVwqICakIWAm5F7pICimYaYcp6Eo66vipeMf4ykjZWDraGUdrS1tcmhc5SKgZ9gnZepbXmVhqCbdaGHd6B+kpeLgW9MZqOScJuHcqR7enRhg4FrfqBrcWRfnHF9dJdpemmztbTGpnOYfnqda5ybq3WEm211eJhpmnp1mHJQRX20Xmp2a3mHZmpoYnR1cG5WXlRZaVBTaUlWTVlUVl1oa25WZ1dNSkJKTUtISk9BUUtQZWNqbWV1c3N/eXxudYl7e1RQTmxeaFtraVJqaGlsZ2xmY2VgXF1cXmliZGlre19dZGhjamZvbGVpbWWhnIivpoRmP5Shs6uvr7aiopCAmKqioqWMpaednaaCmpeWjZeQj5yTjoiDeWp5hmWDjH+XoHl1joiMgWmEhZKCjIWdjXqMi5Wmk4OXqZiMkYuBiXqAfYt5cJChhnmBlYeJlqCVf5Slp5yWloRmbnicbKJkfHGld5uYcGemgJaLe6R6n5aDl3KedoGKlJaPuW6QiqJifZmhlYhtcmmqa3WgbW6mX5ppi5BoloealXWigH2aYIyGjXVviGJooGWefmmadW9jZoiCbXKiWl9bYqFtXYmMb3t+c3JkpW13omRnp2mZc4yZb6JvU4mQb6BfZahUi15UmG5tc2tygm1waWt5c2tvUllXV2daVG1KWU9dSVhpaXNqWWtWUVJFVlxMWFNhVWlrX3d0e31wfXxyg3t/c3aNgIR2XlFyYmdicGdQamhoa2xuaGRnX11eXWBrYmppdnVdXGNpY2pqc2xma21jnKSYpnpldG2Lp66kqbCxpp+LgJirnZ+mjKKhm6KigJaYk42aj4uYkI6Ke4ZxgIhoi4t8mJtzdIl9kHtkgoeViomWmYJ8iIeWqJGBoqyRhpCKgop+gICOc2mPpYR9hpSNiJigjoiTqqadiaZ4lZt+pYiWjLKYnpCCr5efpXeUh3mpdKWPhJpupKKMkoSMg7tufaWvg4aGhpOVnJ98pXpyqJWglmaefm+rY5aKlZJ4qGypooGJdoiDd6qRpodqkbBrdrOMqWuKhm1tn56SlWB+q4uqdn5/jKWedp99hKSVnaBqm4h3rGefrYy2dHe+jaSTWYOmjathdXJ0cHx1cWNqfm5obFNXW1ZhYl1rTV1SXUpebW52YFtxWVtgW2Z0ZW5vcWJxdGB3en55cnmDc4R/gXt7jIGCgHZieGRjbXNkUmtnaG9scmpmaWFgXlxia2JtbHpvXFxiaWJsandtZ2xuYpWlqp2BgJ6klqmqnainrqSZiYOYq5qepImbpZ2pnYWMmo6GnJGFko2MjXSGeoiEb42EfpiTdHSGcpKDbX+LkoeGk499e4KFmKaOf6WmjoGOiYWVdoKHkm9si6mAg4uUjomcn4mMlKqjoI+AdZSXiH6BeZSuo3+Bm3GPhXiPioN+e3KnjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3t9iWuMhVt5eXJ6cGhufpKJcX91gY+Uk3GGhIJljH9egX+Ld3VzlHVveW5uh22EhV52aHiOZYCAhY2pm310fJZqiYhwgXZ9hnZtbWeMc3l7mHiFW2tYeY9pbndycXB4eHBdbIZuaWdWW2BXXGZrZFZiVV9RX3B4eGxrdmVqa2t2fXFydHNhb3VidHuBeHV6g3WAgX+BeYuFg317bX9sZHhuXlduZ2h1a3hqaWplXGBaY2lmbHF1blpbYmtkbGx5bmhsb2GNlLiopouhopqmpJmlnKujoYSEmKySnqGJmqaaqZiDgZuKfpaTh46KiY1yg3yPfX6PhXuXjnNyg3CVhXt9kouGhpCFeH2AhpmkjnynoYuGkJCFloOGjph3coWphY6RnZCInp6IjJuon6Cqg4mOlZp+fomWraiPkqaPd2+ckIJ5kW9+qIVwfZVxa3B9gZ+Mf5OOjGhtXYOLjJybno5zlYuIcXRrgnZ0gVlyboaRgX1+jGpdamR7hYSJgGBpeHqbe4KLgnWBhYJnd4qGa2FwcYF2XnKKgYiPppWFZYyPg253i4Rxho96cGZnZXuDepZbXGpnbnZbe3l3dW5zc4JmXG2Ka2tiWlpfWllscVxfYVpfXWZ0fnp0b3Rja2trfH1ze3h0ZG11aG18fnZ6fHt6eoCAfm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VubGdzeW9oam1gi4uqsKGQo6Ganp6Ynpmoo6N+g5mtjZ+ViJyikaWVf3uYhHySmYmIhoeKc32Ai3aFi4GElopxb4BymIaEfpOEg4aKgXqAg4uboJCCp6GHeI6YiZWLi5yXhYN6rIKRl5mUip6dh4ihq5+ioqOLiJObnKOZlqqhp6egkpuHlY17d42OhKd+f5KRkpOcsqablZ6QjbKTl4SljIyVm5+JkJuCiJGKa3yOd3hlgoaQi3yJnYSHi5CIiICEhJB3fHl0maGIhomeioSUfn2KgIB1b3OEg393hoaKj6aQg4WNh4ONkIx9iIyKkYN3bIKEfXqZanJoYXSKcH16d3dvdnSBXV5vhmhuX15aXV1UaHJWY1xcYmxodXx8c29wZGtqaYB8bnl/cWpwcGxngXtygoB4f31/hHttgoyGfHp4fH16g3lOZHZqcm1wemVrZWNiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZIyHnbmelqKhmJWYmZWZpKGefICaq46ejYagnIueln15lIN7jpmJhoSEhm54gIBygYd+iZSEbWt+epeHhIOQf4CGhIZ9h4SOm52Sh6ufhHKLkIaTkYudkX2NeqqEjZKYlo+cloeGm6afopqdhoKRmpmYkJqmn6WdnZCWgJCJdnuHjoSle3yOkJGGmKqhnZOdj42qjpGAnYyJk5qego6XfoaOg294hnJ1YX+Dj4Z1i5iBg4+ChoV+hYSUbnl1dJKhiouFmoSEjHN/iHx9cnJ7h4N7eIqOg5Kmj4WDjoGEiomKd4aJiox9b2x+gXxuaGxtZ196f2h9e3Z0dnV7d1xfcH1udWBjW11eUWduVGVbXmJraXZ6fnFsbGRramiBgGxzgWxsdW95cIV5boeAdoKAfoV2cYKNiH57e3x/e4KKYGl8anVoaYJlamNgaVxjdWhvYnRtbFVjcXllcHp6cmVqbWyLiZ63mqGjn5KRlpiLmp+fnnt4nqeRnIqHpZSLmJl5eoyFfImRg4yCgoJue394c4GFfYuRfWtofYKYiYGIjnx+hoSHfY+BkJubkYmonIBwjIuMk4ehooqFjHyokYiQkpeTlpN4jKOgoJ2WmX+AkJqYkoyao6GjmZeRm36NhXiAg46GoH9+jIyPfJikoKGTmZCPpo2PgZqRiZOXm36Tkn6HjoF0dIJwdmB+gI2GcYqVfIiMcYx/goWGjmh3cXiLmJGPfpd9h4pygYZ7fHF4eoqEenmQjIKVpZOLhZB7hoeHhXaChImIe2ZyfH95e3FsamZffnNofHV2c3xzgGpeYHN2cHdkY1lfXlJraVRkWV9haGp2eYFxZmtkbGhlgIFrbX5ob3FsfniHemuMgXOBgX6BdHaCjYZ/fHp/gX1/j2pyg25zaWKHaGxiX3FWdG9tbmB4aG1XanR2Y3V6e3Jiam95iY2espKlpZyOkJiPhp2gm518dqWhjpiAjKKKiJqWeHuGh36DiX+IgoF/cX97dHaChX6KkXhnY32Gl4qCiox5fYCNg3mWgZWYlo2WoJt+cIyCkZSGppuHjYmDppWFk4uWl5OSd5GdoKGYk5Z5fo6Yl46Wmp2knZiSlJt5j4WCd4SWjZ1+gYmNjHKXo56hk5mOj6KMi4OWmIOSlpl/mIx8iI2AdnF9bnpkgHyKhXCGk3+QgmyHgoGAiYRldW97hpKXjHyTd4qIe3+FfHtxfneIhXmEj4mKl6KVgYOLd4iEg4J3fIKKhndgeXh9dH94Z2xlYX9pandzdHV9cXxiY2FzbnVybWFaYV5bbGVSY1hgYWhrdnmGcWNqY21laH2DbGh1aGxwaYB9gnltkIZxgISDf3R8g4yBgH56goN+fJBtdol0dG1limxqYmN1VoRpcW5geGdsYmp2cGZ5fHlxX3FshoWPnK6XpqiejY2Xh4afk5eZfXiqnIqZepedi4yYkHl7gIt9fIN8gIKBeHR5enR9gIR/iYuAZF59i5WHf4WHdH1+in99mISXlJeMpKKYf3OHe5SSiqePjI6KkqCRg5GQlJeRi4GPmKCakpCQc3+NkpSJnZ2eppiYjZWWc42OimuFl4+ZeoeIkIlvl52ao5OVio2ejIaCkpx/kpKVh5mIfIqJgXlxemt1bHx+i35thZKClHhwgoN9fop/ZHJpe4CWl4R+jXOPiIN4hn12d398hYB8goyEjJSkj3iEgnSJh32AdHaBiYRvYXt1enF9b2JvY2R7Ym5vdnN4d3N0YXVgb2x1bm9cXF9eXmteUF1YY2FobXR7iGtfamZqY2h3iG5mbGhqbGiBfXt3bpCIc4GEhH10gYaJe4N9eoGEfX2OcnqLeHhubIdqaF9pcmKHaHFvZXZnbmxheWlrfXt4cGF3bYuAmZmqoKOonYqKkYaLnouVmH53rpmNl32fk5GWlIh3fXuKfHuAdnh/gHB0dHtvhX2BgIp/fGFbfo+ShoCEhHN6gId6j5KIkpGck6WclYJ9gn2Oi5KkiY6KjZeajYWRmJOWj4qIjJKdk4+LjG6Dj4+RiJ6ZoqGXlomWkG6ImYNmhZiOk3qIhJCKcJWalKKSkomLmYyCf5CefZKPkoyZjnuKhIdzcnVrcG51e4t0boaQjpJxdYB7gYGIfGRwbHh9mZN9hIh0kIqAc4d5bn99gIV7hYuIhIyVqIx6h3x+i4V4fnFwgYaEY2h5dHVwfGJfcGFrdF5want5eGxzcGV4XW5sc21zWFpfX2JrWlBXWGVjZ3FxfodmXWloZ2JncY1uZGlnZGlogXp3dW+OhXSBgoN7dYKIhXiFfHiDhXqAiXd/i3t6cniDamtfcGh0gGpyb21xZ29sZXxjboB6d3Fsd3eKfqKXoaigppuHjIqCkJ2Hk511gaqVk46HoYyVk5CAdHt2hXh5f3Jze4VrcnB6bYp2gIGHbnFbWH6RjYiAgIB3dYGAf6CGkYuSnZihlZh4ioCBjYmcnoqPhpKXloWJlZmPlouLjY2NnYqNj4NtiYuQkIqdlqGcmJSFmIdqhKOCZoWdipB+i4OLgXeTmJGekZCJiZWNf36PmHyRjY+OmpJ8ioCCbnVwbG1vcHuFaXODjpiKcXeAdIKIgnhmcm51gZmOe4iEepOReXaHc2+Ie4WLeoqFgoiOm6OHe4N1gYt/eHlvbIGEgl5ydHJwcHhaXnBgcGpeb2p9enBtbWpsdmBwb2pxbVpYYWFiblhRVFpmZ2N2b4SCYl1rbWRiZmuSbmBmZl9na4F1cnNwi4B1f4OAeHWAi4B5hX93h4Z3g4V8h4x/e3aKf2pxY3xjhnxucWx0amhvbHZ4X3F/eXx0dXSAgn6klZqtnqeWhY2Ef5eUg5CgdYuglJOGi5uMlY6LenJ4dIJwcoVzcXWIa29tdW2IdoN+gG1uVVGBq5WHgniAd3ODeoKggpKCk5OYnJOaeJJ7g42TpJqTjomVmJKEhpeZjJSLiY+PiJ6Ej4p8c4uFiY6InJqfmpaUf5N+aIWch2eFoIeRhJGCiXGDkZePm46PjIyPjXh7kpB6jouMkpaMfIh8gGt2am5rbGx7fmF6fo6Wgnd6gHiDjHx5Z3Nsc4eVin6IhnuTj3F5g292jHqJi3qIfYGLkJ6dhHx7d4KLfXdxamyCg3pgeHBubHJ0Vl5vYnJgX2xueXBob2Zmc3RocGthd2VdVmZgYHJTUU5cZmVdeXCIfF9caHJiYmVmkmpfaGRbZ3B+cGtxdIp9dnyFgHR1fox5e4aBeIiDc4aFfoyNhHt5lXhmcmqDYIh9b29remBqbnR/dV90fXiGeHRzhXx4oI+ZsZyljoKKf4Oah4CMnn+LmpOPhYiYjo6PhHd0dnOAcG+Fc3Bxg29qaXZug259fW11c1JNgt/IktaTfHB1g3aEoIOTd5SRmZyQmXuUc4WQn6GTk5CKkpuThn6WloiNjYiRjIicfo6AeHqNfoiMipycnZuVk3qNdWeIkYZsiKKEkYiXgoVjjJGZjpWKl4uNiotxepSIe46IipORiXmFfH5se2Vyb2treXlcgHmQjoB7fX5/ho56emhyanOKj4mChYR8lIprfX5uf4t+i4d8hHmBj5WamYp8dniDkHhzbWdxgIRtanRvaGp0blNeb2RwWV9rcXdma2piZnhyb3BjX3dgYFZrX152UE5LYWdjXXpwiXRcXGV2YGFlZY5jYWZiWGlzc21qcXaMfXR5hoJ1dn6Lc4CGf3qJfnKJh4GRi4h8fph2ZXNufWWIfm9wa4BabG55eXNhdnp7jXZyd4p3eZ+Lm66boJCChXeIlX59ip2HhaCRj4WMmISTjoeBdHdweXFuhG9tbn5yZGV4cH1ten1qaGtjpJrB3K7voXNsdoR2haOGkm+WkZWglZyBknKFi6OXiY6VipCdloOAlZCFiY+AkYqJln6He3V/iXiGhI2cm5iZjo92inZuhYiKfYqig5CJnISFXouTl4qOiY6KioSJbXuWgX2IhYmRj4Z2hX19a31keHVpbnhzWIh6koeFeX6AgIWMfnhlcml/iY6JgoJ/i5aFa4F1bYeQgY+EfoJ6f5CVk5iPdXN3iI11c3FndXqDYnRtcGJpdmdSYXFnbFVfbnR5YXJkX2h9cHJuWmNyYWJXbllceE5NTGRnYl53c4ltXFxkeV5gZGWFYGNjXllqcmtua3J3jH50d4SBeHd7iXGDhH1+iHt0i4mHloaMf36Xc2h1cXlti3pudHCAV3F6dnlxZXd5hoxodoCJcn+ch5mnnKOShX1wjJR4eYudhIWhjY58lo2AmoiEe3N3cHNqb4FraW18dV5heHd7cXV7Z2BkfOvatcnD3IhzbHSBd4ubiY5qmJCPnZaTgYlxhYmgjYSLlYqMmJN8jZOIg4mPe5CLhY+Bf3Z4g4Rzh4KTm5eUl4aMdYd/cISBiYaYoYKTi56DiWGDlI+GiYaJjYeBh2p9lIB9g4SJjo2CcYZ+f3F3aHZyaXN3bFqMfJKDhX1/g4CEioJ1YXNriIGPioF+fpGQfW2Ba3iFjoWRg3yBfH+RkpCWiG5xeoyGdWxxbHJ5gWB0aW5da3ZgUmVxaWZTYHB2dGBvYF1ognFzaVdnaGJpWG1WW3VMS0xmZ19icnOFaVtcZXleXmRne2BkX11Za25mb2lzeIp+c3OBfnp2eohzhYN8gId2d4qGjpmBjIJ7k3Vsd3V5eJN0bnh7fFh6hnGAb2d4d5KCY3aGhXGKloWZoZqiiodzb5OLcneOnH2KmomJfJ9/hJp/gXhyc25vZHJ+aGZsd3hbX3l7e3FxgGphZ2F/1baOkKZ4bnF3fHGTkY2HapmOiZySjIZ7aYeLmYaBkpGGh5iNfI2NgYGKjXuPjX2IhHp0e4N7cYaAlpqOk5SBiHWDhXWDf4qSnJ2FlI6ffohhf5OHhIiEiY1/gINnfZGAfn+CjI6Qfm2CfIJ0a213dHN2dWtjjYGPf4V+fIR/hIh+b19ycIR7joyBfH6QiHlwg2Z5goqGi4J7hH1/k46PkoNub3mMfnVtb2tse35jaGtqWW52WlJqcmliUWJyd2xiZV5aaoNtc2JbZ19kbGBuVVtwTkhPZ2VcZ25xgGxbW2NzYFxjbHdkZV1dWmtsYm1qdHeGf3Fwf3t9dXiGeIWCfYCHdXmJgZKWfImGdomBcHd5e4STb218gXdeg390gW1penSUc2dzh3xykpGDmp+boIaIdnaVfm12lJd+iJGEio6afYyadn12cW9samF1fGZiaXV6Wl93fHptcX9lZGhnV52PXnFzlrzEhHZxlImQfnOYjIadk4yIdGuIj5WAe5SLgYSbjHyLhn18iYx/lIh1iYV1dn2BcXWGgZ6VhpWPgoJyf4d0g3uJl5yWhpONnICIZX2Sgn+Fg4mJcoJ+Z32Le3l/f4eLj31pgH2DdmZveHhzdnNsao2FioGKf3mCgISDf2pecXd6fYyJhXuAj39+coBoeIKGioWDeIN8gJeMj4x9bmx6iX13dG9paH13ZV1xY1hwc1NUbnNpYk5ndHhmYF1cWG6Ab3NZZWJdam1gcE9ZbFJEVGhhWmtubXtvWltebGNaY292ZGdcXWBramNsaXN2gYNxbn57f3R1g3qEgnyBhXZ+iYGWkXiDinSBiHN5eX+OkG9vfIFxaYF5en5tbXx2lWtqeIR0a5SNhZ+YoJqFiG59jHZqeJiPf4KKgpWYinqPlm96c3FsamRgdHpoX2Vye1phcnx5ZnB6YWVljrGyd0piWqTZ0Jdye5GLkXh+lYuFmZKNhm9shpKRenmShoGEmYp8h394eImKhJaAb4qHcXR9e2p5hYOlkYSTjYN/b36CdoJ4hZqYk4uSj5SFh296koN9g4OJg2+CeGiAhXhyf3+Diod8ZX1+g3VjcHKAaHhxb3WYjYWCint2eICEeYFqW3B8coCHhIl9hYh6iHKAbXCDho6Dg3KDeICZjI2Ed21ufoR/d3plaGp9cmBZd1pZcm1OWHJzZmBKbXZ0YV1bW1l0fXJvV2ddZmpwX29OV2lSP1lnX1twamd5cVxaWWtlWWNweV9oXV5lbGhmbGlxd3+Hb21/fYB1cIF7gIF/gn92gYWJl4pxgo1xe4Z9enqElIx1anp/a29+dH99b3J8e5Rwb4B/eGaSioKhmJySgoVnh4RwaHqXiX5/hYKZioF8jY1peHJrbGZfYW95bV9ib3lcZGyDemFxdl9lZdXrvosyOj6LjoByeYWIjo12hJiNf5OOjX9ubIWNjHV9j3+FgpWIfIN4bnaHhYOXd26IhGx1e3RmeYKDqIyDj4yDfW5/dHWDeYWbkIuPkZKMi4Z+e5KHeICEjYNsgHJpf354bXx7gYqDeGJ5hIFxZHFofm10cXSBm4uAf4V+c3V+gHOAb1trfXR4iYKKe4Z/fIh4eXBriIKPg4lxgXh/loqKfnRtanaAgHV1XGlpeHFZV31TWnFlTFtzcmVbSnB3b11bWllddH50aFliW2dlbmJpTFdmUT1eZl1ddmZfdHBbWFRvZFpkcHlaaF5gZ21naWxpcHh9jmxqgoR/eW6Ae32Af4J6dYKBjJOFcICLbnd+gHt7iJOJf2h7fmt0fHKGe3N3fX+MeniEfnxrjIyDm52WjIGAbI1+a2l/j417fn+DlIJ/fYqIa3VxZ2hjW2Jnc29fYWx0YWhwiXphc3ReY2SboJBuXDVZr7V1aoCJfZKGdoaYh3WPjIp3cGyFg4d0eYl4iX2TiHp+cmd2iH59l29whn1od3luZXqIhKWHgYeNin5ufnV+gHyLmIaBk5CXiIuEiXyPiHF7fYV8aX5taoB7emp6doKHgHJgd4F+cWRyZ3WCbXV7hZWRgXyCf293eXx0fm1XbX52c4qBhneHdYGJeXhybYiAj4CEcn58fZKIiHpubWltgoF1bl1oZnRyUlt7TlxxXE9ccm9kVktzeGpXWVlaYXGAdGBdXWBmZGhoZk5aaE5BYWRbYHZhXHVtWFdSdGFaZG5yV2peYmhrZ21saXB3fJJsaYSKfX1wfn57gX+CeneAgImLhHJ7h29xd4N/e4qNj4NqfntueHl3ind9eICCh3+Df356bYWMiJijjYSDe3aMeWtthImSeX17gpGAgH2Kg3BxcGNmXllnX3BwYGBocGZqb4p1YXRvW2FkaXZ7f76cpqPIuHKFg3OUfXiHlIR0kY2IcnNwhHuDc3WGdIh3lIl5eXFjd4Z5gJNpcoR1Znd2Y2p8g4iegoB/jo59cn5zg3l/kY+Cd5WNlI+Hgoh6iYlreHl+dWh6aWt/eXNpenaAg31oYHeHfmpqc2h7gGl2gYyQlH56fn5xe3Z7dH1hVXV8cnOJg4J8gnCGiXd4cG+Cgot+fXh9fHWNhYN2aHFobIiCcnBdaGN0bktldkxeb1VUWnNtYlFPdHhhUldYXGFwgnNbYFxoZWRjamRQW3FJRGRhXGRxXlx3aFVWVHdeXGVuaFZsXmFqZ2Vvb2hwd3uTbmmIi3l+cnt+eYKBgnx2fYOIhoNwdoNybXeCg36Ji5R/cIB8eHl6gYt0g3h/gYGChHmAdm9+iYubnoh9hnp3h3xodIaNkXp/f3yJhoR2j4Bnb21fZFxYZVltc2FgYXFsbGiJbmBzaVleZG2Ad6naqseGh7JyinhwjXV7h5CBepSKgHV0dX53gHBxfm2FdJSGeHRsYHqBeYiOZnGDb2d1blttfYGQk4CBeZKSfXh7bYZ1gJCLg3OVipCOh4WFe3+FbXV2f25od2VtfHZtand2f398YWJ4hnpodXVjfnpndIaOjJV7dIB1cYB6fGx/WVVyfW90g4Z/f3hriIZzeGp0f4ODfXp8d3tyioB8c2dzZW2LhG10W2pfdmVIbm9MW2NYV1Z4bWJQU3R2WFBVWF5gcYRvXGBjbWRjXm5iVF1yR0NmX11maF5ae2JSVlx1W1tna2FWa19hbmZmbHFocHZ4jnRrjo11f3Z4fXeBg4F7dH2DiIiDb3F/dHF1foaCiY2Ke3d/eIR8fYWHeId8fYF+hIB7fnN2eYyOn4yJeol3dYN5Xn6Gmo15h4N0hoaEd4l7Ym5sW2JbW2FWanRjYFtob3Bnh3JhcWZXXWNrf3zKzoe5omttbottcoVyfYWLf3uShXp5dHl1dXtqbXVjhHaSgndwZ158gXmLiWVxgWpqcWNYbXuGnImDgnOXlHd+e22HcICJioZwlo6QiIWLg3p5fnFxb31naHJibXhyamxxd318el1leYB3aXV4ZoJ2Z3SHjI2UfHKHaW5+gHltfF1XcH1tc3+KfIFubol/cHZndn6AfoF1e3F6c4Z7eXFlcmFujIJsc1hrX3hcSW9sTVdWX1RVfGthT1R1clFRVFZeYnSFaFxga2pmYlluYVhicEdBaF1gZl5dVnteT1ZkcFpbamhdV2dgX3JmamhyZ3Bzd4Z4bpWKdH96d355g4eAdXN/hoWOgnBwe3d3dXmHhYeMhnp8f3WLfn2GhISHf35+fYd/fHh1eXeRk59+jH2LbnWAeWSDiJeGdJKKb4WFgnqDdGNuallfW11dVGdzZWBZZHJyZ4FzYmtkV1tgaX94vq57n7duYnOHaHR8cnqDh3t+jYB4eHN3b3t2ZWpuYYd1joFzamJefnh5ioRmcX1oamtbV294iqOBhX9xmZNxgHh0gW1/gZCGcpSHjIeDiIV9eXRyb2h5YWptYG12a2drbHl3endbZ318eGVzfW6EdGV1ho2GlX5wi2ZreoN0bHRiW257a3R8i3qBZnSGfW1wZ3R+d31+cntreXuBeXdwZWxhbYl+bW5Wa2B3VktrbE9ST2lOWXxnYk5VdWtNUFRVXmd2g2ZdYXBoZ2BXaV1ca2hKRWpaYmRXWVV5Wk5XbmpZXWxlXFllY150ZmxkcmdycHSAeHCZhXZ/fnh/fIWHfXVzgoeAlYJuc3h6enNzhYeIiIR5gX12j399hImOg4GDe36Lg3t3fHd3mp2XeoqDh2l2fnxshIWUgHKPgnGGgn6Cf29mbGdXXVtcWlNkcGVfWGNydWl2cGVlYldcXGiAcG9ygHOJZWV5f2p0dnNzg4V4gYR6d3R1bmt6cGJna2eGdI2EbmZeX3xve4l+aGx3ZmlkVldycI2nfIR8dpaQc3xye3ltenqQhHaXe4eGgoaDfXVwcm1ndV1taF9sdWRnZml6b3tyWWeBdnVocIB4gnVhd4WLfJSBbotqbXqBcWVzZWBseWdydol6fWF1g3Zpa3F0enB5eHJ8ZX5+fnh2bmNlYW2GfG1rVmpicVRMaWtQTE5wSF57ZmFNVXRkSk5TV2Fqd35lXWdzaWVfVmNXYnBdS0trWGNiVVRVc1dNWHVkWl9rYFxaY2Vfd2dtYnBpc29xfnV0mYF4f4B4f36FhHp9doKDfpiFbnJ0e3p0cYWFj4KAeot1dZGAfYGUjoCFhHx+jIZ6foB2e6OminmIhoVsdXx7dYSCjHpvhXN6hX2Cg3VuamhlVl1bW1pTY25lW1hhdHtqaW1oX2JXX1tpgGlrb4BnbGFoenlrdHR0b4aCe4B9dnVuemhqeWpfZW5ogXeQhGdlWGJ3aX6Hem9pb2ZmXVVYb2iPp3aBenyRjnh1b35ucXR4jn53lHSFgn+FiHZqcnZnaG9cbWVebXNfZ2FqeGh7bVttg3N0am+Afnl3YHaEhHiPhXOIcXB5f3FjcGhbbnZkcHOHe3hhcoBwZ2l4c3Frd3Z0dWKDe353dXBjY2NtfH1ra1VpYmdUS2xoUEdSbEVheGZiTVRyXUpMVFlka3d6ZV9tcGlkXFZfVW9vV0pTaFhmXlhNVWxUS1t5X1tfa11dW2JlYHpobGFvb3Vub3d1epd9d3+BeYB/h4Z6eXqDfYGThHF0dH55dnSFiJB9gH2QbHOVgXuCn4V/h32AfoaCgIp7doSsn4B6iIeEbHKCeXaBgIJ0bodvfYB0ioBqcG1kZFhfWlpaVWJqZ1taX3WCaV5ubFxhVlxca4FlcnR9aWpdbHd2Z3R3cm6HfH5+enZzbHpnaXhmXWRyZ3p3koFjY1Rlb2eChHd2ZmhpYFdWWWhkkKdufniAi456cHB8ZnhueYp6do5xg31+f4ZuZHZzZGhoXWxiXW9vW2debHRlemlddIBvcmtxe351dWF0hYp7h4eAf3dydX50YXBsWXByYnFxhHt1ZHKAbGBsem9qaHp3dHBkhHR5enVxZGFkbXN+amxUaV5eVUxzY1FHV2JHY3ZmYUtUcFhKS1dYZ2t2emRlbXBmY1pYXVh2ZlRKXGNYaFhZSVdlUUhieFpeYGxbXlxiZF6AaWpfb3R4bm9udoOXeXKBgH1/iIuGfnV2hniGjH10dXWBeXp6goyOfX6EiWp0loF7ip19foV5gHt+fIaIc3GProx8e4aQfmZxiHp0fX12cm+GbXt+bY96YnBvYWVeZVZZWVdjZmtgXV1zhmlZcW5bXldaXGx7Y3F3dm1jW21zdGh1dnFthXl/gXl3bm90ZWh0ZVtndGZ2dpF6X11SZWZqgoF0fWFjaVxUWF5iY5ClaHl0g4aQeGxueWd3bHuDeXSIcoB4e3h/aGV2bWBmYV9qYF10a1llXW9uYnpmW3h8a25ucHd5dHRkcoOSf4eCiHp2b3F8cmF3Y1pub2FwcYF7c2VxgGRebXZpY2Z4enNsbYF0c3xzcWFeZW1vfWVpVGhZWlVOeWBSS1pZSGJ0ZGFJVG1TSUtaV2lscntjbGxzY2FZWlthd1xTS2NdWGlTV0hZYE5HaXVYXmFtW1tfYmNdhWloYW54eWxvanaBkHhtgn6AgZKIhIF2dYl0i4Z0cXZ2gXd8fX6MkIB+k35weJaDfZmSeYCAeHl+f3OIg3NwmqJ7e4CJlXlkdYh5c3l2a3Nwf2x5fHCRcl5wb2BnYmxUWllXaGNtZlxccolmU3JuW1lYWGBsdmRqdWpqX1ttdHFtdHR0a4Z9f4B8d29vbGVpcWNba3JkdHaPc1xXVGRgcX9+cYJcYWNdU1pgXGOTn2VycYSDkHRranlsbm95eXpxgHd/cnl6emRmdWdeYlthaFxed2hXYl1waGF4YVt7dmpqcm93dHN0aXCBlIOGfoR2cmpwfG1ldldbam1icHKAenNlb35bYG9xYl5pb3xsa3N9cnB4a3BgW2VrbXthZ1RnVVhSUXdcU1BZUkhjc2JgR1ZrUUhPWlVra2t8ZW1vcWFbWlhZbHBXUk9mV1dpU1RGWlxPSXJ0WF9jbWNYYWBhXoxqY2RteXhrb2l1eYZ7a4N9gIWZfIKEeX2IbY+GcW93enx0goJ9i4+DgpZ0eIKThoGfiXWBf4F0f4Jwh4J1b6KXdHuGi4d7ZneLb258cGZ4cXtsc3ZzjWtedG5hZ2VrUl1bVmhibGxbXHGMZE5vbl1WWFVnaXRoY3RlZV1abnVucHV1emuIfYB9iHeQc2Nla25hXG5tY3N4h2taVFZiY3d8fHCFXGNfY1RbYFlilpVjbnCDhIpzamd5bmVydXF6a3l0dG56fnVfZnNjW15XYmRZYXVmVV9gbWNhcV1dfm9oaXNxc3B1dWtshJOBiXuFcXJmbntvcW5TWmVqZXFzgHZzYmx2VWJxa1tebmR8ZWt1fHJycmptX1ljaWp4XmZUZVVWUFVuWFJXVFBIZXJfYUZYak5IV1RWbWhkfGlrd2phV1xVW3RkU1JWaFFZZlRTSFpbUE54dlpeZWxpWmJgXl6PbmJma3l1bm5pdnZ/fm2DgH6Gl3t/h4GJfmuTiHJndIB7dYCDfomPf4uTcn2KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYt3eG57jWBkfHFneXN5bW1xdoNnZHxsY2ZnaFNfX1VnYGxvXF5ujmhNaW1gVVZTb2ZzbGV4ZGVdWXF1bXJ7eHNtiXyBd5x7emxiZWxtXmBuamVweX5nWlZYYGt3e3pvg15iXmdWWWBXY5yIYmtxgYZ8d2tqdmxbdXBqeWl1cm1ue4ByWGpuXlldVmJkWGVxY1ReYmliYm1aYH5rZmtzdW5td3ZraIWMf4l6h21xZm97bHFsYlhfaGhvc4Bzc15pbVNlcGRVYm5heWJvdXt1am9sal9YYGZodV1lVmJWU09ZZlNPXU9PSGVvXWNHWmlNSV9LWG1kX3hobn1kYFVeVF10W1RSX2ZOXWJUU0pcWlFadXVcXmVtaFhiYVtejnFjZ2p3cXNtZ3ZzeYNzgYN7iI1+fIqIjnlukIp0bHOBc39/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2Ojo6Njo6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6OjY2NjY2NjY2NjY6Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCS5KamZmZmZxbQURERERFOS8wMDAwLEiFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTM/k56cnJycn1IxNTU1NTcnHB0dHR0YOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaNjo6Ojo6OiIaGhoWFhYSDg4OCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk5GLkY2Nj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyMjI2NjY2Ojo6Ojo6Ojo6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoWNh4eMhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCQiIyGhY6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkJCIi4eHjIiIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMkIiMhoaIhYmPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2PjI6KioyKjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp5ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5OUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WVlZWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpKTk5OSkpGSlIiMlJOVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKRkJKRkpOQd4yTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpB3iZKRk4B1jpKRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCQknlujZKOdHaMkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Rf2d4kod1d4uQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo+CYWmGemh0io+Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjndga2JnZG6LjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLiouHZG9uW2pybIGFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3F7eHl7fHt4d3t/eHV3dHR2dXV2d3BjcHBka3JxZGhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZGVpbXNwcnVrYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpdYGFjbG5vb2taWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTlBeaWZsbmtnY1FQU1BQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OT0xMVWRtZmpta2lmXFNPT1BRT05OT05PUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0dJT1VgaG5oa2xraWpoZF9XT05PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVEUl1iZmhqbmxzb2ppamxraWVVSkpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj4+S1ZcaW1sbnlzampsZltRSkRERUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7OztHSj1GWWtud3BraVlHREJFRURHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs+PTo7RltubWBJQT5BQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk6Ozo3OFZkPzg4PDw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT49PT07RVk5Ozw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO11uQD5ERT8/QTxEWz09PTs7PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdIODs6PT1BPElgPDw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUjw9PUlNRkZ2d003ODg6Oz4+VWdAOzw8Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dnd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/eXx3Vjw9Pz09PkVpdEs6PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUBIcnlrYoKEg4ODgH1dPkBDQEE9SXN8WTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDf32EdUxBQ0VAPz5ZfIBdP0NFSUpJSU1NS0VDRkdHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVxQkRFRENXdYaHh35YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+fn19fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIpsQUFWdIeJh4eHiINXSExNTE1OTElHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3Z3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINWbISHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSkhISEdJSUpKSUhGSkpKSklKSUpKSkZJTExLSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpVgYOEhIKChYaGhIKGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjs6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDg4SFhYaIiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJioyMi4qJiouMiVQ6ODY1Njc2NjY0NTc3MzU2ODo4NzY1NjU2NzY3Nzg6Njc4ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIKDg4ODg4WJi4qJiYqKioqLiYqLgUc2NzY0Njg4NzQ1Nzg1Njc2OTk3NjY3NjU6OTo7Ojs4OTg5ODc3Nzk6OTg4Nzg2ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhISGiYqKiIeIiIiKioyKiYmMej45ODg7PD0+OTo6PDk6Ozk6Ozo5OTs6OT09PT47Ozw9Oj07OTs7PDs8PDk6PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXN2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUBCPkBCQEA/PT0+QD8+P0A/QD09P0I/QUE/QT89QEBAPj9BPT48Ozo7OTk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZERUZEQEI/PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NGV4SCg4SFhYaGh4mJiIeGhoaHiYmKi4yNjIyLioqIVkhNTE1LTkpJS0lJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f3+AgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0pZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE5QTkxOS0pMSklJSEpGREZISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7PD06PkA+P0BDRklKUV+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1yTlJPTkxMTExKSEdFSUlESkhHS0pISkdHR0tMTkxMSEhJSk1RTk9OTU9LSUdJSkhJRElISEZGR0dIR0NCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4tfUlJQTU5NS0pHRUJHSkdMSkZLTktLSkpMTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRUZJRkVFQkFCQlxvcnd4eXp6eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxYVlJSVFJPTEtKREVGS09OT1dVUVBPUlNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0dWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hXVWthRVJRUVBJOztSVFJgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTlJQUFBRS0xLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0ZGRT8/QUFFQUNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVtjYFZZYnJdXVZdWlZFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6eXp7ent8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKi3pucFhaXFtSU1JWVlRaWnSDWVV9kGBcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVRVVFdSUVdVYpaAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT0xLZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlRkVX9SUFFOS1JUUU1PWVJNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXZ1c3N3enp7e3t9e319fX59fX1+fX5/f39/f39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1dW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM9Q0lHVkBITkxHXWlQSEZPRkRFRklHSENESEdIS0dEQkFEQE5RTVJkcnR2dXN0dXp8ent7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgmtNRz9AOjs+QEA/Pz5qUUthRUZISUVCP0dMTkdNUVVJQkU/Pjw9PD09Pz0/QUNDQD88PUI+Sk1HVW50dHVzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+AgH9/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqamZgW1FSWlxZXkpKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PzxCSD9cc3R1dnV2eHp8fHx9fHx9fX5+fH59fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBRUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZGSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FXUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxCPWVzc3Z3d3l6e319fHx7fH1+fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMV1laVlhYVlhZXVdYWGhza11WYXNrYWFfXmRhX15ZVFFOTk5MSUhKS0lJRkNRUFNbV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5OTg5Nzg4NTc1Nzg1OTlHbnJ0eHh5e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fn9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTE9SUk9NTU5OTUxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz89Ojg4NzY1OTk2NzY3NVdwcHR3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMSk9SUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9ydXh4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lGTE1QTUcvRV9SPjM/PmpvYVJSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR2ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkREQUBHSEdIRkZISk1MRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydXl7e3t9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT09NUVNMVFVUWFdVTUxLSTw5ODc7P0A+PD1AQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFBSYlxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSEpLTEpGRkZEP0JDPjxCRz9CP0FkcHR3e3p6e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSEREPTk4Nzk/Qj47P0JAQD5BRElFQ0dHSUZJRUJCPz49Q0JBR0lETU9iZVFNTk5XS0xNS0xNTU1MS05OU2ROSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7enx6d3R4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEpEP0E9OTk5Oj9CPzxAQkJBREVIS0ZDSElHR0hDQz9CPz9AQT5ERUNLTlJUTEpJTVRHSUlKTEpLTElKTE1PUFJQS0dDTEdDQkpKTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHh5dnhqcW9qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFIS0RHSEhHSktJSktER0I9Pj06Ojo7QUI/PUJCQ0NIR0pMSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISUtNSEpMSElKS0pNXFJISERORkFES0pNTVBNS01KS0ZHR0pNTlFOTGJtaXZ2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLQ0ZFR0VGRkdFR0JDQD08PTk6OjpBQ0A+QkNERUlHS0pMRklJR0ZGREI7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1ISUxHRkdJSUxOS0lIRU5JQkZNTE5NT01OTk1LSUhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZWtxbHNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQ0NDRUBEQj5APzo7Oz06PT5DQT5BQ0VGSkdKSEtIR0dHRkVDQD1FRUI+QkNDQ0VHSElHTVBKRkZHS05PS0ZISkZFREVJSkhLSUZIUEtDSU1MUE1PTk9PTkpKSE1SVVRST1dkYGFtZ3Byb3J5emdlaGhkaWxmcWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMR0VFR0NCQUJEPUJBPkE9OTo9Pzo9PkBCPkBCREdKRkpGSUhGRkdFQ0JBQUZGQ0JDQkRFRUdHSEZMUUxJT0pKTExJR0hFR0ZEQ0lJSEtKR0tSTUJOT01QT09PTU5PS0tLUFVXVlVUWF9eXGlhbWluaHJzYmVmZWRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJAREQ8QUBAQzw4OT0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISUZDSUpJS01LT1NORFFSUFFSTlBNTlBNTE1TV1ZXWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHJodHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW95TUhHSEhCQkJGRTw/QkJEPDc6Pj46PjpAQj4/P0JFRkRGRERIRkRFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFNPUU1OUU5NUFdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSUhHSUNBQ0hFPEBFQkQ9OTo+Pj08PEFCPD8+QUJGQ0VDQ0hFQ0VFRkdHR0lGR0tIQ0lIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05PUlVWT0tVV1NRU1FSTE9RUE9UWVpZXFpZW15eXmBjXlxhY2tiYGRnaHKFaGdqZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZvdE1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkE8QD5BQUZDRUVESUVGRUdFSEhGSEhJS0lFSkhIS0hGRkxJSEhKR0xMTE1MSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1NSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSENGRUZIRklGRkRJSEdJSEpNSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QTE9QUlRYVk1OVFZUUlJRUExOVFNSV1teXl9dXWBfYGFhX2FjZWJjaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dLTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHSEhHSkdER0lHSEpGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNRV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSUZDSUpKSUlLR0RLSkdISklJS0hKSk5MTkxJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxrVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQ0VFREZCRkZHREVLRUVKTU1LTExHR01JR0pLSEtLSUtLTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZmVxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEQEJCQD5DRkdCRkNFRUZFRENISEdERUtIR0xNTkxNTUZKTkhKS0pJTEpKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0hFRUVCQkI+QEBGR0JHRElFRUVCRklISEVHS0pHTU1OTE1OR0xOSUxLSUpNSUpJSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SE1HSURFRENBQj1CQUJGREhHTEhFQ0NIS0hIRkpMTEZOTExTUkxHTExITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnRzdnNIS0hJQkVFRUFAPkREQkdDSElNSUZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTU1JS0tLU2tiW2leX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERURGQUBCRkVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKSktJSElHS0tLTEdIS0tMTExMSktNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xVWVpdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDQENIREZHQ0lLTEhGREdLTEhER0hQS0xPS0xXTElFRUhJSkhJS0hMSkhGR0dJR0hJRUZMSUpLTkxJUFxXXlBcW2BeTVhZU1xcYl5NWVpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGFhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNFTE1CRERCRUlFR0dGS0pLSEVFSkpLRkVISFBKTU1KTVNIR0VBSEZKSUtMSUxKSEZFSUZERkdFRUpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfYltgXltUWFdZXl1jYmNhY2ZoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNHSEVIR0hLSUlJREZLS0tGRklKTktOTEhMTkdIRj5HR0xJS0tKTEtJR0VJRENEREJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVlVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUNFSElGR0hIRkZKR0hGSEtJTERES0pOTUxMSEpKSEpHP0dGTkpLS01LS0tJR0dDREBEQUhJQj9JSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUltXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHRklHRkZJTEpORkRLSkxOSkxJS0pISUZCSElRTUtLT01LS0lIR0VEP0VDSEhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRW1JbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBR0ZER01SSENRSkZISEhFRktKTVBFRklKS05MTElMTElJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VEV1VFXFReU1ZfWE5UVU5aWk1KS1RgYVtfWF5eYV1OWWJcYGBfYmNiXWFiV19fVFBOT1BYUl1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQQ1ZeSUdHSERGTUpQUEVJSUtLTkxLS0xLSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0FFRkJNSEJLTFBPTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xRU1JVWllXWVhYZFdPU1RQUE5NT1VUW1hYWl1cYGFkZWNnY2tscHNyenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hMR0hKSEdNTFFRSUxLTEtOTVVOT0tLTEdHS1BTU05QT05PTk9IS0ZgRURfTERmY0VNW0leW3JtT01VbVlMQ1BgVWtXZ0pdWFVeRE1RVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhTa1NWVlRbXFtgYGFhYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xIRUdGSEVFS09TSUpGYFNISk9KSU9NUlFLTUxMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUX9RSXxZWXFzWFBtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZWWH9qdHV1X192X1hhW1xmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1OQkRMTEZJS0VRVkxLT0lLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWlJUUXZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zcnt8b315b39yX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5LT0lRUlRZV1dRVFBQUFFLSGd4bGN4cm1bS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en5seHp/b2hvWXZ2anV1cIFgcmd8aWx4fG9eX19iYVteYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0NGUFBISktKS1BPT09NUFpgWlhLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRxbG1ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGZlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0c29tTExbVkhHRUdSUElMTUpLUFFQUFBRV1xYVU1VWVVmWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUxXa2h9bG1seF9bcHp7XmB6c2Nyb3hxaGR8aXJ7XVVMbGB2dWtpdXt7bX54a3xwXV5eYltfYmRkZ2VlZWJaY2Npa2tyc3J3Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ta21PSEpLSElISFJQTE5PTEtSUlJPU1JXUlZUUFdbVlZUVFRhYFBOTUtUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFlSTlBVVFhYWFtaVVJTV1tXWFdaT1NVV1hYUl1ZV11WVFBZUldXV1dYX1tncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlYUE9MTVZUUE5VU05PTUxRUEtKUlFLUU1LS09SVVJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1BRVVVWU1pRT1NSWFZUWVZUWVVUUlVUVFVXWFddWl5hXVxaWlxcYGNbXWJjZGZkZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNRUEtPV1NQTlVQTlFOS1NQTU9VU05STk1OUVRQVFFTVFVOS01PUVRUUlJRVldUWVpbWVNVUlRXV1dZW1RPVFVYVVVaVVdZVVJSWFZVV1tZWl9dVVheXF5dXF1hYV5bYmJjZ2ZkZGJYX2FiXmBoZWZkYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FaWVhXWFpaWFlWXGpkVlhZWldWU1RPSk5WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVk5XUlRVVU9OTVFTVVVUVFJUV1ZaXVxaVldRUldYVltbV1FUVlZWVllUWFhVUlJYVlZaXVldX15WXl1eYFxcYF9fX1piYmRoZ2RkYlliYGFeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF5bWVZVV1FMTVZTTU5ST1FST0xQU1JVW1VTUFBMUFdXUldTU1NYTU9QUlRYVlVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpXV1xeWl5fYFVhXGFhXmBiX11gXWNgY2doZGZgWmNgYV9fZWRfYGNbWlxbXFlaWFlXXFlcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRST1VUU1BXXF1cWF5cX1dcXmpxd3mAYlxbVlZYUU1PVlNOUVFQUlRSS1FUVFlbV1VPUk5TWFdUU1VSUlpPUFNTVltWVldUVlpYXV5bW15WU05UVVZcXFZSVFZWWFlTVFlcVVNTXVhaXV5cYGBgVmJbY2JeYWNfXGJhYl9jZmlkZl5bZGBhYGFjZF9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJRV1JUUFteX15bYFxgVVxdaWpyfXNsZ1xVWFdQT1JaU1JRU1JUVVRLUVdWW1paU09TUlZWVlRPV1JTWlJUVFRYXVdYWFNYXFheXVlaXVRVTlZXV15bWFJVVVlZWVVXWVxVU1ZeWV1dYF1iYl5ZX1tlYl9kZF5eY2NhXmVmaWRmXl5kYWBhYWJkYGJeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWVFRUXl5gX15iXGBVXV5ia3l0bH1sWlVZVVFQU1xUVVRVVFZZV0xSWlddW11ST1VTWFdWVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paVFVWWllaV1haXFZUWl5cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfX2FhYGNdYFRdX2JlZXWBemhYWVlTVlNWXFhXV1ZWV11YT1VdWl5dXVRSV1NXVlVTVFhSU1ZUWFhYXV5YXVtWXV9YX19YXVZRWVRZWlphWVxWV1hbWltZWVpbWFZdX19eY2JhZGRcYlxgZmFkZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVZWXGBhYmNhY19fVltgZGFfenVvaFlcWlVYVFdbWllcWlhZYFdQVl5cYGFcVFRYUFVXVlRWV1JTVVdaWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWltZWl9fYGBkYmNkZWJkWmJmY2dmZV5hYmBjXmJjaWRjZ19nXmJiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheXF1bVldYWVxcXF9bWVtiVlRYXl1hY1xSVllQV1ZXV1dWVFZUWFxcXmBgXWBcV2FeW15cW15YVlhYW1tfYFxfWFldXF1eX1xbXVhbYGFeYGRjZGVlZmJZY2VlaWdkXmNhYGVjXWVpZGVpX2ZeY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlNXWVZXWlhbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXlldXllYVldbXGBeXV9aWl5dXl5hXFtbWlxfYl5iZGNlZmVmYlpkZmdqZ2NfY19hZmVaaWljZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMWFdcWVdcW1xdWldcXV9gYmRiYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpiZWNgUlxaT1hYWltbWldaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfX1xbXl5gYmNcXFdcXmBiYmNlZGZkZWZkXGVmaGpnY2FiXGRnYFxpaWJoaWZkYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxdXl9aWFZbX15dYWFfXltgYWJlYl9dVFxgYGNkZGZlZ2VmZmVeZWZoaWdkZGBbZWdeYWhoYmhoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnZ2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t8fHx8fHx8fHx8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29vb3l+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKgkU+Pz8/Pz11jYmJiYmJi4yMjIyMjYh/f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29ueYB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjI2DOjIzMzMzMHOQjIyMjIyPkJCQkJCQjH9/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXR2d3d3d3d3eHl5eXp5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx2dXV1dXV1en19fXx8fHx9fX19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnd6eHp6eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eH15fX16fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHp9fXl8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8e3x7enx7d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt6fXx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl4eXh6enl7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzcnJycnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHN0cnFwcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3Nzc3Nyb357b29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzdXJycnBzmHtvcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcXSVfHByb4igdnBwcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFycJShdXBznaB2cHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFvibGRbn6koHZwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcnCDs6l8kK+jd3BxcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycI2xp6uor6R0cnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3N1n6Kis6Wbo3pzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHd4eIClnpqln6Sjj3p5enl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fn18e3x9iqKQkJeal5mSe3t5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX1+fX6GpqmknqCblZV/f399fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgIqxqKmioaGro4J+gIB+f39/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f3+AgICKp66fqKOgoaWppIx/fH6Af35+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B/gIGIlqqupJukoaChoaGpqp+OgYCAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4KGjJqmo52cmqCUmaGgnp2eoZ+ShIGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI+Rj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYKDipKVmJeZmIiQnZubnJiQiYWDg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoCBgoOMlpmViZGZnJKLh4WGhoeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEg4KCgYGEkJeTlpmQhYeHiIiIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SEgoODhZGXiYSEg4OFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKCgoKBiJGCg4OBgoCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAgICJk4CBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYmGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/f42XgoKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmIqDhYSEhIKAk5uFgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJKSk4+MjIqFhIODg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fIucjYCCgYGCgoWUlIuBgoGCg4OBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUk5SSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZeLgIOBgYGAj5OMj4GCgYKCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4p9hIWDhIKDg4KOiYWMgoKDgoKCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUk5KSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf359fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMi4iFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFgoGBfn2Bh4aDgH5+f35/fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWGho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYSFhoaGhYWFhYaHh4aGhYaFhYaHh4eIh4eHhoaGh4aHhoaHh4eGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoeGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iJiYmJiIeGh4eIiYiHh4eHh4aHhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjImBgIGCgoGBgYGAf4B/f357eoCGh4iKiomJiYiJiYmJiouKiIiIiYmKi4qKiIiHiIiIh4iIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhIaFg4GBgoGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fXx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGh4eFhoiIiYiGhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODg4ODhYmKiYeFh4WEhYWCgIGEhIKDgoKCg4F+fX5+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4iJh4iGiIeGiYmDg4SDhYSEhYWGiIiGhYODgoOFh4aHhoaEgoKDhIKDhISCgYKBgYGDg4SDhJGSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDg4WHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGh4eEg4GDg4SFhYWDg4WEhISEhYSFhIKCgoKEhIGCg4OFhoWEgoGBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhISFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4GDg4ODg4KCf319f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIKDgoCAgICAgYGBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn1/goODgoODg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f3+Afn2Af3+AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/f39/fn59fn9+f4B/fn9/gH+BgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+BgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gH9/f35+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+fn+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXh9gYCBgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf3+Af4GAfn9/gH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f3+Af4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX18fXt6eXl5eXmAgoKChIOAgoOBgIKBgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGBgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkImJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICBgYGBgH9/f4CAgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSEhISEl5eDg4SBfX6BgoKBgoGCgYSGiIyFg4KCgYSCg4OCg4WEhIWDgoODgoODgoKCgoOCgoKSkIuIiIeJh4aGhIaFhYSEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaHh4eHhoeFf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GDhYWGhoSDhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gHp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSCgH+Hg32DgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMi46KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fXyAgYB9ho+Bfn2Cfn9+gIJ8fIB/goCCgH59e4qCfYB/foGAgIGCgIKAgICBgH+LlI+MjI6OjYiIh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3t6fIKAgX5/gXx+fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX18fXx8fYB/gIB+gH5+gpSSjY2Njo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoGBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYODf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fX1+gICBgH9/fn19fX1+e3x9f39/gH1/fn+MkY2MjY+OjYeEhoaFhISDg4ODgoODg4OCgYGBgYCAgYGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX6Afn9+hJKNjYyPjYuKhoSGhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fX1+foGBgoOAen19fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fH59fnx7fHx8ent6fX+AgISDgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2MjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx+gIKBgICAfXx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgYKBhYaFhYaGh4WBhJGPjYqKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4CAf39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fX18fHx7fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomLiYWIko+MiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx8fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgX9+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fX19fXx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uKiYyRkI6KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99fn9+e36Bkox8fX+KgI2Mfn59fX1+fn1+fX19fH59fH18fX19fn19fn58e3t7fHx9fHt7e3t5enp4eXt+f4ODhIeJioeJjpCOjImJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgYCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6enl5eXt7fn6AgYOHhIiPjouKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn5/f319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY6LjIiEhYWEg4OBgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYKCgYGCgoKCgYGBg4ODgoWGhIOBgICAg4F/gIGEgX5+gH99foB+fX5+gIB/gX9/gH9+f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fHt7e3x7fHx8fXyKi4mIhoaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fYmHh4WFh4WEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoKCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+f3+AfX6AfX19foB/f4GAgYGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4OEhIWEhISFg4GCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SDgYB/gH+AgX59fn5/fn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn19f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4J/f4OCf3+Af4F/gH98e3t6fHt8goB/gn9/gICCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDgoOAf3+BgYCCgYGBgICAgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfX9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhIKEhIWEhISBg4KBg4F/gIF+f4B+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYOCgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+Af4CAf4GCgYB/fn+Bfn+AgoGAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fXx+gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f35+fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAe4B+gIB/gYCAf32Bf35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKBgICAfX5+f4B9fH58gICBgICAgIB8gH+Afn+BgH9/foF/fn9/f319fH+AgICAfn9+fn99fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn19e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgYCAgYB+f35/f318fn2AgYKBgICBgX1+gH9+f4F/gH9/gYB/gH99fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KBhIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYGBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/fn+Af39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f356gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gIB/f39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBgICAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXx8fHh4dXh4eXt8fH18e3x8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgoGCg4CAgoGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgIGAgIGBgIKDgoKAgoGBgoGAf4CAf4CHfn58e318e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYOCf4CAf4GDgoGAgYGAgH+BgYGBgIOAf4CDgn9+f4KBgIB/foGAgX+AgIGBgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYOBgoKBgoF+gICAgoGCgoGCgoCBgICAgoKBhIB+gYOCf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDgoKEgYSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGCgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SDhISEhYOEgoGDgoKDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoSCgoOAf4CCgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7fYF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoKCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4KBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhIWEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYB9gXWBeoR/f39/hYSCg4OCgYOEg4SEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOBfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgX+Afn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSBgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhIaEhYWFhYaHhYWFhYWHh4iGhIaFhoaFhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4aDhISDgoF9f357fHt+e3x8fX9+fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYWFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9f358fH59gH59f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoaFhISFhYOEh4WDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4KAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4OCgoJ/gHt9f318fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4eIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYSFgoN+gYKBf4OBf35+f35/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHhIeFhoaIhoWHhYaHiIaGiIiHh4aHiIaEhoaGh4WFh4OEhYSHhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfH98fX1+fXt9fXx9eXp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEhIeHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaCg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICBg4J+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4N/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18gH59fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn1+f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYSFhISGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSFhoSHhoWFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfn1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH1+fX2AfX18fH2Af318hoOGhoaGhYOEg4aChYGBgH9/gIB+f4GCfX5/f36AgIKCgoSEg4OBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhISGhIaGh4aGhYKEhIOEhoWFg4SDg4SChISAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4F8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFhIODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nj07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1NTU1NTU1NTU1NXV1dXV1NTV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fV1dXV1dXV1dXV1dXV1djb3N3c3Nzc3dzb29vb29ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtBPDc9OUFDPUA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi60dTU1NTU1NTU1NTU1NiufIGCgoKCgoKBgYGBgYOLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6Oips7T0tLS0tLS0tLS0tLZkTtERERERERDQ0NERENGU1NTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PEJAODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpKfN09LS0tLS0tLR0dHS2ZRASElJSUlJSUhISEhHSldXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw8PDw+Ojo7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamsztPS0tLS0tLS0tHS0tmZTVRUVFRUVFRUVFRVVFZgYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj08Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tXV1dXV1dXV1dTU1NXV0MvLysrKysrLy8rLy8vLzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7OztPU0M/O0tTPzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXU1NTU1NXX19fX19fX19fX19jY19jY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztCmksXR0qig0M/RpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PUI+QkJAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztKqnayUzrOeo6fWr5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DJl5mFpauhmpOdwJ6YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw5Nj9CP0I6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0aSwvZqLm6GctJicop2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Q1bmch52WrbmGnpavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw9PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P0NGaoo+cgaCWeJuEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD09PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NWnpKWsm6iInHmfqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQTg7Pzw9Ozw8NzU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NLAnaLMtrWvppyKva2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0Y/SEhHRUA8PD4+PD09PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPUpKCPucCjl5edpaeWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQzs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HIxqa9lZGoo6ukm9Cfq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg1MqOk5eQqMmQjbfXwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw8P0dFR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLUwq+ws9DVx8PV0dXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dTW1tbS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY1ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUQ/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKinqKinqKmpqqelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6ioqKeoqKelpKSioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnpqWnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqOioZ+fn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqSkoZ+en6CgnZydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWjoqGhoaGio6WnpqanrKunpqCdnJuhoZ6am5udnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqenp6efm5qboqCalZeWmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiYmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6Gglp6ikpianJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQj9EQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWkpainpqKenZ+hn56pn5CUl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6ampaWmp6alpKWmpqWjoKChoZ6neY6PlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2dn5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqSlpKuwo6Sko6KhoZyilmGRlZmbmZuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnJ+hoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOqsKuio6KhoZ6apnNfl5qZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCin52bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5ydnZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChrZKopaGgnpybnZ9dZJqbmZqcmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoqKioaGgoKiXgayfnp2amKSIWGaZnJqdnpuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuam5qam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2fnp+goaCgoKCjpG+bpJ2cmpqleWJmmJybnp6cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp6enqd5h6SbmpydoHhrZpOdnJ2enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PD45P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZybm5yifoCcmZubnZV1amePn52cnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mZmZqaqn99iZOcnJuIcWhojp+dnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnJ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJyZmJmZmKJ/hoKCmZ6cgXBiaI6fnp2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZiZmZegm5t8epujm4CHa2WQn56en56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubnJqYmZmbqZyIZ26tqoxog4FslJ+eoKCenp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJmXoKaIdF9lnpaCV3J7epucm5uenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qblaKedFJNb5WEeElZcHeRlJGOkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CRkY+nlVM5QHSJcWdFOlVvgYeGgo2LhomKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGg4CKqHlOaFR0i3dlT1VDX3d+gIKSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgn5+gqBfdYxif6eeiF2Ge1Frf32Fjo2Lho2UkouQl4+Ul5KYoZaelpWbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiKhYCCfYyWY7nUj726qbeHdHxpWX+Gio6LjZCZnJSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYx/iI2NjIuHkomVgoHPxJzVrZqwnl+CcVR6kYmJkI+Nj5SUmJCVnJqdnqiusq+wtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTg3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmRnqGdk5eboZqdm6OhnG6PuqS40bGorpNss6dVdJSPi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVKVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6mpsKN0jZV+sbyzq5WHXZbEbG+coqGknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1lLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipamnqKqvkot2e6eXjo9/emptkXpvlqOop6Cioa6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1ZaTlJOUE9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmZyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKaanaSlo6Ghq5R8W2mRfnuAcm9rc3F7e5SdoqKgoZ+hoaignJ6hpaGgpqOinqShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1hPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioKOnoaatp6eirKd9bFNbd29xdmtnZGpmbniBj56goaCenaCjmpaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjX3NfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKhn5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGnqa60t7a5tq6PamNPVm5ra3NoYmRiW2Bmb3aAjZujpaGhopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan5+hpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY21qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqm0wsbGyMe/s6aSdWJgSk9vcW10Z2BnZ1hdW2BnbG91fomTnKSfoaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7LA2OHe1ca3qp2RfGdiX0ZSam5xeGhgYmlZW15bXF1hYmFgZnyhvb2opJihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmxwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW2v8nV1setmI6CdWVgY1xBUWxodXZtYmNkWllaW1hZW1lXZ421wL+2rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZzb3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PDub2+wcjQza2AZl1ZV1xVQkpxaG1ncmdhX1hbV1lXVFNijrzCuLe7sLW2qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV2bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvFwcXFwcHAvY5mVlVXUkhEdGtiYG9nWVtZXVteWGOMusW+paWxtqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH6Ef2lmaGFrbGdudnFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/w8PGxsGxlMfKtoVeVlRPR2JogIuMVlVdYGFdYoOxwbmusqerqKiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8fnRrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMS5tcC2tcnPo2tVVVFTX5ippVFWW15eZpXAt6ars7WtrqWko6ekoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt2bmtpaHVaZnJ4c3lmZl5kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLFvre9w8q6fVVUVEyPrZ5NVFdXaJa7tLGtrLi1sqypo6GtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXWpvbnl4Y2JhYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMe/xcfDx8KLWFFLhrCTSU9VaKDBvb+5vLq8urysraapu7q5t7+ytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGlpdG15bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnNxcXEw8XHyad0TXqyikdOeK3MzcbEwcTHwby+tLGwsMK+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGtqd2xpZXVudGNdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFwcHAwMbLw5NkfWRLg8nJy9DFtr+/wMC6u721s7PAv7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnY2pkYmptbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHCvbzBwMDEk1BJc8nOxMjQwa+9vbi5u7u+t7Sxub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjY2NqYmdjW1paXVlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Bu7/AvLvEvbrAxL+9vLi7v8V5SaDNxL+/yb+wwb+6t7u+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdWOvL67w7W6x7e2ubu8uLm1usTKl02lyMC/u8G+uca9wr+8xbi2t7S4tra7u7m2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHFtZWVmcGpla2hYWU9LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNDFea3Lvce3ubittrS3ubO1srvFyp9QpMm/v769vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NmYm5gXFRIS0tESkNDRz46Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTYrnaEvsjPwsC4rrW1u723ubG+w8eYUaLOw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHFmbGludG53Y2diXGNRS1VIRUVDR0I8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0Zlzd7HR0czKxLW6v8TIvr60v8DDjVWWz8bCvsG8v8PMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGxsbl9jXmFiTkhOP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysKHdXeozMzLzcrGwsPLzsG8uL26u4Fdi8zGxMDAv8TAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1teHxgcWNbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u6rdvCvra+wL6+uqacqrO3xMCme3l8n8TGy8jBw8DAycrBv7u6sq56bHrHxsXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3h0aHBdXF9cWlFFRURNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFtm2vzr22ucC8qn1uaG5tdIKXmXV6f5y+v8bAucC8vsXEvb24sbGghntxvMjDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bHV7cG5pXF9fWVNQQUZJR0tARUNIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbF1grS9tbXBpIZpWl5gTlNbXHB2eoWkuLfCurO7t7u9v7q7u62uop+Kg6/Fw8O+vL+7u7i2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBe4J6c3Z2d25xYV9mXVtVSj0/P0dGPUdDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmmhHeLorC1nGpmZ1ZZX0lJTVBUb3uLqbC3vrmytbK8uby2ub6yrbCpl5SVx8fDwL2/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVxeT0lCPz1JREZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/GqId7doyhmF9TQ1lVSGJqVU9FSmWRpa+vtrq1tLKsvLm4tbjBvaGxsKSjer/Iwr+5urWupayzsaawraidoJ+lrba1wre2tKWoqqiwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0traxqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZybmNdZlldXVNPTkE+SkJAS0pANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7OQgXmIj25OS0BlWUJPeIGTaE1DXoWxtbO1srSvrLu6uLa5v8WMtb+urW6svri1srGtrZ+kpqedpKWclpmZmZ+prrmsq6ufpaikq66vp7Crr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWxdW2pUXVtQTkhER01CRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7e2lYyIhHtYRkFPh1hJSll4joNjQVWjubO0srCxrbC5uLa7t7q+nrC1rq9+rLCpq62ro6ihnZ2el5eglZKWl4+Yn6iupKOkoKKmoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh1dG5lVWFjV11RT01IQElSRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yvKmYmZRoTT9TeXFPSUlMaJ1/WkVVsLqxrLOvrqyttraytLWuqaWdmZqcnqeonqCoqZ+hp5abl5eOnZSPkJaNl5ukqKCgoqKipaWdo6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKurn6aim6OclZCMj5CQk5CXlZaYn56em5mml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoYh4g3x2f3pjd2xuXVFpVFBOR1BNTENQUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3BqqW8ZkRTnH5QWElLYUlXjWJlZYOvtaqytK6qq6+wsrOtpZ2Rl5OPmKCfoqCco6SfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnp6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+YnJmbo5mXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J+fH91dn1ua3tkaFZSZE1KSEdPU05LTkg8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCrxr/Knk5BdpluT21KTGRmdnRhXWJ0krKvrrO1qqasq6KbmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqKlopqZnq+orrKrpaqqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJaboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3l8ZXl5YGJTVWBISUpLU1RJU1FNOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMfGi1ZTSmajWWZ9b3JbUmtjXGdiYG2RtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKxtKqyrqOZnJ2eoZibm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnqCeoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1tZTVFKT09WTVNNQjc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWlxd3VvY3d2WFdiYGRpW1pXaK2urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2orKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwqKuos7a4s7itsrSkoJ2loKyhoaKhoJqYlpWfm5uYpaGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCgHx4dmp3dV5tW1JgSFJVSEZVV0pDTUc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCjf2+CcGBjV0tbUlpMTFFZUkhPTkiZrKqppJ+fmZKSlJiYlpaVjIiLjpWdnJ2dnpeemaafoKilsaqnrqOrrrawtLKxrra4vb+6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquusbm4vK+zsLXCvLe+s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+oqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pd21obVxYW0NXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOenIliV15lYFdNUUc9P0BDRD8+QlJ4qa2pqqWfnp+io52enZqcm5STlZSenZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6qzraqztK+zrqqvo52sqLaxraOwpqCjsLGusKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3VycWhWXFFGVUhESlBJP0VBNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFBGRTtCPkY8Pjk2Tn6qsqejo6KgnqWrpZ6XnJSRmZ2ZlYyKhoiGeG2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNPHvr/Awr7HxsK3w8rJw8HGvrq1uru1u7ewtrKqurKuu7i/u7qruK2rqri7tbyurrmjpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2lveGtlWVtGS0xFRFRMRENFNzo/OjU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9cmlhV05FPklZfG9hQT1cjq6soJmbm56emZeXl5KMjpaXk46NkIyCg4J3cnFtcI+mra60ucW7zcfLv8LMzc3Mx8nRzMzMx8nFxczQ0tXO08m9wL/Du8bFyMXR083U0NPTzMrCxcbGysjPwMnRzMfGyMXCvMPBvr+/tr6zrb/Aw8PHxcfEr7+5sri8xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpaQ05MREZQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjk7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaWZcVElEQD9KhZ6kmIOgsq2jnpyfmpiXlJKUlpGQj4yHg4OIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0dfNxsfJzMPFys/K09fS19LV1tPUyMzHzM3K083O083FycrKwcfMx8nJxr/Ds7PIxcvLy8/Hyr++v73BxsXNzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkIuAenJ1dmdjZ3ZqZFZXUURORkBKUUI+Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2FTTEpEQz9DU7DSvbKvppycnKCkoZ2alJOVlIl9eHBrZWJocm9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s7U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3RytLV1tnW19PX2M7Sys/RzM/QzNPQwMjHysTMzMzOz8XHyLa/ysDSzczPxsrIv8TDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKR0FFSUo+O0E4PTU1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFZSUBBREFGUXayr6ealJefnJqgoJ6bnJmViXdpY2FfX2BfXl9fXWFsdXNwcG9scnF1ksTIx9TW19fX09bQ1dTa1NTOz9XU1NHRzNDO1NfW09XQz9LT0cnT0cjQ2NfY0dfR19nU1czPz8rN0svO0cDGw8jGz87R0dLIzM3Ay8zG08/MzsjEy8fHyczK1NTR1c/SzNPCucWxpai1rqebqKulnbKosLOtrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNQDw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD9APUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6upqqooaOrZUM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cGVjYl9fYV9eYWBfYGBfYGVtcHBua29ydneczMHT1dPY2NbZ0dLS18/TzsvSzdXU0crPzNPW0tHWzc/V1dHF0dTL0NTV1s7S0NjY19jLyM7Eyc/MyszAysDIys7O0MvQzs7Mz8/IzNDQy87Kw8rHyc3LzNLTzdPS0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FlbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HBsamsramksXlIRkI7V46hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3O1MzO0s3L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXNwsjKw8zExsnKy8/Lzs3QztPMxsnPzcjHy8XHwcbKzM3P0cfQz83OzNDFx8G4ub3Dw73DuLKyvrG7w8O1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWdgYHFoWVhoVk1HTElQUUI7Qz47Njg6ODo6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfDuMrV1tna29jMzM/I1tXEwrWvtKifrZd4bHBxeZCbjYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNhYGBfYGFhYF9dW11ncnJwcnNxbXJ5pcfTz8vQ0NPUysXJycbGv8PFz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svQz8a6xL/Gyr3Cx8nOxcPHwMfNyMTMy8zPyMTE0MjGwsbIxL/Bx8zLy87Cy8zJx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG90ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLnMzMbQ1dXY2tvY0MnPz9HTyMK3u7uto7Z9aIOFpKuUjo2Wj4WDg4OBfYSEfnNfW15eXmBeYGNkY19dXV5fYGBfW1pcYGxycW9va2xvb3250cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIys3JxMLLycHBy9DFy8i/ucK7xse+wMbPy8TAw7vJx8m7ycfFysC+wsvGxcS+xr28wcPFzMXFvMDJw8XH0sXByb/KycbIxtHDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdGZpWmFubVpbWFJETEZCR0VMREZTQDU0MzM1PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sa+1bF56fKGRi5KWhnqAhYV/dXh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lrcG9zj8e9ysXLwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8PJv8HJu7e7usbDv7zBzsPGvr61wb3Du73Gu8O6tLzGxMLCt7+2tr6/u8zDvLW6yLq/vsvDwcbCxcnHycbQxsLMyLLHycPOzMDFw7+9srewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NWXllKRkpGSEtBRUJGSkA5OjY1ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysnGzc3O0cjQxdXU1tfNys7FycXHwbnFvauupV9kdYOTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNiYmRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmdvczAw7rBuK2wsaeqraynuLS2tLOztLu2vbG3sLWvsrvCvMHEvL+7tbK6vsC4yLm0u7fBwr24vcfBxLy1r7K2ur+0xbe7tau4vb7AvbG6trC3urPGvLevu7+1t7XFvL7DxcDExcbHy8XAxsa7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25dVl5gRktISEpGQkRBRUU/PDo1NjY2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjJyMrIysTPzdLPzcXHwcbAv7q3ybaqsJhbaG+Kj4WIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaWZqbW5yfKTHwLi4tbCrrKeeoqmnnqqss62qrKq0rbaxs6mup6yzu7q2w7m6urGrtbm7tMK6sMCxvry7trzIucO2raqosLLAtri9sLGnsbO0u7yrrrWmrrauu7Kxqrmwrruuu7i7wMC+usO/xsPFwLzGwcfLuMXHxb/Hw8O6xMbCu8bJzMuzucK9u7OJc3d2a2lgYmxoWFdXW0FMS01KRUFDP0ZBOjk6OTk2ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcTQx83Bw8a/xMTDw8rCycq/wLzCurO1tcOuqrCRW2p/koeOj3t4fYmFenuEgXduXl1cXF1fYF9fZGNiY2RiYF9dWltaWl1aWllaXGVub2hmaGlrbnKBrbqwta6lpaenmqCkoJqcpautpKiiq6qsq7Cjpp+qrbS2sb25r7ewqK64tLO8uLS9r7i5tbK8wbLArqWoo6uxsrOovaqrqKusrbWzpaiuoaSvqbKmqKiupai3rLGyt7q6u7K8vr6+xL+1wcHHyLe+wMS3xMO/u7/Ewr7EyMzKv7/DwMCph3N0c2ppXGFvY1dWWFBIWVJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDx7m5y8HLvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairkmRtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWqpaylnpyhpJSdpJqXkaGjqaOjn6Wmp6atoJ2cpKassrC2t6exraiqtKu0urG2tq62ubKwurqxt6WgpJ+msairqLmqpKenqKeyraCnpp+bpKasn5+no6Chsa2trLK0s7Swtby2u8HAsru+w8GxubnCs8G+wLW4vL2+vMLHxcPEv8DEoIN4cGxiZmBrb2BVWV9ITmdPVEdGS0Y8PUA9Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7Pjk3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLS2vbi6wLq9tqCelJ2hprq2q7Ozu7PEz8nLw8a4t8fAzL+4ybe7xbizxLizv8CstbyyrKWvs62ho5FpcoaFhoB8eHVzb21qaWlwaV9gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dna21viJ2pn5aVmqGWm6KYlYyeoaKnnKCfpKWip56bo5ugq7CtsbWkqaqqrKyktLitt7Css7avs7WvsKqfnp+jorKlpqm4raKmpqCorauZoJ+emZ2fpZqao5ycnq+pq6iqq62tsLK4r7i5urC2vLu6q7OyubO9tLaxsba1v7a+wL7Dwru6vZeEenNrX2VeZGRYVFddSVdcS09HSkpHQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xc/IyMDGu7vDw8++uce4t763ssK0sbu7rLm6saKeqaunmJ6PbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2FhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3KNp5yTlJSal5qhlpaQm6KhqJ6cnaWnoqWcoKGbma+urq+yoaWjrqunorWwsrKsqa+zp7qzpragop+co6Gto6Kqtqujo6aepaajlpmdl5mbnaCal52cnZytoauno6Omrauys6q1sLKrs7m0r6qvsrKzt7Ouqa2usrixura6vcC4s7GUhXl1Zl9mXltZVlNaVUtbUUxJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vL+znaWjmKWxwrW2va20uMHMyMa/xbbBwMfOt8DEvbO5ubO/trG5u62ytK+fmqSqoJSaj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqCbk5OPk5aWnpaYk5egnaGclqChqaSfn6mdm5urp6+wq5yjpLiqoaCuqLaqp6etsaS4sKS3oKOcmZmqp6GarLmvoqGknKKgoJOUoZSWlpuYmJaXnJWfqZ6ppKKdo6qqsa2otKyqp62zsKWqrrOxsLCvr6eop7KusbSvvLS6uK6jlIF6dmVfYVZZWFNSU0tNXkxQTEdITEtFPUA+PUI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGuvLu1u7y1ubmwr7CqnJmhqZSRiouAgHx3cWlscnRwaGhlZGZhXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmJjZmmBlZKUi5GTk5qYnJWWnJ+cn5agn6empKann52gpqCqr6afoqO3qKGhoqizoqWopbClsa6stZ6hnZaVqaGilK2xsZ+jo56emJuTi6GUkZOYmJOXmJiXnqebp6KimqSlpaukpbCnpaOrq62mqK6vr6uoqqqzpaarr7Sxrry2sa+voJJ6d3JlYVxbXVhOTFFIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaast7u8wcW6sbm1xMnJwMPGxce2xcSzwb/Fq7e3vba9uru1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmlsYF1cW1paWlpcXVxbXF5fXFpaW1lZWltXVVhXVFRWVVJUUlVgYF9gYV9hYWNkaYCSkoiPjZORkpyUlZakmaCXnaCloq2mpaWjpKOdqqulmp+lsaqgoZ6lq56oop+urKmprq2ioqKVl6KbnJCrqbCcn6Kfn5eZk4qekY2Sk5aQmJiTnKGjnaShopWgoqWlm6OrpaKkq6SrrqWusqmmpaamtKapqK2ztbS5urCqrJ6McnBvYFtXVlVSRlBOSFpcUFJJVEtTTEVHSkQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tKy0u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb3DyKyxuMG1vMC8tLWqrKaVmZubiIFyiIN7dGlpamxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5RWV1cXV1eX19fYmRtjY+DkIWOkI2Zk5SSnJqinJuhqamrqKynqaakmaWvpZWZpa+poJyZm6Ger5mcq7Ogpaafo6ShlJOblpaSqaqtmp2goaGblJCMmY6MkYySjZaVkJ2ioKSdm6OVm6CjoZiiqKOjqKugq6+krbemo6SirK2qqKuvs7eyvbWzq6+YhXRzaFtYWVNVUkVYTFFbWE1UTlBMUVJJTklCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7evqKivrpupqKy3tqu8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9u7O1pqmglpeYlod6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9hZH2LgIp9io+Jko2WkZeZoqCboKuqpq+sqLGlqZqfraGVlqWop52YkI+anq6XmaiqmZ+dlKWhn5KRkpGTlairpZqZmZ6elo2Mi5OGiY2Dj4uSlZGgnqGkmJWflZqhop6Um6WmqKiooLGwprG9qJ+jrLSqrqewtbC5tcCxrrGrkX5yc2JWVFZOUkpHVlBSUkxMV01KTU9SR01LQUNGREQ+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqWisaudqqepsrCktsa0ubqzysW5usHL0Mqxtre8vcHDsa+xt620tLuztKKjnZ2Xl5SDgHZrZ2xucW5ya3BrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqf3l+dIeMhpCJl4mUlJibmJ6pm6CrpqasnqiaoKack4+fo5qXl4WEkpukkJWjnZaWloiim5uTi46KkJqlp5yVlZebkZKHlI6LgYyNgJCLkpKSoJqhopaUmJiVoqaZjZmkpqmmoaC0sqeyuKGcorasqa2ksrKmtby1q6yxo4l5c25dTlFRTE9DTU5OUEtGTk5KSk5OUUhNSkFITEhIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKWnpKqloKmmpLOqorLDtbWys8bGtrrDyszGs6y5vbS4wK+tqbCepq66r62fmZqdlZSHe4NuX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW5xdW+Dh4GHf5CDjoqUkZOdoY+anKOipJmll6KclY2HmZqMc42Dfo6XloaRmpCUjo57mY+djIKJf4qYoKOekJOYloWOgpR+fnSKjXqQh5OQkJ2bmpqRlpCdjqOjjomaoKGkpJuitK+ssKyfmKW4pqaxobCunLC8qqmvqpmDd3NjVk1ST1BNQ1NOTFBNQlBRSElOUk1ISkpES01GS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGsrcOtp6Kmkp2mtq2joI+VlpKQfXd+ZldWX2dmaWdobmNpaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11panFrfoR7c05Yco+Cl4aNnJeLlJGfmJ2VlJaVj5aJgJSJXztWb3yMlIqAjJKMkIaGc4qFl4F5gXuGk52Ug5WOkZCDhn2TeHFwhox9iYGRjZCXmpiTi5CKnYifmIeIlp6aoaCXp66praionpats6Kmrpmsq5iotKOpraOTf3NuX1tOU1JXTERUSlBNTEZOT0lFTFFNS09KSU1QRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego66hpqaqoKapp6Opr6intMK5sLWwx8K3s73Pv7mvrrXCp6rFqqKdmIOUnLGimpiGlI+Lh31zdV1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNT1JUVlhaYGxuZ3qBc1BCP3+VkpF9iJWMhIqNm46WlYmSiIaVhnmJf2BKUW54i5KEfYSNioV/f25/f5R4dXZ4hI2acFGNiIqGfH54lHZod4aIfoqJlouOkZKWjISKiJWEm42ChJKalp6dlKSjqKmlpJ6bsKqhpKSRpqmWoqqcoqaoiXZtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQz03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hr6GnqKWnqK+sqrW8tri2s8G7tqi5yLi2qKi1tqqyvaaelY1/iZOolpWKfo6Dgn13cG9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3J1fWloXFSQiZSIdH6GgXyFjJOCkpqLj3uGj4B2gHhzb3ZwdI6OgXp+iquEeXtodnuOcHJteIGLjZJ4eoB7gHZzcpJ4Z3WEhISFfJWKiIqNioB/hIuNgJSEfICPmJSclpGfnamen6CdoKmlnp2YjaekkqCglp6fpIFzaGFdXEpXUFJHS1hST0pMTVJKSkpMUEhMUUxSVE1FSEE9Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6qlrauwsaq9tLK8uLa6tLGft7qyqp2drKmosrChmpGNlIGOnI6RfnaGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmdoyWmI2OfGd5gXZ4gImQfYSYkoFxh498d3tva36tfXSQi397hpKBfH91ZnZ8hmxvZ3N8iYyHgGx5cX1xbXaPcWhxgX6OcEOLhYKDhX53d3qMhn2Me3V9jpKPmIuSmpujlpmcmp2eoZyWjYulmo6dl46WmJB4b21mY1pYWFVRSlNVVE9QTlBWS05LT09KUk9ITlBMRkQ8PDc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoaawrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlpylqaSgmJmPhZJ5iI6LinVxe211cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybIinqsB+dHlie3hve3mJkHp9i4ZvbYySeXR5amqAgnGWkYuBfpaASZKYbmh4foJtaWRseYWQkoZrc2x8bnJ8hmlucH9zjYmEhnt+f3t2b3R0hoJ5gXlwfI6MipODlpeYmpCSlpeZl52WjIOJnpKLko2GkJaAb2pvbm9YVlhUUlFZT1JUVFJYVU1OSE1KTU9LQ0lOR0ZAOjk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrLCjraqota+urLS/q7zDv6WimpWkmJ6NhIuUoaGZmZGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXF+nh2GaaXN5ZX5vbX96i4l2goiGdGyaknRzfGpqnY9NeYWTiYSOZzF2hnNsfn2DdGZldX+EhIWAZmlsdWtxf3xocXF8bpONj3x0fn1xcG51bYJ/d3l1anmJgoiJg5aSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trb2hlWFJaV1lZW01QVVZZWE5JSEVKSkhHQkBHRUNHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakZmWo6itnrGep7qvq7KwwrG7w8ealo+UmYuOhXqEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+yoHF7eGx9bHGDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooV2cId8h3x0jK6NiYBoZ2JqbnJtcIJ1aW9YdXCOm5J3bH96fW1ybnCAe3N2bmJ2g3+GgIWQkIqKiZGLkYuLjoN1eIqOgH6DgH2Oe3NxcW1gW11eW1lYYF9STltaWFdMSEpGSkc/Q0FCSD9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp5+vlaW0qa6xrsGyu8HFlpCMlI+AiHxugZCSiYOKh4+GdYKEbJWIiHt0eHhsd253Y2leSlBHPj82NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8foWDf4x+daKZeX6GgYSZhJqcYYaqn52Lg5CNeneIfomJjnOLl4+Eel1kcXR6fHeKbWhqYnlvhZCCem6Bd3SEenB0eXhrbmlddoZ8h3yHh45/ipKXg42FjIZ9cYR/hH11d3t8iXdwc3RmZ2BbW15TW2deV1BUWFtVR0pKREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIyRnJ2fppGgqqCxqK/AsbrFupaOkZSHe4Z2a3+MkYJ9ioSPjHiDgHOghIp8fIF/cIB+emd2a1JXTEBFMjExMzY2Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmiEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqkiGrq+vi4GAk4uCi4KEkqmHgJiYipt0bXyBhod9jmhnaHl/boWHgoVxhIZHbIB3cnl2aG1rX3Z9goh/h4SLeZSdnImLiJF/enWLdnx4bW93foB0dHJsW15eW2NjWGdlW1RPUFZZUERMS0ZOSUNGQ0NAQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFh5GOlpeSl6CerKGmuK+zvbOXjZKLmIt9dHB+iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyNDY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWHBZXF5pjZOHlYCEgoWRk36FiJGBmpWCoaGYlZubpq2Tmruxp7vHw6iLjKGlj5SKgZF8cYOen5Gcf3aGhYuQh5BqaG+DgXSNh4SKcYWCd4d/e3aFfW52dWZ/lI6GiYiHiIegq6KViY6Xf3qCiHp5b2dreH57fnRsZV1aW11qXWFmYFpPS05XUlFJUEpETkdDSkRCQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZneDe4CMf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShZKVf4qAkpuOg4CBjIqCiY2Df4qAbXBqXUJANC0tLy8uLjAyMjM0Nzc4Oz0/QkRISU5RUlNSU1NUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WX2N/Z2dtdZ2bj5qSk4uNjpqIko+di6CgkqOqpaOsk6m2oqjBwq7Hr3i6lJp8jaGemYSThYKOop+TmJKEioWPmZGWbHB1iYyCloyNjnePhHFthYGKlpGDhYhxiKCVhpKJjo+WpLWpm42UooOHk4N9f2tqanyBgYJ0Yl5kX1tna11sa15XS0dOUlFNTExGSVBDRE1GQUNFRkI9OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lvgm91hnF2koZ+l5aalJ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkIKAgIuMiYWQh4WJhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOUFJUUFBRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpaKZoZeilJyep56oq5+orKmqtperv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGIlaKbm3h6fpSYkqGTl5eBlJ57d5WSq7KIjZeffJSdm46SlZijoqa2r52RmaiHlo+NgYhsc3N9gH1yaWBdYV9hZ2RgZ2ZbUkVKS1BPSUlMRkZNQ0hMRkdEQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHRgbX1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wMC8vLi4wMDE1PkFCTVFSU1FSU1RSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYWQd5WKo6eqtL24pK2srKeotKuwtrKyrbuxs72cs8OrusnLt8O/uKWisLOsraqji5aYhaamoKOXgaaZjaKrqKSIhZSkoaCroaSpj5uwi5Wjpre6m6CjsJKinaKekKOhq6+ssrSilKSqiJmJkomVenp9hX9oYWhcZWJdZGReZmdfWk9DSUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGhjV2lvWHqFdoGThYeCm4OSkIyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4WAi4WGh5KGgoSJhoiHh3BuYUBFNjQ8Mi8xMTAtLCstMS4tND9DQU1VUVJTVVVWVU5bUEdHRDw+PkZIQ0VAODs8NUM7PUZLSUdIUk9QV4GSoISuo7OqssDHw6qzxbass7+zuL62v7TBtru6o7jFqLbJx7W+ubWoo7StsLGbmZKan4inr6ullHafpJehrLKzmJaqrqiutruyuqyvtaKxq7G1u7e0rrSgp6ijp5qpr62yube4ppu2qIykjpGSn4Z4goN2WmJlV2ZhYWNgYGZgW1RJRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFiY1d5dXGBlH2EhpN1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeFgY5/gYmOhoCGiIWKh5F6eG5dVkBFTjw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0pBQD9HS0ZGQzs+QDdENz9CSkpFRldUUF6PpK2jsbTDtrjBzMm2u8S9s7PAtrjBtb6vt3Sxs6W6xKSwxrmxs7G0qKS1tqqxoKKWm6KSpbCupq2sp6SYoKy0u6Kosrq1vL/Mv8XFvb2zwre6uL63ure5rKywprGqrb2wvLvBwauZuqiTrY+Xl6qJfYJ9a1dkYllrZWplV1xjWVZTSUdGTFFHQ0hJQUhEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldTWVVadmpwfo6EgI2DbnpzeIdiuaGZo4mUlJaSlJONkJaSh4Z7hoGNlYqAhIGKenyKh4Z9ioOBioOVfXd6dWVPXGRHRUw7UWNhW15TRj87SFBFWmNRUllYWmdZVGBgTVNQRUE/SUpIRUVBQEM8RTZCPkhHSkxTWlRdk664tbq4yL+6vcnMu7zAu7e1u7q2vbS6scZgdbKksZqeq72qpairq6SisrWgq6eflZafmJ+upaempZ+jlKOnsbSnsrO9tsG+08nJ08fCxczCysPAvr2/u7y3tK+4t7bDucW9wsivnrmpoauOpKi2iIGAc2BjYl5YYmBpZ1JYYFZRVUlFRU5LQD5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaLfoN/gnh7i4OHfIt5gYqCl350fXprZXB1WV1cUGVkYmBlZF1bWFdcTWRtVVJtbV9uX1hnZFVZVUpEQktLSEZISEhHQUk5RD9IS1RUVlxaW5O4wLi9t8bAu7nKyrq2ubW4ubK3tbSutraYZHWonK1wXqKsnJigopuknqullJ+fkJSOlpiXp5+ln56amYOknaylqrCtuLC9udTRztbQyczSzM/Oysa/v8LKvcG8wcDExMXKvsjOs6S7sLSvmqu4u5mAe2xeYV1ZXmFaY2NRW2BTUEtDQUVGRTxART5BSEFARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vl5KQlG5sb3V1h7OsoaCfi5mcmYyNlZGbkoWKin6Ih4uQi4h8gYRze4qDhXuJdIGJh5V/c3t5a211e2hyZWlsaWZqaWhgZmlobFptc5atpLyIh2dbb2hdWlpUSEtOT0pLUEtTUUhMQUpHSk9fXmJmaWGXt8ewuLK7vbWxxMa1sLiwr7ursrGnq7esjLWnnZqnmk6anYyOn5aRppillYqTk4mQiZCRkZ2boZealZaHnpqnm6yvqLCntLTU1NTW0svP1NXN08/NxcLJ0L/KycrJ0cfMzcLQ0rivw7zEuaW2usOig29kXV1eWWBXWWZaUV1XT1BCQkhFQkg7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VWc5CQmIJocW95eYOgqp6lloyam5eLjZWRmo59iYuFjYqKipCHfISCcH+IgYZ7h3KDkYuPfXF4dWtxeH5xe254c2xogXBtY2ptcHhpd3x+y7/B36duY3huY1thYEpQUlVOWV5QXVxOUE5UUVVUXG5tdoJxlq24rLSmr7aqrLzAsKu0pqS4pquuoKu0oo6xrZqXmIyRk5GEjpuBjaaRnImDi4SKiYSLg5SVl5eTnJGcmJmZn56rrKSnoqytz9LV0c3L0tPU0NTRzsjD1NHHzdLT09fM0dHF0tbFwM7Hx8KovrfPnnpvZl5iXVdgU11aUFFUUE9IPkBGQUJFPEBCPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OW3WGhYp3bHdwfX5/oZ6eoYuMmJOTjIuTj5aEeYWQkI2LioeRh3+Ce3J+gIGHeYR1hZOQiH9vdnJrc3x8d3tzgXdxaoBzcmlwcXp5cnq+y5p+jLKEdnKEdmhha11DWlpbVmVjWGRqU1hdXWBkXmN3en6LgZipo6Shn6CopaqwuKqls6OhraGjraGnsZ+JppqTkpGJkY+IgZSJapSijJmEgIV+kYODk5ati5WNlZqOhpKRnpensKGgoaWkqMjOz8jCy9HU0dTTztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMPDzIxzb2RhYFhUWVRcUEtHSkpKQDs6O0RBRDxCQz5HQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5WJj4qIjoePf3iDlJiKjYiIi4l+gnhze32Dh3d/eoeRloCDbndwbXV/dnh9dIV8eWyHdnRufXaEdXh7nbWMO0GKxaV+jHxpZVdJQ2ZjZWNnamRueFteZmhrbmlugIOIkYucnaCdkJeYnqOjprGjo7OfoaWdoKmgo7Gchp6SkpKQio6LhoOPhH6cm4yNgoSFepR+gqmVo4yRipeSi32XipqSq7OYmpyonKe9w8a5tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2drR1r7LzLR5d29lXltTVlJbVkZHSklFRT06NzpAQEI6R0Q/RENBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhYmCh3x4hZaWiI6Dh4WGeoR5cXp7hIZ1eoWOjZ15i3B8b296f3F7gXGDh4Bujnp1d318gnV+e4aHr3NYqcK2jZGCcG5iPV5ocnBxcG54doFlaG9ydXhxeouGjpORm5WflYeLk5ugm56qn6CsnKGamJ+mnp+rmYuajJCRjYR9iIeDhYuOoJmTiIOHfm2ZeYSYhoiTjI2UjIZ7m4iUj66qlJWXn5mnrrW9qa29xsvJyczL0MnD0srU19nX2NfV29fT2dvV0Nva0dbI1MuVenxqaVxbUFNUXkhDRklIPkE+PTc6PT87PUc9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjpEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoGEf4N8fISYjoeLfoaGgHeCeW57e4eCdHqSno2gdo51gnR1gX10gIRvgY+Bb5KFdHyAhHp2hnuJt8Wkwcm4gpWbj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R2bZOWlJWPl5CDiY6WmZeWpZyXn5aekpKXo52Zq5WQkImNkYKMhYmIgYaQkZ6bmYmFjIGGl3qIiJ+Xj4iNiouCfaGJkIu8oZiTl5qcqaalrp+otr/AwLnHyc3Oxc3J0dbV1dnV19vU19na29fb2trYztzGh3x7aGpmYFRYVVVNTEROQzs9PTw4Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop7foB+f3yEe36BkYmEhXqEh3p1fXRtfH2GfnN+kp2RnoORfIZ+eI59eIqKboKagHSZhn2BiIR7fZB6j6iOj8OgvIyco5x9iYR9iXKLin5zppqcmJOFe46QiIRoR3GgpJ2Mi5CShYmKkJKVj5yak5SQloyLlZ+clKCUkY2Nj4p+kI6Oi4SJkpaanp+JjJSSnZGCi3+lmYiEjYOGhIClh4uLuJidkZSWoqehnZ6do6+2urWswMXK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbuHl5eW1rZldgXFNQT0lDTEI9PD45OTo6OTk7PTY/Pj48PTk6OzszN0Q/ODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYX1ZYZm1tbWmBjopxcnmKe3p/fH97h3t8e4uHgX51g4V5cnpzbYB+hH53hZuhmp6UkoCMiH+Yh4Cbkm6HqIV6oIt8kY2CiISbfZqQioyjop+Qo66gi5GLhYuBk4ZXcq2Ln6ubj4OYm4+PjluCopGCjJ+TlIyGiIySk4yUlJSPi4+Jh5abnY+VlpCLkpOFgIuIko2Kip2WmaKjhpOdlqCKiYiNnJCDiI9/g4eFpIaMkLOYnZKUl6GhnpmSnJ2nsrispr3Cx87Hxs/M0MzO19DR1K7W1dja2Nra19bZ2Z9xfnVpZ15dWFRXWENASEM+Pj46NDk6Ozc6OzozOzs/PT43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieW1ifpKDb213i3h5f3qBfIZ8e3eGhH9zcIWCenV2dnSEg4V9fpKmo5+lopaKnZCUl4uKqJdyirGNhKeShJmThJmMopWfmJOJmp2ikqmvn5CVkI2OiJaMbo23hZrEyLKboaWbnJiWkbKRZKTNx5WOhoeJj5KNjZOUiYWKiYWWmZuPkJSThpSXhH+Pi5mIjZCql5ejo4iZn5aaiI6Hl5eKhI6MgX+Hj6WJjZOpmpeTlpmhmZ+Zk52borO0paO8wb7IxcXJyMnCytPNzdSp0tHW1tbY2tTT2s6Dc4FpZF9eXk9KVVtCQUZDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdYKOfHxsfYh4en56gYGCfnZ2gIJ7bG6Lf3l8eHh8hIeLfoujs6ijq7KhlqegpaSWla6ig5C3lZKzmY2hoIukm6+ipJ2YkKeWqJmtr6SXlZWUkIuYmZagwI6jybirmqKlrZmRmpyynYaFqKKcmIWIiY6VjYuTj4eBhoeIk5iUjIuTk4aUmIaDkZCcdJGZspaXpKGInJmTj4qQi5eaiYqWjoZ9jJifipCQnJqZk5iYn5SgnZWfm6GxrqOkt760xcfEvcPDv8bOysnSp87N09LQ1tjSz9i7c3t3XmFWYVdQSEpPRUJDRDU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdOW1xZSmdhO0iEi3p6bYWGeXyEeICFgX1weHx9fG9zjXp9gXt4houJhYSSqLutqLK9r6Wus7Ooo6KwrIqatJ6iuKWVrKSXqa23pqSjn5mpmKqjr7CpmpmclJWRl6CXmbu7rcmgaba4q7CUmJ6iq5KXvaNeqrKCiYqNlYeRfI+OfYOGjY+UlIiHkpaLj5WNioyWmZKdmrOWlauei5uUko2QkoyYm4qSnpCMiZWfoo2VjpianZObmJ6UoaCUnJylr6iipbO4q8LIxLW7vbvFyMfC0aHGyc3NxNbW0MvTonF8al5bVV9SUEZEPj1DQUE4Pzg3ND5GPDw2PDM1MzU1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVIYmBjcEpAi4p+gHKGh3yBiXWCioJ+bX19fH9wd4d3jYGHe42PjIaMmqvCwLC+xruytMG8tK2rs7aMqLKurr2qm7ukqK25t6umpqKio6Opr7Kxqp2cpJibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIacrb2wg4uLi5CDj4ORj3qBh5CNjpyIiI+XjYuVl5SQmpacp5qxmpGrnY6Zj5KOlZCQlpePkaCRiJWbpKyUlo+UnJ6UoJ6bmKChlJqeqKekoaOwsqbBxsOwsLq2xcTCvs2nx8PHw7zV0M3Eyol1dGNdW2FbTktDTEBFRj5BP0I7OjQ+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxnR2BpZ1pdW5OMjIh7h4uGg4x1hpCKgW5+fIJ/cX6BepV6kpSUmJGTlae0xsnAwszBw7nIvLqvq7m7l7K2urPArqXApKqwu7uqrquiop6nq661sKqboKqcopyVnrC0p4uiurq1wburqJyypKSolISOqcPEpIKLjoeIhIaVlI16g4yRj5GhjIyUkY+JmJ+Xk5mUl6agrp2MqpyOlY+SkZWVjpCVkY+hlIaXn6CznpSblKChmaSfmqCcoJSYnqakpqekr62lv8TCrqm3tcnDvrbOssW+w7yz0crIwbV2em5dWV1rU01JQ0xKSklAQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJnXE1lXGZUY2qZjZaJi4iSj4aJeYaTkIFygHyNfneHgYKQeo2hlqiampi6vsjIysLSycrCzbzBs627vqe6v768w7eswamss7u9qrCppKWjq660rra1oJ+un6aimKO0vambqLzAo7a2r6uSr6yqq5aGmqmmpZGCjJOllYmAdYqSeYWNkZCen5OOlIuPjZSjmZeblJSjnqmfkaWajI+Pj5WWiH2PlZKSo5qVoKKctaaRn5elpKOlnp6mmJ6Vl5ulo6moorKsqLvAxK+ls7fMwLmuw7O7vsG4rcLCwcCZb3pjWVdcXExMTUlHRENIQkJBQ0s6NERIOjs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+a0lfWGFaZGVWno+djpeOnpKJin+Jn5KEeIV/lX5/kIiKkICVoJmup6OYwr3IxMjG083Ozcu8wrewury0vMq8w8G2truts7+5vK2vqKCpp7atrqmyt5qeraKooZ2rt7ippa++xLG9uLOnqbOzra6WlaWsp6CRjpKxxaeVjXyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuMj4+eiFqQl5eSlqWaZpijn7OllqOWrK2rp5ufp5iZlpmVoaSopp62q6m6vMO1pbS2y8G4qrass7q4rqi4ur24g25vW1hVVk9GS1NNSz9BSEVER0ZHODVGTTs+Nz5BSi4zMjAyNUI1NVBXTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnJGaUlSZWJMRqaUnJahl6mWjJCDh6WSiIGHgpyEg5WQkZSOmqKfr76uoce9xcTHx87OztLKvru2sbq7vL7OtsS9t7i3srK1s7iyq6acq6u4qqmnr7CXo66kp6SltMCwqqyzvsK5wLizp7izt7OulaWtrq6ki5OVoY1zwZl9lpmEjpaai7GVmpmVkpOZmaajlaCblpqonJuhoJmLjI+WnWBKlpyalJqll1SWsJ+vnJ+llK+vraWaoaaUk5mZjp2gp6KZtKmqs728u6uwssfAuaarq62xsaOhsrK0pHJwZl1bT1FMRVBQUFE7SEtJRkhBQz45S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1SRVdSc2JXRkirl5mfoamvmJCXh4unlo6IkoWfiIScl4+eoJujpbXJtKnGu8PEyMrIx8zOx766s6+5uMDBzbXIusC5tbqxr6+ytKejm6q0tKqppq6smaSupaWprbq/qKu2tr7Bv764s7HCr7e9q6OutKy4pYibl6abdr6ghJicjpOZmouvlqGcm5eVm5+hqZ6ooJmaqpmhp56XkI2RnYNudpOimpWdop+QrrKjq5WpqpirrqWkn6WpkpKZm4iUnKKelrCnqau6t76zsq29ubafo6eopaecnKypqY1lZ2FfUkxNR0dOSlZMPU1ETUlKQUNEPFFVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5TYU1WSH9lXkhGrJScoZ+7r5iUnouTqpuRkpOJq42Hop6MpKyUo6O2x720wbrCwsjJxcLOyMG9ubKvubTAwsq2xrHAvLS6q6mtrK+jopiqtLqmqaasqp2or6ekq6u+u6isvLO3vca8t7W4wLC9v7OptLarvqSPopeRop+8n4mZoJmWnp2Pt5+pnKWjm5yhmqils6GbnaWcqKqemZWPlJqLl4mNpKKUnKKfoLWvpaWTsauarKyfnqSjqZKVlaCDkJ6fnJWppaKhtLW6ta2otbKznpyippqXlZmqoZ53Yl5gXktJRkhNUUlNRUZGQlJKSEFER0FWU0RIPEFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6aF1GREScb2JHRaiXpJ6ew62bl6WXmamclpqaj6qWlaimla2smaGqtsTCvL+3wcPAx8S/zca7vrmysLizv8PItb+vvLa5t6ajq6usoKCaqqrEoqWorKaerK+soqqovrimrL2wt7bHtrS5uL6wvsG2tLK0r76jlqOWk5uUrZ+QoaKlo6OfkL6lqZ2orJ2doZumn72imKSeoqmroZ2WjZWek5+Hj4WNk56koJ21rKWclrKnmbCon5qqnqCNmZWfhY6hmpuSpaSamKyxtrGqpamtrJyZoKGSjpCVqZ+UaWRaYV1QSkdLT0xIRUNJQD1PSEA7R0lIW1JPSz1ITlU0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGVjV0yimqObnsWsoZ+snZ2tn5KjnpakoKeqrJe2sKOqs7bEw73Atr/CvMjCvsrItri1tLCztLfBxra+sLi0ubWfpq2qq52en6WkwaWgqq6gpKmtr6Kmp721pbG7t7a1w7Kzt7q+scPAuLits7S1opyklZGToK2gmKGdqairoprDramerK6bm56ZpqC9oZ2kmKurq6ahmY2an5KeiY5Xf5WepqGguKqnk5i2o5+zoqCbr5efj5mUnYKPoJeWjaKklZCmrrKrqaKipaWVlZ2Zi4+Rk6SfiWNlW2RgTElKS05GRUFGSz49SkE5OUpKTl1RUUo9TFdcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXEtOnp+hmJ7Ep6Wis6GcsqeTqqSfo5+tqaydu7CorLWyyMPBwrPCxL3GxL3Eyr2wsLausLWvv8W1ubCwurWsmqiwqamanqahp8Ktm6yxnKqirrCppKe9t6a2ur2vt8Sts7PCv7HGs7q3q7S2raqipZWVlKOroZ+fmairsK6uu7KmoKmpmZmXk6KkuKGhpJKur6ykpp+SoZ6Vno+RjZSdmqOfp7Snp4yYtJyjsJqem66Rn5SXlJqAkqKWj46goZOLpq2wpaeinKCekpKblIWLko2cnoBjZltoZktJTEpTQkNASUc7O0Y/OTlOTVVeUlNKPk9eXj1IUEJMTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ufwqijqrGho7SplrKrpqKksqyuqbuyrbC0tMa/xMS2wMS+ysS1wMjCtau1qLC4rMDEtLeurLa6pZmrsaupmJ+ml627tZuosJutn660sqequrOnurK3srjAqreywry0xae+rq23tamnrKGXlpGlpKKil5ikr7itsrW2oJ+opJmUlZOjn7ejpKWVrrGypamlop6ampqVl6ifn5iinq6yoqaNl66ZpayXmp6lkZuOlJiahZaflIyQnJ6Ui6mpq6KnoZmeloyPmZCBhpaJlJ95ZGldbGpOUE1OVD1CQU5DOzpJQDc3UU9dXlJWUUFXYFxCSlNIV0tIOlVkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xXGNaMzM4MDZwW2JIMDVKcGlWQ1dGjHlmQzuko5yhpb+mqK+voam1qp25r6ukqrS3sbC5trC3uLjFvcPHvbzEwcfAucHGwbqqtqWtu63Bw7e3qq2yvKKVrbCtsZalqJGquaqgp7Cdqp+vtLOqqba2rLursrK5t6y5sMG5vb6mw6uwt66oqqumnZiYqqGhoJGXoLCus6uwuZqbqZ+ZlpKXpqC2qaWioq+xs6uxp6ufm6Cgm56knKGXnaOzsJufkJSmmqGpm5Win5aYipWYk5aXnZOJkJuZlI6pqaefpJuYm5OHjpmLfo2Who6ba2ltYW1uWFFRWlRBQ0VVQDs6SUE3OlhQZF5QVldEWV5eTUxSTl9LSj5aZF5OSVFOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRihAOGx9aFxWOol7Y0M9qJ+coam9oaqwqqOxuKmltbKroa21va+zuLy6vbe2wcO/ycS5xcPAwLjFvcG4r7anq7eyvL++tamusbefl6utqK2Xp6mOp7ufpa2znquisbCzrKq2s7W8ra+xtaywtbHAucS2q7yvsbisrKmisaWepKifpJeQmJ+yqrOpqrOZnaebmZSNoKWktK6noqysrrGnsqyyqaObn6eknZShmJuotamXmZGSn5mfoZ6QrJ+YmIaVmIudmp2Tio2Wl5qXpqajoJ2WlZaUgY+VhXuPkoSMlmZsc2hwcl9HWWZWRENOWERaOUhCNj5dUmhcTlldR1teXU5NUlhkSkpDXGNgUExNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFWMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSaoKSst6OsqaWurraqrrS5pqewuMW3sbe+wcK1tLvFvszFucPBur+6xLjBubO1rKq6t7u6vrWqrbG2mJioq6qrm6yrj6u9nquusaOqn7Gts66utrK5tqmtrrGntbCzurzJsqq1tLG0r66mobOfmqisoKWVlZqZsaKtoKWvlqGkmZmSjaKlprKpoaaxq6q1pK2wta+jmJ2tp5qXnpmZrLiimJOQj5icoZmXlKyfnZSBk5mNnpyalpCKlJKemqWjoqCZlpKSlnuLkIV7jIqDi5JrbnludXxhRmBqWklIWls9e0pHRTZBYlRpWk1cYUpbXVpSUlNiYUxLRWBhYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuKkEvSkdQW0czY1lUS0SZl5+vqLGprKWjrq61qba0t6OstLfJurS7ur++tbS3w8HNx7zEvbe+v8C3v72yva6nurq3t8K3rK2xuZWXpq6rp6OyqpSvuqStsrGnp6Kxs7GysbWxuLKorquyp7ivtbPDxbaptLWrsK2pp6K2n56msaCklJuZlLGdp5ufqY2pop2blZelpaS3p6Kws6unsaessLWspJmhrKibnJ2blKq4nJWOjouZnaKYkJenop+Wg5KWkJ2cmJeWiJePl5qnnaSgkpaRkJZ2hJCHe4WChIyMbnF4dnx/XUtlbFxKT2NcP2J7R0k4R2dXZVtMXmJNWFlXVFhUaV1QT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTFE8M3JrS0RDkZikraStraumo7Cys6q2sLafq7W5ybmuwbvDt7OytcLDz8TAwb20vcC/ur+9s8Soqrmxtre/va+rs7OdoKewraWmsKWesrWsq7KwrKmotLmstLO1rLSsqauorKm5rbGwx764pLmvqa2tpqitsKWjo66jqZydm5qvmaKjoqOQrJ6joJ+hqaWluKSrtLSkqquorK62r6Kdo6iqm6CZmpKktJqPiY2HkaOglo6UnqCVk4WOlJOdm5mWlIeYkpWZp5ygn42SkY6Rd36OhXx8fYeKiXF0c359flxSZG5eTlpmXUZElltHOk5tWGFbTWBiTlZXVldUWWdeUVJMZFpbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NlOzYqSGRISis6ST8zQ0lTLD6Paz5ISY+aqaqhqLCkqKOztLG0tbGxoaytvcu6rsG7xrG0rbTCw9HExr7Asr7Cwry/uLzFqK23rLO4vMGwq7KtoaSnramopLCjq7Gqr6uxrq6tq7O7p7exsqmyqaqmpaOtuqypscK5tKy5qKioramnsaWppKKuqqiinpuirJWknZeemKudoaeooaylo62st7GxoKmin6qtsKydnqanqZmjmJiPoKeYhoOOioufoZCMjZedkJCGiJGVoJ2VmJWGlpOTl6WcnZyLkZCNin9/h4V8d3+HhYd1c3KJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU9kXE5VVlVXUFxhX1NPTmhYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkowLklnREY4PEIwNUVLWDFAlFxATUaVlqynoaqynKmosLWsuLSuqqSrq73Ju7G+t8OvsK2zxMTOzsO/v7TAw8S6wLTJxKyvt66yusC/s66uq6WoqrCppqiypbStqrCurbGvs6yzuqS4tKysrqeroKKesLerqq26tqS1taSpp6ysqqyhqKamsbKkpqWhoauWqaCTmqCmnqOiqqSsop6msbesrKKkopqpqq2pnKGlpKOYoJqVj5idlIGCkIiFnaCNio6Nmo+Ri4SNmKSckpGbjJORkZSjmpuai46Li3yHgYKCe3WAhIF+dXeLo4d5a15gbmdXZodkTkBnkkxEYnpXYlhSZVVNVlVVVE9cXWFVS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZBSUhElpGvpKKqsJeqqK21q7awq6Srqqm8wcC4ubO8taayr8TJy9G/wbu5wMDCucG6wsSusbWytLzBvrOyrq2rrKi2qqWtsKq5r6iwsK6xq7WqtrWmtLarrKSpqpyjnbOzqKiktLSgtq6hqairqKunoKqrqLm2qaqpqaGpn62bkaihnaCkoqaiqZ2cprSup6WpoqOXpKanqZyio6OfmZifkY6PmY5+h42HhZ6eiISKi4+OkY2EhpWimo6NmpGSkY6Tn5eYlo2Kg390h4F/f3h1g397eH6AiJ2PcHJnZ3F4XGFziGlPXZhWSG15VWRWUmNPTFVUVVFPWFpiVkhQalRXU0dQWVVJPklIT1FQeExOVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw/TFRfL0lrN1JFO5WNr5+lqq2Zq6StrrO0rqqlr6mpu767wbGvuK2ita/Jx8jRwL+9urzDvbrDwcC/r7Kzsra9vMGysrOrs6mltaikrbOzua+irbWxr7G5qriuqq62q6qeqqugo6G2rqihnq+yobSqnqinqqOqoaGsrai9r6yurKGnp5+rmI+vopiioKinnqebmamwqKKfrKGgkqGio6aYmqilmJiYnY+Kh5WIfY2GhIWkl4aCgoyHj46RhYWVoJeIkZ2Qk5CNkZ2Vl4+KhYZ4c4F/fXV4eoB7dHR7aoKHo3VpXmVsgXVniIt8UldwXkp4c1RkU1FfTU1TWmdOTFZZZVhHU2pSUj5CTlFhUTpJSExTSXFQTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytITztYQjSPjrCfpKWqo6WjrKa0s7CppLCnqri+wbywqLmqp66wycbI0MK9wL65vr68ybzCubGwtbK6vLnAs7S7rbmso7Wmp6yytrmypqe6ta20vK+8pa2ttautnKmvpJ+lrKqnnJ2qsqSzqJqqp6qkqZ6iqKipvau0r62eqaOgrpuasqKVpJukpZ+kmpqoqqWemqmhm5GaoKSdmJapqZGZmZOQioKPhX2PgoCIno+HgH6Mh5GPkIWAlJuUhZOijJSRi5GbkpWHiX6Acnp5fnxod3x6dXBxfmmGeYSIZGBoZHKFe21neV1eVkJXe21UYVBSWEtLTXB0XUhaW2dZRVZnT0M+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGXEAqjpOwmZ+fqaWjoaqlt7KxpKmxpq25wb21sKO5raiosMPJyczBt73Atbe/usi2w7W0s7Wyvbm6vbatuba/raKzpqurr7W3tKqduruosb+yuaCvtLaprJ6tsaOcpaipop2cpLCmr6Cfq6mnoamco6igrbunrrGuoaqio62enqyll5+boKKcn5uZoqqimpmjo5WWk5+hlpuWpqyLnpGQkYyCi4B/j4F7mpSNiX1+jIeQj4yKhZKYkYeUpImSkoeQmpCTgYh8eWx9dnl4Ynt6cnBwc3hqgnRqgmdjaGFuc45tYmpwYG9BXXlrVl5OUFFKSUxTWVZNXF5tV0RYYU9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmROKT0zUV09I5KXq5ifl6ejoZ+no7ivraKvr6mruMK6s62fua+rqLS6x8rHv7fCvq+0vrfEtsOysLqys8C1u764qbm4vauktaeoqrCtubCpmbm8o66/tLShrre1p6ansLOgn6Wmp6ClmZ6sqKmeoKqup6Cml6Kon7C4n6SxrqCsoaykm6amqJqam56jlZycmp2pppaanqiRl5KYnZOZlaGqkJqJjZCHfYh/go58fKGMjYl5g42Fio2NhYiTmo6JlZ+IkZWCjJeNkH2Ee3NwfHFzdGB5eGpvcHFwan9zY3psaGZkYWWHgGBbcmpxTU6AaVhaTVBMSkdQUlFITVtfb1REWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MFxbNSiWm6WYnJWsn5+hpKG3qrCjtLSpqbnFtrKuoLesra2wtcXHwLe/wrmwtby3v7u/r6y+sLO/sb3Duam7urinqLWop6uwrLOwppm8tqSrurWun7G4r6mlp6+ym6GkoKOkoZabr6ahn6Oor6GgopOjpKK2sKGmsaufrKKul5uqpKiel5qdpJOanJqdpamZm5uklJSXlJyOk5eiqaGQiYqPhXqEfoSKeo+Xio2HeoKIhImMjoWOk5iMjpaZio+Wf4aXi496gHpwcXZucHRfeHdlbWxsa2mEbmZyaWtmaV1jdIFgW2t1aVpKf15bWE9PS0hIUlVGMjldXm1QRFhWWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbTc0R0FmW0hURFVdaEQuPDJjViwylaKhl5SbqZykoaKht6muoLq4pay9xbOwrqO1r62tr7TDw7yzv7q3sLO5uLq4uq+uwLO0ubC/wbisvbq1paKzqqepsqutsaGawLWkp7W1qJ6yvKmopamvrJmjp5ykpZSXobKlmZ+kqKmcoqCTpJ+juKikp66mnaWhqJKfqKGhoJianKCSmpuWn6Gqm5qYoJSQk5aZjZSSo6ikkImJj4Z5hHuEhn2djomKh3qBhIeJiZGFlZOTjJCVlI2OlHuCl46Ld357bHRxbGxzYXd0aGhqZ2dvhWdoaGNmaWpgamNpZ1tle2NgU3RUXFtTTEpHSU9TQCEqaF5qTENWVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRBM0NEZ1tLV0dVYGhCMzc5Z08nMp6io5GOo6abnp6do7Wsp6q6t6esxMG2sKyjta6nrq+3wL+8ssG2sK6ytra4tratqr2zrrKxvb+4rry7saSftqulpbSpqq6encGrqKWvsqmstbueqaqrsaWYnqmdp6SRmKatopiepKmhm6Kclp+dp7alr6quoaGdnaGUoKafoaCZm5mckZidlKWdq6GXlpyUkoyVl4uPmJqpoJGIiYuIeYV3goKCnYiLgol9f4WIhoaRhJaVj46QkZGRjJJ7g5WNhnN9fWZ4b2tqa2d1c2tjZ2RkdoBiZWZmZWpqZGtyWl9ZXW1kYU5pWFtgVkpHSUtNUlg+OV9saUhCVFNcW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWao5+Qi6yhmJiflqSzsaKxvbahsca8urGxpLesqq6puby7uq7Asq6urrausrizqKu5sa+us7a6trC4va2mnrWqoKCwpKqvnKLAoLGkrrCut661nq2vra2imp2nqaWelZqnpZ+ZpKKpnZqfm5ScnayvpbqorqKhmpqdmZ6jmqSdl56Ym5SZoJKolamnmpOampGLlJmNlJSZqaeOjYqJj3yCc4GBipiFh3yJiYWFioyKkoSUnJORj5CQlo6Qf4CMjYJwgH5meW1oa2lncXJrXGhjY3OBYWZoam5sZ2pqaG5dbGx0cGFVY2lkZVpJRkxNT1hRUVZhZYFVQFZTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kaGajY+wnZqToZmosq+fuL+2oLTCu725saa2sKiupbe4t7etu6+sqqu2qrO4raWztbKuqbC3trGztbqnqZ+1qJ2eqKKprZqnvpito66vtLWtrJ+xrbCpopyco6uom5ScpqOdmqmipJaan5yQm6Orqqm7n6ekoJiZmZ2hj2uhlpmccIKVmqN/dZGpp56UlJ6QiJeZgJaKoZB4hpSMg25qfnaDcWyGi4Z9hIyHcF5jYWeEmIZri4+UknR3i4R+g49/Z4aAZ3VoZVdcaHNuTlBqY2dyhGdfZGZubWpeX2GKj4OEZU5LRDlGVGdeSkdQUFRVS0hSYG90ZUZaUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc1WIFsMTZPa1tOXEtbZmI+RzFRZD0qLoujmYaUsJuck6Cbqq2qo73Fr6m3wri9vK2ntrClq6S3s7GzsbmtqaastKavtaKouLa2qKest7OutK2zoqmfs6qeoaSbpqeYq7qVpqWvsratrqSprquspaGfnaCnp5uXoKWlm5unp52Tn5+YkJ6nqqO1r6Ojo5yWl5eXo4ihjpKah6GHk5ygf6R/paqekpGakYiEcniNjoWIoXaIjGmXiGZ9cnihb4iHhH6OfX+hoKCZgHyHnnSHjnabimyHgYNsaGVjemtxYVOFbWNsaZhxWWpxb4dYXmlba2tbiHFuenKFZ4aEWl5HTj9HX01GUlZWUVFSV1RnXk1XSVJTT0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiLppaDnKudmZidn6qqp6q/w6+xur23wL+qpbewqayms7SurrO3q6mlsa2ltLOcrbW2tKanqLOxrbKorp6roLKooKOimqGjmq2zlKOlpbW8p6ynq6qtqKWhoJigpqOZmaWjpJicpKmWlKOclJOkpaaht6OjoKSYlJOXk5uIro+YlImpi5ehm4WxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGXvJzFenK1pruQe4BslrGrsHhoa1ixrm5labySvG5oem5yj9h+U2pitrJ/gXKVdJqhqpBXT1diUFZORlRbWFFQUoxcV1xQQFxEUU5ER0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaSgKeqn5ecnaWtsqixwr2ytcC1t77Cq6azrKypp6+zqa+2tKenprSlp7iunLOytqqlpKexrq6xpqqep6Sxo6Kfnpebn52uq5Sdop+zuqOqqaKtrqWhnZqaoaefl5unoJ+YnqenkZynmpOdoaaioLCin5+jlpWSmJKZha9qaoqNqn5ng5WGrWRwnZyTmaWUca6hpH54u31roY92sV9qtFulgGackWBmgnpmf2p4a6lkvnJnpox1sWp8sXh0kpNjbW2nbluEoEVoZoeWRXWcYH5nfKSngllfi6tpgJZ4eWqnN0qvXFhTbGRbS05XX1xXVjtOiU9YVy9JVFRJQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMwG5CilYKsp6Weo6SqsrestL2+sLbEsre6wqapsKuuqamwrqOwuq+jpK6yo6i4qJ6zsrCjpaCqra+sr6ann6OisJuim5eVl5ubrKWWmqGes7Oiq5yira2gnZmXoKGonJmdo5+cmaGmpI+do5qXoJ+qnqamoJufoZWVkZaRmoW1m7V4hamZtZl2hrObt36TlZaolH5rgaZ7goaIkpSSd6tna7Fbq3uPh5R0iXGPhoB/iJCXeIKCi5iMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinC5RoW9bU2toYExLW2RYXFpCPrF5WFhBI01oRUJFQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5WHs6amoa6pp7Ksqbu2wrC7wq24t8CqrK2trqatsamhr7yqoae0raOrtaSms7Ono6Kdp6qyqLCnpZ6fn6+Wn5iUlZWXnayhmZmkqLSvoqmPqaiqm52VmKClp5qfnKKfm6CjpKOVm5+XmZ2iqZulmZycoqCXk5GTkpyD1ZOZuXCwwn7FhnzWlJu7fJmVpI+NnI2ke46Ho4KlgnqseY+dVq96iH6farlauXaHhH2mgpN8mHqqeY2dkHuxbo6EdJC8hW+UUK+nxYpRoHpjYKljdHKIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhObU1bUk9ZZllDRD5FPzA9PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzElm6KTmLGoqKWzqqW0qaS8t8GwucCxtbS7s7WnsbCjsLKmn662qJqnua6jr7Ggs7SwoKSen6epsKm0qKScnZ6ql5iXlpeVlaCqnJmWp62wqaOej6yiqJadl5yhpaGYoqGhoZqhoqabnqGelJmbpqCcp5Wbm5+hmY+RlJGciLJuaLVxq4dujqZytHNytnuZl6OLj52No3+RoaV+sHaDkdLRdlyue4V/pG+bqqZrh4V9rX2XmY97sXOSnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa19saE9VR0k4PVZRWldYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGdkqWvraSqvK2mtaWntru8srq/t7W0urqzpbS0obGxop+ssKSXprqupLGwnLS4qp+mnaGppLKorKmkmpyaqJ6VlJiYkpKip5+WkqWqsKailpOtn6WSlKCbpKaflJqlpqGaop+tmqCenZCVm6GenKWVnZaZop+VmJWRmoWse3eodqOOiIapb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9eIV+j56GmZl3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV93d4domIhrXa93lZ6PeGw1eciusl9CU29eZ2BFUG1fcG1WVU0uZWNoUlhRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk6OTmfnZSfuLCXtMGtqLOoqbK6t7O3v7m3srW8taS3s5+0rJ+fqKyflKe1q6ixsauttKSbqaCgqKG2p6apopmdlaWhk5KbmZKUoqSakpCmrK+moJWZqZ+ijpGimailoJWapaidnKSerJ2hnaCNlJ6anaGYmZyWl6Ggk5iQpp6GqX19pXihj46DqnCti4GnhpWfoYiXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aIdKiCjpuNkqN8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcW0x0XWJmTVthX3J0X0pWNkqbk1hIRT1HRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMj84oZ2Zmb+rl7TCrqytqaa0sLextb+5ubKwt7upurSfsKSdpaennpOqsKmvqbWsqq+hmKGgpqWkuqKjq6CXm5GioJSTnpqUl56fj42LqK+vpp2Wm6imn4ySpJeoq6eUl6mnnp6go62koZ6hjZWhmJ+gkp2XnJWdoZWWjqubj65tcrRyqYx2iqZztHhzs4CRpKKRnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZKIrWt1s2GdZqJvh5Jql1ytX02hfIeRUnOjbXp/fm+Yh3Fcr1Y8nHdlVG9uLlynT2NSa2VibVpjXWFwe2NTWlE+Pm1vM0NCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWam527oZyywK6uq6unt6m4r7XAtbywr7m4q8G2qaqgm6ajop2RqqqotqOyp6+qoJecp6Ckq7ido62blpmPpaKVjJ2hm5icn5GTlKu1sKeZlJysqpeMk6WZpa2ikZaqsaSfnqarsJiho5CZopafm5acl6GSnKmclJCqmYfUkpq7c7DDgMOGftWWm7h4h5CXjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2VgaypcXt/dbyIp6BpnWGmjq+hfox0h6p9vm5zvHSyg3V4gYpumohxbo2kdL1ed31bYXm8a1pWW2p6XmphZWdibXdvWVtZQ0FAckBDRys1RyInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnm56hvKKXscOwraqqrLGnuK+2xLG5sa66r67Asaukop6jopybkKmjqrKktKatpZ+WmaqZpqy5naOumJSgkKWgkoyco56XnZuQlZKvubGslZejp6eTkJaknKStnpGgqKufm5+oo7Oeo6WOp6KUoZqcmJWjmI+woJKUqZ6FkJm1gJCRjLeVeIKTmrV3bWtuc256j4SOiXSewbu9mnuBsqhwgHSRuIN8hoaMho17ioeNl3yku7m9nHV6s6N0dpd1dLB1mZ5mhmmNtXRycHe2jF6Aen2KaIN5bXlji6xwdYV/WlunakVlWlRmYGNdY1FnZ3BsdEJNUExEOlpNP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPjs8p56gob+llrTCtKyqqKyrqbuusMWutLKut6e0uK2poqGlnqCdmZOrpK2pprWop5+blqCjnaykvqahqpeUnJCim5GPoqihk52Yk5eUsrW3rZidpKSiipKSppulqpuWqaSlnJqhqKamo6mhka2elqOel5eXnZ6PsKiUm6ehjmp+aZymeIdyfZqOdHpkh3u9vsC6b5KCcZWHYHJqWl6bimFjiI6Va2B/lWNtnXdilWuAmpWUZV5gY3GaimhyjH2FlWdqfnJ0eH19Ylt3dIFoUFxuhH17i2tYbHqCc0lKb4ZwTXVNRVddZ2FMWldnY19PW211anFST0RFTjtISD1MPzItMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqigqKHCo5q0ubajrKWup6i1sqvIq7Cyq7SjvrGypqCiqJ2jm5mZrKavpKW1qaWbl5Whmqatqb6nqKaVk5uVoJqSl6SpqJCdkY+YnLCyv6ybp52nooiTkamaqKOam6yfo5mao6esop+ropqxm5WnoJeVnZ+dl7Gkl6GomZyRnZyipJimopqcmpqZj5WBZ219cXeSl5SRhYu1qo2GmJWOioyYl4eUlYqEkpSRiY6SlJiUmJeaoKKanJShno2CeqSGbGp8kHyAdImKgXGCeHl2douAe4prc4F0g3Vkd313a3B7bWBjXXBoTVhaZmpgV1pveW5tZlNPRlM5T1lNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzobOhv6GksbK3oKmlsqelsLWqyKussKW1psCntKCdpKSco5WVoKqmraOjtqufmZaVn5atqaXBnqujlZKcl56Yk5Sin56ip5ORmainssSvmqucq5+QlpaonaqbnKCsmKGbnKKkr6ahpaifrpiXp52ZmqCenpyvoJyhppWYkpiToKGVo56XoI6Wk4qKjY6WrY98lZuCkoKLqqiGgZiWioSPn4h7hJCHhZmSiIaKlY+bl42Ql56jlpqTkZ6Nf45mobOvhYqEdnqQinx2eXpvZnqRgYCJa3WBeYhzaHN/enWDh4JrdGR5ZmBpZWNkZmtZa3twaWpcU0xQRF9URUA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r7+sq66ysaCqprGtoqyzsMSwqqujs668o7Sbn6aioZyZl6elqaakpbO1npWUnZmZsKauvqCropCRnZqZk5GVoZyXqJyEnqqrorPIs5+qpKuWlpeap52omp+kq5Oenp2gqa+ppaOroq6bn6ChmKSenJ+dr6OYnqiTmJeckaSZmKidmpdlgpJ8ZX6NmY9jeY1saGt7kqSqamWamH5nhoplZWloe46hj2tojZeRondraouYo56Zc2xueoSNh3pYZV6Ggl5si4mAdlxoc3d3koCHgm54gniAc215hHR3iYiOg3tphllea3RkXXOJaWp9cWtjXlJOV0pkWEFKND1GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsKqlqK2tsKetrbC8samnpK2vsJ+tl5+jnaKZmaarnK2jpaepsq2elaOQoq+mtrmlrqOOjpqhmZKSm6CZmaWVe6WtoqizxLikoaevnp2UnqKeo5yjqamSnqGdoKqwqqukqqCqm6afqKCslqGbpbCkl5uqlaGem5Kll56qmJ5+vYOHcrRyhJ2FrWh4ucS4cZOio3qmmZlzqoJ8y8DAu3GLooiCn32VmIidwL2Clp2djZ3CwXuCfJKNmsPAfWulsm+MgW/Ken+bd5KDjoF2eoGAeXF6f4dxeIWNk3ltd5RjZl95ZGBlgmNedGhsZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7nDtLCvwKmolKOvqbCuraaytK+ppaamsaufq5iaop+cmqqnop2soqWopaS0pJ2ik6atq7izp6+ikZGZnaWSkaChmJufnYenrKSrrcDAsaGpr6mXkZ6doZmio6qjk6ChnZ2trqmsp6Ojp6GlpZ2tqZKkmqitqZucqZysoZaWpZWhopecf86UeHqkgXiUlptfro9ejqeBoqB8p5abdKuCgK9eY42qeqeHhaB0l5OIs2OCq4ahjY2zaoSvdH2XiLhhg61Zo81tkHV72nt/mXB+h5J2fmV7iHZ2a3yIb36FkZJ+bYKPYHJscGdgX3lkXHFoamNmYFJUUlddS09DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcLAv7W0sLiXnZGkqqits6ulsqysq6SrprCqoKebmaWXnKKvn6CfqKejpaGesKybnZWnrq2xqqisoJSSm5+lk4+fpZidp6OerqSrsKjAxrOoqbGulpKdm6GXn6mqn5Wgn5ydra+nq6mcp6ikoquTrLOXpaKqqZ2jpqWhsKCSmaaZoJqUlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnneqgn2tf5xyrX6rh4afdpiSenyXfqqIooyRjJ1+q3uJlI+fgHutVpzEeo9vksF9gZVtdW+MbWV2ZYZvYXducm+Ki5KQg22SkGZwdXVwYGdtZV9vaWluZ2NXU1xhWVJTQzhJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytKCdo46jo6Ksr7auqLGmqKqnraurp6KjnZmilaClqp+hpaCoqKKfna+smJqWqKevrKimqZ6XlJqjopGUoa2bnaajr6yjrLSquc2yraatrJaVnJ2imJ6urJ2WoJmdn6myqaqqm6yrpKOsm6+xoqirrqWYpaqpqbGikpajpJqUkoWkaqR1iXqpdHqycIKmipmMcYigmoekYGBSq4R/roObdq6BpoaGn3qZloZ7ZoCjiaSZhoKkfal/gpWHrl59qVWdopKBeqKfgHvDr8WLcq+zs7lxYqmvwnRojYyYj4FtmpRwbnl4eG9sZmVlcXBmfGliXVdgaVhYVUxMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVv6GZq6ehr6KesLSwr6mtoqemqqurqaSmoJuknp2mp6ajnKuaoqyhpJ+vop2bk6qktbCvoKmbnZaUpqOQmqKooKClnLCmpKixrbfIsrWqq6mVkZ2copifpbOdmqCUnJ+nrKykrpqtqqOiqqKzrqKqs7Ghmqmorq+2opKWoqeYm5F8qmyehId1q3l8sG+CpIuJn5aWn5SB0ri0uMmAgbJfX5Spg6OIh6B6mJWaeKrJdJmklaiqkZOajICbipnGxnhmoYKlc4GfjoJ9r11wtGKwdUujhm2nR4KTZI+QnpJ8cZeTgHF7dX57bltmanJwZYFqX2FYZG1cXllJTkxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz0tNU9UUR0cOzxGMiwkp6TAxritqbOtrKWinLK5rKqhppqopaqrqqegpqWYqqOfr6udpqCsmp6ppZ2ntZ+il5OpqrayrJylnKCVkKWskZmcp6OgqaauoaSnqbC1wrKzqq2ok4mXnaSaoaOuppihlZicpaarm7Cdrqimn6ykt6ygsbmvnZuup7Kzs6SUl6eimZ+Ogp1OeJqBf596g6N9g6SEhqaenJ6ThLh7fHm5gn7MxsK2eJuhkYuffpqWlop2npiKpJikqX+whZ2Fn4SsfZqUYqVspHCPhZCBfZaCcqxgo3NxgJpgvH1SVXWPkqSXe36Tkot1e3OFf3FcbW54cmqBb1tkX2huYmRdS0xRVEFJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu5qq+gm6Gss7Oln6CVpa6trqqnnaammqOnobOuoqmmsqCZqaSUo7aiopWXoqm1uaObop2ik5ChsZmenKeloaKvrp2kqKK2ssSxramtqZGHkJynnKKknKWXnpiZmqakqZqvoq6lppivpbytoba3rZ2dtbK4sbOml52voKOdhY/RtcO3eYeOhZGTkIGmeJShd4ygkYSlgYpxqoaEtG5yapmjm5WKnnyYmYaHj3OvgqWboo6mi5OdipWQmm1wslylc5N6nGyZf3uZfG2pYaNxcX+fYnOyuGh4kJSmmH2MjZSNeH15j4JtaXhpeXJugHVdZWRubWZnYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWTc42Krb+/u7q0npanpK21oaKZlaOop66rrJmmop+moKC1p6Kpp7CjlKyjjqSuo52QmpqqtLSknaScqJGUl66goJ2npJ2nnLWaoaqktqzDsKmrqaGMhI6coaCmopWampyYm5mmpKaYrKiuo6Wbraa+rJS9sKyforCzuau0ppqosaOnl3qokH18sHeKgaSliJxtsm+gh618oY6Dp5WYgKyIha6Fn5SpoKGXhp+AmZWAe5J+q4CdmpaLqnidn5CJk5KAea9do4F9pqdknYB8l3Nqr12la3CFmV1gW4ygbZWSppmClY6YjXt7hJh/a21/Y350boB6YGdlcW5oZ2dDWmFbPktUM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JODA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVldXWFZVVVFIRklKIygovZKag6nGwrbBs5+arKCuuKWjjpuko5+wr6qfpJ+drZmeuaCjq6CvqZquoZCrqaSWiZqQrrGspp+mmqyXmI+soaGdpaGapZ2tmKCoprapwK+lqaSfi4CNm5qfpp6SlJqalJqapaSkmqmsrKSln6qovqSWw6yqoqGrsrmqrqegs66oqZh2r36Qi5yFh3y6roqYZbCMZZWtfaGPg6aVmoGsioSwhaaZpKGhkYWgW2xqgbNgf617e4KBsWxnb5mYjIiwW320W6SDa8iiZJ+Ae7xYdrRasn1SroB6rFiAoW6YkKibi5eRmJh8eY+dfmR0fmKEeHSAfGFqZ3FtZmVlT1VkXEJVXz5KKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFFSVFdaXmBgYGFiXl9cW1hVUE5KRkM1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpcXFhXV0dCO9Kfs7K3vbq0wrOjm6ympbaooIuaoJ+cs7Opn6OgnrWYoLSoqqydr62erJuVr6iijoibjq+sqKeippmukpmPqJqhnaSfmaSjpZmfo6qyqb2vpaienY59i5qVoKCZj5Gam5Kal6ifoZqorqimpqOlqbueoMampKihq7S1rK6mnrutrKyVgKmSo6+Om4CHpJeYkIGAuMO6g46ck4SnlpyCrIqCr4imm5ulqpF+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+g2ujgW+rhGycf3qysMeDaquwvax4d6K+vHSBlo6nnJCbkZideoKRm3pjfXtkjmd5gntgbGVramJQYVpTalxAVWFCTio9OjQvHh8kHiUyIB0kKDA0OTY2Nzg6PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbO0sb+5sb2yop2upqWypp2MmKW/qriyqKG/pqeynJ6xnLmonq2vpqaUlLCsl4yDm5GupaKsoaOcqp+Yi6OSpp6nnJqhqKKZnqGsraq5rqijm5eSe4eZkaabk46RmJiPmJOomqCYqamhqqeho6q7nqjEoqCuo6qztKqwqaC6p66umnN1qqS3hmWJoHBnrY+Kj21vd6SQmZ+Bda6YlHCPi3GVqKObl66kcm1tbWWKeG9ugplxgXpqcWlniZaVmHFpaYSHZ3CGZF2IYmpvWVxnfnemX2FxjpFuZWSAjZOPopiZmZGYn32HkJV2Zod4aY5reX95ZGxjZmxiS2RYSmxaOlFlRVInSzorIxwgGyIsKRgbGC0yLjU6NDU3OTw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6m5ubKzqqmhrp6jsqmYkr6yxMm+tqqewKyso6GorKC6o6SurK2mjZeuqZCMhZWWrZ6mq6Geo6OfkYukkqeZqJmWo6qglpympqevuqysmpuTknuEl42lmI2RkZiUjZeVqJWfmKmjm7GmnqKruZ+vwKeksqWssLGqraunt6Ott5aKoKiltp2JlqKYh6makJSdkqmzmZujq6CxlqKgnZ+inKCloZWrp42TkoyHk5yclZCak5iRjpWFgaSal5WNi5OSio+GhH1niX50gnZ0h4txp2x6lJGTkoGBjpCQj52VoZaamKKDiJWNcmmQd3GLeHd8empsZGNvZFVgWEBqW0hjYU9aK0Y9KychNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRFSktLTVBQUVhVVlleYGFjXF5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbaurqKwo62foLWxkI6sx73Fu7mroqaem6afsaijtqedqbSnqJGYrKKLh4mPm6eWrKWgmaeenpKVo5eomqiZlKaho5Cap5mhtbuoq5makI17gZSLoJSKlZGVkJCTl6WQn5qqoJy2o56nq7enrsGuo7amr6+wrKmps7igrryZkaWkpraikp2mn42pn42Sn6Osr5uho7Cor5ejoJyjqZ6enZyWq52SmaGblJCWqpmNmZmWkJaekYmgnZWUhZKMkI2UioB9ZouFdYZ1eYiDc5xqhZCUk5CJfYyWkpKXlKKTnpiihImZh3tylnN6i39yfH9qb2RecGphW19ZbmNQYGRQWjpHR0U+Mj09OC8rJispJh0mNDA2NjY4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVVBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX19hYWJhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaatoKe1qpCQnaW0vK+traKjmnqdorGkpbGpl5u4pqOUmaqcjoaKiZyjj66fopWnn6GSl5ibrouqlo+omaiMmKmPn7m2paaYm42IeYKTi5qTipWSlJCNkpeijZ2eqJ6fuKOAhK+1oq+vdaS9o7Kgd3mgqrK6lHWspJ6JgKp/ZFxidqCOpJ6El31uk7Odo6etqqNlnZ+Sc3mZlnCAmKiXbH+ip4plnKWckZeYloySnJGGnZqQlYOSh4+OkomEd2qOhnaGcHuGgYBhaYeKlJKLWnWVkWhoj49ze6aamWV5mYeDeJhqhIuDb3mAa3FlX3ZwbGtoXGdlYmJwU1w+Tk5OU0c+QFREOTEvHh8mNDozMTY2Nzg8Oz5AQUFGSEJHRklLTVRUVVldYGhmZ1dRSjxERzw4VVJbYGFiYF5gX2BhYV9cXV9fYGFhYmNkYWJhYWVkY2hkXl1mm5Wmo6GvsayrqaWprqOnraSSlqu2sLKnm6umrJd0jJ2vn6iqp5OXuZ+gj5yknZF/iYibno2rmqKVp6GdjpaRnoR1ro+IppqokZekiZy6tKigmZiLiXV3k42Vk4qUkZCUjJCToI6boKaZnLKWgIybtZ2zjJKPvKegfqeieqKutoGOjqaeg4uGkLGpr4yKlqOaeYCLrIacnaKnqaeHlYWYd6WbeoebgZengoJ7nLF6ioagl5mUmJaCkZeWhJqZY3mHkISOj5GKg21wjod5gHCAgYV/hnSGhJWReJZoknSgmnR9mYSinoeYf5OLg4SZa46OhWx4e3FxZ2R4b2psalxma2pldFxfSVRMUUBFNS5aVFU3KSEwOT0+NjQzNTY4Ozo9Pj5AREk/SUVKS0dTWFtZW2FhaWZZUUg5RUs8PmFWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mra6rqKygqLGmp6mlmZSuyL6xopenqbWej4SdrJynoqCNkL6emo2fmqCQfIaOmZiIrJyhlp+gkY2TiYaAkaiNh6Kdo5OXnoafurKnnpuSjoVwdZCJlJCKlI+Pm4uQkp+Sl6Cklp6rh5+0ibSarYrKh6quiLeFjK+CsK6DqY2lmI2dfaiPcnt3nI+nlmiVpHm0jJ+epqiSmMKBf6uImKFynoCapX2XhZWxgKF9oZOgkJiXgY6Tm4qYkYt8hZOGjZSSiYNtcpCFf3lxhoGEfIR1hIGWgI/FZn+ph4+ja56Do5uEmoGOjoaKmXGOk4Vod3R8d2hodXFoaGteZHBtZ21YZ0ddUk0yRTQ2TmFjNyYzPEVHRDo2NDY1ODs4Pj09P0JNP05JSkxDUFpdXFdhXmptXFFFPUxNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUl6KfsKepqKaroKS4saqrp5qUoKOkq6SXpaq3o6+AoaecpZ6diZS9mZONoZKej3mElpaRiKuZm5uZoYWPjHebnI+fkIiepJuVmZiHo7mupZqcjIx+Ym2Pi5OQjZCMjZiMkZKfj5SgoZmhp36hp4etnaCWrY+enJ2RhYCgjauuhqONqZmMmn+jdYCZlGuCrHVNq3iHjZyRm6ingKmrfYOhe3qnaZ5/kmtnl4aXtomefm5gZFmDl3+Me2Roi3KZfXmVbF17lm1fU3CDXF9reYNgWWWCfYOAl3CnqmuDo25ypXCfhaBpZqBtW26KfGZaYIN/YldQb3dmbXRya2pvXmtwbWxpWGlPXVhGOUE0R0ReazQsSUNSTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl5jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBiZGNhY2lrZGJkZGdkYmdlYWNol5adoLigqqSmrJGhtbysrqKZmKCipayuoZ2utaKokqGgn6abmY2YtJmQi5+MlYt1gZSSjYqmlpWYnp5/koWGrKSHm5CKmKmYmZqSiKaxp6KWmoiJgGluiIiLjo6Ki42Si5CSooyUnqCcoaR/k4GPo6GUoHeclo+ng6Gnf4aprISleIp8hJp+onBzlIiWe56MeW2Hm4yZkJuomo+HnXuConN2pmaefnekX5h6fZJzom6Yt7S6dJOHgn+1qGSBxrh7cJW3i3GAmqRic6yrYH1pnbN+bnyGgo2Ci5hxf6NscqN0noSAo2CdmbOWcXyXn7N0c1uesoNqYm90dnFpb1hrbHJyZl1pXmJLRT1ENlFBWXEzPVNHX0pSPTwzOTU6OjZEOztASlA/VU1OUUBFX15bWVhgYHxkSEM4TFdVVmNhWmVma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLe1rq2gm6Kdo6Omrpybsa2sk5ihmaGkmZqUnqubi4iSeIuFcYCWjYmPoZCSlJ2XfZCJjqigh5iOipGjk5ybjYupqKWekJeHhX5re4d+fY+Ng4uQkImPlKCDl56gnaCei4l3nJiijJ9yoYuHqIibpY+Wp6p+rYx+eqCZeqOTeIF0loiNnH2Vn4abjpmbpoaiZKF8iJaQm41snmiajW6amXuAi6d9cmh0q4Oeg3SqaJWaXZuFdoSdaKpqgLhmXKhwgZxglYxep3Z1h4l+nmiadYaTkpeOf59umpBtp5pdqH54u2t+qluOhF2zZ1xucnp4a2lccWp4eWNgZlhiQVFFTzdWQ1JvNUtaWl9PWkRAMTUxOzs2SD86Q0hVPllSWV0+RGJeVmBRYWN9akVCOU5bXVllZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniGOUm6u6srCsnaacnKmfnq6bnrCorJ2XpJqhn5iWlqCjmYaJjWqIgHJ7l4iLlpaEkZSYj3qKhJajnYqUj4aLnpKdnYmQqaOgmoySioCAaYCGeH+XjHuIjo6Ij5aaf5Sin6Chk5hyaJ+Kn4+McJKMgamHmJ6ip5+nfK+to6K4l3ejs6KkgIiUeZ17qpp/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmn90qlpdb3uWi3ieYkx+enqFY3mXQkyeWaJqcnyObYCIhJl1m3iGibGzf3+bk6d2gp1uc32Ub5lza6RdlXZIZWRhc3F+fm5mYGxpdntkZWJSXlddVVdAWkZRaERTV1xiWF5JRD1COD9COklGOExFWEFXUVtWREZiXFpgS2BtfnJFQzxVX2JaZmpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZsXmVnZmtkZmxpaGtpk5yBsK2ZhFReoKazubOzqZqijJyrnJyplKKrpKGoj5+enZqZlZihnZaIh4l3hoFveZWFkJuLfJGTlohyf4iSoZtzkZCBiZmVoJuFjqmcmpWLi4p8g2yEhXGBoYx4hY2IiJOYlXyTo6Ceo4ithn21hI6enHullnqpgZWcj4qgnHynaHdtfpl0oXNxfJ6GmXCTg659pIOmnpmAo29eqGd1omNvpWGc05B8e5l4cnNjooaQfqNzpI92a5CzjGCCmIlzqrKovH93g21+vqaptF6cbn1xl25/cqJyXaRnc6ZhaKZtm9SZfYWbcHp6l2ubfHiXc26ppGdhZXlwgIRrZ2ZkbnV3Z2BjVFtmUVFiSVdKVGBXU1tlalxlUUZDS01KS0JLRThPQFFOWFJZT1NRYWZlalJjd3l3SUZFY11lWmhpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7CrVFxLfqmvsbSws6ObmYWZqaCgpI6lqKCYqYqZmJiTmZOSoJiOh4Z7cH2EaH2Pg5SagXeQjo+Jb3+Gj5KSbJeTfImRkqSWg46qmpOSi4WJeoN2h4BugZ+GeICShoeZopd7lKOkmp+Js6Gitot6rKekrqVwqICakIWAm5F7pIChmYaYcp6Eo66vipeMf4ykjZWDraGUdrS1tcmhc5SKgZ9gnZepbXmVhqCbdaGHd6B+kpeLgW9MZqOScJuHcqR7enRhg4FrfqBrcWRfnHF9dJdpemmztbTGpnOYfnqda5ybq3WEm211eJhpmnp1mHJQRX20Xmp2a3mHZmpoYnR1cG5WXlRZaVBTaElWTVlTVl1oa25WZ1dNS0FJTUtISk9BUUtQZWNpbWV1c3N/eXxudYl7e1RQTmxeaFtraVJqaGlsZ2xmY2VfXF1cXmliZGlre19dZGhjamZvbWVpbGWhnIivpoRmP5Shs6uvr7aiopCAmKqioqWMpaednaaCmpeWjZeQj5yTjoiDeWp5hmWDjH+XoHl1joiMgWmEhZKCjIWdjXqMi5Wmk4OXqZiMkYuBiXqAfYt5cJChhnmBlYeJlqCVf5Slp5yWloRmbnicbKJkfHGld5uYcGemgJaLe6R6n5aDl3KedoGKlJaPuW6QiqJifZmhlYhtcmmranWgbW6mX5ppi5BoloealXWigH2aYIyGjXVviGJooGWefmmadW9jZoiCbXKiWl9bYqFtXYmMb3t+c3JkpW13omRnp2iZc4yZb6JvU4mQb6BfZahUi15UmG5tc2tygm1waWt5c2tvUllXV2daVG1JWU9dSFhpaXNqWWtWUVJFVlxMWFNhVWlrX3d0en1wfXxyg3t/c3aNgIR2XlFyYmdicGdQamhoa2xuaGRnX11eXWBrYmppdnVdXGNpY2pqc2xma21jnKSYpnpldG2Lp66kqbCxpp+LgJirnZ+mjKKhm6KigJaYk42aj4uYkI6Ke4ZxgIhoi4t8mJtzdIl9kHtkgoeViomWmYJ8iIeWqJGBoqyRhpCKgop+gICOc2mPpYR9hpSNiJigjoiTqqadiaZ4lZt+pYiWjLKYnpCCr5efpXeUh3mpdKSOhJpupKKMkoSMg7tufaWvg4aGhpOVnJ98pXpxqJWglmaefm+rY5aKlZJ4qGypooGJdoiDd6qRpodqkbBrdrOMqWuKhm1tn56SlWB+q4uqdn5/jKWedp99hKSVnaBqm4h3rGefrYy2dHe+jaSTWYOmjathdXJ0cHx1cWNqfm5obFNXW1ZhYl1rTV1SXUlebm52YFtxWVtgWmd0ZW5vcWJxdGB3en55cnmDc4R/gXt7jIGCgHZieGRjbXNkUmtnaG9scmpmaWFfXlxia2JtbHpvXFxiaWJsandtZ2xuYpWlqp2BgJ6klqmqnainrqSZiYOYq5qepImbpZ2pnYWMmo6GnJGFko2MjXSGeoiEb42EfpiTdHSGcpKDbX+LkoeGk499e4KFmKaOf6WmjoGOiYWVdoKHkm9si6mAg4uUjomcn4mMlKqjoI+AdZSWiH6BeZSuo3+Bm3GPhXiPioN+e3KmjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3p9iWuMhVt5eHJ6cGhufpKJcX91gY+Uk3GGhIJljH9egX+Ld3VzlHVveW5uh22EhV52aHiOZYCAhY2pm310fJZqiYhwgXZ9hnZtbWeMc3l7mHiFW2tYeY9pbndycXB4eHBdbIZuaWdWW2BXXGVrY1ViVV9RX3B4eGxrdmVqa2t2fXFydHNhb3VidHuBeHV5g3WAgX+BeYuFg317bX9sZHhuXlduZ2h1a3hqaWplXGBaY2lmbHF1blpbYmtkbGx5bmhsb2GNlLiopouhopqmpJmlnKujoYSEmKySnqGJmqaaqZiDgZuKfpaTh46KiY1yg3yPfX6PhXuXjnNyg3CVhXt9kouGhpCFeH2AhpmkjnynoYuGkJCFloOGjph3coWphY6RnZCInp6IjJuon6Cqg4mNlJp+fomWraiPkqaPd2+ckIJ5kW99qIVwfZVxa3B9gZ+Mf5OOjGhtXYOLjJybno5zlYuIcXRrgXZ0gFhyboaRgX1+jGpdamR7hYSJgGBpeHqbe4KLgnWBhYJnd4qGa2FwcYF2XnKKgYiPppWFZYyPg253i4Rxho96cGZnZXuDepZbXGpnbnZbe3l3dW5zc4JmXG2Ka2tiWlpfWllscVxfYVpeXWZ0fnp0b3Rja2tqe31ze3h0ZG11aG18fnZ6fHt6eoCAfm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VubGdzeW9oam1gi4uqsKGQo6Ganp6Ynpmoo6J+g5mtjZ+ViJyikaWVf3uYhHySmYmIhoeKc32Bi3aFi4GElopxb4BymIaEfpOEg4aKgXqAg4uboJCCp6GHeI6YiZWLi5yXhYN6rIKRl5mUip6dh4ihq5+ioqOLiJObnKOZlqqhp6agkpuHlY17d42OhKd+fpKRkpOcsqablZ6QjbKTl4SljIyVm5+JkJuCiJGKa3yNd3hlgoaQi3yJnYSHi5CIiICEhJB3fHl0maGIhomeioSUfn2KgIB1b3OEg393hoaKj6aQg4WNh4ONkIx9iIyKkYN3bIKEfXqZanJoYXSKcH16d3dvdnSBXV5vhmhuX15aXV1TaHJVY1xcYWxodXx8c29wZGtqaX98bnmAcWpwcGxngXtygoB4f31/hHttgoyGfHp4fH16g3lOZHZqcm1wemVrZWNiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZIyHnbmel6KhmJWYmZSZpKGefICaq46ejYagnIueln15lIN7jpmJhoSEhm54gIBygYd+iZSEbWt+epeHhIOQf4CGhIZ9h4SOm52Sh6ufhHKLkIaTkYudkX2Ne6qEjZKYlo+cloeGm6afopqdhYORmpmYkJqmn6WdnZCWgJCJdnuHjoSle3yOkJGGmKqhnZOdj42qjpGAnYyJk5qego6XfoaOg294hXJ0YH+Dj4Z1i5iBg4+ChoV+hYOUbXl1dJKhiouFmoSEjHN/iXx8cnJ7h4N6eIqOg5Kmj4WDjoGDiomKd4aJiox9b2x+gXxuaGxtZ196f2h9e3Z0dnV7d1xfcH1udGBjW11eUWduVGRaXmJraXZ6fnFsbGRrameAgGxzgWxsdG95b4V5boeAdoKAfoV2cYKNiH57e3x/e4KKYGl8anVoaYJlamNgaVxjdWhvYnRtbFVjcXllcHp6c2VqbWyLiZ63mqGkn5KRlpiLmp+fnnt4nqeRnIqHpZSLmJl5eoyFfImRg4yCgoJue394c4GFfYuRfWtofYKYiYGIjnx9hoSHfY+BkJubkYmonIBwjIuMk4ehooqFjHyokYiQkpeTlpN4jKOgoJ2WmX+AkJqYkoyao6GjmZeRm36NhXiAg46GoH9+jIyPfJikoKGTmZCPpo2PgpqRiZOXm36Tkn6HjoF0dIJwdmB+gI2GcYqVfIiMcYx/goWGjmd3cXiLmJGPfpd9h4pygYZ7fHF4eoqEenmQjIKVpZOLhZB7hYaHhXaChImIe2ZyfH95e3FsamZffnNofHV2c3xzgGpeYHN2cHdkY1lfXlJraVRkWV9haGp2eYFxZmtkbGhlgIFrbX5ob3FrfXiGemuMgXOBgX6BdHaCjYZ+fHp/gX1/j2pyg25zaWKHaGxiX3FWdG9tbmB4aG1XanR2Y3V6e3Jiam95iY2espGkpZ2OkJiPhp2gm518dqWhjpiAjKKKiJqWeHuGh36DiX+IgoF/cX97dHaChX6KkXhnY32Gl4qCiox4fYCNg3mWgZWYlo2WoJt+cIyCkZSGppuHjYmDppWFk4uWl5OSd5GdoaGXk5Z5fo6Yl46Wmp2knZiSlJt5j4WCd4SWjZ1+gYmNjHKXo56hk5mOj6KMi4OWmIOSlZl/mIx8iI2AdnF9bnpkgHyKhXCGk3+QgmyHgoGAiYRldW97hpKXjHyTd4qIe4CFfHtxfneIhXmEj4mKl6KVgYOLd4iEg4J3fIKKhndgeXh9dH94Z2xlYX9pandzdHV9cXxiY2FzbnRybWFaYV5bbGVSY1hgYWlrdnmGcWNqY21laH2DbGh1aGxvaYB8gXltkIZxgISDf3R8g4yBgH56goN+fJBtdol0dG1limxqYmN1VoRpcW5geGdsYmp2cGZ5fHlxX3FshoWPnK6XpqiejY2Xh4afk5eZfXiqnIqZepedi4yYkHl7gIt9fIN8gIKBeHR5enR9gIR/iYuAZF59i5WHf4WHdH1+in99mISXlJeMpKKYf3OHe5SSiqePjI6KkqCRg5GQlJeRi4GPmJ+akpCQc3+NkpSJnZ2eppiYjZWWc42OimuFl4+ZeoeIkIlvl52ao5OVio2ejIaCkpx/kpKVh5mIfIqJgXlxeWt1bHx+i35thZKClHhwgoN9fop/ZHJpe4CWl4R+jXOPiIN4hn12d398hYB8goyEjJSkj3iEgnSJh32AdHaBiYRvYXt1enF9b2JvY2R7Ym5vdnN4d3N0YXVgb2x1bm9cXF9eXmteUF1YY2FobXR7iGtfamZqY2h3iG5mbGhqbGiBfHp3bpCIc4GEhH10gYaJeoN9eoGEfX2OcnqLeHhubIdqaF9pcmKHaHFvZXZnbmxheWlrfXt4cGF3bYuAmZmqoKOonoqKkYaKnouVmH53rpmNl32fk5GWlIh3fXuKfHuAdnh/gHB0dHtvhX2BgIp/fGFbfo+ShoCEhHN6gId6j5KIkpGck6WclYJ9gn2Oi5KkiY6KjZeajYWRmJOWj4qIjJKck4+LjG6Dj4+RiJ6ZoqGXlomWkG6ImYNmhZiOk3qIhJCKcJWalKKSkomLmYyCf5CefZKPkoyZjnuKhIdzcnVrcG51e4t0boaQjpJxdYB7gYGIfGRwbHh9mZN9hIh0kIqAc4d5bn99gIV7hYuIhIyVqIx6h3x+i4V4fnFwgYaEY2h5dHVwfGJfcGFrdF5want5eGxzcGV4XW5sc21zWFpfX2JrWlBXWGVjZ3FxfodmXWloZ2JncY1uZGlnZGlogHp3dW+OhXSBgoN7dYKIhXeFfHiDhXqAiXd/i3t6cniDamtfcGh0gGpyb21xZ29sZXxjboB6d3Fsd3eKfqKXoaigppuHjIqBkJ2Hk511gaqVk46HoY2Vk5CAdHt2hXh5f3Jze4VrcnB6bYp2gIGHbnFbWH6RjYiAgIB2dYCAf6CGkYuSnZihlZh4ioCBjYmcnoqPhpKXloWJlZmPlouLjY2MnYqNj4NtiYuQkIqdlqGcmJSFmIdqhKOCZoWdipB+i4OLgXeTmJGekZCJiZWNf36PmHyRjY+OmpF8ioCCbnVwbG1vcHuFaXODjpiKcXeAdYKIgnhmcm51gZmOe4iEepOReXaHc2+Ie4WLeoqFgoiOm6OHe4N1gYt/eHhvbIGEgl5ydHJwcHhaXnBgcGpeb2p9enBtbWpsdmBwb2pxbVpYYWFiblhRU1pmZ2N1b4SCYl1rbWRiZmuSbmBmZl9na4F1cXNwi4B1f4OAeHWAi4B4hX93h4Z3g4V8h4x/e3aKf2pxY3xjhnxucWx0amhvbHZ4X3F/eXx0dXSAgn6klZqtnqaWhY2Ef5eUg5CgdYuglJOGi5uMlY6LenJ4dIJwcoVzcXWIa29tdW2IdoN+gG1uVVGBq5WHgniAd3KCeoKggpKCk5OYnJOaeJJ7g42TpJqTjomVmJKEhpeZjJSLiY+PiJ6Ej4p8couFiY6InJqfmpaUf5N+aIWch2eFoIeShJGCiXGDkZePm46PjIyPjXh7kpB6jouMkZaMfIh8gGt2am5rbGx7fmF6fo6Wgnd6gHiDjHx5Z3Nsc4eVin6IhnuTj3F5g292jHqJi3qIfYGLkJ6dhHx7d4KLfXdxamyCg3pgeHBubHJ0Vl5vYnJgX2xueXBob2Zmc3RocGthd2VdVmZgYHJTUU5cZmVeeXCIfF9caHJiYmVmkmpfaGRbZ3B+cGtxdIp9dnyFgHR1fox5e4aBeIiDc4aFfo2Ng3t5lXhmcmqDYIh9b29remBqbnR/dV90fXiGeHRzhXx4oI+ZsZyljoKKf4Oah4CMnn+LmpOOhYiXjo6PhHZ0dnOAcG+Fc3Bxg29qaXZug259fW11c1JNgt/IktaTfHB1g3aDn4OTd5SRmZyQmXuUc4WQn6GTk5CKkpuThn6WloiNjYiRjIicfo6Ad3qMfoiMipycnZuVk3qNdWeIkYZsiKKEkYiXgoVjjJGZjpWKl4uNiotxepSIe46IipORiXmFfH5se2Vyb2treXlcgHmQjoB7fX5/ho56emhyanOKj4mBhYR8lIprfX5uf4t+i4d8hHmBj5WamYp8dniDkHhzbWdxgIRtanRvaGp0blNeb2RwWV9rcXdma2piZnhyb3BjX3dgYFZrX152UE5LYWdjXXpwiXRcXGV2YGFlZY5jYWZiWGlzc21qcXaMfXR5hoJ1dn6Lc4CGf3qJfnKJh4GRi4h8fph2ZXNufWWIfm9wa4BabG55eXNhdnp7jXZyd4p3eZ6Lm6+boJCChXeIlX59ip2HhaCRj4WMmISSjoeBdHdweXFuhG9tbn5yZGV4cH1ten1qaGtjpJrB3K7voXNsdoR2hKKFkm+WkZWglZyBknKFi6OXiY6VipCdloOAlZCFiY+AkYqJln6HenV/iXiGhI2cm5iZjo92inZuhYiKfYqjhJGJnISFXouTl4qOiY6KioSJbXuWgX2IhYmRj4Z2hX19a31keHVpbnhzWIh6koeFeX6AgIWMfnhlcml/iY6JgoJ/i5aFa4F1bYeQgY+EfoJ6f5CVk5iPdXN3iI11c3FndXqDYnRtcGJpdmdSYXFnbFVfbnR5YXJkX2h9cHJuWmNyYWJXbllceE5NTGRnYl53c4ltXFxkeV5gZGWFYGNjXllqcmtua3J3jH50d4SBeHd7iXGDhH1+iHt0i4mHloaMfn6Xc2h1cXlti3pudHCAV3F6dnlxZXd5hoxodoCJcn+ch5mnnKOShX1wjJR4eYudhIWhjY58lo1/moiEe3J3cHNqb4FraW18dV5heHd7cXV7Z2BkfOvatcnD3IhzbHSBdoqaiY5qmJCPnZaTgYlxhYmgjYSLlYqMmJN8jZOIg4mPe5CLhY+Bf3Z4g4Ryh4KTm5eUl4aMdYd/cISBiYaYoYKTjJ6CiWGDlI+GiYaJjYeBh2p9lIB9g4SJjo2CcYZ+f3F3aHZyaXN3bFqMfJKDhX1/g4CEioJ1YXNriIGPioF+fpGQfW2Ba3iFjoWRg3yBfH+RkpCWiG5xeoyGdWxxbHJ5gWB0aW5da3ZgUmVxaWZTYHB2dGBvYF1ognFzaVdnaGJpWG1WW3VMS0xmZ19icnOFaVtcZXleXmRne2BkX11Za25mb2lzeIp+c3OBfnp2eohzhYN8gId2d4qGjpmBjIJ7k3Vsd3V5eJN0bnh7fFh6hnGAb2d4d5KCY3aGhXGKloWZoZqiiodzb5OLcneOnH2KmomJfJ9/g5l/gXhxc25vZHJ+aGZsd3hbX3l7e3FxgGphZ2F/1baOkKZ4bnF3fHGSkY2HapmOiZySjIZ7aYeLmYaBkpGGh5iNfI2NgYGJjXuPjX2IhHp0eoJ6cIaAlpqOk5SBiHWDhXWDf4qSnJ6GlY+ffohhf5OHhIiEiY2AgINnfZGAfn+CjI6Qfm2CfIJ0a213dHN2dWtjjYGPf4V+fIR/hIh+b19ycIR7joyBfH6QiHlwg2Z5goqGi4J7hH1/k46PkoNub3mMfnVtb2tse35jaGtqWW52WlNpcmliUWJyd2xiZV5aaoNtc2JbZ19kbF9uVFtwTkhPZ2VcZ25xgGxbW2NzYFxjbHdkZV1dWmtsYm1qdHeGf3Fwf3x9dHiGeIWCfX+HdXmJgZKWfIiGdomBcHd5e4STb218gXdeg390gW1penSUc2dzh3xykpGDmp+boIaIdnaVfm12lJd+iJGEio6afIyadn12cW9samF1fGZiaXV6Wl93fHptcX9lZGhnV52PXnFzlrzEhHZxlImQfnOYjIadk4yIdGuIj5WAe5SLgYSbjHyKhn18iYx/lIh1iYV1dn2BcXWGgZ6VhpWPgoJyf4d0g3uJl5yXhpONnICIZX2Sgn+Fg4mJcoF9Z32Le3l/f4eLj31pgH2DdmZveHhzdnNsao2FioGKf3mCgISDf2pecXd6fYyJhXuAj39+coBoeIKGioWDeIN8gJeMj4x9bmx6iX13dG9paH13ZV1xY1hwc1NUbnJpYk5ndHhmYF1cWG6Ab3NZZWJdam1gcE9ZbFJEVGhhWmtubXtvWltebGNaY292ZGdcXWBramNsaXN2gYNxbn57f3R1g3qDgnyBhXZ+iYGWkXiDinSBiHJ5eX+OkG9vfIFxaYF5en5tbXx2lWtqeIR0a5SNhZ+YoJqFiG59jHZqeJiPf4KKgpWYinmPlm96c3BsamRgdHpoX2Vye1phcnx5ZnB6YWVljrGyd0piWqTZ0Jdye5GLkXh+lYuFmZGNhnBshpKRenmShoGEmYp8h394eImKhJaAb4qHcXR9eml5hYOlkYSTjYN/b36CdoJ4hZqYk4qTj5SFh296koN9g4OJg2+BeGiAhXhyf3+Diod8ZX1+g3VjcHKAaHhxb3WYjYWCint2eICEeYFqW3B8coCHhYh9hYh6iHKAbXCDho6Dg3KDeICYjI2Ed21ufoR/d3plaGp9cmBZd1pZcm1OWHJzZmBKbXZ0YV1bW1l0fXJvV2ddZmpwX29OV2lSP1lnX1twamd5cVxaWWtlWWNweV9oXV5lbGhmbGlxd3+Hb21/fYB1cIF6f4F/gn92gYWJl4pxgo1xe4Z8enqElIx1anp/a29+dH99b3J8e5Rwb4B/eGaSioKhmJySgoVnh4RwaHqXiX5/hYKZioF8jYxpeHJrbGZfYW95bV9ib3lcZGyDemFxdl9lZdXrvosyOj6LjoByeYWIjo12hJeNf5OOjX9ubIWNjHV9j3+FgZWIfIN4bnaHhIKWd26IhGx1e3RmeYKDp4yDj4yDfW5/dHaCeYWbj4uPkZKMi4Z+e5KHeICEjYNsgHJpf354bXx7gYqDeGF5hIFxZHFofm10cXSBm4uAf4V+c3V9gHOAb1trfXR4iYKKe4Z/fIh4eXBriIKPg4lygXh/loqKfnRtanaAgHV1XGlpeHFZV31TWnFlTFtycmVbSnB3b11bWllddH50aFliW2dlbmJpTVdmUT1eZl1ddmZfdHBbWVVvZFpkcHlaaF5gZ21naWxpcHh9jmxqgoR/eW6Ae32Af4J6dYKBjJOFcICLbnd+gHt7iJOJf2h7fmt0e3KGe3N3fX+MeniEfnxrjIyDm52WjIGAbI1+a2l/j417fn+DlIJ/fYqIa3VxZ2hjW2Jnc29fYWxzYWhwiXphc3ReY2SboJBuXDVZr7V1aoCJfZKGdoaXhnSPjIp3cGyFg4d0eYl4iXyTiHp+cmd2iH59l29whn1odnltZXmIhKWHgYeNin5tfXZ/gHyLmIaBk5CXiIuEiXyPiHF7fYV8aX5taoB7emp6doKHgHJgd4F+cWRyZ3WCbXV7hZWRgXyCf293eXx0fm1XbX52c4uBhneHdYGJeXhybYiAj4CEcn59fZKIiHpubWltgoF1bl1oZnRyUlt7TlxxXE9ccm9kVktzeGpXWVlaYXGAdGBdXWBmZGhoZk5aaE5BYWRbYHZhXHVtWFhTdGFaZG5yV2peYmhrZ21saXB3fJJsaYSKfX1wfn57gX+CeneAgImLhHJ7h29xd4N/e4qNj4NqfntueHl2ind9eICCh3+Df356bYWMiJijjYSDe3aMeWtthImSeX17gpGAgH2Kg3BxcGNmXllnX3BwYGBncGZqb4p1YXRvW2FkaXZ7f76cpqPIuHKFg3OUfXiHlIN0kIyIcnJwhHuDc3WGdIh3lIh5eXFjd4Z5gJJocoR1Znd2Y2p8g4iegoB/jo59cX5zhHh/kY+Cd5WNlI+Hgoh6iYlreHl+dWh6aWt/eXNpenaAg31oYHeHfmpqc2h7gGl2gYyQlH56fn5xe3Z7dH1hVXV8cnKJg4J8gnCGiXd4cG+Cgot+fXh9fHWNhYN2aHFobIiCcnBdaGN0bktldkxeb1VUWXNtYlFPdHhhUldYXGFwgnNbYFxoZWRjamRQW3FJRGRhXGRxXlx3aFVXVndeXGVuaFZsXmFqZ2Vvb2hwd3uTbmmIi3l+cnt+eYKBgnx2fYOIhoNwdoNybXeCg36Ji5R/cIB8eHl6gYt0g3h/gYGChHmAdm9+iYubnoh9hnp3h3xodIaNkXp/f3yJhoR2j4Bnb21fZFxYZVltc2FgYXFsbGiJbmBzaVleZG2Ad6naqseGh7JyinhwjXV7h4+AepOKgHV0dX53gG9xfm2FdJSGeHRsYHqBeYiOZXGDb2d1blttfYGQk4CBeZKSfXd6bYZ1f5CLg3OVipCOh4WFe3+FbXV2f25od2VtfHZtanZ2f398YWJ4hnpodXVjfnpndIaOjJV7dIB1cYB6fGx/WVVyfW90g4Z+f3hriIZzeGp0f4ODfXp8eHtyioB8c2dzZW2LhG10W2pfdmVIbm9MW2JXV1Z4bWJQU3R2WFBVWF5gcYRvXGBjbWRjXm5iVF1yR0NmX11maF5ae2JSVlx1W1tna2FWa19hbmZmbHFocHZ4jnRrjo11f3Z4fXeBg4F7dH2DiIiDb3F/dHF1foaCiY2Ke3d/eIR8fYWHeId8fYF+hIB7fnN2eYyOn4yJeol3dYN5Xn6Gmo15h4N0hoaEd4l7Ym5sW2JbW2FWanRjYFtob3Bnh3JhcWZXXWNrf3zKzoe5omttbottcoVyfYWKf3uShXp5dHl1dHpqbXVjhHaSgndwZ158gXmLiWVxgWpqcWNYbHuGnImDgnOXlHd+e22HcICJioZwlo6QiIWLg3p5fnFxb31naHJibXhyamxxd318el1leYB3aXV4ZoJ2Z3SHjI2UfHKHaW5+gHltfF1XcH1tc3+Ke4Fubol/cHZndn6AfoF1e3F6dIZ7eXFlcmFujIJsc1hrX3hcSW9sTVdWXlRVe2thT1R1clFRVFZeYnSFaFxga2pmYlluYVhicEdBaF1gZl5dVnteT1ZkcFpbamhdV2dgX3JmamhyZ3Bzd4Z4bpWKdH96d355g4eAdXN/hoWOgnBwe3d3dXmHhYeMhnp8f3WLfn2GhISHf35+fYd/fHh1eXeRk59+jH2LbnWAeWSDiJeGdJKKb4WFgnqDdGNuallfW11dVGdzZWBZZHJyZ4FzYmtkV1tgaX94vq57n7duYnOHaHR8cnqDhnt9jYB4eHN2b3t2ZWpuYYd1joFzamJefnh5ioNmcX1oamtaVm94iqOBhX9xmZNxgHh0gW1/gZCGcpSHjIeDiIV9eXRyb2h5YWptYG12a2dra3p3endbZ318eGVzfW6EdGV1ho2GlX5wi2ZreoN0bHRiW257a3R8i3qBZnSGfW1wZ3R+d31+cXtrenuBeXdwZWxhbYl+bW5Wa2B3VktrbE9ST2hOWXxnYk5VdWtNUFRVXmd2g2ZdYXBoZ2BXaV1ca2hKRWpaYmRXWVV5Wk5XbmpZXWxlXFllY150ZmxkcmdycHSAeHCZhXZ/fnh/fIWHfXVzgoeAlYJuc3h6enNzhYeIiIR5gX12j398hImOg4GDe36Lg3t3fHd3mZ2XeoqDh2l2fnxshIWUgHKPgnGGgn6Cf29mbGdXXVtcW1NkcGVfWGNydWl2cGVlYldcXGiAcG9ygHOJZWV5f2p0dnNzg4V4gYR6d3R1bmp6cGJna2eGdI2EbmZeX3xve4l+aGx3ZmlkVVdycI2nfIR8dpaQc3xye3ltenqQhHaXe4eGgoaDfXVwcm1ndV1taF9sdWRnZml6b3tyWWeBdnVncIB4gnVhd4WLfJSAbotqbXqAcGVyZWBseWZydol7fWF1g3Zpa3F0enB5eHJ8Zn5+fnh2bmNlYW2GfG1rVmpicVRMaWtQTE5wR157ZmFNVXRkSk5TV2Fqd35lXWdzaWVfVmNXYnBdS0trWGNiVVRVc1dMWXZkWl9rYFxaY2Vfd2dtYnBpc29xfnV0mYF3f4B4f36FhHp9doKDfpiFbnJ0e3p0cYWFj4KAeot1dZGAfYGUjoCFhHx+jIZ6foB2e6OlinmIhoVsdXx7dYSCjHpvhXN6hX2Cg3VuamhlVl1bW1pTY25lW1hhdHtqaW1oX2JXX1ppgGlrb4BnbGFoenlrdHR0b4WBen99dnVuemhqeWpfZW5ogXeQhGdlWGJ3aX6Hem9pb2ZmXVVYb2iPp3aBenyRjnh1b35ucnR4jn53lHSFgn+FiHZqcnZnaG9cbWVebXNfZ2FqeGh7bVttg3NzaW+Afnl3YHaEhHiPhHOIcXB5f3FjcWhbbnZkcHOIe3hhcoBwZ2l4c3Frd3Z0dmODe353dXBjY2NtfH1ra1VpYmdUS2xoUEdSbEVhd2ZiTVRyXUpMVFlka3d6ZV9tcGlkXFZfVW5uV0pTaFhmXlhNVWxUS1x6X1tfa11dW2JlYHpobGFvb3Vub3d1epd9d3+BeYB/h4Z6eXqDfYGThHF0dH55dnSFiJB9gH2QbHOVgXuCn4V/h32AfoaCgIp7doSsnn96iIeEbHKCeXaBgIJ0boZvfIB0ioBqcG1kZFhfWlpaVWJqZ1taX3WCaV5ubFxhVlxca4FlcnR9aWpdbHd2Z3R3cm6Ge359eXZzbHpnaXhmXWRyZ3p3koFjY1Rlb2eChHd2ZmhpYFdWWWhkkKdufniAi456cHB8ZnhueYt6do5xg31+f4ZuZHZzZGhoXWxiXW9vW2debHRlemlddIBvcmtxe351dWF0hYp6h4eAf3dydX50YW9sWXByYnFxhHt1ZHKAbGBsem9qaHp3dHFlhHR5enVxZGFkbXN+amxUaV5eVUxzY1FHV2JHY3ZmYUtUcFhKS1dYZ2t2emRlbXBmY1pYXVh2ZlRKXGNYaFhZSVdlUUhieVpdYGxbXlxiZF6AaWpfb3R4bm9udoOXeXKBgH1/iIuGfnV2hniGjH1zdXWBeXp6goyOfX6EiWp0loF7ip19foV5gHp+fIaIc3GPrYx7e4aQfmZxiHp0fX12cm+GbHt+bY96YnBvYWVeZVZZWVdjZmtgXV1zhmlZcW5bXldaXGx7Y3F3dm1jW21zdGh1dnFthXl/gHl3bm90ZWh0ZVtndGZ2dpF6X11SZWZqgoF0fWFjaVxUWF5iY5ClaHl0g4aQeGxueWd3bHuEenSIcoB4e3h/aGV2bWBmYV9qYF10a1llXW9uYnpmW3h8a25ucHh5dHRkcoOSf4eCiHp2b3F8cmF3Y1pub2FwcYF8c2VxgGRebXZpY2Z4enNtboF0c3xzcWFeZW1vfWVpVGhZWlVOeWBSS1pZSGJ0ZGFJVG1TSUtaV2lscntjbGxzY2FZWlthdlxTS2NdWGlTV0hZYE5HanZYX2FtW1tfYmNdhWloYW54eWxvanaBkHhtgn6AgZKIhIF2dYlzi4ZzcXZ2gXd8fX6MkIB+k35weJaDfZmSeYCAeHl+f3OIg3NwmaF7e4CJlXlkdYh5c3l2a3Nwf2t5fHCRcl5wb2BnYmxUWllXaGNtZlxccolmU3JuW1lYWGBsdmRqdWpqX1ttdHFtdHR0a4Z8f4B8d29ubGRpcWNba3JkdHaPc1xXVGRgcX9+cYJcYWNdU1pgXGOTn2VycYSDkHRranlsbm96enpxgHd/cnl6emRmdWdeYlthaFxed2hXYl1waGF4YVt7dmppcm93dHN0aXCBlIOGfoR2cmpwe21ldldbam1icHKAenNlb35bYG9xYl5pb3xsa3N9cnB4a3BgW2VrbXthZ1RnVVhSUXdcU1BZUkhjc2JgR1ZrUUhPWlVra2t8ZW1vcWFbWlhZbHBXUk9mV1dpU1RGWlxPSHJ1WWBkbWNYYWBhXoxqY2RteXhrb2l1eYZ7a4N9gIWZfIKEeX2HbY+GcW93enx0goJ9i4+DgpZ0eIKUhYGfiXWBf4F0f4Jwh4J1b6KXdHuGi4d7ZneLb258cGZ4cXpsc3ZzjWtedG5hZ2VrUl1bVmhibGxbXHGMZE5vbl1WWFVnaXRoY3RlZV1abnVucHV1emyHfYB8iHeQc2Nla25hXG5tY3N4h2taVFZiY3d8fHCFXGNfY1RbYFlilpVjbnCDhIpzamd5bmVydXJ6a3l0dG56fnVfZnNjW15XYmRZYXVmVV9gbWNhcV1dfm9oaXNxc3B1dWtshJOBiHuFcXJmbntvcW5TWmVqZXFzgHZzYmx2VWJxa1tebmR8ZWt1fHJycmptX1ljaWp4XmZUZVVWUFVuWFJXVE9IZXJfYUZYak5IV1RWbWhkfGlrd2phV1xVW3RkU1JWaFFZZlRTSFpbUE54d1tgZmxpWmJgXl6PbmJma3l1bm5pdnZ/fm2DgH6Gl3t/h4GJfmuSiHJndIB7dYCDfomPf4uTcn2KkYWHn4Z7f4aMc4CGc32CdW6kjHOBjYt3eG57jWBkfHFnenN5bG1xdoNnZHxsY2ZnaFNfX1VnYGxvXF5ujmhNaW1gVVZTb2ZzbGV4ZGVdWXF1bXJ7eHNtiXuAd5x7emxhZWxtXmBuamVweX5nWlZYYGt3e3pvg15iXmdWWWBXY5yIYmtxgYZ8d2tqdmxbdnBreWl1cm1ue4ByWGpuXlldVmJkWGVxY1ReYmliYm1aYH5rZmtzdW5td3ZraIWLfoh6h21xZm97bHFsYlhfaGhvc4B0c15pbVNlcGRVYm5heWJvdXt1am9sal9YYGZodV1lVmJWU09ZZlNPXU9PSGVvXWNHWmlNSV9LWG1kX3hobn1kYFVeVF10W1RSX2ZOXWJUU0pcWlFadnZdX2ZtaFhiYVtejnFjZ2p3cXNtZ3ZzeYNzgYN7iI1+fIqHjnlukIp0bHOBc39/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo2NjY2NjY6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjI2Njo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERFQjEvMDAwMC5ccG5tbm5vamZnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTUzHhwcHB0dG1NqZ2dnZ2hjX19fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHiIeHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhoWDg4OEhISEiIqKioqJiomIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5CJkI6NkYiPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6Ojo6Ojo+Pj4+OjY2NjY2NjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjIiHh4aJhYiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCRjYaGhYWFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkI+Hi4SHhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x8fX19fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjISKhoaIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiIuMi46Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2JiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5OUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5OSkpGTkoaTlJOVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKRjpGRkpOFfJSTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpJ8hJKRknh/k5ORkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCQkoJtjZKJcX+RkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+QhGd9koB0fpCPj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo+GaHCPfHR7jo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjoFdaXZtZXuNjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLiouIZ2ZtXmlndIaFg4SHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXV2d3FgdG5hcHRqZWhrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hnY2ZubV1sdXBlYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpdZmpvcXFzdGVZWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTlFfY2Vub29uYk9RVFBQTk5PTUpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OT0xNUF9oZ21ubGdhUk1OT09QT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0hGSU5YZm1obG1samhjXFdVUU9PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCUFpbXWRpb2lrbGppamlra2NSSEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj49TF5nbGtua29taWlqbGVUSUNERUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7PDtHS0ddbW1ueHFpamhWSEFFRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs+OzpPaXB6c2xjST1AQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk5OjpBV3RxWD83PDw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT08Pjs7V186Ojw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO11uQD5ERT8/QTtGWDs9PTs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXdIODs6PT1BO0lbOjw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUTw9PUlMRUZ1d003ODg6Oz4+UGA7Oz08Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/eXx3Vjw9Pz09PkJdakE7PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoKEg4KDgH1dPkBDQEA+Rm52TTo9QUVBQkJGSEM9PEBEREFAPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2EdUxBQ0VAPz9XfIFcP0NFSUpJSU1NS0VDRkdHRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVxQkRFRENXdYaHh35YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hISEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIpsQUFWdIeJh4eHiINXSExNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3Z3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINVbISHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSUdISEdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpVgYOEhIKChYaGg4KGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDg4SFhYaHiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc2ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJiouMi4qJiouMiVQ6ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Njc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIKDg4ODg4WJi4qJiYqKioqLiYqKgUc2NzY0Njg4NzQ1Nzg1Njc2OTk3NjY3NjU6OTo6Ojs4OTg5ODc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhISGiYqKiIeIiIiKioyKiYmMej45ODg7PD0+OTo6PDk6Ozk6Ozo5OTs6OT09PT47Ozw9Oj07OTs7PDs8PDk5PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXN2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUBCPkBCQEA+PT0+QD8+P0A/QD09P0I/QUE/QT89QEBAPj9BPT48Ozo7OTk7Pz07PD09QUFDQUJDQVhwcXR0dHZ6e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESERDRUNFRUFGRUZERUZEQEI/PEA+PT9APj8+Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NGV4SCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyLioqIVkhNTE1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3eXh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E+QkJHR0pZhIKDhYWGh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE5QTkxOS0pMSklJSEpGREdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4Nzw7PD06P0A+P0BDRklKUV+Bg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1yTlJPTkxMTExKSEdFSUlESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dIR0NCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4tfUlJQTU5NS0pHRUJHSkdMSkZLTktLSkpNTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRUdJRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKREVGS09OT1dVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9DQkZWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hXVWthRVJRUVBJOztRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FPTlJQUFBRS0tLSEhKSEVGSUlJSElpcnZ5eHl5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklIR0ZGRT8/QUFFQUNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVtjYFZZYnJdXVZdWlZFUVlaW1lfVFlnUlZWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6eXp7enp8fXt+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+i4mKi3pucFhaXFtSU1JWVlRaWnSDWVV9kGBcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVRVVFdSUVdVYpaAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT0xLZnlbXVRZVVZdWkxUWlVTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcHJ2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlRkVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXGxxdXZ1c3N3enp7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1dW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM9Q0lHVkBITkxHXWlQSEZORkRFRklHSENESEdIS0dEQkFEQE5RTVJkcnR2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgmtNRz9AOjs+QEA/Pz5qUUthRUZISUVCP0dMTkdNUVVJQkU/Pjw9PD09Pz0/QUNDQD88PUI+Sk1HVW50dHVzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PzxCSD9cc3R1dnV2eHp8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZHSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FXUE1JREY+Ojk2NTg3OTc5OjM2NTc5NTxCPWVzc3Z3d3l6e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LVFRTUFFVT0xSU1RXWFRUWFFMV1laVlhYVlhZXVdXWGhza11WYXNrYWFfXmRhX15ZVFFOTk5MSUhKS0lJRkNRUFNbV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NTc1Nzg1OTlHbnJ0eHh5e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVlVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTE9SUk9NTU5OTkxKRlFQVVlTVE9KTk9VU1RcVlJVU1JPTUxJSEhGPz49Ojc4NzY1OTk2NzY3NVdwcHR3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUE9QTk5PVExNSVBPU1RVMj1YTUlAUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMSk9SUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjU1NjY6ZG9ydXh4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSUdFSExIS0lGTE1QTUcvRV9SPjM/PmpvYVJSUUBHVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR2ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APTs9P0FCQUNAQkVEQUBHSEdIRUZISk1LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydXl7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUWFdVTUxLSTw5ODc7P0A+PD1BQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFBSYVxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSEpLTEpGRkZEP0JDPjxCRz9CP0FkcHR3e3p6e3x7enp3e3d5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSEREPTk3Nzk/Qj47P0JAQD5BRElFQ0dHSUZJRUJCPz49Q0JBR0lETU9iZVFNTk5XS0xNS0xNTU1MS05OU2ROSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEpEP0E9OTk5Oj9CPzxAQkJBREVHS0ZDSElHR0hDQz9CPz9AQT5ERUNLTlJUTEpJTVRGSUlKTEpLTElKTE1PUFJQS0dDTEdDQkpKTE1PTklKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHh5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZHFIS0RHSEhHSktJSktER0I9Pj06Ojo7QUI/PUJCQ0NHRklMSkRJSUZHR0NDO0FAQj5AQEJFQ0lNUEhIS0dIS0RISUtNSEpMSElKS0pNXFJISERORkFES0pNTVBNS01KS0ZHR0pNTlFOTGJtaXZ2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGdkb0ZLQ0ZFR0VGRkdFR0JDQD08PTk6OjpAQ0A+QkNERUlFSUpMRklJR0ZGREI7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1ISUxHRkdJSUxOS0lIRU5JQkZNTE5NT01OTk1LSUhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZWtxbHNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQ0NDRUBEQj5APzo7Oz06PT5DQT5BQ0VGSkZJSEtIR0dHRkVDQD1FRUI+QkRDQ0VHSElHTVBKRkZHS05PS0ZISkZFREVJSkhLSUZIUEtDSU1MUE1PTk9QTkpKSE1SVVRST1dkYGFtZ3Byb3J5emdlaGhkaWxmcWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMR0VFR0NCQUJEPUJBPkE9OTo9Pzo9PkBCPkBCREdKRkpGSUhGRkdFQ0JBQUZGQ0JDQkRFRUdHSEZMUUxJT0pKTExJR0hFR0ZEQ0lJSEtKR0tSTUJOT01QT09PTU5PS0tLUFVXVlVUWF9eXGlhbWluaHJzYmVmZWRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HSEZIQkJAREQ8QUBAQzw4OT0+OT88P0JAQEBERkhFSEZGSEdGRkRDRUNESUVDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISUZDSUpJS01LT1NORFFSUFFSTlBNTlBNTE1TV1ZXWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW95TUhHSEhCQkJGRDw/QkJEPDc6Pj46PjpAQj4/P0JFRkRGRERIRkRFQ0RFRkdKRUVKR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xNTk9SVE9IU1VTUFNPUU1OUU5NUFdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnhOSUhHSUNBQ0hFPEBFQkU9ODo+Pj08PEFCPD8+QUJGQ0VCQ0hFQ0VFRkdHR0lGR0tIQ0lIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05PUlVWT0tVV1NRU1FSTE9RUE9UWVpZXFpZW15eXmBjXlxhY2tiYGRnaHKFaGdqZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZvdE1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkE8QD5BQUZCRURESUVGRUdFSEhGSEhJS0lFSkhIS0hGRkxJSEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUVFMT1NSUFZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm52SktMSkxHQkVERTxARkREQzs/P0FAQEBDQT9CP0FDSEJGRUZIRklGRkRJSEdJSEpNSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QTE9QUlRYVk1OVFZUUlJRUExOVFNSV1teXl9dXWBfYGFhX2FjZWJjaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dLTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0RBQ0RBQUVHQ0hHR0dGSkdER0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNRV1xaUldQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkNFR0NDSEVDSElJSElLR0RLSkdISklJS0hKSk5MTkxJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjU1BidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxrVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KSkpGQz9AQj89REVGRENEQkVFREZCRkZHRERKRUVKTExKTExHR01JR0lLSEtLSUtLTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXhsa3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElIR0VEQEJCQD5DRkdCRkNGRUZFRENISEdERUtIR0xNTktNTUZKTkhKS0pJTEpKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW51XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncHBqam9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0hFRUVCQkI+QEBGR0JHRElFRUVCRklISEVHTEpHTU1OTE1OR0xNSUxLSUpNSUpJSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHNTZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SE1HSURFRUNBQjxCQUJGREhHTEhFQ0NIS0hIRkpMTEZOS0xTUkxHTExITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF1uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFAPUNEQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTU1JS0tLU2tiWmleX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydnR3ckdHRklERURGQUBBRUVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRUhIS01JSEpKSktJSElHS0tLTEdIS0tMTExLSUtNTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFkcWlUWVdcW1xVWVpdWF1cXGNmYWFlYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDQENIREZHQ0lLTEhGREdLTEhER0lQS0xPS0xXTElFRUhJSkhJS0hMSkhGR0dJR0hJRUZMSUpLTkxJUFxXXlBcW2BeTVhZU1xcYl5NWVpNWGFSSllhWlJfZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNFTE1CRERCRUlFR0dGS0pLSEVFSkpLRkVISFBKTU1KTVNIR0VBSEZKSUtLSUxKSEZFSUZERkdFRUpIQ0pNS0xVX1lgWGBhW2BUWFlUXl5aX1JZXFBeXFlOXlxeU1peY15aXWBjYFlfYltgXltUWFdZXl1jYmNhY2ZoZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNHSEVIR0hLSUlJREZLS0tGRklKTktOTEhMTkdIRj5HR0xJS0tKTEtJR0VJRENEREJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVlVcWV1jYF9fY2RiaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFSElGR0hIRkZKR0hGSEtJTERES0pNTUxLSEpKSEpGP0dGTkpLS01LS0tJR0dDREBEQUhJQj9JSkhQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUU9cX2FjY2NjYlxkY2JkY2ZYUVVUUltXWmBfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSkZGRkhHRklGRkZJTEpORkRLSkxOSkxJS0pISUZCSEhRTUtLT01LS0lIR0VEP0VDSEhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11VWWBSUV9fYmJgYGJiYGNiYWRkYlhPUVFRWlJbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBR0ZER01SSENRSkZISEhFRktKTVBFRklKS05MTElMTElJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VEV1VFXFReU1ZfWE5UVU5aWk1KS1RgYVtfWF5eYV1OWWJcYGBfYmNiXWFiV19fVFBOT09XUV1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQQ1ZeSUdHSERGTUpQUEVJSUtLTkxLS0xLSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0FFRkJNSEJLTFBPTkxGTUZHSUpIR0xLTU9QSUxPUE9TT0xRU1JVWllXWVhYZFdPU1RQUE5NT1RTW1hYWl1cYGFkZWNnY2tscHNyenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hMR0hKSEdNTFFRSUxLTEtOTVVOT0tLTEdHS1BTU05QT05PTk9IS0ZgRURfTERmY0VNW0leW3JtT01VbVlMQ1BgVWtXZ0pdV1VeRExRVUxMU1ZRUlRYV1RYVVRcVVBmWmhoZFhSalNXVlRbXFtgYGFhYWJgZmhmbmtocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xIRUdGSEVFS09TSUpGYFNISk9KSU9NUlFLTUxMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUX9RSXxZWXFzWFBtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZWWH9qdHV1X192X1hhW1xmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1OQkRMTEZJS0VRVkxLT0lLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWlJUUXZndGxwYm5malFyT013bWpycHNycXJwb2+AXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zcnt8b315b39yX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEpKR0pQT01NSk5WXllVTFFTTlhaTVNTUk5LT0lRUlNZV1dRVFBQUFFLSGd4bGN4cm1bS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/b2hvWXZ2anV1cIFgcmd8aWx4fG9eX19iYVtdYmRnaWlkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0JFUFBISktKS1BPT09NUFpgWlhLVFdQYV5SVlFZUkxPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExpeX14YHl7c25hXW1vY1JocXVubXlwd2x2dHRxbG1ddH56a215fGt0bHxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUElMTUpLUFFQUFBRV1xYVU1VWVVmWFJSWV5TTE5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ352VUxXa2h9bG1seF9bcHp7XmB6c2Nyb3hxaGV8aXJ7XVVMbGB2dWtpdXt7bX54a3xwXV5eYltfYmRkZ2VlZWJaY2Npa2tyc3J3Z2xpaGRnYGFrYWdzcmxnbW1yfGttaGt7dG1ta21PSEpLSElJSFFQTE5PTEtSUlJPU1JXUlZUUFdbVlZUVFRhYFBOTUtUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhSTlBVVFhYWFtaVVJTV1tXWFdaT1NVV1dYUl1ZV11WVFBZUldXV1dYXltncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZW1ubXVlZWdjYWZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlYUE9MTVZUUE5VU05PTUxRUEtKUlFLUU1LS09SVVJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1BRVVVWU1pRT1NSV1ZUWVZUWVVUUlVUVFRXWFddWl5hXVxaWlxcYGNbXWJjZGZkZWRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFNRUEtPV1NQTlVQTlFOS1NQTU9VU05STk1OUVRQVFFTVFVOS01PUVRUUlJRVldUWVpbWVNVUlRXV1dZW1RPVFVYVVVaVVdZVVJSWFZVV1tZWl9dVVheXF5dXF1hYV5bYmJjZ2ZkZGJYX2FiXmBoZWZkYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FaWVhXWFpaWFlWXGpkVlhZWldWU1RPSk5WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVk5XUlRVVU9OTVFTVVVUVFJUV1ZaXVxaVldRUldYVltbV1FUVlZWVllUWFhVUlJYVlVaXVldX15WXl1eYFxcYF9fX1piYmRoZ2RkYlliYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF5bWVZVV1FMTVZTTU5ST1FST0xQU1JVWlVTUFBMUFdWUVdTU1NYTU9QUlRYVlVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpXVlxeWl5fYFVhXGFhXmBiX11gXWNgY2doZGZgWmNgYV9fZWRfYGNbWlxbXFlaWFlXXFlcW2BeX1teXmFgXmJcWWBaUU5PTlZRUFRST1VUU1BXXF1cWF5cX1dcXmpxd3mAYlxbVlZYUU1PVlNOUVFQUlRSS1FUVFhaV1VPUk5TWFdUU1VSUlpPUFNTVltWVldUVlpYXV5bW15WU05UVVZcXFZSVFZWWFlTVFlcVFNTXVhaXV5cYGBgVmJbY2JeYWNfXGJhYl9jZmlkZl5bZGBhYGFjZF9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJRV1JUUFtdXl5bYFxgVVxdaWpyfXNsZ1xVWFdQTlJaU1JRU1JUVVRLUVdWW1paU09TUlZWVlRPV1JTWlJUVFRYXVdYWFNYXFheXVlaXVRVTlZXV15bWFJVVVlZWVVXWVxUU1ZeWV1dYF1iYl5ZX1tlYl9kZF5eY2NhXmVmaWRmXl5kYWBhYWJkYGJeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWVFRUXl5gX15iXGBVXV5ia3l0bH1sWlVZVVFQU1xUVVRVVFZZV0xSWlddWlxST1VTWFZWVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paVFVWWllaV1haXFZUWl5cXmBhX2RjXF5dXWVhYWZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfX2FhYGNdYFRdX2JlZXWBemhYWVlTVlNWXFhXV1ZWV11YT1VdWl5dXVRSV1NXVlRTVFhSU1ZUWFhYXV5YXVtWXV9YX19YXVZRWVRZWlphWVxVVlhbWltZWVpaWFZdX19eY2JhZGRcYlxgZmFkZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVZWXGBhYmNhY15fVltgZGFfenVvaFlcWlVYVFdbWllcWVhZYFdQVl5cYGFcVFRYUFVXVlRWV1JTVVdaWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVpZWl9fYGBkYmNkZWJkWmJmY2dmZV5hYmBjXmJjaWRjZ19nXmJiY2FhYF5fWFRbWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBsZmheXF1bVldYWVxcXF9bWVtiVlRYXl1hY1xSVllQV1ZXV1dWVFZUWFxcXmBgXWFcV2FeW15cW15YVlhYW1tfYFxfWFldXF1eXlxaXFhbYGFeYGRjZGVlZmJZY2VlaGdkXmNhYGVjXWVpZGVpX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlJXWVZXWlhbXFhXWV5gYmFlYWRhXV5ZYWNiX2FgYF5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBXV1hZWVdWV1ZdXV5gYWBfYl5ZYV1dXlldXllYVldbXGBeXV9aWl5dXl5hXFtbWlxfYl5iZGNlZmVmYlpkZmZpZ2NfY19hZmVaaWljZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMV1dcWVdcW1xdWldcXV9gYmRiYmFdYFhiY2JhY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpiZWNgUlxaT1hYWltbWldaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfX1xaXl5gYmNcXFdcXmBiYmNlZGZkZWZkXGVmZ2lmY2FiXGRnYFxpaWJoaWZlYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBiYmJcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pSWVhcXV1bWltbY2BiYmNgYmRhYGNeYFxdXl9aWFZbX15dYWFfXVtgYWJlYl9dVFxgYGNkZGZlZ2VmZmVeZWZoaGdkZGBbZWdeYWhoYmhoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7e3t6enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7fHt6enp6enp6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmJiYyNjY2NjYuwwb6+vr69ytPS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyMj5CQkJCQjrvOy8vMzMvb5uXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXl5enhvb3BwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH19fX19fXx9gIKCgoKCgoSEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnh7eHl5eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t6enp6eXl5eXl6enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx8e3x7fXx4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3eX19fX1+fXh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4OEgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8en18fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCgoKCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en57fHx7fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5fHp6enl8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdXV0dHNzcnJycnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0dHN0cnBwcXBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFyc3JzdHNxc4Nxb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycnJzd3Nzcm+DkW9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHFxcnGRhHBycJePbnBwcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFycIikdW97pJBvcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFwga+MbYenknBxcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcnF9rqJwj6aVcXFxcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycYKyqZChsZJwcnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3Jzm6qis6erlXJ0c3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHh4d32noKOwn5yhgXt5enl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fn18fHx8iKaXm6ygo6KIenp5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX1+fX6IoJGQnpuVmI9+f399fX2Ag4KAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYGBgYaoqaGanpmYlHyAgYB+f39/fn+Af35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f39/gYCClbClpqGfoqqliX59fX5/f35+f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B/gIKHj6Gyqp6moZ+goqiroJSLhIGAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GGi5qprqmjnKShn6KhoKKko56PgoGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYKDjJmdmZqaoZudoqCcnZqTiIOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoCBhIuUlpmajJKdm5qWjIaGh4eHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEg4GCgYSQmJWIjpqajoeHiIiIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SEgoKLlo2Tl4yDgoOFhYWDhISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4GCgoKCgoGCkJOEgoOBgoCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4B/gICAgH+Ij3+BgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZaIhIKEgoJ/gIqSgIKBgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmIqDhYSEhIKAjpiDgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+NjIqFhIODg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYucjYCCgYGDgoGVmoaCgoGCg4OBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZeMgIOBgYGAi5WSjoCCgYKCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqGg4SDhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4p9hISDhIKDg4KNiYWNgoKDgoKCgoODg4KDg4OCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf319fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFgoGBfn2Bh4aDgH5+f35/fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFhoWFh4aGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+gICEhYSFhoaGhYWFhYaHh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaHh4aGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4eHh4aHhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGCgoGBgYGAf4B/f357eoCGh4iKiomJiYiJiYmJiouKiIiIiYmKi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhIaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiGhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoGCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX1+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJhoeGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDhISCgYKBgYGDg4SDg5GSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGhoaEg4GDg4SFhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoGBgoKDg4WEhISFhISGhIOEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhISFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4CDg4ODg4KCf319f4CAgX99fn59fX19e3p6foSEhIKAgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIKDgoCAgICAgYGBg4GBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn1/goODgoOCg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f3+Afn2Af36AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/f39/fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Af3+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gH9/f35+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f3+AgH5+f39/fn9+f39+fn59fX19hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXh9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf3+Af4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF/fn19fX5+gH19fX19fX19fXt6eXl5eXmAgoKChIOAgoOBgIKAgoGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkImJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WHgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSCg4OCg4WEhIWDgoODgoODgoKCgoOCgoKSkIuIiIeJh4aGhIaFhYSEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfXx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4OCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fXx/gYF9ho+Bfn2Cfn9+gIJ8fIB/goCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+LlJCMi46OjIiIh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3t6fIKAgX5/gXx+fn9+fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjY2Njo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4KCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYODf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fn1+gICBgH9/fn19fX1+e3x9f39/gH1/fn+MkY2MjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fH+GhIOAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX5/fn9+hJKNjYyPjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5+gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fH59fnx7fHx8e3t6fX5/gISDgn9+f3x8fH18fIGDfox+fHt7fX59fn59e3t7fXx7e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkIyMjI2LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn1+fX19e3t9fXx6fHx+gIKBgICAfXx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgYKBhYaFhYaGh4WBhJGPjIqKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+f358fX18fHx7fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko6LiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fX19fXx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uKiYyRj42KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fn1+fX19fH59fH18fX19fn19fn58e3t7fHx9fHt6e3t5enl5eXt+f4SDhIeJioeJjpCNi4mJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5GEhIOBf359fI2HfX1+fX18f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiPjouKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn5/f319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY6LjIeEhYWEg4OBgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOBgICAg4F/gIGEgX5+gH99foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fHt7e3x7fHx8fXyKi4mIhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICAgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fYmHhoSFh4WEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+fn+AfX6AfX19foB/f4GAgYGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4OEhIWEhISFg4GCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SDgYB/gH+AgX59fX6Afn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn19f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKCgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAf4CBgICCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhIKEhIWEhISBg4KBg4F/gIF+f4B+gH19fX6Afn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4GAgIGBgIGBgYOCgYF/gIOAfoKDhICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgICAgICCgoGAgH6Agn9/gYKDgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3x7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgICAf4GCgYB/fn+Bfn+AgoGAgYOChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fXx+gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgn+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAe4B+gIB/gYCAf32Bf35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBfoGDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH58f4CBgH+AgIB8gH+Afn+BgH9/foF/fn9/fn19fH+AgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoWFg4WCgYODgYKBgYKAgYCAgYB+f35/f318fn2AgYKBgICBgX1+gH9+f4F/gH9/gYB+gH99fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgYGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKAgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf3+AgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgoGCg4CAgoGEg4OEgYGDgYKDgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAf3+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58e318e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDg4OBgoSAhIOCgoCAgoKEgYGCgYOCf4CAf4GDgoGAgYGAgH+BgYGBgIOAf4CDgn9+f4KBgIB/foGAgX+AgIGAgYGAgICCgYGCgYF/gYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCgoKDhIKDhIOAgIODhoODg4KChIGEg4GDgICCgYSBgoKBgoF+gICAgoGCgYGCgoCBgICAgoKBhIB+gYOBf3+Ag4KAgX+AgoOCgIGCgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYKAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDg4KEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICCgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16enx9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHx4dn92d3+Eh4OCg4aDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4OFg4SDhX9+goqLhYWEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gYGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgYGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foF/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdtenNugId5bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhISGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhIaEhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOFhoWFhISFh4aEhIWGhYV9d4aDhISDgoF9f357fHt+e3x8fX9+fXx/foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWHhYWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgX2Af3t7fH57fHx9f358fH59gH59f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoWHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWEhoaFhISFhYOEh4WDgoOEg4SCfoGAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4KAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4OCgoJ/gHt9f318fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4eIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9/fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFg4aGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYKCgYSFgoN+gYKBf4OBf35+f35/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSHhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAhIODgn2BgX9+g4F+f3+AfH98fX1+fXt9fXx9eXp6eXt9fXp6e3t9fH18fHp6fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaCg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICBg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18gH59fHx8f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeHh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSEhYSFg4WEgICCg39+f39/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoaGhYOEg4aChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSEg4KBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhYWFg4SDg4SChISAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp8fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWFg4ODg4SFhYSBg4GDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7eXp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1NTU1NTU1NTU1NXV1dXV1NTV1dXV1dXV1NTU1NXV1NLT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fV1dXV1dXV1dXV1dXV1djb3N3c3Nzc3dzb29vc2tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi60dTU1NTU1NTU1NTU1NiufIGCgoKCgoKBgYGBgI/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz44Pjo/P0E9P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6Oip8/T0tLS0tLS0tLS0tLZkTtERERERERDQ0NEQz9c09PS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSko6jP09LS0tLS0tLS0tLS2ZRASElJSUlJSUhISEhDYNLT0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamsz9PS0tLS0tLS0tLS09mZTVRUVFRUVFRUVFRVUWrS09LS0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tTV1dXV1dXV1dTU1NTV0MvLysrKysrLy8rLzMzM09TU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7OztPU0M7O0tTPz9LU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXU1NTU1NXX19fX19fX19fX19jY19bW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzg5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztCmksXR07mf0NGcgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztKqnayUzbOXmrq6lbi5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjw3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DJl5mFpa+goqey0ZJ9fq+w0c7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI5NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0aSwvZehx4aatdXTzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Q1bmYpNqkmbXU08CgoNDPz8/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P0NGanbfYopm11NSvoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX19jY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NWnpKDS1qKZtdTUo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkFDRkRBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NLAnaLJ1NWimrbUzp6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPUpKCPt9DWo5m218OfoNLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTo6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HIxqa9lZGm2qKatNmxpKfW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg1MqOk5eQptqxg8bWuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLUwq+ws9HT0cPU0tLC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT5BRUxMQT03NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dTW1tbT0tLV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj0+Nzg2OTY3ODk5Ozs9P0A8PDg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc3Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT9AQD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2ODk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQkE+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkhART1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAPEQ+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Slpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqalo6OioqKioaCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpyenZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTY3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKyopqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqanp6afm5qboqCalpaVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWjoqWmpqWmp6amoJuZm6GflpOTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKenJ+gnpuTkZCUl5udmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNAREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChnqm1k5CPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaGhn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9CQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpKSko6KhoJ2to5aTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn56foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjqqmjpKKhoZ2jjYqbmZmYmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKCioqyvoaGgnpyap3OCnpyamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaGgoaGnoqSfnpyZmqBhfJ+bm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoKCfp5aln52bmp6TWXmgm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampubmpiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp6dnaSOm56cmpqkhlh0oZucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZyampmkj5Cam5ucpHlfb6KdnJ2cnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampucm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJmao46NlZmbnaB4aWmcnpydnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJyYmJmZmKWNio+Wm52ceGpllJ+enp2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ucmZmZmJalj4SJkp2dlHdqZI+gnp6fn56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiWn4yAgoqenol0aGKLn56en6Cfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl56KeXp5nJyEbGJejaCcm5uenZ2dnaGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qalouZk4R3d5ieh21hXYqXkpGNkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZGQj4uRj4uMj5CQkY6NmZuJcpCcnIR7dGSDjYWHgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuMhoqLi4mHhIGGgoCBkp2IeFqHk5ZsbntzgYd9gIGSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgX1/cpiUdGRPdYuMYFxxc4N7fXyGjo2Lho2UkouQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouHiIWEiIiJhH+Cfn2gh19LSXSDfFpKYWt6hISFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkYx/iI2Ni4uHkomPnnhJQkV0eG1VPkxkc4uLjYmJkI+Oj5SUmJCVnJqdnqiusq+wtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmRnqGdk5eboZqdnKKfoJRhU1tKdHJjV0ZFU2x/kJGOi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qqqaeipaipq6qpr6SEVoKNVHR8bFxZbVVfd5afn6GknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6uspKGipamnp6mjdGrAvVB/k4dvX3trVm6boaGop6Cioq6rq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqamkqKaanaSmoqGhm2WHxr1lqaGTl15xg11gl5yZoqKgoJ+goaignJ6hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXFBVT1hPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppKCioaKnoaaupqacn5lfjbW+m8qkk6l1aK9yV42bm5+eoJ+enqCjnZeamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1tVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0I/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGnqa2xsq+ro6OkbYKVlajGnZKhhEasjViGoZ+dnqWkpaCks6WVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY21qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKOqqqe4wb65trezrqytr4R9e2ytu6CcmoBXg4Fng6ihl56lopmWsL6gnaGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGpiW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gq7K3z97e2M3JvLe5uq+JeGRqp6Oalop7aGtydnqHi4WFhHZvjbipo6umpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmxwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCytLW2u8PX4NjOxr26tq6aeGpQY5SEg4R6cm1oaG5rbGxrZl9ad7K0qrW1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZzb3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PDub2/xNTPua6ppJ6UgGRfSlx8bnB3b2loYl1fXmFgXlpUbreyqrS8sLW2qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV2bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvFwcXJzMahkY6IfGhXWElTa2VmbmhiZWBZW1haWllVbLO5oqaxtqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH6Ef2lmaGFrbGdudnFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/w8PGxsDCr5R0bWRaVldFTmdiYWpkYGdmWVpZWFhUZrO8sqaqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8fnRrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMS5tMe6gFlTU1dVQE9mZGFpZGBmaVtYV1hTYqm4s7WsrqWko6ikoJ+lmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt3bmtpaHVaZnJ4c3lmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDxMLEwrJ5UUtOTz1RY2JlbWZfZGheWVdXZKq7qri1s6ypo6GtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXWpvbnl4Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcnHyMfCvYJPTU1ATWdeZ2tqYGJhXlxZZKXBu7q8urysraaqu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGlpdG15bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzMnOxci/fFNORUdvYGFhbGJcXV5bXZvHwsTHwby+tLGwsMG+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGtqd2xpZXVudGJdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jJycXFw65/VE1IamNcX25dVFpZW5LIt7+/wMC6u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnY2pkYmptbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwcHAxMHDu4ZUSVlebXmBUFBTVobIw6+9vbi5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjZGNqY2djW1paXFlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Bu7/AvLvEvbrAxMG6i1dHTn+VkkVLWn64y76wwb+6t7u+urW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamdnamZpXVZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdaOu767w7a5x7e1t7q8urmWbkp4nZFAWpC2vMG+uca8wr+8xbi2t7S4tra7u7m2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVmb2llbGhYWE5LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNDFeKzLvce4ubittrO2ubO2tLSGfJuJVqC/wL69vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NmYm1gXFRJS0pESkNDRz46Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrXWCvcjPwsC4rrW0ur23uLG/v5uVgZfNw8K/vr28x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHFmbGludG54Y2diXGNRS1RIRUVDR0I8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0ZhxdbDR0czKxLW6v8PIvr60v8OvfGm1zMXCvsG8v8PMysfFxsC5vrzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9jXmBhTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysGFc3SozMzLzcrGwsPLzsG8uLy6uXVYtsjGxMDAv8TAysrDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1teHxgcWNbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u6rdvCvra+wL6+uqacqrO3xMCleXd6nsTGy8jBw8DAycrBv7u6sLZ2VrXGxcXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3hzaHBdW15dWVJGRENNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFtG2vzr22ucC8qn1uaG5tdIKXmHN5fpq+v8fAucC8vsXEvb24sq+ublSpxcbDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bHV7cG5pW19fWVNQQUZIR0tARUNIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbB1grS9tbXBpIZpWl5gTlNbXHB0eISjuLfCurO7t7u9v7q7u62vrGxXnMXDw8O+vL+7u7i1wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9mXVtUSj0/P0dGPUdDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmlhHiMorC1nGpmZ1VZX0lJTVFUbnmJqLC3vrmytbK8uby2ub6xtKhvX4rBw8fDwL2/ubOvsr26rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYlxeT0lCPz1JREZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Gp4d7do2il2BTQ1lVSGJqVU9FSmWQo66vtrq1tLKsvLm4tbjBurqcf2x6vMLHwr+5urWupayzsaawraieoKClrba1wre2tKWoq6iwtrOyura7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d3B8b3ZybmNdZ1hdXVNPTUE+SkJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7OQgXmIj25OSkBlWUJQeICTaExDXoOxtbO1srSvrLu6uLa5v8Szn5aCeqi8u7i1srGtrZ+kpqedpKWdlpmZmp+prrmsq6ufpaikq66vp7Csr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWxdW2pUXVxQTkhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7i1lYyIhHtYRkJRiFhJSll4joJiQVWkubO0srCxrbC5uLa7t7q/rbGyqp+gua6pq62ro6ihnZ2el5ihlZKWl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJSSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeWl1dG5kVWFjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yu6mYmZRoTUBUeXFPSUlLaJ1/WkVWsbuxrLOvrqyttraytLWuqaKem5udnqennqCoqZ+hp5abl5ePnZSPkJaOl5ukqKCgoqKhpaWdo6OgnqWgpKylpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6aim6OclZCMj5CQk5CXlZaYn56em5mml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3pjd2xuXVFoVFBOR1BNTEJQUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3BqqW9ZkRToYRQWElLYElYjWFlZYSvtaqytK6qq6+wsrOtpZ2Rl5OPmKCeoqCco6SfnaiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6OoqJynoaCkn6yorKygqaumoKSopqyjnZ6empeaq6aqsaOlqJ6gnJWTkI+RkZmQlpWYl5+YnJmbpJmXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dn1ta3tkaFZSZE1KSEdPUk5KTkg8RUA8MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCrxr/Lnk5BdZxvUG5KTGNmdnVhXWJzkrKvrrO1qqasq6KbmZSNkZWWmJicn6KinJ2knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGlopuYnq+orrKrpaqqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3h8ZHl5YGJTVWBISUpLU1RJUlFNOT9CNjc8NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMfGi1ZSS2ajWGd9b3JbUmtjXGdiYW2RtLCwuKymoZydmpSXmpmQjpGVkYyOjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmpJ6nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruqimq6erq6msrKegoKOxrrKxtKqyrqOZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGZbU1paTVFKT09VTFNNQjc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4x5VWlxd3VvZHd2WFdiYGRpW1pXaK2urK+nn56ioJaQk5ugm5mXkpOfnKGjm56blp+an5ebop6loZ6kn6Sora2orKmkrLS3trCntKyira2jr6WkpqGpqK61s7K9t7+wrLGuramqtLGwqKuosra4s7itsrSkoJ2ln6yhoaKhoJqYlpafm5uYpaGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWp3dV5tW1JgSFJVSEZVVkpDTUc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCjf2+CcGBjV0xbU1pMTFFZUkhPTkiZrKqppJ+fmZKRk5iYlpaVjIiLjpWdnJ2dnpeemaegoKilsaqnrqOrrrawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXCvLe+s7O1oqyiqaiyqaqop6iamZ6aqqegmaegn5+nqKWkn52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pdm1obVxYXENXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOenIliV15lYFdNUUc9P0BDRD8+Q1J4qa2pqqWfnp6io52enZqcm5STlZSdnZiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6qzraqzta+zrqqvo52sqLaxraOwpqCjr7GusKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3RycWhWXFFGVElESlBJP0VBNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFBGRTtCPkY8Pjk2Tn6qs6ejo6KgnqWrpZ6XnJSRmZ2YlIyKhoiGeG2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3xMrJw8HGvrq1uru1u7ewtrKqurKuu7e/u7qruK2rqri7tbyurrmjpqOepqWio6mmmZufmZqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGtlWltGS0xFRFRNRENFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz49Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9cmlhV05FPklafG9hQT1cjq6soJmbm56emZeXl5KMjpaWk46NkIuCg4J3cnFtcI+mra60ucW7zcfLv8LMzc3Mx8nRzM3Mx8nFxczQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrCxcbGysjOv8jRzMfFx8XCvMPBv7+/tr6zrr/Aw8PHxMfErr+4sri8xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MREZQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E/PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaWZcVElEQD9Khp6kmIOgsq2jnpyfmpiXlJKUlpGQj4yHg4OIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXX0dfNxsfJzMPFys/K09fS19LV1tPUyMzGzM3J0s3O083FyMrKwcfMx8nIxr/Ds7PIxMvLy8/Hyr++v73Bx8XNzMnJwMPArq+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURORkBKUUI+Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+OTo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2FTTEpEQz9DVLHRvbKvppycnKCkoZ2alJOVlIl9eHBrZWJocW9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s7U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLV1tnW19PW2M7Sys/RzM/QzNPQv8jHysTMzMzOz8XGx7a/yr/SzczQxsnIwMTDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSUo+O0E4PTU1ODY7ODU6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqFZSUBBREFGUXayr6ealJefnJqgoJ6bnJmViXdpY2FfX2BfXl9fXWJsdXRwcG9scnF1ksTIxtTW19fX09bQ1dTa1NTOz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ19fY0dfS2NnU1szPz8rN0svO0MDGwsjGzs7R0dLIy83AyszG08/MzsjFysfHyMzK1NTR1c/SzNPCucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu32NTV2dnRztC/vMzJtr6upqqooaOrZUM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cGVjYl9fYV9fYWFfYGBfYGZucHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHVzc/V1dHF0dTK0NTV1s7S0NjY2NfLyM7Eyc/MyszAycDIys3O0MvQzc7Lzs/Iy9DQy87KwsnHyczLzNLTzdPS0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspayuvrSwwNjS19rc1s7NysPSz8HBsamsramksXlIRkI7V46hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBgYGBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3N1MzO083L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXNwsjJw8zDxcjKy8/Kzc3QztPMxsnPzcjHy8XHwcbKzM3Q0cfQz87NzNDFx8G4ub3Dwr3DubKyvrG7w8O1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWdgYHFoWVhoVk1HTElQUUI7Qz47Njg5ODo6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzs8Ozw9ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKifrZd4bHBye5GajYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNiYF9fYGFhYF9dW11ncnFxcnNwbXJ5pcfTz8vQ0NPUysXJycbHv8PFz87HxcfNytLIy87OxtHS0M3M1MrHy87Px8fP0svQz8a6xL/Gyr3Cx8nOxMLHwMfNyMTMyszPyMTE0MjGwsbIxb/Bx8zMzM/Cy8zJx8vQxMXHu8fDycnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+CeG90ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vbnNzMbQ1dXZ2tvY0MnPz9HTyMK3u7uto7Z9aIOFpKuUjo2Wj4WDg4OBfYSEfnNfW15eXmBeYGNkY19cXV5fYGBfW1pcYGtycm9va2xvb3250cjJys/LzcS6wMO7u7u6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLKycHBy9DFy8i/ucK7xse+v8bPy8O/w7vJx8m7yMfFysC+wsvGxcS+xr28wMPFzMXFvMDKw8XH0sXByb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVfHdzdGZpWmFubVpbWFJETEZCR0RMREZTQDU0MzM1PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sq+2bF55faKRi5KWhnqAhYV/dnh1cnBfWltdYGBiY2RkZWRgW1xdXV9eYFtZWlxib3Jva2lscG9zj8e9ysXLwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8PJv8HJu7e7usbDv7zBzcPGvr61wb3Du73GvMO6tLzGxMLDt8C2tr6/u8zDvLa6yLq/vsvDwcbCxcnHycbQxsLMyLLHycPOzMHFw7+9srewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2RWXllKRkpFR0tBRUJGSkA5OjY0ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1tfNys7FycXHwbnFvayupV9kdYSTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNiYWRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmdvczAw7rAuK2wsaeqraynuLS2tLOztLu1vrG2sLWvsrzCvMHEvMC7tbK6vsC4yLm0u7fBwr23vMbBw7y1rrK1ur+0xbe7tau4vb7AvbG7trC2urPFvLevu7+1t7TFvL7CxcDDxcbHy8XAxsa7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcbAv7q4ybaqsJhbaG+Kj4WIiXp4foaGdneBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZrbm5yfKTHwLi4tbCrraeeoqmnnqqss62qrKm0rrexs6mupqyzvLq2w7m6urGrtbm7tMK6sMCxvry7trzHucK3raqosLLAtri9sLGosbO1u7ysrrWmrrauu7Kxqrmwrbuuu7i7wMC+ucO/xsPFwbzGwsjLuMXHxb/Hw8O6xMbCu8bJzMuzucO9u7OJc3d2a2lhYmxoWVdXW0FMS01KRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT05Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx83Bw8a/xMTDw8rCycq/wLzCurO1tcOuqrCRW2p/koeOj3t4fYmFenuEgHduXl1cXF1fYF9fZGNhZGNiYF9dWltaWl1aWlpaXGVub2hmZ2lrbnKBrbqwta6lpKenmqCkoJqcpautpKiiq6qsq7Cjpp+qrbW2sb25r7ewqK64tLS8uLS9r7i5tbK8wLLAr6Woo6uxsrOovaqrqKusrbW0pqiuoaSvqbKmqKiupqi3rbGyt7q6u7K8vr6+xL+1wsHHyLe+v8W3xMO/u7/Ewr7EyMzKv7/EwMCph3N0c2ppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HKvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairkmRtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYF9dXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWqpaylnpyhpJSdpJuXkaGjqaOjn6Wmp6atoJ2cpKassrC2t6exraiqtau0ubG2tq62ubKwurqxt6WgpJ+msairqLmqpKanqKeyraCnpp+bpKasnp+no6Chsa2trLK0s7Swtb22u8HAsrq+w8GxubnCs8G+wLW4vL2+vMLHxMPEv8DEoIN4cGxiZmBrb2BVWV5ITmdPVEdGS0Y8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk7Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9tqCelJ2hprq2q7Ozu7PEz8nLwsa4tsfAzL+4ybe7xbizxLizv8CstryyrKWvs62ho5FpcoaFhoB8eHVzb21qamlwaV5gXVxcXF5fX2FjYmBgYGFdXFtcXFhZWFhYVlhbXl9kY2JlZ2dna21vh52pn5WVmqGWm6OYlY2eoaKnnKCfpKWip56bo5ugq7CtsbWkqaqqrKyktLitt7Css7avs7WvsKqfnp+jorKlpqm4raKmpqCorKuZoJ+emZ2fpZqZo5ucnrCpq6erq6ytsLK4r7i5urC2vLu6q7OyubO+tLaysba1v7a+wL3Dwru6vZeEenNrX2VeZGRYVFddSVdcS1BHSkpHQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vDw8++use4uL+3ssK0sbu7rLq6saKeqaunmJ6QbX6Fhn94cm1vbWtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3GMqJyTlJSal5qhlpaQm6KhqJ6cnaWnoqWcoKGbma+urq+yoaWjrqunorWwsrKsqa+zp7qzpragop6co6Gto6Kqtqujo6aepaajlpmdl5mbnaCal52cnZytoqunpKOmrauys6q1sLKrsrm0r6qvsrKzuLOuqayusriwura6vcC4s7GUhXl1Zl9mXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWjmKWxwrW2va20uMLMyMa/xbbBwMfOt8DEvbO5ubO/trG5u62ytK+fmqSqoJSaj3h/g4R/eG9xdHFoZWRoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqGbk5OPlJaWn5eZlJegnqGclqChqaSfn6mdm5urp6+wq5ujpLiqoaCuqLaqp6etsaS4sKS3oKKbmZmqp6GarLmvoqGknKKfoJOUoZSWlpuYl5aXnJWfqp6ppKKdo6qqsK2otKyqp62zsKWrrrOxsLCur6eoqLKtsbSwvLS6uK6jlIF6dmVfYVZZWFNSU0tNXkxPS0dHTExFPUE+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIzLLBwsGtvLu1u7y1ubmwr7CqnJmhqZSRiouAgHx3cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmmBlZKUi5GTlJqYnJWWnKCcn5agn6empKann52gpqCqr6afoqO3qKGhoqizoqWopbClsa6stZ6hnZWVqaGilK2xsZ+jo52emJuTi6GUkZOYmJOXl5mXnqecp6GimqSlpaukpbCnpaOrq62mqa6vr6uoqqqzpqasr7Sxrry1sa+voJJ6d3NlYVxbXVhOTFFHUWFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaasuLu8wcW6sbm1xMnJwMPGxce2xcSzwr/Fq7e3vba9urq1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVVRWVVJUUlVgYF9gYV9hYWJlaYCSkoiQjpOSk5yUlZajmaCXnaCloq2mpaWjpKOcqqulmp+lsaqgoZ6lqp6oop+urKmprq2ioqKVl6KbnJCrqbCcn6KfnpeZk4qekY2Sk5aQmJiTnKGjnaShopWgoaSlm6OrpaKkqqOrrqWusqmmpaamtKapqK2ztbS5urCqrJ6McnBwYFtXVlZSRlFOSFlbT1JJVEtTTEVGSUQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD42OTg6ODg2NTk6Ozw5Nz88OTU3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DJurXAr8XIzLrByszItcm8sb7DyKyxuMG1vMC7tLSqrKaVmpubiIFyiIN7dGlpaWxnamxta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RVVlVUVVVSUk5RWV1cXV1eX19fYmRtjY6DkIaPkI6Zk5SSnJqjnJuhqKmrqKynqaakmaWvpZWZpa+poJyZm6Cer5mcq7Ogpaafo6ShlJOblpaSqaqtmp2goaCblJCMmY6MkYySjZaVkJ6ioaSdm6OVm6CjoZeiqKOjqKugq7Ckrbemo6SirK2qqKuvs7ezvrWzq6+YhXRzaFtYWVNVUkVYTFFbWE1UTlBMUVJJTklCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9NTg6Ozg5NzY5ODk6Njo9OTk1Nzc1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7euqaivrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9u7O1pqmglpeYlod6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9hZH2LgIp+io+Jko2XkZeZoqCboKuqpq+sqLClqZqfraCVlqWpp52YkI+anq6XmKiqmZ+dlKWhn5KRkpGTlairpZqZmZ6elo2Mi5OGiI2Dj4uSlZGgnqGkmJWflZqhop6Um6WmqKiooLGwprG9qJ+jrLSqrqewtbC5tcCxrrGrkX5yc2JWVFZOUkpHVlBTUUxMV01KTU9SR01LQUNGREM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NzYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OspbG3qqajsaudqqepsrGktsa0ubqzysW5usHL0Mqxtre8vcHDsa+xt620tLuztKKjnZ2Xl5SDgHZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxdXWFqf3l/dIiMhpCJl4mUk5ibmJ6pm6CrpqasnqiaoKack4+fo5qXl4WEkpujkJWjnZaWloiim5uTi46KkJqkp5yVlZebkZKHlI6LgYuOgJCLkpKSoJqhopaUmJiVoqaZjZmkpqmmoaC0sqeyt6Gcorasqa2ksrKmtby1q6yxo4l5c25dTlFRTE9DTU5OUEtGTk5KSk5OUUhNSkFHS0hIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2sKWnpKqloKimpbOqorLDtbWys8bGtrrDyszGs6y5vbS4wK+tqbCepq66r66fmZqdlZSHe4NuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW5ydW+Dh4GIgJGEjoqUkZOeoY+bnKOipJmll6KclY2HmZqMc42Dfo6XloaRmpCUjo57mY+djIKJf4qYoKOekJOYloWNgpR+fnOJjnqQh5OQkJ2bmpqRlpCdjqOjjomaoKGkpJuitK+sr62fmKW4pqaxobCunLC8qqmvqpmDd3NjVk1ST1BOQ1NOTFBMQlBRSElOUk1ISkpESkxGSks9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpqijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGsrcOtp6Kmkp2mtqyjoI+VlpKQfXd+ZldWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11pa3FrfoR7c05Yco+Cl4aNnJeLlJGfmJ2VlJaVj5aJgJSJXztWb3yMlImAjJKMkIaGc4qFl4F5gXuGk52Ug5WOkZCDhn2TeHFwhYx9iYGRjZCXmpiTi5CJnYifmIeIlp6aoqCXp66praionpets6Kmrpmsq5iotKKpraOTf3NuX1tOU1JXTERUSlBMTEZOT0lFTFFNS09KSUxQRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego66hpqaqoKepp6OpsKintMK5sLWwx8K3s73Pv7mvrrXCp6rFqqOdmIOUnLGimpiGlI+Lh31zdV1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYGxuaHqBdE9CP3+VkpF9iJSNhIqNm46WlYmSiIaVhnmJf2BKUW54i5KEfYSNioV/f25/f5R4dXZ4hI2acFGNiIqGe354lHZnd4aIfoqJlouOkZKWjISJiJWEm42ChJKalp+dlKSjqKmlpJ6bsKqhpKSRpqqWoqqcoqaoiXZtZl5bSFFRU01JVU1SSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Nzc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKiosNDgzMzk4OTo5OTo6Ojo/OXe2nKOnnZ+hr6KnqKWnqK+tqrW8tre3s8G7tqi6yLi2qKi1tqqyvaeelY1/iZOolpWKfo6Dgn13cG9YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3J1fmloXFSPiZSJdH+GgXyFjJOCkpqLj3uGj4B2gHhzb3ZxdI6OgXp+iquEeXtodnuOcHJteIGLjZJ4eoB7gHZzcpJ3aHWEhISFfJWKiIqNioB/hIuNgJSEfICPmJSclpGfnamen6CdoKmlnp2YjKekkqCglp6fpIBzaGFdXUpXUFJHS1hST0pMTVJKSkpMUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTI0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZidn7Spr6mlraywsaq9tLK7uLa6tLGft7qyqp2drKmosrChmpGNlIGOnI6Rf3aGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmdo2WmI2OfWd5gXZ4gImQfYSYkoFxh498d3tva36tfXSQi397hpKBfH91ZnZ8hWxvZ3N8iYyHgGx5cX1xbXaPcWhxgX6OcEOLhYKDhX93d3qMhn2Me3V9jpKPmIuSmpujlpmdmp2eoZyWjYqkm46el46WmJB3b21mYlpYWFVRSlNVVE9QTlBWS05LT09KUU9ITlBMRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6Woaawra6rqKmxr7GrvLisu764s6ynm7CnrJuPlpylqaSgl5mPhZJ5iI6LinVxe211cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFhdZXBybIinqsB+dHlie3hvfHmJkHp9i4ZvbYySeXR5amqAgnGWkYuBfpaASZKYbmh4foJtaWRseYWQkoZrc2x8bnJ8hmlucH9zjImEhnt+f3t2b3R0hoJ5gXlwfI6MipODlpeYmpCSlpeZl52WjIOJnpGLko2GkJaAbmlvb29YVlhUUlFZT1JUVFJYVU1OSE5KTU5LQ0hNR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCiraqota+urLS/q7zDv6WimpWkl56NhIuUoaGZmJGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXF+niGKaaXN5ZX5wbX96i4l2goiGdGyaknRzfGpqnY9NeYWTiYSOZzF2hnNsfn6DdGZldX+EhIWAZmlsdWtxf3xocXF8bpKNj3x0fn1xcG51bYJ/d3l1anmJgoiJg5aSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trb2hlWFFaV1lZW01QVVZZWE5JSEVKSkhHQkBHRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEvKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakZmWpKiun7Kep7qvq7KwwrG7w8ealo+UmYuOhnmEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHF7eGx9bHGDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooV2cYd8h3x0jK6OiYBoZ2JqbnJtcIN1aXBYdXCOm5J3bH97fW1ybnCAe3N2bmJ2g3+GgIWQkIqKiZGLkYyLjoN1eIqOgH6DgH2Pe3JwcGxgW11eXFlYYF9STltaWFdMSEpGSUc/QkFCSD9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ6lp5+vlaW0qa6xrsGyu8HGlpCMlI+AiH1ugZCSiYOKh4+GdYKEbJWIiHt0eHhsd253Y2leSlBHPkA3NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFpYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx3iIh8foWDf4x+daKZeX6GgYWZhJqcYYaqn52Lg5COeneJfomIjnOLl5CEel1kcnR6fHeKbWhqYnlvhpCCem+Bd3SEenB0eXhrbmlddod9h3yHh45/ipKXg42FjIZ9cYR/g311d3t8iXdwc3RmZ2BbW15UXGZeV1BUWFtVR0pLREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIyRnZ2fppGgqqCxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSPjHiDgHOghIp9fIF/cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmiEiXuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqkiGrq+vi4GAk4qCi4KEkqmHgJiYipt0bX2Bhod9jmhnaHl/boaHgoVxhIZHbIB3cnl2aG1rX3Z9g4h/iISLeZSdnImLiJF/enWLdnx4bW93fX90dHJsW15dW2NjWGdlXFVQUFZZUERMS0ZOSUNGQ0NAQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKysrLzAwK251MjI0MjBMgVw1PTxehHR8fomFiJGOlpeSl6CdrKGmuK+zvbOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISk1OUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzk0Ll2WcHOjVUZJS01OUFdgWHBZXF5pjZOHlYCEgoWRk36FiJGBmpWCoaGYlZubpq2Tmruxp7vHw6iLjKGlj5SJgZF8cYOen5Gcf3aFhYuQiJBpaG+DgHWNh4SLcYaCd4d/e3aFfW52dWaAlI6GiYiHiIegq6KWiY6Yf3qCiXp5b2dreH56f3NsZV5aW11qXWFmYFlPS05XUlFJUEpETkdDSkRCQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMf4GQjoqam6Sdoaymq6+xl5GRhKGUhHh3f4yUfH6ShZKVf4qAkpuOg4CBjIqCiY2Df4l/bXBqXUJANC0tLy8uLzAyMjM0Nzc4Oz0/QkRISk5RUlNSU1NUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISktLS05WX2N/Z2dtdZ2bj5qSk4uNjpqIko+di6CgkqOqpaOsk6m2oqjBw67Hr3i6lJp8jaGemYSThYKPop+TmJKEi4WPmpGWbHB1iYuCloyNj3ePhHFthYGKlpGDhYhyiKCVhpKJjo+WpLWpm42VooOHk4N+gGtqa3yAgYJ0Yl5kX1tna11sa15XS0dPUlFOTExGSVBDRE1GQUNFRkI9Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1hnF2koZ+l5aalZ6enKegqpaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkYKAgIuMiYaQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOUFJUUFBRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZynpaKZoZeilJyep56oq5+orKmqtperv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGJlqKamnd6fpSYkqGSlpiBlJ57d5WSq7KIjZeffZSdm46SlZijoqa2sJ2RmaiIlo+NgYlsc3J8f31yaWBdYV9hZ2RgZ2ZbUkVKS1BPSUlMRkZNQ0hMRkdEQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wMC8vLi4wMDE1PkFCTVFSU1FSU1RSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYWQd5WKo6eqtL24pK6srKeotKuwtrKyrbuxs72cs8Osu8nLt8O/uKWjsLKsraqji5aYhaamoKOXgaaZjaKrqKSIhZSkoaCqoKSpj5yxi5Wjp7e6m6CjsJKinaKekKOhq6+ssrWilKSqiJmJkoqWenp9hX9oYWhcZWJdZGNeZmdfWk9ESUhTTkZITEZKR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pvWHqFdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4WBjIWGh5KGgoSJhoiHh3BuYUBFNjQ8Mi8xMTAtLCstMS4tMz9EQU1VUVJTVVVWVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GSoISuo7OqssDHw6qzxbass7+zuL62v7TBtru6o7jFqLbJx7W+ubSoo7StsbGbmpKan4mnr6ullHafpJehrLKzmJaqraiutruyuqyvtaKxrLG1u7e1rrWgp6ejp5qpr62yube4p5u2qYyljpGToIZ4goN2WmJlV2ZhYWNfYGZgW1RJRERMVVFISUpESUdFQUBAS0RCTUc8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFiY1d5dXGBlH2EhpJ1hX+BjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeFgY5/gYmOhn+GiYWKh5F6eG5dVkBFTjw2OjQ2QUI3NjQvLzZDSENRXE9RVVdVXFZPXlVJS0pBQD5HS0ZFRDs+QDdENz9CSkpFRldUUF6PpK2jsbTCtrjBzMm2u8S9s7PAt7jBtb6vt3Sxs6W6xaSwxrmxs7G0qKS1tqqxoKKWmqKSpbCtpq2sp6SYoKy0uqKpsrq1u77Mv8XFvb2zwre6uL63ure5rKywprGqrb2wvLrCwqyZuqiUro+XmKuJfoJ9a1dkYllrZWplV1tjWVZTSUdGTFFHQ0hJQUhEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldTWVVadmpwfo6EgY2DbnpzeIdiuaGZo4mVlJaTlJONkJaSh4Z7hoGNlYqBhIGKenyLh4Z9ioOBioOVfXd5dWVPXGRHRUw7UWNhW15TRj87SFBFW2NRUllYWmdZVGBgTVNQRUE/SUpIRUZBQEM8RTZCPkhHS0xTWlRek6+4tbq4yb+6vcnMu7zAvLe1u7u3vbS6scZgdbKlsZqeq72qpairqqOisrWhq6ielZafmZ+upaempZ+klKKnsbSnsrO9tsG+08nJ08fCxczCysPAvr2/u7y3tK+4t7bDucW9w8iwnrmqoauOpKe2iYGAc2BiYl5YYmBpZlJYYFZSVUlFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZmZkY6XkpaWjoaHfYaDjJaLf4N/gnh7i4OHfIt5gYqCl39zfXprZXB1WV1cUGVlYmBlZF1bWFdcTWVtVVJtbV9uX1hnZVVZVUpEQktKSEZISEhHQkk5RD9IS1RUVlxaW5O5wLi9t8bAu7nKyrq2ura4ubK3tbSutraZZHWona1wXqKsnJigo5uknqqllKCfkJSOlpiXqJ+ln56amYOknaylqrCtt7C9udTRztfQyczSzM/OysfAv8LKvcG8wcDExMXKv8jOs6S7sLSvm6u4vJmAemxeYV1ZXmFaY2NRXGBTUEtDQUVGRTxART5BSEFARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vl5KQlG5sb3V1h7OsoaCfi5mcmYyNlZGbkoWKin6Ih4uQi4h8gYRze4qDhXuJdIGJhpV/c3t4a211e2hyZWlsaWZqaWhgZmlobFpudJatpLyIh2dbb2hdWlpUSEtOT0pLUEtTUUhMQUpGS1BfXmJmamKYt8ewuLO7vbWxxMa1sLmwsLursrGnqresjbWnnZunmk+anYyOn5aRppillYqTk4mQiY+RkZ6boZealZaGnpqnm6yvqLCotLTU1NTW0svQ1NXN08/NxcLJ0L7KycrJ0cfMzcPQ0riww7zEuaW2usOig3BkXV1eWWBYWWZaUV1XT1BCQkdEQkg7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VWc5CQmIJocW95eYOgqp6lloybm5eLjZWRmo59iYuFjYqKipCHfISCcH+IgYZ7h3KDkYuPfXF4dWtxeH5xe254c2xpgXBtY2ltcHhpd3x+y7/C36duY3dvY1thYEpQUlVOWV5QXVxOUE5UUVVUW25tdoJxlq24rLOnsLaqrLzAsKu1pqS4pquuoKu0o46xrZqYmIyRk5GEjpuBjaaRnImDi4SKiYSLg5OVl5aTnJGcmJmZn56rrKSnoqytz9LV0c3M0tPT0NTRzsjD1NHHzdLT09fN0dHF0tbFwM7Hx8OovrfPnnpvZl5jXldgU11aUFFVUE5IPkBGQUJFPEBCP0VEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OW3WGhYp3bHdwfX5/oZ6eoYuMmZOTjIuTj5aEeYWQkI2LioiRh3+Ce3J+gIGHeYR1hZKRiX9vdnJrc3x8d3tzgXdxa4BzcmlwcXp5cnq+y5p+jLKEdnKEd2hhal1DWlpbVmVjWGRqU1hdXGBkXmN3en6LgZmppKShn6CopaqwuKqltKOhraGjraGnsZ+JppqTkpGJkY+IgZSJapWijJmEgIV9kYODk5ati5WNlZqOhpKRnpensKGgoaWkqMjOz8jCy9HU0dTTztPNxtbTzNTY1tbY1dfVydTazcnX19HKrMPDzIxzcGNhYFhUWlRcUEtHSkpKQDs6O0RBRDxCQz5IQj5CQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5aJj4qIjoePf3eDlJiKjYiIi4l+gnhze32DiHd/eoeRloCDbnhwbXV/dnh9dIV8eW2HdnRufXaEdXh8nbWMO0GLxaV+jHxpZVZJQ2ZjZWNnamRueFtfZmhrbmlugIOIkYudnqCdkJeYn6OkprKjpLOgoaWdoKmgorGchp6SkpKQi4+LhoOPhH6cm4yNg4SFepR+gqmVo4ySipeSi32XipuSq7OYmpyonKe9w8a5tsbN0tDS0MzSy8nUztHV2tfX2NTZ2M3Y287J2trS1b7LzLR5d29lXlpTVlJbV0ZHSklFRT06NzpAQUI6R0RARUNBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSg4mGhYmCh3x4hZeXiY+Dh4WHeoR5cXp7hIZ1eoWOjZx6jHB8b296f3F8gXGDh4Bujnp1d318gnV/e4aHsHRYqcK2jZGCcG5iPV5ocnBxcG54doFlaW9ydXhxeouHjpORm5WglYeMk5ugm5+qn6CtnKGamZ+lnp+rmYuajJCRjYR9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI2UjIZ7m4iUj66qlJWXn5mnrrW9qa29xsvIyczLz8nD0crU19nX2NfV29fT2dvWz9va0dbJ1MuVenxqaVxbUFNUXkhDRUlIPkE9PTc6PT87PUc9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjpEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoGEf4R8fISYjoeLfoaGgHeCeW97e4aBdXqSno2gdo51gnR1gX10gIRvgY+Bb5KEdHyAhXp2hnuJt8alwsm4gpabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R1bZOWlJWPl5CDiY+XmpeWpZyXoJefkpKXo52Zq5WQkYqNkYKMhYmIgYaQkZ6cmYmGjIGGmHqIiJ+Xj4iNioyCfKGJkIu8oZiTl5qcqaalrp+otr/AwLnHyc3Oxc3K0dbV1dnV19vU1tna29fb2trYztzGh3x6aGllYFRYVlVNTEROQzs9PTw5Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop7foB+gHyFe36BkYmFhXqEh3t1fXRtfH2GfnN+kp2RnoORfIZ+eI59eYqKboKagHSYhX2BiIV7fZB6j6mOj8OgvIycpJx9iYR9iXKMin5zppqcmJOFe4+QiIRoR3CgpJ2Mi5CShYmLkJKVj5yakpSRlo2LlZ+dlKCUkY6NkIt+kI6Oi4SJkpaan5+JjJSSnZGCi3+lmYiEjYOFhIGlh4uLuJidkZSWoqehnZ6do6+2urWswMXK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbuHl5eW1qZldgXFRQT0hDTEI9PT45OTo6OTk7PTY/Pj48PTk6OzszN0Q/ODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97iHp8e4uHgn51g4V5c3pzbYB+hH13hZuhmp2UkoCMiH+Yh4Cbkm6HqIV6oIt8kY6CiIOcfZqRioyjop+QpK+gi5GLhYuBkoZXcq2Ln6ubj4OYm4+PjluCopGCjJ+TlYyHiIySkoyUlJSPjI+Kh5abnY+VlpGLkpOFgIuIko2Kip2WmaKihpOdlqCKiYiNnJCDiI9/g4eFpIaMkLOYnZKUl6GhnpmSnJ2nsrispr3Cx87Hxs/M0MzO19DR1K7W1dja2Nra19bZ2Z9xfnVoZ15dWFRXWENASEM+Pj46NDk6Ozc6OzozOzs/PD43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieW1ifpKDb213i3h5f3qBfYZ7e3eGhH9zcIWCenV2dnSEg4V9f5Kmo5+lopaKnZCUl4uKqJdyirGMhKeRhJmThZmMopagmJOJm56ikqmvoJGVkI2OiJWLbo23hZrEyLKboaWbnJiWkLKQZKTNx5aPhoeJj5KOjZOUiYWKiYWWmpuPkJSThpSXg3+Pi5mIjZCql5ejo4iZn5ebiI+Hl5eKhI6MgX+Hj6WJjZOpmpeTlpmhmZ+Zk52borO0paO8wb7IxcXJyMnCytPNzdSp0tHW1tbY2tTT2s6DdIFpZF9eXk5LVFpCQUdDO0E9ODM3Ozw6OD42NDk6PDo4Mj85OjI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdYKOfHxsfYh4en56gYGCfnZ2gIN8bG+Lf3l8eHh8hIeLfYqjs6ijq7OhlqegpaSWla6ig5C3lZKzmY2hoIykm6+ipJ2YkKeWqJmtr6SXlZaUkIuYmZagwI6jybirm6KmrZmRmpyynYaFqKKcmIWIiY6VjYuTjoiBhoeIkpiUjIuTk4aUmIaDkZCcdJGZspaXpKGInJqUj4qQi5eaiYqWjoZ9jJifipCQnJqZk5iYn5SgnZWfm6GxrqOkt760xcfEvcPDv8bOysnSp87N09LQ1tjSz9i7c3t3XmFWYVdRSUlPRUFCRTU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdOW1xZSmdgO0iEi3p6bYWGenyEeICFgH1weHx9fG9zjXp9gXt4houJhYOSp7utqLK9r6Wus7Ooo6KwrIqatJ2juKSVrKSWqa23pqSjn5mpmKqjr7CqmpmclJWRl5+Xmbu7rcmgaba4q7CUmJ6jq5KXvaNeqrKCiYqNlIeRfI6OfYOGjY+UlYiHkpaLkJWNioyXmJKdmbOWlaqei5uUko2QkoyZm4qSnpCLiZWfoo2VjZianZOcmZ6UoaCUnJylr6iipbO4q8LIxLW7vbvFyMfC0aHGyc3NxNbW0MvUonF8al5bVF9SUEdEPjxDQUI4Pzg3ND5GPDw2PDM1MzQ1NDUzQjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo5Nj49NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVHYmBjcEpAi4p/gXKGh32BiXWCioN/bX19fH9wd4d3joKGe42PjIaMmqvCwK+9xruytMG8tK2rs7aMqLKurr2qm7ukqK25t6umpqKio6Opr7Kxq52cpJibmJeeoqWlkqO5rqi/u6ytsrmlo6Z9iIacrb2wg4uMi5CDj4ORj3qBh5CNjpyIiI+XjYuVl5SRmpadp5qxmpGrnY6aj5KOlZCQlpePkaCRiZWbo6yUlo+UnJ6UoJ6bmKChlZqep6ekoaSwsqbBxsOwsLq2xcTCvs2nx8PHw7zV0M3Eyoh0c2NdW2FbTktCTEBFRj5BP0I7OjQ+QT09NTw2PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxmRmBpZ1pdW5OMjIh7h4uHg4x1hpCKgW9+fIJ/cX6BepV6kZSUmJCTlqe0xsm/wszBw7nIvLqvq7m7l7K2urLArqXApKqvu7uqrauiop6nq6+1sKqboKqcopyVnrC0p4uiurm1wburqJyypKOok4WNqcPEpIKLj4eIhIaVlI16g4yRj5GhjIyUkY+Jl5+Yk5mUl6agrp2MqpyOlo+SkZWVjpCVkY+hlIaXn6CznpSalKChmaSfmqCboJSYnqakpqekr62lwMTCrqm3tcnDvrbOssW+xLyz0cnIwbV1eW1dWV1rU01JQ0xLS0lAQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmW01lXGZUY2qZjZeKi4iTkIaJeYaTkIFygHyNf3iHgoKQeo2hlqiZmpi6vsfIysLSycrCzb3Bs6y7vqe6v727w7iswamss7u9qrCqo6Wjq660rba1oJ+un6aimKO0vambqLzBo7a2r6uSr6yqq5aGmammpZGCjJOllYmBdYqSeYWNkZCen5OPlIuQjZSjmZeblJSjnqmfkaWajI+PkJWWiH2PlZKSo5uVoKKctaaQn5alpKOlnp6mmJ6Vl5ulo6moorKsqLzAxK+ls7fMwLmuw7O7vsK4rMLCwcCZbnpiWVhdXExMTUpHRENIQkJBQ0s6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+a0lfWGFaZGRWnpCdjpeOnpKJin+In5OEeIV/lX5/kIiKkYCVoZqupqSYw77Iw8jF083Ozcu7wrevur20vMq8w8G2tryts7+5vK6vqKCpp7atrqmyt5qeraKooZ2rt7ippa++w7G9ubOnqbOzrK2WlqSrp6CRjpKxxaeVjnyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuNj4+eiFqQl5eSlqWaZpijn7OllqKWrK2rp5ufppeZlpmVoaSopp62q6m6vMS1pbS2y8G4qbass7u4rqi4ur24g25vW1hVVk9GS1NOSz9BSEVESEZHOTVGTTs+Nz5BSi4zMjAyNUI1NU9WTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnJGaUlSZWJMRqaUnJahl6mWjZCDh6WSiIGHgpyEg5WQkZSOmqKfr76uoce9xcTHxs7OztLKvru2sbq7vL7OtsS9t7i3srK1s7ezrKacq6u4q6mnr7CXo6+kqKSltMCwqqyzvsK5wLmzp7ezt7KulaSsrq6ki5OVoY10wZp9lpmEjpaai7GVmpmVkpOZmaajlaCblpqonJuhoJmLjY+WnWBKlpyalJqll1SWsJ+vnJ+llK+vrKWaoaWUk5mZjp2gp6KZtKmqs7y8u6uwssfAuaWrq62xsaOhsrK0pHFvZlxbT1FMRVBQUVE7SEtJRkhCQz45S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1RRVdSc2JXRkirl5mgoqivmZCXh4unlo6IkoWfiISdl4+eoJqjpLXItKnGu8PDyMrJx8zOx766sq65uMDBzbXIusC5tbmxr6+ytKejm6q0tKuppq6smaSupaWprLq/qKu2tr7Bv764srLCsLi8q6OutKy4pYibl6abdr6ghJicjpOZmouvlqGcm5eVm5+hqZ6ooJmaqZmhp56XkI2RnYNudpKimpWdop+QrbKjq5WpqpirrqWkoKSokpKZnIiUnKKel7Gnqau6t76zsq29ubago6eopaecnKypqYxlZmFfUkxNR0dOSlZMPU1ETUlKQUNEPFBVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5TYU1VSH9lXkhFrJWcoZ+7rpmUnoyTqpuRkpOJq42Hop6MpK2Uo6O2xr20wbrCwsjIxcLOyMK9ubKvuLTAwsq2xrHBvLS6q6itrK+jopmqtLumqaarqp2or6ekq6q9vKitvLO3vca8trW3wK+9v7OotLarvqSPo5eRop+8n4mZoJmWnp2Pt5+pnKWjm5yhmqils6GbnaWcqKmemZWPlJuLl4mNpKGUnKOeoLSvpaWTsKuZq6yenqSjqZGVlaCDkJ6fnJWppaKhtLS6ta2otbKzn5yippqXlZmqoZ53YV5gXkpJRkhNUUlORUZGQlJLSUFER0FWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0Ocb2JHRaeXpJ+fw6ycl6SXmamclpqaj6qWlqimla2tmaGrtsTCu763wcPAx8S+zce7vrmysLizv8PItb+vvLa6t6akqqusoKCaqqvEoqWoq6aeq6+roqmovrimrb2wt7bHtrW5uL6wvsG2tLK0r72jl6OWk5uUrp+QoaKlo6OfkL6lqZ2orJ2doZumn72imaOeoqmroZ2XjZWek5+Hj4WNkp6koJ21rKaclbKnmbCnn5qqnqCNmZWfhI6hmpuTpaSamKyxtrKqpamtrJyZoKGSjpCWqZ+UaWRaYV1PSkhLT01IRURJQT1PSEE7R0lIW1JPSz1IT1U0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGVjV0yimqObnsWsoZ+snZyun5KjnpakoKeqrJe2sKOqs7bEwr2/tsDCvMjCvsrItri1tLCztLfBxra+sLi0ubWfpqyqq52en6WkwaWgqa2gpKmtr6Kmp721pbG8t7W1w7Kzt7m+scPAt7ets7S1opyklZGToK2gmKGdqKmroprDramerK6bm56ZpqC+oZ2kmKurq6ahmY2an5KeiY5Yf5WepaGguKqnk5i2o5+zoaCbr5eejpmUnYKPn5eWjqKklZCmrrKrqaKipaWWlZ2Zi4+Rk6SfiWNlW2RgTElKS09GRUFGSj89SkI5OUpLTl1RUUk9TFdcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXEtOnp+hmJ7Dp6Wis6CcsqeTqqSfo5+tqaydu7CprLWyx8PBwrPCxL3GxLzFyrywsLausLWvv8W1ubCwurWsmqiwqamanqahp8Ktm6ywnKqirrCppKe9t6a2uryutsOts7PCv7HGs7q2q7S1raqipZWVlKOroZ6fmqirsK6vu7KmoKmpmZmXk6KkuaChpJKur6ylpp+SoZ6Vno+RjpWdmaOfp7Smp42YtJyjr5qem66RnpSXlJqAkqGVj46goZOLpqywpaeinKCek5KblIWLko2cnoBjZltoZUtJTEpTQkNASEc7O0Y/OTlOTVVeUlNKPk9eXj1IUEJMTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugwqijqrKho7WplrKrpqKlsqyuqbuyrbC1tMa/xMS1wMW+ysS2wMjCtau1qLC4rMDEtLeurLa5pZmrsquql5+ml627tZuosJutn660saequrKnubO3srjAqreywryzxae+rq23tKmnrKGXlpGlpKKil5ikrritsbW2oJ+opJmUlZOkoLeipKWWrbGypaqmoZ6ampuWmKifn5iinq+yoqaNl66ZpayXmZ6lkZuOlJiahZaflIyQnJ6Ui6mpqqKnoZmeloyPmZCBhpaJlJ95ZWldbGlOUE1OVD1DQU1DOjpJQDc3UU9dXlJWUUFXYFxCSlNIVktIOlVkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVKcGlWQ1dGjHlmQzuko52hpr+mp6+voKm1q525r6ukqrS3sbC5t7C3uLjFvcPHvbzEwcfAucHGwbqqtqWtu63Bw7e4qq2yu6KVrbCtspalp5Gruaqgp7Cdqp+wtLKqqba1rLussrK5t6y5sMK6vb6mwqqwt6+pqqumnZiYqqGhoJGYoLCus6uwuZqbqZ+ZlpKXpqC2qaWioq+xs6uxp6ufm6Cgm56lnKGXnaOzsJqfkJOlmqGpmpWin5aYiZSYk5aXnZOIkJuZlI6pqKefo5yYm5OHjpmLfo2WhY+ba2ltYW1uWFFRWlVBQ0VUQDs7SEE3OlhQZF5QVldEWV5eTUxSTl5LSj5aZF5OSFBOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWOol7Y0M9qJ+coam9oaqwqqOxuKmltbKroa21va+zuLy6vbe2wcK/ycS5xcPAwLjEvsG4r7aoq7eyvL+/tKmusbefl6utqK2Xp6mPp7ufpa2znquisbCzrKm2s7W8ra+xtaywtbHAusS2q7yusbirrKmisaWepKmfo5eQmZ+yqrOpqrOZnaebmZSNoKaktK6noaysrbGnsqyyqaSbn6iknpShmJuotamXmZKSn5meoZ6QrJ+YmIaVmIudmpyTio2Wl5qXpqWjoJ2WlZaUgY+VhXuPkoOMl2Zsc2hwcl9HWWZWRENOWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGNgUEtNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFVMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSaoKSst6SsqaWurraprrO5pqexuMa3sbe+wcK1tLrFvszFucPAur+6xLjBubK1rKq6t7q6vrWqrbG2mZinq6qrm6yrj6u9nquusaOqn7Cts66utrG5tqmtrrCntrCzu7zJsqq1tLG0r66mobOfmqitoKWVlZqZsaOtoKWvlqGkmZmSjaKlp7Kpoaaxq6m1pa6wta+jmZ2tp5qXnpmZrLijmJSRj5icoZiXlKyfnZSBk5mNnp2alpCKlJOemqWjoqCZlpKSlnuLkIV7jIuDjJNrbnhudXxhRmBqWUlIWls9e0pHRTZBYlRpWk1cYUpbXVpSUlJiYExLRV9hYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuKkIvSkdQW0gzY1lVS0SZl6CwqLGprKWjrq61qbe0uKOstLfKu7S7ur++tLS3w8HNx7vDvbe+v8C4v72xva6nurm3t8K3rK2xuZWXpq6rp6OyqZSvuqStsrGnp6Kys7CysLSxt7KorquxprivtbPDxbaptLWrsK2pp6K2n56msaCklJuZlLGep5ufqY2pop2blZelpaW3p6Kxs6unsaessLWspJmhrKibnJ2blKq5nJWOjouZnaKYkJemoZ+WhJKXkJ2cmJaWiJeQl5uonaSgkpaRkJZ2hJCHfIWChI2MbnF4dnx/XUtlbFxLT2NcP2J7R0k4R2dXZVtMXmJNWFlXVFhUaV1QT0hhXl9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTVE8M3JrSkRDkZmkraStraunpLCys6q3sLafq7W5ybmuwbvCt7OytcLDz8TAwb61vcC/ur+9s8SoqrmwtrfAva+ss7OcoKewraWmsKWesrWsq7KwrKmotLmstLK1rLOsqayorKm5rrGwx764pbmvqa2tpqitsKWjo66jqZydnJqvmaKjoqOQrJ6jn5+hqqamuKWrtLSkqauoq6+2rqKdo6iqm6CampKktJqPiY2IkqOglY2UnaCUk4WOlJOdm5iWlYeYkpWZp5ygn42SkY6Rd36OhX18fYeKinF0cn59flxSZG9eTlpmXUZElltHOk5tWGFbTWBhTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NkOzYqSGRISis6ST8zQklTLD6Paz1HSI+bqaqiqa+kqKSztLG0tbGxoaytvcy6rsG8x7G0rbTCw9HFxr7Asr7Bwry/uLzFqK23rLO4vMGwrLKtoKSnramopLCjqrGqr6uxrq+tq7O7p7exsqmyqaulpaOtuqyqscK5tKy6qKioramosaWppKKuqqiinpuirJWknZeemKudoaepoayloqyrt7GxoKiin6qusKydnqanqZmjmJmPoKeYhoOOioufoI+LjJacj4+GiJGVoJ2WmJWGlpOTl6WcnZyMkZCNin9/iIV9d3+HhYd0c3KJdmxfWWBuY1FzclxLPIR8Rj9XdVhgWU5jXE5VVlVXUFxiXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkowLklnREY4PEIwNUVLWDFAlFs/TUaVl6ynoqqynKmpsLasuLWuqqWrq73JvLG+t8Ovsa2zxMTOzsO/v7TAw8S6wLTJxKyvt66yucC/s66uq6WnqrCpp6ixpbStqrCurbGvs6yzu6S4tKysrqern6OesLerqq26tqS2taSpp6ysqq2hqKamsbKkpqWhoauWqaCUmqCmnqSiqqSsop6msbesraKkopqoqq2pnKGlpKSZoJmVj5idlIGCkIiFnaCNi46MmY+Qi4SNmKSckpGbjJOSkpSjmpuai46Li3yHgYKDe3SAhIJ+dHiMpId5a15gbmdXZodkTkBnkkxEYnlXYlhSZVVNVlVWVE9cXWFVS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIZASEhEl5KvpKOqsJeqqa21q7axq6Srqqm8wcC4ubO8taazr8TJy9G+wbu5wL/CucG6wsSusbWys7vBvrOyrq2rrKe2qqWtr6u5r6iwsK6xq7WqtrWntbarrKSpqpyjnbOzqKiktLSgtq6hqairqKynoKusqLm2qaqpqaGpn62bkaihnaCkoqaiqZ2cprSup6WpoqOXpKamqZyipKOfmZmfkY6PmY5+h42HhZ6eiIWKi4+OkI2EhpWjmo6Nm5GSkY+Sn5eZlo2Kg390h4F/f3h1g397eH6AiZ6Pb3FnZ3F4XGF0iGlPXZhWSG14VWRWUWJPTFVUVVFPWFtiVkhQalRXVEdQWVVJPklIT1FQeExOVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjEmLzJSYzAyP2Y9Tlg/Qyw+TFRfL0lrNlFFO5WNr6Clqq2Zq6Str7O0rqqlr6mpur67wbGvuK6itq/Jx8jRwL+9urzDvrrDwcC/r7KzsrW9vMGysrOrs6mltaikrbOzua+jrbWxr7G5qriuqq62q6qeqqufo6C2ramhn6+zobSqnqinqqOqoaGsrai9r6yurKGnp5+rmI+vopiioKinnqebmaqwqKKfrKGhkqGio6aYmqiml5eYnY+Kh5WIfY2GhYSkl4WCgoyHj46RhIWUoZeIkZ2Qk5GNkZ2Vl4+KhYZ4dIF/fXV5eoB7dHR7aoKHo3VpXmVsgnVniIt8UldwXkp4c1NkU1FeTU1SWmdOTFZZZVhHU2lSUT5CTlFhUTpJSExTSXFQTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTGg6MzhfPWFkP0YxQ1BbWytITzpXQjSQjrGfpKaro6akrKa0s7Cpo7Cnqri+wLywqLmqp66wycbI0MK9wL65vr+8ybzCubCwtbK6vLnAs7S7rbmto7Wmp6yxtrmyp6e6ta21vK+8pa2ttautnKmvo5+lrKunnJ6qs6SzqJqqp6mkqZ2jqaipvay0r66dqaOgrpuasqOWpJukpZ+kmpqoqqWemqmhm5GaoKWdmJapqZGYmZOQioKPhX2PgoCIno+Gf36Mh5GPkISAk5uUhZOijJSRi5Gbk5WHiX6Acnp5fnxpd3x6dXBxfmmGeYSIZGBoY3OFem1neV1eVUJXemxUYVBSWUtLTXB0XUhaW2dZRVZmUEM+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTxGW0Aqj5OxmZ+fqKWkoaukt7KypKiwp6y4wb21sKO5rKiosMPJyczBt73Atbe/usi2w7W0s7Wyvbm6vbatuba/raKzpqurr7W4tKqduruosr+yuqCvtLaprJ6tsKKcpaipo56cpLGmsKCfqqmnoqqbo6igrbyorrCuoauio66enqyml5+boaOcn5uao6mimpmjo5WWk5+hlpuWpqyLnpGQkYyCi4B/joF7mpSNiXx/i4aQj4yJhZKYkYeUo4qSkoeQmpCTgYh8eWx9dnl4Ynt6cnBwc3hqgnRqg2dkaGFvc45tYmpwYG9BXHhrVV5OUFFKSUxTWldNXF5tV0RXYE9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmRPKT0zUVw9I5KYq5ifl6ekop+opLivrqKvr6mruMK6sq2fuK+rqLS6x8rHv7fCvrC0vrfEtsOyr7qys8C1u764qbm4vquktaeoqrCtubCpmbm8o66/tLShrri1p6ansLOgn6Smp6GlmZ+tqKmeoKqvp6Cml6OpoLC4n6Sxr6Groaykm6amqZqam56jlZycmp2pppaanqeRl5KYnZOZlaGqkJqJjZCHfYd+go18fKGMjYl5g4yFioyNhYiTmo6JlZ+IkZWCi5eNkH2Fe3NwfHFzdGB5eGpvcHFwan9zY3psaWZkYWaGgGBbcmpxTE1/aVhaTVBMSkhQUlFJTVtfb1REWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MFxaNSiWnKWYnJatoJ+hpKG3q7CjtLSpqLnFtrKuoLesraywtcXHwLe/wrqxtb23v7u/r6y+sLS/sr3Duam7u7inqLWop6uwrLOwppm8tqSru7Wun7G4sKmlp6+ym6GkoKOkoZacsKahn6Knr6KgopOjpaK3sKGmsaufrKKumJyqpKiel5qdpJOanJqdpamZnJuklJSXlJyOk5eiqaGQiYuPhnqEfYSKeY6Xio2HeoKIhIiMjoWNlJmMjpaZio+XfoaXi496gHpwcXZvb3RfeHdlbWxsammEbmZyaWxmaV1kc4FgW2t1aVpJfV1bWE9PS0hHUlVGMjldXm1QRFdWWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzlkbTg0R0FmW0hURFVdaEQuPDJjViwylaKhl5Sbqp2koaKguKquoLq4pqy9xbOwr6O1sK2tr7TDw7yzv7q4sbO5uLq4uq+uwLO0ubC/wbisvbu1pqKzqqepsqutsaGawLWkp7W1qJ6yvKmopqmvrJmjp5yjppSYobKlmZ+jqKmcoqCTpKCkuKikp66mnqWgqJKfqKKhoJibnaCSmpuWoKGqm5uYoZSRlJaZjZSSo6ikkImKj4Z5hHuEhn2djYqKh3qBhIiIiJGFlZOTjJCVlI2OlHuDl46Ld357bHRxbGxzYXh0aGhqZ2dwhmdoaWRmaWpgamJqZ1tle2NgU3NUXFtTTEpHSU9TQCEqaF1qTENWVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc5Z08nMp6jo5GOo6ebnZ6do7Wtpqq5t6esw8G2sKyjta6nrq+3wL+8scG2sa6ytra4t7atqr20r7Kxvb+4rry8saWftqulpbSpqq6fncGrqKWwsqmstbueqaqrsaWYnqqdpqSRmaetopiepKmhm6Kdl6Cdp7alr6qvoaGdnaGUoKafoaCZm5mckpmdlKWdq6GXlp2Uk42Vl4uPmJqooJKIiouIeYV3goKCnIiLgol8f4SIhoWRhJaVj46QkZGRjJN7g5WNhXN9fWZ4b2tqbGd1c2tjZ2RkdoBiZWZmZWpqZGtxWl5ZXW1kYU5oV1pgVkpHSEtNUlg+OV9saUhCVFNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQmhIJTWbo5+Qi6yhmJiglqW0saGxvbehsca8urGxpLesq66puby7uq2/sa+urravs7izqKy6sa+utLa6tq+5vq2mnrWroKCwpKuvnaLAoLGjrrCut661nq2vrK2imp2nqaWelZuopZ+ZpKKpnZqgm5ScnqyvpbqorqKhmpqdmZ6jmqSdl56Ym5SZoJKolqqnmpOampGLlJmNlJSZqaeOjoqJj3yCc4GBi5iFh3yJiYSFioyKk4STnJKSkJCRlo6Qf4CMjYNwgH5meW1oa2pncXJrXGhkY3OBYWZoam5sZ2tqaG1cbGt0cWFUYmhkZVpJRkxNT1hRUVZhZYFUQFZTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUpmQyc0kqGajY6wnZqToZqpsq+fuL+2oLTCu725saa2sKiupbe4t7esuq6tqqu3qrS5rqaztbKuqbG3trGztbqnqZ+2qZ2eqaKprZqnvpito66vtbWtrJ+xra+popyco6uom5Wcp6OdmqmipJaaoJyRnKSrqqm7n6ekoJiZmZ2hj2uhlpmccYKVmqOAdZKpp56UlJ6QiJeZgJaKoZB4hpSMg25qfnaDcWyGi4Z9hIuGb15jYWeEl4Zri4+Uk3V3i4R+g5B/Z4aAaHVpZldcaHNuTlBqZGdyhGdfZGZubWpeYGGKkISFZU5LRDhGVGdeSkdQUFRVS0hTYW90ZUZaUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc2WYFsMTZPa1tOXEtbZmI+RzFRZD0rLoykmYaVsJuck6Gbqq2qo73Er6m3wri9vK2ntrClq6S3s7GzsLitqqestKawtaOouLa1qKest7OutK2zoqqftKueoaScpqeYq7qVpqWvsretrqSprquspaGfnKCnp5uXoaWlm5unp52Tn5+YkJ6oqqO1r6Ojo5yWl5eXo4ihjpKah6GHk52gf6V/pqqekpGakYiEcniNjoWIoXaJjWmXiGZ9cnihcIiHhH6NfH+hoKCZgHuHnnSIjnabimyHgYNtaGVjemxxYlSGbWNsaZhxWWpxb4dYXmlba2tbiHFuenKGZ4aEWl5GTT9HX01GUlZWUVFSV1VnXk1XSVJTT0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3MCiLppeDnKudmZmdn6qqp6m+w66yury3wL+qpLewqayms7SurrO2q6mlsa2ltbScrra2tKWnqbOxrbKor5+robKpoKOjmqGjmq2zlKOkpba8p6ynq6qsqKWhoJigpqOZmaajpJicpKmWlKOclJOkpaaht6OjoKSYlJOXk5uIro+YlImpi5eim4WxgKOsnZOZnZR5gtSogIeVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGWvJzFe3K2pruQe4BslrGrsHhoa1ixrm5labySvG5oem5yj9h+U2pitrJ+gXKUdJqhqpBXT1dhT1ZORlRbWFFQUoxcV1xQQFxEUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaSgaapn5ecnqWtsqiwwr2ytcC1t7/Cq6azrKypp6+zqa+2s6ioprWmp7ivnLOytqqlpKixrq6xpqqep6SxpKGgnpeboJ2uq5SdoZ+0uqOqqaKtrqWinZqaoaefl5uooJ+YnqenkZynm5SdoaaioLCin5+jlpWSmJKZha9qaoqNqn5nhJWGrWRwnZyTmaWUca6hpH54u31roZB2sV9qtFulgGackWBmgnpmf2p4a6lkvnJnpox2sWp8sXh0kpNjbW2nbluEoEVoZ4eWRXWcYH5nfKSngllfi6tpgJV4eWqnN0qvXFdTbWNbS05XX1xXVjtOiU9XVy9JVFNJREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5GhlYOsp6Weo6WqsristL2+r7bEsre6wqaosKuuqamwrqOxuq+kpa6zo6m5qJ6zsrCjpaCqra+sr6ann6OisJuim5eVl5ubrKWWm6GetLOiq5yira2gnpqXoKKonZmepJ+cmqGnpI+do5qXoJ+qnqamoJufoZWVkZaRmoW1m7V4hamZtZl3h7Obt36TlZaolH5rgaZ7goaIkpSSeKtna7Fbq3uPh5R0iHGPhoB/iJCXeIOCi5iMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinC5Rom9bU2toYExLW2RYXFpCPrF4V1hBI01oRUNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5SIs6amoa6pp7Osqru2wrC7wq24t8GqrK2urqausqmhr7yqoae0raSrtaSmsrOno6GdqKqyqLCopZ6fn6+Wn5mUlZaYnayimpmkqLSvoqmPqaiqm56VmKClp5qfnKKfm6CjpaOVm56Ymp2iqpulmZyboqCWk5GTkpyD1ZOZuXCwwn7GhnzWlJu7fJmVpI+NnI2ke46Ho4KlgnqseY+dVq96iH6farlauXeGg3ymgpN8mHqqeY2dkHuxbo6EdJC8hW+UUK+nxYpRoHpjYKljdHKIbZeIYFO1tMiGgIl8Y6QzQp12XVBqaWRQQFhnWmRhSkhNbEtbUk9ZZllDRD5FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzIlm6GTmLGoqKWzqqW1qKS8t8GwucCxtbS7s7WnsbCjsLKmn662qJuoua6jr7Ggs7SwoKSen6iqsam0qaScnZ6ql5iXlpeVlqCpnZqWqK2wqaOej6yiqJael5yhpaGYoqGhoZqioqebnqGelZmbpqCcp5Wbm5+hmI+SlJGciLJuaLVxq4dvjqZytHNytnuZl6OLjpyNon6RoaV+sHaDkdLRdlyue4V/pG+bqqZrh4R8rX2XmY97sXOSnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamRmWEFPa19saE9VR0k5PVZSW1hYSUM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGckaWwraSqvK2mtaWntru8srq/t7a0urqzpbSzobGxop+sr6SYprqupLGxnLS4qp+mnaKqpLKorKqkmpyaqJ6VlJiYkpKip5+WkqWrsKailpOtn6WSlKGbpKaflJqlpqGao5+tmqCenZCWm6GdnKWVnZaZop+VmJaSmoWse3eodqOOiYepb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9eIV9jp6GmZp3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV93d4domIhrXq93lZ6PeGw1eciusl9CVG9eZ2BFUG1fcG1WVU0uZWNpU1lRO0JEQUw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk5ODifnZSguLCXtMGtqLOoqbK6t7O4v7m3srW8taW3s5+0rJ+fqKuflae2q6ixsauttKSbqaCgqKG2p6aqo5melaWhlJObmZKUoqWakpCmrK+moJWZqZ+ij5GimailoJWapaidnKSerZ2hnaCNlJ6bnaGYmZyWlqKgk5iQpp2GqX19pXihj46DqnCti4GnhpWfoYiXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aHc6eBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcW0x0XWJmTVthX3J0X0pWNkqbk1hIRT1IRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4wMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMT84oZ2Zmb+rl7TCrqutqaa0sLewtb+5ubKwt7ypurSfsKSepaennpOqsKmwqbWsq6+hmKGgpqWkuqKjq6CXm5GioJWUnpqUmJ6gj42LqK+vpp2Wm6imn4ySpJeoq6eUl6mnnp+go62koZ6hjZWhmZ+gkp2XnJWeoZWWjqubj65tcrRyqYx2iqZztHhzs4CRpKKRnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZKIrWt1s2GdZqJvh5Jql1ytYE2hfIeRUnOjbXp/fm+Yh3Fcr1Y8nHdlVG9uLlynT2NSa2VibVpjXWBwe2NUWlE+Pm1vM0JCQD9NOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs8MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWam526oZyywK6tq6unt6m4r7XAtbywr7m4q8G2qaqgm6akoZ2RqqqotqOyqK+qoJecp6Ckq7ido62blpmPpaOVjZ2hm5icn5CTlKu1sKeZlJysqpeMk6WZpa2ikZaqsaOgnqersJiho5CZopefm5acl6GTnKqclJCrmYfUkpq7c7DDgMOGftWWm7h4h5CXjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6p9vm5zvHSyg3V4gYtumohxbo2kdL1ed31bYXm8a1pWW2p6XmphZmdibXdvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy02QTmnmp6hvKKXscOwraqqrLGnuK+2xbG6sa67sK7Bsqykop6joZybkamkqrKktaatpJ+WmqqZpqy4naOumJWhkKWgkoyco56XnZqQlZKvubGslZejp6eUkZaknaStnZCgqKufm5+po7Oeo6WOp6KVopqcl5WjmI+woJKUqp6FkJm1gJCRjLeVeIKTmrV3bWtuc255j4SOiXSewbu9mnuBsqhwgHSRuIN8hoaMho17i4aNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtnRycHe2jF6Aen2KaIN5bnlji6xwdYV/WVunakVkWVNmYGNdY1FnZnFtdUJNUE1EO1pNPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPjs8p56goL+llrTDtKyrp6yrqbuusMavtbOut6e0uK2poqGlnqCdmZSrpK2qprWop5+blqCjnqykvqehqpeUnZCim5GPoqihk52Xk5eUsrW3rZido6Sii5KRppymq5uWqKSlnJqhqKano6mhka2el6Sel5eXnZ6PsKiUnKeijmp+aZymeIdzfZqPdHplh3q9vsC6b5KCcZWHX3JqWl6aiWFjiI6Va2B/lWNtnXdilWuAmpWUZV5gY3GbimlyjH2GlWdqfnJ0eH19Ylt3dIFoUFxuhH17i2tYbHuCc0lKb4ZwTnVNRVddZmBMW1hnY19PW211aXFSUERFTjxIST1MPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqifqKHBo5u0urajrKWup6i1sazIrK+zq7WjvrGyp6CiqZ2im5qZrKaupKW1qaWbmJWhm6etqb6oqaaVlJyVoJqSl6SpqJCdkY+XnLCyv6ybp52noomTkambqaSbm6ugo5mao6eso5+ropqwm5WnoJaVnZ+dl7GkmKGomZyRnZyjo5mmopqcmpqZj5aBZ219cXeSl5SRhYq1qo2GmJWPioyYl4eUlYqEkpSRiY6SlJiUmJeaoKKanJShnY2CeqWGbGp8kHyAdImKgXGCeHl2douAe4prc4F0g3Vkd313a3B7bWBjXXBnTVlZZmpgV1pwem5sZlNPRlM5T1pNUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LkCzoLOiv6GjsbK3oKmlsqelsLWqyaussaW1psCotKGdpKWco5WWoKqmrKOjt6ufmZaWn5etqqbBn6yklZKcl56Yk5Sin56ippORmainssSvmqucqp+PlpapnqucnKCsmKGbnKKkr6eipaierpiXp52ZmqGenpywoJyippWYk5iToKGVo56XoI6Wk4qKjY6WrY98lZuCkoKLqqiGgZiWioSPn4h7hJCHhZmSiIaKlY+bl42Ql56jlpqTkZ2Nfo5mobOvhYqEdnqQinx2eXpvZnqRgYCJa3WBeYhyaHN/enaDiIJrdGR5ZmBqZWNkZmtZa3twaWpcU0xQRF9VRUA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76sq66ysqCqprGtoqyzsMWwqqyjs668pLScn6WioZ2Zl6ilqaakpbO1npWUnZmZsKauvqCsopCRnpqZk5GVoZyXqJyEnqmrorPIs5+qo6qXlpeap52om56kq5Oen52gqa+qpqOroq2bn6ChmaSenJ6dr6OYnqiTmJeckaSZmKidmpdlgpJ8ZX6NmY9jeY1saGt6kaSra2WamH5nhYplZWloe46hj2tojZeRo3hraouYo56Yc2xueoSNh3pYZV6Fgl5si4qAdlxoc3d3koCHgm54gniAc215hHR3iYiOg3tphllea3RkXXOJaWp8cWxjXlJOV0pkWEFKND1GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsKqlqK2tsKeurbC9samnpK2vsJ+tl5+jnaGamaernK2jpaipsq6elaOQoq+mt7mlrqOOjpqhmZKSm6CZmaWVe6Wsoqi0xLikoaeun56VnqOeo5yjqqiSnqGdoKqwqqujqqCpm6afqKGslqGbpbCkl5yrlaGem5Kll56qmJ5+vYOHcrRyhJ2GrWh4ucS4cZOio3ummJlzqoJ8y8DAu3GLooiCn32VmImewL2Clp2djZ3CwXuCe5KNmsPAfWqlsW+MgW/Ken+bd5KDjoF2eoGAeXF6f4dxeIWNk3ltd5RjZl94ZGBlgmNedGdtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmolKOvqbCuraayta+ppaamsKugq5iaop+cm6qnopyso6WopaS0pJ2ikqauq7izp6+ikZGanaWSkaChl5ufnYemq6SrrcDAsKCpr6mXkp+dopmho6qjk6ChnZ2trqmspqOjp6Glpp6tqZKkm6mtqZudqpysoZaXpZaho5ecf86UeHqkgXmVlptfro9ejqeBoqB8p5WbdKuDgK9eY42qeqeHhaB0l5OIs2OCq4agjo2zaoSudH2Xh7hhg61Zo81ukHV72nt/mXB+iJJ2fmV7iHZ2a32Ibn6FkZJ+bYKPYHFrcGdgX3lkXHFoamNmYFJUUldeS09DNUFIRUQ5PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcK/v7W0sLeXnZGkqqits6ulsqysq6Srp6+qoKebmaSXnKKvn6CeqKejpaGesKybnpWnrq2xqqisoJSSm5+lk4+fpZedp6OeraSqsKjAxrOoqbGulpKdnKKXn6mqn5Shn5ydra+nq6mcp6ikoquSrbSXpqKqqZ2jpqWhsKCSmqeaoJqUlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnneqgn2tf5xyrX6rh4afdpiSenyXfqqIooyRjJ1+q3uJlI+fgHutVpzEeo9vksF9gZVtdXCMbWV2ZYZvYXducm+Ki5KQg22RkWVwdHVwYGdtZWBvaWluZmNXU11hWVJTQzlKSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytJ+do46jo6Gsr7auqbGnqKqnraurp6KjnZmilaCmq5+hpaCoqKKfnbCsmJqWqKevrKinqZ6XlJqjopGUoa2bnaajr6yjq7Squs2yraaurJaUnJ2imZ+urJ2WoJmdn6myqaqqm6yrpKOsm7CxoqisrqWYpqqpqbGikpajpZqUkoSkaqR1iXqpdHqycIKliZmMcYigmoekYGBSq4R/roObdq6BpoaGn3qZloZ7ZoCjiaSZhYKjfal+gZWHrl98qFWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojY2Yj4FtmpNwbnl4d29sZmVlcnBmfGliXVdgaVhYVUxNUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVv6GZq6ehr6KesLSwr6mtoqemqqurqaSmoJuln5ymp6ajnKyaoqyhpJ+vop2akqqktbCuoKmbnZaUp6SQmqKooKClnLGmo6exrLbIsrWqrKqVkZ2copmgpbOdmqCUnJ+nrKukrpqtqqOiq6KzrqKqs7Ghmqmorq+2o5OWo6eYm5F8qmyehId1q3l8sG+CpIqJn5aVn5SB0ri0uMmAgbJfX5Spg6SIh6B5mJWaeKrJdJmjlaepkJOajH+biprGxnhloYKlc4GfjoJ9r15wtWOxdUujhm2nR4KTZI+QnpJ8cJeTgHF7dX17bltmanNxZoFqX2FZZG1cXllJTk1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz4tNU9UUR0cOzxGMiwkp6TBxritqbKtrKWinLK5rKqhppuopaqrqqegpqWYqqOfrqudpqCsmp6ppZ2ntp+il5OoqrayrJumnKCVkKWskZmcp6OfqaauoaOnqbC0wrKzqq2ok4mXnaSaoaOvppehlJicpaarm7Cerqimn6yjt62hsrmvnZuup7Kzs6SUl6ejmZ+Ogp1OeJqBf596g6N9g6SEh6efnJ6ThLh7fHm5gn7MxsK2eJuhkYuffZqWlop2npiKpJijqH6whZ2Fn4SsfZqUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkqSXfH2Tkot1enOFf3FcbW94cmqCb1pkX2huY2RdS01RVEJJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA4ODIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu4q6+gm6Gss7Omn6CVpq6trqqnnaamm6OnoLKuoqmmsqCZqqSUo7aiopWXoqm0uKScop2ik5ChsZmenKeloaKvrp2kqKG2ssOxramtqZGHkJynnKKknKWWnZiZmqakqZqvoq6lppivpbytobe3rZ6dtbK4sLOmmJ2voaOehY/RtcO3eYeOhZGTkIGmeJSid4ygkYSlgYpxqoaEtG5yapmjm5WKn3yYmYaHj3OvgqWboo2mi5OdiZWQmm1wslylc5N6nGyZf3uZfW6pYaNxcX+fYnOyuGh4j5SmmX6MjZOMeH15joJtaXhqeXNugHRdZGRubWZnYEpbWVg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWTc42Krb+/u7q1npanpK21oaOZlaOpp66qq5mmop+moaC1p6Opp7CjlKyjjqSto52QmpqqtLSknaScqJGUl66goJ6mo5ynnLSaoaqjtqvDsKmrqaGMhI6coaCmopWampuYm5mmpKaYrKiuo6Wbrae+rJS9sKyforCyuauzp5qosaSnmHqokH18sHeKgaSliJxtsm+hh618oY6DqJWYgKyIha6Fn5SpoKGWhp+AmZWAe5J+q4CdmpaLqnidoI+JlJKAea9do4F8pqdknYB8l3Rrr12la3CFmV1gW4ygbZWSp5mDlI2XjHt7g5d/a2x/Y351bYB6YGdlcW5oZ2hDWmFbPUtUM1U4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JODA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVlZXWFZVVVFIRklKIygovZKahKnGwrbBtJ+arKCuuKWjjpukop+wr6qfpJ+drZmeuKCjq6CvqZquoZCrqaSWiZqPrrCsp5+nmqyXmI+soqGdpaGapJytmJ+oprapwK+lqaSfi4COm5qfpp6SlZqalJqapqSkmqmsrKSloKqov6WXw6yqoqGrsrmqrqegs66oqZh2r36Qi5yFh3y6roqYZbCMZZWtfaGPg6aVmoGsioSwhaWZpKGhkYWgW2xqgbNgf617e4KBsWxnb5mXjIixW320W6SDa8iiZZ+Ae7tZdrVasn1Sr4B6rFiAoW6YkKibi5eRl5d8eY+dfmRzfmKEeHSAfGFqZ3FtZmVlT1VkXEJVXz5KKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFBSVFdaXmBfYGFiXl9cW1hVUE5KRkM1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjm6ympbaooIuaoJ+cs7Opn6OfnbWYoLOoqquer62erJuVr6mijoibjq+sqKeip5mukpmPqJminaWfmaOipZmfo6qyqb2vpaienY59i5uVoKCZkJKam5GamKmgoZmorqempqOlqbufoManpamhq7S1rK6mnrutrKyVgKmSo6+Om4CHpJeYkIGAuMO6g46ck4SnlpyCrIqCr4imm5ulqpF+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGqjgW+rhG2df3qysMeDaquwvax4d6K+vHSBlo6nnJCbkZideoKRm3pjfXtkjWd5gntga2VramJQYVtTalxAVWFDTio9OjQvHh8kHiUyIB0kKDA0OTY2Nzc7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbO0sb+5sb2yop2upqWypp2MmKW/qrixqKG/pqaynJ6xnLmonq2vpaeUlLCsl4yDm5GupqOsoaScqZ+Yi6OSpp6nnJqgqKKYnqCsraq5rqijm5eSe4eZkaabk4+RmJiPmJSpmqCYqamhqqehoqu7nqnFo6Cvo6qztKqvqaC6p66umnN1qqS3hmWJoHBnrY+Kj21veKSPmZ+Bda6ZlXCPi3GVqKObl66kcm1tbWWKeG9tgplxgXpqcWlniZaVmHFpaYSGZ3CGZF2JY2pvWV1nfnemYGJxjpFvZmSAjZOPopiYmZKXn32Hj5V2Zod4aI5reX95ZGxjZmxiS2RXSmxZOlFlRVInSzorIxwgGiMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqZWts6m5ubKzqqmhrp6jsqmYkr6yw8i+tqqewKuso6CnrJ+6o6StrK2mjZeuqZCMhZWWrZ6mq6Gfo6OgkYukkqeZqJmWo6mglpympqivuqysmpuTknuElo2lmI2RkpiUjpiVqJWfmKmjm7GnnqOsup+wwaeks6assLGqraunuKOtt5aKoKiltp2JlqKYh6makJSdk6qzmZujq6CxlqGhnZ+inKCkoZWrp42TkoyHkpyclJCak5iRjpWFgaSZl5WNi5OSio+GhH1nin90gnZ0h4xxp217lJGUkoGBjpCQj52UoZaZl6KDiJWNcmmQd3CLeHd8empsZGNvZFVgWEBpW0hjYU9aK0Y9KychNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRGSktLTVBQUVhVVlleYGFjXF5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbaurqKwpK2foLWxkI6sxr3Eu7iqoqWem6aesKijtqedqbWmqJGYrKKLiImPnKeWrKWgmaeenpOVo5aomqiZlKaho5CbqJmhtbuoq5makI18gZSLoZSKlZKVkJCUl6WQn5qqoJy2o56orLenrsGuo7enr6+wrKmpsrigrryZkaWkpraikp2mn42pn42Sn6Osr5uho7Cor5ejoJyjqZ6enZyWq52SmaGblJCWqpmNmZmWkJaekYmgnZWUhZKMkI2UioB9ZouGdYZ2eYiDc5xqhpCUlJCJfYyWkpKXk6GTnZeihImZh3pylnN6in9yfH9qb2RecGphW19ZbmNQYGVQWjpHR0U+Mj0+Ny8rJispJh0mNDA2NjU4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVVBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWJhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaetoKe1qpCQnaWzu6+srKKjmnqdorGkpbCplpu4pqOTmaqcjoaKiZyjkK6fo5Wnn6CSlpibroqqlo+omaeMmaiPn7m2paaZnI2JeYKTi5qTipWSlJCNkpeijZ6eqZ6fuKSAhK+1orCvdaS+o7Kgd3mgqrG7lHWspJ6JgKp/ZFxidqCOpJ6El35uk7Odo6etqqNlnZ+Sc3mZl3CAmKiXbH+iqIplnKWckZeYloySnJCGnZqQlYOSho+OkomEd2qOh3aGcXyGgIBhaYiKlJKLWnaVkWhoj45yeqaamWV5mYeCeJhqg4qDb3mAa3FlX3ZwbGtoXGZlYmJwU1w+Tk5OU0c+QFRDOjEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTVRUVVldYGhmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mm5Wmo6GvsayrqaWprqOnraWSlqu2sLKmmqqnq5dzjJ2wn6irp5OXuaCgj5yknZF/iIibno2rmqKUp6GejpeRnoV1ro+IppqokZekiZy6tKigmZiLiXV3k42Wk4qUkZCUjJCToI6boKeZnLKWgIyctZ2zjJKPvKegfqeieqKut4GOjqaeg4uGkLGpr4yKlqOaeYGLrIacnaKnqaeHlYWYd6WbeoebgZemgoJ7nLF6ioWgl5mUmJWCkZeWhJqZY3mHkISOj5GKg21wj4d5gHGAgYV/hnSGhJWSeJZoknSgmnR9mYShnoeYf5OKg4OZa46NhWx4e3FxZ2R4b2psaltla2pmdFxfSVRMUUBFNS5ZVVU3KSEwOT0+NjQzNTY4Ozo9Pj5ARElASkVKS0dTWFpZW2FgaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mrq6rqKygqLGmp6qlmZSuyL6woZamqbWekISdrJynoqCNkL6emo2fmqCQfYaPmZeIrJyhlp+gkY2TiIaAkaiNh6Kco5OXnoafurKnnpuSjoVwdZCJlZCKlI+Pm4uPkp+Sl6Cklp6siJ+0ibSarYrKh6quiLeFjK+CsK6DqY2lmI2dfKiPcnt3nI+nlmiVpHm0i5+epqiSmMKBf6uImKFxnoCZpH2XhZWxgKF8oZSgkJiWgI6Tm4qYkYt8hZKGjZSSiYNtc5CFf3pyhoGEfIR1hIGXgI/FZn+ph4+ja56DopuEmoGNjoWKmXGOk4Vod3R8d2hodXFnaGteZHBtZ21YaEddUk0yRTQ2TmFjNyYzPERHRDk2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdhXWpsXFFFPUtNQEpkWV1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUl6KfsKipqKWroKS5saqrppqUoKOkqqOWpaq3o6+AoaecpZ6diZS9mpONoZGdkHmElpaRiKuZm5uZoYWPjHabnI+fkIiepJuVmZiHo7mupJmcjIx+Ym2Pi5OQjZCMjZiLkJKfj5SgoZmhqH6hp4etnaCWrY+enJ2RhYCgjaquhqONqZmMmn6idYCZlGuCrHVNq3iHjZ2Rm6ingKmrfYOhe3qnaZ5/kmtnl4aXtomefW5gZFmDln+Me2Roi3KZfXmVbF17lm1fU3CDXF9reYNgWWWCfYOAl3CnqmuDo25ypXCfhJ9pZqBtW26KfGZaYIN/YldQb3dmbXRya2pvXmpwbWxqWGlPXVhGOUE0R0RfazQsSUNRTU49ODQ4NTk7NkA7Oz1BTz5RUkxNQkpcXV9XXl5idmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhY2lrZGJkZGdkYmdlYWNol5adoLmhqqOmrJGhtrysrqOZl6CipaytoZ2utaOokqGgoKabmY2YtJmQi5+MlYx1gZSSjIqmlpWYnp5/koWFrKSHm5CKmKmYmZqSiKaxp6KVmoiJgGluiIiLjo6Ki42Si5CSooyUnqCcoqV/k4GPo6GUoHeclo+ng6Gnf4aprISleIp8hJp9onBzlIiWe56MeW2HnIyZkJuomo+HnXuConN2pmaefnakX5h6fZJzom6Yt7S6dJKHgn+1qGSBxrh7cJW3i3GAmqRjc6yrYH1qnbN+bnyGgo6Ci5hxf6NscqNznoSApGCdmbOWcXyXn7R0c1uesoNqYm90dnJob1hrbHNzZl1pXmJLRT1ENVFBWnIyPVNHX0pSPTwzOTU6OjZEOztASVE/VU1OUUBFX15bWVhgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLe1rq2gm6Kco6OmrZybsa2sk5ehmaGkmZqUnqubi4mSeIuGcICWjYmPoZCSlJ2XfZCJjqigh5iOipGjk5ybjYypqKWekJaHhH5re4d/fZCNg4uQkImPlKCDl56gnaCfi4l3nJiijJ9yoYuHqIibpY+Wp6p+rYx+eqCZeqOTeIF0loiNnH2WoIebjpmbpoaiZKF8iJaQm41snmibjW6amXuAiqd9cmh0q4Odg3SqaJWaXZuFdoSdaKpqgLhmXKhwgZxhlYxep3Z2iIl/nmiadYaTkpeOf59umpBtp5pdqX54u2t+qluOhF20Z1xucnl4a2lccWp5eWNgZlhiQVFFTzdWQ1JuNEtaWl9OWkRAMTUxOzs3SD86Q0hVP1lSWV0+RGJeVmBRYWN9aUVCOU5bXVhkZlhmZ25tYmJlX2JhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniWOUm6u6srCsnaacnKifnq6bnrCorJ2XpJqhn5iWlqCjmYaJjWqIgHJ7l4iLlpaEkZSYj3qKhJajnYqUj4aLnpKdnImQqaOgmoyRioCAaYCGeX+XjHuIjo6Ij5aaf5Oin6Chk5hyaJ+Kn4+McJKMgamHmJ6ip5+nfK+to6K4l3ejs6KkgIiUeZ17q5p/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmX50qlpdb3uWi3ieYkx+enqFY3mXQkyeWaJqcXyObYGJhJl1m3iGibGzf3+bk6d2gp1uc32Ub5lza6RdlXZIZWNgc3F+f25mYGxpdntkZWJSXlddVVdAWUZRZ0RTV1tiWF5JRD1COD9BOklFOExFV0FWUVtWREZiXFpgS2BtfnFFQzxVX2JaZWpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZsXmVnZmtkZmxpaGtpk52Bsa2ZhFReoKazubOzqZqijJyrnJyplKGrpKKoj5+enZqZlZignZaIh4l3hYFueZWFkJuLfJGTlohyf4iSoZtzkZCBiZmVoJuFjqmcmpWLi4p8hGyEhXGCoYx4hY2IiJKYlXyTo6Geooiuhn21hI6enHullnqpgZWcj4qgnHynaHdtfpl0oXNxfJ6GmXCTg659pIOmnpqAo29eqGd1o2NvpWGc05B8e5l4cnNjooWQfqNzo491a5CzjGCCmIlzqrKovH93g21+vqaptF6cbn1xl26Ac6JyXaRnc6ZhaKZtm9SZfYWbcHl6l2ube3iXc26ppGdgZXlwgIRrZ2ZkbnZ3Z2BjU1tmUVFiSVdJVGBXU1tlalxlUUZDS01KS0JKRThQQFFOV1JZT1NRYGZlaVNjd3l3SUZFY15lWmhpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7GrVFxLfqmvsbSws6ObmYWZqKCgpI6kqKCYqYqZmJiTmZOSoJiOiIZ7cH2EaH2Pg5SagXeRjo+Jb3+Gj5OSbJeTfIiRkqSWg46qmpSSi4WJeYN3iIBugp+Hd4CThoiZopd7lKKkmp+Js6Gitot6rKekrqVwqICakIWAm5F7pIChmYaYcp6Eo66vipeMgIykjZaDrqGUdrW1tcmhc5SKgZ9gnZepbXmVhqCbdaGHd6B+kpeKgG9MZqOScJuHcqR7eXRhg4JrfqBrcWRgnHJ+dJdpemmztbTGpnOYfnqda5ybq3WEm211d5hpmnp1mHJQRX20Xmp2a3mIZmpoYnR1cG5WXlRZaVBTaElVTFlTVV1oa25WZ1dNS0FKTUtISk5BUUtQZWNpbWV1c3N/eXxudYl7e1RQTmxeaFtraVJqaGlsZ2xmY2VfXF1cXmliZGlre19dZGhjamZvbWVpbGWhnIivpoRmP5Shs6uvr7aiopCAl6mioqWMpaednaaCmpeWjZeQj5yTjoiDeWp5hmWDjH+XoHl1j4mMgWmEhZKDjIWdjXqMipWmk4OXqZiMkYuBiXqAfYt5cJChhnmBlYeJlqCWf5SlqJyWloRmbnicbKJkfHGld5uYcGemgJaLe6R6n5aDl3KedoGKlJaPuW6QiqJifZmhlYhtcmmranWgbW6mX5ppi5BoloealXWigH2aYIyGjHRviGJooGWefmmadW9jZoiCbXKiWl9bY6FtXYmMb3t+c3JkpW13omRnp2iZc4yZb6JvU4mQb6BfZahUi15UmG5tc2tygm1waWt5c2tvUllXV2ZaU21JWE9dSVhpaHNqWWtWUVJFVlxMWFJhVWhqX3d0en1wfHxyg3t/c3aNgIR2XlFyYmdicGdQamhoa2xuaGRnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKSYpnpldG2Lp66kqbCxpp+LgJernZ+ljKKhmqKigJaYk42aj4uYkI6Ke4ZxgIhoi4t8mJtzdIl9kHtkgoeViomVmYJ8iIaWqJCBoqyRhpCKgop+gICOc2iPpYR9hpSNiZigjoiTqqediaZ4lpt/pIiWjLKYnpCCr5efpXeUh3mpdKSOhJpupKKMkoSMg7tufaWvgoaGhpOWnJ98pXpxqJWglmaefm+rY5aKlZJ3qGypooGJdYeCd6uRpodqkbBrdrOMqWuKhm1tn56SlWF/q4uqdn9/jKWedp99hKSVnaBqm4h3rGefrY22dHe+jaSTWYOmjathdXJ0cHx0cWNqfm5obFNWW1ZhYl1rTV1SXUldbW12YFtxWVxgWmd0ZW5vcWNxdGB4en55cnmDc4R+gHt7jIGCgHZieGRjbXNkUmtnaG9scmpmaWFfXlxia2JtbHtvXFxiaWJsandtZ2xuYpWlqp2BgJ6klqmqnainrqSZiYOYq5qepImapZ2pnYWMmo6GnJGFko2MjXSGeoiEb42EfpiTdHSGcpKDbX+LkoeGk498e4GFmKaOf6WmjoGOiYWVdoKHkm9si6mBg4uUjomcn4mNlKujoI+AdZSWiH6BeZSuo3+Bm3GPhXiPioN+e3KmjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3p9iWuMhVt5eHJ6cGhufpKJcX90go+Uk3GFg4JljH9egX+Ld3VzlHVveW5uh22EhV52aHiOZYCBhY6pm310fJZqiYhvgHZ9hnZtbWeMc3l7mHiFW2tYeY9pbndycW94eHBdbIZuamdWWmBXXWVrY1ZhVV9RX3B4eWxrdmVqa2p2fHFydHNhb3VidHuBeHV6g3aAgH+AeIuFg317bX9sZHhuXlduZ2h1a3hqaWpkXGBaY2plbHF1blpbYmtkbGx5bWhsb2GOlLiopouhopqmpJmlnKuioYSEmKySnqGJmqabqZiDgZuKfpaTh46KiY1yg3yPfX6PhXuXjnNyhHCVhXt9kouGhpCFeH5/hpmkjnynoYuGkJCFloOGjph3coWpho6SnZCInp6IjJuon6Cqg4mNlJp+fomWraiPkqaPd2+dkYJ5kW99qIVwfZVxa3B9gZ+Mf5OOjGhtXYOLjJybno5zlYuIcXRrgXZ0gVlyboeRgX1+jGpdamR6hYOIgF9peHqbe4KLgnWBhoJnd4qGa2FwcoJ2X3KLgYmPppWFZoyPg253i4Rxho96cGZnZHuDepZbXGpnbnZbe3l3dW5zc4JmXG2Ka2xjWVleW1lscVxfYVpeXWZ0fnt1b3Rja2tqe31ye3h0ZG10aG18fnZ6fHx6eoCAfm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VtbGdzeW9oam1gi4upsKGQo6Ganp6Ynpmoo6J+g5itjZ+ViJuikaWVf3uYhHySmYmIhoeKc32Ai3aFi4GElopxb4BymIaEfpOEg4aKgXqAg4uboJCCp6KIeI6YiZWLi52XhYN6rYKRmJmUip6dh4ihq5+ioqOLh5ObnKOZlqqhp6agkpuHlY17d42OhKd+f5KRkpOcsqablZ6QjbKTmISljIyVm5+JkJuCiJGKa3yNd3hlgoaQinyJnYSHi5CIiICFhJB3fHl0mqGIhomeioSUfn2LgYF1cHOFg393h4eKkKaRhIWNh4ONkIx9iIuJkIJ3bIKEfXqZanJoYXSKcH16d3ZvdnSBXV5vh2hvYF5aXF1TaHJVY1xcYWxodXx8c29wZGtqaX98bnl/cWlwcGxmgHtygoB4f31/hXttgoyGfHp4fH16g3lOZHZqcm1wemRrZWJiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZYyHnbmel6KhmJWZmJSZpKGefH+aq46ejYagnIueln15lIN7jpmJhoSEhm54gIBygYd+iZSEbWt+epeHhIOQf4CGhIZ9hoOOm52Sh6ufg3KKkIaTkYydkX2NeqqEjZKYlo+cl4eGm6afopqdhoORmpmZkJqmoKWdnZCWgJCKdnuHjoSle3yOkJGGmKqhnZOdj42qjpGAnoyJk5qego6XfoaOg293hXF1YX6Cj4Z1i5iAg4+ChoV+hYOUbXh1dJKiioyFmYWEjXSAiXx9cnJ7h4R7eIuOhJKmj4aDj4GEioqKd4aIiox8b2t+gXxuaGxtZ156f2h9e3Z0dnV7d1xgcH1udWBjW11eUWduVGVbXmFraXZ6fnFsbGRramiAgGxzgWxsdG95b4V5bYeAdoKAfoV2cYKNiH57e3x/e4KKYGl7anVoaYJlamNgaVxkdWhvYnRtbFVjcXllcHp6cmVqbW2LiZ63mqGkn5KRlpeLmp+fnnt4nqeRnIqHpZSLmJl5eoyFfImRg4yCgoJufH94c4GFfYuRfWtofYKYiYGIjnx+hoSHfY+BkJubkYinnX9wi4uMk4ehoYqFjXyokYiQkpeTlpN4jKOgoZ2Wmn+BkJqYkoyao6GjmpeRm36NhXiAg46HoH99jI2QfJikoKGTmZCPpo2QgZuRiZOXm32Skn6HjoF0c4JwdmB9f42GcoqVfIiMcYx/goWGjmh3cXiMmJGPf5Z+h4pygYZ8fHF5e4uEenqRjIOWpZOLhpB8hoaHhXaChImIemVyfH94enFsamZefnNofHV2dHxzgGpeYHR2cHhkY1lfXlJraFRlWV9haGp2eIFxZmtkbGhmgIFrbn5ob3FrfniGemuMgXOBgX6BdHaCjYZ+fHp/gX1/j2pyg25zaWKHaGxiX3FWdG9tbmB4aG1XanR2Y3V7enJia295iY2espGkpZ2OkJiPhp2hm518dqWhjpiAjKKKiJqWeHuGh36DiX+JgoF/cX97dHaChX6KkXhnY32Gl4qCio14fYCMg3mWgZWYlo2WoJt+b4yCkZSGppuHjYmEppWFk4uWl5OSd5GdoaGXlJd6fo6Yl46Wmp2knZiSlJt5j4WCd4SWjZ1+gYmNjHOXo56hk5mOj6KMjIOXmIOSlpl+mI18iI2BdnF9bnpkgHyKhXCGkn+QgmyHgoGAiYRldW97h5KXjHyTeIuJe3+GfHtxfneJhXmEkIqLl6KVgoSMd4iEg4J3fIKKhnZgeHh9dH54Z2xkYX9pandzdHV9cXxiY2FzbnVzbWFaYV5bbGVSY1hgYWlrdnmGcWJqY21laX2DbGh1aGxvaYB9gXltkIZxgIODf3R8g4yBgH56goN+fJBtdol0dG1limxqYmN1VoRpcW5geGdsYmp2cGZ5e3lxX3JshoWPnK6XpqiejY2Xh4afk5eZfXiqnYqZepedi4yYkHl7gYt9fIN7gIOBeHR5enN9gIR/iYuAZF59i5WHf4WHdX1+in99mISXlJeMpKGYf3KHe5SSiqePjI6Kk6CSg5KQlJeRi4GPmKCakpCRc3+NkpSJnZ2eppeXjZWWc42OimuFl4+ZeoeIkIlvl52ao5OVio2fjIeCkpx/k5KVhpmIfIqJgXpxeWt1bHt9i35thZKClHdwgoN9fop/ZHJpe4CWl4R+jXOQiIN4h352eIB9hoB8g42EjJSkj3mEgnSJh32AdHaBiYRuYXt1enF9b2FvY2R7Ym5vdnN4d3N0YXVfb2x1bm9cW19eXmteUF1YY2FobXR7iGtfamZqY2l3iG5mbGhqbGiBfXt3b5CIc4GDhH10gYaJeoN9eoGEfX2OcnqLeHhubIdraF9pcmKHaHJvZnZnbmxheWlrfXt4cGF4bYuAmZmqoKOonoqLkoaKnouVmH13rpmNl32flJGWlIh3fnuKfHuAdnd/gHB0dHtvhX2BgIp+fGFcfpCShoCEhHN6gIZ6j5KIkpGck6WclYJ+gX2Oi5KkiY6KjZiajYaRmJOWj4qIjJKck5CMjW6Dj4+RiZ6ZoqGXlomWkW6ImYRmhZiOlHqJhZCLcJWalKKSkomLmoyCf5GefZKPkouZjnuKhIdzcnVrcW50e4t0boWQjZJxdIB7gYGIfGRwbHh9mZN9hIh0kIqAc4h5b4B9gIZ8hYyJhIyVqIx7iHx+i4V4fnFwgYaEY2h5dHVwfGJecGBrdF5want5eGxzcGV4XW1sc21zWFpeX2JrWlBXWGVjZ3Fxf4dmXWloZ2JncY5uZGlnZGlogXp3dW+OhXSBgoN7dYOJhXeFfHiEhXqAind/i3t7cniDamtfcGh0gGtyb21xZ29sZXxjboB5dnFsd3eKfqKXoaigppuHjIuBkJyHk5x1gaqVk46HoY2Wk5CAdHt2hXh5f3Jze4VrcnB6bYp2gIGHbnFbWX6SjYiAgIB2dYCAgKCGkIuSnZihlJh4in+BjYmcnoqPhpKYloWJlZmPlouLjY2NnYqOkINtiYuQkYmclqGcmJWFl4hphKOCZoWdipF+i4OLgXeTmJGekZCJiZWOf36QmHyRjY+NmpJ8ioCCbnVwbG1vcHuFaXODjpiKcHd/dIKIgnhmcm91gZmOfIiEepSReXaIdHCJe4WMeouGg4mOm6OIfIR2got/eHhvbIGEgl5yc3JxcHhaXnBgcGpeb2p9enBtbWpsdmBwb2pybVpYYWFiblhRVFpmZ2N1cISCYl1rbWRiZmuTbmBmZl9na4F1cnNwi4B1f4OAeHWAi4B4hX93h4Z3g4V8hox/e3aKf2pxY3xjhnxvcW10amhvbHZ4X3F/eXt0dXSAgn6klZqtnqaWhYyEf5eUg5CfdYuglJOGi5uMlY2LenJ4dIJwcoV0cXWIa29tdW2IdoN+gG1uVVGBq5WHgniAd3OCeoKggpKCk5OYnJKaeJJ7g42TpJqTjomVmZKEh5eZjJSLiY+PiJ6EkIp8c4uFiY6InJqfmpaUgJN/aIWch2eFoIeSg5GDiXGDkZePm46PjIyQjXh7kpB6jouMkZaMfIh8gGt2am5ra2x6f2F6fo6WgnZ6gHiDjHx5Z3NsdIeVi36IhnuTkHF6hHB2jHqJjHqJfYKMkJ6dhXx8d4KMfXdxamyCg3pgeG9tbHJ0Vl5vYnJgX2xueXBob2Zmc3RocGthd2VdVmZgYHJTUU5cZmVdeXCIfF9caHJiYmVmkmpfaGRbZ3B+cGtwdIp9dnyFgHR1f4x5e4aBeIiDc4aFfoyMhHt5lXhmcmqDYIh+b29re2BqbnR/dV90fXiGeHRzhXx4oI+ZsJylj4KKf4OaiICMn3+LmpOOhYiXjo6PhHZ0d3OAcG+FdHBxg3BqaXZug259fG11c1JNgt/IktaTfHB1g3aDn4KTd5SRmZyQmXuUc4WQn6GTk5CKk5uUhn6WloiNjYiRjIicf46Ad3qMfoiLipycnZuVk3qNdmeJkodsiKOEkoeXg4ZjjJGZjpWKl4yNiotxe5SIe46IipORinqFfH5se2Vyb2preXlcgHmQjoF6fX5/ho56emhzanOKjomBhYV9lYtrfn9ugIt+i4d8hHqCj5Wamop8dniDkHlzbWdxgIRtanRvaGp0blNeb2RwWV9rcnhma2piZnhyb3BjX3dgYFZrX153UE5LYWdjXXpxiXRcXGV2YGFlZY9kYGViWGlzc25rcXaMfXR5hoF1dn6Lc4CGf3uJfnKJh4GRioh8fph2ZXNufGWHfm9wa39abG55eXNhdnp7jXZzd4p3eZ+Lm6+boJCChXeIlX59ip2HhZ+RjoWMl4STjoeBdHdweXFuhG9tbn5yZGR4cX1teX1qaGxjpJrB3K7voXNsdYR2hKKFkm+WkJWglZyBknGGi6OXiY6VipCdloOAlZCFiY+AkYqJln6HenV/iXiGhI2cm5iZjo92inZuhomLfYqjhJGJnYWFXouTl4qPiY6Li4SKbXyWgX2IhYmRj4Z2hX19a31keHVpbnhzWIh6koaGeX6AgIWLfnhmc2p/iY6JgoKAjJaFa4F2boiQgo+EfoF6f5CVk5mQdHN4iI11c3FndXqDYnRtcGJqdmdSYHFnbFVfbnR5YXJjX2h9cHJuW2NyYGJXblpceE5NTGRnYV52c4ltXFxkeV5gZGaFYGNiXllqcmtua3J3jH50d4SBeHd7iXGDhH1+iHt0i4mIloeMfn6Yc2h1cXlsi3pudHGBV3F6dnlxZXd5hoxpd4CJcn+ch5mnnKOShH1wjJR4eYudhIWhjY17lo1/mYiEe3J3cHNqb4FraW18dF5geHd7cXV7Z2FlfOvatcnD3IhzbHSBd4qaiI1pmJCPnZaTgYlxhYmgjYSLlYqMmJR8jZOIg4mPe5CLhY+Cf3Z4g4Ryh4KTm5aUmIaMdYd/cISCiYeYoYOUjJ+DiWGDlI+HioaKjYeBh2l9lH99g4SJjo6CcYZ+f3F3aHZyaXN3bFqMfJKChn1/g4CEiYJ1YXNriIGPioF+f5KQfW2CbHiGj4aSg3yAfYCRk5CWiG9xeoyGdWxxbHJ5gWB0aW5da3ZgUmVyaWZTX3B2dGBvYF1ognByaldnaGJpWG1WXHVNS0xlZ15icnOFaVtcZXleXmRne2BkX1xZa25mb2lzeIp+c3OBfnp2eohzhYN9gId2d4qGjpiBjIF7k3Zsd3V5eJN0bnh7fVl6hnGAb2d4d5KCZHaGhXGKlYWZoZqiiod0b5OLcneOnH2KmomJfJ9/g5l/gXhxc25vZHJ+aWZsd3hbXnl7e3FxgGphZ2F/1baOkKd4b3F3fHGSkIyHapmOiZySjIZ7aYiLmoeBkpGGh5iNfI2NgYGJjXuPjX6JhXp0e4J6cIaAlpmOk5SCiXWDhnaDf4qTnJ+GlY+ffohhgJOHhYiEio6Af4NnfZGAfn+CjI+Qfm2CfIJ0a212dHN2dWtijYGPf4V+fIR+g4d+b19ycIV7joyBfH6RiHpwg2Z5g4qGi4N8hH6AlI+QkoRub3qMfnVub2tse35jaGtqWW52WlJpcmpiUWJyeGxiZV1aaoNtc2FbZ19kbF9uVFtwTkhPZ2VcZ25xgGxbW2NzYFxjbHdkZV1dWmxsYm1qdHeGf3Fvf3x8dHiGeIWCfYCHdXmJgZKWfIiGdomBcHd5e4OTb218gXdeg390gW1penSUc2dzh3xykZGDmp+boIaIdnaVfm12lJd+iJCDio2afIuadn12cW9samF1fGdiaXV6Wl94fHptcX9lZGhnV52PXnFzl7zFhHZxlImQfnKXjIadk4yIdGuJj5aBe5SLgYSbjHyLhn18iYx/lIh1iYV2dn2BcXWGgZ6UhpWPg4Nxf4h0g3uJmJyXhpOOnYCIZX2TgoCGhImJcoF9Z32Le3l/f4eMj31pgH2DdmZveHhzdnNsao2FioGKf3iCgIOCf2pecXh6fYyJhXuBj4B+coFpeIKHi4WEeYN8gZiMj4x9bmx7iX13dG9paH13ZV1xY1hvc1NTbnNpYU5mdHhmYF1cWG6AbnNZZWJdam1gcE9ZbFJEVGhhWmtubXtvWltebWNaYm93Y2ZcXWBramNsaXN2gYNxbn57f3R1g3qDgnyBhXZ+iYGWkXiDinSBiHJ5eX6NkG9vfIFxaYF5en5tbXx2lWtqeIR0bJONhZ+YoJmFiG59jHZqeJiPf4KKgpWXinmPlm96c3BsamRgc3ppYGVye1pgcnx5Z3B6YWVljrGyd0piWqTa0Jdye5GLkHh+lYuFmZGNhm9shpKSenmShoGEmIp8h394eImKhJaAb4qHcXR+eml5hYOlkYSTjYN/b36DdoN4hZuYk4qSkJSFh3B7koN9g4OJg2+BeGiAhXhyf3+Di4d8ZX1+g3ZjcHOAaHhwb3SYjIWCint2eH+DeYFqXHB9coCHhYh9hol6iHKBbnGDho6EhHOEeICZjI2EeG5ufoR/d3tlaGp9cmBZd1pZcW5OWHJzZ2BKbHZ0YV1bW1l0fXJvV2ddZmpwX29OV2lSP1lmX1pwa2d5cVtbWGtlWWNweV9oXF5lbGhmbGlxd3+Hb2x/fYB1cIF6gIF/gn92gYWJl4pxgo1xe4Z8enmEk4x0anp/a29+dH99b3J8e5RvboB/eGeSioKhmZySgoZnh4RwaHqWiX5/hYKZioF8jYxpeHJrbGZfYW94bV9ib3lcZGyDemFxdl9lZdTqvooyOj6LjoByeYWIjo12g5eNfpOOjX9ubIWNjHZ9j3+FgpWJfIN4bnaGhIOXd26IhGt1e3RmeYKDp4yDj4yEfW5/dHaDeYWbkIuQkZKMi4Z+e5KHeICEjYNsgHJpf354bXx7gYqEeGF5hIFxZHFofm10cXWBm4uAf4V+c3Z9gHKAb1tsfnR4iYKKe4Z/fIh4enFsiIOPg4pygXl/louKfnRta3aAgHV2XWlpeHFZV3xTWnFlTFtycmVbSnB3b1xbWllddH50aFliW2dlbmNpTVdmUT1eZlxddmVfdHBbWVVvZFllcHlaaF5fZ21namxpcHh9jmxpgoR/eW6Ae32Bf4J6dYKBjJOFcICLbnd+gHt7iJOJf2h7fmp0e3KGe3N3fX+MeXiEfnxrjIyDm52WjIGAbI5+a2l/jo17fn+DlIJ/fYqIa3VxZ2hjW2Jncm9fYWxzYWhwiXphc3ReY2SboI9uXDVZr7V1aoCJfZKGdoaXhnSPi4p3cG2Fg4d1eYp4iX2TiHp/c2d2iH5+mG9whn1odnltZXmIhaWHgYeNin5ufnV/gHyLmYeCk5CYiIuEiXyPiXF7fYV8aX5ta4B7emp6doKHgHJgd4F+cWRyZ3WCbXV7hZSRgXyBf293eXx0fmxXb352c4uBhneHdYGJenhybomAj4CFcn59fpKIiXpubmltgoJ1bl1oZnRyUlt7TlxxXE9ccnBjVktzeGpXWVlaYXGAdGBdXWBnZGhpZk5aaE5BYWRbYHZhXHRtWFhTdGFaZG5yV2peYWhrZ21saXB3fJJraISJfH1wfn57gX+CeneAgImLhHJ7h29xd4N/e4qNj4Nqfntud3l2ind9eICCh3+Df356bYSMiJijjYSDe3aMemtthImReX17gpGAgH6Kg3BycGNmXllnX3BwYGBncGZqb4p1YXRvW2FkanZ7f76cpqPIuHGFhHOUfXiGlIJ0kI2IcnJwhHuDdHWHdIh3lIh5eXFjd4Z6gJNpcoR1Znd2Y2p8g4iegoB/j499cn9zhHh/kZCCeJaNlI+Hgoh7iYlseHl+dWh6aWt/eXNpenaAg31oYHeHfWprdGh7f2l2gYuQlH56fn5we3Z7c35iVXZ8cnKJg4J8gnCGiXd4cHCDgox+fXl+fHWOhYJ1aXFpbIiCcnBeaGNzbktldUxeb1VUWXNuYlBPc3hhUldYXGFwgnNbYVxoZWRjamRQW3FJRGRhXGRxXl13aFVXVndeXGVuaFZrXmFqZ2Vvb2lwd3uTbmmIjHl+c3t+eIKBgnx2fYOIhoNwdoNybneCg36Ji5N/cIB8eHl6gYx0g3h/gYGChHmAdm9+iYuanoh9hXp3h3xodIaNkXp/f3yJhoR2j4Bnb21fZFxYZVltcmFgYXFsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhwjXV7h4+AepOKgHV0dX53gHBxf22FdJSGeHVsYHqCeYiOZnGDb2d1blttfYGQk4CBeZKTfXh7bYd1gJCLg3OWipGOh4WFe4CFbXV2f25od2Vte3ZtanZ2f398YWJ4hnpodHVjfXpndYaOjJV7dIB1cYB6fGx/WVZzfW90g4Z+f3hriIZzeWt0f4ODfXp9eHtyi4B8cmd0ZW2Lg210W2tfdWVIbm5MW2JXV1Z4bWJPU3R2WFBVWF5hcYRvXGBjbWRjXW5iVF1yR0NmX11maF1aemNSVlx1W1tna2FWal9gbmZma3FocHZ4jnRrjox1f3Z4fneBg4F7dH6DiIiDb3F/dHF1foaCiY2Ke3d/eIR8fIWHeId8fYF+hYB7fnN2eYyOn42Jeop2dYN5Xn6Gmox5h4N0hYaFd4l6Ym5sW2JbW2FWanNjYFtnbm9nh3JhcWZXXWNrf3zKzoe5omptbYpscYRxfISKfnuShXp5dHl1dXtqbXVjhHaSgndwZ159gnmLiWVxgWtqcWNYbHuGnImDgnOXlHd+e26HcYGJi4dxlo6QiIWLg3t5fnFxb31naHJibnhxamxxeH18el1leYB3aXV4ZoJ2Z3SHi42UfHKHaW9+gHhtfF1YcX5tc3+Ke4Fubol/cXZnd3+Bf4F2fHF6dIZ8eXJmc2Fui4Jsc1hrX3dcSW9rTldWXlRVe2thT1R1clFRVFZeYnSFaFxga2pmYlluYVhicEdBaF1gZl5dVXteT1ZkcFlbamhdV2dgX3Jma2dyZ3Bzd4Z4bpWKdH96eH55goeAdXOAhoWOgnBwe3d3dXqHhoeMhnp8f3WLfn2FhISHf35+fYd/fHh1eXeRk59/jH2LbXWAeWSDiJeGc5KKb4WFgXqDdGNuallfW11dVGdzZWBZZHJyZ4FzYmtlV1pgaX93vq57n7duYnOGaHR8cnqDhnp9jH94eHN2b3t2ZWpuYYd1joFzamJefnh5ioNmcX1oamtaVm94iqOBhX9xmZNxgHh1gW2AgZCHcpSIjIeDiIV9eXVyb2h5YWptYG12amdrbHp3endbZ318eGVyfW6EdGV1hYyGlX9vi2ZreoN0bHRiXG98a3R8i3qBZnSGfW1xaHV+eH1/cnxsenqBendwZWxibYl+bW5Wa2B3Vktqa09ST2hOWXxoYk5VdWpMUFRVXmZ2g2ZdYXBoZ2BXaV1ba2hKRWpaYmRXWVV5Wk5XbmpZXWxlXFllY150Zm1kcWZycHSAd3CahHZ/fnh/fIWHfXVzgoh/lYJuc3h6enNzhYeJiIR4gH12j399hImOhIKEe36Lg3t3fHd3mp2XeoqDh2l3fnxshIWUgHKPgnGGgn6Cf29mbGdXXVtcW1RkcGVfWGNzdWl1cGRlY1dcXGiAcG9ygHOJZGV4fml0dnNzg4V4gYR5d3R1bmt7cGJoa2eGdI2EbmZdX31ve4l9aGx3ZmlkVVdycI2nfIR8dpaQc3xze3lte3qQhHaXfIeGgoaDfXVwcm1ndV1taF9sdWRnZml6b3tyWWeBd3RncIB4gnVid4WKfJSAbotqbXqAcGVyZWBseWZydol7fWF1g3Zpa3F0enB5eHJ9Zn5/f3h2bmNlYW2GfG1rVmtjcVNMaWtQTE5wR157ZmFNVXRjSk5TV2Bqd31lXWdzaWVfVmNXYXBdTEtrWGNhVVRVc1dNWHVkWl9rYFxaY2Vfd2ZtYnBpc29yfnR0mYF3f4B4f36GhHp9doKEfpiFbnJ0e3p0cYWFj4KAeot1dJF/fYGUjoCFhHx+jIZ6foB2e6OlinmIhoVsdXx7dYSCjHpuhXN6hX2Bg3VuamhlVl1bW1pTYm5lW1hhdHtqaG1oX2JXX1tpgGprb4BnbGFoeXlrdHR0b4WBen99dnVuemhqeWpfZW5ogXePhGdlWGJ3aX6Gem9pb2ZmXVVYb2iPp3aBenyQjnl1b35vcnV5jn93lHSFgn+FiHVqcnZnaG9cbWVebXNfZ2FqeGh7bVttg3NzaW+Afnl3YXeEhHiPhHOIcW95f3FicGhbbnZkcHOIe3hhcoBwZ2p4c3Frd3Z0d2ODe353dnBkY2NufH1ra1VqY2dTS2xoUEdSbEVheGVhTVNyXUpNVFlla3d6ZV5tcGlkXVZfVW5uV0tTaFhmXlhNVWxVS1x5X1tfa11dW2JlYHpobGFvb3Vub3d1epd9d4CBeoB/h4Z6eXqDfoGThHF0dH56d3SFiJB9gH2QbHOVgXuCn4V/h32AfoaCgIp7doSsn396iIeEbHKCenaBgIF1bodvfIBziYBqb21kZFhfWlpaVWJqZ1taX3WCaV5tbFxhVlxca4FmcnR9aWpda3Z2aHR3cm6Ge359eXZybXpoaXdmXWRyZ3p3koFjY1Rlb2aChHd2ZmhpYFdWWWhkkKdufniAi456cHB8ZnhueYt6do5xg31+f4ZuZHZzZGhoXWxiXW9vW2dfbXVlemhddIBvcmtxe351dWJ0hYp6h4aAf3dydX50YXBsWXByYnFxhHt1ZHKAbGFsem9qaHl3dHJmhXV6enVxZGFkbnN+amxUaV9eVExzY1FHV2JHYnZlYEtUcFhKTFhYZ2t2emRlbnBmY1pYXVh2ZVRKXGNYaFhZSVdlUUhieFpdX2xbXlxiZF6AaWpfb3R5bW9udoOXeXKBgH1/iIuGfXZ2hniHjH1zdXWBeXp6goyOfX6EiWp0loF7ip19foV5gHp+fIaIc3GProx7e4aQfmZyiHp0fX12cm+GbHt+bI96YnBvYWVeZVZZWVdjZmtgXV1zhmlYcG1bX1dbXGx7Y3B3dmxiW21zdGd1dnFthXl/gHl3bm90ZWl0ZVtndGZ2dpF6X11SZmZqgoF0fWFjaVxUWF5iY5ClaHl0goWQeG1ueWd3bXuEenSIcoB4fHh/aGV2bWBmYV9qYF10a1llXW9vYnplW3d8a25ucHh4dHRkcoOSfoeCiHp2b3F9cmF3ZFpub2FwcYF8c2VxgGRebnZpY2Z5enRtboF1c31zcWJeZm5vfWVpVGlZWVROeF9SSlpZSGJ0Y2BJVG1USUxaVmlscntibGxzYmFZWlthdltTS2RdWGlTV0hZYE5HaXVYXmFtW1tfYmNdhWloYW54eWxva3aBkHhtg36AgZKIhIF2dYl0jIZzcXZ2gXd8fX6Mj4B+k35weJaDfZmSeYCAeHl+f3OIg3NwmaJ7en+JlXlkdYh5c3h2bHRvfmx5fHCRcl5wbmBnYmxUWlpXaGNtZVxccolmUnJtW1pYWGBsdmRpdWpqXlptc3FsdHR0a4Z8foB8d29ubGRpcWNba3JkdHaPc1tXVGRgcn9+coJcYWNdU1pgXGSTn2VycYWEkXRsanlsb296e3txgHZ/cnp6emRldWdeYlthaFxed2hXYl1vaGF3YVt8dmppcm93dHN0aHCBlIKGfoR2cmpwe2xmdldcam1icHKAenNlb35bYHBxYl5pcHxsbHR+cnF4a3BgXGVsbXthZ1RnVVdSUHZbU1BaUkhjc2JgR1ZrUUlQWlVra2t8ZW1vcWBbWlhZbHBXUlBmV1doU1RGWlxPSHJ1WF9jbWNYYWBhXoxqY2RteXhrb2l1eYZ7a4N9gIWZfIKEeX2Ibo+GcW93enx0goJ8i4+DgpZ0eIKUhYGfiXWBgIF0f4Jwh4J1b6KXdHuGi4d7ZniLb257b2Z4cHpsc3ZzjWtedG5hZ2VrU11bVWdibGxbXHGMZE5vbVxWWFVnaXRoYnRlZV1abnVucHV1emyHfH98iHeQc2Nla29hXG5tY3N4h2taVFZjY3d8fHCFXGNfY1RbYFpjlpVjbnCDhYpzamh6bmVydnN7a3l0dW96fnVfZnJjW15XYmRZYXVmVV9gbWRhcV1dfnBoaXNxc3B1dWtthJOBiHuFcXJmbnxvcW5TWmVqZXFzgHZzYmx2VWJxa1tebmV8ZWx1fHJycmptYFlkamp4XmZUZVVWUFVuWFFXVFBIZXJfYUZXak9IWFRWbWlkfGlrd2thV1xVW3RjU1JXaVFZZlRTSFpbUE54d1tfZmxpWmJgXl6PbmJma3l1bm9pdnZ/fm2DgH6Hl3t/h4GKf2uTiHJndIB7dYCDfYmPf4uTcn2KkYWHn4Z7f4aMc4CGc32CdW6ljHOBjYx3eG57jWBkfHFmenN5bG1xdoNnZHxsY2ZnaFNfX1RnYGxvXF5ujmhNaWxgVVZTb2Zza2V4ZGVdWXB0bXJ7eHNtiHuAd5x7emxhZWxtXmBuamVweX5nWlZYYGt4e3tvg15iXmdWWWBYZJyIYmtxgYd9d2tqd2xbdnFreWl1cm1ve4ByWGptX1ldVmJkWGVxY1ReYWliYmxaYH5sZmtzdW5td3ZraIWMf4h6h21xZW97bHFsYlhfaGhvc4B0c15pbVNlcGVVYm5heWJwdXt1a29sal9YYWdodV1lVmJWU05ZZlNPXU9PSGVvXWNHWWlNSV9LWG1kX3hobn1kYFVeVF10W1RSYGZOXWFUU0pcWlFadXVdX2ZtaFhiYVtejnFjZ2p3cXNuaHZzeYNzgoN7iI1+fIqHjnpukIp0bHOCdH9/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo2NjY2NjY6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo2NjI2NjY6Pj4+Ojo6NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERFQjEvMDAwMC5ccG5tbm5xSSwwMC8vLEmFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIaCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTUzHhwcHB0dG1NqZ2dnZ2s8GBwcHR0YO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmHiIiIiIaNkJCQkJCQjIeHiIeHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhoWDg4OEhISEiIqKioqJiYaCgoKCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkpKRiYeOipCSk5CKkI2OjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6Ojo6Ojo+Pj4+OjY2NjY2NjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjIiIiImOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCRjYiNiZCJi5CPj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkI+HjYyJj4aNj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+f35/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjISLjImNho+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8e319fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiIuOjI2Ljo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Ojo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7e3x9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3p7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6e3t8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e318fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7fH1+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fn5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6Qj42KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJWVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlJOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTlJKTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkpKRkpKDkJOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpKSkpKLipKSjXqRkpKRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCRkoh3kZKEd4+RkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pi26KkXp1jJCPj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj4+KaICPdnWJj46Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjYlpd4x1dYaNjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHgGhtgXFzgYWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXV2d3VoYGdgZGluZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZl9rbGBqaGlnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN2eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpcY3RtZXFwZV1aWV9bWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVJocGxhcHVrVFBRVFBQTk5PTUtNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1OVGZsbmNvc3JXTk5OT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZCRUlNYWhrcXFvbllMTlJWUE9PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVBS09HSE5haGZwb2toY15jaFdISEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj5AVF5ZXWhtaW5tbGpqbGxWRkJERUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7PDxFWWZpa29qbW1qamtsV0JGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs8Tmlub2ttbGlpbFVAP0NGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojg3SWlvbXBua2tXPDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9PT08Smdyd3NsXD89PT4/QEFAPz9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXR0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO11uQD5ERT8+R1t5clRAPDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXZIODs6PT5APWdcOTw9PDg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUTw9PUlMRUZ2dk03ODg6PD8/U1U5Oz08Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/eXx3Vjw9Pz0+P0JVWzo7PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoKEg4KDgH1dPkBDQEA/PlpjPjs9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2FdUxBQ0VAPz9QcnZMP0NFSUpJSU1NS0VERkdIRkdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRWVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVxQkRFRENXdYeIiH9YR0hKTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+fn19fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIpsQUFVdIeJh4eHiINXSExNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElISEdIRkZGSEpJSUlJSF1vb3FydHZ3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINVbIWHhoaGh4iIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD0+QEFBQEJEPz4/REZIREVHSUpJSUhISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpVgYOEhIKChYaGg4KGhYSFhoaGh4iGinVJSUZCPz9APz8+PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTo/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTFNscHF0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf3+AflFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDhISFhYaHiIiIiYmMjmZCQj44ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJiouMi4qJiouMiVQ6ODY1Njc2NjY0Njc2MzU2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIGDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2Ojk3NjY3NjU6OTo7Ojs4OTg5ODc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd5e3p7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhISGiYqKiIeIiImKioyKiYmMej45ODg7PD0+OTo7Ozg5Ozk6Ozo5OTs6OT09PT47Ozw9Oj47OTs7PDs8PDk5PDg6Ojs6OTk5PD88PEFCRElKTUtJS0xXb3JzdXR2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gH+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkFDRUVBQUFCPkBCQEA+PT0+QD8/P0A/QD09P0I/QUE/QUA9QEBAPj9BPT48Ozo7OTk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLi4qKi4qLXj5DR0lLSklGR0dERkhHRUJAQENFQ0JBQkNCP0BESERDRURFRUJGRUZERUZEQEI/PEA+PT9APj8/Pz4/Pj46Oz08YHFxdHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGWIWCg4SFhYaGh4mJiIeGhoaHiYmKi4yNjIyLioqIV0dMTU1LTklJS0lJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJAQUNCRENDRERDQD07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f3+AgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkJHR0lZhYKDhYWGh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1PTkxOS0pMSklJSEpGREdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA5ODw7Oz06P0A+P0BDRklJUF+Cg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1yTlFPTkxMS0xKSEdFSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhISFhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4tfUlJQTU5NS0pHRkJHSkdMSkZLTktKSkpNTUxPUE5ISUtMT1FRUFFPT0pISkpNSkxGR0hHRkdIRkVFQkFCQlxvcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxYVlJSVFJPTEtKREVGS09OT1dVUVBPUVNSTVNUT01STFBTVVZSU1FQTEpNTU1LTkdHSkZGSUpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHSEdHSEY+QEI9Pz09Qj9DQ0ZWTkZOT1BUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hXVmthRVJRUVBJOztRU1JgdV1VVlRWWVlSWVhSWmZQVVdaXVJUV1FQTlJRUFBRS0xLSEhKSEVGSUlJSElpcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklJR0ZGRT8/QUFFQkNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJdXVZdWlZFUVlaW1lfVFpnUlZWWFVUVlRPT01KTEtJSUxNS09NU29zdnh5eHd6eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3lucFhaW1pSVFJWVlRaWnWDWVV9kGBcWF1fV0lWXV1bW19ZSVlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin9mWVlcWVNVVFdSUVdWY5aAUWVyWFpXX2dQYGZbW1hcZ2FHT1poZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlbXVRZVVZdWkxUWlRTVF5aWFdXV3prWFtbXF5UUVFQSU5PV1ZYW1pkcXN2dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f4CAf39/gH5+e3h3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmJh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlRjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXG1ydXZ1dHR3e3p6e3t9e319fX59fX1+fX5/f39/f39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSENESEdIS0dEQkFEQU9RTVNkc3R2dXN0dnp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT09MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgmxNRz4/Ozs+QEA/Pz5qUUthRUZISUVCP0dMTUdNUVVJQkU/Pzw9PD09Pz0/QUNDQD88PUI+Sk1HVW51dXVzdHZ4enx7fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVVRXUVFXVVBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZUNAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtMV01IR0BBPDk3NzU5OT07Ozs4OTg5PztCSD9cc3R1dnV2eHp8fHx9fHx9fX1+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eX2VgXV5xdmteYGdrd29vbGpvbm5sZmJZSEZGSEJBR0lFRUZETVJPYVdSV1FQU1NSVVtPT1FXUE1JREY+Ojk2NTg3OTc5OjM2Njc5NTxCPWVzdHZ4d3l6e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFJMWFlaVlhYVlhZXVdYWGhza11WYXNrYWFfXmRhX15ZVVFNT05MSUhKS0lIRkNRUFNbV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NTc1Nzg1OTlHbXF0eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1RWWFhZU1ZUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTFBSUk9NTU5OTkxKRlFQVVlTVE5KT09VU1RcVlJVU1JPTUxJSEhGPz49Ojc4NzY1OTk2NzY3NVdwcHN3eXp7fH19fX18fX18fX19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUFBQTk5PVExNSVBPU1RVMj1YTUlBUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMS09RUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjQ1NjY6ZG9xdXd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkZBRkdHSEZKREhKSEdFSExIS0lGTE1QTUcvRV9SPjNAPmpvYVJSUUBGVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PT08OT1HNjY3N0RtcHR2eXt7fHx9fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dXVllZVlFRUU9APjs9P0FCQUNAQkVEQUBHSEdIRkZISk1LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydXl7e3t9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT09NUVNMVFZUV1dVTExLST05ODc7P0A+PD1BQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFBSYlxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSUpMTEpGRkZFP0JDPjxCRj9CP0FkcHR3e3p7e3x7enp3fHd5fX57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47P0JAQD5BRElFQ0hHSUZJRUJCPz49Q0JBR0pFTU9iZVFNTk5XS0xNS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7ent6d3R4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxAQkJBREVHS0ZDSElHR0hDQz9CPz9AQT5ERUNLTlFUTEpJTVRHSUlKTEpLTElKTE1PUFJQS0dDTEdDQkpKTE1PTUlKSUdDQ0NESEpNTElZcm13eXh6e3t5fHZycHVydHl5dnhqcW5rbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFISkNHSEhHSktJSktER0I9Pj06Ojo7QEI/PUJCQkNIRkpMSkRJSUZHR0NDO0FAQj5AQENEQ0lNUEdJS0dIS0RISUtNSEpMSElKS0pNXVJISERORkFDS0tNTVBOS01KS0ZHR0pNTlFOTGJtaXZ2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLREZFR0VGRkdFR0JDQD08PTk6OjpAQ0A+QkNERUlGSkpMRkhJR0ZGREI7QkNDPkBERENFR0xOSEtOSERIRUlMTk1ISUxHRkdJSUxOS0pIRU5JQkZNTE9NT01OTk1LSUhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZmtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pDRUZFQkNCRUBEQj5APzo7Oz06PT5DQT5BQ0VHSkZJSEtIR0dHRkVDQD1FRUI+QkRDQ0VHSElHTVBKRkZHS05PS0ZISUZFREVJSkhLSUdIUEtESU1MUE1PTk9PTktKSE1SVVVST1dkYGFtZ3Byb3J5emdlaGhkaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJMSERFR0NCQEJEPUJBPkA9Ojo9Pzs+PkBCPkFCREdLRklGSUhGRkdFQ0NBQUZGQ0JDQkRFRUdHSEZMUUxJT0pKTExJR0hFRkVEQ0lJSEtKR0tSTUJOT01QT09PTk9PS0tLT1VXVlVUWF9eXGlhbWluaHJzYmVmZWRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HR0ZIQkJAREU8QUBAQzw4OT0+OT88P0JAQEBERkhFSEZGSEdFRURDRUNESUZDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISUZDSUpJS01LUFNORFFSUFFSTk9NTlBNTE1TV1ZXWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW96TUhHSEhCQkJGRTxAQkJEPDc6Pj06PjpAQj4/P0NFRkRGRERIRkRFQ0RFRUdKRUVKR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xMT09SVE9JU1VTUVNQUU1OUU5NUFdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnaWloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN1bnByc3lOSUlHSURBQ0hFPEBFQkU9ODo+Pj08PEFCPT8+QUJGQ0VCQ0hFQ0VFRkdHR0lGSEtIQ0lIR0lIRkRIS0lHS0hNTEpLTEhMS01LSk5MT05QUlVWT0tVV1RRVFFSTE9RUE9UWVpaXFpZXF5eXmBjXlxhY2tiYGRnaHKFaGdqZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdU1JS0hKRkJFR0U8QEdDREA6PD5APz4/QkI8QD5BQUZDRURESUVGRUdFSEhGSEdJS0pGSkhIS0hGRkxISEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd292SktMSkxHQkVERTxARkREQzs/P0FAQEBEQT9CP0FDSEJGRUZIRklGRkRJSEdJSEpNSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QS09QUlVYVk1OVFZUU1JRUExOVFNSV1teXl9dXWBfYGFhX2FjZWJjaGJkaWpndotsa2lnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dLTUxMTUdDQ0FEPD9FRUVDPUFBQ0JCQ0VBQkRBQUVHQ0dIR0dGSkdDR0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkJFR0NDSUZDSEpKSUlLR0RLSkdISklJS0hKSk5MTkxJTEhKTEtaZkpkXEtsU0hPTl9uVWtzW3FwYndjUlBhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KS0pGQj9AQj89REVGRENDQkVFREZCRUZIQ0RKRUVKTE1LTExHR01JR0lLSEtLSUtKTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXhta3ZtbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEQEFCPz5CRkdCRkNFREVFRENISEdERUtHR0xNTktNTUdKTkhKS0pJTEtKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncHBqaW9wcHJzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9QEBGR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xNSUxLSUpNSUpKSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSURFRUNBQjxCQEJGREdGTEhFQ0NIS0hIRkpMTEZOS0xTUkxHTExITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFAPkNEQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTUxJS0tLU2tiWmleX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcb2ppZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRUVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRkhIS01JSEpJS0tJSElHS0tMTEZIS0tMTExLSUtMTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFlcmlUWVdcW1xVWVpdWF1cXGNmYWFlYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NIREZHRElLTEhGREdLTEhER0hQS0xPS0xXTElGRUhJSkhJS0lMSkhGR0dJR0hJRUZMSUpLTkxJT1xXXlBcW2BeT1hZU1xcYl5NWVpNWGFSSllhWlNgZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRUlFR0dGS0pLSEVFSkpKR0VISFBKTU1KTVNJSEZBSEZKSUtMSUxKSEZFSUdERkdFRUpIQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOXlxeU1teY15aXWBjYFlfYltgXltUWFdZXl1jYmNhY2ZpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNHR0VIR0hLSUlJREZLS0tGRklKTktOTEhMTkhIRj5HR0xJS0xKS0tJR0VJRENEREJHSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV5eY2FgYmJiY2NlWlFZVlVcWl1jYF9fY2ViaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFSElGR0hIRkZKR0hGSEtJTERES0pNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0dDREBEQUhJQj9JSkhPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU5eUU9cX2FjZGNjYlxkY2JkY2ZYUVVUUltYWmFfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0VLSkZGRkhHR0lGRkZJTEpORURLSkxOSkxJS0pISUZCSEhRTUtLT01LS0lIR0VEP0VDSUhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11WWWBSUV9fYWJhYGJiYGNiYWRkYlhPUVFRW1NbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBR0ZER01SSENRSkZISEhFRktKTVBFR0lKS05MTElMS0lJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VDV1VFXFReU1ZfWE5UVU5aW01KS1RgYVtfWF5eYV1PWWJcYGBfYmNiXWFiV19fVFBOT1BYUl1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQQ1ZeSUdHSERGTUpQUEVJSUtLTkxLS01MSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0FFRkJNSEJLTFBPTkxGTUZHSUpIR0xMTU9QSUxPUE9TUExRU1JVWllXWVhYZFdPU1RQUE5NT1VUW1lZW11cYGFkZWNnY2tscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hNR0hKSEdNTFFRSUxLTEtOTlVOT0tLTEdHS1BUU05QT05PTk9IS0ZgRURfTERmY0VNW0leW3JtT01VbVlMQ1BgVWxXZ0pdV1VeRExRVUxNVFZRUlRYV1RYVVRcVVBmWmhoZFhTa1NWVlVbXFtgYGFhYWJgZmhmbmxocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09TSUtGYFRISk9KSU9NUlFLTUxMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUX9RSXxZWXJzWFBtSHFub2FWUHFxc1BDa3NtcXRwU29fW25YXVZcWFVraFVdVmNaYFlbYFZVV39qdHV1X192X1hhXFxmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1OQkRMTEZKTEZSVkxLTklLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWVJUUXZndGxwYm5malFyT013bWpycHNycXJwb2+AXWZ6dXhxcXpxfnN9a3V9YlJnfGVzc29zcnt8b315b39yX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQTk1NSk5WXllVTFFTTllaTVNTUk5MT0lRUlRZV1dQVFBQUFFLSGd4bGN4cm1aS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JSaXtsaWp6en1seHp/cGhvWHZ2anV1cIBgcmd9aWx4fG9eX19iYVtdYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0JFUFBISktKTFFPT09NUFpgWlhLVFdQYV5SVlFZU0xPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VEtoeH14YHl7c25hXm1vY1JncXVubXlwd2x2dHRxbG1cdH56a215fGt0bXxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUElMTUtMUVFRUFBRV1xZVU1VWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGV8aXJ8XVRLbGB2dWtpdnx7bX54a3xwXV5eYltfYmRkZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxnbW1yfGttaGt7dG1ta21PSEpLSElJSFFQTE5PTEtTU1NPU1JXUlZUUFdbVlZUVFRhYFBOTktUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1dYUl1ZV11WVE9ZUldXV1hZXltncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlYUE9MTVZUUU5VU05PTUxRUEtKUlJLUU1LS09SVVJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1BRVVZWU1pRT1NSV1ZUWVZUWVVUUlVUVFRXWFddWl5hXVxaWlxcYGNcXWJjZGZkZWRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFRRUEtPV1NQTlVQTlFOS1NQTU9WVE5RTk1OUVRQVVFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RPVFVYVVVaVVdZVVJSWFZVV1tZWl9dVVleXF5dXF1gYV5bYmJjZ2ZkZGJYX2FiXmBoZWZkYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FaWVhXWFpaWFlWXGpkVlhZWldWVFRQS09WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVk5XUlRVVU9OTVFTVVVUVFJUWFZaXVxaVldRUldYVltbV1FUVlZWVllUV1hVU1JYVlVaXVldX15WXl1eYFxcYF9fX1piYmRoZ2RkYVliYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF9bWVZWWFJMTVZTTU5ST1FST0xQU1JVWlVTUFBMUFdWUldTU1NYTU9QUlRYVVVVU1VZWFteXVtbVlJPVVZWW1tXUlRXVldYVlRYW1RTUlpXVlxeWl5fYFVhXGFhXWBiYF1gXWNhY2doZGZgWWNgYV9fZWRfYGNbWlxbXFlaWFlXXFlcW2BeX1teXmFgX2JcWWBaUU5PTlZRUFRST1VUU1BXXF1cWF5cX1dcXmpxd3mAY1xbVlZZUU5PVlNOUVFQUlRSS1FUVFlaV1VPUk5TWFdUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVVZcXFZSVFZWWFlTVFlcVFNTXVhaXV5cYGBgVmJbY2JeYWNfXWJhYl9kZmlkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJRV1JUUFtdXl5bYFxgVVxdaWpyfXNsZ1xVWFdRT1JaU1JRVFJUVVRLUVdWW1paU09TUlZWVlRPVlJTWlJUVVRYXVdYWFNYXFheXVlaXVRVTlZXV19bWFJVVVlZWVVXWVtUU1ZeWV1dYF1iYl5ZYFtlYl9kZF9eY2NhXWVmaWRmXV5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVZVVFRU1xUVVRVVFZZV0xSWlddWlxST1VTWFZWVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paVFVWWllaV1hZXFZUWl5cXmBhX2RjXF5dXWVhYmZkXl9kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdX1RdX2JlZXaCe2hYWVlTVlNWXFdXV1ZWV11YUFVdWl5dXVRTWFNXVlRTVFhSU1ZUWFhYXV5YXVtWXV9YX19YXVZRWVRZWlphWVxVVlhbWltZWVpaWFZdXl9eY2JhZGRcYlxgZmFkZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVdWXGBhYmNhY15fVltgZGFfenVvaFlcWlVXVVdbWllcWVhZYFdQVl5cYGFcVFVYUFVXVVNXVlJTVVdaWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVpZWV5fYGBkYmNlZWJkWmJmY2dmZV5hYmBjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBrZmheXF1bVldYWVxcXF9bWVtiVlRYXl1hY1xSVllRV1ZXVldWVFZUWF1cXmBgXWFcV2FeW15cW15YVlhYW1tfYFxfWFldXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNgYGVjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlJXWVZXWlhbXFhXWV5gYmFlYWRhXV5ZYmNiX2FgYV5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBYV1hZWVdWWFZdXV5gYWBfYl5ZYV1dXlldXllYVldbXGBeXV9aWl5dXl5hXFtbWlxgYl5iZGNlZmVmYlpkZmdpZ2NfY15hZmRaaWliZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMV1dcWVdcW1xdWldcXV9gYmRiYmFdYFhiY2JgY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpjZWNgUlxZT1hYWltaWldaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfX1xaXl5gYmNcXFdcXmBiYmNlZGdlZWZkXGVmaGlmY2JiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hQWFpdYWNmZnJrf0pZV11bWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBjY2JcW1taV1hpcWBcYF9dXGFjX15ZWWRlZGFTX1pRWVhcXVxbWltbY2BjYmNgYmRhYGNeYFxeXl9aWFZbX15dYWFfXVtgYWJlYl9dVFxgYGNkZGZkZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoY2hoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7e3p7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7fHt6enp6enp7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmJiYyNjY2NjYuwwb6+vr7BooqMjIyMjYl+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyNj5CQkJCQjrvOy8vMzM+qjZCQkJCSi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eXh4eHh3d3d3d3d3eHl5eXl5endvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH19fX19fXx8gIOCgoKCgoB8fX19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCg4GCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dXV5dnZ2ent4e3h3dnh7eHl5en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t6enp6enl5eXl6enx7fHx8e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx7e3t5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3eXx6e3h7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8eXl7d3x5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en97eXt5fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5fHt5eXl5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKCgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4SEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZF90fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHd8e3t7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidX18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJycXBvcHFxcXN0c3NzcnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoKBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4b3BwcnJycnFxcHBxcXFycnNzc3NxcXJwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm5ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3JycnGFc29vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBxcnJ6e3FxeJZxb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFycH6WcW+DnHJvcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFwdqR7bpCfdm9wcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXB2qohvmaF6b3FwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycHarlXGdon1wcnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzc3Nzc3N0equie56ifXJ0c3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4eHh4eHiUsqWkq6d+e3t5enl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fn18fHx9f6amorKkqIt6e3t6eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX19fX6GqJyjq5qem35/f398fH2Ag4KAgH99fX18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgYCBgY2jk6Ctn6GfhH+AgYB+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f39/gYGAip6MlK6clpuHfX59fn9/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+f4ODgH6IpaKZn5uWnJSDhYmNhX+Af4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSkpCLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GEi5CWmKSupqKbnaCnqaGhoJKBf4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYKElKmwsKSdop2en6Gio5+SgoOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgoCClJ+fnZmhnZ2gn52dk4eHh4eHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgoGCjZSVl5+dnqGem5WIh4mIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEhISEiJOWnZeanpyShIOFhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4KCgoKCi5WXi5GcloSBgoCAgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4F/gIB/h5KKj5KFgYODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDipaIhIKEgoF+gomMgoKCgoSDgYGBgoKDg4KBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEhIKAio6AgoKChIODgoOBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqEhIODg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgI+Mg4F/fn18fYycjYCCgYKCg4CPk4GCgoKCg4OBgYGCg4WDg4ODg4OEhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZeMgIOBgYGBgpmZhIGCgYKCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqHg4ODhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4p+hISDhIKDg4OFjY2FgoKDg4KDg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUk5KSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhYWCgH59fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhoaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMi4iFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFgoGBfn2Bh4aEgH5+f39/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWGhoWFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhYWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6Fgn9/f39/f39+gICEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4aHhoaGhoeGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CBgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISEgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aHhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCMh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjImBgIGCgoGBgYGAf4B/f357eoCGiIiKiomJiYiJiYmJiouKiIiIiYmLi4qKiIeHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI6QjoqGhIaFg4GBgoGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgYSEgoKCgoKCgoB/fn19fX1+fXx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYqJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoODhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX5+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEgoKDhIKDhISCgYGBgYGDg4SDg5GSkI6PjouHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiYuKhoSGhIKGhoKChISDg4ODgoKBfn19f4B+fn5+fXx9fXx5fIOGhoeEg4GDg4SFhYWDg4WEhISEhISFhIKCgoKEhIGCg4OFhoWEgoKBgoKDg4WDhISFhISGhISEhYOCg4GCg4OEhYSHkpGPjY+MioWEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4GDg4ODg4KCf31+f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIKDgoCAgIGAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fn5/goODgoODg4J9fX5/gICBgH59fX19fn18enp6f4KCgX9/f39+f3+Afn2Af3+AgIF/gICBf39/gIF+fX1/gIGAf36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX5/gH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gICAf39/fn59fn9+f4B/fn9/gH+BgH9+fn5/f359fH5/gH9+fn9/gH9/f3+AgH+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYKEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+BgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/gH9/f35+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f3+AgH9+gH9/fn5+f39+fn59fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gYCBgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf3+Af4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6eXl5eXmAgoKChIOBgoKBf4GAgYGBg4KCg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIF/goJ/gYCBf4B/f4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4KCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgoGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeIh4eHhn99gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjISDhISEl5eDg4SBfX6BgoKBgYGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoSDgoODgoKCgoOCgoKSkIuIiYeJh4aGhIaFhYSEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeIiIaGh4eHhoeFf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fYGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhISEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CAgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fX5+e4iRfHyOloB9fn+ChoqFg4OEgoGDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfXx+f4OEfHyBgoSCgH+Hg32DgX+CgoGDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4SFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9fH59fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fIB/goCCgH59e4qCfYB/foGAgIGCgYKAgIGBgH+LlJCMi46OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/f4B8eoGBeHuAgoGDhYSDhYWGh4SFgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIKAgX5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gZSSjYyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgICAgH9/f317en2AgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYODgIGBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY6NjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f36MhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn18fn9/fX6Afn9+hJKNjIyPjYuKhoSGhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fnx7fHx8e3t6fX+AgISDgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2MjI2LioiEhISDhISDg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gH+BgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9e3x8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgYKBhYaFhoaGh4WBhJGPjYqKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+fn58fHx8fH18fn57fHt8fHx8fXx9fH58fXx7e3t8ent8e3t9en1+fn+AgIOHiYmJiomKiYWIkY6MiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn2AgIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg31+fn19fH19fXx9fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4eLi4uKiYyRj42KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGCgn9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3t5enl4eXt+f4ODhIeJioeJjpCNi4mJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf319gH58f3+Jg39+g5CEhIOBf359fI2HfX1+fX18f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjoqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKFhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIKAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOBgICAg4F/gIGEgX5+gH9+foB+fX5+gIF/gX5/gH9+f4B/fX9/f39/gH5/f4B+fH18fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fHt7e3x7fHx8fXyKioiIhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKEg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICBgICAf358fX19fX5+fYJ9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fYmHh4WFh4WEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+f3+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4OEhIWEhIOFg4GCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xeXh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SDgYB/gH+AgX59fX6Afn5+foB9fX98fX1+gH+AgICCgICBgIOCgH+AfoCBfoCBgIB/fn5+fn19f35+hYWBgYB/gIOBf36BgH9+f36Af359e3p7enx7eoKFgIOCgoKDgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgIB/f39/f3+Af4CBgoKCgX+Ag4J/f4OCf3+Af4F/gH98enx6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAgICBgYGCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfX9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYGEhIWEhISBg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2d3ZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF+fnx+f35+f4GCf4GBgoOHhYF/f35+gICBgYCAgICBgoGAgH6Agn9+gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39/f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+f3+AgIB/f4GCgIB/fYCBfn+AgoKAgYOChIWGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXh5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgICAgICAe4B+gIB/gYCAf32Bf35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDg4ODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWGhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgIB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af319foCCf36AgH9+goSCgoOFhYKCfn19e3t8fHp3fHl3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB+gH99fXx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KBhIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGg4WDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoGAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgYGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgoGCg4B/goGEg4OEgYGDgYKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGCgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIODhoODg4KChIGEg4GCgICCgYSBgoKBgoF/gYCAgoGCgYGCgoCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCg4WGhIKDg4OEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHyAgX98fH16enx+gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYKGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISFhIGDhIWDhIaEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgoKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhISGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemtzfG52goGBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WFhISFh4aEhIWGhYV9d4aDhISCgYF9f357fHt+e3x8fX9+fXx+foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoOEg4SBfoCAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4KAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWGhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn18fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYOCgYSFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaHhIOEhYKBgoGAhIODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7e3t9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WEgYGDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoaGhYOEg4aChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhYWFg4SDg4SChISAf4KCf31+f35+f4R+e399fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1+f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7enp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt9fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEM6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT47QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fV1dXV1dXV1dXV1dXV1dbX19fX19fX19bW1tbW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE5AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi60dTU1NTU1NTU1NTU1NXJu729vb29vb29vb29vrSKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZNPDo6Nzc+Qz44Pjo/P0E9P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6Oip8/T0tLS0tLS0tLS0tLUv6iqqqqqqqqqqqqqqqybU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSko6jP09LS0tLS0tLS0tLS1MGpq6urq6urq6urq6uunVhXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamsz9PS0tLS0tLS09PT09XCra+vr6+vr6+vr6+vsaFiYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tTV1dXV1dXV1dTT09PU09LS0tLS0tLS0tLS09PRzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDdAQTw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7OztPU0M/Q1NLPz8/T0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXU1NTU1NTW1dbW1tbW1tbW1tfW1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztCmksXTyJSn0tHHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztKqnayUyZqsnLDRmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QDk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DJl5mFpqeXiJyexJKGnZzOz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI5NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0aSwvZeiwMmYmMW8yZeZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhFQD9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Q1bmYptaUlp/O0ZKZoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P0NGanbuzn8Ob2q2jv57V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NWnpKDTzYqSnsfLiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NLAnaLI1c3bpZmz0NujmbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPUpKCPuMiPp5qgrZCnmJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HIxqa9lZSMp6WooK+noqmd0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg1MqOk5eQqKGSjbrVmpKOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLUwq+ws9LUucfV09O5yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dTW1tbS0tXU09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUtBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERJO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c251cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4uLe3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKinqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqalo6OioqKioaCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpyenZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaampqanp6afm5qboqCalpaVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Gfl5KTkpeanJqXl5eYm5qZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ+hn5eRkZCUl5qdmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoaCZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSko6KhoZ6cm5WTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojc4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6SkpKKhoZ6bmpmYmZmYmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoaGfnpybm5qbm5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhn5+fnpyZmaKdm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCfoJ+foKCgoJ6bmZyxnpqbnJubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cnJydnp6dnJ2kop+cmpmjrJ6cnJycnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5ubnZyampubqaObmpqco4uenZ2dnJ2cnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJmbmqaimpmbnpd0npydnpydnJydnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ucnJyYmJmZmpmjnpmZm6GOZJudnZ+enp2enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZmZmJiYoZqXmpyjglyYoJ2enp6fn56dnZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmKKVlJuco3hakKKdnZ6en6Cfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiYl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eikY6dm6FxW4Wlnp6cm5uenZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqbm5ybmJmamJiZm5qaloySnY6ImZWcb2J2npaVkpGNkpGPlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCQj4uRj4uMj5CQkY6KiJaNfouKjnRoaYuIjIWHgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mHhIGGgoCCiZWQiXqKf4V2amSCgId9gIGSkIaEhIWNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgX1/c3yNjIR6i4SFc2pghop5fXyGjY2Lho2UkouQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouGiIaEiIiKhH+Cf3p7hod+d4eAgm9nW4KLgoSFio+LjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Ni4uHkoqHhpaIdmyBhX5oY1h/jo6KjYmJkI+Oj5SUmJCVnJqdnqiusq+wtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdNT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnaCdk5eaoZqdnKKhlY+hi3NsfpiIZWBZgZGRjpGOi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkRQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqaeipaiprKqpr6CdppF8e4udmnJiX4eXlJefn6GknpuapKekqauurKWkqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uq6qspKGipamnp6ioqZyNeHuWjpZ4cG2TnZeeoaGop6Cioq6rq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9TZVxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKemqKmnqaikp6aZnaSmoqGgpKaKemZhjYOFY3Bzi52Wn5qZoqKgoJ+goaignJ6hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXFBVT1hPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatp6acnaacemZWTn57eU5faniam5yZm5+eoJ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1tVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirr6moqqiioKGoqq6xs66roqGskmtRSkl3dG9FUWFrkKOdnZ+dnqSioqGgopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY21qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjoKKqqqevt7a1tbazrquvq4JcSENHcmlmQ0ZYZn6fmpyblqKnpaepn6ObnqGalp6knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtop2gqrK4vb28u7q/tK6xvJ5xUFdNRG9hX0hET2BvlZaTmpajq6i2raKjpKumpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odmxwaGlpYlpTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW2vMHIwLu9xrq5uLyNYVmOckNsYF9OUldaZpGflqKkqKeguqaqq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZ0b3RpdGRpZGJbTEs+Ojk4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHEx8PDub3D1NbHwMK8u7q6iFZ7wqpObm5nUVtkXVyIrKinrKKLlLWmq7S8sLW2qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBiX15rY2JueHV2bm1bYlJWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwtXg2sq1vLzAwJJQi8C/YX2CeV1KaXBTerO4qJyCb5awo6axtqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH6Ef2lmaGFrbGdudXFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcS/w8LL29nKs8G8wMalVYKionCcj4V8RXeOVWursJR6Y3GrtKaqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8fnRrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExM3Pw724uL7Fr2N0e2uLt5KImVd7j11rkIVyYVqNt7WsrqWko6ikoJ+lmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5eXt3bmtpZ3VaZnJ4c3lmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTFy8Krqa2yt55wcW1cpLiQiJ1oZ3JoaGplXldopLq1s6ypoqGtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbnh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNzs/Mw8fGyMnIyMnHxcvLr5eZnJ2OdnBjYKqqjIuUcGBkZ2FdXFhVi7u8urysraaqu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGlpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8LLy8jHzsObhoiDeWdfTWChmYeMi3NlYF5YV1hVZ7TJwLy+tLCwsMG+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVudGJdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8m8vMjHyc3Iw8jKtH5xal1RUEJcjIJ/gn1vZltYVFVVVInCwMC6ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVmY2pkYmptbm9eWV1WVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIyMPFxMDDwsGSXlJNSEtBVXZpbnNvaGddWFRWU2CpwLi5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjY2NqYmdjW1paXFlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ys/Bu7/AvLvGr25JRkRIQE1kWWBnZmJoZFlTUluMv7+6t7u+ubW4tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWRhYmNoamZnaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1u8G4vrm/vLy3tLevrre1ub+7wteNur66w7W5x7ecYEFARTtKXFNYYWFgZ2hcUlN+tMW8wb+8xLe2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeXFtZWVmb2llbGhYWE5LS0tSSkxIRDk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNDEdarLvce4ubett49QQEE4TFhTU11fXmVoXVNhocHIw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdxa3NmYm1gXFRJS0pESkNDRz45Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8u8C3qq2krrC4u7K9vrvEtrW4tbe/vsS8wsTXrHKAvcjPwsC3rbWtfU8/OE1VUlNeYFthYl5VjLi9x8vHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHFmbGludG54Y2diXGNRS1RIRUVDR0I8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm8xsnKwsfJ0pZucq7S0czKxLW6v66CTDxMV09UX2BZWltWb7e9wMPMysfFxsC5vrzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9jXmBhTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8XQwrq+vMS+t7zAv8nPx8jKysGEcHKmzMzLzcrGwsLJvnVHR15QUlpiVlFSXKLCv8XAysnCw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3xgcWNbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8t7u5rdvCvra+wL6+uqacqrO3xMCldnR3ncTGy8jBw8C/ycumbEtdUlBWZk5KWY/EwMDBv8rHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3hzaHBdW15dWVJGRENNSUFEPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFtG2vzr22ucC8qn1uaG5tdIKYl3B3fJi+v8bAuL+8vcTDvKh0ZlhWY3BNW5DAxLy9v7/Dwr6+x7y8v7S0rrW1vL6/zs3LwreyuLe3vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV7cG5pW19fWVNQQUZIR0tARUNIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzbB1grS9tbXBpIZpWV5gTlNbXG9ydoKguLfCurO6t7q8vrq9sY1uZnSEb5m/xMK9u766uri1wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrq6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9mXVtUSj0/P0dGPUdDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsmlhHiMorC1nGpmZ1VZX0lJTVFUbHWHprC3vrmytbG7uLu1ucCvn3Z5mq29w8XDwLy/ubOusry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYlxeT0lCPz1JREZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Gp4d7do2hl19TQ1lVSGJqVU5ESWSOoayvtrq1s7Gru7i4tLjBu7uCdZu3vMHGwr65ubWtpayzsaawraieoJ+lrba1wre2tKWoq6iwtrOyura7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3ZybmNdZ1hdXVNPTUE+SkJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7OQgXmIj21NSkBlWUJQeIGTZ0xCXYKwtbO1srSvrLu5uLa5v8K3jXWErrW6u7i1srGtrJ+kpqedo6WdlpmZmp+prrmsq6ufpaikq66vp7Csr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWxdW2pUXVxQTkhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7i1lYyIhXtXRUJRiFhJSlh4jYFhQFakubO0s7CxrbC5uLa7t7q+sayqpK6tuK6pqqyro6ihnZ2dl5ehlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVWFjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yu6mYmZRnTD9UeXFOSUlLaJ1+WEVYs7uxrLOvrqyttraytLWuqKKdm5ubnKennp+oqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6aim6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3pjd2xuXVFoVFBOR1BNTEJQUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3BqqW9ZkVToYRQV0lLX0lYi2BlZoSvtaqytK6qq6+wsrOtpZyQlpKOl5+eoaCco6SfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6empeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+YnJmbpJmXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dn1ta3tkaFVSZE1KSEdPUk5KTkg8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCsxr/Lnk5BdZxuT21KTWNmdnRgXWJzkbKvrrO1qqasq6KbmZSNkJWWmJebn6Ghm52knpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGlopuYnq+orrKrpaqqoJuYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3h8ZHl5YGJTVWBISUpLU1RJUlFNOT9CNjc8NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpcfGi1ZSS2ajWGZ9b3JbUWtjXGdiYGyRtLCwuKymoZydmpSXmpmPjZCVkYuNjZOZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKqyrqOZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKT09VTFNNQjc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo4t4VGpxd3ZvZHd2WFdiYGRpW1tWZ62urK+nn56ioJaQk5ugm5iXkZKfnKGjm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpafm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWp3dV1tWlFgSFJVSEZVVkpDTUc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCjfm6CcGBjV0xbUlpMTFFZUkhPTUearKqppJ+fmZKRk5iYlpWVjIiKjpWdnJ2dnpaemqagoKilsaqnrqOrrrawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+np6Wkn52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pdm1obVxYXENXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOem4hhV15lYFdNUUY9P0BDRD8+QlF3qa2pqqWfnp6io52enZqcm5STlJSdnZiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6qzraqzta+zrqqvo52rp7ayraKwpqCjr7GusKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3RycWhWXFFGVElESlBJP0VBNEZIOTU8Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqgn5V8X15lYFBGRTtCPkY8Pjk2Tn6qs6ejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeG2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3xMrJw8HGvrq1uru1u7ewtbKqurKuu7e/u7qruK2rqri6tbyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGtlWltGS0xFRFNNREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm5p9cmlhV05FPklafG9hQT1cjq6soJmbm56emZeXl5KMjpaXk46NkIuCg4J3cnFtcI+mra60ucW7zcfLv8LMzc3Mx8nRzM3Mx8nFxczQ0tXO08m9wL/Du8bFyMXR083T0NPTzMrCxcbGysjOv8jRzMfFx8XCvMPBv7+/tr6zrr/Aw8PHxMfErr+4sri8xMLCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MREVQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ2VaWZcVElEQD9Kh56kmIOgsq2jnpyfmpeWlJKUlpGQj4yHg4OIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fS19LV1tPUyMzGzM3J0s3O083FyMrKwcfMx8nIxr/Ds7PIxMvLy8/Hyr++v73Bx8XNzMjJwMO/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2FTTEpEQz9DVLHRvbKvppycnKCkoZ2alJOVlIl9d3BrZWJocW9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s7U1tfU09HT1NTTz9LD0NPW2NXW0svJztHLxs3SytLV1tnW19PX2M7Sys/RzM/QzNPQv8jHysTMzMzOz8XGx7a/yr/SzczQxsnIwMTDyM7N0NHPzcrIzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSUo+O0E4PTU1ODY7ODU6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqBZSUBBREFGUXeyr6ealJefnJqgoJ6bnJmViXdpY2BfX2BfXl9fXWJsdXRwcG9scnF1ksTIxtTW19fX09bQ1dTa1NTOz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ19fY0dfS2NnU1szPz8rN0svO0MDGwsjGzs7R0dLIy83AyszG08/MzsjFysfHyMzK1NTR1c/SzNPCucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NDM6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpa63qKu319TV2dnRztC/vMzJtr6upqqooaOqZUM4PT5EWIKqqJ+XlZeZmpyfnZicnJJ9cGVjYl9fYV9eYWBfYGBfYGZtcHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0crPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY19fLyM7Eyc/MyszAycDIys3O0MvQzc7Mzs/Iy9DQy87KwsnHyczLzNLTzdPR0dDQyr3IubCuu7m1q7awrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg2NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspayuvrSwwNjS19rc1s7NysPSz8HAsKmsramksXlIRkI7V46hm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBgYWBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztPLzs7FzsrS0s/Hzs3N1MzO083L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXMwsjJw8zDxcjKy8/Kzc3QztPMxsnPzcjHy8XGwcbKzM3Q0cbQzs7NzNDFx8G4ub3Dwr3DubKyvrG7w8O1qpiloZiWkpWVkouUjZqRlJSPj5WCiYZ5cXJrbWdgYHBoWVhoVk1HTElQUUI7Qz47Njg6ODo6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKifrZd4bHBye5GajYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNiYF9fYGFhYF9dW11ncnFxcnNwbXJ5pcfTz8vQ0NPUysXJycbGv8PFz87HxcfNytLIy87OxtHS0M3M1MrHy87Px8fP0svQz8a6xL/Gyb3Cx8nOxMLHwMfNyMTMyszPyMTE0MjGwsbIxL/Bx8zMzM/CysvJx8vQxMXHu8fDycnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vbnNzMbQ1dXZ2tvY0MnPz9HTyMK2u7uto7Z9aIOFpKuUjo2Wj4WDg4OBfYSEfnNfW15eXmBeYGNkY19cXV5fYGBfW1pcYWtycm9va2xvb3250cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLKycHBy9DFy8i/ucG7xse+v8bPy8O/w7vJx8m7yMfFysC+wsvGxcS+xr28wMPFzMXFvMDJw8XH0sXByb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhppujoJuVe3dydGZpWmFubVpcWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sa+2bF55faKRi5KWhnqAhYV/dnh1cnBfWltdYGBiY2RkZWRgW1xdXV9eYFtZWlxib3Jva2lscG9zj8e9ysXLwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8PJv8HJu7e7u8bDv7zBzcPGvr61wb3Du73Gu8O6s7zFxMLDt7+1tr6/u8zDvLW6yLq/vsvDwcbCxcnHycbQxsLMx7LHycPOzMHFw7+9srewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NWXllKRkpFR0tBRUJGSkA5OjY0Nzg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1tfNys7FycXHwbnFvautpV9kdYSTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNhYWRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmdvczAw7rAuK2wsaeqraynuLS2tLOztLu1vrG2sLWvsrzCvMHEvMC7tbK6vsC4x7m0u7bBwr23vMbBw7y1rrK1ur+0xLe7tau4vb7AvbG6trC2urPFvLauu7+1t7TFvL7CxcDDxcbHy8XAxca7x8vAz8nHw8bBw7fDvb22ub7Hv6y1u7W3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcbAv7q3ybaqsJhbaG+Kj4WIiXp4foaGd3eBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZrbm5yfKTHwLi4tbCrraeeoqmnnqqss62qrKm0rrexs6mupqyzvLq2w7m6urGrtbm7s8K6sMCxvry8trzHucK3raqosLLAtri9sLGosbO1u7yrrrWmrravu7Kwqrmwrbuuu7i7wMC+ucO/xsPFwbzGwsjKuMXHxb/Hw8O6xMbCu8bJzMuzucK9u7OJc3Z2a2lhYmxoWVdXW0FMS01KRUFDP0ZBOjk6OTk1NzU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx83Bw8a/xMTDw8rCycq/wLzCurO0tcOuqbCRW2p/koeOj3t4fYmFenuEgHduXl1cXF1fYF9fZGNiZGNiYF9dWltaWl1aWllaXGVub2hmZ2lrbnKBrbqwta6lpKenmqCkoJqcpautpKiiq6qsq7Cjpp+qrbW2sb25r7ewqK64tLS8uLS8r7i5tbK8wLLAr6Woo6uxsrOovaqrqKusrbSzpqiuoaSvqbKmp6iupai3rbGyt7q6u7K8vr6+xL+1wsHHyLe+v8W3xMO/u7/Ewr7EyMzKv7/DwMCph3N0cmppXWFvY1dWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HLvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairkmRtiIOHi4B6fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9eXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWqpaylnpyhpJSdpJuXkaGjqaOjn6Wmp6atoJ2cpKassrC2t6exraiqtau0ubG2tq62ubKwurqxtqWgpJ+msaerqLmqpKenqKeyraCnpp+bpKasnp+no6Chsa2trLK0s7Swtb22u8HAsrq+w8GxubnCs8G+wLW4vL2+vMLHxMPEv8DEoIN4cGxiZl9rb2BVWV5ITmdPVEdGS0Y8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9tqCelJ2hprq2q7Ozu7PEz8nLwsa4tsfAzL+4ybe7xbizxLizv8CstbyyrKWvs62ho5JpcoaFhoB8eHVzb21qamlwaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dna21vh52pn5WVmqGWm6KYlY2eoaKnnKCfpKWip56bo5ugq7CtsbWkqaqqrKyktLitt7Css7Wus7WusKqfnp+jorKkpqm4raKmpqCorKuZoJ+emZ2fpZqZo5ybnrCpq6erq6ytsLK4r7i5urC2vLu6q7OyubO+tLaysba1v7a+wL3Dwru6vZeEenNrX2VeZGRYVFddSVdcS1BHSkpHQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vDw8++use4uL+3ssK0sbu8q7m6saKeqaunmJ6QbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3GMqJyTlJSal5qhlpaQm6KhqJ6cnaWnoqWcoKGbma+urq+yoaWjrqunorWwsrKsqK+zp7qzpragop6co6Gto6Kqtqujo6aepaajlpmdl5mbnaCal52cnZytoqunpKOmrauys6q1sLKrsrm0r6qvsrKzuLOuqayusriwura6vcC4s7GUhXp1Zl5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWjmKWxwrW2va20uMLMyMa/xbbBwMbOt8DEvbO5ubO/trG5u6yytK+fmqSqoJSaj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqGbk5OPlJaWn5eZlJegnqGclqChqaSfn6mdm5urp6+wq5ujpLiqoaCuqLaqp6etsaS4sKS3oKKbmZmqpqGarLmvoqGknKKfoJOUoZSWlpuYl5aXnJWfqp6ppKKdo6qqsK2otKuqp62zsKWrrrOxsLCur6eoqLKtsbSwvLS6uK6jlIF6dmReYVZZWFNSU0tNXkxPS0dHTExFPUE+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Kqu8C9wLmutLjBzMfFwsO9xbjIy7LBwsGtvLu1u7y1ubmwr7CqnJmhqZSRiouAgHx3cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmmBlZKUi5GTlJqYnJWWnKCcn5agn6empKann52gpqCqr6afoqO3qKGhoqizoqWopbClsK6stJ6hnZWVqaGilK2xsZ+jo52emJuTi6GUkZOYmJOXl5mXnqecp6GimqSlpaukpbCnpaOrq62mqa6vr6uoqqqzpqasr7Sxrry1sa+voJJ6d3JlYVxaXVhOTFFHUWFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaasuLu8wcW6sbm1xMnJwMPGxce2xcSywr/Fq7e3vba9urq1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVJUUlVgYF9gYV9hYWNlaYCSkoiQjpOSk5yUlZajmaCXnaCloq2mpaWjpKOdqqulmp+lsaqgoZ6lqp6oop6trKmprq2ioqKVl6KbnJCrqbCcn6KfnpeZk4qekY2Sk5aQmJiTnKGjnaShopWgoaSlm6OrpaKkqqOrrqWusqmmpaamtKapqK2ztbS5urCqrJ6McnBvYFtXVlVSRlFOSFlbT1JJVEtTTEVGSUQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb7DyKyxuMG1vMC7tLSqrKaVmpuciIFyiIN7dGlpamxnamtta2psZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSUk5RWV1cXV1eX19fYmRtjY6DkIaPkI6Zk5SSnJqjnJuhqamrqKynqaakmaWvpZWZpa+poJyZm6Cer5mcq7Ogpaafo6ShlJOblpaSqaqtmpyfoaCblJCMmY6MkYySjZaVkJ6ioKOdm6OVm6CjoZehqKOjqKugq7Ckrbemo6SirK2qqKuvs7ezvrWzq6+YhXRzaFtYWVNVUkVYTFFbWE1UTlBMUFFJTklCPT8/QT89NzU3OTk8PDk3Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9u7O1pamglpeYl4d6dIB2d25taG1tbXBnZ2lmZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZH2LgIp+io+Jko2XkZeZoqCboKuqpq+sqLClqZqfraCVlqSpp52YkI+anq6XmKiqmZ+dlKWhnpKRkpGTlaeqpZqZmZ6elo2Mi5OGiI2Dj4uSlZGgnqGkmJWflZqhop6Um6WlqKiooLGwprG9qJ+jrLSqrqewtbC5tcCxrrGqkX5yc2JWVFVOUkpHVlBSUUxMV01KTE5SR01LQUNGREM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OspbG3qqWisaudqqepsrGktsa0ubqzysW5usHL0Mqxtre8vcHDsa+xt620tLuztKKjnJ2Xl5SDgHZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqf3l/dIiMhpCJl4mUk5ibmJ6pm6CrpqasnqiaoKack4+fo5qXl4WEkpujkJWjnZaWloiim5uTi46KkJqkp5yVlZebkZKHlI6LgYuOgJCLkpKSoJqgopaUmJiVoqaZjZmkpqimoaC0sqeyt6Gcorasqa2ksrKmtby1q6uxo4l5c25dTlFRTE9DTU5OUEtGTk5KSk1OUUhNSkFHS0hIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKWnpKqloKimpbOqorLDtbWys8bGtrrDyszGs6y5vbS3wK+tqbCepq66r66fmZqdlZSHe4NuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW5xdW+Dh4GIgJGEjoqUkZOeoY+bnKOipJmll6KclY2HmZqMc42Dfo6XloaRmpCUjo57mY+djIKJf4qYn6OekJOYloWNgpR+fnOJjnqQh5OQkJybmpqRlpCdjqOjjomaoKGjpJuitK+sr62fmKW4pqaxobCunLC8qqmvqpmDd3NjVk1ST1BOQ1NOTFBMQlBRSElNUk1ISkpESkxGSks9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMDI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGsrcOtp6Gmkp2mtqyjoI+VlpKPfnh+ZldWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11panFrfoR7c05Yco+Cl4aNnJeLlJGfmJ2VlJaVj5aJgJSJXztWb3yMlImAjJKMkIaGc4qFl4F5gXuGk52Tg5WOkZCDhn2TeHFwhYx9iYGRjY+XmpiTi5CJnYifmIeIlp6aoaCXp66praionpets6KmrZmsq5iotKKpraOTfnRuX1tOU1JXTERUSlBMTEZOT0lFTFFNS09KSUxQRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego66hpqaqoKepp6OpsKintMK5sLWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUnLGimpiGlI+Lh31zdV1QTFFVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYGxuaHqBdE9CP3+VkpF9iJSNhIqNm46WlYmSiIaVhnmJf2BKUW54i5KEfYSNioV/f25+f5R4dXZ4hI2Zb1GNiIqGe354lHZnd4aIfoqJlouOkZKWjIOJiJWEm42ChJKalp6dlKSjqKmlpJ6bsKqhpKSRpqqWoqqcoqaoiXVtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2nKOnnZ+hr6GnqKWnqK+tqrW8tre3s8G7tqi6yLi2qKi1tqqyvaaelY1/iZOolpWKfo6Dgn14cG5YTUtNTU5MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3N1fmloXFSPiZSJdH+GgXyFjJOCkpqLj3uGj4B2gHhzb3ZwdI6OgXp+iquEeXtodnuOcHJteIGLjZJ4eoB7gHZzcpJ3aHWEhISFe5WKiIqNioB/hIuNgJSEfICPmJSclpGfnamen6CdoKmlnp2YjKekkqCglp6fpIByaGFdXUpXUFJIS1hST0pMTVJKSkpMUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc6ODc3NTo8Ozd2rpmjoZicn7Spr6mlraywsaq9tLK7uLa6tLGft7qyqp2drKmosrChmpGNlIGOnI6Rf3aGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmdo2WmI2OfWd5gXZ4gImQfYSYkoFxh498d3tva36tfXSQi397hpKBfH91ZnZ8hWxvZ3N8iYyHgGx5cX1xbXaPcWhxgX6OcEOLhIKDhX93d3qMhn2Me3V9jpKPmIuSmpujlpmdmp2eoZyWjYqkm46el46WmJB3b21mYlpYWFVRSlNVVE9QTlBWS05LTk9KUU9ITlBMRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmxr7GrvLisu764s6ynm7CnrJuPlpylqaSgl5mPhZJ5iI6LinVxe211cGptalhLRkdFQUBDREhMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybIinqsB+dHlie3hvfHmJkHp9i4ZvbYySeXR5amqAgnGWkYuBfpaASZKYbmh4foJtaWRseYWQkoZrc2x8bnJ8hmlucH9zjImEhnt9fnt2b3R0hYJ5gXlwfI6MipODlpeYmpCSlpeZl52WjIOJnpGLko2GkJaAbmlvb29YVlhUUlFZT1JUVFJYVUxOSE1KTU5LQ0hNR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCjraqota+urLS/q7zDv6WimZWkl56NhIuUoaGZmJGTi3OOeoCGjIZ0b3RrcGxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXF+niGKaaXN5ZX5wbX96i4l2goiGdGyaknRzfGpqnY9NeYWTiYSOZzF2hnNsfn6DdGZldX+EhIWAZmlsdWtxf3xocXF8bpKNj3xzfXxxcG51bYJ+d3l1anmIgoiJg5aSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trb2hlWFFaV1lZW01QVVZZWE5ISEVKSkhHQkBHRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw0Nzc1NDc4aU84OzVukoiakZmWo6iunrKep7qvq7KwwrG7w8ealo+UmYuOhnmEkJiUjZCMj4Zxh4J0h4yGeXBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHF7eGx9bHGDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooR2cYZ8h3x0jK2OiYBnZ2JqbnJtcIN1aXBYdXCOm5J3bH96fW1ybnCAe3N2bmJ2g3+GgIWQkIqKiZGLkYyLjoN1eIqOgH6DgH2Pe3JwcGxgW11eXFlYYF9STltaWFdMSElGSkc+QkFCSD9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW0qa6xrsGyu8HGlpCMlI+AiH1ugZCSiYOKh4+GdYKEbJWIiHt0eHhsd253Y2leSlBHPkA3NDQ5Ozs7PT5AQkVITExMTE5QUVJUVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx3iIh8foWDf4x+daKZeX6GgYWZhJqcYYaqn52Lg5CNeneIfomIjnOKl4+Del1kcnR6fHeKbWhqYnlvhpCCem6Bd3SEenB0eXhrbmlddod8h3yHh45/ipKXg42FjIZ9cYR/g311d3t8iXdwc3RmZ2BbW15UXGZeV1BUWFtVR0pLREtHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIyRnZ2fppGgqqCxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSPjHiDgHOghIp8fIF/cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUVFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmiEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqkiGrq+vi4GAk4qCi4KEkqmHgJiYipt0bX2Bhod9jmhnaHl/boaHgoVxhIZHbIB3cnl2aG1rX3Z9goh/h4SLeZSdnImLiJF/enWLdnx4bW93fX90dHJsW15dW2NjWGdlXFVQUFZZUERMS0ZOSUNGQ0NAQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fomFiJGOlpeSl6CdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWHBZXF5pjZOHlYCEgoWRk36FiJGBmpWCoaGYlZubpq2Tmruxp7vHw6iLjKGlj5SJgZF8cYOen5Gcf3aFhYuQiJBpaG+DgHWNh4SLcYWCd4d/e3aFfW52dWaAlI6GiYiHiIehq6KWiY6Yf3qCiXp5b2dreH56fnNsZV5aW11qXWFmX1lPS05XUlFJUEpETkdDSkRCQUREQTs6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMf4GQjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH6ShZKVf4qAkpuOg4CBjIqCiY2Df4l/bXBqXUJANC0tLy8uLzAyMjM0Nzc4Oz0/QkRISk5RUlNSU1NUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WX2N/Z2dtdZ2bj5qSk4uNjpqIko+di6CgkqOqpaOsk6m2oqjBw67Hr3i6lJp8jaGemYSThYKPoZ+TmJKEi4WPmpGWbHB1iYuCloyNj3ePhHFthYGKlpGDhYhyiKCWhpKJjo+WpLWpm42VooOHk4N9f2tqa3yAgYJzYl5kX1tna1xsbF5XS0dPUlFOTExGSVBDRE1GQUNFRkI9Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NDU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1hnF2koZ+l5aalZ6enKegqZaTmJ5nZaSafoSSkXl/koiRkn2KhJiSkYKAgIuMiYaQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ2Nzs/Q0VOUFJUUFBRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZynpaKZoZeilJyep56oq5+orKmqtpervqu2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGJlqKamnd6fpSYkqGSlpiBlJ57d5WSq7KIjZeffZSdm46SlZikoqa1sJ2RmaiIlo+NgYhsc3J8f31xaF9dYV9hZ2RgZ2ZbUUVKS1BPSUlMRkZMQ0hMRkZDQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbnxhd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJi4qEkoWDhomBgIZ2XmJQNDYwLTEvLC4wMC8vLi4wMDE1PkFBTVFSU1FSU1RSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYWQd5WKo6eqtL24pK6srKeotKuwtrKyrbuxs72cs8Osu8nLt8O/uKWjsLKsraqji5aYhaamoKOXgaaZjaKrqKSIhZSkoaCqoKSpj5yxi5Wjp7e6m6CjsJKinaOekKOhq6+ssrWilKSqiJmJkoqVeXp9hX9oYWhcZWJdZGNeZ2ZfWk9ESUhTTkZITEZKR0VGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pvWHqFdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5COg4WBjIWGh5KGgoSJhoiHh3BuYUBFNjQ8Mi8xMTAtLCstMS4tMz9DQU1VUVJTVVVWVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GSoISuo7OqssDHw6qzxbass7+zuL62v7TBtru6o7jFqLbJx7W+ubSoo7StsbGbmpKan4mnr6ullHafpJehrLKzmJaqraiutruyuqyvtaKxrLG1u7e1rrWgp6ejqJqpr62yube4p5u2qYyljpGTn4Z4goN1WmJkVmZhYWNfYGZfW1RJRERMVVFISUpESUdFQUBASkRCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFiY1d5dXGBlH2EhpJ1hX+AjHu/u6O8grSUk42bj4SIj5KJiHmGgIySjIeFgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRXE9RVVdVXFZPXlVJS0pBQD5HS0ZFRDs+QDdENz9CSkpFRldUUF6PpK2jsbTCtrjBzMm2u8S9s7PAt7fBtb6vt3Sxs6W6xaOwxrmxs7G0qKS1tqqxoKKWmqKSpbCtpq2rp6SYoKy0u6Kpsrq0u77Mv8XFvb2zwre6uL63ure5rKywprCqrb2wvbvCwqyZuqiUro+XmKuJfYJ9a1djYllqZWplV1tjWVZTSUdGTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldTWVVadmpwfo6EgY2DbnpzeYdiuKGZo4mVk5aTlJONkJaSh4Z7hoGNlYqBhIGKenyKh4Z8ioOBioOVfXd5dWVPXGRHRUw6UWNhW15TRj87SFBEW2NRUllYWmdZVGBgTVNQRUE/SUpIRUZBQEM8RTZCPkhHSkxTWlRdk6+4tbq4yb+6vcnMu7zAvLe1u7u2vbS6scZgdbKlsZqeqr2qpairqqOisrWhq6ielZafmZ+upaempZ+jlKKnsbSnsrO9tsG+08nJ08bCxczCysPAvr2/u7y3tK+4t7bDusa9w8iwnrmpoauOpKe2iYB/cmBiYl5YYV9pZ1JYYFZRVUlFRU5LQT5HRD1LQT1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUktRXWdsa3CPjYWPc2xycnOH1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaLf4N/g3h7i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWVtVVJtbV9uX1hnZVVZVUpEQktLSEZISEhHQkk5RD9IS1RUVlxaW5K5wLi9t8bAu7nKyrq2ura4ubK3tbSutraZZHWonK1wXqGtnJigopuknqqllKCfkJSOlpiXqJ+ln56amoOknaylqrCtt7C9udTRz9fPyczSzM/OysbAv8LKvcG8wcDExMXKv8jOs6S7sLSvm6u4vJl/emxeYVxZXWFaY2NRXGBTUEtDQkVGRTxART5BSEFARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUVxZaF9vl5KQlG5sb3V1h7OsoaGfi5mcmYyNlZGbkoWKin6IhoyQi4h8gYRze4qDhXuJdIGJhpV/c3t4a211e2hyZWlsaWZqaWhgZmlobFpudJatpLyIh2dbb2hdWlpUSEtOT0pLUEtTUUhMQUpGS1BfXmJmaWKYt8ewuLO7vbWxxMa1sLmwsLursrGnqresjbWnnZunmk+anYyOn5WRppillYqTk4mQiY+RkZ6boZealZaGnpqnm6yvqLCns7TU1NTW0svQ1NXN08/NxcLJ0L7KycrJ0cfMzcLQ0riww7zEuaW2usOigm9kXV1eWWBYWWVaUV1XT09CQkdEQkg7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VWc5CQmIJocW95eYOgqp6ll4ybm5eLjZWRmo59iYuEjoqKi5CHe4SCcH+IgYZ7h3KDkYuPfXF4dWtxeH5xe214c2xpgXBtY2ltcHhpd3x+y7/C36duY3dvY1thYEpQUlVOWV5QXVxOUE5UUVVUW25tdoJxlq24rLOnsLaqrLzAsKu1pqS4pquuoKu0o46xrZqYmIyRk5GEjpuBjaaRnImDi4SKiYSLg5OVl5aTm5GcmJmZn56rrKSnoqytz9LV0c3M0tPT0NTRzsjD1NHHzdLT09fN0tHF0tbFwM7Hx8KovrfPnnpvZl5iXldfU11aT1BUUE5IPkBGQUJFPEBCPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1OW3WGhYp3bHdwfX5/oZ6eoIuMmZOTjIuTj5aEeYWPkI2LioiRh3+Ce3J+gIGHeYR1hZKRiX9vdnJrc3x8d3tzgXdxa4BzcmlwcXp5cnq+y5p+jLKEdnKEd2hhal1DWlpbVmVjWGRqU1hdXGBkXmN3en6LgZmppKShn6CopaqwuKqltKOhraGjraGnsZ+JppqTkpGJkY+IgZSJapWijJmEgIV9kYODk5ati5WNlZqOhpKRnZensKGgoaWkqMjOz8jCy9HU0dTTztPNxtbTzNTY1tbY1NfVydTazcnX19HKrMPDy4xzb2NgX1hUWVNcUEtHSkpKQDs6O0RBRDxCQz5IQj5CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5aJj4qIjoePf3eDk5mKjYiIi4l+g3hze32DiHd/eoeRloCDbnhwbXV/dnh9dIV8eW2HdnRufXaEdXh8nbWMPEGLxaV+jHxpZVZJQ2ZjZWNnamRueFtfZmhrbmlugIOIkYudnqCdkJeYn6OkprKjpLOgoaWdoKmgorGchp6SkpKQi46LhoOPhH6cm4yNg4SFepR+gqmVo4ySipeSi32XipqRq7OYmpunnKe9w8a5tsbN0tDS0MvSy8nUztHV2tfX2NTZ2M3Y287J2trS1b7LzLR4d29lXVpSVlFaV0ZHSklFRT06NzlAQUI5R0RARUNBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUa25ucGJwcXSGjXyXkZ2LfoeSgomGhYmBh3x4hZaWiI+Dh4WHeoR5cXp7hIZ1eoWOjZx6jHB8b296f3F8gXGDh4Bujnp1d318gnV/e4aHsHRYqcK2jZGCcG5iPV5ocnBxcG54doFlaW9ydXhxeouHjpORm5WglYeMk5ugm5+qn6CtnKGamZ+lnp+rmYuajJCRjYR9iIeDhYuOn5mTiISHfm2ZeYSYhoiTjI2UjIZ7m4iUj66qlJWXn5mnrrW9qa29xsvIyczLz8nD0crU19nX2NfU29fT2dvWz9va0dbJ1MuVentpaFxaUFNUXUhDRUlIPkE9PTc6PT87PUc9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjpEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoGEfoN8fISYjoeLfoaGgHeCeW57e4aBdXqSno2gdo51gnR1gX10gIRvgY+Bb5KEdHyAhXp2hnuJt8alwsm4gpabj3dwZU5mY4F6gXeGopCKeHl2e4N/e4R1bZOWlJWPl5CDiY+XmpeWpZyXoJefkpKXo52Zq5WQkIqNkYKMhYmIgYaQkZ6cmYmFi4GGmHqIiJ+Xj4iNioyCfKGJkIu8oZiTl5qcqaalrp+otr/AwLnHyc3Oxc3K0dbV1dnV19vU19na29fb2trYztzGh3x6aGllYFRYVlVNTEROQzs9PDw5Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop7foB+f3yFe36BkYmEhXqEh3t1fXRtfH2GfnN+kp2RnoORfIZ+eI59eYqKboKagHSYhX2BiIV7fZB6j6mOj8OgvIyco5x9iYR9iXKMin5zppqcmJOFe46QiIRoR3CgpJ2Mi5CShYmKkZKVj5yakpSRlo2LlZ+dlKCUkY2NkIt+kI6Oi4SJkpaan5+JjJSSnZGCi3+lmYiEjYOFhIGlh4uLuJidkZSWoqehnZ6do6+2urWswMXK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbuHl5eW1qZldgXFRQT0hDTEI9PT45OTo6OTk7PDY/Pj48PTk6OzszN0Q/ODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97iHp8e4uHgn51g4V5c3pzbYB+hH13hZuhm52UkoCLiH+Yh4Cbkm6HqIV6oIt8kY6CiIOcfZqRioyjop+QpK6gi5GLhYuBkoZXcq2Ln6ubj4OYm4+PjVuCopGCjJ+TlYyHiIySkoyUlJSPjI+Kh5abnY+VlpGLkpOFgIuIko2Kip2WmaKihpKdlqCKiYiNnJCDiI9/g4eFpIaMkLOYnZKUl6GhnpmSnJ2nsrispr3Cx87Hxs/M0MzO19DR1K7W1dja2Nra19bZ2Z9xfnVoZ15dWFRXWENASEM+Pj46NDk6Ozc6OzozOzs/PD43Ozk6MTpIPjozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieG1ifpKDb213i3h5f3qBfIZ7e3eGhH9zcIWCenV2dnSEg4V9f5Kmo5+lopaJnY+Ul4uKqJdyirGMhKeRhJmThZmMopagmJOJm52ikqmvn5GUkI2OiJWLbo23hZrEyLKcoaWbnJiWkLKQZKTNx5aPhoeJj5KOjZOUiYWKiYWWmpuPkJSThpSXg3+Pi5mIjZCql5ejo4iZnpebiI+Hl5eKhI6MgX+Hj6WJjZOpmpeTlpmhmZ+Zk52borO0paO8wL7IxcXJyMnCytPNzdSp0tHW1tbY2tTT2s+Dc4BpZF9eXk5LVFpCQUdDO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI6STo9NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdYKOfHxsfYh4en56gYGDfnZ2gIN8bG6Lf3l8eHh8hIeLfYqjs6ejqrKhlqefpaSWla6ig5C3lZKzmY2hoIykm6+ipJ2YkKeWqJmtr6SXlJaUkIuYmZagwI6jybirmqKmrZiRmpyynYaFqKKcmIWIiY6VjYuTjoiBhoeIkpiUjIuTk4aUmIaDkZCcdJGZspaXpKGInJqTj4qQi5eaiYqWjoZ9jJifipCQnJqZk5iYn5SgnZWfm6GxrqOkt720xcfEvcPDv8bOysnSp87N09LQ1tjSz9i7c3t3XmFWYVdRSUlPRUFCRTU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1Njc9OkpGREdOW1xZSWZgO0iEi3p6bYWGenyEeICFgH1weHx9fG9yjXp9gXt4houJhYOSp7utqLK9r6Sts7Ooo6KwrIqatJ2juKSVrKSWqa23pqSjn5mpl6mjr7CqmpiclJWRl5+Xmbu7rcmgaba4q7CUmJ6jq5KXvaNeqrKCiYqNlIeRfI6OfYOGjY+UlYiHkpaLj5WNioyXmJKdmrOWlauei5uUko2QkoyZm4qSnpCLiZWfoo2VjZianZOcmZ6UoaCUnJylr6iipbO3q8LIxLW6vbvFyMfC0aHGyc3NxNbW0MvUonF8aV5bVF9SUEZEPjxDQUE4Pzg3ND5GPDw2PDM1MzU1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVHYmBicElAi4p/gXOGh32BiHWCioN/bX19fH9wd4Z3jYGHe42PjIaMmarCwK+9xruytMG8tK2rs7aMqLKurr2qm7ukqK25t6umpqKio6Opr7Kxqp2cpJial5eeoqWlkqO5rqi/u6ytsrmlo6Z9iIacrb2wg4uMi5CDj4ORj3qBh5CMjpyIiI+XjYuVl5SRmpadp5qxmpGrnY6Zj5KOlZCQlpeOkaCRiZWbo6yUlo+UnJ6UoJ6bmKChlZqep6ekoqSwsqbBx8OwsLq2xcTCvs2nx8PHw7zV0M3Eyoh0c2NdWmBbTktCS0BERj5BP0I7OjQ+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxmRmBpZ1pdW5OMjIh7h4uHg4x1hpCKgW9+fIJ/cX6BepV6kZSUmJCTlae0xsm/wszBw7nHvLqvq7m7l7K2urLArqXApKqvu7uqrauiop6nq6+1sKqbn6qboZuVnq+zp4uiurm1wburqJyypKOok4WNqcPEpIKLj4eIhIaVlI16g4yRjpGhjIyUkY+Jl5+Yk5mUl6agrp2MqpyOlY+SkZWVjpCVkY+hlIaXn6CznpSalKChmaSfmqCboJSYnqakpqekr62lwMTCrqi3tcnDvrbOssW+xLyz0cnIwbV1eW1dWVxqU01JQ0xLSkpAQT1CRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmW01lXGZUY2qZjZeKi4iTkIaJeYaTkIFygHyNf3iHgoKQeY2hlqiampi6vsfIysLSyMrCzb3Bs6y7vqe6v727w7iswamss7u9qrCqo6WjrK20rba1oJ+unqaimKOzvKmbqLzBo7a2r6uSr6yqq5aGmammpZGCjJOllYmBdYqSeYWNkZCdn5OPlIuQjZSjmZeblJSjnqmfkaWajI+PkJWWiH2PlZKSo5uVoKKctaaQn5alpKOlnp6mmJ6Vl5ulo6moorKsqLzAxK+ls7fMwLmuw7O7vsK4rMLCwcCZbnpiWVddW0xLTUpHRENJQkJBQ0s6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+a0lfWGFaZGRWnpCdjZeOnpKJin+In5OEd4V/lX5/kIiKkH+VoZqupqOYwr3Iw8jF08zOzcu7wrevur20vMq8w8G2tryts7+5vK6vqKCpp7atrqmyt5qeraKooZ2qt7eppK++w7G9ubOnqbOzrK2WlqSrp6CRjpKxxaeVjnyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuNj4+eiFqQl5eSlqWaZpijn7OllqKWrK2rp5ufppeYlpmVoaSopp62q6m6u8S1pbS2y8G4qbass7u4rqi4ur24g25vW1hVVk9GS1NOSz9BSEVESEZHODVGTTs+Nz5BSi4zMjAyNUI1NU9WTjtMRktSTE9HR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnJGaUlSZWJMRqWUnJahl6mWjZCDh6WSiIGHgpyEg5WQkJSOmqKfr76uoca9xcTHxs7OztLKvru2sbq7vL7OtsS9t7i3srK1s7ezrKacq6u4qqinr7CXo66kp6SktMCwqqyzvsK5wLmzp7ezt7KulaSsrq6ki5OVoY10wZp9lpmEjpaai7GVmpmVkpOZmaajlaCblpqonJuhoJmLjY+WnWBKlpyalJqll1SWsJ+vnJ+llK+vrKWaoaWUk5mZjp2gp6KZtKmqs7y8u6uwssfAuaWrq62xsaOhsrK0pHFvZlxbT1FMRVBQUFE7R0tIRkhCQz45S1Q/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1RRVdSc2JXRkirl5igoqivmZCXh4unlo6IkoWfiISdl46eoJqjpLXItKnGusPDyMrIx8zOxr66sq65uMDBzbXIusC5tbmxr6+ytKejm6q0tKqppq6smaSupaWorLq/qKu2tr7Bv764srLCsLi8q6OutKy4pYibl6abdr6ghJicjpOZmouvlqGcm5eVm5+hqZ6ooJmaqZmhp56XkI2RnYNudpKimpWdop+QrbKjq5WpqpirrqWkoKSokpKZnIiUnKKel7Gnqau6tr6zsq29ubago6eopaecnKypqYxkZmFfUktMR0dOSlZMPU1ETUlLQUNEPFBVPEFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVhSUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5TYU1VSH9lXkhFq5WcoZ+7rpmUnoyTqpuRkpOJqo2Hop6MpK2Uo6O2xr20wbrBwsfIxcLOyMG9ubKvubTAwsq2xrHBvLS6q6itrK+jopmqtLumqaarqp2or6ekqqq9vKesvLO3vca8trW3wK+9v7OotLarvqWPopeRop+8n4mZoJmWnp2Pt5+pnKWjm5yhmqils6GbnaWcqKmemZWPlJuLl4mMpKGUnKKeoLSvpaWTsKuZq6yenqSjqZGVlaCDkJ6fnJWppaKhtLS6ta2otLKynpyippqXlZmqoZ53YV5gXkpJRkhNUUlORUZGQlJLSUFER0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0Ocb2JHRaeXpJ+fw6ycl6SXmamclpuaj6qWlqemla2smaKrtsTCu763wcLAx8S+zce7vbmysLizv8PItb+vvLa6t6akq6usoKCaqqvEoqWoq6aeq6+roqmovrimrb2wt7bHtrW5uL6wvsG2tLK0r72jlqOWk5uUrp+QoaKlo6OfkL2lqZ2prJ2doZumn72imaOeoqmroZ2XjZWek56Hj4SNk56koJ21rKaclbKnmbCnn5qqnqCNmZWfhI6hmpuSpaSamKyxtrKqpamtrJyYoKGSjpCWqZ+UaWRaYV1PSkdLT0xIRURJQT1PSEE7R0lIW1JPSz1IT1U0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGVjV0yimqObnsWsoZ+snZyun5KjnpakoKepq5e2sKOqsrXEwr2/tsDCu8jCvsrItri1tLGztLfBxra+sLi0ubWfpqyqq52en6WkwaWgqa2gpKmtr6Kmp721pbG8t7W1w7Kzt7m+scPAt7ets7S1opyklZGToK2gmKGdqKmroprDramerK2bm56ZpqC9oZ2kmKurq6ahmY2an5KeiY5Xf5WepaGguKqnk5i2o5+zoaCbr5eejpmUnYKPn5eWjqKklZClrrKrqaKipaWWlZyZi4+Rk6SfiWJlW2RgTElKSk9GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXEtOnp+hmJ7Dp6Wis6CcsqeTq6Sgo5+tqaydu7CorLWxyMPBwrPCxL3Gw7zFyrywsLausLWvv8W1ubCwurWsmqiwqamanqahp8Ktm6ywnKqirrCppKe9t6a2uryutsOts7PCv7HGs7q2q7S1ramhpZWVlKOroZ6fmqirsK6vu7KmoKmpmZmXk6KkuKChpJKur6ylpp+SoZ6Vno+QjZWdmaOfp7Smp42YtJyjr5qem66RnpSXlJqAkqGVj46foZOLpqywpaainKCek5KalIWLko2cnoBiZltoZUtJTEpTQkNASEc7O0Y/OTlOTVVeUlNKPk9eXj1IUEJMTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugwqijqrKho7WplbKrp6KlsqyuqbuyrLC1tMa/xMS1wMS+ysS2wMjCtau1qLC4rMDEtLeurLa5pZmrsquql5+ml627tZuosJutn660saequrKnubO3srjAqreywryzxae+rq23tKmnq6GWlpGlpKKil5ikrritsbW2oJ+opJmUlZOjoLeipKWWrbGypaqmoZ6ampqWmKifn5iinq+yoqaNl66ZpayXmZ6lkZuOlJiahZaflIyQnJ6Ui6mpqqKnoJmeloyPmZCBhpaJlJ95ZGldbGlOUE1OVD1DQU1DOjpJQDc3UU9dXlJWUUFXYFxCSlNIVktIOlVkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVKcGlWQ1dGjHlmQzuko52hpr+mp6+voKm1qp25r6ujqrS3sbC5t6+2uLfEvcPHvbzDwcfAucHGwbqqtqWtu63Bw7e4qq2yu6KVrbCtspalp5Gruaqgp7Cdqp+wtLKqqba1rLussrK5t6y5sMK6vb6mwqqwt6+pqqumnZiYqqGhoJGYoLCvs6uwuZqbqZ+ZlpKXpqC2qaWioq+xs6uxp6ufm6Cgm56lnKGXnaOzsJqfkJOlmqGpmpWin5aYiZSYk5aXnZOIkJuZlI+pqKefo5uXm5OHjpmLfo2WhY+ba2ltYW1uWFFRWlRBQ0VUQDs7SEE3OlhQZF5QVldEWV5eTUxSTl5LSj5aZF5OSFBOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWOol7Y0M9p5+coam9oaqwqqOxuKmltLOroa21va+zuLy6vba2wMK/ycS4xMLAwLjEvcG4r7aoq7eyvL+/tKmusbefl6utqK2Xp6mPp7ufpa2znquisbCzrKm2s7W8ra+xtaywtbHAusS2q7yvsbirrKmisaWepKmfo5eQmZ+yqrOpqrOZnaebmZSNoKaktK6noaysrbGnsqyyqaSbn6ijnZShmJuotamXmZKSnpmeoZ6QrJ+YmIaVmIudmpyTio2Wl5qXpqWjoJ2WlZeUgI+UhXuPkoOMlmZscmhwcl9HWWZWRENOWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJgUEtNTlhXWFBKVlZXTD1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfXmFVMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSaoKSst6SsqaWurrapr7O5pqawt8W3sba+wcK1tLrFvszFucPAur+6xLjBubK1rKq6t7q6vrWqrbG2mZinq6qrm6yrj6u8nayusaOqn7Cts66utrG5tqmtrrCnta+zu7zJsqq1tLG0r66moLOfmqitoKWVlZqZsaOtn6WvlqGkmZmSjaKlp7Kpoaaxq6m1pa6wta+jmZ2tp5qXnpmZq7ijl5ORj5icoZiXlKyfnZSBk5mNnZ2alpCKlJOemqWjoqCZlpKTlnuLkIV7jIuDi5JrbnhudXxhRmBqWUlIWVo9e0pHRTZBYlRpWk1cYUpbXVpSUlJiYExLRV9hYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBWYS41KENeUVwuKkIvSkdQW0gzY1lVS0SZlqCwqLGprKWjrq61qbe0uKOrtLfKu7S7ur++tLS3w8HNx7vDvbe+v8C4v72xva6nurm3t8K3q62xuZWXpq6rp6OyqZSvu6StsrGnp6Kys7CysLSxt7KorquxprivtbPDxbaotLWrsK2pp6K2n56msaCklJuZlLGep5ufqY2pop2blZelpaW3p6Kxs6unsaessLWspJmgrKibnJ2blKq4m5SOjouYnKKYkJemoZ+WhJKWkJ2cmJaWiJeQl5uonaSgkpaRkZd2hJCHfIWChI2MbnF4dnx/XUtlbFxLT2NcP2J7R0k4R2dXZVtMXmJNWFlXVFhUaV1QT0hhXl9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSWcyNydGYUxWJS1CLj1FTVE8M3JrSkRDkJmkraStraunpLCys6q3sLafq7W5ybmuwbvCt7OytcLDz8TAwb61vcC/ur+9s8Soqrmwtre/va+rs7OcoKewraWmsKWesrWtq7KwrKmotLmstLK1rLOsqayorKm5rbGwx763pLmvqa2tpaitsKWjo66jqZydnJqvmaKjoqOQrJ6jn5+hqqamuKWrtLSkqauoq6+2rqKdo6iqm6CZmpKktJmPiY2HkaKglY2UnaCUk4WPlJKdm5iWlYeYkpWZp5ygn42SkY6Rd36OhX18fYeKinF0cn59flxSZG9eTlpmXUZElltHOk5tWGFbTWBhTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXkpCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0NkOzYqSGRISis6ST8zQklTLD6Paz1HSI+bqaqhqa+kqKSztLG0tbGxoautvMu6rsC7x7G0rbTCw9HFxr7Asr7Bwry/uLzFqK23rLO4vMCwq7KtoKSnramopLCjqrGqr6ywrq+tq7O6prawsqmyqaulpaOtuqyqscK5tKu5qKioramosaWppKKuqqiinpuirJWknZedmKudoaepoayloqyrt7GxoKiin6qusKydnqanqJmjmJiPoKeYhoOOioueoY+LjJacj4+Gh5CVn52WmJWGlpOTl6ScnZyLkY+Oin9/h4V9d3+HhYd0c3KJdmxfWWBuY1FzclxLO4R8Rj9XdVhgWU5jXE1VVlVXUFxiXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XkowLklnREY4PEIwNUVLWDFAlFs/TUaVl6ynoqqynKmpsLasuLWuqqWrqr3Ju7C+t8Kvsa2zxMPOzsO/v7TAw8S6wLTJxKyvt66yucC/s62tq6WnqrCpp6ixpbStq7CurbGvs6yzuqS4s6ysrqern6OesLerqq26tqS1taSpp6ysqq2hqKamsbKkpqWhoauWqaCTmqCmnaSiqqSsop6msbesrKKkopqoqq2pnKGlpKOYoJmVj5idk4GCkIiFnKCNi46MmY+Qi4SNmKObkpGbjJOSkpSimZuai42Li3yGgYGDe3SAhIJ+dHiMpId5a15gbmdXZodkTkBnkkxEYnlXYlhSZVVNVlVVVE9cXWFVS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlhaLjBKZ0FBPDxDKzpKT140RIZASEhElpKvpKKqsJeqqa21q7axq6Srqqm8wMC4ubO8taazr8TJy9G+wbu5wL/CucG6wsSusbWys7vBvrOxrq2rrKe2qqWtr6u5r6ixsa6xq7WqtrWntLarrKSpqpyjnbOzqKiktLSgta2hqairqaynoKusqLm2qaqpqaGpn62bkaihnaCkoqaiqZ2cprSup6WpoqOXpKanqZyipKOfmZifkY6PmY1+h4yHhJ6eiIWKi4+OkI2EhpWimo6Nm5GSkY+Sn5eZloyKg390hoF/f3h1g397eH6AiZ6Pb3FnZ3F4XGF0iGlPXZhWSG14VWRWUWJPTFVUVVFPWFtiVkhQalRWVEdQWVVJPklIT1FQeExOVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJSYzAyP2Y9Tlg/Qyw+TFRfL0lrNlFFO5WNr6Clqq2Zq6Str7O0rqqlr6mpur67wLGvuK6itrDJx8jQwL+9u7zDvrrDwcC/r7KzsrW9vMKysrOrs6mltamlrbOzua+jrraxr7G5qriuqq62rKqeqqufo6C2raihnq+zobSqnqinqqOqoaGsrai9r6yurKGnp5+rmI+vopihoKinnqebmaqwqKKfrKGhkqGio6aYmqill5eYnY+Kh5WIfI2GhYSkl4WCgoyHj46RhIWUoJeIkZ2Qk5GNkZyVl4+KhYZ4dIF/fXV4eoB6dHR6aYKHo3VpXmVsgnVniIt9UldwXkp4c1NkU1FeTU1SWmdOTFZZZVhHU2lSUT5CTlFhUTpJSExTSXFQTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTWg6MzhfPWFkP0YxQ1BbWytITzpWQjSQjrGfpKaro6akrKa0s7Cpo7Cnqri+wLywqLmqp66wycbI0cO9wL65vr+8ybzCubCwtbK6vLnBs7S7rbmto7Wmp6yxtrmyp6e6ta21vK+8pa2ttautnKmvo5+lrKqnnJ6qs6SzqJqqp6mkqZ2jqaipvay0r66dqaOgrpuasqOVpJukpZ+kmpqoqqWemqmhm5GaoKSdmJapqZGYmZOQioKPhX2PgoCIno+Gf36Mh5GPkISAk5uUhZOijJSRi5Gbk5WHiX6Acnp5fnxpd316dXFxfWiGeYSIZGBoY3OFem1neV1eVUJXemxUYVBSWUtLTXB0XUhaW2dZRVZmUEM+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSTElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTtFWj8qj5OwmZ+fqKWkoaukt7KypKiwp6y4wb21sKO5rKiosMPJyczBt73Atbe/usi2w7W0s7Wyvbm6vretuba/raKzpqqrr7W4tKqeu7uosr+yuqCvtLapq56tsKKcpaipop6cpLGmsKCfqqmnoqqbo6igrbyorrCuoauio66enqyml56aoaOcn5uao6mimpmjo5WWk56hlpuWpqyLnpGQkYyCi4B/joF7mpSNiXx/i4aQj4yJhZKYkYeUo4qSkoeQmpCTgYh8eWx9dnl4Ynt6cXBwc3hpgXRqg2dkaGFvc45tYmpwYG9BXHhrVV5OUFFKSUxTWldNXV5tV0RXYE9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKkw+Kh00OSYnLjM0LjArLzQmLDokNDBBaFoxM1M9ZV9ETDZLVmRPKTwyUFs9I5KYq5ifl6ekop+opLivrqKvr6mruMK6sq2fuK+rqLS6x8vHv7fCvrC0vrfEtsOyr7qys8C2u764qbm4vquktaeoqrCtubCpmrq8pK6/tLShrre1p6ansLKgn6Smp6ClmZ+tqKieoKqvp6Cml6Opn7C4n6Sxr6Groaykm6amqZqam56jlZycmp2pppaanqeRl5KYnZOZlaGqkJqJjZCHfYd+go18fKGMjYl5g4yFioyNhYiTmo6JlZ+IkZWCi5eNkH2Fe3NwfHFzdGB5eGlvcHFvan9zY3psaWZkYWaGgGBbcmpxTE1/aVhaTVBMSkhQUlFJTlxfb1REWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo/MFpaNSiWnKWYnJatoJ+hpKG3q7CjtLSpqLnFtrKuoLesraywtcbIwLe/wrqxtb23v7u/r6y9sLS/sr3Duqm7u7inqLaop6uwrLOwppq8t6Sru7Wun7C4r6mlpq+xm6GkoKOjoZabsKahnqKnr6KgopOjpaK3sKGmsaufrKKumJyqpKiel5qdpJOanJqdpamZnJuklJSXlJyOk5eiqaGQiYqPhXqEfYSKeY6Xio2HeoKIhIiMjoWNlJmMjpaZio+XfoaXi496gHpwcXZvb3RfeHdlbGxsammEbmZyaWxmaV1kc4FgW2t1aVpJfV1bWE9PS0hHUlVGMjleXm1QRFdWWWVNSElFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCI4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbDg0R0FmW0hURFVdaEQuPDJiViwylaKhl5Sbqp2koaKgt6quoLq4pqy9xbOwr6O1sK2tr7XExLyzv7q4sbO5uLq4uq+uwLO0uLC/wbisvbq1pqKzqqepsqutsaGbwLakp7W1qJ6yvKmopqivrJmjp5yjppSYorKlmZ6jqKmcoqCTpKCkuKikp66mnqWgqJKfqKKhoJibnaCSmpuWoKGqm5uYoZSRlJaZjZOSo6ikkIiKjoV5hHuEhn2djYqKh3qBhIiIiJGFlZOTjJCVlI2OlHuDl46Ld357bHRxbGxzYXh0aGlqZ2ZvhmdoaWRmaWpgaWJqZ1tle2NgU3NUXFtTS0pHSU9TQCEqaV5qTENWVV5gS0lHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPzAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc5Zk8nMp6jo5GOo6ebnZ6do7Wtpqq5t6esw8G2sKyjta6nrq+3wMC8ssG3sa6yt7a4t7atqr2zr7Kxvb+4rry8saWftqulpbOpqq6fnsGrqKWwsqmstbueqaqrsaWXnqqdpqSRmaetopiepKmhnKKdl6Cdp7amr6qvoaGdnaGUoKWfoaCZm5mckpmdlKWdq6GXlp2Uk42Vl4uPmJqooJKIioqIeYV3goKBnIiLgol8f4SIhoWRhJaVj46PkZGRjJJ7g5WNhXN9fWZ4b2tqbGd1c2tjZ2VkdYBiZWZmZWpqZGtxWl5ZXW1kYU5oV1pgVkpHSUtNUlg+OV9saUhCVFNcW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQDozQWZIJTWbo5+Qi6yhmJiglqWzsaGxvbehsca8urGxpLarq66pub27u67Asq+urbavs7izqKu5sa+utLa6trC5vq2mnrWroKCwpKuunaPBoLGjrrCut661nq2vrK2imZynqaSelZuopZ+ZpKKonZqgm5ScnaywprmorqKhmpqdmJ2jmqSdl56Ym5SZoJKolqqnmpOampGLlJmNlJSZqaeOjoqJj3uCc4GBipiFh3yJiYSFioyKk4STnJKSj5CRlo6QgICMjYNwgH5meG1oa2pncXJrXGhjY3OBYWZoam5sZ2tqZ21cbGt0cWFUYmhkZVpJRkxNT1hRUVZhZIFUQFZTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUplQyc0kqGajY6wnZqToZmpsq+fuL+2oLTCu725saa2sKiupLe4t7etu6+tqqu3qrS5rqaztbKuqbG3trGztbqnqZ+2qZ2eqaKprJuov5ito66vtbWtrZ+xra+popuco6uom5Wcp6OdmqmipJaaoJyQm6Orqqm7n6ekoJiZmZ2gj2uhlpiccYKVmqOAdZKpp56UlJ6QiJeZgJaKoZB4hpSMg25qfnaDcWyGi4Z9hIuGb15jYWeEl4Zri4+Uk3V3i4R+g5CAZ4aAaHVpZldcaHNuTlBqY2dyhGdfZGZubGpeYGGKkISFZU5LRDhGVGdeSkdQUFRVS0hTYW90ZUZbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFRZD0rL4yjmYaVsJuck6Gbqq2qo73Er6m3wri9vK2ntrClq6S4s7KzsbmtqqestKawtaOouLa1qKest7OutK2zo6qftKueoaScpqeZrLuVpqWvsretrqWprauspaGfnKCnppuXoaWlm5unp52Tnp+YkJ6nqqO1r6Ojo5yWl5iXo4ihjpKah6GHk52gf6V/pqqekpGakYiDcniMjoWIoXaJjWmXiGZ9cnihb4iHhH6NfH+hoKCZgHuHnnSIjnabimyHgYJtaGVjemxxYVSGbWNsaZhxWGpwb4dYXmlba2tbiHFuenKGZ4aEWl5GTT9HX01GUlZWUVFSV1VnXk1YSlJST0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiLppeDnKudmZmdn6qqp6m+w66yury3wL+qpLewqaymsrWur7O2q6mlsa2ltbOcrbW2tKWnqbOxrbKor5+robKpoKOimqGim660laOkpba8pq2nq6qsqKWhoJigpqOZmaaipJicpKmWlKOclJOkpaaht6OjoKSYlJOYk5yIro+YlImpi5eim4WxgKOsnZOZnZR5gtSof4eVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGWvJzFe3K2pruQe4BslrGrsHloa1ixrm5labySvG5oem5yj9h+U2pitrJ+gXKUdJqhqpBXT1dhT1ZORlRbWFFQUoxcV1xQQFxEUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaWTgKapn5ecnqWtsqiwwr2ytcC1t7/Cq6azrKypp6+zqa+2s6ioprWmp7ivnLOytqqlpKixrq6xpqqep6SxpKGgnpebn52urJSdoZ+0uqKqqKGtrqWinZqZoaefl5unoJ+YnqenkZynmpSdoaaioLCin5+jlpWSmJKZha9qaoqNqn5nhJWGrWRwnZyTmaWUca6hpH54u31roZB2sV9qtFulgGackWBmgnpmf2p4a6lkvnJnpox2sWp8sXh0kpRjbW2nbVuEoEVoZ4eWRXWcYH1nfKSngllfi6tpgJV4eWqnN0qvXFdTbWNbS05XX1xXVjtOiU9XVy9JVFNJREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5GhlIKsp6Weo6WqsrestL2+r7bEsre6wqaosKuuqamwrqOxuq+kpa6zo6m5qJ6zsrCjpaCqra+sr6ann6OisJuim5eVl5qbraWWm6GetLOhq5uira2gnpmWoKGonJiepJ+cmaGnpI+dopqXoJ+qnqamoJufoZWVkZaRmoW1m7V4hamZtZl3h7Obt36TlZaolH5rgaZ6goaIkpSSeKtna7Fbq3uPh5R0iHGPhoB/iJCXeIOCi5eMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinC5Rom9bU2toYExLW2RYXFpCPrF4V1hBI01oRUNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o4YVU1MBuVn5SIs6amoa6pp7Osqbq2wrC7wq24t8GqrK2urqausqmhr7yqoae0raSrtaSmsrOno6GdqKqyqLCopZ6fn6+Wn5mUlZaYnayhmpmjqLSuoqmPqaiqm56Vl6Ckp5qenKKfm6CjpaOWm56YmZ2iqpulmpyboqCWk5GTkpyD1ZOZuXCwwn7GhnzWlJu7fJmVpI+NnI2ke46HpIKlgnqseY+dVq96iH6farlauXeGg3ymgpN8mHqqeY2dkHuxbo6EdJC8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiGgIl8Y6QzQp12XVBpaGRQQFhnWmRhSkhNbEtbUk9ZZllDRD5FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzIlm6KTmLGoqKW0qqW1qKS7t8GwucCxtbS7s7WnsbCjsLKmn662qJuoua6jr7Ggs7SwoKSen6iqsam0qaScnZ6ql5iXlpeVlqCpnZqWp62wqKOfj6yiqJael5uhpaGYoqGhoZqioqebnqGelZmbpqCbp5Wbm5+hmI+SlJGciLJuaLVxq4dvjqZytHNytnuZl6OLjpyNon6RoKV+sHaDkdLRdlyue4V/pG+bqqZrhoR8rX2XmY97sXOSnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFNRamNmWEFPa19saE9VR0k5PVZSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGckaWwraSqu62mtaWntru8srq/t7a0urqzpbSzobGxop+sr6SYprqupLGxnLS4qp+mnaGqpLKorKqkmpyaqJ6VlJiYkpKip5+WkqWrr6ailpOsn6WSlKCbpKaflJqlpqGao5+tmqGfnpCWm6GdnKWVnZWZop+VmJaSmoWse3eodqOOiYepb62KgqeDmJihiZKaiqJ/k5mIroV/grNccrNSrn2DgqR/cdd9d4R9jp6GmZl3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV53d4domIhrXq93lZ6PeGw1eciusl9BVG9eZ2BFUGxfcG1WVU0uZWNpU1lROkFEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk5ODifnZSguLCXtMGtqLOoqbK6uLS4v7m3srW8taW3s5+0rJ+fqKuflae2q6ixsauttKSbqaCgqKG2p6aqo5melaWhlJObmZKUoqWakpCmrK6moZWaqZ+ij5GimailoJWapaidnKSerZ2hnaCNlJ6bnaCYmZyWl6Kgk5iQpp2GqX19pXihj46DqnCti4GnhpWfoYiXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aHc6eBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtvZU9KQ6FcWkx0XWJmTVthX3J0X0pWNkqbk1hIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4wMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMT84oZ2Zmb+rl7TCrqutqaW0sLextb+5ubKwt7ypurSfsKSepaennpOqsKmwqbWsq6+hmKGgpqWkuqKjq6CXm5GioJWUnpqUmJ6gj42LqK+vpp2Xm6emn4ySpJenqqeUl6mnnp+go62koZ6hjZWhmZ+gkp2XnJWeoZWWjqubj65tcrRyqYx2iqZztHhzs4CRpKKRnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZKIrWt1s2GdZqJvh5Jql1ytYE2hfIeRUnOjbXp/fm+Yh3Fcr1Y8nHdlVG9uLlynT2JSa2VibFpjXWBwe2NUWlE+Pm1vM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs8MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWam526oZyywK6tq6unt6m4r7XAtbywr7m4q8G2qaqgm6akoZ2RqqqotqOyqK+qoJecp6Ckq7ido62blpmPpaOVjZ2gm5icn5CTlKu1r6eZlJusqZeMk6WYpKyikZaqsaOgnqersZmho5CZopefm5acl6GTnKqclJCrmYfUkpq7c7DDgMOGftWWm7h4h5CXjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gYpumohxbo2kdL1ed31bYXm8a1pWW2p6XmphZmdibXdvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy02QTmnmp6hvKKXscOwraqqrLGnuK+2xbG6sa67sK7Bsaukop6joZybkamkqrKktaatpJ+WmqqZpqy4naOumJWhkKWgko2co56XnZqQlZKvubGslZejp6eUkZaknKOsnpGgqKufnJ+po7Oeo6WOp6KVopqcl5WjmI+woJKUqZ6FkJm1gJCRjLeVeIKTmrV3bWtuc255j4SOiXSewbu9mnuBsqhwgHSRuIN8hoaMho17ioaNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtXRycHe2jF6Aen2JaIN5bXlji6xwdYV/WVunakRkWVNmYGNdY1FnZnFtdUJNUE1EO1pNPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPTs8p56goL+llrTDtKyrp6yrqbuusMavtbOut6e0uK2poqGlnqCdmZSrpK2qprWop5+blqCjnqykvaahqpeUnZCim5KPoqiik52Xk5eUsrW2rZido6Sii5KRppulqpuWqKSlnJqhqaeno6mhka2el6Sel5eXnZ6PsKiUm6ehjmp+aZymeIdzfZqPdHplh3q9vsC6b5KCcZWHX3JqWl6aiWFjiI6Va2B/lWNtnXdilWt/mpWUZV5gY3GbimlyjH2GlWdqfnJ0eH19Ylt3dIFoUFxuhH17i2tYbHqCc0lKb4ZwTnRNRVddZmBMW1hmY19PW211aXFST0RFTTxIST1MPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqifqKHBo5u0urajrKWup6i1sazIrK+zq7WjvrGyp6CiqZ2im5qZrKaupKW1qaWbmJWhm6etqb6nqaaVlJyVoJqTl6WpqJCdkY+XnLCyv6ybp52noomTkamaqKObm6ugo5qbo6eto5+ropqwm5WnoJaVnZ+dl7GkmKGnmJyRnZyjo5mmopqcmpqZj5aBZ219cXeSl5SRhYq1qo2GmJWPioyYl4eUlYqEkpSRiY6Rk5iUmJeaoKKanJShnY2CeqWGbGp8kHyAdImKgXGCeHl2douAfIprc4F0g3Vkd313a3B6bWBjXXBnTVlZZmlgV1pwem5sZlNPRlM5T1pNUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzoLOiv6GjsbK3oKmlsqelsLWqyaussaW1psCntKGdpKWco5WWoKqmrKOjt6ufmZaWn5etqaXBnquklZKcl56Yk5Sin56ip5ORmainssOvmqucqp+PlpapnaqcnKCsmKGbnaKlsKeipaierpiXp52ZmqGenpywoJyippWYk5iToKGVo56XoI6Wk4qKjY6WrY98lZuCkoKLqqiGgZiWioSPn4h7hJCHhZmSiIaKlY6bl42Ql56jlpqTkZ2Nfo5mobOvhYqEdnqPinx2eXpvZnqRgYCJa3WBeYhyaHN/enaDh4JrdGR5ZmBqZWNkZmtZa3twaWpcUkxQRF9VRUA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76sq66ysqCqprGtoqyzsMWwqqyjs668pLScn6WioZ2Zl6ilqaakpbO1npWUnZmZsKatvqCsopCRnpqZlJGVoZyXqJyEnqmrorPIs5+qo6qXlpeap52om56kq5Oen52gqq+qpqOroq2bn6ChmaSenJ6dr6OYn6iTmJeckaSZmKidmpdlgpJ8ZX6NmY9jeY1saGt6kaSra2WamH5nhYplZWloe46hj2tojZeRondraouYo56Yc2xueoSNh3pYZV6Fgl5siomAdlxoc3d3koCHgm54gniAc215hHR3iYiOg3tphllea3RkXXOJaWp8cWxjXVJOWEpkWEFKND1GNz9GRDcxPD0/QUQ7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsKqlqK2tsKeurbC9samnpK2vsJ+tl5+jnaGamaernK2jpaipsq6elaOQoq+mt7mlrqOOjpqhmZOSm6CZmKSVe6Wsoqizw7ekoaeun56VnqOeo5yjqqiSnqGeoKqxqqujqqCpm6afqKGslqGbpbCkl5yqlaGem5Kll56qmJ5+vYOHcrRyhJ2GrWh4ucS4cZOio3ummJlzqoJ8y8DAu3GLooeCn32VmImewL2Clp2djZ3CwXuCe5KMmsPAfWqlsW+MgG/Ken+bd5KDjoF2eoF/eXF6f4dxeIWNk3ltdpNjZl94ZGBlgmNedGdtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmolKOvqbCuraayta+ppaamsKufq5iaop+cm6qnopyso6WopaS0pJ2ikqauq7izp6+ikZGanaWSkaChl5ufnYemq6Srrb/AsaCpr6mXkp+dopmho6qjk6Chnp6tr6mspqOjp6Glpp6tqZKkm6mtqZydqpysoZaXpZaho5ecf86UeHqkgXmVlptfro9ejqeBoqB8p5WbdKuDgK9eY42qeqeHhaB0l5KIs2OCq4agjo2zaoSudH2Wh7hhg61Zo81uj3V72nt/mXB+iJJ2fmV7iHZ2a32Ibn6FkZJ+bYGPYHFrcGdgX3lkXHFoamNmYFJUUldeS09DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcK/v7W0sLeXnZGkqqits6ulsqysq6Srp6+qoKebmaSXnKKvn6CeqKejpaGesKybnpWnrq2xqqisoJSSm5+lk4+fpZedp6OeraSqsKjAxrOoqbGulpKdnKKXn6mqn5Shn52drrCoq6mcp6ekoquSrbSXpqKqqZ2jp6WhsKCSmqeaoJqUlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnneqgn2tf5xyrX6rh4afdpiSenyXfqqIooyRjJ1+q3uJk4+fgHutVpzEeo9vksF9gZVtdXCMbWV2ZYZvYXducm+Ki5KQg22RkWVwdHVwYGdtZV9vaWluZmNXU11hWVJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytJ+do46jo6Gsr7auqbGnqKqnraurp6KjnZmilaCmq5+hpaCoqKKfnbCsl5qWqKevrKinqZ6XlZqjopGUoa2bnaajr6yjq7Squs2xraauq5aUnJ2imJ+urJ2WoJmen6qzqaqqm6uqpKOsm7CxoqisrqWYpqqpqbGikpajpZqUkoSkaqR1iXqpdHqycIKliZmMcYigmoekYGBSq4R/roObdq6BpoaGn3qZloZ7ZoCjiaSZhYKjfal+gZSHrl58qVWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojY2Yj4FtmpNwbnl4d29sZmVlcnBmfGliXVdgaVhYVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVv6GZq6ehr6KesLSwr6mtoqemqqurqaSmoJuln5ymp6ajnKyaoqyhpJ+vop2akqqktbCuoKmbnZaUpqOQmqKooKClnLGmo6exrLbIsrWqrKmVkZ2copmgpbOdmqCUnZ+nrKykrpqsqqOiq6KzrqKqs7Ghmqqorq+2o5OWo6eYm5F8qmyehId1q3l8sG+CpIqJn5aVn5SB0ri0uMmAgbJfX5Spg6SIh6B5mJWaeKrJdJmjlaepkJOajH+biZrGxnhloYKlc4GfjoJ9r15wtWOxdUujhm2nR4KTZI+QnpJ8cJeTgHF7dX17bltlanNxZoFqX2FZZG1cXllJTUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz4tNU9UUR0cOzxGMiwkp6TBxritqbKtrKWinLK5rKqhppuopaqrqqegpqWYqqOfrqudpqCsmp6ppZ2ntp+il5OoqrayrJumnKCVkKWskZmcp6OfqaauoaOnqbC0wrGzqq2ok4mXnKSaoaOvppihlZmcpaarm7Cerainnqyjt62hsrmvnZuvp7Ozs6SUl6ejmZ+Ogp1OeJqBf596g6N9g6SEh6efnJ6ThLh7fHm5gn7MxsK2eJuhkYuffZqWlop2npiKpJijqH6whZ2FnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkqSXfH2Tkot1enOFf3FcbW94cmqCb1pkX2huY2RdS01RVEJJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu4q6+gm6Gss7Omn6CVpq6trqqnnaammqOnoLKuoqmmsqCZqqSUo7aiopWXoqm0uKScop2ik5ChsZmenKeloaKvrp2kqKG2ssOxrqmtqZGHkJynnKKknKWXnpmamqakqZqvoq6lppivpbytobe3rZ2dtbK4sLOmmJ2voaOehY/RtcO3eYeOhZGTkIGmeJSid4ygkYSlgYpxqoaEtG5yapmjm5WKn3yYmYaHj3OvgqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaNxcX+fYnOyuGh4j5SmmX6MjZOMeH15joJtaXhpeXNugHRdZGRubWZnYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWTc42Krb+/u7q1npanpK21oaOZlaOpp66qq5mmop+moaC1p6Opp7CjlKyjjqSto52QmpqqtLSknaScqZGUl62goJ6mo5ynnLSaoaqjtqvDr6mrqaGMhI6coaCmopWampyZm5mnpaaYrKiuo6Wbrqe+rJS9sKyforCzuau0p5qosaSnmHqokH18sHeKgaSliJxtsm+hh618oY6Dp5WYgKyIha6Fn5SpoKGWhp+AmZWAe5J+q4CdmpaLqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrrl2la3CFmV1gW4ygbZWSp5mDlI2XjHt7g5d/a2x/Yn50bYB6YGdlcW5oZ2hDWmFbPUtUMlU4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVlZXWFZVVVFIRklKIygovZKahKnGwrbBtJ+arKCtuKWjjpukop+wr6qfpJ+drZmeuKCjq6CvqZquoZCrqaSWiZqPrrCspp+nmqyXmI+soqGdpaGapJytmJ+oprapwK+lqaOfi4COm5qfpp6SlZqalJqapqWkmqmsrKOkoKqov6SXw6yqoqGrsrmqrqegs66oqZh2r36Qi5yFh3y6roqYZbCMZZWtfaGPg6aVmoGsioSwhaWZpKGhkYWgW2xqgbNgf617e4KBsWxnb5mXjIiwW320W6SDa8iiZZ+Ae7xZdrVasn1Sr4B6rFiAoW6YkKibi5eRl5d8eY6dfmRzfmKEeHSAfGFqZ3FtZmVlT1VkXEFUXz5KKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjm6ympbaooIuaoJ+cs7Opn6OfnbWYoLOoqquer62erJuVr6iijoibjq+sqKeip5mukpmPqJminaWfmaOipZmfo6myqLyvpaienY59i5uVoKCZj5Kam5GamKmgoZmorqelpqOlqbufoManpamhq7S1rK6mnrutrKyVgKmSo6+Om4CHpJeYkIGAuMO6g46ck4SnlpyCrIqCr4imm5ulqpF+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGqjgW+rhG2df3qysMeDaquwvax4d6K+vHSBlo6nnJCbkZideoKRm3pjfXtkjWd5gntga2VramJQYVtTalxAVWFDTio9OjQvHh8kHiUyIB0kKDA0OTY2Nzc7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbO0sb+5sb2yop2upqWypp2MmKW/qrixqKG/pqaynJ6xnLmonq2vpaeUlLCrl4yDm5GupqOsoaScqZ+Yi6OSpp6nnJqgqKKYnqCsraq5rqijmpeSe4eZkaabko6RmJiPmJSpmqCYqamhqqehoqu7nqnFo6Cvo6qztKqvqaC6p66umnN1qqS3hmWJoHBnrY+Kj21veKSPmZ+Bda6ZlXCPi3GVqKObl66kcm1tbWWKeG9tgplxgHlpcWlniZaVmHFoaYSGZ3CGZF2JY2pvWV1nfnemYGJxjpFvZWSAjZOPopiYmZKXn32HjpV2Zod4aI5reX95ZGxjZmxiS2RXSmxZOlFlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6m5ubKzqqmhrp6jsqmYkr6yw8i+tqqewKuso6CnrJ+6o6StrK2mjZeuqZCMhZWWrZ6mqqGfo6OgkYukkqeZqJmWo6mglpylpqevuqusmpuSknuEl42lmI2RkZiUjpiVqJWfmKmjm7GnnqOsup+wwaeks6assLGqraunuKOtt5aKoKiltp2JlqKYh6makJSdk6qzmZujq6CxlqGhnZ+inKCkoZWrp42TkoyHkpyclJCak5iQjpWFgaSal5WNi5KSio+GhH1nin90gnZ0h4twp217lJGTkoGBjpCQj52UoZaZl6KDiJSNcmmQd3CLeHd8empsZGRvZFVgWEBpW0hjYU9aK0Y9KychNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRGSktLTVBQUVhVVlleYGFjXF5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKaWqaqltbaurqKwpK2foLWxkI6sxr3Eu7iqoqWem6aesKijtqedqbWmqJGYrKKLiImPnKeWrKSgmaeenpOVo5aomqiZlKaho5CbqJmhtbqnq5iakI18gZSLoJSKlJGVkJCUl6WQn5qqoJy2o52nrLenrsGuo7enr6+wrKmpsrigrryZkaWkpraikp2mn42pn42Sn6Osr5uho7Cor5ejoJyjqZ6enZyWq52SmaGblJCWqpmNmZmWkJaekYmgnZWUhZKMkI2UioB9ZouGdYZ2eYiDc5xqhpCUlJCJfYyWkpKXk6GTnZeihIiYh3pylnN6in9yfH9qb2RecGpgW19ZbmNQYGVQWzpHR0U+Mj09Ny8rJispJh0mNDA2NjU4Oj09P0FBQ0lKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWJhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaetoKe1qpCQnaWzu6+srKKjmnqdorGkpbCplpu4pqOTmaqcjoaKiZyjkK6fo5Wnn6CSlpibroqqlo+omaeMmaiPnrm2pKWYm42JeYKTi5qTiZWSlJCNkpeijZ6eqZ6euKSAhK+1orCvdaS+o7Kgd3mgqrG7lHWspJ6JgKp/ZFxidqCOpJ6El35uk7Odo6etqqNlnZ+Sc3mZl3CAmKiXbH+iqIplnKWckZeYlYuRnJCGnZqQlYOSho+OkomEd2qOh3aGcXyGgIBhaYeKlJKLWnWVkGhoj45yeqaZmWV5mYeCeJhqg4qDb3mAa3FlX3ZwbGtoXGZlYmJwU1w+TU5OU0c+QFRDOjEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTVRUVVldYGhmZ1dQSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mm5Wmo6GvsayrqaWprqOnraWSlqu2sLKmmqqnq5dzjJ2wn6irp5OXuaCgj5yknZF/iIibno2smqKUp6GejpeRnoR1ro+IppqokZekiJu6tKegmZiLiXV3k42Wk4qUkZCUjJCToI6boKeZnLKWgIyctZ2zjJKPvKegfqeieqKut4GOjqaeg4uGkLGpr4yKlqOaeYGLrIacnaKnqaeHlYWYd6WbeoebgZemgoJ7nLF6ioWgl5mUmJWBkZeWhJmZY3mHkISOj5GKg21wj4d5gHGAgYV/hnSGhJWSeJZoknSgmnR9mYShnoeYfpKLg4OZa46NhWx4e3FxZ2R4bmpsaltla2pmdFxfSFRMUUBFNS5ZVVU3KSEwOT0+NjQzNTY4Ozo9Pj5ARElASkVKS0dTWFtZW2FgaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mrq6rqKygqLGmp6qlmZSuyL6woZamqbWej4OdrJynoqCNkL6emo2fmqCQfYaPmZeIrJyhlp+gkY2TiIaAkaiNh6Kco5OXnoaeurKnnpuSjoVwdZCJlZCKlI+Pm4uPkp+Sl6Cklp6siJ+0ibSarYrKh6quiLeFjK+CsK6DqY2lmI2dfKiPcnt3nI+nlmiVpHm0i5+epqiSmMKBf6uImKFxnoCZpH2XhZWxgKF8oZSgkJiWgI6Tm4qXkYt8hZKGjZSSiYNtc5CFf3pyhoGEfIR1hIGXgI/FZn+ph4+ja56DopuDmoCMjoWKmXCOk4Vod3R8d2hodXFnaGteZG9tZ21YaEddUk0yRTQ2TmFjNyYzPERHRDk2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdhXWpsXFFFPUtNQEpkWV1jZmhnYmJiYmNjYF9iYWJjY2NlaWljYmJiZWNhZmNiYmmUl6KfsKipqKWroKS5saqrppqUoKOkqqOWpaq3o69/oaecpZ6diZS9mpONoZGdkHmElpaRiKuZm5uZoYWPjHabnI+fkIiepJuVmZiGormupJmcjIx+Ym2Pi5OQjZCMjZiLkJKfj5SgoZmhqH6hp4etnaCWrY+enJ2RhYCgjaquhqONqZmMmn6idoCZlGuCrHVNq3iHjZ2Rm6ingKmrfYOhe3qnaZ5/kmtnl4aXtomefW5gZFmDln+Me2RoinKZfXmVbF17lm1fU3CDXF9reYNgWWWCfYOAl3CnqmuDo25ypXCfhJ9pZZ9sW26KfGZaYIN/YldQb3dmbXRya2pvXmpwbWxqWGlPXVhGOUE0R0RfazQsSUNRTU49ODQ4NTk7NkA7Oz1BTz5RUkxNQkpcXV9XXl5idmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhY2lrZGJkZGdkYmdlYWNol5adoLmhqqOmrJGhtrysrqOZl6CipaytoZ2utaKokqGgn6abmY2YtJmQi5+MlYx1gZSSjIqmlpWYnp5/koWFrKSHm5CKmKiYmZqRh6Wxp6KVmoiJgGluiIiLjo6Ki42Si5CSooyUnqCcoqV/k4GPo6GUoHeclo+ng6Gnf4aprISleIp8hJp9onByk4iWe56MeW2HnIyZkJuomo+HnXuConN2pmaefnakX5h6fZJzom6Yt7S6dJKHgn+1qGSBxrh7cJW3i3GAmqRjc6yrYH1qnbN+bnyGgo6Ci5hxf6NscqNznoSApGCcmLOWcXyXn7R0c1uesoNqYm90dnJob1hrbHNzZl1pXmJLRT1ENVFBWnIyPVNHX0pSPTwzOTU6OjZEOztASVE/VU1OUUBFX15bWVhgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLe1rq2gm6Kco6OmrZybsa2sk5ehmaGkmZqUnqubi4mSeIuGcICWjYmPoZCSlJ2XfZCJjqigh5iOipGik5uajIqoqKWej5aHhH5re4d/fZCNg4uQkImPlKCDl56gnaCfi4l3nJiijJ9yoYuHqIibpY+Wp6p+rYx+eqCZeqOTeIF0loiNnH2WoIebjpmbpoaiZKF8iJaQm41snmibjW6amXuAiqd9cmh0q4Odg3SqZ5SaXZuFdoSdaKpqgLhmXKhwgZxhlYxep3Z2iIl/nmiadYaTkpeOf59umpBtp5ldqH54u2t+qluOhF20Z1xucnl4a2lccWp5eWNgZlhiQVFFTjdWQ1JuNEtaWl9OWkRAMTUxOzs3SD86Q0hVP1lSWV0+RGJeVmBRYWN9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniWOUm6u6srCsnaacnKifnq6bnrCorJ2XpJqhn5iWlqCjmYaJjWqIgHJ7l4iLlpaEkZSYj3qKhJajnYqUj4WLnZGcnIiPqKOgmYuRioCAaYCGeX+XjHuIjo6Ij5aaf5Oin6Chk5hyaJ+Kn4+McJKMgamHmJ6ip5+nfK+to6K4l3ejs6KkgIiUeZ17q5p/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmX50qlpdb3uWi3ieYkx+enqFY3mXQkyeWaJqcXyObYGJhJl1m3iGibGzf3+bk6d2gZ1tcn2Ub5lzaqRdlXZIZWNgc3F+f25mYGxpdntkZWJSXlddVVZAWUZRZ0RTV1tiWF5JRD1COD9BOklFOExFV0FWUVtWREZiXFpgS2BtfnFFQzxVX2JaZWpWZ2htb2JmZ15hYVxdXmFoYl9lY3ZsXmVnZmtkZmxpaGtpk52Bsa2ZhFReoKazubOzqZqijJyrnJyplKGrpKGoj5+enZqZlZignZaIh4l3hYFueZWFkJuLfJGTlohyf4iSoZtzkZCAiJiUn5qEjqmcmpSKi4p8g2yEhXGCoYx4hY2IiJKYlXyTo6Geooiuhn21hI6enHullnqpgZWcj4qgnHynaHdtfpl0oXNxfJ6GmXCTg659pIOmnpqAo29eqGd1o2NvpWGc05B8e5l4cnNjooWQfqNzo491a5Czi2CCmIlzqrKovH93g21+vqaptF6cbn1xl26Ac6JyXaRnc6ZhaKZtm9SZfYSab3h6l2ube3eXc22ppGdgZXlwgIRrZ2ZkbnZ3Z2BjU1tmUVFhSFdJVGBXU1tlalxlUUZDS01KS0JKRThQQFFOV1JZT1NRYGZlaVNjd3l3SUZFY15lWmhpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7GrVFxLfqmvsbSws6ObmYWZqKCgpI6kqKCYqYqZmJiTmZOSoJiOiIZ7cH2EaH2Pg5SagXeRjo6Jb3+GkJOSbJeTfIiRkaOVg46qmpSSi4WJeYN2iIBugp+Hd4CThoiZopZ6k6Kkmp+Js6Gitot6rKekrqVwqICakIWAm5F7pIChmYaYcp6Eo66vipeMf4ykjZaDrqGUdrS1tcmhc5SKgZ9gnZepbXmVhqCbdaGHd6B+kZaKgG9MZqOScJuHcqR7eXRhg4FrfqBrcWRgnHJ+dJdpemmztbTGpnOYfnqda5ybq3WEm211d5hpmnp1mHFQRX20Xmp2a3mIZmpoYnR1cG5WXlRZaVBTaElVTFlTVV1oa25WZ1dNSkFKTUtISk5BUUtQZWNpbWV1c3N/eXxudYl7e1RQTmxeaFtraVJqaGlsZ2xmY2VfXF1cXmliZGlre19dZGhjamZvbWVpbGWhnIivpoRmP5Shsquvr7aiopCAl6mioqWMpaednaaCmpeWjZeQj5yTjoiDeWp5hmWDjH+XoHl1j4mMgWmEhZKDjIWdjXqMipWlkoOXqZeMkYuBiXqAfYt5cJChhnmBlYeJlqCVf5SlqJyWloRmbnicbKJkfHGld5uYcGemgJaLe6R6n5aDl3KedoGKlJaPuW6QiqJifZmhlYhtcmmranWgbW6mX5ppi5BoloealXWigH2aYIuFjHRviGJooGWefmmadW9jZoiCbXKiWl9bY6FtXYmMb3t+c3JkpW13omRnp2iZc4yZb6JvU4mQb6BfZadUi15UmG5tc2tygm1waWt5c2tvUllXV2ZaU21JWE9dSVhpaHNqWWtWUVJFVlxMWFJhVWhqX3d0en1wfHxyg3t/c3aNgIR2XlFyYmdicGdQamhoa2xuaGRnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKSYpnpldG2Lp66kqbCxpp+LgJernZ+ljKKhmqKigJaYk42aj4uYkI6Ke4ZxgIhoi4t8mJtzdIl9kHtkgoeViomVmYJ8iIaWp5CAoayQhZCKgop9gICOc2iPpYR9hpSNiJigjoiTqqediaZ4lpt/pIiWjLKYnpCCr5efpXeUh3mpdKSOhJpupKKMkoSMg7tufaWvgoaGhpOWnKB8pXpxqJWglmaefm+rY5aKlZJ3qGypooGJdYeCd6uRpodqkbBrdrOMqWuKhm1tn56SlWF/q4uqdn9/jKWedp99hKSVnaBqm4h3rGefrY22dHe+jaSTWYOmjathdXJ0cHx0cWNqfm5obFNWW1ZhYl1rTV1SXUldbW12YFtxWVtgWmd0ZW5vcWNxdGB4en55cnmDc4R+gHt7jIGCgHZieGRjbXNkUmtnaG9scmpmaWFfXlxia2JtbHpvXFxiaWJsandtZ2xuYpWlqp2BgJ6klqmqnainrqSZiYOYq5qepImapZ2pnYWMmo6GnJGFko2MjXSGeoiEb42EfpiTdHSGcpKDbX+LkoeGk498e4GFl6WNf6WmjoGOiYWVdoKHkm9si6mBg4uUjomcn4mNlKujoI+AdZSWiH6BeZSuo3+Bm3GPhXiPioN+e3KmjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3p9iWuMhVt5eHJ6cGhufpKJcX90go+Uk3GFg4JljH9egX+Ld3VzlHVveW5uh22EhV52aHiOZYCBhY6pm310fJZqiYhvgHZ9hnZtbWeMc3l7mHiEW2tYeY9pbndycW94eHBdbIZuamdWWmBXXWVrY1ZhVV9RX3B4eWxrdmVqa2p2fHFydHNhb3VidHuBeHV6g3aAgH+AeIuFg317bX9sZHhuXlduZ2h1a3hqaWpkXGBaY2plbHF1blpbYmtkbGx5bWhsb2GOlLiopouhopqmpJmknKuioYSEmKySnqGJmqabqZiDgZuKfpaTh46KiY1yg3yPfX6PhXuXjnNyhHCVhXt9kouGhpCFeH5/hpijjXunoYuGkJCFloOGjph3coWpho6SnJCInp6HjJuon6Cqg4mNlJp+fomWraiPkqaPd2+dkYJ5kW99qIVwfZVxa3B9gZ+Mf5OOjGhtXYOLjJybno5zlYuIcXRrgXZ0gVlyboeRgX1+jGpdamR6hYOIgF9peHqbe4KLgnaBhoJnd4qGa2FwcoJ2X3KLgYmPppWFZoyPg253i4Rxho96cGZnZHuDepZbXGpnbnZbe3l3dW5zc4JmXG2Ka2xjWVleW1lscVxfYVpeXWZ0fnt1b3Rja2tqe31ye3h0ZG10aG18fnZ6fHx6eoCAfm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtobGtxcm1XW2VtbGdzeW9oam1gi4upsKGQo6Ganp6Ynpmoo6J+g5itjZ+ViJuikaWVf3uYhHySmYmIhoeKc32Ai3aFi4GElopxb4BymIaDfpOEg4aKgXqAg4ubn4+Cp6GHeI6YiZWLi52XhYN6rYKRmJmUip6dh4ihq5+ioqOLiJObnKOZlqqhp6agkpuHlY17d42OhKd+f5KRkpOcsaablZ6QjbKTmISljIyVm5+JkJuCiJGKa3yNd3hlgoaQinyJnYSHi5CIiICFhJB3fHl0mqGIhomeioSUfn2LgYF1cHOFg393h4eKkKaRhIWNh4ONkIx9iIuJkIJ3bIKEfXqZanJoYXSKcH16d3ZvdnSBXV5vh2hvYF5aXF1TaHJVY1xcYWxodXx8c29wZGtqaX98bnl/cWlwcGxmgXtygoB4f31/hXttgoyFfHp4fH16g3lOZHZqcm1wemRrZWJiYFt0ZnBmcnFtVV1sdG1peXpxZ2lrZYyHnbmelqKhmJWZmJSZpKGefH+aq46ejYagnIueln15lIN7jpmJhoSEhm54gIBygYd+iZSEbWt+epeGg4OQf4CGhIZ8hoONm52Sh6qfg3KKkIaTkYudkX2NeqqEjZKYlo+cl4eHm6afopqdhoORmpmZkJqmoKWdnZCWgJCKdnuHjoSle3yOkJGGmKqhnpOdkI6rjpGAnoyIk5qego6XfoaNgm93hXF1YX6Cj4Z1i5iBg4+ChoR+hYOUbXh1dJKiioyFmYWEjXSAiXx9cnJ7h4R7eIuOhJKmj4aDj4GEioqKd4aIiYx8b2t+gXxuaGxtZ156f2h8e3Z0dnV7d1xgcH1udWBjW11eUWduVGVbXmFraXZ6fnFsbGRrameAgGxzgGtsdG95b4R5bYaAdoKAfYR2cYKNh357e3x/e4KKYGl7anVoaYJlamNgaVxkdWhvYnRtbFVjcXllcHp6cmVpbW2LiZ63mqGjn5KRlpeLmp+fnnt4nqaRm4qHpZSLmJl5eoyFfImRg4yCgoJufH94c4GFfYuRfWtofYGXiIGIjnx9hYSHfI+Aj5ubkYinnX9wi4uMk4ehoYqFjXyokYiQkpeTlpN4jKOgoZ2Wmn+AkJqYkoyao6GjmpeRm36NhHiAg46HoH99jI2PfJikoKGTmZCQp42QgZuRiZKXm32Skn6GjYF0c4JwdmB9f42GcoqVfIiMcYx/goWGjmh3cXiMmJGPf5Z+h4pygYZ8fXB4e4uEenqRjIOWpZOLhpB8hoaHhXaChIiIemVyfH94enFsamZefnNofHV2dHxzgGpeYHR2cHhkY1lfXlJraFRlWV9haGp2eIFxZmtjbGhlf4FrbX1ob3FrfXiGemuLgXOBgX6BdHaCjYZ+fHp/gX1/j2pyg25zaWGHaGxiX3FWdG9tbmB4aG1XanR2Y3V7enJiam55iY2espKlpZyOkJiPhp2hm518dqSgjpd/jaKKiJqWeHuGh36DiX+JgoF/cX97dHaChX6KkXhnY32Gl4qCio14fYCMg3mWgJWXlo2VoJt+b4yCkZSGppuHjYmEppWFk4uWl5OSd5GdoaGXlJd6fo6Yl46Wmp2knZiSlJt5j4WCd4SWjZ1+gYmNjHOXop6ik5mOj6KMjIOXmIOSlpl+mI18iI2BdnF9bnpkgHyKhXCGkn+QgmyHgoGAiYRldW97h5KXjHyTeIuJe3+GfHtxfneJhXmEkIqLl6KVgoSMd4iEg4J3fIKJhXZgeHh9dH54Z2xkYX9pandzdHV9cXxiY2FzbnVzbWFaYV5bbGVSY1hgYWlrdnmGcWJqY21laH2DbGh0aGxvaYB8gXltkIZxgIODf3R8g4yBf356goN+fJBtdol0dG1limxqYmN1VoNpcW5geGdsYmp2cGZ5e3lxX3JshoWPnK6XpqiejY2Xh4afk5eZfXiqnIqZepedi4yYkHl7gIt9fIN7gIOBeHR4enN9gIR/iYuAZF59i5WHfoWHdH1+iX99l4SXk5aMo6GYf3KHe5SSiqePjI6Kk6CSg5KQlJeRi4GPmKCakpCRc3+NkpSJnZ2eppeXjZWWc42OimuFl4+ZeoeIkIlvl52ao5OVio2fjIeCkpx/kpKVhpmIfImJgXlxeWt1bHt9i35thZKClHdwgoN9fop/ZHJpe4CWl4R+jXOQiIN4h351eIB9hoB8g4yEjJSkj3mEgnSJh32AdHaBiIRuYXt1enF9b2FvY2R7Ym5vdnN4d3N0YXVfb2x1bm9cW19eXmteUF1YY2FobXR7iGtfamVqY2h3iG5mbGhqbGiBfHt3b5CHc4GDhH1zgYaJeoJ9eoGEfX2OcnqLeHhubIdraF9pcmKHaHJvZXZnbmxheWhrfXt4cGF3bYuAmZmqoKOonYqLkoaKnouVmH13rpiMl32elJGWlIh3fnuKfHuAdnd/gHB0c3tvhX2BgIp/fGFcfo+Rhn+EhHN6gIZ6j5GHkpGbkqWclYJ+gX2Oi5KkiY6KjZiajYaRmJOWjoqIjJKck5CMjG6Dj4+RiZ6ZoqGXlomWkW6ImYRmhZiOlHqJhZCLcJaalKKSkomLmoyCf5GefJKPkouZjnuKhIdzcnVrcW50e4t0boWQjZJxdIB7gYGIfGRwbHh9mZN9hIh0kIqAc4h5b4B9gIZ8hYyIhIyVqIx7iHx+i4V4fnFwgIWDY2h5dHVwfGJecGBrdF5want5eGtzcGV4XW1sc21zWFpeX2JrWlBXWGVjZ3Fxf4dmXWloZ2JncY1vZGlnZGlogHp3dG6OhXSBgoN7dYKJhXeFfHiEhXqAiXd/i3t7cnmDamtfcGh0gGtyb21xZ29sZXxjboB5dnFsd3eKfqKXoaigppuHjIuBkJyHk5x1gaqUko6HoI2Wk5CAdHt2hXd4f3Jze4VrcnB6bYp2gIGHbnFbWH6RjYiAgIB2dYCAf6CGkIqSnJehlJh4in+BjYmcnoqPhpKYloWJlZmPlouLjY2NnYqOkINtiIqQkYmclqGcmJWFl4hqhKOCZoWdipF+i4OLgXeTmJKfkpGJiZWOf36QmHuRjY+NmpJ8in+CbnVwbG1vcHuFaXODjpiKcHd/dIKIgnhmcm91gZmOfIiEepSReXaIdHCJe4WMeouGg4mOm6OIfIR2got/eHhva4GDgV5yc3JxcHhaXnBgcGpeb2l8enBtbWpsdmBwb2pybVpYYWFiblhRVFpmZ2N1cISCYl1rbWRiZmuTbWBmZl9na4F1cXJwi4B1f4OAeHWAi4B4hX93h4Z3g4V7hox/e3aKgGpxY3xjhnxvcW10amhvbHZ3X3F/eXt0dXSAgn6klZqtnqaWhYyDf5eUg5CfdYuflJOGi5qMlY2LenJ4dIJwcoV0cXWIa29tdW2IdoN+gG1uVVGBq5SHgniAdnKCeYGggpGBk5KYnJKaeJJ7g42TpJqTjomVmZKEh5eZjJSLiY+PiJ6EkIp8coqFiY6InJqfmpaUgJN+aIWch2eFoIeSg5GDiXGDkZePm46QjYyQjXh7kpB6jouMkZaMfIh8gGt2am5ra2x6f2F6fo6WgnZ6gHiDjHx5Z3NsdIeVi36IhnuTkHF6hHB2jHqJjHuJfYKMkJ6dhXx8d4KMfXdxamyBgnlgeG9tbHJ0Vl5vYnJgX2xueXBncGZmc3RocGthd2VdVmZgYHJTUU5cZmVdeXCIfF9caHJiYmVmkmpfaGRbZ3B+cGtwc4p9dnyFgHR1f4x5e4aBeIiDc4aFfoyMhHt5lXhncmqDYIh+b29remBqbnR/dF90fXiGeHRzhXx4oI+ZsJylj4KKf4OaiICMn3+LmpOOhYiXjo6PhHZ0dnOAcG+Fc3Bxg3BqaXZug259fG11c1JNgt/IktaTfHB1g3WDoIKTd5WRmZuQmXuUc4WQn6GTlJCKk5uUhn6WloiNjYiRjYicf46Ad3qMfoiLipycnZqVk3qNdmeJkYdsiKOEkoeXg4ZjjJGZjpWKl4yNiotxe5SIe46IipKRiXmFe35se2Vyb2preXlcgHmQjoF6fX5/ho56eWhzanOLj4mBhYV9lYtrfn5ugIt+i4d9hHqBj5Wamop8dniDkHlzbWZwgINtanRvaGp0blNeb2RwWV9rcnhma2piZnhyb3BjX3hgYFZrX152UE5LYGdjXXpxiXRcXGV2YGFlZY9kYGVhWGlzc21qcXaMfHR5hoJ1dn6Lc3+Gf3uJfnKJh4GRioh8fph2ZXNufGWHfm9wa39ZbG55eXNhdnp7jXZzd4p3eZ+Lm6+boJCChXeIlX59ip2HhZ+RjoWMl4STjoeBdHdweXFuhG9tbn5yZGR4cX1teX1qaGxjpJrB3K7voXNrdYN1hKKFkm+WkJWglZyBkXGGi6OXiY6Wi5CdloOAlZCFiY+AkoqJln6HenV/iXiGhI2cm5iYjo92inZuhomLfYqjhJGJnYWFXouTl4qPiY6Li4SKbXyWgX2IhYmQj4Z2hX19a31keHVpbnhzWIh6koaGeX6AgIWLfnhlc2p/iY6JgoKAjJaFa4F2boiQgo+Ef4J6f5CVk5mQdHN4h411c3FndXqDYnRtcGJqdmdSYHFnbFVfbnR5YXJjX2h9cHJuW2NyYWJXblpceE1NTGRnYV52c4ltXFxkeV5gZGaFYGNiXllqcmtua3N3i310d4SBeHd7iXGDhH1+iHt0i4mIloeMfn6Yc2h1cXlsi3pudHCAV3F6dnlxZXd5hoxpd4CJcn+ch5mnnKOShH1wjJR4eYudhIWhjY17lo1/mYiEe3J3cHNqb4FraW18dF5geHd7cXV7Z2FlfOvatcnD3IhzbHSBdoqaiI1pmI+PnZWTgYlxhYmgjYSLloqMmJR8jZOIg4mPe5GLhY+Cf3Z4g4Nyh4KTm5aUmIaMdYd/cISCiYaYoYOUjJ+DiWGDlI+HioaKjYeBh2l9lH99g4SJjo2CcYZ+f3F3aHZyaXN3bFqMfJKChn1/g4CEiYJ1YXNriIGPioJ+f5KQfW2CbHiGj4aRg32BfYCSk5CWiG9xeoyGdWxxbHJ4gV90aW5da3ZgUmVyaWZTX3B2dGBvYF1ognByaldnaGNpWG1WXHVMS0xlZ15icnOFaVtcZXleXmRne2BkX1xZa25mbml0d4p+c3OBfnp2eohzhYJ8gId2d4qGjpiBjIF7k3Zsd3V5eJN0bnh6fVh5hXGAb2d4d5KCZHaGhXGKlYWZoZqiiod0b5OLcneOnH2KmomJfJ9/g5l/gXhxc21vZHJ+aWZsd3hbXnl7e3FxgGphZ2F/1baOkKZ4bnF3e3CSkIyHapmOiJySjIV7aYiLmoeBkpGGh5iNfI2NgYGJjnuQjX6JhXp0e4J6cIaAlpmOk5SBiHWDhnaDf4qSnJ+GlY+ffohhgJOHhYiEio6Af4NnfZGAfn+CjI6Qfm2CfIJ0a212dHN2dWtijYGPf4V+fIR/hIh+b19ycIV7j4yCfH6RiHpwg2Z5g4qGi4N8hH6AlI+QkoRub3mMfnVub2tsen1jaGtqWW52WlJpcmpiUWJyeGxiZV1aaoNtc2FbZ19kbF9uVFtwTkhPZ2VcZ25xgGxbW2NzYFxjbHdkZV1dWmxsYm1qc3aHf3Fvf3x8dHiGeIWCfYCHdXmJgZKWfIiGdomBcHd5e4OTb218gXdeg390gW1penSUc2dzh3xykZGDmp+boIaIdnaVfm12lJd+iJCDio2afIuadn12cW9samF1fGdiaXV6Wl94fHptcX9lZGhnV52PXnFylrzEhHZxlImQfnKXjIack4yIc2uJj5aBe5SLgYSbjHyLhn18iYx/lIh1iYV2dn2BcXWGgZ6UhpWPg4Jxf4h0g3uJmJyXhpOOnYCIZX2TgoCGhImJcoF9Z32Le3l/f4eLj3xpgH2DdmZveHhzdnNsao2FioGKf3iCgISDf2pecXh6fYyJhXuBj4B+coFpeIKHi4WEeIN8gZiMj4x9bm17iX13dG9oaH12ZFxxY1hvc1NTbnNpYU5mdHhmYF1cWG6AbnNZZWJdam1gcE9ZbFJEVGhhWmtubXtvWltebWNaYm93Y2ZcXWBramNsaXN2gYNxbn57f3R1g3qDgnyBhXZ+iYGWkXiDinSBiHJ5eX6NkG9vfIFxaYF5en5tbXx2lWtqeIR0bJONhZ+YoJmFiG59jHZqeJiPf4KKgpWXinmPlm96c3BsamRgc3poX2Vye1pgcnx5Z3B6YWVljrGyd0piWqTZ0Jdxe5GLkHh9lYuFmZGNhm9shpKSenmShoGEmIp8h394eImKhJaAb4qHcXR+eml5hYOlkYSTjYN/b36DdoN4hZuYk4qSkJSFh3B7koN9g4OJg2+BeGiAhXhyf3+Diod8ZX1+g3ZjcHOAaHhwb3SYjIWCint2eICEeYFqXHB9coCHhYl9hol6iHKBbnGDho6EhHOEeICZjI2EeG5ufoR/d3tlaGp9cWBZd1pZcW5OWHJzZ2BLbHZ0YV1bW1l0fXJvV2ddZmpwX29OV2lSP1lmX1pwa2d5cVtbWGtlWWNweV9oXF5lbGhmbGlwd3+Hbmx/fYB1cIF6gIF/gn92gYWJl4pxgo1xe4Z8enmEk4x0anp/a29+dH99b3J8e5RvboB/eGeSioKhmZySgoZnh4RwaHqWiX5/hYKZioF8jYxoeHJrbGZfYW94bV9ib3lcZGyDemFxdl9lZdTqvooyOj6LjoByeYWIjo12g5eNfpOOjX9ubIWNjHZ9j3+FgpWJfIN4bnaHhIOXd26IhGx1e3RmeYKDp4yDj4uEfW5/dHaDeYWbkIuQkZKMi4Z+e5KHeICEjYNsgHJpf354bXx7goqEeGF5hIFxZHFofm10cXWBm4uAf4V+c3Z9gHOAb1tsfnR4ioKLe4aAfIh4enFsiIOPg4pygXl/louKfnRta3aAgHV2XWlpeHBZV3xTWnFlTFtycmVbSnB3b1xbWllddH50aFliW2dlbmNpTVdmUT1eZlxddmZfdHBbWVRvZFllcHlaaF5fZ21namxpb3d9jmxpgoR+eW6Ae3yAf4J6dYKBjJOFcICLbnd+gHt7iJOJf2h7fWp0e3KGe3N3fX+MeXiEfXxrjIyDm52WjIGAbI5+a2l/jo17fn+DlIJ/fYqIa3VxZ2hjW2Jncm9gYWxzYWhwiXphc3ReY2SboI9uXDVZr7V1aoCJfZKGdoaXhnSPi4p3cG2Fg4d1eYl4iX2TiHp/c2d2iH5+mG9whn1odnltZXmIhKWHgYeNiX5ufnV/gHyLmYeCk5CYiIuEiXyPiHF7fYR8aX5ta4B7emp6doKHgHJgd4F+cWRyZ3WCbXV7hZSRgXyBf293eXx0fmxXb352dIuBhneHdYKJenhybomAjoCFcn59fpKIiXpubmltgoJ1bl1oZnRyUlt7TlxxXE9ccnBjVktzeGpXWVlaYXGAdGBdXWBnZGhpZk5aaE5AYWRbYHZhXHRtWFdTdGFaZG5yV2peYWhrZ21saXB3fJJraISJfHxwfn57gX+CeneAgImLhHF7h29xd4N/e4qNj4Nqfntud3l2ind9eICCh3+Dfn56bYSMiJijjYSDe3aMemtthImReX17gpGAgH6Kg3BycGNmXllnX3BwYGBncGZqb4p1YXRvW2FkanZ7f76cpqPIuHGFhHOUfXiGlIJ0kI2IcnJwhHuDdHWHdIh3lIh5eXFjd4Z6gJNpcoR1Znd2Y2p8g4iegoB/j499cn5zhHh/kZCCeJaNlI+Hgoh6iYlseHl/dWh7aWt/eXNpenaAg31oYHeHfWprdGh7f2l2gYuQlH56fn5we3Z7c35iVXZ8cnOKhIJ9g3CGind4cHCDgox+fXl+fHWOhYJ1aXFpbIeCcnBeaGNzbktldUxeb1VUWXNuYlBPc3hhUldYXGFwgnNbYVxoZWRjamRQW3FJRGRhXGNxXl13aFVXVXddW2VuaFZrXmFqZ2Vvb2lwdnuTbmmIjHl9cnt+eIKBgnx2fYOIhoNwdoNybneCg36Ji5N/cIB8eHl6gYx0g3h/gYGChHqAdW9+iYuanoh9hXp3h3xodIaNkXp/f3yJhoR2j4Bnb21fZFxYZVltcmFgYXFsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhwjXV7h4+AepOKgHV0dX53gHBxf22EdJSGeHVsYHqCeYiOZnGDb2d1blttfYCQk4CBeZKSfXh7bYd1gJCLg3OWipGOh4WFe4CFbXV2f25od2Vte3ZtanZ2f398YWJ4hnpodHVjfXpndYaOjJV7dIB1cYB6fGx/WVZzfW90hId/gHlriIZzeWt0f4ODfXp9eHtyi4B8cmd0ZW2Kg210W2tfdWVIbm5MW2JXV1Z4bWJPU3R2WFBVWF5hcYRvXGBjbWRjXW5iVF1yR0NmX11maF1aemNSVVx1W1tna2FWal9gbmZma3FocHV4jnRrjox1f3Z4fneBg4F7dH6DiIiDb3F/dHF1foaCiY2Ke3d/eIR8fIWHeId8fYF+hYB7fnN2eYyOn42Jeop2dYN5Xn6Gmox5h4N0hYaFd4l6Ym5sW2JbW2FWanNjYFtnbm9nh3JhcWZXXWNrf3zKzoe5omptbYpscYRxfISKfnuShXp5dHl1dXtqbXVjhHWRgndwZ159gnmLiWVxgWtqcWNYbHuGnIiCgnOXlHd+e26HcYGJi4dxlo6QiIWLg3t5fnFxb35naHJibnhxamxxd318el1leYB3aXV4ZoJ2Z3SHi42UfHKHaW9+gHhtfF1YcX5tc4CLfIFub4l/cXZnd3+Bf4F2fHF6dIZ8eXJmc2Fui4Jsc1hrX3dcSW9rTldWXlRVe2thT1R1clFRVFZeYnSFaFxga2pmYlluYVhicEdBaF1gZl5dVXteT1ZkcFlbamhdV2dgX3Jma2dyZ3Byd4Z4bpWKdH96d355goeAdXOAhoWOgnBwe3d3dXqHhoeMhnp8f3WLfn2FhISHf35+fYd/fHh2eXeRk59/jH2LbXWAeWSDiJeGc5KKb4WFgXqDdGNuallfW11dVGdzZWBZZHJyZ4FzYmtlV1pgaX93vq57n7duYnOGaHR8cnqDhnp9jH94eHN2b3t2ZWpuYId1joFzamJefnh5ioNmcX1oamtaVm94iqSBhX9xmZNxgHh1gW2AgZCHcpSIjIeDiIV9eXRyb2h6YWptYG12amdra3l3endbZ318eGVyfW6EdGV1hYyGlX9vi2ZreoN0bHRiXG98a3R7i3uCZnWHfW1xZ3V+eH1/cnxsenqBendwZWxibYl+bW5Wa2B3Vktqa09ST2hOWXxoYk5VdWpMUFRVXmZ2g2ZdYXBoZ2BXaV1ba2hKRWtaYmRXWVV5Wk5WbWpZXWxlXFllY150Zm1kcWZyb3SAd3CahXZ/fnd/fIWHfXVzgoh/lIJuc3h6enNzhYeJiIR4gH12j398hImOhIKEe36Lg3t3fHd3mp2XeoqDh2l3fnxshIWUgHKPgnGGgn6Cf29mbGdXXVtcW1RkcGVfWGNzdWl2cGVlYldcXGiAcG9ygHOJZGV4fml0dnNzg4V4gYR5d3R1bmt7cWFna2eGdI2EbmZdX31ve4l9aGx3ZmlkVVdycI2mfIR8dpaQc3xze3lte3qQhHaYfIeGgoaDfXVwcmxndV1taF9sdWRnZml6b3tyWWeBd3VncIB4gnVid4WKfJSAbotqbXqAcGVyZWBseWZyd4p7fmJ1g3Zpa3F0enB5eHJ9Zn5/f3h2bmNlYW2GfG1rVmtjcVNMaWtQTE9wR157ZmFNVXRjSk5TV2Bqdn1lXWdzaWVfVmNXYXBdTEtrWGNhVVRUc1dMWHVkWl9rYFxaY2Vfd2ZtYnBpc25xfnR0mYF3f4B3f36GhHp9dYKEfpeFbnJ0e3p0cYWFj4KAeot1dJCAfYGUjoCFhHx+jIZ6foB2e6OlinmIhYRsdXx7dYSCjHpuhXN6hX2Bg3VuamhlVl1bWlpTYm5lW1hhdHtqaG1pX2JXX1ppgGprb4BnbGFoeXlrdHR0boWBen99dnVuemhqeWpfZW5pgXePhGdlWGJ3aX6Hem9pb2ZmXVVYb2iPp3aBenyQjnl1b35vcnV5jn93lHSFgn+FiHVqcnZnaG9cbWVebXNfZ2FpeGh7bVttgnJzaW+Afnl3YXeEhHiPhHOIcW95f3FicGhbbndkcHOIfHlic4BwZ2p4c3Jrd3Z0d2ODe353dnBkY2NufH1rbFZqY2dTS2xoUEdSbEVheGZhTVNxXUlNVFlla3d6ZV5tcGlkXVZfVW5uV0tTaFhmXlhNVWxVSlx5X1tfa11dWmJlYHpobGFvb3Vub3d1eph9d4CBeoB/h4Z6eXqDfoGThHF0dH56dnSFiJB9gH2QbHOUgXuCn4V/h32AfoaCgIp7doSsn396iIeEbHKCenaBgIF1bodvfIBziYBqb21kZFhfWllaVWJqZ1taX3WCaV5tbFxhVlxca4FmcnR9aWpda3Z2aHR3cW2Ge359eXZybHpoaXdmXWRzaHp3koFjY1Rlb2aChHd2ZmhpYFdWWWhkkKdufniAi456cHB8ZnhueYt7do5xhH1+f4ZuZHZzZGhoXWtiXW9vW2dfbHVlemhddIBvcmtxe351dWJ0hYp6h4aAf3dydX50YXBsWXBzYnFyhXx0ZHKAbGFsem9qaHl3dHFmhXV6enVwZGFkbnN+amxVal5eVExzY1FHV2JHYnZmYUtUb1dKTFhYZ2t2emRlbnBmY1pYXVh2ZVRKXGNYaFhZSFdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bW9udoOXeXKBgH1/iIuGfXZ2hniHjH1zdXWBeHp6goyOfX6EiWp0loF7ip19foV5gHp+fIaIc3GProx7e4aQfmZyiHp0fX12cm+GbHt+bI96YnBvYWVeZVZZWVdjZmtfXV1zhWhZcG5aXldaXGx7Y3B3dmxiW21zdGd1dXBthXl/gHl3bm90ZWl0ZVtndWZ2dpF6X11SZmZqgoFzfWFjaVxUWF5iY5ClaHl0goWQeG1ueWd3bXuEenWIcoB4fHh/aGV2bWBmYV9qYF10a1llXW9vYnplW3d7a25ucHh4dHRkcoOSfoeCiHp2b3F9cmF3ZFpucGFwcYJ8c2ZygGRebnZpY2Z5enRtboF1c3xzcWJeZm5vfWVqVGlZWVROeF9SSlpZSGJ0Y2FJVG1TSUxaVmlscntibGxzYmFZWlthdlxTS2RdWGlTV0dZYE5HaXVYXmFtW1tfYmJdhWhoYW54eWxuanaBkHlug36AgZKIhIF2dIl0jIZzcXd2gXd8fX6Mj4B+k35weJaDfZmSeYCAeHl+f3OIg3NwmaJ7en+JlXlkdYh5c3h2bHRvfmx5fHCRcl5wbmBnYmxUWllXaGNtZVxccYllU3JuW1pYWGBsdmRpdWpqXlptc3FsdHN0aoZ8foB8d29ubGRpcWNbanJkdHaPc1tWU2RgcX9+cYFcYWNdU1pgXGOSn2VycYWEkXRsanlsb296e3pxgHZ+cnp6emRldWdeYlphZ1xed2hXYl1vaGF3YVt7dmppcm93dHN0aHCBlIKGfoR2cmpwe2xmdldbam1icHOBenNmb35bYHBxYl5pcHxsa3N+cnF4a3BgXGVsbXthaFRnVVdSUHZbU1BaUkhjc2JgR1VqUEhPWlVra2t8ZW1vcWBbWlhZbHBXUlBmV1dpU1RGWlxPSHJ1WF9jbWNYYWBhXYtpY2RteXhrbml1eYZ7a4N9f4SZfIKEeX2Ibo+GcW93enx0goJ8i4+DgpZ0eIKUhYGfiXWAgIF0f4Jwh4J1b6KXdHuGi4d7ZniLb257b2Z4cHpsc3ZzjWtedG5hZ2VrUl1bVWdibGxbXHGMZE9vbl1WWFVnaXRoYnRlZV1abnVucHV1emuHfH98iHeQc2Nla29hXG5tY3N4h2taVFZiY3d8fHCFXGNfY1RbYFljlpVjbnCDhYpzamh6bmVydnN7bHp0dW96fnVfZnJjW15XYmRZYXVlVV9gbWRhcV1dfnBoaXNxc3B1dWtthJOBiHuFcXJmbnxvcW5TWmVqZXF0gXZzYm12VWJxa1tebmV8ZWx1fHJycmptYFlkamp4X2dUZVVWUFVuWFFXVFBIZXJfYUZXaU5IWFRWbWlkfGlrd2thV1xVW3RjU1JXaFFZZlRTSFpaUE54d1tfZmxpWmJgXl6PbmJma3l1bm9odnZ/fm2DgH6Gl3t/h4GKf2uTiHJndIB7dYCDfYmPf4uTcn2KkYWHn4Z7f4aMc4CGc32CdW6ljHOBjYt3eG56jGBkfHFmenN5bG1xdoNnZHxsY2ZnaFNfXlRnYGxvXF5ujmhOaW1gVFZTb2Zza2V4ZGVdWXB0bXJ6eHNtiHuAd5x7emthZWxtXmBvamVweX5nWlZYYGt3e3tvg15iXmdWWWBXZJyIYmtxgYd9d2tqd2xbdnFreWl1cm1ve4ByWGptX1ldVmJjWGVxY1NeYWliYmxaYH5sZmtzdW5td3ZraIWMf4h6h21xZW97bHFsYlhfaGhvdIFzcl5pbVNlcGVVYm5heWJwdnt1a29sal9YYWdodV1lVmJWU05ZZlNPXU9PSGVvXWNHWWlNSV9LWG1kX3hobn1kYFVeVF10W1RSYGZOXWFUU0pcWlFZdXVdX2ZtaFhiYVtejnFjZ2p3cXNtaHZ0eYNzgoN6iI1+fIqHjnpukIp0bHOCdH9/iIWHkoSVj3p9jI+IkZuEgHyMhHJ/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH1+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo2NjY2NjY2Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjIyNjY2NjY6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERFQjEvMDAwLyyApKCgoKCjgGNnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTUzHhwcHBwcGH6ppKSkpKd8XF9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9enp6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHiIeHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhoWDg4OEhISDjJCPj4+Pj4uIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk5CKj4yOj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6Ojo6Ojo+Pj4+NjIyMjIyMjI2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjIiHioaNhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCRjYiKhY6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkI+HjYyGjIiIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjISJh4aIhYmPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiIqKi42Kjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSTkpOTk5KSkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGRkpOSkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpKSkpGRkZGSk5OSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJCRkZCRkZKNkJKRkZCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQj4+Pj4iPkH2MkJCPj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Oj46Oe42MdoqPjo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjI5zh4pzhY6MjY2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg26CgnB/iIWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXV2d3VxZm1qcXNvZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZ2xnaWZybmhnY2JiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpeXGVmXnJsXV5aWV9bWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTlBTYWJZa2RUUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFloaGJpYlFPT05PUFBRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLS0ZDRkpNY3JrZ3BqVU5NTE1PT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQD9AQlBsc21pc3FfT0tLUkxISEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj1CSUI8T2lwbWRydGZFSl5URkJERUVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7O0FZUT5FZm1pYHBxaVJhZkVFRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5OkdbU1NjampucW1qaG1UPkNGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ok1jY2lsanJvbWtsY0A9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Qzs9Pl1tb3BtcW5sa2xPOz4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO11tPz5DS2ZycW9wbmprXTw6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/QkZEPjw8PUA9ODo7bXZIODw5S2tyb3Bua2dHOzg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBZUTw9PUlMRUZ1dk03ODk4SmxycnBtUzs8Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5STtdf4N/eXt3Vjw+Pz09SmZ3bVI9PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFIcnlrYoKEg4KDgH1dPkBDQEE+RXRWOzw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH2CgoGDfn2EdU1BQ0VAQEFOdmpIQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVwQkRFRENYdYaIiX5YR0lKTExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ1dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3d/hIWDhIlsQUFWdIeJh4eHiINXSExNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3Z3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINVbISHhoaGh4eIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSUhISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpVgYOEhIKChYaGg4KGhYSEhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWWFhISEf4GCg4KDhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJiouMi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIKDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo7Ojs4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd5e3p7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXGEgIGDhISEhISGiYqKiIeIiIiKioyKiYmMej45ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT47Ozw9Oj47OTs7PDs8PDk5PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXR2eHt7fHx7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA+PT0+QD8/P0A/QD09P0I/QUE/QUA9QEBAPj9BPT48Ozo7OTk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKCgoKEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5DR0lLSklGR0dERkhHRUJAQENFQ0NBQkNCP0BESERDRURFRUFGRUZERUZEQEI/PEA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGWIWCg4SFhYaGiImJiIeGhoaHiYmKi4yNjIyLioqIV0dMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkJHR0lZhYKDhYWGh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSklJSEpGREdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0dGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA5ODw7PD06P0A+P0BDRklJUF+Cg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1yTlFPTUxMS0xKSEhFSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4tfUlJQTU5NS0pHRkJHSkdMSkZLTktLSkpNTUxPUE5ISUtMT1FRUFFPT0pISkpMSktGR0hHRUdIRkVFQkFCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxYVlJSVFJPTEtKREVGS09OT1dVUVBPUVNSTVNUT01TTFBTVVZSU1FQTEpNTU1LTkdHSkZGSUpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9DQkZWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2hWVWthRVJRUVBJOztRU1JgdV1VVlRWWVlSWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLSEhKSEVGSUlJSElpcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklJR0ZGRT8/QUFFQkNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJdXVZdWlZFUVlaW1lfVFpnUlVWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRUREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSVFJWVlRaWnWDWVV9kGBcWF1fV0lWXV1bW19ZSVlYWVtdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent6fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUhGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNVVFdSUVdWY5aAUWVyWFpXX2dQYGZbW1hcZ2FHT1poZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnV4eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpbXF5UUVFQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXG1ydXZ1dHN3e3p7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVGJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSEJDSEdIS0dEQkFEQU9QTVNkc3R2dXN0dnp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz8/Ozs+QEA/Pz5qUUthRUZISUVCP0dMTUdNUVVJQkU/Pzw9PD09Pz0/QUNDQD88PUI+Sk1GVW51dXVzdHZ4enx6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXkpKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2dgbnJqbWxxdXt6fXt4enx8eHd4ZEJAQEI9OkJDQUFEQlxdT3tOT05OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztCSD9cc3R1dnV2eHp8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJSFBSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJYR0ZGSEJBR0lFRUZETVJQYVdSV1FQU1NSVVtPT1FXUE1JREY+Ojk2NTg3OTc5OjM2Njc5NTxCPWVzc3Z3d3l6e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LVFRTUVFVT0xSU1RXWFRUWFJMV1laVlhYVlhZXVdXWGhza11WYXNrYWFfXmRhX15ZVVBNT05MSUhKS0lIRkNRUFNaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NTc1Nzg1OTlHbnF0d3h6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTFBSUk9NTU5OTkxKRlFQVVlTVE5KT09VU1RcVlJVU1JPTUtJSEhGPz49Ojc4NzY1OTk2NzY3NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUFBQTk5PVExNSVBPU1RVMjxYTUlBUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMS09SUFJSU1RRUk9MTEtMTEhDQkE9Ojo4NzY7QjQ1NjY6ZG9xdXd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkZBRkdHSEZKREhKSEdFSExIS0hGTE1QTUcvRV9SPjNAPmpvYVJSUUBGVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RtcHR2eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmFlUFNUUlNUT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRUZISk1LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5U3BydHh7ent9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUV1dVTExLSD05ODc7P0A+PD1BQEI9PkVIR0NGRklHSkpARkFBQEZIRUpPSFBSYVxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSUpMTEpGRkZEP0JDPjxCRj9CP0FkcHN3enp7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47P0JAQD5BRElFQ0dHSUZJRUJCPz49Q0JBR0pFTU9iZVFNTk5XS0xNS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES25vdnl5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxAQkJBREVHS0ZDSUlHR0hDQz9CPz9AQT5ERUNLTlFUTEpJTVRGSUlKTEpLTElKTE1PUFJQS0dDS0dDQkpKTE1PTUlKSUdDQ0NESUpNTElZcm13eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFIS0NHSEhHSktJSktER0I9Pj06Ojo7QEI/PUJCQkNIRkpMSkRJSUZHR0NDO0FAQj5AQENEQ0lNUEdJS0dIS0RISUtNSEpMSElKS0pNXVJISERNR0FES0tNTVBOS01KS0ZHR0pNTlFOTGJtaXZ2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjpAQ0A+QkNERUlGSkpMRklJR0ZGREI7QkNDPkBERENFR0xOSEtOSERIRUlMTk1ISUxHRkdJSUxOS0pIRU5JQkZNTE9NT01OTk1LSUhJT1JRUk5SZmZmcW9zeHV7enxsaGpuZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pDRUZFQkNCRUBEQj5APjo7Oz06PT5DQT5BQ0VHSkZJSEtIR0dHRkVDQD1FRUI+QkRDQ0VHSElHTVBKRkZHS05PS0ZISkZFREVJSkhLSUZIUEtESU1MUE1PTk9PTktKSE1SVVRST1dkYGFtZ3Byb3J5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0d2xqdXVtcnZxbG5sZXJNSERFR0NCQEJEPUJBPkE9Ojo9Pzs+PkBCPkBCREdLRklGSUhGRkdFQ0JBQUZGQ0JDQkRFRUdHSEZMUUxJT0pKTExJR0hFRkVEQ0lJSEtKR0tSTUJOT01QT09PTk9PS0tLT1VXVlVUWF9eXGlhbWluaHJzYmVmZWRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWpzdW51dHNxcmprc01HR0ZIQkJAREU8QUBAQzw4OT0+OT88P0JAQEBERkhFSEZGR0ZFRURDRUNESUZDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISUZDSUpJS01LT1NORFFSUFFSTk9NTlBNTE1TV1ZXWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bW91b3JzdXFxaW96TUhHSEhCQkJGRTw/QkJEPDc6Pj46PjpAQj4/P0NFRkRGRERHRURFQ0RFRkdKRUVJR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xMT09SVE9IU1VTUVNQUU1OUU5NUFdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnBycnlOSUhHSURBQ0hFPEBFQkU9ODo+Pj08PEFCPD8+QUJGQ0VCQ0lFQ0VFRkdHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05QUlVWT0tVV1RRVFFSTE9RUE9UWVpZXFpZW15eXmBjXlxhY2tiYGRnaHKFaGdqZmptbnBvbnNyanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZwdU1JS0hKRUJFR0U8QEdDREA6PD5APz4/Q0I8QD5BQUZDRURESUVGRUdFSEhGSEdJS0lGSkhIS0hGRkxISEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUFZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd292SktMSkxHQkVERTxARkREQjs/P0FAQEBDQT9CP0FDSEJGRUZIRklGRkRJSEdJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5PS09QUlVYVk1OVFZUU1JRUExOVFNSV1teXl9dXWBfYGFhX2FjZWJjaGJkaWpndotsamlnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dLTUxMTUdDQ0FEPD9FRUVDPUFBQ0JCQ0VBQkRBQUVHQ0dIR0dGSkdDSElHR0pGSUxISUpNS01MR0tJSExLTlFLUlFNU01LTk5PUFBPVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5gYl5gZWFhY2luZ2JpaGhueHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xOTExMR0VBQEQ+PkRFRkNAQ0FFRERGQkJFR0NDSUZDSEpKSUlLR0RLSkdISklJS0hKSk5MTkxJTEhKTUtaZkpkXEtsU0hPTl9uVWtzW3FwYndjUlBhdnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5TE5KS0pGQz9AQj89REVGRENEQkVFRUZCRUZIQ0RKRUVKTE1LTExHR01KR0lLSEtLSUtKTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXhtbHZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0JCPz5CRkdCRkNFREVFRENISEdERUtHR0xNTktNTUdKTkhKS0pJTEtKSktNTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9QEBGR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSUxLSUpNSUpKSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSURFRUNBQjxCQEJGREdGTEhFQ0NIS0hIRkpMTEZOS0xTUkxHTE1ITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25ub29xcm9udXN0dGpbXnRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eHR1a291bXRvbnNzdnNIS0hJQkVFRUFAPkNEQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTUxJS0tLU2tiWmleX2ljcnJaX1lqb19lZVVrX2NbYWFRYGxoXWpcb2ppZFtwZmRwXFpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRUVER0JISkxIRkRHS0xJRUZKT0xJUElMW1FKRkhIS01JSEpJS0tJSElHS0tMTEZIS0tMTExLSUtMTlRbXFRQVExQT05PT1ZRT09RTk9RSklOUFFlcmlUWVdbW1xVWVpdWF1cXGNmYWFlYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NIREZHQ0lLTEhGREdLTEhER0hQS0xPS0xXTElFRUhJSkhJS0lMSkhGR0dJR0hJRUZMSUpLTkxJT1xXXlBcW2BeT1hZU1xcYl5NWVpNWGFSSllhWlNgZFxhWFtkZFZWWFxZWlhcVllcXWJeZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRUlFR0dGS0pLSEVFSkpKR0VISFBKTU1KTVNJSEZBSEZKSUtMSUxKSEZFSUdERkdFRUpIQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOXlxeU1teY15aXWBjYFlfYltgXltUWFdZXl1jYmNhY2ZpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNHR0VIR0hLSUlJREZLS0tGRklKTktOTEhMTkhIRj5HR0xJS0tKS0tJR0VJRENEREJGSkRASkxKT1tjWV9eYV9SVFJXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV5eY2FgYmJiY2NlWlFZVlVcWl1jYF9fY2ViaG9tbmxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLRkNHRUJFSElGR0hIRkZKR0hGSEtJTERES0pOTUxLSEpKSEpHP0dGTkpLS01LS0tJR0dDREBEQUhJQj9JSkhPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU5eUU9cX2FjZGNjYlxkY2JkY2ZYUVVUUltYWmFfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0VLSkZGRkhHR0lGRkZJTEpORURLSkxOSkxJS0pISUZCSEhRTUtLT01LS0lIR0VEP0VDSEhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pWXlheW11WWWBSUV9fYWJhYGJiYGNiYWRkYlhPUVFRW1NbXV1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0NBR0ZER01SSENRSkZISEhFRktKTVBFR0hKS05MTElMS0lJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VDV1VFXFReU1ZfWE5UVU5aW01KS1RgYVtfWF5eYV1PWWJcYGBfYmNiXWFiV19fVFBOT1BYUl1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQQ1ZeSUdHSERGTUpQUEVJSUpLTkxLS01MSkpHREpNUVFOTk9NTkxOSEtBREFDREZEQ0FFRkJNSEJLTFBPTkxGTUZHSUpIR0xMTU9QSUxPUE9TUExRU1JVWllXWVhYZFdPU1RQUE5NT1VUW1lZW11cYGFkZWNnY2tscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHR1hNR0hKSEdNTFFRSUxLS0tOTlVOT0tLTEdGS1BTU05QT05PTk9IS0VgRURfTERmY0VNW0leW3JtT01VbVlMQ1BgVWxXZ0pdV1VeRExRVUxNVFZRUlRYV1RYVVRcVVBmWmhoZFhTa1NWVlVbXFtgYGFhYWJgZmhmbmxocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09TSUtGYFRISk9KSU9NUlFLTUxMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzWFBtSHFub2FWUHFxc1BDa3NtcXRwU29fW25YXVZcWFVraFVdVmNaYFlbYFZVV39qdHV1X192X1hhXFxmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1OQkRMTEZKTEZRVkxLTklLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWVJUUXZndGxwYm5malFyT013bWpycHNycXJwb2+AXWZ6dXhxcXpxfnN9a3V9YlJnfGVzc29zcnt8b315b39yX2BgYmFaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQTk1NSk5WXllVTFFTTllaTVNTUk5MT0lRUlRZV1dQVFBQUFFLR2Z4bGN4cm1aS01VeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JSaXtsaWp6en1seHp/b2dvWHZ2anV1cIBgcmd9aWx4fG9eX19iYVtdYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0JFUFBISktKTFFPT09NUFpgWlhLVFdQYV5SVlFZU0xPSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VEtoeH14YHl7c25hXm1vY1JncXVubXlwd2x2dHRxbG1cdH56a215fGt0bXxrcHZ1eF5fX2JeXV9kZGlnaGVlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUElMTUtMUVFRUFBRV1xZVU1VWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGV8aXJ8XVRLbGB2dWtpdnx7bX54a3xwXV5eYltfYmRkZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxnbW1yfGttaGt7dG1ta21PSEpLSElJSFFQTE5PTEtTU1NPU1JXUlZUUFdbVlZUVFRhYFBOTktUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1dYUl1ZV11WVE9ZUldXV1hZXltncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xMTUtKU1FNUVBPTFZVVFBUVVhVWVVRWl1WVVRXVVlYUE9MTVZUUU5VU05PTUxRUEtKUVJLUU1LS09SVFJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1BRVVVWU1pRT1NSV1ZUWVZUWVVUUlVUVFRXWFddWl5hXVxaWlxcYGNcXWJjZGZkZWRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmVmbXNkaWhra2VkY2ZoUEpLTE9PTE1TUE5TUVFNWFdVVFVXV1daVVNcYFZXVllVWFRRUEtPV1NQTlVQTlFOS1NQTU9VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RPVFVYVVVaVVdZVVJSWFZVV1tZWl9dVVleXF5dXF1gYV5bYmJjZ2ZkZGJYX2BiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FaWVhXWFpaWFlWXGpkVlhZWldWVFRQS09WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVk5XUlRVVU9OTVFTVVVUVFJUWFZaXVxaVldRUldYVltbV1FUVlZWVllUWFdUU1JYVlVaXVldX15WXl1eYFxcYF9fX1piYmRoZ2RkYVliYGJeXmZjY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZWJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF9bWVZWWFFMTVZTTU5ST1FST0xQU1JVWlVTUFBMUFdWUldTU1NYTU9QUlRYVVVVU1VZWFteXVtbVlJPVVZWW1tXUVRXVldYVlRYWlRTUlpXVlxeWl5fYFVhXGFhXWBiYF1gXWNhY2doZGZgWWNgYV9fZWRfYGNbWlxbXFlaWFlXXFlcW2BeX1teXmFgX2JcWWBaUU5PTlZRUFRST1VUU1BXXF1cWF5cX1dcXmpxd3mAY1xbVlZYUU5PVlNOUVFQUlRSS1FUVFlaV1VPUk5TWFdUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVVZcXFZSVFZWWFlTVFlcVFNTXVhaXV5cYGBgVmJbY2JeYWNfXWJhYl9kZmlkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJRV1JUUFtdXl5bYFxgVVxdaWpyfXNsZ1xVWFdRT1JaU1JRVFJUVVRLUVdWW1laU09TUlZWVlRPVlJTWlJUVVRYXVdYWFNYXFheXVlaXVRVTlZXV19bWFFUVVlZWVVXWVtUU1ZeWV1dYF1iYl5ZYFtlYl9kZF9eY2NhXWVmaWRmXV5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXFtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVZVVFRU1xUVVRVVFZZV0xSWlddW1xST1VTWFZWVFBYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paU1RWWllaVlhZXFZUWl5cXmBhX2RjXF5dXWVhYmZkXl9kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdX1RdXmJlZXaCe2hYWVlTVlNWXFdXV1ZWV11YUFVdWl5dXVRSWFNXVlRTVFhSU1ZUWFhYXV5YXVtWXV9YX19YXVZRWVRZWlphWVxVVlhbWltYWVlaWFZdXl9eY2JhZGRcYlxgZmFkZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVdWXGBhYmNhY15fVltgZGFfenVvaFlcWlVXVVdbWllcWVhZYFdQVl5cYGFcVFVYUFVXVVNXVlJTVVZaWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVpZWV5fYGBkYmNlZWJkWmJmY2dmZV5hYmBjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYF5ZWWFkYmBrZmheXF1bVldYWVxcXF9bWVtiVlRYXl1hY1xSVlhRV1ZXVldWU1ZUWFxcXmBgXWFcV2FeW15cW15YVlhYW1tfYFxfWFldXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNgYGVjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlJXWVZXWlhbXFhXWV5gYmFlYWRhXV5ZYWNiX2FgYV5cXFxXV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBYV1hZWVdWWFZdXV5gYWBfYl5ZYV1dXlldXllYVldbXGBfXV9aWl5dXl5hXFtbWlxgYV5iZGNlZmVmYlpkZmdpZ2NfY15hZmRaaWliZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMV1dcWVdcW1xdWldcXV9gYmRiYmFdYFhiY2JgY2FiXVtcW1hXW1xfXWBfXVtgZFxcWFpjZWNgUlxZT1hYWltaWVhaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfX1xaXl5gYmNcXFhbXmBiYWNlZGdlZWZkXGVmaGlmY2JiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hQWFpdYWNmZnJrf0pZV11aWl9cW15cWF1bXl9hY2JhYV1iW2JkYmBjY2JcW1taV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pRWVhcXVxbWltbY2BjYmNgYmRhYGNeYFxeXl9aWFZbX15dYWFfXVtgYWJlYl9dVFxgYGNkZGZkZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoY2hoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t8fHx8e3x7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7fH19fHx8fXx6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoKDgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmJiYyNjY2NjZBGKCoqKioii9vS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyNj5CQkJCQlDsWGhoaGxCP7+Xl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXl5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH19fX19fX19dnNzc3Nzc32FhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnh7eHp5eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t6enp8fX19fX19e3p6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx8e316fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3eXx7fnl8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3d8eXl8enx7d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en97e3x7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5fHt6enl7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnBwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBxcXJycXFxcHBwb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXB1cnBwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXpxb4t2b3BwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFxjXNzmHhwcXFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJycXCXe3agf3BycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdJ+Ce6SHcXR0c3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en58fn58dnZ3d3Z1eHp4eHh4d3d3d3h/p4yIppB3fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3t8fX6pkoallXp7e3t5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fX18fH98gquciqKVfX1/f398fH2Ag4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAgICAgoCar6inp5V/f3+AgYB+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f39/gYGAhaympa+mn4J/fn9+fn5/f35/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f4B+fn+Bf36PqZmiqpujj3+Afn+Af4CAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GDg4KBgZ+hk5+kmJ+YgICEjoJ/gIGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYOLi4WBmJ2KnaqbnZqEiJuSgoOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYWVm4ySnZOdrpmTnp+fmoiHh4eHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OBg4WEgo2lqqypo52lmZ2kop2Qh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg5OmqKGcn5qbnp+eloSEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4KChJGXlpidmZyenJqMgICAgH6BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg4F/g42SlpqXm6Cdk4SDgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDiZeIhIKFhpCWmZecn5uIgYSDgYGAgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRj42Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhYSEg4ODgoSOmYuDhYSEipOZlZqckIKChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhIODg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYycjYCCgYKDh5KNkY6DgYGCg4OBgYGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlZeJgH19fX17gZiMgIOAgYKAhImIgYGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqHg4ODhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4p+foB9h4p+hISDhIKDg4OChIOAgoKDg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhin+MhX2GiYB+hYWFhIWCf35+fX+DhIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFgoGBfn2Bh4aDgH5+f39/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFhoWFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9+fX6FgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4mIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgISEf35+f4B/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjImBgIGCgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhYaFg4GBgoKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1+fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX5+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYmDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4SDg5GSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfn19f4B+fn5+fXx9fXx5fIOGhoeEg4GDg4SFhYWDg4WEhISEhISFhIKCgoGEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4J/f4CDg4ODg4KCf31+f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIKDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDg4SBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn2AgoODgoOCg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f3+Afn2Af36AgIF/gICBf39/gIF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gICAfn9+fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/f35+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn59fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDgoKDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn9/gH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KDg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6eXl5eXmAgoKChIOBgoOBf4GAgYGBg4KDg4GBgoCBgH+AgYOBg4KAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fImTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYKIhYKBgYGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjISDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoOCgoKSkIuIiYeJh4aGhIaFhYSEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKPjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGSjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYB9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgICCgYKAgIGBgH+LlI+Mi46OjIiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIKAgX5/gXx+fn9/fYCCgYCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSSjIyNjo+KhYaGhYSEhYOCg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYODf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/fn+MkY6MjY6NjYeEhoaFhISEg4KDgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19fn9/fX6Afn9+hJKNjIyPjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fnx7fHx8e3t6fX6AgIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgX+Afn+CgoJ/f4KCf4CLkI2Mi42LiYeEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gH+BgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBf4CAfHx9e3x8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6ChISCgYKBhYaFhYaGh4WBhJGPjYqJi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/f4GCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f359f358fHx8fH18fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIko6MiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDg319fX19fH19fXx9fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uKiYyRj42KiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3t5enl5eXt+f4SDhIeJioeJjo+Ni4mJhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e318fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOBgICAg4F/gIGEgX5+gH9+foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHx8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fYmHh4WFh4WFhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4OEhIWEhIOEg4GCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX6Afn5+foB9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn19f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKFgIOCgoKDgoOBgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4J/f4OCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX1/f36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYGEhIWEhISBg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF+fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICBgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9+f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgYB/fn+Bfn+AgoKAgYOChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAe4B+gIB/gYGAf32Afn5+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDg4ODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgIB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzb3h3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH17fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHt8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5dHV1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgYGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGEg4OEgYGDgYKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGCgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX97eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCg4SGhIKDg4OEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfXx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhIWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fn99foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISFhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgoKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fH6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWHhoaAgoWDg4WHhoOFhYWGh4eEg4aGiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99foGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmlveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhISGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG52goGBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WFhISFh4aEhIWGhYV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIaFhIWFg4aGhYaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aIhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhoWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4KAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WGhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaFhYeFhYeFhoWGhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn18fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhYeHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYSBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYiDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhYWDgYOCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GGg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB7e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WEgICDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7fH19fX2AfX18fH2Af318hoOGhoaGhYOEg4aChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhYWFg4SDg4SChISAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7enp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gICAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1NTV1dTU1NTU1dXV1dXV1dXV1dXV1dXV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fV1dXU1NTU1dXV1dXV1dbX19fX19fX19bW1tbW1tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi60dPT09PT09PT09TU1NXJu729vb29vb29vb29vL/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E9PkA3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6Oip8/T0tLS0tLS0tLS0tLUv6iqqqqqqqqqqqqqqqiw0tLS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSko6jP09LS0tLS0tLS0tLS1MGpq6urq6urq6urq6uqsdHS0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7PDw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamsz9PS0tLS0tLS09PT09XCra+vr6+vr6+vr6+vrrbS0tLS0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tTV1dXV1dXV1dTT09PU09LS0tLS0tLS0tLS09PS1dTU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7OztPU0M7R1NTTzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXU1NTU1NTW1dbW1tbW1tbW1tfW1tbW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztCmksXUrYODlc/SpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPTo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztKqnayVw5u8uJm0s5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DJl5mFpp+ojoCNxZ2YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PD06Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0aSwvZqMo4ms1rqYop2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Q1bmbi6utm6WymZavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P0NGaoKWknJankJqEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX19jY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NWnpKDVpLSrn3+gqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NLAnaLI18rZwZyAvK2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPUpKCPucOPoZ+fmaiWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HIxqa9lZOTqKuin8Ogq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQT49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg1MqOk5eQqquNj6zYwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLUwq+ws9DWwL/W0tXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dTW1tbS0tXV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc3Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2ODk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Slpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIFza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioaCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpyenZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYm5qZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6Kkpqempaampqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjntqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo7PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6OjpKKhoJ6bmZmYmZmZmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/OzpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoaGfnpybmpqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56bmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmpmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZmanZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmYm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmJubnJyhnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQlJmZmJWbppabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhIyWi4yKkZyLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZCOloKMfo6SjIiFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32GjZmbkISMe42Kj4p6fX2Gjo2Kho2UkouQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouGiIWEiIiJhH+Cf3p8eomVkZCChWmGhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6JkIt/h42Mi4qHkoqHho2blouRiH9fhoWIjI6LjoqJkI+Oj5SUmJCVnJqdnqiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampmQnaCdk5eaoJmdm6KhlZCbrJGTm5h7WYaPiZGRjpKOi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6qpr6GaoKyKjqGfdlmDmY2YlJigoKGknpuapaekqauvrKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66vqqqrpKGipKmnpqmooqakhYano3Rbc6CZnZifoaKpp6Cioq6sq6qnra+opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKelp6mnqaijp6aZnKSmoqGhoaGlnIKCoaJyY2aZn56Wn5uaoqKgoZ+hoqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXFBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+fpZKAfp2dcWhfjaKhm5yanKCeoZ+enqCjmZabmKSioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirsKmoqqihn6Cnqa2wsq+so6Kmoa6KfH6lnm9qXISkpaKenaCen6Wiop6fopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltaYF9aXFZcaGRuY25qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu5g3d9sqZsaVh+paKjmpycl6KopaGfnqObnaGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eWpiW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0uHpycbCvZ2ZUgaWen5aVmpekqqamoaSjpKumpZmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odWtxaGlpYVlTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW1vLy+vLy+xrq4t7q9tK53bmWst2tgUo2tpaWdl6Skp6ikrqSrq7W1r7Ogp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrapfnVporZ1YFacta6uqqqnrKenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5rY2Jud3V2bmxbYlFWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr63pol+fZWjhG1qqrysr6+0qaqmqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbWZudXFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PJsJaIe4aMkYl5gKG4sJ+asK6spK2wtKeqqaiqrayppqWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3RrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+8u77EvsXIxsbExMS5tMC3tLvFy52CeGZ2hIZ8bHyGpraqmaK3sKawu7WsrqWko6ikoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ4c3lmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GycW/w8DLzc/Kx8TDxMLEvri9yr2JbmFTYn1+aVVncI2zqp2mtLOsssC1s6ypo6GtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXWtvbnh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczOz8/Mw8fGyMnIx8rOysnHyMe/xsukeV5OSFR3dV5EWWJ5p7fAvr65rLnBurysraaqu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGppdG14bF1kW1ZgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzsfMycLCx8HM1dfNy8rOxcm8imtQRT9OcGhYPU5cbJXEzMbGsJm6xLu+tLCwsMG+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVudGJdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8S/v77Ey8jKy8m8vMjGydXb1c3JycXJp3ZaTFdFSmhdVj1JVmN7vNDGsJCJucK7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVmY2pkYmptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIycPL2dPIw8LBxqJpTGKVakhhVlhBTVVeaa/WvZN2hby6u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjZGRqY2djW1paXFlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ytHBvc/TvLS8vb2ubEaAvo9KYFdaRFRfW1+ixqN7aJPDt7u+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmNoamdnaWZpXVZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLevrre1ub+7wtaLur/C2bmhpa+0uHdJg6uOTGhlY0JVc2BXkZ+CbGWoxr+8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeHFtZWVmb2llbGhYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNDEc6nLvtzNmo+WorCBTXF+cFd/eHFOVoFlVXh2a2NuwcbFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NmYm1gXFRJS0pESkJDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC4u7K9vrvEtrW4tbfAvsS8wsTYq3B/vMjU3rKEhY+ZfVVjZlZymYJ+blV0Y1pjYmFchdLHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGludG54Y2diXGNRS1RIRUVDSEM8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLm9x8rKw8fJ0pRsca3R0NvUknZ8f3ReYl1OlaWDhIlUXV1cWVlYYarSycfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9jXmBhTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8bTw7q+vMS+t7zAv8nQx8jKysCCbm+jy8vP4LhzamtnYGBXVaihgIOSXlhZVlFVUnnGy8nDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8tru5qtvDvra+wL6+t6KYpq+zwsCjdHJ0mcTHytbXhldVUU9QRVufkXmDiWdaVE9OT1acycvGwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3hzZ3BdW15dWVJFRENNSUFFPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vGtWyrzby1ucC8p3psZ25qcn+Vlm10d5W9v8bB1ahVQkA+QjlaiX1xf39pW1NMTE52t8DBwr6/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f312bHV7cG5pW19fWlNQQUZIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnAzrF2gLK8tbbBoYVpWl9fTFJbW21ucn2duLfCuL27c0Q1NTk0UnJqanNwZF9XTEtcoMC6ube2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3V2d25xYF9mXVtUSj0/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsqmhHeKoa+0mGhjZlVZYEpKTVBUanOEo6+3vrmztp5oNzA1M0ZdVV5kYmBiXU9MdrS/uLKusry6rru0s6arqK26vrjLwr++rKuwr7O7t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYlteT0hCPz1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/Gp4h7do2hlF5TQllUSGJsV1BGSWOLn6qvtrq1tLKtlFAzMTFBUEZRV1hYYGBQXJi5urStpayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZ1hcXVJOTkE+SkJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4v7OQgXmIjmtOSkBoWEJPd4OWbExCV36wtLO1srSvrq13TDAwP0U7RVZXUVhdUXywsrGsrJ6kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c210aWxdW2pUXVxQTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7i1lY2JhHlWRkFSiFdKSlZ2jIBhP1WnuLO0srCxrbC5pHtALT5ae5enopJzVVqVq6yro6egnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVWFjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yu6mYmZVoTUBWem5PSUlMZpp/V0VVr7uxrLOvrqyttbegZmeTqaefmpueoH93nZ6nqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6ajm6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3pjd2xuXFFoVFBOR1BNTEJPUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3Bqqa9ZEVVooNQWUlLYUpYiWNmZoGstaqytK6qqq6wrauwp5yPlpGNlp6goJ+ao6SfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mbpJmXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dn1ta3tkaFVRY01KSEdPUk1KTkc8RUA8MkA4NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCsxsDKmk5Cd51uT29LTmJmdXJgX2Z0jbCvrrO1qqarqqKcmJKMj5SVlpeanqKhm5yknpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3h8ZHl5YGJSVWBISUpLU1RJUlBMOT9BNjc8NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpcbGiFdSS2aiXml+cnZZUmtjXWlmZWqLtLCwuKymoJudmZSXmZiOjZCUkIqNjZOYopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKqyrqKZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKT09VTFNMQTc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo415VWxydXVtYnVyWFlgX2RpXWBYYqyurK+nn52hn5aQk5ufmpiWkZKem6Gjm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWp3dV1sWlJgSFJVSEZVVkpCTEc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCjfm+BbmBkV01bUlhLS1FXUUlST0OXrKqppJ+emJKSk5iXlZSUi4eKjZSdnJ2dnpeemaafoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+np6Wkn52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pdm1obVxYXENXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfnIhhV19mYFZNT0U8Pj9DQz49QlF3qK2pqqWfnZ2io52fnZmbm5OSlJOdnZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6mzraqzta+zrqqvo52rp7axraKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3RycWhWXFFGVEhESlBJP0VBNEZIOTU7PjY7PD49PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5N7YF5lX1BFRTpEQEY8Pjk2Tn6qs6ejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeG2IoKOiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3xMrJw8HGvrq0urq1u7ewtbKqurKuu7e/u7qruK2rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGtlWltGS0xFRFNNREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdnJl7cmlgVU5EPkpcfXBiQT1cjq6soJmbm56emZeXl5KMjpaXk46NkIuCg4J3cnFtcI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxczR0tXO08m9wL/Du8bFyMXR083T0NPTzMrCxcbGysjOv8jRzMfGx8XBvMPBv7+/tr6zrr/Aw8PHxMfErr+4sri8w8LCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MREVQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaGRbU0hEQD9MiqGpmoOgsq2jnpyfmpeWlJKUlpGQj4yHg4OIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fS19LV1tPUyMzGzM3J0s3O083FyMrKwcbLx8nIxr/Ds7PIxMvLy8/Hyr++v73Bx8TMzMjJwMO/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2JTS0lEQj9EVrPSvbKwppycnKCkoZ2alJOVlIl9d3BrZWJocW9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLV1tnW19PX2M7Sys/RzM/QzdPQv8jHysTMzMzOz8XGx7a/yr/SzczQxsnIwMTDyM7N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSUo+O0E4PTQ1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqBZSUBBREBHUXmyrqealJefnJqgoJ6bnJmViXdpY2BfX2BfXl9fXWJsdXRwcG9scnF1ksTIxtTW19fX09bQ1dTa1NTOz9XU1NHRzNHN09fW09XQz9LT0cnT0cjQ19fY0dfS2NnU1szPz8rN0svO0MHGw8jGzs3R0dLJzM3AyszG08/MzsjFysfHyMzK1NTR1c/SzNPCucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaOrZUM4PT5FWIKqqJ+YlZeZmpyfnZicnJJ9cGVjYl9fYV9fYWBfYGBfYGZucHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY19fLyM7Eyc/NyszAysDIys3O0MvQzs7Mzs/Iy9DQy87KwsnHyczLzNLTzdPR0dDQyr3IubCuu7i1qrawrai4rbO+u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPD04Nzg1NTs+QD05PDw4Oz45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramksXpKSEM9WIyhm5WTl5uenp6ck5aXlIhrXl5eYWRiYGBhYWBgYV5fX15cYm1yb29zdHZ2eaS/zNXR1tTT2NbOztTLzs7FzsrS0s/Hzs3N1MvO083L19bQzNHUy8zQ0tPKztHU0tXVysDKwsXMwsjJw8zDxcjKys/KzczQztPMxsjPzMjHy8XGwcbKzM3Q0cbQzs3NzM/Fx8G4ub3Dw73DubKyvrG7w8O1qpiloZmWkZWVkouUjZqRlJSPj5SCiYZ5cXJrbWdgYHBoWVhoVkxGTElQUEI7Qz47Njc6ODo6NTc9PUE8Ojw8OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKifrpV4b3N1gpKZjYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNiYF9fYGFhYF9dW11ncnJxcnNwbXJ5pcfTz8vQz9PUysXJycbGv8PGz87HxcfNytLIy87OxtHS0M3M1MrHy87PyMfP0svRz8a6xL/Gyb3Cx8nOxcLIwMfNyMTMyszPyMTE0MjGwsbIxL/Bx8zMzM/CysvIx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsbKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7uto7Z9aIOEpauTjY2Wj4WDg4OBfYSEfnNgW15eXmBeYGNkY19cXV5fYGBfW1pcYGtycm9va2xvcH250cjJys/LzcS6wMO7u7q6vsnGwsPAw8jLycjKyMHFzMbIy83JxMLKycHCzNDFy8i/ucG7xsi+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xr28wMPFzMXFvMDKwsXH0sXAyb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZujoJuUe3dydGZpWmFubFpcWFJETEZCR0RMREZTQDU0MzM0Pz0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sa+1bF96fqSQipKWhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgW1xdXV9eYFtZWlxib3Jva2lscG9zj8e9ycXMwMbCsLa6srKzsrHCvLy8urjBwcHFvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7u8bDv7zBzcPGvr61wb3Dur3Gu8O6s7zFxMLCt7+1tr6/u8zDvLW6yLq/vsvEwcbCxcnGycbQxsLMx7LHycPOzMHFw8C9s7ewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NXXllKRkpGSEpBRUJFSUA5OjY0ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1tfNys/FycXHwbnFvautpV9ldYaTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNhYWRlYl1cW1xeXF5dWltcXmhzcW1nZ25wcnmdvczAw7rAuK6wsaeqraynuLS3tLOztLu1vrK3sLWvsrzCvMHEvMC7tbK6vsC4x7m0u7bBwry4vcbBw7u1r7K2ur+0xLe7tau4vb3AvbG6trC2urPFvLauu7+1t7TFvL7DxcDDxcbIy8XAxsa7x8vAz8nHw8bCw7fDvb22ub7Hv6y1urW3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcXAv7q3ybaqsJlbaXGMj4WIiXp4foaGd3eBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZrbm5yfKTHv7m4tbCrraeeoqmnnquts62qrKm0rrexs6mupqyzvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLLAtri9sLGosrO1u7yrrrWmrravu7Kwqrmwrbuuu7i7wMC+ucK/x8PFwLzGwsjKuMXHxb/HxMO6xMbCu8bJzMuzucK9u7OJc3Z2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj49OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXQx83Bw8a/xMTDw8rCycq/wLzCurO0tcOuqbCRW2p/koeOj3t4fYmFenuEgHduXl1cXF1fYF9fZGNhZGNiYF9dWltaWl1aWlpaXGVub2hmZ2lrbnKBrbmwta6lpKenmqCkoZqcpayupKiiq6qtq7Cjpp+qrbW2sb25r7evqK64tLS8uLS8r7i5tbK8wbLArqWpo6uxsrOovaqrqKutrbSzpqitoaSvqbKmp6iupqi3rLGyt7q6vLG8vb6+xL+1wsHHyLe/wMW3xMO/u7/Ewr7EyMzKv7/EwMCph3N0cmppXWFvY1dWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9CO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HKvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairk2VtiIOHi4B7fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWppaulnpuhpZSepZuYkaGjqqOjoKWmp6atoJ2cpKassrC2t6ewrKiqtKu0urG2tq62ubKvurqxtqWgpJ+msaerqLmqpKenqKeyraCnpp+bpKasnp+npKChsa2trLK0s7Swtby2u8HAsrq+w8GyubnDs8G9wLW4vL2+vMLHxMPEv8DEoIN4cGxiZl9rb2BVWV5ITmdPVEhFS0Y8PT89Ojs7ODI1NTM2OTo4Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9tqCelZ2hprq2q7Ozu7PEz8nLwsa4tsfAzL+4ybe7xbizxLizv8CstbyyrKWvs62ho5JpcYaFhoB8eXVzb21qamlwaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1vh52on5WVmqGWnKOZlo2foaOnnKCgpKWip56bo5ugq7CtsbajqaqqrKyktLmtt7Css7Wus7WusKqfnp+jorKkpqm4raKmpqCorKuZn6CemZ2fpZqZo5ybna+pq6eqrKytsbK4r7i5u7C2vLy6q7OzubO+tLaysba1v7a+wL3Dwru6vZeEenNsX2VeZGRYVFddSVdcS1BHSUpHQTw/P0A7PzwwNDUzNTo7OTo4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vDw8++use4uL+3ssK0sbu8q7m6saKeqaunl56QbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3GNp5yTlJSbmJuil5aRnKKiqJ6cnaWnoqWcoKGbma+urq6yoKairqunorWxsrKsqK+zp7qzpragop6co6Gto6Kqtaqio6aepaajlpmel5mbnaCal52dnZytoqunpKSmrauztKq1sLOrsrm0r6qvsrKzuLOuqayusriwu7a6vcC4s7GUhXl1Zl5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLMyMa/xbbBwMbOt8DEvbO5ubO/trG5u6yytK+fmqSpn5Saj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqGbk5SPlJeXoJeZlZegnqGdlqChqaSfn6mdm5urp6+wq5ujpLiqoaCuqLaqp6etsaS4sKS3oKKbmZmqpqGarLivoqGknKKfoJOUoZSWlpuYl5aXnJWfqp6ppKKdo6qqsK6otKuqp62zsKWrrrOxsLCur6eoqLKtsbSwvLS6uK6jlIF5dWReYVZZWFNSVEtNXkxPS0dHTExFPUE+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2nqKOqu8C9wLmutLjBzMfFwsO9xbjIy7LBwsGtvLu1u7y1ubmwr7CqnJmhqJSRiouAgHx3cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjY2JjYmNkZmmBlpOVi5KUlJyZnZaWnKCcn5agn6empKann52gpqCqr6afoqS3qKGhoqi0oqWopbClsa6stJ6hnZWVqaGilK2xsZ+io52emJuTi6GUkZOYmJOXl5iXnqecp6GimqSlpaukpbCnpaOrq62mqa6vrquoqqqzpqasr7Sxr7y1sa+voJJ6d3JlYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxce2xcSywr/Fq7e3vba9urq1squtqJmYn6OLiXSJiH52bmNhZmloZmdpZmptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVNVUlVgYF9gYV9hYWJlaoCTk4mQjpSTlJ2VlpekmaCXnaCloq2mpaWjpKOcqqulmp+lsaqgoZ6lq56oop6trKmprq2ioqKVmKObnJCrqbCcoKKfnpeZk4qekY2Sk5aQmJiUnKGjnaShopWgoqSmm6OrpaKkqqOrrqWusqmmpaamtKapqK2ztbS5uq+qrJ6McnFvYFtXVlZSR1FPSFpbT1JJVEtTTEVGSUQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTU3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb7DyKyxuMG1u8C7tLSqrKaVmpuciIByiIN7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eX19fYmRtjo+EkYePkI6ak5WSnJujnJuhqKmrqKynqaakmaWvpZWZpa+qoJyZm6Cer5mcq7Ogpaafo6ShlJOblpaSqaqtmpygoaCblJCMmY6MkIyRjZaVkJ2ioKOdnKOVm6CjoZeiqKOiqKugq7Ckrbelo6Sira2qqKuvs7ezvrWzq6+YhXRzaFtZWVNVUkVYTFFbWE1UTlBMUFFJTklCPT8/QT89NzU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9u7O1pamglpeYl4d6dIB2d25taG1tbXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZH6MgYt/i4+Jko2XkZeZoqCboKyqpq+sqLClqZqfraCVlqSpqJ2YkI+anq6XmKiqmZ+dlKWhnpKRkpGTlaeqpZqZmZ6elo2Mi5OGiY2Dj4uSlZGgnqGkmJWflZqhop6Um6Wlp6iooLGxprG8p5+irLWrrqewtbC4tcCxrbGrkX5yc2JWVFVOUkpHVlBSUUxMV01KTE5SR01LQUNGREM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NzYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA5f7OspbG3qqWisaudqqepsrGktsa0ubqzysW5usHL0Mqxtri7vcHDsa+xt620s7uztKKjnJ2Xl5SDf3drZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/dYiMhpCKl4mUk5ibmZ6pm6CrpqasnqiaoKack4+fo5uXl4WEkpujkJWjnZaWloiim5uUi46KkJqkp5yVlZebkZKHlI6LgYuNgJCKkpKSoJqgopaUmJmVoqaZjZmkpqimoaC0sqeyt6Gcoresqq6ksrKmtby1rKuxo4l5c21dTlFRTE9DTU5OUEtGTk5KSk1OUUhNSkFHS0hIQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKSnpKqloKimpbOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq26r66fmZqdlZSHe4NuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW9zdnCEiIKIgJGEjoqUkZSeoY+bnKOipJill6KclY2HmZqMdI2Dfo6XloaRmpCUjo57mY+djIKJf4mYn6OekJOYloWNgpR+fnSKjnqQh5OQkJ2bmpqSlpCdjqOjjomaoKGjpJuitK+sr62fmKW4pqaxobCunLC7qqmvqpmDd3NjVk1ST1BOQ1NOTFFMQlBRSElNUk1ISkpESkxGSko9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpqWnpqezp6W0wbiwtLDJxLe5wc7GvbOsusGrrcOtp6Gmkp2mtqyjoI+VlpKPfnh+ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVZZW11pbHJsf4V8dE5Yco+Cl4aNnZeLlJGfmJ2VlJaVj5aJgJOKXztXb3yMlImAjJKMkIaGc4qFl4F5gXuGk52Tg5WOkZCDhn2TeHFwhY19iYGRjY+XmpmTi5CJnYifmIiHlp6aoaCXp66pramonpats6KmrZmsq5ios6KpraOTfnJuYFtOU1JXTERUSlBMTEZOT0lFTFFNS09KSUxQRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepqKOqsKintMG5sLWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUm7GimpiGlI+Lh31zdV1QTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXuCdFFCQH+VkpF9iZWNhIqNm46WlYmSiIaVhnmJf2BKUW54i5KEfYSNioV/f25+f5R4dXZ4hI2Zb1GNiIqGe354lHZnd4aIfYqJlYuNkZKXjISKiJWEmoyChJKalp6dlKSjqKmlpJ6asKuhpKSRpqqWoqqcoqaoiXVtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+hr6GnqKWnqLCtqra8tre3s8G7tqe6yLi2qKi1tqqyvKaelY1/iZOolpWKfo6Dgn14cG5YTUtNTU5LTVFXW1xaWFpVVVZWVldZWVhYWVlYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1KRERESU5PaFlOUVNUVVpug3N2fmppXFWPiZSJdH+GgXyFjJOCkpqLj3uGj4B2gHhzb3ZxdI2OgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gHZycpJ3aHWEhISFe5WJiIqNi4B/hIuMgJSDfICPmJSclpGenamen6CdoKmlnp2YjKekk6Gglp6fpIByaGFcXUpXUFJHSlhST0pMTVJKSkpMUElMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlraywsqq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGNlICOnI6Rf3aGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnSCe3hmd42XmI2PfWh5gXZ4gImQfYSYkoFyh498d3tva36tfHOQin97hpKBfX90ZnZ8hmxvaHN9iYyIgGx5cX1xbXaPcWhxgX6OcEOLhIKDhX93d3qLhX2Me3V+jpKPmIqSmpujlpmdmp2eoZyWjYqkm46el46WmJB3b21lYlpYWFVRSlNVVE9QTlBWS05LTk9KUU5IT09MRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmxr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mOhZJ5iI6LinVxfG11cGptalhLRkdFQUBDRElMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybIinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnt9fnt2b3RzhYJ5gXlwfI6MipSDlpeYmpCSlZeZl52WjIOJnpGLko2GkJaAb2pub25YVlhUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCjrKqota+urLS/q7zCv6aimZWkl56NhIuUoaGYmJGTi3OOeoCGjIZ0b3RrcWxkbGpZTkRGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXGCniGKaaXR6ZX5wbX96i4l2goiGdGyakXRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxf3xocXF8bpOOj3xzfXxxcG52bYJ/d3l1anmJgoiJhJaSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trb2hlWFFaV1lZW01QVVZZWE5JSEVKSkhHQkBGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfp7uvq7KwwrG7w8ealo+UmYuOhnmEkJiUjZCMj4Zxh4J0h4yGenBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eG19bHGDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiYBnZ2JqbnJtcIN1aW9YdXCOm5J3bH96fW1ybnCAenN2bmJ2g36GgIWQkIqKiZGLkYyLjoN1eIqOgH6DgH2Pe3JwcGxgW1xeXFlYYV9STltaWFdMSEpGSkc+QkFCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ2kp56vlaW1qq6xrsGyu8HGlpCMlI+AiH1ugZCSiYOKh4+FdYKEbJWIiHt0eHhsd253Y2leSlBHPkA3NDQ5Ozs7PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx3iIh8foWDf4x+dqKZeX6GgYWZhZucYYaqn52Lg5CNeneIfomIjXOKl5CDel1kcnR6fHeKbWhqYnlvhpCCem6Bd3SEenB0eXdrbmldd4d8h3yHh49/i5KXg42FjIZ9cYR/g311d3t8iXdwc3RlZ19bW15UXGdeV1FVWFtVR0pKRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIySnJ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fYF/cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkqiHgJiYipt0bXyBhod9jmhnaHh/boWHgoVxhIZHbIB3cnl2aG1rX3d9g4l/iIWLepWdm4mLiJF/enWLdnx4bW93fX90dHJsW11dW2NjWGdmXFVPUFZZUERMS0ZOSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiJGBmpWCoaGYlZuapa2Tmruxp7vHw6iLjKGlj5SJgZF8cYOen5Gcf3aFhYqQiJBpaG+DgHSMh4SLcYWCd4d/e3aFfW52dWaAlI+GiYmHiIehqqKWiY6Yf3qCiXp5b2dreH56fnJqZF5aWl1qXWFmYFlPS05XUlFIUEpETkdDSkRCQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzIwT4NfND87bnVwZniDe4CMgIGRjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBjIuCiY2Df4l/bXBqXUJBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk5RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2aj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPoZ+TmJKEi4WPmZGWbHB1iYuCloyNj3ePhHFthYGKlpGDhYhyiKGWh5OJjo+WpbWpm42VooOHk4N9f2tqa3yAgYFzYV1jXlpma1xsa15XS0dPUlFOTUxGSVBDRE1GQUNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+l5aalZ6enKegqZaTmJ5nZaSafoSSkXmAkoiQkn2KhJiSkYKAgIuNiYWQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0VOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZyopaKZoZeilZ2fqJ6oq6CorKmqtZerv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGJlaKamnh6fpSYkqGSlpiBlJ57d5WSq7OIjZeffZSenI6Tlpmkoqa2sJ2RmaiIlo+NgYhsc3J8f3xxaGBcYF5iZ2NgaGdbUkVKS1BPSUpMRkZNQ0hMRkZDQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJjIqEkoWDhomBgIZ3X2JQNDYwLTEvLC4wMC8vLi4wMDE1PkFBTVFSU1BSU1VSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYaQd5WLo6eqtL24pK6srKeotKuwtrKyrbuxs76cs8Osu8nLt8O/uKWjsLKsraqji5aYhaamoKOXgaaZjaKqqKSIhZSkoaCqoaSpj5yxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilKSqiJmJkoqVeXp+hX5nYGhcZWJdZGNfZmZfWk9ESUhTT0ZITEZKR0VGSEFLRUNGR0E7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GPg4WAi4WGh5KGgoSJhoiHh3FuYUBFNjQ8Mi8xMTAtLCstMS4tMz9EQU1VUVJTVVVXVU5bUEdHRTw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqscHHw6qzxbass7+zuL62v7TBtru7pLjGqLbJx7W+ubSoo7StsbGbmZKan4mor6ullHafpJehq7GzmZaqraiutruyuqyvtaKxrLG1vLe1rrWgp6ejqJqpsK2yuri4p5u2qYyljpGTn4Z4goN1WWFkVmVhYWNgYWZfW1RJRERMVVFISUpESUdFQUBASkRCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFjZFd5dXGBlH2Fh5N2hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjYeEgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0pBQD5HS0ZFRDs+QDdENz9CSkpFRldUUF6Ppa6jsbTDtrjBzMm2u8S9s7PAt7fBtb+wt3Sxs6a6xaSwxrmxs7G0qKS1tqqxoKKWm6KSpbCupq2rp6SYoKyzuqKpsrq0u77Mv8XFvb2zwre6uL+3ure5rKywprCqrb6wvbvCwqyZuqiUro+Xl6uJfYJ8aldiYVdqZWplV1tkWVZTSUdGTFFHQ0dJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVVadmpwf4+EgY6EbnpzeYdiuKGZooiVk5aTlJONkJaSh4d7hoGNloqAhIGKenyLh4Z8ioOBioOVfXh6dWVPXGRHRUw6UWNhW15TRj87SFBEWmNRUVlYWmdZVGBgTVNQRUE/SUpIRUZBQEM8RTZCPkhHSkxTWlRdk6+4tbq4yb+6vcnMu7zBvLe1u7u3vbS6scZhdbKlsZqeqr2qpairqqOisrWhq6iflZafmJ+upaempZ+jlKKmsbSnsrK9tsG908nK08bCxcvBysPAvr2/u7y3tK+4t7bDusW9w8iwnrmqoquOpai2iYF/cl9hYl1XYV9oZlJYYVZSVUlFRU5LQT5HRD1LQj1CQD1GPTtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdsbHGQjYWQc2xycnOI1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaKf4N/g3h7i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV9uX1hnZVVZVUtEQUtLSEZJSEhHQkk5RD9IS1RUVlxaW5K5wLi9t8bAu7nKyrq3ura4ubK3tbSutraZZHWonK1wXqGtnJigopuknqqllKCfkJSOlpiXqJ+ln56amoSknaylqrCst7C9udTRz9fPyczRzM/OysbAvsLKvcG8wcDExMXKv8jOtKS7sLSvm6u5vJp/emxdYFxZXmFZY2NRXGBTUEtDQkVHRTxART5BSEFARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KQlG9sb3V1h7OsoaGfi5mcmYyNlZGbkoWKin6IhoyQi4l8gYRze4qDhnuJdIGJhpV/c3t4a211e2hyZWlsaWZqaWhgZmlobFpudJetpLyIh2dbb2hdWlpUSEtOT0pLUUtUUUhMQUpHS1BfXmJmaWGXt8ewuLO7vbWxxMe1sLmwsLursrGnqresjbannZunmk+anYyOoJaRppillYqTk4mQiY+RkZ6boZealZaHnpqmm6yvqK+ns7TU1NTW0svP1NXO08/NxcLJ0L/KycrJ0cfMzcLQ0riww7zEuaW2usSigm9jXFxeWGFYWWVaUV1XT09CQkhFQkk7QUM+QUc/P0E4O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmIJocW95eYOgqp6ml4ybm5eLjpWRmo59iYuEjoqKi5CHfISCcH+HgYZ7h3KDkYuPfnF4dWtxeH5xe214c2xpgXBtY2lucHhpd3x+y7/C36dtY3huY1thYEpQUlVOWV5QXl1NUE5UUVVUXG5udoJyl624rLOnsLaqrLzAsau1pqS4pquuoau0o46xrpqYmIyRk5GEjpuBjaeSnImDi4SKiYSLg5OVmJeTm5GcmJmZnp6rrKSnoaytz9LV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbFwM7Hx8OovrfQnnpvZl1iXVdgU11bT1BUUE5IPkFGQUJFPEBCPkVEPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bHdwfX5/oZ6eoYuNmZOTjIyTj5aFeYWPkI2LioiRh3+Ce3J+gIGHeYR1hZKRiX9vdnJrc3x7d3xzgXdxa4BzcmhvcXp5cnu+y5t+jLKDdnKEdmhhal1DWlpbV2ZkWGVrU1hdXWBkXmN4e36LgZmqpKShn6CopaqwuKqltKOhraGjraKnsZ+JppqUkpGJkY6IgZSJa5WijZmEgIV9kYODk5ati5WNlZmOhZKQnZensKGgoaSkqMjOz8jCy9HU0dTTztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMTDy4tzb2NgX1hUWlNcUEpHSUpKQDs6O0VCRDxCQz5IQj5CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5aJj4qIjoePf3iEk5mKjYiIi4l+gnhze32Dh3d/eoeRloCDbnhwbXV/dnh+dIV8eW2HdnRufXaEdXl7nbaMPEGLxqV+jXxpZVZJQ2ZjZWNoamRveFtfZmlrbmlugIOJkYudnqCdkJeYn6OkprKkpLOgoaWdoKmgorGchp6SkpKQi46LhoOQhH6cm4yNg4SFepR+gqmVo4ySipeSi32XipqRqrOYmpunnKe9w8a5tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2trS1b/LzLR4dm9lXVlSVlFaVkZHSklFRT06NzlAQUI5R0RARUNBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqBh3x4hZaWiI+Dh4WHeoR4cXp7hIZ1eoWOjZx6jHB8b296f3F8gXGDh4Bujnp1d318gnV/fIeIsHRZqcK2jJKCcG5iPV5ocnBxcG54d4FlaW9ydXhyeouHjpSSm5WglYeMk5ugm5+qn6CtnKGamZ+lnp+smYuajJGRjYR9iIeDhYuOn5mTiISHfm2ZeYSYhoiTjI6UjIZ7m4iTj66qlJWXnpinrrW9qa29xsvIyczLz8jD0crU1tjX2NfV29fT2dvW0Nva0dbJ1MuVeXtpaVtaUFJUXkhCRUlJPkE9PTc6PT87PUc9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoGEfoN8fISXjoeLfoaGgHeCeW57e4aBdXqSno2gdo91gnR1gX10gIRvgY+Bb5KEdHyBhXp2hnuJt8alwsm3gZabj3dwZU5mY4F6gXeGopCLeHl3e4N/fIR1bpOWlJWPmJCDio+WmpeXpZyXoJefk5KXo52Zq5WQkIqNkYKMhYmIgYWQkZ6cmYmFi4GGmHqJiJ+Xj4iOioyCfKGJkIu8oZiTl5qcqaalrp+otb7AwLnHyc3Oxc3J0dbW1dnV19vU19na29fb2tnYztzGhnp6aGlkYFRXVlVNSkRORDs9PDw5Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eot8foB+f3yFe36BkYmEhXqEiHt1fXRtfH2GfnN+kp2RnoOSfIZ+eI59eYqKboKagHSYhX6BiYV8fpB6j6mPkMOgvIyco5x9iYR9iXOMin5zppqcmJSFe4+QiYRoR3CgpJ2Mi5CShYmLkJKVj5yakpSRl42MlZ+dlKGUkY2NkIt+kI6Oi4SIkpWan5+JjJSSnpGCi3+lmYiEjoOGhIClhoqLuJidkZWWoqehnZ6do662urWrv8bK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3h4eGxqZFdgW1RQTkdDTEI9PT45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97iHt8e4uHgn51g4Z5c3pzbYB+hH13hZuhm52UkoCLiH+Yh4Cckm6HqIV6oIt8kY6DiIScfpqRio2jop+QpK6gi5GLhYuBkoZXcq2Ln6ubj4OYm5CQjluCopGCjJ+TlYyHiIySk4yUlJSPjI+KiJabnY+VlpGLkpSGgIuIko2JipyWmaKihpKdlqGLioiNnJCDiI+Ag4eFpIaMkLOYnZKUl6GhnpmSnJ6nsbispbzCx83Hxs/M0MzO18/R1K7W1dja2Nra19bZ2p9vfHVoZ1xdWFNXWENASUQ+Pj46NDk6Ozc6OzozOzs/PD43Ozk6MTlHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieG1ifpKDb213i3h5f3qBfIZ8e3eGhH9zcIWCenV2dnSEg4V9f5Kmo5+lopaJnY+Ul4uKqJdyirGMhKeRhJmThZmLopagmJOJm52hkqmvn5GUkI2NiJWLbo23hZrEyLKcoaWbnJiWkLKQZKTNx5aPhYeJkJKOjZOUiYWKioaWmpuPkJSThpSXhH+Pi5mIjZCql5ejo4iZnpabiY+Hl5eKhI6NgX+Hj6WJjZOpmpeTlpmhmZ+Zk52bo7O0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6Ccn9oY19dXk5KVFpCQUdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj46RU1GSFJXU1JCY4FGdYKPfXxtfoh4en56gYGDfnZ2gIN8bG6Lf3l8eHh8hIeLfYqjs6ejqrKhlqefpaSWla6ig5C4lZKzmY2hoIylm6+jpJ2YkKeWp5mtr6SXlJaUkIuYmZagwI6kybirm6KmrZiRmpyynYaFqKKcmIWIiY6VjYuTjoiBhoeIk5iUjIuTk4aUmIaEkZCcdJGZspaXpKGInJmTj4qQi5eaiYqWjoZ9jJieiZCQnJqZk5iYoJSgnZWfm6GxrqKkt760xcfEvcPDv8bNysnSp87N09LQ1tjT0Ni7cnl2XGBVX1dQSElORUJDRTY+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1NjY9OkpGREdOW1xZSWZgO0iEi3p6bYWGenyEeICFgX5weHx9fG9yjXp9gXt4houJhYOSp7utqLK9r6Wts7Ooo6KwrIqatZ2juKSVraSWqa23pqSjn5mpmKmjr7CqmpiclJWRl5+Xmbu7rcmgaba4q7CUmJ6jq5OXvqNeqrKCiYqNlIeRfI6OfYOGjo+UlYiHkpaLj5WNi4yXmJKdmbSWlauei5uUko2QkoyZm4qSnpCLiZWgoY2UjZianZOcmZ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8fC0aHGyc3NxNfW0cvToXB6aF1ZU15ST0ZEPjxDQUI4Pzg3ND5GPDw2PDM1MzU1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVHYmBicElAi4p+gXOGh32BiHWCioN/bX19fH9wd4Z3jYGHe42PjIaMmarCwK+9xruztMG8tK2rs7aMqLKurryqm7ukqK25uKumpqKho6Oor7Kxq52cpJibmJeeoqWlkaO5rqi/vKytsrmlo6d9iIacrb2wg4uMi5CDj4ORj3qBh5CMjpyIh4+XjYuVl5SRmpadp5qxmpGsnY6aj5KOlZCQlpeOkaCRiZWbo6yUlo+UnJ6UoJ6bmKChlZqep6ekoqSwsqbBx8OwsLq2xcTCvs2nx8PHw7zV0c3Eyoh0c2JcWmBbTUpCTEBFRz9BP0I7OjQ+QTw9NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxmRmBpZ1pdW5OMjIh7h4uGg4x1hpCKgW9+fIJ/cX6BepV6kZSUmJCTlae0xsm/wszBw7nHvLqvq7m7l7K2urLArqXApKuvu7yqrauiop2nqq60sKqbn6qboZuVn7C0p4uiurm1wburqZyypaSolIWNqcPEpIKLj4eIhIaVlI16g4yRjpGhjIyUkY+Jl5+Xk5mVl6agrp2MqpyOlo+SkZWVjpCVkY+hlIaXn6CynpSalKChmaSfmqCcoJSYnqakpqekr62lwMTDrqi3tcnDvrbOssS+xLyz0crIwrV0eW1cWFxqU01IRExLS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk1lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoKQeY2hlqiampi6vsjIysHSycrCzL3Bs6y7vqe6v728xLeswamssru9qrCpo6WjrK2zrba1oJ+vnqWimKO0vKmbqLzBo7a2r6uSr6yrrJeGmammpZGCjJOllYmBdYqSeYWNkZCen5OPlIuQjZSjmZeclZSjnqmfkaWajI+PkJWWiH2PlZKSo5uVoKKctaaQnpelpKOlnp6mmJ6Vl5ulo6moorKsqLzAxK+ls7fMwLmuxLO7vsK4rMLDwsCYbXlhWFdcW0tLTUpGRERJQkJBQ0s6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djZeOnpKJin+Jn5OEd4V/lX9/kIiKkH+VoZqupqOYwr3Iw8fF083Ozcu7wrevur20vMq8w8G1tryts7+5vK6vqKCop7atramxt5qeraKnoZ2rt7eppa++w7G9ubOnqrSzra6WlqSrp6CRjpKxxaeVjnyRlX2HkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuNkI+eiFqQl5eSlqWZZZijnrKllqKWrK2rp5ufppeYlpmVoaSppp+2q6m6vMS1pbS2y8G4qbassrq4rqi4ur24g2xuWldUVU5GSlNOSz9CSEVESEdHOTVGTTs+Nz5BSi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZCDh6aTiIGHgpyEg5WQkJSOmqKfr76uoca9xcTGxs7OztLKvru2sbq7vL7OtsS9t7m3srK1s7izrKacq6u4qqinr7CXo66kp6SktMCwqqyzvsK5wLmzp7i0uLKulaSsrq6ki5OVoY10wZp9lpmEjpaai7GVmpmVkpOZmaajlZ+blpqonJyhoJqLjZCWnWBKlpyalZqlllSWsJ+vnJ+llK+vrKaaoaaUk5mZjp2gp6KZtKmqs7y8u6uwssfAuKWrq62xsaOhsrK0pHFuZlxaTlBLRFBQUFE7R0pJR0hCQz45S1U/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1RRVdSc2JXRkiql5mgoqivmZGXh4unlo6IkoWfh4Sdl46eoJqjpLXItKnGusPDx8rIyMzNxr66sq65uMDBzbbIusG5trqxr66ytKejm6qztKqopq2smaSupaSorLq/qKu2tr7Bv764srLDsbm9rKOutKy4pYibl6abdr6ghJicjpOZmouul6Gcm5eVm5+hqZ6ooJmaqZmip56YkI2RnYNudpKimpWdop6QrbKjq5WoqpirrqWkn6Wpk5KZnIiVnKKel7Gmqau6tr6zsq29ubago6eopaecnKypqYxjZWFfUktNR0hOSVVMPU1ETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5ScoZ+7r5mUnoyTqpuRkpOJq42Hop6MpK2Uo6O2xr20wbrCwsfIxcHNyMG9ubKvubTAwsq1xrHBvLW6q6itrLCjopmqtLqmqaarqp2or6ejqqq9vKesvLO3vca8t7W4wLC9wLOotLarvqWPopeRop+8n4mZoJmWnp2Pt5+pnKWjm5yhmqils6GbnaWcqKqemZWPlJuLl4mMpaKUnaKeoLSvpaWTsKuZq6yenqSjqZGVlaCDkJ6fnJappKKhtLW7ta2otbKznpyipZqXlZmqoZ53YV1gXUpJRkhNUUlNRUZHQlJMSUFFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+fw6ybl6SXmamclpuaj6qWlqemla2tmaGrtsTCu763wcLAx8O9zce7vbmyr7izv8PItb+vvLa6t6ajqqytoKCaqqrEoqWoq6aeq6+soqmovrimrb2wt7bHtrW5uL+wvsG2tLK0r72jlqOWk5uUrp+QoaKlo6OfkL2lqZ2prJ2doZumn72imaOeoqmroZ2WjZWek56Hj4SNk56koJ21rKaclbKnmbCnn5qqnqCNmZWfhI6hmpuTpaSamKyxtrKqpaqtrJyYoKCSjpCWqZ+UaGNaYl1OSUhLT0xIRURJQT1QSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGVjV02imqOcnsWsoZ+snZyun5KjnpaloKepq5e2sKKqsrXEwr2/tsDCu8jCvcrItri1tLCztLfBxra+sLi0ubWfpqyqq52dnqWjwaWgqa2gpKmtr6Kmp721pbG8t7a1w7Kzt7q+scPAt7ets7S1opyklZGToK2gmKGdqKmroprDramerK2bm56ZpqC9oZ2kmKurrKahmY2an5KeiY5Xf5aepaGguKqnk5i2o5+zoaCbr5eejpmUnYKPn5eWjqKklZClrrKrqaKipqWVlZyYi4+Rk6SfiWJlW2RgTElKS09GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXEtOnp+hmZ7Dp6Wis6CcsqeTq6SgpJ+tqaydu7CorLWxx8PBwrPCxL3Gw7zEyryvsbatsLWvv8W1ubGwurWsmqiwqamanaWhp8Ktm6ywnKqirrCppKe9t6a2uryutsOts7PCv7HGs7q2q7S1ramhpZWVlKOroZ6fmqirsK6vu7KmoKmpmZmYk6KkuKChpJKur6ylp5+SoZ6Vno+QjZSdmqKfp7Smp42YtJyjr5qem66RnpSXlJqAkqGWj46foZOLpqywpaeinKGekpKak4WLko2cnoBiZltoZkpJTEpTQkNASUc7O0c/OTlOTVVeUlNKPk9eXT1IUEJMTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugw6ikqrKho7WplbKrp6KksqyuqbuyrLC1tMa/xMS1wMS9yMO2wMjCtau1qLC4rMDEtLeurLa5pZmrsauqmJ+ml627tZuosJutn660saequrKnubO3srjAqreywryzxae+rq23tKmnq6GWlpGlpKKil5ikrritsbW2oJ+opJmVlZOkoLeipKWWrrKypqqmoZ6bmpqWmKienpihnq+yoqaNl66ZpayXmZ6lkZuOk5iahZaflIyQnJ6Ui6mpqqKnoJmeloyOmZCChpaJlJ95ZGlda2pNUE5OVD1DQU5DOjpJQDc3UU9dXlJWUUFXYFxCSlNIVktIOlVlXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVKcGlWQ1dGjHlmQzukpJ2hpr+mqK+voKm1qp25r6ujqrS3sbC5t6+2uLjFvcPHvbzDwcbAucHGwbqqtqStu63Bw7i4qq2yu6KVrbCtspalp5Cquaqgp7CdqqCwtLKqqba1rLussrK5t6y5sMK6vb6mwqqwt6+pqqumnZiYqqGhoJGYoLCvs6uwuZqbqaCZlpKXpqG3qaWioq+xtKuyqKufm6Cgm56lm6GXnaOzsJqfkJOlmqGpmpWin5aYiZSYk5aXnZOIkJuZlI+pqKefo5uXm5OHjpmLfo2WhY+ba2ltYWxuV1BSWlRBQ0VUQDs7SUE3OlhQZF5QVldEWV5dTUxSTl5LSj5aZF5OSFBOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oaqwqqOxuKmltLOroa21va+zuLy6vba2wMK/ycS4xMK/wLjEvsG3r7Woq7eyvL+/tamusbefl6utqK2Wp6iOp7ufpa2znquisbCzrKm2s7W9ra+xtaywtbHAusS2q7yvsbirrKmisaWepKmfo5eQmZ+yqrOpqrOZnaebmpWNoKaktK6noaysrbGns62yqaOcn6ijnZOgmJuotamXmZKSn5mfoZ6QrJ+YmIaVmIudmp2Tio2Wl5qXpqWjoJ2WlZeUgY+UhXuPkoOMlmZscmdwcl9HWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJgUEtNTlhXWFBKVlZXTT1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FVMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSZoKSst6SsqaWurrapr7O5pqawt8W3sbe+wcK1tLrFvszFuMK/ur+6xLjBubK1rKq6t7q6vrSqrrC1mJinq6qrm6yrj6u8nayusaOqn7Cts66utrG5t6mtrrGnta+zu7zJsqq1tLG0r66moLOfmqitoKWVlZqZsaOtn6WvlqGkmZmSjaKlp7Kpoaaxq6m1pa+xta+jmZ2tp5qXnpmZrLijl5OQj5icoZiXlKyfnZSBk5mNnZ2alpCKk5KemqWhoaCZlpKTlnuLkIZ7jIqDi5JrbnhudnxhRmFqWUlIWVs9e0pHRTZBYlRpWk1cYUpbXVpSUlJiYExLRV9hYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENeUVwuKkIvSkdQW0gzY1lVS0SZlqCwqLGprKWjrq61qbe0uKOrtLfJu7S7u7++tLS3w8HNx7vDvLa+v8C4v7yxva6nurm3t8G2q62xuJSXpq6rp6OyqZSvu6StsrGnp6Kys7CysLSxuLOprquyp7ivtbPDxbaotLWrsK2pp6K2n56msaCklJuZlLGep5ufqY2pop2blZelpaW3p6Kxs6unsaiusLWspJmgrKibm5yblKm4nJSOjouZnKKYkJemoZ+WhJKWkJ2cmJaWiJaPl5unnKOgkpaRkZd2hJCHe4WBhI2MbnF3dnx/XUxlbFxLTmNcP2J7R0k4R2dXZVtMXmJNWFlXVFhUaV1PT0hhXl9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydGYUxWJS1CLj1FTVE8M3JrSkRDkJmlrqStraunpLCys6q3sLafq7W5ybmuwbzCt7OytcLDz8S/wb20vcC/ur+8s8Soqbmwtra/vK+ss7KcoKewraWmsKWesrWtq7KwrKmotLmstLK1rbSsqauorKm5rbGwx763pLmvqa2tpaitsKWjo66jqZydnJqvmaKjoqOQrJ6jn5+hqqWmuaWrtLSkqauprK+2rqKdo6iqm5+ZmpKktJqPiY2HkaKglo2UnqCUk4WOlJKdm5iWlYeXkpWZppufn42SkY6Rd36OhXx8fYeKinJ0cn59flxTZG9eTlpmXUZElltIO05tWGFbTWBhTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGRISis6ST8zQklTLD6Paz1ISI+bqqqiqa+kqKOytLG0tbGxoautvMu6rsC7x7G0rbTCw9HFxb7Asr7Bwry/t7zEp623rLO4vMCwq7KtoKSnramopLCjqrGqr6ywrq+tq7O6prawsqmyqaumpaOtuqyqscK5tKu5qKioramosaWppKKuqqiinpuirJWknZeemKudoaepoaylo62st7GxoKiioKuusKydn6eoqZmkmJmPoKeYhoOOiYufoY+LjJacj4+Gh5CVoJ2WmJWHlpOTl6ScnZyLkY+Oin9/iIZ8d3+HhYd0c3KJdmxfWWBuY1FzcVxLO4R8Rj5XdVhgWU5jXE1VVlVXUFxiXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLklnREY4PEIwNUVLWDFAlFs/TUaVmK2noqqynKmor7asuLWuqqWrqr3Ju7C+uMOvsa2zxMPOzsO+v7TAw8S6wLTJxKyvt66yucC/tK6uq6WnqrCpp6ixpbStq7CurbGvs6yzuqS4s6ysrqeroKKesLerqq26tqS1taSpp6ysqq2hqKamsbKkpqWhoauWqaCTmqCmnqSiqqSsop+nsbesrKKkopupqq2pnKKlpKSYoJmWj5idk4GCj4iFnKCMio6MmY+Qi4SNmKSbkpGbjJOSkZSimZuZio6Li3yGgYKDenSAhIJ+dHeMpId5a15gbmdXZYdkTkBnkkxEYnlXYlhSZVVNVlVVVE9cXWFVS05pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIZASEhEl5KvpKOqsJeqqKy1q7axq6Srqqm8wMC4ubO8taazr8TJy9G/wbu5wL/DucG6wcSusbWys7vBvrOxrqyrq6i2qqWtr6u5r6ixsa6xq7WqtrWntLarrKSpqp2jnbOzqKiktLSgta2hqairqaynoKusqLm2qaqpqaGpn62bkaihnaCkoqaiqZ2cprSup6WpoqOYpKamqZyipKOfmZifkY6PmY5+h4uGhJ6eiIWLi46OkI2EhpWjmo6Nm5GSkY+Sn5eYloyKg390hoF/f3h1g397eH+BiJ2Pb3FnZ3F4XGBziGpPXZhWSG14VWRWUWJPTFVUVVBPWFtiVUhQalRWVEdQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJRYzAyP2Y9Tlg/Qyw+TFRfL0prNlBFO5WOsKClqq2Zq6SsrrO0rqqlr6mpur67wLGvuK6itrDJx8jQwL69u7zCvbrDwcC/rrKysrW9vMKysrOqs6iktaikrLOzua+jrraxr7G5qriuqq62rKueqqyfo6C2raihnq+zobSqnqinqqSqoaGsrai9r6yurKGnp5+rmI+vopiioKinnqebmaqwqaOfrKKhk6Kio6aYmamll5eYnY+Kh5WIfY2GhISkloWCgouGjo6RhIWUoJeIkZ2Qk5CNkZyUlo+KhYV4dIF/fXV4eYB7dHN6aYKHo3VpXmVsgnVniIx9UlhwXkp4c1NkU1FeTU1SWWZOTFZZZVlGU2lSUj9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTGg6NDhfPWFkP0YxQ1BbWytITzpWQjSQj7GgpKaro6akrKa0s7Cpo7Cnqri+wLywqLmqp66wycbI0cK9v765vr+8ybzCubCwtLG6u7nBs7S7rLiso7Wmpquxtrmyp6e6ta21vK+8pa2ttautnKmvo5+lrKqnnJ6qs6SzqJqqp6mkqZ2jqaipvay0r66dqaOgrpuasqOVpJukpZ+kmpqoq6Wem6qhm5KboKSdmJapqZGYmZOQioKPhX2PgoCIno+Gf32LhpCPkISAk5uUhZOijJSSi5GakZSHiX5/cXp5fnxpd3x6dXFxfWiGeISHZGBoY3KFem1neV1eVkJXem1UYVBSWUtLTnF0XUhaW2dZRVVmUEQ+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTtFWj8qj5OxmZ+fqKWkoaukt7KypKiwp6y4wb21sKO5rKiosMPJyczBtr2/tbe/usi2w7W0s7Wxvbi6vretubW/raGzpqmqr7W4tKqeu7uosr+yuqCvtLaprJ+usKKcpaipop6cpLGmr6Cfqqmooqqbo6igrbyorrCuoauio66enqyml56aoaOcn5uao6qimpqkpJWWlJ+hlpuWpqyLnpGQkYyCi4B/joF7mpSNiXx+i4WOj4yJhZKYkYeUo4mSkoeQmY+TgYh8eWt9dnl4Ynt6cXBxc3hpgXNqg2dkaGFvc45tYmpwYHBBXHhrVl5OUFFKSk1TWVZNXV5tV0RYYE9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDBCaFkxM1M9ZV9ETDZLV2VPKTwzUFs9I5KYrJmfl6ekop+opLivrqKvr6mruMK6sq2fuK+rqLS6x8vHv7fBvq+0vrfEtsOxrrmyssC1u764qbm3vauktaenqbCtubCpmrq8pK6/tLShrre1p6ensLOgn6Smp6ClmZ6tp6ieoKmup6Cml6Opn7C4n6Sxr6Groaykm6amqZqam56jlZycmp2pppabn6iSmJOYnZOZlaGqkJqJjZCHfYd+go18fKGMjIh5g4yEiYyNhIeTmo6JlZ+JkZWCi5aMkH2Ee3NvfXFzdGB5eGlvcHFvan9yZHpsaWZkYWaGgGBbc2pyTU1/aVhaTVBMSkhQUlBJTlxfb1REWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpoSCo/MFpZNSiWnaWYnJatoJ+hpKG3q7CjtLSpqLnFtrKuoLesraywtcbIwLe/wbmwtL23v7u/r6u9sLS/sb3Duqm7urenqLaopqqwrLOwppq8t6Sru7Wun7C4r6mmp6+xm6GkoKOjoZacr6ahn6Knr6KgopOjpaK3sKGmsaufrKKumJyqpKiel5qdpJOanJqdpqqZnJyklZWXlZyOk5eiqaGQiYqPhXqEfYSKeY6Xio2GeYKHhIiMjoSMk5mMjpaZio+WfoaXi496gHpwcndvb3RfeHdkbGxsammEbmZzaWtmaV1kc4FgW2t1aVpJfV5bWE9PS0hHUlVGMjleXm1QRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbDg0R0FmW0hURFVdaEUuPDJiVSwylqOhl5Sbqp2koaKgt6quoLq4pqy9xbOwr6O1sK2tr7XExLyzv7q3sLO5uLq4uq6tv7O0uK+/wbisvbq1pqKzqqaosqutsaGbwLWkp7W1qJ6yvKqopqmvrJmjp5yjppSYorKkmZ+kqKmcoqCTpKCkuKikp66mnqWgqJKfqKKhoJibnaCSmpuWoKGqm5uZoZSRlJaZjZSSo6ikkImKjoV5hHuEhn2djYqKhnmAhIiIiJGElJOTjJCVlI2OlHuDl46Ld357bHRybGxzYXh0aGhqZ2ZvhWdoaWNmaWpgaWJqZ1tle2NgU3NUW1tTS0pHSU9TQCEqaV5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc5ZU8nMp6jo5GOo6ebnZ6do7Wtpqq5t6esw8G2sKyjta6nrq+3wMC8ssG2sa6ytra4t7asqb2zr7Kxvb+4rru8saWftqulpLSpq66fnsKrqKWwsqmstLueqaqrsaWYnqqdpqSRmaatopiepKmhnKKdl6Cdp7amr6qvoaCdnaGUoKWfoaCZm5mckpmdlKWdrKKYlp2Uk42Vl4uPmJqooJGIiYuIeYV3goKBnIiLgol8f4SIhoWRg5WVj46QkZGRjZJ7g5WNhXN9fWZ4b2tqbGd1c2tjZ2RkdYBiZWZmZWpqZGtxWl5ZXW1kYU5oV1pgVkpHSUtNUlg+OV9saUhCVFNcW0lIRkVBLjw/OUE4OVJHQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFlKVmJmQTozQWdIJTWao56Qi6yhmJiglqWzsaKxvbehsca7ubGxpLarq66pub27u67Asq+urbavs7izqKu5sa+ttLa6trC5vq2mnrWroKCwpauunqTCoLKjrrCut621nq2vrK2imZynqaSelZuopZ+ZpaOonZqgm5Scna2wprmorqKgmpqemZ6jmqSdl56Ym5SaoJKolqqnmpOampGLlZmNlJSZqaeOjYqJj3yCdIKBipiFh3yJiYSEioyIkoSTnJKSj5CRlo6Qf4CMjYJwgH9meW5oa2pncXJrXGhjY3OBYWZoam5sZ2tqZ21cbGx1cWFUYmhkZVpJRkxNT1hRUVZhZYFUQFZTWVRGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUplQyc0kqCajo6wnZqToZmpsrCfuMC2oLTCu725saa2sKiupLe4t7etu6+tqqu3qrS5rqWztbGuqbG3trGztbqnqZ+2qZ2eqaOqrZypwJmto66vtbWtrZ+xra+popuco6uom5Wcp6OdmqmipJaaoJyQm6Orqqm7n6ikn5eamZ6hj2uilpiccYKWm6SAdZKpp56UlJ6QiJeZgJaKoZB4hpSMg25qfneDcWyGi4Z9hIuGb15jYGeEl4Zri5CUk3V3i4R+g49/Z4aAaHVpZldcaHNuTlBqY2dyhGdfZGZubGpeYGCKkISGZ09LRDhGVGdeSkdRUFVVS0hTYW90ZUZbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFRZD0rL4yjmYeUsJuck6Gbqq2ro73Fr6m3wri9va2ntrClq6S4s7KzsbmtqqestKawtaOouLa1qKest7OutK2zo6qftKueoaScp6eZrLuVpqWvsretrqWorquspaGfnKCnppuXoaWlm5unp52Tnp+YkJ6oqqO1r6Ojo5uWl5iXo4ihjpKah6GHlJ2hf6V/pqqekpGakYiDcniNjoWIoXaJjWmXiGZ9c3ihb4iHhH6NfH+hoJ+ZgHuHnnSIjnabimyHgYNsaGVjemxxYlSGbWNsaZhxWGpwb4dYXmlba2tbiHFuenKGaIeEWl5GTT9HX01GUlZWUVFSV1RnXk1YSlJST0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiMppeDnKudmZmdn6qqp6m/w66xury3wL+qpbewqaymsrWur7O2q6mlsa2ltbOcrbW2tKanqbOxrbKor5+robKpoKOjmqKjnK61laSkpba8pqynqqqsqKWhoJigpqOZmaajpJicpKmWlKKclJOkpaagtqOjoKOYlJKXk5uIro+YlImpi5eim4WxgKOsnZOZnZR5gtSof4eVwZvHeXixpbeXZIDAnL95hIR5kIR8kJCRynGWvJzFe3K2p7qQeoFslrGrsHloa1ixrm5labySvG5oem5yj9h+U2pitrJ/gXKUdZqhqpBXT1dhT1ZORlRbWFFQUoxcV1xQQFxEUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaTgaapn5ecnqWtsqiwwr2ytcC1t7/Cq6azrKypp6+zqq+2s6ioprWmp7ivnbOytqqlpKexrq6xpqqep6SxpKGgnpecoJ6vrZWeoZ+0uqKqqKGtrqWinZqZoaefl5unoJ+YnqenkZynm5SdoaaioK+in5+jlpaSl5GYha9qaoqNqn5nhJWHrWRwnZyTmaWUca6hpH54u31roY92sV9qtFulgGackWBmgnpmf2p4aqllvnJnpox2smp8sXh0kpNjbW2nbVuEoEVoZ4eWRXWcYH1ofKSngllfi6tpgJV4emqnN0qvW1dTbWNbS09YX1xXVjtOiE9XVy9JVFNJREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5GilYKsp6Weo6WqsrestL2+sLbEsri7wqepsKuuqamwrqSwuq+kpa6zo6m5qZ6zsrCjpaCqra+ssKann6OisJuim5eVl5qcraaXm6GetLOhq5uira2gnpqWoKGonJiepKCcmaGnpJCdo5qXoJ+rn6amn5qfoZaVkJaQmYW1m7V4hamZtZl3h7Obt36TlZaolH5rgaZ6goaIkpSSd6tna7FbrHuPh5R0iHGPhoCAiJCXeIOCi5eMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinS5Rom5bU2toYExLXGRYXFpCPrB4V1hBI01oRUNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dXN0o5YVU1MBuVn5SIs6amoa6pp7Osqbu2wrC7wq24t8GqrK2urqausqmhr7yqoae0raSrtaWmsrOno6KeqKqyqLCopZ6fn6+Wn5mVlZaYnq2impqjqLSuoamPqaiqm56Vl6Ckp5qenaOfm6CjpaOVm5+Ymp2iqpummZuboqCWkpGTk5yD1ZOZuXCwwn7GhnzWlJu7fJmVpI+NnI2ke46HpIKlgnqseY+dVq97iX6farlauXeGg3ymgpN8mHqqeY2ckHuxbY6EdJC8hW+UUK+nxYpRoHpjYKpic3KIbZeIYFO1tMiGgIl8Y6QzQp12XVFqaGRQQFhnWmRhSkhNbEtbU09ZZlpDRD9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tdT19mVDdHOmFRNzIlm6KTmLGoqKW0qqW0qKS8t8GwucCxtrW8s7WnsbCjsLKmn662qJuoua6jr7Ggs7SwoKSen6iqsam0qaScnZ6ql5iXlpeVlqGrnZuWp62wqKOej6yiqJael5uhpaGYoaGioZqioqebnqGelZmbpqCcp5Sbmp+hmI+SlZGdiLJuaLVxq4dvjqZytHNytnuZl6OLjpyNon6RoaV+sHaDkdLRdlyufIZ/pG+bqqZrhoR8rX2XmY97sXOTnY95s2WWdISeb55mlFLIi1rCXJ95Yl+tYHZzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPa19saE9VR0k5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCT1RfZVA1Rz1hTTYyMKGckaWwraSqu62mtKWntru8srq/t7a1urqzpbS0obGxop+ssKSYprqupLGxnbS4qp+mnaKqpbKoraqkmpyaqJ6VlJiYkpKjqKCXkqWrr6ailpOtn6WSlKGbpKaflJqmpqGao5+tmqCenZCWm6GdnKWUnJWZop+VmZaSm4Wse3eodqOOiYepb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9d4R9jp2HmZl3r4aKkZyIeLNhmmWagYKUbJJasFhLmnWYeWZgrV53d4domIhrXq93lZ6PeGw1eciusl9BVG9eZ2BFUGxfcG1WVU0uZWNpU1lROkFEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD5WX2NONkdDYEk5ODifnZSguLCXtMGtqLKoqrK6uLS4v7m3sra8taS3s5+0rJ+fqKuflae2q6ixsauutKSbqaCgqKG2p6aqo5melaWhlJObmZKUoqWak5CmrK6moJWZqZ+ij5GimailoJWZpaidnKSerZ2hnaCNlJ6bnaCYmZyVl6Kgk5iRpp2GqX19pXihj46DqnCti4GnhpWfoYiXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pkcnuBa5iHc12sWomgjmtuZU9KQ6FcWkx0XmJmTVphX3J0X0pWNkqak1lIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4wMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8yVV9iTDdGSV9DMT84oZ2Zmb+rl7TCrqutqaW0sLixtb+5urOxt7ypurSfsKSepaennpSqsamwqbWsq6+hmKGgpqSkuqKjq6CXm5GioJWUnpqUmJ6gj42MqK+vpp2Wm6imn4ySpJenqqeUl6mnnp+go62koZ6hjZWhmZ+gkp2XnJWeoZWWj6ubj65tcrRyqYx2iqZztHhzs4CRpKKRnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZOIrWt1s2GdZqJvh5Jql1ytYE2hfIeRUnOjbXp/fm+Yh3Fcr1Y8nHdmVG9uLlynT2JSa2VhbVliXGFwe2NUWlE+Pm1wM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs8MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFDOKWam526oZyywK6tq6unt6m4r7XAtbyxr7m4qsC1qaqgm6ajoZ2SqqqotqOyqK6qoJecp6Clq7ido62blpmPpaOVjZ2gm5icn5CTlKu1r6eZlJysqpeMk6WZpKyikZeqsqSgnqersJiho5CZopegm5abl6GTnKqclJGrmYfUkpq7c7DDgMOGftWWm7h4h5CXjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gYpumohxbo2kdL1dd31bYXm8a1pWW2p6XmpgZGZibXdvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnmp6hvKKXscOwraqqrLGnua+2xLG6sq67sK7Asaykop6joZybkamkqrKktaatpJ+WmqqZpqy4nKKumJWhkKWgko2co56YnZuQlZKvubGslZejp6eUkZaknKOsnpGgqKufm5+oorOeoqWOp6KUoZqcl5akmI+woJKUqp6FkJm1gJCRjLeVeIKTmrV3bWtuc255j4SOiXSewbu9mnuBsqhwgHSRuIN8hoaLh417ioaNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtXRycHe2jF5/en2JaIN5bXlii6xwdYV/WVunakRkWVNmYGNdY1BnZnFtdUJOUExEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPTs8p56goL+llrPDtKyrp6yrqbuusMavtbOut6e0uK2poqGlnqCdmZSrpK2qprWop5+blqCjnqykvqahq5eUnZCim5KPoqiik52Xk5eUsrW2rZido6Sii5KRppulqpuWqKSlnJqhqKWmo6mhkq2fl6Oel5aXnZ6PsKmUm6ehjmp+aZymeIdzfpqPdHplh3q9vsC6b5KCcZWHX3JqWl6aiWFjiI6Va2B/lWNtnHZilGt/mpWUZV5gY3GbimlyjH2GlWdqfnJ0eH19Ylt3dIFoUFxug3x7i2tYbHqCcklKb4VwTXRNRVddZmBMW1hnY15PW211aXFRT0RFTTtISTxMPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqifqKHBo5u0urajraWup6i1sazIrLCzq7WjvrGyp6CiqZ2im5qZrKaupKW1qaWbmJWhm6etqL6nqaaVlJyVoJqTmKWpp5GdkY+XnLCyv6ybp52noomTkamaqKSbm6ugo5mbo6asop+qopqwm5WmoJaVnZ+dl7GlmKGnmJyRnZyjo5mmopqcmpqZj5aBZ219cXeSl5SRhYq1qo2GmJWPioyYl4eUlYqEkpORiY2Rk5iUmJeaoKKanJShnY6CeqWFbGp8kHyAdImKgXGCeHl2doqAe4lqc4F0g3Vjd312a3B7bWBjXXBnTVlZZWpfV1pwem5tZlNPRlM5T1pOUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzoLOiv6KksbK3oKqlsqelsLWqyautsaW1psCntKGdpKWco5WWoKqmrKOjt6ufmZaWn5etqaXAnquklZKcl56Yk5Sin52ip5ORmainssOvmqucqp+Plpapnaqbm6CtmKGbnKKkr6ahpKierZiXpp2ZmqGenp2woJyippWYkpiToKGVo56XoI6Wk4qKjY6WrY98lZuCkoKLqqiGgZiWioSPn4h7hJCHhZmQh4aJlY6bl42QmJ6klpqTkZ2Nf41mobOvhYmEdnqPinx2eXpvZ3mQgYCJa3WBeYhyaHN/enaDiIJrdGR5ZmBpZGJkZmpZa3twaWpcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76sq66ysqCqprGtoqyzsMWwqqyjs668pLScn6WioZ2Zl6ilqaakpbO1npWUnZmZsKauvqCro5CRnpqZlJGVoZyWqJyEnqmrorPIs5+qo6qXlpeap52omp2jq5Oen52gqq6ppaOroa2bn6ChmaWenJ6dsKSYn6iTmJeckaSZmKidmpdmg5J8ZX6NmY9jeY1saGt6kaSra2WamH5nhYplZWloe46hjmtojJeRondraouYo5+Zc2xueoSMh3pYZV6FgV5siomAdlxoc3d3kYCHgm54gniAc215g3R3iIiOg3tqhllea3RkXXOJaWp8cWxjXVFNV0pkWEBKND1GNz9GRDcxPD0/QUQ8PERHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsaqlqK2usKaurbC9samnpK2vsJ+tl5+jnaGamaernK2jpaipsq6elaOQoq+mtrmlrqOPjpqhmZOSm6CZmKSVe6Wsoqizw7ekoaeun56VnqOeo5uiqamSnqGeoKqvqqujqp+om6afqKGslqGbpbCkl5yqlaGem5Kll56qmJ5+voOHcrRyhJ2GrWh4ucS4cZOio3ummJlzqoJ8y8DAu3GLooeCn3yVmImewL2Clp2ejZ3CwXuBe5KNmsPAfWulsW+MgG/Ken+bd5GDjoF2eoF/eXF6f4dxeIWMk3ltd5NiZl94ZF9lgmNedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmolKOvqbCuraayta+qpaamsKufq5iaop+cm6qnopyso6WopaS0pJ2ik6atrLezp6+ikpGanaWSkaChl5ufnIemq6Srrb/AsaCpr6mXkp+dopmhoqmjk6ChnZ6trqispqOip6ClpZ6tqZGkm6mtqpydqpysoZaXpZWho5ecf86UeHqkgXmVlptfro9ejqeBoqB8p5WbdKuDgK9eY42qeqeHhaB0l5KIs2OCq4ahjo2zaoSudH2Wh7hhgq1Zo81uj3V72nt/mXB+iJN2fmV7iHZ2a32Ibn6FkZJ+bYGPYHFrcGdgX3lkXHFoamRmYFJUUldeS09DNUFIRUQ4PjY7QD9BOz03QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcLAv7W0sLeXnpGkqqits6umsqytrKSrp7CqoKebmaWXnKKvn6CeqKejpqGesKybnpWnrq2xqqisoJSSm5+lk4+fpZeeqKOeraSqsKjAxrOoqbGulpKdnKKXnqiqn5Wgn5ydrq+nqqmbp6ekoauSrLSWpqKqqZ2jp6WhsKGTmqeaoJqUlJGXoHGFjJd0hKiHcbF8nXGsfqGegaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIooyRi51+q3uJk4+fgHutVpzEeo9vksF9gZVtdXCMbWV2ZYZvYXducm+Ki5KQg22RkGRvdHVwYGdtZV9vaWluZmNXU11hWVJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytJ+do46jo6Gsr7auqLCnqaqorqurp6KknZmilZ+mq5+hpaCoqKKfnbCsl5qWqKevrKinqZ6XlJqjopKUoa2bnaajr6yjq7Squs2xraauq5aUnJ2imZ6srJ2WoJmdnqmxqampm6upo6Ksm6+xoqisrqWYpqqpqbGikpejpZqUkoSkaqR1iXqpdHqycIKliZmMcYigmoekYGBSrIR/roObdq6BpoaGn3qZloZ7ZoCjiaSZhoGjfal+gZSHrl58qVWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojY2Yj4FtmpNvbXl4d29sZmVlcXBmfGliXVdgaVhYVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfDydbVwKGZq6ihr6KesLSwr6mso6imqqqrqaSmoJuknp2lp6ajnKyaoqyhpJ+vop2akqqktbCuoKmbnZaUp6OQmqKon6CmnLGmo6exrLbIsrWqrKmVkZ2copmfpLOdmqCUnJ+nq6ujrpqsqaKhqqOzraKqs7Ghmqqorq+2o5OWo6eYm5F8qmyehId1q3l8sG+CpIuJn5aVn5SB0ri0uMmAgbJfX5Spg6SIh6B5mJWaeKrJdJmjlaepkJKbjH+biZrGxnhloYKlc4GfjoJ9r15wtWOxdUujhm2nR4KTZI+QnpJ8cJeTf3B7dX17bltlanJxZoFqX2FZZG1cXllJTUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz4tNU9UUR0cOzxGMiwkp6TBxrmtqbKtrKWinLK5rKqhppuopqqsqaagpqWYq6OfrqudpqCsmp6ppZ2ntp+il5OoqrayrJumnKCVkKWtkZmcpqKgqqauoaOnqbC0wrGzqq2ok4mXnKSaoKKuppihlZicpaarmq+draimnqyjt6yhsrmvnZuvp7Ozs6WUmKejmZ+Ogp1OeJqBf596g6N9g6SEh6efnJ6ThLh7fHm5gn7MxsK2eJuhkYuffZqWlop2npiKpJijqH6whZyFnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkqSXe32Tkot1enOFf3FcbW53cmqBb1pkX2huY2RdS01RVEJJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamrpKu4q6+gnKGss7Omn6CVpa6trqqnnaammqOnobKuoqmmsqCZqaSUo7aiopWXoqm0uKScop2jk5ChsZmenKakoaKvrp2kqKG2ssOxrqmtqZGHkJynnKKinKWXnpiZmaWkqJquoa6lppewpbytobe3rZ2dtbK4sLOnmJ6voaOehY/RtcO3eYeOhZGTkIGmeJSid4ygkoSlgYpxqoaEtG5yapmjm5WKn3yYmYaHj3OvgqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5SmmH6MjZOLeH15joJtaXhpeHNuf3RdZGRubWZnYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWTc42Krb+/u7q1npeopK21oaOZlaOpp66qq5mlop+loKC1pqKpp7CjlKyjj6Wto52QmpqqtLSknaSdqZKUl66goJ2mo5ynnLSaoaqjtqvDr6mrqaGMhI6coaCloZWampyYmpmmpKaYq6etoqSbrae+rJW9sKyforCzuau0p5upsaSnmHqokH18sHeKgaSliJxtsm+hh618oY+DqJWYgKyIha6Fn5SpoKGWhp+AmZWAe5J+q4CdmpaKqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrrl2la3GFmV1gW4ygbZWSp5mClI2XjHt7g5d/a2x/Yn10bYB6YGdlcW5oZ2hDWmFbPUtUMlU4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JNzA1Mi4qLEFUVlZWVVRVVVVVVFRVVFNUVlZXWFZVVVFIRklKIygovZKahKnGwrbBtJ+arKCuuKWkjpuko6Cvr6qfpJ+drZmeuKCjq6CvqpquoZCqqaSWiZuQrrCsp5+nm62YmI+soqGdpaGZpJytmJ+oprapwK+lqaOei4CNm5qfpp2SlZqalJqapaOkmqisrKOkn6qovqSXw6yqoqGssrqrrqegs66oqZh2r36Qi5yFh3y6roqYZbCMZZWtfaGPg6aVmoGsioSwhaWZpKGhkIWgW2xqgbNgf617e4KAsWxnbpmXjIiwW320W6SDa8iiZZ+Ae7xZdrVasn1Sr4B6rFiAoW2Yj6ibi5iRlpZ7eY6dfmRzfmKDd3SAfGFqZnFtZmVlT1VkXEJUXj5JKD45PTQhIi0lHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFBSVFdaXmBfYGFiXl9cW1hVUE5KR0M1NTMvL0BVWlhXV1dYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wrOjm6ympbaooYuaoJ+ds7OpnqOgnbWYoLOoqquer66fq5uVr6iijoibjq+sqaeip5muk5mPqJqinaWfmaOipZmfo6myqLyvpaidnI59i5uVoKCZj5Kam5KZl6ieoZmorqempqOlqbufoManpamhq7S2ra6mnrutrKyVgKmSo6+Pm4CHpJeYkIGAuMO6g46dk4SnlpyCrIqCr4imm5ulqpB+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGqjgW+rhG2df3qysMeDaquwvax4d6K+u3SAlo6mnZCckZeceYKRm3pjfXtkjGZ5gntga2VramJQYltTalxAVGFCTik9OjQvHh8kHiUyIB0kKDA0OTY2Nzc7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbO0sb+5sr2yop2upqWzpp6LmKW+qbexqKG/pqaynJ6xnLmonq2vpqeVlLCsl4yDm5GupqOtoaScqqCYi6OSp56nnJqgqKKYnqCsraq5rqijmpaSe4eZkaabko6RmJiPmJOomaCYqamhqqeho6u7nqnFo6Cvo6uztauvqaC6p66umnN1qqS3hmWJoHBnrY+Kj21vd6SQmZ+Bda6ZlXCPi3GVqKObl66kcm1tbWWKeG9tgplxgHlpcWlniZaVmHFoaYSGZ3CGZF2JY2pvWV1nfnemYGJxjpFvZmSAjZKOopiYmZGWnnyHjpV2Zod4aI1qeX55ZGxjZmxiS2VYSmxZOlFlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6q6ubKzqqmhrp6ksqmYkr2yxMi+tqqewKuso6GnrJ+6o6StrK2mjpauqZCMhZWXrZ6mqqKfo6OgkYykkqeZqJmWo6mglpylpqevuqusmpuSknuEl42lmI2RkZiUjZiVp5SfmKmjm7GnnqOsup+wwaeks6assbKrraunuKOtt5aKoailtp2JlqKYh6makJSdk6qzmZujq6CxlqGhnaCinKCkoZWrpoySkoyHkpyclJCak5iQjZWGgaSal5WNi5OSio+GhH5nin90gnZ0h4xxp217lJGUk4GBj4+Pj52UoZaZl6KCiJSNcmmQd3CLd3Z8empsZGRvY1VgWUBpW0hjYU9aK0Y9KyYhNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRGSktLTU9QUVhUVlleX2FjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKaWqaqltbeurqKwpK2goLWxkI6rxr3EuriqoqWdm6aesamjtqedqbWnqJGYrKKLiImPnKiWrKShmaeenpOVo5eomqiZlKaho5CbqJmhtbqoq5makI18gZSLoJSKlJGVkJCTl6WPn5qqoJy2o52nrLenr8Guo7emr6+wrampsrigrryZkaajpraikp2mn42pn42Sn6Osr5qho7Gor5ejoJyjqZ6enZyWq5ySmaGblJCWqpmNmZmWkJWekYmgnZWUhZKMkIyUioB+ZoyGdYZ2eYiDc5xqhpCUlJGKfYyWkpKYk6GTnpeihIiYh3pylnN6in9xe39qbmRfcGlgW2BabWNQYGRQWzpHR0Q9Mj09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWNhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaetoKi1qpCQnaa0u6+srKKjmnqdorGkpbCplpu5p6OUmaqcjoaKiZyjkK6fo5aooKGSl5ibr4uqlo+omaeMmaiPnrm2pKWZm42JeYKTi5qTiZWSlJCNkZaijJ6eqZ6fuKSAhK+1orCvdKS+o7KgeHqgqrG7lHWspJ6JgKp+ZFxidqCOpJ6El35uk7Oco6euqqNlnZ+Tc3mZl3CAmKiXbH+iqIplnKWckZeYlouRm5GGnZqQlYKSh46OkomFd2uPh3aGcXyGgIBhaYeKlJKLW3aVkWdokI5ye6aZmWV5mYeCeJhqhIqCbnl/a3BlYHZva2toXGZlYmJvU1w+Tk5OUkc9QFRCOTEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJGRklLTVRUVVlcX2hmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mm5Wmo6GwsayrqaWoraOnraSSlau2sLKmmqqnq5dzjJ2wn6irp5OXuaCgj5yknZF/iIibno2rmqOVp6KejpeRnoV1rpCIppqokZekiJy6tKigmZiLiXV3k4yVkomTkZCUjI+ToI6boKeZnLOWgIyctZ2zjJKPvKehfqeieqKut4GOjaaeg4uFj7Gpr4yKlqOaeYGLrIacnaKnqaeHlYWYd6WbeoebgZemgoF7nLF6ioWgl5mUmJaBkJaWhJmZY3mHkISNj5KKg21wj4d5gHGAgYV/hnSGhJWSeJZok3SgmnR9mYShnYeYfpKLg4OZa46NhWt4e3FwZ2R3bmlsaltla2plc1xeSVRMUUBFNS5ZVFU2KSEwOT0+NjQzNTY4Ozo9Pj5AREg/SUVKS0dTWFpZW2FhaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyXo5+mrq6rqKygqLCmp6mlmZSux76woZamqbWej4OdrJynoqCNkL6emY2fmqCQfYaPmZeIq52ilp+gkY2TiYaAkaiOh6Kco5OXnoaeurKnnpuSjoVwdZCIk4+Jk4+Pm4uPkZ6Rl6Gklp6siJ+0ibSarYvKh6quiLeFjbCCsK6DqY2mmY2dfKiPcnt3nI+nlmiVpHm0i5+epqiSmcKBf6uImKFxnoCZpH2XhZWxgKF8oZSgkJiWgI6Tm4qXkYt8hZOGjZWTiYNtc5GFf3pyhoGEfIR0hYKXgY/FZoCph4+ja56DopqDmoCMjoWKmXCNk4Vod3R7dmdodXBnZ2xeY29sZ21YaEddUUwyRTQ2TWBjNyYzPERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWV1jZmhnYmJiYmRjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmUl6KfsKipqKWroKS5sKqrppqUoKSlq6OWpaq3o69/oaecpZ6diZS9mpONoZGdkHmElpaRh6uZm5uZoYWPjHebnI+gkYiepJuVmZiGormupJmcjIx/Ym2PipKPjI+MjZiLkJGejpSgoZmhqH6hp4etnaCWro+enZ2RhoGgjaquhqSNqpqMmn6idoCZlGuCrHVNq3iHjZ2Rm6ingKqrfYOhe3qnaZ5/kmtnl4aXtomefW5gZFmDln+Me2RoinKZfXmVbF17l21fU3CEXF9seYNgWWWCfYSBmHGnqmuDo25ypXCfhJ9qZZ9sW26KfGZaX4N/YldQb3ZlbXRxampvXmpvbWxqWGlPXVhFOUE0R0NeazQsSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhYmlrZGJkZGdkYmdlYWNol5adoLmhqqOmrJKhtryrrqKZl6Cipq2toZ2utaKokqGgoKacmY6YtJmQi56MlYx1gZSSjYqmlpWYnp5/koWGrKSHnJGKmKmYmZqSh6Wxp6KVmoiJgGluiIeKjY2Ji42Si5CSoYuUnqCcoqV/k4GPo6GUoHeclo+ng6Gnf4aprISleYp9hJp9onByk4iWe56MeW2HnIyZkJuomo+HnXyConN2pmaefnakX5h6fZJzom6Yt7S6dJKHgn+1qGSBxrh7cJW3i3GAm6Rjc6yrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoSApGCdmbOWcXyXn7R0c1uesoNqYm90dXFob1hrbHJzZl1pXmJLRD1ENVFBWXEzPVNHX0pSPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWldgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLi1rq2gm6Kco6OmrZybsa2sk5ehmaGkmZqUnqubi4mSeIuGcICWjYqPoJCTlJ2XfZCJjqigh5iPipGik5uajIuoqKWej5aHhH5re4d+fY+Ng4uQkImPlKCClp6gnaCfi4l3nJiijKByoouIqYicppCWp6p+rox9eqCZeqOTeIF0loiNnH2WoIebjpmbpoaiZKF8iJaQm41snmibjW6amXuAiqd9cmh0q4Odg3SqZ5SaXZuFdoSdaKpqgLhmXKhwgZxhlYxep3Z1iYp/nmiadYeTkpiOf59umpBtp5ldqH54u2t+qluOhF20Z1xucXp4a2lbcWp4eWNgZlhiQVBFTjdWQlJuNEtaWl9OWkNAMTUxOzs3SD86Q0dUP1lSWV0+RGJeVmBRYWN9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtZuniWOUm6y6srCsnaacnKifnq6bnrCorJ2XpJqhn5iWlqCjmYaJjWqIgHJ7l4iLlpaEkZSYj3qKhJaknYqUj4WLnZGcnImPqKOgmYuRioCAaYGHeH+Wi3uIjo6Ij5aaf5Sjn6Cik5hyaJ+Kn4+McZKMgamImZ+jp5+nfLCto6K4l3ejs6KkgIiUeZ17q5p/oo6dm5eJl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmn50qlpdb3uWi3ieYkx+enqFY3mXQk2fWaJqcXyObYGJhJl1m3mHibGzf3+bk6d1gZ1ucn2Ub5lzaqRdlXZIZWNgc3F+fm5lYGxodnxkZWJSXlddVFZAWUVRZ0RTV1tiWF5JRD1COD9COklFOExEV0FWUVtWREZiXFpgS2BtfnFFQzxVX2JaZWpWZ2htb2JmZl5hYVxdXmFoYl9lZHZsXmVnZmtkZmxpaGtpk52Bsa2ZhFRfoKezubOzqZqijJyrnJyplKGrpKGoj5+enZqZlZignZaIh4l3hYFueZWFkJuLfJGTlohygImToZxzkZCBiJiUn5qEjqmcmpSKi4p8g2yEhXGBoIt4hY2Ih5KZlXyTo6Gfo4iuhn21hI6enXullnqpgZadkIqgnHynaHZtfpl0oXNxfJ6GmXCTg659pIOmnpqBo29eqGd1o2NvpWGc05B8epl4cnNjooWQfqNzo491a5Czi2CCmIlzqrKovH93g21+vqaptF6cbn1xl2+Bc6JyXaNndKZhaKZtm9SZfISbb3h6l2ube3eXcm2ppGdgZXlwgIRrZ2ZkbXV4Z2BjVFtmUVFiSVdJVF9XU1tlalxkUEVDS01KS0JKRThQP1BNV1NYT1JSYGZlaVJjd3l3SUZFY11kWmhpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebgLGrVFxLfqmvsbSws6OcmYWZqKCgo42kqKCYqYqZmJiTmZOSoJiOiIZ7cH2EaH2Pg5SagXeRjY6Jb3+GkJOSbJeUfYiRkaOVg46qmpSSi4WJeYN2h4Bugp+GeICThoiZopd6k6KkmqCJs6Gitot6rKekrqVwqYCaj4aBnJJ8pICimYaYcp6Eo62uipeMgIykjZaDrqKVdrW1tcmhc5SKgZ9gnZepbXmVhp+adaGHd6B+kZaKgG9MZqOScJqHcqR7eXRhg4JsfqBrcWRgnHJ/dJdpe2mztbTGpnOYfnudapubq3WDmmx0d5dpmnp1mHJQRH2zXmp2a3mHZmpnYnR0cW5WXlRZaE9RaElVTFlTVV1oa25WZ1dNSkFKTUtISk5BUUpQZGNpbWV0cnN+eXtudYl7e1RQT2xeaFtraVJqaGlsZ2xnY2VfXF1cXmliZGhre19dZGhjamZvbWVpbGWhnImwp4RmP5Shsquvr7aiopCAl6mioqWMpaednaaCmpeWjZeQj5yTjoiDeWp5hmWDjH+XoHl1j4iMgWmEhZKDjIWdjXqMipWlkoOXqZeMkYuBiXqAfYt4cJChh3mBlYeJlqCWf5SlqJyWloRnbnicbKJkfHGld5uYcGengZeMe6V6n5aDl3KedoGJlJaPuW6QiqJifZmilYhtcmmranWgbW6mYJtpi5BoloealXWigH2aYIuFjHRviGJooGWefmmadW9jZoiCbnKiWl9bY6FuXYmMb3t/c3JkpW13omRnp2iYc4uYbqFvU4iPb6BfZadUi11UmG1tc2tygmxwaGt4c2tvUlhXVmZZUm1JWE9dSVhpaHNqWWtWUVJFVlxMWFJhVGhqXnd1enxwfHxyg3t/cnaNgIR2XlFyYmdicGdQamhoa2xuZ2RnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKWZpnpldG2Lp66kqbCxpp+LgJernZ6ljKKhmqKigJaYk42aj4uYkI6Ke4dxgIhoi4t8mJtzdIp9kHxkgoeVioqVmYJ8iIaWp5CBoqyQhZCKgop9gICPc2iPpoR9hpSNiZigjoiSqqediaZ4lpx+pYmWjLKYnpCCr5efpXiViHqpdKWPhJpupKKMkoSMg7tufaWvgoaGh5OWnJ98pXpxqJWglmeefm+rY5aKlZJ3qGypooGJdYeCd6uRpohrkbBrdrOMqWuKhm5tn56SlWF/q4uqdoB/jKafd599haWVnaBpmod2rGeerYy3c3e+jaSTWYOmjathdXJ0cHx0cWJqfm5obVNWW1VhYVxrTV1SXUldbW12YFtxWVtgWmdzZW5vcWNxdGB3en55cnmDc4R/gHt7jIGCgHZieGRjbXNkUmxnaG9scmlmaWFfXlxia2JtbHpvXFxiaWJsandtZ2xuYpWmqp2BgJ6klqmqnainrqSZiYOYq5qepImapZ2pnYWMmo6GnJGFko2MjXSGeoiEb42EfpiTdHSGcpKDbX+LkoeGlI98e4GFl6WNf6WmjoGOiYWVdoKHkm9si6mBg4yUjomcn4mNk6ujoJCAdZSXiH6BeZSuo3+Bm3GPhXmQi4R/e3KmjHF9fXqXlpuEjnh7fn6HlJWTinaQmJ+gg3p9iWyMhVt5eHF5cGhufpKJcX90go+Uk3GFg4JljX9fgX+Ld3VzlHVveW5uh22Ehl53aXiNZoGCho6pm350fJdqiYhvgHZ9hnZtbGeMc3l7mHiEW2tYeY9obndycW94eG9dbIZuaWdWWmBXXGVrY1ZhVV9RX3B4eWxrdmVqa2p2fHFydHNhb3Vic3uBeHV5gnWAgH+AeIuFg317bX9sZHhuXlduZ2h1a3hqaWpkXGBaY2plbHB1blpbYmtkbGx5bWhsb2GOlLmpp4uhopqmpJmknKuioYSEmKySnaCJmqabqZiDgZuKfpaTh46KiY1yg3yPfX6PhXuXjnRyg3CWhXt9kouGhpCFeH5/hpijjXunoYuGkJCFloOGjpd2coWqho6SnJCInp6IjJuooKCrg4mOlJp+fomWraiPk6aPd2+dkYN6km9+qIVwfZVxa3B8gZ+Mf5OOjGhtXYOLjJubno5zlYuIcXRrgnZzgFlyboeRgX1+jGpdamR7hYOIgF9peHube4KLgnaBhoJoeYuHa2FxcoN3X3OMgomQp5WGZoyPg253i4Rxho96b2VnZHqDepZbXGpnbnZbe3h3dW5zc4JmXG2Ka2xiWVleWlhsclxfYVpeXWZ0fnt1b3Rja2tqe3xye3h0ZG10Z2x7fnZ6fHt6en9/fm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtoa2pxcm1XW2VubGdzeW9oam1gi4yqsaKQo6Ganp6Xnpmoo6J+g5itjZ+Uh5uikaWVf3uYhHySmYmIhoeKc32Ai3aFi4GElopxb4BymIaEfpKEg4aKgXqAg4ubn4+CpqGHeI6YiZWLi5yXhIN6rYKRmJmUip6dh4ihq6CioqOLiJObnKOZlqqhp6agkpuHlo57eI6OhKd+f5KRkpOcsaablZ6QjbKTmISljIyVm5+JkJuCiZGKa3yNdndlgoaQinuJnYSHi4+IiICFhJB3fHl1mqGIhoqfi4WUf36MgYB2cHSGhH94iIeLkKaQhIWNiIONkIx9iIuJkIF2bIKEfHmZanJoYXSKcH16d3ZvdnSBXV5vhmhuX15aXF1TaHJWY1xcYWxodXx8c29wZGtqaX97bXh/cWlvcGxmgHtygoB4f32AhHptg4yGfHp4fH16g3lOZHZrc21wemRrZWJiYFt0ZnBmcnJtVV1sdG1peXpxZ2lrZYyInbqflqKhmJWZmJSZpKCee3+aq46ejYWfnYueln15lIN7jpmJhoSEhm54gIBygYh+iZSEbWt+epeGhIOQf4CGhIZ8h4ONm52Sh6qfg3KKkIaTkoydkX2Ne6qEjZKYlo+cl4aGm6egopqdhoORmpmZkJqmoKadnZCWgJCKdnyHjoSle3yOkJGGmKqhnpOdkI6rjpGAnoyJk5qego6XfoaNgm94hXF0YH+Cj4Z1i5eAg4+ChoR+hYOUbnh1dJKhi4yFmoWEjXSAiXx8cnJ7iIR7eYuOhJOnj4aEj4KEioqKd4aIiYt8b2t+gHtuaGxtZ156f2h8e3Z0dnV7d1xgcH1udWBjWl1eUWdtU2VbXmFraXZ6fnFsbGRrameAf2xzgGxsdG94boR5boeAdoKAfYR2cYKNiH57e3x/e4KKYGl7anVoaYJkamNgaVxkdWhvYnVtbFRjcXllcHp6cmVpbW2Lip+3mqGjn5KRlpeLmp+fnnt4nqaQm4qGpJSLmJl5eo2FfImRg4yCgYJtfH94c4GFfYuRfWtofYGXiIGIjnx+hoSHfI+Aj5ubkYinnX9wi4uMk4ehoYqFjXyokYiQkpeTlpN4jKOhoZ6Wmn+AkJqYk4ybo6GkmpeRm36NhHh/g4+HoIB9jIyPfJikoKGTmZCQp42PgZuRiZKXm32Skn6GjYF1dIJwdmB9f42GcoqVfIiLcox/goWGjmh3cXiMmJKPf5d+iItygYZ8fXB4e4uEenqRjYOWppOLhpF8hoaHhXaChImIemVye395enFsamZefnNofHV2dHxzgGpeYHR2cHhkY1lfXlNraFRkWV9haGp2eIFxZmtjbGhlf4BqbX5obnFrfXeGemuMgXOBgX2BdHaCjYZ+fHt/gX1/j2pyg25zaWGHaGxiX3FWdG9tbmB4aG1XanR2Y3V7e3Jiam55iY2fspKlpZyOkJiPhpygm5x8dqSgjZd/jKKKiJqWeHuGh36DiX+JgoB/cX97dHaDhX6KkXhnY32Gl4qCio14fYCMg3mWgJWXlo2WoJt+b4yCkZSGppuIjYmEppWFk4uWl5OSdpGeoaGYlJd6fo6Yl46Wm52knZiSlJt5j4WCd4SXjZ1+gYmNjHOXop6ik5mOj6KMjIOXmIOSlpl+mI18iI2BdnF9bnpkgHyKhXCGk3+QgmyHgoGAiYRldW98h5KXjX2TeIuJe3+GfHtxfneJhXmEkIqLmKKVgYSNd4iEg4J3fIKJhnZfeHd9dH54Z2xkYX9pandzdHV9cXxiY2FzbnVzbWFaYV5ba2RSYlhgYWlrdnmGcWNqY21laHyDbGh0aGxvaH98gnltkIZxgIODf3R8g4yBf356goN+fJBtdol0dG1limxqYWN1VoRpcW5geWdsYmp2cGZ5fHpxYHJshoWQnK2XpqiejY2Xh4afk5eYfXiqnIqZepeci4yYkHl7gYt9fIN7gIKAeHR4enN9gIR/iYuAZF59i5WHf4WHdH1+in99l4SXk5aMo6GYf3KHe5OSiqePjI6Kk6GShJKQlJeRi4GPmKCakpCRdH+NkpSJnZ2ep5iYjZWWc42OimuFmI+ZeoeIkIlvl52ao5OVio2fjIeCkpx/kpKVhpmIfImJgXpxeWt1bHt9i35uhZKClHdvgoN9fop/ZHJqe4CWl4R/jXSQiYN4h351eIB9hoB8g4yFjZSkkHmFgnSJh32AdHaBiIRuYHt1enF9b2FvY2R7Ym5vdnN4d3N0YXZfb2x1bm9cXF9eXmpeT11YY2FobXR7iGtfamVqY2h3h21mbGhpbGiAfHp3b5CHc4GDhH1zgYaJeoJ9eoGEfX2OcnqLeHhubIdraF9pcWOHaHFvZXdobmxheWhrfXt4cGF3bYuBmZqqoKSonYqKkYaKnoqVl313rpiMl36ek5GWlIh3fnuKfXuAdnh/gHB0c3tvhn2BgIp/fGFcfo+Rhn+DhHN6gIZ6j5GHkpGbkqWblYJ+gXyOi5KkiY6KjZibjYaRmJOWjomJjJOdk5CMjW6DkI+RiZ6ZoqGXloqXkW6ImYRmhpmOk3qJhZCKcJaalKKSkomLmoyCf5GefJKPkouZjnuKhId0c3VrcW50e4t0boWQjpJxdIB7gYKIfGRxbHl9mZR9hIh0kIuAc4h5b4B9gIZ8hYyIhY2VqI17iH1+i4V4fnFwgIWDY2h4dHVwfGJecGBrdF5xanp4eGtzcGV4XW1sc21zWVpeYGJqWlBXWGVjZ3Fxf4dmXWloZ2JncY5vZGlnZWpogHp3dG6OhXSBgYJ7dYKJhXeFfHiEhXqAiXd/i3t6cnmDamtfcGh0gGtyb21xZ29sZXxjboB5dnFsd3eKf6KYoqihppuHjIqBkJyGk5x1gaqUko6HoIyWk5CAdHx2hXd4f3Jze4Vrcm96bop2gIGHbnFbWX6RjYh/gIB2dYCAf6CGkIqSnJehlJh4in+BjYmdnoqPhpKYloWJlZmPloyLjY6NnYqOkINtiIqQkYmclqGbmJWGmIhphKOCZoWdipF+i4OLgXeTmJKfkpGJiZWOf36Ql3yRjY+NmpJ9in+CbnZwbG1vcHuFaXODjpeKcHd/dIKJgnhmc292gZmOfImEepSReXaIdHCJe4WMeouGg4mPnKOIfIR3got/eHhva4GDgV1yc3FwcHhaXnBgcGpeb2l8enBtbWpsdmBwb2pybVpYYWFiblhRU1pmZ2N1cISCYl1qbWRiZmuSbWBmZl9oaoF1cXJwi4B1f4KAeHWAi4B4hX93h4Z3g4V7hox/e3aKf2pxY3xihnxvcWx0amhvbHZ3X3F/eXt0dXSAgn6klZqtn6eWhY2Df5eUg5CfdYuflJOGi5uMlY2LenJ4dIJwcoV0cXWIbG9sdW2Id4N+gG1uVVGBq5SHgniAdnKCeYGggpGBk5KYnJKaeJJ7g42TpJqTjomVmZOFh5eZjJSMiY+PiJ6FkIp8coqFiY6InJqfm5aUgJR/aIWch2eGoIiShJGDiXGDkZePm46QjYyQjXh7kpB6jouMkZaMfIh8gGt2am5ra2x6f2F5fo6VgXZ6gHeDjXx5Z3RsdIeVi3+IhnuUkHF6hHB2jHqJjHuJfYKMkZ+dhX18eIKMfXdxamyBgnlfd29tbHJzVl5vYnJgX2xueXBncGZmc3RocWthd2VdVmZhYHJTUE5cZmVdeXCIfF9daHJiYmVmkmlfaGRbZ3B+cGtwc4p9dnyFgHR1f4x5e4aAeIiDc4aFfoyMhHt5lXdmcmqDYIh+b29remBqbnR/dF90fXmGeHRzhXx4oI+ZsJyljoKKf4OaiICMnn+LmpOPhIiYjo6PhHZ0dnOAcG+Fc3Bxg3BraXZug259fG11c1JOgt/IktaTfG90hHaDoIKTd5WRmZuQmnuUc4WQn6GTk5CKk5uUhn6WlYiNjYiRjYmcgI6BeHqMfoiMipycnZuVk3mNdmeIkYdsiKOEkoeXg4ZjjJGZjpWKl4yNiotxe5SIe46IipKRiXmFe35se2Vyb2treXlcgHmPjoB6fX5/ho56eWhza3OLj4mChYV9lYxrfn5ugIt+i4d9hHqBj5aamop9d3iDkHlzbWdwgIRtanRvaGp0blNeb2RwWV9rcnhma2piZnhycHBjX3hgYFZrX152T05MYGdjXXlxiXRcXGV2YGFlZY9kYGZhWGlzc25rcXaMfHR5hoJ1dn6Lc3+Gf3uJfnKJh4GRioh8fph2ZXNtfGWIfm9wbIBabG55eXNhdnp7jXZzd4p3eZ+Lm66boJCChXeIlX59ip2HhZ+RjoWMl4STjoeBdHdweXFuhG9tbn5yZGR4cX1ten1qaGxjpJrB3K7voXNrdYR2haKFkm+WkJWglJyBknGGi6OXiY6VipCdloOAlZCFiY+AkoqKl3+He3V/iXiGhI2cm5iZj492inZuhoiLfYqjhJGJnYWFXouUl4qPiY6Li4SKbXyWgX2IhYmQj4Z2hX19a31keHVqbnhzWIh6koeFen5/gIWLfnhlc2p/iY6JgoKAjJaFa4F2boiQgo+Ef4J6f5CWk5mQdXR4iI11c3FndXqDYnRtb2JpdmdSYHFnbFVfbnR5YXJjX2h9cHJuW2NyYWJXblpcd01NTGRnYV52c4ltXFxkeV5gZGaFYGNiXllqcmtua3J2jH10d4SBeHd7iXGDhH1+iHt0i4mIloeMfn6Yc2h1cXlti3pudHCBWHF6dnlxZXd5hoxpd4CJcn+ch5mnnKOShHxwjJR4eYudhIWhjY57lY1/mYiEe3J3cHNqb4FraWx8dF5geHd7cXV7Z2FlfOvatcnD3IhzbHOBd4qaiI1pmI+PnZWTgYlxhYmgjYSLlYqMmJR8jZOIg4mPe5GLhpCCf3Z4g4Nyh4KTm5aUmIaMdod/cISBiYeZoYOUjJ6DiWGDlY+HiYaKjYeBh2l9lH99g4SJjo2CcYZ+f3F3aHZyaXN3bFqMfJKChXx/g4CEioJ1YXRsiIGPioJ+f5KQfW2CbHiGj4aRg32BfYCSk5CXiW9yeo2GdWxxbHJ4gV9zaW5ca3ZgUmRyaWZTX3B2dGBvYF1ognFzaldnaGNpWG1WW3VMSkxlZ15icnOFaVtcZXleXmRne2BkX1xZa25lb2pzd4p+c3OBfnp2eohzhYJ8gId2d4qGjpiBjIF7k3ZsdnV5eJN0bnh6fVh5hXGAb2d5d5KCZHaGhXGKlYWZoZuiioZzb5KLcneOnH2KmomJfJ9/g5l/gXhxc25vZHJ+aGZsd3dbX3l7e3FxgGlhZ2F/1baOkKZ4bnF3e3CSkIyHapmOiJySjIV7aYiLmoeBkpGGh5iNfI2NgYGJjnyQjX6KhXp1e4J6cIaAlpmOk5SBiHWDhnaDf4qTnZ6GlY+ffohhgJOHhYiEio6Af4NnfZGAfn+CjI+Qfm2CfIJ0a212dHN2dWtijYGPf4V+fIR/hId+cF9zcYV7j4yCfH6RiHpwg2Z5g4qGi4N8hH6AlI+Rk4RucHqMf3Vub2tsen1iaGppWG12WlJpcmpiUWJyeGxiZV1ZaoNtc2JcZ19kbF9uVFtvTkhPZ2VcZ25xgGxbXGNzYFxjbHdkZV1dWmxsYm1qc3aHf3Fvf3x8dHiGeIWCfYCHdXmJgZKWfIiGdomBb3d5e4STcG18gXdeg390gW1pe3OUc2dzh3xykZGDmp+boIaHdnaUfm12lJd+iJGDio2afIuadn12cW9samF0fGdiaXV6Wl94fHptcX9lZGhoV52PXnFylrzDg3VxlImQfnKXjIack4yIc2uJj5aBe5SLgYSbjHyLhn18iYx/lIh1iYV2d32BcXWGgZ6UhpWPg4Jyf4h1hHuJmJyXhpOOnYCIZX2TgoCGhImJcoF9Z32Le3l/f4eLjnxpgHyDdmZveHhzdnNsao2FioGKf3iBgISDf2tecnh6fYyJhXuBj4B+coFpeIKHi4WEeIN8gZeNkIx9bm17iX13dW9oaH12ZFxwYldwc1NTbnNpYU5mdHhmYF1cWG6Ab3NZZWJdam1gcE9Za1FEU2dhWmtubXtvWltebWNaYm93Y2ZcXWBsamNtanN2goNxbn57f3R1g3qDgnyBhXZ+iYGWkXiDinSBiHJ4eX6NkG9vfIFxaYF5en5tbXx2lWtqeIR0bJOMhp+YoJmFiG59jHZqeJiPf4KKg5WXiXmOlm96c3BsamRgdHpoYGVxelphcn15Z3B6YWVlj7Gyd0piWqTZ0JZxe5CLkHh9lYuFmZGNhm9shpKSenmShoGEmIp8h394eImKhJaAcIyIcXR9eml5hYOlkYSTjYN/b36DdoN3hZuYk4qSkJSFh3B7koN9g4OJg2+BeGiAhXhyf3+DioZ7ZX1+hHVkcHOAaHhwb3WYjIWCint2eICEeYFrXHF9coCHhYl9hol6iHKBbnGDho6EhHOEeICZjY2EeG5vf4R/d3tlaGp9cWBZd1pYcW5OV3JzZ2BLbHZ0YV1bW1l0fXJvV2ddZmpxX29OV2hRP1lmX1pwa2d5cVtbWGtlWWNweV9oXF5lbWhmbGlxd3+Hb2x/fYB1cIF6gIF/gn92gYWJl4pxgo1xe4Z8eXmDk4x1anp/a29+dH99b3J8e5RvboB/eGeSioKhmZ2RgoZnh4NvaHqWin6AhYKZioF8jYxpeHJrbGZfYW95bV9ib3lcZGuCemFxdl9lZtTqvooyOj6LjoByeYWIjo12g5eNfpOOjX9ubIWNjHZ9j3+FgpWJfIN4bnaHhIOXd2+JhWx1e3RmeYKDp4yDj4uEfW5/dHaDeYackIuQkZKMi4Z+e5KHeICEjYNsgHJpf354bXx7gYqDd2F5hIFxZHFofm10cXWBm4uAf4V+cnV9gHKAb1ttfnR4ioKLe4Z/fIh4enFsiIOPg4pygXl/louLf3Rua3eAgHV1XGlpd3BZV3xTWnFlTFtycmVbSnB3b1xbWllddH51aFliW2dmbmNpTFdmUT1eZlxddWVfdHBbWVVvZFlkcXlaaF5fZ21namtpcHd9jmxpgoR+eW6Ae3yAf4J6dYKBjJOFcICLbnh+gHp7iJKJf2h7fmt0e3KGe3N3fX+MeXiEfXxrjIyDm52WjIGAbI5+a2h+jo17fn+DlIJ/fYqIa3VxZ2hjW2Jncm9gYWx0YWhwiXlic3ReY2SboI9uXDVZr7V1aoCJfZKGdoaXhnSPi4p3cG2Fg4d1eYl4iX2TiHp/c2d2iH5+mG9xhn5odnltZXmIhKWHgIeNiX5ufnV/gH2MmYeCk5CYiIuEiXyPiHF7fYR8aX5ta4B7emp6doGHgXJgd4F+cWRyZ3WCbXR7hZSRgXyBf253eXx0fmxYb392dIuBhneHdYGJenhzbomAjoCFcn59fpOJiXpubmpugoJ1bl1nZnNxUVt7TlxxXE9ccnBkVktzeGpXWVlaYXGAdGBdXWBnZGhpZk5ZaE1AYWRbYHZhXHRtWFhTdGFaZG9yV2peYWhrZ21saXB3fJJraISJfHxwfn57gX+CeneAgImLhHF7h29xd4N/e4mNj4Nqfntud3l2ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshImSeX17gpGAgH6Kg3BycGNmXllnX3BwYGBncGZqb4p0YXRvW2FkanZ7f76cpqPIuHGFhHOUfXiGlIJ0kI2IcnJwhHuDdHWHdIh3lIh5eXFjd4Z6gJNpcoR2Znd2Y2p8g4iegn9/jo59cn5zhHmAkZCCeJaNlI+Igoh6iYlseHl/dWh7aWt/eXNpenaAgn1oYHeHfWprdGh7f2l2gYyQlH56fn5we3Z7c35iVnd9cnOKhIJ8gnCGiXd4cHCDgox+fXl+fHWOhoN2aXFpbYiCcnBdaGNzbkpldUxeb1ZUWXNuYlFPc3hhUlhYXWJwgnNbYV1oZWRjamRRWnBJRGRhW2NwXl13aFVXVndeXGVuaFZrXmFqZ2Vvb2hwdnqSbmmIjHl9cnt+eIKBgnx2fYOIhoNwdoNybneCgn6Ji5N/cIB8eHl6gYx1g3h/gYGChHqAdW9+iYuanoh9hXp3hntndIWMkHp/f3yJhoR2j4Bnb25fZFxYZVltcmFgYXFsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhwjXV7h4+AepOKgHV0dX53gHBxf22EdJSGeHVsYHqCeYiPZnGDb2d2blttfYCQk4CAeJKSfXh7bYd1gJCLg3OWipGOh4WFe4CFbXV2f25od2Vte3ZtanZ3f398YGJ4hnpodHVjfnpndIWOjJV7dH91cYB6fGx/WVZ0fW90hId/gHhriIZzeGt1f4ODfXp9eHtyi4F9c2d0ZW6LhG10W2pfdWRIbm5MW2JXV1Z4bWJQU3R2WFBVWF5hcYRvXGBjbWVjXm5iVFxyR0JmX11maF1aemNSVlx1W1tna2FWal9gb2Zma3FocHV4jXRrjox1f3Z4fneBg4F7dH6DiIiDb3F/dHF1foWCiY2Ke3d/eIR8fIWHeId8fYF+hIB7fnN2eYyOn42Jeol2dIN5Xn2FmYx5h4N0hYaFd4l7Ym5sW2JbW2FWanNjYFxnbm9mh3FhcWZXXWNrf3zKzoi5omptbYpscYRyfISKfnuShXp5dHl1dXtqbHVjhHWRgndwZ159gnqLiWVygmtqcWNYbHuGnIiCgXOXlHd+e26HcYGKi4dxlo6QiIWLg3t5fnFxb35naHJibnhxamtxd3x8eVxleYB3aXV4ZoJ2Z3SHi42UfHKGaW9+gHhtfF1YcX5sc4CLfIFubol/cXZod3+Bf4F2fHF6dId8enJmc2FujIJsc1hrX3dbSW5rTVZVXlRVe2thT1R1clFRVFZeYnSFaFxgbGpmY1luYVhicEdBaF1gZl9dVXteT1ZkcFpbamhdV2dfXnJma2dyZ3BydoV4bpWKdH96eH55goeAdXOAhoWOgnBwe3h2dHmGhoaLhnp8f3WLfn2FhISHf35+fYd/fHh2eXeSk59/jHyLbXaAeWODh5eGc5KKb4WFgXqDdGNuallfW11dVGdzZWBZZHJyZoFzYmtlV1tgaX93vq57oLdtYnOGaHR8cnqDhnp9jH94eHN2b3t2ZWpuYId1joFzamJefnh5i4RmcX5oamtaVm94iqSBhX9xmZNxgHh1gW2AgpGHcpSIjIeDiIV9eXRyb2h6YWptYG12a2dqa3l3endbZ318eGVyfW6EdGV1hYyGlX9vi2ZreoN0bHRiXG97anR7i3uBZXSGfW1xZ3V+eH1/cnxsenqBenhwZmxibop+bW5Wa2B3VUpqa09ST2hOWXxoYk5VdmpMUFRVX2d2g2ZdYHFoZ2FXaV1ba2hKRWtaYmRXWVV5Wk5XbmpZXWxlXFpkYl50Zm1kcWdyb3SAd3CZhXZ/fnd/fIWHfXVzgoh/lIJuc3h6eXJyhYeIiIR5gX12j398hImOhIKEe36Lg3t3fHd3mp2XeoqDhml3fXxsg4STgHKPgnGGgn6Bf29mbGdXXVtcW1RkcGVfWGNzdWl2cGVlYldcXGiAcG9ygHSJZWV4fml0dnNzg4R4gYR5d3R1bmt7cGFna2eGdI2EbmZdX31we4l+aW13ZmlkVVdycI2mfIR8dpaQc3xze3lte3uRhHaYfIeGg4aDfXVwcmxndV1taF9sdWRnZml6b3tyWWeBd3VncIB3gnVid4WKfJSAbotqbXqAcGVyZWBteWZyd4p7fmJ1gnZpa3F0enB5eHJ9Zn5/f3l3bmNlYm6GfG1rVmpicFNLaWtPTE9wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWVgVmNXYnBdTEtrWGNhVVRVc1dMWXVkWl9rYVxbY2Rfd2ZtYnBpc25xfnR0mYF3f4B3f36GhXp9dYKEfpeFbnJ0e3p0cISFj4GAeot1dJGAfYGUjoCFhH1+jIZ7foB2e6OlinmIhYRsdXx7dYOCjHpuhXN6hH2Bg3VuamhlVl1bWlpTYm5lW1hic3tqaG1pX2JXX1ppgGprb4BobGFoeXhrdHR0boWBe399dnVtemhqeWpfZW5ogXaPhGdlWGJ3aX6He29pb2dmXVVYb2iPp3aBenyQjnl1b35vcnV4jn93lHSFgn+FiHZqcnZnaG9cbWVebXNfZ2FpeGh7bVttgnJzaW+Afnl3YXeEhHiPhHOIcW95f3FicGhcb3dkcXOIfHhic4BwZ2p4c3Jrd3Z0d2ODe393dm9kY2NufH1rbFVpYmZTS21oT0dSbEVheGZhTVNyXUlNVFlla3d6ZV5tcGlkXFZfVW5uV0tUaFhmXlhNVWxUSlx5X1tfa11dWmJlYHpobGFvb3Vub3d1eph9d4CBeoB/h4Z6eXqDfoGThHF0dH56dnSFiJB9gH2QbHOVgXyDn4V/h32AfoaCgIp7doSsn396iIeEbHKCenaAgIF1bodvfH9ziYBqb21kZFhfWllaVWJqZ1taXnWBaV5tbFxhVlxca4FmcnR9ampda3Z2Z3R3cW2Fe319eXZybHpoaXhmXWRzaHp3koFjY1RlcGeChXd3ZmhqYFdWWWhkkKdufniAi456cHB8ZnhueYt7do5xhH1+f4ZuZHZzZGhoXWtiXW9vW2dfbHVlemhddIBvcmtxe311dWJ0hYp6h4aAf3dydX50YXBsWXF0YnFyhXx0ZHJ/bGFsem9qaHl3dHFmhXV6enVwZGFkbnN+aWxUaV5dVEtzY1FHV2JHYnZmYUtUb1dKTFhYZ2x2emRlbnBmY1pXXVh2ZVRKXGNYaFhZSVdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bW9udoOYeXKBgH1/iIuGfXV2hniHjH1zdXWCeHp6goyOfX6EiWp0l4F7i519foV6gXp+fIaIc3GProx7e4aQfmZyiHp0fHx2cm+GbHt+bI96YnBvYWVdZVZZWVZjZmtgXVxzhWlZcG5aXldaXGx7Y3B3dmxiW21zdGd1dXBthHh+gHl3bm50ZWl0ZVtndWZ2dpF6X11SZWZqgoJ0fWJjaVxUWF5iY5ClaHl0goWQeG1ueWd3bXuEenWIcoB4fHh/aGV2bWBmYV9qYF10a1llXW9vYnplW3d7a25ucHd4c3RkcoOSfoeCiHp2b3J9cmF3ZFtvcGJwcYJ8c2ZxgGRebnZpY2Z5enRtboF1dH1zcWJeZm5vfWRqU2hYWVRNd19RSlpZSGJ0Y2FJVG1TSUxaV2lscntibGxzYmFZWlthdltTS2RdWGlTV0hZYE5HaXVYXmFtW1tfYmJdhWhoYW54eWxuanaBkHlug36AgZKIhIF2dIl0jIZzcXd2gXd8fX6Mj4B+k35weJaDfZmSeYCAeHl9f3SIg3NwmaJ7en+JlXlkdYh5c3h1bHRvfmx5fHCRcl5wbmBnYmxUW1pXaGNtZlxccYhlU3JuW1pYWGBtd2RpdWpqXlptc3FtdHN0aoV8fn98d25ubGRpcWNbanJkdHaPc1tXU2RhcoB/coJdYmNdU1pgW2OTn2VycYWEkXRsanlsb296e3pxgHZ+cnp6emRmdmdeYlphZ1xed2hXYl5vaGF3YVt7dmppcm53c3N0aHCBlIKGfoR2c2pwfGxmdldca21icHOBenNmb35bYG9xYl9pcHxsa3N+cnF4a3BgW2VsbXphZ1NnVVdSUHZbUlBaUkhjc2JgR1VqUEhPWlZrbGt8ZW1vcWBbWlhZbHBXUlBmV1dpU1RGWlxPSHJ1WF9jbWNYYWBhXYtqY2RteXhrbml1eYZ7a4N9f4SZfIKEeX2Ibo+GcW93enx0goJ8i4+DgpZ0eIKUhYGfiXWAgIFzf4Fwh4J1b6KXdHuGi4d7ZniLb257b2Z4cHpsc3ZyjGtedG5hZ2VrUl1bVmdibGxaXHGMZE9vbl1WWFVnanVoYnRlZV1abnVucXV1emuHfH98iHeQc2Rka25hXG5tY3N4h2taVFZiY3h9fXGFXWNfY1RbYFljlpVjbnCDhYpzamh6bmVydnN7bHp0dW96fnVfZnJjW15XYmRZYXVlVV9gbWRhcV1dfnBoaXNxc3B1dWtthJOBiHuFcXJmbnxvcW5TW2ZqZnF0gXZzYmx2VWJxaltfbmV8ZWx1fHJyc2ptYFlkamp3XmZUZFVWUFRtV1FXVFBIZXJfYUZXaU5IWFRWbmlkfGlrd2thV1xVW3RkU1JXaFFZZlRTSFpaUE14d1tfZWxpWmJgXl6PbmJma3l1bm9odnZ/f22DgH6Gl3t/iIGKf2uTiHJndIB7dYCDfYmPf4uTcn2KkYWHn4Z7f4aMc4CGc32Ddm6ljHOBjYt3eG56jGBkfHBmenN5bG1xdoJnZHtsY2ZnaFNeXlRnYGxvW15ujWhOaW1gVFZTb2d0bGV4ZGVdWXB0bXJ6eHNtiHuAdpx7emthZWxtXmBvamVweX5nWlZYYGt4fHtwhF9iXmdWWWBXZJyIYmtxgYd9d2tqd2xbdnFreWl1cm1ve4ByWGpuX1ldVmJjWGVxY1NeYWliYmxaYH5sZmtzdW5td3ZraIWMf4h6h21xZnB8bHFsY1lgaGlvdIFzcl5pbFJlcWRUYm5heWJwdnt1a3Bta19YYWdodFxlVmFWU05YZVJPXE9PSGVvXWNHWWlNSV9LWG1kYHhobn1kYFVeVF10W1RSYGZOXWFUU0pcWVBZdXZdX2ZtaFhjYVtejnBjZ2p3cXNtaHZ0eoNzgoN6iI1+fIqHjnpukIp0bHOCdH9/iIWHkoSVj3p9jI+IkZuEgHyMhHN/gXN0eHFuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo2NjY2NjY2Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjIyNjY2NjY2Pj46Ojo2OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHx9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERFQjEvLy8vLyyApKCgoKClXiovLy8wLEiFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTUzHx0dHR0cGH6ppKSkpKpWFRwcHBwXOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHiIeHhomTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhoWDg4OEhISDjJCPj4+Pj4iCg4OCgoKFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5CKj4uKkImPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6Ojo6Ojo+Pj4+NjIyMjIyMjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjIiGhYmJhYiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCRjYaGh4WFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkI+HjI2JhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjISKhoaIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiIqJio6Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpKSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f35+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpKSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9+fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyNjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4qKh4eJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VycHFrbHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZ21lamZoZWhnY2JiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpeXF1eYmlgXV5aWV9bWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVBQXFdebFdVUlFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBgV11yVU9PT05PUFBRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLTGNUW3RWS1BNTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NHZlRVdVNKUExJSUpISEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gH+AgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj48RUQ9P0pjW1VwS0RGSEdGR0JERERGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD0+VWRiXmdPQUVFRkRGRkRGSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYGCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozs+PEhibWhmbGBGQz9MQ0NGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc9PTg5VWxya2pwa041Slg+QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN1c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/Q0BPQjxYbnFubHNxW0NjVT0/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO11tP1JZSlJrb2tncnJmX2pIOz5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZEPjw8PUA9ODo7bnZHQWJdXGluaGNxbmtsZj45Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBaUTw8PUtOSEh2dk04V2poa25qb3FubWxWOjo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAQ3N5SDxfgIOAent3VjtDYHN0cm91cW5vYEE/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUBIcnlrZYOEg4ODgH1dPj9HaHh1cnNwbWxMPkVCQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dHd6fHt8e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEZvdH6CgoGEfn2EdUxCQ0NPbHd4e3pxX0VFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWhzfYF8f4R+eYVyQ0RFRUNkgoeHiIVeRklKTExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAgHiAhIWDhIltQUFXdYWIh4eHiYJXSExNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCgoODhYaGiINVbYaIhoeGh4iJiHxQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSUhISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpWgYSEhIKChoaGhIKGhYWFhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUtHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWaFhISEf4GDg4KDhISFhYaHiIiIiImMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaYaEhIF+gYODg4KDhIaJiouLi4qJiouMiVQ6ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIGDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6Ojo6Ojs4OTg5ODc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd5e3p7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXKEgIGDhISEhISGiYqKiIeIiImKioyKiYmMej45ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozw9Oj47OTs7PDs8PDk6PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA+PT4+QD8/P0A/QD09P0I/QUE/QT89QEBAPj9BPT48Ozo7OTk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKDgoKEhYSFhIaJiYiIhoaGh4iJiouMi4qKi4qLXj5ER0lLSklGR0dERkhHRUJAQENFQ0NBQkNCP0BESEVDRURFRUFGRUZERUZEQEI/PEA+PT9APj8/Pz4/Pj46Oz08YHFydHR2d3p5en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NGWIWCg4SFhoaGiImJiIeGhoaHiYmKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fX5/fn5+fX5/gH9/gIB/f3+AgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkJHR0pZhYKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1PTUtOS0pMSklJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExOS0dHR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7PD06P0E+QEBDRklKUWCCg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEdFSkhESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dIRkNCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6PDg9Pjs9QT4/QERISkxVcYOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4tfUlJQTU5NS0pHRkJHSkdMSkZLT0xLSkpNTUxPUE5ISUtMT1FQUFFPT0pJSkpMSkxGR0hHRUdJRkVFQkBCQlxvcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFZ5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKREVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9DQ0ZWTkZOUFBUWHuGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMj4uLi2dWVWthRVJRUVBJOztRU1JgdV1VVlRWWVlSWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLSEhKSEVGSUhJSElpcnZ5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklJR0dGRT8/QUFFQkNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFpnUlVWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3lucFhaW1pSVFJWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSVlYWVtdWFhZV1JRTlBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin9mWVlcWVNVVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbU1NRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpbXF5UUVFQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlNjVX9SUVFNS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXG1ydXZ1c3N3e3p6e3t9e319fX59fX1+fX5/f39/f39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlRSEdPRkRFRkhHSEJDSEdIS0dEQUFEQE9QTVNkc3R1dXN0dXp8ent7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiW1hTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz8/Ozs+QEA/Pz5rUUthRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNDPz48PUI+Sk1GVW51dXVzdHZ4enx7fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqamZgW1FSWlxZXklKUFFOS0xRUlFUVlRXUlFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXt4enx8eHd4ZEJAQEI9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtMV05IR0BCPDk3NzU5OT07Ozs4OTg5PztCSD9cdHR1dnV2eHp8fHx9fHx9fX5+fH59fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJYR0ZGSEJBR0lFRUZETVJQYVdSWFFQU1NSVVtPT1FXUE1KQ0Y+Ojo2NDg3OTc5OjM2Njc5NTxCPWVzc3Z3d3l6e319fHx7fH1+fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMWFlaVlhYVlhZXVdXWGhza11WYXNrYWFfXWRhX15ZVVBNT05MSUhKS0lIRkNRUFNaV1RUTlFTWVNcZVVPU1RRTkxJSEM/QTk5ODg5Nzg4NTc1Nzg1OTlHbnJ0eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTFBSUk9NTU5OTkxKRlFQVVlTVE5KT09UU1RcVlJVU1JPTUtJSEhGPz89Ojc4NzY1OTk2NzY2NVdwcXR3eXp7fH1+fX18fX18fX19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUFBQTk5PVExNSVBPU1RVMjxYTUlBUT1jYVFTUVBOUFFQTk5NUU5UUlBSTUlMS09RUFJSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjQ1NjY7ZXBydnd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkZBRkdHSEZKREhKSEdFSExIS0hGTE1QTUcvRV9SPjNAPmpvYVJSUUBGVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3NkRucXV3ent7fHx9fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRUZISk5LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSExMSUtLTEtIRkZFRDxBQT47QEU7PDg5VHFydHl7e3t9fHx7eXx6en5+fHt1dHZydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT09NUVNMVFVUV1dVTExLSD05ODc7P0A+PD1AQEI9PkVIR0RGRklHS0pARkFBQEZIRUpPSFBSYVxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSUpMTEpGRkZFP0JDPjxCRj9CP0FkcXV3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47P0FAQD5BRElFQ0hISUdJRUJCPz49Q0JBSEpFTU9iZVFNTk5XS0xNS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES29wd3p5eXt7ent6d3R4dXh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxAQkFBREVHS0ZDSUlHR0hDQz9CPz9AQT5ERUNLTlFUTEpJTVRHSUlKTEpLTElKTE1PUFJQS0dDS0dDQkpKTE1PTUlKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW9rbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0RHSEhHSktJSktER0I9Pj06Ojo7QEI/PUJCQkNIRkpMSkRJSUZHR0NDO0FAQj5AQENEQ0lNUEdJS0dIS0RISUtNSEpMSElKTEtNXVJJSERNR0FES0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLREZFR0VGRkdFR0JDQD48PTk6OjpAREA+QkNERUlGSkpMRklJR0ZGREI7QkNDPkBERENFR0xOSEtOSERIRUlMTk1ISUxHRkdJSUxOS0pIRU5JQkZNTE9NT01OTk1LSEhKT1JRUk5SZmdmcm9zeHV7enxsaGpuZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pDRUZFQkNCRUBEQj5APjo7Oz06PT5DQT5BQ0VHSkZJSEtIR0dHRkVDQD1FRUI+QkNDQ0VHSElHTVBKRkZHS05PS0ZISkZFREVJSUhLSUZIUEtESU1MUE1PTk9PTkpKSU1SVVRST1dkYGFtZ3Byb3J5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQEJEPEJBPkE9Ojo9Pzs+PkBCPkBCREdLRklGSUhGRkdFQ0JBQUZGQ0JDQkRFRUdHSEZMUUxJT0pKTExJR0hFRkVEQ0lISEtKR0tSTUNOT01RT09PTk9PS0tLT1VXVlVUWGBeXGlhbWluaHJzYmVmZWRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmprc01HR0ZIQkJAREU8QUFAQzw4OT0+OT88P0JAQEBERkhFSEZGR0ZFRURDRUNESUVDRkVCRUdFRkdHRUpNS0hRTUpLSEhJRUZISUZDSUlKS01LT1NORFFSUFFSTk9NTlBNTE5TV1ZXWFZYXVpdZGBoYmppZ2tfZWVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaW96TUhHSEhCQkJGRTxAQkJEPDc6Pj46PjpAQj4/P0NFRkRGRERHRURFQ0RFRkdKRUVJR0NHSEZIR0VDRkpKR01KTEtISkxGSUlLSEVLS0xNT09SVE9JU1VUUVNQUU1OUU5NUVdaVlpZVlpdWlhhYGBgXmhlY2BkZmhnamhoamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN1bnByc3lOSUhHSURBQ0hFPEBFQkU9ODo+Pj08PEFCPT8+QUJGQ0VCQ0lFQ0VFRkdHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMS01LSk5MT05QUlVWT0tVVlRRVFFSTE9RUE9UWVpaXFpZW15fXmBiXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZxdU1JS0hKRUJFR0U8QEdDREA6PD5APz4/QkI8QD5BQUZDRURESUVGRUdFSEhGSEdJS0lGSkhIS0hGRkxISEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm92SktMSkxHQkVERTxARkREQjs/P0FAQEBEQT9CP0FDSEJGRUZIRklGRkRJSUdJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTkxOTk5QS09QUlVYVk1OVFZVU1JRUExOVFNSV1teXl9dXWBfYWFhYGJkZWFjaGJkaWpndotsa2lnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV1ZXFza3BxanJ2b3dKTUxMTUdEREFEPD9FRUVDPUFBQ0JCQ0VCQkRBQUVHQ0dISEdGSkdDR0lHR0pGSUxISUpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBPVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5gYl5gZWFhYmhtZ2JpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xNTExMR0VBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NDSUZDSEpKSUlLR0VLSkdISklJS0hKSk5LTkxJTEhKTUtaZkpkXEtsU0hPTl9uVWtzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVGB3dWhqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5S05KS0pGQz9AQj89REVGRENDQkVFRUZCRkZIQ0RKRUVKTU1LTExHR01JR0lLSEtLSUtKTkxNTUxMSUxMTFtzYmRwXmxtVU1OZnNdZmVxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXlta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEQEJCPz5DRkdCRkNFREVFRENISEdERUtHR0xNTktNTUdKTkhKS0pJTEtKSktNTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncXBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9QEBGR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSUxLSUpNSUtKSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdnYWRqdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSURFRENBQjxCQUJHREdGTEhFQ0NIS0hIRkpMTEZOS0xTUkxHTExITkpISE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25ub29xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnNIS0hJQkVFRUFAPkNEQkdDSElNSUZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTU1JS0tLU2tiWmleX2ljcnJaX1lqb19lZVVrX2NbYWJRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFydXR3ckhIRklERURGQUBBRUVER0JISkxIRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpJS0tJSElHS0tMS0ZIS0tMTExLSUtMTlRbXFRQVExQT05PT1ZRT09RT09RSklOUFFkcWlUWVdbW1xVWVpdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzSERFR0ZGQUVDP0NIREZHQ0lLTEhGREdLTEhER0hQS0xPS0xXTElFRUhJSkhJS0hMSkhGSEdKR0hJRUZMSUpLTkxJT1xXXlBcW2BeT1hZU1xcYl5NWVpNWGFSSllhWlNgZFxhWFtkZFZWWFxZWlhcVllcXWJfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1BQ0RCRElFR0dGS0pLSEVFSkpKR0VISFBKTU1KTVNJSEZBSEZKSUtMSUxKSEZFSkdERkdFRkpIQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOXlxeU1teY15aXWBjYFlfYltgXltUWFhZXl1jYmJhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNGR0VHR0lLSklJREZLS0tGRklKTkpOTEhMTkhIRj5HR0xJS0tKTEtJR0VJRENDRUFGSkRASkxKT1tjWV9eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV5eY2FgYmJiY2NlWlFZVlVcWV1jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLR0NHRUJFR0hGR0hJRkdKR0hGSEtJTERES0tOTUxMSEpKSEpHP0dGTktLS01LS0tJR0dDREBEQUhJQj9JSkhPXWFaW2RdX1RRU1hdXFxcX1pLV1xMUlxZSU1eUE9cX2FjZGNjYlxkY2JkY2ZYUVVUU1tYWmFeXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSUZGR0lHR0lGRkZJTEpORURLSkxOSkxJS0pISUdCSEhRTUtLT0xLS0lIR0VEP0VDSEhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJhYGJiYGNiYWRkYlhPUVFSW1NbXV1dXV9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lKS05MTElMS0lJSERIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VDV1VFXFRdU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJdYGBfYmNiXWFiV19fVFBOUFFYUl1bW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQRFdfSUdHSERGTUpQUEZKSUpLTkxLS01MSkpHRUpNUVFOTk9NTkxOSEtBREFDREZEQ0FFRkJNSENMTFBPT0xGTUZHSUpIR0xMTU9QSUxPUFBTUExQVFNVWllXWVhYZFdPU1RQUE9OUFVUW1hZWl1cYGFkZWNnY2tscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHSFlNR0hKSEdOTFFRSUxKS0tOTlVOT0tLTEdHS1BTU05QT05PTk9IS0VgRURfTERmY0VNW0lfXHNtT01WbVlMQ1BgVWxXZ0pdV1VeRE1RVUxNVFZRU1RYV1RYVVRcVVBmWmhoZFhTa1NWVlVbXFtgYGFiYmJgZmhmbmxocnp8fX6BhISEg4ODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09TSUtGYFRISk9KSU9NUlFLTEtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzWFBtSHFucGFWUHFxc1BCa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZVV39qdHV1X2B3YFhhXFxmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEZKTEZRVkxLT0lLUlhXUU5OTkxRVE5PUVBLTE9HTVBTW1pUUVFPUFBQSkhaeF1UeGVoWVJUUXZndGxwYm5malFyT013bWpycHNycXJwb3CBXWZ6dXhxcXpxfnN9a3V9YlJnfGVzc29zc3x9b315b39yX2BgYmJaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQT01NSk5WXllVTFFTTlhaTFNTUk5MUElRUlRZV1dRVFBQUFFLSGZ4bGN4cm1aS01VeXB1bXVibnZQZGVJZnZxbXdvgGpmeHhpWHNSaXttaWp6en5seHp/b2dvWHZ2anV1cIBgc2h8aWx4fG9fX19jYlpeY2RmaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0JFUFBISktKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSVNUVVhXV09VUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExoeH14YHl7c25hXm1vZFJncnVubXlwd2x2dHRxbG1cdH56a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGZlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUEpMTUtMUVFRUFBRV1xZVU5WWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGV8aXJ7XVRLbGB2dWtpdXt7bX54a3xwXV5eYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobW1yfGttaGt7dG1ta21PSEpLSElJSFJQTE5PTEtTU1NPU1JXUlZUUFdaVlZUVFRhYFFPTktUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1dYUl1ZV11WVE9ZUldXV1hZX1tncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKU1FNUVBPTFZWVFBUVVhVWVVSWl1WVVRXVVlYUE9MTVZUUU5VU05PTUxRT0pJUVJLUU1LS09SVFJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1FSVVVWU1pRT1NSV1ZUWVZUWVVUUlVUVFRXWFddWl5hXVxaWlxcYGNcXWJjZGdlZWRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkZGZoUEpLTE9PTE1UUE5TUVFNWFhVVFVXV1daVlRcYFZXVllVWFRRUEtPV1NQTlVQTlFOS1NQTE5VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVJVUlRXV1dZW1RPVFVYVVVaVVdZVVJSWFZVV1tZWl9dVVleXF5dXF1gYV5bYmJjaGZlZGJYX2BiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FbWlhXWFpaWFhWXWpkVlhZWldWVFRPS09WVFBPVFBQUE5NUVFPUVhUUlFPTU9TVk5XUlRVVU9OTVFTVVVUVFJUWFZaXVxaVlZRUldYVltbV1FUVlZWVllUWFdUU1JYVlVaXVldX15WXl1eYFxcYF9fX1piYmRoaGVkYVliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1FVWlVUUFBMUFdWUldTU1NYTU9QUlRYVVVVU1VZWFteXVtbVlJPVVZWW1tXUVRXVldYVlRYWlRTUlpXVlxeWl9fYFVhXGFhXWBiX1xgXWNhY2dpZGVgWWNgYV9fZWVfYGNbWlxbXFlaWVlXXFlcW2BeYFteXmFgX2JcWWBaUU5PTlZRUFRRT1VUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSS1FUVFlaV1VPUk5TWFZUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVVZcXFZSVFZWWFlTVFlcVFJSXVhaXV5cYGFgV2JbY2JeYWNfXGJhYl9kZ2pkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVJSV1JUUFtdXl1bYFxgVVxdaWpyfXNsZ1xVWVdRT1JbU1JRVFJUVVRLUVdWW1laU09TUlZWVVNPVlJTWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZXV15bWFFUVVlZWVVXWVtUU1ZeWV1dYF1iY19ZYFtlYl9kZF5eY2NhXWVnamRmXl5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWlteVl5ZXVBPT1JaUFpUVVZWU1RUXl5gXl5iXGFVXV5ia3l0bH1sWlVaVVFRU1xUVVRWVFZZV0xSWlZdW1xST1VTWFdWU1BYUlNXU1ZVVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paU1RWWllaVlhZXFZVWl5cXmBhX2RkXV5dXWVhYmZkXl5kY2BcZ2VoZWRiX2RhYGFgYmJfYF5XWF5aXFxaWVlXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFhXV1ZWV11YUFVcWV5dXVRSWFJXVlRSVFhSU1ZUWFhYXV5YXVtVXl9YX19YXVZRWVRZWlphWVxVVlhbWlpYWVlaWFZdXl9eY2JhZWVcYlxgZmJkZmRfX2RiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZW1lZXVtbW1hYWVtZWlpdX11UWV1VTlNaVlNcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFlcWlVXVVdbWllcWVhZYFdQVV5bYGFcVFVYUFVXVVNWVlJTVVZaWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVpZWV5fYGBkYmNlZWJkWmJmY2dmZV5hYmBjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYV5ZWWFkYmBsZmheXF1bVldYWVxcXF9bWVtiVlRXXl1hY1xSVlhRV1ZXVlZWU1ZUWFxcXmBgXWFdV2FeW15cW15YVlhYW1tfYFxfWFldXF1eXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNgX2VjXWZpZGVpX2ZeY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlJXWVZXWllbXFlXWV5gYmFkYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBXVlhZWVdWV1ZcXV5gYWBfYl5ZYV1dXlldXVlYVldbXGBfXV9aWl5dXl5hXFtbWltfYV5iZGNlZmVmYlpkZmdpZ2NfY15hZmVaaWliZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMV1dcWVddXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FiXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNgUlxZT1hXWVtaWVhaWWBdYGJiYGFjX1xiXV9dW15eWVlVWF1eX2BfX1xaXl5gYmNcXFhbXWBiYWNlZGdlZWZkXGVmaGlmY2JiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hQWFpdYWNmZnJrf0pZV11aWl9dXF5cWV1bXl9hY2JhYV1iW2JkYmBjY2JdXFtaV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pRWFdcXVxbWltbY2BjYmNgYmRhYGNeYFxeXl9aWFZbX15dYWFfXVtgYWJlYl9dVFxfYGNkZGZkZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoY2hoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WDgYODgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t8fHx8fHx7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7fH19fX18fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmJiY2NjY2NjZBGKCsrKyolY5KMjI2Njol+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyMj5CQkJCQlDsWGxsbGxRdlo+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXl5e3hub29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH19fX19fX19dnNzc3Nzc3l9fX19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnh7eXt6eX15eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t6enp8fX19fX19fHt7e3t7fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx9fnp7fXt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3eX18fH1+fHd4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d8eXl7fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en97fHx8fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5fHt7enl8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGCgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnNyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdXNzdHZzdHNzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3d2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh9g3qGiHl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHh4eXl5eHp6enp6ent7e3x9fnx7e3p7fHuSf4ySeXt7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8e359fJqFkJp/fn1/f398fH2Ag4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CAgYCAf36AgoGBooeTn4WAf3+AgX9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjIiGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35+gICAgIOmiZaih35/fn5+fX5/f35/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn+Af39/hKiMlKOJfoCAfn5+f4CAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSkpCKiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgYGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GBgYKCgX+FqZGQool+gYF/f39/gIGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChYWDg5aro6Ggh4GCgoKDgoOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCDhIGNrKmrsKWSh4eGiYiHiIeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WEhIGCgpuonaWqoKCLhomTi4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSLioSFpJ2UoKKXoZWDkZiGhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoeXkoOZl46cn5eemZGdkoCBgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSNg5OpmJSWkKCml5ieoZyLf4B/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDipeIh56rqZ+aoauWmZ+dmYeCgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhoSEg4ODgoSOmYuEj6CioJyfo5mcnZyThIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fYycj4GHkZKTlpyZm5yak4OCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX18gpeLgYODjZCTl5ecn5mJgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqHg4ODhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICVn4t+f4B9h4t+hISDhIKJjpKOiY6clIODgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZGhioCLhX2GiYF/hoWFhYaHg35+fYOHhISDg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipGDhIuFg4KBf36Ch4aEgX9/gICAgICEhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGJgX9/fn6FgoCAgICAgIB/gYGEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4aHhoaGhoaGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgIWFf39+f4B/gICAgICAgICBgH+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICBjYiBgIGCgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmKi4qKiIiHiIiIh4eIh4eIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhYaFg4GBgYGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgYSEgoKCgoKCgoB/fn19fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoODhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX5+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEg4KDhIKDhISCgYGBgYGDg4SDg5GSkI6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B+fn5+fXx9fXx5fIOGh4eEg4KDg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4J/f4GDg4ODg4KCf319f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIKDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDgoSCgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn2AgoODgoOCg4J9fX5/gICBgH59fX19fX18enp6gIKCgX9/f39+f3+Afn2Af3+AgIF/gICBgH+AgYF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDg4OEhYCAf3x9fX59fX6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/fn9/fn59fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7gIB/f39/fn5+fn6AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn59fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+f36BgIKBf39/f4CAf3+Af4GAfn+AgH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODgoODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6eXl5eXmAgoKChIOBgoKBf4GAgYGBg4KCg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCCg3+DjISDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GDhYWGhoSDhYWDhYSDg4SDhISEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgoGDgoB+fX5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJKRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgICCgYKAgYGBgH+LlI+Mi46OjYiHh4WFhYSDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIJ/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gZSRjIyNjo6KhYaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2MjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIOAgIF9fn1+f36MhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIyPjYuJhoSGhISEg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+f39+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fnx7fHx8ent6fX+AgIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CLkI2Mi42MioeEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gH+BgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/f4GCgH5+gYCAf39/fn9/fn2DfHx9fXx/fX19fXt8fn5/fn5+f358fHx8fH18fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3x9en1+fn+AgIOHiYmJioiKiYWIkY6MiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35/fn1/gIB/f39/gH+Ag4KAf4CBgICAf39/gH9+fHp8fX1+fX1+foyGfX1+fHuDgn19fXx9fH19fXx9fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiY2Rjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4ODhIeJioiJjpCNi4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgYCAgYOCgH+Bf31+gH58f3+Jgn9+gpCEhIOBf359fI2HfX1+fX18f358fX18fX1+fn1+f3x9fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKFhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn59fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICAg4F/gIGEgX5+gH9+foB+fX5+gIF/gX5/gH9/f4B/fX9/f3+AgH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fYmGhoWFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoKCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+f3+AfX6AfX19foB/f4GAgYGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKCgoSCgYGAgIKBgICCgoOBgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Bg4F/gIOCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf35/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH5+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfX9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgYSEhYODg4GDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9/gYKDgYGDgoODhYN/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAf39+f398f39/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgIB/foCBfn+AgoKAgYOChIWGhIB+fXx8fHx7eXZ5eXp5d3l2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eX13eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH99fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgX+Cg4KDhYeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gICAe4B+gIB/gYGAf32Afn5+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e314d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59gICBgH9/gIB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn19e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFyb3h3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39+fn18fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/fn+Af39/f4B/gICAgIB/gYCAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf31+gH9/gIKAgICAgH9/gIB/fn1+gH59gIB/f39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e45+eHd5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5eXt6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgYKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBgICAgICBgYCBgoGBgIGAgIB/f4B+f31+fX5+e318fXt8fHh4dnh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGEg4OEgYGDgYKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCf3+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGCgIKCgoKAgoGBgYGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgYSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGAgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgYCBgICAgYKBhIB+gYOCf36Ag4KAgX6AgoOCgIGBgYKCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4KEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYKDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SChIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GCgYCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX56fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhIGEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4OEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhYSDgYKAfYGCf318fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgIKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODhoKDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WFhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CCgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhISFgoeGhoSFhISFhIWEhISEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYB9gXWBeYN/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgISDgH99fX5+foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN+g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZzhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fX6BgIF9gH99gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3t/fnyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgX+Afn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foN0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fX6BgH5+gYKAgIGEh4aDg4aEhYSGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxte3l5dH6Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goGBfn5/fX16fXt8fX1/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYWFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHh4aDh4aFhYOEhoaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISGh4aEhIWGhIV9d4WEhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGhoWGhoWDg4WFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3x7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+f35+fn58fX1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SGhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aIhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e35+fXt8fn1+fn1/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoeGhoSEhoaHhoiGhIWFhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4GAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoWHhoeFh4aIiIeHhYeHh4aGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhYWHhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx+e3x8e3x8fH17e3t9fHt+fHt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhoeHhoaHh4WHhoiIh4aFh4eHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH17e3t6e3x8fHt7e357fH17ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYiKh4WHhoeHiIeFiIWGh4iGhoeHhoeHiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f35+fHx9f317fX18fXp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYWFhISDhIKAg4GFgoGCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHg4eFhoaIhoWHhIaHiYaGiIiHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4OCgn2BgYB+g4F+f3+AfH98fX1+fXt9fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCBgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeGh4iJhoWIh4iHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaDg4OFgYCBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYWFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfoCCgn1+f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISFhoeIh4WFiIaJh4WEhISChYOEhoKDhYSFhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3uAfX1/gn6AgX1+gX5+fn19f3t/fHt6eXp6eXp7fHl6enp7e3x6e3t7e31+fX2AfX18fH2Af318hoOFhoaGhoOEg4WChYGBgH9/gIB+f4GCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aGhIWHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhYWFg4SDg4SChISAf4KCfn1+f35+f4R+e398fICBfYGAfX6DfH5+fX1+e358e3p5enp5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7enp6eXp6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1NTV1dTU1NTU1dXV1dXV1dXU1NXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fV1dXU1NTU1dXV1dXV1dXY2NfX19fY19fX19fW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi60dPT09PT09PT09TU1NXHt7m5uLi4uLi4uLi4ubCKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E9PkA3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6Oip8/T0tLS0tLS0tLS0tLUvaCjo6Ojo6Ojo6Ojo6WVU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSko6jP09LS0tLS0tLS0tLS1b6ipaWkpKSkpKSkpKSml1dXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7PDw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamsz9PS0tLS0tLS09PT09XApqioqampqampqampq55iYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs/Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tTV1dXV1dXV1dTT09PU09LS0tLS0tLS0tLS0tLRzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7OztPU0M/O0NPQztLU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXU1NTU1NTW1tbW1tbW1tbW1tfX1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztCmksXR0rmPvtScgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPTo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztKqnayUzcGUsJyxlri5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DJl5mFpbCmoIuRw5N9fq+w0c7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PD06Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0aSwvZibnIedutTSzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Q1bmamJ2Qn6DS08CgoNDPz8/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P0NGaoKGsr5GhudevoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NWnpKO7npqtm6nYo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NLAnaLLxZamxZii0Z6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPUpKCPuMubnJubrcefodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HIxqa9lZGqqauknsW0pKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQT49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg1MqOk5eQp8+SkKfXuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLUwq+ws9DVy73V0tHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dTW1tbT0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioaCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpyenZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYm5qZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6OjpKKhoJ6bmZmYmZmZmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoaGfnpybmpqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56bmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmpmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZmanZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmYm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkouQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6JkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJCVnJqdnqiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6KhlZCboKSjmpONiIiLiZGRjpKOi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6qpr6Gbn6Gjo6CanqCclI2YlJigoKGknpuapaekqauvrKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66vqqqrpKGipKmnpqmoo6Kdm5ukoaWoo6CYnZifoaKpp6Cioq6sq6qnra+opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKelp6mnqaijp6aZnKSmoqGhoaGgnpmZn6CmpqOinp6Wn5uaoqKgoZ+hoqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXFBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+foKqemZybqqShpJ+hm5yanKCeoZ+enqCjmZabmKSioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirsKmoqqihn6Cnqa2wsq+so6KmoaqyoaSio6uipaSipaOenaCen6Wiop6fopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltaYF9aXFZcaGRuY25qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu3taSysbCboqeeoqOjm52cl6KopaGfnqObnaGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eWpiW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7WzuLKetrS5f52qpKKfoJeVmpekqqamoaSjpKumpZmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odWtxaGlpYVlTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW1vLy+vLy+xrq4t7q9tLCsk7G7uWuPuLKqpqafmKSkp6ikrqSrq7W1r7Ogp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrOppYeuwbdher7As6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5rY2Jud3V2bmxbYlFWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6wr56ArbyyXmm2w7qtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbWZudXFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtbuUfaq1pV5hoLy7saCbsa+spKyutKeqqaiqrayppqWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3RrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+8u77EvsXIxsbExMO4tMC3tLzBwrnBh3uzxaJhYYa5u7asm6O3sKastLWsrqWko6ikoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ4c3lmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GycW/w8DLzc/KxsTDw8HEvri+wcPBun18v9WmZGJysbO0qp+ntLKuq7i1s6ypo6GtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXWtvbnh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczOz8/Mw8fGyMnIyMnHxcnHyMe/xcfEx7J0dr3XpGVjZq60t7fAvr66vbq8urysraaqu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGppdG14bF1kW1ZgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzsfMycLCx8LLy8jGzMrOxcbFw8iqbHCy159jY161xMHIzMbEwcTHwby+tLCwsMG+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVudGJdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8S/v77Ey8jKy8m8vMjHyc3Iw8jJycXFw8LCo2Vpn9KaYGFevs/Hy87Et7+/wMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVmY2pkYmptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nIycPFxMDDwcLBw8LDwZxkY4fHnlteY8TNxcjQwa69vri5u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjZGRqYmdjW1paXFlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8ytLAu8DBvLvFvbvBxMSjaWR4vaNbXGvGxcDAyb+wwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmNoamdnaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLevrre1ub+7wdmKssK7w7W6x7e2ubvApnZyd6adaGmAxsC/u8G+uca8wsC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeHFtZWVmb2llbGhYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNHGdqDMvce3ubiut7W+sZ2FhIKTlXt/mcXAv769vL/JwsfIvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NmYm1gXFRJS0pESkJDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC4u7K9vrvEtrW4tbfAvsS8wsTYrXJ7tsnPwsC4r7W+v6COhH2HhI+BhJmwwsK/vr28x8bLysTHvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGludG54Y2diXGNRS1RIRUVDSEM8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vbyyvL68xbixuLq9x8rJwsjJ0pZvcKnS0czKxLW7ya+IeHBlfXmFb3OAiLXEvsG8wL+3ysnFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9jXmBhTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0u8fSwrm+vMS+t7zBv8jPxsjKysCEcHKizcvLzcrGxcGVcGJZT2xze1dYaHKZv8HAv8SopMjEw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXl9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8tru4rtzCvra+wL69tJ6Uoquvv76jdnR3otDJy8jBw8OmeFxNRkFfb3BJRVhhfarFv8GyiJnIw8DIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3hzZ3BdW15dWVJGRENNSUFFPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vIrWyxzb21ucC8pHZqZ2xob3yRlG50eaLRxsjBuL+9h2JMQkE6VGhkRTpOWGiSw8C0kHKeyL6/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f312bHV7cG5pW19gWVNQQUZIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnA0Klyg7S9trW/noRoWV9eS1FaWmtvcn2jzb66ubS9tHhQQFFlQEtcWUc5R1Nce7y5nHJprLy1wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3V2d25xYF9mXVtUSj0/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5wsuggnaLorCzkWZgZVVZX0tKTU9TbHOEpce7oqOtuLCERUBwllFFUlFLOkpSVWyqoX9kcravsry6rru0s6arqK26vrjLwr++rKuwr7O7t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVteT0hCPz1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt7/FooZ5dY2ijltSQVhUR2FtWVNHSWONo6rDxpmEkKOwpUJHe5pfQlBRTjlTWlJhi39pX4m3payzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZlhcXVJOTkE+SkJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i4wrCOf3iHjmhOSUFrV0JPdYWZcE1DVn2wu9GuenaCoaZGSGh3WEJYWFs8VmNSWm9oYF+hs56kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c210aWxdW2pUXVxQTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7izkoyIg3dVRUBUiVZKSlN1i39iQFmpubLHz5JnbIOES0ZTVUlkkZ+pnpd7UVZeXFdyr6ehnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yuqeYmZZoTD9ggGpOSUlNZ5p/VkdZrbqxr9K6clthZFFFUHCVqaWempyen4FUUFNTlK+fp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6ajm6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3pjd2xuXFFoVFBOR1BNTEJPUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqL3Bqaa9YUJco31PWklLYUtbiWZtc46vtam80pdVT09QbqKwp5yPlZGOl56ijlNJXKWknaiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mbpJmXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dn1ta3tkaFVRY01KSEdPUk1KTkc8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaCrxcDJlk5Cdp1rUXFMUGFnd3BfYGuBmbCwrsa6XT5glKWemJKMj5SVl5ebn6aLUHKgnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3h8ZHl5YGJSVWBISUpLU1RJUlBMOT9BNjc8NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWcpMbGhldSTWSfXm59dXlXUWtjXmpnbHiOtK+0wn+EoZ+dmZSXmZiPjZCUkIuNkIGKoZ2Xo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKqyrqKZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKT09VTFNMQTc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp+qo495V3N1cnRpX3JuWFldXmRnWWJfaKyuq7Coo5+ioJaQk5ugmpiWkZKem6Glm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWp3dV1sWlJgSFJVSEZVVkpCTEc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCifm97aWBjV01bUlVISk9VUEdSU0qZrKqppJ+fmZKRk5iYlpWUi4eKjZSdnJ2dnpeemaafoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+np6Wkn52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pdm1obVxYXENXTkpHTUdDRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOfnIhfVl9mX1VMTEQ6Pj5CQz4+Q1N4qa2pqqWfnp+io52enZqcm5OSlJOdnZiUhZ2aoJqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsS9w7y3s6mzraqzta+zrqqvo52rp7axraKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3RycWhWXFFGVEhESlBJP0VBNEZIOTU7PjY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5N7YGBmXk5ERTxKRUg8Pzo2Tn6qs6ejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeG2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3xMrJw8HGvrq0urq1u7ewtbKqurKuu7e/u7qquK2rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGtlWltGS0xFRFNNREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdnJl7cmlfVExEPktggnNlQj1cjq6soJmbm56emZeXl5KMjpaXk46NkIuCg4J3cnFtcI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxczR0tXO08m9wL/Du8bFyMXR083T0NPTzMrCxcbGysjOv8jRzMfGx8XBvMPBv7+/tr6zrr/Aw8PHxMfErr+4sri8w8LCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MREVQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6VaGRbU0hDQEBNkKewnIOgsq2jnpyfmpeWlJKUlpGQj4yHg4OIh4OAgYGAeXFyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LV1tPUyMzGzM3J0s3O083FyMrKwcbLx8nIxr/Ds7PIxMvLy8/Gyr++v73Bx8TMzMjJwMO/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm2BSS0hEQ0BGWLbSvLKvppycnKCkoZ2alJOVlIl9d3BrZWJocW9xe4WKgHVwbnF0cIWzw77F0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLV1tnV19PX2M7Sys/RzM/QzdPQv8jHysTMzMzOz8XGx7a/yr/SzczPxsnIv8TDyM7N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSUo+O0E4PTQ1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWfoqFZST9BQ0FJU3yyraaZlJefnJqgoJ6bnJmViXdpY2BfX2BfXl9fXWJsdXRwcG9scnF1ksTIxtTW19fX09bQ1dTa1NTOz9XU1NHRzNHN09fW09XQz9LT0cnT0cjQ19fY0dfS2NnU1szPz8rN0svO0MHGw8jGzs3R0dLJzM3AyszG08/MzsjEysfHyMzK1NTR1c/SzNPCucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaOrZ0M5PT5HWoOrp5+XlZeZmpyfnZicnJJ9cGVjYl9fYV9fYWBfYGBfYGZucHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY19fLyM7Eyc/NyszAysDIys3O0MvQzs7Mzs/Iy9DQy87KwsnHyczLzNLTzdPR0dDQyr3IubCuu7i1qrawrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg2NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramksHpLSkU/Wo2hm5WTl5uenp6ck5aXlIhrXl5eYWRiYGBgYWBgYV5fX15cYm1yb29zdHZ2eaS+zNXR1tTT2NbOztTLzs7FzsrS0s/Hzs3N1MvO083L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXMwsjJw8zDxcjKys/KzczQzdPLxsjPzMjHy8XGwcbKzM3Q0cbQzs3NzM/Fx8G4ub3Dw73DubKyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYZ5cXJrbWdgYHBoWVhoVkxGTElQUUI7Qz47Njc6ODo6NTc9PUA7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKigrpN4cnZ7i5WajYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNiYF9fYGFhYF9dW11ncnJxcnNwbXJ5pMbTz8vQz9PUysXJycbGv8PGz87HxcfNytLIy87OxtHS0M3M1MrHy87PyMfP0svRz8a6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL/Bx8zMzM/CysvIx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7uto7Z8ZoODp6yTjo2Wj4WDg4OBfYSEfnNgW15eXmBeYGNkY19cXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jLycjKyMHFzMbIy83JxMLKycHCzNDFy8i/ucG7xsi+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xr28wMPFzMXFvMDKwsXH0sXAyb/KycbIxtDDw8bDr8TLx8TKt7+8urSprKSlmJ+YrKOhpZujoJuUe3dydGZpWmFubFpcWFJETEZCR0RMREZTQDU0MzM0Pz0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sa+1a195f6aQipKWhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgW1xdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjBwcHFvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7u8bDv7zBzcPGvr61wb3Dur3Gu8K6s7zFxMLCt7+1tr6/u8zDvLW6yLq/vsvEwcbCxcnGycbQxsLMx7LHycPOzcHFw8C9s7ewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1tfNys/FycXHwbnFvautpF9ldIeTi4iLhHh/hoZ/foR7dHRjXFxdXmBgYmNhYWRlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnmdvczAw7rAuK6wsaeqraynuLS3tLOztLu1vrK3sLWvsrzCvMHEvMC7tbK6vsC4x7m0u7bBwry4vcbBw7u1r7K2ur+0xLe7tKu4vb3AvbG6trC2urPFvLauu7+1t7TFvL7DxcDDxcbIy8XAxsa7x8vAz8rHw8bCw7fDvb22ub7Hv6y1urW3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcXAv7q3ybaqsJhbaHGMj4WIiXp4foaGd3eBfHNoXV1dXV9gX2BkYV5jZWNfX1xbXlxdXlpcW11fbHBuaGZrbW5yfKTHv7m4tbCrraeeo6qnnquts62qrKm0rrexs6mupqyzvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLLAtri9sLCnsrO1u7yrrrWmrravu7Kwqrmwrbuuu7i7wMC+ucK/x8PFwLzGwsjKuMXHxr/HxMO6xMbCu8bJzMuzucK9u7OJc3Z2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXQx83Bw8a/xMTDw8rCycq/wLzBurO0tcOuqbCRXGp+koeOj3t4fYmFenuEgHduXl1cXF1fYF9fZGNhZGNiYF9dWltaWl1aWlpaXGVub2hmZ2lrbnGBrbmwta6mpainmqCloZqcpayupKiiq6qtq7Ckpp+qrbW2sb25r7evqK64tLS8uLS8r7i5tbK8wbLArqWpo6uxsrOovaqrqKutrbSzpqitoaSvqbKmp6iupqi3rLGyt7q6vLG8vb6+xL+1wsHHyLe/wMW3xMO/u7/Ewr7EyMzKv77EwMCph3N0cmppXWFvY1dWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HKvrvJtr3DvrrKt8HDwbS2vLaxr7W7rairk2VsiIOHi4B7fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9dXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWppauloJyipZSepZuYkaGjqqOjoKWmp6atoJ2cpKatsrC2t6ewrKiqtKu0urG2tq62urKvurqxtqWgpKCmsaerqLmqpKenqKeyraCnpp+bpKasnp+npKChsa2trLK0s7Swtby2u8HAsrq+w8GyubnDs8G9v7W4vL2/vMLHxMPDvsDEoIN4cGxiZl9rb2BVWV5ITmdPVEdFS0Y8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo2Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9tqCelZ2hprq2q7Ozu7PEz8nLwsa4tsfAzL+4ybe7xbizxLizv8CstbyyrKWvs62ho5JpcYaFhoB8eXVzb21qamlwaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1vh52poJeWm6KWnKOZlo2foaOnnKCgpKWip56bo5ugq7CtsbajqaqqrKyktLmtt7Css7Wus7WusKqfnp+korKkpqm4raKmpqCorKuZn6CemZ2fpZqZo5ybna+pq6eqrKytsbK4r7i5u7C2vLy6q7OzubO+tLaysba1v7a+wL3Dwbu7vZeEenNsX2VeZGRYVFddSVdcS1BHSUpHQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vDw8++use4uL+3ssK0sbu8q7m6saKeqaunl56QbX6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3GNp52UlZWbmJuil5aRnKKiqJ6cnaWnoqWcoKGbma6urq6yoKairqunorWxsrKsqK+zp7qzpragop+co6Gto6Kqtaqio6aepaajlpmel5mbnaCal52dnZytoqunpKSmrauztKq1sLOrsrm0r6qvsrKzuLOuqayusrixu7a6vb+3s7GUhXl1Zl5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLMyMa/xbbBwMbOt8DEvbO5ubO/trG5u6yytK2emqSpn5Saj3h/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqGck5WQlZeXoJeZlZegnqGdlqChqaSfn6mdnJqrp6+wq5ujpLiqoaCuqLaqp6etsaS4sKS3oKObmZmqpqGarLivoqGknKKfoJOUoZSWlpuYl5aXnJWfqp6ppKKdo6qqsK6otKuqp62zsKWrrrOxsK+ur6aoqLKtsbSwvLS5t66jlIF5dWReYVZZWFNSVEtNXkxPS0dHTExFPUE+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2nqKOqu8C9wLmutLjBzMfFwsO9xbjIy7LBwsGtvLu1u7y1ubmwr7Cpm5mhqJSRiouAgHx3cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmmBlpOWjJKUlJuZnZaWnKCcn5agn6empKann52fpqCqr6afoqS3qKGhoqi0oqWopbClsa6stJ6hnZWVqaGilK2xsZ+io52emJuTi6GUkZOYmJOXl5iXnqecp6GimqSlpaukpbCnpaOrq62mqa6vrquoqqmzpqasr7Sxr7y1sa+voJJ6d3JlYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxce2xcSywr/Fq7e3vba9urq1squsp5iYn6OLiXSJiH52bmNhZmloZmdpZmptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVNVUlVgYF9gYV9hYWNlaoCUk4qQjpSTlJ2VlpekmaCXnaCloq2mpaWjo6Kcqqulmp+lsaqgoZ6lq56oop6trKmprq2ioqKVmKObnJCrqbCcoKKfnpeZk4qekY2Sk5aQmJiUnKGjnaShopWgoqSmm6OrpaKkqqOrrqWusqmmpaamtKapqK2ztbS5uq+prJ6McnFvYFtXVlZSR1FPSFpbT1JKVEtTTEVGSUQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6PDw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb7DyKyxuMG1u8C7tLSqrKaVmpuciIByiIN7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eX19fYmRtjpCEkYePkY+ak5WTnJujnJuhqamrqKynqaakmaWvpZWZpa+qoJyZm6Cer5mcq7Ogpaafo6ShlZOblpaSqaqtmpyfoaCblJCMmY6MkYyRjZaVkJ2ioKOdnKOVm6CjoZeiqKOiqKugq7Ckrbelo6Sira2qqKuvs7ezvrWyq6+YhXRzaFtZWVNVUkVYTFFbWE1UTlBMUFFJTklCPT8/QT89NzU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1NzY1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9u7O1pqmglpeYl4d6dIB2d25taG1tbXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZH6MgYt/i5CKko2XkZeZoqCboKuqpq+sqLClqZqfraCVlqSpqJ2YkI+anq6XmKiqmZ+dlKWhnpKRkpGTlaeqpZqZmZ6elo2Mi5OGiY2Dj4uSlZGgnqGkmJWflZqhop6Um6Wlp6iooLGxprG8p5+jrLWrrqewtbC4tcCxrbGrkX5yc2JWVFVOUkpHVlBSUUxMV01KTE5SR01LQUNGREM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OspbG3qqWisaudqqepsrGktsa0ubqzysW5usHL0Mqxtri7vcHDsa+xt620s7uzs6KjnJ2Xl5SDf3drZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/dYmNh5CKl4mUlJibmZ6pm6CrpqasnqiaoKack4+fo5uXl4WEkpujkJWjnZaWloiim5uUi46KkJqkp5yVlZebkZKHlI6LgYuNgJCKkpKSoJqgopaUmJmVoqaZjZmkpqimoaC0sqeyt6Gcoresqq2ksrKmtby1rKuxo4l5c21dTlFRTE9DTU5OUEtGTk5KSk5NUUhNSkFHS0hIQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKSnpKqloKimpbOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq26r62fmZqdlZSHe4NuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW9zdnCEiIKIgJGEj4uUkZSeoY+bnKOipJmll6KclY2HmZqMc42Dfo6XloaRmpCUjo57mY+djIKJf4mYn6OekJOYloWNgpR+fnSKjnqQh5OQkJ2bmpqSlpCdjqOjjomaoKGjpJuitK+sr62fmKW4pqaxobCunLC7qqmvqpmDd3NjVk1ST1BOQ1NOTFFMQlBRSElOUk1ISkpESkxGSko9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpqWnpqezp6W0wbiwtLDJxLe5wc7GvbOsusGrrcOtp6Gmkp2mtqyjn4+VlpKPfnh+ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11pbHJsf4V8dE5YcpCDl4eOnZeLlJGfmJ2VlJaVj5aJgJOKXztXb3yMlImAjJKMkIaGc4qFl4F5gXuGk52Tg5WOkZCDhn2TeHFwhY19iYGRjY+XmpmTi5CJnYifmIiHlp6aoaCXp66pramonpats6KmrZmsq5ios6KpraOTfnJuYFtOU1JXTERUSlBMTEZOT0lFTFFNS09KSUxQRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepqKOqsKintMG5sLWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUm7CimZeGlI+Lh31zdV1QTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXuCdFFCQH+VkpJ9iZWNhIqNm46WlYmSiIaVhnmJf2BKUW54i5KEfYSNioV/f25+f5R4dXZ4hI2Zb1GNiIqGe354lHZnd4aIfYqJlYuNkZKXjISKiJWEmoyChJKalp6dlKSjqKmlpJ6asKuhpKSRpqqWoqqcoqaoiXVtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+hr6GnqKWnqLCtqra8tre3s8G7tqe6yLi2qKi1tqqyvKaelY1/iZOolpWKfo6Dgn14cG5YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXFWPiZSJdH+HgXyFjJOCkpqLj3uGj4B2gHhzb3ZwdI2OgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gHZycpJ3aHWEhISFe5WKiIqNi4B/hIuMgJSDfICPmJSclpGenamen6CdoKmln52YjKekk6Gglp6fpIByaGFcXUpXUFJISlhST0pMTVJKSkpMUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlraywsqq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGNlIGOnI6Rf3aGeHx2b29pWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfHhmd42XmI2PfWh5gXZ4gImQfYSYkoFyh498d3tva36tfHOQin97hpKBfX90ZnZ8hmxvaHN9iYyIgGx5cX1xbXaPcWhxgX6OcEOLhIKDhX93d3qLhX2Me3V+jpKPmIqSmpujlpmdmp2eoZyWjYqkm46el46WmJB3b21lYlpYWFVRSlNVVE9QTlBWS05LTk9KUU5IT09MRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmxr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mOhZJ5iI6LinVxfG11cGptalhLRkdFQUBDRElMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnt9fnt2b3RzhYJ5gXlwfI6MipSDlpeYmpCSlZeZl52WjIOJnpGLko2GkJaAb2pub25YVlhUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCjrKqota+urLS/q7zCv6aimZWkl56NhIuUoaGYmJGTi3OOeoCGjIV0b3RrcWxkbGpZTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXGCniGKaaXR6ZX9wbX96i4l2goiGdGyakXRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxf3xocXF8bpOOj3xzfXxxcG52bYJ/d3l1anmJgoiJhJaSkpCLjZGUlI6XjYB5iJeIhoqGgJCId2trb2hlWFFaV1lZW01QVVZZWE5JSEVKSkhHQkBGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfp7uvq7KwwrG7w8ealo+UmYuOhnmEkJiUjZCMj4Zxh4J0h4yGenBycG9vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiYBnZ2JqbnJtcIN1aW9YdXCOm5J3bH96fW1ybnCAenN2bmJ2g36GgIWQkIqKiZGLkYyLjoN1eIqOgH6DgH2Pe3JwcGxgW1xeXFlYYV9STltaWFdMSEpGSkc+QkFCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ2kp56vlaW1qq6xrsGyu8HGlpCMlI+AiH1ugZCSiYOKh4+FdYKEbJWIiHt0eHhsd253Y2leSVBHPkA3NDQ5Ozs7PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgYWZhJucYYaqn52Lg5CNeneIfomIjXOKl5CDel1kcnR6fHeKbWhqYnlvhpCCem6Bd3SEenB0eXdrbmldd4d8h3yHh49/i5KXg42FjIZ9cYR/g311d3t8iXdwc3RlZ19bW15UXGdeV1FVWFtVR0pKRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIySnJ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fYF/cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxyfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkqiHgJiYipt0bXyBhod9jmhnaHh/boWHgoVxhIZHbIB3cnl2aG1rX3d9g4l/iIWLepWdm4mLiJF/enWLdnx4bW93fX90dHJsW11dW2NjWGdmXFVPUFZZUERMS0ZOSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiJGBmpWCoaGYlZuapa2Tmruxp7vHw6iLjKGlj5SJgZF8cYOen5Gcf3aFhYqQiJBpaG+DgHSMh4SLcYWCd4d/e3aFfW52dWaAlI+GiYmHiIehqqKWiY6Yf3qCiXp5b2dreH56fnJqZF5aWl1qXWFmYFlPS05XUlFIUEpETkdDSkRCQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMgIGRjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBjIuCiY2Df4l/bXBqXUJBNC0tLy8uLzAyMjM0Nzc4Oz0/QkRISk5RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2aj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPoZ+TmJKEi4WPmZGWbHB1iYuCloyNj3ePhHFthYGKlpGDhYhyiKGWh5OJjo+WpbWpm42VooOHk4N9f2tqa3yAgYFzYV1jXlpma1xsa15XS0dPU1FOTUxGSVBDRE1GQUNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+l5aalZ6enKegqZaTmJ5nZaSafoSSkXmAkoiQkn2KhJiSkYKAgIuNiYWQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0VOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZyopaKZoZeilZ2fqJ6oq6CorKmqtZerv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGJlaKamnh6fpSYkqGSlpiBlJ57d5WSq7OIjZeffZSenI6Tlpmkoqa2sJ2RmaiIlo+NgYhsc3J8f3xxaGBcYF5iZ2NgaGdbUkVKS1BPSUpMRkZNQ0hMRkZDQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJjIqEkoWDhomBgIZ3X2JQNDYwLTEvLC4wMC8vLi4wMDE1PkFBTVFSU1BSU1VSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYaQd5WLo6eqtL24pK6srKeotKuwtrKyrbuxs76cs8Osu8nLt8O/uKWjsLKsraqji5aYhaamoKOXgaaZjaKqqKSIhZSkoaCqoaSpj5yxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilKSqiJmJkoqVeXp+hX5nYGhcZWJdZGNfZmZfWk9DSUhUT0ZITEZKR0VGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GPg4WAi4WGh5KGgoSJhoiHh3FuYUBFNjQ8Mi8xMTAtLCstMS4tMz9EQU1VUVJTVVVXVU5bUEdHRTw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqscHHw6qzxbass7+zuL62v7TBtru7pLjGqLbJx7W+ubSoo7StsbGbmZKan4mor6ullHafpJehq7GzmZaqraiutruyuqyvtaKxrLG1vLe1rrWgp6ejqJqpsK2yuri4p5u2qYyljpGTn4Z4goN1WWFkVmVhYWNgYWZfW1RKREVMVVFISUpESUdFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFjZFd5dXGBlH2Fh5N2hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjYeEgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0pBQD5HS0ZFRDs+QDdENz9CSkpFRldUUF6Ppa6jsbTDtrjBzMm2u8S9s7PAt7fBtb+wt3Sxs6a6xaSwxrmxs7G0qKS1tqqxoKGWm6KSpbCupq2rp6SYoKyzuqKpsrq0u77Mv8XFvb2zwre6uL+3ure5rKywprGqrb6wvbvCwqyZuqiUro+Xl6uJfYJ8aldiYVdqZWplV1tkWVZUSUdHTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVVadmpwf4+EgY6EbnpzeYdiuKGZo4mVk5aTlJONkJaSh4Z7hoGNloqBhIGKenyKh4Z8ioOBioOVfXh6dWVPXGRHRUw6UWNhW15TRj87SFBEWmNRUVlYWmdZVGBgTVNQRUE/SUpIRUZBQEM8RTZCPkhHSkxTWlRdk6+4tbq5yb+6vcnMu7zBvLe1u7u3vbS6scZhdbKlsZqeqr2qpairqqOisrWhq6ielZafmJ+upaempZ+jlKKmsbSnsrK9tsG908nK08bCxcvBysPAvr2/u7y3tLC5t7bDusW9w8iwnrmqoquOpai2iYB/cV9iYl1XYV9oZlJYYVZSVUlFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdsbHGQjYWQc2xycnOI1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaKf4N/g3h7i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV9uX1hnZVVZVUtEQUtLSEZJSEhHQkk5RD9IS1RUVlxaW5K5wLm9t8bAurjKy7q3ura4ubK3tbSutraZZHWonK1wXqGtnJigopuknqqllKCfkJSOlpiXqJ+ln56amoSknaylqrCst7C9udTRz9fPyczRzM/OysbAvsLKvcG8wcDExMXKv8jOtKS7sLSvm6u5vJp/eWxdYFxZXmFZY2NRXGBTUEtDQkVHRTxART5CSEJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KQlG9sb3V1h7OsoaGfi5mcmYyNlZGbkoWKin6Ih4yQi4l8gYRze4qDhXuJdIGJhpV/c3t4a211e2hyZWlsaWZqaWhgZmlobFpudJetpLyIh2dbb2hdWlpUSEtOT0pLUUtUUUhMQUpHS1BfXmJmaWGXt8ewubO7vrWxxMe1sLmwsLursrGnqresjbannZunmk+anYyOoJaRppillYqTk4mQiY+RkZ6boZealZaHnpqmm6yvqK+ns7TU1NTW0svP1NXO08/NxcLJ0L/KycrJ0sfMzcLQ0riww7zEuaW2usSigm5jXFxeWGFYWWVaUV1XT09CQkhFQkk7QUQ+QUc/P0I3O0M+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmIJocW95eYOgqp6ml4ybm5eLjpWRmo59iYuFjoqKi5CHfISCcH+IgYZ7h3KDkouPfnF4dWtxeH5xe214c2xpgXBtY2lucHhpd3x+y7/C36dtY3huY1thYEpQUlVOWV5QXl1NUE5UUVVUXG5udoJyl624rLSnsLarrLzAsau1pqS4pquuoau0o46xrpqYmIyRk5GEjpuBjaeSnImDi4SKiYSLg5OVmJeTm5GcmJmZnp6rrKSnoaytz9LV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbFwM7Hx8OovrfQnnpuZV1iXVdgU11bT1BUUE5IPkFGQUJFPEBCPkVEPkA/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bHdwfX5/oZ6eoYuNmZOTjIyTj5aFeYWPkI2LioiRh3+Ce3J+gIGHeYR1hZORiX9vdnJrc3x7d3xzgXdxa4BzcmhvcXp5cnu+y5t+jLKDdnKEdmhhal1DWlpbV2ZkWGVrU1hdXWBkXmN4e36LgZmqpKShoKGopqqwuKqltKOhraGjraKnsZ+JppqUkpGJkY6IgZSJa5WijZmEgIV9kYODk5ati5WNlZmOhZKQnZensKGgoaSkqMjOz8jCy9HU0dTTztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMTDy4tzb2JgX1hUWlNcUEpHSUlKQDs6O0VCRDxCRD5IQj9CQzs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5aJj4qIjoePf3iElJmKjYiIi4l+gnhze32Dh3d/eoeRloCDbnhwbXV/dnh+dIV8eW2HdnRufXaEdXl7nbaMPEGLxqV+jXxpZVZJQ2ZjZWNoamRveFtfZmlrbmlugIOJkYudnqCdkJeYn6OkprKkpLOgoaWdoKmgorGchp6SkpKQi46LhoOQhH6cm4yNg4SFepR+gqmVo4ySipeSi32XipqRqrOYmpunnKe9w8a5tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2trS1b/LzLR4dm5kXVlSVlFaVkZHSkpFRT06NzlAQUI6SERARUNBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqBh3x4hZaWiI+Dh4WHeoR5cXp7hIZ1eoWOjZ16jHB8b296f3F8gXGDh4Fujnp1d318gnV/fIeIsHRZqcK2jJKCcG5iPV5ocnBxcG54d4FlaW9ydXhye4uHjpSSm5WglYeMk5ugm5+qn6CtnKGamZ+lnp+smYuajJGRjYR9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI6UjIZ7m4iTj66qlJWXnpinrrW9qa29xsvIyczLz8jD0crU1tnX2NfU29fT2dvWz9va0dbJ1MuVeXtoaFtZUFJUXkhDRUlJPkE+PTc6PT87Pkg9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoGEfoN8fISXjoeLfoaGgHeCeW57e4eBdXqSno2gdo91gnR1gX10gIRvgY+Cb5KEdHyBhXp2hnuJt8alwsm3gZabj3dwZU5mY4F6gXeGopCLeHl3e4N/fIR2bpSWlJWPmJCDio+WmpeXppyXoJefk5KXo52Zq5aRkIqNkYKMhYmIgYWQkZ6cmYmFi4GGmHqJiZ+Xj4iOiouCfKGJkIu8oZiTl5qcqaalrp+otb7AwLnHyc3Oxc3K0dbW1dnV19vU19na29fb2tnYztzGhnp5Z2hlYFRXVlVNS0RORDs8PTw5Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eot8foB+f3yFe36BkYmEhXqEiHt1fXRufH2GfnR+kp2RnoOSfIZ+eI59eYqKboKagHSYhX6BiYV8fpB6j6mPkMOgvIyco5x9iYR9iXOMin5zppqcmJSFe4+QiYRoR3GhpJ2Mi5CShYmLkJKVj52ak5WRl42MlZ+dlKGUko6NkIt+kI6Oi4SIkpaan5+JjJSSnpGCi4CmmYiEjoOGhIClhoqLuJidkZWWoqehnZ6do662urWrv8bK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3h4d2tpZFdgW1RQT0hETEI9PT45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxcnmKe3p/fH97iHt8e4uHgn51g4Z5c3pzbYF+hX13hZuhm52UkoCLiH+Yh4Cckm6HqIV6oIt8kY6DiIScfpqRio2jop+QpK6gi5GLhYuBkoZXcq2Ln6ubj4OYm5CQjlyCopGCjJ+TlYyHiIySk4yUlJSPjI+KiJabnY+VlpGLkpSGgIuIko2JipyWmaOjhpKdlqGLioiOnJCDiI+Ag4eFpIaMkLOYnZKUl6GhnpmSnJ6nsbispbzCx83Hxs/Mz8zO18/R1K7W1dja2Nra19bZ2p9vfHRnZ1xdWFNXWENASUQ+Pj46NDk6Ozc6OzozOzs/PT43Ozk6MTlHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieG1ifpKDb213i3h5f3qBfIZ8e3eGhH9zcIWCenV2dnSEg4V9f5Kmo5+lopaJnY+Ul4uKqJdyirKNhKeRhJmThZmLopagmJOJm52hkqmvn5GUkI2NiJWLbo23hZrEyLKcoaWbnJiWkbKRZKTNx5aPhYeJkJKNjZOUioWKioaWmpuPkJSThpWXhH+Pi5mIjZCql5eko4iZnpabiY+Hl5eKhI+NgX+Hj6WJjZOpmpeTlpmhmZ+Zk52bo7O0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6Ccn9oY19dXk5KVFpCQUdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj46RU1GSFJXU1JCY4FGdYKPfXxtfoh4en56gYGDfnZ2gIN8bG6Lf3l8eHh8hIeLfYqjs6ejqrKhlqefpaSWla6ig5C4lZKzmY2hoIylm6+jpJ2YkKeWp5mtr6SXlJaUkIuYmZagwI6kybirm6KmrZiRm5yynYaFqKKcmIWIiY6VjYuTj4iBhoeIk5iUjIuTk4aUmIaEkZCcdJGZs5aXpaGInJmTj4qQi5eaiYqWjoZ9jJieiZCQnJqZk5iYoJSgnZWfm6GxrqKkt760xcfEvcPDv8bNysnSp87N09LQ1tjT0Ni7cnl2XGBVX1dQSElORUJDRTU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1NjY9OkpGREdOW1xZSWZgO0iEi3p6boWGenyEeICFgX5weHx9fG9yjXp9gXt4houJhoOSp7utqLK9r6Wts7Ooo6KwrIqatJ6juKSVraSWqa23pqSjn5mpmKmjr7CqmpiclJWRl5+Xmbu7rcmhaba4q7CUmJ6jq5OXvqNeqrKCiYqNlIeRfI6OfYOGjo+UlYiHk5eMkJWNi4yXmJKdmbSXlquei5uUko2QkoyZm4qSnpCLiZWgoY2UjZianZOcmZ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8jC0aHGyc3NxNfW0cvToXB6aF1ZU15ST0ZEPjxDQUI4Pzg3ND5GPDw2PDM1MzQ1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVHYmBicElAi4p+gXOGh32BiHWCioN/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruztMG8tK2rs7aMqLKurryqm7ukqK25uKumpqKho6Oor7Kxq52cpJibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIecrL2wg4yMi5CDj4ORj3qBh5CMjpyIh4+XjYuVl5SRmpadp5qxmpGsnY6aj5KOlJCQlpeOkaCRiZWbo6yUlo+UnJ6UoJ2bmKChlZqep6ekoqSwsqbBx8OvsLq2xcTCvs2nx8PHw7zV0c3Eyoh0c2JcWV9bTUpCTEBFRz9BP0I7OjQ+QTw9NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxmRmBpZ1pdW5OMjIh7h4uGg4x1hpCKgW9+fIJ/cX6BepV6kZSUmJCTlae0xsm/wszBw7nHvLqvq7m7l7K2urLArqXApKuvu7yqrauiop2nqq60sKqbn6qboZuVn7C0p4uiurq1wburqZyypaSolIWOqsPEpIKLj4eIhIaVlI16g4yRjpGhjIyUkY+Jl5+Xk5mVmKagrp2MqpyOlo+SkZSVjpCVkY+hlIaXn6CynpSalKChmaSfmqCcoJSZnqakpqekr62lwMTDrqi3tcnDvrbOssS+xLyz0crIwrV0eW1cWFxpU0xIRExLS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk1lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoKQeY2hlqiampi6vsjIysHSycrCzLzBs627vqe6v728xLeswamssru9qrCpo6WjrK2zrba1oJ+vnqWimKO0vKmbqLzBo7a2r6uSsK2rrJeGmqqmpZGCjJOllYmAdYqSeYWNkpCen5OPlIuQjZSjmZeclZSjn6qfkaWajI+PkJWWiHyPlZKSo5uVoKKctaaQnpelpKOlnp6mmJ6Vl5ulo6moorKsqLzAxK+ls7fMwLmuxLO7vsK4rMLDwsCYbXlhWFdcW0tLTUpGRERJQkJBQ0s6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djZeOnpKJin+Jn5OEd4V/lX9/kIiKkH+VoZqupqOYwr3Iw8fF083Ozcu7wbevur20vMq8w8G1tryts7+5vK6vqKCop7atramxt5qeraKnoZ2rt7eppa++w7G9ubOnqrSzra6WlqWsqKCRjpKxxaeVjnyRlX2HkZiOqZmYk5OPk5WTpZ6TnZmToaOinJifmYuNkI+eiFqQlpeSlqWZZZijnrKllqKWrK2rp5ufppeYl5mVoaSppp+2q6m6vMS1pbS1y8G4qbassrq4rqi4ur24g2xuWldUVU5GSlNOSz9CSEVESEdHOTVGTTs+Nz5BSi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZCDh6aTiIGHgpyEg5WQkJSOmqKfr76uoca9xcTGxs7OztLKvru1sbq7vL7OtsS9t7m3srK1s7izrKacq6u4qqinr7CXo66kp6SktMCwqqy0vsK5wLmzp7i0uLKulaWtr66li5OVoY10wZp+l5mFjpaZirGVmpmVkpOZmaajlZ+blpqpnZyhoJqLjZCWnWBKlpyalZqlllSWsJ+vnJ+llK+vrKaaoaaUk5mZjp2gp6KZtKmqs7y8u6uwssfAuKWrq62xsaOhsrK0pHFuZlxaTlBLRFBQUFE7R0pJR0hCQz45S1U/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1RRVdSc2JXRkiql5mgoqivmZGXh4unlo6IkoWfh4Sdl4+eoJqjpLXItKnGusPDx8rIyMzNxr66s665uMDBzbbIusG5trqxr66ytKejm6qztKqopq2smaSupaSorLq/qKu2t7/Bv764srLDsbm9rKOutay5poicmKabdr+ghZmdjpOZmYqul6Gcm5eVm5+hqZ6ooJmaqpqip56YkI2RnYNudpKimpWdop6QrbKjq5WoqpirrqWkn6Wpk5KZnIiVnKKel7Gmqau6tr6zsq2+ubago6eopaecnKypqYxjZWFfUktNR0hOSVVMPU1ETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5ScoZ+7r5mUnoyTqpuRkpOJq42Hop6MpK2Uo6O2xr20wbrCwsfIxcLNyMK9ubKvubTAwsq1xrHBvLS6q6itrLCjopmqtLqmqaarqp2or6ejqqq+vKesvLO3vca8t7W4wLG9wLOptbervqWPo5eRop+8n4maoJmWnp2Ot5+pnKWjm5yhmqils6GbnaacqKqemZWPlJuLl4mMpaKUnaKeoLSvpaWTsKuZq6yenqSjqZGVlaCDkJ6fnJappKKhtLW7ta2otbKznpyipZqXlZmqoZ53YVxfXUpIRkdNUUlNRUZHQlJMSUFFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+fw6ybl6SXmamclpqaj6qWlqemla2tmaGrtsTCu763wcLAx8S+zce7vbmyr7izv8PItb+vvLa5t6ajqqytoKCaqqrEoaSoq6aeq6+soqmov7imrb2wt7bHtrW5uL+xv8G2tLO0r76jl6OWk5uUraCRoaKlo6OfkL6lqZ2prJ2doZumn72imaOfoqmroZ2WjZWek56Hj4WNk56koJ21rKaclbKnmbCon5qqnqCNmZWfhI6hmpuTpaSamKyxtrKqpaqtrJyYoKCSjpCWqZ+UaGNZYV1OSUdKTktIRURJQT1QSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNiW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGVjV0yimqOcnsWsoZ+snZyuoJOjn5eloKepq5e2sKKqsrXEw73Atr/Cu8jCvsrItri1tLCzs7fBxra+sLi0ubWfpqyqq52dnqWjwaWgqa2gpKmtr6Kmp722prG8t7a1w7Kzt7m+ssPAt7ius7W1o52klZGToK2gmaKdqairo5rDramerK2bm56ZpqC9op2lmKurrKahmY2an5KeiY5Xf5aepaGguKqnk5i2o5+zoaCbr5eejpmUnYKOn5eWjqKklZCmrrOrqaKipqWVlZyYi4+Rk6SfiWJlWmNgTEhKSk5GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIY1xMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXEtOnp+hmZ7Dp6Wis6CcsqeTqqSgpJ+tqaydu7CorLWxx8TBwrPCw7zGw7zEyr2vsbatsLSvv8W1ubGwubWsmqiwqamanaWhp8Ksm6yxnKqirrCppKe9t6a3uryutsOts7PCv7LGs7q3rLS2raqippaVlKOsop+fmqirsK+vvLKmoKmpmZmYk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWdmqKfp7Smp42YtJyjr5qem66RnpSXlJqAkqGWj46foZOLpqywpaeinKGekpKak4WLko2cnoBiZltnZUpJTEpSQUNASUc7O0c/OTlOTVVeUlNKPk9eXT1IUEJMTEk5TmRdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugw6ikqrKho7WplrKrpqKksqyuqbuyrLC1tMa/xMS1wMS9ycS1wMjCtau1qLC4rMDEtLeurLa5pZmrsauqmJ+ml627tJuosJutn660sqequrOnurO3srjAqreywry0xae+rq23taqorKGXlpGmpaKjmJilr7iusrW2oJ+opJmVlZOkoLeipaaWrrKypqqmoZ6bmpqWmKifoJihnq+yoqaNl66ZpayXmp6lkZuOk5eZhZaflIyQnJ6Ui6mpqqKnoJmeloyOmZCChpaJlJ95ZGlda2pNUE1OVD1DQU5DOjpJQDc3UU9dXlJWUUFXYFxCSlNIVktIOlVlXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVKcGlWQ1dGjHlmQzukpJ2hpr+mqK+voKm1qp25r6qjqrS3sbC5t6+2uLjFvcPHvbzDwcbAuMHGwbqqtqStu63Bw7i4qq2xu6KVrbCtspalp5Cquamgp7CdqqCwtLKqqba1rLyssrK5t6y5sMK6vb6mw6uwt6+pq6umnpiYq6KioJGYobGvs6uxupucqaCZlpKXpqG3qaWjoq+xtKuyqKufm6Cgm56lnKKWnaOzsJqfkJOlmqGpmpWin5aYiZSYk5aXnZOIkJuZlI+pqKefo5uXm5OHjpmLfo2WhY+ba2ltYWxuV1BRWlRBQ0VUQDs7SUE3OlhQZF5QVldEWV5dTUxSTl5LSj5aZF5OSFBOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oaqwqqOxuKmltLKroa21va+zuLy6vba2wMK/ycS5xMHAwLjEvcG3r7Woq7eyvL+/tamusbael6utqK2Wp6iOp7ufpK2znquisbCzrKm2tLW9ra+xtaywtbHAusS2q7yvsbirraqjsaaepKqgpJeQmZ+zqrOqq7OanaebmpWNoKaktK6noq2trrGns62yqaScn6iknpWhmJuotamXmZKSn5meoZ6RrJ+YmIWVmIudmp2Tio2Wl5qXpqWjoJ2WlZeUgY+UhXuPkoOMlmZscmdwcl9GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJgUEtNTlhXWFBKVlZXTT1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FVMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSZoKSst6SsqaWurrapr7O5pqawt8W3sbe+wMG1tLrFvszFucK/ur+5xLjBubK1rKq6tru5vrWqrbG2mZinq6qrm6yrj6u9nqyusaOqn7Cts66utrG5t6mtrrGota+zu7zJsqq1tLG0r66nobOgmqitoKWVlZqZsqOtoKavlqGkmpqSjaKlp7KpoqeyrKq2pa+xta+kmZ2tp5qYn5mZrLijl5OQj5icoZiXlKyfnZSBk5mNnZ2alpCKlJOemqWioqCZlZGTlXqLkIZ7jIqDi5JrbnhudntgRWFqWUlIWVs9e0pHRTZBYlRpW01cYUpbXVpSUlJiYExLRV9gYFBMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENeUVwuKkIvSkdQW0gzY1lVS0SZlqCwqLKpraWjrq61qbe0uKOrtLfJu7S7u7++tLS3w8DMyLvDvLa+vsC4v7yxva6nurm3tsO3q62yuZWXpq6rp6OxqpSvu6StsrKnp6Kys7CxsbWxuLOprquxp7ivtbTDxbaptLWrsK2qp6O2n5+nsqCklJuZlLKep5ygqo2po56blpilpaW3p6KytKynsaetsLWspZmgrKibnJ2blKm4nJSOjouZnKKYkJemoZ+Wg5KWkJ2cmJaWiJeQl5uonaSgkpWQkJZ2hJCHe4WBhI2MbnF3dnx+XEtlbFxLTmNcP2J7R0k4R2dXZVtMXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydGYUxWJS1CLj1FTVE8M3JrSkRDkJmlrqWtrqunpLCys6q3sLafq7W5ybmuwbzCt7OxtcLDzsW/wb20vb+/ur+8s8SoqbmwtrbAva+rs7OcoKewraWmsKWesratq7KwrKmotLmstLK1rbSsqayorKm5rrGxx7+4pLmvqa2tpqitsKakpK6jqZydm5qwmaKjoqOQrJ6koJ+iqqamuaWstbWkqauprK+2r6Oeo6iqm6CampKktJqPiY2HkaKglo2UnqCUk4WOk5Kdm5iWlYiYk5WZp5ygn4ySkI2Qd36OhXx8fYeKinJ0cn59fVtSZG9eTlpmXUZElltIO05tWGFbTWBiTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGRISis6ST8zQklTLD6Paz1ISI+bqqqiqrCkqKSztLG0tbGxoautvMu6rsC7x7G0rbTCwtHFxb7Asr7Bwry/t7zEp6y3rLO4vMCwq7KtoKSnramopLCjq7Gqr6ywrq+uq7O6p7awsqmyqaulpaSvuqyqscK5tau5qKiorKqosaWqpKKuqqiinpuirJWknZiemaydoqepoq2mo62st7GyoKmioKuusKyen6eoqZmkmJmPoKeYhoOPioufoY+LjJacj4+Gh5CVoJ2WmJWHlpOTl6ScnZyLkY+NiX9+iIZ8d3+HhYd0c3KJdmxfWWBuY1FzcVxLO4R8Rj5XdVhgWk9jXE5VVlVXUFxiXlNPTmhYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLklnREY4PEIwNUVLWDFAlFs/TUaVl62noqqynKmpsLasuLWuqqWrqr3Ju7C+t8KvsKyzxMPOzsO+v7TAwsS6wbTJxKyvt62yuL++s62uq6WnqrCpp6ixpbSuq7CurbGws6yzuqS4s6ysrqern6Kfsbirqq26t6W1taOpp6ysqq2hqaemsbKjpqWhoayWqqGUm6CmnqSiq6Sto5+nsbetraOlopupqq6pnaKlpKSYoJmWj5idk4GCkImFnKCMio6MmY+Qi4SNmKSbkpGbjJOSkZSimZuaio6KinyGgYKDenSAhIJ+dHeMpId5a15gbmdXZYdkTkBnkkxEYnlXYlhSZVVNVlVVVE9cXWFVS01pV1ZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIZASEhEl5KvpKOqsJirqa21q7axq6Srqqm8wMC4ubO7taWyr8TJy9G/wbu5wL/CucG6wcSusrWxs7vAvrOxrqyrq6i2qqWtsKu5sKmxsa+yrbaqtrWntLasrKSpqpyjn7WzqKiktLSgta2hqairqaunoKurqLm2qaqpqaKpoK2bkqmhnaCkoqajqp6dprWuqKaqoqOXpaenqpyipKOfmZifkY6PmY5+h4yHhJ6eiIWLi4+OkI2EhpWjmo6Nm5GSkY+Sn5eZloyKg390hoF/f3h1g397eH+BiJ2Pb3FnZ3F4XGBziGpPXZhWSG14VWRWUmNQTVVUVVBPWFtiVUhQaVRWVEdQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJRYzAyP2Y9Tlg/Qyw+TFRfL0prNlBFO5WOsKClq62aq6WtrrO0r6qlr6mpur67wLGuuK6hta/Jx8jRwL69u7zCvbrDwb+/rrKysbW9vMKxsrOqs6iktamlrbOzubCjrbayr7K5qriuqq61q6ueqqyfo6C2raihn6+zobSqnqinqqSroaKsrai9r6yuraGnqJ+rmZCvoZiioainn6ibmaqwqaOfrKKhk6Kjo6eYmqill5eZnY+Kh5WIfY2FhISkloWCgouHj46RhISUoJeIkZ2Qk5GNkZ2Ul4+KhYV4dIF/fXV4eYB7dHN6aYKHpHVpXmVsgnVniIx9UlhwXkp4c1NkU1FeTU1SWWZOTFZZZVlGU2lSUj9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTGg6NDhfPWFkP0YxQ1BbWytITzpWQjSQj7GgpKaro6akrKa0s7GqpLCnqri+wLyvpriqp66wycbI0cO9v765vr+8ybzBuLCwtLG6u7nBs7S7rLisorSmp6yytrmzp6a7ta21vK+8pq2stautnKmvpKClrKqnnJ6qs6SzqJqqp6mkqZ6jqaipvay0r66dqaSgrpybsqOVpJykpZ+kmpqoq6Wem6qhm5KboaWdmJepqZGYmpOQioKPhX6Pgn+Ino+Gf32Mh5GPkIR/k5uUhZOijJSRi5GbkpWHiH5/cXp5fnxpd3x6dXFxfWiGeYWIZGBoY3KFem1neV1eVkJXem1UYU9SWEtMTnF0XUhaW2dZRVVmUEQ+S05EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTtFWj8qj5OxmZ+fqaWkoaukt7Kypamwp6y4wb21r6K5raiosMPJyczBtr2/tbe/usi2w7W0s7Wxvbi6vretubW/raGzpqqrsLW4tKqdu7yosr+yuaCvs7WqrJ+usKOcpaipop6cpbGmr6CfqqmooqqcpKmgrbyorrCuoaujpK6enq2ml5+boaOcn5uao6qimpqkpJWWlJ+ilpuWpqyLnpGQkYyCi4GAjoB6mpSNiXx+i4aPj4yKhJKYkYeUo4qSkoeQmo+TgYd8eWt9dnl4Ynt6cXBxc3hpgXRrg2dkaGFvc45tYmpwYHBBXHhrVl5OUVFKSk1TWVZNXV5tV0RYYE9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDBCaFkxM1M9ZV9ETDZLV2VPKTwzUFs9I5KYrJmfl6ekop+opLivrqKvr6iquMK5sq2fua+rqLS6x8rIv7fBvq+0vrfEtsOxr7qyssC1u764qbm3vauktKeoqrCuubGqmbq9pK+/tLSgrre1pqensLOgnqSmp6GlmZ6tp6ieoKmup6Gnl6OpoLC4n6Sxr6GsoKyknKanqZqam5+jlZ2cmp2pppabn6iSmJOYnZKZlqGqkJqJjpCHfYh/go58e6GMjIh5g4yFioyNhYeSmo6JlZ+IkZWCi5eMkX2Ee3NvfXFzdGB5eGlvcHFvan9zZHtsaWZkYWaGgGBbc2pyTU1/aVhaTVBMSkhQUlFJTlxfblNEWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpoSCo/MFpZNSiWnaWYnJatoJ+hpKG3q7CktLOoqLnEtbGuoLesrq2wtcbIwLe/wbmwtL23v7u/r6u9sLS/sb3Duqm7urenqLWop6uwrbOxp5m8t6Sru7avn7G3sKmlp6+ym6GkoKOkoZebr6ahn6Knr6KgopOkpaK3sKGmsaufrKKul5yqpamel5qdpZObnJqdpqqZnJyklZWXlZyOk5eiqaGQiYqQhnqEfoSKeY6Xio2GeYKHhIiMjoWNk5iMjpaZio+XfoaXi496gHpwcndub3RfeHdkbGxsammEbmZzaWtmaV1kc4FgW2t1aVpJfV5bWE9PSkhIUlVGMjlfXmxQRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbDg0R0FmW0hURFVdaEUuPDJiVSwylqOhl5Scqp2loaKgt6quoLq4pau9xbKvrqO1r6ytr7XExLyzv7q3sLO5uLq4u66twLO0uK+/wbisvbq1pqKzqqeqs6utsqKawLalp7S1qZ6yu6mnpqmvrJmip5yjppSYorKkmZ+kqKmcoqCTpaCkuKikp66nnqWgp5KfqaKhoJmbnaCSm5yWoKGrm5uZoZSRlJaajpSSo6ikkIiKj4Z5hHyFhn2djYqKhnmAhIiIiJGFlZOSjJCVlI2OlHuDmI+Ld357bHRybGxzYXh0aGhqZ2ZvhWdoaWNmaWpgaWJqZ1tle2NgU3NUW1tTTElHSU9TQCEqaV5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc5ZU8nMp6jo5GOpKebnp6do7Wtpqq6t6arw8G2r6yjta6nr6+3wMC8ssG2sa6ytra4t7Wsqb2zr7Kxvb+4rru7saWetqulpbSpq66gnsKrqKWvs6qstbudqKqrsaWYnqqepqSRmaatopiepKmhnKKdl6Cdp7Wmr6quoaGenKGVoKafoaCZm5mckpmdlKWdrKKYlp6Uk42Vl4yPmJqpoJGIiouJeYV3goKBnIiLgol8f4SIhoWRhJaVj46QkZGRjJJ7g5WOhnJ9fWZ4b2tqbGd1c2tjZ2VkdYBiZWZmZWpqZGtxWl5ZXW1kYU5oV1pgVkpHSUtNUlg+OWBsaUdCVFNcW0lJR0ZBLjw/OUE4OVJHQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFlKVmJmQTozQWZIJTWao56Qi6yhmJiglqW0saKxvbagsMa7ubGxpLesqq6pub27u63Asq+urbavs7eypqq5sa+ttLa6trC4va2mnbWqn6CwpauunqTCoLKkrrGvt621nq2vra6imZ2oqqWelZuopZ+ZpaOonZqgm5ScnayvpbmnraKhmpuemZ6jmqSdl56Ym5SaoJKolqqnmpObnJKMlZmNlJSZqKeNjYqJj3yCdIKBipiFh3yJiYSEioyIkoSTnJKSj5CRlo6Qf4CMjYNvgH9meW5oa2pncXJrXGhjY3OBYWVoam5sZ2tqZ21cbGx1cWFUYmhkZVpJRkxNT1hRUVZhZYFUQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUplQyc0kqCajo6wnZqToZqpsrCfuMC1n7PCu725saa2r6iupbe4t7esu6+tqqu3qrS4raSxtbGuqbG3trGztbqnqJ+2qZyeqaOqrZypwJmtpK6wtrWtrZ+xrbCqopucpKyom5Wcp6OdmqmipJaaoJyQm6Oqqam7nqakoJiamZ6hj2uilpiccYKWm6SAdZKpp56UlZ+RiZeZgJaKoI95hpSMg25qfneDcWyGi4Z9hIuGb15jYGeEl4Zri5CUk3V3i4R+g49/ZoaAaHVpZldcaXNuTlBqY2dyhGdfZGZubGpeYGCKkISGZ09LRDhFVGdeSkdRUFVVS0hTYW90ZUZbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFRZD0rL4yjmYeUsJuck6Cbqq2ro73Fr6i2wri9va2ntrClq6S4s7KzsLmtqqestKawtKKnt7W1qKest7OutK2zoqmftKudoaScp6eZrLuVpqWvs7itrqWorquspaGfnKGnppuYoaalm5unp52Tnp+YkJ6oqaK1r6Oio52Wl5iXo4ihjpKah6GHlJ2hf6V/pqqdkpKbkoiEcniNjoSIoXaIjWmXiGZ9c3ihb4iHhH6Ne3+hoJ+ZgHuHnnSIjnabimyHgYNtaGVjemxxYlSGbWNsaZhxWGpwb4dYXmlba2tbiHFuenKGaIeEWl5GTj5GX01GUlZWUVFSV1RnXkxYSlJSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiMppeDnKudmZmdn6qqp6m/w66xury3wL+qpbewqaymsrWur7O2q6mlsa2ltbKbrLS2tKanqbOxrbKnr5+qoLKpoKSjmqKjnK61laSlpra9p62nqqqsqKaioJigp6OZmaajpJicpKmWlKKclJOkpaagtqOkoKOYlZOYk5yIro+YlImpi5eim4WxgKOsnJOanpV5gtSof4eUwZvHeXixpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQeoFslrGrsHloa1ixrm9labySvG5oem5yj9h+U2pitrJ/gXKUdZqhqpBXT1dhT1ZORlRbWFFQUoxcV1xQQFxEUE5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaTgaapn5ecnqWtsqmwwr2ytcC1t7/Cq6a0ra2pp6+zqq+2tKioprWmp7itnLKwtaqlpKexrq6xpqqep6SxpKKhnpecoJ6vrZWeop+0uqOrqaGtrqWinZuaoqifmJuooJ+YnqenkZynm5SdoaaioK+in5+jlpaTmJKZha9qaoqNqn5nhJWHrWRwnZyUmqaVca6hpH53u3xroY92sV9qtFulgGackWBmgXpmf2p4aqllvnJnpox2smp8sXh0kpNjbW2nbVuEoEVpZ4eWRXWcYH1ne6Sngllfi6tpgJV4emqnN0qvW1dUbGNbS09YX1xXVjtOiE9XVi9IU1NKREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5GilYKsp6Weo6WqsristL2+sLbEsre6wqepsKuvqamwrqSwurCkpa6zo6m4qJ6ysbCjpaCqra+ssKann6OisJyjnJiVl5ucraaXm6KetLOhrJyira2gnpqXoKKpnJmepKCcmaGnpJCdo5qXoJ+rn6amn5qfoZaVkZeRmoW1m7V4hamZtZl3h7Obt36TlpaplH5rgaZ6goWIk5SSd6tna7FbrHuPh5R0iHCPhoB/iJCXeIOCi5eMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinS5RoW5bVGtnYExLXGRYXFpCPrB4V1hBI0xoRUNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dXN0o5YVU1MByVn5SIs6amoa6pp7Osqbu2wrC8wq24t8GqrK2urqausqmhr7yqoae0raSrtaWmsrKno6KeqKqyqLCopZ6fn66Wn5mVlZaYnq2impqkqLWvoamPqaiqm56VmKClqJqfnKOfm6CjpaOVm5+Ymp2iqpummp2boqCXk5GTk5yD1ZOZuXCwwn7GhnzWlJu7fJmVpI+NnI2ke46HpIKlgnqseY+dVq97iX6farlauXeHhH2mgpN8mHqqeY2cj3uxbY6EdJC8hW+UUK+nxYpRoHpjYKpic3KHbZeIYFO1tMiGgIl8Y6QzQp12XVFqaGNQQFhmWmRhSkhNbEtbU09ZZlpDRD9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFRNzIlm6KTmLGnqKWzqqW0qKS8t8GwusCxtbW8s7WnsbCjsLKmn662qJuoua6jr7Ggs7OvoKSen6epsKi0qaScnZ6ql5iXlpeVlqGqnZuXqK2wqaOfj6yip5ael5yhpaGYoaGioZqioqebnqGelZmbpqCcp5Wcm5+hmZCSlZGdiLJuaLVxq4dvjqZytHNytnuZl6OLjpyNon6RoKV+sHaDkdLRdlyufIZ/pG+bqqZrhoV9rX2XmY97sXOTnY54s2WWdISeb55mlFLIi1rCXJ95Yl+tX3Zzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPal9saU9VR0k5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyL6GckaWvrKSqu62mtKWntru8srq/t7a1urqzpbS0obGxop+ssKSYprqupLGxnbS3qJ+mnaKqpLGnrKmkmpyaqJ6VlJiYkpKjqKCXk6arsKailpOtn6WSlKGbpKaglJqmpqGao5+tmqCenZCWm6GdnKWVnZWaop+WmZaSm4Wse3eodqOOiYepb62KgqeDmJihiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9d4V/j52GmZl3r4aKkZyHd7RhmmWagYKUbJJasFhLmnWYeWZgrV52d4domIhrXq93lZ6PeGw1eciusl9BVG9eZ2BFUGxfcW1WVU0uZWNpU1lROkFEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6ODifnZSguLCXtMGtqLKoqbK6uLS4v7m3sra9taW4s5+0rJ+fqKuflae2q6ixsquttKObqaCgqKG1pqaqo5melaWhlJOcmZKVoqWak5CnrK+moJWZqZ+ij5GimaimoJWZpaidnKSerZ2hnaCNlJ6bnaCYmZyWl6Kgk5iRpp2GqX19pXihj46DqnCti4GnhpWfoYiXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pjcnuBa5iHcl2sWomgjmtuZU9KQ6FcWkx0XmJlTVphX3JzX0pWNkqak1lIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4wMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT44oZ2Zmb6rl7TCrqutqaW0sLixtb+5urOxt7yqu7SfsKSepaennpSqsamwqrWsq6+hmKGgpqSjuaKjq6CXm5GioJWUn5qUmJ+gj42MqbCvpp2Wm6imn4ySpJeoq6eUl6mnnp+go62koZ6hjZWhmZ+gkp2XnJWeoZWWj6ubj65tcrRyqYx2iqZztHhzs4CRpKKRnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZOIrWt1s2GdZqJvh5Jql1ytYE2hfIeRUnOjbHl/fm+Yh3Fcr1Y8nHdmVG9uLlynT2JSa2VhbFliXGBwe2NUWlE+Pm1wM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs8MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eODFCOKWam526oZuywK6tq6unt6m4r7TAtbyxr7m4q8G2qaqgm6akoZ2SqqqntqOyqK6qoJecp6Clq7mdo62blpmPpaOVjZ2hm5mcn5CTlKu2r6eZlJysqpeMk6WZpayjkZeqsqSgnqersJiho5CZopegm5abl6GTnKqclJGrmYfUkpq7c7DDgMOGftWWm7h4h5CXjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIpumohxbo2kdL1dd31bYXm8a1pWW2p6XmpgZGZibXdvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnmp6hvKKXscOwraqqrLGnua+2xbG6sq67sK7Bsqykop6joZybkaqkqrKktKatpJ+WmqqZpqy4nKKumJWhkKWgko2co56YnZqQlpOvubGslZejqKeUkZaknKStnpGgqKufm5+po7OeoqWOp6KUoZqcl5WkmI+woJKVqp6FkJm2gJCRjLeVeIKTm7V3bmtuc255j4SOiXOewbu9mnuBsqhwgHSRuIN8hoaLh417ioaNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtXRycHe2jF5/eX2JaIN5bXlii6xwdYV/WVunakRkWVNmYGNdY1FnZnFsdUJOUExEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPTs8p56goL+llrTDtKyrp6yrqbuusMavtbOut6e1uK2po6GlnqCdmZSspK2qprWoqJ+blqCjnqykvqahq5eUnZCim5KPoqiik52XkpiUsrW2rZidpKSii5KRppulq5uWqKSlnJqhqaano6mhkq2fl6Oel5aXnZ6PsKmUnKeijmp+aZymeIdzfpqPdHplh3q+vsC6bpKDcZSGX3JqWl6aiWFkiI6Va2B/lWNtnHZilGt/mpWUZV5gY3GbimlyjH2GlWdqfnJ0eH19Ylt3dIFoUFxug3x7i2tYbHqCcklKb4VwTXRNRVddZmBMW1hnY15PW211aXFRT0RFTTtISTxMPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqifqKHBo5u0urajraWup6i1sazIrLCzrLWjvrGypqCiqZ2im5qZrKeupKS1qaWbl5Whm6etqL6nqaaVlJyVoJqTmKWpp5GekI+YnLCyv6ybpp6noomTkamaqKSam6ufo5mbo6etop+qopqwm5WmoJaVnZ+dl7GlmKKomZyRnZyjo5mmopqcmpqakJaBZ219cXeRl5SRhYq1qo2GmJWOioyYl4eUlYqDkpORiY2Rk5iUmJeaoKKanJShnY6CeqWFbGp8kHyAdImKgXGCeHl2doqAe4lqc4F0g3Vjd312a3B7bWBjXXBnTVlZZWpfV1pvem1tZlNPRlM5T1pOUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCzoLOiv6KksbK3oKqlsqelsLWqyautsaW1psCotKGepKWco5WWoKumrKOjtqygmZaWn5etqaXAnquklZKcl56Yk5Sin56ip5ORmKinssOvmqudq56PlpapnqqcnKCsmKGanKKlr6ahpKierZiXpp2ZmqGenp2woJ2ippWYk5iUoKGVo56XoI6WlIuKjY6WrY98lZuCkoKLqqiGgZiWioSPn4h7hJCGhZmQh4aJlY6bl42QmJ6klpqTkZ2Nf41mobOvhYmEdnqPinx2eXpvZ3mQgYCJa3WBeYhyaHN/enaDiIJrdGR5ZmBpZGJkZmpZa3twaWpcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76sq66ysqCqprGtoqyzsMWwqq2js668pLScn6ejoZ2Zl6imqaakprO1npWUnZmZsKauvqCro5CRnpqZlJGVoZyXqZyEnqmsorPIs5+qpKuWlpeap52om5+kq5Sen52gqq6ppaOroa2bn6ChmaWenJ6dsKSZn6iTmJidkaWZmKidmpdmg5J8ZX6OmY9jeY1saGt6kaSra2WamH5nhYplZWloeo2hjmtojJeRondraouYo5+Zc2xueoSMh3pYZV6FgV5siomAdlxoc3d3kYCHgm54gniAc215g3R3iIiOg3tqhllea3RkXXOJaWp8cWxjXVFNV0pkWEBKND1GNz9GRDcxPD0/QUQ8PERHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsaqlqK2usKaurbC9samopK2vsZ+tl5+knqGamaarnKyjpqipsq6elaOQoq+mtrmlrqOPjpqhmZOSm6CZmaWWe6Wsoqizw7ekoqevnp6VnqOeo5yjqqiRnqGeoKqvqqujqp+om6afqKGslqGbpbCkmJyqlaGempOll56qmJ5+voOIcrRyhJ2GrWh4ucS4cZOio3ummJlzqoJ8y8DAu3GLooeCn3yVmImewL2Clp2ejZ3CwXuBe5KNmsPAfWulsW+MgG/Ken+bd5GDjoF2eoF/eXF6f4dxeIWMk3ltd5NiZl94ZF9lgmNedGhtZGJYTFZJUVpIT0UySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmolKOvqbCvraayta+qpqamsaufq5ibo6Ccm6qnop2roqWopaS0o52ik6atrLezp6+ikpGanaWSkaChl5yfnYenq6Srrb/AsKGpr6mXkp+dopmio6qjkqChnZ6trqispqOjp6GlpZ6tqZGkm6mtqpydqpysoZaXpZaho5ecf86UeXqkgXmVlptfro9ejqeBoqB8p5WbdKuDgK9eY42peqeHhaB0l5KIs2OCq4ahjo2zaoSudH2Wh7hhgq1Zo81uj3V72nt/mXB+iJN2fmV7h3Z2a32Ibn6FkZJ+bYGPYHFrcGdgX3lkW3BoamRmYFJUUldeS09DNUFIRUQ4PjY7QD9BOz03QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcLAv7W0sLiYnpGkqqittKumsqytrKSrp7CqoKebmaWXnKKvn6CeqKejpqGesKybnpWnrq2xqqisoJSSm5+lk4+fpZeeqKOerqSrsKjAxrOoqbGulpKdnKKXn6mqnpShn5ydrq+nqqmbp6ekoquSrLSWpqKrqp6jp6ahsKCTmqeaoJqUlJGXoHCFjJd0hKiHcbF8nXGsfqGegaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIooyRi51+q3uJk4+fgHutVpzEeo9vksF9gZVtdXCMbWV2ZYZvYXducm+Ki5KQg22QkGVvdHVwYGdtZF9vaWluZmNXU1xhWlFRQjlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytJ+do46jo6Gtr7auqLCnqaqorqurp6KknZmilZ+mq5+ipaCoqKKfnbCsl5qWqKevrKinqZ6XlJqjopKUoa2bnaajr6yjrLWqus2xraeurJaUnJ2imJ+urJyWoJmdnqmxqampm6uqpKOsm6+xoqisrqaZpquqqrGikpejpJqUkoSkaqR1iXqpdHqycYKliZmMcYigmoekYGBSrIR/roObdq6BpoaGn3qYloZ7ZoCjiaSZhoGjfal+gZSHrl58qVWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojY2Yj4FtmpJwbnl3d29sZmRlcXBme2hjXVdgalhYVEtNUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys2NioxUEtMIyBBOUQ0LCfDydbVwKGZq6ihr6KesLWwr6mso6imqqqrqaSmoJuknp2lp6ajnKyaoqyhpJ+vop2akqqktbCuoKmbnZaUp6OQmqKon6CmnLGmo6exrLbIsrWqrKmVkZ2copmgpbOdmqGUnJ+nq6ujrpqsqqOiq6OzraKqs7Ghm6qor7C2o5OWo6eYm5F8qmyehId1q3l8sG+CpIuJn5aVn5SB0ri0uMmAgbJfX5Spg6SIh6B5mJWaeKrJdJmjlaepkJKbjH+biZrGxnhloYKlc4GfjoJ9r15wtWOxdUujhm2nR4KTZI+QnpJ8cJeSgHB6dHx7bVtmanJxZoFqXmJZY21cXlhITUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz4tNU9UUR0cOzxGMiwkp6TBxrmtqbOurKWinLK5rKqhppuopqqsqaagpqWYq6OfrqudpaCsmp6ppZ2mtZ+il5OoqrayrJumnKCVkKWtkZmcp6OgqqeuoqOnqrC0wrKzqq2ok4mXnaWboaOuppehlZmdpaarmq+drainnqyjt6yhsrmvnZuvp7O0s6SUmKikmp+Ogp1OeJqBf596g6N8gqSEh6efnJ6ThLh7fHm5gn7MxsK2eJuhkYuffZmWl4p2npiKpJijqH6whZyFnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkqSXfH6SkYp0enOEfnBbbW53cmqBb1pkX2huY2RdS01RVEJJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamspKu5q6+gnKGss7Omn6CVpa6trqqnnaammqOnobKuoqimsqCZqaSUorWio5WXoqm0uKScop2jk5ChsZmenKemoaKvrp2kqKK1ssOxraqtqpGHkJynnaOknKWXnpmZmqakqJquoa6lppiwpbytobe3rZ6dtbK5sbOnmJ6woqSehY/RtcO3eYeOhZGTj3+meJSid4ygkoSlgYpxqoaEtG5yapmjm5WKn3uWmIaHj3OvgqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5SmmH6MjJOKd3x5jYFtaXhpeHNuf3RdZGRubWZoYEpbWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWTc42Krb+/u7q1npeopK21oaOZlaOpp66qq5mlop+loKC1pqKop7CjlKujjqSto52QmpqqtLSknaSdqZKUl66goJ6mpJynnLWaoKqjtavDsKmrqaKMhI6coqGmopWam5yZnJmmpKaYq6eto6Wbrae+rJW+sK2fo7Czuqy0p5upsaWnmHqokH18sHeKgaSliJtssW+hh618oY+DqJWYgKyIha6Fn5SpoKGWhp+AmJWAe5J+q4CdmpaKqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrrl2la3GFmV1gW4ygbZWRp5mDlIyWi3p6gpZ+a2x/Yn10bX96YGdlcW9oZ2hDWWBbPUtUMlU4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVlZXWFZVVVFIRklKIygovZKahKnGwrfBtJ+braCuuKWkjpuko6Cvr6qfpJ+drZmeuaCiqqCvqpqtoZCqqKSWiZuQrrCsp5+nm62YmI+soqGdpaKapZytmJ+oprapwK+lqqSfi4COnJqfpp6SlZqalJubpqSkmqisrKOkoKqovqSXw6yqoqGssrqrrqegs6+pqph2r36Qi5yFh326rYqYZLCMZZWtfaGPg6aVmoGsioSwhaWZpKGhj4SgW2xqgbNgf617e4KAsWxnbpmXjIiwW320W6SDa8iiZZ+Ae7xZdrVasn1Sr4B6rFiAoW2Yj6iaipeRlpZ7eI2cfmRzfmKDd3SAfGFqZnFuZmVlT1VjW0JUXj5JKD45PTQhIi0lHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE5KR0M1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wrOjnKympbaooYuaoJ+ds7OpnqOgnbWYoLOoqqudr66fq5uVr6iijoibjq+sqaeip5muk5mPqJqinqWfmqOjpZmfo6myqLyvpaienY59i5uVoKCZj5Kam5KbmKmfoZmorqelpqOlqbufoManpamhq7S2ra6nn7ytrayVgamSo6+Pm4CGpJeYkIGAuMO6g46dk4SnlpyCrIqCr4imm5ulqY9+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGqjgW+rhG2df3qysMeDaquwva14d6K+u3SAlo6mnI+bkpedeoGQm3pjfXtkjGZ5gntga2VramJQYltTalxAVGFCTik9OjQvHh8kHiUyIB0kKDA0OTY2Nzc7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbO0sb+5sr2zop2upqWzpp6LmKW+qbexqKG/pqaynJ6xnLmonq2vpqeVlLCsl4yDm5GupqOsoaScqqGYi6OSp56nnJqhqKKYnqCsraq5rqijm5eTe4eZkaabko6RmJiPmZSqmqCYqamhqqeho6u7nqnFo6Cvo6uztauwqqC7qK+vmnN1qqS3hmWJn3BnrY+Kj21vd6SQmZ+Bda6ZlXCPi3GVqKObl62jcm1tbWWKeG9tgplxgHlpcGlniZaVmHFoaYSGZ3CGZF2JY2pvWV1nfnemYGJxjpJvZmSAjZKOopiXmZGWn32HjpV2Zod4aI1qeX55ZGxjZmxiS2RYSmtZOlFlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXVdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6q6ubKzq6mirp6ksqmYkr2xw8i+tqqewKuso6GnrJ+6o6StrK2mjpauqZCMhZWXrZ6mqqKfo6OgkYykkqeZqZmWo6qglpylpqevuqusmpuTk3uEl42lmI2RkZiUjpiWqJSfmKmjm7GnnqOsup+wwaeks6assbKrrqyouaSuuJaKoailtp2JlqKXh6makJSdk6qzmZujq6CxlqGhnaCinKCkoZWqpoySkoyHkpyclJCak5iQjpWGgaSZl5WNi5OSio+GhH5nin90gnZ0h4xxp2x7lZGUk4GBj4+Pj52UoJaYlqGDh5ONcWmQd3CKd3Z8empsZGRvY1VgWEBpW0hjYU9aK0Y9KyYhNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRGSktLTU9QUVhVVlleX2FjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbeurqKwpK2foLWxkI6rxbzEu7iqoqWdm6aesamjtqedqbWnqJGYrKKLiImPnKeWrKShmaeenpOVo5eomqmZlKaho5CbqJmhtbqoq5makI18gZSLoJSKlJGVkJCTl6WPn5qqoJy2o52nrLenr8Guo7emr6+wraqqs7mhr72Zkqajpraikp2mno2pn42Sn6Osr5qho7Gor5ejoJyjqZ6enZyWq52SmaGblJCWqpmNmZmWkJafkYmgnZWUhZKMkIyUioB+ZoyGdYZ2eYiDc5xqhpGUlJGKfYyWkpKYk6GTnZagg4eXh3pylnN5iX9xe39qbmRfcGlgW2BZbWNQYGRQWzpHR0Q9Mj09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOjlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWJhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaetoKi1qpCQnaSzu6+srKKjmnqdorGkpbColpu4p6OUmaqcjoaKiZyjkK6fo5aooKGSl5ibrourlo+omaeMmaiPnrm2pKWZm42JeYKUi5qTiZWSlJCNkZaijJ6eqZ6fuKSAhK+1orCvdKS+o7KgeHqgqrK7lXatpJ+KgKp+ZFxidp+OpJ6El35uk7Oco6euqqNlnZ+Tc3mZl3CAmKiXbH+iqIplnKWckZeYlYuSnJGGnZqQlYKSh46OkomFd2uPh3aGcXyGgIBhaYiLlZOLW3aVkWdokI5ye6WYmGR5mIaCeJhpg4qCbnl/a3BlYHZva2toW2ZlYmJvU1w+Tk5OUkc9QFRCOTEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJGRklLTVRUVVlcX2hmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mm5amo6GwsayrqaWoraOnraSSlqu1r7Kmmqqmq5dzjJ2wn6iqppSWuaCgj5yknZF/iIibno2rmqOVp6KejpeRnoV1rpCIppqokZekiJy6tKigmZiLiXV3k4yWk4qUkZCUjI+ToI6boKeZnLOWgIyctZ2zjJKPvKehfqeieqOvt4GOjqaehIuFj7Gpr4yJlqOaeYGLrIacnaKnqaeHlYWYd6WbeoebgZemgoF7nLF6ioWgl5mUmJaCkZeWhJmZY3mHkISNj5KKg21wj4d5gHGAgYV/hnSGhJaSeJZok3SgmnR8mYOgnIaYfpKJgoOZao2MhWt4e3FwZ2R3bmlsa1tla2plc1xeSVRMUUBFNS5ZVFU2KSEwOT0+NjQzNTY4Ozo9Pj5AREg/SUVKS0dTWFpZW2FhaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyYo5+mrq6rqKygqLCmp6mlmZSuxr2woZamqbWej4OdrJynoqCNkL6emY2fmqCQfYWOmZeIq52ilqChko2TiYaAkaiOh6Kco5OXnoaeurKnnpuSjoVwdZCJlZCKlI+Pm4uPkZ+Sl6Cklp6siJ+0ibSarYvKh6quiLeFjbCDsa6DqY2mmI2dfKiPcnt3m4+nlmiVpHm0i5+epqiSmcKBf6uImKFxnoCZpH2XhZWxgKF8oZSgkJiWgI6Tm4qXkYt8hZOGjZWTiYNtc5GFf3pyhoGEfIR0hYKXgY/FZoCph4+ja56DoZmDmoCMjIOJmHCOkoVod3R7dmdodXBnZ2xeY29sZ21YZ0ddUUwyRTQ2TWBjNyYzPERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWV1jZmhnYmJiYmRjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5sKqrppqUoKOkqqSWpam2o69/oaecpZ6diZS9mpONoZGdkHmElpaRh6uZm5uaooWPjHebnI+gkYiepJuVmZiGormupZqcjIx/Ym2Pi5OQjZCMjZiLkJGfj5SgoZmhqH6hp4etnaCWro+enZ2RhoGgjauvhqSNqpqMmn6idoCZk2qCrHVNq3iHjZ2Rm6ingKqrfYOhe3qnaZ5/kmtnl4aXtomefW5gZFmDln+Me2RoinKZfXmVbF17l21fU3CEXF9seYNgWWWCfYSBmHGnqmuDo25ypXCfg55pZZ9sW22Je2VZX4N/YldQb3ZlbXRyampvXmpvbWxqWGlPXVdFOUE0R0NeazQsSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKhtryrrqKZl6Chpa2toZ2ttaKokqGgoKacmY6YtJmQi56MlYt1gZSRjYqmlpWYnp9/koWGrKSHnJGKmKmYmZqSh6Wxp6KVmoiJgGluiIeLjo6Ki42Si5CSooyUnqCcoqV/k4GPo6GUoHeclo+ng6Gnf4aprYWleYp9hJp9onByk4eWe56MeW2HnIyZkJuomo+HnXyConN2pmaefnakX5h6fZJzom6Yt7S6dJKHgn+1qGSBxrh7cJW3i3GAm6Rjc6yrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN/pGCdmbOVcHyXnrR0c1uesoNqYm9zdXFob1hrbHJzZl1pXmJLRD1ENVFBWXEzPVNHX0pSPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWldgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6CNpLi1rq2gm6Kco6Omrpybsa2sk5ehmaGkmZqUnqubi4mSeIuFcICWjYqPoJCTlJ2XfZCJjqigh5iPipGik5uajIuoqKWej5aHhH5re4d/fY+Ng4uQkImPlKCClp6gnaCfi4l3nJiijKByoouIqYicppCWqKt/rox9eqCZeqOTeIBzloiNnH2WoIebjpmbpoaiZKF8iJaQm41snmibjW6amXuAiqd9cmh0q4Odg3SqZ5SaXZuFdoSdaKpqgLhmXKhwgZxhlYxep3Z1iYp/nmiadYeTkpiOf59umpBtp5ldqH53u2t+qluOhF20Z1xucXl3a2lbcWp4eWNgZlhiQVBFTjdWQlJuNEtaWl9OWkNAMTUxOzs3SD86Q0dUP1lSWV0+RGJeVmBRYWN9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtpuoiWOUm6y6srCsnaacnKifnq6bnrCoq52XpJqhn5iWlqCjmYaJjWqIgHF7l4iLlpaEkZSYj3qKhJaknYqUj4WLnZGcnImPqKOgmYuRioCAaYGGeX+XjHuIjo6Ij5aaf5Sjn6Cik5hyaJ+Kn4+McZKMgamImZ+jqKCofbCto6K4l3ejs6Kjf4iUeZ17q5p/oo6dm5eJl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8m32dmn50qlpdb3uWi3ieYkx+enqFY3mXQk2fWaJqcXyObYGJhJl1m3mHibGzf3+bk6d1gZ1ucnyUb5lyaqRdlXZIZWNgc3B9fW5lYGxodnxkZGFRXlZdVFZAWUVRZ0RTV1tiWF5JRD1COD9COklFOExEV0FWUVtWREZiXFpgS2BtfnFFQzxVX2JaZWpWZ2htb2JmZl5hYVxdXmFoYl9lZHZsXmVnZmtkZmxpaGtpk52Asa6ZhFNfoKezubOzqZqijJyrnJyplKGrpKGoj5+enZqZlZignZaIh4l3hYFueZWFkJqLfJGTlohygImToZxzkZCBiJiUn5qEjqmcmpSKi4p8g2yEhXGBoYx4hY2Ih5KZlXyTpKGfo4iuhn21hI6enXullnqpgpadkIqhnX2naHZtfpl0oXNxfJ2FmXCTg659pIOmnpqBo29eqGd1o2NvpWGc0pB8epl4cnNjooWQfqNzo491a5Czi2CCmIlzqrKovH93g21+vqaptF6cbn1xl2+Bc6JyXaNndKZhaKZtm9SZfISbb3h5l2ubeneXcm2ppGdgZXlwf4NrZ2ZkbXV3Z2BiU1tlUVFhSVdJVF9XU1tlalxkUEVDS01KS0JKRThQP1BNV1NYT1JSYGZlaVJjd3l3SUZFY11kWmhpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebgLGrVFxLfqmvsbSws6OcmIWZqKCgo42kqKCYqYmZmJiTmZOSoJiOiIZ7cH2EaH2PgpSagXeRjY6Jb3+GkJOSbJeUfYiRkaOVg46qmpSSi4WJeYN2iIBugp+Gd4CThoiZopd6lKOlmp+Js6Gitot6rKekrqVwqYCakIWBnJJ8pICimYaYcp6Eoq2uiZeMgIykjZaDraGUdrW1tcmhc5SKgZ9gnZapbXmVhp+adaGHd6B+kZaKgG9MZqOScJqHcqR7eXRhg4JsfqBrcWRgnHJ/dJdpe2q0tbTGpnOYfnudapubq3WDmmx0d5dpmnp1mHJQRH2zXmp2a3iHZmpnYnR0cW5WXlRZaE9SaElVTFlTVV1oa25WZ1dNSkFKTUtISk5BUUpQZGNpbWV0cnN+eXtudYl7e1RQT2xeaFtraVJqaGlsZ2xmY2VfXF1cXmliZGhre19dZGhjamZvbWVpbGWhnImwp4RmP5Shsquvr7Wio5CAl6mioqWMpaednKWCmpeWjZeQj5yTjoiDeWp5hmWDjH+XoHl1j4iMgWmEhZKDjIWdjXqMipWlkoOXqZeMkYuBiXqAfYt5cJChhnmBlYeJlqCWf5WmqZyWloRnbnicbKJkfHGld5yYcGengZeMe6V6n5aDl3KedoGJlJaPuW6QiqJifZihlYhtcmmranWgbW6mYJtoipBoloealXWigH2aYIuFjHRviGJooGWefmmadW9jZoiCbnKiWl9bY6FuXYmMb3t/c3JkpW13omRnp2iYc4uYbqFvU4iPb6BfZadUi11UmG1tc2txgW1waGt4c2tvUlhXVmZZU21JWE9dSFhpaHNqWWtWUVJFVlxMWFJhVGhqXnd1enxwfHxyg3t/cnaNgIR2XlFyYmdicGdQamhoa2xuZ2RnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKWZpnpldG2Lp66kqbCxpp+LgJernZ6ljKKhmqKigJaYk42aj4uYkI6Ke4dxgIhoi4t8mJtzdIp9kHxkgoeVioqVmYJ8iIaWp5CBoqyQhZCKgop9gICOc2iPpoR9hpSNiZigjoiTq6ediaZ4lpx/pYmWjLKYnpCDr5efpXiViHqpdKWPhJpupKKMkoSMg7xufKWvgoaFhpKWnJ98pXpxqJWglmeefW6rY5aKlZJ3qGypooGJdYeCd6uRpohrkbBrdrOMqWuKhm5tn56SlWF/q4uqdoB/jKafd599haWVnaBpmod2rGeerYy3c3e+jaSTWYOmjathdXJzb3t0cWJqfm5obVNWW1VhYVxrTV1SXUlebW12YFtxWVtgWmdzZW5vcWNxdGB3en55cnmDc4R/gHt7jIGCgHZieGRjbXNkUmxnaG9scmlmaWFfXlxia2JtbHpvXFxiaWJsandtZ2xuYpWmqp2BgJ6klqmqnainrqSZioOYq5qepImapZ2pnISMmo6GnJGFko2MjXSGeoiEb42EfpiTdHSGcpKDbX+LkoeGlI98e4GFl6WNf6WmjoGOiYWVdoKHkm9si6mBg4uUjomcn4mNlKukoJCAdZSXiX+BeZSuo3+Bm3GPhnmQi4R/e3KmjHF9fXqXlpuEjnh7fn6IlJWTinaQmJ+gg3p9iWyMhVt5eHF5cWhufpKJcX90go+Uk3GFg4JljX9fgX+Ld3VzlHVveW5uh22Ehl53aXiNZoGCho6pm350fJdqiYhvgHZ9hXZtbGeMc3l7mHiEW2tYeY9obndycW93eG9dbIZuaWdWWmBXXGVrY1VhVV9SX3B4eWxrdmVqa2p2fHFydHNhb3Vic3uBeHV5gnWAgH+AeIuFg317bX9sZHhuXlduZ2h1a3hqaWpkXGBaY2plbHB1blpbYmtkbGx5bmhsb2GOlLmpp4uhopqmpJmknKujoYSEmKySnaCJmqaaqJiCgZuKfpaTh46KiY1yg3yPfX6PhXuXjnRyg3CWhXt9kouGhpCFeH5/hpijjXunoYuGkJCFloOGjph3coWqho6SnJCInp6IjJuooKCrg4mOlJuAfomWraiPk6aQeG+dkYN6km9+qIVwfZVxa3B8gZ+Lf5KOjGhtXYOLjJubno5zlYuIcXRrgnZzgFlyboeRgX1+jGpdamR7hYOIgF9peHube4KLgnaBhoJoeYuHa2FxcoN3X3OMgomQp5WGZoyPg253i4RxhY15b2VnZHqDepZbXGpnbnZbe3h3dG1zcoJmXG2Ka2xiWVleWlhscVtfYVpeXWZ0fnt1b3Rja2tqe3xye3h0ZG10Z2x7fnZ6fHt6en9/fm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtoa2pxcm1XW2VubGdzem9oam1gi4yqsaGQo6Ganp6Ynpmoo6J+g5itjZ+Uh5uikKWVf3uYhHySmYmIhoeKc32Ai3aFi4GElopxb4BymIaEfpOEg4aKgXqAg4ubn4+CpqGHeI6YiZWLi52XhYN6rYKRmJmUip6dh4ihq6CioqOLiJOcnaOZlqqhp6agkpuIl458eI6OhKd+f5KRkpOcsaablJ6QjbKTmISljIyVm5+JkJuCiZGKa3yNdndlgoaQinuJnYSHi4+IiICFhJB3fHl1mqGIhoqfi4WUf36MgYB2cHSGhH94iIeLkKaRhIWNiIONkIx9iIuIj4F2bIKEfHmZanJoYXSKcH16d3Zvd3SBXV5vhmhuX15aXF1TaHFVY1xcYWxpdXx8c29wZGtqaX97bXh/cWlvcGxmgHtygoB4f32AhHptg4yGfHp4fH16g3lOZHZrc21wemRrZWJiYFt0ZnBmcnJtVV1sdG1oeXpxZ2lrZY2Inbqfl6KhmJWZmJSZpKCee3+aq46ejYWfnIueln15lIN7jpmJhoSEhm54gIBygYh+iJSEbWx+epeGhIOQf4CGhIZ8h4ONm52Sh6qfg3KKkIaTkoydkX2Ne6qEjZKYlY+cl4aGm6egopqdhoORmpqZkJqmoKadnZCWgZGKd3yIjoSle3yOkJGGmKmhnZOdj42rjZGAnoyJk5qego6XfoaNgm94hXF0YH+Cj4Z1i5eAg4+ChoR+hYOUbnl1dJKii4yFmoWEjXSAinx8cnJ7iIR7eYyPhJOnj4aEj4KEioqKd4aIiYt8b2t+gHttaGxtZ155f2h8e3Z0dXV7d1xgcH1udWBjWl1eUWZtU2VaXmFraXZ6fnFsbGRrameAf2xzgGxsdG94boR5boeAdoKAfYR2coONiH57e3x/e4KKYGl7anVoaYJkamNgaVxkdWhvYnVubFRjcXllcHp6c2VpbW2Lip+3m6Kkn5KRlpeLmp+fnnt4nqaQm4qGpJSLmJl5eo2FfImRg4yCgYJtfH94c4GFfYqRfWtofYGXiIGIjnx+hoSHfI+Aj5ubkYinnX9wi4uMk4ehoYqFjXyokYiPkpeTlpN4jKOhoZ6Wmn+AkJqYk4ybo6GkmpeRm3+OhXmAg4+HoIB9jIyPfJekoKCTmZCPpo2PgZuRiZKXm36Skn6GjYF1dIJwdmB9f42GcoqVfIiLcox/goWGjmh3cXiMmJKPf5d+iItzgod8fHB5e4yEenuSjYOWppOLhpF8hoaHhXaCg4iHemVye354enBsamZefXNofHV1c3xygGpeYHR2cHhkY1lfXlNraFRkWV9hZ2p2eIFxZmtjbGhlf4BqbX5obnFrfXeGemuMgXOBgX2BdHaCjYZ+fHt/gX1/j2pyg25zaWGHaGxiX3FWdG9tbmB4aG1XanR2Y3V7e3Jiam55iY2fspKmpZyOkJiPhpygm5x8dqSgjZd/jKKKiJqWeHuGh36DiX6IgoB/cX97dHaChX6KkXhnY32Gl4qCio14fYCMg3mWgJWXlo2WoJt+b4yCkZSGppuIjYmEppWFkouWl5OSdpGeoaGYlJd6fo6Yl46Wm52knZmTlJx6kIaDeIWXjZ1+gYmNjHOXop6hk5mOj6KMi4OWmIOSlpl+mI18iI2BdnF9bnpkf3yKhXCGk3+QgmyHgoGAiYRldW98h5KXjX2TeIuJfICHfHtxfniKhXmFkYqLmKKVgYSNd4iEg4J3fIGJhnZfeHd9c313ZmxkYX5pandzdHR9cXxiY2FzbnVzbWFaYV5ba2RSYldgYWhrdnmGcWJqY21laHyDbGh0aGxvaH98gnltkIZxgIODf3N8g4yBf356goN+fJBtdoh0dG1limxqYWN1VoRpcW5geWdsYmp2cGZ5fHpxYHJshoWQnK6XpqiejY2Xh4afk5eYfXiqnIqYeZeci4yYkHl7gYt9fIN7gIKAeHR5enN9gIR/iYuAZF59i5WHf4WHdH1+in99l4SXk5aMo6GYf3KHe5OSiqePjI6Kk6GSg5GQlJeRi4GPmKCakpCRdH+NkpSJnZ2ep5iYjZWWdI6Oi2yGmI+ZeoeIkIlvl52ao5OVio2fjIaBkpx/kpKVhpmIfImJgXpxeWt1bHt9i35uhZKClHdvgoN9fop/ZHJqe4CWl4R/jXSQiYN5h351eIB9h4B8hI6FjJSkkHmFgnSJh32AdHaBh4NuYHt1enF8b2FuY2V7Ym5vdnJ3d3N0YXZfb2x1bm9cXF9eXmpeT11XY2FobXR7iWtfamVqY2h3h21mbGhpbGiAfHp3b5CHc4GDhH1zgYaJeoJ9eoGEfX2OcnqKeHhubIdraF9pcWOHaHFvZXdobmxheWhrfXt4cGF3bYuBmZqqoKOonYqKkYaKnoqVl313rpiMln2ek5GWlIh3fnuKfXyAdnd/gHB1dHtvhn2BgIp/fGFcfo+Rhn+DhHN6gIZ6j5GHkpGbkqWblYJ+gXyOi5KkiY6KjZibjYaRmJOWjomJjJOdk5CMjW6DkI+RiZ6ZoqGXloqXkW+ImYRnhpmOlHqJhZCKcJWalKGSkoiLmYyCf5CefJKPkouZjnuKhId0c3VrcW51e4t0boWQjpJxdIB7gYKIfGRxbHl9mZR9hIh0kIuBdIh5b4B+gYd8hY2KhY2VqI17iH1+i4V4fnFwgIWDY2h4dHZwe2JecGFrdV5xanp4eGxycGV4XW1sc21zWVpeYGJqWlBXV2VjZ3Fxf4dmXWloZ2JncY5vZGlnZWpogHp3dG6OhXSBgYJ7dYKIhXeFfHiEhXqAiXd/i3t6cnmDamtfcGh0gGtyb21xZ29sZXxjboB5dnFsd3eKf6KYoqigppuHjIqBkJyGk5x1gaqUko2GoIyWk5CAdHx2hXd4f3Jze4Vrc3B6bop2gIGHbnFbWX6RjYh/gIB2dYCAf6CGkIqSnJehlJh4in+BjYmdnoqPhpKYloWJlZmPl4yLjY6NnYqOkINtiIqQkYmclqGbmJWGmIhqhaODZ4adipF+i4OLgXeTmJGekZCIiZWNf36Pl3yRjY+NmpJ8in+CbnZwbG1ucHuFaXODjpeKcHd/dIKJgnhmc292gZmOfImEepSReneIdHCJe4aNeouHhImPnKOIfIR3got/eHhva4GCgV1yc3FxcXhaXnBgcWteb2l8eXBtbWpsdmBwb2pybVpYYWFiblhRU1pmZ2N1cISCYl1qbWRiZmuSbWBmZl9oaoF1cXJwi4B1f4KAeHWAi4B4hX93h4Z3g4V7hox/e3aKf2pxY3xihnxvcWx0amhvbHZ3X3F/eXt0dXSAgn6klZqtnqaWhYyDf5eUg4+fdYuflJOFipuMlY2LenJ4dIJwcoRzcXWIbHBtdW2Id4N+gG1uVVGBq5SHgniAdnKCeYGggpGBk5KYnJKaeJJ7g42TpJqTjomVmZOFh5eZjJSMiY+PiJ6FkIp8coqFiY6InJqfm5aUgZR/aYadiGeGoYiShJGDiXGDkZePmo2PjIuPjXd7kpB6jouMkZaMfIh8gGt2am5ra2x6fmF5fo6VgXZ6gHeDjXx5Z3RsdIeVi3+IhnuUkHF6hHB3jHqKjHqJfoOMkZ+dhX18eIKMfXdxamyBgnlfd29tbHJzVl5vYnJhX2xueXBncGZmc3RocWthd2VdV2ZhYHJTUE5cZmVdeHCIfF9caHJiYmVmkmlfaGRbZ3B+cGtwc4p9dnyFgHR1f4x5e4aBeIiDc4aFfoyMg3t5lXdmcmqDYIh+b29remBqbnR/dF90fXmGeHRzhXx4oI+ZsJylj4KKf4OaiH+Lnn+LmpOPhIiYjo6PhHZ0dnOAcG+Fc3Bxg29raXZtgm59fG11c1JOgt/IktaTfG90hHaDoIKTd5WRmZuQmnuUc4WQn6GTk5CJk5uUhn6WlYiNjYiRjYicgI6BeHqMfoiMipycnZuVk3qOdmiJkodsiKOFkoeXg4ZjjJGZj5WJloyNiotxe5SJeo2IipKRiXmFe35se2Vyb2treXlcgHmPjYB6fX5/ho56eWhza3OLj4qChYV9lYxrfn5ugIx/jId9hHuDkJWamop8d3iDkXlzbWZwf4NsanRvaGp0bVNeb2RwWWBrcXdma2piZnhycHBjX3hgYFZrX152T05LYGZjXXlxiXRcXGV2YGFlZY9kYGZhWGlzc25rcXaMfHR5hoJ1dn6Lc3+Gf3uJfnKJh4GQioh8fph2ZXNtfGWIfm9wbIBabG55eXNhdnp7jXZzd4p3eZ+Lm66boJCChXeIlX58iZyHhZ+RjoWMl4STjoeBdHdweXFuhG9tbn5yZGR4cHxten1qaGxjpJrB3K7voXNrdYR2haKFkm+WkJWglJyBknGGi6OXiY2VipCdloOAlZCFiY+AkoqKl3+He3V/iXiGhI2cm5iZj493jHZuhomLfYqjhJGJnYWFXouUl4qPiI6Li4SJbHyWgX2IhYmQj4Z2hX19a31keHVqbnhzWIh6kYaFen5/gIWLfnhlc2p/io6Kg4J/jJaFa4F2boiRgpCFf4J7gJGWk5mQdXR4iI11c3FndXmCYnRtb2JpdmdSYHFnbFVfbnR5YHJjX2h9cHJuW2NyYWJXblpcd01NTGRmYV52c4ltXFxkeV5gZGaFYGNiXllqcmtua3J2jH10d4SBeHd7iXGDhH1+iHt0i4mIlYaMfn6Yc2h1cXlti3pudHCBWHF6dnlxZXd5hoxpd4CJcn+ch5innKOShHxwjJR4eYudhIWhjY57lY1/mYiEe3J3cHNqb4FraWx8dF5geHZ7cHV7Z2FlfOvatcnD3IhzbHOBd4qaiI1pmI+PnZWTgYlxhYmgjoWKlYqNmJR8jZOIg4mPe5GLhpCCf3Z4g4Nyh4KTm5aUmIaMd4h/cIWCiYeZooOUjJ6DiWGDlY+HiYaJjYeAh2l9lH99g4SJjo2CcYZ+f3F3aHZyaXN3bFqMfZKBhXx/g4CEioJ1YXRsiIGPi4J+f5KRfW2CbHiGkIaThH2BfoGSk5CXiW9yeo2GdWxxa3J4gF9zaW5ca3ZgUmRyaWZTX3B2dGBvYF1ognFzaldnaGNpWG1XW3VMSkxlZ19icnOFaVtcZXleXmRne2BkX1xZa25lb2pzd4p+c3OBfnp2eohzhYJ8gId2d4qGj5iCjIF7k3ZsdnV5eJN0bnh6fVh5hXGAb2d5d5KCZHaGhXGKloWZoZuiioZzb5KLcneOnH2KmomJfJ9/g5l/gXhxc25vZHJ+aGZsd3dbX3l7enFxgGlhZ2F/1baOkKZ4bnF3e3CSkIyHapmOiJySjIV7aYiLmoeBkpGGh5iNfI2NgYGJjnyQjX6KhXp1e4J6cIaAlpmOk5SBiHWDhnaDgIuTnZ+GlY+ffohhgJOHhYiEiY1/f4NnfZB/fn+Ci4+Qfm2CfIJ0a212dHN2dWtijYGOf4V+fIR/hId+cF9zcYV8j42CfH+SiXpwg2Z5g4qHjIN8hH6AlJCRk4RucHqMf3Vub2psen1iaGppWGx1WlJpcmpiUWJyeGxhZV1aaoNtc2JcZ19kbF9uVFtvTkhPZ2VcZ25xgGxaW2NzYFxjbHdkZV1dWmxsYm1qc3aHf3Fvf3x8dHiGeIWCfYCHdXmJgZKVfIiGdomBb3d5e4STcG18gXdeg390gW1pe3OUc2dzh3xykpGDmp+boIaHdnaUfm12k5d+iJGDio2afIuadn12cW9samF0fGdiaXV6Wl93fHptcX9lZGhoV52PXnFylrzDg3VxlImQfnKXjIack4yIc2uJj5aBe5SMgYSbjHyLhn18iYx/lIh1iYV2d32BcXWGgZ6UhpWPg4Jyf4h1hHyJmJ2Yh5OOnYCIZX2TgoCFg4mJcoF9Z36Le3h+f4eLjnxpgHyDdmZveHhzdnNsao2FioGKf3iBgISDf2tecnh6fo2KhXuCj4B+coBpeIOHi4aEeIN8gZeNkIx9bm17iX13dW9oZ3x2Y1xwYldvclNTbnNpYU5mdHhlYF1cWG6Ab3NZZWJdam1gcE9Za1FEU2dhWmtubXtvWltebWNaYm93ZGZcXWBsamNtanN2goNxbn57f3R1g3qDgnyBhXZ+iYGWkHiDinSBiHJ4eX6NkG9vfIFxaYF5en5tbXx2lWtqeIR0bJSNhZ6YoJmFiG59jHZqeJiOf4KKgpWXiXmOlm96c3BsamRgdHtoYGVxelphcn15Z3F6YWVlj7Gyd0piWqTZ0JZxe5CLkHh+lYuFmZGNhm9shpKSenmShoCEmIp8h394eImKhJaAb4uIcXR9eml5hYOlkYSTjYN/b36DdoR5hZuYk4uSkJSFh3B7koN9g4OJg26BeGiAhHhyf3+CioZ7ZX1+hHVkcHOAaHhwb3WYjYWCint2eICEeYFrXHF9coGIhYl9hol6iHKAbnGEh46EhXOEeICZjY2EeG5vf4R/d3tlaGp9cF9Zd1pYcW1OV3JzZ2BLbHZ0YF1bW1l0fXJvV2ddZmpxX29OV2hRP1lnX1twamd5cVtbWGtlWWNweV9oXF5lbWhmbGlxd3+Hb2x/fYB1cIF6f4F+gn92gYWJl4pxgo1xe4Z8eXmDk4x1anp/a29+dH99b3J8e5RvboB/eGeSioKhmZ2RgoZnh4NvZ3qViX5/hYGZioF8jYxpeHJrbGZfYW95bV9ib3lcZGuCemFxdl9lZtTqvooyOj6LjoByeYWIjo12g5eMfpKOjX9ubIWNjHZ9j3+FgpWJfIN4bnaGhIOXd2+IhWt1e3RmeYKDp4yDj4uEfW5/dHaDeYackIyQkZKMi4Z+e5KHeICEjYNsgHJpf354bXx7gYqDd2J5hIFxZHFofm10cXWBm4uAf4V+cnV9gHKBcFttfnR4ioOLe4eAfIh4enFsiIOPhItygXl/l4uLf3Rua3eAgHV1XGlod3BZV3xTWnBlTFpycmVbSnB3b1xaWllddH51aFliW2dmbmNpTFdmUT1eZlxddWVfdG9aWVRvZFlkcXlaaF5fZ21namxpcHd9jmxpgoR+eW6Ae32Bf4J6dYKBjZOFcICLbnh+gHp7iJKJf2h7fWp0e3KGe3N3fX+MeXiEfXxrjIyDm52WjIGAbI5+a2h+jox7fn+DlIJ/fYqIa3VxZ2hjW2Jncm9gYWx0YWhwiXlic3ReY2SboI9uXDVZr7V1aoCJfZKGdoWWhXOOi4p3cG2Fg4d1eYl4iX2TiHp/c2d2iH5+mG9xhn5odnltZXmIhKWHgIeNiX5ufnZ/gHyMmYeCk5CYiIuEiXyPiHF7fYR8aX5ta4B7eml6doGHgXJgd4F+cWRyZ3WCbXR7hZSRgXyBf253eXx0fm1Yb392dIyChneIdoKJenhzbomBj4GFcn59fpOJiXpubmpugoJ1blxnZnNxUVt7TlxwXE9bcnBkVktzeGpXWVlaYXGAdGBdXWBnZGhpZk5ZaE1AYWRbYHZhXHRsV1dTdGFaZG9yV2peYWhrZ21saXB3fJJraISJfHxwfn57gYCCeneAgIqLg3F7h29xd4N/e4mNj4Nqfntud3l2ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshIiReH17gZGAgH6Kg3BycGNmXllnX3BwYGBncGZqb4p0YXRvW2FkanZ7f76cpqPIuHGFhHOUfXiGk4JzkY2IcnJwhHuDdHWHdIh3lIh5eXFjd4Z6gJNpcoR2Znd2Y2p8g4iegn9/jo59cn5zhHmAkZCCeJaNlI+Igoh7iYlseXl/dWh7aWt/eXNpenaAgn1oYHeHfWprdGh7f2l2gYyQlH56fn5we3Z7dH5iVnd9cnOKhIJ8g3GGind4cHCDgo1/fXl+fXaOhoN2aXFpbYiCcnBdaGNzbkpldUxeblVUWXNuYlFPc3hhUlhYXWJwgnNbYV1oZWRjamRRWnBJRGRhW2NwXl13Z1RWVnddW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHl9cnt+eIGBgXx2fYSIhoNwdoNybneCgn6Ji5N/cIB7d3l6gYx1g3h/gYGChHqAdW9+iYuanoh9hXp3hntndIWMkHp/f3uJhoR2j4Bnb25fZFxYZVltcmFgYXFsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhwjXV7h4+AepOKgHV0dX53gHBxf22EdJSGeHVsYHqCeYiPZnGDb2d2blttfYCQk4CAeJKSfXh7bYd1gJCLhHSWipGOh4WFe3+FbHV2f21od2Vte3ZtanZ3f398YGJ4hnpodHVjfnpndIWOjJV7dH91cYB6fG1/WVZ0fm91hId/gHlsiIZ0eGt1f4OEfXt9eHtyi4F9c2d0ZW6LhG10W2pfdWRIbm5MW2JXVlV4bWJQU3R2WFBVWF5hcYRvXGBjbWVjXm5iVFxyR0JmX11maF1aemJRVVx1W1tna2FWal9gbmZma3FocHV4jnRrjo11f3Z4fneBg4F7dH6EiIeDb3F/dHF1foWCiY2Ke3d/eIN8fIWHeId8fYF+hIB7fnN2eYyOn42Jeol2dIN5Xn2FmYx5hoN0hYaFd4l7Ym5sW2JbW2FWanNjYFxnbm9mh3FhcWZXXWNrf3zKzoi5omptbYpscYRyfIWKf3uRhXp5dHl1dXtqbHVjhHWRgndwZ159gnqLiWVygmtqcWNYbHuGnIiCgXOXlHd+e26IcYGKi4dxl46QiIWLg3t5fnFxb31maHJibnhxamtxd3x8eVxleYB3aXV4ZoJ2Z3SHi42UfHKGaW9+gHlufF1Ycn9tdICLfIJvb4l/cXZod3+Bf4F2fXF6dId8enJmc2FujIJsc1hrX3dbSW5rTVZVXlRVe2thT1R1clFRVFZeYnSFaFxgbGpmY1luYVhicEdBaF1gZl9dVXteT1ZkcFlbamhdV2hgX3Jma2hyZ3Byd4Z4bpWKdH96eH55goiAdXOAhoWNgnBwe3h3dXmGhoaLhnp8f3WLfn2FhISHf35+fYd/fHh2eXeSk59/jHyLbXaAeWODh5eGc5KLb4WFgXqDdGNuallfW11dVGdzZWBZZHJyZoFzYmtlV1tgaX93vq57oLdtYnOGaHR8cnqDhnt9jH94eHN2b3t2ZWpuYId1joFzamJefnh5i4RmcX5oamtaVm94iqSBhX9xmZNxgHh1gm2AgpGHc5WIjIeEiIV9eHRybmh5YGptYG12a2dqa3l3endbZ318eGVyfW6EdGV1hYyGlX9vi2ZreoN1bXRiXG98a3V8jHyBZnWHfW1xZ3V+eH5/cn1senqBenhwZmxibop+bW5Wa2B3VUpqa09STmhOWXxoYk5VdmpMUFRVX2d2g2ZdYHFoZ2FXaV1ba2hKRWtaYmRXWVV5Wk5WbWpZXWxlXFplY150Zm1kcWdyb3WBd3CZhXZ/fnd/fIWHfXVzgoh/lYJuc3h6enNzhYeIiIR5gX12j398hImOhIKEe36Lg3t3fHd3mp2XeoqDhml3fXxsg4STgHKPgnGFgn6Bf29mbGZXXVtcW1RkcWVfWGNzdWl1cGVlY1dcXGiAcG9ygHSJZWV4fml0dnNzg4V4gIR5d3R1bmt7cGFna2eGdI2EbmZdX31we4l+aW13ZmlkVVdycI2mfIR8dpaQc3tzfHpue3uQhXaYfIeGg4aDfHRwcmxndVxtaF9sdGRnZml6b3tyWWeBd3RncIB3gnVid4WKfJSAbotqbXqBcWZzZWBtemdzd4p8fmJ1g3Zpa3F0enB5eXN9Zn5/f3l3bmNmYm6GfG1rVmpicFNLaWtPTE5wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWZgVmNXYnBdTEtrWGNhVVRVc1ZMWHVkWl9rYVxbY2Vfd2ZtYnBpc25yf3R0moF3f4B3f36GhXp9dYKEfpeFbnJ0e3p1cYSFj4GAeot1dJGAfYGUjoCFhH1+jIZ7foB2e6OlinmIhYRsdXx7dYOCjHpuhXN6hH2Bg3VuamhlVl1bWlpUYm5kW1hic3tpaG1pYGJXX1ppgGprb4BobGFoeXhrdHR0boWBe399dnVtemhqeWpfZW5ogXaPhGdlWGJ3aX6He29pb2dmXVVYb2iPp3aBenyQjnl1b35vc3V5j4B3lXSFgn+FiHZqcnZnaG5bbGRdbHNfZ2FpeGh7bVptgnJzaW+Afnl3YXeEhHiPhHKIcW95f3JjcWhcb3dkcXOIfHhic4BwZ2p4c3JseHd1d2SDe393dm9kZGNufH1rbFVpYmZTS21oT0dSa0VheGdhTVNxXUlNVFlla3d7ZV5tcWlkXVZfVW5uV0tUaFhmXlhOVWxUSlx5X1tfa11dWmJlYHpobGFvb3Vub3d1eph9d4CBeoB/h4Z6eHqDfoGThHF0dH56dnSFiJB9gH2QbHOVgXyDn4V/h32AfoaCgIp7doSsn396iIeEbHKCenaAgIF1bodvfH9ziYBqb21kZFhfWllaVWJqZ1taXnWBaV5ubFxiVlxca4FmcnR9aWpda3Z2Z3R3cW2Fe319eXZybHpoaXhmXWRzaHp3koFjY1RlcGeChXd3ZmhqYFdWWWhkkKdufniAi456cHB8Znlveox7do5xhH1+f4ZuZHZzZGhoXGtiXW9vW2dfbHVkemhddIBvcmtxe311dWJ0hYp6h4Z/f3dydX91YXBsWXF0YnFyhXx1ZHJ/bGFsem9qaXp4dXJmhXV6enVwZGFkbnN+aWxUaV5dVEtzY1FHVmFHYnZmYUtUb1dKTFhYZ2x2emRlbnFmY1pXXVh2ZVRKXGNYaFhZSVdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bW9udoOYeXKBgHx/iIuGfXV2hniHjH10dXWCeHp6goyOfX6EiWp0l4F7i519foV6gXp+fIaIc3GProx7e4aQfmZyiHp0fHx2cm+GbHt+bI96YnBvYmVdZVZZWVdkZmtgXVxzhWhYcW5aXldaXGx7Y3B3dmxiW21zdGd1dXBthHh+gHl3bm50ZWl0ZVtndWZ2dpF6X11SZWZqgoJ0fWJjaVxUWF5iY5ClaHl0goWQeG1ueWd4bXyFe3WIcoB4fHh/aGV2bWBmYF5qX11za1llXW9vYnplW3d7a25ucHd4c3RkcoOSfoeCiHp2b3J9cmJ4ZFtvcGJxcYJ8c2ZxgGRebnZpZGd5enRub4F1dH1zcWJfZm5vfWRqU2hYWVRNd19RSllZSGJ0ZGFJVG1TSUxaV2lscntibGxzY2FaWlthdltTS2RdWGlTV0dZYE5HaXVYXmFtW1tfYmJdhWhoYW54eWxuanaBkHlug36AgZKIhIF2dIl0jIZ0cnd2gXd8fX6Mj4B+k35weJaDfZmSeYCAeHl9f3SIg3NwmaJ7en+JlXlkdYh5c3h1bHRvfmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYhlUnJuW1pYWGBsd2RpdWpqXlptc3FtdHN0aoV8fn98d25ubGRpcWNbanJkdHaPc1tXU2RhcoB/coJdYmNdU1pgW2OTn2VycYWEkXRsanlsb3B6fHtxgHd/cnp6emRmdmddYlphZ1ted2hXYl5vaGF3YFt7dmppcm53c3N0aHCBlIKGfoR2cmpwfG1md1dca21icXOBenNmb35bYG9xYl9qcX1sbHR+c3F4a3BhXGVsbHphZ1NnVVdSUHZbUlBZUkljc2JgR1VqUEhPWlZrbGt8Zm1vcWFcWlhZbHBXUlBmV1dpU1RGWlxPSHJ1WF9jbWNYYWBhXYtqY2RteXhrbml1eYZ7a4N9gISZfIKEeX2Ibo+GcW93enx0goJ8i4+DgpZ0eIKUhYGfiXWAgIFzf4Fwh4J1b6KXdHuGi4d7ZniLb257b2Z4cHpsc3ZyjGtedG5hZ2VrUl1bVmdibGxaXHGMZE9vbl1WWFVnanRoYnRlZV1abnVucXV1eWuHfH98iHeQc2Rka25hXG5tY3N4h2taVFZiY3h9fXGFXWNfY1RbYFljlpVjbnCDhYpzamh6bmVzdnN8bHp0dW96fnVfZnJjW15WYmRYYXVlVV9gbWRhcV1dfnBoaXNxc3B1dWtthJOBiHuEcXJmbn1wcm9TW2ZqZnF0gXdzYmx2VWJxaltfbmV8ZW12fHNyc2ptYFpkamp3XmZUZFVWUFRtV1FXU1BIZXJfYUZYaU5IWFRWbmlkfGlreGtiV1xVW3RkU1JXaFFZZlRTSFpaUE14d1tfZWxpWmJgXl6PbmJma3l1bm9odnZ/f2yDgH2Gl3t/iIGKf2uTiHJndIB7dYCDfYiOf4uTcn2KkYWHn4Z7f4aMc4CGc32Ddm6ljHOBjYt3eG56jGBkfHBmenN5bG1xdoJnZHtsY2ZnaFNeXlRnYGxvW15ujWhOam1gVFZTb2d0a2V4ZGVdWXB0bXJ6eHNtiHuAdpx7emthZWxtXmBvamVweX5nWlZYYGt4fHtwhF9iXmdWWWBXZJyIYmtxgYd9d2treGxbdnFseml2c25ve4ByWGpuX1ldVWFjV2RxY1NeYWliYmxaYH5sZmtzdW5td3ZraIWMf4h6h21xZnB8bXJtY1lgaGlvdIF0cl5pbFJlcWRUYm5iemNxdnt1a3Bta19YYWdodFxlVmFWU05YZVJPXE9PSGVwXWNGWWlNSV9LWG1kYHhobn5kYFVeVF10W1RSYGZOXWFUU0pcWVBZdXZdX2ZtaFhjYVtejnBjZ2p3cXNtaHZ0eoNzgYN6iI1+fIqHjnpukIp0bHOCdH9/iIWGkYSVj3p9jI+IkZuEgHyMhHN/gXN0eHFuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Njo6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6Ojo+Pj46OjY6Ojo6Ojo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHx9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERFQjEvLzAwMC8+RERERERDWGhnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTUzHx0dHRwcHC43NTU1NTRNYV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmHh4iIiIeOkJCQkJCQjIeHiIeHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhoWDg4OEhISEhYWGhYWFhYeJiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkZKRiYeOipCSk5CJkI+MjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6Ojo6Ojo+Pj4+Ojo6Ojo6OjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjIiHh4iNiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCRjYaFho+JjJCPj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkI+Hi4eIjIiOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjISLh4aMiI+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiIuMi42Mjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Pjo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpKSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZ21namdoZWhnY2JiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpeXVlZXmJhXl5aWV9bWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVBRUVFRUlZWUlFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUU9OTU9PT05PUFBRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLSk5JTk5MTU9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NFU0JVUEhLT0tJSUpISEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj48RUQ9P0ZZQ1tWPkVFR0dHR0JERERGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09Q11EXmE+QURERkNGRkRGSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozw+PTpDYD5ca0NBQj9BQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6OjY5Ojk5OkZnQFxtPzk4PDw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PT0/RDs+PT47RmlLXG0+Ojw+PT8/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5AQT9AO11wQj5ERj9NZFhdZT49PTs8Pj5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZEPjw8PUA9ODo6bndKNzw5RVpjYGBkSTs8PUQ6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUBbUTw8PUxQSUh2d083ODlUaG1naGxgQTtOUTk7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNARXV5SDxhgYSAent3XEY9QWVydGxtcm1PRmZPOj0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUFJc3lrZoSEg4KDgH1gWFFGYnFycW91cWBgaUpAQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEdwdH2CgoGDfn2EdEpTZlhhcXJ0dnx0a21jSUpJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWlzfYF8f4R+eYZxQkhkbWx2gYaHh4R0a1ZJTUxOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHuAf3iAhIWDhIptQE9zgYWHh4eHiIZnSkxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExOW3yCg4SDhYeFh4JWbISHh4eGh4iJiHxRS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSUhISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpWgoSEhIKChoaFg4KFhYWFhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWaFhISEf4CDg4KDhISFhYaHiIiIiImLjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODg7Ozs9QDs5OTk9PD47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaoaEhIF+gYODg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JmhYOBgIGDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo6Ojs4OTg5ODc3Nzk6OTg4Njg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd5e3p7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PXKEgIGDhISEhISGiYqKiIeIiImKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDk6PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXR1eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5IfoSCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA+PT4+QD8/P0A/QD09P0I/QUE/QT89QEBAPj9BPT48Ozo7OTk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlKDgoKEhYSFhIaJiYiIhoaGh4iJiouLi4qKi4qLXj5ER0lLSklGR0dERkhHRUJBQENFQ0NBQkNCP0BESEVDRURFRUFGRUZERUZEQEI/PEA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NGWIWCg4SFhoaGiImJiIeGhoaHiYmKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkJHR0pZhYKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSklJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExOS0dHR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0VHRz08QEA4ODw7PD06P0E+QEBDRklKUWCCg4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEhFSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QEVISkxXcoOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4tfUlJQTU5NS0pHRkJHSkdMSkZLT0xLSkpNTUxPUE5ISUtMT1FRUVFPT0pJSkpMSkxGR0hHRUdJRkVFQkBCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBSEtMUFd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKREVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9DQkZWTkZPUFBUWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMj4uLi2dWVWthRVJRUVBJOztRU1JgdV1VVlRWWVlSWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLSEhKSEVGSUhJSElpcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklJR0dGRT8/QUFFQkNHRURFTFhSTVRWVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFpnUlVWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx5hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSVFJWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSVlYWVtdWFhZV1JRTlBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNVVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpbXF5UUVFQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXG1ydXZ1c3N3e3p7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSEJDSEdIS0dDQkFEQE9QTVNkc3R1dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiW1hTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz8/Ozs+QEA/Pz5rUUthRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNDPz48PUI+Sk1GVW51dXVzdHZ4enx6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXt4enx8eHd4ZEJAQEI9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztCSD9cdHR1dnV2eHp8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJYR0ZGSEJBR0lFRUZETVJQYVdSWFFQU1NSVVtPT1FXUE1KQ0Y+Ojo2NDg3OTc5OjM2Njc5NTxCPWVzc3Z3d3l6e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMWFlaVlhYVlhZXVdXWGhza11WYXNrYWFfXWRhX15ZVVBNT05MSEhKS0lIRkNRUFNaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnF0d3h6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KT09UU1RcVlJVU1JPTUtJSEhGPz89Ojc4NzY1OTk2NzY2NVdwcHN3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9JR09QT09NUkpPUFBQTk5PVExNSVBPU1RVMjxYTUlBUT1jYVFTUVBOUFFQTk5NUE5UUlBSTUlMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjQ1NjY7ZXBxdHd4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkZBRkdHSEZKREhKSEdFSExIS0hGTE1QTUcvRV9SPjNAPmpvYVJSUUBGVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3NkRucXR2eXt7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRUZISk5LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUV1dVTExLSD05ODc7P0A+PD1BQEI9PkVIR0RGRklHSkpARkFBQEZIRUpPSFBSYVxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSUpMTEtGRkZEP0JDPjxCRj9CP0FkcXV4e3p7e3x7enp3fHd5fX57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47P0JAQD5BRElFQ0hHSUdJRUJCPz49Q0JBR0lETU9iZVFNT05XS0xNS0xNTUxMS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES29wd3p5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxAQkJBREVHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUTEpJTVRGSUlKTEpLS0lJTE1PUFJQS0dDS0dDQkpKTE1PTUlKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0RHSEhHSktJSktER0I9Pj06Ojo7QEI/PUJCQ0NHRkpMSkVJSUZHSENDO0FAQj5AQENFRElNUEdJS0dIS0RISUtNSEpMSEhKTEtNXVJJSERNRkFES0tOTVBOS01KS0ZHR0pNTlFOTGNuaXZ2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLREZFR0RFRUdFR0JDQD48PTo7OjpAREA+QkNERUlGSkpMRklJR0ZGREI7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1ISUxHRUZJSUxOS0pIRU5IQ0dNTE9NT01OTk1MSUhKT1JRUk5SZmdmcm9zeHV7enxsaGpuZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQkJCRUBEQj4/Pjo7Oz06PT5DQT9BQ0VHSkZJSUxIR0dHRkVDQD1FRUI+QkRDQ0VHSElHTVBKRkZHS05PS0ZISkZFREVJSUhLSUZIUEtESU1MUE1PTk9PTkpKSU1SVVRST1dkYGFtZ3Byb3J5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPEJBPkE9Ojo9Pzs+PkBCP0BCREdLRklHSUhGRkdFQ0JBQUZGQ0JDQkRFREdHSEZMUUxJT0pKTEtJR0hFRkVEQ0lISEtKR0tSTUJOT01RT09PTk9PS0tLUFVXVlVUWGBeXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmprc01HR0ZIQkJAREU8QUFAQzw4OT0+OT88P0I/QEBERkhFSEZGR0ZFRURDRUNESUZDRkVCRUdFRUZHRUpNS0hRTUpLSEhJRUZISUVDSUlKS01LT1NORFFSUFFSTk9NTlBNTE5TV1ZXWFZYXVpdZGBoYmppZ2tfZWVnY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaW96TUhHSEhCQkJGRTxAQkJEPDc6PT46PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkdKRUVJR0NHSEZIRkVDRkpKR01KTEtJSkxGSUlLSEVLS0xNTk9SVE9JU1VUUVNQUU1OUU5NUVdaVlpZVlpdWlhhYGBgXmhlY2BkZWhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnByc3lOSUhHSURBQ0hFPEBFQkU9ODo+Pj08PEFCPD8+QUJGQ0VCQ0hEQ0VFRkdHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMS01LSU1MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZW15fXmBiXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZxdU1JS0hKRUJFR0U8QEdEREA6PD5APz4/Q0I8QD5BQUZDRURESERGREdFSEhGSEdJS0pGSkhIS0hGRkxISEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUlFMT1NSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm92SktMSkxHQkVERTxARkREQjs/P0FAQEBEQT9CP0FDSEJGRUZHRUlFRkRJSUdJSEpNSEhKSklMSkZKS0hJSkpHS0tNTUpKTkxOTk5PS09QUlVYVk1OVFZVU1JRUExOVFNSV1teXl9dXWBfYWFhYGJjZWFjaGJkaWpndotsa2lnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dKTUxMTUdEREFEPD9FRUVDPUFBQ0JCQ0VCQkRBQUVHQ0hISEdGSkZDR0lHR0pGSUxISkpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBPVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5gYl5gZWFhYmduaGJpaGhteHZsaGptb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xNTExMR0VBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NDSUZDSEpKSUlLRkRLSkdISklJS0dKSk5LTkxJTEhKTUtaZkpkXEtsU0hPTl9uVWtzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVGB3dWlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5S05KS0pGQz9AQj89REVGRENEQkVFRUZCRkZIQ0RKRUVKTE1LTE1HR01JSElLSEtKSUtKTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXlta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0JCPz1DRkdCRkNFREVFRENISEdERUtHR0xNTUtNTUdKTkhKS0pJTEtKSktNTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncXBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9P0BGR0JHRElFRURCRklISEVHS0pHTU1OTE1OSExNSUxLSEpNSUtKSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdoYWRqdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR3SU1HSURFRUNBQjxCQUJGREdGTEhFQ0NIS0hIRkpMTEZOS0xTUkxITExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2diYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISk1NTU1JS0tLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRURER0JISkxIRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpKS0tJSElHS0tMS0ZIS0tMTExLSUtMTlRbXFRQVExQT05PT1ZRT09RT09RSklOUFFkcWlUWVdbW1xVWVpdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NHQ0VHQ0lLTEhGREdLTEhER0hQS0xPS0xXTElFRUhJSkhJS0lMSkhGSEdKR0hJRUZMSUlLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSSllhWlNgZFxhWFtkZFZWWFxZWlhcVllcXWJfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElER0dGS0pLSEVFSkpKR0VISFBKTU1KTVNJSEZBR0ZKSUtLSUxKSUZFSkdERkdFRUpIQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOXlxeU1teY15aXWBjYFlfYltgXltUWFhZXl1jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tGRklKTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRENDRUFGSkRASkxKT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV5eY2FgYmJiY2NlWlFZVlVcWV5kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLR0NHRUJFR0hGR0hJRkdKR0hGSEtJTERES0tOTUxMSEpKSEpHP0dGTkpLS01LS0tJR0dDREBEQUhJQT9JSkhPXWFaW2RdX1RRU1hdXFxcX1pLV1xMUlxZSU1eUE9cX2FjZGNjYlxkY2JkY2ZYUVVUU1tYWmFeXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSUZGR0hHR0lGRkZJTEpORURLSkxOSkxJS0pISUdCSEhRTUtLT01LS0lIR0VEP0VDSEhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJhYGJiYGNiYmRkYlhPUVFSW1NbXl1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lKS05MTElMS0lJSERIS1FPTU1QTE1LS0hJQ0RBRURIR0JBR0VDV1VFXFRdU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJdYGBfYmNiXWJiV19fVFBOUFFYUl1cW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQRFdfSUdHSERGTUpQUEZKSUpLTkxLS0xLSkpHRUpNUVFOTk9NTkxOSEtBREFDREZEQ0FFRkJNSENMTFBPT0xGTUZHSUpIR0xMTU9QSUxPUFBTUExQVFNVWllXWVhYZFZPU1RQUE9OUFVUXFlZWl1cYGFkZWNnY2tscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHSFlNR0hKSEdOTFFRSUtLS0tOTlVOT0tLTEdHS1BTU05QT05PTk9IS0VgRURfTERmY0VNW0lfXHNtT01WbVlMQ1BgVWxXZ0pdV1VeRExRVUxNVFZRU1RYV1RYVVRcVFBmWmhoZFhTa1RXVlVbXFtgYGFiYmJgZmhmbmxocnp8fX6BhISEg4ODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09TSUtHYFRISk9KSU9NUlFLTEtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzV1BtSHFucGFWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZVV39qdHV1X2B3YFhhXFxmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEZKTEZSVkxLTklLUlhXUU5OTkxRVE5PUVBLTE9HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWVJUUXZndGxwYm5malFyT013bWpycHNycXJwb3CBXWZ6dXhxcXpxfnN9a3V9YlJnfGVzc29zc3x9b315b39yX2BgYmJaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQTk1NSk5WXllVTFFTTlhaTFNTUk5MUElRUlRZV1dQVFBQUFFLR2Z4bGN4cm1aS0xVeXB1bXVibnZQZGVJZnZxbXdvgGpmeHhpWHNSaXttaWp6en1seHp/b2dvWHZ2anV1cIBgc2h8aWx4fG9eX19jYlpdYmRnaWplZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0JFUFBISktKTFBPT1BNUFpgWlhLVFdQYV5SVlFZU01QSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRpYlduTHFwXkZoeVd2VExoeH14YHl7c25hXm1vZFJncnVubXlwd2x2dHRxbG1cdH56a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGZlXmFiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUEpMTUtMUVFRUVBRV1xZVU5WWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZWWGxPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGV8aXJ7XVRLbGB2dWtpdXt7bX54a3xwXV5eYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobW1yfGttaGt7dG1ta21PSEpLSElJSFJRTE5PTUxUU1NPVFJXUlZUUFdaVlZUVFRhYFFPTktUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1dYUl1ZV11WVE9ZUldXV1hZX1tncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0xMTUtKU1FNUVBPTFZWVFBUVVhVWVVSWl1WVVRXVVlYUE9MTVZUUU5VU05PTUxRUEtKUVJLUU1LS09SVFJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1FSVVVWU1pRT1NSV1VUWVZUWVVUUlVUVFRXWFddWl5hXVxaWlxcYGNcXWJjZGdlZWRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUEpLTE9PTE1UUE5TUVFNWFhVVFVXV1daVlRcYFZXVllVWFRRUEtPV1NQTlVQTlFOS1NQTU9VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RPVFVYVVRZVVdZVVJSWFZVV1tZWl9dVVhfXV5dXF1hYV5bYmJjaGZlZGJYX2BiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FbWlhXWFpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUE5NUVFQUlhUUlFPTU9TVU9XUlRVVU9OTVFTVVVUVFJUWFZaXVxaVlZRUldYVltbV1FUVlZVVlhUV1dUU1JYVlVaXVldX15WXl1eYFxcYGBfX1piYmRoaGVkYVliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUldTU1NYTU9QUlRYVVVVU1VZWFteXVxbVlJPVVZWW1tXUVRXVVdYVlRYWlRTUVpXVlxeWl9fYFVhXGBhXWBiX1xgXWNhY2doZGZgWWNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeYFteXmFgX2JcWWBaUU5PTlZRUFRST1VUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSS1FUVFlaV1VPUk5TWFZUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVVZcXFZSVFZWWFlTVFlcVFJSXFdaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZmlkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1bYFxgVVxdaWpyfXNsZ1xVWVdRT1JbU1JRVFJUVVRLUVdWW1laU09TUlZWVVNPVlJTWlJUVVRYXFdYWFNYXFheXVlaXVRVTlZXV15bWFFUVVhZWVVXWVtUU1ZdWV1dYF1iY15ZYFtlYl9kZF5eY2NhXWVmaWRmXV5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVVZWVFRUXl5gXl5iXGFVXV5ia3l0bH1sWlVaVVFRU1xUVVRVVFZZV0xSWlZdW1xST1VTWFdWU1BYUlNXU1dWVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paU1RWWllaVlhZXFZVWl1cXmFhX2RkXV5dXWVhYmZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVpXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFhXV1ZWV11YUFVcWV5dXVRSWFJXVlRSVFhSU1ZUWVhZXV5YXVtVXl9YX19YXVZRWVRZWlphWVxVVlhbWlpYWVlaWFZdXl9eY2JhZWVdYlxgZmJkZmRfX2RiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaVlNcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFlcWlZYVVdbWllcWVhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdbWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVtZWV5fYGBkYmNlZWJkWmJmY2dmZV5hYmBjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFZYV1hdX2JhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xSVlhRV1ZWVlZWU1ZUWFxcX2BgXWBdV2FeW15cW15YVlhYW1tfYFxfWFldXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBYV1hZWVdWWFZdXV5gYWFfYl5ZYV1dXlldXllYVldbXGBfXV9ZWV5dXl5hXFtaWVxfYl9iZGNlZmVmYlpkZmdpZ2NfY15hZmRaaWliZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMV1dcWVddXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FiXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNgUlxZT1hXWVtaWVhaWWBdYGJiYGFjX1xiXV9dW15eWllVWF1dX2BfX1taXl5gYmNcXFdbXWBiYWNlZGdlZWZkXGVmaGlmY2JiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVtZXFlYV1hZWFdcW1pXV1hQWFpdYWNmZnJrf0pZV11aWl9dXF5cWV1bXl9hY2JhYV1iW2JkYmBjY2JdXFtaV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxdXl9aWFZbX15dYWFfXVtgYWJlYl9dU1xfYGNkZGZkZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoY2hoZmNgYmBjYl9fX11dXFpbWVhYWFZaVlxaWlZWVU1YV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WDgYODgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3x7e3t7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHx8e3t7fHx8e3t7e3t6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmJiY2NjY2NjY2LiYmJiYmGs9bS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyMkJCQkJCQkI2MjIyMjIi/6eXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4d3h3d3d3d3d3eHl5eXl5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH19fX19fX19fHx8fHx8e4GEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV5dnZ2ent4e3h3dnh7eHl6en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t6enp6e3t7e3t7enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx8fXp5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3eX1+fXl7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d8enx8enx5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en57fX16fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5fHp6e3l5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh4eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3t5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8e358fX5+fn5+fn1/f398fH2Ag4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAf35/gYCAgH+AgYGAf3+AgX9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35+gH9/gICEf4OBfn9/fn5+fX5/f35/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5/f4x+jYV+f39/fn5+f4CAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH+Bl4KUjH5/gIF/f39/gIGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCgoaehpeUgIKBgYKCgoOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCBg4GCiqGImZqHh4aGhoaHiIeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WEg4GBgYGLo4qanImGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4OCgI2jiZeciISEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4KCgoKBjaOPlpmEgoOBgYGBgH6BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgYSOhIGAgIWfpqmol4KCgYOGg39/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKEhIKDipeJhIOEmK2nq6ygjoGChJCEgYGAgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KFhoSEg4ODgoSOmY+FhYmloZmlo5ueiYKUlYSDgoGBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgY+Mg4F/fn18fY2dmZOEiJ+UkJ+clJ2Vkp6OgoOBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+BlpeJgH19fX58gpeToZ2Mk5KNmJqUmaGhm4eBgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqHg4ODhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICWn4t+f4B9h4t/hIaVqKWfkpGVj4mVoJ2ZhIKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZKgioCMhX2GiIGAhomcoaKQg39+foKWnZGCg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDipCChIqFg4KBf3+DiI+PhoB/f4CAf4KOhoODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIGCgoGIgX+AgH+Ggn9/gICAgICAgICDhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAgIWFf39/f4CAgICAgICAgICBf3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4OBgICBjIiBgIGCgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCAgISEgoKCgoKCgoB/fn19fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWCgIGDhIKDgoKCg4F+fX5+fn5+fn59fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYmDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYGBgYGDg4SDg5GSkI6PjouHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKChISDg4ODgoKBfXx9f4B+fn5+fXx9fXx5fIOGh4eEg4GDg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4J/f4GDg4ODg4KCf319f4CAgX99fn59fH19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY+Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn2AgoODgoOCg4J9fX5/gICBgH59fX19fn18enp6gIKCgX9/f39+f3+Afn2Af3+AgIF/gICBf3+AgYF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDg4OEhYCAf3x9fX59fX6AgH99f359foGDg4KCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gICAfn9/fn59fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/fn5+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn59fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOBgoOBf4GAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjISDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhYSDg4SDhYSEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYGDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJKSjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgICCgYKAgIGBgH+LlI+Mi46OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIJ/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRjIyNjo6KhYaHhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2MjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIyPjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX+AgIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaFgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42Mi4iEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gH+BgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4WBhJGOjIuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fH18fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+f3+AgIOHiYmJiomKiYWIkY2LiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH19fXx9fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uLiY2Rjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjpCNi4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fHx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICAg4F/gIGEgX5+gH9+foB+fX5+gIB/gX5/gH9/f4B/fX9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CCgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgYB9f39/gICBgICAf358fX19fX5+fYJ9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fYmGhoWFh4WFhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIKAfn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYWFg4ODhISDg4SCgYB/gH+AgX59fX5/fn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKDgoSCgYGAgIKBgICCgoOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4F/gIOCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIGDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODg4KDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF+fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKDgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9/f398fn9/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgYB/fn+Bfn+AgoKAgYOChISGhIB+fXx8fHx7eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH99fn6Af31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXh5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgICAgIF/e4B+gIB/gYGAf32Afn5+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDg4ODhoSAgX58fXx8e314d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH9/gYB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFyb3h3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/gH18fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gYGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgYKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgICBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHh4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg39/goGEg4OEgYGDgYKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEf4CDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGDgYCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4OEgoSDgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4SDgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgYSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgIOEhIWDgoKDg4KBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+fn5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CCgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhISFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fX5+foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoaHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZzhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fX6BgIF9gH99gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB1gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3t/fXyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foN0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcmpveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhISGh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxte3p5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEg4GDg4SEhYSFhIWEhoOGh4WGhISGh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhoKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e35+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoeGhoSEhoaHhoiGhIWEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4GAgIB7e359fHx8fn18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaFhYeFhYeFhoWHhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fHyJh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYiKh4WHhoeHiIeFiIWGh4iGhoeHhoeHiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHg4eFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoeHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEg4aChYGBgH9/gIB+f4CCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aFhIaHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjo9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDo8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1NTV1dTU1NTU1dXV1dXV1dXU1NXV1dXV1NTU1NTU09LT09PU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fV1dXU1NTU1dXV1dXV1dXY2NfX19fY19fX19fX1tPS0tPT1NTT09PT1NTV1dXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLi60dPT09PT09PT09TU1NXHt7m5uLi4uLi4uLi4t73T0tLT09LS0tLS0tPT09vi4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E9PkA3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6Oip8/T0tLS0tLS0tLS0tLUvaCjo6Ojo6Ojo6Ojo6Gr0tLS09LS0tLS0tLS0tDf6+vr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSko6jP09LS0tLS0tLS0tLS1b6ipaWkpKSkpKSkpKSjrdLS0tLS0tLS0tLS09LQ3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7PDw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqamsz9PS0tLS0tLS09PT09XApqioqampqampqampqLDS0tLS0tLS0tLS0tPT0d/q6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0tTV1dXV1dXV1dTT09PU09LS0tLS0tLS0tLS0tLT1NXW1tbW1tbW1tbW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7OztPU0M/P09PPz8/T0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dXU1NTU1NTW1tbW1tbW1tbW1tfX1tbW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7OztCmksXS0KGWy9PHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPTo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7OztKqnayUzqigq5/PmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DJl5mFpqSflpChtJWGnZzOz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PD06Nj9CQEI6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0aSwvZqKnaCnmbS/yZeZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Q1bmZnaWejKDE0pKZoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/P0NGanb2bxcmU2a2jv57V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0NWnpKLGnZOWo7vNiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NLAnaLNspuus52l0NujmbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptPUpKCPu6yfmqGcnJGnmJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HIxqa9lZOYoamfop6ooqmd0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQT49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg1MqOk5eQqrONkKXUmpKOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLUwq+ws9HWwL3W1NO5yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dTW1tbS0tTV09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT0tLS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioaCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpyenZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpual5eYmZqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYm5qZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6OjpKKhoJ6bmZmYmZmZmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoaGfnpybmpqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk8PD45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56bmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmpmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZmanZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmYm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkouQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiChouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6JkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjomJkI+Oj5SUmJCVnJqdnqiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6KhlZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJ2boJ2krLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6qpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapaekqauvrKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66vqqqrpKGipKmnpqmoo6Kcm5ukoKWoo6CYnZifoaKpp6Cioq6sq6qnra+opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKelp6mnqaijp6aZnKSmoqGhoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+hoqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXFBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZabmKSioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdnhiX1xVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6usqKirsKmoqqihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpufn6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltaYF9aXFZcaGRuY25qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnaGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eWpiW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKumpZmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odWtxaGlpYVlTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW1vLy+vLy+xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1r7Ogp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5rY2Jud3V2bmxbYlFWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbWZudXFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppqWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3RrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+8u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKastLWsrqWko6ikoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ4c3lmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GycW/w8DLzc/KxsTDw8HEvri+wcPAxL/Bz8/Ox6uvtrS1q6CntLOuq7i1s6ypo6GtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVmaWpoXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczOz8/Mw8fGyMnIyMnHxcnHyMe/xcfExMnMytLP0868uLa0uLjBvr66vbq8urysraaqu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd2aGppdG14bF1kW1ZgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzsfMycLCx8LLy8jGzMrOxcbFw8XKx8rQzdDMx8TAw8LJzcfFwcTHwby+tLCwsMG+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVudGJdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8S/v77Ey8jKy8m8u8jGyM3Iw8jJycXFw8LAxbXCycrIvsXHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVmY2pkYWptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDuri5vL7Bx8HGu7nH0MrExMDDwcLBw8LDvr+ht8HBwaC6x8zLxcjRwrC+vri6u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjZGNqYmdjW1paXFlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9v7m+urq0wLi1t7Kuuru3wLe8y9S3u8DBvLvFvbvBxL+/kqe9wrt6qcDJxMDAysCxwb+7t7u+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmNoamdmaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLevrre1ub+7wd6Xfsm8w7W6x7e2ubu9vYqbvca2YJXAxcC/vMG+uMa8wr+8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOBeHFtZWVmb2lla2hYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5uru/vNDLfYC4xMe3ubiut7W4vbWAkb3IrFZ8wMbAwL+9vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NmYW1gXFRJS0pESkJDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7K9vrvEtrW4tbfAvsS8wsTWqnR3kMbPwsC4r7W1u8OqeYm/yZ1VZrXLw8K/v769x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgHJmbGludG54Y2diW2NRS1RIRUVDSEM8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7G5vL2yvL68xbixt7m+ysrIw8bLzopzdI7M0czKxLW6wMTOl3GFwceQWFqXzsbCv8K8wMPMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBiTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjo6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vM/MvLq+vMS+t728sK+/vcHLybF6dXqNxszLzcrGwsTL04Rtgr++hl5YesrGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXV9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8tsC4y9i9vra/wL+vhXZve3aEl7SZcXl7j7/Hy8jBw8HAyctzaXu5tHxhV2jGxsXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnpuc3hzZ3BdW15dWVJFRENNSUFFPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2u7vFcnzBzLy2ucOth2dbY15QW19wf292fJK6v8bAucC8vsbCZWFyrbN1YVZhwcfDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f312bHV7cG5pW19gWVNQQUZIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnFynRnhrW9traebmpnVV9bSUxRU15vc4GeuLjCurO7t7u+vWFaZKC0d11UZ8LDxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxsLW0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3V2d25xYF9mXVtUSj0/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLW3x8Z8dGmFpbaYYlNFX1FNaWVTTEhQcXiIobC3vrmytbK8urtnVVeYvH5TUHLBxMbEwL2/ubOvsby6rru0s6arqK26vrjLwr++rKuwr7O7t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVteT0hCPz1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8O5hXpubo6gb09JQmtSQ1x7h4dbRleIpqewtrq1tLKsvLq6dFVQhbeBTFSCv8HHw7+5urWtpa22saawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZlhcXVJOTkE+SkJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i6vZGBd3KFfldGQleIUUtOYX2HflFDT4a6srO1srSvrLu6uoRmW3ifgVxxl7m7vbi2srGtq6Ctrqido6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c210aWxdW2pUXVxQTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1sr+hh4OEfWZMQFV6cExKTE6Hq29WP3O+ubO0srCxrbC6t6uOg3SFpampqa2uuK+qq62so6istKedl5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+1qpONkJtjRVadeVJXSFFhSXx/Y2N3rrmyrLOvrqytt6mVjZ2kqaSfnJydnaeonqCoqKGpt7GflpePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6ajm6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3pjd2xuXFFoVFBOR1BNTEJPUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqrmynqK1UUF6nXdYa0pVY2l2dWRqep2ytKqytK6qq6mSlKuvp52Ql5OPmKCeoaCcpKWtp6mgmpaXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mbpJmXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dn1ta3tkaFVRY01KSEdPUk1KTkc8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqKCwwbm9fE9LbKpcan5xdlNeb2FgbWiAlrGvrrO1qqehoaOdmZSNkJWXmJicn6Kim5+tqpCXl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ+cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3h8ZHl5YGJSVWBISUpLU1RJUlBMOT9BNjc8NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWdocPBgFVWZnB9dm1menJUX2JkamxibHCUtLCwuKymoZ2empWYmpmQjpGVkYyOjpSco4x2l5qal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKqyrqKZnJ2eoZmbm5qYmZuUlpuWmZ2loaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKTk9VTFNMQTc+Qzc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6xpZB7bYZwYmVXUVxVV0tOVVpUT19ZbLSzq6+nn56ioJeRlJugm5iXkpOfnKGkmIZsdZ2bn5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWp3dV1sWlJgSFJVSEZVVkpCTEc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaGihGRaX2lhVk5QRj8/QURFQkdSTE+otqqppJ+fmZKSlJiYlpWVjIiLjpWdnZ55YYafmaafoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+np6Wkn52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pdm1obVxYXENXTkpHTUdCRk08Pkw+NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOfmYFfXmZgUkVFPEs8RjxCPz5AQU16qa2pqqWfnp6io56fnZqcm5STlZSdnpiWfXSTopqrpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqzta+zrqqvo52rp7axraKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3RycWhWXFFGVEhESlBJP0VBNEZIOTU7Pjc7PD88PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfoIl2amFXTkQ/TF9+bF9DPDM1S3uqsqejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeG+CnaSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3xMnJw8HGvrq0urq1u7ewtbKqurKuu7e/u7qquK2rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGtlWltGS0xFRFNNREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdnJlxamBVSUVAQVKNnqSKUEdeja6soZmbm56emZeXl5KMjpaXk46NkIuCg4J3cnFtcY6mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxczR0tXO08m9wL/Du8bFyMXR083T0NPTzMrCxcbGysjOv8jRzMfFx8XBvMPBv7+/tr6zrr/Aw8PHxMfErr+4sri8w8LCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MREVQSURDQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6UZVhQTEVEQUZevtbDo5Ojs66jnpyfmpeWlJKUlpGQj4yHg4OIh4OAgYGAeXFyb2x5pLa6ub3LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LV1tPUyMzGzM3J0s3O083FyMnKwcbLx8nIxr/Ds7PIxMvLy8/Gyr++v73Bx8TMzMjJwMO/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hm1xMQ0RGREtVeLq4q6+vppycnKCkoZ2alJOVlIl9d3BrZWJocW9xe4WKgHVwbnF0cIWzwr3E0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLV1tnV19PX2M7Sys/RzM/QzdPQv8jHysTMzMzOz8XGx7a/yr/SzczPxsnIv8TDyM7N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSUo+O0E4PTQ1ODY7ODY6PEA+Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWfoqNeRTtBQklabJqurKiblJefnJqgoJ6bnJmViXdpY2BfX19fXl9fXWJsdXRwcG9scnF1ksTHxdTW19fX09bQ1dTa1NTOz9XU1NHRzNHN09fW09XQz9LT0cnT0cjQ19fY0dfS2NnU1szPz8rN0svO0MDGw8jGzs3R0dLJzM3AyszG08/MzsjEysfHyMzK1NTR1c/SzNPCucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaOwc0RAQT9TbZ2wqJ+XlZeZmpyfnZicnJJ9cGVjYl9fYV9fYWBfYGBfYGZucHBua29yd3ecy8DS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY19fLyM7Eyc/NyszAycDIys3O0MvQzs7Mzs/Iy9DRy87KwsnHyczLzNLTzdPR0dDQyr3IubCuu7i1qrawrai4rbO+u7Gaj6CUkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg2NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramlqn9iZ2Jph52fm5WTlpuenp6ck5aXlIhrXl5eYWRiYGBgYWBgYV5gX15cYm1yb29zdHZ2eaS9y9XR1tTT2NbOztTLzs7FzsrS0s/Hzs3N1MvO083L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXMwsjJw8zDxcjKys/KzczQzdPLxsjPzcjHy8XGwcbKzM3Q0cbQzs3NzM/Fx8G4ub3Dw73DubKyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYZ5cXJrbWdgYHBoWVhoVkxGTElQUUI7Qz47Njc6ODo6NTc9PUE8Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKifrYlzhIehw6qWjIyXlZCTkZGVlpWQi3xlYWJiYF1eYWNiYGBfYGFhYF9dW11ncnJxcnNwbXJ5pMbTz8vQz9PUysXJycbGv8PGz87HxcfNytLIy87OxtHS0M3M1MrHy87PyMfP0svRz8a6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL/Bx8zMzM/CysvIx8vQxMXHu8fDyMnCz8G9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7utpLVzY3+AtqyQjo2Wj4WDg4OBfYSEfnNgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvcH240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jLycjKyMHFzMbIy83JxMLKycHCzNDFy8i/ucG7xsi+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xr28wMPFzMXFvMDKwsXH0sXAyb/KycbIxtDDw8bDr8TLx8TKt7+8urSprKSlmJ+YrKOhpZujoJuUe3dydGZpWmFubFpcWFJETEZCR0RMREZTQDU0MzM0Pz0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sbCxZWV6i7aQi5KWhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjBwcHFvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7u8bDv7zBzcPGvr61wb3Dur3Gu8K6s7zFxMLCt7+1tr6/u8zDvLW6yLq/vsvEwcbCxcnGycbQxsLMx7LHycPOzcHFw8C9s7ewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NXXllKRkpGSEpBRUJFSUA5OjY0ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1tfNys/FycXHwLnFvauvnlxpcpeUi4iKhHh/hoZ/foR7dHRjXFxdXmBgYmNiYmVlYl1cW1xeXF5dWltcXmhzcW1nZ25wcnmdvczAw7rAuK6wsaeqraynuLS3tLOztLu1vrK3sLWvsrzCvMHEvMC7tbK6vsC4x7m0u7bBwry4vcbBw7u1r7K2ur+0xLe7tKu4vb3AvbG7trC2urPFvLauu7+1t7TFvL7DxcDDxcbIy8XAxsa7x8vAz8rHw8bCw7fDvb22ub7Hv6y1urW3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcW/vrm3ybaqsZJcbXWRjoaJiXp4foaGd3eBfHNoXV1dXV9gX2BkYV9kZWNfX1xbXlxdXlpcW11fbHBuaGZrbW5yfKTHv7m4tbCrraeeo6qnnquts62qrKm0rrexs6mupqyzvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLLAtri9sLCnsrO1u7yrrrWmrravu7Kwqrmwrbuuu7i7wMC+ucK/x8PFwLzGwsjKuMXHxr/HxMO6xMbCu8bJzMuzucK9u7OJc3Z2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXQx83Bw8a/xMTDw8rCycq+wLzBurK0tMOuqbCOX2+AkIiOkHt4fYmFenuEgHduXl1cXF1fYF9fZGJiY2NiYF9eWltaWl1aWlpaXGVub2hmZ2lrbnGBrbmwta6mpKenmqCloZqcpauupKiirKqtq7Ckpp+qrbW2sb25r7evqa64tLS8uLS8r7i5tbK8wbLArqWpo6uxsrOovaqrqKutrbSzpqiuoaSvqbKmp6iupqi3rLGyt7q6vLG8vb6+xL+1wsHHyLe/wMW3xMO/u7/Ewr7EyMzKv77EwMCph3N0cmppXWFvY1dWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9CO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HKvrvJtr3DvrrKt8HDwbS1u7WwrrS7raeqkWlph4SHi4B7fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9eXVxaWFlbW1lYWlxfZmtmZGdlaGpvcoWppauloJuhpZSepZuYkaGjqqOjoKalqKWtoJ2cpKassrC2t6ewrKiqtKu0urG2tq62ubKwurqxtqWgpKCmsaerqLmqpKenqKeyraCnpp+bpKasnp+npKChsa2trLK0s7Swtby2u8HAsrq+w8GyubnDs8G9v7W4vL2/vMLHxMPDvsDEoIN4cGxiZl9rb2BVWV5ITmdPVEdFS0Y8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9tqCelZ2hprq2q7Ozu7PEz8nLwsa4tsfAzL+4ybe7xbizxLizvsCrtbuxq6Sus62foZBnbIaGhoB8eXVzb21qamlwaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1vh52poJeVmqGWnKOZlo2foaOnnKCgpKaip56bopufq7CtsbajqaqqrKyktLmtt7Css7Wus7WusKqfnp+korKkpqm4raKmpqCorKuZn6CemZ2fpZqZo5ybna+pq6eqrKytsbK4r7i5u7C2vLy6q7OzubO+tLaysba1v7a+wL3Dwbu7vZeEenNsX2VeZGRYVFddSVdcS1BHSUpHQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vDw8++use4uL+3ssK0sbu7q7i5sKGeqKunlp2Qa32Ghn94cm1vbWtiXmFmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1hYWFhaXmJkZGVmZmhpa3GNqJ2TlJSbmJuil5aRnKKiqJ6cnaWmoqWcoKCbma6urq6yoKairqunorWxsrKsqK+yp7qzpragop+co6Gto6Kqtaqio6aepaajlpmel5mbnaCal52dnZytoqunpKSmrauztKq1sLOrsrm0r6qvsrKzuLOuqayusrixu7a6vb+3s7GUhXl1Zl5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLMyMa/xbbBwMbOt8DEvbO5ubO/trG4uqyxtK6emaOpn5OZjXSAhIR/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqGck5WQlZeXoJeZlZegnqGdlqGhqaSfnqidnJqrp6+wq5ujpLiqoaCuqLaqpqetsKS4sKS3oKObmZmqpqGarLivoqGknKKfoJOUoZSWlpuYl5aXnJWfqp6ppKKdo6qqsK6otKuqp62zsKWrrrOxsK+ur6aoqLKtsbSwvLS5t66jlIF5dWReYVZZWFNSVEtNXkxPS0dHTExFPUE+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvre9rp2nqKOqu8C9wLmutLjBzMfFwsO9xbjIy7LBwsGtvLu1u7y1uLmvrq+pm5igqJSQiYh/gX13cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjY2JjYmNkZmmBlpOWjJKUlJuZnZaWnKCcn5ahoKampKann52fpqCqr6afoqS3qKGhoqi0oqWopbClsa6stJ6hnZWVqaGilK2xsZ+io52emJuTi6GUkZOYmJOXl5iXnqecp6GimqSlpaukpbCnpaOrq62mqa6vrquoqqmzpqasr7Sxr7y1sa+voJJ6d3JlYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxce2xcSywr/Fq7e3vba9urq1squsp5iXnqOLiHOJiH93bmNhZmloZmdpZmptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVNVUlVgYF9gYV9hYWNlaoCUk4qRjpSTlJ2VlpekmaCXnaGloa2mpKSjo6Kcqqulmp+lsaqgoZ2lq56ooZ6trKmprq2ioqKVmKObnJCrqbCcoKKfnpeZk4qekY2Sk5aQmJiUnKGjnaShopWgoqSmm6OrpaKkqqOrrqWusqmmpaamtKapqK2ztbS5uq+prJ6McnFvYFtXVlZSR1FPSFpbT1JKVEtTTEVGSUQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb7DyKyxuMG1u8C7tLOpq6aVmpuciIByiIN7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eX19fYmRtjpCEkYePkY+ak5WTnJujnJuhqamrqKynqKakmaWvpZWZpa+qoJyZm6Cer5qcq7Ogpaafo6ShlZOblpaSqaqtmpyfoaCblJCMmY6MkYyRjZaVkJ2ioKOdnKOVm6CjoZeiqKOiqKugq7Ckrbelo6Sira2qqKuvs7ezvrWyq6+YhXRzaFtZWVNVUkVYTFFbWE1UTlBMUFFJTklCPT8/QT89NzU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1NzY1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9urK0pamglpeYl4d6dIB2d25taG1tbXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZH6MgYt/jJGKko2XkZeZoqCboKuqpq6sqLCkqZqfraCVlqSpqJ2YkI+anq6XmKiqmZ+dlKWhnpKRkpGTlaeqpZqZmZ6elo2Mi5OGiY2Dj4uSlZGgnqGkmJWflZqhop6Um6Wlp6iooLGxprG8p5+jrLWrrqewtbC4tcCxrbGrkX5yc2JWVFVOUkpHVlBSUUxMV01KTE5SR01LQUNGREM+QTc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OspbG3qqWisaudqqepsrGktsa0ubqzysW5usHL0Mqxtri7vcHDsa+xt620s7qysqGinJ2Xl5SDf3drZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domOh5CKl4mUlJibmZ6pm6CqpqWsnqiaoKack4+fo5uXl4WEkpujkJWjnZaWloiim5uUi46KkJqkp5yVlZebkZKHlI6LgYuNgJCKkpKSoJqgopaUmJmVoqaZjZmkpqimoaC0sqeyt6Gcoresqq2ksrKmtby1rKuxo4l5c21dTlFRTE9DTU5OUEtGTk5KSk5NUUhNSkFHS0hIQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKSnpKqloKimpbOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq26r6yemJmclJOHe4NuX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW9zdnGFiIKIgJGEj4uUkZSeoY+bnKOipJmll6KclY2HmZqMc42Dfo2XloaRmpCUjo57mY+djIKJf4mYn6OekJOYloWNgpR+fnSKjnqQh5OQkJ2bmpqSlpCdjqOjjomaoKGjpJuitK+sr62fmKW4pqaxobCunLC7qqmvqpmDd3NjVk1ST1BOQ1NOTFFMQlBRSElOUk1ISkpESkxGSko9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpqWnpqezp6W0wbiwtLDJxLe5wc7GvbOsusGrrcOtp6Kmkp2mtq2ino6UlZGOfnh+ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11pbHJtf4V8dE5YcpCDl4eOnZeLlJGfmJ2VlJaVj5aJgJOKXztXb3yLlImAjJKMkIaGc4qFl4F5gXuGk52Tg5WOkZCDhn2TeHFwhY19iYGRjY+XmpmTi5CJnYifmIiHlp6aoaCXp66pramonpats6KmrZmsq5ios6KpraOTfnJuYFtOU1JXTERUSlBMTEZOT0lFTFFNS09KSUxQRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepqKOqsKintMG5sLWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUm7CimZaFk46Khn1zdV1QTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFFCQH+VkpJ9iZWNhIqNm46WlYmSiIaVhnmJf2BKUW54ipGEfYSNioV/f25+f5R4dXZ4hI2Zb1GNiIqGe354lHZnd4aIfYqJlYuNkZKXjISKiJWEmoyChJKalp6dlKSjqKmlpJ6asKuhpKSRpqqWoqqcoqaoiXVtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+hr6GnqKWnqLCtqra8tre3s8G7tqe6yLi2qKi1tqqyvKaelo5/iZOolZSJfY2DgXx3cG5YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVlYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXFWPiZSJdH+HgXyFjJOCkpqLj3uGj4B2gHhzb3ZxdI2NgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gHZycpJ3aHWEhISFe5WKiIqNi4B/hIuMgJSDfICPmJSclpGenamen6CdoKmln52YjKekk6Gglp6epIByaGFcXUpXUFJISlhST0pMTVJKSkpMUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlraywsqq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGOlIGNm42QfnaFd3t1bm5pWUtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfHhmd42XmI2PfWh5gXZ4gImPfYSYkoFyh498d3tva36tfHOQin97hpKBfX90ZnZ8hmxvaHN9iYyIgGx5cX1xbXaPcWhxgX6OcEOLhIKDhX93d3qLhX2Me3V9jpKPmIqSmpujlpmdmp2eoZyWjYqkm46el46WmI93b21lYlpYWFVRSlNVVE9QTlBWS05LTk9KUU5IT09MRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmxr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mPhZJ6iI2KiXVwe210cGlsalhLRkdFQUBDRElMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnt9fnt2b3RzhYJ5gXhwfI6MipSDlpeYmpCSlZeZl52WjIOJnpGLko2GkJZ/bmlub25YVlhUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCjrKqota+urLS/q7zCv6aimZWkl56NhIuUoaGYmJGTi3OOeoCFi4V0bnRrcGxka2pZTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXGCniGKaaXR6ZX9wbX96i4l2gYiGdGyakXRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxf3xocXF8bpOOj3xzfXxxcG51bYJ/d3l1anmJgoiJhJaSkpCLjZGUlI6XjYB5iJeIhoqGgJCIdmpqb2hlWFFaV1lZW01QVVZZWE5JSEVKSkhHQkBGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfp7uvq7KwwrG7w8ealo+UmYuOhnmEkJiUjZCMj4Zxh4J0h4yFem9ycG5vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgoWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiYBnZ2JqbnJscIN1aW9YdXCOm5J3bH97fW1xbXCAenN1bmJ2g36GgIWQkIqKiZGLkYyLjoN1eIqOgH6DgH2PenFwb2tgW1xeXFlYYV9STltaWFdMSEpGSkc+QkFCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ2kp56vlaW1qq6xrsGyu8HGlpCMlI+AiH1ugZCSiYOKh4+FdYKEbJWIh3t0eHhsd253Y2leSVBHPkA3NDQ5Ozs7PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgISZhJucYYaqn52Lg5CNeneIfomIjXOKl5CDel1kcnR6e3eKbWhqYnlvhpCCem6Bd3SEenB0eXdrbmldd4d8h3yHh49/i5KXg42FjIZ9cYR/g311d3t8iXZwc3RlZ19bW15UXGdeV1FVWFtVR0pKRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIySnJ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fYF+cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxyfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkqiHgJiYipt0bXyBhod9jmhnaHh/boWHgoVxhIVHbIB3cnl2aG1rX3d9g4h/iIWLepWdm4mLiJF/enWLdnx4bW93fX9zc3JsW11dW2NjWGdmXFVPUFZZUERMS0ZOSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU5HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiJGBmpWCoaGYlZuapa2Tmruxp7vHw6iLjKGlj5SJgZF8cYOen5Gcf3aFhYqQiJBpaG+DgHSMh4SLcYWCd4d/e3aFfW52dWaAlI+GiYmHiIehqqKWiY6Yf3qCiXp5b2dreH56fnJqZF5aWl1qXWFmYFlPS05XUlFIUEpETkdDSkRCQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMgIGRjoqam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBjIuCiY2Df4l/bXBqXUJBNC0tLy8uLzAyMjM0Nzc4Oz0/QkRISk5RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2aj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPoZ+TmJKEi4WPmZGWbHB1iYuCloyNj3ePhHFthYGKlpGDhYhyiKGWh5OJjo+WpbWpm42VooOHk4N9f2tqa3yAgYFzYV1jXlpma1xsa15XS0dPU1FOTUxGSVBDRE1GQUNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+l5aalZ6enKegqZaTmJ5nZaSafoSSkXmAkoiQkn2KhJiSkYKAgIuNiYWQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0VOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZyopaKZoZeilZ2fqJ6oq6CorKmqtZerv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGJlaKamnh6fpSYkqGSlpiBlJ57d5WSq7OIjZeffZSdnI6Tlpmkoqa2sJ2RmaiIlo+NgYhsc3J8f3xxaGBcYF5iZ2NgaGdbUkVKS1BPSUpMRkZNQ0hMRkZDQkdFQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJjIqEkoWDhomBgIZ3X2JQNDYwLTEvLC4wMC8vLi4wMDE1PkFBTVFSU1BSU1VSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYaQd5WLo6eqtL24pK6srKeotKuwtrKyrbuxs76cs8Osu8nLt8O/uKWjsLKsraqji5aYhaamoKOXgaaZjaKqqKSIhZSkoaCqoaSpj5yxi5Wjp7e7m6CjsJOinaOekaSiq6+ts7WilKSqiJmJkoqVeXp+hX5nYGhcZWJdZGNfZmZfWk9DSUhUT0ZITEZKR0VGSEFLRkNGR0E7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GPg4WAi4WGh5KGgoSJhoiHh3FuYUBFNjQ8Mi8xMTAtLCstMS4tMz9EQU1VUVJTVVVXVU5bUEdHRTw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqscHHw6qzxbass7+zuL62v7TBtru7pLjGqLbJx7W+ubSoo7StsbGbmZKan4mor6ullHafpJehq7GzmZaqraiutruyuqyvtaKxrLG1vLe1rrWgp6ejqJqpsK2yuri4p5u2qYyljpGTn4Z4goN1WWFkVmVhYWNgYWZfW1RKREVMVVFISUpESUdFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFjZFd5dXGBlH2Fh5N2hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjYeEgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0pBQD5HS0ZFRDs+QDdENz9CSkpFRldUUF6Ppa6jsbTDtrjBzMm2u8S9s7PAt7fBtb+wt3Sxs6a6xaSwxrmxs7G0qKS1tqqxoKGWm6KSpbCupq2rp6SYoKyzuqKpsrq0u77Mv8XFvb2zwre6uL+3ure5rKywprGqrb6wvbvCwqyZuqiUro+Xl6uJfYJ8aldiYVhqZWplV1tkWVZUSUdHTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVVadmpwf4+EgY6EbnpzeYdiuKGZo4mVk5aTk5ONkJaSh4Z7hoGNloqBhIGKenyLh4Z8ioOBioOVfXh6dWVPXGRHRUw6UWNhW15TRj87SFBEWmNRUVlYWmdZVGBgTVNPRUE/SUpIRUZBQEM8RTZCPkhHSkxTWlRdk6+4tbq5yb+6vcnMu7zBvLe1u7u3vbS6scZhdbKlsZqeqr2qpairqqOisrWhq6ielZafmJ+upaempZ+jlKKmsbSnsrK9tsG908nK08bCxcvBysPAvr2/u7y3tLC5t7bDusW9w8iwnrmqoquOpai2iYB/cV9hYl1XYV9oZlJYYVZSVUlFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdsbHGQjYWQc2xycnOI1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaKf4OAg3h7i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV9uX1hnZVVZVEpEQUtLSEZJSEhHQkk5RD9IS1RUVlxaW5K5wLm9t8bAurjKy7q3ura4ubK4tbSutraZZHWonK1wXqGtnJigopuknqullKCfkJSOlpiXqJ+ln56amoSknaylqrCst7C9udTRz9fPyczRzM/OysbAv8LKvcG8wcDExMXKv8jOtKS7sLSvm6u5vJp/eWxdX1xYXWBZY2NRXGBTUEtDQkVHRTxART5CSEJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KQlG9sb3V1h7OsoaGfi5mcmYyNlZGbkoWKin6Ih4yQi4l8gYRze4qDhXuJdIGJhpV/c3t4a211e2hyZWlsaWZqaWhgZmlobFpudJetpLyIh2dbb2hdWllUSEtOT0pLUUtUUUhMQUpHS1BfXmJmaWGXt8ewubO7vrWxxMe1sLmwsLurs7GnqresjbannZunmk+anYyOoJaRppillYqTk4mQiY+RkZ6boZealZaHnpqmm6yvqK+ns7TU1NTW0svP1NXO08/NxcLJ0L/KycrJ0sfMzcLQ0riww7zEuaW2usSigm5jXFxdWGBXWGZaUV1XT09CQkhFQkk7QUQ+QUc/P0I3O0M+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmIJocW95eYOgqp6ml42bm5eLjpWRmo59iYuFjoqKi5CHfISCcH+IgYZ7h3KDkouPfnF4dWtxeH5xe214c2xpgXBtY2lucHhpd3x+y7/C36dtY3huY1thYEpQUlVOWV5QXl1NUE5UUVVVXG5udoJyl624rLSnsLarrLzAsau1pqW4p6yuoau0o46xrpqYmIyRk5GEjpuBjaeSnImDi4SKiYSLg5OVmJeTm5GcmJmZnp6rrKSnoaytz9LV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbFwM7Hx8OovrfQnnpuZV1iXFZgUl1bT1BUUE5IPkFGQUJFPEBCPkVEPkA/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bHdwfX5/oZ6eoYuNmZOTjIyTj5aFeYWPkI2LioiRh3+Ce3J+gIGHeYR1hZORiX9vdnJrc3x7d3xzgXdxa4BzcmhvcXp5cnu+y5t+jLKDdnKEdmhhal1DWlpbV2ZkWGVrU1hdXWBkXmN4e36LgZmqpKShoKGopqqwuKqltKOhraKjraKnsZ+JppqUkpGJkY6IgZSJa5WijZmEgIV9kYODk5ati5WNlZmOhZKQnZensKGgoaSkqMjOz8jCy9HU0dTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMTDy4tzb2JgX1hUWVJcUEpHSUlKQDs6O0VCRDxCRD5IQj9CQzs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5aJj4qIjoePf3iElJmKjYiIi4l+g3h0e32Dh3d/eoeRloCDbnhwbXV/dnh+dIV8eW2HdnRufXaEdXl7nbaNPEGLxqV+jXxpZVZJQ2ZjZWNoamRveFtfZmlrbmlugIOJkYudnqCdkJeYn6OkprKkpLOgoaWeoamgorGchp6SkpKQi46LhoOQhH6cm4yNg4SFepR+gqmVo4ySipeSi32XipqRqrOYmpunnKe9w8a5tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2trS1b/LzLR4dm5kXVlSVVBaVkZHSkpFRT06NzlAQUI6SERARUNBREI7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqCh3x4hZaXiI+Dh4WHeoR5cXp7hIZ1eoWOjZ16jHB8b296f3F8gXGDh4Fujnp1d318gnV/fIeIsHRZqcK2jJKCcG5iPV5ocnBxcG54d4FlaW9ydXhye4uHjpSSm5WglYeMk5ugm5+qn6CtnKKamZ+lnp+smYuajJGRjYR9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI6UjIZ7m4iTj66qlJWXnpinrrW9qa29xsvIycvLz8jD0crU1tjX2NfU29fT2dvWz9va0dbJ1MuVeXtoaFtZUFJTXkhDRUlJPkE+PTc6PT87Pkg9P0FBQURAPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoKEfoR8fISXjoeLfoaGgHeCeW57e4eBdXqSno2gdo91gnR1gX10gIRvgY+Cb5KEdHyBhXp2hnyJt8alwsm3gZabj3dwZU5mY4F6gXeGopCLeHl3e4N/fIR2bZOWlJWPmJCDio+WmpeXppyXoJefk5KXo52Zq5aRkIqNkYKMhYmIgYWQkZ6cmYmFi4GGmHqJiZ+Xj4iOiouCfKGJkIu8oZiTl5mcqaamrp+otb7AwLnHyc3Oxc3K0dbW1dnV19vU19na29fb2tnYztzGhnp5Z2hlYFRXVlVNS0ROQzs8PTw5Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eot8foB/gH2Fe36BkYmEhXqEiHt1fXRufH2GfnR+kp6Rn4OSfIZ+eI59eYqKboKagHSYhX6BiYV8fpB6j6mPkMOgvIyco5x9iYR9iXOMin5zppqcmJSFe4+QiYRoR3CgpJ2Mi5CShYmLkJKVj52ak5WRl42MlZ+dlKGUko6NkIt+kI6Oi4SIkpaan5+JjJSSnpGCi4CmmYiEjoOGhIClhoqLuJidkpWWoqehnZ6do662urWrv8bK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3h4d2tpZFdgW1RQT0hETUI9PT45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmAjopxcnmKe3p/fX98iHp8e4uHgn51g4Z5c3pzbYF+hX13hZuhm56UkoCLiH+Yh4Cckm6HqIV6oIt8kY6DiIScfpqRio2jop+QpK6gi5GLhYuBkoZXcq2Ln6ucj4OYm5CQjlyCopGCjJ+TlYyHiIySk4yUlJSQjI+KiJabnY+VlpGLkpSGgIuIko2JipyWmaOjhpKdlqGLioiOnJCDiI+Ag4eFpIaMkLOYnZKUl6Ghn5mSnJ6nsbispbzCx83Hxs/Mz8zO18/R1K7W1dja2Nra19bZ2p9vfHRnZ1xdWFNXWENASUQ+Pj46NDk6Ozc6OzozOzs/PT43Ozk6MTlHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieG1ifpKDbm13i3h5f3qBfIZ8e3eGhH9zcIWCenV2dnSEg4V9f5Kmo5+lopaJnY+Ul4uKqJdyirKNhKeRhJmThZmLopagmJOJm52hkqmvn5GVkI2NiJWLbo23hZrEyLKcoaWbnJiWkbKRZKTNx5aPhYeJkJKNjZOUioWKioaWmpuPkJSThpWXhH+Pi5mIjZCql5eko4iZnpabiY+Il5eKhI+NgX+Hj6WJjZOpmpeTlpmhmJ+Zk52bo7O0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6Ccn9oY19dXk5KVFpCQUdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OjI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj46RU1GSFJXU1JCY4FGdYGOfXxtfoh4en56gYGDfnZ2gIN8bG6Lf3l8eHh8hIeLfYqjs6ejqrOhlqefpaSWla6ig5C4lZKzmY2hoIylm6+jpJ2YkKeWp5mtr6SXlZaUkIuYmZagwI6kybirm6KmrZiRm52ynYaFqKKcmIWIiY6VjYuTj4iBhoeIk5iUjIuTk4aUmIaEkZCcdJGZs5aXpaGInJmTj4qQi5eaiYqWjoZ9jJieiZCQnJqZk5iYn5SgnZWfm6GxrqKkt760xcfEvcPDv8bNysnSp87N09LQ1tjT0Ni7cnl2XGBVX1dQSElORUJDRTU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTw1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1NjY9OkpGREdOW1xZSWZgO0iEi3p7boWGenyEeICFgX5weHx9fW9zjXp9gXt4houJhoOSp7usqLK9r6Wts7Ooo6KwrIqatJ6juKSVraSWqa23pqSjn5mpmKmjr7CqmpmclJWRl5+Xmbu7rcmhaba4q7CUmJ6jq5OXvqNeqrKCiYqNlIeRfI6OfYOGjo+UlYiHk5eMkJWNi4yXmJKdmbSXlquei5uUko2QkoyZm4qSnpCLiZWgoY2UjZianZObmJ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8jC0aHGyc3NxNfW0cvToXB6aF1ZU15ST0ZEPjxDQUE4Pzg3ND5GPDw2PDM1MzU1NDU0QjM6OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVHYmBicElAi4p+gXOGh32BiHWCioN/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruztMG8tK2rs7eMqLKurryqm7ukqK25uKumpqKho6Oor7Kxq52cpJibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIecrL2wg4yMi5CDj4ORj3qBh5CMjpyIh4+YjYuVl5SQmpadp5qxmpGsnY6aj5KOlJCQlpeOkaCRiZWbo6yUlo+UnJ6UoJ2bmKChlJqep6akoqSwsqbBx8OvsLq2xcTCvs2nx8PHw7zV0c3Eyoh0c2JcWV9bTUpCTEBFRz9BP0I7OjQ+QTw9NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxmRmBpZ1pdW5OMjIh7h4uGg4x1hpCKgW9+fIJ/cX6BepV6kZSUmJCTlae0xsm/wszBw7nHvLqvq7m7l7K2urLArqXApKuvu7yqrauiop2nqq60sKqbn6qboZuVn7C0p4uiurq1wburqZyypaSolIWOqsPEpIKLj4eIhIaVlI16g4yRjpGhjIyUko+Jl5+Xk5mVmKagr52MqpyOlo+SkZSVjZCVkY+hlIaXn6CynpSalKChmaSfmqCcoJSYnqakpqakr62lwMTDrqi3tcnDvrbOssS+xLyz0crIwrV0eW1cWFxpU0xIRExLS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk1lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoKQeY2hlqiampi6vsjIysHSycrCzLzBs627vqe6v728xLeswamssru9qrCpo6WjrK2zrba1oJ+vnqWimKO0vKmbqLzBo7a2r6uSsK2rrJeGmqqmpZGCjJOllYmAdYqSeoWNkZCen5OPlIuQjZSjmZeclZSjn6qfkaWajI+PkJWWiHyPlZKSo5uVoKKctaaQnpelpKOlnp6mmJ6Vl5ulo6inorKsqLzAxK+ls7fMwLmuxLO7vsK4rMLDwsCYbXlhWFdcW0tLTUpGRERJQkJBQ0s6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djZeOnpKJin+Jn5OEd4V/lX9/kIiKkH+VoZqupqOYwr3Iw8fF083Ozcu7wbevury0vMu8w8G1tryts7+5vK6vqKCop7atramxt5qeraKnoZ2rt7eppa++w7G9ubOnqrWzra6WlqWsqKCRjpKxxaeVjnyRlX2IkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuNkI+eiFqQlpeSlqWZZZijnrKllqKWrKyrp5ueppeYl5iVoaSopp+2q6m6vMS1pbS1y8G4qbassrq4rqi4ur24g2xuWldUVU5GSlNOSz9BR0RESEZHOTVGTTs+Nz5BSi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZCDh6aTiIGHgpyEg5WQkJSOmqKfr76uoca9xcTGxs7OztLKvru1sbq7vL7PtsS9t7m3srG1s7izrKacq6u4qqinr7CXo6+kp6SktMCwqqy0vsK5wLmzp7m1uLKulaWtr66li5OVoY10wZp+l5mFj5aajLGVmpmVk5OZmaWjlZ+blpqpnZyhoJqLjZCWnWBKlpyalZqlllSWsJ+vnJ+llK+urKaaoKWUk5mZjpyfp6KZtKmqs7y8u6uwssfAuKWrq62xsaOhsrK0pHFuZlxaTlBLRFBQUFE7R0pJR0hCRD45S1U/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1RRVdSc2JXRkiql5mgoqivmZGXh4unlo6IkoWfh4Sdl4+eoJqjpLXItKnGusPDx8rIyMzNxr66s665uMHBzbbIusG4tbqxr66ytKejm6qztKqopq2smaSupaSorLq/qKu2t7/Bv764srLDsbm9rKOutay6poicmKabdr+ghZmdjpOZmouvl6Gcm5eVm5+hqZ6ooJmaqpqip56YkI2RnYNudpKimpWdop6QrbKjq5WoqpeqrqWkn6Wpk5KZnIiUnKKelrGmqau6tr6zsq2+ubago6eopaecnKypqYxjZWFfUktNR0hOSVVMPUxETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5ScoZ+7r5mUn4uTqpuRkpOJq42Hop+MpK2Uo6O2xr20wbrCwsfIxcLNyMK9ubKvubTBwsq1xrHBvLS6q6itrLCjopmqtLqmqaarqp2or6ejqqq+vKesvLO3vca8t7W4wLG9wLOptberv6WPo5iRoqC8n4maoJmXnp6Pt5+pnKWjm5yhmqils6GbnaacqKqemZWPlJuLl4mMpaKUnaKeoLSvpaWTsKuZq6yenqOjqZGVlaCDkJ6enJWppKKhtLS6ta2otbKznpyipZqXlZmqoZ53YFxfXUpIRkdNUUlNRUZGQlJMSkFFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+fw6ybl6SXmamclpqaj6qWlqimla2tmaGrtsTCu763wcLAx8S+zce7vbmyr7izv8PItb+vvLa5t6ajqqytoKCaqqrEoaSoq6aeq6+soqmov7imrb2wt7bHtrW5uL+xv8G2tLO0r76jl6SXlJyUrqCRoaKlo6OfkL6lqZ2orJ2doZumn72imaOfoqmroZ2WjZWek56Hj4WNk56koJ21rKaclbKnma+on5qpnqCNmZWfhI6hmpuTpaSamKyxtrGqpaqtrJyYoKCSjpCWqJ6UaGJZYV1OSUdKTktIRURJQT1QSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGVjV0yimqOcnsWsoZ+snZ2uoJOjn5eloKepq5e2saOqsrXEw73Atr/Cu8jCvsrItri1tLCzs7fBxra+sLi0ubWfpqyqq52dnqWjwaWgqa2fpKmtr6Kmp722prG8t7a1w7Kzt7m+ssPAt7ius7W1o52llpKUoa6gmaKdqairo5rDramerK2bm56ZpqC9op2lmKurrKahmY2an5KeiY5Xf5aepaGguKqnk5i2o5+yoaCbrpaejpmUnYKOn5eVjqKklZCmrbKrqaGipaWVlZyYi4+Rk6SeiWFkWmNgTEhKSk5GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dzSEU2PXVlXEtOnp+hmZ7Dp6Wis6Gcs6eTqqSgpJ+tqaydu7CorLWxx8TBwrPCw7zGw7zEyr2vsbatsLSvv8W1ubGwubWsmqiwqamanaWhp8Ksm6yxm6qirrCppKe9t6a3uryutsOts7PCv7LGs7q3rLS2raqippaVlaSsop+fmqirsK+vvLKmoKmpmZmYk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWdmqKfp7Smp42YtJyjr5qem66QnpOXlJqAkqGVj46foZOLpqywpaahnKCekpKak4WLko2cnn9hZVtnZUpJTEpSQUNASUc7O0c/OTlOTVVeUlNKPk9eXT1IUEJMTEk5TWNdTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+kn5ugw6ikqrKhpLWplbKsp6KksqyuqbuyrLC1tMa/xMS1wMS9ycS1wMjCtau1qLC4rMDEtLeurLa5pZmrsauqmJ+ml627tJuosJutn660sqequrOnurO3srjAqreywry0xae+rq23taqorKGXl5KmpaKjmJilr7iusrW2oJ+opJmVlZOkoLeipaaWrrKypqqmoZ6bmpqWmKifoJihnq+yoqaNl66ZpauXmp2kkZuOk5eZhZaflIyQnJ6Ui6mpqqKnoJidlIyOmZCChpaJlJ94Y2hda2pNUE1OVD1DQU5DOjpJQDc3UU9dXlJWUUFXYFxCSlNIVktIOlRkXU5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVKcGlWQ1dGjHlmQzukpJ2hpr+mqK+voam1qp25sKujqrS3sbC5t6+2uLjFvcPHvbzDwcbAuMHGwbqqtqStu63Bw7i4qq2xu6KVrbCtspalp5Cquamgp7CdqqCwtLKqqba1rLyssrK5t6y5sMK6vb6mw6uwt6+pq6unnpiZq6KioJGYobGvs6uxupucqaCZlpKXpqG3qaWjoq+xtKuyqKufm6Cgm56lnKKWnaOzsJqfkJOlmqCompWhnpWYiZSYk5aXnJOIkJuZlI6pqKefo5uXmpKGjpmLfo2WhY+bamhsYWxuV1BRWlRBQ0VUQDs7SUE3OlhQZF5QVldEWV5dTUxSTl5LSj5aZF5OSFBOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oaqvq6OxuKmltbOsoa21va6zuLy6vba2wMK/ycS5xMHAwLjEvcG3r7Woq7eyvL+/tKmusbael6utqK2Wp6iOp7ufpK2znquisbCzrKm2tLW9ra+xtaywtbHAusS3q7yvsbirraqjsaaepaqgpJeQmZ+zqrOqq7OanaebmpWNoKaktK6noq2trrGns62yqaScn6iknpWhmJuotamXmZKSn5meoJ6Qq56Xl4WVmIudmZyTio2Wl5qXpqWioJ2VlZaTgI+UhXuPkoOMlmVscmdwcl9GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTT1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FVMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSZoKSst6Ssqaaurrapr7S6p6awt8W3sba+wMG1tLrFvszFucK/ur+5xLjBubK1rKq6tru5vbSqrbC1mJinq6qrm6yrjqu9nquusaOroLGts66utrG5t6mtrrGota+zu7zJsqq1tLG0r66nobOgmqitoKWVlpqasqOtoKavlqGkmpqSjaKlp7KpoqeyrKq2pa+xta+kmZ2tp5qYn5mZrLijl5OQj5icoZiXlKuenJOAk5iNnZyalpGKlJOemqWhoaCYlZGTlXqLkIV7jIqDi5JrbnhudXtgRWFqWUlIWVs9e0pHRTZBYlRpW01cYEpbXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENeUVwuKkIvSkdQW0gzY1lVS0SZlqCwqLKpraWkrq61qbe0uKSrtLfJu7S6ur++tLS3w8DMyLvDvLa+vsC4v7yxva6nurm3tsG2q62xuJSXpq6rp6OxqpSvu6SssrKnqKOys7CxsbWxuLOorquxp7ivtbTDxbaptLWrsK2qp6O2n5+nsqCklZualbKep5ygqo2po56blpilpaW3p6KytKynsaeusLWspZmgrKibnJ2blKm4nJSOjouZnKKXkJiloJ6Vg5GVkJ2cmJaViJeQl5unnKOgkpWQkJZ2hJCHe4WBhI2LbXF3dXx+XEtlbFxLTmNcP2J7R0k4R2dXZVtNXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydGYUxWJS1CLj1FTVE8M3JrSkRDkJmlrqWtrqunpLCys6q3sLafq7W5ybmuwbzCt7OxtcLDzsW/wb20vb+/ur+8s8Soqbmwtra/vK+rs7KcoKewraWlsKWesrWsq7KwrKmotLmstLK1rLStqayoq6m5rbGxx7+4pLmvqa2tpqitsKakpK6jqZyenJuwmqKjo6ORrJ6koJ+iqqamuaWstbWlqquorK+2r6Oeo6iqm6CampKktJqPiY2HkaKglY2UnZ+TkoSOkpKdm5iVlIeYk5WZppufn4ySkI2Qd36OhXx8fYeKiXF0cn59fVxTZG9eTlpmXUZElltIO05tWGFbTWBiTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGRISis6ST8zQklTLD6Paz1ISI+bqqqiqrCkqKSztLG0tbGxoautvcu6rsC7x7G0rbTCwtHFxb7Asr7Bwry/t7zEp6y3rLO4u8Cwq7KtoKSnramopLCjqrGqr6ywrq6trLO7p7awsqmyqaulpaOtuqyqscK5tau5qKiorKqosaWqpKKuqqiinpyjrJWknZiemaydoqepoq2mo62suLGyoamioKuusKyen6eoqZmkmJmPoKeYhoOPioufoI+LjJabjo6Fh5CVoJ2Wl5WGlpOTl6ScnZyKkY+NiX9+iIZ8d3+HhYZ0c3GJdmxfWWBuY1FzcVxLO4R8Rj5XdVhhWU5jW05VVlVXUFxiXlNPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLklnREY4PEIwNUVLWDFAlFs+TUaUl62noqqynKmpr7asuLWuqqWrqr3Iu7C9t8KvsKyzxMPOzsO+v7TAwsS6wbTJxKyvt62yuL++s62uq6WnqrCpp6ixpbSuq7CurbGvsq2zu6S4s6ysrqern6KesLerqq26tqW1taOpp6ysqq2hqaemsbKkpqahoayWqqGUm6CmnqSiq6Sto5+nsbetraOlopupqq6pnaKlpKSYoJmWj5idk4GCkImFnKCMio6MmY2Qi4OMl6ObkpCbjJOSkZSimZuZio6KinyGgYKDenSAhIJ+dHeLpIh5a15gbmdXZYdkTkBnkkxEYnlXYlhSZVRNVlVVVE9cXWFVS01pV1VXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIZASEhElpKvpKOqsJirqa21q7axq6Wsqqm8wMC4uLO7taWyr8TJy9G/wbu5wL/CucG6wcSusrWxs7vAvrOxrqyrq6i2qqWtr6u5sKixsa+xq7WqtrWntLasrKSpqpyjnrOzqKiktLSgta2hqairqKunoKurqLm2qaqqqqKpoK2bkqmhnaCkoqajqp6dprWuqKaqoqOXpaenqpyipKOfmZifkY6PmY5+h4yHhJ6eh4SKio6NkIyEhpWimo6MmpGSkY+Sn5eYlouKg390hoF/f3h1g397eH6AiJ2Pb3FnZ3F4XGBziGpPXZhWSG14VWRWUmJQTVVUVVBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJRYzAyP2Y9Tlg/Qyw+TFRfL0lrN1BFO5WOsKClqq2Zq6WsrrO0r6qlr6mour68wLCuuK6hta/Jx8jRwL69u7zCvbrDwb+/rrKysbW8vMKxsrOqs6iktamlrbOzubCjrraxr7K6q7muqq61q6qeqaufoqC2raihn6+zobSqnqinqqOqoaKsrai9rqyuraGnqJ+rmZCvoZiioainn6ibmaqwqaOfrKKhk6Kjo6eYmqill5eZnY+Kh5WIfY2GhYSkloWCgouGjo2QhISToJaIkZ2Qk5CNkZyUl4+JhYV4dIF/fXV4eYB7dHR6aYGGo3VpXmVsgnVniIt8UlhwXkp4c1NkU1FeTU1SWWZOTFZZZVlGU2lSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNTIjMiknLCUuOy4mMS4wLTE0JSwwTGg6NDhfPWFkP0YxQ1BbWytITzpWQjSQj7GgpKaro6akrKa0s7GqpLCnqri+wbuvp7mqp66wycbI0cK8v765vr+8ybzBuLCwtLG6u7jAsrO7rLisorSmp6yytrmzp6e7ta22vbC8pq2stautnKmvo5+lrKqnnJ6qs6SzqJqqp6mkqZ2jqaepvaqzr66dqaSgrpybsqOVpJykpZ+kmpqoq6Wem6qhm5KboaWdmJepqZGYmpOQioKPhX6PgoCIno+Gf32Lh5COj4R/k5uThZOijJSSi5GbkpWHiH5/cXp5fnxpd3x6dXFxfWiGeISHZGBoY3KFem1neV1eVkJXem1UYU9SWEtMTnF0XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDElGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTtFWj8qj5SxmZ+fqaWkoaukt7Kypaixp6y4wb21sKO5raiosMPJyczBtr2/tbe/usi2w7W0s7Wxvbi6vratubW/raGzpqqrsLW4tKuevLyossCzuqCvs7WqrJ6usKOcpaipop6cpbGmr6CfqqmooqmbpKigrbunrbCuoaujpK6enq2ml5+boaOcn5uao6qimpqkpJWWlJ+ilpuWpqyLnpGQkYyCi4GAj4F7mpWNiXx+i4aOjYuKhJKYkYeUo4mSkoeQmo+TgYd8eWt9dnl4Ynt6cXBxc3hpgXNqg2dkaGFvc41tYmlwYHBBXHhrVl5OUVFKSk1TWVZNXV5tV0RYYE9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDBCaFkxM1M9ZV9ETDZLV2VPKjwyUFs9I5KZrJmfl6ekop+no7ivrqKvr6mruMK6s62fua+rqLS6x8rIv7fBvq+0vrfEtsOxr7qyssC1u763qbm3vauktKeoqrCuubGqm7u9pLDAtbShrre1pqensbOgnqSmp6GlmZ6tp6ieoKmup6Cml6OooLC4n6Kxr6GsoayknKanqZqam5+jlZ2cmp2pppabn6iSmJOYnZKZlqGqkJqJjpCHfYh/go59fKGNjYh5g4yFiYyMhYeSmo6JlZ+JkZWCi5eMkX2Ee3NvfXFzdGB5eGlvcHFvan9yY3psaWZkYWaGf2BbcmpyTU1/aVhaTVBMSkhQUlFJTlxfblNEWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpoSCo+L1pZNSiXnaWYnJatoJ+hpKG3q7GktLSpqLnEtbKuoLesrq2wtcbIwLe/wbmwtL23v7u/r6u9sLS/sb3Duam7urenqLWop6uwrbOxp5q9t6StvLavn7G3sKilp6+xm6CkoKOkoZebr6ahn6Knr6KgopOkpKO3sKGmsaufrKOvmJyqpamel5qdpZObnJqdpqqZnJyklZWXlZyOk5ejqaGQiYqQhnqEfoSKeo+Xio2GeYKHhIiLjoWNk5iMjpaZio+WfoaXi496gHpwcndub3RfeHdkbGxsammEbWVyaWtmaV1kc4BfWmt1aVpJfV5bWE9PSkhIUlVGMjlfXmxQRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbDg0R0FmW0hURFVdaEUuOzJiVSwylqOhl5Scqp2loaKgt6quoLq4pqy9xbOvrqK1r6ytr7TDxLyzv7q3sLO5uLq4u66twLO0uK+/wbisvLq1pqKzqqeps6utsqKcwbalqLW1qZ6yu6qnpqmvrJmip5yjppSYorKkmZ+kqKmcoqCTpaCkuaikp66nnqWhqJKfqaKhoJmbnaCSm5yWoKGrm5uZoZSRlJaajpSTo6ikkIiKj4Z5hHyFhn2djYqLhnmAhIeIh5GFlZOSjJCVlI2OlHuDmI+Ld357bHRybGxzYXh0aGhqZ2ZvhWdnaGNmaWpgaWJpZlple2NgU3NUW1tTTElHSU9TQCEqaV5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc5ZU8nMp6ko5GOpKebnp6do7Wsp6q5t6esw8G2sKyita6nr6+3wMC8ssG2sa6ytra4t7asqr2zr7Kxvb+3rru7saWetqulpbSpq66gn8KrqKWws6qstbudqKqrsaWYnaqepqSRmaatopiepKmhnKKdl6Cdp7amr6quoaGenaGVoKafoaCZm5mckpmdlKWdrKKYl56Uk42Vl4yPmJqpoJGIiYuJeYV3goKCnYeLgol8f4SIhoSQhJaVj46QkZGRjZN7g5WOhnJ9fWZ4b2tqbGd1c2tjZ2RkdX9hZGZmZWpqY2pxWV5YXm1kYU5oV1pgVklHSEtNUlg+OWBsaUdCVFNcW0lJR0VBLjw/OUE4OVJHQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQWZIJTWbpJ+QjK2hmZiglqS0saKxvbehsca7ubCxo7esqq6pub27u63Asq+urbavs7izqKu5sa+utLa7tq+4va2mnbWroKGwpauunqTCoLKkrrGvt621nq2vra6imZ2oqqWelZuopZ+ZpaOonZqgnJScna2wprmorqOhmpqemZ6jmqSdl56Ym5SaoJKolaqnm5ObnJKMlZmNlJSZqKeNjYqJj3yCdIKBi5iFh3yJiYSEioyIkoSTnJKSj5CRlo6Qf4CMjYNvgH9meW5oa2pncXJrXGhjYnJ/YWVoam5sZ2ppZmxcbG11cWFUYmhkZVlJRkxNT1hRUVZhZYFUQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUllQyc0k6Kajo6wnZqToZqpsrCfuMC2oLTCu725saW2r6iupbe4t7esu6+tqqu3qrS5rqWztbGuqbG2trCytbqnqJ+2qZ6eqaKqrZypwJmtpK6wtrWtrZ+xrbCqopuco6yom5Wcp6OdmqmipJaaoJyRm6Orqqm7n6ikoJiamZ6hj2uilpiccYKWm6SAdpGpp56VlZ+RiZeZgJaKoI95hpSNg25qfneDcWyGi4Z9hIuGb15jYGeEl4Zri5CUk3V3i4R+g49/ZoaAaHVpZldcaXNuTlBqY2ZxhGdfZGZubGleX1+JkISGZ09LRDhFVGdeSkdQUFVVS0hTYW90ZUZbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFQZD0rL42kmYeVsJuck6Cbqq6ro73Fr6m3wri9vK2mtrClq6S4s7KzsLmtqqestKawtaOouLa1qKestrKutK2zoqmftKueoqScp6iarLuVpqWvs7itrqWorquspaGenKCnppuYoaalm5unp52TnqCZkJ6oqqO1sKOjo52Wl5iXo4ihjpKah6GHlJ2hf6V/pqqekpKbkoiEcniNjoSIoXaIjWmXiGZ9c3ihb4iHhH6Ne3+hoJ+ZgHuHnnSIjnabimyHgYNtaGVjemxxYlSGbWNsaZhxWGpvboZYXmlba2pbiHBteXKGaIeEWl5GTj5GXk1FUlZWUVFSV1RnXkxYSlJSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxV2E3LyiMppeDnKydmZmdn6qqp6m/w66xury3wL6qpLewqaymsrWur7O2q6mlsa2ltbOcrbW2tKanqbOxrbKnr5+qoLKon6SjmqGjnK61laSlpra9pqynqqqsqKaioJigp6OZmaajpJicpKmWlKKclZOjpaagt6SkoKOYlZOYk5yIro+YlImpi5eim4WxgKSsnJOZnZV5gtSof4eUwZvHeXexpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQeoFslrGrsHloa1ixrm9labySvG5oeW1yj9h+U2pjtrJ/gXGUdZqhqpBXT1dhT1ZORlRbWFFQUoxcV1xQQF1FUU5FR0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVxdNDEhjaaTgaapn5ecnaWssqiwwr2ytcC1t77Cq6a0ra2pp6+zqq+2tKioprWmp7ivnbOytqqlpKexrq2xpqqep6SxpKKhnpeboJ6vrZWeop+0uqKqqKGtrqWinZuaoqifmJuooJ+YnqenkZynm5SdoaeioLCjn5+jlpaTmJKZha9qaoqNqn5nhJWHrWVxnZyUmaWVca6hpH53u3xroY92sV9qtFulgGackWBmgXpmf2p4aqllvnJnpox2smp8sXh0kpNjbW2nbVuEoEVpZ4eWRXWcYH1ne6Sngllfi6tpgZV4emqnN0qvW1dUbGNbS05XX1xXVjtOiE9XVi9JVFRKREVGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5GilYKsp6Weo6Spsbess72+sLfEsri6wqepsKuvqamwr6SwurCkpa6zo6m5qZ6zsrCjpaCqra+rr6ann6OisJyjnJiVl5ucraaXm6GetLOhq5uira2gnpmXoKKpnJmepKCcmaGnpJCdo5qXoZ+sn6anoJufoZaVkZeRmoW1m7V4hamZtZl3h7Obt36TlZWolH5rgaZ6goWIkpSSd6tna7FbrHuPh5R0iHCPhoCAiJCXeIOCi5eMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinS5RoW5bVGtnYExLW2RYXFpCPrB4V1hBI01pRUNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o5YVU1MByVn5SIs6Wmoa6pp7Osqbu2wrC8wq24t8GqrK2urqausqmhr7yqoae0raSrtaWmsrOno6KeqKqyqLCnpZ6fn6+Wn5mVlZaYn62impqkqLWvoamPqaiqm56VmKClqJqfnKOfm6CjpaOVm5+Ymp2jq5ummp2boqCXk5KTk5yD1ZOZuXCwwn7GhnzWlJu7fJmVpY+NnI2ke46HpIKlgnqseY+dVq97iX6farlauXeGhH2mgpN8mHqqeY6cj3uxbY6EdJC8hW+UUK+nxYpRoHpjYKpic3KHbJeIYFO1tMiGgIl8Y6QzQp12XVFqaGNQQFhmWmRhSkhNbEtbU09ZZlpDRD9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREMuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFRNzIlm6KTmLGnqKWzqqW0qKS7t8GwusCxtbW8s7WnsbCjsLOmn662qJuoua6jr7Ggs7SwoKSen6epsKi0qaScnZ6ql5iXlpeVlqGrnpqXqK2wqaOfj6yip5ael5yhpaGXoaGioZuioqebnqGelZmbpqCcp5Wcm5+hmZCSlZGdiLJuaLVxq4dvjqZytHNytnuZmKSMj5yNon6RoKV+sHaDkdLRdlyufIZ/pG+bqqZrhoV9rX2XmY97sXOTnY54s2WWdISeb55mlFLIi1rCXJ95Yl+tX3Zzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPal9saU9VRkk5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkE+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyL6GckaWvrKSqu62mtKWntru8srq/t7a1urqzpbS0obGyo5+ssKSYprqupLGxnbS4qp+mnaKqpLGnrKmkmpyaqJ6VlJiYkpKjqKCXk6aqsaailpOtn6WSlKGbpKaflJqmpqGbo5+tmqCenZCWnKKenKWVnZWaop+WmZaSm4Wse3eodqOOiYepb62KgqeDmJmhiZKaiqJ/k5mJroV/grNccrNSrn2DgqR/cdd9d4V/j52GmZl3r4aKkZyHd7RhmmWagYKUbJJasFhLmnWYeWZgrV52d4dnmIhrXq93lZ6PeGw1eciusl9BVG9eZ2BFUGxfcW1WVU0uZWNpU1lROkFEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6ODifnZSguLCXtMGtqLOoqbK6uLO4v7m3sra9taW4s5+0rJ+gqKuflae2q6ixsquutKSbqaCgqKG1pqaqo5melaWhlJOcmZKVoqWak5CnrK+moJWZqZ+ij5Gimailn5SZpaidnKWerJ2hnaCNlJ+bnqCYmZyWl6Kgk5iRpp2GqX19pXihj46DqnCti4GnhpWgoYmXl4ijgpGIlKp8gIudeW+xWqiCgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pjcnuBa5iHcV2sWomgjmtuZU9KQ6FcWkx0XmJlTVphX3JzX0pVNkqak1lIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOz4wMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT44oZ2Zmb6rl7TCrqutqaW0sLixtb+5urOxt7yqu7SfsKSepaennpSqsamwqrWsq6+hmKGgpqSjuaKjq6CXm5GioJWUn5qUmJ+gj42MqbCvpp2Xm6imn4ySpJeoqqaTl6mnnp+ho62koZ6hjZShmJ+gkp2XnJWeoZWWj6ubj65tcrRyqYx2iqZztHhzs4CRpKKSnI2JpIeQd7hvjHuLomtrtlqghWWXl2mhoqdtk3K0dJOYf7JqhZOIrWp1s2GdZqJvh5Jql1ytYE2hfIeRUnOjbHl/fm+YhnBcr1Y8nHdmVG9uLlynT2JSa2VhbFliXGBwe2NTWVE+Pm1wM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs8MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eODFCOKWam526oZuywK6tq6unt6m4r7TAtbyxr7m4q8G2qaqgm6akoZ2SqqqntqOyqK6qoJecp6Clq7mdo62blpmPpaOVjZ2hm5mcn5GTlKu2r6eZlJysqpeMk6WZpayhkZeqsqSgnqirsJiho5CZopegm5abl6GTnKqclJGrmYfUkpq7c7DDgMOGftWWm7h4iJCXjJiKjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIpumohxbo2kdL1dd31bYXm8a1pWW2p6XmpgZGZibXdvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnmp6hvKKXscOwraqqq7Gnua+2xLG6sq67sK7Bsqylop6joZybkaqkqrKktKetpJ+WmqqZpqy4nKKumJWhkKWgko2co56YnZqQlpOvubCrlZejqKeUkJaknKSsnZGgqKufm5+po7OeoqWOp6KUoZqcl5WkmI+woJKVqp6FkJm2gJCRjLiVeIKTm7V3bmtuc255j4SOiXOewbu9mnuBsqhwf3SRuIN8hoaLh417ioaNl3yku7m9nHV6tKN0dpd1dLB1mZ5mhmmNtXRycHe2jF5/eX2JaIN5bXlii6xwdYV/WVunakRkWVNmYGNdY1FnZnFsdUJOUExEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPTs8p56goL+llrTDtKyrp6yrqbuusMavtbOut6e1uK2po6KmnqCdmZSspK2qprWoqJ+blqCjnqykvqahq5eUnZCim5KPoqiik52XkpiUsrW2rZidpKSii5KRppulq5uWqKSlnJqhqaano6mhkq2fl6OemJeXnZ6PsKmUnKeijmp+aZyneIlzfpqPdHplh3q+vsC6bpKDcZSGX3JqWl6aiWFkh46Va2B/lWNtnHZilGt/mpWUZV5gY3GbimlyjH2GlWdqfnJ0eH19Ylt3dIFoUFxug3x7i2tYbHqCcklKb4VwTXRNRVdcZmBMW1hnY15PW211aXFST0RFTTtISTxMPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqifqKHBo5u0urajraWup6i1sazIrLCzrLWjvrGypqCjqZ2jm5qZrKeupKS1qaWbl5Whm6etqL6nqaaVlJyVoJqTmKWpp5GekI+YnLCyv6ybpp6noomTkamaqKSam6ufo5mbo6etop+qopqwm5WmoJeVnZ+dl7ClmKKomZyRnZyjpJmno5qcmpqakJaBZ219cXeRl5SRhYq1qo2GmJWOioyXl4eUlYqDkpORiY2Rk5iUmJeaoKKanJShnY6CeqWFbGp8kHyAdImKgXGCeHl2doqAe4lqc4F0g3Vjd312a3B7bWBjXHBnTVlZZWpfV1pvem1tZlNPRlM5T1pOUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCyoLOiv6KksbK3oKqlsqelsLWqyautsaW1psCotKCepKWcpJaWoKumrKOjtqygmZaWoJetqaXAnquklZKcl56Yk5Sin56ip5ORmKinssOvmqudq56PlpapnqqcnKCsmKGanKKlr6ahpKierZiXpp2ZmqGenpywoJ2ippWYk5iUoKKWo56XoI6WlIuKjY6WrY98lZuCkoKLqqiGgZiWioSOn4h7hJCGhZmQh4aJlY6bl42QmJ6klpqTkZ2Nf41mobOvhYmEdnqPinx2eXpvZ3mQgYCJa3WBeYhyaHN/enaDiIJrdGN5ZmBpZGJkZmpZa3twaWpcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76sq66ysqCqprGtoqyzsMWwqq2js668pLScoKaioZ2Zl6imqaakprO1npWUnZmZsKauvqCro5CRnpqZlJGVoZyXqZyEnqmsorPIs5+qpKuWlpeap52om5+kq5Sen52gqq6ppaOroa2bn6ChmaWenJ+dr6OZn6iTmJidkaWZmKmempdmg5J8ZX6OmY9jeY1saGt6kaSra2WamH5nhYplZWloeo2hjmtojJeRondraouYo5+Zc2xueoSMh3pYZV6FgV5siomAdlxoc3d3kYCHgm54gniAc215g3R3iIiOg3tqhVlea3RkXXOIaGp8cWxjXVFNV0pkWEBKND1GNz9GRDcxPD0/QUM7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6yzsaqlqK2usKaurbC9samopK2vsZ+tl5+jnqGamaarnKyjpqipsq6elaOQoq+mtrmlrqOPjpqhmZOSm6CZmaWWe6Wsoqizw7ekoqevnp6VnqOeo5yjqaiRnqGeoKqvqqujqp+om6afqKGslqGbpbCkmJyqlaGempOlmJ6rmZ5+voOIcrRyhJ2GrWh4ucS4cZOio3ummJlzqoJ8y8DAu3GLooeCn3yVmImewL2Clp2ejZ3CwXuBe5KNmsPAfWulsW+MgG/Ken+bd5GDjoF3eoF/eXF6f4dxeIWMk3ltdpJiZl94ZF9kgGJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmolKOvqbCvraayta+qpqamsaufq5iaoqCcm6qnop2roqWopaS0o52ik6atrLezp6+ikpGanaWSkaChl5yfnYenq6Srrb/AsKGpr6mXkp+dopmio6qjkqChnZ6trqispqOip6ClpZ6tqZGkm6mtqpydqpysoZaXpZaho5icf86UeXqkgXmVlptfro9ejqeBoqB8p5WbdKuDgK9eY42peqeHhaB0l5KIs2OCq4ahjo2zaoSudH2Wh7hhgq1Zo81uj3V72nt/mXB+iJN2f2V7iHZ2a32Ibn6FkZJ+bYGOYHFrcGdgX3hkW3BoamRmYFJUUldeS09DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcLAv7W0sLiYnpGkqqittKumsqytrKSrp7CqoKebmaWXnKKvn6CeqKejpaGfsKybnpWnrq2xq6isoJSSm5+lk4+fpZeeqKOerqSrsKjAxrOoqbGulpKdnKKXoKmqnpShn5ydrq+nqqmbp6ekoauSrbSWpqKrqp6jp6ahsKCSmqeaoZuUlJGXoHCFjJd1hKiHcbF8nXGsfqGegaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIooyRi51+q3uJk4+fgHutVpzEeo9vksF9gZVtdXCMbWV2ZYZvYXducm+JipGQg22Qj2RvdHVwYGdtZF9vaWluZmNXU1xhWlJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK7DUxsaytJ+do46jo6Gtr7auqLCnqaqorqurp6KknZmilZ+mq5+ipaCoqKKfnbCsl5qWqKevrKinqZ6XlJqjopKUoa2bnaajr6yjrLWqus2xraeurJaUnJ2imJ+urJyWoJmdnqmxqampm6upo6Ksm6+xoqisrqaZpquqqrGikpejpZuUkoWkaqR1iXqpdHqycIKliZmMcYigmoekYGBSrIR/roObdq6BpoaGn3qYloZ7ZoCjiaSZhoGjfal+gZSHrl58qVWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojYyYj4FtmpJvbXl3d29sZmRlcXBme2hjXVdgalhYVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys2NioxUEtMIyBBOUQ0LCfDydbVwKGZq6ihr6KesLWwr6mso6imqqqrqaSmoJuknp2lp6ajnKyaoquhpJ+vop2akqqktbCvoKmbnZaUp6OQmqKon6CmnLGmo6exrLbIsrWqrKqVkZycoZmfpbOdmqGUnJ+nq6ujrpqsqaKhqqOzraKqs7Gim6qor7C2o5OWpKeYm5F8qmyehId1q3l8sG+CpIuJn5aVn5SB0ri0uMmAgbJfX5Spg6SIh6B5mJWaeKrJdJmjlaepkJKbjH+biZrGxnhloYKlc4GfjoJ9r15wtWOxdUujhm2nR4KTZI+QnpN8cJeSf3B6dHx7bVtmanJxZoFqXmJZY21cXllJTUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz4tNU9UUR0cOzxGMiwkp6TBxrmtqbOurKWinLK5rKqhppuopqqsqaagpqWYq6OfrqudpaCsmp6opZ2mtZ+il5OoqrayrJulnaCVkKWtkZmcp6OgqqeuoqOnqrC0wrKzqq2ok4mXnKSaoaOuppehlZicpaarmq+draimnqyjt6yhsrmvnpuvp7O0s6WUl6ejmZ+Ogp1OeJqBf596hKN8gqSEh6efnJ6ThLh7fHm5gn7MxsK2eJuhkYuffZqWl4p2npiKpJijqH6whZyFnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkaOXfH6SkYp0enOEfnBbbW53cmqBb1pkX2huYmRdS01RVEJJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamspKu5q6+gnKGss7Omn6CVpa6trqqnnaammqOnobKuoqimsqCZqaSUorWio5WXoam0uaSbo52jk5ChspmenKemoaKvrp2kqKK1ssOxraqtqpGHkJymnKOknKWXnpmZmaWkqJquoa6lppewpbytobe3rZ6etbK5sbOnmJ2voaOeho/RtcO3eYeOhZGTj4CmeJSid4ygkoSlgYpxqoaEtG5yapmjm5WKn3yYmYaHj3OvgqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5OmmH6MjJOKd3x5jYFtaXhpeHNuf3RdZGRubWZoYEpaWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWTc42Krb+/u7q1npeopK21oaOZlaOpp66qq5mlop+loKC1pqKop7CjlKujjqSto52QmpqqtLSknaWdqZKUl66goJ6npJynnLWaoKqjtqvDsKmrqaKMhI6coaCmopWam5yZmpmmpKaYq6etoqWbrae+rJW+sK2fo7Czuqy0p5uosaSnmHqokH18sHeKgaSliJxtsm+hh618oY+DqJWYgKyIha6Fn5SpoKGWhp+AmZWAe5J+q4CdmpaKqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrr12la3GFmV1gW4ygbpWRppmDlI2Wi3p6gpZ/a2x/Yn10bX96YGdlcW9oZ2hDWWBbPUtUMlU4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaV1NQT05JNzA1Mi4qLEFUVlZWVVRVVVVVVFRVVFNUVlZXWFZVVVFIRklKIygovZKahKnGwrfBtJ+brZ+uuKWkjpuko6Cvr6qfpJ+drZieuaCiqqCvqZmtoZCqqKSWiZuQrrCspp+nm62YmI+soqGdpqKapZ2tmJ+oprapwK+lqqSfi4CNm5qgpp6SlZqalJqapaOjmairq6Okn6movqSXw6yqoqGssrqrrqegs6+pqph2r36Qi5yFh326rYqYZbCMZZWtfaGPg6aVmoGsioSwhaWZpKGhkIWgW2xqgbNgf617e4KAsWxnbpmXjIiwW320W6SDa8iiZZ+Ae7xZdrVasn1Sr4B6rFiAoW2Yj6iaipeQlpZ7eI2cfWRzfWKDd3SAfGFqZnFuZmVlT1VjW0JUXj5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFBSVFdaXl9gYGFiXl9cW1hVUE5KR0M1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjnK2mpbaooYuaoJ+ds7OpnqOgnbSYoLOoqqudr62dq5uVr6mijoibjq+sqaeip5muk5mPqJqinqWfmaOjpZmeo6myqLyvpaienY58i5qVoaCZkJKam5KZl6ieoJioraelpaOlqbufoManpamhq7S2ra6nn7ytrayVgamSo6+Pm4CGpJeYkIGAuMO6g46dk4Wnl5yCrIqCr4imm5qlqpB+1b3CqmKjv719fqOCg9e6uLWFlJODnr2+hGqjgW+rhG2df3qysMeDaquwva14d6K+u3SAlo6mnI+akZaceYGQmnljfXpkjGZ5gntga2VramJQYltTalxAVGFCTik9OjQvHh8kHiUyIB0kKDA0OTY2Nzc7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbO0sb+5sr2zop2upqWzpp2LmKW+qbexqKG/pqaym56xnLmonq2upaaVlLCsl4yDm5GupqOsoaScqqGYi6OSp56onJqhqaKZnqCrram5rqijm5eTe4eZkaabk4+RmJiPmJOpmZ+Yqaigqqaho6u7nqnFo6Cvo6uztauwqqC7qK+vmnN1qqS3hmWJn3BnrY+Kj21vd6SQmZ+Bda6ZlXCPi3GVp6ObmK6kcm1tbWWKeG9tgplxgHlpcWlniZaVmHFoaYSGZ3CGZF2JY2pvWV1nfnemYGJxjpJvZmSAjZKOopiXmJCVnnyHjpR1ZoZ3aI1qeX55ZGxjZmxiS2RYSmtZOlFlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6q6ubKzq6mirp6jsqmYkr2xw8i+tqqewKuso6CnrJ+6o6StrKymjpauqZCMhZWXrZ6mqqKfo6OgkYykkqeZqZmWo6qglpylpaevuqusmpuSknuElo2ll42RkZiUjZiVp5Sel6iimrCmnqKsup+wwaeks6assbKrraunuaSuuJaKoailtp2JlqKXh6makJSdk6qzmZujq6CylqKhnaCinKCkoZWrpoySkoyHkpyclJCak5iQjZWGgaSZl5WNi5OSio+GhH5nin90gnZ0h4xxp2x7lZGUk4GBj4+Pj52UoJWYlqCCh5OMcGiPdnCKd3Z8empsZGRvY1VgWEBpW0hjYU9aK0Y9KyYhNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRGSktLTVBQUVdUVlleX2FjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbeurqKwpK2foLWxkI6rxbzEu7iqoqWdm6WdsKmjtqedqbSmp5GYrKKLiImPnKeWrKShmaeenpOVo5eomqmZlKaho4+ap5mhtbqoq5makI18gZSLoZSKlZGVkJCTl6WPnpmon5y2o52nrLenr8Guo7emr6+wramps7mhr72Zkqajpraikp2mno2pn42Sn6Osr5qho7Gor5ekoJyjqZ6enZyXq5ySmaGbk5CWqpmNmZmWkJWekYmgnZWUhZKMkIyUioB+ZoyGdYZ2eYiDc5xqhpGUlJGKfYyWkpKYk6GTnZagg4eXhnlxlXJ5iX9xe39qbmRfcGlgW2BZbWNQYGRQWzpHR0Q9Mj09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWNhYWFgYmJiZGJcW2OXlaSoo7CzrK6jqaetoKi1qpCQnaSzu6+srKKjmnqdorGkpbColpu4pqKUmaqcjoaKiZyjkK6fo5aooKGSl5ibrourlo+omqiMmKiPnrm2pKWZm42JeYGTjJqTipWRlJCNkZaijJ2eqJ6fuKR/hK+1orCvdKS+o7KgeHqfqbK7lXatpJ+KgKp+ZFxidp+OpJ6El35uk7Oco6euq6Jlnp+Tc3mZl3CAmKiXbH+ip4llnKWckZeYlouRm5GGnZqQlYKSh46OkomFd2uPh3aGcXyGgIBhaYiLlZOLW3aVkWdokI5ye6WYmGR5mIaBd5dpg4qCbnl/a3BlYHZva2toW2ZlYmJvU1s+Tk5OUkc9QFRCOTEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJGRklLTFNUVVlcX2hmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mm5amo6GwsayrqaWoraOnraSSlqu1r7Gmmqqmq5dzjJyvn6iqppSWuKCgj5yjnZF/iIibno2rmqOVp6KejpeRnoV1rpCIppqnkZajiJu6tKigmZiLiXV3k42Wk4qUkZCUjI+ToI6an6aZnLKWgIyctZ2zjJKPvKehfqeieqKut4GOjqaehIuFj7Gpr4yJlqOaeYGLrIacnaKnqaiHlYaYdqWbeoebgZemgoF7nLF6ioWgl5mUmJaBkJaWhJmZY3mHkISNj5KKg21wj4d5gHGAgYV/hnSGhJaSeJZok3SgmnR9mYOgnIaYfpGJgYOYao2MhWt4e3FwZ2R3bmlsa1tla2plc1teSVRMUUBFNS5ZVFU2KSEwOT0+NjQzNTY4Ozo9Pj5AREg/SUVKS0dSWFpZW2FhaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyYo5+mrq6rqKygqLCmp6mlmZSuxr2woZamqLWej4Ocq5ymoZ+NkL6emY2fmqCQfYWOmZeIq52ilqChko2TiYaAkaiOh6Kco5OWnYafubKnnpuSjoVwdZCJlZCKlI+Pm4uPkZ+Slp+klp6siJ+0ibSarYrKh6quiLeFjbCDsa6DqY2mmI2dfKiPcnt3m46mlmiVpHm0i5+epqiSmcKBf6uImKFxnoCZpH2XhZWxgKF8oZSgkJiWgI6Tm4qXkYt8hZOGjZWTiYNtc5GFf3pyhoGEfIR0hYKXgY/FZoCph4+ja56DoZmCmYCLjIOJmHCOkoVod3R7dmdodXBnZ2xeY29sZ2xYZ0ddUUwyRTQ2TWBjNyYzPERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWV1jZmhnYmJiYmRjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5sKqrppqUoKOkqqOWpKm2o69/oKecpZ6diZO8mZONoJGdkHmElpaRh6uZm5uaooWPjHebnI+gkYiepJuVmJeGoritpZqcjIx/Ym2Pi5OQjZCMjZiLkJGfj5OfoZmhqH6hp4etnaCWro+enZ2RhoGgjauvhqSNqpqMmn6idoCZk2qBq3VNq3iHjZ2Rm6ingKqrfYOhe3qnaZ5/kmtnl4aXtomefW5gZFmDln6Me2RoinKZfXmVbF17l21fU3CEXF9seYNgWWWCfYSBmHGnqmuDo25ypXCfg55pZZ9sW22Je2VZX4N/YldQb3ZlbXRyampvXmpvbWxpWGlPXVdFOUE0R0NeazQsSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKhtryrrqKZl6Chpa2toJyttaKokqCfn6abmY6YtJmQip6MlYt1gZSRjYqmlpWYnp9/koWGrKSHnJGKmKiXmZqRh6WwpqKVmoiJgGluiIeLjo6Ki42Si5CSooyTnqCcoqV/k4GPo6GUoHeclo+ng6Gnf4aprYWleYp9hJp9onByk4eVep2MeW2HnIyZkJuomo+HnXyConN2pmaefnakX5h6fZJzom6Yt7S6c5KHgX+1qGSBxrh7cJW3i3GAm6Rjc6yrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN/pF+dmbOVcHyXnrR0c1uesoNqYm9zdXFob1hrbHJzZlxpXmJLRD1ENVFBWXEzPVNHX0pSPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWldgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6CNpLi1rq2gm6Kco6Olrpybsa2sk5egmKCkmZqTnqubi4iReIuFcICWjYqPoJCTlJ2XfZCJjqigh5iPipGik5uajIuoqKSej5aHhH5re4d/fY+Ng4uQkYmPlKCClp2gnaCfi4l3nJiijKByoouIqYicppCWqKt/rox9eqCZeqOTeIBzloeMnH2WoIebjpmbpoaiZKF8iJaQm41snmibjW6amXuAiqd9cmhzqYKcgnOqZ5SaXZuFdoSdaKpqgLhmXKhwgZxhlYxep3Z1iYp/nmiadYeTkpiOf59umpBsp5lcqH53u2t+qluOhF20Z1xucXl3a2lbcWp4eWJfZlhiQVBFTjdWQlJuNEtaWl9OWkNAMTUxOzs3SD86Q0dUP1lSWV0+RGJeVmBRYWN9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtpuoiWOUm6y6srCsnaacnKifnq6bnbCoq52Xopmhn5iWlqCjmYaJjGqIgHF7l4iLlpaEkZSYj3qKhJaknYqUj4WLnZGcm4mPqKOgmYuRioCAaYGGeX+XjHuIjo+Ij5aaf5Oin6Cik5hyaJ+Kn4+McJKMgamImZ+jqKCofbCto6K4l3ejs6Kjf4iUeJ16q5p/oo6dm5eJl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8mnycmX5zqlpdb3uWi3ieYkx+enqFY3mXQk2fWaJqcXyObYGJhJl1m3mHibGzf3+bk6d1gJ1tcXyUb5lyaqRdlXZIZWNgc3B9fW5lYGxodnxjZGFRXlZdVFZAWUVRZ0RTV1tiWF5JRD1COD9COklFOExEV0FWUVtWREZiXFpgS2BtfnFFQzxVX2JaZWpWZ2htb2JmZl5hYVxdXmFoYl9lZHZsXmVnZmtkZmxpaGtpk52Asa6ZhFNfoKezubOzqZqijJyrnJypk6GrpKGoj56dnJqZlZihnZaHhol3hYFueZWFkJqLfJGTlohygImToZxzkZCBiJiUn5qEjqicmpSKi4p8g2yFhXGBoYx4hY2IiJKZlXySpKGfo4iuhn21hI6enXullnqpgpadkIqhnX2naHZtfpl0oXNxfJ2FmG+Tgq59pIOmnpqBo29eqGd1o2NvpWGc05B8epl4cnNjo4WQfqJyoo51a4+zi2CCmIlzqrKovH93g21+vqaptF6cbn1xl2+Bc6JyXaNndKZhaKZtm9SZfIObb3d5l2ubeneXc22ppGdgZXlwf4NrZ2ZkbXV4Z2BiU1tlUVFiSVdJVF9XU1tlalxkUEVDS01KS0JKRThQP1BNV1NYT1JSYGZlaVJjd3l3SUZFY11kWmhpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7GrVFxLfqmvsbSws6OcmIWYqKCgo42kqKCYqYmZl5iTmZKSoJiOh4V7cH2EaH2PgpSagXeRjY6Jb3+GkJOSbJeUfYiQkaOVg46qmZSSioWJeYN2h4Bugp+Gd4CThoiZopd5k6Kkmp+Js6Gitot6rKekrqVwqYGakIWBnJJ8pICimYaYcp6Eoq2uiZeLf4ykjZaDrqKUdrW2tcmhc5SKgZ9gnZepbXmVhp+adaGHd6B+kZaKgG9MZqOScJqHcqR7eXRhg4JsfqBrcWRgnHJ/dJdpe2mztbTGpnOYfnudapubq3WDmmx0d5dpmnp1mHJQRH2zXmp2a3iHZmpnYnR0cW5WXlRZaE9SaElVTFlSVV1oa25WZ1dNSkFKTUtISk5BUUpQZGNpbWV0cnN+eXtudYl7e1RQT2xeaFtraVJqaGlsZ2xmY2VfXF1cXmliZGhre19dZGhjamZvbWVpbGWhnImwp4RmP5Shsquvr7Wio4+Al6mioqWMpaednKWCmZeWjZeQj5uSjoiCeWp5hmWDjH6WoHl1j4iMgWmEhZKDjIWdjXqMipSlkoOXqJeMkIqBiXqAfYt4cJChhnmBlYeJlqCWf5SlqJyWloRnbnicbKJkfHGld5yYcGengZeMe6V6n5aDl3KedoGJlJaPuW6QiqJifZmilYhtcmmranWgbW6mYJtpi5BoloealXWigH2aYIuFjHVviGJooGWefmmadW9jZoiCbnKiWl9bY6FuXYmMb3t/c3JkpW13omRnp2iYc4uYbqFvU4iPb6BfZadUi11UmG1tc2txgW1waGt4c2tvUlhXVmZZU21JWE9dSFhpaHNqWWtWUVJFVlxMWFJhVGhqXnd1enxwfHxyg3t/cnaNgIR2XlFyYmdicGdQamhoa2xuZ2RnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKWZpnpldG2Lp66kqbCxpp+LgJernJ6ljKKhmqKigJWYk42aj4qXkI6Le4dxgIhoi4t7l5pzdIp9kHtkgoeVioqVmYJ8iIWWpo+BoauQhY+Jgop9gICPc2iPpoR9hpSNiJigjoiSqqediaZ4lpx+pYmWjLKYnpCDr5efpXiWiHqpdKWPhJpupKKMkoSMg7xufKWvgoaGh5OWnJ98pXpxqJWglmeefm+rY5aKlZJ3qGypooGJdYeCd6uRpohrkbBrdrOMqWuKhm5tn56SlWF/q4uqdoB/jKafd599haWVnaBpmod2rGeerYy3c3e+jaSTWYOmjathdXJzb3t0cWJqfm5obVNWW1VhYVxrTVxSXUldbW13YFtxWVtgWmdzZW5vcWNxdGB3en55cnmDc4R/gHt7jIGCgHZieGRjbXNkUmxnaG9scmlmaWFfXlxia2JtbHpvXFxiaWJsandtZ2xuYpWmqp2BgJ6klqmqnainrqOZiYKXq5qepImapZ2pnISMmo6GnJGFko2LjHSGeoiEb4yEfZeTdHSGcpKCbX+LkoeGlI98e4GFl6SNf6WljoGNiYSUdYKHkm9si6mBg4uUjomcn4mNk6ujoJCAdZSXiH6BeZSuo3+Bm3GPhnmQjIR/e3KmjHF9fXqXlpuEjnh7fn6IlJWTinaQmJ+gg3p9iWyMhVt5eHF5cGhufpKJcX90go+Uk3GFhIJljX9fgX+Ld3VzlHVveW5uh22Ehl53aXiNZoGCho6pm350fJdqiYhwgHZ8hXZtbGeMc3l7mHiEW2tYeY9obndycW93eG9dbIZuaWdWWmBXXGVrY1VhVV9RX3B4eWxrdmVqa2p2fHFydHNhb3Vic3uBeHV5gnWAgH+AeIuFg317bX9sZHhuXlduZ2h1a3hqaWpkXGBaY2plbHB1blpbYmtkbGx5bmhsb2GOlLmpp4uhopqmpJmknKuioISEl6ySnaCJmqaaqJiCgZuKfpaTh46JiI1ygnyPfX6OhHqXj3Ryg3CVhXt9k4uGhpCFeH5/hpiijHumoIuFj5CElYKGjpd3coWqho6SnJCInp6IjJuooKCrg4mOlJp+fomWraiPk6aQeHCdkYN7km9+qIVwfZVxa3B8gZ+Lf5KOjGhtXYOLjJubno5zlYuIcXRrgnZzgFlyboeQgX1+jGpdamR7hYOIgF9peHube4KLgnaBhoJoeYuHa2FxcoN3X3OMgomQp5WGZoyPg253i4RwhY15b2VnZHqDepZbXGpnbnZbe3h3dG1zcoJmXG2Ka2xiWVleWlhscVtfYFpeXWZ0fnt1b3Rja2tqe3xye3h0ZG10Z2x7fnZ6fHt6en9/fm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtoa2pxcm1XW2VubGdzem9oam1gjIyqsaKQo6Ganp6YnpmooqF9gpitjZ+Uh5uikKWVf3uXhHySmIiIhoaKcnyAi3aFi4GElYpxb4BymIaEfpKEg4aKgXqAg4uano+CpqCGeI6XiJWLi52XhIN6rYKRmJmUip6dh4ihq6CioqOLiJObnKOZlqqhp6agkpuIl458eI6OhKd+f5KRkpOcsaablJ6QjbKTmISljIyVm5+JkJuCiZGKa3yNdndlgoWQinyJnYSHi4+IiICFhJB3fHl1mqGIhoqfi4WUf36MgYB2cHSGhH94iIeLkKaQhIWNiIONkIx8h4qIj4F2bIKEfHmZanJoYXSKcH16d3Zvd3SBXV5vhmhuX15aXF1TaHFVY1tcYWxodXx8c29wZGtqaX97bXh/cWlvcGxmgHtygoB4f32AhHptg4yGfHp4fH16g3lOZHZrc21wemRrZWJiYFt0ZnBmcnJtVV1sdG1oeXpxZ2lrZY2InbqflqKhmJWZmJSZpKCee3+Zq46ejYWfnIqelnx4lIJ7jpmJhoSEhm14gIBygYd+iJOEbWx+epeGhIOQf4CGhIZ8h4ONmpyShqmeg3KKj4WSkYudkX2Ne6qEjZKYlY+cl4aGm6egopqdhoORmpmZkJqmoKadnZCWgZGKd3yHjoSle3yOkJGGmKmhnZOcj42qjpGAnoyJk5qego6XfoaNgm94hXF0YH6Cj4Z1i5eAg4+ChoR+hYOUbnl1dJKii4yFmoSEjXSAinx8cnJ7iIR7eYyOhJOnj4aEj4GEi4qKd4WHiYt8b2t+gHttaGxtZ155f2h8e3Z0dXV7d1xgcH1udWBjWl1eUWZtU2VaXWFqaXZ5fnFrbGRrameAf2xzgGxsdG94boR5boeAdoKAfYR2coKNiH57e3x/e4KKYGl7anVoaYJkamNgaVxkdWhvYnVubFRjcXllcHp6c2VpbW2Lip+3mqGjn5KRlpeLmp+fnnt4naaQm4qGpJSLmJl4eo2Fe4mRg4yCgYJtfH54c4CFfYqQfGtofYGXiIGIjnx+hoSHfI+Aj5qbkYimnH9wi4qLkoegoYqFjHyokYiPkpeTlpN4jKOhoZ6Wmn+AkJqYk4ybo6GkmpeRm36OhXmAg4+HoIB9jIyPfJekoKCSmZCPpo2PgZuRiZKXm36Skn6GjYF1dIJwdmB9f42GcoqVfIiLcox/goWGjmh3cXiMmJKPf5d+iIpzgod8fHB5e4yFenuRjYOWppOLhpF8hoeHhXWCg4iHemVye354enBsamZefXNofHV1c3xygGpeYHR2cHhkY1lfXlJraFRkWV9hZ2p2eIFxZmtjbGhlf4BqbX5obnFrfXeGemuMgXOBgX2BdHaCjYZ+fHt/gX1/j2pyg25zaWGHaGxiX3FWdG9tbmB4aG1XanR2Y3V7e3Jiam55iY2fspKlpZyOkJiPhpygm5x8dqSgjZd/jKKKiJqWeHuGh36DiX6IgoB/cX96dHWChX6JkHhnY32Gl4qCio14fYCMg3mWgJWXlYyWn5p9b4uBkZOGppuHjImEppWFkouWl5OSdpGeoaGYlJd6fo6Yl46Wm52knZmTlJx6kIWDeISXjZ1+gYmNjHOXop6hkpiOj6KMi4OWmIOSlpl+mI18iI2BdnF9bnpkf3yKhXCGk3+QgmyHgoF/iYRldW98h5KXjX2TeIuJfICHfHtxfniKhnmFkYqLmKKVgYSNd4mFg4J2e4GJhnZfeHd9c313ZmxkYX5pandzdHR9cXxiY2FzbnVzbWFaYF5ba2RSYldgYWhrdXiGcGJqY21laHyDbGh0aGxvaH98gnltkIZxgIODf3N8g4yBf356goN+fJBtdoh0dG1limxqYWN1VoRpcW5geWdsYmp2cGZ5fHpxYHJshoWQnK2XpqiejY2Xh4afk5eYfXeqnIqYeZeci4uYj3l7gIt9fIN7gIKAeHR4enN9gIN/iIuAZF59i5WHf4WHdH19iX99l4SWk5aMo6CXfnKHepORiqePjI6Kk6CRg5GQlJeRi4GPmKCakpCRdH+NkpSJnZ2ep5iXjZWWdI6PimyGmI+ZeoeIkIlvl52ao5OVio2fjIaBkpx/kpKVhpmIfImJgXpxeWt1bHt9i35uhZKClHdvgoN9fop/ZHJqe4CWl4R/jXSQiYN5h351eIB9h4F9g42FjZSkkHiFgnSJh32Ac3WAh4NuYHt1enF8b2FuY2R7Ym5vdnJ3d3N0YXZfb2x1bm9cW19dXmpeT11XY2FobXN6iWtfamVqY2h3h21mbGhpbGiAfHp3b5CHc4GDhH1zgYaJeoJ9eoGEfX2OcnqKeHhubIdraF9pcWOHaHFvZXdobmxheWhrfXt4cGF3bYuBmZqqoKSonYqKkYaKnoqVl313rpiMln2ek5GWk4h3fXuKfHyAdnd/gHB0c3pvhXyBgIp+fGBcfo+Rhn+DhHN6f4Z6j5GHkZGbkqSblIF9gHuNipKkiY2KjZiajIaRmJOWjomJjJOdk5CMjW6DkI+RiZ6ZoqGXlomWkW+ImoRnhpmOk3qJhZCKcJWalKGSkoiLmYyCf5CefJKPkouZjnuKhId0c3VrcW51e4t0boWQjpJxdIB7gYGIfGRxbHl9mZR9hIh0kIuBdIh5b4B+gYd8hYyJhY2VqI17iH1+i4V3fnBvgIWDY2h4dHVve2JecGBqdF5xanp4eGxycGV4XW1sc21zWFpeX2FqWlBXV2VjZ3Fxf4dmXWloZ2JncY5vZGlnZWpogHp3dG6OhXSBgYJ7dYKIhXeFfHiEhXqAiXd/i3t6cnmDamtfcGh0gGtyb21xZ29sZXxjboB5dnFsd3eKf6KYoqihppuHjIqBkJyGk5x0gaqUko2GoIyWk5B/dHt2hXd4f3Jze4Vrcm95bYp2gICGbnFbWX6RjYh/gIF2dYB/f6CGj4qRnJegk5d3iX6AjIidnoqPhpKYloWJlZmPl4yLjY6NnYqOkINtiIqQkYmclqGbmJWFl4hqhaODZ4adipF+i4OLgXeTmJGekZCIiZWNf36Pl3yRjY+NmpJ8in+CbnZwbG1ucHuFaXODjpeKcHd/dIKJgnhmc292gZmOfImEepSReneIdHCJe4aNe4uGhImPnKOIfIR3gouAeHhuaoCCgV1yc3Fwb3haXnBgcGpeb2l8eXBtbWpsdmBwb2pybVlYYWFhblhRU1pmZ2N1cISCYl1qbWRiZmuSbWBmZl9oaoF1cXJwi4B1f4KAeHWAi4B4hX93h4Z3g4V7hox/e3aKf2pxY3xihnxvcWx0amhvbHZ3X3F/eXt0dXSAgn6klZqtn6eWhYyDf5eUg4+fdYqflJKGipuMlY2LenJ4dIFwcoRzcXWIbG9sdW2IdoN9f21uVVGBq5SHgniAdnKCeYGggZGBkpKXm5GaeJF6goySpJqTjomVmZKEh5eZjJSMiY+PiJ6FkIp8coqFiY6InJqfm5aUf5R/aYadiGeGoYiShJGDiXGDkZePmo2PjIuPjXd7kpB6jouMkZaMfIh8gGt2am5ra2x6fmF5fo6VgXZ6gHeDjXx5Z3RsdIeVi3+IhnuUkHF6hHB3jHqKjXuJfoOMkZ+dhX18eIKMfXZwaWuBgnlfd29ta3FzVl5vYnFhX2xueXBncGZmc3RocWthd2VdVmZhYHJTUE5cZmVdeHCIfF9caHJiYmVmkmlfaGRbZ3B+cGtwc4p9dnyFgHR1f4x5e4aBeIiDc4aFfoyMg3t5lXdmcmqCYIh+b29remBqbnR/dF90fXmGeHRzhXx4oI+ZsJylj4KKf4OaiH+Lnn+KmZOOhIiYjo6PhHZ0dnOAcG+Fc3Bxg29raXZtgm59fG10c1JOgt/IktaTfHB0gnWDn4KTd5SQmJqPmHuTcoWQn6GTk5CJk5uUhn6WlYiNjYiRjYicgI6BeHqMfoiMiZybnZuVk3mNdmiJkodsiKOFkoeXg4ZjjJGYjpWJloyNiotxe5SJeo2IipKRiXmFe35se2Vyb2preXlbgHmPjYB6fX5/ho56eWhza3OLj4qChYV9lYxsfn9vgIx/jId9hHmBj5aamop8d3iDkHlzbWZwf4NsanRvaGlzbVNeb2RwWWBrcXdma2piZnhycHBjX3hgYFZrX112UE5LYGZjXXlxiXRdXGV2YGFlZY9kYGZhWGlzc25rcXaMfHR5hoJ1dn6Lc3+Gf3uJfnKJh4GQioh8fph2ZXNte2WHfm9wbIBabG55eXNhdnp7jXZyd4p3eZ+Lm66boJCChXeIlX58iZyHhZ+QjoWMl4STjoeBdXdweXFuhG9tbn5yZGR4cHxten1qaGxjpJrB3K7voXNrdYN1hKKFkW6Vj5Sfk5uBkXCFi6OXiY2VipCdloOAlZCFiY+AkoqKl3+He3V/iXiGhI2bm5iZj492inZuhomLfYqjhJGJnYWFXouUl4qOiI6Li4SJbHyWgX2IhYmQj4Z2hX19a31kd3VqbXhzV4h6kYaFen5/gIWLfnhlc2p/io6Kg4J/jJaFa4J1boiRgpGFf4J5f5CWk5mQdXR4iI11c3FndXmCYnRtb2JodWdSYHFnbFVfbnR5YHJjX2h9cHJuW2NyYWJXbllcd01NTGRmYV52c4ltXFxkeV5gZGaFYGNiXlhqcmtua3J2jH10d4SBeHd7iXGDhH1+iHt0i4mIlYaMfn6Yc2h1cHhsi3pudHCBWHF6dnlxZXd5hoxpdoCJcn+ch5innKOShHxwjJR4eYudhIWhjY57lY1/mYiEe3J3cHNqb4FraWx8dF5geHZ7cHV7Z2BlfOvatcnD3IhzbHOAdoqaiI1pl4+OnJSSgYhwhYigjoWKlYqNmJR8jZOIg4mPe5GLhpCCf3Z4g4Nyh4KSm5aUmIaMdod/cIWCiYeZooOUjJ6DiWGDlY+GiYaJjYeAh2l9lH99g4SJjo2CcYZ+f3F3aHVyaXN3a1qMfZKBhXx/g4CEioJ1YXRsiIGPi4J+f5KRfW6CbHmGkIaThH2BfH+Sk5CXiW9yeo2GdWxwa3J4gF9zaW5canZgUmRyaWZTX3B2dGBvYF1ognFzaldnaGNpWG1XW3VMSkxlZ19icnOFaVtcZXleXmRne2BkX1xZa25lb2pzd4p+c3OBfnp2eohzhYJ8f4Z2d4qGj5iCjIF7k3ZsdnV4eJN0bnh6fVh5hXGAb2d5d5KCZHaGhXGKloWZoZuiioZzb5KLcneOnH2KmoiJe59/g5l/gXhxc25vZHJ+aGZsd3dbX3l7enFxf2lhZ2F/1baOkKZ4bnF3e3CSkIyHapiNiJuRi4V7aIeLmYaBkpGGh5iNfI2NgYGJjnyQjH6KhXp1e4J6cIaAlZmOk5SBiHWDhnaDgIuTnZ+GlY+ffohhf5OHhIiEiY1/f4NnfZB/fn+Ci4+Qfm2CfIJ0a212dHN2dWtjjYGOf4V+fIR/hId+cF9zcYV8j42CfH+SiXpxg2Z6hIqHjIN8hX1/lJCRk4RucHqMf3Vtbmpsen1iaGppWGx1WlJpcmpiUWJyeGxhZV1aaoNtc2JcZ19kbF9uVFpvTkhPZ2VcZ25xf2taW2NzYFxjbHdkZV1cWmxsYm1qc3aHf3Fvf3x8dHiGeIWCfX+HdXmJgZKVfIiGdomBb3d5e4STcG18gXdeg390gW1pe3OUc2dyiH1ykpGDmp+boIaHdnaUfm12k5d9h5CDio2afIuadn12cW9samF0fGdiaXV6Wl93fHptcX5lY2hoV52PXnFylrzDg3VxlIiQfnKWi4ack4yHcmqIj5aAe5SMgYSbjHyLhn18iYx/lIh1iYV2d32BcXWGgZ6UhpWPg4Jyf4h1hHyJmJ2Yh5OOnYCIZn2Tgn+Fg4mJcoF9Z36Le3h+f4eLjnxpgHyDdmVveHhydnNsao2FioGKf3iBgISDf2tecnh6fo2KhXuCj4B+coBpeYOHi4aEeYR8gJeNkIx9bm17iX13dG5oZ3x2Y1xwYldvclNTbnNpYU5mdHhlYF1cWG6Ab3NZZWJdam1gcE9Za1FEU2dhWmtubXtuWVtebWNaY293ZGZcXWBsamNsanN2goNxbn57f3R1g3uDgnyBhXZ+iYGWkHiDinSBiHJ4eX6NkG9vfIFxaYF5en5tbXx2lWtqd4R0bJSNhZ6YoJmFiG59jHZqeJiOfoGKgpWXinmOlm96c3BsamRgdHtoX2Vxelpgcn15Z3F6YWVlj7Gyd0piWqTZ0JZxe5CKkHd9lIuEmZGLhW5rhZKSenmShoCEmIp8h394eImKhJaAb4yIcXR9eml5hYOlkISTjYN/b36DdoR5hZuYk4uSkJSFh3B7koJ9goOJg26BeGiAhXhyf3+CioZ7ZX1+hHVjcHJ/aHhwb3WYjYWCint2eICEeYFrXHF9coGIhYl9hol6iHKBbnGEh46EhXOEeICZjY2EeG5vf4R/dnplaGp9cF9Zd1pYcW1OV3JzZ2BLbHZ0YF1bW1l0fXJvV2ddZmpxX25OV2hRP1lnX1twamd4cFpaWWtlWWNweV9oXF5lbWhmbGlxd3+Hb2x/fYB1b4J7f4F+gn92gYWJl4pxgo1xe4Z8eXmDk4x1anp/bG9+dH99b3J8e5RvboF/eGaSioKhmZ2RgoZnh4NvZ3qViX5/hYGZioF8jYxpeHJrbGZfYW94bV9ib3hcZGuCemFxdl9lZdTqvooyOj6LjoBxeYWHjo12g5aMfpKNjH9tbIWNjHZ9j3+FgpWJfIN4bnaGhIOXd2+IhWt1e3RmeYKDp4yDj4uEfW5/dHaDeYackIyQkZKMi4Z+e5KGd3+EjYNsgHJpf354bXx7gYqDd2J5hIFxZHFofm10cXWBm4uAf4V+cnV9gHKBcFttfnR4ioOLe4eAfIh4enFsiIOQhItygXl/l4uLf3Rua3Z/gHV1XGlod3BZV3xTWnBlTFpycmVbSnB3blxaWllddH51aFliW2dmbmNpTFdmUT1eZlxddWVfdHBaWVRvZFlkcXlaaF5fZ21namxpcHd9jmxpgoR+eW6AfH2Bf4J6dYKBjZOFcICLbnh+gHp7iJKJf2h7fWp0e3KGe3N3fX+MeXiEfXxrjIyDm52WjIGAbI5+a2h+jox7fn+DlIJ/fYqIa3VxZ2hjW2Jncm5gYWtzYWhwiXlhc3ReY2SboI9uXDVZr7V0aYCIfJKGdoWWhXOOiol3cG2Fg4d1eYl4iX2TiHp/c2d2iH5+mG9xhn5odnltZXmIhKWHgIeNiX5ufnZ/gHyMmYeCk5CYiIuEiXyPiHB7fYR7aH5ta4B7eml6doGHgXJgd4F+cWRyZ3WCbXR7hZSRgXyBf253eXx0fm1Yb392dIyChneIdoKJenhzbomBj4GFcn59fpOJiXpubmptgYJ1bl1nZnNxUVt7TlxwXE9bcnBkVktzeGlXWVlaYXGAdGBdXWBnZGhpZk5ZaE1AYWRbYHZhXXVtWFdTdGFaZG9yV2peYWhrZ21saXB3fJJraISJfHxwfn57gYCCeneAgIqLg3F7h29xd4N/e4mNj4Nqfntud3l2ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshIiReH17gZGAgH6Kg3BycGNmXllnX29wYGBncGZqb4p0YXRvW2FkanZ7f76cpqPIuHGFg3OTfHiGk4JzkYyHcnJwhHuDdHWHdIh3lIh5eXFjd4Z6gJNpcoR2Znd2Y2p8g4iegn9/jo59cn5zhHmAkZCCeJaNlI+Igoh7iIlreHl+dWd6aGt/eXNpenaAgn1oYHeHfWprdGh7f2l2gYyQlH56fn5we3Z7dH5iVnd9cnOKhIJ8g3GGind4cHCDgo1/fXl+fXaOhoN2aXFpbIeCcnBdaGNzbkpldUxeblVUWXNuYlFPc3hgUlhYXWJwgnNbYV1oZWRjamRRWnBJRGRhW2NwXl13aFVXVXddW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHl9cnt+eIGBgXx2fYSIhoNwdoNybneCgn6Ji5N/cIB7d3l6gYx0g3h/gYGChHqAdW9+iYuanoh9hXp3hntndIWMkHp/f3uJhoR2j4Bnb25fZFxYZVltcmBgYHBsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhvjHV7ho6AepOJf3V0dX53gHBxf22EdJSGeHVsYHqCeYiPZnGDb2d2blttfYCQk4CAeJKSfXh7bYd1gJCLhHSWipGOh4WFe3+FbHR2f21nd2Vte3VtanZ3f398YGJ4hnpodHVjfnpndIWOjJV7dH91cYB6fG1/WVZ0fm91hId/gHlsiIZ0eGt1f4OEfXt9eHtzi4F9c2d0ZW2KhG10W2pfdWRIbm5MW2JXVlV4bWJQU3R2V1BVWF5hcYRvXGBjbWVkXm5iVFxyR0JmXl1maF5be2JRVVx1W1tna2FWal9gbmZma3FocHV4jnRrjo11f3Z4fneBg4F7dH6EiIeDb3F/dHF1foWCiY2Ke3d/eIN8fIWHeId8fYF+hIB7fnN2eYyOn42Jeol2dIN5Xn2FmYx5hoN0hYaFd4l7Ym5sW2JbW2FWanNjYFtnbm9mh3FhcWZXXWNrf3zKzoi5omptbYpscYRxfISJfnuRhHl5dHl1dXtqbHVjhHWRgndwZ159gnqLiWVygmtqcWNYbHuGnIiCgXOXlHd+e26IcYGKi4dxl46QiIWLg3t5fnFxb31maHFibXhxamtxd3x8eVxleYB3aXV4ZoJ2Z3SHi42UfHKGaW9+gHlufF1Ycn9tdICLfIJvb4l/cXZod3+Bf4F3fXF6dId8enJmc2FujIJsc1hrX3dbSW5rTVZVXlRVe2thT1R1clBRVFZeYnSFaFxgbGpmY1luYVhicEdBaFxfZV9dVnteT1ZkcFlbamhdV2hgX3Jma2hyZ3Byd4Z4bpWKdH96eH55goiAdXOAhoWNgnBwe3h3dXmGhoaLhnp8f3WLfn2FhISHf35+fYd/fHh2eXeSk59/jHyLbXaAeWODh5eGc5KLb4WFgXqDdGNuallfW11dVGdzZWBZZHFxZoFzYmtlV1tgaX93vq57oLdtYnOGaHN7cXmChXt9jH53eHN2b3t2ZWpuYId1joFzamJefnh5i4RmcX5oamtaVm94iqSBhX9xmZNxgHh1gm2AgpGHc5WIjIiEiIV9eHRybmh5YGptYG12amdqa3l3endbZ318eGVyfW6EdGR1hYyGlX9vi2ZreoN1bXRiXG98a3V8i3yBZnWHfW1xZ3V+eH5/cn1renqBenhwZmxibol+bW5Wa2B3VUpqa09STmhOWXxoYk5VdWpMUFRVX2d2g2ZdYHFoZ2FXaV1ba2hKRWtZYWNXWVV5Wk5WbWpZXWxlXFplY150Zm1kcWdyb3WBd3CZhXZ/fnd/fIWHfXVzgoh/lYJuc3h6enNzhYeIiIR5gX12j398hImOhIKEe36Lg3t3fHd3mp2XeoqChml3fXxsg4STgHKPgnGFgn6Bf29mbGZXXVtcW1RkcGRfV2NydWl1cGVlY1dcXGiAcG9ygHSJZGR4fml0dXNzgoR4gIR5dnR1bmt7cGFna2eGdI2EbmZdX31we4l+aW13ZmlkVVdycI2mfIR8dpaQc3tzfHpue3uQhXaYfIeGg4aDfHRwcmxndVxtaF9sdGRnZml6b3tyWWeBd3VncIB3gnVid4SKfJSAbotqbXqBcWZzZWBtemdzd4p8fmJ1g3Zpa3F0enF5eXN9Zn5/f3l3bmNmYm6GfG1rVmpicFNLaWtPTE5wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWZgVmNXYnBdTEtrWGNhVVRVc1ZMWHVkWl9rYVxbY2Vfd2ZtYnBpc25xfnR0moF3f4B3f36GhXp9dYKEfpeFbnJ0e3p1cYSFj4GAeot1dJGAfYGUjoCFhH1+jIZ7foB2e6OlinmJhYNrdXx7dYOCjHpuhXN5hH2Bg3VuamhlVl1bWlpUY25lW1hic3tpaG1pYGJXX1ppgGprb4BobGFoeXhqc3R0bYSBe399dnVtemhqeWpfZW5ogXaPhGdlWGJ3aX6He29pb2dmXVVYb2iPp3aBenyQjnl1b35vc3V5j4B3lXSFgn+FiHZqcnZnaG5bbGRdbHNfZ2FpeGh7bVptgnJzaW+Afnl3YHeEhHiPhHKIcW95f3JjcWhcb3dkcXOIfHhic4BwZ2p4c3JseHd1d2SDe393dm9kZGNufH1rbFVpYmZTS21oT0dSa0VheGdhTVNxXElNVFlla3d7ZV5tcWlkXVZfVW5uV0tUaFdmXlhOVWxUSlx5X1tfa11dWmJlYHpobGFvb3Vtb3Z1eph9d4CBeoB/h4Z6eHqDfoGThHF0dH56dnSFiJB9gH2Qa3OVgXyDn4V/h32AfoaCgIp7doSsn396iIeDa3KCenaAgIF1bodvfH9ziYBqb21kZFhfWllaVWJqZ1taXnWBaV5ubFxhVlxca4FmcnR9aWpda3Z1Z3R3cWyFe319eXZybHpoaXhmXWRzaHp3koFjY1RlcGeChXd3ZmhqYFdWWWhkkKdufniAi456cHB8Znlveox7do5xhH1+f4ZuZHZzZGhoXGtiXW9vW2dfbHVkemhddIBvcmtxe311dWF0hYp6h4Z/f3dydX91YXBsWXF0YnFyhXx1ZHJ/bGFsem9qaXp4dXJmhXV6enVwZGFkbnN+aWxUaV5dVEtzY1FHVmFHYnZmYUtUb1dKTFdYZ2t2emRlbnFmY1pXXVh2ZVRKXGNXaFhZSVdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bW9tdoOYeXKBgHx/iIuGfXV2hniHjH10dXWCeHp6goyOfX6EiGpzl4F7i519foV6gXp+fIaIc3GProx7e4ePfWVyiHp0fHx2cm+GbHt9bI96YnBvYmVdZVZZWVdkZmtgXVxzhWhYcW5aXldaXGx7Y3B3dmxiW2xyc2d0dXBshHl+gHl3bm50ZWl0ZVtndWZ2dpF6X11SZWZqgoJ0fWJjaVxUWF5iY5ClaHl0goWQeG1ueWd4bXyFe3WIcoB4fHh/aGV2bWBmYF5qX11za1llXW9vYnplW3d7a25ucHd4c3RkcoOSfoeCiHp2b3J9cmJ4ZFtvcGFxcYJ8c2ZxgGRebnZpZGd5enRub4F1dH1zcWJfZm5vfWRqU2hYWVRNd19RSllZSGJ0ZGFJVG1TSUxaV2lscXtibGxzY2FaWlthdltTS2ReWGlTV0dZYE5HaXVYXmFtW1tfYmJdhWhoYW54eWxvanaBkHltg36AgZKIhIF2dIl0jIZ0cnd2gXd8fX6Mj4B+k35weJaDfZmSeYCAeHl9f3SIg3NwmaJ7e3+IlHhkdYh5c3h1bHRvfmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYhlUnJuW1pYWGBsd2RpdWpqXlptc3Fsc3NzaoV8fn98d25ubGRpcWNbanJkdHaPc1tXU2RhcoB/coJdYmNdU1pgW2OTn2VycYWEkXRsanlsb3B6fHtxgHZ/cnp6emRmdmddYlphZ1ted2hXYl1vaGF3YFt7dmppcm53c3N0aHCBlIKGfoR2cmpwfG1md1dca21icXOBenNmb35bYG9xYl9qcX1sbHR+c3F4a3BhXGVsbHphZ1NnVVdSUHZbUlBZUkljc2JgR1VqUEhQWlVra2t8ZW1vcWFcWlhZbHBXUlBmVldpU1RGWlxPSHJ0WF9jbWNYYWBhXYtqY2RteXhrb2l1eYZ7a4N9gISZfIKEeX2Ibo+GcW93enx0goJ8i4+Dgpd0d4KUhYGfiXWAgIFzf4Fwh4J1b6KXdHuGi4Z7ZXiLb257b2Z4cHpsc3ZyjGtedG5hZ2VrUl1bVmdibGxaXHGMZE9vbl1WWFVnanRoYnRlZV1ZbXRtcHV1eWqHfH98iHeQc2Rka25hXG5tY3N4h2taVFZiY3h9fXGFXWNfY1RbYFljlpVjbnCDhYpzamh6bmVzdnN8bHp0dW96fnVfZnJjW15WYmRYYXVlVV9gbWRhcV1dfnBoaXNxc3B1dWpthJOBiHuEcXJmbn1wcm9TW2ZqZnF0gXdzYmx2VWJxaltfbmV8ZW12fHNyc2ptYFpkamp3XmZUZFVWUFRtV1FXU1BIZXJfYUZYaU5IV1RWbWhkfGlreGtiV1xVW3RkU1JXaFFZZlRTSFpaUE14d1tfZWxpWmJgXl6PbmJma3l1bm9odnZ/f2yDgH2Gl3t/iIGKf2uTiHJndIB7dYCDfYiOf4yTc3yKkYWHn4Z7f4aMc4CGc32Ddm6ljHOBjYt2d216jGBkfHBmenN5bG1xdoJnZHtsY2ZnaFNeXlRnYGxvW15ujWhOam1gVFZTb2dza2V4ZGVdWG90bHJ6d3JsiHuAdpx7emthZWxtXmBvamVweX5nWlZYYGt4fHtwhF9iXmdWWWBXZJyIYmtxgYd9d2treGxbdnFseml1c25ve4ByWGpuX1ldVWFjV2RxY1NeYWlhYmxaYH5sZmtzdW5td3ZraIWMf4h6h21xZnB8bXJtY1lhaGlvdIF0cl5pbFJlcWRUYm5iemNxdnt1a3Bta19YYWdodFxlVmFWU05YZVJPXE9PSGVwXWNGWWlNSV9LWG1kX3hobn5kYFVeVF10W1RSYGZOXWFUU0pcWVBZdXZdX2ZtaFhjYVtejnBjZ2p3cXNuZ3Z0eoNygYN6iI1+fIqHjnpukIp0bHOCdH9/iIWGkYSVj3l+jI+IkZuEgHyMhHN/gXN0eHFuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Njo6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjY6Ojo6Ojo+Pjo6Pj46OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHx9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERFQjEvLy8vMC8+RERERERFOC4vLzAwLEiFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTUzHx0cHBwcHC43NTU1NTYnGxwcHR0YOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHiIeHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhoWDg4ODg4ODhYWGhYWFhYSDgoKCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk5CJj46Nj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6Ojo6Ojo+Pj4+Ojo6Ojo6Ojo6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjIiGhoeMhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCRjYeGhY6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMio6QkI+Hi4eHjIiIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjISKhoaIhYmPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiIuKioyKjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpKSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZ21namdoZWhnY2JiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpeXVlZXmJhXl5aWV9bWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVBRUVFRUVZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PUFBRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpISEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo7Pj48RUQ9P0VBP0BBQERFR0dHR0JERERGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUBAQ0Q9QURERkNGRkRGSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTc5Ozw+PTs8Ozg6QEBBQj9BQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6OjY5Ojk6Ozw/Nz07Ojo4PDw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw9P0A9PT0/UT49PT08QUw7TEI5Ozw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREA9PD5AQT9BO1p5Tz1DRT5EWDxZTjs8PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZEPjw7PUA9OTo6b3dZNzs6PEdePWBcOTs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BxcnJydHV2ent9fX1+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUNfSTw7RmNnX1d3d1g3ODg4TWJCZWg8Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAT3x0RkZ1hoaGgnx3WTw9PzxTakdnaz47PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUBVdnpwdoSDg4GCgH1ZPkBDPlNvTGRoPTs9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQFB0c3+DgIGEfHyFbUZCQ0RCUmlkc3JJQENFSElJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFR2xzfYB5f4WAfYZzRkNERE1nfYeIiH5YR0hRUExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHYHp/gHyChIaFhYtsQEBWd4aIh4eHiIJYUl5OTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtOXHyDhYSEhIWGiIBWbIWHhoeGh4iIh35pVktLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSUhISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpag4SEhYCBhYeGg4KFhYSFhoaGh4iGiXtLSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWiFhIWEf4CDg4KDhISFhYaHiIiIiYmMjWZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaYaFhIGAgoSDg4KDhIaJiouLi4qJiouMiVQ6ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JohYOBgYKDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6Ojo6Ojs4OTg5ODc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd5e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PnaEgYKDg4SEhISGiYqKiIeIiImKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDk6PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz1KgYOCgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA+PT4+QD8/P0A/QD09P0I/QUE/QT89QEBAPj9BPT48Ozo7OTk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlWEgoKEhYSFhIaJiYiIhoaGh4iJiouLi4qKi4qLXj5ER0lLSklGR0dERkhHRUJBQENFQ0NBQkNCP0BESEVDRURFRUFGRUZERUZEQEI/PEA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0NFWoWCg4SFhoaGiImJiIeGhoaHiYmKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHZ3enh7fHx9fX5+f39+fX19fX5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkNHR0pbhYKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1PTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExOS0dHR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4ODw7PD06P0E+QEBDRklKUWCCg4WEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEhFSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QEVJS01WcoOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4tfUlJQTU5NS0pHRkJHSkdMSkZLT0xLSkpNTUxPUE5ISUtMT1FRUVFPT0pJSkpMSkxGR0hHRUdJRkVFQkBCQlxvcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBSExNUVd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKREVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0dWTkZPUVFVWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMj4uLi2dWVWthRVJRUVBKOztRU1JgdV1VVlRWWVlSWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLSEhKSEVGSUhJSElpcnZ5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklJR0dGRT8/QUFFQkNHRURFTFhSTVRWVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A+QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFpnUlVWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSVlYWVtdWFhZV1JRTlBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpbXF5UUVFQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXG1ydXZ1c3N3e3p7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJWVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSEJDSEdIS0dDQkFEQE9QTVNkc3R1dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiW1hTUVBVUnNXZVtPT09MUVNRVVlTVVFRVFNPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz8/Ozs+QEA/Pz5rUUthRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNDPz48PUI+Sk1GVW51dXVzdHZ4enx6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXt4enx8eHd4ZEJAQEI9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztCSD9cdHR1dnV2eHp8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJYR0ZGSEJBRklFRUZETVJQYVdSWFFQU1NSVVtPT1FXUE1KQ0Y+Ojo2NDg2OTc5OjM2Njc5NTxCPWVzc3Z3d3l6e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMWFlaVlhYVlhZXVdXWGhza11WYXNrYWFfXWRhX15ZVVBNT05MSEhKS0lIRkNRUFNaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NTc1Nzg1OTlHbnF0eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVlhUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KT09UU1RcVlJVU1JPTUtJSEhGPz89Ojc4NzY1OTk2NzY2NVdwcHN4eXp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9KSE9QT09NUkpPUFBQTk5PVExNSVBPU1RVMjxYTUlBUT1jYVFTUVBOUFFQTk5NUE5UUlBSTUlMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjQ1NjY7ZXBxdXh4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkZCRkdHSEZKREhKSEdFSExIS0hGTE1QTUcvRV9SPjNAPmpvYVJSUUBGVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3NkRucXR2ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRUZISk5LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FNT09NSExMSUtLTEtIRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t9fHx7eXx7en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUV1dVTExLSD05ODc7P0A+PD1AQEI9PkVIR0RGRklHSkpARkFBQEZIRUpPSFBSYVxRUFJOU09PUExMT01LTUxNT05bV0tNUU9HSUhDSUpMTEpGRkZEP0JDPjxCRj9CP0FkcXV4e3p7e3x7enp3fHh5fX57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47P0FAQD5BRElFQ0hISUdJRUJCPz49Q0FBR0lETU9iZVFNT05XS0xNS0xNTUxMS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES29wd3p5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxAQkFBREVHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTVFUTEpJTVRGSUlKTEpLS0lJTE1PUFJQS0dDS0dDQkpKTE1PTUlKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW9qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0RHSEhHSktJSktER0I9Pj06Ojo7QEI/PUJCQ0NHRkpMSkVJSUZHSENDO0FAQj5AQENFQ0lNUEdJS0ZIS0RISUtNSEpMSEhKTEtNXVJJSERNRkFES0pOTVBOS01KS0ZHR0pNTlFOTGNuaXZ2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLREZFR0RFRUdFR0JDQD48PTo7OjpAREA+QkNERUlGSkpMRklJR0ZGREI7QkNDPj9DQ0NFR0xOSEtOSERIRUlMTk1ISUxHRUZJSUxOS0pIRU5IQ0dNTE9NT01OTk1MSUhKT1JRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQkJCRUBEQj4/Pjo7Oz06PT5DQT9BQ0VHSkZKSUxIR0dHRkVDQD1FRUI+QUNDQ0VHSUlHTVBJRkZHS05PS0ZISkZFREVJSUhLSUZIUEtESU1MUE1PTk9PTkpKSU1SVVRST1dkYGFtZ3Byb3J5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPUJBPkE9Ojo9Pzs+PkBCP0BCREdLRklHSUhGRkdFQ0JBQUZGQ0JDQkRFREdHSEZMUUxJT0pKTEtJR0hFRkVEQ0lISEtKR0tSTUNOT01RT09PTk9PS0tLUFVXVlVUWGBeXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmprc01HR0ZIQkJBREQ8QUFAQzw4OT0+OT88P0I/QEBERkhFSEZGR0ZGRURDRUNESUZDRkVCRUdFRUZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LT1NORFFSUFFRTk9NTlBNTE5TV1ZXWFZYXVpdZGBoYmppZ2tfZWVnY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaW96TUhHSEhCQkJGRTxAQkJEPDc6PT46PjpAQj4/P0NFRkRGRERHRUNFRERFRkdKRUVJR0NHSEZIRkVDRkpKR01KTEtISkxGSUlLSEVLS0xNTk9SVE9JU1VUUVNQUU1OUU5NUVdaVlpZVlpdWlhhYGBgXmhlY2BkZWhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN1bm9yc3lOSUhHSURBQ0hFPEBFQkU9ODo+Pj08PEFCPD8+QUJGQ0VCQkdEQ0VFRkdHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMS01LSU1MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZW15fXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZxdU1JS0hKRUJFR0U8QEdDREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREdFSEhGSEdJS0pGSkhIS0hGRkxISEhKR0xMTExMSU1LTU1NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm92SktMSkxHQkVERTxARkREQjs/P0FAQEBEQT9CP0FDSEJFREZIRUlFRkRJSEZJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTkxOTk5QTE9QUlVYVk1OVFZVU1JRUExOVFNSV1teXl9dXWBfYWFhYGJkZWFjaGJkaWpndotsa2lnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dKTUxMTEdEQ0FEPD9FRUVDPUFBQ0JCQ0VCQkRBQUVHQ0hHSEdGSkZDR0lHR0pGSUxISkpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBPVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5gYl5gZWFhYmduaGJpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xNTEtMR0VBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NCSUZDSEpJSElLRkRLSkdISklJS0dKSk5LTkxJTEhKTUtaZkpkXEtsU0hPTl9uVWtzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVGB3dWlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5S05KS0pGQz9AQj89REVGRENEQkVFRUZCRkZIRERKRUVKTExKTE1HR01JSElLSEtKSUtKTkxNTUxMSUxMTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXlta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEQEJCPz1DRkdCRkNFREVFRENISEdERUtHR0xNTUtNTUdKTkhKS0pJTEtKSktNTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncXBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dFRUVCQkI9P0BGR0JHRElFRURCRklISEVHS0pHTU1OS01OSExNSUxLSEpNSUtKSktPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdoYWRqdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR3SU1HSURFRENBQjxCQUJGREdGTEhFQ0NIS0hIRkpMTEZOS0xTUkxHTExITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2diYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQkdDSElNSUZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUhKTElLSklISkxNTU1JS0pLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRURER0JISkxIRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpKS0tJSElHS0tMS0ZISkpMTExLSUtMTlRbXFRQVExQT05PT1ZRT09RT09RSklOUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzSERFR0ZGQUVDP0NHQ0VHQ0lLTEhGREdLTEhER0hQS0xPS0xXTElFRUhJSkhJS0lMSkhGSEdKR0hJRUZMSElLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSSllhWlNgZFxhWFtkZFZWWVxZWlhcVllcXWJfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRQQkNETE1CQ0RCRElER0dGS0pLSEVFSkpKRkVISFBKTE1KTVNJSEZBR0ZKSUtLSkxKSUZFSkdERkdFRUpHQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOXlxeU1teY15aXWBjYFlfYltgXltUWFhZXl1jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tFRUhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRENDRUFGSkRASktJT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV5eY2FgYmJiY2NlWlFZVlVcWV5kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFLR0NHRUJFR0hGR0hJRkdKR0hGSEtJTERES0tOTUxMSEpKSEpHP0dGTktLS01LS0tJR0dDREBEQUhJQT9JSkdPXWFaW2RdX1RRU1hdXFxcX1pLV1xMUlxZSU1eUE9cX2FjZGNjYlxkY2JkY2ZYUVVUU1tYWmFeXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSUZGR0hHR0pGRkZJTEpORURLSkxOSkxJS0pISUdCSEhRTUtLT01LS0lIR0VEP0VDSEhBQUdGRVRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJhYGJiYGNiYmRkYlhPUVFSW1NbXl1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lKS05MTElMS0lJR0RIS1FPTU1QTE1LS0hJQ0RBRURIR0JBRkVEV1VFXFRdU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJdYGBfYmNiXWJiV19fVFBOUFFYUl1cW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQRFdfSUdHSERGTUpQUEZKSUpLTkxLS0xLSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0FERkJNSENMTFBPT0xGTUZHSUpIR0xMTU9QSUxPUFBTUExQVFNVWllXWVhYZFZPU1RQUE9OUFVUXFlZWl1cYGFkZWNoY2tscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHSFlNR0hKSEdOTFFRSUtLS0tOTlVOT0tLTEdHS1BTU05QT05PTk9IS0VgRURfTERmY0RNW0lfXHNtT01WbVlMQ1BgVWxXZ0pdV1VeRE1RVUxNVFZRU1RYV1RYVVRcVFBmWmhoZFhUa1RXVlVbXFtgYGFiYmJgZmhmbmxocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09TSUtHYFRISk9KSU9NUlFLTEtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzV1BtSHFucGFWUHFxc1BCa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZVV39qdHV1X2B3YFhhXFxmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEZKTEZSVkxLT0lLUlhXUU5OTkxRVE5PUVBLTE9HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWVJUUXZndGxwYm5malFyT013bWpycHNycXJwb3CBXWV6dXhxcXpxfnN9a3V9YlJnfGVzc29zc3x9b315b39yX2BgYmJaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEtKSEpQTk1NSk5WXllVTFFTTlhaTFNTUk5MUElRUlRZV1dQVFBQUFFLR2Z4bGN4cm1aSkxVeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpWHNRaHptaWp6en5seHp/b2dvWHZ2anV1cIBgc2h8aWx4fG9eX19jYltdYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk5LU3ROQ0JFUFBISktKTFBPT1BNUFpgWlhLVFdQYV5SVlFZU01QSVNUVlhXV1BVUE9OUkpLcm91dXF1cWRoYFZuTHFwXkZoeVd2VExoeH14YHl7c25hXm1vZFJncnVubXlwd2x2dHRxbG1cdH56a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tTExbVkhHRUdSUEpMTUtMUVFRUVBRV1xZVU5WWVVmWFJSWV5UTU5JVFRXV1lXT1NOTk5RSFJtSGl3S2BkdnZVV2xPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGV8aXJ7XVRLbGB2dWtpdXt7bX54a3xwXV5eYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobG1yfGttaGt7dG1ta21PSEpLSElJSFJQTE5PTUxUU1NPVFJXUlZUUFdaVlZUVFRhYFFPTktUVFNRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1dYUl1ZV11WVE9ZUldXV1hZX1tncl5bW1pcXV9jWl9jY2RmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraG96aGdna3VqaGdpbFFJS0tMTUtKU1FNUVBPTFZWVFBUVVhVWVVSWl1WVVRXVVlYUE9MTVZUUU5VU05PTUxRUEtKUVJLUU1LS09SVFJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1FSVVVWU1pRT1NSV1VUWVZUWVVTUlVTVFRYWVddWl9hXVxaWlxcYGNcXWJjZGdlZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUEpLTE9PTE1UUE5TUVFNWFdVVFVXV1daVlRcYFZXVllVWFRRUEtPV1NQTlVQTlFOS1NQTU9VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RPVFVYVVRZVVdZVFJSV1VVV1xaW19dVllfXV5dXF1hYV5bYmJjaGZlZGJYX2BiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FaWVhXWFpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUE5NUVFQUlhUUlFPTU9TVU9XUlRVVU9OTVFTVVVUVFJUWFZaXVxaVlZRUldYVltbV1FUVlZWVllUV1dUUlJYVlVaX1pdX19XX11eYFxcYGBfX1piYmRoaGVkYVliYGJeXmZkZGBiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SUk9TVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUldTU1NYTU9QUlRYVVVVU1VZWFteXVxbVlJPVVZWW1xXUVRXVVZYVlRYWlRTUVpXVlxeW19fYFZiXGBhXWBiX1xgXWNhY2dpZGZgWWNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeYFteXmFgX2JcWWBaUU5PTlZRUFRST1VUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSS1FUU1laV1VPUk5TWFZUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVVZcXFZSVFZWWFlTVFlcVFJSXFdaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1bYFxgVVxdaWpyfXNsZ1xVWVdRT1JbU1JRVFJUVVRLUlZVW1laU09TUlZWVVNPVlJTWlJUVVRYXFdYWFNYXFheXVlaXVVVTlZXV15bWFFUVVhYWFVXWVtUU1ZdWV1dYF1iY15ZYFtlYl9kZF5eY2NhXWVmaWRmXl1kYWBhYWNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWVteVl5ZXVBPT1JaUFpVVVZWVFRUXl5gXl5iXGBVXV5ia3l0bH1sWlVaVVFRU1xUVVRWVFZZV0xSWlZdW1xST1VTWFdWU1BYUlNXU1ZWVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paU1RWWllaVlhZXFZVWl1cXmBhX2RkXV5dXWVhYmZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVpYVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFdXV1ZWV11YUFVcWV5dXVRSWFJXVlRSVFhSU1ZUWVhZXV5YXVtVXl9YX19YXVZRWVRZWlphWVxVVlhbWlpYWVpaWFZdXl9eY2JhZWVdYlxgZmJkZmRfX2RiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaVlNcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFlcWlZYVVdbWllcWVhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdbWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVtZWV5fYGBkYmNlZWJkWmJmY2dmZV5hYmBjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1hdX2JhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xSVlhRV1ZWVlZWU1ZUWFxcX2BgXWFdV2FeW15cW15YVlhYW1tfYFxfWFldXF1eXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTlJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBYV1hZWVdWWFZdXV5gYWFfYl5ZYV1dXlldXllYVldbXGBfXV9ZWV5dXl5hXFtaWVxfYV9iZGNlZmVmYlpkZmdpZ2NfY15hZmRaaWliZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhMV1dcWVddXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FiXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNgUlxZT1hXWVtaWVhaWWBdYGJiYGFjX1xiXV9dW15eWllVWF1dX19fX1taXl5gYmNcXFdbXWBiYWNlZGdlZWZkXGVmaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWFdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9dXF5cWF1bXl9hY2JhYV1iW2JkYmBjY2JdXFtaV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxdXl9aWFZbX15dYWFfXVtgYWJlYl9dU1xfYGNkZGZkZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoY2hoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WDgYODgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3t7fHx8e3t7e3p7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmJiYyMjIyMjY2LiYmJiYmJi4yMjIyMjYh+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyNj4+Pj4+QkI2MjIyMjIyPkJCQkJCRi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXl5enhvb29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH19fX19fX19fHx8fHx8fHx9fX19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5dnZ2ent4e3h3dnh7eHp6eX15eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t6enp6e3t7e3t7e3t7e3t7e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx8fX16fHt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3eXx9fXl8end4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d8enx8enx7d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en58fXx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5fHt6enl7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8e358fX5+fn5+fXx/f398fH2Ag4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAf35/gYCAgH+AgYF/fn+AgX9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35+gH9/gH9/f39+f39+fn5+fX5/f35/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5/fn5/f35/fn9/fn5+f4CAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/gIGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCg4KHg4OCgIKBgYKCgoOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCBg4GChIWFhYaGh4aGhoaHiIeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WEg4GBgYKFh4aHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgoaNg4yHhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCg4KBgoKBiJOAkoiBgoOBgYGBgH+BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKAgoORh4B/gH+LmoCVjn+CgoODgIB/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoKDg4KDiZmMg4KEgY+cg5iSgoKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4OFhYSDg4GAf4OPmo+DhYSCkpyEl5SEgoKChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+AhJCJg4B+fHx7e4ydjoCCgoGRm4SVlYSCgoGCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+Fm5SIf319fIGAgZWIgIOCf4+ckpiUgYGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqHg4ODhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgISbnol+g4F9iYl+goODhIKIn6Chk4mBgoKBhIeCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgpWgiIKNhX6DhX9/hoaFhZyfhn59fX+Cg4eWjIODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDi5KChIaEiYF/f36CiIaFiH98fn9/f3+InZqEhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhIKBgIGEgX9/foCKgn5/f39/f39+f4WejYOFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZSTkZGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISEgYCAgYyHgH5+f4F/f4B/f4CAf3+AfoOHhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgICDiYWCgIGCgoGBgYGAf4B/f357eYCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgn+AgoWEgoKCgoKCgoB/fn19fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHh4eEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWDgYKEhIODgoKCg4F+fX5+fn5+fn18fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYmDg4SDhYSEhYWGiIiGhYOCgoOFh4aHhoaEg4KDhIKDg4SCgYKBgYGDg4SDhJGSkY6PjouHhYaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoGChISDg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGh4eEg4GDg4SFhYWDg4WEhISEhYSFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4GDg4ODg4KCf319f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY6Pj4uIhYWDgoSCgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn6AgoODgoOCg4J9fX5/gICBgH59fX19fX18enp6gIKCgX9/f39+f3+Afn2Af3+AgIF/gICBgH+AgYF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/gIGCg4SBgoKDg4OEhYCAf3x9fX59fX5/gH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gICAfn9/fn59fn9+f4B/fn9/gH+BgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/fn5+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn59fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn59e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOBgoKBf4GAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjISDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GDhYWGhoSDhYWDhYSDg4SDhYSEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYGDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEgoGDjYl/fX+DhIaFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg3yCgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgICCgYKAgIGBgH+LlI+Mi46OjYiHiIWFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIJ/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX19fXx8fYB/gIB+gH5+gpSRjIyNjo6KhYaHhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoCBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2MjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIyPjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaFgoSDgn+Afn+CgoJ/f4KCf4CLkI2Mi42Mi4iEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gH+BgX9/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4WBhJGPjYuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+fn58fHx8fH18fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3x9en1+fn+AgIOHiYmJiomKiYWIkY6MiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4OAf4CBgICAf3+AgX9+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH19fXx9fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiY2Rjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjpCNi4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYSEgoGBgoGCgYCAgYOCgH+Bf31+gH58f3+Jgn9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fHx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICAg4F/gIGEgX5+gH9+foB+fX5+gIB/gX5/gH9+f4B/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgYCAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fYmGhoWFh4WFhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIODg4SEhISFhIGBgIB+gIKAfn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKDgoSCgYGAgIKBgICCgYOBgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Bg4F/gIOCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf35/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH5+f39/fn1/fH5+foF/gX9/fn+Af4CDgoOAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fX+AfH9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF+fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN3dnN0hoSEhoOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9+f398fn9/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgIB/foCBfn+AgoKAgYOChIWGhIB+fXx8fHx6eXZ5eXp5d3l2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eX13eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH99fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Afn5+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/g35+gICBf4GDgoODhoSAgX58fXx8e314d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af319foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6enp4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+fn18fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYGBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gYGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgICBgH5+f3+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/f31+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CBgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXZ2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKAf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gH9/gIGBf4CAgICBgICBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHh4dXh4eXt8fH18e3x8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg39/goGEg4OEgYGDgIKCgoGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCf3+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEf4CDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f317fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGDgYCBgICAgYKBhIB+gYOCf36Ag4KAgX6AgoOCgIGBgYKCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4KEgYSEgYOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYKDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GCgYCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX56fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgYSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4OEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODhoKDgoOBgoKEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSFhYSFhISEhIOEg4GCg4ODhISGhIWEg4OEhIR8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYB9gXWBeoR/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fX5+foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZzhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1ud2xweWx1fX9/fX6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3t/fXyAfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgX+Afn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSBgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhISGh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3p5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYWFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHh4aDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fn1/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoeGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWHhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx+e3x8e3x8fX17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f35+fHx9f317fX18fXp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WEh4qHg4eFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaHhYaGhIOEhYKBgoGAg4OCgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeGh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoeGhYaDg4OFgYCBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4N/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfoCCgn1+f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOFhoaGhoOEg4WChYGBgH9/gIB+f4CBfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aFhIaHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCf31+f35+f4R+e398fICBfYGAfX6DfH5+fX1+e357e3p5enp5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4F8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f399fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1NXU1NTV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5PkNFPzw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fb29vb29vb29vb29vb29zc3Nvc29vb29zb29vb29ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0j4yMjIyMjIyMjIyMjI2IgYKBgYGBgYGBgYGBgYOLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E9P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFpVVlZWVlZWVlZWVlZXTkNDQ0NDRERDQ0NERENGU1NTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpZ5fWVpaWlpaWlpaWlpaW1NISEhISEhISEhISEhHSldXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqjaGRlZWVlZWVlZWRkZWVdU1RUVFRUVVRUVFRVVFZgYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs7Pzs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzMzMzMzMvLy8vLy8vLy8rLzMvLzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7O0NTSz8/O0tTPzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19bX19fX19bW1tbW1tbX19fX19fX19fX19jY19jY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Oz8qWpdHP0qig0M/RpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8+cqp2s1rKeo6fWr5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DLlIianciempOdwJ6YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0b3ImZusmqGctJicop2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Sl5SirZqWrbmGnpavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Ts5vEna2YgaCWeJuEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo8Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0c6NkKOcnaiInHmfqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHL2qickbmvppyKva2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJjqWaoKWml5edpaeWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HKu6Gmp5zNoKukm9Cfq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09OekI2218WQjbfXwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGR0tIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0rrE1dHUx8PV0dXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLV1NLS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKQzxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEFCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioaCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpyenZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpqampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpual5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYm5qZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5qdmJaXlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7PDs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6OjpKKhoJ6bmZmYmZmZmZmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoaGfnpybmpqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56bmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmpmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZmanZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmYm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZRUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6JkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6KhlZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6qpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapaekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RXT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66vqqqrpKGipKmnpqmoo6Kcm5ukoKWoo6CYnZifoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKelp6mnqaijp6aZnKSmoqGhoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+hoqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXFBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKSioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndiX1xVWVFVV1tjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PUA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6KvqqqsqKirsKmoqqihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltaYF9aXFZcaGRuY25qaWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustq+zsKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnaGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6hmZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eWpiW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKumpZmhpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odWtxaGlpYVlTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW1vLy+vLy+xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1r7Ogp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFpYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5rY2Jud3V2bmxbYlFWXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFBOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbWZudXFydXFnXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppqWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3RrbG5kb21pcXhueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKastLWsrqWko6ikoKClmaq0sb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ4c3lmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDw8HEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6ypo6GtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMnIyMnHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraaqu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9jYWd1aGppdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxczQzcfMycLCx8HLy8jGzMrOxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwLu+tLCwsMG+vsHGv764tsPCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVudGJdYlRXVVNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBwsO/v77Ey8jKy8m8vMjIyc3Iw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8C/wMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVmY2pkYWptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDubi5vL3Bx8HGu7jO3c7DxMDDwcLBw8LDvr3CwMDBwsvDxszLxcjRwrC+vri6u7u+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFjZGNqYmdjW1paXFlRT0U9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9v7m+urq0wLi1t7Kuuru2wLfA3p6Qwr/BvLvFvbvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmJnamdmaWVpXlZWVFlPU0xGOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OTmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLevrre0t7+60MN9hsq+w7W6x7e2ubu9ubq2u8XFyr25xcC/vMG+uMa8wr+8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHFtZWVmb2lla2hYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJmUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e2tbm5ubm/v9edd4GpxMe3ubiut7W4urS3s7vFxsvBvMbAwL+9vL/Iw8XFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NmYW1gXFRJS0pESkJDRz86Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGNj46Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9vrvEtrW4t7rDv8W8wc7EgHd5lMbPwsC4r7W1vL64urK+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9u7u/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFmbGludG54Y2diW2NRS1RIRUVDSEM8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C5vr6yvL68xLeyurCjp7mzvcfMonR5epfP0czKxLW6wMTIv7+1v8G/xsa/y8bDv8K8wMPMysfFxsC5vbzEv7+/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBiTklNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLGzwNzbxbm+vMS+uKB3a29xa4CVuIdzfn+ZyszLzcrGwsTLzcW/ub25ucDDv8jGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXV9fVEk+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLW8tsGKrdjEvrbAvp19ZFpnUk5YXHZ8dH6Cn8PGy8jBw8HAycrIwbu7sLO9vcDFxsXEv8DBv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3hzZ3BdW15dWVJGRENNSUFFPUg7OzU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZfFvrq2w7zGwr6/yMW3tbi3trm7tK+3t7K1s7e5vLu2usC3ZW6mycC2t4ZiYGZUZF1OTlFUaHR7iKS+v8bAucC8vsXEwLW6srCtv7m/w8fDw729v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f312bHV7cG5pW19gWVNQQUZIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLjLtW1nb5i1uIRZTkZmTE90amBPTVh0eo6suLfCurO7t7u9wbWeva6wsLazucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3V2d25xYF9mXVtUSj0/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa4zbZ5dWVznKJeTkdVekxIZn6Ug1tDdYmZq7G3vrmytbK8ub+qiLyzs7efqLi9w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHdybF9jYVteT0hCPz1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmztsezgHlxbIt2UUVHdH9NTk9fioFwRlJ+prSwtrq1tLKsvLm+n3e5vLm3dpS9vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZlhcXVJOTkE+SkJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7e9uY2Cenp5ZEtHe3xhTUlRZaelYU5KcK67sLO1srSvrLu4wYxvrcW4rVx2uba8vLi2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c210aWxdW2pUXVxQTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7+dh4eLiFpEdpdyW1pJXmBSkXFubaDBuLO0srCxrbC5uL9yZ6DCsrCnpbGuua6qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+2qZaPk6hPSn2zbGpxXWtedXFjY26HsbmxrbOvrqyttre0XYOlq6SenZ2cnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6aim6OclZCMj4+Qk5CXlZaYn56empiml5OPkpadoqCloqakp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3pjd2xuXFFoVFBOR1BNTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqbOzoq2VTFRypnN0fYxzTm5tZXBwbpOotqqytK6qq6+wsKGxpp2RmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mao5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dn1ta3tkaFVRY01KSEdPUk1KTkc8RUA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqKCtwb+oV1p4dW5xWl9kYlxZW2lsYmZzg7KvrrO1qqasq6OemZSNkZaXmZmcoKKinJ2lnpukl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9d3h8ZHl5YGJSVWBISUpLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWdnr+3eGNyfGZnZVdaWlFKR0tPUExVYl+bsrCwuKymoZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKqyrqKZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1paTVFKTk9VTFNMQTc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuimp6pp52HYVhmaFxOSkZEPkBCRUJDTFZPfbGtrK+nn56ioJaQk5ugm5mXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFJVSEZVVkpCTEc9S0g4Rjw3Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaCef2NlZlhKQklPZlJLQUM+QEZJSF+jqqqppJ+fmZKRk5iYlpaVjIiLjpWdnZ2dnpeemaafoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+np6Wkn52qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cm1pdm1obVxYXENXTkpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOgi3drX1JLQ0RWf4t/aEY9Ojo5OFGFqq2pqqWfnp+io52enZqcm5STlZSenpiUhp2aoZqrpKyysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqzta+zrqqvo52rp7axraKvpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHJra3RycWhWXFFGVEhESlBJP0VBNEZHOTU7Pjc7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn3VpXlRKRkRGZ7PEwY1dUElCT3uqsqejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeG2IoKSiq6uzvLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3xMnJw8HGvrq0urq1u7ewtbKqurKuu7e/u7qqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGtlWltGS0xFRFNNREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdnJdqV05LSUhIU33Ry7STnI6Clq+toZmbm56emZeXl5KMjpaXk46NkIuCg4J3c3FucY6lrLC5vcW7zcfLv8LMzs3Mx8nRzM3Mx8nFxczR0tXO08m9wL/Du8bFyMXR083T0NPTzMrCxcbGysjOv8jRzMfFx8XBvMPBv7+/tr6zrr/Aw8PHxMfErr+4sri8w8LCury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MREVQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOenJ6TXE1DRklJWWaSuqyNg7S5sayjnpyfmpeWlJKUlpGQj4yHg4OIh4OAgYGAeXJycGx4psHKysXKwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LV1tPUyMzGzM3J0s3O083FyMnKwcbLx8nJxr/Ds7PIxMvLy8/Gyr++v73Bx8TMzMjJwMO/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJBPEU8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hnl5IPkRFV2aGrJ+eoa2ro5ycnKCkoZ2alJOVlIl9d3BrZWJocW9xe4WKgHZwbnFzb4jDz83I0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLV1tnV19PX2M7Sys/RzM/QzNPQv8jHysTMzMzOz8XGx7a/yr/SzcvPxsnIv8TDx87N0NHPzcrIzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSUo+O0E4PTQ1ODY7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoalwR0VFSGKEvMSqq6qblJefnJqgoJ6bnJmViXdpY2BfX2BfXl9fXWJsdXNxcG9scnF1j73JxdTW19fX09bP1dTa1NTOz9XU1NHRzNHN09fW09XQz9LT0cnT0cjQ19fY0dfS2NnU1szPz8rN0cvO0MDGw8jGzs3R0dHIzM3AyszG087MzsjEysfHyMzK1NTR1c/SzNPBucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaOvgmJranqcwr+uqJ+XlZeZmpyfnZicnJJ9cGVjYl9fYV9eYWBfYGBfYGZtcHBua29yd3eZyr/S1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY19fLyM7Eyc/NyszAycDIys3O0MvQzc7Mzs/Iy9DQy87KwsnHyczKy9LTzdPR0dDQyr3IubCuu7i1qrawrai4rbO+u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1YRTtAPTMzPDw4Nzg2NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramnlnuIjKnNzrGbmpWUlpuenp6ck5aXlIhrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHV2eaS9y9XQ1dPT2NbOztTLzc7FzsrS0s/Hzs3N1MvO083L19bQzNHUy8zQ0tPKztHV0tXVysDKwsXMwsjJw8zDxcjKys/KzczQzdPLxsjPzcjHy8XGwcbKzM3Q0cbQzs3NzM/Fx8G4ub3Dw73DuLKyvrG7w8O1qpilopmWkZWVkouUjZqRlJSPj5SCiYZ5cXJrbWdgYHBoWFhoVkxGTElQUUI7Qz47Njc6ODo6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKigrnhlg4O6zqqUjYyXlZCTkZGVlpWQi3xlYWJiYF1eYWNhYGBfYGFhYF9dW11ncnFxcnNxbnJ5o8XSzsvQz9PUysXJycbGv8PGz87HxcfNytLIy87OxtHS0M3M1MrHy87PyMfP0svRz8a6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL/Bx8zMzM/CysvIx8vQxMXHu8fDyMnCz8C9vL+wwcnGub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PTQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7utpLBmZnyM0auQjo2Wj4aDg4OBfYSEfnNgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3230MfJys7LzcS6wMO7u7q6vsnGwsPAw8jLycjKyMHFzMbIy83JxMLKycHCzNDFy8i/ucG7xsi+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xry8wMPFzMXFvMDKwsXH0sXAyb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZujoJuUe3dydGZpWmFubFpbWFJETEZCR0RMREZTQDU0MzM0Pz0zOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srKkXWpzpriOipKXhnqAhYV/dnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lrcG9yj8W8ycTLv8bBsLa6srKzsrHCvLy8urjBwcHFvr25vb+5xMrFxsK9xsC4u8TJv8HJu7e7u8bDv7zBzcPGvr61wb3Dur3Gu8K6s7zFxMLCtr+1tb6/u8zDvLW6yLq/vsvEwcbCxcnGycbQxsLMx7LHycPOzcDFw8C9s7ewsqeoqLmwpa2wqq2slHp2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1NDs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztLKysrHzc3O0cjQxtXU1tfNys/FycXHwLnFvauvkl1udqiSi4iLhXiAhoZ/foR7dHRjXFxdXmBgYmNiYmVlYl1cW1xeXF5dWltcXmhzcW1nZ25vcnicvMu/wrrAt66wsaeqraynuLW3tLOztLu1vrK3sLWvsrzCvMHEvMC7tbK6vsC4x7m0u7bBwry4vcbBw7u1r7K2ur+0xLe7tKu4vb3AvbG6trC2urPFvLauu7+1t7TFvL7DxcDDxcbIy8XAxsa7x8u/z8nHw8bCw7fDvb22ub7Hv6y1urW3to55dHhnZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcXAvrm3ybaqsIhecYGXjYWIiXt4foaGdneBfHNoXV1dXV9gX2BkYV9jZWNfX1xbXlxdXlpcW11fa3BuaWZqbW5ye6TGvri3tK+rrKeeoqqnnquts62qrKm0rrexsqmupqyzvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLLAtri9sLCnsrO1u7yrrrWmrravu7Kwqrmwrbuuu7i7wMC+ucK/x8PFwLzGwcfKuMXHxb/HxMO6xMbCu8bJzMuzucK9u7OJc3Z2a2lgYmxoWVdXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXQx83Bw8a/xMTDw8rBycq+v7zAurK0tMOuqbCMaGyEkoeOj3t4foqFenuEgHduXl1cXF1fYF9fZGNiY2NiYF9dWltaWl1aWlpaXGRub2hnaGlrbnGBrLivtK2lpKenmqCloZqcpauupKiirKqtqrCkpp+qrbW2sb25r7evqa64tLS8uLS8r7i5tbK7wbLArqWpo6uxsrOovaqrqKutrbSzpqiuoaSvqbKmp6iupqi3rLGyt7q6vLG8vb6+xL+1wsHHyLe/wMW3xMO/u7/Ewr7EyMzKv77EwMCph3N0cmppXGFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HKvrvJtr3DvrrJt8HDwbS1u7WwrrS7raepjWlghoSHi4B7fX9+eHR+fHN3ZV9dXFxeX2BeX2NjYWJgYV9eXVxaWFlbW1lYWlxfZmtmZWdlaGpvcoWppKqlnpuhpZSepJuYkaGjqqOjoKalqKWtoJ2cpKassrC2t6ewrKiqtKu0urG2tq62ubKvurqxtqSgpKCmsaerqLmqpKenqKeyraCnpp+bpKasnp+no6Chsa2trLK0s7Swtby2u8HBsrq+w8GyubnDs8G9v7W4vL2+vMLHxMLDvsDEoIN4cWxhZl9rb2BUWV5ITmdPVEdFS0Y8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9taCelZ2hprq2q7Ozu7PEz8jLwsa4tsfAzL+4ybe7xbizxLizvsCrtbuxq6SusqygoY1kb4eFhoB8eXVzb21qamlwaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1vh5yon5WVmqGWnKKZlo2foaOnnKCgpKaip56bopufq7CtsbajqaqqrKyktLmtt7Css7WusrWusKqfnp+korKkpqm4raKmpqCorKuZn6CemZ2fpZqZo5ybna+pq6eqrKytsbK4r7i5u7C2vLy6q7OzubO+tLaysba1v7a9wL3Dwbu7vZeEenNsX2VeZGRYVFddSVdcS1BHSUpHQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vDw8++use4t763ssG0sbu7q7i5sKGeqKqml56QZn6Fhn94cm1vbWtiXmFmZl1dXl1dXVxdX2FhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3GMp5yTlJSbmJuil5aRnKKiqZ6cnaWmoqWcoKCbma6urq6yoKairqunorWxsrKsqK+yp7qzprWgop+co6Gto6Kqtaqio6aepaajlpmel5mbnaCal52dnZytoqunpKSmrauztKq1sLOrsrm0r6qvsrKzuLOuqayusrixura6vb+3s7GUhXl1Zl5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLMyMa/xbbBwMbOt8DEvbO5ubK/trG4uqyxtK2emaOon5Kah25/g4R/eG9xdHFoZWNoZGNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqGbk5SPlZeXoJeZlZegnqGdlqGhqaSfnqidnJqrp6+wq5ujpLiqoaCuqLaqpqetsKS4sKS3oKKcmZmqpqGarLivoqGknKKfoJOUoZSWlpuYl5aXnJWfqp6ppKKdo6qqsK6otKuqp62zsKWrrrOxsK+ur6anp7KtsbSwvLS5t66jlIF5dWReYVZZV1NSVEtNXkxPS0dHTExFPUE+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2nqKOqu8C9wLmutLjBzMfFwsO9xbjIy7LBwsGtvLu0u7y0uLmvrq+om5igp5OQioB8gHx3cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmmBlpOVi5KUlJyZnZaWnKCcn5ahoKampKann52fpqCqr6afoqS3qKGhoqi0oqWopbClsa6stZ6gnZWVqaGilK2xsZ+io52emJuTi6GUkZOYmJKXl5iXnqecp6GimaOlpaukpbCnpaOrq62mqa6vrquoqqmzpaasr7Sxr7y1sa+voJJ6d3JlYVxaXVhOTFJHUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3NzYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaett7u8wcW6sbm1xMnJwMPGxce2xcSywr/Fqre3vba9urq1squsppiXnqGLiHOFh352bmNhZmloZmdpZmptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVNUUlVgYF9gYV9hYWJkaoCTk4mQj5STlJ2VlpekmaCXnaGloa2mpKSjo6Kcqqulmp+lsaqgoZ2lq56ooZ6trKmprq2ioaKVmKObnJCrqbCcoKKfnpeZk4qekY2Sk5aQmJiTnKGjnaSgopWgoqSmm6OrpaKkqqOrrqWusqmmpaamtKapqK2ztbS5uq+prJ6McnFvYFtXVlVSR1FPSFlbT1JJVEtTTEVGSUQ4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kvq7Gtnainr7m5s8DIurXAr8XIzLrByszItcm8sb7DyKyxuMG1u8C7tLOpqqSUmZqbh39xiIN7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eXl9fYmRtjo+EkYePkY+ak5WTnJujnJuhqamrqKynqKakmaSvpZWZpa+qn5yZm6Cer5qcq7OgpaafoqOhlJOblpaSqamsmpyfoaCalJCMmY6MkIyRjZaVkJ2hoKOdm6OVm6CjoZeiqKOiqKugq7Ckrbelo6Sira2qqKuvs7ezvrWyq6+YhXRzaFtYWVNVUkVYTFFbWE1UTlBMUFFJTklCPD8/QT89NzU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62ns7auqKivrpupqKy3tqu8yru2v6zLxsW4wc7PyLPEure7wsiwrbi/t7y9urK0paiflZaXlYZ5dIB2d25taG1tbXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXVxcXl9gZH6MgYt/jJGKko2XkZeZoqCboKuqpq6sqLCkqZqfraCVlqSop52XkI+anq6XmKiqmZ+dlKWgnpKQkpGTlaeqpZqZmZ6elY2Mi5OGiY2Dj4uSlZGgnqGjmJWflZqhop6Um6Wlp6iooLGxprG8p5+jrLWrrqewtbC4tcCxrbGrkX5yc2JWVFVOUkpHVlBSUUxMV01KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OspbG3qqWisaudqqepsrGktsa0ubqzysW5usHL0Mqxtri7vcHDsa+xt620s7qysqGim5yWlpOCfnZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domOh5CKl4mUlJibmZ6pm6CqpqWsnaiaoKack4+fo5uXl4WEkpujkJWjnZaWloiim5uUi46KkJqkp5yVlZebkZGHlI6LgYuNgJCKkpKSoJqgopaUmJmVoqaZjZmkpqimoaC0sqeyt6Gcoresqq2ksrKmtby1rKuxo4l5c21dTlFRTE9DTU5OUEtGTk5KSk5NUUhNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2pqS2sKSnpKqloKilpbOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq25rqyemJmclJKGeoJtX19mcnB1cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhYWFtdYW9zdnGFiIKIgJGEj4uUkZSeoY+bnKOipJmll6KclY2HmJqMc42Dfo2XloaRmpCUjo57mY+cjIKJf4mYn6OekJOYloWNg5R+fnSKjnqQh5OQkJ2ampqRlZCdjqKjjomaoKGjpJuitK+sr62fmKW4pqaxobCunLC7qqmvqpmDd3NjVk1ST1BOQ1NOTFFMQlBRSElOUk1ISkpESkxGS0o9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKimpaijpqWmpqazp6W0wbiwtLDJxLe5wc7GvbOsusGrrcOtp6Kmkp2mtauino6UlZGOfXZ9ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVZZW11pbHJtf4V8dE5YcpCDl4eOnZeLlJGfmJ2VlJaVj5aJgJOJXztWb3yLlImAjJKMkIaGc4qFloF5gXuGk52Tg5WOkZCDhn2TeHFwhY19iYGRjY+XmpmTi4+JnIifmIiHlp6aoaCXp66pramonpats6KmrZmsq5ios6KpraOTfnJuYFtOU1JXTERUSlBMTEZOT0lFTFFNS09KSU1QRklJPTc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKeoqKOqsKintMG5sLWwx8K3s73Pv7mvrrXCp6rFqaKdmIOUm6+hmJaFk46KhnxydV1RTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFFCQH+VkpJ9iZWNhIqNm46WlYmSiIaVhnmJf2BKUW54ipGEfYSNioV/f25+f5R3dXZ4hI2Zb1GNiIqGe354lHZnd4aIfYqJlYuNkZKXjISKiJWEmoyChJKalp6dlKSjqKmlpJ6asKuhpKSRpqqWoqqcoqaoiXVtZl5bSFFRU01JVU1TSUxLT0lIRkpOTE1US1FRT0ZJQz03Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+hr6GnqKWnqK+tqrW8tre3s8G7tqe5yLi2qKi1tqqyvKadlo5/iZOolZSJfY2DgXx3cG5YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXFWPiZSJdH+HgXyFjJOCkpqLj3uGj4B2gHhzbnVwdI2NgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gHZycpJ3aHWEhISFe5WKiIqNi4B/hIuMgJSDfICPmJSclpGenamen6CdoKmln52YjKekk6Gglp6epIByaGFcXUpWT1JHSlhST0pMTVJKSkpMUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlrKuwsaq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGNlICNm42QfnaFd3t1bm5oWEtISUhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfHhmd42XmI2PfWh5gXZ4gImPfYSYkoFxh498d3tva36tfHOQin97hpKBfX90ZnZ8hmxvaHN9iYyIgGx5cX1xbXaPcWhxgX6OcEOLhIKDhX93d3qLhX2Me3V9jpKPmIqSmpujlpmdmp2eoZyWjYqkm46el46WmI93b21lYlpYWFVRSlNVVE9QTlBWS05LTk9KUU5IT09MRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg7PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmxr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mOhJJ5iI2KiXVwe210cGlsaVdLRkdFQUBDRElMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFhdZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnt9fnt2b3RzhYJ5gXhwfI6MipSDlpeYmpCSlZeZl52WjIOJnpGLko2GkJZ/bmlub25YVVhUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCjrKqota+urLS/q7zCv6aimZWkl56NhIuUoaGYmJGTi3OOen+Fi4V0bnRrcGxka2pYTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXGCniGKaaXR6ZX9wbX96i4l2gYiGdGyakXRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxf3xocXF8bpONj3xzfXxxcG51bYJ/d3l1anmJgoiJhJaSkpCLjZGUlI6XjYB5iJeIhoqGgJCIdmpqb2hlWFFZV1lZW01QVVZZWE5JSEVKSkhHQkBGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfp7uvq7KwwrG7w8ealo+UmYuOhnmEkJiUjZCMj4Zxh4Jzh4yFem9ycG5vZHBmX1RGSUM/PDs5Oj9AQURDRUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgYWBeoSGhnlyoZV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiYBnZmJqbnJscIN1aW9YdXCOm5J3bH97fW1xbXCAenN1bmJ2g36GgIWQkIqKiZGLkYyLjoN1eIqOgH6DgH2PenFwb2tgW1xeXFlYYF9STltaWFdMSEpGSkc+QkFCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ2kp56vlaW1qq6xrsGyu8HGlpCMlI+AiH1ugZCSiYOKh4+FdYKDbJWIh3t0eHhsd253Y2leSVBHPkA3NDQ5Ozs7PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgISZhJucYYaqn52Lg5CNeneIfomIjXOKl5CDel1kcXR6e3eKbWhqYnlvhZCCem6Bd3SEenB0eXdrbmldd4d8h3yHh49/i5KXg42FjIZ9cYR/g311d3t8iXZwc3RlZ19bW11UXGdeV1FVWFtVR0pKRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIySnJ2fppGgq6CxqK/AsbrFupaOkZOHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fIF+cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkqiHgJiYipx0bXyBhod9jmhnaHh+boWHgoVxhIVHbIB3cnl2aG1rX3d9g4h/iIWLepWdm4mLiJF/enWLdnx4bW93fX9zc3JsW11dW2NjWGdmXFVPUFZZUERMS0ZOSUNGQ0NBQENBPTk3Nzo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8fYmFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9Pj9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiJGBmpWCoaGYlZuapa2Tmbuxp7vHw6iLjKGlj5SJgZF8cYOen5Gcf3aFhYqQiJBpaG+DgHSMh4SLcYWCd4d/e3aFfW52dWaAlI+GiYmHiIehqqKWiY6Yf3qCiXp5b2dreH56fnJqZF5aWl1qXWFmYFlPS05XUlFIUEpETkdDSkRCQEREQTw5ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMgIGRjoqam6Sdoaymq6+wl5GRg6GUhHh3f4yUfH+ShpKVf4qAkpuOg4CBjIuCiY2Df4l/bXBqXUJBNC0tLy8uLzAyMjM0Nzc4Oz0/QkRISk5RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2aj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPoZ+TmJKEi4WPmZGWbHB1iYuCloyNj3ePhHFshIGKlpGDhYhyiKGWh5OJjo+WpbWpm42VooOHk4N9f2tqa3yAgYFzYV1jXlpma1xsa15XS0dPU1FOTUxGSVBDRE1GQUNFRkI+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+l5aalZ6enKegqZaTmJ5nZaSafoSSkXmAkoiQkn2KhJiSkYKAgIuNiYWQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0VOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZyopaKZoZeilZ2fqJ6oq6CorKmqtZervqu2yMi3ydHPvpugcGmrqZ+Ek5KFnKGam5mnkZGJlaKamnh6fpSYkqGSlpiBlJ57dpWSq7KIjZeffZSdnI6Tlpmkoqa2sJ2RmaiIlo+NgYhsc3J8f3xxaGBcYF5iZ2NgaGdbUkVKS1BPSUpMRkZNQ0hMRkZDQkdEQDo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459e5SOjoqfkpeelpuqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJjIqEkoWDhomBgIZ3X2JQNDYwLTEvLC4wMC8vLi4wMDE1PkFBTVFSU1BSU1VSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpOT1FZbYaQd5WLo6eqtL24pK6srKeotKuwtrKyrbuxs76cs8Osu8nLt8O/uKWjsLKsraqji5aYhaamoKKXgaaZjaKqqKSIhZSkoaCqoaSpj5yxi5Wjp7e7m6CjsJOinaOekaSiq6+ts7WilKSqiJmJkoqVeXp+hX5nYGhcZWJdZGNfZmZfWk9DSUhUT0ZITEZKR0VGSEFLRkNGRkE6ODY9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGThYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMjoqKeoeCh5GPg4WAi4WGh5KGgoSJhoiHh3FuYUBFNjQ8Mi8xMTAtLCstMS4tMz9EQU1VUVJTVVVXVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqscHHw6qzxbass7+zuL62v7TBtru7o7fFqLbJx7W+ubSoo7StsbGbmZKan4mnr6ullHafpJehq7GzmJaqraiutruyuqyvtaKxq7G1u7e0rrWgp6ejqJqpsK2yuri4p5u2qYyljpGTn4Z4goN1WWFkVmVhYWNgYWZfW1RKREVMVVFISUpESUdFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRldRSkxbWlFjZFd5dXGBlH2Eh5N2hX+AjHu/u6O8grSUk42bj4SIj5KJiXmGgIyTjYeEgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFZPXlVJS0pBQD5HS0ZFRDs+QDdENz9CSkpFRldUUF6Ppa2jsbTDtrjBzMm2u8S9s7PAt7fBtb+wt3Sxs6a6xaSvxrmxs7G0qKS1tqqxoKGWm6KSpbCupq2rp6SYoKyzuqKpsrq0u77Mv8XFvb2zwre6uL63ure5rKywprGqrb6wvbvCwqyZuqiUro+Xl6uJfYJ8aldiYVhqZWplV1tkWVZUSUdHTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVVadmpwf4+EgY6EbnpzeYdiuKGZo4mVk5aTk5ONkJaSh4Z7hoGNloqBhICKenyLh4Z8ioOBioOVfXh6dWVPXGRHRUw6UWNhW15TRj87SFBEWmNRUVlYWWdZVGBgTVNPRUE/SUpIRUZBQEM8RTZCPkhHSkxTWlRdk6+4tbq5yb+6vcnMu7zAvLe1u7u3vbS6scZgdbKlsZqeqr2qpairqqOisrWhq6ielZafmJ+upaempZ+jlKKmsbSnsrK9tsG908nK08bCxcvBysPAvr2/u7y3tLC5t7bDusW9w8iwnrmqoquOpai2iYB/cV9iYl1XYV9oZlJYYVZSVklFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ0MjY/OEA+R0tSVFNRUE9RUVBKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdsbHGQjYWQc2xycnOI1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaKf4N/gnh6i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV9uX1hnZVVZVEpEQUtLSEZJSEhHQkk5RD9IS1RUVlxaW5K5wLm9t8bAurjKy7q3uba4ubK3tbSutraYZHWonK1wXqGtnJigopuknqullKCfkJSOlpiXqJ+ln56amoSknaylqrCst7C9udTRz9fPyczRzM/OysbAv8LKvcG8wcDExMXKv8jOtKS7sLSvm6u5vJp/eWxdX1xYXWBZY2NRXGBTUEtDQUVGRDxART5CSEJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0k7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KQlG9sb3V1iLOsoaGfi5mcmYyNlZGbkoWKin6Ih4yQi4l8gYNze4qDhXuJdIGJhpV/c3t4a211e2hyZWlsaWZqaWhgZmlobFpudJetpLyIh2dbb2hdWllUSEtOT0pLUUtUUUhMQUpHS1BfXmJmaWGXt8ewubO7vrWxxMe1r7mwsLursrGnqresjbannZunmk+anYyOoJaRppillYqTk4mQiY+RkZ6boZealZaHnpqmm6yvqK+ns7TU1NTW0svP1NXO08/NxcLJ0L/KycrJ0sfMzcLQ0riww7zEuaW2usSigm5jXFxdWGBXWGZaUV1XT09CQkhFQkk7QUQ+QUc/P0I3O0M+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAtMTM0OT05NywuLDE7Rks9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmIJocW95eYOgqp6ml42bm5eLjpWRmo59iYuFjoqKi5CHfISCcH+HgYZ7h3KDkouPfnF4dWtxeH5xe214c2xpgXBtY2lucHhpd3x+y7/C36dtY3huY1thYEpQUlVOWV5QXl1NUE5UUVVUXG5udoJyl624rLSnsLarrLzAsau1pqW4p6yuoau0o46xrpqYmIyRk5GEjpuBjaaRnImDi4SKiYSLg5OVmJeTm5GcmJmZnp6rrKSnoaytz9LV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbFwM7Hx8OovrfQnnpuZV1iXFZgUl1bT1BUUE5IPkFGQUJFPEBCPkVEPkA/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk+NTkwMTAyMi0yRE4zKS8zLjMyPU4yMzhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bHdwfX5/oZ6eoYuNmZOTjIyTj5aFeYWPkI2LioiRh3+Ce3J+f4GHeYR1hZORiX9vdnJrc3x8dnxzgXdxa4BzcmhvcXp5cnu+y5p+jLKDdnKEdmhhal1DWlpbV2VkWGVrU1hdXGBjXWN4e36LgZmqpKShoKGopqqwuKqltKOhraKjraKnsZ+JppqUkpGJkY6IgZSJapWijZmEgIV9kYODk5ati5WNlZmOhZKQnZensKGgoaSkqMjNz8jCy9HU0dTSztPNxtbSzNTY1tbY1NfVydTazcnX19HKrMTDy4tzb2JgX1hUWVJcUEpHSUlKQDs6O0VBRDxCRD5IQj9CQzs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS07UjAxNy81MzJGRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN4coKJgJ2VnZSFi5aJj4qIjoePf3iElJmKjYiIi4l+g3hze32Dh3d/eoeRloCDbnhwbXV/dnh9c4V8eW2HdnRufXaEdXl7nbWMPEGLxqV+jXxpZVZJQ2ZjZWNoamRveFtfZmhrbmlugIOJkYudnqCdkJeYn6OkprKkpLOgoaWeoamgo7Gchp6SkpKQi46LhoOQhH6cm4yNg4SFepR+gqmVo4ySipeSi32XipqRqrOYmpunnKe9w8a4tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2trS1b/LzLR4dm5kXVlSVVBaVkZHSkpFRT06NzlAQUI6SERARUNBQ0I7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJTMzkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqCh3x4hZaXiI+Dh4WHeoR5cXp7hIZ1eoWOjZ16jHB8b296f3F7gXGDh4Fujnp0d3x8gnV/fIeIsHRYqcK2jJKCcG5iPV5ocnBxcG54d4FlaW9ydXhye4uHjpOSm5WglYeMk5ugm5+qn6CtnKKamZ+lnp+smYuajJGRjYR9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI2Ui4Z7m4iTj66qlJWXnpimrrW9qa29xsvIycvLz8jD0crU1tnX2NfU29fT2dvWz9va0dbJ1MuVeXtoaFtZUFJTXkhDRUlJPkE+PTc6PT87Pkg9P0FBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzRCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCagHqAjX6CgoKEfoR8fISXjoeLfoaGgHeCeW57e4eBdHmSno2gdo91gnR1gX10gIRvgY+Cb5KEdHyBhXp2hnyJt8alwsm3gZabj3dwZU5mY4F6gXeGopCLeHl3e4N/fIR2bZOWlJWPmJCDio+WmpeXppyXoJefk5KXo52Zq5aRkIqNkYKMhYmIgYWQkZ6cmYmFi4GGl3qIiJ+Xj4iNiouCfKGJkIu8oZeTl5mcp6Wlrp6otb7AwLnHyc3Oxc3K0dbW1dnV19vU19na29fb2tnYztzGhnp5Z2hlYFRXVlVNS0ROQzs8PTw5Ojw+OT1ANj0/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eot8foB/gH2Fe36BkYmEhXqEiHt1fXRufH2GfnR+kp6Rn4OSfIZ+eI59eYqKboKagHSYhX6BiYV8fpB6j6mPkMKgvIyco5x9iYR9iXOMin5zppqcmJSFe4+QiYRoR3CgpJ2Mi5CShYmLkJKVj52ak5WRl42MlZ+dlKGUko6NkIt+kI6Oi4SIkpaan5+JjJSSnpGCi3+lmYiEjoKGhIClhoqLuJidkZWWoaagnZ6do662urWrv8bK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3h4d2tpZFdgW1RQT0hETUI9PT45OTo6OTk7PTY/Pj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmAjopxcnmKe3p/fX98iHp8e4uHgn50g4Z5c3pzbYF+hX13hZuhm56UkoCLiH+Yh4Cckm6HqIV6oIt8kI6DiIScfpqRio2jop+QpK6gi5GLhYuBkoZXcq2Ln6ubj4OYm5CQjlyCopGCjJ+TlYyHiIySk4yUlJSPjI+KiJabnY+VlpGLkpSFgIuIko2Jip2WmaOjhpKdlqGKioiOnJCDiI+Ag4eFpIaMkLOYnJKUl6GgnpmSnJ2nsbispbzCx83Hxs/Mz8zO18/R1K7W1dja2Nra19bZ2p9vfHRnZ1xdWFNXWENASUQ+Pj46NDk6Ozc6OzozOzs/PT43Ozk6MTlHPTozNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieG1ifpKDbm13i3h5fnqBfIZ8e3eGhH9zcIWCenV2dnSEgoR9f5Kmo5+lopaJnY+Ul4uKqJdyirKMhKeRhJmThJmLopagmJOJm52hkqmvn5GVkI2NiJWLbo23hZrEyLKcoaWbnJiWkbKRZKTNx5aPhYeJkJKNjZOUioWKioaWmpuPkJSThpWXhH+Pi5mIjZCql5eko4iZnpabiI+Hl5eKhI+MgX+Hj6WJjZOomZaTlpmhmJ+Zk5yborO0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6Ccn9oY19dXk5KVFpCQUdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj46RU1GSFJXU1JCY4FGdYGOfXxtfoh4en56gYGDfnZ2gIN8bG6Lf3l8eHh8hIeKfYqjs6ejqrOhlqefpaSWla6ig5C4lZKzmYyhoIykm6+jpJ2YkKeWp5mtr6SXlZaUkIuYmZagwI6kybirm6KmrZiRm52ynYaFqKKcmIWIiY6VjYuTj4iBhoeIkpiUjIuTk4aUmIaEkZCcdJGZs5aXpaGInJmTj4qQipeaiYqWjoZ9jJieiZCQnJqZk5iYn5SgnZWem6GxrqKkt760xcfEvcPDv8bNysnSp87N09LQ1tjT0Ni7cnl2XGBVX1dQSElORUJDRTU+Ojc2Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODk1NjY9OkpGREdOW1xZSWZgO0iEi3p7boWGenyEeICFgX5weHx9fW9zjXp9gXt4houJhoOSp7usqLK9r6Wts7Ooo6KwrIqZtZ2juKSVraSWqa23pqSin5mpmKmjr7CpmpmclJWRl5+Xmbu7rcmhaba4q7CUmJ6jq5OXvqNeqrKCiYqNlIeRfI6OfYOGjo+UlYiHkpeMkJWNi4yXmJKdmbSXlqudi5uUko2QkoyZm4qSnpCLiZWgoY2UjZianZObmJ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8jC0aHGyc3NxNfW0cvToXB6aF1ZU15ST0ZEPjxDQUE4Pzg3ND5GPDw2PDM1MzU1NDU0QjM5OkJNOkE7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGVHYmBicElAi4p+gXOGh32BiHWCioN/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruztMG8tK2rs7aMp7Kurryqm7ukqK25uKumpqKho6Oor7KxqpycpJibmJeeoqWlkqO5rqjAu6ytsrmlpKd9iIecrL2wg4yMi5CDj4ORj3qBh5CMjpyIh4+XjYuVl5SQmpadp5qxmpGsnI6aj5KOlJCQlpeOkaCRiZWbo6yUlo+UnJ6UoJ2bmKChlJqep6akoqSwsqbBx8OvsLq2xcTCvs2nx8PHw7zV0c3Eyoh0c2JcWV9bTUpCTEBFRz9BP0I7OjQ+QTw9NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxmRmBpZ1pdW5OMjIh7h4uGg4x1hpCKgW9+fIJ/cX6BepV6kZSUmJCTlaezxsm/wszBw7nHvLqvq7m7l7K2urLArqXApKuvu7yqrauiop2nqq60sKqbn6qboZuVn7C0p4uiurq1wburqZyypaSolIWOqsPEpIKLj4eIhIaVlI16g4yRjpGhjIyUko6Il5+Xk5mVmKagr52MqpyNlY+SkZSVjZCVkY+hlIaXn6CynpSalKChmaSfmqCcoJSYnqakpqakr62lwMTCrai3tcnDvrbOssS+xLyz0crIwrV0eW1cWFxpU0xIRExLS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk1lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoKQeY2hlqiampi6vcjIysHSycrCzLzBs627vqe5v728xLeswamssru9qrCpo6WjrK2zrba1oJ+unqWimKO0vKmbqLzBo7a2r6uSsK2rrJeGmqqmpZGCjJOllYmAdYqSeoWNkZCen5OPlIuPjZSjmZeclZSjn6qfkaWajI+PkJWWiHyPlZKSo5uVoKKctaaQnpelpKOlnp6mmJ6Vl5ulo6inorKsqLzAxK+ls7fMwLmuxLO7vsG4rMLDwsCYbXlhWFdcW0tLTUpGRERJQkJBQ0s6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUY3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djZeOnpKJin+Jn5OEd4V/lX9/kIiKkH+VoZqupqOYwr7Iw8fF083Ozcu7wbevuby0vMu8w8G1tryts7+5vK6vqKCop7atramxt5qeraKnoZ2rt7eppa++w7G9ubOnqrWzra6WlqWsqKCRjpKxxaeVjn2RlX2IkZmPqpmYk5OPk5WTpZ6TnZmToaOinJifmYuMj4+eiFqQlpeSlqWZZZijnrKllqKWrKyrp5ueppeYl5iVoaSopp+2q6m6vMO0prO1y8G4qbassrq4rqi3ur24g2xuWldUVU5GSlNOSz9BR0RESEZHOTVGTTs+Nz5BSi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxoVzs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZCDh6aTiIGHgpyEg5WQkJSOmqKfr76uoca8xcTGxs7OztLKvru1sbq7vL7PtsS9t7m3srG1s7izrKacq6u4qqinr7CXo6+kp6SktMCwqqy0vsK5wLmzp7m1uLKulaWtr66li5OVoY10wZp+l5mFj5aajLGVmpmVk5OZmaWjlZ+blpqpnZyhoJqLjY+WnWBKlpyalZqlllSWsJ+vnJ+llK+urKaaoKWUk5mZjpyfp6KZtKmqs7y8u6qwssfAuKWrq62xsaOhsbK0pHFuZlxaTlBLRFBQUFE7R0pJR0hCRD45S1U/QTo9RU0wNzU0NDpCMzROV088SktPVU5RSk9ISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBDQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aVg7OkJDQD1RRVdSc2JXRkiql5mgoqivmZGXh4unlo6IkoWfh4Sdl4+eoJqjpLXItKnGusPDx8rIyMzNxr66s665uMHBzLbIusG4tbqxr66ytKejm6qztKqopq2smaSupaSorLq/qKu2t7/Bv764srLDsbm9rKOutay6poicmKabdr+ghZmdjpOZmouvl6Gcm5eVm5+hqZ6ooJqaqpqip56YkI2RnYNudpKimpWdop6QrbKjq5WoqpeqrqWkn6Wpk5KZnIiUnKKelrGmqau6tr6zsq6+ubago6eopaecm6ypqYxjZWFfUktNR0hOSVVMPUxETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFUSlFKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5ScoZ+7r5mUn4uTqpuRkpOJq42Hop+MpK2Uo6O2xr20wLrCwsfIxcLNyMK9ubKvubTAwsq1xrHBvLS6q6itrLCjopmqtLqmqaarqp2or6ejqqq+u6esvLO3vca8t7W4wLG9wLOptberv6WPo5eRoqC8n4maoJmXnp6Pt5+pnKWjm5yhmqils6GbnaacqKqemZWPlJuLl4mMpaKUnaKeoLSvpaWTsKuZq6yenqOjqZGVlaCDkJ6enJWppKKhtLS6ta2otbKznpyipZqXlZmqoZ53YFxfXUpIRkdNUUlNRUZGQlJMSkFFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRKeXpJ+ew6ybl6SXmamclpqaj6qVlaimla2tmaGrtsTCu762wcLAx8S+zce7vbmyr7izv8PItb+vvLa5t6ajqqytoKCaqqrEoaSoq6aeq6+soqmov7emrb2wt7bHtrW5uL+xv8G2tLO0r76jl6OWlJyUrqCRoaKlo6OfkL6lqZ2orJ2doZumn72imKOfoqmroZ2WjZWek56Hj4WNk56koJ21rKaclbKnma+on5qpnqCNmZWfhI6hmpuTpaSamKyxtrGqpaqtrJyYoKCSjpCWqJ6UaGJZYV1OSUdKTktIRURJQT1QSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwwTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW9SRjxLeGViVkyimqOcnsWsoZ+snZ2uoJOjn5aloKapq5e2saOqsrXEw72/tb/Cu8jCvsrItri1tLCzs7fBxra9sLi0ubWfpqyqq52dnqWjwaWgqa2fpKmtr6Kmp721prG8t7a1w7Kzt7m+ssPAt7ius7W1o52klZKUoa6gmaKdqairo5rDramerK2bm56ZpqC9op2lmKurrKahmY2Zn5KeiY5Xf5aepaGguKqnk5i2o5+yoaCbrpaejpmUnYKOn5eVjqKklZCmrbKrqaGipaWVlZyYi4+Rk6SeiWFkWmNgTEhKSk5GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dySEU2PXVlXEtNnp+hmJ7Dp6Wis6GcsqeTqqSgpJ+sqaydu7CorLWxx8TBwrPCw7zGw7zEyr2vsbatsLSvv8S1ubCwubWsmqiwqamanaWhp8Ksm6yxm6qirrCppKe9tqa3uryutsOts7PCv7LGs7q3rLS2raqippaVlaSsop+fmqirsK+vvLKmoKmpmZmYk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWdmqKfp7Smp42YtJyjr5qem66QnpOXlJqAkqGVj46foZOLpqywpaahnKCekpKak4WLkY2cnn9hZVtnZUpJTEpSQUNASUc7O0c/OTlOTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVV5mckA4PEiWd2VBNJ+jn5ugw6ikqrKho7SplbKsp6KksquuqbuyrLC1tMa/xMO1wMS9ycS1wMjCtau1qLC4rMDEtLeurLa5pZmrsauqmJ+ml627tJuosJutn660saequrKnurO3srjAqreywry0xae+rq23taqorKGXl5KmpaKjmJilr7iusrW2oJ+opJmVlZOkoLeipaaWrrKypqqmoZ6bmpqWmKifoJihnq+yoqaNl66ZpauXmp2kkZuOk5eZhZaflIyQnJ6Ui6mpqqKnoJieloyOmZCBhZWJlJ94Y2hda2pNUE1OVD1DQU5DOjpJQDc3UU9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdITlA/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVKcGhWQ1dGjHlmQzuko5yhpr+mqK+woam1qp25sKujqrS2sbC5t6+2uLjEvcPHvbzDwcbAuMHGwbqqtqStu63Awre3qqyxu6KVrbCtspalp5Cquamgp7CdqqCwtLKqqba1rLyssrK5t6y5sMK6vb6mw6uwt6+pq6unnpiZq6KioJGYobGvs6uxupucqaCZlpKXpqG3qaWjoq+xtKuyqKufm6Cgm56lnKKWnaOzsJqfkJOlmqCompWhnpWYiZSYk5aXnJOIkJuZlI6pqKefo5uXm5OHjpmLfYuWhY+bamhsYWxuV1BRWlRBQ0VUQDs7SUE3OlhQZF5QVldEWV5dTUxSTl5LSj5aY15OSFBOW1VZUEtTV1pJP0RYUERGPk4/PUlHR1FQQj1DRkJNPzoyRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT4qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oaqwq6OxuKmltbOsoKy0va6zuLy6vba2wMK/yMS5xMHAwLjEvcG3r7Woq7eyvL6/tKmusbael6utqK2Wp6iOp7ufpK2znquisbCzrKm2tLW9ra+xtaywtbHAusS3q7yvsbisraqjsaaepaqgpJeQmZ+zqrOqq7OanaebmpWNoKaktK6noq2trrGns62yqqScn6iknpWhmJuotamXmZKSn5meoJ6Qq56Xl4WVmIudmZyTio2Wl5qXpqWioJ2VlZeTgI+UhXqOkoOMlmVscmdwcV9GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTT1FVUpFREFNP0FGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCslMisqNUsxLidfX2FVMTUwPWBWXjgpQzNZVVxnSzWMemZMQKSaoKSst6OsqaWurrapr7S6p6awt8W3sba+wMG1tLrFvszFucK/ur+5xLjBubK1rKq6tru5vrSqrbC1mJinq6qrm6yrjqu9nquusaOroLGts66utrG5t6mtrrGota+zu7zJsqq1tLG1sK+nobOgmqitoKWVlpuasqOtoKavlqGkmpqSjaKlp7KpoqeyrKq2pa+xta+kmZ2tp5qYn5mZrLiil5OQj5icoZiXlKuenJOAk5iNnZyalpGKlJOemqWhoaCYlZGTlXqLkIV7jIqDi5JrbnhtdXtgRWFqWUlIWVs9e0pHRTZBYlRpW01cYEpbXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENeUVwuKkIvSkdQW0gzY1lUSkSZlqCwqLGpraWkrq61qLe0uKSrtLfJu7S6ur++tLS3w8DMyLvDvLa+vsC4v7yxva6nurm3tsG2q62xuJSXpq6rp6KxqpSvu6SssrKnqKOys7CxsbWxuLOorquxp7ivtbTDxbaptLWssa6qp6O2n5+nsqCklJyalbKep5ygqo2po56blpilpaW3p6KytKynsaeusLWspZmgrKibnJ2blKm4nJSOjouZnKKXkJiloJ6Vg5GVkJ2cmJaViJeQl5unnKOgkpWQkJZ2hJCHe4WBhI2LbXF3dXt+XEtlbFxLTmNcP2J7R0k4R2dXZVtNXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydGYUxWJS1CLj1FTVE8M3JqSkNDkJmlrqWtrqunpLCys6q3sLagq7W5ybmuwbzCt7OxtcLDzsW/wb20vb+/ur+8s8Soqbmwtra/vK+rs7KcoKewraWlsKWesrWsq7KwrKmotLmstLK1rLStqayoq6m5rbGxx7+4pLmwqa2tpqitsKakpK6jqZyenJuvmqKjo6OQrJ6koJ+iqqWmuaWstbWlqquorK+2rqOeo6iqm6CampKktJqOiY2HkaKglY2UnZ+TkoSOkpKdm5iVlIeYk5WZppufn4ySkI2Qd36OhXx8fYeKiXF0cn59fVxTZG9eTlpmXUZEllpHO05tWGFbTWBiTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGRISis6ST8zQklTLD6PazxHSI+bqqqiqbCkqKSztLG0tbGxoautvcu6rsC7x7G0rbTCwtHFxb7Asr7Bwry/t7zEp6y3rLO4u8Cwq7KtoKSnramopLCjqrGqr6ywrq+urLO7p7awsqmyqaulpaOtuqyqscK5tau5qKioraqosaWqpKKuqqiinpyjrJWknZiemaydoqepoqylo62suLGyoKmioKuusKyen6eoqZmkmJmPoKeYhoOPioufoI+LjJabjo6Fh5CVoJ2Wl5WGlpOTl6ScnZyKkY+NiX9+iIZ8d3+HhYZ0c3GIdWxfWWBuY1FzcVxLO4R8Rj5XdVhhWU5jW05VVlVXUFxiXlNPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLklnREY4PEIwNUVLWDFAlFo+TEWUl62noqqynKmpr7asuLWuqqWrqr3Iu7C9t8KvsKyzxMPOzsO+v7TAwsS6wbTJxKyvt62yuL++s62uq6WnqrCpp6ixpbSuq7CurbGws62zu6S4s6ysrqern6KesLerqq26tqW1taOpp6ysqq2hqaemsbKjpqWhoayWqqGUmqCmnqSiq6Ssop+nsbetraOlopupqq6pnaKlpKSYoJmWj5idk4KCkImFnKCMio6MmY2Qi4OMl6ObkpCbjJOSkZSimZuZio6KinyGgYKDenSAhIJ+dHeLo4d4al5gbmdXZYdkTkBnkkxEYnlXYlhSZVRNVlVVVE9cXWFVS01pV1VXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIY/SEZElpKvpKOqsJirqa21q7axq6Wrqqm8wMC4uLO7taWyr8TJy9G/wbu5wL/CucG6wcSusrWxs7vAvrOxrqyrq6i2qqatr6u5sKixsa+yrLaqtrWntLasrKSpqpyjnrOzqKiktLSgta2gqairqKunoKurqLm2qaqqqaKpoKybkqmhnaCkoqajqZ2cprWuqKapoqOXpaenqpyipKOfmZifkY6PmY5+h4yHhJ6eh4SKio6NkIyEhpWimo6MmpGSkY+Sn5eYlouKg390hoF/f3h1g397eH6BiJ2Pb3FnZ3F4XGBziGpPXZhWSG14VWRWUmJQTVVUVVBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKigvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg/Qyw+TFRfL0pqNk9EO5WOsKClq62Zq6WsrrO0r6qlr6mour68wLCuuK6hta/Jx8jRwL69u7zCvbrDwb+/rrKysbW8vMKxsrOqs6iktamlrbOzubCjrraxr7K6q7muqq61q6qeqaufoqC2raihn6+zobSqnqinqqOqoaKsrai9r6yuraGnqJ+rmZCvoZiioainn6iamaqwqaOfrKKhk6Kjo6eYmqill5eYnY+Kh5WIfY2GhYSkl4WCgouGjo2QhISToJaIkZ2Qk5CNkZyUl4+JhYV4dIF/fXV4eYB7dHN6aYGGo3VpXmVrgXVniIt8UlhwXkp4c1NkU1FeTU1SWWZOTFZZZVlGU2lSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8Pkg3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGg6MzhfPWFkP0YxQ1BbWytITjlVQTSQj7GfpKaro6akrKa0srGqpLCnqri+wbuvp7mqp66wycbI0cK8v765vr+8ybzBuLCwtLG6u7jAsrO7rLisorSmp6yytrmzp6e7ta22vbC8pq2stautnKmvo5+lrKqnnJ6qs6SzqJqqp6mkqZ2jqaepvqu0r66dqaSgrpybsqOVpJykpZ+kmpqoq6Wem6qhm5KboaWdmJepqZGYmpOQioKPhX6PgoCIno+Gf32Lh5COj4R/k5uThZOijJSSi5GbkpWHiH5/cXp5fnxpd3x6dXBwfWiFeISHZGBnY3KFem1neV1eVkJXem1UYU9SWEtMTnF0XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mYkFKN0dTYFUqPTtEWD4qj5SxmZ+fqaWkoaukt7Kypaixp6y4wb21sKO5raiosMPJyczBtr2/tbe/usi2w7W0s7Wxvbi6vratubW/raGzpqqrsLW4tKuevLyossCzuqCvs7WqrJ6usKOcpaipop6cpbGmr6CfqqmooqmbpKigrbyorrCuoaujpK6enq2ml5+boaOcn5uao6qimpqkpJWXlJ+ilpuWpqyLnpGQkYyCioGAj4B7mpWNiXx+i4aOjYuKhJKYkYeUo4mSkoeQmo+TgYd8eWt9dnl4Ynt6cXBxcnhogHNqg2dkaGFuc45tYmlwYHBBXHhrVl5OUVFKSk1TWVZNXV5tV0RYYE9eUEhNREY7N0hFS088cmhKSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDBCaFkxM1M9ZV9ETDZLV2VPKjwyT1o9IpKZrJmfl6ekop+no7ivrqKvsKmruMK6s62fua+rqLS6x8rIv7fBvq+0vrfEtsOxr7qyssC1u763qbm3vauktKeoqrCuubGqm7u9pLDAtbShrre1pqensbOgnqSmp6GlmZ6tp6ieoKmup6Cml6OooLC4n6Oxr6GsoayknKamqJqam5+jlZ2cmp2pppabn6iSmJOYnZKZlqGqkJqJjpCHfYd/go58fKGNjYh5g4yFiYyMhYeSmo6JlZ+JkZWCi5eMkX2Ee3NvfXFzdGB5eGlvcHBvaX5xY3psaWVjYWaGf2BbcmpyTU1/aVhaTVBMSkhQUlFJTlxfblNEWFpSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpoSCo+L1lYNSiXnaWYnJasoJ+hpKG3q7GktLSqqLnEtbKuoLesrq2wtcbIwLe/wbmwtL23v7u/r6u9sLS/sb3Duam7urenqLWop6uwrbOxp5q9t6StvLavn7G3sKilp6+xm6CkoKOkoZebr6ahn6Knr6KgopOkpKO3sKGmsaufrKOvmJyqpamfl5qdpZObnJqdpqqZnJyllpWXlZyOk5ejqaGQiYqQhnqEfoSKeo+Xio2GeYKHhIiLjoWNk5iMjpaZio+WfoaXi496gHpwcndub3RfeHdkbGxraWiDbWZyaWtlaFxjc4BfWmt1aVpJfV5bWE9PSkhIUlVGMjlfXmxQRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIqOysxMzljbDg0R0FmW0hURFVdaEUuOzJhVCwylqOhl5Scqp2loaKgt6quoLq5pqy9xLOwrqK1r6ytr7TDxLyzv7q3sLO5uLq4u66twLO0uK+/wbisvLq1pqKzqqeps6utsqKbwbalqLW1qZ6yu6qnpqmvrJmip5yjppSYorKkmZ+kqKmcoqCTpaCkuaikp66nnqWhqJKfqaKhoJmbnaCSm5yWoKGrm5uZoZWSlZaajpSTo6ikkIiKj4Z5hHyFhX2djYqLhnmAhIeIh5GFlZOSjJCVlI2OlHuDmI+Ld357bHRybGxzYXh0aGhqZ2VvhGdnaGNmaGpfaGJpZlple2NgU3NUW1tTTElHSU9TQCEqaV5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc4ZE4nMp6ko5GOpKabnp6do7Wsp6q5t6isw8C2sKyita6nr6+3wMC8ssG2sa6ytra4t7asqr2zr7Kxvb+3rru7saWetqulpbSpq66gn8KrqKWws6qstbudqKqrsaWYnaqepqSRmaatopiepKmhnKKdl6Cdp7amr6quoaGenaGVoKafoaCZm5mckpmdlKWdrKKYl56VlI6Vl4yPmJqpoJGIiouJeYV3goKCnYeLgol8f4SIhoSQhJaVj46QkZGRjZJ7g5WOhnJ9fWZ4b2tqbGd1c2tjZ2RjdH9hZGVmZWlqY2pxWV5YXm1kYU5oV1pgVklHSEtNUlg+OWBsaUdCVFNcW0lJR0ZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQWZIJTWbpJ+QjK2hmZiglqS0saKxvbehsca7ubCxo7esqq6pub27u63Asq+urbavs7izqKu5sa+utLa7tq+4va2mnbWroKGwpauunqTDoLKkrrGvt621nq2vra6imZ2oqqWelZuopZ+ZpaOonZqgnJScna2wprmorqOhmpqdmZ6jmqSdl56Ym5SaoJKolquom5OcnJKMlZmNlJSZqKeNjYqJj3yCdIKBipiFh3yJiYSEioyIkoSTnJKSj5CRlo6Qf4CMjYNvgH9meG5oa2pncXJrXGhjYnJ/YGRnam1sZ2ppZmxcbG11cWFUYmhkZVlJRkxNT1hRUVZhZYFUQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUllQyc0k6Kajo6wnZqToZqpsrCfuMC2oLTCu725saW2r6iupbe4t7esu6+tqqu3qrS5rqWztbGuqbG2trCytbqnqJ+2qZ6eqaKqrZypwJitpK6wtrWtrZ+xrbCqopuco6yom5Wcp6OdmqmipJaaoJ2Rm6Orqqm7n6ikoJiZmZ6gj2uilpiccYKWm6SAdZKqp56VlZ+RiZeZgJaKoI95hpSNg25qfneDcWyGi4Z9hIuGb15jYGeEl4Zri5CUk3V3i4R+g49/ZoaAaHVpZldcaXNuTlBqY2ZxhGZeZGZubGleX1+JkISGZ09LRDhFVGdeSkdQUFVVS0hTYW90ZUZbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzU2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFQZD0rL42kmYeVsJuck6Cbqq6ro73Fr6m3wri9vK2mtrClq6S4s7KzsLmtqqestKawtaOouLa1qKestrKutK2zoqmftKueoqScp6iarLyVpqWvs7itrqWorquspaGenKCnppuYoaalm5unp52TnqCYkJ6oqqO1sKOjo52Wl5iXo4ihjpKah6GHlJ2hf6V/p6uek5KbkoiEcniNjoSIoXaIjWmXiGZ9c3ihb4iHhH6Ne3+hoJ+ZgHuHnnSIjnabimyHgYNtaGVjemxxYlSGbWNsaZhxWGpvboZXXmlba2pbiHBteXKGaIeEWl5GTj5GXk1FUlZWUVFSV1RnXkxYSlJST0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxVmE3LyiMppeDnKydmZmdn6qqp6m/w66xury3wL6qpLewqaymsrWur7O2q6mlsa2ltbOcrbW2tKanqbOxrbKnr5+qoLKon6SjmqGjnK61laSlpra9pqynqqqsqKaioJigp6OZmaajpJicpKmWlKKclZOjpaagt6SkoKOYlZOYk5yIro+YlImpi5eim4WxgKStnpSanpV5gtSof4eUwZvHeXexpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQeoFslrGrsHloa1ixrm9labySvG5oeW1yj9h+UmtjtrJ/gXGUdZqhqpBXT1dhT1ZORlRbWFFQUoxcV1xQQF1FUU5ER0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjaaTgaapn5ecnaWssqiwwr2ytcC1t77Cq6a0ra2pp6+zqq+2tKioprWmp7ivnbOytqqlpKexrq2xpqqep6SxpKKhnpeboJ+vrZWeop+0uqKqqKGtrqWinZuaoqifmJuooJ+YnqenkZynm5SdoaeioLCjn5+jlpaSmJKZha9qaoqNqn5nhJWHrWVwnp2UmqaVca6hpH53u3xroY92sV9qtFulgGackWBmgXpmf2p4aqllvnJnpox2smp8sXh0kpNjbW2nbVuEoEVpZoeWRXWcYH1ne6Sngllfi6tpgZV4emqnN0qvW1dUbGNbS05XX1xXVjtOiE9XVi9JVFRJQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjUvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5GilYKsp6Weo6Spsbess72+sLfEsre6wqepsKuvqamwr6SwurCkpa6zo6m4qZ6zsrCjpaCqra+rr6ann6OisJyjnJiVl5ucraaXm6KetLOhq5uira2gnpmXoKKpnJmepKCcmaGnpJCdo5qXoZ+sn6anoJufoZaVkZeRmoW1m7V4hamZtZl3h7Obt3+UlpeplH5rgaZ6gYWIkpSSd6tna7FbrHuPh5R0iHCPhoCAiJCXeIOCi5eMg6CPhLB2d59xa2tsfItOpFhIY2OZfmNopmB5cnVTkodeUKltY3F+h4BinS5RoW5bVGtnYExLXGRYXFpCPrB4V1hBI01pRUJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05HOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o5YVU1MByVn5SIs6Wmoa6pp7Osqbu2wrC8wq24t8GqrK2urqausqmhr7yqoae0raSrtaWmsrOno6Kdp6qyqLCnpZ6fn6+Wn5mVlZaYn62impqkqLWvoamPqaiqm56VmKClqJmfnKOfnKCjpKOWm5+Ymp2jq5ummp2boqCXk5KTk5yD1ZOZuXCwwn7GhnzWlJu7fJqWpZCNnI2ke46Go4KlgnqseY+dVa97iX6farlauXeGg3ymgpN8mHqqeY6cj3uxbY6EdJC8hW+UUK+nxYpRoHpjYKpic3KHbJeIYFO1tMiGgIl8Y6QzQp12XVFqaGNQQFhmWmRhSkhNbEtbU09ZZlpDRD9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFRNzIlm6KTmLGnqKWzqqW0qKS7t8GwusCxtbW8s7WnsbCjsLOmn662qJuoua6jr7Ggs7SwoKSenqepsKi0qaScnZ6rl5mXlpeVlqGrnpqXqK2wqaOfj6yip5ael5yhpaGXoaGioZuioqebnqGelZmbpqCcp5Wcm5+hmZCSlZGdiLJuaLVxq4dvjqZytHNytnuamKSMj5yNon6QoKV+sHaDkdLRdVuufIZ/pG+bqqZrhoR8rX2XmY97sXOTnY54s2WWdISeb55mlFLIi1rCXJ95Yl+tX3Zzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPal9saU9VRkk5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SEk5MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyL6GckaWvrKSqu62mtKWntru8srq/t7a1urqzpbS0obGyo5+ssKSYprqupLGxnbS4qp+mnaGqpLGnrKmkmpyaqZ6WlZiYkpKjqKCXk6aqsaailpOtn6WSlKGbpKaflJqmpqGbo5+smqGfnpCWnKKenKWVnZWaop+WmZaSm4Wse3eodqOOiYepb62Kg6iDmZmhiZKaiqJ/kpiJroV/grNccrNSrn6DgqR/cdd9d4R9jp2HmZl3r4aKkZyHd7RhmmWagYKUbJJasFhLmnWYeWZgrV52d4dnmIhrXq93lZ6PeGw1eciusl9BVG9eZ2BFUGxfcW1WVU0uZWNpU1lROkFEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6ODifnZSguLCXtMGtqLOoqbK6uLO4v7m3sra9taW4s5+0rJ+gqKuflae2q6ixsquutKSbqaCgqKG1pqaqo5melaWhlJScmZKVoqWak5CnrK+moJWZqZ+ij5GimaimoJWZpaidnKSerJ2hnaCNlJ+bnqCYmZyWl6Kgk5iRpp2GqX19pXihj46DqnCtjIKnhpagoYqXl4ijgpGHlKp8gIudeW+xWqeDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH6DlWySXKtbWpN/kX9oZ6pjcnuBa5iHcV2sWomgjmtuZU9KQ6FcWkx0XmJlTVphX3JzX0pVNkqak1lIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUFINktJTkBJS0BFTjo6QDQuOj4xMDIxNDQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT44oZ2Zmb6rl7TCrqutqaW0sLixtb+5urOxt7yqu7SfsKSepaennpSqsamwqrWsq6+hmKGgpqSjuaKjq6CXm5GioJWUn5qUmJ+fj42MqbCvpp2Xm6imn4ySpJeoq6eUl6mnnp+ho6ykoZ6hjZShmJ+gkp2XnJWeoJWWj6ubj65tcrRyqYx2iqZztHl0s4CSpKKSnI2JpIePdrhvjHuLomtrtlmhhmWXl2mhoqdtk3K0dJOYf7JqhZOIrWt1s2GdZqJvh5Jql1ytYE2hfIeRUnOjbHl/fm+YhnBcr1Y8nHdmVG9uLlynT2JSa2VhbFliXGBwe2NTWVE+Pm1wM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSTZJSlA/SE5DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eODFCOKWam526oZuywK6tq6unt6m4r7TAtbyxr7m4q8G2qaqgm6akoZ2SqqqntqOyqK6qoJecp6Ckq7mdo62blpmPpaOWjZ2hm5mcn5CTlKu2r6eZlJysqpeMk6WZpayjkZeqsqOgnqersJiho5CZopegm5abl6GTnKmclJGrmYfUkpq7c7DDgMOGftWWnLh4iJCYjJeJjKeIeqO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIpumohxbo2kdL1dd31bYXm8a1pWW2p6XmpgZGZibXdvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmnmp6hvKKXscOwramqq7Gnua+2xbG6sq67sK7Bsqylop6joZybkaqkqrKktKatpJ+WmqqZpqy4nKKtmJWhkKWgk42co56YnZqQlpOvubGrlZejqKeUkJaknKStnpGgqKufm5+po7Keo6WOp6KUoZqcl5WkmI+woJKVqp6FkJm1gJCRjLiVeIKTm7V3bmxuc255j4SOiXOewbu8mnuBsqhwgHSRuIN8hoaLh417ioaNl3yku7m9nHV6s6N0dpd1dLB1mZ5mhmmNtXRycHe2jF5/eX2JZ4N5bXlii6xwdYV/WVunakRkWVNmYGNdY1FnZnFsdUJOUExEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs6VlYnPTs8p56goL+llrTDtKyqp6yrqbuusMWvtbOut6e1uK2po6KmnqCdmZSspK2qprWoqJ+blqCjnqukvqahqpeUnZCim5KPoqiik52XkpiUsrW2rZidpKSii5KRppulq5uWqKSlnJqhqaano6mhkq2fl6Oel5eXnZ6PsKmUnKeijmp+aZyneIlzfpqPdHplh3q9vsC6bpKDcZSGYHJqWl6aiWFkh46Va2B/lWNtnHZilGt/mpWUZV5gY3GaiWhyjH2GlWdqfnF0eH19Ylt3dIFoUFxug3x7i2pYa3qCcklKb4VwTXRNRVdcZmBMW1hnY15PW211aXFST0RFTTtISTxMPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltcXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SlJfSSdTYFY0KVBeTCgzPVtPJz8yPqigqKHBo5q0urairKWup6i1sazIrLCzrLWjvrGypqCjqZ2jm5qZrKeupKS1qaWbl5Whm6esqL6nqaaVlJuVoJmTmKWpp5GekI+YnbCyv6ybpp6noomTkamaqKSam6ufo5mbo6etop+qopqwm5WmoJeUnZ+dl7ClmKKomZyRnZyjpJmno5qcmpqakJaBaG59cXeRl5SRhYq1qo2GmJWOioyXl4eUlYqDkpORiY2Rk5iUmJeaoKKam5SgnY6CeqWGa2l8kHyAdImKgXGCeHl2doqAe4pqc4F0g3Vjd312a3B7bWBjXHBnTVlZZWpfV1pvem1tZlNPRlM5T1pOUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1hZWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0omUl5TMTBUXjorPThcSyw8LUCyoLOhv6KksbK3oKmlsqelsLWqyautsaW1psCotKCepKWcpJWWoKumrKOjtqygmZaWoJetqaXAnquklZKcl56Yk5Sin56ip5ORmKmnssOvmqudq56PlpapnqqcnKCsmKGanKKlr6ahpKierZiXpp2ZmqGenpywoJ2ippWYk5iToKKWo56XoI6WlIuKjY6XrY98lZuCkoKLqqiGgZiWioSOn4h7hJCGhZmQh4aJlY6bl42QmJ6jlpmTkZ2Nf41mobOuhImEdnqPinx2eXpvZ3mQgYCJa3WBeYhyaHN/enaDiIJrdGN5ZmBpZGJkZmpZa3twaWpcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTU1EL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76sq66ysqCqprGtoqyzsMWwqq2js668pLScoKaioZ2Zl6ilqaakprO1npWUnZmZsKauvqCro5CRnpqZlJGVoZyXqZyEnqmsorTIs5+qpKuWlpeap52om5+kq5Senpyfqq6ppaOroa2bn6ChmKWenJ+dr6OZn6iTmJidkaWZmKmempdmg5J8ZX6Omo9jeY1saGt6kaSra2WamH5nhYplZWloeo2hjmtojJeRondraouYo5+Yc2xueoSNhnlYZV2FgV5siomAdlxoc3d3kYCHgm53gniAc215g3R3iIiOg3tqhVlea3RkXXOJaWp8cWxjXVFNV0pkWEBKND1GNz9GRDcxPD0/QUM7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUpbSi83Wk82KUVZL0RPMVlDOz8uPaWfury5r6uzsKqlqK2usKaurbC9samopK2vsZ+tl5+jnqGamaarnKyjpqipsq6elaOQoq+mtrmlrqOPjpqhmZOSm6CZmaWWe6Wsoqizw7ekoqevnp6VnqOeo5yjqaiRnqCdn6qvqqujqp+om6afp6CslqGbpbCkmJyqlaGempOlmJ6rmZ5+voOIcrRyhJ2GrWh4ucS4cZOio3ummJlzqoJ8y8DAu3GLooeCn3yVmImewL2Clp2ejZ3BwXuBe5GMmsK/fWulsW+MgG/Ken+bd5GDjoB2eYF/eXF6f4dxeIWMk3ltdpJiZl94ZF9lgmNedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0JQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmolKOvqbCvraayta+qpqamsaufq5iaoqCcm6qnopyroqWopaS0o52ikqatrLezp6+ikpGanaWSkaChl5yfnYenq6Srrb/AsKGpr6mXkp+dopmio6qjkqChnZ2trqispqOip6ClpZ2tqZGkm6mtqpydqpysoZaXpZaho5icf86UeXqkgXmVlptfro9ejqeBoaB8p5WbdKuDgK9eY42qeqeHhaB0l5KIs2OCq4ahjo2zaYSudH2Wh7hhgq1Zo81uj3V72nt/mXB+iJJ1f2V7iHZ2a32Ibn6FkZJ+bYGOYHFrcGdgX3lkW3BoamRmYFJUUldeS09DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w7TC0hUEBGNC4xrcK/v7W0sLeYnpGkqqittKumsqytrKSrp7CqoKebmaWXnKKvn6CfqKejpaGfsKybnpWnrq2xq6isoJSSm5+lk4+fpZeeqKOerqSqsKi/xrOoqbGulpKdnKKXoKmqnpSgn5ydrq+nqqmbp6ekoauSrbSWpaOqqp6jp6ahsKCSmqeaoZuUlJGXoHCFjJd1haiHcbB8nXKsfqGegaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIooyRi51+q3uJk4+fgHutVpzEeo9vksF9gZVtdXCMbWV2ZYZvYXducm+JipGQg22Qj2RvdHVwYGdtZF9vaWluZmNXU1xhWlJTQzlJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz1XSi08Jz4xKTNWQEYhHEc6QzEuK6/UxsaytJ+do46jo6Gsr7auqLCnqaqorqurp6KknZmilZ+mqp+ipZ+oqKKfnbCsl5qWqKeurKinqZ6XlJqjopKUoa2bnaajr6yjrLSpuc2xraeurJaUnJ2imJ+urJyWoJmdnqmxqampm6upo6Ksm6+xoqisrqaZpquqqrGikpejpZuUkoWkaqR1iXqpdHqycIKliZmMcIigmoekYGBSrIR/roKadq6BpoaGn3qYloZ7ZoCjiaSZhoGjfal+gZSHrl58qVWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojYyYj4FtmpJvbXl3d29sZmRlcXBme2hjXVdfaVhYVU1NUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys2NioxUEtMIyBBOUQ0LCfCydXVwKGZq6ihr6KesLWwr6mso6imqqqrqaSmoJuknp2lp6ajnKyaoquhpJ+vop2akqqktbCvoKmbnZaUp6OQmqKon6CmnLGmo6ixrLbIsrWqrKmVkZydopmfpbOcmqCUnJ+nq6ujrpqsqaKhqqOzraKqs7Ghm6qor7C2o5OWpKeYm5F8qmyehId1q3l8sG+CpIuJn5aVnpSB0ri0uMmAgbJeX5Spg6SIh6B5mJWaeKrJdJmjlaepkJKbjH+biZrGxnhloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI+QnpN8cJeSf3B6dHx7bVtmanJxZoFqXmJYY21cXllJTUxLRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Njg1LykoJSYlJCYpLDRFTlBQTUZLSlZGKkwwLz4tNU9UUR0cOzxGMiwkp6TAxrmtqLKurKWinLK5rKqhppuopqqsqaagpqWYq6OfrqudpaCsmp6opZ2mtZ6il5OoqrayrJulnKCVkKWtkZmcp6OgqqeuoqOnqbC0wrGyqq2ok4mYnaSaoaOupZehlZicpaarmq+draimnqyjt6yhsbmvnZuvp7O0s6SUmKikmp+Ogp1OeJqBf596hKN8gqSEhqaenJ6ThLh7fHm5gn7MxcK2eJqhkYuffZqWl4p2npiKpJijqH6whZyFnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkaOXfH6SkYp0enOEfnBbbW53cmqBb1pkX2huYmRdS01RVEJJSEZJOjlLPkIxMDg4NjY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMzpQW1QcGzY/SCwtIIuHmamspKu5q6+gnKGss7Omn6CVpa6trqqnnaammqOnobKuoqimsqCZqaSUorWio5WXoam0uaSbo52jk5ChspmenKemoaKvrp2kqKG1scOxraqtqZGHkZymnKOknKWXnpiZmaWkqJquoa6lppewpbytobe3rZ2dtbK5sbOnmJ6woqSeho/RtcO3eYeOhZGTj4CmeJSid4ygkoSlgYpxqoaEtG5yapmjm5WKn3yYmYaHj3OvgqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5OmmH6MjJOKd3x5jYFtaXhpeHNuf3RdZGRubWVoYEpaWFg8SEdAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVtaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWSc42Krb+/u7q1npeopK21oaOZlaOpp66qq5mlop+loKC1pqKop7CjlKujjqSto52QmpqqtLSknaWdqZGUl66goJ6npJynnLWaoKqjtavCsKmrqaGMhI+boaCmopWZmpyYmpmmpKaYq6etoqWbrae+rJW9sKyfo7Czuqy0p5upsqWomHqokH18sHeKgaSliJxtsm+hh618oY6Dp5WYgKyIha6Fn5SooKGWhp+AmZWAe5J+q4CdmpaKqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrrl2la3GFmV1gW4ygbpWRppmDlI2Wi3p6gpZ/a2x/Yn10bX96YGdlcW9nZ2hDWWBbPUtUMlU4QkJDNyQkMysnJzMsIC82Njc0MzU5QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNUVlZXWFZVVVFIRklKIygovJKahKnGwrfBtJ+brZ+uuKWkjpuko6Cvr6qfpJ+drZieuaCiqqCvqZmtoZCqqaSWiZqQrrCspp+nm62YmI+soqGdpqKapZ2tmJ+opbaov6+lqaSei4COm5qgpp6SlJqak5qapaOjmairq6Okn6movqSXw6yqo6Gssrqrrqegs6+pqph2r36Qi5yFh326rYqYZLCMZZWtfaCPg6aVmoGsioSwhaWZpKGhkIWgW2xqgbNgf617e4KAsWxnbpmXjIiwW320W6SDa8iiZZ+Ae7xZdrVasn1Sr4B6rFiAoW2Yj6iaipeQlpZ7eI2cfWRzfWKDd3SAfGFqZnFtZmVlT1VjW0JUXj5JKD45PTQhIiwlHzIuICoxLzA0NTc5OTxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWlhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjnK2mpbaooYuaoJ+ds7OpnqOgnbSXoLOoqqudr62dq5uVrqiijoibjq+rqKaip5muk5mPqJqhnqWfmaOjpZmeo6myqLyvpKienY58i5qVoaCZj5Kam5GZl6ieoJioraelpaOlqbufoManpamhq7S2ra6nn7yurayVgamSo6+Om4CGpJeYj4CAuMO6g46dk4Wnl5yCrIqCr4imm5qlqpB+1b3CqmKjv718fqOCg9e6uLWFlJODnr2+hGqjgW+rhG2df3qysMeDaquwva14d6K+u3SAlo6mnI+akZaceYGQmnljfXpkjGZ5gntga2VramJQYltTalxAVGFCTik9OjQvHh8kHiUyIB0kKDA0OTY2Nzc7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM/PEE/NT1TWVhYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbO0sb+5sr2zop2upqWzpp2LmKW+qbexqKG/pqaxm56xnLmonq2upaaVlK+sl4yDmpGupqOsoaScqqGYi6OSpp6onJqhqaKZnqCrram5raijm5eTe4eZkaabk4+RmJiOmJOpmZ+Yqaigqqaho6u7nqnFo6Cvo6uztauwqqC7qK+vmnN1qqS3hmWJn3BnrI+Kj21vd6SQmZ+Bda6ZlXCPi3GVp6ObmK6kcm1tbWWKd25tgplxgHlpcWlniZWVmHFoaYSGZ3CGZF2JY2pvWV1nfnemYGJxjpJvZmSAjZKOopiXmJCVnnyHjpR1ZoZ3aI1qeX55ZGxjZmxiS2RYSmtZOlFlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFpaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWts6q6ubKzq6mirp6jsqmYkr2xw8i+tqqewKyso6CnrJ+6o6StrKymjpatqZCMhZWWrJ6lqqGfo6OgkYykkqeZqZmWo6qglpylpaevuqusmpuSknuElo2ll42RkZiTjZiVp5Sel6iimrCmnqKsup+wwaiks6assbKrrqyouaOuuJaKoailtp2JlqKXhqmakJSdk6qzmZujq6CylqKhnaCinKCkoZWrpoySkoyHkpyclJCZk5iQjZWGgaSZl5WNi5OSio+GhH5nin90gnZ0h4xxp2x7lZGUk4GBj4+Pj52UoJWYlqCCh5OMcGiPdnCKd3Z8empsZGRvY1VgWEBpW0hjYU9aK0Y9KyYhNzQwLh8cISUyKCo2OTk0Njk7Pj9BQkRGSktLTVBQUVdUVlleX2FjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbeurqKwpK2foLWxkI6rxbzEu7iqoqWdm6WdsKmjtqedqbSmp5GYrKKLiImOnKeWq6ShmaeenpOVo5eom6mZlKaho4+ap5mhtbqoqpiakI18gZSLoZSKlJGVkJCTl6WPnpmon5y2o52nrLeorsGuo7enr6+wraqqs7mhr72Zkqajpraikp2mno2pn42Sn6Osr5qho7Gor5ekoJyjqZ6enZyXq5ySmaGbk5CWqpmNmJiWkJWekYignZWUhZKMkIyUioB+ZoyGdYZ2eYiDc5xqhpGUlJGKfYyWkpKYk6GTnZagg4eXhnlxlXJ5iX9xe39qbmRfcGlgW2BZbWNQYGRQWzpHR0Q9Mj09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fX11eX2BhYWJhYWFgYmJiZGJcW2OXlaSno7CzrK6jqaetoKi1qpCQnaSzu6+srKKjmnqdorGkpbColpu4pqKUmKmcjoaKiZuikK6eo5Wnn6GSl5ibrourlo+omqiMmKiPnrm2pKWYm42JeYGTjJqTipSRk5CNkZaijJ2eqJ6fuKR/hK+1oq+vdaS+o7KgeHqgq7K7lXetpJ+KgKp+ZFxidp+OpJ2Dl35uk7Oco6euq6Jlnp+Sc3mZl3CAmKiXbH+ip4llnKWckZeYlouRm5GFnZqQlYKSh46OkomFd2uPh3aGcXyGgIBhaYiLlZOLW3aVkWdokI5ye6WYmGR5mIaBd5dpg4qCbnl/a3BlYHZva2toW2ZlYmJvU1s+Tk5OUkc9QFRCOTEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTFNUVVlcX2hmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mm5amo6GwsayrqaWoraOnraSSlqu1r7Gmmqqmq5dzi5yvn6iqppSWuKCgj5yjnZF+iIibnY2rmqOVp6KejpeRnoV1rpCIppqnkZajiJu6tKegmZiLiXR2k42Wk4qUkZCUjI+ToI6an6aZnLKWgIyctZ2zjJKPvKehfqeieqOvt4GOjqefhIuFj7Gpr4yJlqKaeYGLrIacnaKnqaiHlYaYdqWbeoebgZemgoF7nLF6ioWgl5mUmJaBkJaWhJmZY3mHkISNj5KKg21wj4d5gHGAgYV/hnSGhJaSeJZok3SgmnR8mYOgnIaYfpGJgYOYao2MhWt4e3FwZ2R3bmlsa1tla2plc1teSVRMUUBFNS5ZVFU2KSEwOT0+NjQzNTY4Ozo9Pj5AREg/SUVKS0dSWFpZW2FhaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJyYo5+mrq2rqKygqLCmp6mlmZSuxr2woZamqLWej4Ocq5ymoZ+NkL6emY2fmqCQfYWOmZeIq52ilp+gkY2TiYaAkaiOh6Kco5OWnYafubKnnZqSjoVwdZCJlZCKlI+Pm4uPkZ+Slp+klp6siJ+0ibSarYrKh6quiLeFjbCDsa6DqY2mmI2dfKiPcnt3m46mlmiVpHm0i5+epqiSmcKBf6uImKFxnoCZpH2XhZWxgKF8oZSgkJiWgI6Tm4qXkYt8hZOGjZWTiYNtc5GFf3pyhoGEfIR0hYKXgY/FZoCph4+ia56DoZmCmYCLjIOJmHCOkoVod3R7dmdodXBnZ2xeY29sZ2xYZ0ddUUwyRTQ2TWBjNyYzPERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWV1jZmhnYmJiYmRjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5sKqrppqUoKOkqqOWpKm2o69/oKecpZ6diZO8mZONoJGdkHmElpaRh6uZm5uZoYWPjHebnI+gkYiepJuVmJeGoritpZmbjIx/Ym2Pi5OQjZCMjJeLkJGfj5OfoZmhqH6hp4etnaCWro+enZ2RhoGgjauvhqSNqpqMmn6idoCZk2qBq3VNq3iHjZ2Rm6ingKqrfYOhe3qnaZ5/kmtnl4aXtomefW5gZFmDln6Me2RoinKZfXmVbF17l21fU3CEXF9seYNgWWWCfYSBmHGnqmuDo25ypXCfg55pZZ9sW22Je2VZX4N/YldQb3ZlbXRyampvXmpvbWxpWGlPXVdFOUE0R0NeazQsSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9jdmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKhtryrrqKZl6Chpa2toJyttaKokqCfn6abmY6YtJmQip6MlYt1gZSRjYqmlpWYnp5/koWGrKSHnJGKmKiXmZqRh6WwpqKVmoiJgGhuiIeLjo6Ji42Si5CSooyTnqCcoqV/k4GPo6GUoHeclo+ng6Gnf4aprYWleYp9hJp9onByk4eVep2MeW2HnIyZkJuomo+HnHuConN2pmaefnakX5h6fZJzom6Yt7S6c5KHgX+1qGSBxrh7cJW3i3GAm6Rjc6yrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN/pF+dmbOVcHyXnrR0c1uesoNqYm9zdXFob1hrbHJzZlxpXmJLRD1ENVFBWXEzPVNHX0pSPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWldgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO4mauck6CNpLi1rq2gm6Kco6Olrpybsa2sk5egmKCkmZqTnqubi4iReIuFcICWjYqPoJCTlJ2XfZCJjqigh5iPipGik5uajIuoqKSej5aHhH5reoZ/fY+Ng4uQkYmPlKCClp2gnaCfi4l3nJiijKByoouIqYicppCWqKt/rox9eqCZeqOTeIBzloeMnH2WoIebjpmbpoaiZKF8iJaQm41snmibjW6amXuAiqd9cmhzqYKcgnOqZ5SaXZuFdoSdaKpqgLhmXKhwgZxhlYxep3Z1iYp/nmiadYeTkpiOf59umpBsp5lcqH53u2t+qluOhF20Z1xucXl3a2lbcWp4eWJfZlhiQVBFTjdWQlJuNEtaWl9OWkNAMTUxOzs3SD86Q0dUP1lSWV0+RGJeVmBRYWN9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtpuoiWOUm6y6srCsnaacnKifnq6bnbCoq52Xopmhn5iWlqCjmYaJjGqIgHF7l4iLlpaEkZSYj3qKhJajnYqUj4WLnZGcm4mPqKOgmYuRioCAaYGGeX+XjHuIjo6Hj5aaf5Oin6Cik5hyaJ+Kn4+McJKMgamImZ+jqKCofbCto6K4l3ajs6Kjf4iUeJ16q5p/oo6dm5eIl3GhfIWNr7V9a5qRoXh+mLSjo6uohJl8mnycmX5zqlpdb3uWi3ieYkx+enqFY3mXQk2fWaJqcXyObYGJhJl1m3mHibGzf3+bk6d1gJ1tcXyUb5lyaqRdlXZIZWNgc3B9fW5lYGxodnxjZGFRXlZdVFZAWUVRZ0RTV1tiWF5JRD1COD9COklFOExEV0FWUVtWREZiXFpgS2BtfnFFQzxVX2JaZWpWZ2htb2JmZl5hYVxdXmFoYl9lZHZsXmVnZmxkZmxoaGtpk52Asa6ZhFNfoKezubOzqZqijJyrnJypk6GrpKGoj56dnJqZlZihnZaHhol3hYFueZWFkJqLfJGTlohygImToJxzkZCBiJiUn5qEjqicmpSKi4p8g2yFhXGBoYx4hY2Ih5KZlXySpKGfo4iuhn21hI6enXullnmpgpadkIqhnX2naHZtfplzoHNxfJ2FmG+Tgq59pIOmnpqBo29eqGd1o2NvpWGc05B8epl4cnNjooWQfqJyoo51a4+zi2CCmIlzqrKovH93g21+vqaptF6cbn1xl2+Bc6JyXaNndKZhaKZtm9SZfIObb3d5l2ubeneXc22ppGdgZXlwf4NrZ2ZkbXV4Z2BiU1tlUVFhSVdJVF9XU1tlalxkUEVDS01KS0JKRThQP1BNV1NYT1JSYGZlaVJjd3l3SUZFY11kWmdpVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJebf7CrVFxLfqmvsbSws6OcmIWYqKCgo42kqKCYqYmZl5iTmZKSoJiOh4V7cH2EaH2PgpSagXeRjY6Jb3+GkJOSbJeUfYiQkaOVg46qmZSSioWJeYN2h4Bugp+Gd4CShoiZopd5k6Kkmp+Js6Gitot6rKekrqVwqYGakIWBnJJ8pICimYaYcp6Eoq2uiZeLf4ykjZaDrqKUdrS1tcmhc5SKgJ9gnZepbXmVhp+adaGHd6B+kZaKgG9MZqOScJqHcqR7eXRhg4JsfqBrcWRgnHJ/dJdpe2mztbTGpnOYfnudapubq3WDmmx0d5dpmnp0mHFQRH2zXmp2a3iHZmpnYnR0cW5WXlRZaE9SaElVTFlSVVxna25WZ1dNSkFKTUtISk5BUUpQZGNpbWV0cnN+eXtudYl7e1RQT21daFtraVJqaGlsZ2xmY2VfXF1cXmliZGhre19dZGhjamZvbWVpbGWhnImvp4RmP5Shsquvr7Wio4+Al6mioqWMpaednKWCmZeWjZeQj5uSjoiCeWp5hmWDjH6WoHl1j4iMgWmEhZKDjIWdjXqMipSlkoOXqJeMkIqBiXqAfYt4cJChhnmBlYeJlqCWf5SlqJyWloRnbnicbKJkfHGld5yXcGengZeMe6V6n5aDl3KedoGJlJaPuW6QiqJifZmilYhtcmmranWgbG6mYJtpi5BoloealXWigH2aYIuFjHVviGJooGWefmmadW9jZoiCbnKiWl9bY6FuXYmMb3t/c3JkpW13omRnp2iYc4uYbqFvU4iPb6BfZKdUi11UmG1tc2txgW1waGt4c2tvUlhXVmZZU21JWE9dSFhpaHNqWWtWUVJFVlxMWFJhVGhqXnd1enxwfHxyg3t/cnaNgIR2XlFzYWdicGdQamhoa2xuZ2RnX11eXWBrY2ppdnVdXGNpY2pqc2xma21jnKWZpnpldG2Lp66kqbCxpp+LgJernJ6ljKKhmqKigJWYk42aj4qXkI6Le4dxgIhoi4t7l5pzdIp9kHtkgoeVioqVmYJ8iIWWpo+BoauQhY+Jgop9gICPc2iPpYR9hpSNiJigjoiSqqediaZ4lpx+pYmWjLKYnpCDr5efpXiWiHqpdKWPhJpupKKMkoSMg7xufKWvgoaGh5OWnJ98pXpxqJSglmeefm+rY5aKlZJ3qGypooGJdYeCd6uRpohrkbBrdrOMqWuKhm5tn56SlWF/q4uqdoB/jKafd599haWVnaBpmod2rGeerYy3c3e+jaSTWYOmjathdXJzb3t0cWJqfm5obVNWW1VhYVxrTVxSXUldbW12YFtxWVtgWmdzZW5vcWNxdGB3en55cnmDc4R/gHt7jIGCgHZieGRjbnNkUmxnaG9scmlmaWFfXlxia2JtbHpvXFxiaWJsandtZ2xuYpWmqp2BgJ6klqmqnainrqOZiYKXq5qepImapZ2pnISMmo6GnJGFko2LjHSGeoiEb4yEfZeTdHSGcpKCbX+LkoeGlI98e4GFl6SNf6WljoGNiYSUdYKHkm9si6mAg4uUjomcn4mNk6ujoJCAdZSWiH6BeZSuo3+Bm3GPhniQjIR/e3KmjHF9fXqXlpuEjnh7fn6IlJWTinaQmJ+gg3p9iWuMhVt5eHF5cGhufpKJcX90gY+Tk3GFhIJljH9fgX+Ld3VzlHVveW5uh22EhV53aXiNZoGCho6pm350fJdqiYhwgHZ8hXZtbGaMc3l7mHiEW2pYeY9obndycW93eG9dbIZuaWdWWmBXXGVrY1VhVV9RX3B3eWxqdmVqa2p2fHFydHNhb3Vic3uBeHV5gnWAgH+AeIuFg317bX9sZHluXlduZ2h1a3hqaWpkXGBaY2plbHB1blpbYmtkbGx5bmhsb2GOlLmpp4uhopqmpJmknKuioISEl6ySnaCJmqaaqJiCgZuKfpaTh46JiI1ygnyPfX6OhHqXj3Ryg3CVhXt9k4uGhpCFeH5/hpiijHumoIuFj5CElYKGjpd3coWqho6SnJCInp6IjJuooKCrg4mNlJp+fomWraiPk6aQeHCdkYN7km9+qIVwfZVxa3B8gZ+Lf5KOjGhtXYOLjJubno5zlYuIcXRrgnZzgFlyboeQgX1+i2ldaWR7hYOIgF9peHube4KLgnaBhoJoeYuHa2FxcoN3X3OMgomQp5WGZoyPg253i4RwhY15b2VmY3mDepZbXGlmbnZbe3h3dG1zcoJmXG2Ka2xiWVleWlhscVtfYFpeXWZ0fXt0b3Nja2tqe3xye3h0ZG10Z2x7fnZ6fHt6en9/fm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtoa2pxcm1XW2VubGdzem9oam1gjIyqsaKQo6Ganp6YnpmooqF9gpitjZ+Uh5uikKWVf3uXhHySmIiIhoaKcnyAi3aFi4GElYpxb4BymIaEfpKEg4aKgXqAg4uano+CpqCGeI6XiJWLi52XhIN6rYKRmJmUip6dh4ihq6CioqOLiJKbnKOZlqqhp6agkpuIl458eI6OhKd+f5KRkpOcsaablJ6QjbKTmISljIyVm5+JkJuCiJGJa3yNdndlgoWQinyJnYSHi4+IiICFhJB3fHl1mqGIhoqfi4WUf36MgYB2cHSGhH94iIeLkKaQhIWNiIONkIx8h4qIj4F2a4GDfHmZanJoYHOKcH16d3Zvd3SBXV5vhmhuX15aXF1TaHFVY1tcYWxodXt8cm5wZGtqaX97bXh/cWlvcGxmgHtygoB4f32AhHptg4yGfHp4fH56g3hOZHZrc21wemRrZWJiYFt0ZnBmcnJtVV1sdG1oeXpxZ2lrZY2InbqflqKhmJWZmJSZpKCee3+Zq46ejYWfnIqelnx4lIJ7jpmJhoSEhm14gIBygYd+iJOEbWt+epeGhIOQf4CGhIZ8h4ONmpyShqmeg3KKj4WSkYudkX2Ne6qDjZKXlY+cl4aGm6egopqdhoORmpmZkJqmoKadnZCWgZGKd3yHjoSle3yOkJGGmKmhnZOcj42qjpGAnoyJk5qego6XfoaNgm94hXF0YH6Cj4Z1i5eAg4+ChoR+hYOUbXl1dJKii4yFmoSEjXSAinx8cnJ7iIR7eYyOhJOnj4aEj4GEi4qKd4WHiYt8bmt9gHttaGxtZ155f2h8e3Z0dXV7d1xgcH1udWBjWl1eUWZtU2VaXWFqaXZ6fnBrbGRrameAf2xzgGxsdG94boR5boeAdoKAfYR2coONiH57e3x/e4KKYGl7anVoaYJkamNgaVxkdWhvYnVubFRjcXllcHp6c2VpbW2Lip+3mqGjn5KRlpeLmp+fnnt4naaQm4qGpJSLmJl4eo2Fe4mRg4yCgYJtfH54c4CFfYqQfGtofYGXiIGIjnx+hoSHfI+Aj5qbkYimnH9wi4qLkoegoYqFjHyokYiPkpeTlpN4jKOhoZ6Wmn+AkJqYk4ybo6GkmpeRm36OhXmAg4+HoIB9jIyPfJekoKCSmZCPpo2PgZuRiZKXm36Skn6GjYF1dIJwdmB9f42GcoqVfIiLcox/goWGjmh3cXiMmJKPf5d+iIpzgod8fHB5e4yFenuRjYOWppOLhpF8hoeHhXWCg4iHemVye394enBsamZefXNofHV1c3xygGpeYHR2cHhkY1lfXlJraFRkWV9hZ2p2eIFxZmtjbGhlf4BqbX5obnFrfXeGemuLgXOBgX2BdHaCjYZ+fHt/gX1/j2pyg25zaWGHaGxiX3FWdG9tbmB4aG1XanR2Y3V7e3Jiam55iY2fspKlpZyOkJiPhpygm5x8dqSgjZd/jKKKiJqWeHuGh36DiX6IgoB/cX96dHWChX6JkHhnY32Gl4qCio14fYCMg3mWgJWXlYyWn5p9b4uBkZOGppuHjImEppWFkouWl5OSdpGeoaGYlJd6fo6Yl46Wm52knZmTlJx6kIaDeISXjZ1+gYmNjHOXop6hkpiOj6KMi4OWmIOSlpl+mI18iI2BdnF9bXpkf3yKhXCGk3+QgmyHgoF/iYRldW98h5KXjX2TeIuJfICHfHtxfniKhnmFkYqLmKKVgYSNd4mFg4J2e4GJhnZfeHd9c313ZmxkYX5pandzdHR9cXxiY2FzbnVzbWFaYF5ba2RSYldgYWhrdXiGcGJqY21laHyDbGh0aGxvaH98gnhtkIZxgIODf3N8g4yBf356goN+fJBtdoh0dG1limxqYWN1VoRpcW5geWdsYmp2cGZ5fHpxYHJshoWQnK2XpqiejY2Xh4afk5eYfXeqnIqYeZeci4uYj3l7gIt9fIN7gIKAeHR4enN9gIN/iIuAZF59i5WHf4WHdH19iX99l4SWk5aMo6CXfnKHepORiqePjI6Kk6CRg5GQlJeRi4GPmKCakpCRdH+NkpSJnZ2ep5iXjZWWdI6OimyGmI+ZeoeIkIlvl52ao5OVio2fjIaBkpx/kpKVhpmIfImJgXpxeWt1bHt9i35uhZKClHdvgoN9fop/ZHJqe4CWl4R/jXSQiYN5h351eIB9h4F9g42FjZSkkHiFgnSJh32Ac3WAh4NuYHt1enF8b2FuY2R7Ym5vdnJ3d3N0YXZfb2x1bm9cW19dXmpeT11XY2FobXN6iWtfaWVqY2h3h21mbGhpbGiAfHp3bpCHc4GDhH1zgYaJeoJ9eoGEfXyOcnqKeHhubIdraF9pcWOHaHFvZXdobmxheWhrfXt4cGF3bYuBmZqqoKSonYqKkYaKnoqVl313rpiMln2ek5GWk4h3fXuKfHyAdnd/gHB0c3pvhXyBgIp+fGBcfo+Rhn+DhHN6f4Z6j5GHkZGbkqSblIF9gHuNipKkiY2KjZiajIaRmJOWjomJjJOdk5CMjW6DkI6RiZ6ZoqGXlomWkW+ImoRnhpmOk3qJhZCKcJWalKGSkoiLmYyCf5CefJKPkouZjnuKhId0c3VrcW51e4t0boWQjpJxdIB7gYGIfGRxbHl9mZR9hIh0kIuBdIh5b4B+gYd8hYyJhY2VqI17iH1+i4V3fnBvgIWDY2h4dHVve2JecGBqdF5xanp4eGxycGV4XW1sc21zWFpeX2FqWlBXV2VjZ3Fxf4dmXWloZ2JncY5vZGlnZWpogHp3dG6OhXSBgYJ7dYKIhXeFfHiEhXqAiXd/i3t6cnmDamtfcGh0gGtyb21xZ29sZXxjboB5dnFsd3eKf6KYoqihppuHjIqBkJyGk5x0gaqUko2GoIyWk5B/dHt2hXd4f3Jze4Vrcm95bYp2gICGbnFbWX6RjYh/gIF2dYB/f6CGj4qRnJegk5d3iX6AjIidnoqPhpKYloWJlZmPl4yLjY6NnYqOkINtiIqPkYqclqGbmJWFl4hqhaODZ4adipF+i4OLgXeTmJGekZCIiZWNf36Pl3yRjY+NmpJ8in+CbnZvbG1ucHuFaXODjpeKcHd/dIKJgnhmc292gZmOfImEepSReneIdHCJe4aNe4uGhImPnKOIfIR3gouAeHhuaoCCgV1yc3Fwb3haXnBgcGpeb2l8eXBtbWpsdmBwb2tybVlYYWFhblhRU1pmZ2N1cISCYl1qbWRiZmuSbWBmZl9oaoF1cXJwi4B1f4KAeHWAi4B4hX93h4Z3g4R7hox/e3aKf2pxY3xihnxvcWx0amhvbHZ3X3F/eXt0dXSAgn6klZqtn6eWhYyDf5eUg4+fdYqflJKGipuMlY2LeXJ4dIFwcoRzcXWIbG9sdW2IdoN9f21uVVGBq5SHgniAdnKCeYGggZGBkpKXm5GaeJF6goySpJqTjomVmZKEh5eZjJSMiY+PiJ6FkIp8coqFiY6InJmfm5aUf5R/aYadiGeGoYiShJGDiXGDkZePmo2PjIuPjXd7kpB6jouMkZaMfIh8gGt2am5ra2x6fmF5fo6VgXZ6gHeDjXx4Z3RsdIeVi3+IhnuUkHF6hHB3jHqKjXuJfoOMkZ+dhX18eIKMfXZwaWuBgnlfd29ta3FzVl1vYnFgX2xueXBncGZmc3RocWxhd2VdVmZhYHJTUE5cZmVdeHCIfF5caHJiYmVmkmlfaGRbZ3B+cGtwc4p9dnyFgHR1f4x5e4aBeIiCc4aEfoyMg3t5lXdmcmqDYIh+b29remBqbnR/dF90fXmGeHRzhXx4oI+ZsJylj4KKf4OaiH+Lnn+KmZOOhIiYjo6OhHZ0dnOAcG+Fc3Bxg29raXZtgm59fG10c1JOgt/IktaTfHB0gnWDn4KTd5SQmJqPmHuTcoWQn6GTk5CJkpuUhn6WlYiNjYiRjYicgI6BeHqMfoiMiZybnZuVk3mNdmiJkodsiKOFkoeXg4ZjjJGYjpSJloyNiotxe5SJeo2IipKRiXmFe35se2Vyb2preXlbgHmPjYB6fX5/ho56eWhza3OLj4qChYV9lYxsfn9vgIx/jId9hHqCj5Wamop8d3iDkHlzbWZwf4NsanRvaGlzbVNeb2RwWV9rcXdma2piZnhycHBjX3dgYFZrX112T05LYGZjXXlxiXRcW2V2YGFlZY5jYWZhWGlzc25rcXaMfHR5hoF1dn6Lc3+Gf3uJfnKJh4GQioh8fph2ZXNtfGWIfm5wa4BabG55eXNhdnp7jXZyd4p3eZ+Lm66boJCChXeIlX58iZyHhZ+QjoWMl4STjoeBdHdweXFuhG9tbn5yZGR4cHxten1qaGxjpJrB3K7voXNrdYN1hKKFkW6Vj5Sfk5uBkXCFi6OXiY2VipCdloOAlZCFiY+AkoqKl3+He3V/iXeGhI2bmpiZjo92inZuhomLfYqjhJGJnYWFXouUl4qOiI6LioSJbHyWgX2IhYmQj4Z2hX19a31kd3VqbXhzV4h6kYaFen5/gIWLfnhlc2p/io6Kg4J/jJaFa4J1boiRgpGFf4J6gJGWk5mQdXR4iI11c3FndXmCYnRtb2JodWdSYHFna1VfbnR5YHJjX2h9cHJuW2NyYWJXbllcd01NTGRmYV52c4ptW1xkeF5gZGWFX2NiXlhqcmtua3J2jH1zd4SBeHd7iXGDhH1+iHt0i4iIlYaMfn6Yc2h1cXlti3pudHCBWHF6dnlxZXd5hoxpdoCJcn+ch5innKOShHxwjJR4eYudhIWhjY57lY1/mYeEe3J3cHNqb4FraWx8dF5geHZ7cHV7Z2BlfOvatcnD3IhzbHOAdoqaiI1pl4+OnJSSgYhwhYigjoWKlYqNmJR8jZOIg4mPe5GLhpCCf3Z4g4Nyh4KSm5aUmIaMdod/cIWCiYeZooOUjJ6DiWGDlY+GiYaJjYeAh2l9lH99g4SJjo2CcYZ+f3F3aHVyaXN3a1qMfZKBhXx/g4CEioJ1YXRsiIGPi4J+f5KRfW6CbHmGj4aThH2BfYCSk5CXiW9yeo2GdWxwa3J4gF9zaW5canZgUmRxaGZTX3B2dGBvYF1ognFzaldnaGNpWG1XW3VMSkxlZ19icnOFaFtcZXleXmRne2BkX1xZa25lb2pzd4p+c3KBfnp2eohzhYJ8f4Z2d4qGj5iCjIF7k3ZsdnV5eJN0bnh6fVh5hXGAb2d5d5KCZHaGhXGKloWZoZuiioZzb5KLcneOnH2KmoiJe59/g5l/gXhxc25vZHJ+aGZsd3dbX3l7enFxf2lhZ2F/1baOkKZ4bnF3e3CSkIyHapiNiJuRi4V7aIeLmYaBkpGGh5iNfI2NgYGJjXyQjH6KhXp1e4J7cIaAlZmOkpSBiHWDhnaDgIuTnZ+GlY+ffohhf5OHhIiEiY1/f4NnfZB/fn+Ci4+Qfm2CfIJ0a212dHN2dWtjjYGOf4V+fIR/hId+cF9zcYR8j42CfH+SiXpxg2Z6g4qHjIN8hX6AlI+Rk4RucHqMf3Vtbmpsen1iaGppWGx1WlJpcmliUWJyeGxhZV1aaoNtc2JbZ19lbF9uVFpvTkhPZ2VcZ25xgGxaW2NyX1xja3dkZV1cWmxsY21qc3aHf3Fvf3x8dHiGeIWCfX+HdXmJgZKVfIiGdomBb3d5e4STcG17gXdeg390gW1pe3OUc2dyiH1ykpGDmp+boIaHdnaUfm12k5d9h5CDio2afIuadn12cW9samF0fGdiaXV6Wl93fHptcX5lY2hoV52PXnFylrzDg3VxlIiQfnKWi4ack4yHcmqIj5aAe5SMgYSbjHyKhn18iYx/lIh1iYV2d32BcXWGgZ6UhZSPg4Jyf4h1hHyJmJ2Yh5OOnYCIZn2Tgn+Fg4mJcoF9Z36Le3h+f4eLjnxpgHyDdmVveHhydnNsao2FioGKf3iBgISDf2tecnh6fY2KhXuCj4B+coBpeYOHi4aEeYR8gZiNkIx9bm17iX13dG5oZ3x2Y1xwYldvclNTbnNoYU5mdHhlYF1cWG6Ab3NZZWFeam5gcE9Za1FEU2dhWmtubXxuWltebGJaY292Y2ZcXWBsaWNsanN2goNxbn57f3R1g3uDgnyBhXZ+iYGWkHiDinSBiHJ4eX6NkG9vfIFxaYF5en5tbXx2lWtqd4R0bJSNhZ6YoJmFiG59jHZqeJiOfoGKgpWXinmOlm96c3BsamRgdHtoX2Vxelpgcn15Z3F6YWVlj7Gyd0piWqTZ0JZxe5CKkHd9lIuEmZGLhW5rhZKSenmShoCEmIp8h394eImKhJaAb4yIcXR9eml4hYOlkISTjIN/b36DdoR5hZuYk4uSkJSFh3B7koJ9goOJg26BeGiAhXhyf3+CioZ7ZX1+hHVjcHJ/aHhwb3WYjYWCint2eICEeYFrXHF9coGIhYl9hol6iHKBbnGEh46EhXOEeYGZjY6EeG5vf4R/dnplaGp9cF9Zd1pYcW1OV3JzZ2BLbHZ0YF1bW1l0fXJvV2ddZmpxX25OV2hRP1lnX1twamd5cVpaWWtlWWNweV9oXF5lbWhmbGlxd3+Hb2x/fYB1b4J7f4F+gn92gYWIl4pxgo1xe4Z8eXmDk4x1anp/a29+dH99b3J8e5RvboF/eGaSioKhmZ2RgoZnh4NvZ3qViX5/hYGZioF8jYxpeHJrbGZfYW94bV9ib3hcZGuCemFxdl9lZdTqvooyOj6LjoBxeYWHjo12g5aMfpKNjH9tbIWNjHZ9j3+FgZWJfIN4bnaHhIOXd2+IhWt1e3RleYKDp4uDjouEfW5/dHaDeYackIyQkZKMi4Z+e5KGd3+EjYNsgHJpf354bXx7gYqDd2J5hIFxZHFofm10cXSBmoqAf4V+cnV9gHKBcFttfnR4ioOLe4eAfIh4enFsiIOPhItygXl/l4uLf3Rua3eAgHV1XGlod3BZV3xTWnBlTFpycmVbSnB3blxaWllddH51aFliW2dlbmNpTFdmUT1eZlxddWVfdHBaWVRvZFlkcXlaaF5fZ21namxpcHd9jmxpgoR+eW6AfH2Bf4J6dYKBjJOFcICLbnh+gHp7iJKJf2h7fWp0e3KGe3N3fX+MeXiEfXxrjIyDm52WjIGAbI5+a2h+jox7fn+DlIJ/fYqIa3VxZ2hjW2Jncm5gYWtzYWhwiXlhc3ReY2SboI9uXDVZr7V0aYCIfJKGdoWWhXOOi4l2cGyFg4d1eYl4iXySiHp/c2d2iX5+mG9xhn5odnltZXmIhKSGgIeNiX5ufnZ/gHyMmYeCk5CYiIuEiXyPiHB7fYR7aH5ta4B7eml6doGHgXJgd4F+cWRyZnWCbXR7hZSRgXyBf253eXx0fm1Yb392dIyChneIdoKJenhzbomBj4GFcn59fpOJiXpubmpugoJ1bl1nZnNxUVt7TlxwXE9bcnBkVUtzeGlXWVlaYXGAdGBdXWBnZGhpZk5ZaE1AYWRbYHZhXXVtWFdTdGFaZG9yV2peYWhrZ21saXB3fJJraISJfHxwfn57gYCCeneAf4qLg3F7h29xd4N/e4mNj4Nqfntud3l2ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshIiReH17gZGAgH6Kg3BycGNmXllnX29wYGBncGZqb4p0YXRvW2FkanZ7f76cpqPIuHGFg3OTfHiGk4JzkYyIcnJvg3uDdHWHdIh3k4h5eXFjd4d6gJNpcoR2Znd1Y2p8g4edgX9/jo59cn5zhHmAkZCCeJaNlI+Igoh7iIlreHl+dWd6aGt/eXNpenaAgn1oYHeHfWprdGd7f2l2gYyQlH56fn5we3Z7dH5iVnd9cnOKhIJ8g3GGind4cHCDgo1/fXl+fXaOhoN2aXFpbYiCcnBdaGNzbkpldUxeblVUWXNuYlFPc3hgUlhYXWJwgnNbYV1oZWRjamRRWnBJRGRhW2NwXl13aFVXVXddW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHl9cnt+eIGBgXx2fYSIhoNwdoNybneCgn6Ji5N/cIB7d3l6gYx0g3h/gYGChHqAdW9+iYuanoh9hXp3hntndIWMkHp/f3uJhoR2j4Bnb25fZFxYZVltcmBgYHBsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhvjHV7ho6AepOJgHV0dH53gHBxf22EdJSGeHRrYHqCeYiPZnGDb2d2bVttfYCQk3+AeZKSfXh7bYd1gJCLhHSWipGOh4WFe3+FbHR2f21nd2Vte3VtanZ3f398YGJ4hnpodHVifXpndIWOjJV7dH91cYB6fG1/WVZ0fm91hId/gHlsiIZ0eGt1f4OEfXt9eHtzi4F9c2d0ZW6LhG1zW2pfdWRIbm5MW2JXVlV4bWJQUnR2V1BVWF5hcYRvXGBjbWRjXm5iVFxyR0JmX11maF5be2JRVVx1W1tna2FWal9gbmZma3FocHV4jnRrjox1fnZ4fneBg4F7c36EiIeDb3F/dHF1foWCiY2Ke3d/eIN8fIWHeId8fYF+hIB7fnN2eYuOn42Jeol2dIN5Xn2FmYx5hoN0hYaFd4l7Ym5sW2JbW2FWanNjYFtnbm9mh3FhcWZXXWNrf3zKzoi5omptbYpscYRxfISJfnuRhXp5c3l1dXtqbHVjhHWRgndvZl59gnqLiWVygmtqcWNYbHuFm4iCgXOXlHd+e26IcYGKi4dxl46QiIWLg3t5fnFxb31maHFibXhxamtxd3x8eVxleYB3aXV4ZoF2Z3SHi42UfHGGaW9+gHlufF1Ycn9tdICLfIJvb4l/cXZod3+Bf4F3fXF6dId8enJmc2FujIJsclhrX3dbSW5rTVZVXlRVe2thT1R1clBRVFZeYnSFaFxgbGpmY1luYVhicEdBaF1gZl9dVnteT1ZkcFlbamhdV2hgX3Jma2hyZ3Byd4Z4bpWKdH96eH55goiAdXJ/h4WNgnBwe3h3dXmGhoaLhnp8f3WLfn2FhISHf35+fYd/fHh2eXeRk59/jHyLbXaAeWODh5eGc5KLb4WFgXmCdGNuallfW11dVGdzZWBZZHFxZoFzYmtlV1tgaX93vq57oLdtYnOGaHN7cXmChXt9jH93eHJ2b3t2ZWpuYId1joFzamJefnh5i4RmcX5oamtaVm94iaOBhH9xmZNxgHh1gm2AgpGHc5WIjIiEiIR9eHRybmh5YGptYG12amdqa3l3endbZ318eGVyfW2EdGV1hYyGlX9vi2ZreoN1bXRiXG98a3V8i3yBZnWHfW1xZ3V+eH5/cn1renqBe3hwZmxibol+bW1Wa2B3VUpqa09STmhOWXxoYk5VdWpMUFRVX2d2g2ZdYHFoZ2FXaV1ba2hKRWtaYmRXWVV5Wk5WbWpZXWxlXFplY150Zm1kcWdyb3WBd3CZhXZ/fnd/fIWHfXVzgol/lYJuc3h6enNzhYeIiIR5gX12j398hImOhIKEe36Lg3t3fHd3mp2XeoqDhml3fXxsg4STgHKPgnGFgn6Bf29mbGZXXVtcW1RkcGRfV2NydWl1cGVlY1dcXGh/cG9ygHSJZGR4fml0dXNzgoR4gIR5dnN1bmt6cGFna2eGdI2DbmZdX31we4l+aW13ZmlkVVZyb42mfIR7dpaQc3tzfHpue3uQhXaYfIeGg4aDfHRwcmxndVxtaF9sdGRnZml6b3tyWWeBd3VncIB3gXVid4SKfJSAbotpbXqBcWZzZWBtemdzd4p8fmJ1g3Zpa3F0enF5eXN9Zn5/f3h3bmNmYm6GfG1rVmpicFNLaWtPTE5wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWZgVmNXYnBdTEtrWGNhVVRVc1ZMWHVkWl9rYVxbY2Vfd2ZtYnBpc25yf3R0moF3f4B3f36GhHp9dYKEfpeFbnJ0e3p1cYSFj4GAeot1dJB/fIGUjoCFhH1+jIZ7foB2e6OlinmIhYRsdXx7dYOCjHpuhXN5hH2Bg3VuamhlVl1bWlpTYm5kW1hic3tpaG1pYGJXX1ppgGprb4Bna2FoeXhqc3R0bYSBe399dnVte2hqeWpfZW5ogXaPhGdlWGJ3aX6He29pb2dmXVVYb2iPqHeBenyQjnl1b35vc3V5j4B3lXSFgn+Fh3VqcnZnaG5bbGRdbHJfZ2FpeGh7bVptgnJzaW+Afnl3YHeEhHiPhHKHcW95f3JjcWhcb3dkcXOIfHhic4BwZ2p4c3JseHd1d2SDe393dm9kZGNufH1rbFVpYmZTS21oT0dSa0VheGdhTVNxXElNVFlla3d7ZV5tcWlkXVZfVW5uV0tUaFdmXlhOVWxUSlx5X1tfa11dWmJlYHpobGFvb3VucHd1eph9d4CBeoB/h4Z6eHqDfoGThHF0dH56dnSFiJB9gH2Qa3OVgHuCn4V/h32AfoaCgIp7doSsn396iIeEbHKCenaAgIF1bodvfH9ziYBqb21kZFhfWllaVWJqZ1xaXnWBaV5ubFxhVlxca4FmcXR9aWlda3Z1Z3R3cWyFe319eXZybHpoaXhmXWRzaHp3koFjY1RlcGeChXd3ZmhqYFdWWWdjj6dufneAi456cHB8Znlveox7do5xhH1+f4ZuZHVzZGhoXGtiXW9vW2dfbHVkemhddIBvcmtxe311dWF0hYp6h4Z/f3dydX91YXBsWXF0YnFyhXx1ZHJ/bGFsem9qaXp4dXJmhXV6enVwZGFkbnN+aWxUaV5dVEtzY1FHVmFHYnZmYUtUb1dKTFdYZ2t2emRlbnFmY1pXXVh2ZVRKXGNXaFhZSVdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bXBudoOYeXKBgHx/iIuGfnV1hnmHi310dXWCeHp6goyOfX6EiGpzl4F6ip19foV6gXp+fIaIc3GProx7e4aPfmZyiHp0fHx2cm+GbHt9bI96YnBvYmVdZVZZWVZjZmtgXVxzhWhYcW5aXldaXGx7Y3B3dmxiW2xyc2d0dXBshHl+gHl3bm50ZWl0ZVtndWZ2dpF6X11SZWZqgoJ0fWJjaVxUWF1iY5ClaHh0goWQeG1ueWd4bXyFe3WIcoB4fHh/aGV2bGBmYF5qX11za1llXW9vYnplW3d7a25ucHd4c3RkcoOSfoeCiHp1b3J9cmJ4ZFtvcGFxcYJ8c2ZxgGRebnZpZGd5enRub4F1dH1zcWJfZm5vfWRqU2hYWVRNd19RSllZSGJ0ZGFJVG1TSUxaV2lscXtibGxzY2FaWlthdltTS2ReWGlTV0dZYE5HaXVYXmFtW1tfYmJdhWhoYW54eWxva3aBkHltg36AgZKIhIB2dIl0jIZ0cnd2gXd8fX6Mj4B+k35weJaDfJmSeYCAeHl9f3SIg3NwmaJ7e3+IlXhkdYh5c3h1bHRvfmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYhlUnJuW1pYWGBsd2NpdWpqXlptc3Fsc3NzaoV8fn98d25ubGRpcWNbanJkdHaOc1tXU2RhcoB/coJdYmNdU1pgW2OSn2VycYWEkXRsanlsb3B6fHtxgHZ/cnp5eWRldWhdYlphZ1ted2hXYl1vaGF3YFt7dmppcm53c3N0aHCBlIKGfoN1cmpwfG1md1dca21icXOBenNmb35bYG9xYl9qcX1sbHR+c3F4a3BhXGVsbHphZ1NnVVdSUHZbUlBZUkljc2JgR1VqUEhQWlVra2t8ZW1vcWFcWlhZbHBXUlBmVldpU1RGWlxPSHJ0WF9jbWNYYWBhXYtqY2RteXhrb2l1eYZ7a4N9gISZfIKEeX2Ibo+GcW93enx0goJ8i4+Dgpd0d4KUhYGfiXWAgIFzf4Fwh4J1b6KXdHuGi4Z7ZXiLbm57b2Z4cHpsc3ZyjGtedG5hZ2VrUl1bVmdibGxaXHGMZE9vbl1WWFVnanRnYnRlZV1ZbXRtcHV1eWqHfH98iHeQc2Rka25hXG5tY3N4h2taVFZiY3h9fXGFXWNfY1RaYFljlpVjbnCDhYpzamh6bmVzdnN8bHp0dW95fnVeZnJjW15WYmRYYXVlVV9gbWRhcV1dfnBoaXNxc3B1dWpthJOBiHuEcXJmbn1wcm9TW2ZqZnF0gXdzYmx2VWJxaltfbmV8ZW12fHNyc2ptYFpkamp3XmZUZFVWUFRtV1FXU1BIZXJfYUZYaU5IV1RWbWhkfGlreGtiV1xVW3RkU1JXaFFZZlRTSFpaUE14d1tfZWxpWmJgXl6PbmJma3l1bm9odnZ/f2yDgH2Gl3t/iIGJfmuTiHJndIB7dYCDfYiOf4yTc3yKkYWHn4Z7f4aMc4CGc32Ddm6ljHOBjYt2d216jGBkfHBmenN5bG1xdoJnZHtsY2ZnaFNeXlRnYGxvW15ujWhOam1gVFZTb2dza2V3ZGVdWG90bHJ6d3JsiHuAdpx7emthZWxtXmBvamVweH5nWlZYYGt4fHtwhF9iXmdWWF9XZJyIYmtxgYd9d2treGxbdnFseml1c25ve4ByWGpuX1ldVWFjV2RxY1NeYWlhYmxaYH5sZmtzdW5td3ZraIWMf4h6h21wZnB8bXJtY1lhaGlvdIF0cl5pbFJlcWRUYm5iemNxdnt1a3Bta19YYWdodFxlVmFWU05YZVJPXE9PSGVwXWNGWWlNSV9LWG1kX3hobn5kYFVeVF10W1RSYGZOXWFUU0pcWVBZdXZdX2ZtaFhjYVtejnBjZ2p3cXNuZ3Z0eoNygYN6iI1+fIqHjnlukIp0bHOCdH9/iIWGkYSVj3l+jI+IkZuEgHyMhHN/gXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjI2MjI2MjY2NjY2Njo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCTqWvra2trrB/a25ubm5vamZnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTNBqba0tLS0t3xlaGdnZ2hjX19fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaPkJCQkJCRi4qKioqJiomIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5CKkY6NkYiPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyLi4yMjIyNjY2NjY2NjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoeJh4aJhYiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCPhoiGhYWFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+JhoWHhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aIhoaIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY6Mi46Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7e3x9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpKSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4en16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lmZmdnZ2hoZ21namdoZWhnY2JiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2FjX1xfXWBdXlpeXVlZXmJhXl5aWV9bWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTVFBNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHRzdXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PUFBRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpISEpJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUVAPjo7Pj48RUQ9P0VBP0BBQERFR0dHR0JERERGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs8PDxITD09QUE/QkM9QURERkNGRkRGSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OTg6PDw+PTs7Ojg6QEBBQj9BQENGRENDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1cnF0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzk6Ojc4Ojk6Ozs4Nzg5Ozo4PDw9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09P0A9PTtLZUA9PT49PDw8Ozs6Ozw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/PT5APz0/PWt4VD1DRT8+QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZEPzw8PUBNTEZId3VZNzw6PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+fn5+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQEluUDs9ZIGCfnV6dlM3ODg6PD4/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkM/V3t5UmWEg4ODhHx4Ujw9Pz1CRkFEPzs8PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUBZdHd7goGBg3yAg3tMP0BDP0pSPU1HPDw9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8e31/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBP1J1c36Ae4CEe36GYkBDQ0U+T1tMbWhJQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTElHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRmt1fn95goSFhYZ9SkRGREJjfoWIiX5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHXXh/goOEhIaGh41qQUJWdIWHh4eHh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExMWH+EhYWAg4aHiX1TbYSHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUpJSUhISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpehISFhH+Bg4aGhIKGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQkBBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSWqGhYWCgIOBgoKDhISFhYaHiIiIiYmMjmZEQz04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc1ODg7Ozs9QDs5OTk9PD47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJZ4aFgn+Ag4SDgoKDhIaJiouMi4qJiouMiV4/NzY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3ODk3OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JqhIGAgYKDg4ODg4WJioqJiYqKioqLiYmKgkg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo6Ojs4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2txcnR0dXd5e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I5QXuEgIKDhISEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDk5PDg6Ojs6OTk5PD88PUFCRElKTUtJS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz1Qg4KBgoSFhIWGiImIh4aGhoiJiImLjIuJioqMbDw7PkFDRUVBQUFCPkBCQEA+PT4+QD8/P0A/QD09P0I/QUE/QT89QEBAPj9BPT48Ozo7OTk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQlmFgoKEhYSFhIaJiYiIhoaGh4iJiouLioqKi4mLXj5ER0lLSklGR0dERkhHRUJAQENFQ0NBQkNCP0BESEVDRURFRUFGRUZERUZEQEI/PEA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFARERFXoaCg4SFhoaGiImJiIeGhoaHiYqKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkNISEpdhoKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExNS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw7PD06P0A+QEBDRkpKUWOCg4WEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEhFSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnB1d3d5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QEVJS01WcoOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4tfUVFQTU5NS0pHRkJHSkdMSkZLT0xLSkpNTUxPUE5ISUtMT1FRUVFPT0pJSkpMSkxGR0hHRUdJRkVFQkBCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBSExNUVd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVVFSVFJPTEtKREVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0dWTkZPUVFVWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVWthRVJRUVBKOztRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTVJQUFBRS0tLSEhKSEVGSUhJSElpcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flNISklJR0dGRT8/QUFFQkNHRURFTFhSTVRWVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLhmxbZFU6WFhYU1A+QFZVWVtjYFZZYnJeXVZdWlZFUVlaW1lfVFlnUlVWWFRUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6enp7enp8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JWVlRaWnSDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVtdWFhZV1JRTlBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWFNWVFdSUVdVYpaAUWVyWFpXX2hQYGZbW1hcZ2FHT1poZ1xbXF1dV1JPU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVVhUUlRSUVFMT0xLZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpbXF5UUVFQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVRST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTU5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE9NTEhDSUhSVFVaXG1ydXZ1c3N3e3p7e3t9e319fX59fX1+fX5/f3+Af39/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUExJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz9DQ0NDQj9EUEJDQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSEJDSEdIS0dDQkFEQE9QTVNkc3R1dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiW1hTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz8/Ozs+QD8/Pz5rUUphRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNDPz48PUI+Sk1GVW51dXVzdHZ4e3x6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FSWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXt4enx8eHd4ZEJAQEI9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztCSD9cdHR1dnV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV2ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJYR0ZGSEJBRklFRUZETVJQYVdSWFFQU1NSVVtPT1FXUE1KQ0Y+Ojo2NDg2OTc5OjM2Njc5NTxCPWV0dHZ3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMWFlaVlhYVlhZXVdXWGhza11WYXNrYWFfXWRgX15ZVVBNT05MSEhKS0lIRkNRUFNaV1RUTVFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnJ1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KT09UU1RcVlJVU1JPTUtJSEhGPz89Ojc4NzY1OTk2NzY2NVdwcHN4eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydnVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9KSE9QT09NUkpPUFBQTk5PVExNSVBPU1RVMjxYTUlBUT1jYVFTUVBOUFFQTk5NUE5UUlBSTUlMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojo4NzY7QjQ1NjY7ZXBxdXh4e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVCRkdHSEZKREhKSEdFSExIS0hGTE1QTUcvRV9SPjNAPmpvYVJSUUBGVVFQUVBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PTw8OT1HNjY3NkRucXR2ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRUZISk5LRUdDT1JDOEVOU11mU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FNT09NSExMSUtLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t9fHx7eX17en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT09NUVNMVFVUV1dVTExLSD05ODc7P0A+PD1BQEI9PkVIR0RGRklHSkpARkFBQEZIRUpPSFBSYVxRUFJOU09PT0xMT01LTUxNT05bV0tNUU9HSUhDSUpMTEpGRkZEP0JDPjxCRj9CP0FkcXV4e3p7e3x7enp3fHh5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47P0JAQD5BRElFQ0hHSUdJRUJCPz49Q0JBR0lETU9hZVFNT05XS0xNS0xNTUxMS05OU2RNSkxSSUlJRUFISkxNTkpHSUZCQUJAP0VGRUhES29wd3p5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxAQkJBREVHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTVFUTEpJTVRGSUlKTEpLS0lJTE1PUFJQS0dDS0dDQkpKTE1PTUlKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtdHV7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0RHSEhHSktJSktER0I9Pj06Ojo7QEI/PUJCQ0NHRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNT0dIS0ZIS0RISUtNSEpMSEhKTEpNXVJJSERNRkFES0pOTVBOS01KS0ZHR0pNTlFOTGNuaXZ2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLREZFR0RFRUZFR0JDQD48PTo7OjpAREA+QkNERUlGSkpMRklJR0ZGREI7QkNDPj9DQ0NFR0xOR0tOSERIRElMTk1ISUxHRUZJSUxOS0pIRU5IQ0dNTE9NT01OTk1MSUhKT1JRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0pERkZFQkJCRUBEQj4/Pjo7Oz06PT5DQT9BQ0VHSkdJSUxIR0dHRkVDQD1FRUI+QUNDQ0VHSElHTVBJRkZGS05PS0ZISkZFRERJSUhLSUZIUEtESU1MUE1PTk9PTkpKSU1SVVRST1dkYGFtZ3Byb3J5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPUJBPkE9Ojo9Pzs+PkBCP0BCREdKRkpHSUhGRkdFQ0JBQUZGQ0JDQkRFREdHSEZMUUtJT0pKTEtJR0hFRkVEQ0lISEtKR0tSTUNOT01RT09PTk9PS0tLUFVXVlVUWGBeXGlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmprc01HR0ZIQkJBREQ8QUFAQzw4OT0+OT88P0I/QEBERkhFSEZGR0ZFRURDRUNESUZDRkVCRUdFRUZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LT1NORFFSUFFRTk9NTlBNTE5TV1ZXWFZYXVpdZGBoYmppZ2tfZWVnY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaW96TUhHSEhCQkJGRTxAQkJEPDc6PT46PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkdKRUVJR0NHSEZIRkVDRkpKR01KTEtJSkxGSUlLSEVLS0xNTk9SVE9JU1VUUVNQUU1OUU5NUVdaVlpZVlpdWlhhYGBgXmhlY2BkZWhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN0bnByc3lOSEhHSURBQ0hFPEBFQkU9ODo+Pj08PEFCPD8+QUJGQ0VCQkdEQ0VFRkdHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMS01LSU5MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZW15fXmBiXVxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXZxdU1JS0hKRUJFR0U8QEdDREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREdFSEhGSEdJS0pGSkhIS0hGRkxISEhKR0xMTExMSU1LTk1NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW1xeX19hYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtydm92SktMSUxHQkVERTxARkREQjs/P0FAQEBEQT9CP0FDSEJFREZHRUlFRkRJSEZJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5QS09QUlVYVk1OVFZVU1JRUExOVFNSV1teXl9dXWBfYWFhYGJjZWFjaGJkaWpndotsa2lnbW9zcXBxcHByeXZydXV0c21tc3NtcXJvdHV0cnBzd3R1dXd2dXV0ZXFza3BxanJ2b3dKTUxMTEdEQ0FEPD9FRUVDPUFBQ0JCQ0VCQkRBQUVHQ0hHSEdFSkZDR0lHR0pGSUxISkpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBPVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5gYl5gZWFhYmduaGJpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJxcXV2dXN3eXd1dHVjbXRrb3BqcXRvd0xNTEtMR0VBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NCSUZDSEpKSElLRkRLSkdISklJS0dKSk5LTkxJTEhKTUtaZkpkXEtsU0hPTl9uVWtzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmW2x0YGxqVGB3dWlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxcnF5S05KS0pGQz9AQj89REVGRENEQkVFRUZCRkZIQ0RKRUVKTExKTE1HR01JSElLSEtKSUtKTkxNTUxMSUxNTFtzYmRwXmxtVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9cb3VncE1Kcnl2a2Jga2VlbXlta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0JCPz1DRkdCRkNFREVFRENISEdERUtHR0xNTUtNTUdKTkhKS0pJTEpKSktMTU5OTU1KTU1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxfcmtxalV1eXhwY15rZmJncXBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW5ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dFRUVCQkI9P0BGR0JHRElFRURCRklISEVHS0pHTU1OTE1OSExNSUxLSEpNSUtKSkpPUE9OTUtOTUxcaGR1XWxxV2xOUFFtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV5ya2hXYmN3fG9jYGdoYWRqdXlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR3SU1HSURFRUNBQjxCQUJGREdGTEhFQ0NIS0hIRkpMTEZNS0xTUkxHTUxITkpJSE5ISkpJSE5PTU5MSk1NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2diYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISkxNTU1JS0pLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRURER0JISkxIRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpKS0tJSElHS0tLS0ZISkpMTExLSUtMTlRbXFRQVExQT05PT1ZRT09RT09RSklOUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NHQ0VHQ0lLTEhGREdLTEhER0hQS0xPS0xXTElFRUhJSkhJS0lMSkhGSEdKR0dJRUZMSElLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSSllhWlNgZFxhWFtkZFZWWFxZWlhcVllcXWJfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElER0dGS0pLSEVFSkpKR0VISFBKTE1KTVNJSEVBSEZKSUtLSUxKSUZFSkdERkdFRUpHQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOXlxeU1teY15aXWBjYFlfYltgXltUWFhZXl1jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tGRUhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRENDRUFGSkRASktJT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtQWl9hYV1eY2FgYmJiY2NlWlFZVlVcWV5kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkRHRUJFR0hGR0hJRkdKR0hGSEtJTERES0pOTUxMSEpKSEpHP0dGTkpLS01LS0tJR0dDREBEQUhJQT9JSkdPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUE9cX2FjY2NjYlxkY2JkY2ZYUVVUU1tYWmFeXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0VLSUZGR0hHR0lGRkZJTEpORURLSkxOSkxJS0pISUdCSEhRTUtLT0xLS0lIR0VEP0VCSEhBQUdGRFRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJgYGJiYGNiYmRkYlhPUVFSW1NbXl1dXV5fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lKS05MTElMS0lJR0RIS1FPTUxQTE1LS0hJQ0RBRUNIR0JBRkVCVlVFXFRdU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJdYGBfYmNiXWJiV19fVFBOUFFYUl1cW1xcXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREVGR0RJUmJQRFdfSUdHSERGTUpQUEVKSUpLTkxLS0xLSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0FERkFMSENMTFBPT0xGTUZHSUpIR0xMTU9QSUxPUFBTUExQVFNVWllXWVhYZFZPU1RQUE9OUFVUXFlZWl1cYGFkZWNoY2tscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXUxHSFlNR0hKSEdOTFFRSUtKS0tOTlVOT0tLTEdHS1BTU05QT05OTk9IS0VgRURfTERmY0RNW0heXHNtT01WbVlMQ1BgVWxXZ0pdV1VeRExRVUxNVFZRU1RYV1RYVVRcVFBmWmhoZFhTa1RXVlVbXFtgYGFiYmJgZmhmbmxocnp8fX6BhISEhIODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09TSUtHYFRISk9KSU9NUlFLTEtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzV1BtSHFucGFWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlbYFZVV39qdHV1X2B3YFhhXFxmW19hYWFhXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEZKTEZSVkxLT0lLUlhXUU5OTkxRVE5PUVBLTE9HTVBTW1pUUVJPUFBQSkhaeF1UeGVoWVJUUXZndGxwYm5malFyT013bWpycHNycXJwb3CBXWV6dXhxcXpxfnN9a3V9YlJnfGVzc29zc3x9b315b39yX2BgYmJaYGBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gHV8f3x8c3NOS0ZgXUdBRU1NSEtKSEpQTk1NSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dRVFBQUFFLR2Z4bGN4cm1aSkxVeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3NRaHptaWp6en1seHp/b2dvWHZ2anV1cIBgc2h8aWx4fG9eX19jYltdYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3V6bnx9eXhybk1KU3ROQ0JFUFBISktKTFBPT1BNUFpgWlhLVFdQYV5SVlFZU01QSVNUVlhXV1BVUE9OUkpLcm91dXF1cWRoYFZuTHFwXkZoeVd2VEtoeH14YHl7c25hXm1vZFJncnVubXlwd2x2dHRxbG1cdH56a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tS0tbVkhHRUdSUEpMTUtMUVFRUVBRV1xZVU5WWVVmWFJSWV5UTU5JVFRXV1lXT1NOTk5RSFJtSGl3S2BkdnZVV2xPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGV8aXJ7XVRLbGB2dWtpdXt7bX54a3xwXV5eYlteYmRkZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobG1yfGttaGt7dG1ta21PSEpLSElJSFJQTE5PTUxUU1NPVFJXUlZUUFdaVlZUVFRhYFFPTktUVFNRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVJTV1tXWFdaT1NVV1dYUl1ZV11WVE9ZUldXV1hZX1tncl5bW1lcXV9jWl9jY2RmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraG96aGdna3VqaGdpbFFJS0xMTUtKU1FNUVBPTFZWVFBUVVhVWVVSWl1WVVRXVVlYUE9MTVZUUU5VU05PTUxRUEtKUVJLUU1LS09SVFJRUVNTSUhMTk9RUlFRUVRWUlhXXFdTU1FRVVVWU1pRT1NSV1VUWVZUWVVTUlVTVFRXWFddWl5hXVxaWlxcYGNcXWJjZGdlZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUEpLTE9PTE1UUE5TUVFNWFdVVFVXV1daVlRcYFZXVllVWFRRUEtPV1NQTlVQTlFOS1NQTU9VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RPVFVYVVRZVVdZVFJSV1VVV1tZWl9dVVhfXV5dXF1hYV5bYmJjaGZlZGJYX2BiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2FQS01MUFFMT1RPT1NRT1FaWVhXWFpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUE5NUVFQUlhUUVFPTU9TVU9XUlRVVU9OTVFTVVVUVFJUWFZaXVxaVlZRUldYVltbV1FUVlZVVlhUV1dUUlJYVlVaXVldX15WXl1eYFxcYGBfX1piYmRoaGVkYVliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SUk9TVFFQVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUldTU1NYTU9QUlRYVVVVU1VZWFteXVxbVlJPVVZWW1xXUVRXVVdYVVNYWlRTUVpXVlxeWl9fYFVhXGBhXWBiX1xgXWNhY2doZGZgWWNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeYFteXmFgX2JcWWBaUU5PTlZRUFRST1VUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSS1FUU1haV1VPUk5TWFZUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVVZcXFZSVFZWWFlSU1lcVFJSXFdaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZmlkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1bYFxgVVxdaWpyfXNsZ1xVWVdRT1JbU1JRVFJUVVRLUlZVW1laU09TUlZWVVNPVlJTWlJUVVRYXFdYWFNYXFheXVlaXVRVTlZXV15bWFFUVVhYWFRWWFtUU1ZdWV1dYF1iY15ZYFtlYl9kZF5eY2NhXWVmaWRmXV5kYWBhYWNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVVZWVFRUXl5gXl5iXGBVXV5ia3l0bH1sWlVaVVFRU1xUVFRVVFZZV0xSWlZdW1xST1VTWFdWU1BYUlNXU1ZWVVtdWFtZVVpeWF9eWVxZUldSWVhZX1paU1RWWllaVldZXFZVWl1cXmFhX2RkXV5dXWVhYmZkXl5kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVpXVl1aXV5aWVtcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFhXV1ZWV11YUFVcWV5dXVRSWFJXVlRSVFhSU1ZUWVhZXV5YXVtVXl9YX19YXVZRWVRZWlphWVxVVlhbWlpYWVlaWFZdXl9eY2JhZWVdYlxgZmJkZmRfX2RiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaVlNcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFlcWlZYVVdbWllbWVhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdbWlxfXlpfXFZfX1pdXlleVlNZV1laXWJaXlZXW1xbXFtbWVtZWV5fYGBkYmNlZWJkWmJmY2dmZV5hYmBjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1dZWFdcW1xgXVZdXVNQVlpWVlpVWFZYV1hdX2JhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xSVlhRV1ZWVlZWVFZUWFxcX2BgXWBdV2FeW15cW15YVlhYW1pfYFxfWFldXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTVJXWVZXWlhbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWlhdYGNkX1JYWVBYV1hYWFdWWFZdXV5gYWFfYl5ZYV1dXlldXllYVldbW2BfXV9ZWV5dXl5hXFtaWVxfYl9iZGNlZmVmYlpkZmdpZ2NfY15hZmRaaWliZmljZV5iYmNhYGBfXV1aV1tZWVhYWlhXWltaWVdYVlVbXV1dYGBiYnhLV1dcWVdcXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FiXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNgUlxZT1hXWVtaWVhaWWBdYGJiYGFjX1xiXV9dW15eWllVWF1dX2BfX1taXl5gYmNcXFdbXWBiYWNlZGdlZWZkXGVmaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWFdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9cXF5bWF1bXl9hY2JhYV1iW2JkYV9jY2JdXFtaV1hpcWBcYF9dXGFjX15ZWWNlZGFTX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxdXl9aWFZbX11cYWFfXVtgYWJlYl9dU1xfYGNkZGZkZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoY2hoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3p6ent7e3t7e3t6enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3p6ent6enp6enp6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoGCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIjbG1tLS0s7O7vr6+vr69ytPS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIuRu8C/wMC/v8nMzMzMzMvb5uXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXp6enhvb3BwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2AgYGBgYCAgYKCgoKCgoSEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnh7d3p6eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3p6enp6eXp5eXl5eXl6enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx7fH17fXx4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHx9fX1+fXh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d6fH17fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en18fHx7fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h6enl8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBvbm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3t5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8e358fX5+fn5+fX1/f398fH2Ag4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAf35/gYCAgH+AgYF/fn+AgX9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35+gH9/gIB/f39+f39+fn5+fX5/f35/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5/fn5/f39/fn9/fn5+f4CAf4CBf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/gIGAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCgoKHg4OCgIKBgYKCgoOCg4OCg4ODg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCBg4GChYWFhYaGh4aFhoaHiIeHhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WEgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkZKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSDg4ODgoOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCh4KBgoKCgYGBgoGCgoOBgYCAgH6BgICAgIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKBgYaaiIB/gICAf4CCgYCBgoODgH9/f4CAgICAgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgYOEgoKCgYGFjp2Mg4KEgoF/gIKBgoKBgoSDgYGAgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KGhYSDgX59fICTnY2DhYSDh4WBgIGCg4KChIODgoGBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GBgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+AhZSLhX58fX1+e42fi4GCgYGLi3+GhIKCgoGCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42MiISEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f36GnpeHfX+AfouFgJGEgYOBf4+SgZOLgIGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5KNjYqHg4ODhIGBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIScoIiBjIJ9hoV9goSDhIKBlJiCiYiAgoKDg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZSfhYSIhIeBgH5+hYWFhIWOhX19fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OTkpKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDiJCBgoGChX9/fn2Ch4aDgH5+f39/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4KAgICJhH9+fX+FgX9/gIB/f39+gICEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkZGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgYCAg42Gg4B+foB/f3+AgICAf3+Af3+FhYaIiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOAgIGFhIKDgoGBgoGBgYF/f4B/f357eoGLjImKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+QjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoCBhIWEgoKCgoKCgoB/fn19fX1/fnx6fI+MiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWDg4WEg4SDgoKCg4F+fX5+fn5+fn19fn19foOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYmDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4SDg5GSkY6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhYCBhIODg4ODgoKBfXx9f4B/fn5+fXx9fXx5fIOGhoeEg4GDg4SFhYWDg4WEhISEhISFhIKCg4GEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4F/f4KDg4ODg4KCf319f4CAgX99fn59fX19e3p6foSEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn6Ag4ODgoOCg4J9fX5/gICBgH59fX19fn18enp6f4KCgX9/f39+f3+Afn2Af36AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODg4GBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fX6AgH99f359foCDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gICAfn9+fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/fn+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5/f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/fn5+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn59fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gYCAgIGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOAgoOBf4GAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCg4GBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhYSDg4SDhYSEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODg4GBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWBhJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgICCgYKAgIGBgH+LlI+Mi42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRjIyNjo6KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2MjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399f39/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf3+Af399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fH+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIyPjYuKhoSGhISDg4ODgoKCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaFgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42Mi4iEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gH+BgYB/fYB/f35/fn5+f398gn5+fX19enx9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4WBhJGOjIuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/gH9/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/f35+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJiomKiYWIkY2LiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH19fX19fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uLiY2Rjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36Bkox8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjpCNi4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Jgn9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fX19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fHx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGBgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICAgoF/gIGEgX5+gH9+foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYKCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fYmGhoWFh4WFhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKDgoSCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4F/gIOCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgX+BgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF+fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfYCAfoB9fn1+f4CAgH9+f398fn9/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgYB/foCBfn+AgoKAgYOChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH99fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhISDgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Afn5+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/g35+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+goSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8e3p6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn5/gX+Af4CCf4CAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/gYF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt8fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg39/goGEg4OEgYGDgIKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEf4CDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYB/goGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGDgYCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fH19fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICDhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgYSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4GCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4SFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhIWFgoeGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIB9gXWBeYN/f39+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fX5+foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISFhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWEgmh6cnNzfIBygYN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYZyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId6bX1yc3Zzdm1ud2xweWx1fX9/fX6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3t/fXyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYSFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhISGh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYuIhoSGhYWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxtenl5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX16fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoeGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaEgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaGhYWGhoWEg4SEg4OHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaFhYeFhYeFhoWHhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx+e3x8e3x8fH17e3t9fHt+fHt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiIiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGiIaGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH17e3t6e3x8fHt7e357e317ent+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2AfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhYKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEg4aChYGBgH9/gIB+f4CCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aFhIaHhYeFhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCf31+f35+f4R+e398fICBfYGAfX6DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn9+f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1NXU1NTV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fb29vb29vb29vb29vb29zc3Nvc29vb29zb29vb2tPS09PT09PU1NTU1NTV1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0j4yMjIyMjIyMjIyMjI2IgYKBgYGBgYGBgYGBf4/T0tLS0tLS09PT0tPT0t3j4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFpVVlZWVlZWVlZWVlZXTkNDQ0NDRERDQ0NEREBc0tPS0tLS0tLS0tLS0tDg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/ODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpZ5fWVpaWlpaWlpaWlpaW1NISEhISEhISEhISEhEYNHT0tLS0tLS0tLS0tLQ3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqjaGRlZWVlZWVlZWRkZWVdU1RUVFRUVVRUVFRVUWvS09LS0tLS0tLS0tLS0t7p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzMzMzMzMvLy8vLy8vLy8rLzMvN1NTU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7O0NTSz8/P0dPPz9LU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19bX19fX19bW1tbW1tbX19fX19fX19fX19jY19bW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Oz8qWpdHP0rif0dGcgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8+cqp2t1bKXmLi6lbi5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DLlIiancydo6ix0ZJ9fq+w0s7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0b3ImZnCxYibttXTzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Sl5Sfy9elm7XU08CgoNDP0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Ts5vEmNTVopq11NSvoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0c6NkJ7C16KZtdTTo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHL2qiZr9qimrbUzp6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJjqWanrTZo5q118OfodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HKu6Gmp5zL16KbtNmypKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09OekI221tWyhMbWuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0rrE1dLS0cTV0dHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/Pj5BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLV1NLS0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw9OTs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ojg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc2ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+fn5+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo7PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/OzpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6ChoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QT4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnp6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiZl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTpGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVnJqdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipKmnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqaqppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6mnqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6KvqqqtqKirsKmoqqihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PjxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustq+zsKuxsrGin6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopKGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6impidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYW1odWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW2vLy+vLy+xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0NERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb21ocXhveWppYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbDxMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsb7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3lmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDw8HEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbO/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMnIyMnHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBx8HLy8jGzMrNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVvdGJdYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw5PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBwsO/v77Ey8jKy8m8utXWyczIw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnZGplYWptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDubi5vL3Bx8HGucrKnMHGw8DEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e9xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmdjW1paXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9wLm+urq0wLi1t7Kuuru2wLnam368wr7AvLvEvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+urW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vsvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCnoaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmJnamdmaWVpXVZWVFlPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLevrre1uL3JyoOEpce6w7W6x7i2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGhoqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHFtZWVmb2lla2hYWE5LS0tSSUxIQzk9OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88OTc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7e5t7q7uru/0al7f4m6v8e3ubitt7W4urS4s7vFxsvBvMbAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJidnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2kr7C2ubK9vrvEtre3ppinpqe2xMiMeX6FucnPwsC4rrW1vL64urK+xMTKxcHKw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFmbGludG54Y2diW2NRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QD06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKqqo7C60dO0u768xbq0jm5ocGNreZ+se3uChbvR0czKxLW6wMPIv761v8G/xsa/y8bDv8G8wMPMysfFxsC5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDPDs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPEFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLGzxLLG2by9u8etjnhjYmpOUlpgfnl/hYm8yszLzcrGwsTLzsK8ub25ucDDv8jGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLW8uL1pd73Ov7ivb1liZFNsZ1NRUVtzfYSPu8PHy8jBw8HAycrCwLu6sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKyr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpJ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXpuc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u8HAdGl9q762cFZKVmpJWoF3c1RQZnyFmry9v8bAucC8vsXEvb25srCuuLe/w8fDw7y9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f312bHV6cG5pW19fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkNCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnJv3p3aX+pl1ZPSnd0TVFseYN7UFSCiaG3uLfCurO7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGso6irqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9mXVpUSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa4yMCDfnNxk2xPSFyJaE9PT4GufV1LeKSosbK3vrmytbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZxbF9jYVtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8S7jIN7eH5hSWCMal5RT16Bro5eUE57trawtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZlhcXVJOTUE+SUJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i6wZuMhYl+U02InnhqWlZsXnWHbm96pby2sbS1srSvrLu6uLa6wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7yqkI2WmkxVir1ke4KJZ2J7amJtdqC+uLK0s7CxrbC5uLa+uLu/srKyrrGuua+qq62so6ihnZ6el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+ysKSapJ1MYH6PeWx5fWNhamt0eW2CpLeyrbOvrqyutrazvLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6aim6OclZCMj4+Qk5CXlZaYn56empiml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR1BNTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6SsqbS/s7NvYYVvaWlXY11eU1RZY2FccXuitqqytK6qq6+wsrWtpZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mao5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01KSEdPUk1KTkc8RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqKGmw8OQVXVuZm9mV1tRSEVHSUxLTmFle7Ovr7O1qqasq6KcmZSOkZaXmZmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHl5YGJSVWBJSUpLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWenbuyg31hX21hVEhGUUtJRElHRUpVWVylsrCwuKymoZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKxtKqyr6KZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk9VTFNMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpuim56jp6F/Z2hfVEdJVn1+aFNHQ0JGTFBTirGurK+nn56ioJeRk5ugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFJVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKYnpuhoaGPd2pbUUpGTHGgp6BsTkVCQD9CVIOgq6qppJ+fmZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+nqKWkn52qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JXTkpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKSgeWdcUk1LSlKN2dnAj3VkVklEU5GsqK2pqqWfnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqztK+zrqqvo52rp7axraKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHJra3VycGhXW1FFVEhESlBJP0VBNEZIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfn5qgnm5WTkxOTVZnodC7oJe4ppCJmK64rqejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsHGvrq0urq0u7ewtbKqurKuu7e/u7qqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrY2hveGpkWltGS0xFRFNMREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaKdnJVgTkZKTFZrfqe4qoaM1NbGv7eon5qcm56emZeXl5KMjpeXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxczQ0tXO08m9wL/Du8bFyMXR1M3T0NPTzMrCxsbHysjOv8jRzMfFx8XBvMPBvr++tb6zrr+/wsPHxMfErr+4sri8w8HBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOfnJ6UXEpCSExoeam4oZB/scu7r6minpyfmpiWlJKUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LV1tPTyMzHzM3J0s3O083FyMnKwcbLx8jJxr/Ds7PIxMvKy8/Gyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2gomxKSkxVdaLN0ruhpLOqo5ycnKCkoJ2alJSVlIl8d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDW1tbS1s3U1tfU09HT1NTTz9LD0NPW2NXW0svJztHLxs3SytLW1tnV19PW2M7Sys/RzM7QzNLPv8jHysPMzMzOz8XGx7a/yr/RzcvPxsnIv8PDyM7Mz9DPzcrHzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGRyYl1SXElKR0FFSEk+O0E4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoayBZXJ2kLPR29G9r6mZlZignJqgoJ6bnJmViXdpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ2NfY0djS19nV1szPz8rN0svO0MDGwsfFzs3R0dHIzM3AyszF087LzsjEysfGyMzK09PR1c/SzNPBucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV5WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaWhgoqStNLS1cKtpqCXlpiam5yfnZicnZN9cWVjY19fYV9fYWBfYGBfYGZucHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY2NfLyM7Eyc/MyszAyb/Hyc3Oz8vQzc7Mzs/Iy9DQys7KwsnHyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1XRTtAPTMzPD04Nzg2NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramngWyIh8DVzLCbm5aUl5uenp+clJaYlIhrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29ydHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Hzs3N1MzO083L19bQzNHUy8zQ0tPKztHV0tXVyr/JwcXMwsjJwszDxcjKys/KzczQzdPLxsjPzcjHy8XGwcXKzM3P0cbQzs3NzM/Fx8G4ub3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV5cHFrbWdgYHBoWFhoVkxGTElQUEI7Qz47Njc6ODk6NTc9PUA7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKigrGpofpPW0KqVjo2YlpGTkpGWlpaQi3xlYWJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svRz8W6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL7Ax8zLy87Cy8vIx8vQxMXIu8fDycjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7utpaVfbXeq1KqQjo6XkIeEhISCfoWFf3NgW15eXmBeYGNkY19dXV5fYGBfW1pcYGtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLLycHCzNDFzMi/ucG7xse+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xry8wMPFzMXFu8DKwsXH0sXByb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZujoJuUe3ZzdGZpWmFubFpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srKVXnB3uLSPi5OXh3uBhYaAdnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsba6srKzsrHCvLy8urjBwcLFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDv7zBzcPGvb21wb3Dur3Gu8K6s7zFxMHCtr+2tb2/u8zDvLW6yLq/vsvEwcbCxsnGyMbQxsLMx7LHycPOzcHFw8C9s7ewsqeoqLmwpa2wqq2slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztHKysrHzc3O0cjQxtXU1tfNys/FycXHwbnFvauvhmBzg7CSjImLhXmBh4eAfoR8dHRjW1xdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLW3tLOztLy2vbG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bBwry4vcbBw7u1rrK2ur+0xLe7tau4vb3AvbG6tq+2urPFvLeuu7+1t7TFvL7DxcDDxcbIy8XAxsa7yMu/z8rHw8bCw7fDvb22ub7Hv6y1urW3to55dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcXAvrq4ybWpsYZoc5OejIaJint5foaGd3iCfXRpXl1dXV9gX2BkYV9kZWNfX1xbXlxdXlpbW11fbHBtaGZqbW5yfKTHv7i4tbCrrKeeoqqnnquts62qrKm0r7ewsqmupqyyvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLLAtri9sLCnsrO1u7yrrrWlrrWuu7Kwqbmwrbuuu7i7wMC9ucK/x8PFwbzGwsjLuMXHxb/Gw8O6xMbCu8bJzMuzucK8u7OIc3Z2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx87Bw8a/xMTDw8rBycq+v7zAurK0tMOuqa+Ja2OJk4iOkHx4foqFenuEgXduXl1cXV1fYF9fZGJhY2NiYF9dW1taWl1aWlpaXGVub2hmZ2lrbnKBrbmwta6mpaenmqCloZqcpauupKiirKqsqrCjpp+qrbW2sb25r7evqa64tLS8uLS8r7i5tbK7wbLArqWpoquxsrOovaqrqKusrbSzpqitoaSvqbKmp6iupqi3rLGyt7q6u7K8vb6+xL+1wsHHyLe/wMW3xMK/u7/Ewr7EyMzKv77EwMCph3N0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HLvrvJtr3DvrrJt8HDwbS1u7WwrrS7raioimNni4SIi4B7foB+eHR/fHN3ZV9dXFxeX2BeX2NjYWJgYF9dXVxaWFpbW1lYWlxfZmtmZWdlaWtvcoWqpayloJyipZSepJuYkqGjqqSin6alqKWtoJ2cpaassq+2t6ewq6iqtKu0urG2ta62ubKvurqxtqSgpJ+msaerqLmqpKanqKeyraCnpp+bpKasnp+no6Chsa2trLK0s7Swtby2u8HBsrq+w8GyubnDs8C9v7W4u72+vMLHxMLDvsDEoIN4cGthZl9rb2BUWV5ITmdPVEhFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLS1vbi6wLq9taCelZ2hprq2q7Ozu7PEz8jLwsa4t8fBzL+4ybe7xbizxLizvsCrtbuxq6Susqygoo1he4eGhoF8eXV0b21rampxaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeWm6GWm6KYlo2eoaOnm5+gpKaiqJ6bopufq7CssbajqaqqrKyktLmtt7Css7WusrWusKqfnZ+korKkpqm4raKmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqrKytsbK4r7i5u7C2u7u6q7OzurO9tLaxsbW0v7a9wL3Dwbu7vZeDe3NrX2VeZGRYVFddSVdcS1BHSUlGQTw/P0A7PzwwNDUzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vEw8++uce4t763ssG0sbu7q7i5sKGeqKqml56JZYOFhn94cm5wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1hYWFhaXmJkZWVmZmhpa3KNp52UlZWbmJuilpaRnKKiqJ2bnaWmoqacoKCbma6ura6yoKWirqunorWxsrKsqK+yp7qzprWgop6bo6Gto6Kqtaqio6adpqajlpmel5mbnaCal52dnZytoaunpKSmrauztKq1sLOrsrm0r6qvsrKzt7Ouqayusriwura6vb+3s7GUhXl1ZV5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWkmKWxwrW2va20uMLMyMa/xbbBv8fOt8DEvbO5ubK/trG4uqyxtK2emaOon5KafWiAg4R/eG9xdHFpZmRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqKclJSQlZeXoJeZlZignqGclqGiqaSfn6mdnJqrp6+wqpujpLiqoaCuqLaqpqetsKS4sKS3oKKbmZmqpqGarLiwoqGknKKfn5OUoZSWlpuYl5aXnJWfqp6qpKKdo6qqsK6otKuqp62ysKWrrrOxsLCur6anp7KusbSwvLS5t66jlIF5dWReYVZZV1NSVEtNXkxPS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri9rp2nqKOqu8C9wLmutLjBzMfFwsO9xbfIzLLBwsGtvLu0u7y0uLmvrq+om5igp5OQinR7gHx3cWlscnRwaWhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmqBlpOVjJKUlJuZnZaWnKCcoJahoKempKann52fpqCqr6afoqS3qKGhoqi0oqWopbClsK2rtJ6gnZWVqaGilK2xsZ+io52emJuTi6GUkZOYmJKXl5iXnqecp6GimaOlpaukpbCnpaOrq62mqa6vrquoqqmzpaasr7Sxr7y1sa+uoJJ6dnJkYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxse2xsSzwr/Fqre3vba9urq1squsppiXnqKLiHJ9iH52bmNiZmloZmhqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWVtXVVhXVVRWVVNUUlVgYF9gYV9gYWNkaYGUk4mRj5STlJ2UlZekmaCXnaGmoq2mpKSjo6KcqqulmZ+lsaqgoZ2lq52noZ6trKmprayhoqKVmKObnJCrqbCbn6KfnpeZk4mekY2Sk5aQmJiTnKGjnaSgopWgoqSmm6OrpaKkqqSrrqWusqmmpaamtKapqK2ztbS5uq+prJ6LcnBvYFtXVlVSR1BPSFpbT1JJVEtTTEVGSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4tMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm9sb7EyayxuMG1u8C7tLOoqaSUmZqbiH5wh4N7dGlpaWxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eX19fYmRtjpCEkYeQkY+Zk5WTnJujnJuhqamrqKynqKakmaWupJSZpa+pn5uZm6Cerpmcq7OgpaafoqOhlZOblpaSqaqtmpygoaCalJCMmY6MkYyRjZaVkJ2hoKOcm6OVm6CjoZeiqKOiqKugq6+jrbelo6OirK2qqKuvs7ezvrWzq6+YhHRzaFtYWFNVUUVYTFFbWE1UTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDAtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62os7auqaevrpupqKu3tqy7yru2v6zLxsW4wc7PyLPEu7e7w8ixrbi/t7y9urKzo6eelJaXlYZ4c4B2d25taG1ubXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZH6NgYt/jJCKko2XkZeZoqCboKuqpq6sqK+kqZqfrKCVlqSop52XkI+anq6WmKiqmZ+dlKWgnpKQkpGTlaerpZqZmZ6elY2Mi5OGiY2Dj4uSlZGgnqGjl5WflZqhop6Um6Wlp6iooLGwprG8p5+jrLSrrqewtbC5tcCxrbGrkH1yc2JWU1ZOUklGVlBSUUxMV01KTE5SR01KQUNGREM+QDY1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqaisKudqqepsrGltsa0ubqzysW5usHL0Muxtri8vsHDsbCyt620s7qysaGhmpuXlpKCfnZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWFxcXWFqgHp/domNh5CKl4mUlJibmZ6pm6CqpqWrnaiaoaWbk4+fo5uXl4WEkpujj5SjnZaWloiim5uTi46KkJqkp5yVlZebkZGHlI6LgYuNgJCKkpKSoJqfopWUmJmVoqaZjZmkpqimoZ+0sqiyt6Gcoresqq2ksrKmtby1rKuxo4l4c21dTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSopLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2saWno6mloKilpbOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq25rqudmJmclJKFeoFtX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGEj4uUkZSeoY+bnKOho5ill6KclY2HmJqMc42Dfo2XloaRmZCUjo57mY+cjIKJf4qYn6OekJOYloWNgpR+fnSKjnqQh5OQkJ2amZqRlZCdjqKjjomaoKGkpJuitK+sr6yfmKW4pqaxobGunLC8qqmvqpmCd3NjVk1ST1BNQ1NOTFFNQlBRSElOUk1ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6a0wbiwtLDJxLe5wc7FvrOsusGrrcOtqKKmkp2mtauhnI6UlZGOfHZ9ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5YcpCDl4aOnZeLlJCfmJ2VlJaVj5aJgJOJXztXb3yLlImAjJGMkIaGc4qFloF5gXqFlJ2Ug5WOkZCDhn2TeHFwhY19iYGRjY+XmpiTio+JnIifmIiHlp6aoaCXp6+praion5ats6Kmrpmsq5iotKKpraOTfXJuYFtOU1JWTERUSlBNTEZOT0lFTFFNS09KSU1PRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCgrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepqKOqsKintMG5sbWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUm66gmJWFk46KhntydFxRTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQH+VkZF9iZSNhIqNm42WlYmSiIaVhnmIf2BKUW54ipGEfYSNioV/f25+f5R3dXV3hI2ZcFGNiIqGe354lHZod4aIfYqJlYuNkZKWi4SKiJWEmoyChJKblp6dlKSjqKmlpJ6bsKqhpKSRpqqWoqqcoqaoiXRtZ15bSFFRUk1JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Nzc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+ir6GnqKWnqK+sqrW8tri3s8G7tqe5yLi2qKi1tqqyvKaelY5/iZOnlZSJfY2DgXx2b21YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJOBkpmLj3uGj4B2f3hzbnVwdI2OgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gXZycpJ3Z3WEhISEe5WJiIqMi4B/hIuMgJSDfIGPmJWclZGfnamen6CdoKmln52Yjaekk6Gflp6epIByaGFcXUpWT1JHSlhST0pMTVJKSkpMUElMUUxSVExFSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlrKuwsaq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGNlICNm42QfnaFd3t1b25oWEtISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfHhmd42XmI2PfWh5gXZ4gImPfYSYkoFxh498d3tva36tfXOQi397hpKBfX90ZnZ8hmxvaHN8iYyIgGx5cX1wbXWPcWlxgH6OcEOLhIKDhX93d3qLhX2Me3V+jpKPmIqSmpujlpmdmp2eop2WjYulm4+el46WmI93b21lYlpYV1RRSlNVVE9QTlBWS05LTk9KUU5ITk9LRUM8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzUxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmxr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mOhJJ5iI2KiXVwe210cGlsaVdLRkdFQUBDRElMTE1RUlBRU1RUVFVWV1dXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnp9fnt2b3RzhYJ5gXhwfI6MipSDlpeYmpCSlZeZl56XjIOJn5GLko2GkJZ/bmlub25YVVdUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ozk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCirKqota+urLS/q7zCv6aimZWkl52NhIuUoaGYmJGTi3OOen+Fi4V0bnRrcGxka2pYTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXGCniGKaaXR6ZX9wbX96i4l2gYiGdGyaknRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxgHxncXF7bpONj3tzfXxxcG51bYJ/eHl1anmJgoiKhJaTkpCLjZGUlI+XjoB5iJeIhoqGgJCIdmpqb2hlWFFaV1lZW01QVVZZWE5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfp7uvq7KwwrG7w8ealo+UmYuNhXmEkJiUjZCMj4Zxh4Jzh4yFem9ycG5vZHBmX1RGSUM/PDs5Oj9AQURERUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgYWBeoSGhnlyoZV0eIFzdZSHNXGdqJ2OoaGEooV2cIZ8h3xzjK2NiYBnZmJqbnJtcIN1aW9YdXCOmpJ3bH97fW1xbXCAenN2bmN2hH6GgIWQkYqLiZGLkYyLj4N1eIuPgH6DgH6PenFwb2tgW1xeW1lYYF9STltaWFdMSEpGSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkrKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ6kp56vlaW1qq6xrsGyu8HGlpCMlJCAiH1ugZCSiYOKh4+FdYKDbJWIh3t0eHhsd253Y2leSVBHPkA3NDQ5Ozs8PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgYWZhJucYYaqn52Lg5COeneIfomIjXOKl4+Eel1kcXR6e3eKbGdqYnlvhY+Cem6Bd3SEenB0endrbmled4d9h3yIh4+Ai5KXg42FjYd9cYR/hH11d3t8iXZwc3RlZ19bW11TW2ZeV1FVWFtVR0pKRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIySnZ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fYF+cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbXyBhod9jmhnaHh+boWHgoVxhIVHa4B3cnl2aG1rX3d9g4l/iIWMepWem4mLiJF/enWLdnx4bW93fn9zc3JsW11dW2NjWGZlXFVQUFZZUERMS0ZOSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEzMzY2ODo9P0BCRUdISkxOUVRUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiJGBmpWCoKGXlZuapa2Tmruxp7vHw6iKjKGlj5SJgZF7cYOen5Gcf3aFhYqPiJBpaG+DgHWNh4SLcYaCd4eAe3aFfW52dWeAlI+GiYiIiIehq6GWiY6Yf3qCiXp6b2dreH56fnJqZF5aWl1qXGFmX1lPS05XUlFIUEpETkdDSkRCQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMgIGRj4uam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBjIuCiY2Df4l/bXBqXUJBNC0tLy8uLzAyMjM0Nzc5Oz0/QkVISk5RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISkxLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKOoZ+UmZKEioWPmJGWbHB1iYuCloyNj3aPhHFshYGKlpKDhYhyiaGWh5OJj4+WpbWpm42VooOHk4R9f2tqa3yAgYFzYV1jXlpma1xra15XS0dPU1FOTUxGSVBDRE1GQUNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+mJaalZ+fnKegqpaTmJ5nZaSafoSSkXmAkoiQkn2KhZmSkYKAgIuNiYWQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjU1Nzs/Q0VOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZ2fqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+ElJKGnKGampmnkZGIlaKamnh6fpSYkqGSl5eBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIlo+OgYhsc3J8f3xxaGBcYF5iZ2NgZ2dcUUVKS1BPSUpMRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJjIqEkoWDhomBgIZ3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VSTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpNT1FZbYaQd5WLo6eqtL24pa6srKeotKuwt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsrauki5aYhaamoKKXgaaZjaKqqKSIhZSkoaCqoaSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWqiJmJkoqWenp+hX5nYGhcZWJdZGNfZmZeW09DSUhUT0ZITEZKR0VGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGUhYiCnIOSkI2S2sidlnNWl4iPiJyPfIaMjoqKeoiCh5GOg4WAi4WGh5KGgoSJhoiHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJTVVVXVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHw6uzxrass7+zuL62v7TBtru7pLjGqbbJx7W+ubSoo7StsbGcmpKan4mnr6uklXafpJehq7GzmJaqrqiutruyuqyvtaKxrLG1vLe1rrWgp6ijqJupsK2yuri4p5u2qYykjpGToId4goN1WWFkVmVhYWNgYWVfWlVKREVMVVFISUpESUdFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hX6AjXu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeFgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjUwLzZDSENRXE9RVVdVXFZPXlVJS0pBQD9HS0ZFRDs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMm2vMW9s7PAt7jCtb+wuHSytKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KSpbCupa2sp6SYoKyzuqKpsrq1u77Mv8XFvb2zwre6uL+3ure5rK2wprGqrb6wvbvCwqyZuqiUro+YmKuJfoJ8aldiYVhqZWplV1tjWVZUSUdHTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh203P0ZRTEFMUldUWVVad2pwf4+EgY6FbnpyeYhiuKGZo4mVk5aTk5ONkJeSh4d7hoGNlYqAhICKenyLh4Z8ioOBioOVfXd5dWVPXGRHRUw6UWRhW15TRj87SFBEWmNRUVlYWWdZVGBgTVNPRUE/SUpIRUZBQEM9RTZCPkhHS0xTWlRdk6+4tbq5ycC7vcnMu7zAvLe1vLu3vrW6ssZgdbOlsZqeq72qpairqqOisrWhq6ielZafmKCupaenpZ6klKKnsbSnsrK8tsG908nK08bCxczCysPAvr2/u7y3tLC5t7fDusa9w8mwnrmqoqyPpai3iYF/cV9hYVxXYV9oZlJYYVZSVUlFRk5LQT5HRD1LQj1CQD1GPTtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzM1MjY/OEA+R0tSVFRSUFBRUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWhsbHGQjYWQdG1zcnOI1cC1maCNlZiZkY6XkpaWjoaHfYaDjJaLf4N/gnh6i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV9uX1hnZVVZVEpEQUtKSEZISEhIQkk5RD9IS1RUVlxaW5K5wLm9t8bAu7nKy7q3uba4ubO4tbSutraZZHWonq1wXqKsnJiho5uknqullKCfkJSOlpiXqJ+mn5+amYSknaylqrCtt7C9udTRz9fPyczSzM/OysfAv8LKvcG9wsDFxMbKv8jOtKS7sLWwm6y5vZp/eWxdX1tYXWFZY2NRW2BTUUtDQUVGRDxART5CSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KRlG9sb3V1iLOsoaGfi5mcmYyNlZGbkoWKin6Ih4yQi4l8gYRze4mDhnyJdIKKhpV/c3t4bG11e2hyZWlsaWZqaWhgZmlobVptdJetpLyIh2dbb2hdWllUSEpOUEpLUUxUUUlMQUpHS1BfX2JmaWGYt8ewubO7vrayxMe1r7mwsLuss7Gnqresjbannpunmk+bnYyOoJaRppillYqTk4mQiY+RkZ6boZiblZeHnpqmm6yvqK+ns7TU1NXW0svP09XO08/NxcLJ0L/KycvJ0sjNzcLQ0riwxLzEuqa2u8Sjgm5jXFxdWGBXWGZaUV1XTlBDQkhFQkk7QUQ+QUg/P0I3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OT05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmINocW95eYOgqp6ml42bm5eLjpWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfXF4dWxxeH5xe214c2xpgXBtY2ltcHlpd31+y7/C36dtY3huY1thYEpQUlVOWV5QXV1OUU5UUVVUXG5ud4Jylq64rLSnsLarrb3Asau1pqW4p6yuoay0o46xrpqYmIyRlJGEjpuBjaaRnImDi4SKiYSLg5SVmJeUm5GcmJmZnp6rrKSnoaysztLV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbGwM7HyMOpv7jQnnluZV1iXFZfUl1bT1BUUE5IPkFGQUJFPEBCPkVFPj8/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bXdwfX6AoZ6eoYuNmZOTjIyTj5aEeYWQkI2LioiRh3+Ce3J+gIKHeoV1hZORiX9vdnNsc3x7dnxzgXdxa4BzcmlvcXp5cnu+y5p+jLKDdnKEdmhhal1DWlpbVmZkWGVrVFhdXGBjXWN4e3+LgZmqpKShoKGppqqxuKqltKOiraKjraKnsZ+JppqUkpGKko6IgpOJa5WijZmEgIV+kYODk5ati5WNlZmOhZKQnZensKGgoaSkqMfNz8jCy9DT0dTSztPNxtbSzNTY1tbY1dfVydTazcnX1tHKrcTDzIpyb2JgX1hTWVJcUEpHSUlKQDs6O0VBRDxCRD5IQj9CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN5coKJgZ2VnZSFi5aJj4qIjoePf3eElJmLjYiIi4l+g3hze32Dh3eAe4eRl4GDbndwbXV/dnh9c4V8eW2HdnRvfXaEdXl7nbWMPEGLxqV+jXxpZVZJQ2VjZmNoamRveVtfZmhrbmlugIOJkYudnqCdkJeYn6OjprKkpLOgoqWeoamgorGchp6SkpKQi46LhoOPhH6cm4yNg4SFepR+gqmVo4ySipiSi32XipqRq7OYmpunnKe9w8a4tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2trS1r/MzLR3dm5kXVlSVVBZVkZHSkpFRT06NzlAQUI6SERARUNBREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSg4mGhYqCh3x4hZaXiI+Dh4aHeoR5cXp7hIZ1eoWOjZ16jHB8b3B6f3J8gXGDh4Fujnp0d318gnV/fIeIsHRYqcK2jJKCcG5iPV5ocnBxcG54d4JlaW9ydXhye4uHjpSSm5agloeMk5ugm5+qn6CtnKKamZ+lnp+smYuajJGSjYV9iIeDhIuOoJmTiISHfm2ZeYSYhoiTjI2VjIZ7m4iTj66qlJWXnpimrra9qK29xsvIycvL0MnD0crU1tjX2NfV29fT2dvWz9va0dbI1cuVeXtoaFtZUFNTXUhDRUlJPkE+PTc6PT87Pkg9QEFBQURBPj46ODZEQjc1NTQ3OS41NjY0MzU1NDIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fISXjoeLfoaHgHeCeW57e4aBdHqSno2hdo91gnR1gX10gIRvgZCCb5KEdHyBhXp2hnuJt8akwsm4gZabj3dwZU5mY4F6gXeGopCLeXl3e4N/fIR2bZSWlJWPl5CDiY+WmpeXppyYoJefk5KXo52aq5aRkYuNkoOMhYmIgYWQkZ6cmYmFjIGGl3uIiJ+XkImNiouCfKGJkIu8oZeTl5mcqKalrp6ntb7AwLnHyc3Oxc3K0dbV1NnV19vU1tna29fb2tnYztvGhnp5ZmhkX1RXVlVNS0RNQzs9PTw5Ojw+OT5BNj4/QD0/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPT1AOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop8foB/gH2Fen6CkYmEhXqFiHt1fXRufH2GfnR/kp6Rn4OSfIZ+eI59eIqKboKagHSYhX6BiYV8fpB6j6mPkMOgvIycpJx9iYR9iXOMin5zppqcmZSFe4+QiYRoR3GhpJ2Mi5CShYiLkZKVj52ak5WRl42MlZ+dlKGUko6OkIt+kI+Oi4SIkpaan5+JjJSSnpGCi3+mmYiFjoKGhIClhoqMuJidkZSWoaegnZ6do662urWrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3h4d2ppZFZgW1NPTkhETEI9PT45OTo6OTk8PTZAPj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBj4pxcniKe3t/fX98iHp8e4uHgn51g4Z5c3pzbYF+hH13hpuhm56UkoCLiH+Yh4Cckm6HqIV6oIt8kI6DiIScfpqRio2joqCQpK+gi5GLhYuBkoZXcq2Ln6ycj4OYm5CQjlyDopGCjJ+TlYyGiIySk4yUlZSQjI+KiJabnY+VlpGLkpSGgIuJko2Jip2WmaOjhpOdlqGLioiOnJCDiI+Ag4eFpIaMkLOYnJKUl6GhnpmSm52nsbispbzBx83Hxs/Mz8zP18/R1K7W1dja2dra19bZ2p9vfHRnZlxdWFNWV0NASUQ+Pz46NDk6Ozc6OzozOzw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieGxifpKDbm13i3h5fnqBfYZ8e3aGhIBzcIWCe3Z2dXSEg4V9fpKmo56mopaJnZCUlouKqJdyirKMhKeRhJmThJmMopagmZOJmp2ikqmvn5GVkI6NiJWLbo23hJrEyLKdoqWbnJiWkbKQY6TNyJWOhoeJkJKOjZOUioWKioaWmpuPkJSTh5WYhICPi5mIjZCql5eko4iZnpabiY+Hl5eLhY+MgX+Gj6WJjZOomZaTlpihmJ+Zk52borK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6Ccn9oYl5dXU5JVFlBQkdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdoGOfXxtfoh4en56goKDfnZ2gIJ8bG6Lf3p8eHh8hIeKfoqjs6ejqrOhlqefpaOWla6ig5C4lZKzmYyhoYykm6+jpJ2YkKeWp5msr6SXlZaVkIuYmZagwI6jybmrm6OmrZiRm52ynYWFqKKcmIWJiY6VjYuTj4iBhoeJk5iVjIuUk4eUmIaEkZCcdJGZs5aXpaGInJqTkIqRipebiYqWjoZ9jJieiZCQnJqZk5iXn5SgnZWem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LQ1tjT0Ni7cnl2XWBVX1ZPSEpOREJDRTU+Ojc3Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OklFTkVEOjZBQEJTPjlETzMyMzU2NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p7boWGenyEeIGFgX5weHx+fW9yjXp9gXx4houJhoSSp7usqLK9r6Sts7Ooo6KwrIqatJ2juKSVraSXqa23pqSjn5mpl6mjr7CpmpmclJWRl6CYmru7rsqhara4q7CUmJ+jq5OXvqNeqrKCiYqNlIeRfI6OfYOGjo+UlYiHk5eMkJWNi4yXmJKdmbSXlqudi5yUko2QkoyZm4qRnpCLiZWfoY2UjZianZObmJ6UoaCUnJylr6ihpLO4q8LIxLW6vbvFx8fC0aDGyc3NxNfW0cvUoXB6aFxaU15RT0VDPjxDQUI4Pzg3NT5GPDw1PDM1MzQ1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQUVANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEpAi4p/gXOGh32CiHWDioJ/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruztMG8tK2rs7aLp7Ktrryqm7ukqK25uKumpqKho6Oor7KxqpycpJial5eeoqWlkqS6rqnAvK2tsrmlpKd9iIecrL2wg4yMi5CDj4ORj3qBiJCNjpyIh4+XjYuVl5SQmpadp5qxmpGsnI6aj5KOlZGQlpeOkaCRiZSbo6yUlo+UnJ2Sn52bmKChlJqep6akoqSwsqbBxsOvsLq2xcTCvs2mx8PHw7zV0c3Eyoh0c2JcWV9bTUpCTEBFRz5BP0I7OjQ+QTw9NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQjVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxlR2BpZ1pdXJOMjIh7h4uGg4x1hpGKgW9+e4F/cX6BepV6kpSUmJCTlaezxsm/wszBw7nHvLqvq7m6l7K2urLArqXApKuvu7yqrauiop2nqq60sKqbn6qboZuVn7C0p4ujurq2wbysqJyypaSolIWOqsPEpIKLj4eIhIaVlI16g42Rj5GhjIyUko6Il5+Xk5mVmKagr52MqpyNlY+SkZSVjpCVkY+hlIaXn6CynpSalKCgmKSfmqCboJSYnqakpqakr62lwMTCrqi3tcnDvrbOssS+xLyz0crIwrV1eW1cWFxpU0xIRExLS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk5lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoKQeY2hlqiampi6vcfIycHSycrCzbzBs627vqe6v728xLeswamss7u+qrCpo6WjrK2zrba1oJ+unqWimKO0vKmbqL3Bo7e3sKuSsK2rrJeGmqqmpZGCjJOllYmBdoqSeoWNkpCen5OPlIuPjZSjmZeclZSjn6qfkaWajI+PkJWWiHyPlZKSo5qVoKKctaaQnpelo6Klnp2mmJ6Vl5ulo6inorKsqLzAxK+ls7fMwLmuxLO7vsG4rMLDwsCZbXlhWFdcW0tLTUpGRERJQkJBREw6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+JoJOEeIV/lX9/kIiKkH+WoZmupqOYwr7Hw8fF083Ozcu8wrewubyzvMu8w8G1truts7+5vK6vqKCop7atramxt5qeraKnoZ2rt7eppbC/xLG+ubOnqrWzra6WlqWsqKCRjpKxxaeVjn2RlX2IkZmQqpmYk5OPk5WTpZ6TnZmToaOinJifmYuMj4+eiFqQlpeSlqWZZZijnrKllqKWrKyqp5ueppeYl5iVoaSopp+2q6m6vMO1prO1y8G4qbassrq4rqi3ur24gmxuWldUVU5GSlNOSz9BR0RESEdHOTVGTTs+Nz1ASi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZGDh6aTiIKHgpyEg5WQkJSOmqKfr76uoca8xcTGxs7OztLKvru2sbq7u77PtsS9t7i3srG1s7izq6acq6u4qqinr7CXo6+kp6SktcCwqqy0v8O6wLqzp7m1uLKulaWtr6+li5OVoY10wZp+l5mFj5aajLGVmpqVk5OZmaWjlZ+blpqpnZyhoJqLjY+WnWBKlpyalZqlllSWsJ+vnJ+llK+urKWaoKWUk5mZjpyfp6KZtKmqs7y8vKqwssfAuKWrq62xsaOhsbK0pHBuZlxaTlBLRFBQUFE7R0pJR0hDQz46S1U/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4unlo6Jk4Wfh4Sdl4+eoJqjpLXItKnGusLDx8nIyMzNxr67s665uMDBzbbIusG4tbqwr6+ztKajm6qztKqopq2smaSupaSnrLq/qKu1t7/Bv765s7LEsbm9rKOutay6poicmKabdr+ghZmdjpOZmouvl6GcnJeVm5+hqZ6ooJqaqpqip56YkI2RnYNudpKimpWdop6QrrKiq5WoqpeqrqWkn6WokpKZnIiUnKKelrGmqau6tr6zsq6+ubago6eopaecm6ypqYxiZWFfUktNR0hOSVVMPUxETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5ScoZ+7r5mUn4uTqpuRkpOJq42Hop+MpK2Uo6O2xr20wbrCwsfIxcLNyMG9ubKvubTAwsq1xbHBvLS6qqitrbCiopmqtLumqaarqp2or6ejqqq+u6etvLS3vce8t7W4wbG9wLOptberv6WPo5iRoqC8n4maoJmXnp6Pt5+pnKWjm5yhmqils6GbnaacqKqemZaPlJuLl4mMpaKUnaKeoLSvpaWTsKuZq6uenaSjqJGVlaCDj56enJWppKKhtLS6ta2otbKznpyipZqXlZiqoZ53YFxfXUpIRkdNUUlNRUZGQlJMSkJFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+ew62bl6SXmamclpqaj6qWlaemla2tmaGrtsTCu763wcLAx8S+zca7vbmyr7izv8LItb+vu7a4tqakqqytoKCaqqrEoqWoq6aeq6+soqmov7emrb2wt7bHtrW4uL+xv8G2tLO0r76jl6OWlJyUrqCRoqKlo6OfkL6lqZ2oq52doJumn72imKOfoqmroZ2XjZWek56Hj4WNk56koZ21rKWclbKnma+nn5qpnqCNmZWfhI2gmpuTpaSamKuxtbGqpaqtrJyYoKCSjpCWqJ6UaGJZYV1PSUdKTkxIRURJQT1QSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDPEM+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm5SRjxLeGViV0yimqOcnsWsoZ+snZ2uoJOjn5aloKapq5e2saOqsrXExL2/tr/Cu8jCvsrItri1tbCzs7fBxra+sLi0uLWfpqyqrJ2dnqWjwaWgqq2fpKmtr6Kmp721pbG8uLa2w7Kzt7m+ssPAt7ius7W1o52llZKUoa6gmaKdqairo5rDramerK2bm56ZpqG9op2lmKurrKahmY2Zn5KfiY9Xf5afpqGguKqnk5i2o5+yoaCbrpaejpmUnYKOn5eVjqKklZCmrrKrqaGipaWVlZ2Yi4+Rk6SeiWFkWWNgTEhKSk5GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dySEU2PXVlXEtOnp+hmJ7DqKWis6GcsqiTq6SgpJ+tqaydu7CorLWxyMXBwrPCw7zGw7zEyryvsLatsLSvv8S0ubGwubSsmaiwqamanaWhp8Ktm6yxm6qirrCppKe9tqa3u72vt8Oss7PCv7LGs7q3rLS2raqippaWlaSsop+fmqirsK+vvLKmoKmomZmYk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWdmqOfp7Ompo2YtJyjrpqem66QnpOXlJqAkaGWjo2foZOLpqywpaahnKCekpKak4WLko2cnn9hZVtnZUpJTEpSQkNASUc7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+jn5ugw6ikqrKho7SqlbOsp6KksqyuqbuyrLC1tMbAxMO1wMS9ycS1wMjBtKu1qK+4rL/EtLeurLa5pZmrsauqmJ+ml627tJuosJutn660saequbKnurO3srnAqreywry0xae+r623taqorKGXl5KmpaKjmJilr7iusrW2oJ+ppJmVlZOkoLejpKaWrrKyp6umoZ6bmpuWmKifoJiinq+yoqaNl66ZpauXmZ6kkZuNk5eahZWelIyPnJ6Ui6mpqqGnoJielYyOmZCBhZWJlJ94Y2hda2pNUE1OVD1DQU5DOjpJQDc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzuko5yhpr+mqK+woam1q525sKujqrS2sbC5t6+2uLjFvsPHvbzEwcbAuMDGwLqptqSsu6zAwre3qayxuqKVrbCtspalp5Cquamgp7CdqqCwtLKqqba2rbuss7O6t6y5sMK6vb6mw6uwt6+pq6unnpiZq6KioJGYobGvs6uxupucqaCZlpKXpqG3qaWjorCxtKuyqKufm6Cgm56lnaKXnaOzsJqfkJOlmqCompSinpWYiZSYk5aWnJOIkJuZlI6pqKafopuXm5OHjpmLfYyWhY+bamhsYWxuV1BRWlRBQ0VUQDs7SUE3OlhQZF5QVldEWV5dTUxSTl5LSj5aY15OSFBOW1VZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coam9oaqvq6OxuKmltbOsoK21va6zuLy6vba2wMO/yMS5xMHAwLjEvcC3r7Wnq7exu76/tKmusbael6utqK2Wp6iOp7ufpK2znquisbCzrKm2tLW9ra+xtaywtbHAusW3q7yvsbisraqjsaafpaqgpJeQmaCzqrOqq7OanaebmpWOoKaktK6noq2trrGns62yqqScn6iknpWhmZuotamXmZKSn5meoJ6Qq56XmIWVl4udmZuTio2Wl5qXpqSioJ2WlZeTgI+UhXuOkoOMlmVscmdwcV9GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7R0RGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2FVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoaSstqStqaWvrraqr7W6p6awt8W3sbe/wMG1tLrFvszFucK/ur+5w7fAuLG0q6m6trq5vrSqrbG1mJinrKqrm6yrjqu9nquusaOroLGts66utrK5t6qtrrGota+zu73Ksqq2tbG0r66nobOgm6itoKWVlpuasqOtoKavl6GkmpqSjaKlp7KpoqeyrKq2pa6xta+kmZ2tp5qYn5mZrLijl5OQj5icoZiXlKufnJOBk5iNnZyalY+JlJOemqShoaCYlpGTlXqLj4V7jIqDi5JrbnhtdXtgRWFqWUlIWVo9e0pGRDZBYlRpW01cYEpbXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lUS0SZl6CxqLGqraakr661qbe0uaSrtLfJurS6u7++tLS3w8DMyLvDvLa9v7+3vruwvK2nuri3tsK2q62xt5SXpq6rp6OxqpSvu6SssrKnqKOys7CxsbWxuLOprquxp7ivtbTDxbaptbassK2pp6O2n6CnsaCklJyalbGep5ygqo6po56blpilpaW3p6KytKynsqetsLWspZmgrKibnJ2blKq4nJSOjouZnKKXkJiloZ6Vg5GVkJ2cmJaUh5eQl5qmm6OgkpaQkJV2hJCHe4WBhI2LbXF3dXt+XEtlbFxLTmNcPmJ7R0k4R2dXZltMXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0lXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLj1FTFE8M3JrSkNDkZmlrqWtrqunpbGys6q3sbegq7W5yLiuwbzDt7OxtcLCzsW/wb20vb+/ur67scOnqbiwtra/vK+rs7Kcn6exraalsKWesrWsq7KwrKmotLmstLK1rLStqqyoq6m4rbGwx7+4pbmwqa2tpaitsKakpK+kqZyenJuvmaOjoqORrJ6koJ+iqqWmuaWstbWlqquorK+2rqOdo6mqm6CampKktJqPiY6HkaKglY2UnaCUkoWOkpKdm5iVk4aXk5WZppqen4ySkY6Qd36NhXx8fYeKiXF0cn59fVxTZG9eTllmXEZElltHO05tWGJbTWBiTlZXVldUWWdeUVJMY1pbVEtHT1RTTkdJV1NcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis6ST8zQklTLD6PazxHSI+cqquiqbGkqaWztLG0tbKyoautvcu6rsC7x7G0rbTCwtHFxb7Asr3Awry/t7zEp6y3rLO4vMCwq7GtoKOnraqopLCjqrGqr6ywrq+urLO7p7awsqmyqaulpaOtuqyqscK5tay6qKmoraqosaWqpKOuqqiin5yjrJWlnpiemaydoaepoqylo62suLGyoKmioKuvsKyen6eoqZmkmJmPoKeYhoSPioueoI+LjJWbjo2Fh5CVoJ2WmJWGlpOTl6SbnJyLkpCNiX5+h4V8d3+HhYZ0c3GIdWtfWWBuY1FzcVxLO4R8Rj5XdFhgWk5jW05VVlVXUFxiXlNPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlFo+TEWVmK2ooaqznKqqsLatuLWuq6Wqqr3Iu7G9t8KvsKyzxMPOzsO+v7TAwsO6wLPIxKyut62yuMC+s62uq6SnqrCpp6ixpbSuq7CurbGws62zu6S4s6ysrqeroKKesLeqqq26tqW2taOqp6ysqq2hqaemsrKkpqahoayWqqGVmqCmnqSiq6Ssop+nsbetraOlopuqq66pnaKlpKSYoJmWj5idk4KDkImFnaCMio6LmI2PioOMl6ObkpCbjJOSkZSimZuZio6LinyGgIGDenSAhIJ+dHeMpIh4al5gbmdXZYdjTj9nk0xFYnlXYlhSZVRNVlVVVE9cXWFVS01pV1VXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIY+SEZEl5KwpaOqsZirqq21q7axq6Wsqqm8wMC4uLO7taWyr8TJy9G/wbu5v7/BucG6wcSusbWxs7rAvrOxrq2rq6i2qqaur6u5sKixsa+yrLaqtrWntLasrKSpq5yjnrSyqKiktLSgtq2gqairqaunoKusqbm2qaqqqqKpoKyckqmhnaCkoqajqZ2cprWuqKapoqOYpaanqpyipKOfmZifkY6PmY5/h42HhZ6eh4SKio2Mj4yEhpSimo6MmpGSkY+Sn5aYlouKg390hoF/f3h1g397eH+BiJ2Pb3FnZ3F4XGBziGpPXplWSG14VWRWUWJQTVVUVVFPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0pqNk9EO5WOsKClq66arKWtrrO0r6ulr6mour68wLCuuK2htq/Jx8jRwL69urzCvbrDwb+/rrKysbW8vMKxsbOrs6iktamlrbOzubCjrraxr7K6q7muqq62rKqeqayfoqC2raihn6+zobSqnqinqqOroaKsrai9r6yuraGnqJ+rmZCvoZiioainn6iamaqxqaOfraKhk6Kjo6eYmqmlmJeZnY+Kh5WIfY2GhYSkl4WCgouGjo2QhISToJaIkZ2Qk5CNkZyUl4+JhYV4dIF/fXV4eYB7dHN6aYGGo3VpXmVrgXVniIx9U1hwXkp4c1NkU1FeTU1SWWZOTFZZZVlGU2lSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGg6NDhfPWFkP0YxQ1BbWytITjlVQTSQj7GfpKaspKekrKa0srGqpLCnqri+wbuvp7mqpq6wycfI0cO8v764vr+8ybzBuLCwtbG6u7jAsrO7rbitorSmp6yytrmzp6e7ta22vbC8pq2stautnKmvo5+lrKunnJ6qs6SzqJqqp6mkqZ6jqaepvqu0r66dqaSgrpybsqOVpJykpZ+kmpqoq6Wem6qhm5KboaWdmJepqJKYmpOQioKPhX6PgoCIno+Gf32Lh5COkIR/k5uThZOijJSSi5GakZWHiH5/cXp5fnxpeHx6dXBwfWiFeISIZGFoY3KFem1neV1eVkJXem1UYVBSWEtLTnF1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtL0dqSTE0WD1mY0JKN0dTYFUqPTtEWD8qj5SxmZ+gqaWkoaukt7Kypqmxp6y4wb21sKO5rKioscPJyc3Btr2/tbe/uci2w7W0s7Wxvbi6vratuba/raGzpqqrsLW4tauevLyossCzuqCvs7WqrJ+usKOcpaipo56cpbGmr6CfqqmooqqcpKigrbyorrCuoaujpK6enq2ml5+boaOcn5uaoqqjmpqkpJWXlJ+ilpuXpquLnpGQkYyCioGAj4B7mpWNiXx+i4aPjoyKhJKYkYeUo4mSkoeQmY+TgIh8eWt9dnl4Y3t6cXBxcnhogHRqg2dkaGFuc45tYmlwYHBBXHhsVV5PUVFKSk1UWVdNXV5tV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDBCaFkxM1M9ZV9ETDZLV2VPKjwzT1k9I5KZrJmfmKekop+no7ivrqOvsKmruMK6s62fuK+rqLS7yMvIv7fCvq+0vbfEt8Oxr7qys8C1u763qbm4vauktKeoqrCuubGqm7u9pLDAtbShrre1pqensbOgnqSmp6GlmZ6tp6ieoKmup6CnmKSooLC4n6Oxr6GsoayknKanqZqam5+jlZ2cmp2pppebn6iSmJOYnpOZlqGpkJqJjpCHfYd/go58fKGNjYh5g4yEiYyMhYiSmo6JlZ+JkZWCi5aMkXyEe3NvfXFzdGB5eGlvcXBvaX5xY3psaWVjYGaGf2BbcmpyTU1+aFhaTVBMSkhQUlBJTlxfblREWFtSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpoSCo+L1lYNSiXnaWYnZatoKChpKG3q7Gks7SqqLnEtbKuoLesrq2wtcbIwbe/wbmwtLy3v7u/r6u9sLS/sb3Duam7urenqLWop6uwrbOxp5q9t6StvLavn7G3sKilp7Cym6CkoKSkoZecr6ahn6Knr6KgopOkpKO3sKGmsaufrKOvmJyqpamel5qdpZObnJqdpquanJyllpWXlZ2OlJejqKGQiYqQhnqFfoSLeo+Xio2GeYKHhIiLjoWNk5iMjpaZio+WfoaXi495gHpwcndvb3RfeXdkbGxraWiDbWVyamtlaFxjc4BfWmt1aVpJfV1bWE9PSkhIUlVGMjlfXmxQRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0FmW0hURFVdaEUuOzJgVCwylqOhl5WcqZ2loaKgt6qvoLq5pqy9xLOwrqK1r6yur7TExL2zv7q3sLO5uLq4u66uwLO0uK+/wbisvbq1pqKzqqeps6uusqKbwbalqLW1qZ6yu6qnpqmwrJmip5ykppSYorKkmZ+kqKmcoqCTpaCkuaikp66nnqWhqJKfqaKhoJmbnaCSmpyWoKKrm5uZoZWSlZaajZSTo6ekj4iKj4Z5hHyFhX2djYqLhnmAhIeIiJGFlZOSjJCVlI2OlHuDl46Kd357bHRybGx0Ynh1aGhqZ2VvhGdoaGRmaWpgaGJpZlple2NgU3NUW1tTTElHSU9TQCEqaV5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc4Y04nMp6ko5KOpKacnp6do7Wtp6q6t6isw8C2sKyita2nr6+4wMC9scG3sa6yt7a4t7asqr2zr7Kxvb+3rru7saWftqulpbSpq66gn8KrqKWws6qstLqdqKqrsaWYnaqepqSRmaatopiepKmhnKKdl6Cdp7amr6quoaGenaGVoKafoqCZm5mckpmdlKWeraOYl56VlI6VmIyPmJqooJGIiYqIeYV3goKCnYeLgol8f4SIhoWQhJaVj46QkZGRjZJ7g5WNhnN+fWZ4b2trbGh1c2tjZ2RjdH9iZGVmZWlqY2lxWV5YXW1kYU5oV1pgVklHSEtNUlg/OWBsaUdCVVNcW0lJR0VBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFlKVmJmQTszQWZIJTWbpKCRjK2hmZiglqW0saKxvrehsca7ubCxo7arq66pub28u63Asq+urbavs7izqKu4sa6utLa7tq+4va2mnbWroKGxpauvn6TDoLKkrrGvt621na2vra6jmZynqqWelZuopZ+ZpaKnnJqgnJScna2wprmorqOimpqemZ6jmqSdl56Ym5SaoZKolaypm5SbnJKMlZmOlJSZqaeNjYqJj3uCdIKBipiFh3yJiYSEioyIkoWTnJKSj5CRlo6Qf4CNjYJvgX9meW5oa2pncXJrXGhkYnKAYGRnam1sZ2ppZmxcbG11cWFUYmhjZVlJRkxNT1hRUFVhZYFUQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUllQyc0k6Kbj46wnZqToZqpsrCfuMC2oLTCu725saW2r6mupbe5t7isu6+tqqu3qrS5rqWytbGuqbG2trCytbqnqJ+2qZ6eqqKqrZypwJitpK6wtrWsrJ6xrbCqopuco6yom5Wcp6Odmqmio5WaoJ2Rm6Orqqm7n6ekoJiamp6hj2uilpiccYKWnKSAdpGrqJ6VlZ+RiZeZgJeLoI95hpOMg21pfneDcWyGi4Z9hIuGb15jYGeEl4Zri5CUknV3i4R+g49/ZoeAaHVpZldcaXNuTlBqZGZxhGZeZGZubGleX1+JkISGaE9LRDhFVGdeSkdQUFVVS0dTYG90ZUVbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc2MDEuKi4qLzY2OCwjMScyMTQ6MTc2WIFsMTZPa1tOXEtbZmI+RzFQZD0rL42kmYeVsJuck6Cbqq2ro73Fr6m3wri9vK2ntrCmq6S4tLKzsLmtqqestKawtaOouLa1qKestrKutK2zoqmftKueoqScp6iarLyVpqWvs7itraSorquspaGenKCop5uYoaalm5unp52Sn6CZkZ6oqqO1sKOjo52WmJiXo4ihj5Kah6GHlJ6hf6V/p6uek5KbkoiEcniMjoSIoXaIjGmXiGZ9c3ihb4iHhH6Ne3+hoJ+Zf3uInnSIjnabimyHgYNtaGVjemxxYlSGbWNtaZhxWGpwboZXXmlba2pbiHBteXKGaIeEWl5GTj5GXk1FUlZXUVFSV1RnXkxZS1JST0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxVmE3LyiMppeEnKydmZmdn6uqqKq/w66xury3wL6qpLexqqyms7Wur7O2q6mlsa2ltbOcrbW2tKWnqLOxrbKnr5+qoLKon6SjmqKknK61laSlpra9pqynqaqsqKaioJmfpqOZmaajpJicpKmWk6KclZOjpaaht6SkoKSYlZOYlJyIrpCYlImpi5ejnIWxgKStnpSanpV5gtSof4eUwZvHeXixpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4FslrGrsHloa1ixrm9labySvG5oem1yj9h+U2pjtrJ/gXGUdZqhqpBXT1dhT1ZORlRbWFFQU4tcV1tQQFxFUU5ER0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjqaTgaapn5ecnaWtsqmxwr2ytcC1t77Cq6a0ra2pqK+0qq+2tKinprWmp7ivnbOxtaqlpKexrq2xpqqep6SxpKKhn5ecoJ+vrZWeop+0uqKpqKCtrqWinZuaoaifmJuooJ+YnqenkZynm5SdoaejoLCjn6CjlpaSmJKZhbBraoqNqn5nhJaHrWVxnp2VmqaVca6hpH53u3xroY92sV9qtFulgGackWBmgXpmf2p4aqllvnJnpox2sWp8sXh0kpNjbW2nbluEoEVpZ4eWRXWcYH5ne6Ongllfi6tpgZV4emqnN0qvW1dUbGNbS05XX1xXVjtOiE9XVi9JVFNJQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5KilYKsp6Weo6SqsbettL2+sLfEsri6wqepsKyvqamxr6SwurCkpa6zo6m4qZ6zsrCjpaCqra+rr6ann6OisJyjnJiVmJudraaXm6KetLOhqpuhra2gnpqXoKKpnJmepKCcmaGnpJCdo5uYoZ+sn6amoJugoZaVkZaRmoa1m7V4hamZtZl3h7Obt3+TlpeplH5rgaZ6gYWIkpSSd6tnarFbrHuPh5R0iHCPhoB/iJCXeIOCi5eMg6CPhbB2d59xa2psfItOpFhIY2OZfmNopmB5cnVTkoZeUKltY3F+h4BinS5Rom5bVGtnYExLXGRYXFpCPrB4V1hBI01oRUJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o5YVU1MByWn5SIs6amoa6pp7Osqru2wrC8wq24t8GqrK2ur6ausqmhr7yqoae1raOrtaWmsrOno6Kdp6qyqLCnpZ6gn6+Wn5mVlpeYn62impqkqLWvoamPqaipm56VmKClqJqfnaOfnKCipaOVm56Ymp2jq5ummZuboqCXk5GTk52D1ZOZuXCwwn7GhnzWlJu7fJqWpZCNm4ykeo2Ho4KlgnqseY+dVa97iX6farlauXeGg32mgpN8mHqqeY2dj3uxbo6EdJC7hW+UT6+nxYpRoHpjYKpic3KHbJeHX1O1tMiGgIl8Y6QzQp12XVFqaGRQQFhmWmRhSkhNbEtaU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFRODIlnKGTmLGoqKWzqqW0qKW8t8GwusCxtbW8s7ansbGjsbOmn662qJuouq6ir7Ggs7SwoKSenqepsKi0qaWcnZ6rl5mXl5eWl6GqnZqXqK2wqaOfjqyip5ael5yhpaGYoqGioZqioqebnqCelZmbpqCcp5Sbmp+hmZCSlZGdiLJuaLVxq4hwjqZytHNytnuamKSNj5uNon6QoKV+sHaDkdLRdVuufIZ/pG+bqqZrhoV9rX2XmY97sXOTnY54s2WWdIWebp5mlFLIi1rCXJ95Yl+tYHdzh2KXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPal9saVBVRkk5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyL6KdkaSvrKSqu62mtKWotru8sru/t7a0u7uzpbW0orKyo5+ssKSYprqupLGwnLS4qqCmnaGqpLGnrKqlmp2aqZ6WlZiZk5Oip6CXk6aqsaahlpKsn6WSlKGbpKaflZump6Gao5+tmqCenpCWnKKenKWUnJWaop+VmJaSm4Wse3eodqOPioepb62Kg6iDmZmiipKZi6J+kpiJroV/grNccrNSrn6DgqR/cdd9d4R+j52GmZp3r4aKkZyHd7RhmmWagoGVbJJasFhLmnWYeWZgrV53d4dnmIhqXa93lZ6PeGw1eciusl9BVG9eaGBFUGxfcG1WVU0vZWNpU1lRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6ODifnZSguLCYtMGtqLKnqrK6uLS4v7q4s7a9taW4tKC0rJ+gqKuflae2rKiwsauttKSbqaCgqKG1pqaqo5melaWhlJScmZOWo6Wbk5CnrK+moJWYqZ+ij5GimaimoJWapqmenaSerJ2gnaCNlJ+bnqCYmZyWl6KglJiRp52GqX19pXmhj4+DqnCtjIKnhpagoYqXl4ijgZCIlKp8gIudeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClGySXKtbWpN/kX9oZ6pkc3uBa5iHcV2sWomgjmtuZU9KQ6FcWkx0XmNmTVphX3N0X0pVNUqakllIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOj4xMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT44oZyZmb6smLTCrqutqaa0sLixtb+6urOxt7yqu7WgsaSepaennpOqsamvqrWsq6+hmKGgpqSjuaKjq6GXnJGioJWUn5qUmaCgkI2MqbCvpp2Xmqemn42SpJeoq6eUl6qon5+go62joJ2hjZWhmJ+gkp2XnJWeoZWXj6ubj65tcrR0qYx3iqZztHl0s4CSpKOSnIyJpIeOdrhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJql1ytYE2hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdmVG9uLlynT2JSa2VibVliXGBxfGNTWVA+Pm1vM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eODFCOKWam527opyywK6tq6unt6m4r7XAtbyxr7m4q8G3qqqgm6akoZ2Sq6qntaOyqK6qoJecqKCkq7mdo62clpmPpaOWjZ2hnJmdn5GTlau2r6eZlJusqZeMk6WZpayjkZersqSgnqirsJmhoo+Zopegm5abl6GTnamclJGrmYfUkpq7dLHEgMOGfdWWnLh4iJGXjJeJjKeHeaO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIpumohwbY2kdL1dd31bYXm8a1pWW2p6XmlgZGZibXhvWVtZQ0FAcj9DRis1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC45Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QTmmmZ6ivKKXscOwramqrLGnuK+2xLG7sq67sK7Bsqylop6joZybkaqkqrKktaetpJ+WmqqZpqy4nKKumZWhkKWgk42co56YnpqQlpKvubCrlZejqKeUkZalnKStnpGgqKufnKCppLOeoqSOp6KUoZqcl5WkmI+woJKVqp6FkJm1gJGRjbiVeIKTm7V3bmxuc255j4SOiXOewbu8mnuBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV6s6N0dpd1dLB1mJ5mhmmNtnRycHe2jF5/en2JZ4N5bXlii6xwdYV/WVunakVkWlRmYGNdYlFnZ3FtdUJNUExEO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PjcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVjgqT11dPSs7VlYnPTs8pp2gob+llrTDtKyqp6yrqbuusMavtbSvuKe1uK2po6KmnqCdmZSspK2qprWoqJ+blqCjnqykvqahqpiVnJGim5KPoaiik52XkpiUsrW2rZidpKSii5KSppulq5uWqKSlnJuiqaamo6igka2elqKel5eXnZ6PsKmUnKeijmp+aZyneIlzfpqOdXplh3u9vsC6bpKDcZSGX3JqWl6aiWFkh46Va2CAlWNtnHZilGt/mpWUZV5gY3GbimhyjH2GlWdqfnF0eX18Ylt3dIFoUFxug3x7i2pYbHmCcklKb4VwTXRNRVddZmFMW1hnY15PW211aXFST0RFTjtISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFS09IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SVJfSSdTYFY0KVBeTCgzPltPJz8yPqifqKHBo5q0urajrKWup6i1sqzIrLCzrLWjvrGypqCjqZ2jm5qZrKeupKS1qqWbmJWim6atqL6nqaaWlJuVoJqTmKWpp5GekI+YnLCyv6ybpp6noomTkaqaqKSam6ufo5mbo6etop+qoZmwm5SmoJeUnZ+dl7ClmaKomZyRnpyjpJmno5qcmpuakJaCaG58cXaRl5SRhIm0qY2GmJWOioyXl4eUlYqDkpORiY2RlJmTmJeaoKKbm5SgnY6CeqSFa2p8kHyAdImKgXGCeHl2doqAe4pqc4F0g3Vkd312a3B7bWBjXHBoTVlZZWpfV1lvem1tZlNPRlM5T1pOUk8oKztKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5TMTBUXjorPThdSyw8LUCyoLOhv6KksbK3oKmlsqelsLWqyautsaa1psCotKCepKWcpJWWoKumrKOjt6ygmZaWoJetqqXAnquklpKcl56Yk5Sin56ip5KRmainssOvmqudq56PlpapnqqcnKCsmKGbnaKlr6aipKeerZiWpp2ZmqGenpywoJ2ip5aYk5mUoKKWo5+XoI6WlIuKjY6XrY97lZuCkoGJqaiFgZiWioSOn4h7hJCGhZmQh4aJlY6bl42QmJ6jlpqTkZ2Nfo1morOuhYmEdnqPin12eXpvZ3mQgYCJa3WBeYhyaHR/enaDiIJrdGN5ZmBpZGNkZmpYa3twaWpcUkxQRF9VRkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi8pKyo3JSs8KDZDTUxEL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76tq66ysqCqprKtoqyzsMWwqqyjs6+9pLScoKaioZ2Zl6ilqKakprO1npWUnpmZr6auvqCro5GRnpqZlJGVoZyXqZ2FnqmsorPItKCqpKuWlpiap52om5+kq5Sen56gqq6ppaKqoa2bnp+hmKWenJ+dr6SZn6iTmJedkqWamKmempdmg5J8ZX6Omo9jeI1saGt6kKOra2WamH5nhYplZWloeo2hjmtojJeRondraouYo5+Yc2xueoSNhnlYZV2FgV5rioqBdltoc3d3kYCHgm54gniAc215hHR3iIiPg3tqhVhea3RkXXOIaWp8cWxjXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUvKisnNiokOycvQUlbSS83Wk82KUVZL0RPMVlDOz8uPaWfury5r6uzsKulqK2usKaurrC9samopK2wsZ+tl5+jnqGamaaqm6yjpqips66elaOQoq+mtrmlrqOPjpqhmZOSmqCZmaWWe6Wsoqizw7ikoqevnp6VnqOeo5yjqaiRnqGeoKqvqquiqZ+om6Wep6CslqGbpbCkmJyrlqGem5OlmJ6rmZ5+voOIcrRyhZ6GrWh4ucS4cZKho3ummJlzqoJ8y8DAu3GLooeDn3yVmIiewL2Clp2ejZ3BwXuBepGMmsK/fWulsW+MgW/Ken+bd5GDjoB2eYF/eXF6f4dxeIWMk3ltdpJiZl94Y19lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmplKOvqbCvraayta+rpqamsaufq5iaoqCcm6qnopyroqWopKS0pJ2jk6aurLezp6+ikpGanaWSkaChl5yfnYemq6Srrb/AsKGpr6mXkp+dopmio6qjkqChnp2trqmspaOipqCkpZ2tqZGkm6mtqpydqpysopaXpZaho5icf86UeXqlgnmVlptfro9ejqeAoaF9p5abdKuDgK9eZI2peqeHhaB0l5KIs2OCq4ahjo2zaYSudHyWh7hhgq1Zo81uj3V723t/mXB+iJJ1f2V7h3Z2a32Ibn6FkZJ+bYGOYHFrcGZgX3hkW3BoamNmYFJUUlddSk9DNUFIRUQ4PjY7QD9BOz04QD4+P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKy0tSjAnO1w6TC0hUEBGNC4xrcLAwLW0sLeYnpGkqqittKumsqysrKSsprCqoKebmqaYnKKwn6GfqKejpqGesKybnpamrq2xq6isoJSSm5+lk4+fpZeeqKOerqSrsKi/xrOoqbGulpKdnKKXoKmqn5Sgnpydra+nqqmbp6ajoauSrbSWpqKrqp6jp6ahsKGSmqeaoZuUlJGXoHCFjJd1haiHcbF8nXGsfqGfgqWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIooyRi51+q3uIk4+ggHqtVpzEeo9vksF9gZVtdXCMbWZ2ZYZvYXducm+JipGQg22Qj2VvdHZvYGZtZF9vaWluZmNXU1xhWlJSQzhJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5dXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScgJzQeNS0mNz5XSi09Jz4xKTNWQEYhHEc6QzEuK6/UxseytJ+do46jo6GsrravqbCnqaqorqurp6KjnZmilZ+mq5+ipZ+oqKKfnbCsl5uWqKevrainqZ6XlJqjopKUoa2bnaajrqyjrLWpuc2yraaurJaUnJ2imJ+urJ2Wn5mdn6mxqampm6upo6Krm6+xoqisrqaZpquqqrGjk5ejpZuUkoWkaqR1iXqpdHqycIKliZmMcIigmoekX2BSq4R/roKbdq6Bp4aGn3qYloV7ZoCjiaSZhoGjfal+gJSHrl58qFWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojYyYj4FtmpJvbnl4d25sZmVkcXBme2hjXVdfaVhYVExMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys2NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KesLWwr6mso6imqqurqaSmoJuln52lp6ajnKyaoquhpJ+vop2bk6qktrCuoKmbnZaUp6OQmqKon6CmnLCmo6ixrLbIsrWqrKqVkZydopmfpbOdmqCTnJ+nq6ujrpqsqKKhqqKzraKqs7Ghm6qor6+2o5OXpKeYm5F8qmyehId1q3l8sG+CpIuJn5aVn5WB0ri0uMmAgbJeX5Spg6SHh6B6mJWZeKrJdJmjlaepkJKbjH6biZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI+QnpN8cJeSfnB7dX16bVxmanJxZoFqXmJYY21cXllJTU1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTk9QTUZMSlZGKkwwLz4tNE9UUR0cOzxGMiwkqKTBxrmtqLKurKWinLK5rKqhppuopqqsqaegpqWYqqOfrqudpqCsmp+ppZ2mtZ6il5OnqrWyrJumnKCVkKWtkZmcp6OgqqeuoaOnqbC0wrKzqq2ok4mYnaSaoaOupJahlZicpaarmq+draimnqyjt6yhsrmvnZuvp7O0s6WVmKikmp+Ogp1OeJqBf596hKN8gqSEh6efnJ6ThLh8fHm5gn7MxcK2eJuhkIuffpqWl4p2npiKpJijqH6whZyEnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkaOXfH6SkYl1enOEfnBcbW53cmqBb1pkX2huYmRdS0xRVEFIR0ZJOjlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMjpQW1QcGzY/SCwtIIyHmamspKu5q6+gnKGss7Smn6CVpa6urqmmnaammqOnobKuoammsqCZqKSUorWio5WXoam0uaSbo56jk5ChspmenKemoaKvrZ2kqKK1scOxraqtqZGHkZymnKOknKSWnpiZmaWkqJquoa2lppivpbytore3rZ6etbK5srOnmZ6woqSeho/RtcO3eYeOhZGTj4CmeJSid4ygkoSlgotxq4aEtG5yapmjnJWJn3yYmYaHj3OvgqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5OmmH6MjJKLeH15jYFtaXdpeHNuf3RdZGRubWVoYEpaV1g8R0dAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWSc4yKrr+/u7u1npeopK22oaKZlaOpp66pq5mloZ+loKC1p6Kpp7CjlKujjqSto52Qmpqps7SknaadqZKUl66goJ6npJynnLWaoKqjtqvCsKmrqqGMhI6boaCmopWYmZyYmpimpKaYq6etoqWbrae+rJW+sK2fo7Czuqy0p5upsqWomHqokH18sHeKgaSliJxtsm+hh618oY+DqJaZgKyJhK6Fn5SpoKKWhZ+AmZWAe5J+q4CdmpaKqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrrl2la3GFmV1gW4ygbpWRppmDlI2Wi3p6gpZ+a21+Yn10bn96YGdlcW9nZ2hDWWBbPUpTMlU4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFdXVtaWFNQT05JNzA1Mi4qLEFUVlZWVVRVVVVVVFRVVFNUV1dXWFZVVVFIRklKIygovJKahKnGw7bBtJ+braCuuKWkjpuko6Cvr6qfo56drZieuaCiq6CvqpmtoZCqqaSWiZqQrrCspp+nm6yYmI+soqGdpqKapZytmJ+opraov6+lqaSejICOm5qgpp6SlJmak5qapaSjmairq6Okn6movqSXw6yqo6Kss7qsr6ehtLCpqpl2r36Qi5yFh326roqYZbCMZZWtfaGPg6eVmoGsioSwhaWZpKGikISgW2xqgbNgf617e4KAsWxnbpmXjIixW320W6SDa8iiZZ+Ae7xZdrVasn1Sr4B6rFiAoW2Yj6iaipeQlZZ7eI2cfWRzfWKDd3SAfGFqZnBtZmVlT1VjW0FUXj5JKD45PTQhIi0lHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBfYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjnK2mpbaooYuZoJ+ds7OpnqKfnbSYoLOoqquesK6dq5uVrqmijoibjq+sqKaip5muk5mPqJqhnqWfmqOjpZmeoqmyqLyvpKienY98i5uVoaCZj5Kam5GZl6ieoZioraelpaOlqbufoManpamiq7S2ra6noL2ura2WgamSo6+Om4CGpJeYkIGAuMO6g46ck4Wnl5yCrIqCr4imm5qlqpF+1b3CqmKjv718fqOCg9e6uLWFlJODnr2+hGqjgW+rhG6df3qysMeDaquwva14d6K+u3SAlo6mnI+akJWceYGQmnlifHpkjGZ5gntga2VramJQYltTalxAVGFCTik9OjQvHh8kHiUyIB0kKDA0OTY2Nzg7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM/PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbS0sb+5sr2zop2upqWzpp2MmKW/qrexqKG/pqaxm56xnLmonq2upaaVlK+sl4yDmpGvpqOsoaScqqGYi6OSpp6nnJqhqKKZnqCrram5raijm5eTe4eZkaabk4+RmJiOmJOpmZ+Yqaigqqaho6u7nqnFo6Cvo6uztauwqqG8qLCwmnR1qqS3hmWJn3BnrY+Kj21vd6SQmZ+Bda6ZlXCQjHGVp6ObmK6kcm1tbWWKd25tgplxgHlpcWlniZaVmHFoaYWGZ3CGZF6JY2pvWV1nfnemYGJxjpJvZmSAjZKOopiXmJCVnnyHjpR1ZYZ3aI1qeX55ZGxjZmxiS2RYSmtZOlBlRVInSzorIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBgYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJSts6q6ubKzqqmirp6ksqmYkr2xw8i+tqqewKuso6Cmq5+6o6StrKymjpatqo+MhZWXrZ+lqqGfo6OgkYykkqeZqZmWo6qglpylpaevuqusmpuSknuEl42ll42RkZiTjZiVp5Sel6iimrCmnqKsup+wwqiks6assbKrrqyouaSvuJaKoailtp2JlqKYh6makJSdk6qzmZujrKCylqKgnqCinKCkoZWrpoySk4yHkpyclJCZk5iQjpWGgaSal5WNi5OSio+GhH5ni390gnZ0iIxxp218lZGUk4GBj4+Pj52UoJWXlqCCh5OMcGiPdnCKd3Z8empsZGRvY1VgWUBpWkdiYE9aK0Y9KyYhNzQwLh8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTU9QUVdUVlleX2FjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbivrqKwpK2foLWxkY6rxbzEu7iqoqWdm6adsKijtqedqbSmp5GYrKOLiImPnKeWq6ShmaeenpOVo5eom6mZlKahpJCap5mhtbqoqpiakI18gZSMoZSKlJGVkJCTl6WPnpmon5y2o52nrLenrsKuo7emr6+wraqqtLqir72Zkqajprajkp2mno2pn42Sn6Osr5qho7Gor5ekoJykqp6dnZyXq5ySmaGbk5CWqpmNmJiWkJaekYignZWUhZKMkIyUi4F+ZoyGdYZ2eYiDc5xqh5GUlJGKfYyWkpKYk6GSnJagg4eXhnlxlXJ5iX9xe39qbmRfcGlgW2BZbWJQYGNQWzpHR0Q9Mj09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZcXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlaSno7CzrK6jqaetoKi1qpCPnKWzu6+srKGimXqdorCkpbGplpu4pqKUmamcjoaKiZuikK6eo5ann6GSl5ibrourlo+omaiMmKiPnrm2pKWYm42JeYGTjJqTipSRk5CNkZaijJ2eqJ6fuKR/hK+1orCvdKS+o7KgeHqgq7O8lXaupJ+KgKp+ZFxidp+OpJ6El35uk7Oco6iuq6JlnqCTc3mZlnCAmKiXbH+ip4llnKWbkJeYlouRm5GFnZqQlYKSh46OkomFeGuQh3aGcXyGgYBhaYiLlZOLW3aVkWdokI5yeqSYmGR5mIaBd5dpg4qCbnl/a3BlX3Zva2toW2ZjYmJvU1s+Tk5OUkc9QFRCOTEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTFNUVVlcX2hmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJWmo6GwsayrqaWoraOnraSSlqu1r7Gmmqqmq5dzi5yvn6iqp5OWuKCgj5yknZF+iIiano2rmqOUp6KejpeRnoV1rpCIppqokZajiJu6tKegmZiLiXR2k42Vk4qUkJCUjI+ToI6an6aZnLKWgIyctZ20jJKPvaehfqeieqOvuIGOjqefhIuFj7Gpr4yJlqOaeYGLrIacnaKnqqiHlYaYd6WbeoebgZemgoF7nLF6ioWfl5mUmJaBkJaWhJmaY3mHkISOj5KLg25xkIh5gXGAgYZ/hnSHhZaSeJZok3SgmnR8mYOfnIaYfpGJgYKYao2MhGt4e3FwZ2R3bmlsa1tlamllclteSVRMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj5ARElASUVKS0dSWFpZW2FhaGZaUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZSuxr2woJWlqLWej4Ocq5ymoZ+NkL6emY2fmqCQfYWOmZeIq52ilZ+gkY2TiYaAkaiOh6Kco5OWnYafubKnnZqSjoVwdY+Ik5CKlI+Pm4uPkZ+Slp+klp6siJ+0ibSarovKiKuuibeFjbCDsa+EqY2nmI2dfKiPcnt3m46mlmiVpHm0i5+epqiSmcKBf6uImKFxnoCapH2XhZWxgaF8oJOfj5iXgI6Tm4mYkot8hZOGjZWTiYNtc5GGgHtyhoGFfYV0hYKXgY/FZoCph4+iap6DoJiBmX+Ki4OImG+MkoRnd3R7dmdodXBnZ2xeY25sZmxYaEdcUUwyRTQ2TWBjNiY0PERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWV1jZmhnYmJiYmRjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5saqrppqUoKOkqqKVo6m2o69/oKecpZ6diZO8mZONoJGdkHmElpaRh6uZm5qZoYWPjHebnI+gkYiepJuVmJeGoritpZmbjIx/Ym2PipKPjZCMjJeLkJGfj5OfoZmhqH6hp4etnqCWro+fnZ2RhoGgjauvh6SNqpqMmn6jdoCYk2uBq3VNq3iHjZ2Rm6ingaqrfYOhe3qnaZ5/kmtnl4aXtoiefW1gY1iDl3+Me2Rni3OZfXmWbF18l25fU3GEXGBseYNgWWWCfYSBmHGnqmuDo25ypXCfg55oZJ9sWmyIemVZX4J+YVdQb3ZlbnRyampvXmpvbGtoV2lPXVdFOUE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9idmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKhtryrrqKZl6Chpaysn5yttaOokqCfn6abmY6YtJmQi56MlYt1gZSRjYqmlpWXnp5/koWGrKSHnJGKmKiXmZqRh6WwpqKVmoiJf2huiIeKjo6Ji42Si5CSooyTnqCcoqV/k4GPo6GUoHeclpCng6GngIaqroWleYt9hJp9onBzk4eWe56MeW2Hm4yZkJuomo+HnXyConN2pmaefnekX5h6fJJzom6Yt7S6dJKHgYC2qGSBxrh7cJW3jHGAm6Rjc6yrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN/pF6dmbOWb3uXnrN0cluesoJpYm90dXFob1hrbHJyZVxpXmJLRD1ENVFBWXEyPFJGX0pSPTwzOTU6OjZEOztASVA/VE1OUUBEX15bWlhgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mayck6CNpLi1rq2gm6Kco6OkrJuasa2sk5egmKCkmZqTnqubi4iSeIuFcICWjYqPoJCTlJ2XfZCJjqihh5iPipGik5uajIuoqKSej5aGg31qeoZ/fY+MgouQkImPlKCClp2gnaCfi4l3nJiijKByoouIqYicp5GXqKt/rox9eqCZeqOTeIBzl4iMnH2Wn4abjZmbpoajZKF8iZaQm41snmiajW6amXp/iqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z1iYp/nmiadYeTkpiOf55umZBrpplcqH53u2p9qVqOhF2zZ1xucXl3a2lbcWl4eWNfZVdiQVBFTjdWQlJtNEpaWl9OWkNAMTUxOzs3SD86Q0dUP1lSWV0+RGJeVmBRYWR9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mVnImqtpuoiWOUm6y6srCsnaacnKefna2anbCoq52Xopmhn5iWlqCjmYaJjWmIgHF7l4iLlpaEkpWYj3qKhJajnYmUj4WLnZGcm4mPqKOgmYuQiX9/aYGGeX+Wi3qIjY6Hj5aaf5Oin6Cik5hyaJ+KoI+McJKMgqmImZ+jqaCofbCtpKK4l3ajs6Kjf4iUeJ16q5p+oo6dm5eIl3KhfIWNr7V9a5qRoXh+mLSjo6uohJh7mnycmX5zqlpdb3uXi3ieYk1/e3uFY3qXQk2fWaJqcnyObYGJhJl1m3mHibGzf3+akqZ0f51tcXyUb5lyaaNdlXZIZWNgc3B9fm5lYGxodnxkY2BRXlZdVFZAWUVRZ0RSV1tiWF5JRD1COEBCOklFOExEV0FWUVtWREZiXFpgS2BtfnJFQzxVX2JaZWpWZ2hsbmJmZl5hYVxdXmFoYl9lZHZsXmVnZmtkZmxoaGtpk52Bsa6ZhFNfoKezubOzqZqii5upnJuokqGrpKGoj56dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGSlohygImSoJxykZCAiJiUn5qEjqicmpSKiol7g2uEhXGBoIt3hY2Ih5KZlXySpKGfo4iuhn21hI+enXumlnqpgpadkIuhnn6naHdtfplzoHNxfJ2FmG+Tgq59o4OmnpqBo3BeqWd1o2NvpWGc05B8epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKovH93g21/v6aqtF6cb35xl2+Bc6JyXaNndKZhaKZtm9OYe4Obbnd5l2ubenaXcmyppWdfZXlwf4RrZ2ZkbXZ4aF9hUltlUVFiSVdJVF9XU1tlalxkUEZDS0xKS0JKRThQP1BNV1NYT1JSYGZlaVJkeHl3SUZFY11kWWhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJibf7CsVFxLfqmvsrWws6OcmIWYp6Cgo42kqKCYqYmZl5iTmZOSoJeNiIV7cH2EaH2PgpOagXeRjY6JcH+GkJOSbJeTfIiQkaOVg46qmpSSioWJeYN1iIBugp+Gd3+ShoiZopd5k6Kkmp+Js6Gitot6rKekrqVwqYCakIWBnJJ9pICimYaYcp6EoqyuiZeLgIykjZaDrqKUdrW2tcmhc5SKgJ9hnpepbXmVh5+adaGHd6B9kJaKgW9MZqKScJqIc6R7eXRhg4JsfqBscmRgnHJ/dJdpe2mztbTGpnOYfnudapubq3WCmm10d5dpmnl0mHFQRXyzXmp1aniHZmpnYnR0cW5WXlRZaFBSaElVTFhSVlxna25WZ1dNSkFKTUpISk5BUUpQZWNpbWV0cnN+eXtudYl7e1RQT21daFtraVJqaGlsZ2xnY2VfXF1cXmliZGhre19dZGdjamZvbWVpbWWinImvp4VmP5Shs6uvr7WiopCAl6iioqSMpaednKWCmZeWjZeQkJuSjYiDeWp5hmWDjH6XoHl1j4iMgWmEhZKDjIWdjXqMipSlkoKXqZeMkYuAiXl/fIt5cJChhnmAlYeJlqCWf5SlqJyWloRnbnicbKJkfHGld5yYcGengZeMe6V6oJaDl3KfdoCJlJaPuW6QiqJifZmilYhucmmranWgbG6mYJtpi5BoloealXWigH2aX4uFjHVviGJooWWef2mbdW9jZoiCbnKiWl9bZKFuXomMb3t/c3JkpW54omRnp2iYc4uYbqFvU4iPb6BeZKdUi11TmG1tcmpxgW1waGt4c2twUlhXV2ZZU21JWE9cSFhpaHNqWWtWUVJFVlxMWFJhVWhqXnd1enxwfHxyg3t/cnaNgIR2XlFzYWdicGdQamhoa2xuZ2RnX11eXWBrYmppdnVdXGNoY2pqc2xma21jnaWYpnpldG2Lp66lqrCxpp+LgJaqnJ6ljKKhmqKigJWYk42aj4uXkI2Ke4ZxgIhoi4t8l5pzdIp9kHtlg4eVioqVmYJ8iIWWpo+BoquQhZCKgYp9f3+Oc2mPpYR8hZONiJigjoiSqqeeiaZ4lpx+pYmWjLKYnpCDr5efpXiWiHqpdKWPhJpupaKMkoSMg7xufKWvgoaFhpSXnKB8pXpxqJSglmeefm+sY5aKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWuKhm5tn56SlWF/q4uqdoB/jaefd599haSVnaBpmod2rGeerYy2c3e+jKSTWYOmjathdXFzb3t0cWJqfm5obFNWW1VhYVxrTVxSXUldbW12YFtxWVtgWmdzZW5vcmNxdGB3e355cnmDc4R/gHt7jIGCgHZieGRjbnNkUmxnaG9scmlmaWFfXlxia2JsbHpvXFxiaWJsandtZ2xuYpWmqpyBgJ6klqmqnqinrqOZiYKXqpmepImapZ2pnYSLmo+FnJGFko2LjXSFeoiDb42EfZaTdHSGcpKCbX+MkoeGlI99e4GEl6SNf6WljYCNiYSUdYKHkm9si6mAg4uUjomcn4mNk6ukoJCAdZWXiH6BeZSuo3+Bm3GPhniQjIWAe3KnjHF9fXqXlpuEjnh7fn2IlJWTinaQmJ6gg3p9iWyMhVt5eXJ5cWhufpKJcX90gY+Uk3GFg4FljX9fgYCMd3VzlHVveW9uh22Ehl93aXiOZoGCho6qnH50fZdqiYhvgHZ8hXZtbGeMc3h7l3eEW2pYeI9obXdxcG93eG9dbIZuaWdWWmBXXGVrY1VhVV5RX3B3eWxqdmVqamp1fHFydHNhb3Vic3uBeHV5gnWAgH+AeIuFg317bX9sZHluXlduZ2h1a3hqaWpkXGBaY2plbHB1blpbYmtkbGx5bWhsb2GOlbqpp4uhopqmpJmknauioIODl6uRnaCJmqaaqJiCgZuLfpaUh46JiI1ygnyPfX6PhHqXjnRyg3CVhXt9kouGhpCFeH6AhpiijHunoYuFj4+ElYKGjpd3coWqho6SnJCInp6IjJuooKCrg4mOlZp+fomWraiPkqeQeHCekYN7k29+qYVwfZVxam98gZ+Lf5KOjGhtXYOLjJuano5zlYuIcXRrgnZzgFlyboeQgX1+i2ldaWN6hYOIgF9peHubfIOMg3aBhoJoeYuHa2Fxc4N3YHOMgomQp5WGZo2Pg252i4NwhY15b2VmY3mCepVaXGlmbnZbenl3dG1zcoJmXG2Ka2xiWVleWllscVtfYFleXWZ0fXt0b3Nja2tpe3xxe3h0ZG10aGx8fnV5fHt6en9/fm+GioR7fXN+eXN/aVRccWlsdW91Z2toZF1hWGtoa2pxcm1XW2VubGdzem9oam1gjIyrsaKQo6Gan56Ynpmpo6F9g5erjJ+Uh5uikKWVf3uXhHySmYiJhoaKcn2Ai3aFi4GElopxb4BymIaEfpKEg4aKgXqAg4qano+CpqCHeI2XiJWLi5yXhYN6rYKRmJmUip6dh4ihq6CioqOMiJObnKOZlqqhp6agkpuIl498eY+OhKh+f5KRkpOcsKWalJ2QjbKTmISmjIyUmp+JkJuCiZGKa3yOdndlgoaQinyJnYSHi4+HiICEg5B3fHp1mqKJh4uei4WUf36MgYF2cXSGhYB4iIeKkaaRhIaOiIONkIx8h4qIj4F2a4GDe3mZaXJoYHOKcH16dnVvd3SBXV5vh2huX19aXF1TaHFVY1tbYWxodXt8cm5wZGtqaH97bXh/cWlvcGxmgXtygYB4gH2AhHptg4yGfHp4fH56g3hOZHZrc21wemRrZWJiYFt0ZnBmcnFsVV1sdG1oeXpxZ2lrZY2InbqflqKhmJWZmJSYpKCde4CZqo2ejYWfnIqelnx5lIJ7jpmJhoOEhm14gYBygId+iJOEbWt+epeGhIOQfoCGhIZ9h4OMmpySh6qegnGKj4WSkYuckX2Ne6qEjZKXlY6cloaGm6egopqdhoOSmpmZkJqmoKadnZCXgZGKd32IjoWle3yPkJGGmKqhnZOcj42rjZGAnoyIkpmego6XfoaNgm94hXF0YH+Dj4Z1i5eAg4+ChoR+hYOUbnl1dJOii42FmoSEjXSAin18cnN7iIR7eYyOhJOnj4aEj4KDiomJdoWHiYt7bmt9f3ttaGtsZ155fmd8e3ZzdXV7d1xgcH1udWBjW1xeUWZtU2VaXWFraXZ6fnFrbGRrameAgGxzgGxsdG94boR5boaAdoKAfYR2cYKNiH57e3x/e4KKYGl7anVoaYJkamNgaVtjdWhvYnVtbFRicXllcHp6c2VqbW2Lip+4mqGjn5KSlpeLmp+enXt4nqWQm4mGpJSLmJl5eo2FfImRg4yCgYJtfH94coCFfYqQfGtofYGXiIGIjnx+hoSHfI+Aj5qbkYinnH9wi4qLkoagoYqFjHyokoiPkpeTlpJ3jaOhoZ6Wmn+BkJqZk4ybo6GkmpeRm3+OhHmAhI+HoYB+jI2PfJekoKCSmZCPpo2PgZuRiZKXm36Skn6GjYF1dIJwdmB9gI2GcoqVfIiLcox/goWGjmh3cXiMmJKPf5d+iIpzgod8fHF5eoyFenuSjYOWppOLhpF8hYaHhHWCg4iHeWRye354eXBsamZefXJofHV1c3xygGpeYHR2cHhkY1leXlJraFRkWF5hZ2p2eIFxZmtjbGhlgIBqbX5obnFrfXeGeWuLgXKBgX2BdHaCjYZ+fHt/gX1/j2pyg25zaWGHaGxiX3FVdG9tbmB4aG1XanR2Y3V7e3Jiam96iY2fspKlpZyOkJiPhp2gmpx8dqSgjZZ/jKKKiJqWeHuGh36DiX6IgoB/cH97dHWChX6JkHhnY32Gl4qCio14fYCMg3mWgJWXlYyWoJp9b4uBkJOGpZuHjImDppaFkoqVl5KRdpGeoaGYlJh6f46Yl46Wm52knpmTlJx6j4WDeIWXjZ5+gYqOjHOXop6hkpiOj6KMi4OWmIOSlpl+mI18iI2BdnF9bXpkgHyKhXCGk3+QgmyHgoF/iYRldW98h5KXjX2TeIuJfICHfHxyf3iKh3mFkYqLmKKVgoSMd4iEgoF2e4GJhXReeHd8c313ZmtkYH5panZzdHR9cXxjY2FzbnVzbWFZYF5bbGRSYldfYGhrdXmGcGJqY21laHyDbGh0aGxvaH98gnhtkIZxgIKCf3R8g4yBf356goN+fJBtdoh0dG1limxqYWN1VoNpcW5geWdsYmp2cGZ5fHpxYHJshoaQna6XpqiejY2Xh4agk5eYfXepnIqYeZeci4uYkHl8gIt9fIN7gIKAeHN4enN9gIR/iIuAZF59i5WHfoSHdH1+in99mISWk5aMo6GXfnKHe5ORiqaPjI6KkqCRg5GPlJeRioGPmKCakpCSdICNkpSJnZ2ep5iYjZWXdI2OimyGmJCZeoeIkIlvl52ao5OVio2fjIaBkpx/kpKVhpmIfImJgXpxeWp1bHt+i35uhZKClHdvgoN9fop/ZHJqe4CWl4R/jXSQiYN5h352eIB9hoF9hI6FjJSkkHmFg3SJh31/c3WAh4NtYHp1eXB7b2FuYmR7YW5vdnJ3d3N0YnZgb2x1bm9dW15dXmpeT11XYmFobXN6iWtfaWVqY2h3iG1mbGhqbWiAfHp3bpCHc4CDhH10gYaJeoJ9eoGEfXyOcnqKeHhubIdraF9pcmOHaHFvZXdobmxhemhrfXt4cGF3bYuBmZqqoKSonYqKkYaKnoqVl312rZiMln2ek5GWk4h3fnuKfHuAdnd/gHB0c3pvhX2BgIp+fGBcfo+Rhn+DhHN6gIZ6j5GHkZGbkqSblIF9gHyNipKkiI2KjZeajYWRmJOVjomJjJOdk5CMjW6EkI+RiZ6ZoqGXlomXkm+JmYRnhpqPlHqJhZCKcJaalKGSkoiLmYyCf5CefJKPkouZjnuKhId0c3VrcW51fIt0boWQjpJxdIB7gYGIfGRxbHl9mZR9hIh0kIuBdIh5bn99gId9hY2KhY2VqI17iH1+i4V3fXBvgIWDY2h3c3RuemJeb2BqdF5wanp4eGxycGV5XW1sc21zWFpeX2FqWlBXWGRjZ3Fxf4dmXWloZ2JncY5vZGlnZWpogHp3dG6OhXOAgYJ7dYKIhXeFfHiEhXqAiXd/i3t6cnmDamtfcGh0f2txbm1xZ29sZXtiboB5dnFsd3eKf6OYoqihppuHjIqBj52Gk5x0gKmUkYyGoIyVk5B/dHt2hXh4f3Jze4Vrcm95bYl2gICGbnFbWX6RjYiAgIB2dYB/f6CGj4qRnJegk5d3iX6AjIicnYmPhpKXlYSIlJmPlouLjY6NnYqOkIRuiYuPkYqclqGbmJWFmIhrhaODZ4adipF/i4SLgXeTmJGekZCIiZWNf36Pl3yRjY+NmpJ8in+CbnZva21vcHuFaXODjpeKcHd/dIKJgnhmc292gZmOfImEepSReneIdHCIe4aMe4uHhImPnKOIfIR3gouAeHhuaoCCgV1ycnBvb3daXnBgb2peb2l8eXBtbWptdmBwb2tybVlYYWFiblhRU1llZmN1cISCYl1qbWRiZmuSbWBmZl9oa4F1cnJwi4B0f4KAeHaAi4B4hX93h4Z3g4R7hox/e3aKf2pxY3xihnxvcGx0amhvbHZ3X3F/eXt0dXSAgn+llZqtn6eWhY2Df5eVg4+fdYqfk5KFipqMlY2LenJ4dIJwcoVzcXWIbG9tdW2Id4N9f21uVVGBq5SHgniAdnKCeYKggZGBk5KXm5GaeJF6goySpJqTjoiVmJKEhpaZjJOLiY+PiJ6FkIp8c4uFiY+InJmfm5aUgJR/aYaciGiHoYiShJGDiXGDkZePmo2PjIuPjXd7kpB6jouMkZaMfIh8gGt2am1ra2x6fmF5fo6VgXZ6gHeDjXx5Z3RsdIeVi3+IhnuUkHF6hHB3jHqKjHuJfoOMkZ+dhXx9eIKLfXZwaWuBgnlfd25sa3FyVV1uYnFgX21ueXBncGZnc3VocGthd2VdVmZgYHJTUE5cZmVdeHCIfF9daHJiYmVmkmpfaGRbZ3B+cGtxc4p9dnyFgHR1f4x5e4aBeIiCc4aEfoyMhHt5lXdmcmqDYId+b29remBqbnR/dF90fXmGeHRzhXx4oI+ZsJylj4KKf4OaiICLnn+KmZOOhIiXjY6PhHZ0dnOAcG+Fc3Bxg29qaXZtgm59fG11c1JOgt/JktaTfHB0gnWDoIKSd5SQmJuPmHuTcoWQn6GTk5CKkpuUhn6WlYiNjYiRjYicgI6BeHqMfoiMipybnZuVk3mNd2iJkodsiaSFk4iXg4ZjjJGYjpSKloyNiotxe5SJeo2IipKRiXmFe35se2Vyb2preXlbgHmPjoB6fX5/ho56emhza3OLj4qChYV9lYxsfn9vgIx/jIh9hHqCkJaam4t8d3iDkHlzbWZwf4NsaXRuZ2hzbVNebmRwWV9rcXdma2piZnhzb3BjX3dgYFZrX152UE5MYGZjXXlxiXRcW2V2YGFlZY5jYWZhWGlzc25rcXaLfHR6hoF1dn6Lc3+Gf3qIfnKJh4GRioh8fph2ZXNufGWHfm5wa4BabG55eXNgdnp7jXZyd4p3eZ+Lm66boJCChXeIlX99iZyHhZ+RjoWMl4STjoeBdXdweXFuhG9tbn5yZGR4cHxten1qaGxjpJrB3K7voXNrdYN1hKGFkW6Vj5SflJuBkXCFi6OXiY6VipCdloOAlZCFiY+AkoqKl3+He3V/iXiGhI2bmpiZjpB2i3dvh4mLfYukhZKJnYWFXouUl4qOiY6LioSJbHyWgX2IhYmQj4Z2hX19a31kd3VqbXhzV4h6kYaFen5/gIWMfnllc2p/io6Kg4J/jJaFa4J1boiRgpGFf4J6gJGWlJmQdHR4iI11dHFndXmCYnRtb2FodWZSYHBna1VfbnR5YHJjX2h9cXJtWmJyYWJXbllcd01NTGNmYV52c4ptW1xkeV5gZGaEX2NjXlhqcmtua3J3i31zd4SBeHd7iXGDhH1+iHt0i4mIloaMfn6Yc2h1cXlti3pudHCBWHF6dnlxZHd5hoxpdoCJcn+ch5innKOShH1wjJR4eYudhIWhjY58lYx/moiEe3J3cHNqb4FraWx8dF5geHZ7cHV7Z2BlfOvatcnD3IhzbHOAdomaiI1pl4+OnJSSgYhwhYigjoSLlYqNmJR8jZOIg4mPe5GLhpCCf3Z4g4Ryh4KSm5aUmIaMdod/cYWCiYeZooOUjJ6DiWGDlY6GiYaJjYeAh2l9lH99g4SJjo2CcYZ+f3F3aHVyaXN3a1qMfZKBhXx/g4CEioJ2YnRsiIGPi4J+f5KRfW6CbHmGj4aThH2BfYCSk5GXiW5yeoyGdWxxa3J4gF90aW5canVgUmRxaGZTX3B2dGBvYF1ognFyaVdnaGNpWG1XW3VMSkxlZl5icnOFaFtcZXleXmRnemFkX1xZa25lb2p0d4p+c3OBfnp2eohzhYN8f4d2d4qGj5iBjYJ7k3Zsd3V5eZN0bnh6fVh5hXGAb2d4d5KCZHaGhXGKloWZoZuiioZzb5KLcneOnH2KmoiJe59/g5l/gXhxc25vZHJ+aGZsd3dbX3l7enFxf2lhZ2F/1baOkKZ4bnF3e3CSkIyHapiNiJuRi4Z7aIeLmYaBkpGGh5iNfI2NgYGKjXyQjH6KhXp1e4J6cYaAlZmOk5SCiXWEh3eEgIuTnZ+Glo+ffohhf5OHhIiEiY1/f4NnfZB/fn+Ci4+Qfm2CfIJ0a212dHN2dWtjjYGOf4V+fIR/hIh/cF9zcYV8j42CfH+SiXpxg2Z6g4qHjIN8hX6AlY+Rk4RucHmMf3Vtbmpren1iaGppWGt1WlJpcmliUGJyeGxhZV1aaoNtc2JbZ19kbF9uVFpvTkhPZmRcZ25xgGxaW2NyX1xjbHdkZV1cWmxsYm1pc3aGf3Fuf3x8dHiGeIWCfICHdXmJgZKWfImGdomBb3h5e4STcG17gXdeg390gW1penOUc2dyiH1ykpGDmp+boIaHdnaUf212k5d9h5CDio2ZfIuadn12cW9samF0fGdiaXV6Wl94fHptcX5lY2hoV52PXnFylrzDg3VxlIiQfnKWi4abkoyHcmqIj5aAe5SMgYSbjHyKhn18iYx/lIh1ioZ2dn2BcXWGgZ6UhZSPg4NygIh1hXyJmJ2Yh5SOnYCIZn2Tgn+Fg4mJcoF9Z36Le3h+f4eLjnxpgHyDdmVveHhzdnNsao2FioGKf3iBgISDf2tecnh6fo2KhXuCj4B+coBpeYOHi4aEeYR8gZiNkIx9bm17iX13dG5oZ3x2Y1xxYlduclNTbnNoYU1mdHhlYF1cWG6Ab3NZZWFeam1gcE9Za1FEU2dgWmtubXxuWltebGNaYm93ZGdcXWBsamNraXN2gYNwbX58f3R1g3uDgnyChXZ+iYGWkXiDinSBiHJ5eH6NkG9vfIFxaYF5en5tbHx2lWtqd4R0bJSNhZ6YoJmFiG59jHZqeJiOfoGKgpWXiXmOlm96c3BsamRgdHtoX2Vxelphcn15Z3F6YWVlj7Gyd0piWqTZ0JZxe5CKkHd9lIuEmZGMhW5rhZKSenmShoGEmIp8h394eImKhJaAcIyIcXR9eml5hYOlkISTjYN/b3+Dd4R5hZuZlIuTkJSFh3B7koJ9goOJg26BeGiAhHhyf3+DioZ7ZX1+hHVjcHJ/aHhwb3WYjYaCint2eICEeYFrXHF9coGIhYl9hol6iHKBbnGEh46EhXOEeYGZjY2EeG5vfoSAd3plaGp8cF9Zd1pYcGxOV3FzZ2BKbHZ0YF1bW1l0fXJvV2ddZmpxX25OV2hRP1lmXlpva2d5cVpaWWtlWWNxeV9oXF5lbWhla2hxd3+Hbmt/foB1b4J7gIF+g392gYWJl4pxgo1xe4Z8eXmEk4x1anp/bG9+dH99b3J7e5RvboF/eGaTioOhmZySgoZnh4NvaHqViH1/hIGYiYF8jYxpeHJrbGZfYW94bV9ib3hcZGyDemFxdl9lZdTqvooyOj6LjoBxeYWHjo12g5aMfpKNjH9tbIWMi3V9j3+FgpWJfIN4bnaHhIOXd2+IhWt1e3RmeYKDp4uCj4uEfW6AdXeDeYackIyQkZKMi4Z+e5KGd3+EjYNsf3JogH54bXx7gYqDd2F5hIFxZHFofm10cXSBm4uAf4V+cnV9gHOBcFttfnR4ioOLe4eAfIh4enFsiIOPhItygnqAl4uLf3Rua3eAgHV1XGlod3BYVntTWW9kTFpycmVbSXB3blxaWllddX50aFliW2dlbmNpTFdmUT1eZVxddWVfdHBaWVRvZFlkcXlaaF5gZ21naWxpcHd9jmxpgoR+eW6AfHyBf4J6dYKBjZOFcICLbnh+gHt7iJKJf2h7fmt0e3KGe3N3fX+MeXiEfXxrjI2Em52WjIGAbI5+a2h+jYx6fn+DlIF+fYqIa3VxZ2hjW2Jncm5gYWtzYWhwiXpic3ReY2SboI9uXDVZr7V0aYCIfJKGdoWWhXOPi4l2cG2FgoZ0eYl4iXySiHp/c2d2iX5+mG9xhn5odnltZXmIhKSHgIeNiX5ufnaAgXyMmYeCk5CYiYuEiXyPiHB7fYR7aH5saoB7eml6doGHgXJgd4F+cWRyZnWCbXV7hJSRgXyBf253eXx0f21Yb392dIyChneIdoKJenhzbomBj4GFc399f5OJiXpubmpugoJ1bl1nZnNxUVp6TVpvXE5bcnBkVUtzeGlXWVlaYXGAdGBdXWBmZGhpZk5ZaE1AYWRbYHVhXHRtWFdTdGFaZG9yV2peYmhrZ21saXB3fJJsaYSJfHxwfn57gX+CeneAf4qLg3F7h29xd4N/e4mNj4Nqfntud3l3ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshIiQeH17gZF/f36Kg3BycGNmXllnX29wYGBncGZqb4l0YXRvW2FkanZ7f76cpqPIuHGFg3OTfHiGk4JzkIyIcnJwhHuCc3WHdIh3k4h5eXFjd4d6gJNpcoR2Znd2Y2p8g4eegX9/jo99cn90hXmAkZCCeJaNlI+Igoh7iIlreHl+dWd6aGx/eXNpenaAgn1oYHeHfWprdGd7gGl2gIuQlH56fn5we3Z7dH5iVnd9cnOKhIJ8g3GGind4cHCDgo1/fXl+fXaOhoN2aXFpbYiCcnBdaGNzbkpkdUtdblVTWXNuYlFPc3hgUlhYXGFvgnNbYVxoZWVjamRRWnBJRGNhWmNwXl13aFVWVXdeW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHl9cnt+eYKBgXx2fYOIhoNwd4NybnaCg32Ji5N/cIB8eHl6gYx0g3h/gYGChHqAdW9+ioubnoh9hXp3hntndIWLkHp+f3uIhYR2j4Bnb25fZFxYZVltcmBgYHBsa2iJbmBzaVleZG2Ad6naqceGh7JxiXhvjHV7ho6AepOJgHV0dX53f29xf22EdJSGeHRrYHqCeYiPZnGDb2d2blttfYGQlH+AeZGSfXl7bYd2gJCLhHSWipGOh4WFe3+FbHR2f21ndmVte3VtanZ3f398YGJ4hXlodHVifXtndIaOjJV7dH91cYB6fG1/WVZ0fm91hId/gHlsiIZ0eGt1f4OEfXt9eXtzi4F9c2d0ZW6LhG1zW2pfdWRIbm5MWmFXVlV4bWJQUnR2V1BVWF5hcYRvXGBjbWRkXm5iVFxyR0JmX11maF1aemJRVVx1W1tna2FWal9gbmZma3FocHV4jnRrjox1f3Z4fXeBg4F7c32DiIeDb3F/dHF1foWBiY2Ke3d/eIN8fIaHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN5Xn2FmIx5hoN0hYaEd4l7Ym5sW2JbW2FWanNjYFtnbm9mh3FhcWZXXGNrf3zKzoe5oWptbYpscYRxfIOJfnuRhXp5c3l1dXtqbHVjhHWRgndvZl59gnqLiWVygmtqcWNYbHuGm4iCgXOXlHd/fG2IcYGKi4dxl46QiIWLg3t5fnFxcH1maHFibXhxamtxd3x8eVxkeYB3aXV4ZoF2Z3SHi42UfHGGaW9+gHlufF1Ycn9tdICLfIJvb4l/cXZod3+Bf4F2fXJ7dYd8enJmc2FujIJsclhrX3dbSW5rTVVUXlRVe2thT1R1clBRVFZeYnSFaVxga2pmY1luYVhicEdBaFxgZl9dVXtdT1VkcFpbamhdV2hgX3Jma2hyZ3Byd4Z4bpWKdH96eH54g4d/dXJ/hoWNgnBwe3h3dXqGhYaMhXp8f3WLfn2GhISHf35+fYd/fHh2eXiRk6B/jH2LbXaAeWODhpaFc5GKb4WFgXqDdGNuallfW11dVGdzZWBZZHFyZoFzYmtlV1tgaX94vq57oLdtYnOGaHN7cXmChXt9jH93eHJ2b3t2ZWpuYId1joFzamJefnh5i4RmcX5oamtaVm93iqOBhH9xmZNxgXl0gm2AgpGHc5WIjIiEiYV9eHRybmh5YGptYG12amdqa3l3endbZ318eGVyfW2EdGV1hYyFlX9vi2ZreoN1bXRiXG98a3V8i3yBZnWHfW1xZ3V+eH5/cn1se3uBenhwZmxibol+bW1Wa2B3VUpqa09RTmhNWXxoYk5VdWpMUFRVXmZ1g2ZdYHBoZ2FXaV1ba2hKRWtaYWRXWVV5WU5WbWpZXWxlXFplY150Zm1kcWdyb3WBeHCZhXZ/fnd/fIWHfXVzgoiAlYJuc3h6enNzhYaIiIN4gX12j398hIqOhIKEe36Lg3t3fHd3mp2XeoqChml3fXxsg4STf3KPgnCFgn6Bf29mbGdXXVtcW1RkcGRfV2JydWl1cGVlYldcXGh/cG9ygHOJZGR4fml0dXNzgoR4gIR5dnN1bmt6cGFna2eGdI2DbmZdX31we4l+aW13ZmlkVVZyb42mfIR7dpaQdHxzfHpte3uQhXaYfIeGgoaDfHRwcmxndFxsaF5sdGRnZml6b3tyWWeAdnVncIB3gXVid4SKfJSAbotqbXqBcWZzZWBtemdzd4p8fmJ1g3Zpa3F0enB6eXN+Zn5/f3l3bmRmYm6GfG1rVmpicFNLaGpPS05wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWVgVmNXYnBdTEtrWGNiVVVVc1ZMWHVkWl9rYVxaY2Vfd2ZtYnBpc25yf3V0moF3f4B3f36FhXp8dYKEfpeFbnJ0fHp0cYSFj4GAeYt1dJF/fIGVjoCFhH1+jIZ7foB2e6OlinmIhoRrdXx6dYOCi3luhXN5hH2Bg3VuamhlVl1bWlpTYm5kW1hhc3tpaG1pYGJXX1tqgGlrb4Bna2FoeXhqc3R0boSBen99dXVuemhqeWpfZW5ogXaPhGdlWGJ3aX6He29pb2dmXVVYb2eOqHeBenyQjnl1b35vcnV5j4B3lXSFgn+Fh3VqcnZnaG5bbGRdbXNfZ2FqeGh7bVptgnJzaW+Afnl3YHeEhHePhHKIcW95gHJjcWlcb3dkcXSIfHhic4BwZ2p4c3JseHd1eGSDe394dnBkY2NufH1rbFVpYmZTS2tnT0dSa0VheGdhTVNxXEpNVFlla3d7ZV5tcWlkXVZgVW5uV0tTaFdmXlhOVWxUSlx5X1tfa11dW2NlYHpobGFvb3Vub3h1eph9d4CBeoB/h4Z6eXqDfoGThHF0dH95dnSFiJB9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSsn396iIiDa3KBeXWAgIFzboZufH9ziYBqb21kZFhfWllaVWJqZ1taXnWCaV5tbFxhVlxcbIFlcXR9aWlda3Z2Z3R3cm2Fe319eXVybHloaXhmXWRzaHp3koFjY1RlcGeChXd3ZmhqYFdWWWdjj6dufneAi456cHB8Znhveo18do5xhH1+f4ZuZHZzZGhoXGtiXW9vW2dfbXVkemhddIBvcmtxe311dWF0hYp6h4eAf3dydX91YXBtWXF0YnFyhXx1ZHJ/bGFsem9qaXt5dnJmhXZ7enVxZWFlbXN+aWxUaV5dVEtyYlBGVmFHYnZnYUtUb1dKTFdYZ2t2emRlbnFmY1pXXVl2ZVVKXGNXaFhZSVdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bm9udoOXeXKBgHx/iIuGfnV1hnmHjH1zdXWCeXp6goyOfX6EiWlzloF6ip19foV6gXp/fIaIc3GProx7e4ePfWVxh3lzfHx1cW6FbHt+bI96YnBvYmVdZVZZWVZjZmtgXVxzhWhYcG5aXldaXGx7YnB2dmxiW2xzc2d1dXBshHl+gHl3bm50ZWl0ZVtndWZ2dpF6X11SZmZrg4J0fWJjaVxUWF1iY4+laHh0goWQeG1ueWd3bXyFe3WIcoB4fHh/aGV2bWBmYF5qX11za1llXW9vYnplW3d7a25ub3d4c3RkcoOSfoeCiHp2b3J9c2J4ZFtvcGFxcYJ8c2ZxgGRebnZpZGd5e3Vub4J1dH1zcWJfZm5vfWRqU2hYWVRNd19RSllYSGJ1ZGFJVG1TSkxaV2lscXtibGxzY2FZWVthdltTTGNdWGlTV0hZYU5HaXVYXmFtW1tfYmJdhWhoYW54eWxvanaBkHhtgn6AgZKIhIF2dIl0jIZzcXd1gnd8fX6Mj4B+k35wd5WDfJmSeYCAeHl+f3SIg3NwmaJ7en+JlHhkdYh4c3h1a3Nufmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYllU3JuW1pYWGBsdmNpdWpqXlptc3Fsc3NzaoV8fn98dm5ubGRpcWNbanJkdHaOc1tXU2VhcoB/coJdYmNdU1pgW2ORnmVycYWEkXRsanptb3B7fHxxgHd/cnp5eWRldWhdYlpgZ1tedmhXYl1waGF3YFt7dmppcm53c3J0aHCBlIKGfoR2cmpwfW1md1dca21icXOBenNmb35bYG9xYl9qcX5sbHV+c3F4a3BhXGVsbHphZ1NnVVdSUHVbUU9ZUkljdGJgR1VqUElQWlVra2t8ZW1vcWFbWlhZbHBXU09mV1dpU1RGWlxPSHJ1WF9jbWNYYGBhXYtqY2RteXhrb2l1eYZ7a4N9f4SZfIKEeX2Ibo+GcW93en10goJ8i4+Dgpd0d4KThYGfiXWAgIFzf4Jxh4J1b6KXdHuGi4Z7ZXeKbm57b2Z3cHpsc3ZyjGtedG5hZ2VrUl1bVWdhbGxaXHCMZE9vbl1WWFVnanRnYnRlZV1ZbnRucHV1eWuHfH98iHaPc2Rka25hXG5tY3N4h2taVFZjZHh9fXGFXGNfY1RaYFljlZVjbnCDhYpzamh7b2Zzd3N8bHp0dW95fnVeZnJjW15WYWRZYXRlVV9gbWRhcV1dfnBoaXNxc3B0dWpthJOBiHuFcXJmbn1wcm9UW2ZqZnF0gXdzYmx2VWJxaltfb2Z9Zm13fXNzc2ptYFpkamp3XmZUZFVWUFRtV1FWU1BIZHNfYUZYaU5IV1RWbWhkfGlreGtiV1xVW3RkU1JXaFFZZlRTSFpaUE14d1tfZWxpWWJgXl6PbmJma3l1bm9odnZ/f2yDf32Gl3t/iIGKfmuTiHJndIB7dYCDfYiOf4uTcnyKkYWHn4Z7f4aMc4GGc32Ddm6ljHOBjYt2d216jGBkfHBmeHJ5bG1xdoJnZHtsY2ZnaFNfXlVnX2xvW15ujWhOaW1gVFZTb2dzbGZ3ZGVdWHB0bHJ6d3JtiHt/dpx6eWthZWxtXmBvamVweH5nWlZYYGx4fHtwg19iXmdWWF9XZJuIYmtxgYd9d2treW1cd3Fseml2c25ve4ByWGpuX1ldVWJjWGRxYlNeYWhiYmxaYH5sZmtzdW5td3ZraIWLfoh6iG1xZXB9bXJtY1lhaGlvdIF0cl5pbFJlcWRUYm5iemNxd3t2a3Bta19YYWdodFxlVmFWU05YZVJPXE9PSGVwXWNGWWlNSV9LWG1kX3hobn5kYFReVF11XFRTYGZOXWFUU0pcWVBZdXZdX2ZtaFhjYVtejnBjZ2p3cXNuZ3Z0eoNygYJ5iI1+fIqIjnpukIp0bHOCdH9/iIWGkYSVj3l+jI+HkZuEgHyMhHKAgXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjI2MjI2MjY2NjY2Njo6Pj4+Ojo6NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCTqWvra2trrB/a25ubm5xSiwwMC8vLEmFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTNBqba0tLS0t3xlaGdnZ2s9Gh0dHBwYO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmHh4iIiIeOkJCQkJCQjIeHh4eGh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaPkJCQkJCRi4qKioqJioaDg4OCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkZKRiYeOipCSk5CKkY6OjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyLi4yMjIyNjY2NjY2NjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoeKiYmOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCPhouNiZCJi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+JiIyJj4eNj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aJjIiNho+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2Ni42Ljo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fH1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fn9/fn59fX9/f39+fn+AgIB/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJSUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJWVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f35+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9+fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyNjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt9fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhJR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2hoZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN2eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1LS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUVZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0pISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUVAPjo7Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkNGRkRHSUhDP0A/QEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgICAf4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs9Ozc4Ozw+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1c3F0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5Nzo6QD84Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09Pz8+PT1qaT49PT08PDw8Ozw6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEtJSUlJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQj89P0JERD8+PT4+QEA8SnhzTD1DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZFSj88O1JvbWdleHNIODw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUdISEhKSUpLSkpOTElJX3BxcnJydHV2ent9fXx+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIF2TU5OTU5OTExOUE5MPkE8PD0/PkJDPz9BQUFCQE16Yz1XgYWGhoJ5ckY4ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISEpKSkxKRkZncG9xcXR2dXd7fH19fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXtOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkM/Vnd7Z32DgoN+gn52Rz09Pz49PkNEPzs8PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcG9xdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkVDRUBXdXR/gX2Cg3mBhXJEQEBDQEA/QEA+PTw9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQE50cn59eIKFgYOGXz1DQ0VAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTUpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWZ3gIGBhIWHhoiES0NFRENXdYaJin5YR0hKTExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIRkhJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHWHOBhIWFg4WIiI1lP0FWdIeJh4eGh4JXSUxNTE1NTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExKWIKFhoSBgoaIinxUbIWHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpjhoaGg4GDgoSEg4OFhYSEhYaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSmyHhoSBg4aAgYKDg4SFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT48PD1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaIaDgX+Ag4SEhIODhIaJiouLi4qJiouMiVQ6ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0VyhYCAgYKDg4SDg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo6Ojw4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT1BSV2txcnR0dXd5e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I5RoCEgIOEhYSEhISGiYqKiIeHiImKioyKiYmMej45ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8Ozk6PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz1UhYOCg4WGhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPz9BPT48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUJBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQl2Hg4OFhoWFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZFRkZEQEI/PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFARERFYYeDg4WFhoaGiImJiIeGhoaHiYqKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkNISEpfhYKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExNS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/f359fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4ODw7PD06P0A+QEBDRkpKUGeDg4WEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEdFSkhESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6PDg9Pjs9QT4/QEVJS01Wc4ODhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMi4uLi4teUVFQTU5NS0pHRkNHSkdMSkZLT0xLSkpNTUxPUE5ISUtMT1FQUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxvcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBSExNUVd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVVJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0ZWTkZPUVFVWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOzpRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFBRS0xLR0hJSEVGSUhJSElqcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f4CAgICAf39/gIB/f39+flRISklJR0dGRT8/QUFFQkNHRURFTFhSTVRWVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A+QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFlnUlVWWFVUVlRPT01KTEpJSUxNS09NU29zdnh5eHd5eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3lucFhaW1pSU1JWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWVhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH+AgICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWFNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3F5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUFFNS1JUUk1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSVFVaXG1ydnZ1c3N3e3p6e3t9e319fX59fX1+fX5/f3+AgIB/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlQSEZPRkRFRkhHSEJDSEdISkdDQkFEQE9QTVJkc3V2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojs+QEA/Pz5rUEthRUZISUVCP0dMTkdNUVVJQkU/Pjw9PD09Pz0/QUNCPz48PUI+Sk1GVW51dXVzdHZ4e3x6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqamZgW1FSWlxZXklKUFFOS0xRUlFUVlRXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFEQltcT3tOT09OS0xNT09RTEtMV01IR0BBPDk3NzU5OT07Ozs4OTg5PztBSD9cdHV1dnV2d3l8fHx9fHx9fX1+fH59fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZETFFPYVdSWFFQU1NSVVtPT1FWUE1KQ0Y+Ojk2NDg2OTc5OjM2Njc5NjxCPWZ0dXZ3d3l5e319fHx7fH19fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFJMWFlaVlhYVlhZXVdXWGhza11WYXNrYWFfXWRgX15ZVVBNT05MSUhKS0lIRkNQT1NaV1RUTVFTWVNcZVVPU1RSTktJSEM/QTk5ODg5Nzg4NDc1Nzg1ODlHbnN1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZX1tWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KTk9VU1RcVlJVU1JOTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3eXp7fH19fX58fX18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9KSE9QT09NUkpPUFBQTk5PVExNSVBPU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTUlMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVCRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFQUVBRTlFPUE9MSkxMT1BOTlBRUU5RT0pMTU1LR0VFREI7PT08OT1HNjY3N0RucXV3enx7fHx9fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MRUdDT1JDOEVOU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FNT05NSU1MSUtMTEtHRkZFRDxBQT47QEU7PDg5VHFydXl7e3t9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E/PD1BQEI9PkVIR0RGRklHS0pARkFBQEZIRUpPSFFSYVxRUFJOU09PT0xMT01LTUxNT05bV0tNUU9ISkhDSUtNTEpGRkZFP0JDPjxCRj9CP0FkcXV4e3p7e3x7enp3fHd5fX57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0FBR0lETU9hZVFNT05XS0xNS0xNTUxMS05OU2RNSkxSSUlJRUFIS01NTktHSUZCQUJAP0VGRUhES29wd3p5eXt7ent6d3R4dXh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPSEtFP0I9OTk5Oj9CPzxBQkJBRERHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUTEpJTVRGSUlKTEpLS0lJTE1PUFJQS0dDS0dDQkpKTE1PTklKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW9rbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0NGSEhHSktJSktER0I9Pj06Ojo7QUI/PUJDQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNUEdIS0ZIS0RISUtNSEpMSEhKTEtNXVJJSERNRkJFS0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLQ0ZFR0RFRUZFR0JDQD48PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGQ0I7QkNDPj9DQ0NFR0xOSEtOSERIRUlNTk1HSUxHRUZJSUxOS0pIRU5IQ0dNTE5NUE1OTk1MSUhKT1JRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUZFQkNCRUBEQj4/Pjo7Oz06PT9DQT9BQ0ZHSkdJSUxIR0dHRkVDQD1FRUI+QUNDQ0VHSElHTVBJRkZHS05PS0ZISUZFRERJSUhLSUdIUEtESk1MUE5QTk9PTkpKSU1SVVRST1dkYWFtZ3Byb3N5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPUJBPkE9Ojo9Pzo+P0BCP0BCRUdKRkpHSUhGRkdFQ0JBQUZGQ0JCQkRFREdHSEZMUUxJT0pKTEtJR0hFRkVEQ0lISEtKSEtSTUNPT05RUFBPTk9PTEtLUFVXVlVTWGBeXWlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmtrc01GRkVIQkJBREQ8QUFAQzw4OT0+Oj88P0I/QEBERkhFSEZGR0ZFRURDRUNESUZDRkVCRUdFRUZHRUpNS0hRTUpLSEhJRUZJSEVDSUlKS01LUFNORFFTUVFST1BNTlBNTE5TV1ZXWFZYXltdZGBoYmppZ2tfZWVnY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUhHR0hCQkJGRTxAQ0JEPDc6PT47PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkdKRUVJR0NHSEZIRkVDRkpKR01KTEtJSkxGSUhLSEVLS0xNTk9TVE9JU1VUUVRQUU1OUU5NUVdaVlpZVlpeWlhhYGBgXmhlY2BkZWhnamhoamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dnhwbHVwbXN1bm9zc3lOSUhHSURBQ0hFPEBFQ0U9ODo+Pj49PUFCPT8+QUJGQ0VCQ0dEQ0VFRkdHR0lGSEpIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMSk1LSU5MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZXF9fXmBjXVxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJodXFrcnRscXdxdU1JS0hKRUJFR0U8QEdEREA5PD5AQD8/QkI8QD5BQUZDRURDSERGREdFSEhGSEdJS0pGSkhIS0hGRkxISEhKR0xMTExMSU1LTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW1xeYF9hYGJkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd292SktMSkxHQkVERTxARkREQjs/P0FBQUBEQUBCP0FDSEJFREZHRUlFRkRJSEZJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOT05PTE9QUlVYVk1OVFZVU1JRUExOVFNSV1teXl9dXWBgYWFhYGJkZWJjaWJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3BzdnR1dXd2dXV1ZXFza3BxanJ2b3dKTUxMTUdEQ0FEPD9FRUVDPUFBQ0JBQ0VBQ0RBQUVHQ0hHSEdFSkZDR0pHR0pGSUxISUpNSk1MR0tJSExLTlFLUlFMU01LTk5PUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZWFhY2luaGJpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTEtMR0RBQEQ+PkRFRkNAQ0FFRERGQ0JFR0NCSUZDSEpKSElLRkRLSkdISUlJS0dKSk9LTkxJTEhKTUtaZkpkXEtsUkhPTl9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENDQkVFRUZCRkZHQ0RKRUVKTExKTE1HR01KSEpKSEtKSUtKTkxNTUxMSUxNTFtzYmRwXmxsVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9ccHVncE1Kcnl2a2Jga2VlbXhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnR0Ym11a3BwbHJycXpLTElJR0VEQEFCPz1CRkdCRkNFREVFRENISEdERUtHR0xNTUpNTUZKTkhJS0pJTEpKSktNTU5OTU1LTk1NW3Jvb25wcGxrTlBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhwY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9P0BGR0JHRElFRURCRklISEVHS0pHTU1OS01OSExOSUxLSUpNSUtJSktPUE9OTUxOTUxcaGR1XWxxV2xOT1FtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR3SU1HSURFRENBQjxCQEJGREdGTEhFQ0NIS0hIRkpMTEZNS0xSUkxHTU1ITkpJSE5ISkpJSE5PTU5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2diYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQkdDSElNSUZDRkpMSUdGSk1MRk5KS1dSS0dLSkpOSUhKTElLSklISkxNTU1JS0tLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYG1oXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFydXR3c0hIRklERURGQUBBRURER0JISkxIRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpKS0tJSElHS0tLS0ZISkpMTExLSUtMTlRbXFRQVE1QT05PT1ZRT09RT09RSkpPUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eHh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0lQS0xPS0xXTUlFRUhJSkhJS0lMSkhGSEdKR0dJRUZMSElLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1BQ0RCRElFR0dGS0pLSEVFSkpKRkVISFBKTE1KTVNJSEVBSEZKSUtLSUxKSUZFSkhFRkdFRUpHQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjYFlfYltgXltUWFhaX15kYmJhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNGR0VHR0lKSklJREZLS0tFRkhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUFGSkRASktJT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmJiY2NlWlJZVlVcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJTERDS0tOTUxMSEpKSEpHP0dGTkpLS0xLS0tJR0hEREBEQUhJQT9JSkdPXWFaW2RdX1RRUlddXFxcX1pLV1xMUlxZSU1eUFBdX2FjY2NjYlxkY2JkY2ZYUVVUU1xYW2FfXl5hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGRkhHR0pGRkZJTEpORUNLSkxOSkxJS0pISUdCSEhRTUtLT0xLS0lIR0VEP0RCSEhBQUdGRFRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJgYGJiYGNiYmRkYlhPUVFSW1NcXl1dXV9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENRSkZISEhFRktKTVBFR0lKS05MTElMS0lJR0RIS1FPTUxQTE1LS0hJQ0VARENIR0JBRkVCVlVFXFReU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJcYGBfYmNiXWJiV19fVFBPUFFYUl1cW1xeX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNQRFZeSUdHSERGTUpQUEZKSUpLTkxLS0xLSkpHRUpNUVFOT1BNTkxOSEtBREBCQ0ZEQ0FERUFMSENMTFBPT0xGTUZHSUpIR0xMTU9RSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUFVUXFlZWl5eYWFlZmNoZGtscHNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXkxHR1hNSEhKSEdOTFFRSUxLS0tOTlVOT0tLTEdHS1BTU05QT05PTk9IS0VgRENfTERmY0RNW0heXHNtT01WbVlMQ1BgVWxXZ0pdWFZeRExRVUxNVFZRUlRYV1RYVVRcVFBmWmhoZFlUa1RXVlVbXFxgYGFiYmJgZmhmbmxocnp8fX6BhISEg4ODg4F9fHpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USUtHYVRISk9KSU9NUlFLTUtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzWFBtSHFub2FWUHFxc1BCa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlaX1ZVV39qdHV1X2F2X1hiXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4SCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdJTEZSVkxLT0lLUlhXUU5PT0xRVE5PUVBLTE9HTVBSWlpUUVFPUFBQSkhaeF1UeGRoWVJUUXZndGxwYm5ma1FyT013bWpycHNycXJwb3CAXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zc3x9b355b39yYGBgYmJaYWBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQT01NSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dQVFBQUFFLR2Z4bGN4cW1aSkxVeXB1bXVibnZQZGVJZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGdvWHZ2anZ1cIBhc2h9aWx4fG9fX19jYlteY2RnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3Z6bnx9eXhybk5KU3ROREJFUFBJS0tKTFBPT09NUFpgWlhLVFdQYV5SVlFZU01QSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRoYVZuTHFwXkZoeVd2VExoeH14YHl7c25hXm1vZFJncnVubXlwd2x2c3RxbG1cc356a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX5ucXBqe3p0cm9tS0tbVkhHRUdSUEpMTUtMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZVV2xPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobW1yfGttaGt7dG1ta21PR0pLSEpISFJRTE5QTUxUU1JPU1NXUlZUUFdaVlZUVFRhYFFPTktUU1NRVVZOTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRT1BVVFhYWFtbVVNTV1tXWFdaT1NVV1dYUV1YVl1VU09YUldXV1haYFtncl5bXFtdXV9jWl9jY2VmZGNjYlljY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKVFJNUVFQTFZWVFBUVVhVWVVSWl1WVVRXVVlYUE9MTldUUU5VU05QTUxRUEtKUVJLUU1LS09SVFJRUVNTSUhNTk9RUlFRUVRWUlhXXFdTU1FSVVVWU1pRTlNSWFVUWVZUWVVTUlVTVFVYWVdeWl9hXVxbWlxcYGNcXWJjZGdlZGRhWWBhY2FiaWhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkZGZoUEpLTE9PTE1UUU9UUVFNWFdVVFVXV1daVlRcYFZXVllVWFRRUEtPWFNQTlVQTlFOS1NQTU9VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1RPVFVYVVRZVVdZVFJSV1VVV1xZW2BeVllfXV5dXF1hYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2FQS01MUFFMT1RQUFNRT1FaWVhXWFpaWFhWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFQUlhUUlFPTU9TVU5XUlRVVU9OTlFTVVVUVFJUWFZaXVxaVlZRUldYVltbV1FUVlZVVllUV1dUUlJYVlVaX1peYF9WXl1eYFxcYGBfX1piYmRoaGVkYlliYGJeX2ZkZGBiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUVdTU1NYTU9QUlRYVVVVU1VZWFteXVtbVlJPVVdWW1xXUVRXVVdYVlRYWlRTUVlXVlxeW19fYFVhXGBhXWBiX1xgXWNhY2dpZGZgWmNgYV9fZWVfYGNbWlxbXFlaWVlXXFlcW2BeX1teXmFgX2JcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSTFFUU1laV1VPUk5TWFZUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVlZcXFZSVFZWWFlTVFlcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1bYFxgVVxdaWpyfXNsZ1xVWVdRT1JbU1JRVFJUVVRLUlZVW1laU09TUlZWVVNPVlJTWlJUVVRYXFdYWFNYXFheXVlbXlVVTlZXV15bWFFVVVhYWFVXWVtUU1ZdWV1dYV5jY15ZYFtlYl9kZF5eY2NhXWVmaWRmXl5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWVteVl5ZXVBPT1JaUFpVVVdWU1RUXl5gXl5iXGBVXV5ia3l0bH1sWlVaVVFRU1xUVVRVVFZZV0xSWlZdW1xST1VTWFZWU1BYUlNXU1dWVltdWFtZVVpeWF9eWVxaUldSWVhZX1pZU1RWWllaVlhZXFZVWl1cXmBhX2VkXV5dXWVhYmZkXl9kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVpYVl1aXV5bWltcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFdXV1ZWV11YUFVcWV5dXVRTWFJYVlNSVFhSU1ZTWVhYXV5YXVtVXl9YX19YXFZSWVRZWlpgWFtUVlhbWlpYWVpaWFZdXl9eY2JhZWVdYlxgZmJkZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVpbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlNcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFlcWlZYVVdbWllcWVhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdbWlxfXlpfXFZfX1pdXlleVlNZV1laXWJZXVVWW1xbXFtbWVtZWV5fYGBkYmNlZWJkWmJmY2dmZV5hY2BjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1daWFdcW1xgXVZdXVNQVlpWVlpVWVVYV1hdX2JhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xTVllQVlZWVlZWVFZUWFxcX2BgXWBdV2BeW15cW15YVlhYW1tfX1teV1hdXF1eXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNhYGVjXWZpZGVpX2ZeY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFkYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBYV1hYWFdWV1ZdXV5gYWFfYl5ZYV1dXlldXllYVldbXGBfXV9ZWV5dXl5hXVtaWVxfYV9iZGRlZmdnYlpkZmdpZ2NfY15hZmVaaGljZmljZV5iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWFddXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FiXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNhUlxZT1hXWVtaWVhaWWBdYGJiYGFjX1xiXV9dW19eWllVWF1dX2BfX1taXl5gYmNcW1dbXWBiYmNlZGdmZWdkXGVmaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hPWFpdYWNmZnJrf0pZV11aWl9dXF5cWF1cXl9hY2JhYV1iW2JkYV9jY2JdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGFUX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxeXl9aWFZbX11cYWFfXVtgYWJlYl9dU1xfYGNkZGZlZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3p6ent7e3t7e3p7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3p6ent6enp6e3p7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIjbG1tLS0s7O7vr6+vr7BoYqMjIyMjYl+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIuRu8C/wMC/v8nMzMzMzM+qjZCQkJCSi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEg4GCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5eXp6endvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2AgYGBgYCAgYKDg4ODg398fHx9fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV5dnZ2ent4e3h3dnh7d3p5en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3p6enp6eXp5eXl5enp6e3x7e3x8e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx6fHt5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHt5e3h8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d6e3l7d3x5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en17eXx4fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h5eXl5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4OBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnJxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbW1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgYOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4GGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f4B+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fn17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioaGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/gICAgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gIB/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4KCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn1/f35/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSkpCLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCBg4GChIWFhYaGh4aFhoaHh4eGhoaHh4aFhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WEgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSDg4ODgYOEhYSEhYWEg4KEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGGjYKCgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/f4CBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSEhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYKBgoKBgo+bhYB/gICAfoCCgYCBgoODgH9/f4CAgH+AgIGAgoOCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIKDgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgoGAf3+FlpuIhIKEgoF/gIKBgoKBgoSCgYGBgYKDgoKCg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkZGRjo2Mh4WEg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4SEg4GAgoOKiIaAfX19e3+XnImDhYSEhIKBgIGCg4KChISDgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhISFhISEg4SDg4SRlJOSko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgICGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+AhpmQhn1+fn6Hfo2chYGCgIGCgoGAgoKCgoKCg4OCgoGCg4WDg4ODg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYSFhYSDg4ODhIOChpSUkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH5+f36Gnp2GgImAf4eBgIyCgYOBgICBgoSDgYGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCgoOCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIOaoYiFiYODgYB9gYSDhIODg4OCgICAgoKDg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhISDhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZCdhIKChId+fn19hIWFhIWEf319fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDhoyCgH+AhYB9fXuCh4aDgH9+fn5/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4KAf4SNhH99fYCGgX9/gIB/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoeGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgICBhYSDg4F/gIB/f3+AgICAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4F/gIOFg4GCgoKCgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgYGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODg4KDhISEgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYSDg4WDg4SDgoKCg4F+fX1+fn5+fn18fn19fYOHiYqKh4eFhoeHh4eIh4eJh4iGiIeGiYiDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4WCgYGBgYGDg4SDhJGSkY6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhYCChIODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4OEhYOCg4GCg4OEhYSHkpGPjZCMiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4GAgIGDg4ODg4KCf319f4CAgX99fn59fH19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn6AgoODgoODg4J9fX5+gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf3+AgYF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH99f359foCDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gIB/fn9+fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7f39+f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp5eXl9gH+AgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf3+Af4GAfn9/gH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f3+Af4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoB+fn19fX5+gH19fX19fX19fXt6eXl5eXmAgoKChIOAgoOBf4GAgYGBg4KCg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f359fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f4CAgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCg4GBgYGEg4KDgoKCgoCBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf39/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCCg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GDhYWGhoSDhYWDhYSDg4SDhISEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4SFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHyAgYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgIGCgYKAgYGBgH+Lk4+Mi42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX19fXx8fYB/gIB+gH5+gZORjIyNjo6KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoCBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY6MjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgYGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIyPjYuKhoSFhISEg4ODgoKCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fICDfYx+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42Mi4iEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9e317f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYeGh4aBhJGOjIuKi4eHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn56fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9en1+fn+AgIOHiYmJi4mLiYWIkY2LiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx8fHx8f4B/f39/f4CAf35/fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgX9+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnt9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiY2Rjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCAgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4ODhIeJioiJjpCNi4iIhYSEgoGCgoKCgoKBgoKCgoGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Ign9+gpCEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f3x9fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/fn5+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYGBgYCAgYKCgoKFhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1/f4CAfX5/hIB+fn99fn19ioV9fn59fn6Af319fHx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYKCgYGCgoKCgYGBg4ODgoWGhIOAgICAg4F/gIGDgX5+gH9+foB+fX5+gIB/gX5/gH9+f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fomGhoWFh4WEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dXSAgIKCgoKCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgYGAgICCgX5+gH+BgH+AgIB/fn19fX18fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX5/fn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f36Af359e3p7enx7eoKEf4OCgoKDgoSCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Bg4F/gIOCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf35/gYB+gYKCg4GBg4OCg4KEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhYSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfX9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgYOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgYSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF+fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9/gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN3dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398fn9/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgIB/foCBfn+AgoGAgYSChIWGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH99fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn59f4F+foCCgX+Cg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4F8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhIOCgoSCgYGCgYCCgYCBf35+fn6Afn1+fH+AgIB/gIF/e4B+gIB/gYCAf32Afn5+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/g35+gICBf4GDgoODhoSAgX58fXx8e3x4eHt4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59gICBgH+AgYB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af319foCCf36AgH9+gYSCgoOFhYKCfn18e3t8fHl3fHl3eHd3eHt7e3t8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6enp4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f39+fnx9f4CAgIB/f39+fn18fn9/f399fX9/fX5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn6AgX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9e3x9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GBf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f3+Af39/f4B/gICAgIB/gICBgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH19fn5+fXx6fHx7fX17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgICBgH5+f3+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59f4B/f39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CBgX+AgYB/gYCBgYOCgICAgICAfX6AfYCDgnt+fnt7fXt6fHt7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBgICAgH+BgICBgYGBgIGAgIB/f4B+f31+fX5+e318fXx8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX6Af4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYGCg4B/goGEg4OEgYGDgYKCgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCf3+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fH19fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYB/goGBgYKDgoKDgYODgoGAgYB/gIR9fX17f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgYGCgoCBgICAgoKBhIB+gYOCf36Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4J/f4GEhIGDf4KCgYOBgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhIWEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3x6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GCgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX16fHx9fXx6e35+foB/f4GBgICAgICBgYCAf319fHx9fHZydnh5dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICDhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHyAgX98fH16ent9gH5/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgYSFhYKCg4OEgoOCg4KDgX6AgIKCg4KDg4OEgoKCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgIKEhIWDgoKDg4OBhIOBg4OEg4OEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhYB+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODhoKDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CCgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISEhISFg4eGhoSEhISFhIWEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgX99fn5+foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhIOFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgIJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgYR+g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9gH99gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KChIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3x/fXyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgX+Afn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WEhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fH99f39+fYCBg4OAgoOBgYSBgX+BgYB9f3+Bfn9+fX+BgH5+gYKAgIGEh4aDg4aEhYWGh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYqIhoSGhoWFg4WFhIaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX16fXt8fX1/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYaHh4iGhIaFh4aGhYSFhYSFhYaJioeFhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhoaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WDhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99f4B+foB/fX18gH1+f35+fn98fX1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e31+fXt8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFhoeFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYSGhoaFhoSGhYaHhYWGhoWEg4SEg4SHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fXx8fH18fn17fIF/fXx9fH18fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoWHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhYWHhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4eHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4SDg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e318e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYiKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaEhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgoKCgIOFgoN+gYGBf4OBf35+f31+fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2AfHt7e3t8e4mHhIaEhoSGhoWEhYWFhISDhIKAg4GFgoGCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIiHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4OCgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYWGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeGh4iJhoWIh4iHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYaGh4SGhoeGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnt7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfoCCgn1+f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYSFhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSFhoSHhoWFhYaDhIWEhYaFhoSDhISFg4WFgYCDg39+f4B/f4CDf3yAfX1/gn6AgX5+gX5+fn19f3t/fHt6eXp6eXp6fHl6enp7e3x6e3t7fH1+fX2AfX18fH2Af318hoOGhoaGhoOEg4WChYGBgH9/gH9+f4CBfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aFhYaHhYeGhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCfn5+f35+f4R+e398fICBfYGAfX2DfH5+fX1+e358e3p5e3p5enp7eXp6ent7fHp7fHx7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4F8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBg4GDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSCg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn99f4J8f399fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3t+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt9fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fb29vb29vb29vb29vb29jW19fX19fX19bW1tbW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0j4yMjIyMjIyMjIyMjImiv7y9vb29vb29vb29vrSKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFpVVlZWVlZWVlZWVlZSfK6qqqqqqqqqqqqqqqybU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/ODw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpZ5fWVpaWlpaWlpaWlpaVoCvq6urq6urq6urq6uunVhXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqjaGRlZWVlZWVlZWRkZGGGsq+vr6+vr6+vr6+vsaFiYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzMzMzLz9PT0tLS0tLS0tLS09PRzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7O0NTSz8/Q1NLPz8/T0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19bX19fX19bW1tbW1tXV1tXW1tbW1tbW1tfW1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Oz8qWpdHRyJSn0tHHkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8+cqp2t0ZmsnLDRmayastLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DLlIiancSUiJyexJKGnZzOz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0b3ImZnCv8mYmMW8yZeZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Sl5SfzNKUlp/O0ZKZoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Ts5vEmNmvn8Kb2q2jv53V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0c6NkJ7DzouTnsfLiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHL2qiZr8/bpZmz0NuimbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Nzk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJjqWaoKuRp5mgrZComJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HKu6Gmp5+xpKSooK+noqmc0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09OekI221pyRjrrVmpGOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0rrE1dPTucfW09O4yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLV1NLS0tXU09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSkJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnp6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipKmnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6mnqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6KvqqqsqKirsKmoqqihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustq+zsKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYW1odWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW2vLy+vLy+xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb21ocXhveWppYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbDxMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3lmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDw8HEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMnIyMnHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBzsPKysjGzMrNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVvdGJdYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBwsO/v77Ey8jKy8m6ztPIyM3Iw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnZGplYWptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDubi5u77Bx8HFw9OJqc/ExMHEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e9xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmdjW1paXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9wLm+urq0wLi1t7Ouuru2vsy2hJ7SvL/BvLvEvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+urW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vsvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCnoaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmJnamdmaWVpXVZWVFlPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLewrre1uL/Pm4GKtcG6w7W6x7i2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGhoqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2hYWE5LS0tSSUxIQzk9OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7i0rbiytr3FxYeBgJ/Evse3ubitt7W4urS4s7vFxsvBvMbAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz89PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2kr7G2urG9vrvEtrecfneCdISTwax7gYKcycbPwsC4rrW1vL64urK+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG54Y2diW2NRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuro7C71Nq7ur68xrKdd2NsZFBbYX2PeoWGmcvO0czKxLW6wMPIv761v8G/xsa/y8bDv8G8wMPMysfFxsC5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPEFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLGzxKKy27+8vbp9ZG9gYHNbVFVYbHyGiJvIyMzLzcrGwsTLzsK8ub25ucDDv8jGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLW8t8Fvb7DNwbR6WkpkY0twfm5gUVl4gougxcLHy8jBw8HAycrCwLu6sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKyr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7/HfW92pL+bVVJPg2dPXHyBg2xGa4KQrMO9v8bAucC8vsXEvb25srCuuLe/w8fDxLy9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pW19fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnHyIJ/bn+lc1FMYpVfUVFVjpZ2TmWLnK64uLjCurO7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9mXVpUSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa4x8iKg3h0jWFMYopxXE9WZLC6d1ZQfq+wsrG3vrmytbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZxbF9jYVtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8PDkYh/f3lWUY6Ua21WZXBnlH5xbV6HvLOwtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZlhcXVJOTUE+SUJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i5w6KQiZB+Sl6Yw3SBipBddnxpanSKtLu1sbS1srSvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1sruvlJCdlkxijZR2cIB6Y2psc356c566ubK0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+ytKadqo5XgW9ualxoX11WWV5nY2mAl7iyrbOvrqyutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6aim6OclZCMj4+Qk5CXlZaYn56empiml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR1BNTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6WsqbHAt69oeHhrc2hZXlBKSEpMUU9aa26itqqytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mao5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01KSEdPUk1KTkc8RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqKGlxMOOYGVjcmNUTEZdSVBGTUtLU15dfLavr7O1qqesq6KcmZSOkZaXmJmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHl5YGJSVWBJSUpLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6Xn6WenbmxhXpnamNWSFBejntsU0tHR05UVGSrsrCwuKymoZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKxtKqyr6KZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk9VTFNMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpyim56jp5p9bF1UTElVg6qxn2hQRkNDR01elLCtrK+nn56ioJeRk5ugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqShoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFJVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKZnpuhoaGGbmBVUE5PXKvg2rqPdWJTSEJNi5maq6qppJ+fmZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+nqKWkn52qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JXTkpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKSgdFlST1JSXXW40rqgqbmehHmJrsSjqK2pqqWfnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqztK+zrqqvo52rp7axraKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHFra3VycGhXW1FFVEhESlBJP0VBNEZIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfn5qgnGZQSU5QXXWNsr2ph6Lc1s7U2ci0rqejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcfN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsHGvrq0urq0u7ewtbKqurKuu7e/u7qqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrZGhveGpkWltGS0xFRFNMREJFNzo/OzU0OTk3OD4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaKdnJRdS0VMU3WFs7akkonF49zRxLWmn5mcm56emZeXl5KMjpeXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxczQ0tXO08m9wL/Du8bFyMXR1M3T0NPTzMrCxsbHysjOv8jRzMfFx8XBvMPBvr++tb6zrr+/wsPHxMfErr+4sri8w8HBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOfnJ6WY0pJTVx+qtHQtqCz08y6r6iin52fmpiWlJKUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LV1tPTyMzHzM3J0s3O083FyMnKwcbLx8jJxr/Ds7PIxMvKy8/Gyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2gpXddZ2iDsNLa2tbKurKqo56dnaGloJ2alJSVlIl8d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLW1tnV19PW2M7Sys/RzM7QzNLPv8jHysPMzMzOz8XGx7a/yr/RzcvPxsnIv8PDyM7Mz9DPzcrHzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKR0FFSEk+O0E4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoaqJgZKvztTZ2s+8r6iblpignJuhop+bnJmViXdpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV19fX09bP1dTa1NTOz9XU1NHRzNDN09fW09XQz9LT0cnT0cjQ2NfY0djS19nV1szPz8rN0svO0MDGwsfFzs3R0dHIzM3AyszF087LzsjEysfGyMzK09PR1c/SzNPBucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaaVe5OSxdbS1cKtpqGYlZeZmp2gnpmcnZJ9cWVjY19fYV9fYWBfYGBfYGZucHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHF0dTK0NTV1s7S0NjY2NfLyM7Eyc/MyszAyb/Hyc3Oz8vQzc7Mzs/Iy9DQys7KwsnHyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1XRTtAPTMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsrammdml/lNPWzbCcm5aVl5uenp+dlJaYlIhrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Hzs3N1MzO083L19bQzNHUy8zQ0tPKztHV0tXVysDJwcXMwsjJwszDxcjKys/KzczQzdPLxsjPzcjHy8XGwcXKy8zP0cbQzs3NzM/Fx8G4ub3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV5cHFrbWdgYHBoWFhoVkxGTElQUEI7Qz47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKihqGRvfKjZ0KqVjo2YlpGTkpGWlpaQi3xlYWJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svQz8W6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL7Ax8vLy87Cy8vIx8vQxMXIu8fDycjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7utppxeb3e60KuQjo6XkIeEhISCfoWFf3NgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLLycHCzNDFy8i/ucG7xse+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xry8wMPEy8XFu8DKwsXH0sXByb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZujoJuUe3ZzdGZpWmFubFpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjAtMO+srKNYHKBv7CQi5OXh3uBhYaAdnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsba6srKzsrHCvLy8urjBwcLFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDv7zBzcPGvb21wb3Dur3Gu8K6s7zFxMHCtr+2tb2/usvDvLW6yLq/vsvEwcbCxsnGyMbQxsLMx7LHycPOzcHFw8C9s7ewsqeoqLmwpa2wqq2slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztHKysrHzc3O0cjQxtXU1tfNys/FycXHwLjFvauvfmR1kLWSjImLhXmBh4eAfoR8dHRjW1xdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLW3tLOztLy2vbG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bBwry4vcbBw7u1rrK2ur+0xLe7tau4vb3AvbG6tq+2urPFvLeuu7+1t7TFvL7DxcDDxcbIy8XAxsa7yMu/z8rHw8bCw7fDvb22ub7Hv6y1urW3to55dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTQzdLPzcXHwcXAvri3ybWpsIJtcZeajYaJint5foaGd3iCfXRpXl1dXV9gX2BkYV5kZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7i4tbCrrKeeoqqnnquts62prKm0r7ewsqmupqyyvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLLAtri9sLCnsrO1u7yrrrWlrrWvu7Kwqbmwrbuuu7i7wMC9ucK/x8PFwbzGwsjLuMXHxb/Gw8O6xMbCu8bJzMuzucK8u7OIc3Z2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx83Bw8a/xMTDw8rBycq+v7zAurKztMOuqa6GaGSKkoiOkHx4foqFenuEgXduXl1cXV1fYF9fZGNiY2NiYF9dW1taWl1aWlpaXGRub2hmZ2lrbnKBrbmwta6mpaenmqCloZqcpauupKiirKqsqrCjpp+qrbW2sb25r7evqa64tLS8uLS8r7e5tbK7wbLArqWpoquxsrOovaqrqKusrbSzpqiuoaSvqbKmp6iupqi3rLGyt7q6u7K8vb6+xL+1wsHHyLe/wMW3xMK/u7/Ewr7EyMzKv77EwMCph3N0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HLvrvJtr3DvrrJt8HDwbS1u7WwrrS7rainh19xjoOIi4B7foB+eHR/fHN3ZV9dXFxeX2BeX2NjYWJgYF9dXVxaWFpbW1lYWlxfZmtmZWdlaWtvcoWqpayloJyipZSepZuYkaGjqqSin6alqKWtoJ2cpaassq+2t6ewq6iqtKu0urG2ta62ubGvurqxtqSgpJ+msaerqLmqpKeoqKeyraCnpp+bpKasnp+no6Chsa2trLK0s7Swtby2u8HBsrq+w8GyubnDs8C9v7W4u72+vMLHxMLDvsDEoIN4cGthZl9rb2BUWV5ITmdPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLS1vbi6wLq9taCelZ2hprq2q7Ozu7PEz8jLwsa4t8fBzL+4ybe7xbizxLizvsCrtbuxq6SusqyfoophgoeGhoF8eXV0b21rampxaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeWm6KWnKOZlo2foaOnm5+gpKaiqJ6bopufq7CssbajqaqqrKyktLmtt7Css7WusrWusKqfnZ+korKkpqm4raKmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqrKytsbK4r7i5u7C2vLy6q7OzurO9tLaxsbW0v7a9wL3Dwbu7vZeDe3NrX2VeZGRYVFddSVdcS1BHSUlGQTw/P0A7PzwwNDUzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vEw8++uce4t763ssG0sbu7q7i5sKGdqKqmlp2CZYKFhn94cm5wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1hYWFhaXmJkZGVmZmhpa3KNp52UlZWbmJuil5aRnKKiqJ2bnaWmoqacoKCbmK6ura6yoKWirqunorWxsrKsqK+yp7qzprWgop6bo6Gto6Kqtaqio6adpqajlpmel5mbnaCal52dnZytoaunpKSmrauztKq1sLOrsrm0r6qvsrKzt7Ouqayusriwura6vb+3s7GUhXl1ZV5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWjmKWxwrW2va20uMLMyMa/xbbBv8fOt8DEvbO5ubK/trG4uqyxtK2dmKOonpKad2mBg4R/eG9xdHFpZmRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqKclJSQlZeXoJeZlZegnqGclqGiqaSfn6mdnJqrp6+wqpujpLiqoaCuqLaqpqetsKS3sKS3oKKbmZmqpqGarLiwoqGknKKfn5OUoZSWlpuYl5aXnJWfqp6qpKKdo6qqsK6otKuqp62zsKWrrrOxsLCur6anp7KusbSwvLS5t66jlIF5dWReYVZZV1NSVEtNXkxPS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri9rp2nqKOqu8C9wLmutLjBzMfFwsO9xbfIzLLBwsGtvLu0u7y0uLmvr6+nm5ifp5KPinB6gHx3cWlscnRwaWhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmqBlpOVjJKUlJuZnZaWnKCcoJahoKempKann52fpqCqr6afoqS3qKGhoqi0oqWopbClsK2rtJ6gnZWVqaGilK2xsZ+io52emJuTi6GUkZOYmJKXl5iXnqecp6GimaOlpaukpbCnpaOrq62mqa6vrquoqqmzpaasr7Sxr7y1sa+uoJJ6dnJkYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxse2xsSzwr/Fqre3vba9urq1squrpZiXnaGKh3F8iH52bmNhZmloZmhqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVVRWVVNUUlVgYF9gYV9gYWNkaYGUk4mQjpSTlJ2VlpekmaCXnaGmoq2mpKSjo6KcqqulmZ+lsaqgoJ2lq52nop6trKmprayhoqKVmKObnJCrqbCbn6KfnpeZk4qekY2Sk5aQmJiTnKGjnaSgopWgoqSmm6OrpaKkqqSrrqWusqmmpaamtKapqK2ztbS5uq+prJ6LcnBvYFtXVlVSR1FPSFpbT1JKVEtTTEVGSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6PDw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm9sb7EyayxuMG1u8C7tLOoqaSUmJmah35wh4N7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eXl9fYmRtjpCEkYePkY+ak5WTnJujnJuhqamrqKynqKWkmaWupJSZpa+pn5uZm6Cerpmbq7OgpaafoqOhlZOblpaSqaqtmpyfoaCalJCMmY6MkYySjZaVkJ6hoKOcm6OVm6GjoZeiqKOiqKugq6+jrbelo6OirK2qqKuvs7ezvrWzq6+YhHRzaFtYWFJVUUVYTFFbWE1UTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62os7auqaevrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEu7e7w8ixrbi/t7y9urKzo6eelJWWlIV4c4B2d25taG1ubXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXVxcXl9gZH6NgYt/jJCKko2XkZeZoqCboKuqpq6sqK+kqJqfrKCVlqSop52XkI+anq6WmKiqmZ+dlKWgnpKQkpGTlaerpZqZmZ6elY2Mi5OGiI2DkIuRlZGgnqGjl5WflZqhop6Um6Wlp6iooLGwprG8p5+jrLSrrqewtbC5tcCxrbGrkH1yc2JWU1ZOUklGVlBSUUxMV01KTE5SR01KQUNGREM+QDY1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqaisKudqqepsrGltsa0ubqzysW5usHL0Muxtri8vsHDsbCyt620s7qysaGhmpuWlZKBfnZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKl4mUlJibmZ6pm6CqpqWrnaiZoaWbk4+fo5uXl4WEkpujj5SjnZaWloiim5uTi46KkJqkp5yVlZebkZGHlI6LgYuNf5CKkpKSoJqfopWTmJiVoqaZjZmkpqimoZ+0sqiyt6Gcoresqq2ksrKmtby1rKuxo4l4c21dTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2saWno6mloKilpLOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq25rqudmJmblJKFeoFtX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGEj4uUkZSeoY+bnKOho5ill6KclY2HmJqMc42Dfo2XloaRmZCUjo57mY+cjIKJf4qYn6OekJOYloWNgpR+fnSJjnmQh5OPkJ2amZqRlZCdjqKjjomaoKGkpJuitK+sr6yfmKW4pqaxobGunLC8qqmvqpmCd3NjVk1ST1BNQ1NOTFFNQlBRSElOUk1ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6a0wbiwtLDJxLe5wc7FvrOsusGrrcOtqKKmkp2mtauhnI6UlZGOfHZ9ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5YcpCDl4aOnZeLlJCfmJ2VlJaVj5aJgJOJXztXb3yLlImAjJGMkIaGc4qFloF5gXqFlJ2Ug5WOkZCDhn2TeHFvhY19iYGRjY+XmpiTio+JnIefmIeIlp6aoaCXp6+praion5ats6Kmrpmsq5iotKKpraOTfXJuYFtOU1JWTERUSlBNTEZOT0lFTFFNS09KSU1PRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6OpsKintMG5sbWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUm66gmJWFk46KhntydFxRTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQH+VkZF9iZSNhIqNm42WlYmSiIaVhnmIf2BKUW54ipGEfYSNioV/f25+f5R3dXV3hI2ZcFGNiIqGe354lHZod4aIfoqIlYqNkZKWi4SKiJSEmoyChJKblp6dlKSjqKmlpJ6bsKqhpKSRpqqWoqqcoqaoiXRtZ15bSFFRUk1JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+ir6GnqKWnqK+tqrW8tri3s8G7tqe5yLi2qKi1tqqyvKaelY5/iZOnlZSJfY2DgXx2b21YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJOBkpmLj3uGj4B2f3hzbnVwdI2OgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gXZycpJ3Z3WEhISEe5WJiIqMi4B/hIuMf5SDfIGQmJWclZGfnamen6CdoKmln52Yjaekk6Gflp6epIBzaGBcXEpWT1JHSlhST0pMTVJKSkpMUElMUUxSVExFSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3ODU2NzUyNTE0NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlraywsaq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGNlICNm42QfnaFd3t1b25oWEtISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfHhmd42XmI2PfWh5gXZ4gImPfYSYkoFxh498d3tva36tfXOQi397hpKBfX90ZnZ8hmxvaHN8iYyIgGx5cX1wbXWPcWlxgH6OcEOLhIKDhX93d3qLhX6Me3V+jpKPmIqSmpujlpmdmp2eop2WjYulm4+el46WmI93b21lYlpXV1RRSlNVVE9QTlBWS05LTk9KUU5ITk9LRUM8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYxMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmwr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mOhJJ5iI2KiXVwe210cGlsaVdLRkdFQUBDRElMTE1RUlBRU1RUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFhdZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnp9fnt2b3RzhYJ5gXhwfI6MipSDlpeYmpCSlZeZl56XjIOJn5GLko2GkJZ+bmlubm5XVVdUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ozk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQzMi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCirKqota+urLS/q7zCv6aimZWkl52NhIuUoaGYmJGTi3OOen+Fi4V0bnRrcGxka2pYTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlFZXGCniGKaaXR6ZX9wbX96i4l2gYiGdGyaknRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxgHxncXF7bpONj3tzfXxxcG51bYJ/eHl1anmJgoiKhJaTkpCLjZGUlI+XjoB5iJeIhoqGgJCIdmpqb2hkV1FaV1lZW01QVVZZWE5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyMzQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfprqvq7KwwrG7w8ealo+UmYuNhXmEkJiUjZCMj4Zxh4Jzh4yFem9ycG5vZHBmX1RGSUM/PDs5Oj9AQURERUdJTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgYWBeoSGhnlyoZV0eIFzdZSHNXGdqJ2OoaGEooV2cIZ8h3xzjK2NiYBnZmJqbnJtcIN1aW9YdXCOmpJ3bH97fW1xbXCAenN2bmN2hH6GgIWQkYqLiZGLkYyLj4N1eIuPgH6DgH6Pe3Jwb2xgW1xdW1lYYF9STltaWFdMSEpGSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEyNTM0NzQ1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ6kp56vlaW1qq6xrsGyu8HGlpCMlJCAiH1ugZCSiYOKh4+FdYKDbJWIh3t0eHhsd253Y2leSVBHPkA3NDQ5Ozs8PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgYWZhJucYYaqn52Lg5COeneIfomIjXOKl4+Eel1kcXR6e3eKbGdqYnlvhY+Cem6Bd3SEenB0endrbmled4d9h3yIh4+Ai5KXg42FjYd9cYR/hH11d3t8iXZwcnNmZ19bW11TW2ZeV1FVWFtVR0pKRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODU2NTMyNDQwMDQ2NDU1NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcT0yMzMzMUV+VzQ9OVyMeIqAlIySnZ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fYF+cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QUVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbXyBhod9jmhnaHh+boWHgoVxhIVHa4B3cnl2aG1rX3d9g4l/iIWMepWem4mLiJF/enWLdnx4bW93fn9zc3FrW15dW2NjWGZlXFVQUFZZUERMS0ZOSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1dLQjYwLi8yMzEyMzY2ODo9P0BCRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiJGBmpWCoKGXlZuapa2Tmruxp7vHw6iKjKGlj5SJgZF7coSen5Gcf3aFhYqPiJBqaG+DgHWNh4SLcYaCd4eAe3aFfW52dWeAlI+GiYiIiIehq6GWiY6Yf3uCiXp6b2dreH55fnJqZF5bW11pXGFmX1lPS05XUlFJUEpETkdDSkRCQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMgIGRj4uam6Sdoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBjIuCiY2Df4l/bXBqXUJBNC0tLy8uLzAyMjM0Nzc5Oz0/QkVISk5RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISkxLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPop+UmZKEioWPmJGWbHB1iYuCloyNj3aPhHFshYGKlpKDhYhyiaGWh5OJj4+WpbWpm42VooOHk4R9f2tqa3yAf4FzYV1jX1pmalxra15XS0dPU1FOTUxGSVBDRE1GQUNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+mJaalZ+fnKegqpaTmJ5nZaSafoSSkXmAkoiQkn2KhZmSkYKAgIuNiYWQhoSIhXh4fmdNUj4vLi4sLy4tLzAwMDIxMjU1Nzs/Q0VOUFJUUFFSU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZ2fqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+ElJKFnKGampmnkZGIlaKamnd6fpSYkqGSl5eBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N8fnpxaGBcYV9hZmNgZ2dcUUVKS1BPSUpMRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Kjo18ioaPkI6BgoCJjIqEkoWChomBgIZ3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUpNT1FZbYaQd5WLo6eqtL24pa6srKiptKuwt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsrauki5aYhaamoKKXgaaZjaKqqKSHhZOkoaCqoaSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWriJqJkoqWent+hH1mYGhcZWJdY2NeZmZeW09DSUhUT0ZITEZKR0VGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGUhYiCnIOSkI2S2sidlnNWl4iPiJyPfIaMjoqKeoiCh5GOg4WAi4WGh5KGgoSJhoiHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJTVVVXVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHw6uzxrattL+zuL62v7TBtru7pLjGqbbJx7W+ubSoo7StsbGcmpKan4mnr6uklXafpJehq7GzmJaqraiutruyuqyvtaKxrLG1vLe1rrWgp6ijqJupsK2yuri4p5u3qY2ljpGToId5gYJ0WGFkVmVhYGJfYGVfWlVKREVMVVFISkpESUdFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hX6AjXu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeFgY5/gYmOhoCGiYWKh5F6eG5dVkBFTTw2OjQ2QUI3NjUwLzZDSENRXE9RVVdVXFdQX1VJS0pBQD9HS0ZFRDs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMm2vMW9tLTAt7jCtb+wuHSytKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KSpbGupa2sp6SYoKyzuqKpsrq1u77Mv8XFvb2zwre6uL+3ure5rK2wprGqrb6wvbvCwqyZuqiUro+YmKuJfoF6aldiYVhqZGhkVlpjWVZUSUdHTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWVVad2pwf4+EgY6FbnpyeYhiuKGZo4mVk5aTk5ONkJeSh4d7hoGNlYqAhICJenyLh4Z8ioOBioOVfXd5dWVPXGRHRUw6UWRhW15TRj87SFBEWmNRUVlYWWdaVGBgTVNPRUE/SUpIRUZBQEM9RTZCPkhHS0xTWlRdk6+4tbq5ycC7vcnMu73Au7e1vLu3vrW6ssZgdbOlsZqeq72qpairqqOisrWhq6eelZafmKCupaenpZ6klKKnsbSnsrK8tsG908nK08bCxczCysPAvr2/u7y3tLC5t7fDusa9w8mwnrmqoqyPpai3iYF+cV9hYVxXYV9oZlJYYVZSVUlFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUFBRUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWhsbHGQjYWQdG1zcnOI1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaLf4N/gnh6i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV5vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVlxaW5K5wLm9t8bAu7nKy7q2ura4ubO4tbSutraZZHWonq1wXqKsnJiho5uknqullJ+fkJSOlpiXqJ+mn5+amYSknaylqrCtt7C9udTRz9fPyczSzM/OysfAv8LKvcG9wsDFxMbKv8jOtKS7sLWwm6y5vZp/eWxdYFtYXWFaY2JRW2BTUUtDQUVGRDxART5CSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KRlG9sb3V1iLOsoaGfi5mcmYyMlZGbkoWKin6Ih4yQi4l8gYRze4mDhnyJdIKKhpV/c3t4bG11e2hyZWlsaWZqaWhgZmlobVptdJetpLyIh2dbb2hdWllUSEpOUEpLUUxUUUlMQUpHS1BfX2JmaWGYt8ewubO7vrayxMe2sLmxsLuss7Gnqresjbannpunmk+bnYyOoJaRppillYqTk4mQiY+RkZ6boZiblZeHnpqmm6yvqK+ns7TU1NXW0svP09XO08/NxcLJ0L/KycvJ0sjNzcLQ0riwxLzEuqa2u8Sjgm5jXFxdWGBXWmZaUFxXTlBDQkhFQkk7QUQ+QUg/P0I3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OT05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmINocW95eYOgqp6ml42bm5eLjZWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfXF4dWxxeH5xe214c2xogHBtY2ltcHlpd31+y7/C36dtY3huY1thYEpQUlVOWV5QXV1OUU5UUVVUXG5ud4Jylq64rLSnsLarrb3Asau1pqW4p6yuoay0o46xrpqYmIyRlJGEjpuBjaaRnImDi4SKiYSLg5SVmJeUm5GcmJmZnp6rrKSnoaysztLV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbGwM7HyMOpv7jQnnluZV1iXFZfUl1bTk9TUE5IPkFGQUJFPEBCPkVFPj8/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bXdwfX6AoZ6eoYuNmZOTjIuTj5aEeYWQkI2LioiRh3+Ce3J+gIKHeoV1hZORiX9vdnNsc3x7dnxzgXdxaoBycmlvcXp5cnu+y5p+jLGDdnKEdmhhal1DWlpbVmZkWGVrVFhdXGBjXWN4e3+LgZmqpKShoKGppqqxuaqmtKOiraKjraKnsZ+JppqUkpGKko6IgpOJa5WijZiEgYV+kYODk5ati5WNlZmOhZKQnZensKGgoaSkqMfNz8jCy9DT0dTSztPNxtbSzNTY1tbY1dfVydTazcnX1tHKrcTDzIpyb2JgX1hTWVJbT0pHSUlKQDs6O0VBRDxCRD5IQj9CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN5coKJgZ2VnZSFi5aJj4qIjoePf3eElJmLjYiIi4l+g3hze32Dh3eAe4eRl4GDbndwbXV/dnh9c4V8eWyHdnRvfXaEdXl7nbWMPEGKxqV+jXxpZVZJQ2VjZmNoamRveVtfZmhrbmlugIOJkYudnqCdkJeYn6OjprKkpLOgoqWeoamgorGchp6SkpKQi46LhoOPhH6cm4yNgoSFepR+gqmVo4ySipiSi32XipqRq7OYmpunnKe9w8a4tsbN0tDS0MzSy8nUztDV2tfX2NTZ2M3Y287J2trS1r/MzLR3dm5kXVlSVVBZVkVGSklFRT06NzlAQUI6SERARUNBREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqCh3x4hZaXiI+Dh4aHeoR5cXp7hIZ1eoWOjZ16jHB8b3B6f3J8gXGDh4Bujnp1d318gnV/fIeIsHRYqcK2jJKBcG5iPV5ocnBxcG54d4JlaW9ydXhye4uHjpSSm5agloeMk5ugm5+qn6GtnKKamZ+lnp+smYuajJGSjYV9iIeDhYuOoJmTiISHfm2ZeYSYhoiTjI2VjIZ7m4iTj66qlJWXnpimrra9qK29xsvIycvLz8nD0crU1tjX2NfU29fT2dvWz9va0dbI1cuVeXpoaFtZUFNTXUhCRUlJPkE+PTc6PT87Pkg9QEFBQURBPj86ODdEQjc1NTQ3OS41NjY0MzU1NDIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2FWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OTlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fISXjoeLfoaHgHeCeW57e4aBdHqSno2hdo91gnR1gX10gIRvgZCBb5KEdHyBhXp2hnuJt8akwsm4gZabj3hwZU5mY4F6gXeGopCLeXl3e4N/fIR2bZSWlJWPl5CDiY+WmpeXppyYoJefk5KXo52Zq5aRkYuNkoOMhYmIgYWQkZ6cmYmFi4GGl3uIiJ+XkImNiouCfKGJkIu8oZiTl5mcqKalrp6ntb7AwLnHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvGhnp5ZmhkX1RXVlVNS0RNQzs9PTw5Ojw+OT5BNj4/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs6OjdJUF1aUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop8foB/gH2Fen6CkYmEhXqFiHt1fXRufH2GfnR/kp6Rn4OSfIZ+eI59eIqKboKagHSYhX6BiYV8fpB6j6mPkMOgvIyco5x9iYR9iXOMin5zppqcmZSFe4+QiYRoR3GhpJ2Mi5CShYiLkZKVj52ak5WRl42MlZ+dlKGUko6OkIt+kI+Oi4SJkpaan5+JjJSSnpGCi3+mmYiFjoKGhIClhoqMuJidkZSWoaegnZ6do662urWrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3h5d2ppZFZgW1NPTkhETEI9PT45OTo6OTk8PTZAPj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBj4pxcniKe3t/fX98iHp8e4uHgn51g4Z5c3pzbYF+hH13hpuhm56UkoCLiH+Yh4Cckm6HqIV6oIt8kI6DiIScfpqRio2joqCQpK+fi5GLhYuBkoZXcq2Ln6ycj4OYm5CQjlyDopGCjJ+TlYyGiIySk4yUlZSQjI+KiJabnY+VlpGLkpSGgIuJko2Kip2WmaOjhpOdlqGLioiOnJCDiI+Ag4eFpIaMkLOYnJKUl6GhnpmSm52nsbispbzBx83Hxs/Mz8zP18/R1K7W1dja2dra19bZ2p5vfHRnZlxdWFNWV0NASUQ+Pz46NDk6Ozc6OzozOzs/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieG1ifpKDbm13i3h5fnqBfYZ8e3aGhIBzcIWCe3Z2dXSEg4V9fpKmo56mopaJnZCUlouKqJdyirKNg6aRhJmThJmMopagmZOJmp2ikqmvn5GUkI6NiJWLbo23hJrEyLKdoqWbnJiWkbKQY6TNyJWOhoeJkJKOjZOUioWKioaWmpuPkJSTh5WYhICPi5mIjZCql5eko4iZnpabiY+Hl5eLhY+MgX+Gj6WJjZOomZeTlpihmJ+Zk52borK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6Ccn9oYl5dXU5JVFlBQkdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj48ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdoGOfXxtfoh4en56goKDfnZ2gIJ8bG6Lf3p8eHh8hIeKfoqjs6ejqrOhlqefpaOWla6ig5C4lZKymYyhoYykm6+jpJ2YkKeWp5msr6SXlJaVkIuYmZagwI6jybmrm6OmrZiRm52ynYWFqKKcmIWJiY6VjYuTj4iBhoeJk5iVjIuUk4eUmIaEkZCcdJGYspaXpaGInJqTkIqRipebiYqWjoZ9jJieiZCQnJqZk5iXn5SgnZWem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LQ1tjT0Ni7cnl2XWBVX1ZPSEpOREJDRTU+Ojc3Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OklFTkVEOjZBQEJTPjlETzMyMzU2NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSWZgO0iEi3p7boWGenyEeIGFgX5weHx+fW9yjXp9gXx4houJhoSSp7usqLK9r6Sts7Ooo6KwrIqatJ2iuKSVraSXqa23pqSjn5mpl6mjr7CqmZiclJWRl6CYmru7rsqhara4q7CUmJ+jq5OXvqNeqrKCiYqNlIeRfI6OfYOGjo+UlYiHk5eMkJWNi4yXmJKcmbSXlaudi5yUko6QkoyZm4qRnpCLiZWfoY2UjZiZnJKbmJ6UoaCUnJylr6ihpLO4q8LIxLW6vbvFx8fC0aDGyc3NxNfW0cvUoXB6aFxaU15RT0VEPjxDQUE4Pzg3NT9GPDw1PDM1MzQ1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEpAi4p/gXOGh32CiHWDioJ/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruztMG8tK2rs7aMp7Ktrb2qm7ukqK25uKumpqGio6Oor7Kxqp2cpJibl5eeoqalkqS6rqnAvK2tsrmlpKd+iIacrb2wg4yMi5CDj4ORj3qBiJCNjpyIh4+XjYuVl5SQmpedqJqxmpGsnI6aj5KOlZGQlpeOkaCRiZSbo6yUlo+UnJ2ToJ2bmKChlJqep6akoqSws6fBxsOvsLq2xcTCvs2mx8THw7zV0c3Eyoh0cmFbWV9bTUpCTEBGRz5BP0I7OjQ+QTw9NT02PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQjVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFSkhOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxlR2BpZ1pdXJOMjIh7h4uGg4x1hpGKgW9+e4F/cX6BepV6kpSUmJCTlaezxsm/wszBw7nHvLqvq7m7l7K3urLArqXApKuvu7yqraujo56nqq60sKqboKqboZuVn7C0p4ujurq2wbysqJyypaSolIWOqsTEpIKLj4eIhIaVlI16g42Rj5GhjIyUko6Il5+Xk5mVmKagrp2MqpyOlo+SkZWVjZCVkY+hlIaXn6CynpSalJ+hmKSfmqCboJSYnqWjpqakr66lv8TCrqi3tcnDvrbOssS/xLyz0cnIwrV0eGxcWFtpUkxIRExLS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjNBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk5lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoGQeo2hlqiampi6vcfIycHSycrCzbzBs627vqe6wL68xLeswamss7u+qrCppKWjrK2zrba1oJ+unqWimKOzvambqL3Bo7e3sKuSsK2rrJeHmqqnpZGCjJOllYmBdoqSeoWNkpCen5OPlIuPjZSjmZeclZWjnqmfkaWajI+Pj5WWiHyPlZKSo5qVoKKctaaQnpeko6Klnp2mmJ6Vl5uko6inorKsqLzAxK+ls7fMwLmuxLO7vsK4rcLDwsCZbXlhWFdbW0tLTUpGRERJQkJBREw6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+JoJOEeIV/lX9/kIiKkICWoZmupqOYwr7Hw8fF083Ozcu8wrewuby0vMu8w8G1truts7+5vK6vqKCop7atramyt5qerKKnoZ2rt7ippLC/xLG+ubOnqrWzra6XlqWsqKCRjpKxxaeVjn2RlX2IkZmQqpmYk5OPk5WTpZ6TnZmUoaOinJifmIuMj4+eiFqQlpeSlqSZZZijnrKllqKWrKyqp5ueppeYlpiVoKOopZ+2q6m5vMO1prO1y8C4qrassrq4rqi4ur24gmtuWldUVE5GSlNOSz9CSERESEdHOTVGTTs+Nz1ASi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZGDh6aTiIKHgpyEg5WQkJOOmqKfr76uoca8xcTGxs7OztLKvru2sbq7vL/PtsS9uLi3srG1s7izq6acq6u4qqinr7CXo66kp6SktcCwq6y0v8O6wLqzp7m1uLKulaWtr6+li5OVoY10wZp+l5mFj5aajLGVmpqVk5OZmaWjlZ+blpqpnZyhoJmKjI+WnWBKlpyalZqlllSWsJ+vnJ+llK+uq6WaoKWUk5iYjpyfpqKZtKmqs7y8vKqwssfAuKWrq62xsaOhsrK0pHBtZlxaTlBLRVBQUFE7SEpJR0lDQz46S1U/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4unlo6Jk4Wfh4Sdl46doZqjpLXItKnGusLDx8rIyMzNxr67s665uMHBzbXHusG4tbqwr6+ztKajm6q0tKqopq6smqStpaSnrLq/qKu2t77Bv765s7LEsbm9rKOutay6poicmKabdr+ghZmdjpOZmouvl6GcnJeVm5+hqZ6ooJqaqpmhp56YkI2RnYNudpKimpWdop6QrrKiq5WoqpeqraOjn6WokpKZnIiUnKKel7Gnqau6tr6zsq2+ubego6eopaecnK2pqYxiZWBfUUtNR0hOSVVMPU1ETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5WcoZ+7r5mUn4uTq5uRkpOJq42Hop+MpK2Uo6O2xr20wbrCwsfIxcLNyMG9ubKvubTAwsq1xbHBvLS6qqitrbCio5iqtLumqaarqp2or6ejqqq+vKetvLS4vce8t7W3wbG9wLOptberv6WPo5iRoqC8n4maoJmXnp6Pt5+pnKWjm5yhmqils6GbnqacqKqemZWPlJuLl4mMpaKUnaKeoLSvpaWTsKuZq6udnaSjqJGVlaCDj56em5WppKGhtLS6ta2otbKznpyipZqXlZmqoZ53YFxfXUpIRkdNUUlNRUZHQlJMSkJFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+ew62bl6WYmamclpqaj6qWlaemla2tmaGrtsTCu763wcLAx8S+zca7vbmyr7izv8LItb+vu7a4tqakqqutoKCaq6rEoqWoq6aeq6+soqmov7emrb6xuLbHtrW5uL+yv8G3tbO0r76jl6OWlJyUrqCRoqKlo6OfkL2kqZ2oq52doJumn72imKOfoqmroZ2XjZWek56Hj4WNk56koZ21rKaclrKnma+nn5qpnqCNmZWfhI2gmpuTpaSamKuxtbGqpaqtrJyYoKCSjpCWqJ6UaGJZYV1PSUdKTkxIRURJQT1QSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDPEM+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm5SRjxLeGViV0yimqOcnsWsoZ+snp2uoJOjn5aloKapq5e3saOqs7XExL2/tr/Cu8jCvsrItri1tbCzs7fBxra+sLi0uLWfpqyqrJ2dnqWkwaWgqq2fpKmtr6Kmp721pbG8ube2w7Kzt7m/ssTAuLius7W1o52llZKUoa6gmaKdqairo5rCramerK2bm56ZpqG9op2lmKurrKahmY2Zn5KfiY9Xf5afpqGguKqnk5i1o5+yoaCbrpaejpmUnYKOn5eVjqKklZCmrrKrqaGipaWVlZ2Yi4+Rk6SeiWFkWWNgTEhKSk5GRUFGSz49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dySEU2PXVlXEtOnp+hmZ7DqKWitKKcsqiTq6SgpJ+tqaydvLGorLWxyMXBwrPCw7zGw7zEyryvsLatsLSvv8S0ubGwubSsmaiwqamanaWhp8Ktm6yxm6qirrCppKe9tqa3u72vt8Ots7LCwLLHs7q3rLS2raqippaWlaSsop+fmqirsK+vu7KmoKmomZmYk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWdmqOfp7Ompo2YtJujrpqem62QnpOXlJqAkqGWjo2foZOLpqywpaahnKCekpKak4WLko2cnn9hZVtnZUpJTEpSQkNASUc7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+jn5ygw6ikqrKho7SqlbOsp6KksqyuqbuyrLC0tMbAxMO1wMS9ycS1wMjBtKu1qK+4rL/EtLeurLa5pZmrsauql5+ml627tJuosJutn660sqequbKnurO3srnAqrexw720xqe+r623taqorKGXl5KmpaKjmJilr7iusrW2oJ+opJmVlZOkoLejpKaWrrKyp6umoZ6bmpuWmKifoJiinq+yoqaNl66ZpauXmZ6kkZuNk5eahZaflIyPnJ6Ui6mpqqGnoJmelYyOmZCBhZWJlJ94Y2hda2pNUE1OVD1DQU5DOjpJQDc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzuko52hpr+mqK+voam0q525sKujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDGwLqptqSsu6zAwre3qayxuqKVrbCtspalp5Gquamgp7CdqqCvtLOqqba2rbuss7O6t6y4sMO6vr+mw6uwt6+pq6unnpiZq6KioJGYobGvs6uwuZqcqaCZlpKXpqG3qaWjorCxtKuyqKufm6Cgm56lnaKXnaOzsJqfkJOlmqCompSinpWYiZSYk5aXnZSIkJuZlI6oqKafo5uXm5OHjpmLfYyWhY+bamhsYWxuV1BRWlRBQ0VUQDs7SUE3OlhQZF5QVldEWV5dTUxSTl5LSj5aY15OSFBOW1VZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oauwq6OxuKmltbOsoK21vK6zuLy6vba2wMK/yMS5xMHAwLjEvcC3r7anq7exu76/tKmusbael6utqK2Xp6iOp7ufpK2znquisbCzrKm2tLW9ra+xtaywtLHBusW3q7yvsbisraqjsaafpaqgpJeQmaCzqrOqqrOanaebmpWOoKaktK6noqytrrGns62yqqScn6iknpWhmZuotamXmZKSn5meoJ6Qq56Xl4WVl4udmZyUio2Wl5qXpqWioJ2WlZeTgI+UhXuOkoOMlmVscmdwcV9GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7R0RGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2FVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoKSstqStqaWvrraqr7W6p6awt8W3sbe+wcK0tLrFvszFucLAub65w7fAubK1rKq6trq5vrSqrbG1mJinrKqrm6urjqu9nauusaOroLCts66utrK5t6qurrKota+zu73Ksqq2tbG0r66nobOgm6itoKWVlpuasqOtoKavl6GkmpqSjqOlp7OpoaayrKq2pa6xta+kmZ2tp5qYn5mZrLijl5OQj5icoZiXlKufm5KAk5iMnZyZlpGKlJOemqWioaCYlpGTlXqLj4V7jIqDi5JrbnhtdXtgRWFqWUlIWVo9e0pGRDZBYlRpW01cYEpcXVpSU1JiYUxLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lUS0SZl6CxqLGqraakr661qbe0uaSss7fKurS6ur++tLO3w8DMyLzDvLa9v7+3v7yxva6nuri3tsK2q62xt5SXpq6rp6OwqpSvu6SssbKnqKOxtLCxsbWxuLOprquyp7evtbTDxbaptbassK2pp6O2n6CnsaCklJyalbGep5ygqo6po56blpimpqW4p6KxtKynsqetsLaspJmgrKibnJ2blKq4nJSOjouZnKKXkJiloZ2UgpKWj5ycmJaViJeQl5qnnKOgkpaQkJV2hJCHe4WBhIyLbXF3dXt+XEtlbFxLTmNcPmJ7R0k4R2dXZltMXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0lXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLj1FTFE8M3JrSkNDkZmlrqWtrqunpbGys6q3sbegq7W5ybiuwbvCt7KxtcLCzsXAwb20vL+/ur+8ssSoqbiwtra/vK6rs7Kcn6exraalr6WdsrWsq7GxramotLqstLK1rLStqqyorKm4rbGwx7+4pbmwqa2tpaitsKakpK+kqZyenJuvmaOjoqORrJ6joKCiqqamuaWstbWkqquorK+2rqOdo6mqm6CampKktJqPiY2HkaKglY2UnaCTkYSOk5KdmpiVlIeXk5WZp5ufnoySkY6Qd36NhX18fIeKiXF0cn59fVxTZG9eTllmXEZElltHO05tWGJbTWBiTlZXVldUWGdeUVJMY1pbVEtHT1RTTkdJV1NcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis6ST8zQklTLD6PazxHSI+cqquiqbGkqaWztLG0tbKyoautvMy6rsC7x7G0rLTCwtHFxr7Asr3Awry/t7zEp6y3rLO4u8Cwq7GtoKOnraqopLCjqrGqr6ywr7Cvq7O7p7axsqmyqaumpaOtuqyqscK5tay6qKmoraqosaWqpKOuqqiin5yjrJWlnpiemaydoqepoqymo62suLGyoKmioKuvsaydn6eoqZmjmJmPoKeYhoSPioueoI+LjJacj46Gh5CUn52WmJWGlpOTl6SbnJyLkpCNiX5+h4V8d36HhYZ0c3GIdWtfWWBuY1FzcVxLO4R8Rj5XdFhgWk5jW05VVlVXUVxiXlNPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlFo+TEWVmK2ooaqznKqqsLatuLWuq6Wqqr3JvLG9t8KvsayzxMPOzsO+v7PAwsO6wLPIxKyut62yuMC+s62uq6SnqrCpp6ixprSuqrCurbGwtK20u6S4s6ysrqeroKKer7eqqq26tqW2taOqp6ysqq2hqaemsrKkpqahoayWqqGVmqCmnqSiqqWtop+nsbetrqOlopuqq62pnKGlpKSYoJqWj5idk4KDkImFnKCMio6MmY6Qi4OMl6ObkpCbjJOSkZSimZuZio6LinyGgIGDenSAg4F+dHeMo4h4al5gbmdXZYdjTj9nk0xFYnlXYlhSZVRNVlVVVE9cXWFVS01pV1VXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIY+SEZEl5KwpaOqsZirqq21q7axq6Wsqqm8wMC4uLO7taWysMTJy9G/wbu4v7/BucG6wcSusbWxs7rAvrOxrq2rq6i2qqaur6q5sKixsa+yrbaqt7antLesrKSpq5yjnrOzqKiktLSgtq2gqairqaunoKusqbm2qaqqqqKpoKyckqmhnaCkoqajqp6cp7WuqKaqoqOYpaanqpyipKOfmZmgkY6PmY5/h4yHhZ6eh4SKio6NkI2DhpSimo6MmpGSkY+Sn5aYlouKg390hoF/f3l0g396eH+BiJ2Pb3FnZ3F4XGBziGtPXplWSG14VWRWUWJQTVVUVVBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0pqNk9EO5aOsKGmq66arKWtrrO0r6ulsKqpur67wLCuuK2htq/Jx8jRwL68urzCvbrDwb+/rrKysbW8u8KxsbOrs6iktamlrbOyubCjrreyr7K5q7mvqa22rKqeqayfoqC1raihn6+yorSqnqinqqOroaKsrai9r6yuraKoqKCsmZCvoZiioKinnqibmaqwqaOfraKhk6Kjo6eYmqmlmJeZnY+Kh5WIfY2GhIOjl4WCgouGjo2RhISToJaHkJyQk5CNkZyUl4+KhoV4dIF/fHV4eYB7dHN6aYGGo3VpXmVrgXVmiIt9UlhwXUp4c1NkU1FeTU1SWWZOTFZZZFhGU2lSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwvS2c6NDhfPWFkP0YxQ1BbWytITjlVQTSRj7KgpKaspKekrKa0srGqpLGoqri+wbuvp7mqpq6wycfI0cO8v764vr+8ybzBuLCwtbG6u7jAsrO7rbitorSnp6yytrmzqKi8ta21vLC9pqystautnKmvo5+kq6qnnJ6qsqSzqJqqp6mkqZ6jqaepvau0r66dqaSgrpybsqOVpJylpZ+km5qpq6Wem6qhm5KboaWdmJepqJKYmpOQioKPhX6Pgn+HnY+Gf36Mh5COkIR/k5uThZOhjJSSi5GakZWGiX5/cnt5fXxod3x6dXBwfWiFeISIZGFoY3KFeWxmeF1dVUFWem1UYVBSWEtLTnF1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtL0ZqSTE0WD1mY0JKN0dTYFUqPTtEWD8qj5SxmZ+gqaWkoaukt7Kypqmxp6y4wb21sKO5rKioscPJyc3Btr2/tbe/uci2w7W0srWxvbi6vratuba/raGzp6qrsLW4taufvbypsr+zu6Cvs7WprJ+usKOcpKiqop6cpLCmsKCfq6mooqqcpKigrbunrrCuoKujpK6enq2ml5+boaOcn5yao6qjmpqkpJWXlJ+ilpuXpquLnpGQkYyCioGAj4B7mZSNiXx/i4aPjoyKhJKYkYaUo4mSkoeQmY+TgIh8eWx9dnh4Y3t6cXBxcnhogHRqg2dkaGFuc41sYWlvX28/W3hsVV5PUVFKSk1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDBBaFkxM1M9ZV9ETDZLV2VPKjwzT1k9I5OZrJmfmKekop+no7ivrqOvsKqruMK6s62fuK+rqLS7yMvIv7fCvq+0vbfEt8Oxr7qys8C1u763qbm4vauktKipqrCuubGqm7u9pLC/tbWhrra1pqensbOgnqSmp6GlmZ+sqKmeoKqvp6GnmKSooLC4n6Sxr6CroayknKanqZqanJ+jlZ2dmp6pppebn6iSmJOYnpOZlqGpkJqJjpCHfYd/go59fKCMjIh4g4uFiYyMhYiSmo6JlZ6IkJSCi5aMkXyFe3NwfXFzdGB5eGlvcXBvaX5xY3psaWVjYGaFfl9ac2pxS0x+aFhaTVBMSkhQUlBJTlxfblNEWFtSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUyPGZkMjRNP2VdRk89UlpoSCo+L1lYNSiXnaaZnZatoKChpKG3q7Gks7SqqLnFtbKuoLesrq2wtcbIwbe/wbmwtLy3v7u/r6u9sLS/sb3Duam7urenqLWoqKuwrbOwp5q+t6WtvLWvnrC3sKilp7Cym6CkoKSkoZecr6ahnqKnr6KgopOkpKO3sKGmsauerKOvmJyqpamemJuepZObnZqdpqqanJyllpWXlZ2OlJejqKGQiYqQhnqFfoSKeo6Xio2GeIGHhIiLjoWNk5iNjpaYio6VfoaXi495gHtwcndvb3RfeXdkbGxraWiDbWVyamtlaFxjc39fWmx2aVpIfV1bWE9PSkhIUlVGMjleXmxQRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0FmW0hURFVdaEUuOzJgVCwylqOhl5WcqZ2loaKgt6qvoLq5pqy9xbOwrqK1r6yur7TExL2zv7q3sLO5uLq4uq6uwLO0uK+/wbisvbq1pqKzq6ips6uusqOcwramqba0qZ6yu6mmpqmwrJmip5ykppSYobKlmZ6kqamcoqCTpaCkuaikp66nnaWhqJOfqaKhoJmbnaCSm5yXoKKrm5uZoZWSlZaajZSTo6ekj4iKj4Z5hHyFhXycjYmKhniAg4eIiJGFlZOSjJCVlI2Nk3uDl46Kd357bHRybGxzYXh1aGhqZ2VvhGdoaGRmaWpgaGJpZlplemNhUnNUW1tTTElHSU9TQCEpaV5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc4Y04nMp6ko5KOpKacnp6do7Wtp6q6t6isw8G3sKyitK2nr6+3wMC9scG3sa6yt7a4t7asqr2zr7KxvcC3rry8saWftqympbSpq66gn8Osqaaws6ustLqdqKqrsaWYnaqep6WRmaatopmepKmhm6Kdl6Cdp7alr6quoaGenaGVoKafoqCZnJqckpqelaaeraOYl56VlI6UmIyPmJqooJGIiYqIeYV3goKCnIeLgol7foSIhoWQhJaVj4+PkZGRjJJ7g5WNhnN+fWZ4b2tqbGd1c2tjZ2RjdH9iZGVmZWlqY2lwWV5YXWxkYU1oV1pgVklHSEtNUlg+OV9saUdCVVNcW0lJR0ZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTszQWVIJTWbpKCRjK6gmZiglqW0saKxvrehsca8ubCxo7arq66pub28u63Asq+urbavs7izqKu5sq+ttLa7tq+4va2mnrWroKGxpauvn6XDoLKjrrGvt621na2vrK6jmZynqqWflZuopZ+ZpaOpnZqgnJSbna2wprmorqOimpqemZ6jmqSdl56Ym5SaoZKolaypm5ScnJKMlZmOlJSZqaeNjYqJj3uCdIKBipiFh3yJiISEioyIkoWTnJKSj5CRlo6Qf4CNjYJvgX9meW1oa2pncXJrXGhkYnKAYGRnam1sZ2poZmxcbG11cWFUYmhjZVlJRkxNT1hRUFVhZYFUQFZTWVVGSEZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUllQyc0k6Kbj46xnZuToZqpsrCfuMC2obTCvL25saW2r6mupbe5t7isu6+tqqu3qrS5rqWztrKvqbG2trGytbqoqZ+2qZ6fqqKqrZyqwZmupK6wtrWsrJ6xra+qo5uco6yonJWcp6OdmqmjpZaaoJ2Rm6Orqqm7n6ekoJiamp6hj2uilpiccYKWnKSAdpGrqJ6WlqCRiZeZgJeLoI95hpOMg21pfneDcGyGioZ9hIuGb15jYGeEl4Zri5CUknV3i4R+g49/ZoeAaHVpZldcaXNuTlBqZGZxg2ZeZGZubGleXl+JkIWHaE9LRDhFVGdeSkdQUFVVS0dTYG90ZUVbUVVQRkhGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsKzA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTZPa1tOXEtbZmI+RzFQZD0rL42kmYeVsZuck6Cbqq2ro73Fr6m3w7i9vK2ntrCmq6S4tLKzsbmtqqettKawtaOouLe2qaestrOutK2zoqmftKueoqScp6iarbyVp6Wvs7etraSorqqrpqGenKCop5yXoaalm5unp52Tn6CZkJ6nqqO1sKOjo52WmJiXo4ihj5Kah6GHlJ6hf6V/p6uek5Ock4mEcniMjoSIoXaIjGmXiGZ9c3igb4iHhH6NfH+hoJ+Zf3uInnSIjnabimyHgYNtaGVjemxxYlSGbWNtaZhxWGpwboZXXmlba2pbiHBteXKHaYeEWl5GTj5GXk1FUlZXUVFSV1RnXkxZS1JSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKS4xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxVmE3LyiMppeEnKucmZmdn6uqqKq/w6+yur23wL6qpLevqqyms7Wur7O2q6mlsa2ltbOcrbW3taanqLOxrbKor5+qobOpoKSkmqKkna+2laSmpra8pqynqaqsp6aioJmfpqOZmaajpJicpKmWlKKclJOipaaht6SkoKSYlZOYlJyIrpCYlImpi5ejnIWxgKStnpSanpV5gtSof4eUwZvHeXixpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4FslrGrsHloa1ixrm9labySvG5oem1yj9h+U2pjtrJ/gHGUdZqhqpBXT1dhT1ZORlRbWFFQU4tcV1tQQFxFUU5ER0k8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtdNDEhjqaTgaapnpednaWtsqmxwr2ytcC1t77Cq6azrKypqK+0qq+2s6inprWmp7iunbOytqumpKeyrq2xpqqep6SypKKin5ecoJ+wrZWeo5+0uaKpqKGtrqSinpuaoaifmJuooZ+YnqenkZynm5SdoaaioLCjn6CjlpaSmJKZhbBraoqNqn5nhJaHrWVxnp2VmqaVca6hpH53u3xroY92sV9qtFulgGWckWBmgXpmf2p4aqllvnJnpox2sWp8sXh0kpNjbW2nbluEoEVpZ4eWRXWcYH5ne6Ongllfi6tpgJR4emqnN0qvW1dUbGNbS05XX1xXVjtOiE9XVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5KilYKspqWfo6SqsbettL2+sLfFsri6wqepr6uuqamxrqSwurCkpK6zo6m5qZ6zs7GkpaCqrbCsr6aon6OisZ2knZiVmJudrqeXm6GftLKhqpuhra2gnpqXoKKpnZmepKGcmaGnpJCdo5qXoJ+rnqanoJugoZaVkZaRmoa1m7V4hamZtZl3h7Obt3+TlpeplX5rgaZ6gYWIkpSSd6tnarFbrHuOh5R0iXCPhoB/iJCXeIOCi5eMg6CPhbB2d59xa2psfItOpFhIY2OZfmNopmB5cnVSk4ZeUKltY3F9hoBinS5Rom5bVGtnYExLXGRYXFpCPrB4V1hBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dYN0o5YVU1MByWn5SIs6amoq6pp7Osqru2wrC8wq24t8GqrK2urqausqmhr7yqoae1raOrtaSls7Ono6Kdp6qyqLCopZ6gn6+Wn5mVlpeYn66jmpqkqLSuoamPqaipm56VmKClqZqfnaOfnKCipaOVm56Ymp2iqpylmpuboqCXk5GTk52D1ZOZuXCwwn7GhnzWlJu7fJqWpZCNm4ykeo2Ho4KlgnqseY+dVa97iX6farlauXeGg32mgpN8mHqqeY2dj3uxbo6EdJC7hW+UT6+nxYpRoHpjYKpic3KHbJeHX1O1tMiGgIl8Y6QzQp12XVFqaGRQQFhmWmRhSkhNbEtaU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFRODIlnKGTmLGoqKWzqqW0qKW8t8GwusCxtbW8s7ansbGjsbOmn6+2qJuouq6ir7Ggs7SwoKSenqepsKm0qaWcnZ6rl5mXl5eWl6KrnpqXqK2wqKOfjqyip5ael5yhpqKYoqGioZqioqebnqCelZmapqCcp5Wbm5+hmZCSlZGdiLJuaLVxq4hwjqZytHNytnuamKSNj5uNon6QoKV+sHaDkdLRdVuufIZ/pG+bqqZrhoV9rX2XmY97sXOTnY54s2WWdIWebp5mlFLIi1rCXJ95Yl+tYHdzhmKXiF5Zyp1vv4F1TUu1U1XGZFRRamNmWEFPal9saVBVRkk5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyL6KdkaSvrKSqu62mtKWotru8sru/t7a0u7uzpbW0orKyo6CssKSYprqupLGwnLS4qaCmnaGqpbKorKqlmp2aqZ6WlZiZk5OjqaCXk6arsKWilpKsn6WSlKGcpaeglZump6Gao5+tmqCenpCWm6KenKWUnJaaop+VmJaSm4Wse3eodqOPioepb62Kg6iDmZmiipKZi6J+kpiJroV/grNccrNSrn6DgqR/cdd9d4R+j52GmZp3r4aKkZyHd7RhmmWagoGVbJJasFhLmnWYeWZgrV53d4dnmIhqXa93lZ6PeGw1eciusl9CVG9eaGBFUGxfcG1WVU0vZWNpU1lRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6ODifnZSguLCYtMGtqLKnqrK6uLS4v7q4s7a9taW4tKC1rZ+gqauflae2rKiwsauttKSbqaCgqKK1p6aqo5melaWhlJScmZOWo6abk5CnrK+loZWYqZ+ij5GimqmmoZWapqmenaSerJ2gnaCNlJ6bnqCYmJuWl6KglJiRp52GqX19pXmhj4+DqnCtjIKnhpagoYqXl4ijgZCHlKp8gIudeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClGySXKtbWpN/kX9oZ6pkc3uBa5iHcV2sWomgjmtuZU9KQ6FcWk10XWNmTVphX3N0X0pVNUqakllIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT44oZyZmb6smLTCrqutqaa0sLixtb+6urOxt7yqu7WgsaWepaennpOqsamvqrWsqq6hmKGgpqSkuqKjq6GXnJGioJWUn5qUmZ+gkI2MqbCvpp2Xmqemn42SpJioq6iUl6qon5+go62joJ2hjZShmJ+gkpyXnJWeoZWXj6ubj65tcrR0qYx3iqZztHl0s4CSpKOSnIyJpIeOdrhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJql1ytYE2hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdmVG9uLlunT2JTa2VibVliXGBxfGNTWVA+Pm1vM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs8MDAwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eODFCOaSam527opyywK6tq6unt6m4r7XAtbyxr7m4q8G3qquhnKekop2Sq6qntaOyqK6qoZecqKCkq7mdo62clpmPpaOWjZ2hnJmdn5GTlau2r6eZlJusqZeMk6aapa2jkZersqOgnqirsJmgoo+Yopefm5abl6GTnamclJGrmYfUkpq7dLHEgMOGfdWWnLh4iJGXjJeJjKeHeaO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIpumohwbY2kdL1dd31bYXm8altWW2l5XmlgZGZibXhvWVtZQ0FAcj9DRis1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC45Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QDmnmp6ivKKXscOwramqrLGnuK+2xLG7sq67sK7Bsqylo56koZybkaqkqrKktaetpJ+WmqqZpqy5naOumZWhkKWgk42co56YnpqQlpKvubCrlZejqKeUkZalnaStnpGgqKugnKCppLKeo6WOpqKVoZmcl5WkmI+woJKVqp6FkJm1gJGRjbiVeIKTm7V3bmxuc255j4SOiXOewbu8mnuBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV6s6N0dpd1dLB1mJ5mhmmNtnRycHe2jF6Aen2JZ4N5bXlii6xwdYV/WFunakRlWlRmYGNdYlFnZnFtdUJNUExEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PjcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVjgqT11dPSs7VlYnPTs8p56hob+llrPDtKyqp6yrqbuusMavtbSvuKe1uK2po6Kmn6CdmZSspK2qprWoqJ+blqCjnqykvqahqpiVnJGim5KPoaiik52XkpiUsrW2rZiepKSii5KSppylq5yWqaWmnZuiqaamo6mhkq2fl6Oel5eYnp6PsKmUnKeijmp+aZyneIlzfpqOdXplh3u9vsC6bpKDcZSGX3JqWl6aiWFkh46Va2CAlWNtnHZilGt/mpWUZV5gY3GbimhyjH2GlWdqfnF0eX18Ylt3dIFoUFxuhH17i2pYbHmCcklKb4VwTXRNRVddZmFMW1hnY15PW212anJST0RFTjtISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFS09IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SVJfSSdTYFY0KVBeTCgzPltPJz8yPqigqKHBo5q0urajrKWup6i1sqzIrLCzrLWjvrGypqCjqZ2jm5qZrKeupKW1qqWbmJWim6atqb+oqaaWlJuVoJqTmKWpp5GekI+YnLCyv6ybp56noomTkaqbqKSbm6ygo5qbo6esop+qopqwm5Wmn5aUnZ+dl7ClmaKomZyRnpyjpJmno5qcmpuakJaCaG58cXaRl5SRhIm0qY2GmJWOioyXl4eUlYqDkpORiY2RlJmTmJeaoKKbm5SgnY6CeqSFa2p8kHyAdImKgXGCeHl2doqAe4lqc4F0g3Vkd312a3B6bWBjXHBoTVlZZWpfV1lwem5uZlNPRlM5T1pOUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5TMTBUXjorPThdSyw8LUCyoLOhv6KksbK3oKmlsqelsLWqyautsaa1psCotKCepaWcpJaVoKunrKOjt6ygmZaWoJetqqbBn6yklpKcl56Yk5Sin56ip5KRmainssOvmqudq56PlpapnqucnaCtmKGbnaKlr6ahpKifrZiXpp2amqCenpywoJ2ip5aYk5mUoKKWo5+XoI6WlIuKjY6XrY97lZuCkoGJqaiFgZiWioSOn4h7hJCGhZmQh4aJlY6bl42QmJ6jlpqTkZ2Nfo1morOuhYmEdnqPin12eXpvZ3mQgYCJa3WBeYhyaHR/eXWDiIJrdGN5ZmBpZGNkZmpYa3twampcUkxQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RdUTA1TVsxN0U0XEc1PCxAs6C5r76tq66ysqCqprKtoqyzsMWwqqyjs6+9pLScoKeioZ2Zl6imqaakprO1npWUnpmZr6auvqCro5GRnpqZlJGVoZyXqZ2FnqmsorPItKCqpKuWlpiap56pnKCkq5Sen56gqq6ppqOroq2bn6ChmqWenJ+dr6SZn6iTmJedkqWamKmempdmg5J8ZX6Omo9jeI1saGt6kKOra2WamH5nhYplZWloeo2hjmtojJeRondraouYo5+Yc2xueoSNhnlYZV2FgV5rioqBdltoc3d3kYCHgm54gniAc215hHN2iImPg3tqhVhea3RkXXOIaWt8cWxjXVFOV0lkWEBKND5GNz9GRDcxPD0/QUM7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS83Wk82KUVZL0RPMVlDOz8uPaWfury5r6uzsKulqK2usKaurrC9samopK2wsZ+tl6CknqGamaarnKyjpqips66elaOQoq+mtrmlrqOPjpqhmZOSmqCZmaWWe6Wsoqizw7iloqevn56VnqOfpJykqqiSnqGeoKqvqqujqqCom6afqKGslaGbpbCkmJyrlqGem5OlmJ6rmZ5+voOIcrRyhZ6GrWh4ucS4cZKho3ummJlzqoJ8y8DAu3GLooeDn3yVmIiewL2Clp2ejZ3BwXuBepGMmsK/fWulsW+MgW/Ken+beJGDjoB2eYF/eXF6f4dvd4WMk3ltdpJiZl94Y19lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX15cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmplKOvqbCvraayta+rpqamsaufq5iboqCcm6qnop2roqWppaS0pJ2jk6aurLi0p6+ikpGZnaWSkaChl5yfnYemq6Srrb/AsaGqr6qXkp+eopmipKqjk6Chnp2trqmspqOjpqClpZ2uqZGkm6mtqpydqpysopaYpZaho5icf86UeXqlgnmVlptfrY9ejqeAoaB8p5WbdKuDgK9eZI2peqeHhaB0l5KIs2OCq4ahjo2zaoSudHyWh7hhgq1Zo81uj3V723t/mXF+iJJ1f2V7h3Z2a32Ibn2FkJJ+bYGOYHFrcGZgX3hkW3FoamNmYFJUUlddSk9DNUFIRUQ4PjY7QD9BOz04QD4+P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKy0tSjAnO1w6TC0hUEBGNC4xrcLAwLW0sLeYnpGkqqmttKqlsqysrKSsprCqoKebmqaYnKKwn6CfqKejpqGfsKybnpamrq2xq6isoJSSm6Clk4+epZeeqKOerqSrsKi/xrOoqbGulpOdnaKXoKmqn5Whnp2drq+nqqmbp6ajoauSrbOWpqOrqp6jp6ahsKGSmqeaoZuUlJGXoHCFjJd1hKiHcbB8nXKsfqGfgaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIooyRi51+q3uIk4+ggHqtVpzEeo9vksF9gZVtdXCMbWZ2ZYZvYXducm+JipGQg22Rj2Vvc3VvYGZtZF9uaWluZmNXVFxhWlJSQzhJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz5XSi09Jz4xKTNWQEYhHEc6QzEuK6/UxseytJ+do46jo6KtrrauqLGnqaqorqurp6KjnZmilZ+mq5+ipZ+oqKKfnrCsmJuWqKevrainqZ6XlZqkopKUoa2bnaajrqyjrLWpuc2yraaurJeVnJ2imZ+urJ2WoZmen6mxqampm6upo6Krm6+xoqisrqaZpquqqrGjk5ejpZqUkoWkaqR1iXqpdHqycYKliZmMcIigmoekX2BSq4R/roKbda6Cp4aGn3qYloV7ZoCjiaSZhoGjfal+gJSHrl58qFWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnRojYyYj4FtmpJvbnh3d25sZmVkcXBme2ljXFdfaVhYVExMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmFhYF9eXVxdW1NJQjY3OTk2NzQsJiQiICgnIistIiQuITMtJkBEV0gsRys2NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLWwrqmso6imqqurqaSmoJuln52lp6ajnKyaoquhpJ+vop6bk6qktrCuoKmbnZaVp6SRm6Gon6CmnLCmo6ixrLbIsrWqrKqVkp2dopmfpbOdmqGUnJ+mq6ujrpqsqKKhqqKzraKqs7Kim6qor6+2o5OWpKeYm5F8qmyehId1q3l8sG6CpIuJoJaVn5WB0ri0uMmAgbJeX5Spg6SHh6B6mJWZeKrJc5mjlaipkJKbjH6biZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI+QnpJ7cJeSfnB6dHx6bVxmanJxZoFpXmFYY21cXllJTU1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE9UUR0cOzxGMiwkqKTBxrmtqLKurKWinbK5rKqhpZuopqqsqaegpqWYqqOfrqudpqCsmp+ppZ2ntZ+il5Ooq7ayrJumnKCWkaatkZmcp6OgqqeuoaKmqbC0wrKzqq2olImYnaWboqOvpZehlZmcpaWrmq+draimnqyjt6yhsbmwnZuvp7O0s6WVmKikm6COgp1OeJqBf596hKN8gqSEhqaenJ6ThLh8fHm5gn7MxcK2eJqgkIuffpqWl4p1npeKpJmkqH6whZyEnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWOkaOWe32SkYl1eXKEfnBbbG53cmqBblpjX2huYmRdS0xRVEFIR0ZJOjlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMjpQW1QcGzY/SCwtIIyHmamspKu5q6+gm6Gss7Smn6CVpa6urqmmnaammqOnobKuoammsqCZqKSUorWio5WXoam1uaSbo56jk5CisZmenKemoaKvrpyjp6K1scOxraqtqpGHkZynnaOknaWXnpiZmaWjqJquoa2lppivpbytore3rp2etbK5srOnmZ6woqSeho/RtcO3eYeOhZGTj4CmeJSid4ygkoSlgotxq4aEtG5yaZmjnJWJn3yYmYaHj3KugqWboo2mi5OdiZSQm21wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5OmmH2LjJKLeHx4jYFsaHdpeHNuf3RcZGRubWVoYEpaV1g8R0dAVTNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVZWVFFPUVtVJSEyQUgkKSWSc4yKrr+/u7u1npeopK22oaKZlaOpp66pq5mloZ+loKC1p6Kpp7CjlKujjqSto52QmpqqtLSknaadqZKVl66goJ6npJynnLWZn6mjtqvCsKmrqaKNhI+coqGmo5aZmpyYm5ilpKaYq6etoqWbrae+rJW+sK2fo7Czuqy0p5upsqWomHqokH18sHeKgaSliJxtsm+hh618oY+DqJaZgKyJhK6Fn5SooKKWhZ+AmZWAe5J9q4CdmpaKqnidoI+Jk5KAea9do4F8pqdknYB8l3Rrrl2la3GFmV1gW4ygbpWRp5mClI2Wi3p5gZZ/amx+Yn10bn95YGZlcW9oZ2hDWWBbPUpTMlU4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JNzA1Mi4qLEFUVlZWVVRVVVVVVFRVVFNUV1dXWFZVVVFIRklKIygovJKahKnGw7bBtJ+braCuuKWkjpuko6Cvr6qfo56drZieuaCiq6CvqpqtoZCqqaSWiZqQrrGspp+om62YmI+toqGepaKapZytmJ+opraov6+lqaSfjICOm5qgpp6SlJmalJqapaOjmairq6Okn6movqSXw6yqo6Kss7qsr6ehtLCpq5l2r36Qi5yFh326rYqYZLCMZZWtfaCPg6aVmoGsioSwhaWZpKGikISgW2xqgbNgf617e4KBsWxnbpmXjIixW320W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqiaipeQlZZ6eI2cfWRzfWGDeHOAfGFpZnBtZmVlT1VjW0FUXj1JKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdXWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjnK2mpbaooYuZoJ+ds7OpnqKfnbSYoLOoqquesK2eq5uVrqmijoibjq+sqKajqJmuk5mPqZqhnqWfmqOjpZmfoqmyqLyvpaienY98i5uVoaCZkJGam5GZl6ieoZioraelpaOlqbufoManpamiq7S2ra6noL2ura2WgamSo6+Om4CGpJeYj4GAuMO6g46ck4Wnl5yCrIqCr4imm5qlqpF+1b3CqmKjv718fqOCg9e6uLWFlJODnr2+hGqjgW+rhG6df3qysceDaquwva14d6K+u3SAlY2mnI+akJWceYGQmnlifXpjjGd4gXtga2VramJQYltTalxAVGFCTSk8OjQvHh8kHiUyIB0kKDA0OTY2Nzg7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM/PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbS0sb+5sr2zop2upqWzpp2MmKW/qrexqKG/pqaxm56xnLmonq2vpaeVlK+sl4yDmpGvpqOsoaWcqqGYi6OSpp6nnJqhqKKZnqCrram5rqikm5eTe4eZkaabk4+RmJiPmJOpmZ+Yqaigqqaho6u7nqnFo6Cvo6uztauwqqG8qLCwmnR1qqS3hmWJn3BnrI+Kj21vd6SQmZ+Bda6ZlXCQjHGVp6ObmK6kcm1tbWWKd25tgplxgHlpcWlniZaVmHFoaYWGZ3CGZF6JY2pwWV1nfnemYGJxjpJvZmSAjZKOopeXmJCVnnyHjpR1ZYZ3aIxqeH55ZGxjZmxiS2RYSmtZOlBlRVEnSzkrIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJSts6q6ubKzqqmirp6ksqmYkr2xw8i9tamewKuso6Cmq5+6o6StrKymjpatqo+MhZWXrZ+lqqKfo6OgkYylk6eZqJmWo6qglpylpaevuqusmpuTknuEl42ll42RkJiUjZiVp5Sel6iimrCmnqKtuqCxwqiktKassbKrrqyouaSvuJaKoailtp2JlqKYhqmakJSdk6qzmZuiq6CylqKgnqCinKCkoZWrpoySk4yHkpyclJCZk5iQjpWGgaSal5WNi5OSio+GhH5ni4B0g3Z0iIxxp218lZGUk4GBj4+Pjp2UoJWXlaCCh5OMcGiPdm+Kd3Z8emlsZGRvY1VgWUBpWkdiYE5ZKkU9KyYiNzQwLh8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5VUUpFRD45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbivrqKwpK2foLWxkY6rxbzEureqoaWdm6adsKijtqedqbSmp5GYrKOLiImPnKeWrKShmqeenpOVo5epmqiZlKehpJCap5mhtbqoq5iakI18gZSMoZSKlJGVkI+Tl6WPnpmon5y2o52nrbiosMKuo7inr6+wraqqtLqir72Zkqajprajkp2mno2pn42Sn6Osr5qhorCor5ekoJykqp6dnZyXq5ySmaGbk5CWqpmNmJiWkJaekYignZWUhZKMkIyUi4F+ZoyHdYd2eYiDc5xqh5GUlJGKfYyWkpKYk6GSnJWgg4aXhnlxlXJ4iX9xe35qbmRfcGlgW2BZbWJQYGRQWjpHRkU9Mz09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZcXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlaSno7CzrK6jqaetoKi1qpCPnKWzuq6rq6GimXqdorCkpbGplpu4pqOUmamcjoaKiZuikK6epJaooKGSl5mbrouqlo+omaiMmKiPnrm2pKWYm42JeYGTjJqTipWRlJCNkpaijJ2eqJ6fuKR/hLC2o7GwdKS/pLKgeHqgq7O8lXaupJ+KgKp+ZFxidp+OpJ2Dl35uk7Oco6etq6JlnqCTc3mZlnCAmKiXbH+ip4llnKWbkJeYlouRm5GFnZqQlYKSh46OkomFeGuQh3aHcXyGgYBhaYiLlZOLW3aVkWdoj45yeqSYmGV4mIaBd5dpg4mCbnl/a3BlX3Vva2toXGZjYmJvUls+TU5OUkc9QFRCOTEvHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTFRVVVlcX2hmZ1dRSjxERzs4VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJWmo6GwsayrqaWpraOnraSSlqu1r7Glmqqmq5dzi5yvn6irp5OWuKCgj5yjnZF+iIiano2rmqOVp6KejpeSnoV1rY+IppqokZajiJu6tKigmZiLiXV2k46Wk4qTkZCUjI+ToI6an6aZnLKWgIyctZ61jZKPvaihfqeieqOvuIGOjqefhIuFj7Gpr4yJlqKaeYGLrIacnaKnqaiHlYaYd6WbeoebgZemgoF7nLF6ioWfl5mUmJaBkJaWhJmaY3mHkISOj5KLg25xkIh6gXGAgYZ/hnSHhZaSeJZok3SgmnR8mYOfm4aYfpGJgYKYao2MhGp4e3FwZ2R3bmlsaltlamllclteSFNMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj5ARElASUVKS0dSWFpYW2FhaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZSuxr2woZanqLWej4Ocq5ynoqCNkL6emY2fmqCQfYWOmZeIq52ilaChko2UiYaAkaeNhqKco5OWnYafubKnnZqTj4VwdZCKlZCKlI+Pm4uPkZ+Rlp+klp6siJ+0ibSarovKh6uuibeFjbCDsa+EqY2nmI2dfKiPcnt3m46mlmiVpHm0i5+epqiSmcKBf6uImKFxnoCapH2XhZWxgaF8oJOfj5iXgI6Tm4mYkot8hZOGjZWTiYNtc5GGgHtyhoGFfYV0hYKXgY/FZoCph4+iap6Cn5iBmYCKi4OImG+NkoRnd3R7dmdodXBnZ2teYm5sZmxYaEdcUUwyRTQ2TWBjNiY0PERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWV1jZmhnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5saqrppqUoKOkqqKWpam2o69/oKecpZ6diZS9mZONoJGdkHmDlpaRh6uZm5qaoYWPjHebnI+fkIiepJuVmJeGoritpZmbjY1/Ym2Qi5OQjY+MjJeLkJGfj5OfoZmhqH6hp4etnqCWro+fnZ2RhoGgjauvh6SNqpqMmn6jdoCYk2uBq3VNq3iHjZ2Rm6ingaqrfYOhe3qnaZ5/kmtnl4aXtoiefW1gY1iDl3+Me2Rni3OZfXmWbF18l25fU3GEXGBseYNgWWWCfYSBmHGnqmuDo25ypXCfg51nZJ9sWmyIemVZX4J+YVdQb3ZlbnRyampvXmpvbGtoV2lPXVdFOUE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9idmBNRDpNT01UYlxcZmZpaWJiZGJkZGJhYmBjZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKitryrrqKZl6ChpaysoJ2utaOokaCfoKacmY6YtJmQi56MlYt1gZSRjYqmlpWXnp5+k4WGrKSHm5CKmKiXmZqRh6WwpqKVmYiJgGluiIeLjo6Ji42Si5CSooyTnqCcoqV/k4GPo6GUoHeclpCng6GngIaqroWleYt9hJp9onBzk4eWe56MeW2Hm4yZkJuomo+HnXyConN2pmaefnekX5h6fJJzom6Yt7S6dJKHgYC2qGSBxrh7cJW3jHGAm6Rjc6yrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN+o16dmbOWb3uXnrN0cluesoJpYm90dXFobllrbHNyZVxpXmJLRD1ENVFBWXEyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWlhgYHxkSEM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mayck6COpbi1rq2gm6Kco6OlrZuasa2sk5egmKCkmpqUnqubi4iSeIuFcICWjYqPoJCTlJyWfZGJjqihh5iPipGik5uajIuoqKSej5aHhH5re4Z+fY+Ng4uQkImPlKCClp2gnaCfi4l3nJiijKByoouIqYicp5GXqKt/rox9eqCZeqOTeIBzl4iMnH2Wn4abjZmbpoajZKF8iZaQm41snmiajW6amXp/iqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z1iYp/nmiadYeTkpiOf55umZBrpplcqH53u2p9qVqOhF2zZ1xucXl3amhbcGp5eWJfZlhiQVBFTjdWQlJtNEpaWl9OWkRAMTUxOzs3SD86Q0dUP1lSWV0+RGJdVmBRYWR9aUVCOU5bXVhkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCsnaacnKefnq6anbCoq52Xopmhn5mWlqCjmYaJjWmIgHF7l4iLlpaEkpWXjnmKhJajnYmUj4WLnZGcm4mPqKOgmouRioCAaYGGeH+WjHuIjY6Hj5aaf5Oin6Cik5hyaJ+KoI+McJKMgqmImZ+jqaCofbCtpKK4l3ajs6Kjf4iUeJ16q5p+oo6dm5eIl3KhfIWNr7V9a5qRoXh+mLSjo6uohJh7mnycmX5zqlpdb3uXi3ieYk1/e3uFY3qXQk2fWaJqcnyObYGJhJl1m3mHibGzf3+akqZ0f51tcXyUb5lyaaNdlXZIZWNgc3B9fW1kX2tpd3xkZGFSXlZdVFZAWUVRZ0RSV1tiWF9JRD1COEBCOklFOExEV0FWUVtWREZhXFpgS2BtfnJFQzxVX2JaZWpWZ2hsbmJmZl5hYVxdXmFoYl9lZHZsXmVnZmxkZWxoaGtpk52Bsa6ZhFNfoae0urOzqZqii5upnJypk6GrpKGoj56dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGTlYdygImSoJxykZCAiJiUn5qEjqicmpWKi4p8g2yFhXGBoYx4hY2Ih5KZlXySpKCfo4iuhn21hI+enXumlnqpgpadkIuhnn2naHdtfplzoHNxfJ2FmG+Tgq59o4OmnpqBo3BeqWd1o2NvpWGc05B8epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKovH93g21/v6aqtF6bb35xl2+Bc6JyXaNndKZhaKZtm9OYe4Obbnd5l2ubenaXcmyppWdfZXlwf4RqZmZjbnZ4aGBjU1tlUVFiSVdJVF9XU1tlalxlUUVDS0xKS0JKRDhQP1BNV1NYT1JRYGVlaVJkeHl3SUZFY11kWWhqVGloam9jamdgY2BcXV1faGJhaGV8ZF5kZ2RrZGptZ2hsaJibf7CsVFxLfqmwsrWws6OcmIWYpqCgo42kqKCYqYmZl5iTmZOSoJeOh4V7cH2EaH2Pg5OagXeRjY6JcH+Gj5OSbJeTfIiQkaOVg46qmpSSioWJeYN2h4BugZ+Gd4CShoiZopd5k6Kkmp+Js6Gitot6rKekrqVwqYCakIWBnJJ9pICimYaYcp6EoqyuiZeLgIykjZaDrqKUdrW2tcmhc5SKgJ9hnpepbXmVh5+adaGHd6B9kJaKgW9MZqKScJqIc6R7eXRhg4JsfqBscmRgnHJ/dJdpe2mztbTGpnOYfnudapubq3WCmm10d5dpmnl0mHFQRXyzXmp2a3iHZmpnYnR1cW5WXlRZaFBSaElVTFhSVl1na25WZ1dNSkFKTUpISk5BUUpQZWNpbWV0cnN+eHtudYl7e1RQT21daFtraVJqaGlsZ2xmY2VfXFxcXmliZGhre19dZGdjamZvbGVpbGWinImvp4VmP5Shs6uvr7WiopCAl6iioqSMpaednKWCmZeWjZeQkJuSjoiDeWp5hmWDjH6WoHl1j4iMgWmEhZKDjIWdjXqMipSlkoOXqZeMkYuAiXqAfYp4cJChhnmBlYeJlqCWf5SlqJyWloRnbnicbKJkfHGld5yYcGengZeMe6V6oJaDl3KfdoCJlJaPuW6QiqJifZmilYhucmmranWgbG6mYJtpi5BoloealXWigH2aX4uFjHVviGJooWWef2mbdXBkZoiCbnKiWl9bZKFuXomMb3t/c3JkpW54omRnp2iYc4uYbqFvU4iPb6BeZKdUi11TmG1tc2txgW1waGt4c2tvUlhXV2ZZU21JWE9cSFhpaHNqWWtWUVJFVlxMWFJhVWhqXnd1enxwfHxygnt/cnaNgIR2XlFzYWdicGdQamhoa2xuZ2RnX11eXWBrYmppdnVdXGNoY2pqc2xma21jnaWYpnpldG2Lp66lqrCxpp+LgJaqnJ6ljKKhmqKigJWYk42aj4uXkI6Ke4dxgIhoi4t8l5pzdIp9kHtlg4eVioqVmYJ8iIWWpo+BoqyQhZCKgYp9gICPc2mPpYR9hpSNiJigjoiSqqeeiaZ4lpx+pYmWjLKYnpCDr5efpXiWiHqpdKWPhJpupaKMkoSMg7xufKWvgoaFhpOWnKB8pXpxqJSglmeefm+sY5aKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm5tn56SlWF/q4uqdoB/jaefd599haSVnaBpmod2rGeerYy2c3e+jKSTWYOmjathdXJzb3t0cWJqfm5obFNWW1VhYV1rTV1SXUldbG12YFtxWVtgWmdzZW5vcmNxdGB3e355cnmDc4N+gXt7jIGCgHZieGRjbnNkUmxnaG9scmlmaWFfXlxia2JsbHpvXFxiaWJsandtZ2xuYpWmqpyBgJ6klqmqnqinrqOZiYKXqpmepImapZ2pnYSLmo+FnJGFko2MjXSGeoiDb42EfZaTdHSGcpKCbX+MkoeGlI99e4GEl6SNf6WljoGNiYSUdYKHkm9siqiAgouUjomcn4mNk6ujoJCAdZWXiH6BeZSuo3+Bm3GPhniQjIWAe3KnjHF9fXqXlpuEjnh7fn2IlJWTinaQmZ+gg3p9iWyMhVt5eXJ5cWhufpKJcX90gY+Uk3GFg4FljX9fgYCMd3VzlHVvem9uh22Ehl93aXiOZoGCho6qnH50fZdqiYhvgHZ8hXZtbGeMc3h7l3eEW2pYeI9obXdycW93eG9dbIZuaWdWWmBXXGRrZFVhVV5RX3B3eWtqdmVqamp1fHFydHNhb3Vic3uBeHV5gnV/gH+AeIuFg317bX9sZHluXlduZ2h1a3hqaWlkXGBaY2plbHB1blpbYmtkbGx5bWhsb2GOlbmopouhopqmpJmknauioIODl6uRnaCJmqaaqJiCgZuLfpaUh46JiI1ygnyPfX6PhHqXjnRyg3CVhXt9kouGhpCFeH6AhpiijHunoYuFj4+ElYKGjpd3coSphY2SnJCInp6IjJuooKCrg4mOlZp+fomWraiPkqeQeHCekYN7k29+qYVwfZVxam98gZ+Lf5KOjGhtXYOLjJybno5zlYuIcXRrgnZzgFlyboaQgX1+i2ldaWN6hYOIgF9peHubfIOMg3aBhoNpeYuHa2Fxc4N3YHOMgomQp5WGZo2Pg252i4NwhY15b2VmY3mCepVaXGlmbnZbenl3dG1zcoJmXG2Ka2xiWVleWllrcVteYFleXWZzfXtzb3Nja2tpe3xxe3d0ZG10aGx8fnV5fHt6eX+Af2+GioR7fXN+eXN/aVRccWlsdW91Z2tnZF1hWGtoa2pxcm1XW2VubGdzem9oam1gjIyqsKGQo6Gan56Ynpmpo6F9g5erjJ+Uh5uikKWVf3uXhHySmYiIhoaKcn2Ai3aFi4GElopxb4BymIaEfpKEg4aKgXqAg4qano+CpqCHeI6XiJWLi52XhIN6rIGQl5mUip6dh4ihq6CioqOMiJObnKOZlqqhp6agkpuIl498eY+OhKh+f5KRkpOcsKWalJ2QjbKTmISmjIyVm5+JkJuCiZGKa3yOdndlgoaQinyJnYSHi4+HiICEg5B3fHp1mqKJh4ufi4aVf36MgYB2cXSGhYB4iIeKkaaRhIaOiIONkIx8h4qJj4F2a4GDe3mZaXJoYHOKcH16d3Zvd3SBXV5vh2huX19aXF1TZ3FVY1tbYWxodHt8cm5wZGtqaH97bXh/cWlvcGxmgXtygYB3gH1/hHptgoyGfHp4fH56g3hOZHZrc21wemRrZWJiYFt0ZnBmcnFsVV1sdG1oeXpxZ2lrZY2InbqflqKhmJWZmJSYpKCde3+Zqo2ejYWfnIqelnx5lIJ7jpmJhoSEhm14gYBygId+iJOEbWt+eZeGhIOQfoCGhIZ9h4ONmpySh6qeg3KKj4WSkoudkX2NeqmDjZKXlY6cloaGm6egopqdhoOSmpmZkJqmoKadnZCXgZKLd32IjoWle3yPkJGGmKqhnZOcj42qjpKAnoyJk5qego6XfoeOgm94hXF0YH+Dj4Z0i5eAg4+ChoR+hYSUbnl1dZOii42Gm4WFjnSAin19cnN7iYR7eYyOhJOnj4aEj4KDioqKdoWHiIt8bmt9f3ttaGtsZ155fmd8e3Z0dXV7d1xgcH1udWBjWlxeUWZtU2VaXWFraXZ5fnBrbGRraWeAgGxzgGxsdG94boR5boaAdoKAfYV2cYKNiH57enx/e4KKYGl7a3VoaYJkamNgaVtjdWhvYnVtbFRicXllcHp6cmVqbW2Lip+4mqGkn5OSlpeLmp+enXp3naWQm4mGpJSLmJl5eo2FfImRg4yCgYJte394coCFfYqQfGtofICXiIGIjnx+hoSHfI+Bj5qbkYinnH9wi4qLkoegoYqFjHynkYePkpeTlpJ3jaOhoZ6Wmn+BkJqZk4ybo6GkmpeRm3+OhXmAhI+HoYB+jI2PfJekoKCSmZCPpo2QgpuRiZKXm36Skn6HjoF1dIJwdmB9gI2FcYqVfIiMco1+goWFjmh4cnmMmZKQgJh+iItygod8fXF6fIyFenuSjYOWpZOLhpF8hYaHhXWCg4iIemVxen95enBsamZefXJofHV1c3xygGpeYHR2cHhkY1leXlJraFRkWF5hZ2p2eIFxZmtjbGhlf4BqbX5ob3FrfXeGemuLgXKBgX2BdHaCjYZ+fHp/gX1/j2pyg25zaWGHaGxiX3FVdG9tbmB4aG1XanR2YnV6e3Fiam96iY2fspKlpZ2OkJiPhp2gmpx8daOgjZZ/jKKKiJqWeHuGh36DiX6IgoB/cH97dHWChX6JkHhnY3yFl4qCio14fYCMg3mWgJWXlYyWoJp9b4uBkJOGppuHjImDpZWEkoqVl5KRdpGeoaGYlJh6f46Yl46Wm52knpmTlJx6kIaDeIWXjZ5+gYqOjHOXop6hkpiOj6KMjIOWmIOSlpl+mI18iI2BdnF9bXpkgHyKhXCGk3+QgmyHgoF/iYRldW98h5OYjX2UeIyJfICHfXxygHmKh3mFkYqLmKKWgoSMd4iEg4J2e4GJhXVgd3d9dH13ZmtkYH5panZzdHR9cXxjY2FzbnVzbWFZYF5bbGRSYldfYGhrdXmGcGNqY21maHyDbGh0aGxvaH98gnhtkIZxgIKCf3R8g4yBf356goN+fJBtdYl0dG1limxqYWN1VoNpcW5geGZsYmp2cGZ5e3lxYHJshoWQna6Ypqiejo2Xh4agk5eYfHepnIqYeZeci4uYkHl8gIt9fIN7gIKAeHN4enN9gIR/iIuAZF58ipWHfoSHdH1+in99mISWk5aMo6GXfnKHe5ORiqePjI6KkqCRg5GPlJeRioGPmKCakpCSdICNkpSJnZ2ep5iYjZWXdI6PimyGmJCZeoeIkIlvl52ao5OVio2fjIaCkpx/kpKVhpmIe4qJgXpxeWp1bHt+i35thZGClHdwgoN9fouAZHJqfIGXmIV/jnSRiYN5h352eIF+h4F9hI6FjZSkkHmFg3SJh32Ac3SAh4NtYXp0enF8b2FuY2R7YW5vdnJ3d3N0YnZgb2x1bm9dW15dXmpeT11XYmFobXN6iWtfamVqY2h3iG1mbGhqbWiAfHp3bpCHc4CDhH10gYaJeoJ9eoGEfX2OcnmLeXhubIdraF9pcmOHaHFvZnZnbWxhemhqfHp4cGF3bYuBmZqqoKSpnYqKkYaKnoqVl312rZiMln2ek5GWk4h3fnuKfHuAdnd/gHB0c3pvhX2BgIp+fGBcfo+Rhn+DhHN6gIZ6j5GHkZGbkqSblIF9gHyNipKkiY2KjZeajYWRmJOVjomJjJOdk5CMjW6EkI+RiZ6ZoqGXlomXkm+KmoVnhpqPlHqJhZCKcJaalKGSkoiLmYyCgJGefJKPkouZjnuKhId0c3VrcW51fIt0boaQjZFxdIB7gYKIfGVxbXl+mpR9hYl0kYuBdIl5b4F+gYd9hY2KhY2WqI17iH1+i4V3fXBvgIWDY2h3c3VwemJecGFqdF5wanp4eGxycGV5XW1sc21zWFpeX2FqWlBXWGRjZ3Fxf4dmXWloZmJncY5uZGlnZWpogHp3dG6OhXOAgYJ7dYKIhXiEfHeDhXqAiXd/i3x7cnmDamtfcGh0f2txbm1xZ29sZXtibX95dnFsd3eKf6OYoqihp5uHjIqBj52Gk5x0gKmUkYyGoIyVk5B/dHt2hXh4f3Jze4Vrcm95bYl2gICGbnFbWX6RjYiAgIB2dYB/f6CGj4qRnJegk5d3iX6AjIicnoqPhpKXlYSIlJmPlouLjY6NnYqOkIRuiYuPkYqclqGbmJWFmIhrhqSDZ4adipF/i4SLgXeTmJGekZCIiZWOf36Pl3yRjY+NmpJ8in+Cb3Zva21vcHuFaXODjpeKcXeAdIKIgnlmdG92gpqPfImFepWSeneJdHCJfIeNe4uHhImPnKOIfIR3gouAeHhuaoCCgF1ycnFwcHhaXnFhb2peb2l8eXBtbWptdmBwb2tybVlYYWFiblhRU1llZmN1cISCYl1rbWRiZmuSbWBnZl9oa4F1cnJwi4B0f4KAeHaAi4B5hX93h4Z2g4V8h4yAe3aKf2pxY3xihnxvcGx0amhvbHZ3X3F+eXt0dXSAgn+llZqtn6eWhY2Df5eVg4+fdYqfk5KFipqMlY2LenJ4dIJwcoVzcXWIbG9tdW2Id4N9f21uVVGBq5SHgniAdnKCeYKggZGBk5KXm5GaeJF6g4ySpJqTjomVmJKEhpaZjJOLiY+PiJ6FkIp8c4uFiI+InJmfm5aUgJR/aYadiGiHoYiShJGDiXGDkZePmo2PjIuPjXd7kpB6jouMkZaMfIh8gGt2am1ra2x6fmF5fo6VgXZ6gXeDjHx5Z3RsdIeWjH+IhnuUkXF6hXB4jXuLjXuJfoONkZ6ehXx9eIKLfXZwaWuBgnhfd29ta3FyVV5wYnFgX21ueXBncGZnc3VocGthd2VdVmVgYHJTUE5cZWRdeHCIfF9caHJiYmVmkmpfaGRbZ3B+cGtxc4p9dnyFgHR1f4x5e4WAeIiDc4aFfoyMg3t5lXdmcmqDYId+b29remBqbXR/dF90fXiGeHRzhXx5oZCasZymjoOKf4OaiICLnn+KmZOOhIiXjY6OhHZ0dnOAcG+Fc3Bxg29qaXZtgm59fG11c1JOgt/JktaTfHB0g3WDn4KSd5SQmJuPmHuTcoaQn6GTk5CKkpuUhn6WlYiNjYiRjYicgI6BeHqMfoiMipybnZuVk3mNd2iKkohsiaSFkoiXg4ZjjJGYjpSKloyNiotxe5SJe46IipKRiXmFe35se2Vyb2preXlbgHmPjoB6fn5/ho56emhza3OKj4mBhYV9loxsfn9vgY1/jYh+hHuDkJaam4t8d3iDkHlzbWZwf4NsaHRvZ2hzbFNeb2VwWV9rcXhma2piZnhzb3BjX3dgYFZrX152UE5MYGZjXXlxiXRcW2V2YGFlZY5jYWZhWGlzc25rcXaLfHR6hoF1dn6Lc3+Gf3uJf3KJh4GRioh8fph1ZXNufGWIf29wbIBabG55eXNgdnp7jXZyd4p3eZ+Mm6+boJCChXeIlX99iZyHhZ+RjoWMl4STjoeBdXdweXFuhG9tbn5yZGR4cHxten1qaGxjpJrB3K7voXNrdYN1hKGFkW6Vj5SflJuBkXGGi6OXiY6VipCdloOAlZCFiY+AkoqKl3+He3V/iXiGhI2bmpiZjpB2i3dvh4qMfoukhZKJnYWFXouUl4qOiY6LioSJbHuXgn2IhYmQj4Z2hX19a31jeHVpbXhzV4h6kYaFen5/gIWMfnllc2p/iY6JgoOAjJeGbIJ2bomRg5GFf4J6gJGWlJmQdHR4iI11dHFndXmCYXNsb2FodWZSYHFna1VebXN5YHJjX2h9cXJtWmJyYWJXblpcd01NTGNmYV52c4ptW1xkeV5gZGaEX2NjXlhqcmtua3J3i31zd4SBd3d8iHGDhH1+iHt0i4iIloaMfn6Xcmd1cXltjHtvdHCBWHF6dnlxZHd5hoxpdoCJcoCdiJmonKOShH1wjJR4eYudhIWhjY58lYx/mYeEe3N3cHNqb4FraWx8dF5geHZ7cHV7Z2BlfOvatcnD3IhzbHOAdomaiI1pl4+OnJSSgYhxhomgjoSLlYqNmJR8jZOIg4mPe5GLhpCCf3Z4g4Ryh4KSm5aUmIaMdod/cYaDioeaooOUjJ6DiWGDlY6GiYaJjYeAh2l9lH99g4SJjo2CcYZ+f3F3Z3ZyaXN3a1qMfZKBhXyAg4CEioJ2YnRsiIGPioJ+gJORfW6CbHmHkIeThH2BfoGSlJGXiW5yeoyGdWxxa3J4gF9yaG5canVgUWVyaWZTX292dF9vYF1ognFyaVdnaGNpWG1XW3VMSkxlZl5icnOFaFtcZXleXmRnemFkX1xZa25lbmp0d4p+c3OBfnp2eodzhYN8f4d3doqGj5iCjYJ7knRrd3V5eZN1b3h6fVh5hXGAb2d4d5KCZHaGhXGKloWZoZuiioZzb5KLcneOnH2KmoiJe59/g5l/gXlyc25vZHJ+aWZsd3dbX3l7enFxf2lhZ2F/1baOkKZ4bnF3e3GSkIyHapiNiJuRi4Z6aIiLmYaBkpGGh5iNfI2NgYGKjXyQjH6KhXp1e4J6cYaAlZmOk5SCiXWEh3eEgIuTnZ+Glo+ffohhf5OHhIiEiY1/f4JmfZGAfn+Ci4+Qfm2CfIJ0a212dHN2dWtjjYGOf4V+fIR/hIh/cF9zcYV8j42CfH+SiXpxg2Z7hIuHjYR8hX6BlY+Rk4RucHmMf3Vtbmpren1iZ2lpWGt1WlJpcmliUGJyeGxhZV1aaoNtc2JbZ19kbF9uVFpvTkhPZmRcZ25xgGxaW2NyX1xjbHdkZV1cWmxrYm1qc3aGf3Fvf3x8dHiFeIWCfICIdXmJgZKWfImGdomBb3h5e4STb258gXdeg390gW1penOUc2dyiH1ykpGEmp+boIaHdnaUf212k5d9h5CDio2ZfIuadn53cW9samF0fGdiaXV6Wl94fHptcX5lY2hoV52PXnFylrzEhHZxlIiQfnKWi4abkoyHcmqJj5aAe5SMgYSbjHyKhn18iYx/lIh1ioZ2dn2BcXWGgZ6UhZSPg4NygIh1hXyKmZ2Yh5SOnYCIZn2Tgn+Fg4mJcoF9Zn6Le3l+f4eLjnxpgHyDdmZveHhzdnNsao2FioGKf3iCgIWDf2tecnh6fY2KhnyCj4F+coFpeYSIjIaFeYR9gZiNkIx9bm17iX13dG5oZ3x2Y1twYlduclNTbnNoYU1mdHhlYF1cWG6Ab3NZZWFeam1gcE9Za1FEU2dgWmtubXxuWltebGNaYm93ZGdcXWBsaWNsaXN2gYNxbn58f3R1g3qDgnyChXZ+iIGWkXiDinSBiHJ5eH6NkG9ufIFxaYF5en5tbHt1lWtqd4R0bJSOhp6YoJmFiG59jHZqeJiOfoGKgpWXiXmOlm96c3BsamRgc3poYGVxelphcn15Z3F6YWVlj7Gyd0piWqTZ0JZye5CKkHd9lIuEmZGMhW5shpORenmShoGEmIp8h394eImKhJaAcIyIcXR9eml5hYOlkISTjYN/b3+Dd4R5hpyZlIuTkJWFh3B7koJ9goOJg26Bd2iAhXhyf3+DioZ7ZX1+hHVjcHJ/aHhwb3WYjYaCinx2eICEeYFrXHF+coGIhYl+hol7iXKBbnGFh4+FhXOEeoKZjY2EeG5vfoSAd3plaGp8cF9YdlpYcGxOV3FzZ2BKbHZ0YF1bW1l0fXJvV2ddZmpwYG9OV2hRP1lmXlpva2d5cVpaWWtlWWNxeV9oXF5lbWhla2lxd3+Hb2x/foB1b4J7gIF+g392gYWIl4pxgo1xe4Z8eXmEk4x1anp/bG9+dH99b3J7e5RvboF/eGaTi4OhmZySgoZnh4NwaHqViH1+hIGYiYF8jYxpeHJrbGZfYW54bV9ib3hcZGyDemFxdl9lZdTqvooyOj6LjoBxeIWIjo12g5aMfpKNjH9tbIWNjHZ9j3+FgpWIfIJ4bnaHhIOXd2+IhWt1e3RmeYKDp4uCj4uEfW6AdHaEeoedkYyQkpOMioZ+e5KGd3+EjYNsf3JogH54bXx7gYqDd2J5hIFxZHFofm10cXSBm4uAf4V+c3V9gHOBcFttf3V5i4OLe4eAfIh4enFsiYSQhItygnqAl4uLf3Rua3eAgHV1XGlod3BYVntTWnBkTFtycmVbSXB4b1xaWllddX50aFliW2dlbmNpTFdmUT1eZVxddWVfdHBaWVRvZFlkcXlaaF5gZ21naWxpcHd9jmxpgoR+eW6AfHyBf4J6dYKAjZOFcICLbnd+gHt7iJKJf2h7fmp0e3KGe3N3fX+MeXiEfXxrjI2Em52WjIGAbI5+a2h+jYx6fn+DlIF+fYqIa3VxZ2hjW2Jncm5gYWxzYWhwiXpic3ReY2SboI9uXDVZr7V0aYCIfJKGdYWWhXOPiol2cGyFg4d1eYl4iXyTh3p+c2d2iX5+mG9xhn5odnltZXmIhKSHgIeNiX5ufnV/gX2MmYiClJKZiIqEiXyPiHB7fYR7aH5saoB7eml6doKHgHJgd4F+cWRyZnWCbXV7hJSRgXyBf253eXx0f21Yb4B3dYyChniIdoKJenhzboqBkIGGc399f5OJiHpubmpugoJ1bl1nZXNxUVp6TlxvXE9cc3BkVUtzeGlXWVlaYXGAdGBdXWBmZGhpZk5aaE5AYWRbYHVhXHRtWFdTdGFaZG9yV2peYmhrZ21saXB3fJJsaYSJfHxwfn57gX+CeneAf4qLg3F7h29xd4R/e4mNj4Nqfntud3l3ind9eICCh3+Dfn56bYWMiJijjYSDe3aMeWtshIiQeH17gZF/f36Kg3BycGNmXllnX29wYGBncGZqb4l0YXRvW2FkanZ7f76cpqPIuHGFg3KSfHiGk4JzkYyHcnJvg3uDdHWHdIh3k4h5eXFjd4d6gJNpcoR2Znd1Y2p8g4eegX9/jo99cn9zhHmAkpGDeJaOlY6Hgoh7iIhreHl+dWd6aGx/eXNpenaAg31oYHeHfWprdGd7gGl2gIuQlH56fX5we3Z7dH5iVnd+c3OKhIJ9g3GHind4cXCEgo1/fnl+fXaOhoN2aXFpbYiCcnBdaGJybkpkdUxeblVUWnNuYlFPc3hgUlhYXGFvgnNbYVxoZWVja2RRW3BJRGNhWmNwXl13aFVWVXdeW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHh9cnt+eYKBgXx2fYOIhoNwd4NybneDgn2Ji5N/cIB8eHl6gYx0g3h/gYGChHqAdW9+ioubnoh9hXp3h3tndIWLkHp+f3uIhYR2j4Bnb25fZFxYZVltcmBgYHBsa2iJbmBzaVleZG2Ad6naqceGh7JxiXdvjHV7ho6AepOJf3V0dH53gHBxf22EdJSFeHRrYHqCeYiPZnGDb2d2blttfYCQlH+BeZKTfnl7bId2gZGMhHSWipGNhoWFe3+EbHV2f21ndmVte3Vtand2f398YGJ4hXlodHVifXtndIaOjZV7dIB1cX96fG1/WVZ0fnB1hYd/gXlsiYZ0eWx1gIOEfnt9eXtzi4F8c2d0ZW6LhG1zW2pfdWRIbm5MWmFXVlZ4bWJQUnR2V1BVWF5hcYRvXGBjbWRkXm9iVF1yR0JmX11maF1aemJRVVx1W1tna2FWal9gbmVma3FocHV4jnRrjo11fnZ4fXeBg4F7c32DiIeDb3F/dHF1f4WBiY2Ke3d/eIN8fIaHeId8fYF+hIB7fnN2eYyOoI2Jeol2dYN5Xn2FmIx5hoN0hYaEd4l7Ym5tXGJbW2FWanNjYFtnbm9mh3FhcWZXXGNrf3zKzoe5oWptbYpscYRxfISJfnuRhXl5c3l1dXtqbHVjhHWSgXZvZl59gnqLiWVygmtqcWNYbXqGm4iCgnSYlXh/fG2IcYKKjIhymI6Qh4SLg3t4fXFxcH1maHFibXhxamtxeH18elxkeYB3aXV4ZoF2Z3SHi46VfHGHam59gXlufF1Ycn9tdIGLfIJvb4p/cXZod3+BgIF3fXF7dYd8enJmc2FujIJsclhrX3dbSW5rTVVUXlRVe2thT1R1clBRVFZeYnSFaVxga2pmY1luYVhicEdBaFxgZl9dVXtdT1VkcFpbamhdV2hgX3JlamhyZ3Byd4Z4bpWKdH96d354g4d/dXJ/hoWNgnBwe3h3dXqGhYaMhXp8f3WLfn2GhISHf35+fYd/fHh2eXiRk6B/jH2LbXaAeWODhpaFc5GKb4WFgXqDdGNua1pfW11dVGdzZWBZZHJyZoFzYmtlV1tgaX94vq57oLdtYnOGaHN7cXmChXt9jH93eHJ2b3t2ZWpuYId1joByaWJef3h5i4RmcX5oamtaVm93iqOBhH9ym5RygXl0gm6BgpKIdJWIjIeDiIV9eHRybmh5YGptYG12amdqa3l3endbZ318eGVyfW2EdGV1hY2Gln9vi2ZqeoN1bXRiXG98a3V9jHyBZnWHfW5xaHV/eH5/c31se3uBenhwZmxibol+bW1Wa2B3VUpqa09RTmhNWXxoYk5VdWpMUFRVXmZ1g2ZdYHBoZ2FXaV1ba2hKRGpaYWRXWVV5WU5WbWpZXWxlXFplY150ZWxkcWdyb3WBeHCZhXZ/fnd/fIWHfXVzgoiAlYJuc3l7enNzhYaIiIN4gX12j398hIqOhIKEe36Lg3t3fHd3mp2XeoqChml3fXxsg4STgHKPgnCFgn6Bf29mbGdYXVtcW1RkcGRfV2JydWl1b2VlYldcXGh/cG9ygHOJZGR4fml0dXNygoR4gIR5d3R1bmt6cWJna2eGdI2DbWZeX31we4l+aW13ZmlkVVdyb42nfIR8dpeRdHxzfHpufHuRhXeZfYeFgoaDfXRwcmxndFxsaF5sdGRnZml6b3tyWWeAdnRncIB3gXVid4WKfJSAbotqbXqBcWZzZWBtemdzeIp8fmJ2g3Zqa3F0e3F6eXR9Zn5/f3l3bmRmYm6GfG1rVmpicFNLaWpPS05wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWVgVmNXYnBdTEtrWGNiVVVVc1ZMWHVkWl9rYVxaY2Vfd2ZtYnBpc25yf3R0moF3f4B3f3+GhHp8dYKEfpeFbnJ0fHp0cYSFj4GAeYt1dJF/fIGVjoCFhH1+jIZ7foB2e6OlinmIhoRrdXx7dYOCjHpvhXN5hH2Bg3VuamhlVl1bWlpTYm5kW1hhcnppaGxoX2JXX1tqgGlrb4Bna2BoeXhqc3R0boSBen99dXVuemhqeWpfZW5ogXaPg2ZlWGJ3aX6He29pb2dmXVVYb2iPqXeBenyQjnl1cH9wcnV5jn94lXWGgn+Fh3VqcnZnaG5bbGRdbXNfZ2FqeGh7bVptgnJzam+Afnl3YXeEhHePhHKIcW95f3JjcWlccHhkcXSIfHhic4BwZ2p4c3JseHd1eGSDe394dnBkY2NufH1rbFVpYmZTS2xoT0dSa0VheGdhTVNxXEpNVFlla3d7ZV5tcWlkXVZgVm5uV0tTaFdmXlhOVWxUSlx5X1tfa11dW2NlYHpobGFvb3Vub3h1eph9d4CBeoCAh4V6eXqDfoGThHF0dH95dnSEiJB9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSsn396iIiDa3KCenaBf4F1boZufH9ziYBqb21kZFhfWllaVWJqZ1taXnSBaV5ta1xhVlxcbIFlcXR9aWlca3Z2Z3R3cm2Fe319eXVybHloaXhmXWRzaHp3koBiYlRlcGeChXd3ZmhqYFdWWWdjj6hvfneAi456cHF+aHhveYx7d49yhH1+f4ZuZHZzZGhoXGtiXW9vW2dfbXVkemhddIBvcWtxe311dWF0hYp6h4eAf3dydX91YXBtWnJ0YnFyhXx1ZXKAbGFsem9qaXt5dnJmhXZ7enVxZWFlbXN+aWxUaV5dVEtzY1BHVmFHYnZnYUtUb1dKTFdYZ2t2emRlbnFmY1pXXVl2ZVVKXGNXaFhZSVdlUUhieFpdX2xbXlxhZF5/aWpgb3R4bm9udoOXeXKBgHx/iIuFfXV1hnmHjH1zdXWCeXp6gouOfX6EiWlzloF6ip19foV6gXp/fIaIc3GProx7e4ePfWVyiHp0fXx2cm+FbHt+bI96YnBvYmVdZVZZWVZjZmtgXVxyhGhYb21aXldaXGx7YnB3dm1iWmxzc2d1dXBshHl+gHl3bm50ZWl0ZVtndWZ2dpF5Xl1SZmZrg4J0fWJjaVxUWF1iY5ClaHh0goWQeG1vemh4bXuEe3WJc4B4fHh/aGV2bWBmYF5qX11za1llXW9vYnplW3d7a25ub3d4c3RkcoOSfoeCiHp2b3J9c2J4ZFtvcWJxcYJ8c2dygGRebnZpZGd5e3Vub4J1dH1zcWJfZm5vfWRqU2hYWVRNd19RSllYSGJ1ZGFJVG1TSkxaV2lscXtibGxzY2FZWVthdltTTGNdWGlTV0hZYU5HaXVYXmFtW1tfYmJdhWhoYW54eWxvanaBkHhtgn6AgZKHg4F2dIl0jIZzcXd1gnd8fX6Mj4B+k35wd5WDfJmSeYCAeHl+f3SIg3NwmaJ7en+JlHhkdYh5c3h1bHRvfmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYllU3FtWlpYWGBsdmNpdWppXlltc3Fsc3NzaoV8fn98dm5ubGRpcWNbanJkdHaOc1tXU2VhcoB/coJdYmNdU1pgW2OSn2VycYWEkXRsa3ptb3B7fHxxgXd/cnp5eWRldWhdYlpgZ1tedmhXYl1waGF3YFt7dmlpcm53c3J0aHCBlIKGfoR2cmpwfW1md1dca25icXOBenNnb35bYG9xYl9qcX5sbHV+c3F4a3BhXGVsbHphZ1NnVVdSUHVbUlBZUkhjdGJgR1VqUElQWlVra2t8ZW1vcWFbWlhZbHBXU09mV1dpU1RGWlxPSHJ1WF9jbWNYYGBhXYtqY2RteXhrb2l1eYZ7a4N9f4SZfIKEeX2Ibo+GcW93en10goJ8io6Cgpd0d4KThYGfiXWAgIFzf4Jxh4J1b6KXdHuGi4Z7ZXiLb257b2Z4cHpsc3ZyjGtedG5hZ2VrUl1bVWdhbGxaXHCMZE9ubVxWWFVnanRnYnRlZV1ZbnRucHV1eWuHfH98iHaPc2Rka25hXG5tY3N4h2taVFZjZHh9fXGFXGNfY1RaYFljlZVjbnCDhYpzamh7b2Zzd3N8bHp0dW95fnVeZnJjW15WYWRZYXRlVV9gbWRhcV1dfm9oaXNxc3B0dWpthJKBiHuFcXJmbn1wcm9UW2ZrZnF0gXdzY2x2VWJxaltfb2Z9Zm13fXNzc2ptYFpkamp3XmZUZFVWUFRtV1FXU1BIZHNfYUZYaU5IV1RWbWhkfGlreGtiV1xVW3RkU1JXaFFZZlRTSFpaUE14d1tfZWxpWWJgXl6PbmJmbHl1bm9odnZ/f2yDf32Gl3t/h4GKfmuTiHJndIB7dYCCfIiOf4uTcnyKkYWHn4Z7f4aMc4GGc32Ddm6ljHOBjYt2d216jGBlfHBmenN5bG1xdoJnZHtsY2ZnaFNfXlVnX2xvW15ujWhOaWxfVFZTb2dzbGZ4ZGRcWHB0bHJ6d3JtiHt/dpx6eWthZWxtXmBvamVweH5nWlZYYGx4fHtwg19iXmdWWF9XZJuIYmtxgYd9d2treG1cd3Fse2p2c25ve4ByWGpuX1ldVWJjWGRxYlNeYWhiYmxaYH1rZmtzdW5td3ZraIWLfoh6iG1xZXB9bXJtY1lhaWlvdIF0c19pbFNlcWRUYm5iemNxd3t2a3Bta19YYWdodFxlVmFWU05YZVJPXE9PSGVwXWNGWWlNSV9LWG1kX3hobn5kYFReVF11XFRTYGZOXWFUU0pcWVBZdXZdX2ZtaFhjYVtejnBjZ2p3cXNuZ3Z0eoNygYJ5h41+fImHjnpukIp0bHOCdH9/h4SGkYSVj3l+jI+HkZuEgHyMhHKAgXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY2Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjI2MjI2NjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCTqWvra2tra6kn6CgoKCjgGNnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTNBqba0tLS0taijpKSkpKd8XF9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJmZmZmSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaPkJCQkJCRj4+PkI+Pj4uIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk5CKkYyOj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyLi4yMjIyMjIyMjIyMjI2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoeKioaNhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCPhouLho6Gi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+JiI2GjImJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aIh4aIhomPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2Ki4yJjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2hoZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUVAPjo7Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs8OjY4Ozw+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1c3F0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5ODk6Tj84Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GBgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09Pj49O0Z5Xzs9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEtJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NERD8+PT1ASUhDWHlvQz5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZFTkA6QGV+fnhyd28+OTw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE5MPkE8PD0/PkJDPz9BQUFCQE17ZkBrh4SEg4J6cD85ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkM/VXV5cYGBgoJ8hIByQj09Pz09PkNEPzs8PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUBVdXSBf3yDg3yFhWhBQUBDQEA/QEA+PTw9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQExzc39/fYOFhoaHXz5DQ0VAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTUpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRWZ3gYOEhYaHh4mES0RFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHWHSChIaEgoWIiI1jQEJVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExKW4SGh4OBg4aIiX1XbISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEllh4eGgYOFgIGCg4SFhYSEhYaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSmyHhoOAg4SAgYODg4SFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT48PD1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaYWBgH6AgoSEhIODhIaJiouMi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0V2hX+AgYODg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo6Ojw4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2tycnR0dXd5e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I5SIKDgIOEhYSEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDk7PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7PzxXhoOCg4WGhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPz9BPT48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQmCHg4OFhoWFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZFRkZEQEI/PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFARERFY4iDg4WFhoaGiImJiIeGhoaHiYqKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AP0E/QkNISEpghoKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExNS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw7PD06P0A+QEBDRkpKUGiDg4WEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEdFSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6PDg9Pjs9QT4/QEVJS01Wc4OEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4teUVFQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBSExNUVd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVVJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0ZWTkZPUVFVWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOzpRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hJSEVGSUhJSElqcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f4CAgICAf39/gIB/f39+flRISklJR0dGRT8/QUFFQkNHRURFTFhSTVRWVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A+QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFlnUlVWWFVUVlRPT01KTEpJSUxNS09NU29zdnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWVhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH+AgICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWFNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYWlpkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUk1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSVFVaXG1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/gH9/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lWUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlQSEZPRkRFRkhHSEJDSEdISkdDQkFEQE9QTVJkc3V2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojs+QD8/Pz5rUUthRUZISUVCP0dMTkdNUVVJQkU/Pjw9PD09Pz0/QUNCPz48PUI+Sk1GVW51dXVzdHZ4e3x6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFEQlxdT3tOT09OS0xNT09RTUtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztBSD9cdHV1dnV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZETVJQYVdSWFFQU1NSVVtPT1FWUE1KQ0Y+Ojo2NDg2OTc5OjM2Njc5NjxCPWZ0dXZ3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMWFlaVlhYVlhZXVdXWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNRUFNaV1RUTVFTWVNcZVVPU1RSTktJSEM/QTk5ODg5Nzg4NDc1Nzg1ODhHbnN1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KT09VU1RcVlJVU1JOTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9KR09QT09NUkpPUFBQTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTElMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB0dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVCRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFQUVBRTlFPUE9MSkxMT1BOTlBRUU5RT0pMTU1LR0VFREI7PTw8OT1HNjY3NkRucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11nU1FTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSU1MSUxLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t9fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E/PT1BQEI9PkVIR0RGRklHS0pARkFBQEZIRUpPSFFSYVxRUFJOU09PT0xMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZEP0JDPjxCRj9CP0FkcXR3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87P0FAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVFNT05XS0xNS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTktHSUZCQUJAP0VGRUhES29wd3p5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBQSEtFP0I9OTk5Oj9CPzxBQkJBRERHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUTEpJTVRGSUlKTEpLTElJTE1PUFJQS0dDTEdDQ0pKTE1PTklKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0NGSEhHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNUEdIS0ZIS0RISUtNSEpMSEhKTEtNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLQ0ZFR0RFRUZFR0NDQD48PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGREI7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1HSUxHRUZJSUxOS0pIRU9JQ0dNTE5NUE1OTk1MSUhJT1JRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUZFQkNCRUBEQj4/Pjo7Oz06PT9DQT9BQ0ZHSkdJSUxIR0dHRkVDQD1FRUI+QURDQ0VHSElHTVBJRkZHS05PS0ZISkZFRERJSUhLSUdIUEtESk1MUE5PTk9PTkpKSE1SVVRST1dkYWFtZ3Byb3N5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPUJBPkE9Ojo9Pzo+PkBCP0BCRUdKRkpHSUdGRkZFREJBQUZGQ0JCQkRFREdHSEZMUUxJT0pKTEtJR0hFRkVEQ0lISEtKSEtSTUNPT05RUE9PTk9PS0tLUFVXVlVUWGBeXWlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmtrc01GRkVIQkJBREQ8QUFAQzw4OT0+Oj89P0I/QEBERkhFSEZGR0ZGRURDRUNESUZDRkVCRUdFRUZHRUpNS0hRTUpLSEhJRUZJSEVDSUlKS01LUFNORFFTUVFSTk9NTlBNTE5TV1ZXWFZYXltdZGBoYmppZ2tfZWVnY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJGRTxAQ0JEPDc6PT47PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0NHSEZIRkVDRkpKR01KTEtJSkxGSUhLSEVLS0xNTk9SVE9JU1VUUVRQUU1OUU5NUVdaVlpZVlpeWlhhYGBgX2hlY2BkZWhnamloamZobmxsbm1xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9yc3lNSEhHSURBQ0hFPEBFQ0U9ODo+Pjw8PEFCPD8+QUJGQ0VCQkhEQ0RFRkZHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMSk1LSU5MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZXF9fXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJFR0U8QEdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREdGSEhGSEhJS0pFSkhIS0hGRkxISEhKR0xMTExMSU1LTU5NT0xQUFFVVldPSlZWVVNTUlFMT1JSUVZbW11eW1xeYF9hYGJkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cXV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd292SUpMSUxHQkVERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFREZIRUlFRkVJSEZJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOT05PTE9QUlVYVk1OVFZVU1JRUE1OVFNSV1teXl9dXWBgYWFhYGJkZWJjaGJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3BzdnR1dXd2dXV0ZXFza3BxanJ2b3dKTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0ZCQ0RBQUVHQ0hHSEdGSkZDR0pHR0pGSUxISUpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZWFhY2luaGJpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0RBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NCSUVCSEpKSElLRkRLSkdISUlJS0dKSk9LTkxJTEhKTUtaZkpkXEtsUkhPTl9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENEQkVFREdCRkZHQ0RKREVKTExKTE1HR01KSEpKSEtKSUtKTkxNTUxMSUxNTFtzYmRwXmxsVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9ccHVncE1Kcnl2a2Jga2VlbXhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0JCPz1CRkdCRkNFREVFRENISEdERUtHR0xNTUpNTEZKTkhJS0pJTEpKSktNTU5NTU1LTk1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhwY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9Pz9GR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSUxLSUpNSUtKSktPUE5OTUxOTUxcaGR1XWxxV2xOT1FtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR3SU1HSURFRUNBQjxCQEJGREdGTEhFQ0NIS0hIRkpMTEZNS0xSUkxHTU1ITkpJSE5ISkpJSE5PTk5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2diYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISkxNTUxJS0tLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYGxoXWpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3c0hIRklERURGQUBBRURER0JISkxIRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpJS0tJSEpHS0tLS0dISkpMTExLSUtMTlRbXFRQVE1QT05PT1ZRT09RT09RSkpPUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0lQS0xPS0xXTUlFRUhJSkhJS0hMSkhGSEhKR0dJRUZMSElLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHh5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVFSkpKR0VISFBKTE1KTVNJSEVBSEZKSUtLSUxKSEZFSkhFRkdFRUpHQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjYFlfYltgXltUWFhaX15kYmJhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh2cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tFRkhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUFGSkRASktJT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmJiY2NlWlJZVlVcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJTERDS0pOTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hEREBEQUhJQT9JSkdPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUFBdX2FjY2NjYlxkY2JkY2ZYUVVUU1xYW2FfXl9hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0hHR0pGRkZJTEpORUNLSkxOSkxJS0pISUdCSEhRTUtLT01LS0lIR0VEP0VCSEhBQUdGRFRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJgYGJiYGNiYmRkYlhPUVFSW1NcXl1eXl9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lJS05MTElMS0lJR0RIS1FPTUxQTE1LS0hJQ0VBRUNIR0JBRkVCVlVFXFReU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJcYGBfYmNiXWJiV19fVFBPUFFYUl1cXF1eX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNQRFdfSUdHSERGTUpQUEZKSUpLTkxLS0xLSkpHRUpNUVFOT1BNTkxOSEtBREFDREZEQ0FERUFMSENMTFBPT0xGTUZHSUpIR0xMTU9RSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUFVUXFlZW15eYWFlZmNoY2ttcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXkxHSFlNR0hKSEdOTFFRSUxKS0tOTlVOT0tLTEdHS1BTU05QT05PTk9IS0VgRURfTERmY0RNW0heXHNtT01WbVlMQ1BgVWxXZ0pdWFZeRExRVUxNVFZRUlRYV1RYVVRcVFBmWmhoZFlUa1RXVlVbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USUtHYFRHSk9KSU9NUlFLTUtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QT0lKUH9RSXxZWXJzWFBtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlaX1ZVV39qdHV1X2F2X1hiXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4SCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdJTEZSVkxLT0lLUlhXUU5PT01RVE5PUVBLTE9HTVBTW1pUUVJPUFBQSkhaeF1UeGRoWVJUUXZndGxwYm5ma1FyT013bWpycHNycXJwb3CAXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zc3x9b355b39yYGBgYmFaYWBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQT01NSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dRVFBQUFFLR2Z4bGN4cW1aSkxVeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGdvWHZ2anZ1cIBhc2h9aWx4fG9fX19jYlteYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHVncnl7c3N1eX6Bc3Z6bnx9eXhybk5KU3ROQ0JFUFBJS0tKTFBPT09NUFpgWlhLVFdQYV5SVlFZU01QSVNUVVhXV1BVUE9OUkpLcm91dXF1cWRoYVZuTHFwXkZoeVd2VEtoeH14YHl7c25hXm1vZFJncnVubXlwd2x2c3RxbG1cc356a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0tbVkhHRUdSUEpMTUtMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZVV2xPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobG1yfGttaGt7dG1ta21PR0pLSEpISFJRTE5QTUxUU1JPU1NXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVNTV1tXWFdaUFNVV1dYUV1YVl1VU09YUldXV1haYFtncl5bXFtdXl9jWl9jZGVmZGNjYlljY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKVFJNUVFQTFZVVFBUVVhVWVVSWl1WVVRXVVlYUE9MTldUUU5VU05QTUxRUEtKUVJLUU1LS09SVFJRUVNTSUhNTk9RUlFRUVRWUlhXXFdTU1BRVVVWVFpRTlNSV1VUWVZUWVVTUlVTVFVYWVdeWl9hXVxbWlxcYGNcXWJjZGdlZGRhWWBhY2FiaWhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUEpLS05PTE1UUU9UUVFNWFdVVFVXV1daVlRcYFZXVllVWFRRUEtPWFNQTlVQTVJOS1NQTU9VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1NPU1VXVVRZVVdZVFJSV1VVV1xZWmBdVllfXV5dXF1hYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWJoa2FnZmhmZGBiY2FQS01MUFFMT1RQUFNRT1FaWVhXWFpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFQUlhUUlFPTU9TVU5XUlRVVU9OTlFTVVVUVFJUWFZaXVxaVlZRUldYVltbVlBTVlVVVlhUV1dUUlJYVlVaX1peYF5WXl1eYFxcYGBfX1piYmRoaGVkYlliYGJeX2ZkY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUVdTU1NYTU9QUlRYVVVVU1VZWFteXVxbVlJPVVZWW1tXUVNXVVZYVVNYWlRTUVlXVlxeW19fYFVhXGBhXmBiX1xgXWNhY2dpZGVgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeX1teXmFgX2JcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSTFFUU1laV1VPUk5TWFZUU1RSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVlZcXFZRVFZWWFlSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZl5bZGBhYGFjZV9iX1laXltcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1bYFxgVVxdaWpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVW1laU09TUlZWVVNPVlJTWlJUVVRYXFdYWFNYXFheXVlbXlRVTlZXV15bWFFUVVhYWFRWWFtUU1ZdWV1dYV5jY15ZYFtlYl9kZF5eY2NhXWVmaWRmXV5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXVtcXFtYWlteVl5ZXVBPT1JaUFpVVVdWVFRUXl5gXl5iXGBVXV5ia3l0bH1sWlVaVVFRU1xUVFRVVFZZV0xSWlZdW1xST1VTWFZWU1BYUlNXU1dWVltdWFtZVVpeV19eWVxaUldSWVhZX1pZU1RWWllaVldZXFZUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVpXVl1aXV5bWltcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFhXV1ZWV11YUFVcWV5dXVRTWFJYVlNSVFhSU1ZUWFhYXV5YXVtVXl9YX19YXFZSWVVZWlphWVxVV1daWlpYWVpaWFZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVpbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlRcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFpcWlZYVVdbWllbWlhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdaWlxfXlpfXFZfX1pdXlleVlNZWFlaXWJaXlZXWltbW1pbWVtZWV5fYGBkY2RlZWJkWmJmY2dmZV5hY2BjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1daWFdcW1xgXVZdXVNQVlpXVlpVWFVYV1hdX2JhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xTVlhQVlZWVlZWU1ZUWFxcX2BgXWFdV2BeW15cW15YVlhYW1tfYFxfWFhdXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNhYGVjXWZpZGVoX2deY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYmNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBYV1hYWFdWV1ZdXV5gYWFfYl5ZYV1dXlldXllYVldbXGBfXV9ZWV5dXl5hXVtaWVxfYl9iZGRlZmdnYlpkZmdpZ2NfY15hZmRaaGljZmljZV5iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiYmFdYFhjZGJgY2FjXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNhUlxZT1hXWVtaWVdaWmBdYGJiYGFjX1xiXV9dW19eWVlVWF1dX2BfX1taXl5gYmNcW1dbXWBiYmNlZGdmZWdkXGVmaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11aWl9dXF5cWV1cXl9hY2JhYV1iW2JkYV9jYmJdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGFUX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl9dU1xfYGNkZGZlZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3p6ent8fHx8e3x7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3p6e319fX18fXx6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIjbG1tLS0tLhRJisrKyoii9vS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIuRu8C/wMC/xEkUGxsbGxCO7+Xl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEg4GCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXl5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2AgYGBgYCBd3Nzc3Nzc32FhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5dnZ2ent4e3h3dnh7eHp5eX16eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3p6enp6eXp8fX19fX19e3p6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx6e316fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHt6fXl8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d6e3l8ent6d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en18fH17fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h7enl7eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4SEgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoWEg4ODgYOEhYSEhYWEg4KEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgICNjIGBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYKBgoGAg5aWg4B/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAgoOCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIKDgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKBgoSEgn99fXyHmpiGhIKEgoF/gIKBgoKBgoSCgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4SFg4GBg4OLiIV+fHx9fn+ZmoaEhYSEhIKBgIGCg4KChISDgoKBgYSFhIODg4KCg4SEg4ODg4OFhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhIODg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+AhpqRhnyCf4KKfpCag4GCgYGCgoGAgoKCgoGCg4OCgYGCg4WDg4ODg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYSFhYSDg4SDhIOChpSUkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f36FnZ6Fg4uAgIWAgYmBgYOBgYGBgoSDgYGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIKZoYeEhYiHf39+gYSDhIKDg4OCgICAgoKCgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgpCcg4CAgYF+fn19hIWFhIWCf319fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDhouBgH+Di4F9fXyDh4aDgH5/fn5/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4J/f4WHhIF/foGFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgH+ChYKChIKBgIB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEg4F/gISEg4GBgYGCgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODgoGDhIODgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYSBgoSDg4ODgoKCg4F+fX1+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYiDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4SDhJGSkY6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhYCChIODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4GEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4KAgIKDg4ODg4KCf319f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn2AgoODgoOCg4J9fX5+gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgH+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH99f359fn+Cg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gIB+fn9/fn58fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f35+f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOAgoOBf4GAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f359fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhYSDg4SDhYSEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAf4CBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WFhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgIGCgYKAgYGBgH+Lk4+Mi42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRjIyNjY6KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2MjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIyPjYuKhoSFhISDg4ODgoKCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42LioiEhISDg4ODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYeGh4aBhJGOjIuKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx7e3t8eXt8e3t9e31+fn+AgIOHiYmJi4mLiYWIkY2LiImHhYWDgoKDhISDgoKCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uLiY2Rjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjpCNi4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiOjYqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIOAgICAgoF/gIGDgX5+gH9+foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyKioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6Af31/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fomGhoWFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dXSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKDgoSCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4F/gIOCf3+Af4F/gH98e3t6fHt8goB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fn+AfH9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398fn9/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9/f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH99fn5/f31+foCBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhIOCgoSCgYGCgYCCgYCBf35+fn6Afn1+fH+AgIB/gIF/fIB+gIB/gYCAf32Af35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4eHt4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59gICBgH+AgYB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn58e3t8fHl3fHl3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn6AgX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4CAgICAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/gYF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHt7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGEg4OEgYGDgIKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/f4CAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYB/goGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4KBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhIWEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX16fHx9fXx6e35+foB/f4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEg4KCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCf318fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/f3x9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4KBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+fn9/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISDhIWFg4eGhoSFhISFhIWEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgYSDgH99fX59foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhIOFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgoN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3x/fXyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKGhoaFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFh4aIhYWGhYeHhYaEhoaJiIWEiYqIhoSGhoWFg4WGhYaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYaHh4iGhIaFh4aGhYSFhYSFhYaJioeFhYaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99f4B+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYaGhYWGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhISFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fn1/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEg4SEg4OHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWHhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fXt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4SDg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e318e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgoKCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2AfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYeGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOFhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEg4aChYGBgH9/gIB+f4CCfH5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYSCgX+AgoODhIWFh4aFhIaHhYeGhoKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCf31+f35+f4R+e398fICBfYGAfX2DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fb29vb29vb29vb29vb29jW19fX19fX19bW1tbW1tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0j4yMjIyMjIyMjIyMjImiv7y9vb29vb29vb29vL/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFpVVlZWVlZWVlZWVlZSfK6qqqqqqqqqqqqqqqiw0tLS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpZ5fWVpaWlpaWlpaWlpaVoCvq6urq6urq6urq6uqsdHS0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqjaGRlZWVlZWVlZWRkZGGGsq+vr6+vr6+vr6+vrrbS0tLT0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs/Ozs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzMzMzLz9PT0tLS0tLS0tLS09PS1NTU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7O0NTSz87R1dTTzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19bX19fX19bW1tbW1tXV1tXW1tbW1tbW1tfW1tbW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Oz8qWpdHTrYODlc/SpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8+cqp2ty5q6uJm1s5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DLlIianryijICNxZ6YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0b3ImZusoIis1rqZoZ2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Sl5Sisaitm6aymZavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Ts5vEmsGinZWnkJqEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0c6NkJ7Ep7Srn3+gqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHL2qiZsM7awZyAvK2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Nzk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT48Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJjqWaoKeRoZ+gmaiWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HKu6Gmp563pKujnsOgq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09OekI222aePj6zYwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0rrE1dLVv7/W0tXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLV1NLS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUhJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdITk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6WlpKSkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSkoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnp6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9bXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipKmnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6mnqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6yppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnNfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6KvqqqsqKirsKmoqqihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustq+zsKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYW1odWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW2vLy+vLy+xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlZGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0NERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb21ocXhveWppYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbDxMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3lmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDw8HEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIyMnHxcnHyMe/xcfExMfIytPP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLCycHKysjGzMrNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVvdGJdYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBwsO/v77Ey8jKy8e91NPHyM3Iw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnZGplYWptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDubi5u73Bx8HEzb+Qy8bFxMHEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e9xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmdjW1paXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9wLm+urq0wLi1uLOuuru2v9GfiMDOu7/BvLvEvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+urW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vsvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmJnamdmaWVpXVZWVFlPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0FAQz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5OSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLewrbe2uMTLjIWbyL27w7W6x7i2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGhoqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2hYWE5LS0tSSUxIQzk9OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb++vLKtr6yxsLe8t7u9wcS5t7m4sLq0ubzJuoOFhrXEvse3ubitt7W4urS4s7vFxsvBvMbAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3ubG9vrvEtrilh4CLe46cxaN8g4Wxy8bPwsC4rrW1vL64urK+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG54Y2diW2NRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuro7C4ydO2ur68xrSieGVyZVVgZoeNfYeHqs7O0czKxLW6wMPIv761v8G/xsa/y8bDv8G8wMPMysfFxsC5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPEFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLGzv8vI2769vbyBanZgZ3ZeV1Zcc4CJi6jMyMzLzcrGwsTLzsK8ub25ucDDv8jGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLW8tcaQccHTwLR9W0xvYVB8f3ViVmB+hpGpxsLHy8jBw8HAycrCwLu6sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKyr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7vSl3KDtcKbWFRWjWJSZICEhW1JcoaXtMK9v8bAucC8vsXEvb25srCuuLe/w8fDxLy9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra20t6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pW19gWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPkNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnC15h/couudlJPbJlaUlVampR3TG6OorS4uLjCurO7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9mXVpUSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w9WdiX14lWBOao11XVFdbLq1dVRXj7i1srG3vrmytbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZxbF9jYVtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8DKn4mBfYBYWJKPZ3Fgd3J6l3dua1+LvbOwtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNdZlhcXVJOTUE+SUJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i5xauViYx4TGagw32Gm5Bdf3lsdXmJsbq1sbS1srSvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7u3lpOgik1okpN2b3lyaGlrdoF3eKW8uLK0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usqq+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yt6adqJNYgHBzbWRrX1lXWFtiX2yBm7myrbOvrqyutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKurn6aim6OclZCMj4+Qk5CXlZaYn56empiml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR1BNTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6WsqbDAsbN8eHZydGVXVk9JSUtOT09ca3CmtaqytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mao5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01KSEdPUk5KTkc8RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaGmx8SmYWZpcmBST0pwVVZKT0pMVF5dgbevr7O1qqesq6KcmZSOkZaXmZmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHl5YGJSVWBJSUpLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWenLu8fW9pamFUSldwnIt6WUxGR05UVGiusrCwuKymoZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKxtKqyr6KZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKT09VTFNMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpyim56pq5Z9a11UTU1cncTLqW9ZTEVDR01hmLCtrK+nn56ioJeRk5ugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7itsrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqShoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFJVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKZnpuhoaOKb19VUlFVacDj0rSdh29ZSkVUkZidq6qppJ+fmZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqegmaegn5+nqKWkn52qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JXTkpHTUdDRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKOid1lSUVRWaIPAzLOYsciwlIqYucWiqa2pqqWfnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6u8DEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqztK+zrqqvo52rp7axraKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHFra3VycGhXW1FFVEhESlBIP0VBNEZIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfn5qhnWhQS1BRaYGctbqnh7Pg29bb2si0rqejo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsHGvrq0urq0u7ewtbKqurKuu7e/u7qqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrZGhveGpkWltGS0xFRFNMREJFNzo/OzU0OTk3OD4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaKdnJVdTEdOWH6TwLikkJjV5NvRxLSmn5qcm56emZeXl5KMjpeXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszR0tXO08m9wL/Du8bFyMXS1M3T0NPTzMrCxsbHysjOv8jRzMfFx8XBvMPBvr++tb6zrr+/wsPHxMfErr+4sri8w8HBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOfnJ6WYUpKTmaKutfTv6/A1Mu5rqiin52fmpiWlJKUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NbY0tfNxsfJzMPFys/K09fR19LV1tPTyMzHzM3J0s3O083FyMnKwcbLx8jJxr/Ds7PIxMvKy8/Gyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxBPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2gpHVdZ22NvNjc2tbLurKqo52dnaGloJ2alJSVlIl8d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDW1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3SytLW1tnV19PW2M7Sys/RzM7QzNLPv8jHysPMzMzOz8XGx7a/yr/RzcvPxsnIv8PDyM7Mz9DPzcrHzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKR0FFSEk+O0E4PTQ1ODU7ODY6PEA+Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWfo6yKf5Oz0tXa2s+8rqiblZignJuhop+bnJmViXdpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV19fX09bP1dTa1NTOz9XU1NHRzNHN1NfW09XQz9LT0cnT0cjQ2NfY0djS19nV1szPz8rN0svO0MDGwsfFzs3R0dHIzM3AyszF087LzsjEysfGyMzK09PR1c/SzNPBucWxpai1rqebqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooaWcgJSWx9jT1sKtpqGYlZeZm52gnpmdnZN9cWVjY19fYV9fYWBfYGBfYGZucHBua29yd3eczMHS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHG0dTK0dTV1s7S0NjY2NfLyM7Eyc/MyszAyb/Hyc3Oz8vQzc7Mzs/Iy9DQys7KwsnHyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1XRTtAPTMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramnf2yBlNPWzbCbm5aVl5uenp+dlJaYlIhrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Hzs3N1MzO083L19bQzNHUy8zQ0tPKztHV0tXVysDJwcXMwsjJwszDxcjKys/KzczQzdPLxsjPzcjHy8XGwcXKzM3P0cbQzs3NzM/Fx8G4ub3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV5cHFrbWdgYHBoWFhoVkxGTElQUEI7Qz47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKigqmhvfafZ0KqVjo2YlpGTkpGWlpaQi3xlYWJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHS0M7M1MrHy87Px8fP0svQz8W6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL7Ax8zMy87Cy8vIx8vQxMXIu8fDycjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7utpaJfb3i50KuQjo6XkIeEhISCfoWFf3NgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLLycHCzNDFy8i/ucG7xse+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xry8wMPFzMXFu8DKwsXH0sXByb/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZujoJuUe3ZzdGZpWmFubFpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+srKRX3KAvrCQi5OXh3uBhYaAdnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsba6srKzsrHCvLy8urjBwcLFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDv7zBzcPGvb21wb3Dur3Gu8K6s7zFxMHCtr+2tb2/u8zDvLW6yLq/vsvEwcbCxsnGyMbQxsLMx7LHycPOzcHFw8C9s7ewsqeoqLmwpa2wqq2slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztHKysrHzc3O0cjQxtXU1tfNys/FycXHwbnFvauvg2N1j7WSjImLhXmBh4eAfoR8dHRjW1xdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLW3tLOztLy2vbG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bBwry4vcbBw7u1rrK2ur+0xLe7tau4vb3AvbG6tq+2urPFvLeuu7+1t7TFvL7DxcDDxcbIy8XAxsa7yMu/z8rHw8bCw7fDvb22ub7Hv6y1urW3to55dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTPzdLPzcXHwcXAvrq4ybaqsIFrcpmcjYaJint5foaGd3iCfXRpXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7i4tbCrrKeeoqqnnquts62prKm0r7ewsqmupqyyvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLHAtri9sLCnsrO1u7yrrrWlrrWuu7Kwqbmwrbuuu7i7wMC9ucK/x8PFwbzGwsjLuMXHxb/Gw8O6xMbCu8bJzMuzucK8u7OIc3Z2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx83Bw8a/xMTDw8rCycq+v7zAurK0tMOuqa6Ga2SKkoiOkHx4foqFenuEgXduXl1cXV1fYF9fZGNiY2NiYF9eW1taWl1aWlpaXGRub2hnZ2lrbnKBrbmwta6mpaenmqCloZqcpauupKiirKqsqq+jpp+qrbW2sb25r7evqa64tLS8uLS8r7e5tbK7wbLArqWpoquxsrSovaqrqKusrbSzpqiuoaSvqbKmp6iupqi3rLGyt7q6u7K8vb6+xL+1wsHHyLe/wMS3xMK/u7/Ewr7EyMzKv77EwMCph3N0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HLvrvJtr3DvrrKt8HDwbS1u7WwrrS7rainiGBtjYOIi4B7foB+eHR/fHN3ZV9dXFxeX2BeX2NjYWJgYF9eXVxaWFpbW1lYWlxfZmtmZWdlaWtvcoWqpayloJyipZSepZuYkaGjqqSin6Wlp6WtoJ2cpaassq+2t6ewq6iqtKu0urG2ta62ubGvurqxtqSgpJ+msairqLmqpKeoqKeyraCnpp+bpKasnp+npKCgsa2trLK0srSwtby2u8HBsrq+w8GyubnDs8C9v7W4u72+vMLHxMLDvsDEoIN4cGthZl9rb2BUWV5ITmdPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9taCelZ2hprq2q7Ozu7PEz8nLwsa4t8fBzL+4ybe7xbizxLi0vsCrtbuxq6SusqyfoYthgIeGhoF8eXV0b21rampxaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeWm6KWnKOZlo2eoaOnm5+fo6WiqJ6bopufq7CssbajqaqqrKyktLmtt7Css7WusrWusKqfnZ+korKlpqm4raKmpp+orKuZn6CemZ2fpZqao5ybna+pq6eqq6ytsbK4r7i5u7C2vLy6q7OzubO9tLaxsbW0v7a9wL3Dwbu7vZeDe3NrX2VeZGRYVFddSVdcS1BHSUlGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vEw8++uce4t763ssG0sbu7q7i5sKGdqKqmlp2FZoKFhn94cm5wbmtiXmJmZl1dXl1dXVxdX2FhYmNjYmFfXFtbWlpZWFhXV1hYWFhaXmJkZGVmZmhpa3KNp52UlZWbmJuil5aRnKOiqJ2bnaWmoqacoKCbmK6ura6yoKWirqynorWxsrKsqK+yp7qzprWgop6bo6Kto6Kqtaqio6adpqajlpmel5manaCal56cnJusoauno6SmrauztKq1sLOrsrm0r6mvsrKzt7Ouqayusriwura6vb+3s7GUhXl1ZV5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWjmKWxwrW2va20uMLMyMbAxbbBv8fOt8DEvbO5ubK/trG4uqyxtK2dmKOonpGaemmBg4R/eG9xdHFpZmRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqKclJSQlZeXoJeZlZihnqGclqGiqaSfn6mdnJqrp6+wqpujpLiqoaCuqLaqpqetsKS3sKS3oKKbmZmqpqGarLiwoqGknKKfn5OUoZSVlpuYl5aXnJWfqZ2po6Gdo6qqsK6otKuqp62zsKWrrrKxsLCur6anp7KusbSwvLS5t66jlIF5dWReYVZZV1NSVEtNXkxPS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri9rp2nqKOqu8C9wLmutLjBzMfFwsO9xbfIzLLBwsGuvLu1u7y1uLmvr6+nm5ifp5KPinJ6gHx3cWlscnRwaWhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjY2JjYmNkZmqBlpOVjJKUlJuZnZeXnKCcoJahoKalpKann52fpqCqr6afoqS3qKGhoqi0oqWopbClsK2rtJ6gnZWVqqGilK2xsZ+io52emJuTi6GUkZOYmJOXl5iXnaabp6GimaOlpaukpbCnpaOrq62mqK6vrquoqqmzpaasr7Sxr7y1sa+uoJJ6dnJkYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ3ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxse2xsSzwr/Fq7e3vba9u7q1squrpZiXnaGKh3F7h352bmNhZmloZmdqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1pZWltXVVhXVFRWVVNUUlVgYF9gYV9gYWNkaYGUk4mRj5STlJ2VlpekmaCXnKCloq2mpKSjo6KcqqulmZ+lsaqgoZ2lq52nop6trKmprayhoqKVmKObnJCrqbCbn6KfnpeZk4qekY2Sk5aQmJiTnKGinaSgoZWgoqSmm6OrpaKkqqSrrqWtsqmmpaamtKapqK2ztbS5uq+prJ6LcnBvYFtXVlVSR1FPSFpbT1JKVEtTTEVGSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm9sb7EyayxuMG1u8C7tLOoqaSUmJmah35wh4N7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eX19fYmRtjpCEkYeQkY+ak5WTnJujnJugqKmrqKynqKWkmaWupJSZpa+pn5uZm6Cerpmbq7OgpaafoqOhlZOblpaSqaqtmpyfoaCalJCMmY6LkIySjZaVkJ6hoKOcm6OVm6GjoZeiqKOiqKugq6+jrbelo6OirK2qqKuvs7ezvrWzq6+YhHRzaFtYWFJVUUVYTFFbWE1UTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62os7auqaevrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEu7e7w8ixrbi/t7y9urKzo6eelJWWlIV4c4B2d25taG1ubXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXV1cXl9gZH6NgYt/jJCKko2XkZeZoqCboKyqpq6sqK+kqJqfrKCVlqSop52XkI+anq6WmKiqmZ+dlKWgnpKQkpGTlaerpZqZmZ6elY2Mi5OGiI2DkIuRlZGgnqGjl5WflZqhop6Um6Wlp6iooLGwprG8p5+jrLSrrqewtbC5tcCxrbGrkH1yc2JWU1ZOUklGVlBSUUxMV01KTE5SR01KQUNGREM+QDY1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqaisKudqqepsrGltsa0ubqzysW5usHL0Muxtri8vsHDsbCyt620s7qysaGhmpuWlZKBfnZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKl4mUlJibmZ6pm6CqpqWrnaiZoaWbk4+fo5uXl4WEkpujj5SjnZaWloiim5uTi46KkJqkp5yVlZebkZGHlI6LgYuNf5CKkpKSoJqfopWTmJiVoqaZjZmkpqimoZ+0sqiyt6Gcoresqq2ksrKmtby2rKuxo4l4c21dTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2saWno6mloKilpLOqorLDtbWys8bGt7rDyszGs6y6vbS3wK+tqbCepq25rqudmJmblJKFeoFtX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGEj4uUkZSeoY+bnKOho5ill6KclY2HmJqMc42Dfo2XloaRmZCUjo57mY+cjIKJf4qYn6OekJOYloWNgpR+fnSJjnmQh5OPkJ2amZqRlZCdjqKjjomaoKGkpJuitK+sr6yfmKW4pqaxobGunLC8qqmvqpmCd3NjVk1ST1BNQ1NOTFFNQlBRSElOUk1ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6a0wbiwtLDJxLe5wc7FvrOsusGrrcOtqKKmkp2mtauhnI6UlZGOfHZ9ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5YcpCDl4aOnZeLlJCfmJ2VlJaVj5aJgJOJXztXb3yLlImAjJGMkIaGc4qFloF5gXqFlJ2Ug5WOkZCDhn2TeHFvhY19iYGRjY+XmpiTio+JnIefmIeIlp6aoaCXp6+praion5ats6Kmrpmsq5iotKKpraOTfXJuYFtOU1JWTERUSlBNTEZOT0lFTFFNS09KSU1PRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTc6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6OpsKintMG5sbWwx8K3s73Pv7mvrrXCp6rFqaOdmIOUm66gmJWEk46KhntydFxRTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQH+VkZF9iZSNhIqNm42WlYmSiIaVhnmIf2BKUW54ipGEfYSNioV/f25+f5R3dXV3hI2ZcFGNiIqGe354lHZod4aIfoqIlYqNkZKWi4SKiJSEmoyChJKblp6dlKSjqKmlpJ6bsKqhpKSRpqqWoqqcoqaoiXRtZ15bSFFRUk1JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njg6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6OnnZ+ir6GnqKWnqK+tqrW8tri3s8G7tqe5yLi2qKi1tqqyvKaelY5/iZOnlZSJfY2DgXx2b21YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJOBkpmLj3uGj4B2f3hzbnVwdI2OgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gXZycpJ3Z3WEhISEe5WJiIqMi4B/hIuMf5SDfIGQmJWclZGfnamen6CdoKmln52Yjaekk6Gflp6epIByaGBcXEpWT1JHSlhST0pMTVJKSkpMUElMUUxSVExFSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5NDc3OTU2NzYyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpmjopicn7Spr6mlraywsaq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGOlIGOm42QfnaFeHt1b25oWEtISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfXlnd42XmI2PfWh5gXZ4gImPfYSYkoFxh498d3tva36tfXOQi397hpKBfX90ZnZ8hmxvaHN8iYyIgGx5cX1wbXWPcWlxgH6OcEOLhIKDhX93d3qLhX6Me3V+jpKPmIqSmpujlpmdmp2eop2WjYqlm4+el46WmI92bm1lYlpXV1RRSlNVVE9QTlBWS05LTk9KUU5ITk9LRUM8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ6WoKavrK6rqKmwr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mPhJJ6iI2KinZxfW50cGlsaVdLRkdFQUBDRElMTE1RUlBRU1VUVFVWV1dXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnp9fnt2b3RzhYJ5gXhwfI6MipSDlpeYmpCTlpeZl56XjIOJn5GLko2GkJZ+bWhtbm5XVVdUUlFZT1JUVFNYVU1OSE5LTU5LQ0hOR0U/Ozk5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp+lrbCirKqota+urLS/q7zCv6aimZWkl52NhIuUoaGYmJGTi3OOeoCFi4Z1b3VscGxka2pYTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVVRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX9wbX96i4l2gYiGdGyaknRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxgHxncXF7bpONj3tzfXxxcG51bYJ/eHl1anmJgoiKhJaTkpCLjZGUlI+XjoB5iJeIhoqGgJCHdmpqbmdkV1FaV1lZW01QVVZZWE5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCw1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfprqvq7KwwrG7w8ealo+UmYuNhXmEkJiUjZCMj4Zxh4J0h4yFeXBzcW5vZHBmX1RGSUM/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgYWBeoSGhnlyoZV0eIFzdZSHNXGdqJ2OoaGEooV2cIZ8h3xzjK2NiYBnZmJqbnJtcIN1aW9YdXCOmpJ3bH97fW1xbXCAenN2bmN2hH6GgIWQkYqLiZGLkYyLj4N1eIuPgH6DgH6PenFwb2tfWlxdW1lYYF9STltaWFdMSEpGSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBk4iWkZ6kp56vlaW1qq6xrsGyu8HGlpCMlJCAiH1ugZCSiYOKh4+FdYKEbJWIh3t1eHhsd253Y2leSVBHPkA3NDQ5Ozs8PT5AQkVITExMTE5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgYWZhJucYYaqn52Lg5COeneIfomIjXOKl4+Eel1kcXR6e3eKbGdqYnlvhY+Cem6Bd3SEenB0endrbmled4d9h3yIh4+Ai5KXg42FjYd9cYR/hHx1d3t9iXVvcnNlZl9bW11TW2ZeV1FVWFtVR0pLRUtHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcj0yMzMzMUV+VzQ9OVyMeIqAlIySnZ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgXOhhIt9fYF/cIB+emd2a1JXTEBFMjExMzY3Njg4Ojw+QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbXyBhod9jmhnaHh+boWHgoVxhIVHa4B3cnl2aG1rX3d9g4l/iIWMepWem4qLiJF/enWLdnx3bW93fn9zcnFqWl1cW2NjWGZlXFVQUFZZUERMS0ZOSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyImJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpiSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1ZLQjYwLi8yMzEzMzY2ODo9P0BCRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiZGBmpWCoKGXlZuapa2Tmruxp7vHw6iKjKGlj5SJgZF7coSen5Gcf3aFhYqPiJBqaG+DgHWNh4SLcYaCd4eAe3aFfW52dWeAlI+GiYiIiIehq6GWio6Yf3uCiXp6b2dreH54fXFqY11aWl1pXGFmX1lPS05XUlFJUEpETkdDS0RDQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/i1suMzEwT4NfND87bnVwZniDe4CMgIGRj4ubm6Scoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBi4uCiY2Df4l/bHBqXUJBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISkxLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPop+UmZKEioWPmJGWbHB1iYuCloyNj3aPhHFshYGKlpKDhYhyiaGWh5OJj4+WpbWpm42VooOHk4R9f2tqa3yAf4ByYVxiXllmalxra15XS0dPU1FOTUxGSVBDRE5GQkNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+mJaalJ+fnKegqpaTmJ5nZaSafoSSkXmAkoiQkn2KhZiSkYKAgIuNiYWQhoSIhXh4f2dNUj4vLi4sLy4tLzAwMDIxMjU1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+ElJKFnKGampmnkZGIlaKamnd6fpSYkqGSl5eBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N8fnpwZ2BbX15hZmNgZ2dcUUVKS1BPSUpMRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Kjox7ioaPkI6BgoCJjIqEkoWChoiBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtL24pa6srKeotKywt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsrauki5aYhaamoKKXgaaZjaKqqKSHhZOkoaCqoaSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWriJqJkoqWent+hH1mX2dbZGFdY2NeZmZeW09DSUhUT0ZITEZKR0VGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGUhYiCm4OSkI2S2sidlnNWl4iPiJyPfIaMjoqJeoiCh5GOg4WAi4WGh5KGgoSJhoeHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJTVVVXVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHw6uzxrass8Czub62v7TBtru7pLjGqbbJx7a+ubSoo7StsbGcmpKan4mnr6uklXafpJehq7GzmJaqraiutruyuqyvtaKxrLG1vLe1rrWgp6ijqJupsK2yuri4p5u3qY2ljpGToId5gYJ0WGBjVWVhYGJfYGVfWlVKREVMVVFISkpESUdFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hX6AjXu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeFgY5/gYmOhoCGiIWKh5F6eG5dVkBFTTw2OjQ2QUI3NjUwLzZDSENRW09RVVdVXFdQX1VJS0pBQD9HS0ZFRDs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMm2vMW9s7PAt7jCtb+wuHSytKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KSpbGupq2sp6SYoKyzuqKpsrq1u77Mv8XFvb2zwre6uL+3ure5rK2wprGqrb6wvbvCwqyZuqiUro+YmKuJfoF6aVZhYFdpZGhkVlpjWVZUSUdHTFFHQ0hJQUhEPj9CQktAQE1DOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWVVad2pwf4+EgY6FbnpyeYhiuKGZo4mVk5aTk5ONkJeSh4d7hoGNlYqAhICJenyLh4Z8ioKBioOVfXd5dWVPXGRHRUw6UWRhW15TRj87SFBEWmRRUVlYWWdaVGBgTVNPRUE/SUpIRUZBQEM9RTZCPkhHS0xTWlRdk6+4tbq5ycC7vcnMu73AvLe1vLu3vrW6ssZgdbOlsZqeq72qpairqqOisrWhq6eelZafmZ+upaenpZ6klKKnsLOnsrK8tsG908nK08bCxczCysPAvr2/vLy3tLC5t7fDusa9w8mwnrmqoqyPpai3iYF+cV5hYVxWYV5nZVJYYVZSVUlFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUFBRUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWhsbHGQjYWQc2xzcnOI1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaLf4N/gnh6i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV5vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVlxaW5K5wLm9t8bAu7nKy7q2ura4ubO4tbSutraZZHWonq1wXqKsnJiho5uknqullJ+fkJSOlpiXqJ+ln5+amYOknaykqrCtt7C9udTRz9fPyczSzM/OysfAv8LKvcG9wsDFxMbKv8jPtKS7sLWwm6y5vZp+eGtcX1xZXWFZYmJRW2BTUUtDQkVGRTxART5CSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KRlG5sb3V1iLOsoaGfi5mcmYyMlZGbkoWKin6Ih4yQi4l8gYRze4mDhnyJdIKKhpV/c3t4bG11e2hyZWlsaWZqaWhgZmlobVptdJetpLyIh2dbb2hdWllUSEpOUEpLUUxUUUlMQUpHS1BfX2JmaWGYt8ewubO7vrayxMe2sLmxsLuss7Gnqresjbannpunmk+bnYyOoJaRppillYqTk4mQiY+Qkp6boZiblZaHnpmmm6yvqK+ns7TU1NXW0svP09XO08/NxcLK0L/KycvJ0sjNzcLQ0riwxLzEuqa2u8SigW1iW1xdWGBXWWVZUFxXTlFDQkhFQkg7QUQ+QUg/P0I3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OT05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmINocW95eYOgqp6ml42bm5eLjZWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfXF4dWxxeH5xe214c2xogHBtY2ltcHlpd31+y7/C36dtY3huY1thYEpQUlVOWV5QXV1OUU5UUVVUXG5ud4Jylq64rLSnsLarrb3Asau1pqW4p6yuoay0o46xrpqYmIyRlJGEjpuBjaaRnImDi4SKiYSLg5SVmJeUm5Gcl5mZnp6rrKSnoaysztLV0c3M0tPU0NTRzsjD1NHIzdLT09fN0tHF0tbGwM7HyMOpv7jQnXhtZFxhXFZfUl1aTk9TUE5IPkFGQkJFPEBCP0VFPj8/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bXdwfX6AoZ6eoYuNmZOTjIuTj5aEeYWQkI2LioiRh3+Ce3J+gIKHeoV1hZORiX9vdnNsc3x7dnxzgXdxaoBycmlvcXp5cnu+y5p+jLGDdnKEdmhhal1DWlpbVmZkWGVrVFhdXGBjXWN4e3+LgZmqpKShoKGppqqxuaqmtKOiraKjraKnsZ+JppqUkpGKko6IgpOJa5WijZiEgYV+kYODk5asi5WNlZmOhZKQnZensKGgoKSkqMfNz8jCy9DT0dTSztPNxtbTzdTY1tbY1dfVydTazcnX1tHKrcTDy4lxbmJfX1dTWVJbT0pHSUlKQDs6O0VCRDxCRD5IQj9CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN5coKJgZ2VnZSFi5aJj4qIjoePf3eElJmLjYiIi4l+g3hze32Dh3eAe4eRl4GDbndwbXV/dnh9c4V8eWyHdnRvfXaEdXl7nbWMPEGKxqV+jXxpZVZJQ2VjZmNoamRveVtfZmhrbmlugIOJkYudn6CdkJeYn6OjprKkpLOgoqWeoamgorGchp6SkpKQi46LhoOPhH6cm4yNgoSFepR+gqmVo4ySipiSi32XipqRq7OYmpunnKe9w8a4tsbN0tDS0MzSy8nUz9HV2tfX2NTZ2M3Y287J2trS1r/MzLR2dW1jXFlSVVBZVkVGSklFRT06NzpAQUM6R0VARUNBREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc1NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqCh3x4hZaXiI+Dh4aHeoR5cXp7hIZ1eoWOjZ16jHB8b3B6f3J8gXGDh4Bujnp1d318gnV/fIeIsHRYqcK2jJKBcG5iPV5ocnBxcG54d4JlaW9ydXhye4uHjpSSm5agloeMk5ugm5+qn6GtnKKamZ+lnp+smYuajJGSjYV9iIeDhYuOoJmTiIOHfm2ZeYSYhoiTjI6VjIZ7m4iTj66rlJWXnpimrra9qK29xsvIycvLz8nE0srU1tjX2NfU29fT2dvW0Nva0dbI1cyVeHpoZ1pZT1JTXUhCRUlJPkE+PTc6PT87Pkg9QEFBQURBPj46ODdEQjc1NTQ3OS41NjY0MzU1NDIzMjM2NDY1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fISXjoeLfoaHgHeCeW57e4aBdHqSno2hdo91gnR1gX10gIRvgZCBb5KEdHyBhXp2hnuJt8akwsm3gZWbj3hwZU5lY4J6gXeGopCLeXl3e4N/fIR2bZSWlJWPl5CDiY+WmpeXppyYoJefk5KXo52aq5aRkYuNkoOMhYmIgYWQkZ6cmYmFi4GGl3uIiJ+XkImNiouCfKGIkIu8oZiTl5mcqKalrp6ntb7AwLnHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvGhXl4ZWhjX1NWVlVNS0RNQzs9PTw5Ojw+OT5BNj4/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU1NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop8foB/gH2Fen6CkYmEhXqFiHt1fXRufH2GfnR/kp2Rn4OSfIZ9eI59eIqKboKagHSYhX6BiYV8fpB6j6mPkMOgu4yco5x9iYR9iXKMin5zppqcmZSFe4+QiYRoR3GhpJ2Mi5CShYiLkZKVj52ak5WRl42MlZ+dlKGUko6OkIt+kI+Oi4SIkpaan5+Ji5SRnZGCi3+mmYiFjoKGhICkhoqLuJidkZSWoaegnZ6do662urWrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3d3dmlpZFZfWlNPTkhETEI9PT45OTs6OTk8PTZAPj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBj4pxcniKe3t/fX98iHp8e4uHgn51g4Z5c3pzbYF+hH13hpugmp6UkoCLh3+Yh4Cckm6HqIV6oIt8kI6DiIScfpqRio2jop+Qo66fi5GLhYuBkoZXcq2Ln6ycj4OYm5CQjlyDopGCjJ+TlYyGiIySk4yUlZSQjI+KiJabnY+VlpGLkpSGgIuJko2Kip2WmaOjhpOdlaCLioiOnJCDiI+Ag4eFpIWLkLOYnJKUl6GhnpmSm52nsbispbzBx83Hxs/Mz8zP18/R1K7W1dja2dra19bZ2Z5ue3NmZVtcV1JWV0NASUQ+Pz46NDk6Ozc6OzozOzs/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieG1ifpKDbm13i3h5fnqBfYZ8e3aGhIBzcIWCe3Z2dXSEg4V9fpKmo56lopaJnZCUlouKqJdyirKNg6aRhJmThJmMopagmZOJmp2hkqivn5GUkI6OiJWLbo23hJrEyLKdoqWbnJiWkbKQY6TNyJWOhoeJkJKOjZOUioWKioaWmpuPkJSTh5WYhICPi5mIjZCql5eko4iZnpWbiY+Hl5eLhY+MgX+Gj6SIjZOomZeTlpihmJ+Zk52borK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6BcX5nYl1dXE5JVFlBQkdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdoGOfXxtfoh4en56goKDfnZ2gIJ8bG6Lf3p8eHh8hIeKfoqjs6ejqrOhlqefpaOWla6ig5C4lZKymYyhoYykm6+jpJ2YkKeWp5msr6SXlJaVkIuYmZagwI6jybmrm6OmrZiRm52ynYWFqKKcmIWJiY6VjYuTj4iBhoeJk5iVjIuUk4aUmIaEkZCcdJGYspaXpaGInJqTkIqRipebiYqWjoZ9jJieiZCQnJqZk5iXn5SgnZWem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LQ1tjT0Ni6cXh1XF9UX1VPSEpOREJDRTU+Ojc3Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p7boWGenyEeIGFgX5weHx+fW9yjXp9gXx4houJhoSSp7usqLK9r6StsrOoo6KwrIqatJ2iuKSVraSXqa23pqSjn5mpl6mjr7CpmZiclJWRl6CYmru7rsqhara4q7CUmZ6jq5OXvaNeqrKCiYqNlIeRfI6OfYOGjpCUlIiHk5aMkJWNi4yXmJKcmbSXlqudi5yUko2RkoyZm4qRnpCLiZWfoY2UjZiZnJKbmJ6UoaCUnJylr6ihpLO4q8LIxLW6vbvFx8fC0aDGyc3NxNfW0cvUoW95Z1tZU15QT0VDPjxDQUI4Pzg3NT9GPDw1PDM1MzU1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo5Nj49NDdUS0NVUUo3PDpJQUVANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEpAi4p/gXOGh32CiHWDioJ/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruzs8C8tK2rs7aLp7Ktrb2qm7ukqK25uKumpqGio6Oor7Kxqp2cpJibl5eeoqalkqS6rqnAvK2tsrmmpKd+iIacrb2wg4yMi5CDj4ORj3qBiJCNjZyIh4+XjYuVl5SRmpedqJqxmpGsnI6aj5KOlZGQlpeOkaCRiZSbo6yUlo+UnJ2ToJ2bmKChlJqep6akoqSws6fBxsOvsLq2xcTCv82mx8THw7zV0c3EyodycmBaWV5aTEpCTEBGRz5BP0I7OjQ+QTw9NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQjVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxlR2BpZ1pdXJOMjIh7h4uGg4x1hpGKgW9+e4F/cX6BepV6kpSUmJCTlaezxsm/wszBw7nHvLqvq7m6l7K2urLArqXApKuvu7yqraujo56nqq60sKqboKqboZuVn7C0p4ujurq2wbysqJyzpaSplIWOqcTEpIKLj4eIhIaVlI16g42Rj5GhjIyUko+Il6CYk5mVmKagrp2MqpyOlo+SkZWVjZCVkY+hlIaXn6CynpSalJ+hmKSfmqCboJSYnqWjpqakr66lv8TCrqi3tcnDvrbPssS/xLyz0cnIwrVzd2tbV1tpUUxIRExKS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk5lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHyNf3iHgoGQeo2hlqiampi6vcfIycHSycrCzbzBs627vqe6v768xLeswamss7u+qrCppKWjq62zrba1oJ+unqWimKOzvambqL3Bo7e3sKuTsa2rrJeHmqmnpZGCjJOllYmBdoqSeoWNkpCen5OPlIuPjZSjmZeclZWjnqmfkaWajI+Pj5WWiHyPlZKSo5qVoKKctaWQnpeko6Klnp2mmJ6Vl5uko6inorKsqLzAw6+lsrfMwLmvxLO7v8K4rcLDwsCYbHhgV1ZaWkpLTUpGRERIQkJBREw6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+JoJOEeIV/lX9/kIiKkICWoZmupqOYwr7Hw8fF083Ozcu7wrewubyzvMu8w8G1truts7+5vK6vqKCop7atramyt5qerKKnoZ2rt7ippLC/xLG+ubOnqrW0rq6XlqWsqKCRjpKxxaeVjn2RlX2IkZmQqpmYk5OPk5WTpZ6TnZmUoaOinJifmIuMj4+eiFqQlpeSlqSZZZijnrKklqGWrKyqp5ueppeYlpiVoKOopZ+2q6m5u8O0pbO1y8C4qrassru4rqi4ur24gmttWVZUVE1FSlNOSz9CSEVESEdHOTVGTTs+Nz1ASi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZGDh6aTiIKHgpyEg5WQkJOOmqKfr76uoca8xcTGxs7OztLKvru2sbq7u77PtsS9uLi3srG1s7izq6acq6u5qqinr6+Xo66kp6SktcCwq6y0v8O6wLqzp7m1uLOvlaWtrq6li5OVoY10wZp+l5mFj5aajLGVm5qVk5OamaWjlaCblpqpnZyhoJmKjI+WnWBKlpyalZqlllSWsJ+unJ+klK+uq6WaoKWUk5iYjpyfpqKZtKmqs7y7u6qwsse/uaasrK2xsaOhsrK0pG9sZVtZTk9LRU9QUFE7SEpIR0lDQz46S1U/QTo9RU0wNzU0NDpCMzROV088SktOVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4unlo6Jk4Wfh4Sdl46doZqjpLXItKnGusLDx8rIx8zNxr67s665uMDBzLXHusG4tbqwr6+ztKajm6q0tKmopq2smqStpaSorLq/qKu2t77Bv765s7LEsrm9rKOutay5poicmKabdr+ghZmdjpOZmouvl6GcnJeVm5+hqZ+ooJmaqpmhp56YkI2RnYNudpKimpWdop6QrrKiqpSoqpeqraOjn6WokpKZnIiUnKKel7Gnqau6tr2zsq2+ubego6eopaecnK2pqYxiZF9eUUpMRkhOSVVMPU1ETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5WcoZ+7r5mUn4uTq5uRkpOJq42Hop+Mo62Uo6O2xr20wbrCwsfIxcLNyMG9ubKvubTAwsq1xbHBvLS6qqitrLCio5iqtLulqaasqp2or6ejqqq+vKetvLS4vce8t7W3wbG+wLSptberv6WPo5iRoqC8n4maoJmXnp6Pt5+pnKWjm5yhmqils6GbnqacqKqemZWPlJuLl4mMpaKUnaKeoLSvpaSTr6uZq6udnaSjqJGVlaCDj56em5WppKGhtLS6ta2otbKznpyjpZqXlZmqoZ52XltfXUpIRkdNUUlNRUZHQlJMSkJFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoFkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+ew62bl6WYmamclpqaj6qWlaemla2tmaGrtsTCu763wcLAx8S+zca7vbmyr7izv8LItb+vu7a4tqakqqutoKCaq6rEoqWoq6aeq6+soaiov7emrb6xuLbHtrW5uL+yv8G3tLO0r76jl6OWlJyUrqCRoqKlo6OfkL2kqZ2oq52doJumn72imKOfoqmroZ2XjZWek56Hj4WNk56koZ21rKWblbGnma+nn5qpnqCNmJSeg42gmpuTpaSamKuxtbGqpaqtrJyYoKCSjpCWqJ6UZ2JYYF1OSEdKTktIRURJQT5QSEA8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm5SRjxLeGViV0yimqOcnsWsoZ+snp2uoJOjn5aloKapq5e2saOqs7XExL2/tr/Cu8jCvsrItri1tbCzs7fBxra+sLi0uLWfpqyqq52dnqWkwaWgqq2fpKmsr6Kmp721pbG8ube2w7Kzt7m/ssTAuLius7W1o52llZKUoa6gmaKdqairo5rCramerK2bm56ZpqG9op2lmKurrKahmY2Zn5KfiY9Xf5afpqGguKqmk5i1o5+yoaCbrpaejpiUnYGOn5eVjqKklZCmrrKrqaGipaWVlZ2Yi4+Rk6SeiWBkWWNgS0hKSk5GRUFGSj49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0hANUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dySEU2PXVlXEtOnp+hmZ7DqKWitKKcsqiTq6SgpJ+tqaydu7CorLWxyMXBwrPCw7zGw7zEyryvsLatsLSvv8S0ubGwubSsmaiwqamanaWhp8Ktm6yxnKmjrbCppKe9tqa3u72vt8Ots7LCwLLHs7q3rLS2rqqippaVlaSsop+fmqirsK+vu7KmoKmomZmYk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWdmqOfp7OmpoyYs5ujrpqem62QnpOWk5l/kaGWj42foZOLpqywpaahnKCekpKak4WLko2cnn9gZVpnZUpJTEpSQkNASUc7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTj47QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+jn5ygw6ikqrKho7SqlbOsp6KksqyuqbuyrLC0tMbAxMO1wMS9ycS1wMjBtKu1qK+4rL/EtLeurLa5pZmrsauql5+ml627tJuosJutn620sqequbKourO3srnAqrexw720xqe+r623tamorKGXl5KmpaKjmJilr7iusrW2oJ+opJmVlZOkoLejpKaWr7Kyp6umoZ6bmpuWmKifoJiinq+yoqaMl66YpKuXmZ6kkZuNk5aZhJWelIyPnJ6Ui6mpqqGnoJmelYyOmZCBhZWJlJ94Y2hcampNUE1OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzuko52hpr+mqK+voam0q525sKujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDGwLqptqSsu6zAwre3qayxuqKVrbCtspalp5Gquamgp7CdqqCvtLOqqba2rbuss7O6t6y4sMO6vr+mw6uwt66pq6umnpiZq6KioJGYobGvs6uwuZqcqaCZlpKXpqG3qaWjo7CxtKuyqKufm6Cgm56lnaKXnaOzsJqfj5OlmqCpmpSinpWYiZOXkpWWnJOIkJuZlI6oqKafo5uXm5OHjpmLfYyWhY+bamhsYGxuV1BRWlRBQ0VUQDs7SEE3OlhQZF5QVldEWV5dTUxSTl5LSj5aY15OSFBOW1VZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMWVbZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oauwqqOxuKqltbOsoK21vK6zuLy6vba2wMK/yMS5xMHAwLjEvcC3r7anq7exu76/tKiusbael6utqK2Xp6iOp7ufpK2znquisLCzq6m2tLW9ra+xtaywtLHBusW3q7yvsbisraqjsaaepamgpJeQmaCzqrOqqrOanaebmpWOoKaktK6noq2trrGns62yqqScn6ijnpWhmZuotamXmZGSnpmeoJ6Qq56Xl4WUl4qcmJuTio2Wl5qXpqWioJ2WlZeTgI+UhXuOkoOMlmVscmdvcV5GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2FVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoKSstqStqaWurraqr7W6p6awt8W3sbe+wcK0tLrFvszFucLAub65w7fAubK0q6m6trq5vbSprbC1mJinrKqrm6urjqu9nauusaOroLCts66ttrK5t6qurrKota+zu73Ksqq2tbG0r66nobOgm6itoKWVlpuasqOtoKavl6GkmpqSjqOlp7OpoaayrKq2pa6xta+kmZ2tp5qYn5mZq7eil5OQjpecoZeWk6uem5J/kpeMnZyalpCJlJKemaWioaCYlpGTlXqLj4V7jIqDi5JqbXhtdXtgRWFqWUlIWVo9e0pGRDZBYlRpW01cYEpcXVpSU1JiYUxLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lUS0SZl6CxqLGqraakr661qbe0uaSss7fKurS6ur++tLO3w8DMyLzDvLa9v7+3v7yxva2nuri3tsG2qqyxt5SXpq6rp6OwqpSvu6SssbKnqKOxtLCxsLWxuLOprquyp7evtbTDxbaptbassK2pqKO2oKCnsaCklJyalbGep5ygqo6po56blpimpqW4p6KxtKynsqetsLaspJmgrKibnJ2blKm4nJSOjoqYnKKXj5eloJ2UgpGVj5ycmJaUh5aPl5qnnKOgkpaQkJV2hJCHe4WBhIyLbXB3dXt+XEtlbFxLTmNcPmJ7R0k4R2dXZlxNXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLj1FTFE8M3JrSkNDkZmlrqWtrqunpLCys6q3sbegq7W5ybiuwbvCt7KxtcLCzsXAwb20vL+/ur68ssSnqbiwtra/vK6qs7Kcn6exraalr6WdsrWsq7GxramotLqss7K1rLStqqyorKm4rbGwx7+4pbqwqa2tpaitsKakpK+kqZyenJuvmaOjoqORrJ6joKCiqqamuaWstbWkqquorK+2rqOdo6iqm6CampKks5mOiY2HkKKglI2TnJ+TkYSNkpKdmpmVk4eXkpWZp5ufnoySkY6Qd36NhX18fIeJiHBzcX59fVxTZG9eTllmXEZElltHO05tWGJbTF9iTlZXVldUWGdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis6ST8zQklTLD6PazxHSI+cqquiqbGkqaWztLK0tbKyoautvMy6rsC7x7G0rLTCwtHFxr7Asr3Awry/t7vEp6y3rLO4u7+vqrGtoKOnraqopLCjqrGqr6ywr7Cvq7O7p7awsqmyqaumpaOtuqyqscK5tay6qKioraqosaWppKOuqqiin5yjrJWlnpiemaydoqepoqymo62suLGyoKmioKuvsaydn6enqZmjmJmPoKeYhoSOiouen46LjJWbjo2Fho+Un5yVl5SGlpOTl6SbnJyLkpCNiX5+h4V8d36HhYZ0cnGIdWtfWWBuY1FzcVxLO4R8Rj5XdFhgWk5jXE5VVlVXUVxiXlNPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlFo+TEWVmK2ooaqznKqqsLWtuLWuq6Wqqr3JvLG+t8KvsayzxMPOzsO+v7PAwsO6wLPIw6uut62yuL++sq2tq6SnqrCpp6ixprSuqrCurbGwtK20u6S3squsrqeroKKer7eqqq26tqW2taOqp6ysqq2hqaemsrKkpqahoayWqqGVmqCmnqSiqqWtop+nsbetrqOlopuqq62pnKGlpKSYoJqVj5ick4GCj4iFnJ+Lio2LmI2PioKLl6OakZCai5OSkZOimZuZio6LinyGgIGDenSAhIF9c3aLo4h4al5gbmdXZYdjTj9nk0xFYnlXYlhSZVRNVlVVVE9cXWFVS01pV1VXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIY+SEZEl5KwpaOqsZirqq22q7axq6Wsqqm8wMC4uLO7taWysMTJy9G/wbu4v7/BucG5wMStsbWxs7q/vbKwrq2rqqi2qqaur6q5r6ixsa+yrbaqt7ems7WrrKSpq5yjnrOzqKiktLSgtq2gqqirqaynoKusqbm2qaqqqqKpoKyckqmhnaCko6ajqp6cp7WuqKaqoqOYpaanqpyipKOfmZifkI6PmI1+h4yGhJ6dhoOKiY2Nj4yChZSimY2MmZCRkY+Sn5aYlouKg390hoF/f3l0g396d36Ah52Pb3FnZ3F4XGBziGtPXplWSG14VWRWUmJPTVVUVVBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0pqNk9EO5aOsKGmq66arKWtr7O1r6ulsKqpur68wLGuuK2htq/Jx8jRwL68urzCvbrDwL6/rrGysbW8usGxsbKrs6iktamlrbOyubCjrbaxsLO6q7mvqa21q6qeqayfoqC1raihn6+yorSqnqinqqSqoaKsrai9r6yuraKoqKCsmZCwoZiioKennqibmaqwqaOfraKhk6Kjo6eYmqmlmJeZnY6Kh5SIfY2GhISkloSBgoqGjYyQg4OToJaHkJyQkpCNkZyUl4+KhoV4dIF/fHV4eYB7dHN6aICGo3VpXmVrgXVniIt9U1hwXkp4c1NkU1FeTU1SWWZOTFZZZFhGU2lSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQTSRj7KgpKaspKekrKe0srGqpLGoqri+wbyvqLmqpq6wycfJ0cO8v764vr+8ybvAuLCvtLG6u7fAsrO7rLisorSnp6yytrmzp6i8ta62vbC9pqystautnKmvo5+kq6qnnJ6qsqSzqJqqp6qkqZ2jqaepvau0r66dqaSgrpybs6OVpJylpZ+km5qpq6Wem6qhm5KcoaWdmJepqJKYmpOQioKPhX6Pgn+Ino+Ffn2LhpCNj4R/kpqThZOhjJORi5GakZWGiX5/cnt5fXxod3x6dXBwfWiFeISIZGFoY3KFem1meF1eVkJXem1UYVBSWEtLTnF1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0JKN0dTYFUqPTpEWD8qj5SxmZ+gqaWloault7Kypqmxp6y4wb21sKO5rKioscPJyc3Btr2/tbe/uci2w7WzsbWxvbe5vbWtubW+raGzp6qrsLW4tKufvbyps8Czu6Cvs7Wpq56tsKOcpKiqo56cpbCmsKCfq6mooqqbpKigrbunrrCuoKujpK6enq2ml5+boaOcn5yao6qjmpqkpJaXlJ+ilpuXpquLnpGQkYyCioCAj4B7mpWNiHt+i4WOjYuKg5GXkIaUo4mRkYeQmY+TgIh8eWx9dnh4Y3t6cXBxcnhogHRqg2dkaGFuc45tYWlwYHBBXHhsVV5PUVFKSk1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDFCaFkxM1M9ZV9ETDZLV2VPKTsyT1k9I5OZrJmfmKeko5+opLivrqOvsKqruMK6s66fuK+rqLS7yMvIv7fCvq+0vbfEtsOxrrmxs8C0ur23qbm4vauktKipqrCuubGqm7u9pLDAtbWhrra1pqansbOgnqSmp6GlmZ+sqKmeoKqvp6GmmKOooLC4n6OxrqCroayknKanqZqam5+jlZ2dmp6pppeboKiSmZOZnpOZlqGpkJqJjpCGfYd/go59fKGNjIh4gouEiYuLhYeSmY6JlZ6IkJWCi5eMkXyFe3NwfXFzdGB5eGlvcXBvaX5xY3psaWVjYGaGf19ac2tyTEx+aFhaTVBMSkhQUlBJTlxfblNEWFtSZ09IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo+L1lYNSiXnaaZnZatoKChpKG3q7Gks7SqqLnFtrOuoLesrq2wtcbIwbe/wbmwtLy3v7u+r6u9r7S/sLzCuKm7urenqLWoqKuwrLOwp5q+t6WtvLawnrC3sKilp6+xm6CkoKSkoZecr6ahnqKnr6KgopOkpKO3sKGmsaqerKOvmJyqpamemJqepZObnZqdpqqanJyllpWXlZ2OlJejqKGQiYuPhHqFfoSKeo6Xio2GeIGGg4iLjYWNk5eMjpaYio+WfoaXi495gHtwcndvb3RfeXdkbGxraWiDbWVyamtlaFxjc39fWmx2aVpIfV1bWE9PSkhIUlVGMjpfXmxQRFhWWWVNSUlFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0FmW0hURFVdaEUuOzFgVCwylqOhl5WcqZ2loaOht6qvoLq5pqy9xbOwr6O1r6yur7TExL2zv7q3sLO5uLq4uq6tv7O0uK+/wbisvbq0pqKzq6ips6uusaOcwbamqba1qp6yu6mmpqiwrJmip5ykppSYobKlmZ6kqamcoqCTpZ+kuaikp62mnqWhqJOfqaGhoJmbnaCSm5yXoKKrm5uZoZWSlZaajZSTo6ekj4iKjoV5hHyFhXycjYmKhniAg4eHh5GFlZKSjJCVlI2OlHuDl46Kd357bHRybGxzYXh1aGhqZ2VvhGdoaGRmaWpfaGJpZlplemNhUnNUW1tTTElHSU9TQCEral5qTENWVV5gS0lIRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc4Y04nMp6ko5KOpKacnp6epLWsp6q6t6isw8G3sKyitK2nr6+3wMC9scG3sa6xtra4t7Wsqryzr7KxvcC3rry8saWftqympbSpq66goMOrqaaws6ustLqdqKqqsaaYnaqep6WRmaatopmepKqhm6Kdl6Ccp7alr6quoKGdnaGVoKafoaCZm5qckpqelaaeraOYl56VlI6UmIyPmJqnn5GIiYqIeIV3goKCnIeLgol7foSHhoSQhJWVj4+PkZGRjZJ7g5WNhnN+fWZ4b2tqbGd1c2tjZ2RjdH9hZGVmZWlqY2lwWV5YXWxkYU1oV1pgVklHSEtNUlg/OWBsaUdCVVNcW0lIRkZBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssMEEqSksuLyorMzcyMig1NyQrNy43MjY4NV15TjI+SGlaTFpKVmJmQTozQWVIJTWbpKCRjK6gmZiglqW0saKxvrehsca8ubCxo7arq66pub28u63Asq+urbavs7izp6u5sK6utLa7tq+4va2mnrWroKGwpauvn6XDobOlr7Gvt621na2vrK6jmZynqqWflZuopaCZpaOpnZqgnJSbnaywpbmnraKhmpqemZ6jmqWdlp6Ym5SaoZKolaypm5ScnJKMlZmOlJSYqKaNjYqJj3uCdIKBipiFh3yJiISEiYyIkoSUnJKSj5CRlo6Qf4CNjYJvgX9meW1oa2pncXJrXGhjYXJ/YGRnam1sZ2poZmxcbG11cWFUYmhjZVlJRkxNT1hRUFVhZYFUQFZTWVRGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUlkQic0k6Kbj46xnZuToZqpsrCfuMC2obTCvL25saa2r6mupbe5t7isu6+tqqu3qrS4raWztbGuqbG2trGytbqoqZ+2qZ6fqqKqrZyqwZmupa+wtrWsrJ6xra+qo5uco6yonJWcp6SdmqmjpZaaoJ2Rm6Orqqm6n6akoJiamp6hj2uilZiccYKWnKSAdpGrqJ6WlqCRiZeZgJeLn494hZOMg21pfneDcGyGioZ9hIqGb11kYGeEl4Zri5CUknV3i4R+g49/ZoeAaHVpZldcaXRuTlBqZGZxgmZeZGZubGleXl+JkIWHaE9LRDhFVGdeSkdQUFVVS0dTYG90ZUVbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTZPa1tOXEtbZmI+RzFQYjwrL42kmYeVsZuck6Cbqq2ro73Fr6m3w7i9vK2ntrCmq6S4tLKzsbmtqqestKawtaOnt7a1qKestrOutK2zoqmftKueoqWcp6iarr2Vp6avs7etraSorqqrpqGenKCop5yXoaamnJynp56Tn6CZkJ6nqqO0r6Oio5yWmJiXo4ihj5Kah6GHlJ6hf6V/p6uek5Ock4mEcniMjoOHoHaIjGmXiGZ9c3igb4iHg36MfH+hoJ+Zf3uInnSIjnabimyHgYNtaGVjemxxYlSGbWNtaZhxWGpwboZXXmlba2pbiHBteXKHaYeEWl5GTj5GXk1GUlZXUVFSV1RnXkxZS1JSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxVmA3LyiMppeEnaydmZmdn6uqqKq/w6+yur23wL6qpLexqqyms7Wur7O2q6mlsa2ltbOcrLW2tKWnqLOxrbKor5+qobOpn6SjmqKjna+2laSmpra8pqynqaqsp6aioJmgp6SZmaajpJmcpKqXlKKclJOipaagtqSjoKOYlZOYlJyIrpCYlImpi5ejnIWxgKStnpSanpV5gtSof4eUwJvHeXixpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4FslrGrsHhoa1ixrm9labySvG5oem1xj9h+U2pjtrJ/gHGUdZqhqpBXT1dhT1ZORlRbWFFQU4tcV1tQQFxFUU5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtcNDEhjqaTgaeqn5ednaWtsqmxwr2ytcC1t77Cq6a0ra2pqK+0qq+2s6inprWlp7iunLKxtaqlpKeyrq2xpqqep6SypKGhn5ecoKCwrZWeo5+0uaKpqKGtrqSinpuaoqmgmJuooZ+YnqinkZynm5SdoaaioLCjnp+jlpaSmJKZhbBraoqNqn5nhJaHrWVxnp2VmqaVca6hpH53unxroY92sV9qtFulgGWckWBmgXpmf2p4aqllvnJnpox2sWp8sXh0kpNjbW2nbVuEoEVpZ4eWRXWcYH1me6Ongllfi6tpgJR4emqnN0qvW1dUbGNaS09XX1xXVjtOiE9XVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5KilYKtp6Wfo6SqsbettL2+sLfFsri6wqepsKyvqamxrqSwurCkpK6zo6m5qZ6zs7CjpaCqrbCsr6ann6OisZyjnJiVmJydrqeXm6GftLKhqpuhra2gnpqXoKKqnZmepKGcmqGnpJCdo5qXoJ+rn6WmoJqfoZWVkZaRmoW1m7V4hamZtZl3h7Obt3+TlpeplX5rgaZ6gYWHkpSSd6tnarFbrHuOh5R0iHCOhoB/iJCXeIOCi5eMg6CPhbB2d59xa2psfItOpFhIY2OZfmNopmB5cnVSk4ZeUKltY3F9hoBinS5Rom5bVGtnYExLXGRYXFpCPrB4V1hBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8yLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2dXN0o5YVU1MByWn5SIs6amoq6pp7Osqru2wrC8wq24t8GqrK2ur6ausqmhr7yqoae1raOrtaSms7Ono6Kdp6qyqLCnpZ6gn7CXoJqVlpeYn66jmpqkqLSuoamPqaipm56VmKClqZqfnaOfnKCjpaOVm56Ymp2iqpylmpuboqCWk5GTk52D1ZOZuXCwwn7GhnzWlJu7fJqWpZCNm4ykeo2Ho4KlgnqseY+dVa97iX6farlauXeGg32mgpN8mHqqeY2dj3uxbo6EdJC7hW+UT6+nxYpRoHpjYKpic3KHbJeHX1O1tMiGgIl8Y6QzQp12XVFqaGRQQFhmWmRhSkhNbEtaU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSguMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFRODIlnKGTmLGoqKWzqqW0qKW8t8GwusCxtbW8s7ansbGjsbOmn6+2qJuouq6ir7Ggs7SwoKSenqepsKm0qaWcnZ6rmJmYl5eWl6KrnpqXqK2wqKOfjqyip5ael5yhpqKYoqGioZqioqebnqCelZmapqCcp5Wbm5+gmJCSlZGdiLJuaLVxq4hwjqZytHNytnuamKSNj5uNon6QoKV+sHaDkdLRdVuufIZ/pG+bqqZrhoV9rX2XmY97sXOTnY54s2WWdIWebp5mlFLIi1rCXJ95Yl+tYHdzhmKXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFPal9saVBVRkk5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyL6KdkaSvrKSqu62mtKWotru8sru/t7a0u7uzpbW0orKyo6Csr6SYprqupLGwnLS4qaCmnaGqpbKorKqlmp2aqZ+WlZiZk5OjqaCXk6arsKWilpKsn6WSlKGcpaeglZump6Gao5+tmqCenpCWm6KenKWUnJWZop6VmJaSm4Wse3eodqOPi4epb62Kg6iDmZmiipKZi6J+kpiJroV/grNccrNSrn6DgqR/cdd9d4R+j52GmZp3r4aKkZyHd7RhmmWagoGVbJJasFhLmnWYeWZgrV53d4dnmIhqXa93lZ6PeGw1eciusl9CVG9eZ2BFT2tfcG1WVU0vZWNpU1lRO0FEQEw6NT85MT08MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6ODifnZSguLCYtMGtqLKnqrK6uLS4v7q4s7a9taW4tKC1rZ+gqauflae2rKiwsauttKSbqaCgqKK1p6aqo5melaWilJScmZOWo6abk5CnrK+loZWYqZ+ij5GimqmmoZWapqmenaSerJ2gnaCNlJ6bnqCYmJuVl6GglJiRp52GqX19pXmhj5CDqnCtjIKnhpagoYqXl4ijgZCHlKp8gIudeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClGySXKtbWpN/kX9oZ6pkc3uBa5iHcV2sWomgjmtuZU9KQ6FcWk10XWJmTVphX3N0X0pVNUqakllIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT44oZyZmb6smLTCrqutqaa0sLixtb+6urOxt7yqu7WgsaWepaennpOqsamvqrWsqq6hmKGgpqSkuqKjq6GXm5GioJWUn5qUmZ+gkI2MqbCvpp2Xmqemn42SpJioq6iUl6qon5+go62joJ2hjZShmJ+gkpyXnJWdoZWXj6ubj65tcrR0qYx3iqZztHl0s4CSpKOSnIyJpIeOdrhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJql1ytYE2hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdmVG9uLlunT2JTa2VibFpiXGBxfGNTWVA+Pm1vM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs8MDAwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eODFCOaWam527opyywK6tq6unt6m4r7XAtbyxr7m4q8G3qquhnKekop2Sq6qntaOyqK6qoZecqKCkq7mdo62clpmPpaOWjZ2hnJmdn5GTlau2r6eZlJusqZeMk6aapa2kkpersqSgnqirsJmhoo+Yopegm5abl6GTnKmclJGrmYfUkpq7dLHEgMOGfdWWnLh4iJGXjJeJjKeHeaO2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIpumohwbY2kdL1dd31bYXm8alpWW2l5XmlgZGZibXhvWVtZQ0FAcj9DRis1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy03QDmmmZ6ivKKXscOwramqrLGnuK+2xLG7s667sK7Bsqylo56koZybkKqkqrKktaetpJ+WmqqZpqy5naOumZWhkKagk42co56YnpqQlpKvubCrlZejp6eUkZalnaStnpGgqKugnJ+ppLKeoqSOpqGUoZmcl5akmI+woJKVqp6FkJm1gJGRjbiVeIKTm7V3bmxuc255j4SOiXOewbu8mXqBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycHe2jF6Aen2JZ4N5bXlii6xwdYV/WFunakRkWlRmX2NdYlBnZnFtdUJNUExEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdMVF9HJ1NiVjgqT11dPSs7VlYnPTs8pp2gob+mlrPDtKyqp6yrqbuusMavtbSvuKe1uK2qo6Kmn6CdmZOspK2qprWoqJ+blqCjnqykvqahqpiVnJGim5KPoaiik56XkpiUsrW2rZidpKSii5KSppylq5yWqaWmnZuiqaemo6igkayel6Oel5eYnZ6PsKmUnKeijmp+aZyneIlzfpqOdXplh3u9vsC6bpKDcZSGX3JqWl2aiWFkh46Va2CAlWNtm3ZilGt/mpWUZV5gY3GbiWhyjH2GlGZqfnF0eX18Ylt3dIFoUFxuhH17i2pYbHmCcklKb4VwTXRNRVdcZmFMW1dmY15PWm12anJST0RFTjtISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SVJfSSdTYFY0KVBeTCgzPltPJz8yPqifqKHBo5q0urajrKWup6i1sqzIrLC0rLWjvrGyp6CjqZ2jm5qZrKeupKW1qqWbmJWim6atqb+oqaaWlJuVoJqTmKWpqJGekI+YnLCyv6ybp52noYmTkaqbqaScm6ygo5qbo6esop+qoZmvmpWmn5aUnZ+dl7ClmaKomZyRnpyjpJmno5qcmpuakJaCaG58cXaRl5SRhIm0qY2FmJWOioyYl4eUlYqDkpKQiY2RlJmTmJeaoKGam5SgnY6CeqSFbGl8kHyAdImKgXGCeHl2doqAe4lqc4F0g3Vkd312a3B6bWBjW29oTVhYZWpfV1lwem9uZlNPRlM5T1pOUk8oKzpKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5TMTBUXjorPThdSyw8LUCyoLOhv6KksbK3oKmls6elsLWqyautsaa1psCotKGepaWcpJaVoKunrKOjt6ygmZaWoJetqqbBn6yklpKcl56Yk5Sin56jp5KRmainssOvmaudq56PlpapnqucnqCtmKGbnaKlr6ahpKeerJiXpp2ZmqGenpywoJ2ip5aYk5mUoKKWo5+XoI6WlIuKjY+WrY97lZuCkoGJqaiFgJiWioSOn4h7hJCGhZmQh4aJlY6bl42QmJ6jlpmSkJ2Nfo1lobOuhYmEdnqPin12eXpvZ3mQgYCJa3WBeYhyaHR/enaDiIJrdGN4Zl9oZGNkZmpYa3txampcUkxQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RdUTA1TVsxN0U0XEc1PCxAtKC5r76tq66ysqCqprKtoqyzsMWwqqyjs6+9pLScoKeioZ2Zl6imqaakprO1npWUnpmZr6auvqCro5GRnpqZlJGVoZyXqZ2FnqmsorPItJ+ppKqWlpiap56pnKCkq5Sen56gqq6ppaKqoaybn6CgmKWenJ6cr6SZn6iTmJedkqWamKmempdmg5J8ZX6Omo9jeI1saGt6kKOra2SZmH5nhYplZWloeo2hjmtnjJeRondraouYop+Yc2xueoSNhXlYZV2FgV5rioqBdltoc3d3kYCHgm54gniAc215hHR3iImPg3tohFhdanNkXXOIaWp8cWxjXVFOV0lkWEBKND5GNz9GRDcxPD0/QUM7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS83Wk82KUVZL0RPMVlDOz8uPaWfury5r6uzsKulqK2usKeurrC9samopK2wsaCtl6CknqGamaarnKyjpqips66elaOQoq+mtrmlrqOPjpqhmZOSmqCZmaaWe6Wsoqizw7iloqevn56VnqOfpJykqqiSnqGeoKqvqaqiqZ+nm6afp6CslaGbpbCkmJyrlqGem5OlmJ6rmZ5+voOIcrRyhZ6GrWh4ucS4cZKho3ummJlzqoJ8y8DAu3GLooeDnnyVmIiewL2Clp2djZzBwXuBepGMmsK/fWulsW+MgW/Ken+beJGDjoB2eYF/eXF6f4dweIWMk3lsdZFiZV54ZF9lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWo7jDtbCvwKmplKOvqbCvraayta+rpqamsaugq5iboqCcm6qnop2roqWppaS0pJ2jk6aurLi0p6+ikpGZnaWSkaChmJygnYemq6Srrb/AsaGqrqqWkp+dopmipKqjk6Chnp2srqmrpaOipaCkpZytqZGkm6iuqpydqpysopaXpZaho5icf86UeXqlgnqVlptfrY9ejqeAoaB8p5WbdKuDgK9eZI2peqeHhZ90l5KIs2OCq4agjY2yaoSudHyWh7hhgq1Zo81uj3V723t/mXF+iJJ1f2V7iHZ2a32Ibn6FkJJ+bICNX3Bqb2ZgX3hkXHFoamNmYFJUUlddSk9DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc3MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKy0uSjAnO1w6TC0hUEBGNC4xrcLAwLW0sLeYnpGkqqmttKumsqytrKSsprCqoKebmqaYnKKwn6CfqKejpqGfsKybnpamrq2xq6isoJSSm5+lk4+epZedqKOerqSrsKi/xrOoqbGulpOcnKKXoKmqn5Whnp2drq+nqqibpqajoKqSrbOWpqOrqp6jp6ahsKGSmqeaoZuUlJGXoHCFjJd1hKiHcbB8nXKsfqGfgaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIoYuRi5x+q3uIko6ggHqtVpzEeo9vksF9gZVtdXCMbWZ2ZYZvYXducm6IipGPg22QjmRuc3VvYGZtZF9uaWluZmNXVFxhWlJSQzhJSUBEPD48QEVEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz5XSi08KD0xKTNWQEYhHEc6QzEuK6/UxseytJ+do46jo6KtrravqbCnqaqorqurp6KjnZmilZ+mq5+ipZ+oqKKfnrCtmJuWqKevrainqZ6XlZqkopKUoa2bnaejrqyjrLWpuc2yraaurJeVm5yimZ+urJ2WoZmen6mxqamomqqoo6Grm6+xoqisrqaZpquqqrGjk5ejpZqUkoWkaqR1iXqpdHqycYKliZiMcIigmoekX2BSq4R/roKbda6Cp4aGn3qYloV7ZoCjiaSYhoGjfal+gJSGrl58qFWdopKBeqKfgHvDr8WMc6+zs7lxYqmvwnVojIuXj4FsmZFubXh3d25sZmVkcXBme2ljXFdfaVhYVExMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLWwr6mso6imqqurqaSmoJuln52lp6ajnKyaoquhpJ+vo56bk6qktrCuoKmbnZeVp6SRm6Kon6CmnLCmo6ixrLbIsrWqrKqVkZydopmfpbOdmqGUnJ+mq6uirZmrqKGhqaKzraKqs7Kim6qor6+2o5OWpKeYm5F8qmyehId1q3l8sG6CpIuIn5aVn5WB0re0uMmAgbJeX5Spg6SHh6B6mJWZeKrJc5mjlKepkJKbjH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTY46PnZJ7cJaRfW96dHx6bVxmanJxZoFpXmFYY21cXllJTU1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTk9QTUZMSlZGKkwwLz4tNE9UUR0cOzxGMiwkqKTBxrmtqLKurKWinbK5rKqhppuopqqsqaegpqWYqqOfrqudpqCsmp+ppZ2ntZ+il5Ooq7ayrJumnKCVkKatkZibpqKgqqeuoaOnqbC0wrKzqq2olImXnaWboqOvpZehlZmcpaWrmq6crKelnqujt6yhsbmwnZuvp7O0s6WVmKikm6COgp1OeJqBf596hKN8gqSEhqaenJ6ThLh7fHm5gn7MxcK2eJqgkIuffpqWl4p1npeKpJijqH6whZyEnoOsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXWPkaOWe32RkIhzenKEfnBbbG53cmqBblpjX2huYmRdS0xRVEFISEZJOjlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMjpQW1QcGzY/SCwtIIyHmamspKu5q6+gm6Gss7Smn6CVpa6urqmmnaammqOnobKuoammsqCZqKSUorWio5WXoam1uaSbo52jk5CisZmdm6akoaKvrZ2kqKK1scOxraqtqpGHkZynnaOknaWXnpiZmaWjqJmtoaykpZevpbytore3rp2etbK5srOnmZ6woqSeho/RtcO3eYeOhZGTj4CmeJSid4ygkoSlgotxq4aEtG5yaZmjnJWJn3yYmYaHj3KugqWboo2mi5OdiZSQmm1wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh4j5OlmH2Li5GKd3x4jYFsaHdpeHNuf3RcZGRubWVoYEpaV1g8R0dAVDNARj48Kig2My4wMTMpJjQ6Ozw9P0BDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWSc4yKrr+/u7u1npeopK22oaOZlaOpp66pq5mloZ+loKC1p6Kpp7CjlKujjqSto52QmpqqtLSknaacqZKUl66gn52lo5ynnLWaoKqjtqvCsKmrqaKNhI+coqGmo5aZmpyYm5ilpKaYqqasoaSbrKe+rJW+sK2fo7Czuqy0p5upsqWomHqokH18sHeKgKSliJxtsm+gh618oY+DqJaZgKyJhK6Fn5SooKKWhZ+AmZWAe5J9q4CdmpaKqnidoI+Ik5KAea9do4F8pqdknYB8l3Rrr12la3GFmV1gW4ygbpWRppmCk4uVinl5gpZ/amx+Yn10bn95YGZlcW9oZ2hDWWBbPUpUMlQ4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVVFIRklKIygovJKahKnGw7bBtJ+braCuuKWkjpuko6Cvrqmfo56drZieuaCiq6CvqpqtoZCqqaSWiZqQrrCspp+om62YmI+toqGepaGapZytmJ+opraov6+lqaSfjICOm5ugpp6SlJmalJqapKOjmairq6KjnqmovqSXw6yqo6Kss7qsr6ehtLCpq5l2r36QipyFh3y6rYmYZLCMZZWtfaCPg6eWmoGsioSwhaWZpKGikISgW2xqgbNgf617e4KBsWxnbpmXi4ixW320W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqiaiZaPlJV5d42bfWNyfWGDeHOAfGFpZnBtZmVlT1VjW0FUXj1JKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdXWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjnK2mpbapoYuZoJ+ds7KonqKfnbSYoLOoqquesK2erJuVrqmijoibjq+tqKajqJmuk5qPqZqhnqWfmaOjpZmeoqmyqLuvpaienY98i5uWoaCakJGam5GZl6eeoZioraakpKKkqbueoManpamiq7S2ra6noL2ura2WgamSo66Om4CGpJeYj4GAuMO6g46ck4Snl5yCrIqCr4imm5qlqpF+1b3CqmKjv718fqOCg9e6uLWFk5KCnr2+hGqjgW+rhG6cf3qysceDaquwva14d6K+u3SAlY2mm46Zj5WbeICPmXlifHpjjGd4gXtga2VramJQYltTalxAVGFCTSk8OjQvHh8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbS0sb+5sr2zop2upqazpp6MmKW/qrewp6C/pqaxm56xnLmonq2vpaeVlK+sl4yDmpGvpqOsoaWcqqCYi6OSpp6nnJqhqKKZnqCrram5rqikm5eTe4eZkqabk4+RmJiPmJOomZ+Yqaifqaahoqq7nqnFo6Cvo6uztauwqqG8qLCwmnR1qqS3hWWJn29nrI+Kj21vd6SQmZ+Bda+ZlXCQjHGVp6ObmK6kcm1tbWWKd25tgplxgHlpcGlniZWVl3FoaYWGZ3CGZF6JY2pwWV1nfnemYGJxjpJvZmSAjZKOopeWl4+UnXuGjZN0ZYZ3aIxqeH55ZGxjZmxiS2RYSmtZOlBlRVEnSzkrIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJSts6q6ubKzqqmirp+ks6qYkr2xw8i9tamewKuso6Cmq5+6o6StrKymjpatqo+MhZWXrZ+lqqKfpKSgkYylk6eZqJmWo6qglpylpqevuausmpuTknuEl42mmI6RkJiUjZeVp5Sel6iimq+mnaKsuZ+wwaiks6assbKrrqyouaSvuJaKoailtpyJlqGXhqmakJSdk6qzmZujrKGzl6KgnqCinKCkoZWrpoySk4yHkpyclJCZk5iQjpWFgKSal5WNi5OSio+GhH1ni4B0g3Z0h4xxp218lZGUk4GBj4+Pjp2ToJWWlZ+BhpOLcGeOdm+Kd3Z8emlsZGRvY1VgWUBpWkdiYE5ZKkU9KyYiNzQwLh8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5VUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqltbivrqKwpK2gobaxkI6rxLvEureqoaWdm6adsKijtqedqbSmp5GYrKOLiImPnKeWrKShmqeen5OVo5epmqiZlKehpJCap5mhtbqoq5iakI18gZSMoZSKlJGVkI+Tl6WPnpmon5u1o52mq7eorsKuo7emr6+wraqqtLqir72ZkqajprWikZ2mno2pn42Sn6Osr5qho7GpsJikoZykqp6dnZyXq5ySmaGbk5CWqpmNmJiWkJaekYignZSUhZKMkIyUi4B+ZoyHdYd2eYiDc5xqh5GUlJGKfYyWkpKYkqCRm5WfgoaXhXhxlHJ4iX9xe35qbmRfcGlgW2BZbWJQYGRQWjpHRkU9Mz09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZcXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlaSno7CzrK6jqaetoKi1qpGQnKOyuq6rq6GimXqdorCkpbGplpu4pqOUmamcjoaKiZuikK6epJaooKGSl5mcrouqlo+omaiMmKiPnrm2pKWYm42JeYGUjJuTipWRlJCNkZahjJ2eqJ6et6N/g6+1orCvdKS+o7KgeHqgq7O8lXaupJ+KgKp+ZFthdp+OpJ2Dl35uk7Oco6iuq6NlnqCTc3mZlnCAmKiXbH+ip4llnKWbkJeYlouRm5CFnZqQlIKSh46OkomFd2uPh3aHcXyGgYBhaYiLlZOLW3aVkWdoj41xeqOXlmR4mIaAdpdog4mCbnl/a3BlX3Zva2toXGZjYmJvUls+TU5OUkc9QFRCOTEuHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTFRVVVlcX2hmZ1dRSjxERzw5VlJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqaWpraOnraWSlqq0rrGlmammq5Zzi5yvn6irp5OWuKCgj5yknZF+iIiano2rmqSVp6KejpeSnoV1rpCJppqokZajiJu6tKigmZiLiXV2k46Wk4qTkZCUjI+Sn42an6aZm7KWgIybtZ20jJKPvaehfqeieqOvuIGOjqefhIuFj7Cpr4yJlqKZeYGLrIacnaKoqqiIlYaYd6WbeoebgZemgoF7nLF6ioWfl5mUmJaBkJaWhJmaYnmHkISOj5KLg25xkIh6gXGAgYZ/hnSHhZaSeJZok3SgmnR8mYOem4WYfpGJgYKXaY2MhGp4e3FwZ2R3bWlsaltlamllclteSFNMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaGZZUUg5REs8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZStxrywoZWlqLSdj4Ocq5unoqCNkL6emY2fmqCQfYWOmZeIq52jlqChko2UiYaAkaiOh6Kco5OWnYafubKnnZqTj4VwdZCKlZCKlI+Pm4uPkZ6Rlp+jlZ2siJ+0ibSarovKiKuuibeFjbCDsa+EqY2nmI2dfKiPcnt3m46mlmiVpHm0i5+ep6mSmcKBf6uImKFxnoCapH2XhZWxgaF8oJOfj5iXgI6Tm4mYkot8hZOGjZWTiYNtc5GFgHtyhoGFfYV0hYKXgY/FZoCph4+iap6Cn5iBmYCKi4OImG+NkoRnd3R7dmdodXBmZ2teYm5sZmxYZkZcUEwyRTQ2TWBjNiY0PERHRDo2NDY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5saqrppqUn6KkqqKVo6m2oq9/oKacpZ6diZS9mZONoJGdkHmDlpaRh6uZnJuaoYWPjHebnI+gkYiepJuVmJeGoritpZmbjY1/Ym2Qi5OQjY+MjJeLkJGejpOfoJihqH6hp4etnaCWro+fnZ2RhoGgjauwh6SNqpqMmn6jdoCYk2uBq3RNq3iHjZ2Rm6mogqqrfYOhe3qnaZ5/kmtnl4aXtoiefW1gY1iDl3+Me2Rni3OZfXmWbF18l25fU3GFXGBseYNgWWWCfYSBmHGnqmuDo25ypXCfg51nZJ9sWmyIemVZX4J+YVdQb3ZlbXRxampvXmpvbGtoV2hOXVdFOUE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9idmBNRDpNT01UYlxbZmZpaWJiZGFkZGJhYmBiZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKitryrrqKZl5+hpaysn5yttKKnkaCfn6acmY6YtJmQi56MlYt1gZSRjYqmlpaYnp5/k4WGrKSHnJGKmKiXmZqRh6WwpqKVmYiJgGluiIeLjo6Ji42Si5CRoYyTnp+boqV/k4GPo6GUoHeclpCng6GngIaqroWleYt9hJp9onBzk4eWe56MeW2Hm4yZkJupm4+HnXyConN2pmaefnekX5h6fJJzom6Yt7S6dJKHgYC2qGSBxrh7cJW3jHGAm6RjdKyrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN+o16dmbOWb3uXnrN0cluesoJpYm9zdXFob1lrbHJyZVxoXWJLRD1ENVFBWXEyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWlhgYHxkSUM4TFdVVmJhWmVma2tiYmVhZGNgYWJgY2NfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mayck6COpbi1rq2gmqKco6OkrJuasayrkpegmKCkmpqUnqubi4iSeIuFcICWjYqPoJCTlJ2XfZGJjqihh5iPipKjk5uajIuoqKSej5aHhH5re4Z+fY+Ng4uQkImPk5+Cl56gnaCfi4l3nJiijKByoouIqYicp5GXqKx/rox9eqCZeqOTeIBzl4iMnH2Wn4abjZmbpoajZKF8iZaQm41snmiajW6amXp/iqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z1iYp/nmiadYeTkpiOf55umZBrpplcqH53u2p9qVqOhF2zZ1xtcXh3a2lbcGl4eGJeZVdiQVBETzdWQlJtNEpaWl9OWkRAMTUxOzs3SD86Q0hVP1hSWV0+RGJdVmBRYWR9aUVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCsnaabm6efna2anbCnq52Xopmhn5mWlqCjmYaJjWmIgHF7l4iLlpaEkpWYj3qKhJajnYmVkIaLnZGcm4mPqKOgmouRioCAaYGGeH+WjHuIjY6HjpWafpSjn6Cik5hyaJ+KoI+McJKMgqmImZ+jqaGofbCtpKK4l3ajs6Kjf4iUeJ16q5p+oo6dm5eIl3KhfIWNr7V9a5qRoXh+mLSjo6uohJh7mnycmX5zqlpdb3uXi3ieYk1/e3uFY3qYQk2fWaJqcnyObYGJhJl1m3mHibGzf3+akqZ0f51tcXyUb5lyaaNdlXZIZWNgc3B8fW5lYGtodntiY2BRXlZcVFZAWUVRZ0RSV1tiWF9JRD1COEBCOklFOExFWEFWUVtWREZhXFpgS2BtfnJFQzxVX2JaZWpWZ2hsbmJmZl5hYVxdXmBoYl9lY3ZsXmVnZmxkZWxoaGtpk52Bsa6ZhFNfoae0urOzqZqii5upnJuokqGro6Cnjp6dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGSlohygImSoJxykZCBiJiUn5qEjqicmpWKi4p8hGyEhXGBoYx4hY2Ih5KYlHyTpKCeo4iuhn21hI+enXumlnqpgpadkIuhnn2naHdtfplzoHNxfJ2FmG+Tgq59o4OmnpqBo3BeqWd1o2NvpWGc05B8epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKovH93g21/v6aqtF6bb35xl2+Bc6JyXaNndKZhaKZtm9OYeoKbbnd5l2ubenaXcmyppWdfZHlwfoRrZ2ZjbXZ3Zl9hUltlUVFiSVdJVF9XU1tlalxlUUVDS0xKS0JKRDhQQFFOV1NYT1JRYGVlaVJkeHl3SUZFY11lWmhqU2loam9jamdgYl9cXV1faGJhaGV7ZF5kZ2RrZGpsZmhsaJibf7CsVFxLfqmwsrWws6OcmIWYpqCgoo2kqJ+XqImZl5iTmZOSoJeNiIV7cH2EaH2Pg5OagXeRjY6JcH+Gj5KSbJeTfIiQkaOVg46qmpSSioWJeYR2h4BugZ+Gd4CShoiZoZZ5k6KjmqCJs6Gitot6rKekrqVwqYCakIWBnJJ9pICimYaYcp6EoqyuiZeLgIykjZaDrqKUdrW2tcmhdJSKgJ9hnpepbXiWhp+adaGHd6B9kJaKgW9MZqKScJqIc6R7eXRhg4JsfqBscmRgnHJ/dJdpe2mztbTGpnOYfnudapuaq3SCmm1zd5dpmnl0mHFQRXyzXmp1aniHZmpnYnR0cG1VXVNZaFBSaElVTFhSVl1na25WZ1dNSkFKTUpISk5BUUpQZWNpbWV0cnN+eHtudYl7e1RQT21daFtraVJqaGlsZ2xmY2VfXFxcXmliZGhre19dZGdjamZubWVpbGWinImvp4VmP5Sis6uvr7WiopCAl6iioaOLpKadnKWBmpeWjZeQkJuSjYiDeWp5hmWDjH6WoHl1j4iMgWmEhZKDjIWdjXqMipSlkoKXqZeMkYuAiXqAfYt5cJChhnmAlIeJlp+Uf5Slp5yWloRnbnicbKJkfHGld5yYcGengZeMe6V6oJaDl3KfdoCJlJaPuW6QiqJifZmilYhucmmqa3WgbG6mYJtpi5BoloealXWigH2aX4uFjHVviGJooWWef2mbdXBkZoiCbnKiWl9bZKFuXomMb3t/c3JkpW54omRnp2iYcouYbqFvUoiPb6BeZKdUi11TmG1tcmpxgWxwaGt4c2tvUVdWVmZZU21JWE9cSFhpaHNqWWtWUVJFVlxMWFJhVWhqXnd1enxwfHxygnt/cnaNgIR2XlFzYWdicGdQamhoa2xuZ2RnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWYpnpldG2Lp66lqrCxpp+LgJaqnJ6kjKGhmqGhgJWYk42aj4uXkI2Ke4ZxgIhoi4t8l5pzdIp9kHtlg4eVioqVmYJ8iIWWpo+BoquQhZCKgYp9gICOc2mPpYR9hZONiJifjYeSqqaeiaZ4lpx+pYmWjLKYnpCDr5efpXiWiHqpdKWPhJpupaKMkoSMg7xufKWvgoaFhpOWnKB9pnpxqJSglmeefm+rYpaKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm5tn56SlWF+q4uqdoB/jaefd599haSVnaBpmod1q2aerYy2c3e+jKSTWYOmjathdXFzb3t0cGJqfm5obFJVWlVgYV1rTV1SXUldbG12YFtxWVtgWmdzZW5vcmNxdGB3e355cnmDc4N+gXt7jIGCgHZieGRjbnNkUmxnaG9scmlmaWFfXlxhamJsbHpvXFxiaWJtaXdtZ2xuYpWmqpyBgJ6klqmqnqinrqOZiYKXqpmdo4mapZyonYSLmo+FnJGFko2LjXSFeoiDb42EfZaTdHSGcpKCbX+LkoeGk499e4GEl6SNf6WljYCNiYSUdYOHkm9siqiAgouTjYicnomMk6qjoJCAdZWXiH6BeZSuo3+Bm3GPhniQjIWAe3KnjHF9fXqXlpuEjnh7fn2IlJWTinaQmZ+hhHt9iWuMhVt5eXJ5cGhufZGJcX90gY+Uk3GFg4FljX9fgYCMd3VzlHVvem9uh22Ehl93aHiOZoGCho6qnH50fZdqiYhvf3V8hHVtbGaMc3h7l3eEW2pYeI9obXdxcG93d29dbIZtaWdWWV9XXGRrZFVhVV5RX3B3eWtqd2Vqamp1fHFxdHNhb3Vic3uBeHV5gnV/gH+AeIuFg317bX9sZHluXlduZ2h1a3hqaWlkXGBaY2llbHB1blpbYmtka2t5bWhsb2GOlbqpp4uhopqmpJmknauioIODl6uRnaCJmqaaqJiCgZuLfpaUh46JiI1ygnyPfX6PhHqXjnRyg3CVhXt9kouGhpCFeH6AhpiijHunoYuFj4+ElYKGjpd3coSphY2SnI+Inp6Hi5qnoKCrg4mOlZp+fomWraiPkqeQeHCekYN7k29+qYVwfZVxam98gZ+Lf5KOjGhtXYOLjJybn49zlYuIcXRrgnZzf1lyboaPgX1+i2ldaWN6hYOIgF9peHubfIOMg3aBhoNpeYuHa2Fxc4N3YHOMgomQp5WGZo2Pg252i4NvhIx4bmRmY3mCepVaXGlmbnZbenl3dG1zcoJmXG2Ka2tiWVldWlhrcVteYFleXWZzfXtzb3Rjamppe3xxend0ZG10aGx8fnV5fHt6eX+Af2+GioR7fXN+eXN/aVRccWlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VubGdzeW5oam1gjIyrsaKQo6Gan56Ynpmpo6F9g5erjJ+Uh5uikKSUf3uXhHySmYiJhoaKcn2Ai3aFi4GElopxb4BymIaEfpKDhIaKgXqAg4qano+CpqCHeI2XiJWLi5yXhYN6rIGQl5mTiZ6dh4ihqp+ioqOMiJObnKOZlqqhp6agkpuIl498eY+OhKh+f5KRkpOcsKWalJ2QjrKTmISmjIyVm6CJkJuCiZGKa3yOdndlgoaQinyJnYSHi4+HiICEg5B3fHp1mqKJh4ufi4aVf36MgYB2cXSGhYB4iIeKkaaRhIaOiIONkIx8hoqHjoB1a4GDe3mZaXJoYHOKcH16dnVvd3SBXF5vh2huX15aW1xTZ3FVY1tbYWxodHt8cm5wY2ppaH97bXh+cWhvcGxmgXtygYB3gH1/hHttgoyGfHp4fH56g3hOZHZqc25we2VrZWJiYFtzZnBmcnFsVV1sdG1peXpwZ2lrZY2InbqflqKhmJWZmJSYpKCde3+Zqo2djYWfnIqelnx4lIJ7jpmJhoOEhm14gYBygId+iJOEbWx+epeGhIOQfoCGhIZ9h4OMmpySh6qegnGKj4WSkYuckX2NeqmDjZKXlY6bloaGm6agopqdhoOSmZmYkJqmn6adnZCXgZKLd32IjoWle3yPkJGGmKmhnJOcj42qjpKAno2Jk5qfg4+Xf4eOgm94hXF0YH6Dj4V0i5eAg46ChoR+hYSUbnl1dZOii42Gm4WFjnSAin19cnN7iYR7eYyOhJOnj4aEj4KDiomJdYSHiIp7bmp9f3ttaGtsZ155fmd8e3ZzdXV6dlxgcH1tdGBiWlxeUWZtU2VaXWFraXZ5fnBrbGNrameAgGtygGxrdG94boR5boaAdoKAfYV2coKNiH57enx/e4KKYGl7a3VoaYNlamNgaVtjdWhvYnVtbFRicXlkcHp6cmVqbW2Lip+4mqGkn5OSlpeLmp+enXp3naWQm4mGpJSLmJl5eY2FfImRg4yCgYJtfH94coCFfYqQfWtofYGXiIGIjnx+hoSHfI+Aj5qakYinnH9wi4qLkoagoYqFjHynkYePkpeTlpJ3jaOgoZ2Wmn+BkJmYk4yaoqGjmpeRm3+OhXmAhI+HoYB+jI2PfJekoKCSmZCPpo2QgZuRiZOYm36Skn6HjoF1dIJwdmB9gI2FcYqVfIeLcYx+goWFjmh4cnmMmZKQgJh+iItygod8fXF6fIyFe3uSjYOWpZOLhpF8hYaHhHWBgoaHeWRxen54eXBsamZefXJofHV1c3xzf2peYHN2cHdkY1leXlJqaFRkWF5hZ2p2eIFxZmtjbGhlf4BqbX5ob3BqfXeFemuLgXKBgX2BdHaCjYZ+fHp/gX1/j2pyg25zaWGIaWxiX3FVdG9tbmB4aG1XanR2YnV6e3Fia296iY2fs5KlpZ2OkJiPhp2gmpx8daOgjZZ/jKKKiJqWeHuGh36DiX6IgoB/cH97dHWChX6JkHhnY32Gl4qCio14fYCMg3mWgJSWlY2Wn5p9b4uBkJOGpZuHjImDpZWEkoqVl5KRdpGdoaGYlJh6f46Ylo6WmpyknpmTlJt6kIaDeIWXjZ5+gYqOjHOXop2gkpiOj6KMjIOXmIOTlpp/mI18iI2BdnF9bXpkgHyKhXCGkn+QgmuHgoF/iYRldW98h5OYjX2UeIyJfICHfXxygHmKh3mFkYqLmKKWgoSMd4iEgoF2eoCIhHRfd3d8c313ZmtkYH5panZzc3R9cHtjY2BzbXVybWFZYF5bbGRSYldfYGhrdXmGcGNqY2xmaHyDa2h0aGxvaH98gXltkIZxgIKCf3R8g4yBf356goN+fJBtdYl0dG1limxqYWN1VoNpcW5geGZsYmp2cGZ5e3lxYHJshoWQna6Ypqiejo2Xh4afk5eYfHepnIqYeZeci4uYkHh7gIt9fIN7gIKAeHN4enN9gIR/iIqAZF59i5WHfoSHdH1+in99mISWk5aMoqCXfnKHe5ORiqaPjI6KkqCRg5GPlJeRioGPmKCakpCSdICNkZOJnJ2eppiYjZWXdI6PimyGmJCZeoeIkIlvl52ZopOUioyfjIaCkpx/k5KVh5mIe4mJgXpxeWp1bHt9i31thZGCk3dvgYN9fouAZHJqfIGXmIV/jnSRiYN5h352eIF+h4F9hI6FjZSkkHmFg3SJh31/cnR/hoJsYHp0eXB7b2FuYmR7YW5vdnJ3d3NzYXZfbmt1bm9dW15dXmpdT11XYmFobXN6iWtfamVqY2h3h21mbGhqbGeAfHp3b5CHc4CDhH10gYaJeoJ9eoGEfX2OcnmLeXhubIdraF9pcmOHaHFvZnZnbWxhemhqfHp4cGF3bYuBmZqqoKSpnYqKkYaKnoqVl312rZiMln2ek5GWk4h3fXuKfHuAdnd/gHB0c3pvhX2BgIl9e2Fcfo+Rhn+DhHN6gIZ6j5GHkZGckqSblIF9gHyNipKkiI2KjZeajYWRmJOVjomJjJOdk5CMjW6EkI6RiJ6ZoaCXlomWkm+KmoVnhpqPlHqJhZCKcJaak6GSkoiLmYyCgJGefZKQk4yZj3uJhId0c3VrcW51e4p0boaQjZFxdIB7gYKIfGVxbXl+mpR9hYl0kYuBdIl5b4F+gYd9hY2KhY2WqI17iH1+i4V3fXBuf4SCYmd3c3RuemJeb2BqdF5wanp4eGxycGV4XW1sc21zWFpeX2FqWk9XWGRjZ3Fxf4dmXWloZmJncY1uZGlnZWlogHp3dW+OhXOAgYJ7dYKIhXiEfHeDhXqAiXd/i3x7cnmDamtfcGh0f2txbm1xZ29sZXtibX95dnFsd3eKf6OYoqihp5uHjIqBj5yGk5x0gKqUkYyGoIyVk5B/dHt2hHd4f3Jze4Vrcm95bYl2gICGbXBbWX6RjYiAgIB2dYB/f6CGj4qRnJegk5d3iX6AjIicnYmPhpKXloSIlJmPlouLjY6NnYqOkIRuiYuPkYqclqCbmJWFmIhrhqSDZ4adipF/i4SLgXeTmJGdkZCIiZWOf36PmHyRjY+NmpJ9in+Cb3Zva21vcHqFaXODjpeJcHeAdIKIgnlmdG92gZqPfImFepWSeneJdHCKfIeNe4uHhImPnKOIfIR3gouAeHhuaX+Bf1xxcnFvb3daXnBgb2peb2l8enBtbWptdmBwb2pxbVlYYWFibVdRU1llZmN1cISCYl1rbWRiZmuSbWBmZl9na4F1cXJwi4B0f4KAeHaAi4B5hX93h4Z2g4V8h4yAe3aKf2pxY3xjhnxvcGx0amhvbHZ3X3F+eXt0dXR/gn+llZqtn6eWhY2Df5eVg4+edYqfk5KFipqMlY2LenJ3dIJwcoVzcXWIbG9tdW2Id4N9f2xtVVGBq5SHgniAdnKCeYKggZGBk5KYm5GaeJF6goySpJqTjoiVmJKDhpaZjJOLiY+PiJ6FkIp9c4uFiI+InJmem5aUgJR/aYadiGiHoYiShJGDiXGDkZeOmo6PjIuPjXd7kpB7joyNkZaNfIh8gGt2am1ra2x6fmF5fY6VgXZ6gXeDjHx5Z3VsdYeWjH+IhnuUkXF6hXB4jXuLjXuJfoONkZ6ehXx9eIKLfXZwaGuAgXdedm9ta3ByVV1uYnFgX21ueXBncGZnc3VocGthd2VdVmVgYHJTUE5bZmVdeHCIfF9caHJiYmVmkWlfaGRbZ3B+b2txc4p9dn2FgHR1f4x5e4WAeIiDc4aFfoyMg3t5lXhmcmqDYId+b29remBpbnR/dF90fXiGeHRyhXx5oZCasZymjoOKf4OaiICLnn6KmZKOhIiXjY6OhHZ0dnOAcG+Fc3Bxg29qaXZtgm59fG11c1JOgt/JktaTfHB0g3WDoIKSd5SQmJuPmHuTcoWQn6GTk5CKkpuThX6WlYiNjYiRjYicgI6BeHqMfoiMiZubnJqVk3mNd2iKkohsiaSFk4iXg4ZjjJGYjpSJlouNiotxe5SJe42IipORinqFe35se2Vyb2preXlbgHmPjYB6fX5/ho56emh0a3SLkIqChoV9loxsfn9vgY1/jYh+hHqDkJaam4t8d3iDj3hybGVwf4JraHRvZ2hzbFNebmRwWV9rcXhma2piZnhzb3BjX3dgYFZrX152UE5MYGZjXXlxinRcW2V2YGFlZY5jYWZhWGlzc25rcXaLfHR5hoF1dn6Lc3+Gf3qJf3KJh4GRioh8fph2ZXNufGWIf29wbIBabG55eXNgdnp7jXZyd4p3eZ+Mm6+boJCChXeIlX99iZyGhJ+QjoWMl4STjoeBdXdweXFuhG9tbn5yZGR4cHxten1qaGxjpJrB3K7voXNrdYN1hKGFkW6Vj5SflJuBkXCFi6OXiY6VipCdlYKAlZCFiY+AkoqKl3+He3V/iXiGhI2bmpeZjpB2i3dviIqMfoukhZKJnYWFXouUl4qOiI6LioSJbHuXgn2IhYmRj4Z2hX19a31jeHVpbXhzV4h6kYaEeX5/gIWMfnlmdGqAio+Kg4OAjJeGbIJ2bomRg5GFf4J6gJGWlJmQdHR4h411c3BmdHmBYXNsb2FodWZSYHBna1VebXN5YHJjX2h9cXJtWmJyYWJXblpcd01NTGNmYV52c4ptW1xkeV5gZGaEX2NjXlhqcmtua3J3i31zd4SBeHd8iHGDhH1+iHt0i4iIlYaMfn6Xc2h1cXlsjHtudHCBWHF6dnlxZHd5hoxpdoCJcoCdiJmonKOShH1wjJR4eYudhISgjY58lYx/mYeEe3N3cHNqb4FraWx8dF5geHZ7cHV7Z2BlfOvatcnD3IhzbHOAdomaiI1pl4+OnJSSgYhwhYigjoSLlYqMmJN8jZKIg4mPe5GLhpCCf3Z4g4Ryh4KSm5aTmIaMdod/cYaDioeaooOUjJ6DiWGDlY6GiYWJjIeAh2l9lH99g4SJjo6CcYZ+f3F3Z3ZyaXN3a1qMfZKBhHx/g4CEioJ2YnRsiYKQi4J/f5ORfW6CbHmHkIeThH2BfoGSlJGXiW5yeoyGdWxwanF3f15zaG5canVgUmRxaGZTX292dF9vYF1ognFyaVdnaGNpWG1XW3VMSkxlZl5icnOFaFtcZXleXmRnemFkX1xZa25lbmp0d4p+c3OBfnp2eodzhYN8f4d3doqFj5iBjYJ7k3Zsd3V5eZN1bnh6fVh5hnGAb2d4d5KCZHaGhXGKloWZoZuiioZzb5KLcneOnH2JmYiJe59/g5l/gXlyc25vZHJ+aWZsd3dbX3h6enFxf2lhZ2F/1baOkKZ4bnF3e3GSkIyHapiNiJuRi4Z7aIeLmYaBkpGGh5eNfI2MgICJjXyQjH6KhXp1e4J6cYWAlJiOkpOBiXWEh3eEgIuUnZ+Glo+ffohhf5OHhIeDiY1/f4JmfZGAfn+CjI+Qf22CfIJ0a212dHN2dWtjjYGOf4R+fIR/hIh/cGBzcYZ8j42CfH+SiXpxg2Z7hIuHjYR8hX6BlY+Rk4RucHmMfnVtbmlqeXxhZ2lpWGt1WlJpcmliUGJyeGxhZV1aaoNtc2JbZ19kbF9uVFpvTkhPZmRcZ25xgGtaW2NyX1xjbHdkZV1cWmxrYm1qc3aGf3Fvf3x8dHiFeIWCfICIdXmJgZKVfIiGdoiBcHh5e4STb217gXdeg390gW1penOUc2dyiH1ykpGEmp+boIaHdnaUf212k5d9h5CDio2ZfIuadn53cW9samF0fGdiaXV6Wl94fHltcX5lY2hoV52PXnFylrzEhHZxlIiQfnKWi4abkoyHcmqIj5aAe5SMgYSbjHyKhnx7iYx/lIh1ioZ2dn2BcXWFgZ2ThZSPg4NygIh1hXyKmZ2Yh5SOnYCIZn2Tgn+Fg4mJcYF9Zn6Le3l+f4eLjn1pgHyDdmZveHhzdnNsao2FioGJf3iBgIWDf2tfcnl7fo2KhnyCj4F+coFpeYSIjIaFeYR9gZiNkIx9bm17iX13dG5nZnt1YltwYlduclNTbnNoYU1mdHhlYF1cWG6Ab3NZZWFeam1gcE9Za1FEU2dgWmtubXxuWltebGNaYm93ZGdcXWBsaWNsaXN2gYNxbn58f3R1g3qDgnyChXZ+iIGWkHiDinSBiHJ5eH6NkG9ve4FxaYF5en5tbHt1lWtqd4R0bJSOhp6YoJmFiG59jHZqeJiOfoGKgpWXiXmOlm96c3BsamRgc3poYGVxelphcn15Z3F6YWVlj7Gyd0piWqTZ0JZye5CKkHd+lIqEmZGMhW5rhZKRenmShoCEmIp8h394eImKhJaAcIyIcXR9eml5hYOkkISTjIN+b3+Dd4R5hpyZlYuTkJSFh3B7koJ9goOIg26Bd2iAhXhyf3+Diod8ZX1+hHVjcHJ/aHhwb3WYjIWCinx2eICEeYFrXHF+c4GIhYl+hol7iXKBbnGFh4+FhXOEeoKZjY2EeG5vfoR/dnpkZ2l7b15YdlpYcGxOV3FzZ2BKbHZ0YF1bW1l0fXJvV2ddZmpwYG9OV2hRP1lmXlpvamd6cVpaWWtlWWNxeV9oXF5lbWhla2lxd3+Hb2x/foB1b4J7gIF/g392gYWIl4pxgo1xe4Z8eXmEk4x1anp/bG9+dX99b3J7e5RvboF/eGaTi4OhmZySgoZnh4NwZ3qViH1+hIGYiYF8jYxpeHJrbGZfYW54bV9ib3hcZGyDemFxdl9lZdTqvooyOj6LjoBxeIWIjo12g5aMfpKNjH9tbIWNjHZ9j3+FgZWIfIJ4bnaHhIOXd2+IhWx1e3RmeYKDpouCj4uDfW6AdXeEeoedkYyRkpOMi4Z+e5KGd3+EjINrf3JogH54bXx8goqEd2J5hIFxZHFofm10cXSBm4uAfoV+c3V9gHOBb1ttf3V4i4OLe4eAfIh4enFsiYSQhItygnqAl4uLf3Rta3eAgHV1XGhndm9YVntSWW9kTFpycmVbSXB4b1xaWllddX50aFliW2dlbmNpTFdmUT1eZVxddWVgdXBaWVRvZFlkcXlaaF5gZ21naWxpcHd9jmxpgoR+eW6AfHyBf4J6dYKBjZOFcICLbnd+gHt7iJKJf2h7fWp0e3KGe3N3fX+MeXiEfXxrjI2Em52WjIGAbI1+a2h+jYx6fn+DlIF+fYqIa3VxZ2hjW2Jncm5gYWtzYWhwiXpic3ReY2SboI9uXDVZr7V0aYCIfJKGdYWWhXOPiol2cGyFg4d1eYl4iXyTh3p+c2d2iX5+mHBxhn5odnltZXmIhKSGgIeNiX5ufnaAgX2MmoiClJGYiYuEiXyPiHB7fYR7aH5saoB7eml6doGHgHJgd4F+cWRyZnWCbXV7hJSRgXyBf253eXx0f21YcIB3dYyChniIdoKJenhzboqBkIGGc399f5OJiHpubWpugoJ1bl1nZHJwUVp6TVpvXE5bcnBkVUtzeGlXWVlaYXGAdGBdXWBmZGhpZk5aaE5AYWRbYHVhXXVtWFdTdGFaZG9yV2pdYWhrZ21saXB3fJJsaYSJfHxwfn57gX+CeneAf4qLg3F7h29xd4R/e4mNj4Nqfnttd3h2ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshIiQeH17gZF/f36Kg3BycWNmXllnX29wYGBncGZqb4l0YXRvW2FkanZ7f76cpqPIuHGFg3KSfHiGk4JzkYyHcnJvg3uDdHWHdIh3k4h5eXFjd4d6gJNpcoR2Z3d1Y2p8goedgX9/jo99cn90hXqAkpGDeZaOlY+Igoh7iIhreHl+dWd6aGx/eXNpenaAg31oYHeHfWpqc2d7gGl2gIuQlH56fX5we3Z7dH5iVnd9cnOKhIJ9g3GHind4cXCEgo1/fnl+fXaOhoN2aXFpbYiCcnBdZ2FxbUpldUtdblVTWXNuYlFPc3hgUlhYXGFvgnNbYVxoZWVja2RRW3BJRGNhWmNwXl14aFVWVXdeW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHh9cnt+eYKBgXx2fYOIhoNwd4NybneDgn2Ji5N/cIB7eHl6gYx0g3h/gYGChHqAdW9+ioubnoh9hXp3hntndIWLkHp+f3uIhYR2j4Bnb25fZFxYZVltcmBgYHBsa2iJbmBzaVleZG2Ad6naqceGh7JxiXdvjHV7ho6AepOJf3V0dX53gHBxf22EdJSGeHVrYHqCeYmPZnGEcGd2blttfICQk3+AeZGSfXl7bYh3gZKMhHSWipGOh4WFe3+EbHV2f21ndmVte3Vtand2f398YGJ4hXlodHVifXtndIaOjJV7dIB1cX96fG1/WVZ0f3B1hYd/gXlsiYZ0eWx1gIOEfnt9eXtzi4F8c2d0ZW6LhG1zW2pedGRHbW1MWmFXVlV4bWJQUnR2V1BVWF5hcYRvXGBjbWRkXm9iVF1yR0JmX11maF1be2JRVVx1W1pna2FWal9gbmVma3FocHV4jnRrjo11fnZ4fXeBg4F7c32DiIeDb3F/dHF1f4WBiY2Ke3d/eIN7fIWHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN5Xn2FmIx5hoN0hYaEd4l7Ym5tXGJbW2FWanNjYFtnbm9mh3FhcWZXXGNrf3zKzoe5oWptbYpscYRxfISJfnuRhXl5c3l1dXxqbHVjhHWSgndvZl59gnqLiWZygmtqcWNYbXqFm4iBgXOXlHd/fG6JcoKLjIhymI6RiYWLg3t4fXFxcH1maHFibXhxamtxeH18elxkeYB3aXV4ZYJ2Z3SHi42UfHGHam59gXlufF1Ycn9udIGLfIJvb4p/cXZod3+BgIF3fXF7dYd8enJmc2FujIJsclhqXXZbSG1qTVVUXlRVe2thT1R1clBRVFZeYnSFaVxga2pmY1luYVhicEdBaFxgZl5dVntdT1VkcFpbamhdV2hgX3JlamhyZ3Byd4Z4bpWKdH96d354g4d/dXJ/hoWNgnBwe3h3dXqGhYaMhXp8f3SLfn2GhISHf35+fYd/fHh2eXiRk6B/jH2LbXWAeWODhpaFc5GKb4WFgXqDdGNuallfW11dVGdzZWBZZHFyZoFzYmtlV1tgaX94vq57oLdtYnOGaHN7cXmChXt9jH93eHJ2b3t2ZWpuYId1joFzamJef3h5i4RncX5oa2taVm93iaOBhH9xmZNxgHl1g26Bg5KIc5WIjYiEiYV9eHRybmh5YGptYG12amdqa3l3endbZ318eGVyfW2EdGV1hYyFlX9vi2ZqeoN1bXRiXHB9bHV9jHyBZnWHfW5xaHV/eH5/c31se3uBenhxZmxibol+bW5Wal92VUppak9RTmhNWXxoYk5VdWpMUFRVXmZ1g2ZdYHBoZ2FXaV1ba2hKRGpaYWRXWVV5WU5WbWpZXWxlXFllY150ZWxkcWdyb3WBeHCZhXZ/fnd/fIWHfXVzgoiAlYJuc3l7enNzhYaIiIN4gX11j358hIqOhIKEe36Lg3t3fHd3mp2XeoqChml2fXxsg4SSf3KPgnCFgn6Bf29mbGdXXVtcW1RkcGRfV2JydWl1cGVlYldcXGh/cG9ygHOJZGR4fml0dXNygoR4gIR5d3R1bWt6cWJna2eGdI2DbmZdX31we4l+aW14ZmlkVVdyb42mfIN7dpaQdHxzfXtufHyRhXeZfIiGg4aDfXRwcmxndFxsaF5sdGRnZml6b3tyWWeAdnRncIB3gXVid4WKfJSAbotqbXqBcWZzZWFue2dzeIp8fmJ2g3Zqa3F1e3F6enR9Zn5/f3l3bmRmYm6FfG1qVmlhb1JKaGpPS05wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWVgVmNXYnBdTEtrWGNhVVRVc1ZMWHVkWl9rYVxaY2Vfd2ZtYnBpc25yf3V0moF3f4B3f3+GhHp8dYKEfpeFbnJ0fHp0cYSFj4GAeot1dJB/fIGVjoCFhH1+jIZ7foB2e6OlinmIhoRrdXx6dYOBi3lvhXN5hH2Bg3VuamhlVl1bWlpTYm5kW1hhc3tpaG1pYGJXX1tqgGlrb4Bna2BoeXhqc3R0boSBen99dXVuemhqeWpfZW5ogXaPhGdlWGJ3aX6He29pcGdmXVVYb2eOqHeBenyQjnl1cH9wc3Z6j4B4lXWGg4CFiHZqcnZnaG5bbGRdbXNfZ2FqeGh7bVptgnJzam+Afnl3YXeEhHePhHKIcW95f3FjcGhccHhkcXSIfHhjc4BwZ2p5dHJseHd2eGSDe394dnBkY2NufHxra1VoYWVTSmtnT0dSa0VheGdhTVNxXEpNVFlla3d7ZV9tcWlkXVZgVm5uV0tTaFdlXlhOVWxUSlx5X1tfa11dW2NlYHpoa2Fvb3Vub3h1eph9d4CBeoCAh4V6eXqDfoGThHF0dH95dnSEiJB9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSsn396iIiDa3KBeXWAf4F0boZufH9ziYBqb21kZFhfWllaVWJqZ1taXnWCaV5tbFxhVlxcbIFlcXR9aWlca3Z1Z3R3cm2Fe319eXVybHloaXhmXWVzaHp3koFjY1RlcGeChXd3Z2lqYFdWWWdjj6dufneAi456cHF9aHpveo18d49yhH1/f4ZuZHVzZGhoXGtiXW9vW2dfbXVkemhddIBvcWtxe311dWF0hYp6h4eAf3dydX91YXBtWnJ0YnFyhXx1ZXKAbGFse29qaXt5dnJmhXZ7enVxZGFlbXN+aWxUaF5cVEtyYlBGVmFHYnZnYUtUb1dKTFdYZ2t2emRlbnFmY1pXXVl2ZVVKXGNXZ1hZSVdlUUhieFpdX2xbXlxhZF5/aWpfbnR4bm9udoOXeXKBgHx/iIuFfXV1hnmHjH1zdXWCeXp6gouOfX6EiWlzloF6ip19foV6gXp/fIaIc3GProx7e4ePfWVxh3lzfHt1cm+FbHt+bI96YnBvYmVdZVZZWVZjZmtgXVxzhWhYcG5aXldaXGx7YnB3dm1iWmxzc2d0dXBshHl+gHl3bm50ZWl0ZVtodWZ2dpF6X11SZmZrg4J0fWJjaVxUWF1iY4+laHh0goWQeG1vemh4bnyFe3WJc4B4fHh/aGV2bWBmYF5qX11za1llXW9vYnplW3d7a25ub3d4c3RkcoOSfoeCiHp2b3J9c2J3ZFtvcWJxcYJ8c2dygGVebnZpZGd5e3Vub4J1dH1zcWJfZm5vfWRpU2dYWFRNd19RSllYSGJ1ZGFJVG1TSkxaV2lscntibGxzY2FZWVthdltTTGNdWGlTV0hZYU5HaXVYXmFtW1tfYmJdhWhnYW54eWxvanaBkHhtgn6AgZKHg4F2dIl0jIZzcXd1gnd8fX6Mj4B+k35wd5WDfJmSeYCAeHl+f3SIg3NwmaJ7en+JlHhkdYh4c3d1bHRvfmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYllU3JuW1pYWGBsdmNpdWppXlltc3Fsc3NzaoV8fn98dm5ubGRpcWNba3JkdHaOc1tXU2VhcoB/coJdYmNeU1pgW2ORnmVycYWEkXRsa3ptb3B7fHxxgXd/c3p6emRldWhdYlpgZ1tedmhXYl1waGF3YFt7dmlpcm53c3J0aHCBlIKGfoR2cmpwfW1md1dca25icXOBenNnb35bYHBxYV9qcX5sbHV+c3F4a3BhXGVsbHphZ1NmVFdRT3VbUU9ZUkhjdGJgRlVqUElQWlVra2t8ZW1vcWFbWlhZbHBXU09mV1doU1RGWlxPSHJ0WF9jbWNYYGBhXYtqY2RteXhrb2l1eYZ7a4N9f4SZfIKEeX2Ibo+GcW93en10goJ8io6Cgpd0d4KThYGfiXWAgIFzf4Jxh4J1b6KXdHuGi4Z7ZXeKbm56bmZ4cHprc3ZyjGtedG5hZ2VrUl1bVWdhbGxaXHCMZE9vbl1WWFVnanRnYnRlZV1ZbnRtcHV1eWuHfH98iHaPc2Rka25hXG5tY3N4h2taVFZjZHh9fXGFXGNfY1RaYFljlZVjbnCDhYpzamh7b2Zzd3N8bHp0dW96fnVeZnJjW15WYWRZYXRlVV9gbWRhcV1dfm9oaXNxc3B0dWpthJKBiHuFcXJmbn1wcm9TW2ZrZnF0gXdzY2x2VWJya1pfb2Z9Zm13fXNzc2ptYFpkamp3XmZUZFRVUFRtV1FWU1BIZHNfYUVYaU5IV1RWbWhkfGlreGtiV1xVW3RkU1JXaFFZZVRTSFpaUE14dlpfZWxpWWJgXl6PbmFmbHl1bm9odnZ/f2yDf32Gl3t/h4GKfmuTiHJndIB7dYCCfIiOf4uTcnyKkYWHn4Z7f4aMc4GGc32Ddm6ljHOBjYt2d216jGBke3BmenN4bG1xdoJnZHtsY2ZnaFNfXlVnX2xvW15ujWhOaW1gVFZTb2dzbGZ4ZGRcWHB0bHF6eHJtiHt/dpx6eWthZWxtXmBvamVxeH5nWlZYYGx4fHtwg19iXmdXWF9XZJuIYmtxgYd9d2treG1cd3Fse2p2c25ve4ByWGpuX1ldVWJjWGRxYlNeYWhiYmxaYH1rZmtzdW5td3ZraIWLfoh6iG1xZXB9bXJtY1lhaWlvdIF0c19pbFNlcWRVYm5iemNxd3t2a3Btal9YYWdodFxlVWFVUk5YZVJPXE9PSGVwXWNGWWlNSV9LWG1kX3hobn5kYFReVF11XFRTYGZOXWFUU0pcWVBZdXVdX2VtaFhjYVtejnFiZ2p3cXNuZ3Z0eoNygYJ5h41+fImHjnpukIp0bHOCdH9/h4SGkYSVj3l+jI+HkZuEgHyMhHKAgXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fn5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2NjY2NjY2Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjI2MjI2NjY2NjY2NjY2Pj46Ojo2OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCTqWvra2tra6kn6CgoKClXiovLy8wLEiFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTNBqba0tLS0taijpKSkpKpWFRwcHBwXOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fn1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaPkJCQkJCRkI+QkI+Pj4iCg4OCgoKFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkJKRiYeOipCSk5CKkIuLkImPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyLi4yMjIyMjIyMjIyMjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoeIhYmLhoiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCPhoqGh4eFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+JiI6IhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aHh4WIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2Kio6Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2hoZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUVAPjo7Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs8PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs9Ojc6PDw+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3F0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5ODk7Szs5Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBgIGAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz4+PD09Pj49Ok16Ujo9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEtJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDREE/Pj1ASEdAXnppPT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISktLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VESD87QGN8e3VzeGw5OTw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BxcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE5MPkE8PD0/PkJDPz9BQUFCQEVzYj9rhYSEhIF5bDs5ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISEpKSkxKRkZncG9xcXR2dXd7fH19fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkM/TXR6bYCAg4F7g35wQD09Pz49PkNEPzw8PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SG1vcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDRUBOc3WAfnuDg3yEhGhBQUBDQEA/QEA+PTw9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQElyc39+fYSFhYWGXT5DQ0VAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVHRkZKTk5LSklHR0hLTUpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRGZ2gISFhYWHh4mCSkRFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpHWXmChYeEgYaJiYxhQEJVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExMYISHiIOBg4eIiXtXbISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTElkh4eFgYOFgIGBg4SGhYSEhYaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSmyHhoJ/g4OBgYODg4SFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT48PD1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJaYWBgH6AgoSEhIODhIaJiouMi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0V1hX+AgYODg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo6Ojw4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09SV2tycnR0dXd5e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I5R4GDgIOEhYSEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDk7PDg6Ojs6OTk5PD88PUFCRElKTUtKTExXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7PzxWhoOCg4WGhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPz9BPT48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQmCHg4OFhoWFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZFRkZEQEI/PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFARERFZIiDg4WFhoaGiImJiIeGhoaHiYqKi4yNjIyLioqIV0hMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AQEE/QkNISEpghoKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKT01OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA5ODw7PD06P0A+QEBDRkpKUGiDg4WEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEdFSklESkhHTEpISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QEVJS01Wc4ODhISFhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4teUVFQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBSExNUVd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVVJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0ZWTkZPUVFVWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOzpRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hJSEVGSUhJSElqcnZ5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f4CAgICAf39/gIB/f39+flRISklJR0dGRT8/QUFFQkNHRURFTFhSTVRWVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A+QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFlnUlVWWFVUVlRPT01KTEpJSUxNS09NVHB0dnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTWFpaXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWVhZV1JRTVBRTU1PU1FRVVJidHN2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH+AgICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRYWFlaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWFNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUlVTVlRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYWlpkcXR2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUk1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSVFVaXG1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/gIB/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lVUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlQSEZPRkRFRkhHSEJDSEdISkdDQkFEQE9QTVJkc3V2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojs+QEA/Pz5rUUthRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNCPz48PUI+Sk1GVW51dXVzdHZ4e3x6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtMV05IR0BCPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1dnV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZETVJQYVdSWFFQU1NSVVtPT1FWUE1JQ0Y+Ojo2NDg2OTc5OjM2Njc5NjxCPWZ0dXZ3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFJMWFlaVlhYVlhZXVdXWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNRUFNaV1RUTVFTWVNcZVVPU1RRTkxJSEM/QTk5ODg5Nzg4NDc1Nzg1ODhHbnJ1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KT09UU1RcVlJVU1JOTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3eXp7fH1+fX58fX18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9KR1BQT09NUkpPUFBQTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTElMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFQUVBRTlFPUE9MSkxMT1BOTlBRUU5RT0pMTU1LR0VFREI7PTw8OT1HNjY3N0RucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FNT09NSU1MSUxLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXh7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E/PD1BQEI9PkVIR0RGRklHS0pARkFBQEZIRUpPSFFSYVxRUFJOU09PUExMT0xKTUxNT05bVktNUU9ISkhDSUpMTEtGRkZEP0JDPjxCRj9CP0FkcXR3enp7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVFNT05XS0xOS0xNTExMS05OU2RNSkxSSUlJRUFISkxNTktHSUZCQUJAP0VGRUhES29wd3p5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNvdXRscHByb29vcnZ2clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkJBRERHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUTEpJTVRGSUlKTEpKS0lJTE1PUFJQS0dDTEdDQ0pKTE1PTUlKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW52c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0NGSEhHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNT0dIS0ZIS0RISUtNSEpMSEhKTEtNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLQ0ZFR0RFRUZFR0NDQD48PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGQ0I7QkNDPkBDQ0NFR0xOSEtOSERIRUlNTk1HSUxHRUZJSUxOS0pIRU9JQ0dNTU5NUE5PT01MSUhJT1JRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUZFQkNCRUBEQj4/Pjo7Oz07PT9DQT9BQ0ZHSkdKSUxIR0dHRkVDQD1FRUI+QURDQ0VHSElHTVBJRkZHS05PS0ZISkZFRERJSUhLSUZIUEtESk1MUE5PTk9QTkpKSE1SVVRST1dkYWFtZ3Byb3N5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPUJBPkE9Ojo9Pzs+PkBCP0BCRUdKRklHSUdGRkZFREJBQUZGQ0JCQkRFREdHSEZMUUxJT0pKTEtJR0hFRkVEQ0lISEtKR0tSTUNPT05RUE9PTk9PS0tLUFVXVlVTWGBeXWlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmtrc01GRkVIQkJBREQ8QUFAQzw4OT0+Oj89P0I/QEBERkhFSEZGR0ZGRUNDRUNESUZDRkVCRUdFRUZHRUpNS0hRTUpLSEhJRUZJSEVDSUlKS01LUFNORFFTUVFSTk9NTlBNTE5TV1ZXWFZYXltdZGBoYmppZ2tfZGVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJGRTxAQ0JEPDc6PT47PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0NHSEZIRkVDRkpKR01KTEtISkxGSUhLSEVLS0xNTk9SVE9JU1VUUVRQUU1OUU5NUVdaVlpZVlpeWlhhYGBgX2hlY2BkZWdnamloamZobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9yc3lNSEhHSURBQ0hFPEBFQ0U9ODo+Pjw8PEFCPT8+QUJGQ0VCQkhDQ0RFRkZHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMSk1LSU5MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZXF9fXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJFR0U8QEdEREA5PD5APz4/Q0I8QD5BQUZDRUVDSERGREdGSEhGSEhJS0pFSkhIS0hGRkxISEhKSExMTExMSU1LTU5NT0xQUFFVVldPSlZWVVNTUlFMT1JSUVZbW11eW1xeYF9hYGJkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd292SUpMSUxHQkVERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFRUZHRUlFRkVJSEZJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOT05PTE9QUlVYVk1OVFZVU1JRUE1OVFNSV1teXl9dXWBgYWFhYGJkZWJjaGJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3BzdnR1dXd2dXV0ZXFza3BxanJ2b3dKTUxLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0hHSEdGSkZDR0pHR0pGSUxISUpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZWFhY2luaGJpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0RBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NCSUVCSEpJSEhLRkRLSkdISUlJS0dKSk9LTkxJTEhKTUtaZkpkXEtsUkhPTl9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENEQkVFREZCRkZHQ0RKREVKTExKTE1HR01KSEpKSEtKSUtKTkxNTUxMSUxNTFtzYmRwXmxsVU1OZnNdZ2VxbG50Z3BpX2FZbm5icHBia2pqZ29xdGV0bm9ccHVncE1Kcnl2a2Jga2VlbXhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0JCPz1CRkdCRkNFREVFRENISEdERUtHR0xNTUpNTEZKTkhJS0pJTEpKSktNTU5NTU1LTk1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUVxtbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhwY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9Pz9GR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSUxLSUpNSUtKSktPUE5OTUxOTUxcaGR1XWxxV2xOT1FtVVprXmtsdmFsZHRUZWNObVlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR3SU1HSURFRUNBQjxCQEJGREdGS0dFQ0NIS0hIRkpMTEZOS0xSUkxHTU1ITkpJSE5ISkpJSE5PTk5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQkdDSElNSUZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUhKTElLSklISkxNTUxJS0tLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYG1oXGpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3c0hIRklERURGQUBBRURER0JISkxHRkRHS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpJS0tJSEpHS0tLS0dISkpMTExLSUtMTlRbXFRQVE1QT05PT1ZRT09RT09RSkpOUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0lQS0xPS0xXTUlFRUhJSkhJS0hMSkhGSEhKR0dJRUZMSElLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHh5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVFSkpKR0VISFBKTE1KTVNJSEVBSEZKSUtLSUxKSEZFSkhFRkdFRUpHQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjYFlfYltgXltUWFhaX15kYmJhY2VpZWtycG9wcG5vd4eGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tFRkhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUFGSkRASktJT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmJiY2NlWlJZVlVcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJTERDS0pNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hEREBEQUhJQT9ISUdPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUFBdX2FjY2NjYlxkY2JkY2ZYUVVUU1xYW2FfXl9hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0hHR0pGRkZJTEpORUNLSkxOSkxJS0pISUdCSEhRTUtLT01LS0lIR0VEP0VCSEhBQUZFRFRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYmJgYGJiYGNiYmRkYlhPUVJSW1NcXl1eXl9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHiIeFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lJS05MTElMS0lJR0RIS1FPTUxQTExLS0hJQ0VBRUNIR0JBRkVCVlVFXFRdU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJcYGBfYmNiXWJiV19fVFBPUFFYUl1cXF1eX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNQRFdfSUdHSERGTUpQUEZKSUpLTkxLS0xLSkpHRUpNUVFOT09NTkxOSEtBREFDREZEQ0FERUFMSENMTFBPT0xGTUZHSUpIR0xMTU9RSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUFVUXFlZW15eYWFlZmNoY2ttcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXkxHSFlNSEhKSEdOTFFRSUxKS0tOTlVOT0tLTEdHS1BTU09QT05PTk9IS0VgRURfTERmY0RNW0heXHNtT01WbVlMQ1BfVWxXZ0pdWFZeRExRVUxNVFZRUlRYV1RYVVRcVFBmWmhoZFlUa1RXVlVbXFxgYGFiYmJgZmlnbmxocnp8fX6BhISEg4ODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USUtHYFRISk9KSU9NUlFLTUtMT1JVUk9PSkxOR0hNUVtZT1BQTk9QUEpLUH9RSXxZWXJzWFBtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlaX1ZVV39qdHV1X2F2X1hiXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdJTEZSVkxLT0lLUlhXUU5PT01RVE5PUVBLTE9HTVBTW1pUUVJPUFBQS0haeF1UeGRoWVJUUXZndGxwYm5ma1FyT013bWpycHNycXJwb3CAXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zc3x9b355b39yX2BgYmFaYWBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQT01NSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dQVFBQUFFLR2Z4bGN4cW1aSkxVeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGdvWHZ2anZ1cIBhc2h9aWx4fG9fX19jYlteYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3V6bnx9eXhybk5KU3ROQ0JFUFBJS0tKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSVNUVVhXV1BVUE9OUkpMcm91dXF1cWRoYVZuTHFwXkZoeVd2VEtoeH14YHl7c25hXm1vZFJncnVubXlwd2x2c3RxbG1cc356a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0tbVkhHRUdSUEpMTUtMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZVV2xPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobG1yfGttaGt7dG1ta21PR0pLSEpISFJRTE5QTUxTU1JPU1NXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPTkxNT1BKSFFOUFVMS0tTVFNSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVNTV1tXWFdaUFNVV1dYUV1YVl1VU09YUldXV1haYFtncl5bXFtdXl9jWl9jY2VmZGNjYlljY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKVFJNUVFQTFZWVFBUVVhVWVVSWl1WVVRXVVlYUE9MTldUUU5VU05QTUxRUEtKUVFLUU1LS09SVFJRUVNTSUhNTk9RUlFRUVRWUlhXXFdTU1BSVVVWVFpRTlNSV1VUWVZUWVVTUlVTVFVYWVdeWl9hXVxbWlxcYGNcXWJjZGdlZGRhWWBhY2FiaWhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUEpLS05PTE1UUU9UUVFNWFdVVFVXV1daVlRcYFZXVllVWFRRUEtPWFNQTlVQTVJOS1NQTU5VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1NPU1VXVVRZVVdZVFJSV1VVV1xZWmBdVllfXV5dXF1gYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2FQS01MUFFMT1RQUFNRT1FaWVhXWFpaWFhWXWpkVlhZWldWVFRQS09WVFBPVFBQUU5NUVFPUlhUUlFPTU9TVU5XUlRVVU9OTlFTVVVUVFJUWFZaXVxaVlZRUldYVltbVlBTVlVVVlhUV1dUUlJYVlVaX1peYF5WXl1eYF1cYGBfX1piYmRoaGVkYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUVdSU1NYTU9QUlRYVVVVU1VZWFteXVxbVlJPVVdWW1tXUFNXVVZYVVNYWlRTUVlXVlxeW19fYFVhXGBhXmBiX1xgXWNhY2hpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeX1teXmFgX2JcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWF5cX1dcXmpxd3mAY1xbVlZYUk5PV1NOUVFQUlRSTFFUU1laV1VPUk5TWFZUUlRSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVlZcXFZRVFZWWFlSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkaF5cZGBhYGFjZV9iX1laXltcW1lYWVdXWltaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1bYFxgVVxdaWpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVW1laU09TUlZWVVNOVlJTWlJUVVRYXFdYWFNYXFheXVlbXlRVTlZXV15bWFFUVVhYWFRWWFtUU1ZdWV1dYV5jY15ZYFtlYl9kZF5eY2NhXWVmaWVnXl1kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVVdWVFRUXl5gXl5iXGBVXV5ia3l0bH1sWlVaVVFRU1xUVFRVVFZZV0xSWlZdW1xST1VTWFZWU1BXUlNXU1dVVltdWFtZVVpeV19eWVxaUldSWVhZX1paU1RWWllaVldZXFZUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZWViX2RhX2FgYmJfYF5XWF5aXFxaWVpXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFhXV1ZWV11YUFVcWV5dXVRTWFJYVlNSVFhSU1ZUWFhYXV5YXVtVXl9YX19YXFZSWVVZWlphWFxVV1daWlpYWVpaWFZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVpbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlRcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFpcWlZYVVdbWllbWVhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdaWlxfXlpfXFZfX1pdXlleVlNZWFlaXWJZXlZXWltbW1pbWVtZWV5fYGBkY2RlZWJkWmFmY2dmZV5hY2BjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1daWFdcW1xgXVZdXVNQVlpXVlpVWVVYV1heYGJhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xTVllQVlZWVlZWU1ZUWF1cX2BgXWFdV2BeW15cW15YVlhYW1tfYFteWFhdXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNhYGVjXWZpZGVoX2ZeY2JjYWFgX19bWFlbWVpaWFlYV1tbWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFkYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWVhdYGRkX1JYWVBYVlhYWFdWV1ZdXl5gYWFfYl5ZYV1dXlldXllYVldbXGBfXV9ZWV5dXl5hXVtaWVxfYl9iZGRlZmdnYlplZ2dpZ2NfY15hZmRaaGljZmljZV5iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWFddXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcWFpiZWNhUlxZT1hXWVtaWVdaWWBeYWJiYGFjX1xiXV9dW19eWVlVWF1dX2BfX1taXl5gYmNcW1dbXWBiYmNlZGdmZWdkXGZoaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11aWl9dXF5cWF1cXl9hY2JhYV1iW2JkYV9jYmJdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGFUX1pRWVdcXVxbWltbZGFjYmNgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl9dU1xfYGNkZGZlZ2ZlZmVfZmdpaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3p6ent8fHx8fHx7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3p6e319fX18fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIjbG1tLS0tLhRJisrKyolYpKMjI2Njol+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIuRu8C/wMC/xEkUGxsbGxRdlo+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEg4GCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f395d3d3d3d3eHl5eXp6e3hub29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2AgYGBgYCBd3Jzc3Nzcnl9fX1+fn19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dHZ3ent4e3h3dnh7eHt6eX15eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3p6enp6eXp8fX19fX19fHt7e3t7fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx7fXp7fXt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHx8fH1+fHd4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d6fHp7fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en18fHx8fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h6enl8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYGAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCCg4GChYWGhYaGh4aGhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4SEgoGBgYKEhYiHh4eGhoiHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCg4SEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKCgYGPiIGBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/f4CBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYKBg4KAhJmRgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIKDgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoOEgn9+fX2Im5WFhIKEgoF/gIKBgoKBgoSDgYGBgYKDgoKCg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4SFg4GBg4KJiIV+fHx9foGamISEhYSEhIKBgIGCg4KChISDgoKBgYSFhIODg4KCg4SEg4ODg4OFhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+NjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAf3+Ag5eRhn2BfoKJfpKYgoKCgYGCgoGAgoKCgoKCg4OCgoGCg4WDg4ODg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUk5SSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9/f3+Dm56FhIp/gIR/gomCgYOBgYGBgoSDgYGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGYooeFhImGfn5+gYODhIKDg4OCgICAgoKCg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgZCdhICAgYF9fX19hYWFhIWCf319fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDho6CgH+FjIF9fX2Dh4aDgH5/fn5/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4F/gIaGg4B/f4GGgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhISDgH+DhoOCg4KBgIB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiYiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIKAgYWEg4GCgYGCgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODg4KDhIODgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYSCgoSDg4ODgoKCg4F+fX1+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeGiYiDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4SDhJGSkY6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhYCChIODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4GEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4GAgIKDg4ODg4KCf319f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn2AgoODgoODg4J9fX5+gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn5/gH99f359foCCg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gIB+fn9/fn58fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f35+f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf3+Af4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOAgoKBf4GAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGBgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f359fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaHh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhYSDg4SDhISEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAgICAgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WGhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgIGCgYKAgYGBgH+Lk4+Mi42OjYiHh4WFhISDgoKBgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpORjIyNjY6KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2LjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKMjIuOjYuKhoSFhISEg4ODgoKCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42LioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH57f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYOBhYaFhYaGh4aBhJGOjIuKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJioiLiYWIkY6LiImHhYWDgoKDhISDgoKCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiYyQjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH59fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+Ni4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH+AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiNjIqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKFhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAg4F/gIGDgX5+gIB9foB+fX5+gIB/gX5/gH9+f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyJioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fYmFhoWFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dXSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX18fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAhoKEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX5/fn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f36Af359e3p7enx7eoKEf4OCgoKCgoOBgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Bg4F/gIOCf3+Af4F/gH98e3t6fHt8gYB/gn9/gYCCgoGBf35/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH5+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OBf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fHx/fX+AfH9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYGEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgYSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgIB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9/f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH98gH99fn5/f31+foCBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhIOCgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGBgH5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4eHt4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHJ5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/foF/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn58e3t8fHl3fHl3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn6AgX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/gYF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHt7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGEg4OEgYGDgIKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYB/goGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH+BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3x6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfoGAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX56fHx9fXx6e35+foB/f4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn6DgoKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoKCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fX19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+fn9/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODhoKDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgH+Bg39+fnx+fn1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISDhIWFg4eGhoSEhYSFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WCgYSDgH99fX59foGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhIOFhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SFhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgoN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9gH99gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3x/fXyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WEhYWFhIKGhoaFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fX+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhoSGhoWFg4WGhYaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYaHh4iGhIaFh4aGhYSFhYSFhYaJioeGhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWEhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaChISChIODhYODgn2Af3t7fH57fHx9f358fH59gH99foB+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhIOFhYKEh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn58fXx/fH5+fH2BgH18fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEg4SDgoOHg4SBgoSEg4GAgIB7e35+fHx8fX18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeGhoiFhoWHhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4eHiIaGhIaFg4SDg4ODhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYiKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4eHh4WDhoWCgYKCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFgoGCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIiHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaHhoaGhIOEhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4iHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYeGh4SGhoaFhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4N/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfoCCgn1+f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYSFhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSFhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3uAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp7fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEg4WChYGBgH9/gIB+f4CBfH5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCf31+f35+f4R+e398fICBfYGAfX2DfH5+fX1+e357e3p5enp5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn99f4J8f399fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZLPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fb29vb29vb29vb29vb29nX19fX19fX2NfW19fW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0j4yMjIyMjIyMjIyMjIqguri4uLi4uLi4uLi4ubCKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFpVVlZWVlZWVlZWVlZSeaejo6Ojo6Ojo6Ojo6WVU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpZ5fWVpaWlpaWlpaWlpaV3yopKSkpKSkpKSkpKSml1dXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqjaGRlZWVlZWVlZWRkZGGDrKmpqampqampqampq5xiYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs/Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzMzMzLztLS0tLS0tLS0tLS0tLQzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7O0NTSz8/O0NPQztLU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19bX19fX19bW1tbW1tXW1tbW1tbW1tbW1tfX1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Oz8qWpdHP0rmPvtScgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8+cqp2s1cCUsJyxlri5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DLlIianM6joIuRw5N9fq+w0s7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEI6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0b3ImZm7moedutTSzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Sl5SgvpmQn6DS08CgoNDP0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Ts5vEm76pr5GhudevoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0c6NkKGsoJqtm6nYo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHL2qiboJqmxZii0Z6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Nzk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJjqWan6+enJubrcefodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HKu6Gmp5zPpquknsW0pKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09OekI221suSkKfXuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0rrE1dHUy73V0tHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLV1NLS0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87OTg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VFQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqY21nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW2tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQEJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cm5ucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9bXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVWJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipKmnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6KvqqqsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustq+zsKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaioq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYW1odWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW2vLy+vLy+xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsLDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb21ocXhueWppYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbDxMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3hmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/KxsTDw8HEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMnIyMnHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBx8HKysjGzMrNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVvc2JdYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBwsO/v77Ey8jKy8i7usjHyc3Iw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnZGplYWptbm9eWVxWVk5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbCubvDubi5u73Bx8HEyMbHycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWlpaXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba4tLS1v7u9wLm+urq0wLi1t7Kuury2x9S5y77Bu7/BvLvEvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYh9cWNgYmJnamdmaWVpXVZWVFlPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vrm/vLy3tLevrre1t9PAmNS7v7y7w7W6x7i2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2hYWE5LS0tSSUxIQzk9OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8t7u9wcS5t7e2tbm5ubrStIy4w8LCvse3ubitt7W4urS4s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+HfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2kr7C4u7K9vrvEtrW4trjAwMW7zaiElcLLycbPwsC4rrW1vL64urK+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG54Y2diW2NRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD8+Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuro7G5vb6yur68xbixuLi2w7m/w8SfhIu5yszO0czKxLW6wMPIv761v8G/xsa/y8bDv8G8wMPMysfFxsC5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDPDs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMK9zcS9u8S/ubGVio56iJWtl4WMrsbJyMzLzcrGwsTLzsK8ub25ucDDv8jGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qIem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPz9BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLW8trq8xsjbwrW/vLCManFxWGJmeImKjajBxsLHy8jBw8HAycrCwLu6sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gXptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7y9utKywcm2tJJ0eWhifmlbWlxwio+pu8G9vsbAucC8vsXEvb25srCuuLe/w8fDxLy9v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pW19gWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLfQtqbGto5nUm5uT3OLf3deWX6Ssbm3uLfCurO7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXVpUSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+2ybSWsaFnWFWLcFNdeoKHgE1omLW2srK3vrmytbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZxbF5iYFtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u8ayk56FWFNnnGZSV1eSqX5YWqfDubOwtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNcZlhcXVJOTUE+SUJBSklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6r628s7i6t7vPuZiTclJljnxmVGJtpb2GY1N2nru2sbS1srSvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk5GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5ura5u7W1s7W5x76gkmRSi5lyenmLcoKSdXB1baLBuLO0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jpKOhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmZ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+yssC+rJxWXpTElYGYkmZ1dXaAfn2vv7ixrLOvrqyutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrn6aim6OclZCMj4+Qk5CXlZaYn56empiml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqe9ybWkVmSFk35pdGxnY2ZrdXFwkK6zs6qytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6WpsaOlqJ6gnJWTkI+RkJiQlpWYl5+Ym5mao5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01KSEdOUk5KTkc8RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaKftM/ArF14dXh0ZGlZUE9TUldXYHeGqbWur7O1qqasq6KcmZSOkZaXmZmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmpabl5eYoZ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHl5YGJSVWBJSUpLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6XnqWenqnNzZlvenZ0Y1NNVEhQSVBNTFVkZ4i1sLCwuKymoZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKmxr6KZnJ2eoZmbm5qYmZuUlpuWmZyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5UTFNMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpyim56kyrBoamtzYlJTVYV1alNPSkpRVlljp6+trK+nn56ioJeRk5ugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7issrSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFJVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnZ6amZKZnpuhoayYeG5rYFRMWHqqsKBsUkhFR0xRVo2rqqqppJ+fmZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLa9s7O1oqyiqaiyqauop6iamZ6aqqefmaegn5+nqKWkn52qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JXTkpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6anKSgn4htYFVQUVui3eDDjXBbS0RARGGWsK2pqqWfnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7u3s6mzraqztK+zrqquo52rp7ayrKKwpqGjr7GtsKSlr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHFra3VycGhXW1FFVEhESU9IPkVBNEZIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJqfoJqfn5RzYldTVFlts9zGsKusjG1VW4GssKajo6GgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr7HxsK3w8nJwsHGvrq0urq0u7ewtbKqurKuu7e/urqqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9eXFrZGhveGpkWltGS0xFRFNMREJFNzo/OzU0OTk3OD4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbKyuKehoauqoZyeoaGdm52JX1NRVVluh7XFs5Se2Mqso7CsoJmcm56emZeXl5KMjpeXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS083T0NPTzMrCxcbGysjOv8jRzMfFx8XBvMPBvr++tb6zrb+/wsPHxMfErr64sri8w8HBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeHRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopKisraqgnaOfnJ2bfFNKT1Jng6K2sqWJrcy7sayjnpyfmpiWlJKUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K0tfR19LU1tPTyMzHzM3J0s3O083FyMnKwcbLx8jJxr/Ds7PIxMvKy87Fyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ0dmhjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2hpXFORU1Vd5PFyq6co7GpopydnKCkoJ2alJSVlIl8d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3RydLV1tnV19PW2M7Syc/RzM7QzNLPv8jHysPMzMzOz8XGx7a/yr/RzcvPxcnIv8PDyM7Mz9DPzcrHzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdm9jYGVyYl1SXElKR0FFSEk+O0E4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWfoax4TUlOXoS329W4raqalJefm5ugoZ+bnJmViXdpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNDO09fW09XQz9LT0cnT0cfQ2NfY0djS19nV1szPz8nN0svO0MDGwsfFzs3R0dHIy83AyszF087MzsjEycbGyMzK09PR1c/SzNPBucWxpai1rqeaqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1JNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztC/vMzJtr6upqqooqOzi1tlbYm318avpp+XlZeZmp2gnJmcnZN9cWVjY19fYV9fYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHG0dTK0NTV1s7S0NjY2NfLyM7Eyc/MyszAyb/Hyc3Oz8vQzc7Lzs7Hy9DQys7KwsnGyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp1b3Bua2FkbnBhV1xaSUZGRE1XRTtAPTMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsKmsramjs5t4iqfO1LObm5WTl5uenp6clJaYlYhrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVyr/JwcXMwsjJwszDxcjKys/KzczQzdPLxsjPzMjHy8TGwcXKzM3P0cbQzs3NzM/Fx8C4ub3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV5cHJrbWdgYHBoWFhoVkxGTElQUEI7Qz47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXEwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWvtKigq6OIjZK41KyUjY2YlZCUkpGWlpaQi3xlYWJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL/Gyb3Cx8nOxcLIwMfNyMTMysvPyMTE0MjGwsbIxL7Ax8zMy87Cy8vIx8zQxMXHu8fDycjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd290ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK2u7uto7WSaICIxK6QjY6Xj4aDhISCfoWFf3NgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLLycHCy9DEy8i/ucG7xse+v8bPy8O/w7vJx8i7yMbFysC9wsvGxcS+xby8wMPFzMXFu8DKwsXH0sTAyL/KycbIxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZujoJuUe3ZzdGZpWmFubFpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcO+sa+5gmJ+j7aPipKXh3qAhYaAdnh1cnBfW1tdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjBwcHEvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDv7zBzcPGvb21wb3Dur3Gu8K6s7zFxMHCtr+1tb2/u8zDvLW6yLq/vsvDwcXCxsnGyMbQxsLMx7LHycPOzcHFw8C9s7ewsqeoqLmwpa2wqq2slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfFwsTIztHKysrHzc3O0cjQxtXU1tfNys/FycXHwbnFvausrm9ldo+Ti4iKhXmAhoaAfoR8dHRjW1xdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLW3tLOztLq0vbG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bBwry4vcbBw7u1rrK2ur+0xLe7tau4vb2/vbG6tq+2urPFvLeuu7+1t7TFvL7DxcDDxcbIy8XAxsa7x8u/z8rHw8bCw7fDvb22ub7Hv6y1urW3to55dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy83IxcjNzNDMzcjKyMrJysTPzdLPzcXHwcXAvrm4ybaqr6NlaXWMj4aIiXt4foaGd3iCfXRpXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7i4tbCrrKeeoqqnnquts62pq6m0rrawsqmupqyyvLq2w7m6urGrtbm7tMK6sMCxvry7trvHucK2raqosLHAtri9r7CnsrO0u7yrrbWmrrWvu7Kwqbmwrbuuu7i7wL+9ucK/x8PFwbzGwcfLuMXHxb/Gw8O6xMbCu8bJzMuzucK8u7OIc3Z2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx83Bw8a/xMTDw8rBycq+wLzBurK0tcSvqq+bYWx/kYiOj3t4foqGenuEgXduXl1cXV1fYF5fZGNiY2NiYF9dW1taWl1aWlpaXGRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCjpp+qrbW2sb25r7evqa63tLS8uLS8r7e5tbK7wbLArqWpoquxsrOovaqrqKusrbSzpqitoaSvqbKmp6iupai3rLGyt7q6u7K8vb++xL+1wsDHyLe/wMS3xMK/u7/Ewr7EyMzKv77DwMCph3N0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HLvrvJtr3DvrnKt8HDwbS2vLaxr7W8rqipl2VviIOIi4B7foB+eHR/fHN3ZV9dXFxeX2BeX2NjYWJgYF9eXVxaWFpbW1lYWlxfZmtmZWdlaWtvcoWqpayloJyipZSepJuYkqGjqqSin6Wlp6WtoJ2bpKassq+2t6ewq6iqtKq0urG2ta62ubGvurqxtqSgpJ+msaerqLmqpKeoqKeyraCnpp+bpKasnp+npKCgsa2trLK0srSwtby2u8HBsrq+w8GyubnDs8C9v7W4u72+vMLHxMLDvsDEoIN4cGthZl9rb2BUWV5ITmdPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9taCelZ2hprq2q7Ozu7PEz8nLwsa4t8fBzL+4ybe7xbizxLezv8CstryyrKWvtK2gopRseIWGhoF8eXVzb21ramlxaV5gXVxcXF5fX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeWm6GWm6KYlo2eoaOnm5+fo6WiqJ6bopufq7CssbajqaqprKyktLmtt7Css7WusrWusKqfnZ+korKkpqm4raKmpp+orKqZn6CemZ2fpZqao5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7OzubO9tLaxsbW0v7a9wL3Dwbu7vZeDe3NrX2VeZGRYVFddSVdcS1BHSUlGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vEw8++uce4t763ssG0sbu7rLq6saKeqaunl52QcX+Fhn94cm5wbmtiXmJmZlxdXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZWVmZmhpa3KNp52UlZWbmJuilpaRnKKiqJ2bnaWmoqacoKCamK6ura6yoKWiraunobWxsrKsqK+yp7qzprWgop6bo6Kto6Kptaqio6adpqajlpiel5manaCal52cnJusoauno6Smrauzs6q0sLKqsrm0r6mvsrKzt7Ouqayusriwura5vb+3s7GUhXl1ZV5lXltZVlNaVUtbUUtJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWjmKWxwrW2va20uMLMyMbAxbbBv8fOt8DEvbO5ubK/trG4uq2yta+fmqOqoZKZjXl/g4R/eG9xdHFoZmRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqKclJSQlZeXoJeZlZignqGclqGiqaSfnqmcmpqrp6+wqpujpLipoJ+uqLaqpqetsKS3sKS3oKKbmZmqpqCarLiwoqGknKKfn5OVoZSVlpuYl5aXnJWfqZ2po6Gdo6qqsK2otKuqpq2ysKWqrrKxsK+ur6anp7KusbSvvLS5t66jlIF5dWReYVZZV1NSVEtNXkxPS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri9rp2np6Oqu8C9wLmutLjBzMfFwsO9xbfIzLLBwsGtvLu1u7y1ubmwsLGqnJmhqZWQiYyBgHx3cWlscnRwaGhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2JjYmJjYmNkZmqBlpOVjJKUlJuZnZaWnKCcoJahoKalpKann5yfpqCqr6afoqS3qKGhoqi0oqWopbClsK2rtJ6gnZWVqqGhlK2xsZ+io52emJuTi6GUkZOYmJKXl5iXnaabp6GimaOlpaukpbCnpaOrq62mqK6vrquoqqmzpaasr7Sxrry1sa+uoJJ6dnJkYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepaett7u8wcW6sbm1xMnJwMPGxse2xsSzwr/Fq7e3vba9u7u2s62tqJmYn6OLiHOJiH52bmNhZmloZmhqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVJUUlVgYF9gYV9gYWNkaYGUk4mRj5STlJ2UlZekmaCXnKCloa2mpKSjo6KcqqulmZ+lsaqgoJ2lq52nop6trKmprayhoqKVmKObnJCrqbCbn6KfnpeZk4qekY2Sk5aQmJiTnKGinaSgoZWgoaSmm6OrpaKkqqSrrqWtsqmmpaamtKapqK2ztbS5uq+prJ6LcnBvYFtXVlVSR1FPSFpbT1JJVEtTTEVGSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7Kwq7Ktnainr7m5s8DIurXAr8XIzLrByszItcm8sb3EyayxuMK1vMG8tLWrrKaVmZubh39yiIN7dGlpamxnamtta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eXl9fYmRtjpCEkYeQkY+Zk5WTnJujnJugqKmrqKynqKWjmKSupJSZpa+pn5uZm6Cerpmbq7OgpaafoqOhlZOblpaSqamtmpyfoaCalJCMmY6MkIySjZaVkJ6hoKOcm6OVm6GjoZehqKOiqKugq6+jrbelo6OirK2qqKuvsreyvbWzq6+YhHNzaFtYWFJVUUVYTFFbWE1UTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62os7auqaevrpupqKy3tqy8yru2v6zLxsW4wc7PyLPEure7w8ixrLi/t7y+u7S3p6qglpaYlYV5dIB2d25taG1ubXBnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVU1NOUFFZWlpaXVxcXl9gZH6NgYt/jJCKko2XkZeZoqCboKuqpq6sqK+jqJqfrKGVlqSop52XkI+anq6WmKiqmZ+dlKWgnpKQkpGTlaeqpZqZmZ6elY2Mi5OGiI2DkIuRlZGgnqGjl5WflZqhop6Um6Wlp6iooLGwprG8p5+jrLSrrqewtbC5tcCxrbGrkH1xcmJWU1ZOUklGVlBSUUxMV01KTE5SR01KQUNGREM+QDY1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqaisKudqqepsrGltsa0ubqzysW5usHL0Muxtre8vsHDsbCyuK20tLu0tqWknZyXlpKBfnZrZ2xucW5xanBrZGVnZV5aWVpZWlpaWlpaWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKl4mUlJibmZ6pm6CqpqWrnaeZoKWbk4+fo5uXl4WEkpujj5SjnZaWloiim5uTi46KkJqkp5yVlZeckZGHlI6LgYuNf5CKkpKSoJqfopWTmJiVoqaZjJmkpqimoZ+0sqiyt6Gcoresqq2ksrKltby1q6uxo4l4cm1dTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjg3Njo5OTk5ODQ5ODhBN3e2p6S2saWno6mloKilpLOqorLDtbWys8bGt7rDyszGs6y5vbS3wK+tqbGepq66sLChm5udlZOGeoJtX19mcnB2cWluaWVnaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGEj4uUkZSeoY+bnKOho5illqKblY2HmJqMc42Dfo2XloaRmZCUjo57mY+cjIKJf4qYn6KekJOYloWNgpR+fnSJjnmQh5OPkJ2amZqRlZCdjqKjjomaoKGjo5uitK+sr6yfmKW4pqaxobGunLC7qqmvqpmCdnJiVU1ST1BNQ1NOTFFNQlBRSElOUk1ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTE3NjQ3ODk6OjY1Ojg3QTd4t6GjtKmmpaijpqWmpqazp6a0wbivtLDJxLe5wc7FvrOsusGrrcOtqKKnkp2mt66lopCWl5OPfXd9ZVdWX2dmaWdobmNqaGdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5YcpCDl4aNnJeLlJCfmJ2VlJaUjpaJgJOJXztXb3yLlImAjJGMkIaGc4qFloF5gXqFlJ2Ug5aOkZCDhn2TeHFvhY19iYGRjY+XmpiTio+JnIefmIeIlp6aoaCXp6+praion5ats6Kmrpmsq5intKKpraOTfnJtX1tOU1JWTERUSlBNTEZOT0lFTFFNS09KSU1PRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6OpsKintMG5sLWwx8K3s73Pv7mvrrXCp6rFqaOdmYOUnLGknZqIlJCMh3xzdV1RTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQH+VkZF9iZSNhIqNm42WlYmSiIWVhnmIf2BKUW54ipGEfYSNioV/f25+f5R3dXV3hI2ZcFGNiIqGe354lHZod4aIfoqIlYqNkZKWi4SKiJSEmoyChJKalp6clKSjqKmlpJ6bsKqhpKSRpqqWoamcoqaoiXVsZV5bSFFRUk1JVU1TSUxLT0lIRkpOTE1US1FQT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6KnnZ+ir6GnqKWnqK+tqrW8tri3s8G7tqe5yLi2qKi1tqqyvKaelo5/ipSpl5iNf46EhH13cW5YTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJOBkpmLj3uGj4B2f3hzbnVwdI2OgXp+iquFeXpodnuOcHJteIGLjZJ4eoB7gHZycpJ3Z3WEhISEe5WJiIqMi4B/hIuMf5SDe4GQmJWclZGfnamen6CdoKmln52Yjaekk6Cflp6epIByaGBcXEpWT1JHSlhST0pMTVJKSkpMUEhMUUxSVExFSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpijoZicn7Spr6mlraywsaq9tLK7uLa6tLGft7qyqp2drKmosq+hmpGOlIGOnI+UgXiIen13cHBpWEtISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfXlnd42XmI2PfWh5gXZ4gImPfYSYkoFyh498d3tva36tfXOQi397hpKBfX90ZnZ8hmxvaHN8iYyIgGx5cX1wbXWPcWlxgH6OcEOLhIKDhX93d3qLhX2Me3V+jpKPmIqSmpujlpmdmp2eop2WjYqlm4+el46WmI92bm1lYlpXV1RRSlNVVE9QTlBWS05LTk9KUU5ITk9LRUM8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ+WoKavrK6rqKmwr7GrvLisu765s6ynm7CnrJuPlpylqaSgl5mPhZJ6iY+MjXhyf292cWxua1hLRkdFQUBDRElMTE1RUlBRU1VUVFVWVldXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTk9RVFheZXBybYinqsB+dXljfHhvfHmIkHp9i4ZvbYySeXR4amqAgnGWkYuBfpaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnp9fnt2b3RzhYJ5gXhwfI6MipSDlpeYmpCTlZaZl56XjIOJn5GLko2GkJZ+bWhtbm5XVVdUUlFZT1JUVFNYVU1OSE5KTU5KQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6lrbCirKqota+urLS/qrvCv6aimZWkl52NhIuUoaGYmJGTi3OOeoCGjYh2cHZtcW1mbGtZTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX9wbX96i4l2gYiGdGyakXRzfGprnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxgHxncXF7bpONj3tzfXxxcG51bYJ+d3l1anmJgoiJg5aTkpCLjZGUlI+XjoB5iJeIhoqGgJCHdmpqbmdkV1FaV1lZW01QVVZZWE5JSEVKSkhGQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfprqvq7KwwrG7w8ealo6UmYuNhXmEkJiUjZCMj4Zxh4J0h42Ie3FzcW9wZnFnX1RGSUM/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHJ8eGx9bXKDgYWBeoSGhnlyoJVzeIBzdZSHNXGdqJ2OoaGEooV2cIZ8h3xzjK2NiYBnZmJqbnJtcIN1aW9YdXCOmpJ3bH97fW1xbXCAenN1bmN2g36GgIWQkYqLiZGLkYyLj4N1eIuPgH6DgH6PenFwb2tfWlxdW1lYYF5STltaWFdMSEpFSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoeWkZ6kp56vlaW1qq6xrsGyu8HGlo+MlJCAiH1ugZCSiYOKh4+FdYKEbJWIiXx1eHhtd253ZGleSVBHPkA3NDQ4Ozs8PT5AQkVITExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8foWDf4x+dqKZeX6GgYWZhJucYYaqn52Lg5COeneIfomIjXOKl4+Eel1kcXR6e3eKbGdqYnlvhY+Cem6Bd3SEenBzendrbmled4d9h3yIh4+Ai5KXg42FjYd9cYR/hHx1d3t9iXVvcnNlZl9bW11TW2ZeV1FVWFtVR0pKREtHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMeIp/lIySnZ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhIt9fYF/cIF+emh2a1JXTEBFMjExMjY3Njg4Ojw+QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+Men2Jh36Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbXyBhod9jmhnaHh+boWHgoVxhIVHa4B3cXl2aG1rX3Z9g4l/iIWMepWem4qLiJF/enWLdnx3bW93fn9zcnFqWl1cW2NjWGZlW1VPUFZZUERMS0ZOSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpeSl6GdrKGmuK+zvLOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiX5zhHhfY1ZLQjYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiZGBmpWCoKGXlZuapa2Tmruxp7vHw6iKjKGlj5SJgZF7coSen5Gcf3aFhYqPiJBqaG+DgHWNhoSLcYaCd4eAe3aFfW52dWeAlI+GiYiIiIehq6GWiY6Yf3uBiXp6b2dreH54fXFqY11aWl1pXGFmX1lPS05XUlFJUEpETkdDS0RDQURDQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnVwZniDe4CMgIGQj4uamqScoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBi4uCiY2Df4p/bHBqXUJBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPop+UmZKEioWPmJGWbHB1iYuBloyNj3aPhHFshYGKlpKDhYhyiaGWh5OJj4+WpbWpm42VooOHk4R9f2tqa3yAf4ByYVxiXllmalxra15XS0dPU1FOTUxGSVBDRE5GQkNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwgnB1h3F2koZ+l5aalJ+fnKegqpaTmJ5nZaSafoSSkXmAkoiQkn2KhZiSkYKAgIuNiYWQh4SIhXh4f2dNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+ElJKGnKGampmnkZGIlaKamnd6fpSXkaGSl5eBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N8fnpwZ2BbX15hZmNgZ2dcUUVKS1BPSUpMRkZNQ0hMRkZDQkdEQDo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcHVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Kjox7ioaPkI6Bg4CJi4qEkoWDhoiBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtL24pa6srKeotKywt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsrauki5aYhaamoKKXgaaZjaKqqKSHhZOjoaCqoKSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWqiJqJkoqVent+hH1mX2dbZGFdY2NeZmZeW09DSUhUT0ZITEZKR0VGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqEdoGUhYiCm4OSkI2S2sidlnNWl4iPiJyPfIaMjoqJeoiCh5GOg4WAi4WGh5KGgoSJhoeHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJTVVVXVU5bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHw6uzxbass8Czub62v7TBtru7pLjGqbbJx7a+ubSoo7StsbGcmpKan4mnr6qklXafpJehq7GzmJaqraiutbuyuqyvtaKxrLG1vLe1rrWgp6ijqJupsK2yuri4p5u3qY2ljpGToId5gYJ0WGBjVWVhYGJfYGVfWlVKREVMVVFISkpESUdFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hX6AjXu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeFgY5/gYmOhn+GiIWKh5F6eG5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFdQX1VJS0pBQD9HS0ZFRDs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMm2u8S9s7PAt7jCtb+wuHSytKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KSpbGtpa2sp6SYoKyzuqKpsrq1u77Mv8XFvb2zwre6uL+3ure5rK2wprGqrb6wvbvCwqyZuqiUro+YmKqJfoF7alZhYFdpZGhkVlpjWVZUSUdHTFFHQ0hJQUhEPj9CQktAQExDOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWVVad2pwf4+EgY6FbnpyeYhiuKGZo4mVk5aTk5ONkJeSh4d7hoGNlYqAhICJenyLh4Z8ioKBioOVfXd5dWVPXGRHRUw6UWRhW15TRj47SFBEWmRRUVlYWWdaVGBgTVNPRUE/SUpIRUZBQEM9RTZCPkhHS0xTWlRdk6+4tbq5ycC7vcnMu73Au7e1vLu3vrW6ssZgdbOlsZqeq72qpairqqOisrWhq6eelZaemJ+upaenpZ6klKKnsLOnsrK8tsG908nK08bCxczCysPAvr2/u7y3tLC5t7fDusa9w8mwnrmqoqyPpai3iYF+cV5hYFxWYV5nZVJYYVZSVUlFRU5LQT5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFNRUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWhsbHGQjYWQc2xzcnOI1cC1maCNlZiZkY6XkZaWjoaHfYaDjJaLf4N/gnh6i4OHe4t5gYqCl390fXprZXB1WV1cUGVlYmBlZF1bWFdcTWRtVVJtbV5vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVlxaW5K5wLm9t8bAu7nKy7q2ura4ubO4tbSutraZZHWonq1wXqKsnJihopuknqullJ+fkJSPlpiXqJ+ln56amYOknaykqrCtt7C9udTQz9fPyczSzM/Oyse/v8LKvcG9wsDFxMXKv8jPtKS7sLWwm6y5vZp+eGtcX1tYXWBZYmJRW2BTUUtDQkVGRTxART5CSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEvMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaV9wl5KRlG5sb3V1iLOsoaGfi5mcmYyMlZGbkoWKin6Ih4yQi4l8gYRze4mDhnyJdIKKhpV/c3t4bG11e2hyZWlsaWZqaWhgZmlobVptdJetpLyIh2dbb2hdWllUSEpOUEpLUUxUUUlMQUpHS1BfX2JmaWGYt8ewubO7vrayxMe2sLmxsLuss7Gnqresjbannpunmk6bnYyOoJaRppillYqTk4mQiY+Qkp6boZiblJaHnpmmm6yvqK+ns7TU1NTW0cvP09XO08/MxcLK0L/KycvJ0sjNzcLQ0riwxLzEuqa2u8SigW1iW1tdV19XWWVZUFxXTlFDQkhFQkg7QUQ+QUg/P0I3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2VXc5CQmINocW95eYOgqp6ml42bm5eLjZWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfXF4dWxxeH5xe214c2xogHBtY2ltcHlpd31+y7/C36dtY3huY1thYEpQUlVOWV5QXV1OUU5UUVVUXG5ud4Jylq64rLSnsLarrb3Asau1pqW4p6yuoay0o46xrpqYmIyRlJGEjpuBjaaRnImDi4SKiYSLg5SVmJeUm5Ccl5mZnp6rrKSnoaysztLV0c3M0tPU0NTRzsjD1NHIztLT09fN0tHF0tbGwM7HyMOpv7jQnXhtZFxhXFVeUV1aTk9TUE5IPkFGQkJFPEBCP0VFPj8/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk+NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WGhYp3bXdwfX6AoZ6eoYuNmZOTjIuTj5aEeYWQkI2LioiRh3+Ce3J+gIKHeoV1hZORiX9vdnNsc3x8dnxzgXdxaoBycmlvcXp5cnu+y5p+jLGDdnKEdmhhal1DWlpbVmZkWGVrVFhdXGBjXWN4e3+LgZmqpKShoKGppqqxuaqmtKOiraKjraKnsZ+JppqUkpGKko6IgpOJa5WijZiEgYV+kYODk5asi5WNlZmOhZKQnZensKGgoKSkqMjNz8fBy9DT0dTTztPNxtbTzdTY1tbY1dfVydTazcnX1tHKrcTDy4lxbmJfX1dSWFJbT0pHSUlKQDs6O0VCRDxCRD5IQj9CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTU7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV9aHN5coKJgZ2VnZSFi5aJj4qIjoePf3eElJmLjYiIi4l+g3hze32Dh3eAe4eRl4GDbndwbXV/dnh9c4V8eWyHdnRvfXaEdXl7nbWMPEGKxqV+jXxpZVZJQ2VjZmNoamRveVtfZmhrbmlugIOJkYudn6CdkJeYn6OjprKkpLOgoqWeoamgorGchp6SkpKQi46LhoOPhH6cm4yNgoSFepR+gqmVo4ySipeSi32XipqRq7OYmpunnKe9w8a4tsbN0tDS0MvSy8nUz9HV2tfX2NTZ2M3Y287J2trS1r/MzLR2dW1jXFlSVVBZVUVGSklFRT06NzlAQUM6R0VARUNBREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFZPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGFxcXOGjXyXkZ2LfoeSgomGhYqCh3x4hZaXiI+Dh4aHeoR5cXp7hIZ1eoWOjZ16jHB8b3B6f3F8gXGDh4Bujnp1d318gnV/fIeIsHRYqcK2jJKBcG5iPV5ocnBxcG54d4JlaW9ydXhye4uHjpSSm5agloeMk5ugm5+qn6GtnKKamZ+lnp+smYuajJGSjYV9iIeDhYuOoJmTiIOHfm2ZeYSYhoiTjI6UjIV7m4iTj66qlJWXnpimrrW8qK29xsvIycvLz8jE0srU1tjX2NfU29fT2dvWz9va0dbI1cyVeHpoZ1pZT1JTXUhCRUlJPkE+PTc6PT87Pkg9QEFBQURBPj46ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fISXjoeLfoaHgHeCeW57e4aBdHqSno2hdo91gnR1gX10gIRvgZCBb5KEdHyBhXp2hnuJt8akwsm3gZWbj3hwZU5lY4J6gXeGopCLeXl3e4N/fIR2bZSWlJWPl5CDiY+WmpeXppyYoJefk5KXo52Zq5aRkYuNkoOMhYiIgYWQkZ6cmYmFi4GFl3uIiJ+XkImNiouCfKGIkIu8oZiTl5mcqKalrp6ntb7AwLnHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvGhXl4ZWhjX1JWVlVNS0RNQzs9PTw5Ojw+OT5BNj4/QDw/Pjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop8foB/gH2Fen6CkYmEhXqFiHt1fXRufH2GfnR/kp2Rn4OSfIZ9eI59eYqKboKagHSYhX6BiYV8fpB6j6mPkMOgu4yco5x9iYR9iXKMin5zppqcmZSFe4+QiYRoR3GhpJ2Mi5CShYiLkZOVj52ak5WRl42MlZ+dlKGUko6OkIt+kI+Oi4SIkpaan5+JjJSRnZCCi3+mmYiFjoKGhICkhoqLuJidkZSWoaegnZ6do662urWrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfct3d3dmlpZFZfWlNPTkhETEI9PT45OTo6OTk8PTZAPj48PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmAjopxcniKe3t/fX98iHp8e4uHgn51g4Z5c3pzbYF+hH13hpugmp6UkoCLh3+Yh4Cckm6HqIV6oIt8kI6DiIScfpqRio2jop+Qo66fi5GLhYuBkoZXcq2Ln6ycj4OYm4+QjluDopGCjJ+TlYyGiIySk4yUlZSQjI+KiJabnY+VlpGLkpSGgIuJko2Kip2WmaOihpOdlaCLioiOnJCDiI+Ag4eFpIWLkLOYnJKUl6GhnpmSm52nsbispbzBx83Hxs/Mz8zP18/R1K7W1dja2dra19bZ2Z5ue3NmZVtcV1JWV0NASUQ+Pz46NDg6Ozc6OzozOzs/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieGxifpKDbm13i3h5fnqBfYZ8e3aGhIBzcIWCe3Z2dXSEg4V9fpKmo56lopaJnZCUlouKqJdyirKNg6aRhJmThJmMopagmZOJmp2hkqivn5GUkI6OiJWLbo23hJrEyLKdoqWbnJiWkbKQY6TNyJWOhoeJkJKNjZOUioWKioaWmpuPkJSTh5WYhICPi5mIjZCql5eko4iZnpabiY+Hl5eLhY+MgX+Gj6SIjZOomZeTlpihmJ+Zk52borK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6BcX5nYl1dXE5JVFlBQkdEO0E9ODM3Ozw6OD02NDk6PDo4Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdoGPfXxtfoh4en56goKDfnZ2gIJ8bG6Lf3p8eHh8hIeKfoqjs6ejqrOhlqefpaOWla6hg5C4lZKymYyhoYykm6+jpJ2YkKeWp5msr6SXlJaVkIuYmZagwI6jybmrm6OmrZiRm52ynYWFqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIuUk4aUmIaEkZCcdJGYspaXpKGInJqTkIqRipebiYqWjoZ9jJieiZCQnJqZk5iXn5SgnZWem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LQ1tjT0Ni6cXh1XF9UX1VPSEpOREJDRTU+Ojc3Oj87PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p7boWGenyEeIGFgX5weHx+fW9yjXp9gXx4houJhoSSp7usqLK9r6StsrOoo6KwrIqatZ2iuKSVraSXqa23pqSjn5mpl6mjr7CpmZiclJWRl6CYmru7rsqhara4q7CUmJ6jq5OXvaNeqrKCiYqNlIeRfI6OfYOGjpCUlIiHk5aMkJWNi4yXmJKcmbSXlqudi5yUko6RkoyZm4qRnpCLiZWfoY2UjZiZnJKbmJ6UoaCUnJylr6ihpLO4q8LIxLW6vbvFx8fC0aDGyc3NxNfW0cvUoW95Z1tZU15QTkVDPjxDQUE4Pzg3NT9GPDw1PDM1MzU1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEpAi4p/gXOGh32CiHWDioJ/bX19fH9wd4d3jYGHe42PjIaMmarCwK+9xruzs8C8s6yrs7aLp7Ktrb2qm7ukqK25uKumpqGio6Oor7Kxqp2cpJibl5eeoqalkqS6rqnAvK2tsrmmpKh+iIacrb2wgoyMi5CDj4ORj3qBh5CNjZyIh4+XjYuVl5SRmpedqJqxmpGsnI6aj5KOlZCQlpeOkaCRiZSbo6yUlo+UnJ2ToJ2bmKChlJqep6akoqSws6fBxsOvsLq2xcTCv82mx8THw7zV0c3EyodycmBaWV5aTEpCS0BGRz5BP0I7OjQ+QTw9NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRT9DRlxlR2BpZ1pdXJOMjIh7h4uGg4x1hpGKgW9+e4F/cX6BepV6kpSUmJCTlaezxsm/wszBw7nHvLqvq7m6l7K2urLArqXApKuvu7yqraujo56nqq60sKqboKqboZuVn7C0p4ujurq2wbysqJyypaSolIWOqcTEpIKLj4eIhIaVlI16g42Rj5GhjIyUkY6Jl5+Yk5mVmKagrp2MqpyOlo+SkZWVjpCVkY+hlIaXn6CynpSalJ+hmKSfmqCboJSYnqWjpqakr66lv8TCrqi3tcnDvrbPssS/xLyz0cnIwrVzd2tbV1tpUUxIQ0xKS0pBQT1DRDw1QUQ7OjM9OEIzMzIyNjJBMDVJRU0+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJmWk5lXGZUY2qZjZeKjIiSkIaJeYaUkIFygHuNf3iHgoGQeo2hlqiampi6vcfIycHSycrCzLzBsq27vqe6v768xLeswamss7u+qrCppKWjq62zrba1oJ+unqWimKOzvambqL3Bo7e3sKuTsayrrJeHmqmnpZGCjJOllYmBdoqReoWNkpCen5OPlIuPjZSjmZeclZWjnqmfkaWajI+Pj5WWiHyPlZKSo5qVoKKctaWQnpeko6Klnp2mmJ6Vl5uko6inorKsqLzAw6+lsrfMwLmvxLO7vsK4rcLDwsCYbHhgV1ZaWkpLTUpGRERIQkJBREw6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+JoJOEeIV/lX9/kIiKkICWoZmupqOYwr7Hw8fF083Ozcu7wbewubyzvMu8w8G1truts7+5vK6vqKCop7atramyt5qerKKnoZ2rt7ippLC/xLG+ubOnqrWzra6XlqWsqKCRjpKxxaeVjn2RlH2IkZmQqpmYk5OPkpWTpZ2TnZmUoaOinJifmIuMj4+eiFqQlpeSlqSZZZijnrKklqGWrKyqp5ueppeYlpiVoKOopZ+2q6m5u8O0pbO1y8C4qrassrq4rqi3ur24gmttWVZUVE1FSlNOSz9BSEVESEdHOTVGTTs+Nz1ASi4zMjAyNUI1NVBWTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnFGaUlSZWJMRqWUnJahl6mWjZGDh6aTiIKHgpyDg5WQkJOOmqKfr76uoca8xcTGxs7OztLKvru2sbq7u77PtsS9uLi3srG1s7izq6acq6u5qqinr6+Xo66kp6SktcCwq6y0v8O6wLqzp7m1uLOvlqWtrq6li5OVoY10wZp9lpmFj5aajLGVm5qVkpOZmaWjlZ+blpqpnZyhoJmKjI+WnWBKlpyalZqlllSWsJ+unJ+klK+uq6WaoKWUk5iYjpyfpqKZtKmqs7y7u6qwsse/uaasq62xsaOhsbK0pG9sZVtZTk9LRU9QUFE7R0pIR0lDQz46S1U/QTo9RU0wNzU0NDpCMzROV088SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4unlo6JkoWfh4Sdl46doZqjpLXItKnGusLDx8rIx8zNxr67s665uMDBzLXHusG4tbqwr6+ztKajm6q0tKmppq2smqStpaSorLq/qKu2t77Bv765s7LEsrm9rKOutay5poibmKabdr+fhJmdjpOZmouvl6Gcm5aVm5+hqZ+noJmaqpmhp56YkI2RnYNudpKimpWdop6QrrKiqpSoqpeqraOjn6WokpKZnIiUnKKel7Gnqau6tr2zsq2+ubego6eopaecm6ypqYxiZF9eUUpMRkhOSVVMPU1ETkpLQkNEPFFVPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li5SYE1VSH9lXkhFq5WcoZ+6r5mUn4uTq5uRkpOJq42Hop+Mo62Uo6O2xr20wbrCwcbIxcLNyMG9ubKvuLTAwsq1xbHBvLS6qqitrLCio5iqtLulqKarqp2or6ejqqq+vKetvLS4vce8t7W3wbG+wLSptberv6WPopiRoqC8n4maoJmXnp6Pt5+pnKWim5yhmqils6GbnaWcqKqemZWPlJuKlomMpKKUnaKeoLSvpaSTr6uZq6qdnaSjqJGVlZ+Dj56em5WppKGhtLS6ta2otbKznpyipZqXlZiqoZ52XltfXUpIRUZNUUlNRUZHQlJMSkJFR0BWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDPzU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE6Z1xGQ0OccGJHRaeXpJ+ew62bl6WYmamclpqaj6qWlaemla2tmaGrtsTCu763wMLAx8S+zca7vbmyr7izv8LItb+vu7a4tqakqqutoKCaq6rEoqSoq6aeq6+soaiov7emrb6xuLbHtrW5uL+yv8G3tLO0r76jl6OWlJyUrqCRoqKlo6OfkL2kqZ2oq52doJumn72imKOeoqmroZ2WjZWek56Hj4SNk56koJ21rKWblbGnma6mnpmpnZ+NmJSeg42gmpuTpaSamKuxtbGqpaqtrJyYoKCSjpCWqJ6UZ2JYYF1OSEdKTktIRURJQT5QSEA8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUhAOFFRUE06R0A0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm5SRjxLeGViVkyimqOcnsWsoZ+snp2uoJOjn5aln6apq5e2saOqs7XExL2/tr/Cu8jCvsrItri1tbCzs7fBxra+sLi0uLWfpqyqq52dnqWkwaSfqa2fpKmsr6Kmp721pbG8ube2w7Kzt7m/ssTAuLius7W1o52llZKUoa6gmaKdqairo5rCramerK2bm56ZpqG9oZ2kmKurrKahmY2an5KeiY5Xf5afpqGguKqmk5i1o5+xoJ+arpaejpiUnYGOn5eVjqKklZCmrrKrqaGipaWVlZ2Yi4+Rk6SeiWBkWWNgS0hKSk5FRUFGSj49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dySEU2PXVlXEtOnp+hmZ7DqKWitKKcsqiTq6Sgo5+tqaydu7CorLWxyMXBwrPCw7zGw7zEyryvsLatsLSvv8S0ubGwubSsmaiwqamanaWhp8Ksm6ywnKmjrbCppKe9tqa3u72vt8Ots7LCwLLHs7q3rLS2rqqippaVlaSsop+fmqirsK+vu7KmoKmomZmYk6KkuKChpJOvr6ylp56SoZ6Uno+QjZWdmqKep7OmpoyYs5ujrpqdm62QnpOVk5l/kaGWj42foZOLpqywpaahnKCekpKak4WLko2cnn9gZVpnZUpJTEpSQkNASUc7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+jn5ygw6ikqrKho7SqlbOsp6KksqyuqbuyrLC0tMbAxMO1v8S9ycS1wMjBtKu1qK+4rL/Ds7eurLa5pZmrsauql5+ml627tJunsJutn620sqequbKourO3srnAqrexw720xqe+r623tamoq6GXl5KmpaKimJilr7iusrW2oJ+opJmVlZOkoLeipKWWr7Gyp6qmoZ6bmpqWl6ifn5ihnq+yoqaMl66YpKqXmZ6kkJqNk5eZhJWelIyPnJ6Ui6mpqqGnoJmelYyOmZCBhZWJlJ94Y2hcampNUE1OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzuko52hpr+mqK+voam0q525sKujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDGwLqptqSsu6zAwre3qayxuqKVrbCtspalp5GquamgprCdqqCvtLOqqba2rbuss7O6t6y4sMO6vr+mw6uwt66pq6unnpiZq6KioJGYobGvs6uwuZqcqaCZlpKXpqG3qaWjorCxtKuyqKufm6Cgm52lnKGXnaOzsJqfj5Olmp+ompSinZSXiZOXkpWWnJOIkJuZlI6oqKafo5uXm5OHjpmLfYyWhY+bamhsYGxuV1BRWlRBQ0VUQDs7SEE3OlhQZF5QVldEWV5dTUxSTl5LSj5aY15OSFBOW1VZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9aFtWO4l7Y0M9p5+coqm9oauwq6OxuKqltbOsoK21vK6zuLy6vba2wMK/yMS5xMG/v7jEvcC3r7anq7exu76/tKiusbael6utqK2Xp6iOp7ufpKyznquisLCzq6m1tLW9ra+xtaywtLHBusW3q7yvsbisraqjsaaepKmfpJeQmZ+zqrOqqrOanaebmpWOoKaktK6noaytrrGns62xqqScn6ijnpWhmZuotamXmZGSnpmdn52Qqp2Wl4SUl4qcmJuTio2Wl5qXpqWioJ2WlZeTgI+UhXuOkoOMlmVscmdvcV5GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2FVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoKSstqStqaWurraqr7W6p6awt8W3sba+wcK0tLrFvszFucLAub65w7fAubK0q6m6trq5vbSprbC1mJinq6qrm6urjqu9nauusaOroLCts66ttrK5t6qurrKota+zu73Ksqq2tbG0r66nobOgm6itoKWVlZqasqOtoKavl6GkmpqSjqKlp7KpoaayrKq2pa6xta+kmZ2tp5qYn5mZq7eil5OQjpecoZeWk6uempJ/kpeMnZyZlZCJlJKemaWioaCYlpGTlXqLj4V7jIqDi5JqbXhtdXthRWBqWUlIWVo9e0pGRDZBYlRpW01cYEpbXVpSU1JiYUxLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lUS0SZl6CxqLGqraakr661qbe0uaSss7fKurS6ur++tLO3w8DMyLzDvLa9v7+3v7yxva2nuri3tsG2qqyxt5SXpq6rp6OwqpSvu6SssbKnqKOxtLCxsLWxuLKprquyp7evtbTDxbaptbassK2pqKO2oKCnsaCklJuZlbGep5ygqo6po56blpimpaW3p6KxtKynsqetsLaspJmgrKibnJ2blKm4nJSOjoqYnKKXj5eln52UgpGVj5ybl5WUh5aPl5qnnKOgkpaQkJV2hJCHe4WBhIyLbXB3dHt+XEtlbFxLTmNcPmJ7R0k4R2dXZlxNXmJNWFlXVFhUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLj1FTFE8M3JrSkNDkJmlrqWtrqunpLCys6q3sbegq7W5ybiuwLvDt7KxtcLCzsXAwb20vL+/ur68ssSnqbiwtra/vK6qs7KcoKewraalr6WdsrWsq7GxramotLqstLK1rLSsqqyorKm4rbGwx7+4pbqwqa2tpaitsKakpK+jqZyenJuvmaOjoqORrJ6joKCiqqWmuaWstbWkqquorK+2rqOdo6iqm6CampKks5mOiY2HkKKglI2TnJ+TkYSNkpKdmpiUk4eXkpWZp5ufnoySkY6Qdn6NhX18fIeJiHBzcX18fVxTZG5eTllmXEZElltHO05tWGJbTF9iTlZXVldUWGdeUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis6ST8zQklTLD6PazxHSI+cqquiqbGkqaWztLK0tbKyoautvcy6rsC7x7G0rLTCwtHFxr7Asr3Awry/t7vEp6y3rLO4u7+vqrGtoKOnraqopLCjqrGqr6ywr7Cvq7O7praxsqmyqaumpaOtuqyqscK5tay6qKioraqosaWppKKuqqiin5yjrJWlnpiemaydoqepoqymo62suLGyoKmioKuvsaydn6enqZmjmJmPoKeYhoSOiouen46LjJWbjo2Fho+Un5yVl5SGlpOTl6SbnJyLkpCNiX5+h4V8d36HhYZ0cnGIdWtfWWBuY1FzcVxLO4R8Rj5XdFhgWk5jXE5VVlVXUVxiXlNPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMzU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlFo+TEWVmK2ooaqznKqqsLWtuLWuq6Wqqr3JvLG9t8KvsayzxMPOzsO+v7PAwsO6wLPIw6uut62yuL++sq2tq6SnqbCpp6ixprSuqrCurbGwtK20u6S4s6ysrqeroKKer7eqqq26tqW2taOqp6yrqq2hqKamsbKkpqahoayWqqGVmqCmnqSiqqWtop+nsbetrqOlopuqq62pnKGlpKSYoJqVj5ick4GCj4iFnJ+Lio2LmI2PioKLl6OakZCai5OSkZOimZuZio6LinyGgIGDenSAhIF9c3aLo4d4al5gbmZXZYdjTj9nk0xFYnlXYlhSZVRNVlVVVE9cXWFVS01pV1VXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjQ5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxDKzpKT140RIY+SEZEl5KwpaOqsZirqq22q7axq6Wsqqm8wMC4uLO7taWysMTJy9G/wbu4v7/BucG5wMStsbWxs7q/vbKwrq2rq6i2qqatr6q5r6ixsa+yrbaqt7emtLerrKSpqpyjnrOzqKiktLSgtq2gqqirqKunoKurqLm2qaqqqqKpoKyckqmhnaCko6ajqp6cp7WuqKaqoqOYpaanqpyipKOfmZifkI6PmI1+h4yGhJ6dhoOKiY2Nj4yChZSimY2MmZCRkY+Sn5aYlouKg390hoF/f3l0g396d36Ah52Pb3FnZ3B4XGBziGtPXplWSG14VWRWUmJPTVVUVVBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg/Qyw+TFRfL0pqNk9EO5aOsKGmq66arKWtr7O1r6ulsKqpur68wLCuuK2htq/Jx8jQwL68urzCvbrDwL6/rrGysbW8usGxsbKrs6iktamlrbOzubCjrbaxsLO6q7mvqa22rKqeqayfoqC1raehn6+yorSqnqinqqOqoaKsrai9r6yuraKoqKCsmZCwoZiioKennqibmaqwqaOfraKhk6Kio6eYmqmlmJeZnY6Kh5SHfY2GhISkloSBgoqGjYyQg4OToJaHkJyQk5CNkZyUl46KhoV4dIF/fHV4eYB6dHN5aH+Go3VpXmVrgXRniIt9U1hwXkp4c1NkU1FeTU1SWWZOTFZZZFhGU2lSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNikoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6MzhfPWFkP0YxQ1BbWypITTlVQTSRj7KgpKaspKekrKe0srGqpLGoqri+wbyvp7mqpq6wycfI0cO8v764vr+8ybvAuLCvtLG6u7fAsrO7rLisorSnp6yytrmzp6i8ta62vbC9pqystautnKmvo5+kq6qnnJ6qsqSzqJqqp6mjqZ2jqaepvau0r66dqaSgrpybs6OVpJylpZ+km5qpq6Wem6qhm5KboaSdmJepqJKYmpOQioKPhX6Ogn+Ino+Ffn2LhpCNj4R/kpqThZOhjJSSi5GakZWGiX6Acnt5fXxod3x6dHBwfGeEeISIZGFnY3GFem1meF1eVkJXem1UYVBSWEtLTnF1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYkpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0FKN0dTYFUqPTpEVz4qj5SxmZ+gqaWloault7Kypqmxp6y4wb21sKO5raioscPJyc3Btr2/tbe/uci2w7WzsbWxvbe5vbWtubW+raGzp6qrsLW4tKufvbyps8Czu6Cvs7Wpq56tsKOcpKiqo56cpLCmsKCfq6mnoqqbpKigrbunrrCuoKujpK6enq2ml5+boaOcn5yao6qjmpqkpJaWlJ+hlpuXpquLnpGQkYuCioB/joB7mpWNiHt+i4WOjYuKg5GXkIaUo4mSkoeQmY+TgIh8eWx9dnh4Y3t7cXBwcndnf3Nqg2dkZ2Btc45tYWlwYHBBXHhsVV5PUVFKSk1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDUuLj0tKks+Kh00OSYnLjM0LjArLzMmLDokNDFCaFkxM1M9ZV9ETDZLVmRPKTsyT1g9I5OZrJmfmKeko5+opLivrqOvsKqruMK6s62fuK+rqLS6yMvIv7fCvq+0vbfEtsOxrrmxs8C0ur23qbm4vauktKipqrCuubGqm7u9pLDAtbWhrra1pqansbOgnqSmp6GlmZ6sqKmeoKqup6CmmKOon7C4n6OxrqCroayknKanqZqam5+jlZ2dmp6pppeboKiSmJOYnpOZlqGpkJmJjo+GfYd+go59fKGNjIh4gouEiYuLhYeSmY6JlZ6IkZWCi5eMkXyFe3NwfXFzdGB5eGlucHBuaH1xY3psaWVjX2WFf19ac2tyTEx+aFhaTVBMSkhQUlBJTlxfblNEV1pSZ09ITEVGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy02Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo+L1hXNSiXnaaZnZatoKChpKG3q7Gks7SqqLnEtbOun7esrq2wtcbIwLe/wbmwtLy3v7u+r6u9r7S/sLzCuKm7urenqLWoqKuwrLOwp5q+t6WtvLawnrC3sKilp6+xm6CkoKSkoZabr6ahnqKnr6GgopOkpKK3r6GmsaqerKOvmJyqpamemJqepZObnZqdpqqanJyllpWXlJyOk5ejqKGQiIuPhXqEfoSKeo6Xio2GeIGGg4iLjYWNk5eMjpaYio+WfoaXi495gHpwcndvb3RfeXdkbGxraWiCbWVyamtkaFtic39fWmx2aVpIfV1bWE9PSkhIUlVGMjpfXmxQQ1dWWWVNSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0FmW0hUQ1RdaEUuOzFfUywylqOhl5WcqZ2loaOht6qvoLq5pqy9xLOwr6K0r6yur7TExLyzv7q3sLO5uLq4uq6tv7O0uK+/wbisvbq0pqKzq6ips6uusaOcwbamqba1qp6yu6mmpqiwrJmip5ykppSYobKlmZ6kqamcoqCTpZ+kuaikp62mnqWhqJOfqaGhoJmbnaCSm5yXoKKrm5uZoZWSlJaajZOTo6ekj4iKjoV5hHyEhXycjYmKhniAg4eHh5GFlZKSjJCVlI2OlHuDl46Kd357bHRybGxzYXh1aGdpZ2VuhGdoaGRmaGpfZ2JpZlplemNhUnNUW1tTTElHSU9TQCEral5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhASz0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LDExOTUsJi41LTgwNTc2YHRCM0NEZ1tLV0dVYGhCMzc4Yk4nMp6ko5KOpKacnp6epLWsp6q6t6isw8C3sKyitK2nr6+3wMC9scG3sa6xtra4t7Wsqryzr7KxvcC3rru7saWftqympbSpq66goMOrqaaws6ustLqdqKqqsaaYnaqep6SRmaatopmdpKqhm6Kdl6Ccp7alr6quoKGdnaGVoKafoaCZm5qckpqelaaeraOYl56VlI2Ul4yPmJqnn5GIioqHeIV3goKCnIeLgol7foSHhoSQhJWVj4+PkZGRjZJ7g5WNhnN+fWZ4b2tqbGd1c2tiZ2RjdH9iZGVmZWlqY2hwWV5YXWxkYU1oV1pgVklHSEtNUlg/OWBsaUdCVVNcW0hIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E9LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGRHJTWbpKCRjK6gmZiglqW0saKxvrehsca7ubCxorarq66puL28u63Asq+urbavs7izp6u5sK6utLa7tq+4vaymnrWroKGwpauvn6XDobOlr7Gvt621na2vrK6jmZynqqWflZuopZ+ZpKOpnJqfnJSbnaywpbmnraKhmpqemZ6jmqWdlp6Ym5SaoZKolaypm5ScnJKMlZmOlJSYqKaNjYqJjnuCdIKBipiFh3yJiISEiYyIkoSUnJKSj5CRlo6Qf4CNjYJvgX9meW1oa2pncXJrXGhkYnJ/YGRnam1sZ2poZmxcbG11cWFUYmhjZVlJRkxNT1hRUFVhZYFUQFZTWVRGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo2IzMqKTYuNTU0NjVafF0xOUtqW01bS1hkZEBBMUlkQic0k6Kbj46xnZuToZqpsq+fuMC2oLTBu725saW2r6mupbe5t7isu6+tqqu3qrS4raWztbGuqbG2trGytbqnqZ+2qZ6fqqKqrZyqwZmupa+wtrWsrJ6xra+qo5uco6yonJWcp6SdmqmjpZWaoJ2Rm6Orqqm6n6akoJiamp6hj2uilZiccYKWnKSAdpGrqJ6WlqCRiZeZgJeLn494hZOMg21pfneDcGyGioZ9hIqGb11kYGeEl4Zri5CUknV3i4R+g49/ZoeAaHVpZldcaXRuTlBqZGZxgmZeZGZubGleXV+JkIWHaE9LRDhFVGdeSkdQUFVVS0dTYG90ZUVbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTZPa1tOXEtbZmI+RzFPYjwrL42kmYeVsZuck6Cbqq2ro73Fr6m3wri9va2ntrCmq6S3tLKzsbmtqqestKawtaOnt7a1qKestrOutK2zoqmftKueoqWcp6iarr2Vp6avs7etraSorqqrpqGenKCop5yXoaamnJunp52SnqCZkJ6nqqO0r6Oio5yWmJiXo4ihj5Kah6GHlJ6hf6V/p6uek5Ock4iEcniMjoOHoHaIjGmXiGZ9c3igb4iHg36MfH+hoJ+Zf3uInnSIjnabimyHgYNtaGVjemxxYlSGbWNtaZhxWGpwboZXXmlba2pbiHBteXKHaYeEWl5GTj5GXk1GUlZXUVFSV1RnXkxZS1JSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdTI1UmtbTlxMXGdfPUsxVmA3LyiMppeEnaydmZmdn6uqqKq/w6+yuby3wL+qpLexqqyms7Wur7O2q6mlsa2ltbOcrLW2tKWnqLOxrbKor56qobOpn6SjmqKjna+2laSmpra8pqynqaqsp6aioJmgp6SZmaajpJmcpKmWk6KclJOipaagtqSjoKOYlZOYlJyIrpCYlImpi5ejnIWxgKStnpSanpV5gtSof4eUwJvHeXixpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsHhoa1ixrm9labySvG5oem1xj9h+U2pjtrJ+gHGUdZqhqpBXT1dhT1ZORlRbWFFQU4tcV1tQQFxFUU5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cyMVRrXE9bTV5nXD5MMVtcNDEhjqWTgaeqn5ednaWtsqmxwr2ytb+1t77Cq6a0ra2pqK+0qq+2s6inprWlp7iunLKxtaqlpKeyrq2xpqqep6SypKGhn5ecoKCwrZWeo5+0uaKpqKGtrqSinpuaoqmgmJuooZ+YnqenkZynm5SdoaaioLCjnp+jlpaSmJKZhbBraoqNqn5nhJaHrWVxnp2VmqaVca6hpH53unxroY92sV9qtFulgGWckWBmgXpmf2p4aqllvnJnpox2sWp8sXh0kpNjbW2nbVuEoEVpZ4eWRXWcYH1me6Ongllfi6tpgJR4emqnN0qvW1dUbGNaS09XX1xXVjtOiE9XVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVfWTMxG5KhlYKsp6Wfo6SqsbettL2+sLfFsri6wqeosKyvqamxrqSwuq+kpK6zo6m5qZ6zs7CjpaCqrbCsr6aon6OisZyjnJiVmJydrqeXm6GftLKhqpuhra2gnpqXoKKqnZmepKGcmqGnpJCdo5qXoJ+rn6WmoJqfoZWVkZaRmoW1m7V4hamZtZl3h7Obt3+TlpeplX5rgaZ6gYWHkpSSd6tnarFbrHuOh5R0iHCOhoB/iJCXeIOCi5eMg6CPhbB2d59xa2psfItOpFhIY2OZfmNopmB5cnVSk4ZeUKltY3F9hoBinS5Rom5bVGtnYExLXGRYXFpCPrB4V1hBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YVU1MByWn5SIs6amoq6pp7Osqru2wrC8wq24t8GqrK2ur6ausqmhr7uqoae1raOrtaSms7Ono6Gdp6qyqLCopZ6gn7CXoJqVlZeZn66jmpqkqLSuoamPqaipm56VmKClqZqfnaOfnKCipaOVm56Ymp2iqpylmpuboqCWk5GTk52D1ZOZuXCwwn7GhnzWlJu7fJqWpZCNm4ykeo2GooGlgnqseY+dVa97iX6farlauXeGg32mgpN8mHqqeY2dj3uxbY6EdJC7hW+UT6+nxYpRoHpjYKpic3KGbJeHX1O1tMiGgIl8Y6QzQp12XVFpaGRQQFhmWmRhSkhNbEtaU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFQNzIlnKGTmLGoqKWzqqW0qKW8t8GwusCxtbW8s7ansbGjsbOmn6+2qJuouq6ir7Ggs7SwoKOenqepsKm0qaWcnZ6rmJmYl5eWl6KrnpqXqK2wqKOfjqyip5ael5yhpqKYoqGioZqioqebnqCelZmapqCcp5Wbm5+gmJCSlZGdiLJuaLVxq4hwjqZytHNytnuamKSNj5uNon6Pn6R+sHaDkdLRdVuufIV/pG+bqqZrhoV9rX2XmY97sXOTnY54s2WWdIWebp5mlFLIi1rCXJ95Yl+tYHZzhmKXiF5Zyp1vv4F1TUu1U1XGZFRRamNlWEFPal9saVBVRkk5PVdSW1dYSEM/SjwyPzs1PTw0Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTlRfZVA1Rz1hTTYyLqKdkaSvrKSqu62mtKWotru8sru/t7a0u7uzpbS0orKyo6Csr6SYprqupLGwnLS4qaClnaGqpbGorKqlmp2aqZ+WlZiZk5OjqaCXk6arsKWilpKsn6WSlKGcpKeglZump6Kao5+tmqCenpCWm6KenKWUnJWZop6VmJaSm4Wse3eodqOPi4epb62Kg6iDmZmiipKZi6J+kpeHroV/grNccrNSrn2CgqR/cdd9d4R+j52GmZp3r4aKkZyHd7RhmmWagoGVbJJasFhLmnWYeWZgrV53d4dnmIhqXa93lZ6PeGw1eciusl9CVG9daGBFT2tfcW1WVU0vZWNpU1lRO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTY8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6NzefnZSguLCYs8GtqLKnqrK6uLS4v7q4s7a9taW4tKC1rZ+gqauflae2rKiwsauttKSbqZ+fqKG1p6aqo5melaWilJScmZOWo6abk5CnrK+loZWYqZ+ij5GimqmmoZWapqmenaSerJ2gnaCNlJ6bnqCYmJuVl6GglJiRp52GqX19pXmhj5CDqnCtjIKnhpagoYqXl4ijgZCHlKp8gIudeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClGySXKtbWpN/kX9oZ6pjcnuBa5iHcV2sWomgjmtuZU9KQ6FcWk10XWNmTVphX3N0X0pVNUqakllIRT1IRkFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT03oZyZmb6smLTCrqutqaa0sLixtb+6urOxt7ypu7WgsaWepaennpOqsamvqrWsqq6hmKGgpqSkuaKjq6GXm5GioJWUnpuUmaCgkI2MqbCvpp2Xmqemn42SpJioq6iUl6qon5+go62joJ2hjZShmJ+gkpyXnJWdoZWXj6ubj65tcrR0qYx3iqZztHl0s4CSpKOSnIyJpIeOdbhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJql1ytYE2hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdmVG9uLlunT2JSa2VibFpiXGBxfGNTWVA+Pm1vM0JCQD9MOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs8MDAwLzc1LCssNDI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eOTFBOKWam527opyywK6tq6unt6m4r7XAtbyxr7m4q8G3qquhnKekop2Sq6qntaOyqK6qoZecqKCkq7mdo62clpmPpaOWjZ2hm5mdn5GTlau2r6eZlJusqZeMk6aapa2kkpers6SgnqirsJmhoo+Yopegm5abl6GTnKmclJGrmYfUkpq7dLHEgMOGfdWWnLh4iJGXjJeJjKeHeaK2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gIptmohwbY2kdL1dd31bYXm8alpWW2l5XmlgZGZibXhvWVtZQ0FAcj9DRis1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy02QDmmmZ6ivKKXscKwramqrLGnuK+2xLG6sq67sK7Bsqylo56koZybkKqkqrKktaetpJ+WmqqZpqy5naOumZWhkKagk42co56YnpqQlpKvubCrlZejp6eUkZalnaStnpGhqKugnJ+ppLKeoqSOpqGUoZmcl5akmI+woJKVqp6FkJm1gJGRjbiVeIKTm7V3bmxuc255j4SOiXKewbu8mXqBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycHe2jF5/eX2JZ4N5bXlii6xwdYV/WFunakRkWlRmX2NdYlBnZnFtdUJNUExEO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2gob+llrPCtKyqp6yrqbuusMavtbSvuKe1uK2qo6Kmn6CdmZOspa2qprWoqJ+blqCjnqykvqahqpiVnJGim5KPoaihk56XkpiUsrW2rZidpKSii5KSppylq5yWqaWmnZuiqaemo6igkayel6Oel5eYnZ6PsKmUnKeijmp+aZyneIlzfpqOdXplh3u9vsC6bpGCcZSFX3JqWl2aiWFkh46Va2B/lWNtm3ZilGt/mpWUZV5gY3GbiWhyjH2GlGZqfnFzeX18Ylt3dIFoUFxug3x7impYbHmCcklKb4VwTXRNRVdcZmFMW1dmY15PWm12anJST0RFTjtISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMDs6LjAtNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPltPJz8yPqifqKHBo5q0urajrKWup6i1sqzIrLCzrLWjvrGypqCjqZ2jm5qZrKeupKW1qqSbmJWim6atqb+oqaaWlJuVoJqTmKWpqJGekI+YnLCyv6ybp52noYmTkaqbqKScm6ygo5qbo6esop+qoZmvmpWmn5aUnZ+dl7ClmaKomZyRnpyjpJmno5qcmpqakJaCaG58cXaQl5SRhIq0qY2FmJWOioyYl4eTlYqDkpKQiY2RlJmTmJeaoKGam5SgnY6CeqSFbGl8kHyAdImKgXGCeHl2doqAe4lqc4F0g3Vkd312a3B6bWBjW29oTVhYZWpfV1lwem9uZlNPRlM5T1pOUk8oKztKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7Mzg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOhv6KksbG3oKmls6elsLWqyautsaa1psCotKGepaWcpJaVoKunrKOjt6ygmZaWoJetqqbBn6yklpKcl56Yk5Sinp6jp5KRmainssOvmaudq56PlpapnqucnqCtmKGbnaKlr6ahpKeerJiXpp2ZmqGenpywoJ2ip5aYk5mUoKKWo5+XoI6WlIuKjY6WrY97lJuCkYGKqaiFgJiWioSOn4h7g5CGhZmQh4aJlY6bl42QmJ6jlpmSkJ2Nfo1lobOuhImEdnqPin12eXpvZ3mQgYCJa3WBeYhyaHR/enaDiIJrdGN4Zl9oZGNkZmpYa3txampcUkxQRF9VRkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1VWVlhaXF9hY2FfXl1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8yOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAtKC5r76tq62xsqCqprKtoqyzsMWwqqyjsq+8pLScoKeioZ2Zl6imqaakpbO1npWUnpmZr6auvqCro5GRnpqZlJGVoZyXqZ2FnqmsorPHs5+ppKqWlpiap56pnKCkq5Sen56gqq6ppaKqoaybn6CgmKWenJ6cr6SZn6iTmJedkqWamKmempdmg5J8ZX6Omo9jeIxsaGp6kKOra2SZmH5nhYplZWloeo2hjmtnjJeRondraouYop+Yc2xueoSNhXlYZV2FgV5rioqBdltoc3d3kYCHgm54gniAc215hHR3iImPg3tohFhdanNkXXOIaWp8cWxjXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5QUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS42Wk82KUVZL0RPMVlDOz8uPaWfury5r6uzsKulqK2usKeurrC9samopK2wsJ+tl6CknqGamaarnKyjpqips66elaOQoq+mtrmlrqOPjpqhmZOSmqCZmaaWe6Wsoqizw7iloqevn56VnqOfpJykqqiSnqGeoKqvqaqiqZ+nm6afp6CslaGbpbCkmJyrlqGem5OlmJ6rmZ5+voOIcrRyhZ2GrWh3ucS4cZKho3ummJlzqoJ8y8DAu3GKooeDnnyVmIiewL2Clp2djZzBwXuBepGMmsK/fWulsW+MgW/Ken+beJGDjoB2eYF/eXF6f4dweIWMk3lsdZFiZV54ZF9lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQT8/PTY0NjgyNzYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWo7jDtLCvv6mplKOvqbCvraaytq+qpqamsaugq5iboqCcm6qnop2roqWppaS0pJ2jk6aurLi0p6+ikpGZnaWSkZ+hmJugnYemq6Srrb/AsaGqrqqXkp+dopmipKqjk6Chnp2srqmrpaOipaCkpZytqZGkm6iuqpydqpysopaXpZaho5icf86UeXqlgXmVlptfrY9djqeAoaB8p5WbdKuCgK9eZIypeqeHhZ90l5KIs2OCq4agjY2yaoSudHyWh7hhgq1Zo81uj3V723t/mXF+iJJ1f2V7iHZ2a32Ibn6FkJJ+bICNX3Bqb2ZgX3hkW3FoamNmYFJUUlddSk9DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrcLAwLW0sLeYnpGkqqmttKumsq2trKSsprCqoKebmqaYnKKwn6CfqKejpqGfsKybnpamrq2xq6isoJSSm5+lk4+epZedqKOerqSrsKi/xrOoqbGulpOdnaKXoKmqn5Whnp2drq+nqqibpqajoKqSrLOWpqKqqp6jp6ahsKGSmqeaoZuUlJGXoHCFjJd1hKiHcbB8nXKsfqGfgaWPnnergn2tf5xyrX6rh4afdpiSenyXfqqIoYuRi5x+q3uIko6ggHqtVpzEeo9vksF9gZVtdXCMbWZ2ZYZvYXducm6IipGPg22QjmRuc3VvYGZtZF9uaWluZmNXU1xgWlJSQzhJSUBEPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08Jz0xKTNWQEYhHEc7QzEtK6/UxseytJ+do46jo6KtrravqbGnqaqorqurp6KjnZmilZ+mq5+ipZ+oqKKfnrCtmJuWqKevrainqZ6XlZqkopKUoa2bnaejrqyjrLWpuc2yraaurJeVnJ2imZ+urJ2WoZmen6mxqamomqqoo6Grm6+xoqirrqaZpquqqrGjk5ejpZqUkoWkaqR1iXqpdHqycYKliZiMcIegmoekX2BSq4R/roKbda6BpoaGn3qYloV7ZoCjiaSYhoGjfal+gJSGrl58qFWdopKBeqOfgHvDr8WMc6+zs7lxYqmvwnVojIuXj4FsmZFubXh3d25sZmVkcXBme2ljXVZfaVhYVExMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLWwr6mto6inqqurqaSmoJuln52lp6aknKyaoquhpJ+vo56bk6qktrCuoKmbnZeVp6SRm6Gon6CmnLCmo6ixrLbIsrWqrKqVkp2dopmfpbOdmqGUnJ+mq6uirZmrqKGhqaKyraKqsrKhm6qor6+2o5OWpKeYm5F8qmyehId1q3l8sG6CpIuIn5aVnpWB0re0uMmAgbJeX5Spg6SIh6B6mJWZeKrJc5mjlKepkJKbjH6aiZrGxndloYKlc4KgjoJ9r15vtWOxdUujhm2nR4KTY46PnZJ7cJaRfW96dHx6bVxmanJxZoFpXmFYY21cXllJTU1LRURBQj5BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE9UUR0cOzxGMiwkqKTBxrmtqLKurKWinbK5rKqhppuopqusqaegpqWYqqOfrqudpqCsmp+ppZ2ntZ+il5Ooq7ayrJumnKCVkKatkZmcp6OgqqeuoaOnqa+0wrKzqq2olImXnaWboqOvpZehlZmcpaWrmq6crKelnqujt6ygsbiwnZuvp7O0s6WVmKikm6COgp1OeJqBf596hKN8gqSEhqaenJ6ThLh7fHm5gn7MxcK2eJqgkIuffpqWl4p1npeKpJijqH6whZuEnoSsfZmUYaVso3CPhZCBfZeDcqxgpHNxgJpgvH1SVXSOkaOWe32RkIhzenKEfnBbbG53cmqBblpjX2huYmRdS0xRVEFISEZJOjlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFZYWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9VRjxFMjpQW1QcGzY/SCwtIIyHmamspKu5q6+gm6Gss7Smn6CVpa+urqmmnaammqOnobKuoammsqCZqKSUorWio5WXoam1uaSbo52jk5CisZmenKeloaKvrZ2kqKK1scOxraqtqpGGkZynnaOknaWXnpiZmaWjqJmtoaykpZeupbusobe3rp2etrO5sbOnmZ6woqSeho/RtcO3eYeOhZGTj4CmeJSid4ygkoSlgotxq4aEtG5yaZmjnJWJn3yYmYaHj3KugqWboo2mi5OciJOQmm1wslylc5N6nGyZf3uZfW6pYaJxcX+fYnOyuGh3j5OlmH2Li5GKd3x4jYFsaHdpeHNuf3RcZGRtbWVoYEpaV1g8R0dAVDNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXl9fXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKSWSc4yKrr+/vLu1npeopK22oaOZlaOpp66pq5mloZ+loKC1p6Kpp7CjlKujjqSto52QmpqqtLSknaacqZKUl66goJ6mpJ2nnLWaoKqjtavCsKmrqaKNhI+coqGmo5aZmpyYm5ilpKaYqqasoaSbrKa9rJS9sK2fo7Czuqy0p5upsqWomHqokH18sHeKgaSliJxtsm+gh618oY+DqJaZgKyIhK6Fn5SooKKWhZ+AmZWAe5J9q4CdmpaKqnidn46Ik5KAea9do4F8pqdknYB8l3Rrrl2la3GFmV1gW4ygbZSQppmCk4uVinl5gpZ/amx+Yn10bn95X2ZlcW5nZ2hDWWBbPUpUMlQ4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVVFIRklKIygovJKahKnGw7bBtJ+braCuuKWkjpuko6Cvrqmfo56drZieuaCiq6CvqpqtoZCqqaSWiZqQrrGspp+om62YmI+toqGepaGapZytmJ+opraov6+lqaSfjICOm5ugpp6SlJmalJqapKOjmaeqq6KjnqmovqSXw6yqo6Krs7qsr6ehtLCpq5l2r36QipyFh3y6rYmYZLCMZZWtfaCPg6eWmoGsioSwhaWZpKGikISgW2xqgbNgf617e4KBsWxnbpmXi4ixW320W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqiaiZaPlJV5d42bfWNyfWGDeHN/fGBpZnBtZmVlT1VjXEFUXj1JKD45PTQhIiwlHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGBiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7K3vbu0wbOjnK2mpbapoYuZoJ+ds7KonqKfnbSYoLOoqquesK2drJuUrqmijoibjq+tqKajqJmuk5qPqZqhnqWfmaOjpZmeoqmyqLuvpaienY98i5qWoaCakJGam5GZl6eeoJinrKakpKKkqbueoManpamiq7S2ra6noL2ura2WgamSo66Om4CGpJeYj4GAuMO6g46ck4Snl5yCrIqCr4imm5qlqpF+1b3CqmKjv718fqOCg9e6uLWFk5KCnr2+hGqjgW+rhG6cf3qysceDaquwva14d6K+u3SAlY2mm46Zj5WbeICPmXlifHpjjGd4gXtga2VramJQYltTaVxAVGFCTSk8OjQvHh8kHiUyIB0kKDA0OTY2Nzg7PkFDRkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q8lbS0sb+5sr2zop2upqazpp6MmKW/qrewp6C/pqaxm56xnLmonq2upaeUlK+sl4yDmpGvpqOsoaWcqqCYi6OSpp6nnJqhqKKZnqCrram5rqikm5eTe4eZkaabk4+RmJiPmJOomZ+XqKifqaahoqq7nqnFo6Cvo6uztauwqqG8qLCwmnR1qqS3hWWJn29nrI+Kj21vd6SQmZ+Bda+ZlXCQjHGVp6ObmK6kcm1tbWWKd25tgplxgHlpcGlniZWVl3FoaYWGZ3CGZF6JY2pwWV1nfnemYGJxjpJvZmSAjZKOopeWl4+UnXuGjZN0ZYZ3aIxqeH54ZGxjZmxiS2RYSmtZOlBlRVEnSzkrIxwgGyMsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJSts6m6ubKzqqmirp+ks6qYkr2xw8i9tamewKuso6Cmq5+6o6StrKyljZatqo+MhZWXrZ+lqqKfpKSgkYylk6eZqJmWo6qglpylpqevuausmpuTknuEl42ml42RkJiUjZeVp5Sel6eimq+mnaKsuZ+wwaiks6assbGrrqyouaSvuJaKoailtpyJlqGXhqmakJSdk6qzmZujrKGzl6KgnqCinKCkoZWrpoySk4yHkpyclJCZk5iQjpWFgKSal5WNi5OSio+GhH1ni4B0g3Z0h4xxp218lZGUk4GBj4+Pjp2ToJWWlZ+BhpOLcGeOdm+Kd3Z8eWlrZGRvY1VgWUBpWkdiYE5ZKkU9KyYiNzQwLh8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5VUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbiurqKwpK2gobaxkI6rxLvEureqoaWdm6adsKijtqedqbSmp5GXrKOLiImPnKeWrKShmqeen5OVo5epmqiZlKehpJCap5mhtbqoq5iakIx7gZSMoZSKlJGVkI+Tl6WPnpmonpu1o52mq7eorsKuo7emr6+wraqqtLqir72ZkqajprWikZ2mno2pn42Sn6Osr5qho7GpsJikoZykqp6dnZyXq5ySmaGbk5CWqpmNmJiWkJaekYignZSUhZKMkIyUi4B+ZoyHdYd2eYiDc5xqh5GUlJGKfYyWkpKYkqCRm5WfgoaXhXhxlHJ4iX9xe35pbmRfcGlgW19ZbWJQYGRQWjpHRkU9Mz09Ny4qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlaSno7CzrK6jqaetoKi1qpGQnKOyuq6rq6GimXqdorCkpbGplpu4pqOUmamcjoaKiZuikK6epJaooKGSl5mcrouqlo+omaiMmKiPnrm2pKWYm42IeYGTjJuTipWRlJCNkZahjJ2dp52euKN/g6+1orCvdKS+o7KgeHqgq7O8lXaupJ+KgKp+ZFthdp+OpJ2Dl35uk7Oco6iuq6NlnqCTc3mZlnCAmKiXbH+ip4llnKWbkJeYlouRm5CFnZqQlIKSh46OkomFd2uPh3aHcXyGgYBhaYiLlZOLW3aVkWdoj41xeqOXlmR4mIaAdpdog4mCbnh+anBlX3Vva2toXGVjYmJvUls+TU5OUkc9QFRCOTEuHh8mNDozMTY2Nzg8Oz5AQUJGSEJHRklLTFRVVVlcX2hmZ1dRSjxERzw5VlJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqaWpraOnraWSlqq0rrGlmammq5Zzi5yvn6irp5OWuJ+gj5yjnZF+iIiano2rmqSVp6KejpeSnoV1rpCJppqokZejiJu6tKigmZiLiXV2k46Wk4qTkZCUjI+Sn42an6aYm7KWgIybtZ20jJKPvaehfqeieqOvuIGOjqefhIuFj7Cpr4yJlqKZeYGLrIacnaKoqqiIlYaYd6WbeoebgZemgoF7nLF6ioWfl5mUmJaBkJaWhJmaYnmHkISNj5KLg25xj4h6gXGAgYZ/hnSHhZaSeJZok3SgmnR8mYOem4WYfpGJgYKXaY2MhGt4enBwZ2R3bWlsaltkamllclteSFNMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaGZZUUg5REs8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZStxrywoZWlqLSdj4Ocq5unoqCNkL6emY2fmqCQfYWOmZeIq52jlqChko2TiYaAkaiOh6Kco5OXnoafubKnnZqTj4VwdZCKlZCKlI+Pm4uPkZ6Rlp+jlZ2siJ+0ibSarovKiKuuibeFjbCDsa+EqY2nmI2dfKiPcnt3m46mlmiVpHm0i5+ep6mSmcKBf6uImKFxnoCapH2XhZWxgaF8oJOfj5iXgI6Tm4mYkot8hZOGjZWTiYNtc5GFgHtyhoGFfYV0hYKXgY/FZoCph4+iap6Cn5iBmYCKi4OImG+NkoRnd3R7dmdodXBmZ2teYm5sZmxYZkZcUEwyRTQ2TWBjNiY0PERHRDo2MzY1ODs4Pj09PkJMP05JSktDUFpdXFdiXmpsXFFFPUtNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS4saqrppqUn6KkqqKVo6m2oq9/oKacpZ6diZS9mZONoJGdkHmDlpaRh6uZnJuaoYWPjHebnI+gkYiepJuVmZiGoritpZmbjY1/Ym2Qi5OQjY+MjJeLkJGejpOfoJihqH6hp4etnaCWro+fnZ2RhoGgjauvh6SNqpqMmn6idYCYk2uBq3RNq3iHjZ2Rm6mogqqrfYOhe3qnaZ5/kmtnl4aXtoiefW1gY1iDl3+Me2Rni3OZfXmWa118l25fU3GFXGBseYNgWWWCfYSBmHGnqmuDo25ypXCfg51nZJ9sWmyIemVZX4J+YVdQb3ZlbXRxampvXmpvbGtoV2hOXVdFOUE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpcXV9XXl9idmBNRDpNT01UYlxbZmZpaWJiZGFkZGJhYmBiZGNhYmlrZGJkZGdkYmdlYWNomJadoLmhqqOmrJKhtryrrqKZl5+hpaysn5yttKKnkaCfn6acmY6YtJmQi56MlYt1gZSRjYqmlpaYnp5/k4WGrKSHnJGKmKmYmZqSh6WwpqKVmYiJgGluiIeLjo6Ji42Si5CRoYyTnp+boqV/k4GPo6GUoHeclpCng6GngIaqroWleYt9hJp9onBykoeWe56MeW2Hm4yZkJupm4+HnXyConN2pmaefnekX5h6fJJzom6Yt7S6dJKHgYC2qGSBxrh7cJW2jHGAm6RjdKyrYH1qnbN+bn2Hg46Ci5dxgKNsc6RznoN+o16dmbOWb3uXnrN0cluesoJpYm9zdXFob1lrbHJyZVxoXWJLRD1ENVFBWXEyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWlhgYHxkSUM4TFdVVmJhWmVma2tiYmVhZGNgYWJgY2NfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mayck6COpbi1rq2gmqKco6OkrJuasayrkpegmKCkmpqUnqubi4iSeIuFcICWjYqPoJCTlJ2XfZGJjqihh5iPipKjk5uajIuop6Sej5aHhH5re4Z+fY+Ng4uQkImPk5+ClpygnaCfi4l3nJiijKByoouIqYicp5GXqKx/rox9eqCZeaOTeIBzl4iMnH2Wn4abjZmbpoajZKF8iZaQm41snmiajW6amXp/iqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z1iYp/nmiadYeTkpiOf55umZBrpplcqH53u2p9qVqOhF2zZ1xtcXh3a2lbcGl4eGJeZVdiQVBETzdWQlJtNEpaWl9OWkRAMTUxOzs3SD86Q0hVP1hSWV0+RGJdVmBRYWR9aUVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCsnaabm6efna2anbCnq52Xopmhn5mWlqCjmYaJjWmIgHF7l4iLlpaEkpWYj3qKhJajnYmVj4aLnZGcm4mPqKKgmouRioCAaYGGeH+WjHuIjY6HjpWafpOhnqCik5hyaJ+KoI+McJKMgqmImZ+jqaGofbCtpKK4l3ajs6Kjf4iUeJ16q5p+oo6dm5eIl3KhfIWNr7V9a5qRoXh+mLSjo6uohJh7mnycmX5zqlpdb3uXi3ieYkx/e3uFY3qYQk2fWaJqcnyObYGJhJl1m3mHibGzf3+akqZ0f51tcXyUb5lyaaNdlXZIZWNgc3B8fW5lYGtodntiY2BRXlZcVFZAWUVRZ0RSV1tiWF9JRD1COEBCOklFOExFWEFWUVtWREZhXFpgS2BtfnJFQzxVXmJaZWpWZ2hsbmJmZl5hYVxdXmBoYl9lY3ZsXmVnZmxkZWxoaGtpk52Bsa6ZhFNeoae0urOzqZqii5upnJuokqGro6Cnjp6dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGTlohygImSoJxykZCBiJiUn5qEjqicmpWKi4p8hGyEhXGBoYx4hY2Ih5KYlHySo6Ceo4iuhn21hI+enXumlnqpgpadkIuhnn2naHdtfplzoHNxfJ2FmG+Tgq59o4OmnpqBo3BeqWd1o2NvpWGc0498epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKnvH93g21/v6aqtF6bb35xl2+Bc6JyXaNndKZhaKZtm9OYeoKbbnd5l2ubenaXcmyppWdfZHlwfoRrZ2ZjbXZ3Zl9hUltlUVFhSVdJVF9XU1tlaltlUUVDS0xKS0JKRDhQQFFOV1NYT1JRYGVlaVJkeHl3SUZFY11lWmhqU2loam9jamdgYl9cXV1faGJhaGV7ZF5kZ2RrZGpsZmhsaJibf7CsVFxLfqmvsrWws6OcmIWYpqCgoo2kqJ+XqImZl5iTmZOSoJeNiIV7cH2EaH2Pg5OagXiRjY6JcH+Gj5KSbJeTfImRkqOVg46qmpSSioWJeYR2h4BugZ+Gd4CShoiZoZZ5k6KjmqCJs6Gitot6rKekrqVwqYCakIWBnJJ9pICimYaYcZ6EoqyuiZeLgIykjZaDrqKUdrW2tcmhdJSKgJ9hnpepbXiWhp+adaGHd6B9kJaKgW9MZqKScJqIc6R7eXRhg4JsfqBscmRgnHJ/dJdpe2mztbTGpnOYfnudapuaq3SCmm1zd5dpmnl0mHFQRXyzXmp1aniHZmpnYnR0cG1VXVNZaFBSaElVTFhSVl1na25WZ1dNSkFKTUpISk5BUUpQZWNpbWV0cnN+eHtudYl7e1RRT2xeaFtraVJqaGlsZ2xmY2VfXFxcXmliZGhre19dZGdjamZubWVpbGWinImvp4VmP5Shs6uvr7WiopCAl6iioaOLpKadnKWBmpeWjZeQkJuSjYiDeWp5hmWDjH6WoHl1j4iMgWmEhZKDjIWdjXqMipWlkoKXqZeMkYuAiXqAfYt5cJChhnmAlIeJlp+Uf5Slp5yWloRnbnicbKJkfHGld5yYcGengZeMe6V6oJaDlnKfdoCJlJaPuW6QiqJifZmilYhucmmqa3WgbG6mYJtpi5BoloealXWigH2aX4uFjHVviGJooWWef2mbdXBkZoiCbnKiWl9bZKFuXomMb3t/c3JkpW54omRnp2iYcouYbqFvUoiPb6BeZKdUi11TmG1tcmpxgWxwaGt4c2tvUVdWVmZZU21JWE9cSFhpaHNqWWtWUVJFVlxMWFJhVWhqXnd1enxwfHxygnt/cnaNgIN2XlFzYWdicGdQamhoa2xuZ2RnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWYpnpldG2Lp66lqrCxpp+LgJaqnJ6kjKGhmqGhgJWYk42aj4uXkI2Ke4ZxgIhoi4t8l5pzdYl9kHtlg4eVioqVmYJ8iIaWppCBoquQhZCKgYp9gICOc2mPpYR9hZONiJifjYeSqqaeiaZ4lpx+pYmWjLKYnpCDr5efpXiWiHqpdKWPhJpupaKMkoSMg7xufKWvgoaFhpOWnKB9pnpxqJSglmeefm+rYpaKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm5tn56SlWF+q4uqdoB/jaefd599haSVnaBpmod1q2aerYy2c3e+jKSTWYOmjathdXFzb3t0cGJqfm5obFJVWlVgYV1rTV1SXUldbG12YFtxWVtgWmdzZW5vcmNxdGB3en55cnmDc4N+gXt7jIGCgHZieGRjbnNkUmxnaG9scmlmaWFfXlxhamJsbHpvXFxiaWJtaXdtZ2xuYpWmqpyBgJ6klqmqnqinrqOZiYKXqpmdo4mapZyonYSLmo+FnJGFko2LjXSFeoiDb42EfZaTdHWGcpGDbX+LkoeGk499e4GFl6WNf6WljYCNiYSUdYOHkm9siqiAgouUjomcnomMk6qjoJCAdZWXiH6BeZSuo3+Bm3GPhniQjIWAe3KnjHF9fXqXlpuEjnh7fn2IlJWTinaQmZ+hhHt9iWuMhVt5eXJ5cGhufZGJcX90gY+Uk3GFg4FljX9fgYCMd3VzlHVvem9uh22Ehl93aHiOZoGCho6qnH50fZdqiYhvf3V8hHVtbGaMc3h7l3eEW2pYeI9obXdxcG93d29dbIZtaWdWWV9XXGRrZFVhVV5RX3B3eWtqd2Vqamp1fHFxdHNhb3Vic3uBeHV5gnV/gH+AeIuFgn17bn9sZHluXlduZ2h1a3hqaWlkXGBaY2llbHB1blpbYmtka2t5bWhsb2GOlbqpp4uhopqmpJmknauioIODl6uRnaCJmqaaqJiCgZuLfpaUh46JiI1ygnyPfX6PhHqXjnRzhHCVhXt9kouGhpCFeH6AhpmjjHunoYuFj4+ElYKGjpd3coSphY2SnJCInp6Hi5qnoKCrg4mOlZp+fomWraiPkqeQeHCekYN7k29+qYVwfZVxam98gZ+Lf5KOjGhtXYOLjJybn45zlYuIcXRrgnZzf1hyboaPgX1+i2ldaWN6hYOIgF9peHubfIOMg3aBhoNpeYuHa2Fxc4N3YHOMgomQp5WGZo2Pg252i4NvhIx4bmRmY3mCepVaXGlmbnZbenl3dG1zcoJmXG2Ka2tiWVldWlhrcVteYFleXWZzfXtzb3Rjamppe3xxend0ZG10aGx8fnV5fHt6eX+Af2+GioR7fXR+eXJ/aFRccWlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VubGdzeW5oam1gjIyrsaKQo6Gan56Ynpmpo6F9g5erjJ+Uh5uikKSUf3uXhHySmYiJhoaKcn2Ai3aFi4GElopyb4BymIaEfpKDhIaKgXqAg4qbn4+CpqCHeI2XiJWLi5yXhYN6rIGQl5mUip6dh4ihqp+ioqOMiJObnKOZlqqhp6agkpuIl498eI+OhKh+f5KRkpOcsKWalJ2QjrKTmISmjIyVm6CJkJuCiJGKa3yOdndlgoaQinyJnYSHi4+HiICEg5B3fHp1mqKJh4ufi4aVf36MgYB2cXSGhYB4iIeKkaaRhIaOiIONkIx8hoqHjoB1a4GDe3mZaXJoYHOKcH16dnVvd3SBXF5vh2huX15aW1xTZ3FVY1tbYWxodHt8cm5wY2ppaH97bXh+cWhvcGxmgHtygYB3gH1/hHttgoyFfHp4fH16g3hOZHZqc25we2VrZWJiYFtzZnBmcnFsVV1sdG1peXpwZ2lrZY2InbqflqKhmJWZmJSYpKCde3+Zqo2djYWfnIqdlnx4lIJ7jpmJhoOEhm14gYBygId9iJOEbWt+epeGhIOQfoCGhIZ9h4ONm52Sh6qegnGKj4WSkYuckX2NeqmDjZKXlY6bloaGm6agopqdhoOSmZmYkJqmn6adnZCXgZKLd32IjoWle3yOkJGGmKmhnJOcj42qjpKAno2Ik5qfg4+XfoaOgm94hXF0YH6Dj4V0i5eAg46ChoR+hYSUbnl1dZOii42Gm4WFjnSAin19cnN7iYR7eYyOhJOnj4aEj4KDiomJdYSHiIp7bmp9f3ttaGtsZ155fmd8e3ZzdXV6dlxgcH1tdGBiWlxeUWZtU2VaXWFraXV5fnBrbGNrameAf2tygGxrdG54boR5boaAdoKAfYV2cYKNh317enx/e4KLYGl7a3VoaYNlamNgaVtjdWhvYnVtbFRicXlkcHp6cmVqbW2Lip+4mqGkn5OSlpeLmp+enXp3naWQm4mGpJSKmJl4eo2FfImRg4yCgYJtfH94coCFfYqQfWtofYGXiIGIjnx+hoSHfI+Aj5ubkYinnH9wi4qLkoagoYqFjHynkYePkpeTlpJ3jaOgoZ2Wmn+BkJmYk4yaoqGjmpeRm3+OhXmAhI+HoYB+jIyPfJekoKCSmZCPpo2QgZuRiZOYm36Skn6HjoF1dIJwdmB9gI2FcYqVfIeLcYx+goWFjmh4cnmMmZKQgJh+iItygod8fXF6fIyFenuSjYOWpZOLhpF8hYaHhHWBgoaHeWRxen54eXBsamZefXJoe3V1c3xzf2peYHN2cHdkY1leXlJqaFRkWF5hZ2p2eIFxZmtjbGhlf4BqbX1nbnBqfXeFemuLgXKBgX2BdHaCjYZ+fHp/gX1/j2pyg25zaWGIaWxiX3FVdG9tbmB4aG1XanR2YnV6e3Fia296iY2fs5KlpZ2OkJiPhp2gmpx8daOgjZZ/jKKKiJqWeHuGh36DiX6IgoB/cH97dHWChX6JkHhnY32Gl4qCio14fYCMg3mWgJWXlY2Wn5p9b4uBkJOGpZuHjImDpZWEkoqVl5KRdpGdoaGYlJh6f46Ylo6WmpyknpmTlJt6kIaDeIWXjZ5+gYqNjHOXop2gkpiOj6KMjIOXmIOTlpp/mI18iI2BdnF9bXpkgHyKhXCGkn+QgmuHgoF/iYRldW98h5OYjX2UeIyJfICHfXxygHiKh3mFkYqLmKKWgoSMd4iEgoF2eoCIhHRfd3d8c313ZmtkYH5panZyc3R9cHtjY2BzbXVybWFZYF5bbGRSYldfYGhrdXmGcGNqY2xmaHyDa2h0aGxvaH98gXhtj4ZxgIKCf3R8g4yBf356goN+fJBtdYl0dG1limxqYWN1VoNpcW5geGZsYmp2cGZ5e3lxYHJshoWQna6Ypqiejo2Xh4afk5eYfHepnIqYeZeci4uYj3h7gIt9fIN7gIKAeHN4enN9gIR/iIqAZF59i5WHfoSHdH1+in99mISWlJaMoqCXfnKHe5ORiqaPjI6KkqCRg5GPlJeRioGPmKCakpCSdICNkZOJnJ2eppiYjZWXdI6PimyGmJCZeoeIkIlvl52ZopOUioyfjIaCkpx/k5KVh5mIe4mJgXpxeWp1bHt9i31thZGCk3dvgYN9fouAZHJqfIGXmIV/jnSRiYN5h352eIF+h4F9hI6FjZSkkHmFg3SJh31/cnR/hoJsYHp0eXB7b2FuYmR7YW5udXJ3d3NzYXZfbmt1bm9dW15dXmpdT11XYmFobXN6iWtfamVqY2h3h21lbGhpbGeAfHp3b4+Hc4CDhH10gYaJeoJ9eoGEfX2OcnmLeXhubIdraF9pcWOHaHFvZXZnbWxhemhqfHp4cGF3bYuBmZqqoKSpnYqKkYaKnoqVl312rZiMln2ek5GWlIh2fXuKfHuAdnd/gHB0c3pvhX2BgIl+fGFcfo+Rhn+DhHN6gIZ6j5GHkZGbkqSblIF9gHyNipKkiI2KjZeajYWRmJOVjomJjJOdk5CMjW6EkI6RiJ6ZoaCXlomWkm+KmoVnhpqPlHqJhZCKcJaak6GSkoiLmYyCgJGefZKPk4yZjnuJhId0c3VrcW51e4p0boaQjZFxdIB7gYKIfGVxbXl+mpR9hYl0kYuBdIl5b4F/gYd9hY2KhY2WqI17iH1+i4V3fXBuf4SCYmd3c3RuemJeb2BqdF5waXp4eGxycGV4XW1sc21zWFpeX2FqWk9XWGRjZ3Fxf4dlXWloZmJncY1uZGlnZGlogHp3dW+OhHOAgYJ7dYKIhXiEfHeDhXqAiXd/i3x7cnmDamtfcGh0f2txbm1xZ29sZXtibX95dnFsd3eKf6KYoqihp5uHjIqBj5yGk5x0gKqUkYyGoIyVk5B/c3t2hHd4f3Jze4Vrcm95bYl2gICGbnBbWX6RjYiAgIB2dYB/f6CGj4qRnJegk5Z3iX6AjIicnYmPhpKXloSIlJmPlouLjY6NnYqOkIRuiYuPkYqclqCbmJWFmIhrhqSDZ4adipF/i4SLgXeTmJGdkZCIiZWOf36PmHyRjY+NmpJ9in+Cb3Zva21vcHqFaXODjpeJcHeAdIKIgnlmdG92gpqPfImFepWSeneJdHCKfIeNe4uHhImPnKOIfIR3gouAeHhuaX+Bf1xxcnFvb3daXnBgb2peb2l8eXBtbWptdmBwb2pxbVlYYWFibVdRU1llZmN1cISCYl1rbWRiZmuSbWBmZl9na4F1cXJwi4B0f4KAeHaAi4B5hX93h4Z2g4V8h4yAe3aKf2pxY3xihnxvcGx0amhvbHZ3X3F+eXt0dXR/gn6llZqtn6eWhY2Df5eVg4+edIqfk5KFipqMlY6LenJ3dIJwcoVzcXWIbG9tdW2Id4N9f21uVVGBq5SHgniAdnKCeYKggZGBk5KYm5GZeJF6goySpJqTjoiVmJKDhpaZjJOLiY+PiJ6FkIp9c4uFiI+InJmem5aUgJR/aYadiGiHoYiShJGDiXGDkZeOmo6PjIuPjXd7kpB6jouNkZaNfIh8gGt2am1ra2x6fmF5fY6VgXZ6gXeDjHx5Z3VsdYeWjH+IhnuUkXF6hXB4jXuLjXuJfoONkZ6ehXx9eIKLfXZwaGuAgXdedm9ta3ByVV1uYnFgX21teXBncGZnc3VocGthd2VdVmVgYHJTUE5bZmRdeHCIfF5caHJiYmVmkWlfZ2RaaHB+b2txc4p9dn2FgHR1f4x5e4aAeIiDc4aFfoyMg3t5lXhmcmqDYId+b29remBpbXR/dF90fHiGeHNyhXx5oZCasZymjoOKf4OaiICLnX6KmZKOhIiXjY6OhHZzdnOAcG+Fc3Bxg29qaXZtgm59fG10c1JOgt/JktaTfHB0g3WDoIKSd5SQmJuPmHuTcoWQn6GTk5CKkpuThX6WlYiNjYiRjYicgI6BeHqMfoiMiZubnJqVk3mNd2iKkohsiaSFkoiXg4ZjjJGYjpSJlouNiotxe5SJe42IipORiXqFe35se2Vyb2preXlbgHmPjYB6fX5/ho56emh0a3SLkIqChoV9loxsfn9vgY1/jYh+hHqDkJaam4t8d3iDj3hybGVwf4JraHRvZ2hzbFNebmRwWV9rcHhma2piZnhzb3BjX3dgYFZrX112T01LYGZjXXlxinRcW2V1YGFlZY5jYWZhWGlzc25rcXaLfHR5hoF1dn6Lc3+Gf3uJf3KJh4GRioh8fph2ZXNufGWIf29wa4BZa255eXNgdnp7jXZyd4p3eZ+Mm6+boJCChXeIlX58iZyHhJ+QjoWMl4STjoeBdXdweXFuhG9tbn5yZGR4cHxtenxqaGxjpJrB3K7voXNrdYN1hKGFkW6Vj5SflJuBkXCFi6OXiY6VipCdlYKAlZCFiY+AkoqKl3+He3V/iXiGhI2bmpeZjpB2i3dviIqMfYukhZKJnYWGXouUl4qOiI6LioSJbHuXgn2IhYmRj4Z2hX19a31jeHVpbXhzV4h6kYaEeX5/gIWMfnlmdGqAio+Kg4OAjJeGa4F2bomSg5GFf4J6gJGWlJmQdHR4h411c3BmdHmBYXNsb2FodWZSYHBna1VebXN5YHJjX2h9cXJtWmJyYWJXblpcd01NTGNmYV52c4ptW1xkeF5gZGaEX2NjXlhqcmtua3J3i31zd4SBeHd8iHGDhH1+iHt0i4iIlYaMfn6Xc2h1cXlsjHtudHCBWHB6dnlxZHd5hoxpdoCJcoCdiJmonKOShH1wjJR4eYqdg4SgjY58lYx/mYeEe3N3cHNqb4FraWx8dF5geHZ7cHR6Z2BlfOvatcnD3IhzbHOAdoqaiI1pl4+OnJSSgYhwhYigjoSLlYqMmJN8jZKIg4mPe5GLhpCCf3Z4g4Ryh4KSm5aTmIaMdod/cIaDioeaooOUjJ6DiWGDlY6GiYWJjIeAh2l9lH99g4SJjo2CcYZ+f3F3Z3ZyaXN3a1qMfZKBhHx/g4CEioJ2YnRsiYKQi4J/f5ORfW6CbHmHkIeThX2BfoGSlJGXiW5yeoyGdWxwanF3f15zaG5canVgUmRxaGZTX292dF9vYF1ognFyaVdnaGNpWG1XW3VMSktlZl5icnOFaFtcZXleXmRnemFkX1xZa25lbmp0d4p+c3OBfnp2eodzhYJ8f4d3doqFj5iBjYJ7k3Zsd3V5eZN1bnh6fVh5hnGAb2d4d5KCZHaGhXGKloWZoZuiioZzb5KLcnaOm32JmYiJe59/g5l/gXlyc25vZHJ+aWZsd3dbX3h6enFxf2lhZ2F/1baOkKZ4bnF3e3GSkIyHapiNiJuRi4Z7aIeLmYaBkpGGh5eNfI2MgICJjXyQjH6KhXp1e4J6cYWAlJiOkpOBiXWEh3eEgIuUnZ+Glo+ff4hhf5OHhIeDiY1/f4JmfZF/fn+CjI+Qfm2CfIJ0a212dHN2dWtjjYGOf4R+fIR/hIh/cGBzcYZ8j42CfH+SiXpxg2Z7hIuHjYR8hX6BlY+Rk4RucHmMfnVtbmlqeXxhZ2lpWGt1WlJpcmliUGJyeGxhZV1aaoNtc2JbZ19kbF9uVFpvTkhOZmRcZ25xgGtaW2NyX1xjbHdkZV1cWmxrYm1qc3aGf3Fvf3x8dHiFeIWCfICIdXmJgZKVfIiGdoiBcHh5e4STb217gXdeg390gW1penOUc2dyiH1ykpGEmp+boIaHdnaUf212k5d9h5CDio2ZfIuadn53cW9samF0fGdiaXV6Wl94fHltcX5lY2hoV52PXnFylrzEhHVxlIiQfnKWi4abkoyHcmqIj5aAe5SMgYSbjHyKhnx7iYx/lIh1ioZ2dn2BcXWFgZ2ThZSPg4NxgIh1hXyKmZ2Yh5SOnYCIZn2Tgn+Fg4mJcYF9Zn6Le3l+f4eLj31pgHyDdmZveHhzdnNsao2FioGJf3iBgIWDf2tfcnl7fo2KhnyCj4F+coFpeYSIjIaFeYR9gZiNkIx9bm17iX13dG5nZnt1YltwYlduclNTbnNoYU1mdHhlYF1cWG6Ab3NZZWFeam1gcE9Za1FEU2dgWmtubXxuWVtebGNaYm93ZGZbXWBsaWNsaXN2gYNxbn58f3R1g3qDgnyBhXZ+iIGWkHiDinSBiHJ5eH6NkG9ve4FxaYF4en5tbHt1lWtqd4R0bJSOhp6YoJmFiG59jHZpeJiOfoCKgpWXiXmOlm96c3BsamRgc3poX2Vxelpgcn15Z3F6YWVlj7Gyd0piWqTZ0JZye5CKkHd9lIqEmZGMhW5rhZKRenmShoCEmIp8h394eImKhJaAcIyIcXR9eml5hYOkkISTjIN+b3+Dd4R5hpyZlYuTkJSFiHB7koJ9goOIg26Bd2iAhXhyf3+Diod8ZX1+hHVjcHJ/aHhwb3WYjIWCinx2eICEeYFrXHF/c4GIhYl+hol7iXKBbnGFh4+FhXOEeoKZjY2EeG5vfoR/dnpkZ2l7b15YdlpYcGxOV3FzZ2BKbHZ0YF1bW1l0fXJvV2ddZmpwYG9OV2hRP1lmXlpvamd6cVpaWWtlWWNxeV9oXF5lbWhla2lxd3+Hb2x/foB1b4J7gIF+gn92gYWIl4pxgo1xe4Z8eXmEk4x1anp/bG9+dH99b3J7e5RvboF/eGaTi4OhmZySgoVnh4NwZ3qWiH1+hIGYiYF8jYxpeHJrbGZfYW54bV9ib3hcZGyDemFxdl9lZdTqvooyOj6LjoBxeIWIjo12g5aMfpKNjH9tbIWNjHZ9j3+FgZWIfIJ4bnaHhIOXd26IhWx1e3RmeYKDpouCj4uDfW6AdXeEeoedkYyRkpOMi4Z/e5KGd3+EjYNrf3JogH54bXx7gYqDd2J5hIFxZHFofm10cXSBm4uAfoV+c3V9gHOBb1ttf3V4i4OLe4eAfIh4enFsiYSQhItygnqAl4uLf3Rta3eAgHV1XGhndm9YVntSWW9kTFpycmVbSXB4b1xaWllddX50aFliW2dlbmNpTVdmUT1eZVxddWVgdXBaWVRvZFlkcXlaaF5gZ21namtpcHd9jmxpgoR+eW6AfHyBf4J6dYKBjZOFcICLbnd+gHt7iJKJf2h7fWp0e3KGe3N3fX+MeXiEfXxrjI2Em52WjICAbI1+a2h+jYx6fn+DlIF+fYqIa3VxZ2hiW2Jncm5gYWtzYWhwiXpic3ReY2SboI9uXDVZr7V0aYCIfJKGdYWWhXOPiol2cGyFg4d1eYl4iXyTh3p+c2d2iX5+mG9xhn5odnltZXmIhKSGgIeNiX5ufnaAgX2MmoiClJGYiYuEiXyPiHB7fYR7aH5saoB7eml6doGHgHJgd4F+cWRyZnWCbXV7hJSRgXyBf253eXx0fmxYcIB3dYyChniIdoKJenhzboqBkIGGc399f5OJiHpubWpugoJ1blxnZHJwUVp6TVpvXE5bcnBkVUtzeGlXWVlaYXGAdGBdXWBmZGhpZU5aaE5AYWRbYHVhXXVtWFdTdGFaZG9yV2pdYWhrZ21saXB3fJJsaYSJfHxwfn57gX+CeneAf4mLg3F7h29xd4R/e4mNj4Nqfnttd3h2ind9eICCh3+Dfn56bYWMiJijjYSDe3WLeWtshIiQeH17gZF/f36Kg3BycWNmXllmX29wYGBncGZqb4l0YXRvW2FkanZ7f76cpqPIuHGFg3KSfHiGk4JzkYyHcnJvg3uDdHWHdIh3k4h5eXFjd4d6gJNpcoR2Z3d1Y2p8goedgX9/jo99cn90hXqAkpGDeZaOlY+Igoh7iIhreHl+dWd6aGx/eXNpenaAg31oYHeHfWpqc2d7gGl2gIuQlH56fX5we3Z7dH5iVnd9cnOKhIJ9g3GHind4cXCEgo1/fnl+fXaOhoN2aXFpbYiCcm9dZ2FxbUpldUtdblVTWXNuYlFPc3hgUlhYXGFvgnNbYVxoZWVja2NQW3BJRGNhWmNwXl13aFVWVXdeW2VuaFZrXmFqZ2Vvb2hwdnqSbmmIjHh9cnt+eYKBgXx2fYOIhYNwd4NybneDgn2Ji5N/cIB7eHl6gYx0g3h/gYGChHqAdW9+ioubnoh9hXp3hntndIWLkHp+f3uIhYN2j4Bnb25fZFxYZVltcmBgYHBsa2iJbmBzaVleZG2Ad6naqceGh7JxiXdvjHV7ho6AepOJf3V0dX53gHBxf22EdJSGeHVrYHqCeYiPZnKEcGd2blttfICQk3+AeZGSfXl7bYh3gZKMhHSWipGOh4WFe3+EbHV2f21ndmVte3Vtand2f398YGJ4hXlodHVifXtndIaOjJV7dIB1cX96fG1/WVZ0f3B1hYd/gXlsiYZ0eWx1gISEfnt9eXtzi4F8c2d0ZW6LhG1zWmledGRHbW1MWmFXVlV4bWJQUnR2V1BVWF5hcYRvXGBjbWRkXm9iVF1yR0JmX11maF1be2JRVVx1W1pna2FWal9gbmVma3FocHV4jnRrjo11fnZ4fXeBg4F7c32DiIeDb3F/dHF1f4WBiY2Ke3d/eIN7fIWHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN5Xn2FmIx5hoN0hYaEd4l7Ym5tXGJbW2FWaXNjYFtnbm9mh3FhcWZXXGNrf3zKzoe5oWptbYpscYRxfISJfnuRhXl5c3l1dXxqbHVjhHWSgndvZl59gnqLiWZygmtqcWNYbXqFm4iBgXOXlHd/fG6JcoKLjIhymI6RiYWLg3t4fXFxcH1maHFibXhxamtxeH18elxkeYB3aXV4ZYJ2Z3SHi42UfHGHam59gXlufF1Ycn9udIGLfIJvb4p/cXZod3+BgIF3fXF7dYd8enJmc2FujIJrcldqXXZbSG1qTVVUXlRVe2thT1R1clBRVFZeYnSFaVxga2pmY1luYVhicEdBaFxgZl5dVntdT1VkcFpbamhdV2hgX3JlamdyZ3Byd4Z4bpWKdH96d354g4d/dXJ/hoWNgnBwe3h3dXqGhYaMhXp8f3SLfn2GhISHf35+fYd/fHh2eXiRk6B/jHyLbXWAeWODhpaFc5GKb4WFgXqDdGNuallfW11dVGdzZWBZZHFyZoFzYmtlV1tgaX94vq57oLdtYnOGaHN7cXmChXt9jH93eHJ2b3t2ZWpuYId1joFzamJef3h5i4RncX5oamtaVm93iaOBhH9xmZNxgHl1g26Bg5KIc5WIjYiEiYV9eHRybmh5YGptYG12amdqa3l3enZaZ318eGVyfW2EdGV1hYyFlX9vi2ZqeoN1bXViXHB9bHV9jHyBZnWHfW5xaHV/eH5/c31se3uBenhxZmxibol+bG1WaV92VUppak9RTmhNWXxoYk5VdWpMUFRVXmZ1g2ZdYHBoZ2FXaV1ba2hKRGpaYWRXWVV5WU5WbWpZXWxlXFllY150ZWxkcWdyb3WBeHCZhXZ/fnd/fIWHfXVzgoiAlYJuc3l7enNzhYaIiIN4gX11j358hIqOhIKEe36Lg3t3fHd3mp2XeoqChml2fXxsg4SSf3KPgnCFgn6Bf29mbGdXXVtcW1RkcGRfV2JydWl1cGVlYldcXGh/cG9ygHOJZGR4fmlzdXNygoR4gIR5d3R1bWt6cWJna2eGdI2DbmZdX31we4l+aW14ZmlkVVdyb42mfIN7dpaQdHxzfXtufHyRhneZfIiGg4aDfXRwcmxndFxsaF5sdGRnZml6b3tyWWeAdnRncIB3gXVid4WKfJSAbotqbXqBcWZzZWFuemdzeIp8fmJ2g3Zqa3F1e3F6eXR9Zn5/f3l3bmRmYm6FfG1qVWlhb1JKaGpPS05wR157ZmFNVXRjSk5TV2Fqdn5lXGdzaWVgVmNXYnBdTEtrWGNhVVRVc1ZMWHVkWl9rYVxaY2VfdmZtYnBpc25yf3V0moF3f4B3f3+GhHp8dYKEfpeFbnJ0fHp0cYSFj4GAeYt1dJB/fIGVjoCFhH1+jIZ7foB2e6OlinmIhoRrdXx6dYOBi3lvhXN5hH2Bg3VuamhlVl1bWlpTYm5kW1hhc3tpaG1pYGJXX1tqgGlrb4Bna2BoeXhqc3N0boSBen99dXVuemhqeWpfZW5ogXaQhWdlWGJ3aX6He29pcGdmXVVYb2eOqHeBenyQjnl1cH9wc3Z6j4B4lXWGg4CFiHZqcnZnaG5bbGRdbXNfZ2FqeGh7bVttgnJzam+Afnl3YXeEhHePhHKIcW95f3FjcGhccHhkcXSIfHlic4BwZ2p5dHJseHd2eGSDe394dnBkY2NufH1ra1VoYWVTSmtnT0dRa0VgeGdhTVNxXEpNVFlla3d6ZV9tcWlkXVZgVm5uV0tTaFdlXlhNVWtUSlx5X1tfa11dW2NlYHloa2Fvb3Vub3h1eph9d4CBeoCAh4V6eHmDfoGThHF0dH95dnSEiJB9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSsn396iIiDa3KBeXWAf4F0boZufH9ziYBqb21kZFhfWllaVWJqZ1taXnWCaV5tbFxhVlxcbIFlcXR9aWlca3Z1Z3R3cmyFe319eXVybHloaXhmXWVyaHp3k4FjY1RlcGeChXd3ZmhqYFdWWWdjj6dufneAi456cHF9aHpveo18d49yhH1/f4ZuZHVzZGhoXGtiXW9vW2dfbXVkemhddIBvcWtxe311dWF0hYp6h4eAf3dydX91YXBtWnJ0YnFyhXx0ZXKAbGFse29qaXt5dnJmhXZ7enVxZGFlbXN+aWxUaF5cVEtyYlBGVmFHYnZnYUtUb1dKTFdYZ2t2emRlbnFmY1pXXVl2ZVVKXGNXZ1hZSFdlUEhieFpdX2xbXlxhY15/aWpfbnR4bm9udoOXeXKBgHx/iIuFfnV1hXiHjH1zdXWCeXp6gouOfX6EiWlzloF6ip19foV6gXp/fIaIc3GProx7e4ePfWVxh3lzfHt1cm6GbHt+bI96YnBvYmVdZVZZWVZjZmtgXVxzhWhYcG5aXldaXGx7YnB3dm1iWmxzc2d0dXBshHl+gHl3bm50ZWl0ZVtndGZ2dpJ6X11SZWZrg4J0fWJjaVxUWF1iY4+laHh0goWQeG1vemh4bnyFe3WJc4B4fHh/aGV2bWBmYF5qX11za1llXW9vYnplXHd7a25ub3d4c3RkcoOSfoeCiHp2b3J9c2J3ZFtvcGJxcYF8c2dygGRebnZpZGd5e3Vub4J1dH1zcWJfZm5vfWRpU2dYWFRNd19RSllYSGJ1ZGFJVG1TSkxaVmlscntibGxzY2FZWVthdltTTGNdWGlTV0dZYE5HaXVYXmFtW1tfYmJdhWhnYW54eWxvanaBkHhtgn6AgZKHg4F2dIl0jIZzcXd1gnd8fX6Mj4B+k35wd5WDfJmSeYCAeHl+f3SIg3NwmaJ7en+JlHhkdYh4c3d1a3Nufmx5fHCRcl5wb2BnYmxUW1pXaGNtZlxccYllU3JuW1pYWGBsdmNpdWppXlltc3Fsc3NzaYV8fn98dm5ubGRpcWNba3JkdHaOc1tXU2VhcoB/coJdYmNdU1pgW2ORnmVycYWEkXRsa3ptb3B7fHxxgXd/c3p6emRldWhdYlpgZ1tedmhXYl1waGF3YFt7dmlpcm53c3J0aHCBlIKGfoR2cmpwfW1md1dca25icXOBenNmb35bYHBxYV9qcX5sbHV+c3F4a3BhXGVsbHphZ1NmVFdRT3VbUU9YUUhjdGJgRlVqUElQWlVqa2t8ZW1ucWFbWlhZbHBXU09mV1doU1RGWlxOSHJ0WF9jbWNYYGBiXYtqY2RteXhrb2l1eYZ7a4N9f4SZfIKEeXyHbY+GcW93en10goJ8io6Cgpd0d4KThYGfiXWAgIFzf4Jxh4J1b6KXdHuGi4Z7ZXeKbm56bmZ3cHprc3ZyjGtedG5hZ2VrUl1bVWdhbGxaXHCMZE9vbl1WWFVnanRnYnRlZV1ZbnRtcHV1eGqGfH98iHaPc2Rka25hXG5tY3N4h2taVFZjZHh9fXGFXGNfY1RaYFljlZVjbnCDhYpzamh7b2Zzd3N8bHp0dW96fnVeZnJjW15WYWRZYXRlVV9gbWRhcV1dfm9oaXNxc3B0dWpthJKBiHuFcXJmbn1wcm9TW2ZrZnF0gHZzY2x2VWJya1peb2Z9Zm13fXNzc2ptYFpkamp3XmZUZFRVUFRtV1FWU09HZHNfYUVYaU5IV1RWbWhkfGlrd2tiV1xVW3RkU1JXaFFZZVRTSFpaUE14dlpfZWxpWWJgXl6ObmFmbHl1bm9odnZ/f2yDf32Gl3t/h4GJfmuTiHJndIB7dYCCfIiOf4uTcnyKkYWHn4Z7f4aMc4GGc32Ddm6ljHOBjYt2d216jGBke3BmeXJ4bG1xdoJnZHtsY2ZnaFNfXlVnX2xvW15ujWhOaW1gVFZTb2dzbGZ4ZGRcWHB0bHF6eHJsiHt/dpx6eWthZWxtXmBvamVxeX5nWlZYYGx4fHtwg19iXmdXWF9XZJuIYmtxgYd9d2treG1cd3Fse2p2c25ve4ByWGpuX1ldVWJjWGRxYlNeYWhiYmxaYH1rZmtzdW5td3ZraIWLfoh6iG1xZXB9bXJtY1lhaWlvdIF0c15pbFNlcWRVYm5iemNxd3t2a3Btal9YYWdodFxlVWFVUk5YZVJPXE9PSGRwXWNGWWlNSV9LWG1kX3hobn1kYFReVF11XFRTYGZOXWFUU0pcWVBZdXVdX2VtaFhjYVtejXBjZ2p3cXNuZ3Z0eoNygYJ5h41+fImHjnlukIp0bHOCdH9/h4SGkYSVj3l+jI+HkZuEgHyMhHKAgXN0d3Fuk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2Ojo6Njo6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjI2MjI2Mjo6Ojo6Ojo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCTqWvra2trrFhQERERERDWGhnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTNBqba0tLS0uFkwNTU1NTRNYV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmIiIiIiIeOkJCQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaPkJCQkJCRiYWGhoaGhYeJiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkZKRiYeOipCSk5CKkY+MjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyLi4yMjIyOjo6Ojo6OjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoeKiIiNiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCPhoqFho+JjI+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+Jh4eIjIiOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aIh4aMiI+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY6Mi42Mjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Pjo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHV2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2hoZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUVAPjo7Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs5OTo4ODs9OTc5Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3F0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08Ojc5Ojo5ODk5OTg4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Oz09P0A+PE1MOTw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NEREE+PT5AQT8+am9CPT9DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0ZEQDw8PUBEREVteUk2Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUBBWEA+W3h8e3l5Uzc6ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNBP0Z4WGOEhISDgntfOz49Pz49PkNEPzs8PT4/PT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fHx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDREE/SnR4gIGCgXuDgWg/QUBDQEA/QEA+PTw9QUVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt7fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQUBMc3yAe4KDfoWFWT5DQ0VAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk5LSklHR0hLTUpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRUpwfX99g4WGhodoQUVFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpITXJ/g4SEgoWHiIpVQUFVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZJS0tMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTExMZ4CEhoOAhIiJjHBObYSHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3J0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMTEpTgIWGgoCChIaHg4CGhYSEhYaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkREQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISEpKSl2FhYSAgoWAgoKDhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT48PD1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lJYIaEgX6AgoSDgoKDhIaJiouMi4qJiouMiVQ7ODY1Njc2NjY0NTc3MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzU3OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt7e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0JehICAgIKDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6OTo6Ojw4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09RV2tycnR0dXd5e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PGqGgYKDhISEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo6Ozg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDk7PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojo7Pz5FeoSBgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUBCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPz9BPT48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PT9AQ1CBg4OEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZFRkZEQEI+PEA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUFAQ0RGVoOCg4WFhoaGiImJiIeGhoaHiYqKi4yNjIyLioqIV0dMTU1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AQEE/QkJHR0pZhIKDhYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA5ODw7PD06P0A+QEBDRklJUGCCg4WEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSEdFSklESkhHTEpISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDk6PDg9Pjs9QT4/QURHSkxWcoOEhISEhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4teUVFQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxvcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBR0tMUFd5hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVVJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1FQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3B1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj9CQ0ZWTkZNT1BUWXyGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOzpRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hJSEVGSUhJSElqcnZ5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUFFQkNHRURFTFhSTVRVVlhbfIaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A+QFZVWVxkYFZZYnJeXVZdWlZFUVlaW1lfVFlnUlVWWFRUVlNPT01KTEpJSUxNS09NU29zdnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH9/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTV1paXFx4hYSFhYWFhoeHh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JWVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRXWFhaW26BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWFNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm5ydHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUVVTVVRXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXN2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAf39/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUk1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSU1RaXG1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/gH9/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lVUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUEJEQEM+QkhHVkBITk1HXWlQSEZPRkRFRkhHSEJDSEdISkdDQkFEQE9QTVNkc3V2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHJ2e3t4eXVybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojs+QD8/Pz5rUUthRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNCPz48PUI+Sk1GVW51dXVzdHZ4e3x6fXx8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFEQlxdT3tOT09OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1dnV2d3l8fHx9fHx9fX5+fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJUVlhTUllUTllaW1dZXV5eYGVgXV5xdmteYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZETVJQYVdSWFFQU1NSVVtPT1FWUE1JQ0Y+Ojo2NDg2OTc5OjM2Njc5NjxCPWZ0dXZ3d3l5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01MVFRTUVFVT0xSU1RXWFRUWFFMWFlaVlhYVlhZXVdXWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNRUFNaV1RUTVFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1ODhHbnJ1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BYVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KTk9UU1RcVlJVU1JOTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1VUV1RSWFhZWVlSVU9KR1BQT09NUkpPUFBQTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTElMS09RUFFSU1RRUk9MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVXVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFQUVBRTlFPUE9MSkxMT1BOTlBRUU5RT0pMTU1LR0VFREI7PTw8OT1HNjY3NkRucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11mUlFTQUdVUE9RUVBNTU5NS0xLTE5PT1FNT09NSU1MSUxLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXh7ent8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0A/PD1BQEI9PkVIR0RGRklHS0pARkFBQEZIRUpPSFBRYVxRUFJOU09PUExMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZEP0JDPjxCRz9CP0FkcXR3enp7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj47PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVBMTk5XS0xOS0xNTU1MS05OU2RNSkxSSUlJRUFISkxNTktHSUZCQUJAP0VGRUhES29wd3p5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkJBRERHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUS0pITVRGSUlKTEpLTElJTE1PUFJQS0dDTEdDQ0pKTE1PTklKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0NGSEhHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNT0dIS0dIS0RISUtNSEpMSEhKTEtNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2d3t4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkb0ZLQ0ZFR0RFRUZFR0NDQD48PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGREI7QkNDPkBDQ0NFRktNSEtOSERIRUlMTk1HSUxHRUZJSUxOS0pIRU9JQ0dNTU5NUE5PT01MSUhJT1JRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUZFQkNCRUBEQj4/Pjo7Oz07PT9DQT9BQ0ZHSkdJSUxIR0dHRkVDQD1ERUI+QURDQ0VHSElHTVBJRkZHS05PS0ZISkZFRERJSUhLSUZIUEtESk1MUE5PTk9QTkpKSE1SVVRST1dkYWFtZ3Byb3N5emdlaGhjaWxncWxmbG1naWtsc2xwdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NCQUJEPUJBPkE9Ojo9Pzs+PkBCP0BCRUdKRkpHSUdGRkZFREJBQUZGQ0JCQkRFREdHSEZMUExJT0pKTEtJR0hFRkVEQ0lISEtKR0tSTUNPT05RUE9PTk9PS0tLUFVXVlVUWGBeXWlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxcmtrc01GRkVIQkJBREQ8QUFAQzw4OT0+Oj89P0I/QEBERkhFSEZGR0ZGRUNDRUJESUZDRkVCRUdFRUZHRUlNS0hRTUpLSEhJRUZJSEVDSUlKS01LUFNORFFTUVFSTk9NTlBNTE5TV1ZXWFZYXltdZGBoYmppZ2tfZGVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJGRTxAQ0JEPDc6PT47PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0NHSEZIRkVDRkpKR01KTEtJSkxGSUhLSEVLS0xNTk9SVE9JU1VUUVRQUU1OUU5NUVdaVlpZVlpeWlhhYGBgX2hlY2BkZWdnamloamZobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9yc3lNSEhHSURBQ0hFPEBFQ0U9ODo+Pjw8PEFCPD8+QUJGQ0VCQkhDQ0RFRkZHR0lGR0tIQ0hIR0lHRkRIS0lHS0hNS0pLTEhMSk1LSU5MT05PUlVWT0tVVlRRVFFSTE9RUE9UWVpZXFpZW19fXmBjXlxhY2tiYGRnaHKFaGdpZmptbnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJFR0U8QEdEREA5PD5APz4/Q0I8QD5BQUZDRUVDSERGREdGSEhGSEhJS0pFSkhIS0hGRkxISEhKSExMTExMSU1LTU1NT0xQUFFVVldPSlZWVVNTUlFMT1JSUVZaW11eW1xeYGBhYGFkXWRgZWZgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd293SUpMSUxHQkVERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFRUZHRUlFRkVJSEZJSEpMSEhKSklMSkZKS0hJSkpHS0tNTUpKTUxOTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXWBgYWFhYGJkZWJjaGJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3BzdnR1dXd2dXV0ZXFza3BxanJ2b3dKTExLTUdEQ0FEPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0hHSEdGSkZDR0pHR0pGSUxISUpNS01MR0tJSExLTlFLUlFMU01LTk5PUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZWFhY2luaGJpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0RBQEQ+PkRFRkNAQ0FFRERGQ0NFR0NCSUVCSEpJSEhLRkRLSkdISUlJS0dKSk9LTkxJTEhKTUtaZkpkXEtsUkhOTl9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxqVF93dmlqZ2lmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENEQkVFREZCRkZHQ0RKRUVKTExKTE1HR01KSEpKSEtKSUtKTkxNTUxMSUxNTFtzYmRwXmxsVU1OZnNdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9ccHVncE1Kcnl2a2Jga2VlbXhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0JCPz1CRUZCRkNFREVFRENISEdERUtHR0xNTUpNTEZKTkhJS0pJS0pKSktNTU5NTU1LTk1NW3Jvb25wcGxrTVBRbFdOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhwY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQkI9Pz9FR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSUxLSElNSUtKSktPUE5OTUxOTUxcaGR1XWxxV2xOT1FtVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdnYWRpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSURFRUNBQjxCQEJGQ0dGS0dFQ0NIS0hIRkpMTEZOS0xSUkxHTU1ITkpHSE5ISkpJSE5PTk5MSk5NSlpzcHBvcXFtbE9RUm5ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9udXN0dGpbXXRjd3hyam56aGFhY2ZiYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hJQkVFRUFAPkNDQUVDSElNSUZDRkpMSUdGSk1LRk9KS1dSS0dLSkpOSUhKTElLSklISkxNTUxJS0tLU2tiWmleX2pjcnJaX1lqb19lZVVrX2NbYWJRYG1oXGpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRURDRkJISkxHRkNGS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpJS0tJSEpHS0tLS0dISkpMTExLSUtMTlRbXFRQVE1QT05PT1ZRT09RT09RSkpOUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNlX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdKTEhER0lQS0xPS0xXTUlFRUhJSkhJS0hMSkhGSEhKR0dJRUZMSElLTkxJT1xXXk9cW2BeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVFSkpKR0VISFBKTE1KTVNJSEVBSEZKSUtLSUxKSEZFSkhFRkdFRUpHQ0pNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjYFlfYltgXltUWFhaX15kYmJhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tFRkhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUJGSkRASktJT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV5eY2FgYmJiY2NlWlJZVlVcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJTERDS0pNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hEREBEQUhJQT9ISUdPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUFBdX2FjZGNjYlxkY2JkY2ZYUVVUU1xYW2FfXl9hYV9kbGttampsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0hHR0pGRkZJTEpORUNLSkxOSkxJS0pISUdCSEhRTUtLT01LS0lIR0VEP0VCSEhBQUZGRFRdWV5YX1lfW11VWFhQXV1RS0pXXlheW11WWmBSUV9fYWJhYGJiYGNiYmRkYlhPUVJSW1NcXl1eXl9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSENSS0ZISEhFRktKTVBFR0lJS05MTElMS0lJR0RIS1FPTUxQTExLS0hJQ0VBRUNIR0JBRkVCVlVFXFRdU1ZfWE5UVU5aW01KS1VgYVtfWF9eYV1PWWJcYGBfYmNiXWJiV19fVFBPUFFYUl1cXF1eX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNQRFdfSUdHSERGTUpQUEZKSUpLTkxLS0xLSkpHRUpNUVFOT09NTkxOSEtBREFDREZEQ0FERUFMSENMTFBPT0xGTUZHSUpIR0xMTU9RSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUFVUXFlZW15eYWFlZmNoY2ttcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXkxHSFlNR0hKSEdOTFFRSUxKS0tOTlVOT0tLTEdHS1BTU05QT05PTk9IS0VgRURfTERmY0RNW0heXHNtT01WbVlMQ1BfVWxXZ0pdWFZeRExRVUxNVFZRUlRYV1RYVVRcVFBmWmhoZFlUa1RXVlVbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USUtHYFRISk9KSU9NUlFLTUtMT1JVUk9PSkxNR0hNUVtZT1BQTk9QUEpLUH9RSXxZWXJzWFBtSHFub2FWUHFxc1BDa3NtcXNwU29fW25YXVZcWFVraFVdVmNaYFlaX1ZVV39qdHV1X2F2X1hiXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4SCf31+gHZ4emx2fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdJTEZSVkxLT0lLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBQS0haeF1UeGRoWVJUUXZndGxwYm5ma1FyT013bWpycHNycXJwb3CAXWV6dXhxcXpxfnN9a3V9YlJofGVzc29zc3x9b355b39yX2BgYmFaYWBna25rYmxmZ213foGAg357eHeAdHZ6aXJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpQT01NSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dRVFBQUFFLR2Z4bGN4cW1aSkxVeXB1bXVibnZQZGVKZnZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGdvWHZ2anZ1cIBhc2h9aWx4fG9fX19jYlteYmRnaWpkZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3V6bnx9eXhybk5KUnROQ0JFUFBJS0tKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSVNUVVhXV1BVUE9OUkpMcm91dXF1cWRoYVZuTHFwXkZoeVd2VEtoeH14YHl7c25hXm1vZFJncnVubXlwd2x2c3RxbG1cc356a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUEpMTUtMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5JVFRWV1lXT1NOTk5RSFJtSGl3S2BkdnZVV2xPbmx7c2FqZ392VUtXa2h9bG1seGBbcHp7XmB6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobG1yfGttaGt7dG1ta21PR0pLSEpISFJRTE5QTUxTU1JPU1NXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPTkxNT1BKSFFOUFVMS0tTVFJSVFBWVVFRTlFRWFhRTlBVVFhYWFtbVVNTV1tXWFdaUFNVV1dYUV1YVl1VU09YUldXV1haYFtncl5bXFtdXl9jWl9jY2VmZGNjYlpjY2ZmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFFJS0tMTUtKVFJNUVFQTFZVVFBUVVhVWVVSWl1WVVRXVVlYUE9MTldUUU5VU05QTUxRUEtKUVJLUU1LS09RVFJRUVNTSUhNTk9RUlFRUVRWUlhXXFdTU1BRVVVWVFpRTlNSV1VUWVZUWVVTUlVTVFVYWVdeWl9hXVxbWlxcYGNcXWJiZGdlZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUEpLS05PTE1UUU9UUVFNWFdVVFVXV1daVlRcYFZXVllVWFRRUEtPWFNQTlVQTVJOS1NQTU5VVE5RTk1OUVNQVFFTVFVOS01PUVRUUlJRVldVWVpbWVNVUlRXV1dZW1NPU1VXVVRZVVZZVFJSV1VVV1xZWmBdVllfXV5dXF1gYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5dXWNoa2FnZmhmZGBiY2FQS01MUFFMT1RQUFNRT1FaWVhXWFpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFPUlhUUlFPTU9TVU5XUlRVVU9OTlFTVVVUVFJUWFZaXVxaVlZRUldYVltcVlBTVlVVVlhUV1dUUlJYVlVaX1peYF5WXl1eYF1cYGBfX1piYmRoaGVkYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST0xQU1JVWlVUUFBMUFdWUVdTU1NYTU9QUlRYVVVVU1VZWFteXVxbVlJPVVZWW1tXUVNXVVZYVVNYWlRTUVlXVlxeW19fYFVhXGBhXmBiX1xgXWNhY2dpZGVgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeX1teXmFgX2JcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWF5cX1dcXmpwd3l/Y1xbVlZYUk5PV1NOUVFQUlRSTFFUU1laV1VPUk5TV1ZUUlRSUlpPUVNTVltWVldUVlpYXV5cXF5WU05UVlZbW1ZRVFZWWFlSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZl5cZGBhYGFjZF9iX1laXltcW1lYWVdXWltaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1bYFxgVVxdaGpyfXJsaFxVWVdRT1JbU1JRVFJUVVRLUlZVW1laU09TUlZVVVNOVlJTWlJUVVRYXFdYWFNYXFheXVlbXlRVTlZXV15aV1FUVVhYWFRWWFtUU1ZdWV1dYV5jY15ZYFtlYl9kZF5eY2NhXWVmaWRmXV5kYWBhYmNkX2JeWFpfW1xbWFhYWFdbWlxgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVVdWVFRUXl5gXl5iXGBVXV5ia3l0bH1sWlVaVVFRU1xUVFRVVFZZV0xSWlZdW1xST1VTWFZVU1BXUlNXU1dVVltdWFtZVVpeV19eWVxaUldSWVhZX1pZU1RWWllaVldZXFZUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZWRiX2RhX2FgYmJfYF5XWF5aXFxaWVpXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXWBemhYWVpUVlNWXFhXV1ZWV11YUFVcWV5dXVRTWFJYVlNSVFhSU1ZUWFhYXV5YXVtVXl9YX19YXFZSWVVZWlphWFxVV1daWlpYWVlaWFZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYltmY2hlY2ZhZl9fYWFhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaVlRcVFZXWVdWXGBhYmNhZF9fVltgZGFfenVvaFpcWlZYVVdbWllbWVhZYFdQVV5bYGFcVFVYUFVWVVNWVlJTVVdaWlxfXlpfXFZfX1pdXlleVlNZWFlaXWJZXlZXWltbW1paWVtZWV5fYGBkY2RlZWJkWmJmY2dmZV5hY2BjXmNjaWRkZ19nXmJiY2FhYF5fWFRaWlpbW1hbWFhcW1pbV1daWFdcW1xgXVZdXVNQVlpWVlpVWFVYV1heYGJhZGFkYV5ZWWFkYmBsZmheXF1bV1hYWVxcXF9bWVtiVlRXXl1hY1xTVlhQVlZWVlZWU1VUWF1cX2BgXWBdV2BeW15cW15YVlhYW1tfX1tfWFhdXF1dXlxaXFhbX2FeYGRjZGZmZmJZY2VlaGdkXmNhYGVjXWZpZGVoX2deY2JjYWFgX19bWFlbWVpaWFlYV1tcWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBYVldYWFdWV1ZdXV5gYWFfYl5ZYV1dXlldXllYVldbXGBeXF9ZWl5dXl5hXVtaWVxfYl9iZGRlZmdnYlpkZmdpZ2NfY15hZmRaaGljZmljZV5iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWFddXFxdWldcXV9gYmRiYmFdYFhiY2JgY2FjXlxcXFhXW11fXWBfXVtgZFxcWFpjZWNhUlxZT1hXWVtaWVdaWmBdYGJiYGFjX1xiXV9dW19eWVlVWF1dX19eX1taXl5gYmNcW1dbXWBiYmNlZGdmZWdkXGVmaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11aWl9dXF5cWV1bXl9hY2JhYV1iW2JkYV9jYmJdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGFUX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl5cU1xfYGNkZGZlZ2ZlZmVeZWZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3p6ent7e3x7e3t7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3p6e3t8e3t7e3t6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIjbG1tLS0s7WVh4mJiYmGs9bS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIuRu8C/v7+/wZqKjIyMjIi/6eXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5eXp5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2AgYGBgICBfnx8fHx9fIGEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV4dnZ2ent4e3h3dnh7d3l6en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3p6enp6eXp6e3t7e3t7enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx7fHp5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHx9fXl7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d6fHx8enx5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6en18fH16fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h6e3l5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh4eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+LiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WEgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgYKEgYKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIGCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoKBiJGCgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKCgoKEgoKDgoKLmIeFhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgYKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KEhYSDgX9+fIibi4OEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgIONhX58fn9/f5mPgYKCgYGCgoGAgoKCgoGCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+Ag5aKfYB/gop/jY2BgYOBgYGBgoSDgYGCgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgICCmo2Ci4KCg4B/hIODhIKDg4OCgICAgoKCg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhYODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgoKYjISFh4d9f36AhoWFhIWCf319fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIaFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWEg5KIgYGAhH9/fn2Fh4aDgH5/fn5/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoGCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISEhoOBgISMgn59fYGGgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoOEhIODgoCBhYSDgoB+foB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eGhYODhYSEhIOBgIOFg4KDgoGBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODg4CBhYSEgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWDgoSEg4SDgoKCg4F+fX1+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4SDhJGSkY6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGhoKCg4ODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4GEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoCAf4KAgIGDg4ODg4KCf319f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYOEgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhouTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn2AgoODgoOCg4J9fX5+gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf3+AgIF+fX1/gIF/f36AgIB/gICAgH+Agn+AgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH99f359foGDg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gIB+fn9+fn58fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af39/fn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f31+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f35+f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH59gH9/fn5+f39+fn99fHx9hZOSjoyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoKBgYKAgYODg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIODg4SCgoKCgoF+fn19fX5+gH19fX19fX19fXt6enl5eXmAgoKChIOAgoOBf4GAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoWGhoaFhoWBgYODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WEhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgH+AgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWGhoeHhoeHiIaGh4eHhoeFfn19fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOjImIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSDhYR+fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3yAgoOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYiJh4WGhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYCCgH59fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+fn1+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/goCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Mi42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGh4SEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRjIyNjY6KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2LjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIuOjYuKhoSFhISDg4ODgoKCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gH9+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42LioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYOBhYaFhYaGh4aBhJGOjIuKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJi4mLiYWIkY2LiImHhYWDgoKDhISDgoKCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foB/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uLiYyQjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+Ni4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiNjIqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGDgX5+gIB9foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXt9fX18fHt8fHt7e3x7fHx8fXyJioiIhYWFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fYmFhoWFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp+fXl4dXSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAhoKEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl1dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKDgoOBgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXV0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX9/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4F/gIOCf3+Af4F/gH98e3t6fHt8gYB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fHx/fX+AfH9/fX2BgIB+fX2Af36CgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYGEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fH19fn16fn19eH5/f3x8fH5+foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgYSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4ODf39+fX5+fn+AgICAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFhIODg4ODgoGCg4KBg4J/gX9/f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH99fn5/f31+foCBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZweHlyeIWFhYWDhIOCgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGBgH5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fXx7fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/fYB/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn58e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/f399fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn6AgX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/gYF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoOCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e45+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICCgoF/gYGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHt7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgYKBf4CBgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGEg4OEgYGDgIKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl5fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICDgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYB/goGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fX96eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn6AgYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoWGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgYSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/f3x9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgH+Bg39+fnx+fX1/gYB/fnx8f39+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhISChIOGgIKFhYqJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WCgYSDgH99fX59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhIOFhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgoN/g4N9gX1+fn1+goOCfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugId5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3x/fXyAfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKGhoaFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WGhYaGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoSHhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aGhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99f4B+foB/fX18gH1+fn5+fn58fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYSGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhYWDhoaFhoWFhoaFhIOFhYOEh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn58fXx/fH5+fH2BgHx8fH18fHx+ent7fH6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEg4SEg4OHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWHhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4SDg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWCgYKCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiIaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFhoaHhoaFhoaGhYaGhIOEhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChYWGhYeGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIKFhYaGhoaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYCDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX5+fn19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEg4aChYGBgH9/gIB+f4CCfH5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWFh4aFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAf4KCf31+f35+f4R+e398fICBfYGAfX2DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fX1+fnx+g358fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWDgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYGAhYOBf36Af358fX59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fb29vb29vb29vb29vb29nX19fX19fX2NfW19fX1tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0j4yMjIyMjIyMjIyMjIqguri4uLi4uLi4uLi4t73S0tLS0tLS09PT0tPT09zi4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6ODc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OknFpVVlZWVlZWVlZWVlZSeaejo6Ojo6Ojo6Ojo6Gr0tLS0tLS0tLS0tLS0tHf6urr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpZ5fWVpaWlpaWlpaWlpaV3yopKSkpKSkpKSkpKSjrNLS0tLS0tLS0tLS0tLR3urq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaqjaGRlZWVlZWVlZWRkZGGDrKmpqampqampqampqLDS0tLT0tLS0tLS0tLS0d7p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs/Pzs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0c3MzMzMzMzMzMzMzMzLztLS0tLS0tLS0tLS0tLS1NTU1dXV1dXV1tXW1tbY2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7O0NTSz87P09PPztDU0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbX19bX19fX19bW1tbW1tXW1tbW1tbW1tbW1tfX1tXW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Oz8qWpdHPz6KXytLGkqvRzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8+cqp2s16igq6DOma2as9LOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9DLlIiancKclZChs5WGnZ3Oz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/P0b3ImZurnZ+nmbTAyZeZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz8/Sl5Sgw6KgjKDF05GYoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Ts5vEmNqXxcmU2Kyjv53V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX19jY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0c6NkKC2oJSVobvNiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHL2qidi5+vs52l0NuimbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJjqWao5CimqKcnJGomJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojg6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HKu6Gmp52+nqmgop6poqmc0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk3Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09OekI222a6OkaXUmpGOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0rrE1dLVwb3W09O4yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzY7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLV1NLS0tTV09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2trZ2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg3OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb2tvb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19jY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tna2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb29vc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tra2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PD0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmJiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/P0A6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiZmpqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkJGSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpGQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampuam5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJycnJycnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZycnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJycnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVJYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRU1JU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFRgTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqamon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaaupqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6impqinqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqGin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6KvqqqsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Sgpaisp6alpaOjp6SVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3cH15ZltbYF9aXFZcaGRvY25paWJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustq+zsKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKOnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaGhqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eHhjW1JZVF9fYmxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2tLqxqq60sbCxtLW2vL2+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipaenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbCnvLy+xcTGycfFxrvEwcXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87MzMfBw8fHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjIeSi5iYlZqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJCQT1AQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGwMXHy8jUy8rHxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZKJlZGXlZSZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ4ent2bmtpZ3VaZnJ3c3hmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvre+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JwZmVnZGplYmptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m9urq0v7i1t7Kvu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+urW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamdmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tbGwtbe1u8G4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2hYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvsPAusTCvse4ubitt7W4urS4s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wtLKxsfKycbPwsG4rrW1vL64urK+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2diXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuro7C5vb6zvL68xbiyuLm9x8nKws3ZyMvJyMzO0czKxLW6wMPIv761v8G/xsa/y8bDv8G8wMPMysfFxsC5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9jXmFhTkhNP0VAP0RDPDs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPEFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsbXx6vUxcTKyMzMzcrGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8TDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8vrrAysLG08CUwsO/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKyr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t7y2ucG6uri4tcTBxMm5jJ28ucG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pXF9gWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubjAtrXAs7Wysqqupre5r4uPr7a4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nrK+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXVpVSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDo7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ura20cCywLewnZCMfneKjp+MjKW1s7K3vrmztbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4udLMsL+soYBsfW1gZ2l6io6lt7Owtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE+SUJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6rqy8sri5t7u/vL7VxbKpgXh+X2yHamNeYXqRqb22sbS2srSvrbu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5urW5u7W1s7W7vL/Czb2ggGRahF1WhYqMfGFbkK/GubS0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PTw8OjpAPTw8O0A+QkBBPz45NTg7PEZCQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+ysrq4yMWzh2NZa5ZcV2R4iYt5SoK3xrmyrbOwr6yutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWjm6OclZCMj4+Qk5CWlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wtqqi1r8vHpnNXXYSPV1ZhZrKldlBot762s6qytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsaOlqJ6gnJWTkI+RkJiQlpWYlp+Ym5mbo5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENBRD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiXl5ahqKyutre6ubq3t7uuqKChqaKgrajCxpliWn+KdmVkenWvo3ZmX3ebr7Sur7O1qqetrKOcmZSOkZaXmJmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZabl5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OSnJ6kqK6trKurr6qvqZ6Xn6WenqWkvcOVVmibl3SLmYlvjH51fXl6oqqzsbCwuK2noZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKmxr6KZnJ2eoZmbm5qYmZuUlpuWmJyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5VTFJMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkZyYoZ2qoqegnqehpZ+ckpyim5+hocLIkVFzpbSAhIZ4aXBxe4N4f6ipsK6urLCnoJ+ioJeRlJugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7issbSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqShn56anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOfmaidrp+nnpyhnp6ampKZnpyiop/HzY9UdoqKc29qYFtdXF5lYW6NoKqoqqyqpZ+fmZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqaqop6iamZ6aqqefmaagn5+nqKWknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiZqqCxoreksKafnp2dl5iVmZ6bnKOgxtGTYXx6eWhgV0xJS05QT1Fca4Oqr66pqqagnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7u3s6mzraqztK+zrqquo52rp7axrKKvpqGjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHFra3VycGhXW1FFVEhESU9IPkVBNEVIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw8Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goJycmJufoJufoMTIh3F4dmdWUlJuV1dOTURHYY2srqajo6KgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsDGvrq0urq0u7ewtrKqurKuu7e+urqqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrZGhveGplWltGS0xFRFNMREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqoZyeoaKem5qznWtscGhVUFx8ppV5Uk1nlK6soJmcm56emZeXl5KMjpeXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS083T0NPTzMrCxcbHysjOv8jRzMfFx8XBvMPAvr6+tb6zrb+/wsLGxMfErr64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E/PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopaisraqgnaOfnJ2ZrJVybWNXTlJotNPTpI2ks66kn52fmpiWlJKUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K0tfR19LU1tPTyMzHzc3J0s3O08zFx8nKwcbLxsjIxb/Ds7PIxMvKys7Fyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK2zt6yuo56jop2gpKyYemZYU1JYd9PXv7Kvp52cnaCkoJ2alJSVlIl8d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTTz9HD0NPW2NXW0svJztHLxs3RydLV1tnV19PW2M7Sys/RzM7QzNLPv8fGysPMzMvOz8XGx7a/yr/RzMvPxcnHv8PDyM7Mz9DPzcrHzbi3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKR0FFSEk+O0A4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wcWxtaihpKWgoqu1j2daVFVWaJO5rqSalZignJqgoZ+bnJmViXdpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNDO09fW09XQz9LT0cnT0cfQ2NfY0djS19nV1szPz8rN0svOz7/FwsfFzs3R0NHIy83AyszF087LzsjEycbGyMzK09PR1c/SzNPBucWxpai1rqeaqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1FNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq63qKu319TV2dnRztDAvMzJtr6upqqooaSxtH9VUFNSZZOtpp+Ylpiam52gnZmcnZN9cWVjY19fYV9fYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHG0dTK0NTV1s7S0NjY2NfLyM3Eyc/Mysu/yb/Hyc3Oz8vQzc7Lzs7Hy8/Qys7KwsnGyczKy9HSzNPR0c/Pyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1XRTtAPDMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PT9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspKyuvrSwwNjS19rc1s7NysPSz8HAsaqsraqlsaltTUpOWJKgm5WUl5yen5+dlJaYlIlrXl5eYWRiYGBgYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVysDKwcXMwsjJwszDxcjKys7KzczQzdPLxcjPzMjHysTGwMXKy83P0cbQzs3NzM/Fx8C4ub3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV4cHFrbWdgYHBoWFhoVkxGTElQUEI7RD47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc2Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFwsG/u7WyscfCuMvV1dna29jMzM/I1tXEwrWwtaihq6qtYUhEUYubjYyYlZCUkpGWlpaQi3xlYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL7Gyb3Cx8nOxMLIwMfNx8PLysvPx8PE0MjGwcXHxL7Ax8vLy87CysvIx8zQxMXHu8fDyMjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd250ZGtgXmZwYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vLrNzcbQ1dXZ2tvY0MnPz9HTyMK3vLyupbOns2RJS4KYjo2Wj4aDhISCfoWFf3NgXF5eXmBeYGNkY19dXV5fYGBfW1pcYGtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8jKycjKyMHFzMbIy83JxMLLycHCy9DEy8i/ucG7xce9v8bPy8O/w7vJxsi7yMbEyr+9wsvGxcS+xby8v8PEy8XEvMDJwsXH0sTAyL/KycbHxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZqjoJuUe3ZzdGZpWmFubFpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvP0czHwsPGzc7OzNXP1dnY2c/L0s3NzsjBtcS/s7G3q7l1V3mWjJOXhnqAhYaAdnh1cnBfWltdYGBiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjBwcHFv725vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDvrzBzcPGvb21wb3DurzGu8K5s7zFxMLCtr+1tb2/usvDvLW6yLq/vcvDwcXCxcjGyMbQxsLMx7LHycPOzcHFw8C9srewsqeoqLmwpa2wq62slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGw8TIztHKysrHzc3O0cjQxtXU1tfNys/FycXHwbrHvq2usq6whniRjYqLhXiAhoaAfoR8dHRjW1xdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLW3tLOztLq1vrK3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bAwry4vcbBw7u1rrK2ur60xLe7tau4vb2/vbC6tq+2urLFvLauu7+0trTFvb7CxcDDxcbIy8XAxsa7x8u/z8rHw8bCw7bDvb22ub7Hv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxcjNzNDMzcjKyMrJysTPzdLPzcXHwcXBwLu5y7itsLGvl3+PkIaJint4foaGd3iCfXRpXl1dXV9gX2BkYV5kZWNfX1xbXlxdXlpbW11fbHBtaGZqbW5yfKTHv7i4tbCrrKeeoqqnnquts62pq6m0rbaxsqmupqyyvLq2w7m6urGrtbm7tMK6sL+xvby7trzHucK2raqosLG/tbe8r7CnsrO0u7yrrbWlrrauurGwqriwrbuuu7i7wL+9ucK/x8PFwbzGwcfLuMXHxb/Gw8O5xMbCu8bJzMuzucK8urKIcnZ2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxc7Sy8PFwcXPx83Bw8a/xcXDw8rCycq/wL3Cu7S2tsWxq7Cuqnx2k4iPkHx4foqFenuEgXdvXl1cXV1fYF5fZGNiY2NiYF9dW1taWl1aWlpaXGVub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCjpp+qrbS2sb25r7evqK63tLS8uLO8r7i5tLG8wbHArqWooquxsrOnvKqrqKusrbSzpaitoaSvqbKlp6itpai3rLCyt7q6u7G7vb6+xL+1wsDHyLe/wMS3xMK/u7/Ewr7EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XQz8zDyLq6y8HLvrvKt77Ev7vKuMHEwra4vreysLa+sKqqqp1ug4OIi4B7foB+eHR/fHN3Zl9dXF1eX2BeX2NjYWJgYF9eXVxaWFpbW1lYWlxfZmtmZWdlaWtvcoWqpaymoJyhpZSdpJuYkqGjqqOin6WlqKauoJ2bpKWrsq+2t6ewrKeqtKq0urG2ta62ubGvurmxt6Sfo5+msaerqLmqpKenqKeyraCnpp+bpKasnp+npKCgsa2trLK0srSwtby2u8HBsrq+w8GyubnCs8C9v7W4u72+vMLHxMLDv7/EoIN3cGthZl9rb2BUWV5ITmdPVEhFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzc4NjY2Ozo6Ozk7Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9taCelZ2hprq2q7Ozu7PEz8nLwsa4t8fBzL+4yri8xrm0xbi0wMKuuL60rqext7Gjo6aPdIaGhoF8eXV0b21rampxaV5gXVxcXF5gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeVmqGWm6KYlo2eoaKmm5+fo6WiqJ6bopueqrCtsbWiqaqpq6uktLmtt7Css7WusrWusKqfnZ6jorKkpqm4raKmpp+orKqZn6CemZ2fpZqao5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7OzubO9tLaxsbW0v7a9wL3Dwbq7vZeDenJrX2VeZGRYVFddSVdcS1BHSUlGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xs/IyMDGu7vEw8++uci5ub+4s8K1sr29rry8tKShq66rmaCfin+Ghn94cm5wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZWVmZmhpa3KNqJ2UlJSbmJuhlpaRnKGiqJ2bnaWmoqacoKCamK2ura6yoKWiraumobSwsbGsqK+yp7qzprahop6bo6Gto6Gptaqio6adpaajlpiel5manaCal52cnJusoaumo6Smrauzs6q0sLKqsrm0r6mvsrKzt7Ouqayusriwura5vb+3srGUhXl1ZV5lXltZVlNaVUtcUUxJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLMyMbAxbfCwMfOt8DEvrS6urPAt7O6vK+1t7Ghnaeto5edmIt/hIR/eG9xdHFpZmRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hXVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnqmcmpqrp6+wq5ujo7eqoJ+uqLappqetsKS3sKS3n6KbmJiqpqGarLiwoqGknKKgoJOVoZSVlpuYl5aXnJWfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxsK+ur6anp7KusbSvvLS6t66jlIF5dWReYVZZV1NSVEtNXkxQS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Oqu8C9wLmutLjBzMfFwsO9xrjIzLLBw8Kuvby2vL22uruzs7SsnpykrJeUjZGFgH13cWlscnRwaWhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2NjY2JjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKann5yfpqCqr6afoqO2qKChoqi0oaWopbClsK2stZ6gnZWUqaGilK2xsZ+io52dmJuTi6GUkZOYmJKXl5iXnaabp6GimaOlpaukpbCnpaOrq62mqK6vrquoqqmzpaasr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFJIUmFNV1BPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepaett7u8wcW6sbm1xMnJwMPGxsi2xsSzwsDGrLi4vre+vL24trCwq5ybo6aPjXaLh391bmNiZmloZmhqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRWVVJVUlVgYF9gYV9gYWNkaYGTk4iQjpSSk5yUlZajmaCWnKCloa2mpKSio6KcqqulmZ6lsamgoJ2lq56noZ6tramprq2hoaKUl6ObnJCrqbCbn6KfnpeZk4qekY2Sk5aQmJiTnKGinaSgoZWgoaSmm6OrpaKkqqSrrqWtsqmmpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlZSR1BPSFpcT1JJVEtTTEVGSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njo4Njk4OTg5OzlAOXu1tK20u7Kvq7Gtnainr7m5s8DIurXAr8bJzbvByszItcq9sb7Eyq6yucO3vcK+t7eusKmZnqCfioV1iIN7dGlpaWxnamxta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eXl9fYmRtjo+EkYeQkY6Zk5SSnJqinJugp6iqqKqmqKWjmKSupJSZpa+pn5uZm6CerpmbqrOfpaafoqOhlJOblpaSqamtmpyfoaCalJCMmY6LkIySjZaVkJ6hoKOcm6KVm6CioJiiqKOiqKugq6+krrelo6SirK2qqKuvsreyvbWzq6+YhHNzaFtYWFNVUUVYTFFbWU1VTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaevrZupqKy3tqy7yru2v6zMx8a5wc7PyLTFvLe7xMmyrrnBuL7Avba5qq6kmpyemol/d392d25taG1ubXBoZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/jJCKko2XkZeZoqCbn6qppq6qp6+jp5mfrKCVlqSop52XkI+anq6Wl6eqmZ+dlKWhnpKQk5KTlaeqpZqZmZ2dlo2MjJSGiI2DkIuSlZGgnqCjl5WflZqgop2Tm6Wlp6iooLGwprG8p6CjrLSrrqewtbC5tcCxrbGrkX1xcmJWU1ZOUklGVlBSUkxMWE1KTE5SR01KQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6u8LL0MuxuLi8vsHEsrGzua62tr22uaeooaKenpiFhnlqZ2xucW5xanBrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKl4mUlJebmZ2omp+ppaSqnaeYoKWbko+eopqXloWEkpqjj5OinJaWloiimpqTi46LkJqkp5yVlZebkJKHlI6MgYuNf5CKkpKSoZqfopWUmJiVoqWZjJmkpqimoZ+0sqiyt6Gdoresqq2ksrKltbu1q6uxo4l4cm1dTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSno6mloKmlpLOqorLDtbWys8bGt7rDyszGs627vrW4wbCuqrKfqLC9srKkn6ClnZuLf4pwXl9mcnB2cWluaWVoaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGEjoqUkZOdoI+am6Kho5iklqGblY2HmJqMc42CfY2XloWQmZCUjo57mY6cjIKKgImYn6KekJOYloSOgpN+fnSJjnmQh5OQkJ2amZqQlZCdjqKjjomaoKGjo5uitK+sr6yfmaW4pqaxobGunLC7qqmvqpmCdnJiVU1ST1BNQ1NOTFFNQlBRSElOU01ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTE3NjQ3ODk6OjY1Ojg3QTd4t6KjtKilpqijpqWmpqazp6W0wbivtLDJxLe5wc7FvrOtu8KsrsSuqaOok5+oubCopZWcnpuWgn2EZ1dWX2dmaWdobmNqaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeLk5Cfl52VlJaUjpaJf5OJXztXb3uLlImAi5KMkIaGc4qEloF5gnqFlJ2Ug5aOkI+Dhn2SeHJvhY19iYGRjY+XmZiTio+JnIeel4eIlp6aoaCXp6+praionpets6Kmrpmsq5intKKpraOTfnJtX1tOU1JWTERUSlBNTEZOT0lGTFFNS09KSU1QRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6KpsKintMG5sLWwx8K3s73Pv7mvr7bDqKvGqqSemoSVnbSmn56MmpeUjYF4e15QTFJVWVpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQX+VkZF9iZSMhIqNmo2VlYqSiIWVhniIf2BKUW54ipGEfYSNiYV/f25+f5R3dXV3hI2ZcFGNiIqHfH54k3Zod4aIfoqIlYqNkJGWi4SKiJSEmoyBhJKalp6clKSjqKmlpJ6bsKqhpKSRpqqWoamcoqaoiXVsZV5bSFFRUk1JVU1TSUxLT0lIR0tOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+tqra8tri3s8K7tqi6yLi2qKi1tqqzvqiflo+Ai5WrmZqQg5SKioN9dnRaTUtNTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJKBkpmLj3uGj4B1f3hzbnVwdI2NgXl9iqqFeXpodnuOcHJteIGLjJJ4eoB7gHZycpJ3aHWEhISEe5WJiIqMioB/hIuMf5SDe4CPmJWclZGfnamen6CdoKmln52Yjaekk6Cflp6epIByZ2BcXEpWT1FHSlhST0pNTVJKSkpNUEhMUUxSVExFSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpijoZicn7Spr6mlraywsaq9tLK7uLa7tbKgt7qyqp2drKmos7Cim5KPlYGPnpGWhHuNf4J8dnVuWktISEhHRUhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfXlnd42XmI6PfWd5gXZ4gImPfISYkoFyh498dntva36tfHOQin97hpKBfX90ZnZ8hmxvaHN8iYyHgGx5cX1wbXWPcWlxgH6OcEOLhIKDhX93d3qLhX2LenV+jpKPmIqSmpujlpmdmp2eop2WjYqlm4+el46WmI92bmxlYlpXV1RRSlNVVE9QTlBWS05LTk9KUU5ITk9LRUM8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ+WoKavrK6rqKmwr7GrvLisu765s62om7CnrJuPlpylqaWhmJqQhpN6ipGOj3p1gnJ6dnBxb1pLRkdFQUBDRElMTE1RUlBRU1VUVFVWV1dXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hufHmIkHl8i4VvbYyReHN4amqAgnKWkYuBfZaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnp9fnt2b3RzhYJ5gXdwfI6MipSDlpeYmpCTlZaZl56XjIOJn5GLko2GkJZ+bWhtbm5XVVdUUlFZT1JUVFNYVU1OSE5KTU5LQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDQ1Njc0ODVIQTg5NXeZkZuZmp6lrbCirKqota+urLS/q7zCv6aimpWkl52NhIuUoaGZmZGUi3SOeoGHjop4c3lvdXBqbm5bTkVGQ0A8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4l2gYiGdGyakXRze2prnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxgHxncXF7bpONj3tzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlI+XjoB5iJeIhoqGgJCHdmpqbmdkV1FaV1lZW01QVVZZWE5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfprquq7KwwrG7w8eblo+VmYuNhXmEkJiUjZCMj4Zxh4J0iI6JfHN1cnFxaHJqYVRGSUM/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHF8eG19bHKDgYWBeoSGhnlyoJV0eIBzdZSHNXGdqJ2OoaGEooV2cIZ8h3xzjK2NiYBoZmJpbnJtcIN1aW9YdXCOmpJ3bH97fW1xbXCAenN2bWJ2hH+GgIWQkYqLipKLkYyLj4N1eIuPgH6DgH6PenFwb2teWlxdW1lYYF5STltaWFdMSEpFSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoeWkZ6kp56vlaW1qa2xrsGyu8HGl5CMlJCAiH1ugZCSiYOKh4+FdYKEbJaJin13eXlueHB4ZmpeSVBHPkA3NDQ4Ozs8PT5AQkVJTExMTU5QUVNVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8fYWDf4x+dqKZeX6GgYWZhJucYYaqn52KgpCOeneIfomIjnOKl4+De1xkcXR6e3eKbGdqYnlvhY+Cem6Bd3SEenB0eXdrbmldd4d9h3yIh4+Ai5OXg42FjYZ9cYR/hHx1d3t9iXVvcnNlZl9bWl1TW2ZeV1FVWFtVR0pKREtHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyNeIp/lIySnZ2fppGgq6CxqK/AsbrFupaOkZSHeoV2a3+MkYJ9ioSOjHiDgHOhhYx+foJ/cIB+eml3a1JXTEBFMjExMjY3Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+MenyJhn6Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbHyBhod9jmhnaHh+boWGgoVxhIVHa4B3cnl2aG1rX3Z9g4h/iIWMepWenIqLiJF/e3WLdnx3bW93fn9ycnFrWlxcW2NjWGZlW1VPUFZZUERMS0ZOSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpeSl6GdrKGmuK+zvbOXjZKLmIt9dHB/iZJ+fYyCkpR9hn6GpIeIf4KIhXiHiH5zhHhfY1ZLQjYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzk0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiZGBmpWCoaGXlZuapa2Tmruxp7vHw6iLjKGlj5SJgZF7coSen5Gcf3aFhYqPh5BpaG+DgHSMhoSLcYaCd4eAe3aFfW52dWeAlI+GiYiHiIehq6KWiY6Yf3uCiXp6b2dreH54fXFqY11aWl1pXGFmX1lPS05XUlFJUEtETkdDS0RDQURDQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnVwZ3iDe4CMgIGQj4uamqScoaymq6+wl5GRhKGUhHh3f4yUfH+ShpKVf4qAkpuOg4CBi4uCiY2Df4p/bHBqXUNBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jaGemYSThYKPop+UmZKEioWPmJGWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGWhpOKj4+WpbWpm42VooOHk4R+f2tqa3yAf4ByYFxiXllmalxra15XS0dPU1FOTUxGSVBERE5GQkNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuaFlwg3B1h3F2koZ+l5aalJ+fnKegqpaTmJ5nZaSafoSSkXmAkoiQkn2KhZiSkYKAgIuNiYWQh4SIhXh4f2dNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+ElJKGnKGampmnkZGIlaKamnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N8fnpvZ19bX15hZmNgZ2dcUUVKS1BPSUpMRkZNQ0hMRkZDQkdEQDo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcXVgbn1id459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Kjox7ioaPkI6Bg4CJi4qEkoWDhoiBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49R0dAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtL24pa6srKeotKyxt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsrauki5aYhaamoKKXgaaZjaKqqKSHhZOjoKCqoKSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWriZqKk4qVent+hH1mX2dbZGFdY2NeZmZeW09DSUhUT0ZITEZLSEVGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljWGpwWHqFdoGUhYiCm4OSkI2S2sidlnNWl4iPiJyPfIaMjoqJeoiCh5GOg4WAi4WGh5KGgoSJhoeHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJUVVVXVU1bUEdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHw6uzxbass8CzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsbGcmpKan4mnr6qklXafpJehq7GzmJapraiutbuyuqyvtaKxrLG1vLe1rrWgp6ejqJupsK2yuri4p5y3qY2lj5KToIZ5goJ0WGBjVWVhYGJfYGVfWlVKREVMVVFJSkpESkhFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hn6AjXu/u6O8grSUk42bj4SIj5KJiXmGgIyTjIeFgY5/gYmOhn+FiIWKh5F6eW5dVkBFTTw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFdPX1VJS0pBQD9HS0ZFRDs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMm2u8S9s7TBt7jCtb+wt3SxtKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KSpbGtpa2sp6SYoKyyuqKosrm1u77Mv8XFvb2zwre6uL+3ure5ra2xprGqrb6wvbvCwqyZu6iVrY+YmKqJfoJ6aVdhYFdpZGhkVlpjWVZUSUdHTFFHRElKQUhEPj9CQktAQExDOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWlZad2pwf4+EgY6FbnpzeIhiuKGao4mVlJaTlJONkJeSh4d7hoGNlYqAhIGKenyLh4Z9ioKBi4SVfXh5dWVPXGRHRUw6UWRhW15TRj47SFBEWmRRUVlYWmdaVGBhTVNPRUE/SUpIRUZBQEM9RTZCPkhHS01TWlRelK+4tbq5ycC7vcnMu73Au7e1vLu3vrW6ssZgdbKlsZqeq76qpairqqOisrWhq6eelZaemJ+upaempZ+kk6KnsLOosrK8tsG908nJ08bCxczCysPAvr2/u7y3tLC5t7fDusa+w8mwnrqqoqyPpai2iYF+cV5hYFxWYV5nZVJYYVZSVUlFRU5LQD5HRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzM1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdtbHGQjYWQc21zcnOI1cC1maCNlZmakY6XkZaWjoaHfYaDjJaLf4N/g3h7i4SHe4t5gYqCl390fXprZXB2WV1cUGVlYmBlZF1bWFdcTWRtVVJtbl9vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVl1aXJO5wLm9t8bAu7nKy7u3ura4ubO4tbWutraZZHWpnq1wXqKtnJihopuknqullJ+fkJSPlpiXqJ+ln56amYOknaykqrCtt7C8uNTQztbPyczSzM/OysfAv8LKvcG9wsDFxMbKv8nPtKS7sbWwm6y5vZp+eGpcX1tYXWBZYmJRW2BTUUtDQkVGRTxART5CSEJAQz06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin6Ih4yQjIl8gYNze4qDhXyKdIKKhpV/c3t4bG11fGlzZWlsaWZqamlgZmlobVptdJetpLyHh2dbb2hdWllUSEpOUEpLUUxUUUhMQUpHS1BfX2JnamKXt8ewubO7vrayxMe2sLmxsLuss7Gnq7esjbannpynmk6bno2OoJaRppillYqTk4iRiY+Qkp6boZiblZaHnpmmmqyvqK+ns7PT1NTW0cvP09XO08/MxsPK0L/KycvJ0sjNzcPR0riwxL3Euqa3u8SigG1iW1tcV19XWWVZUFxXTlFDQkhFQkg7QUQ+QUg/P0I3O0Q+QEg9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OT05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CQmYNocW95eYOgqp6ml42bm5iLjZWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfXF4dWxweH9ye254c2xpgHBtY2ltcHlpd31+y7/C36dtY3hvZFthYEpQUlVOWV5QXV1OUE5UUVVUXG5ud4Nylq64rLSosLarrb3Asau1pqW4p6yuoKy0pI+xrpuYmIyRlJGEj5uBjaaRnImDi4SKiYSKg5SVmJeUm5Gbl5mZnp6rrKSnoaysztLV0c3M0tPU0NTRzsjD1NHIztLT09bN0tHF0tbGwM7IyMOpv7jQnXhsZFxhXFVeUV1aTk9TUE5IPkFGQkJFPEBCP0VFPj8/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bXdwfX6AoZ6eoYuNmZOTjIyTkJaFeYaQkI2LioiRh3+Ce3J+gIKHeoV2hZORiX9vdnNsc3x8d3xzgnhxa4BycmlvcXp5cnu+y5p+jLGDdnKFd2hhal1DWlpbV2ZkWGVrVFhdXGBjXWN4e3+LgZmqpKSioKGppqqxuaumtKOiraKjraGnsZ+JppuVk5GKko6IgpSJa5WijZmEgYZ+kYODk5asi5WNlZmOhZKQnZensKKgoKSkqMfNz8fBy9DT0dTSztPNxtbTzdTY1tbY1dfVydTazcnX1tHKrcTDzIpxbWJfXldSWFJbT0pHSUlKQDs6O0VCRDxCRD5IQj9CQjs7OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKJgZ2VnpSFi5aJjoqIjoiPgHiDlJmLjYiIi4l+g3hze32Eh3eAe4eRl4GDbndwbXV/dnh9dIZ8eWyHdnVvfXaEdXl7nbWMPEGKxqV+jXxqZVdJQ2VjZmNoamRveVtfZmhrbmlugISIkYyen6CekZeYn6OjprKkpbOgoqWeoaiforGch5+SkpORi46LhoOPhH6cm4yNgoSFepR+gqqVo4ySipiSi32XipqRq7OXmpunnKe9w8W5tsXN0tDRz8vSy8nUz9HV2tfX2NTZ2M3Y287J2trS1r/MzbV2dW1jXFhRVVBZVUVGSklFRT06NzpAQUM6R0VARUNBREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXOGjXyXkZ2LfoeSgomGhYqCiH15hZeXiI+Dh4aHeoR5cXp7hIZ2eoaOjZ16jHB8b3B6f3J7gHGEh4Bujnp1d318gnV/fIeJsHRZqcK2jJKBcG5jPV5ocnBxcG54d4JlaW9ydXhye4uHjpOSm5agloiMk5ugm5+qn6GtnKKamZ+lnp+smYyajJGSjoV9iIeDhYuOoJmTiIOHfm2ZeYSZhoiTjI2VjIZ7m4iTj66rlJWXnpimrrW8qK29xsvIycvLz8nD0crU1tjX2NfV29fT2tvW0Nva0dbJ1cyUd3lnZ1pZT1JTXUhCRUlJPkE+PTc6PT87Pkg9QEJBQURBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKEfoR8fYSYjoeMfoaHgHeCeW57e4eCdHqSno2hdo91gnR1gX10gIRvgpCCb5KEdHyBhXp2h3yJuMalw8m3gZWbj3hwZU5lY4J6gXeGopCLeXl3e4R/fIR2bZSWlJWPmJGDiY+WmpeXppyYoJefk5KXo52Zq5aRkYuNkoOMhYmIgYaQkZ6cmYmFi4GFl3uIiZ+XkImNiouCfKGIkIu8oZiTl5mcqKalrp6ntb7AwLnHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvHhXl3ZWhjX1NWVlVNS0RORDs9PTw5Ojw+OT5BNj4/QD1APjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWVhXVtodHp5bImNknd2eop8foB/f3yFe36CkYqFhnqFiHt1fXVtfX2GfnR/kp6Rn4OSfIZ9eI9+eYuKb4ObgHSZhn2BiYV8fpF7kKmOkMOgvIyco5x9iYR9iXKMi39zppqcmZSFe4+RiYRpR3GhpJ2Mi5CShYiLkZOVj52ak5WRl42MlZ+dlKGUko6OkIt+kI+Oi4SIkpaan5+JjJSRnZCCjH+mmYiFjoKGhICkhoqLuJidkZSWoaegnZ6do662urWrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbt3d3dmlpZFZeWlNPTkhETEI9PT45OTs6OTk8PTZAPj49PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxc3iKe3t/fX97iHt9e4uHg351hIZ5c3p0bYF+hH13hpuhm56UkoCLh3+Yh4Cckm6IqYV6oIt8kI6DiIScfpqRiY2jop+Qo66fi5GLhYuBkoZXcq2Ln6ycj4SYnJCQjlyDopGCjZ+TlYyHiIySk4yUlZSQjI+KiJabnY+VlpGLk5SGgIuJko2Kip2WmaOihpOdlaCKioiOnJCDiI+Ag4eFpIWLkLOYnJKUl6GhnpmSm52nsbispbzBx83Hxs/Mz8zP18/R1K7W1dja2dra19bZ2Z5ue3NmZVtcV1JVV0NASUQ/Pz46NDk6Ozc6OzozOzw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieGxifpKDb213i3h6f3uBfYZ8e3aGhYBzcIWCe3Z3dnSEg4V9f5Kmop+mopaJnZCUl4qKp5dyirKNhKeShJmThJqMo5agmJOJm52hkqivn5GUkI6OiJWLbo23hJrEyLKdoqWbnZiWkbKQZKTNyJWOhoeJkJKNjZOUioWKioaWmpuPkJSTh5WYhICPi5mIjpCql5eko4iZnpaaiY+Gl5eLhY+MgX+Gj6WIjZOomZeTlpihmJ+Zk52borK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6BcX1nYl1dXE5JVFlBQkdEO0E9ODM3Ozw6OD02NDk6PDo3Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4FGdoGPfXxtfoh4en57goKDf3Z2gIN8bW6Lf3p8eHh8hIeKfoujs6ejqrOhlqefpaSWla6ig5G4lZGzmoyhoYykm7CjpJ2YkaeWp5msr6SXlJaVkIuYmZehwI6jybmrnKOmrZmSm52ynYWFqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIuUk4aVmIaEkZCcdZGYspaXpKGInZqTkIqQipebiYqWjoZ9jJieiZCQnJqZk5iXn5SgnZWem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LR1tjT0Ni6cXh0W19UX1VPSEpOREJDRTU+Ojc3Oj88PDc9NDI2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p6boWGenyEeYGGgX5weHx+fW9yjXp9gXx4houJhoSSp7usqLK9r6Sts7Ooo6GwrIqatZ2iuKWVraSXqa24p6Sjn5qpl6mjr7CpmZiclJWRl6CYmru7rsqhara4q7CUmZ+jrJOXvaNeqrKDioqNlIeRfI6OfYOGjo+UlYiIk5aMkJaNi4yXmJOdmbSXlqudi5yUko6RkoyYm4qRnpCLiZWfoY2UjZiZnJKbmJ6UoaCUnJylr6ihpLO4q8LIxLW6vbvFx8fC0aDGyc3NxdfW0cvUoW95Z1tZU11QT0VDPjxDQUI4Pzg3NT9HPTw2PDM1MzQ1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEpAi4p/gXOGh32CiHWDioJ/bXx9fX9wd4d3joKHe42PjIaMmarCwK+9xruztMC8tK2rs7aMqLKtrb2rm7ukqK25uKumpqKipKKpr7Kxqp2cpJibmJeeoqalkqS6r6nAvK2tsrmmpKh+iIacrbywg4yMi5CDj4ORjnqBh5CNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpeOkaCRiZSbo6yUlo+UnJ2ToJ2bmKChlJqep6akoqOws6fBxsOvsLq2xcTCv82mx8THw7zV0c3FyodycWBaWF5aTEpCS0BGRz5BP0I7OjQ+QT09NTw2PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRD9DRlxlR2BpZ1pdXJOMjIh7h4yHg4x1hpGKgW9+e4F/cX6Be5V6kpSUmJCTlaezxsm/wszCw7nHvLuvq7m7l7K3urLArqXApKuvu7yqraujo56nq660sKmboKqboZuWn7C1p4ujuru2wbysqJyypaSolIWOqcTDpIKLj4eIhIaVlI16hI2Rj5GijIyUkY6Jl5+Yk5mVmKagrp2MqpyOlo+SkZWVjZCVkY+hlIaXn6CynpSalJ+hmKSfmqCboJSYnqWjpqakr66lv8TDrqi3tsnDvrbPssS/xLyz0cnIwrVzd2tbVlpoUUxIQ0xLS0pBQT1DRDw1QUQ7OzM9OEIzMzIyNjNBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWU5lXGZUY2qZjZeKjIiTkIaJeYaUkIFygHyNf3iHgoKQeo6hlqiampi6vsfIycHSycrCzb3Cs627vqe6v727w7eswamss7u+qrCqpKWkrK6zrba1oJ+un6WimKOzvambqL3BpLe3sKuTsayrrJeHmqmnpZGCjJOllYmBdoqReoWNkpCen5OPlIuPjZSjmZaclJSjnqqfkaWajI+Pj5WWiHyPlZKSo5qVoKKctaWQnpeko6Klnp2mmJ6Wl5uko6mnorKsqLzAxK+lsrfMwLmvxLO7vsK4rcLDwsCYa3hgV1ZaWkpLTUpGRERIQkJBREw6NERIOTs0PDdFLjEyMzUyQjI2U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+JoJOEeIV/lX9/kIiKkICWoZmupqSYwr3Hw8fF083Ozcu8wrewuby0vMu8w8G2truts7+5vK6vqKCpqLatrqmyt5qerKKnoZ6rt7iqpbC/xbG9ubOnqrWzra6XlqWsqKCRjpKyxaeVjn2SlX2IkpmQqpmYk5OPkpWTpZ6SnZmUoaOinJifmIuMj4+eiFqQlpeSlqSZZZijnrOllqGWrKyqp5ueppeYlpiVoKSopZ+2q6m5u8O0pbO1y8C4qrassrq4rqi4ur24gmptWVZTVE1FSlJOSz9BSEVESEdHOTVGTTs+OD1ASi4zMjAyNUI1NVBXTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnBFaUlSZWJMRqWUnJeil6mWjZGDh6aTiIKHgpyDg5WQkJSPmqKfr76voca8xcTGxs7OztLKvru2sbq7vL/PtcO9uLi3srG1s7izq6acq6y5qqmnr6+Xo66kp6SltcCwq6y0v8O6wLqzp7m1uLOvlqWtrq6ki5OVoY10wZp9l5mEj5aajLGVm5qVkpOZmaWjlKCbl5qpnJyhoJmKjZCWnGBKlpyalZqlllSWsJ+vnJ6klK+uq6WaoKWUk5mYjpygp6KZtKmqs7y7u6qwsse/uaasq62xsaOhsbK0pG9sZFtZTk9LRU9QUVE7R0pIR0lDQz46S1U/QTo9RU0wNzU0NDpCMzROV088SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4unlo6Ik4Wfh4Sdl46doZujpLXItanGusLDx8rIyMzNxr67s665uMHBzbXHusG4tbqwrq+ztKakm6q0taqppq2smqStpaSorLq/qKu2t77Cv765s7LEsrm9rKOutay5poibl6abdr+fhJmdjpOZmouul6Gcm5aVm5+hqZ6nn5maqpmhp56YkI2RnYNudpKimpWdop6QrrKiqpSoqpeqraOjn6WokpKZnIiUnKKdlrGnqau6tr2zsq2+ubego6eopaecm6ypqYxhZGBeUUpMRkhNSVZMPU1ETkpLQkNEPFFWPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH9lXkhFq5WcoZ+7r5mUn4uTq5uRkpOJq42Hop+MpK2Uo6O2xr60wLrCwsfIxcLNyMG9ubKvuLTAwsq1xbLBvLS6qqitrbCjo5iqtLumqaarqp2prqejqqu+vKitvLS4vse8t7a4wbG+wbSptbervqWPopiSoqC8n4maoJmXnp6Pt5+pnKWim5yhmqils6GbnaacqKqemZWPlJuLl4mMpKKUnaKeoLWvpaSSr6uZq6qdnaSjqJGVlZ+Dj56em5WppKGhtLS6ta2otbKznpyipZqXlZiqoZ52X1tfXUpIRUZNUUhNRUZHQlJMSUJFR0FWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5Z1xGQ0OccGJHRaeXpJ+ew62bl6WYmamclpubj6qWlaemla2smaKrtsTCvL63wcLAx8S+zca7vbmysLizv8LItb+wvLa4tqakq6ytoaGaqqrFoqSpq6aerK+roqmov7emrb6xuLbHtrW5uMCzv8K3tbO0r76jl6OWlJyUrqCQoaOlo6OfkL2kqZ6oq52doJumn72imaOfoqmroZ2WjZWek56Hj4SNk5+koJ61rKWblbGnma6mnpmpnZ+NmJSehI2gmpuTpaSamKuxtbGrpaqtrJyYoKCSjpCVqJ6UZ2JYYF1OSEdKTktIRURJQT5QSEA8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNDZAOTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm5SRjxLeGViVkyimqOcnsWsoZ+snp2uoJKjn5aln6aqrJe2saOqs7bExL2/tb/Cu8jCvsrItri1tLCzs7fBxba+sbi1uLWfpqyqrJ2dnqWkwaSfqq2gpKmtr6KmqL21pbG8uba2xLK0uLq/s8TBuLius7W1o52llZKUoa6gmaKeqKiro5rCramerK2bm56ZpqG+oZ2kmKurrKaimY2an5KfiY5Xf5afpqGguKqmk5i1o5+xoJ+arpaejpiTnYGOn5eVjqKjlpCmrrKrqaGipaWVlZ2Yi4+RkqSeiWBjWWNgS0hKSk5FRUFGSj49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtOnp+hmZ7DqKWitKKcsqiTq6Wgo5+tqaydu7CorLaxyMXBwrLCw73Gw7zEyryvsLatsLSvv8S0ubGwubSsmaiwqaqanaWhqMGsm6ywnKqjrrGppKi9tqa3u76vt8SttLPDwLPHtLu3rLS2raqippaVlaSsop+fmqirsK+vu7KmoKmompmYk6KkuaChpJOvr6ylp5+SoZ6Vno+QjZWemqKep7SmpoyYs5ujrpqdm62QnpOVk5l/kaGWj42foZOLpqywpaahnKCekpKak4WLkY2cnn9gZVpnZUpJTEpSQkNASUc7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+jn5ygw6mkqrKho7SqlrOsp6KksqyuqbuxrbC1tMbAxMO1wMS9ycS1wMjBtKu1qK+4rL/Ds7eurLa5pZmrsquqmJ+ml627tJunsJutoK60sqerubKnurO4srnAqreyxL61xqi/r623tamnrKGXl5KmpaKimJilr7iusrW2oJ+opJqVlZOkoLeipKWWr7Gyp6qmop+bmpuWl6ifoJihnq+yoqaMl66YpKqXmZ6kkJqNk5eZhZWelIyPnJ2Ti6mpqqGnoJmelYyOmY+BhZWIlJ94YmhcampNUE1OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzujo52hpr+nqK+voam1q526saujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDGwLmptqSsu6zAwre3qqyxuqKVrbGtspalp5GquamfprCdq6CwtLOqqra2rbuss7O5t6y4sMO7vr+mw6uwt66pq6umnpiZq6KioZGXobGvs6ywuZqcqaCZlpKXpqG3qaWjorCxtKuzqKyfm6Cgm52lnaKXnaOzsJqfj5Olmp+ompSinZSXiZOWkpWWnJOIkJqZlI6oqKafo5uXm5OGjpiLfYyWhY6aamhsYGxuV1BRWlRBQ0VUQDs7SEE3OlhQZF5QVldFWV9dTUxSTl5LSj5aY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9p5+doqm9oquwq6OxuKqltrSsoK21va6zuLu6vba2wMK/yMS5xMLAwLjEvcG3r7Wnq7exu76/tKmusbael6uuqK6XpqiOp7ufpKyznqyisbCzrKq2tLW9rrCxtaywtbLBu8W3q72vsbisraqjsaaepamfpJiQmZ+zqrOrqrOanaebmpWOoKaltK6noa2trrGntK2yqqScn6ijnpWimZuotamXmZGSnpmdn52Qqp2Wl4SUloqdmZyTio2Wl5qXpqWioJ2WlZeTf4+UhXuOkoOLlmVscmdvcV5GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoaSstqStqqavrreqr7W6p6ext8W3sbe9wcK1tLrFvszFucLAur65xLfAubK0q6m6tru5vrSprbC1mJinrKqsm6urj6u9nauusqOrn7CttK6ttrK5uKqur7Kota+0vL3Ks6q2tbG0sK+nobOgm6itoKaWlpqasqOtoKWvl6GkmpqSjqOlp7OpoaazrKm1pa+xta+kmZ2tp5qYn5qZq7eil5ORjpecoZeWlKuempJ/kpeMnZyZlpCJlJKemaWioaCYlpGTlXqKj4V7jIqDi5JqbXhtdXthRWBqWUlIWVo9e0pGRDZBYlRpW01cYUpbXVpSUlJiYUxLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lVS0SZl6GxqLGqraakr662qbe0uaSstLfJu7S6ur+/tLO3w8DMyLzDvLe9v7+3v7yxva2nurm3tsK2qqyxt5SXpq6rqKOwqpSvuqOssbOnqKOytLGxsLWxuLSqrquyp7evtrTExraptrassK2pp6O2oKCnsaGklJyZlbGep5ygqo6oo56clpimpqW4p6KytaynsaeusLaspJmgrKibnJ6clKm4nJSOjoqYm6KXj5iln52UgpGVj5ybl5aViJaPl5qnnKOgkpaQkJV2hJCHe4WBhIyLbXB3dHt+XEtlbFxLTmNcPmJ7R0k4R2dXZlxMXmJNWFlXVFdUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLT1FTFE8M3JrSUNDkJmlrqWtrqunpbGztKq3sbegq7W5ybmuwLvCuLOxtcLCzsXAwb20vb+/ur68ssSnqbmwtra/vK6rs7KcoKexraalr6WesrWrqrGyraqptLuttLK1rLStqqyoram5rbKxyMC4pbqwqa2tpaiusKalo6+kqZyenJuvmaOjoqORrJ6joKCiqqamuaWstbalqquora+2rqOdo6mqm6CampKks5mOiY2HkKGglIyUnJ+TkYSNkpKdmpiVk4eXkpWZp5ufnoySkY6Qdn2OhXx8fIeJiHBzcX18fVxTZG5eTllmXEZElltHO05tWGJbTGBiTlZXVldUWWddUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis7SD8zQkhTLD6QaztHSI+cqquiqbGkqaWztLG0tbKyoayuvcy6rsC6x7G0rbTCwtHFxr7Asr3Awry/t7vEp6y3rLO4u8Cvq7GtoKOnraqopLCkq7Kqr6ywr7Cuq7O8p7axsqmyqaumpaOtuqyqscO6tq27qaioraqps6WppKOuqqiin52krJWlnpiemaydoqiqoqymo62suLGyoamioKyvsaydn6eoqZmkmZmPoKeYhoSOiouen46KjJWbjo2Fho+Un5yVl5SGlpOTl6SbnJyKkpCNiX59h4V8d36HhYZzcnGIdWtfWWBuY1FzcVxLO4R8Rj9XdFhhWk5jW05WVlVXUVxiX1NPTmhYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlVo+TEWVmK2ooaqznKqqsLatuLWuq6Wrqr3Ju7C9t8KvsayzxMPOz8O/vrO/wsO6wLPIw6uut62yuL++sq2tq6SnqrCpp6ixprSvqrCurbKxtKy0u6S4s6ysrqeroKOesLerqq27t6W3tqSqp6ysq66hqaemsbKkp6aioqyWqqGUm6CmnqSiq6Wtop+nsbetrqOmopuqq62pnKKlpKSZoJqWj5ick4KCj4iFnJ+Lio6LmI2PioKLl6OakZCajJOSkZOimZuaio6LinyFgIGDenSAhIF9c3aLo4d4al5gbmZXZYdjTj9nk0xFYnlXYllSZVRNVlVWVE9cXWFVS01pV1ZXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxCKzpKT140RIY+SEZEl5KwpaOqsZirqq22rLaxq6Wsqqm8wMC4uLO7taayr8TJy9G/wbq4v7/CucG5wMStsbWxs7q/vbKwrq2rq6e2qqatr6q5sKixsq6yrbeqt7emtLerrKSpqpyjnrOzqKiktLWgt66gqqirqayooKusqbm2qaqpqqOpoKyckqqhnaCko6ajqp6cp7WuqKaqo6OYpaenqpyjpKOgmpigkY6PmI1/h4yHg52dhoSKio2Nj4yDhZSimY2MmZCRkY+Sn5aYlouKg390hoB+f3h0g396d36BiJ2Pb3FnZ3F4XGBziGtPXplWSG14VWRWUWNPTVVUVVBPWFtiVUhQaVVWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs5Nyo0Oj0rLTMzMSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EO5aOsKGmq66aq6WssLS1r6umsKqpur67wLCuua6ht6/Jx8jQwb69u7zCvbrDwL6/rrKysbW8usGxsbKrs6iktKilrbOyubCjrbaxsLK7q7qvqa22rKqeqqyfo6C2raihn6+yorSqnqinqqOqoaKsrai9r6yuraKoqKCsmZCwopiioKennqebmaqxqaOgraKhlKOjo6eYmqmlmJiYno6Kh5SIfY2GhIOjloSBgYuGjoyQg4OToJaIkJyQk5CNkZyUl46KhoV4dIF/fHV4eYB6dHN5aH+GpHVpXmRrgXRniIx9U1hwXkt4c1NlU1FeTU1SWWZOTFZZZFhGU2lSUT9DTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS4tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWytITTlVQTSRj7KgpKespKejrKe1s7GrpbGoqri+wLyvp7mqpq+wycfI0cO8v765vr+8ybvBuLCvtLG6u7fAsrO7rLisorSnp6yytrmzp6i8ta62vrC9pqystautnKmvpKClraunnJ6qsqSzqJurp6mjqZ2kqaipvay0r66dqaSgrpybs6OVpJylpZ+km5upq6afm6qim5OcoaWemJepqZKYmpSQioKPhX6Ogn+HnY+Ffn2LhpCNj4R/k5qThZKhjJSRi5GakZWGiX5/cnt6fnxoeHx6dXBwfGeEeISIZGFnYnKFem1neF1dVkFXem1UYVBSWEtMTnF1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEmLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0FKN0dTYFUqPTlEVz4qj5SxmZ+gqaaloKqluLOzpqmxp624wb21r6K4raiosMLJyczBtr3Atbe/uci1w7WzsbWxvbe5vbWtuba/raGzp6ursLW4taufvbyps8G0vKCvs7Wqq5+tsKOcpaiqo56bpLCmsKCfq6mooamcpKihrbuorrCuoKujpK6en62ml5+boaOcoJyapKqjm5ulpZaXlZ+ilpuXpqyMnpGRkYuCioCAjoB7mZSMiHt+i4WOjYuKg5KYkYaToomSkoeQmY+TgIh8eWx+dnl4Y3t7cXBwcndogHNqg2dlZ2Btc41sYWlvYG9AW3hrVV5PUVFKSk1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTc4OzIoMDkvLDQvLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDFCaFkxM1M9ZV9ETDZLVmRPKjsyTlg9I5OZrJmgmKeko5+npLiwr6SvsKqruMK6s62fuK+rqLS6yMvIv7fCvrC0vbfEtsOxrrmxs8C0ur23qbm4vauktKipqrCuubGqm7u9pLDBtbahrra1pqensbOgnqSmp6GlmZ+sqKmeoKqvp6CmmKOpoLG5n6OxrqCroayknKanqZqam5+jlZ2dm56pppecoKiSmZSYnpOZlqGqkZqIjo+GfYd/go59fKCMjIh4gouEiYuLhYeSmo+IlZ6IkZWCjJeMkXyFe3NwfXF0dGB5eGlucHBuaH1xY3ttaWVjX2WFfl9ac2tyTEx+aFhaTlBMSkhQUlBJTlxfblNEV1pSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy86OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo+MFhWNSiXnaaZnZasoKChpKK4q7KltLSqqbnEtbOtn7etrq2wtcbIwbe/wrmxtLy2v7u+r6u9r7S/sLzCuKm7urenqLWpqKuwrbOwp5q+t6WtvLeyn7C3sKilp6+xm6GkoKSkoZebr6ahnqOor6GgoZOkpKK3sKGmsaqerKOvmJyqpamemJqepZObnZuep6uanZ2llpaYlJ2Ok5eiqKKQiIuPhXqEfoSLeo6Xio2GeIGHg4iLjYWNk5iNjpaYio+XfoaXi495gXpwcndvb3RfeXdkbGxraWiCbWVya2tlaFpic39eWmx2aVpIfV1bWE9PSkhIUlVGMjpfXmxQQ1dWWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0JnW0hUQ1RdaEUuOzFfVCwylqOhl5WdqZ6moaOhuKqvobu5pqy9xLOvrqK1r62tr7TExL2zv7q3sbO5uLq4uq6tv7O0uK+/wbisvbq0pqKzq6iqs6uusqOcwbalqbe3q56yu6mmpaivq5mip5ylppSYobKlmZ6kqqmcoaCUpZ+kuaikp62mnqWhqJOfqaKhoZmbnaCSm52XoKKrnJuZoZWTlZabjpOTo6ekj4iKjoZ5hHyFhXycjYmKhniAg4eHh5GFlZOSjJCVk42OlHuCl46Kd357bHVybWxzYnl1aGdpZ2VuhGdnaGRmaGpfZmJpZlplemNgUnNUW1tTTElHSU9TQCEral5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc4Yk0nMp6ko5KOpaacnp6epLWtqKq6t6isw8C3r6yhta6nr6+3wcC9ssG3sa6ytrW4t7Wsqryzr7KxvcC3rry8saWftqymprSpq66hoMOsqaextKystLqdqKqrsaWYnqqeqKWRmaatopmdpKqhm6Kdl6Cdp7amsKquoKGdnaGVoKafoqCZm5qckpqelaaeraKYl56VlI6VmIyPmJqnoJCHioqIeIV3goKCnIeLgol7foSIhoSQhJaVj4+QkZCRjZN7g5WNhnJ+fWd5cGtqbGd1c2tiZ2RjdH9hZGVmZWlqY2hvWV5YXWxkYU1oV1tgVklHSEtMUlg+OWBsaUdCVVNdW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssMEEqSksuLyorMzcyMig1NyQrNy43Mjc4NVx5TjI+SGlaTFpKVmJmQTozQGVHJTWbpKCRjK6gmpigl6W0sqOyvrehscW7ubCxorarq6+pub69vK3Asq+urravs7iyp6u5sa6utLa7trC4va2mnrWroKGxpauvn6XEobOlr7Kvt621na2vrK6imZ2nqqWflZuopqCZpKOpnJqfnJWcna2wprqoraKhmpqemZ+kmqWdlp6Ym5SaoZKolq2pm5SdnJOMlZmOlJSYp6eNjYqJjnuCdIKBipiFh3yJiISEioyIkoWTnJOSj5CRlo6Qf4CNjYNvgX9meW5oa2pncXJrXGhjYnJ/YGRnam1sZ2pnZGxcbG12cWFUYmhjZVpJRkxNT1hRUFVhZYFUQFZTWVVGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOktqW01bS1hkZEBBMUlkQyc0k6Kbj4+xnZuUoZqpsrCfucC2oLTBu725saW2r6mupbe5uLmtu6+tqqu3qrS5raWytbGuqbG3trGztbqoqZ+2qZ6fqqKqrZyqwpmvpa+xtrWsrJ6xra+qopudpKyonJWcp6SdmamjpZWaoJ2RnKOrqqm7n6akoJiamp6ij2uilZiccYOWnKSAdpGrqJ6WlqGRiZeZgJeKn494hZONg21pfneDcGyGioZ9hIqGb11kYGeEl4Zri5CUknV3i4R/g5B/ZoiAaHZpZlhdaXRuTlBqZGZxgmZeZGZubGleXV6JkIWIaE9LRDhFVGdeSkhQUFVVS0hTYG90ZUVbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOXEtbZmI+RzFPYjwrL42kmYeVsZudk6Ccqq2ro73Fr6m3wri9va2ntrCmq6S4tLO0sbmtqqestKawtaKnuLa1qKestrOutK2zoqmftKueoqScp6iarr2VqKewtLitraSorqqrpqKfnKGop5yXoaamnJunp52SnqCZkJ6oqqO1sKOio5yWmJiYpImhj5Kah6GIlJ6hf6V/p6yelJOdk4iDcniNjoOHoHWIjWmXiGZ9c3igb4iHg36MfH+hoJ+Zf3uHnnSIjnabimyIgoNtaWVke21yYlSGbWNtaZhxWGpwboZXXmlba2pbiHBteXKHaYeEWl5GTj5GXk1FUlZWUVBSV1RnXkxZS1JSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTlxMXGdfPUsxVWA3LyiMppeEnaydmZmdn6uqqKq/w6+yuby3wL+qpLexqqyms7Wur7O2q6mlsa2ltbObrLW2tKWnqLOxrbKor5+qobOpoKSkmqKknbC3laWmp7a9pqynqaqsp6aioJmgqKSZmaajpZmcpamWk6KclJOjpqagtqSjoKOYlZOYk5yIrpCYlImpi5iknIaxgKStnpSan5V5gtSof4eUwJvGeHexpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4FslrGrsHlobFixrm9labySvG5oem1xj9h+U2pjtrJ+gHGUdZqhqpBXT1hhT1ZORlRbWFFQU4tcV1tQQFxFUU5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV5nXD5MMVpcNDEhjqaTgaeqn5ednaWtsqmxwr2ytb+1uL/Cq6a0ra2pqK+0qq+2s6inpralp7ivnLKytaqlpKeyr66xpqqep6SypKKin5ecoJ+xrpWfo6C0uqKpqKGtrqWinZuaoqqgmJuooZ+YnaiokZynmpSeoqejoLCjnp+jlpaSmJKZhbBraoqNqn5nhZaHrWVxnp2VmqeWca6hpH53unxroY92sV9qtFulgGWckWBmgXpmf2l4aqllvnJnpox2sWp8sXh1kpRjbW2nblyEoEVpZ4eWRXWcYH1me6Ongllfi6tpgJJ4emqoOEqvW1dUbWNbTE9YX1xXVjtOiE9XVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWTMxG5KilYKsp6Wfo6SqsbettL2+sLfFsri6wqeosKyvqamxr6SxurCkpK+zo6m5qZ6zsrCjpaCqrbCsr6aon6OisZ2knZiVmJudr6iXnKKftLOhq5uhra2gnpqXoKOqnZmepKGcmaGnpJCdo5uYoZ+sn6WmoJqfoZWVkZaRmoa1m7V4hamZtZl3h7Obt3+TlperlX5rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iHCOhoF/iJCXeIOCi5eMg6CPhbB2d59xa2psfItPpVhIY2OZfmNopmB5cXVSk4ZeUKltY3F9hoBhnS9Som5bVGtnYExLXGNYXFpCPrB4V1hBI01oRkNEQUBBMTk+ODk6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDI7RiwwLjg0MCwuKC8yLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o4YVU1MByXoJSIs6amoq6pqLOsqru2wrC8wq24t8GqrK2vrqeus6qir7yqoae1raOrtaSlsrOoo6Gdp6qyqLCopp6goLCWoJqWlpeaoK+jm5qkqLWuoamPqaepmp2WmKClqZufnaOfnKCipaOVm56YmZ2iqpulmpyaoqCWk5GTk52E1ZOZuXGwwn/GhnzWlJy7fJuWppCNnIykeo2GooGlgnqseY+dVq97iX6farlauXeGg32mgpN8mHqqeY6dkHuxbo6EdJC7hW6VUK+nxYpRoHpjYKpic3KGbJeHX1O1tMiFgIl8Y6QzQp11XVBqaGRQQFhmWmRhSkhNa0paU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0tcUF9mVDdHOmFQNzIlnKKTmbGoqKWzqqW0p6S8t8GxusCytrS8s7ansrGjsbOmoK+1qJuouq6ir7GgsrSxoaSenqipsKm0qaWcnp6sl5mZl5eWmKKsnpuXqa2wqKOfjqyip5admJyhpqKYoqGjoZqioqebnqCelZmapaCcp5Wbm5+gmJCSlZCdiLJuaLVxq4hwjqZytHRztnubmKSNj5yNon6Pn6R+sHWDkdLRdVuufIV/pG+bqqZrhoV9rX2XmY97sXOTnY94s2WWdIWebp5mlFLJi1rCXJ95Yl+tX3ZzhmKXiF5Zyp1vv4B1TUu1U1XGZFRRamNmWEFPal9saVBVRkk4PVdSW1ZZSUM/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUU+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHJoOSdXaVxCTlRfZVA1Rz1hTTYyLqKdkaWvrKSqu6ymtaWntru8sru/uLe1u7u0prW0orKyo6Csr6SYprqupLGwnLS4qqClnaGqpbKorKqlmp2bqZ+WlZiZkpOjqqGXk6ersKWilpKsn6WSlKGcpKeglZunp6Kao5+tmqCenpCVm6GdnKWVnZWZop6VmZaSm4Wse3eodqOPi4epb62Kg6eEmpmiipKZi6J+kpeHroV/grNccrNSrn2CgqR/cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52d4dnmIhqXa93lZ+PeGw1eciusl9CVG9dZ2BFUGxgcW1WVU0uZWJoU1lQO0JEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6NzegnZSguLCYs8GsqLKnqrK6uLS5vrm4s7a9tqa4tKC1raCgqauflae2rKiwsauttKSbqZ+gqKK1p6aqpJmelaWilJScmpKWo6ablJCnra+loZWYqZ+ij5GimqmmoZWapqmenaSerJ2gnaCNlJ6bnqGYmZyWl6GglJiRpp2GqX19pXmhj5CDqnCtjIGmhpagooqXl4ijgZCHlKp7f4udeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClG2TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZU9KQ6FcWk10XWJmTVphX3J0X0pVNUqaklhIRT1IRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVV9iTDdGSV9DMT03opyamr+smLTCrqutqKa0sLixtr+5urOxuL2qu7WgsaWfpqennpOqsamvqrWtqq+hmKGgpqSkuqKjrKGXm5GjoJWVn5uVmaCgkI6MqbCvpp2Xmqimn42SpJioq6iVmKmon5+go62joJ2hjZSgmJ+gkpyXnJWdoZWWj6ubj65ucrR0qYx3iqZztHl0tIGTpaOSnIyJpIeOdbhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6YhnBcr1Y8nHdmVG9uLlunT2JSa2VibFpiXGBwfGNTWVE+Pm1vMkJCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VfYUw1Rk1eOTFBOKWam527opyywK6tq6unt6m4r7XBtb2xr7q5rMG2qquhnaekop2Sq6qntaOyqK6qoZecqKClq7mdo62clpmQpaOWjp6hnJmen5GTlau2r6eZlJusqZeMlKaapa2jkpersqSgnqirsJmhoo+YoZegm5abl6GTnKmdlJCqmYfTk5q7dLHEgMOGfdWWm7h5iZKZjJeJjKeHeaK2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+ifox0h6t9vm5zvHSyg3V4gIptmohxbY2kdL1dd31bYXm8alpWW2l5XmlhZGZibXlvWVtZQ0FAcj9DRis1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy02QDmmmZ6ivKKXscKwramqrLGnuK+3xbG7sq68sK7Bsqylo5+koZybkKqkqrKktaetpJ+WmqqZpqy5naOumZWhkKagk42co56YnpqQlpOvubCrlZejp6eUkJalnaStnpGgqKugm5+ppLKeoqSNpqGUoZqbl5akmI+woJKVqZ+FkJm1gJGRjbiVeIKTm7V3bmxvc255j4SOiXOewbu8mXqBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycXe2jF5/eX2IZ4N5bXlii6xwdIV/WFunakRkWVRmX2NdY1FnZ3FtdUJNUE1EO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PjcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NhVzgqT11dPSs7VlYnPTo8pp2gob+mlrPCtKuqqKyrqbuuscavtbSuuKe1ua2po6Onn6CdmJOspK2qprWoqJ+blqCjnqylvqehqpiVnJGim5KPoaihk56XkpiUsrW2rJidpKSii5KSppylq5yWqaWmnJmgqKemo6igkayel6Oel5aYnZ6PsKmTnKeijmp+aZyneIlzfpuOdXplh3u+v8C6bpKCcZWFX3JqWl2aiWFkh46Va2B/lWNtnHZilGuAmpWUZV5fY3GbiWhyjHyGlGZqfnF0eX59Ylt4dIFoUFxug3x7impYbHmBcklKb4VwTnNNRVdcZmFMW1dmY15PWm12anJST0RFTTxISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPltPJz8yPqifqKHBpJq0urajrKaup6i1sqzIrLCzrLakvrKzpqCkqp2jm5mZrKeupKW1qqSbmJWim6atqb+oqaaWlJuWoJqTmKWpp5GekI+YnLCyvqybp52noomTkaqbqKSbm6ygpJqaoqesop+poZmvmpWmn5aUnZ+dl7GlmaKomZyRnpyjpJmno5qdmpqakJaCaG59cXaRl5SRg4m0qY2FmJWOioyYloeTlYqDk5OQiI2RlJmTmZeaoKGam5Sfm42CeqSFbGl7kH2AdYmLgnKCeHl2doqAe4lqc4F0g3Vkd312a3B6bWBjW29nTFhZZWpfV1lwem9uZlNPRlI5T1pOUk8oKztKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOhv6KksbG3oKmms6elsLWqyautsqa1psCotKGepaacpZWVoKunrKOjt6ygmZaWoJetqqbBn6yklpKcl56YlJSinp6jqJKQmainssOvmqudqp6Pl5apnqucnaCtmKGbnKKlr6ahpKeerJiXpp2ZmqGenpywoZ2ip5WYk5mUoKKWo5+YoY6WlIuKjY+XrY97lZuCkYCJqaiFgJiWioSOn4h7g5CGhZqRh4aJlY6bl46QmJ6jlpmSkJyNfo1lobOuhImEd3uQin13eXpvZ3mQgYCJa3WBeYhyaXN/eXWDh4JrdGN4Zl9oZGNkZmpYa3twamtcU0xQRF9VRkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXV1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAtKC5r76sq62xsqCqprKtoqyzsMawq62ks6+8pLScoKeioZ2Zl6imqaakpbO1npWUnpmZr6auvqCso5GRnpqZlJKWoZyXqZ2FnamsorTHs5+ppKqWlpiap56pnKCkq5Sen56gqq6opqOroaybn6CgmKSenJ+csKSZn6iTmJedkqWamKmfm5dmg5J8ZX6Pmo9jeIxsaGp6kKOra2SZl35nhYplZWloeo2hjmtojJeRondraouYop+Yc2xueoSMhnlYZV2Fgl5si4qCdltoc3d3kYCHgm54gnh/c215hHN3iIiOg3tphVhdanNkXXOIaWt8cW1jXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS42Wk82KUVZL0RPMVlCOz8uPaWfury5r6uzsKulqK2usKeurbC9saqopa2wsJ+tmKCknqKamqesnKyjpqips66elaOQoq+mtrmlrqOPjpqhmZOSm6CYmaaWe6Wsoqizw7eloqevn56VnqOfpJykqqiSnqGeoKqvqqqjqp+nm6afp6CslqGcpbGkl5yrlqGem5Oll56rmZ5+voOIcrRyhZ6FrWh3ucS4cZKho3ummJhzqoJ8y8DAu3GKo4eCnnyWmIiewL2Clp2djZzBwHuBepGMmsK/fWulsm+MgW/Ken+bd5GDjoB2eYF/eXF7gIZweIWMk3lsdpFiZV54ZF9lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2FfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWo7jDtLCvv6mplKOvqbCvraayta+qpqelsaufq5iboqCcm6qnop2roqWppaS0pJ2jk6aurLi0p6+ikpGZnaWSkaChl5ugnYemqqSrrb+/saGprqmXkp+eopmipKqjk6Chnp2srqispqOipaCkpZytqJGkm6mtqpyeqp2topaXpZaho5idf86UeXqlgXqWlptfrY9djqiAoKF8p5WadKuDgK9eZIypeqiHhZ90l5KIs2OCq4agjY2zaoSudHyWh7hhgq1Zo81ukHV723t/mXF+iJJ1f2V7iHZ2bH2Hbn2FkJF+bIGNX3Bqb2ZgX3hkXHFoamNmYFJUU1deSk9DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrcLAwLW0sLeYnpGjqqmttKumsq2trKSsprCqoKebmqaYnKKvn6GfqKejpqGfsKybnpamrq2wq6isoJSSm5+lk4+epZedqKOerqSrsKi/xrOoqbGulpKenKKXoaqqn5Whnp2cra6nqqibpqWjoaqSrLOWpaKqqp6kqKahsaKTmqeaoJqUlJGXoHCFjJh1hKiHcbB8nXKsfaCfgaWPnnergn2tf5xyrX6rh4afdpiSe3yXfqqIoYyRi5x+q3uIko6ggHqtVpzEeo9vksF9gZVtdXCMbWZ3ZYZvYXducm6IipGPg22QjmRuc3VvYGZtZF9vaGpuZmNXU1xgWlJSQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/UxseytJ+do46joqKtrravqbGnqauorqurpqKjnZqjlp+mq5+ipqCoqKKfnrCsmJuXqKivrKinqZ6XlZqkopKUoa2bnaejrqyjrLWpuc2yraaurJaVnJ2imZ+urJ2WoZmenqmwqKmomqqoo6Krm6+xoqisr6aap6yqqrKjk5ejpZqUkYSkaqR1iXqpdXqycYKliZiMcIefmoekX2BSq4R/roKbda6Cp4aGn3qZl4V7ZoCjiaSZhoGjfal/gZSGrl58qFWdopKBeqOfgHvDr8WMc6+0s7lxYqmvwnVojIyXjoFsmZFubXh3d25rZmRkcXBme2ljXVZfaVhYVExMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLWwr6qto6inqqurqaSmoJuln52mp6aknayaoquhpJ+vop6bk6qktrCuoKmbnZeVp6SRm6Gon6CmnLCmo6ixrLbIsrWprKqVkZydopmgpbSdmqGUnJ+mqquirZmrp6GhqqKzraKqs7KinKupr6+3pJSWo6eYm5J8qmyehId1q3l8sG6CpIuIn5aVnpWB0re0uMmAgbJeX5Spg6SHh6B6mJWZeKrJc5mjlKipkJOajH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI6PnJJ7cJaRfW96dHx6bVtlanJxZoFpXmFYY21cXllJTExLRURCQj1BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTBxrmtqbOurKWinbK5rKqhppuopqusqaagpqWYqqOfrqydpqGsmp+ppZ2ntaCjmJOoq7ayrJumnKCWkaatkZmcp6OgqqauoaOnqbC0wrGyqq2olImYnaWboqSupZehlZmcpaWqmq6crKalnqyjt6ygsrmwnpyvp7O0tKaVmKikm6COgp1OeJqBf596hKN8gqSEhqaenJ6UhLh7fHm5gn/MxsO2d5uhkIuffpqWl4l2n5eKpJikqH6whZyEnoSsfZmUYaVso3CPhZCBfZeEcqxgpHJxgJpgvH1SVXWOkaOWe3ySj4hzenKEfXBcbG53cmqBblpjX2huYmRdTExRU0FIR0ZJOTlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Gss7Smn6GVpq+urqmmnaammqOnobKuoqmnsqCZqKSUorWjpJaXoqq1uaSco52jk5CisZmenKaloaKvrZ2kqKK1scOxraqtqpGHkZynnaOknKWXnpiZmaWjqJmtoaykpZivpbusobe3rp6etbK5srSomZ6woqSeho/RtcO3eYeOhZGTj4CmeJSid4ugkoWlgotxq4aFtG5yaZmjnJWJn3yXmYaHkHOugqWboo2mi5OciJSQmm1wslylc5N6nGyZf3uZfm6pYaJxcX+fYnOyuGh3j5OkmH2Ki5GKd3x4jYFsaHdpeHNuf3RcZGRtbWVoYEpaV1g8SEY/VDNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpaWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krr+/vLu1npeopK22oaKZlaOpp66pq5mloZ+loaC1p6Kpp7CjlKujjqStpJ+QmpqqtLSknaacqZKUl66goJ6mpJynnLWaoKqjtavCr6mrqaKMhI+coqCmo5WZmpyYm5imo6aYqqasoaSbraa9rJW+sK2fo7Czuqy1qJypsqWpmHqnkX18sHeKgKSliJxtsm+gh617oY+DqJWagKyJha6FoJSooaKXhZ+AmZWAe5J+q4CdmpaLq3idoI+Ik5J/ea9do4F8pqdknoB8l3Rrrl2la3GFmV1gW4ygbZSQpZiBk4yVinl5gZZ+amx9Yn10bX95X2ZlcG5nZ2hCWV9bPUpTMlQ4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaV1NQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZWVVFIRklKIygovJKahKnGw7bBtJ+araCuuKWjjpuko6Cvrqmfo56drZieuaCiq6CvqpqtoJCqqaWWiZqQrrCspqCom62YmY+toqGdpaGZpJytmJ+opbaov66kqaOfjICOm5ufpp6SlJmalJmZpKOjmaeqq6KjnqmovqSXw6yro6Kss7qsr6iitLCqq5l2r36QipyFh3y6rYmYZLCMZZWtfaGPg6eWm4GtioSwhaaZpKGikISgW2xqgbNgf617e4KAsmxnbpmXi4ixW320W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqeaiZaPlJV6eI2bfGNzfGGDeHN/fGBpZnBtZmVlT1VjXEFUXj1IKD45PTQhIS0kHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE5KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vbu0wbOjnK2mpbapoIuZoJ+ds7GonqKfnbSYoLOoqquesK2eq5qUrqiijoibjq+sqaejqJmvk5qPqZqhnqWemaOipZmfo6myqLyvpaienY58i5qWoaCZkJGam5GYlqieoJinrKakpKKkqbueoManpamiq7S2ra+ooL2vrq6XgamSo66Om4CGpJeYkIGAuMO6g46dk4SnmJ2CrIqCr4mmm5qlqpF+1b3CqmKjv718fqOCg9e6t7WFk5KCnr2+hGqjgW+rhG6df3qysceDa6uwvax4d6K+u3SAlY2lm46Zj5WbeICQmXlifHpjjGd4gXtga2VramJQYltTaVxAVGBCTCk8OjUvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0sb+6sr2zop2upqWzpp2MmKW/qbawp6G/pqaxm56xnLmon62upaeUk6+sl4yDmpGupqOsoqWcqqCYi6OTpp6nm5qgqKKZnqCsrKm4raejmpeTe4eZkqabk4+RmJiPl5OomZ+XqKifqaahoqu7nqnFo6Cvo6uztauxq6K9qbCwm3R2qqS2hWWJn29nrI+Kj21vd6SQmqCBdbCalnCQjXKWp6ObmK6kcm1tbGWKeG5tgplxgHppcGlmiZaVmHFoaYWGZ3CGZF2KY2lvWV1nfnimYGJyj5JvZmSAjZOOoZeWl4+UnHyGjpR0ZYZ3Z4xqeH54ZGxjZmxiS2RYSmtZOlBkRFAnSjorIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKq7urKzqqmirp6ks6qYkr2xw8i+tKmev6uso6Cmq5+6o6StrK2ljZatqpCMhZWXrZ+lqqKfpKSgkYulkqeZqZmWo6qglpylpqevuaqrmpuTknuEl46ml46RkJiUjZeUppOel6eimrCmnaKsuaCwwqiks6assbKrr62puqWwuZeLoamltpyJlqGXhqmakJSdk6qzmZujrKGzl6OhnqGinKCkoZWrpoySk4yHkpyclJCZk5iQjpWEf6Sal5WOi5OSio+GhH5ni4B0g3Z0h4xxp218lZKUk4GBj4+PjpyToJSWlJ+BhpOLcGeOdm6Jd3V8eWlrZGRvY1VgWUBpWkdiYE5YK0U9KyYhNjQwLx8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKWWqamltriurqKwpa2foLaxkI6qxLvFurepoaWdm6WdsKijtqedqbWmp5GYrKOLiImPnKeWrKSimqien5OVo5eomqmZlKahpJCap5mhtLmnqpiakIx7gZSMoZSKlJGVkI+Sl6SOnpmonpu1o52mrLeor8Kuo7emr6+wraqrtbuisb6akqakprWikZ2mno2pn42Sn6OssJuhpLKpsJmloZ2kq56enZyXq5ySmaKblJCWqpmNmJiWkJaekYegnZWUhZKMkI2Vi4F+Zo2HdYd2eYiEdJxqh5GVlZKKfYyWkpKXkqCRmpSeg4aWhXhxlHJ4iX5xe35pbmRfcGlgW19ZbWJQYGRPWTlHRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlaSno7G0rK6jqaetoKi1qpCPnKOyu66qq6GimXqcorCkpbGplpu4pqOUmKmcjoaKiZuikK6fpJeooKGSl5mbrouqlo+omaiMmKiOnri2o6WYm42IeYGTjJuTipWRlJCNkZahi52dp52euKN/g6+1orCvdKS+o7KgeHqhrLO9lneupaCKgKp+ZFthdp+OpJ2Dl35uk7Oco6ivq6Nln6CUdHqalnCAmKiXbH6iqIplnaWbkJeYlouSm5CEnZqQlIOSh46OkomFd2uQiHaHcXyGgYBhaYmLlZOMW3aVkWdoj41yeaKWl2V3l4aAdpdogomCbnl+anBlX3Zva2toW2VjYWFvUlo9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHRklLTFRVVVldYGhnZ1hRSTxERzw5VlJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqaWpraOnraWSlqq0rrGlmammqpdzi5yvn6irp5OWuJ+gj5yknpB+iIibno2smqSVqKKejpeRnoV0ro+IpZqokZajiJu5s6egmZmLiXV2k42Wk4qTkZCUjI+Tn42anqWYm7KWgIybtZ20jJKPvaehfqeieqSwuYGOjqefhIuFj7Cpr4yJlqKZeYGLrIacnaKoqqiIlYeZd6WbeoebgZemgoF7nLJ6ioafl5mUmJaBkJaWhJmaY3mHkISNj5KLg25xkIh6gXGAgYZ/hnSHhZaSeJZok3SgmnR8mYKdmoWYfZGJgYKYaYyMhGp4enBwZ2R4bmlsaltkaWllcltdSFRMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaGZZUUg5REs8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZStxryvoJWlqLSdj4Ocq5unoqCNkL6emY2fmqGQfIWOmZeIrJ2jlqGhko6UiYaAkaiOh6Kco5OWnYaeubGnnZqTj4VwdZCJlJCKlI+Pm4uOkZ6RlZ6jlZ2siJ+0ibSarovKiKuvibeFjbCDsa+EqY2nmI2dfKiPcnt3m46mlmiVpHm0i5+epqiTmcKCf6uImKFxnoCapX2XhZWxgaF8oJOfj5iXgI6Tm4mYkot8hZOGjZSTiYNtc5KGgHtyhoGEfYV1hoKYgY/FZoCph4+iap2BnpeAmYCKi4OImG+NkoRnd3R7dmdodXBnaGteYm5sZmtYZ0dcUUwyRTQ2TWFjNyY0PERHRDo2MzY1ODs4Pj08PkJMP05JSktDUFpdXFdiXmpsXFFFPUtNQEpkWF1jZ2hnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5saqrp5qUn6KkqqKVpKm2oq9/oKacpZ6diZS8mZONoJGdj3mDlpaRiKuZnJuaooWPjHebnI6gkYiepJuVmJeGorispZmbjY1/Ym2Qi5OQjY+MjJeLj5GfjpKeoJmhqH6hp4etnaCWrpCgnp2RhoKgjayvh6SNqpqMmn6idYCYk2uBq3RNq3iHjZ2Sm6iogqqrfoShe3qnaZ5/kmxnl4aXtYiefW1gY1iDl3+Me2Rni3OZfXmWa118l25fU3GFXGBseYNgWWWCfoSBmHGnqmuDo25ypXCfgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbXRxampuXmpvbGtoV2hOXVhFOUA0R0ReazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpbXV9XXl9idmBNRTpNT01UYlxbZmdpaWJiZGFkZGJhYmBiZGNhYmlrZGJkZGdkYmdlYWNomJadoLmgqqOmrJGhtryrr6KZl5+hpayrn5yttKKnkaCfn6abmY2YtJmQi56MlYt1gZSRjIqmlpaYn55/k4WGrKOHnJGKmKmYmZqRh6WwpqKVmYiJgGluiIeLjo6Ji4yRi4+RoYyTnZ+boqV/k4GPo6GUoHeclpCng6KogIaqrYWleYt9hJp9onBykoeWe56MeW2Hm4uZkZypm4+HnXyConN2pmaefnekXph7fZJzom6Yt7S6c5KHgYC2qGSBxrh7cJW2jHGAm6RjdKyrYH1qnbN+bn2Hg4+Ci5dxgKNsc6RznoJ9o16cmbOWb3uXnrN0cluesoJpYm9zdXFoblhrbHJyZFxoXWFLRD1ENVFBWnEyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWVhgYHxkSUM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi2ra6gmqKco6Okq5uasayrkpegmKCkmZqUnqubi4iReIuFcICWjYmPoZCTlJ2XfZGKjqigh5iPipKik5uajIqop6Sej5aHhH5re4Z+fY+Ng4uPj4mOk5+ClpygnaCfi4l3nJiijaByoouIqYicp5GYqat/rox9eqCZeaOTeIBzl4iMnH2Wn4abjpmcp4ejZKF9iZaQm4xsnmiajW6amXp/iqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z2iYqAnWiadYeTkpiOf55tmZBqpplcqH53u2p9qVqOhF2zZ1xucXh3a2lbcGp5eGFeZFZhQVBFTzdWQlJuNEpaWV5OWkRAMTUxOzs3SD86Q0dVP1hSWF0+RGJdVmBRYWN9akVCOU5bXllkZlhmZ21tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCsnaabm6efnayZnbCnq52Xopmhn5mWlqCjmYaJjWmIgHF7l4iLlpeEkpWYj3qKhJajnImVkIaLnZGcm4iPqKKfmoyRioCAaYGGeX+WjHuIjY6HjpWaf5OhnqCik5hyaJ+KoI+McJKMgqmImaCkqqGofbCtpKK4l3ajs6Kjf4iUeJ16qpp+oo+enJiJmHKhfYWNsLV9a5qRoXh+mLSjo6uohJh7mnycmn5zqlpdb3uXi3ieYkx/e3uFZHqYQk2fWaJqcnyOboGKhJl1m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B9fW5mX2todntiY19QXVZcVFZAWUVRZ0VSVlxhWF9JRD1COEBBOklFOExFWEFWUVpWREZhXFpgS2BtfXJFQzxVXmJaZWpWaGhtb2JmZl5hYFxdXmBoYl9lY3ZsXmVnZmxkZWxoaGtplJ2Bsa6ZhFNfoae0urOzqZqii5upnJynkqCro6Cnj56dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGTlohygImSoJtykpCBiJmUn5qEjqibmZWLiop8g2yEhXGBoYx4hY2Ih5GXlHySo6Ceo4iuhn21hI+enXumlnqpgpaekYuinX2naHdtfplzoHNxfJ2FmG+Tgq59o4Onn5uBpHBeqWh1o2NvpWGc0498epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKnvH93g21/v6aqtF6cb35yl2+Bc6JyXaNndKZgaKZsmtOYeoKbbnd5l2ubeXaXcmyppWdfZHlwf4NrZ2ZjbnZ3Zl9hUVplUFFhSFdJVF9XU1tkaltlUUZDS0xKS0JKRDhQQFBNWFNYT1JRYGVlaVJkeHl3SkZFY11lWmhqU2loam9jamZgY19cXV1faGJhaGV7ZF5kZ2RrZGpsZmhsaJibf7CsVFxLfqmvsrWws6OcmISXpqCgo4ykp5+XqImZl5iTmZORoJeNiIV7cH2EaH2PgpOagXeRjo6JcH+Gj5OSbJiUfImRkqOVg46qmpOSi4WJeYN2h4BugZ6Gd4CShYeYoZZ5k6KjmqCJs6Gitot6rKekrqVwqYCbkYaBnJJ8pICimYaYcZ6Eoq2uiZeLgIykjZaDrqKUdrW2tcmhdJSLgp5hnZepbXmVh5+adaGHd6B9kJaKgW9MZqOScJqIc6V7eXRig4JsfqBscmRgnHJ/dJdqe2mztbTGpnOYfnqdapuaq3SCmm1zd5dpmXl0mHFQRH2zXmp1aniHZmtnYnR0cG1WXVNYZ09SaElVTFhSVl1na25WZ1dNSkFKTUpISk5BUUpQZGNpbWV0cnN+eHtudYl7e1RRTmxeaFtraVJqaGlsZ21mY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinImvp4VmP5Shsqyvr7Wioo9/lqeioaOLpKacm6WBmpeWjZeQj5uSjYiDeWp5hmWDjH6Wn3l1j4iMgWmEhZKDjIWdjXqMipWlkoKXqZeMkYuAiXl/fIt5cI+ghnmBlIaIlp+Uf5Slp5yWloRnbnicbKJkfHGleJyYcGingpiMfKV6oJaDlnKfdoCJlJWPuW6QiqJifZmilolucmmqa3WgbW+mYJtpi5BploealXWigH2aX4uFjHVviGJooWWef2mbdXBkZ4iCbnOiWl9bZKFuXYmMb3t/c3JkpW54omRmp2iYcouYbqFvUoiPbqBeZKdUi11UmG1tcmpxgW1waGt4c2tvUVhWVWVZU21JWE9cSFhpaHNqWWtWUVJFVlxMWFJhVWhqXnd1enxwfHxygnt/c3aNgIN2XlFzYWdicGdQamhoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqrGxpp+Lf5aqnJ2ki6GhmaGhgJWYk42aj4uXkI2Ke4ZxgIhoi4p8l5pzdIl9kHtlg4eViomWmYJ8iIaWppCBoquQhZCKgYp9f3+Oc2mPpYR9hZOMh5ifjYeSqqaeiaZ4lpx+pYmWjLKZnpGDr5efpXmXiHmpdKWPhJpupaKMkoSMg7xufaWvgoaGh5SXnaB9pnpxqJSglmeefm+sY5aKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm5un56RlWJ/q4uqd4B/jaefd599haSVnaBpmod1q2aerYy2c3a+jKSTWYOmjathdXFzb3t0cWJqfm5obFNWWlVgYFxqTFxSXUlebG12YFtxWVtgWmdzZW5vcWNxdGB3en55cnmDcoN+gXt7jIGCgHZieGRjbnNkUmxnaG9tcmlmaWFfXlxhamJsbHpvXFxiaWFtaXdtZ2xuYpWmqp2BgJ6klqqqnqinrqOZiIGWqpmdo4mapJyonYSLmo+FnJGFko2LjXSFeoiDb42EfZeTc3WGcpGDbX+LkoaGlI99e4KFl6WNf6WljYCNiYSUdYKHkm9si6iAgouTjYicnomMk6qjoJCAdJSXiH6BeZSvpH+CnHGPhnmSjISAe3KnjHF9fXqXlpuEjXh7fn6IlJWTineRmaChhHt9iWuMhVt5eXN5cGlufpKJcX90gY+Uk3GFg4JljX9fgYCMeHZ0lHVve29uiW6Ehl93aXiOZoKCho6qnH50fZdqiYhvf3V8hHVtbGaMc3d7l3eEW2pYeY9obndxcG93eG9dbIZtaWdWWl9XXGRrZFVhVV5RX3B3eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV6gXV/gH+BeYuFgn17bX9sZHluXlduZ2h1a3hqaWlkXGBaY2llbHB1blpbYmtka2t5bWhsb2GOlbqpp4uhopumpJmknauioIODlqqRnaCImaaaqJiDgZuLfpaUh46KiI1ygnyPfX6PhHqXjnRyhHCVhXt9kouGhpCFeH6AhpijjHunoYuFj4+ElYKGjpd3cYSqhY2RnI+Hnp6Hi5qooKCrg4mOlZt/foqXraiQk6eQeHGek4N7k29+qYVwfZVxam98gZ+Lf5KOjGhtXYOMjJycn45zlYuIcXRrgnZ0gFlyboaQgX1+i2ldaWN6hYOIgF9peHucfIONg3aBh4NpeYyIa2Jxc4N3X3KNgomQp5WGZo2Pg253i4NvhIx4bmRmY3mCepVaXGlmbnZbenh3dG1zcoJmXG2Ka2tiWlldWVhrcVteYFleXWZzfXtzb3Rjamppe3xyend0ZG10aGx7fnV6fHt5eX+Af3CGioR7fXN+eXJ/aFRccWlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VubGdyeW9oam1gjIyrsaGQo6Gan56Ynpmpo6F9gparjJ6Uh5qhkKSUf3uYhHySmYiIhoaKcn2Ai3aFi4GElopyb4BymIaEfpKDhIaKgXqAhIuan4+CpqCHeI2XiJWLi5yXhYN6rIGQl5mTiZ6dh4ihq5+ioqOLiJObnaOZlqqiqKehk5yJmJB8eY+OhKh+f5KRkpOcsaWalJ2QjrKTmISmjIyWnKCJkZuCiZKKa3yOdndlgoaQinyJnYSHi4+HiICFhJB3fHt1m6OJiIufi4aVf36NgoF2cXSGhX94iYeKkaaRhIaOiIOMkIt7homHjoB1a4GDe3mZaXJoYHSKcH16dnVvd3SBXV1vh2huX19aW1xSZ3FVY1tbYWxodHt8cm5wZGppaH97bXh+cGhvb2xmgHtygYB3f31/hHttg4yGfHp4fH56g3hOZHZqc25xe2VrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2InrqflqKhmJWZmJSYpKCde3+YqY2ejIWfnIqdlnx4lIJ7jpmJhoOEhm14gYBygId+iJOEbWt+epeHhIOQfoCGhIZ9h4ONm52RhqmegnGKj4WSkYuckX2NeqmDjJGXlY6bloaGm6agopqdhoOSmpmYkJqmoKaenpCWgZKLd32IjoSle3yPkJCFmKqgnJOcj42qjpKAno2JlJqfg46XfoaOgm94hnF1YX6Ej4Z0i5eAgo6ChoR+hYSUbnl2dZSjjI6Gm4WFjnWAi319c3N8iYR7eYyPhJOnj4aEj4KDiomJdYWGh4l7bmp9f3ttaGtsZ155fmd8e3Z0dXV6d1xgcH1tdGBjWlteUWZtU2VaXWFqaXV5fnBsbGNqameAf2tyf2tqc254boR5boaAdoKAfYV2cYKNiH57enyAe4KLYGl7a3VoaYNlamNgaVtjdWhvYnVta1RicXllb3l6cmVqbW2Lip+4mqGkn5ORlpeLmp+enXt3nKWQm4mGpJSKmJl4eY2FfImRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hoSHfI+Aj5ubkIemnH9wi4qLkoagoYqFjHynj4aOkpeTlpJ3jaOgoZ2Wmn+BkJmYk4yaoqGjmpiRm36OhXqBhI6HoH9+jIyOfJekoKCSmZCPpo2QgZuRiZOXnH6SkX2GjYB1dIFwdmB9gI6GcYqVfIeKcYx+goWFjmh4cnmNmZKQgJd+iItzgoh9fXJ6fIyFe3qRjYOWpZOLhZF8hYaHhXWBgoWGeWRxen54eXBsaWZefXNofHV1c3xyf2peYHR2cHdkY1hdXlJqaFRkWF5gZ2p2eIFxZmtjbGdlf4BqbX1nbXBqfXeGemuLgXKBgX2BdHaCjYZ/fHqAgX1/j2lyg250aWKIaWxiX3FVdG9tbmB4aGxXanR2YnV6e3Fia295iY2fs5KlpZ2OkJiPhp2gmpx8daOfjZd/jKGKiJqWeHuGh36DiX6IgoF/cH56dHWChX6JkHdnY32Gl4uCio14fYCNg3mWgJWXlY2Vn5p9b4uBkJOGpZuHjImDpZODkYqWl5KRdpGdoaGYlJh6f46Xlo6WmpyknZmTlJt6kIaEeYWWjZ19gYqNi3KXop6gkpiOj6KMjIOXmIOTlpp/l4x7iIyAdnF9bXpjgHyLhXCGk3+PgWuHgoF/iYRmdm99iJOZjn6UeIyJfYCIfXxygHmKhnqEkYqLmKKWgYOMd4iEgoF2e4CHg3Rfd3d8c313ZmtjYH5panZzdHV9cXxjY2FzbnVybWFZX11aa2RSYldfYGhrdXmGcGJqY2xmaHyDa2h0aGxvaH98gXhtj4ZxgIKCf3R8g4yBgH56goN+fJBtdYl0dG1limxqYmN1VoNpcG5geGdsYWp2cGZ5e3lxX3FshYWQna6Yp6iejo2Xh4Wfk5aYfXaom4mYeZaci4yYj3h7gIt9fIN7gIKBeHN4eXN9gIN/iIqAZF59i5WIfoWIdH1+in9+mISWk5aMo6CXfnGHe5OQiqaPjI6Kkp+QgpCPlJeRioGPmKCakpCSdICNkZOJnJ2eppiYjpWWdI6Pi22GmI+ZeoeIkIlvl52aopOUioyfjIaCkpx/k5KWh5mIe4mJgXlxeWp1bHt/i35thZGCk3dvgoN9fouAZXNqfYGXmIV/jnSRiYR6iH52eIF+h4F9g42FjZSkkHmFgnSJh31/cnR/hYFsYHp0eXB8b2FuYmR7YW5vdnN3d3NzYXZgb2t1bm9dW15dXWpdT11XYmFobXN6iWtfaWVqY2h3iG1mbGhpbGeAfHp3b4+Hc4CDhH10gYaJeoN9eoGEfX2OcnmLeXhubIdraF9pcmOHaHFvZXZnbWxhemhrfHt4cGF3bYuBmZqqoaSpnoqKkYaKnoqVl312rJeMlnyek5GWlIh2fXuKfHuAdnd/gG90c3pvhX2BgIl+fGFcfo+RhoCEhHN6gIZ6j5GHkZGbkqSak4F9gHyNiZGjiI2KjZeZjIWRmJOVjomJjJOdk5CMjW6EkI6RiJ6ZoaCXlomXkW+KmoVnhpmOlHqJhZCKcJaak6GSkoiLmYyCgJGefZKPk4yaj3uKhIZzc3VrcW51fIt0boaQjZFxdIB8gYKIfGVxbXp+m5R+hYl0kYuBdIl6b4F/goh9hYyKhY2WqI17iH1+i4V3fnBufoOBYmd3c3RuemJdb2BqdF5wanp4eGxycGV5XW1sc21zWFpdX2FqWk9XV2RjZnFxf4hlXWloZ2JncY1uZGlnZGlogHp3dW+OhHOBgYN7dYKIhXiFfHeDhXqAind/i3t7cnmDamtfcGhzf2txbm1xZ29rZXtibn95dnBrdneJf6OYoqihp5uIjIqBj5yGk5x0gKmUkY2GoIyVk5B/c3t2hHd4f3Jze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYB/f6CGj4qRnJegk5Z3iX6AjIecnYmPhpKXlYOIlJmPlouLjY6NnYqOkIRuiYuPkYqclqCbmJWGmIhrhaSEZ4edipF+i4SLgXeTmJGdkZCIiZWOf36PmHyRjZCOmpJ9i4CCbnZva21vcHuGaXODjpeKcXeAdIKIgnlndG92gpuPfYqFepWSeneKdXGKfIeNe4uGhImPnKOIfIR2gYuAeHhuan+AflxxcnFvb3haXW9gb2peb2l8enBtbWptd2Bwb2pxbVlYYGFhbVdRU1llZmJ1cISCYl1rbWRjZmuSbWBmZl9na4F1cXJwi4B0f4KAeHaAi4B5hn93h4Z2g4V8hoyAe3aKf2pxYnxihXxvcGx0amhubHZ3X3F+eXt0dXN/gn6llZqtn6eWhYyDfpaUg4+edImfk5KFipqMlY2LenJ3dIJvcoVzcXWIbG5sdW2Id4N9f21uVVGBq5SHgnmAdnKCeYKggpGBkpGXm5GZd5B6gouRo5qTjoiVmJGDhpaZi5OLiI+PiJ6FkIp8c4uFiI+InJmem5aUgJR/aYadiWiHoIiShJGDiXGDkZePmo2PjIuPjXd7kpB7joyNkpeNfIh8gGt2aW1rbGx6f2J5fY6VgXZ6gXeDjHx5aHVtdYiWjH+JhnuUkXJ6hXF4jnuLjXuJfoONkZ+ehX19eIGLfXdwaGuAgHded29ta3FyVl1uYXFhX21ueXBncGZmdHVocWthd2VdVmVgYHJTUE5bZWRdeHCIfF5caHFiYmVmkWlfZ2RbaHB+b2txc4p9dn2FgXR1f4x5e4aAeIiDc4aFfoyMhHx5lXhmcWqDX4d+b29remBpbXR/dF90fHiGd3NzhXx5oZCasZyljoKKf4KZiICLnX6KmJKOhIiXjo6OhHZ0dnOAcG+Fc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfG90g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYmcf46BeHqMf4iMipubnJqVk3mNd2mJkohtiaSFk4iYg4ZjjJGYjZSJlouNiYtwepWJfI6JipKRiXqFfH5tfGVyb2treXlbgHmPjoF6fn5/ho56emh0bHWMkIqDhoV9loxsfn9vgYx/jYh+hHuDkZabm4t8d3iDj3hzbGVwf4JraXRvZ2hzbVNebmRwWl9rcXhma2tiZ3hzb3FjX3dgYFZrX152T01LYGZjXXlxinRcW2V2YGFlZY5jYGZiWGlyc21rcXaLfHR5hoJ1dn6Lc3+Gf3uJf3KJh4GRioh9fpl2ZXNufWWIf29wa4Baa255eXNgdnp7jXZyd4p3eZ+Mm6+boJCChXiIlH58iZyHhJ6QjoWMl4STjoeBdHdweXBuhG9tbn5yY2R4cHxuenxqaGxjpJrB3K7voXNrdYN1hKGEkW6Vj5SflJqBkXCFi6OXiY6VipCdlYOAlI+EiI+AkoqKl36He3V/iXiGhY6bmpeZjo91indwh4mMfoylhZOKnYWGXouUl4mOiI6LioSJbHyXgn2IhYmRj4Z2hX5+a31jeHRpbXhzV4h6kYeFeX5/gIWMfnlmdGuBi4+LhIOAjJeGbIJ2bomRg5GFf4J7gZGXk5mQdHR4h4x1c3FmdHmBYXNtb2FodWZSYHBna1VebXN5YHJjYGl9cXJuWmJyYWJXblpcd01NTGNmYV52c4ptW1xkeF5gZGaEX2NjXllpcmtua3J3i31zd4SBeHd8iHGDhH19iHt0i4iIlYeMf3+Yc2h1cXltjHtudHCAV3B5dnlxZHZ4hoxpdoCKcoCdiJmnnKOShHxwjJR4eYqdg4SfjY58lY2AmYeEe3J3cHNqb4FraWx8dF5geHZ7cHR6Z2BlfOvatcnD3IhzbHOAdoqaiIxpl4+OnJSSgYhwhYigjoSKlYqMl5N8jZKIgoiPepGLho+CgHd4g4Ryh4KTm5aTmIaMdYd/cYaCioiao4SVjZ+EiWGDlY+FiIaJjIeAh2h9lH99g4SJjo2CcYZ+f3J3Z3ZyaHN3a1qMfZKChXyAg4CEioJ2YnRtioKRjIN/f5ORfW6CbHmHkIeThH2CfoGTlJGXiW5yeoyFdGxwanF3f15zaG5caXVfUmRxaGZTX292dF9vYF1ognFyaldnaGNpWG1XW3VMSkxlZl5icnOFaFtcZXleXmRnemFkX11Za25lbmp0d4p+c3KBfnp2eodzhYN8f4d3doqFj5iCjYJ7k3Zsd3Z5eJN1bnh6fVh5hXGAb2d4dpGCZHaGhXGKloaZoZuiioZzb5KLcnaOm32JmYiJe59/hJl/gXhxdG5vZHJ+aGZsd3dbX3h7enFxf2lhZ2F/1baOkKZ4bnF3e3GSkIyGapiNiJuRi4Z7aIeLmYaBkpCGhpeNe4yMgICJjXuQjX6JhXp1e4N7cYaAlZmOkpOBiXWEh3eEgIuTnqCHlpCffohhf5OHg4eDiY1/f4JmfZGAfn+CjI+Qfm2DfIJ0a213dXN2dWtjjYGOf4V+fIR/hIh/cGBzcoZ8kI6DfX+SiXpxg2Z7hIuHjYR8hX+BlI+Rk4RucHmMfnRsbmlqeXxhZ2lpWGt1WlJpcmliUGJyeGxiZV5aaoNuc2JbZ19kbV9uVFpvTkhOZmRcZ25xgGtaW2NzX1xjbHdkZV1dWmxsYm1qc3aGf3Fvf3x8dHiFeIWDfICHdXmJgZKVfImGdomBcHh5e4STb217gHZeg390gW1penOUc2dyiH1ykpGEmp+boIaGdXWUfm12k5d9h5CDio2ZfIyadn52cW9samF0fGdiaXV5WmB3e3ltcX5lY2hoV52PXnFylrzEhHZxlIiPfXGWi4abkoyHcmqIj5aAe5SMgYSajHyKhXx7iYt/lIh1iYZ2d32BcnWGgZ6UhZSPg4NygIl1hXyKmZ6Zh5WOnICIZn2Tgn6Eg4mJcoF9Zn6MfHl/f4eLj31pgH2DdmZveXhzdnNsa46FioGKf3iCgIWDf2tfcnl7fo6LhnyCj4F+coFpeYSIjIaFeYR9gpiMkIx9bm17iX12c25nZnt1YltwYlducVNTbnNoYU5mdHhlYF5dWW+Ab3NZZWFeam5gcE9Za1FEU2dgWmtubXxuWVtebWNaYm93ZGdcXWBraWNsanN2gYNwbX98f3R1g3qDgnyChXZ+iIGWkHiEi3SBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0bJONhZ+YoJmEiG59jHZqeJiOfoCJgpSXiXmPlm96c3BsaWRgc3poX2Vxelpgcnx5Z3F6YWVlj7Gyd0piWqTZ0JZxe5CKj3d9k4qEmJGMhW5rhZKSenmShoGEmIp8hn94d4mKhJaAb4uIcXV+emp5hYOlkISSjIN/b3+DdoR5hpuZlYyUkZSEiHB7koJ8goOIg26Bd2iAhHhyf4CDiod8ZX1+hHZjcHOAaHhwb3WZjYaDinx2eICEeYFrXHF/c4KJhop+hol7iXKBbnGFh4+FhXOFeoKZjY2EeG5vfoR/dnlkZ2l7cF5YdlpYcGxOV3FzZ2BLbHZ0YF1cWll0fXNvV2ddZmpxYG9OV2hSP1lmXlpvamd6cVpaWWtlWmNxeV9oXF5lbGhla2lxd3+Hbmx/foB1b4J7gIJ+gn92gYWIl4pxgo1xe4Z8enmEk4x1anp/a29+dH99b3J7epNwb4F/eGeSi4OhmZySgoVmhoNvZ3mViH1+hIGYiYF8jYxpeHJra2ZfYW95bV9ib3hcZGuCemFxdl9lZdTqvYsyOj6Ljn9xeIWIjo12gpWMfpKNjH9tbIWMi3V9j3+FgZWIfIJ4bnaHhIOXd26IhWx1e3RmeYKDp4uCjouEfW6AdXeFeoedkY2RkpOMi4Z/e5KGd3+DjIJrf3JogH54bXx8gYqDd2F5hIFxZHFofm11cXWBm4uAf4WAc3V+gXOBb1xuf3V5i4OLe4eAfIh4enFsiYSQhItyg3qAlouKf3Rta3eAgHR0XGhndm9YVntSWXBkTFpycmVbSXB4b1xbW1lddH50aFliW2dlbmNpTVdmUT1eZVxddWZgdXBaWVRvZFlkcXlaaF1fZm1naWtpcHd9jmxpgoR+eW6AfHyBf4J6dYKBjZOEcICLbnd9gHt7iJKJf2h7fWpze3KGe3N3fn+MeniEfXxrjI2Em52WjICAbI19a2h+jYt6fn6Dk4J+fYqIa3VxZ2hiW2Jnc29fYWtzYGhwiHpic3ReY2SboI9uXDVar7V0aYCIfJKGdoWVhXOOiol2cGyFgoZ0eYl4iXyTiHp+cmd1iX5+mG9xhn5odnluZnmHhKSHgIaMiX5uf3aAgn6NmoiClJGYiYuEiXyPiHB7fYR7aH5sa4B7eml6doGHgHJgd4F+cWRyZnSCbXV7hpWRgXyCgW93en11fmxZcIB3dYyChniIdoKJenhzboqBkIGGc399f5OIiXpubWpugoF0bVxnZHJwUVp6TVtvXE9ccm9kVUtzeGlXWVpaYXGAdGBdXWBmZGhpZk5aaE1AYGNbYHZhXXVtWFdTdGFaZG9yV2peYmhrZ21saXB3fJJsaYSJfHxwfn57gX+CeneAf4qLg3F7iG9xd4N/e4mNj4Nqfnttd3h2ind9eICCh3+Dfn56bYSMiJijjYSDenWLeGtsg4eQeH16gZGAgH6Kg3BycWNmXllmX29vX2BncGZqb4l0YXRvW2FkanZ7gL+cpqTIuHGFg3KSfHiGkoJzkIuHcXJvg3qCc3WHdIh3lIh5eXBjd4d6gJNpcoR2Z3d1Y2p8goidgX9/jo99c4B0hXqBkpCDeZaOlY+Igoh7iIhreHl+dGd6aGx/eXNpenaAg31oYHeHfWprdGd6gGl2gYyRlH56fn5wfHd8dH5iVnh+c3OKhIJ9g3GHind4cXCEgo1/fnl+fXaOhYN2aXFpbYiBcG9dZ2FxbUpldUtdbVVUWnNuYlFPc3hgUlhYXWFvgnNbYVxoZWVja2RRW3BJQ2NgW2NwXl14aFVWVXdeW2VuaFZrXmFpZ2VubmhwdnqSbmmIjHh9cnt+eYKBgXx2fYOIhoNwd4RybXeDgn2Ji5N/cIB7d3l6gYx0g3h/gYGChHqAdW9+ioubnoh9hXp3hXtndIWMj3l+f3uIhYN2j4BncG5fZFtYZVltcmFgYHBsa2iJbmF0aVleZG6Ad6naqseGh7JxiXdvjHV7ho1/epKJf3RzdH53f29xf22EdJSGeHVrYHqCeYmPZnGEcGd2blttfICQk3+AeZGSfXh7boh3gZKNhXSWipGOh4WFe3+EbHR2fm1ndmVte3Vtand2f398YWJ4hXlodXVifXtndYaOjZV7dIB2cYB7fW1/WVd1f3B1hYd/gXlsiYZ0eWx1gISEfnt9eXtzi4F9c2d0ZW6Lg2tzWmledGRHbW1MWmFXVlZ3bWJQUnR2V1BWWF5hcYRvXGBjbWRkXm9jVV5yRkJlX11maF1bemJRVVx1W1pna2FWal9gbmVma3FocHV4jnRrjo11fnZ4fXeBg4F7c32DiIeDb3KAdHF1foWBiY2Ke3d/d4N7fIWHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN4Xn2FmIt4hoN0hYaEd4l7Ym5tW2FaW2FWaXNjYFtnbm9mh3FhcWZXXGNrf3zKzoe5oWptbYpscYRxfIOJfnqQhHl4c3l1dXxqbHVjhHWSgndvZl59gnqLimVygmtqcWNYbXqFm4iCgXOWk3Z+fG+KcYKLjYhymI6RiYWLg3t4fXFxb3xmaHFibXhxamtxeH18el1leYB3aXZ4ZoJ3Z3SHjI6Ue3GHam9+gHlufF1Zc39udIGLfIJvb4p/cXZod3+BgIF3fXF7dYd9enJmc2Fui4FqcldqXnZbSG1qTVZUXlNVe2thT1R1clBRVFdeYnSFaV1ga2pmY1luYVlkcEdAZ1xgZl9cVXpdT1VkcFpbamhdV2hgXnJma2dxZ3Byd4Z4bpWKdH96d354g4d/dXJ/hoWOg3Bwe3h2dXqGhYaMhXp8f3SLfn2GhISHf35+fYd/fHh2eXiRk59/jHyLbXV/eGSChpWFc5GKb4WFgXqDdGNuallfWl1dVGdyZGBYZHFyZoFzYmtlV1tgan94vq57oLZuYnOGaHN7cXmBhHp9i353d3J2b3t2ZWpuYId1joFzamJef3h5i4RmcX9oa2taVm93iaOBhH9xmZJxgHl2hG6Bg5OJc5WIjYiEiYV9eHRybmh4YGptYG12amdqa3l3enZaZ318eGVyfm6EdGV1hY2Gln5vjGdreoN1bXRiXXF9bHV9jHuBZnWHfW5xaHV/eH5/c31se3uCe3hvZWxibol9a21WaV92VUppak9RTmhNWHtoYU5VdWpMUFRVX2Z1g2ZeYHBoZ2FXaV1cbGhKRGpZYWRXWVR4WU5WbWpZXWtkXFllY150ZmxkcWdyb3WBeHCZhXZ/fnd/fIWHfXVzgoiAlYNuc3l7enNyhYaIiIN4gX11j358hIqOhIKEe36Lg3t3fHd3mp2XeoqChml2fXtsg4SSf3GOgXCFgn6Bf3BmbGdXXVpcW1NkcGReV2JydWl1cGVlYldcXGl/cG9ygHOJZGR4fml0dXRygYN3gIN5dnN1bWt6cWJna2eGdI2DbmZdX31we4l/aW14Z2pkVVdyb42mfIR7dpaQdHxzfXxufHyShneZfIiGg4aDfXRwcWxndFxsaF5sdGRnZml6b3tyWWeAdnVocIB4gnZid4WLfJSAboxqbXuCcWZzZWFuemdzeIp8fmJ2g3Zqa3F1e3F6enR9Zn5/gHl3bmNmYm6GfGxqVWlib1JKaGpPS05vR157ZmFNVXRjSk5TV2Fqdn5lXWdzaWVgVmNXY3BdTEtqWGNhVVRUc1ZMWHVkWl5rYFxaY2VfdmdtYnBpc25yf3V0moF3f4B3f3+GhHp8dIKEfpeFbnJ0fHp0cYSFj4GAeYt1dJB/fIGVjoCFhH1+jIZ7foB2e6OlinmIhoRrdXx6dYOBi3puhHN5hH2Bg3VuamhlVl1bWlpTYm1kW1hhc3tpaG1pYGJXX1tqgGlrcIBna2BoeXhqc3R0boSAen98dXVuemhqeWpfZW5ogXaQhGdlWGJ3an6He29pcGdmXVVYb2eOqHeBenyRjnl1cH9wc3Z6j4B4lXWGg4CFiHZqcXVnaG5bbGRdbXJfZ2FqeGh7bVtugnJ0am+Afnl4YXeFhHiPhXOIcm95gHJjcWlccXhkcnSJfHlic4BwZ2p5dHFseHh1eGSDe395d3FkZGNufH1ra1VoYWVSSmtnT0dRa0VheGdhTVNyXUpNVFpla3Z6ZV9tcWlkXVZgVm5uV0tTaFdlXlhOVWxUSlx5X1tfa11dW2NlYHlobGBvb3Vub3h1eph9d4CBeoCAh4Z6eHmCfoGThHF0dH95dnSEiJF9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSrn396iIiDa3KBeXWAf4F0boZufIBzioBqb21kZFhfWllaVGFqZ1taXnSCaV5tbFxhVlxcbIFlcXR9aWlca3Z1Z3N2cm2Fe318eHVybHlnaXhmXWVyaHp3k4FjY1RlcGeChXd3Z2hqYFdWWWdjj6dufneAi497cHF+aHpveo18d49yhH1/f4ZuZHVyZGhoXGthXG9vXGdfbXVkemhddIBvcmtxe311dmJ0hYt7iIeBgHhydX91YXBtW3J0Y3FzhX11ZXKAbGFse29qaXt6dXJmhXZ7e3ZxZWJlbXN+aWxUZ11cVEtyYlBGVmFHYndnYUtUb1dKTFhYZ2t1emRlbnFmZFpXXVh2ZlVKXGNXZ1hZSVdlUEhieFpdX2xbXlxhY15+aWpfbnR4bm9udoOXeXKBgHx/iYyGfnV1hnmHjH1zdXWCeXp6goyOfX6EiWlzloF6ip19foV6gXp/fIaIc3GPrYx7e4ePfWVxh3lzfHt1cm6FbHt+bI96YnBvYmVdZVZZWVZjZmtfXVxyhWhYcG5bXldaXGx7YnB3dm1iWmxzc2d0dXBshHh+f3h3bm50ZGl0ZVtndGZ2dpJ5X11SZmZqg4J0fmJjaVxUWF5iY4+kaHh0g4aReG1ve2l4bnyFe3WJc4B4fHh/aGR2bGBmYF5qX1xza1llXW9vYnplW3d8a25ub3d4c3Rkc4OSfoeDiXt2cHJ+c2J4ZFxwcGJxcoJ9dGdygGVebnZpZGZ5fHVub4J1dH10cmJfZm5vfWRpU2dYV1NNd19RSllYSGJ1ZGFJVG1TSk1aV2lscXtibGxzY2JaWlthd1xTTGNdWGlTV0hZYE1GaXVYXmBsW1tfYmJchGlnYW54eWxvanaBkHhtg36AgZOIhIF2c4h0jIZzcXd1gnd8fX6MkIB+k35wd5WDfJmSeYCAeHp+gHSIg3RwmaJ7en+JlHhkdYd4c3h1a3Nufmt4fHCRcl5wb2BnYmxUW1pXaGNtZlxbcYllU3JuW1pYWGBsdmNpdWppXlltc3Bsc3NzaYR8fn57dm9ubGRpcWNba3JkdHaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEkXRsbHtub3B7fHxxgXd/c3p6emNldWhdYlpgZ1tedmhXYl1vaGF3YFt7dmlqcm53c3J1aHGClYOGfYN2c2pxfW5md1hdbG5jcnOBenRnb35bYHBxYV9qcX1sbHV+c3F4a3BhXGVsbHphZ1NmVFZRUHVbUU9YUUhjdGJgRlVrUElQWlVra2p8ZW1ucWBbWlhZbHFXU09mV1doU1RGWVxOSHJ1WF9jbWNYYGBhXYtqY2RteXhrb2l1eYZ7a4N9f4SafIKEeXyHbo+GcW93en10goJ8i4+Cgpd0d4KThYGfiXWBgIF0f4Jxh4J1b6KXc3uGi4Z7ZXeKbm16bmZ3cHprc3ZyjGtedG5hZ2VrUl1bVmdhbGtaXHCMZE9vbl1WWFVnanRnYnRlZV1ZbXRtb3V0eGqGfH97h3aPc2Rka25hXW5tY3N4h2taVFZjZHh9fXGGXWNfY1RaYFlilZVjbnCDhYp0a2h8cGZzd3N8bHp0dW96fnVeZXJjW15WYWRYYXRlVV9gbWRhcV1dfnBoaXNxc3B0dmtthJOBiHqEcXNnb35xc29UXGdrZnF0gXdzY2x2VWJya1peb2Z9ZW13fXNzc2ttYFpkamp3XmZUZFRVUFRtV1FWU09HZHNfYUVYaU9IV1RWbWhkfGlrd2phV11VW3RkU1JXaFFZZVRTSFpaUE14dlpfZWxpWWJgXl6ObmFma3l1bm9odnZ/f2yDgH2Hl3uAh4GJfmuTiHJndIB7dYCCfYiOf4uTcnyKkYWHn4Z7f4aMc4GGc36Cdm6ljHKBjYt2d216jGBke3BmeHJ4bG1xdoJnZHtsY2ZnaFNfXlVnX2xuW15tjWhOaW1gVFZTb2dzbGZ4ZGRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVxeX5nWlZYYGx4fHtwhF9iXmdXWF9XZJuIYmtwgYd9eGxreW5cd3Fse2p2c25ve4ByWGltXlldVWJjV2RwY1NeYWhhYmxaYH5rZmtzdW5td3ZsaYWMf4l5h21xZnF9bnNuY1phaWlvdIJ0c19pbFNlcWRVYm5iemNxd3t2a3Bta2BZYWdodFxlVWFVUk5YZVJPXE9PSGRwXWNGWWlNSV9LWG1kX3hobn1jX1RfVF11XFRTYGZOXWFUU0pcWVBZdHVdX2VsaFhjYVtejXFjZ2p4cXNuZ3Z0eoNygoN6iI5+fImHjXlukIp0bHOCdH9/h4WGkoSVj3l+jI+HkZuEgHyMhXOAgXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjY2NjY2NjY2Ojo6Njo6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjI2MjI2Mjo6Ojo6OjY6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERCTqWvra2trrFhQERERERFOC4vLy8vK0iFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTNBqba0tLS0uFkwNTU1NTcnHB0dHR0YOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fX59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZqSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaPkJCQkJCRiYWFhYWFhYSDg4OCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk5CKkY2Nj4ePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYyLi4yMjIyOjo6Ojo6Ojo6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx9fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQjoeJh4eMh4qQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCPhoqHho6GjI+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+Jh4iHjIiJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aHh4aIhomPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH1+fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2KioyJjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KHjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9/f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f35/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eX1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyNjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHR0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUVAPjo8Pj48RUQ+P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnJ0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTk7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTk1NTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ozs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojk5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXFxdXV0dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QUA/PDs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl7e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA/PDtLRzg4Ojw5PT1APTo8Ozs8Ozg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BxcnJydHV2ent9fXx+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj45N2RsOzg6ODg6Oz0/Pzw7Ozw7Ojs7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fH19fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXtOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNBQD9AQD09RklKa3lNPD49Pz09PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx9fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBfVFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkVDREJAQENbQVF0fYF9e1w/QEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD9AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcG9xcHJ1dHd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQUJAQW9jf4SFgoN+aT9CQ0VAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHREVGRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgICAgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBFRkNKdoCCgYR7gIV0RERFRENXdYaJin5YR0lKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpJSVF2gXyAhIGDiHBEQ0FVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNDREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKVXiBfoKEhoaHg1VObISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N1dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tMS0pYfYOEhIGDh4eIfX+GhYSEhoaGh4eGinVJSUZCPz9APz8+PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3J0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISElJS1F2hIaEfoGFg4OEhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0lMSHGGhYF+gYOCg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc3MzQ2ODo4NzY1NjU2NzY3Nzg6Nzc3ODk7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQ0RLe4aEgYKDg4ODg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6Ojo6Ojw4OTg5Nzc3Nzk6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09RV2tycnR0dXd6e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3O0I6PU1+hIKDhISEhISGiYqKiIeIiImKioyKiYmMej46ODg7PD0+OTo6Ozg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8Ozk7PDg6Ojs7OTk5PD88PEFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw7ODk5ODk6Ojk7Pz9BSn2DgoSFhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUBCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPj9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs9PD5ARENVgoOEhYSFhIaJiYiIhoaGh4iJiouLi4qKi4qLXj5ER0lLSUlGR0hERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p5en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PUE/QkNHRWiEg4WFhoaGiIiIiIeGhoaHiYqKi4yNjIyLioqIV0dMTE1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkdHRUtJS0lLS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTg8Pjs8Oz5AQEE/QkJGRktKdYSDhYWHiIiJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlJSEpGREdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA5ODw7PD06P0A+QEBDREhIUFt/hIWEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSUdFSkhESkhHS0pISkdHR0tMTkxMSEhJSk1QTk9OTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDk6PDg9Pjs9QT4/QUNGSEpUcYOEhISFhYaHiIiIiIiHhoiIiIiJiYyMi4yMi4uLi4teUlJQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FQUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgICAf39/VUVDRUVHR0VEOz9BOz08OUA+PkBCR0dBRklJTlR4hYODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTlNUT01TTFBTVVZSU1JQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkVHR0dHSEY+QEI9Pz09Qj9CQ0ZWTkVMTk1RVnuGhIWFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlTWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0xLR0hJSEVGSUhJSElqc3Z5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQkNHRURFTFhSTVNUU1ZYfIaFh4aFhoeIiIeIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVddWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01KTEpJSUxNS09NU290dnh5eHd6eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNTV1lYWll4hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFRXWFhZWm6BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin9mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUVVSVVNXX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XlxWVVNST0tGQ0RBTV6DbFZSU05PUU9RVVJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmJh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUFFOS1JUUU1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSU1RaXW1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lVUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUENDQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSEJDSEdISkdEQkFDQE9QTVJkdHV2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHN2ent4eXVybnN0c3l4fn6DgIOCgoCCgIKBgWtMRz4+Ojs+QD8/Pj5qUEthRUZISUVCP0dMTUdNUVVJQkU/Pjw9PD09Pz0/QUNCPz88PUI+Sk1GVW91dXZzdHZ4e3x6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFDQVtcT3tOT09OS0xNT09RTEtMV01IR0BCPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1dnV2d3l8fHx9fHx9fX1+fH59fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJTVlhTUllUTllaW1dZXF9fYGVgXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZDTFFPYVdSWFFQU1NSVVtPT1FWUE1JQ0Y+Ojo2NDg2OTc5OjM2NTc5NTxCPWZ0dHZ3d3l5e319fHx7fH19fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LVFRTUFFVT0xSU1RXWVRUWFFMWFlZVlhYVlhZXVdXWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNQT1NaV1RUTVFTWVNcZVVPU1RSTkxJSEM/QTo5ODg5Nzg4NDc1Nzg1ODlHbnJ1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWWFhZU1VUTEtUVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KTk9UU1RcVlJVU1NPTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3enp7fH1+fX58fX18fX19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG9mZWRjXF5SVFpWV1RTVlRSWFhZWVlSVU9KR1BQT09NUkpPUFBQTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTElMS09RUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFPUFBRTlFPUE9MSkxMT1BOTlBRUU5QT0pNTU1LR0VFREI7PT08OT1HNjY3N0RucXV3ent7fHx9fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11nU1FTQUdVUE9SUVBNTU5MSkxLTE5PT1FNT09NSU1MSUxLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtucW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E/PT1BQEI9PkVIRkRGRklHS0pARkFBQEZIRUpPSFFSYVxRUFJOU09PUExMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZFP0NDPj1CRz9CPkFkcXR3e3p7e3x7enp3fHd5fX57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87P0FAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVBNT05XS0xOS0xNTUxMS05OU2RNSkxSSElKRkFJSkxNTktHSUZCQUJAP0VGRUhETG9wd3p6eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkJBRERHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUS0pJTVRGSUlKTEpLS0lKTE1PUFJQS0dDTEhEQ0pKTE1PTUlKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFIS0NGR0dHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNT0dIS0ZIS0RISUtNSEpMSElKTEpNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2dnt4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkcEZLQ0ZFRkRFRUZFR0NDQD48PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGQ0I7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1HSUxHRkZJSUxOS0pIRU9JQ0dNTU5NUE5PT01MSUhJT1NRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUVEQkNCRUBEQj4/Pjo7Oz07PT9DQT9BQ0ZHSkdKSUxIR0dHRkVDQD1FRUI+QURDQ0VHSUlHTVBJRkZHS05PS0ZISUZFRERJSUhLSUZIUEtESk1MUE5PTk9QTkpKSU1SVVVST1dkYWFtZ3Byb3N5emdlaGhjaWxncWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NBQUJEPEJBPkE9Ojo9Pzs+P0BCP0BCRUdKRklHSUdGRkZFRENBQUZGQ0JCQkRFRUdHSEZMUExJT0pKTEtJR0hFRkVEQ0lISEtKR0tSTUNPT05RUE9PTk9PS0tLUFVXVlVTWF9eXWlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01GR0VHQkJBREQ8QUFAQzw4OT0+Oj89P0I/QEBERkhFSEZGSEZFRUNDRUJDSUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9OTlBNTE5TV1ZXWFZYXVpdZGBoYmppZ2tfZGVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJGRTxAQ0JEPDc6PT47PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISkxGSUhKSEVLS0xMTk9TVE9JVFVUUVRQUU1OUU5NUVdaVlpZV1pdWlhhYGBgX2hlY2BkZWdnamhoamZobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURCQ0hFPEBFQkQ8ODo+Pjw8PUJCPT8+QUJGQ0VCQkhDQ0RFRkZHR0lGR0pIQ0lIR0lHRkRIS0lHS0lNS0pLTEhMSk1LSU5MTk5PUlVWT0xWVlRRVFFSTE9RUE9UWVpZXFpaXF9fXmBjXlxhY2tiYGRnaHKFaGdpZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdHJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJFR0U8QEdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREZGSEhGSEdJS0pFSkhIS0hGRkxISEhKSE1MTExMSU1LTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJlXWRgZWdgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXd1dXV3dnV3c2d0cmtxcmtyd293SUpMSUtHQkVERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFREZHRUlFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0tNTUpKTUxNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFhYGNkZWJjaWNkaWpndotsa2lobW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3Bzd3R1dXd2dXV1ZXFza3BxanJ2cHdKTUxMTUdDQ0FEPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0hHSEdGSkZER0pHR0pGSUxISUpNSk1MR0tJSEtLTlFLUlFMU01LTk1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZWJhY2luaWNpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0VBQEQ+PkRFRkM/Q0FFQ0RGQ0NFR0NCSUVCSEpJSEhLRkRLSkdISkhJS0dKSk5LTkxJTEhKTUtaZkpkXEtsUkhPTV9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxrVV93dmlqaGhmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGQ0NDQkVFREZCRkZHRERKRUVKTExKTE1HR01KSEpLR0tKSUpKTkxNTUxMSUxNTFtzYmRwXmxsVU1OZnNeZ2ZxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9cb3VncE1Lcnl2a2Jha2VlbHhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FCPz1CRUdCRkNFREVFRENISEdERUtIR0tNTUpNTEZKTkhKS0pJS0pKSktNTU5NTU1LTk1NW3Jvb25wcGxrTlBRbFhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhvY15rZmJncHBqaW9wcHJzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hGRUVCQUI9Pz9FR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSU1LSElNSUtKSktOT05OTUxOTUxcaGR1XWxxV2xOUFFuVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWRpdHlrb25xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRkpMS0ZNS0xSUkxHTU1ITkpISE5ISkpJSE5PTk5MSk1NSlpzcHBvcXFtbE9RU29ZcWtnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpbXnRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnRzdnRIS0hKQ0VFRUBAPkNDQUZDSEpNSUZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUhKTElLSklISkxNTUxJS0tLU2tiWmleX2pjcnJaX1pqb2BlZVVrX2NbYWJRYG1oXGpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga25wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFydXR3ckhIRkpERURGQUBBRURDR0JISkxHRkNGS0xJRUZKT0xJT0lMW1FKRkhIS01JSEpJS0tJSElHS0tLS0dISkpMTExLSUtMTlRbXVRQVU1RUE5PT1VSUE9RT09RSkpOUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNmX19ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV6eXh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdKTEhER0lQS0xPS0xXTUlGRUhJSkhJS0hMSkhGSEhKR0dJRUZLSElLTkxJT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVFSkpKRkVISFBKTE1KTVJJSEVBSEZKSUtLSUxKSEZFSkhFRkdFRUpHQkpNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjYFlfYltgXltUWVhaX15kYmJhY2ZpZWtycG9wcG5ud4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLS0tFRklJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUJGSkRASktKT1tjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmJiY2NlWlJYVlZcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl4eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJTERESkpNTUxMSEpKSEpHP0dGTktLS01LS0tJR0hEREBEQUhJQT9JSkdQXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUVFdX2FjY2NjYlxkY2JkY2ZYUVZVU1xYW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0lHR0pGRkZJTEpORURKSkxOSkxJS0pJSUdCSEhRTUtLT0xLS0lIR0VEP0VCSEhBQUdGRFRdWV5YX1hfW11VWFhQXV1RS0pXXlheW11WWmFSUl9fYmJgYGJiYGNiYmRkYlhPUlFTXFNcXl1eXl9fYGRoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktKTVBFR0lKS05MTElMS0lJR0RIS1FPTUxQTExLS0hJQ0VBRUNIR0JBRkVCVlVFXFRdU1ZgWE5UVU5aW01KS1VgYVtfWF9eYl1PWWJcYGBfYmNiXWJiV19fVFBPUFFZU15cXF1dXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNRRFdfSUdHSERGTUpQUEZKSUpLTkxMS01LSkpHRUpOUVFOT09NTk1OSEtBREFDREZEQ0FERUFMSENMTFBPT01GTUZGSEpIR0xMTU9QSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUVVUXFlZW11cYWFlZmNoZGtscXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXk1HSFlNSEhKSEdNTFFRSUxKS0tOTVVOT0tLTEdHS1BTU05QT05PT09ITEZgRURfTERmY0RNW0heXHNtT01WbVlMQ1BfVWxXZ0pdV1VeRExRVUxNU1ZRUlRYV1RYVVRcVFBmWmhoZFlUa1RYV1VbXFtgYGFiYmJgZ2lnbmxocnp8fX6BhISEg4ODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USktHYFRISk9KSU9NUlFLTUtMT1JVUk9PSkxNR0hNUVtZT1BQTk9QUEpLUX9RSXxZWXJzV1BtSHFub2FWUHFxdE9Ca3NucXRwU29fW25YXVZcWFVraFVdVmNZYFlaX1ZVV39qdHV1X2F2X1ljXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxMT0hLUlhXUU5PT0xRVE5PUVBLS05HTVBTW1pUUVJPUFBQS0haeF1UeGRoWVJTUHZndGxwYm5ma1JyT0x3bWpycHNycXJwb3CAXWZ6dXhxcXpxfnJ9a3V9YlJofGVzc29zc3x9cH55b39yX2BgYmJbYWBoa25rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEtRT01OSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dRVFBQUVJLR2d4bGN4cW1aS0xUeXB1bXVibnZQZGVJZXZxbXdvgGpmeHhpWHJSaXttaWp6en5seHp/cGdvWHZ2anZ1cIBhc2h9aWx4fG9fX19jYlxfZGVmaWpkZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3V6bnx9eXhybk5KUnROQ0JFUFBIS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OU0pLcm91dXF1cWRoYVZuTHFwXkdoeVd2VEtoeX14YHl7c25hXm1vZFNncnVubXlwd2x2c3RxbG1cc356a215fGx1bXxrcHZ1eF5fX2JeXV9lZGpoaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tTEtaVkhHRUdSUEtMTktMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPTk5RSVJtSGl3S2BkdnVVV2xPbmx7cmFqZ392VUtXa2h9bG1seGBbcHp7X2B6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlaGZlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobW1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTUxTU1JPU1JXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1BKSFFOUFVMS0tSU1JSVFBWVVFRT1JSWFhRTlBVVFhYWFtbVVNTV1tXWFdaUFNVV1dYUV1YVl1VU09YUlZXV1haYFtncl5bXFtdXV9jWl9jY2VnZWNjYlpjY2dmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJNUlFQTFZWVFBUVVhVWlVSWl1WVVRXVVlYUE9MTldVUU5VU05QTkxRUEtJUVFLUU1LS09RVFJRUVNTSUlNTk9RUlFRUVRWUlhXXFdTU1BSVVVWVFpRTlNSV1VUWVZUWVVTUlVTVFVYWFdeWl9hXVxbWl1dYGNcXWJiZGdlZWViWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkZGZoUUpLS05PTE1UUU9UUVFNWFdVVFZYV1daVlRcYFZXVllVWFRRUEtPWFRRTlVQTlFOS1NQTU5VU05STk1OUVNQVFFTVFVOTE5PUVRUUlJRVldVWVpbWVNVUlRYV1dZW1NPU1VXVVRZVVZZVFJSV1VWWFxZW2BdVllfXV5dXF1gYV5bYmJjaGZlZWJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWVFRPS09XVVBPVFBQUU5NUVFPUlhTUlFPTU9TVU5XUVRVVU9OTlFTVVVUVFJUWFZaXVxaVlZRUldYVltcVlBTVlVVVllUV1dUUlJYVlZbX1peYF9WX11eYFxcYGBfX1piYmRoaGVlYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTk5SUFJST0xQU1JVWlVUUFBMUFdVUVZSU1NYTU9QUVRYVVVVU1VZWFteXVxbVlJPVVZWW1tXUVNXVVZYVVNYWlRTUVlXV11fW19fYFZiXGBhXmBiX1xgXWNhY2dpZWdhWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeX1teXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3l/Y1xbVlZZUk5PV1NOUVJRU1RSTFFUU1lbV1VPUk5TWFZTUlRSUlpPUVNTVltWVlZUVlpYXV5cXF5WU05UVlZbXFZRVFZWWFlSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkaF5cZWBhYGFjZF9iX1laX1tcW1lYWVdXWltaYV1dW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1cYFxgVVxdaGpyfXJsaFxVWVdRT1JbU1JRVFNVVVRLUlZVWlpaU09TUlVVVVNOVlJTWlJUVVRYXVdYWFNYXFheXVlbXlVVTlZXV15aV1FVVVhYWFRWWFtUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVnXl1kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFtVVVdWVFRUXl5gX15iXGBVXV5ia3l0bH1sWlVaVlFRVFxUVFRVVVZZV0xSWlZcWlxSUFVTV1VVU09XUlNXU1dWVltdWFtZVVpeWF9eWVxaUldSWVhZYFpZU1VWWllaVldZXFVUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZmViX2RhX2FhYmJfYF5XWF5aXFxaWVpXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFJXVVNSU1hSU1ZUWVhYXV5YXVtVXl9YX19YXFZRWVVZWlphWFxVVldaWlpYWVlaWFZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYltmYmhmY2ZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaV1RcVVZXWVdWXGBhYmNhY19fVltgZGFfenVvaFpcWlZYVlhbWllcWlhZYFZPVF1bYGFcVVVZUFRWVFJWVlJTVVdbW1xfXlpfXFZfX1pdXlleVlNZWFpZXWJZXlZXWltbW1paWVtZWV9fYGBkY2RlZWJkWmJmY2dmZV5hY2BjXmNjaWVkZ19nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVVYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZWU1ZUWF1dX2BgXWFdV2BeW15cW15YVlhYW1pfX1tfWFhdXF1dXVtaXFhaX2FeYGRjZGZmZmJZY2ZlaGdkXmNhX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpaWFpYV1tbWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYmNiX2FgYV9dXV1YV1tbXV1fX1xaXWNYWVhdYGNkX1JZWVBXVldYWFdWV1ZdXV5gYWFfYl5ZYV1dXlldXllYVVdbW2BeXV9ZWV5dXl5gW1paWVtfYV9iZGRlZmdnYlpkZmdpZ2NfY15gZmVaaGljZmljZl9iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcWFpjZWNhUlxZT1hWWVtaWVdaWmBeYWJiYGFjX1xiXV9dW19eWVlUWF1dX19eX1taXl5gYmJcXFdbXWBiYmNlZGdmZWdkXGVmaGlmY2FiXGNnYFxpaWJoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXVlhQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9hY2JhYV1iW2JkYV9jYmJdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWltbY2BjYmNgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl5cU1xfYGNkZGZlZ2ZlZmVfZmZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3p6ent7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7e3t7e3p6e3t8e3t7e3t7enp7e3t8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmIjbG1tLS0s7WVh4mJiYmKjI2NjY6Ojol/f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIuRu8C/v7+/wZqKjIyMjIyOkI+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4OEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXp5enhvb29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fH2BgYGBgYCBfnx8fHx8fH19fX1+fn19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnh7d3p6en55eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3p6enp6eXp6e3t7e3t7e3t7e3t7e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3eXx7fHx6fXp3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d3fHt8fXl9eXd4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3d6fHx8ent6d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6enx8fXx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h6enl7eXh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZWZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoKCgoGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcIqQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uJg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMj4uKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiYeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIjIuJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjIiGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjImGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSkpCLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCgoKHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFg4SEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OCgYODgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoOCg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj5CSkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEg4OCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoKCg4SDgoKDg4OCgoSEg4ODgoOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGTkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGDgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgYGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgYKCgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIKDgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYKBgoKEgoKDhIKDhYWGhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GBg4KDhYWDg4OEgoiOg4WEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OFhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+NjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCBgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgIGDgoGAgYF/ipmFgYKCgYGCgoGAgoKDgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGBgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+AgICDgYB/fnuBmIyAgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgYmDfn5/gn2PlYKDhIKDg4OCgICAgoKCgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOFhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KBgYGBgICAgICAf4CBgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgoGDj4OBgX+KhIOShYWEhIWCf319fX+ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWEhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMi4iFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhISDg4ODhIWEgoWSgoqGhYKBfoKGh4aDgX5/fn5/f3+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYGAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDh5KChoSHfn5/f4WFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4aGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4OEhISFhIOCgoODhIOHjYGBf4eCfn5+gIB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGh4eHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDhISEgYCBi4WAf4CBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhYOBgIODgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWFgoCCg4ODgoKCg4F+fX1+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiEg4SDhYSEhYWGiIiGhYOCgoSFh4aHhoaEgoKDhIKDg4SCgYGBgYGDg4SDhJGSkY6PjouHhYaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiYuKhoSGhIKGh4N/gYSDg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GCg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4OEhYOCg4GCg4OEhYSHkpGPjY+MioWEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoGAgIKAf4GDhIODg4KCf319f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5/fn1+g4SDgoODg4J9fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF/fX1/gIF/f35/gIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH99f359fn+Dg4OCgoGBf319fn6AgIB/fn19fXx7e3t6enp6gIB/fn9+fn59fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36Bf3+AgYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f35+f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoOBgYKAgYKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp5eXl9gH+AgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIGBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEhIKCg4SCgoKCgoF/fn19fX5+gH19fX19fX19fHt6eXl5eXmAgoKChIOAgoOBgIKAgYGBg4KDg4GBgoCBgH+AgYOChIKAgIGBgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoeFhYWBgYODg4KCgH19fX19fX5+fX19fX19fH19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgYB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeIh4eHhn99gYCBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359f35/gX+AgoGFhYWHhoeHhoeHiIaHh4eGh4eGf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhYR/fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYiJh4WGhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgoGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32DgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+f31+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn5+gIJ8fH9/gYCBgH59e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Mi42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX18fXx8fYB/gIB+gH5+gZORjIyNjY6KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2LjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fHx9fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKMjIuOjYuKhoSFhISEg4ODgoKCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42LioiEhISDhISDg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5+f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHx7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4aChJGOjIuKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3x9en1+fn+AgIOHiYmJioiLiYWIkY2LiImHhYWDgoKDhISDgoKCgYGCgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgYB+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uLiYyQjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5/f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn59foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+Ni4iIhYSEgoGCgoKCgoKBgoKCgoGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiNjIqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGDgX5+gIB+foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCAfXx9fX18fHt8fHt7e3x7fHx8fXyJioiIhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgH+AgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoWGh4WEhYSCgoKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dXSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgYGAgICCgX5+gH+BgH+AgIB/fn19fX18fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAh4KEhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX5/fn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f36Af359e3p7enx7eoKEf4OCgoKCgoOBgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX+Af3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4F/gIOCf3+Af4F/gH98e3x6fHt8gYB/gn9/gYCCgoGBf35/gYB+gYKCg4GBg4OCg4KEgoGBgYCBgoB+gIB/f31+fn19fX59fnt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOBgICBf3+AfoB8fX1+gH5+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OBf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fX2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn19eH5/f3x8fH59foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgYSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN3dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChIWGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4ODgoGCg4KBg4J/gX9/f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH99gH99fn5/f31+foCBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4F8fHp7e3t6e3d2eHVyc3ZxeHlyeIWFhYWDhIOCgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/fIB+gIB/gYCAf32Af35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/fYB/fn9/f319fICAgIGAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn19e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6enp4c3d1cXFycHh3cXuFhoSFg4WCgYODgYGBgYKAgYCAgYB+f35/gH18fn2AgIKBgICBgX1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn6AgX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYGBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/foCAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f356gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fX17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKCgIGBgYGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e41+d3d5fHx7fXx8fHx7fXx9fX19fH18fn5+f39+fHt8fXt9fXt5ent6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYSDgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKAf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBgICAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXx8fHh4dXh4eXt8fH17fHx8fH1+f39/f359fX6Af4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGFg4OEgYGDgIKDgoGAgIGCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAgH+AgYGAgICAgIGBgIKCgoKAgoGBgYGAf3+Af4CHfn58en18e31/eHd2eXl6fH19fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7enl0cXVud3B1enJ2eYWFgoOCg4OCg4SEgICCgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgICBgYGBgIOBfoCDgn9+f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKChoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgYGCgoCBgICAgoKBhIB+gYOCf3+Ag4KAgX6AgoOCgIGBgYKCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6c3B4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4KEgYSEgYOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SEhIWEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH96e3x6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhYWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GCgYCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4SDgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX56fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoWFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChoaFhISDg4SEgoSFhYKCg4OEgoOCg4KDgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoODhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/f3x9gYGCgoODhoOEg4aEgYOIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KDg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgYKDhIWDgoKDg4KBhIOBg4OEg4SEhIWEhISFhYWFhIODhH99gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4GAgH+AhISDg4SFg4SDhX9/goqLhYSEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KDg4WCgYSEhYWGhIKAg4eEg4SDhYSFhYSBhIODhoKDgoOBgoKEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgH+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYqJhISDhIWFg4eGhoSEhISFhIWEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeoN/f39/hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WCgYSDgX9+fn59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDg4WFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGc3B1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgoN+g4N9gX1+fn1+goOBfH+AfX+Afn18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhoOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9f359gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOGhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253Z3d6bnB1gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgX+Afn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WEhYWFhIKFhYSFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgX+BgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYaHh4iGhIaFh4aGhYSFhYWFhYaJiYeGhIaFhoaFhoaEhoaGhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhoaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFh4aHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGhoWGhoWDgoWFhoWFg4WDhISFhIWFhIWFg4aHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn58fX1+e3x8f3x7e31/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYSGhIWGhoeHhYeGiYiGhoiHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaDhoaFhoWEhoaFhISFhYOFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXt8fn1+fnx/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFhoeFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoWGhYaHhYWGhoWEg4SEg4SHg4SBgoSEg4GAgIF7e359fHx8fX18fHx9fXx9fH59fH19fHx8fH18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4aGh4SChIOEhoWGhYSEhISEhYaGhoaGhYeFhYeFhYWHhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoeHhoaHh4WHhoiIh4aFh4eIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhIOFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f35/fHx9f317fX18fXp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHhIeFhoaIhoWHhIaHiYaGiIiHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYSEg4WFh4aHhoaFhoaGhYaGhIOEhYKBgoGAg4OCgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYWGhIWEg4eIhoaGhYSGiYaChoSGhoaFhYeFh4iIhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OFgYCBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIaFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhYKCg4N/foCAgIF/g4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOFhISGhoeIh4WFiIaJh4WEhISChYOEhoKDhYSFhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg39+f4B/f4CDf3uAfX1/gn2AgX1+gX59fX19f3t/fHt6eXp6eXp6fHl6enp7e3x6e3t7fH1+fX2AfX18fH2Af318hoOGhoaGhoSFg4WChYGBgH9/gIB+f4CCfX5/f36AgIGCgoSEg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SDg4SDhYSAgIKCf319f35+f4R+e398fICBfYGAfX2DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHx7fX59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4F8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SFhYSBg4KDgoSDg4B/gIF+fXx+fnx+g358fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt9fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dXU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXU1dTV1NTU1NXU1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19jc3d3d3d3d3d3d3d3d3dzb3Nvb29vc29vb29vb29ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLmzeHNzc3Nzc3Nzc3Nzc3N6goGBgYGBgYGBgYGBgYOLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OlmTIpKysrKysrKysrKyspNUVDQ0NEQ0NDRENDQ0NGU1NTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7P0M+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpps4LzAwMDAwMDAwMDAwLztJSEhISEhISEhISEhHSldXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaugRT0+Pj4+Pj4+Pj4+Pj1IVVRUVFRVVFRUVFVVVFZgYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPjs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Oz87Pzs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0crKysrKysrKycnJycnJysvLy8vLy8vLy8vLzMzLzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7Ozs7P0c7O0tTPzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbY19fX19fX2NfW19fX19bX19fX19fX19fX19jY19jY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Ozs7RwafR0qig0M/RpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs7SqY+t0c7Ozs6bt7akosCTnqzTzs7Ozs/P0Z2PxbSeo6fWr5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/P07qvqrifmpOdwJ6YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Pz9OfsZ2omqGctJicop2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz9HAnImen5uWrbmGnpavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Uo6KBoJibgaCWeJuEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDRxJ+Be5qFn6iInHmfqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q1auvvMDTdrSwppyKva2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJh3+FoJWml5edpaeWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HG09PVnJjCoqukm9Cfq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg0tHS16iHzsaQjbfXwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dLPxdTUx8PV0dXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS09TS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2lpeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCCd3R8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLW2vL2+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3hmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpnXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXVuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnZGpkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwsbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m9urq0v7i1uLOvu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+urW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamdmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWRmb2lla2hYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg+PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2diXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8G/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9jXmFhTkhNP0VAP0RDPDs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPEFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcrGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKyr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT0+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBwsO7uLO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pXF9gWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDuMCwr7W4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nrK+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXVpVSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBwr7YwLSxtLK3vrmztbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcPQ0rTItLSwtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE+SUJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOyrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLJ1cmXzsS0srS2srSvrbu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG7xbzBy83CjqfJubS0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OzpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+ysrq6t7e4uLu0r7SssK+knLC2t42JtbqyrbOwr6yutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWjm6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGvvcqypqitlYuNdnB/hJ+MhaG3tKuytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsaOlqJ6gnJWTkI+RkJiQlpWYlp+Ym5mbo5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpb3Uq6KdnIBsgXRhY2Vyg4qbt7Wvr7O1qqetrKOcmZSOkZaXmZmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZabl5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6kqK6trKurr6qvqZ6XnqWdnqWmpJ/Az6mSfHeBXmuRdW9lX26QoL60sbGwuK2noZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKmxr6KZnJ2eoZmbm5qYmZuUlpuWmJyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5VTFJMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho5+ewseZeGNhilxXgouQiGxSianDs62trLCnoJ+ioJeRlJugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7issbSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqShn56anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOemaidrp+nnpyhnZ6ampKZnpyhoqCfp8m5iGFadpdaWGFtkI9+TnS0xrOnqqyqpZ+fmZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqefmaagn5+nqKWknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxoreksKafnp2dl5iVmZ6bnKOfna7RqnNZZIyJWFtvabetdlpZoLqzrq6pq6agnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqztK+zrqquo52rp7axrKKvpqGjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHFra3VycGhXW1FFVEhESU9IPkVBNEVIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn52szp5gX4iHd3iFh3WejXJyc5SwrqekpKKgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsDFvrm0ubq0u7ewtbKqurGuu7e+urqqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqefnp+inZiZlJiUiIR9enFrZGhveGplWltGS0xFRFNMREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz49Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJuercmYVm+fmXmSnH9renqNprKqoJqdnJ+empeYl5KMj5eXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zT0NPTzMrCxcbHysfOv8jRzMfFxsTBu8PAvr6+tb2zrb+/wsLGxMfErr64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uMkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E/PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5iboqydn66mpbGqxcbMzs2/sMGopaisraqhnaOfnJ2aprfMkVR5oKR6e25mb5Gpsaykn52gm5iXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K0tfR19LU1tPTyMzHzc3J0szO08zFx8nKwcXLxsjIxb7CsrPIxMvKys7Fyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo56ko5+gpKrDzopYeoaEbmhxkK6vpZ2dnaGloZ6alZSWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTSz9HD0NPW2NXW0svJztHLxs3RydLV1tnV19PW2M7Sys/RzM7QzNLPv8fGysPMzMvOz8XGx7bAyr/RzMvPxcnHv8PCyM7Mz9DPzcrIzri3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKR0FFSEk+O0A4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wsWxtqiipaahoqu1z8+PZHt9b26Ura2clZignJuhop+cnZqWindpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNDO09fW09XQz9LT0cnT0cfQ2NfY0djS19nV1szPz8nN0cvOz7/FwsfFzs3R0NHIy8zAysvF087LzsjEycbGyMzK09PR1c/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Iio+Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1FNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr62qqqudpq64qKu319TV2dnRztDAvMzJt7+vp6upo6SxtNHHjG92cYSprKGYlpiam52hnZqcnpN9cWVjYl9fYWBfYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHG0dTK0NTV1s7S0NjY2NfLyM3DyM7Mysu/yb/HyM3Oz8vQzc7Lzs7Hy8/Qys7KwsnGyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1XRTtAPDMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWspa2uvrSwwNjS19rc1s/Ny8TT0MLBsaqtrqulsrHEoW1sbpChnJWTl5yen5+dlJaYlIlrXl5eYWRiYGBgYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVyr/KwcXMwsjJwszDxcjKys7KzczQzdPLxcjPzMjHysTGwMXKy83P0cbQzs3NzM/Fx8C3ub3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV4cHFrbWdgYHFoWVhoVkxGTElQUEI7RD47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzs8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfCuMvV1dna29jMzc/I1tXFw7ewtamiray4vKFvbY6ajYyXlZCUkpGWlpaQjHxlYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL7Gyb3Cx8nOxMHHwMfNx8PLysvPx8PE0MjGwcXHxL7Ax8vLy87CysvIx8zQxMXHu8fDyMjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd250ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vbrNzcbQ1dXZ2tvY0MrP0NLUycS4vLyupbaqvrqhd4mWjo2Wj4aDhISCfoWFf3RgXF5eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsnGwsPAw8fKycjKyMHFzMbIy83JxMLLycHCy9DEy8i/ucG7xce9v8bPy8O/w7vJxsi7yMbEyr+9wsvGxcS+xby8v8PEy8XEvMDJwsXH0sTAyL/KycbHxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZqjoJuUe3ZzdGZpWmFubVpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvP0czHwsPHzc7OzNXP1dnY2dDM087O0MrDtsS/tLK6r762iH2VjJOXhnqAhYaAdnh1cnFfWltdYGBiZGRkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjAwcHFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDvrzBzcPGvr61wb3DurzGu8K5s7zFxMLCtr+1tb2/usvDvLW6yLq/vcvDwcXCxcjGyMbQxsLMx7LHycPOzcHFw8C9srewsqeoqLmwpa2wq62slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGw8TIztLLysrHzc7P0snQxtXU1tfOzNDGy8fJxLzIv66wtrS3r4KMjYqLhXiAhoaAfoR8dHVkXFxdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLW3tLKztLq1vrG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bAwry4vcbBw7u1rrK2ur60xLe7tau4vb2/vbC6tq+2urLFvLauu7+0trTFvb7CxcDDxcbIy8XAxsa7yMu/z8rHw8bCw7bDvb22ub7Hv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDMzsjKycvJysTPzdLPz8bJxMnEwr67zLqusre0squMkIaJiXt4foaGd3iCfXRoXl1dXV9gX2BkYV5kZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7i4tbCrrKeeoqqnnquts62pq6m0rbawsqmupqyyvLq2w7m6urGrtbm7tMK6sL+xvby7trzHucK2raqosLG/tbe8r7CnsrO0u7yrrbWlrrauurGwqriwrbuuu7i7wL+9ucK/x8PFwbzGwcjLuMXHxb/Gw8O5xMbCu8bJzMuzucK8urKIcnZ2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs7Sy8PGwsXQx87CxMbAxcXDw8rCycvBwr/Fvre5ucezr7S2r62mkYmPkXx4foqFenuEgXdvXl1cXV1fYF5fZGNiY2NiYF9dW1taWl1aWlpaXGRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCkpp+qrbW2sb25r7evqK63tLS8uLS8r7i5tLG8wbHArqWooquxsrOnvKqrqKusrbSzpaitoaSuqbKlp6itpai3rLCyt7q6u7G7vb6+xL+1wcDHyLe/wMS3xMK/u7/Ewr7EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XR0M3EyLq6zMLMv7zKt77Ev7vLuMLEw7e6wLq1s7nCtbGys6epk4OJjYF8foB+eHR/fHN3Zl9dXF1eX2BeX2NjYWJgYF9dXVxaWFpbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSdpJuYkqGjqqOin6Wlp6Wsn52bpKassq+2t6ewrKeqtKq0urG2ta22ubGvurmxt6SfpJ+msaerqLmqpKeoqKeyraCnpp+bpKWsnp+npJ+gsa2trLK0srSwtby2u8HBsrq+w8GyubnCs8C9v7W4u72+vMLHxMLDv7/EoIN3cGthZl9rb2BUWV5ITmdPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9taCelJ2hprq2q7Ozu7PE0MnLw8e5uMnCzcC5y7i8xrm1xrm1wMOwusG3squ0u7aqrK6lm4SHh4F9enV0b21rampxaV5gXVxcXF5gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeVmqGWm6KYlo2eoaKmm5+fo6Whp56bopufqrCtsbWiqaqpq6uktLmtt7CssrWusrWusKqfnZ6jorKkpqm4raKmpp+orKqZn6CemZ2fpZqao5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7OzubO9tLaxsbW0v7a9wL3Dwbq7vZeDenJrX2VeZGRYVFddSVdcS1BHSUlGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xtDIyMHHvLzFxM+/usi5ucC5tMO2sr2+sL6/uKiksLSxoaipnoiGh4B4c25wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaRnKGiqJ2bnaWmoaWcoKCamK2ura6yoKWiraumobSwsbGsqK+yp7qzprahop6bo6Gto6Gptaqio6adpaajlpiel5manZ+al52dnJysoaumo6Smrauzs6q0sLKqsrm0r6mvsrKzt7Ouqayusriwura5vb+3srGUhXl1ZV5lXltZVlNaVUtcUUxJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLNyMfAxrfBwMjPuMLFvrS7u7TAuLS7vbG3urWloayzqqCnpJR8hISAeXBydHFpZmRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYWFhYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnqmcmpqqpq+wq5ujo7eqoJ+uqLappqetsKO3sKS3n6KbmJiqpqGarLiwoqGknKKgoJOVoZSVlpuYl5aXnJWfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxsLCur6anp7KusbSvvLS6t66jlIF5dWReYVZZV1NSVEtNXkxQS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Oqu8C9wLmutLjCzcnGw8S+xrjJzLPCw8Kvvb23vb63u7y1tbexoqGqs56elpuGgHx4cmptcnRwaWhlZGZiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKannpyfpZ+qr6afoqO2qKChoqi0oaWnpK+lsK2stZ6gnZWUqaGilKyxsZ6io52dmJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpaukpbCnpaOrq62mqK6vrquoqqmzpaarr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFJIUmFNV1BPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepKett7u8wcW6sbm1xcrLwcTHx8i3xsW0w8DHrLi5v7i/vb65uLK0r6Cgqq2Wln+Rh391bmRiZ2loZmhqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWVtXVVhXVFRXVlNUUlVgYF9gYV9gYWNkaYGTk4iQjpSSk5yUlZajmaCWnKCloa2lpKOio6GbqqulmZ6lsamgoJ2lq56noZ6sramorq2ioaKUl6ObnJCqqLCbn6KfnpeZk4qekY2Sk5WQmJiTm6GinKSgoZWgoaSmm6OrpaKkqqSrrqWtsqmmpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlZSR1FPSFpcT1JJVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6PDw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njo4Njk4OTg5OzlAOXu1tK20u7Kvq7Gtnaenr7m5s8DIurXAr8bJzbvCy8zItsq+sr/Fyq6zusS4vsO/ubmwtK+eo6inlI59i4R8dWlpaWxnamxta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eXl9fYmRtjo+EkYeQkY6Zk5SSnJqinJugp6iqqKqmqKWjmKSupJSZpa+pn5uZm6Cer5mbqrOfpaafo6OhlJOblpaSqKmsmpyfoaCalJCMmY6MkIySjZaVkJ6hoKOcm6KVm6CioJiiqKOiqKugq6+krrelo6SirK2qqKuusreyvbWzq6+YhHNzaFtYWFJVUkVYTFFbWU1VTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaevrZupqKy3tqy8yru2v6zMx8a5ws/Px7TFvLi8xMqyrrrCub/Bv7i7rLKpn6KmopSKfYF3eG9uaG1ubXBoZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/jJCKko2XkZeZoqCbn6qppq6qp6+jp5mfrKCVlqSop52XkI+anq6Wl6eqmZ+clKWhnpKQk5KTlaeqpJqZmZ2dlo2MjJSGiY2DkIuSlZGgnqCjl5WflZqgop2Tm6Wlp6iooLGwprG8p6CjrLSrrqewtLC5tcCxrbGrkX1xcmJWVFZOUklHVlFSUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6u8LL0MqyuLm9v8LFs7K0uq+3t7+4u6qsp6qmpqGQkn9rZ21ucm5xanBrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKl4mUlJebmZ2omp+ppaSqnaeYoKWbko+eopqXloWEkpqjj5OinJWWlYeimpqTi46LkJqjppuVlZebkJKHlI6MgYuNgJCKkpKSoZqfopWUmJiVoqWZjJikpqimoZ+0sqiyt6Gdoresqq2ksrKmtbu1q6uxo4l4cm1dTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHTEhHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSno6mloKmlpLOqorLDtbWys8fGuLvEys3GtK27vra5wbGvq7OfqbG+tLWno6WspqaVipd2X2Bnc3F2cWluaWVoaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGEjoqUkZOdoI+am6Kho5iklqGblY2HmJqMc42CfY2XloWQmZCTjo57mY6cjIKKgImYn6KekJOYloSOgpN+fnSJjnqQh5OQkJ2amZqQlZCdjqKjjomaoKGjo5uitK+sr6yfmaW4pqawobCunLC7qqmvqpmCdnJiVU1ST1BNQ1NOTFFNQlBRSElOU01ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTE3NjQ3ODk6OjY1Ojg3QTd4t6KjtKilpqijpqWmpqazp6W0wbivtLDKxbi6wc/GvrOtu8Ktr8WvqqSpk6CpurKqqJmgpaShjIeSbFdXX2hnaWdobmNqaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeLk5Cfl52VlJaUjpaJf5OJXztXb3uLlImAi5KMj4WGc4qEloF5gnqFlJ2Ug5aOkI+Dhn2SeHJvhY1+iYGRjY+XmZiTio+JnIeel4eIlp6aoaCXp6+praionpets6KmrZisq5intKKpraOTfnJtX1tOU1JWTERUSlBNTEZOT0lGTFFNS09KSU1QRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6KpsKintMG5sLWwyMO4tL7PwLmvr7bDqKzHq6WfmoSXnrWooaCQn52cmIyDiGNRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQX+VkZF9iZSMhIqNmo2VlYqSiIWVhniIf2BKUW54ipGEfYSNiYV/f25+f5R3dXV3hI2ZcFGNiIqHfH54k3Zod4aIfoqIlYqNkJGWi4SKiJSEmoyBhJKblp6clKSjqKmlpJ6bsKqhpKSQpaqWoamcoqaoiXVsZV5bSFFRUk1JVU1TSUxLT0lIR0tOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+tqra8tri3s8K8t6i6ybm2qKm2t6uzvqigmJCBjJasm5yShpmQkoyHgIBfTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJKBkpmLj3uGj4B1f3hzbnVwdI2NgXl9iqqFeXpodnuOcHJteIGLjJJ4eoB7gHZzcpJ3Z3WEhISEe5WJiIqMioB/hIuMf5SDe4CPmJWclZGfnamen6CdoKmln52YjKekk6Cflp6epIByZ2BcXEpWT1JHS1hST0pNTVJKSkpNUEhMUUxSVExFSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpijoZicn7Spr6mlraywsaq9tLK7uLa7tbKgt7uzq52eraqqtLCjnJOQloOQn5KYhn6ShIqDfn54YEtJSUhHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUVNWXnWDfXlnd42XmI6PfWd5gXZ4gImPfISYkoFyh498dntva36tfHOQin97hpKBfX90ZnZ8hmxvaHN8iYyHgGx5cX1wbXWPcWlxgH6OcEOLhIKDhX93d3qLhX2LenV+jpKPmIqSmpujlpmdmp2eop2WjYqlm4+el46WmI92bmxlYlpXV1RRSlNVVE9QTlFWS05LTk9KUU5ITk9LRUM8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXoJ+WoKavrK6rqKmwr7GrvLisu765s62om7GnrZyQlp2mqqWimZuRhpN7i5KPkXx3hnaAfHh5eGBLRkdGQUBDRElMTE1RUlBRU1VUVFVWV1dXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFhdZXBybYinqsB+dXlie3hufHmIkHl8i4VvbYyReHN4amqAgnKWkYuBfZaASZOYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmltcH9zjYmEhnp9fnt2b3RzhYJ5gXdwfI6MipSDlpeYmpCTlZaZl56XjIOJn5GLko2GkJZ+bWhtbm5XVVdUUlFZT1JVVVNYVU1OSE5KTU5LQ0hOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6lrbCirKqota+urLS/q7zCv6aimpWlmJ6OhYyWoqKZmZKVjXSPe4KIjot5dXtxenRwdHZhT0VHREA8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4l2gYiGdGyakXRze2prnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtxf3xncXF7bpONj3tzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlI+XjoB5iJeIhoqGgJCHdmpqbmdkV1FaV1lZW01QVVZZWU5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiakZmWpKiunrKfprquq7KwwrG7w8eblo+VmYuNhnqFkZmVjpGNkYhyiIN2iY6KfXR1c3V0bHZuZVVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT09RVkxBSVFJYq+zoHF8eG19bHKDgYWBeoSGhnlyoJV0eIBzdZSHNXGdqJ2OoaGEooV2cIZ8h3xzjK2NiYBoZmJpbnJtcIJ1aW9YdXCOmpJ3bH97fW1xbXCAenN2bWJ2hH+GgIWQkYqLipKLkYyLj4N1eIuPgH6DgH6PenFwb2tgW1xdW1lYYF9TTltaWVhMSEpFSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoeWkZ6kp56vlaW1qa2xrsGyu8HGl5CMlJCBiX1ugpGSiYSLiI+HdoOFbZaJi354eXpwenJ7aW1eSlBHPkA3NDQ4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8fYWDf4x+dqKZeX6GgYWZhJucYYaqn52KgpCOeneIfomIjnOKl4+De1xkcXR6e3eKbGdqYnlvhY+Cem6Bd3SEenB0eXdrbmldd4d9h3yIh4+Ai5OXg42FjYZ9cYR/hHx1d3t9iXVvcnNlZ19bWl1TW2ZeV1FVWVxWR0pKREtHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyNeIp/lIySnZ2fppGgq6CxqK/AsbrFupaOkZSIeoV2a4CMkoN+i4SPjXmDgXSihYx+foKAcoKAfGt4a1NXTEBFMjExMjY3Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+MenyJhn6Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbHyBhod9jmhnaHh+boWGgoVxhIVHa4B3cnl2aG1rX3Z9g4h/iIWMepWenIqLiJF/e3WLdnx3bW93fn9ycnFrW11cW2NjWGdlXFVQUFdZUERMS0ZOSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpeSl6GdrKGmuK+zvbOXjZKLmIt9dHB/iZN/fYyDk5V9hn6GpYiJgIOIhnmIi391hnhfY1ZLQjYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzk0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiZGBmpWCoaGXlZuapa2Tmruxp7vHw6iLjKGlj5SJgZB7coOdn5GcfnaFhYqPh5BpaG+DgHSMhoSLcYaCd4eAe3aFfW52dWeAlI+GiYiHiIehq6KWiY6Yf3uCiXp6b2dreH54fXFqY11aWl1pXGFmX1pPTE5YUlFJUEtETkdDS0RDQURDQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnVwZ3iDe4CMgIGQj4uamqScoaymq6+wl5GRhKGUhHh3f4yUfX+ShpOWf4qAkpuOhIGCjIuCio6EgIp/bHBqXUNBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jKGemISShYKPoZ+TmJKEioWPmJGWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGWhpOKj4+WpbWpm42VooOHk4R+f2tqa3x/f4ByYFxjXllmalxsa15YS0hPU1FOTUxGSVBERE5GQkNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuaFlwg3B1h3F2koZ+l5aalJ+fnKegqpaTmJ5nZaSafoSSknqAkYmRkn2KhZmSkYOAgIuNiYaRh4WIhXh4f2dNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGampmnkZGIlaKamnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N8fnpvZ19bYF5hZmNgZ2dcUkVLS1BPSUpMRkZNQ0hMRkZDQkdEQDo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcXVgbn1id459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Ljo17ioaPkI6Cg4CJjIqFk4WDhoiBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49R0dBQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKeotKyxt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsraqji5aYhaamoKKXgqaZjaKqqKSHhZOjoKCqoKSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWriZqKk4qVent+hH1mX2dbZGFdY2NeZmZfW09ESkhUT0ZITEZLSEVGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljWGpwWHqFdoGUhYiCm4OSkI2S2sidlnNWl4iPiJyPfIaMj4uKeoiCh5GOg4WAi4WFiJKGgoSJhoeHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJUVVVXVU1bUEdHRDw+PkZIQ0RANzs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHIxKuzxbass8CzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsbGbmZKan4inr6qklHafpJehq7GzmJapraiutbuyuqyvtaKxrLG1vLe1rrWgp6ejqJupsK2yuri4p5y3qY2lj5KToIZ5gYJ0WGBjVWVhYWJfYGZfW1RKREVMVlFJSkpESkhFQUBAS0RBTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hn6AjXu/u6O8grSUk42bj4SIj5OJiXmHgIyTjIeFgY5/gYmPhn+FiIWKh5F6eW5dVkBFTjw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFdPX1VJS0pBQD9HS0ZFQzs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMq2u8S9s7TBt7jCtb+wt3SxtKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KRpbGtpa2rp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6uL+3ure5ra2xprGqrb6wvbvCwqyZu6iVrY+YmKqJfoF7aVZhYFdpZGlkVltjWVZUSUhHTFFHRElKQUhEPj9CQktAQExDOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWlZad2pwf4+EgY6FbnpzeIhiuKGao4mVlJaTlJONkJeSh4d7h4GNlYqAhIGKenyLh4Z9ioKBi4SVfXh6dWVPXGRHRUw6UWRhW15TRj47SFBEWmRRUVlYWmdaVGBhTVNPRUE/SUpIRUZBQEM9RTZCPkhHS01TWlRelK+4tbq5ycC7vcrMu73Au7e1vLu3vrW6ssZgdbKlsZqeq76qpairqqSisrWhq6eelZaemJ+upaempZ+kk6KnsLOosrK8tsG908nJ08bCxczCysPAvr2/u7y3tLC5t7fDusa+w8mwnrqqoqyPpai2iYF9cV5hYFxWYV5nZVJYYVZSVklFRk1LQD5IRD1LQj1CQD1GPTtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdtbHGQjYWQc2xzcnOI1cC1maCNlZmakY6XkZaWjoaHfYeDjZaLf4N/g3h7i4SHe4t5gYqCl390fXpsZXB2WV1cUGVlYmBlZF1bWFdcTWRtVVJtbl9vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVl1aXJO5wLm9t8bBu7nKy7u3ura4ubO4tbWutraZZHWpnq1wXqKtnJihopuknqullJ+fkJSPlpiXqJ+ln56amYOknaykqrCtt7C8uNTQztbPyczSzM/OysfAv8LKvcG9wsDFxMbKv8nPtKS7sbWwm6y5vZp+eGpcX1tYXWBZYmJRW2BTUUtDQkVGRTxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQjIl8gYNze4qDhXyKdIKKhpV/c3t5bG11fGlzZWlsaWZqamlgZmlobVptdJetpLyHh2dbb2hdWllUSEpOUEpLUUxUUUhMQUpHS1BfX2JnamKXt8ewubO7vraxxMe2sLmxsLuss7Gnq7esjbannpynmk6bno2OoJaRp5illYqTk4iRiY+RkZ2boZiblZaHnpmmmqyvqK+ns7PT1NTW0cvP09TO08/MxsPK0L/KycvJ0sjNzcPR0rivxLzEuqa3u8SigG1iW1tcV19XWWVZUFxXTlFDQklFQ0k7QUQ+QUg/P0E3O0Q+QEk9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OT05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CQmYNocW95eYOgqp6ml42bm5iLjZWRmo59iYyFjoqKi5CIfISCcH+HgYZ7h3KDkouPfnF5dWxweH9ye254c2xpgHBtY2ltcHlpd31+y7/C36dtY3hvZFthYEpQUlVOWV5QXV1OUE5UUVVUXG5ud4Nylq64rLSosLarrb3Bsau1pqW4p6yuoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSKg5OVmJeUm5GbmJmZnp6rrKSnoaysztLV0c3M0tPT0NTRzsjD1NHIztLT09bN0tHF0tbGwc/IyMOpv7jQnXhsZFxhXFVeUV1aT09UUE5IPkFHQkNGPEFCP0ZFPkA/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8yNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bXdwfX6AoZ6eoYuNmZOTjIyTkJaFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBwd3Nsc3x8d3xzgnhxa4BycmlvcXp5c3u+y5p+jLGDdnKFd2hhal1DWlpbV2ZkWGVrVFhdXGBjXWN4e3+LgZmqpKSioKGop6qxuaumtKOiraKjrqKnsZ+JppuVk5GKko6IgpSJa5WijZmEgYZ+kYODk5eti5WNlZmOhZKQnZensKKgoKSkqMfNz8fBy9DT0dTSztPNxtbTzdTY1tbY1dfVydTazcrY1tHKrcTDzIpxbWJfXldSWFJbUEpHSklKQDs6O0VDRDxDRD5IQz9DQjs7OTw5R0M0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKJgZ2VnpSFi5aJjoqIjoiPgHiDlJmLjYiIi4l+g3hze32Eh3eAe4eRl4GEb3hwbXV/dnh9dIZ8eWyHdnVufXaEdXl7nbWMPEGKxqV+jXxqZVdJQ2VjZmNoamRveVtfZmhrbmlugISIkYyen6CekZeYn6SkprKkpbOgoqWeoamgorGch5+SkpORi46LhoOPhH6cnIyNgoSFepR+gqqVo4ySipiSi32XipqRq7OYmpunnKe9w8W5tsXN0dDRz8vSy8nUz9HV2tfX2NTZ2M3Y287J2trS1r/MzbV2dW1jXFhSVVBZVUZGSklFRT06NzpAQUI6R0VARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXOGjXyXkZ2LfoeSgomGhYqDiH15hZeXiY+Dh4aHeoR5cXp7hIZ2eoaOjZ16jHB9b3B6f3J7gHGEh4Bujnp1d318gnV/fIeJsHRZqsK3jZKBcG5jPV5ocnBxcG54d4JlaW9ydXhye4uHjpOSm5agloiMk5ugm5+qn6GtnKKamp+mn5+smYyajJGTjoV9iIeDhYuOoJmTiIOHfm2ZeYSZhoiTjI6VjIZ7m4iTj66qlJWXnpimrrW8qK29xsvIycvLz8jD0crU1tjX2NfV29fT2tvW0Nra0dbI1cyUd3lnZlpZT1JTXUhCRUlJPkE+PTg6PT87Pkg9QEJBQURBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fYSYjoeLfoaHgHeCeW57e4eCdHqSno2hdo92g3R1gX10gIRvgpCCb5KEdXyBhXp2h3yJuMalw8q4gpacj3hwZU5lY4J6gXeGopCLeXl3e4R/fIR2bZSWlJWPmJGDiY+XmpeXppyYoJefk5KXo52Zq5aRkYuOkoOMhYmIgYaQkZ6cmYmFi4GFl3uIiZ+XkImOiouCfKGIkIu8oZiTl5mcqKalrZ6ntb7Av7jHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvHhXl3ZWdjXlJWVlVNS0RORDs9PTw5Ojw+OT5BNz4/QD1APjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVtodHp5bImNknd2eop8foB/gH2Fe36CkYqFhnqFiHt1fXVtfX2GfnR/kp6Rn4OSfIZ9eI9+eYuKb4ObgHSZhn2CioV8fpF7kKmOkMOgvYycpJx+ioR9iXKMi39zppqcmZSFe4+RiYRpR3GhpJ2Mi5CShYiLkZOVj52bk5SRl42MlZ+dlKGUko6OkIx+kI+Oi4SIkpaan5+JjJSRnZCCjH+mmYiFjoOGhICkhoqLuJidkZSWoqegnZ2do662urSrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbt3d3dmlpY1VeWlNPTkhETEI9PT45OTs6OTk8PTZAPj49PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxc3iKe3t/fYB8iHt9e4uHg351hIZ5c3p0bYF+hH13hpuhm56UkoCMh3+Yh4Cckm6IqYV6oIt8kY+DiYScfpqRiY2jop+QpK+gi5GLhouBkoZXcq2Ln6ycj4SYnJCQjlyDopGCjZ+TlYyHiIySk4yUlZWQjI+KiJabnY+VlpGLk5SGgIuJko2Kip2XmaOihpOdlaCKioiOnJCDiI+Ag4eFpIWLkLOYnJKUl6GhnpmSm52nsbispLzBx83Hxs/Mz8zP18/R1K7W1dja2dra19bZ2Z5ue3NlZVtbVlJVV0NASUQ/Pz46NDk6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieGxifpKDb213i3h6f3uBfYZ8e3aGhYBzcIWCe3Z3dnSEg4V9f5Kmop+mopeKnZCUl4qKp5dyirKNhKeShJmUhZqMo5agmJOJm56ik6mwoJGVkI6OiJWLbo23hJrEyLKdoqWbnZiWkbKQZKTNyJWOhoeJkJKOjZOUioWKioaWmpuPkJSTh5WYhH+Pi5mIjpCql5eko4iZnpaaiY+Gl5iKhY+Ngn+Gj6WIjZOpmpeTl5mhmJ+Zk5yaorK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6BcX1mYVxcXU5JVFlBQkdEO0E+ODM3Ozw6OD02NDo6PDo3Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGPfXxtfoh4en57goKDf3Z2gIN8bW6Lf3p8eHh8hIeKfoujs6ejqrOil6efpaSWla6ig5G4lZGzmo2hoYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmZehwI6jybmrnKOmrZmSm52ynYWFqKKcmIWJiY6VjYuTj4iBhoeJk5iVjIuUk4aVmIaEkZCcdZGYspaXpKGInZqTkIqQipebiYuWjod9jJieiZCQnJqZk5iYn5SgnZSem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LR1tjT0Ni6cXh0W19UX1VPSEpOREJDRTU+Ojc3Oj88PDc9NDM2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p6boWGenyEeYGGgX5weHx+fW9yjXp+gnx4houJhoSSp7usqLK9r6Wts7Ooo6GwrIqatZ2iuKWVraSXqa24p6Wjn5qpl6mjr7CqmpmclJWRl6CYmru7rsqhara4q7CUmZ+jrJOXvaNeqrKDioqNlIeQfI6OfYOGjo+UlYiIk5aMkJaNi42XmJOdmbSXlaudi5yUko6RkoyZm4qSnpCLiZWfoY2UjZianZKcmJ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8fC0aDGyc3NxdfW0cvUoW95Z1tZUl1QT0VDPjxDQUI4Pzg4NT9HPTw2PDM1MzQ1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEo/i4p/gXOGh32CiXWDioJ/bXx9fX9wd4d3joKHe42PjIaMmarCwK+9xruztMC8tK2rs7aMqLOtrb2rm7ukqK25uKunpqKipKKpr7Kxq52cpJibmJeeoqalkqS6r6nAvK2tsrmlpah+iIacrbywg4yMi5CDjoORj3qBh5CNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpeOkaCRiZSbpKyUlo+UnJ2ToZ2bmKChlJqep6akoqSws6fBxsOvsLq2xcTCv82mx8THw7zV0c3FyodycWBaWF5aTEpCS0BGRz5BP0I7OjU+QT09NTw2PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRD9DRlxlR2BpZ1pdXJOMjIh7h4yHg4x1hpGKgW9+e4F/cX6Be5V6kpSUmJCTlaezxsm/wszCw7nHvLuvq7m7mLO3urLArqXBpKuwvL2rrqujo56nq660sKqcoKqcoZuWn7C1p4ujuru2wbysqZyypaSplIWOqcTDpIKLj4eIhIaVlI16hI2Rj5GijIyUkY6Jl5+Yk5mVmKagrp2MqpyOlo+SkZWVjZCVkY+hlIaXn6CynpSalJ+gmKSfmqCboJSYnqWjpqakr66lwMTDrqi3tsnDvrbPssS/xLyz0cnIwrVzd2tbVlpoUUxIQ0xLS0pBQT1DRDw1QUQ7OzM9OEIzMzIyNjJBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWU5lXGZUY2qZjZeKjIiTkIaJeYeUkIFygHyNf3iHgoKQeo6hlqiampi6vsfIycHSycrCzb3Cs628vqi6v727w7eswqmss7y+qrCqpKWkrK6zrba1oJ+vn6WimKOzvambqL3BpLa3sKyTsa2srZeHmqmnpZGCjJOllYmBdoqReoWNkpCen5OPlIuPjZSjmZaclJSjnqqfkaWajI+Pj5WWiHyPlZKSo5qVn6GctaWQnpelo6Klnp2mmJ6Wl5uko6mnorKsqLzAxK+lsrfMwLmvxLO7vsK4rcLDwsCYa3hgV1ZaWkpLTUpGRERIQ0JBREw6NERIOTs0PDdFLjEyMzUyQjI1U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+KoJOEeIV/lX9/kIiKkICWoZmupqSYwr3Hw8fF083Ozcu8wrewuby0vcu8w8G2t7yts8C6vK6vqKCpqLatrqmyt5ueraKnoZ6rt7iqpbC/xbG9ubSoqrW0rq+XlqWsqKCRjpKyxaeVjn2SlX2IkpmQqpmYk5OPkpWTpZ6SnZmUoaOinJifmIuMj4+eiFqQlpeSl6WZZZijn7OllqGWrKyqp5ueppeYlpiVoKSopZ+2q6q6u8O0pbO1y8C4qrassrq4rqi4ur24gmptWVZTVE1FSlJOSz9BSEVESEhIOTVGTTs+OD1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnBFaUlSZWJMRqWUnJeil6mWjZCDh6aTiIKHgpyDg5WQkJSPmqKfr76voca8xcTGxs7OztLKvru2sbq7u77PtcO9uLm3srG1s7izq6acq6y5qqmnr6+Yo6+kp6SltcCwq6y0v8O6wLq0qLm1ubOvlqWtrq6ki5OVoY10wZp9l5mEj5aajLGVm5qVkpOZmaWjlKCbl5qpnJyhoJmKjZCWnGBKlpyalZqlllWXsJ+vnJ6klK+urKWaoKWUk5mYjpygp6KZtKmqs7y7u6qwsse/uaasq62xsaOhsbK0pG9sZFtZTk9LRU9QUVE7SEpJR0lDQz46S1U/QTo9RU0wNzU0NDpCNDRNV088SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGYh4uolo6Ik4Wfh4Sdl46doZujpLXItanGusLDx8rJyMzNxr67s665ucHBzLXHusG5tbqwr6+ztaekm6q0taqppq2smqSupaSorLq/qKu2t77Cv765tLPEsrm9rKOvtay5poibl6abdr+fhJmdjpOZmouul6Gcm5aVm5+hqZ6nn5maqpmhp56YkI2RnYNudpKimpWdop6QrrKiqpSoqpeqrqSkn6WokpKZnIiUnKKdlrGnqau6tr2zsq2+ubego6eopaecm6ypqYxhZGBeUUpMRkhNSVZMPU1FTktMQkNEPFFWPUFBQkRPMTg9Nzc/Qjc1VVhOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH9lXkhFq5WcoZ+7r5mUn4yTq5uRkpOJq42Hop+MpK2Uo6O2xr60wLrCwsfIxcLNyMG+ubKvuLTAwsq1xbLBvLS6qqmtrbCjo5iqtLumqaarqp2pr6ejqqu+vKitvbS4vse8t7a4wbK+wbSptbervqWPopiSop+8n4maoJmXnp6Pt5+pnKWim5yhmqils6GbnaacqKqemZWPlJuLl4mMpKKUnaKeobWvpaSTr6uZq6qdnaSjqJGVlZ+Dj56em5WppKGhtLS6ta2otbKznpyipZqXlZiqoZ52X1tfXUpIRUZNUUlNRUZHQ1NMSkJFR0FWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkRASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5Z1xGQ0OccGJHRaeXpJ+ew62bl6WYmqmclpubj6qWlaemla2smaKrtsTCvL63wcLAx8O/zca7vbmysLizv8LItb+wvLa4tqakq6ytoaGaqqrFoqSpq6aerK+roqmov7inrb6xuLbHtrW5uMCyv8K3tbO0r76jl6OWlJuUrqCQoaOlo6OfkL2kqZ6oq52doJumn72imaOfoqmroZ2WjZWek56Hj4SNk5+koJ61rKWblbGnma6mnpmpnZ+NmJSehI2gmpuTpaSamKuxtbGrpaqtrJyYoKCSjpCVqJ6UZ2JYYF1OSEdKTktIRURJQD5RSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNDZAOTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm5SRjxLeGViVkyimqOcnsWsoZ+snp6uoJKjn5aln6aqrJe2saOqs7bExL2/tb/Cu8jCvsrHtbi1tLCzs7fBxba+sbi1uLWfpqyqrJ2dnqWkwaSfqq2gpKmtr6KmqL21pbG9uba2xLK0uLq/s8TBuLius7W1o52llZGUoa6gmaKeqKiro5rCramerK2bm56ZpqC+oZ2kmKurrKaimY2an5KfiY5Xf5afpqGguKqmk5i1o5+xoJ+arpaejpiTnYGOn5eVjqKjlpCmrrKrqaGipaWVlZ2Yi4+RkqSeiWBjWWNgS0hKSk5FRUFGSj49SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtOnp+hmZ7DqKWitKKdsqiTq6Wgo5+tqaydu7CorLaxyMXBwrLCw73Gw7zEybyvsLatsLSvv8S0ubGwurSsmaiwqaqanaWhqMGsm6ywnKqjrrGppKi9tqe3u76vt8SttLPDwLPHtLu3rLS2raqippaVlKSsop+fmqirsK+vu7KmoKmompmYk6KkuaChpJOvr6ylp5+SoZ6Vno+QjZWemqKep7SmpoyYs5ujrpqdm62QnpOVk5l/kaGWj42foZOLpqywpaahnKCekpKak4WLkY2cnn9gZVpnZUpJTEpSQkNASUc7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+joJygw6mkqrOhpLSqlrOsp6KksqyuqbuxrbC1tMbAxMO1wMS9ycS1v8jCtKu1qK+4rL/Ds7eurLe6pZmrsquqmJ+ml627tJunsJutoK60sqerubOourS4srnAqreyxL61xqi/r623tamnrKGXl5GmpaKimJilr7iusrW2oJ+opJqVlZOkoLeipKWWr7Gyp6qmop+bmpuWl6ifoJihnq+yoqaMl66YpKqXmZ6kkJqNk5eZhZWelIyPnJ2Ti6mpqqGnoJmelYyOmY+BhZWIlJ94YmhcampNUE1OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzukpJ2ipr+nqK+woam1q526saujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDFwLqptqSsu6zAwre3qqyyu6KVrbGtspalp5GquamfprCdq6CwtLOqqba2rbyts7O5t6y4sMO7vr+mw6uwt66pq6unnpiZq6GioZGXobGvs6ywuZqcqaCZlpKXpqG3qaWjorCxtKuzqKyfm6Cgm52lnaKXnaOzsJqfj5Olmp+ompSinZSXiZOWkpWWnJOIkJqZlI6oqKafo5uXm5OGjpiLfYyWhY6aamhsYGxuV1BRWlRBQ0RUQDs7SEE3OlhQZF5QVldFWV9dTUxSTl5LSj5aY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9qJ+doqq9oquwq6OxuKqltrSsoK21va6zuLu6vba2wMK/yMS5xMLAwLjEvcG3r7Wnq7exu76/tKmusbefl6uuqK6XpqiOp7ufpKyznqyisbCzrKq2tLW+rrCxtaywtbLBu8W3q72vsbisraqjsaaepaqfpJiQmZ+zqrOrqrOanaebmpWOoKaltK6noa2trrGntK2yqqScn6ijnpWimZuotamXmZGSnpmdn52Qqp2Wl4SUloqdmZyTio2Wl5qXpqWioJ2WlZeTf4+UhXuOkoKMlmVscmdvcV5GWWZWRENNWERaOUhCNj5dUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoaSstqWtqqavrreqr7W7qKext8W3sbe9wcK1tLrFvszGucLAur65w7fAubK0q6m6tru5vrSprbC1mJinrKqsm6urj6u+nqyusqOrn7Cts66utrK5uKqur7Kota+0vL3Ks6q2tbG0sK+oorOgm6itoKaWlpqasqKtoKWvl6GkmpqSjqOmqLOpoaazrKq2pa+xta+kmZ2tp5qYn5qZq7eil5ORjpecoZeWlKuempJ/kpeMnZyZlpCJlJKemaWioaCYlpKTlXmKj4V7jIqDipJqbXhtdXthRWBqWUlIWlo9e0pGRDZBYlRpW01cYUpbXVpSUlJiYUxLRV5gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lVS0SZl6GxqLGqraakr662qbe1uqSstLfJu7S6ur+/tLO3w8DMyLzDvLe9v7+3v7yxva2nurm3tsK2qqyxt5SXpq6rqKOwqpSvu6StsbOnqKOytLGysbWxuLOprquyp7evtrTExraptrassK2qqaS2oKCnsaGklJyZlbGep5ygqo6po56clpimpqW4p6OytayosqeusbaspZmgrKibnJ6clKm4nJSOjoqYm6KXj5iloJyUgpGVj52bl5aViJaPl5qnnKOgkpaRkJV1hJCHe4WBhIyLbXB3dHt+XEtlbFxLTmNcP2J7R0k4R2dXZlxMXmJNWFlXVFdUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLT1FTFE8M3JrSUNDkJmlrqWtr6uopbGztKu3sregq7W5ybmuwLvCuLOxtcLDzsXAwb20vb+/ur68ssSnqbmwtra/vK6rs7KcoKexraalr6WesrWsq7GyraqptLustbO1rbSsqqyoram5rbKxyMC4pbqwqa2tpamusKalo6+kqZyenJuvmqOjoqORrJ6joKCiqqamuaSstbalq6yora+2rqOeo6mqm6CampKks5mOiY2HkKGglIyUnJ+SkYONkpKdmpiVk4eXkpWZp5ufnoySkY2Qdn2OhXx8fIeJiHBzcX18fVxTZG5eTllmXEZElltHO05tWGJbTGBiTlZXVldUWWddUVJMY1pbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis7SD8zQkhTLD6QaztHSI+cqquiqrGkqaWztLG1tbKyoquuvcy6rsC6x7G0rbTCwtHFxr7Asr3Awry/t7vEp6y3rLO4u8Cvq7GtoKOnraqopLCkq7Kqr6ywr7Cuq7O8p7exsqmzq6ympaOtuqyqscO6tq27qaioraqps6WppKOuqqiin52krZWlnpiemaydoqiqoq2mpK2ruLKyoamioKyvsayeoKeoqZmkmZmPoKeYhoSOiouen46KjJWbjo2Eho+Un5yVl5SGlpOTl6SbnJyLk5GNiX5+h4V8d36HhYZzcnGIdWtfWWBuY1FzcVxLO4R8Rj9XdFhhWk5jW05WVlVXUVxiX1NPTmdYV1dLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlVo+TEWVmK2ooquznKqqsLatubavq6arqr3Ju7C9t8KvsayzxMPOz8O/v7TAwsO6wLPIw6uut62yuL++sq2tq6SnqrCpp6ixprSvqrCurbKxtKy0vKS4s62srqisoKOesLerqq27t6W3tqSqp6ysq66hqaemsbKkp6aioqyXqqGVm6CmnqSiq6Wto5+nsbiurqOmopuqq66pnaKlpKSZoJqWj5ick4KCj4iFnJ+Lio6LmI2PioKLl6OakZCajJOSkZOimZuZio+Li3yGgYGDenSAhIF9c3aLo4d4al5gbmZXZYdjTj9nk0xFYnlXYllSZVRNVlVWVE9cXWFVS01oVlZXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxCKzpKT140RIY+SEZEl5KwpaOrsZirqq22rLayrKasqqm8wMC4uLO7taayr8TJy9K/wbu5wL/CucG5wMStsbWxs7q/vbKwrq2rq6e2qqatr6q5sKixsq6yrbeqt7entLerrKSqq5yjnrOzqKiktLWgt66gqqirqayooKusqbm2qaqpqqOqoK2ckqqhnaCkoqajqp6dp7SvqKaqoqOYpaenqpyjpKOgmpigkY6PmI1/h4yHg52dhoSKio2Nj4uChZSimo2MmZCRkY+Sn5aYloyLhH90h4F+f3h0g396d36BiJ2Pb3FnZ3F4XGFziGtPXplWSG14VWRWUWNPTVVUVVBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EO5aOsaGmq66arKWtsLS1r6umsKqpur67wLCuua6ht6/Jx8jRwL69u7zCvbrDwL6/rrKysbW8usGxsbKrs6iktKilrbOzubCjrreysLK7q7qvqq62rKqeqqyfo6C2raihn6+zorWqnqinqqOqoaKsrai9r6yuraKoqKCsmZCwopiioKeonqebmaqxqqOgraKhlKOjo6eYmqmlmJiYno6Kh5SIfY2GhISkloSBgYuGjoyQg4OToJaIkJyQk5CNkZyUl46KhoZ4dIF/fHV4eYB6dHN5aH+GpHVpXmRrgXRniIx9U1hwXkp4c1NlU1FeTU1SWmZOTFZZZFhGU2lSUT9DTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQTSQj7KhpKaspKekrae1s7GrpbGoqri+wLyvp7mqpq+wycfI0cO8v765vr+8ybvBuLCwtLG6u7fAsrO7rLisorSnp6yytrmzqKi9tq62vrC9p62staytnKmvpKClraunnJ6rs6W0qJurp6mjqZ2kqaipvay0r66dqqSgrpybs6OVpJylpZ+km5upq6afm6qim5OcoaWemJepqZKYmpSQioKPhX6Pg4CIno+Ffn2LhpCNj4R/k5qThZKhjJSRi5GakZWGiX5/cnt6fnxoeHx6dXBwfGeEeISIZGFnYnKFem1neF1dVUBXem1UYVBSWEtMTnJ1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0FKN0dTYFUqPTlEVz4qj5SymaCgqaaloauluLOzpqmxp624wb21r6K4raiosMLJyczBtr3Atbe/uci1w7WzsrWyvLe5vbWtuba/raGzp6ursLW4tayfvr2qs8G0vKGvs7Wqq5+tsKOcpaiqo56bpbGnsKCfq6mooamcpKihrbuorrGuoKujpK6en62ml5+boaOcoJyapKqjm5ulpJaXlZ+ilpuXpqyMnpGRkYuCioCAjoF7mpSNiHt+i4WOjYuKg5KYkYaToomSkoeQmY+TgIh8eWx+dnl4Y3t7cXBwcndogHNqg2dlZ2Btc41sYWlvYG8+WnhrVV5PUVFKSU1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDFCaFkxM1M9ZV9ETDZLVmRPKjsyTlg9I5OZrZqgmKeko5+opLiwr6SvsKqruMK6s62fuK+rqLS6yMvIv7fCvrC0vbfEtsOxrrmys7+0ur23qbm4vauktKipqrGuurGrnLy9pbDBtbair7e1pqensbOgnqSlp6GlmZ+sqKmeoKqvp6CmmKOpoLG5n6Oxr6GsoayknKanqZqam5+klZ2dm56qp5icoKmTmZSYnpOZlqGqkZqIjo+GfYd/go59fKGMjYh4gouEiYuLhYeSmo+IlZ6IkZWCjJeMkXyFe3NwfXF0dGB5eGlucHBuaH1xY3ttaWVjX2WFfl9ac2tyS0t/aFhaTlBMSkhQUlBJTlxfblNEWFpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPWZkMjRNP2VdRk89UlpnSCo+MFhWNSiXnqeanZasoKChpKK4q7KltLSqqbnEtbOtn7etrq2wtcbIwbe/wrmxtLy2v7u+r6u9sLO+sbzCuKm7urenqLWpqKuxrbOxqJu+t6atvLeyn7G4sKilp6+xm6GkoKSkoZecr6ehn6Oor6GgoZOkpKK3sKGmsaufrKOvmJyqpamel5qepZObnZuep6ybnZ2ml5aYlJ2Ok5eiqKKQiIuPhXqEfoSLeo6WiY2GeIGHg4iLjYWNk5iNjpaYio+XfoaXi495gXpwcndvb3RfeXdkbGxraWiCbWVya2tlaFpic39eWmx2alpIfV1bWE9PSkhIUlVGMjpfXmxQRFhWWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0JnW0hUQ1RdaEUuOzFfVCwylqOimJWdqZ6moaOhuKqvobu5pqy9xLOvrqK1r62tr7TExL2zv7q3sbO5uLq4uq6tv7O0uK+/wbisvbq0pqKzq6iqs6uusqOdwramqbe3q5+yu6mmpaivq5mip5ylppSYobOmmZ6lqqmcoaCUpZ+kuaikp62mnqWhqJOfqaKhoZmbnaGSm52XoKOsnJuaopaTlZabjpOTo6ekj4iKjoZ5hHyFhn2cjYmKhniAg4eHh5GFlZOSjJCVk42OlHuCl46Kd357bHVybWxzYnl1aGdpZ2VuhGdnaGRmaGpfZmJpZlpme2NhUnNUW1tTTElHSU9TQCEral5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc4Yk0nMp6kpJKOpaacnp6epLWtqKq6t6isw8C3r6yhta6nrq+3wcC9ssG3sa+ytrW4t7Wsqry0r7KxvcC3rry8saWftqymprWpq6+hoMSsqqextKustLqeqKqrsaWYnaqeqKWRmaauo5iepKqhm6Kdl6Cdp7amr6quoaGdnaGVoKafoqCZm5qckpqelaaerqOYl5+WlI6VmIyPmJqnoJCHioqIeIV3goKCnIeLgol7foSIhoSQhJaVj4+QkZCRjZN7g5WNhnJ+fWd5cGtqbGd1c2tiZ2RidH9iZGVmZWlqY2dvWV5YXW1kYU1oV1tgVklHSEtMUlg+OWBsaUdCVVNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQWRHJTWcpKCRjK6gmpigl6W0sqOyvrehscW7ubCxo7asq66pub69vK3Asq+vrravs7myp6u5sa+us7a7trC5vqylnrWroKGxpauvn6XEobOlr7Kvt621nq2vrK6imZ2nqqWflZuopqCZpKOpnJqfnJWcna2wprmnraKhmpqemZ+kmqWdlp6Ym5SaoZKolq2pm5SdnJOMlZmOlJSYp6eNjYqJjnuBdIKCipiFh3yJiISEioyIkoWTnJOSj5CRlo6Qf4CNjYNvgX9meW5oa2pncXJrXGhjYXJ/YGRnam5sZmpnZGxcbG12cWFUYmhjZVpJRkxNT1hRUFVhZYFUQFZTWVVGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUlkQic0k6Kcj4+xnZuUoZqpsrCfucC2oLTBu725saa2sKmupbe5uLmtu6+tq6u3qrS5raWytbGvqbG3trGztrunqZ+2qZ2fqqOqrZ2qwpmvpa+xtrWsrJ6xra+qopudpKyonJWcp6SemqmjpZWaoJ2RnKOrqqm6n6akoJiamp6ij2uilZiccYOWnKSAdpGrqJ6WlqGRiZeZgJeKn494hZONg21pfneEcmyGioZ9hIqGb11kYGeEl4Zri5CUknV3i4R/g5B/ZoiAaHZpZlhdaXRuTlBqY2ZxgmZeZGZubGleXV6JkIWIaE9LRDhFVGdeSkhQUFVVS0hTYG90ZUVbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOXEtbZmI+RzFPYjwrL42kmoeVsZudk6Ccqq2ro73Fr6m3wri9vK2ntrGmq6S4tLO0sbmuqqestKWwtaKnuLa1qKestrOutK6zoqmftKueoqWcp6ibrr2VqKewtLitrqSorqqrpqKfnKGop5yXoaamnJynp52SnqCZkJ6oqqO0r6Oio5yWmJiYpImhj5Kah6GIlJ6hf6V/p6yflJOdk4iDcniNjoOHoHWIjWmXiWZ+c3mgb4iHg36MfH+hoKCZf3uHnnSIjnabimyIgoNtaWVke21yYlSGbWNtaZhxWGlwboZXXWlba2pbiHBteXKHaYeEWl5GTj5GXk1FUlZWUVBSV1RnXkxZS1JSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTlxMW2dfPUsxVWA3LyiNppeEnaydmZmdn6uqqKq/w6+yuby3wL+qpLexqqyms7Wur7O2q6mlsa2ltbObrLW2tKanqLOxrbKorp6qobOpoKSkmqKknbC3laWmp7a9pqynqaqsp6aioJmgqKSZmaajpZmcpamWk6KclJOjpqahtqSjoKOYlZOYk5yIrpCYlImpi5ijnIaxgKSunpWbn5V5gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4FslrGrsHlobFixrm9labySvG5oem1wj9h+U2titrJ+gHGUdZqhqpBXT1hhT1ZORlRbWFFQU4tcV1tQQFxFUU5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV5nXD5MMVpcNDEhjqaTgaeqn5ednaWtsqmxwr2ytb+1uL/Cq6a0ra2pqK+0qq+2tKiopralqLmvnLKytqqlpKeyr66xpquep6SypKKhn5ecoaCxrpWfo6C0uqKqqKGtrqWinZuaoqqgmJuooZ+YnqinkZynmpSeoqejoLCjnp+jlpaSmJKZhbBraoqNqn5nhZaHrWVxn56VmqeWca6hpH53unxroY92sV9qtFulgGWckWBmgXpmgGl4aqllvnJnpox2sWp8sXh1kpRjbW2nblyEoEVpZ4eWRXWcYH1me6Omgllfi6tpgJJ4emqoOEqvW1dUbWNaTE9YX1xXVjtOiE9XVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWTMxG5KilYKsp6Wfo6SqsbettL2+sLfFsri6w6epsKyvqamxr6SxurCkpa+zo6m5qZ6zsrCjpaCqrbCsr6aon6OisZyjnZiVmJ2dr6iXnKKftLOhq5uhra2gnpqXoKOqnZmepKGcmqGnpJCdo5uYoaCsn6amoJqfoZWVkZaRmoa1m7V4hamZtZl3h7Obt3+Ul5erln5rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iHCOhoCAiJCXeIOCi5eMg6CPhbB2d59xa2psfItPpVhIY2OZfmNopV95cXVSkodeUKltY3F9hoBhnS9Som5bVGtnYExLXGNYXFpCPrB4V1hBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7RiwwLjg0MCwuKC8yLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o4YVU1MByXoJSIs6amoq6pqLOsqru2wrC8wq24t8KrrK2vrqeus6qir7yroqe1raOrtqWlsrOoo6Gdp6qyqLCopp6goLCWoJqWlpeaoK+jm5qkqLWuoamPqaiqm52WmKCmqZufnaOfnKCjpaOVm5+Ymp6jq5ulmpyaoqCWk5GTk52E1ZOZuXGwwn/GhnzWlJy7fJuXp5CNnIykeo2GooGlgnqseY+dVq97iX6farlauXeGg32mgpN8mHqqeY6dkHuxbo6EdJC7hW6VUK+nxYpRoHpjYKpic3KGbJeHX1O1tMiFgIl8Y6QzQp11XVBqaGRQQFhmWmRhSkhNa0paU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuMDA0ODMrLSguMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdHOmFQNzIlnKKTmbGoqaWzqqW0qKS8t8GxusCytrW9tLaosrGjsbOmoK+2qZuouq6jsLKhsrSxoaSenqepsam0qaWcnp6sl5mZl5eWmKKsnpuXqa2wqKOfjqyiqJedmJyhp6KYoqGjoZuioqebnqCelZmbpqGcp5Wbm5+gmJCSlZCdiLJuaLVxq4hwjqZytHRztnubmaaNj5yNon6Pn6R+sHWDkdLRdVuufIV/pG+bqqZrhoV9rX2XmY97sXOTnY94s2WWdIWebp5mlFLJi1rCXJ95Yl+tX3ZzhmKXiF5Zyp1vv4B1TUu1U1XGZFRRamNmWEFPal9saVBVRkk4PVdSW1ZZSUM/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHJoOSdXaVxBTlRfZVA1Rz1hTTYyLqKdkaWwraWqu62ntaWntru8sru/uLe1u7u0prW0orKyo6CssKWYp7qupLKxnbS4qqClnaGqpLKorKqlmp2bqZ+WlZiZkpOjqqGXk6ersKWilpKsn6aTlKGcpaeglZunp6Kao5+umqGenpCWnKKenKWVnZWZop6VmZaSm4Wse3eodqOPi4epb62Kg6eDmpqjipKZi6J+kpeHroV/grNccrNSrn2CgqR/cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52d4dnmIhqXa93lZ+PeGw1eciusl9CVG9dZ2BFUGxgcW1WVU0uZWJoU1lQO0JEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wMzMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6NzegnZSguLGYs8GtqLKnqrK6uLS5vrm4s7a+tqa4tKC1raCgqayglae2rKixsquttKSbqZ+gqKK1p6aqpJmelaWilJScmpKWo6ablJCnra+loZWYqZ+ij5GimqmmoZWapqmdnaSerZ2hnKCNlJ+bnqGYmZyWl6GglJiRpp2GqX19pXmhj5CDqnCtjIGmhpahooqXloijgZCHlKp7f4udeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClG2TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZU9KQ6FcWk10XWJmTVphX3J0X0pVNUqaklhIRT1IRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVF9iTDdGSV9DMT03opyamr+smLTCrqutqKa0sLixtr+5urOxuLyqu7WgsaWfpqenn5Sqsamwqratqq+hmKGgpqSkuqKjq6GXm5GjoJWVn5uVmaCgkI6MqbCvpp2Xm6emn42SpJiorKiVmKmonp+gpK2joZ6hjpWhmJ+gkpyXnJWdoZWWj6ubj65ucrR0qYx3iqZztHl0tIGTpaOTnIyJpIeOdbhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6YhnBcr1Y8nHdmVG9uLlunT2JSa2VibFpiXGBwfGNTWVE+Pm1vMkJCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eOTFBOKWam527opyywK6tq6unt6m4r7XBtb2ysLq4q8G2qquhnaekop2Sq6untqOzqK6qoZecqKClq7mdo62clpmQpaOWjp6hm5men5GTlau2r6eZlJusqZeMlKaapa2jkZersqSgnqirsJmhopCZopegm5abl6GTnKmdlJCqmYfTk5q7dLHEgMOGfdWWm7h5iZGYjZeJjKeHeaK2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+ifox0h6t9vm5zvHSyg3V4gIptmohxbY2kdL1dd31bYXm8alpWW2l5XmlhZGZibXlvWVtZQ0FAcj9DRis1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy02QDmnmp+ivKKYscKwramqrLGoua+3xbK8s6+8sK7Bsq2mo5+koZ2ckaqlqrKktaetpKCWmqqZpqy5naOumZWhkKagk42co5+Zn5qQlpOvubCrlZejp6eUkJalnaStn5GgqKufnJ+ppLKeoqSOp6KUoZqcl5akmI+woJKVqZ+FkJm2gJGSjbiVeIKTm7V3bmxuc295j4SOiXOewbu8mXqBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV5s6N1dpd1dLB1mJ5mhmmNtnRycXe2jF5/eX2IZ4N5bXlii6xwdIV/WFunakRkWVRmX2NdY1FmZnFtdUJNUE1EO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlNZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PjcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlrPCtKuqqK2rqruvscawtrSvuKe1ua6rpKKnn6CdmZSspK2qprWoqJ+clqCjnqylvqehqpeVnJGim5KPoaiilJ6XkpiUsrW2rZidpKSii5KSppylq52WqaWmnJuiqaemo6ihkqyel6Kel5eYnZ6PsKmTnKeij2t+aZyoeYlzfpuOdXplh3u+v8C6bpKCcZWFX3JqWl2aiWFkh46Va2B/lWNtnHZilGuAmpWUZV5fY3GbiWhzjXyGlGZqfnF0eX59Ylt4dIFoUFxug3x7impYbHmBcklKb4VwTnNNRVdcZmFMW1dmY15PWm12anJST0RFTTxISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMTs6LjAtNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPltPJz8yPqifqKHBpJq0urajrKaup6i1sqzIrbG0rbakvrGzp6Gkqp2jnJqarKeupKW1qqSbmJaim6atqb+oqaWVlJuWoJqTmKWpqJKfkI+YnLCyv6ybp52noomTkaqbqKScnKyfo5qbo6esop+qopqum5WmoJaVnZ+dl7GlmaKomZyRnpyjpZqno5qdmpqakJaCaG59cXaRl5SRg4m0qY2FmJWOioyYl4eTlYqDk5OQiI2RlJmTmZeaoKGam5SgnI6CeqSFbGl7kH2AdYmLgnKCeHl2dYqAe4lqc4F0g3Vkd312a3B6bWBjW29nTFhZZWpfV1lwem9uZlNPRlI5T1pOUk8oKztKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODEwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KksbG3oKmms6elsLWqyayusqa1psCotKGepaacpZaWoKunrKOjt6ygmZeWoJetqqbBn6yklpKcl56YlJSinp6jqJKQmainssOwmqudqp6Pl5apnqucnqGtmKGbnaKlr6WhpKieq5iXpp2ZmqGenpywoZ2ip5WYlJmUoaOWpJ+YoY6WlIuKjY+XrY97lZuCkYCJqaiFgJiWioSOn4h7g5CGhZqRh4aJlY6bl46QmJ6jlpmSkJ2Nfo1lobOuhImEd3uQin13eXpvZ3mQgYCJa3WBeYhyaXN/eXWDh4JrdGN4Zl9oZGNkZmpYa3twamtcU0xQRF9VRkA/Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXV1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAtKC5r76sq62xsqCqprKtoqyzsMaxrK2ks6+8pLScoKeioZ2Zl6imqaakpbO1npWVnZmZr6auvqCso5KSnpqZlJKWoZyXqZ2FnamsorTHs5+ppKqWlpiap56pnKClq5Sfn52gqq6opKOroaybn5+gmKWenJ+csKSZn6iTmJidkqWamamfm5dmg5J8ZX6Pmo9jeIxsaGp6kKOra2SZl35nhYplZWloeo2hjmtojJeRondraouYop+Yc2xueoSMhnlYZV2Fgl5si4qCdltoc3d3kYCHgm54gnh/c215hHN3iIiOg3tphVhdanNkXXOIaWt8cW1jXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS42Wk82KUVZL0RPMVlCOz8uPaWfury5r6uzsKulqK2usKeurbC9squopa2wsJ+tmKCknqKamqesnKyjpqips66elqOQoq+mtrmlrqOQj5qhmZOSm6CYmaaWe6Wsoqi0w7iloqevn56VnqOeo52kqqiSn6GeoKqvqamjqp6nm6aep6CslqGcpbGkmJyrlqGfm5OlmJ+rmZ5+voOIcrRyhZ6FrWh3ucS4cZKho3ummJhzqoJ8y8DAu3GKo4eCnnyWmIiewL2Clp2djZzBwHuBepGMmsK/fWulsm+MgW/Ken+bd5GDjoB2eYF/eXF7gIZweIWMk3lsdpFiZV54ZF9lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWo7jDtLCvv6mplKOvqbCvraaytrCrpqelsaugq5iboqCcm6qnop2roqWppaW0pJ6jk6aurLi0p6+jkpKZnaWSkaChl5ugnYemq6Srrb/AsaGprqmXkp+eopmjpKqjk6Chnp2srqerpqOhpZ+kpJytqZGkm6mtqpydq52topeYppeipJidf86UeXqlgXqWlptfrY9djqiAoKF8p5WadKuCgK9eZIypeqiHhZ90l5KIs2OCq4agjY2zaoSuc3yWh7hhgq1Zo81ukHV723t/mXF+iJJ1f2V7iHZ2bH2Hbn2FkJF+bICNX3Bqb2ZgX3hkXHFoamNmYFJUU1deSk9DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NDc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1s6TC0hUEBGNC4xrcLAwLW0sLeYnpGjqqmttKumsq2trKSsprCqoaebmqaYnKKvn6GfqKejpqGfsKybnpamrq2wq6isoJSSm5+lk5CfpZedqKOerqSrsKi/xrOoqbGulpKenKKXoaqqn5Whnp2cra6mqaibpqajoKqSrLOWpaKqqp6kp6eisaKTm6eboZuVlJGXoHCFjJh1hKiHcbB8nXKsfaCfgaWPnnergn2tf5xyrX6rh4afdpiSe3yXfqqIoYuRi5x+q3qIko6ggHqtVpzEeo9vksF9gZVtdXCMbWZ3ZYZvYXducm6IipGPg2yPjmRtc3VvYGZtZF9vaGpuZmNXU1xgWlJSQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/UxseytJ+do46joqKtrravqbGnqauorqurpqKjnZqjlp+mq5+ipqCoqKKfnrCsmJuXqKivrKinqZ6XlZqjopKUoa2bnaejrqyjrLWpuc2yraaurJaVnJ2imZ+urJ2WoZmenqmwp6mpmqqoo6Grm6+xoqisr6aZpquqq7Kkk5ikppuVkoWkaqR1iXqpdXqycYKliZiMcIefmoekX2BSq4R/roKbda6Cp4aGn3qZl4V7ZoCjiaSYhoGjfal/gZSGrl58qFWdopKBeqOfgHvDr8WMc6+0s7lxYqmvwnRojIyXjoFsmJFubHh4d25rZmRkcXBme2ljXFZfaVhYVExMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLWwr6mto6inqqurqaSmn5uln52mp6aknayaoquhpJ+vop6bk6qktrCuoKmbnZeVpqOQmqKon6CmnLCmo6ixrLbIsrWprKqVkZydopmgpbSdmqGUnJ+mqqqirZmqqKGhqaKzraKqs7KinKqosLC3pZSXpKiZnZJ8qmyehId1q3l8sG6CpIuIn5aVnpWB0re0uMmAgbJeX5Spg6SHh6B6mJWZeKrJc5mjlKipkJOajH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI6PnJJ7b5WQfW55dHx6bVtlanJxZoFqXmFYY21cXllJTExLRURCQj1BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTBxrmtqbOurKWinbK5rKqhppuopqusqaagpqSYq6OfrqydpqGsmp+ppZ2ntaCjmJOoq7ayrJumnKCWkKatkpqcp6OgqqatoaOnqbC0wrGyqq2olImYnaWboqSupZehlZmcpaWpma6crKelnqujt6ygsrmwnpyvqLS0tKaWmKmkm6GPgp1OeJqBf596hKN8gqSEhqaenJ6UhLh7fHm5gn/MxsO2d5uhkIuffpqWl4l2n5eKpJikqH6whZuEnoSsfZmUYaVso3CPhZCBfZeEcqxgpHJxgJpgvH1SVXWOkaOWe3yRjodyeXKDfXBcbG53cmqBb1pjX2huYmRdTExRU0FIR0ZJOTlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Gss7Smn6GVpq+urqmmnaWlmqOnobKuoqmnsqCZqKSUorWjpJaXoqq1uaSco52jk5Chspmem6aloaKurJykqKK1scOxraqtqpGHkZynnaOknKWXnpiZmaWjp5itoaykpZeupbusobe3rp6etbO5srSomZ+xoqWfh4/RtcO3eYeOhZGTj4CmeJSid4ugkoWlgotxq4aFtG5yaZmjnJWJn3yXmYaHkHOugqWboo2mi5OciJSQmm1wslylc5N6nGyZf3uZfm6pYaJxcX+fYnOyuGh3j5OkmH2Ki5CIdnt4jYFsaHdpeHNugHVdZGRtbWVoYEpaV1g8SEY/VDNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krr+/vLu1npeopK22oaKZlaOpp66pq5mloZ6moaC1p6Kpp7CjlKujjqStpJ6RmpqqtLSknaacqZKUl66goJ6mpJynnLSZoaqjtavCr6mrqaKMhI+coqCmo5WZmpyYm5imo6WXqaasoaSbrKa9rJW+sK2fo7C0u6y1qJ2qs6WpmXuokX18sHeKgaSliJxtsm+gh617oY+DqJaZgKyJha6FoJSooaKXhZ+AmZWAe5J+q4CdmpaLqnidoI+Ik5J/ea9do4F8pqdknoB8l3Rrrl2la3GFmV1gW4ygbZSQpZiBk4uTiXh5gZZ+amx9Yn10bYB6YGdlcG5nZ2hCWV9bPUpTMlQ4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaV1NQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVlFIRklKIygovJKahKnGw7bBtJ+araCuuKWjjpuko6Cvrqmfo56drZieuaCiq6CvqpqtoJCqqaWWiZqQrrCspqCom62YmY+toqGdpaGapZytmKCopbaov66kqaOfi4CNm5ufpp6SlJmZk5qapKOjmKeqqqKjnqmovqSXw6yro6Kss7ussKiitbGqrJl2r36QipyFh326rYmYZLCMZZWtfaGPg6eWm4GtioSwhaaZo6GikYWgW2xqgbNgf617e4KAsmxnbpmXi4ixW320W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqeaipaPk5R5eI2bfGNzfGGDeHOAfGFpZnBtZmVlT1VjXEFUXj1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE5KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vbu0wbOjnK2mpbapoIuZoJ+ds7GonqKfnbSYoLOoqquesK2eq5qUrqiijoibjq+sqaejqJmvk5qPqZqhnqWfmqSjpZmeo6myqLyvpaienY58ipqWoaCZkJGZmpGZl6ien5enrKWkpKKkqbueoManpamirLW3rq+ooL2vrq6XgamSo66Om4CGpJeYkIGAuMO6g46dk4SnmJ2CrIqCr4mnnJqlq5F+1b3CqmKjv718fqOCg9e6t7WFk5KCnr2+hGqjgW+rhG6df3qysceDa6uwvax4d6K+u3SAlY2lm4+ZjpSad4CQmXlifHpjjGd4gXtga2VramFQYltTaVxAVGBCTCk8OjUvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0sb+6sr2zop2upqWzpp2MmKW/qbawp6G/pqaxm56xnLmon62upaeUk6+sl4yDmpGupqOsoqWcqqCYi6OTpp6nnJqhqKKZnqCsrKm4raejmpeTe4eYkqabk4+RmJeOmJSomZ6WqKeeqaahoqu7nqnFo6Cvo6u0tauxq6K8qbCwm3R2qqS2hWWJn3BnrI+Kj21vd6SQmqCBdbCalnCQjXKWqKObmK6kcmxtbGWKeG5tgplxgHppcGlmiZaVl3FoaYWGZ3CGZF2KY2lvWV1nfnimYGJyj5JvZmSAjZOOoZeWl46Um3uGjpR0ZYZ3Z4xqeH54ZGxjZmxiS2VXSmtZOlBkRFAnSjorIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKq7urKzqqmirp6ks6qYkr2xw8e9tKmev6uso6Cmq5+6o6StrK2ljZWtqpCMhZWXrZ+lqqKfpKSgkYulkqeZqZmWo6qglpylpqevuaqrmpuTknuDlY2ml46RkZeTjJeVppOdlqehmbCmnaKsuaCwwqiks6assbKrr62puqWwuZeLoamltp2JlqKYhqmakJSdk6qzmZujrKG0l6OhnqGinaGkoZWrp4ySk4yHkpyclJCZk5iQjpWEf6Sal5WOi5OSio+GhH5ni4B0g3Z0h4xxp218lZKUk4GBj4+PjpyTn5SWlJ6AhpOLcGeOdm6Jd3V8eWlrZGRvY1VgWEBpWkdiYE5YK0U9KyYhNjQwLx8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKWWqamltriurqKwpa2foLaxkI6qxLvEubepoaWdm6WdsKijtqedqbWmp5CXrKOLiImPnKeWrKSimqien5OVo5eomqmZlKehpJCap5mhtLmnqpiakI17gJOMoZSKlJGVj46Sl6SOnZinnpu1o52mrLeor8Kuo7ensK+xrqqrtbuisb6akqakprWikp2mno2pn42Sn6OssJuhpLKqsZmloZ2kqp6enZyXrJ2SmqKblJCWqpmNmJiWkJaekYegnZWUhZKMkI2Vi4F+Zo2HdYd2eYiEdJxqh5GVlZKKfYyWkpKXkaCRm5WegoaWhXhxlHJ4iX5xe35pbmRfcGlgW19ZbWJQYGRPWTlHRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlaSno7G0rK6jqaetoKi1qpCPnKOyuq2qq6GimXqcorCkpbGplpu4pqOTl6mcjoaKiZuikK6fpJeooKGSl5mbrouqlpComaiMmKiOnri2o6WYm42JeYCSjJuTipWRk4+MkZahi5ycp52et6N/g6+1orCvdKS+o7KgeHuhrLO9lneupaCKgKp+ZFxidp+OpJ2Dl35uk7Oco6ivq6Rln6CUdHqal3GAmamYbICjqIplnKWbkJeYlouSm5CEnZqQlIOSh46OkomFd2uQiHaHcXyGgYBhaYmLlZOMW3aVkWdoj4xxeqOXlmR3l4aAdpdogomCbnl+anBlX3Zva2tnXGVjYWFvUlo9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHRklLTFRVVVldYGhnZ1hRSTxERzw5VlJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqaWpraSnraWSlqq0rrGlmammqpdzi52vn6irp5OWuKCgjpuknpB+iIiano2smqSVqKKejpeRnoV0rpCJppqokZajiJu5s6egmJmLiXV2ko2Wk4qTkZCTi4+Tn42ZnqWYm7KWgIybtZ20jJKPvaehfqeie6SwuYKOj6efhIuFj7Gpr4yJlqKZeYGLrIacnaKoq6mIlYeZd6WbeoecgZengoF7nbJ6ioafl5mUmJaBkJaWhJmaY3mHkISNj5KLg25xkIh6gXGAgYZ/hnSHhZaSeJZok3SgmnR7mYKemoSYfZGJgYKYaYyMhGp4enBwZ2R3bWlsalxkaWllcltcSFRMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaGZZUUg5REs8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZStxbyvoJWlqLSdj4Odq5ymoqCNkL6emY2fmqGQfIWOmZiIrJ2jlqGhko6UiYaAkaiOh6Kco5OWnYaeubGnnZqTj4VwdZCJlJCKlI+Om4uOkZ2QlZ6jlJ2siJ+0ibSarovKiKuvibeFjbCDsrCFqY6nmI2dfKiPcnt3m46mlmiVpHm0i5+fp6mTmcKCf6uImKFxnoCapX2XhZWygKF9oJOfj5iXgI6Tm4mYkot8hZOGjZSTiYNtc5KGgHtyhoGEfYV1hoKYgY/FZoCph4+iap2BnpeAmYCKi4OImG+NkoRnd3R7dmdodXBnaGteYm5sZmxYZkZcUUwyRTQ2TWFjNyY0PERHRDo2MzY1ODs4Pj09PkJMP05JSktDUFpdXFdiXmpsXFFFPUtNQEpkWF1jZ2hnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5saqrp5qUnqKkqqKVpKm2oq9/oKacpZ6diZS9mZONoJGdj3mDlpaRiKuZnJuaooWPjHebnI6gkYiepJuVmJeGorispZmbjY1/Ym2Pi5OQjY+MjJeLj5GejZKeoJigqH6hp4etnaCWrpCgnp2RhoKgjayxiKSOq5qMmn6idYCYk2uBq3RNq3iHjZ2Sm6mpgqqrfoShe3qnaZ5/kmxnl4aYtomefm5gY1iDl3+Me2Rni3OZfXmWa118l25fU3GFXGBseYNgWWWCfoSBmHGnqmuDo25ypXCfgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbXRxampuXmpvbGtoV2dOXVhFOUA0R0ReazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpbXV9XXl9idmBNRTpNT01UYlxbZmdpaWJiZGFkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJadoLmgqqOmrJGhtryrr6KZlp+gpaurn5yttKKnkaCfn6abmY2YtJmQi56MlYt1gZSRjYqmlpaYn55/k4WGrKOHnJGKmKmYmZqRh6WwpqKVmYiJgGluiIeLjo6Ji4yRi4+RoIuSnZ+boaV/k4GPo6GUoHeclpCng6KogIarr4aleot9hJp9onBykoeWe56MeW2Hm4uZkZypnI+HnXyConN2pmaefnekXph7fZNzom6Yt7S6c5KHgYC2qGSBxrh7cJW2jHGAm6RjdKyrYH1qnbN+bn2Hg4+Ci5dxgKNsc6RznoJ9o16cmbOWb3uXnrN0cluesoJpYm9zdXFoblhra3JyZFtoXWJMRD1ENVFBWnEyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWVhgYHxkSUM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi2ra6gmqGboqOkq5uasayrkpegmKCkmZqUnqubi4iSeIuFcICWjYqPoZCTlJ2XfZGKjqigh5iPipKik5uajIqop6Sej5aHhH5re4d+fY+Ng4uPj4mOk56BlZufnKCfi4l3nJiijaByoouIqYicp5GXqayArox9eqCZeaOTeIBzl4iMnH2Wn4abjpmcp4ejZKF9iZaQm4xsnmiajW6amXuAiqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z2iYqAnWiadYeTkpiOf55tmZBqpplcqH53u2p9qVqOhF2zZ1xucXh3a2lbcGl3eGFfZldiQlBFTzdWQlJuNEpaWV5OWkRAMTUxOzs3SD86Q0dVP1hSWF0+RGJdVmBRYWN9akVCOU5bXllkZlhmZ21tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCsnaabmqefnayZnbCnq52Xopmhn5mWlqCjmYaJjWmIgHF7l4iMlpeEkpSYj3qKhJajnImVkIaLnZGcm4iPqKKfmoyRioCAaYGGeX+WjHuIjY6HjpWZfpKhnqCik5hyaJ+KoI+McJKMgqmImaCkqaKpfbCtpKK4l3ajs6Kjf4iUeJ16q5p+oo+enJiJmHKhfYWNsLV9a5qRoXh+mLSjo6uohJh7mnycmn5zqlpdb3uXi3ieYkx/e3uFZHqYQk2fWaJqcnyOboGKhJl2m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B9fW5mX2todXtiY2BRXldcVFZAWUVRZ0VSVlxhWF9JRD1COEBBOklFOExFWEFWUVpWREZhXFpgS2BtfXJFQzxVXmJaZWpWaGhtb2JmZl5hYFxdXmBoYl9lZHZsXmVnZmxkZWxoaGtplJ2Bsa6ZhFNfoae0urOzqZqii5qpm5ynkqCro6Cnj56dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGTlohygImSoJtykpCBiJmUn5qEjqibmZWKiop8hGyEhXGBoYx4hY2Ih5GXk3uRop+eo4iuhn21hI+enXumlnqpgpaekYuinn6naHdtfplzoHNxfJ2FmG+Tgq59o4Onn5uBpHBeqWh1o2NvpWGc0498epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKnvH93g21/v6aqtF6cb35yl2+Bc6JyXqRndKZgaKZsmtOYeoKbbnd5l2ubeXaXcmyppWdfZHlwf4RrZ2ZjbXV3Zl9hUltmUFFhSFdJVF9XU1tkaltlUUZDS0xKS0JKRThQQFBNWFNYT1JRYGVlaVJkeHl3SkZFY11lWmhqU2loam9jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZmhsaJibf7CsVFxLfqmvsrWws6OcmISXpqCgo4ykp5+XqImZl5iTmZORoJeOiIV7cH2EaH2Pg5OagXeRjo+JcH+Hj5OSbJiUfImRkqOVg46qmpOSioWJeYR3iIBugZ6Gd4CShYeYoJZ5k6KjmqCJs6Gitot6rKekrqVwqYCbkYaBnZN9pICimYaYcZ6Eoq2uiZeLgIykjZWDr6KUdrW2tcmidJSLgp5hnZepbXmVh5+adaGHd6B9kJaKgW9MZqOScJqIc6V7eXRig4JsfqBscmRgnHJ/dJdre2q0tbTGpnOYfnqcapqaq3SBmm1zd5dpmXl0mHFQRH2zXmp1aniHZmtnYnR0cG1WXVNZaE9SaElVTFhSVlxna25VZ1dNSkFKTUpISk5BUUpQZGNpbWV0cnN+eHtudYl7e1RRT21eaFtraVJqaGlsZ21mY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinImvp4VmP5Shsqyvr7Wioo9/lqeioaOLpKacm6WBmpeWjZeQj5uTjoiDeWp5hmWDjH6Wn3l1j4iMgmmEhZKDjIWdjXqMipWlkoKXqZeMkYuAiXqAfYt5cI+ghnmBlIaIlZ6Vf5Olp5yWloRnbnicbKJkfHGleJyYcGingpiNfKV6oJaDlnKfdoCJlJWPuW6QiqJifZmiloluc2qra3WgbW+mYJtpi5BploealXWigH2aX4uFjHVviGJooWWef2mbdXBkZ4iCbnOiWl9bZKFuXYmMcHt/dHJkpW54omRmp2iXcouYbqFvUoiPbqBeZKdUi11UmG1tcmpxgW1waGt4c2tvUVhWVmZZU21JWE9cSFhoaHNqWWtWUVJFVlxMWFJhVWhqXnd1enxwfHxygnt/c3aNgIN2XlFzYWdicWdQa2hoa2xvaGRnX11dXWBqYmlpdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqrGxpp+Lf5aqnJ2ki6GhmaGhgJWYk42aj4uXkI6Le4ZxgIhoi4p8l5pzdIl9kHxlg4eViomWmYJ8iIaWppCBoquQhZCKgYp9gICOc2mPpYR9hZOMh5efjoeSqqaeiaZ4lpx+pYmWjLKZnpGDr5efpXmXiXqpdKaPhJpupaKMkoSMg7xufaWvgoeGh5SXnaF9pntyqJSglmeefm+sY5aKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm5un56RlWJ/q4uqd4B/jqefd599haSVnaBpmod1rGaerYy2c3a+jKSTWYOmjathdXFzb3t0cWJqfm5obFNWWlZhYFxqTFxSXUldbG12YFtxWVtgWmdzZW5vcWNxdGB3en55cnmDcoN+gXt7jIGCgHZieWRkbnNkUmxnZ29tcmlmaWFfXlxhamJsbHpvXFxiaWFtaXdtZ2xuYpWmqp2BgJ6klqqqnqinrqOZiIGWqpmdo4mapJyonYSLmo+FnJGFko2MjHSFeoiDb42EfZeTc3WGcpGDbn+LkoaGlI99e4KFl6WNf6WljYCNiYSUdYOHkm9si6iAgouTjYibnoiLk6qjoJCAdJSXiH6BeZSvpH+CnHGPhnmSjIWAe3KnjHF9fXqXlpuEjXh7fn6IlJWTi3eRmaChhHt+iWuMhVt5eXN5cGlufpKJcX90gY+Uk3GFg4JljX9fgYCMeHZ0lHVve29uiW6Ehl93aXiOZoKDho+qnH90fZdqiYhvf3V8hHVtbGaMc3d7l3eEW2pYeY9obndycW93eG9dbIZtaWdWWl9XXGRrZFVhVV5RX293eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV6gXV/gH+BeYuFgn17bX9sZHluXlduZ2h1a3hqaWlkXGBaY2llbHF1blpbYmtka2t5bWhsb2GOlbqpp4uhopumpJmknauioIODlqqRnaCImaaaqJiDgZuLfpaUh46KiYxygnyPfX6PhHqXjnRyhHCVhnt9kouGhpCFeH6AhpijjHunoYuFj4+ElYKGjph3cYSqhY2RnI+Hnp2GipqooKCrg4mOlZt/foqXraiQk6eQeHGek4N7k3B/qYZwfZVxam98gZ+Lf5KOi2huXYSMjJycoI9zlYyIcXRrgnZ0gFlyboaQgX1+i2ldaWN6hYOIgF9peHucfIONg3aBh4NpeYyIa2Jxc4N3X3KNgoqQqJaHZ42Pg253i4Jvg4t3bmRmY3mCepVaXGlmbnZbenh3dG1zcoJmXG2Ka2tiWlldWVhrcVteYFleXWZyfXp0b3Rjamppe3xyend0ZG10aGx7fnV6fHt5eX+Af3CGioR7fXN+enJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VubGdyeW9oam1gjIyrsaGQo6Gan56Ynpmpo6F9gparjJ6Uh5qhkKSUf3uYhHySmYiIhoaKcn2Ai3aFi4GElopyb4BymYeEfpKDhIaKgXqAhIuan4+CpqCHeI2XiJWLi5yXhIN6rIGQl5mTiZ2choehq5+ioqOLiJObnaOZlqqiqKehk5yJmJB8eY+Phah+fpKRkpOcsaWalJ2QjbGSmISmjIyWnKCKkZyDiZKKa3yOdndlgoaQinyJnYSHi4+HiICFhJB3fHt1m6OJiIufi4aVf36NgoF2cXSGhX94iYiLkaeRhIeOiIOMkIt7hYmHjYB1a4GDe3mZaXJoYHSKcH16d3ZvdnOBXV1vh2duX19aW1xSZ3FVY1tbYWxodHt8cm5wZGppaH97bXh+cGhvcGxmgHtygYB3f31/hHttg4yGfHp4fH56g3hOZHZqc25xe2VrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2InrqflqKhmJWZmJSYpKCde3+YqY2ejIWfnIqdlnx4lIJ7jpmJhoOEh214gYBygId9h5OEbWt+epeHhIOQfoCGhIZ9h4ONm52RhqmegnGKj4WSkYuckX2NeqmDjZGXlY6cloWFm6agopqdhoSTmpmZkJmmoKaenpCXgpOLeH2Ij4WmfHyPkJGFmKqgnJOcj42qjZGAno2JlJqfg4+Yf4eOg3B4hnF0YX6Ej4Z1jJiAgo6ChoR+hYSVbnl2dZSjjI6Gm4WFjnWAi319c3N8iYR7eY2PhZOokIeEj4KDiomJdYSGh4l7bmp9f3ttaGtsZ155fmd8e3Z0dXV6d1xgcH1tdWBjWlteUWZtU2VaXWFraXV6fnBrbWNraWeAf2tyf2tqc254boN5boaAdoKAfYV2coKNh357enyAe4KLYGl7a3VoaYNlamNgaVtjdWhvYnVta1RicXllb3l6cmVqbW2Lip+4mqGkn5ORlpeLmp+enXt3nKWQm4mGpJSKmJl4eY2FfImRg4yCgoJse394coCEfImQfGtofYKXiYGIjnx+hoSHfI+Aj5ubkIemnH9wi4qMkoagoYqFjHynkYiPkpaTlpJ2jKOgoZ2Wmn+CkZqZk42aoqKkm5iRnH+PhnqBhY+IoYB+jI2PfJekoKCSmZCQpoyPgZySipOXnH6Tk36HjoF2dIJwdmB9gI6HcoqWfIeKcYx+goWGj2h4cnmNmZOQgJh/iYxzgoh9fXJ6fIyFe3uSjoSXppSMhpF8hYaHhXSBgoaGeWRxen54eXBsamZefXNofHV1c3xzf2peYHR2cHdkY1hdXlJqaFRkWF5haGp2eIFxZmtjbGhlf4BqbX1nbXBqfXeFemuLgXKBgX2BdHaCjIZ/fHqAgX1/j2pyg250aWKIaWxiX3FVdG9tbmB4aGxXanR2YnV6e3Fia295iY2fs5KlpZ2OkJiPhp2gmpx8daOfjZd/jKGKiJqVeHuGh36DiX6IgoF/cH56dHWChH2IkHdnY32Gl4uCio14fYCNg3mWgJWXlY2Vn5p9b4uBkJOGpZuHjImDppWEkoqVl5KRdpCdoaGYlJh6gI+Yl4+Xmp2knpmTlJx7kYeEeIaXjp5+goqOjHOXop6gkpiOj6KMi4OYmYSTlpp/mI18iY2Bd3J+bntkgHyLhnCGk4CPgWuHg4GAiYVmdm99iJOZjn6UeYyJfYCIfXxygHmKhnqFkoqMmaOXg4SMd4iEgoF2eoCHhHRfd3d8c313ZmtjYH5panZzdHV9cXxjY2FzbnVybWFZX11aa2RSYldfYGlsdXmGcGNqY2xmaHyDa2h0aGxvaH98gXhtj4ZxgIKCf3R8g4yBgH56goN+fJBtdYl0dG1limxqYWN1VoNpcG5geGdsYWp2cGZ5e3lxX3FshYWQna6Yp6iejo2Xh4Wfk5aYfXaom4mYeZaci4yYj3h7gIt9fIN7gIKBeHN4eXN9gIN/iIqAZF59i5WIfoWIdH1+in9+mISWk5aMo6CXfnGHe5ORiqaPjI6KkqCRg5GPk5eQioCOl6CbkpCSdIGOkpSJnZ2ep5mYjpWYdY+Qi22GmZCZe4eIkIlvl52aopOUio2ejIaBk51/k5KWh5qJfIqKgXpyemt1bHt/i35uhZKDk3dvgoR+fouAZXNqfYGXmIWAjnSRiYR6iH52eIF+h4F9hI6GjZWlkXmFgnSJh31/cnR/hoJsYHp0eXB8b2FuYmR7YW5vdnN3d3NzYXZgb2x1bm9dW15dXWpdT11XYmFobXN6iWtfamVqY2h3iG1mbGhpbGeAfHp3b4+Hc4CDhH10gYaJeoN9eoGEfX2OcnmLeXhubIdraF9qcmOHaHFvZXZnbWxhemhrfHt4cGF3bYuBmZqqoaSpnoqKkYaKnoqVl312rJeMlnyek5GWlIh2fXuKfHuAdnd/gG90c3pvhX2BgIl+fGFcfo+RhoCEhHN6gIZ6j5GHkZGbkqSak4F8gXyNipKjiI2KjZeajYWRmJOVjoiIi5KdlJGNjW6EkI+RiZ6ZoqGXl4mXknCLm4Vnh5qPlHqJhZCKcJaak6GSkoiLmYyCf5GefZKPk4yaj3uKhYd0c3ZrcW51fIt0boaRjpJxdIB8goKIfGVxbXp+m5R+hYp1kYuBdIl6b4F/goh9hY2Kho6Wqo57iH1+i4V3fXBuf4SCYmd3c3RuemJecGFqdF5wanp4eGxycGV5XW1sc21zWFpdX2FqWk9XV2RjZnFxf4hlXWloZ2JncY1uZGlnZWlngHp3dW+OhHOBgYN8dYKIhXiFfHeDhXqAind/i3t7cnmDampfcWlzf2txbm1xZ29rZXtibn95dnBrdneJf6OYoqihp5uIjIqBj5yGk5x0gKmUkY2GoIyVk5B/c3t2hXd4f3Jze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYB/f6CGj4qRnJegk5Z3iX6AjIicnYmPhpKXloWIlJiPlouLjI2MnYuPkYRuiYuPkYqclqGcmJaGmIlshqWFZ4eeipF+jISMgXeTmJGdkZCIiZSNfn6QmHyRjZCOmpJ9i4CDb3ZwbG1vcHuGaXODjpiKcHeAdYKJg3lnc292gpuPfYqFe5WSeneKdXGKfIeNe4uHhYqPnKSJfIR2gYuAd3htaX+Bf1xxcnFvb3haXnBhb2peb2l8enBtbWptd2Bwb2txbVlYYGFhbVdRU1llZmJ1cISCYl1rbWRjZmuSbWBmZl9na4F0cXJwi4B0f4KAeXaAi4B5hn93h4Z2g4V7h4yAe3aKf2pxY31jhXxvcGx0amhubHZ3X3F+eXt0dXN/gn6llZqtn6eWhYyDfpaUg4+edImfk5KFipqMlY2LenJ3dIJwcoVzcXWIbG5sdW2Id4N9f21uVVGBq5SHgnmAdnKCeYKggpGBkpGXm5GZd5B6goySpJqTjoiVmJKDhpaYi5OLiI6PiJ6FkYt9c4uFiI+InJmfm5aVgJSAaYeeiWiHoYiShJGEinGDkZePmo6PjIuPjXd7k5B7jouNkpeNfIh8gWt3am5rbG16f2J5fo6WgXZ6gXeDjXx6aHVtdYiWjH+Jh3uUkXJ6hXF4jnuLjXuJfoSOkZ+fhn19eIGLfXdwaGuAgXded29ta3FyVV5vYnFhX21ueXBncGZmdHVocWxhd2VdVmVgYHJTUE5bZWRceHCIfF5caXFiYmVmkWlfZ2RbZ29+b2txc4p9dn2FgHV2f4x5e4aAeIiDc4aFfoyMhHx5lXhmcWuEYId+b29remBpbXR/dF90fHiGd3NzhXx5oZCasZyljoKKf4KZiICLnX6KmJKOhIiXjo6OhHZ0dnOAcG+Fc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfG90g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYmcf46BeHqMf4iMipybnJuWlHqOd2mKk4ltiaSFk4iYg4ZjjJGYjZSJlouNiYtwepWJfI6Ji5ORinqFfH9tfGVzb2tsenlcgHmPjoB7fX5/ho57eml1a3SMkIqDhoZ9lo1sf39wgY2Ajol+hHuDkZabm4t9d3iCkHlzbGVvfoJraXRvZ2hzbVNebmRwWl9rcnlna2tiZ3hzb3FkX3dgYVZrX152T01LYGVjXHlxinRcW2V1YGFlZY5jYGZiWGlyc21rcXaLfHR5hoJ2d36Lc3+Gf3uJf3KJh4GRioh9fpl2ZXNufWWIf29wa4Baa255eXNgdnp7jXZyd4p3eZ+Mm6+boJCChXiIlH58iZyHhJ6QjoWMl4STjoeBdHdweXBuhG9tbn5yY2R4cHxuenxqaGxjpJrB3K7vonNrdYN1hKGFkW6Vj5SflJqBkXCFi6OXiY6VipCdlYOAlI+EiI+AkoqKl36He3V/iXiGhY6bmpeZj5B2i3dwiIqMfoylhZOKnYWGXouUl4mOiI6LioSJbHyXgn2IhYqRj4Z2hX5+a31jeHRqb3hzWIh6kYeFen9/gIWMfnpmdGqBi4+LhISAjJiGbIJ3b4mSg5GFf4J7gZGXk5mRdXR4ho12c3FmdHiBYXNtb2FodWZSYHBna1VebXR6YXJjYGl9cXJuW2NyYWNXblpcd01NTGNlYV12c4ptW1xkeF5gZGaEX2NjXllpcmtua3J3i31zd4SBeHh8iXGDhH19iHt0i4iIlYeMf3+Yc2h1cXltjHtudHCAV3B5dnlxZHZ4hoxpdoCKcoCdiJmnnKOShHxwjJR4eYqdg4SfjY58lY2AmYeEe3J3cHNqb4FraWx8dF5geHZ7cHR6Z2BlfOvatcnD3IlzbHOAdoqaiI1pl4+OnJSSgYhwhYigjoSKlYqMl5N8jZKIgoiPepGLho+CgHd4g4Ryh4KTm5aUmIaNdod/cYaDioibo4SVjZ+EiWGDlY+FiIaJjIeAh2h9lH99goWJjo6CcYZ+f3J3Z3ZyaXR3bFqMfZKChX2Ag4CEioJ2YnVtioKRjIN/gJOSfm6DbXqIkYiThX2CfoGTlJGXiW9yeoyGdWxwanF3f15zaG5caXVfUmRxaGZTX293dWBvYF1ognFyaldnaWNpWG1XW3VMSkxlZl5hcnOFaFtcZXleXmRnemFkX11Za25lbmp0d4p+c3KBfnt2eod0hYN8f4d3doqFj5iCjYJ7k3Zsd3Z5eJN1bnh6fVh5hXGAb2d4dpGCZHaGhXGKloaZoZuiioZzb5KLcnaOm32JmYiJe59/hJl/gXhxdG5vZHJ+aGZsd3dbX3h7enFxf2lhZ2F/1baOkad4bnF3e3GSkI2HapiNiJuRi4Z7aIeLmYaBkpCGhpeNe4yMgICJjXuQjX6JhXp1e4N7cYaAlZmOkpSCiXWEiHiEgIyVnqCHlpCgf4hhf5OHg4eDiY1/f4JmfZGAfn+CjI+Qf22DfIJ0a213dXR3dmtjjYGOf4R/fIR/hYh+cGB0coZ9kI6DfYCSinpxhGd7hYyIjYR8hX+BlZCRk4VvcHmLf3RtbmlqeHxhZ2lpWGt1WlJpcmliUGJyeW1iZV5aaoNuc2JcZ19lbV9uVFpvTkhOZmRcZm5ygGtaW2NzX1xjbHdkZV1dWmxsYm1qc3aGgHFvf3x9dHiGeIWDfICHdXmJgZKVfImGdomBcHh5e4STb217gHZeg390gW1penOUc2dyiH1ykpGEmp+boIaGdXWUfm12k5d9h5CDio2ZfIyadn52cW9samF0fGdiaXV5WmB3e3ltcX5lY2hoV52PX3Jzl7zEhHZxlIiQfnKWi4abkoyHcmqIj5aAe5SMgYSajHyKhXx7iYt/lIh1iYZ2d32BcnWGgZ6UhZSPg4NygIp2hXyKmp6Zh5WPnYGJZn2Tgn6Eg4mJcoF9Zn6MfHl/f4eLj31pgH2DdmZveXhzd3Nsa46FioGKgHiCgYWDf2tfc3l7fo6LhnyCkIF+c4JpeoSJjIaFeYR9gpmOkYx+bm17iH12c25nZnt1YltwYlducVNTbnNoYU5mdHlmYF5dWW+Ab3NZZWJdam5gcE9Za1FEU2dgWmpubXxuWVtebWNaYm93ZGdcXWBraWNsanN2gYNwbX98f3R1g3qDgnyBhXZ+iIGWkHiEi3SBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0bJONhZ+YoJmEiG59jHZqeJeOfoCJgpSXiXmPlm96c3BsaWRgc3poX2Vxelpgcnx5Z3F6YWVlj7Gyd0tiWqXa0JZxe5CKkHh9k4qEmJGMhW5rhZKRenmShoGEmIp8hn94d4mKhJaAb4uIcXV+emp5hYOlkISTjYN/b3+Ed4R5h52alYyUkZWFiHB7koJ8goOIg26Bd2iAhHhyf4CDiod8ZX1/hHVjcHOAaXlwb3WZjYaDinx2eICFeoFqXHJ/c4KJhop+h4p7iXKCbnKFiI+GhnOEeoKajo6EeG5vfoR/dnlkZ2l7cF5YdlpYcGxOV3FzZ2BLbHZ1YV5cWll0fXNvV2ddZmpyYG9OV2hSP1lmXlpwa2h6cVtaWWtlWmNxeV9oXF5lbGhla2lxd3+Ib2x/foB1b4J7gIJ/gn92gYWIl4pxgo1xe4Z8enmEk4x1anp/a29+dH99b3J7epNwb4F/eGeSi4OhmZySgoVmhoNvZ3mViH1+hIGYiYF8jYxpeHJra2ZfYG95bV9ib3hcZGuCemFxdl9lZdTqvYsyOj6Ljn9xeIWIjo12g5aMfpKNjH9tbIWNjHV8j3+FgZWIfIJ4bnaHhIOXd26IhWx1e3RmeYKDp4uCjouEfm6AdXeFeoiekY2Rk5OOi4d/e5KGd36DjIJrf3JogH54bXx8gYqDd2F5hIJyZHFofm51cXWCm4uAf4WAc3V+gXOBb1xuf3V5i4SLe4eBfYl5e3JtiYSRhYxzgnqAl4yLf3Rta3eAgHR0XGhndm9XVntSWXBkTFpycmVbSXF4b1xbW1lddH50aFliW2dmbmNpTVdmUT1eZVxddWVfdG9aWVRvZFlkcXlaaF1fZm1naWtpcHd9jm1pgoR+eW6AfHyBf4J6dYKBjZOEcICLbnd9gHt7iJOJf2h7fWpze3KGe3N3fn+MeniEfXxsjI2Em52WjICAbI19a2h+jYt6fn6Dk4J+fYqIa3VxZ2hiW2Jnc29fYWtzYGhwiHpic3ReY2SboI9uXDVar7V0aYCIfJKGdYWWhnOOiol2cGyFg4d1eYl4iXyTiHp+cmd1iX5+mG9xhn5odnluZnmHhKSHgIaMiX5uf3aAgn6NmoiDlZKZiouFiXyPiHB6fYR7aH5saoB7emp6d4KHgHJgdoF/cmRyZ3aCbXV7hpWRgXyCgW93enx1f21ZcIB3dYyDh3iIdoOJe3l0b4qBkYKGc39+f5SJiXpvbmpugoF0bl1nZHJwUFp6TVtvXE9ccm9kVUtzeGlXWVlaYXGAdGBdXWBnZGhpZk5aaE1AYGNbYHZhXHRsWFdTdGFaZG9yV2peYmhrZ21saHB3fJNsaISKfHxwf357gX+CeneAf4qLg3F7iG9xd4N/e4qNj4Nqfnttd3h2ind8eICCh3+Dfn56bYSMiJijjYSDenWLeGtsg4eQeH16gZGAgH6Kg3BycWNmXllmX29vX2BncGZqb4l0YXRvW2FkanZ7gL+cpqTIuHGFg3KSfHiGk4NzkIuHcXJvg3uDdHSHdIh3lIh5eXBjd4d6gJNpcoR2Z3d1Y2p8goidgX9/jo99c4B0hXqBkpCDepePlpCIgoh7iIhreHl+dGd6aGt/eXNpenaAg31oYHeHfmtqdGh7gGl2gYyRlH56fn5wfHZ8dH9iVnh+c3OLhYJ9hHGHinh5cXGEg46Af3p+fXaPhoN2aXFpbYiBcW9dZ2FxbUlkdUtdbVVUWnNuYlFPdHhhUlhYXWFvgnNbYV1oZWVka2RRW3BJQ2NgW2NwXlx2Z1VWVXdeW2VuaFZrXmFpZ2Vubmhwd3qTbWmIjHl9cnt+eYKBgXx2fYOIhoNwd4RybXeCgn6KjJN/cIB7d3l6gYt0g3h/gYGChHqAdW9+ioubnoh9hXp3hXtndIWMj3l+f3uIhYN2j4BncG5fZFxYZVltcmFgYHBsa2iJbmF0aVleZG6Ad6naqseGh7JxiXdvjHV7ho6AepKJf3RzdH53gHBxf22EdJSGeHVrYHqCeYmPZnGEcGd2blttfICQk3+AeZGTfnl8boh3gpKMhXWXi5KPh4WGe3+EbHR2fm1ndmRte3VtaXd2f398YWJ4hXpodXVifXtndYaOjZV7dIB2cYB7fW2AWld1f3B2hYh/gXptiYZ0emx2gYSFf3x+eXx0i4J+c2h0ZW6Lg2xzWmledGRHbW1LWmFXVlZ3bWJQUnR2WFBWWF5hcYRvXGBjbWRkXm9jVV5yRkJlX11maF1bemJRVVx1W1pna2FWal9gbmVma3FocHZ4jnRrjo11fnZ4fneBg4F7c32DiIeDb3KAdHF1foWCiY6Ke3eAeIN7fIWHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN4Xn2FmIt4hoN0hYaEd4l6Ym5tXGJbW2FWaXNjYFtnbm9mh3FhcWZXXWNsf3zKzoe5oWptbYpscYRxfIOJfnuRhHl4c3l1dXtqbHZjhHWSgndvZl59gnqLimVygmtqcWNYbXqFm4iCgXOXlHh/fW+KcoSLjIhzmI+RiYaLg3t5fXBwb3xmaHFibXhxamtxeH18el1leYB3aXZ4ZoJ3Z3SHjI6UfXKHam9+gXlufV1Zc39udYGLfIJvcIqAcXdpeICCgIJ3fnN7dYd9e3Nnc2Fui4FrclhqXnZbR21qTFZUXlNVe2thT1R1clBRVFdeYnSFaV1gbGpmY1luYVlkcEdAZ1xgZl5dVnteT1VkcFpbamhdV2hgXnJma2dxZ3Bzd4Z4bpWKdH96eH55g4eAdXJ/hoWOg3Bwe3h2dXqGhYeMhnp8f3SLfn2GhISHf35+fYd/fHh2eHiRk59/jHyLbXV/eGSChpWFc5GKb4WFgXqDdGNuallfW1xdVGdyZGBYZHFyZoFzYmtlV1tgan93vq57oLZuYnOGaHN7cXmBhHt+jH53d3J2b3t2ZWpvYId1joFzamJef3h5i4RmcX9oa2taVm93iaOBhH9xmZNygXl2hG+Cg5GIdJaJjYiFiYV9eHRxbmh4X2psX212amdqa3l3enZaZ318eGVyfm6EdGV1hY2Gln9wjGdreoR1bnViXXF9bHV9jHyCZnaHfW5xaXZ/eX+Ac35te3yCe3lxZmxibYl9bG5Xal92VUppak5RTmhNWHtoYU5VdmtMUVRVX2Z1g2ZeYXFoZ2JXaV1cbGhKRGpZYWRXWVV5WU1WbWpZXWtkXFllY150ZmxkcWdycHWBeHCZhXZ/fnd/fIWHfXVzgoiAlYNuc3l7enNyhYeJiIN5gX51j358hIqOhIKEe36Lg3t2e3d3mp2XeoqChml2fXtsg4SSf3GOgXCFgn6Bf3BmbGdYXVtcW1NkcGReV2JydWl1cGVlYldcXGiAcG9ygHOJZGR4fml0dXNygYN3gIR5dnN1bmt6cWJna2eGdI2DbmZdX31we4l/aW15Z2pkVVdyb42mfIR7dpaRdH1zfXtvfXyRhniafYiGg4aDfXVvcWxndFxsZ15sdGRnZWl6b3tyWWeAdnVocIF4gnZid4WLfJSBb4xqbXuCcWdzZmFuemdzeIt8fmJ3g3dqbHJ2e3F7enR+Z39/gHl3b2RmYm6FfGxrVmlib1JKaGpPS05vR157ZmFNVXRjSk5TV2Fqdn5lXWdzaWZgVmNXY3BdTEtqWGNhVVRVc1ZMWHVkWl5rYFxaY2VfdmdtYnBpc29yf3V0mYJ3f4B3f3+GhXp9dIKEfpeFbnN0fHp0cYSFj4GAeot2dJB/fIGVjoCFhH1+jIZ7foB2e6OlinmIhoRrdXx6dYOBi3puhHN5hH2Bg3VuamhlVl1bWlpTYm1kW1hhc3tpaG1pYGJXX1tqgGprcIBna2BoeXhqc3RzbYOAen98dXVuemhqeWpfZW5ogXaQhGdlWGJ3an6He29qcGdmXVVYb2eOqHeBenyRjnl2cX9wdHd6kIF5lnWGg4CFiHZqcXVnZ25bbGNdbXJfZ2FqeGh7bVtugnJ0am+Bfnp3YXeFhHiPhXOIcm95gHJjcWlccXhkcnSJfHljdIBxaGp6dXJteXh2eWSEfH95d3FkZGNufH1ra1VoYWVSSmxnT0dRa0VheGdhTVNxXUpNVFpla3Z6ZV9tcWlkXVZgVm5uV0tTaFdlXlhOVWxUSlx5X1tfa11dW2NlYHlobGBvb3VucHh1eph9d4CBeoCAh4Z6eHmCfoGThHJ1dH95dnSEiJF9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSrn396iIiDa3KBeXWAf4F0boZufIBzioBqb21kZFhfWllaVGFqZ1taXnSCaV5tbFxhV1xcbIFlcnR9aWlca3Z1Z3N2cWyEe318eHVybHlnaXhmXWVzaHp3k4FjY1RlcGeChXd3Z2lqYFdWWWdjj6dvfneAi457cXJ+aHpwe459eJByhH1/f4ZuZHVyZGdnXGphXG9vXGdfbXVkemhddIBvcmtyfH51dmJ0hYt7iIeBgHhydX91YXBtW3J0Y3FzhXx1ZXOAbWFte3Brant5dnNmhnZ7e3ZxZWJlbXJ+amxUaF1cVEtyYlBGVmFHYndnYUtUb1dKTFhYZ2t1emRlbnFmZFpXXVh2ZVRKXGJXZ1hZSVdlUEhieFpdX2xbXlxhY15+aWpfbnR4bXBudoOXeXKBgHx/iYyGfnV1hnmHjH10dnWCeXp6goyOfX6EiWlzloF6ip19foV6gXp/fIaIc3GPrYx7e4ePfWVxh3lzfHt1cm6FbHt+bI96YnBvYmVdZVZZWVdjZmtfXVxyhWhYcG5bXlhaXGx7Y3B3dm1iWmxzc2d0dW9sg3h+gHh3bm50ZGl0ZVtndWZ2dpJ5X11SZmZqg4J0fmJkaVxUWF5iY4+kaHh0g4aQeW5we2l5bnyGfHaKc4F4fHh/aGR2bGBmX15pXlxza1llXW9vYnplW3d8a25ub3h5c3Vkc4OSfoeDiXt2cHJ+c2J4ZFxwcGJxcoJ9dGdygGVebndpZWh6fHVub4J1dH10cmJfZm5ufWVpVGdYV1NNd19RSllYSGJ1ZGFJVG1TSk1aV2lscXtibGxzY2JaWlthd1xTTGRdWGlTV0hZYE1GaXVYXmBsW1tfYmJchGlnYW54eWxvanaBkHhtg36AgZOIhIF2c4h0jIZ0cnd2gnd8fX6MkIB+k35wd5WDfJmSeYCAeHp+gHSIg3RwmaJ7en+JlHhkdYd4c3h1a3Nufmt4fHCRcl5wb2BnYmxUWlpXaGNtZlxbcYllU3JuW1pYWGBsdmNpdWppXlltc3Bsc3NzaYR8f4B8dm9ubGRpcWNba3JkdXaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VycYWEkXRsbHtucHF7fX1ygXiAc3p6emNldWhdYllgZ1pedmhXYl1vaGF3YFt7dmlqcm54c3J1aHGClYOHfoR2c2pxfW5md1hdbG5jcnOBenRnb35bYHByYmBrcn5tbXV/c3F4a3BhXGVsbHphZ1RmVFZRUHVbUU9YUUhjdGJgRlVrUElQWlVra2p8ZW1ucWJbWlhZbHFXUlBnV1doU1RGWVxOSHJ1WF9jbWNYYGBhXYtqY2RteXhrcGl1eYZ7a4N9f4SafIKEeXyHbo+GcW53en10goJ8i4+Cgpd0d4KThYGfiXWBgIF0f4Jxh4J1b6KXc3uGi4Z7ZXeKbm16bmZ3cHprc3ZyjGtedG5hZ2VrUl1bVWdhbGtaXHCMZE9vbl1WWFVnaXRoYnRlZV1ZbXRtb3V0eGqGfH98iHaPc2Rka25hXG5tY3N4h2taVFZjZHh9fXGGXWNfY1RaYFljlZVjbnCDhYp0a2h8cGZ0eHV9bXp1dm96fnVeZXJjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXNxdHB1dmtthJOBiXuFcXNnb35xc29UXGdrZnF0gXdzY212VmJybFtfcGd+Zm13fnNzc2ttYFpkamp3X2dUZFRVUFRtV1FWU09HZHNfYUVYaU9IV1RWbWhkfGlrd2tiV11VW3RkU1JXaVJZZlRTSFpaUE14dlpfZWxpWWJgXl6ObmFma3l1bm9pdnZ/f2yDgH2Hl3uAh4GJfmuTiHJndIB7dYCCfYiOf4uTcnyKkYWHn4Z7f4aMc4GGc36Cdm6ljHKBjYt2d216jGBke3BmeHJ4bG1xdoJnZHtsY2ZnaFNfXlVnX2xuW15tjWhOaW1gVFZTbmd0a2V4ZGRcWG9zbHF6d3Jsh3uAd5x6eWthZWxtXmBvamVxeX5nWlZYYGx4fHtwhF9iXmdWWF9XZJuIYmtxgYd9eGxreW5cd3Nte2p2dG9ve4ByWGltXlhcVWFiV2RwY1NeYWhhYmxaYH5rZmtzdm9td3dsaYWMf4l7iG1xZnF9bnNuY1phaWlvdIJ0c15pbVNlcWVVY29je2Ryd3x3a3Bta2BZYWdodF1lVmFVUk5YZVJPXE9PSGRwXWNGWWlNSV9LWG1kX3hobn1kYFVfVF11XFRTYGdPXWFVU0pcWVBZdHVdX2VsaFhjYVtejXFjZ2p4cXNuaHZ0eoNygoN6iI5+fImHjXlukIp0bHOCdH9/h4WGkoSVj3l+jI+HkZuEgHyMhXOAgXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjYyMjIyMjI2NjY2NjY6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjY2Njo2Ojo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERBUsza2NjY2NyLaW5ubm5vamZnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTJG2Orn5+fn64tiZ2dnZ2hjX19fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaTlJSUlJSVjYmKioqJiomIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkZKRiYeOipCSkpOPjo6NkYiPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYuLi4uLjIyNjY2NjY2NjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx9fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQkIeJh4aJhYiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCNhIeGhYWFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkYmDhYWHhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjoiHhoaIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Qjo2Mi46Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKHjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLioqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyNjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHR0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnJ0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOjs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODk6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VzcnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GBgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0JDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl6e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgICBgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fXx+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIF2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj06Ojo8Ojg6ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXtOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/QD89PkFAPT49Pz09PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkVDREE/QEBAPz1AQDxDY0RAQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjo+PT48PEd7Wz5DQ0VAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERGSERAPjw7PkBERURAQUZCUWVucHlxRURERENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpISUdVZWF+hYWFgHpUQUFVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtLSl56gIODgXyDfmNObISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N1dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLZH+BfoOBfYSCe4CGhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJAQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVISElIS0tmf359goSDgYKEhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6fHt8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BDR0hLR2qAgoKCg4KCg4KDhIaJiouMi4qJiouMiVQ7ODY1Njc2NjY1NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODk7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1FQkRFZoKCgoGDg4ODgoWJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6Ojs6Ojw4OTg5Nzc3Nzk6OTg4Nzg1ODg7QT0+PkJBP0FLTE9RUFFPT09RV2tycnR0dXd6e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE6PUNTgYODhISEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8Ozk7PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pz5BP1mEg4SFhYWGh4mIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPj9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PD06Ozs8Oz0/Q0JAZ4WEhYSFhIaJiYiIhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURGRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pz8/PEA+QUBFQk5+g4SFhoaGiIiIiIeGhoaHiYqKi4yNjIyLioqIV0dMTE1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkhHRUtJS0lLS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc8Pjs8Oz5AP0E+QUBEREhDaoWChYWHiIiJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtHRUdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw7PD06P0A+Pz9CQ0ZFTFd+g4SEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSUhGSkpFSkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6Ozg8PTs9QT0+QEJERkdRb4SDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMi4uLi4teUlJQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl6ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgICAf39/VUVDRUVHR0VEOz9BOz08OT89PUBCR0ZARUdFSlF3hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTlNUT01TTFBTVVdSU1JQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj5CQkZWTURLTElOUnqGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlTWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0xLR0hJSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQkNGRURFTFhSTFJSUFNVeoaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVddWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01KTEpJSUxNS09NU290dnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNSVlhWWFd3hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktJSUlGQkRAQTpQUVFXWFBQT1FTVFNWV1dXWW2BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpbUlNRT1JSUVVSVVNWX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XlxWVVNST0tGQ0RBTV6DbFZSU05PUU9RVlJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSU1RaXW1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lVUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUENDQEM+QkhHVkBJTk1HXWlRSEZPRkRFRkhHSEJDSEdISkdEQkFDQE9QTVJkdHV2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHN2ent4eXVybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojs+QD8/Pj5rUUthRUZISUVCP0hNTUdNUVVKQkU/Pjw9PD09Pz0/QUNCPz88PUI+Sk1GVW91dXZzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFDQlxdT3tOT09OS0xNT09QTEtMV05JR0BCPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1dnV2d3l8fHx9fHx9fX5+fH59fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJTVlhTUllUTllaW1dZXF9fYGVgXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZDTVJQYVdSWFFQU1NSVVtPT1FWUE1JQ0Y+Ojk2NTg2OTc5OjM2NTc5NTxCPWZ0dXZ3d3l5e319fHx7fH19fn57fn59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LVFRTUFFVT0xSU1RXWFRUWFFMV1lZVlhYVlhZXVdXWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNRUFNaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OThHbnJ1eHh6e3t9fn19fHt9fH5+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWWFhZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KTk9UU1RcVlJVU1NPTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3enp7fH1+fX58fX18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFhZWVlSVU9KR09QT09NUkpPUFBQTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTElMS09RUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFPUFBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PT08OT1HNjY3NkRucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11nU1FTQUdVUE9SUVBNTU5MSkxLTE5PT1FNT09NSExLSUtLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1BQEI9PkVIRkRGRklHS0pARkFBQEZIRUpPSFFSYVxRUFJOU09PUExMT01LTUxNT05bVktNUU9HSUhESUpMTEtGRkZEP0NDPj1CRz9CPkFkcXR3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVBNT05XS0xOS0xNTUxMS05OU2ROSkxSSUlJRUFJSkxNTktHSUZCQUJAP0VGRUhETG9wd3p6eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkJBRERHS0ZESUlHR0hDQz9CPz9AQT5ERUNLTlFUS0pJTVRGSUlKTEpLS0lKTE1PUFJQS0dDTEdDQ0pKTE1PTklKSUdDQ0NESUpNTElac214eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFIS0NGSEhHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNT0dIS0ZIS0RISUtNSEpMSElKTEpNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuaXd2dnt4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkcEZLQ0ZFR0RFRUZFR0NDQD08PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGQ0I7QkNDPkBDQ0NFR0xOSEtOSERIRUlMTk1HSUxHRkZJSUxOS0pIRU9JQ0dNTU5NUE5PT01MSUhJT1NRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUZFQkJBRUBEQj4/Pjo7Oz07PT9DQT9BQ0ZHSkdKSUxIR0dHRkVDPz1FRUI+QUNDQ0VHSElHTVBJRkZHS05PS0ZISUZFRERJSUhLSUZIUEtESk1MUE5PTk9QTkpKSE1SVVVST1dkYWFtZ3Byb3N5emdlaGhjaWxncWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NBQEFEPEJBPkE9Ojo9Pzs+P0BCP0BCRUdKRkpHSUdGRkZFRENBQUZGQ0JCQkRFRUdHSEZMUExJT0pKTEtJRkhFRkVEQ0lISEtKR0tSTUNPT05RUE9PTk9PS0tLUFVXVlVUWWBfXWlhbWluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01GR0VHQUJAQ0Q8QUFAQzw4OT0+Oj89P0I/QEBERkhFSEZGSEZFRUNDREJESUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9OTlBNTE5TV1ZXWFZYXltdZGBoYmppZ2tfZGVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJFRTxAQ0JEPDc6PT47PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSEVLS0xMTk9SVE9JVFVUUVRQUU1OUU5NUVdaVlpZV1peW1hhYGBgX2hlY2BkZWdnamhoamZobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURCQ0hFPEBFQkQ8ODo+Pjw8PUJCPD8+QUJGQ0VCQkhDQ0RFRkZHR0lGR0tIQ0lIR0lHRkRIS0lHS0lNS0pLTEhMSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9UWVpZXFpaXF9fXmBjXlxhY2tiYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJFR0U8QEdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREZGSEhGSEdJS0pFSkhIS0hGRkxISEhKSE1MTExMSU1LTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJlXWRgZmdgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXd1dXV3dnV3c2d0cmtxcmtyd293SUpMSUtHQkVERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFREZIRUlFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0tNTUpKTUxNTk5PTE9QUlVXVk5OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFhYGNkZWJkaWNkaWpndotsa2lobW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3Bzd3R1dXd2dXV1ZXFza3BxanJ2cHdKTExMTUdDQ0FEPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0dHR0ZFSkZER0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlFMU01LTk1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZmJhY2luaWNpaGhteHZtaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0VBQEQ+PkRFRkM/Q0FFQ0RGQ0NFR0NCSEVCSElJSEhLRkRLSkdISkhJS0dKSk5LTkxJTEhKTUtaZkpkXEtsUkhPTV9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxrVV93dmlqaGhmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENDQkVFREZCRkZHRERLRUVKTExKTE1HR05KSEpLR0tKSUtLTkxNTUxMSUxNTFtzYmRwXmxsVU1OZXNeZ2ZxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9ccHVncU1Lcnl2a2Jha2VlbHhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnR0Ym11a3BwbHJycXpLTElJR0VEP0FCPz1CRUdCRkNFREVFREJISEdERUtIR0tNTUpNTEZKTkhKS0pJS0pKSUpMTU5NTU1LTk1NW3Jvb25wcGxrTlBRbFhNaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhvY15rZmJncHBqaW9wcHJzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hFRUVCQUI9P0BFR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSU1LSEpNSUtJSkpOT05OTUxOTUxcaGR1XWxxV2xOT1FuVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWRpdHlrb25xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRkpMS0ZNS0xSUkxHTU1ITkpJSE5ISkpISE5PTk5MSk1NSlpzcHBvcXFtbE9RU29Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpbXXRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0VFRUBAPkNDQUZDSElNSEZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUlKTElLSklISkxNTUxJS0tLU2tiWmleX2pjcnJaX1prb2BlZVVrX2NbYWJRYG1oXGpcbmlpZFtwZmRwXVpca1ttcWNwc2xkZ2NkZ2Bga25wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFydXR3cklIRkpERURGQUBBRURDR0JISkxHRkRHS0xJRUZKTktJT0lMW1FKRkhIS01JSEpKS0tJSEpHS0tLS0dISkpMTExLSUtMTlRbXVRQVU1RUE5PT1VSUE9RT09RSkpOUFFkcWlUWVdbW1xVWVtdWF1cXGNmYWFmYmNmX15ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0hQS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKR0dJRUZLSElLTkxJT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1hWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1BQ0RCRElFR0dGS0pLSEVFSkpKR0VISFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdFRUpHQklNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjX1lfYltgXltUWVhaX15kYmJhY2ZpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURCQkNGR0VHR0lKSklJREZLS0tGRklJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUJGSkQ/SUtITltjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmJiY2NlWlJYVlZcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJTERESkpNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hEREBEQUhJQT5ISUZPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUVFdX2FjY2NjYlxkY2JkY2ZYUVZVU1xYW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0lHR0pGRkZJTEpORURKSkxOSkxJS0pISUdCSEhRTUtLT01LS0lISEVEP0VCSEhBQEZFRFRdWV5YX1hfW11VWFhQXV1RS0pXXlheW11WWmFSUl9fYmJgYGJiYGNiYmRkYlhPUlJTXFNcXl1eXl9fYGRoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0lJR0RIS1FPTUxQTExLS0lJREVBRUNIRkFARkVCVlVFXFReU1ZgWE5UVU5aW01KS1VgYVtfWF9eYl1PWWJcYGBfYmNiXWJiV19fVFBPUVJZU15cXF1eX2BiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNRRFdfSUdHSERGTUpQUEZKSUpLTkxMS01LSkpHRUlOUVFOT09NTk1OSEtBREFDREZEQkFERUFMSENMTFBPT01GTUZGSEpIR0xMTU9QSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUVVUXFlZW15eYWFlZmNoZGtscXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXk1HSFlNR0hKSEdOTFFRSUxKS0tOTVVOT0tLTEdHS09TU05QT05PT09IS0ZgRURfTERmY0RNW0heXHNtT01WbVlMQ1BfVWxXZ0pdV1VeRExRVUxNU1ZRUlRYV1RYVVRcVFBmWmhoZFlUa1RYV1VbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEg4ODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USktHYFRHSk9KSU9NUlFLTUtMT1JVUk9PSkxNR0hNUVtZT1BQTk9QUEpLUX9RSXxZWXJzV1BtSHFub2FWUHFxdE9Ca3NucXRwU29fW25YXVZcWFVraFVdVmNZYFlaX1ZVV39pdHV1X2F2X1liXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4OCf31+gHZ4em12fnR4foB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxMT0hMUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBRS0laeF1UeGRoWVJTUHZndGxwYm5ma1JyTkx3bWpycHNycXJwb3CAXWZ6dXhxcXpxfnJ9a3V9YlJnfGVzc29zc3x9cH55b39yX2BgYmJbYWBoa25rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEtRT01OSk5XXllVTFFTTllZTFNTUk5MT0lRUlRZV1dRVFBQUVNMSGd4bGN4cW1aS0xUeXB1bXVibnZQZGVJZXZxbXdvgGpmeHhpV3JSaXttaWp6en1seHp/cGdvWHV1anZ1cIBhc2h9aWx4fG9fX19jYlxfZGVmaWpkZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3Z6bnx9eXhybk5KUnROQ0JFUFBJS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OU0pLcm91dXF1cWRoYVZuTHFwXkdoeVd2VEtoeH14YHl7c25hXm1vZFNncnVubXlwd2x2c3RxbG1cc316a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tTEtaVkhHRUdSUEtMTktMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05RSVJtSGl3S2BkdnVVV2xObmx7cmFqZ392VUtXa2h9bG1seGBbcHp7X2B6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtobW1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTUxTU1JPU1JXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFOUFVMS0tSU1JSUk9WVVFRT1JSWFhRTlBVVFhYWFtbVVNTV1tXWFdaUFNVV1dYUV1YVl1VU09YUlZXV1haYFtncl5bXFtdXV9jWl9jY2VmZGNjYlpjY2dmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJNUlFQTFZVVFBUVVhVWlVSWl1WVVRXVVlYUE9MTldUUE5VU05QTkxRUEtKUVFLUU1KS09RVFJRUVNSSUlNTk9RUlFRUVRWUlhXXFdTU1FRVVVWVFpRTlNRV1VUWVZUWVVTUlVTVFVYWVheWl9hXVxbWl1dYGNcXWJiZGdlZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVFNWFdVVFZYV1daVlRcYFZXVllVWFRRUEtPWFNQTlVRTlJOTFNQTU5VU05RTk1OUVNQVFFTVFROTE5PUVRUUlJRVldVWVpbWVNVUlRYV1dZW1NPU1RXVVRZVVZZVFJSV1VWWFxaW2BdVllfXV5dXF1gYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFPUlhTUVFPTU9TVU5XUVRUVU9OTlFUVVVUVFJUWFZaXVxaVlZRUldYVltcVlBTVVVVVllUV1dUUlJYVlZbX1teYF9WX11eYFxcYGBfX1piYmRoaGVkYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST01QU1JVWlVTUFBMUFdVUVZSU1NYTU9QUVRYVVVVU1VZWFteXVxbVlJPVVZVW1tWUVNWVVZYVVNYWlRTUVlXV1xfW2BfYFZiXGBhXmBiX1xgXWNhY2dpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFlcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5PV1NOUVFQUlRSTFFUU1lbV1VPUk5TWFVTUlRSUlpPUVNTVltWVlZUVlpYXV5cXF5WU05UVlZbW1VRU1RWWFhSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZ15cZWBhYGFjZF9iX1laX1tcW1lYWVdXWltaYV1dW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1cYFxgVVxdaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVWlpaU09TUVVVVVNOVlJTWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZWV15aWFFUVFhYWFNWWVxUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXV5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFtVVVdWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVU09XUlNXU1dVVltdWFtZVVpeWF9eWVxZUldSWVhZX1lZU1VVWllZVVdZXFVUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZmRiX2RhX2FgYmJfYF5XWV5aXFxaWVpXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFJXVVNSU1hSU1ZUWFhYXV5YXVtVXl9YX19YXFZRWVVZWlphWFxVV1daWlpYWVpaV1ZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYVtmY2hmY2ZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaV1RcVVZXWVdWXGBhYWNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVFJWVlJTVVdbW1xfXlpfXFZfX1pdXlleVlNZWFlaXWJZXlZXWltbW1tbWVpYWV9fYGBkY2RlZWJkWmJmY2dmZV5hYmBjXmNjaWVkZ19nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVVYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZWU1VUWF1dX2BgXWFdV2BeW15cW15YVlhYW1pfX1tfWFhcXF1dXltaXFdaX2FeYGVkZGZmZmJZY2ZlaGdkXmNgX2VjXWZpZGVoX2deY2JjYWFgX19bWFlbWVpaWFpYV1tcWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXF1YV1tbXV1fX1xaXWNYWVhdX2NkX1JZWVBXVldYV1dWV1ZdXV5hYmFfYl5ZYV1dXlldXllYVVdbW2BeXF9ZWV1dXl5gXFpaWVtfYl9iZWRlZmdnYlpkZmdpZ2NfY15gZmVaaWljZmljZl9iYmNhYGBfXV1aWFtZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxcXVhXW11fXWBfXVtgZFxcWFpiZWNhUlxZT1hWWVpZWVdaWmBeYWJjYGFjX1xiXV9dW19eWVlUWF1dX19eX1taXl5gYmJcXFdbXWBiYmNlZGdmZWdkXGVmaGlmY2FiXGNnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYV9jYmJdXFtbWFhqcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWltbY2BjY2NgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl5cU1xfYGNkZGZlZ2ZlZmVfZmZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7e3t6enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHt7e3t8e3p6e3p6enp6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKh3NxcnJycW+pwb6+vr6+ytPS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyJcm9vb29vbLLQzMzMzMzb5uXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f4B5d3d3d3d3eHl5eXp5enhvb29vcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx6enp6eXl5f4OCgoKCgoSEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dXZ3ent4e3h3dnZ4eHl5eX15eHh5eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t7e3t6eXl5eXl6enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3d3x7e3x7fXt3d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d5fnx8fX1+fHd4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3t+fX18fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt8fHx7fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl3eHp6enl8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZWZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMj4uKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIjIuIioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjIiGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+f39/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCgoKHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFg4SEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYODgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoKCg4SDgoKDg4OCgoSEg4ODgoOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgYGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIKDgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWGhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkZGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+NjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCBgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYF/gYGAgIKBgoKCgYGCgoGAgoKCgoGCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGBgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/h4KBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOCgYKSjIKDhIKDg4OCgICAgoKCgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgoGChoaDgoF+f5GZhoWEhIWCf319fX6ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIaFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDgoOFiIJ+fX59hZyMhoaDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4mKgIB+hYp/k4+EgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4aGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhIOCioqDiIKDhYCEhIB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGh4eHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OOiYaGi4N/gICBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI+RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhJCHgYKCgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEhIGOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWFiIOCgoKDgoKCg4F+fX5+fn5+fn18fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaEgoKDhIKDg4SCgYGBgYGDg4SDhJGSkY6PjouHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWHiIuKhoSGhIKGh4KBgoSDg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GCg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjZCMiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoGAgIKAfn+EhIODg4KCgH19f4CAgX99fn59fH19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgICBg4J/fn5+fn19gISEgoODg4F+fX5/gICBgH59fX19fn18enp6f4KCgX9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF+fX1/gIF/f36AgIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH99f359foCDg4OCgoGBf319fn6AgIB/fn19fXx7e3t6enp6gICAfn9+fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36Bfn6AgoSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoOBgYKAgYOEhIGBgYGAgH19fX5+fn9+fX19fX18fHx7enp5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4KDg4OCgoKCgoF+fn19fX5+gH19fX19fX19fHt6eXl5eXmAgoKChIOAgoOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeIh4aHh4B9gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgH+AgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eGh4eGf319fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYGAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYiJh4WGhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGCg4KDgoKBgYCAf4F+f31+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Mi42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRjIyNjo+KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2LjY6OjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKNjIuOjYuKhoSFhISDg4ODgoKCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn9/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaFgoSDgn+Afn+CgoJ/f4KCf4CKj4yMi42LioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t9fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4aChJGOjIuKi4eIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJi4mLiYWIkY6LiImHhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgYB+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnx9fH18fX1+fH59fX19fHt7e3x7fHx7ent7enp6e35+goWIh4iKi4uLiYyQjo2JiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+Ni4iIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiNjIqKhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiY2Ki4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGDgX5+gIB+foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx9fX18fHt8fHt7e3x7fHx8fXyJioiIhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoWGh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dXSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAhoKEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEf4OCgoKDgoSCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+Ag4F/gIOCf3+Af4F/gH98e3t6fHt8gYB/gn9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fX2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBhIF/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/gIOAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn19eH5/f3x8fH59foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4ODgoGCg4KBg4J/gX9/f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH99fn5/f31+foCBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZxeHlyeIWFhYWDhIOCgoSCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWGhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/fYB/fn9/fn19fICAgIGAfn9+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn18e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6enp4c3d1cXFycHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgX1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn6AgX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf3+AgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/foCAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f356gZONenx9fHt9eXt6enh5gYF4eXx8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgoGCgYGAgICBgH5+f3+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/f31+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e41+d3d5fHx7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYSDgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgIGBgYGBgIGAgIB/f4B+f31+fX5+e318fXx8fHd4dXh4eXt8fH17fHx8fH1+f39/f359fX6Af4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYGCg4B/goGFg4OEgYGDgYKCgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAgH+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31/eHd2eXl6fH19fHx7fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXl0cXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKChoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCAgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t6ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SDhIWEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH96e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KDg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODhH99gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KDg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODhoKDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgH+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYqJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WCgYSDgH9+fn59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfH9zgoN/g4N9gX1+fn1+goOBfH+AfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhoOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9f359gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOGhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYSFhoaFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYSGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaDhoaFhoWFhoaFhIOFhYOFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn18fXx/fH5+fH2BgH18fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoWGhYaHhYWGhoWEg4SEg4SHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4aGh4SChIOEhoWHhYSEg4SEhYaGhoaGhYeFhYeFhoWHhYSDhIODhIeBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoeHhoaHh4WHhoiIh4aFh4eHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYSFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYWEg4WFh4aHhoaFhoaGhYaGhIOFhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4iHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4J+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn1+f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WDhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg35+f4B/f4CDf3yAfX1/gn2AgX5+gX59fX19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7e31+fX2BfX18fH2Af318hoOGhoaGhoSEgoWChYGBgH9/gIB+f4CCfX5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCfn19f35+f4R+e398fICBfYGAfX2DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEhIOChoKDgIGAfn5/gH1/f4F8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx+g358fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKEgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dXU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXU1dTV1NTU1NXU1NTU1NXV1NLT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19jc3d3d3d3d3d3d3d3d3dzb3Nvb29vc29vb29vc2tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLmzeHNzc3Nzc3Nzc3Nzc3N6goGBgYGBgYGBgYGBgI/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6ODc+Qz84Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OlmTIpKysrKysrKysrKyspNUVDQ0NEQ0NDRENDQz9c09PS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpps4LzAwMDAwMDAwMDAwLztJSEhISEhISEhISEhDYNLT0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87P0BAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaugRT0+Pj4+Pj4+Pj4+Pj1IVVRUVFRVVFRUVFVVUWrS09LS0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Oz8/Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0crKysrKysrKycnJycnJysvLy8vLy8vLy8vLzMzM09TU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7Ozs7P0c7O0NLOz9LU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbY19fX19fX2NfW19fX19bX19fX19fX19fX19jY19bW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Ozs7RwafR0big0NGcgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8/P0Z2PxLOWmLq6lbi5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q/QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/P07qvqryfo6iy0ZJ9fq+w0s7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Pz9OfsZu/x4eatNXTzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz9HAnImavdqjmLXU08CgoNDP0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Uo6KBm8DXoZi009OvoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDRxJ+Be5ar2KGYtNPTo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q1auvvMDPk9OhmbXUzZ6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njo7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJh3+FnqTZopm118OfoNLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HG09PVnJi/16Gas9mypKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg0tHS16iHy9axg8XWuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dLPxdTR0MPU0dLC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS09TS0tLV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSz4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp13cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBCRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX15dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSmoqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLeuqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLW2vL2+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87My8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJCQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3hmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFDQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/JzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraequ7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7ur21s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnZGpkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwsbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m9urq0v7i1uLOvu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vrm8wcHLvr3JxMDAysCxwb+7uLu+urW3s7i8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz05NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88OTc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2diXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmFhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcrGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKyr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBwsO7ubO0usG9v8bAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pXF9gWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nrK+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXFpVSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDo7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3s7KytLK4vrmztbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE+SUJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKyL7AuLi2srS2srSvrbu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLavqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vbWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u76/ubS0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PTw8OzpAPTw8Oz8+QkBBPz45NTg7PEZCQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+ysrq6t7e1tbyzr7Srtrq4wMTBuru/vbeyrbOwr6yutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWjm6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7P0BBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGwrq+yp6awpK+utcG6tbnVx7WztKuytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsaOlqJ6gnJWTkI+RkJiQlpWYlp+Ym5mbo5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENBRD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaSlrqWsrLS8t6y52bO7rbWvr7O1qqetrKOcmZSOkZaXmZmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZabl5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOT9CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6kqK6trKurr6qvqZ6XnqWdnqWmpKGin6agoq+rrK21sremtdSZwbeysbGwuK2noZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKmxr6KZnJ2eoZmbm5qYmZuUlpuWmJyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5VTFJMQTc+QjY4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho5+doJ+ioKKvr6ywsaqoqrLJlqbIsK6trLCnoJ+ioJeRlJugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7issbSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqShn56anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOemaidrp6nnpyhnp6ampKZnpyhoqCgnaGkrp2fqayjnpeFe4yRsZSIta+oqqyqpaCemZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqefmaagn5+nqKWknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKafnp2dl5iVmZ6bnKOfn52jps6jm6WgiXaDc2Joa32Hg6Gzrq6pq6egnp6hop2fnZqcnJSTlZSenpiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqztK+zrqquo52rp7axrKKvpqGjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHJra3VycGhXW1FFVEhESU9IPkVBNEVIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw8Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6foZ2cmJufoJugn5+XorDRq5SOiIFicY5sYl1geKCxr6ekpKOgnqWrpp6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsDFvrm0ubq0u7ewtbKqurGuu7e+urqqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR9enJrZGhveGplWltGS0xFRFNMREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkpy6zqKGbmOHX1eHiI+PnLCqoZqdnJ+fmZeYmJKMj5eXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zT0NPTzMrCxcbHysfOv8jRzMfFxsTBu8PAvr6+tb2zrb+/wsLGxMfErr64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6ydn66mpbGqxcbMzs2/sMGopaisraqhnaOfnJ2aqZOZxsKVa1xql1tUcZuws62kn52gm5iXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K0tfR19LU1tPTyMzHzc3J0szO08zFx8nKwcXLxsjIxb7CsrPIxMvKys7Fyr++v73Bx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYuAenJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo5+ko5+gpKyan8+0gVpcfZFrkK6upZ2dnaGloZ6alZSWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTSz9HD0NPW2NXW0svJztHLxs3RydLV1tnV19PW2M7Sys/RzM7QzNLPv8fGysPMzMvOz8XGx7bAyr/RzMvPxcnHv8PCyM7Mz9DPzcrIzri3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKR0FFSEk+O0A4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wsWxtqiipaahoqu1paXSqGpadZWjra2clZignJuhop+cnZqWindpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNDO09fW09XQz9LT0cnT0cfQ2NfY0djS19nV1szPz8nN0cvOz7/FwsfFzs3R0NHIy8zAysvF087LzsjEycbGyMzK09PR1c/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMfHpxc3RtYWNpbV9WUF9KSkNGQ1FNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr66qqqudpq64qKu319TV2dnRztDAvMzJt7+vp6upo6SxtbGvzaFaZJ+tq6KZlpiam52hnZqcnpN+cmVjYl9fYWBfYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHG0dTK0NTV1s7S0NjY2NfLyM3DyM7Mysu/yb/HyM3Oz8vQzc7Lzs7Hys/Qys7KwsnGyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHp2b3Bva2FkbnBhV1xaSUZGRE1XRTtAPDMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PT9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snn7i2tbWtpa2uvrSwwNjS19rc1s/Ny8TT0MLBsaqtrqulsrG2vsyXWpCinJaTl5yen5+dlJaYlIlrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVysDKwcXMwsjJwszDxcfKys7KzczQzdPLxcjPzMjHysTGwMXKy83P0cbQzs3NzM/Fx8C3uL3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV4cHFrbWdgYHFoWFhoVkxGTElQUEI7RD47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc2Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfCuMvV1tna29jMzc/I1tXFw7extaqjray4t8nNl4iajo2YlZCUkpGWlpaQjHxmYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL7Gyb3Cx8nOxMHHwMfNx8PLysvPx8PD0MjGwcXHxL7Ax8vLy87CysvIx8zQxMXHu8fDyMjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd250ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vbrNzcfQ1dXZ2tvY0MrP0NLUycS5vb6vp7eqvbnOyaGUjo6Xj4aDhISCfoWFf3RgXF5eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsjGwsPAw8fKycjKyMHFzMbIy83JxMLLycHCy9DEy8i/ucG7xce9v8bPy8O/w7vJxsi7yMbEysC9wcvGxcS+xby8v8PEy8XEvMDJwsXH0sTAyL/KycbHxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZqjoJuUe3ZzdGZpWmFubVpbWFJETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvP0czHwsPHzc/PzNXQ1tnY2dDM087P0MrDt8bAtbW7sL+20rORjJOYh3qAhYaAdnh1cnFfWltdYGBiZGRkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjAwcHFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDvrzBzcPGvr61wb3DurzGu8K5s7zFxMHCtr+1tb2/usvDvLW6yLq/vcvDwcXCxcjGyMbQxsLMx7LHycPOzcHFw8C9srewsqeoqLmwpa2wq62slHl2d2pkZ2Bob2NWXllKRkpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGw8TIztLLysrHzc7P0snRxtbU1tjOzNDHzMjKxL3JwbG0uba5tLuTjYqLhXmAhoaAfoR8dHVkXFxdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLS3tLKztLq1vrG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bAwry4vcbBw7u1rrK2ur60xLe7tau4vb2/vbC6tq+2urLFvLauu7+0trTFvb7DxcDDxcbIy8XAxsa7yMu/z8rHw8bCw7bDvb22ub7Hv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDMzsjLycvKy8XRztPQz8fJxcnEw7+8z7yyt7u4tbSbjoeJiXt5foaGd3iCfXRoXl1dXV9gX2BkYV5kZWNfX1xbXlxdXlpbW11fbHBtaGZqbW5yfKTHv7i4tbCrrKeeoqqnnquss62pq6m0rbawsqmupqyyvLq2w7m6urGrtbm7tMK6sL+xvby7trzHucK2raqosLG/tbe8r7CnsbO0u7yrrbWlrrauurGwqriwrbuuu7i7v7+9ucK/x8PFwbzGwcjLuMXHxb/Gw8O5xMbCu8bJzMuzucK8urKIcnZ2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs7SzMPGwsXQx87CxMfAxsbExMvCysvBw8DGv7i6usm2s7m6s7GpkYmPkHx5foqGenuFgXdvXl1cXV1fYF5fZGNiY2NiYF9dW1taWl1aWlpaXGRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCkpp+qrbW2sb25r7evqK63tLS8uLS8r7i5tLG8wbHArqWooquxsrOnvKqrqKusrbSzpaitoaSuqbKlp6itpai3rLCyt7m6u7G7vb6+xL+1wcDHyLe/wMS3xMK/u7/Ewr7EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8XR0M3EyLq6zMLMwLzKuL/FwLvLucLFxLi7wbu3tbvDtrO1tqmtlIOJjYF8foB+eHR/fHN3Zl9dXF1eX2BeX2NjYWJgYF9eXVxaWFpbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSdpJuYkqGjqqOin6Wlp6Wsn52bpKassq+2t6ewrKeqtKq0urG2ta22ubGvurmxt6Sfo5+msaerqLmqpKeoqKeyraCnpp+bpKWsnp+npJ+gsa2trLK0srSwtby2u8HBsrq+w8GyubnCs8C9v7W4u72+vMLHxMLDv7/EoIN3cGthZl9rb2BVWV5ITmdPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzc4NjY2Ozo6Ozk7Ozw4NTk8Oj4+QDuNyLW1vbi6wLq9taCelJ2hprq2q7Ozu7PE0MnLw8e5uMnCzcC5y7m8x7u1x7q1wsSxu8O5s622vbisr7GpnoSHh4J9enZ0b21rampxaV5gXVxcXF5gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeVmqGWm6KYlo2eoaKmm5+fo6Whp56bopufqrCtsbWiqaqpq6uktLmtt7CssrWusrWusKqfnZ6jorKkpqm4raKmpp+orKqZn6CemZ2fpZqao5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7OzubO9tLaxsbW0v7a9wL3Dwbq7vZeDenJrX2VeZGRYVFhdSVdcS1BHSUlGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xtDIycHHvLzFxM+/u8m6usG6tMS3s76/sb/BuaqmsbazpKyto4mGh4B5c25wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaRnKGiqJ2bnaWmoaWcoKCamK2ura6yoKWiraumobSwsbGsqK+yp7qzprahop6bo6Gto6Gptaqio6adpaajlpiel5manZ+al52dnJysoaumo6Smrauzs6q0sLKqsrm0r6mvsrKzt7Ouqayusriwura5vb+3srGUhXl1ZV5lXltZVlNaVUtbUUxJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+znaWjmKWxwrW2va20uMLNyMfBxrjCwcjPuMLGv7W8vLXBubW8vrO4vLemo622raOrqJZ9hIWAeXBydHFpZmRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYWFhYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnqmcmpqqpq+wq5ujo7eqoJ+uqLappqetsKO3sKS3n6KbmJiqpqGarLiwoqGknKKgoJOVoZSVlpuYl5aXnJWfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxsLCur6anp7KusbSvvLS6t66jlIF5dWReYVZZV1NSVEtNXkxQS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Oqu8C9wLmutLjCzcnGw8S+x7nJzbTDxMOwvr64vr+4vb23t7mzpKOtt6Gimp+HgH15cmptcnRwaGhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dWW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKannpyfpZ+qr6afoqO2qKChoqi0oaWnpK+lsK2stZ6gnZWUqaGilKyxsZ6io52dmJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpaukpbCnpaOrq62mqK6vrquoqqmzpaarr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxt6yepKett7u8wcW6sbm1xcrLwcTHx8i3x8W0xMHIrrm6wLrAvr+7ubS2sqKjrbGZm4OUiIB3b2RiZ2loZmhqZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRXVlNUUlVgYF9gYV9gYWNkaYGTk4iQjpSSk5yUlZajmaCWnKCloa2lpKOio6GbqqulmZ6lsamgoJ2lq56noZ6sramorq2ioaKUl6ObnJCqqLCbn6KfnpeZk4qekY2Sk5WQmJiTm6GinKSgoZWgoaSmm6OrpaKkqqSrrqWtsqmmpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlZSR1FPSFpcT1JJVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4Njk4OTg5OzlAOXu1tK20u7Kvq7Gtnaenr7m5s8DIurXAr8bJzbvCy83It8u/s8DGy6+0u8W5v8XBuruztrGgpqupl5KBjIR8dWpqamxoamxta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eXl9fYmRtjo+EkYeQkY6Zk5SSnJqinJugp6iqqKqmqKWjmKSupJSZpa+pn5uZm6Cer5mbqrOfpaafo6OhlJOblpaSqaqtmpyfoaCalJCMmY6LkIySjZaVkJ6hoKOcm6KVm6CioJiiqKOiqKugq6+krrelo6SirK2qqKuusreyvbWzq6+Yg3NzaFtYWFJVUkVYTFFbWU1VTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaevrZupqKy3tqy8yru2v6zMx8a5ws/QyLXGvbm+xcuzr7vDusDCwLq+r7SroaWpppePgIF3eG9uaW5ubnBoZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/jJCKko2XkZeZoqCbn6qppq6qp6+jp5mfrKCVlqSop52XkI+anq6Wl6eqmZ+clKWhnpKQk5KTlaerpZqZmZ2dlo2MjJSGiI2DkIuSlZGgnqCjl5WflZqgop2Tm6Wlp6iooLGwprG8p6CjrLSqrqewtLC5tcCxrbGrkH1xcmJWVFZOUklHVlFSUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIxLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6u8LL0cyzuLq+wMTGtLK1u7C4ucG6va2vqayoqqWVmIJrZ21ucm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKmImUlJebmZ2omp+ppaSqnaeYoKWbko+eopqXloWEkpqjj5OinJWWlYeimpqTi46LkJqkp5yVlZebkJKHlI6MgYuNgJCKkpKSoZqfopWUmJiVoqWZjJikpqimoaC0sqezt6Gdoresqa2ksrKmtbu1q6uxo4h4cWxdTlFRTE9DTU5OUEtGTk5KSk5NUUlNSkFHS0hHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSopLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSno6mloKmlpLOqorLDtbWys8fGuLvEys3Hta+7v7e6w7KxrLShqrLAtreppqevqaqZkJ95X2Bnc3F2cWpuaWVoaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGDjoqUkZOdoI+am6Kho5iklqGblY2HmJqMc42CfY2XloWQmZCTjo57mY6cjIKKgImYn6KekJOYloSOgpN+fnSJjnqQh5OQkJ2amZqQlZCdjqKjjomaoKGjo5uitK+sr6yfmaW4pqWwobCunLC7qqmvqpmBdnJiVU1ST1BNQ1NOTFFNQlBRSElOU01ISkpDSkxGS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTE3NjQ3ODk6OjY1Ojg3QTd4t6KjtKilpqijpqWmpqazp6W0wbivtLDKxbi6wc/Gv7SuvMOusMawq6WqlKGrvLSsq5ujqKelkY6ab1dXYGhnaWhpbmNqaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeLk5Cfl52VlJaUjpaJf5OJXztXb3uLlImAi5KMj4WGc4qEloF5gnqFlJ2Ug5aOkI+Dhn2SeHJvhY1+iYGRjY+XmZiTio+JnIeel4eIlp6aoaCXp6+praionpets6KmrZisq5intKKpraOSfXJtX1tOU1JWTERUSlBNTEZOT0lGTFFNS09KSU1QRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCgrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6KpsKintMG5sLWwyMO4tL7PwLqwsLfEqq3IrKWgm4WYn7eqo6OSoaCfnJGJkGZRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1waXuCdFBCQX+VkZF9iZSMhIqNmo2VlYqSiIWVhniIf2BKUW54ipGEfYSNiYV/f25+f5R3dXV3hI2ZcFGNiIqHfH54k3Zod4WHfoqIlYqNkJGWi4SKiJSEmoyBhJKblp6clKSjqKmlpJ6bsKqhpKSQpaqWoamcoqaoiHRsZV5bSFFRUk1JVU1TSUxLT0lIR0pOTE1US1FRT0ZIQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKiosNDgzMzk3OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+tqra8tri3s8K8t6i6ybm2qKm2t6y0v6mgmZGBjZeunZ6ViZuSlI+LhYZiTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJKBkpmLj3uGj4B1f3hzbnVwdI2NgXl9iqqFeXpodnuOcHJteIGLjJJ4eoB7gHZzcpJ3Z3WEhISEe5WJiIqMioB/hIuMf5SDe4CPmJWclZGfnamen6CdoKmln52YjKekk6Cflp6epH9yZ2BcXEpWT1JHS1hST0pNTVJKSkpNUEhMUUxSVE1FSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5NDc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTM3MjE5ODc5ODc3NTo8Ozd2rpijoZicn7Spr6mlraywsaq9tLK7uLa7tbKgt7uzq52eraqqs7CjnJOQl4SSoZSaiICUhouFgYJ9YktJSUhHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gXZ4gImPfISYkoFyh498dntva36tfHOQin97hpKBfX90ZnZ8hmxvaHN8iYyHgGx5cX1wbXWPcWhxgH6OcEOKhIKDhX93d3qLhX2LenV+jpKPmIqSmpujlpmcmp2eop2WjYqlm4+el46WmI92bmxlYlpXV1RRSlNVVE9QTlFWS05LTk9KUU5ITk9LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn5+WoKavrK6rp6mxr7GrvLisu765s62om7GnrZyQlp2mqqWimZuRh5R9jJOQkn15h3iCfnt7fGJLRkdGQUBDRElMTE1RUlBRU1VUVFVWV1dXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hufHmIkHl8i4VvbYyReHN4amqAgnKWkYuBfZaASZKYbmh4foJsaWNseYWQkoZrc2x8bnJ7hmhtcH9zjYmEhXp9fnt2b3RzhYJ5gXdwfI6MipSDlpeYmpCTlZaZl56XjIOJn5GLko2GkJZ+bWhtbm5XVVdUUlFZT1JVVVNYVU1OSE5KTU5LQ0hOR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDQ1Njc0ODVIQTg5NXeZkZuZmp6lrbCirKqota+urLS/q7zCv6aimpWlmJ6OhYyWoqKZmZKVjXWQfYOJj4x6dnxye3ZydnlkT0VHREA8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4l2gYiGdGyakXRze2prnY9NeYWSiYSOZzF2hnNsfn6DdGZldH6EhIWAZmlsdWtwf3xncHB7bpONjntzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlI+XjoB5iJeIhoqGgJCHdmpqbmdkV1FaV1lZW01QVVZZWU5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiZkZqWpKiunrKfprquq7KwwrG7w8eblo+VmYuNhnqFkZmVjpGNkYhziIR3io+LfnV2dHZ1bXdxZ1VGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bHKDgYWBeoSGhnlyoJV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiYBoZmJpbnJtcIN1aW9YdXCOmpJ2bH97fW1xbXCAenN2bWJ2hH+GgIWQkYqLipKLkYyLj4N1eIuPgH6DgX6PenFwb2teWlxdW1lYYF9TTltaWVhMSEpFSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ6kp56vlaW1qa2xrsGyu8HGl5CMlJCBiX1ugpGSiYSLiI+HdoOFbpeKjH95entxe3N8am5eSlBHPkA3NDQ4Ozs8PT5AQkVJTExMTU5QUVNVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8fYWDf4x+dqKZeX6GgYWZhJucYYaqn52KgpCNenaIfomIjnOKl4+De1xkcXR6e3eKbGdpYXlvhY+Cem6Bd3SEenB0eXdrbmldd4d9h3yIh4+Ai5OXg42FjYd9cYR/hHx1d3t9iXVvcnNlZl9bWl1TW2ZeV1FVWFxWR0pKREtHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyNeIqAlIySnZ2fppGgq6CxqK/AsbrFupaOkZSIeoV2a4CMkoN+i4SPjXmDgnSiho1/f4KBc4OAfGt5bFNXTEBFMjExMjY3Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+MenyJhn6Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbHyBhod9jmhmZ3h+boWGgoVxhIVHa4B3cnl2aG1rX3Z9g4h/iIWMepWenIqLiJF/e3WLdnx3bW93fn9ycnFqWlxcW2NjWGdlXFVQUFdZUERMS0ZOSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NzU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehXR8foqFiJGPlpiSl6CdrKGmuK+zvbOXjZKLmIt9dHB/iZN/fYyDk5V9hn+HpYiJgYOIhnmIi391hnlfY1ZLQjYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzk0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiZGBmpWCoaGXlZuapa2Tmruxp7vHw6iLjKGljpOJgZB7coOdn5GcfnaFhYqPh5BpaG+DgHSMhoSLcYaCd4eAe3aFfW52dWeAlI+GiYiHiIehq6KWiY6Yf3uCiXp6b2dreH14fHFpY11aWV1pXGFmX1pPTE5YUlFJUEtETkdDS0RDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnVwZ3iDe4CMgIGQj4uamqScoaymq6+wl5GRhKGUhHh3gI2UfX+ShpOWf4qAkpuOhIGCjIuCio6EgIqAbHBqXUNBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jKGemISShYKPoZ+TmJKEioWPmJGWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGWhpOKj4+WpbWpm42VooOHk4R+f2tqa3x+fn9xX1xiXllmalxsa15YS0hPU1FOTUxGSVBDRE5GQkNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuaFlwg3B1h3F2koZ+l5aalJ+fnKegqpaTmJ5nZaSafoWTknqAkYmRkn2KhZmSkYOAgIuNiYaRh4SIhXh4f2dNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDg1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGampmnkZGIlaKamnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N7fXpvZl5bX15gZmNgZ2dcUkVLS1BPSUpMRkZNQ0dNRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcXVgbn1id459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Ljo17ioaPkI6Cg4CJjIqFk4WDhoiBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49R0dBQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKeotKyxt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsraqji5aYhaamoKKXgqaZjaKqqKSHhZOjoKCqoKSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWqiZqKk4qVent+g3xlX2ZbZGBdYmNeZmZfW09ESkhUT0ZITEZLSEVGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljWGpwWHqFdoGUhYiCm4OSkI2S2sidlnNWl4iPiJyPfIaMj4uKeoiCh5GOg4WAi4WFiJKGgoSJhoeHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJUVVVXVU1bUEdHRDw+PkZIQ0RANzs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHIxKuzxbass8CzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsLGbmZKan4inr6qklHafpJehq7GzmJapraiutbuyuqyvtaKxrLG1vLe1rrWgp6ejqJupsK2yuri4p5y3qY2lj5KToIZ5gYFzV2BiVGVgYGJfX2VfW1RKREVMVlFJSkpESkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFjZFd6dXGClH2FhpN2hn+AjXu/u6O8grSUk46bj4SIj5OJiXmHgIyTjIeFgY5/gYmPhn+FiIWKh5F6eW5dVkBFTjw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFdPX1VJS0pBQD9HS0ZFQzs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMq2u8S9s7TBt7jCtb+wt3SxtKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KRpbGtpa2rp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6uL+3ure5ra2xprGqrb6wvbvCwqyZu6iVrY+YmKqJfoB5aVZhX1dpY2lkVVtjWVZUSUhHTFFHRElKQUhEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWlZad2pwf4+EgY6FbnpzeIhiuKGao4mVlJaTlJONkJeSh4d7h4GNlYqAhIGKenyLh4Z9ioKBi4SVfXh6dWVPXGRHRUw6UWRhW15TRj47SFBEWmRRUVlYWmdaVGBhTVNPRUE/SUpIRUZBQEM9RTZCPkhHS01TWlRelK+4tbq5ycC7vcrMu73Au7e1vLy3vrW6ssZgdbKlsZqeq76qpairqqSisrWgq6ielZaemJ+upaempZ+kk6KnsLOosrK8tsG908nJ08bCxczCysPAvr2/u7y3tLC5t7fDusa+w8mwnrqqoqyPpai2iYB9cF5gYFxWYF1nZVJYYVZSVklFRk5LQD5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzM1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdtbHGQjYWQc2xzcnOI1cC1maCNlZmakY6XkZaWjoaHfYeDjZaLf4N/g3h7i4SHe4t5gYqCl390fXpsZXB2WV1cUGVlYmBlZF1bWFdcTWRtVVJtbl9vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVl1aXJO5wLm9t8bAu7nKy7u3ura4ubO4tbWutraZZHWpnq1wXqKtnJihopuknqullJ+fkJSPlpiXqJ+ln56amYOknaykqrCtt7C8uNTQztbPyczSzM/OysfAv8LKvcG9wsDFxMbKv8nPtKS7sbWwm6y5vZp+eGpcX1tYXWBYYWJRW2BTUUtDQkVGRTxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQjIl8gYNze4qDhXuKdIKKhpV/c3t5bG11fGlzZWlsaWZqamlgZmlobVptdJetpLyHh2dbb2hdWllUSEpOUEpLUUxUUUhMQUpHS1BfX2JnamKXt8ewubO7vraxxMe2sLmxsLuss7Gnq7esjbannpynmk6bno2OoJaRp5illYqTk4iRiY+RkZ2boZiblZaHnpmmmqyvqK+ns7PT1NTW0cvP09TO08/MxsPK0L/KycvJ0sjNzcPR0rivxLzEuqa3u8SigG1iW1tcWF9XWGRZT1xXTlFDQklFQ0k7QUQ+QUg/P0I4O0Q+QEk9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OT05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CQmYNocW95eYOgqp6ml42bm5iLjZWRmo59iYyFjoqKi5CIfISCcH+HgYZ7h3KDkouPfnF5dWxweH9ye254c2xpgHBtY2ltcHlpd31+y7/C36dtY3hvZFthYEpQUlVOWV5QXV1OUE5UUVVUXG5ud4Nylq64rLSosLarrb3Bsau1pqW5p6yuoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSKg5OVmJeUm5GbmJmZnp6rrKSnoaysztLV0c3M0tPT0NTRzsjD1NHIztLT09bN0tHF0tbGwc/IyMOpv7jQnHdtZFtgXFVeUV1aT09UUE5IPkFHQkNGPEFCP0ZFPkA/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNTk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bXdwfX6AoZ6eoYuNmZOTjIyTkJaFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBwd3Nsc3x8d3xzgnhxa4BycmlvcXp5c3u+y5p+jLGDdnKFd2hhal1DWlpbV2ZkWGVrVFhdXWBjXmN4e3+LgZmqpKSioKGop6qxuaumtKOirqKkrqKnsZ+JppuVk5GKko6IgpSJa5WijZmEgYZ+kYODk5eti5WNlZmOhZKQnZensKKgoKSkqMfNz8fBy9DT0dTSztPNxtbTzdTY1tbY1dfVydTazcrY1tHKrcTDzIlxbmFeXVdSWFJbT0pHSklKQDs6O0VDRDxDRD5IQz9DQjs7OTw5R0M0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKJgZ2VnpSFi5aJjoqIjoiPgHiDlJmLjYiIi4l+g3hze32Dh3eAe4eRl4GEb3hwbXV/dnh9dIZ8eWyHdnVufXaEdXl7nbWMPEGKxqV+jXxqZVdJQ2VjZmNoamRveVtfZmhrbmlugISIkYyen6CekZeYn6SkprKkpbOgoqWeoamgorGch5+SkpORi46LhoOPhH6cnIyNgoSFepR+gqqVo4ySipiSi32XipqRq7OYmpunnKe9w8W5tsXN0dDRz8vSy8nUz9HV2tfX2NTZ2M3Y287J2trS1r/MzbR1dG1jW1dRVFBYVUVGSklFRT06NzpAQUI6R0VARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXOGjXyXkZ2LfoeSgomGhYqDiH15hZeXiY+Dh4WHeoR5cXp7hIZ1eoaOjZ16jHB9b3B6f3J7gHGEh4Bujnp1d318gnV/fIeJsHRZqsK3jZKBcG5jPV5ocnBxcG54d4JlaW9ydXhye4uHjpOSm5agloiMk5ugm5+qn6GtnKKamp+mn5+smYyajJGTjoV9iIeDhYuOoJmTiIOHfm2ZeYSZhoiTjI6VjIZ7m4iTj66qlJWXnpimrrW8qK29xsvIycvLz8jD0crU1tjX2NfV29fT2dvWz9va0dbI1cyTdnhnZllYT1JTXEdCRUlJPkE+PTg6PT87Pkg9QEJBQURBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fYSYjoeLfoaHgHeCeW57e4eCdHqSno2hdo92g3R1gX10gIRvgpCCb5KEdXyBhXp2h3yJuMalw8q4gpacj3hwZU5lY4J6gXeGopCLeXl3e4N/fIR2bZSWlJWPmJGDiY+XmpeXppyYoJefk5KXo52Zq5aRkYuOkoOMhYmIgYaQkZ6cmYmFi4GFl3uIiZ+XkImOiouCfKGIkIu8oZiTl5mcqKalrZ6ntb7Av7jHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztzGhXh3ZWdjXlNWVlRMS0RNRDs9PTw5Ojw+OT5BNz4/QD1APjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVtodHp5bImNknd2eop8foB/gH2Fe36CkYqFhnqFiHt1fXVtfX2GfnR/kp6Rn4OSfIZ9eI9+eYuKb4ObgHSZhn2CioV8fpF7kKmOkMOgvYycpJx+ioR9iXKMi39zppqcmZSFe4+RiYRpR3GhpJ2Mi5CShYiLkZOVj52bk5SRl42MlZ+dlKGUko6OkIx+kI+Oi4SIkpaan5+JjJSRnZCCjH+mmYiFjoOGhICkhoqLuJidkZSWoqegnZ2do662urSrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbt3d2dWloZFVfWlJPTkhDTEM9PT45OTs6OTk8PTZAPj49PTk6OjszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlVYZm1tbWmBjopxc3iKe3t/fYB8iHt9e4uHg351g4Z6c3p0bYF+hH13hpuhm56UkoCMh3+Yh4Cckm6IqYV6oIt8kY+DiYScfpqRiY2jop+QpK+gi5GLhouBkoZXcq2Ln6ycj4OYnJCQjlyDopGCjZ+TlYyHiIySk4yUlZWQjI+KiJabnY+VlpGLk5SGgIuJko2Kip2XmaOihpOdlaCKioiOnJCDiI+Ag4eFpIWLkLOYnJKUl6GhnpmSm52nsbispLzBx83Hxs/Mz8zP18/R1K7W1dja2Nra19bZ2Z1tenJlZVtbVlJVVkNASUQ/Pz46NDk6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo8QDtCUUtLU1lQVGNieGxifpKDb213i3h6f3uBfYZ8e3aGhYBzcIWCe3V3dnSEg4V9f5Kmop+mopeKnZCUl4qKp5dyirKNhKeShJmUhZqMo5agmJOJm56ik6mwoJGVkI6OiJWLbo23hJrEyLKcoqWbnZiWkbKQZKTNyJWOhoeJkJKOjZOUioWKioaWmpuPkJSTh5WYhH+Pi5mIjpCql5eko4iZnpWaiY+Gl5iKhY+Ngn+Gj6WIjZOpmpeTl5mhmJ+Zk5yaorK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6AcHxlYFtcXE1JU1hBQkdEO0E+ODM3Ozw6OD02NDo6PDo3Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGPfXxtfoh4en57goKDf3Z2gIN8bW6Lf3p8eHh8hIeKfoujs6ejqrOil6efpaSWla6ig5G4lZGzmo2hoYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmZehwI6jybmrm6OmrZmSm52ynYWFqKKcmIWJiY6VjYuTj4iBhoeJk5iVjIuUk4aVmIaEkZCcdZGYspaXpKGInZqSj4qQipebiYuWjod9jJieiZCQnJqak5iYn5SgnZSem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LR1tjT0Ni6cHdzWl5TXlRPSElNRUJDRDU+Ojc3Oj88PDc9NDM2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p6boWGenyEeYGGgX5weHx+fW9yjXp+gnx4houJhoSSp7usqLK9r6Wts7Ooo6GwrIqatZ2iuKWVraSXqa24p6Wjn5qpl6mjr7CqmpmclJWRl6CYmru7rsqhara4q7CUmZ+jrJOXvaNeqrKDioqNlIeQfI6OfYOGjo+UlYiIk5aMkJaNi42XmJOdmbSXlaudi5yUko6RkoyZm4qSnpCLiZWfoY2UjZianZKcmJ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8fC0aDGyc3NxNfW0cvToG54ZlpYUVxQTkVDPjxDQUI4Pzg4NT9HPTw2PDM1MzQ1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEo/i4p+gXOGh32CiXWDioJ/bXx9fX9wd4d3joKHe42PjIaMmarCwK+9xruztMC8tK2rs7aMqLOtrb2rm7ukqK25uKunpqKipKKpr7Kxq52cpJibmJeeoqalkqS6r6nAvK2tsrmlpah+iIacrbywg4yMi5CDjoORjnqBh5CNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpeOkaCRiZSbpKyUlo+UnJ2ToZ2bmJ+hlJqep6akoqSws6fBxsOvsLq2xcTCv82mx8THw7zW0c3EyoZycF9ZV11ZTEpBS0BGRz5BP0I7OjU+QT09NTw2PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRD9DRlxlR2BpZ1pdXJOMi4h7h4yHg4x1hpGKgW9+e4F/cX6Be5V6kpSUmJCTlaezxsm/wszCw7nHvLuvq7m7mLO3urLArqXBpKuwvL2rrqujo56nq660sKqcoKqcoZuWn7C1p4ujuru2wbysqZyypaSplIWOqcTDpIKLj4eIhIaVlI16hI2Rj5GijIyUko+Jl5+Yk5mVmKagrp2MqpyOlo+SkZWVjZCVkY+hlIaXn6CynpSalJ+gmKSfmqCboJSYnqWjpqakr66lwMTDrqi3tcnCvrbPssS/xLyz0cnIwrRydmpZVlloUExIQkxLS0pBQT1DRDw1QUQ7OzM9OEIzMzIyNjJBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWU5lXGZUY2qZjZeKjIiTkIaJeYeUkIFygHyNf3iHgoKQeo6hlqiampi6vcfIycHSycrCzb3Cs628vqi6v727w7eswqmss7y+qrCqpKWkrK6zrba1oJ+vn6WimKOzvambqL3BpLa3sKyTsa2srZeHmqmnpZGCjJOllYmBdoqReoWNkpCen5OPlIyPjZWjmZaclJSjnqqfkaWajI+Pj5WWiHyPlZKSo5qVn6GctaWQnpelo6Klnp2mmJ6Wl5uko6mnorKsqLzAxK+lsrfMv7mvxLO7vsK4rcLDwsCXandgVlVaWUlKTElGRERIQ0JBREw6NERIOTs0PDdFLjEyMzUyQjI1U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+KoJOEeIV/lX9/kIiKkICWoZmupqSYwr3Hw8fF083Ozcu8wrewuby0vcu8w8G2t7yts8C6vK6vqKCpqLatrqmyt5ueraKnoZ6rt7iqpbC/xbG9ubSoqrW0rq+XlqWsqKCRjpKyxaeVjn2SlX2IkpmQqpmYk5OPk5aTpZ6SnZmUoaOinJifmIuMj4+eiFqQlpeSl6WZZZijn7OllqGWrKypp5ueppeYlpeVoKSopZ+2q6q6u8O0pbO1y8C4qrassru5rqi4ur24gWlsWFVTU01ESlJNSz9BSEVESEhIOTVFTTs+OD1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnBFaUlSZWJMRqWUm5eil6mWjZCDh6aTiIKHgpyDg5WQkJSPmqKfr76voca8xMTGxs7OztLKvru2sbq7u77PtcO9uLm3srG1s7izq6acq6y5qqmnr6+Yo6+kp6SltcCwrKy0v8O6wLq0qLm1ubOvlqWtrq6ki5OVoY10wZp9l5mEj5aajLGVm5qVkpOamqWjlKCbl5qpnJyhoJmKjZCWnGBKlpyalZqlllWXsJ+vnJ6klK+uq6WaoKWUk5iYjZygp6KZtKmqs7u7u6qwsse/uaasq62ysqOhsrK0pG5rY1pYTU9KRE9PUFE7SEtJR0lDQz46S1Q/QTo9RU0wNzU0NDpCNDRNV088SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGYh4uolo6Ik4Wfh4Sdl46doZujpLXItanGucLDx8rJyMzNxr67s665ucHBzLXHusG5tbqwr6+ztaekm6q0taqppq2smqSupaSorLq/qKy2t77Cv765tLPEsrm9rKOvtay5poibl6abdr+fhJmdjpOZmouul6GcnJeVm6ChqJ6nn5maqpmhp56YkI2RnYNudpKimpWdop6QrrKiqpSoqpeqraOjn6SokZGZm4eUnKKelrGnqau5tr2zsq6+ubego6eopaacnK2pqYtgY15eUElLRkdNSVZMPU1FTktMQkNEPFFWPUFBQkRPMTg9Nzc/Qjc1VFdOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH9lXkhFq5WboZ+7r5mUn4yTq5uRkpOJq42Hop+MpK2Uo6O2xr60wLrCwsfIxcLNyMG+ubKvuLTAwsq1xbLBvLW6qqmtrbCjo5iqtLumqaarqp2pr6ejqqu+vKitvbS4vse8t7a4wbK+wbSptbervqWPopiSop+8n4maoJmXnp6Pt5+pnKWim5yhmqiks6GbnaacqKmemZWPlJuLl4mMpKKUnaKeobWvpaSTr6uZq6qdnaOjqJCUlJ+Cj56em5WppKGhs7S6ta2otbKznpyipZqXlZmqoZ51XlpdXElHRUZNUEhNRUdHQ1NMSkJFR0FWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5ZlxGQ0OccGJHRaeXpJ+ew62bl6WYmqmclpubj6qWlaemla2smaKrtsTCvL63wcLAx8O/zca7vbmysLizv8LItb+wvLe5t6Wkq6ytoaGaqqrFoqSpq6aerK+roqmov7inrb6xuLbHtrW5uMCyv8K3tbO0r76jl6OWlJuUrqCQoaOlo6OfkL2kqZ6oq52doJuln72imaOfoqmroZ2WjZWek56Hj4SNk5+koJ61rKWblbGnma+mnZmqnJ+NmJSehI2gmpuSpaSamKuxtbGqpaqtrJyYoKCSjpCVqJ6UZmBYX1xOSEdKTktIRURJQT5RSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhW0tDTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNDZAOTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm1SRjxLeGViVkyimqOcnsWsoZ+snp6uoJKjn5aln6aqrJe2saOqs7bExL2/tb/Cu8jCvsrHtbi1tLCzs7fBxba+sbi1uLSfpqyqrJ2dnqWkwaSfqq2gpKmtr6KmqL21pbG9uba2xLK0uLq/s8TBuLius7W1o52llZGUoa6gmaKeqKiro5rCramerK2bm52ZpqC9oZ2kmKurrKaimY2an5KfiY5Xf5afpaGguKqmk5i1o5+xoJ6arpadjZiTnYGOn5eVjqKjlpCmrrKrqaGhpaWVlZ2Yi4+RkqSeiV9iWGJfS0hKSk5FRUFHSz49SkI5OUpKTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtOnp+hmZ7DqKWitKKdsqiTq6Wgo5+tqaydu7CorLaxyMXBwrLCw73Gw7zEybyvsLatsLSvv8S0ubGwubSsmaiwqaqanaWhqMGsm6ywnKqjrrGppKi9tqe3u76vt8SttLPDwLPHtLu3q7O2raqippaVlKSsop+fmqirsK+vu7KmoKmomZmXk6KkuKChpJOvr6ylp5+SoZ6Vno+QjZWemqKep7SmpoyYs5ujrpmdm6yQnpOVk5l/kaGVj42foZOLpqyvpaahnKCekpKak4WLkY2cnX9fZFpmZEpJTEpSQkNASUg7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+joJygw6mkq7OhpLSqlrOsp6KksqyuqbuxrbC1tMbAxMO1wMS9ycS1v8jCtKu1qK+4rL/Ds7eurLa5pZiqsquqmJ+ml627tJunsJutoK60sqerubOourS4srnAqreyxL61xqi/r622tamnrKGXl5GmpaKimJilr7iusrW2oJ+opJqVlZOkoLeipKWWr7Gyp6qmop+bmpuWl6ifoJihnq+yoqaMl66YpKqXmZ6kkZqMk5eZhZWelIyPnJ2Ti6ipqqGnoJielYyOmY+BhZWIlJ53YmdcamlMT01OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzuko52ipr+nqK+woam1q526saujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDFwLqptqSsu6zAwre3qayxuqGUrbGtspalp5GquamfprCdq6CwtLOqqba2rbyts7O5t6y4sMO7vr+mw6uwt66pq6unnpiZq6GioZGXobGvs6ywuZqcqaCZlpKXpqG2qaWjorCxtKuzqKyfm6Cgm52lnKKXnaOzsJqfj5Olmp+ompOinpSXiJOWkpWWnJOIkJqZlI6oqKafo5uXm5OGjpiLfYyWhY2ZaWdrYGxtV1BRWlRBQkVUQDs7SEE3OlhQZF5QVldFWV9dTUxSTl5LSj5aY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9qJ+doqq9oquwq6OxuKqltrSsoK21va6zuLu6vba2wMK/yMS5xMLAwLjEvcG3r7Wnq7exu76+tKiusbaelquuqK6XpqiOp7ufpKyznqyisbCzrKq2tLW+rrCxtaywtbLBu8W3q72vsbisraqjsaaepaqfpJiQmZ+zqrOrqrOanaebmpWOoKaltK6noa2trrGntK2yqqScn6ijnpWhmZuotamWmZGSnpmdn52Pq56Wl4SUloqdmJyTiY2Wl5qXpqWioJ2VlZeTf4+UhXuOkoKLlWRrcWdvcV5GWWZWREJNWERaOUhCNj5cUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoaSstqWtqqavrreqr7W7p6axt8W3sbe9wcK1tLrEvszGucLAur65w7fAubG0q6m6tru5vrSprbC1mJinrKqsm6urj6u+nqyusqOrn7Cts66utrK5uKqurrGota+0vL3Ks6q2tbG0sK+nobOgm6itoKaWlpqasqKtoKWvl6GkmpqSjqOmqLOpoaazrKq2pa+xta+kmZ2tp5qYn5qZq7eil5ORjpecoZeWlKuempJ/kpeMnZyZlpCKlJKemaWioaCYlpGTlXmKj4V7jIqCiZFqbXdtdXthRWBrWUlIWlo9e0pGRDZBYlRpW01cYUpbXVpSUlJiYUxLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuKkIvSkdQW0gzY1lVS0SZl6GxqLGqraakr662qbe1uqSstLfJu7S6ur+/tLO3w8DMyLzDvLe+vr+3vryxvK2nurm3tsK2qqywt5SWp66rqKOwqpSvu6StsbOnqKOytLGysbWxuLOprquyp7evtrTExraptrassK2pp6O2oKCnsaGklJyZlbGep5ygqo6pop6blpimpqW4p6OytayosqeusbaspZmgrKibnJ6clKm4nJSOjoqYm6KXj5iloJyUgpGVj52bl5aViJaPmJqnnKOgkpaRkJV1hJCHe4SBg4uKbG92dHt+XEtlbVxLTmNcP2J7R0k4R2dXZVxMXmJNWFlXVFdUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLT1FTFE8M3JrSUNDkJmlrqWtr6uopbGztKu3sregq7W5ybmuwLvCuLOxtcLDzsXAwb20vb+/ur68ssSnqbmwtra/vK6rsrGboKexraalr6WdsrWsq7GyraqptLustbO1rbSsqquorKm5rbKxyMC4pbqwqa2tpaiusKalo6+kqZydnJuvmqOjoqORrJ6joJ+iqqamuaSstbalq6yora+2rqOeo6mqm6CampKks5mOiY2HkKGglIyUnJ+SkYONkpKdmpeVk4eXkpWZp5ufnoySkY2Qdn2OhXx7e4aJiHBycX18fVxTZG9eTllmXEZElltHO05tWGJbTGBiTlZWVVdUWWddUVJMY1paVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOzYqSGVISis7SD8zQkhTLD6QaztHSI+cqquiqrGkqaWztLG1tbKyoquuvcy6rsC6x7G0rbTCw9HFxr7As77Bwru+t7vEp6y3rLO4vMCvq7Gsn6OnraqopLCkqrKqr6ywr7Cuq7O8p7exsqmzqaulpaOtuqyqssO6tq27qaioramosqWppKOuqqiinpyjrZWlnpiemaydoqepoq2mpK2ruLKyoamioKyvsayeoKeoqZmkmZmPoKaXhoSOiouen46KjJWbjo2EhpCUn5yUl5SGlpSTl6SbnJyKkpCNiX5+h4V8d36FhIVycXCIdWtfWmBuY1FzcVxLO4R8Rj9XdFhhWk5jW05WVlVXUVxiX1NPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlVo+TEWVmK2ooquznKqqsLatubavq6arqr3Ju7C9t8KvsayzxMPOz8O/v7TAwsO6v7PIw6uut62yuL++sq2tq6SnqrCpp6ixpbSuqrCurbKxtKy0vKW4s62srqern6OesLerqq27t6W3tqSqp6yrqq2hqaemsbKkp6WhoayXqqGVm6CmnqSiqqSto5+nsbiurqOmopuqq66pnaKlpKSZoJqWj5ickoGCj4iFnJ+Lio6LmI2PioKLl6ObkZCai5OSkZOjmZuaio6Li3yGgYGDenR/goB8cnWLpId4al5gbmZXZYdjTj9nk0xFYnlXYllSZVRNVlVVVE9cXWFVS01oVlVXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxCKzpKT140RIY+SEZEl5KwpaOrsZirqq22rLayrKasqqm8wMC4uLO7taayr8TJy9G/wbu5v77BuMG5wMStsbWxs7q/vbKwrayqq6e2qqatr6q5sKixsq6yrbeqt7entLerrKSpqpyjnrOzqKiktLWgt66gqqirqKunoKusqbm2qaqpqaKqoK2bkqqhnaCkoqajqp6dp7SvqKaqoqOYpaenqpyjpKOgmpigkY6PmI1+h4yHg52dhoSKio2Nj4uChZSimo2MmZCSkY+Tn5aYloyLg390h4F+f3h0gn55dn6Ah52Pb3FnZ3F4XGFziGtPXplWSG14VWRWUWNPTVVUVFBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EO5aOsaGmq66arKWtsLS1sKymsKqpur67wLCuua6ht6/Ix8jRwL69u7zCvbrDwL6/rrKysbW8u8GxsbKrs6iktKilrbOzubGjrreysLK7q7qvqq62rKqeqqyfo6C2raihn7CzorWqnqinqqOqoaKsrai9r6yurKKoqKCsmZCwopiioKennqebmaqxqqOgraKhlKOjo6eYmqmlmJiYno6Kh5SHfYyGhIOjloSBgYuGjYyQg4OToJaIkJyQk5CNkZyUl4+KhYZ4dIF/fHV4eX96c3N5Z3+GpHVpXmRrgHRniIx9U1hwXkp4c1NlU1FeTU1SWmZOTFZZZFhGU2lSUT9DTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQTSQj7KhpKaspKekrae1s7GrpbCnqri+wLyvp7mqpq+wycfI0cK8v765vr+8ybrAuLCvtLG6u7fAsrO7rLisorSnp6yytrmzqKi9tq62vrC9p62staytnKmvpKClraunnJ6rs6W0qJurp6mjqZ6kqaipvay0r62dqqShrpybs6OVpJylpZ+km5qpq6afm6qim5OcoaWemJepqZKYmpSQioKPhX6OgoCHnY+Ffn2Lh5CNj4R/k5qThZKhjJSRi5GbkpWHiX5/cnt6fnxoeHx6dG9we2eEeISIZGFnYXGEem1neF1dVUBXem1UYVBSWEtMTnJ1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYUpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0FKN0dTYFUqPTlEVz4qj5SymqCgqaaloauluLOzpqqxp624wb21r6K4raiosMLJyczBtr3Atbe/uci1wrWzsrWyvLe5vbWtuba/raGzp6ursLW4tayfvr2qs8G0vKGvs7Wqq5+tsKOcpaiqo56bpbGnsKCfq6mooamcpKihrbuorrCtoKujpK+fn62ml5+boaOcn5yapKqjm5ulpJaXlZ+ilpuXpqyMnpGRkYuCioCAjoB7mZONiHx+i4aPjYuKg5KYkYaToomSkoeQmo+TgIh8eWx+dnl4Y3t6cW9vcXZngHNqg2dkZ19sco1sYWlvYG8+WnhrVV5PUVFKSU1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDFBaFkxM1M9ZV9ETDZLVmRPKjsyTlg9I5OZrZqgmKeko5+opLiwr6OvsKqruMG5s62fuK+rqLS6yMvIv7bCvrC0vbfEtsOxrrmys7+0u763qbm4vauktKipqrGuurGrnLy9pbDBtbair7e1pqensbOgnqSlp6GlmZ+sqKmeoKqvp6CmmKOpoLG5n6Owr6Gsoa2knKanqZqam5+klZydmp6pppecoKmTmZSYnpOZlqGqkZqIjo+GfYd+go19fKCMjIh4gouEiYuLhYeTmo+IlZ6IkZWCjJeMkX2Fe3NwfXF0dGB5eGhucHBuaH1xY3ttaWViXmSFfl9acmpxS0p/aFhaTlBMSkhQUlBJTlxfblNEWFpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo+MFhWNSiXnqeanZasoKChpKK4q7KltLSqqbnDtbOtn7etrq2wtcbIwbe+wbmxtLy2v7u+r6q9sLO+sbzCuam7urenqLWpqKuxrbOxqJu+uKatvLeyn7G4sKilp6+xm6GkoKSkoJebr6ehn6Oor6GgoZSkpKK3sKGmsKufrKOvmJyqpamel5qepZObnZqdpquanZ2ml5aYlJ2Ok5eiqKKQiIuPhXqEfoSKeo6WiY2GeIGHg4iLjYWNk5iNjpaYio+XfoaXi495gXpwcndvb3RfeXdka2xraGeCbWVya2tlaFlhc39eWmt1aVlHfV1bWE9PSkhIUlVGMjpfXmxQRFhWWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0JnW0hUQ1RdaEUuOzFfVCwylqOimJWdqZ6loaOhuKqwobu5pqy9xLOwrqK1r62tr7TExL2zvrq3sbO5uLq4uq6tv7O0uK+/wbisvbq0pqKzq6iqs6yusqOdwramqbe3q5+yu6mmpaivq5mip5ylppSYobKmmZ6lqamcoaCUpZ+kuaikp62mnqWhqJOfqaKhoZmbnaGSm52XoKKrnJuaopaTlZabjpOTo6ekj4iKjoZ5hHyFhn2cjImKhniAg4eIiJGFlZOSjJCVk42OlHuCl46Ld357bHVybWxzYnl1aGdpZ2VthGdnaGRmaGleZmJpZlplemJgUXNUW1tTTElHSU9TQCEral5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc4Yk0nMp6kpJKOpaacnp6epLWtqKq6t6esw8C3r6yhta6nrq+3wcC9scG3sK+ytrW4t7Wsqry0r7KxvcC3rry8saWftqymprWqq6+hoMSsqqextKustLqeqKmrsaWYnqqeqKWSmqauo5iepaqhm6Kdl6Cdp7amr6quoaGdnaGVoKafoqCZm5qckpqelaaeraKYl5+WlI6VmIyPmJqnoJCHioqIeIV3goKCnIeKgol7foSIhoSQhJaVj4+QkZCRjZJ7g5WOhnN/fWd5cGtqbGd1c2tiZ2RidH9hZGVmZWlpYmdvWV5YXW1kYE1oV1tgVklHSEtMUlg+OWBsaUdCVVNdW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE49QjwwKjxAO0E8LTVCMzc9KyosMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQWRHJTWcpKCRjK6gmpigl6W0sqOyvrehscW7ubCxo7asq66pub68u63Asq+vrravs7myp6u5sa+us7a7trC5vqylnrWroKGxpauvn6XEobOlr7Kwt621nqyurK6imZ2nqqWflZynpqCZpKOpnJqgnJWcnq2wprmnraKhmpqemJ6jmqWdlp6Ym5SaoZKolq2pm5SdnJOMlZmOlJSYp6eNjYqJjnuBdIKCipiFh3yJiISEioyIkoWTnJKSj5CRlo6Qf4GNjYNvgX9meW5oa2pncXJrW2hjYXJ/YGRnam5rZmpmZGxcbG12cWFUYmhjZVpJRkxNT1hRUFVhZYFUQFZTWVVGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDs2IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUlkQic0k6Kcj46xnZuUoZqpsrCfucC2oLTBu725saa2sKmupbe5t7isu6+tq6u3qrS5raWytbGvqbG3trGztrunqZ+2qZ2fqqOqrZ2qwpmvpa+xtrWsrJ6xra+qopudpKypnJWcp6SemqmjpZWaoJ2RnKOrqqm6n6akoJiamp2hj2uilZiccYOWnKSAdpGrqJ6WlqGRiZeZgJeKn494hZONg21pfneEcmyGioZ9hIqGb11kYGeEl4Zri5CUknV3i4R/g5CAZoiAaHZpZlhdaXRuTlBqY2ZxgmZeZGZua2ldXV6JkIWIaE9LRDhFVGdeSkhQUFVVS0hTYG90ZUVbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOXEtbZmI+RzFPYjwrL42kmoeVsZudk6Ccqq2ro73Fr6m3wri9vK2ntrGmq6S4tLKzsLmuqqestKWwtaKnuLa1qKestrOutK6zoqmftKueoqWcp6ibrr2VqKewtLitrqSoraqrpqGfnKGoqJyXoaamnJynqJ2SnqCYkJ+oqqO0r6Oio5yWmJiXo4ihj5KahqGIlJ6hf6V/p6yelJOdk4iDcniMjoOHoHWIjWmXiWZ+c3mgb4iHg36MfH+hoJ+Zf3uHnnSIjnabimyHgoNuaWVke21yYlSGbWNtaZhxWGlwboZXXWlba2paiHBteXKHaYeEWl5GTj5GXk1FUlZWUVBSV1RnXUxZS1JSUEVHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTlxMW2dfPUsxVWA3LyiNppeEnaydmZmdn6uqqKq/w6+yuby3wL+qpLexqqyms7Wur7O2q6mlsa2ltbObrLW2tKanqLOxrbKorp6qobOpoKSkmqKknbC3laWmp7e9pqynqaqrp6aioJmgqKSamaejpJmcpaqWk6OclJSkpqahtqSjoKOYlZOYk5yIrpCYlYmpi5ijnIaxgKStnpSan5V5gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsHlobFixrm9labySvG5oem1wj9h+U2titrJ+gHGUdZqhqpBXT1hhT1ZORlRbWFFQUotcV1tQQFxFUU5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV5nXD5MMVpcNDEhjqaTgaeqn5ednaWtsqmxwr2ytb+1uL/Cq6a0ra2pqK+0qq+2tKiopralqLmvnLKytqqlpKeyr66xpquep6SypKKhn5ecoaCxrpWfo6C0uqKqqKCsraSinZuaoqqgmJupoJ+YnqiokZynm5SeoqejobCjnp+jlpaSmJKZhbBraouNqn5nhZaHrWVxnp2VmqeWca6hpH53unxroY92sV9qtFulgGWckWBmgXpmf2l4aqllvnJnpox2sWp8sXh1kpRjbW2nblyEoEVpZ4eWRXWcYH1me6Omgllfi6tpgJJ4emqoOEqvW1dUbWNaTE9YX1xXVjtOiE9WVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWTMxG5KilYKtp6Weo6SqsbettL2+sLfFsri6w6epsKyvqamxr6SxurCkpa+zo6m5qZ6zsrCjpaGqrbCsr6aon6OisZyjnZiVmJ2er6iXnKKftLOhqpuhrKyfnpqXoKOqnZmepaGcmqGnpJCdo5uYoaCsn6amoJqfoZWVkZaRmoa1m7V5hamZtZl3h7Obt3+Tlperln5rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iHCOhoF/iJCXeIOCi5eMg6CPhbB2d59xa2psfItPpVhIY2OZfmNopV95cXVSkodeUKltY3F9hoBhnS9Som5bVGtnYExLXGNYXFpCPrB3V1hBI01oRkNEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8yLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o4YVU1MByXn5SIs6amoa6pqLOsqru2wrC8wq24t8KrrK2vrqeus6qir7yroqe1raOrtqWlsrOoo6Gdp6qyqLCopp6goLCWoJqWlpeaoK+jm5qkqLWuoamPqaepm52WmKCmqZufnaOfnKCjpaOVm5+Ymp6jq5ulmpyaoqCWk5GTk52E1ZOZuXGwwn/GhnzWlJy7fJuWppCNnIykeo2GooGlgnqseY+dVq97iX6farlauXeGg32mgpN8mHqqeY6dkHuxbY6EdJC7hW6VUK+nxYpRoHpjYKpic3KGbJeHX1O1tMiFgIl8Y6QzQp11XVBqaGRQQFhmWWRhSkhNa0paU09ZZlpDQz9FPzA8PDU5Ozc0PDw4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuMDA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpXEpbUF9mVDdHOmFQNzIlnKKTmbGoqaWzqqW0p6S8t8GxusCytrW9tLansrGjsbOmoK+2qZuouq6jsLKhsrSxoaSenqepsam0qaWcnp6sl5mZl5eWmKKsnpuXqa2wqKOfjqyip5admJyhpqKYoqGjoZuioqebnqCelZmbpqGcppSbm5+gmJCSlZCdiLJuaLVxq4hwjqZytHRztnubmKWNj5yNon6Pn6R+sHWDkdLRdVuufIV/pG+bqqZrhoV9rX2XmY97sXOTnY94s2WWdIWebp5mlFLJi1rCXJ95Yl+tX3ZzhmKXiF5Zyp1vv4B1TUu1U1XGZFRRamNlWEFPal9saVBVRkk5PVdSW1ZZSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUU+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHJoOSdXaVxBTlRfZVA1Rz1hTTYyLqKdkaWvrKWpuqymtaWntru8sru/uLe1u7u0prW0orKyo6CssKWYp7qupLKxnbS4qqClnaGqpLKorKqlmp2bqZ+WlZiZkpOjqqGYk6ersKWilpKsn6WSlKGcpKeglZunp6Kao5+umqGenpCWnKKenKWUnZWZop6VmZaSm4Wse3eodqOPi4epb62Kg6eEmpmiipKZi6J+kZeHroV/grNccrNSrn2CgqR/cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52d4dnmIhqXa93lZ+PeGw1eciusl9CVG9dZ2BFUGxfcG1WVU0uZWJoU1lQO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6NzegnZSguLGYs8GsqLKnqrK6uLS5vrm4s7a+tqa4tKC1raCgqayglae2rKixsauttKSbqZ+gqKK1p6aqpJmelaWilJScmpKWo6eblJCnra+loZWYqZ+ij5GimqmmoZWapqmdnaSerZ2hnKCNlJ+bnqCYmJyWl6GglJiRpp2GqX19pXmhj5CDqnCtjIGmhpagooqXloijgZCHlKp7f4udeW+xWqiDgoigeXTYf3aHdKeBjpuNkqR8lpCfhHuyXpxkoH2ClG2TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZU9KQ6FcWk10XWJmTVphX3J0X0pVNUqaklhIRT1IRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxQZWVBJlVmWz8xVF9iTDdGSV9DMT03opyamr+smLPCrqutqKa0sLixtr+5urOyuLyqu7WgsaWfpqenn5Sqsamwqratqq+hmKGgpqSkuqKjq6GXm5GjoJWVn5uVmKCgkI6MqbCvpp2Xm6emn42SpJiorKiVmKmonp+gpK2joZ6hjpWhmJ+gkpyXnJWdoZWWj6ubj65ucrR0qYx3iqZztHl0tIGTpaOTnIyJpIeOdbhvjHuLomtrtlqhhmWXl2mgoqdtlHK0dJOYf7JqhpKIrWt1s2GdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6YhnBcr1Y8nHdmVG9uLlunT2JSa2VibFpiXGBwfGNTWVE+Pm1vMkJCQD9NOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eOTFBOKWam527opyxv66tq6unt6m4r7XBtb2ysLu4q8G2qquhnaekop2Sq6untqOzqK6qoZecqKClq7mdo62clpmQpaOWjp6hnJien5GUlau2r6eZlJusqZeMlKaapa2jkZersqSgnqirsJmhopCZopegm5abl6GTnKmdlJCqmYfTk5q7dLHEgMOGfdWWm7h5iZGYjZeJjKeHeaK2dX13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+ifox0h6t9vm5zvHSyg3V4gIptmohxbY2kdL1dd31bYXm8alpWW2l6XmlhZGZibXlvWVtZQ0FAcj9DRyo1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sPDowOExYYUYnVGNYPC9UXmBLNTtMWy02QDmnmZ+ivKKXscKwramqrLGoua+3xbG7s6+8sK7Bsq2mo5+koZ2ckaqlqrKktaetpKCWmquZp6y5naOumZWhkKagk42co56YnpqQlpOvubCrlZejp6eUkJalnaStn5GgqKufnJ+ppLKeoqSOp6KUoZqcl5WkmI+woJKVqZ+FkJm2gJGRjbiVeIKTm7V3bmxuc295j4SOiXOewbu8mXqBsqhwgHSRuYN8hoaLh417ioaNl3yku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycHe2jF5/eX2IZ4N5bXlii6xwdIV/WFunaURkWVRmX2NdY1FmZnFtdUJNUE1EO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlNZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlrPCtKuqqK2rqruvscavtbSvuKe1ua6rpKKnn6CdmZSspK6qpraoqJ+clqCjnaykvqehqpeVnJGim5KPoaihk56XkpiUsrW2rJidpKSii5KSppylq52WqaWmnJuiqaemo6ihkqyel6Kel5eYnZ6PsKmTnKeij2t+aZyoeYlzfpuOdXplh3u+v8C6bpKCcZWFX3JqWl2aiWFkh46Va2B/lWNtnHZilGuAmpWUZV5fY3GbiWhyjHyGlGZqfnF0eX59Ylt4dIFoUFxug3x7impYbHmBcklKb4VwTnNNRFZcZmFMW1dmY15PWm12anJST0RFTTxISTxNPzIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPltPJz8yPqifqKHBpJq0urajrKaup6i1sqzIrLC0rbakvrGzp6Gkqp2jnJqarKeupKW1qqSbmJWim6atqb6oqKWVlJuWoJqTmKWpp5GekI+YnLCyvqybp52noomTkaqbqKScnKyfo5qbo6esop+qopqum5WmoJaVnZ+dl7GlmaKomZyRnpyjpZqno5qdmpqakJaCaG59cXaRl5SRg4m0qY2FmJWOioyYloeTlYqDk5OQiI2RlJmTmZeaoKGam5Sfm42CeqSFbGl7kH2AdYmLgnKCeHl2dYqAe4lqc4F0g3Vkd312a3B6bF9iW29nTFhZZWpfV1lwem9tZlNPRlI5T1pOUk8oKztKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsbG3oKmms6elsLWqyautsqa1psCotKGepaacpZaWoKunrKOkt6ygmZeWoJetqqbBn6uklpKcl56YlJSinp6jqJKQmainssOvmqudqp6Pl5apnqucnqGtmKGbnaKlr6WhpKieq5iXpp2ZmqGenpywoZ2ip5WYlJmUoaOWpJ+YoY6WlIuKjY+XrY97lZuCkYCJqaiFgJiWioSOn4h7g5CGhZqRh4aJlY6bl46QmJ6jlpmSkJyNfo1lobOuhImEd3uPin53eXpvZ3mQgYCJa3WBeYhyaXN/eXWDh4FqdGN4Zl9oZGNkZmpYa3txamtcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAs6C5r76sq62xsqCqprKtoqyzsMawq62ks6+8pLScoKeioZ2Zl6imqaakprO1npWVnZmZsKauvqCropGRnpqZlJKWoZyXqZ2FnamsorTHs5+ppKqWlpiap56pnKClq5Sfn52gqq6opKOroaybn5+gmKWenJ+csKSZn6iTmJmdkqWamamfm5dmg5J8ZX6Pmo9jeIxsaGp6kKOra2SZl35nhYplZWloeo2hjmtojJeRondraouYop+Yc2xueoSMhnlYZV2Fgl5si4qCdltoc3d3kYCHgm54gnh/c215hHN3iIiOg3tphVhdanNkXXOIaWt8cW1jXVFOV0lkWEBKND1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS42Wk82KUVZL0RPMVlCOz8uPaWfury5r6yysKulqK2usKeurbC9saqopa2wsJ+tmKCknqKamqesnKyjpqips66elqOQo7CmtrmlrqOPj5qhmZOSm6CYmaaWe6Wsoqizw7eloqevn56VnqOeo52kqqiSn6GeoKqvqamjqp6nm6aep6CslqGcpbGkmJyrlqGfm5OlmJ+rmZ5+voOIcrRyhZ6FrWh3ucS4cZKho3ummJhzqoJ8y8DAu3GKo4eCnnyWmIiewL2Clp2djZzBwHuBepGMmsK/fWulsm+MgW/Ken+bd5GDjoB2eYF/eXF7gIZweIWMk3lsdZFiZV54ZF9lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWorjDtLCvv6mplKOvqbCvraayta+rpqelsaugq5iboqCcm6qnop2roqWppaW0pJ6jk6aurLi0p6+ikpGZnaWSkaChl5ugnYemq6Srrb+/saGprqmXkp+eopmjpKqjk6Chnp2srqerpqOhpZ+kpJytqZGkm6mtqpydq52topeYppeipJidf86UeXqlgXqWlptfrY9djqiAoKF8p5WadKuDgK9eZIypeqiHhZ90l5KIs2OCq4agjY2zaoSuc3yWh7hhgq1Zo81ukHV723t/mXF+iJJ1f2V7iHZ2bH2Hbn2FkJF9a4CNX3Bqb2ZgX3hkXHFoamNmYFJUU1deSk9ENUFIRUQ4PjY7QD9BOz04QD4+P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrcG/v7S0sLeYnpGjqqmttKumsq2trKSsprCqoaebmqaYnKKvn6GfqKejpqGfsKybnpamrq2wq6isoJSSm5+lk5CfpJedp6OerqSrsKi/xrOoqbGulpKenKKXoaqqn5Whnp2crq6mqaibpqajoKqSrLOWpaKqqp6kp6eisaKTm6eboZuVlJGXoHCFjJh1hKiHcbB8nXKsfaCfgaWPnnergn2tf5xyrX6rh4afdpiSe3yXfqqIoYuRi5x9q3qIko6ggHqtVpzEeo9vksF9gZVtdXCMbWZ3ZYZvYXducm6IipGPg2yPjmRtc3VvYGZtZF9vaGpuZmNXU1xgWlJSQzhJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/Txcays6Cdo46joqKtrravqbGnqauorqurpqKjnZqjlp+mq5+ipqCpqKKfnrCsmJuXqKivrKinqZ6XlZqjopKUoayanaajr6yjrLWpuc2yraaurJaVnJ2imZ+urJ2WoZmenqqxp6mpmqqoo6Gqmq+xoqisr6aZpquqq7Kkk5ikppuVkoWkaqR1iXqpdXqycYKliZiMcIefmoekX2BSq4R/roKbda6Cp4aGn3qZl4V7ZoCjiaSYhoGjfal+gZSGrl58qFWdopKBeqOfgHzDr8WMc6+0s7lxYqmvwnRojIyXjoFsmJFubHh4d25rZmRkcXBme2ljXFZfaVhYVExMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXVwKGZq6ihr6KfsLWwr6mto6inqqurqaSmn5uln52mp6aknayao6yhpJ+vop2bk6qktrCuoKmbnJeVpqOQmqKnn6CmnLGmo6ixrLbIsrWprKqVkZydopmgpbSdmqGUnJ+nq6mirZmqqKGhqaGzraKqs7KinKqosLC3pZSXpKiZnZJ8qmyehId1q3l8sG6CpIuIn5aVnpWB0re0uMmAgbJeX5Spg6SHh6B6mJWZeKrJc5mjlKeokJKajH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI6PnJJ7b5WQfW55dHx6bVtlanJxZoFqXmFYY21cXllJTExLRURCQj1BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxdXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTAxrmtqbKurKWinbK5rKqhppuopqusqaagpqSYq6OfrqydpqGsmp+ppZ2ntZ+il5Ooq7ayrJumnKCWkKWtkpqcpqKgqqatoaOnqbC0wrGyqq2olImYnaWboqSvppehlZmcpaWpma6cq6aknqujtqygsbmwnpyvqLS0tKaWmKmkm6GPgp1OeJqBf596hKN8gqSEhqaenJ6UhLh7fHm5gn/MxsO2d5uhkIuffpqWl4l2n5eKpJikp36vhJuDnoSsfZmUYaVso3CPhZCBfZeEcqxgpHJxgJpgvH1SVXWOkaOWe3yRjodyeXKDfXBcbG53cmqAblpjX2huYmRdTExRU0FIR0ZJOTlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Gss7Smn6GVpq+urqmmnaWlmqOnobKuoqmnsqCZqaSUorWio5WXoqq1uaSco52jk5Chspmem6akoKKvrZykqKK1scOxraqtqpGHkZynnaOknaWXnpiZmaWjp5itoayipJeupbusobe3rp6etbO5srSomZ+xoqWfh4/RtcO3eYeOhZGTj4CmeJSid4ugkoWlgotxq4aFtG5yaZmjnJWJn3yXmYaHkHOugqWbooymipOciJSQmm1wslylc5N6nGyZf3uZfm6pYaJxcX+fYnOyuGh3j5OkmH2Ki5CIdnt4jYFsaHdpeHNufnRcZGRtbWVoYEpaV1g8SEY/VDNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krb+/vLu1npeopK22oaKZlaOpp66pq5mloZ6moaC1p6Kpp7CjlKujjqSto52QmpqqtLSknaacqZKUl66goJ6mo5ynnLWZoaqjtavCr6mrqaKMhI+coqCmo5aampyYm5imo6WXqaasoKObrKa9rJS+sK2fo7C0u6y1qJ2qs6WpmXuokX18sHeKgaSliJxtsm+gh617oY+DqJaZgKyJha6FoJSooaKXhZ+AmZWAe5J+q4CdmZaKqnedoI+Ik5J/ea9do4F8pqdknoB8l3Rrrl2la3GFmV1gW4ygbZSQpZiCk4uTiXh5gZZ+amx9Yn10bX95YGdlcG5nZ2hCWV9bPUpTMlQ4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaV1NQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVlFIRklKIygovJKahKnGw7bBtJ+araCuuKWjjpuko6Cvrqmfo56drZieuaCiq6CvqpquoZGqqaWWiZqPrrCspqCom62YmY+toqGdpaGZpJytl5+opbaov66kqaOfi4COm5ufpp6SlJmalJqapKOjmKeqqqGjnqmovqWXw6yro6Kss7usr6iitbGqrJl2r36QipyFh326rYmYZLCMZZWtfaGPg6eWm4GtioSwhaaZo6GikYWgW2xqgbNgf617e4KAsWxnbZmXi4ixW320W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqeZiZWPk5R5d4ybfGNzfGGDeHN/fGFpZnBtZmVlT1VjXEFUXj1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBfYGFiX19cW1hVUE5KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9KftLG3vbu0wbOjnK2mpbapoIuZoJ+ds7GonqKfnbSYoLOoqquesK2erJuVrqiijoibjq+sqKejqJmuk5qPqZqhnqWemaOipZieoqmyqLyvpaienY58i5uWoaCZkJKam5GZl6ien5enrKWkpKKkqbueoManpamirLW3rq+oob2vrq6XgamSo66Om4CGpJeYkIGAuMO6g46dk4SnmJ2CrIqCr4mnnJqlq5F+1b3CqmKjv718fqOCg9e6t7WFk5KCnr2+hGqjgW+rhG6df3qysceDa6uwvax4d6K+u3SAlY2lmo2ZjpSad3+PmXhhfHljjGd4gXtga2VramFQYltTaVxAVGBCTCk8OjUvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0sb+6sr2zop2upqWzpp2MmKW/qbawp6G/pqaxm56xnLmon62upaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp6nm5qgqKKYnaCsrKm4raejmpeTe4iZkqabk4+RmJiPmJSomZ6WqKeeqaahoqu7nqnFo6Cvo6u0tauxq6K9qrCwnHR2qqS3hWWJn3BnrI+Kj21vd6SQmqCBdbCalnCQjXKWqKObmK6kcmxtbGWKeG5tgplxgHppcGlmiZaVl3FoaYWGZ3CGZF2KY2lvWV1nfnimYGJyj5JvZmSAjZOOoZaVlo6Um3qFjZN0ZIZ3Z4xqeH54ZGxjZmxiS2VXSmtZOlBkRFAnSjorIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6ubKzqqmirp6ks6qYkr2xw8e9tKmev6uso6Cmq5+6o6StrK2ljpatqpCMhZWXrZ+lqqKfpKOgkYulkqeZqZmWo6qglpylpqevuaqrmpuTknuElo6ml46RkZiTjZeVppOdlqehmbCmnaKsuaCwwqiks6assbKrr62puqWwuZeLoamltZyJlqKYhqmakJSdk6qzmZujrKG0l6OhnqGinKGkoZWsp4ySk4yHkpyclJCZk5iQjpWEf6Sal5WOi5OSio+GhH5ni4B0g3Z0h4xxp218lZKUk4GBj4+PjpySn5SVlJ6AhZKLcGeOdm6Jd3V8eWlrZGRvY1VgWEBpWkdiYE5YK0U9KyYhNjQwLx8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbeurqKwpK2foLaxkI6qxLvEubepoaWdm6WdsKijtqedqbWmp5GYrKOLiImPnKeWrKOhmqienpOVo5eomqmZlKaho4+ap5mhtLmnqpiakI18gZSMoZSKlZGVkI+Sl6SOnZinnpu1o52mrLeor8Kuo7ensK+xrqqrtbuisb6ZkqakprWikp2mno2pn42Sn6OssJuhpLKqsZmloZ2kq56enZyXrJ6SmqKblJCWqpmNmJiWkJaekYegnZWUhZKMkI2Vi4F+Zo2HdYd2eYiEdJxqh5GVlZKKfYyWkpKXkaCRmpSegoaWhXhxlHJ4iX5xe35pbmRfcGlgW19ZbWJQYGRPWTlHRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OXlaSno7CzrK6jqaetoKi1qpCPnKOyuq2qq6GimXqcorCkpbGplpu4pqOUmKmcjoaKiZuikK6epJaooKGSl5mbrouqlo+omaiMmKiOnri2o6WYm42JeYGUjJuTipWRlJCNkZahi5ycp52euKN/g6+1orCvdKS+o7KgeHuhrLS9lneupaCKgKl+ZFxidp+OpJ2Dl35ulLSco6ivrKRln6CUdHqal3GAmamYbICjqIplnKWbkJeYlouSm5CEnZqQlIOSh46OkomFd2uQiHaHcXyGgYBhaYmLlZOMW3aVkWdoj4xxeaKWlmR3l4aAdpdogomCbnl+anBlX3Zva2tnXGVjYWFvUlo9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHR0lLTFRVVVldYGhnZ1hRSTxERzw5VlJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqaWpraSnraSSlqq0rrGlmammqpdzi52vn6irp5OWuKCgj5yknpB+iIiano2rmqSVp6KejpeRnoV0ro+IpZqokZajiJu5s6egmZmLiXV2k42Wk4qTkZCUjI+Tn42ZnqWYm7KWgIybtZ20jJKPvaehfqeie6SwuYKOj6efhIuFj7Gpr4yJlqKZeYGLrIacnaKoq6mIlYeZd6WbeoecgZengoF7nbJ6ioafl5mUmJaBkJaWhJmaY3mHkISNj5KLg25xkIh6gXGAgYZ/hnSHhZaSeJZok3SgmnR7mYKdmoSYfZGIgYKYaYyMhGp4enBwZ2R3bWlsalxkaWllcltcSFRMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaGZZUUg5REs8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZStxbyvoJWlp7Sdj4Ocq5ymoqCNkL6emY2fmqGQfIWOmZiIrJ2jlqGhko2UiYaAkaiOh6Kco5OWnYaeubGnnZqTj4VwdZCJlJCKlI+Om4uOkZ2QlZ6jlJ2rh5+0ibSarovKiKuvibeFjbCDsrCFqY6nmI2dfKiPcnt3m46mlmiVpHm0i5+fp6mTmcKCf6uImKFxnoCapX2XhZWygKF9oJOfj5iXgI6Tm4mYkot8hZOGjZSTiYNtc5KGgHtyhoGEfYV1hoKYgY/FZoCph4+iap2BnpeAmYCKi4OImG+NkoRnd3R7dmdodXBnaGteYm5sZmxYZkZcUUwyRTQ2TWFjNyY0PERHRDo2MzY1ODs4Pj09PkJMP05JSktDUFpdXFdiXmpsXFFFPUtNQEpkWF1jZ2hnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5samrppqUnqKkqqKVpKm1oq9/oKacpZ6diZS9mZONoJGdj3mDlpaRiKuZnJuaooWPjHebnI6gkYiepJuVmJeGorispZmbjY1/Ym2Pi5OQjY+MjJeLj5GejZKeoJigp36hp4etnaCWrpCgnp2RhoKgjayxiKSOq5qMmn6idYCYk2uBq3RNq3iHjZ2Sm6mpgqqrfoShe3qnaZ5/kmxnl4aYtomefm5gY1iDl3+Me2Rni3OZfXmWa118l25fU3GFXGBseYNgWWWCfoSBmHGnqmuDo25ypXCfgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbXRxampuXmpvbGtoV2dOXVhFOUA0R0ReazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpbXV9XXl9idmBNRTpNT01UYlxbZmdpaWJiZGFkZGJhYmBjZGNhYmprZGJkZGdkYmdlYWNomJadoLmgqqOmrJGhtryrrqKZlp+gpaurn5yttKGnkaCfn6abmY2YtJmQi56MlYt1gZSRjYqmlpaYn55+k4WGrKOHnJGKmKmYmZqRh6WwpqKVmYiJgGluiIeLjo6Ji4yRi4+RoIuSnZ+boaV/k4GPo6GUoHeclpCng6KogIarr4aleot9hJp9onBykoeWe56MeW2Hm4uZkZypnI+HnXyConN2pmaefnekXph7fZNzom6Yt7S6c5OHgYC2qGSBxrh7cJW2jHGAm6RjdKyrYH1qnbN+bn2Hg4+Ci5dxgKNsc6RznoJ9o16cmbOWb3uXnrN0cluesoJpYm9zdXFoblhra3JyZFtnXWFLRD1ENVFBWnEyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWVhgYHtkSUM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi1ra2gmqGboqOkq5uasayqkpegmKCkmZqUnqubi4iSeIuFcICWjYqPoZCTlJ2XfZGKjqigh5iPipKik5uajIqop6Sej5aHhH5re4d+fY+Ng4uPj4mOk56BlZufnKCfi4l3nJiijaByoouIqYicp5GXqayArox9eqCZeaOTeIBzl4iMnH2Wn4abjpmcp4ejZKF9iZaQm4xsnmiajW6amXuAiqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z2iYqAnWiadYeTkpiOf55tmZBqpplcqH53u2p9qVqOhF2zZ1xucXh3a2lbcGl3eGFeZFZhQVBFTzdWQlJuNEpaWV5OWkRAMTUxOzs3SD86Q0dVP1hSWF0+RGJdVmBRYWN8aUVCOU5bXllkZlhmZ21tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCrnaWbmqefnayZnbCnqp2Wopmhn5mWlqCjmYaJjWmIgHF7l4iMlpaEkpSYj3qKhJajnImVj4aLnZGcm4iPqKKfmoyRioCAaYGGeX+WjHuIjY6HjpWZfpKhnqCik5hyaJ+KoI+McJKMgqmImaCkqaKpfbCtpKK4l3ajs6Kjf4iUeJ16q5p+oo+enJiJmHKhfYWNsLV9a5qRoXh+mLSjo6uohJh7mnycmn5zqlpdb3uXi3ieYkx/e3uFZHqYQk2fWaJqcnyOboGKhJl2m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B9fW5mX2todXtiY19QXVZcVFZAWUVRZ0VSVlxhWF9JRD1COEBBOklFOExFWEFWUVpWREZhXFpgS2BtfXFFQzxVXmJaZWpWaGhtb2JmZl5hYFxdXmBoYl9lZHZsXmVnZmxkZWxoaGtplJ2Bsa6ZhFNfoae0urOzqJqii5qpm5ynkqCro6Cnjp6dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGTlohygImSoJtykpCBiJmUn5qEjqibmZWLiop8hGyEhXGBoYx4hY2Ih5GXk3uRop+eo4iuhn21hI+enXumlnqpgpaekYuinn6naHdtfplzoHNxfJ2FmG+Tgq59o4Onn5uBpHBeqWh1o2NvpWGc0498epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKnvH93g21/v6aqtF6cb35yl2+Bc6JyXqRndKZgaKZsmtOYeoKbbnZ5l2ubeXaXcmyppWdfZHlwf4RrZ2ZjbXV3Zl9hUVplUFFhSFdJVF9XU1tkaltlUUZDS0xKS0JKRThQQFBNWFNYT1JRYGVlaVJkeHl3SUZFY11lWmhqU2loam9jamZgY19cXV1faWJhaGV8ZF5kZ2RrZGpsZmhsaJibf7CsVFxLfqmvsrWwsqOcmISXpqCgo4ykp5+XqImZl5iTmZORoJeOiIV7cH2EaH2Pg5OagXeRjo+JcH+Hj5OSbJiUfImRkqOVg46qmpOSi4WJeYR3iIBugZ6Gd4CShYeYoJV5kqKjmaCJs6Gitot6rKekrqVwqYCbkYaBnZN9pICimYaYcZ6Eoq2uiZeLgIykjZWDr6KVdrW2tsmidJSLgp5hnpepbXmVhqCbdaGHd6B9kJaKgW9MZqOScJqIc6V7eXRig4JsfqBscmRgnHJ/dJdre2q0tbTGpnOYfnqcapqaq3SBmmxzd5dpmXl0l3FQRH2zXmp1aniHZmtnYnR0cG1VXFJYZ09SaElVTFhSVVxna25VZ1dNSkFKTUpISk5BUUpQZGNpbWV0cnN+eHtudYl7e1RRT21eaFtraVJqaGlsZ21mY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinIivp4VmP5Shs6yvr7Wioo9/lqeioaOLpKacm6WBmpeWjZeQj5uTjoiDeWp5hmWDjH6Wn3l1j4iMgmmEhZKDjIWdjXqMipWlkoKXqZeMkYuAiXqAfYt5cI+ghnmBlIaIlZ6UfpOlp5yWloRnbnicbKJkfHGleJyYcGingpiNfKR6oJaDlnKfdoCJlJWPuW6QiqJifZmiloluc2qra3WgbW+mYJtpi5BploealXWigH2aX4uFjHVviGJooWWef2mbdXBkZ4iCbnKiWl9bY6FuXYmMcHt/dHJkpW54omRmp2iXcouYbqFvUoiPbqBeZKdUi11UmG1tcmpxgW1waGt4c2tvUVZVVWVZU21JWE9cSFhoaHNqWWtWUFJFVlxMWFJhVWhqXnd1enxwfHxygnt/c3aNgIN2XlFzYWdicWdQa2hoa2xvaGRnX11dXWBqYmlpdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqrCxpp+Lf5aqnJ2ki6GhmaGhgJWYk42aj4uXkI6Le4ZxgIhoi4p8l5pzdIl9kHxlg4eViomWmYJ8iIWWppCBoquQhZCKgYp9gICOc2mPpYR9hZOMh5efjYaRqaadiaZ4lpx+pYmWjLKZnpGDr5efpXmXiXqpdKaPhJpupaKMkoSMg7xufaWvgoeGh5SXnaF9pntyqJSglmeefm+sY5aKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm9voJ6RlGF/q4uqd4F/jqefd599haSVnaBpmod1rGaerYy2c3a+jKOTWYOmjatgdXFzb3t1cGJqfm5obFNVWVVgYFxqTFxRXEldbG12YFtxWFtfWmdzZW5vcWNxdGB3en55cnmDcoN+gXt7jIGCgHZieWRkbnNkUmxnZ29scmlmaWFfXlxhamJsbHpvXFxiaWFtaXdtZ2xuYpWmqpyBgJ6klqqqnqinrqOYiIGWqpmdo4mapJyonYSLmo+FnJGFko2MjHSFeoiDb42EfZeTc3WGcpGDbn+LkoaGlI99e4KFl6WNf6WljYCNiYSUdYOHkm9si6iAgouTjYibnoiLkqqioJCAdJSXiH6BeZSvpH+BnHGPhnmSjIWAe3KnjHF9fXqXlpuEjXh7fn6IlJWTi3eRmaChhHt+iWuMhVt5eXN5cGlufpKKcn90gY+Uk3GFg4JljX9fgYCMd3Z0lHVve29viW6Ehl53aXiOZoKDho+qnH90fZdqiYhvf3V8hHVtbGaMc3d7l3eEWmpXeY9obXdycW93eG9dbIZtaWdWWV5XXGRrZFVhVF5RX293eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV5gXV/gH+BeYuFgn17bX9sZHluXlduZ2h1a3hqaWlkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbmpp4uhopumpJmknauin4ODlqqRnaCImaaaqJiDgZuLfpaUh46KiYxygnyPfX6PhHqXjnRyhHCVhnt9kouGhpCFeH6AhpijjHunoYuFj4+ElYKGjph3cYSqhY2RnI+Hnp2Gipqon6Cqg4mOlZt/foqXraiQk6eQeHGek4N7k3B/qYZwfZVxam98gZ+Lf5KOi2huXYSMjJycoI9zloyIcXRrgnZ0gFlyboaRgn5+i2ldaWN6hYOIgF9peHucfIONg3aBh4NpeYyIa2JxcoN3X3KNgoqQqJaHZ42Pg253i4Jvg4t3bmRmY3mCepVaW2lmbXZbenh3dG1zcoJmXG2Ka2tiWVhdWVhrcVteYFleXWVyfXpzb3Rjamppe3xyend0ZG10aGx7fnV6fHt5eX+Af3CGioR7fXN+enJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyqsaGQo6Gan56YnpmooqF9gparjJ6Uh5qhkKSUf3uYhHySmYiIhoaKcn2Ai3aFi4GElopyb4BymYeEfpKDhIaKgXqAhIuan4+CpqCHeI2XiJWLi5yXhIN6rIGQl5mTiZ2choehqp+hoqOLiJObnaOZlqqiqKehk5yJmJB8eY+Phah+fpKRkpOcsaWalJ2QjbGSmISmjIyWnKCKkZyDiZKKa3yOdndlgoaQin2JnYSHi4+HiICFhJB3fHt1m6OJiIufi4aVf36NgoF2cXSGhX94iYiLkaeRhIeOiIOMkIt7hYmHjX91aoGDe3mZaXFoYHOKcH16d3ZvdnOBXF5vh2duX15ZWlxSZ3FVY1tbYWxodHt8cm5wY2ppaH97bXh+cGhvcGxmgHtygYB3f31/hHttg4yGfHp4fH56g3hOZHZqc25xe2VrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2InrqflqKhmJWZmJSYpKCden+YqY2ejIWfnIqdlnx4lIJ7jpmJhoOEh214gYBygId+iJOEbWx+epeHhIOQfoCGhIZ9h4ONm52RhqmegnGKj4WSkYuckX2NeqmDjZGXlY6cloWFm6afopqdhoOSmpmZkJmmoKaenpCXgpOLeH2Ij4WmfHyPkJGFmKqgnJOcj42qjZGAno2JlJugg4+Xf4eOg3B4hnF0YX6Ej4Z1jJiAg4+ChoR+hYSVbnl2dZOjjI6Gm4WFjnWAjH59cnN8iYR7eY2PhZOokIeEj4KDiYmIdYSGhol6bWp9f3ptaGtsZl55fmd8e3Z0dXV6d1xgcH1tdWBjWlteUWZtU2VaXWFraXV6fnBsbGNqameAf2tyf2tqc254boN5boaAdoKAfYV2coKNh357enx/e4KLYGl7a3VoaYNlamNgaVtjdWhvYnVta1RicXllb3l6cmVqbW2Lip+4mqGkn5KRlpeLmp+enXp3nKWQm4mGpJSKmJl4eY2FfImRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hoSHfI+Aj5ubkIemnH9wi4qMkoagoYqFjHynkIePkpaTlpJ2jKOgoZ2Wmn+BkJqZk42aoqKkm5iRnH+PhnqBhY+IoYB+jI2PfJekoKCSmZCQpoyPgZySipSYnH6Tk36HjoF2dIJwdmB9gI6HcoqWfIiMcYx+goWFj2l4cnmNmZOQgJh/iYxzgoh9fXF6fIyFe3uSjoSXppSMhpF8hIWGhHSAgYWFeGRxen54eXBramZefXNofHV1c3xzf2peYHR2cHdkY1hdXlJqaFRkWF5haGp2eIFxZmtjbGdlf4BqbX1nbXBqfXeFemuLgXKBgX2BdHaCjIZ/fHqAgX1/j2pyg250aWKIaWxiX3FVdG9tbmB4aGxXanR2Y3R6enFia295iY2fs5KlpZyOkJiPhpygmpt7daOfjZd/jKGKiJqVeHuGh36DiX6IgoF/cH56dHWChX6JkHdnY32Gl4uCio14fYCNg3mWgJWXlY2Vn5p9b4uBkJOGpZuHjImDppWEkoqVl5KRdpCdoaGYlJh6f46Yl4+Xmp2knpmTlJx7kYeEeIaXjp5+goqOjHOXop6gkpiOj6KMi4OYmYSTlpp/mI18iY2Bd3J+bntkgHyLhnCGk4CQgmuHg4GAiYVmdm99iJOZjn6UeYyJfYCIfXxygHmLhnqFkoqMmaOXg4SMd4eDgoF1eX+Gg3Ned3d8c313ZmtjYH5panZzdHV9cXxjY2FzbnVybWFZX11aa2RSYldfYGlsdXmGcGJqY2xmaHyDa2h0aGxvaH98gXhtj4ZxgIKCf3R8g4yBgH56goN+fJBtdYl0dG1limxqYmN1VoNpcG5geGdsYWp2cGV4e3lwX3FshYWQna6YpqiejY2Xh4WfkpaXfHaom4mYeZaci4yYj3h7gIt9fIN7gIKBeHN4eXN9gIN/iIqAZF59i5WIfoWIdH1+in9+mISWk5aMo6CXfnGHe5ORiqaPjI6KkqCRg5GPk5eQioCOl6CakpCSdICNkpSJnZ2ep5mYjpWYdY+Qi22GmZCae4eIkIlvl52aopOVio2ejIaBk52Ak5OWh5qJfIqKgXpyemt1bHx/i35uhZKDlHhvgoR+fouAZXNqfYGXmIWAjnSRiYR6iH52eIF+h4F9hI6GjZWlkXmFgnSIhnx/cnN/hYFsX3l0eHB7bmFuYmR7YW5vdnN3d3NzYXZgb2x1bm9dW15dXWpdT11XYmFobXN6iWtfaWVqY2h3iG1mbGhpbGeAfHp3b4+Hc4CDhH10gYaJeoN9eoGEfXyOcnmLeXhubIdraF9pcmOHaHFvZXZnbWxhemhqfHt3cGF3bYuBmZqqoKSonYqKkYaKnYqUl3x2rJeMlnyek5GWlIh2fXuKfHuAdnd/gG90c3pvhX2BgIl+fGFcfo+RhoCEhHN6gIZ6j5GHkZGbkqSak4F8gXyNipKjiI2KjZeajYWRmJOVjoiIi5Kdk5CMjW6EkI+RiZ6ZoqGXl4mXknCLm4Vnh5qPlHuJhZCKcJaalKGSkoiLmYyCf5GffZKPk4yaj3uKhYd0c3ZrcW52fIt0boaRjpJxdIB8gYKIfGVxbXp+m5R+hYp1kYuBdIh5boB+gYh9hY2Kho6Wqo57iH1+ioV3fW9uf4OBYmd3c3RuemFdb2BqdF5wanp4eGxycGV5XW1sc21zWFpdX2FqWk9XV2RjZnFxf4hlXWloZ2JncY1uZGlnZWlngHp3dW+OhHOBgYN8dYKIhXiFfHeDhXqAind/i3t7cnmDamtfcGhzf2txbm1xZ29rZXtibn95d3BrdneJf6OYoqihppuIjIqBj5yGkpt0gKmUkY2GoIyVk5B/c3t2hXd4f3Jze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYB/f6CGj4qRnJegk5Z3iX6AjIicnYmPhpKXloWIlJiPlouLjI2MnYqOkIRuiYuPkYqclqGcmJaGmIlshqWFZ4eei5J/jISMgXeTmJGdkZCIiZSNfn6QmXyRjZCOmpJ9i4CDb3ZwbG1vcHuGaXODjpiKcHeAdYKJg3lnc292gpuPfYqFe5WSeneJdHCKfIeNe4uHhYqPnKSJfIR2gYp/d3dtan+Af1xxcnFvb3dZXW9gb2peb2l8enBtbWptd2Bwb2txbVlYYGFhbVdRU1llZmJ1cISCYl1rbWRjZmuSbWBmZl9na4F0cXJwi4B0f4KAeXaAi4B5hn93h4Z2g4V7h4yAe3aKf2pxYnxihXxvcGx0amhubHZ3X3F+eHt0dXN/gn6llZqtn6eWhYyDfpaUgo6edIqfk5KFipqMlY2LenJ3dIJwcoVzcXWIbG5sdW2Id4N9f21uVVGBq5SHgnmAdnKCeYKggpGBkpGXm5GZd5B6goySpJqTjoiUmJKDhpaYi5OLiI6PiJ6EkIp8c4uFiI+InJmfm5aVgJSAaYeeiWiHoYiThZGEinGDkZePmo6PjIuPjXd7k5F7jouNkpeNfIh8gWt3am5rbG16f2J5fo6WgXZ6gXeDjX16aHVtdYiWjH+Jh3uUkXJ7hXB3jXuLjXuJfoSOkZ+fhn19eIGKfHZvaGt/gHded29ta3ByVV1uYXFhX21ueXBncGZmc3VocWxhd2VdVmVgYHJTUE5bZWRceHCIfF5caHFiYmVmkWlfZ2RbZ29+b2txc4p9dn2FgHV2f4x5e4aAeIiDc4aFfoyMhHx5lXhmcWqDX4d+b29remBpbXR/dF9zfHiGd3NzhXx5oZCasZyljoKKf4KZiH+KnH6KmJKOhIiXjo6OhHZ0dnOAcG+Fc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfG90g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYmcf46BeHqMf4iMipybnJuWlHqOd2mKk4ltiaWGk4mYg4ZjjJGYjZSJlouNiYtwepWJfI6Ji5ORinqFfH9tfGVzb2tsenlcgHmPjoB7fX5/ho57eml1a3SMkIqDhoZ9lo1sf4Bwgo2Ajol+hHuDkZabm4x9d3iCj3hya2VufYFraXRvZ2hzbFNeb2RwWl9scndma2tiZ3hzb3FkX3dgYVZrX151T01LYGVjXHlxinRcW2V2YGFlZY5jYGZiWGlyc21rcXaLfHR5hoJ2d36Lc3+GfnqJf3KJh4GRioh9fpl2ZXNufGWHf25wa4Baa254eXJgdnp7jXZydop2eZ+Mm6+boJCChXiIlH57iJyGhJ6QjoWMl4STjoeBdHdweXBuhG9tbn5yY2R4cHxuenxqaGxjpJrB3K7vonNrdYN1hKGEkW6Vj5SflJqBkXCFi6OXiY6VipCdlYOAlI+EiI+AkoqKl36He3V/iXiGhY6bmpeZj5B2i3dwiIqMfoylhZKKnYWGXouUl4mOiI6LioSJbHyXgn2IhoqRj4Z2hX5+a31jeHRqb3hzWIh6kYeFen9/gIWMfnpmdGqBi4+LhISAjJiGbIJ3b4mSg5GFf4J7gZGXlJuRdXR4hox1cnBlc3eAYHNsb2FodWZSYHBna1VfbnR5YXJjYGl9cXJuW2NyYWNXblpcd0xMTGNlYV12c4ptW1xkeF5gZGaEX2NjXllpcmtua3J3i31zd4SBeHh8iXGDhHx9iHt0i4mIlYaMf3+Yc2h1cXlsi3tudHCAV3B5dnlxZHZ4hoxodoCJcYCdiJmnnKOShHxwjJR3eImcg4SfjY58lY2AmYeEe3J3cHNqb4FraWx8dF5geHZ7cHR6Z2BlfOvatcnD3IlzbHOAdoqaiIxpl4+OnJSSgYhwhYigjoSKlYqMl5N8jZKIgoiPepGLho+CgHd4g4Ryh4KTm5aUmIaNdod/cYaDioiapISVjZ+EiWGDlY+FiIaJjIeAh2h9lH99goWJjo+CcYZ/f3J3Z3ZyaXR3bFqMfZKChX2Ag4CEioJ2YnVtioKRjIN/gJOSfm6DbXqIkYiThX2CfoGTlJGYim9yeoyFdGtvaXB2fl5zaG5caXVfUmRxaGZTX3B2dGBvYF1ognFyaldnaWNpWG1XW3RMSkxlZl5hcnOFaFtcZXleXmRnemFkX11Za25lbmp0d4p+c3KBfnt2eod0hYN8f4d3doqFj5iBjYJ7k3Zsd3Z5eJJ1bnd6fVh5hXF/bmZ4dpGCZHaGhXGKloaZoZuiioZzb5KLcnaNmnyJmYiJe59/hJl/gXhxdG5vZHJ+aGZsd3dbX3h7enFxf2lhZ2F/1baOkaZ4bnF3e3GSkIyGapiNiJuRi4Z7aIeLmYaBkpCGhpeNe4yMgICJjXuQjX6JhXp1e4N7cYaAlZmOkpSCiXWEiHiFgYyVnqCHlpCgf4hhf5OHg4eDiY1/f4JmfZGAfn+CjI+Qf22DfIJ0a213dXR3dmtjjYGOf4R/fIR/hYh/cGB0coZ9kI6DfYCSinpxhGd7hYyIjYR8hX+BlZCSlIVvcHmLf3RsbWlqd3phZ2lpWGt1WlJpcmliUGJyeGxiZV5aaoNuc2JcZ19lbV9uVFpvTkdOZmRcZm5ygGtaW2NzX1xjbHdkZV1dWmxsYm1qc3aGgHFvf3x9dHiGeIWDfICIdniJgZKVe4mGdomBb3h5e4OSb217gHZeg39zgW1oenOUc2dzh3xykpGEmp+boIaGdXWUfm11kpZ9h5CDio2ZfIyadn52cW9samF0fGdiaXV5WmB3e3ltcX5lY2hoV52PX3Jzl7zEhHZxlIiPfXGWi4abkoyHcmqIj5aAe5SMgYSajHyKhXx7iYt/lIh1iYZ2d32BcnWGgZ6UhZSPg4NygIp2hn2Lmp6ah5WPnYGJZn2Tgn6Eg4mJcoF9Zn6MfHl/f4eLj31pgH2DdmZveXhzd3Nsa46FioGKgHiCgYWEgWtfc3l7fo6LhnyCkIF+c4JpeoSJjIaFeYR9gpmNkY1+bm17iH12dG5mZXt0YltwYlducVNTbXJoYU5mdHhmYF5dWW+Ab3NZZWJdam5gcE9Za1FEU2dgWmpubXxuWVtebWNaYm93ZGdcXWBraWNsanN2gYNwbX98f3R1g3qDgnyBhXZ+iIGWkHiEi3SBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0a5ONhZ+YoJmEiG59jHZpd5eOfoCJgpSXiXmPlm96c3BsaWRgc3poX2Vxelpgcnx5Z3F6YWVlj7Gyd0tiWqXZ0JZxe5CKj3d9k4qEmJGMhW5rhZKRenmShoGEmIp8hn94d4mKhJaAb4uIcXV+emp5hYOlkISTjYN/b3+Ed4V6h52alYyUkZWFiHB7koJ8goOIg26Bd2iAhHhyf4CDiod8ZX1+hHZjcHOAaXlwb3WZjYaDinx2eICFeoNrXHJ/c4KJhop+h4p7iXKCbnKFiI+GhnOEeoKajY6FeW5vfoR/dnpkZmh7b15YdlpYcGxOV3FzZmBLbHd0YV1cWll0fXNvV2ddZmpyYG9OV2hSP1hmXlpwa2h6cVtaWWtlWmNxeV9oXF5lbGhla2lxd3+Ib2x/foB1b4J7gIJ/gn92gYWIl4lxgo1xe4Z8enmDk4x1anl+a29+dH99b3J7epNwb4F+eGeSi4OhmZyRgoVmhoNvZ3mViH1+hIGYiYF8jYxoeHJrbGZfYG95bV9ib3hcZGuCemFxdl9lZdTqvYsyOj6Ljn9xeIWIjo12gpWMfpKNjH9tbIWNjHV8j3+FgZWIfIJ4bnaHhIOXd26IhWx1e3RmeYKDp4uCjouEfm6AdniFe4ieko2Rk5OOi4d/e5KGd36DjIJrf3JogH54bXx8goqDd2F5hIFxZHFofm51cXWCm4uAf4WAc3V+gXOBb1xuf3V5i4SLe4iBfYl4enJtiYSRhYxzgnqAl4yLgHVta3aAgHV0W2dndW5XVntSWXBkS1pycmVbSXB4b1xbW1lddH50aFliW2dmb2RqTVdmUT5eZVxddWVgdXBaWVRuZFlkcXlaaF1fZm1naWtpcHd9jm1pgoR+eW6AfHyBf4J6dYKBjZOEcICLbnd9gHt7h5KJf2h7fWpze3KFenN3fn6MeniEfXxrjI2Em52WjIGAbI19a2h+jYt6fn6Dk4J+fYqIa3VxZ2hiW2Jnc29fYWtzYGhwiHpic3ReY2SboI9uXDVar7V0aYCIfJKGdYWVhXOOiol2cGyFg4d1eYl4iXyTiHp+cmd1iX5+mG9xhn5odnluZnmHhKSHgIaMiX5uf3eBgn6Om4iDlZKZiouFiXyPiHB6fYR7aH5saoB7emp6d4KHgHJgd4F+cWRyZ3aCbXV7hpWRgXyCgW93enx1f21ZcIB3dY2Dh3iIdoOJenhzb4uBkYKHc39+f5SJintvbmptgYF0bVxmZHJwUFp6TVtvXE9bcm9kVUtzeGlXWVlaYXGAdGBdXWBnZGlpZk5ZaE1AYGNbYHVhXXVsWFdTdGFaZG9yV2peYmhrZ21saHB3fJNsaISKfHxwf357gX+CeneAf4qLg3F7iG9xd4N/e4mMj4Nqfnttd3h2ind8eICBh3+Dfn56bYSMiJijjYSDenWLeGtsg4eQeH16gZGAgH6Kg3BycGNmXllmX29vX2BncGZqb4l0YXRvW2FkanZ7gL+cpqTIuHGFg3KSfHiGkoJzkIuHcXJvg3uDdHSHdIh3lIh5eXBjd4d6gJNpcoR2Z3d1Y2p8goidgX9/jo99c4B1hnqBk5GEepePlpCIgoh7iIhreHl+dGd6aGt/eXNpenaAg31oYHeHfWpqdGh7gGl2gYyRlH56fn5wfHZ8dH9iVnh+c3OLhYJ9hHGHind4cXGEg46Af3p+fXaPhoR3anFpbIeBcW9cZmFxbUlkdUtdbVVTWXJuYlFPdHhhUlhYXWFvgnNbYV1oZWVka2RQW3BJQ2NgW2NwXl13aFVWVXZdW2VuaFZrXmFpZ2Vubmhwd3qTbWmIjHl9cnt+eYKBgXx1fIOIhoNwd4RybXeCgn6Ji5N/cIB7d3l6gYt0g3h+gYGChHqAdW9+ioubnoh9hXp3hXtndIWMj3l+f3uIhYN2j39nb25fZFxYZVltcmFgYHBsa2iJbmF0aVleZG6Ad6naqseGh7JxiXdvjHV7ho1/epKJf3RzdH53gHBxf22EdJSGeHVrYHqCeYmPZnGEcGd2blttfICQk3+AeZGTfnl8bol3gpKNhXWXi5KPh4WGe3+EbHR2fm1ndmRte3VtaXd2f398YWJ4hnpodXVifXtndYaOjZV7dIB2cYB7fW2AWld1f3B2hYh/gHptiYZ0eWx2gYSFf3x+eXx0i4J+dGh0ZW6Kg2xzWWhec2RHbW1LWmFXVlV3bWJQUnR2WFBWWF5hcYRvXGBjbWRkXm9jVF1yRkJlX11mZ11be2JRVVx1W1tna2FWal9gbmVma3FocHZ4jnRrjo11fnZ4fneBg4F7c32DiIeDb3KAdHF1foWBiY2Ke3eAeIN7fIWHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN4Xn2FmIt4hoN0hYaEd4l6Ym5sW2JbW2FWaXNjYFtnbm9mh3FhcWZXXWNsf3zKzoe5oWptbYpscYRxfIOJfnqQhHl4c3l1dXtqbHZjhHWSgndvZl59gnqLimVygmtqcWNYbXqFm4iCgXOXlHh/fW+JcoSLjYlzmI+RiYaLg3t5fXBwb3xmaHFibXhxamtxeH18el1leYB4aXZ4ZoJ3Z3SHjI6UfXKHam9+gXlvfV5Zc39udYGLfIJvcIqAcXdpeICCgIJ4fnN7dYd9e3Nnc2Fui4FrcVdpXXZbR21qTFZUXlNVe2thT1R1clBRVFdeYnSFaV1gbGpmY1pvYVhjcEdAZ1xgZV5cVnteTlZlcFlbamhdV2hgXnJma2dxZ3Bzd4Z4bpWKdH96eH55g4eAdXF/hoWOg3Bwe3h2dXqGhYeMhnp8f3SLfn2GhISHf35+fYd/fHh2eHiRk59/jH2LbXV/eGSChpWFc5GKb4WFgXqDdGNuallfW1xdVGdyZGBYZHFyZoFzYmtlV1tgan93vq57oLZuYnOGaHN7cXmBhHp9i353d3J2b3t2ZWpvYId1joFzamJef3h5i4RmcX9oa2taVm93iaOBhH9xmZNygXl2hG+Cg5OJdJaKjoiFiYV9eHRxbmh4X2psX212amdqa3l3enZaZ318eGVzfm6EdGV1hY2Gln9wjGdreoR1bnViXXF9bHV9jHuCZnaHfW5xaXZ/eX+Ac35te3yCe3lxZmxibYl9bG1VaV92VUppak5RTmhNWHtoYU5VdmtMUVRVX2Z1g2ZeYHFoZ2JXaV1ca2hKRGpZYWRWWVV5WU1WbWpZXWtkXFllY150ZmxkcWdycHWBeHCZhXZ/fnd/fIWHfXVygoiAlYNuc3l7enNyhYeJiIN5gX51j358hIqOhIKDen6Lg3t2e3d3mp2XeomChml2fXtsg4SSf3GOgXCFgn6Bf3BmbGdYXVtcW1NkcGReV2JydWl1cGVlYldcXGiAcG9ygHOJZGR4fml0dXNygYN3gIN5dnN1bmt6cWJna2eGdI2DbmZdX31we4l/aW15Z2pkVVdyb42mfIR7dpaRdH1zfXtvfXySh3iafYiGg4aDfXVvcWxndFxsZ15sdGRnZWl6b3tyWWiBd3VocIF4gnZid4WLfJSBb4xqbXuCcWdzZmFuemdzeIt8fmJ3g3dqbHJ2e3F7enR+Z39/gHl3b2RmYm6Fe2xqVWhib1JKaGpPS05vR117ZmFNVXRjSk5TV2Fqdn5lXWdzaWZgVmNXYnBdTEtqWGNhVVRVc1ZMWHVkWV5rYFxaY2VfdmdtYnBpc29yfnV0mYJ3f4B3f3+GhXp8dIKEfpeFbnJ0fHp0cYSFj4GAeot2dJB/fIGVjoCFhHx+jIZ7foB2e6OlinmIhYRrdXx6dYOAi3puhHN5hH2Bg3VuamhlVl1bWlpTYm1kW1hhc3tpaG1pYGJXX1tqgGprcIBna2BoeXhqc3RzbYOAen98dXVuemhqeWpfZW5ogXaQhGdlWGJ3an6He29qcGdmXVRYb2eOqHeBenyRjnp2cX9wdHd6kIF5lnSFg4CFiHZqcXVnZ25bbGNdbXJfZ2FqeGh8bVtugnJ0am+Bfnp3YXeFhHiPhXOIcm95gHJjcWlccXhkcnSJfHljdIBxaGp6dXJteXh2eWSEfH95d3FkZGNufHxqalRoYWVTSmtnT0dRa0VgeGZhTVNxXUpNVFpla3Z7ZV9tcWlkXVZgVm5uV0tTaFdlXlhNVWxUSlx5X1tea11dW2NlYHlobGBvb3VucHd1eph9d4CBeoCAh4Z6eHmCfoGThHF0dH95dnSEiJF9gHyQa3OVgHuCn4V+h32Af4aCgIp7doSrn396iIeDa3KBeXWAfoB0boZufIBzioBqb21kZFhfWllaVGFqZ1taXnSCaV5tbFxhV1xcbIFlcnR9aWlca3Z1Z3N2cWyEe318eHVybHlnaXhmXWVzZ3p3k4FjY1RlcGeChXd3Z2lqYFdWWWdjj6dufneAi457cXJ+aHpwe459eJBxhH1/f4ZuZHVyZGdnXGphXG9vXGdfbXVkemhddIBvcmtyfH51dmJ0hYt7iIeBgHhydX91YXBtW3J0Y3FzhXx1ZXOAbWFte3Brant5dnNmhnZ7e3ZxZWJlbXN9aWtTZ11cVEtxYlBGVmFHYnZmYUtUb1dKTFhYZ2t1emRlbnFmZFpXXVh2ZVRKXGJXZ1dZSFdlUEhieFpdX2xbXlxhY15+aWpfbnR4bXBudoOXeXKBgHx/iYyGfnV1hnmHjHx0dXWCeXp6goyOfX6EiWlzloF6ip19foV6gXp/fIaIc3GPrYx7e4ePfWRxh3lzfHp1cm+FbHt+bI96YnBvYmVdZVZZWVdjZmtfXVxyhWhYcG5bXlhaXGx7Y3B3dm1iWmxzc2d0dW9sg3h+f3h3bm50ZGl0ZVtndWZ2dpJ5X11SZmZqg4J0fmJkaVxUV11iY4+kaHh0g4aReW1we2l5bnyGfHaJc4B4fHh/aGR2bGBmX15pXlxza1llXW9vYnplW3d8a25ub3h5c3Vkc4OSfoeDiXt3cHJ+c2J4ZFxwcGJxcoJ9dGdygGVebndpZWh6fHVub4J1dH10cmJfZm5ufGRoU2dYV1NMdl9QSllYSGJ0Y2FJVG1TSk1aV2lscXtibWxzY2JaWlthd1xTTGNdWGlTV0dZYE1GaXVYXmBsW1tfYmJchGlnYW54eWxvanaBkHhtg36AgZOIhIF2c4h0jIZ0cnZ1gnd8fX6MkIB+k35wd5WDfJmSeYCAeHp+gHSIg3RwmKB6e3+JlHhjdYd4c3d0a3Rvfmt4fHCRcl5wb2BnYmxUWlpXaGNtZlxbcYllU3JuW1pYWGBsdmNpdWppXlltc3Bsc3NzaYR8fn57dm9ubGRpcWNba3JkdHaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEkXRsbHtucHF7fX1xgXiAc3p6emNldWhdYllgZ1pedmhXYl1vaGF3YFt7dmlqcm54c3J1aHGClYOHfoR2c2pxfW5md1hdbG5jcnOBenRnb35bYHByYmBrcn5tbXV/c3F4a3BhXGVsbHlgZlJlVFZRT3RaUU9YUUhjc2JgRlVrUElQWlVra2t8ZW1vcWJbWlhZbHFXUlBmV1ZoU1RGWlxOSHF0WF9jbWNYYGBhXYtqY2RteXhrcGl1eYZ7a4N9f4SafIKEeXyHbo+Hcm92en10gYJ8i4+Cgpd0eIGThYGfiXWBgIF0f4Jxh4J1b6GWc3uGi4Z6ZXeKbm16bmZ4cHprc3ZyjGtedG5hZ2VrUl1bVWdhbGtaXHCMZE9vbl1WWFVnaXRoYnRlZV1ZbXRtb3V0eGqGfH97h3aPc2Rka25hXG5tY3N4h2taVFZjZHh9fXGGXWNfY1NaX1lilZVjbnCDhYp0a2h8cGZ0eHV9bHp1dm96fnVeZXJjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXNxdHB1dmtthJOBiXuFcXNncH5xc29UXGdrZnF0gXdzY212VmJybFtfcGd+Zm13fnNzc2ttYFpkamp2XmZTY1RVUFNsVlBWU09HZHJfYUVYaU9IV1RWbWhkfGlreGtiV11VW3RkU1JXaFFYZVRTSFpaUE13dlpfZWxpWWJgXl6ObmFma3l1bm9pdnZ/f2yDgH2Hl3uAh4GJfmuTiHJndIB7dX+CfYiOf4uTcnyKkYWHn4Z7f4aMc4GGc36Cdm6ki3KBjYt2d2x6jGBke3BmenN4bG1xdoJnZHtsY2ZnaFNfXlVnX2xuW15tjWhOaW1gVFZTbmd0a2V4ZGRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVweX5nWlZYYGx4fHtwhF9iXmdWWF9XY5uIYmtwgYd9eGxreW5cd3Nte2l1dG9ve4ByWGltXlhcVWFiV2RwY1NeYWhhYmxaYH5rZmtzdm9td3dsaYWMf4l7iG1yZ3F9bnNuZFphaWlvdIJ0c15pbVNlcWVVY29je2Ryd3x3a3Bta2BZYWdodFxkVWBVUk5XZFJOW09PR2RvXWJGWWlNSV9LWG1kYHhpbn5kYFVfVF11XFRTYGZOXWFVU0pcWVBZdHVdX2VsaFhjYVtejXFjZ2p4cXNuaHZ0eoNygoN6iI5+fImHjXlukIp1bHOCdH9/h4WGkoSVj3l9jI+HkZuEgHyMhXOAgXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjYyMjIyMjI2NjY2NjY6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjY2Njo2Ojo6Pj4+Ojo6NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERBUsza2NjY2NyLaW5ubm5xSSwwMC8vLEmFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTJG2Orn5+fn64tiZ2dnZ2w8GBwcHR0YO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fX59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmIiIiIiIeNkJCQkJCQjIeHh4eIh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaTlJSUlJSVjYmKioqJioaCgoKCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95e3p7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkpKRiYeOipCSkpOPjo6OjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYuLi4uLjIyNjY2NjY2NjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx9fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQkIeKiYmOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCNhIqNiJCJi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkYmCiIyIj4eNj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjoiIjIiNho+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH1+fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2QjoyNi42Ljo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJh4KHjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eX1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyNjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dHR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4eHp7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ+P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF1eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTk7OzpAOjs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTk1NTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dXNxcnd5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODk6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Oz08Pj89PD07Ojw9PT08PDw8Ozw6Ozw+PT4/QEFAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXFxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwcHFzc3R0dXl7e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg6Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BxcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj06Ojo8Ojg6ODg6Oz0/Pzw7Ozw7Ojs7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXtOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/Pz48PkA/PT09Pz49PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dIRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxwcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBfVFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjo+PD89PDo9PEBCQkVAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHREVGRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgICAgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFERUNAPUhEQURERENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIRkhJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUFDRkpISUZISEpIRkFAX2hEQkFVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKS0xLTEhUX2hxe1dObISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N1dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tMTGBYZ3+EhoR+eX+GhYSEhoaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lIS0xPbXmDhIN/gIGEhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6fHt8fH5/fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BCRkhLSFB1goGAgoKCg4ODhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODk7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9OjxEQkRFTXaBf4GCg4OCg4WJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6Ojo6Ojw4OTg5Nzc3Nzk6Ojg4Nzg1ODg7QT0+PkJBP0FLTE9RUFFPT1BRV2tycnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PEROeIKCg4OEhISGiYqKiIeHiImKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDo7PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pj1AQE9/goOEhIaGh4mIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPj9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PDw6Ozs8Oz0+QUE/YoODhYSFhIaJiYiHhoaGh4iJiouLioqKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURGRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pj8/PEA+QUBEQU1/g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqIV0dMTE1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkhHRUtJS0lLS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc8Pjs8Oj0/P0E9QEBEQ0dCaoWChYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtHRUdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw7Ozw5PkA+Pz9BQkVES1Z+g4SEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSUhGSkpFSkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6Ozg8PTs9QT0+P0FERUZOboSDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMi4uLi4teUlJQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRUdJRkVFQkBCQlxwcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgICAf39/VUVDRUVHR0VEOz9BOz08OT89PkBCR0Y/REZESE11hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTlNUT01TTFBTVVdSU1JQTEtNTU1LTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj5CQ0ZWTUNKS0hMT3mGg4WFhISHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlTWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hJSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQkNGRURFTFhSTFFRUFJTeoaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLhmxbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVddWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01KTEpJSUxNS09NU290dnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUtQVFNSVldWV1Z2hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3lucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTUtKSUlGQkRAQTpQUVFXWFBQT1FTVFNXV1dYWG2BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TT09NS0pFQz9AO1BQWlpbU1NRT1JSUVVSVVNWX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX59fn19fn9/f4CAgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XlxWVVNST0tGQ0RBTV6DbFZSU05PUU9RVlJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUFFOS1JUUU1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSU1RaXW1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lVUUxJTElhbJJ0UFFTTlFSUVJbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUENEQEM+QkhHVkBJTk1HXWlRSEZPRkRFRkhHSEJDSEdISkdEQkFDQE5QTVJkdHV2dXN0dXp8ent7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVNRVVlTVVFRVFJPVmBrbHN2ent4eXVybnN0c3l4fn6DgIOCgoCCgIKBgWtMRz4+Ojs+QD8/Pj5qUEphRUZISUVCP0hNTUdNUVVKQkU/Pjw9PD09Pz0/QUNCPz88PUI+Sk1GVW91dnZzdHZ4e3x7fXt8fX19fXx+fX18fn5/f3+Af39/f3t5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVlRXUVFXVlBYW2JdYWdtbWxva2hgbnJqbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQkFDQVtcTntOT09OS0xNT09QTEtMV05JR0BCPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV2dnV2d3l8fHx9fHx8fX5+fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJTVlhTUllUTllaW1dZXF9fYGVgXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRklFRUZDTFFPYVdSWFFQU1NSVVtPT1FWUE1JQ0Y+Ojk2NTg2OTc5OjM2NTc5NTxCPWZ0dXd4d3l5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LVFRTUFFVT0xSU1RXWFRUWFFMV1lZVlhYVlhZXVdXWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OThHbnJ1eHl6e3t9fn19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5OTkxKRlBQVVlTVE5KTk9UU1RcVlJVU1NPTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR4eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFhZWVlSVU9KR09QT09NUkpPUFBQTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFFQTk5NUE5UUlBSTElMS09RUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBGVFFPUFBRTlFPUE9MSkxMT1BOTlBRUU5QT0pNTU1LR0VFREI7PT08OT1HNjY3N0RucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11nU1FTQUdVUE9SUVBNTU5MSkxLTE5PT1FNT09NSExLSUtLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1BQEI9PkVIRkRGRklHSkpARkFBQEZIRUpPSFFSYVxRUFJOU09PUExMT01LTUxNT05bVktNUU9HSUhESUpMTEtGRkZEP0NDPj1CRz9CPkFkcXR3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVBNT05XS0xOS0xNTUxMS05OU2ROSkxSSUlJRUFISkxNTktHSUZCQkJAP0VGRUhETG9wd3p6eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xNSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkFBRERHS0ZESUlHR0hDQz9CPz9AQT5DRUNLTlFUS0pJTVRGSUlKTEpLS0lKTE1PUFJQS0dDTEdDQ0pKTE1PTUlKSUdDQ0NESUpNTElac254eXh6e3t5fHZycHVydHl5dnhqcW9qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFIS0NGSEhHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AQENFQ0lNT0dIS0ZIS0RISUtNSEpMSElKTEpNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuand2dnt4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkcEZLQ0ZFR0RFRUZFR0NDQD08PTo7OjpAREA+QkNFRUlGSkpMRklJR0ZGQ0I7QkNDPkBDQ0NER0xOSEtOSERIRUlMTk1HSUxHRkZJSUxOS0pIRU9JQ0dNTU5NUE5PT01MSUhJT1NRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUZFQkJBRUBEQj4/Pjo7Oz07PT9DQT9BQ0ZHSkdKSUxIR0dHRkVDPz1FRUI+QUNDQ0RHSUlHTVBJRkZHS05PS0ZISUZFRERJSUhLSUZIUEtESk1MUE5PTk9QTkpKSE1SVVVST1dkYWFtZ3Fyb3N5emdlaGhjaWxncWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFR0NBQEFEPEJBPkE9Ojo9Pzs+P0BCP0BCRUdKRkpHSUdGRkZFRENBQUZGQ0JCQkRFRUdHSEZMUExJT0pKTEtJRkhFRkVEQ0lISEtKR0tSTUNPT05RUE9PTk9PS0tLUFVXVlVTWWBfXWlhbmluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01GR0VHQUJAQ0Q8QUFAQzw4Oj0+Oj89P0I/QEBERkhFSEZGSEZFRUNDREJESUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9OTlBNTE5TV1ZXWFZYXlpdZGBoYmppZ2tfZGVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJFRTxAQ0JEPDc6PT46PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSEVLS0xMTk9SVE9JVFVUUVRQUU1OUU5NUVdaVlpZV1peWlhhYGBgX2hlY2BkZWdnamhoamZobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURBQ0hFPEBFQkQ8ODo+Pj08PEJCPEA+QUJGQ0VCQkhDQ0RFRkZHR0lGR0tIQ0lIR0lHRkRIS0lHS0lNS0pLTEhMSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9UWVpZXFpaXF9fXmBjXlxhY2tiYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJER0U8QEdEREA5PD5APz4/Q0I8QD5CQUZDRURDSERGREZGSEhGSEdJS0pFSkhIS0hGRkxISEhKSE1MTExMSU1LTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGFlXWRgZmdgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXd1dXV3dnV3c2d0cmtxcmtyd293SUpLSUtHQkRERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFREZIRUlFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0tNTEpKTUxNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9cXmBgYWFhYGNkZWJkaWNkaWpndotsa2lobW9zcXBxcHByeXdydXV0c21tc3NtcXNvdHV0c3Bzd3R1dXd2dXV1ZXFza3BxanJ2cHdKTEtLTEdDQ0FEPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0dHSEZFSUZDR0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlFMU01LTk1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZmJhY2luaWNpaGhteHZtaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0VBQEQ+PkRFRkM/Q0FFQ0RGQ0NFR0NCSEVCSElJSEhLRkRLSkdISkhJS0dKSk5LTktJTEhKTUtaZkpkXEtsUkhPTV9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxrVV93dmlqaGhmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENDQkVFREZCRkZHRERLRERKTExKTE1HR05JSEpLR0tKSUtLTkxNTExMSUxMTFtzYmRwXmxsVU1OZXJdZ2ZxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9cb3VncU1Lcnl2a2Jha2VlbHhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FCPz1CRUdCRkNFREVFREJISEdERUtIR0tNTUpNTEZKTkhKS0pJS0pKSUpMTU5NTU1LTk1NW3Jvb25wcGxrTlBRbFhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhvY15rZmJncHBqaW9wcHNzcHFwcHFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hGRUVCQUI9Pz9FR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSU1LSEpNSUtJSkpOT05OTUxOTUxcaGR1XWxxV2xOT1FuVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRkpMS0ZNS0xSUkxHTU1ITkpJSE5ISkpISE5PTk5MSk1NSlpzcHBvcXFtbE9RU29Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpbXXRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRIS0hKQ0VFRUBAPkNDQUZDSElNSEZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUlKTElLSklIS01NTUxJS0tLU2tiWmleX2pjcnJaX1prb2BlZVVrX2NbYWJRYG1oXGpcbmlpZFpvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga25wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRURDR0JISkxHRkRHS0xJRUZKTktJT0lMW1FKRkhIS01JSEpKS0tJSEpHTEtLS0dISkpMTExLSUtMTlRbXVRQVU1RUE5PT1VSUE9RT09RSkpOUFFkcWlUWVZbW1xVWVtdWF1cXGNmYWFmYmNmX15ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0hQS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKR0dJRUZLSElLTkxJT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGFhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHh5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVGSkpKRkVISFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdFRUpHQklNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjX1lfYltgXltUWVhaX15kYmJhY2ZpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh2cnl2eHJxeHZ0dmFTSkpNSURCQkNGR0VHR0lKSklJREdLSktGRklJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUJGSkQ/SUtITltjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmJiY2NlWlJYVlZcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJS0RESkpNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hFREBEQUhJQT5ISUZPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUVFdX2FjY2NjYlxkY2JkY2ZYUVZVU1xYW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0lHR0pGRkZJTEpORURKSkxOSkxJS0pISUdCSEhRTUtLT01LS0lISEVEP0VCSEhBQEZFQ1RdWV5YX1hfW11VWFhQXV1RS0pWXlheW11WWmFSUl9fYmJgYGJiYGNiYmRkYlhPUlJTXFNcXl1eXl9fYGRoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0lJR0RIS1FPTUxQTExLS0lJQ0VBRUNIRkFBRkRBVlVFXFReU1ZgWE5UVU5aW01KS1RgYVtfWF9eYl1PWWJcYGBfYmNiXWJiV19fVFBPUVJZU15cXF1eX2BiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNRRFdfSUdHSERGTUpQUEZJSUpLTkxMS01LSkpHRUlOUVFOT09NTk1OSEtBREFDREZEQkFDREBMSEJMTFBPT01GTUZGSElIR0xMTU9QSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUVVUXFlZW15eYWFlZmNoZGtscXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXk1HSFlNR0hKSEdOTFFRSUtKS0tOTVVOT0tLTEdHS09TU09QT05PT09IS0ZgRURfTERmY0NMW0heW3NtT01WbVlMQ1BfVGxXZ0pdV1VeRE1RVUxNU1ZRUlRYV1RYVVRcVFBmWmhoZFlUa1RYV1VbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0tJRUZGSEVFS09USktHYFRHSk9KSU9NUlFLTUtMT1JVUk9PSkxNR0hNUVtZT1BQTk9QUEpLUX9RSXxZWXJzV1BtSHFub2FWUHFxdE9Ca3NucXRwU29fW25YXVZcWFVraFVdVmNZYFlaX1ZVV39pdHV1X2F2X1liXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4foB8foCBgoR8gIN6f4F/fnd3TUlFSE1NQkRMTEdKTEZSVkxMT0hMUlhXUU5PT0xRVE5PUVBLS05HTVBTW1pUUVJPUFBRS0laeF1UeGRoWVJTUHZndGxwYm5ma1JyTkx3bWpycHNycXJwb3CAXWZ6dXhxcXpxfnJ9a3V9YlJnfGVzc29zc3x9cH55b39yX2BgYmJbYWBoa25rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpRT01OSk5XXllVTFFTTllZTFNTUk5MT0lRUlRZV1dRVFBQUVNMSGd4bGN4cW1aS0xUeXB1bXVibnZQZGVJZXZxbXdvgGpmeHhpWHJSaXttaWp6en1seHp/cGdvWHV1anZ1cIBhc2h9aWx4fG9fX19jYlxfZGVmaWpkZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3J1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFBJS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OU0pLcm91dXF1cWRoYVZuTHFwXkdoeVd2VEtoeH14YHl7c25hXm1vZFNncnVubXlwd2x2c3RxbG1cc316a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUEtMTktMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05RSVJtSGl3S2BkdnVVV2xObmx7cmFqZ392VUtXa2h9bG1seGBbcHp7X2B6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxobW1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTUxTU1JPU1JXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFOUFVMS0tSU1JSUk9WVVFRT1JSWFhRTlBVVFhYWFtbVVNTV1tXWFdbT1JUV1dYUV1YVl1VU09YUlZXV1haYFtncl5bW1tdXV9jWl9jY2VmZGNjYlpjY2dmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJNUlFQTFZVVFBUVVhVWlVSWl1WVVRXVVlYUE9MTldUUE5VU05QTkxRUEtKUVFLUU1KS09RVFJRUVNSSUlNTk9RUlFRUVRWUlhXXFdTU1FRVVVWVFpRTlNRV1VUWVZUWVVTUlVTVFVYWVheWl9hXVxbWl1dYGNcXWJjZGdlZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkZGZoUUpLS05PTE1UUU9UUVFNWFdVVFZYV1daVlRcYFZXVllVWFRRUEtPWFNQTlVRTlJOTFNQTU5VU05RTk1OUVNQVFFTVFROTE5PUVRUUlJRVldVWVpbWVNVUlRYV1dZW1NPU1RXVVRZVVZZVFJSV1VWWFxaW2BdVllfXV5dXF1gYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFPUlhTUVFPTU9TVU5XUVRUVU9OTlFUVVVUVFJUWFZaXVxaVlZRUldYVltcVlBTVVVVVlhUV1dUUlJYVlZbX1teYF9WX11eYFxcYGBfX1piYmRoaGVkYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST01QU1JVWlVTUFBMUFdVUVZSU1NYTU9QUVRYVVVVU1VZWFteXVxbVlJPVVZVW1tWUVNWVVZYVFNYWlRTUVlXV11fW2BfYFZiXGBhXWBiX1xgXWNhY2hpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5PV1NOUVFQUlRSTFFUU1lbV1VPUk5TWFVTUlRSUlpPUVNTVltVVlZUVlpYXV5cXF5WU05UVlZbW1VRU1RWWFhSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZ15cZWBhYGFjZF9iX1laX1tcW1hYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1cYFxgVVxdaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVWlpaU09TUVVVVVNOVVFSWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZWV15aWFFVVFhYWFNWWVxUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXV5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFtVVVdWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVU09XUVNXU1dVVltdWFtZVVpeWF9eWVxZUldSWVhZX1lZU1VVWllZVVdZXFVUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZmRiX2RhX2FgYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFJXVVNSU1hSU1ZUWFhYXV5YXVtVXl9YX19YXFZRWVVZWlphWFxVVldaWlpYWVpaV1ZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYVtmYmhmY2ZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaV1RcVVZXWVdWXGBhYWNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVFJWVlJUVVdbW1xfXlpfXFZfX1pdXlleVlNZWFlaXWFZXlZXWltaW1tbWVpYWV9fYGBkY2RlZWJkWmJmY2dmZV5hYmBjXmNjaWVkZ19nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVVYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZWU1ZUWF1dX2BgXWFdV2BeW15cW15YVlhYW1pfX1peWFhcXF1dXltaXFdaX2FeYGVkZGZmZmJZY2ZlaGdkXmNgX2VjXWZpZGVoX2deY2JjYWFgX19bWFlbWVpaWFpYV1tbWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9dXV1YV1tbXV1fX1xaXWNYWVdcYGNkX1JZWVBXVldYV1ZWV1ZdXV5hYmFfYl5ZYV1dXlldXllYVVdbW2BeXF9ZWV1dXl5gXFpaWVtfYV9iZWRlZmdnYlpkZmdpZ2NfY15gZmVaaWljZmljZl9iYmNhYGBfXV1aWFtZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcV1piZWNhUlxZT1hWWVtZWVdaWmBeYWJjYGFjX1xiXV9dW19eWVlUWF1dX19eX1taXl5gYmJcXFdbXWBiYmNlZGdmZWdkXWVmaGlmY2FiXGNnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXVlhQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYV9jYmJdXFtaV1hqcWBcYF9dXGFjX11YWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl5cU1xfYGNkZGZlZ2ZlZmVfZmZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHt7e3t8e3p6e3p6enp7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKh3NxcnJycW+pwb6+vr7BooqMjIyMjYl+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyJcm9vb29vbLLQzMzMzNCqjZCQkJCSi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4OEg4GCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5eXp6endvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx6enp6enl5f4OCgoKCg4B8fH19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV4dnZ2ent4e3h3dnZ4eXh5en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t7e3t6eXl5eXl6e3t7e3x8e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3d3x7e3x5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d5fnt5e3h8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3t+e3l7d3x5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt7eXx4fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl3eHp5eXl5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZWZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcIqQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uJg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMj4uKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKjIiGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjIiGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4OCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCg4GCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4OEgYGChISCgoKHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFg4SEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OCgYODgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4SDgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgYKDg4OCgoSEg4ODgoKEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGTkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgoKBgYGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIKDgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWGhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4KBg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OFhYSEg4OCgoGCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCBgYCBgYB/gIGBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYGAgYGAgIKBgoKCgYGCgoGAgoKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGBgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOCgYKCg4ODhIKDg4OCgICAgoKCgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhISDhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KBgYKBgICAgICAf4CBgICEg4WFhIWFhYWEhYWDhISFg4OEhYSCgoKDgoKEgoGChoWDhYODhISFhoWEhIWCf319fX6ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgIGAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDgoOEhYWGhYaGh42Hh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYGAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWEg4GHmYyFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4aGhoWEg4SFhYaEhYWGhoeHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhIODgoWGgoB+fn6PiX9/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGh4eHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4ODioZ/gYCFgYCAgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhYSPgoWDgoKCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoOCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWEhZGDhIODgoKCg4F+fX5+fn5+fn18fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiEg4SDhYSEhYWGiIeGhYOCgoSFh4aHhoaDgoKDhIKDhISCgYKBgYGDg4SDhJGSkY6PjouHhYaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWGiIuKhoSGhIKGhoGDkISDg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4OEhYOCg4GCg4OEhYSIkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoGAgIF/fYCGg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5/fnx8gIODgoODg4F+fX5/gICBgH59fX19fn18enp6f4KCgX9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF+fX1/gIF/f36AgIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH99f359fn+Dg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enp6gICAf39+fn58fn9+f4B/fn9/gH+BgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36Bfn6AgoSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoOBgYJ/gYOEhIGBgYGAgH59fX5+fn9+fX19fX18fHx7enp5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf3+Af4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GCg4OCgoKCgoF/fn19fX5+gH19fX19fX19fHt6eXl5eXmAgoKChIOAgoOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGBgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoWEgoKBgYKCg4ODg4OCg4OCgoGAgICBgYGBgH9/f3+AgICAf4CBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYWAgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoCBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeIh4aHhn99gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYSGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359f35/gX+AgoGFhYWHhoeHhoeIiIaGh4eGh4eHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoWAfXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYiJh4WGhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhIWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32DgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4SFhYWDg4OEgoGCg4KDgoKBgYCAf4F+f31+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH59e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42OjYiHh4WFhISDgoKBgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYWGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX18fXx8fYB/gIB+gH5+gZORjIyMjY+KhYaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/fn+LkI2LjI6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYGAgYGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36MhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJGMjIuOjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn9/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaFgoSDgn+Afn+CgoJ/f4KCf4CLj4yMi4yLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t9fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4aChJGOjIuKioeIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx7fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJi4mLiYWIkY2LiImHhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgYB+fHp8fX1+fX1+foyGfX1+e3uDgn1+fn19fH19fX19fnx9fH18fX1+fH59fX19fHt7e3x7fHx7ent7enp6e35+goWIh4iKi4uLiYyQjYyJiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4ODhIeJioiJjY+MioiIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Ign9+gpCEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiNjImJhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX5+gIOAiYyJi4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGDgX5+gIB+foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyJiYeIhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dXSAgIKCgoOCg4WDhIOCg4SEhISEhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAhoKEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFg4ODhISDg4SCgYB/gH+AgX59fX5/fn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBf4B/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f36Af359e3p7enx7eoKEgIOCgoKDgoSCgYGAgIKBgICCgYOBgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOCf3+Af4F/gH98e3t6fHt8gYB/gX9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhYSEgoSDgYOCgICBfn+AfoB8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fX2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn19eH5/f3x8fH59foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN3dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH99fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZxeHlyeIWFhYWDhIOCgoOCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/fIB+gIB/gYCAf32Af35+f399fX1+gIGCgX5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWGhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH+AgYB8gH+Afn+BgH9/fYB/fn9/f319fICAgIGAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn19e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFycHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/gH18fn2AgIKBgH+BgX1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39/fn18fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn6AgX+Af4CCgICAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgIGAgIB+fYB/gH+BgoJ/goJ/gIF+f4GBf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f356gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH19fn5+fXx6fHx7fX17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKCgIGBgoGCgYGAgYCBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIJ/gICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHt8fXt9fXt5eXt6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYSDgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgYKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx8h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKAf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+BgIB/gIB/gIGBf4CAgICBgICBgYGBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH17fHx8fH1+f39/f359fX6Af4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYGCg4B/goGFg4OEgYGDgYKCgYGAgIGCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAgH+AgYGAgICAgIGBgIKDgoKBgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl6fH19fH17fH19fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKChoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCBgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYKCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYKDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SEhIWEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3x6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Dh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KDgX6AgIKCg4KDg4OEgoGCgoODgoOBgoGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gYGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KDg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgIKEhIWDgoKDg4KBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4GAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KDg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgH+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYqJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIR8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYF9gXWBeoN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WCgYSDgH9+fn59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgoN/g4N9gX1+fn1+goOBfH+AfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhoOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9f359gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOGhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB1gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WDhYWFhIKFhYSFhoWFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYWFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEg4GDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WDhISFhIWFhIWFg4aHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn58fH1+e3x8f3x7e31/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYSGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaDhoaFhoWFhoaFhISFhYKFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn18fXx/fH5+fH2BgHx8fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEg4SDgoSHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHiIaGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWHhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4eHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODg4KDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYSFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f35+fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiYaGiIiHh4aHiIaEh4aGh4WFh4OEhYSHhoaHhYWEg4WFh4aHhoaFhoaGhYaGhIOFhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYWGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH9+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIaFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhoKCgoR/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18gH59fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfoCCgn1+f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYSFhISGhoeIh4WFiIaJh4WDhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg35+f4B/f4CDf3uAfX1/gn2AgX5+gX59fn19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7fH1+fX2BfX18fH2Af318hoOGhoaGhYOEgoWChYGBgH9/gIB+f4CBfH5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCfn19f35+f4R+e398fICBfYGAfX2DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHx7fX59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaDhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx+g358fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dXU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXU1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19fc3d3d3d3d3d3d3d3d3drW19fX19fX19bW1tbW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLm0e3Nzc3Nzc3Nzc3Nzc3CUwLy9vb29vb29vb29vrSKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OlmjQpKysrKysrKysrKyskZLCpqqqqqqqqqqqqqqybU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpp49LjAwMDAwMDAwMDAwKmiyq6urq6urq6urq6uunVhXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaujSzw+Pj4+Pj4+Pj4+PjlxtK+vr6+vr6+vr6+vsaFiYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Oz87Ozs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0crJysrKysrKycnJycnJzdPT0tLS0tLS0tLS09PRzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7Ozs7P0c7Q1NLPztDU0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbY19fX19fX2NfW19fX19bV1tXW1tbW1tbW1tfW1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Ozs7RwafTyJSo0tDGk6vSzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8/P0Z2PwJyrm7DQma2Zs9LOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/P07qvq7WVh5yexZOGnZ3Oz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Pz9OfsZu/vsiYmca9yZaZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz9HAnImavdOUlp/O0ZGYoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Uo6KBm8Syn8Kb2q2jv53V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDRxJ+Be5at0IuTnsfLiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q1auvvMDPlMrbpZmz0NuimbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJh3+FoJuRp5mgrZComJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HG09PVnJulpqSooK+noqmc0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg0tHS16iIzJ2RjrrVmpGOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dLPxdTTucfW09O4yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS09TS0tXU09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTY3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q5ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ucm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhRSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtoZ3VaZnJ3c3hmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwsbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m9urq0v7i1t7Ovu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2diXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmFhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcrGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdW15cWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBwsO7ubO0usG9v8bAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pXF9gWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXFpVSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3s7KytLK4vrmztbK8uby2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdT0hBPj1IQ0ZNQ0A3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq1tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE+SUJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKyL7AuLi2srS2srSvrbu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u7+/ubS0s7CxrbC5uLa8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmurK+ysrq6t7e1tbyzr7Srtrq4wMTBu7W8vbeyrbOwr6yutraytLWvqqSem5ycnqionqCoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWjm6OclZCMj4+Qk5CXlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz40OTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGwrq+yp6awpK+utcG6tbeyt7aztKuytK6qq6+wsrOupZ6SmJSPmKCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsaOlqJ6gnJWTkI+RkJiQlpWYlp+Ym5mbo5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7RUA9Mj83NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaSlrqWsrLS8t62zsa+xrrWvr7O1qqetrKObmZSOkZaXmZmcoKKinJ2lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZabl5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOT5CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6kqK6trKurr6qvqZ6XnqWdnqWmpKGin6agoq+rrK21sramr7Orqaq0sbGwuK2noZydmpSXmpqQjpGVkYyOjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKwtKmxr6KZnJ2eoZmbm5qYmZuUlpuWmJykoaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5VTFJMQTc9Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0+NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho5+doKCjoKKvr6yvsay2qK6xsKimsa6trLCnn56ioJeRlJugnJmXkpOfnKGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7issbSkoJ2ln6yhoaKgoJqYlpagm5uYpKGgnqShn56anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTEc9S0g4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjZOemaidrp6nnpyhnZ6ampKZnpyhoqCgnaKgn56fqaunrKmqtKyrrMrApKuoqqyqpaCemZKSk5iYlpaVjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oqyiqaiyqauop6iamZ6aqqefmaagn5+nqKWknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKafnp2dl5iVmZ6bnKOfn52knpudnKWipKOiqrCspqjUtKWsr66pq6efnp6hop2enZqcnJSTlZSenZiUhZ2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLO7xsO8w7y3s6mzraqztK+zrqquo52rp7axrKKvpaCjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHJra3VycGhXW1FFVEhESU9IPkVBNEVIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpJ2Vm5ufm56cn6WmpaCjyLSyrqekpKOgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Aw77HxsK3w8nJwsDFvrm0ubq0u7ewtbKqurGuu7e+urqqt62rqri6tLyurrmjpqOepqWio6mmmZufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR9enJrZGhveGpkWltGS0xFRFNMREJFNzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlpqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkqCfkpmfmZKamJ+Zj4misbOooJqdnJ+empeYl5KMj5aXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zT0NPTzMrCxcbHysfOv8jRzMfFxsTBu8PAvr6+tb2zrb+/wsLGxMfErr64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURDQDU1NTg6Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6ydn66mpbGqxcbMzs2/sMGopaisraqhnaOfnJ2aqZOaoJq+o5KOloyCi5qpsKqjn52gm5iXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K0tfR19LU1dPTyMzHzc3J0szO08zFx8nKwcXLxsjIxb7CsrPIxMvKys7Fyr++v7zBx8TMzMjJv8O/ra+zqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/enJ1dmdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjJAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo5+ko5+gpKyblqevy6yMjZGLma+vpp2dnaGloZ6blZSWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTSz9HD0NPW2NXW0svJztHLxs3RydLV1tnV19PW2M7Sys/RzM7QzNLPv8fGysPMzMvOz8XGx7bAyr/RzMvPxcnHv8PDyM7Mz9DPzcrIzri3u6ifpaunnpieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU7ODY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopqppqKmq5qjsLGpqLXQ1Nfa0sfGy7S1wsWxtqiipaahoqu1p5qvxMalhoagr6yclZignJuhop+cnZqVindpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNDO09fW09XQz9LT0cnT0cfQ2NfY0djS19nV1szPz8nN0cvOz7/FwsfFzs3R0NHIy8zAysvF087LzsjEycbGyMzK09PR1c/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NTQ6PTUyODU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr66qqqudpq64qKu319TV2dnRztDAvMzJt7+vp6upo6SxtbKjt8u7m5Sqq6GYlpiam52gnpmcnpN+cWVjYl9fYV9fYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvSzdXU0srPzNPW0tHWzc/V1dHG0dTK0NTV1s7S0NjY2NfLyM3DyM7Mysu/yb/HyM3Oz8vQzc7Lzs7Hys/Qys7KwsnGyczKy9HSzNPR0c/Qyr3IubCuu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bua2FkbnBhV1xaSUZGRE1XRTtAPDMzPD04Nzg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snnri2tbWtpa2uvrSwwNjS19rc1s/Ny8TT0MLBsaqtrqulsrG4qrvOr6OenJaTl5yen5+dlJeYlIlrXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVysDJwcXMwsjJwszDxcjKys7KzczQzdPLxcjPzMjHysTGwMXKy83P0cbQzs3NzM/Fx8C3uL3Dw73DubOyvrG7w8S1qpilopmWkZWVkouUjZqRlJSPj5SCiYV4cHFrbWdgYHFoWFhoVkxGTElQUEI7RD47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfCuMvV1tna29jMzc/I1tXFw7extaqjray4ua+/yqGXjo2YlZCTkpGWlpaQjHxmYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL7Gyb3Cx8nOxMHHwMfNx8PLysvPx8PD0MjGwcXHxL7Ax8vLy87CysvIx8zQxMXHu8fDyMjCz8G9vL+wwcnHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd250ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJulsrGsyc3KyMS+vbrNzcfQ1dXZ2tvY0MrP0NLUycS5vb6vp7eqvbi3w6ySjo6Xj4aDhISCfoWFf3RgXF5eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsjGwsPAw8fKycjKyMHFzMbIy83JxMLLycHCy9DEy8i/ucG7xce9v8bPy8O/w7vJxsi7yMbEysC9wcvGxcS+xby8v8PEy8XEvMDJwsXH0sTAyL/KycbHxtDDw8bDr8TLx8PKt7+8urSprKSlmJ+YrKOhpZqjoJuUe3ZzdGZpWmFubVpbWFFETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvP0czHwsPHzc/PzNXQ1tnY2dDM087P0MrDt8bAtbW7sL+2uLCRjJOYh3qAhYaAdnh1cnFfWltdYGBiZGRkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsLa6srKzsrHCvLy8urjAwcHFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDvrzBzcPGvr61wb3DurzGu8K5s7zFxMHCtr+1tb2/usvDvLW6yLq/vcvDwcXCxcjGyMbQxsLMx7LHycPOzcHFw8C9srewsqeoqLmwpa2wq62slHl2d2pkZ2Bob2NWXllKRUpGSEpBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc7P0snRxtbU1tjOzNDHzMjKxL3JwbG0uba5tK6RjYqLhXmAhoaAfoR8dHVkXFxdXmBgYmNhYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLS3tLKztLq1vbG3sLWvsrvCvMHEvL+6tbO6vsC4x7m0u7bAwry4vcbBw7u1rrK2ur60xLe7tau4vb2/vbC6tq+2urLFvLauu7+0trTFvb7DxcDDxcbIy8XAxsa7yMu/z8rHw8bCw7bDvb22ub7Hv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkRBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDMzsjLycvKy8XRztPQz8fJxcnEw7+8z7yyt7u4trWbjoeJiXt5foaGd3iCfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7i4tbCrrKeeoqqnnquss62pq6m0rbawsqmupqyyvLq2w7m6urGrtbm7tMK6sL+xvby7trzHucK2raqosLG/tbe8r7CnsbO0u7yrrbWlrrauurGwqriwrbuuu7i7v7+9ucK/x8PFwbzGwcjLuMXHxb/Gw8O5xMbCu8bJzMuzucK8urKIcnZ2a2lhYmxoWVdXW0FMS0xJRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs7Sy8PGwsXQx87CxMfAxsbExMvCysvCw8DGv7m7usm2s7q7tLOqkYmPkHx5foqGenuFgXdvXl1cXV1fYF5fZGNiY2NiYF9dW1taWl1aWlpaXGRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCkpp+qrbW2sb25r7evqK63tLS8uLS8r7i5tLG8wbHArqWooquxsrOnvKqrqKusrbSzpaitoaSuqbKlp6itpai3rLCyt7m6u7G7vb6+xL+1wcDHyLe/wMS3xMK/u7/Ewr7EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWVJTS0ZGRT4+QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7rEsLawm5mVnJiqqbCxs7W9r8XR0M3EyLq6zMLMwLzKuL/FwLvLucLFxLm7wry4trzEt7S3uaywlYOJjYF8foB+eHR/fHN3Zl9dXF1eX2BeX2NjYWJgYF9eXVxaWFpbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSdpJuYkqGjqqOin6Wlp6Wsn52bpKassq+2t6ewrKeqtKq0urG2ta22ubGvurmxt6SfpJ+msaerqLmqpKeoqKeyraCnpp+bpKWsnp+npJ+gsa2trLK0srSwtby2u8HBsrq+w8GyubrCs8C9v7W4u72+vMLHxMLDv7/EoIN3cGthZl9rb2BVWV5ITmdPVEdFSkY8PUA9Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW1vbi6wbu9taCelJ2hprq2q7Ozu7PE0MnLw8e5uMnCzcC5y7m8x7u1x7q1wsWxvMS6ta63vrqvsbStoYSHh4J9enZ0b21rampxaV5gXVxcXF5gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXl9kY2JlZ2dnam1viJ2poJeVmqGWm6KYlo2eoaKmm5+fo6Whp56bopufqrCtsbWiqaqpq6uktLmtt7CssrWusrWusKqfnZ6jorKkpqm4raKmpp+orKqZn6CemZ2fpZqao5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7KyubK9tLaxsbW0v7a9wL3Dwbq7vZeDenJrX2VeZGRYVFhdSVdcS1BHSUlGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xtDIycHHvLzFxM+/u8m6usG6tMS3s8DAssDCu6uos7i1pq+wpoqGiIB5c25wbmtiXmJmZlxdXl1dXVxdX2BhYmNjYmFfXFtbWlpZWFhXV1dYWFhaXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaRnKGiqJ2bnaWmoaWcoKCamK2ura6yoKWiraumobSwsbGsqK+yp7qzprahop6bo6Gto6Gptaqio6adpaajlpiel5manZ+al52cnJysoaumo6Smrauzs6q0sLKqsrm0r6mvsrKyt7Ouqayusriwura5vb+3srGUhXl1ZV5lXltZVlNaVUtbUUxJRUhLSUI9P0FBQEE6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbe9v7a+vL+ynaWjmKWxwrW2va20uMLNyMfBxrjCwcjPuMLGv7W8vLbCubW9v7S5vbmopK+5r6WvrJl9hIWAeXBydHFoZWRoZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYWFhYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnqmcmpqqpq+wq5ujo7eqoJ+uqLappqetsKO3sKS3n6KbmJiqpqGarLiwoqGknKKgoJOVoZSVlpuYl5aXnJWfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxr7Cur6anp7KusbSvvLS6t66jlIF5dWReYVZZV1NSVEtNXkxQS0dHTExFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri9rp2np6Oqu8C9wLmutLjCzcnGw8S+x7nJzbTDxMOwvr+4v8C5vr+4uLu1paWuuaSmn6KIgH15cmptcnRwaGhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtbWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKannpyfpZ+qr6afoqO2qKChoqi0oaWnpK+lsK2stZ6gnZWUqaGilKyxsZ6io52dmJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpaukpbCnpaOrq62mqK6vrquoqqmzpaarr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFJIUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuxuKyepKett7u8wcW6sbm1xcrLwcTHx8i3x8W0xMHIrrm6wbvBv8C8ura4tKSlr7Obn4eXiIB3b2RiZ2lpZmdpZ2ptYF1cW1paWlpcXVxbXF5fXFpZW1lZWltXVVhXVFRXVlNUUlVgYF9gYV9gYWNkaYGTk4iQjpSSk5yUlZajmaCWnKCloa2lpKOio6GbqqulmZ6lsamgoJ2lq56noZ6sramorq2ioaKUl6ObnJCrqLCbn6KfnpeZk4qekY2Sk5WQmJiTm6GinKSgoZWgoaSmm6OrpaKkqqSrrqWtsammpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlVRRlFPSFpcT1JJVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7KwrLKtnaenr7m5s8DIurXAr8bJzbvCy83It8u/s8DGy6+0vMa6wMXCvL21uLOjqK6smpaEjYN8dWpqamxoamxta2ptZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV1eXl9fYmRtjo+EkYaQkY6Zk5SSnJqinJugp6iqqKqmqKWjmKSupJSZpa+pn5uZm6Cer5mbqrOfpaafo6OhlJOblpaSqKqtmpyfoaCalJCMmY6LkIySjJaUkJ6hoKOcm6KVm6CioJiiqKOiqKugq6+krbelo6SirK2qqKuusreyvbWzq6+Yg3NzaFtYWFJVUkVYTFFbWU1VTlBMUFFJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaivrZupqKy3tqy8yru2v6zMx8a5ws/QyLXGvbm+xcu0r7vDu8HDwry/sbatpKisqZuTg4F3eG9uaW5ubnBoZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt+jJCKko2XkZeZoqCbn6qppq6qp6+jp5mfrKCVlqSop52XkI+anq6Wl6eqmZ+clKWhnpKQk5KTlaerpZqZmZ2dlo2MjJSGiI2DkIuSlJCgnqCjl5WflZqgop2Tm6Wlp6iooLGwprC8p5+jrLSqrqewtLC5tcCxrbGrkH1xcmJWVFZOUklHVlFSUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6u8LL0cyzuLq+wMTGtbO2vLG5usK8v6+xq66rraiZnoVrZ21ucm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CKmImUlJebmZ2omp+ppaSqnaeYoKWbko+eopqXloWEkpqjj5OinJWWlYeimpqTi46LkJmkqJyVlZebkJKHlI6MgYuNgJCKkpKRoZqfopWUmJiVoqWZjJikpqimoaC0sqeyt6Gdoresqa2ksrKmtbu1q6uxo4h4cWxdTlBRTE9DTU5OUEtGTk5KSk5NUUlNSkFHS0hHQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSno6mloKmlpLOqorLDtbWys8fGuLvEys3Hta+7v7e6w7KxrbWhq7TBuLmsqKmxrKyck6N7XmBnc3F2cWpuaWVoaGpfWFhYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU1NS0xTV1dWWFhZWFtdYW9zdnGFiIKIgJGDjoqUkZOdoI+am6Kho5iklqGblY2HmJqMc42CfY2XloWQmZCTjo57mY6cjIKKf4qYn6KekJOYloSOgpN+fnSJjnqQhpKQkJ2amZqQlZCdjqKjjomaoKGjo5uitK+sr6yfmaW4pqWwobCunLC7qqmvqpmBdnJiVU1ST1BNQ1NOTFFNQlBRSElOU01ISkpDSkxGS0o8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTE3NjQ3ODk6OjY1Ojg3QTd3t6KjtKilpqijpqWmpqazp6W0wbivtLDKxbi6wc/Gv7SuvMOusMawrKaqlKKsvbaurp2lqqqok5GecFdXYGhnaWhpbmNqaWdiXFhXWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeLk5Cfl52VlJaUjpaJf5OJXztXb3uLlImAi5KMj4WGc4qEloF5gnqFk52Ug5aOkI+Dhn2SeHJvhY1+iYCQjY+XmZiTio+JnIeel4eIlp6aoaCXp6+prainnpets6KmrZisq5intKKpraOSfXJtX1tOU1JWTERUSlBNTEZOT0lFTFFNS09KSU1QRklJPDc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5ebego62hpqaqoKepp6KpsKintMG5sLWwyMO4tL7PwLqwsLfEqa3IrKahnIWZoLirpaaUo6Khn5SMk2dRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXuCdFBCQX+VkZF9iZSMhIqNmo2VlYqSiIWVhniIf2BKUW54ipGEfYSNiYV/f25+f5R3dXV3hI2ZcFGNiIqHfH54k3Zod4WIfoqIlYqNkJGWi4SKiJSEmoyBhJKblp6clKSjqKmlo56bsKqhpKSQpaqWoamcoqaoiHRsZV5bSFFRUk1JVU1TSUxLT0lIRktOTE1US1FRT0ZIQjw3Njk6ODo7Ozg6Ozg+Pzk5Pj04Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXe2m6KnnZ+hrqGnqKWnqK+tqra8tri3s8K8t6i6ybm2qKm2t6y1v6qhmpGCjpivnqCXi52UlpKPiIpjTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+HgXyFjJKBkpmLj3uGj4B1f3hzbnVwdI2NgXl9iqqFeXpodnuOcHJteIGKjJJ4eoB7gHZzcpJ3Z3WEhISEepWJiIqMioB/hIuMf5SDe4CPmJWclZGfnamen6CdoKmln52YjKekk6Cflp6epH9xZ2BcXEpWT1JHS1hST0pNTVJKSkpNUEhMUUxSVE1FSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8Ozd2rpijoZicn7Spr6mlraywsaq9tLK7uLa7tbKgt7uzq52eraqrtLKknZWRl4SSopWbioGVh42IhIWBZEtJSUhHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gXZ4gImPfISYkoFyh498dntva36tfHOQin97hpKBfX90ZnZ8hWxvaHN8iYyHgGx5cX1wbXWPcWhxgH2OcEOKhIKDhX53d3qLhX2LenV+jpKPmIqSmpujlpmdmp2eop2WjYqlm4+el46WmI92bWxlYlpXV1RRSlNVVE9QTlFWS05LTk9KUU5ITk9LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn5+WoKavrK6rqKmxr7GrvLisu765s62om7GnrZyQlp2nq6ajmpySh5R9jZSRk396iHiDgH1+f2RKRkdGQUBDRElMTE1RUlBRU1VUVFVWV1dXWFdYWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hufHmIkHl8i4VvbYyReHN4amqAgnKWkYuBfZaASZKYbmh4foFsaWNseYWQkoZrc2x8bnJ7hmhtcH5zjYiEhXp9fnt2b3RzhYJ5gXdwfI6MipODlpeYmpCTlZaZl56XjIOJn5GKko2GkJZ+bWhtbm5XVVdUUlFZT1JVVVNYVU1OSE5KTU5LQ0hOR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6lrbCirKqota+urLS/q7zCv6aimpWlmJ6OhYyWoqOZmpOWjnWQfYSKkI58d31zfHd0d3tmTkVHREA8Pj5BRkZHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpzQ5lvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4l2gYiGdGyakXRze2prnY9NeYWSiYSOZzF2hnNsfn2DdGZldH6Eg4WAZmlsdWtwf3xncHB7bpKNjntzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlI+XjoB5iJeIhomGgJCHdWlpbmdkV1FaV1lZW01QVVZZWU5JSEVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiZkZqWpKiunrKfprquq7KwwrG7w8eblo+VmYuNhnqFkZmVj5GNkolziIR3io+Mf3Z3dXd2b3hzaVRGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bHKDgYWBeoSGhnlyoJV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8hnxzjK2NiIBoZmJpbnJtcIN1aW9YdW+OmpJ2bH97fG1xbXB/enN2bWJ2hH+GgIWQkYqLipKLkYyLj4N1eIuPgH6DgX6PeXBvbmpeWlxdW1lYYF9TTltaWVhMSEpFSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW1qa2xrsGyu8HGl5CMlJCBiX1ugpGSiYSLiJCHdoOFbpeKjH95entxe3R8a29eSlBHPkA3NDQ4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fm13iIh8fYWDf4x+dqKZeX6GgYSZhJucYYaqn52KgpCNenaIfomIjXOKl4+De1xkcXR6e3eKbGdpYXhvhY+Cem6Bd3SEenBzeXdrbmldd4d9h3yIh4+Ai5OXg42FjYd9cYR/hHx1d3t9iXVucXJlZl9bWl1TW2ZeV1FVWFxWR0pLRExHP0ZAREM+QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMeIqAlIyRnZ2fppGgq6CxqK/AsbrFupaOkZSIeoV2a4CMkoN+i4SQjnmDgnSiho1/f4KBc4OBfWx6bFNXTEBFMjExMjY3Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxxfI+MenyJhn6Xh3ahmYiHj5KUpY2sqUiGrq+vi4GAk4qCi4GEkaiHgJiYipxzbHyBhod9jmhnZ3h+boWGgoVxhIVHa4B3cXl2aG1rX3Z9g4h/iIWMepWenIqLiJF/e3WLdnx3bW93fn9ycXBqWlxcW2NjWGdlXFVQUFdZUERMTEZPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFiJGPlpiSl6CdrKGmuK+zvbOXjZKLmIt9dHB/iZN/fYyDk5V9hn+HpYiJgYOIhnmIi391hnlfY1ZLQjYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYGEgoWRk36FiZGBmpWCoaGXlZuapa2Tmruxp7vHw6iLjKGljpOJgZB7coOdn5GcfnaFhYqPh5BpaG+DgHSMhoSLcYaCd4eAe3aFfW52dWeAlI+GiYiHiIehq6KWiY6Yf3uCiXp6b2dreH14fHFpY11aWV1pXGBmX1pPTE5YUlFJUEtETkdDS0RDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDQ1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnVwZ3iDe4CMgIGQj4uamqScoaymq6+wl5GRhKGUhHh3gIyUfX+ShpOWf4qAkpuOhIGCjIuCio6EgIqAbHBqXUNBNC0tLy8uLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlEPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6CgkqOqpaOsk6i2oqjBw67Hr3i6lJp8jKGemISShYKPoZ+TmJKEioWPmJGWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGWhpOKj4+WpbWpm42VooOHk4R+f2tqa3x+foBxX1xiXllmalxra15YS0hPU1FOTUxGSVBERE5GQkNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwg3B1h3F2kYZ+l5aalJ+fnKegqpaTmJ5nZaSafoWTkXmAkYmRkn2KhZmSkYOAgIuNiYaRh4SIhXh4f2dNUj4vLi4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZuopqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMi3ydHPvpugcGmrqZ+Ek5KFnKGampmnkZGIlaKamnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZSenI6Tlpmkoqa2sJ2RmaiIl5COgYhsc3N7fXpvZl5bX15gZmNgZ2ZcUkVLS1BPSUpMRkZNQ0dNRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTM2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYyQUBpYV5QcXVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mHmI14go2Ljo17ioaPkI6Cg4CJjIqFk4WDhoiBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49RkdBQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKeotKyxt7Kyrbuxs76cs8Ssu8nLuMS/uKWjsLKsraqji5aYhaamoKKXgqaZjaKqqKSHhZOjoKCqoKSpjpyxi5Wjp7e7m6CjsJOjnaOekaSiq6+ts7WilaWqiZqKk4qVent+g3xlX2ZbZGBdYmNeZmZfW09ESkhUT0ZITEZLR0VGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljWGpwWHqFdoGUhYiCm4OSkI2T2sidlnNWl4iPiJyPfIaMj4qKeoiCh5GOg4WAi4WFiJKGgoSJhoeHh3FuYUBFNjQ8Mi8xMTAtLCstMS8tND9EQU1VUVJUVVVXVU1bUEdHRDw+PkZIQ0RANzs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHIxKuzxbass8CzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsLGbmZKan4inr6qklHafpJehq7GzmJapraiutbuyuqyvtaKxrLG1vLe1rrWgp6ejqJupsK2yuri4p5y3qY2lj5KToIZ5gYFzV2BiVGVgYGJfX2VfW1RJREVMVlFJSkpESkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxbWlFiZFd6dXGBlH2EhpN2hn6AjHu/u6O8grSUk46bj4SIj5OJiXmHgIyTjIeFgY5/gYmPhn+FiIWKh5F6eW5dVkBFTjw2OjQ2QUI3NjQvLzZDSENRW09RVVdVXFdPX1VJS0pBQD9HS0ZFQzs+QDdENz9CSkpFR1dUUF6Ppa2jsbTDtrjBzMq2u8S9s7TBt7jCtb+wt3SxtKa6xaSwxrmxs7G0qKS1tqqxoKKWm6KRpbGtpa2rp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6uL+3ure5ra2xprGqrb6wvbvCwqyZu6iVrY+YmKqJfoB6aVZhX1dpY2lkVVtjWVZUSUhHTFFHRElKQUhEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZRTEFMUldUWVZad2pwf4+EgY6FbnpyeIdiuKGao4mVlJaTlJONkJeSh4d7h4GNlYqAhIGKenyLh4Z9ioKBi4SVfXh6dWVPXGRHRUw6UWRhW15TRj47SFBEWmRRUVlYWmdaVGBhTVNPRUE/SUpIRUZBQEM9RTZCPkhHS01TWlRelK+4tbq5ycC7vcrMu73Au7i1vLy3vrW6ssZgdbKlsZqeq76qpairqqSisrWgq6ielZaemJ+upaempZ+kk6KnsLOosrK8tsG908nJ08bCxczCysPAvr2/u7y3tLC5t7fDusa+w8mwnrqqoqyPpai2iYB9b11gX1xVYF1oZVJYYVZSVklFRk1LQD5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASU1QUkxRXWdtbHGQjYWQc2xzcnOI1cC1maCNlZmakY6XkZaWjoaHfYeDjZaLf4N/g3h7i4SHe4t5gYqCl390fXpsZXB2WV1cUGVlYmBlZF1bWFdcTWRtVVJtbl9vX1hnZVVZVEpEQUtLSEZISEhIQkk5RD9IS1RUVl1aXJO5wLm9t8bAu7nKy7u3ura4ubO4tbWutraZZHWpnq1wXqKtnJihopuknqullJ+fkJSPlpiXqJ+ln56amYOknaykqrCtt7C8uNTQztbPyczSzM/OysfAv8LKvcG9wsDFxMbKv8nPtKS7sbWwm6y5vZp9d2lbXlpYW19YYWJRW2BTUUtDQkVGRTxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LSYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RGS09EUlxZaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQjIl8gYNze4qDhXuKdIKKhpV/c3t5bG11fGlzZWlsaWZqaWlgZmlobVptdJetpLyHh2dbb2hdWllUSEpOUEpLUUxUUUhMQUpHS1BfX2JnamKXt8ewubO7vraxxMe2sLmxsLuss7Gnq7esjbannpynmk6ano2OoJaRp5illYqTk4iRiY+RkZ2boZiblZaHnpmmmqyvqK+ns7PT1NTW0cvP09TO08/MxsPK0L/KycvJ0sjNzcPR0rivxLzEuqa3u8Sif2xhWltcV19XWGRZT1xXTlFDQklFQ0k7QUQ+QUg/P0I4O0Q+QEk9NDY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CQmYNocW95eYOgqp6ml42bm5iLjZWRmo59iYyFjoqKi5CIfISCcH+HgYZ7h3KDkYuPfnF5dWxweH9ye254c2xpgHBtY2ltcHlpd31+y7/C36dtY3hvZFthYEpQUlVOWV5QXV1OUE5UUVVUXG5ud4Nylq64rLSosLarrb3Bsau1pqW5p6yuoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSKg5OVmJeUm5GbmJmZnp6rrKSnoaysztLV0c3M0tPT0NTRzsjD1NHIztLT09bN0tHF0tbGwc/IyMOpv7jQnHdsY1tgW1VeUVxaT09UUE5IPkFHQkNGPEFCP0ZFPkA/Oj09PTxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bXdwfX6AoZ6eoYuNmZOTjIyTkJaFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBwd3Nsc3x8d3xzgnhxa4BycmlvcXp5c3u+y5p+jLGDdnKFd2hhal1DWlpbV2ZkWGVrVFhdXWBjXmN4e3+LgZmqpKSioKGop6qxuaumtKOirqKkrqKnsZ+JppuVk5GKko+IgpSJa5WijZmEgYZ+kYODk5eti5WNlZmOhZKQnZensKKgoKSkqMfNz8fBy9DT0dTSztPNxtbTzNTY1tbY1dfVydTazcrY1tHKrcTDzIlwbWBeXVZSV1FbT0pHSklKQDs6O0VDRDxDRD5IQz9DQjs7OTw5R0M0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKJgZ2VnpSFi5aJjoqIjoiPgHiDlJmLjYiIi4l+g3hze32Dh3eAe4eRl4GEb3hwbXV/dnh9dIZ8eWyHdnVufXaEdXl7nbWMPEGKxqV+jXxqZVdJQ2VjZmNoamRveVtfZmhrbmlugISIkYyen6CekZeYn6SkprKkpbOgoqWeoamgorGch5+SkpORi46LhoOPhH6cnIyNgoSFepR+gqqVo4ySipiSi32XipqRq7OYmpunnKe9w8W5tsXN0dDRz8vSy8nUztHV2tfX2NTZ2M3Y287J2trS1r/MzbR1dGxiW1hRU1BYVUVGSklFRT06NzpAQUI6R0VARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MSooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXOGjXyXkZ2LfoeSgomGhYqDiH15hZeXiY+Dh4aHeoR5cXp7hIZ1eoaOjZ16jHB9b3B6f3J7gHGEh4Bujnp1d318gnV/fIeJsHRZqsK3jZKBcG5jPV5ocnBxcG54d4JlaW9ydXhye4uHjpOSm5agloiMk5ugm5+qn6GsnKKamp+mn5+smYyajJGSjoV9iIeDhYuOoJmTiIOHfm2ZeYSZhoiTjI6VjIZ7m4iTj66qlJWXnpimrrW8qK29xsvIycvLz8nD0srU1tjX2NfU29fT2dvWz9va0dbI1cyTdnhmZVlYTlFSXEdCRUlJPkE+PTg6PT87Pkg9QEJBQURBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NTdFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmt2gIhxkZCbgHmAjn6DgoKFf4R8fYSYjoeLfoaHgHeCeW57e4aCdHqSno2hdo92g3R1gX10gIRvgpCCb5KEdXyBhXp2h3yJuMalw8q4gpacj3hwZU5lY4J6gXeGopCLeXl3e4N/fIR2bZSWlJWPmJGDiY+XmpeXppyYoJefk5KXo52Zq5aRkYuOkoOMhYmIgYaQkZ6cmYmFi4GFl3uIiZ+XkImNiouCfKGIkIu8oZiTl5mcqKWlrZ6ntb7Av7jHyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztzGhXh2ZGZiXVJWVVRMS0RNRDs9PTw5Ojw+OT5BNz4/QD1APjw5ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs6OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVtodHp5bImNknd2eop8foB/gH2Fe36CkYqFhnqFiHt1fXVtfX2GfnR/kp2Rn4OSfIZ9eI9+eYuKb4ObgHSZhn2CioV8fpF7kKmOkMOgvYybpJx+ioR9iXKMi39zppqcmZSFe4+RiYRpR3GhpJ2Mi5CShYiLkZOVj52bk5SRl42MlZ+dlKGUko6OkIx+kI+Oi4SIkpaan5+JjJSRnZCCjH+mmYiFjoOFhICkhoqLuJidkZSWoaagnZ2do662urSrv8XK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbt3d2dWhnY1ReWVJPTkhDTEM9PT45OTs6OTk8PTZAPj49PTk6OjszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PERSU1JYXlVYZm1tbWmBjopxc3iKe3t/fYB8iHt9e4uHg351g4Z6c3p0bYF+hH13hpuhm56UkoCMh3+Yh4Cckm6IqYV6oIt8kY6DiYScfpqRiY2jop+QpK+gi5GLhouBkoZXcq2Ln6ycj4OYnJCQjluDopGCjZ+TlYyGiIySk4yUlZWQjI+KiJabnY+VlpGLk5SGgIuJko2Kip2XmaOihpOdlaCKioiOnJCDiI+Ag4eFpIWLkLOYnJKUl6GhnpmSm52nsbispLzBx83Hxs/Mz8zP18/R1K7W1dja2Nra19bZ2Z1tenJkZFpaVlFVVkNASUQ/Pz46NDk6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieGxifpKDb213i3h6f3uBfYZ8e3aGhYBzcIWCe3V3dnSEg4V9f5Kmop+mopeKnZCUl4qKp5dyirKNhKeShJmUhZqMo5agmJOJm56ik6mwoJGVkI6OiJWLbo23hJrEyLKcoqWbnZiWkbGQZKTNyJWOhoeJkJKOjZOUioWKioaWmpuPkJSTh5WYhH+Pi5mIjpCql5ekooiZnpWaiY+Gl5iKhY+NgX+Gj6WIjZOompeTl5mhmJ+Zk5yaorK0paO8wb7HxcXJyMnCytPMzdSo0tHW1tbY2tTT2s6AcHxlYFtcXE1JU1hBQkdEO0E+ODM3Ozw6OD02NDo6PDo3Mj85OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGPfXxtfoh4en57goKDf3Z2gIN8bW6Lf3p8eHh8hIeKfoujs6ejqrOil6efpaSWla6ig5G4lZGzmoyhoYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmZehwI6jybmrm6OmrZmSm52ynYWFqKKcmIWJiY6VjYuTj4iBhoeJk5iVjIuUk4aVmIaEkZCcdZGYspaWpKGHnZqSj4qQipebiYuWjod9jJieiZCQnJqZk5iXn5OgnZSem6CxrqKkt760xcfEvcPDv8bNysnSps7N09LR1tjT0Ni6cHdzWl5TXlRPSElNRUJDRDU+Ojc3Oj88PDc9NDM2Njk3NzQ9NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdOW1xZSmZgO0iEi3p6boWGenyEeYGGgX5weHx+fW9yjXp+gnx4houJhoSSp7usqLK9r6Wts7Ooo6GwrIqatZ2iuKWVraSXqa24p6Wjn5qpl6mjrrCqmpmclJWRl5+Xmru7rsqhara4q7CUmZ+jrJOXvaNeqrKDioqNlIeQfI6OfYOGjo+UlYiIkpaMkJWNi42WmJOdmbSXlaudipyUko6RkoyZm4qSnpCLiZWfoY2UjZianZKcmJ6UoaCUnJ2lr6ihpbO4q8LIxLW6vbvFx8fC0aDGyc3NxdfW0cvToG54ZlpYUVxQTkVDPjxDQUI4Pzg4NT9HPTw2PDM1MzQ1NDU0QjM5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRHYmBicEo/i4p+gXOGh32CiXWDioJ/bXx9fX9wd4d3joKHe42PjIaMmarCwK+9xruztMC8tK2rs7aMqLOtrb2rm7ukqK25uKunpqKipKKpr7Kxq52cpJibmJeeoqalkqS6r6nAvK2tsrmlpKh+iIacrbywg4yMi5CDjoORj3qBh5CNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpeOkaCRiZSbpKyUlo+UnJ2ToZ2bmJ+hlJqep6akoqSws6fBxsOvsLq2xcTCv82mx8THw7zW0c3EyoZycF9ZV11ZTEpBS0BGRz5BP0I7OjU+QT09NTw2PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRD9DRlxlR2BpZ1pdXJOMi4h7h4yHg4x1hpGKgW9+e4F/cX6Be5V6kpSUmJCTlaezxsm/wszCw7nHvLuvq7m7mLO3urLArqXBpKuwvL2rrqujo56nq660sKqcoKqcoZuWn7C1p4ujurq2wbysqZyypaSolIWOqcTDpIKLj4eIhIaVlI16g42Rj5GijIyUko6Jl5+Yk5mVmKagrp2MqpyOlo+SkZWVjZCVkY+hlIaXn6CynpSalJ+gmKSfmqCboJSYnqWjpqakr66lwMTDrqi3tcnCvrbPssS/xLyz0crIwrRydmpZVlloUExIQkxLS0pBQT1DRDw1QUQ7OzM9OEIzMzIyNjJBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWU5lXGZUY2qZjZeKjIiTkIaJeYeUkIFygHyNf3iHgoKQeo6hlqiampi6vcfIycHSycrCzb3Cs628vqi6v727w7eswqmss7y+qrCqpKWkrK6zrba1oJ+vn6WimKOzvambqL3BpLa3sKyTsa2srZeHmqmnpZGCjJOllYmBdoqReYWNkpCen5OPlIyPjZSjmZaclJSjnqqfkaWajI+Pj5WWiHyPlZKSopqVn6GctaWQnpelo6Klnp2mmJ6Wl5uko6mnorKsqLzAxK+lsrfMv7mvxLO7vsG4rMLDwsCXandgVlVaWUlKTElGRERIQ0JBREw6NERIOTs0PDdFLjEyMzUyQjI1U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+akhfWGFaZGRWno+djpeOnpKJin+KoJOEeIV/lX9/kIiKkICWoZmupqSYwr3Hw8fF083Ozcu8wrewuby0vcu8w8G2t7yts7+6vK6vqKCpqLatrqmyt5ueraKnoZ6rt7iqpa+/xbG9ubSoqrW0rq+XlqWsqKCRjpKyxaeVjn2SlX2HkZmQqpmYk5OPkpaTpZ6SnZmUoaOinJifmIuMj4+eiFqQlpeSl6SZZZijn7OllqGWrKypp5ueppeYlpeVoKSopZ+2q6q6u8O0pbO1y8C4qrassru5rqi4ur24gWlsWFVTU01ESlJNSz9BSEVESEhIOTVFTTs+OD1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs9QEJGQnBFaUlSZWJMRqWUm5eil6mWjZCDh6aTiIKHgpyDg5WQkJSPmqKfr76voca8xMTGxs7OztLKvru2sbq7u77PtcO9uLm3srG1s7izq6acq6y5qqmor6+Yo6+kp6SltcCwrKy0vsO6wLq0qLm1ubOvlqWtrq6ki5OVoY10wZp9l5mEjpaajLGVm5qVkpKamqWjlKCbl5qpnJyhoJmKjZCWnGBKlpyalZqlllWXsJ+vnJ6klK+uq6WaoKWUk5iYjZygp6KZtKmqs7u7u6qwsse/uaarq62ysqOhsrK0pG5rY1pYTU9KRE9PUFE7SEtJR0lDQz46S1Q/QTo9RU0wNzU0NDpCNDRNV088SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGYh4uolo6Ik4Wfh4Sdl46doZujpLXItanGucLDx8rJyMzNxr66s665ucHBzLXHusG5tbqwr6+ztaekm6q0taqppq2smqSupaSorLq/qKy2t77Cv765tLPEsrm9rKOvtay5poibl6abdr+fhJmdjpOZmouul6GcnJeUmqChqJ6nn5maqpmhp56YkI2RnYNudpKjmpWdop2QrrKiqpSoqpeqraOjn6SokZGZm4eUnKKelrGnqau5tr2zsq6+ubego6eopaacm62pqYtgY15eUElLRkdNSVZMPU1FTktMQkNEPFFWPUFBQkRPMTg9Nzc/Qjc1VFdOP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH9lXkhFq5WboZ+7r5mUn4yTq5uRkpOJq42Gop+MpK2Uo6O2xr60wLrCwsfIxcLNyMG+ubKvuLTBwsq1xbLBvLW6qqmtrbCjo5iqtLumqaarqp2pr6ejqqu+vKitvbS4vse8t7a4wbK+wbSptbervqWPopeSop+8n4maoJmXnp6Pt5+pnKWim5yhmqiks6GbnaacqKmemZWPlJuLl4mMpKGUnaKdoLWvpaSTr6uZq6qdnaOjqJCUlJ+Cj56em5WppKGhs7S6ta2otbKznpyipZqXlJmqoZ51XlpdXElHRUZMUEhNRUdHQ1NMSkJFR0FWUkRIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5ZlxGQ0OccGJHRaeXpJ+ew62bl6WYmqmclpubj6qWlaemla2smaKrtsTCvL63wcLAx8O/zca7vbmysLizv8PItb+wvLe5t6Wkq6ytoaGaqqrFoqSpq6aerK+roqmov7inrb6xuLbHtrW5uMCyv8K3tbO0r76jl6OWlJuUrqCQoaOlo6OfkL2kqZ6oq52doJuln72imaOfoqmroZ2WjZWek56Hj4SNk5+koJ61rKWblbGnma+mnZmqnJ+NmJSehI2gmpuSpaSamKuxtbGqpaqtrJyYoKCSjpCVqJ6UZmBYX1xOSEdKTUtIRURJQT5RSUE8R0lIW1JPSz1IT1U0QkY5PkhHNUNhWktDTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNDZAOTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROm1SRjxLeGVhVkuimqOcnsWsoZ+snp6uoJKjn5aln6aqrJe2saOqs7bExL2/tb/Cu8jCvsrHtbi1tLCztLfBxba+sbi1uLSfpqyqrJ2dnqWkwaSfqq2gpKmtr6KmqL21pbG9uba2xLK0uLq/s8TBuLius7W1o52llZGUoa6gmaKeqKiro5rCrKmerK2bm52ZpqC9oZ2kmKurrKaimY2an5KfiY5Xf5afpaGguKqmk5i1o5+xoJ6arpadjZiTnYGOn5eVjqKjlpCmrrKrqaGhpaWVlZ2Yi4+RkqSeiV9iWGJfS0hKSk5FRUFHSz49SkI5OUpKTl1RUUk9TFZcOUZJPURNSThIYltMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtOnp+hmZ7DqKWitKKdsqeTq6Wgo5+tqaydu7CorLaxyMXBwrLCw73Gw7zEybyvsLatsLSvvsS0ubGwubSsmaiwqaqanaWhqMGsm6ywnKqjrrGppKi9tqe3u76vt8SttLPDwLPHtLu3q7O2raqippaVlKSsop+fmqirsK+vu7KmoKmomZmXk6KkuKCho5Ovr6ylp5+SoZ6Vno+QjZWemqKep7OmpoyYs5ujrpmdm6yQnpOVk5l/kaGVj42foZOLpqyvpaahnKCekpKak4WLkY2cnX9fZFpmZEpJS0pSQkNASUg7O0c/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TmNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwzNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+joJygw6mkqrOhpLSqlrOsp6KksqyuqbuxrbC1tMbAxMO1wMS9ycS1v8jBtKu1qLC4rL/Ds7eurLa5pZiqsquqmJ+ml627tJunsJutoK60sqerubOourS4srnAqreyxL61xqi/r622tamnrKGXl5GmpaKimJilr7iusrW2oJ+opJqVlZOkoLeipKWWr7Gyp6qmop6ampuWl6ifoJihnq6yoqaMl66YpKqXmZ6kkZqMk5eZhZWelIyPnJ2Ti6ipqqGnoJielYyOmY+BhZWIlJ53YmdcamlNT01OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDItLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJcGhWQ1dGjHlmQzuko52ipr+nqK+woam1q526saujqrS2sbC5t7C3uLjEvcPHvbzEwcbAuMDFwLmptqSsu63Awre3qayxuqGUrbGtspalp5GquamfprCdq6CwtLOqqba2rbyts7O5t6y5sMO7vr+mw6uwt66pq6unnpiZq6GioZGXobGvs6ywuZqcqaCZlpKXpqG2qaWjorCxtKyzqKyfm6Cgm52lnKKXnaOzsJqfj5Olmp+ompOinpSXiJOWkpWWnJOIkJqZlI6oqKafo5uXm5OGjpiLfYyWhY2ZaWdrYGxtV1BRWlVBQkVUQDs7SEE3OlhQZF5QVldFWV9dTUxSTl5LSj5aY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEuLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9qJ+doqq9oquwq6OxuKqltrSsoK21va6zuLu6vba2wMK/yMS5xMLAwLjEvcG3r7Wnq7exvL6+tKiusbaelqutqK6XpqiOp7ufpKyznqyisbCzrKq2tLW+rrCxtaywtLLBu8W3q72vsbisraqjsaaepaqfpJiQmZ+zqrOrqrOanaebmpWOoKaltK6noa2trrGntK2yqqScn6ijnpWhmZuotamWmZGRnZmdn52Pq56Wl4SUloqdmJyTiY2Wl5qXpqWioJ2VlZeTf4+UhXuOkoKLlWRrcWdvcV5GWWZWREJNWERaOUhCNj5cUWhcTlldR1teXU5NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVFxnSzaMemZMQKSaoaSstqWtqqavrreqr7W7p6axt8W3sbe9wcK1tLrEvszGucLAub65w7fAubG0rKm6trq5vrSprbC1mJinq6qsm6urj6u+nqyusqOrn7Cts66utrK5uKqurrGota+0vL3Ks6q2tbG0r66nobOgm6itoKaWlpqasqKtoKWvl6GkmpqSjqOmqLOpoaazrKq2pa+xta+kmZ2tp5qYn5qZq7eil5ORjpecoZeWlKuempJ/kpeMnZyZlpCJlJKemaWioaCYlpGTlXmKj4V7jIqCiZFqbXdtdXtgRWBrWUlIWlo9e0pGRDZBYlRpW01cYUpbXVpSUlJiYUxLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVGBVYC81KENfUVwuK0IvSkdQW0gzY1lVS0SZl6GxqLGqraakr662qbe1uqSstLfJu7S6ur+/tLO3w8DMyLzDvLa9v7+3vryxvK2murm3tsK2qqywt5SWp66rqKOwqpSvu6StsbOnqKOytLGysbWxuLOprquyp7evtrTExraptrassK2pp6O2oKCnsaGklJyZlbGep5ygqo6pop6blpimpqW4p6OytayosqeusbaspZmgrKibnJ6clKm4nJSOjoqYm6KXj5iloJyUgpCUj5ybl5aViJaQmJqnnKOgkpaRkJV1hJCHe4SBg4uKbG92dHt+XEtlbVxKTmNcP2J7R0k4R2dXZVxMXmJNWFlXVFdUaV1PT0hhXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOSGYyNydHYkxWJS1CLT1FTFE8M3JrSUNDkJmlrqWtr6uopbGztKu3sregq7W5ybmuwLvCuLOxtcLDzsXAwb20vb+/ur68ssSnqbmvtra/vK6qsrGboKexraalr6WdsrWsq7GyraqptLustbO1rbSsqquorKm5rbKxyMC4pbqwqayspaiusKalo6+kqZydnJuvmqOjoqORrJ6joJ+iqqamuaSstbalq6yora+2rqOeo6mqm6CampKks5mOiY2HkKGglIyUnJ+SkYONkpKcmpeVk4eXkpWZp5ufnoySkY2Qdn2OhXx7e4aJiHBycX18fFxTZG5eTllmXEZElltHO05tWGJbTGBiTlZWVVdUWWddUVJMY1paVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvLDEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISis6SD8zQkhTLD6QaztHSI+cqquiqrGkqaWztLG1tbKyoquuvcy6rsC6x7G0rbTCw9HFxr7Asr7Bwru+t7vEp6y3q7K3u7+vq7Gsn6OnraqopLCkqrKqr6ywr7Cuq7O8p7exsqmzqaulpaOtuqyqssO6tq27qamnrKmosqWppKOuqqiinpyjrZWlnpiemaydoqepoq2mpK2ruLKyoamioKyvsayeoKeoqZmkmZmPoKaXhoSOiouen46KjJWbjo2Eho+Un5yUl5SGlpSTl6SbnJyKkpCNiX5+h4V8d36FhIVycXCIdWtfWmBuYlFzcVxLO4R8RT9XdFhhWk5jW05WVlVXUVxiX1NPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE8XUowLkpnREY4PEIwNUVLWDFAlVo+TEWVmK2ooquznKqqsLatubavq6arqr3Ju7C9t8KvsayzxMPOz8O+v7TAwsO6v7PIw6uut62yuL6+sqytq6SnqrCpp6ixpbSuqrCurbKxtKy0vKS3s6ysrqern6OesLerqq27t6W3tqSpp6urqq2hqaemsbKkp6WhoayXqqGVm6CmnqSiq6Sto5+nsbiurqOmopuqq66pnaKlpKSZoJqWj5ickoGCj4iFnJ+Lio6LmI2PioKLl6ObkZCai5OSkZOjmZuaio6Li3yGgYGDenR/goB8cnWLpId4al5gbmZXZYdjTj9nk0xFYnlXYllSZVRNVlVVVE9cXWFVS01oVlVXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNldaLjBKZ0FBPDxCKzpKT140RIY+SEZEl5KwpaOrsZirqq22rLayrKasqqm8wMC4uLO7taayr8TJy9G/wLu5v77BuMG5wMStsbWxs7q/vbKwrayqq6e2qqatr6q5sKixsq6yrbeqt7entLerrKSpqpyjnrOzqKiktLWgt66gqqiqqKunoKusqbm2qaqpqaKqoK2ckqqhnaCkoqajqp6dp7SvqKaqoqOYpaenqpyjpKOgmpigkY6PmI1+h4yHg52dhoOKio2Nj4uChZSimo2MmZCRkY+Tn5aYloyLg390h4F+f3h0gn55dn6Ah52Pb3FnZ3B3XGFziGtPXplWSG14VWRWUWNPTVVUVFBPWFtiVUhQaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EO5aOsaGmq66arKWtsLS1sKymsKqpur67wLCuua6ht6/Ix8jRwL69u7zCvbrDwL6/rrKysbW8usGxsbKrs6iktailrbOzubGjrreysLK7q7qvqq62rKqeqqyfo6C2raihn7CzorWqnqinqaOqoaKsrai9r6yurKKoqJ+smZCwoZiioKennqebmaqxqqOgraKhlKOjo6eYmqmlmJiYno6Kh5SHfYyGhIOjloSBgIuGjYuQg4OToJaIkJyQk5CNkZyUl4+KhYZ4dIF/fHV4eX96c3N5Z3+GpHVpXmRqgHRniIx9U1hwXkp3c1NkVFFeTU1SWmZOTFZZZFhGU2lSUT9DTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQTSQj7KhpKaspKekrae1s7GrpbCnqri+wLyvp7mqpq+wycfI0cK8v765vr+8ybrAuLCvtLG6u7fAsrO6rLisorSnp6yytrmzqKi9tq62vrC9p62staytnKmvpKClraunnJ6rs6W0qJqqp6mjqZ6kqaipvay0r62dqqSgrpybs6OVpJylpZ+km5qpq6afm6qim5OcoaWemJepqZKYmpSQioKPhX6OgoCHnY+Ffn2Lh5CNj4R/k5qThZKhjJSRi5GbkpWHiX5/cnt6fnxoeHx6dG9we2eEeISIZGFnYXGEem1neF1dVUBWemxUYlBRWEtMTnJ1XUhaW2dZRVVmUEQ+Sk5EQ0E5SEdLUz9qYkpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0FKN0dTYFUqPTlEVz4qj5SymqCgqaaloauluLOzpqqxp624wb21r6K4raiosMLJyczBtr3Atbe/uci1wrWzsrWyvLe5vbWtubW/raCzp6ursLW4tayfvr2qs8G0vKGvs7Wqq5+tsKOcpaiqo56bpbGnsKCfq6mnoamcpKihrbuorrCtoKujpK+en62ml5+boaOcn5yapKqjm5ulpJaXlZ+ilpuXpqyMnpGRkYuCioCAjoB7mZONiHt+i4aPjYuKg5KYkYaToomSkoeQmo+TgIh8eWx+dnl4Y3t6cW9vcXZngHNqg2dkZ19sco1sYWlvYG8+WnhrVV5PUFFKSU1UWVdNXV5sV0RYYE9eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+Kh00OSYnLjM0LjArLzQmLDokNDFBaFkxM1M9ZV9ETDZLVmRPKjsyTlg9I5OZrZqgmKeko5+opLiwr6OvsKqruMG5s62fuK+rqLS6yMvIv7bCvrC0vbfEtsOxrrmys7+0ur23qLm3vaqjtKipqrGuurGqnLy9pbDBtbair7e1pqensbOgnqSlp6GlmZ+sqKmeoKqupqCmmKOpoLG5n6Owr6Gsoa2knKamqZqam5+klZydmp6pppecoKmTmZSYnpOZlqGqkZqIjo+GfYd+go19fKCMjIh4gouEiYuLhYeTmo+IlZ6IkZWCjJeMkX2Fe3NwfXF0dGB5eGhucHBuaH1xY3ttaWViXmSFfl9acmpxS0p+aFhaTlBMSkhQUlBJT1xfblNEWFpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1DKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo+L1hWNSiXnqeanZasoKChpKK4q7KltLSqqbnDtbOtn7etrq2wtcbIwbe+wbmxtLy2v7u+r6q9sLO+sLzCuai7uremp7WoqKuxrbOxqJu+t6atvLeyn7G4sKilp6+xm6GkoKSkoJebr6ehn6Oor6GfopSkpKK3sKGmsKufrKOvmJyqpKiel5qepZObnZqdpquanZ2ml5aYlJ2Ok5eiqKKQiIuPhXqEfoSKeo6WiY2GeIGHg4eLjYWNk5iNjpaYio+XfoaXi495gXpwcndvb3RfeXdka2xraGeCbWVya2tlaFlhc39eWmt1aVlHfF1bWE9OSkhIUlVGMjpeXmxQRFhWWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0R0JnW0hUQ1RdaEUuOzFeUywylqOimJWdqZ6moaOhuKqwobu5pqy9xLOwrqK1r62tr7TExL2zvrq3sbO5uLq4uq6tv7O0uK+/wbesvbq0paKzq6iqs6yusqOdwramqbe3q5+yu6mmpaivq5mjp5ylppSYobOmmZ6lqamboaCUpZ+kuaikp62mnqWhqJOfqaGhoZmbnaGSm52XoKKrnJuaopaTlZabjpOTo6ekj4iKjoZ5hHyFhn2cjImKhniAg4eIh5GFlZOSjJCVk42OlHuCl46Ld357bHVybWxzYnl1aGdpZ2VthGdnaGRmaGleZmJpZlplemJgUXNUW1tTS0lHSU9TQCEraV5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc3YU0nMp6kpJKOpaacnp6epLWtqKq6t6esw8C3r6yhta6nrq+3wcC9scG3sK+ytrW4t7Wsqry0r7KwvcC3rry8saSftqymprWpq6+hoMSsqqextKustLqeqKmrsaWYnaqeqKWSmqauo5idpKqhm6Kdl6Cdp7amr6mtoaGenaGVoKafoqCZm5qckpqelaaeraKYl5+WlI6VmIyPmJqnoJCHioqIeIV3goKCnIeKgol7foSIhoSQhJaVj4+QkZCRjZJ7g5WOhnN/fWd5cGtqbGd1c2tiZ2RidH9hZGVmZWlpYmdvWV5YXWxjYE1nV1pgVklHSEtMUlg+OWBsaUdCVVNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssMEEqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGNGJTWcpKCRjK6gmpigl6W0sqOyvrehscW7ubCxo7asq66pub68u63Asq+vrravs7myp6u5sa+us7a7trC5vqylnrWroKGxpauvn6XFobOlr7Kwt621nqyurK6imZ2nqqWflZynpqCZpKOpnJqgnJWcnq2wprmnrqKhmpqemJ6jmqWdlp6Ym5SaoZKolq2pm5SdnJOMlZmOlJSYp6eNjYqJjnuBdIKCipiFh3yJiISEioyIkoWTnJKSj5CRlo6Qf4GNjYNvgX9meW5oa2pncXJrW2hjYXJ/YGRnam5rZmpmZGxcbG12cWBTYmhjZVpJRkxNT1hRUFVhZYFUQFZTWVVGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUhjQic0k6Kcj46xnZuUoZqpsrCfucC2oLPBu725saa2sKmupbe5t7isu6+tq6u3qrS5raWytbGvqbG2trGztrunqZ+2qZ2fqqOqrZ2rw5mvpa+xtrWsrJ6xra+qopudpKypnJWcp6SdmamjpZWaoJ2RnKOrqqm6nqekoJeamp2hj2uilZiccYOWnKSAdpGrqJ6WlqGRiZeZgJeKn494hZONg21pfneEcmyGioZ9hIqGb11kYGeEl4Zri5CUknV3i4R/g5CAZoiAaHZpZlhdaXRuTlBqY2ZxgmZeZGZua2ldXV6JkIWIaE9LQzdEVGddSkhQUFVVS0hTYG90ZUVbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOXEtbZmI+RzFPYTwrL42kmoeVsZudk6Ccqq2ro73Fr6m3wri9vK2ntrGmq6S4tLKzsLmuqqestKWwtaKnuLa1qKestrOutK6zoqmftKueoqWcp6ibr76VqKewtLitrqSoraqrpqGfnKGoqJyXoaamnJunqJ2SnqCYkJ+oqqO0r6Oio5yWmJiXo4ihj5KahqGIlJ6hf6V/p6yelJOdk4iDcniMjoOHoHWIjWmXiWZ+c3mgb4iHg36MfH+hoJ+Zf3uHnnSIjnabimyHgoNuaWVke21yYlSGbWNtaZhxWGlwboZXXWlba2paiHBteXKHaIeEWV5GTT5GXk1FUlZWUVBSV1RnXUxZS1JST0VHRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk5LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTlxMW2dfPUsxVV83MCiNppeEnaydmZmdn6uqqKq/w66yury3wL+qpLexqqyms7Wur7O2q6mlsa2ltbObrLW2tKanqLOxrbKorp6qobOpoKSkmqKknbC3laWmp7e9pqynqaqrp6aioJmgqKSamaejpJmcpaqWk6OclJSkpqahtqSjoKSYlZOYk5yIrpCYlYmpi5ijnIaxgKStnpSan5V5gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsHlobFixrm9labySvG5oem1wj9h+U2titrJ+gHGUdZqhqpBWTldhT1ZORlRbWFFQUotcV1tQQFxFUU5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV5nXD5MMVpcNDEhjqaTgaeqn5ednaWtsqmxwr2ytb+1uL/Cq6a0ra2pqK+0qq+2tKiopralqLmvnLKytqqlpKeyr62xpquep6SypKKhn5ecoaCxrpWfo6C0uqKqqKCsraSinZuaoqqgmJupoJ+YnaiokZynm5SeoqejobCjnp+jlpaSmJKZhbBraouNqn5nhZaHrWVxnp2VmqeWca6hpH53unxroY92sV9qtFulgGWckGBmgXpmf2l4aqllvnJnpox2sWp8sXh1kpRjbW2nblyEoEVpZ4eWRXWcYH1me6Omgllfi6tpgJJ4emqoOEqvW1dTbGNaTE9YX1xXVjtOiE9WVi9JVFNKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy4uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWDMxG5KilYKtp6Weo6SqsbettL2+sLbFsri6w6epsKyvqamxr6SxurCkpa+zo6m5qZ6zsrCjpaGqrbCsr6aon6OisZyjnZiVmJ2esKiXnKKgtLOhqpuhrKyfnpqXoKOqnZmepaGdmqGnpJCdo5uYoaCsn6WmoJqgoZWVkZaRmoa1m7V5hamZtZl3h7Obt3+Tlperln5rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iHCOhoB/iJCXeIOCi5eMg6CPhbB2d59xa2psfItPpVhIY2OZfmNopV95cXVSkodeUKltY3F9hoBhnS9Som5bU2tnX0xLXGNYXFpCPrB3V1hBI01oRkJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQEFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YVU1MByWn5SIs6amoa6pqLOsqru2wrC8wq24t8KrrK2vrqeus6qir7yroqe1raOrtqWlsrOoo6Gdp6qyqLCopp6goLCWoJqWlpeaoK+jm5qkqLWuoaiPqaepm52WmKCmqZufnaOfnKCjpaOVm5+Ymp6jq5ulmpyaoqCWk5GTk52E1ZOZuXGwwn/GhnzWlJy7fJuWppCNnIykeo2GooGlgnqseY+dVa97iX6farlauXeFg32mgpN8mHqqeY6dkHuxbY6EdJC7hW6VUK+nxYpRoHpjYKpic3KGbJeHX1O1tMiFgIl8Y6QzQp11XVBqaGRQQFhmWWRhSkhNa0paU09ZZlpDQz9FPzA8PDU5Ozc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdHOmFQNzIlnKKSmLGoqaWzqqW0p6S8t8GxusCytrW9tLansrGjsbOmoK+2qZuouq6jsLKhsrSxoaSenqepsam0qaWcnp6sl5mZl5eWmKKsnpuXqa2wqKOejqyip5admJyhpqKYoqGjoZuioqebnqCelZmbpqGcppSbm5+gmJCSlZCdiLJuaLVxq4hwjqZytHRztnubmKWNj5yNon6Pn6R+sHWDkdLRdVuufIV/pG6bqqZrhoV9rX2XmY97sXOTnY94s2WWdIWebp5mlFLJi1rCXJ95Yl+tX3ZzhmKXiF5Zyp1vv4B1TUu1U1XGZFRRamNlWEFPal9saVBVRkk5PVdSW1ZZSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxBTlRfZVA1Rz1hTTYyLqKdkaWvrKWpuqymtaWntru8sru/uLe1u7u0prW0orKyo6CssKWYp7qupLKxnbS4qqClnaGqpLKorKqkmp2bqZ+WlZiZkpOjqqGYk6ersKWhlpKsn6WSlKGcpKeglZunp6Kao5+umqGenpCWnKKenKWUnZWZop6VmZaSm4Wse3eodqOPi4epb62Kg6eEmpmiipKZi6J+kZeHroV/grNccrNSrn2CgqN+cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52d4dnmIhqXa93lZ+PeGw1eciusl9CVG9dZ2BFUGxfcG1WVU0uZWJoU1lQO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdDYEk6NzegnZOguLGYs8GsqLKnqrK6uLS5vrm4s7a+tqa4tKC1raCgqayglae2rKixsauttKSbqZ+gqKK1p6aqo5melaWilJScmpKWo6ablJCnra+loJSYqZ+ij5GimqmmoZWapqmdnaSerZ2hnKCNlJ+bnqCYmJyWl6GglJiRpp2GqX19pXmhj5CDqnCtjIGmhpagooqXloijgZCHlKp7gIudeW+xWqiDgoigeHTYf3aHdKeBjpuNkqR8lZCfhHuyXpxkoH2ClG2TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZU9KQ6FcWk10XWJmTVphX3J0X0pVNUqaklhIRT1IRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxPZWRBJlVmWz8xVF9iTDdGSV9DMT03opyZmb+smLPCrqutqKa0sLixtr+5urOyuLyqu7WgsaWfpqenn5Sqsamwqratqq+hmKGgpqSkuqKjq6GXm5GjoJWVn5uVmKCgkI6LqbCvpp2Wmqemn42SpJiorKiVmKmonp+gpK2joZ6hjpWhmJ+gkpyXnJWdoZWWj6ubj65ucrR0qYx3iqZztHl0tIGTpaOTnIyJpIeOdbhui3uLomtrtlqhhmWXl2igoqdtlHK0dJOYf7JqhZKIrWp1tGGdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6YhnBcr1Y8nHdmVG9uLlunT2JSa2VibFpiXGBwfGNTWVE+Pm1vMkJCQD9NOSE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eOTFBOKWanJ26opyxv66tq6unt6m4r7XBtb2ysLu4q8G2qquhnaekop2Sq6untqOzqK6qoZecqKClq7mdo62clpmQpaOWjp6hnJien5GTlau2r6aZk5usqZeMlKaapa2jkZersqSgnqirsJmhopCZopegm5abl6GTnKmdlJCqmYfTk5q7dLHEgMOGftWWm7h5iZGYjZeJjKeHeaK2dH13dsKCmrJgg7p5wHx1uGK1gYyHqX2WgaypcXt/dbyIp6BpnWGmjq+ifox0h6t9vm5zvHSyg3V4gIptmohxbY2kdL1dd31bYXm8alpWW2l6XmlhZGZibXlvWVtZQ0FAcj9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9UXmBLNTtMWy02QDmnmZ+ivKKXscKvramqrLGoua+3xbG7s6+8sK7Bsq2mo5+koZ2ckaqlqrKktaetpKCWmquZp6y5naOtmZWhkKagk42co56YnpqQlpKvubCrlZejp6eUkJalnaStn5GgqKufnJ+ppLKeoqSOp6KUoZqbl5WkmI+woJKVqZ+FkJm2gJGRjbiVeIKTm7V3bmxuc295j4SOiXKewbu8mXqBsqhwgHSRuYN7hoaKho17ioaNl3yku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycHe2jF5/eX2IZ4N5bXlii6xwdIV/WFunaURkWVRmX2NdY1FmZnFtdUJNT0xEO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlrPCs6uqqKyrqruvscavtbSvuKe1ua6rpKKnn6CdmZSspK6qpraoqJ+clqCjnaykvqehqpeVnJGim5KPoaihk56XkpiUsrW2rJieo6Sii5KSppylq52WqaWmnJqhqaemo6ihkqyel6Kel5aYnZ6PsKmTnKeij2t+aZyoeYhzfpuOdXplh3u+v8C6bpKCcZSFX3JqWl2aiWFkh46Va2B/lGNtm3ZilGuAmpWUZV5fYnGaiWhyjHyGlGZqfnF0eX59Ylt4dIFoUFxug3x7impYbHmBcklKb4VwTnNNRFZcZmFMW1dmY15PWm12anJST0RFTTxISTxMPjIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVERlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPltPJz8yPqifqKHBpJq0ubajrKaup6i1sqzIrLC0rbakvrGzp6Gkqp2jnJqarKeupKW1qqSbmJWim6atqb6oqKWVlJuWoJqTmKWpp5GekI+YnLCyvqybp52noomTkaqbqKScnKyfo5qbo6esoZ+qopqum5WmoJaUnZ+dl7GlmaKomZyRnpyjpZqno5qdmpqakJaCaG59cXaRl5OQg4m0qY2FmJWOioyYloeTlYmDk5OQiI2RlJmTmZeaoKGam5Sfm42CeqSFbGl7kH2AdYmLgnKCeHl2dYqAe4lqc4F0g3Vkd312a3B6bF9iW29nTFhZZWpfV1lwem9tZlNPRlI5T1pOUk8oKztKQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsbG3oKmms6elsLWqyautsqa1psCotKGepaacpZaWoKunraOkt6ygmZeWoJetqqbBn6uklpKcl56YlJSinp6jqJKQmainssOvmaucqp6Pl5apnqucnqGtmKGbnaKlr6WhpKieq5iXpp2ZmqGenpywoZ2ip5WYlJmUoaOWpJ+YoY6WlIuKjo+XrY97lZuCkYCJqaiFgJiWioSOn4h7g5CFhZqRhoWJlY6bl46QmJ6jlpmSkJyNfo1lobOuhImEd3uPin53eXpvZ3mQgYCJa3WBeYhyaXN/eXWDh4FqdGN4Zl9oZGNkZmpYa3txamtcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl1dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAs6C5r76sq62xsqCqprKtoqyzsMawq62ks6+8pLScoKeioZ2Zl6imqaakprO1npSVnZmZsKauvqCropGRnpqZlJKWoZyXqZ2FnamsorTHs5+ppKqWlpiap56pnKClq5Sfn52gqq6opKOroaybn5+gmKSenJ+csKSZn6iTmJmdkqWamamfm5dmg5J8ZX6Pmo9jeIxsaGp6kKOra2SZl35nhYplZWloeo2hjmpnjJeRondraouYop6YcmtueoSMhnlYZV2Fgl5si4qCdltoc3d3kYCHgm54gnh/c215hHN3iIiOg3tphVhdanNkXXOIaWt8cW1jXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1eX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSS42Wk82KUVZL0RPMVlCOz8uPaWfury5r6yysKulqK2usKeurbC9saqopa2wsJ+tmKCknqKamqesnKyjpqips66elqOQo7CmtrmlrqOPj5qhmZOSm6CYmaaWe6Wsoqizw7eloqevn56VnqOeo52kqqiSn6GeoKqvqamjqp6nm6aep6CslqGcpbGkmJyrlqGfm5OlmJ+rmZ5+voOIcrRyhZ6FrWh3ucS4cZKho3ummJhzqoJ8y8DAu3GKo4eCnnyWmIiewL2Clp2djJzBwHuBepGMmsK/fWulsm+MgW/Ken+bd5GDjoB2eYF/eXF7gIZweIWMk3lsdZFiZV54Y15lgWJedGhtZGJYTFZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2BfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5IW0wqI0NQLyNGWzNQWS9VQUI7LziWorjDtLCvv6mplKOvqbCvraayta+qpqelsaugq5iboqCcm6qnop2roqWopaW0pJ6jk6aurLi0p6+ikpGZnaWSkaChl5ugnYemqqSrrb+/saGprqmXkp+eopmjpKqjk6Chnp2srqerpqOhpZ+kpJytqJGkm6mtqpydq52topeYppeipJidf86UeXqlgXqWlptfrY9djqiAoKF8p5WadKuCgK9eZIypeqiHhZ90l5KIs2OCq4agjY2zaoSuc3yWh7hhgq1Zo81ukHV723t/mXF+iJJ1f2V7iHZ2bH2Hbn2FkJF9a4CNX3Bqb2ZgX3hkW3FoamNmYFJUU1deSk9DNUFIRUQ4PjY7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11aV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrcG/v7S0sLeYnpGjqqmttKumsq2srKSsprCqoaebmqaYnKKvn6GfqKejpaGfsKybnpamrq2wq6isoJSSm5+lk5CfpJedp6OeraOrsKi/xrOoqbGulpKenKKXoaqqn5Whnp2crq6mqaibpaWjoaqSrLOWpaKqqp6kp6eisaKTm6eboZuVlJGXoHCFjJh1hKiHcbB8nXKsfaCfgaWPnnergn2tf5xyrX6rh4afdpiSe3yXfqqIoYuRi5x9q3qIko+ff3qtVpzEeo9vksF9gZVtdXCMbWZ3ZYZvYXducm6IipGPg2yPjmRtc3VvYGZtZF9vaGpuZmNXU1xgWlJSQzhJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/Txcays6Cdo46joqKtrravqbGnqKqorqurpqKjnZqjlZ+mq5+ipqCpqKOfnrCtmJuWqKevrKinqZ6XlZqjopKUoayanaajr6yjrLWpuc2yraaurJaVnJ2imZ+urJ2WoZmenqqxp6mpmqmno6Gqmq+xoqisr6aZpquqq7Kkk5ikppuVkoWkaqR1iXqpdXqycYKliZiMcIefmoekX2BSq4R/roKbda6Cp4aGn3qZl4V7ZoCjiaSYhoGjfal+gZSGrl57qFWdopKBeqOfgHzDr8WMc6+0s7lxYqmvwnRojIyXjoFsmJFubHh4d25rZmRkcXBme2ljXFZfaVhYVExMUUxDQ0FCO0NBQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICgnIistIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXVwKGZq6ihr6KfsLWwr6mto6inqqurqaSmn5uln52mp6aknayaoqyho5+vo56bk6qktrCuoKmbnJeVpqOQmqKnn6Cmm7Gmo6ixrLbIsrWprKqVkZydopmgpbSdmqGUnJ+nq6mirZmqp6GhqaGzraKqs7KinKqosLC3pZSXpKiZnZJ8qmyehId1q3l8sG6CpIuIn5aVnpWB0re0uMmAgbJeX5Spg6SHh6B6mJWZeKrJc5mjlKeokJKajH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4KTZI6PnJJ7b5WQfW55dHx6bVtlanJxZoFqXmFYY21cXllJTExLRURCQj1BPEI/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTAxrmtqbKurKWinbK5rKqhppuopqqsqaagpqSYq6OfrqudpqGsmp6ppZ2mtZ+il5Ooq7ayrJumnKCWkKWtkpqcpqKgqqatoaKnqbC0wrGyqq2olImYnaWboqSvppehlZmcpaWpma6crKalnaujtqygsbmwnpyvqLS0tKaWmKmkm6GPgp1OeJqBf596hKN8gqSEhqaenJ6UhLh7fHm5gn/MxsO2d5uhkIuffpqWl4l2n5eKpJikp36vhJuDnoSsfZmUYaVso3CPhZCBfZeEcqxgpHJxgJpgvH1SVXWOkaOWe3yRjodyeXKDfXBcbG53cmqAblpjX2huYmRdTExRU0FIR0ZJOTlLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Gss7Smn6GVpa+urqmmnaWlmqOnoLKuoqmnsqCZqaSUo7Wjo5WXoqq1uaSco52jk5Chspmem6akoKKvrZyjqKK1scOxraqtqpGHkZynnaOknaWXnpiZmaWjp5itoayjpZeupbusobe3rp6etbO5srSomZ+xoqWfh4/RtcO3eYeOhZGTj4CmeJSid4ugkoWlgotxq4aFtG5yaZmjnJWJn3yXmYaHkHOugqWbooymipOciJSQmm1wslylc5N6nGyZf3uZfm6pYaJxcX+fYnOyuGh3j5OkmH2Ki5CIdnt4jYFsaHdpeHNufnRcZGRtbWVoYEpaV1g8SEY/VDNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krb+/vLu1npeopK22oaOZlaOpp66pq5mloZ6moaC1p6Kpp7CjlKujj6Sto52QmpqqtLSknaacqZKUl66goJ6mo5ynnLWZoKqjtavCr6mrqaKMhI+coqCmo5aampyYm5imo6WXqaasoaSbrKa9rJS+sK2fo7C0u6y1qJ2qs6WpmXuokX18sHeKgaSliJxtsm+gh617oY+DqJaZgKyJha6FoJSooaKXhZ+AmZWAe5J+q4CdmZaKqnedoI+Ik5J/ea9do4F8pqdknoB8l3Rrrl2la3GFmV1gW4ygbZSQpZiCk4uTiXh5gZZ+amx9Yn10bX95X2dlcG9nZ2hCWV9bPUpTMlQ4QkJDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JNzA1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVlFIRklKIygovJKahKnGw7bBtJ+araCuuKWjjpqko6Cvrqmfo56drZieuaCiq6CvqpquoZGqqaWWiZqPrrCspqCom62YmY+toqGdpaGZpJytl5+opbaov66kqaOfi4COm5ufpp6SlJmalJqapKOjmKeqqqGinqmovaSXw6yro6Kss7usr6iitbGqrJl2r36QipyFh326rYmYZLCMZZWtfaGPg6eWm4GsioSwhaaZo6GikYWgW2xqgbNgf617eoKAsWxnbZmXi4ixWn20W6SDa8iiZZ+Be7xZdrVasn1Sr4B6rFiAoW2XjqeZiZWPk5R5d4ybfGNzfGGDeHN/fGBpZnBtZmVlT1VjXEFUXj1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9KftLG3vbu0wbOjnK2mpbapoIuZoJ+ds7GonqKfnbSYoLOoqquesK2erJuVrqiijoibjq+sqKejqJmuk5qPqZqhnqWemaOipZieoqmyqLyvpaienY58i5uWoaCZkJKam5GZl6ien5enrKWjpKKkqbqeoManpamhrLW3rq+oob2vrq6XgamSo66Om4CGpJeYkICAuMO6g46dk4SnmJ2CrIqCr4mnnJqlq5F+1b3CqmKkv719fqOCg9e6t7WFk5KCnr2+hGqjgW+rhG6df3qysceDa6uwvax4d6K+u3SAlY2lmo2ZjpSad3+PmXhhfHljjGd4gXtga2VqaWJQYltTaVxAVGBCTCk8OjUvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0sb+6sr2zop2upqWzpp2MmKW/qbawp6G/pqaxm56xnLmon62upaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp6nm5qgqKKYnaCsrKm4raejmpeTe4iZkqabk4+RmJiPmJSomZ6WqKeeqaahoqu6nqnFo6GwpKu0tauxq6K9qrCwnHR2qqS3hWWJn3BnrI+Kj25vd6SQmqCBdbCalnCQjXKWqKObmK6kcmxtbGWKeG5tgplxgHppcGlmiZWVl3FoaYWGZ3CGZF2KY2lvWV1nfnimYGJyj5JvZmSAjZOOoZaVlo6Um3qFjZN0ZIZ3Z4xqeH54ZGxjZWxiS2VXSmtZOlBkRFAnSjorIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6ubKzqqmirp6ks6qYkr2xw8e9tKmev6uso6Cmq5+6o6StrK2ljpatqpCMhZWXrZ+lqqKfpKOgkYulkqeZqZmWo6qglpylpqevuaqrmpuTknuElo6ml46RkZiUjZeVppOdlqeima+mnaKsuZ+wwqiktKassbKrr62puqWwuZeLoamltZyJlqKYhqmakJSdkqqzmZujrKG0l6OhnqGinKGkoZWsp4ySk4yHkpyclJCZk5iQjpWEf6Sal5WNi5KSio+GhH5ni4B0g3Z0h4xxp218lZKUk4GBj4+PjpySn5SVlJ6AhZKLcGeOdm6Jd3V8eWlrZGRvY1VgWEBpWkdiYE5YK0U9KyYhNjQwLx8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbeurqKwpK2foLaxkI6qxLvEubepoaWdm6WdsKijtqedqbWmp5GYrKOLiImPnKeWrKOhmqienpOVo5eomqmZlKaho4+ap5mhtLmnqpiakI18gZSMoZSKlZGVkI+Sl6SOnZinnpu1o52mq7eor8KvpLinsK+xrqqrtbuisb6ZkqakprWikp2mno2on4yRn6OssJqhpLKqsZmloZ2kq56enZyXrJ6SmqKblJCWqpmNmJiWkJaekYegnZWUhZKMj42Vi4F+Zo2HdYd2eYiEdJxqh5GVlZKJfYyWkpKXkaCRmpSegoaWhXhxlHJ4iX5xe35pbmRecGlgW19ZbWJQYGRPWTlHRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OXlaSno7CzrK6jqaetoKi1qpCPnKOyuq2qq6GimXqcorCkpbGplpu4pqOUmKmcjoaKiZuikK6epJaooKGSl5mbrouqlo+omaiMmKiOnri2o6WYm42JeYGUjJuTipWRk5CNkZahi5ycp52et6N/g6+1orCwdKS/pLKgeHuhrLS9lneupaCKgKl+ZFxidp+Oo52Dln5ulLSco6ivrKRln6CUdHqal3CAmamYbICjqIplnKWckJeYlouSm5CEnZqQlIOSh46OkomFd2uQiHaHcXyGgYBhaYmLlZOMW3aVkWdoj4xxeaKWlmR3l4aAdpdogomCbnl+anBlX3Vva2tnXGVjYWFvUlo9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHRklLTFRVVVldYGhnZ1hRSTxERzw5VlJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqaWpraSnraSSlqq0rrGlmammqpdzi52vn6irp5OWuJ+gj5yknpB+iIiano2rmqSVp6KejpeRnoV0ro+IpZqokZajiJu5s6egmZmLiXV3k42Wk4qTkZCUjI+Tn42ZnqWYm7KWgIybtZ20jZKPvaehfqeie6SwuYKOj6efhIuFj7Gpr4yJlqKZeYCLrIacnaKoq6mIlYeZd6WbeoecgZengoF7nbJ6ioagl5mUmJaBkJaWhJmaY3mHkISNj5KLg25xkIh6gXGAgYZ/hnSHhZaSeJZok3SgmnR7mYKdmoSYfZGIgYKYaYyMhGp4enBwZ2R4bWlsalxkaWllcltcSFRMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaGZZUUg5RUw7PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2Yo5+mrq6rqKygqLCnp6qlmZStxbyvoJWlp7Sdj4Ocq5ymoqCNkL6emY2fmqGQfIWOmZiIrJ2jlqGhko2UiYaAkaiOh6Kco5OWnYaeubGnnZqTj4VwdZCJlJCKlI+Om4uOkZ2QlZ6jlJ2rh5+0ibSarovKiKuvibeFjbCDsrCFqY6nmI2dfKiPcnt3m46llmeUpHm0jJ+fp6mTmcKCf6uImKFxnoCapX2XhZWygKF9oJOfj5iXgI6Tm4mYkot8hZOGjZSTiYNtc5KGgHtyhoGEfYV1hoKYgY/FZoCph4+iap2BnpeAmYCKjIOImG+NkoRnd3R7dmdodXBnaGteYm5sZmxYZkZcUUwyRTQ2TWBjNyY0PERHRDo2MzY1ODs4Pj09PkJMP05JSktDUFpdXFdiXmpsXFFFPUtNQEpkWF1jZmhnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KfsKipqKWroKS5samrppqUnqKkqqKVpKm1oq9/oKacpZ6diZS8mZONoJGdj3mDlpaRiKuZnJuaooWPjHebnI6gkYiepJuVmJeGorispZmbjY1/Ym2Pi5OQjY+MjJeLj5GejZKeoJigp36hp4etnaCWrpCgnp2RhoKgjayxiKSOq5qMmn6idYCYk2uBqnRMqniHjZ2Sm6mpgqqrfoShe3qnaZ5/kmxnl4aYtomefm5gY1iDl3+Me2Rni3OZfXmWa118l25fU3GFXGBseYNgWWWCfoSBmHGnqmuDo25ypXCfgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbXRxampuXmpvbGtoV2dOXVhFOUA0R0ReazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUkxNQkpbXV9XXl9idmBNRTpNT01UYlxbZmZpaWJiZGFkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJadoLmgqqOmrJGhtryrrqKZlp+gpaurn5yttKGnkaCfn6abmY2YtJmQi56MlYt1gZSRjYqmlpaYn55+k4WGrKOHnJGKmKmYmZqRh6WwpqKVmYiJgGluiIeLjo6Ji4yRi4+RoIuSnZ+boaV/k4GPo6GUoHeclpCng6KogIarr4aleot9hJp9onBykoeWe52MeW2Hm4uZkZypnI+HnXyConN2pmaefnekXph7fZNzom6Yt7S6c5KIgYC2qGSBxrh7cJW2jHGAm6RjdKyrYH1qnbN+bn2Hg4+Ci5dxgKNsc6RznoJ9o16cmbOWb3uXnrN0cluesoJpYm9zdXFoblhra3JyZFtnXWFLRD1ENVFBWnAyPFJGX0pTPTwzOTU6OjZEOztASVA/VE1OUUBFX15bWVhgYHtkSUM4TFdVVmJhWmZma2tiYmVhZGNgYWJgZGNfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi1ra2gmqGboqOkq5uasayqkpegmKCkmZqUnqubi4iReIuFcICWjYqPoZCTlJ2XfZGKjqigh5iPipKik5uajIqop6Sej5aHhH5re4d+fY+Ng4uPj4mOk56BlZufnKCfi4l3nJiijaByoouIqYicp5GXqayArox9eqCZeaOTeIBzl4iLnH2Vn4abjpmcp4ejZKF9iZaQm4xsnmiajW6amXuAiqd9cmdzqoOdgnOqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxep3Z2iYqAnWiadYeTkpiOf55tmZBqpplcqH53u2p9qVqOhF2zZ1tucXh3a2lbcGl3eGFeZFZhQVBFTzdWQlJtNEpaWV5OWkRAMTUxOzs3SD86Q0dVP1hSWF0+RGJdVmBRYWR8aUVCOU5bXllkZlhmZ25tYmJlX2FhX19gYGVjXmJkbnFgZGVla2RjaWhna2mVnImqtpuoiWOVnKy6srCrnaWbmqefnayZnbCnqp2Wopmhn5mWlqCjmYaJjWmIgHF7l4iMlpaEkpSYj3qKhJajnImVj4aLnZGcm4iPqKKfmoyRioCAaYGGeX+WjHuIjY6HjpWZfpKhnqCik5hyaJ+KoI+McJKMgqmImaCkqaKpfbCtpKK4l3ajs6Kjf4iUeJx6qpl/oo+enJiJmHKhfYWNsLV9a5qRoXh+mLSjo6uohJh7mnycmn5zqlpdb3uXi3ieYkx/e3uFZHqYQk2fWaJqcnyOboGKhJl2m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B8fW5mX2todXtiY19QXVZcVFZAWUVRZ0VSVlxhWF9JRD1COEBBOklFOExFWEFWUVpWREZhXFpgS2BtfXFFQzxVXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lZHZsXmVnZmxkZWxoaGtplJ2Bsa6ZhFNfoae0urOzqJqii5qpm5ynkqCro6Cnjp6dnJqZlZihnZaHh4l3hYFueZWFkJqLfZGTlohygImSoJtykpCBiJmUn5qEjqibmZWLiop8hGyEhXGBoYx4hY2Ih5GXk3uRop+eo4iuhn21hI+enXumlnqpgpaekYuinn6naHdtfplzoHNxfJ2GmW+Sgq18o4Onn5uBpHBeqWh1o2NvpWGc0498epl4cnNjooWPfqJyoo51a4+zi2CCmIpzqrKnvH93g21/v6aqtF6cb35yl2+Bc6JyXqRndKZgaKZsmtOYeoKbbnZ5l2ubeXaXcmyppWdfZHlwf4RrZ2ZjbXV3Zl9hUVplUFFhSFdJVF9XU1tkaltlUUVDS0xKS0JKRThQQFBNWFNYT1JRYGVlaVJkeHl3SUZFY11lWmhqU2loam9jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZmhsaJibf7CsVFxLfqmvsrWwsqOcmISXpqCgo4ykp5+XqImZl5iTmZORoJeOiIV7cH2EaH2Pg5OagXeRjo+JcH+Hj5OSbJiUfImRkqOVg46pmpOSi4WJeYN2iIBugZ6Gd4CShYeYoJV5kqKjmaCJs6Gitot6rKekrqVwqYCbkYaBnZN9pICimYaYcZ6Eoq2uiZeLf4ykjZWDr6KVdrW2tcmidJSLgp5hnpepbXmVhqCbdaGHd6B9kJaKgW9MZqOScJqIc6V7eXRig4JsfqBscmRgnHJ/dJdre2q0tbTGpnOYfnqcapqaq3SBmmxzd5dpmXl0l3FQRH2zXml1aniHZmtnYnN0cG1VXFJYZ09SaElVTFhSVVxna25VZ1dNSkFKTUpISk5BUUpQZGNpbWV0cnN+eHtudYl6e1RRT21eaFtraVJqaGlsZ21mY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinIivp4VmP5Shs6yvr7Wioo9/lqeioaOLpKacm6WBmpeWjZeQj5uTjoiDeWp5hmWDjH6Wn3l1j4iMgmmEhZKDjIWdjXqMipWlkoKXqJeMkYuAiXqAfYt5cI+ghnmBlIaIlZ6UfpOlp5yWloRnbnicbKJkfHGleJyYcGingpiNfKR6oJaDlnKfdoCJlJWPuW2PiqJifZmiloluc2qra3WgbW+mYJtpi5BploealXWigH2aX4uFjHVviGJooWWef2mbdXBkZ4iCbnKiWl9bY6FuXYmMcHt/dHJkpW54omRmp2iXcouYbqFvUoiPbqBeZKdUi11UmG1tcmpxgW1waGt4c2tvUVZVVWVZU21JWE9cSFhoaHNqWWtWUFJFVlxMWFJhVWhqXnd1enxwfHxygnt/c3aNgIN2XlFzYWZicWdQa2hoa2xvaGRnX11dXWBqYmlpdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqrCxpp+Lf5aqnJ2ki6GhmaGhgJWYk42aj4uXkI6Le4ZxgIhoi4p8l5pzdIl9kHxlgoeViomWmYJ8iIWWppCBoauQhZCKgYp9gICOc2mPpYR9hZOMh5efjYaRqaadiaZ4lpx+pYmWjLKZnpGDr5efpXmXiXqpdKaPhJpupaKMkoSMg7xtfKWvgoeGh5SXnaF9pntyqJSglmeefm+sY5aKlZJ3qGypooGJdoeCd6uRpohrkbBrdrOMqWyLhm9voJ6RlGF/q4uqd4F/jqefd599haSVnaBpmod1rGaerYy2c3a+jKOTWYOmjatgdXFzb3t1cGJqfm5nbFNVWVVgYFxqTFxRXEldbG12YFtxWFtfWmdzZW5vcWNxdGB3en55cnmDcoN+gXt7jIGCgHZieWRjbnNkUmxnZ29scmlmaWFfXlxhamJsbHpvXFxiaWFtaXdtZ2xuYpWmqpyBgJ6klqqqnqinrqOYiIGWqpmdo4mapJyonYSLmo+FnJGFko2MjHSFeoiDb42EfZeTc3WGcpGDbn+LkoaGlI99e4KFl6WNf6WljYCNiYSUdYKHkm9si6iAgouTjYibnoiLkqqioJCAdJSXiH6BeZSvpH+BnHGPhnmSjIWAe3KnjHF9fXqXlpuEjXh7fX2IlJWTi3eRmaChhHt+iWuMhVt5eXN5cGlufpKKcn90gY+Uk3GFg4JljX9fgYCMd3Z0lHVve29viW6Ehl53aXiOZoKDho+qnH90fZdqiYhvf3V8hHVtbGaMc3d7l3eEWmpXeY9obXdycW93eG9dbIZtaWdWWV5XXGRrZFVhVF5RX293eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV5gXV/gH+AeYuFgn17bX9sZHluXlduZ2h1a3hqaWlkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbmpp4uhopumpJmknauin4ODlqqRnaCImaaaqJiCgZuLfpaUh46KiYxygnyPfX6PhHqXjnRyhHCVhnt9kouGhpCFeH6AhpijjHunoIuFj4+ElYKGjph3cYSqhY2RnI+Hnp2Gipqon6Cqg4mOlZt/foqXraiQk6eQeHGek4N7k3B/qYZwfZVxam98gZ+Lf5GOi2huXYSMjJycoI9zloyIcXRrgnZ0gFlyboaRgn5+i2ldaWN6hYOIgF9peHucfIONg3aBh4NpeYyIa2JxcoN3X3KNgoqQqJaHZ42Pg253i4Jvg4t3bmRmY3mCepVaW2lmbXZbenh3dG1zcoJmXG2Ka2tiWVhdWVhrcVteYFleXWVyfXpzb3Rjamppe3xyend0ZG10aGx7fnV6fHt5eX+Afm+FiYR7fXN+eXJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyqsaGQo6Gan56YnpmooqF9gparjJ6Uh5qhkKSUf3uYhHySmYiIhoaKcn2Ai3aFi4GElopyb4BymIeDfpKDhIaKgXqAg4uan4+CpqCGeI2XiJWLi5yXhIN6rIGQl5mTiZ2choehqp+hoqOLiJObnaOZlqqiqKehk5yJmJB8eY+Phah+fpKRkpOcsaWalJ2PjbGSmISmjIyWnKCKkZyDiZKKa3yOdndlgoaQin2JnYSHi4+HiICFhJB3fHt1m6OJiIufi4aVf36NgoF2cXSGhX94iYiLkaeRhIeOiIOMkIt7hYmHjX91aoGDe3mZaXFoYHOKcH16d3ZvdnOBXF5vh2duX15ZWlxSZ3FVY1tbYWxodHt8cm5wY2ppaH97bXh+cGhvcGxmgHtygYB3f31/hHttg4yGfHp4fH56g3hOZHZqc25xe2VrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2InrqflqKhmJWZmJSYpKCden+YqY2ejIWfnIqdlnx4lIJ7jpmJhoOEh214gYBygId+iJOEbWt+epeHhIOQfoCGhIZ9h4ONm52RhqmegnKKj4WSkYuckX2NeqmDjZGXlY6cloWFm6afopqdhoOSmpmZkJmmoKaenpCXgpOLeH2Ij4WmfHyPkJGFmKmgnJOcjo2pjZGAno2JlJugg4+Xf4eOg3B4hnF0YX6Ej4Z1jJiAg4+ChoR+hYSVbnl2dZOjjI2Gm4WFjnWBjH59cnN8iYR7eY2PhZOokIeEj4KDiYmIdYSGhol6bWp9f3ptaGtsZl55fmd8e3Z0dXV6d1xgcH1tdGBjWlteUWZtU2VaXWFqaHV6fnBsbGNqameAf2tyf2tqc254boN5boaAdoKAfYV2coKNh357enx/e4KLYGl7a3VoaYNlamNgaVtjdWhvYnVta1RicXllb3l6cmVqbW2Lip+4mqGkn5KRlpeLmp+enXp3nKWQm4mGpJSKmJl4eY2FfImRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hoSHfI+Aj5ubkIemnH9vi4qMkoagoYqFjHynkIePkpaTlpJ2jKOgoZ2Wmn+BkJqZk42aoqKkm5iRnH+PhnqBhY+IoYB+jI2PfJekoKCSmY+QpoyPgZuSiZSYnH6Tk36HjoF2dIJwdmB9gI6HcoqWfIiMcYx+goWFj2l4cnmNmZOQgJh/iYxzg4l9fXF6fIyFe3uSjoSXppSMhpF8hIWGhHSAgYWFeGRxen54eXBramZefXNnfHV2c3xzf2peYHR2cHdkY1hdXlJqaFRlWF5gZ2l2eIFxZmtjbGdlf4BqbX1nbXBqfXeFemuLgXKBgX2BdHaCjIZ/fHqAgX1/j2pyg250aWKIaWxiX3FVdG9tbmB4aGxXanR2Y3R6enFia295iY2fs5KlpZyOkJiPhpygmpt7daOfjZd/jKGKiJqVeHuGh36DiX6IgoF/cH56dHWChX6JkHdnY32Gl4uCio14fYCNg3mWgJWXlY2Vn5p9b4uBkJOGpZuHjImDppWEkoqVl5KRdpCdoaGYlJh6f46Yl4+Xmp2knpmTlJx7kYeEeIaXjp5+goqOjHOXop2gkpiNj6GMi4OXmIOTlpp/mI18iY2Bd3J+bntkgHyLhnCGk4CQgmuHg4GAiYVmdm99iJOZjX6UeYyJfYGJfXxygHmLhnqFkouMmaOXg4SMd4eDgoF1en+Gg3Ned3d8c313ZmtjYH5panZzc3V9cXxjY2FzbnVybWFZX11aa2RSYldfYGhrdHmGcGJqY2xmaHyCa2h0aGxvaH98gXlsj4VxgIKCf3R8g4yBgH56goN+fJBtdYl0dG1limxqYmN1VoNpcG5geGdsYWp2cGV4e3lwX3FshYWQna6YpqiejY2Xh4WfkpaXfHaom4mYeZaci4yYj3h7gIt9fIN7gIKBeHN4eXN9gIN/iIqAZF59i5WIfoWHdH1+in9+l4SWk5aMo6CXfnGHe5ORiqaPjI6KkqCRg5GPk5eQioCOl6CakpCSdICNkpSJnZ2ep5mYjpWYdY+Qi22GmZCae4eIkIlvl52ZoZOVioyejIaBk5x/k5OWh5qJfIqKgXpyemt1bHx/i35uhZKDlHhvgoR+fouAZXNqfYGXmIWAjnSRiYR5iH52eIF+h4F9hI6GjZWlkXmFgnSIhnx/cXN+hYFsX3l0eHB7bmFuYmR7YW1vdnJ3d3NzYXZgb2x1bm9dW15dXWpdT1xXYmFobXN6iWtfaWVqY2h3h21mbGhpbGeAfHp3bpCIc4CDhH10gYaKeoN9eoGEfXyOcnmLeXhubIdraF9pcmOHaHFvZXZnbWxhemhqfHt3cGF3bYuBmZqqoKSonYqKkYaKnYqUl3x2rJeMlnyek5GWlIh2fXuKfHuAdnd/gG90c3pvhX2BgIl+fGFcfo+Rhn+EhHN6gIZ6j5GGkZGbkqSak4F8gXyNipKjiI2KjZeajYWRmJOVjoiIi5Kdk5CMjW6EkI+RiZ6ZoqGXl4mXknCLm4Vnh5qPlHuJhZCKcJaak6CRkYiKmYyCf5KffZKPk4yaj3uKhYd0c3ZrcW52fIt0boaRjpJxdIB8gYKIfGVxbXp+m5R+hYp1kYuCdYl6b4F/gYh9hY2Kho6Wqo57iH1+ioV3fW9tfoOBYmd3c3RuemFdb2BqdF5wanp5eGxycGV5XW1sc21zWFpdX2FqWk9XV2RjZnFxf4dlXWloZ2JncY1uZGlnZWlngHp3dW6OhXOBgYN8dYKIhXiFfHeDhXqAind/i3t7cnmDamtfcGhzf2txbm1xZ29rZXtibn95d3BrdneJf6OYoqihppuIjIqBj5yGkpt0gKmUkY2GoIyVk5B/c3t2hXd4f3Jze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYB/f6CGj4qRnJegk5Z3iX6AjIicnYmPhpKXloWIlJiPlouLjI2MnYqOkIRuiYuPkYqclqGcmJaGmIlshqWFZ4eei5J/jISMgXeTmJGdkJCIiZSNfn6QmXyRjZCOmpJ9i4CDb3ZwbG1vcHuGaXODjpiKcHeAdYKJg3lnc292gpuPfYqFe5WSe3eKdXGLfIaNe4uHhYqPnKWJfIR2gYp/d3dsaX6Af1xxcnFvb3dZXW9gb2peb2p8enBtbWptd2Bwb2txbVlYYGFhbVdQU1llZmJ1b4SCYV1rbWRiZmuSbWBmZl9na4F0cXJvi4B0f4KAeXaAi4B5hn93h4Z2g4V7h4yAe3aKf2pxYnxihXxvcGx0amhubHZ3X3F+eHt0dXN/gn6llZqtn6eWhYyDfpaUgo6edIqfk5KFipqMlY2LenJ3dIJwcoVzcXWIbG5sdW2Id4N9f21uVVGBq5SHgniAdnKCeYKggpGBkpGXm5GYd5F6goySpJqTjoiUmJKDhpaYi5OLiI6PiJ6EkIp9c4uFiI+InJmfm5aVgJSAaYeeiWiHoYiThZGEinGDkZePmo2PjIuPjXd7k5F7jouNkpaNfIh8gWt3am5rbG16f2J5fo6WgXZ6gXeDjX16aHVtdYiXjICJh3uUkXJ7hnF4jnuLjXuJfoSOkZ+fhn19eIGKfHZvaGp/gHded29ta3ByVV1uYXFhX2xueXBncGZmc3VocWxhd2VdVmVgYHFTUE5bZWRceHCIe15caHFiYmVlkWlfZ2RbZ29+b2txc4p9dnyFgHV2f4x5e4aAeIiDc4aFfoyMhHx5lXhmcWqDX4d+b29remBpbXR/dF9zfHiGd3NzhXx5oZCasZyljoKKf4KZiH+KnH6KmJKOhIiXjo6OhHZ0dnOAcG+Fc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfG90g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYmcf46BeHqMf4iMipybnJuWlHqOd2mKk4ltiaWGk4mYg4ZjjJGYjZSJlYuMiYtwepWJfI6Ji5ORinqFfH9tfGVzb2tsenlcgHmPjoB7fX5/ho57eml1a3SMkIqDhoZ9lo1sf4BwgY2Ajol+hHuDkZabm4x9d3iCj3hya2VufYFqaXRuZ2hzbFNeb2RwWl9scndma2tiZ3hzb3FjX3dgYVVrX151T01LYGVjXHlxinRcW2V1YGFlZI5jYGZiWGlyc21rcXaLfHR5hoJ2d36Lc3+GfnqJf3KJh4GRioh9fpl2ZXNufGWHf25wa4Baa254eXJgdnp7jXZydop2eZ+Mm6+boJCChXiIlH57iJyGhJ6QjoWMl4STjoeBdHdweXBuhG9tbn5yY2R4cHxuenxqaGxjpJrB3K7vonNrdYN1hKGEkW6Vj5Sfk5qBkXCFi6OXiY6VipCdlYOAlI+EiI+AkoqKl36He3V/iXiGhY6bmpeZj5B2i3dwiIqMfoylhZKKnYWGXouUl4mOiI2KioSJbHyXgn2IhoqRj4Z2hX5+a31jeHRqb3hzWIh6kYeFen9/gIWMfnpmdGqBi4+LhISAjJiGbIJ3b4mSg5GFf4J7gZGXlJuRdXR4hox1cnBlc3eAYHNtb2FodWZSYHBna1VfbnR5YXJjYGl9cXJuW2NyYWNWblpcd0xMTGNlYV12c4ptW1xkeF5gZGWEX2NjXllpcmtua3J3i31zd4SBeHh8iXGDhHx9iHt0i4iIlYaMf3+Yc2h1cXlsi3tudHCAV3B5dnlxZHZ4hoxodoCJcYCdiJmnnKOShHxwjJR3eImcg4SfjY58lYx/mYeEe3J3cHNqb4FraWx8dF5geHZ7cHR6Z2BlfOvatcnD3IlzbHOAdoqaiIxpl4+OnJORgYhwhYigjoSKlYqMl5N8jZKIgoiPepGLho+CgHd4g4Ryh4KTm5aUmIaNdod/cYaDioiapISVjZ+EiWGDlY+FiIWIjIaAh2h9lH99goWJjo+CcYZ/f3J3Z3ZyaXR3bFqMfZKChX2Ag4CEioJ2YnVtioKRjIN/gJOSfm6DbXqIkYiThX2CfoGTlJGYim9yeoyFdGtvaXB2fl1zaG5caXVfUmRxaGZTX3B2dGBvYFxognFyaldnaWNpWG1XW3RMSkxlZl5hcnOFaVtcZXleXmRnemBkX11Za25lbmp0d4p+c3KBfnt2eoh0hYN8f4d2doqFj5iBjYJ7k3Zsd3Z5eJJ1bnd6fVh5hXF/bmZ4dpGCZHaGhXGKloaZoZuiioZzb5KLcnaNmnyJmYiJe59/g5l/gXhxdG5vZHJ+aGZsd3dbX3h7enFxf2lhZ2F/1baOkaZ4bnF3e3GSkIyGapiNiJuQioV7aIeLmYaBkpCGhpeNe4yMgICJjXuQjX6JhXp1e4N7cYaAlZmOkpSCiXWEiHiFgYyVnqCHlpCgf4hhf5OHg4eDiIx/f4JmfZGAfn+CjI+Qf22DfIJ0a213dXR3dmtjjYGOf4R/fIR/hYh/cGB0coZ9kI6DfYCSinpxhGd7hYyIjYR8hX+BlZCSlIVvcHmLf3RsbWlqd3phZ2ppWGt1WlJpcmliUGJyeGxiZV5aaoNuc2JcZ19lbV9uVFpvTkdOZmRcZm5ygGtaW2NzX1xja3ZkZV1dWmxsYm1qc3aGgHFvf3x9dHiGeIWDfICIdniJgZKVe4mGdomBb3h5e4OSb217gHZeg39zgW1oenOUc2dzh3xykpGEmp+boIaGdXWUfm11kpZ9h5CDio2ZfIyadn52cW9samF0fGdiaXV5WmB3e3ltcX5lY2hoV52PX3Jzl7zEhHZxlIiPfXGWi4abkouHcmqIj5aAe5SMgYSajHyKhXx7iYt/lIh1iYZ2d32BcnWGgZ6UhZSPg4NygIp2hn2Lmp6ah5WPnYGJZn2Tgn6EgoiJcYF9Zn6MfHl/f4eLj31pgH2DdmZveXhzd3Nsa46FioGKgHiCgYWEgWtfc3l7fo6LhnyCkIF+c4JpeoSJjIaFeYR9gpmNkY1+bm17iH12dG5mZXt0YltwYlducVNTbXJoYU5mdHhmYF5cWW+Ab3NZZWJdam5gcE9Za1FEU2dgWmpubXxuWVtdbWNaYnB2ZGdcXWBraWNsanN2gYNwbX98f3R1g3qDgnyBhXZ+iIGWkHiEi3SBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0a5ONhZ+YoJmEiG59jHZpd5eOfoCJgpSXiXmPlW96c3BsaWRgc3poX2Vxelpgcnx5Z3F6YWVlj7Gyd0tiWqXZ0JZxe5CKj3d9k4qEmJCLhW5rhZKRenmShoGEmIp8hn94d4mKhJaAb4uIcXV+emp5hYOlkISTjYN/b3+Ed4V6h52alYyUkZWFiHB7koJ8goKIg26Ad2iAhHhyf4CDiod8ZX1+hHZjcHOAaXhwb3WZjYaDinx2eICFeoNrXHJ/c4KJh4p+h4p7iXKCbnKFiI+GhnOEeoKajY6FeW5vfoR/dnpkZmh7b15YdlpXcGxOV3FzZmBLbHd0YV1bWll0fXNvV2ddZmpyYG9OV2hSP1hmXlpwa2h6cVtaWGtlWmNweV9oXF5lbGhla2lxd3+Ib2x/foB1b4J6f4J/gn92gYSIl4lxgo1xe4Z8enmDk4x1anl+a29+dH99b3J7epNwb4F+eGeSi4OhmZyRgoVmhoNvZ3mViH1+hIGYiYF8jYxoeHJrbGZfYG95bV9ib3hcZGuCemFxdl9lZdTqvYsyOj6Ljn9xeIWHjY11gpWMfpGMi39tbIWMjHV8j3+FgZWIfIJ4bnaHhIOXd26IhWx1e3RmeYKDp4uCjouEfm6AdniFe4ieko2Rk5OOi4d/e5KGd36DjIJrf3JogH54bXx8goqDd2F5hIFxZHFofm51cXWCm4uAf4WAc3V+gXOBb1xuf3V5i4SLe4eBfYh5e3JtiYSRhYxzgnqAl4yMgHVta3aAgHV0W2dndW5XVntSWXBkS1pycmVbSXB4b1xbW1lddH50aFliW2dmb2RqTVdmUT5dZVxddWVgdXBaWVRuZFlkcXlaaF1fZm1naWtpcHd9jm1pgoR+eW6AfHyBf4J6dYGBjZOEcICLbnd9gHt7h5KJf2h6fWpze3KFenN3fn6MeniEfXxrjI2Em52WjIGAbI19a2h+jYt6fn6Dk4J+fYqIa3VxZ2hiW2Jnc29fYWtzYGhwiHpic3ReY2SboI9uXDVar7V0aYCIfJKGdYWVhXOOiol2cGyFg4d1eYl4iXyTh3l+cmd1iX5+mG9xhn5odnluZnmHhKSHgIaMiX5uf3eBgn6Om4iDlZKZiouFiXyPiHB6fYR7aH5saoB7emp6d4KHgHJgd4F+cWRyZ3aCbXV7hpWRgXyCgW93enx1f21ZcIB3dY2Dh3iIdoOJe3l0b4uBkYKGc39+f5SJintvbmptgYF0bVxmZHJwUFp6TVtvXE9bcm9kVUtzeGlXWVlaYXCAdGBdXWBnZGlpZk5ZaE1AYGNbYHVhXXVsWFdTdGFaZG9yV2peYmhrZ21saHB3fJNsaISKfHxwf357gX+CeneAf4qLg3F7iG9xd4N/e4mMj4NqfXttd3h2ind8eICBh3+Dfn56bYSMiJijjYSDenWLeGtsg4eQeH16gZF/f36Kg3BycGNmXllmX29vX2BncGZqb4l0YXRvW2FkanZ7gL+cpqTIuHGFg3KSfHeGkoJzkIuHcXJvg3uDdHSHdIh3lIh5eXBjd4d6gJNpcoR2Z3d1Y2p8goidgX9/jo99c4B1hnqBk5GEepePlpCIgol7iIhreHl+dGd6aGt/eXNpenaAg31oYHeHfWpqdGh7gGl2gYyRlH56fn5wfHZ8dH9iVnh+c3OLhYJ9hHGHiXh5cXGEg46Af3p+fXaPhoR3anFpbIeBcW9cZmFxbUlkdUtdbVVTWXJuYlFPdHhhUlhYXWFwgnNbYV1oZWVka2RQW3BJQ2NgW2NwXl13aFVWVXZdW2VuaFZrXmFpZ2Vubmhwd3qTbWmIjHl9cnt+eYKBgXx1fIOIhoNwd4RybXeCgn6Ji5N/cIB7d3l6gYt0g3h+gYGChHqAdW9+ioubnoh9hXp3hXtndIWMj3l+f3uIhYN2j39nb25fZFxYZVltcmFgYHBsa2iJbmF0aVleZG6Ad6naqseGh7JxiXdvjHR6hY1/epKJf3RzdH53gHBxf22EdJSFeHVrYHqCeYmPZnGEcGd2blttfICQk3+AeZGTfnl8bol3gpKNhXWXi5KPh4WFe3+EbHR2fm1ndmRte3VtaXd2f398YWJ4hnpodXVifXtndYaOjZV7dIB2cYB7fW2AWld1f3B2hYh/gHptiYZ0emx2gYSFf3x+eXx0i4J+dGh0ZW6Kg2xzWWhec2RHbW1LWmFXVlV3bWJQUnR2WFBWWF5hcYRvXGBjbWRkXm9jVF1yRkJlX11mZ11be2JRVVx1W1tna2FWal9gbmVma3FocHZ4jnRrjo11fnZ4fnaBg4F7c32DiIeDb3KAdHF1foWBiY2Ke3d/d4N7fIWHeId8fYF+hIB7fnN2eYyOoI2Jeol2dIN4Xn2FmIt4hoN0hYaEd4l6Ym5sW2JbW2FWaXNjYFtnbm9mh3FhcWZXXWNsf3zKzoe5oWptbYpscYNxe4OJfnqQhHl4c3l1dXtqbHZjhHWSgnZvZl59gnqLimVygmtqcWNYbXqFm4iCgXOXlHh/fW+JcoSLjYlzmI+RiYaLg3t5fXBwb3xmaHFibXhxamtxeH18el1leYB4aXZ4ZoJ3Z3SHjI6UfXKHam9+gXlvfV5Zc39udYGLfIJvcIqAcXdpeICCgIJ3fnN7dYd9e3Nnc2Fui4FrcVdpXXZbR21qTFZUXlNVe2thT1R1clBRVFdeYnSFaV1gbGpmY1pvYVhjcEdAZ1xgZV5cVnteTlZlcFlbamhdV2hgXnJma2dxZ3Bzd4Z4bpWKdH96eH55goeAdXF/hoWOg3Bwe3h2dXqGhYeMhXp8f3SLfn2GhISHf35+fYd/fHh2eHiRk59/jH2LbXV/eGSChpWFc5GKb4WFgXqDdGNuallfW1xdVGdyZGBYZHFyZoFzYmtlV1tgan93vq57oLZuYnOGaHN7cXiBhHp9i353d3J2b3t2ZWpvYId1joBzamJef3h5i4RmcX9oa2taVm93iaOBhH9xmZNygXl2hG+Cg5OJdJaKjoiFiYV9eHRxbmh4X2psX212amdqa3l3enZaZ318eGVzfm6EdGV1hY2Gln9wjGdreoR1bnViXXF9bHV9jHuCZnaHfW5xaXZ/eX+Ac35te3yCe3hxZmxibYl9bG1VaV92VUppak5RTmhNWHtoYU5VdmtMUVRVX2Z1g2ZeYHFoZ2JXaV1ca2hKRGpZYWRWWVV5WU1WbWpZXWtkXFllY150ZmxkcWdycHWBeHCZhXZ/fnd/fIWHfXVygoiAlYNuc3l7enNyhYeJiIN5gX11j358hIqOhIKDen6Lg3t2e3d3mp2XeomChml2fXtsg4SSf3GOgXCFgn6Bf3BmbGdYXVtcW1NkcGReV2JydWl1cGVlYldcXGiAcG9ygHOJZGR4fml0dXNygYN3gIN4dnN1bmt6cWJna2eGdI2DbmZdX31we4l/aW15Z2pkVVdyb42mfIR7dpaRdH1zfXtvfXySh3iafYiHg4aDfXVvcWxndFxsZ15sdGRnZWl6b3tyWWeBd3VocIF4gnZid4WLfJSBb4xqbXuCcWdzZmFuemdzeIt8fmJ3g3dqbHJ2e3F7enR+Z39/gHl3b2RmYm2Fe2xqVWhib1JKaGpPS05vR117ZmFNVXRjSk5TV2Fqdn5lXWdzaWZgVmNXYnBdTEtqWGNhVVRVc1ZMWHVkWV5rYFxaY2VfdmdtYnBpc29yfnV0mYJ3f4B3f3+GhXp8dIKEfpeFbnJ0fHp0cYSFj4GAeot1dJB/fIGVjoCFhHx9jIZ7foB2e6OlinmIhYRrdXx6dYOAi3puhHN5hHyBg3VuamhlVl1bWlpTYm1kW1hhc3tpaG1pYGJXX1tqgGprb4Bna2BoeXhqc3RzbYOAen98dXRtemhqeWpfZW5ogXaQhGhlWGJ3an6He29qcGdmXVRYb2eOqHeBenyQjnp2cX9wdHd6kIF5lnWGg4CFiHZqcXVnZ25bbGNdbXJfZ2FqeGh7bVtugnJ0am+Bfnp3YXeFhHiPhXOIcm95gHJjcWlccXhkcnSJfHljdIBxaGp6dXJteXh2eWSEfH95d3FkZGNufHxqalRoYWVTSmtnT0dRa0VgeGZhTVNyXUpNVFpla3Z6ZV5tcWlkXVZgVm5uV0tTaFdlXlhNVWxUSlx5X1tea11dW2NlYHlobGBvb3VucHd1eph9dn+BeYCAh4Z6eHmCfoGThHF0dH95dnSEiJF9gHyQa3OVgHuCn4V+h32AfoaCgIp7doSrn396iIeDa3KBeXWAfoB0boZufH9zioBqb21kZFhfWllaVGFqZ1taXnSCaV5tbFxhV1xcbIFlcnR9aWlca3Z1Z3N2cWyEe318eHVybHlnaXhmXWVzZ3p3k4FjY1RlcGeChXd3Z2lqYFdWWWdjj6dufneAi457cXJ+aHpwe459eJByhH5/f4ZuZHVyZGdnXGphXG9vXGdfbXVkemhddIBvcmtyfH51dmJ0hYt7iIeBgHhydX91YXBtW3J0Y3FzhXx1ZXOAbWFte3Brant5dnNmhnZ7e3ZxZWJlbXJ9aWtTZ11cVEtxYlBGVmFHYnZmYUtUb1dKTFhYZ2t1emRlbnFmZFpXXVh2ZVRKXGJXZ1dZSFdlUEhieFpdX2xbXlxhY15+aWpfbnR4bXBudoOXeXKBgHx/iYyGfnV1hnmHjHx0dXWCeXp6goyOfX6EiWlzloF6ip19foV6gXp/fIaIc3GPrYx7e4ePfWRxh3lzfHp1cm6FbHt+bI96YnBvYmVdZVZZWVdjZmtfXVxyhWhYcG5bXlhaXGx7Y3B3dWxiWWxzc2d0dW9sg3h+f3h2bW50ZGl0ZVtndWZ2dpJ5X11SZmZqg4J0fmJkaVxUV11iY4+kaHh0g4aReW1we2l5bnyGfHaKc4F5fHh/aGR2bGBmX15pXlxza1llXW9vYnplW3d8a25ub3h5c3Vkc4OSfoeDiXt3b3J+c2J4ZFxwcGJxcoJ9dGdygGVebndpZWh6fHVub4J1dH10cmJfZm5ufGRoU2dYV1NMdl9QSllYSGJ0Y2FJVG1TSk1aV2lscXtibWxzY2JaWlthd1xTTGNdWGlTV0dZYE1GaXVYXmBsW1tfYmJchGlnYW54eWxvanaBkHhtg35/gZOIhIF2c4h0jIZ0cnZ1gnd8fX6MkIB+k35wd5WDfJmSeYCAeHp+gHSIg3RwmKB6e3+JlHhjdYd4c3d0a3Nufmt4fHCRcl5wb2BnYmxUWlpXaGNtZlxbcYllU3JuW1pYWGBsdmNpdWppXlltc3Bsc3NzaYR8fn57dm5ubGRpcWNba3JkdHaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEkXRsbHtucHF7fX1zgXeAc3p6emRldWhdYllgZ1pedmhXYl1vaGF3YFt7dmlqcm54c3J1aHGClYOHfoR2c2pxfW5md1hdbG5jcnOBenRnb35bYHByYmBrcn5tbXV/c3F4a3BhXGVsbHlgZlJlVFZRT3RaUU9YUUhjc2JgRlVqUElQWlVra2t8Zm5vcWJbWlhZbHFXUlBmV1ZoU1RGWlxOSHF0WF9jbWNYYGBhXYtqY2RteXhrcGl1eYZ7a4N9f4SafIKEeXyHbo+Hcm92en10gYJ8i4+Cgpd0eIGThYGfiXWBgIF0f4Jxh4J1b6GWc3uGi4Z6ZXeKbm16bmZ3cHprc3ZyjGtedG5hZ2VrUl1bVWdhbGtaXHCMZE9vbl1WWFVnaXRoYnRlZFxYbXRtb3V0eGqGfH97h3aPc2Nka25hXG5tY3N4h2taVFZjZHh9fXGGXWNfY1NaX1lilZVjbnCDhYp0a2h8cGZ0eHV9bXp1dnB6f3ZfZXJjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXNxdHB1dmtthJOBiXuFcXNncH5xc29UXGdrZnF0gXdzY212VmJybFtfcGd+Zm13fnNzc2ttYFpkaml2XmZTY1RVUFNsVlBWU09HZHJfYUVYaU5IV1RWbWhkfGlreGtiV11VW3RkU1JXaFFYZVRTSFpaUE13dlpfZWxpWWJgXl6ObmFma3l1bm9pdnZ/f2yDf32Hl3uAh4GJfmuTiHJndIB7dX+CfYiOf4uTcnyKkYWHn4Z7f4aMc4GGc32Cdm6ki3KBjYt2d2x6jGBke3BmeHJ4bG1xdoJnZHtsY2ZnaFNfXlVnX2xuW15tjWhOaW1gVFZTbmd0a2V4ZGRcWG9zbHF6d3Jsh3t/dpt6eGthZWxtXmBvamVweX5nWlZYYGx4fHtwhF9iXmdWWF9XY5uIYmtwgYd9eGxreW5cd3Nte2p2dG9wfIBzWGltXlhcVWFiV2RwY1NeYWhhYmxaYH5rZmtzdm9td3dsaYWMf4l7iG1yZ3F9bnNuZFphaWlvdIJ0c15pbVNlcWVVY29je2Ryd3x3a3Bta2BZYWZndFxkVWBVUk5XZFJOW09PR2RvXWJGWWlNSV9LWG1kYHhpbn5kYFVfVF11XFRTYGZOXWFVU0pcWVBZdHVdX2VsaFhjYVtejXFjZ2p4cXNuaHZ0eoNygoJ6iI5+fImHjXlukIp1bHOCdH9/h4WGkoSVj3l9jI+HkZuEgHyMhXOAgXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjYyMjIyMjI2NjY2NjY2Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjI2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERBUsza2NjY2NqwnaCgoKCjgGNnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTJG2Orn5+fn6bago6SkpKd8XF9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaSlJSUlJSUkI+Pj4+Pj4uIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSkpOPjoyOjoePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYuKi4uLjIyMjIyMjIyMjI2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQkIeJi4aMhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCNhIqLho6FjI+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkYmCh42GjImJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjoiGh4aIhomPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2QjoyKi4yJjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2hoZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj06Ojo8Ojg5ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/QD48PkA/PT09Pz09PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjo+PD89PDo+PT9CQkVAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFDREI/PkE/QURFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpISUdISElHR0NERUNEQ0FVdIeJh4eGh4JXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKS0xKS0lIRkVHTkdPbISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz4/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTkxLTUxISU9wcICGhYSEhYaGh4eGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXp7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lJS0xPUVRPWGxzeoGFhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QDs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BCRkhLSEtUcGV8g4SDgoKDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODk7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR2eXt8e3x9fn5+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9OjxEQkRGRF18f4KCgoKCgoWJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc2OTk3NjY3NjU6Ojs6Ojw4OTg5Nzc3Nzk6Ojg4Nzg1ODg7QT0+PkJBP0FLTE9RUFFPT09RV2tycnR0dXd5e3t7fH1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PEQ/ZoOCg4OEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj47OTs7PDs8PDo7PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pj0/QER3g4OEhIaGh4mIh4aGhoiJiImLjIuJioqMbDw7PkFDRUVBQUFCPkBCQEA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEBAPj9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhxcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PDw6Ozs8Oz0+QUA+YoWDhIOFhIaJiYiHhoaGh4iJiouLioqKi4qLXj5ERklLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURGRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj46PDs+Pj4/Oz89QD9DP0t+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqIV0dMTE1LTkpJS0hJSkpJRUNERkdGRENFRkRCSElLSEdHRkhHRUtJS0lLS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHd3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc8Pjs8Oj0/PkA8Pz9DQkVAaISChYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtHRUdISElFRUhGRkVMTE1JSkdHSElKTk1OTExOS0hGR0dFRUNGRkZGREVISEZDQT9ATGxwdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw7Ozw5PT89Pj5AQURDSVR+g4WEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMS0xKSUhGSkpFSkhHS0pISkdHR0tMTkxMSEhJSk1QTlBOTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVbnF1dnd5e3h4enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6Ozg8PTo9Pzw9PkBCREVNbYSDhISEhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIuLi4teUlJQTU5NS0pHRkNHSkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRUdJRkVFQkBCQlxwcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OT89PT9BRUU+Q0VDR0x1hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUVGS09OT1dWUVBPUVNSTlNUT01TTFBTVVdSU1JQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz09Qj5BQUVVTEJJSkdLTXmGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlTWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hJSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQkNGRURES1dRS1BQT1BReYaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVddWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01KTEpJSUxNS09NU290dnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SE1JTVBLSUpPU1JRVVZWVlR1hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXV1bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTUtKSUlGQkRAQTpQUVFXWFBQT1FTU1JWV1dXV2yBgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaW1hcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TT09NS0pFQz9AO1BQWlpaUlNRT1JSUVVSVVNWXnV4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlRTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVlJTUlJUY2R2gIKCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JUUU1PWVFNTlFTVVVNUVNSUE5MTEhDSUhSU1RaXW1ydnZ1c3N3e3p7e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRfZF1eW1lVUUxJTElhbJJ0UFFTTlFSUFNbUlNSUVJVVWJze3x/gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5DQ0NDQj9EUENEQEM+QkhHVkBJTk1HXWlRSEZPRkRFRkhHSEJDSEdISkdEQkFDQE5QTVJkdHV2dXN0dXp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVJQVVlTVVFRVFJPVmBrbHN2ent4eXVybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojs+QD8/Pj5qUEphRUZISUVCP0hNTUdNUVVKQkU/Pjw9PD09Pz0/QUNCPz88PUI+Sk1GVW91dnZzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKUFFOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJpbWxxdXt6fXp4enx8eHd4ZEJAQEE9OkJDQUFDQVtcTntOT09OS0xNT09QTEtMV05JR0BCPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV2dnV2d3l8fHx9fHx8fH59fH19fX1/f39/f35/f399eHV3ent6dnl4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT1BeXFpJR1BSUU9NUFFOUVJTVlhTUllUTllaW1dZXF9eX2VgXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FWUE1JQ0Y+Ojk2NTg2OTc5OjM2NTc5NTxCPWZ0dXd4d3l5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHl4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LVFRTUFFVT0xSU1RXWFRUWFFMV1lZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT01MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OThHbnJ1eHl6e3t9fn19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5NTUxKRlBQVVlTVE5KTk9UU1RcVlJVU1NPTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVdxcXR3eXp7fH1+fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFhZWVlSVU9KR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFBPTk5NUE5UUlBSTElMS09RUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkVBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjNAPmpvYVJSUUBHVFFPUFBRTlFPUE9MSkxMT1BOTVBRUU5QT0pMTU1LR0VFREI7PT08OT1HNjY3NkRucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOEVOU11nU1FTQUdVUFBSUVBNTU5MSkxLTE5PUFFMTk5NSExLSUtLTEtHRkZFRDxBQT47QEU7PDg5VHFzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1BQEI9PkVIRkRGRklHSkpARkFBQEZIRUpPSFFSYVxRUFJOU09PT0xMT01LTUxNT05bVkpNUU9HSUhESUpMTEtGRkZEP0NDPj1CRz9CPkFkcXR3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0JBR0lETU9hZVBNT05XS0xOS0tNTUxMS05OU2RNSkxSSUlJRUFISkxNTktHSUZCQkJAP0VGRUhETG9wd3p6eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkFBRERHS0ZESUlHR0hDQz9CPz9AQT1DRUNLTlFUS0pJTVRGSUlKTEpLS0lKTE1PUFJQS0dDTEdDQ0pKTE1PTklKSUdDQ0NESUpNTElac254eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFIS0NGR0dHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRkpMSkVJSUZHR0NDO0FAQj5AP0JFQ0lNT0dIS0ZIS0RISUtNSEpMSElKTEpNXVJJSEROR0JFS0tOTVBOS01KS0ZHR0pNTlFOTGNuand2dnt4e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhkcEZLQ0ZFRkRFRUZFR0NDQD08PTo7OjpAREE/QkNFRUlGSkpMRklJR0ZGREI7QkNDPj9CQ0NER0xOSEtOSERIRElMTk1HSUxHRkZJSUxOS0pIRU9JQ0dNTU5NUE5PT01MSUhJT1NRUk5SZmdmcm9zeHV7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZV9wR0lDRUVFQkJBRUBEQj4/Pjo7Oz07PT9DQj9BQ0ZHSkdKSUxIR0dHRkVDPz1FRUI+QUNCQ0VHSElHTVBJRkZGS05PS0ZISUZFRERJSUhLSUZIUEtESk1MUE5PTk9QTkpKSE1SVVVST1dkYWFtZ3Fyb3N5emdlaGhjaWxncWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0RFR0NBQEFEPEJBPkE9Ojo9Pzs+P0BCP0BCRUdKRkpHSUdGRkZEQ0JBQUZGQ0JCQkRFRUdHSEZMUExJT0pKTEtJRkhFRkVEQ0lISEtKR0tSTUNPT05RUE9PTk9PS0tLUFVXVlVUWWBfXWlhbmluaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01GR0VHQUJAQ0Q8QUFAQzw4Oj0+Oj89P0I/QEBERkhFSEZGSEZFRUNDRUJESUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9OTlBNTE5TV1ZXWFZYXlpdZGBoYmppZ2tfZGVmY2dnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJFRTxAQ0JEPDc6PT46PjpAQj4/P0NFRkRGRERHRUNFQ0RFRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSEVLS0xMTk9SVE9JVFVUUVRQUU1OUU5NUVdaVlpZV1peWlhhYGBgX2hlY2BkZWdnamloamZobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURBQ0hFPEBFQkQ8ODo+Pj08PEJCPEA+QUJGQ0VCQkdDQ0RFRkZHR0lGR0tIQ0lIR0lHRkRIS0lHS0hNS0pLTEhMSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9UWVpZXFpaXF9fXmBjXlxhY2tiYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtIS0hKRUJER0U8QEdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREZGSEhGSEdJS0pFSkhISkhGRkxISEhKR0xMTExMSU1LTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGFlXWRgZmdgZWhqY3NzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd293SUpLSUtHQkRERTxARkREQjs/P0FAQEBEQUBCP0FDSEJFREZHRUlFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0tNTEpKTUxNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9cXmBgYWFhYGNkZWJkaWNkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV0c3Bzd3R1dXd2dXV0ZXFza3BxanJ2cHdKTEtLTEdDQ0FEPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0dHR0ZFSUZDR0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlFMU01LTk1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV9gYl9gZmJhY2luaGNpaGhteHZsaGltb3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnJycXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0VBQEQ+PkRFRkM/Q0FFQ0RGQ0NFR0NCSUVCSElJR0hKRkRLSkdISkhJS0dKSk5LTktJTEhKTUtaZkpkXEtsUkhPTV9uVWxzW3FwYndjUlBidnVodWNhdmBYbnFiZHZpbnpmXGx0YGxrVV93dmlqaGhmZ2xtam1vam1uc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cXFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj89REVGRENDQkVFREZCRkZHQ0RLRERKTEtJS0xHR05KSEpLR0tKSUpKTkxNTExMSU1MTFtzYmRwXmxsVU1OZXJdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9ccHVncU1Lcnl2a2Fha2VlbHhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FCPz1CRUdCRkNFREVFREJISEdERUtHR0tNTUpNTEZKTkhKS0pJS0pKSUpMTU5NTU1LTk1NW3Jvb25wcGxrTVBRbFhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcFxgc2xxalV1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUlLR0hGRUVCQUI9Pz9FR0JHRElFRURCRklISEVHS0pHTU1OS01OR0xOSU1LSEpNSUtJSkpOT05OTUxOTUxcaGR1XWxxV2xOT1FuVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SE1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRklMS0ZNS0xSUkxHTU1ITkpJSE5ISkpISE5PTk5MSk1NSlpzcHBvcXFtbE9RU29Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpbXXRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0VFRUBAPkNDQUZDSElNSEZDRkpMSUdGSk1MRk9KS1dSS0dLSkpOSUlKTElLSklIS01NTUxJS0tLU2tiWmleX2pjcnJaX1lrb2BlZVVrX2NbYWJRYG1oXGpcbmlpZFpvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3cklIRklERURGQUBBRURDR0JISkxHRkRHS0xJRUZKTktJT0lMW1FKRkhIS01JSEpKS0tJSEpHTEtLS0dISkpMTExLSUtMTlRbXVRQVU1RUE5PT1VSUE9RT09RSkpPUFFkcWlUWVZbW1xVWVtdWF1cXGNmYWFmYmNmX15ma21obXR4cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0hQS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKR0dJRUZLSElLTkxJT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZF1iWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVGSkpKRkRISFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdFRUpHQklNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teY19aXWBjX1lfYltgXltUWVhaX15kYmJhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN2eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREdLSkpERUlJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRUNERUJGSkQ/SUtITltjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19hYV1eY2FgYmFiY2NlWlJYVlZcW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkNHRUJFR0hGR0hJRkdKR0hGSEtJS0RESkpNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hEREBEQUhJQT5ISUZPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUVFdX2FjY2NjYlxkYmFkY2ZYUVZVU1xYW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0ZLSUZGR0lHR0pGRkZJTEpORURKSkxOSkxJS0pISUdCSEhRTUtLT01LS0lISEVEP0VCSEhBQEZFQ1RdWV5YX1hfW11VWFhQXV1RS0pWXlheW11WWmFSUl9fYmJgYGJiYGNiYWRkYlhPUlJTXFNcXl1eXl9fYGRoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0lJR0RIS1FPTUxQTExLS0lJREVBRUNIRkFBRkRBVlVFXFReU1ZgWE5UVU5aW01KS1RgYVtfWF9eYl1PWWJcYGBfYmNiXWJiV19fVFBPUVJZU15cXF1eX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJUmNRRFdfSUdHSERGTUpQUEZJSUpLTkxMS01LSkpHRUlOUVFOT09NTk1OSEtBREFDREZEQkFDREBMSEJMTFBPT01GTUZGSElIR0xMTU9QSUxPUFBTUExRU1JVWllXWVhYZFZPU1RQUE9OUVVUXFlZW15eYWFlZmNoZGtscXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXk1HSFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS09TU05QT05PT09IS0ZgRURfTERmY0NMW0heW3NtT05WbVlMQ1BfVGxXZ0pdV1VeRExRVUxNU1ZRUlRYV1RYVVRcVFBmWmhoZFlUa1RYV1VbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0tJRUZGSEVFS09USktHYFRISk9KSU9NUlFLTUtMT1JVUk9PSkxNR0hNUVtZT1BQTk9QUElLUX9RSXxZWXJzV1BtSHFub2FWUnJxdE9Ca3NucXRwU29fW25YXVZcWFVraFVdVmNZYFlaX1ZVV39pdHV1X2F2YFliXFxmW19hYWFiXmBiZ21wbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4foB8foCBgoR8gIN6f4F/fnd3TUlFSE1NQkRMTEdKTEZSVkxMT0hLUlhXUU5PT01RVE5PUVBLS05HTVBTW1pUUVJPUFBRS0laeF1UeGRoWVJTUHZndGxwYm5na1FyT0x3bWpycHNycXJwb3CAXWZ6dXhxcXpxfnJ9a3V9YlJnfGVzc29zc3x9b355b39yX2BgYmJbYWBoa25rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpRT01OSk5WXllVTFFTTllZTFNTUk5MT0lRUlRZV1dRVFBQUVNMSGd4bGN4cW1aS0xUeXB1bXVib3dRZGRJZXZxbXdvgGpmeHhpV3JSaXttaWp6en1seHp/cGdvWHV1anZ1cIBhc2h8aWx4fG9fX19jYlxfZGVmaWpkZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3J1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFBJS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OU0pLcm91dXF1cWRoYVZuTHFwXkdoeVd2VEtoeH14YHl7c25hXm1vZFNncnVubXlwd2x2c3RxbG1cc316a215fGx1bXxrcHZ1eF5fX2JeXV9lZGlnaGVlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUEtMTktMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05RSVJtSGl3S2BkdnVVV2xObmx7cmFqZ391VEtXa2h9bG1seGBbcHp7X2B6c2Nyb3hxaGR8aXJ7XVRLbF92dWtpdXt7bX54a3xwXV5eYlteYmRlZ2VlZWJaY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxobW1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTUxTU1JPU1JXUlZUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFOUFVMS0tSU1JSUk9WVVFRT1JSWFhQTlBVVFhYWFtbVVNTV1tXWFdbT1JUV1dYUV1YVl1VU09YUlZXV1haYFtncl5bW1tdXV9jWl9jY2VmZGNjYlpjY2dmZm1ubXVmZmdjYGZfXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJNUlFQTFZVVFBUVVhVWlVSWl1WVVRXVVlYUE9MTldUUE5VU05QTkxRUEtKUVFLUU1KS09RVFJQUVNSSUlNTk9RUlBQUVRWUlhXXFdTU1FRVVVWVFpRTlJRV1VUWVZUWVVTUVVTVFVYWVheWl9hXVxaWl1dYGNcXWJiZGdlZGRhWWBhY2FiaGhpbmNhZF5fY11aZFxibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVFNWFdVVFZYV1daVlRcYFZXVVlVWFRRUEtPWFNQTlVRTlJOTFNQTU5VU05RTk1OUVNQVFBSVFROTE5PUVRUUVFRVldVWVpbWVNVUlRYV1dZW1NPUlRXVVRZVVZZVVFRV1VWWFxaW2BdVllfXV5dXF1gYV5bYmJjaGZlZGJYYGBiXWBoZWZkYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFPUlhTUVFPTU9TVU5XUVRUVU9OTlFUVVVSUlJUWFZaXVxaVlZRUldYVltcVlBTVVVVVlhTV1dUUlFYVlZbX1teYF9WX11eYFxcYGBfX1piYmRoaGVkYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1cX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVZTTU5ST1FST01QU1JVWlVTUFBMUFdVUVZSU1JYTU9QUVRYVVRUU1VZWFteXVxbVlJPVVZVW1tWUVNWVVZYVFNYWlRTUVlXV11fW2BfYFZiXGBhXWBiX1xgXWNgY2dpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5PV1NOUVFQUlRSTFFUU1lbV1VPUk5TWFVTUlRSUlpPUVNTVltWVlZUVlpYXV5cXF5WU05UVlZbW1VRVFRWWFhSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2lkZ15cZWBhYGFjZF9iX1laX1tcW1hYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFpdXl1cYFxgVVxdaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVWlpaU09TUVVVVVNOVVFSWlJUVVRYXVdYWFNYXFheXVlaXVRVTlZWV15aWFFUVFhYWFNWWVxUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXV5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFtVVVdWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVU09XUVNXU1dVVltdWFtZVVpeWF9eWVxZUldSWVhZX1lZUlRVWllZVVdZXFVUWl1cXmBhYGVkXV5dXWVhYmZkXl9kY2BcZ2RoZmRiX2RhX2FgYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFJXVVNSU1dRU1ZUWFhYXV5YXVtVXl9YX19YXFZRWVVZWlphWFtUVldaWlpYWVlaV1ZdXl9eY2JiZWVdYlxgZmJlZmRfYGRiYVtmY2hmY2ZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlNaV1RcVVZXWVdWXGBhYWNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVFJWVVFTVVdbW1xfXlpfXFZfX1pdXlleVlNZWFlaXWFZXVVWWltaW1paWVpYWV9fYGBkY2RlZWJkWmJmY2dmZV5hYmBjXmNjaWVkZ19nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVVYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZVU1VUWF1dX2BgXWFdV2BeW15cW15YVlhYW1pfX1peV1hcXF1dXVtaXFdaX2FeYGVkZGZmZmJZY2ZlaGdkXmNgX2VjXWZpZGVoX2deY2JjYWFgX19bWFlbWVpaWFpYV1tcWltXWFpUWV1cWmBcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9dXV1YV1tbXV1fX1xaXWNYWVdcYGNkX1JZWVBXVldYV1ZWV1ZdXV5hYmFfYl5ZYV1dXlldXllYVVdbW2BeXF9ZWV1dXl5gXFpaWVtfYl9iZWRlZmdnYlpkZmdpZ2NfY15gZmVaaWljZmljZl9iYmNhYGBfXV1aWFtZWVhYWllXWltaWVdYVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcV1piZWNhUlxZT1hWWVtZWVdaWmBeYWJjYGFjX1xiXV9dW19eWVlUWF1dX19eX1taXl5gYmJcXFdbXWBiYmNlZGdmZWdkXWVmaGlmY2FiXGNnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYV9jYmJdXFtaV1hpcWBcYF9dXGFjX11YWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl5cU1xfYGNkZGZlZ2ZlZmVfZmZoaGdkZGBbZmdeYWhoYmhoZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYV1xnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t8fHx8e3x7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHt7e3t7fH19fX18fXx6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKh3NxcnJycnQ+KCsrKyoii9vS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyJcm9vb29vcjIXGxsbGxCO7+Xl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXl5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx6enp6enp6dXNzc3Nzc32FhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnZ4eXp5en55eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t7e3t8fX19fX19e3p6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3d3x7enx6fXt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d5fnt5fXl9enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3t+fHl8ent6d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt8fH17fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl3eHp7enl7eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fX6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoCBgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYKDgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSko+OkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWGhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYF/gYGAgIKBgoKCgYGCgoGAgoKCgoGCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOCgYKCg4ODhIKDg4OCgICAgoKCg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhISCgoKDgoKEgoGChoWDhYODhISEhYWEhIWCf319fX6ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIaFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIODg4ODhIWDgoOEhYWGhYaGhYWHh4aDgH5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eGh4eFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4aGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhIODgoSFhIWHh4WHg4B/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhYWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OChYSDhIKBgYGBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEg4WFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeGhISFhIODhYOIiIOBgYGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWEg4qNgoKCgoKCg4F+fX5+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiDg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4SDhJGSkY6PjouHhIaGhIKBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWGiIuKhoSGhIKGhoKAh4aDg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4GEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFgoGAgIF/fX6Dg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICAgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5/fnx8f4ODgoOCg4F9fX5/gICBgH59fX19fn18enp6f4KCgX9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF+fX1/gIF/f36AgIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCAf3x9fX59fn6AgH59fn18fX6Cg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gICAfn9+fn58fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36Afn1/gYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7gIB/f39/fn1+f36AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35/f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoOBgYF+gIKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gYCAgYGBf3+Af3+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDg4OCgoKCgoF+fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKChIOAgoOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWHhoeHhoeHiIaGh4eGh4iHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hYuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoWAfXx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYiJh4WGhYODgoGBgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoKDg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGDg4KDgoKBgYCAf4F+f31+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42NjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gZORjIyNjY+KhYaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoCBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fnx+gICBgH9/fn19fX1+e3x9f39/gH1/fn+LkI2MjI6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAfoB+fn99f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJGMi4uOjYuKhoSFhISDg4ODgoOCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn9/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaFgoSDgn+Afn+CgoJ/f4KCf4CLj4yKioyLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/fn9/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t9fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4aChJGOjIqIioeIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJi4mLiYWIkY2LiIiGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH19fX19fnx9fH18fX1+fH59fX19fHt7e3x7fHx7ent7enp6e35+goWIh4iKi4uLiYyQjYyJiIaFhIKCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+MioiIhYSEgoGCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX19fn1+f319fXt8fX58fHt8fXp6eXl5eXt7fn6AgYOHhIiNjImJhoWEhIOCgYKCgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx9fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiYyJi4eFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGBgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn2AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGDgX5+gIB9foB+fX5+gIB/gX5/gH9/f39/fH9/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyJiYeIhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYKCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx6fHt8fomFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX58fn59fYGEf4B/fn+BgX99f399fX59fn59fnx7fHp8e3qAhoKEhIWEhIOFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIKBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+f3+Af359e3p7enx7eoKEgIKCgoKDgoSCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l6fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOCf3+Af4F/gH98e3t6fHt8gYB/gX9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXl7cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Afn98fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICAgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fX2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4eXpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn19eH5/f3x8fH59foGAgYGAgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4ODgoGCg4KBg4J/gX9+f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH99fn5/f31+foGBgoJ+f359fn5+fn9/gH99gICAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3Zxd3lyeIWFhYWDhIOCgoOCgYGCgYCCgYCBf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGCgH5/fn5+fX1+f35/fnx/gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWGhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH9/gYB8gH+Afn+BgH9/fYB/fn9/fn19fICAgIGAfn9+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn58e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFycHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgX1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WGhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGCf4KBfX6Bfn6AgX+Af4CCgICAfnx+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYSDgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX6Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gIB/gIGBf4CAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGFg4OEgYGDgIKDgYGAgICCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl5fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKChoODg4KChIGEg4GCgICCgYSBgoKBgoF+gYCAgoGCgYGCgoCAgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIOChISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKDhoSEg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fX18gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4GDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9gH1/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Dh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+f39/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgH+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYuJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WCgYSDgH9+fn59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2ChHVzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfH9zgoN/g4N9gX1+fn1+goOBfH+AfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhoOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ6eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9f359gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOGhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYSFhoaFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgYF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFg4aHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYSGhIWGhoeHhYeGiYiGhoeHiImIhYWIhYaHhoeGh4aHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaDhoaFhoWFhoaFhIOFhYKFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn18fXx/fH5+fH2BgH18fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoWGhYaHhYWGhoWEg4SDgoSHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYSEhISEhYaGhoaGhYeFhYeFhoWHhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aIhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODgoKDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYOFhYaGhoaGhYaGh4aHh4WDhoWDgYOCgIOFgoN+gYGBf4OBf35+f31/fHx9f317fX18fnp5enl7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoaIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYWEg4WFh4WHhoaFhoaGhYaGhIOFhYKBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXl6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaEhYWFhYWDg4GDgYCCgYWCf4B/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OFgICBgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH5+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhYaGhIWGhoWFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18f359fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WDhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg35+f4B/f4CDf3yAfX1/gn2AgX5+gX59fX19f3t/fHt6eXp6eXp6fHl6ent7e3x6e3t7e31+fX2AfX18fH2Af318hoOGhoaGhYOEgoWChYGBgH9/gIB+f4CCfH5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCfn19f35+f4R+e398fICBfYGAfX2DfX5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx+g358fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6eXl6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIWEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dXU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXU1dXV1dXV1dXV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19jc3d3d3d3d3d3d3d3d3drW19fX19fX19bW1tbW1tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLmzeHNzc3Nzc3Nzc3Nzc3CUwLy9vb29vb29vb29vL/S0tLS0tLS09PT0tPT09zj4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OlmTIpKysrKysrKysrKyskZLCpqqqqqqqqqqqqqqiw0tLS0tLS0tLS0tLS0tHg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpps4LzAwMDAwMDAwMDAwKmiyq6urq6urq6urq6uqsdHS0tLS0tLS0tLS0tLR3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaugRT0+Pj4+Pj4+Pj4+PjlxtK+vr6+vr6+vr6+vrrbS0tLT0tLS0tLS0tLS0t/p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0crKysrKysrKycnJycnJzdPT0tLS0tLS0tLS09LS1dTU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7Ozs7P0c7R1NTTzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbY19fX19fX2NfW19fX19bV1tXW1tbW1tbV1tbW1tXV1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Ozs7RwafUrYODlc/SpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Ozs/P0Z2QuZy8uJm1s5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/P07qvrKymjoCNxp+YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PD06Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Pz9OfsZ6ooYms1rqYoZ2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz9HAnImdpKqsm6WymZavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PEJAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Uo6KBnq2knJWokJqFnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw7Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDRxJ+Be5atp7Orn3+fqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q1auvvMDPlMjZwZyAvK2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzs7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJh3+FoJePoJ+fmKiWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HG09PVnJuspauin8Ogq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg0tHS16iHz6mOjq3Ywo+Nu9XS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dLPxdTUv7/V0tXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojw9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS09TS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk2OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk4NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzs4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj47PDk7Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODc4NDs/PD89OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Nzc3NjQ2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NTU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyampubm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhSSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87My8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtoZ3VaZnJ3c3hmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/JzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwsbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7u9v7m9urq0v7i1t7Ovu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2diXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxbW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmFhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcvGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdW15dWVFFRENNSUFFPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBw8O7ubO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pXF9fWVNQQUVJR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXFpVSjw/P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3srKytLK3vrqztbK8ury2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdT0hBPz1IQ0ZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq2tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE/SkJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKx77AuLm2srS2s7SvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxCRk1GODY2NTo2Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vbWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u7+/ubS0s7GxrrC5uba8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2rqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIQEhRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28t8DBvry8vLmura+ysrq6t7e1tby0r7Srtrq4wMTBu7a8vbiyrbOwr6yut7aztLWvqqSem5ycnqion6CoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWim6OclZCMj4+Pk5CWlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09MTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGwrq+yp6awpK+utcG6tbeyt7aytKuytK6qq6+wsrOupZ6SmJSPmaCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6aqsaOlp56gnJWTkI+RkJiQlpWYl5+Ym5mbo5mXlJaanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7REA9Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaOkrqWsrLS8t6yysa+xrbWvr7O1qqetrKOcmZSOkpaXmZmcoKOim52lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+prrKrpaqqoJqYmJiVk5aak5WVmZaal5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOD5CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6jqK6trKurr6qvqZ+XnqWenqWmpKCin6agoq6rrK21sramr7Srqaq0sbCwuK2noZydmpSYmpqRjpGVkYyPjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrrKxtKmxr6KZnJ2eoZmbm5qYmZuUlZuWmZyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5VTFJMQTc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho56doJ+joKKvr6yvsay2p62xraamsK6trLCooJ+ioJeRlJyhnJmYkpOfnaKkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7issbSjoJ2loKyhoaKgoJqYlpWfm5uYpKGgnqShoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTUc9Skg4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjpOemaidrp6nnpyhnZ6ampKZnpyioqCgnaKfn56fqaynrKmqtKurraulpauoqqyqpaCemZKSlJiZl5aWjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oauiqaiyqaqop6iamZ2aqqefmaegn5+nqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKagnp2dl5iWmZ6bnKSfn52knZqdnKWipKOiqq+sp6mjoKGsrq6qq6egnp6io56fnpqcnJSTlZSenpiUhp6aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLS7xsS8wru3s6myraqztK+zrqquo52rp7axrKKvpaCjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhoF7dHJra3VycGhXW1FFVEhESU9IPkVBM0VIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpZ2Vm5ufmp6cnqWmp52goKuxrqekpKOgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr3HxsK3w8nIwsDFvrm0ubq1u7ewtbKqurGuu7e+urqqt62rqri6tLyurrmjpqOep6Wio6mmmpufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR9enJrZGhveGplWltGSkxERFNMREJENzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlZqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkp+fkJafmZKalp2bmaOhr7OpoZqdnZ+fmpeYl5KMj5aXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3MyMnRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zT0NPTzMrCxcbGysfOv8nQy8bExsTBu8PBvr6+tb2zrb+/wsPGxMfErr+4sri8xMHBury8ta6np66ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURCQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6yen66mpbGqxcbMzs2/sMKppaitraqhnaOfnJ2aqZOZoZCOoJONlJKXmaSxsaukoJ2gm5mXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXX0tfNxsfJzMPFys/K09fR19LU1dPTyMzHzc3J0szO083Ex8nKwcXLxsjIxb7Cs7PIxMvKys7Fyr++v7zBx8TMzMjJwMO/rbCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/enJ1dWdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjNAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo56ko5+gpKyblqmWjJaNjI2XprCupZ2enaGloZ6blZSWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTTz9LD0NPW19XW0svJztHLxs3SytLV1tnV19PW2M7Syc7RzM7QzNLPv8fGysPMzMvOz8XGx7bAyr/SzcvPxcnIv8PDyM7Mz9DPzMrIzri3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHdzdm9jYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU6NzY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopuppqKmq5qjsLGpqLXQ1Nfa0sfGy7S2wsWytqmipaahoqu1p5qxoJidjJCmrauclZihnZuhop+cnZuVindpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTPz9XU1NHSzNHO09fW09XQz9LT0cnT0cjQ2NfY0dfS19nV1szOz8nN0cvOz7/FwsfFzs3R0NHIy8zAysvF1M7LzsjEycbGyMzK09PR1c/SzNLBucWypai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NDQ6PTUyNzU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamgr66qqqyepq64qKu32NTV2dnRztDAvMzJt8Cvp6upo6SxtrOjtqqsw6epqaGYlpiam52hnpqdnpR+cmVjYl9fYWBfYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvTzdXU0srPzNPW0tHWzc/V1dHG0dTK0dTV1s7S0NjY2NfLyM3Dyc7Mycu/yL/Iyc3Oz8vQzc7Lzs/Hy8/Qys7KwsnGyczKy9HSzNPS0c/Qyr3IubCtu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bua2FkbnBhV1xaSUZGRExXRTtAPDMzPD04Njg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PT9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Onnri2tbWtpa2uvrSxwNnS19rc18/Ny8TT0MLCsqutrqyms7K5q7K8xqKhnJaUl5uen5+dlJaXlYlsXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVysDKwcXMwsjJwszDxcjKys7KzczQzdPLxcjPzMjHysTHwMXJy83Q0cbQzs3NzM/Fx8C3ub3Dw73DubKzvrG8xMS1qpilopmWkZWWkouUjZqRlJSPj5SCiYV4cHFrbmhgYHFoWVhoVk1HTElQUEI7RD47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc2Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfDucvV1tna29jNzdDJ1tbFxLiytqqkrqy5ubGyxKyWjY2YlpCTkpGWlpaQjHxlYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytHIy87NxtHSz87M1MrHy87Px8fP0svQz8a6xL7Gyb3Cx8nOxMLHwMfNx8PLysvPx8PDz8jGwcXIw77Ax8vLzM7CysvIx8vQxMXHu8fDyMjCz8C9vL+xwcrHur2qsbKnpZ2inZiQmpCkmZeZkZWYiY+Cd250ZGxgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJuls7Gsyc3KyMS+vbrNzcfQ1dbZ2tvY0MrQ0NLUysW6vr6wqLervrm4s6WRjo6WkIaDhISCfoWFf3RgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsjGwsPAw8fKycjKx8HFzMbIy83JxMLLycLCy9DEy8i/ucG7xce9v8bPy8O/w7vJxsi7yMbEysC9wcvGxcS+xby8v8PEy8XFvMDJwsXH0sXAyL/KysbIxtDDw8bDr8TLx8TKt7+8urSprKWlmJ+YrKOhpZqjoJuUe3ZzdGZqW2FubVpbWFFETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvP0czHwsPHzc/PzdbQ1tnY2dDN1M7P0MvEuMbBtrW8scC2uq2RjJOXh3uAhYaAdnh1cnBfWltdYGFiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsba6srKzsrHCvLy7ubjAwcHFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDvrzBzcLGvr61wb3DurzGu8K5s7zFw8LCtr+1tb6/usvDvLW6yLq/vcvEwcXCxsjGyMbQxsLMyLLHysPOzcHFw8C9s7ews6ioqLmxpa2wq62slHl2d2plaGBob2NWXllKRUpGSEtBRkJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc7P0snRx9bV1tjOzNDIzcjKxb7KwbK1ure6tq+RjYqLhXmAhoaAfoR8dHVkXFxdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLS3tLOys7q1vbG3sLWvsrvCvMHEvL+7tbO7vsC4x7m0u7bAwry4vcbBw7y1rrK2ur60xbe7tau4vL3AvbC6tq+2urLFvLavu7+0trTFvb7DxcDDxcbIy8bAxsa7yMu/z8rHw8bCw7fDvr22ub7Hv6y1urW3to54dHhnZ2Via25eVl5gRktISEpGQkNBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDNzsnLycvKy8bRz9PRz8jKxsrGxMC9z72zuL25t7abjoeJiXt5foaGd3iCfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7i4tbCrrKeeoqqnnquss62pq6mzrbawsqmupqyyvLq2w7m6urGrtbm7tMK6sL+xvb27trzIucO3raqosLLAtri8r7CnsbO0u7yrrbWmrrauurGwqrmvrbuuu7i7v7+9ucK/x8PFwbzGwcjLuMXHxb/HxMO6xMbCu8bJzMuzucK8urKIcnZ2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj49OUE9P0A/PD46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs7SzMTGwcXQyM/DxMfBxsbFxczDyszCxMHHwLq8u8q3tLu9tbWrkYmQkHx5foqFenuEgXduXl1dXV1fYF9fZGJiY2NiYF9eW1taWl1aWllaXWVub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCjpp+qrbW2sb25r7evqK64tLS8uLO8r7i5tbK8wbLBrqWpoquxsrOovKqrqKusrbS0pqiuoaSvqbKlp6iupai3rLCyt7m6u7G8vb6+xL+1wcHHyLe/wMW3xMK/u7/Ew77EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWlJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7rEsLawm5mVnJiqqbCxs7W9r8bR0M3EyLu7zMPMwL3KuL/FwLzMusPGxbq8w725t73FuLW4u66ylYOJjYF7foB+eHR/fHN3Zl9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSepJuXkaGjqqOin6Wlp6WsoJ2bpKassq+2t6ewrKeqtKu0ubC2tK22ubKwurmxt6Sfo5+msaerqLmqpKenqKeyraCnpp+bpKasnp+npJ+gsa2trLK0srSwtby2u8HBsrq+w8GyubrCs8C9v7W4u72+vMLHxMLDv7/EoIN3cGthZl9rb2BVWV9ITmhPVEhFSkY8PUA9Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzc4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbu+taCelZ6hprq2q7Ozu7PF0MnMw8e5uMnCzsG6y7m9yLu3x7u2w8azvcW7tq+4v7uwsrawooSHh4J9eXZ0b21rampxaV9gXVxcXV9gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXV5kY2JlZ2dnam1viJ2poJeVmqGWm6KYlY2eoaKmm5+fo6Whp56bopufqrCtsbWiqaqpq6yktbitt6+ss7Wus7WusKqfnZ6jorKkpqm4raKmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7KyubK9tLaxsbW0v7W9wL3Dwbq7vZeDenJrX2VeZGRYVFheSVddS1BHSUpGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmbpKbAsq+2rLS3xtDJycHHvLzFxdDAvMq6usK7tcW4tcDBs8HDu6yptLm3p7CzqYuGiIB5c25wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWltZWFdXV1dYWFhbXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaQnKGhqJ2bnaWmoaWcoKCamK2ura6yoKWiraunobWwsbGsqK+zp7qzprahop6bo6Gto6Gptaqio6adpaajlpiel5manZ+Zl52cnJusoaumo6Smrauzs6q0sLKqsrm0r6mvsrKyt7Ouqayusbewura5vb+3srGUhXl1ZV9lXltZVlNaVUtbUUxJRUhLSUI9P0FBQEA6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vb+znaWjmKWxwrW2va20uMPNycjBxrjCwcjQucPHwLa8vbbDura/wLW6vrqpprC6sKexr5t9hYWAeXBxdHFoZmRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnqmdm5qqpq+wq5ujo7eqoJ+uqLappqetsKS3sKS3oKKbmJiqpqGarLiwoqGknKGfoJOVoZSWlpuYl5aXnJSfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxr7Cur6anp7KusbSvvLS5t66jlIF5dWReYVZZV1NSVEtNXkxQS0dHTEtFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp6np6Oqu8C9wLmutLjCzcjHxMW+x7rKzbXExcWxv7+5wMG5v8C5uby3p6awu6WooKSJgX54cmpscnRwaWhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtcWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKann5yfpJ+qr6afoqO2qKChoqizoaWnpK+lsa2stZ6gnZWUqaGilKyxsZ6iop2emJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpaukpbCnpaOrq62lqK6vrquoqqmzpaarr7Sxrry1sa+voJJ6dnJkYVxbXVhOTFFHUmFNV1BPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuyt6yepKett7u8wcW6sbm1xcrLwcTHx8m4yMa1xcLJr7q8wrvCwMG9u7e5taWmsbWdoYmYiIB3b2RiZ2loZmhqZ2ptYF1cW1paWVpcXVxbXF5fXFpZW1lZWltXVVhXVFRXVVNUUlVgYF9gYV9gYWNkaYGUk4mRjpSSk5yUlZajmaCWnKCloa2lpKSio6GbqqqlmZ6lsamgoJykqp2noZ6sramorq2ioaKUl6ObnI+rqbCbn6KenpeYk4qeko2Sk5WPmJiSm6GinKSgoZWgoaSmm6OrpaKkqqOrrqSusammpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlVRRlFPSFpcT1JKVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Nzs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njo4NTk4OTg5OzlAOXu1tK20u7KwrLKtnaenr7m5s8DIurXAr8bJzrvCy83Jt8u/tMDHzLC2vce7wcfDvb62ubSkqq+unJmHjoN8dWlqam1oamxua2ttZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eX19fYmRtjo+EkYaPkY+Zk5SSnJqinJugp6iqqKqmqKWjmKSupJSZpa+pn5uYm6CerpmbqrOfpaafo6OhlJOblpaSqKqtmpygoaCalJCMmY6LkIySjJaUkJ6hoKOcm6KVm6CioJiiqKOiqKugq6+krbelo6OirK2qqKuvs7iyvbWzq6+YhHNzaFtZWVJVUkZZTFBcWU1UTlBMUFJJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9NTc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaivrZupqKy3tqy8yru2v6zMx8a5ws/QybXGvrq+xsu1sb3EvMLEw73Asriupaquqp2XhoF3eG9uaW5ubnFnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXV1cXl9gZH6NgYt/i5CKko2XkZeZoqCbn6qppq2qp6+jp5mfrKCVlqSop52XkI+anq6Wl6eqmZ+dlKWhnpKQkpKTlaerpZqZmp2dlo2MjJSGiI2DkIuSlJCgnqCjl5WflZqgop6Tm6Wlp6iooLGwprC8p6CjrLSrrqewtLC5tcCxrbGrkH1xcmJWVFVOUklHVlFTUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6vMPL0cyzubq+wMTHtrS3vbK6u8O9wbCzrbCtr6qboohraG5vcm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/dYmOh5CJmImUlJebmZ2om5+qpaSqnaeYoKWbko+eopqXloWEkpqjj5OinJWWlYeimpqTi46LkJmkp5yVlZebkJKHlI6MgYuNgJCKkpKRoZqfoZWUmJiVoqWZjJmkpqimoaC0sqeyt6Gdoresqq2ksrKmtby1q6uxo4h4cm1dTlBRTE9DTU5OUEtGTk5KSk5NUUlNSkFHS0hIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKmloKmlpLOqorLDtbWys8fHuLvEys3Hta+8v7i8xLOzrrairLTDubqtqauzrq6elqd9XmBnc3F2cWpuaWZoaGpfWFlYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWWFhZWFtdYW9zdnGFiIKHgJGDjoqUkZOdoI+anKKho5iklqGblY2HmJqMc42CfY2XloWQmZCTjo57mY6cjIKKgIqYn6KekJOYloSOgpN+fnSJjnqQhpKQkJ2amZqQlZCdjqKjjomaoKGko5uitK+sr6yfmKW5pqWwobCunLC7qqmvqpmBdnJjVk1ST1BNQ1NOTFFNQ1BQSElOU01ISkpESkxGS0s9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd3t6KjtKilpaijpqWmpqazp6W0wbivtLDKxrm6ws/Hv7WvvcOvsceyraerlaSuv7ewr5+mrKyqlZSicldWX2hnaWhpbmNqaGdiXFhYWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeLk5Cfl52VlJaUjpaJf5OJXztXb3uLlIl/i5GMj4WGc4qEloF5gnqFk52Ug5WOkY+Dhn2TeHJvhY1+iYCQjY+XmZiTio+JnIiel4eIlp6aoaCXp6+pramon5ettKKmrZisq5intKKpraOSfXJtX1tOU1JWTERUSlBNTEZPT0lFTFFNS1BKSU1QRklIPTc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5eLego66hpqaqoKepp6KpsKintMG6sbWwycO5tL/PwLqxsbjEq67JrqejnYaaormspqeVpaSjoJaOlmlRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXuCdFBCQH+VkZF9iZSMhIqNm42WlYqSiIaVhniIf2BKUW54ipKEfISMiYR/f25+f5R3dXZ4hI2ZcFGNiIqHfH54lHZod4WIfoqIlYqNkJKWi4SKiJSEmoyBhJKblp6clKSjqKmlo56bsKuhpKSQpqqWoaqcoqaoiHRsZV5bSFFRUk1JVU1TSUxMUElIRktOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj03Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXa2nKOnnZ+hrqGnqKWnqK+tqra8tri3s8K8t6i6ybm3qaq3uK22wKqim5KDj5mxn6GZjJ+WmJSRioxlTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+GgXuFjJKBkpmLj3uGj4B1f3hzbnVwdI2OgXl9iqqFeXpodnuOcHJteIGKjJJ4eoB7gHZzcpJ3Z3WEhISEepWJiIqMi4B/hIuMf5SDe4CPmJWclZGfnamen6CeoKmln52YjKekk6Cglp2epH9xZ2BcXEpWT1FHS1hST0pNTVJKSkpNUEhMUUxSVE1FSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLi8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8PDd2rpijoZicnrOpr6mlrKywsaq9tLK8uLa6tbKgt7uzq52fraustbOlnZaSmIaTo5aci4KXiY+JhoaDZkpJSklHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhZWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gXZ4f4mPfISYkoFyh498dntva36tfHOQin97hpKBfX90ZnZ8hWxvaHN8iYyHgGx5cX1wbXWPcWhxgH2OcEOKhIKDhX53d3qLhX2LenV+jpKPmIqSmpujlpmdm52eop2WjYqkm4+dl46WmI92bWxlYlpYWFRRSlNVVE9QTlFWS05LTk9KUU9JT09LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn56WoKavrK6rqKmxr7GsvLisu765s62om7GorZyQl56nrKekm52TiJZ+jpWRlYB8inqFgH9/gWVKR0hGQkBDRElMTE1RUlBRU1VUVFVWV1dXWFdZWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hvfHmIj3l8i4VvbYyReHN4amp/gnKWkYuBfZWASpKYbmh3foFsaWNseYWQkoZrc2x8bnJ7hmhtcH5zjYiDhXp9fnt2b3R0hYJ5gXdwfI6MipODlpeYmpCTlpeZl56XjIOJn5GKkoyGkJZ+bWhtbm5XVVdUUVFaT1NVVVRYVU1OSE1KTU5LQ0lOR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6kra+irKqota+urLS/q7zCv6ajmpWlmJ6OhYyWoqSbmpOXj3aRfoWLkY98eH50fXh1d3xmT0VHREA8Pj5BRkdHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpyQZlvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4h1gYiGdGyakXRze2prnY5MeYSSiYSOZzF2hnNsfn2DdGZldH6EhIWAZmlsdWtwf3xncHB7bpKNjntzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlY+XjoB5iJeIhomGf5CHdWlpbmdkV1FZV1hZW01QVVZaWU5JSUVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiZkZqWpKitnrKfprquq7Kww7K7w8ebl4+UmYuOhnqFkZqWj5KOkol0ioR3i4+Mf3Z3dnl3b3hzaVVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bXGDgYWBeYSGhnlyoJV0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiIBoZmJpbnJtcIN1aW9YdW+OmpF2bH96fG1xbXB/enN1bWJ2hH+GgIWQkYqLipKLkYyLj4N1eIuPgH6CgH2PeXBvbmpeWlxdW1lYYF9TTltbWVhMSEpGSkc/Q0FCRz9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW1qa2xrsGzu8HGl5CMlJCBiX1ugpGTioSLiJCIdoSFb5iKjH95e3tyfHR8a29eSlBHPkA3NDU4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8fYWDf4x+dqKZeX6GgISZhZucYYaqn52KgpCNenaJfomIjnOKl4+De1xkcXR6e3eKbGdpYXhvhY+Cem6Bd3OEenBzeXdrbmldd4d9h3yIh4+Ai5OXg42GjYZ9cYR/hHx1d3t9iHRucXJlZl5bWl1TW2ZeV1FVWV1WR0tLRUxHP0ZAREM/QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMd4l/lIyRnZ2fppGgq6Cxqa/AsrvGupaPkZSIeoZ2a4CMkoN+i4WQjnmEgnWiho1/f4KAc4OBfWx5bFNYTEFFMzExMjY2Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSS2mEiHuJeXtxfI+Me3yJhn6Xh3ahmYiHj5KUpY2sqUiHrbCvioCAk4qCi4KEkamHgJiYipxzbHyBhod9jmhnZ3h+boWGgYVxhIZHa4B3cXl2aG1rX3d9g4h/iIWMepWenIqLiZF/e3WLdnx3bW93fn5ycXBqW1xcW2NiWGdlXFVQUVhaUURMTEdPSURGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NzU2NzY4O0RGTE1NTEM3KyImJyspKysrLzAwK251MjI0MjBMgVw1PTxehHR8foqFh5GPlpiSl6GdrKGmuK+zvbSXjZKLmIt9dHB/ipN/fo2DlJV9hn+HpYiJgYOIhnmJi4B1hnlfY1dMQzYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVRUVVRUVlVTUU9HQz84MCwjh1s+Pzk0Ll2WcHOjVUZJS01OUFdgWXBaXF9qjZOHlYCEgoWRk36FiZGBmpaCoKGYlZuapa2Tmbuxp7vHw6eKjKGljpOJgZB8coSen5GdfnaFhYuPh5BpaG+DgHSMhoSLcYaCd4d/e3aFfW52dWeBlY+GiYiIiYiiq6OWiY6YgHuCiXp6b2dreH14fHFpY11aWV1pXGFmX1pPTE5YU1FJUUtETkdDS0RDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnZwZ3iDe4CMgIGQj4ubmqScoaymq6+wl5KRhKGUhHh3gI2UfX+ShpOWfoqBkpyOhIGCjIuCio6EgIuAbXBqXkNBNC0tLy8vLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISUtLS05WYGN/Z2dudZ2bj5qTk4uNjpqIk4+di6ChkqOppaOsk6i2oqjBw67Ir3i6lJp8jKGemISThYKPoZ+TmZKEioWPmJGWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGXh5OJj4+Xpbapm42VooOHk4R+f2tqa31+fn9xX1tiXllmalxsa19YS0hPU1FOTUxGSVFERE5GQkNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwg3B1h3F2kYZ+l5aalJ+fm6egqpaTmJ5oZqSafoWTknqBkomSkn2LhZmSkYOAgYuNiYaRh4SIhXh4f2hOUj4vLy4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFSU1FOUElFRD47PDpDRj8+PDg1Mjw/UjVISEhMTE1OUl5vinxzgn2gnZunpqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMm3ydHPvpugcGmrqZ+Ek5KFnKGampqnkZGIlaKamnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZWenI6Tlpqko6e2sJ2SmqiIl5COgYhsc3N8fXpuZl5bX15hZ2RgZ2dcUkVLS1FPSUpNRkZNQ0hNRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTQ2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYzQUBpYl5QcXVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mImI15go2Ljo18ioaQkI+Cg4CJjImFk4WDhomBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49RkhAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKiptayxt7Kyrbuxs76cs8Ssu8nLuMS/t6WjsLKsraqji5aYhaamoKKYgqaZjaKqqKSHhZOjoKCqoKSpjpyxi5Wjp7e7nKGjsJOjnaOekaSiq7Cts7WilaaqiZqKk4qVent+g3xlXmZaY2BdYmNeZmdfW09ESkhUT0ZJTEZLR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo1NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljWGpwWHqFdoGUhYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMj4uKe4iDh5GPg4WBjIaFiJKGgoSJhoeHh3FuYUBFNjQ8My8xMTAtLCstMS8tND9EQU5WUVJUVVVXVU1cUUdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHxKuzxbattMCzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsLGbmZKan4mnr6qklXefpJehq7GzmJapraiutbuyuqyvtaKxrLK1vLi0rrWgqKijqJupsK2zuri4qJy4qY2lj5KToId5gYFzWF9iVWRgYGJfX2ZgW1VKREVMVlFJSktFSkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxcWlFiZFd6dXGBlX2EhpN2hn6AjXu/u6O8grSUk46bj4SIj5OKiXqHgYyTjYeFgY6AgYqPhoCGiIWKh5F6eW5dV0BFTjw2OjQ2QUI3NjQvLzZDSENRXE9RVVdVXVdQX1VJS0pBQD9HS0ZGRDs+QDdENz9CSkpFR1dUUF6PpK6ksrTDtrjBzMq2u8S9s7TBt7jCtb+wuHSxtKa6xaSwxrmxs7K0qKS2tqqxoKKWm6KSpbGtpa2sp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6t7+4uri6ra2xprGqrr6wvbzDw6yZu6iVro+YmauJfoB6aFVgX1ZoY2lkVltjWVZUSUhHTFFHRElKQUlEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVZad2pwf4+EgY6Fb3tyeIhiuaGZo4mVlJaTlJSOkJeSh4d7h4KOloqBhIGKe3yLiIZ8ioKBi4SVfXh6dWZPXGRHRUw6UWRgW15TRj87SFBEWmNRUVlZWmdaVGBhTVNPRUE/SUpIRUZBQEM9RTZCP0hHS01TWlRelK+4tbu5ycC7vcrNvL3BvLi2vLy3vrW6s8ZhdbKlsZqeq76qpairqqSisrWgq6ielZaemJ+upaenpZ+kk6KnsLOosrK8tsG908nJ08bCxczCysTAvr7AvLy4tLC5t7fDusa+xMmwnrqroqyPpam3iYB8b11fX11VX11oZVNZYVZSVklFRk5LQT5IRT1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASk1QUkxRXWhtbHGPjYaQc2xycnSI1cC1mqCNlZmZkY6XkpaWjoaIfYeDjZaLf4OAg3l7i4SHe4t5gYqCl390fXprZXB2WV1cUGVlYmBlZF1bWFhcTWRtVVJtbl9vX1hnZVVZVUtEQktLSEZISEhIQkk5REBIS1RUVl1aXJO5wLm+uMbBu7nKy7u3ura5ubS4tbWutreZZHWpnq1wXqKtnJihopuknqullJ+fkJSOlpiXqJ6mn5+amYOknaykqrGtt7C8uNTQztbPyczSzM/OysfAv8LKvsG9wsDFxMbKwMnPtKS8sbWwnKy5vZp9dmlbXlpYW15YYmJRW2BTUUtDQkZHRTxARj9CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LiYqKigtLjAsQE0rLzU0bYlJMEiJdD8+QkRAQ0RHS09EUlxaaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQjIl8gYRze4qDhXuKdIGKh5V/dHt5bG11fGlzZWlsaGZqaWlgZmlpbVptdJetpL2Ih2dbb2heWllUSEtPUEpLUUxUUUhMQUpHS1BfX2JnamKXt8ewurS7vraxxce2sLmxsbuts7Goq7itjbaonpynmk6anoyPoJaRp5illYqTk4mRiY+Rkp2boZiblZaHnpmmmqywqK+ns7PT1NTW0cvP09TO08/MxsPK0L/KycvJ0sjNzsPQ0riwxL3Euqa3u8Sif2xhWltcV15WWGRZT1xXTlFDQklFQ0k8QUQ+Qkg/QEI4O0Q+QEk9NTY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CRmYNocm95eYOhqp6ml4ybm5iLjpWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfnF5dWxweH9ye254c2xpgHBtY2lucHlpd31+y7/D36duY3hvZFthYEtQUlVOWV9QXl1OUU5UUVVUXG5ud4Nylq64rLWosLarrb3Bsqu1pqW5qKyvoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSLg5SVl5eUm5CcmJmZnp6rrKSnoqysztLV0c3M0tPT0NTRzsjD1NHIztLT09fN0tHF0tbGwc/IyMOpv7jQnHdsY1tgW1VeUVxaT09UUE5IPkFHQkNGPUFCP0ZFPkA/Oj09PTxKQjQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bHdwfX6AoJ6eoYyNmZOUi4yTj5aFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBvd3Nsc318d3xzgnhxa4Bycmlwcnp5c3u+y5p/jbKEdnKFd2lhal1DWlpbV2ZkWGVrVFhdXWBjXmN4e3+LgZmqpKSioKGppqqxuaumtKOirqKkrqKnsZ+JppuVk5GKko+IgpSJa5WijZmEgYZ+kYODk5esi5WOlZqOhpKRnZensKKgoaWkqMjNz8fCy9DT0dTSztPNxtbTzdTY1tbY1dfVytTazcrY1tHLrcTDzIlwbWBeXVZSV1JaT0pHSklKQDs6O0VCRD1DRD5IQz9DQjs8OTw6R0M0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKKgJ2VnpSFi5aJj4qJjoiPgHiElJmLjYiIi4l+g3hzfH2Eh3eAe4eRl4GEb3hxbXV/dnh9dIZ8eWyHdnVufXaFdnl7nbWMPEGLxqV+jX1qZVdJQ2VjZmNoamRveVtfZmhrbmlugYSJkYyen6CekZeZoKOkprKkpbOgoqWfoamhorGch5+SkpORi46Lh4SPhH6cnIyNgoSFepR/g6qWo4ySi5iTi32XipqRqrOYm5ynnKa9w8W5tsXN0dDS0MvSy8nUz9HV2tfX2NTZ2M3Y287J2trS1r/MzbR1dGxiW1dRU1BYVUVGSklFRT06NzpAQkM6SEVARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MiooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXSGjX2XkZ6MfoeSg4mGhYqCiH14hZeXiY+Dh4aHeoR5cXt7hYZ1eoaOjp16jXB9cHB6gHJ7gXKEh4Bujnp1d319gnV/fIeJsHRZqsK3jZKCcW5jPV5ocnBxcG54d4JlaW9ydnhye4yHj5OSm5agloiMk5yfm5+roKGsnKKamqCmn5+smYyajZGTjoV9iIiDhYuOoJmTiIOHfmyZeYSZh4iTjI6VjIZ7m4iTj66rlJWXn5imrrW8qa29xsvIycvLz8nE0srU19jX2NfU29fT2dvWz9va0tbJ1cyTdXhmZVhXTlFSXEdCRUlJPkE+PTg6PkA8Pkg9QEJBQUVBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmx2gIhxkZCbgHmAjn6DgYKFf4R8fYSYjoeLfoaHgXeDeW57e4eCdHqSno6hdo92g3R1gX50gIRvgZCCb5KFdXyBhXp2h3yJuMalw8q4gpacj3hwZk5lY4J7gXeGopCLeXp3e4SAfIR1bZSWlZaQmJGDiY+XmpeXpp2YoJafk5KXo56aq5aRkYuOk4OMhYmJgYaQkZ6cmYmFi4GGl3uIiZ+XkImOiouCfKGJkIu8oZiTl5qcqKalrZ6ntb7Av7jGyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvGg3Z2ZGZhXVJVVVRNS0RNRDs9PDw5Ojw/OT1BNz4/QD0/Pj05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs5OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVxpdHp5bImNknd2eop8foB/gH6Fe36CkYqFhnqFiHx2fnVtfX2HfnR/kp6Rn4OSfId+eI9+eYuKb4ObgXSZhn2CioV8fpF7kKmPkMOgvYybpJx+ioR9iXOMi39zppqcmJSFe4+RiYRpR3GhpJ6MjJGShYiLkJKVj52bk5SRl42MlZ+dlKGVko6OkYx/kI+Oi4SJk5aan5+JjJSSnZGDjH+mmYiFjoOGhIClhoqLuJidkZWWoaagnZ2do662urSrwMbK0MjHzc/T0tLY0tXXwNfY2dvY2trZ2dfbtnZ1dGdmYlRdWVJPT0hDTEM9PT45OTs6OTk8PTZAPj89PTk6OjszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdPPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PERSU1JYX1ZYZm1tbWmBjopxc3iKe3uAfH98iHt9fIuHg351hIZ6c3pzbYF+hX53hpuhm56UkoCMiH+Yh4Cckm6IqYV7oIx8kY6DiYScfpuRio2jop+RpK+gi5GLhouBk4ZXcq2Ln6ubkIOZnJCPjluDopGCjZ+TlIyGiIySkoyUlZWQjI+KiJabnY+Vl5KMk5SGgIuJk46Kip2XmaOihpOdlqCLiomOnZCDiI+Ag4eFpYWLkLOYnJKUl6GgnpmSm52nsbispL3Cx83Ixs/M0MzO18/R1K7W1dja2Nra19bZ2p1seXFjY1paVlFVV0NASUQ/Pz46NDk6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieGxifpGDb213i3h6f3uBfYd8fHeGhYBzcIWCe3V3dnSFg4V9f5Kmop+mopeKnZCUl4uKqJdyirKNhKiShJmUhZqMo5agmJOJm56ik6mwoJGVkY6OiJaMb423hJrEyLKcoqacnJiWkbGQZKTNx5WOhoeJkJKNjZOVioWKioaWmZuPkJSTh5aYhICPi5mIjpCql5ekooiZnpaaiY+HmJiKhY+NgX+Hj6WIjZOompeUlpihmJ+Zk5yaorK0paO8wb7HxsXJyMnCytPMzdSo0tHW1tbY2tTT2s5/b3tkYFtcW01JU1lCQUdEO0I+ODM3PDw6OD42NDo6PDo3Mj86OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGOfXxtfoh4en57goKDf3d2gYN8bW6Lf3t9eHh8hYeKfouis6ejq7Oil6efpaSWla6ig5G4lZKzmoyioYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmpehwI6jybirnKOmrZiSm52ynYWGqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIuUk4eVmYaEkZCcdZGYs5aXpaGHnZqTj4uQipebiYuWjoZ9jJieiZCQnJuak5iXn5OgnZSem6CxrqKkt760xcfEvcPDwMbNysnTps7M09LR1tjT0Ni6b3ZyWV5TXlROSElNRUJDRDU+Ojc3Oj88PDc9NDI2Njk3NzQ+NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdNWlxZSmZgO0iEi3p6boWGenyEeIGGgX5weHx+fW9yjXp+gnx4houJhoSSprutqLK9sKWts7Ooo6GwrIqatZ2juKWVraWXqa24p6Sjn5qpmKqkrrCqmpmclJWRl6CYmru7rsqhare4q7CUmZ+jrJOXvqNeqrKDioqNlIeQfI6OfYOGjo+UlYiIk5aMkJaNi42WmJOdmbSXlqudipyUko6RkoyZm4qSnpCLiZafoY2UjZianZKcmJ6UoaCUnJ2lr6ihpbO4rMLIxLa6vbzFx8fC0aDGyc3NxdfW0cvTn213ZVlXUFxQTkVDPjxDQUI4QDg4NT9HPT02PDM1MzQ1NDU0QjQ5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRIYmBicEpAi4p+gHOGh32CiHWDioJ/bn18fX9wd4d3joKHfI2PjIaMmarCwK+9xruztMC9tK2rs7aMqLOtrb2rm7ulqK26uKunpqKipKOpr7Kxq52cpJmbmJefoqamkqS6r6nAvK2usrmlpKh+iIacrb2wgouMi5CDjoORj3qBiJCNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpiPkqGRiZSbpKyUlo+UnJ2ToZ2bmJ+hlJqep6akoqSws6fBxsOvsLq3xcTDv82mx8THxL3W0M3EyoVxcF9ZV1xYTEpBS0FGRz9BQEM7OjQ+QT09NT02PjM0MzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVPNzlHRD9DRlxlRmBpZ1pdXJOMjIl7h4yHg4x1h5GKgW9+e4J/cX6Be5V6kpSUmJCTlqezxsm/wszCw7nHvbuvq7m7mLO3urLArqXBpKuwvL2qrqujo56nq660sKqcoKqcoZyWn7C1qIyjurq2wbysqZ2zpaSolIWOqcTDpIKLj4eIhIaVlI15g42Rj5GhjIyUko6Jl5+Yk5mVmKagr52Mq5yNlo+SkZWVjpCVko+hlIaXn6CynpSZk6CgmKSfmqCboJSYnqWkpqakr66mwMTDrqi3tsnDvrbPssS/xLyz0crIwrRydmpaVVlnUExIQkxLTEpBQT5ERDw1QUU7OzM9OEIzMzIyNjNBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWk1lXGZUYmuZjZaKjIiTkIaJeYeUkIFygHuNf3iHgoKQeo2hlqiampm6vcfIycHSycrCzb3Cs628vqi7wL27w7eswamss7y+qrCqpKWkrK6zrba1oJ+vn6WimKOzvambqL3BpLa4sKyUsqysrJeHmqmmpZGCjJOlloqBdYqSeYWOkpCeoJOPk4yPjZSjmZaclZWjnqqfkaWajI+Pj5WWiHyPlpOSo5qVn6GctaWQnpalo6Klnp2mmJ6Vl5uko6mnorKsqLzAw6+ls7fMv7mvxLO7vsG4rMLDwsCXandfVlVZWEpKTElGRERIQ0NBREw6NERJOjs0PDhFLjEyMzUyQjI1U0hOPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+aUhfWGJaY2NWno+cjpeOnpKJin+KoJOEeIV/ln9/kIiKkYCWoZmup6SYwr3Hw8fF083Ozcu8wrewury0vcu8w8G2t7yts7+6va6vqKCpqLatrqmyt5ueraOooZ6rt7iqpbC/xbK+urSoq7a0rq6XlqWsqJ+RjZKyxaeWjnySlXyHkpmPqpmYk5OPkpWTpJ2TnZmUoaOinJifmIuMj4+eiFqQlpeSl6SZZZijn7KllaGWq6upp5ufppeYlpiVoaSopZ+2q6q6u8O0pbS1y8C4qrarsru4rqi4ur24gGhrWFVTU01FSVJNSz9BSEVFSEhIOTVFTTs+OD1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs+QEJGQnBFaklSZWFMRqWUnJeil6mWjJGDiKaTiIKHgpyEg5WQkJSPmqKfr76voce8xMTHxs7OztLKvru2sbq7vL7PtcO9uLm3s7G1s7izq6ecq6y5qqmnr6+Yo6+lp6SltcCxrKy0v8O6wLq0qLq2ubSvlqWtrq6ki5OUoY10wpp9l5mEjpeZjLGVm5qVkpKZmaWjlaCbl5qpnZuhoJmKjZCWnGBKlpyalZqlllWXsKCvnJ+klK6uq6WaoKWUk5iYjZygp6KatKmqs7u7u6qxssfAuaasq62ysqOhsrK0pG1rY1pXTU9KRE9PUFI7R0tJR0lDQz46S1U/QTo9RU0wNzUzNDpCNDRNV088SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiqlpmgoqiwmZGXh4uolo6Ik4WgiISdl4+doZujpbXJtanGusLDyMrJyMzNxr+7s665ucHBzLXHusG5tbqwr6+ztaekm6q0taqppq2smqSupaSorLu/qKy2t7/Bv765tLPEsrm+raOvtay5poibl6abdr+fhJmdjpOamoyul6GcnJeUm6ChqJ6on5maqpqhp56YkI2RnYNudpKimpWdop2RrrKjqpSoqpeqraOjn6SokZGZnIeUnaKelrGnqau5tr2ysq6+ubago6eopaacm62pqYtgY19eT0pLRkdNSlZMPU1FTktMQkNEPFFWPUFBQkRPMTg9Nzc/Qjc1VVhPP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH5lXkhFq5WboZ+7r5mVn4yTq5yRkpOJq42GoZ6Mo62Uo6S2xr60wLrCwsfJxcLOyMK+ubKvubXBwsq1xbLBvLW6qqitrbCjo5iqtLumqaarqp2pr6ejqqu9vKitvbW4vse8t7a4wbK+wbSqtbervqWQo5iSoqC9n4maoJmXnp6Pt5+pnKWim5yhmqiks6CbnaacqKqemJWPlJuLl4mMpKKUnaKdoLWvpaSTr6uZqqqdnaOjqJCUlJ+Cj56enJWppKGhs7S6tK2otbKznpyjpZqXlZiqoZ51XVpeXElHRUZNUUlNRUdHQlNMSkJFR0FWU0NIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoFkVDQ5LTE5ZlxGQ0OdcGJHRaeXpJ+ew62cl6WYmqqclpubj6qWlaemla2smKKrtsTCvL63wcLAx8S/zca7vbmysLmzv8PItb+wvLa5tqakq6ytoaGaqqvFoqSpq6aerK+roqmpvrinrb+yuLfHtrW5uMCzwMK4tbO0r76jl6OXlJyUrp+QoqOlo6OfkL2kqZ6orJ2doZulnr2hmaOfoqmsoZ2XjZWek56Hj4SNk5+koJ61rKWclbGnma6mnZmpnZ+NmJSeg46gmpuSpaSamKuxtbGqpaqurJuYoKCSj5CVqJ6UZV9XYFxOSEdKTkxIRURJQT5RSUE8R0lIXFJPSz1IT1U0QkY5PkhHNUNhW0tCTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNDZAOTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW1SRjxLeGVhVkuimqOcnsWsoZ6sn56uoJOjn5akoKaprJi2saKqs7bFxL2/tb/Cu8jCv8rHtbi1tLGztLfBxba+sbi1ubSfp6yqrJ2enqWkwaWfqq6gpamtr6KmqL21prG9ube2xLO0uLq/tMTBubmus7W1o52llZKUoa6gmaKeqKiro5rCrKmerK6bm56ZpqC9oZ2kmKusrKaimo2an5OeiY5Xf5afpaGguKqmk5i1o56xoJ+arpadjZiTnIGOn5eVjqKklpCmrbKqqaKipaWVlZ2Yi4+RkqSeiV9iWGJfS0hKSk5GRUFHSz89SkI5OUpKTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtNnp+hmZ7EqKWitKKds6iTq6Wgo5+sqaydu7CorLaxx8XBwrLCw73GxL3EybyvsLatsLSvv8S0ubGwubSsmaixqaqanaWhp8Ktm6yxnKqjrrGppKi9tqe3u76vt8SttLPDwLTHtLu4rLS2raqippaVlaSsop+gm6ersK+vu7KmoKmpmZmYk6KjuKCho5KvsKylp5+SoZ6VnpCQjZWemqKep7OmpoyYs5uirZqdm6yQnZOVkpl/kaGWj42foZSLpquvpKainKCekZGak4WLkY2bnX9fZFpmZEpITEpTQkNASUg7O0Y/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwyNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ+joJygw6mkqrOipLWqlrOtp6GksqyuqbuyrbG1tMbAxMO1wMS+ycS1v8jCtKu1qLC5rL/Es7eurLa5pZiqsquqmJ+ml627tJuosJutoK60sqerubOourS5s7nAqreyxL61x6i/r662tamnrKGYl5KmpaKimJilr7iusrW2oJ+opJqVlZSkoLeipaWWr7Kyp6qmop6ampuWmKifoJihnq6yoqaNl66YpKuWmZ6jkJqMkpaYhZWelIyPnJ2Ui6ipqqGnoZielYuOmY+BhZSIk553YmdcamlNT05OVD5DQU5DOzpJPzc3Uk9dX1JWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDEtLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJb2hVQ1dGjHlmQzuko52ipr+np6+xoam2q566sayjq7S2sbC5t7C3uLjEvcPHvb3EwsbAuMDFwLqptqSsu63Bwre3qayxuqKUrbGtspakp5GquaqfprGdq6CwtLOqqba2rb2ttLO5uK25scO7v7+mxKuxt6+pq6unn5iZq6GioZGYorGvs6ywuZqcqaCal5OYp6C2qaajorGxtKyzqKyfm6Cgm56lnKKXnaOzsJqfkJOlmp+omZSinZSXiJOWkpWWnJOIkJqZlI6pqKafo5yXm5KFjpmLfYuVhI2ZaWdrYGxtV1BRW1VBQkVUQDw7SUE3OlhQZF5QV1dFWV9eTUxSTl5LSj5aY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNjEtLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9qJ+doqq9oqqwrKSyuKqmtrWsoK21va+zuLu6vre2wMK/yMS5xcLAv7jEvcG3r7Wnq7eyvL6+tKiusbaelquuqK6XpqiOp7ufpayzn6yisbCzrKq2tLW+rrCxtaywtLPBu8a3rL2wsbisraqjsqaepaqfpJeRmqCzqrOrqrOanaecmpWOoaaktK6ooa2urrGotK2yqqScn6iknpWimZuotamWmZKSnZmdn52Qq52Wl4SUloqdmJyTio2Wl5qXpqWjn52WlZeSf4+UhXuNkoKLlWRrcWdvcV5GWWZWREJNWERaOUhCNj5cUWhcT1ldR1teXU9NUlhkSkpDXGJfUEtNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVVxnSzaMemZMQKSaoaWtt6Wtqqavrreqr7W7p6axt8W3sba9wcK1tbrEvszGucPAub65w7jAubK0q6m6trq5vrSqrbC1mJinrKqsm6urj6u+nqyusqOroLGts66utrK5uKqur7Gota+1vL3Ks6q3tbG0r66nobSgm6itoKaWlpqasqKtoKavl6GkmpqTjqOlqLOpoaazrKu2pa+yta+kmZ2sp5qYn5qZq7ejl5ORjpecoZeWlKqdmpF/kpeMnZyZlpCKlJOemaWioqCYlpKTlXqLj4V7jIqCipFqbXdtdXthRWBrWUlIWlo9e0pGRDZBYlRpW01cYUtcXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVF9UXy81KENfUVwuK0IvSkdQW0czY1lUS0SZl6GxqbKqraakr662qbe1uqSstLfJu7S7ur+/tLO3w8DMyLzDvLa9v7+3v7yxva2nurm3tsK2q6yxt5SWp66rqKOwqpSvu6StsbOnqKOytLGysbWxuLSpr6yyp7evt7TExreptrassK2pqKO2oKCnsaGklJyZlbGep5ygqo6po56blpimpqW4p6OytayosqeusbaspZmgrKibnJ6clKm4nJSOjoqYm6KXj5iloJyTgpCUj5ybl5aViJaQmJqnnKSgkpaRkJV2hI+He4SBg4uKbG92dHt+XEtlbVxKTmRcP2J7R0k4R2dXZVxMXmNNWFlXVVdUaV1PT0hgXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOR2YyNydHYkxWJS1CLj1FTFE8M3JrSUNDkZqlr6Wur6uopbGztKu3srihq7W5ybmtwbvCuLOxtcLCzsXAwb20vb+/ur68ssSnqbmwtra/vK6rs7GcoKexraamr6WdsrWtq7GyrKmotbustbO1rbStqqyorKm5rrKxyMC5pbqwqayspaiusaalo6+kqZydnJuvmqOjo6ORrZ+koKCiq6anuaSstbalq6yprbC2rqKeo6mqm6Cbm5KktJmOiY2HkKGglIyUnJ+SkIONkpKcmpeVk4eXk5WZp5ufnoySkY2Qdn2NhXx7fIaJiHBycX18fVxTZG5eTllnXEZElltHO05tWGJbTGBiTlZXVldUWGddUVJMY1lbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvKzEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISis6SD4zQkhTLD6QaztHSI+cqquiqrGlqaWztbK1trKyoauuvcy6rcC6x7G0rbTCw9LFxr7Asr7Awru+t7vEp6y3rLK3vMCvq7GsoKOnraqopLCjqrKqsKywr7Cuq7O8p7exsqmzqqulpaOtuq2qssO6tq27qamnrKmosqaqpKOuqqiinpyjrZWlnpiemaydoqepoq2mpK2ruLKyoaqioKyvsayeoKenqZmjmZmPoKaXhoSOioueoI6KjJWajo2EhY+Un5yUl5SGlpSTl6ScnJyKkpCNiX9+h4V8dn6FhIVycXCIdWtfWWBuYlFzcVxLO4R8Rj9XdFhhWk5kW05WVlVXUVxhXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE7XEowLkpnREY4O0IwNUVLWDFAlVk9TEWVmK2ooquznKqqsLetuLavq6arq73JvLC9tsKvsayzxMPOz8O+v7TAwsO6v7PIw6uut62yuL6+sq2tq6SnqrCop6ixpbSuq7GvrbKxtKy0vKS4s62sr6irn6OesLerqq27t6W3tqSpp6urqq6hqaemsbKkp6WhoayXqqGVm6CmnqWiq6Sto5+nsbiurqOmo5uqq66pnaKlpKSYn5uWj5ickoGCj4iFnJ+Lio6LmI2OiYKLl6KbkZCai5OSkZOjmZuaio6Li32GgYGDenN/goB8cnWLpId4a15gbmZXZYdjTj9nk0xFYnlXYllSZVRNVlVWVE9cXWFVS05oVlZXSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlZaLjBKZ0FBPDxCKzpKT140RIY9R0ZEl5OxpqOssZirqq22rLayrKasqqm8wMC3uLK7taayr8TJy9G/wLu5v77BucG5wMStsbWxs7rAvrKwrqyqq6i2qqaur6q5sKiysq+zrbeqt7entLerrKWpqpyknrSzqaiktLWgt66gqqiqqKunoKusqbm1qaqpqaKqoK2ck6qhnaCloqajqp+dp7SvqKaqo6OYpaenqpyipKOgmZigkY6PmI1+h4yHg52dhoOKio6NjouChZSimo2MmZCSkY+Tn5eZloyKg390hoF/f3h0gn55dn6Ah52Pb3JnZ3B3XGFziGtPXplWSG14VWRWUWNPTVZUVVBPWFtiVUhPaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjEmLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EPJaOsaKmq6+arKWtsLS1sKymsKqour67wLCuua6htrDIx8jRwL69u7vBvbrCwL6/rrKysbW8u8KxsbOrs6mktailrbOzubGjrriysLK7q7qwqq62q6qfqqyfo6C2ramhn7CzorWqnqinqaOqoaKsrai9r6yuraKoqKCsmZCwoZiioKennqibmaqxqqOgrqKhlKOjo6iYmqilmJeYno+Kh5WIfY2GhISjloSBgYuGjYuQg4OTn5aIkZyQk5CNkZyUl4+KhoZ3dIF/fHV4eX95c3N5Z3+GpHZpX2VrgHRniIx9U1hvXkp4c1NkVFFeTU1SWmZOTFZZZFhHUmhSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQDSRkLOhpaespKekrae1s7KrpbGnqri+wLyvp7mqpq+xycfI0cO8v764vb68yLrBuLCvtLG6u7jAsrK6rLisorSnp6yytrmzqKi9tq62vrC9p66staytnKmvo6ClrauonJ6rs6W0qJuqp6mjqZ6jqaipvay0sK6dqqShrpybs6OWpJylpZ+lnJupq6afnKuinJOcoqWemJeoqZKYmpSQioKPhX6Pg4CInY+Ffn2Lh5CNj4N/k5qThZOijJSRi5GbkpWHiX5/cnt6fnxoeHx5dG9we2eEeISJZGFnYXKEem1neF1eVD9Xe21UYlBRWEtMTnJ1XUhaW2dZRVVlUEQ+Sk9EQ0E5SEdLUz9qYkpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mY0JKN0dTYFUqPTlEVz0qkJWymqCgqqaloauluLOzpqmxpqy4wb21r6K4raiosMLJyczBtr3AtLe/usi1wrWzsrWyvLe5vbWtubW/raCzp6ursLW4tayfvr2qs8G0vKGvs7WqrJ+tsKOcpqmqpJ6bpbGnsKCfq6mnoamcpKihrbyorrGuoaujpK+fn62ml5+boaOcn5yapKujnJulpZaXlaCjl5uXpayMnpGRkYuCioCAjoB7mZSNiHt9i4aPjYuJhJKYkIaUo4mSkoeQmpCTgYl9eWt+dnl4Y3x6cG9vcXZngHNqhGhlZ19sc41sYWlvYG89WnlrVV5PUFFKSU1UWldNXV5sV0RXX09eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+KR00OSYnLjM0LjArLzQmLDokNDFBaFkxM1M+ZV9ETDZLVmRPKjsxTlc9I5SZrZqhmKilo5+opLiwr6SvsKmruMG5s62fua+rqLS6yMvIv7bCvq+0vbfEtsOyrrmys7+0ur23qLm4vaqjtKipqrGuurGqnLy9pbDBtbair7a1p6ansLOfnqSmqKKlmZ+sqKmeoKuupqCmmKOooLG5n6Oxr6Gsoa2knKemqZqam5+klZ2dm56qp5ecoaqTmZSZn5OZlqGpkZqJjpCGfId+go19fKCMjYh4gouEiYuLhYeTmo+JlZ6IkZWCjJeNkX2FfHNwfXF0dGB6eGhtb3BuaH1xY3ttaWViXWWFfl9ac2pxSkl/aVhaTlBMSkhQUlFJT1xfblNEWFpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1CKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo+L1dVNSiXnqeanZetoaGhpKK4qrGltLSpqLnEtbOtn7etrq2wtMbIwLa+wbmwtLy2vru+r6u9sLO+sLzDuai7urenp7WoqKuxrbOxqJy/uKatvLeyn7G3sKilp6+xm6GkoKWloJebsKehn6Oor6GfoZSkpKK3sKGmsaufrKOvmJyqpKmfl5qepZObnZuep6uanJ6ml5aYlp6Ok5eiqKKQiYuPhnqEfoSKeo6WiY2GeIGHg4eLjYWNk5iNj5aZio+XfoaYjI96gXpwcndvb3RfeXdka2traGeCbWVya2tkaFhhc39eWmx1aVlFfV1bWE9PS0hIUlVHMjpeXmxQRFdVWWVNSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0SEJnW0hUQ1RdaEUuOzFeUSwylqSjmJadqp6moaOhuKmuobu4pay9xLOwrqK1r62tr7TExL2zvrq3sLO5uLq4uq6tv7O0uK+/wbervbq0paKzq6iqs6yusqOdw7emqbe3q5+zu6qnpqivq5mip5ykp5SYobOmmp6lqamcoaCUpZ+kuamkp62mnqWhqJOfqaGhoZmbnaGSm52XoaOsnJyaopaTlZabjpOTo6ekkIiKjoZ5hHyFhn2cjYmKhniAg4eIh5GFlZOSjJGVlI6OlHuCl4+Ld398bHVybWxzYnl0aGZpZ2VthGdnaGRmaGleZWJpZlllemJgUHNUW1tTS0lHSU9TQCEraV5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc3YUwnMp+kpZOPpaecnp6epLWtp6q6t6esw8C3r6yita6nrq+3wcC9scG3sK6ytrW5uLWsqry0r7KxvcC3rry8saSftqymprWqq6+hoMWsqqextaystLqeqKmrsaWYnaqeqKWSmqauo5mepKqhm6GcmKCdp7amr6quoaGenaGVoKafoqCZnJqck5qelaafrqOYl5+WlY6VmIyPmJqooJCHioqIeIV3goKCnIeKgoh7f4SIhoSQhJaVj4+QkZCRjJN7g5WOhnN/fWd5cGtrbGd1c2thZ2Ric39hZGVmZWlpYmZvWl5YXWxjYU1nV1tgVklHSEtNUlg/OWBsaUdCVVNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssL0EqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGJGJTWdpKGSjK6gmpmgl6W0sqOyvrehsca7urCwo7asq66pub69u63Asq+vrraus7mzp6u5sa+us7a7tq+5vqymnrWroKGxpauwoKbFobOmsLOwt621nqyurK6imZ2nqqaflZynpqCZpaOpnJqfnJWdnq2wprmnrqKhmpqemZ+jmqWdl5+YnJWaoZOpl62om5SenZSNlZqOlZSYp6eNjYqJjnuBdIKCi5iFhnyJiISEioyIkoWTnJKRkJCRl4+Qf4GNjYNwgn9neW5oa2pncXJrW2hjYXJ/YGRna25rZmpmZGxcbW12cWFTYmhjZVpJR0xNT1lRUFZhZYFUQFZSWlRGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjQ8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUhiQic0lKOcj4+xnZuUoZups7CfucC2obTCu725saa2sKmupbi6uLisu7Ctq6u3qrW5raWytbGvqbG2trGztrunqaC2qZ2fqqOqrp2rxJmvprCxt7WsrJ6xra+qopudpKypnJWcp6SemaqjpZWaoJ2SnKOrqqm6nqekoJeamp6hj2ujlpmdcYOXnKWBdpKsqJ6Vl6KSipiZgJeKn494hZONg21pfneEcmyGioZ9hIqGb11kYGeEl4Zri5CUknV4i4R/g5CAZ4iAaHZpZlhdaXRuTlBqY2ZxgmZeZGZva2ldXF6JkIWIaE9LQzhFVGddSkhQUFVWTEhTYXB0ZUZbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOXEtbZmI+RzFOYTwrL46kmoiVsZudk6Ccq66ro73Fr6m3wri+vK2ntrGmq6S4tLOzsLmuqqestKWxtaKnuLa1qKettrOutK60oqmftKueo6Wdp6ibsL+VqKextLmtrqSoraqrpqGfnKGoqJyXoaamnJynqJ2TnqCZkZ+oqqO0r6Oio5yWmJmXo4ihj5KaiKGIlZ+if6WAqK2flJSelImEcniMjoOIoHWIjWmXiWZ+c3mgb4eHg36MfH+hoJ+Zf3uHnnSIjnabimyHgoNuaWVke21yYlSGbWNtaZhxWGlwboZXXWlba2paiHBteXKHaIeEWV5GTT5GXk1FUlZWUVBSV1RnXkxaTFJSUEVGRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk6LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTlxMW2dfPUsxVF43LyiNp5iEnaydmZmdn6uqqKq/w6+yury4wb+qpLexqqymtLWur7O2q6mlsa2ltrObrLW2tKanqLOxrbKorp6robOpoKSlm6KlnrG4laanp7e+pqynqaqrp6aioJmhqKSamaejpZmcpaqWk6OclZSkpqahtqSjoKSYlZSYlJyIrpCYlYqqjJijnYaxgaWunpWboJd6gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsXlobFixrm9labySvG5oem1wj9h+U2titrJ+gHGUdZqhqpBWTlhhT1ZORlVcWFFQUotcV1tQQFxEUE5DRkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV5nXD5MMVpbNDEhj6eUgaeqn5ednqWtsqmxwr2ytcC1uL/Cq6a0ra2pqLC1qrC2tKioprWlqLmvnLKytqqlpKeyr66xpquep6SypKKhoJecoqCyr5afpKG1uqKqqKCsraSinZuao6qgmJupoZ+YnqiokZynm5SeoqejobCjnp+jlpeTmJKZha9raouOqn9ohZaHrWZxn56Wm6iXca6hpH53unxsoY92sV9qtFulgGWckGBmgXpmf2l4aqllvnJnpox2sWp8sXh1kZRjbW2nblyEoEVpZ4eWRXWcYH1me6Omgllfi6tof5F4emqoOEqvW1hUbWNaTE9YX1xXVjtOiFBXVi9JU1NKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy8uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWDMxG5KilYOtp6Wfo6WrsrittL2+sLfFsri7w6epsKywqaqxr6SxurClpa+zo6q5qZ6zsrCjpaGqrbCsr6aon6OisZyjnZmWmZ2esKmYnKKgtbOhqpuhrKyfnpqXoKOqnZmepaGdmqGopJCdo5uYoaCsn6WmoJqgoZaVkZeRmoa1m7V5hqqatpl3h7Obt3+Ul5isl39rgaZ6gYWHkZSSd6tnarFbrHuOh5R0iHCOhoB/iJCXeIOCipeMg6CPhbB2d59xa2ttfItPpVhIY2OZfmNopV95cXVSkodeUKluY3F8hoBhnS9Som5bVGtnYExLXGRYXFpCPrB3V1hBI01pRkJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7Ri0wLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YVQ1MByXoJSJs6amoa6pqLOsqru2wrC8w625t8Krra2vr6evs6qir7yroqi1raOstqWlsrOoo6Kdp6qzqbCopp6goLCWoJqWlpeboLCjm5qkqLWvoaiPqaeqm52WmKCmqZqfnaOgnKCjpaSWm56Ymp6jq5ulmpyaoqCWk5GTk52E1ZOZuXGxwn/Gh33WlJy7fZyXqJKPnY2ke42GooGlgnqseY+dVq97iX6farlauXeFhH2mgpR8mXqqeY6dkHuxbY6EdJC7hm+VUK+nxYpRoHpjYKpic3KHbJeHX1K1tMiFf4l8Y6QzQp11XFBqaGRQQFhmWWRhSkhNa0pbU09ZZlpDQz9FPzA8PDU5PDc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdIOmFQNzIlnKOTmbGoqaWzqqW0p6S8t8GwusCyt7W9tLaosrGksrOmoK+2qZuouq6jsLKhsrSxoaSenqipsam0qaWcnp6sl5mZmJiWmaKsnpuXqa6xqaOejqyip5admJyhp6KYoqGioZuio6icn6GelZmbp6GcppSbm5+gmJCSlZCdiLJuaLVxq4hwjqdztHV0tnucmaaOkJ2No36PnqN+sHWDkdLSdVyufIV/pG6bqqZqhoV9rX2YmZB7sXOTnY95s2WWdIWebp9mlFLJi1rCXJ95Yl+tX3ZzhmKXiF5Zyp1vwIB0TUu1U1XGZFVRamNlWEFPal9saVBVRkk5PVdSW1ZZSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxBTlRfZVA1Rz1hTTYyLqOekaWvraWpuqymtaWntru8sru/uLe1vLy0prW1o7Kyo6CssKWYp7qupLKxnbS4qqClnaGqpbKorKqlmp2bqZ+WlZmZk5SkqqGYk6ersaahlpKsn6WSlKGcpaeglZump6Kbo6CumqGenpCWnKOfnKWUnZWZop6VmZaSm4WsfHiodqOPi4epcK6LhKiEmpqji5Oai6J9kpeHroR/grNccrJTr32CgqN+cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52d4dnmIhqXa93lZ+PeGw1ecius19DVG9eZ2BFUGxfcG1WVU0uZWNoUllQO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdCYEk6NzegnZSft7GZs8GsqLKnqrK6uLS5vrm4s7e+tqa5taG1raCgqayglae2rKixsauttKSbqaCgqKK1p6aqpJmelaWilJScmZKVpKeblJCnrbCloJSYqZ+ij5GimqmmoZWapqmenaSfrZ2hnaCOlZ+cn6CYmJyWl6GglJiRpp2HqX5/pnmhj5CEqnCtjYKnhpehooqYl4ijgZCGlKp6f4udeXCxWqiDgoigeHTYf3aHdKeBjpuNkqR8lZCfhHuyXpxkoH2ClW6TXKtcW5N/kX9oZ6pjcnuAapiGcV6rWomgj2tuZU9KQ6FcWk10XWJmTVphX3J0X0pVNkqakVhIRT1HRUFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxPZWRBJlVmWz8xVF9iTDdGSF9DMT03op2ZmL6tmLPCrqutqKa0sLixtb+5urOyubyqu7ahsqWfpqenn5Sqsamwqratqq+hmKKgpqSkuqOjrKGXm5GjoJWVnpqUmKGhkI6MqbCwpp2Wmqemn42SpJiorKiVmKmon5+gpK6joZ6hjpWhmZ+gkpyXnJWdoZWWj6ubj65ucrR0qYx3i6Z0tHp1tIKUpqSUnY2JpIeOdbhui3uLomtrtlqhhmWXl2igoqdtlHK0c5OZf7NqhZKIrWp1tGGdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6YhnBcr1Y8nHdmVG9uLlunT2JSa2VibFpiXGBwfGNTWlE+P2xvMkJCQD5NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFBOKWam5y6o5yxv66tq6unt6m4r7XBtb2ysbu4q8K3qqyhnaekop2Sq6untqOzqK6qoZedqKClq7ido62clpmQpaOWjp2gm5ieoJGTlau2sKaZk5usqZeMlKaapa2jkZersqSgnqissJmho5CZopegm5abl6GTnKmdlJCqmYfUlJq7dbHEgMSHftaXnLh5ipKZjpiKjKeHeaK2dX13dsKCmrJhg7p5wHx1uGK1gYyHqX2WgqypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gYptmohxbY2kdL1dd31bYXm8alpWW2l5XmlhZGZibXlvWFtZQ0FAcT9DRys0SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9UXmBLNTxMXC02QDmnmp+hu6OYscOvramqrLGoua+3xbG7s6+8sK7Bsq2mo5+kopyckaqlqrKktaetpJ+WmquZp624naOumZWhkKagk46do56Yn5qRlpOvubCrlZejp6eUkJalnaStn5GgqKufm5+ppLKeo6WOp6KVopqcl5WkmZCwoJKVqp+FkJm2gJKSjbiWeIOTm7Z3bmxvdG95j4SOiXKewbu8mXqBsqhwgHSRuYN8hoaKh417ioaNl32ku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycXe2jF5/eX2JZ4N5bXlii6xwdYV/WFunaURkWVRmX2NdY1FnZnFtdUJNT0xEO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+nlrPCs6uqqKyrqruvscavtbSwuKe1ua6rpKKnn6CdmZSspK6qpraoqJ+clqGknqylvqehqpeVnJGim5KQoqiik56XkpiUsrW2rJieo6Sii5OSppymq52WqaWmnJmgqKeno6mhkqyel6Kel5aYnZ6QsKmUnKeij2t/apypeYl0f5uPdntmh3u+v8C6b5KDcZSFX3JqWl2aiWFkh46Va2B/lGNtnHZilGuAmpWUZV5gY3GaiWhyjHyGlGZqfnF0eX59Ylt4dIFoUFxug3x7impYbHmBcklKb4VwTnNNRFZcZmBMWldmY19PWm12anJST0RFTTxISTxMPjIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVDRlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPlxPJz8yPqifqKHCpJq0ubajrKaup6i1sqzIrLC0rbakvrGzp6Gkqp2jnJqarKeupKW1qqSbmJWinKetqb6oqaWVlJuWoJqTmaapqJGfkI+YnLCyvqybp52noomTkqmbqKScnKyfo5qaoqesop+qopqum5WmoJeVnZ+dmLGlmaKomZ2Sn52kppuopJudmpybkZeCaG59cneRl5SQhIm0qo2FmJWOioyYloeUlYmDk5OQiY2RlJmTmZean6Gam5Sfm42CeqSFbGl7kX2AdYmLgnKCeHl2dYqAe4lqc4J0g3Vkd312a3B6bF9iW29nTVhZZmpfV1lwem9tZlNPRlI5UFpOUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsbG3oKmms6elsLWqyautsqa1psCotKGepaacpZaWoKunraOkt6ygmZeWoJitqqbBn6yklpKcl5+YlJWin56jqJORmaiossOvmaucqp6PlpapnqucnqGtmKGbnKGlr6ahpKierJmXpp2ZmqGenp2woZ2ip5aZlJqUoaOXpKCZoY6XlYuLjpCYro98lZuCkYGJqaiGgJeWioSOn4h7hJGGhZqRh4aKlY6bl46QmJ6jlpmSkJyNf41lobOuhImEd3uQin53eXpvZ3mQgYCJa3WBeYhyaXR/eXWDh4FqdGN3ZV9oZGNkZmpYa3txamtcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAs6C5r7+tq62xsqCqprKtoqyzsMawq62ks6+8pLScoKijoZ6Zl6imqaakprO1npWVnpqasKauvqGsopGRnpqalJKWopyXqZ2Fnaqso7THs5+ppKqWlpiap56pnKClq5Sfn5yfqq6opaOroaybn5+hmKSenJ+dsKSZn6mUmZmek6abmaqfnJdmhJN9ZX+Pm5BjeYxsaGp6kKOra2SZl35nhYplZWloeo2ijmtojJeRondraouZop+Yc2xueoSMhnlYZV2Fgl5si4qCd1xnc3d3kYCHgm94gnh/c215hHN3iIiOg3tphVhdanNkXXOIaWt8cW1jXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1dX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSi42Wk82KUVZL0RPMVlCOz8uPaWfur26r6yzsKulqK2usKaurrC9saqopa6wsJ+tmKCknqKamqesnKyjpqips66elqSQo7CmtrmlrqOPj5qimpOSm6CZmaaWe6Wsoqi0w7eloqevn52VnqOeo52kqqiSn6Cdn6qvqaqjqp6nm6aep6CslqGcpbGkl52slqKfm5SmmaCsmZ9+vYSJc7RzhZ+GrWh3ucS4cZKho3ummJhzqoJ8y8DAunGLo4eDnn2WmIiewL2Clp2djZzBwXyBepGMmsLAfWulsm+NgW/Ken+bd5GDjoB3eYGAeXF7gIZweIWLk3lsdZFiZV53Y19lgGJedGhtZGJYS1ZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2FfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0NQLyNGWzNQWS9VQUI7LziWornDtLCvv6mplKOvqbCvraaytq+qpqemsaugq5ibo6Ccm6qnop2roqWopaW0pJ6jk6aurLi0p6+ikpGZnaaTkaChmJugnoimq6Srrb+/saGpr6mWkp+eopmjpKqjk6ChnZysrqirpqOipZ+kpZytqZGkm6muqpyeq52uo5eYppeipJidf86UenulgnqWl5tfrY9djqiAoaF9p5WbdKuDgK9eZIyqe6iHhaB0l5OIs2OCq4agjY2zaoSvdHyWh7hhgq5Zo81ukHZ723t/mXF+iJJ1f2V7iHZ2bH6Hbn2FkJF9a4CMX3Bqb2ZgX3hkW3FoamNmYFJUU1deSk9DNUFIRUQ4PjU7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11bV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrMHAv7S0sLeYnpGjqqmttaymsq2srKSsprCqoaecmqaYnKKvn6GfqKejpqGfsKybnpamrq2wq6isoJSSm5+lk5CfpZedqKOeraOqsKi/xbOoqbGulpOenKKXoaqqn5Whnpybra6mqaibpqajoKqSrLOWpaKqqp6kp6eisqKTm6eboZuVlJGXoHGGjJh2haiHcbF8nXGsfaCggaWPnnirgn6tf51yrX+sh4afdpiSe3yXfqqIoYuRi5x9q3qIko+ff3qtVpzEe5Bwk8F9gZVtdXCMbWZ3ZYZvYXducm6IipCPg2yPjmRtc3VvYGZtZF9vaWpuZmNXU1xgWlJSQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/Txseys5+do4+joqKtr7evqbGnqKqorqurp6KknZqjlp+mq6CipqCoqKOfnrCtmJuWqKevrKinqZ6XlZqkopKUoa2anaejr6yirLWpucyxraauq5aVnJ2imZ+urJ2WoZmdnamxp6mom6qoo6Gqm6+xoqirrqaap6urq7Okk5ikppuVkoWkaqR1inqpdXuycYKlipiMcIigm4ekX2FSq4WAroOcda6CqIaGn3qZl4Z7ZoCjiqSYhoGjfal/gZSGrl57qFWdopKBeqOfgHzEsMWMc6+0s7lyYqmvwnVojIuXjoFsmJBubHh4d25rZmRkcXFme2ljXFZfaVhYVExMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICcnISstIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLWwsKmto6inqqurqKSmoJuln52mp6aknayaoqyho5+vo56bk6qktbCuoKmbnJaVp6SRm6Kon6CmnLCloqixrLbHsbWprKmVkZ2dopmgpbSdmqGUm56nq6mirZqrqKGhqaKzraKqs7KinKupsLC4pZSXpKiZnZJ8qmyehIh2q3l8sG6CpIuJn5aVnpaB0ri0uMmBgrJfYZSpg6WIh6B6mJaaearJdJqjlKeokJKajH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4OTZI6PnJF7b5WQfW55dHx6bVtlanJxZoBqXmFYY21cXllJTExKRURCQT1BPEE/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTAxrmtqbKuraWinbO5rKuhppuopqqsqaagpqWYqqOfrqydpqGtmp+ppZ2ntaCjmJSoq7ayrJumnKCWkKatkpqcp6OgqqeuoaOnqbCzwbGyqa2olImYnaWboqSvppehlZebpaWpma6cq6aknqujtqyhsbmwnpywqLS0taaWmamkm6GPgp1OeJqCgJ96hKN8gqSEhqafnJ+UhLh8fHq5gn/MxsO2d5uikYuffpmXl4p2n5eKpJikp36vhZuDnoSsfZmUYaVso3CPhZCBfZaEcqxgpHNxgJphvH1SVXWOkaKWe3yRjodyeXKDfXBcbG53cmqAblpjX2huYmRdTExRU0FIR0ZIOjpLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Kss7Wmn6GVpa+urqinnqWlmqSnobKuoqmns6CaqaSUo7Wjo5WXoam1uaSco52jk5Cispmem6aloaKvrZykqKK1scKwraqtqpGHkZynnaOknaWXnpiYmKWjp5itoayipJevpbusore2rp6etrO6s7Wpmp+xoqWfh4/RtcO3eoeOhZGTj4CmeJSid4yhkoWlg4tyq4eGtG5yaZmknZWKn32XmYeHkHOugqWbooymipOciJSQmm1wslylc5N6nGyZf3uZfm6pYaJycn6fYnOyuGh3j5Okl32Ki5CIdnt4jYFsaHdpeHNufnRcZGRtbWVoYEpaV1g8SEY/UzNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krr+/vLu1npeopK62oqOZlaOpp62pqpmlop+moaC1p6Kpp7GklKujj6StpJ2QmpqqtLSknaacqZKUl6+goJ6mo5ynnLWZoKqjtarCr6mrqaKMhI+coqGmo5aampyYmpelo6WXqaesoKObrKa9rJW+sK2fo7G0u622qZ2rtKWpmXuokX18sHiLgKSliJxtsm+hh618oo+DqJeagayJhq2FoJSooKOXhZ+BmZaBe5J+q4GdmZaKqnedoI+Ik5J/ea9do4F8pqdknoB8l3Rrrl2lbHKFmV1gW4ygbZSQpZiCk4uTiXh5gZZ+amx9Yn10bX95X2dlcG5nZ2hCWV9aPUpTMlM4QUFDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JODE1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZWVVFIRklKIygovJKbhKnGw7bBtJ+araCuuaajjpqjo6Cvrqmfo56drZmeuaCjq6CvqpquoZGqqaWWiZqPrbCsp6Com62YmY+toqGdpaGZpJytl5+opbaovq6kqaOfjICOm5ugpp6SlJmak5mZpaOimKeqqqGjnqmovaSXw62ro6Kss7utsKmjtbGqrJl2r36QipyFh326rYmYZLCMZZatfaGPg6eXnIKti4WwhqeapKKikYWgXGxrgrNgf617e4KAsWxmbpmXi4ixWn20XKSDa8iiZp+Be7tZdrVasn1Tr4F6rFiAoW2XjqeZiJWOk5R5d4ybfWNzfGKDeHSAfGFqZnBtZmVlT1VjXEFUXj1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vbu0wbOjnK2mpbepoIuZoJ+dsrGonqKfnbWYoLOoqquesK2erJyVrqiijoibjq+sqaejqJmuk5qPqZqhnqWemaOipZieoqixqLuupKienY99i5uWoaCZkJGam5KZl6ien5enrKWkpKKkqbqfoManpqmhrLW3rrCpob6wrq6XgamSo66Om4CGpJeYkICAuMO6g46dk4SomZ2DrIuDr4qonJumq5F+1b3CqmKkv719f6OCg9e6t7WElJKCnr2+hGqjgW+rhG6df3qysceDa6uwva15eKK+u3SAlY2lmo2ZjpSad3+PmXlifHpkjGd5gXtga2VramFQYltTaVxAVGBCTCk8OjQvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0sb+6sr2zop2up6azpp2Ml6W/qbavp6G/pqaym56xnbmon62vpaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp6nm5qgqKKYnaCrrKm4rKejmpeTe4iZkqabk4+RmJiPl5OomJ6WqKeeqKahoqu6nqnFo6GwpKu0tauyrKO+qrCwnHR2qqS3hWWJn3BnrJCKj25ud6WPmqCBdrGbl3GRjnKXqaSbmK+kcmxtbWaLeG9ug5lxgHppcGlniZaVl3FoaYWGZ3CGZF2KY2lvWl1nfnimYGJyj5JwZmSAjZKOoZaVl46Tm3qFjZN0ZIZ3aIxqeH55ZGxjZmxiS2VXSmtZOlBkRFAnSjkrIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6ubKzqqmirp+ks6qZkr2xw8e8tKmev6uso6Cnq6C6o6StrKymjpatqpCMhZWXrZ+mqqKfpKOgkYulkqeZqZmWo6mglpylpaauuaqsmZqTknuEl46ml46RkZiUjZeUppOdlqeima+mnaKsuaCwwqiltKessbKrr66qvKawuZeLoamltZyJlqKYhqmbkJSdkqq0mZujrKK0mKSin6KjnaKlopasp4ySk42Hk52dlZCZk5iQjpWEf6Sal5WOi5OSio+GhH5njIF0g3d0h4xxp219lpOUlIGBj4+OjpySnpSVk56AhZOLcGiPdm+Kd3Z8eWlsZWRvY1VhWEBpWkdiYE5YK0U9KyYhNjQwLx8cISUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbeurqKwpa2gobexkY6qxLzDubapoaSdm6WdsKikt6edqbSlp5GYrKOLiImPnKeWraShmqienpOVo5eomqmZlKago4+ap5igtLmnqpiakI18gZWMoZSLlZGVkI+Sl6SOnZinnpu1o52mq7eor8KvpLinsK+xrqustryjsb6ZkqakprWikp2mno2pn42Sn6KtsZqhpLKrspqmop6lq5+fnp2XrZ6TmqKclJCXq5mNmJiWkJaekYegnpSUhZOMj42Vi4F/Zo2IdYh3eomEdJxqiJKWlZKJfYyWkZGXkZ+QmpOdgoaXhXhxlHJ5iX9xe35qbmRfcGlgXF9ZbWJQYGRPWDlGRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlqSoo7CzrK6jqaetoKi1qpCPm6Oyua2qq6GimXqcorGkprGplpu4paKUmKmcjoaKiZuikK+epJaooKGSl5mbrouqlo+omKeMmKiOnbi1o6WYm42JeYKUjJuTipWRk5CNkZahi5ycp52et6N/g6+1o7CwdaS/pLKgeHqirbW+l3eupaCKgKl+ZFxidp+OpJ6Dln5tlLSco6ivrKVmoKGUdHqbmHCBmaqZbICjqYplnKWckZeYlouSm5CEnZuQlIOTh46OkomFeGuQiHaHcXyGgYFhaYmMlZOMW3aVkWdoj41xeaGWlWR4mIWAdpdog4mCbnl/anBlX3Zva2tnXGVjYWFvUlk9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHR0lLTFRVVVldYGhmZ1hRSTxERzw5VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqqWprqSnraWSlqq0rrClmamlqpdzi52vn6irp5SWuZ+gj5yknpF+iIiano2smqSVp6KejpeRnoV1ro+IpZqokZajiJu5s6egmJiLiXV3k42Wk4qTkZCUjI+Tn42ZnqWYm7KWgIybtZ20jZKPvaehfqeje6WxuoOOj6efhIuFj7Gpr4yJlqKaeYCLrIacnqOpq6mJloeZd6ace4icgZing4F7nbN7ioagmJmVmJaBkJaWg5maYnmIkYSOj5KLhG5xkIh6gnGBgYaAh3SHhZeTeJZok3SgmnR7mYKcmoSYfpGIgYKYaYyMhGt4e3FwZ2R4bmlsalxkaWllcltcSFNMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaWZZUUg5REw8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2YpJ+mrq6rqK2gqbGnp6mlmZStxbyvoJSlp7Sdj4Ocq5ymoqCNkL6emY2fmqGRfYaPmJeIrJ2jlqGhko2UiYaAkaiOh6Kco5OWnYaeubGnnZqTj4VwdZCJlJCKlI+Om4uOkZ2QlZ6jlJ2rh5+0ibSarovKiKuvireFjbCEs7GFqY6nmI2dfKiPcnt3nI6mlmiVpHm0jKCgqKqTmcKCgKuJmaFynoCbpX2XhZWzgaF9oZOfj5iXgI6UnImYkot8hZOGjZWTioRudJKGgHtzh4GEfYV1hoOYgY/FZoCph4+iap2BnpeAmYCKi4OImG+NkoRnd3R7dmdodXBnaGteY25sZmxYZUZdUUwyRTQ2TWBjNyYzPEVHRDo2MzY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQElkWF1jZmhnYmJiYmNjYF9iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6OgsKmpqKasoKW5samrppqUnqKkqaGUo6m1oq9/oKacpZ6diZS9mpONoJKdkHmDlpWRiKuZnJuaooWPjHebnI6gkYieo5uWmJeGorispZmbjY1/Ym2Pi5OQjY+MjJeLj5GejZKeoJigp36hp4etnaCWrpCgnp2Rh4Kgja2xiKSOq5qMmn6idoCZlGuBq3VNq3iHjZ2SnKqpgqqrfoShfHunap6Ak2xnl4aYt4mefm5gY1iDl3+Me2Rni3OZfXmXbF18l25gU3GFXGBteoRgWWWCfoWBmXGoq2uDo25ypXCfgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbXRxampvXmpvbGtoV2dOXVhFOUA0R0ReazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUktNQkpbXV9XXl9jdWBNRTpNTk1UYlxbZmZpaWJiZGFkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJeeoLmhqqSmrJKitr2rrqKZlp+gpaurn5yttKGnkaCfn6abmY6ZtJmQi56MlYt1gZSRjYqmlpaYn55+k4WGrKSHnJGKmKiYmZmRh6WvpqKVmYiJgGluiIeLjo6Ji42Ri4+RoIuSnZ+boaV/k4GPo6GUoHeclpCng6OpgIasr4eleot9hJp9onBzk4eVe56MeW2HnIyakp2qnI+HnX2DonR3pmeefnelXph7fZNzom6Yt7S6c5KIgYC2qGSBxrh8cJW2jHGAm6NjdKyrYX5qnbN+bn6Ig4+DjJhxgKNsc6RznoJ+o16cmbOWb3uXnrN0cluesoJpYm9zdXFpb1hra3JyZFtnXWFMRD1ENVFBWnAyPFJHX0pSPTwzOTU6OjZDPDtASVA/VE5OUUBFX15bWVhgYHtkSUM4TFdVVmNhWmZma2tiYmVhZGNgYWJgZGNfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi1ra2gmqGboqOkrJqasayrkpegmKCkmZqUnqybi4mReIuFcYCWjYqPoZCTlJ2XfZGJjqigh5iPipKik5uajIqop6Sej5aHhH5re4d+fY+Ng4uQkImOk56BlZufnKCfi4l3nJiijaByoYyJqYmdqJGYqq2Arox9eqCZeaOTeIBzl4iMnH2Vn4ecjpqdp4ijZKF+ipaQm41tnmibjm+amXuAiqd9cmh0qoOdgnOqZ5SaXZuFdoWdaKpqgbhmXKlwgZxhlYxfp3Z3ioqAnWiadYeTkpiOf55tmZBqpplcqH53u2p9qVqOhF2zZ1tucXh3a2lbcGl3eGFeZVZhQlBFTzdWQlJuNEpaWl5OWkRAMTUxOzs3SD86Q0hVP1lTWF0+RGJdVmBRYWN8aUVCOU5bXVhkZlhmZm5tYmJlX2FhX19gYGVjXmJkb3FgZGVla2RjaWhna2mWnYmqtpyoiWOVnKy7srCrnaWbmqefnayZnbCnqp2Wopmhn5mWlqCjmYaJjWmIgHJ7l4eMlpaEkpSYj3qKhJaknYmVkIaLnZGcm4iPqKGfmoyRioCAaYGGeX+WjHuIjY6IjpWZfpKhnqCik5hyaJ+KoI+McJKMgqmJmqGlqqOqfrCtpKK4l3ajs6Kjf4iUeJ16qpl/oo+enZiJmHKhfYeNsLV9bJqRoXh+mbWjo6uohJl8mnycmn5zqlpdb3uXi3ieYk1/e3uFZHqYQk2fWaJqc3yOb4KKhJl2m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B8fW5mX2xodXtiY19QXVZcVFZAWUVRZ0VSVlxhWF5JRD1COD9BOkhFOExFWEFXUlpWRUZhXFpgS2BtfXFFQzxVXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lZHZsXmVnZmxkZWxoaGtplJ2Bsa6ahFNeoae0urOzqJqii5qpm5unkqCro6Cnj56dnJqZlZihnZaHh4l3hYFueZWEkJuLfZGTlohygImSoZtykpCBiJiUn5qEjqibmZWLiop8g2yEhXGBoYx4hY2Ih5GXk3uRop+eo4iuhn21hI+enXumlnqpgpeekYyjoH6naHdtfplzoHNxfJ2FmG+Tgq18o4Snn5uCpHBeqWh2o2RwpmGc0498e5l4cnNjooaQfqJyoo91a4+zi2CCmIp0qrKovH93g25/v6aqtF6cb39yl3CCc6JyXqRndKZgaKZsmtOYeoKbbnZ5l2ubeXaXcmyppWdfZHlwf4NsaGZkbXV3Zl9hUlplUFFhSFdJVF9XU1tkaltkUEVDS0xKS0FKRDhQQFBNWFNYT1NRYGVlaVNkeHl3SUZFY11lWmhpU2loam9jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZmhsaJibf7GsVF1LfqmvsrWwsqOcmISXpqCgooykp5+XqYmZl5iTmZOSoJeOh4Z7cH2EaHyPg5OagneRjo+KcICGj5OSbJiUfIiRkqOVg46pmpOSioWJeYR2iIBugZ+Gd4CShYeYoJV5kqKjmaCJs6Gitot6rKekrqVwqYCbkYaBnpR9pIGimoaYcZ6Eoq2uiZeLf4ykjZWDr6OVd7W2tsmic5SLgp9gnpepbXmWh6CbdaGHd6B+kJaLgW9MZqOScZuIc6V7enVig4JtfqBscmRgnHN/dJdre2q0trTGpnOYfnqcapqaq3SBmmxzd5dpmXl0l3FQRH2zXmp2a3iHZmtmYnN0cG1VXFJYZ09SaElVTFhSVVxna25VZ1dNSkFKTUtIS05BUUpQZGNqbWV1c3N+eHtudYl6e1VRT21eaFxraVJqaGlsZ21nY2VfXFxcX2liZGhre19dZGdjamZubGVpbWWinYmwqIVlQJShs6yvr7Wioo9/lqeioaOLpKacm6aCmpeWjZeQkJuSjoiDeWt5hmWDjH+Xn3l1j4iMgmqFhZKEi4WdjXqMipWlkoKXqJeMkYuAiXqAfYt5cI+ghnmBlIaIlZ6UfpOlp5yWloRnbnicbKJkfHKleJyYcGingpmOfaV7oZeDlnKfdoCJlJWPuW2PiqJifZmjl4luc2ura3WgbW+mYJtpi5BploeblXWigX6aYIuGjXVviGJooWaef2qbdXBkZ4iCb3KiW19bZKFuXomMcXyAdHJkpW54omRmp2iXcouXbaFvUoiPbqBeZKdUi11UmG1tcmtxgW1waGt4c2tvUVZVVWVZU21JWE9cSFhoaHNqWWtWUVJFVlxNWFNhVWhqXnd1e3xwfXxygnt/c3eOgIR3XlFzYWdicGdQa2hoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqrCxpp+Lf5aqnJ2ki6GhmqGhgJWYk42aj4uXkI6KfIZxgIhoi4p8l5pzdYl9kHxlg4eViomVmoJ8iIaWpo+AoauQhZCKgYp9gICOc2mPpYR9hZOMh5efjYaRqaadiaZ4lpx+pYmWjLKZnpGEr5efpXmYiXupdaeQhJpupaKMkoSMg7xtfKWvgoeGh5WXnaJ+pntyqJSglmiffm+sY5aKlpN4qG2qo4GJdYiCd6uRpohrkrFsd7OMqWyLhm9voJ6SlWJ/q4yqd4GAjqefd599haSVnaBomod1q2aerYy2c3a+jKOTWYOmjathdXJ0b3t1cGJqfm5nbFNVWVVgYFxrTFxSXEldbG12YFtxWFtfWmdzZW5vcWNxdGB3en55cnmDcoN+gXt7jYGCgHdieWRjbnNkUmxnZ29tcmlnaWFfXlxhamJsbHtvXFxiaWJtaXdtZ2xuYpamq52BgJ6klqmqnqinrqOZiIGWqZmdo4mapJyonYSLmo+FnJGFko2MjHSFeoiDb42FfpeTc3WGcpGDbn+LkoeGlJB9e4KFl6SNf6WljYCNiYSUdYKHk29si6iAgouTjYibnoiLkqqioJCAdJSXiH6BeZSvpH+CnHGPhnmSjYaAe3KojXF9fXqXlpuEjXh7fX2IlJWTi3eRmaGihXx/iWuMhVx6eXN6cWlvfpOKcYB0go+Uk3GGhIJljX9fgYGMeHd0lHVwem9viW+Fhl93aXiOZ4KDho+qnH90fZdqiYhvfnV8g3VtbGaMc3h7l3eEWmpXeY9pbndycW93eG9da4VtaWdWWV5WXGRrZFVhVV5RX293eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV5gnV/gH+AeYuFgn58boBtZHluXlduZ2l1a3hqaWlkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbqpp4uhopumpJmknauioIODlqqRnaCJmaaaqJiDgZuLfpaUh46KiYxygnyOfH6PhHuXjnRyhHCVhnx9kouGho+GeX6AhpijjHunoIqFj4+ElYOGjph3cYSqhY2RnI+Hnp2Gipqon6Cqg4mOlZt/foqXraiQk6iReHGfk4R8lHB/qodwfZVxam98gZ+Lf5GOi2huXYSNjZydoJBzl4yIcXRrg3Z0gFlyb4eRgn5/jGpdaWR7hYSIgGBpeHucfIONg3aCh4RpeoyJbGJxc4N3X3ONg4qRqJaHZ42Pg253i4Jvg4t3bWRlY3mCepVaW2lmbXZbe3l3dG1zcoNmXG2Ka2tiWVhdWVhrcVteYFleXWVyfntzb3Rjamppe3xyend0ZG10aGx7f3V6fXt5eX+Af3CGiYR7fXN+enJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyrsaGQo6Gan56Ynpmoo6F9gparjJ+Uh5qhkKSVf3uYhHySmYmIhoaKcn2Ai3aFi4KElopyb4BymIeEfpODg4aKgnqAhIqan4+CpqCGeI6XiJWLi5yXhIN6rIGQl5mTiZ2choehqp+hoqOLiJObnaOZlquiqKehk5yJmZB9epCQhql/f5KRkpOcsaWalJ2PjbGSmISmjY2WnaGKkZ2DiZKKbH2Od3dmg4aRi3yJnoWHi4+IiIGFhJF3fHt1m6SKiIugjIeWf4CNg4F3cXWGhX95iYiLkaeRhIeOiIOMkIt6hYmHjX91aoCDfHmZaXFoYHOKcH17d3Zvd3SBXV5vh2duX15ZWlxSZ3FVY1tbYWxodHt8cm5wY2ppaH97bXh+cGhvcGxmgHtygoB3f31/hHttg4yGfHp5fH16g3hOZHZqc25xe2VrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2InrqflqOhmJWZmJSYpKCde3+YqY2djIWfnIqdlnx4lIJ7jpmJhoOEh214gH9ygId+iJOEbWt+epeHhIOQfoCGhId8h4ONm52Rhqmeg3KKj4aSkouckXyNe6mDjZGXlY6bloWFm6afopqdhoOSmpmZkJmmoaaenpCXgpOMeH2Jj4WnfH2PkJGFmKmgnJOcjo2pjZKAno2JlJughI+Yf4iPhHB5hnJ1YX+EkId2jJiBg4+ChoR+hoSVbnp2dZSkjI6Gm4aGkHWBjH5+c3N8iYV7eY2PhZSokIeEj4KDiYmIdIOGhol6bWp8f3ttaGtsZ155fmd8fHZ0dnV6d1xgcH1tdGBjWltdUGZtU2VaXWFqaHV6fnBsbGNqameAf2tyf2tqdG53boR5boaAdoKAfYV3coONh358e3yAe4KLYGl7a3ZoaYNlamNgaVxjdWdvYnVta1RicXllb3l6cmVqbW2Lip+4mqGkn5OSlpeLmp+enHp3nKWQm4mGpJOKmJl5eY2FfImRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hoSHfY+Aj5ubkIimnH9wi4uMkoagoYqFjHynkIeOkZaSlZJ3jKOgoZ2Wmn+BkJqZk42ao6Kkm5iSnICQh3uBhY+IooF+jY2QfJekoKCSmZCQpYyPgZyRiZSYnH+Tk3+Ij4J2dYJxd2F+gY6Hc4qWfYiMcYx+goWGj2h4cnmNmpORgJh/iYxzg4l9fXJ6fIyFe3uSjoSXppSNhpF8hIWGhHSAgYWFeGRxen54eXBramZefXNnfHV2c3xyf2peYHR2cHdkY1hdXlJqaFRlWF5gZ2l2eIFxZmtjbGdlf4FqbX1nbnBqfXeFemuLgXKBgX6BdXaCjYZ/fHqAgX1/j2pyg250aWKIaWxiX3FWdG9sbmB4aGxXanR2Y3R6enFia295iY2fs5Klpp2OkJiPhpygmpt8daOfjZd/jKGKiJqWd3uGh36DiX6IgoF/cH56dHWChX6JkHdnY32Gl4qCio14fYCNg3mWgJWXlY2Vn5p9b4uBkZOFpZuHjImDppWEkYqVl5KRdpGdoaGYlJh6f46Yl4+Xmp2lnpqUlZ17koiFeYeXjp9/goqOjXOXop2gkpiOj6GMjIOXmIOTlpp/mY59io6Cd3J+bntkgHyLhnGHk4CRgmuHg4GAioVmdm99iJSajn6UeY2LfYKJfnxygHmLhnqFkouMmaOXg4SMd4eDgoF1en+Gg3Ned3d8c313ZmtjYH5panZzc3V9cXxjY2FzbnVybWFZX11aa2RSYldfYGhrdHmGcWJqY2xmaHyCa2h0aGxvaH98gXlsj4VxgIODf3R8g42BgH56goN+fJBtdYl0dG1mimxqYmN1VoNpcG1geWdsYWp2cGV4e3lwX3FshYWQna+Yp6mejo2Xh4Wfk5WXfHeom4mYeZaci4yZkHh7gIt9fIN7gIKBeHN4eXN9gIN/iIqAZF59i5WIfoWHdH1/in9+mISWk5aMo6CXfnKHe5ORiqaPjI6KkqCRg5CPk5eQioGPmKCakpCSdICOkpSKnZ2ep5mYjpWYdZCRi22HmZCbe4iJkIlvl52ZopOVioydi4aBk51/k5OWiJqKfIuKgnpyemt2bXx/jH9uhZODlHhvgoR+fouBZXNqfYKYmIWAjnSSioV6iX93eYF+h4F9hI6GjZWlkXmFgnSIhnx/cXN+hYFsYHp0eXB7bmFuYmR7YW1vdnJ3d3NzYXZgb2x1bm9cWl5dXWpdT1xXYmFobXN6iWtfaWVqY2h3h21mbGhpbGeAfHp3bpCIc4CDhH10gYaJeoN9eoGEfXyOcnmLeXhubIdraF9pcmKHaHFvZnZnbWxhemhqfHt3cGF3bYuBmZqroaSpnoqLkYaJnoqUlnx2rJeMlnyek5GWlIh2fXuKfHuAdnd/gG90c3pvhX2BgIl+fGFcfo+Rhn+EhHN6gIZ6j5GHkZGbkqSbk4F9gXyNipKjiY2KjZaajIWQl5KVjomIjJKdk4+MjW6EkI6RiZ6ZoqGYl4qXk3CLm4ZniJqPlHqKhZGLcJaak6GRkoeJmIyCf5KffZKPk4yZj3yLhoh0c3ZrcW92fYt1b4aRjpNydIB8goKJfWVxbXp/m5V+hYl0koyCdYp7cIJ/goh9hY2Kho6Wqo57iH1+ioV3fW9tfoOBYmd3c3RuemFeb2BqdF5wanp5eGxycGV5XW1sc21zWFpdX2FqWk9XV2RjZnFxf4dlXWloZ2JncY1uY2hoZWlngHp3dW+OhXOBgYN8dYKJhXiFfHiEhnqAiXd/i3t7c3mDamtfcGh0f2txb21xZ29rZXtibn96d3Brd3eJf6OZo6ihp5uIjIqBj52Gkpp0gKmUkY2GoIyVk5CAc3t2hXd4f3Jze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYF/f6CGj4qRnJegk5Z3iX6AjIicnYqPhpKXloWIlJiOloyLjY6MnYqOkYRuiouPkYqclqGcmZaGmYlsh6WFaIieipJ/jISMgXiTmJGdkZCHiJSNf36QmXyRjZCOmpJ9i4GEcHZwbG5vcXyHanODj5mKcXiAdYKJg3pnc292gpuQfYmFepWTe3iKdXGLfIeOe4uHhYqPnKWJfIR3gYp/d3dsaX6Af1xxcnFvb3dZXm9gb2peb2p8enBtbWptd2Bwb2txbVlYYGFhbVdQU1llZmJ1b4SCYl1rbWRjZmuSbWBmZl9naoF1cnJvi4B0f4KAeXaAi4B5hX53h4Z2g4V7h4yAe3eKf2pxYnxihXxvcGx1amhubHZ3X3F+eXt0dXN/gn6llputn6eWhYyDfpeVg46ddIqfk5KFipqMlY6MenJ3dIJwcoVzcXWIbG5sdGyHdoN9f21uVVGBq5SHgniAdnKDeYKggpGBkpGXm5GZd5F6goySpJqTjoiUmJKEhZaYi5OLiY6Ph52EkYt9c4uFiI+InJmfm5eVgZWAaoifiWiIoYiThZKEinGDkZePmo2Pi4qOjXd7k5F7jouNkpeNfIl9gWx3am9sbG17f2J6fo+WgXd6gXiDjX16aHVtdYiXjICJhnyVkXJ7hnF4jnuLjnuJfoSOkZ+fhn19eIGKfHZvZ2p/gHded29ta3ByVV1uYXFhX2xueXBncGZndHVocWxhd2VdVWVgYHFSUE5bZWRdeG+Ie15caHFiYmVlkWlfaGVbZ299b2txc4p9dn2FgHV2f4x5e4aAeIeDc4aFfoyMhHx6lXhncWqDYId+b29re2BpbXR/dF90fHiGeHNzhXx5oZCasZ2mjoKKf4KZiX+KnH6KmJKOhIiXjo6OhHd0dnOAcG+Fc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfHB0g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYicf46BeHuMf4iMipycnJuWlHqOeGmLlIpuiqWGlImXg4ZjjJGYjZSJlouMiYtwepWJfI6Ji5SSinqGfX9tfGVzcGtte3pcgXmQjoF7fn+Aho97eml1a3SMkIqDh4Z+l41tf4Bwgo6Ajol+hHuDkZabm4x9d3iCj3hybGVufYFqaXRvZ2hzbFNdb2RwWl9scndma2tjZ3hzb3BjX3dgYVVrX151T05LYGZiXHhwinRcW2V2YGFkZI5jYGZiWGlzc21rcXaLfHR5hoJ2d36Lc3+Gf3qJf3GJh4GRioh9fpl2ZXNufGWHf25va4Baa255eXJgdnp7jXZydop2ep+MnK+boJCChXiIlH57iJyHhJ6QjoWMl4STjoeBdXdweXBuhG9tbn5yY2R4cHxuenxqaGxipJrB3K7vonNsdYN1hKGEkW6Vj5Sfk5qAkXCFi6OXiY6VipCdlYOAlI+FiI+AkoqKl36He3Z/iXiGhY6bm5eZj5B2i3hwiYuNf42mhpOLnYWGXouUl4mOiI2KioSJbHyXgn2IhoqSkIZ2hn5+bH1keHVqb3p0WIh6kYeGen9/gIaNf3pmdGuBi4+LhISBjZiGbYN3b4mTg5KFf4J7gZGXlJuRdXR4h4x0cnBlc3eAYHNtb2FodGZSYHBna1VfbnR5YXNjYGl9cXJuW2NyYWNWblpcd01NTGNmYV12c4ptW1xkeF5gZGaEX2NjXlhpcmtua3J3i31zd4SBeHh8iXGDhH19iHt0i4iIlYaMf3+Yc2h1cXlsi3tudHCAV3B5dnlxZHZ5hoxodoCJcYCdiJmonKKShHxwjJR3eImcg4SfjY58lYx/moiEfHN3cHNqb4FraWx8dF5geHZ7cHR6Z2BlfOvatcnD3IlzbHSAdoqaiIxpl4+Om5ORgYhwhYigjoWLlYqMl5N8jZKIgoiPepGLho+CgHd4g4Ryh4KTm5aUmIaNdoiAcoeEi4mcpIWWjp+EiWGDlY+FiIWIjIaAh2h9lH99goWKjo+Ccod/gHJ3aHZyaXR4bVqMfZKChn2Ag4GEi4N2YnVtioKRjIOAgJOSfm+DbXqIkYiUhX2CfoGTlJGYim9yeoyFdGtvaXB2fl1zaG5caXRfUWRxaGZTX3B2dGBwYF1ognFyaldnaWNpV21XW3RMSkxlZl5hcnOFaVtcZXleXmRnemBkX11Za25lbmp0d4p+c3KBf3t2eoh0hYN8f4d2doqFj5iBjYJ7k3Zsd3Z5eZN1bnd6fVh5hXGAbmd4dpGCZHaGhXGKloaaoZuhioZzb5KLcXaNmn2JmYiJe59/g5l/gnlxdG5vZHJ+aGZsd3dbX3h6enFxf2lhZ2F/1baOkaZ4bnF3e3GSkIyGapiNiJqQioV6aIeLmYaBkpGGhpeNe4yMgICJjXuQjX6JhXp1e4N8cYaAlZmOk5SCiXaEiHiFgo2Vn6GIl5Ggf4hhf5OHg4eDiIx/f4JmfZGAfn+DjI+Rf22DfYN1bG13dXR3dmxjjYGOf4V/fISAhYmAcWB0coZ9kI6DfYCSinpyhWd7hYyIjYV8hX+BlZCSlIVvcHmLf3RsbWlpd3phZ2ppWGt0WVJocmliUGJyeGxiZV5aaoNuc2JcZ19lbV9vVFpvTkhOZmRcZm5ygGtaW2NzX1xja3ZkZV1dWmxsYm1qc3aGgHFvf3x9dHiGeIWDfICIdniJgZKVe4mGdomBb3h5e4OSb217gHZeg390gW1oenOUc2dzh3xykpKEmp+bn4aHdXWUfm11kpZ9h5CDio2ZfIyadn52cW9samF0fGdiaXV6WmB3e3ltcX5lZGhoV52PX3Jzl7zEhHZxlIiPfXGWi4abkouHcmqIj5aAe5WMgYSajHyKhXx7iYt/lIh1iYZ2d36BcnWGgZ6UhZSPhIRygYp3h36Lm5+aiJWPnYGJZn2Tgn6EgoiJcYF9Zn6MfHl/f4eMj31pgX6EdmdweXhzd3Rsa46FioGKgHmCgYWEgWxfc3l7fo6LhnyCkIF/c4JqeoWJjYeFeYR9gpmOkY1+bm17iX12dG5mZXt0YltwYlducVNTbXJoYU5mdHhmYF5dWW+Ab3NZZWJdam5gcE9Za1FEU2dgWmpubXxuWVtdbWNaYnB2Y2ZcXWBraWNsanN2gYNwbX58gHR1g3qDgnyBhXZ+iIGWkHiEinSBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0a5ONhp+ZoJmEiG59jHZpd5eOfoGKgpSXiXmPlW96dHFsaWRgc3poX2Vxelphcnx5Z3F5YGVlj7Gyd0tiWqXZ0JZxe5CKj3d9k4qEmJCLhW5rhZKRenmSh4GEmIp8hn94d4mKhJaAb4uIcXV+e2p5hYOlkISTjYR/cICEeIZ7iJ2blo2VkZWFiHB7koJ8gYKIg26Ad2iAhHhyf4CDioh8ZX5/hHZkcXOAaXlxb3WZjYaDi313eYGFeoNrXHJ/c4KJh4p+h4p7iXOCb3KFiJCGhnOFeoKajY6FeW5vfoR/dnpkZmh7b15YdlpYcGtOV3FyZmBLbHd0YV5cW1p1fXJvV2ddZmpxYG9OV2hSP1hmXlpva2d6cVtaWGtlWmNweV5nXF5lbGdla2lxd3+Ib2x/foB1b4J7gIJ/gn92gYWIl4lxgo1xe4Z8enmEk4x1anl+a29+dH99b3J7epNvboF+eGeSi4OhmZyRgoVmhoNvZ3mViH1+hIKYiYF8jo1peHNra2ZfYW95bV9ib3hcZGuCemFxdl9lZdTqvYsyOj6Ljn9xeIWHjY11gpaMfpKNjH5tbIWMjHV8j3+FgZWIfIJ4bnaHhIOXd26IhWx1e3VmeYKDp4uCj4uEfm6BdnmGfIifko2Rk5SOi4d/e5KGd36DjIJrf3JogH54bXx8gouDeGJ6hYJyZHJpfm51cXWCm4uAf4WAc3Z+gXOCcFxuf3V5i4SLe4iBfol5e3JtiYSRhYxzg3qAl4yMgHVua3aAgHVzW2dndW5XVntSWW9kTFpycmVbSXB4b1xbW1lddH50aFliW2dlb2RqTVdmUT1dZVxddWVgdXBaWVVuY1lkcXlaaF1fZ21naWtpcHd9jm1pgoR+eW6AfH2Bf4J5dIGBjZOEcIGLbnd+gHt7iJKJf2h6fWpze3KFenN2fX6MeniEfXxrjI2Em56WjIGAbI19a2h+jYt6fn6Dk4J+fYqIa3ZyZ2hiW2Jnc29fYWtzYGhwiHlic3ReY2SboI9uXDVar7V0aYCIfJKGdYWVhXOOiol2b2yFg4d1eYl4iXyTh3l+cmd1iX5+mG9xhn5odnluZnmHhKSHgIeNin5vgHeCg3+Om4iDlZKZiouFiXyPiHB6fYR7aH5saoB7emp6d4KIgXJgd4F+cmRyZ3aCbXV7hpWRgXyCgW93enx1f21ZcIB3dY2Dh3iIdoOJe3l0b4uBkYKGc4B+f5SJintvbmptgYF0bVxmZHJwUFp6TVtuW09bcm9kVUtzeGlXWVlaYXCAdGBdXWFnZGlpZk5ZaE1AYGNbYHVhXXVsWFdTdGFaZG9yV2peYmhqZ21saHB3fJNsaISKfHxwfn57gYCBenZ/f4qLg3F8h29xd4N/e4mMj4NqfXttd3h2inZ8eH+Ch3+Dfn16bYWMiJmjjYSDe3WLeGtshIeQeH57gpGAgH6Lg3BzcWNmXllmX29vX2BncGZqboh0YXRvW2FkanZ7gL+cpqTIuHGEgnKSfHeGkoJzkIuHcnJvg3uDdHSHdIh3lIh5eXBjd4d6gJNpcoR2Z3d1Y2p8goidgYB/jo9+c4B1h3uCk5GEepePlpCIgol7iIhreHl+dGd6aGt/eXNpenaAg31oYHiIfWtrdGh8gGl2gYyRlH56f39xfHZ8dH9iVnh+c3OLhYJ9hHGHinh5cXGEg46Af3p/fnePhoR3anFpbIeBcW9cZmFxbUlkdUtdbFRTWXJuYlFPdHhhUlhYXWFwgnNbYVxpZWVka2RQW3BJRGNgW2NwXl13aFVXVnZdW2VuaFZrXmFpZ2VubmhwdnqTbWmIjXh9cnt+eYKBgXt1fIOIhoNwd4RybXeCgn6Ji5N/cIB7d3l6gYx0gnh+gYGChHmAdW9+ioubnoh9hXp3hXtndIWLkHl+f3uIhoR2j4BncG5fZFxYZVltcmFgYHBsa2iIbmF0aVleZG6Ad6naqceGh7JxiHdvjHR7hY1/epKJf3RzdH53gHBxf22EdJSFeHVrYHqCeYmPZnGEcGd2blttfYCQk3+AeZGTfnl8bop3gpONhXWXi5KPh4WFe3+EbHR2fmxndmRte3ZtaXd3f398YWJ4hnppdXVjfntndYaOjZV7dIF3cYB7fW6AWld1f3B2hYh/gHptiYZ0emx2gYSFf3x+en10i4F+dGh0ZW6Lg2xzWWhec2RHbW1LWmBXVlV3bWJQUnR2WFBWWF5hcYRvXGBjbWVkXm9jVFxyR0JmX11mZ11be2JRVlx0W1tna2FWal9gbmVma3BncHZ4jnRrjo11fnZ4fneBhIF7c32DiIeDb3KAdHF1foWCiY2Ke3d/eIN7fIaHd4d8fYF+hIB7fnJ1eYyNoIyJeYl1dIN4Xn2Fl4t4hoNzhYaEd4l7Ym5tXGJbW2FWaXNjYFtnbnBmh3FhcWZXXWNrf3zKzoe5oWptbYpscYNxfIOJfnqQhHl4c3l1dXtqbHZjhHWSgnZvZl59gnqLimVygmtqcWNYbXqFm4iCgXOXlHh/fW+KcoSLjYlzmI+RiYaLg3t5fXBwb3xmaHFibXhxamtxeH19el1leoB4anZ4ZoN3Z3SHjI6UfXKIam9+gXlvfV1Zc39udYGLfIJvcIqAcXdpeICCgIJ4fnN8dYd9e3Nnc2Fui4FrcVdpXXZbR21qTFZVXVNVe2thT1R1clBRVFdeYnSFaV1gbGpmY1pvYVhicEhBZ1xgZV5cVnteTlVlcFlbamhdV2hgXnJla2dwZ3Fzd4Z4bpWLdH96eH55g4h/dXJ/hoWOg3Bwe3h3dnmGhoeMhnp8f3SLfn2GhIOHfn5+fYd/fHh1eHiRk59/jHyKbXV/eGSDhpWFc5GKb4WFgXqDdGRuallfW1xdVGdyZGBZZHFyZ4ByYmtlV1tgan93vq57oLZuYXOFaHN7cXiBhHp9i353d3J2b3t2ZWpvYYd1joBzamJef3h5i4RmcX9oa2taVm93iaOBhX9xmZNygXp3hG+Cg5OJdJaKjoiFiYV9eHRxbmh5X2psYG12amdqa3l3enZaZ318eWZzfm2FdGV1hY2Gln9wjGdre4R1bnViXXF9bHV9jHuCZ3aHfm5xaXZ/eX+Ac35te3yCe3lxZmxibol9bG1WaV92VUppak5RTmdMWHtoYU5VdWtMUVRVX2Z1g2ZeYHFoZ2JXal1ca2hKRGpZYWRWWVV5WU1WbWpZXWtkXFllY150ZW1kcGZycHWBeHGZhnZ/fnd/fIWHfXVzgoiAlYJuc3l7enNzhYeJiYN4gX11j358hIqNg4GEe36Lg3t2e3d3mp2YeomChml2fXtsg4OSf3KOgXCFgn+Cf3BnbGdYXVtcW1NkcGReV2JydWp1b2VlYldcXGh/cG9ygHOJZGR5fWlzdXNygYN3gIN4dnJ1bmt6cWJna2eGdI2DbmZdX31we4l/aW15Z2pkVVdyb42mfIR7dpaRdX10fnxvfXySh3iafYiHg4aDfXVvcWxndFxsZ15sdGRnZWl6b3tyWWiBd3VocIF4gnZid4WLfJSBb4xrbXuCcWd0ZmFuemdzeIt8fmN3hHdqbHJ2e3F7enR/Z39/gHl3b2RmYm6Fe2xqVWhhb1JKaGpPS05vR116ZmFNVXRkSk9TV2Fqdn5lXWdzaWZgVmRXYnBdTEtqWGNhVVRVc1ZMWHVkWV5rYFxaY2VfdmdtYm9pdG9yfnR0moJ3f4B3gH+GhHp9dYKEfpeFbnJ0fHp1cYSFj4GAeot1dJB/fIGVjYCFhH19jIZ6fYB2e6OlinmIhYRrdXx6dYOBi3puhHN5hH2Cg3ZvamllVl1bWlpTYm1kW1hhc3tqaG1pYGJXX1tqgGprb4Bna2BoeXhqcnNzbYOAen98dXRtemhqeWpfZW5ogXaQhGhlWGJ3an6He29qcGdmXVRYb2eOqHeBenyQjnp2cYBxdHd6kIF5lnWGg4CFiHZqcXVnZ25bbGNdbXJfZ2FqeGh7bFtug3N0anCBfnp3YXeFhXmQhnSIcm95gHJjcWldcXhlcnSJfHljdIBxaGp6dXJteXh2eWSEfH95d3FkZGNufHxqalRoYWVTSmtnT0dRakVgd2ZhTVNyXUpNVFpla3Z6ZV5tcWlkXVZhVW5uV0tTaFdmXlhNVWxUSlx5X1tea11dWmNlYHlobGBvb3ZucHd1eph+d3+BeYCAh4Z6eXqDfoGThHF0dH95dnSFiJF9gHyQa3OVgXuCn4Z+h32AfoaCgIp7doSrn396h4eDa3KBeXWAfoF0boZufIBzioBqcG5kZFhfWllaVGFqZ1taX3WCaV5tbFxhV1xcbIFlcnR9aWlca3Z1Z3N2cWyEe318eHVybHlnaXhmXWVzaHp3k4FjY1RlcGiChXh4Z2lqYVdWWWdjj6dufneAi457cXJ/aXpwe459eJByhH5/f4ZuZHVyZGdnXGphXG9vXGdfbXRlemhddIBvcmtyfH51dmJ0hYt8iYiBgHhydX91YXBtW3J0Y3FzhXx1ZXOAbWFte3Brant5dnNmhnZ7e3ZxZWJlbXJ9aWtTZ15cVEtxYlBGVWBHYnZmYUtUb1hKTVhYZ2t1emRlbnFmZFpXXlh3ZVRKXGJXaFhZSFdlUEhieFpdX2xaXlxhY15+aWpfbnR4bXBudoOXenKBgHx/iYyGfXV1hnmHjHx0dXWCeXp6goyOfX6EiWlzloF6ip1+foV6gXp/fIaIc3GPrYx7e4aPfWRxh3lzfHp1cm+GbHt+bI96Y3BvYmVdZVZZWVdjZmtfXV1zhWhYcW5bXlhaXGx7Y3B3dWxiWWxzc2d0dW9sg3h+f3h2bW50ZGl0ZVtndWZ2dpJ5X11SZmZrg4J0fmJkalxUV11iY4+kaHh0g4aReW5xfGl6bnyGfHaKc4F5fHh/aGR2bGBmX15pXlxza1llXW9vYnplXHd8a25ucHh5dHVkc4OSf4iEiXt3b3J+c2J4ZFxxcWJxcoJ9dGdygGVebndpZWh6fHVub4J1dH10cmJfZm5ufGRoU2dYWFRNdl9QSllXSGJ0Y2FJVG1TSk1aV2lscXtibWxzY2JaWlthd1xTTGNdWGlTV0dZYE1HaXVYXmBsW1tfYmJchGlnYW54eW1vanaBkHltg3+AgZOIhIF2dIh0jIZ0cnZ1gnd8fX6MkIB+k35wd5aDfJmTeYCAeHp+gHSIg3RwmaF6en+JlHdjdYd4c3d0a3Rvfmt4fHCRc15wbmBnYmxUWlpXaGNtZltccYllU3JuW1pYWGBsdmNpdWppXlltc3Bsc3NzaYR8fn57dm5ubGRpcWNba3JkdXaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEknVsbHtvcHF7fX1zgXeAc3p6emRldWhdYllgZ1pedmhXYl1waGF3YVt8dmlqcm94dHN1aHGClYOHf4V2c2pxfW5md1hdbG5jcnSBenRncH5bYHByYmBrcn5tbXV/c3J4a3FhXGVsbXpgZlJlVFdRUHVbUU9YUUhjc2FgR1ZrUUlQWlVra2t8Zm5vcWJbWlhZbHFXUlBmV1ZoU1RGWlxOSHF0WF9jbGJYYGBhXYtqY2RteXhscGl1eYd7a4N9f4SafIOEeXyHbo+Hcm92en10goJ8i4+Dgpd0eIKUhYGfiXWBgIF0f4Jxh4J1b6GWc3uGi4Z6ZXeKbm16bmZ4cHprc3ZzjWtedW5hZ2VrUl1bVWdhbGtaXHGMZE9vbl1WWFVnanRoYnRlZFxYbXRtb3V0eGqGfH97h3aPc2Nka25hXG5tY3N4h2taVFZjZHh9fXGGXWRfY1RaX1lilZVjbnCDhYp0a2l8cGZ0eHV9bXp1dnB6f3ZfZXJjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXRxdHF1dmtthJOBiXyGcXNncH5xc29UXGdrZnJ1gXd0Y212VmJybFtfcGd+Zm13fnN0c2tuYVpkamp3XmVTY1RVUFRsVlBWUlBHZHJfYUZYaU9JWFRWbWhkfGlreGtiV11VW3RkU1JXaFFYZlRTSFpaUE13dlpfZWtpWWFgXl6ObmFma3l1bm9pdnaAf2yDgH2HmHuAh4GJfmuTiHJndIB7dYCDfYmPf4uTcnyKkYWHn4d7f4aMdIGGc32Cdm6ki3KBjYt2d2x6jGBke3BmeXN4bG1xd4NnZHxtY2ZnaFNfXlVnX2xuW15ujWhOaW1gVFZTbmd0a2V4ZGRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVxeX5nWlZYYGx4fHtwhF9jX2dWWF9XY5uIYmtwgYd9eGxsem5cd3Nte2p2dG9wfIBzWGltXlhcVWFiV2RwY1NeYmlhYmxaYX5sZmx0dm9td3dsaYWMf4l8iW1yZ3F9bnNuY1thaWlwdIJ0c15pbVNlcWVVY29je2Ryd3x3bHBta2BZYWZndFxkVWBVUk5XZFJPW05PSGRvXGJHWWlNSl9LWG1kYHhpbn5kYFVfVF11XFRTYGZOXWFVU0pcWVBZdHVdX2VraFhiYVtejXFjZ2p4cXNuaHZ0eoRygoN6iI5+fImHjXlukIp1bHOCdH9/iIWHkYSVj3l9jI+HkZuFgHyMhXOAgXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjYyMjIyMjI2NjY2NjY2Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjI2NjY2NjY2Pj46Ojo2OjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERBUsza2NjY2NqwnaCgoKClXiovLy8wLEiFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTJG2Orn5+fn6bago6SkpKpWFRwcHBwXOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHhomTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWGhYWFhYaTlJSUlJSUkI+Pj4+Pj4iCg4OCgoKFioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkZKRiYeOipCSkpOPjYuKkImPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYuKi4uLjIyMjIyMjIyMjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQkIeIhYmKhoiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCNhImGhoeFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkYmCh46IhIWIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjoiGh4aIhIqQj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2QjoyKio6Kjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCBgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9/f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX5+fn9+f39/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn19f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn19f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn1+f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYWFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4fHt7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3ent8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTk7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl7e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj06Ojo8Ojg5ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkVISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dnd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/QD48PkA/PT09Pz49PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkVDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjs+PD89PDo+PT9CQkVAP0BOYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk1LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFDREI/PUE/QURFRUNXdYaJin5YR0lKTExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm9wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpISUdISElHR0JERkREQ0FWdIeJh4eGiIJXSUxNTE1NTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExLTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKS01KS0lIRkZHRkVQbISHhoaGh4eIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz8/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9f399fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTUxLTU1JRkpWbIGGhYSFhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQUNGSElISEhLTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lJS0xPTk5RTlFecoGFg4SFhYaHiIiIiYmMjmZCQj44ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QTs5OTk9PT47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5/fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njs8Q0BCRkhLSExLT1Vne4SEg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY1NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODo7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn9+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9OjxEQkRGRkVmeoOEgoKDgoWJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc3OTk3NjY3NjU6Ojo6Ojw4OTg5OTg3Nzo6OTg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT1BRV2tycnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PERAUX+Dg4OEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj48Ojw7PDs8Ozk6PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3J0dXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pj0/QER2g4OEhIWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVBQUFCPkBDQUA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEFAPz9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6PDw6Ozs8Oz0+QUA+YoWDhIOFhIaJiYiHhoaGh4iJiouLi4qKi4qLXj5ER0lLSklGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURGRUFGRUZERkZEQEI/PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj06PDs+Pj4/Oz89QD9DP0p+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqHV0dMTE1LTklJS0hJSkpJRUNERkdGRENFRkRCSElMR0dHRkhHRUtKTElLS0pDRkNDREJBQUNCRENDRERDQT08PkBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc8Pjs8Oj4/PkA9Pz9CQkU/aISChYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtGREdISElFRUhGRkVMTE1JSkdHSElKTk1PTUxOS0hGR0dFRUNGRkZGREVISEZDQT9ATG1wdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw6Ozw6Pj89Pj5AQURDSVN+g4SEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMTExKSUhGSklESkhHS0pISkdHR0tNTkxMSEhJSk1QTk9OTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVb3F2dnh6e3h4enp8fH5+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6Ozc8PTo8Pzw9PkBCRERNbYSDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIuLi4teUlJQTU5NS0pHR0NISkdMSkZLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEO0BBOz08OD89PT5ARUU+Q0VDR0t1hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUZGS09OT1dWUVBPUVNSTlNUT01TTFBTVVdSU1JQTEpNTU1LTkdHSkZGSUpEREVFQkRDY3F1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz08QT9BQUVVTEJJSkdKTHmGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlTWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0xLR0hKSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQUNGRENES1ZQS1BQTlBQeYaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLhmxbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVddWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01KTEpJSUxNS09NU290dnh5eHd6enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SExJTVBLSUpPU1JRVVZVVlR1hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXl5bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktKSUlGQkRAQTpPUVFXWFBQUFFSU1JWV1dXV2yBgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaWlhcaGJHT1ppZ11bXF1dV1JOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpaUlNRT1FSUVVSVVNWXnV4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5UUVFQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fH19fX5/fX59fn19fn9/f3+AgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU05PUU9RVlJTUlJUY2R2gIOCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUFFOS1JVUk1PWVFNTlFTVVVNUVNSUE9NTEhDSUdSU1RaXW1ydnZ1dHR3e3p7e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRgZF1eW1lVUUxJTElhbJJ0UFFTTlFSUFNbUlNSUVJVVWJze3x+gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5CQkNDQj9EUENEQEM+QkhHVkBJTk1HXWlRSEZPRkRFRkhHSEJDSEdIS0dEQkFDQE5QTVJkdHV2dXN0dnp8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWViXFhTUVBVUnNXZVtPT05MUVJQVVlTVVFRVFJPVmBrbHN2ent4eXVybnN0c3l4fn6DgIODgoGCgIKBgWtMRz4+Ojo+QD8/Pj5qUEphRUZISUVCP0hNTUdNUVVKQkU/Pjw9PD09Pz0/QUNDQD88PUI+SU1GVW91dXZzdHZ4e3x6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKT1BOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJpbWxxdXt6fXt4enx8eHd4ZEJAQEE8OkJDQUFDQVtcTntOT09OS0xNT09QTEtMV09JR0FBPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV2d3V2d3l8fHx9fHx8fX59fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT09eXFpJR09RUU9NUFFOUVJTVlhTUllUTllaW1dZXF9eX2VgXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FXUE1KREY+Ojk2NTg2OTc5OjM2NTc5NTxCPWZ0dXd4d3l5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LU1RTUFFVT0xSU1RXWFNUWFFMWFlZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT01MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5OTg5Nzg4NDc1Nzg1OTlHbnJ1eXl6e3t9fX19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5NTUxKRlBQVVlTVE9KTk9VU1RcVlJVU1NPTUxJSEhGPz89Ojc4NzY1OTk2NzU2NVdxcXR4enp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFhZWVlSVU9KR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFBPTk5NUE5UUlBSTElMS09RUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkZBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjRAPmpvYVJSUUBHVFFPUFBRTlFPUE9MSkxMT1BOTlBRUU5QT0pMTU1LR0VFREI7PT08OT1HNjY3NkRucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOERNU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FMTk5NSU1MSUtLTEtHRkZFRDxBQT47QEU7PDg5VHJzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1BQEI9PkVIRkRGRklHSkpARkFBQEZHRElPSFFSYVxRUFJPU05PT0xMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZFP0JDPj1CRz9CP0BkcnV3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48Q0FAR0lETU9iZVBNT01XS0xOS0tNTUxMS05OU2RNSkxSSUlJRUJJSkxNTkpHSUdCQUJAP0VGRUhETG9wdnp5eXt7ent6d3R4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPSEtFP0I9OTk5Oj9CPzxBQkFBRERHS0ZESUlHR0hDQz9CPz9AQD1DRURMTVFUTEpJTVRGSUlKTElKS0lKTE1PUFJQS0dDTEdDQ0tKTE5PTklKSUdDQ0NESUpNTElac254eXh6e3t5fHZycHVydHl5dnhqcW9qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFIS0NGR0hHSktJSkxER0I9Pj06Ojo7QUI/PUJCQ0NIRUpMSkVJSUZHR0NEO0FAQj5AP0JFRElNT0dISkdIS0RISUtNSEpMSElKTEpNXVJJSEROR0JFTEtOTlFOTE1KS0ZHR0pNTlJOTWNuand2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhlcEZLQ0ZFRkRFRUZFR0NDQD08PTo7OjtBREE/QkNFRUlGSkpMRklJR0ZGQ0I7QkNDPj9DQ0NERkxOSEpOSERIRElMTk1ISUxHRkZJSUxOS0pIRU9JQ0dOTVBOUE5PT01LSUhJT1NRUk5TZ2dmcm9zeHZ7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV3dlhWdXVrb3Rya292bGhtZl9wR0pDRUVEQkJBRUBEQj4/Pjo7Oz07PT9EQj9BQ0ZHS0ZKSUxIR0dHRkVDPz1ERUI+QUNCQ0VHSElHTVBJRkZGS05PS0ZISUZFREVJSUhLSUZIUEtESk1NUU5PTk9QTkpKSU1SVVVSUFhlYWFtZ3Fyb3J5emdlaGhjaWxmcWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFRkJBQEFEPEJBPkE9Ojo9Pzs+P0FCP0BCRUdLRkpHSUdGRkZFRENBQUZGQ0JCQkRFRUdHSEZMUExJT0pKTEtJRkhFRkVEQ0lISEtKR0tSTUNPT05RT09PTk9PS0tLUFVXVlZUWWBfXWlhbmpuaHJzYmVmZmRpaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXV2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01HR0VHQUFAQ0Q8QUFAQzw4Oj0+Oj89QEJAQEBERkhFSEZGSEZFRURDREJESUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9OT1BNTE5TV1ZXWVZYXlpdZGBoY2ppZ2tfZGVmY2hoZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hBQUJFRTxAQ0JEPDc6PT47PjtBQj4/P0NFRkRGRERHRUNFQ0RGRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSEVLS0xMTk9SVE9JVFVUUVRQUU1OUU5NUVdaVlpZV1peWlhhYGBgXmhlY2BkZWdnamhoamdobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURBQ0dFPEBFQkQ8ODo+Pj48PEJCPUA+QUJGQ0VCQkdDQ0RFRkdHR0lGR0tIQ0lIR0lHRkRIS0lHS0hNS0pLTEhMSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9VWVpZXFpaXF9fXmBjXlxiZGxjYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJER0U9QUdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREZGSEhGSEdJS0pFSkhISkhGRkxISEhKR0xMTExMSU1LTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJlXmRgZmhgZWhqZHNzZmpoZmxwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd3B3SUpLSUtHQkVERTxBRkREQjs/P0FAQEFEQUBCPkFDSEJFREZHRUlFRkVJSEZJSEpMSEhKSklLSkZKS0hJSklHS0tNTEpKTUtNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFiYGNkZWJkaWNkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV1c3Bzd3R1dXd2dXV0ZXFza3BxanJ2cHdKTEtLTEdDQ0FFPD9FRUVDPUFBQ0JCQ0VCQ0RBQUVHQ0dGSEZFSUZDR0pHR0pGSUxISUpNSkxLR0tJSEtLTlFLUlFMU01KTk1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5hY15gZmJhY2luaGNpaGhteHZtaGlub3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnNxcXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0VBQEQ+PURFRkM/Q0FFRERGQ0JFR0NDSUVCSEpJR0hKRkRLSkdISklJS0dKSk9LTUtJTEhKTUtaZkpkXEtsUkdOTl9uVWxzW3FwYndjUlBidnVodWNhdmFYbnFiZHZpbnpmXGx1YGxrVWB4dmlqaGhmZ2xtam1vam1vc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cnFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj88REVGRENDQ0VFREZCRkZHRERKRERKTEtJS0xHR05JSEpLR0tKSUtKTkxMTExMSU1MTFtzYmRwXmxsVUxOZXJdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm5ccHZncU5Lcnl2a2Fha2VlbHhta3Zsbm9zcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FBPz1CRUZCRUNFREVFREJISEdERUtIR0tNTUlMTEZKTkhKS0pJS0pKSktNTU5NTU1LTk1NW3Jwb25wcGxrTVBRbFhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcF1gc2xxalV1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0hGRUVCQUI9Pz9FR0JHRElFRURCRklISERHS0pHTUxOSkxNR0xOSU1LSEpNSUpKSkpOT05OTUxOTUxcaGR1XWxxV2xOT1FtVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRklMS0ZNS0tRUUxITU1ITkpJSE5HSkpISE5PTU5MSk1NSlp0cHBvcXFtbE9RUm5Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpbXnRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0VFRUBAPkNDQUZDSElNSEZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUlKTElLSklJS01NTUxJS0tLU2tiWmleX2pjcnJaX1lrb2BlZVVrX2RbYWJRYG1oXGpcbmlpZFpvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3cklIRklERURGQUBBRURDR0JISkxHRkRHS0xJRUZKT0xJT0pMW1FKRkhIS01JSEpKS0tJSEpHTEtLS0dISkpMTExLSUtMTlRbXVRQVU1RUE5PT1VSUFBRT09RSkpOUFFkcWlUWVZbW1xVWVtdWF1cXGNmYWFmYmNmX15ma21obXR4cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzSENFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0lRS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKSEhIRUZMSElLTkxJT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZFxiWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVFSkpKRkVISFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdERUpHQklNSktUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teZF9aXWBjX1lfYltgXltVWVhaX15kYmJhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN1eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLSkpFRklJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRURERUFFSUQ/SUtITltjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19iYV1eY2FgYmJiY2NlWlJZVlddW15jYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkRHRUJFR0hGR0hJRkdKR0hGSEtJS0RESkpNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0hEREBEQEdIQT5ISUZPXWFaW2RdX1RRUlhdXFxcX1pLV1xMUlxZSU1eUVFdX2JjY2NjYlxkY2JkY2VYUldVVF1ZW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSUZHR0lHR0pGRkZJTEpORUNKSkxOSkxJS0pJSUdCSEhRTUtLT01LS0lISEVEP0VCSEhBQEZFQ1RdWV5YX1lfW11VWFhQXV1RS0pWXlheW11WWmFSUl9fYmJgYGJiYGNiYmRkYlhQUlJTXFRcXV5eXl9fYGRoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0pJR0RIS1FPTUxQTExLS0lKREVBRUNIRkFBRkRBVlVFXFReU1ZfWE5UVU5aW01KS1RgYVtfWF9eYl1PWGJcYGBfYmNiXWJiV19fVFFQUVJZU15cXF1eX2BiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJU2NRRVdfSUdHSERGTUpQUEZJSUpLTkxMS01LSkpHRUlOUVFOT09NTk1OSExCREFDQ0ZEQkFDREBMSEJMTFBPTkxGTUZGSElIR0xMTU9QSUxPUFBTUExRVFJVWlhXWVdYZFZPU1RQUU9PUVVUXFlZW15eYWFlZmNoZGxtcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXk1ISFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS1BUU05QT05PT09IS0ZgRUReTERmY0NMW0heW3NtT01WbVlMQ1BfVGxXZ0pdV1VeRExRVUxNU1ZRUlRYVlRYVVRcVFBmWmhoZVpUa1RYV1VbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEg4ODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USktHYFRHSk9KSU9NUlFLTUtMT1JVUk9QSkxOR0hNUVtZT1BQTk9QUEpLUX9RSXxZWXJzV1BtSHFub2FWUHFxdE9Ca3NucXRwU29fW25YXVZcWFVraFVdVmNZYFlaX1ZVV39pdHV1X2F2X1liXFxmW19hYWFiXmBjZ21wbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4fYB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxLT0hMUlhXUU5PT01RVE5PUVBLTE9HTVBTW1pUUVJPUFBRS0laeF1UeGRoWFFTUHZndGxwYm5ma1JyT0x3bWpycHNycXJwb3CAXWZ6dXhxcXpxfnJ9a3V9YVJofGVzc29zc3x9cH54b39yX2BgYmJbYWFoa25rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpRT01OSk5WXllVTFFTTllZTFNTUk5MUElRUlRZV1dRVFBQUVNMSGd4bGN4cW1aSkxUeXB1bXVibnZQZGRJZXZxbXdvgGpmeHhpWHJSaXttaWp6en1seHp/cGduWHV1anZ1cIBhc2h9aWx4fG9fX19jYlxeZGVmaWplZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFFJS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV09VUE9OU0pLcm91dXF1cWNoYVZuTHFwXkdoeVd2VEtoeH14YHl7c25hXW1vZFNncnVubXlwd2x2c3RxbG1cc316a215fGx1bnxscXZ1eF5fX2JeXV9lZWlnaGZlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUUtNTkxMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05RSVJtSGl3S2BkdnVVV2xObmx7cmFqZ391VEtXa2h9bG1seF9acHp7X2B6c2Nyb3hxaGR8aXJ7XVRLbF92dWxqdnx7bX55a3xwXV5eYlteYmRlZ2ZmZWNbY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxobW1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTUxTU1JPU1NYUldUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFOUFVMS0tSU1JSUk9WVVFRT1JSWFhRTlBVVFhYWFtbVVFSV1tXWFdbT1JUV1dYUV1YVl1VU09YUldXWFlaYFxncl9bW1pdXV9jWl9jY2VnZGRkY1pkYmdmZm1ubXVmZmdjYGZeXmdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJOUlFQTFZWVFBUVVhVWlZSW11WVVRXVVlYT09MTldUUE5VU05QTkxRUEtKUlFLUU1KSk9RVFJQUVNSSUlNT1BRUlFRUVRVUVhXXFdTUlFRVVVWVFpRTlJSV1VTWVZUWVVTUVVTVVVZWVheWl9hXVxbWl1dYGNcXWJjZGZkZWViWWBhY2FiaGhqbmNhZF5fY11aY1xibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVFNWFdVVFZYV1daVlRcYFZXVllVWFRRUEtPWFNQTlVQTlFOTFNQTU5VU05RTk1OUVNQVFBSVFROTE5PUlRUUlJRVlZTWFpbWVNVUlRYV1dZW1NPU1RXVVRZVVZZVVFRV1VWWFxaXGBdV1lfXV5dXF1gYV5bYmJjZ2ZlZWJYYGBiXWBoZWdlYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFhWXWpkVlhZWldWVFRPS09WVFBPVFBQUU5NUVFPUVhUUVFPTU9TVU5XUVRUVU9OTlFUVVVUVFJUV1VaXVxaVlZRUldYVltcVlBTVVVVVlhTV1dUUlFYVlZbX1tfYF9WX11eYFxcYGBfX1piY2RoZ2VlYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVVxaWldbW1xZWltkcW1oZF9bWVZWWFJNTldTTU1ST1FST01QU1FVWlVUUFBMUFdVUVZSVFNYTU9QUlVYVVVVU1VYV1teXVxbVlJPVVZWW1tWUVNWVVZYVFNXWlNTUVlXV11fW2BfYFZiXGBhXWBiX1xgXWNhY2dpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5QV1NOUVFQUlRSTFFUU1lbV1VPUk5TWFZTUlRSUlpPUVNTVltVVlZUV1pYXV5cXF5WU05UVlZbW1VRVFRWV1hSU1hbU1JSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2llZ11cZWBhYGFjZF9iX1laX1tcW1lYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1cYFxgVlxdaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVWlpaU09TUVVVVVNOVVFSWlJUVVRYXVdYWFNYXFheXVlaXVRVTlZWV15aWFFUVVhYWFNWWFtTUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXl5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVldWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVU09XUVNXU1dVVlteWFtZVVpeWF9eWVxZUldSWVhYX1lZUlRVWllZVVdZW1VUWl1dXmFiYGVkXV5dXWVhYmZkXl9kY2BcZ2VoZmRiYGVhX2FhYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFdXV1ZWV11YT1VcWV5dXVRTWFNXVVNSU1dRU1ZUWFhYXl5YXVtVXl9YX19YXFZRWVVZWlphWFtUVldaWlpYWVlaV1ZdX2BfZGNiZWVeYlxgZmJkZmRfYGRiYVtmY2hmZGZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlRcVVdXWVdWXGBhYWNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVFJWVVFTVVdbW11fX1pfXFZfX1pdXlleVlNZWFlZXGFZXVVWWltaW1paWVpYWV9fYGBkY2RlZWNkWmJmY2dmZV5hYmBjXWJjaWVkaF9nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVZYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZVU1ZUWF1dX2BgXWFdV2BeW15cW15YVlhYW1pfX1peV1hcXF1dXVtaXFdaX2FeYGVkZGZmZ2NZY2ZlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpZWFpYV1tbWltXWFpUWl1cW2BcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXV1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBXVldYV1ZWV1ZdXV5hYmFfYl5ZYV1dXlldXllYVVdbW2BeXF9ZWV5dXl5gXFpaWVtfYl9iZWRlZmdoY1plZmdpZ2NfY15gZmVaaWljZmljZl9iYmNhYGBfXV1aWFtZWVhYWllXWltaWVdZVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcWFpiZWNhUlxZT1hWWVtZWVdaWmBeYWJjYGFjX1xiXV9dW19eWVlUWF1dX19eX1taXl5gYmJcXFdbXWBiYmNlZGdmZmdlXWVnaGlmY2FiXGNnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYmBjYmJdXFtaV1hpcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeX19aWFZbX11cYWFfXVtgYWJlYl5cU1xfYGNkZGZlZ2dmZmZgZmdoaGdkZGBbZmdeYWhoY2loZmNgYmBjYl9fX11dW1pbWVhYWFZaVlxaWlZWVUxYWFxnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t8fHx8fHx7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHt7e3t7fH19fX18fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKh3NxcnJycnQ+KCsrKyolYpKMjI2Njol+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyJcm9vb29vcjIXGxsbGxRdlo+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f4B5d3d3d3d3eHl5eXl5e3hub29wcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx6enp6enp6dXNzc3Nzcnl9fX1+fn19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dXZ3ent4e3h3dnZ4eXt6eX15eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t7e3t8fX19fX19fHt7e3t7fHx8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3d3x8fXp7fXt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d5fnx8fXx9fHh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3t+fHh7fXx8eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt8fHx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoF/gIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl3eHp6enh7eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYKCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgYGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYKCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qKi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhIWCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYWEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioaGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLioqLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoGCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYKDgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoKDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+f3+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWGhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GBg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KDhIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAf3+BgICCgYF/gYGAgIKBgoKCgYGCgoGAgoKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9/f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgYGAgIOCgoOCgYKCg4ODhIKDg4OCgICAgoKCgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhYSCgoKDg4KEgoGChoWEhYSDhISEhoWEhIWCf319fX6ChIODg4ODg4ODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhoaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMi4iFhoWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIOEg4ODhIWDgoOEhYWGhYaGhYaHh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eFhYeFgX9/f39/f39+gICEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoeGhoWEg4SFhYaEhYWGhoeHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhIODgoOFhIWHh4WEgoB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iJiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OCg4WEhIWEgYCBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhISFhYODgoGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODg4KDhYmKiYeFh4WEhYWEhIaGg4KCgoKCg4F+fX5+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4iJh4iGiIeHiYiEg4SDhYSEhYWHiIiGhYOCgoOFh4aHhoaDgoKDhIKDhISCgYKBgYGDg4SDhJGSkY6PjouHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoKChISDgoWGiIuKhoWGhIKGhoKAg4ODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GCg4SFhYWDg4WEhISEhYSFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjZCNiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFg4GAgIF/fn2Cg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIKCgoCAgICBgYGBgoGBgoSDg4WEgoKEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5/fnx8f4ODgoOCg4F9fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBgH9/gYJ+fX1/gIF/f35/gIB/gICAgX+AgoCAgoKBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDg4OEhYCBf3x9fX59fX6AgH59fn58fX6Cg4OCgoGBf319fn6AgIB/fn19fXx7e3t6enl6gIB/fn9+fn58fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gICAf3+Afn1/gYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f39+f39/fn1+f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoKBg4SFg4SAgYCAgYCBgIGCgoOBgYF+gIKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+BgH+Bf4CAgIGBgoKAfoB+f35+f36BgIKBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDg4OCgoKBgoF+fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKChIOAgoOBgIKAgYGBg4KCg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoWEgoKBgYKCg4ODg4OCg4KCgoGAgICBgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoCBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCCg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYSGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiYeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359f35/gX+AgoGFhYWGhoeHhoeHiIaHh4eGh4eHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgoKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fHx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+MioqMiYmJh4WGhYODgoGCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoODg4KDgoKFhoSEhYWEhoSDhIOCgoGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgYCCgoCDg4SEhISEgoSDhIWChJGRjouMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDhIWFhYWDg4OEgoGDg4KDgoKBgYCAf4F/f35+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHyAgYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH59e4qCfYB/foGAgIGCgYKAgYCBgH+Lk4+Mi42OjYiHiIaFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/f4B8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICBgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRi4yNjY+KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317en2AgIB4foF3e4CBf4GCgoKChIaHhoZ+iJWKfoGBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fn1+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2LjY6NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn9+f4CAf4CAf399fHx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYF8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKMjIuOjYuKhoSGhISEg4ODgoOCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn9/fXx+fX59fXx7fHx8enx6fX5/gISDgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yKioyLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t9fHp6fXp+gn+Bg4SCgYKBhYaFhYaGh4WChJGOjIqJioeIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJiomKiYWIkY2LiIiGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgYB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH18fX19fnx9fH18fX1+fH59fX19fHt7e3x7fHx7ent7enp6e35+g4WIh4iKi4uKiYyQjYyJiIaFhIOCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+MioiIhYSEg4GCgoKCg4KBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX19fn1+f319fXt8fX58fHt8fXp6eXl6eXt7fn6AgYOHhIiNjImJhoWEhIOCgoKDgoKCgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiYyJioeFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGEgX5+gIB+foB+fX5+gIB/gX5/gH9/f4B/fX5/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyJiYeHhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX5+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99gH99fX99fn59fnx7fHp8e3qAhYKEhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIOBgH+AfoCBfoCBgIB/fn5+fn5+f35+hYWBgYB/gIOBf36BgH9+gH+Af359e3p7enx7eoKDgIKCgoKDgoOCgYGAgIKBgICCgYOBgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4OBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOBf3+Af4F/gH98e3x6fHt8gYB/gX9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fnt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAgICBgIGCg4GBf4CEgH2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fn2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4KAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn1+eX5/f3x8fH59foGAgYGBgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9/gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/foCBfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhIWFg4ODg4ODgoGCg4KBg4J/gYB/f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH9+fn5/f31+foGCgoJ+f359fn5+fn9/gH99gIGAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt7e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4F8fHp7e3t6e3d2eHVyc3Zxd3lyeIWFhYWDhISCgoOCgYGCgYCDgYCAf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYCAf32Af35+f399fX1+gIGBgX5/fn5+fX1+f35/fnx+gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH9/goB8gH+Afn+BgH9/fYB/fn9/f319fICAgICAf39+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYSCgoOFhYKCfn19e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f359fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzcHh3cXuFh4WFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgX1+gH9+f4F/gH9/gYB/gH9+fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WHhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2FfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcXB3dHN8hYaDhIKDgoGCgYKCgoGCgYGBgoGAgICAgIB+fYB/gH+BgoJ/goJ/gIF+f4GBf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gICBgYGBgoGAgH9/f359f357gZONenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIJ/gICAgH9/gIB/f31+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5eXt6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYSDgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX+Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt7fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXZ2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOChISAgYF+gYKAf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+AgIB/gH9/gIGBf4CAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGFg4OEgYGDgIKCgYGAgIGCg4KAgoKEg3+BgH6Cg4CAgYCAgH+AgH+BgYCCf3+AgoB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKDgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl6fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDg4OBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgICBgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX17f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKChoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgYGCgoCAgIGAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYKCg4KBgYOCgoSBgIGDgYGChIODhISDg4SDg4KBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4KEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOBgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH96e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKChYWFg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX56fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnV9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4KDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9f31/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92d3+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhYSDgoKAfYGCf318fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/f3x9gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KDg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4KBhIOBg4OEg4SEhIWEhISFhYWFhIODhH99gYR/fX18fHx8f4F+fn5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KEhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WFhYWEgX+ChH9+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYqJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYF9gXWBeoN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+Ee4WDgYSDgH9+fn59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgYN/g4N9gX1+fn1+goOBfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9f359gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB1gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeHiIaHhIaGi4qFhIaHh4WEhYWFhIKFhYWFhoaFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIKEh4aDg4aEhYWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goGBfn5/fX17fXt8fX1/f319f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYaHh4iGhIaFhoaGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhoaFhoSGhIOEhIaEg4GDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISDgoF9f357fHt+e3x8fX9+fXx+fYGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFhoaFhYWFh4aHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoSGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFhIaHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH59foB+foB/fX18gH1+f35+fn98fH1+e3x8f3x7e36AiIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYSIhYaHhoeGiIaHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaEhoaFhoWFhoaFhYOFhYKFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXt8fn1+fnx/fn19fn59fXx/fH5+fH2BgH18fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEg4SDgoSHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaFhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYWEg4SEhYaGhoaGhoeGhoiFhoaGhYSCg4KDg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19fn18enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4eHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWHh4eHiIaGhIaFg4KCgoKDhoGDfoKCg4CDgn9/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYiKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYSFhYaGhoaHhYaGh4eHh4WEhoWDgYGBgIOFgoN+gYGBf4OBf35+f35+fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFgoGCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFhoeIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4aFh4OEhYSGhoaIhYWEg4WFh4WHhoeFhoaHhoaGhIOEhYKAgYCAg4ODgn2BgYB+g4F+f3+BfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaFhYWFhYWDg4GDgYCBgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeGh4iIhoWIh4mHhoaHhYSGhYWHhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaFhYaDg4OFgYCBgICEgIOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp7e3x7fHt7ent9fXx9fH5+fnt7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhoKCg4R/foCAgIF/g4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18f359fHx9f358e4iFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYSFhISGhoeIh4WFiIaJh4WDhISChYOEhoKEhYSFhoSHhoWFhYaDhIWEhYaFhoSDhIWFg4WFgYGDg39+f4B/f3+Df3uAfX1/gn2AgX1+gX59fX19f3t/fHt6eXp6eXp6fHl6ent7e316e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEgoWChYGBgH9/gIB+f4CCfH5/f36AgIGCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIaHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCf319f35+gIN+e398fICBfYGAfX2DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5/gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx/g318fnx8gYB+gn99f4J8f359fX18fHt7enp6enl7enp6enp6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIaEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhISFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dXU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXU1dXV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19jc3d3d3d3d3d3d3d3d3tvX2NfY19fX2NfW19fW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLmzeHNzc3Nzc3Nzc3Nzc3CSu7i4uLi4uLi4uLi4ubCKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OlmTIpKysrKysrKysrKyolYamkpKOjo6Ojo6Ojo6WVU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpps4LzAwMDAwMDAwMDAwK2WqpaWlpKSkpKSkpKSml1dXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaugRT0+Pj4+Pj4+Pj4+Pjlur6mpqampqampqampq5xiYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs/Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0crKysrKysrKycnJycnJzNLR0dLS0tLS0tLS0tLQzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7Ozs7P0c7O0NPQztLU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbY19fX19fX2NfW19fX19bW1tbW1tbW1tbW1tfX1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Ozs7RwafR0rmPvtScgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Ozs/P0Z2Pw8KUsJyxlri5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/P07qvqr6koIuRw5N9fq+w0s7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Pz9OfsZu4m4edutTSzZ6ew9DPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz9HAnImbsJuQn6DS08CgoNDP0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Uo6KBnqqrr5GhudevoqnU0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDRxJ+Be5mWopqtm6nYo6G61NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q1auvvMDRhZWmxZii0Z6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzs7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJh3+Fn6CfnJubrcefodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HG09PVnJjDp6uknsW0pKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg0tHS16iHzc2SkKfXuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dLPxdTUy73V0tHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojw9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS09TS0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ojw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk4NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzs4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg3NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2Nzc4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0Nzc3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyampubm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhRSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxlY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGhiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtoZ3VaZnJ3c3hmZ11kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3Y2JgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lpdG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZXRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7q9wLm9urq0v7i1t7Ovu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2dhXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcvGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdW15cWVFFRENNSUFEPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBw8O7ubO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pXF9fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXVtUSjw+P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m4s7KytLK3vrqztbK8ury2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdTkhBPz1IQ0ZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTEu7u2tLSwtrq2tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE+SkJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKyL7AuLm2srS2s7SvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxBRk1GODY2NTo2Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vbWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u7+/ubS0s7GxrrC5uba8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIP0hRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmura+ysrq6t7e1tby0r7Srtrq4wMTBu7W8vbiyrbOwr6yutraytLSvqqSem5ycnqion6CoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWim6OclZCMj4+Pk5CXlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGwrq+yp6avo6+utcG6tbeyt7aytKuytK6qq6+wsrOtpZ6SmJSPmaCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsKOlp56gnJWTkI+RkJiQlpWYl5+Ym5mbo5mXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7REA9Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaOkrqWsrLS8t6yysa+xrbWvr7O1qqetrKOcmZSOkZaXmZmcoKOim52lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZabl5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOD5CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6jqK6trKurr6qvqZ+XnqWenqWmpKCin6agoq6rrK21sramr7Srqaq0sbCwuK2noZydmpSYm5qRjpGVkYyPjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrbGxtKmxr6KZnJ2eoZmbm5qYmZuUlpuWmJyloaCao6GanZmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVbU1pZTVFKTk5VTFJMQTc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho56doJ+joKKvrqyvsay2p62xraamsK6trLCnoJ+ioJeRlJyhnJmXkpOfnaKkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7essbSjoJ2loKyhoaKgoJqYlpafm5uYpKGgnqShoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTUc9Skg4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjpOemaidrp6nnpyhnZ6amZKZnpyioqCgnaKfn56fqaunrKmqtKurraulpauoqqyqpZ+emZKSlJiZlpaWjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oauiqaiyqauop6iamZ6aqqafmaegn5+nqKWknp2qoqKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKagnp2dl5iWmZ6bnKSfn52knZqdnKSipKOiqq+sp6mjoKGsrq6qq6agnp6ho56enpudnJSTlZSenpiUhp6aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLS7xcO8wru3s6myraqztK+zrqquo52rp7axrKKvpaCjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHJra3VycGhXW1FFVEhESU9IPkVBM0VIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpZ2Vm5ufmp6cnqWmp52goKuxrqekpKOgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr3HxsK3w8nIwsDFvrm0ubq1u7ewtbKqurKuu7a+urqqt62rqri6tLyurbijpaKep6Wio6mmmZufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR9enJrZGhveGplWltGSkxERFNMREJENzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlZqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkp+fkJafmZKalp2bmaOhr7OpoZqdnZ+fmpeYl5KMj5aXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3MyMnRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zT0NPTzMrCxcbGysfOv8nQy8bExsTBu8PBvr6+tb2zrb+/wsPGxMfErr64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURCQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6yen66mpbGqxcbMzs2/sMKppaitraqhnaOfnJ2aqZOZoZCOoJONlJKXmaSxsaukoJ2gm5mXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LU1dPTyMzHzc3J0szO083Ex8nKwcXLxsjIxb7Cs7PHxMvKys7Fyr++v7zBx8TMzMjJv8O/rbCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/enJ1dWdjZ3ZpZFZXUURNRkBJUUI9Qjw6MjNAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo5+ko5+gpKyblqmWjZeNjI2XprCupZ2enaGloZ6blZSWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTTz9LD0NPW19XW0svJztHLxs3SytLV1tnV19PW2M7Syc7RzM7QzNLPv8fGysPMzMvOz8XGx7a/yb/SzcvPxcnIv8PCyM7Mz9DPzMrHzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHdzdm9jYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU6NzY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopuppqKmq5qjsLGpqLXQ1Nfa0sfGy7S2wsaytqmipaahoqu1p5qxoZWUjJCmrauclZihnZuhop+cnZuVindpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTPz9XU1NHSzNHO09fW09XQz9LT0cnT0cjQ2NfY0dfS19nV1szOz8nN0cvOz7/FwsfFzs3R0NHIy8zAysvF087LzsjEycbGyMzK09PR1c/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NDQ6PTUyNzU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamgr66qqqyepq64qKu32NTV2dnRztDAvMzJt8Cvp6upo6SxtrOjtqmoqKGqqaGYlpiam52hnpqdnpR+cmVjYl9fYWBfYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvTzdXU0srPzNPW0tHWzc/V1dHG0dTK0dTV1s7S0NjY2NfLyM3Dyc7Mycu/yL/Iyc3Nz8vQzc7Lzs/Hy8/Qys7KwsnGyczKy9HSzNPR0M/Pyr3IubCtu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bua2FkbnBhV1xaSUZGRExXRTtAPDMzPD04Njg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabnqOnnri2tbWtpa2uvrSxwNnS19rc1s/Ny8PT0MLCsqutrqyms7G4q7LOuaufnJaUl5uen5+dlJaXlYlsXl5eYWRiYGBgYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zQ0dPKztHV0tXVysDKwcXMwsjJwszDxcjKys7KzMzPzdPLxcjPzMjHysTGwMXJy83Q0cbQzs3NzM/Fx8C3ub3Dw73DubKzvrG8xMS1qpiloZmWkZWVkouUjZuRlJSPj5SCiYV4cHFrbmhgYHFoWVhoVk1HTElQUEI7RD47Njc6ODk6NTY9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfDucvV1tna29jMzM/J1tbFxLiytqqkrqy5ubC21aGVjo2YlpCTkpGWlpaQjHxlYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytLIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL7Gyb3CxsjOxMLHwMfNx8PLycvPx8PDz8jGwcbHw77Ax8vLzM7CysvIx8vQxMXHu8fDyMjCz8C9vL+wwcrHur2qsbKnpZ2inJiQm5CkmZeZkZWYiY+Cd250ZGxgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJuls7Gsyc3KyMS+vbrNzcbQ1dXZ2tvY0MrQ0NLUysW6vr6wqLervrq3wa6Rjo6WkIaDhISCfoWFf3RgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsjGwsPAw8fKycjKyMHFzMbIy83JxMLLycLCy9DEy8i/ucG7xce9v8bPysO/w7vJxsi6x8bEysC9wcvGxcO9xby8v8PEy8XFvMDJwsXH0sXAyL/KysbIxtDDw8bDr8TLx8TKt7+8urSprKWlmJ+YrKOhpZqjoJuUe3ZzdGZqW2FubVpbWFFETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPHzc/OzdXQ1tnY2dDN1M7P0MvEuMbBtrW8scC3urCRjJOXh3uAhYaAdnh1cnBfWltdYGFiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsba6srKzsrHCvLy7ubjAwcHFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e7usXDvrzBzcLGvr61wL3DurzGu8K5s7zFw8LCtr+1tb6/usvDvLW6yLq/vcvDwcXCxsjGyMbQxsLMyLLHysPOzcHFwr+9srews6eoqLmxpa2wq62slHl2d2plaGBob2NWXllKRUpGSEtBRkJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc7P0snRxtbV1tjOzNDIzcjKxb7KwbK1ure7trCRjYqLhXmAhoaAfoR8dHVkXFxdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLS3tLOys7q1vbG3sLWvsrvCvMHEvL+7tbK6vsC4x7m0u7bAwry3vcbAw7y1rrK2ur6zxLe7tau4vL3AvbC6ta+2urLFvLavu7+0trTFvL7DxcDDxcbIy8bAxsa7yMu/z8rHw8bBw7fDvr22ub7Gv6y1urW3to54dHhnZ2Via25eVl5gRktISEpGQkNBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDNzsnLyczKy8bRz9PRz8jLxsrGxMC9z72zub25uLecjoeJiXt5foaGd3iCfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7m4tbCsrKeeoqqnnquss62pq6mzrrawsqmupqyyvLq2w7m6urGqtbm7tMK6sL+xvb27tbvHucK3raqosLHAtbi8r7CnsbO0u7yrrbWlrrauurGwqrmvrbuuu7i7v7+9ucK/x8PFwbzGwcjLuMXHxb/Hw8O6xMbCu8XJzMuzucK8urKIcnZ2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj49OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs/SzMTGwcXQyM/CxMfBxsbFxczEy8zCxMHIwbq8u8q3tLy9trWrkYmQkHx5foqFenuEgXduXl1dXV1fYF9fZGNiY2NiYF9eW1taWl1aWllaXWVub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6qsqrCjpp+qrbW2sb25r7ivqK64tLS8uLO8r7e5tbG7wbHBrqWooqyxsrOnvKqrqKusrbS0pqiuoaSvqbKlp6iupai3rLCyt7m6u7G8vb6+xL+1wcHHyLe/wMW3xMK/u7/Ew77EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWlJTS0ZGRT4/QDk3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7rEsLawm5mVnJiqqbCxs7W9r8bR0M3EyLu7zMPMwLzKucDGwLzMusPHxbq9xL66t73Guba5u66ylYOJjYF7foB+eHR/fHN3Zl9dXFxeX2BeX2NjYWJgYF9eXVxaWFpbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSepJuXkaGjqqOin6Wlp6WsoJ2bpKassq+2t6ewrKeqtKu0ubC2tKy2uLGwurmxt6Sfo5+nsaerqLmqpKanqKeyraCnpp+bpKasnp+npJ+gsa2trLK0srSwtby2u8HBsrq+w8GyubrCs8C9v7W4u72+vMLHxMLDv7/EoIN3cGthZV9rb2BVWV9ITmhPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Nzc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbu+taCelZ6hprq2q7Ozu7PF0MnMw8e5uMnCzsG6y7m9yLu3yLu3xMazvsW8t7C5wLuxs7ewooSHh4J9eXZ0b21rampxaV9gXVxcXV9gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXV5kY2JlZ2dnam1viJ2poJeVmqGWm6KYlY2eoaKmm5+fo6Whp56bopufqrCtsbWiqaqpq6yktbitt6+ssrSusrWusKqfnZ6jorKkpam4raGmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7KyubK9tLaxsbW0v7a9wL3Dwbq7vZeDenJrX2VeZGRYVFheSVddS1BHSUpGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmbpKbAsq+2rLS3xtDJycHHvLzFxdDAvMq7u8G7tsW4tcHBs8LEvK2qtbq3qLGzqYuGiIB5c25wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWltZWFhXV1dYWFhbXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaQnKGhqJ2bnaWmoaWcoKCamK2ura6yoKWiraunobWwsbGsp66yp7qzprahop6ao6KtoqGptaqio6adpaajlpiel5manZ+Zl52cnJusoaumo6Smrauzs6q0sLKqsrm0r6mvsrKyt7Ouqayusriwura5vb+3srGUhXl1ZV5lXltZVlNaVUtbUUxJRUhLSUI9P0FBQEA6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vb+znaWjmKWxwrW2va20uMPNycjBxrjCwcjQusPGwLa8vbbDura/wbW7v7uqprG7saiyr5t9hYWAeXBxdHFoZmRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnqicm5qqpq+wq5ujo7eqoJ+uqLappqassKO3sKS3oKKbmJiqpqGbrLivoqGknKGfoJOVoZSWlpuYl5aXnJSfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxr7Cur6anp7KusbSvvLS5t66jlIF5dWReYVZZV1NSVEtNXkxQS0dHTEtFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp6np6Oqu8C9wLmutLjCzcjHxMW+x7rKzbXExcWxv8C5wMG6wMC5ur23qKixu6apoqWJgX54cmpscnRwaWhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtcWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKann5yfpJ+qr6afoqO2qKChoqizoaWnpK+lsK2stZ6gnZWUqaGhlKyxsJ6iop2emJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpaukpbCnpaOrq62lqK6vrquoqqmzpaarr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFFHUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuyt6yepKett7u8wcW6sbm1xcrLwcTHx8m4yMa1xcLJr7q8wrzDwMG9vLe6tqansraeooqZiIB3b2RiZ2loZmhqZ2ptYF1cW1paWVpcXVxbXF5fXFpZW1lZWltXVVhXVFRXVVNUUlVgYF9gYV9gYWNkaYGUk4mRjpSSk5yUlZajmaCWnKCloa2lpKSio6GbqqqlmZ6lsamgoJ2kqp2noZ6srKmora2ioaGUl6ObnJCrqbCbn6KenpeYk4qeko2Sk5WPmJiSm6GinKSgoZWgoaSmm6OrpaKkqqOrrqSusammpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlVRRlFPSFpcT1JJVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Nzs8OD41OTg6ODg2NTk6Ozw5Nz88OTU3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7KwrLKtnaenr7m5s8DIurXAr8bJzrvCy83Jt8u/tMDHzLC2vci7wsfEvb+3urWlq7CunZqHjoN8dWlqam1oamxua2ttZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eXl9fYmRtjo+EkYaPkY+Zk5SSnJqinJugp6iqqKqmqKSjmKSupJSZpa+pn5uYmqCerpmbqrOfpaafo6OhlJOblpWSqKmtmpygoaCalJCMmY6LkIySjJaUkJ2hoKOcm6KVm6CioJeiqKOiqKugq6+krbelo6OirK2pqKuvs7iyvbWzq6+Yg3JyaFtYWVNVUkVZTFBcWU1UTlBMUFJJTklCPD8/QT89NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzAxNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaivrZupqKy3tqy8yru2v6zMx8a5ws/QybXGvrq+xsu1sb3FvcPGxL3Bs7mvpquvq56XhoF3eG9uaW5ubnFnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/i5CKko2XkZeZoqCbn6qppq2qp6+ip5mfrKCVlqSop52Xj46Zna6Wl6eqmZ+dlKWhnpKQkpKSlaeqpJmZmp2dlo2Mi5SGiI2DkIuSlJCgnqCjl5WflZqgop6Tm6Wlp6iooLGwprC8p6CjrLSrraewtLC5tcCxrbGrkH1wcmJWVFVOUklHVlFTUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NzYxMzIxLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6vMPL0cyzubq+wMTHtrS3vbO7vMS+wrG0rrGusaycoohraG5vcm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/dYmOh5CJmImUlJebmZ2om5+qpaSqnKeYoKWbko+eopqXloSDkZqjj5OinJWWlYeimpqTi46Kj5mjp5yVlZebkJKHlI6MgYuNgJCKkpKRoZqfoZWTmJiVoqWZjJmkpqimoaC0sqeyt6Gdoresqq2ksrKmtby1q6uxo4h4cm1dTlBRTE9DTk5OUEtGTk5KSk5NUUlNSkFHS0hIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSopLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKmloKmlpLOqorLDtbWys8fHuLvEys3Hta+8v7i8xLOzrrairbXEuruvqqy0r6+gl6h9XmBnc3F2cWpuaWZoaGpfWFlYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWWFhZWFtdYW9zdnGFiIKHgJGDjoqUkZOdoI6anKKho5iklqGblY2HmJqMc42CfY2WloWQmZCTjo57mY6cjIKKf4mYn6KekJOYloSOgpN+fnSJjnqQhpKQkJ2amZqQlY+djqKjjomaoKGko5uitK+sr6yfmKW5pqWwobCunLC7qqmvqpmBdnJiVkxRT1BNQ1NOTFFNQ1BQSElOU01ISkpESkxFSks9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd3t6KjtKilpaijpqWmpqazp6W0wLiwtLDKxrm6ws/Hv7WvvcOvsceyraeslaSuv7ixsJ+nra2rlpWicldWX2hnaWhpbmNqaGdiXFhYWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeKk5Cfl52VlJaUjpaJf5OJXztXb3uLk4l/i5GMj4WGc4qEloF5gnqFk52Ug5WOkI+Chn2SeHFvhY1+iYCQjY+XmZiTio+InIiel4eIlp6aoaCXp6+oramon5ettKKmrZisq5intKKpraOSfXFtX1pOU1FWTERUSlBNTEZPT0lFTFFNS1BKSU1QRklIPTc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCgrKy0zODU0Nzc5PDo3OTs4NkE5eLego66hpqaqoKepp6KpsKintMG5sbWwycO5tL/PwLqxsbjEq67Jrqejnoaborqtp6iWpqWkoZePlmlRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXuCdFBCQH+VkZF9iZSMhIqNm42WlYqSiIaVhnmIf2BKUW54ipGEfISMiYR/f25+f5R3dXZ4hI2ZcFGNiIqGe354lHZnd4WIfoqIlYqNkJKWi4OJh5SEmoyBhJKblp6clKSjp6mlo56bsKuhpKSQpqqWoaqcoqaoiHRrZV1bSFFRU0xJVU1TSUxMUElIRktOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj03Ozw2Ozs0Nzg7Nzc3NTM0NDY5Ni8zLy4xMjUyMjEvLCcpKiosNDgzMzk3OTo5OTo6Ojo/OXa2nKOnnZ+hrqGnqKWnqK+sqra8tri2s8K8t6i6ybm3qaq3uK22wKqim5ODj5myn6KajaCWmZSRi4xlTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+GgXuFjJKBkpmLj3uGj391f3hzbnVwdI2NgXl9iaqFeXpodnuOcHJteIGKjJJ4eoB7gHZzcpJ3Z3WEhISEepWJiIqMi4B/hIqMf5SDe4CPmJSblZGfnaien6CeoKmln52YjKekk6Cglp2epH9xZ2BcXEpWT1FHS1hST0pNTVJKSkpNUEhMUUxSVE1FSEE8Nzc7OTk+PTo7PDk4QD86Oj49Nz09Nzk5NDc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI3MjE5ODc5ODc3NTo8PDd2rpijoZicnrOpr6mlrKywsaq9tLK8uLa6tbKgt7uzq52fraustbOlnpaSmIaUpJadjIOXiY+JhoaDZkpJSklHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhZWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gXZ4f4mPfISYkoFyh498dntva36tfHOQin97hpKAfX90ZnZ8hWxvaHN8iYyHgGx5cX1wbXWPcWhxgH2OcEOKhIKDhX53d3qLhX2LenV+jpKPmIqSmpujl5mdm52eop2WjYqkm4+dl46WmI51bWtlYVlXWFRRSlJVVE9QTlFWS05LTk9KUU9JT09LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn56WoKavrK6rp6mwr7GsvLisu765s62om7GorZyQl56nrKekm52TiJZ+jpWSlYB8inqFgH9/gWVKR0hGQkBDRElMTE1RUlBRU1VUVFVWV1dXWFdZWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hvfHmIj3l8i4VvbYyReHN4amp/gnKWkYuBfZZ/SZKYbmh3foFsaWNseYWQkoZrc2x8bnJ7hmhtcH5zjYiDhXp9fnt2b3R0hYJ5gXdwfI6MipODlpeYmpCTlpeZl56XjIOJn5GKkoyGkJZ9bGhtbm1XVVdUUVFZT1NVVVRYVU1OSE1KTU5LQ0lOR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6kra+iraqota+urLS/q7zCv6ajmpWlmJ6OhYyWoqSbmpSXj3aRfoWLkI98eH50fXh1d3xmT0VHREA8Pj5BRkdHS0tLTVBTUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpyQZlvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4h1gYiGdGyZkXRze2prnY5MeYSSiYSOZzF2hnNsfn2DdGZldH6EhIWAZmlsdWtwf3xncHB7bpKNjntzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlY+XjoB5iJeIhomGf5CHdWlpbmdjV1FZV1hZW01QVVZaWU5JSUVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LCs1Nzc1NDc4aU84OzVukoiZkZqWpKitnrKeprquq7KwwrK7w8ebl4+UmYuOhnqFkZqWj5KOkol0ioR3i4+Mf3Z3dXh2b3hzaVVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bXGDgYWBeYSGhnlyoJR0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiIBoZmJpbnJtcIN1aW9YdW+OmpF2bH96fG1xbXB/enN1bWJ2hH+GgIWQkYqLipKLkYyLj4N1eIuPgH6CgH2PeHBubmpeWltdW1lYYF9TTltbWVhMSEpGSkc/Q0FCRz9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW0qK2xrsGzusHGl5CMlJCBiX1ugpGTioSLiJCIdoSFb5iKjH95e3txe3R8a29eSlBHPkA3NDU4Ozs8PT5AQkVITExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8fYWDf4x+dqKZeX6GgISZhZucYYaqn52LgpCNenaJfomIjnOKl4+De1xkcXR6e3eKbGdpYXhvhY+Cem6Bd3OEenBzeXdrbmldd4d9h3yIh4+Ai5OXg42GjYZ9cYR/hHx1d3t9iHRtcXJkZV5aWl1TW2ZeWFFVWV1WR0tLRUxHP0ZAREM/QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMd4l/lIyRnZ2fppGgqp+wqa/AsbvGupaPkZSIeoZ2a4CMkoN+i4WQjXmEgnWiho1+foKAc4OBfWx5bFNYTEFFMzExMjY2Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXtxfI+Me3yJhn6Xh3ahmYiHj5KUpY2sqUiGra+vioCAk4qCi4KEkaiHgJiYipxzbHyBhod9jmhnZ3h+boWGgYVxhIZHa4B3cXl2aG1rX3d9g4h/iIWMepWenIqLiZF/e3WLdnx3bW93fn1xcXBqWltbWmNiV2dlXFVQUVhaUURMTEdPSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFh5GPlpiSl6CdrKGmuK+zvbSXjZKLmIt9dHB/ipN/fo2DlJV9hn+HpYeJgIOIhnmJi4B1hXlfY1ZMQzYwLi8yMjEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiZGBmpaCoKGYlZuapa2Tmbuxp7vHw6eKjKGljpOJgZB7coOen5GcfnaFhYuPh5BpaG+DgHSMhoSLcYaCd4d/e3aFfW52dWeBlI+GiYiIiYiiq6OWiY6YgHuCiXp6b2dreH13fHFpY1xZWVxoXGFmX1pPTE5YU1FJUEtETkdDSkRDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnZwZ3iDe4CMgIGQj4uamqScoaymq6+wl5KRhKGUhHh3gI2UfX+ShpOWfoqBkpuOhIGCjIuCio6EgIqAbXBqXkNBNC0tLy8vLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1RUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6ChkqOppaOsk6i2oqfBwq7Ir3i6lJp8jKGemISThYKPoZ6TmZKEioWPmJGWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGXh5OJj4+Xpbapm42VooOHk4R+f2tqbH1+fX9xX1tiXllmalxsa19YS0hPU1FOTUxGSVFERE5GQkNFR0I+OTk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwg3B1h3F2kYZ+l5aalJ+fm6egqpaTmJ5oZqSafoWTknqBkomSkn2LhZmSkYOBgYuOiYaRh4SIhXh4f2hOUj4vLy4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMm3yNHPvpugcGmrqZ+Ek5KFnKCampmnkZGIlaKamnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZWenI6Tlpqko6e2sJ2RmaiIl5COgYhsc3N7fHluZl5bX15hZ2NfZ2dcUkVLS1FPSUpNRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTQ2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYzQUBpYl5QcXVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mImI15go2Ljo18ioaPkI6Bg4CJjImFk4WChomBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49RkhAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKiptayxt7Kyrbuxs76cs8Ssu8nLuMO/t6WjsLKsraqji5aYhaWmoKKYgqaZjaKqqKSHhZOjoKCqoKSpjpyxi5Wjp7e7nKGjsJOjnaOekaSiq7Cts7WilaaqiZqKk4qVent+g3tlXmZaY2BdYmJeZmdfW09ESkhUT0ZITEZLR0ZGSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo1NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGUhYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMj4uKe4iDh5GOg4WBjIaFiJKGgoSJhoeHh3FuYUBFNjQ8My8xMTAtLCstMS8tND9EQU5WUVJUVVVXVU1cUUdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHxKuzxbattMCzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsLGbmZKan4mnr6qklXefpJehq7GzmJapraiutbuyuqyvtaKxrLK1vLi0rrWgqKijqJupsK2zuri4qJy4qY2lj5KToId5gYByV19iVWRgYGFeX2ZgW1VKREVMVlFJSkpFSkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxcWlFjZFd6dXGBlX2EhpN2hn6AjXu/u6O8grSUk46bj4SIj5OKiXqHgYyTjYeFgY6AgYqPhoCGiIWKh5F6eW5dV0BFTjw2OjQ2QUI3NjQvLzZDSENRXE9RVVdVXVdPX1VJS0pBQD9HS0ZGRDs+QDdENz9CSkpFR1dUUF6PpK2ksrTDtrjBzMq2u8S9s7TBt7jCtb+wuHSxtKa6xaSwxrmxs7K0qKS2tqqxoKKWm6KSpbGtpa2sp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6t7+4uri6ra2xprGqrr6wvbzDw6yZu6iVro+YmauJfoB5aFVhX1ZoY2hkVltjWVZUSkhHTFFHRElKQUlEPj9CQktAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVZad2pwf4+EgY6Fb3tyeIhiuaGZo4mVlJaTlJSOkJeSh4d7h4GOloqBhIGKenyLiIZ8ioKBi4SVfXh6dWZPXGRHRUw6UWRgW15TRj87SFBEWmNRUVlZWmdaU2BhTVNPRUE/SUpIRUZBQEM9RTZCP0hHS01TWlRelK+4tbu5ycC7vcrNvLzBvLi2vLu3vrW6s8ZhdbKlsZqeq76qpairqqSisrWgq6eelZaemJ+upaenpZ+kk6KnsLOosrK8tsG908nJ08bCxczCysTAvr6/vLy4tLC5t7fDusa+xMmwnrqroqyPpam3iYB8bl1fXlxVX11oZVNYYVZTVklFRk5LQT5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASk1QUkxRXWhtbHGPjYaQc2xycnSI1cC1mqCNlZmZkY6XkpaWjoaIfYeDjZaKfoJ/g3l7i4SHe4t5gYqCl390fXprZXB2WV1cUGVlYmBlZF1bWFhcTWRtVVJtbl9vX1hnZVVZVEtEQktKSEZISEhIQkk5REBIS1RUVl1aXJO5wLm+uMbBu7nKy7u2ura4ubS4tbWutreZZHWpnq1wXqKtnJihopuknqullJ+fkJSOlpiXqJ6mn5+amYOjnaykqrGtt7C8uNTQztbPyczSzM/OysfAv8LKvcG9wsDFxMbKwMnPtKS8sbWwnKy5vZp9dmlbXVlXW19YYmJRW2FUUkxDQkZHRTxARj9CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LiYqKigtLjAsQE0rLzU0bYlJMEiJdD8+QkRAQ0RHS09EUlxaaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQi4l8gYRze4qDhXuKdIGKh5V/dHt5bG11fGlzZWlsaGZqaWlgZmlpbVptdJetpL2Ih2dbb2hdWllUSEtPUEpLUEtUUUhMQUpGS1BfX2JnamKXt8ewurS7vraxxce2sLmxsbuts7Goq7itjbaonpynmk6anoyPoJaRp5illYqTk4iRiY+Rkp2boZiblZaHnpmmmqywqK+ns7PT1NTW0cvP09TO08/MxsPK0L/KycvJ0sjNzsPQ0riwxL3Euqa3u8Sif2xhWltbVl5WWGRZT1xYT1FDQklFQ0k8QUQ+Qkg/QEI4O0Q+QEk9NTY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CRmYNocm95eYOhqp6ml4ybm5iLjpWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfnF5dWxweH9ye254c2xpgHBtY2lucHlpd31+y7/D36duY3huZFthYEtQUlVOWV5QXl1OUU5UUVVUXG5ud4Nylq64rLWosLarrb3Bsqu1pqW5p6yvoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSLg5SVl5eUm5CcmJmZnp6rrKSnoqysztLV0c3M0tPT0NTRzsjD1NHIztLT09fN0tHF0tbGwc/IyMOpv7jQnHdsY1tgW1ReUVxaT09TUE9JPkFHQkNGPUFCP0ZFPkA/Oj09PTxKQjQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bHdwfX6AoJ6eoYyNmZOUi4yTj5aFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBvd3Nsc318d3xzgnhxa4Bycmlwcnp5cnu+y5p/jbKEdnKFd2lhaV1EWlpbV2ZkWGVrVFhdXWBjXmN4e3+LgZmqpKSioKGppqqxuaumtKOirqKkrqKnsZ+JppuVk5GKko+IgpSJa5WijZmEgYZ+kYODk5esi5WOlZqOhZKQnZensKKgoaWkqMjNz8fCy9DT0dTSztPNxtbTzdTY1tbY1dfVytTazcrY1tHLrcTDy4hwbWBeXVZSV1JaT0pHSkpKQDs6O0VCRD1DRD5IQz9DQjs8OTw6R0M0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKKgJ2VnpSFi5aJj4qJjoiPgHiElJmLjYiIi4l+g3hzfH2Eh3eAe4eRl4GEb3hxbXV/dnh9dIZ8eWyHdnVufXaFdXl7nbWMPEGLxqV+jX1qZVdJQ2VjZmNoamRveVtfZmhrbmlugYSJkYyen6CekZeZoKOkprKkpbKgoqWfoqmhorGch5+SkpORi46Lh4SPhH6cnIyNgoSFepR/gqqWo4ySi5iTi32XipqRqrOYm5ynnKa9w8W5tsXN0dDS0MvSy8nUztHV2tfX2NTZ2M3Y287J2trS1r/MzbR1c2xiW1dRU1BYVUVGSklGRj06NzpAQkM6SEVARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MiooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXSGjX2XkZ6LfoeSgomGhYqCiH14hZeXiY+Dh4aHeoR5cXt7hYZ1eoaOjp16jXB9cHB6gHJ7gXKEh4Bujnp1d319gnV/fIeJsHRZqsK3jZKBcG5jPV5ocnFxcG53d4JlaW9ydnhye4yHj5OSm5agloiMk5yfm5+roKGsnKKamqCmn5+smYyajZGTjoV9iIiDhYuOoJmTiIOHfmyZeYSZh4iTjI6VjIZ7m4iTjq2qlJWXn5imrrW8qK29xsvIycvLz8nE0srU19jX2NfU29fT2dvWz9va0tbJ1cyTdXdmZVhXTlFSXEdCRUlJPkI+PTg6PkA8Pkg9QEJBQkVBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmx2gIhxkZCbgHmAjn6CgYKFf4R8fYSYjoeLfoaHgXeDeW57e4eCdHqSno6hdo92g3R1gX50gIRvgZCCb5KFdXyBhXp2h3yJuMalw8q4gpacj3hwZk5lY4J7gneFoZCLeXp3e4SAfIR1bZSWlZaQmJGDiY+XmpeXpp2YoJefk5KXo56aq5aRkYuNk4OMhYmJgYaQkZ6cmYiFi4GFl3qIiZ+XkImOiouCfKGJkIu8oJiTl5qcqKalrZ6ntb7Av7jGyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvGg3Z2ZGZhXVJVVVRNS0RNRDs9PDw5Ojw/OT1BNz4/QD1APj05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs5OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVxpdHp5bImNknd2eot8foB/gH6Fe36CkYqFhnqFiHx2fnVtfH2HfnR/kp2Rn4OSfId+eI9+eYuKb4ObgXSZhn2CioV8fpF7kKmPkMOgvYybpJx+ioR9iXOMi39zppqcmJSFe4+RiYRpR3GhpJ6MjJGShYiLkJKVj52bk5SRl42MlZ+dlKGVk46OkIx/kI+Oi4SJk5aZn5+IjJSRnZCCjH+mmYiFjoOGhIClhoqLuJedkZSWoaagnZ2do662urSrwMbK0MjHzc/T0tLY0tXXwNfY2dvY2trZ2dfbtnZ1dGdmYlRdWVJPT0hDTEM9PT45OTs6OTk8PTZAPj49PTk6OjszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdPPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PERSU1JYX1ZYZm1tbWmBjopxc3mKe3uAfH98iHt9fIuHg351hIZ6c3pzbYF+hX53hpuhm56UkoCMiH+Yh4Cckm6IqYV7oIx8kY6DiYScfpuRio2jop+RpK+gi5GLhouBk4ZXcq2Ln6ubkIOZnJCPjluDopGCjZ+TlIyGiIySkoyUlZWQjI+KiJabnY+VlpKMk5SGgIuJk46Kip2XmKOihpOdlaCLiomOnZCDiI+Ag4eFpYWLkLKYnJKUl6GgnpmSm52nsbispL3Cx83Ixs/M0MzO18/R1K7W1dja2Nra19bZ2p1seXFjY1paVlFVV0NASUQ/Pz46NDk6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieGxifpGDb254i3h6f3uBfYd8fHeGhYBzcIWCe3V3dnSFg4V9f5Kmop+mopeKnZCUl4uKqJdyirKNhKiShJmUhZqMo5agmJOJm56ik6mwoJGVkY6OiJaMb423hJrEyLKcoqacnJiWkbGQZKTNx5WOhoeJkJKNjZOVioWKioaWmZuPkJSTh5WYhICPi5mIjpCql5eko4iZnpaaiI+Hl5iKhY+NgX+Hj6WIjZOomZeTlpihmJ+Zk5yaorK0paO8wb7HxsXJyMnCytPMzdSo0tHW1tbY2tTT2s5/b3tkYFtcW01JU1lCQUdEO0I+ODM3PDw6OD42NDo6PDo3Mj86OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGOfXxtfoh4en57goKDf3d2gYN8bW6Lf3t9eHh8hIeKfouis6ejq7Oil6efpaSWla6ig5G4lZKzmoyioYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmpehwI6jybirnKOmrZiSm52ynYWGqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIuUk4eUmIaEkZCcdZGZspWWpKGHnJmSkIuQipebiYuWjoZ9jJieiZCQnJqak5iXn5OgnZSem6CxrqKkt760xcfEvcPDwMbNysnTps7M09LR1tjT0Ni6b3ZyWV5TXlROSElNRUJDRDU+Ojc3Oj88PDc9NDI2Njk3NzQ+NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdNWlxZSmZgO0iEi3p6boWGenyEeIGGgX5weHx+fW9yjXp+gnx4houJhoSSprusqLG9sKWts7Ooo6KwrIqatZ2juKWVraWXqa24p6Sjn5qpmKqkrrCqmpmclJWRl6CYmru7rsqhara4q7CUmZ+jrJOXvqNeqrKDioqNlIeQfI6OfYOGjo+UlYiIk5aMkJWNi42WmJOdmbSWlaudipyUko6RkoyYm4qSnpCLiZafoY2UjZiZnZKbmJ6UoaCUnJ2lr6ihpbO4rMLIxLa6vbzFx8fC0aDGyc3NxdfW0cvTn213ZVlXUFxQTkVDPjxDQUI4QDg4NT9HPT02PDM1MzQ1NDU0QjQ5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRIYmBicEpAi4p+gHOGh32CiHWDioJ/bn18fX9wd4d3joKHfI2PjIaMmanCwK+9xruztMC9tK2rs7aMqLKtrb2rm7ulqK25uKumpqKipKOpr7Kxqp2cpJmbmJefoqalkqS6r6nAvK2usrmlpKh+iIacrb2wgouMi5CDjoORj3qBiJCNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpiPkqGRiZSbpKyUlo+TnJ2ToJ2bmJ+hlJqep6akoqOwsqbBxsOvsLq3xcTDv82mx8THxL3W0M3EyoVwb15ZV1xYTEpBS0FGRz9BQEM7OjQ+QT09NT02PjM0MzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVONzlHRD9DRlxlRmBpZ1pdXJOMjIl7h4yHg4x1h5GKgW9+e4J/cX6Be5V6kpSUmJCTlqezxsm/wszCw7nHvbuvq7m7mLO3urLArqXBpKuvvL2qrqujo56nq661sKqcoKucoZyWn6+1p4ujurq2wbysqZ2zpaSolIWOqcTDpIKLj4eIhIaVlI15g42Rj5GhjIyUko6Jl5+Yk5mVmKagr5yMq5yNlo+SkZWVjpCVko+hlIaXn6CynpSZk5+gmKSemp+boJSYnqWkpqakr62lwMTDrqi3tsnDvrbPssS/xLyz0crIwrRxdWlZVVlnUExIQkxLTEpBQT5ERDw1QUU7OzM9OEIzMzIyNjNBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWk1lXGZUYmuZjZaKjIiTkIaJeYeUkIFygHuNf3iHgoKQeo2hlqiZmpm6vcfIycHSycvCzb3Cs628vqi6v727w7eswamss7y+qrCqpKWkrK6zrba1oZ+vn6WimKOzvaqbqL3BpLa4r6yUsqysrJeHmqmmpZGCjJOlloqBdYqSeYWOkpCeoJOPk4yPjZSjmZaclZWjnqqekaWajI+Pj5WWiHyPlpOSo5qVn6GctaWQnpako6GlnZ2mmJ2Vl5qko6mnorKsqLvAw6+ls7fMv7mvxLO7vsG4rMLDwsCXanZeVVRZWEpKTElGRERIQ0NBREw6NERJOjs0PDhFLjEyMzUyQjI2U0hPPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+aUhfWGJaY2NWno+cjpeOnpKJin+KoJOEeIV/ln9/kIiKkYCWoZmup6SYwr3Hw8fF087Ozcu8wrewury0vcu8w8G2t7yts7+6va6vqKCpqLatrqmyt5qeraOnoZ2rt7iqpbC/xLK9ubSoq7a0rq6XlqWsqJ+RjZKyxaeWjnySlXyHkpmPqpmYk5OPkpWTpJ2TnZmUoaOinJifmIuMj4+eiFqQlpeSl6SZZZijn7KllaGVq6upppueppaYlpiUoKSopZ+2q6m5u8O0pbS1y8C4qrarsru4rqi4ur24gGhrV1RSU01FSVJNSz9BSEVFSEhIOTVFTTs+OD1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs+QEJGQnBFaklSZWFMRqWUnJeil6mWjJGDiKaTiIKHgpyEg5WQkJSPmqKer76voca8xMTHxs/PztLKv7u2sbq7u77PtcO9uLm3s7G1s7izq6ecq6y5qqmnr7CYo6+lp6OltcCwrKy0v8O6wLq0p7q2ubSvlqWtrq6ki5OUoY10wpp9l5mEjpeZjLGVm5qVkpKZmaWjlaCbl5qpnZugoJmKjZCWnGBKlpyalZqlllWXsKCvnJ+klK6tqqSaoKWTk5iYjZygp6KatKiqs7u7u6qxssfAuaasq62ysqOhsrK0pG1qYllXTU9KRE9PUFI7R0tJR0lDQz46S1U/QTo9RU0wNzUzNDpCNDRNV087SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiqlpmgoqivmZGXh4uolo6Ik4WgiISdl4+doZqjpLXJtanFucLDyMrJyM3Nxr+7s665ucHBzLXHusG5tbqwr6+ztaekm6q0taqppq2smqSupaSorLu/qKy2t7/Bv765s7LEsrm+raOvtay5poibl6abdr+fhJmdjpOamoyul6GcnJeUm6ChqJ6on5qaqpqhp56YkI2RnYNudpKimpWdop2RrrKjqpSoqpepraOinqSnkZGZnIeUnaKelrGmqau5tr2ysq6+ubago6eopaacm62pqYtgYl5dTkpLRkdNSlZMPU1FTktMQkNEPFFWPUFBQkRPMTg9Nzc/Qjc1VVhPP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH5lXkhFq5Wbop+7r5mUn4yTq5uRkpOJq42GoZ6Mo62Uo6O2xr60wLnCwsfJxcLOyMK+ubKvubXBwsq1xrLCvLW6qqitrbCjo5iqtLumqaarqp2pr6ejqqu9u6itvbW4vse8t7a4wrK+wbSqtbervqWPo5iSoqC8n4maoJmXn56Pt5+pnKWim5yhmqiks6CbnaacqKqemJWPlJuLlomMpKGUnaKdoLWvpaSSr6uZqqqcnKOiqJCUlJ+Cj56enJWppKGhs7S6tK2otbKznpyjpZqXlZiqoZ51XVpdW0hHRUZMUUlNRUdHQlNMSkJFR0FWU0NIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5ZlxGQ0OdcGJHRaeXo5+ew62cl6WYmqqclpqaj6qWlaemla2smKKrtsPDvL62wcLAx8S/zca7vbmysLmzv8PItb+wvLe5tqakq6ytoaGZqqrEoqSprKaerK+roqmpvrinrb+yuLfHtrW5uMCzwMK4tbO0r76jl6OXlJyUrp+QoqOlo6OgkL2kqZ6oq52doZulnr2hmaOfoqmsoZ2XjZWek56Hj4SNk5+koJ61rKWblbCmma+lnJmonJ6MmJSeg46gmpuSpaSal6uxtbGqpaqurJuYoKCSj5CVqJ6UZV9XX1tNSEdKTkxIRURJQT5RSUE8R0lIXFJPSz1IT1U0QkY5PkhHNUNhW0tCTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW1SRjxLeGVhVkuimqOcnsWsoZ6sn56uoJKjn5akoKaprJi2saKqs7bFxL2/tcDCu8jCv8rHtbi1tLGztLfBxba+sbi1ubSfp6yqrJ2enqWkwaWfqq2gpKmtr6GmqL21prG9ube2xLK0uLq/tMTBubmus7W1o52llZKUoa6gmaKeqaiso5rCrKmerK6bm56ZpqC9oZ2kmKusrKaimo2an5KeiY5Xf5afpaGguKqnk5i0op6xn56ZrpWdjZiTnIGOn5eVjqGjlZClrbKqqaKipaWVlZ2Yi4+RkqSeiV9iWGJfS0dKSk5GRUFHSz89SkI5OUpKTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtNnp6hmZ/EqKWitKKds6eTq6Wgo5+sqaydu7CorLaxx8XBwrLDw73GxL3EybyvsLatsLSvv8S0ubGwurSsmaixqaqanaWhp8Ktm6yxm6qjrrCppam8tqe3u76vt8Sts7PDwLTHtLu4rLS2raqippaVlaSsop+gm6eqsK+vu7KmoKmpmZmYk6KjuKCho5KvsKylp5+SoZ6Vno+QjZWem6Kep7OmpoyXspuirZmcmqyPnZKVkpl/kaGWj42foJOLpquvpKainKCekZGak4WLkY2bnX9fY1lmZElITEpTQkNASUg7O0Y/OTlPTVVeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwyNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ6jn5ygw6mkqrOipLWqlrOsp6GksqyuqbuyrbG1tMbAxMK0wMS+ycS1v8jCtKu1qLC5rL/Es7eurba4pZiqsquqmJ+ml627tJuosJqsoK20sqirubKourS5s7jAqreyxL21x6i/r662tamnrKGYl5KmpaKimJilrriusrW2oJ+opJqVlZSkoLeipaWWr7Kyp6qmop6ampuVl6ifoJihnq6yoqaMl62YpKuWmJ2ij5qMkpaYhZWelIyPm52TiqipqqGnoZielYuOmY+BhZSIk553YmdbamlMT05OVD5DQU5DOzpJPzc3Uk9dX1JWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDEtLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJb2hVQ1dGjHlmQzujo52hpr+np6+xoam2q566sayjq7S2sbC5t7C3uLjEvcPHvb3EwsbAuMDFwLqptqSsu63Bwre3qq2yuqKUrbGtspakp5GquaqfprCcq6CvtLOrqba2rbyttLO5t6y4scO7v7+mxKuxt6+oq6unnpiZq6GioZGYobGvs6ywuZqcqaCal5OYp6C2qaajorGxtKyzqKyfnKCgm56lnKKXnaOzsJqfkJOkmZ+omZOhnZOWiJOWkpWWnJOIkJqYlI6pqKafo5yXm5KFjpmLfYuVhI2ZaWdrYGxtV1BRW1VBQkVUQDw7SUE3OlhQZF5QV1dFWV9eTUxSTl5LSj5aY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEtLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9p5+doqm9oqqwrKSyuKqmtrSsoK21va+zuLu6vre2wMK/ycS5xMLAv7jEvcG3r7Wnq7eyvL6/tKmusbaelquuqK6XpqiOp7ufpayznquisbCzrKm2tLW+rrGytaywtLPBu8a3rL2wsbisrKqjsqaepaqgpJeRmp+zqrOrq7OanaecmpWOoaaktK6ooa2urrGotK2yqqScn6iknpWimZuotamWmZKSnZmdn52QqpyVloSUloqdmJyTio2WlpqWpqWjn52WlZeSf4+UhXuNkoKLlWRrcWZvcV5GWWdWREJNWERaOUhCNj5cUWhcT1ldR1teXU9NUlhkSkpDXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVVxnSzaMemZMQKSaoaWtt6Wsqqavrreqr7W7p6axt8W3sba9wcO1tbrEvszGucPAub65w7jAubK0q6m6trq5vrSqrbC1l5inrKmsm6urjqu+nqyusqOroLGts66utrK5uKqurrGota+1vL3Ks6q3tbG0r66mobSgm6itoKaWlpuasqKtoKavl6GkmpqTjqOlqLOqoaazraq2pa+yta+kmZ2sp5qYn5qZq7ejl5OQjpecoJeWk6qempF/kpeMnZuYlZCKlJKemaSioqCYlpKTlXqLj4V7jIqCipFqbXdtdXthRmFrWUlIWlo9e0pGRDZBYlRpW01cYUtcXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVF9UXy81KENfUVwuK0IvSkdQW0czY1lUS0SZl6GxqbKqrKakr662qbe1uqSstLfJu7S7ur+/tLO3w8DMyLzDvLa9vr+3v7yxvK2nurm3tsK2q6yxt5SWpq6rqKOwqZSvu6StsbOnqKOytLGysbWxuLSpr6yyp7evt7TExreptrassK2pp6O2oKCnsaGklZyalbGep5ygqo6po56blpimpqW4qKOytayosqeusbWspZmgrKibnJ6clKm4nJSOjoqXm6KXj5ekoJyTgpCUj5ybl5aViJaPl5qnnKSgkZaRkJV2hI+He4SBg4uKbG92dHt+XExmbVxKTmRcP2J7R0k4R2dXZlxMXmJNWFlXVVdUaV1PT0hgXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOR2YyNydHYkxWJS1CLj1FTFE8M3JrSUNDkZmlr6Wur6uopbGztKu3srihq7W5ybmtwbvCuLOxtcLCzsXAwb20vb+/ur68ssOnqbmwtra/vK6rsrGboKexraamr6WdsrWtq7GyrKmotbustbO1rbStqqyorKm5rrKxyMC5pbqwqayspaiusaalo6+kqZyenZuvmqOjo6ORrZ+joKCiq6anuaWstbelq6yprbC2rqKeo6mqm6Cbm5KktJmOio2HkKGglIyUnJ+SkIONkpKcmpeVlIeXkpWZppufnoySkY2Qdn2NhXx7fIaIiHBycX18fVxTZG9eTllnXEZElltHO05tWGJbTGBiTlZXVldUWGddUVJMY1lbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvKzEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISis6SD4zQkhTLD6QaztHSI+cqquiqrGkqaWztbK1trKyoauuvcy6rcC6x7G0rbTBw9HFxr7Asr7Awru+t7vEpqy3rLK3vMCvq7Gsn6OnramopLCjqrKqsKywr7Cuq7O8p7exsqmzqqulpaOtuq2qssO6tq27qamnrKmnsaWqpKOuqqiin5yjrZWlnpiemaydoqepoq2mpK2suLKyoqqioKyvsayeoKenqZmjmZmPoKaXhoSOioueoI6KjJWajo2EhY+Un5yUl5WGlpOTl6SbnJyKkpCNiX9+h4V8dn6Fg4VycXCIdWtfWmBuYlFzcVxLO4R8Rj9YdVhgWk5kW05WVlVXUVxhXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE7XEowLkpnREY4O0IwNUVLWDFAlVk9TEWVmK2ooquznKqqsLetuLavq6arq73JvLC9tsKvsauzw8POz8O+v7TAwsO6v7PHw6qut62yuL6+sq2tqqSnqrCop6ixpbSuq7GvrbKxtKy0vKS4s62sr6irn6OesLerqq27t6W3tqSpp6urqq2hqaemsbKkp6WhoayXqqGVm6CmnqWiq6Sto5+nsbiurqSmo5uqq66pnaKlpKSYn5uWj5ickoGCkImEnJ+Lio6LmI2OiYKLl6KbkJCbi5OSkZOimZuZio6Li32GgYGDenN/goB8cnWLpId4a19gbmZXZYdjTj9nk0xFYnlXYlhSZVRNVlVWVE9cXWFVS05oVlZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlZaLjBKZ0FBPDxCKzpKT140RIY9R0ZEl5OwpqOrsZirqq22rLayrKasqqm8wMC3uLK7taWyr8PJy9G/wLu5v77BucG5wMSssbWxs7rAvrKxrqyqq6i2qaaur6q5sKiysq+zrbeqt7entLerrKWpqpyjnrOzqaiktLWgt66gqqiqqKunoKusqbm1qqqpqaKqoK2ck6qhnaCloqajqp+dp7Svqaero6OYpaenqpyipKOgmZigkY6PmI1+h42HhJ2dhoOJiY6NjouChZSimo2NmpCRkY+Sn5eYloyKg390hoF/f3h0gn55dn2Ah52Pb3JnZnB3XGFziGtPXplWSG55VWRWUWNPTVZUVVBPWFtiVUhPaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EPJaOsaKmq6+arKatsLS1sKymsKqour67wLCtua6htq/Ix8jRwL69u7vBvbrCwL6/rrKysrW8u8KxsbOqs6mktKilrbOzubCjrriysLK7q7qwqq62rKqfqqyfo6C2ramhn7CzorWqnqinqaOqoaKsrai9r6yuraKoqKCsmZCwoZiioKennqibmaqxqqOgrqKhlKOjo6eYmqilmJeYno+Kh5SIfY2GhISjloSBgYuGjYuQg4OTn5aIkZyQk5GNkZyUl4+KhoZ3dIF/fHV4eX95c3J4Zn+GpHZpX2RqgHRniIx9U1hvXkp4c1NkU1FeTU1SWmZOTFZZZFhHUmhSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQDSRkLOhpaetpKekrae1s7KrpbGnqri+wLuvp7mqpq+xycfI0cO8v764vb68yLrBuLCvtLG6u7jAsrK6rLisorSnp6yyt7qzqKi9tq62vrC9p66staytnKmvo6ClrauonJ6rs6W0qJuqp6mjqJ2jqaipvay0sK6dqqSgrpybs6OWpJylpZ+lnJupq6afnKuinJOcoqWemJeoqZKYmpSQioKPhX6Pg4CInY+Ffn2Lh5CNj4N/k5qThZOhjJWRi5GbkpWHiX5/cnt6fnxoeHx5dG9ve2aEeISJZGFnYXKEem1neF1eVD9Xe21UYlBRWEtMTnJ1XUhaW2dZRVVlUEQ+Sk9EQ0E5SEdLUz9qYkpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mYkFKN0dTYFUqPTlEVz0qkJWymqCgqqaloayluLOzpqmxpqy4wb21r6K4raiosMLJyczBtr3AtLe/usi1wrWzsrWyvbi5vbWtubW+raCzp6ursLa4tayfvr2qs8G0vKGvs7WqrJ+tsKOcpqmqpJ6bpbGnsKCfq6mnoamcpKihrbyorrGuoaujpK6en62ml5+boaOcn5yapKujnJulpZaXlaCjl5uXpayMnpGRkYuCioCAjoB7mZSMiHt9i4aPjYuJhJKYkIaUo4mTkoeRmpCTgYh9eWt+dnl4Y3x6cG9vcXZnf3NphGhlZ19sc41sYWlvYG89WnlrVV5OUFFKSU1UWldNXV5sV0RXX09eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+KR00OSYnLjM0LjArLzQmLDokNDFBaFkxNFM9ZV9ETDZLVmRPKjsxTlc9I5SZrZqhmKilpKCopLiwr6SvsKmruMG5sq2fua+rqLS6yMvIv7bCvq+0vbfEtsOyrrmys8C0ur23qLm4vaqjtKipqrGvubGrnLy9pbDBtbair7a1p6ansLOfnqSmqKKlmZ+sqKmeoKqupqCmmKOooLG5n6Oxr6GsoayknKemqZqam5+klZ2dm56qp5ecoaqTmZSZn5OZlqGpkZqJjpCGfId+go19fKCMjYh4gouEiYuLhYeTmo6JlZ6IkZWCi5aNkXyFfHNwfXF0dGB6eGhtb29taH1xYnttaWViXWWFfl9ac2pxSkl/aVhaTVBMSkhQUlFJT1xfblNEWFpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1CKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo+L1dVNSiXnqeanZetoaGhpaK4q7KltLSpqLnEtbKtn7etrq2wtMbIwLa+wbmwtLy2vru+r6u9sLS/sLzDuai7urenp7WoqKuxrbSxqJy/uKatvLeyn7G3sKilp6+xm6GkoKWloJebsKehn6Oor6GfoZOkpKK3sKGmsaufrKOvmJyqpKmfl5qepZObnZuep6uanJ6ml5aYlp6Ok5eiqKKQiYuPhnqEfoSKeo+WiY2GeIGHg4eLjYWNk5iNj5aZio+XfoaXjI95gXpwcndvb3RfeXdka2tqZ2eCbGVya2tkaFhhc39eWmx1aVlFfV1bWE9PS0hIUlVHMjpeXmxQRFdVWWVNSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0SEJmW0hUQ1RdaEUuOzFeUSwylqSjmJadqp6moaOhuKqwobu4pay9xLKvrqK1r62tr7TExL2zvrq3sLO5uLq4uq6tv7O0ua6/wbervbq0paKzq6iqs6yusqSdw7emqbe3q5+yvKqnpqivq5mjp5ylppSYobOmmp6lqamcoZ+UpZ+kuamkp62mnqWhqJOfqaGhoZmbnaGSm52XoaOsnJybo5aTlZabjpOTo6ekkIiKjoZ5hHyFhn2cjYmKhniAg4eIh5GFlZOSjJGVlI2OlHuDl4+Kd398bHVybWxzYnl0aGZpZmNthGZnaGRmaGleZWJpZlplemJgUHNUW1tTS0lHSU9TQCEraV5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc3YUwnMp+kpZOPpqecn56epLatqKq6t6esw8C2r6yita6nrq+3wcC9scG3sK6ytrW5uLWsqry0r7KxvcC3rry8saSftqymprWqq6+hoMWsqqextaystbqeqKmrsaWYnaqep6WSmaWuo5mepKqhm6GcmKCdp7amr6muoaGdnaGVoKafoqCZnJqck5qelaafrqOYmJ+WlY6VmIyPmJqnoJCHioqIeIV3goKCnIeKgol7foWIhoSQhJaVj4+QkZCRjZJ7g5WOhXN/fWd5cGtrbGd1c2thZ2Nic39hY2VmZWlpYmVvWV5YXGxjYUxnV1tgVklHSEtNUlg+OWBsaUdCVVNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyosL0EqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGJGJTWdpKGSja6hmpmgl6W0sqOyvrehsca7ubCwo7asq66pub69u63Asq+vrraus7myp6u5sa+us7a7tq+5vqymnrWroKGypauwn6bFobOmsLOwt661nq2urK6imZ2nqqWelZunpqCZpaOpnJqfnJWdnq2wprinrqKhmpqemJ6jmqWdl5+YnJWaoZOpl62pnJWenZSNlZqOlZSYp6eNjIqJjnuBdIKCi5iFhnyJiISFioyIkoWTnJKRkJCRl4+Qf4GNjoJvgn9neW5oa2pncXJrW2hjYXJ/YGRnam5rZWllY2xcbGx1cWFTYmhjZVpJR0xNT1lRUFVhZYFUQFZSWlRGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjQ8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUhiQic0lKOcj4+xnZyUoZups7CfucC2oLTCu725saa2sKmupbi6uLisu7Ctq6u3qrW5raSytbGvqbG2trGztrunqaC2qZ2fqqOqrp2sxJmvprCxt7atrJ6xra+qopudpKypm5Wcp6SemaqjpZWaoJ2SnKOrqqi5nqekoJeamp2hj2ujlpmdcYOXnKWBdpKsqZ+Wl6KSipiZgJeKn454hZKNg21pfneEcWyGioZ9hIqGb11kYGeEl4Zri5CUknV4i4R/g5B/ZoiAaHZpZlhdaXRuTlBqY2Zxg2ZdZGZua2hdW12JkIWHaE9LQzhFVGdeSkhQUFVWS0hSYXB0ZUZbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOW0tbZmI+RzFOYTwrL46kmoiWspudlKGcqq6ro73Fr6m3wri+vK2ntrGmq6S4tLOzsLmuqqestKWxtaKnuLa1qKettrOutK60oqmftKueo6Wdp6ibsL+VqKextLmtrqSoraqrpqGfnKGop5uYoaWmnJynqJ2TnqCZkZ+oqqOzr6Oio5yWmJiXo4ihj5KaiKGIlZ+if6WAqK2flJSelImEcniMjoOIoHWHjWmXiWZ+c3igb4eHhH6MfH+hoJ+Zf3uHnnSIjnabimyHgoNtaGRke21yYlSGbWNtaZhxWGlwboZXXWhaa2paiHBseXKHaIeEWV5GTT5GXk1FUlZWUVBSV1RnXkxaTFJSUEVGRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk6LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTltMW2dfPUsxVF43LyiNp5iEnaydmpqdn6uqqKq/w6+yury3wb+qpLexqqymtLWur7O2q6mlsa2ltrObrLW2tKanqLOxrbKorp6robOpoKSlm6KlnrG4laanp7e+pqynqaqrp6aioJmhqKOZmaejpZmcpaqWk6OclZSkpqahtqSjoKSYlZOYk5yIrpCYlYqqjJmjnYaxgaWun5WboZd6gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsXlobFixrm9labySvG5oem1xj9h9UmtitrJ9f3CUdZqhqpBWTlhhT1ZORlVcWFBQU4tbV1tQQFxEUE5DRkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV1nXD5MMVpbNDEhj6eUgaiqn5idnqWtsqmxwr2ytcC1uL/Cq6a0ra2pqLC1qrC2tKioprWlqLmunLKytqqlpKeyr66xpquep6SypKKhoJecoqCyr5afpKG1uqOqqKGtraSinZuao6mgmJypoJ+YnqiokZynm5SeoqejobCjnp+jlpaSmJKZha9raouOqn9ohZaHrWZxn56Vm6mXca6hpH53unxroI92sV9qtFulgGWckGBmgXpmf2l4aqllvnJnpox2sWp8sXh1kZRjbW2nblyEoEVpZ4eWRXWcYH1me6OmgVhfi6tofY94emqoOEqvW1hUbWNaS09YX1xWVjtOh1BXVi9JU1NKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy8uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWDMxG5KilYOtp6afo6SrsrittL2+sLfFsri7w6epsKywqaqxr6SxurClpa+zo6q5qZ2ysrCjpaGqrbCsr6aon6OisZyjnZmWmZ2esKmYnKKgtbOhq5uhrayfnpqXoKOpnZmepaCdmqGopJCdo5uXoaCsn6WmoJqgoZaVkZaRmoa1m7V5hqmatpl3h7Obt3+Ul5isl39rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iXCPhoB/iJCXeIOCipeMg6CPhbB2d59xa2ttfItPpVhIY2OZfmNopV95cXVSkoZdUKluY3B7hYBhnS9Som5bVGtnYExLXGRYXFpCPrB3V1hBI01pRkJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YVQ1MByXoJSJs6amoa6pqLOsqru2wrC8w625t8Krra2vr6evs6qir7yroqi2raSstaSlsrOoo6Kdp6qzqbCopp6goLCWoJqWlpeboLCknJukqLWvoaiPqaeqm52WmKCmqZufnaOgnKCjpaSWm5+Ymp6jq5ulmpyaoqCXk5KTk52E1ZOZuXGxwn/Gh33WlJy7fZyXqJKPnY2ke42GooGlgnmreY+dVq97iX6farlauXeFhH2mgpR8mXqqeY6dkHuxbY6EdJC7hm+VUK+nxYpRoHpjYKpic3KHa5aHXlK1tMiFfoh8Y6QzQp12XVFqaGRQQFhmWWRhSkdMakpaU09ZZlpDQz9FPzA8PDU5PDc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdIOmFQNzIlnKOTmbGoqaWzqqW0p6S8t8GwusCyt7W9tLaosrGksrOmoK+2qZuouq6ksLGhsrSxoaSenqipsam0qaWcnp6sl5mZmJiWmKOun5yXqK6xqaOejqyip5admJyhp6KYoqGioZuio6icn6GelZmbp6GcppSbm5+hmJCSlZCdiLJuaLVyrIhwjqdztHV0tnucmaaOkJ2No36PnqN+sHWCkNLSdVyufIV/pG6bqqZqhoV9rX2YmZB7sXOTnY95s2WWdIWebp9mlFLJi1rCXJ95Yl+tX3ZzhmGWiF1Zyp1vwIB0TUu1U1XGZFZSamNlWEFPal9saVBVRkg5PVdSW1ZZSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxBTlRfZVA1Rz1hTTYyLqOekaWvraWpuqymtaWntru8sru/uLe1vLy0prW1o7Kyo6CssKWYp7uupbKxnbS4qqClnaGqpbKorKqlmp2bqZ+WlZmZk5Skq6KYk6ersaahlpKsn6WSlKGcpaeglZump6Kbo6CumqGenpCWnKOfnKWUnZWZo5+WmZaTm4WsfHiod6OPi4epcK6LhKiEmpqji5Oai6J9kpeHroR/gbNccrJTr32CgqN+cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52d4dnl4hqXa93lZ+Pd2w1ecius2BEVW9eZ2BFUGxfcG1WVU0uZWNoUllQO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdCYEk6NzegnZSgt7GZs8GtqLKnqrK6uLS5vrm4s7e+tqa5taG1raCgqayglai2rKixsquttKSbqaCgqKK1p6aqpJmelaWilJSdmpKWpKiclJCnrbCloJSYqZ+ij5GimqmmoZWapqmenaSfrZ2hnaCOlJ+cn6CYmJyWl6KglJiRp56HqX5/pnmhj5CEqnCtjYKnhpehooqYl4ijgZCGlKp6f4udeXCxWqiDgoigeHTYf3aHdKeBjpuNkqR8lZCfhHuyXpxkoH2ClW6TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZE9KQ6FcW010XWJmTVphX3J0X0pVNUqakVhIRT1IRkFNMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxPZWRBJlVmWz8xVF9iTDdGSF9DMT03op2amr6tmLPBrqutqKa0sLixtb+5urOyubyqu7ahsqWfpqenn5Orsqmwqratqq+hmKKgpqSkuqOjrKGXm5GjoJWVn5uVmaGhkY6MqbCwpp2Wmqemn42SpJiorKiVmKmon5+gpK6joZ6hjpWhmZ+gkpyXnJaeoZaXj6ycj65ucrR0qYx3i6Z0tHp1tIKUpqSTnY2JpIeOdbhui3uLomtrtlqhhmWXl2igoqdtlHK0c5OZf7NqhZKIrWp1tGGdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdlVG9uLlunT2JSa2VibFliXGBwfGNTWVE+P2xvMkJCQD9NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFBOKWanJ66o5yxv66tq6unt6m4r7XBtb2ysbu4q8K3qqyhnaekop2Sq6uotqOzqK6qoZedqKClq7ido62clpmQpaOWjp6hnJmen5GTlau2sKaZk5usqZeMlKaapa2jkZersqSgnqissJmho5CZoZegm5abl6GUnamdlJCrmYfUlJq7dbHEgMSHftaXnLh5ipKZjpiKjKeHeaK2dX13dsKCmrJhg7p5wHx1uGK1gYyHqX2WgqypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gYptmohwbY2kdL1dd31bYXm8alpWW2l5XmlgZGZibXlvWFtZQ0FAcT9DRys1SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9UXmBLNTxMWy02QDmnmp+ivKOXsMOvramqrLGoua+3xbG7s6+8sK7Bsq2mo5+kopyckaqlqrKktaetpJ+WmquZp624naOumZWhkKagk46dpJ+Zn5qQlpOvubGrlZejp6eUkJalnaStn5GgqKufnJ+ppLKeoqWOpqGVoZqcl5WkmZCwoJKVqp+FkJm2gJKSjbiWeIOTm7Z3bmxvdG95j4SOiXKewLu8mnuBsqhwgHSRuYN8hoaKh417ioaNl32ku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycXe2jF5/eX2JZ4N5bHlii6xwdIV+WFunaURkWVRmX2NdY1FnZnFtdUJNT0xEO1pMP0ozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlbLCs6uqqKyrqruvscavtbSwuKe1ua6rpKKnn6CdmZSspK6qpraoqJ+clqGknqylvqehqpeVnJGim5KQoqiik56XkpiUsrW2rJieo6Sii5OSppymq52WqaWmnJuhqaeno6mhkayel6Kel5aYnZ6PsKmUnKeij2t/apypeYl0f5uPdntmh3u+v8C6b5KDcZSFX3JqWl6biWFjh46Va2B/lGNtnHZilGuAmpWUZV5gY3GaiWhyjHyGlGZqfnB0eH59Ylt4dIFoUFxuhHx8impYbHmBcklKb4VwTnJNRFZcZmBMWldmY19PWm12anJST0RFTTxISTxMPjIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVDRlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPlxPJz8yPqifqKHBpJm0ubajrKaup6i1sqzIrLC0rbakvrGzp6Gkqp2jnJqarKeupKW1qqSbmJWinKetqb6oqaWVlJuWoJqTmaapqJGfkI+YnLCyvqybp52noomTkqmbqKScnKyfo5qco6etop+qopqum5SmoJeVnZ+dmLGlmaKomZ2Sn52kppuopJudmpybkZeCaG59cneRl5SQhIm0qo2FmJWPioyYloeUlYmDk5OQiY2RlJmTmZean6Gam5Sfm42CeqSFbGl7kH2AdYmLgnKCeHl2doqAfIlqc4J0g3Vkd312a295bF9iW29nTVhZZmpfV1lwem9tZlNPRlI5UFpOUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsLG3oKmms6elsLWqyautsqa1psCotKGepaacpZaWoKunraOkt6ygmZeWoJitqqbBn6yklpKcl5+YlJWin56jqJOQmKiossOvmaucqp6PlpapnqucnqGtmKGbnaKlr6ahpKierJiWpZ2ZmqGenp2woZ2ip5aZlJqUoaOXpKCZoY6XlYuLjpCYro98lZuCkYGJqaiFgJiWi4SOn4h7hJGGhZqRh4aKlY6bl46QmJ6jlpmSkJyNf41lobOuhImEd3uQin53eXpvZ3mRgYGJa3WBeYhyaHN/eXWDhoFqdGJ4ZV9oZGNkZmpYa3txamtcU0xQRF9VRkA/Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAs6C5r76tqq2xsqCqprKtoqyzsMWwq62ks6+8pLScoKijoZ6Zl6imqaakprO1npWVnpqasKauvqGsopGRnpqalJKWopyXqZ2Enamro7THs5+ppKqWlpiap56pnKClq5Sfn52fqq6opaOroauanp+hmKSenJ+dsKSZn6mUmZmek6abmaqfnJdmhJN9ZX+Pm5BjeYxsaGp6kKOramWamH5ohYplZWloeo2ijmtojJeRondraouZop+Yc2xueoSMhnlYZV2FgV5si4qCd1xnc3d3koCIgm94gnh/c215hHN2iIeNgnpohFhdanNkXXOIaWt8cW1jXVFOV0lkWEBKMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1dX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSi42Wk82KUVZL0RPMVlCOz8uPaSeur25r6uzsKulqK2usKaurrC9saqopa6wsJ+tmKCknqKamqesnKyjpqips66elqSQo7CmtrmlrqOPj5qimpOSm6CZmaaWe6Sroqi0w7eloaevn52VnqOeo52kqqiSn6GeoKqvqaqjqp6mm6Wep6CslqGcpbGkl52slqKfm5SmmaCsmZ9+vYSJc7RzhZ+GrWh3ucS4cZKho3qmmJl0qoF8y8DAunGLo4eDnn2WmIiewL2Clp2djZzBwXyBepGMmsLAfWqlsm+NgW/Ken+beJKEj4B3eYGAeXF7gIZwd4WLknhsdZFiZV53Y19lgGJedGhtZGJYS1ZJUVpIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fX2FfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0NQLyNGWzNQWS9VQUI7LziVornDtK+vv6mplKOvqbCvraaytq+qpqemsaugq5ibo6Ccm6qnop2roqWopaW0pJ6jk6aurbi0p6+ikpGZnaaTkaChmJugnoimq6Srrb+/saGpr6mWkp+eopmjpKqjk6Chnp2srqirpaOhpJ+kpZytqZGkm6muqpyeq52uo5eYppeipJidf86UenulgnqWl5tfrY9djqiAoaF8p5WbdauDgK9eZIyqe6iHhaB0l5OIs2OCq4agjY2zaoSvdHyWh7hhgq1Zo81ukHZ723t/mXF+iJN2f2V7iHZ2bH6HbX2Fj5B9a4CMX3Bqb2ZgX3hkW3FoamRmYFJUU1deSk9DNUFIRUQ4PjU7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xeX19eXV1fYGBfX11bV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1s6TC0hUEBGNC4xrMHAv7S0sLeYnpGjqqmttaymsq2srKSsprCqoaecmqaYnKKvn6GfqKejpqGfsKybnpamrq2xq6isoJSSm5+lk5CfpZedqKOeraOqsKi/xbOoqbGulpOenKKXoaqqn5Whnp2cra6mqaibpaWjoaqSrLOWpaKqqp6kp6eisqKTm6ecoZyWlZGXoXKFjJh2haiHcbF8nXGsfaCggaWPnnirgn6tf51yrX+sh4afdpiSe3yXfqqIooyRi5x9q3qIko+ff3qtVpzEe5Bwk8F9gZVtdXCMbWZ3ZYZvYXducm6IiY+Og2yPjWNtc3VvYGZtZF9vaWpuZmNXU1xgWlJSQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/Txseys5+do4+joqKtr7evqbGnqKqorqurp6KknZqjlZ+mq6CipqCoqKOfnrCtmJuWqKevrainqZ6XlZqkopKUoa2anaejr6yirLWpucyxraauq5aVnJ2imZ+urJ2WoZmenqmxp6iom6qno6Kqmq+xoqirrqaap6urq7Okk5ikp5yWk4Wka6R1inqpdXuycYKlipiMcIigm4ekX2FSq4WAroOcda6CqIaGn3qZl4Z7ZoCjiqSYhoGjfal/gZSGrl57qFWdopKBeqOfgHzEsMWMc6+0s7lyYqmvwnVoi4uWjYBrl5Bta3h4d25rZmRkcXFme2ljXFZfaVhYVExMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICcnISstIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLSwsKmto6inqqurqKSmoJuln52mp6aknayaoqyho5+vo56bk6qktbCvoambnJaVp6SRm6Kon6CmnLCloqixrLbHsbWprKmVkZ2dopmgpbOdmqGUnJ6nqqqirZqrp6ChqaKyrKGqs7KinKupsLC4pZSXpamanZN9qm2fhIh2q3l8sG6CpIuJn5aVnpaB0ri0uMmBgrJfYZSpg6WIh6B6mJaaearJdJqjlKipkJKajH6aiZrGxndloYKlc4GfjoJ9r15vtWOxdUujhm2nR4OTZI6Pm5F7b5SPfG15dHx6bVtlanJxZoBpXmFYY21cXllJTExKRURCQT1BPEE/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTAxrmtqbKuraWinbO5rKuhppuopqqsqaagpqWYq6Ofr6ydpqGtmp+ppZ2ntaCjmJSoq7azrJumnKCWkKatkpqcp6OgqqeuoaOnqbCzwbGyqa2olImYnaWboqSvppeilZicpaWpma6crKalnaujtqyhsbmwnpywqLS0taaWmamlnKGQg55Od5qCgJ96hKN8gqSEhqafnJ+UhLh8fHq5gn/MxsO2d5uikYuffpmXl4p2n5eKpJikqH6vhZuDnoSsfZmUYaVso3CPhZCBfZaEcqxgpHNxgJphvH1SVXWNkaGVenyQjodyeXKEfm9bbG53cmqBblpjX2huYmRdTExRU0FIR0ZIOjpLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Kss7Wmn6GVpq+urqinnqWlmqSnobOuoqmns6CaqaSUo7Wjo5WXoam1uaSco52jk5Cispmem6aloaKvrZykqKK1scKwraqtqpGHkZynnaOknKWXnpiYmaWjp5itoayjpJeupbusore2rp6etrO6s7Wpmp+xo6agiJDStcO3eoeOhZGTj4CmeJSid4yhkoWlg4tyq4eGtG5yaZmknZWJn32XmYeHkHOugqWbo42mipOciJSQmm1wslylc5N6nGyZf3uZfm6pYaJycn6fYnOyuGh3jpKkl3yJio+IdXt4jYFsaHdpeHNuf3RcZGRtbWZoYEpaV1g8SEY/UzNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krr+/vLu1npeopK62oqKZlaOqp62pqpmlop+moaC1p6Kpp7GklKujj6StpJ2QmpqqtLSknaWcqZKUl6+goJ6mo5ynnLWZoKqjtarCr6mrqaKMhI+coqGmo5WampyYmpimo6WXqaeroKSbrKa8rJW9sK2fo7G0u622qZ2rtKaqmnyokX18sHiLgKSliJxtsm+hh618oo+DqJeagayJhq2FoJSooKOXhZ+BmZaBe5J+q4GdmZaLq3edoI+Ik5J/ea9do4F8pqdknoB8l3Rrrl2lbHKFmV1gW4ygbZSPpJeBkoqTiHd5gZZ+amx+Yn10bX95X2dlcG9oZ2hCWV9aPUpTMlM4QUFDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JODE1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVlFIRklKIygovJKbhKnGw7fBtJ+araCuuaajjpqjpKCvrqmfo56drZieuaCiq6CvqpquoZGqqaWWipuQrrGsp6Com62YmY+toqGepaGZpJytl5+opbaovq6kqaOfjICOm5ugpp6SlJmblJmZpaOimKeqqqGinqiovKSXw62ro6KttLytsKmjtbGqrZp3r36Ri5yFh326rYmYZLCMZZaufaGQhKeXnIKti4WwhqeapKKikYWgXGxrgrNgf618e4KAsmxmbpmXi4ixWn20W6SDa8iiZp+Be7tZdrVasn1Tr4F6rFiAoW2XjaaZiJWOkpN4d4ybfGNzfGKDd3SAfGFqZnBtZmVlT1VjXEFUXT1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vru0wbOjnK2mpbepoIuZoJ+dsrGonqKfnbWYoLOoqquesK2erJyVrqiijombjq+sqaejqJmuk5qPqZqhnaSemaOipZieoqixqLuupKienY99i5uWoaCZkJGanJGZl6ien5enrKSjpKKkqbqeoManpqmhrLa3rrCpob6wr6+XgqqSo6+Om4CGpJeYkICAuMO6hI+dk4WomZ2DrIuDr4qonJumq5F+1b3CqmKkv719f6OCg9e6t7WElJKCnr2+hGqjgW+rhG6df3qysceDa6uwvax5eKK+u3SAlYykmo2ZjpOZd3+PmXlifHlkjGZ4gXtga2VramJQYltTaVxAVGBCTCk8OjQvHx8kHiUyIBwkKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0scC6sr2zop2up6azpp2Ml6W/qbavp6G/pqaxm56xnLmon62vpaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp2nm5qgqKKYnaCrrKm4rKejmpeTe4iZkqabk4+QmJmOl5OomJ6WqKeeqKagoqq6nqnFo6GwpKy0tqyyrKO+q7GxnHV2qqW3hWWJn3BnrJCKj25ud6WQm6CCdrGbl3GRjnKXqaSbmK+kcmxtbWaLeG9tg5lxgHppcGlniZaVl3FoaYWGZ3GGZF2KY2lvWl1nfnimYGJykJJwZmSAjZKNoJaVl46TmnqFjZN0ZIZ3Z4xqeH55ZGxjZmxiS2VXSmtZOlBkRFAnSjkrIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6urK0qqmirp+ks6qZkr2xw8e8tKmev6uso6Cnq6C6o6StrK2mjpatqpCMhZWXrZ+mqqKfpKOgkYulkqaZqZmWo6mglpylpaauuaqsmZqTknuEl46ml46RkJeUjZeUppOdlqeima+lnaKruZ+wwailtKetsbOsr66qvKexupiMoqmmtpyJlqKYhqmbkJSdkqq0mpykraK0mKSin6KjnaKlopasp4ySk42Hk52dlZCZk5iQjpWEf6Sal5WOi5OSipCHhH5njIF0g3d0h4xxp219lpOUlIGBj4+OjZuSnpSVk52AhZKLcGiPdm+Jd3Z8eWlsZWRvZFVhWEBpWkdiX01YK0U9KyYhNjQwLx8cICUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbevrqKwpa2gobexkY6qxLzDubapoaSdm6WdsKikt6edqbWnqJGYrKOLiImPnKeWraShmqienpOVpJeomqmZlKago4+ap5igtLmnqpiakI18gZWMoZSLlZGVkI+Sl6SOnZinnpq0o5ymq7eor8KvpLinsLCyrqustryjsr+ak6ekprWikp2mno2pn42Sn6KtsZuipLOrspqmop6lq5+fnp2XrZ6TmqKclJCXq5mNmJiWkJaekYegnpSUhZOMj42VjIF/Zo2IdYh3eomEdJxqiJKWlZKJfYyWkZCWkZ+QmpOdgYaWhXhxlHJ5iX9xe35qbmRfcGlgXF9ZbWJQYGJPWDlGRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlqSoo7CzrK6jqaetoKi1qpCPm6Oyua2qq6GimXqcobCkprGolpu4pqOUmKmcjoaKiZuikK+epJaooKGSl5mcrouqlo+omKeMmKiOnbi1o6WYm42JeYKUjJuTipWRk5CNkZahi5ycp52dt6J/g661orCwdaS/pLOheXuirbW+l3ivpqGKgKp/ZFxidp+OpJ6Dln5tlLWdpKmwrKVmoKGUdHqbmHCBmaqZbH+kqYplnKWckZeYlouSm5CEnZuQlIOTh46OkoqFeGuQiHaHcXyGgYFhaYmMlZOMW3aVkWdnjoxyeaGWlWR4l4WAdpdogomCbnl/anBlX3Zva2tnXGVjYWFtUVk9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHR0lLTFRVVVldYGhmZ1hRSTxERzw5VVJbYGFiYF5gX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqqWprqSnraWSlqq0rrClmamlqpdzi5yvoKirp5OWuaCgj5yknpF+iIiano2smqSVp6KejpeSnoV1ro+IpZqokZajiJu5s6egmJiLiXV3k42Wk4qTkJCUjI+Sn42ZnqWYm7GVgIybtZ20jJKPvaiifqeje6WxuoOOj6ifhIyGj7Gpr4yJlqKaeYCLrIadnqOpq6mJloeZd6ace4icgZing4F7nbN7ioagmJmUmJaBkJaWg5maYnmIkYSNj5KLhG5xkIh6gnGBgYaAh3SHhZeTeJZok3SgmnN7mYKcmYSYfpGIgYKYaYyMhGp4e3FwZ2V4bmlsalxkaWllcVpcR1NMUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaWZZUUg5REw8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2YpJ+mrq6rqK2gqbGnp6qlmZStxbyvoJSlp7Sdj4OcrJynoqCNkL6emY2fmqGRfYaPmJeIrJ2jlqGhko2UiYaAkaiOh6Kco5OWnYaeubGnnZqSjoVwdZCJlZCKlI+Om4uNkJ2QlZ6jlJ2rh5+0ibSarovKiKuvireFjbCEs7GFqY6pmY2dfKiPcnt3nI6mlmiVpHm0jKGgqKqTmcKCgKuJmaFynoCbpX2XhZWzgaF9oZOfj5iYgI6UnImYkot8hZSGjZWTioRudJKGgHtzh4GEfYV1hoOYgY/FZoCph4+iap2BnpeAmYCKi4OImG+NkoRnd3R7dmdodXBnaGteYm5sZmxXZEZdUUwyRTQ2TWBjNyYzPEVHRDo2MzY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQElkWF1jZmhnYmJiYmNjX19iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6OgsKmpqKasoKW5saqrppqUnqKkqaGUo6m1oq9/oKedpZ6diZS9mpONoJKdkHmDlpWRiKuZnJuaooWPjHabm46gkYieo5uWmJeGorispZmbjIx/Ym2Pi5OQjY+LjJeLjpCejZKeoJigp36hp4etnaCWrpCgnp2Rh4Kgja2xiKSOrJuMmn6idoCZlGuBq3VNq3iHjZ2TnKqpgqqrfoShfHunap6Ak2xnl4aYt4mefm5gY1iDl3+Ne2Rni3OZfXmXbFx8l25gU3GFXGBteoRgWWWCfoWBmXGoq2uDo25ypXCfgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbnRxampvXWlvbGtoV2ZNXVhFOUE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUktNQkpbXV9XXl9jdWBNRTpNTk1UYlxbZmZpaWJiZGJkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJeeoLmhqqSmrJKitr2rr6KZlp+gpaurn5yttKGnkaCfoKecmY6ZtJmQi56MlYt1gZSRjYqmlpaYn55+k4WFrKOHnJGKmKiYmZmRh6WvpqKVmYeJgGluiIiLjo6Jio2Ri46RoIuSnZ+aoaV/k4GPo6GUoHeclpCng6OpgIassIeleox+hJp9onBzk4eVe56MeW2HnIuakpyqnI+HnX2DonR3pmeefnelXph7fZNzom6Yt7S6c5OIgYC2qGSBxrh8cZW2jHGAm6NjdKyrYX5qnbN+bn6Ig4+DjJhxgKNsc6RznoJ+o16cmbOWb3uXnrN0cluesoJpYnB0dXFob1hqa3JyZVtmXGFMRD1ENVFBWXAyPFJHX0pSPTwzOTU6OjZDPDtASVA/VE5OUUBFX15bWVhgYHtkSUM4TFdVVmNhWmZma2tiYmVhZGNgYWJgZGNfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi2ra2gmqGboqOkrJqasayrkpegmaGkmZqUnqybi4mReIuFcYCWjYqPoZCTlJ2XfZGJjqighpiPipKik5uajIqop6Sej5aHhH5re4d/fY+Ng4uQkImOk56BlZufm6Cfi4l3nJiijaByoYyJqYmdqJGYqq2Arox+eqCZeaOTeIBzl4iMnH2Vn4ebjpqdqIijZKF+ipaQm41tnmibjm+amXuAiqd9cmh0qoOeg3OqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxfp3Z3ioqAnWiadYeTkpiNf55tmZBqpplcqH53u2p9qVqOhF2zZ1xucXh3a2lbcGl3eGFeZFZhQlBFTzdWQlJtNEpaWl5OWkRAMTUxOzs3SD86Q0hVP1lTWF0+RGJdVmBRYWN8aUVCOU5bXVhkZlhmZm5tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mWnYmqtpyoiWOVnKy7srCsnaWbmqefnayZnbCnqp2Xo5qin5mWlqCjmYaJjWmIgHJ7l4eMlpaEkpSYj3qKhJaknImVkIaLnZGcm4iPqKGfmouQioCAaYGGeX+XjHuIjY6HjpWZfpKhnqChk5hyaJ+KoI+McJKMgqmJmqGlqqOqfrCtpKK4l3ajs6Kjf4iUeJ16qpl/oo+fnZmJmHKhfYeNsLV9bJqRoXh+mbWjo6uohJl8mnycmn90qlpdb3uXjHieYk1/e3uFZHqYQk2fWaJqc3yOb4KKhJl2m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B9fW5lX2tndXtiY19QXVZcVFZAWUVQZkRSVlxhWF5JRD1COD9BOkhFOExFWEFXUlpWRUZhXFpgS2BtfXFFQzxVXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lZHZsXmVnZmxkZWxoaGtplJ2Bsa6ahFNfoae0urOzqZqii5qpm5unkqCro6Cnj56dnZqZlZihnZaHh4l3hYFueZWEkJuLfZGTlohygImSoZtykpCBiJiUn5qEjqibmZWKiop8g2yEhXGCoYx4hIyIh5GXk3uRop+eo4iuhn21hI+enXumlnqpgpeekYyjoH+naHhufplzoHNxfJ2FmG+Tgq18o4Snn5uDpHBeqWh2o2RwpmGc0498e5l4cnNjooaQfqJyo5B2a5Czi2CCmIp0qrKovH93g25/v6aqtF6cb39yl3CCc6JyXqRndKZgaKZsmtOYeoKbbnZ5l2ubeXaXcmyppWdfZHlxf4RsaGZjbXV3Zl9hUVplUFFhSFZJVF9XU1tkaltkUEVDS0xKS0FKRDhQQFBNWFNYT1NRYGVlaVNkeHl3SUZFY11lWmhpU2loam5jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZmhsaJibf7GsVF1Lf6qwsrWws6KcmISXpqCgooykp5+XqYmZmJiUmZOSoJeNh4V7cH2EaHyPg5OagneRjo+KcICGj5OSbJiUfIiRkqOVg42pmZOSioSJeYN2iIBugZ+Gd4CShYeYoJV5kaGimZ+Js6Gitot6rKekrqVwqYCbkYaBnpR9pIGimoaYcZ6Eoq2uiZeLf4ykjZWDr6OVd7W2tsmic5SMg59gnpepbXmWh6CbdaGHd6B+kJaLgW9NZqOScZqIc6V7enVig4JtfqBscmRgnHN/dJdre2q0trTGpnOYfnqcapqaq3SBmmxzd5dpmXl0l3FQRH2zXmp1a3iGZmtmYnN0cG1VW1JYZ09SZ0lVTFhSVVxna25VZ1dNSkFKTUtHSk5BUUpQZGNqbWV1c3N+eHtudYl6e1VRT21eaFxraVJqaGlsZ21nY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinYmwqIVlQJSisqyvr7Whoo9/lqehoaOLpKacm6aCmZeXjpeQkJuSjYeDeWt5hmWDjH+Wn3l1j4iMgmqFhZKEi4WdjXqMipWlkoKXqJaLkYuAiXqAfYt5cI+ghXmBlIaIlZ6UfpKjppuVloNnbnicbKJkfHKleJyYcGingpmOfaV7oZeDlnKfdoCJlJWPuW2PiqJifZmjl4luc2ura3Wgbm+mYJtpi5BploeblXWigX6aYIuGjXVviGJooWaef2qbdXBkZ4iCb3KiW19bZKFuXoiMcXyAdHJkpW54omRmp2iXcouXbaFvUoiPbqBeZKdUi11UmG1tcmtxgW1waGt3c2pvUVZVVWVZU2xJWE9cSFhoaHJqWWtWUFJFVlxNWFNhVWhqXnd1e3xwfXxygnt/c3eOgIR3XlFzYWdicGdQa2hoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqbCxpp+Kf5apnJ2ji6GhmqGhgJWZlI6aj4uXkI2Je4ZxgIhoi4p8l5pzdIl9kHxlg4eViomVmoJ8iIaWpo+AoaqPhZCKgYp9gICOc2mPpYR9hZOMh5efjYaQqKWciaZ4lpt+pYmWjLKZnpGEr5efpXmYiXupdaeQhJpupaKMkoSMg7xtfKWvgoeGh5WXnaJ+pntyqJWhlmiffm+sY5aKlpN4qG2qo4GJdYiCd6uRpohrkrFsd7OMqWyLhm9voJ6SlWJ/q4yqd4GAjqefd599haSVnaBomod1q2aerYy2c3a+jKOTWYOmjathdXJ0b3t1cGJqfW5nbVNUWFRgYFxrTFxSXEldbG12X1txWFtfWmdzZW1vcWNxdGB3en55cnmDcoN+gXt7jYGCgHdieWRjbnNkUmxnZ29tcmlmaWFfXlxhamJsbHtvXFxiaWJtaXdtZ2xuYpamq52BgJ6klqqqnqinraOZiIGWqZmdoomapJyonYSMmpCGnJGFko2MjHSFeoiDb42FfZaSc3SGcpGDbn+LkoeGlJB9e4KFl6SNf6WkjYCOiYSUdYKHk25si6iAgouTjYianYiLkqqioI+AdJSXiH6BeZSvpH+CnHGPhnmSjYaAe3KojXJ9fXqXlpuEjXh7fX2IlJWTi3eRmaGihXt/imyMhlx6eXN6cWlvfpOKcYB0go+Uk3GGhIJljX9fgYGMeHZzlHVwem9viW+Fhl93aXiOZoKDho+qnH90fZZqiYhvfnV8g3VtbGaMc3h7l3eEWmpXeY9pbndycW93eG9da4VuaWdWWV5WXGRqY1VgVV5RX293eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV5gnV/gH+AeYuFgn58boBtZHluXlduZ2h1a3hqaWlkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbqpp4uhopunpJmknauioIODlqqQnZ+ImaaaqJiDgZyLfpaUh46KiYxygnyOfH6PhHqWjnRyg3CVhnx9kouGho+GeX6AhpijjHumn4qFj4+ElYOGjph3cYSqhY2RnI+HnZyGipqon6Cqg4mNlZt/foqXraiQk6iReHGfk4R8lHB/qodxfpVxam98gZ+Lf5GOi2huXYSNjZydoJBzl4yJcnVsg3Z0gFlyb4eRgn5/jGpdaWR7hYSIgGBpeHucfISNg3aCh4RpeoyJbGJxc4N3X3ONg4qRqJaHZ42Og253i4Jvg4t3bWRlY3mCepVaW2lmbXZbe3l3dG5zcoNmXG2Ja2tiWVhcWVhqcVpeYFleXWVyfXp0b3Rjamppe3xyenZ0ZG10aGx7f3V6fXt5eX+Af3CGiYR7fXN+enJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyrsaGQo6Gan5+YnpmooqF9gparjJ+ThpqhkKSVf3uYhXySmYmIhoaKcnyAi3aFi4KElYlyb4BzmIaEfpODg4aKgnqAhIqan4+BpZ+Gd46XiJWLi5yXhIN6rIGQl5mTiZybhoehqp+hoqOLiJObnaOZlquiqKehk5yJmZB+epCQhql/gJORkpOcsaWalJ2PjbGSmISmjY2WnaGKkZ2EiZOLbH2Od3dmg4aRi32JnoWHi4+IiIGFhJF3fHp1m6SKh4ugjIeWf4CNg4F3cXWGhH94iYiLkaeRhIeOh4OMkIt6hYmHjX91aoCDfHmZaXFoYHOKcH17d3Zvd3SBXV5vhmduX15ZWlxTZ3BVY1tbYWxoc3t7cm5wY2ppaH97bXh+cGhwcGxmgHtygoB3f31/hHttg4yGfHp5fH16g3hOZHZqc25xe2RrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2InrqflqOhmJWZmJSYpKCden6XqY2djIWfnIqdlnx4lIN7jpmJhoOEhm14gH9ygId+iJKDbWt+epeHhIOQfoCGhId8h4ONm52RhqmegnKKj4aSkouckXyNe6mDjZGXlY6alYaFm6afopqdhoOSmpmZkJmmoaaenpCXgpOMeH2JkIanfH2PkJGGmKmgnJOcjo2pjZKAno2KlJughI+YgIiPhHF5hnJ1YX+EkId2jJmBg4+ChoV/hoSVb3p2dZSkjI2Gm4aGkHWBjH5+c3N8iYV7eY2PhZSokIeFj4GCiYmIdIOGhol5bWp8f3ttaGtsZl55f2h8fHZ0dnR6d1xgcH1udGBjWlteUWZsU2RaXWFqaHV5fnBsbGNqameAf2tyf2trdG53boR5boaAdoKAfYV3coONh358e3yAe4KLYGl7a3VoaoNkamNgaVxjdWdvYnVta1RicXllb3l6cmVqbW2Lip+4mqGkn5OSlpeLmp+enHp3nKSQm4mGpJOKmJl4eYyFe4mRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hYSHfI+Aj5ubkIimm39wi4uMkoagoYqFjHynkIeOkZaSlJF3jKOgoZ2Wmn+BkJqZk42ao6Kkm5iSnICQh3uBhZCJoYF+jY2PfJekoKCSmZCQpYyPgZySipSZnX+Tk3+Ij4J2dYJxd2F+gY6Hc4qWfYiMcYx+goWGj2p5cnqOmpORgJh/iYxzg4l9fXJ6fI2GfHuTjoSXppSNhpB8hIWGhHSAgYWFeGRwen54eXBramZefXNofHV1c3xyf2peYHR2cHdkY1hdXlJqaFRlWF5gZ2l2eIFxZmtjbGdlf4BqbX1nbXBqfXeFemuLgXKBgX6BdXaCjYZ/fHqAgX1/j2pyg250aWKIaGxiX3FWdG9sbWB4aGxXanN2Y3R6enFia295iY2fs5Klpp2OkJiPhpygmpt7daOejZd/jKGKiJqWd3qFh36DiX6IgoF/cH56dHWChX6JkHdnY32Gl4qCio14fYCNg3mWgJWXlY2Vn5p9b4uBkZOFpZuHjImDppWEkYqVlpGQdZGdoaGYlJd5f46Yl4+Xmp2lnpqUlZ17koiFeYeYj59/goqOjHOXop2gkpiOj6GMjIOYmISUl5t/mY59io6CeHJ+bntkgHyLhnGHk4CRgmuHg4GAioVnd3B9iJSajn6UeY2LfYKJfnxygHmLhnqFkouMmaOXg4SMd4eDgoF1en+Gg3Nednd8c312ZmtjYH5qa3Zzc3V9cHtjY2FzbnVybWFZX11aa2RSYldfYGhrdHmGcWJqY2xmaHyCa2h0aGxvaH98gXlsj4VxgIODf3R8g42BgH56goN+fJBtdYl0dG1mimxqYmN1VoNpcG1geWdsYWp2cWV4e3lwX3FshYWQna+Yp6mejo2Xh4Wfk5WXfHaomomYeZaci4yZkHh7gIt9fIN7gIKBeHN4eXN9gIN/iIqAZF59i5SHf4WHdH1+in9+mISWk5aMo6CXfnKHe5ORiqaPjI6KkqCRg5CPk5eQioCPmKCakpCRdICOkpSKnZ2ep5mYjpWXdZCRi22HmpGbfIiJkIlvl52ZopOVioydi4aBk52AlJOWh5mJfIuKgntxemt2bXx/jH9uhZODlHhvgoR+fouBZnRqfYKYmIWAjnWSioV6iX93eYF+h4F9hI+GjZWlkXmFgnSIhnx/cXN+hYFrYHl0eXB8bmFuYmR7Ym5vdnN4d3JzYXZgb2x1bm9cWl5dXWpdT1xXYmFobXN6iWtfaWVqY2h3h21mbGhpbGeAfHp3bpCIc4CDhH10gYaJeoN9eoGEfXyOcnmLeHhtbIdraF9pcmKHaHFvZnZnbWxhemhqfHt3cGF3bYqBmZqroaSpnoqLkYaJnoqUlnx2rJeMlnyek5GWlIh2fnuKfHuAdnd/gG90c3pvhX2BgIl+fGFcfo+Shn+EhHJ6gIZ6j5GHkZGbkqSbk4F9gXyNipKjiY2KjZaajIWQl5KVjYiIjJKdk4+MjW6EkI+RiZ6ZoqGYl4qXk3CLm4ZniJuQlXuKhZCKcJaak6GRkoiKmIyCf5KffpOQk4uZj3yLhoh0c3VrcW92fYt1b4aRjpNydIB8goKJfWVybnp/m5V+hYp1koyCdYp7cIJ/god9ho2LhY6Wqo57iH1+ioR3fW5tfoOBYWZ3c3RuemFeb2BqdF5vanp5eWxycGV5XW1sc21zWFpdX2FqWk9XV2RjZnFxf4dlXWloZ2JncY1uY2hoZWlngHp3dW+OhXOBgYN8dYKJhXiFfHiEhnqAiXd/i3t6cnmDamtfcGh0f2txb21xZ29rZXtibn96d3Brd3eJf6OZo6ihp5uIjIqBj52Gkpp0f6iTkY2GoIyVk5CAc3x2hXh4f3Jze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYF/f6CGj4qRnJegk5Z3iX6AjIicnYqPhpKXloWIlJiOlouKjY6MnYqOkYRtiYuPkYqclqGcmZaGmYlsh6WFZ4ifi5OAjYSMgXiTmJGdkZCJiZSNf36QmX2SjpCNmpJ9i4GEcHZwbG5vcXyHanODj5iKcXiAdYKJg3pndHB3gpuQfYqFe5WTe3iKdXKLfIeOe4uHhYqPnKWJfIR3gYp/d3dsaX6Af1txcnFvb3ZZXm9gb2peb2p8enFubWptd2Bwb2txbVlYYGFhbVdQU1llZmJ1b4SCYl1rbWRjZWuSbWBmZl9naoF1cnJvi4B0f4KAeXaAi4B5hX53h4Z2g4V7h4t/e3aKf2pxYnxihXxvcGx1amhubHd4X3F+eXtzdXN/gn6llputn6eXhYyDfpaVg46ddImek5KFipqMlY6MenJ4dIJwcoVzcXWIbG5sdGyHdoN9f21uVVGBq5SHgniAdnKDeYKggpCBkpGXm5GZd5F6goySpJqTjoiUmJKEhZaYi5OLiY6Ph52EkYt9couFiI+InJmfm5eVgZWAaoifiWiIoomUhZKEinGDkZePmo2PjIuPjXd7k5F7j4yNkpeMfIl9gWx3am9rbG17f2J6fo+XgXd6gXiDjX16aHVtdomXjICJh3yVkXJ7hnF4jnuLjnuJf4SOkZ+fhn19eIGKfHZvZ2p/gHdddm5ta3ByVV1uYXFhX2xueXBocGZnc3VocWxhd2VdVWVgYHFTUE5bZWRdeG+Ie15caHFiYmVlkWlfaGVbZ299b2txc4p9dn2FgHV2f4x5e4aAeIeDc4aFfoyMhHx5lXhncWqDYId+b29re2BpbXSAdF90fHiGd3NzhXx5oZCasZymj4OKf4KZiX+KnH6KmJKOhIiXjo6OhHd0dnOAcG+Fc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfHB0g3WDn4KRdpSQmJuQmXuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYicf46BeHuMf4iMipycnJuWlHqOeGmLlIpuiqWGlImYhIZjjJGYjZSJlouMiYtwepWJfI+Ji5OSinqGfX9tfGVzcGtte3pcgXqQj4F7fn+Aho97eml1a3SMkIqDh4Z+l4xtf4Bwgo6Ajol+hXuEkZabm4x9d3iCj3hya2VufYFqZ3NuZ2hzbFNdb2RwWl9scndmbGtiZ3hzcHBkX3dgYVVrX150T01LX2ZjXHhwinRcW2V2YGFkZI5jYGZiWGlzc21rcXaLfHR5hoJ2d36Lc3+Gf3qJf3GJh4GQioh8fpl2ZXNufGWHf25wa4Baa255enJgdnp7jXZydop2ep+MnK+boJGDhXiIlX57iJyGhJ6QjoWMl4STjoeBdXdweXBuhG9tbn5yY2R3cHxuenxqaGxipJrB3K7vonNsdYN1hKGEkW6Vj5SflJuAkXCFi6OXiY6VipCdlYOAlI+FiI+AkoqKl36He3Z/iXiGhY6bm5eZj5B2i3hwiYuNf42mhpOLnoaGXouUl4mOiI2KioSJbHyXgn6Kh4qRkIZ2hn5+bH1keHVqb3p0WIh7koeGen9/gIaNf3pmdGqBi5CLhISBjZiGbYN3b4mTg5KGf4R7gpKXlJqRdXR4h4x0cnBlc3eAYHJsb2FodGZSYHBna1VfbnR5YXJjYGl+cXJuW2NyYWNWblpcd0xMS2NmYV12c4ptW1xkeF5gZGaEX2NjXlhpcmtua3J3i31zd4SBeHh8iXGDhHx9iHt0i4iHlYWMf3+Yc2h1cXlsi3tudHCAV3B5dnlxZHZ5hoxodoCJcYCdiJmonKOThX1xjJN4eImcg4SfjI58lYx/moiEfHN3cHNqb4FraWx8dF5gd3Z7cHR6Z2BlfOvatcnD3IlzbHSAdoqaiIxpl4+OnJWSgYhwhYigjoWLlYqMl5N8jZKHgoiPepGLho+CgHd4g4Ryh4KTm5aUmIaNdoiAcoeEi4mcpIWWjqCEimGDlY+FiIWIjIaAh2h9lH99hIWKjo+Ccod/gHJ3aHZyaXR4bVqNfZODhn2Ag4GEi4N2YnVtioKRjISAgJOSfm+DbXqIkYiUhX2Cf4KTlJKYiW9yeoyFdGtvaXB2f11xZ25caXRfUWRxaGZTX3B2dGBwYF1og3FzaldnaWNpV21XW3RMSktlZl5hcnOFaVtcZXleXmRnemBkX11Za25lbmp0d4p+c3KBf3t2eohzhYN8f4d2doqFj5iBjYJ7k3Zsd3Z5eZN1bnd6fVh5hXGAbmd4dpGCZHaGhXGKloaaoZuhioZzb5KLcXaNmnyJmYiJe59/g5l/gnlxdG5vZHJ+aGZsdnZbX3h7enFxf2lhZ2F/1baOkaZ4bnF3e3GSkIyGapiNiJqQi4V6aIeLmYaBkpGGhpeMe4yMgICJjXuQjX6JhXp1e4N8cYaAlZmOk5SCiXaEiHiFgo2Vn6GIl5GhgIlhf5SHhIeDiIx/f4JmfZGAfoGEjI+Qfm2DfYN1bG13dXR3dmxjjoKPgIV/fISAhYl/cGB0coZ9kI6DfX+SinpyhWd7hYyIjYV8hYCBlZCRk4VvcHmLfnRsbWlpd3phZ2ppWGt0WVJocmliUGJyeGxiZV5aaoRudGJcZ19lbV9vVFpuTUdOZmRcZm5ygGtaW2NzX1xja3ZkZV1dWmxsYm1qc3aGgHFvf3x9dHiGeIWDfICHdXiJgZKVe4mGdomBb3h5e4OSb217gHZeg390gWxoenOUc2dzh3xykpKEmp+bn4aHdXWTfm11kpZ9h5CDio2ZfIyadn52cW9samF0fGdiaXN5WmB3e3ltcX5lZGhoV52PX3Jzl7zEhHZxlIiPfXGWi4abkouHcmqIj5aAe5WMgYSai3uKhnx7iYt/lIh1iYZ2d36BcnWGgZ6UhZSPhIRygYp3h36Lm5+aiJWPnoGJZn6Tgn+FgoiJcYF9Zn6MfHmAgIiMj31pgX6EdmdweXhzd3Rsa46Gi4KKgHmCgYWEgWxfc3l7fo6Lh3yCkIF/c4JqeoWJjYeFeYV+gpmOkY1+bm17iX12dG5mZXt0YltwYlducVNTbXJoYU5mdHhmYF5dWW+Bb3NaZWJdam5gcE9ZalFEU2ZgWmpubXxuWVtdbWNaYnB2Y2ZcXWBraWNsanN2gYNwbX58f3R1g3qDgnyBhXZ+iIGWkHiEinSBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0a5ONhp+ZoJmEiG59i3Vpd5eOfoGKgpSXiXmPlW96dHFraWRgc3poYGVweVpgcnx5Z3F5YWVlj7Gyd0tiWqXZ0JZxe5CKj3d9k4qEmJCLhW5rhZKSenmSh4GEmIl7hn93d4mKhJaAcIuIcXV+e2p5hYOlkISTjYR/cICEeIZ7iJ2blo2VkpaGiHF7k4N9goKIgm2Ad2iAhHhygIGDioh8ZX5/hHZkcXOAaXlxb3WZjoaDi313eYGFeoNrXHJ/c4KJh4p+h4p7iXOCb3KFiJCGhnOFe4KajY6FeW5vfoR/dnpkZmh7b15YdlpYcGtOV3FyZmBLbHd0YV5cW1p1fnNwWGddZmpyYG9OV2dSP1hmXlpva2d6cVtaWGtlWWNweV5nXF5lbGdla2lxd3+Ib2x/foB1b4J7f4J/gn92gYSJl4lxgo1xe4Z8enmEk4x1anl+a29+dH98b3J7epNvboF+eGeSi4OhmZyRgoVmhoNvZ3mViH1+hIKYiYF8jo1peHNra2ZfYW95bV9ib3hcZGuCeWFxdl9lZdTqvYsyOj6Ljn9xeIWHjY11gpaMfpKNi35ta4SMjHV8j3+FgZSIfIJ3bnaHhIOXd2+IhWx1e3VmeYKDp4uCj4uEfm6BdnmFfImfko6Sk5SOjId/e5KGd36DjIJqf3JogH54bnx9gouEd2J6hYJyZHJpfm51cnWCnIyBgIWAdHZ+gHOCb1xuf3V5i4SLfIiBfol5e3JtioWRhYxzg3qAl4yLgHVua3aAgHV0W2dndW5XVntSWW9kTFpycmVbSXB4b1xbW1lddH50aFliW2dmb2RqTVdmUT1dZVxddWVgdXBaWVRuY1lkcHhZaF1fZ21naWtpcHd9jm1pgoR/eW6AfH2Bf4F6dYKAjZOEcIGLbnd+gHt7iJKJf2h6fWpze3KFenN2fX6MeXiEfXxrjI2Em56WjIGAbI19a2h+jYt6fX6Dk4J+fYqIa3ZyZ2hiW2Jnc29fYWtzYGhwiHlic3ReY2SboI9uXDVar7V0aYCIfJGGdYWVhXOOiol2b2yEgoZ0eYl4iXySh3l+cmd2iX5+mG9xh39pdnluZnmHhKSHgIeNin5vgHeCg3+Pm4mElpOZioyFiXyPiHB6fYR7aH5saoB7emp7d4KIgXJgd4F+cmRyZ3aDbnV7hpaSgn2CgW93enx1f21ZcIB3dY2Dh3iIdoOJe3l0b4uCkYKGc4B+f5SJinxvbmltgYF0bVxmZHJwUFp6TVtuW09bcm9kVUtzeGlXWVlaYXCAdGBdXWFnZGlpZk5ZaE1AYGNbYHVhXXVsWFdTdGFaZG5xVmpeYmhqZ21saHB3fJNsaISKfX1wfn57gYCBend/f4qLg3F8h29xd4N/e4mMj4NqfXttd3h2inZ8eH+Chn+Dfn16bYWMiJmjjYSDe3WLeGtshIeQeH16gpGAgH6Lg3BzcWNmXllmX29vX2BncGZqboh0YXRvW2FkanZ7gL+cpqTIuHGEgnKSe3eFkoJzkIuHcnJvg3uDdHSHdIh3k4h5eXBjd4d6gJNpcoR2Z3d1Y2p8goidgYB/jo9+c4B1h3uClJKFepiPlpCIgol7iIhreHl+dGd6aGt/eXRpeneAg31oYHiIfWtrdGh8gWp2gYyRlX97fn9xfHZ8dH9iVnh+c3SLhYN9hHGHinh5cXGFhI6Af3p/fnePhoR3anFpbIeBcW9cZmFxbUlkdUtdbFRTWXJuYlFPdHhhUlhYXWFwgnNbYVxpZWVka2RQW3BJRGNgW2NwXl13aFVXVnZdW2VtZ1VrXmFpZ2VubmhwdnqTbWmIjXl9cnt+eYKBgXx2fYOIhoNwd4RybXeCgn6Ji5N/cIB7d3h6gIx0gnh+gYGChHmAdW9+ioubnoh9hXp3hXtndIWLkHl+f3uIhoR2j4BncG5fZFxYZVltcmFgYHBsa2iIbmF0aVlfZG6Ad6naqceGh7JxiHdvjHR6hY1/eZKJf3RzdH13f29xf22FdJOFeHRrYHqCeYmPZnKEcGd1blttfYCQk3+AeJGTfnl8bop4g5OOhnaYjJOQiIaGe3+EbHR2fmxndmRte3Ztand3f398YWJ4hnppdXVjfnxndYePjZZ8dYF3cYB7fW6AWld1f3B2hYh/gXptiYZ0emx2gYSFf3x+en10jIJ+dGh0ZW6Kg2xzWWhec2RHbW1LWmBXVlV3bWJQUnR2WFBWWF5hcYRvXGBjbWVkXm9jVFxyR0JmX11mZ11be2JRVlx0W1tna2FVal9gbmVma3FocHZ4jnRrjo11f3Z4fneBhIF7dH2DiIeDb3KAdHF1foWCiY2Ke3d/eIN7fIWHd4d8fYF+hIB7fnJ1eYyNoIyJeYl1dIN4Xn2Fl4t4hoNzhYaEd4l7Ym5tXGJbW2FWaXNjYFtnbnBmh3FhcWZXXWNrf3zKzoe5oWptbYpscYNxe4OJfnqQhHl4c3h1dHtqbHZjhHWRgnZvZl99gnqLimVygmtqcWNYbXqFm4iCgXOXlHh/fW+Kc4WMjol0mZCSiYaLg3x5fXBwb3xmaHFibXhxamxxeH19el1leoB4anZ4ZoN3Z3WIjI6VfXKIam9+gXlvfV1Zc39udYGMfIJvcIqAcXdpeIGCgYJ4fnN8dYd9e3Nnc2Fui4FrcVdpXXZbR21qTFZVXVNVe2thT1R1clBRVFdeYnSFaV1gbGpmY1pvYVhicEhBZ1xgZV5cVnteTlVlcFlbamhdV2hgXnJlamhyaHBzd4Z4bpWLdH96eH55g4h/dXJ/hoWOgnBwe3h3dnmGhoeMhnp8f3SLfX2GhIOHfn5+fYd/fHh1eHiRk59/jHyKbXWAeGSDhpWFc5GKb4WFgXqDdGRuallfW1xdVGdyZGBZZHFyZ4ByYmtlV1tgan94vq57n7duYXOFaHN6cXiBhHp9i353d3J2b3t2ZWpvYYd1joBzamJefnh5i4RmcX9oa2taVm93iaOBhX9xmZNygXp3hG+DhJSKdZeKjomFiYV9eHRxbmh4X2psYG12amdqbHl3enZaZ318eWZzfm2FdGV1ho2GloBwjGdre4R1bnViXXF9bHV9jHyCZ3aHfm5xaXZ/eX+AdH5te3yCe3lxZmxibol9bG1WaV92VUppak5RTmdMWHtoYU5VdWtMUVRVX2Z1g2ZeYHFoZ2JXal1ca2hKRGpZYWRWWVV5WU1WbWpZXWtkXFllY150ZW1kcWdycHWBeHGZhnZ/fnd/fIWHfXVzgoiAlYJuc3l7enNzhYeJiYN4gX11j358hIqNg4GEe36Lg3t2e3d3mp2YeomChml2fHtsg4OSf3KOgXCFgn+Cf3BnbGdYXVtcW1NkcGReV2JydWp1b2VlY1dcW2h/cG9ygHOJZGR5fWlzdXNygYN3gIN4dnJ1bmt6cWFna2eGc42DbWZdX31we4l/aW14Z2pkVVdyb42mfIR7dpaRdH10fnxvfn2Th3iafYmHg4eDfXVwcWxndFxsZ15sdGRnZWl6b3tyWWiBd3VocIF4gnZid4aLfJWBb4xrbXuCcWd0ZmFuemdzeIt8f2J3hHdqbHJ1fHJ7e3R/aIB/gHl3b2RmYm2Fe2xqVWhhb1JKaGpPS05vR116ZmFNVXRkSk9TV2Fqdn5mXWdzaWZgVmRXYnBcTEtqV2NhVVRVc1ZMWHVkWV5rYFxaY2VfdmdtYnBpdG9yfnR0mYJ3f4B4gH+GhHp9dYKEf5eFbnJ0fHp1cYSFj4GAeot1c5B/fIGVjYCFhH19jIZ6fYB2e6OlinmIhYRrdHt6dYKAi3puhHN5hH2Cg3ZvamllVl1bWlpTYm5kW1hhc3tqaG1pYGJYX1ppf2lrb4BnbGBoeXhqcnNzbYOAen98dXRtemhqeWpfZW5ogXaPhGdlWGJ3an6He29qcGdmXVRYb2eOp3eBenyQjnl2cYBxdXh7kYF6l3aHg4CFiHZqcnVnZ25bbGNdbXJfZ2FqeGh7bFtug3N0anCBfnp4YXeGhXmQhXSJcnB6gXNkcmldcXhlcnSJfHljdIBxZ2p5dXNteXh2eWWEfH95d3FkZGNte3xqalRnYWVTSmtnT0dRakVgd2ZhTVNyXUpNVFpla3d8Zl5tcWlkXVZhVW5uVkpTZ1dmXlhNVWxUSlt4Xltea11dWmNlYHlobGFvb3ZucHd1eph+d3+BeYCAh4Z6eXqDfoGThHF0dH95dnSFiJF9gHyQa3KVgHuCn4V+h32AfoaCgIp7doSrnn96h4eDa3KBeXWAfoB0boZufIBzioBqcG5kZFhfWllaVGJqZ1taX3WCaV5tbFxhV1xca4FlcnR9aWlca3Z1Z3N2cWyEe318eHVybHlnaXhmXWRzaHp3koFjY1RlcGiChXh4Z2lqYVdWWWdjjqdvfneAi457cXJ/aXtxfI59eJBzhX5/f4ZuZHVyZGdnXGphXG9vXGdfbXRlemhddIBvcmtxfH51dmJ1hox7iIiBgHlzdYB2YnFuW3J0Y3FzhXx1ZXOAbWFte3Branx6dnNnh3Z7enZxZWJkbXJ9aWtTZ11cVEtxYlBGVWBHYnZmYUtTb1hKTVhYZ2t1e2VlbnFmZFpXXlh3ZVRKXGJXaFhZSFdlUEhhd1pdX2xaXlxhY15+aWpgb3R4bXBudoOXenKAgHx/iYyGfXV1hniHjHx0dXWCeXp6goyOfX6EiWlzloF6ip1+foV6gXp/fIaIc3GPrYx7e4aPfWVxh3lzfHp1cm+GbHt+bI96Y3BvYmVdZVZZWVdjZmtfXV1zhWhYcW5bXlhaXGx7YnB3dWxhWWxzc2d0dW9sg3h+f3h2bW50ZGl0ZVtndWZ2dpF6X11SZmZrg4J0fmJkalxUV11iY4+laHh0g4aReW5xfGp6b32HfXaKdIJ5fHh/aGR2bGBmX15pXlxza1llXW9vYnplXHd8a25ucHh5dHVlc4STf4iDiXx3cHN/dGN4ZVxxcWJxcoJ9dGdygGVfbndqZWh6fXVvcIN2dH10cmJfZm1ufGRoU2dXWFNNdl9QSllXSGJ0Y2FJVG1TSk1aV2lscXxjbWxzY2JaWlthd1xTS2NdWGlTV0dZYE1HaXRYXmBsW1tfYmJchGloYW54eW1vanaBkHltg36AgZOIhIF2dIl0jIZ0cnZ2gnh9fX6MkIB+k35wd5WDfJiSeYCAeHp+gHSIg3RwmaF6en+JlHdjdIZ4c3d0a3Rufmt4fHCRc15wbmBnYmxUWlpXaGNtZltccYllU3JuW1pYV2BsdmNpdWppXlltc3Brc3NzaYR8fn57dm5ubGRpcWNbanJkdHaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEknVsbHtvcHJ8fn1zgniAc3p6emRldWddYllgZ1pedmhXYl1waGF3YVt8dmlqcm94dHN1aXGCloSHf4V3dGtxfm9neFhdbG5jcnSBenRncH5cYHByYmBrcn9tbnZ/c3J4a3FhXGVsbHpgZlJlU1ZRT3VbUU9YUUhjc2FgR1ZqUElQWlVra2t8ZW5vcWJbWlhZbHFXUlBmVlZoU1RGWlxOSHF0WF9jbGJYYGBhXYtqY2RtenhscGl1eYd7a4N9f4SafIOEeXyHbY+Hcm92enx0goJ8i4+Dgpd0eIGThYGeiXWBgIF0f4Jxh4J1b6GWc3qGi4Z6ZHaJbm16bmZ4cHprc3ZzjWtedW5hZ2VrUl1bVWdhbGtaXHGMZE9vbl1WWFVnaXNoYnRlZFxYbXRsb3V0eGqGfH97h3aPc2Nka25hXG5tY3N4h2taVFZjZHh9fXGGXWRfY1RaX1lilZVjbnCDhYp0a2l8cGd1eHV9bXt1dnB6f3ZfZnJjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXRxdHF1d2tthZSCiXyGcnNncH5ydHBUXGdrZnJ1gXd0Y212VmNybFtfcGd+Zm54fnR0c2tuYVpkaWp3XmVTY1RVUFNsVlBWUlBHZHJfYUZYaU5JWFRWbWhkfGlreGtiV11VW3RkU1JXaFFYZlRTSFpaUE13dlpfZWtpWWFgXl6ObmJma3l1bm9pdnaAf2yDgH2HmHuAh4GJfmuTiHJndIB7dYCDfYmPf4uTcnyKkYWHn4Z7f4aMc4GGc32Cdm6ki3KAjYt2d2x5i2Bke3BmeXN4bG1xd4NnZHxtY2ZnaFNfXlVnX2xuW15ujWhOaW1gVFZTb2dza2V4ZGRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVweH5nWlZYYGx4fHtwhF9jX2dWWF9XY5uIYmtwgYd9eGxsem5deHNufGt2dG9wfIBzWGpuXlhcVWFiV2RwY1NeYmlhYmxaYX5sZmx0dm9td3dsaYaMgIp7iW5yZnJ+bnRuZFthaWlwdIF0c15pbVNlcWVWY29kfGRzeH13bHBta2BZYWZndFxkVWBVUk5XZFJPW05PSGRvXGJHWWlNSl9LWG1kYHhpbn5kYFVfVF11XFNSYGZOXWFVU0pcWVBZdHVdX2VraFhiYVtejXFjZ2p4cXNuaHZ0eoRygoN6iI5+fImHjXlukIp1bHOCdH9/iIWHkYSVj3l9jI6HkZuEgHyMhXN/gXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjYyMjIyMjI2Ojo6Njo6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjY6Ojo6Ojo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERBUsza2NjY2N1tPURERERDWGhnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTJG2Orn5+fn7WcuNTU1NTRNYV9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmIiIiIiIeNkJCQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWFhYWFhYaTlJSUlJSVioWFhYWFhYeJiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkpKRiYeOipCSkpOPjo+MjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYuKi4uLjIuNjo6Ojo6OjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQkIeJiIiNiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCNhIiFho+JjI+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkYmDhoeIjIiOj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjoiHiIaMiI+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Qjo2Mi42Mjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Pjo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4CBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9/f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhYaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3ent8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl7e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj06Ojo8Ojg5ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/QD48PkA/PT09Pz49PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkVDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjs+PD89PDo+PT9CQkVAP0BOYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8e3t8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFDREI/PkE/QURFRENXdYaJin5YR0lKTExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm9wcXJ2dnl7e3t6fX1+fn19fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpISUdISElHRkJERkREQ0FVdIeJh4eGiIJXSUxNTE1NTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKS01KS0hIRkZHRkVQbISHhoaGh4eIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz8/REZIREVHSUtJSUdISUdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTUxLTUxJRkpWbIGGhYSEhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lJS0xPTk5RTlFecoGFg4SFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QTs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5/fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njs8Q0BCRkhLSExLTVRne4SEg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODo7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn9+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9OjxEQkRGRUpieISEgoKDgoWJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc3OTk3NjY3NjU6Ojs6Ojw4OTg5OTg3Nzo6Ojg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT1BRV2tycnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PEQ/XYSDg4OEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj48Ojw7PDs8Ozk6PDg6Ojs6OTk5PD88PUFCRElKTEtKS0xXb3J0dXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pj0/P0R3goOEhIWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVCQUFCPkBDQUA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEFAPz9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6Ozw6Ojo8Oz0+QD89YYWChIOFhIaJiYiHhoaGh4iJiouLioqKi4qLXj5ER0lLSkpGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj06PDo9PT4+Oz48Pz5CP0p+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqHV0dMTE1LTklJS0hJSkpJRUNERkdGRENFRkRCSElLR0hHRkdHRUtKTElLS0pDRkNDREJBQUNCRENDRERDQT08PkBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f3+AgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc7Pjs8Oj0/Pj88Pz5CQUQ+aISChYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtGREdISElFRUhGRkVMTE1JSkdHSElKTk1PTUxOS0hHR0dFRUNGRkZGREVISEZDQT9ATG1wdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw6Ozw6PT88PT0/QENCSFN+g4SEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMTExKSEhGSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTk9OTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVb3F1dnh6e3h4enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6Ozc8PTo8Pzw8PT9CQ0NMbYSDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIuLi4teUlJQTU5NS0pHRkNISkdMSkdLT0xLSkpNTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OD89PT5ARUQ9QkRDRkp1hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUZGS09OT1dWUVBPUVNSTlNUT01TTFBTVVdSU1JQTEpNTU1LTkdHSkZGSUpEREVFQkRDY3F1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz08QT9BQURUS0JISUZJS3iGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlTWVhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hKSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQUNGRENES1ZQSk9PTlBQeYaFh4aFhoeIiIeIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVddWlZFUVlbXFlfVFlnUlVWWFRUVlNPT01LTEpJSUxNS09NU290dnh5eHd5eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SExJTVBLSUpPU1FQVFZVVlR1hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXl5bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktKSUlGQkRAQTpPUVFXWFBQUFFSU1JWV1dXV2yBgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaWlhcaGJHT1ppZ1xbXF1dV1JOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpaUlNRT1FSUVVSVVNWXnV4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5UUVFQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAgH9/gH5+enh3dnN1e39/gIB0a35+a3F5XltWVVNST0tGQ0RBTV6DbFZSU09PUU9RVlFTUlJUY2R2gIOCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JVUk1PWVFNTlFTVVVNUVNSUE9NTEhDSUdSU1RaXW1ydnZ1dHR3e3p6e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRgZF1eW1lVUUxJTElhbJJ0UFFTTVFSUFNbUlNSUVJVVWJze3x+gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5CQkNDQT9EUENEQEM+QkhHVkBJTk1HXWlRSEZPRkRFRkhHSEJDSEdIS0dEQkFDQE5QTVJkdHV2dXN0dnl8ent7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZoZWViXFhTUVBVUnNXZVtPT05MUVJQVVlTVVFRVFJPVmBrbHN2ent4eXVybnN0c3l4fn6DgIODgoGCgIKBgWtMRz4+Ojo+QD8+Pj5qUEphRUZISUVCP0hNTUdNUVVKQkU/Pjw9PD09Pz0/QUNDQD88PUI+SU1GVW91dXZzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKT1BOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxva2hgbnJpbWxxdXt6fXt4enx8eHd4ZEJAQEE8OkJDQUFDQVtcTntOT09OS0xNT09QTEtMV05IR0FBPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1d3V2d3l8fHx9fHx8fH59fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT09eXFpJR09RUU9NUFFOUVJTVlhTUllUTllaW1dZXF9eX2VgXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FXUE1KREY+Ojk2NTg3OTc5OjM2NTc5NTxCPWZ0dXd4d3l5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LU1RTUFFVT0xSU1RXWFNUWFFMWFlZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT01MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnJ1eXl6e3t9fX19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5NTUxKRlBQVVlTVE9KTk9VU1RcVlJVU1NPTUxJSEhGPz49Ojc4NzY1OTk2NzU2NVdxcXR4enp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFhZWVlSVU9JR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFBPTk5NUE5UUlBSTElMS09SUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVVFTRkZBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPTNAPmpvYVJSUUBHVFFPUFBRTlFPUE9MSkxMT1BOTVBRUU5QT0pMTU1LR0VFQ0I7PT08OT1HNjY3NkRucXV3enx7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVllZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JCOERNU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FMTk5NSU1MSUtLTEtHRkZFRDxBQT47QEU7PDg5VHJzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1BQEI9PkVIRkRGRklHSkpARkFBQEVHRElPSFFSYVxRUFJPU05PT0xMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZFP0JDPj1CRz9CP0BkcnV3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48QkFAR0lETU9iZVBNT01XS0xOS0tNTUxMS05OU2RNSkxSSUlJRUJJSkxNTkpHSUZCQkJAP0VGRUhETG9wdnp5eXt7enx6d3R4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPSEtFP0I9OTk5Oj9CPzxBQkFBRERHS0ZESUlHR0hDQz9CPj8/QD5DRURMTVFUTEpJTVRGSUlKTElKS0lKTE1PUFJQS0dDS0dDQ0tKTE5PTklKSUdDQ0NESUpNTElac254eXh6e3t5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFISkNGR0hHSktJSkxER0I8Pj06Ojo7QUI/PUJCQ0NIRUpMSkVJSUZHSENDO0FAQj5AP0JFRElNT0dISkdIS0RISUtNSEpMSElKTEpNXVJISUROR0JFTEtOTlFOTE1KS0ZHR0pNTlJOTWNuand2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhlcEZKQ0ZFRkRFRUZFR0NDQD08PTo7OjtBREE/QkNFRUlGSkpMRklJR0ZGREI6QUNDPj9DQ0NER0tNSEpOSERIRElMTk1ISUxHRkZJSUxOS0lIRU9JQ0dOTVBOUE5PT01LSUhJT1NRUk5TZ2dmcm9zeHZ7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZl9wR0pDRUVEQkJBRUBEQj4/Pjs7Oz07PT9EQj9BQ0ZHSkZKSUxIR0dHRkVDPz1ERUI+QUNCQ0VHSElHTVBJRkZGS05PS0ZISUZFQ0RJSUhLSUdIUEtESk1NUU5PTk9QTkpKSU1SVVVSUFhlYWFtZnByb3J5emdlaGhjaWxmcWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VERkJBQEFEPEJBPkE9Ojo9Pzs+P0FCP0BCRUdKRkpHSUdGRkZFRENBQUVGQ0JCQkRFRUdHSEZMUExJT0pKTEtJRkhFRkVDQ0hISEtKR0tSTUNPT05RT09PTk9PS0tLUFVXVlZUWWBfXWlgbWpuaHJzYmVmZmRoaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01HR0VHQUFAQ0Q8QUFAQzw4Oj0+Oj89QEJAQEBERkhFSEZGSEZFRURDREJESUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9NT1BNTE5TV1ZXWVZYXlpdZGBoY2ppZ2tfZGVmY2hnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hBQUJFRTxAQ0JEPDc6PT47PjtBQj4/P0NFRkRGRERHRUNFQ0RGRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSEVLS0xMTk9SVE9IVFVUUVRQUU1OUU5NUVdaVlpZV1peWlhhYGBgXmhlY2BkZWdnamhoamdobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURBQ0dFPEBFQkQ8ODo+Pj48PEJDPUA+QUJGQ0VDQ0dEQ0RFRkdHR0lGR0tIQ0lIR0lHRkRIS0lHS0hNS0pLTEhLSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9UWVpZXFpaXF9fXWBjXlxiZGxjYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRkJER0U9QUdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERGREZGSEhGSEdJS0pFSkhISkhGRkxISEhKR0xMTExMSU1KTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJlXmRgZmhgZWhqZHNzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd3B3SUpMSUtHQkVERTxBRkREQjs/P0FAQEFEQUBCPkFDSEJFREZHRUlFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0tNTEpJTEtNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFiYGNkZWJkaWNkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV1c3Bzd3R1dXd2dXV0ZXFza3BxanJ2cHdKTEtLTEdDQ0FFPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0dHSEZFSUZDR0pHR0pFSUxISUpNS01MR0tJSEtLTlFLUlFMU01KTU1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5hY15gZmJhY2luaGNpaGhteHZtaGlub3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnNxcXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0RBQEQ+PURFRkM/Q0FFRERGQ0JFR0NDSUVCSEpJR0hKRkRLSkdISkhJS0dKSk5LTkxJTEhKTUtaZkpkXEtsUkdOTV9uVWxzW3FwYndjUlBidnVodWNhdmFYbnFiZHZpbnpmXGx1YGxrVV93dmlqaGhmZ2xtam1vam1vc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cnFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj88REVGRENDQ0VFREZCRUZHRERKRERKTEtJS0xHR05KSEpLR0tKSUtKTkxNTUxMSU1MTFtzYmRwXmxsVUxOZXJdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm5ccHZncE5LcXl2a2Fha2VlbHhta3Zsbm9zcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FBPz1CRUZCRUNFREVFRENISEdERUtIR0tNTUpMTEZKTkhKS0pJS0pKSUtNTU5NTU1LTk1NW3Jwb25wcGxrTVBRbFhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcF1gc2xxalV1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dGRUVCQUI9Pz9FR0JHRElFRURCRklISERHS0pHTUxOSkxNR0xOSU1LSEpNSUpKSkpOT05OTUxOTUxcaGR1XWxxV2xOT1FtVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRklMS0ZNS0tSUkxITU1ITkpJSE5HSkpISE5PTU5MSk5NSlp0cHBvcXFtbE9RUm5Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpbXnRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0VFRUBAPkNDQUZDSElNSEZDRkpMSUdGS01MRk9KS1dSS0dLSkpOSUlKTElLSklJS0xNTUxJS0tLU2tiWWleX2pjcnJaX1lqb19lZVVrX2RbYWJRYG1oXGpcbmlpZFtvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRklERURGQUBBRURDR0JISkxHRkRHS0xJRUZKT0xJT0pMW1FKRkhIS01JSEpKS0tJSEpHS0tLS0dIS0pMS0xKSUtMTlRbXVRQVU1RT05PT1VSUFBRT09RSkpOUFFkcWlUWVZbW1xVWVtdWF1cXGNmYWFmYmNmX15ma21obXR4cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQUVDP0NHREVHQ0lLTEhGREdLTEhER0lQS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKSEhIRUZMSEhKTktIT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZFxhWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1BQ0RCRElFR0dGS0pLSEVFSkpKRkRHSFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdFRUpHQklNSUpUX1lgWGBhW2BVWFlUXl5aX1JZXFBeXFlOX1xeU1teZF5aXWBjX1lfYltgXltVWVhaX15kY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN1eXp6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklJREZLSkpFRUhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRkNERUJGSkQ/SUtJTltjWV5eYV9SVFNXX2BcXVleUVlcTVZfV0tRWVtRW19iYV1eY2FgYmJiY2NlWlJZVlddW15kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkRHRUJFR0hGR0hJRkdKR0hGSEtJS0RDS0pNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0lFRUBEQUhJQT5ISUZPXWFaW2RdX1RRUlhdXFxcX1tLV1xMUlxZSU1eUVFdX2JjY2NjYlxkY2JkY2VYUlZVVF1ZW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0ZLSUZHR0lHR0pGRkZJTEpORUNLSkxOSkxJS0pJSUdCSEhRTUtLT01LS0lISEZFP0VCSEhBQEZFQ1RdWV5YX1lfW11VWFhQXV1RS0pWXlheW11WWmFSUl9fYmJgYGJiX2NiYmRkYlhQUlJTXFRcXV1eXl9fYGRoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0pJR0RIS1FPTUxQTUxLS0lKREVBRUNIRkFBRkRBVlVFXFReU1ZfWE5UVU5aW01KS1RgYVtfWF9eYl1PWGJcYGBfYmNhXWJiV19fVFFQUVJZU15cW11eX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJU2NRRVdfSUdHSERGTUpQUEZJSUpLTkxMS01LSkpHRUlOUVFOT1BNTk1OSExCREFDQ0ZEQ0FDREBMSENMTFBPTkxGTUZGSElIR0xMTU9QSUxPUFBTUExRVFJVWlhXWVdXY1ZPU1RQUU9PUVVUXFlZW15eYWFlZmNoZGxtcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtNXk1ISFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS1BUU05QUE5PT09IS0ZgRUReTERmY0NMW0heXHNtT01WbVlMQ09fVGxXZ0pdV1VeRExRVUxNU1ZRUlRYVlRYVFRcVFBmWmhoZVpUa1RYV1VbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS09USktHYFRISk9KSU9NUlFLTUtMT1JVUk9QSkxOR0hNUVtZT1BQTk9QUEpLUX9RSXxZWXJzV1BtR3Fub2FWUHFxdE9CanNucXRwU29fW25YXVZcWFVraFVdVmNZYFlaXlVVV39pdHV1X2F2X1liXFxmW19hYWFiXmBjZ21vbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4fYB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxLT0hMUlhXUU5PT01RVE5PUVBLTE9HTVBTW1pUUVJPUFBQS0laeF1UeGRoWFJTUHZmdGxwYm5ma1JyTkx3bWpycHNycXJwb3CAXWV6dXhxcXpxfnJ9a3V9YVJofGVzc29zc3x9cH54b39yYGBgYmJbYWFobG5rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpRT01OSk5WXllVTFFTTllZTFNSUk5MUElRUlRZV1dRVFBQUVJLSGd4bGN4cW1aSkxUeXB1bXVibnZQZGRIZXZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGhuWHV1anZ1cIBhc2h9aWx4fG9fX19jYlxfZGVnamplZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFFIS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OU0pLcm91dXF1cWNoYVZuTHFwXkdoeVd2VEtoeH13YHl7c25hXW1vZFNncnVubXlwd2x2c3RxbG1cc356a215fGx1bnxscXZ1eF5fX2JfXV9lZWlnaGZlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUUtNTkxMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05RSVJtSGl3S2BkdnVVV2xObmx7cmFqZ391VEtXa2d8bG1seF9acHp7X2B6c2Nyb3hxaGR8aXJ7XVRLa192dWxqdnx7bX55a3xwXV5eYltfYmRlZ2ZmZWNbY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxnbG1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTUxTU1JPU1JYUldUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFNT1VMS0tSU1JSUk9WVVFRT1JSWFhQTlBVVFdYWFtbVVFSV1tXWFdbT1JUV1dYUV1YVlxVVE9YUldXWFlaYFxncl9bW1pdXV9jWl9jY2VnZGRkY1pkYmdmZm1ubXVmZmdjYGZeXmdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJOUlFQTFZVVFBUVVhVWlZSW11WVVRXVVlYT09MTldUUE5VU05QTkxRUEtJUVFLUU1KSk9RVFJQUVNSSUlNT1BRUlBQUFRVUlhXXFdTUlBRVVVVU1pRTlJRV1VTWVZUWFRTUVRTVVVZWVheWl9hXVxaWlxcYGNcXmJiZGdlZWViWWBhY2FiaGhqbmNhZF5fY11aY1xibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVFNWFdVVFZYV1daVlNcYFZXVllVWFRRUEtPWFNQTlVQTlFOTFNQTU5VU05RTk1OUVNQVFBSVFROTE5PUlRUUVFRVVdVWVpbWlNVUlRYV1ZZXFNPU1RXVVRZVVZYVFJRV1VWWFxaXGBdV1lfXV5dXF1gYV5bYmNjaGdmZWJYYGBiXWBoZWdlYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWU1RPS09WVFBPVFBQUU5NUlFPUVhUUVFPTU9SVE5XUVRUVU9OTlFUVVVSUlJUWFZaXVxaVlZRUldYVVtbVlBTVVVVVlhTV1dUUlFYVlZbX1tfYF9WX11eYFxcYGBfX1piY2VpaGVlYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVlxaWldbW1xZWltkcW1oZF9bWVZWWFJNTldTTU1ST1FST01QU1JVWlVUUFBMUFdVUVZSU1JYTU9QUlVYVVRUU1RZWFteXVxbVlJPVVZVW1tWUVNWVFZYVFNYWlNSUVlXV11fW2BfYFZiXGBhXWBiX1xgXWNhY2hpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5QV1NOUVFQUlRSTFFUU1lbV1VPUk5TWFZTUlRSUlpPUVNTVltWVlZTVlpYXV5cXF5WU05UVlZbW1VRVFRVV1hSU1lcVFJSXFhaXV5dYWFgV2JbY2JeYWNfXGJhYl9kZ2llZ11cZWBhYGFjZF9iX1laX1tcW1hYWVdXWlpaYVxdW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1cYFxgVVxcaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVWlpaU09TUVVVVVNOVVFSWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZWV15aWFFUVFdYWFNWWVxUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXl5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVldWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVU09XUVNYU1dVVlteWFtZVVpeWF9eWVxZUldSWVhZX1lZUlRVWVlZVVdZXFVUWl1dXmFiYGVkXV5dXWVhYmZkXl9kY2BcZ2VoZmRiYGVhX2FhYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lQXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFNXVVRSU1dRU1ZUWFhYXl5YXVtVXV9YX19YXFZRWVRZWlphWFtUVldaWlpYWVlaV1ZdX2BfZGNiZWVeYlxgZmJkZmRfYGRiYVtmY2hmZGZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlRcVVdXWVdWXGBhYWNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVVJWVVFTVVdbW1xfX1pfXFZfX1ldXlleVlNZV1lZXGFZXVVWWltaW1paWVpYWV9fYGBkY2RlZWNkWmJmY2dmZV5hYmBjXWJjaWVkaF9nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVZYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZVU1VUWF1dX2BgXWFdV2FeW15cW15YVlhXW1pfX1peV1hcXFxdXVtaXFdaX2FeYGRkZGZmZ2NZY2ZlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpZWFpYV1tbWltXWFpUWl1cW2BcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9dXV1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBXVVdYV1ZWV1ZdXV5hYmFfYl5ZYV1dXllcXllYVVZbW2BeXF9ZWV5dXl5gXFpaWVtfYl9iZWRlZmdoY1plZmdpZ2NfY15gZmVaaWljZmljZl9iYmNhYGBfXV1aWFtZWVhYWllXWltaWVdZVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcWFpiZWNhUlxZT1hWWVtZWVdaWmBeYWJjYGFjX1xiXV9dW15eWVlUWF1cX19eX1taXl5gYmJcXFdbXWBiYmNlZGdmZmdlXWVnaGlmY2FiXGNnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYmBjYmJdXFtaV1hpcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeXl9aWFZbXlxcYWFfXVtgYWJmYl5cU1xfYGNkZGZlZ2dmZmZgZmdoaGdkZGBbZmdeYWhoY2loZmNgYmBjYl9fX11dW1pbWVhYWFZaV1xbWlZWVUxYWFxnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3x7e3t7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHt7e3t8e3x8e3t7e3t6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKh3NxcnJycnGDiomJiYmGs9bS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyJcm9vb29vboWNjIyMjIi/6eXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5eXp5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx6enp6enl6e318fHx8e4GEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV4dnZ2ent4e3h3dnZ4eXl6en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t7e3t7e3t7e3t7enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3d3x8fXp5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d5fnx9fXl7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3t+fHx8enx5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt8fH16fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl3eHp6e3l5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh4eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGBgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qKi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHg4WCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uHjYmIiYWEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioaGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoWDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLioqLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoGCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYKDgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJKPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWGhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GBg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KDhIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYF/gYGAgIKBgoKCgYGCgoGAgoKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH5+f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOCgYKCg4ODhIKDg4OCgICAgoKCgoKCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhYWCgYKDgoKEgoGChoWDhYODhISEhoWEhIWCf319fX6ChIODg4ODg4ODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIWFhYWEhoaFhoaFhYWFhIWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMi4iFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIOEg4ODhIWDgoOEhYWGhYaGhYaHh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eFhYeFgX9/f39/f39+gICEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoeGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4OEhISFhIOCgoODhIODgoOFhIWHh4WEgoB/f39/f4B/f3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OChISEhIWEgYCBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhYOFg4ODgoGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWEg4aFg4KCgoKCg4F+fX5+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiEg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDhISCgYGBgYGDg4SDhJGSkY6PjYuHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoKChISDgoWGiIuKhoSGhIKGhoKAhYSDg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjZCNiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFg4GAgIF/fn2Cg4ODg4KCgH19f4CAgX99fn59fH19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICBgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5/fnx8f4ODgoOCg4F9fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF+fX1/gIF/f35/gIB/gICAgX+AgoCAgoKBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDg4OEhYCBf3x9fX59fX6AgH59fn17fX6Cg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gIB/fn9+fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36AfX1/gYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7f39+f39/fn1+f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZOSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoKBg4SEg4SAgYCAgYCBgIGCgoOBgIF/gIKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+BgH+Bf4CAgIGBgoKAfoB+f35+f36BgIKBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDg4OCgoKBgoF+fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKChIOAgYOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoWEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeIh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWGhoeHhoeHiIaHh4eGh4eHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GDhYWGhoSDhYWDhISDg4SDhISEiJKOi4mIiImHh4eFhoWEhYSCgoKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fHx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYmJh4WGhYODgoGCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoOEg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjYuMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4WFhYWDg4OEgoGDg4KDgoKBgICAf4F+f35+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH59e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42OjYiHh4WFhISDgoKBgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICBgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX19fXx8fYB/gIB+gH5+gZSRi4yNjY+KhYaGhYSEhYODgoKDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4Z/fn1+gICBgH9/fn19fX1+e3t9f39/gH1/foCMkY2LjI2NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn9+f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19fn9/fX6Afn5+hJKMi4uOjYuKhoSFhISDg4ODgoOCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gISDgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgYJ/f4KCf4CKj4yKioyLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBgICAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t8fHp6fXp+gn+Bg4SCgYKBhYaFhYaGh4WChJGOjIqJioeIhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn5+fn58fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJiomKiYWIkY2LiIiGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH18fX19fnx9fH18fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uKiYyQjYyJiIaFhIOCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+MioiIhYSEg4GCgoKCgoKBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX19fn1+f319fXt8fX58fHt8fXp6eXl6eXt7fn6AgYOHhIiNjImJhoWEhIOCgoKDgoKBgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX59fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiYyJioeFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGEgX5+gIB9foB+fX5+gIB/gX5/gH9/f4B/fX5/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyJiYeHhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX1+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99gH99fX99fn59fnx7fHp8e3qAhYKDhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIOBf3+AfoCBfoCBgIB/fn5+fn5+f35+hYWAgYB/gIOBf36BgH9+gH+Af359e3p7enx7eoKDf4KCgoKDgoOCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19foB9fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOBf3+Af4F/gH98e3t6fHt8gYB/gX9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fn2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSBfnt7fHx8fX19fn16fn1+eX5/f3x8fH59foGAgYGBgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhIWFg4ODg4ODgoGCg4KBg4J/gYB/f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH9+fn5/f31+foCBgoJ+f359fn5+fn9/gH99gIGAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3Zxd3lyeIWFhYWDhISCgoOCgYGCgYCDgYCAf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGBgX5/fn5+fX19f35/fnx+gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH9/goB8gH+Afn+BgH9/fYB/fn9/fn19fICAgICAfn9+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYOCgoOFhYKCfn58e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzcHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgX1+gH9+f4F/gH9/gYB/gH9+fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WHhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKMenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX+Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+BgIB/gIB/gIGBf4CAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGDg4B/goGFg4OEgYGDgIKDgYGAgIGCg4KAgoKFg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgYB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKCgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl5fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDg4OBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgICBgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgYGDgYCAgIGAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIODhISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKChYSEg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnR9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4KDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9f31/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn91dn+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhYSDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx8gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYR/fX18fHx8f4F+fX5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WFhIWEgX+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYuJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgISDgH9+fn59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfH9zgoN/g4N9gX1+fn1+goOBfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9gH99gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeHiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoaFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgoF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFhIaHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59f399foB+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYSIhYaHhoeGiIaHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaEhoaFhoWEhoaFhIOFhYKFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn59fXx/fH5+fH2BgH18fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEg4SDgoSHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYWEg4SEhYaGhoaGhoeFhYeFhoaGhYSDhIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODgoKDhoGDfoKCg4CDg39/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYOFhYaGhoaHhYeGh4aHh4WEhoWDgYOCgIOFgoN+gYGBf4OBf35+f35/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFh4eIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4aFh4OEhYSGhoaHhYWEg4WFh4WHhoeFhoaGhYaGhIOFhYKBgoGAg4ODgn2BgYB+g4F+f3+BfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaFhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWGhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OFgICBgICEgIOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH5+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhoKCg4R/foCAgIF/g4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18f359fHx9f358e4iFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WDhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg39+f4B/f3+Df3yAfX1/gn2AgX5+gX59fX19f3t/fHt6eXp6eXp6fHl6ent7e316e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEgoWChYGBgH9/gIB+f4CCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaGhYWHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCf319f35+gIN+e398fICBfYGAfX2DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5+gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx/g318fnx8gYB+gn99f4J8f359fX18fHt7enp6enl7enp6enp6ent8eXt9e3x/f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIaEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhIWFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfX2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo7ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dXU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXU1dXV1dXV1dXV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2trY1tfX19fX19fY19fX19jc3d3d3d3d3d3d3d3d3tvX2NfY19fX2NfW19fX1tPS09PT09PU1NTU1NTW1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqHprq4uLi4uLi4uLi4uLmzeHNzc3Nzc3Nzc3Nzc3CSu7i4uLi4uLi4uLi4t73S0tLS0tLS09PT0tPT09zi4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTT4Ono6Ojo6Ojo6Ojo6OlmTIpKysrKysrKysrKyolYamkpKOjo6Ojo6Ojo6Gr0tLS0tLS0tLS0tLS0tHf6urr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1OFqKSkpKSkpKSkpKSkpps4LzAwMDAwMDAwMDAwK2WqpaWlpKSkpKSkpKSjrNLS0tLS0tLS0tLS0tLR3urq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJejKypqampqampqampqaugRT0+Pj4+Pj4+Pj4+Pjlur6mpqampqampqampqLDS0tLT0tLS0tLS0tLS0d7p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Ozs7Pzs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy8/R0dLS0tLS0tLS0tLS0crKysrKysrKycnJycnJzNLR0dLS0tLS0tLS0tLS1NTU1dXV1dXV1tXW1tbY2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7Ozs7P0c7P09PPztDU0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tbW1tbW1tbW1tbW1tbY19fX19fX2NfW19fX19bW1tbW1tbW1tbW1tfX1tXW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7Ozs7RwafSz6GWy9HGk6vSzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Ozs/P0Z2Pxaqgq5/Oma2Zs9LOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz8/P07qvq7GflY+htJWHnZ3Oz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Pz9OfsZ6nnZ+nmbS/yZaZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/Pz9HAnImbtaSgi5/D0pGYoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PEJAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz8/Uo6KBm8WZxcmU2Kyjv53V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw7Ojk/QD08PT1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDRxJ+Be5efopWVobvNiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ozs4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q1auvvMDTeZuws52l0NuimbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzs7OT0+PT07Oz08QENCPz4+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXJh3+FooKjm6KdnJGomJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HG09PVnJqyoKmgop6poqmc0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFDQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg0tHS16iIz7CNkaXUmpGOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw5PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR0dLPxdTVwL3W1NO4yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojw9Pzo7OTo8PUJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dLS09TS0tTV09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Ojw+Ozo4Ojs/Pz9CQkE+QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njs9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk6PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pj9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD9CPzo4Nzc2PT8/QD1AQD8/PT07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT0tLS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+PTw/QD88NTY3Njw+Pz48QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFBPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBDQENDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojs8Pjs9PTs+PDo7ODk6ODlBQUJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I7OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTs/PTo5OTo8OTtFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY7REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8PEREREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc2ODU4QD5AOzw5PDs8Pjo6Ozk6OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODo4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg3NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc3NjY2ODc4NDs/Oz49OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Nzc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODY3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY3NTU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzY2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NjM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3ODYzNzY3OjY2NjU5Pj86PD87Pzk7Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09PD86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc4Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzg5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTY2Njc4ODo8Oz0+Ojs6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFREtQTjw5ODg2NTUzOTU2Njc2ODc5Pjo9Pjo8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk1NDc3NTY3OT06PT47PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNDY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDQ3Mzc4NTc2Njo9Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE4PDs2OjU2NTM0NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NjQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp6goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5aWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJycnJydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWl5eXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeSlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJqbm5ubm5mYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vri2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyampubm5qbmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+s6+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMj4+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouHiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz86PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhRSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg6OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxkY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGdiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFFAPzs6ODo4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3NpdGRpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87MzMfBw8fHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMvQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtoZ3VaZnJ3c3hmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLFyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3YmJgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lodG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZHRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8S/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFlYmFiY2NqYmZjWllZXFlRTkU9Ozg6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7q9v7m9urq0v7i1t7Ovu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDByr+xwr+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVZVU1lPU0tFOD82Ojo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wbu7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0tSSUxIQzk+OD07Njo7OjY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg9PDc7Ozo3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2dhXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcvGwsPLzsK8ub66ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW7trnEuLS8trq9wby7vra/wb+8v7rAy8LHyMC/vLzAxcLHy8jBw8DAycvCwLu7sLS8vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdWl5cWVFFRENNSUFEPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBw8O7ubO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypqKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG5pW19fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7K0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d25xYF9lXVtUSjw+P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3srKytLK3vrqztbK8ury2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdTkhBPz1IQ0ZNRD83NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq2tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsaawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqqvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybmNcZlhcXVJOTUE+SkJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKx77AuLm2srS2s7SvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdW2pUXVxPTUhERkxBRk1GODY2NTo1Oj04Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW+u7+/ubS0s7GxrrC5uba8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIP0hRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmura+ysrq6t7e1tby0r7Srtrq4wMTBu7a8vbiyrbOwr6yut7aytLSvqqSenJycnqion6CoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJuqqKqrnqWjm6OclZCMj4+Qk5CWlZaYn56empmml5OPkpadoqClo6akp6CipKOhoayrpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFFoVFBOR09NTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGwrq+yp6avo6+utcG6tbeyt7aytKuytK6qq6+wsrOtpZ6SmJSPmaCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsKOlp56gnJWTkI+RkZiQlpWYlp+Ym5mbo5mXlJWanaCdp6iloKOjoaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7REA9Mj83NDk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaOkrqWsrLS8t6yysa+xrbWvr7O1qqetrKOcmZSOkZaXmZmcoKOim52lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6ieo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZaal5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh6YGJSVV9ISUlLU1RJUlBMOD5CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6jqK6trKurr6qvqZ+XnqWenqWmpKCin6agoq6rrK21sramr7Srqaq0sbCwuK2noZydmpSYm5qRjpGVkYyPjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrbGxtKmxr6KZnJ2eoZibm5qYmZuUlZqWmJyloaCao6GanZmfpKKeoJ+ipp2bpaalpKSoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHV2c2iCbGVcU1pZTVFKTk5VTFJMQTc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho56doJ+joKKvrqyvsay2p62xraamsK6trLCnoJ+ioJeRlJyhnJmYkpOfnaKkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwqKuosrW3s7essbSjoJ2loKyhoaKgoJqYlpWfm5uYpKGgnqShoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1tWlJgSFFVSEZVVkpCTUc9Skg4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjpOemaidrp6nnpyhnZ6amZKZnpyioqCgnaKfn56fqaunrKmqtKurraulpauoqqyqpZ+emZKSlJiZlpaWjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oauiqaiyqauop6iamZ2aqqafmaegn5+nqKWknp2qoqKem5+ooKWnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imJybpJ+gm6Cco4mFhH52cW1pd21obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQURBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKagnp2dl5iWmZ6bnKSfn52knZqdnKSipKOiqq+sp6mjoKGsrq6qq6agnp6ho56enpudnJSTlZSenpiUhp2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK+nsa2xwra4wsbAyMrAyr+wubm9ucK+uLS7xcO8wru3s6myraqzta+zrqquo52rp7axrKKvpaCjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOioaSeppmboqSen5ubm5yHhYF7dHFra3VycGhXXFFFVEhESU9IPkVBM0VIOTU7PTY7PD88PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Qz9BQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpZ2Vm5ufmp6cn6Wmp52goKuxrqekpKOgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMHAxcjN0MjLw7K3tb6yvsW7vszNxczMzNLHvr/Awr3HxsK3w8nIwsDFvrm0ubq1urewtbKqurGuu7a+u7qqt62rqri6tLyurbiipaKep6Wio6mmmpufmJqdp6qnoKGhpJiUo5aUmZGcnZ+knqifnp+inZiZlJiUiIR9enJrZGlveGplWltGSkxERFNMREJENzo/OzU0OTk3OT0+PDw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PUE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlZqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkp+fkJafmZKalp2bmaOhr7OpoZqdnZ+fmpeYl5KMj5aXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3MyMnRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zT0NPTzMrCxcbGysfOv8nQy8bExsTBu8PAvr6+tb2zrb6/wsPGxMfErr64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURCQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6yen66mpbGqxcbMzs2/sMKppaitraqhnaOfnJ2aqZOZoZCOoJONlJKXmaSxsaukoJ2gm5mXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LU1dPTyMzHzc3J0szO083Ex8nKwcXLxsjIxb7Cs7PHxMvKys7Fyr++v7zBx8TMzMjJv8O/rbCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/enJ1dWdiZ3ZpZFZXUURNRkBJUUI9Qjw6MjNAPEQ8Nzk8Qj08PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo5+ko5+gpKyblqmWjZeNjI2XprCupZ2enaGloZ6blZSWlIp8d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dHX1tbS1s3U1tfU09HT1NTSz9HD0NPW19XW0svJztHLxs3SytLV1tnV19PW2M7Syc7RzM/QzNLPv8fGysPMzMvOz8XGx7a/yb/SzMvPxcnIv8PCyM7Mz9DPzMrHzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHdzdm9jYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU6NzY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopuppqKmq5qjsLGpqLXQ1Nfa0sfGy7S2wsaytqmipaahoqu1p5qxoZaVjJCmrauclZihnZuhop+cnZuVindpY2FfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTPz9XU1NHRzNHO09fW09XQz9LT0cnT0cjQ2NfY0dfS19nV1szOz8nN0cvOz7/FwsfFzs3Q0NHIy8zAysvF087LzsjEycbGyMzK09PR1c/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NDQ6PTUyNzU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr66qqqyepq64qKu32NTV2dnRztDAvMzJt8Cvp6upo6SxtrOktqqfnaGqqaGYlpiam52hnpqdnpR+cmVjYl9fYV9fYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvTzdXU0crPzNPW0tHWzdDV1dHG0dTK0dTV1s7S0NjY2NfLyM3DyM7Mycu/yL/Iyc3Nz8rQzc7Lzs7Hys/Qys7KwsnGyczKzNHSzNPR0M/Pyr3IubCtu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bua2JlbnBhV1xaSUZGRExXRTtAPDM0PD04Njg1NTs+QDw5PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PT9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snnri2tbWtpa2uvrSxwNnS19rc1s/Ny8PT0MLCsqutrqyms7G4q7G2qaOfnJaUl5uen5+dlJaXlYlsXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztTLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHTy8zQ0dPKztHV0tXVysDJwcXMwsjJwszCxcjJys7KzMzPzdPLxcfPzMfHysTGwMXJy83Q0cbPzs3NzM/Fx8C3ub3Dw73DubKzvrG8xMS1qpiloZmWkZWVkouUjZqRlJSPj5SCiYV4cHFrbmhgYHFoWFhoVk1HTElQUEI7RD47Njc6ODk6NTc9PUA7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc2Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfDucvV1tna29jNzM/J1tbFxLiytqqkrq24u8HFyaGXjo2YlpCTkpGWlpaQjHxlYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycXJycbGv8PGz87HxcfNytHIy87NxtHSz87M1MrHy87Px8fP0svQz8W6xL7GybzCxsjOxMLHwMbNx8PLycvPx8PDz8jGwcbHw77Ax8vLy87CysvIx8vPxMXHu8fDyMjCz8C9vL+wwcrHur2qsbKnpZ2inJiQm5CkmZeZkZWYiY+Cd250ZGxgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJuls7Gsyc3KyMS+vbrNzcbQ1dXZ2tvY0MrQ0NLUysW6vr6wqLeqxd3Wx7GRjo6WkIaDhISCfoWFf3RgW15eXmBeYGNkY19dXV5fYGBfW1pcYGtycm9va2xvb3240cjJys/LzcS6wMO7u7q6vsjGwsPAw8fKycjKx8HFzMbIy83JxMLLycLCy9DEy8i/ucG6xce9v8bPysO/w7rJx8i6x8bEysC9wcvGxcO9xby8v8PEy8TEvL/JwsXH0cXAyL/KysbIxtDDw8bDr8TLx8TKt7+8urSprKWlmJ+YrKOhpZqjoJuUe3ZzdGZqW2FubVpbWFFETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPHzc/OzdXQ1tnY2dDN1M7P0MvEuMbBtrW8r9jDdX2SjJOXh3uAhYaAdnh1cnBfWltdYGFiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbCsba6srKzsrHCvLy7ubjAwcHFvr25vb+5xMrFxsK9xsC4u8TJv8LJu7e6usXCvrzBzcLGvr21wL3DurzGu8K5s7zFw8LCtr+1tb6/usvDvLW6yLq/vcvDwcXCxsjGyMbQxsLMyLLHysPOzcHFwr+9srews6eoqLmxpa2wq62slHl2d2plaGBob2NWXllKRUpGSEtBRkJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc7P0snRxtbV1tjOzNDIzcjKxb7KwbK1urrTcFaOjoqLhXmAhoaAfoR8dHVkXFxdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rBuK6wsKeqraynuLS3tLOys7q1vbG3sLWvsrvCvMHEvL+7tbK6vsC4x7i0u7XAwry3vcbAw7u0rrK2ur6zxLe7tau4vL3AvbC6ta+2urLFvLauu7+0trTFvL7DxcDDxcbIy8bAxsa7yMu/z8rHw8bBw7fDvr22ub7Gv6y1urW3to54dHhnZ2Via25eVl5gRktISEpGQkNBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDNzsnLyczKy8bRz9PRz8jLxsrGxMC9z72zub29uVh/koaJiXt5foaGd3iCfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBtaGZqbW5yfKTHv7m4tbCsrKeeoqqnnquss62pq6mzrbawsqmupqyyvLq2w7m6urGqtbm7tMK6sL+wvby7tbvHucK2raqosLHAtbi8r7CnsbO0u7yrrbWlrrauurGwqrmvrbuuu7i7v7+9ucK/x8PFwbzGwcjLuMXHxb/Hw8O6xMbCu8XJzMuzucK8urKIcnZ2a2lhYmxoWVhXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/PD46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs/SzMTGwcXQyM/CxMfBxsbFxczEy8zCxMHIwbq8u8q3tLy9t613k4mPkHx5foqFenuEgXduXl1dXV1fYF9fZGNiY2NiYF9eW1taWl1aWlpaXWRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauuo6eiq6msqrCjpp+qrbW2sb25r7ivqK64tLS8uLO8rre5tLG7wbHBrqWpoqyxsrOnvKqrqKusrbS0pqiuoaSuqbKlp6iupai3rLCyt7m6u7G8vb6+xL+1wcHHyLe/wMW3xMK/u7/Ew77EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWlJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7rEsLawm5mVnJiqqbCxs7W9r8bR0M3EyLu7zMPMwLzKucDGwLzMusPHxbq9xL66t73Guba5u6+ykoSJjYF7foB+eHR/fHN3Zl9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSepJuXkaGjqqOin6Wlp6Ssn52bpKassq+2t6ewrKeqtKu0ubC2tKy2uLGvurmxt6Sfo5+nsaerqLmqpKanqKeyraCnpp6bpKasnp+npJ+gsa2trLK0srSwtby2u8HBsrq+w8GyubrCs8C9v7W4u72+vMLHxMLDvr/DoIN3cGthZV9rb2BVWV9ITmhPVEhFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzc4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbu+taCelZ6hprq2q7Ozu7PF0MnMw8e5uMnCzsG6y7m9yLu3yLu3xMazvsW8t7C5wLuxs7ewo4WHh4J9eXZ0b21rampxaV9gXVxcXV9gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXV5kY2JlZ2dnam1viJ2poJeVmqGWm6KYlY2eoaKmm5+fo6Whp56aopufqrCtsbWiqaqpq6yktbitt6+ssrSusrSusKqfnZ6jorKkpam4raGmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7KyubK9tLaxsbW0v7W9wL3Dwbq6vZeDenJrX2VeZGRYVFheSVddS1BHSUpGQTw/P0A7PzwwNDUzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmbpKbAsq+2rLS3xtDJycHHvLzFxdDAvMq7u8G7tsW4tcHBs8LEvK2qtbq3qLGzqYuGiIB5c25wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWltZWFdXV1dYWFhbXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaQnKGhqJ2bnKWmoaSbn6CamK2ura6yoKWiraunobWwsbGsp66yp7mzprWhop6ao6KtoqGptaqio6adpaajlpiel5ianZ+Zl52cnJusoaumo6Smrauzs6q0sLKqsrm0r6mvsrKyt7Otqayusbewura5vb+2srGUhXl1ZV5lXltZVlNaVUtbUUxJRUhLSUI9P0FBQEA6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vb+znaWjmKWxwrW2va20uMPNycjBxrjCwcjQusPGwLa8vbbDura/wbW7v7uqprG7saiyr5t9hYWAeXBxdHFoZmRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnaicmpqqpq+wq5ujo7eqoJ+uqLappqassKO3sKO2oKKbmJiqpqGbrLivoqGknKGfoJOVoZSWlpuYl5aXnJSfqZ2po6Gdo6qqsK6otKuqpq2ysKWqrrKxr7Curqenp7KusbSvvLS5tq6jlIF5dWReYVZZV1NSVEtNXkxQS0dHTEtFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp6np6Oqu8C9wLmutLjCzcjHxMW+x7rKzbXExcWxv8C5wMG6wMC5ur23qKixu6apoqWJgX54cmpscnRwaWhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtcWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKWmnpyfpJ+qr6afoqO2qKChoqizoaWnpK+lsKyrtJ6gnZWUqaGhlKyxsJ6iop2emJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpaukpbCnpaOrq62lqK6vrquoqqqzpaarr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFFHUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuyt6yepKett7u8wcW6sbm1xcrLwcTHx8m4yMa1xcLJr7q8wrzDwMG9vLe6tqansraeooqZh4B3b2RiZ2loZmhqZ2ptYF1cW1paWVpcXVxbXF5fXFpZW1lZWltXVVhXVFRXVVNUUlVgYF9gYV9gYWNkaYGUk4mRjpSSk5yUlZajmaCWnKCloa2lo6Oio6GbqqqlmZ6lsamgoJ2kqp2noZ6srKmorayioaGUl6ObnJCrqbCbn6KenpeYk4qeko2Sk5WPmJiSm6GinKSgoZWgoaSmm6OrpaKkqqOrrqSusammpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlVRRlFPSFpcT1JJVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Nzs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njo4NTk4OTg6OzlAOXu1tK20u7KwrLKtnaenr7m5s8DIurXAr8bJzrvCy83Jt8u/tMDHzLC2vci7wsfEvb+3urWlq7CunZqHjoN8dWlqam1oamxua2ttZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eX19fYmRtjo+EkYaPkY+Zk5SSnJqinJugp6iqp6qlqKSjmKSupJSZpa+pn5uYmqCerpmbqrOfpaaeoqOglJOblpWSqKmtmpygoaCalJCMmY6LkIySjJaUkJ2hoKOcm6KVm6CioJeiqKOiqKugq6+krbelo6OirK2pqKuvs7iyvbWzq6+Yg3JyaFtYWVNVUkVZTFBcWU1UT1BMUFJJTklCPD8/QT89NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqaivrZupqKy3tqy8yru2v6zMx8a5ws/QybXGvrq+xsu1sb3FvcPGxL3Bs7mvpquvq56XhoF3eG9uaW5ubnFnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/i5CKko2XkZeZoqCbn6qppq2qpq+ip5mfrKCVlqSop52Xj46Zna6Wl6eqmZ+dk6WgnZGQkpKSlaeqpJmZmp2dlo2Mi5SGiI2DkIuSlJCgnqCjl5WflZqgop2Tm6Wlp6iooLGwprC8p6CjrLSrraewtLC5tcCxrbGrkH1wcmJWVFVOUklHVlFTUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqaisKudqqepsrGktsa0ubqzy8a6vMPL0cyzubq+wMTHtrS3vbO7vMS+wrG0rrGusaycoohraG5vcm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/dYmOh5CJmImUlJebmZ2om5+qpKSqnKeYoKWbko+eopqXloSDkZqjj5OinJWVloehmpqTi46Kj5mjp5yVlZebkJKHlI6MgYuNgJCKkpKRoZqfoZWTmJiVoqWYjJmkpqimoaC0sqeyt6Gdoresqq2ksrKmtby1rKuxo4h4cm1dTlBRTE9DTk5OUEtGTk5LSk5NUUlNSkFHS0hIQz44NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKmloKmlpLOqorLDtbWys8fHuLvEys3Hta+8v7i8xLOzrrairbXEuruvqqy0r6+gl6h9XmBnc3F2cWpuaWZoaGpfWFlYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWWFhZWFtdYW9zdnGFiIKHgJGDjoqUkZOdoI6am6Kgo5iklqGblY2HmJqMc42CfY2WloWQmZCTjY56mI6cjIKKf4mYn6KekJOYloSOgpN+fnSJjnqQhpKQkJ2amZqQlY+djqKjjomaoKGko5uitK+sr6yfmKW5pqWwobCunLC7qqmvqpmBdnJiVkxRT1BNQ1NOTFFNQ1BQSElOU01ISkpESkxFSks9NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd3t6KjtKilpaijpqWmpqazp6W0wLiwtLDKxrm6ws/Hv7WvvcOvsceyraeslaSuv7ixsJ+nra2rlpWicldWX2hnaWhpbmNqaGdiXFhYWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeKk5Cel5yVlJaUjpaJf5OJXztXb3uLk4l/i5GMj4WGcoqEloF5gnqFk52Ug5WOkI+Chn2SeHFvhY1+iYCQjY+XmZiTio+InIiel4eHlp6aoaCXp6+oramon5ettKKmrZisq5intKKpraOSfXFtX1pOU1FWTERUSlBNTEZPT0pGTFFNS1BKSU1QRklIPTc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5eLego66hpqaqoKepp6KpsKintMG5sbWwycO5tL/PwLqxsbjEq67Jrqejnoaborqtp6iWpqWkoZePlmlRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXuCdFBCQH+VkZF9iZSMhIqNmoyWlYqSiIaVhnmIf2BKUW54ipGEfISMiYR/f25+f5R3dXZ4hI2ZcFGNiIqGe354lHZnd4WIfoqIlYqNkJKWi4OJh5SEmoyBhJKblp6clKSjp6mlo56bsKuhpKSQpqqWoaqcoqaoiHRrZV1bSFFRU0xJVU1TSUxMUElIRktPTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj03Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXa2nKOnnZ+hrqGnqKWnqK+sqra8tri2s8K8t6i6ybm3qaq3uK22wKqim5ODj5myn6KajaCWmZSQioxkTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+GgXuFjJKBkpmLj3uGj391f3hzbnVwdI2NgXl9iaqFeXpodnuOcHJteICKjJJ4eoB7gHZzcpJ3Z3WEhISEepWJiIqMi4B/hIqMf5SDe4CPmJSblZGfnaien6CeoKmln52YjKekk6Cglp2epH9xZ2BcXEpWT1FHS1hST0pMTVJKSkpNUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLi8yMDAvLSsoKCkuMTI2MjE5ODc5ODc3Njo8PDd2rpijoZicnrOpr6mlrKywsaq9tLK8uLa6tbKgt7uzq52fraustbOlnpaSmIaUpJadjIOXiY+JhYWCZEtJSklHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhYWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gXZ4f4mPfISYkoFyh498dntva36tfHOQin97hpKAfX90ZnZ8hWxvaHN8iYyHgGx5cX1wbXWPcWhxgH2OcEOKhIKDhX53d3qLhX2LenV+jpKPmIqSmpujl5mdm52eop2WjYqkm4+dl46WmI51bWtlYVlXWFRRSlJVVE9QTlFWS05LTk9KUU9JT09LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn56WoKavrK6rp6mwr7GsvLisu765s62om7GorZyQl56nrKekm52TiJZ+jpWSlYB8inqFgH5+f2JKR0hGQkBDRElMTE1RUlBRU1VUVFVWV1dXWFdZWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hvfHmIj3l8i4VvbYyReHN4amp/gnKWkYuBfZZ/SZKYbmh3foFsaWNseYWQkoZrc2x8bnJ7hmhtcH5zjYiDhXp9fnt2b3R0hYJ5gXdwfI6MipODlpeYmpCTlpeZl56XjIOJn5GKkoyGkJZ9bGhtbm1XVVdUUVFZT1NVVFRYVU1OSE1KTU5LQ0lOR0VAOjg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6kra+iraqota+urLS/q7zCv6ajmpWlmJ6OhYyWoqSbmpSXj3aRfoWLkI98eH50fXh0d3lkT0VHREA8Pj5BRkdHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpyQZlvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4h1gYiGdGyZkXRze2prnY5MeYSSiYSOZzF2hnNsfn2DdGZldH6EhIWAZmlsdWtwf3xncHB7bpKNjntzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlY+XjoB5iJeIhomGf5CHdWlpbmdjV1FZV1hZW01QVVZaWU5JSUVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LSs1Nzc1NDc4aU84OzVukoiZkZqWpKitnrKeprquq7KwwrK7w8ebl4+UmYuOhnqFkZqWj5KOkol0ioR3i4+Mf3Z3dXh2b3hyaFVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bXGDgYWBeYSGhnlyoJR0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8h3xzjK2NiIBoZmJpbnJtcIN1aW9YdW+OmpF2bH96fG1xbXB/enN1bWJ2hH+GgIWQkYqLiZGLkYyLj4N1eIuPgH6CgH2PeHBubmpeWltdW1lYYF9TTltaWVhMSEpGSkc/Q0FCRz9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW0qK2xrsGzusHGl5CMlJCBiX1ugpGTioSLiJCIdoSFb5iKjH95e3txe3R8a29fSlBHPkA3NDU4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8fYWDf4x+dqKZeX6GgISZhZucYYaqn52LgpCNenaJfomIjnOKl4+De1xkcXR6e3eKbGdpYXhvhY+Cem6Bd3OEenBzeXdrbmldd4d9h3yIh4+Ai5OXg42GjYZ9cYR/hHx1d3t9iHRtcXJkZV5aWl1TW2ZeWFFVWVxWR0tLRUxHP0ZAREM/QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMd4l/lIyRnZ2fppGgqp+wqa/AsbvGupaPkZSIeoZ2a4CMkoN+i4WQjXmEgnWiho1+foKAc4OBfWt6bFNYTEFFMzExMjY2Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiXuJeXtxfI+Me3yJhn6Xh3ahmYiHj5KUpY2sqUiGra+vioCAk4qCi4KEkaiHgJiYipxzbHyBhod9jmhnZ3h+boWGgYVxhIZHa4B3cXl2aG1rX3d9g4h/iIWMepWenIqLiZF/e3WLdnx3bW93fn1xcXBqWltbWmNiV2dlXFVQUVhaUURMTEdPSUNGQ0NBQENBPTk4ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NzU2NzY4O0RGTE1NTEM3KyImJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFh5GPlpiSl6CdrKGmuK+zvbSXjZKLmIt9dHB/ipN/fo2DlJV9hn+HpYeJgIOIhnmJi4B1hXlfY1ZMQzYwLi8yMjEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiZGBmpaCoKGYlZuapa2Tmbuxp7vHw6eKjKGljpOJgZB7coOen5GcfnaFhYuPh5BpaG+DgHSMhoSLcYaCd4d/e3aFfW52dWeBlI+GiYiIiYiiq6OWiY6YgHuCiXp6b2dreH13fHFpY1xZWVxoXGFmX1pPTE5YU1FJUEtETkdDSkRDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnZwZ3iDe4CMgIGQj4uamqScoaymq6+wl5KRhKGUhHh3gI2UfX+ShpOWfoqBkpuOhIGCjIuCio6EgIqAbXBqXkNBNC0tLy8vLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6ChkqOppaOsk6i2oqfBwq7Ir3i6lJp8jKGemISThYKPoZ6TmZKEioWPmJCWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGXh5OJj4+Xpbapm42VooOHk4R+f2tqbH1+fX9xX1tiXllmalxsa19YS0hQU1FOTUxGSVFERE5GQkNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwg3B1h3F2kYZ+l5aalJ+fm6egqpaTmJ5oZqSafoWTknqBkomSkn2LhZmSkYOBgYuOiYaRh4SIhXh4f2hOUj4vLy4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMm3yNHPvpugcGmrqZ+Ek5KFnKCampmnkZGIlaGZmnd6fpSXkaGSlpeBlJ57dpWSq7OJjZegfZWenI6Tlpqko6e2sJ2RmaiIl5COgYhsc3N7fHluZl5bX15hZ2NfZ2dcUkVLS1FPSUpNRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTQ2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYzQUBpYl5QcXVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mImI15go2Ljo18ioaPkI6Bg4CJjImFk4WChomBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49RkhAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKiptayxt7Kyrbuxs76cs8Ssu8nLuMO/t6WjsLKsraqji5aYhaWmoKKYgqaZjaKqp6SHhZOjoKCqoKSpjpyxi5Wjp7e7nKGjsJOjnaOekaSiq7Cts7WilaaqiZqKk4qVent+g3tlXmZaY2BdYmJeZmdfW09ESUhUT0ZITEZLR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo1NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGUhYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMj4uKe4iDh5GOg4WBjIaFiJKGgoSJhoeHh3FuYUBFNjQ8My8xMTAtLCstMS8tND9EQU5WUVJTVVVXVU1cUUdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHxKuzxbattMCzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsLGbmZKan4mnr6qklXefpJehq7GzmJapraiutbuyuqyvtaKxrLK1vLi0rrWgqKijqJupsK2zuri4qJy4qY2lj5KToId5gYByV19iVWRgYGFeX2ZgW1VKREVMVlFJSkpFSkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxcWlFjZFd6dXGBlX2EhpN2hn6AjXu/u6O8grSUk46bj4SIj5OKiXqHgYyTjYeFgY6AgYqPhoCGiIWKh5F6eW5dV0BFTjw2OjQ2QUI3NjQvLzZDSENRXE9RVVhVXFdPX1VJS0pBQD9HS0ZGRDs+QDdENz9CSkpFR1dUUF6PpK2ksrTDtrjBzMq2u8S9s7TBt7jCtb+wuHSxtKa6xaSwxrmxs7K0qKS2tqqxoKKWm6KSpbGtpa2sp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6t7+4uri6ra2xprGqrr6wvbzDw6yZu6iVro+YmauJfoB5aFVhX1ZoY2hkVltjWVZUSkdHTFJHRElKQUlEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVZad2pwf4+EgY6Fb3tyeIhiuaGZo4mVlJaTlJSOkJeSh4d7h4GOloqBhIGKenyLiIZ8ioKBi4SVfXh6dWZPXGRHRUw6UWRgW15TRj87SFBEWmNRUVlZWmdaU2BhTVNPRUE/SUpIRUZBQEM9RTZCP0hHS01TWlRelK+4tbu5ycC7vcrNvLzBvLi2vLu3vrW6s8ZhdbKlsZqeq76qpairqqSisrWgq6eelZaemJ+upaenpZ+kk6KnsLOosrK8tsG908nJ08bCxczCysTAvr6/vLy4tLC5t7fDusa+xMmwnrqroqyPpam3iYB8blxeXlxVX11nZlNZYVZSVklFRk5LQT5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtLC9QPiguNDiAfTwyS4hxOT5DS0VASk1QUkxRXWhtbHGPjYaQc2xycnSI1cC1mqCNlZmZkY6XkpaWjoaIfYeDjZaKfoJ/g3l7i4SHe4t5gYqCl390fXpsZXB2WV1cUGVlYmBlZF1bWFhcTWRtVVJtbl9vX1hnZVVZVEtEQktLSEZISEhIQkk5REBIS1RUVl1aXJO5wLm+uMbBu7nKy7u2ura4ubS4tbWutreZZHWpnq1wXqKtnJihopuknqullJ+fkJSOlpiXqJ6mn5+amYOjnaykqrGtt7C8uNTQztbPyczSzM/OysfAv8LKvcG9wsDFxMbKwMnPtKS8sbWwnKy5vZp9dmlbXFlXW19YYWJRXGFUUkxDQkZHRTxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LiYqKigtLjAsQE0rLzU0bYlJMEiJdD8+QkRAQ0RHS09EUlxaaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQi4l8gYRze4qDhXuKdIGKh5V/dHt5bG11fGlzZWlsaGZqaWhgZmlpbVptdJetpL2Ih2dbb2hdWllUSEtPUEpLUEtUUUhMQUpGS1BfX2JnamKXt8ewurS7vraxxce2sLmxsbuts7Goq7itjbaonpynmk6anoyPoJaRp5illYqTk4iRiY+Rkp2boZiblZaHnpmmmqywqK+ns7PT1NTW0cvP09TO08/MxsPK0L/KycvJ0sjNzsPQ0riwxL3Euqa3u8Sif2thWlpbVl5WWWNZUF1YT1JDQklFQ0k7QUQ+Qkg/QEI4O0Q+QEk9NTY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CRmYNocm95eYOhqp6ml4ybm5iLjpWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfnF5dWxweH9ye254c2xpgHBtY2lucHlpd31+y7/D36duY3huZFthYEtQUlVOWV5QXl1OUU5UUVVUXG5ud4Nylq64rLWosLarrb3Bsqu1pqW5p6yvoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSLg5SVl5eUm5CcmJmZnp6rrKSnoqysztLV0c3M0tPT0NTRzsjD1NHIztLT09fN0tHF0tbGwc/IyMOpv7jQnHZrYlpfW1ReUVxZT1BUUE5JPkFHQkNGPUFCP0ZFPkA/Oj09PDxKQjQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bHdwfX6AoJ6eoYyNmZOUi4yTj5aFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBvd3Nsc318d3xzgnhxa4Bycmlwcnp5cnu+y5p/jbKEdnKFd2lhaV1EWlpbV2ZkWGVrVFhdXWBjXmN4e3+LgZmqpKSioKGppqqxuaumtKOirqKkrqKnsZ+JppuVk5GKko+IgpSJa5WijZmEgYZ+kYODk5esi5WOlZqOhZKQnZensKKgoaWkqMjNz8fCy9DT0dTSztPNxtbTzdTY1tbY1dfVytTazcrY1tHLrcTDy4hvbF9cXFZSV1JaT0pHSUpKQDs6O0VCRD1DRD5IQz9DQjs8OTw6R0M0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKKgJ2VnpSFi5aJj4qJjoiPgHiElJmLjYiIi4l+g3hzfH2Eh3eAe4eRl4GEb3hxbXV/dnh9dIZ8eWyHdnRufXaFdXl7nbWMPEGLxqV+jX1qZVdJQ2VjZmNoamRveVtfZmhrbmlugYSJkYyen6CekZeZoKOkprKkpbKgoqWfoqmhorGch5+SkpORi4+Lh4SPhH6cnIyNgoSFepR/gqqWo4ySi5iTi32XipqRqrOYm5ynnKa9w8W5tsXN0dDS0MvSy8nUztHV2tfX2NTZ2M3Y287J2trS1r/MzbR1c2thWldQU1BYVUVHSklGRT06NzpAQkM6SEVARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MiooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qz48OVFFQ0pUbG5vcGJxcXSGjX2XkZ6LfoeSgomGhYqCiH14hZeXiY+Dh4aHeoR5cXt7hYZ1eoaOjp16jXB9cHB6gHJ7gXKEh4Bujnp1d319gnV/fIeJsHRZqsK3jZKBcG5jPV5ocnBxcG53d4JlaW9ydnhye4yHj5OSm5agloiMk5yfm5+roKGsnKKamqCmn5+smYyajZGTjoV9iIeDhYuOoJmTiIOHfmyZeYSZh4iTjI6VjIZ7m4iTjq2qlJWXn5imrrW8qK29x8vIycvLz8nE0srU19jX2NfU29fT2dvWz9va0tbJ1cyTdXdlZFhXTlFSW0dDRklIPkI+PTg6PkA8Pkg9QEJBQUVBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEI8OjlEP0NHUmtfbWRiZmx2gIhxkZCbgHmAjn6CgYKFf4R8fYSYjoeMf4aHgXeDeW57e4eCdHqSno6hdo92g3R1gX50gIRvgZCCb5KFdXyBhXp2h3yJuMalw8q4gpacj3hwZk5lY4J6gneFoZCLeXp3e4SAfIR1bZSWlZaQmJGDiY+XmpeXpp2YoJefk5KXo56aq5aRkYuNk4OMhYmJgYaPkZ6cmYiFi4GFl3qIiZ+XkImOiouCfKGJkIu8oJiTl5qcqKalrZ6ntb+/v7jGyc3Oxc3K0dbV1NnV19vU19na29fb2tnYztvGg3Z2ZGZhXVJVVFRNS0RNQzs9PDw5Ojw/OT1BNz4/QD0/Pj05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTY3SEg9REpFNzkyNTtIPjs5OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVxpdHp5bImNknd2eot8foB/gH6Fe36CkYqFhnuFiHx1fnVtfH2HfnR/kp2Rn4OSfId+eI9+eYuKb4ObgXSZhn2CioV8fpF7kKmPkMOgvYybpJx+ioV9iXOMi39zppqcmJSFe4+RiYRpR3GhpJ6MjJGShYiLkJKVj52bk5SRl42MlZ+dlKGVk46OkIx/kI+Oi4SJkpaZn5+IjJSRnZCCjH+mmYiFjoOGhIClhoqLuJedkZSWoaagnZ2do662ubSrwMbK0MjHzc/T0tLY0tXXwNfY2dvY2trZ2dfbtnZ1dGdmYlRdWVJOTkhDTEM9PT45OTs6OTk8PTZAPj89PTk6OjszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdPPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PERSU1JYX1ZYZm1tbWmBjopxc3mKe3uAfH98iHt9fIuHg351hIZ6c3pzbYF+hX53hpuhm56UkoCMiH+Yh4Cckm6IqYV7oIx8kY6DiYScfpuRio2jop+RpK+gi5GLhYuBk4ZXcq2Ln6ubkIOZnJCPjluDopGCjZ+TlIyGiIySkoyUlZWQjI+KiJabnY+VlpKMk5SGgIyJko6Kip2XmKOihpOdlaCLiomOnZCDiI+Ag4eFpYWLkLKYnJKUl6GgnpmSm52nsrispb3Cx83Ixs/M0MzO18/R1K7W1dja2Nra19bZ2p1seXFjY1paVVFVVkNASUM/Pz46NDg6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieGxifpGDb254i3h6f3uBfYd8fHeGhYBzcIWCe3V3dnSFg4V9f5Kmop+mopeKnZCUl4uKqJdyirKNhKiShJmUhZqMo5agmJOJm56ik6mwoJGVkY6OiJaMb423hJrEyLKcoqacnJiWkbGQZKTNx5WOhoeJkJKNjZOVioWKioaWmZuPkJSTh5WYhICPi5mIjpCrl5eko4iZnpaaiI+Hl5iKhY+NgX+Hj6WIjZOomZeTlpihmJ+Zk5yaorK0paO8wb7HxsXJyMnCytPMzdSo0tHW1tbY2tTT2s5/b3tkYFtbW01IU1lCQUdEO0I+ODM3Ozw6OT42NDo6PDo3Mj86OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGOfXxtfoh4en57goKDf3d2gYN8bW+Lf3t9eHh8hIeKfouis6ejq7Oil6efpaSWla6ig5G4lZKzmoyhoYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmpehwI6jybirnKOmrZiSm52ynYWGqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIuUk4eUmIaEkZCcdZGZspWWpKGHnJmSkIuQipebiYuWjoZ9jJieiZCQnJqak5iXn5OgnZSem6CxrqKjt760xcfEvcPDwMbNysnTps7M09LR1tjT0Ni6b3ZyWV5TXVROR0lNREFDRDU+Ojc3Oj88PDc9NDI2Njk3NzQ+NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdNWlxZSmZgO0iEi3p6boWGenyEeIGGgX5weHx+fW9zjXp+gnx4houJhoSSprusqLG9sKWts7Ooo6KwrIqatZ2juKWVraWXqa24p6Sjn5qpmKqkrrCqmpmdlJaRl6CYmru7rsqhara4q7CUmZ+jrJOXvqNeqrKDioqNlIeQfI6OfYOGjo+UlYiIk5aMkJWNi42WmJOdmbSWlaudipyUkY6RkoyYm4qSnpCLiZafoY2UjZiZnZKbmJ6UoaCUnJ2lr6ihpLO4rMLIxLa6vbzFx8fC0aDGyc3NxdfW0cvTn213ZVlXUFtPTkVDPjxCQUI4QDg4NT9HPTw1PDM1MzQ1NDU0QjQ5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRIYmBicEpAi4p+gHOGh32CiHWDioJ/bn18fX9wd4d3joKHfI2PjIaMmanCwK+9xruztMC9tK2rs7aMqLKurb6rm7ulp625uKumpqKipKOpr7Kxqp2cpZmbmJefoqalkqS6r6nAvK2usrmlpKh+iIacrb2wgouMi5CDjoORj3qBiJCNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpePkaCRiZSbpKyUlo+TnJ2ToJ2bmJ+hlJqep6akoqOwsqbBxsOvsLq3xcTDv82mx8THxL3W0M3EyoVwb15ZV1xYTEpBS0FGRz9BQEM7OjQ+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVONzlHRD9DRlxlRmBpZ1pdXJOMjIl7h4yHg4x1h5GKgW9+e4J/cX6Be5V6kpSUmJCTlqezxsm/wczCw7nHvbuvq7m7mLO3urLBrqXApKuvvL2qrqujo56nq661sKqcoKucoZyWn6+1p4ujurq2wbysqZ2zpaSolIWOqcTDpIKLj4eIhIaVlI15g42Rj5GhjIyUko6Jl5+Yk5mVl6agr5yMq5yNlo+RkZWVjpGVko+glIaXn6CynpSZk5+gmKSemp+boJSYnqWkpqakr62lwMTDrqi3tsnDvrbPssS/xLyz0crIwrRxdWlZVVlnUUxIQkxLTEpBQT5ERDw1QUU7OzM9OEIzMzIyNjJBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWk1lXGZUYmuZjZaKjIiTkIaJeYeUkIFygHuNf3iHgoKQeo2hlqiZmpm6vcfIycHSycvCzL3Cs628vqi6wL67xLeswamss7y+qrCqpKWkrK6zrba1oZ+vn6WimKOzvaqbqL3BpLa4r6yUsqysrJeHmqmmpZGCjJOlloqBdYqSeYWOkpCeoJOPk4yPjZSjmZaclZSjnqqekaWajI+Pj5WWiHyPlZOSo5qVn6KctaWQnpako6GlnZ2mmJ2Vl5qko6mnorKsqLvAw6+ls7fMv7mvxLO7vsG4rMLDwsCXanZeVVRZWEpKTElGRERIQ0NBREw6NERJOjs0PDhFLjEyMjQyQjI2U0hPPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+aUhfWGJaY2NWno+cjpeOnpKJin+KoJOEeIV/ln9+kIiKkYCWoZmup6SYwr3Hw8fF087Ozcu8wrewury0vcu8w8K2t7yts7+6va6vqKCpqLatrqmyt5qeraOnoZ2rt7iqpbC/xLK9ubSoq7a0rq6XlqWsqJ+RjZKyxaeWjnySlXyHkpmPqpmYk5OPkpWTpJ2TnZmToaOinJifmIuMj46diFqQl5eSl6SZZZiin7OllaGVq6upppueppaYlpiUoKSopZ+2q6m5u8O0pbS1y8C4qrarsru4rqi4ur24gGhrV1RSU01FSVJNSz9BSEVFSUhIOTVFTTs+OD1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs+QEJGQnBFaklSZWFMRqWUnJeil6mWjJGDiKaTiIKHgpyEg5WQkJSPmqKer76voca8xMTGxs7PztLKv7u2sbq7u77PtsS9uLm3s7G1s7izq6ecq6y5qqmnr7CYo6+lp6OltcCwrKy0v8O6wLq0p7q2ubSvlqWtr66ki5OUoY10wpp9l5mEjpeZjLGVm5qVkpKZmaWjlaCbl5qpnZugoJmKjY+VnGBKlpyalJqlllSWr5+vnJ+klK6tqqSaoKWTk5iYjZygp6KatKiqs7u7u6qxssfAuaasq62ysqOhsrK0pG1qYllXTU9KRE9PUFI7R0tJR0lDQz46S1U/QTo9RU0wNzU0NDpCNDRNV087SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiqlpmgoqivmZGXh4uolo6Ik4Wgh4Sdl4+doZqjpLXJtanFucLDyMrJyM3Nxr+7s665ucHBzLXHusG5tbqwr6+ztaekm6q0tKqppq2smqSupaSorLu/qKy2t7/Bv765s7LEsrm+raOvtay5poibl6abdr+fhJmdjpOamoyul6GcnJeUm6ChqJ6on5maqpqhp56YkI2RnYNudpKimpWdop2RrrKjqpSoqpepraOinqSnkZGZnIeUnaKelrGmqau5tr2ysq6+ubago6eopaacm62pqYtgYl5dTkpLRkdNSlZMPU1FTktMQkNEPFFWPUFBQkRPMTg9NzY/Qjc1VVhPP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH5lXkhFq5Wbop+7r5mUoIyTq5uRkpOJq42GoZ6Mo62Uo6O2xr60wLnCwsfJxcLNyMK+ubKvubTAwsq1xrLCvLW6qqitrbCjo5iqtLumqaarqp2pr6ejqqu9u6itvbW4vse8t7a4wrK+wbWqtbervqWPo5iSoqC8n4maoJmXn56Pt5+pnKWim5yhmqiks6CbnaacqKqemJWPlJuLlomMpKGUnaKdoLSvpaSSr6uZqqqcnKOiqJCUlJ+Cj56em5WppKGhs7S6tK2otbKznpyjpZqXlZiqoZ51XVpdW0hHRUZMUUlNRUdHQlNMSkJFR0FWU0NIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoFkVDQ5LTE5ZlxGQ0OdcGJHRaeXo5+ew62cl6WYmqqclpqaj6qWlaemla2smKKrtsPDvL62wcLAx8S/zca7vbmysLmzv8LHtb+wvLe5tqakq6utoKGZqqrEoqSprKaerK+roqmpvrinrb+yuLfHtrW5uMCzwMK4tbO0r76jl6OXlJyUrp+QoqOlo6OgkL2lqZ2pq52doZulnr2hmaOfoqmsoZ2XjZWek56Hj4SNk5+koJ61rKaclbCmma+lnJmonJ6MmJSeg46gmZuSpaSal6uxtbGqpaqurJuYoKCSj5CVqJ6UZV9XX1tNSEdKTkxIRURJQT5RSUE8R0lJXFJPSz1IT1U0QkY5PkhHNUNhW0tCTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW1SRjxLeGVhVkuimqOcnsWsoZ6sn56uoJKjn5akoKaprJi2saKqs7bFxL2/tcDCu8jCvsrHtbi1tLGztLfBxba+sbi1ubSfp6yqrJ2enqWkwaWfqq2gpKmtr6GmqL21prG9ube2xLK0uLq/tMTBubmvs7W1o52llZKUoa6gmaKeqaiso5rCrKmerK6bm56ZpqC9oZ2kmKusrKaimo2an5KeiY5Xf5afpaGguKqnk5i0op6xn56ZrpWdjZiTnIGOn5eVjaGjlZClrbKqqaKipaWVlZ2Yi4+RkqSeiV9iWGJfS0dKSk5GRUFHSz89SkI5OUpLTl5RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtNnp6hmZ/EqKWhtKKds6eTq6Wgo5+sqaydu7CorLaxx8XBwrLDw73GxLzEybyvsLatsLSvvsS0ubGwurSsmaixqaqanaWhp8Ktm6yxm6qjrrCppam8tqe3u76vt8Sts7PDwLTHtLu4rLS2raqippaVlaSsop+gm6eqsK+vu7GmoKmpmpmYk6KjuKCho5KvsKylp5+SoZ6Vno+QjZWem6Kep7SnpoyXspuirZmcmqyPnZKVkpl/kaCVjo2foJOLpquvpKainKCekZGak4WLkY2bnX9fY1lmZElITEpTQkNASUg7O0Y/OTlPTlZeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwyNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ6jn5ygw6mkqrOipLWqlrOsp6GksqyuqbuyrbG1tMbAxMK0wMS+ycS1v8jBtKu1qK+4rL/Ds7eurba4pZiqsqurmJ+ml627tJuosJqsoK20sqirubKourS5s7jAqreyxL21x6i/r662tamnrKGYl5KmpaKimJilrriusrW2oJ+ppJqVlpSkoLeipaWWr7Kyp6qmop6ampuVl6ifoJihnq+yoqaMl62YpKuWmJ2ij5qMkpaYhZWek4uQm52TiqipqqGnoZielYuOmY+BhZSIk553YmdbamlMT05OVD5DQU5DOjpJPzc3Uk9dX1JWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDEtLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJb2hVQ1dGjHlmQzujo52hpr+np6+xoqm2q566sayjq7S2sbC5t7C3uLjEvcPHvb3EwsbAuMDGwLmptqSsu63Awbe3qq2yuqKUrbGtspakp5GquaqfprCcq6CvtLOrqba2rbyttLO5t6y4scO7v7+mxKuxt6+oq6unnpiZq6GioZGYobGvs6ywuZqbqaCal5OYp6C2qaajorGxtKyzqKyfnKCgm56lnKKXnaOzr5ufkJOkmZ+omZOhnZOWiJOWkpWWnJKIkJqYlI6pqKafo5yXm5KFjpmLfYuVhI2ZaWdrYGxtV1BRW1VBQkVUQDs7SUE3OlhQZF5QV1dFWV9eTUxSTl5LSj5ZY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEtLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9p5+doqm9oqqwrKSyuaqmtrSsoK21va+zuLu6vre2wMK/ycS5xMLAv7fDvcC3rrWnq7exu72+tKmusbaelquup66XpqiOp7ufpayznquisbCzrKm2tLW+rrGytaywtLPBu8a3rL2wsbisrKqjsqaepaqgpJeRmp+zqrOrq7OanaecmpWOoaaktK6ooa2urrGotK2yqqScn6iknpWimZuotamXmZKSnZmdn52QqpyVloSUloqdmJuTio2WlpqWpqWjn52WlZeSf4+UhXuNkoKLlWRrcWZvcV5GWWdWREJNWERaOUhCNj5dUWhcT1ldR1teXU9NUlhkSkpCXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVVxnSzaMemZMQKSaoaWtt6Wsqqavrreqr7W7p6axt8W3sba9wcO1tbrEvszGucPAub65w7jAuLK0q6m6trq5vrSprbC1l5inrKmsm6urjqu+nqyusqOroLGus66ttbK5uKqurrGota+1u7zKs6q3tbG0r66mobSgm6itoKaWlpuasqOtoKavl6GkmpqTjqOlqLOqoaazraq1pa+yta+kmZ2sp5qYn5qZq7ejl5OQjpecoJeWk6qempF/kpeMnZuYlZCKlJKemaWioqCYlpKTlXqLj4V7jIqCipFqbXdtdXthRmFrWUlHWlo9e0pGRDZBYlRpW01cYUtcXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVF9UXy81KENfUVwuK0IvSkdQW0czY1lUS0SZl6GxqbKqrKakr662qbe1uqSstLfJu7S7ur+/tLO3w8DMyLzDvLa9vr+3vryxvK2nurm3tcK2qq2xt5SWpq6rqKOwqZSvu6StsbOnqKOytbGxsLWxuLSpr6yyp7evt7TExreptrassK2pp6O2oKCnsaGklZyalbGep5ygqo6po56blpimpqW4qKOytayosaeusbWspZmgrKibnJ6clKm4nJSOjoqXm6KXj5ekoJyTgpCUj5ybl5aViJaQmJqnnKSgkZaRkJV2hI+He4SBg4uKbG92dHt+XExmbVxKTmNcPmJ7R0k4R2dXZlxMXmJNWFlXVVdUaV1PT0hgXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOR2YyNydHYkxWJS1CLj1FTFE8M3JrSUNDkZmlr6Wur6uopbGztKu3srihq7W5ybmtwbvCuLOxtcLCzsXAwb20vb++ur68ssOnqbmwtbW/vK6ssrGboKexraamr6WdsrWtq7GyrKmotbustLK1rbStqqyorKm4rbKwyMC5pbqwqayspaiusaalo6+kqZyenZuwmqOjo6ORrZ+koKCiq6anuaWstralq6yprbC2rqKeo6mqm6Cbm5KktJmOio2HkKGglIyUnJ+SkIONkpKcmpeVlIeXkpWZp5ufnoySkY2Qdn2NhXx7fIWIiHBycX18fVxTZG9eTlhmXEZElltHO05tWGJbTGBiTlZXVldUWGddUVJMY1lbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvKzEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISis6SD4zQkhTLD6QaztHSI+cqquiqrGkqaWztbK1trKyoauuvcy6rcC6x7G0rbTBw9HFxr7Asr7Awru+t7vEpqy2q7K3u8Cvq7Gsn6OnramopLCjqrKqsKywr7Cuq7O9p7awsqmzqqulpaOtuq2qssO6tq27qamnrKmnsaWqpKOuqqiin5yjrZWlnpiemaydoqepoq2mpK2ruLOyoqqioKyvsayeoKenqZmjmZmPoKaXhoSOioueoI6KjJWajo2EhY+Un5yUl5WGlpSTl6SbnJyKkpCNiX9+h4V8dn6Fg4VycXCIdWtfWmBuYlFycFxLO4R8Rj9YdVhgWk5kW05WVlVXUVxhXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE7XEowLkpnREY4O0IwNUVLWDFAlVk9TEWVmK2ooquznKqqsLetuLavq6arq73JvLC9tsKvsauzw8POz8O+v7TAwcO5v7PHw6qutq2yuL6+sq2tqqSnqrCop6ixpbSuq7GvrrKxtKy0vKS3s6ysr6irn6OesLerqq26t6W3tqSqp6uqqq2hqaemsbKkp6WhoayXqqGVm6CmnqWiq6Sto5+nsbiurqSmo5uqq66pnaKlpKSYn5uWj5ickoGCkImEnJ+Lio6LmI2OiYKLl6KbkJCbjJOSkZOjmZuZio6Li32GgYGDenN/gn98cnWLpId4a19gbmZXZIZjTj9nk0xFYnlXYlhSZVRNVlVWVE9cXWFVS05oVlZWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlZaLjBKZ0FBPDxCKzpKT140RIY9R0ZEl5OwpqOrsZirqq22rLayrKasqqm8wMC3uLK7taWyr8PJy9G/wLu5v77BuMG5wMSssbSxs7q/vbKwrqyqq6i2qaaur6q5sKiysq+zrbequLimtLarrKWpqpyjnrOzqaiktLSgt66gqqiqqKunoKusqbm1qqqpqaKqoK2bkqqhnaCloqajqp+dp7Svqaero6OYpaenqpyipKOgmZigkY6PmI1+h42HhJ2dhoOJiY6NjouChZSimo2NmpGSkY+Tn5eYloyKg390hoF/gHh0gn54dn2Ah52Pb3JnZnB3XGByh2pPXplWSG55VWRWUWNPTVZUVVBPWFtiVUhPaVRWU0dQWVVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EPJaOsaKmq6+arKWtsLS1sKymsKqour67wLCtua6htq/Ix8jRwL69u7vBvbrCv76/rbGxsbW8u8KxsbOqs6mktKilrbOzubCjrriysLO7rLqwqq62rKqfqqyfo6C2ramhn7CzorWqnqinqaOqoaKsrai9r6yuraKoqJ+smZCwoZiioaion6icmaqxqqOgrqKhlKOjo6eYmqilmJeYno+Kh5SIfY2GhISjloSBgYqGjoyQg4OTn5aIkZyQk5GNkZyUl4+KhoZ3dIF/fHV4eX95cnJ4Zn+GpHZpX2RpgHRmiIt8U1hvXkp4c1NkU1FeTU1SWmZOTVZZZFhHUmhSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQDSRkLOhpaetpKekrae1s7KrpbGnqri+wLuvp7mqpq+xycfI0cO8v764vb68yLrAt6+vs7G5u7jAsrK6rLisorSnqKyytrmzqKi9tq63vrC+p62staytnKmvo6ClrauonJ6rs6W0qJqrp6mjqJ2jqaipvqu0sK6dqqShr5ybs6OWpJylpqClnJupq6afnKuinJOcoqWemJeoqZKYmpSQioKPhX6Pg4CInY+Ffn2Lh5GNj4N/k5qThZOhjJSRi5GbkpWHiX5/cnt6fnxoeHx5c25ve2aEeISJZGFnYHKEemxmeF1eVD9Xe21UYlBRWEtMTnJ1XUhaW2dZRVVlUEQ+Sk9EQ0E5SEdLUz9qYkpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mYkFKN0dTYFUqPTlEVz0qkJWymqCgqqaloauluLOzpqmxpqy4wb21r6K4raiosMLJyczBtr3AtLe/usi1wrSysrSxvLi5vbWtubW+raCzp6ursLa4tayfvr2qs8G0vKGvs7WqrJ+tsKOcpqmqpJ6bpbCnsKCfq6mnoamcpKihrbyorrGuoaujpK+en62ml5+boaSdn5yapKujnJulpZaXlaCjl5uXpayMnpGRkYuCioCAjoB7mZSMiHt9i4aPjYuJhJKYkIaUo4mTkoeRmpCTgYh9eWt+dnl4Y3x6cG5vcXZnf3NphGhlZ15sc41sYGlvYG89WnlsVV5OUFFKSU1UWldNXV5sV0RXX09eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+KR00OSYnLjM0LjArLzQmLDokNDFBaFkxNFM9ZV9ETDZLVmRPKjsxTlc9I5SZrZqhmKilpKCopLiwr6SvsKmruMG5sq2fua+rqLS6yMvIv7bCvq+0vbfEtsKxrbmxs8C0ur23qLm4vaqjtKipqrGuubGrnLy9pbDBtreir7a1p6ansLOfnqSmqKKlmZ+sqKmeoKuupqCmmKOooLG5n6Oxr6Gsoa2knKemqZqam5+llp2dm56qp5ecoaqTmZSZn5OZlqGpkZqJjpCGfId+go19fKCMjYh4gouEiYuLhYeTmo6JlZ6IkZWCi5aNkXyFfHNwfXF0dGB6eGhtb29taH1xYnttaWViXGSEfl5Zc2pxSkl/aVhaTVBMSkhQUlFJT11fblNEWFpSaE9IS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1CKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo+L1dVNSiXnqeanZetoaGhpaG4q7KltLSpqLnEtbKtn7etrq2wtMbIwLa+wbmwtLy2vru+r6q9sLS/sLzDuai7urenp7WpqKyxrbSxqJy/uKauvbeyn7G3sKmlp6+xm6GkoKWloJebsKehnqOor6GfoZOkpKK3sKGmsaufrKOvmJyqpKmfl5qepZSbnZuep6uanJ6ml5aYlp6Ok5eiqKKQiYuPhnqEfoSKeo+WiY2GeIGHg4eLjYWNk5iNj5aZio+XfoaXjI95gXpwcndvb3RfeXdkamtqZ2eCbGVya2tkZ1dhcn9eWWt1aVlFfV5bWE9PS0hIUlVHMjpfXm1QRFdVWWVNSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0SEJmW0hUQ1RdaEUuOzFeUSwylqSjmJadqp6moaOhuKqwobu4pay9xLKvrqK1r62tr7TExL2zvrq3sLO5uLq4uq2tv7O0uK6/wbervbq0paKzq6iqs6yusqSdw7emqri3rJ+yvKqnpaivq5mjp5ylppSYobOmmZ6lqamcoZ+UpZ+kuaikp62mnqWhqZOfqaGhoZmbnqGTm52XoaOsnJybo5aTlZabjpOTo6ekkIiKjoZ5hHyFhn2cjYmKhniAg4eIh5GFlJOSjJGVlI2OlHuDl4+Kd398bHVybWxzYnl0Z2ZpZmNthGZnaGRmZ2hdZGJpZVplemJgUHNUW1tTS0lHSU9TQCAqal5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc3YUwnMp+kpZOPpqecn56epLatqKq6t6esw8C2r6yita6nr6+3wcC9scG3sK6ytrW5uLWsqryzr7KxvcC3rry8saSftqymprWqq6+hoMWsqqiytayttbqeqKqrsaWYnaqep6WSmaWto5idpKqhm6Gcl6Cdp7alr6qtoaGenaKVoKafoqCZnJuck5qelaafrqOYmJ+WlY6VmIyPmJqnoJCHioqIeIV3goKCnIeKgoh7foWIhoSQhJaVj4+QkZCRjZJ7g5WOhXN/fWd5cGxrbGd1c2thZ2Nic39hY2VmZWhoYWVuWV1YXGxjYUxnV1tgVklHSEtNUlg+OWBsaUhCVVNcW0lIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssL0EqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGJGJTWdpKGSja6hmpmgl6W0sqOyvrehsca8ubCwo7asq6+pub69u63Asq+vrraus7myp6u5sa+us7a7tq+5vqylnrWroKKypauwn6bFobOmsLOwt661nqyvrK6imZ2nqqWelZunpqCZpaOpnJqfm5Wdna2wprmnrqKhmpqemZ+jmqWdl5+Ym5WaoZOql62pnJWenZSNlZqOlZSYp6eNjIqJjnuBdIKCi5iFhnyIiISFioyIkoWUnJKRkJCRl4+Qf4GNjoJvgn9neW5obGpncXJrW2hjYXJ/YGRnam5rZWllY2xcbGx1cGFTYmhjZVpJR0xNT1lRUFVhZYFUQFZSWlRGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjQ8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUhiQic0lKOcj4+xnZyUoZups7CfuMC2oLTCu725saa2sKmupbi6uLisu7Ctq6u3qrW5raSytbGvqbG2trGztrunqaC2qp6gqqOqrp2sxJmvprCxt7atrJ6xra+qopudpKypm5WcpqSdmqqjpZaaoJySnKOrqqm6nqakoJeamp6hj2ujlpmdcYOXnKWBdpKsqZ+Wl6KSipiZgJeKn454hZKNg21pfneEcWyGioZ9hIqGb11kYGeEmIZri5CUknV4i4R/g5B/ZoiAaHZpZlhcaXRuTlBqY2Zxg2ZdZGZua2hdW12JkIWHaE5LQzhFVGdeSkhQUFVWS0hSYXB0ZUZbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOW0tbZmI+RzFOYTwrL46kmoiWspudlKGcqq6so73Fr6m3wri+vK2nt7Gmq6S4tLOzsLmuqqestKWxtaKnuLa1qKettrOutK60oqmftKueo6Wdp6ibsL+VqKextLmtrqSoraurpaGfnKGop5uYoaWmnJynqJ2TnqCZkJ+oqqO0r6Oio5yWmJmXo4ihj5KaiKGIlZ+if6WAqK2flJSelImEcniMjoOIoHWHjWmXiWZ+c3igb4eHhH6MfH+hoJ+Zf3yInnSIjnabimyHgoNtaGRke21yYlSGbWNtaZhxWGlwboZXXWhaa2paiHBseXKHaIeEWV5GTj5GXk1FUlZWUVBSV1RnXkxaTFJSUEVGRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk6LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTltMW2dfPUsxVF43LyiNp5iEnaydmpqdn6uqqKq+w66yury3wb+qpLixqqyms7Wur7O2q6mlsa2ltrObrLW2tKanqLOxrbKorp6robOqoKWlm6KlnrG4laanp7e+pqynqaqsp6Whn5mhqKOZmaejpJicpaqWk6OclJOkpqahtqSjn6OYlZSYlJyIrpCYlYqqjJmjnYaxgaWun5WboZd6gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsXlobFixrm9labySvG5oem1xj9h9UmtitrJ9f3CUdZqhqpBWTlhhT1ZORlVcWFBQU4tbV1tQQFxEUE5DRkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkJFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV1nXD5MMVpbNDEhj6eUgaiqn5idnqWtsqqwwr2ytcC1uL/Cq6a0rq6pqLC1qq+2tKioprWlqLmunLKytqqlpKeyr66xpquep6WzpaKioJecoqCyr5afpKG1uqOqqKGtraSinZqao6mgmJypoJ+XnqiokZynm5SeoqejobCjnp+jlpeTmJKZha9raouOqn9ohZaHrWZxn56Vm6mXca6hpH53unxroI92sV9qtFulgGWckGBmgXpmf2l4aqllvnJnpox2sWp8sXh1kZRjbW2nblyEoEVpZ4eWRXWcYH1me6OmgVhfi6tofY94emqoOEqvW1hUbWNaS09YX1xWVjtOh1BXVi9JU1NKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy8uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWDMxG5KilYOtp6afo6WrsrittL2+sLfFsri7w6epsKywqaqxr6SwurClpa+zo6q5qZ2ysrCjpaGqrbCsr6aooKOisZyknpmWmZ2esKmYnKKgtbOhq5uhra2fnZmXoaOpnZmepaCcmaGnpJCdo5qXoaCsn6amoJqfoZaVkZeRmoa1m7V5hqmatpl3h7Obt3+Ul5isl39rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iXCOhoB/iJCXeIOCipeMg6CPhbB2d59xa2ttfItPpVhIY2OZfmNopV95cXVSkoZdUKluY3B7hYBhnS9Som5bVGtnYExLXGRYXFpCPrB3V1hBI01pRkJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7RiwwLjg0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YVQ1MByXoJSJs6amoa6pqLOsqru2wrC8w625t8Krra2vr6ivs6qir7yroqi2raSstaSlsrOoo6Kdp6qzqbCopp+goLCXoJuWlpeboLCknJukqLWvoaiPqaeqm52WmKGmqZqfnaOgnKCjpaOWm56Ymp6jq5ymmpyaoqCWk5KUk52E1ZOZuXGxwn/Gh33WlJy7fZyXqJKOnY2ke42GooGlgnmreY+dVq97iX6farlauXeGhH2mgpR8mXqqeY6dkHuxbY6EdJC7hm+VUK+nxYpRoHpjYKpic3KGa5aHXlK1tMiFfoh8Y6QzQp11XVBqaGRQQFhmWWRhSkdMakpaU09ZZlpDQz9FPzA8PDU5PDc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuLzA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdIOmFQNzIlnKOTmbGoqaWzqqW1qKS8t8GwusCyt7W9tLaosrGksrOnoK+2qZuouq6ksLGhsrSxoaSenqipsam0qaacnp+smJmZmJiWmKOun5yXqK2xqaOej6yip5Wdl5yhpqGYoqGioZuioqicn6CelJmbp6Gcp5Wbm5+gmJCSlZCdiLJuaLVyrIhwj6dytHV0tnucmaaOkJ2No36PnqN+sHWCkNLSdVyufIV/pG6bqqZqhoV9rX2YmZB7sXOTnY95s2WWdIWebp9mlFLJi1rCXJ95Yl+tX3ZzhWGWiF1Zyp1vwIB0TUu1U1XGZFVRamNlWEFPal9saVBVRkg5PVdSW1ZZSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxBTlRfZVA1Rz1hTTYyLqOekaWvraWpu62mtaWntru8sru/uLe1vLy0prW1o7Oyo6CssKWYp7uupbKxnbS4qqClnaGqpbKorKqlmp2bqp+WlpmZk5Skq6KYk6arsaahlZKrn6WSlKGcpaeglZump6Kbo5+umqCenpCWnKOfnaWUnZWZop6VmZaTm4WsfHiod6OPi4eqcK6LhKiEmpqji5Oai6J9kpeHroR/gbNccrJTr32CgqN+cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52doZnl4hqXa93lZ+Pd2w1ecius19DVG9eZ2BFUGxfcG1WVU0uZWNoUllQO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdCYEk6NzegnZSgt7GZs8GtqLKnqrK6uLS5vrm4s7e+tqa5taG2rqCgqayflai2rKixsquttKSbqaCgqKK1p6aqpJqelqWilJSdmpKWpKiclJCnrbCloJSZqJ+ij5GimqmmoZWapqmenaSfrZ2gnaCNlJ+cn6GZmJyWl6GglJiRp56HqX5/pnmhj5CEqnCtjYOnhpeho4qYl4ijgZCGlKp6f4udeXCxWqiDgoigeHTYf3aHdKeBjpuNkqR8lZCfhHuyXpxkoH2ClW6TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZE9KQ6FcWk10XWJmTVphX3J0X0pVNUqakVhIRT1HRUFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxPZWRBJlVmWz8xVF9iTDdGSF9DMT03op2amr6tmLPBrqusqKa0sLixtb+5urOyubyqu7ahsqWfpqennpOrsqmwqratqq+hmKKgpqSkuqOjrKGXnJKjoJaVn5uVmaGhkY6MqbCwpp2Wmqemn42SpJioq6iVmKmon5+gpK2joJ6hjpWhmaCgkpyXnJWdoZWXj6ycj65ucrR0qYx3i6Z0tHp1tIKUp6STnY2JpIeOdbhui3uLomtrtlqhhmWXl2igoqdtlHK0c5OZf7NqhZKIrWp1tGGdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdlVG9uLlunT2JSa2VibFliXGBwfGNTWVE+P2xvMkJCQD5NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFBOKWanJ66o5yxwK6uq6unt6m4r7XBtb2ysbu4rMK3qqyhnaekop2Sq6uotqOzqK6qoZedqKClq7ido66clpmQpqOXjp6hnJmen5GTlau2sKaYk5usqZaMk6aapa2jkZersqSgnqissJihopCZoZegm5abl6GTnKmdlJCrmYfUlJq7dbHEgMSHftaXnLh5ipKZjpiKjKeHeaK2dX13dsKCmrJhg7p5wHx1uGK1gYyHqX2WgqypcXt/dbyIp6BpnWGmjq+hfox0h6t9vm5zvHSyg3V4gYptmohwbY2kdL1dd31bYXm8alpWW2l5XmlgZGZibXlvWFtZQ0FAcT9DRys0SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9UXmBLNTxMWy02QDmnmp+ivKOXsMOvraqqrLGoua+3xbG7s6+8sK7Bsq2mo5+kopyckaulqrKltaetpJ+WmquZp624naOumZWhkKagk46do5+Zn5qQlpOvubGrlZajp6aUkJalnaStn5GgqKufnJ+ppLKdoqSOpqGVoZmblpWkmZCwoJKVqp+FkJm2gJKSjbiWeIOTm7Z3bmxvdG95j4SOiXKewLu8mnuBsqhwgHSRuYN8hoaKh417i4aNl32ku7m9nHV5s6N0dpd1dLB1mJ5mhmmNtnRycXe2jF5/eX2IZ4N5bHlii6xwdIV+WFunaURkWVRmX2NdY1FnZnFtdUJNT0xEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlbLCs6uqqKyrqruvscavtbSwuKe1ua6rpKKnn6CdmZStpa6qp7aoqJ+clqGknqylvqehqpeVnJGim5KQoqiik56XkpiUsrW2rJido6Sii5OSppymq52WqaWmnJuhqaenoqigkayel6Kel5aYnZ6PsKmUnKeij2t/apypeYl0f5uPdntmiHu9vsC6b5KDcZSFX3JqWl6biWFjh4+WbGB/lGNtnHZilWuAmpWUZV5gY3GaiWhyjHyGlGZqfnB0eH59Ylt4dIFoUFxuhHx8i2pXbHqBcklKb4VwTnJNRFZcZmBMWldmY19PWm12anJST0RETTxISTxMPjIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVDRlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJfSSdTX1Y0KVBeTCgzPlxPJz8yPqifqKHBpJm0ubajrKaup6i1sqzIrLC0rbakvrKzqKGkqp6jnJqarKeupKW1qqSbmJWinKetqb6oqaWVlJuWoJqTmaapqJGfkI+YnLCyvqyapp2noomTkqmbqKScnKyfo5qco6etop+poZmum5SmoJeUnp+dmLGlmaKomZ2Sn52kppuopJudmpybkZeCaG59cneRl5SQhIm0qo2FmJWPioyYl4iUlYmDk5OQiY2SlJmTmZean6Gam5Sfm42CeqSFbGl7kH2AdYmLgnKCeHl2doqAfIlqc4F0g3Vkd312a295bF9iW29nTVhZZmpfV1lwem9tZlNPRlM5UFpOUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsLG3oKqms6elsLWqyautsqa1psCptKGfpaacpZaWoaunraOkt6ygmZeWoJitqqbBn6yklpKcl5+YlJWjn56jqJOQmKiossOvmaqcqp6PlpapnqucnqGtmKGbnaKlr6ahpKeerJiWpZ2ZmaGenp2woZ2ip5aZlJqUoaOXpKCZoY6XlYuLjpCYro98lZuCkYGJqaiFgJiWi4SOn4h7hJGGhZqRh4aKlY+bl46QmJ6jlpmSkJyNf41lobOuhImEd3uQin53eXpvZ3mRgYGJa3WBeYhyaHN/eXWDhoFqdGJ4ZV9oZGNkZmpYa3txamtcU0xQRF9VRkA+Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAs6C5r76tqq2xsqCqprKtoqyzsMWwq62ks6+8pLScoaijoZ6al6imqaakprO1npWVnpqasKauvqGsopGRnpqalJKWopyXqZ2Enamro7THs5+po6qWlpiap56pnKClq5Sfn52fqq6opKKroKuanp+hmKSenJ+dsKSZn6mUmZmek6abmaqfnJdmhJN9ZX+Pm5BjeYxsaGp6kKOramWamH5nhYtlZWloeo2ijmtojJiRo3hraouZo5+Yc2xueoSMhnlYZV2FgV5si4qCd1xnc3d3koCIgm93gnh/c215hHN2iIeNgnpohFhdanNkXXOIaWt8cW1jXVFOVklkWEBJMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1dX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSi42Wk82KUVZL0RPMVlCOz8uPaSeur25r6uzsKulqK2usKaurrC9saqopa6wsKCtl6GknqKamqesnK2kpqips66elqSQo7CmtrmlrqOPj5qimpOSm6CZmaaWe6Sroqi0w7eloaavnp2VnqOeo52kqqiSn6GeoKqvqqmiqp6mm6Wep6CrlqGcpbGkl52slqKfm5SmmaCsmZ9+vYSJc7RzhZ+GrWh3ucS4cZKho3qmmJl0q4J9y8DAunGLo4eDnn2WmIiewL2Clp2djZzBwXyBepGMmsLAfWqlsm+NgW/Ken+beJKEj4B2eYGAeXF7gIZwd4WLknhsdZFiZV53Y19lgGJedGhtZGJYS1VJUVlIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fYGFfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0NQLyNGWzNQWS9VQUI7LziVornDtK+vv6mplKOwqbCvraaytq+qpqemsaugq5ibo6Ccm6qnop2so6WopaW0pJ6jk6aurbi0p6+ikpGZnaaTkaChmJugnoimq6Srrb+/saCor6mWkZ+dopmjpKqjk6Chnp2srqiqpaOhpJ+jpJytqZGkm6muqpyeq52uo5eYppeipJidf86UenulgnqWl5tfrY9djqiAoaF8p5WbdauDga9eZIyqe6iHhaB0l5OIs2OCq4agjY2zaoSvdHyWh7hhgq1Zo81ukHZ723t/mXF+iJN2f2V7iHV2bH6HbX2Fj5B9a4CMX3Bqb2ZgX3hkW3FoamRmYFJUU1deSk9DNUFIRUQ4PjU7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xfX19eXV1fYGBfX11bV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrMHAv7S0sLeYnpGjqqmttaymsq2srKSsprCqoaecmqaYnKKvn6GfqKejpqGfsKybnpamrq2xq6isoJSSm5+lk5CfpZedqKOeraOqsKi/xbKnqbGtlpKenKKXoaqqn5Whnp2cra6mqaibpaWioKqSrLOWpaKqqp6kp6eisqKTm6ecoZyWlZGXoXKGjJh2hqiHcbF8nXGsfaCggaWPnnirgn6tf51yrX+sh4afdpiSe3yXfqqIooyRi5x9q3qIko+ff3qtVpzEe5Bwk8F9gZVtdXCMbWZ3ZYZvYXhucm6IiY+Og2yPjWNtc3VvYGZtZF9vaWpuZmNXU1xgWlJSQzlJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/Txseys5+do4+joqKtr7evqbGnqKqorqurp6KknZqjlZ+mq6CipqCoqKOfnrCtmJuWqKevrainqZ6XlZqkopKUoa2anaejr6yirLWpucyxrKatq5aUnJ2imZ+urJ2WoZmenqmxp6iom6qno6Gqmq+xoqirrqaap6urq7Okk5ikp5yWk4Wka6R1inqpdXuycYKlipiMcIigm4ekX2FSq4WAroOcda6CqIaGn3qZl4Z7ZoCjiqSYhoGjfal/gZSGrl57qFWdopKBe6OfgHzEsMWMc6+0s7lyYqmvwnVoi4uWjYBrl5Bta3h4d25rZmRkcXFme2ljXFZfaVhYVExMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICcnISstIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLSwsKmto6enqqurqKSmoJuln52mp6aknayaoqyho5+vo56bk6qktbCvoambnJaVp6SRm6Kon6CmnLCloqixrLbHsbSoq6mVkZ2dopmgpbOdmqGUnJ6nqqqirZqqpqChqaKyrKGqs7KinKupsbC4pZSXpamanZN9qm2fhIh2q3l8sG6CpIuJn5aVnpaB0ri0uMmBgrJfYZSpg6WIh6B6mJaaearJdJqjlKipkJKajH6aiZrGxndloYKlc4GfjoJ9r19vtWOxdUujhm2nR4OTZI6Pm5F7b5SPfG15dHx6bVtlanJxZoBpXmFYY21cXllJTExKRURCQT1BPEE/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTAxrmtqbKuraainbO5rKuhpZuopqqsqaagpqWYq6Ofr6ydpqGtmp+ppZ2ntaCjmJSoq7azrJymnKCWkKatkpqcp6OgqqeuoaOnqbCzwbGyqaynlImYnaWboqSvppeilZicpaWpma6cq6WknaujtqyhsbmwnpywqLS0taaWmamlnKGQg55Od5qCgJ96hKN8gqSEhqafnJ+UhLh8fHq5gn/MxsO2d5uikYuffpmXl4p2n5eKpJikqH6vhZuDnoSsfZmUYaVso3CPhZCBfZaEcqxgpHNxgJphvH1SVXWNkaGVenyQjodyeXKEfm9bbG53cmqBblpjX2huYmRdTExRU0FIR0ZIOjpLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Kss7Wmn6GVpa+urqinnqWlmqSnobOuoqmns6CaqaSUo7Wjo5WXoam1uaSco52jk5Cispmem6aloaKvrZykqKK1scOwramsqZGGkZynnaOknKWXnpiYmaWjp5itoauipJeupbusore2rp6etrS6s7WomqCxo6agiJDStcO3eoeOhZGTj4CmeJSid4yhkoWlg4tyq4eGtG5yaZmknZWJn32XmYeHkHOugqWbo42mipOciJSQmm1wslylc5N6nGyZf3uZfm6pYaJycn6fYnOyuGh3jpKkl3yJio+IdXt4jYFsaHdpeHNuf3RcZGRtbWZoYEpaV1g8SEY/UzNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krr+/vLu1npeopK62oqKZlaOqp62pqpmlop+moKC1pqKpp7GklKujj6StpJ2QmpqqtLSknaWcqZKUl6+goJ6mo5ynnLWZoKqjtarCr6iqqKGMhI+coqGmo5WampyYmpimo6WXqaeroKObrKa8rJW9sK2fo7G1u622qZ6rtKaqmnyokX18sHiLgKSliJxtsm+hh618oo+DqJeagayJhq2FoJSooKOXhZ+BmZaBe5J+q4GdmZaLq3edoI+Ik5J/ea9do4F8pqdknoB8l3Vqrl2lbHKFmV1gW4ygbZSPpJeBkoqTiHd5gZZ+aWx+Yn10bX95X2dlcG9nZ2hCWV9aPUpTMlM4QUFDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JODE1Mi4qLEFUVlZWVVRVVVVVVFRVVFNTVldXWFZVVlFIRklKIygovJKbhKnGw7fBtJ+araCuuaajjpqjpKCvrqmfo56drZieuaCjq6GwqpquoZGqqaWWipqQrbGsp6Com62YmY+toqGepaGZpJytl5+opbaovq6kqaOfjICOm5ugpp6SlJmblJmZpaOimKerqqGinqinvKSXw62ro6KttLytsKmjtrGrrZp3r36Ri5yFh3y6rYmYZLCMZZaufaGQhKeXnIKti4WwhqeapKKikYWgXGxrgrNgf618e4KBsmxmbpmXi4ixWn20W6SDa8iiZp+BfLtZdrVasn1Tr4F6rFiAoW2XjaaYiJSNkpN4d4ybfWNzfGKDd3SAfGFqZm9tZmVlT1VjXEFUXT1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdXWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vru0wbOjnK2mpbepoIuZoJ+dsrGonqKfnbWYoLOoqquesK2erJyVrqiijombjq+sqaejqJquk5qPqZqhnaWfmaOipZieoqixqLuupKienY99i5uWoaCZkJGanJGZl6ien5enraWjpKKkqbqeoManpqmhrLa3rrCpob+wsLCYgqqSo6+Om4CGpJeYkICAuMO6hI+dk4WomZ2DrIuDr4qonJumq5F+1b3CqmKkv719f6OCg9e6t7WElJKCnr2+hGqjgW+rhG6df3qysceDa6uxvax5eKK+u3SAlYykmY2YjZOZd3+PmXlifHlkjGZ4gXtga2VqamJQYltTaVxAVGBCTCk8OjQvHx8kHiUyIBwkKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0scC5sr2zop2up6azpp2Ml6W/qbavp6G/pqaxm56xnLmon66vpaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp2nm5qgqKKYnaCrrKm4rKejmpeTe4iZkqabk4+QmJmOl5OomJ6WqKieqKagoqq6nqnFo6GwpKy0tqyyrKO/q7KynHV2qqW3hWWKoHBnrJCKj25ud6WQm6CCdrGbl3CRjnKXqaSbmK+kcmxtbWaLeG9tg5lxgXppcGlniZaVl3FoaYWGZ3GGZF2KY2lvWl1nfnimYGJykJNwZmSAjZKNoJWVl42SmnqFjZN0ZIZ3Z4xqeH55ZGxjZmxiSmVXSmtZOlBkRFAnSjkrIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6ubK0qqmirp+ks6qZkr2xw8e8tKmev6uso6Cnq6C6o6SurK2mjpatqpCMhZWWrZ+mqqKfpKOgkYulkqaZqZmWo6mglpylpaauuaqsmZqTknuEl46ml46RkJeUjZeUppOdlqeima+lnaKruZ+wwailtKetsbOssK6qvKexu5iMoqmmtpyJl6OYhqmbkJSdkqq0mpykraK0mKSjn6KjnqKlopasp4ySk42Hk52dlZCZk5iQjZWEf6Sal5WOi5OSipCHhH5njIF0g3d0h4xxp219lpOUlIGBj4+OjZuRnZOUk52AhZKLcGiPdm+Jd3Z8eWlsZWRvY1VhWEBpWkdiX01YK0U9KyYhNjQwLx8cICUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbevrqKwpa2goLaxkY6qxLzDubapoaSdm6WdsKikt6edqbWnqJGYrKOLiImPnKeWraShmqien5OVpJeomqmZlKago4+ap5igtLmnqpiakI18gZWMoZSLlZGVkI+Sl6SOnZionpq0o5ymq7eor8KvpLinsLCyr6ustr2jssCak6ekprWikp2nn42pn42Sn6KtsZuipLOrs5qmo56mrKCfnp2XrZ6TmqKclJCXq5mNmJmXkJaekYegnpSUhpOMj42VjIF/Zo2IdYh3eomEdJxqiJKWlZKJfYyWkZCWkJ6QmZKdgYaWhXhxlHJ5iX9xe35qb2RfcGlgXF9ZbWJQYGJPWDlGRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlqSoo7CzrK6jqaetoKi1qpCPm6Oyua2qq6GimXqcobCkprGpl5y4pqOUmKmcjoaKiZuikK+epJaooKGSl5mcrourlo+omaeMmKiOnbi1o6WYm42JeYKUjJuTipWRk5CNkZahi5ydp5ydt6J/g661orCwdaS/pLOheXuirbW/l3iwpqGKgKp/ZFxid6COpJ6Dln5tlLWdpKmwrKVmoKGUdHqbmHCBmaqZbH+kqYplnKWckZeYl4uSm5CEnZuQlIOTh46OkoqFeGuQiHaHcXyGgYFhaYmMlZOMW3aVkWdnjoxxeaGVlWR4l4WAdpdogomCbnl/a3BlX3Zva2tnXGVjYWFtUVk9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHR0lLTFRVVVldYGhmZ1hRSTxERzw5VVJbYGFiYF5fX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqqWprqOnraWSlaq0rrClmamlqpdzi5yvoKirp5SXuaCgj5yknpF+iIiano2smqSVp6KejpeSnoV1ro+IppqokZajiJu5s6egmJiLiXV3k42Wk4qTkJCUjI+Tn42ZnqWYm7GVgIybtZ20jJKPvaiifqeje6WxuoOOj6ifhIyGj7Gpr4yKlqKaeYCLrIadnqOpq6mJloead6ace4icgZing4F7nbN7ioagmJmUmJaBkJaWg5maYnmIkYSOj5KLhG5xkIh6gnGBgYaAh3SIhZeTeJZok3SgmnN7mYKcmYSYfpGIgYKYaYyMhGp4e3FwZ2V4bmlsalxkaWlkcVpcR1NLUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaWZZUUg5REw8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2YpJ+mrq6rqK2gqbGnp6qlmZOsxLyvoJSlp7Sdj4OcrJynoqCNkL6emY2fmqGRfYaPmJeIrJ2jlqGhko2UiYaAkaiOh6Kco5OWnYaeubGnnZqSjoVwdZCJlZCKlI+Om4uOkZ6QlZ6jlJ2rh5+0ibSarovKiKuvireFjbCEs7KGqY6pmY2dfKiPcnt3nI6mlmiVpHm0jKGgqKqTmcKCgKuJmaFynoCbpX2XhZWzgaF9oZOfj5iYgI6UnImYkot8hZSGjZWTioRudJKGgHtzh4GEfYV1hoOYgY/FZoCph4+iap2BnpeAmYCKjIOImG+NkoRnd3R7dmdodXBnaGteYm5sZmpXZEVcUEwyRTQ2TWBjNyYzPEVHRDo2MzY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQElkWF1jZmhnYmJiYmNjX19iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6OgsKmpqKasoKW5saqrppqUnqGkqaGUo6m1oq9/oKedpZ6diZS9mpONoJKdkHmDlpWRiKuZnJuaooWPjHabm46gkYieo5uWmJeGorispZmbjIx/Ym2Pi5OQjY+LjJeLj5GejZKeoJigp36hp4etnaCWrpCgnp2Rh4Khja2yiKSOrJuMmn6idoCZlGuBq3VNq3iHjZ2TnKqpgqqrfoShfHunap6Ak2xnl4aYt4mefm5gY1iDl3+Ne2Rni3OZfXmXbFx8l25gU3GFXGBteoRgWWWCfoWBmXGoq2uDo25ypW+fgpxnZJ5sWmyIemVZX4J+YVdQb3ZlbnRxampvXWlvbGpnV2ZNXFdFOUE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUktNQkpbXV9XXl9jdWBNRTpNTk1UYlxbZmZpaWJiZGJkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJeeoLmhqqSmrJKitr2rr6KZlp6gpaurn5yttKGnkaCfoKecmY6ZtJmQi56MlYt1gZSRjYqmlpaYnp9+k4WFrKOHnJGKmKiYmZmRh6WvpqKVmYeJgGluiIiLjo6Jio2Ri4+RoYuSnZ+aoaV/k4GPo6GUoHeclpCng6OpgIassIeleox+hJp9onBzk4eVe56MeW2HnIyakpyqnI+HnX2DonR3pmeefnelXph7fZNzom6Yt7S6c5OIgYC2qGSBxrh8cZW2jHGAm6NjdKyrYX5qnbN+bn6Ig4+DjJhxgKNscqNynoJ+o16cmbOWb3uXnrN0cluesoJpYnB0dXFob1hqa3FwZFtmXGFLRD1ENVFBWXAyPFJHX0pSPTwzOTU6OjZDPDtASVA/VE5OUUBFX15bWVhgYHtkSUM4TFdVVmNhWmZma2tiYmVhZGNgYWJgZGNfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi2ra2gmqGboqOkrJqasayrkpegmaGlmZqUnqybi4mReIuFcYCWjYqPoZCTlJ2XfZGKjqighpiPipKik5uajIqop6Sej5aHhH5re4d/fY+Ng4uQkImOk5+BlZufm6Cfi4l3nJiijaByoYyJqYmdqJGYqq6Brox+eqCZeaOTeIBzl4iMnH2Vn4ebjpqdqIijZKF+ipaQm41tnmibjm+amXuAiqd9cmh0qoOeg3OqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxfp3Z3ioqAnWiadYeTkpiNfp5tmZBqpplcqH53u2p9qVqOhF2zZ1xucXh3a2lbcGl3d2FeY1ZhQVBFTzdWQlJtNEpaWl5OWkRAMTUxOzs3SD86Q0hVP1lTWF0+RGJdVmBRYWN8aUVCOU5bXVhkZlhmZm5tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mWnYmqtpyoiWOVnKy7srCsnaWbmqefnayZnbCnqp2Xo5qioJmWlqCjmYaJjWmIgHJ7l4eMlpaEkpSYj3qLhJaknImVkIaLnZGcm4iPqKGfmouQioCAaYGGeX+XjHuIjY6HjpWZfZKhnqChk5hyaJ+KoI+McJKNg6mJmqGlqqOqfrCtpKK4l3ajs6Kjf4iUeJ16qpl/oo+fnZmJmHKhfYeNsLV9bJqRoXh+mbWjo6uohJl8mnycmn90qlpdb3uXjHieYk1/e3uFZHqYQk2fWaJqc3yOb4KKhJl2m3mHibGzf36akqZ0fp1tcXyUb5lyaaNdlXZIZWNgc3B9fW5lX2tndXpiYl5PXVZcVFZAWUVQZkRSVlxhWF5JRD1COD9BOkhFOExFWEFXUlpWRUZhXFpgS2BtfXFFQzxVXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lZHZsXmVnZmxkZWxoaGxplJ2Bsa6ahFNfoae0urOzqZqii5qpm5unkqCro6Cnj56dnZqZlZihnZaHh4l3hYFueZWEkJuLfZGTlohygYmSoZtykpCBiJiUn5qEjqibmZWKiop8g2yEhXGCoYx4hIyIhpGYlHuRop+eo4iuhn21hI+enXumlnqpgpeekYyjoH+naHhufplzoHNxfJ2FmG+Tgq18pISnn5uDpHBeqWh2o2RwpmGd0498e5l4cnNjooaQfqJyo5B2a5Czi2CCmIp0qrKovH93g25/v6aqtF6cb39yl3CCc6JyXqRndKZgaKZsmtOYeoKbbnZ5l2ubeXaXcmyppWdfZHlxf4RsaGZjbXV2Zl5gUVplUFFhSFZJVF9XU1tkaltlUEVDS0xKS0FKRDhQQFBNWFNYT1NRYGVlaVNkeHl3SUZFY11lWmhpU2loam5jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZmhsaJibf7GsVF1Lf6qwsrWws6KcmISXpqCgooykp5+WqImZmJmUmZOSoJeOiIV7cH2EaHyPg5OagneRjo+KcICGj5OSbJiUfIiRkqOVg42pmZOSioSJeYN2iIBugZ+Gd4CRhYeYoJV5kqGjmZ+Js6Gitot6rKekrqVwqYCbkYaBnpR+pYGjmoaYcZ6Eo62viZeLf4ykjZWDr6OVd7W2tsmic5SMg59gnpepbXmWh6CbdaGHeKB+kJaLgW9NZqOScZqIc6V7enVig4JtfqBscmRgnHN/dJdre2q0trTGpnOYfXmcapqaq3SBmmxzd5dpmXl0l3FQRH2zXmp1a3iGZmtmYnN0b2xVW1JYZ09SZ0lVTFhSVVxna25VZ1dNSkFKTUtHSk5BUUpQZGNqbWV1c3N+eHtudYl6e1RRTm1eaFxraVJqaGlsZ21nY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinYmwqIVlQJSisqyvr7Whoo9/lqehoaOLpKacm6WCmZeXjpeQkJuTjoiDeWt5hmWDjH+Wn3l1j4iMgmqFhZKEi4WdjXqMipWlkoKXqJaLkYuAiXqAfYt5cI+ghXmBlIaIlZ6UfpOkppuVloNnbnicbKJkfHKleJyYcGingpmOfaV7oZeDlnKfdoGJlJWPuW2PiqJifZmjl4luc2ura3Wgbm+mYJtpi5BploeblXWigX6aYIuGjXVviGJooWaef2qbdXBkZ4iCb3KiW19bZKFuXoiMcXyAdHJkpW54omNmp2eXcouXbaFvUoiPbqBeZKdUi11UmG1tcmtxgW1waGt3c2puUVZVVWVZU2xJWE9cSFhoaHJqWWtWUFJFVlxNWFNhVWhqXnd1e3xwfXxygnt/c3eOgIN3XlFzYWdicGdQa2hoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqbCxpZ+Lf5apnJ2ji6GhmqGigJWZk46aj4uXkI6Ke4ZxgIhoi4p8l5pzdIl9kHxlg4eViomVmoJ8iIaWpo+AoaqPhZCKgYp9gICOc2mPpYR9hZKMh5efjYaRqaWdiaZ4lpt+pYmWjLKZnpGEr5efpXmYinupdaiQhJpupaKMkoSMg7xtfKWvgoeGh5WXnaJ+pnxyqJWhlmiffm+sY5aKlpN4qG2qo4GJdYiCd6uRpohrkrFsd7OMqWyLhm9voJ6SlWJ/q4yqd4GAjqefd599haSVnaBomod1q2aerYy2c3a+jKOTWYOmjathdXJ0b3t1cGJqfW5nbFJUWFRgYFxrTFxSXEldbG12X1txWFtfWmdzZW1vcWNxdGB3en55cnmDcoN+gXt7jYGCgHZieWRjbnNkUmxnZ29tcmlmaWFfXlxhamJsbHtvXFxiaWJtaXdtZ2xuYpamq52BgJ6klqqqnqinraOYiIGWqZmdoomapJyonISMmo+GnJGFko2MjHSFeoiDb42FfpeTc3SGcpGDbn+LkoeGlJB9e4KFl6SNf6WkjYCOiYSUdYKHk25si6iAgouTjYibnoiLkqqioI+AdJSXiH6BeJSvpH+CnHGPhnmTjoaBe3OpjXJ9fXqXlpuEjXh7fX2IlJWTi3eRmaGihXt/imyMhlx6eXN6cWlvfpOKcYB0go+Uk3GGhIJljX9fgYGMeHZzlHVwem9viW+Fhl93aXiOZoKDho+qnH90fZZpiYhvfnV8g3VtbGaMc3h7l3eEWmpXeY9pbndycW93eG9da4VuaGdWWV5WXGRqY1VgVV5RX293eWtqd2Vqamp1fHBxdHNhb3Vic3uBeHV5gnV/gH+BeYuFgn17bYBtZHluXlduZ2h1a3hqaWlkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbqpp4uhopunpJmknauhn4ODlqqQnZ+ImaaaqJiCgZyLfpaUh46KiYxygnyOfH6PhHuXjnRyg3CVhnx9kouGho+GeX6AhpijjHumn4qFj4+ElYOGjph3cYSqhY2RnI+Hnp2GipqooKCrg4mNlZt/foqXraiQk6iReHGfk4V9lHB/q4dxfpVxam98gZ+Lf5GOi2huXYSNjZydoJBzl42JcnVsg3Z0gFlyb4eRgn5/jGpdaWR7hYSIgGBpeHucfISNg3aCh4RpeoyJbGJxc4N3X3ONg4qRqJaHZ42Ogmx2ioJug4t3bWRlY3qCepVaW2lmbXZbe3l3dG5zcoNmXG2Ja2tiWVhcWVhqcVpeYFleXWVyfXp0b3Rjamppe3xyenZ0ZG10aGx7f3V6fXt5eX+Af3CGiYN7fXN+enJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyrsaGQo6Gan5+YnpmooaB9gparjJ+ThpqhkaSVf3uYhXySmYmIhoaKcnyAi3aFi4KElopyb4BzmIaEfpODg4aKgnqAhIqan4+BpZ+Gd46XiJWLi5yXhIN6rIGQl5iTiZ2choehqp+ioqOLiJObnaOZlquiqKehk5yJmZF+epCQhql/gJORkpOcsaWalJ2PjbGSmISmjo2WnaGKkZ2EiZOLbH2Od3dmg4aRi32JnoWHi4+IiIGFhJF3fHt1m6SKh4ugjIeWf4CNg4F3cXWGhH94iYiLkaeRhIeOh4KLj4p6hYmHjX91aoCDfHmZaXFoYHOKcH17d3Zvd3SBXV5vhmduX15ZWlxTZ3BVY1tbYWxodHt7cm5wY2ppaH97bXh+cGhwcGxmgHtygoB3f31/hHttg4yFfHp5fH56g3hOZHZqc25xe2RrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2Inrqfl6OhmJWZmJSYpKCcen6XqY2djIWfnIqdlnx5lYN7jpmJhoOEhm14gH9ygId+iJOEbWt+epeHhIOQfoCGhId8h4ONm52ShqmegnKKj4aSkouckXyNe6mDjZGXlY6bloWFm6afopqdhoOSmpmZkJmmoaaenpCXgpOMeH2JkIanfH2PkJGGmKqhnJOcjo2pjZKAno2JlJughI+YgIiPhHF5hnJ1YX+EkId2jJmBg4+ChoV/hoSVbnp2dZSkjI2Gm4aGkHWBjH5+c3N8iYV7eY2PhZSokIeEj4GCiYiIdIKGhoh5bWp8f3ttaGtsZl55f2h8e3Z0dnV7d1xgcH1udGBjWlteUWZsU2RaXWBqaHR5fnBsbGNqameAf2tyf2trdG53boR5boaAdoKAfYV3coONh357e3yAe4KLYGl7a3VoaoNkamNgaVxjdWdvYnVtbFRicXllb3l6cmVqbW2Lip+4mqKkn5OSlpeLmp+enHp3nKSQm4mGpJOKmJl5eo2Fe4qRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hYSHfI+Aj5ubkIimm39wi4uMkoagoYqFjHynkIeOkZaSlpJ3jKOgoZ2Wmn+BkJqYk42ao6Kkm5iSnICQh3uBhpGJoYF+jY2PfJekoKCSmZCPpYyPgZySipSZnX+Tk3+Ij4J2dYJxd2F+gY6Gc4qWfYiMcYx+goWGj2h4cnqOmpORgJh/iYxzg4l9fXJ6fI2GfHuTjoSXppSNhpB7hIWGhHN/gISFeGRwen54eXBramZefnNpfHV1c3xzgGpeYHR2cHdkY1hdXlJpaFNkWF5fZ2l1eIFxZmtjbGdlf4BqbX1nbXBqfXeFemuLgXKBgX6BdXaCjYZ/fHqAgX1/j2pyg250aWKIaGxiX3FWdG9sbWB4aGxXanR2Y3R6enFia295iY2fs5Klpp2OkJiPhpygmpt7daOejZd/jKGKiJqWeHyGh36Ein6IgoF/cH56dHWChX6JkHdnY32Gl4qCio14fYCNg3mWgJWXlY2Wn5p9b4uBkZOFpZuHjImDppWEkYqVl5KRdpGdoaGYlJd5f46Yl46Wmp2lnpqUlZ17koiFeYeYj59/goqOjHOXop6gkpiOj6GMjIOYmISUl5p/mY59io6CeHJ+bntkgHyLhnGHk4CRgmuHg4GAioVmdnB9iJSajn6UeY2LfYKJfnxygHmLhnqFkouMmaOXgoSLdoeDgYB0eH+GgnNednd8c312ZmtkYH5qa3dzc3V9cXxjY2FzbnVybWFZX11aa2NSYldfX2dqdHmFcGJqY2xmaHyCa2h0aGxvaH98gXlsj4VxgIODf3R8g42BgH56goN+fJBtdYl0dG1mimxqYmN1VoNpcG1geWdsYWp2cGV4e3lwX3FshYWQna+Yp6mejo2Xh4Wfk5WXfHaomomYeZaci4yZkHh8gYt9fYR7gIKBeHN4eXN9gIN/iIqAZF59i5SHf4WHdH1+in9+mISWk5aMo6CXfnKHe5ORiqaPjI6KkqCRg5CPk5eRioGPmKCakpCRdICOkpSJnZ2ep5mYjpWXdZCRi22ImpGbfIiJkIlvl52aopKVioydi4aBk52AlJOWiJqKfYuKgntxemt2bXx/jH9uhZODlHhvgoR+fouBZXNqfYKYmIWAjnWSioV6iX93eYF+h4F9hI+GjZWlkXmFgnSIhnt+cXJ+hIFrYHl0eXB8bmFuYmV7Ym5vdnN4d3N0YXZgb2x1bm9cWl5dXWldT1xXYmBnbHJ6iGpfaWVqY2h3h21mbGhpbGeAfHp3bpCIc4CDhH10gYaJeoN9eoGEfXyOcnmLeHhtbIdraF9pcmKHaHFvZXZnbWxhemhqfHt3cGF3bYqBmZqroaWpnoqLkYaJnoqUlnx2rJeMlnyek5GWlIh2fnuKfHyAdnd/gG90c3pvhX2BgIl+fGFcfo+Shn+EhHJ6gIZ6j5GHkZGbkqSbk4F9gXyNipKjiY2KjZaajIWQl5KVjYiIjJKdk4+MjW6EkI+RiZ6ZoqGYl4qXk3CLm4ZniZuQlXuKhZCKcJaalKGRkYiKmIyCf5KffpOQlI2akHyLhoh0c3VrcW92fYx1b4aRjpNydIB8goKJfWVybnp/m5V+hYp1koyCdYp7cIJ/god9ho2LhY6Wqo57iH1+ioR2fG5sfYKAYWZ3c3RuemFeb2BrdF5want5eWxycGV5Xm5sc21zWFpdX2FpWk9WV2RiZ3Bxf4dlXWloZ2JncY1uY2hoZWlngHp3dW+OhXOBgYN8dYKJhXiFfHiEhnqAiXd/i3t6cnmDamtfcGh0f2txbm1xZ29rZXtibn96d3Brd3eJf6OZo6ihp5uIjIqBj52Gkpp0f6iTkY2GoIyVk5CAc3x2hXh5gHJze4Vrcm95bYl2f4CGbnFbWX6SjYiAgYF2dYF/f6CGj4qRnJegk5Z3iX6AjIicnYqPhpKXloWIlJiOlouKjY6MnYqOkYRtiYuPkYqclqGcmZaGmYlsh6WFZ4ifjJOAjYSMgXiTmJKdkZCIiZSNf36QmX2SjpGOm5N9i4GEcHZwbG5vcXyHanODj5iKcXiAdYKJg3pndHB3gpuQfYqFe5WTe3iKdXKLfIeOe4uHhYqPnKWJfIR2gYl+d3dsaH1/fltxcnFvb3ZZXm9gcGpeb2p8enFubWptd2Bwb2txbVlYYGFhbFdQUlllZWJ1b4SBYV1rbWRjZWuSbWBmZl9naoF1cnJvi4B0f4KAeXaAi4B5hX53h4Z2g4V7h4t/e3aKf2pxYnxihXxvcGx1amhubHZ3X3F+eXtzdXN/gn6llputn6eXhYyDfpaVg46ddImek5KGipqMlY6MenJ4dIJwcoV0cXWIbG5sdGyHdoN9f21uVVGBq5SHgniAdnKDeYKggpCBk5KYm5GZd5F6goySpJqTjoiUmJKEhZaYi5OLiY6Ph52EkYt9couFiI+InJmfm5eVgZWAaoifiWiIoomUhZKEinGDkZePmo2PjIuOjXd7k5F7j4yOk5iNfIl9gWx3am9rbG17gGJ6fo+XgXd6gXiDjX16aHVtdomXjICJh3yVkXJ7hnF4jnuLjnuJf4SOkZ+fhn18d4GKfHZvZ2l+f3Zddm5ta3ByVV1uYnJhX21ueXBocGZnc3VocGxhd2VdVWVgYHBTUE5bZWRdeG+Ie15caHFiYmVlkWlfaGVbZ29+b2txc4p9dn2FgHV2f4x5e4aAeIeDc4aFfoyMhHx5lXhncmqDYId+b29re2BpbXR/dF90fHiGd3NzhXx5oZCasZymj4OKf4KZiX+KnH6KmJKOhIiXjo6OhHd0d3OAcHCFc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfHB0g3WDn4KRdpSQmJuQmXuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYicf46BeHuMf4iMipycnJuWlHqOeGmLlIpuiqWGlImYhIZjjJGYjZSJlouMiYtwepWKfI6Ji5OSinqGfX9tfGVzcGtte3pcgXqQj4F7fn+Aho97eml1a3SMkIqDh4Z+l4xtf4Bwgo6Ajol+hXuEkZabnIx9d3iCjndya2RufIBpZ3NuZ2hzbFNdb2RwWl9scXdna2tiZ3hzcHBkYHhgYVVrX150T01KX2ZiXHhwiXRcW2V1YGFkZI5jYGZiWGlzdG5scXaLfHR5hoJ2d36Lc3+Gf3qJf3GJh4GQioh8fpl2ZXNufWWHf25wa4BZa255enJgdnp7jXZydop2ep+MnK+boJGDhXiIlX57iJyGhJ6QjoWMl4STjoeBdXdweXFvhG9tbn5yY2R3cHxuenxqaGxipJrB3K7vonNsdYN1hKGEkW6Vj5SflJuAkXCFi6OXiY6VipCdlYOAlI+FiI+AkoqKl36He3Z/iXiGhY6cmpeZj5B2i3hwiYuOf42mhpOLnoaGXouUl4mOiI2KioSJbHyXg36JhoqRkIZ2hn5+bH1keHVqb3p0WIh7koeGen9/gIaNf3pmdGqBi5CLhISBjZiGbYN3b4mTg5KGf4R7gpKXlJqRdXR4h4t0cnBkcnZ/X3Jsb2FodGZSYHBna1VebnN5YXJjYGl+cXJuW2NyYWNWblpcd0xMS2NmYV12coltW1xkeF5gZGaEX2NjXlhpcmtua3J3i31zd4SBeHh8iXGDhHx9iHt0i4iHlYWMf3+Yc2h1cnlti3tudHCAV3B6dnlxZHZ5hoxodoCJcYCdiJmonKOThX1xjJN4eImcg4SfjI58lo2AmoiEfHN3cHNqb4Fsam18dF5gd3Z7cHR6Z2BlfOvatcnD3IlzbHSAdoqaiIxpl4+OnJWSgYhwhYigjoWLlYqMl5N8jZKHgoiPepGLho+CgHd4g4Ryh4KTm5aTmIaNdoiAcoeEjImcpIWWjqCEimGDlY+FiIWIjIaAh2h9lIB+g4WKjo+Ccod/gHJ3aHZyaXR4bVqNfZODhn2Ag4GEi4N2YnVtioKRjISAgJOSfm+DbXqIkYiUhX2Cf4KTlJKYiW5xeYuEdGpvaW92fl1yaG1caXRfUWRxaGZTX3F2dGBwYF1og3FzalhnaWNpV21XW3RMSktlZl5hcnOFaVtcZXleXmRnemBkX11Za25lbmp0d4p+c3KBf3t2eohzhYN8f4d2doqFj5iBjYJ7k3Zsd3Z5eJN1bnd6fVh5hXGAbmd4dpGCZHaGhXGKloaaoZuhioZzb5KLcXaNmnyJmYiJfJ9/hJl/gnlydG5vZHJ+aWZsd3dbX3h7enFxf2lhZ2F/1baOkaZ4bnF3e3GSkIyGapiNiJqQi4V6aIeLmYaBkpCGhpeNe4yMgICJjXuQjX6JhXp1e4N8cYaAlZmOkpSCiXaEiHiGg42VoKGIl5GhgIlhf5SHhIeDiIx/f4JmfZGAf4CDjI+Qfm2DfYN1bG13dXR3dmtjjoKPgIV/fISAhYl/cGB0coZ9kI6DfX+SinpyhWd7hYyIjYV8hYCBlZCRk4Vub3iLfnRsbWhpd3pgZ2lpWGt0WVJocmliUGJyeG1iZV5aaoRudGJcaGBlbV9vVFpuTUdOZmRcZm5xgGtaW2NzX1xja3ZkZV1dWmxsYmxqc3aGgHFvf3x9dHiGeIWDfICHdXiJgZKVe4mGdomBb3h5e4STb217gHZeg390gWxoenOUc2dzh3xykpKEmp+bn4aHdXWTfm11kpZ9h5CDio2afIyadn52cW9samF0fGdiaXV5WmB3e3ltcX5lZGhoV52PX3Jzl7zEhHZxlIiPfXGWi4abkouHcmqIj5aAe5WLgYSajHyKhXx7iYt/lIh1iYZ2d36BcnWGgZ6UhZSPhINygYp3hn6Mm5+aiJWPnoGJZn6Tgn+FgoiJcYF9Zn6MfHl/gIiMj31pgX6EdmdweXhzd3Rsa46Gi4KKgHmCgYWEgWxfc3l7fo6Lh3yCkIF/c4JqeoWJjYeFeYV+gpmOkY1+bm16iHx1c21lZXtzYVtwYlducVNTbXJoYU5ndXhmYF5dWW+Bb3NaZWJeam5gcE9ZalFEU2ZgWmpubXxuWVtdbWNaYnB2Y2ZcXWBraWNsanN2gYNwbX58f3R1g3qDgnyBhXZ+iIGWkHiEinSBiHJ5eX6NkG9ve4BxaYF4en5tbHt1lWtqeIR0a5ONhp+ZoJmEh259i3Vpd5eOfoGKgpSXinmPlW96dHFsamRgc3poYGVxelpgcnx5Z3F5YWVlj7Gyd0tiWqXZ0JZxe5CKj3d9k4qEmJCLhW5rhZKSenmShoGEmIp8hn93d4mKhJaAcIuIcXV+e2p5hYOlkISTjYR/cICEeIZ7iJ6blo2VkpaFiHB7k4J9goKIgm2Ad2iAhXlygIGDioh8ZX5/hHZkcXOAaXlxcHWZjoaDi313eYGFeoNrXHJ/c4KJh4p+h4p7iXOCb3KFiJCGhnOFe4KajY6FeW5ufYN+dXljZWh7bl5YdlpXcGtOV3FyZmBLbHd0YV5cW1p1fnNwWGdeZ2tyYG9OV2dSP1hmXlpva2d5cVtaWGtlWWNweV5nXF5lbGdma2lxd3+Ib2x/foB1b4J7f4J/gn92gYSJl4lxgo1xe4Z8enmEk4x1anl+a29+dH98b3J7epNvboF+eGeSi4OhmZyRgoVnhoNvZ3mViH1+hIKYioF8jo1peHNra2ZfYW95bV9ib3hcZGuCeWFxdl9lZdTqvYsyOj6Ljn9xeIWHjY11gpaMfpKNi35ta4SMjHV8j3+FgZSIfIJ3bnaHhIOXd2+IhWx1e3VmeYKDpouCj4uEfm6BdniFfImfko6Sk5SOjId/e5KGd36DjIJqf3JogH55bnx8gouEd2J6hYJyZHJpfm52cnWCnIyBgIWAdHZ+gHOCb1xugHV5i4SLfIiBfol5e3JtioWRhYxzg3qAl4yLgHVtanaAf3RzW2dndW5XVntSWW9kTFpycmVbSXF4b1xbW1lddX50aFliW2hmb2RqTVdlUD1dZVxddWVgdW9aWVRuY1ljcXlaaF1gZ21naWtpcHd9jm1pgoR/eW6AfH2Bf4F6dYKAjZOEcIGLbnd+gHt7iJKJf2h6fWpze3KFenN2fX6MeXiEfXxrjI2Em56WjIGAbI19a2h+jYt6fX6Dk4J+fYqIa3ZxZ2hiW2Jnc29fYWtzYGhwiHlic3ReY2SboI9uXDVar7V0aYCIfJGGdYWVhXOOiol2b2yEgoZ0eYl4iXySh3l+cmd2iX5+mG9xh39pdnluZnmHhKSGgIeNin5vgHeCg3+Pm4mElpOZioyFiXyQiHB6fYR7aH5saoB7emp7d4KIgXJgd4F+cmRyZ3aDbnV8hpaSgn2CgW93enx1f21ZcYF3dY2Dh3iIdoSJe3l0b4uCkYKGc4B+f5SJinxvbmltgYF0bVtlZHFvUFp6TVtuW09bcm9kVUtzeGlXWVpaYXGAdGBdXWBnZGlpZk5ZZ01AYGNbYHVgXXVsWFdTdGBaZG9yV2peYmhqZ21saHB3fJNsaISKfX1wfn57gYCBend/f4qLg3F8h29xd4N/e4mMj4NpfXttd3h2inZ8eH+Chn+Dfn16bYWMiJmjjYSDe3WLeGtshIeQeH16gpGAgH6Lg3BycWNmXllmX29vX2BncGZqboh0YXRvW2FkanZ7gL+cpqTIuHGEgnKSe3eFkoJzkIuHcnJvg3uDdHSHdIh3k4h5eXBjd4d6gJNpcoR2Z3d1Y2p8goedgYB/jo9+c4B1h3uClJKFepiPlpCIgol7iYlreHl+dGd6aGt/eXRpeneAg31oYHiIfWtrdGh8gWp2goyRlX97fn9xfHZ8dH9iVnh+c3SLhYN9hHGHinh5cXGFhI6Af3p/fnaPhoR3anFpbIeBcW9cZmBxbElkdUtdbFRTWXJuYlFPdHhhUlhYXWFwgnNbYVxpZWVka2RQW3BJQ2NgW2NvXV13aFVXVnZdW2VuaFZrXmFqZ2VubmhwdnqTbWmIjXl9cnt+eYKBgXx2fYOIhoNwd4RybXeCgn6Ji5N/cIB7d3h6gIx0gnh+gYGChHmAdW9+ioubnoh9hXp3hXtodIWLkHl+f3uIhoR2j4BncG5fZFxYZVltcmFgYHBsa2iIbmF0aVlfZG6Ad6naqceGh7JxiHdvjHR6hY1/eZKJf3RzdH13f29xf22FdJOFeHRrYHqCeYmPZnKEcGd1blttfYCQk3+AeJGTfnl8bop4g5OOhnaYjJOQiIaGfH+FbHR1fmxndmRte3Ztand3f398YWJ4hnppdXVjfnxodYePjZZ8dYF3cYB7fW6AWld1f3B2hYh/gXptiYZ0emx2goSFf3x+en10jIJ+dGh0ZW6Kg2xzWmhdc2RHbW1LWmBXVlV3bWJQUnR2WFBWWF5hcoRvXGBjbWVkXm9jVFxxRkJlXl1lZ11be2JRVlx0W1pna2BWal9gb2Zma3FocHZ4jnRrjo12f3Z4fneBhIF7dH2DiIeDb3KAdHF1foWCiY2KenZ/eIN7fIWHd4d8fYF+hIB7fnJ1eYyNoIyJeYl2dIN4Xn2Fl4t4hoNzhYaEd4l6Ym5tXGJbW2FWaXNjYFtnbnBmh3FhcWZXXWNrf3zKzoe5oWptbYpscYNxe4OJfnqQhHl4c3h1dHtqbHZjhHWRgnZvZl99gnqLimVygmtqcWNYbHqFm4iCgXOXlHh/fW+Kc4SMjol0mZCSiYaLg3t5fXFwb3xmaHFibXhxamxxeH19el1leoB4anZ4ZoN3aHWJjI6VfXKIam9+gXlvfV1Zc39udYGMfIJvcIqAcXdpeIGCgYJ4fnN8dYd9e3Nnc2Fui4BrcVdpXHZbR21qTFZVXVNVe2thT1R1clBRVFdeY3SFaV1gbGpmY1pvYVhib0dBZ1xgZV1cVnteTlVlcFlbamhdV2dgXnJlamhyaHBzd4Z4bpWLdH96eH55g4h/dXJ/hoWOgnBwe3h3dnmGhoeMhnl7f3SLfX2GhIOHfn5+fYd/fHh1eHiRk59/jHyKbXWAeGSDhpWFc5GKb4WFgXqDdGRuallfW1xdVGdyZGBZZHFyZ4ByYmtlV1tgan94vq57n7duYXOFaHN6cXiBhHp9i353d3J2b3t2ZWpvYYd1joBzamJefnh5i4RmcX9oa2taVm93iKKAhH9xmZNygXp2hG+DhJSKdZeKjomFiYV9eHRxbmh4X2psYG12amdqbHl3enZaZ318eWZzfm2FdWV1h42GloBwjGdre4R1bnViXXF9bHV9jHyCZ3aHfm5xaXaAeX+AdH5te3yCe3lxZmxibol9bGxVaV92VUppak5RTmdMWHtoYU5VdWtMUVRVX2d2g2ZeYHFoZ2JXal1ca2dKRGpZYmNWWVV5WU1WbWpZXWtkXFllY150ZW1kcWdycHWBeHGZhnZ/fnd/fIWHfXVzgoiAlYJuc3l7enNzhYeJiYN4gX11j358hIqNg4GEe36Lg3t2e3d3mp2YeomChml2fHtsg4OSf3KOgXCFgn+Cf3BnbGdYXVtcW1NkcGReV2JydWp1b2VlY1dcW2h/cG9ygHOJZGR5fWlzdXNygYN3gIN4dnJ1bWp6cWFna2eGc42DbWZdX31we4l/aW14Z2pkVVdyb4ymfIR7dpaRdH10fnxvfn2TiHibfYmHhIeDfXVwcWxndFxsZ15sdGRnZWl6b3tyWWiBd3VocIF4gndid4aLfJWBb4xqbXuCcWd0ZmFuemhzeIt8f2N3hHdqbHJ1fHJ7e3R/aIB/gHl3b2RmYm2Fe2xqVWhhb1JKaGpPS05vR116ZmFNVXRkSk9TV2Frd35mXWdzaWZgVmRXYnBcS0tqV2NhVVRVc1ZMWHVkWV5rYFtaY2VfdmdtYnBpdG9yfnR0mYJ3f4B4gH+GhHp9dYKEf5eFbnJ0fHp1cYSFj4GAeot1c5B/fIGVjYCFhH19jIZ6fYB3e6OlinmIhYRrdHt6dYKAi3puhHN5hH2Cg3ZvamllVl1bWlpTYm5kW1hhc3tqaG1pYGJYX1ppf2lrb4BnbGBoeXhqcnNzbYOAen98dXRtemhqeWpfZW5ogXaPhGdlWGJ3an6He29qcGdmXVRYb2eNp3aAenyQjnp2cYBxdXh7kYF6l3aHg4CGiHZqcnVnZ25bbGRdbXJfZ2FqeGh7bFtug3N0anCBfnp4YXeGhXmRhXSJcnB6gXNkcmldcXhlcnSJfHljdIBxZ2p5dXNteXh2eWWFfH95d3FkZGNte3xqalRnYWVTSmtnT0dRakVgd2ZhTVNyXUpNVVplbHh8Zl9ucWlkXVZhVW5uVkpTZ1dlXVhNVWtUSlt5X1tfa11dWmJlYHlobGFvb3ZucHd1eph+d3+BeYCAh4Z6eXqDfoGTg3F0dH56dnSFiJF9gHyQa3KVgHuCn4V+h32AfoaCgIp7d4Srnn96h4eDa3KBeXWAfoB0boZufIBzioBqcG5kZFhfWllaVGJqZ1taX3WCaV5tbFxhV1xca4FlcnR9aWlca3Z1Z3N2cWyEe318eHVybHlnaXhmXWRzaHp3koFjY1RlcGiChXh4Z2lqYVdWWWdjjqdvfneAi457cXJ/aXtxfI59eJBzhX6AgIZuZHVyZGdnXGphXW9vXGdfbXRlemhddIBvcmtxfH51dmJ0hox7iYiBgXlzdYB2YnFuW3J0Y3FzhXx1ZXOAbWFte3Branx6dnRnh3Z7enZxZWJkbXJ9aWtTZ11cVEtxYlBGVWBHYnZmYUtTb1hKTVhYaGt2e2VlbnFmZFpXXlh3ZVRKXGJXZ1dZSFdkUEhieFpdX2xaXlxhY15+aWpgb3R4bXBudoOXenKAgHx/iYyGfXV1hniHjHxzdXWBeXp6goyOfX6EiWlzloF6ip1+foV6gXp/fIaJc3GPrYx7e4aPfWRxh3lzfHp1cm+GbHt+bI96Y3BvYmVdZVZZWVdjZmtfXV1zhWhYcW5bXlhaXGx7YnB3dWxhWWxzc2d0dW9sg3h+f3h2bW50ZGh0ZVtndWZ2dpF6X11SZmZrg4J0fmJkalxUV11iY46kaXhzg4aReW5xfGp6b32HfXaKdIJ5fXmAaWR2bGBmX15pX110a1llXW9vYnplXHd8a25ucHh5dHVlc4STgIiDiXt3cHN/dGN4ZVxxcWJxcoJ9dGdygGVfbndqZWh6fXVvcIN2dH10cmJfZm1ufGRoU2dXWFNNdl9QSllXSGJ0Y2FJVG1TSk1aV2pscnxjbW1zY2JaWlthd1xTS2NdV2hTVkZYYE1HaXVYXmBsW1tfYmJchGloYW54eW1vanaBkHltg36AgZOIhIF2dIl0jIZ0cXZ2gXh9fX6MkIB+k35wd5WDfJiSeYCAeHp+gHSIhHRxmaF6en+JlHdjdYd4c3d0a3Rufmt4fHCRc15wbmBnYmxUWlpXaGNtZltccYllU3JuW1pYV2BsdmNpdWppXlltc3Brc3NzaYR8fn56dm5ubGRpcWNbanJkdHaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEknVsbHtvcHJ8fn1zgniBdHt6e2RldWddYllgZ1tedmhXYl1waGF3YVt8dmlqcm94dHN1aXGCloSHf4V3dGtxfm9neFhdbG5jcnSBenRncH5cYHByYmBrc39tbnZ/c3F4a3FhXGVsbHpgZlJlU1ZRT3VbUU9YUUhjc2FgR1ZqUElQWlZra2t9Zm5vcWJbWlhZbHFXUlBmVlZoU1RFWVtOSHJ1WF9jbGJYYGBhXYtqY2RtenhscGl1eYd7a4N9f4SafIOEeXyHbY+Hcm52enx0goJ8i4+Dgpd0eIGThYGeiXWBgIF0f4JxiIN2cKGWc3qGi4Z6ZXeKbm16bmZ4cHprc3ZzjWtedW5hZ2VrUl1bVWdhbGtaXHGMZE9vbl1WWFVnaXNoYnRlZFxYbXRsb3V0eGqGfH97h3aPc2Nka25hXG5tY3N4h2taVFZjZHh9fXGGXWRfY1RaX1lilZVjbXCDhYp0a2l8cGd1eHV9bXt1dnB7f3ZfZnJjW11WYWNYYXVlVV9gbWRhcV1dfnBoaXRxdHF1d2tthZSCiX2HcnNncH9ydHBUXGdrZnJ1gXd0Y212VmNybFtfcGd+Zm54fnN0c2tuYVpkaWp3XmVTY1RVUFNsVlBWUlBHZHJfYUZYaU5JWFRXbmllfWlseGtiV11VW3RkU1JXaFFYZlRTR1lZT014dltfZWtpWWFgXl6ObmJma3l1bm9pdnaAf2yDgH2HmHuAh4GJfmuTiHJmdIB7dYCDfYmPf4uTcnyKkYWHn4Z7f4aMc4GGc36Cdm6ki3KAjYt2d2x6jGBke3BmeXN4bG1xd4NnZHxtY2ZnaFNfXlVnX2xuW15ujWhOaW1gVFZTb2dza2V4ZGRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVweH5nWlZYYGx4fHtwhF9jX2dWWF9XY5uIYmtwgYd9eGxsem5deHNufGt2dG9wfIFzWGpuXlhcVWFiV2RwY1NeYmlhYmxaYX5sZmx0dm9td3dsaYaNgIp7iW5yZnJ+bnRuZFthaWlwdIF0c15pbVNlcWVWY29kfGRzeH13bHBta2BZYWZndFxkVWBVUk5XZFJPW05PSGRvXGJHWWlNSl9LWW1kYHlpbn5kYFVfVF11XFNSYGZOXGBVUklbWFBZdHVdX2VraFhiYVtejXFjZ2p4cXNuaHZ0e4RygoN6iI5+fImHjXlukIl0a3OBdH9/iIWHkYSVj3l9jI6HkZuEgHyMhXN/gXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY6Ojo6OjYyMjIyMjI2Ojo6Njo6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6Ojo6Ojo6Ojo6NjIyMjIyMjY6Ojo6OjY6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmhcQ0RERERBUsza2NjY2N1tPURERERFOC4vLy8vK0iFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fYVI0NTU1NTJG2Orn5+fn7WcuNTU1NTcnHB0dHR0YOoOBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJiIWFhYWFhYaTlJSVlZSVioWFhYWFhYSDg4OCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSkpOPjo2NjoePkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6NjY6Ojo6OjYuLi4uLjIuNjo6Ojo6Ojo6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCQkIeIh4eLhomQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJCNhIiGho6FjI+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkYmDhYaHjImJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMjomGhoaIhomPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2Qjo2LioyJjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj46Pjo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4CBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9/f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX5+fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn19f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn9/f4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn19f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn1+f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYWFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4fHt7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e31+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fX59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTk7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnd5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Oz08Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fX5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUA9PD07Pj06Ojo8Ojg5ODg6Oz1APzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkVISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz4/QD0/Pz48PkA/PT09Pz09PkNEPzs8PT5APT0/QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjs+PD89PDo+PT9CQkVAPz9OYV9KQENFSUlJSUxNS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk1LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8e3t8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFDREI/PkE/QURERENXdYaJin5YR0hKTExOT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm9wcXJ2dnl7e3t6fX1+fn19fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpISUdISElHRkJERkREQ0FVdIeJh4eGiIJXSUxNTE1NTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKS01KS0hIRkZHRkVQbISHhoaGh4eIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz8/REZIREVHSUtJSUdISUdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9fn59fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTUxLTUxJRkpWbIGGhYSEhoaGh4iGinVJSUZCPz9APz8+PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUtHSUpNTU5NSkpLS0pMTVNsb3J0c3N3eXp7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf3+AflFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lIS0xPTk5RTlFecoGFg4SFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QTs5OTk9PT47Oz1BQ0VISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5/fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BCRkhLSExLTlRne4SEg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0Njc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODo7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BPUlRlcHFzdHR3eXt8e3x9fn9+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9OjxEQkRGQ0NWeISEgoKDgoWJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc3OTk3NjY3NjU6Ojs6Ojw4OTg5OTg3Nzo6Ojg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT1BRV2tycnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PEdSYHyEg4OEhISGiYqKiIeIiImKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozw9Oj48Ojw7PDs8PDo6PDg6Ojs7OTk5PD88PUFCRElKTUtKS0xXb3J0dXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pj0+T3eBgoOEhIWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVCQUFCPkBDQUA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEFAPz9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUJBR0pOT0xJR0s6ODo7OTo6Ozw6Ojo8Oz0+QD5OfYKDhIOFhIaJiYiHhoaGh4iJiouLioqKi4qLXj5ER0lLSkpGR0dERkhHRUNBQENFQ0JAQkNCP0BESEVDRURFRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6e319fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj06PDo9PT4+Oz48Pz5CP0x+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqHV0dMTE1LTklJS0hJSkpJRkRERkdGRENFRkRCSElLR0hHRkdHRUtKTElLS0pDRkNDREJBQUNCRENDRERDQT08PkBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc7Pjs8Oj0/Pj88Pz5CQUQ+Z4OChYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtHRUdISElFRUhGRkVMTE1JSkdHSElKTk1PTUxOS0hGR0dFRUNGRkZGREVISEZDQT9ATG1wdHV2eHl5eXx8fH19fn5/f359fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw6Ozw6PT88PT0/QENCSFN+g4SEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMTExKSUhGSkpFSkhHS0pISkdHR0tMTkxMSEhJSk1QTk9OTE9LSUdJSkhJRElISEZGR0dJR0NCQUNVb3F1dnh6e3h4enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6Ozc8PTo8Pzw8PT9CQ0NMbYSDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMi4uLi4teUlJQTU5NS0pHRkNISkdMSkdLT0xLSkpMTUxPUE5ISUtMT1FQUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgICAfn9/VUVDRUVHR0VEOz9BOz08OD89PT5ARUQ9QkRDRkp0hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUZGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1JQTEtNTU1LTkdHSkZGSUpEREVFQkRDY3F1eXl6enp7ent6e3x+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz08QT9BQURUS0JISUZJS3iGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hKSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQUNGRENES1ZQSk9PTlBReYaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVZdWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01LTEpJSUxNS09NU290dnh5eHd5enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SExJTVBLSUpPU1FQVFZVV1V2hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXl5bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktKSUlGQkRAQTpPUVFXWFBQUFFSU1JWV1dYWG2BgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaWlhcaGJHT1ppZ11bXF1dV1NOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpaUlNRT1FSUVVSVVNWX3V4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX59fn19fn9/f3+AgH9/gH5+enh3dnN1e39/gIB0a35+a3F5XltWVVNST0tGQ0RBTV6DbFZSU09PUU9RVlFTUlJUY2R2gIOCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JVUk1PWVFNTlFTVVVNUVNSUE5MTEhDSUdSU1RaXW1ydnZ1dHR3e3p6e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRgZF1eW1lVUUxJTElhbJJ0UFFTTVFSUFNbUlNSUVJVVWJze3x+gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5CQkNDQT9EUENDQEM+QkhHVkBJTk1HXWlRSEZPRkRFRkhHSEJDSEdISkdEQkFDQE5QTVJkdHV2dXN0dnl8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZoZWViXFhTUVBVUnNXZVtPT05MUVJQVVlTVVFRVFJPVmBrbHN2ent4eXRybnN0c3l4fn6DgIODgoGCgIKBgWtMRz4+Ojo+QD8+Pj5qUEthRUZISUVCP0hNTUdNUVVKQkU/Pjw9PD09Pz0/QUNCPz88PUI+SU1GVW91dXZ0dHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKT1BOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxuamhgbnJpbWxxdXt6fXt4enx8eHd4ZEJAQEE8OkJDQUFDQVtcT3tOT09OS0xNT09QTEtMV05IR0FBPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV2dnV2d3l8fHx9fHx8fX59fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT09eXFpJR09RUU9NUFFOUVJTVlhTUllUTllaW1dZXF9eX2VfXV5xd2teYGdrd29vbGpvbm5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FXUE1KREY+Ojk2NTg3OTc5OjM2NTc5NTxCPWZ0dXd4d3p5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LU1RTUFFVT0xSU1RXWFNUWFFMWFlZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT01MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnJ1eXl6e3t9fX19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5NTUxKRlBQVVlTVE9KTk9VU1RcVlJVU1NPTUxJSEhGPz49Ojc4NzY1OTk2NzU2NVdxcXR4enp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFdZWVlSVU9JR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFBPTk5NUE5UUlBSTElMS09SUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVlFTRkZBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPTNAPmpvYVJSUUBHVFFPUFBRTlFPUE9MSkxMT1BOTVBRUU5QT0pMTU1LR0VFQ0I7PT08OT1HNjY3NkRucXV3ent7fHx9fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVVlZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JCOERNU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FMTk5NSU1MSUtLTEtHRkZFRDxBQT47QEU7PDg5VHJzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1AQEI9PkVIRkRGRklHSkpARkFBQEVHRElPSFFSYVxRUFJPU05PT0xMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZFP0JDPj1CRz9CP0BkcnV3e3p7e3x7enp3fHd5fX57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48QkFAR0pFTU9iZVBNT01XS0xOS0tNTUxMS05OU2RNSkxSSUlJRUJJSkxNTkpHSUZCQkJAP0VGRUhETG9wdnp5eXp7enx6d3R4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPSEtFP0I9OTk5Oj9CPzxBQkFBRERHS0ZESUlHR0hDQz9CPj8/QD5DRURMTVFUTEpJTVRGSUlKTElKS0lKTE1PUFFQS0dDS0dDQ0tKTE5PTklKSUdDQ0NESUpNTElac254eXh6ent5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFISkNGR0hHSktJSkxER0I8Pj06Ojo7QUI/PUJCQ0NIRUpMSkVJSUZHSENDO0FAQj5AP0JERElNT0dISkdIS0RISUtNSEpMSElKTEpNXVJISUROR0JFTEtOTlFOS01KS0ZHR0pNTlJOTWNuand2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhlcEZKQ0ZFRkRFRUZFR0NDQD08PTo7OjtBREA/QkNFRUlGSkpMRklJR0ZGREI6QUNDPj9DQ0NER0tOSEpOSERIRUlMTk1ISUxHRkZJSUxOS0lIRU9JQ0dOTVBOUE5OT01LSUhJT1NRUk5TZ2dmcm9zeHZ7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZl9wR0pDRUVEQkJBRUBEQj4/Pjs7Oz07PT9EQj9BQ0ZHS0dKSUxIR0dHRkVDPz1ERUI+QUNCQ0VHSElHTVBJRkZHS05PS0ZISUZFQ0RJSUhLSUdIUEtESk1NUU5PTk9QTkpKSU1SVVVSUFhlYWFtZnByb3J5emdlaGhjaWxmcWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VERkJBQEFEPEJBPkE9Ojo9Pzs+P0FCP0BCRUdKRklHSUdGRkZEQ0JBQUVGQ0JCQkRFRUdHSEZMUExJT0pKTEtJRkhFRkVDQ0hISEtKR0tSTUNPT05RT09PTk9PS0tLUFVXVlZUWWBfXWlgbWluaHJzYmVmZmRoaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXV2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01HR0VHQUFAQ0Q8QUFAQzw4Oj0+Oj89QEJAQEBERkhFSEZGSEZFRURDRUJESUZDR0VBRUdFRkZHRUpNS0hRTUpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9NT1BNTE5TV1ZXWVZYXlpdZGBoY2ppZ2tfZGVmY2hnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hBQUJFRTxAQ0JEPDc6PT47PjtBQj4/P0NFRkRGRERHRUNFQ0RGRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSERLS0xMTk9SVE9IVFVUUVRQUU1OUU5NUVdaVlpZV1peWlhhYGBgXmhlY2BkZWdnamhoamdobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSUNBQ0dFPEBFQkQ8ODo+Pj48PEJCPUA+QUJGQ0VDQ0dEQ0RERkdHR0lGSEpIQ0lIR0lHRkRIS0lGS0hNS0pLS0hLSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9UWVpZXFpaXF9fXV9jXlxiZGxjYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJS0hKRUJER0U9QUdEREA5PD5APz4/Q0I8QD5BQUdDRURDSERFREZGSEhGSEdJS0pFSkhISkhGRkxISEhKR0xMTExMSU1KTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJmXWRgZmhgZWhqZHNzZmpoZmxwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd3B3SUpMSUtHQkVERTxBRkREQjs/P0FAQEBEQUBCPkFDSEJFREZHRUhFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0tNTElJTEtNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFiYGNkZWFkaWNkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV1c3Bzd3R1dXd2dXV0ZXFza3BxanJ2cHdKTEtLTEdDQ0FFPD9FRUVDPUFBQ0JCQ0VBQ0RBQUVHQ0hGSEZFSUZDR0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlFMU01KTU1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5hY15gZmNhYmduaWNpaGhteHZtaGlub3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnNxcXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0RBQEQ+PURFRkM/Q0FFRERGQ0JFR0NDSUZCSEpJR0hKRkRLSkdISklJS0dKSk5LTkxJTEhKTUtaZkpkXEtsUkdOTV9uVWxzW3FwYndjUlBidnVodWNhdmFYbnFiZHZpbnpmXGx1YGxrVmB3dWhqaGhmZ2xtam1vam1vc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cnFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj88REVGRENDQ0VFREZCRUZHRERLRUVKTEtJS0xHR05JSEpLR0tKSUpKTkxNTUxMSU1MTFtzYmRwXmxsVUxOZXJdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm5ccHZncE5Mcnl2a2Fha2VlbHhta3Zsbm9zcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FBPz1CRUZCRkNFREVFRENISEdEREtIR0tNTUpMTEZKT0hKS0pJTEpKSUpNTU5NTU1LTk1NW3Jwb25wcGxrTU9QbVhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcF1gc2xxalV1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dFRUVCQUI9Pz9FR0JHREhFRURCRklISEVHS0pHTUxOSkxNR0xOSU1LSEpNSUpJSkpOT05OTUxOTUxcaGR1XWxxV2xNT1FuVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRklMS0ZNS0tSUkxITU1JTkpJSE5HSkpISU5PTU5MSk1NSlp0cHBvcXFtbE9RUm5Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpaXnRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0RERUBAPkNDQUZDSElNSEZDRkpMSUdGSk1MRk9KSldSS0dLSkpOSUlKTElLSklJS0xNTUxJS0tLU2tiWWleX2pjcnJaX1lqb19lZVVrX2RbYWJRYG1oXGpcbmlpZFtvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRkpERUNGQUBBRURDRkJISkxHRkRHS0xJRUZKT0xJT0pMW1FKRkhIS01JSEpKS0tJSElHS0tLS0dIS0pMS0xKSUtMTlRbXVRQVU1RT05PT1VSUFBRT09RSkpOUFFkcWlUWVZbW1xVWVpdWF1cXGNmYWFmYmNmX15ma21obXR4cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQEVDP0NHREVHQ0lLTEhGREdLTEhER0lQS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKSEhIRUZMSEhKTktIT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZFxhWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETE1CQ0RCRElFR0dGS0pLSEVFSkpKRkRHSFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdFRUpHQklNSUpUX1lgWGBhW2BVWFlUXV5aX1JZXFBeXFlOX1xeU1teZF5aXWBjX1lfYltgXltVWVhaX15jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN1eXl6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSUVDQkNGR0VHR0lKSklIREZLSkpFRUhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRkNERUJGSkQ/SUtITltjWV5eYV9SVFNXX19cXVleUVlcTVZfV0tRWVtRW19iYV1eY2FgYmJiY2NlWlJZVlddWl5kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkRHRUJFR0hGR0hJRkdKR0hGSEtJS0RDS0pNTUxMSEpKSEpHP0dGTktLS01LS0tJR0lFRUBEQUhJQT5ISUZPXWFaW2RdX1RRUlhdXFxcX1tLV1xMUlxZSU1eUVFdX2JjY2NjYlxkY2JkY2VYUldVVF1ZW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0VLSUZHR0lHR0pGRkZJTEpORUNLSkxOSkxJS0pJSUdCSEhRTUtLT01LS0lISEZFP0VCSEhBQEZFQ1RdWV5YX1lfW11VWFhQXV1RS0pWXlheW11WWmFSUl9fYmJgYGJiX2NiYmRkYlhQUlJTXFRcXV1eXl9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0dERk1SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0pJR0RIS1FPTUxQTUxLS0lKREVBRUNIRkFBRkRBVlVFXFReU1ZfWE5UVU5aW01KS1RgYVtfWF9eYl1PWWJcYGBfYmNhXWJiV2BfVFFQUVJZU15cW11eX2BhZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJU2NRRVdfSUdHSERGTUpQUEZJSUpLTkxMS01LSkpHRUlOUVFOT1BNTk1OSUxCREFDQ0ZEQ0FDREBMSENMTFBPTkxGTUZGSElIR0xMTU9QSUxPUFBTUExRU1JVWlhXWVdXY1ZOUlRQUVBPUVVUXFlZW15eYWFlZmNoZGxtcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtOXk1ISFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS1BUU05QUE5PT09ITEZgRUReTERmY0NMW0heXHNtT01WbVlMQ09fVGxXZ0pdV1VeRE1RVUxNU1ZRUlRYVlRYVFRcVE9lWmhoZVpVa1RYV1VbXFxgYGFiYmJgZ2lnbmxocnp8fX6BhISEg4ODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS1BUSktHYFRISk9KSU9NUlFLTUtMT1JVUk9QSkxOR0hNUVtZT1BQTlBRUEpLUX9RSXxZWXJzV1BtR3Fub2FWUHFxdE9CanNucXRwU29fW25YXVZcWFVraFVdVmNZYFlaXlVVV39pdHV1X2F2X1liXFxmW19hYWFiXmBjZ21vbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4fYB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxLT0hMUlhXUU5PT0xRVE5PUVBLTE9HTVBTW1pUUVJPUFBQS0laeF1UeGRoWFJTUHZmdGxwYm5ma1JyTkx3bWpycHNycXJwb2+AXWV6dXhxcXpxfnJ9a3V9YVJofGVzc29zc3x9cH54b39yYGBgYmJbYWFobG5rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRU1NSEtLSEpRT01OSk5WXllVTFFTTllZTFNSUk5MUElRUlRZV1dQVFBQUVJLSGd4bGN4cW1aSkxUeXB1bXVibnZQZGRIZXZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGhuWHV1anZ1cIBhc2h9aWx4fG9fX19jYlxfZGVnamplaGJjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFFIS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OUkpLcm91dXF1cWNoYFVuS3FwXkdoeVd2VEtoeH13YHl7c25hXW1vZFNncnVubXlwd2x2c3RxbG1cc356a215fGx1bnxscXZ1eF5fX2JfXV9lZGlnaGZlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUUtNTkxMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05RSVJtSGl3S2BkdnZUVmxObmx7cmFqZ391VEtWa2d8bG1seF9acHp7X2B6c2Nyb3hxaGR8aXJ7XVRLa192dWxqdnx7bX55a3xwXV5eYltfYmRlZ2ZmZWNbY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxnbG1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTExTU1JPU1JYUldUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFNT1VMS0tSU1JRUk9WVVFRT1JSWFhQTU9VVFdYWFtbVVFSV1tXWFdbT1JUV1dYUV1YVlxVVE9YUldXWFlaYFxncl9bW1tdXV9jWl9jY2VnZGRkY1pkYmdmZm1ubXVmZmdjYGZeXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJOUlFQTFZWVFBUVVhVWlZSW11WVVRXVVlYT09MTldUUE5VU05QTkxRUEtJUVFLUU1KSk9RVFFQUVNSSkhNT1BRUlBQUFRWUlhXXFdTUlBRVVVVU1pRTlJRV1VTWVZUWFRTUVRTVVVZWVheWl9hXVxbWlxcYGNcXWJjZGdlZWViWWBhY2FiaGhqbmNhZF5fY11aY1xibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVJNWFdVVFZYV1daVlNcYFZXVllVWFRRUEtPWFNQTlVQTlFOTFNQTU5VU05RTk1OUVNQVFBSVFROS01PUlRUUVFRVVdVWVpbWlNVUlRYV1ZZXFNPU1RXVVRZVVZYVFJRV1VWWFxaXGBdV1lfXV5dXF1gYV5bYmJjaGdmZWJYYGBiXWBoZWdlYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWU1RPS09WVFBPVFBQUU5NUlFPUVhUUVFPTU9SVE5XUVNUVU9OTlFUVlVSU1JUWFZaXVxaVlZRUldYVVtbVlBTVVVVVlhTV1dUUlFYVlZbX1teYF9WX11eYF1cYF9fX1piY2VoaGVlYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVVFPVlxaWldbW1xZWltkcW1oZF9bWVZWWFJNTldTTU1ST1FST01QU1FVWlVUUFBMUFdVUVZSU1JYTU9QUlVYVVRUU1RZWFteXVxbVlJPVVZVW1tWUVNWVFZYVFNYWlNSUVlXV11fW2BgYFZiXGBhXWBiX1xgXWNhY2hpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5QV1NOUVFQUlRSTFFUU1lbV1VPUk5TWFVTUVRRUllPUVNTVltVVlZTVlpYXV5cXF5WU05UVlZbW1VRVFRVV1hSU1lcVFJSXFhaXV5dYmFgV2JbY2JeYWNfXGJhYl9kZ2llZ11cZGBhYGFjZF9iX1laX1tcW1hYWVdXWlpaYV1dW11cXFpdYFdbW1pQT09PWVBVVVNSWFNUUFtdXl1cYFxgVVxcaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUlZVWlpaU09TUVVVVFJOVVFSWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZWV15aWFFUVFdYWFNWWVxUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXl5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVldWVFRUXl5gX15iXWBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVUk9XUVNXU1dVVlteWFtZVVpeWF9eWVxZUldSWVhZX1lZUlRVWVlZVVdZXFVUWl1dXmFiYGVkXV5dXWVhYmZkXl9kY2BcZ2VoZmRiYGVhX2FhYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lRXVVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFNXVVRSU1dRU1ZUWFhYXl5YXVtVXV9YX19YXFZRWVRZWlphWFtUVlhbWVpYWVlaV1ZdX2BfZGNiZWVeYlxgZmJkZmRfYGRiYVtmY2hmZGZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaV1RcVVdXWVdWXGBhYWNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVFJWVVFTVVdbW1xfX1pfXFZfX1ldXlleVlNZV1lZXGJZXVVWWlxaW1paWVpYWV9fYGBkY2RlZWNkWmJmY2dmZV5hYmBjXWJjaWVkaF9nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVZYV1hdX2JhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVZVU1VUWF1dX2BgXWFdV2FeW15cW15YVlhXW1pfX1teV1hcXFxdXVtaXFdaX2FeYGVkZGZmZ2NZY2ZlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpZWFpYV1tbWltXWFpUWl1cW2BcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9dXV1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBXVVdYV1ZWV1ZdXV5hYmFfYl5ZYV1dXllcXVlYVVZbW2BeXF9ZWV5dXl5gXFpaWVtfYl9iZWRlZmdoY1plZmdpZ2NfY15gZmVaaWljZmljZl9iYmNhYGBfXV1aWFtZWVhYWllXWltaWVdZVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW1xfXWBfXVtgZFxcWFpiZWNhUlxZT1hWWVtZWVdaWmBeYWJjYGFjX1xiXV9dW15dWVlUWF1cX19eX1taXl5gYmJbW1dbXWBiYmNlZGdmZmdlXWVnaGlmY2FiXGNnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXV1hQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYmBjYmJdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeXl5aWFVbXlxcYWFfXVtgYWJmYl5bU1xfYGNkZGZlZ2dmZmZgZmdoaGdkZGBbZmdeYWhoY2loZmNgYmBjYl9fX11dW1pbWVhYWFZaV1xbWlZWVUxYWFxnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIeJh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl7e3t7e3t7e3t7e3t7e3t7e3x7e3t7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXt7e3t7e3t7fHt7e3t8e3x8e3t7e3t7enp7e3t8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09a9homJiYmKh3NxcnJycnGDiomJiYmKjI2NjY6Ojol/f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk6MqJjIyMjIyJcm9vb29vboWNjIyMjIyOkI+PkJCQi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5eXp5enhvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4OEgXx8fHx8fHx6enp6eXl5e318fHx8fHx9fX1+fn19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnZ4eXp6en55eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd3d3x8fXx6fXt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3d5fnx9fXl9enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6fHl3d3t+fXx8ent6d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eXp6eHt9fXx7fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoF/gIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl3eHp6enp7eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYKCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGCgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgYGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYKCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKCgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qKi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhIWCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYWEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHR3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uIioaGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLioqLj4+Ni4eEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoGCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYKDgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGDgoKBgoGCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgYKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWFhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkZGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4KAg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWFhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+NjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYGAgYGAgIKBgoKCgYGCgoGAgoKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOCgYKCg4ODhIKDg4OCgICAgoKCgoKCgoODg4KDg4SCgoKDg4OCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWEg4SFg4OEhYSCgoKDgoKEgoGChoWDhYODhISEhoWEhIWCf319fX6ChIODg4ODg4ODg4SEhIOChISEhIOEhISDhIODhYaFhYWEhYWFhYWEhoaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMi4iFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIOEg4ODhIWDgoOEhYWGhYaGhYaHh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoaGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eFhYeFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4eGhoWEg4SFhYaEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CBgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhIODgoSFhIWHh4WEgoB/f39/f4B/f3+Af3+FhYaHiIiHh4eHiIiIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aHhYSDhIWGhoWFhYaGhoeHhYaHhoeGh4eHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OChISEhIWEgYCBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qKiIiHiIiIh4eIh4eIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhYOFhIODgoGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiImKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWEhIWEg4KCgoKCg4F+fX5+fn5+fn18fn19fYOHiYqKh4eFhoeHh4eIh4iJh4iGiIeHiYiEg4SDhYSEhYWGiIeGhYOCgoSFh4aHhoaEgoKDhIKDhIWCgYKBgYGDg4SDhJGSkY6PjYuHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWGiIuKhoWGhIKGhYGEhYODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GCg4SFhYWDg4WEhISEhYSFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYaHiIeGgIGBhYODhIWEh4iFg4GAgIF/gYyGg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICBgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5/fnx/h4ODgoOCg4F9fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF/fX1/gIF/f35/gIB/gICAgX+AgoCAgoKBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCBf3x9fX59fX6AgH59fn17fX6Bg4OCgoGBf319fn6AgIB/fn19fXx7e3t6enl6gIB/fn9+fn59fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36AfX1/gYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f39+f39/fn1+f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZKSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgIB/f36AgYSDgoKBg4SEg4SAgYCAgYCBgIGCgoOBgIF/gIKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enp5eXl9gH+AgYGBf3+BgH+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf39/f4GAfn9/gH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDg4OCgoKBgoF+fn19fX5+gH19fX19fX19fHt6eXl5eXmAgoKChYOAgoOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4KCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeIh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgYB/f359f35/gX+AgoGFhYWGhoeHhoeHiIaHh4eGh4eHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomWhIODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgICBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fHx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgoCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYmJh4WGhYODgoGCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoOEg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgYCCgoCDg4SEhISEgoSDhIWChJGRjYuMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDg4WFhYWDg4OEgoGDg4KDgoKBgICAf4F+fn5+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42OjYiIh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/f4B8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICBgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX19fXx8fYB/gIB+gH5+gpSRi4yNjY+KhYaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317en2AgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fHx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4d/fXx+gICBgH9/fn19fX1+e3t9f39/gH1/foCMkY2LjI2NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn9+f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19fn9/fX6Afn5+hJKMjIuOjIuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gISDgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXx6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yKioyLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKAf4CAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t8fHp6fXp+gn+Bg4SCgYKBhYaFhYaGh4WChJGOjIqJioeHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn59f358fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJiomKiYWIkY2Lh4iGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH18fX19fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+g4WIh4iKi4uKiYyQjYyIiIaFhIOCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+MioiIhYSEg4GCgoKCg4KBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgYCAgYOCgH+Bf31+gH58f3+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX1+fn1+f319fXt8fX58fHt8fXp6eXl6eXt7fn6AgYOHhIiNjImJhoWEhIOCgoKCgoKCgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKFhYSCgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn59fn6Af319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiYyJioeFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGEgX5+gIB9foB+fX5+gIB/gX5/gH9/f4B/fX5/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyJiYeHhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX1+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99gH99fX59fn59fnx7fHp8e3qAhYKDhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn19fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIOBf3+AfoCBfoCBf4B/fn5+fn5+f35+hYWAgYB/gIOBf36BgH9+gH6Af359e3p7enx7eoKDf4KCgoKDgoOCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOBf3+Af4F/gH98e3t6fHt8gYB/gX9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OBf3+BgYCCgYGBgICBgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fn2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSBfnt7fHx8fX19fn16fn1+eX5/f3x8fH59foGAgYGBgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChIWGg4B+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhIWFg4ODg4ODgoGCg4KBg4J/gYB/f35/gH19fX1/gICAf39/f3yAf3+BgIGAgH99gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gIGAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3Zxd3lyeIWFhYWDhISCgoOCgYGCgYCDgYCAf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGBgX5/fn5+fX19f35/fnx+gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgIB/fX5+f4B9fH59f4CBgH9/goB8gH+Afn+BgH9/fYB/fn9/fn19fICAgICAfn9+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYOCgoOFhYKCfn19e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzcHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgX1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39/fn18fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WHhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgoGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKMenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKCgIGBgoGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhol8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX+Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt7fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKAf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+BgIB/gIB/gIGBf4CAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGFg4OEgYGDgYKCgoGAgICCg4KAgoKFg3+BgH6Cg4CAgYCAgH+AgH+BgYCCf3+AgYB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKCgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl5fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDhIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX17f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgoGCgYCAgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIODhISDg4SDg4KBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYKDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH96e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKChYSEg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnR9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4KDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9f31/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn91dn+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoKCgoODgoOBgYGBg4J/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISEhIODhIWEhISDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx8gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4GDgn+Cg4ODg4KDgIKFg4ODg4SDg4SDgIKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+fX5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WCgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fXx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYuJhISDhIWFg4eGhoSEhISFhIWEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeoN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgISDgH99fX59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfH9zgoN/g4N9gX1+fn1+goOBfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9/fX6BgIF9gH99gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/fn6Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeHiIaHhIaGi4mFhIaHh4WDhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foN0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYaHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhoaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISDgoF9f357fHt+e3x8fX9+fXx+foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFh4aHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGhoWGhoWDgoWFhoWFg4WEhISFhIWFhIWFhIaHhoaFhIaHhoSEhIWDhYSChIODhYODgn2Af3t7fH57fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn58fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYSIhYaHhoeGiIaHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaEhoaFhoWEhoaFhIOEhIOFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGhIWEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4aFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEgoSDgoSHg4SBgoSEg4GAgIB7e35+fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH18fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoWHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYWEg4SEhYaGhoaGhoeFhYeFhoWGhYSChIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eGiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODgoKDhoGDfoKCg4CDg39/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYOFhYaGhoaHhYeGh4aHh4WEhYWDgYOCgIOFgoN+gYGBf4OBf39+f35/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYWFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHhIeFhoaIhoWHhIaHiYaGiIiHh4aHiIaEhoaGh4WFh4OEhYSGhoaHhYWEg4WFh4WHhoeFhoaGhYaGhIOEhYGBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWHhIaFhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeGh4iJhoWIh4iHhoaHhYSGhYWGhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OEgH+BgICDgIOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH5+fnx7e31+fXyIhoWGhoaFhYWEhYWEg4KBgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiGhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhoKCg4N/foCAgIF/g4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18f359fHx9f358e4iFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WDhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg39+f4B/f3+Df3uAfX1/gn2AgX1+gX59fn19f3t/fHt6eXp6eXp6fHl6ent7e316e3t7fH1+fX2BfX18fH2Af318hoOGhoaGhoOEgoWChYGBgH9/gIB+f4CCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaGhYWHhYeFhYKDgoKDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCf319f35+gIN+e398fICBfYGAfX2DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHx7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5+gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDg4SDg4B/gIF+fXx+fnx/g318fnx8gYB+gn99f4J8f399fXx8fHt7enp6enl7enp6enp6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIaEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhIWFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfX2AgX9+f318e3x9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc7PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ5Ozw3OTw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU1NPU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo7ODg6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk4Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vKysrLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1NXU1NTU1NTV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0NHQ0NDQ0NHR0dHR0dHNysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2tra2dnZ2dnZ2dra2tra2dna29vb29vb29rb3Nvb29vc29vb29vb29vb29vb29ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzZaEhoaGhoaHh4eHh4eCsuLd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqJkpmYmJiYmJiYmJiYmJiXjIuKioqKioqKioqKiouGgYKBgYGBgYGBgYGBgYOLioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5uUFNTU1NTVFRUVFRTTKDz6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTUWJsa2tra2tra2tra2traVVTU1NTU1NTU1NTU1NUS0NDRENDRENDRERDQ0NGU1NTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj47PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zOcVRYV1dXWFhYWFhYV1Ch8enp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1ZlcG9vb29vb29vb29vb21ZV1dXV1dXV1dXV1dXWFBHSEhISEhISEhISEhHSldXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNznheYWBgYGBhYWFhYGBapO7n5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJhb3h3d3d3d3d3d3d3d3d1Y2JiYmJiYmJiYmJiYmJcU1RUVFVVVVVVVVVVVFZgYmJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3HxcXFxcXFxcXFxcXFxMvQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs7Pzs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy83Ozs7Ozs7Ozs7Ozs7OzczMzMzMzMzMzMzLy8vMzMvLy8vLy8zMy8vMzMzLzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz8/Pz8/Pz8/Pz8/Tz8/OzM3Mz9PS0s7Nz9LOzs7Ozs7O0dTU08/O0tTPzs7T08/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tfX19fX19bX19fX19bX19fX19fX19bW1tbW1tbX19fX19fX19fX19jY19jY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7O0bCCg5PN0qig0M/RpKHQzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8mburibsLeeo6fWr5+hqdLOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9HDoo9/icWempOdwJ6YlZzI0M7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv56KqNO+mKGctJicop2wstPPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P0bqkrZyhtJmWrbmGnpavs6rV0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz9HAoJ6TqZCbgaCWeJuEnZOk1dDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0qawrp+An6iInHmfqYWZpNXR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHJ18ScgrivppyKva2mmK/W0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXFjZ6gn5mnl5edpaeWmJu71dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NDc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HJwaGtoaDBoqukm9Cfq6Sc0dPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09WrjY+p2MWQjbfXwo+NvNXS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MG+1dLUx8PW0tXFxNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQT43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHU1dLS0tTV09PT1NTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODg4NDs/PD88OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTw8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6ubi4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODc5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTg4Nzk3Ozk6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlp6mmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTk9NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFBPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNBREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9DQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6PDs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ojk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTg7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD8/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5APz1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo7PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8OTc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTk7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ubm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVkIuTk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODQzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMj4+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEBCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uNj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhH+Cf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo7Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhRSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxkY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGdiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbYF9aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QUVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3Nzo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZU2FoYGZzb3Npc2NpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bm1bYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0JERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqUkZmXnqGVmJqSl5SVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGv8XHy8jUy8rIxr+7u77EvsXIxsbExMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4t7u2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmcmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtoZ3VaZnJ3c3hmZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw7PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsjBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvri+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3YmJgYF5YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lodG14bF1kW1VgWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw+PT9BP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMXJxc3QzsfMycLBxsHLy8fGzMnNxcbGw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZHRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8O/v77Ey8jKy8i8u8jHyc3Iw8jJycbFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZjWllZXFlRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7q9wLm9urq0v7i1t7Ovu7y3wLe9wr/Bu7/BvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVZVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wL+3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0tSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3tbq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8urq0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYm1fXFRIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4tre/v8S8wsXFx8fKycbPwsG4rrW1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrrAwr+8tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2dhXGNRS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmBhTkhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+us720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcvGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+Q0VJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PT8+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdWl5cWVFFRENNSUFEPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBw8O7ubO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG1oXF9fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d21wYF5lXVtUSjw+P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3srKytLK3vrqztbK8ury2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZybF5iYFtdTkhBPz1IQ0ZNRD83NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWSmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq2tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d297b3VybWNcZlhcXVJOTUE+SkJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKx77AuLm2srS2s7SvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLawqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c211aWtdWmpUXVxPTUhERkxBRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u7+/ubS0s7GxrrC5uba8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIP0hRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmura+ysrq6t7e1tby0r7Srtrq4wMTBu7W8vbiyrbOwr6yutraytLSvqqSenJycnqion6CoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWjm6OclJCMjo+Qk5CXlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFBoVFBOR09NTEJPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLi0p6Wsqqi1srGwrq+yp6avo6+utcG6tbeyt7aytKuytK6qq6+wsrOtpZ6SmJSPmaCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsKOlp56gnJWTj4+RkJiQlpWYl5+Ym5mbo5mXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk5KTkc7REA9Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaOkrqWsrLS8t6yysa+xrbWvr7O1qqetrKOcmZSOkZaXmZmcoKOim52lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZaal5eYoJ6cnJeboZqemqOnpZ+hoqKjnZuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh6YGJSVV9ISUlLU1RJUlBMOD5CNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6jqK6trKurr6qvqZ+XnqWenqWmpKCin6agoq6rrK21sramr7Srqaq0sbCwuK2noZydmpSYm5qRjpGVkYyPjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruaimq6erq6msrKegoKOxrbGxtKmxr6KZnJ2eoZibm5qYmZuUlZqWmJyloaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1pZTVFKTk5VTFJMQTc+Qjc4PTc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpZ+ckpyim5+ho56doJ+joKKvrqyvsay2p62xraamsK6trLCnoJ+ioJeRlJyhnJmYkpOfnaKkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwp6uosrW3s7essbSjoJ2ln6uhoaKgn5qYlpWfm5uYpKGgnqOhoJ6anKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTUc9Skg4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjpOemaidrp6nnpyhnZ6amZKZnpyioqCgnaKfn56fqaunrKmqtKurraulpauoqqyqpZ+emZKSlJiZlpaWjIiLjpWdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oauiqaixqaqop6eamZ2aqqafmaegn5+nqKWknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pd21obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKagnp2dl5iWmZ6bnKSfn52knZqdnKSipKOiqq+sp6mjoKGsrq6qq6agnp6ho56enpudnJSTlZSenpiUhp2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK6nsa2xwra4wsbAyMrAyr+wubm9ucK9uLO7xcO8wru3s6myraqztK+zrqmuo52rp7axrKKvpaCjr7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaWeppmboqSen5ubm5yHhYF7dHJra3VycGdXXFFFVEhESU9IPkVBM0VIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpZ2Vm5ufmp6cnqWmp52goKuxrqekpKOgnqWrpZ6XnJSRmZ2YlIyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczLzNLHvr/Awr3HxsK3w8nIwsDFvrm0ubq1urewtbKqurGuu7a+u7qqt6yqqri6tLuurbijpaKep6Wio6mmmZufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR9enJrZGlveGplWltGSkxERFNMREJENzo/OzU0OTk3OD4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlZqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkp+fkJafmZKalp2bmaOhr7OpoZqdnZ+fmpeYl5KMj5aXk46NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3Mx8nRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXR08zTz9PTzMrCxcbGysfOv8jQy8bExsTAu8PAvr6+tb2zrb6/wsPGxMfDrb64sri8xMHBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURCQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6yen66mpbGqxcbMzs2/sMKppaitraqhnaOfnJ2aqZOZoZCOoJONlJKXmaSxsaukoJ2gm5mXlJOUlpGQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys/K09fR19LU1dPTyMzHzc3J0szN083Ex8nJwMbLxsjIxb7Cs7PHxMvKys7Fyb+9v7zBx8TMzMjJv8O/rbCzqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/enJ1dWdiZ3ZpZFZXUURNRkBJUUI9Qjw6MjNAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmfk6OYlp+enaSum5+wq6isscnN1NfPxrvHrK20uKyuo5+ko5+gpKyblqmWjZeNjI2XprCupZ2enaGloZ6blZSWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HS1NTSz9HD0NPW19XW0svJztDLxs3SydLV1tnV19PW2M7Syc7RzM7Qy9LPv8fGycPLy8vOz8XGx7a/yb/SzMvPxcnHv8PCx87M0NDPzMrHzbi3u6ifpaunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHdzdm9jYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU6NzY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopuppqKmq5qjsLGpqLXQ1Nfa0sfGy7S2wsaytqmipaahoqu1p5qxoZaVjJCmrauclZihnZuhop+cnZuVindpY2BfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTOz9XU1NHRzNHO09fW09XQz9LT0cnT0cfQ2NfY0dfS19nV1szOz8nM0cvO0L/FwcfFzczQ0NHIy8zAysvF087LzsjEycbGyMvK09PQ1c/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NDQ6PTUyNzU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr66qqqyepq64qKu32NTV2dnRztDAvMzJt8Cvp6upo6SxtrOjtqqfnaGqqaGYlpiam52hnpqdnpR+cmVjYl9fYV9fYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvTzdXU0crPzNPW0tHWzdDV1dHF0dTK0NTV1s7S0NjY2NfLyM3DyM7Mysu/yb/HyM3Nz8rQzc7Lzs7Hys/Qys7KwsjGyczKy9HSzNPR0M/Pyr3IubCtu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bua2JlbnBhV1xaSUZGRExXRTtAPDMzPD04Njg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw+PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snnri2tbWtpa2uvrSxwNnS19rc1s/Ny8PT0MLCsqutrqyms7G4q7O3qaOfnJaUl5uen5+dlJaXlYlsXl5eYWRiYGBhYWBgYV5fX15dYm1yb29zdHZ2eaS+y9XR1tTT2NbOztPLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHTy8vP0dPJztHV0tXVysDJwcXMwsjJwszCxcjJys7KzMzPzdPLxcfPzMfHysTGwMXJy83P0MbPzs3NzM/Fx8C3ub3Cw73DubKzvrC7w8S1qZiloZmWkZWVkouUjZqRlJSPj5SCiYV4cHFrbWhgYHFoWFhoVk1HTElQUEI7RD47Njc6ODk6NTc9PUE7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfDucvV1tna29jNzM/J1tbFxLiytqqkrqy5ubGywKGXjo2YlpCTkpGWlpaQjHxlYmJiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycTJycbGv8PFzs7HxcfNytHIy87NxtHSz87M1MrHys3Ox8fP0svQz8W6xL7GybzCxsjOxMLHwMbNx8PLycvPx8PDz8jGwcbHw77Ax8vLy87CysvIx8vPxMXHu8fCyMjCz8C9vL+wwcrHur2qsLKnpZ2inJiQm5CkmZeZkZWYiY+Cd250ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU9PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJuls7Gsyc3KyMS+vbrNzcbQ1dXZ2tvY0MrQ0NLUysW6vr6wqLervrm5s6WSjo6WkIaDhISCfoWFf3RgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6v8O7u7q5vsjGwsPAw8fKycjKx8HFy8bIy83JxMLKycHCy9DEy8i/ucG6xce9v8bPysO/w7rJx8i6x8bEysC9wcvGxcO9xby8v8PEy8TEvL/JwsXH0cXAyL/KycbHxtDDw8bDr8TLx8TKt7+8urSprKWlmJ+YrKOhpZqjoJuUe3ZydGZpWmFubVpbWFFETEZCR0RMREZTQDU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMrP0czHwsPHzc/OzdXQ1tnY2dDN1M7P0MvEuMbBtrW8scC3uq2RjJOXh3uAhYaAdnh1cnBfWltdYGFiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbBsLa6srK0srHBvLu7ubjAwcHFvr25vb+5xMrFxsK9xsC3u8TJv8LJu7e6usXCvrzBzcLGvr21wL3DurzGu8K5s7zFw8LCtr+1tb6/usvDvLW6yLq/vcvDwcXCxcjFyMXQxsLMx7LGycPOzcHFwr+9srews6eoqLmxpa2wq62slHl2d2plaGBob2NWXllKRUpGSEtBRkJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc7P0snRxtbV1tjOzNDIzcjKxb7KwbK1ure7trCRjYqLhXmAhoaAfoR8dHVkXFxdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rAuK2wsKeqraynuLS2tLOys7q1vbG3sLSusrvCvMHEvL+6tbK6vsC4x7i0u7XAwry3vcbAw7u0rrK2ur6zxLe7tau4vL3AvbC6ta+2urLFvLauu7+0trTFvL7Dxb/DxMXHy8XAxsa7x8u/z8nHw8bBw7fDvr22ub7Gv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkNBRUU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6Wrs7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDNzsnLyczKy8bRz9PRz8jLxsrGxMC9z72zub25uLecjoeJiXt5foaGd3iCfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7m4tbCrrKeeoqqnnquss62pq6mzrbawsqiupqyyvLq2w7m6ubCrtbm7tMK6sL+wvby7tbvHucK2raqosLHAtbi8r7CnsbO0u7yrrbWlrrauurGwqrmvrbuuu7i7v7+9ucK/xsLFwLzGwcjLuMXHxb/Hw8O6xMbCu8XJzMuzucK8urKIcnZ2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOjk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs/SzMTGwcXQyM/CxMfBxsbFxczEy8zCxMHIwbq8u8q3tLy9trWrkYmQkHx5foqFenuEgXduXl1dXV1fYF9fZGNiY2NiYF9dW1taWl1aWlpaXWRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauto6eiq6msqrCjpp+qrbW2sb25r7evqK64tLS8uLO8rre5tLG7wbHBrqWpoqyxsrOnvKqrqKusrbS0pqiuoaSuqbKlp6iupai3rLCyt7m6u7G8vb6+xL+1wcHHyLe/wMW3xMK/u7/Ew77EyMzKv77DwMCphnJ0cmppXWFvZFdWWFBIWlJTS0ZGRT4/QDk3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7rEsLawm5mVnJiqqbCxs7W9r8bR0M3EyLu7zMPMwLzKucDGwLzMusPHxbq9xL66t73Guba5u66ylYOJjYF7foB+eHR/fHN3Zl9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSepJuXkaGjqqOin6Wlp6Ssn52bpKassq+2t6ewrKeqtKu0ubC2tKy2uLGvurmxt6Sfo5+nsaerqLmqpKanqKeyraCnpp6bpKasnp+npJ+gsa2trLK0srOwtby2u8HBsrq+w8GyubrCs8C9v7W4u72+vMLHxMLDvr/DoIN3cGthZV9rb2BVWV9ITmhPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbu+taCelJ2hprq2q7Ozu7PF0MnMw8e5uMnCzsG6y7m9yLu3yLu3xMazvsW8t7C5wLuxs7ewooSHh4J9eXZ0b21rampxaV9gXVxcXV9gX2FjYmBgYGBdW1tbXFhZWFhYVlhbXV5kY2JlZ2dnam1viJ2poJeVmqGWm6KYlY2eoaKmm5+fo6Whp56aopufqrCtsbWiqaqpq6yktbitt6+ssrSusrSusKqfnZ6jorKkpam4raGmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqq6ytsLK4r7i5u7C2u7u6q7KyubK9tLaxsbW0v7W9wL3Dwbq6vZeCenJrX2VeZGRYVFheSVddS1BHSUpGQTw/P0A7PzwwNDUzNTo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xtDJycHHvLzFxdDAvMq7u8G7tsW4tcHBs8LEvK2qtbq3qLGzqYuGiIB5c25wbmtiXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWltZWFdXV1dYWFhbXmJkZGVmZmhpa3KNqJ2UlJSbmJuhlpaQnKGhqJ2bnKWmoaSbn6CamK2ura6yoKWiraunobWwsbGsp66yp7mzprWhop6ao6KtoqGptaqio6adpaajlpiel5ianZ+Zl52cnJusoaumo6Smrauys6q0sLKqsrm0r6mvsrKyt7Otqayusbewura5vb+2srGUhHl1ZV5lXltZVlNaVUtbUUxJRUhLSUI9P0FBQEA6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vb+znaWjmKWxwrW2va20uMPNycjBxrjCwcjQusPGwLa8vbbDura/wbW7v7uqprG7saiyr5t9hYWAeXBxdHFoZmRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hYVldhZGVjZGVkZGhqdqKclJSPlJaXn5eZlJifnqGclqGhqKOfnaicmpqqpq+wq5ujo7eqoJ+uqLappqassKO3sKO2oKKbmJiqpqGbrLivoqGknKGfoJOVoZSWlpuYl5aXnJSfqZ2po6Gdo6qqsK2otKuqpq2ysKWqrrKxr7Curqenp7KusbSvvLS5tq6jlIF5dWReYVZZV1NSVEtNXkxQS0dHTEtFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Oqu8C9wLmutLjCzcjHxMW+x7rKzbXExcWxv8C5wMG6wMC5ur23qKixu6apoqWJgX54cmpscnRwaWhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtcWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5GUk5uZnJaWm6Ccn5Wgn6alpKWmnpyfpJ+qr6afoqO2qKChoqizoaWnpK+lsKyrtJ6gnZWUqaGhlKyxsJ6iop2emJuTi6GUkZOXmJKXl5iWnaabpqGimaOlpKukpbCnpaOrq62lqK6vrquoqqqzpaarr7Sxrry1sa+voJJ6dnJkYVxaXVhOTFFHUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc7ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuyt6yepKett7u8wcW6sbm1xcrLwcTHx8m4yMa1xcLJr7q8wrzDwMG9vLe6tqansraeooqZiIB3b2RiZ2loZmhqZ2ptYF1cW1paWVpcXVxbXF5fXFpZW1lZWltXVVhXVFRXVVNUUlVgYF9gYV9gYWNkaYGUk4mRjpSSk5yUlZajmaCWnKCloa2lo6Oio6GbqqqlmZ6lsamgoJ2kqp2noZ6srKmorayioaGUl6ObnJCrqbCbn6KenpeYk4qeko2Sk5WPmJiSm6GinKSgoZWgoaOlm6OrpaKkqqOrrqStsammpaamtKapqK2ztbS5uq+qrJ6LcnBvYFtXVlVRRlFPSFpcT1JJVEtTTEVHSUM4Ozs9PDg2Njc6OTs6OTc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4NTk4OTg5OzlAOXu1tK20u7KwrLKtnaenr7m5s8DIurXAr8bJzrvCy83Jt8u/tMDHzLC2vci7wsfEvb+3urWlq7CunZqHjoN8dWlqam1oamxua2ttZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5eXl9fYmRtjo+EkYaPkY6Zk5SSnJqinJugp6iqp6qlqKSjmKSupJSZpa+pn5uYmqCerpmbqrOfpaaeoqOglJOblpWSqKmtmpygoaCalJCMmY6LkIySjJaUkJ2hoKOcm6KVm6CioJeiqKOiqKugq6+krbelo6OirK2pqKuvs7iyvbWzq6+Yg3JyaFtYWVNVUkVZTFBcWU1UTlBMUFJJTklCPD8/QT88NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s62os7auqaivrZupqKy3tqy8yru2v6zMx8a5ws/QybXGvrq+xsu1sb3FvcPGxL3Bs7mvpquvq56XhoF3eG9uaW5ubnFnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/i5CKko2XkZeZoqCbn6qppq2qpq+ip5mfrKCVlqSop52Xj46Zna6Wl6eqmZ+dk6WgnZGQkpKSlaeqpJmZmp2dlo2Mi5SGiI2DkIuSlJCgnqCjl5WflZqgop2Tm6Wlp6iooLGwprG8p5+jrLSrraewtLC4tcCxrbGrkH1wcmJWVFVOUklHVlFTUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo5ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OsprG3qqaisKudqqepsrGktsa0ubqzy8a6vMPL0cyzubq+wMTHtrS3vbO7vMS+wrG0rrGusaycoohraG5vcm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWllZWVxcXWFqgHp/domOh5CJmImUlJebmZ2om5+qpKSqnKeYoKWbko+eopqXloSDkZqjj5OinJWVloehmpqTi46Kj5mjp5yVlZebkJKHlI6MgYuNgJCKkpKRoZqfoZWTmJiVoqWYjJmkpqimoaC0sqeyt6Gdoresqq2ksrKmtby1q6uxo4h4cm1dTlBRTE9DTk5OUEtGTk5LSk5NUUhNSkFHS0hIQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSnpKmloKmlpLOqorLDtbWys8fHuLvEys3Hta+8v7i8xLOzrrairbXEuruvqqy0r6+gl6h9XmBnc3F2cWpuaWZoaGpfWFlYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWWFhZWFtdYW9zdnCEiIKHgJGDjoqUkZOdoI6am6Kgo5iklqGblY2HmJqMc42CfY2WloWQmZCTjY56mI6cjIKKf4mYn6KekJOYloSOgpN+fnOJjXqQhpKQkJ2amZqQlY+djqKjjomaoKGko5uitK+sr6yfmKW5pqWwobCunLC7qqmvqpmBdnJiVkxRT1BNQ1NOTFFNQ1BQSElOU01ISkpESkxFS0s8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNDg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd3t6GjtKilpaijpqWmpqazp6W0wLiwtLDKxrm6ws/Hv7WvvcOvsceyraeslaSuv7ixsJ+nra2rlpWicldWX2hnaWhpbmNqaGdiXFhYWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJtf4V8dE5Yco+Cl4aNnJeKk5Cel5yVlJaUjpaJf5OJXztXb3uLk4l/i5GMj4WGcoqEloF5gnqFk52Ug5WOkI+Chn2SeHFvhYx9iYCQjY+XmZiTio+InIiel4eHlp6aoaCXp6+oramonpattKKmrZisq5ins6GpraOSfXFtX1pOU1FWTERUSlBNTEZPT0lFTFFNS09KSU1QRklIPTc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5eLego66hpqaqoKepp6KpsKintMG5sbWwycO5tL/PwLqxsbjEq67Jrqejnoaborqtp6iWpqWkoZePlmlRTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXqCdFBCQH+VkZF9iZSMhIqNmoyWlYqSiIaVhnmIf2BKUW54ipGEfISMiYR/f25+f5R3dXZ4hI2ZcFGNiIqGe354lHZnd4WHfomIlYqNkJKWi4OJh5SEmoyBhJKblp6clKSjp6mlo56bsauhpKSQpqqWoamcoqaoiHRrZV1bSFFRU0xJVU1TSUxMUElHRktOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj03Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXa2nKKnnZ+hrqGnqKWnqK+sqra8tri2s8K8t6i6ybm3qaq3uK22wKqim5ODj5myn6KajaCWmZSRi4xlTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+GgXuFjJKBkpmLj3uGj391f3hzbnVwdI2NgXl9iaqFeXpodnuOcHJteICKjJJ4eoB7gHZycpJ3Z3WEhISEepWJiIqMi4B/g4qMf5ODe4CPmJSblZGfnaien6CeoKmln52YjKekk6CflZ2epH9xZ2BcXEpWT1FHS1hST0pMTVJKSkpNUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLi8yMDAvLSsoKCkuMTI2MjE5ODc5ODc3NTo8PDd2rpijoZicnrOpr6mlrKywsaq9tLK8uLa6tbKgt7uzq52fraustbOlnpaSmIaUpJadjIOXiY+JhoaDZkpJSklHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhZWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gXZ4f4mPfISYkoFyh498dntva36tfHOQin97hpKAfX90ZnZ8hWxvaHN8iYyHgGx5cX1wbXWPcWhxgH2OcEOKhIKDhX53d3qLhX2LenV+jpKPmIqSmpujl5mdm52eop2WjYqkm4+dl46WmI51bWtlYVlXWFRRSlJVVE9QTlFWS05LTk9KUU9JTk9LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn56WoKavrK6rp6mwr7GsvLisu765s62om7GorZyQl56nrKekm52TiJZ+jpWSlYB8inqFgH9/gWVKR0hGQkBDRElMTE1RUlBRU1VUVFVWV1dXWFdZWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3hvfHmIj3l8i4VvbYyReHN4amp/gnKWkYuBfZZ/SZKYbmh3foJsaWNseYWQkoZrc2x8bnJ7hmhtcH5zjYiDhXp9fnt2b3RzhYJ5gXdwfI6MipODlpeYmpCTlpeZl56XjIOJn5GKkoyGkJZ9bGhtbm1XVVdUUVFZT1NVVFRYVU1OSE1KTU5LQ0lOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6kra+iraqota+urLS/q7zCv6ajmpWlmJ6OhYyWoqSbmpSXj3aRfoWLkI98eH50fXh1d3xmT0VHREA8Pj5BRkdHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpyQZlvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5wbX96i4h1gYiGdGyZkXRze2prnY5MeYSSiYSOZzF2hnNsfn2DdGZldH6EhIWAZmlsdWtwf3xncHB7bpKNjntzfXxxcG51bYJ+d3l0aXmJgoiJg5aTkpCLjZGUlY+XjoB5iJeIhomGf5CHdWlpbmdjV1FZV1hZW01QVVZaWU5JSUVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKSwsKyspKCsnKSwsMjI2LSs1Nzc1NDc4aU84OzVukoiZkZqWpKitnrKeprquq7KwwrK7w8ebl4+UmYuOhnqFkZqWj5KOkol0ioR3i4+Mf3Z3dXh2b3hzaVVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bXGDgYWBeYSGhnlyoJR0eIBzdZSHNXGdqJ2OoaGEooR2cIZ8hntzjK2NiIBoZmJpbXFtb4N1aW9YdW+OmpF2bH96fG1xbXB/enN1bWJ2hH+GgIWQkYqLiZGLkYyLj4N1eIuPgH6CgH2PeHBubmpeWltdW1lYYF9TTltaWVhMSEpGSkc/Q0FCRz9DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW0qK2xrsGzusHGl5CMlJCBiX1ugpGTioSLiJCIdoSFb5iKjH95e3txe3R8a29eSlBHPkA3NDU4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8/koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx2iIh8fYWDf4x+dqKZeX6GgISZhZucYYaqn52LgpCNenaJfomHjnOKl4+De1xkcXR6e3eKbGdpYXlvhY+Cem6Bd3OEenBzeXdrbmldd4d9h3yIh4+Ai5OXg42GjYZ9cYR/hHx1d3t9iHRtcXJkZV5aWl1TW2ZeWFFVWVxWR0tLRUxHP0ZAREM/QUE9Ojk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMd4l/lIyRnZ2fppGgqp+wqa/AsbvGupaPkZSIeoZ2a4CMkoN+i4WQjXmEgnWiho1+foKAc4OBfWx5bFNYTEFFMzExMjY2Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXtxfI+Me3yJhn6Xh3ahmYiHj5KUpY2sqUiGra+vioCAk4qCi4KEkaiHgJiYipxzbHyBhod9jmhnZ3h+bYWGgYVxhIZHa4B3cXl2aG1rX3d9g4h/iIWMepWenIqLiZF/e3WLdnx3bW93fn1xcXBqWltbWmNiV2dlXFVQUVhaUURMTEdPSUNGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTg1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFh5GPlpiSl6CdrKGmuK+zvbSXjZKLmIt9dHB/ipN/fo2DlJV9hn+HpYeJgIOIhnmJi4B1hXlfY1ZMQzYwLi8yMjEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiZGBmpaCoKGYlZuapa2Tmbuxp7vHw6eKjKGljpOJgZB7coOen5GcfnaFhYuPh5BpaG+DgHSMhoSLcYaCd4d/e3aFfW52dWeBlI+GiYiHiYihq6OWiY6YgHuCiXp6b2dreH13fHFpY1xZWVxoXGFmX1pPTE5YU1FJUEtETkdDSkRDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg2NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnZwZ3iDe4CMgIGQj4uamqScoaymq6+wl5KRhKGUhHh3gI2UfX+ShpOWfoqBkpuOhIGCjIuCio6EgIqAbXBqXkNBNC0tLy8vLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISUtLS05WYGN/Z2dtdZ2bj5qTk4uNjpqIk4+di6ChkqOppaOsk6i2oqfBwq7Ir3i6lJp8jKGemISThIKPoZ6TmZKEioWPmJCWbHB1iYuBlYyNj3aPhHFshYGKlpKDhYhyiaGXh5OJj5CXpbapm42VooOHk4R+f2tqbH1+fX9xX1tiXllmalxsa19YS0hQU1FOTUxGSVFERE5GQkNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuZ1lwg3B1h3F2kYZ+l5aalJ+fm6egqpaTmJ5oZqSafoWTknqBkomSkn2LhZmSkYOBgYuOiYaRh4SIhXh4f2hOUj4vLy4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFRU1FOUElFRD47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpqKZoZeilZyfqJ6pq5+orKmqtZerv6u2yMm3yNHPvpugcGmrqZ6Ek5GFnKCampmnkZGIlaGZmnd6fpSYkaGSlpeBlJ57dpWSq7OJjZegfZWenI6Tlpqko6e2sJ2RmaiIl5COgYhsc3N7fHluZl5bX15hZ2NfZ2dcUkVLS1FPSUpNRkZNQ0hMRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTQ2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYzQUBpYl5QcXVgbn1hd459fJSOjoqfkpeelpyqmJ6qQkR9h4mImI15go2Ljo18ioaPkI6Bg4CJjImFk4WChomBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSU1VTTlNMRUVAPD49RkhAQUA4NjYyPDk7RkhHSUlNT1FZbYaQd5WLo6eqtb24pa6srKiptayxt7Kyrbuxs76cs8Ssu8nLuMO/t6WjsLKsraqjipaYhaWmoKKYgqaZjaKqp6SHhZOjoKCqoaSpjpyxi5Wjp7e7nKGjsJOjnaOekaSiq7Cus7WilaaqiZqKkoqVent+g3tlXmZaY2BdYmJeZmdfW09ESUhUT0ZITEZLR0ZGSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo0NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoGUhYiCm4OSkYyS2sidlnNWl4iPiJyPfIaMj4uKe4iDh5GOg4WBjIaFiJKGgoSJhoeHh3FuYUBFNjQ8My8xMTAtLCstMS8tND9EQU5WUVJTVVVXVU1cUUdHRDw+PkZIQ0RAODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHxKuzxbattMCzuL62v7TBtru7pLjGqbbJx7a+ubSoo7StsLGbmZKan4mnr6qklXefpJehq7GzmJapraiutbuyuqyvtaKxrLK1vLi1rrWgqKijqJupsK2zuri4qJy4qY2lj5KToIZ5gYByV19iVWRgYGFeX2ZgW1VKREVMVlFJSkpFSkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxcWlFjZFd6dXGBlX2EhpN2hn6AjXu/u6O8grSUk46bj4SIj5OKiXqHgYyTjYeFgY6AgYqPhoCGiIWKh5F6eW5dV0BFTjw2OjQ2QUI3NjQvLzZDSENRXE9RVVhVXFdPX1VJS0pBQD5HS0ZGRDs+QDdENz9CSkpFR1dUUF6PpK2ksrTDtrjBzMq2u8S9s7TBt7jCtb+wuHSxtKa6xaSwxrmxs7K0qKS2tqqxoKKWm6KSpbGtpa2sp6SYoKyzuqKosrm1u77Mv8XFvb2zwre6uL+4uri6ra2xprGqrr6wvbzCw6yZu6iVro+YmKuJfoB5aFVhX1ZoY2hkVltjWVZUSkdHTFJHRElKQUlEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OTY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVZad2pwf4+EgY6Fb3tyeIhiuaGZo4mVlJaTlJSOkJeSh4d7h4GOloqBhIGKenyLiIZ8ioKBi4SVfXh6dWVPXGRHRUw6UWRgW15TRj87SFBEWmNRUVlZWmdaU2BhTVNPRUE/SUpIRUZBQEM8RDZCP0hHS01TWlRelK+4tbu5ycC7vcrNvLzBvLi2vLu3vrW6s8ZhdbKlsZqeq76qpairqqSisrWgq6eelZaemJ+upaenpZ6jk6KnsLOosbK8tsG908nJ08bCxczCysPBvr6/vLy4tLC5t7fDusa+xMmwnrqroqyPpam3iYB8blxeXlxVX11nZlNZYVZSVklFRk5LQT5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUE9RUlFKQTkvLCwsKisoKCwtKy9QPiguNDiAfTwyS4hxOT5DS0VASk1QUkxRXWhtbHGPjYaQc2xycnSI1cC1mqCNlZmZkY6XkpaWjoaIfYeDjZaKfoJ/g3l7i4SHe4t5gYqCl390fXprZXB2WV1cUGVlYmBlZF1bWFhcTWRtVVJtbl9vX1hnZVVZVEpEQktLSEZISEhIQkk5REBIS1RUVl1aXJO5wLm+uMbBu7nKy7u2ura4ubS4tbWutreZZHWpnq1wXqKtnJihopuknqullJ+fkJSOlpiXqJ6mn5+amYOjnaykqrCst7C8uNTQztbPyczSzM/OysfAwMLKvcG9wsDFxMbKwMnPtKS8sbWwnKy5vZp9dmlbXFlXW19YYWJRXGFUUkxDQkZHRTxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LiYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RHS09EUlxaaWBvl5KRlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Ih4yQi4l8gYRze4qDhXuKdIGKh5V/dHt5bG11fGlzZWlsaGZqaWhgZmlpbVptdJetpL2Ih2dbb2hdWllUSEtPUEpLUExTUUhMQUpGS1BfX2JnamKXt8ewurS7vraxxce2sLmxsbuts7Goq7itjbaonpynmk6anoyPoJaRp5illYqTk4iRiY+Rkp2boZiblJaHnpmmmqyvqK+ns7PU1NTW0cvP09TO08/MxcLK0L/KycvJ0sjNzsPQ0riwxL3Euqa3u8Sif2thWlpbVl5WWWNZUF1YT1JDQklFQ0k7QUQ+Qkg/QEI4O0Q+QEk9NTY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CRmYNocm95eYOhqp6ml4ybm5iLjpWRmo59iYuFjoqKi5CIfISCcH+HgYZ7h3KDkouPfnF5dWxweH9ye254c2xpgHBtY2lucHlpd31+y7/D36duY3huZFthYEpQUlVOWV5QXV1NUU5UUVVUXG5ud4Nylq64rLWosLarrb3Bsqu1pqW5p6yvoay0pI+xrpuYmIyRlJGEj5uBjaeRnImDi4SKiYSLg5SVl5eUm5CbmJmZnp2rrKSnoqysztLV0c3L0tPT0NTRzsjD1NHIztLT09fN0tHF0tbGwc/IyMOpv7jQnHZrYlpfW1ReUVxZT1BUUE5JPkFHQkNGPUFCP0ZFPkA/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bHdwfX6AoJ6eoYyNmZOUi4yTj5aFeYWQkI6LioiRh3+Ce3J+gIKHeoV2hZORiYBvd3Nsc318d3xzgnhxa4Bycmlwcnp5cnu+y5p/jbKEdnKFd2lhaV1DWlpbV2ZkWGVrVFhdXWBjXmN4e3+LgZmqpKSioKGppqqxuaumtKOirqKkrqKnsZ+JppuVk5GKko+IgpSJa5WijZmEgYZ+kYODk5esi5WOlZqOhZKQnZensKKgoKWkqMjNz8fCy9HT0dTSztPNxtbTzdTY1tbY1dfVytTazcrY1tHLrcTDy4hvbF9cXFZSV1JaT0pHSUpKQDs6O0VCRD1DRD5IQz9DQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lwgHV+aXN5coKKgJ2VnpSFi5aJj4qJjoiPgHiElJmLjYiIi4l+g3hzfH2Eh3eAe4eRl4GEb3hxbXV/dnh9dIZ8eWyHdnRufXaFdXl7nbWMPEGLxqV+jX1qZVdJQ2VjZmNoamRveVtfZmhrbmlugYOJkYyen6CekZeZoKOkprKkpbKgoqWfoqmhorGch5+SkpORi4+Lh4SPhH6cnIyNgoSFepR/gqqWo4ySi5iTi32XipqRqrOYmpynnKa9w8W4tsXN0dDS0MvSy8nUztHV2tfX2NTZ2M3Y287J2trS1r/MzbR1c2thWldQU1BYVUVHSklGRT06NzpAQkM6SEVARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MiooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qj48OVFFQ0pUbG5vcGJxcXSGjX2XkZ6LfoeSgomGhYqCiH14hZeXiY+Dh4aHeoR5cXt7hYZ1eoaOjp16jXB9cHB6gHJ7gXKEh4Bujnp1d319gnV/fIeJsHRZqsK3jZKBcG5jPV5ocnBxcG53d4JlaW9ydnhyeouHj5OSm5agloiMk5yfm5+roKGsnKKamqCmn5+smYyajZGTjoV9iIeDhYuOoJmTiIOHfmyZeYSZhoiTjI6VjIZ7m4iTjq2qlJWXn5imrrW8qK29x8vIycvLz8nE0srU19jX2NfU29fT2dvWz9va0tbJ1cyTdXdlZFhXTlFSW0dDRklIPkI+PTg6PkA8Pkg9QEJBQUVBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEE8OjlEP0NHUmtfbWRiZmx2gIhxkZCbgHmAjn6CgYKFf4R8fYSYjoeMf4aHgXeDeW57e4eCdHqSno6hdo92g3R1gX50gIRvgZCCb5KFdXyBhXp2h3yJuMalw8q4gpacj3hwZU5lY4J6gneFoZCLeXp3e4SAfIR2bZSWlZaQmJGDiY+XmpeXpp2YoJefk5KXo56aq5aRkYuNk4OMhYmJgYaPkZ6cmYiFi4GFl3qIiZ+Xj4mOiouCfKGJkIq7oZiTl5qcqKalrZ6ntb+/v7jGyc3Oxc3J0dXV1NnV19vU19na29fb2tnYztvGg3Z2ZGZhXVJVVFRNS0RNQzs9PDw5Ojw/OT1BNz4/QD0/Pj05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs5OjdIUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVxpdHp5bImNknd2eot8foB/gH6Fe36CkYqFhnqFiHx1fnVtfH2HfnR/kp2Rn4OSfId+eI9+eYuKb4ObgXSZhn2CioV8fpF7kKmPkMOgvYybpJx9iYV9iXOMi39zppqcmJSFe4+RiYRpR3GhpJ6MjJGShYiLkJKVj52bk5SRl42MlZ+dlKGVk46OkIx/kI+Oi4SJkpaZn5+IjJSRnZCCjH+mmYiFjoOGhICkhoqLt5edkZSWoaagnZ2do662ubSrwMbK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbtnZ1dGdmYlRdWVJOTkhDTEM9PT45OTs6OTk8PTZAPj89PTk6OjszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw5RFdPPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PERSU1JYX1ZYZm1tbWmBjopxc3mKe3uAfH98iHt9fIuHgn51g4Z6c3pzbYF+hX53hpuhm56UkoCMiH+Yh4Cckm6IqYV7oIx8kY6DiYScfpuRio2jop+RpK+gi5GLhYuBk4ZXcq2Ln6ubkIOZnJCPjluDopGCjZ+TlIyGiIySkoyUlZWQjI+KiJabnY+VlpKMk5SGgIuJko6Kip2XmKOihpOdlaCLiomOnJCDiI+Ag4eFpISLkLKYnJKUl6GgnpmSm52nsrispb3Cx83Ixs/Lz8zO18/R1K7W1dja2Nra19bZ2p1seXFjY1paVVFVVkNASUM/Pz46NDg6Ozc6OzozPDw/PT43Ozk6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xBOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs5ODo7QDtCUUtLU1lQVGNieGxifpGDb254i3h6f3uBfYd8fHeGhYBzcIWCe3V3dnSFg4V9f5Kmop+mopeKnZCUl4uKqJdyirKNhKiShJmUhZqMo5agmJOJm56ik6mwoJGVkY6OiJaMb423hJrEyLKcoqacnJiWkbGQZKTNx5WOhoeJkJKNjZOVioWKioaWmZuPkJSTh5WYhICPi5mIjpCrl5eko4iZnpaaiI+Hl5eKhY+NgX+Hj6WIjZOompeTlpihmJ+Zk5yaorK0paO8wb7HxsXIyMnCytPMzdSo0tHW1tbY2tTT2s5/b3tkYFtbW01IU1lCQUdEO0I+ODM3Ozw6OT42NDo6PDo3Mj86OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFJXU1JCY4JHdoGOfXxtfoh4en57goKDf3d2gIN8bW6Lf3t9eHh8hIeKfouis6ejq7Oil6efpaSWla6ig5G4lZKzmoyhoYylm7CjpJ2YkaeWqJmsr6SYlZaVkIuYmpehwI6jybirnKOmrZiSm52ynYWGqKOcmIWJiY6VjIuTj4iBhoeJk5iVjIuUk4eUmIaEkZCcdZGZspWWpKGHnJmSkIuQipebiYuWjoZ9jJieiZCQm5qak5iXn5OgnZSem6CxrqKjt760xcfEvcPDwMbNysnTps7M09LR1tjT0Ni6b3ZyWV5TXVROR0lNREFDRDU+Ojc3Oj88PDc9NDI2Njk3NzQ+NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg1Njc9OkpGREdNWlxZSmZgO0iEi3p6boWGenyEeIGGgX5weHx+fW9zjXp+gnx4houJhoSSprusqLG9sKWts7Ooo6KwrIqatZ2juKWVraWXqa24p6Sjn5qpmKqkrrCqmpmclJaRl6CYmru7rsqhara4q7CUmZ+jrJOXvqNeqrKDioqNlIeQfI6OfYOGjo+UlYiIk5aMkJWNi42WmJOdmbSWlaudipyUkY6RkoyZm4qSnpCLiZafoYyUjZeZnZKbmJ6UoaCUnJ2lrqihpLO4rMLIxLW6vbzFx8fC0aDGyc3NxdfW0cvTn213ZVlXUFtPTkVDPjxCQUI4QDg4NT9HPTw1PDM1MzQ1NDU0QjQ5OkJNOkI7QUhCOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRIYmBicEpAi4p+gHOGh32CiHWDioJ/bn18fX9wd4d3joKHfI2PjIaMmanCwK+9xruztMC9tK2rs7aMqLKurr2rm7ulp625uKumpqKipKOpr7Kxqp2cpJmbmJefoqalkqS6r6nAvK2usrmlpKh+iIacrb2wgouMi5CDjoORj3qBiJCNjZyJiI+XjYuVlpSRmpedqJqxmpGsnI6aj5KOlZCQlpePkaCRiZSbpKyUlo+TnJ2ToJ2bmJ+hlJqep6akoqOwsqbBxsOvsLq3xcTDv82mx8THxL3W0M3EyoVwb15ZV1xYTEpBS0BFRz5BQEM7OjU+QT09NT02PjMzMzI0MkExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OzVCPjc5VktEV09GOD00S0BDPjRFS0hOPkFBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVONzlHRD9DRlxlRmBpZ1pdXJOMjIl7h4yHg4x1h5GKgW9+e4J/cX6Be5V6kpSUmJCTlqezxsm/wczCw7nHvbuvq7m7mLO3urLArqXApKuvvL2qrqujo56nq661sKqcoKucoZyWn6+1p4ujurq2wbysqZ2zpaSolIWNqsPDpIKLj4eIhIaVlI15g42Rj5GhjIyUko6Jl5+Yk5mVl6agr5yMq5yNlo+RkZWVjZGVko+glIaXn6CynpSZk5+gmKSemp+boJSYnqWjpqakr62lwMTDrqi3tsnDvrbPssS/xLyz0crIwrRxdWlZVVlnUUxIQkxLS0pBQj1DRDw1QUU7OzM9OEIzMzIyNjJBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWk1lXGZUYmuZjZaKjIiTkIaJeYeUkIFygHuNf3iHgoKQeo2hlqiZmpm6vcfIycHSycvCzL3Cs628vqi6wL27xLeswamss7y+qrCqpKWkrK6zrba1oZ+vn6WimKOzvaqbqL3BpLa4r6yUsqysrJeGmqmmpZGCjJOlloqBdYqSeYWOkpCeoJOPk4yPjZSjmZaclZSjnqqekaWajI+Pj5WWiHyPlZOSo5qVn6KctaWQnpako6GlnZ2mmJ2Vl5qko6mnorKsqLvAw6+ls7fMv7mvxLO7vsG4rMLDwsCXanZeVVRZWEpKTElGRERIQ0NBREw6NERJOjs0PDhFLjEyMjQyQjI2U0hPPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+aUhfWGJaY2NWno+cjpeOnpKJin+KoJOEeIV/ln9+kIiKkYCWoZmup6SYwr3Hw8fF087Ozcu8wrewury0vcu7w8K2t7yts7+6va6vqKCpqLatrqmyt5qeraOnoZ2rt7iqpbC/xLK9ubSoq7a0rq6XlqWsqJ+RjZKyxaeWjnySlXyHkpmPqpmYk5OPkpWTpJ2TnZmToaOinJifmIuMj46diFqQl5eSl6SZZZiin7OllaGVq6upppueppaYlpiUoaOopZ62q6m5u8O0pbS1y8C4qrarsru4rqi4ur24gGhrV1RSU01FSVJMSz9BSEVFSEdHOTVGTTs+Nz1ASi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M9NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs+QEJGQnBFaklSZWFMRqWUnJeil6mWjJGDiKaTiIKHgpyEg5WQkJSPmqKer76voca8xMTGxs7PztLKvru2sbq7u77PtcO9uLm3s7G1s7izq6ecq6y5qqmnr7CYo6+lp6OltcCwrKy0v8O6wLq0p7q2ubSvlqWtrq6ki5OUoY10wpp9l5mEjpeZjLGVm5qVkpKZmaWjlaCbl5qpnZugoJmKjY+VnGBKlpyalJqlllSWr5+vnJ+klK6tqqSaoKWTk5iYjZyfp6KZtKiqs7u7u6qxssfAuaasq62ysqOhsrK0pG1qYllXTU9KRE9PUFI7SEtJR0lDQz46S1U/QTo9RU0wNzU0NDpCNDRNV087SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzRFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiqlpmgoqivmZGXh4uolo6Ik4Wgh4Sdl4+doZqjpLXJtanFucLDyMrIyMzNxr+7s665ucHBzLXHusG5tbqwr6+ztaekm6q0tKqppq2smqSupaSorLu/qKy2t7/Bv765s7LEsrm+raOvtay5poibl6abdr+fhJmdjpOamoyul6GcnJeUm6ChqJ6on5maqpqhp56YkI2RnYNudpKimpWdop2RrrKjqpSoqpepraOinqSnkZGZnIeUnaKelrGmqau5tr2ysq6+ubago6eopaacm62pqYtgYl5dTkpLRkdNSlZMPU1FTktMQkNEPFFWPUFBQkRPMTg9NzY/Qjc1VVhPP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH5lXkhFq5Wbop+7r5mUn4yTq5uRkpOJq42GoZ6Mo62Uo6O2xr60wLnCwsfJxcLNyMG+ubKvubTAwsm1xrLCvLW6qqitrbCjo5iqtLumqaarqp2pr6ejqqu9u6itvbW4vse8t7a4wrK+wbWqtbarvqWPo5iSoqC8n4maoJmXn56Pt5+pnKWim5yhmqiks6CbnaacqKqemJWPlJuLlomMpKGUnaKdoLSvpaSSr6uZqqqcnKOiqJCUlJ+Cj56em5WppKGhs7S6tK2otbKznpyjpZqXlZiqoZ51XVpdW0hHRUZMUElNRUdHQlNMSkJFR0FXU0NIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlDQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5ZlxGQ0OdcGJHRaeXo5+ew62cl6WYmamclpqaj6qWlaemla2smKKrtsPDvL62wcLAx8S/zca7vbmysLmzv8LHtb+wvLe5tqakq6utoKGZqqrEoqSpq6aerK+roqmpvrinrb+yuLfHtrW5uMCywMK3tbO0r72jl6OXlJyUrp+QoqOlo6OgkL2lqZ2pq5ycoZulnr2hmaOfoqmroZ2XjZWek56Hj4SNk5+koJ61rKaclbCmma+lnJmonJ6MmJSeg46gmZuSpaSal6uxtbGqpaqurJuYoKCSj5CVqJ6UZV9XX1tNSEdJTkxIRURJQT5RSUE8R0lJXFJPSz1IT1U0QkY5PkhHNUNhW0tCTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTY/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW1SRjxLeGVhVkuimqOcnsWsoZ6sn52uoJKjn5akoKaprJi2saKqs7bFxL2/tcDCu8jCvsrHtbi1tLGztLfBxba+sbi1ubSfp6yqrJ2enqWkwaWfqa2gpKmtr6GmqL21prG9ube2xLK0uLq/tMTBuLmus7W1o52llZKUoa6gmaKeqaiso5rCrKmerK6bm56ZpqC9oZ2kmKurrKahmo2an5KeiY5Xf5afpaGguKqnk5i0op6xn56ZrpWdjZiTnIGOn5eVjaGjlZClrbKqqaKipaWVlZ2Yi4+RkqSeiV9iWGJfS0dKSk5GRUFHSz89SkI5OUpLTl1RUUk9TFZcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUlLP0g/NUhNWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNaa1dyR0U2PXVlXEtNnp6hmZ/EqKWhtKKds6eTq6Wgo5+sqaydu7CorLaxx8XBwrLDw73GxLzEybyvsLatsLSvvsS0ubGwurSsmaixqaqanaWhp8Gtm6yxm6qjrrCppam8tqe3u76vt8Sts7PDwLTHtLu3rLO2raqippaVlaSsop+gm6eqsK+vu7GmoKmompmYk6KjuKCho5Kwr6ylpp+SoZ6Vno+QjZWem6Kep7SnpoyXspuirZmcmqyPnZKVkpl/kaCVjo2foJOLpquvpKainKCekZGak4WLkY2bnX9fY1lmZElITElTQUNASUg7O0Y/OTlPTlZeUlNKPk9eXT1IUEJMTEk5TWNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwyNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF5lcUA4O0iWd2VBNJ6jn5ygw6mkqrOipLWqlrOsp6GksqyuqbuyrbG1tMbAxMK0wMS+ycS1v8jBtKu1qK+4rL/Ds7eurba4pZiqsqurmJ+ml627tJuosJqsoK20sqirubKourS5s7jAqreyxL21xqi/r622tamnrKGYl5KmpaKimJilrriusrW2oJ+ppJqUlpSkoLeipaWWr7Gyp6umop6ampuVl6ifoJihnq+yoqaMl62YpKuWmJ2ij5qMkpaYhZWek4uQm52TiqipqqGnoZielYuOmY+BhZSIk553YmdbamlMT01OVD1CQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDEtLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDVJb2hVQ1dGjHlmQzujo52hpr+np6+xoqm1q566sayjq7S2sbC5t7C3uLjEvcPHvb3EwsbAuMDGwLmptqSsu63Awbe3qq2yuqKUrbGtspakp5GquaqfprCcq6CvtLOrqba2rbyttLO5t6y4scO7v7+mw6uwtq6oq6unnpiZq6GioZGYobGvs6ywuZqbqZ+al5OYp6C2qaajorCxtKyzp6yfnKCgm56lnKKXnaOzr5ufkJOkmZ+omZOhnZOWiJOWkpWWnJKIkJqYlI6pqKafo5yXm5KFjpmLfYuVhI2ZaWdrYGxtV1BRW1VBQkVUQDs7SUE3OlhQZF5QV1dFWV9eTUxSTl5LSj5ZY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERkJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEtLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9p5+doqm9oqqwrKSyuaqmtrSsoK21va+zuLu6vre2wMK/ycS5xMLAv7fDvcC3rrWnq7exu72+tKmusbaelquup66XpqiOp7ufpKyznquisbCzrKm2tLW+rrGytaywtLPBusW3rL2wsberrKqjsqaepaqgpJeRmp+zqrOrq7OanaecmpWOoaaktK6ooa2urrGotK2yqqScn6iknpWimZuotamXmZKSnZmdn52QqpyVloSUloqdmJuTio2WlpqWpqWjn52WlZeSf4+UhXuNkoKLlWRrcWZvcV5GWWdWREJNWERaOUhCNj5dUWhcTlpdR1teXU9NUlhkSkpCXGJfUExNTlhXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7RkRGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgpQzNZVVxnSzaMemZMQKSaoaWtt6Wsqqavrreqr7W7p6axt8W3sba9wcO1tbrEvszGucPAub65w7jAuLK0q6m6trq5vrSprbC1l5inrKmsm6urjqu+nqutsqOroLGus66ttbK5uKqurrGota+1u7zKs6q3tbG0r66mobSgm6itoKaWlpuasqOtoKavl6GkmpqTjqOlp7Oqoaazraq1pa+yta+kmZ2sp5qYn5qZq7ejl5OQjpecoJeWk6qempF/kpeMnZuYlZCKlJKemaSioqCYlpKTlXqLj4V7jIqCipFqbXdsdXphRmFrWUlHWlo9e0pGRDZBYlRpW01cYUtcXVpSUlJiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYpKDkuJDpLNS4iVF9UXy81KENfUVwuK0IvSkdQW0czY1lUS0SZl6GxqbKqrKakr662qbe1uqSstLfJu7S7ur+/tLO3w8DMyLzDvLa9vr+3vryxvK2nurm3tcK2qq2xt5SWpq6rqKOwqZSvu6StsbOnqKOytbGxsLWxuLSpr6yyp7evt7TExreptrassK2pp6O2oKCnsqGklZyalbGep5ygqo6po56blpimpqW4qKOytayosaeusbWspZmgrKibnJ6clKm4m5SOjoqXm6KXj5ekoJyTgpCUj5ybl5aViJaPl5qnnKSgkZaRkJV2hI+He4SBg4uKbG92dHt+XExmbVxKTmNcPmJ7R0k4R2dXZlxMXmJNWFlXVVdUaV1PT0hgXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOR2YyNydHYkxWJS1CLj1FTFE8M3JrSUNDkZmlr6Wur6uopbGztKu3srihq7W5ybmtwbvCuLOxtcLCzsXAwb20vb++ur68ssOnqbmwtbW/vK6ssrGboKexraamr6WdsrWtqrGxrKmotbustLK1rbStqqyorKm4rbKwyMC5pbqwqayspaiusaalo6+kqZyenZuvmqOjo6ORrZ6joKCiq6amuaWstralq6yprbC2rqKeo6mqm6Cbm5Kjs5mOio2HkKGglIyUnJ+SkIONkpKcmpeVlIeXkpWZp5ufnoySkY2Qdn2NhXx7fIWIiHBycX18fVxTZG9eTlhmXEZElltHO05tWGJbTGBiTlZXVldUWGddUVJMY1lbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvKzEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISis6SD4zQkhTLD6QaztHSI+cqquiqrGkqaWztbK1trKyoauuvcy6rcC6x7G0rbTBw9HFxr7Asr7Awru+t7vEpqy2q7K3u8Cvq7Gsn6OnramopLCjqrKqsKuwr7Cuq7O9p7awsqmzqqulpaOtuq2qssO6tq27qamnrKmnsaWqpaOuqqiin5yjrZWlnpiemaydoqepoq2mpK2ruLOyoqqioKyvsayeoKenqZmjmZmPoKaXhoSOioueoI6KjJWajo2EhY+Un5yUl5WGlpSTl6SbnJyKkpCNiX9+h4V8dn6Fg4RycXCIdWtfWmBuYlFycFxLO4R8Rj9YdVhgWk5kW05WVlVXUVxhXlNPTmdYV1ZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE7XEowLkpnREY4O0IwNUVLWDFAlVk9TEWVmK2ooquznKqqsLetuLavq6arq73JvLC9tsKvsauzw8POz8O+v7TAwcO5v7PHw6qutq2yuL6+sq2tqqSnqrCop6ixpbSuqrGurrKxtKy0vKS3s6ysr6irn6OesLerqq26t6W3tqSqp6uqqq2hqaensrKkp6WhoayXqqGVm6CmnqWiq6Stop+nsbiurqSmo5uqq66pnaKlpKSYn5uWj5ickoGCkImEnJ+Lio6LmI2OiYKLl6KbkJCbjJOSkZOjmZuZio6Li32GgYGDenN/gn98cnWLpId4a19gbmZXZIZjTj9nk0xFYnlXYlhSZVRNVlVWVE9cXWFVS05oVlVWSUpISU9CR0lTUVlvQU1YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlZaLjBKZ0FBPDxCKzpKT140RIY9R0ZEl5OwpqOrsZirqq22rLayrKasqqm8wMC3uLK7taWyr8PJy9G/wLu5v77BuMG5wMSssbSxs7q/vbKwrqyqq6i2qaaur6q5sKiysq+yrbequLims7arrKWpqpyjnrOzqaiktLSgt66gqqiqqKunoKusqbq2qqqpqaKqoK2bkqqhnaCloqajqp+dp7Svqaero6OYpaenqpyipKOgmZigkY6PmI1+h42HhJ2dhoOJiY6NjouChZSimo2NmpGSkY+Tn5eYloyKg390hoF/gHh0gn54dn2Ah52Pb3JnZnB3XGByh2pPXplWSG15VGRWUWNPTVZUVVBPWFtiVUhPaVRWU0dPWFVJPklIT1FQeExNVj08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzJRYjAyP2Y9Tlg+Qyw+TFRfL0ppNU9EPJaOsaKmq6+arKWtsLS1sKymsKqour67wLCtua6htq/Ix8jRwL69u7vBvbrCv76/rbGxsbW8u8KxsbOqs6mktKilrbOzubCjrriysLO7rLqwqa22q6qfqqyfo6C2ramhn7CzorWqnqinqaOqoaKtrai9r6yuraKoqJ+smZCwoZiioaion6ibmaqxqqOgrqKhlKOjo6eYmqilmJeYno+Kh5SIfY2GhISjloSBgYqFjouQg4OTn5aIkZyQk5CNkZyUl4+KhoZ3dIF/fHV4eX95cnJ4Zn+GpHZpX2RpgHRmiIt8U1hvXkp4c1NkU1FfTU1SWmZOTVZZZFhHUmhRUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwTGc6NDhfPWFkP0YxQ1BbWypITTlVQDSRkLOhpaatpKekrae1s7KrpbGnqri+wLuvp7mqpq+xycfI0cO8v764vb68yLrAt6+vs7G5u7jAsrK6rLisorSnqKyytrmzqKi9tq63vrC+p62stautnKmvo6ClrauonJ6rs6W0qJqqp6mjqJ2jqaipvqu0sK6dqqShr5ybs6OWpJylpqClnJupq6afnKuinJOcoqWemJeoqZKYmpSQioKPhX6Pg4CInY+Ffn2Lh5CNjoN/k5qThZOhjJSRi5GbkpWHiX5/cnt6fnxoeHx5c25ve2aEeISJZGFnYHKEemxmeF1eVD9Xe2xUYVBRWUtMTnJ1XUhaW2dZRVVlUEQ+Sk5EQ0E5SEdLUz9qYkpROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mYkFKN0dTYFUqPTlEVz0qkJWymqCgqqaloauluLOzpqmxpqy4wb21r6K4raiosMLJyczBtr3AtLe/usi1wrSysrSxvLi5vbWtubW+raCzp6ursLa4tayfv72qs8G0vKGvsrWqrJ+tsKOcpqmqpJ6bpbCnsKCfq6mnoamcpamhrbyorrGuoaujpK+en62ml5+aoaSdn5yapKujnJulpZaXlaCjl5uXpayMnpGRkYuCioCAjoB7mZSMiHt+i4WPjYuJhJKYkIaUo4mTkoeRmpCTgYh9eWt+dnl4Y3x6cG5vcXZnf3NphGhlZ15sc41sYGlvYG89WnhsVV1OUFJLSU1UWldNXV5sV0RXX09eUEhNREY7N0hFS088cmhLSzlBRTs7PT07Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+KR00OSYnLjM0LjArLzQmLDokNDFBaFkxNFM9ZV9ETDZLVmRPKjsxTlc9I5SZrZqgmKilpKCopLiwr6SvsKmruMG5sq2fua+rqLS6yMvIv7bCvq+0vbfEtsKxrbmxs8C0ur23qLm4vaqjtKipqrGuubGrnLy9pbDBtreir7a1p6ansLOfnqSmqKKlmZ+sqKmeoKqupqCmmKSpoLG5n6Oxr6Gsoa2knKemqZqam5+llp2dm56qp5ecoaqTmZSZn5OZlqGpkZqJjpCGfId+go19fKCMjYh4gouEiYuLhYeTmo6JlZ6IkZWCi5eNkX2FfHNwfXF0dGB6eGhtb29taH1xYnttaWViXGSEfl5Zc2pxSkl+aVhZTVBMSkhQUlFJT11fblNEWFpSaE5HS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1CKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo+L1dVNSiXnqeanZeuoaGhpaG4q7KltLSpqLnEtbKtn7etrq2wtMbIwLa+wbmwtLy2vru+r6q9sLS/sLzDuai7urenp7WpqKyxrbSxqJu/t6auvbeyn7G3sKmlp6+xm6GkoKWloJebsKehnqOor6GfoZOlpaO3sKGmsaufrKOvmJyqpKmfl5qepZSbnZuep6uanJ6ml5aYlp6Ok5eiqKKQiYuPhnqEfoSKeo+WiY2GeIGHg4eLjYWNk5iNj5aZio+XfoaXjI95gnpwcndvb3RfeXdkamtqZ2eCbGVya2tkZ1dhcn9eWWt1aVlFfV5bWE9PS0hIUlVHMjpfXm1QRFdVWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0SEJmW0hUQ1RdaEUuOzFeUSwylqSjmJadq56moaOhuKqwobu4pay9xLKvrqK1r62tr7TExL2zvrq3sLO5uLq4uq2tv7O0uK6/wbervbq0paKzq6iqs6yusqOdw7emqri3rJ+yu6qnpaivq5mjp5ylppSYobOmmZ6kqamcoZ+UpqCkuaikp62mnqWhqZOfqaGhoZmbnqGTm52XoaOsnJybo5aTlZabjpOTo6ekkIiKjoZ5hHyFhn2cjYmKhniAg4eIh5GFlZOSjJGVlI2OlHuDl4+Kd398bHVybWxzYnl0Z2ZpZmNthGZnaGRmZ2hdZGJpZVplemJgUHJUW1tSS0pHSU9TQCAqal5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTj8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc3YUwnMp+kpZOPpqecn56epLatqKq6t6erw8C2r6yita6nr6+3wcC9scC2sa6ytrW5uLWsqryzr7KwvcC3rry8sKSftqymprWqq6+hocWsqaiytaystLmdqKqrsaWYnaqep6WSmaWto5idpKqhm6GcmKGep7emr6qtoaGenaKVoKafoqCZnJuclJqelaafrqOYmJ+WlY6VmIyPmJqnoJCHioqIeIV3goKCnIeKgoh7foWIhoSQg5aVj4+QkZCRjZJ7g5WOhXN/fWd5cGxrbGd1c2thZ2Nic39hY2VmZWhoYWVuWV1YXGxjYUxnV1pgVklHSEtNUlg+OWBsaUhCVVNcW0hIRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssL0EqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGJGJTWdpKGSjK6hmpmgl6W0sqOyvrehscW7ubCwo7asq66pub69u63Asq6vrraus7myp6u5sK+utLa7tq+5vqymnbWroKGypauwn6bFobOmsLKxt620nayvrK6imZ2nqqWelZunpqCZpaOonJqem5Wdna2wprmnrqKhmpqemZ+jmqWdl5+Ym5aboZOql62pnJWenZSNlZqOlZSYp6eNjIqJjnuBdIKCi5iFhnyIiISFioyIkoWUnJKRkJCRl4+Qf4GNjoJvgn9neW5pa2pncXJrW2hjYXF/YGRnam5rZWllY2xcbGx1cGFTYmhjZVpJRkxNT1lRUFVhZYFUQFZSWlRGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOktqW01bS1hkY0BBMUhiQic0lKOcj4+xnZyVoZups7CfuMC2oLTBu725saa2sKmupbi6uLisu6+sq6u3qrW5raSztbGvqbG2trGztrunqaC2qp6fqqOqrp2sxJmvprCxt7asq56wra+qopudpKypm5WcpqSdmqqjpJaaoJySnKOsq6m6nqakoJeamp6hj2ujlpmdcYOYnaWBdpKsqZ+Wl6KSipiZgJeKn454hZKNg21pfneEcWyGioZ9hIqGb11kYGeEmIZri5CUknV4i4R/g5B/ZoiAaHZpZldcaXRuTlBqY2Vxg2ZdZGZua2hdW12JkIWHaE5LQzhFVGdeSkhQUFVWS0hSYXB0ZUZbUVVQRkdGQz4xOz02PTY8M2ZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjc2WIFsMTVPa1tOW0tbZmI+RzFOYTwrL46kmoiWspudlKGcqq6so73Fr6m3wri+vK2nt7Gmq6S4tLOzsLmtqaestKWxtaKnuLa1qKettrOutK60oqmftKueo6Wdp6ibsL+VqKewtbmtraOorKurpaGfnKGop5uYoaWmnJynqJ2Tnp+ZkJ+oq6S0r6Oio5yWmJmXo4ihj5KbiKGIlZ+igKWAqK2flJSelImEcniMjoOIoHWHjWmXiWZ+c3igb4eHhH6MfH+hoJ+Zf3yHn3SIjnabimyHgoNtaGRke21yYlSGbWNtaZhxWGlvboZXXWhaa2paiHBseXKHaIeEWV5GTj5GXk1FUlZWUVBSV1RnXkxaTFJSUEVGRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk6LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbTltMW2dfPUsxVF43LyiNp5iEnqydmpqdn6uqqKq+w6+yuby3wb+qpLexqqyms7Wur7O2q6mlsa2ltrObrLW2taWmqbOxrbKorp6qobOpoKSlm6KlnrG4laanp7e9pqymqamsp6Whn5mhqKOZmaejpJicpaqWlKKclJOkpqehtqSjn6OYlZSYlJyIrpCYlYqqjJmjnYaxgaWun5WboZd6gtSof4eUwJvGeHexpbeWZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsXlobFixrm5labySvG5oeW1xj9h9UmtitrJ9fnCUdZqhqpBWTldhT1ZORlVcWFBQU4tbV1tQQFxEUE5DRkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkFFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV1nXD5MMVpbNDEhj6eUgaiqn5idnqWtsqqwwr2ytcC1t7/Cq6a0rq2pqLC1qq+2tKioprWlqLmunLKytqqlpKeyr66xpquep6WypaKioJecoqCyr5afpKG1uqOpqKCsraSinZqao6mgmJypoJ+XnqiokZynm5SeoqejobCjnp+jlpeTmJKZha9raoyOqn9ohZaHrWZxn56Vm6mXca6hpH53unxroI92sV9qtFulgGWckGBmgXpmf2l4aqllvnJnpox2sWp8sXh1kZRjbW2nblyEoEVpZ4eWRXWcYH1me6OmgVhfi6tofY94emqoOEqvW1hUbGNaS09YX1xWVjtOh1BXVi9JU1NKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy8uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TTVeWDMxG5KilYOtp6afo6WrsrittL2+sLfFsri6w6epsKywqaqxr6SxurCkpa+zo6q5qZ2ysrCjpKCqrbCsr6aon6OisZyknpmWmZ2esKmYnKKgtbOhqpuhra2fnZmXoaOpnZmepaCcmaGopI+copqXoaCsn6amoJqfoZaVkZeRmoa1m7V5h6matpl3h7Obt3+Ul5isl39rgaZ6gYWGkZSSd6tnarFbrHuOh5R0iXCOhoB/iJCXeIOCipeMg6CPhbB2d59xa2ttfItPpVhIY2OZfmNopV95cXVSkoZdUKluY3B6hYBhnS9Som5bVGtnYExLXGRYXFpCPrB3V1hBI01pRkJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7RSwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YVQ1MByXoJSJs6amoa6pqLOsqru3wrC8w625tsKrrK2vr6ivs6qir7yroqi2raSstaSlsrOoo6Kdp6qzqbCopp+goLCXoJuWlpeboLCknJukqLWvoaiOqaeqm52WmKGmqZqfnaOgnKCjpaOWm56Ymp6jq5ymmpyaoqCXk5GTk52E1ZOZuXGxwn/Gh33WlJy7fZyXqJKPnY2ke42GooGlgnmreY+dVq97iX6farlauXeGhH2mgpR8mXqqeY6dkHuxbY6EdJC7hm+VUK+nxYpRoHpjYKpic3KGa5aHXlK1tMiFfoh8Y6QzQp11XVBqaGRQQFhmWWRhSkdMakpaU09ZZlpDQz9FPzA8PDU5PDc0PDs4PTo8QzpGOjs+NjpAQzs2QE9MSDw5O0RIQ0JDRDxFRjgxMjExREIuMDA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdIOmFQNzIlnKOTmbGoqaWzqqW1qKS8uMGwusCyt7S9tLaosrGksrOnoK+2qZuouq6ksLGhsrSxoaSenqipsam0qaacnp+smJmZmJiWmKOun5yXqK2xqaOej6yip5Wdl5yhpqGYoqGioZuioqicn6CelZmbp6Gcp5Wbmp+hmJCSlZCdiLJuaLVyrIhwj6dytHV0tnucmaaOkJ2No36PnqN+sHWCkNLSdVyufIV/pG6bqqZqhoV9rX2YmZB7sXOTnY95s2WWdIWebp9mlFLJi1rCXJ95Yl+tX3ZzhWGWiF1Zyp1vwIB0TUu1U1XGZFVRamNlWEFPal9saVBVRkg5PVdSW1ZZSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxBTlRfZVA1Rz1hTTYyLqOekaWvraWpu62mtaWotru8s7u/uLe1vLy0prW1o7OypKCssKWYp7uupbKxnbS4qqClnaGqpbKorKqlmp2bqp+WlpmZk5Skq6KYk6arsaahlZKrn6WSlKGcpaeglZump6Kbo5+umqCenpCWnKOfnaWUnZWZo56VmZaTm4WsfHiod6OPi4eqcK6LhaiEmpqji5Oai6J9kpeHroR/gbNccrJTr32CgqN+cdd9d4R+j52GmZp3r4aKkZyId7RhmmWagoGVbJJbsFdLmnWYeWZgrV52doZnl4hqXa93lZ+Pd2w1ecius19DVG9eZ2BFUGxfcG1WVU0uZWNoUllQO0FEQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITAzNzY3PVBrZT4mVmdcQD1WX2NONkdCYEk6NzegnZSgt7GZs8GtqLKnqrK6t7W5vrm4s7e+taa5taG2raCgqayflai2rKixsquttKSbqaCgqKK1p6aqpJqelqWhlJSdmpKWpKiclJCnrbCloJSZqJ+ij5GimqmmoZWapqmenaSfrZ2gnaCNlJ+cn6GZmJyVlqKglJiRpp2GqX5/pnmhj5CEqnCtjYOnhpeho4qYl4ijgZCGlKp6f4udeXCxWqiDgoigeHTYf3aHdKeBjpuNkqR8lZCfhHuyXpxkoH2ClW6TXKtcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2tuZE9KQ6FcWk10XWJmTVphX3J0X0pVNUqakVhIRT1HRUFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4wMDIxNTQrKjA1LzcsJjIxKCQkNjY3MTxPZWRBJlVmWz8xVF9iTDdGSF9DMT03op2amr6tmLPBrqusqKe1sbixtb+5urOyubyqu7ahsqWfpqennpOrsqmwqratqq+hmKKgpqSkuqOjrKGXnJKjoJaVn5uVmaGhkY6MqbCwpp2Wmqemn42SpJioq6iVmKmon5+gpK2joJ6hjpWhmaCgkpyXm5WeoZaXj6ucj65ucrR0qYx3i6Z0tHp1tIKUp6STnY2JpIeOdbhui3uLomtrtlqhhmWXl2igoqdtlHK0c5OZf7NqhZKIrWp1tGGdZqJuhpJrl1ytYE6hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdlVG9uLlunT2JSa2VibFliXGBwfGNTWVE+P2xvMkJCQD5NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFBOKWanJ66o5yxwK6uq6uot6q4r7XBtb2ysbu4rMK3qqyhnKekop2Sq6uotqOzqK6qoZedqKClq7ido66clpmQpqOXjp6hnJmen5GTlau2sKaYk5usqZaMk6aapa2jkZersqSgnqissJihopCZoZegm5abl6GTnamdlJCrmYfTlJq7dbHEgMSHftaXnLh5ipKZjpiKjKeHeaK2dX13dsKCmrJhg7p5wHx1uGK1gYyHqX2WgqypcXt/dbyIp6BpnWGmjq+hfYx0h6t9vm5zvHSyg3V4gYptmohwbY2kdL1dd31bYXm8alpWW2l5XmlgZGZibXhvWFtZQ0FAcT9DRys0SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9UXmBLNTxMXC02QDmnmp+ivKOXsMOvraqqrbGoua+3xbG7s6+8sK7Bsq2mo5+kopyckaulqrKltaetpJ+WmquZp624naOumZWhkaagk46do5+Zn5qQlpOvubGrlZajp6aUkJalnaStn5GgqKugnJ+ppLKdoqSOpqGVoZmblpWkmZCwoJKVqp+FkJm2gJKSjbiWeIOTm7Z3bmxvdG95j4SOiXKewLu8mnuBsqhwgXSRuYN8hoaLhox7ioeMl32ku7m9nHV5s6N0dZd1dLB1mJ5mhmmNtnRycXe2jF5/eX2IZ4N5bHlii6xwdIV+WFunaURkWVRmX2NdY1FnZnFtdUJNT0xEO1pMPkozPDAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEJLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlbLCs6uqqKyrqruvscavtbSwuKi1ua6rpKKnn6CdmZStpa6qp7aoqJ+clqGknqylvqehqpeVnJGim5KQoqiik56XkpiUsrW2rJido6Sii5OSppymq52WqaWmnZuhqaenoqigkayel6Kel5aYnZ6PsKmUnKeij2t/apypeYl0f5uPdntmiHu9vsC6b5KDcZSFX3JqWl6biWFjh4+WbGB/lGNtnHZilWyAmZWUZV5gY3GaiWhyjHuGlGZqfnB0eH59Ylt4dIFoUFxuhHx8impXbHqBcklKb4VwTnJNRFZcZmBMWldmY19PWm12anJST0RETTxISTxMPjIsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVDRlVFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJeSSdTX1Y0KVBeTCgzPlxPJz8yPqifqKHBpJm0ubajrKaup6i1sqzIrLC0rbakvrKzqKGkqp6jnJqarKeupKW1qqSbmJWinKetqb6oqaWVlJuWoJqTmaapqJGfkI+YnLCyvqyapp2noomTkqmbqKScnKygo5qco6etop+poZmum5SmoJeUnp+dmLGlmaKomZ2Sn52kppuopJudmpybkZeCaG59cneRl5SQhIm0qo2FmJWPioyYl4iUlYmDk5OQiY2SlJmTmZean6Gam5Sfm42BeaSFbGl7kH2AdYmLgnKCeHl2dop/fIlqc4F0g3Vkd312a295bF9iW29nTVhZZmpfV1lwem9tZlNPRlM5UFpOUk8oKzpLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0onUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsLG3oKqms6emsLWqyautsqa1psCptKGfpaacpZaVoaunraOkt6ygmZeWoJitqqbBn6yklpKcl5+YlJWjn56jqJOQmKiossOvmaqcqp6PlpapnqucnqGtmKGbnaKlr6ahpKeerJiWpZ2ZmaGenp2woZ2ip5aZlJqUoaOXpJ+ZoY6YlYuLjpCYro98lZuCkYGJqaiFgJiWi4SOn4h7hJGFhZqRh4aKlY+bl46QmJ6jlpmSkJyNfo1lobOuhImEd3uQin53eXpvZ3mRgIGIanWBeYhyaHN/eXWDhoFqdGJ4ZV9oZGNkZmpYa3txamtcU0xQRF9VRkA+Pyw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAs6C5r76tqq2xsqCqprKto6yzsMWwq62ks6+8pLScoaijoZ6al6imqaakprO1n5WVnpqasKauvqGsopGRnpqalJKWopyXqZ2Enamro7THs5+po6qWlpiap56pnKClrJSfn52fqq6opKKroKuanp+hmKSenJ+dsKSZn6mUmZmek6abmaqfnJdmhZN9ZX+Pm5BjeYxsaGp6kKOramWamH5nhYtlZWloeo2ijmtojJiRondraouZo5+Yc2tteoSMhnlYZV2FgV5si4qCd1xnc3d3koCIgW53gnh/c215hHN2iIeNgnpohFhdanNkXXOIaWp8cW1jXVFOVklkWEBJMz1GNz9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1dX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQUlbSi42Wk82KUVZL0RPMVlCOz8uPaSeur25r6uzsKulqK2usKeurrC9saqopa6wsKCtl6GknqKamqasnK2kpqips66elqSQo7CmtrmlrqOPj5qimpOSm6CZmaaWe6Sroqi0w7eloaavnp2VnqOeo52kqqmSn6GeoKqvqqmiqp6mm6Wep6CrlqGcpbGkl52slqKfm5SmmaCsmZ9+vYSJc7RzhZ+GrWh3ucS4cZKho3qmmJl0q4J9y8DAunGLo4eDnn2WmIiewL2Clp2djZzBwXuBepGMmsLAfWqlsm+NgW/Ken+beJKEj4B2eYGAeXF7gIZwd4WLknhsdZFiZV53Y19lgGJedGhtZGJYS1VJUVlIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fYGFfXl5eXl9fX11cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0NQLyNGWzNQWS9VQUI7LziVornDtK+vv6mplKOwqrCvrqayta+qpqemsaugq5ibo6Ccm6qnop2so6WopaW0pJ6jk6aurbi0p6+ikpGZnaaTkaChmJugnoimq6Srrb+/saCor6mWkZ+dopmjpKqjk6Ghnp2srqiqpaOhpJ+jpJytqZGkm6muqpyeq52uo5eYppeipJief86UenulgnqWl5tfrY9djqiAoaF8p5WbdauDga9eZIyqe6iHhaB0l5OIs2OCq4agjY2zaoSvdHyWh7hhgq1Zo81ukHZ723t/mXF+iJN2f2V7iHV2bH6HbX2Fj5B9a4CMX3Bqb2ZgX3hkW3FoamRmYFJUU1deSk9DNUFIRUQ4PjU7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xfX19eXV1fYGBfX11bV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3OlNMKywtSjAnO1s6TC0hUEBGNC4xrMHAv7S0sLeYnpGjqqmttaumsq2srKSsprCqoaecmqaYnKKvn6GfqKejpqGfsKybnpamrq2xq6isoJSSm5+lk5CfpZedqKOeraOqsKi/xbKnqbGtlpKenKKXoaqqn5Whnp2cra6mqaibpaWioKqSrLOWpaKqqp6kp6eisqKTm6ecoZyWlZGXoXKGjJh2hqiHcbF8nXGsfaCggaWPnnirgn6tf51yrX+sh4afdpiSe3yXfqqIooyRi5x9q3qIko+ff3qtVpzEe5BwksF9gZVtdXCMbWZ3ZYZvYXhucm6IiY+Og2yPjWNtc3VvYGZtZF9vaWpuZmNXU1xgWlJSQzhJSUBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MTQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEtK6/Txseys5+do4+joqKtr7evqbGnqKqorqurp6KknZqjlZ+mq6CipqCoqKOfnrCtmJuWqKevrainqZ6XlZqkopKUoa2bnaejr6yirLWpucyxrKatq5aUnJ2imZ+urJ2WoZmenqmxp6iom6qno6Gqmq+xoqirrqaap6urq7Okk5ikp5yWk4Wka6R1inqpdXuycYKlipiMcIigm4ekX2FSq4WAroOcda6CqIaGn3qZl4Z7ZoCjiqSYhoGjfal/gZSGrl57qFWdopKBe6OfgHzEsMWMc6+0s7lyYqmvwnRoi4uWjYBrl5Bta3h4d25rZmRkcXFme2ljXFZfaVhYVExMUUxDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmBhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICcnISstIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfCydXWwKGZq6ihr6KfsLSwsKmto6enqqurqKSmoJuln52mp6aknayaoqyho5+vo56bk6qktbCvoambnJaVp6SRm6Kon5+mnLCloqixrLbHsbSoq6mVkZ2doZmgpbOdmqGUnJ6nqqqirZqqpqChqaKyrKGqs7KinKupsbC4pZSXpaqanZN9qm2fg4h2q3l8sG6CpIuJn5aVnpaB0ri0uMmBgrJfYZSpg6WIh6B6mJaaearJdJqjlKipkJKajH6aiZrGxndloYKlc4GfjoJ9r19vtWOxdUujhm2nR4OTZI6Pm5F7b5SPfG15dHx6bVtlanJxZoBpXmFYY21cXllJTExKRURCQT1BPEE/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fX15cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE5UUR0cOzxGMiwkqKTAxrmtqbKuraainLK5rKuhpZuopqqsqaagpqWYq6Ofr6ydpqGtmp+ppZ2ntaCjmJSoq7azrJymnKCWkKatkpqcp6OgqqeuoaOnqbCzwbGyqaynlImYnaWboqSvppeilZicpaWpma6cq6WknaujtqyhsbmwnpywqLS0taaWmaqmnKGQg55Od5qCgJ56hKN8gqSEhqafnJ+UhLh8fHq5gn/MxsO2d5uikYuffpmXl4p2n5eKpJikp36vhZuDnoSsfZmUYaVso3CPhZCBfZaEcqxgpHNxgJphvH1SVXWNkaGVenyQjodyeXKEfm9bbG53cmqBblpjX2huYmRdTExRU0FIR0ZIOjpLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIIyHmamspKu5q6+gm6Kss7Wmn6GVpa+urqinnqWlmqSnobOuoqmns6CaqaSUo7Wjo5WXoam1uaSco52jk5Cispmem6aloKKvrZykqKK1scOwramsqZGGkZynnaOknKWXnpiYmaWjp5itoauipJeupbusore2rp6etrS6s7WomqCxpKagiJDStcO3eYeOhZGTj4CmeJSid4yhkoWlg4tyq4eGtG5yaZmknZWJn32XmYeHkHOugqWbo42mipOciJSQmm1wslylc5N6nGyZf3uZfm6pYaJycn6gYnOyuGh3jpKkl3yJio+IdXt4jYFsaHdpeHNuf3RcZGRtbWZoYEpaV1g8SEY/UzNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBfXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgjKSWSco2Krr+/vLu1npeopK62oqKZlaOqp62pqpmlop+moKC1pqKpp7GklKujj6StpJ2QmpqqtLSknaWcqZKUl6+goJ6mo5ynnLWZoKqjtarCr6iqqKGMhI+coqGmo5WampyYmpimo6WXqaeroKObrKa8rJW9sK2fo7G1u622qZ2rtKarmnyokX18sHiLgKSliJxtsm+hh618oo+DqJeagayJhq2FoJSooKOXhZ+BmZaBe5J+q4GdmZaLq3edoI+Ik5J/ea9do4F8pqdknoB8l3Vqrl2lbHKFmV1gW4ygbZSPpJeBkoqTiHd5gZZ+aWx+Yn10bX95X2dlcG9nZ2hCWV9aPUpTMlM4QUFDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JODE1Mi4qLEFUVlZWVFRVVVVVVFRVVFNTVldXWFZVVlFIRklKIygovJKbhKnGw7fBtJ+araCuuaajjpqjpKCvrqmfo56drZieuaCjq6GwqpquoZGqqaWWipqQrbGsp6Com62YmY+toqGdpaGZpJytl5+opbaovq6kqaOfi3+Om5ugpp6SlJmblJmZpaOimKerqqGinqinvKSXw62ro6KttLytsKmjtrGrrZp3r36Ri5yGh3y6rYmYZLCMZZaufaGQhKeXnIKti4WwhqiapKKikYWgXGxrgrNgf618e4KBsmxmbpmXi4ixWn20W6SDa8iiZp+BfLtZdrVasn1Tr4F6rFiAoW2XjaaYiJSNkpN4d4ybfGNzfGKDd3SAfGFpZm9tZmVmT1VjXEFUXT1IKD45PTQhISwkHzIuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vru0wbOjnK2mpbepoIuZoJ+dsrGonqKfnbWYoLOoqquesK2erJyVrqiijombjq+sqaejqJquk5qPqZqhnaWfmaOipZieoqixqLuupKienY58i5qWoaCZkJGanJGZl6ien5enraWjpKKkqbqeoManpqmhrLa3rrCpob+wsLCYgqqSo6+Om4CGpJeYkICAuMO6hI+dk4WomZ2DrIuDr4qpnZqmq5F+1b3CqmKkv719f6OCg9e6t7WElJKCnr2+hGqjgW+rhG6df3qysceDa6uxvax5eKK+u3SAlYykmY2YjZOZd3+PmXlifHlkjGZ4gXtga2VqamJQYltTaVxAVGBCTCk8OjQvHx8kHiUyIBwkKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0scC5sr2zop2up6azpp2Ml6W/qbavp6G/pqaxm56xnLmon66vpaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp2nm5qgqKKYnaCrrKm4rKejmpeSe4eZkaabko+QmJmOl5OomJ6WqKieqKagoqq6nqnFo6GwpKy0tayyrKO/q7KynHV2qqW3hmWKoHBnrJCKj25ud6WQm6CCdrGbl3CRjnKXqqSbma+kcmxtbWaLeG9tg5lxgHppcGlniZaVl3FoaYWGZ3GGZF2KY2lvWl1nfnimYGJykJJwZmSAjZKNoJWVl42SmnqFjZN0ZIZ3Z4xqeH55ZGxjZmxiSmRXSWpZOlBkRFAnSjkrIxwgGiIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdaXGBfYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6ubK0qqmirp+ks6qZkr2xw8e8tKmev6uso6Cnq6C6o6SurK2mjpatqpCMhZWWrZ+mqqKfpKOgkYulkqaZqZmWo6mglpylpaauuaqsmZqTknuEl42ml42RkJeUjZeUppOdlqeima+lnaKruZ+wwailtKetsbOssK6qvKexu5iMoqmmtZyJl6OYhqmbkJSdkqq0mpykraK0mKSjn6KjnqOlopesp4ySk42Hk52dlZCZk5iQjZWEf6Sal5WOi5OSipCHhH5njIF0g3d0h4xxp219lpOUlIGBj4+OjZuRnZOUk52AhZKLcGiPdm+Jd3V8eWlrZGRvY1VhWEBpWkdiX01YK0U9KyYhNjQwLx8cICUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleX2FjXV5UUUpFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbevrqKwpa2goLaxkY6qxLzDubapoaSdm6WdsKikt6edqbWnqJGYrKOLiImPnKeWraShmqien5OVpJeomqmZlKago4+ap5igtLmnqpiakIx7gZSMoZSKlZGVkI+Sl6SOnZionpq0o5ymq7eor8KvpLinsLCyr6ustr2jssCak6ekprWikp2nn42pn42Sn6KtsZuipLOrs5qmo56mrKCfnp2YrZ6TmqKclJCXq5mNmJmXkJaekYegnpSUhpOMj42VjIF/Zo2IdYh3eomEdJxqiJKWlZKJfYyWkZCWkJ6QmZKdgYaWhXhxlHJ5iX9xe35qbmRfcGlgXF9ZbWJQYGJPWDlGRkU9Mjw9OC8qJispJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBgaWBlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlqSoo7CzrK6jqaetoKi1qpCPm6Oyua2qq6GimXqcobCkprGpl5y4pqOUmKmcjoaKiZuikK+epJaooKGSl5mcrourlo+omaeMmKiOnbi1o6WYm42IeYKTjJuTiZWRk5CNkZahi5ydp5ydt6J/g661orCwdaS/pLOgeXuirbW/l3iwpqGKgKp/ZFxid6COpJ6Dln5tlLWdpKmwrKVmoKGUdHqbmXCBmaqZbH+kqYplnKWckZeYl4uSm5CEnZuQlIOTh46OkoqFeGuQiHaHcXyGgYFhaYmMlZOMW3aVkWdnjoxxeaGVlWR4l4WAdpdogomCbnl/a3BkX3Zva2tnW2VjYWFtUVk9TU1OUkY9QFRCOTEvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHRklLTFRVVVldYGhmZ1hRSTxERzw5VVJbYGFiYF5fX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqqWprqOnraWSlaq0rrClmamlqpdzi5yvoKirp5SXuaCgj5yknpF+iIiano2smqSVp6KejpeSnoV1ro+IppqokZajiJu5s6egmJiLiXR2ko2Wk4mTkJCUjI+Tn42ZnqWYm7GVgIybtZ20jJKPvaiifqeje6WxuoOOj6ifhIyGj7Gpr4yKlqKaeYCLrIadnqOpq6mJloead6Wce4icgZing4F7nbN7ioagmJmUmJaBkJaWg5maYnmIkYSNj5KLhG5xkIh6gnGBgYaAh3SIhZeTeJZok3SgmnN7mYKbmYSYfpGIgYKYaYyMhGp4e3FwZmV4bmlsaltkaWlkcVpcR1NLUUBFNS1ZVFQ2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dSWFpYW2FhaWZZUUg5REw8PmJWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2YpJ+mrq6rqK2gqbGnp6qlmZOsxLyvoJSlp7Sdj4Ocq5ynoqCNkL6emY2fmqGRfYaPmJeIrJ2jlqGhko2UiYaAkaiOh6Kco5OWnYaeubGnnZqSjoVwdY+JlZCKlI+Om4uOkZ6QlZ6jlJ2rh5+0ibSarovKiKuvireFjbCEs7KGqY6pmY2dfKiPcnt3nI6mlmiVpHm0jKGgqKqTmcKCgKuJmaFynoCbpX2XhZWzgaF9oZOfj5iYgI6UnImYkot8hZSGjZWTioRudJKGgHtzh4GEfYV1hoOYgY/FZoCph4+iap2BnZeAmYCKjIOImG+NkoRnd3R7dmdodXBnaGteYm5sZmpXZEVcUEwyRTQ2TWBjNyYzPEVHRDo2MzY1ODs4Pj09PkJMP05JSkxDUFpdXFdiXmpsXFFFPUtNQElkWF1jZmhnYmJiYmNjX19iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6OgsKmpqKasoKW5samrppqUnqGkqaGUo6m1oq9/oKadpZ6diZS9mpONoJKdkHmDlpWRiKuZnJuaooWPjHabm46gkYieo5uWmJeGorispZmbjIx+Ym2Pi5OQjI+LjJeLj5GejZKeoJigp36hp4etnaCWrpCgnp2Rh4Khja2yiKSOrJuMmn6idoCZlGuBq3VNq3iHjZ2TnKqpgqqrfoShfHunap6Ak2xnl4aYt4mefm5gY1iDl3+Ne2Rni3OZfXmXbFx8l25gU3GFXGBteoRgWWWCfoWBmXGoqmuDo25ypW+fgZtnZJ5sWmyIemVZX4J+YVdQb3ZlbnRxampvXWlvbGpnV2ZNXFdFOEE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUktNQkpbXV9XXl5jdWBNRTpNTk1UYlxbZmZpaWJiZGJkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJeeoLmhqqSmrJKitr2rr6KZlp6gpaurn5yttKGnkaCfoKecmY6ZtJmQi56MlYt1gZSRjYqmlpaYnp9+k4WFrKOHnJGKmKiYmZmRh6WvpqKVmYeJgGluiIiLjo6Jio2Ri4+RoYuSnZ+aoaV/k4GPo6GUoHeclpCng6OpgIassIeleox+hJp9onBzk4eVe56MeW2HnIuakpyqnI+HnX2DonR3pmeefnelXph7fZNzom6Yt7S6c5OIgYC2qGSBxrh8cZW2jHGAm6NjdKyrYX5qnbN+bn6Ig4+DjJhxgKNscqNynoJ9o16cmbOVb3uXnrN0cluesoJpYnB0dXFob1hqa3FwZFtmXGFLQz1ENVFBWXAyPFJHX0pSPTwzOTU6OjZDPDtASVA/VE5OUUBFX15bWVdgYHtkSUM4TFdVVmNhWmZma2tiYmVhZGNgYWJgY2NfYGNrbmNjZGRoZGJnZmNoaJSWlaO5mauck6COpbi1ra2gmqGboqOkrJqasayrkpegmaGlmZqUnqybi4mReIuFcYCWjYqPoZCTlJ2XfZGKjqighpiPipKik5uajIqop6Sej5aHhH5re4Z/fY+Ng4uQkImOk5+BlZufm6Cfi4l3nJiijaByoYyJqYmdqJGYqq6Brox+eqCZeaOTeIBzl4iMnH2Vn4ebjpqdqIijZKF+ipaQm41tnmibjm+amXuAiqd9cmh0qoOeg3OqZ5SaXZuFdoSdaKpqgbhmXKlwgZxhlYxfp3Z3ioqAnWiadYeTkpiNfp5smI9qpplcqH53u2p9qVqOhF2zZ1xucXh3a2lbcGl3d2FeY1ZhQVBFTjdWQlJtNEpaWl5OWkRAMTUxOzs3SD86Q0hVP1lTWF0+RGJdVmBRYWR8aUVCOU5bXVhkZlhmZm5tYmJlX2FhX19gYGVjXmJkb3FfZGVla2RjaWhna2mVnYmqtpyoiWOVnKy7srCsnaWbmqefnayZnbCnqp2Xo5qin5mWlqCjmYaJjWmIgHJ7l4eMlpaEkpSYj3qLhJaknImVkIaLnZGcm4iPqKGfmouQioCAaYGGeX+WjHuIjY6HjpWZfZKhnqChk5hyaJ+KoI+McJKNgqmJmqGlqqKqfrCtpKK4l3ajs6Kjf4iUeJ16qpl/oo+fnZmJmHKhfYeNsLV9bJqRoXh+mbWjo6uohJl8mnycmn90qlpdb3uXjHieYk1/e3uFZHqYQk2fWaJqc3yOb4KKhJl2m3mHibGzf36akqZzfZ1tcHyUb5lyaaNdlXZIZWNgc3B9fW5lX2tndXpiYl5PXVZcVFZAWUVQZkRSVlxhWF5JRD1COD9COkhFOExFWEFXUlpWRUZhXFpgS2BtfXFFQzxVXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lY3ZsXmVnZmxkZWxoaGxplJ2Bsa6ahFRfoae0urOzqZqii5qpm5unkqCro6Cnj56dnZqZlZihnZaHh4l3hYFueZWEkJuLfZGTlohygYmSoZtykpCBiJiUn5qEjqibmZWKiop8g2yEhXGCoYx3hIyIhpGYlHuRop+eo4iuhn21hI+enXumlnqpgpeekYyjoH+naHhufplzoHNxfJ2FmG+Tgq18pISnn5uCpHBeqWh2o2RwpmGc0498e5l4cnNjooaQfqJyo5B2a5Czi2CCmIp0qrKovH93g25/v6aqtF6cb39yl3CCc6JyXqRndKZgaKZsm9OYeYGabnZ5l2ubeXaXcmyppWdfZHlxf4RsaGZjbXV2Zl5gUVplUFFhSFZJVF9XU1tkaltlUEVDS0xKS0FKRDhQQFBNWFNYT1NRYGVlalNkeHl3SUZFY11lWmhpU2loam5jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZmhsaJibf7GsVF1Lf6qwsrWws6KcmISXpqCgooykp5+WqImZmJmUmZOSoJeOiIV7cH2EaHyPg5OagneRjo+KcICGj5OSbJiUfIiRkqOVg42pmZOSioWJeYN2iIBugZ+Gd4CRhYeYoZV4kqGjmZ+Js6Gitot6rKekrqVwqYCbkYaBnpR+pYGjmoaYcZ6Eoq2viZeLf4ykjZWDr6OVd7W2tsmic5SMg59hnZepbXmWh6CbdaGHd6B+kJaLgW9NZqOScZqIc6V7enVig4JtfqBscmRgnHN/dJdre2q0trTGpnOYfXmcapqZq3OBmmxzd5dpmXl0l3FQRH2zXmp1a3iGZmtmYnN0b2xVW1JYZ09RZ0lVTFhSVVxna25VZ1dNSkFJTUpHSk5BUUpQZGNqbWV1c3N+eHtudIl6e1RRTm1eaFxraVJqaGlsZ21nY2VfXFxcX2liZGhre19dZGdjamZubWVpbGWinYmwqIVlP5Sisqyvr7Whoo9/lqehoaOLpKacm6WCmZeXjpeQkJuTjoiDeWt5hmWDjH+Wn3l1j4iMgmqFhZKEi4WdjXqMipWlkoKXqJaLkYuAiHqAfYt5cJCghXmBlIaIlZ6UfpOkppuWloNnbnicbKJkfHKleJyYcGingpmOfaV7oZeDlnKfdoGJlJWPuW2PiqJifZmjl4luc2ura3Wgbm+mYZtpi5BploeblXWigX6aYIuGjXVviGJooWaef2qbdXBkZ4iCb3KiW19bZKFuXoiMcXyAdHJkpW54omNmp2eXcYuXbaFvUoiPbqBeZKdUi11UmG1tcmtxgW1waGt3c2puUVZVVWVZU2xJWE5bSFdoaHJqWWtWUFJFVlxNWFNhVWhqXnd1e3xwfXxygnt/c3eNgIN3XlFzYWdicGdQa2hoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWZpnpldG2Lp66lqbCxpZ+Lf5apnJ2ji6GhmqGigJWZk46aj4uXkI6Ke4ZxgIhoi4p8l5pzdIl9kHxlg4eViomVmoJ8iIaWpo+AoaqPhZCKgYl9gICOc2mPpYN9hZKMh5eejYeRqaWdiaZ4lpt+pYmWjLKZnpGEr5efpXmYinupdaiQhJpupaKMkoSMg7xtfKWvgoeFh5WXnqJ+pnxyqJWhlmiffm+sY5aKlpN4qG2qo4GJdYiCd6uRpohrkrFsd7OMqWyLhm9voJ6SlWJ/q4yqd4GAjqefd599haSVnaBnmYd1rGaerYy2c3a+jKOTWYOmjathdXJ0b3t1cGJqfW5nbFJUWFRgYFxrTFtRW0ldbG12X1txWVtfWmdzZG1vcWNxdGB3en55cnmDc4N+gXt7jIGCgHZieWRjbnNkUmxnZ29tcmlmaWFfXlxhamJsbHtvXFxiaWJtaXdtZ2xuYpamq52BgJ6klqqqnqinraOYiIGWqZmdoomapJyonISMmo+GnJGFko2MjHSFeoiDb42FfpeTc3SGcpGDbn+LkoeGlJB9e4KFl6SNf6WkjYCOiYSUdYKHk25si6iAgouTjYibnoiLkqqioI+AdJSXiH6BeJSvpH+CnHGPhnmTjoaBe3OpjXJ9fXqXlpuEjXh7fX2IlJWTi3eRmaGihXt/imyMhlx6eXN6cWlufpOKcYB0go+Uk3GGhIJljX9fgYGMeHZzlHVwem9viW+Fhl93aXiOZoKDho+qnH90fZZpiYhvfnV7gnRtbGaMc3d7l3eEWmpXeY9pbndycW93eG9da4VuaGdWWV5WXGRqY1VgVF1RXm93eWtqd2Rpamp1fHBxdHNhb3Vic3uBeHV5gnV/gH+BeYuFgn17bYBtZHluXlduZ2h1a3hqaWlkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbqpp4uhopunpJmknauhn4ODlqqQnZ+ImaaaqJiCgZyLfpaUh46KiYxygnyOfH6PhHuXjnRyg3CVhnx9kouGho+GeX6AhpijjHumn4qFj4+ElYKGjph3cYSqhY2RnI+Hnp2Gi5unn6Crg4mNlZt/foqXraiQk6iReHGfk4V9lHB/q4dxfpVxam98gZ+Lf5GOi2huXYSNjZydoJBzl42JcnVsg3Z0gFlyb4eRgn5/jGpdaWR7hYSIgGBpeHucfISNg3aCh4RpeoyJbGJxc4N3X3ONg4qRqJaHZ42Ogmx2ioJugop3bWRlY3mCepVaW2lmbXZbe3l3dG5zcoNmXG2Ja2tiWVhcWVhqcVpeYFldXWRyfXp0b3Riamppe3xxenZ0ZG10aGx7f3V6fXt5eoCAf2+GiYN7fXN+enJ/aFRccmlsdnB1Z2tnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyrsaGQo6Gan5+YnpmooaB9gparjJ+ThpqhkaSVf3uYhXySmYmIhoaKcnyAi3aFi4KElopyb4BzmIaEfpODg4aKgnqAhIqan4+BpZ+Gd46XiJWKi5yXhIN5rIGQl5iTiZ2choehqp6ioqOLiJObnaOZlquiqKehk5yJmZF+epCQhql/gJORkpOcsaWalJ2PjbGSmISmjY2WnaGKkZ2EiZOLbH2Od3dmgoaRi32JnoWHi4+IiIGFhJF3fHt1m6SKh4ugjIeWf4CNg4F3cXWGhH94iYiLkaeRhIeOh4KLj4p6g4iGjH91aoCDfHmZaXFoYHOKcH17d3Zvd3SBXV5vhmduX15ZWlxTZ3BVY1tbYGxndHt7cm5vY2ppaH97bXh+cGhwcGxmgHtygoB3f31/hHttg4yFfHp5fH56g3hOZHZqc25xe2RrZWJiYFtzZnBmcnFsVV1sdG1oeHpwZ2lrZY2Inrqfl6KhmJWZmJSYpKCcen6XqY2djIWfnIqdlnx5lYN7jpmJhoOEhm14gH9ygId+iJOEbWt+epeHhIOQfoCGhId8h4OMmpyShqmdgnKKj4WSkYuckXyNeqmDjZGXlY6bloWFm6afopqdhoOSmpmZkJmmoaaenpCXgpONeH2JkIanfH2PkJGGmKqhnJOcjo2pjZKAno2JlZughI+YgIiPhHF5hnJ1YX+EkId2jJmBg4+ChoV/hoSVbnp2dZSkjI2Gm4aGkHWBjH5+c3N8iYV7eY2PhZSokIeEj4GCiYiIdIKFhoh5bWp8f3ttaGtsZl55f2d8e3Z0dnV7d1xgcH1udGBjWlteUWZsU2RaXWBqaHR5fnBsbGNqameAf2tyf2trdG53boR5boaAdoKAfYV3cYKNh357e3yAe4KLYGl7a3VoaoNkamNgaVxjdWdvYnVtbFRicXllb3l6cmVqbW2Lip+4mqGkn5OSlpeLmp+enHp3nKSQm4mGpJOKmJl5eo2Fe4qRg4yCgoJse394coCFfYqQfGtofYKXiYGIjnx+hYSHfI+AjpubkIemm39wioqLkoagoYqFjHynkIeOkZaSlpJ3jKOgoZ2Wmn+BkJqYk42ao6Kkm5iSnICQh3uBhpGJoYF+jY2PfJekoKCSmZCPpYyPgZySipWZnX+Tk3+Ij4N1dYJxd2F9gY6Gc4qWfYiMcYx+goWGj2h4cnqOmpORgJh/iYxzg4l9fXJ6fI2GfHuTjoSXppSNhpB7hIWGhHN/gISFd2Rwen54eXBramZefnNofHV1c3xzgGpeYHR2cHdkY1hdXlJpaFNkWF5gZ2l1eIFxZmtjbGdlf4BqbX1nbXBqfXeFemuLgXKBgX6BdXaCjYZ/fHqAgX1/j2pyg250aWKIaGxiX3FWdG9sbWB4aGxXanN2Y3R6enFia295iY2fs5Klpp2OkJiPhpygmpt7daOejZd/jKGKiJqWeHyGh36Ein6IgoF/cH56dHWChX6JkHdnY32Gl4qCio14fYCNg3mWgJWXlYyVnpp9b4uBkJOFpZuHjImDppWEkYqVl5KRdpGdoaGYlJd5f46Yl46Wmp2lnpqUlZ17komFeYeYj59/goqOjHOXop6gkpiOj6GMjIOYmISUl5p/mY59io6Cd3J+bntkgHyLhnGHk4CRgmuHg4GAioVmdnB9iJSajn6UeY2LfYKJfnxygHmLhnqFkouMmaOXgoSLdoeDgYB0eH+GgnNednd8c312ZmtkYH5pandzc3V9cXxjY2FzbnVybWFZX11aa2NSYldfX2dqdHmFcGJqY2xmaHyCa2h0aGxvaH98gXhsj4VxgIODf3R8g4yBgH56goN+fJBtdYl0dG1mimxqYWN1VoNpcG1geWdsYWp2cGV4e3lwX3FshYWQna+Yp6mejo2Xh4Wfk5WXfHaomomYeZaci4yZkHh8gYt9fYR7gIKAeHN4eXN9gIN/iIqAZF59i5SHf4WHdH1+in9+mISWk5aMo6CXfnGGe5ORiqaPjI6KkqCRg5CPk5eRioGPmKCakpCRdICOkpSJnZ2ep5mYjpWXdZCRi22ImpGbfIiJkIlvl52aopKVioydi4aBk52AlJSWiJqKfYuKgntxemt2bXt/jH9uhZODlHhvgoR+fouBZXNqfYKYmIWAjnWSioV6iX93eYF+h4F9hI+GjZWlkXmFgnSIhnt+cXJ+hIFrYHl0eXB8bmBtYmV7Ym5vdnN4d3N0YXZgb2x1bm9cWl5dXWldT1xXYmBnbHJ6iGtfaWRqY2h3h21mbGhpbGeAfHp3bpCIc4CDhH10gYaJeoN9eoGEfXyOcnmLeHhtbIdraF9pcWKHaHFvZXZnbWxhemhqfHt3cGF3bYqBmZqroaSpnoqLkYaJnoqUlnx2rJeMlnyek5GWlIh2fnuKfHyAdnd/gHB0c3pvhX2BgIl+fGFcfo+Shn+EhHJ6gIZ6j5GHkZGbkaSak4F9gHyNipKjiY2KjZaajIWQl5KVjYiIjJKdk4+MjW6EkI+RiZ6ZoqGYl4qXk3CMnIZniZuQlXuKhZCKcJaalKGRkYiKmIyCf5KffZORlI2akHyLhoh0c3VrcW91fYt1b4aRjpNydIB8goKJfWVybnp/m5V+hYp1koyCdYp7cIJ/god9ho2LhY6Wqo57iH1+ioR2fG5sfYKAYWZ3c3RuemFeb2BrdF5wanp5eWxycGV5Xm5sc21zWFpdX2FpWk9WV2RiZXBxf4dlXWloZ2JncY1uY2hoZWlngHp3dW+OhXOBgYN8dYKJhXiFfHiEhnqAiXd/i3t6cnmDa2tfb2h0f2txbm1xZ29rZXthbX96d3Brd3eJf6OZo6ihppuIjIqBj52Gkpp0f6iTkY2GoIyVk5CAc3x2hXh5gHJzeoZscm95bYl2f4CGbnFbWX6SjYiAgYF2dYF/f6CGj4qRm5egkpZ3iX6AjIicnYqPhpKXloWIlJiOlouKjY6MnYqOkYRtiYuPkYqclqGcmZaGmYlsh6aFZ4ifjJOAjYSMgXiTmJKdkZCIiZSNf36QmX2SjpGOm5N9i4GEcHZwbG5vcHyGaXODj5iKcXiAdYKJg3pndHB3gpuQfYqFe5WTe3iKdXKLfIeOe4uHhYqPnKWJfIR2gYl+d3dsaH1/fltxcnFvb3ZZXm9gcGpeb2p8enFubWptd2Bwb2txbVlYYGFhbFdQUlllZWF0b4SBYVxrbWRjZWuSbWBmZl9naoF1cnJvi4B0f4KAeXaAi4B5hX53h4Z2g4V7h4t/e3aKf2pxY3xihXxvcGx1amhubHd3X3F+eXtzdXN/gn6llZutn6eWhYyDfpaVg46ddImek5KGipqMlY6MenJ4dIJwcoV0cXWIbG9sdGyHdoN9f21uVVGBq5SHgniAdnKDeYKggpCBkpKYm5GYd5B6goySpJqTjoiUmJKEhZaYi5OLiY6Ph52EkYt9couFiI+InJmfm5eVgZWAaoifimiIoomUhZKEinGDkZePmo2PjIuOjXd7k5F7kIyOk5iNfIl9gWx3am9rbG17gGJ6fo+XgXd6gXiDjX16aHVtdomXjICJh3yVkXJ7hnF4jnuLjnuJf4SOkZ+fhn18d4GKfHZvZ2l+f3Zddm5ta3ByVV1uYnJhX21ueXBocGZnc3VocGxhd2VdVWVgYHFTUE5bZWNcd2+Ie15caHFiYmVlkWlfaGVbZ29+b2txc4p9dn2FgHV2f4x5e4aAeIeDc4aFfoyMhHx5lXhmcmuDYId+b29qe2BpbXSAdF5zfHiGd3NzhXx4oJCbsZ2mjoKKf4KZiX+KnH6KmJKOhIeXjo6OhHd0d3OAcHCFc3Bxg29qaXVtgm59fG11c1JOgt/JktaTfHB0g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYicf46BeHuMf4iMipycnJuWlHqOeGmLlIpuiqWGlImYhIZjjJGYjZSJlouMiYtwepWKfI+Ji5OSinqHfX9tfGVzb2tte3pcgXmQj4F7fn+Aho97eml1a3SMkIqDh4Z+l4xtf4Bwgo6Ajol+hXuEkZabnIx9d3iCjndya2RufIBpZ3NuZ2hzbFNdb2RwWl9scXdna2tiZ3hzcHBkYHhgYFVrX150T01LX2ZiW3dwiXRcW2V1YGFkZI5jYGZiWGlzdG5rcXaLfHR5hoJ2d36Lc3+Gf3qJf3GJh4GQioh8fpl2ZXNufGWHfm5va39Za255enJgdnp7jXZydop2eZ+MnK+boJCChXiIlX57iJyGhJ6QjoWMl4STjoeBdXdveXFvg29tbn5yY2R3cHxuenxqaGxipJrB3K7vonNsdYN1hKGEkW6Vj5Sfk5qAkXCFi6OXiY6VipCdloOAlI+FiI+AkoqKl3+He3Z/iXiGhY6cmpeZj5B2i3hwiYuOf42mh5SLnoaGXouUl4mOiI2KioSJbHyXg36JhoqRkIZ2h35+bH1keHVqb3l0WIh7koeGen9/gIaNf3pndGqBi5CLhISBjZiGbYN3b4mTg5KGf4R7gpKXlJqRdXR4h4t0cnBkcnZ/X3Jsb2FodGZSYHBna1VfbnN5YXJjYGl+cXJuW2NyYWJWblpcd0xMS2NmYF11coltW1xkeV5gZGaEX2NjXlhpcmtua3J3i31zd4SBeHh8iXGDhHx9iHt0i4iHlYWMf3+Yc2h1cnlti3puc3CAV3B6dnlxZHZ5hoxodoCJcYCdh5monKKShH1xjJN4eImcg4SfjI58lo2AmoiEfHN2cHNqb4Fsam18dF5gd3Z7cHR6Z2BlfOvatcnD3IlzbHSAdoqaiIxpl4+Om5ORgYhwhYigjoWLlYqMl5N7jZKHgoiQepGLho+CgHd4g4Ryh4KSm5aTmIaNdoiAcoeEjImcpIWWjqCEimGDlY+FiIWIjIaAh2h9lIB+g4WKjo+Ccod/gHJ3aHZyaXR4bVqMfZODhn2Ag4GEi4N3YnVtioKRjIOAgJOSfm+DbXqIkYiUhX2Cf4KTlJKYiW5xeYuEdGpvaW92fl1yaG1caXRfUWRxaGZTX3F2dGBwYF1og3FyaldnaWNoV21XW3RMSktlZl5hcXOFaVtcZXleXmRnemBkX11Za25lbmpzd4p9c3KBf3t2eohzhYN8f4d2doqFj5iBjYJ7k3Zsd3Z5eJN0bnd6fVh5hXGAbmd4dpGCZHaGhXGKl4aaoZuhioZzb5KLcXaNmnyJmYiJfJ9/hJl/gnlyc25vZHJ+aWZsd3dbX3h7enFxf2lhZ2F/1baOkaZ4bnF3e3GSkIyGapiNiJqQioV6aIeKmYeBkpCGhpeNfIyMgICJjXuQjX2JhXp1e4N8cYaAlZmOkpSCiXaEiHiGg42VoKGImJGhgIlhf5SHhIeDiIx/f4JmfZGAf4CDjI+Qfm2DfYN1bG13dXR3dmtjjoKPgIV/fISAhYl/cGB0coZ9kI6DfX+SinpyhWd7hYyIjYV8hYCBlZCRk4Vub3iLfnRsbWhpd3pgZ2lpWGt0WVJocmliUGJyeG1iZV5aaoRudGJcaGBlbV9vVFpuTUdOZmRbZm1xgGtaW2NzX1xja3ZkZV1dWmxsYmxqc3aGf3Fvf3x9dHiGeIWDfICHdXiJgZKVe4mGdomBb3h5e4SSb216gHZeg390gWxoenOUc2dzh3xykpKEmp+bn4aHdXWTfm11kpZ9h5CDio2afIyadn52cW9samF0fGdiaXV5WmB3e3ltcX5lZGhoV52PX3Jzl7zEhHZxlIiPfXGWi4abkouHcmqIjpaAe5WLgYSai3yKhXx7iYt/lIh1iYZ2d36BcnWGgZ2ThZSPhINygYp3hn6Mm5+biJWPnoGJZn6Tgn+FgoiJcYF9Zn6MfHl/gIiMj31pgX6EdmdweXhzd3Rsa46Gi4KLgHmCgYWEgWxfc3l7fo6LhnyCkIF/c4JqeoWJjYeFeYV+gpmOkY1+bm16iHx1c21lZXtzYVtwYlducVNTbXJoYU5ndXhmYF5dWW+Bb3NaZWJeam5gcE9ZalFEU2ZgWWptbXxuWVtdbWNaYnB2Y2ZcXWBraWNsanN2gYNxbX58f3R1g3qDgnyBhXZ+iIGWkHiEinSBiHJ4eX6NkG9veoBxaYF4en5tbHt1lWtqeIR0a5ONhp+ZoJmEh259i3Vpd5eOfoGKgpSXinmPlW96dHFramRgc3poX2Vxelpgcnx5Z3F5YWVlj7Gyd0tiWqXZ0JZxe5CKj3d9k4qEmJCLhW5rhZKSenmShoGEmIp8hn93d4mKhJaAb4uIcXV+e2p5hYOkkISTjYR/cICEeIZ7iJ6bl42VkpaFiHB7k4J9goKIgm2AdmiAhXlygIGDioh8ZX5/hXZkcXOAaXlxcHWZjoaDi313eYGFeoNrXHJ/c4KJh4p+h4p7iXOCb3KFiJCGhnOFe4KajY6FeW5ufYN+dXljZWh7bl5YdlpXcGtOV3FyZmBLbHd0YV5cW1p1fnNwWGddZ2pyYG9OV2dSP1hmXlpvamd5cVpaWGtlWWNweV5nXF5lbGdma2lxd3+Hbmx/foB1cIJ7f4J/gn92gYSJl4lxgo1xe4Z8enmDk4x1anl+a29+dH98b3J7epNvboF+eGeSi4KhmZyRgoVnhoNvZ3mViH1+hIKYioF8jY1peHNra2ZfYW95bV9ib3hcZGuCeWFxdl9lZdTqvYsyOj6Ljn9xeIWHjY11gpaMfpKNi35ta4SMjHV8j3+FgZSIfIJ3bnaHhIOXd26IhWx1e3VmeYKDpouCj4uEfm6BdniFfImfko+Sk5SOjId/e5KGd36DjIJqf3FogH55bnx8gouEd2J6hYJyZHJpfm51cnWCnIyBgIWAdHZ+gHOCb1xugHV5i4SLfIiBfol5e3JtioWRhYxzg3qAl4uLgHVtanaAf3RzW2dndW5XVntSWW9kTFpycmVbSXF4b1xbW1lddX91aVliW2hmb2RqTVdlUD1dZVxddWVgdG9aWVRuY1ljcXlaaF1gZ21naWtpcHd9jmxpgoR/eW6AfHyBf4F6dYKAjZOEcIGLbnd+gHt7iJKJf2h6fWpze3KFenN2fX6MeXiEfXxrjI2Dm56WjIGAbIx9a2h+jYt6fX6DlIJ+fYqIa3ZxZ2hiW2Jncm9gYWtzYGhwiHlic3ReY2SboI9uXDVar7V0aYCIfJGGdYWVhXOOiol2b2yEgod0eYl4iXySh3l+cmd2iX5+mG9xh39pdnluZnmHhKSGgIeMin5vgHeCg4CPnImElpOZioyFiXyQiHB6fYR7aH5saoB7emp7d4KIgXJgd4F+cmRyZ3aDbnV8hpaSgn2CgW93enx1f21ZcIB3dY2Dh3iIdoOJe3l0b4uCkYKGc4B+f5SJinxvbmltgYF0bVtlZHFvUFp6TVtuW09bcm9kVUtzeGlXWVpaYXGBdWFeXWBnZGlpZk5ZZ01AYGNbYHVgXXVsV1dTdGBaZG9yV2peYmhqZ21saHB3fJJraISKfXxvfn57gYCBend/f4qLg3F8h29xd4N/e4mMj4NpfXttd3h2inZ8eH+Chn+Dfn16bYSMiJmjjYSDe3WLeGtshIeQeH16gpGAgH6Lg3BycWNmXllmX3BwX2BncGZqboh0YXRvW2FkanZ7gL+cpqTIuHGEgnKSe3eFkoJzkIuHcnJvg3uDc3SGdIh3k4h5eXBjd4d6gJNpcoR2Z3d1Y2p8goedgYB/jo9+c4B1h3uClZKFe5iPlpCIgol7iYlreHl+dGd6aGt/eXRpeneAg31oYHiIfWtrdGh8gWl2goyRlX97fn9xfHZ8dH9iVnh+c3SLhYJ9hHGHinh5cXGFhI6Af3p/fnaPhoN3anFobIeBcW9cZmBxbElkdUtdbFRTWXJuYlFPdHhhUlhYXWFwg3RcYVxpZWVka2RQW3BJQ2NgW2NvXV14Z1RXVnZdW2VuaFZrXmFqZ2VubmhwdnqSbWmIjHl9cnt+eYKBgXx2fYOIhoNwd4RybXeCgn6Ji5N/cIB7d3h6gIx0gnh+gYGChHmAdW9+ioubnoh9hXp3hXtndIWLkHl+f3uIhoR2j4BncG5fZFxYZVltc2FgYHBsa2iIbmF0aVlfZG6Ad6naqceGh7JxiHdvjHR6hY1/eZKJf3RzdH13f29xf22FdJOFeHRrYHqCeYmPZnKEcGd1blttfYCQk3+AeJGTfnl8bop4g5ONhneYjJOQiIaFfH+FbHR2fmxndmRte3Ztand3f398YWJ4hnppdXVjfnxodYePjZZ8dYF3cYB7fW6AWld1f3B2hYh/gXltiYZ0emx2goSFf3x+en10jIJ9dGh0ZW6Kg2xzWmhdc2RHbW1LWmBXVlV3bWJQUnR2WFBWWF5gcoRvXWBjbWVkXm9jVFxxRkJlXl1lZ11bemJRVlx0W1pna2BWal9gb2Zma3FocHZ4jnRqjo11fnZ4fXeBhIF7dH2DiIeDb3KAdHF1foWCiY2KenZ/eIN7fIWHd4d8fYF+hIB7fnJ1eYyNoIyJeYl2dIJ4Xn2Fl4t4hoNzhYaEd4l6Ym5tXGJbW2FWaXNjYFtnbnBmh3FhcWZXXWNrf3zKzoe5oWptbYpscYNxe4OJfnqQhHl4c3h1dHtqbHZjhHWRgnZvZl99gnqMimVygmtqcWNYbHqFm4iCgXKWlHd/fW+Kc4WNjop0mZCSiYaLg3t5fXBwb3xmaHFhbXhxamxxeH19el1leoB4anZ4ZoN3aHSIjI6VfXKIam9+gXlvfV1Zc39udIGLfIJvb4qAcXdpeIGCgYJ4fnN8dYd9e3Nnc2Fui4BrcVdpXHZbR21qTFZVXVNVe2thT1R1clBRVFdeY3WGaV1gbGpmY1pvYVhib0dBZ1xgZV1cVntdTlVlcFlbamhdV2dgXnJlamhyZ3Bzd4Z4bpWLdH96eH55g4h/dXJ/hoWOgnBwe3h3dnmGhYeMhnl7f3SLfX2GhIOHfn5+fYd/fHh1eHiRk59/jHyKbXV/eGSDhpWFc5GKb4WFgXqDdGRuallfW1xdVGdzZWBYY3FyZ4ByYmtlV1tgan94vq57n7duYXOFaHN6cXiBhHp9i353d3J2b3t2ZWpvYYd1joBzamJefnh5i4RmcX9oa2taVm93iKKAhH9xmZNygXp2hG+DhJSKdZeKjomFiYV9eHRxbmh4X2psYG12amdqa3l3enZaZ318eWZzfm2FdWV1ho2Gl4BwjGdre4R1bnViXXF9bHV9jHuCZ3WHfm5xaXaAeX+AdH5te3yCe3hxZmxhbYl9bGxVaV92VUppak5RTmdMWHtoYU5VdWtMUVRVX2d2hGdeYXFoZ2JXal1ca2dKRGpZYmNWWVV5WU1WbWpZXWtkXFlkYl50ZW1kcWdycHWAd3CZhnZ/fnd/fIWHfXVzgoiAlYJuc3l7enNyhIeJiIN4gX11j358hIqNg4GEe36Lg3t2e3d3mp2YeomChml2fHtsg4OSf3KOgXCFgn+Cf3BnbGdYXVtcW1NkcGReV2JydWp1b2VlY1dcW2h/cG9ygHOJZGR5fWlzdXNygYN3gIN4dnJ1bWp6cWFna2eGc42DbWZdX31we4l/aW14Z2pkVVdyb4ymfIR7dpaRdH10fnxvfn2TiHibfYmHg4eDfXVwcWxndFxsZ15sdGRnZWl6b3tyWWeBd3VocIF4gndid4aLfJWCb4xqbXuCcWd0ZmFuemhzeIp7fmJ2hHdqbHJ1fHJ7e3R/aIB/gHl3b2RmYm2Fe2xqVWhhb1JKaGpPS05vR116ZmFNVXRkSk9TV2Frd39mXWd0aWZgVmRXYnBcS0tqV2NhVVRVc1ZMWHVkWV5rYFtaY2RfdmdtYnBpdG9yfnR0mYJ3foB4gH+GhHp9dYKEf5eFbnJ0fHp1cYSFj4GAeot1c5B/fIGVjYCFhH19jIZ6fYB3e6OlinmIhYRrdHt6dYKAi3puhHN5hH2Cg3ZvamllVl1bWlpTYm5kW1hhc3tqaG1pYGJYX1ppf2lrb4BnbGBoeXhqcnNzbYOAen98dXRtemhqeWpfZW5ogXaPhGdlWGJ3an+He29qcGdmXVRYb2eNp3aAenyQjnp2cYBxdXh7koJ6l3aGhICGiHZqcnVnZ25bbGNdbXJfZ2FqeGh7bFtug3J0anCBfnp4YXeGhXmQhXSJcnB6gXJjcmldcXhlcnSIfHljdIBxZ2p5dXNteXl2eWWFfH95d3FkZGNte3xqalRnYWVTSWtmT0dRakVgd2ZhTVNyXUpNVVllbHh8Zl9ucWplXVZhVW5uVkpTZ1dlXVhNVWtUSlt5X1tfa11dWmJlX3lobGFvb3ZucHd1eph+dn+BeYCAh4Z6eXqDfoGTg3F0dH56dnSEiJF9gHyQa3KVgHuCn4V+h32AfoaCgIp7d4Srnn96h4eDa3KBeXWAfoB0boZufIBzioBqcG5kZFhfWllaVGJqZ1taX3WCaV5tbFxhV1xca4FlcnR9aWlca3Z1Z3N2cWyEe318eHVxbHlnaXhmXWRzaHp3koFjY1RlcGiChXh4Z2lqYVdWWWdjjqdvfneAi457cXJ/aXtxfI59eJBzhX6AgIZuZHVyZGdnXGphXW9vW2debXRlemhddIBvcmtxfH51dmJ0hox7iYiBgXlzdYB2YnFuW3J0Y3FzhXx1ZXOAbWFte3Branx6dnRnh3Z7e3ZxZWJkbXJ9aWtTZ11cVEtxYlBGVWBHYnZmYUtTb1hKTVhYaGt2e2VlbnFnZFpXXlh3ZVRKXGJXZ1dZSFdkUEhieFpdX2xaXlxiY11+aWpgb3R4bXBudoOXenKAgHx/iYyGfXV1hniHjHxzdXWBeXp6gYyOfH6EiWlzloF6ip1+foV6gXp/fIaJc3GPrYx7e4aPfWRxh3lzfHp1cm6GbHt+bI96Y3BvYmVdZVZZWVdjZmtfXVxzhWhYcW5bXlhaXGx7YnB3dWxhWWxzc2d0dW9sg3h+f3h2bW5zZGh0ZVtndWZ2dpF6X11SZmdrg4J0fmJkalxUV11iY46kaXhzg4aReW5xfGp6b36IfXaKdIJ5fXmAaWR2bGBmX15pX110a1llXG9vYnplXHd8a25ucHh5dHVlc4STgIiDiXt3cHN/dGN4ZVxxcWJxcoJ8dGdygGVfbndqZWh6fXVvcIN2dH1zcmJfZm1ufGRoU2dXWFNNdl5QSVlXSGJ0Y2FJVG1TSk1aV2pscnxjbW1zY2JaWlthd1xTS2NdV2hTVkZYYE1HaXVYXmBsW1tfYWJchGloYW54eW1vanaBkHltgn6AgZOIhIF2dIl0jIZ0cXZ2gXh9fX6MkH9+k35wd5WDfJiSeYCAeHp+gHSIhHRxmaF6en+JlHdjdYd4c3d0a3Rvfmt4fHCRc15wbmBnYmxUWlpXaGNtZlxccYllU3JuW1pYV2BsdmNpdWppXlltc3Brc3NzaYR8fn56dm5ta2RpcWNbanJkdHaOc1tXU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEknVsbHtvcHJ8fX1zgniBdHt6emRldWddYllgZ1tedmhXYl1waGF3YVt8dmlqcm94dHN1aXGCloSHf4V3dGtxfm9neFhdbG5jcnOAenNncH5cYHByYmBrc39tbnZ/c3F4a3BhXGVsbHpgZlJlU1ZRT3VaUU9YUUhjc2FgR1ZqUElQWlZra2t9Zm5vcmJbWlhZbHFXUlBmVlZoU1RFWVtOSHF0WF9jbGJYYGBhXYtqY2RtenhscGl1eYd7a4N9f4SafIOEeXyHbY+Hcm52enx0goJ8i4+Cgpd0eIGThYGeiXWBgIF0f4JxiIN2cKGWc3qGi4Z6ZXeKbm16bmZ4cHprc3ZzjWtedW5hZ2VrUl1bVWdhbGtaXHGMZE9vbl1WWFVnaXNoYnRlZFxYbXRsb3V0eGqGfH97h3aPcmNka25hXG5tY3N4h2taVFZjZHh9fXGGXWRfY1RaX1lilZVjbXCDhYp0a2l8cGd1eXV9bXt1dnB7f3VfZnJjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXRxdHF1d2tthZSCiX2HcnNncH9ydHBUXGdrZnJ0gHZzY212VmNybFtfcGd+Zm54fnN0c2ptYVpkaWp3XmVTY1RVUFNsVlBWUlBHZHJfYUZYaU5JWFRXbmllfWlseGxiV11VW3RkU1JXaFFYZlRTR1lZT013dlpfZWtpWWFgXl2ObmJma3l1bm9pdnaAf2yDgH2HmHuAh4GJfmuTiHJmdIB7dYCDfYmOf4uTcnyKkYWHn4Z7f4aMc4GGc36Cdm6ki3KAjYt2d2x6jGBke3BmeXN4bG1xd4NnZHxtY2ZnaFNfXlVnX2xuW15ujWhOaW1gVFZTb2dza2V4ZGRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVweH5nWlZYYGx4fHtwhF9jX2dWWF9XY5uIYmtwgYd9eGxsem5deHNtfGt2dG9wfIFzWGpuXlhcVWFiV2RwY1NeYmlhYmxaYX5sZmx0dm9td3dsaYaNgIp7iW5yZnJ+bnRuZFthaWlwdIF0c15pbVNlcWVWY29kfGRzeH13bHBta2BZYWZndFxkVWBVUk5XZFFPW05PSGRvXGJHWWlNSl9LWW1kYHlpbn5lYFVfVF11XFNSYGZOXGBVUklbWFBZdHVdX2VraFhiYFtejXFjZ2p4cXNuaHZ0e4RygoN6iI5+fImHjXlukIl0a3OBdH9/iIWHkYSVj3l9jI6HkZuEgHyMhXN/gXN0eHJvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fX5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY2NjY2Njo2NjY2NjY2NjY2NjY6Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpKTk5OSk5OSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6OjY2MjIyMjIyNjY2NjY2NjY2Njo6Ojo6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyRbWZnZ2dnZ32FhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmOAvru7u7u9s21mZ2dnZ2dtbm5ubm5vamZnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJFnX2BgYF9eeYOCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fW37IxMTExMa7Z15fX19fX2VnZ2dnZ2hjX19fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkY6NjY2NjY2PkJCQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJjJKRkZGRkZCJiImJiYmJiYqKioqKiomIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkpKSkpKNkZKRiYeOipCSk46Ijo6NkYiPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6Mi4uLi4uLi42NjY6Ojo6NjY2NjY2NjY2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCRioaNh4aJhYiQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJGKhImGhYWFh4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+NhYSHhIaIj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4WIhoaIg4qPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2Mi46Jjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn1+f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYSEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Pjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX5+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f35+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f39/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX19fn5+fX5/f35/f39/f4CAf39/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2hoZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent4dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUVFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3enp8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9OT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NTE9STllwcHJ3eHd3dHN0d3p8fn1+fn5+fn5+fn5/f4CAgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzs4OTg7OzpAOzs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4OTo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3FzeHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7Oz9AQUJAPTw5PD08OTc5Ojo5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+AgICAgICBf4CBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozs6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t9fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj06Ojo8Ojg5ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dXd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/QD48PkA/PT09Pz09PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxvcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JDQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHt8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjs+PD89PDo+PT9CQkVAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRGVvcHFxdHZ1eHt8e3t8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/O0FDREI/PkE/QURFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gYGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRkpISUdISElHRkJERkREQ0FVdIeJh4eGiIJXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3Fyc3d3ent7ent9fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLTEtKS01KS0hIRkZHRkVQbISHhoaGh4eIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz8/REZIREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9fn99fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTUxLTUxJRkpWbIGGhYSEhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXp7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lJS0xPTk5RTlFecoGFg4SFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7Ozw+QTs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5/fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BCRkhLSExLTlRne4SEg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc3ODo7NzY4OTk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn9+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9OjxEQkRGRkRWeISEgoKDgoWJioqJiYqKioqLiYmKgUg2NzY0Njg4NzQ1Nzg0Njc3OTk3NjY3NjU6Ojs6Ojw4OTg5OTg3Nzo6Ojg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT09RV2tycnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PEQ/UH2Eg4OEhISGiYqKiIeIiIiKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo5OTs6OT09PT87Ozs9Oj48Ojw7PDs8PDo6PDg6Ojs6OTk5PD88PUFCRElKTUtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj86Ozw6ODk5ODk5OTk6Pj0/P0N2hIOEhIWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVCQUFCPkBDQUA/PT4+QD8+P0A/QD09P0I/QUE/QT89QEFAPz9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODo7OTo6Ozw6Ojo8Oz0+QD89YYWDhIOFhIaJiYiHhoaGh4iJiouLioqKi4qLXj5ER0lLSkpGR0dERkhHRUNAQENFQ0JAQkNCP0BESEVDRURFRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3Oj06PDo9PT4+Oz48Pz5CP0p+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqHV0dMTE1LTklJS0hJSkpJRUNERkdGRENFRkRCSElLR0hHRkdHRUtKTElLS0pDRkNDREJBQUNCRENDRERDQT08PkBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgIB/gIB/T0E+PT9ETEtAQkJBOTc7Pjs8Oj0/Pj88Pz5CQUQ+aISChYWHh4iJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtGREdISElFRUhGRkVMTE1JSkdHSElKTk1PTUxOS0hGR0dFRUNGRkZGREVISEZDQT9ATG1wdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw6Ozw6PT88PT0/QENCSFN+g4SEhYaGh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMTExKSUhGSklESkhHS0pISkdHR0tMTkxMSEhJSk1QTk9OTE9LSUdJSkhJRElISEZGR0dJRkNCQUNVb3B1d3h6e3h4enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0hCPzg/QDg6Ozc8PTo8Pzw8PT9CQ0NMbYSDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIuLi4teUlJQTU5NS0pHRkNISkdMSkdLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pJSkpMSkxGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl6ent7fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OD89PT5ARUQ9QkRDRkp1hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtKRUZGS09OT1dWUVBPUVNSTVNUT01TTFBTVVdSU1JQTEpNTU1LTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz08QT9BQURUS0JISUZJS3iGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBKOztRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFBRS0tLR0hKSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fYB+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0dGRT8/QUBFQUNGRENES1ZQSk9PTlBQeYaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1A/QFZVWVxkYFZZYnJeXVZdWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01LTEpJSUxNS09NU290dnh5eHd5enp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SExJTVBLSUpPU1FQVFZVVlR1hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXl5bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJhc3N2d3d2eHl4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktKSUlGQkRAQTpPUVFXWFBQUFFSU1JWV1dXV2yBgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaWlhcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdXd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpaUlNRT1FSUVVSVVNWXnV4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBQSU5PV1ZYW1pkcXR2dnR0dnh5eXt7fHx9fX5/fX19fn19fn9/f4CAgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU09PUU9RVlFTUlJUY2R2gIOCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JVUk1PWVFNTlFTVVVNUVNSUE5MS0dDSUdSU1RaXW1ydnZ1dHR3e3p6e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f3+Afnt2c3d9fn5kdX1pcXRgZF1eW1lVUUxJTElhbJJ0UFFTTVFSUFNbUlNSUVJVVWJze3x+gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5CQkNDQT9EUENDQEM+QkhHVkBITk1HXWlRSEZPRkRFRkhHSEJDSEdISkdDQkFDQE5QTVJkdHV2dXN0dnl8ent7e3x8fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZoZWViXFhTUVBVUnNXZVtPT05MUVJQVVlTVVFRVFJPVmBrbHN2ent4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojo+QD8+Pj5qUEthRUZISUVCP0hMTUdNUVVKQkU/Pjw9PD09Pz0/QUNCPz48PUI+SU1GVW91dXZzdHZ4enx6fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKT1BOS0xRUlFUVVVXUVFXVlBYW2JdYWdtbWxuamhgbnJpbWxxdXt6fXt4enx8eHd4ZEJAQEE8OkJDQUFDQVtcT3tOT09OS0xNT09QTEtMV05IR0FBPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1dnV2d3l8fHx9fHx8fH59fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT09eXFpJR09RUU9NUFFOUVJTVlhTUllUTllaW1dZXF9eX2VfXV5xd2teYGdrd29vbGpvbW5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FXUE1JREY+OTk2NTg3OTc5OjM2NTc5NTxCPWZ0dXd4d3p5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LU1RTUFFVT0xSU1RXWFNUWFFMWFlZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT01MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnJ1eXl6e3t9fX19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdUW2ZKTFBSUk9NTU5NTUxKRlBQVVlTVE9KTk9VU1RcVlJVU1NPTUxJSEhGPz49Ojc4NzY1OTk2NzU2NVdxcXR4enp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFdZWVlSVU9JR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlBUT1jYFFTUVBOUFBPTk5NUE5UUlBSTElMS09SUFFSU1RRU09MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVlFTRkZBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPTNAPmpvYVJSUUBHVFFPUFBRTlFPUE9MSkxMT1BOTVBRUU5QT0pMTU1LR0VFQ0I7PT08OT1HNjY3NkRucXV3ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVVlZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JCOERNU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FMTk5NSU1MSUtLTEtHRkZFRDxBQT47QEU7PDg5VHJzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E+PT1BQEI9PkVIRkRGRklHSkpARkFBQEVHRElPSFFSYVxRUFJPU05PT0xMT01LTUxNT05bVktNUU9ISkhDSUpMTEtGRkZFP0JDPj1CRz9CP0BkcnV3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU05LSENFPTk4Nzk/Qj87PkFAQD5BRElFQ0hHSUdJRUJCPz48QkFAR0pFTU9iZVBNT01XS0xOS0tNTUxMS05OU2RNSkxSSUlJRUJJSkxNTkpHSUZCQkJAP0VGRUhETG9wdnp5eXt7enx6d3N4dHh8fHl6bnFybW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPR0tFP0I9OTk5Oj9CPzxBQkFBRERHS0ZESUlHR0hDQz9CPj8/QD1DRURMTVFUTEpJTVRGSUlKTElKS0lJTE1PUFFQS0dDS0dDQ0tKTE5PTklKSUdDQ0NESUpNTElac254eXh6ent5fHZycHVydHl5dnhqcW5qbGxudHRtc3V7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxaXFoZXFISkNGR0hHSktJSkxER0I8Pj06Ojo7QUI/PUJCQ0NIRUpMSkVJSUZHSENDO0FAQj5AP0JERElNT0dISkdIS0RISUtNSEpMSElKTEpNXVJISUROR0JFTEtOTlFOS01KS0ZHR0pNTlJOTWNuand2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnl0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lqdGhlcEZKQ0ZFRkRFRUZFR0NDQD08PTo7OjtBREA/QkNFRUlGSkpMRklJR0ZGREI6QUNDPj9DQ0NER0tNSEpOSERIRUlMTk1ISUxHRkZJSUxOS0lIRU9JQ0dOTVBOUE5OT01LSUhJT1NRUk5TZ2dmcm9zeHZ7enxsaGpvZWtwbXNxZm1saGlrbHRtcHV0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZl9wR0pDRUVEQkJBRUBEQj4/Pjs7Oz07PT9EQj9BQ0ZHSkZKSUxIR0dHRkVDPz1ERUI+QUNCQ0VHSElHTVBJRkVGS05PS0ZISUZFQ0RJSUhLSUdIUEtESk1NUU5PTk9QTkpKSU1SVVVSUFhlYWFtZnByb3J5emdlaGhjaWxmcWxmbG1naWtsc21wdnV0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VERkJBQEFEPEJBPkE9Ojo9Pzs+P0FCP0BCRUdKRkpHSUdGRkZEQ0JBQUVGQ0JCQkRFRUdHSEZMUExITklKTEtJRkhFRkVDQ0hISEtKR0tSTUNPT05RT09PTk9PS0tLUFVXVlZUWWBfXWlgbWluaHJzYmVmZmRoaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNwcmtrc01HR0VHQUFAQ0Q8QUFAQzw4Oj0+Oj89QEJAQEBERkhFSEZGSEZFRURDRUJESUZDR0VBRUdFRkZHRUlNS0hRTEpLSEhJRUZISEVDSUlKS01LUFNORFJTUVFSTk9NT1BNTE5TV1ZXWVZYXlpdZGBoY2ppZ2tfZGVmY2hnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hBQUJFRTxAQ0JEPDc6PT47PjtBQj4/P0NFRkRGRERHRUNFQ0RGRkZKRUVJR0JHSEZHRkVDRkpKR01KTEtISktGSUhKSEVLS0xMTk9SVE9IVFVUUVRQUU1OUU5NUVdaVlpZV1peWlhhYGBgXmhlY2BkZWdnamhoamdobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSENBQ0dFPEBFQkQ8ODo+Pj48PEJCPUA+QUJGQ0VDQ0dDQ0RERkdHR0lGR0tIQ0lIR0lHRkRIS0lGS0hNS0pLS0hLSk1LSU5MTk5PUlVWT0xWVlRRVFJSTE9RUE9UWVpZXFpaXF9fXV9jXlxiZGxjYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUtJSkhKRUJER0U9QUdEREA5PD5APz4/Q0I8QD5BQUZDRURDSERFREZGR0hGSEdJS0pFSkhISkhGRkxISEhKR0xLTExMSU1KTU5NT0xQUFFVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJmXWRgZmdgZWhqZHNzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3dGd0cmtxcmtyd3B3SUpLSUtHQkVERTxBRkREQjs/P0FAQEBEQUBCPkFDSEJFREZHRUhFRkVJSEZJSEpMSEhKSklLSkZKS0hJSkpHS0pMTElJTEtNTk5PTE9QUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFiYGNkZWFkaWJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV1c3Bzd3R1dXd2dXV0ZXFza3BxanJ2cHdKTExLTEdDQ0FFPD9FRURDPUFBQ0JCQ0VBQ0RBQUVHQ0dHSEZFSUZDR0pHR0pGSUxISUpNS01MR0tJSEtLTlFLUlBMU01KTU1OUFBQVE9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5hY15gZmNhYmduaGJpaGhteHZtaGlub3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnNxcXV2dXN3eXd1dHVjbXRrb3BqcXRwd0xNTExMR0RBQEQ+PURFRkM/Q0FFRERGQ0JFR0NCSEZCSEpJR0hKRkRLSkdISkhJS0dKSk5LTkxJTEhKTUtaZkpkW0tsUkdOTV9uVWxzW3FwYndjUlBidnVodWNhdmFYbnFiZHZpbnpmXGx1YGxrVmB3dWhqZ2hmZ2xtam1vam1vc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cnFzdHZ2dXV5d3V0dGBrdGtwcGtxc3F5S05KS0pGQj9AQj88RERGRENDQkVFREZCRUZHRERKRUVKTEtJS0xHR05KSEpLR0tKSUpKTkxNTUxMSU1MTFtzYmRwXmxsVUxOZXJdZ2VxbG50Z3BpX2FZbm1icHBia2lqZ29xdGV0bm5ccHZncE5Mcnl2a2Fha2VlbHhta3Zsbm9zcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd4dnV0Ym11a3BwbHJycXpLTElJR0VEP0FBPz1CRUZCRUNFREVFRENISEdEREtIR0tNTUpMTEZKTkhKS0pJTEpKSUpNTU5NTU1LTk1NW3Jwb25wcGtqTE9QbVhOaWJ0cnBhbW92XFlsUFttbVpxbWtvbXh4dHNpcF1gc2xxalV1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dFRUVCQUI9Pz9FR0JHREhFRURCRklISEVHS0pHTUxOSkxNR0xOSU1LSEpNSUpJSkpOT05OTUxOTUxcaGR1XWxxVmtNT1FuVVprXmtsdmFsZHRUZWNObFlsXHRwa2lseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cXNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1HSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRklMS0ZNS0tSUkxITU1JTkpJSE5HSkpISU5PTU5MSk1NSlp0cHBvcXFsa09RUm5Zc2tnb29xcW9tdF5uWGF0X25vcG9xcm9vdXN0dGpaXnRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0RERUBAPkNDQUZDSElNSEZDRkpMSUdGSk1MRk9KSldSS0dLSkpOSUlKTElLSklJS0xNTUxJS0tLU2tiWWleX2pjcnJaX1lqb19lZVVrX2NbYWFRYG1oXGpcbmlpZFtvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRkpERUNGQUBBRURDRkJISkxHRkNGS0xJRUZKT0xJT0pMW1FKRkhIS01JSEpKS0tJSElHS0tLS0dIS0pMS0xKSUtMTlRbXVRQVU1RT05PT1ZRT1BRTk9RSkpOUFFkcWlUWVZbW1xVWVpdWF1cXGNmYWFmYmNmX15ma21obXR4cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzR0NFR0ZGQEVDPkNHREVHQ0lLTEdGREdKTEhER0lQS0xPS0xXTUlGRUhJSkhJS0hMSklGSEhKSEhIRUZMSUhKTktIT1xXXk9cXGBeT1hZU1xcYl5NWFpNWGFSS1lhWlNgZFxhWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRPQkNETExBQ0RBRElFR0dGS0pLR0VFSkpKRkRHSFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdFSkhFRkdFRUpHQklMSUpUX1lgWGBhW2BVWFlUXV5aX1JZXFBeXFlOX1xeU1teZF5aXWBjX1lfYltgXltVWVhaX15jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN1eXp6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSERDQkNGR0VHR0lKSklIREZLS0tFRUhJTkpOTEhMTkdIRj5HR0xJS0tKS0tJR0VJRkNERUJGSkQ/SUpITlpiWV5eYV9SVFNXX19cXVleUVlcTVZfV0tRWVtRW19iYV1eY2FgYmJiY2NlWlJZVlddWl5kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WFFKRkRHRUJFR0hGR0hJRkdKR0hGSEtJS0RDS0pNTUxMSEpKSEpHP0dGTkpLS01LS0tJR0lFRUBEQUhJQT5ISUZPXWBaW2RdX1RRUlhdXFxcX1tLV1xMUlxZSU1eUVFdX2JjY2NjYlxkY2JkY2VYUldVVF1ZW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoWGhYaGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0VLSUZHR0lHR0pGRkZJTEpORUNLSkxOSkxJS0pJSUdCSEhRTUtLT01LS0lISEZFP0VCSEhBQEZFQ1NdWV5YX1lfW11VWFhPXFxRS0pWXlheW11WWmFSUl9fYmJgYGJiX2NiYmRkYlhQUlJTXFRcXV1eXl9fX2RoZ2xqbm5we3t8fnuAgoOEhYWFhYWFhISFg4SEh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0dERk1SSERSS0ZISEhERktJTVBFR0lKS05MTElMS0pJR0RIS1FPTUxQTUxLS0lKREVBRUNIRkFBRkNBVVVFXFReU1ZfWE5UVU1ZWkxKS1RgYVtfWF9eYl1PWWJcYGBfYmNhXWJhV2BfVFFQUVJZU15cW11dXmBiZmZlbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJU2NRRVdfSUdHSERGTUpQUEZJSEpLTkxMS01LSkpHRUpOUVFOTlBNTk1OSUxCREFDQ0ZDQkBDREBMSENMTFBPTkxGTUZGSElHRkxLTU9QSUxPUFBTUExRU1JVWlhXWVdXY1ZOUlRQUVBPUVVUXFlZW11cYWFlZmNoZGxtcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtOXk1ISFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS1BTU05QUE5PT09ITEZgRUReTERmYkNMWkheXHNtT01WbVhLQ09fVGtWZ0ldV1VeRExRVUxNU1ZRUlRYVlRYVFRcVE9lWmhoZVpVa1RYV1VbXFtgYGFiYmJgZ2lnbmxocnp8fX6BhISEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFS1BUSktHYFRISk9KSU9NUlFLTUtMT1JVUk9QSkxOR0hNUVtZT1BQTlBRUEpLUX9RSXxZWXJzV1BtR3Fub2FWUHFxdE9CanNucXNwU29fW25YXVZcWFVraFVdVmNZYFlaXlVVV39pdHV1X2F2X1hiXFxmW19hYWFiXmBjZ21vbGBwd3R4gYGCg4SCf31+gHZ4em12fnR4fYB8foCBgoR8gIN6f4F/fnd3TUlFSE1NQkRMTEdKTEZSVkxLT0hMUlhXUU5PT01RVE5PUVBLTE9HTVBTW1pUUVJPUFBQS0laeF1UeGRoWFJTUHZmdGxwYm5ma1JyTkx3bWpycHNycXJwb2+AXWV6dXhxcXpxfnJ9a3V9YVJofGVzc29zc3x9b354b39yYGBgYmJbYWFobG5rYmxmZ213foGAg357eHeAdHZ6aHJ+bnR8fnd4e36Ag3h8gXV8f3x8c3NNS0ZgXUdBRU1NSEtLSEpQT01OSk5WXllVTFFTTllZTFNSUk5MUElRUlRZV1dRVFBQUFJLSGd4bGN4cW1aSktUeXB1bXVibnZQZGRIZXZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGhuWHV1anZ1cIBhc2h9aWx4fG9fX19jYlxfZGVnamplZ2JjZGxscHBzdHNzc3lxcnhibHRncnl7c3N1eX6Bc3Z6bnx9eXhybk1JUnROQ0JFUFFIS0xKTFFPT09NUFpgWlhLVFdQYV5SVlFZU01QSlNUVVhXV1BVUE9OU0pLcm91dXF1cWNoYFZuS3FwXkdoeVd2VEtoeH13YHl7c25hXW1vZFNncnVubXlwd2x2c3RxbG1cc356a215fGx1bnxscXZ1eF5fX2JfXV9lZWlnaGZlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUUtNTkxMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRWV1lXT1NPT05SSVJtSGl3S2BkdnZUVmxObmx7cmFqZ391VEtXa2d8bG1seF9acHp7X2B6c2Nyb3hxaGR8aXJ7XVRLa192dWxqdnx7bX55a3xwXV5eYltfYmRlZ2ZlZWNbY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxnbG1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTExTU1JPU1JYUldUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FKSFFNT1VMS0tSU1JRUk9WVVFRT1JSWFhQTU9VVFdYWFtbVVFSV1tXWFdbT1JUV1dYUV1YVlxVVE9YUldXWFlaYFxncl9bW1pdXV9jWl9jY2VnZGRkY1pkYmdmZm1ubXVmZmdjYGZeXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJOUlFQTFZVVFBUVVhVWlZSW11WVVRXVVlYT09MTldUUE5VU05QTkxRUEtJUVFLUU1KSk9RVFFQUVNSSkhNT1BRUlBQUFRVUlhXXFdTUlBRVVVVU1pRTlJRV1VTWVZUWFRTUVRTVVVZWVheWl9hXVxaWlxcYGNcXmJiZGdlZWViWWBhY2FiaGhqbmNhZF5fY11aY1xibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVJNWFdVVFZYV1daVlNcYFZXVllVWFRRUEtPWFNQTlVQTlFOTFNQTU5VU05RTk1OUVNPVFBSVFROS01PUlRUUVFRVVdVWVpbWVJVUlRYV1ZZXFNPU1RXVVRZVVZYVFJRV1VWWFxaXGBdV1lfXV5dXF1gYV5bYmNjaGdmZWJYYGBiXWBoZWdlYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMT1RQUFRRT1FaWVhXWVpaWFlWXWpkVlhZWldWU1RPS09WVFBPVFBQUU5NUlFPUVhUUVFPTU9SVE1XUVNUVU9OTlFUVlVSUlJUWFZaXVxaVlZRUldYVVtbVlBTVVVVVlhTV1dUUlFYVlZbX1tfYF9WX11eYF1cYF9fX1piY2VpaGVlYlliYGJeXmZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVVFPVlxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVdTTU1ST1FST01QU1JVWlVUUFBMUFdVUFZSU1JYTU9QUlVYVVRUU1RZWFteXVxbVlJPVVZVW1pWUVNWVFZYVFNYWlNSUVlXV11fW2BgYFZiXGBhXWBiX1xgXWNhY2hpZWZgWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcW2BeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVUU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5QV1NOUVFQUlRSTFJUU1lbV1VPUk5TWFVTUVRRUVlPUVNTVltWVlZTVlpYXV5cXF5WU05UVlZbW1VRVFRVV1hSU1lcVFJSXFhaXV5dYmFgV2JbY2JeYWNfXGJhYl9kZ2llZ11cZGBhYGFjZF9iX1laX1tcW1hYWVdXWlpaYV1dW11cXFpdYFdbW1pQT09PWVBVVVNSWFJUUFtdXl1cYFxgVVxcaGpyfXNsaFxVWVdRT1JbU1JRVFJUVVRLUVZVWlpaU09TUVVVVFJOVVFSWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZWV15aV1FUVFdYWFNWWVxUUlZdWV1dYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVmXl5kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JaUFpVVldWVFRUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRVVFZZV0xSWlZcWlxSUFVTV1VVUk9XUVNXU1dVVlteWFtZVVpeWF9eWVxZUldSWVhZX1lZUlRVWVlZVVdZXFVUWl1dXmFiYGVkXV5dXWVhYmZkXl9kY2BcZ2VoZmRiYGVhX2FhYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lRXFVWWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZWV11YT1VcWV5dXVRTWFJWVVNRUldRU1ZUWFhYXl5YXVtVXV9YX19YXFZRWFRZWlphWFtUVlhbWVpXWFlaV1ZdXmBfZGNiZWVeYlxgZmJkZmRfYGRiYVtmY2hmZGZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtZWlpdX11UWV1VTlRaVlRcVVdXWVdWXGBhYmNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVF1bYGFcVVVZUFRWVFJVVVFTVVdbW1xfX1pfXFZfX1ldXlldVlJYV1lZXGJZXVVWWlxaW1paWVpYWV9fYGBkY2RlZWNkWmJmY2dmZV5hYmBjXWJjaWVkaF9nXmJiY2FhYF5fWFRaWlpbW1hcWFhcW1pbV1daWFdcW1xgXVZdXVNPVlpWVlpWWVZYV1hdX2JhZGFkYV5ZWWFkYmBrZmheXF1bV1dZWlxcXF9bWVtiVlNXXl1hY1xTVllQVlVVVVVVU1VUWF1dX2BgXWFdV2FeW15cW15YVVhXW1pfX1teV1hcXFxdXVtaXFdaX2FeYGRkZGZmZ2NZY2ZlaGdkXmNgX2VjXWZpZGVpX2deY2JjYWFgX19bWFlbWVpZWFpYV1tbWltXWFpUWl1cW2BcVV5iTVJXWVZXWllbXFlXWV5gYmFlYWRhXV5ZYWNiX2FgYV9dXV1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBXVVdYV1ZWV1ZdXV5hYmFfYl5ZYV1dXllcXVlYVVZbW2BeXF9ZWV5dXl5gXFpaWVtfYl9iZWRlZmdoY1plZmdpZ2NfY15hZmVaaWljZmljZl9iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVbXV1dYGBiYXhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW1xfXWBfXVtgZFxcWFpiZWNhUlxZT1hWWVtZWVdZWmBeYWJjYGFjX1xiXV9dW15dWVlUWF1cX19eX1taXl5gYmJbW1dbXWBiYmNlZGdmZmdlXWVnaGlmY2FiW2NnYFxpaWNoaWZlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXVlhQWFpdYWNmZnJrf0pZV11bWl9dXF5cWF1bXl9iY2JhYV1iW2JkYmBjYmJdXFtaV1hqcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeXl5aWFVbXlxcYWFfXVtgYWJmYl5bU1xfYGNkZGZlZ2dmZmZgZmdoaGdkZGBbZWdeYWhoY2loZmNgYmBjYl9fX11dW1pbWVhYWFZaV1xbWlZWVUxYWFxnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaJh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ1dXV1dXV1dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl6e3t6ent6enp6enp6enp7e3t7enp6enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnV0dXV1dXR1dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXp6ent7enp6enp6enp6e3t6e3p6enp6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx4xdTS0tLS1JN7fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09PPxMXFxcXFx9LU1NTT09PEvr6+vr6+ytPS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXjV5+Tk5OTnmXt/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk5eDU1NTU1NTW4+Xl5eXk5dLLzM3Mzczb5uXl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dn5/f39/f4B5d3d3d3d3eHl6enp6enhvb29wcHBwcnJycnJycnd6eXl6enp+g4ODg4ODg4KCg4ODgoOEhISEhIODgoKCgoKCgoSEhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dHR0dHR3dXZ3ent4e3h3dnl8enp6eX15eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl6enp6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2enx5fX17fXt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fnt9fX1+fHh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3h5fX17fX58eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eHp6enx8fHx7fnt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3h6enl8eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHh5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veXl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fHx8fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qLi4eHh4SDgoGBgYGBgYGCgYKCgYGBgYGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhISCgYGBgYGBgYKBgoKBgYCAgYKBgYGCgYKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYKCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoGBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGBgYGBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fXx8fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioWGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjImGh4mMi4uKhoaDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioiJio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSk5CLioqLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoGCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYKDgYCCg4GChYWFhYaGh4aFhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKiIKCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKBg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJGPi4mHgoKCgoKCgYGBgYKCgoKBgYCBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgYOEhYSEhYWEg4OEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiImHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoGBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eIh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKEgoKDhIKDhIWFhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDg4OFg4GAg4KDhYWDg4OEg4SDg4SEhYSEhIKBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYF/gYGAgIKBgoKCgYGCgoGAgoKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGCgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeGhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOCgYKCg4ODhIKDg4OCgICAgoKCg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhYSCgoKDgoKEgoGChoWDhYODhISEhoWEhIWCf319fX6ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIaFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMioiFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgICAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIOEg4ODhIWDgoOEhYWGhYaGhYaHh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eFhYeFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4aGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4KEhISFhIOCgoODhIODgoOFhIWHh4WEgoB/f39/f4B/f3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHh4aGhYSDhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OChISEhIWEgYCBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYKCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4OCg4SJioeHhISFhIODhYOFhIODgoGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KEiIiHiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoKDhYmKiYeFh4WEhYWEg4WEg4KCgoKCg4F+fX5+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiEg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDg4SCgYKBgYGDg4ODhJGSkY6PjYuHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWGiIuKhoSGhIKGhoKAg4ODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4GEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhIWEh4iFg4GAgIF/fn2Cg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgIKBgoKCgYODgH+AgIGDgoCAgICBgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5/fnx8f4ODgoOCg4F9fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF+fX1/gIF/f35/gIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCBf3x9fX59fX6AgH59fn17fX6Cg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gIB/fn9+fn58fn9+f4B/fn9/gH+BgH9+fX5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36AfX1/gYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f39+f39/fn1+f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39+f36AgH9+gH9/fn5+f39+fn99fHx9hZKSjYyLioiJiISEhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgICAf36AgYSDgoGBg4SEg4SAgYCAgYCBgIGCgoOBgIF/gIKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+BgH+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf39/f4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDg4OCgoKBgoF+fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKChIOAgoOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f3+AgICAgICBgX9+fX5+f39/foOGh4eIgoWEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgoKCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf4B/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGh4eHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCDg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeIh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgIB/f359fn5/gX+AgoGFhYWGhoeHhoeHiIaHh4eGh4eHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHh4eFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICBgICAgH9/f3+AgICAgIGBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fHx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiYmJh4WGhYODgoGCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoOEg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gXp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjYuMjI6KiYmFhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGDg4KDgoKBgICAf4F+f35+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH58e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42OjYiHh4WFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICBgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3p6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX18fXx8fYB/gIB+gH5+gpSRi4yNjY+KhYaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgH+Af36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4d/fXx+gICBgH9/fn19fX1+e3t9f39/gH1/foCMkY2LjI2NjYeEhoaFhISEg4ODgoODg4OCgYGBgYGAgIGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+Cg4aGhX9/hYF+f4CAf4B+fn9+f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19fn9/fX6Afn5+hJKMi4uOjIuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgYGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAen19fH5/gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fIGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yKioyLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH99f399fn9/f36Af39/f39/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBf4CAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4WChJGOjIqJioeHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIGCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn59f358fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3p8eXt8e3t9e31+fn+AgIOHiYmJiomKiYWIkY2Lh4iGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4KAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH18fX19fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iKi4uKiYyQjYyIiIaFhIOCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5+f4B/gICAf35/foCBf3+Af4CBgIKEhIGAgIGBgIF/gIGCgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIeJioiJjY+MioiIhYSEg4GCgoKCg4KBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXh8en9ygX17e3x8fH5+fX2BgX+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58fn+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX19fn1+f319fXt8fX58fHt8fXp6eXl6eXt7fn6AgYOHhIiNjImJhoWEhIOCgoKCgoKCgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH+CgIGCgoCAgYCBgYCAgYKCgoKGhYSBgYGBgYOBf4CChIF/foGAfX6Bfn1+f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIOAiYyJioeFhYWEg4OCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGEgX5+gIB9foB+fX5+gIB/gX5/gH9/f4B/fX5/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyJiYeHhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHZ3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gIF/fH5+fX19e3x+fH18fHx7fHt8fomFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX1+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99gH99fX59fn59fnx7fHp8e3qAhYKDhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgYGCgYGDgH6AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIOBf3+AfoCBfoCBgIB/fn5+fn59f35+hYWAgYB/gIOBf36BgH9+gH6Af359e3p7enx7eoKDf4KCgoKDgoOCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoJ/foCBf359fn5+fn1+fX16e3yFhHt7c3l7fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX5/f3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOBf3+Af4F/gH98e3t6fHt8gYB/gX9/gYCCgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAf4CBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fn2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSBfnt7fHx8fX19fn16fn1+eX5/f3x8fH59foGAgYGBgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYODgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn9+fX2Af4CBgYF/fnx+f35+f4GCf4GBgoOHhYF/f35+gH+AgYCAgICCgoGAgH6Agn9+gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398foB/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fHt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4ODgoGCg4KBg4J/gYB/f35/gH19fX1/gICAf3+Af3yAf3+BgIGAgH98gH9+fn5/f31+foGBgoJ+f359fn5+fn9/gH99gIGAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36FfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3Zxd3lyeIWFhYWDhISCgoOCgYGCgYCDgYCAf35+fn6Afn1+fH6AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGBgX5/fn5+fX19f35/fnx+gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGBgICAfX5+f4B9fH59f4CBgH9/gYB8gH+Afn+BgH9/fYB/fn9/fn19fICAgICAfn9+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYOCgoOFhYKCfn58e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzcHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgH1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39+f318fn9/f399fX9/fn5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WHhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gX+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2EfnR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYGBgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f4CAf39/f4B/gICAgIB/gIGAgYGBgoGAgH9/f359f357gZKMenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2FhoODgoOCgIGAgoKBgIGBgYGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB/fn1+gH59gICAf39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+fnyBhol8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fX19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX+Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+BgIB/gIB/gIGBf4CAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYODg4OCgYGCg4B/goGFg4OEgYGDgIKDgYGAgICCg4KAgoKFg3+BgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgYB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKCgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl5fH18fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCgoSEgICCgYaChIOBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgYGDgYCAgICAgYKBhIB+gYOBf3+Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIODhISDg4SDg4GBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKChYSEg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foCAf4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnR9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4KDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9f31/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn91dn+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4F/goSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhISDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx8gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWBhYWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4KDgX+ChIODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYSAfX18fHx8f4F+fX5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WBgYSEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fXx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYuJhISDhIWFg4eGhoSEhISFhISEhIOEg4GCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgISDgH99fX59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWDioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2Cg3VzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfH9zgoN/g4N9gX19fn1+goOBfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ5eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9+fX6BgIF9gH59gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/foKDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeHiIaHhIaGi4qFhIaHh4WDhYWFhIKFhYWFhoaFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYWGhYeHhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dXBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoWEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhYaFhoSGhIOEhIaEhIGDg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWGhIV9d4WDhISCgoF9f357fHt+e3x8fX9+fXx+fYCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGhoiGhYiHiIWHhoaIhYWGh4WGhoWDgoWFhoWFg4WEhISFhIWFhIWFhIaHhoaFhIaHhoSEhIWDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59f399foB+foB/fX18gH1+fn5+fn98fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYSIhYaHhoeGiIaHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaEhoaFhoWEhoaFhIOEhIOFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGg4SEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGh4eJiIaGiIeIioiFh4iFh4eFh4aHhoeFiIiHh4WGhoeFhoaFgYSEhYaFhYSEhIOEhYWGhoaFhoSGhYaHhYWGhoWEgoSDgoSHg4SBgoSEg4GAgIB7e359fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGg4WGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYWEg4SEhYaGhoaGhoeFhYeFhoWGhYSChIODg4eBg4CCg4OCgoJ/gHt9fn17fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWDhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eGiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWGh4aGh4aGhIaFg4ODgoKDhoGDfoKCg4CDg39/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhISFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYOFhYaGhoaHhYeGh4aHh4WEhYWDgYOCgIOFgoN+gYGBf4OBf39+f35/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFh4aIhoWHhIaHiYaGiIeHh4aHiIaEhoaGh4aFh4OEhYSGhoaHhYWEg4WFh4WHhoeFhoaGhYaGhIOEhYGBgoGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaFhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWGhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaGhYaDg4OFgH+BgICEgIOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH5+fnx7e31+fXyHhoWGhoaFhYWEhYWEg4KBgIKBgICAg4F+fn6AeXp9gIODhIeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGhoWFhoKCg4R/foCAgIF/g4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8ent7e3x9fX18f359fHx9f358e4eFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeIh4WFiIaJh4WDhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYSFg4WFgYGDg39+f4B/f3+Df3yAfX1/gn2AgX5+gX59fX19f3t/fHt6eXp6eXp6fHl6ent7e316e3t7e31+fX2AfX18fH2Af318hoOGhoaGhoOEgoWChYGBgH9/gIB+f4CCfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIWHhYeFhYKDgoGDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCf319f35+gIN+e398fICBfYGAfX2DfH5+fX1+e357e3p5e3p5enp7eXp6ent7fHp7fHt7fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5+gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhYSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDg4SDg4B/gIF+fXx+fnx/g318fnx8gYB+gn99f4J8f359fXx8fHt7enp6enl7enp6enp6ent8eXt9e3x+f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIaEgoOFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhIWFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfn2AgX9+f318e3x9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc6PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ6Ozw4Ojw+Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo7ODk6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk3Ojk6Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1NXU1NTU1NTV1NTU1NTU09LT1NTU1NTU1NTU1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szMy8vLy8vLy8vLy8vLy8vKysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2tra2dnZ2dnZ2dra2tra2dna29vb29vb29rb3Nvb29vc29vb29vb29vb29vb2tPS09PT09PU1NTU1NTV1tXV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzM/Qz8/Pz8/Pz8/Pz8/P1t7d3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqJkpmYmJiYmJiYmJiYmJiXjIuKioqKioqKioqKiouGgYKBgYGBgYGBgYGBf4/T0tLS0tLS09PT0tPT0t3j4uLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzMzQ0tLS0tLS0tLS0tLS0d7s6+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTUWJsa2tra2tra2tra2traVVTU1NTU1NTU1NTU1NUS0NDRENDRENDRERDQz9d0tPS0tLS0tLS0tLS0tDg7Ovr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3Pj87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX18zM0dLS0tLS0tLS0tLS0tHd6unp6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1ZlcG9vb29vb29vb29vb21ZV1dXV1dXV1dXV1dXWFBHSEhISEhISEhISEhEYNHT0tLS0tLS0tLS0tLQ3+vq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNzdDS0tLS0tLS0tHR0dHQ3Ojn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJhb3h3d3d3d3d3d3d3d3d1Y2JiYmJiYmJiYmJiYmJcU1RUVFVVVVVVVVVVUWvS09LS0tLS0tLS0tLS0t7p6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3Ozs7Ozs7Ozs3Nzc3Nzc7Pz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs7Ozs/OzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy83Ozs7Ozs7Ozs7Ozs7OzczMzMzMzMzMzMzLy8vMzMvLy8vLy8zMy8vMzMvN1NTU1dXV1dXV1tXW1tbY2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Mz9PS0s7Nz9LOzs7Ozs7O0dTU08/O0dLOz9LU1dTQz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tfX19fX19bX19fX19bX19fX19fX19bW1tbW1tbX19fX19fX19fX19jY19bW1tbW19fX19fX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7O0bCDhJPO07iez9GcgoSKxs/Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8mbu7idr7eXmbm6lbi5r6HSzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9HDoo+Aicmdo6iy0ZJ9fq+x0s7Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv56Kp9DTwoaatdXTzZ6exNDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P0bqkrJye0dajmLTU08CgoNDQ0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz9HAoJ6TpbfYopm11NWwoqnV0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU6OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0qavrpum2aKZtdTVpKG51NHR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHJ18SYoNmimrbUzp6fydLR0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzs8OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXFjZ6gnajao5q118OfodLR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HJwaGtoaC/2KKbtNmypKbW0tLS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09WrjY+p1dayhMbWuYO/1dLS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oz05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MG91dLS0cTV0dHC09LS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQD43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHU1dLS0tPV09PT1dLS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk5NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg2NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODc4NDs/PD89OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg8OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTY2Njc4ODo9Ozw+Ojw6Oj09OTw8PTw9PTw7PURIRENBPDw8PD4+QDs4PDgxNTpBRkVXrrW1tba3uLi5uLi4uLi3uLm6uri4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODg5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg1NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU5NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU1ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTc4Nzk3Ozo6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlqKmmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTo+NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFCPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDs7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNAREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9CQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6Ozs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ozk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD4/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5AQD1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo8PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8Ojc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3Ojo7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ubm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuOj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDY8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVj4uUk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODUzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMj4+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFTE9JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEFCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouHiIWEiIiJhICCf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo8Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU3QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIx/h42Mi4uHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI1NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpKOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTUhRSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxkY1tdWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGdiYlpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJfaF9jU1FZVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbX15aXFZcaGRvY25paGJeUFBAPzs6ODk4PDs2MjQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2rpamkpaqnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYl5ycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWtuYV9kYFBPQUA7Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk7Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3ODo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyak5aUlJiTkJqdmIqLh4CAfIJ4YV5ZVGFoYGZzb3NpdGNpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bm1bYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw7PkJERT4+PUBDQ0NERDs6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tbPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqTkZmXnqGVmJqSmJSVkZSamJOPk52WkouRfnp8f3Rra25kb2xocXhveWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJCQD1AQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQy8bGwMXHy8jUy8rIxr+7u77EvsXIxsbDxMO4tMC3tL3BwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4uLu2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmbmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3hmZl1kW1JYSUY/Ozc4ODc2MTY5NzU0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw6PTs7Pj5EQUFDQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQiouMjpKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/JzsnBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvbi+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWpoXWpvbXh3YmJgYF1YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNTs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYWd1Z2lodG14bF1kW1VfWUxIRDY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw/PT9CP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLysjGzMnNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZHRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLFx8jG0snBw8O/v77Ey8jKy8i8u8jHyc3Iw8jJycXFw8LBwsfHycrHzMjHyM3Gy8/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr7CwMDBwsvDxszLxcjRwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZiWllZXFhRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs7Ojo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7q9wLm9urq0v7i1t7Ovu7y3wLe+wr/Bu7/AvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCnoaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVVVU1lPU0tFOD82Ozo3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6PD1APz5APT0/Qj48QEFDQ0E/Qz06NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wMC3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGhoqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWRmb2lla2dYWE5LS0pSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88OTc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+2vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8try8wMS5t7e3trq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8u7q0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYmxfW1RIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz89PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9v7vEt7a4trfAv8S8wsXFx8fKycbPwsG4rra1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrq/wb+9tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2dhW2JQS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw7Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC5r7K8vLC3u7a7vKuro7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxLW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmFhTUhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPEFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+ts720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcvGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+QkVJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PUA+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6trnEuLW8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdWl5cWVFFRENNSUFEPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCOz8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBw8O7ubO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypqKlqqyvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x2bHV6cG1oXF9fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcmJqYmJWZnZmdn5udm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6c3Z2d21wYF5lXVtUSjw+P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3srKytLK3vrqztbK8ury2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXR3dHZxbF5iYFtdTkhBPz1IQ0ZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWTmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq2tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xcm6vb62saeknqGpsa61ubaysau0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/d298b3VybWNcZlhcXVJOTUE+SkJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY2OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKx77AuLm2srS2s7SvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLKus6mmqaquqaKal5eRnJqYo56ioq+npKymqZqanpqhp6emp6mvtrKrtLavqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXJ2c210aWtdW2pUXVxPTUhERkxBRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDw8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vbWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u7+/ubO0s7GxrrC5uba8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIP0hRRE1DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODs9Pjs8PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aipJ6gn6egqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28uMDBvry8vLmura+ysrq6t7e1tby0r7Srtrq4wMTBu7W8vbiyrbOwr6yut7aytLWvqqSem5ycnqion6CoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWjm6OclZCMj4+Qk5CWlZaYn56empmml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh4g3x2f3lid2xuXFBoVFBOR09MTENPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Oj07OTs9Ozw8PT48QD0/PDg7QEBBPz8/OTQ5PDdBQ0JEPUBDjqqko6Khop2rpaaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLm1p6Wsqqi1srGwrq+yp6avo6+utcG6tbeyt7aytKuytK6qq6+wsrSupZ6SmJSPmaCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsKOlp56gnJWTkI+RkJiQlpWYl5+Ym5mbo5mXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fIB1dX1ta3tkaFVRY01JSEdOUk1KTUc7REA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaOkrqWsrLS8t6yysa+xrbWvr7O1qqetrKOcmZSOkZaXmZmdoKOim52lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrKrpaqqoJqYmJiVk5aak5WVmZWal5eYoJ6cnJeboZuemqOnpZ+hoqKjnJuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh6YGJSVV9ISUlLU1RJUlBMOT5BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6jqK6trKurr6qvqZ+XnqWenqWmpKCin6agoq6rrK21sramr7Srqaq0sbCwuK2noZyempSYm5qRjpGWkYyPjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruqimq6erq6msrKegoKOxrbGxtKmxr6KZnJ2eoZmbm5qYmZuUlZqWmJykoaCao6GanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVcU1pZTVFKTk9UTFJMQTc+QjY4PDc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlZmSkpyYoZ2qoqegnqehpJ+ckpyim5+ho56doJ+joKKvrqyvsay2p62xraamsK6trLCnoJ+ioJeRlJyhnJmYkpOfnaGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9t76wrLGuramqtLGwp6uosrW3s7essbSjoJ2loKyhoaKgn5qYlpWfm5uYpKGgnqOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1tWlJgSFFVSEZVVkpCTUc9Skg4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pjc1OD09P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjpOemaidrp6nnpyhnZ6ampKYnpyioqCgnaKfn56fqaunrKmqtKurraulpaqoq6yqpZ+emZKSlJiZlpaWjIiLj5WdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe9s7O1oauiqaiyqaqop6eamZ6Zqaagmaegn5+nqKWknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84NTg8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKagnp2dl5mWmZ6bnKSfn52knZqdnKSipKOiqq+sp6mjoKGsr66qq6egnp+io56fnpudnJSUlZWenpiUhp2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK6nsa2xwra4wsbAyMrAyr+wubm9ucK9uLO7xcO8wru3s6myraqztK+zrqmuo52rp7axrKKvpaCjr7GtsKSkr6OhoJqhpqGkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppmboqSen5ubm5yHhoF7dHJra3VycGhXXFFFVEhESVBIPkVBNEVIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56gopyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpZ2Vm5ufmp6dn6Wmp52goKyxr6ekpKOhn6aspp+XnJSRmZ2ZlYyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczLzNLHvr/Awr3HxsK3w8nIwsDFvbmzubq0u7ewtbKqurGuu7a+urqqt6yqqri6tLuurbijpaKep6Wio6mmmZufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR+enJrZGlveGplWltGSkxERFNMREJENzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlZqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkp+fkJafmZKalp2bmaOhr7OpoZudnZ+fmpeYmJONj5aXk46NkIyCg4J3c3FucI+mra60ucW7zcfLv8LMzs3MyMnRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXS08zTz9PTzMrCxcbGysfOv8jQy8bFxsTAu8LAvr6+tb2zrb6/wsPGxMbDrb64sri8w8HBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURCQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE7Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6yen66mpbGqxcbMzs2/sMKppaitraqhnaOfnJ2aqZOZoZCOoJONlJKXmaSxsaukoJ2gnJmXlZOUl5GQj4yHhIOIh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXX0tfNxsfJzMPFys/K09fR19LV1dPTyMzHzc3J0szN083Ex8nJwMXLx8jIxb7Cs7PHxMvKys7Fyb+9v7zBxsTMzMjJv8O/ra+yqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/e3J1dmdiaHdpZFZXUURNRkBJUUI9Qjw6MjNAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOjk+ODo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmflKOYlp+enaSvm6Cwq6isscnN1NfPxrvHrK20uKyuo5+ko5+gpKyblqmWjZeNjI2XprCupZ2enaGlop6blpWWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTSz9HD0NPW19XW0svJztDLxs3SytLV1tnV19PW2M7Syc7RzM7Qy9LPv8fGycLLy8vOz8XGx7a/yr/SzMvPxcnHv8PCyM7Mz9DOzMrHzbi3u6ifpqunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU6NzY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopuppqKmrJqksLGpqLXQ1Nfa0sfGy7S2wsaytqmipaahoqu1p5qxoZaVjJCmrauclZmhnZuhop+dnpuWinhpZGFfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTPz9XU1NHRzNHO09fW09XQz9LT0cnT0cjQ2NfY0dfS19nV1szOz8nM0cvO0L/FwcbFzszQ0NHIy8zAysvF087LzsfDycbGyMvK1NPQ1M/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NDQ6PTUyNzU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7OTw3NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr66rqqudpq64qKu32NTV2dnRztDAvMzJt8Cvp6upo6SxtrOjtqqfnaGqqaGYlpiam52hnpqdnpR+cmZjY19fYWBfYWBfYGBfYGZtcHBua29ydnebzMDS1dPY2NbZ0dLS18/TzsvTzdXU0crPzNPW0tHWzdDV1dHG0dTK0dTV1s7S0NjY2NfLyM7DyM7Lysy/yb/HyM3Nz8rQzc7Lzs/Hys/Qys7KwcjGyczKy9HSzNPR0c/Pyr3HubCtu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bva2JlbnBhV1xaSUZGRExXRTtAPDMzPD04Njg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw9PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snnri2tbWtpa2uvrWxwNnT19rc1s/Ny8PT0MLCsqutrqyms7K5q7O3qaOfnJaUl5yen5+elZaYlYpsX19eYWRiYGBhYWBgYV5fX15dYm1yb29zdHV2eaS+y9XR1tTT2NbOztPLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHUy8zP0dPKzdHV0tXVysDJwcXMwsjJwszCxcfKys7KzMzQzdPLxcfPzMfHysTGwMXJy83P0MbPzs3NzM/Fx8C3ub3Cw73DubKzvrC7w8S2qpiloZmWkZWVkouUjZqRlJSPj5SCiYV4cHJrbWhgYHFoWFhoVk1HTElQUEI7RD47Njc6ODk6NTY9PUE8Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ozs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfDucvV1tna29jMzc/J1tbFxLiytqqkrq25ubGywKGXjo2YlpCUkpGWl5aRjH1mYmNiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycTJycbGv8PFzs7HxcfNytHIy87NxtHSz87M1MrHys3Ox8bP0svQz8W6xL7GybzCxsjOxMLHwMbNx8PLycvPx8PDz8jGwcbHw7/Ax8vLy87CysvIx8zQxMXHusfDyMjCz8C9vL+wwcrHur2qsbKnpZ2inJiQm5CkmZeZkZWYiY+Cd250ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU8PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTs+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJuls7Gsyc3KyMS+vbrNzcbQ1dXZ2tvY0MrQ0NLUysW6vr6wqberv7q5s6WSjo6WkIaDhISCfoWFgHRgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6v8O7u7q5vsjGwsPAw8fKycjKx8HFy8bIy83JxMHJycHBy9DEy8i/ucG6xce9v8XOysO/w7rJx8i6x8bEysC9wcvGxcO9xby8v8PEy8TEu7/JwsXH0sXByL7KycbHxtDDw8bDr8TLx8TKt7+8urSprKWlmJ+YrKOhpZqjoJuUe3ZydGZpWmFubVpbWFFETEZCR0RMQ0ZSPzU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvQ0czHwsPHzc/OzdXQ1tnY2dDM1M7P0MvEuMbBtrW8scC2uqyRjJOXh3uAhYaAdnh1c3FfWltdYGFiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbBsLa6srK0srHBvLu7ubjAwcHFvr25vb+5xMrFxsK9xsC3u8TJv8LJu7e6usXCvrzBzcLGvr21wL3DurzGu8K5s7zFw8LCtr+2tb6/usvCvLW6yLq/vcvDwcXCxcjFyMXQxsLMx7LGycPOzcHFwr+9srews6eoqLmxpa2wq62slHl2d2plaGBob2NWXllKRUpGSEtBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk7PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc3P0snRxtbV1tjPzNDIzcjKxb3KwbK1ure7tq+RjYqMhXmAhoaAfoR8dHVkXFxdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rAuK2wsKeqraynuLS2tLOys7q1vbG3sLSusrvCvMHEvL+6tbK6vsC4x7izu7XAwry3vcbAw7u1rrK2ur6zxLe6tau4vL3AvbC6tq+2urLFvLauu7+0trTFvL7Cxb/DxMXHy8XAxsa7x8vAz8nHw8bBw7fDvr62ub7Gv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkNBREU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6ars7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDNzsnLyczKy8bRz9PRz8fKxsrFxMC8z72zub25uLebjoeJint5foeGd3iBfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBtaGZqbm5yfKTHv7m4tbCrrKeeoqqnnquss62pq6mzrbawsqiupqyyvLq2w7m6ubCrtbm7tMK5r7+wvby7tbvHucK2raqosLHAtbi8r7CnsbO0u7yrrbWlrrauurGwqrmvrbutu7i7v7+9ucK/xsLFwLzGwcjLuMXHxb/Hw8O6xMbCu8XJzMuzucK8urKIcnZ2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOzk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojk7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs/SzMTGwsXQyM/DxMfBxsbFxczDyszDxMHHwLq8u8q3tLu9tbWrkYmQkHx5foqGenuEgXhuXl1dXV1fYF9fZGNiY2NiYF9eW1taWl1aWlpaXWRtb2hnZ2lrbnKBrbmwta6mpaenmqCkoJqcpauto6eiq6msqrCjpp+qrbW2sb25r7evqK64tLS7t7O8rre5tLG7wbHBrqWooquxsrOnvKqrqKusrbS0pqiuoaSvqbKlp6iupai3rLCyt7m6u7G8vb6+xL+1wcHHyLe/wMW3xMLAu7/Ew77EyMzKv77DwMCphnJzcmppXWFvZFdWWFBIWlJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7rEsLawm5mVnJiqqbCxs7W9r8bR0M3EyLu7zMPMwL3KucDFwLzMusPHxbq9xL66t73FuLa4u66xlYOJjYF7foB/eHR/fHN3Zl9dXVxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSeo5uXkaGjqqOin6Wlp6Wtn52bpKWrsq+2t6ewrKeqtKu0ubC2tKy2uLGvurmxt6Sfo5+msaerp7mqpKanqKeyraCnpp6apKasnp+npJ+gsa2trLGzsrOwtby2u8HBsrq+w8GxubnCs8C9v7W4u72+vMLGxMLDvr/DoIN3cGthZV9rb2BVWV9ITmhPVEdFSkY8PUA9Ojs7ODI1NTM2OTo4Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzc4NjY2Ozo6Ozk7Ozw4NTk8Oj4+QDuNyLW2vbi6wbu+taCelJ2hprq2q7Ozu7PF0MnMw8e5uMnCzsG6y7m9yLu2x7u3xMazvsW8t7C5v7uws7avooSHh4J9eXZ0cG1rampxaV9gXVxcXV9gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXV5kY2JlZ2dnam1viJ2poJeVmqGWm6KYlY2eoaKmm5+fo6Whp56aopufqrCssbWiqaqpq6yktbitt6+ssrSus7WusaqfnZ6jorKkpam4raGmpp+orKuZn6CemZ2fpZqZo5ybna+pq6eqq6ytsLK4rri5u7C2u7u6q7OyubK9tLaxsbW0v7W9v73Cwbq6vZeDenJrX2VeZGRYVFheSVddS1BHSUpGQTw/P0A7PzwwNDUzNTo7OTo4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xtDJycHHvLzFxdDBvMq7u8G7tcW4tcHBs8LEvK2qtbm3p7GyqYuGiIB5c25wbmtjXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWltZWFhXV1dYWFhbXmJkZGVmZmhpa3KNqJ2UlJSbl5uhlpaQnKGhqJ2bnKWmoaSbn6CamK2tra+yoKWiraunobWwsbGsp66yp7mzprahop6ao6GtoqGptaqio6adpaajlpiel5ibnZ+Zl52cnJusoaumoqOlrauys6q0sLKqsrm0r6mvsrKyt7OtqayusbewurW5vb62s7GUhHl1ZV5lXltZVlNaVUxcUUxKRUhLSUI9P0FBQEA6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vb+znaWjmKWxwrW2va21uMPNycjBxrjCwcjQusPGwLa8vbbDura/wbW7v7uqprG6saexr5p9hYWAeXBxdHFoZWRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hYVldhZGVjZGVkZGhqdqKclJSPlZeXn5eZlJifnqGclqGhqKOfnaicm5qqpq6wq5ujo7eqoJ+uqLappqassKO3sKO2oKKbmJirpqGbrLivoqGknKGfoJOVoZSWlpuYl5aXnJSfqZ2po6Gco6qqsK2otKuqpq2ysKWqrrKxr7Cur6anp7KusbSvu7O5t62jlIF5dWReYVZZV1NSVEtNXkxQTEdITEtFPEA+PEI8Ozc2NTM0OTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy0ucKxvri8rp2np6Oqu8C9wLmutLjCzcjHxMW+x7rKzbXExcSxv7+5wMG6wMC5ur23qKixu6aooaSJgX54cmpscnRwaWhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWltcWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5KUk5uYnJaWm6Ccn5Wgn6alpKWmnpyfpJ+qr6afoqO2qKChoqizoaWnpK+lsKyrtJ6gnZWUqaGhlKyxsJ6io52emJuTi6GUkZOXmJKXl5iWnaabpqGimaSkpKujpbCnpaOrq62lqK6urquoqamzpaarr7Sxrru1sK+un5J5dnJlYVxaXVhOTFFHUmFNVlBPSk1PRUJEPzk9Njk6NzY0NTk5Ozk4ODc8ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuyt6yepKatt7u8wcW6sbm2xcrLwcTHx8m4yMa1xcLIrrq8wrzCwMG9vLe6tqansrWeooqYh4B3b2RiZ2loZmhqZ2ptYF1cW1paWVpcXVxbXF5fXFpZW1lZWVtXVVhXVFRXVVNUUlVgYF9gYV9gYWNkaYGUk4mRjpOSk5yUlZajmaCWnKCloa2lo6Oio6GbqqqlmZ6lsamgoJ2kqp2noZ2srKmora2ioaKUl6KanI+rqbCbn6KfnpeYk4qeko2SkpWPmJiTm6GinKSgoZWgoaOkmqOrpaKkqqOrrqWtsammpaamtaapqK2ztbS5uq+prJ6LcnBvYFtXVlVRRlFPSFpcT1JKVEtTTEVHSUM4Ozs9PDg2NjY6OTs6Ojc2OTc3Ojs6PTw9Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njk4Njk4OTg6OzlAOXu1tK20u7KwrLKtnaenr7m5s7/IurbAr8bJzrzCy83Jt8vAtMDHzLC2vce7wcfDvb+3urWkqq+unZmHjoN8dWlqam1oamxua2ttZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5fX19fYmRtjo+EkYaPkY6Zk5SSnJqinJugp6iqp6qlqKSimKSupJSZpa+pn5uYmqCerpmbqbKfpKafo6SglJOblpWRqamtmpygoaCalJCMmY6LkIySjJaUkJ2hoKKcm6KVm6CioJehqKOiqKugq6+krbeloqOirK2pqKuvs7iyvbWzq6+Yg3JyaFtZWVNVUkVZTFFcWU1UTlBMUVJJTklCPD8/QT89NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDEtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqKevrZupqKy3tqy7yru2v6zMx8a5ws/QybXGvrq+xsy1sb3EvMLFw73Bs7mvpaqvq56XhoF3eG9uaW5ubnFnZ2lnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOUFFZWlpaXVxcXl9gZH6NgYt/i5CKko2XkZaZoqCbn6qppq2qpq+ip5mfrKCUlaSop52Xj46Zna6Wl6apmJ6ck6WhnpGQkpKSlaeqpJmZmp2dlo6Mi5SGiI2DkIqRlJCgnaCjl5WflZqgoZ2Sm6Wlp6iooLGwprG8pp+jrLSrraewtLC5tb+xrbGrkHxwcmJWVFVOUklHVlFSUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo6ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqWisKudqqepsrCktsa0ubqzy8a6vMPL0cyzubq+wMXHtrS3vLK6u8S+wrGzrbCusKycoohraG1vcm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CJmImUk5iamJ2om5+qpKSqnKeZoKWbko+eopqXloSDkZqjj5OinJWVloeimpqTi46Kj5mjp5yVlZebkJKHlI6MgYuNgJCKkZKRoJmfoZWTmJiUoaSYjJmkpqimoaC0sqeyt6Ccoresqq2ksrKmtby1q6uxo4h4cm1dTlBRTE9DTk5OUExGTk5LSk5OUUhNSkFHS0hIQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSspLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSno6mloKmlpLOqorLDtbWys8fHuLvEys3Hta+8v7i8xLOzrrairLXEuruvqqy0r6+gl6h9XmBnc3F2cWpuaWZoaGpfWFlYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWWFhZWFtdYW9zdnCEiIKHgJGDjoqUkJOdoI6am6Kgo5iklqGblYyHmJqMc42CfYyWloWQmZCTjY56mY+cjIKJf4mYn6KekJOYloSOgpN+fnSJjnqQhpKQkJyamZmQlY+djaKijYmaoKGko5uitK+sr6yfmKW5pqWwobGunLC7qqmvqpmBdnJiVkxRT1BNQ1NOTFFNQ1BQSEhNU01ISkpESkxFSko8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ3ODk6OjY1Ojg3QTd3t6KjtKilpaijpqWmpaazp6W0wbiwtLDKxrm6ws/Hv7WvvcOvsceyraeslaOtv7ixsKCorayqlpWicldWYGhnaWhpbmNqaGdiXFhYWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFFNTUpITlNTU1RVVVdZW11pbHJsf4V8dE5Yco+Cl4aNnJeKk5Cel5yVlJaUjpaIf5OJXztXb3uKk4l/i5GMj4WGcoqEloF5gnqFk52Ug5WOkI+Chn2SeHFvhY1+iYCQjY+XmZiTio+InIeel4aHlp6aoaCXp6+oramonpattKKmrZmsq5ins6GpraOSfHFtX1pOU1FWTERUSlBNTUZPT0pFTFFNS09KSU1PRklIPTc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODU0Nzc5PDo3OTs4NkE5eLegoq2hpqapoKeop6KpsKintMK5sbWwycO5tL/PwLqxsbjEq67JrqeinYWaorqtp6iWpqWjoJePlmlQTlJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STUtIRkhOUVFNUFJUVlhaYG1vaXqCdFBCQH+VkZF9iZSMhIqNmoyWlYqSiIaVhXiIf2BKUW54ipGEfISMiYR+f25+f5R3dXZ4hI2ZcFGNiIqGe354lHZnd4WIfoqIlYqNkJGWi4OJh5SEmouBhJKblp6clKSjp6mlo56bsauhpKSRpqqWoamcoqaoh3NrZV1bSFFRU01JVU1TSUxMUElHRkpOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj03Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXa2nKKmnZ+hrqGnqKWmp6+sqra8tri2s8K8t6i7ybm3qaq3uK22wKqim5KCj5myn6KajaCWmJSRi4xlTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+GgXuFjJKAkZmLj3uGj391f3hzbnVwdI2NgXl9iaqEeXpodnuOcHJteICKjJJ4eoB7gHZycpJ4Z3WEhISEepWJiIqMioB/g4qMf5ODeoCPmJSblZGfnaien5+doKmln52Yjaikk6CflZ6epH9xZmBcXEpWT1FHS1hST0pNTVNKSkpMUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLy8yMDAvLSsoKCkuMTI2MjE5ODc5ODc3NTo8PDd2rpijoZicnrOpr6mlrKuwsaq9tLK8uLa7tbOguLuzq52fraustbOlnpaRmIaUpJadjIOXiY+JhoaDZkpJSklHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhZWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gHZ4f4mPfISYkoFyh498dntva36tfHOQin97hpKAfX90ZnZ8hWxvaHN8iYyHgGx5cX1wbXWPcmhxgH2OcEOKhIKDhH93d3qKhH2LenR+jpKPmIqSmpujl5mdmp2eop2WjYulm4+dl46WmI51bWtlYVlXWFRRSlNWVE9QT1FXS05LT09KUU9JT09LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn56WoKawrK6rp6mwr7GsvLisu765tK6pm7GorZyQl56nrKekm52Th5Z9jpWSlYB8inqFgH9/gWVKR0hGQkBDRElMTE1RUlBRU1VUVFVWV1dXWFhZWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3dvfHmIj3l8i4VvbYyReHN4amp/gnKWkYuBfZZ/SZKYbmh3foJsaWNseYWQkoZrc2x8bnJ7hWltcH5zjYiDhXp9fnp2b3R0hYF5gXdwfI6MipODlpeYmpCTlpeZl56XjIOJn5KKko2GkJZ9bGhtbm1XVVdUUlFZT1NVVVRZVk1OSE5LTk5LQ0lOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojs5Pzg2ODcyNzU3NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6kra+iraqota+urLS/q7zCv6ajmpWlmJ+OhYyWoqSbm5SWj3aRfYSLkI98eH50fXh1d3xmT0VHREA8Pj5BRkdHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpyQZlvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5vbX96i4h1gYiGdGyZkXRzfGprnY5MeYSSiYSOZzF2hnNsfn2DdGZldH6EhIWAZmlsdWtwf3tncHB7bpKNjntzfX1xcG51bYJ+d3l0anmJgoiJg5aTkpCLjZGUlY+XjoB5iJeIhomGf5CHdWlpbmdjV1FZV1hZXE5QVldaWU9JSUVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKiwsKyspKCsnKSwsMjI2LSs1Nzc1NDc4aU84OzVukoiZkZqWpKitnrKeprquq7KwwrK7w8ebl4+UmYuOhnqFkZqWj5KOkopziYR3i4+Mf3Z3dXh2b3hzaVVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bHGDgYWBeYOGhnlyoJR0eIBzdZSHNXGdqJ2OoaGEooR2cIZ7hntzjK2NiIBoZmJpbXFtb4J1aW9YdW+OmpF2bH97fG1ybnB/enN1bWJ2hH+GgIWQkYqLipKLkYyLj4N2eYuPgH6DgH2OeHBubmpeWltdW1lYYWBTT1xbWVhMSEpGSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW0qK2wrsGzusHGl5CMlJCBiX1ugpGTioSLiZCId4SFbpiKjH95e3txe3R8a29eSlBHPkA3NDU4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8+koOprl9HTE1OUEw3Q01SU0RKhnaAfHx2fmx3h4d8fYWCf4x+dqKZeX6GgISZhZucYYaqn52LgpCNenaIfomHjnOKl4+De1xkcXR6e3eKbWdpYXlvhY+Cem6Bd3OEenFzeXdrbmldd4d9h3yIh4+Ai5OXg42GjYd9cYWAhHx1d3t8h3RtcXJkZV5aWl1TW2deWFFWWV1XR0tLRUxHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQwMDQ2NDU2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMd4l/lIyRnZ2fppGgqp+wqa/AsbvFupaPkZSIeoZ2a4CMkoN+i4WQjXmEgnSihY1/f4OBc4OBfWx5bFNYTEFFMzExMjY3Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxyfI+LenyIhn6Xh3ahmYiHj5KUpY2sqUiGra+vioCAk4qBi4GEkaiHgJiYipxzbHyBhod9jmhnZ3h+bYWGgYVxhIVHa4B4cXl2aG1rX3d9g4h/iIWMepWenIqLiZKAe3WLdnx4bW93fn1xcXBqWlxbWmNjV2dmXFZQUVhaUURMTEdPSURGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFh5GPlpiSl6CdrKCnua+zvbSXjZKLmIt9dHF/ipN/fo2DlJV9h3+GpYeJgIOIhnmJioB1hXlfY1ZMQzYwLi8yMzEzMzY2ODo9Pz9CRUdISkxOUVRUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2WcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiZGAmpaCoKGYlZuapa2Tmbuxp7vIxKeKjKGkjpOJgJB7coOen5GcfnaFhYuPh5BpaG+DgHSMhoSLcYaCdoeAe3aFfW52dWeBlI+GiYmIiYiiq6OWiY+YgHuCint6b2dreH13fHFpY1xZWVxpXWFnYFpPTE5YU1JJUUtETkdDS0RDQUREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnZwZ3iDe4CMgIGRj4uamqScoaymq6+wl5KRhKGUhHh3gI2UfX+ShpOWf4uBkpuOhIGCjIyCio6FgIqAbXBqXkNBNC0tLy8vLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVBISktMS05WYGN/Z2dtdZ2bj5qTk4uOj5qIk4+di6ChkqOppaOsk6i2oqfBwq7Ir3i6lJp8jKGemYSShIKPoZ6TmZKEioWPmJCWbHB1iYuBlYyNj3aPhHFshYGKl5KDhYhyiaGXh5OKj5CXpbapm42WooOHk4V+gGtqa31+fX9xX1tiXllmalxsbF9YS0hPU1FOTkxGSVFERE5GQkNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuaFlwg3B1h3F2kYZ+l5aalJ+fm6egqpaTmJ5oZqSafYWTknqBkomSkn2LhZmSkYOAgYuOiYaSiISJhXh4f2hOUj4vLy4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFRU1FOUElFRT47PDpDRj8+PDc1Mjw/UjVISEhMTE1OUl5vinxzgX2gnZunpqKZoZeilZyfqJ6pq5+orKmqtZervqu2yMm3yNHPvpugcGmqqJ+Ek5GFnKCampmnkZGIlaGZmnd6fpSYkaGSlpeBlJ57dpWSq7OJjZegfZWenI6Tlpqko6e2sJ6RmqiIl5COgolsc3N7fHluZl5bX19hZ2NgZ2ddUkVLS1FPSkpNRkZNQ0hNRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTQ2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYzQUBpYl9QcXVgbn1hd459fJSOjoqfkpeelZyqmJ6qQkR9h4mImI15go2Ljo18ioaQkY+Cg4GJjIqFk4WChomBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSVFVTTlNMRUVAPD49RkhAQUA4NjYyPDk7RkhHSUpOT1FZbYaQd5WLo6eqtb24pa6srKiptayxt7Kyrbuxs76cs8Osu8nLuMO/t6WjsLKsrKqjipaYhaWmoKKYgqaZjaKqp6SHhZOjoKCqoaSpjpywi5Wkp7i7nKGjsJOjnaOekaSirLCts7ajlaariZqKk4uVent+g3tlXmZaY2BdYmNeZmdgW09ESUhUT0ZITEZLR0ZHSEFLRkNGRkE7ODc9PDg4Ojk3NDY1ODw1NDw3Njo1NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoKThYiCnIOSkYyS2sidlnNWl4iPiJyPfIaMj4uKe4mDh5GPg4WBjIaFiJKGgoSJhoeHh3FuYUBFNjQ8My8xMTAtLCstMS8tND9EQU5WUVJTVVVXVU1cUUdHRDw+PkZIQ0RBODs8NUM7PUZLSUdIUk9QV4GToISuo7OqssHHxKuzxbattMCzuL62v7XBtru7pLjGqbbJx7a+ubSoo7StsLCbmZKan4mnr6qklXefpJehq7GzmJapraiutbuyuqyvtaKxrLK1vLi1rrWgp6ijqJupsK6zuri5qJy4qo2lj5KUoIZ6gYByV19iVWRgYGFfX2ZgXFVKREVMVlJJSktFSkhFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjQ5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxcWlFjZFd6dXGBlH2EhpN2hn6AjXu/u6O8grSUk46bj4SIj5OKiXqHgYyTjYiFgo6AgYmPhn+GiIWKh5F6eW9dV0BFTjw2OjQ2QUI3NjQvLzdDSENRXE9RVVhVXFdPX1VJS0pBQD5HS0ZGRDs+QDdENz9CSkpFR1dUUF6PpK2ksrTDtrjBzMq3vMS9s7TBt7jCtb+wuHSxtKa6xaSwxrmxs7K0qKS2tqqwoKKWm6KSpbGtpa2sp6SYoKyzuqKpsrm1u77Mv8XFvb2zwri6uL+4u7i6ra2xprGqrr6xvbzDw62Zu6mVro+YmauJfoB5aFVhYFdpY2llVltkWldVSkdHTFJIRElLQUlEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTc6OjY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVZad2pwf4+EgY6Eb3tyeIhiuaGao4mVlJaTlJSOkJeSh4d8h4GOloqBhIGKenyLiIZ8ioKBi4SVfXh6dWZQXGRHRUw6UWRgW15TRj87SFBFW2NRUVlZWmdaU2BhTVNPRUE/SUpIRUZBQEM8RDZCP0hHS01UWlRelK+4tbu5ycC7vcrNvL3BvLi2vLu3vrW6ssZhdbKlsZqeq76qpairqqSis7Wgq6eelZaemJ+upaenpZ6jlKKnsLOnsrK8tsG908nJ08bCxczCysPBvr6/vLy4tbC5t7fDusa+xMmxnrqroqyPpqm3ioB8b11eXlxVYF1oZlNZYldTV0lFRk9LQD5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUFBRUlFKQTkvLCwsKisoKCwtKy9QPiguNDiAfTwyS4hxOT5DS0VASk1QUkxRXWhtbHGQjYaQc2xycnOI1cC2mqCNlZmZkY6XkpaWjoaIfYeDjZaKf4OAgnl7i4SHe4t5gYqCl390fXpsZnB2WV1cUGVlYmBlZF1bWFhcTmRtVVJtbl9vX1hnZVVZVEpEQktLSEZISEhIQkk5REBIS1RUVl1aW5O5wLm+uMbBu7nKy7u2ura4ubS4tbWut7eZZHWpnq1wXqKtnJihopuknqullJ+fkJSOlpiYqJ6mn5+amYOjnaykqrCst7C8uNTQztbPyczSzM/OysfAwMLKvcG9wcHFxMbKwMnPtKS8sbWwnKy5vZp9d2lbXVlXW19YYWJRXGFUUkxDQkZIRjxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LiYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RHS09EUlxaaWBwl5ORlG5sb3R1h7OsoaGfi5mcmY2NlZGbkoWKin+Jh4yQjIl8gYNze4qDhXuKdIGKh5V/dHt5bG11fGlzZWlsaGZqaWhgZmlpbVpudJetpL2Ih2dbb2hdWllUSEtPUEpLUExTUUhMQUpGS1BfX2JnamKYuMewurS7vraxxce2sLmxsbuts7KorLitjbaonpynmk6anoyPoJaRp5illYqTk4iRiZCRkp2boZiblZaHnpmmmqyvqK+ns7PU1NTW0cvP09TO08/MxcLK0L/KycvJ0sjNzsPQ0riwxL3Euqa3u8WifmxhWlpbVl5WWWRaUF1YT1JDQkhGREo7QUQ+Qkg/QEI4O0Q+QEk9NTY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CRmYJocnB5eYOhqp6ml4ybm5iLjpWRmo59iYuGjouLi5CIfIWCcH+HgoZ7h3KDkoyPfnF5dWxxeH9ye254c2xpgHBtY2lucHlpeH1+y7/D36duY3huZFthYEtQUlVOWV5QXV1NUU5UUVVUXG5ud4Nyl664rLWosLarrb3Bsqu1pqW5p6yvoqy0pI+xrpuYmIyRlJGEj5uBjaeSnImDi4SKiYSLhJSVl5eUm5CcmJmZnp2rrKSnoqysztLV0c3L0tPT0NTRzsjD1NHIztLT09bN0tHF0tbGwc/IyMOpv7jQnHZrYlpfW1VeUVxaUFBVUU9JPkFHQkNGPUFCP0ZFPkA/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bHdwfX6AoJ6eoYyNmZOUi4yTj5aFeYWQkY+MioiRh3+De3J+gIKHeoV2hZORiYBvd3Nsc318d3xzgnhxa4Bycmlwcnp5cnu+y5t/jbKEdnKFd2lhaV1EWlpbV2ZkWGVrVFhdXWFjXmN4e3+MgpmqpKSioKGppqqxuaumtKOirqKkrqOnsqCJppuVk5GKko+IgpSJa5WjjZmEgYZ+kYODlJeti5WOlZqOhZKQnZenr6GgoKWkqMjNz8fCy9HT0dTSztPNxtbTzdTY1tbY1dfVytXazcrY1tHLrcTDzIdva2BdXFZSV1JbUEpISkpLQDs6O0VCRD1DRD5IQz9DQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lxgHZ+aXN5coKKgJ2VnpSFi5aJj4qJjoiPgHiElJmLjYmIi4l/hHlze32Dh3eAe4eRl4GEb3hxbnZ/dnh9dIZ8eWyHdnVufXaEdXl8nraNPEGLxqV+jX1qZVdJQ2VjZmNoamRveVtfZmhsbmlugYOJkoyen6CekZeZoKOkprKkpbKgoqWfoqmio7Kch5+SkpORi4+Lh4SPhH6cnIyNgoSFepR/gqqWo4ySi5iTi32XipqRqrOYmpynnKa9w8W4tsXN0dDS0MvSy8nUztHV2tfX2NTZ2M3Y287J2trS1r/MzbR0c2thWldQU1BYVUVHS0pGRj46NzpAQkM6R0VARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc1NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MiooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qj48OVFFQ0pUbG5vcGJxcXSGjX2XkZ6Lf4eSg4mGhYqCiH14hZeXiY+Dh4aHe4V5cXt7hIZ2e4aOjp56jXB9cHB6gHJ7gXKEh4Bujnp1d319g3WAfYeJsHRZqsK3jZKBcG5jPV5ocnFxcG53d4JmaW9ydnlyeouHj5SSm5agloiMk5yfm5+roKGsnKKamqCmn6CsmoyajZGTjoV9iIeDhYuOoJmUiIOHfmyZeoSZh4iTjI6VjIZ7m4iTj66rk5WXn5imrrW8qK29x8vIycvLz8nE0srU19jX2NfU29fT2tvW0Nra0tbJ1cyTdXdmZVhXTlFSXEdDRklJP0I+PTg6PkA8Pkk9QEJBQUVBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2BWPiw0TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEE8OjlEPkNHUmtfbWRiZmx2gIhxkZCbgHmAjn6DgYKFf4R8fYSYjoeMf4aHgXeDeW97e4eCdHqSno6hdpB2g3R1gX50gIRvgZCCb5KFdX2ChXp3h3yJuMalw8q4gpacj3hwZk5lY4J6gneFoZGLeXl3e4SAfIR2bZSWlZaQmJGDiY+XmpeXpp2YoJefk5OYo56brJaRkYuNk4OMhYmJgYaPkZ6cmoiFjIGGl3uIiZ+Xj4mOi4uCfKCIkIq8oJiTl5qcqKalrZ6ntb+/v7jHyc3Oxc3J0dXV1NnV19vU19na29fb2tnYztvGg3Z2ZGZhXVJVVVRNS0RORDs9PT05Ojw/OT5BNz4/QD0/Pj05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs5OzdJUFxaUlVYSzlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVxpdHp5bImNknd2eop8foB/gH6Ge36CkYqFhnqFiHx2fnVufX2HfnR/kp6RoIOSfIZ+eI9+eYuKb4ObgXSZh36CioV8fpF7kKmPkMOgvYybpJx+ioV9iXOMi4BzppqcmJSFe4+RiYRpR3ChpJ6MjJGShYiLkZOVj52bk5SRl42Mlp+dlKGVk46OkYx+kI+Oi4SJkpaZn5+IjJSRnZGDjH+mmYiFjoOGhICkhYqLt5edkZSWoaagnZ2do662ubSrwMbK0MjHzM/T0tLY0tXXwNfY2dvY2trZ2dfbt3V1dGdmYlRdWVJPTkhETEM+PT85OTs6Ojo8PjZBPj89PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw6RFdOPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlZYZm1tbWmBjopxc3iKe3uAfH98iHt9fIuHgn51g4Z6c3p0bYF+hH53hZuhm56Uk4CMiH+Yh4Cckm6IqYV7oYx9kY6DiYWdf5uRio2jop+RpK+gi5GLhYuBk4ZXcq2Ln6uckIOZnJCQjluCopGCjZ+TlYyHiIySkoyUlZWQjI+KiJacnY+Wl5KMk5SGgIyJko6Kip2XmKOjhpOdlaCLiomOnJCDiY+Ag4eFpISLkLKYnJKUl6GgnpmSm52nsrispb3Cx83Ixs/Lz8zO18/R1K7W1dja2Nra19bZ2p1seXFjY1paVVFVV0NASUQ/Pz86NDk6Ozc6PDs0PDw/PT43Ozo6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs4ODs8QDtCUUtLU1lQVGNieW1ifpGDb254i3l6f3uBfYd8fHeGhYBzcIWCe3V3dnSFgoR9f5Kmop+mopeKnZCUl4uKqJdyirONhKiShJmUhZqNo5agmJOJm56ik6mwn5GVkY6OiJaMb423hJrEyLKdoqadnJiWkbKQZKTNx5WOhoeJkJKNjZOVioWKioaWmpyPkZWTh5WYhICQjJmIjpCrl5eko4iZnpWaiY+HmJeKhY+NgX+Hj6SIjZOompeTlpihmJ+Zk5yborK0paO9wb7HxsXIyMnCytPMzdSo0tHW1tbY2tTT2s5/b3tkYFtbW0xIVFpCQkhEPEI+ODM3PDw6OT42NDo6PDo3Mj86OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFNXU1JCY4JHdoGOfXxtfoh5e357goKDf3d3gIN8bW6Lf3t9eHh8hYeKfoqis6ejqrOil6egpaSWla6ig5G4lZKzmo2ioYylnLCjpJ2ZkaeWqJmsr6SYlZaVkIuYmpehwI6jybirnKOmrpiSm52ynYWGqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIyUk4eUmIaEkpCcdZGZspaXpaGHnJmSj4uRipebiYuXjoZ+jJieiZCQm5qak5iXn5SgnZSem6CxrqKkuL60xcfEvcPDwMbNysnTps7N1NLQ1tjT0Ni6b3ZyWV5TXVVOR0lORUFDRTU/Ozc3Oj88PDc9NDM2Njk3NzQ+NTs1PEw8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg0Njc9OkpGREdOWlxZSmZgO0mEi3p6boWGen2EeIGGgX5weH1+fW9zjXp+gnx5houJhoSSprusqLG9r6Wts7OppKKwrIqatZ2juaaVraWWqq24p6SjoJqpmKqkrrCqmpmclJaRl6CYmru7rsqhare4q7CVmZ6jrJOXvqNeqrKDioqNlIeRfI6OfYOGjpCUlYiIk5aMkJWNi42XmJOdmbSXlaudipyUkY6RkoyZm4uTnpCLipafoYyUjZeZnZKbmJ6UoaCUnJ2lrqihpLS4q8LIxLW6vbzFx8fC0aHGys3NxdfW0cvUn213ZVlXUVxQTkVDPz1DQkI4QDg4NT9HPTw2PDM1MzQ1NDU0QjQ5OkJNOkI7QUhDOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRIYmBicElAi4p+gXOGh32CiHWDioJ/bn18fX9wd4d3joKHfI2PjIaMmanBwK+9xruztMC9ta2rs7aLqLKurr6rm7ulqK25uaunpqKipKOqr7Kxqp6cpJmbmJifo6alkqS6r6nAvK2usrmlpKh+iIecrb2wgouMi5CDjoORj3qBiJCNjZyJiI+XjYyVl5SRmpedqJuxmpGsnI6aj5KOlJCQlpePkaCRiZWbo6yUlo+UnJ2SoJ2bmJ+hlJqepqWkoqOwsqbBxsOvsLq3xcTDv82mx8THxL3W0c3FyoVwb15ZV1xZTEpCS0FGSD9BQEM7OjU+QT49NT03PjMzMzI0MUExN0BCTj5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OjVCPjc5VktEV09GOD00S0BDPjRFS0hOPkJBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVONzlHRD9DRlxlRmBpZ1pdXZOMjIl7h4yHg4x1h5GKgW9+e4J/cX6BepV6kpSUmJCTlqezxsm/wczCw7nHvbuvq7q7mLO3urLArqXApKuwu72qrqujo56nq661sKqcoKucoZyWn7C1p4yju7u2wbysqZ2zpaSolIWOqsTDpIKLj4eIhIaVlI16g42Rj5GhjIyUko6Jl5+Yk5mVl6agr5yMq5yNlo+RkZWVjpGVko+glIeXn6GznpSZk5+gl6Semp+boJSYnqWjpqakr62lwMTDrqi3tsnDvrbPssS/xLyz0crIwrRxdWlZVVlnUUxIQ01LTEpBQj5ERTw1QUU8OzM9OEIzMzIyNjNBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWk1lXGVUYmqZjZaKjIiTkIaJeYeUkIFygHuNf3iHgoKQeY2hlqiZmpm6vcfIycHSycrCzb3Cs628vqi6wL27xLeswamss7y/qrCqpKWkrK6zrba1oaCwn6WimaO0vaqcqb3CpLa3r6yUsqysrJeHmqqmpZGCjJOlloqBdYqSeYWOkpCeoJOPk4uPjZSjmZeclZSjnqqekaWajI+Pj5WWiHyPlZOSo5qVoKKctaWQnpako6GlnZ2lmJ2Vl5uko6mnorKsqLvAw6+ls7fMwLmvxLO7vsK5rcLDwsCXaXZeVVRZWEpKTElGRERJRENCREw6NERJOjs0PThGLjEyMjQyQjI2U0hPPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+aUhfWGFaY2NWno+djpeOnpKJin+KoJOEeIV/lX9/kIiKkYCWoZmup6SYwr3Hw8fF087Ozcu8wriwury0vcu7w8K2t7yts7+5va6vqKCpqLauramyt5ufraKnoZ6rt7iqpa+/xbK9urOoq7a0rq6XlqWsp5+RjZKyxaeWjnySlXyHkpmPqpmYk5OPkpWTpZ2TnZmToaOinJifmIuMj46diFqQl5eSl6SZZZiin7KllaGVqqupppqeppeYlpiUoKOopZ62q6m5u8O0pbS2y8C4qrarsru4rqi4ur23f2hrV1RSU01FSlJNSz9CSEVFSUhHOTZGTTs+Nz5BSy4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M+NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs+QEJGQnBFaklSZWFMRqWUnJeil6mWjJGDiKaTiIKHgpyEg5WQkJSPmqKer76voca8xMTGxs7OztLKv7u2sru7u77PtcS+ubm3s7G1s7izq6ecq6y5qqinr7CYpK+kp6SltcCxrKy0v8O6wLq0qLq2ubSvlqWtr66ki5OUoY10wpp9l5qEjpeZjLGVm5qVkpKZmaWjlaCalpqpnZugoJmKjY+VnGBKlpyalJqlllSWr5+vnJ6jlK6tqqSZoKWTk5iYjZufp6KZtKiqs7u7u6qwssjAuaasq62ysqOhsrK0pG1rY1lXTU9KRE9QUFI7SEtJSEpDRD46S1U/QTo9RU0wNzU0NDpCNDRNV087SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzVFQTpBPz5IQDUqQjUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4uolo6Ik4Wgh4Sdl4+doJqjpLXJtanFucLEyMrJyMzNx7+7s665ucHBzLXIusK5tbqwr6+ztaajm6q0taqppq2smqWupaSorLq/qKy2uL/CwL65s7PFsrm+raSvtay5poibl6abdr+fhJmejpOamoyul6Gcm5eUmp+hqZ6on5maqpqhp56YkI2RnYNudpKimpWdop2RrrKjq5SnqZeqrKOinqSnkpGZnIeUnKKdlrGmqau5tr2ysq6+ubego6eopaacm62pqYtfYl5dT0pLRkdNSlZNPU5GT0tNQkREPFFWPUFBQkRPMTg9NzY/Qjc1VVhPP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH5lXkhFq5Wbop+7r5mUoIyTq5uRkpOJq42GoZ6Mo6yUo6S2xr60wLnCwsfJxcLNyMK+ubKvurXBwsq1xrLCvLW6qqitrbCio5iqtLumqaarqp2pr6ejqqu9u6itvbW4vse8t7a5wrK/wbWqtresvqWPo5iSoqC9n4maoZmXn56Pt5+pnKaim5yhmqiks6CbnaacqKqemJWQlJuLlomMpKGUnaKdoLSvpaWSr6qZqqmcnKKiqJCUlJ+Cj56em5WppKGhs7S6tK2otrKznp2jpZuXlJiqoZ51XFpdXEhHRUZMUElORUdIQ1NMSkJFR0FXU0NIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlEQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8nOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5ZlxGQ0OdcGJHRaeXpJ+ew62cl6WYmqqclpqaj6qWlaemla2smaKrtsTDvL62wcLAx8S/zMW7vbmysLmzv8LHtb+wvLe5tqakq6utoKGZqqrEoqSpq6aerK+roqmpvrenrb+yubfHtrW5ucCzwMO4trO0sL2jl6OXlJyUrqCQoqOlo6OgkL2lqZ2pq5ycoZulnr2imaOfoqmsoZ2Xjpaek56Hj4SNk5+koJ61rKaclbCmma6lnJmonJ+MmJSeg46gmZuSpaSamKuxtbGqpaqurJuYoKCSjpCVqJ6UZV9XX1tNSEdJTkxIRkRJQT5RSUE8R0lJXFJPSz1JT1U1QkY5PkhHNUNhW0tCTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTU/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW1RRjxLeGVhVkuimqOcnsWsoZ+sn56uoJKjn5akoKaprJi2saOqs7bFxL2/tcDCu8jCvsnHtri1tLGztLfBxba+sbi1ubSfpqyqrJ2enqWkwaWfqa2gpKmtr6KmqLy1prG9ube2xLK0uLvAtMXCubmvs7W1o52llZKUoa6gmaKeqaiso5rCrKmerK6bm56ZpqC9oZ2kmKurrKahmo2an5KeiY5Xf5afpaGguKqmk5i0op6wn52ZrpWdjZiTnIGOn5eVjaGjlpClrbGrqaKipaWVlZ2Yi46RkqSeiF5hWGJfS0dKSk5GRUFHSz89SkI5OUpLTl1RUUk9TFdcOUZJPURNSThIYlxMQ0xQU1lZVldPWl5JQT1XUUpMP0g/NUhMWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNba1dxR0U2PXVlXEtNnp6hmZ/EqKahtKKds6iTq6Wgo5+sqaydu7CorLaxx8XBwrLDw73Gw7zEybyvsLatsLWvvsS0ubKwurSsmaixqaqanaWhp8Gtm6yxm6qjrrCppKi8tqe3u76wt8Sts7PDwLTItLy4rLS2raqippaVlaSsop+gm6ersK+vu7GmoKmompmYk6KjuKCho5KwsKylpp+Top6Vno+QjZWem6Kep7SnpoyXspuirZmcmqyPnZOVkpl/kaCVjo2foJSLpauvpaainKCekZKak4WKkY2bnX5fZFlmZElITElTQUNASUg7O0Y/OTlPTlZeUlNKP1BeXT1IUEJMTEk5TmNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwyNS0vNEAxKydWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF1lcEA4O0iWd2VBNJ6jn5ygw6mkqrOipLWqlrOsp6GksqyuqbuyrbG1tMbAxMK0wMS+ycS1v8fBtKu1qLC5rL/Ds7ivrba5pZiqsqurmJ+ml627tJuosJqsoK20sqerubKourS5s7nAqreyxL62x6jAr663tamnrKGYl5KmpaKimJmlr7iusrW2oJ+ppJqUlpSkoLeipaWWsLKyp6umop+ampuVl6ifoJihnq+yoqaNlq2YpKqWl52ij5qMkpaYhZWek4uQm52TiqioqqKmoZielYuOmY+BhZSIk553YWdbamlMT01OVD1DQU5DOjpJPzc3Uk9dXlJWUUFXYFxCSlNIVktIOlVkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDEtLy48Ni0jQnFnc2syMy8xW2JaMzM4MDZwW2JIMDRJb2dVQ1dGjHlmQzujo52hpr+nqK+xoqq1q566sayjq7S2sbC5t7C3uLjFvcPHvb3EwsbAuMDFwLmptqSsu63Awbe3qq2yuqKUrbGtspakp5GquaqfprCcq6CvtLOrqbW2rbyttLO5t6y4scO7wMCnxKuxt6+pq6unnpiZq6GioZGYobGvs6ywuZqbqZ+al5OYp6C3qaajorGxtKyzqK2gnKCgm56lnKKXnaOzr5ufkJOkmZ+nmZOhnZOXiJOWkpWWnJKIkJqYlI6oqKafopyXm5KFjpmLfYuVhI2ZaGZrYGxtV1BRW1VBQkVUQDs7SUE3OlhQZF5QV1dFWV9eTk1STl5LSj5ZY15OSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERUJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEtLS4sMT0qJys9XHA9PjEuMGRaZEAxNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M9p5+doqq9oqqwrKSyuaqmtrWsoa21va+zuLu6vre3wMK/ycS5xMPAv7fDvMC2rrWnq7exu72+tKmusbaelquup66XpqiOp7ufpKyznquisbCzrKm1tLW9rrGytaywtLPBu8a3rL2wsbisraqjsqaepaqgpJeQmp+zqrOrq7Oanaecm5aOoaaltK6ooa2urrGotK2yqqScn6iknpWimZuotamXmZGRnZmdn52PqpyVl4SUloqdmJuTio2WlpqWpqWjoJ2WlZeTf4+UhXuNkoKLlGRqcWZvcV5GWWdWRENNV0RaOUhCNj5dUWhcTlpdR1teXk9OUlhkSkpCXGJfUExNT1hXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7R0RGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfX2BVMTUwPWBWXjgqQzNZVVxnSzaMemZMQKSaoaWtt6Wsqqavrreqr7a8qKext8a3sba9wcO1tbrEvszGucPAub65w7fAuLK0rKm6trq5vrSprbC1l5inrKmsm6urjqu+nautsaOroLGts66ttbK4uKqur7Gota+1u7zKs6q3trG0r66mobSgm6mtoKaWlpuasqOuoaavl6GkmpqTjqOmqLOqoqezrau2pa+xta+jmZ2sp5qXn5uZq7eil5OQjpicoZeWk6qdmpJ/kZeMnZuYlpCKlJKemaSioqCYlpKTlXqLj4V7jIqCipFqbXdsdHthRmFrWUlHWlo9e0pGRDZBYlRpW01cYktcXVtSU1JiYExLRV9gYFFMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYoKDkuJDpLNS4iVV9UXy81KENfUVwuKkEvSkdQW0czY1lVS0SZl6GyqbKqrKakr662qri2uqWstLfKu7S7ur+/tbO3w8DMyLzDvLW9v7+3vryxvK2nurm3tcK2qq2wt5SWp66rqaOwqZSvuqSssbOnqKOytLGysLSxt7Opr6yyp7evt7TExreptressa2pp6O2oKCosqGllZyalbKeqJygqo6po56blpimpqW4qKOytayosqiusbWrpJmgq6ibnJ6clKm4nJSOjoqXm6KXj5ekn5uUgpCVj5ybl5aViJaPl5qnnKSgkZaRkJV2hI+He4SBg4uKbG92dHt+XExmbVxLTmNcPmJ7R0k4R2dXZlxMXmNNWVlXVVhUaV1PT0hgXV9QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOR2UyNydHYkxWJS1BLj1FTFE8M3JrSUNDkZmlr6Wtr6uopbGztKu4srihrLW5ybmtwbvCuLOxtcLCzsW/wb2zvL++ur68ssOoqbmwtbW/vK6rsrGboKexraamr6WdsrWtqrGxrKmotbuttLK0rbOtqqyorKm4rbKwyMG5pbqxqa2tpaiusaalpK+kqZyenZuwmqOjo6ORrZ+koKCiq6anuqWstramq6yprbC1rqOeo6iqm6Cbm5Kjs5mPiY2GkKGflIyUm56RkYONkpKcmpeVlIeXkpWZp5ygnoyTkY6Qd32OhXx7fIWIiHBycX18fFxTZG9eTlhmXEZElltHO05tWGJcTWBiTlZXVldUWGddUVJMY1lbVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvKzEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISis6Rz4zQkhTLD6QaztHSI+cqqyiqrGkqaW0tbK1trKyoqyuvcy6rcC6x7G0rbTBw9HFxr7Asr7Awru+t7vEp6y2rLK3vMCvq7Gsn6OnramppbCjqrKqsKuvrrCuq7O8p7awsqmyqaulpaOtuq2qssO6tq27qamorKmnsaWqpaOvqqiin5yjrZWlnpiemaydoqepoq2mpK6suLOyoqqjoKuvsKydn6anqZmkmZmPn6aYh4SOiYudoI6KjJWajY2EhY+Un5yUl5WGlpSTl6ScnZyLkpGOiX5+h4V8dn6Fg4RycXCHdGxfWmFuYlFycFxLPIV8Rj9YdVhhWk5kXE5WVlVXUVxhXlNPTmdYVlZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE7XEowLkpnREY4PEIvNEVLWDJAlVk9TEWWmK2poquznKqqsbetubevrKarq73JvLC9tsKvsayzw8POz8O+v7PAwcO5v7PHw6uvt62yuL++saytq6SnqrCoqKmxpbSuqrGurbGxtKy0vKS3s6ysrqiroKOesLerqq26t6W3tqSqp6yrqq2hqaensrKkp6ahoayXqqGVm6CmnqWiqqSto6CnsbiurqSmo5uqrK2pnKGko6SYoJuWj5eck4KDj4iFm6CLio6Ll42OiYKLl6ObkJCbjJOSkZOjmpuaio+Li3yGgYGDenN/gn98cnWLpId4a19gbWVXZIZjTj9nk0xFYnlXYllSZVVOVlVWVE9cXWFVS05oVlVWSUpISU9CR0lTUVlvQU5YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlZaLjBKZ0FBPDxCKzpKT140RIc9R0ZEl5OwpqOrsZirqq62rLezrKasqqm8wMC3uLK8taaysMPJy9G/wLq4v77BucG5wMSssbSxs7rAvrKwrqyrq6i2qqeur6q5sKiysa6yrbequLimtLarrKSpqp2knrOzqaiktLSgt66gqqiqqKunoKusqbq2qquqqqKqoK2bkqqhnaCloqajqp+dqLWvqaaro6SZpainqZuio6OfmZmgkI2PmI1+h4yHg52dhoOJiY2MjouChZWimo2NmpCSkY+Tn5eZloyLg391h4F/gHh0gn54dn2Ah52Pb3FnZm93XGByh2pPXplWSG55VWVXUWNQTVZUVVBPWFpiVUhPaVRWU0dPWFVJPklIT1FQeExOVz08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzFQYjAyP2Y9Tlg+Qyw+TFRfMEppNU9EPJePsaKmrK+arKatsLS1sKymsKqpur67wLCtua6htrDJx8jRwL68urvBvbrCv76/rbGxsbW8u8GxsbOqs6mktKmmrrOzubGjrriysLO7rLuwqa22rKqeqqufo6C2rqmhn7CzoraqnqinqqOqoaKtrai9r6yuraKoqKCsmZCwoZiioaeon6ibmquxqqOgrqKhlKKko6eYmqilmJeYno+Kh5SIfY2GhISjloSBgYqFjouQg4OTn5aIkZyQk5CNkZyUl4+KhoZ4dIJ/fHV4eX95cnJ4Zn+GpHZpX2RpgHRmiIt8UlhwX0p4c1NkVFFfTU1TWmZOTFZZZFhHUmhSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwS2c6NDhfPWFkP0YxQ1BbWypITDlVQDSSkLOhpaetpKekrae1s7KrpbGnqri+wLuvp7mqpq+xycfI0cO8v764vb68yLrAt6+vs7G5u7jAs7K6rLisorSnqK2zt7qzqKi+tq+3vrC/p62stautnKmvo6ClrayonJ6rs6W0qJqqp6mjqJ2jqaipvqu0sK6dqqShr5ybs6OWpJylpqClm5uqrKagnKuinJOcoqadmJeoqZKYmpSQioKPhX6Pg4CInY+Ffn2Lh5CNj4N/k5qThZOhjJSRi5GbkpWHiX+Acnt6fnxpeHx5c25ve2aEd4WKZGFnX3KEemxmeF1eVD9Xe2xUYVBRWUxMTnJ1XUhaW2dZRVVlT0M+Sk5EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdqSTE0WD1mYkFKN0dTYFUqPTlDVj0qkJWymqChqqaloquluLO0pqqxpqy4wb21r6K5raiosMLKyczBtr3AtLe/usi0wrSysbSxvLi5vbWtuLW+rKGzp6ussba4tayfv72qs8K0vaGvsrWqrJ+tsKOcpqmqpJ6bpbGnsKCfq6mnoamcpamhrbyorrGuoaujpK+fn62mmJ+boaSdoJ2bpKujm5ulpZaXlaCjl5uWpayMnpGRkYuCioCAjoF7mZSMiHt+i4aPjYuJhJKYkIaUo4mTkoeRmpGTgIl9eWx+dnl4Y3x6cG5vcXZnf3JqhGdlZ11sc41sYGhwYG89W3hsVV1OUFJLSk1UWldNXF5sV0RXX09eT0hNREY7N0hFS088cmhLSzlBRTs7PT47Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+KR00OSYnLjM0LjArLzQmLDokNDFBaFkxNFM9ZV9ETDZLVmRPKjsxTlc9I5SarZqgmKikpKCopLiwr6SvsKmruMG5sq2fua+rqLS6yMvIvrbCvq+0vbfEtsKxrbixs8C0u723qLm3vaqjtKipq7KvurGrnL2+prDBtreirra1p6ansLOgnqWmqKKlmZ+tqKqeoKqupqCmmKSpoLG5n6Oxr6Gsoa2lnKenqZqam5+llp2dm5+rp5edoaqTmpSZn5SZlqGpkZqJjpCGfId+go19fKCMjYh4gouEiYuLhYeTmo6JlZ6IkZWCi5eOkX2FfHNwfnJ0dGB6eGhtb29taH1xY3ttaWVhXGSEfl5Zc2pySUh+aVhZTVBMS0hQUlFJT1xfblNEWFpSZ05HS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1CKiw0O05OQDs3My0uKy03Kio8JTUzPGZkMjRNP2VdRk89UVpnSCo9L1dUNSiXn6eanZeuoaGhpaG3q7KmtLSqqLnEtLKtoLetrq2wtcbIwLa+wbmwtLy3vru9r6q9sLS/sL3Duam7urenp7WpqKyyrbSxqJy/uKauvbizn7G3sKmlp6+xm6GkoaWloJebr6ahnqOor6GfoZOlpaO3sKGmsaufrKOvmJyqpamfl5qeppSbnZueqKyanZ+ml5eYlp6Ok5eiqKKQiYuPhnqEfoSLeo+XiY2GeIGHg4eLjYWNk5iNj5aZio+XfoaXjY95gXpwcndwcHRfeXdkamtqZ2eCbGVyamtkZ1dhcn9eWWt1aVhFfV5bWE9PS0hIUlVHMjleXm1QRFdVWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0SEJmW0hUQ1RdaEUuOjFdUSwyl6SjmJadq56moaOhuKqwobu4pay9xLKvrqK1sKytr7XExL2zvrq3sLO5uLq4uq6tv7O0uK+/wbirvbq0paKzq6mrtK2us6SexLenqri3rJ+yu6qnpaivq5mjp5ykppSYobKlmZ6kqamcoZ+UpqCkuaikp62mnqWhqJOgqaGhoZmbnqGTnJ2XoaOsnJybo5aTlpacjpSTo6ekkImKjoZ5hHyFhn2djYmKhniAg4eIiJGFlJOSjJGVlI2OlHuDl5CLd398bXVzbW10Ynl0aGZpZmNthGZnaGRmZ2hdZGJpZVplemJgUHJUW1tSS0pISU9TQCAqaV5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTz8uKy03LTExOTUsJi41LTgwNTc2YHRCM0NEaFtLV0dVYGhCMzc3YEwnMp+kpZOPpqecn56epLatqKq6t6esw8C2r6yita6nr6+3wcC9scG3sa6ytrW5uLWsqryzr7KxvcC3rry8sKWftqymp7Wqq6+hocWsqqiyta2stLmdqKqrsaWYnaqfp6WSmaWtopidpKqhm6GcmKGep7emr6qtoaGenaKVoaafoqCZnJqdlJuelaafrqOZmJ+WlY+VmYyPmJqnoJCHioqIeIV3goKCnYeKgoh7f4WIhoWQhJaVj4+QkZCRjZJ7g5WPhXN/fmd5cGxrbGd1c2phZmNhc39hZGVmZGhoYWVuWV1YXGxjYU1nV1pgVklISUtNUlg+OWBsaUhCVVNcWklHRkVBLjw/OUE4OVJHQDc6QjAzNz03NjkzOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssL0EqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGFFJTWdpaGSja6hmpmgl6W0sqOyvrehscW7ubCxo7erq66pub69u63Asq6vrravs7myp6u5sK+utLa7tq+5vq2mnrWroKGypquwoKbFobOmsLKxt620nayvrK6imZ2oq6aflZunpqCZpaOpnZqfm5Wdna2xprqorqKhmpuemZ+kmqWdl5+Ym5aaoZSql62pnJWenZSNlZqOlZSYp6eNjIqJjnuBdIKCi5iFhnyIiISFioyIk4WUnJOSkJCRl4+Qf4GNjoNvgn9neW5pbGpncXJrWmhjYXF/YGRnam5rZWllY2xcbGx1cWJTYmljZVpJR0xNT1lRUFVhZYFUQFZSWlVGR0ZFQC88PTc/NjxGTmE4Oj8yNDlAMzc4Mjg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOkxqW01bS1hkY0BBMUdgQSc0lKOcj4+xnZyVoZups7CfuMC2oLTBu725saa2sKmupbi6uLitu7Ctq6u3qrW5raSztbGvqbG2trGztrunqaC2qp6fq6Oqrp2sxJmvprCxt7asq56wra+qopudpK2pm5Wdp6SdmqqjpZaaoJySnKOsq6m7nqakoJeamp6hj2ujlpmdcYOYnaWAdpKsqZ+Wl6KSipiZgJeKn454hZKNgmxpfneEcWyGioZ9hIuGb11kYWeEmIZsi5CUknV5i4R/g5B/ZoiBaHZqZlhcaXRuTU9pYmVwg2ZdZGZua2hdW1yJkISIaE9LRDhGVGdeSkhRUFVWS0hSYXB0ZUZbUVVQRkdGQz4xOz02PTY8NGZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjg2WIFsMTVPa1xOW0tbZmI+RzFOXzsrLo+km4iWsZudlKGcqq6so73Fr6m3wri+vK2nt7Gmq6S4tLO0sLmuqaestKaxtaKnuLa1qKettrOutK60oqqftKueo6adp6mcsL+VqKewtbmtraOorKurpaGfnKGoqJuYoqamnJynqJ2Tnp+ZkJ+oq6S1sKOio5yWmJmYo4ihj5Kah6GIlZ+igKWAqK2flJSelImEcniNjoOIoHWHjGmWiGZ+c3igb4eHhH6MfH+hoKCZgHyHn3SIjnabimuHgoNuaWVke21yYlSGbWRtaZhxWGlvbYZXXWhaa2paiHBreXKHaIeEWV5GTj5GXk1GUlZWUVBSV1RnXk1aTFJSUEVGRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk6LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbT1tMW2dfPUsxVF03LyiOp5iEnqydmpqdn6uqqKq+w6+yuby3wb+qpLexqqymtLWur7O3q6mlsq2ltrObrLW2taWmqbOxrbKor56qobKpoKWlnKKlnrG4laanp7e9pqymqamsp6Whn5mhqKSamaejpJicpaqXlKKclJOkpqeht6Wjn6OYlZSYlJ2IrpCYlYqqjJmknYaxgaWun5WboZd6gtSogIeUwJvGeHexpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Jsl7GrsXlpbFixrm9maryTvG5neW1xj9h+UmtitrJ9fnCVdZqhqpBWTldhT1ZOR1ZcWFBQU4tcV1tQQVxEUE5DRkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkFFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV1nXD5MMVlaNDEhj6eUgaiqn5idnqWtsqqwwr2ytcC1t7/Cq6a0rq2pqLC1qrC2tKiopramqLmunLKytqqlpKeyr66xp6uep6WypaKioJicoqGyr5afpKG1uqOpqKCsraSinZqao6mgmJupoJ+XnqiokZ2nm5SeoqejobCjnp+jlpeTmJKZha9raoyOqn9ohZaHrWZxn56Vm6mXca6hpH93unxroI92sV9qtFulgGWckGBmgXpmf2l4a6plvnNnpox2sWp8sXh1kpRjbW2nblyEoEVpZ4iWRXWcX31me6Ongllfi6tofIx3e2qoOEqvW1hUbGNaS09ZYFxWVjtOiFBXVjBJU1NKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy8uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TjVdVzMxG5KjloOtp6afo6WrsrittL2+sLfFsri6w6epsKywqaqxr6Sxu7Glpa+zo6q5qZ2ysrCjpKCqrbCsr6eooKOjsZyknpmXmZ6fsKmYnKKgtbOhqpuhra2fnZqXoaOpnZmepaCcmaGnpJCdopqXoaCsn6amoJqfoZaVkZeRm4a1m7V5h6matpl4iLSbt3+Ul5isl39rgaZ7gYWGkZSSd6tnarFbrHuOh5R0iXCOhoF/iJGXeIODi5eMg6CPhbB2d59ya2ttfItPpVhIZGSZfmNopl94cXRSkoZdUKluY3B6hYBhnS9Tom5bVGtnYExLXWRYXFpCPrB3V1hBI01pRUJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7RSwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0o5YFQ1MByXoJWJtKanoa2pqLOsqru3wrC8w625tsKrra2vr6ivs6qisLyroqi2raOstaSlsrOoo6KdqKuzqbCopp+goLCXoJuXlpebobGlnJukqLavoaiOqaeqm52WmKCmqZufnaSgnKCjpaOWm56Ymp6jq5ymmpyaoqCXk5GUk52E1ZOZuXGxwn/Gh33WlJy7fZyXqJKPnY2ke42GoYClgnmreY+dVq97iX6farlauXeHhH2mg5R8mXupeY6dkHuxbY6EdZC8hm+VUK+nxYpRoHpjYKphc3KGa5aHXlK1tMiFfol8Y6Q0Q511XVBqaGRQQFhnWWRhSkhNakpaU09ZZlpDRD9FPzA8PDU5PDc0PDw4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuMDA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdIOmFQNzIlnKOTmbKoqaWzqqW1qKS8uMGwusCyt7S9tLaosrGksrSnoK+2qZupu66jsbKhsrSxoaSenqiqsam0qaadnp+smJmZmJiXmaSun5yXqK2xqaOejquip5WdmJuhp6GYoqKjoZuioqicnqCelZmbp6Gcp5Wbmp+hmJCSlZCdiLJuaLVyrIhwj6dytHZ0tnucmqaOkJ2No36PnqN9sHWCkNLSdVyufIV/pG6bqqZrh4V9rX2YmZB7sXOTnY95s2WWdIWeb59mlFLJi1rCXJ95Yl+tX3ZzhWGWiF1Zyp1vv35yTUu1U1XGZFVRamNlWEFPa19saVBVRkg5PVdSW1dYSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxBTlRfZVA1Rz1hTTYyLqOekaawraWpu62mtaWntru8s7u/uLi1vLy0prW1o7Oyo6CssKWYqLuupbKxnLS4qqClnaGqpbKorKqlmp2bqZ+Wlpqak5Wlq6KYk6arsaahlZKsn6WSlKGcpaeglZump6Kbo6CumqCenZCWm6OfnaaUnZWZo56VmZaSm4WsfHiod6OPi4eqcK2MhaiEmpuji5Obi6J+kZeHroR/gbNccrJTr32CgqN+cdd9d4V+j56HmZp3r4aKkZyId7RhmmWbgoKVbJJbsFdLmnWYeWZgrV52doZnl4hqXa92lZ6Pd2s1ecius19DVG9eZ2BFUGxfcG1WVU0uZWNoUllRO0FDQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITA0NzY3PVBrZT4mVmdcQD1WX2NONkdCYEk6NzegnZSht7GZs8GtqLKnqrO6t7W5v7q4s7e+tqa4taG2rqCgqayflam2q6mysquttKSbqaCgqKK1p6aqpJmelaWhlJSdmpOXpaiclJCnrbCloJSZqJ+ij5GimqmloZWapqmenaSfrZygnZ+NlJ6cn6GZmJyVlqKglJiRp52HqX5/pnmhj5CEqnCtjYOnhpeho4uYl4ijgZCGlKp6f4udeXCxWqiDgoigeHTYf3aHdKiCj5uNkqR8lpCfhHuyXpxkoH6ClW6TXatcW5N/kX9oZ6pjcnuAapiGcV2rWomgj2ttZE9KQ6FcWk10XWJmTVphX3J0X0pVNUqakVhIRT1HRUFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4xMDIxNTQrKjA1LzcsJjIxKCQlNjY3MTxPZWRBJlVmWz8xVF9iTDdGSF9DMT03op2amr+tmLPCrqusqKe1sbixtb+6u7OyuLyqu7ahsqWfpqion5Ossamwq7etqq+hmKKgpqWkuqOjrKGXnJKjoJaVn5uVmqKhkY6MqbCwpp2Wmqemn42SpJinq6iWmKmon6ChpK6joJ6hjpWhmaCgkpyXm5WeoZaWj6ycj65ucrR0qYx3i6Z0tHp1tIKUp6SUnY2JpIeOdbhvi3uLomtrtlqhhmWXl2igoqdtlHK0dJOZf7NqhpKIrWp1tGGdZqJvh5JrmF2tYE6hfIeRUnOjbHl/fm6Yhm9cr1Y8nHdlVG9uLlunT2JSa2VibFpiXGBwfGNTWVE+P2xvMkJCQD5NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+L1VeYUw1Rk1eODFBOKWanJ66pJuxwK6uq6uot6q4r7XBtb2ysbu4rMK3qqyhnaekop2SrKuotqS0qK6qoZedqKClq7ido62clpmQpqOXjp6hnJmfn5GUlau2sKaYk5usqZaMlKaapa2jkpirs6SgnqissJihopCZoZegm5abl6GTnamdlJCrmYfUlJq7dbHEgMSHftaXnLh5ipKZjpiKjKeHeaK2dX13dsGDmrJhg7p5wHx1uGK1gYyHqX2VgqypcXt/dbyIp6BpnWGmj6+ifo11h6t9vm5zvHSyg3V4gYptmohwbY2kdL1dd31bYXm8alpWW2l5XmlhY2ZibXhvWFtZQ0FAcT9DRys0SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9UXmBLNTxMXC02Pzmnmp+ivKOXsMOvraqqrbGoua+3xbG7s6+8sK7Csq2mo5+lop2ckaulqrOltaetpKCWmquZp625naOumJWhkaagk46do56Zn5qQlpOvubGrlZajp6aUkJalnaStn5GhqKygnJ+ppLKdoqSOpqGVoZqcl5WkmZCwoJKVqp6FkJm2gJKSjbiWeYOTm7Z3bmxvdG95j4SOiXKewLu8mnuBsqhwgXSRuYN8hoaLho17ioeMl32ku7m9nHV5s6N0dZd1dLB1mZ5mh2qNtnRzcXe2jF6AeX2IZ4N5bHpii6xwdIV+V1unaURkWVRmX2NdY1FnZnFtdUJNT0xEO1pMPkoyOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PjcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlbLCs6uqqK2rqruvscavtbSwuai1ua6rpKKnn6CdmZStpa6rp7aoqJ+clqGknqylvqehqpeVnJGim5KQoqiilJ+XkpiUsrW2rJedo6Oii5KSppymq52WqaWmnJuhqqamoqihkayel6Kel5aYnZ6QsKmUnKeij2t/ap2qeol0f5yPdntmiHu9vsC6b5KDcZSFX3JqWl6bimFkh4+WbGB/lWNtnHZilWyAmZWUZl5gY3GbiWhyjHyGlGZqfnF0eH9+Y1x4dYFoUFxuhHx8impXbHqCcklKb4VwTnFNRFZcZmBMWldmY19PW211anFST0RETTxISDxMPzEsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVDRlVFS09IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJeSSdTX1Y0KVBeTCgzPlxPJz8yPqifqaLBpJqzubajrKavpqi2sqzIrLC0rbakvrKzp6Gkqp2jnJqarKeupKW2qqWbmJainKetqb6oqaWVlJuWoJqTmaapqJKfkI+YnLCyvquapp2noomTkambqaScnKygo5qbo6esop+poZmum5SmoJeUnZ+dmLGlmaKomZ2Sn52kppuopJuem5ybkZeCaG9+cXeRl5SQhIm0qo2FmJWPioyZl4iUlYmDk5ORiY6SlJiUmZean6Gam5Sfm42BeqSFa2p8kX2BdYqLg3KCeHp2dot/fIlqc4F0g3Vkd312a294bF9iW29nTVhZZmpfV1lveW5tZlNPRlM5UFpOUk8nKjtLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NTR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0knUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsLG3oKqms6elsLWqyautsqe2psGotaGfpaacpZaVoaynraSkt6ygmZeXoZitqqbBn6yklpKcl5+YlJWjnp2jqJOQmKiossKvmaqcqp6PlZapnqqcnqGtmKGbnaKlr6aho6eerJiWpZ2ZmqGenp2woZ2ip5aZlJqVoqSYpKCZoo+YlYuLjpCYrpB8lZyCkYGJqaiFgJiXi4SPoIh7hJGFhZqRh4aKlY+bl46RmJ6jlpmSkJyNfo1lobOuhYqEd3uQi354eXpwZ3mRgYGIa3WBeYhyaHN/eXWDhoFqdGJ4ZV9oZGNkZmpZa3twampcU0xQRF9VRkA+Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAsp+5r76tq62xsqCqprKto6yzsMWwq66ks6+8pbWcoaijoZ6Zl6mnqqalprO2n5WVnpqasKauv6GsopGRnpqalJKWop2XqZ2Enamro7THs5+po6qWlZeap56pnKClrJSfn52fqq6opKKqoauanp+hmKWfnJ+dsKSZn6mUmZmekqacmqqfnJhmhZN9ZX+Pm5Bjeo1taGp6kKOramWamH5nhYtlZWloeo2ijmtojJiRondraouZo5+Yc2xueoSMhnlYZV2Ggl5si4uDd1xodHd3koCHgW93gnh/c215hHN2iIeNgnpohFhdanNkXXOJaWp8cm1jXVFOVkpkWEBJMz1GOD9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1dX11aVU9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQklbSi42Wk82KUVZL0RPMVlCOz8uPaSeury5r6uysKulqK2vsaeurrC9saqppa6wsaCtl6GknqKamqasna2kpqiqs66elqSQo7Cmt7mlrqOPj5qimpOSm6CZmaaWe6Sroqi0w7ekoaaunp2UnqOfpJ2kqqmSn6CeoKqvqamiqZ6mm6Wep6Csl6KcpbGlmJ2slqKfm5OnmaGsmqB/vYSJc7RzhZ+GrWh3ucS4cZKho3qmmZl0q4J9y8DAunGLo4eDnn2WmIiewL2Clp2djZzBwXyBepGMmsLAfWqlsnCOgm/KeoCbeJKDjoB2eYGAeXF7gIZweISKknhsdZFiZV53Y19lgWJddGhtZGJYS1VJUVlIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fYGFfXl5eXl9fX15cU01QR1VOQUA/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0NQLyNGWzNQWS9VQUI7LziVobnDtK+vv6mplKOwqrCvrqayta+rpqemsaugq5ibo6Ccm6qno56so6WppaW0pJ6jlKaurbi0p6+ikpGZnaaTkaCimJygnoimq6Srrb+/sKCorqiWkZ+dopmjpKqjk6GhnZ2srqiqpaOipJ+jpJytqZKkm6muqpyeq52uo5eYp5ijpJmef86UenulgnqWl5tfrY9djqiAoaF8p5WbdauDga9eZIyqe6iHhaB0l5OIs2OCq4agjY2zaoSvdHyWh7hhgq1Zo81ukXZ723t/mXF+iJJ1f2V7iHZ2bH6HbX2EjpB9a4CMX3Bqb2ZgX3hkW3FoamNmYFJUU1deSk9DNEFIRUQ4PjU7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xfX19eXV1fYGBfXl5bV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrMHAwLS0sLeYnpGkqqmttaumsqysrKWsprCqoaecmqaYnKKvn6GfqKejpqGfsaycnpWmrq2xq6isoJSSm5+lk5CfpZedqKSeraOqsKi/xbKnqbGtlpKenKKXoaqqn5Whnp2cra6mqaibpaWioKqSrLOWpaKrqp6kqKejsqKUm6icoZyWlZGXoXKGjJh2hqiHcbB8nXGsfaCggqWPnnirgn6tf51yrX+sh4afdpiSe3yXf6qIooyRjJx9q3qIk4+ff3qtVpzEe5Bwk8F9gZVtdXCMbWZ3ZYduYXhucm6HiY+OgmyOjWNuc3VvYGZtZF9vaWpuZmNYU1xgWlJSQzhJSEBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi08KD0xKTNWQEYhHEc7QzEuK6/Txseys5+do4+jo6Kur7evqbGnqKqprqusp6KknZqjlZ+mq6CipqCoqKOfnrCtmJuWqKevrainqZ6XlZqkopKUoa6anaejrqyirLWpucyxrKatq5aUnJ2imZ+urJ2WoZmenqmxqKiom6qmo6Gqmq+xoqisr6aap6yrq7Okk5mlp5yWk4Wka6R1inqpdXuycYKlipiLcYigm4ekX2FSq4WAroOcda6CqIaGn3qZl4Z7ZoCjiqSYhoKjfal/gZSGrl57qFWdopKCe6OfgHzEsMWMc6+0s7lyYqmvwnRoi4uVjYBrlo9tbHh3d25rZmVkcXFmfGljXVZfaVhYVExMUExDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmFhYF9eXVxdW1NJQjY3OTk2NjQsJiQiICcnISstIiQuITMtJkBEV0gsRys1NioxUEtMIyBBOUQ0LCfBydbWwKGZq6ihr6KfsbSwr6mso6enq6urqaWmoJuln52mp6aknayaoqyhpKCvo56bk6qktbCvoambnJaVp6SRm6Kon5+mnLCloqixrLbHsbSpq6mVkZ2doZmgpbOdmqGUnJ6nqqqirZqqpqChqaKyrKGqs7KhnKuqsbG5ppSYpamanZN9qm2fhIh2q3l8sG6CpIuIn5aVnpaB0ri0uMmBgrJfYJSpg6WIh6B6mJaaearJdJqjlKipkJKajH6aiZrGxndloYKldIKgjoJ9r19vtWOxdUujh22nR4OTZI2PnJB6bpSOfG55dHx6bVtmanJxZ4FpXmFYY21cXllJTExKRURCQj1BPEE/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fYF5cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwwLz4tNE9UUR0cOzxGMi0kp6TAx7mtqbKuraWjnLO5rKuhpZuopqusqaagpqWYq6Ofr6ydpqGtmp+ppZ2ntqCjmJSoq7azrJymnKCWkKatkpqcp6OgqqatoKKmqbCzwbGyqaynk4mXnaWboqSvppeilZicpaWpma6cq6WknaujtqyhsbmwnpywqLW1tqeWmaqmnKGQg55Od5qCgJ97hKN8gqSDhqafnJ+UhLh8fXq5g4DNxsO2eJuikouffpmXl4p2n5eKpJikqH6vhZyDnoSsfZmUYaVso3GQhZCBfZaEcqxgpHNxgJphvH1SVXWNkaGUenuPjYZyeXOEfm9bbG53c2qBblpkX2huYmRdS0tRU0FHR0ZIOjpLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1QcGzY/RywtIYuHmamspKu5q6+gnKGts7Smn6GVpa+urqmnnqWlmqSnobOuoqmns6CaqaSUo7Wjo5aXoam1uaSbo52jk5Cispmem6aloKKvrJujp6K1scOwramsqZGHkJynnaOknKWXnpiYmaWjqJitoauipJeupbusore2rp6etrS6s7apmqCyo6agiJDStcO3eoeOhpGTj4Cmd5Sid4yhkoWlg4xyq4iGtG5zapqknZaKn32XmYeHkHOugqWbo42mipOdiJSQmm1wslylc5N6nGyZf3uZfm6pYaJyc36fYnOyuGh3jpKjlnuJiY6HdXt4jYFsaHdoeHNugHRdZGRtbWZoYEpZV1c8R0Y/UzNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVFFPUVtVJSEyQUgkKiWSco2Krb+/vLu1npeopK62oqKZlaOqqK6pq5mlop+moKC1pqKpp7GklKujj6StpJ6RmpqqtLSknaWcqZKUl6+goJ6mo5ynnLOYn6mjtarCr6iqqKGMg4+doqGmo5WampyYmpimo6WXqaeroKObrKa8rJW9sK2fo7K1u623qZ6staarmnyokn18sHiLgKSliJxtsW+gh618oo+DqJeagqyKhq2GoZWooaOYhp+BmZaBe5J+q4GdmZaLq3edoI+Ik5J/eq9do4F9pqdlnoB8l3Vqrl2lbHKGmV1gW4ygbZSPo5aAkYmSiHh5gZZ+aWx+Yn10bYB5YGdlcG9nZ2hCWF9aPUpTMlM4QUFDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaWFNQT05JODE1Mi4qLEFUVlZWVVRVVVVVVFRVVFNTVldXWFZVVlFIRklKJCkpvJKahKnGw7fBtJ+braCuuaajjpqjpKCvrqmfo56drZieuaCjq6GwqpquoZGqqaWXipqQrrGtp6Com62YmY+toqGdpaGZpZytl5+opbaovq6kqaOfi3+Om5qgpp6Sk5mak5qZpaOimKerqqGinqiovKSXw6yro6KttLutsKmjtrGsrpp3r3+QipyGh3y6rYmYZLCMZJaufaGQhKeXnIKtjIawh6iapKKjkoWgXGxrgrNgf618e4KBsmxnbpmXi4exWn21XKSDa8iiZp+BfLtZdrVasn1Tr4F6rFiAoW2WjaWYiJSNkpN5d4ybfGNzfGKDd3SAfGFpZm9uZmVmT1RiW0FTXT1IKD45PTQhIS0kHzEuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBgYGFiX19cW1hVUE5KR0M1NTMuL0BVWVhXWFdYWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vru0wrOjnK2npbepoIuZoJ+dsrGonqKfnbWYoLOoqquesK2erJyVr6mjjombjq+sqaejqJquk5qPqZqhnaWfmaSipZieoqixqLuupKienY58i5uWoaCZj5GZm5GZl6ien5enraWkpKKkqLqfoManpqmhrLa3rrCpob+wsLCYgqqTo66Om4CGpJeYkIGAuMO6hI+dlIWomZ6DrIyEr4qpnZqmq5J/1r3CqmKkv719f6OCg9e7uLWElJKCnr2+hGujgnCrhW+df3qysceDa6uxvax5eKK+u3SAlIyjmY2YjZOZd3+PmXlifHlkjGZ4gXtga2VqamJQYltSaVw/U2BCTCk8OjQvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSUM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0ssC6sr6zop2vp6azp52Ml6W/qbavp6G/pqaxm56xnLmon66vpaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp2nm5qgqKKYnaCsrKm4raejmpeSe4eZkaebk46Pl5iPmJOpmJ6WqKieqKagoqq6nqnFo6GwpKy0tayyrKO/q7OynXV2qqS2hWWKoHBnrJCKj25ud6WQm6GCdrKcmHGRjnKXqqSbmbClcm1tbWaLeG9tg5pxgXpqcWlniZaVl3JpaYWHZ3GHZF6LY2lvWl1nfnimYGJykJJwZmSAjJGOn5WVl42SmnqFjZN0ZIZ3Z4xqeH55ZGxjZWxiSmRXSWpZOU9jRE8nSjkrIxwgGyIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdbXGBgYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6urKzq6mirp+ktKqZkr2xw8e8tKmev6uso6Cnq6C6o6SurK2mjpatqpCMhZWXrZ+mq6KfpKSgkoulkqaZqZqWo6mglZylpaauuaqrmZqTknuEl42ml42RkJeUjpeVppOdlqeima+lnaGruZ+wwailtKetsbOssK6qvKeyu5iMo6mltZyJl6OYh6mbkJSdkqq0mpykrqK1maWjoKOknqOlopesp42Tk42Hk52dlZCZk5iRj5WFf6Sal5aOjJSTipCIhX9ojIF0g3d0h4xxp219lpOUlIGBj4+OjpuRnpOUk52AhZOLcGiPdm+Jd3V8eWlrZWNvY1VhWD9oWkdhXk1XK0U9KyYhNjQwLh8cICUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdVVlleYGFiXV5VUUtFQz45PUBBU1hbXFlXWFhYWFhZWFhaW1tcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbiur6Kwpa6gobexkY6qxLzDubapoaSdm6WdsKikt6edqbWnqJGYrKOMiIqPnKeWraShmqien5OWpJeomqmZlKago4+ap5igtLmnqpiakI17gZWLoZSKlZGVkI+Sl6SOnpinnpq0o5ymq7eor8KvpLinsLCyr6ustr2jssCak6elprSikp2nn46poI2Sn6KtsZuipbOrs5qmo5+nrKCfnp2YrZ6TmqKclJCXq5mNmZqXkJefkYegnpWUhpSNkI6WjYJ/Zo6IdYh3eomEdJxqiJKWlZKJfYyWkZKWkJ6QmZKdgYaXhXhxlHJ5iX9xe35qbmRecGlgXF9YbGJPX2JOWDlGRkQ9Mjw9Ny4qJSspJh0mNDA2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBhaWFlVlBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlqSoo7C0rK+jqqeuoKi2qpGPm6Oyua2qq6GimXqcobCkprGpl5y4pqOUmKmcjoaKiZyjkK+fpJapoKGTl5mcrourlo+omaeMmKiOnbi1o6WXm42JeYKTjJuTipWRk5COkZahi5ydp52dt6J/g661orCwdaS/pLOgeXuirbW/l3evpqGKgKp+ZFxid6CPpJ6Dln5tlLWdpamxraZmoKKVdXucmXCBmaqZbYCkqYplnKWckZiZl4yTnJGEnZuQlYSUiI+Pk4uGeWyRiHaHcXyGgYFhaYmMlZOMW3aVkGZojoxxeaGVlWR4l4WAdpdogomCbnl/a3BlYHZva2toW2RjYWBsUFk9TU1NUkY9P1NCOTAvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHR0lLTFRVVVldX2dnZ1hRSjxESDw5VlJbYGFiYF5fX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqqaprqOnraWSlaq0rrClmamlqpZ0i5yvoKirp5SXuaCgj5yknpF+iImbno6smqSVqKKejpeSnoV1ro+IppqokZajiJu5s6efmJiLiXV3ko2Xk4mTkJCTjI+Sn42ZnqWYm7GVgIybtZ20jJKPvaeifqeje6WxuoOOj6mghIyFj7Gqr4yKlqOaeYGLrIadn6Opq6qJloibd6Wce4icgZinhIJ7nrN7ioagmJmVmJeCkZeWhJqaYnmIkoWOkJOLhG5ykYh6gnGBgYaAh3SIhpeTeJZok3SgmnR7mYKbmYSYfpGIgYKYaYyMhGp4e3FwZ2V4bWlsaltjaWhkcFpbSFNLUEBFNS1ZU1Q2KSEwOT0+NjQzNTY4Ozo9Pj4/RElASUVKS0dTWFtYW2FhaWZZUUg5RUw8P2JWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2YpKCmrq6rqK2gqbGmp6qlmZOsxLyvoJSlp7SdkIOdrJ2noqCNkL6emY2fmqGRfYaOmJeIrJ2jlqGhko2UiYaAkaiOhqGco5OWnYaeubGnnZqSjoVwdY+JlZCKlI+Om4uOkZ2QlZ6jlJ2rh5+0ibSarovKiKuvireFjbCEs7GGqY+qmo2dfKiPcnt3nI6mlmiVpHm0jKGgqKqUmsKDgauJmaFynoCbpX6XhpaygaF9oZOfj5iYgI+Um4mZkot8hZSHjZaUioVudJOGgHtzh4KEfYV1hoOYgo/FZoCph4+iap2BnZeAmYCKjIOImG+NkoRnd3R7dmdpdnBnaGteYm5sZmpXZEZcUUwyRTQ2TWBjNyYzPEVHRDo2MzY1ODs4Pj09PkJMP05JSkxDUVpdXFdiXmpsW1FFPUtNQElkWF1jZmhnYmJiYmNjX19iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KgsKmpqKasoKW5samrppqUnqGkqaGUo6m2orB/oKedpZ6diZS9mpONoJKdkHmDlpaRiKuZnJuaooWPjHabm46gkYedo5uWmJeGorispZmbjIx+Ym2Pi5OQjJCMjJeLj5GejZKeoJihp36hp4etnaCWrpCgnp2Rh4Khja2yiaSPrJyMmn6idoCZlGuCq3VNq3iHjZ2TnKqpgqqrf4WifHunap6Ak2xnl4aYt4mefm5gY1iDmH+NfGRnjHOZfXmXbF19mG9hVHKGXWBteoRgWWWCfoWBmXKoqmuDo25ypW+fgZtnZJ5sWmyJe2VZX4J+YVdQb3Zlb3RxampvXWlvbGpnV2ZNXFdFOEE0R0NeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUktNQkpcXV9XXl5jdV9NRDpNTk1UYlxcZmZpaWJiZGJkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJedobmhqqSmrJKitryrr6KZlp6gpaurn5yttKKokqCgoaecmY6YtJmQi56MlYt1gZSSjYqmlpaYnp9+k4WFrKOHnJGKmKiXmZqRh6WvpqKVmYeJgGluiIiLjo6Ji4yRi4+RoYqSnZ+aoaR/k4GPo6GUoHeclpCng6OpgIesr4eleo1/hJp9onBzk4eVe56MeW2HnIuakp2qnI+HnX6EonR3pmeefnelX5h7fZNzom6Yt7S6dJOIgoC2qGSBxrh8cZW2jHKBm6RkdKyrYX5qnbN+bn6JhI+DjJhxgKNscqNynoJ9o16cmbOVcHyXnrN0cluesoJpYnF0dXFob1hqa3FwZFtnXGFLQz1ENVFBWXEyPFNHX0pSPTwzOTU6OjZDPDtASVA/VE5OUUBEX15bWldgYHtkSUM3TFdVVmNhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaS5mauck6COpbi2ra6gmqGboqOkrJqasayrk5ehmaGlmpqUnqybi4mReIuFcYCWjYmQoZCTlJ2XfZGKjqighpiOiZGik5uajIuop6Sej5aHhH5re4Z/fY+Ng4uQkImOk5+BlZufnKCfi4l3nJiijaByoYyJqYmdqJKZqq6Bro1+eqCZeaOTeIBzl4eMnH2Vn4ebjpqdqIijZKF+jJeQm41tnmibjm+amXuAiqd9cmh0q4Oeg3OqZ5SaXZuFdoSdaKpqgLlmXKlwgZxhlYxfp3Z3iouAnWiadYeTkpiNfp5smI9qpplcqH53u2p9qVqOhF2zZ1tucnh3a2lbcGl3d2FeZFZhQVBETjZWQlJtNEpaWl5OWkRAMTUxOzs3SD86Q0hVP1lTWF0+RGJdVmBRYWR8aUZCOU5bXVhlZlhmZm5tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mWnYmqtpyoiWOVnKy7srCsnaWbmqefnayZnbCnq56Xo5qioJmWlqCkmYaJjWmIgHJ7l4iLlpaEkpWYj3qLhJaknImVj4aKnZKcm4iPqKGfmouQioCAaYGGeX+WjHuIjY6HjpWZfZKhnp+hk5hyaJ+KoI+McJKNgqmJmqGlq6Kqf7GupKK4l3ejs6Kjf4iUeJ16qpl/oo+fnZmJmHKhfoiOsLV9bJqRoXh+mbWjo6uohJl8m32cm390qlpdb3uXi3ieYk1/e3uGZXqYQk2fWaJqc32Pb4KKhJl2m3mHibGzf36akqZzfZ1tcHyUb5lyaaNdlXZIZWNfdHF8fW5lX2tndXpiY19QXVdcU1ZAWUVRZ0RSVlxhWF5JRD1COD9BOkhFOExFWEFXUlpWRUZiXFpgS2BtfXFFQzxWXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lY3ZsXmVnZmxkZWxoaWxplJ6Bsa6ahFNfoae0urOzqJqii5qpm5unkqCro6Coj56enZqZlZignZaHh4l3hYFueJWFkJuLfZGTlohygYmSoZtykpCAiJiUn5qEjqibmZWKiop8g2yEhXGCoYx4hYyIh5GYlHqRo5+eo4iuhn21hI+enXumlnqpgpefkYyjn3+naXhufpl0oHNxfJ2FmG+Tgq18pISnn5uDpHBeqWh2o2RwpmGc0498e5l4cnNjooaRfqJyo5B2a5CzjGCDmIp0qrKovH93hG9/v6aqtF6cb39yl3CCdKNyXqRndKZgaKZsm9OYeYGabnZ5l2ubeXaXcmyppWdfZXlxf4RsaGZjbXV2Zl5hUVplUFFhSFZJVF9XU1tlaltlUEVDS0xKS0FKRDhQQFFOWFNYT1NRYGVlalNkeHl3SkdFZF1lWmhpU2loam5jamZgY19cXV1faWJhaGV8ZF5kZ2RrZGpsZmhtaJibf7CsVF1LfqqvsbSws6KcmISXpqCgooykp5+XqYqZmJmUmpOSoJiOiIV7cH2DaH2PgpOagXeRjo+KcICGj5OSbJiTfIiRkqOVg46pmZOSioWJeYN2iIBugZ+Gd4CRhYeYoZZ4kqGjmZ+Js6Gitot6rKekrqVxqYCbkYaCn5V+pYGjm4aYcZ6Eoq2uiZeLf4ykjZWDr6OVd7W2tsmidJSNg59gnZepbXmWh6CbdaGHd6B+kZeLgW9NZqOTcpuJdKV7enVihINufqFtcmRgnHN/dJhre2q0trTGpnOYfXmcapqZq3OAmmxzd5dpmXl0mHFQRH2zXmp2a3iHZmtmYnN0b2xVW1JZaE9RaElVTFhSVVxna25VZ1dNSkFKTUtISk5BUUpQZWNqbWV1c3N+eHtudIl6e1VRTm1eaFxraVJqaGlsZ21mY2VfXFxcX2liZGhre19dZGdjamZubWVpbWWinYmwqIVlQJSisquvr7Whoo9/lqehoaOLpKadnKaCmZeXjpeQkJuTjoiDeWt5hmWDjH+Xn3l1j4iMgmqFhZKEi4WdjXqMipWlkoKXqJaLkYuAiHqAfYt5cI+ghXmBlIaIlZ6UfpOkppuVloNnbnicbKJkfHKleJyYcGing5qOfaV7opeDlnKfdoCJlJWPuW6QiqJifZmjl4luc2ura3WgbnCnYZtqi5BploeblXWigX6aYIuGjXVviGJooWaef2qbdXFlZ4mCb3OiW19bZKFuXomNcXyAdHJkpW54omNmp2eXcYuXbaFvUoiPbqBeZKdUi11UmG1tcmtxgW1waGt3c2puUVZVVWVYU2xJWE5bSFdoaHNqWWtWUFJFVlxNWFJhVWhqXnd1e3xwfXxygnt/c3eNgIN3XlFzYWdicGdQa2hoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaWZpnpldG2Mp66lqbCxpZ+Lf5apnJ2ji6GhmqKigJWZk46akIuXkY6Ke4ZxgIhoi4p8l5pzdYl9kHxlg4eViomVmoJ8iIaWpo+AoaqPhZCKgYl9gICOc2mPpoN9hZKMh5efjYaRqaWdiaZ4lpt+pYmWjLKZnpGEr5efpXqYiXupdaiQhJpupaKMkoSMg7xtfKWvgoeFh5WYnqJ+pnxzqJWhlmmff3CsY5aKlpN4qG2qo4GJdomDd6uRpohrkrFsd7ONqWyLhm9voJ6SlWJ/q4yqeIGAjqefd599haSWnaBomYd1rGaerYy2c3a+jKSTWYOmjathdXJ0b3t1cGJqfW5nbFJUWFRgYFxrTFxRW0ldbG12X1txWFtfWmdzZW5vcWNxdGB3en55cnmDc4N+gXt7jIGCgHZieWRjbnNkUmxnZ29tcmlmaWFfXlxhamJsbHpvXFxiaWJtaXdtZ2xvYpamq52BgJ+llqqqnqenraOYiIGWqZmdoomapJyonYSMmo+GnJGFko2MjHSFeoiDb42FfpeTdHWGcpGDbn+LkoeGlI98e4GFl6SNf6WkjYCOiYSUdYKHk25si6iAgouTjYibnoiLkqqioJCAdJSXiH6BeZSvpH+CnXGPhnmTjoeBe3OpjXF9fXqYlpuEjXh7fX2Hk5WTi3eSmqGihHt/i22Nhlx6eXN7cWlufpOKcoB0go+Uk3GGhINmjX9fgoGMeHd0lXZwem9wiW6Fhl93aXiOZ4KDho+qnH90fZZpiYhvfXV7gnRsbGaMc3h7l3eEW2tXeY9pbndycW93eG9da4VuaWdWWV5WXGVqY1VgVF1RXm93eWtqdmRpamp1fHBxdHNhb3RidHuBeHV5gnV/gH+BeYuFgn57boBtZHluXlduZ2h1a3hqaWpkXGBaY2llbHF1blpbYmtkbGt5bWhsb2GOlbqpp4uho5umpJmknauhn4ODlqqRnZ+ImaaaqJmDgZyLfpaUh46KiYxygnyOfH6PhHuXjnRzhHCVhnx9kouGho+FeH6AhpijjHumn4qFj4+ElYKGjph3cYSqhY2RnI+Hnp2Hi5qnn6Crg4mNlZt/foqXraiQk6iReXGflIV9lXCAq4dxfpVxam98gZ+Lf5GNimdtXYSNjp2eoJBzl42Kc3Vsg3d0gVlyb4eRgn5/jGpdaWR7hYSJgGBpeXycfISNhHeCiIVqeo2JbGJxc4N3YHSNg4qRqJaHZ42Ogmx2ioFugop3bWNlY3mDepVaXGlnbnZbe3l3dG1zcoNmXG2Ka2tiWVhcWVhrcVteYFldXWVyfXp0b3Riampqe3xxenZ0ZG10aG17fnV6fXt5eoCAf2+GiYN7fXN/enN/aFRccmlsdnB1Z2xnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyrsqKQo6Ganp6YnZmooaB9gparjJ+ThpqikaWVf3uYhXySmYmIhoaKcn2AinaEi4KElopyb4BzmIaEfpODg4aKgnqAg4qan4+BpaCGeI6XiJWKi5yXhIN5rIGQl5iTiZ2choehqp6ioqSLh5ObnaOalquiqKiik52JmZF+epGQhqqAf5ORkpOcsaWalJ6OjLCRmISmjo6WnaGKkZ2EipOLbH2Pd3hmgoaRi32JnoSIjI+IiIGFhJF4fHt1nKSKiIygjIeWgICOg4F3cXWGhYB5iYiLkaeRhIeOh4KLj4p6g4iGjH90aoGDfHmZaXJoYHSKcX57d3ZvdnSBXV5vh2duX15ZWlxTZ3FVY1tbYGxndHt7cm5vY2pqaH97bXh+cGhvb2tmgHtygoB3f31/hXttg4yFfHp5fH16hHhOZHZqc25xe2VsZWJiYFtzZnBmcnFtVV1sdG1oeHpwZ2lrZY2Inrufl6OhmJWZmJSYpKCcen6XqY2djIWfnIuel314lYN7jpmJh4OEhm14gH9ygId+iJOEbWx+epeHhIOQfoCGhId8h4OMmp2ShqmdgnKKj4WSkYudkXyNe6mDjZGXlY6bloWFm6afopqehoOSmpmZkJmmoaaenpCXgpSNeX6KkIanfH2PkJGGmKqhnJKcjo2pjZGAno6KlZyghI+YgIiQhHB5h3J1YX+EkIh3jJmBhI+BhoV/hoSVbnp2dZSkjI2HnIaGj3WCjH5+c3N8ioV8eo6PhZSokIeEj4GCiYeHc4KFhoh5bWp9f3ttaGtsZ155f2d9e3Z1dnV7d1xgcH1udGBjWltdUWZsU2RaXWBqaHV5fnBsbGNrameAf2tyf2trdG53bYR5boaAdoKAfYV3cYKNh357e32Ae4KLYGl7a3VoaoNlamNgaVxjdWdvYnVtbFRicXllb3l6cmVqbW2Lip+4mqKkn5OSlpeLmp+enHp3m6SQm4mGpJSLmJp5eo6FfIqRg4yCgoJse394coCFfYqQfWtofYKXiYGIjnx+hYSHfI+Bj5ubkIimm39vioqLkoagoYqFjHyokIeOkZaSlpJ3jKOgoZ2Wm4CBkJqYk42ao6Kkm5iSnH+QiHuChpCJoYF+jY2PfJekoKCRmZCPpYyPgZySipSZnX+Tk3+IkIN1dYJxd2F+gY6Ic4qWfYmMcY1/g4aHj2h4cnqOmpORgZmAiYxzg4l9fnJ6fI2GfHuTjoSXppSMhpB7hIWFgnN/gISFeGRwen94eXBsamZefnNofHV2dHxzgGpeYHR3cHdkY1hdXlJpaFRkWF5gZ2l1eYFxZmpjbGdlf4BqbX1nbXBqfXeGemuLgXKBgX6BdXaCjYZ/fHuAgX1/j2pyg250aWKIaWxiX3FWdG9sbWB4aG1XanN2Y3R6enFia295iY2fs5Klpp2OkJiPhZyhmpt8daOfjZd/jKGKiJuWeHyGh36Ein6IgoB/cH57dHWChX6JkHdnY32Gl4qCio14fYCMg3mWgJWXlY2Vnpl9b4uBkJOFpZuHjImDppWEkoqVl5KRdpGdoaGYlJh6f4+Yl46Wmp2lnpqUlZ17komFeoiYj59/gouOjHOXop6gkZeOjqGMjIOYmISUl5p/mY59io6CeHJ+bntkgX2Lh3GHlICRgmuHg4KAi4ZmdnB9iJSajn6VeY2LfYKJfn1ygHmLh3uGkouMmaSXgoSMdoeDgH90eH+GgnNednd9c312ZmxlYX9pandzdHV9cXxjZGFzbnVybWFZX11aa2NSYldfX2dqdHmFcGJqYmtmaHyCa2h0aGxuaH98gnlsj4VxgIODf3R8g4yBgH56goN+fJBtdYl0dG1mimxqYWN1VoNpcG5geGdsYWp2cGZ4e3lxX3FshYWQna+Yp6mejo2Xh4Wfk5WXfHeom4qYeZaci4yZkHl8gYx9fYN7gIOAeHN4eXN9gIN/iIuAZF59i5WHf4WIdH1+iX9+mISWlJaMo6CWfnGGe5ORiqaPjI6KkqCRg5CPk5eRioGPl6CakpCSdICOkpSJnZ2ep5mZjpWXdZGSjG2ImpGbe4iJkIlvl52aopGUioudi4aBk52AlJSWiJqKfYuKgntxemt2bXx/jH9uhZODlXhwgoR+f4yBZXNqfYKYmIWAj3WSioV6iX93eIF+h4J+hY+HjZWlkXmFgnSIhnt+cXJ+hIFrYHl0eXB8bmFuY2V7Ym5vdnN4d3R0YXdgb2x1bnBdWl5dXWldT1xXYmBnbHJ6iGtfaWRpY2h3h21mbGhpbGeAfHp3bpCIc4CDhX10gYaJeoN9eoGEfXyOcnmLeHhubIhraF9pcWKHaHFvZXZnbWxhemhqfHt4cGF3bYuBmZqroaWpnouLkYaJnYuUlnx2rJiMlnyek5GXlIl3fnuKfXyAdnh/gHB0c3pvhX2BgIl+fGFcfo+Rh4CEhHJ6f4Z6j5GHkZGbkqSak4F8gXyNipKkiY2KjZaajIWQl5KVjYiIjJKdk4+MjW6EkI+RiZ6ZoqGYmIqXk3CMnIZoiZuQlXuJhZCKcJaalKGQkIiKmIyCf5KffZORlI2akHyLhol1c3VrcW51fYt1b4aRjpJydIB8goKKfmVybnp/m5V+hYp1koyCdYp7cIJ/goh+ho6Lho6Wq457iH1+ioR2fG5sfoKAYWZ3c3RuemJeb2FrdF5wanp5eW10cWV6Xm5sc21zWVldX2BpWk9WV2RiZXBxf4dlXWloZmJncY1uY2hoZWlogXp3dW+OhXOBgoN8doOJhXiFfHiEhnqAiXd/i3t7c3mEa2tfb2h0f2txb21xZ29rZXthbX95d3Bsd3eJf6OZo6ihp5uIi4qBjpyGkpp0f6iUko2GoIyWlJGBdHx2hXh4f3JzeoZscm94bYl2gICHbnFbWX6SjYiAgYF2dYB/f6CGj4qSnJegkpZ3iX6AjIicnoqPhpKXloWIk5iOlouKjY6MnYqOkYRtiYuPkYqclqGcmZaGmYlsiKaFaImfjJOAjYWMgXiTmJKdkI+IiJONf36QmX2SjpGOm5N9i4GFcHZwbG5vcXyHanODj5mLcniAdYKJhHpndHB3gpuQfYqFe5WTe3iKdXKLfIeOfIyIhYqPnKWJfIR2gYl+d3dsaH1/fltxcnFvb3daXnBgcGteb2p8enFubWptd2Bwb2txbllYYGBgbFdQU1llZWF0b4SCYV1rbGRiZmuSbmBmZl9naoF1cnJvi4B0f4OBeXaBi4B5hn94h4Z2g4V7h4t/fHeLf2pxY3xihXxvcGx0amhubHd3X3F+eXt0dXN/gn6llZutn6eXhYyDfpaVg46ddImek5KGi5qMlo6MenJ4dIJwcoR0cXWIbG9sdGyHdoN9f21uVVGBq5SHgniAdnKCeYGggpCBkpKYmpGYd5B6goySo5qTjoiUmJKEhZaYi5OLiY6PiJ2EkYt9couFiI+InJqfm5eWgZWAaomfimmJoomUhZKEinGDkZePmoyOi4uOjXd7k5F7kIyOk5iNfIl+gmx3am9sbG17gGJ6fpCXgnd6gniDjX16aHVtdoiXjICJh3yVknJ8hnJ4jnuMjnyKf4WOkZ+ghn18d4GKfHZvZ2l+f3Zddm5ta3ByVV1uYnJhX21ueXBocGZndHZpcWxhd2ZdVWVgX3FTUE5bZWNcd2+Ie15caHBhYmVmkWpfZ2RbZ29+b2xxc4p9dnyGgXV2f4x5fIaAeIeDc4aFfoyMhHx6lXhncmuDYId+b29re2BpbXSAdF5zfHiGeHRzhXx5oZCasZylj4OKf4KZiH+Jm36KmJKOhIiYjo+PhHd0d3OAcHCFdHBxg29qaXVtgm59fG11c1JOgt/JktaTfG90g3WDn4KRdpSQmJuPmHuTcoWQn6GTk5CJkpuThX2VlYeMjYeSjYmcf46BeHuNf4iMiZycnJuWlHqOeGmLlIpuiqWGlImYhIZjjJGYjZSJlouMiYtwepWKfI+Ji5OSinqHfX9tfGVzb2tte3pcgXqQkIF7fn+Aho97eml1a3SMkIuDh4Z+l41tgIBwgo6Ajol+hXyEkZabnIx9d3iCjndya2RufIBpZ3NuZ2lzbFNdbmRwWV9scXdna2tiZ3l0cHBkYHhhYFVrX150T01LX2ZiW3dwiXRcW2R1YGJlZY5jYGZiWGlzc21rcXaLfHR5h4J2d36Lc4CHf3qJf3KJh4GQioh9fpl2ZXNufGWHfm5va39ZbG55enJgdnp7jXZydol2eZ+MnK+boJCChHiHlH57iJuGhJ6QjoWMl4STj4iBdXdweXFvg3Btbn5yY2R3cHxuenxqaGxipJrB3K7vonNsdoN1hKGEkW6Vj5Wfk5qAkXCFi6OXiY6VipCdloOAlI+FiI+AkoqKl3+He3Z/iniGhY2bm5eZkJB2i3hwiYuOf42mhpOLnoaGXouUl4mOiI2KioSJbHyXg36JhoqRkIZ2h35+bH1keHVqb3p0WIl7koiGen9/gIaNf3pndGqBio+LhISBjZiHbYN3cImSg5KGgIR8gZKXlJuRdXR4h4t0cm9kcnZ/X3Jsb2FodGZSYHBna1VfbnN5YXJjYGl+cXNuW2NzYmNWblpcd0xMS2NmYF11coltW1xkeF5gZGWEX2NjXlhpcmtua3J3i31zd4SBeXh8iXGDhX19iHt0i4mHlYaNf36Yc2d1cXlti3puc3CAV3F6dnlxZHZ5hoxodoCJcYCdiJmonKOShH1wi5N3eImbg4SfjI58lo1/moiFfHN3cHNqb4Fsam18dF5gd3Z7cHR6Z2BlfOvatcnD3IlzbHSBdoqaiIxpl4+Pm5SSgYhwhYigjYWLlYqMl5N7jZKHgoiPepGLho+CgHd4g4Ryh4KSm5aTmIeMdoiAcoeEjImcpIWWjqCEimGDlY+FiIWIjIaAh2h9lIB+g4WKjo+Ccod/gHJ3aHZyaXV4bVqNfZODhn2Ag4GEi4N3YnVtioKRjIN/gJSTf3CDbXqIkYiUhn2Df4GTlJGYiW5xeYuEdGpvaW91fl1yaG1caXRfUWRxaGZTX3F2dGBwYF1ohHFzaldnaWRpWG1XW3RMSktlZl5hcXOFaVtcZXhdXmRnemBkX11Za25lbmpzd4p+c3OCf3t2eohzhYR8f4d2doqGj5iBjYJ7k3Zsd3Z5eJN0bnd6fFh5hnGAbmd4dpGCZHaGhXCKl4aaoZuiioZzbpGKcnaNmnyJmYiJfJ9/hJp/gnlyc25vZHJ+aWZsd3dbX3h7enFxf2lhZ2F/1baOkaZ4bnF3e3CSkIyGapiNiJqQi4V6aIeLmYaBkpCGhpeNfIyMgICJjXuQjX6JhXp1e4N8cYaAlZmNkpSCiXaEiHiGg42VoKGIl5GhgIlhf5SHhIeDiIx/f4JmfZGAf4CDjI+Qfm2DfYN1bG13dXR4dmtjjoKPgYV/fISAhYl/cGB0coZ9kI6DfYCSintyhWd7hYyJjoV9hoCBlZCRlIVub3iLfnRsbWhod3lfZ2lpWGt0WVJocmliUGJyeG1iZV5aaoRudGNcaGBlbV9vVFpuTUdOZmRbZm1xgGtaW2JyX1xjbHZkZV1dWmxsYmxqc3aGf3Fvf3x9dHiGeIWDfYCHdXiJgZKVfImGdomBb3h5eoSSb216gHZeg390gWxoenOUc2dyh3xxkpKEmp+boIeGdXWTfm11kpV9h5CDio2afYyadn53cm9samF0fGdiaXV5WmB3e3ltcX5lZGhoV52PX3Jzl7zEhHVxlIiPfXGWi4abkouHcmmIjpWAe5WLgYSai3yKhXx7iYt/lIh1iYZ2d36BcnWFgZ2UhZSPhIRygYp3hn6Mm5+aiJWPnoGJZn6Tgn+FgoiIcYF9Zn6MfHl/gIiMj31pgX6EdmdweXh0eHRsao+Gi4KLgHmCgYWEgWxfc3l7fo6LhnyDkIJ/c4NqeoWJjYiGeYV+gpmOkY1+bm16iHx1c21mZXpzYVtwYlducVNTbXJoYU5ndXhmYF5dWW+Bb3RaZmJea25gcE9ZalFEU2ZgWWptbXxuWVtdbGJaYm92ZGdcXWBraWNranN2gYNxbn98gHR1g3qDg32BhXZ+iIGWkHiEinSBiHJ4eX6NkG9veoBxaYF4en5tbHt1lWpqd4RzbJONhp+Zn5mFh259i3Vpd5aNfoGKgpSXinqQlm97dHFramRgc3toYGVxelpgcnx5Z3F5YGVlj7Gyd0tiWqXZ0JZxepCKj3d9k4qEmJCLhW5rhZGRenmShoGEmIp8hn93d4mKhJaAb4uIcXV+e2p5hYOkkIOTjYSAcICEeIZ7iJ6blo2VkZaFiHB7k4J9goKIgm2BdmiAhXhygIGDioh8ZX5/hXZkcXOAaXlxcHWZjoaDin13eYGFeoNrXHJ/c4KJhop+h4p8iXOCbnKGiJGHh3SGe4KajY6FeW5ufYN+dXljZWd6bl1YdlpXcGtOV3FyZmBLbHd0YV5cW1p1fnNwWGdeZ2pyYG9OV2dSP1hmXlpvamd5cVtaWGplWWNweF9nXF5lbGdma2lxd3+Hb2x/foB1cIJ7gIJ/gn92gYSIl4lxgo1xe4Z8enmElIx1anl+a29+dH98b3J7epNvboF+eGeSi4KhmZyRgoVmhoJvZ3mUiH1+hIKYioF8jo1oeHNra2ZfYW94bV9ib3hcZGuCeWFxdV9lZdTqvYsyOj6Ljn9xeYWHjY11gpaMfpKNi35ta4SMjHV9j3+FgZSIfIJ3bnaHhIOXd26IhWx1e3VmeYKDpouCjouEfm6BdniFfImfko+Sk5SOjId/e5KGd36DjIJrf3FogH55bnx8gouEd2J6hYJyZHJpfm51cnWCnIyBgIaAdHZ/gXSCcFxugHV5jISLfIiBfol5e3JtioWShY10g3qAmIyLgHVtanaAf3RzW2dndW5XVnxTWW9kTFpycmVbSXF4b1xbW1lddX91aVpiW2hmb2RqTVdlUD1dZVxddWVgdG9aWVVuY1lkcXlaaF1gZ21naWtpcHd9jmxpgoR/eW6AfH2Bf4J6dYKBjZOEcIGLbnh+gHt7iJOJf2h6fWpze3KGenN2fX6MeXiEfXxri42Dm56Wi4GAbIx9amh+jYt6fX6DlIJ+fYqIa3VxZ2hiW2Jncm5fYWtzYGhwiHlic3NeY2SboI9uXTZar7V0aYCIfJGGdYWVhXOOiol2b2yEgoZ0eYl4iXySh3l+cmd2iX5+mG9xh39pdnluZnmHhKSHgIeMin9vgHeCg4CPnImElpOZioyFiXyQiHB6fYR7aH5saoB7emp7d4KIgXJgd4F+cmRyZ3aDbnV8hpaSgn2DgXB4enx1gG1ZcIB3dY2Dh3iIdoSJfHl0b4uCkoKHc4B+f5SJinxvbmltgYF0bVtlZHFvUFp6TltuW09bcm9kVUtzeGlXWVpaYXGBdWFeXWBnZGlpZk5ZZ01AYGNbYHVgXXVsV1dTdGBaZG9yV2peYmhrZ21saXB3fJJraISKfXxvfn57gYCBeneAf4qLg3F8h29yeIN/e4mMj4NpfXttd3h2i3Z8eH+Chn+Dfn16bYSLh5ijjISDe3WKeGpsg4eQeH16gpGAgH6Lg3BycGNmXllnX3BvX2BncGZqbol0YXRvW2FkanV6gL+cpqTIuHGEgnKSe3eFkoJzkIuHcnJvg3uDc3SHdIh3k4h5eXBjd4d6gJNpcoR3Z3d1Y2p8goedgYB/jo9+c4B1h3uClZKFe5iPlpCIgol7iYlreHl+dGd6aGt/eXRpeneAg31oYHiIfWtrdGh8gWl2goySlX98f4BxfHd8dIBjVnh+c3SLhYJ9hHKIinl5cnGFg4+AgHp/fneQhoR3anFobIeBcW9cZmBxbElkdUtdbFRTWXJuYlFPdHhhUlhYXWFwgnRdYlxpZWVka2RQW3BJQ2NgW2NvXV14Z1RXVnZeW2ZuaFZrXmFqZ2Vubmlwd3qSbWmIjHl9cnt+eYKBgXx2fYOIhoNwd4RybneCgn6Ii5N/cIB7eHl6gYx0gnh/gYGChHqAdW9+ioubnod9hXl3hXpndIWLkHl+f3uIhYR3kIBncG5fZFxYZVlscmFgYHBsa2iJbmBzaFleY25/d6naqceGh7JxiHdvjHR6hY1/eZKJf3RzdH13f3Bxf22EdJOFeHRrYHqCeYmPZnKEcGh1blttfYCQk3+AeJGTfnl8bop4g5ONhneYjJOQiIaFfH+FbHR2fmxndmRte3Ztand3f398YWJ4hnppdXVjfnxodYePjZZ9doF3cYB7fW6BWld1f3B2hYh/gHptiod1eWx2goSFf31+en10jIJ+dGh0ZW6Kg2xyWWhdc2RGbW1LWmBXVlV3bWJQUnR2WFBWWF5gcoRwXmFjbWVkXm9jVFxxRkJlXl1lZ11bemJRVlx0W1tna2BWal9gb2Zma3BocHZ4jnRrjo11f3Z4fXeBhIF7dH2DiIeDb3KAdHF1foWBiY2KenZ/eIN7fIaHd4d8fYF9hIB7fnJ1eYuNoIyIeYh2dIJ4Xn2Fl4t4hoN0hYaEeIp7Ym5sW2JbW2FWaXNiYFtnbnBmh3JhcWVXXGJrf3zKzoe5oWptbYpscYNxe4OJfnqQhHl4c3h1dHtqbHZjhHWRgnZvZl99gnqMimVygmtqcWNYbHqFm4iCgXKWlXd/fW+Kc4WNjop0mZCSiYaLg3t5fXBwb3xmZ3FhbXhxamxxeH19el1leoB4anZ4ZoN3aHSIjI6WfnOJa29+gnlvfV5Zc39udIGLfIJvcIqAcndpeIGCgYN4f3N7dYh9e3Nnc2Fui4BrcFZpXHZbR21qTVZVXVNVe2thT1R1clBRVFdeY3WGaV1gbGpmY1pvYVhib0dBZ1xgZV5cVntdTlVlcFlbamhdV2dgX3Jma2dxZ3Bzd4Z4bpWLdH96eH55g4h/dXJ/h4WOg3BwfHh3dnqFhYeMhnl7f3SLfX2GhIOHf35+fYZ+fHl1eHeRk59+i3yKbXV/eGOChpWGc5GKb4WFgXuEdWNuallfW1xdVGdzZGBYY3FyZ4ByYmtkVlpfan94vq57n7duYXOFaHN6cXiBhXp9i353d3J2b3t2ZWpvYYd1joBzamJefnl5i4RmcX9oa2taVm93iaOBhX9wmZNygXp2hG+DhJSKdZeKjomFiYV9eHRxbmh4X2psYG12amdqbHl3enZaZ318eWZzfm2FdWV1ho6Gl4BxjWhre4R1bnZjXXF9bHV9jHuCZ3aIfm9yaXeAeoCBdH5te3yDe3hxZmxhbYl9a2xVaV92VUppak5STmdMWHtoYU5VdWtMUFRVX2d2hGdeYXFoZ2JYaV1ca2dKRGpZYmNWWVV5WU1WbWpZXWtkXFlkYl50ZmxkcWdycHWBd3GZhnZ/fnd/fIWHfXVzgoiAlYNuc3l7enRzhIaJiYN4gX11j358hYqNg4KEe36Kg3t3fHd3mpyXeoiChml2fHtsg4OSgHKOgXGGgn+DgHBmbGdYXVtcW1NkcGReV2JydWl1b2VlYldbW2h/cG9ygHOJZGR5fWlzdXNygYN3gIN4dnJ1bWp6cWFna2eGc42DbWZdX31we4l/aW14Z2pkVVdyb4ymfIR7dpaRdH10fnxvfn2TiHibfYmHg4eDfXVwcWxndFxsZ15sdGRnZml6b3tyWWeBd3VocIF4gndid4aLfJWCb41rbnuDcmd0ZmFuemhzeIt7fmN3hHdrbHJ1fHJ7e3V/aH+AgHl3b2RmYm2Fe2xqVWhhb1JKaGpPS05vR156ZmFNVXRkSk9TV2Frd39mXWd0aWZgV2RXYnBcS0tqV2NhVVRVclZLWHVkWl9rYFtaY2RfdmdtYnBpdG9yf3V0mYJ3f4B4gH+GhHp8dYKEfpeFbnJ0fHp1cYSFj4GAeot2c5B/fIGVjYCFhH19jIZ6foB3e6OlinmHhYNrdHt6dYKAi3puhHN5hH2Cg3ZvamllVl1bWlpTYm5kW1hhc3tqaG1pYGJYXlppf2lrcIBnbGBoeXhqcnNzbYOAen98dXRtemdpeWpfZW5ogXaPhGdlWGJ3an6He29qcGdmXVRYb2eNp3aAenyQjnp2cYBxdXh8k4J6l3aGhICGiHZqcnVnZ25bbGRdbXJfaGFqeWh7bFtug3J0anCBfnp4YXeGhXmQhXSJcnB6gXNjcmpdcXhlcnSIfHljdIFxZ2p5dXNteXh2eWWEfIB5d3FkZGNte3xqalRnYWVTSmtmT0dRakVheGZhTVNyXUpOVVllbHh8Zl9ucWplXVZhVW5uVkpTZ1dlXVhNVWtUSVt5X1tfal1dWmJlX3lobGFvb3ZucHh1eph+d3+BeYCAh4Z6eHmDfoGTg3F0dH56dnSEiJF9gXyRa3KVgHuDn4V+h32AfoaCgIp7d4Srnn96h4eCanKAeXWAfoF0boZufYBzioBqcG5kZFlfWllaVGJqZ1taX3WCaV5tbFxhV1tba4FlcXR9aWlca3Z1Z3N2cWyEe318eHVybHlmaXdmXWRzaHp3koFjY1RlcGiChXh4Z2lqYVdWWWdjjqdvfneAi457cXJ/aXtxfY9+eJBzhX6AgIZuZHZyZGdnXGphXW9vW2hfbXVlemhddIBvcmtyfH51dmJ1hox7iYiBgXlzdYB2YnFuW3J0Y3FzhXx1ZXOAbWFte3Branx6dnRnh3d7enZxZWJkbXJ9aWpTZ11cVEtxYlBGVmBHY3ZmYUtTb1hLTVhYaGt2e2VlbnFnZFtXXVh3ZVRKXGJXZ1dZSFdkT0dheFpdX2xaXlxiY15+aWpgb3R4bXBvdoOYenKAgHx/iYyGfXV1hXmHjHxzdXWBeXp6gYyOfH6FiWlzloF6ipx+foV6gXt/fYaJc3GPrYt7e4aPfGVxh3lzfHp1cm6FbHt+bI96Y3BvYmVeZVZZWVdjZmtfXVxzhWhYcW5bXlhaW2t6YnB3dmxhWWxzc2d0dW9sg3h+f3h2bW5zZGh0ZVtndWZ2dpF6X11SZmdrg4J0fmJkalxUV11iY46kaXhzg4aReW5xfGp6b3+JfnaKdIJ5fXmAaWR2bWBmX15pX110a1lmXW9vYnplXHd8a25vcHh5dHVlc4STgIiDiXt3cHN+dGN4ZVxxcWJxcoJ8dGdzgWVfbndqZWh6fXVvcIN2dH1zcmJfZm1ufGRoU2ZXWFNNdl5QSVlXSGJ0Y2FJVG1TSk5aV2pscnxjbW1zY2JaWlthd1xTS2NdV2hTVkZYX01GaXVYXmBsW1tfYWJdhGloYW54eW1wa3aBkHltgn6AgZOIhIF2dIh0jIZ0cXZ2gXh9fX6MkH9+lH5wd5WDfZmSeYCAeHp9f3SIhHRxmaB6en6HlHdjdId4cnd0a3Rvfmt4fHCRc15wb2BnYmxUWlpXaGNtZlxccYllU3JuW1lYV19rdmRpdWppXVltc3Brc3NzaYR8fn56dm5ta2RpcGNbanJkdHaOc1tWU2VhcoB/coJdYmNdU1pgXGORn2VxcYWEknVsbHtvcHJ9f35zgniBdHt6emRldWddYllgZ1tedmhXYl1waWF3YVt8dmlqcm94dHN1aXGCloSHf4V3dGtxfm9neFhdbG5jcnOAenRncH5cYHByYmBrc39tbnZ/c3F4a3BhXGVsbHpgZlJlVFdRT3VaUU9YUUhjc2FgR1ZqUUlRWlZra2t9Zm5vcmJbWlhZbHFXUlBmVlZoU1RFWVtOSHF0WF9jbGJYYGBgXYtqY2RtenhscGl1eYd7a4N9gISafIOEeXyIbo+Hcm52enx0goJ8i4+Cg5h0eIGThYGeiXWBgIJ0f4JxiIN2cKGWc3mFioZ6ZHaKbm56bmZ4cHlrcnZzjWtedW9hZ2VrUl1bVWdhbGtaXHGMZE9vblxWV1RmaXNoYnRlZFxYbnRsb3V0eGqGfH97h3aPc2Nka25gXG5tY3N4h2taVFZjZHh9fXGGXWRfY1RaX1lilZVjbXCDhYp0a2l8cGd1eXZ+bXt1dnB7f3VfZnNjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXRxdHF1d2tthZSCiX2HcnNncH9ydHBUXGdrZnJ0gHZ0Y213VmNybFtfcGd+Zm54fnN0c2ptYVpkaWp3XmVTY1RVUFNsVlBWU1BHZHJfYUZYaU9JWFRXbmllfWpseGxiV11VW3RkU1JXaFFYZlRTR1lZT013dlpfZWtpWWFgXV6ObmJma3l2bm9pdnaAf2yDgH2HmHuAh4CJf2uTiHJmdIB7dYCDfYmOf4yTcnyKkYSHn4Z7f4aNdIGGc36Ddm6ki3KAjIp2dmx5i2Bke3BmeXN4bG1yd4NnZHxtY2ZnaFNfXlVnX2tvW15ujWhOaW1gVVZTbmZza2V4ZWRcWG9zbHF6d3Jsh3t/dpt6eWthZWxtXmBvamVxeH5nWlZYYGx4fHtwhF9jXmdWWF9XY5uIYmtwgYd9eGxsem5deHRufGt2dG9wfIFzWGpuX1lcVWFiV2RwYlNfYmliYmxaYX5sZmx0dm9td3dsaYaNgIp7iW5yZnJ+bnRuZFthaWlwdIF0c19pbVNlcWVWY29kfGRzeH13bHBta2BZYWZndFxkVWBVUk5XZFFPW05PSGRvXGJHWWlNSl9LWW1kYHlpbn5lYFVfVF11XFNSYGZOXGBVUklbWFBZdHVdX2VraFhiYFpejXFjZ2p4cXNuaHZ0e4RygoN6iI5+fImIjXlukIl0a3OBdH9/iIWHkYSWj3l9jI+HkZuEgHyNhXOAgXN0eXNvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fn5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKSkpKSkpKSkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY2NjY2Njo2NjY2NjY2NjY2NjY6Oj4+Pj46OjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpOTk5OTk5OTkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6OjY2MjIyMjIyNjY2NjY2NjY2Njo6Ojo6Pj4+Ojo6NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyQPi4xMTExL2+HhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmOAvru7u7u9s21mZ2dnZ2dtbm5ubm9ySiwwMC8vLEmFg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjI8tGh0dHRwaaIWCgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fW37IxMTExMa7Z15fX19fX2VnZ2dnaGs9Gh0dHBwYO4OBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkYmIiIiIiIeNkJCQkJCQjIeHh4eHh4mSk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJjJKRkZGRkZCJiImJiYmJioqKioqKioaDg4OCgoKEioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRk5OTk5OOkpKRiYeOipCSk4+IjY6OjoWKkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6Mi4uLi4uLi42NjY6Ojo6NjY2NjY2NjY6OjY2NjYyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCRioaOiYmOiImQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJGKhIuNiZCJi4+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+NiIyIj4eNj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4aJjIiNho+Pj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2Ni42Ljo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn19f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWFhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/f4B/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn+Af35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhoaFhoWEhISFhYaGhYWFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Qjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX1+fX9+f39+fn5/fn99fn9/fn5+fX9/f4CAgIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f39+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f4B/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX1+fn5+fX5/f35/f39/f4CAf4B/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39/fn+AgICAf3+AgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f39+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnY2NiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk9PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+f39/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+AgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUlFRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3ent8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9PT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTU1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgIB/gWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09OTE9STllwcHJ3eHd3dHR0d3p8fn1+fn5+fn5+fn5/f4CBgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT1BOUE9QYHBwcnh4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gH+AgIFzUFBOTlBNSktQUlBOUUNEQkFGUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUJBQEJBPzs+PD4/Pzw4OTk7OzpAOjs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnd4eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYGCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4ODo4Nzo8OTc4Ozs+PTs7Ojg6QEBCQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdXN1c3F0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7PD9AQUJAPTw5PD08OTc5Ojo5ODk6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklOSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+Af4CAgICBf4CBf4GBgYBWTE5QUE5SUVBQUVFOOD0/PTw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozw6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAgH9/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQj89P0NDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFBQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz9BQUFCQUA9PD07Pj46Ojo8Ojg5ODg6Oz1APzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkZISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dnd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFAO0JDQkNAPz8/QD0/QD48PkA/PT09Pz09PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxwcHBxdHV2eXx8fXx8fn59fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQkRDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkA/PUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHx8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjs+PD89PDo+PT9CQkVAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHRUVGRkZKTk1LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRWVvcHFxdHZ1eHt8e3x8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFDREI/PkE/QURFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm9wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gIGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRklISUdISElHRkJERkREQ0FVdIeJh4eGiIJXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0dKSktMTExLTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent+fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4GAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLS0tKS01KS0hIRkZHRkVQbISHhoaGh4eIh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz8/REZHREVHSUtJSUdISUdJSUlKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9f359fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTUxLTUxJRkpWbIGGhYSEhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lIS0xPTk5RTlFecoGFhISFhYaHiIiIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7PDw+QTs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BCRkhLSExLTlRne4SEg4KDhIaJiouMi4qJiouMiVQ6ODY1Njc2NjY0Njc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc4ODo7NzY4ODk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn9+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSEVCQDU3ODg9Oj1EQkRGRkRWeISEgoKDgoaJioqJiYqKioqLiYqKgUg2NzY0Njg4NzQ1Nzg0Njc3OTk3NzY3NjU6Ojs6Ojw4OTk5OTg3Nzo6Ojg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT1BRV2txcnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBQDw6NTc5ODk3OkE5PEQ/UH2Eg4OEhISGiYqKiIeIiImKioyKiYmMej46ODg7PD0+OTo7PDg5Ozk6Ozo6OTs6Oj49PT87Ozw9Oj48Ojw7PDw9PDo6PDg6Ojs6OTk5PD88PUFCRElJTEtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj87Ozw6ODk5ODk5OTk6Pj0/P0N2hIOEhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVCQUFCPkBDQUA/PT4+QD8/P0A/QD09P0I/QUE/QT89QUFAPz9BPD48Ozo7Ojk7Pz07Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUJBR0pOT0xJR0s6ODo7OTo6PDw6Ojo8Oz0+QD89YYWDhISFhIaJiYiHhoaGh4iJiouLioqKi4mLXj5ER0lLSkpGR0dERkhHRUNBQENFQ0NAQkNCP0BESEVDRURFRUFGRUZERkZEQEI+PUA+PT9APj8/Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3OT06PDs+PT4+Oz48Pz9DPkp+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqHV0dMTE1LTklJS0hJSkpJRkRERkdGRENGR0VCSElLR0hHRkdHRUtKTElKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgH9/gIB/T0E+PT9ETEtAQkJBOTc7Pjs8Oj0/Pj88Pz5CQUU/aISChYWHiIiJiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtHRUdISElFRUlHRkVMTE1JSkdHSElKTk1PTUxOS0hHR0dFRUNGRkZGREVISEZDQT9ATG1wdHV2eHl5eXx8fH19fn5/fn59fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw6Ozw6PT88PT0/QENCSFN+g4SEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMTExJSEhGSkpFSkhHS0pJSkhIR0tMTkxMSEhJSk1QTk9OTU9LSUdJSkhJRElISEZGR0dJR0NCQUNVb3F1d3h6e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH+Af39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6Ozc8PTo8Pzw9PkBCQ0NMbYSDhISFhYaHiIiIiIiHhoiIiIiJiYyMi4yMjIuLi4teUlJQTU5NS0pHRkNIS0dMSkZLT0xLSkpMTUxPUE5ISUtMT1FRUFFPT0pJSkpNS0xGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl7ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgIB/f39/VUVDRUVHR0VEOz9BOz08OD89PT5ARUQ+QkRDRkp0hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtLRUZGS09OT1dWUVBPUlNSTVNUT01TTFBTVVdSU1JQTEpNTU1MTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkVHR0dHSEY+QEI9Pz08QT9BQURUS0JISUZJS3iGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBLOztRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFFRS0tLR0hKSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0ZGRT8/QUBFQUNGRENES1ZQSlBQTlBQeYaFh4aFhoeIiIiIiIiIiIiIiIiIiJScjIqKjH1hiouLh2xbZFU6WFhYU1E/QFZVWVxkYFZZYnJeXVZdWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01LTEpJSUxNS09NVHB0dnh5eHh6eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SExJTVBLSUpPU1JRVFZVVlR1hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JXVlRaWnWDWVV9kGFcWF1eV0lWXl5bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJidHN2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktKSUlGQkRAQTpPUVFXWFBQUFFSU1JWV1dXV2yBgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaWlhcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdHd2dnR3eHh7e3x9fX1+f35+fX59fX1/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpaUlNRT1FSUVVSVVNWXnV4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWFdXV3prWFpcXF5TUFBPSU5PV1ZYWlpkcXR3dnR0dnh5eXt7fH19fX5/fX19fn19fn9/f3+AgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU09PUU9RVlFTUlJUY2R2gIOCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JVUk1PWVFNTlFTVVVNUVNSUE5MS0hDSUdSU1RZXW1ydnd1dHR3e3p6e3t9fH19fX59fX1+fX5/f39/gIB/fX1+fn5/f4CAfnt2c3d9fn5kdX1pcXRgZF1dW1lVUUxITElhbJJ0UFFTTVFSUFNbUlNSUVJVVWJze3x+gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5CQkNDQT9EUENDQEM+QkhHVkBITk1HXWlRSEdPRkRFRkhHSEJDSEdISkdEQUFDQE5QTVJkdHV2dXR0dnl8e3t7e319fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUlJQVVlTVVFRVFJPVmBrbHN2ent4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojo+QD8+Pj5qUEthRUZISUVCP0dMTUdNUVVKQkU/Pjw9PD09Pz0/QUNCPz48PUI+SU1GVW91dXZzdHZ4e3x7fXt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKT1BOS0xRUlFUVlVXUVFXVlBYW2JdYWdtbWxuamhgbnJpbWxxdXt6fXt4enx8eHd4ZEJAQEE8OkJDQUFDQVtcT3tOT09OS0xNT09QTEtMV05JR0FBPDk3NzU5OT07Ozs4OTg5PztCRz5cdHV2dnV2d3l8fHx9fHx9fX59fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT09eXFpJR09RUU9NUFFOUVJUVlhTUllUTllaW1dZXF9eX2VfXV5xd2teYGdrd29vbGpvbW5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FWUE1JREY+OTk2NTg3OTc5OjM2NTc5NTxCPWZ0dXd4d3p5e319fHx7fH1+fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LU1RTUFFVT0xSU1RXWFNUWFFMWFlZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRkNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnJ1eXl6e3t9fX19fHt9fH1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdTW2ZKTFBSUk9NTU5NTUxKRlBQVVlTVE9KTk9VU1RcVlJVU1JOTUxJSEhGPz49Ojc4NzY1OTk2NzY2NVhxcXR4enp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFdZWVlSVU9JR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlAUT1jYFFTUVBNUFBPTk5NUE5UUlBSTElMS09SUFFSUlRRUk9MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVlFTRkZBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjRAPmpvYVJSUUBHVFFPUFBRTlFPUE9MSkxMUFBOTVBRUU5RT0pMTU1LR0VFQ0I7PT08OT1HNjY3NkVucXV3ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVVlZVlFRUU9APjs9P0BCQUNAQkVEQUBHSEdIRkZISk1MREdDT1JDOERNU11nU1FTQUdVUE9RUVBNTU5MSkxLTE5PT1FMT05NSUxLSUtLTEtHRkZFRDxBQT47QEU7PDg5VHJzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E/PT1BQEI9PUVIRkRGRklHSkpARkFBQEZHRElPSFFSYVxRUFJPU05PT0xMT01LTUxNT05bVktNUU9HSUhDSUtMTEtGRkZFP0JDPj1CRz9CP0BkcnV3e3p7e3x7enp3fHh5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRUpFQ0hHSUdJRUJCPz48QkBAR0pFTU9iZVBNT01XS0xOS0xNTUxMS05OU2RNSkxSSUlJRkJKS0xNTkpHSUZCQkJAP0VGRUhETG9wdnp5eXt7enx6d3N4dXh8fHl6bnFxbW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPSEtFP0I9OTk6Oj9CPzxBQkFBREVHS0ZESUlHR0hDQz9CPj9AQD1DRURMTVFUTEpJTVRGSUlKTElKS0lJTE1PUFFQS0dDS0hDQ0tLTE5PTklKSUdDQ0NESUpNTElac254eXh6ent5fHZycHVydHl5dnhqcW9rbGxudHRtc3Z7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0NGR0hHSktJSkxER0I8Pj06Ojo7QUI/PUJCQ0NIRUpMSkVJSUZHSENDO0FAQj5AP0JERElNT0dISkdIS0RISUtNSEpMSElKTEpNXVJISUROR0JFTExOTlBOS01KS0ZHR0pNTlJOTWNuand2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnp0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGhlcEZKQ0ZFRkRFRUZFR0NDQD08PTo7OjtBREA/QkNFRUlGSkpMRklJR0ZGREI6QUNDPj9DQ0NFR0tNSEpOSERIRUlMTk1ISUxHRkZJSUxOS0lIRU9JQ0dOTU9NUE5OT01LSUhJT1NRUk5TZ2dmcm9zeHZ7enxsaGpvZWtwbXNxZm1saGlrbHRtb3V0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZl9wR0pDRUVEQkJBRUBEQj4/Pjs7Oz47PT9EQj9BQ0ZHS0dKSUxIR0dHRkVDPz1ERUI+QUNCQ0VHSElHTVBJRUZHS05PS0ZISUZFQ0RJSkhLSUdIUEtESk5MUU5PTk9QT0pKSU1SVVVSUFhlYWFtZnByb3J5emdlaGhjaWxmcWxmbG1naWtsc21wd3V0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VERkJBQEFEPEJBPkE9Ojo9Pzs+P0FCP0BCRUdKRkpHSUdGRkZEQ0JBQUVGQ0JCQkRFRUdHSEZMUExITkpKTEtJRkhFRkVDQ0hJSEtKR0tSTkNPT05RUE9PTk9QS0tLUFVXVlZUWWBfXWlgbmluaHJzYmVmZmRoaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxc2trc01HR0VGQUJAREU8QUFAQzw4Oj0+OkA9QENAQEFERklFSEZGSEZFRURDRUJESUZDR0VBRUdFRkZHRUlNS0hRTUpLSEhJRUZISEVDSUlJS01LUFNORFJTUlFTTlBNT1BNTE5TV1ZYWVZYXlpdZGBpY2ppZ2tfZGVmY2hnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJFRTxAQ0JEPDc6Pj47PjtBQj4/P0NFR0RGRERHRUNFQ0RGRkZKRUVJR0JHSEZHRkVDRkpKR01LTEtISktGSUhKSEVLS0xMTk9SVE9IVFVUUVRQUk1OUU9NUVdaVlpZV1peWlhhYGFgXmhlY2BkZWdnamhoamdobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lOSEhHSURCQ0hFPUBFQkQ9ODo+Pj08PEJCPUA+QUJGQ0VDQ0dDQ0RERkdHR0lGSEpIQ0lIR0lHRkRIS0lHS0hNS0pLTEhLSk1LSU5MT05PUlVWT0xWVlRRVFJSTE9RUE9UWlpZXFpaXF9fXV9jX1xiZGxjYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUxJSkhKRkJER0U9QUdEREA6PD5APz4/Q0I8QD5BQUdDRURDSERFREZGR0hGSEdJS0pFSkhISkhGRkxISEhKR0xLTExMSU1KTU5NT0xQUFJVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYGBhYGJmXWRgZmdgZWlqZHNzZmpoZmxwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3c2d0cmtxcmtyd3B3SkpLSUtHQkVERTxBRkREQjs/P0FAQEFEQUBCPkFDSEJFREZHRUhFRkVJSEZJSEpMSEhKSklLSkZKS0hJS0pHS0tMTElJTUtNTk5PTE9RUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWJiYGRkZWJkaWJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV1c3Bzd3R1dXd2dXV1ZnFza3BxanJ2cHdKTExLTEdDQ0FFPEBFRURDPUFBQ0JCQ0VBQ0RBQUVHQ0dHSEZFSUZDR0pHR0pGSUxISUpNSk1MR0tJSExLTlFLUlBMUkxKTU1OUFBQVU9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5hY19hZmNhYmhuaGJpaGhteHZtaGlub3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnNxcXV2dXN3eXd1dHVjbXRrb3BqcXRxd0xNTExMR0RBQEQ+PkRFRkM/Q0FFRERGQ0JFR0NCSEZCSEpJR0hKRkRLSkdISkhJS0dKSk5LTkxJTEhKTUpaZkpkW0psUkdOTV9uVWxzW3FwYndjUlBidnVodWNhdmFYbnFiZHZpbXpmXGx0YGxrVmB3dmlqZ2hmZ2xtam1vam1vc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cnFzdHZ2dXV5d3V0dGBrdGtwcGtxc3J5TE5KS0pGQj9AQj88RERGRENDQ0VFREZCRUZHRERKRUVKTEtJS0xHR05JSEpLR0tKSUpKTkxNTUxMSU1NTFtzYmRwXWxsVUxOZXJdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9ccHZncE9Mcnl2a2Fha2VlbHhta3ZsbnBzcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd5dnR0Ym11a3BwbHJycntLTElIR0VEP0FBPz1CRUZCRUNFREVFRENISEdEREtIR0tNTUpMTEZKT0hKS0pJS0pKSUpNTU5NTU1LTk1OW3Jwb25wcGtqTE9QbVhOaWJ0cnBhbW92XFlsUFttbVpxbWtwbHh4dHNpcFxgc2xxa1V1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dFRURCQUI9Pz9FR0JHREhFRURCRklISEVHS0pHTUxOSkxNR0xOSU1LSElNSUpJSkpOT05OTUxOTUxcaGR1XWxxVmtNT1FuVVprXmtsdmFsZHRUZWNObFlsXHRvbGpseGp3dWhwXV9za2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cnNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1GSUVFRENBQjxCQEJGQ0dGS0dFQ0NIS0hIRklMS0ZNS0tSUkxITU1JTkpJR01HSkpISU5PTU5MSk1NSlp0cHBvcXFsa09RUm5Zc2tnb29xcW9tdF5uWGF0X25vcG9xc29vdXN0dGpaXnRjd3hyam56aGFhY2ZhYmptdHVwc3V2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXRvbnNzdnRJS0hKQ0RERUBAPkNDQUZDSElNSEZDRkpMSUdGSk1MRk9KSldSS0dMS0tOSUlKTElLSklJS0xNTUxJS0tKU2tiWWleX2pjcnJaX1lqb19lZVVrX2NbYWFRYG1oXGpcbmlqZFtvZWRwXVpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVudnFydXR3ckhIRkpERUNGQUBBRURDRkJISkxHRkNGS0xJRUZKT0xJT0pMW1FKRkhJTE1JSEpKS0tJSElHS0tLS0dISklLS0xKSUtMTlRbXVRQVU1RT05PT1ZRT1BRTk9RSkpOUFFkcWlUWVZbW1xVWVpdWF1cXGNmYWFmYmNmX15ma21obXR5cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzSENFR0ZGQEVDP0NHREZHQ0lLTEdGREdKTEhER0lQS0xPS0xXTUlGRUhKSkhJS0hMSklHSEhKSEhIRUZLSEhKTktIT1xXXk9cXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZFxhWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRQQkNETE1BQ0NCRElFR0dGS0pLSEVFSkpKRkVISFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdGSkhFRkdFRUpGQklMSUpTX1lgWGBhW2BVWFpUXV5aX1JZXFBeXFlOX1xeU1teZF5aXWBjX1lfYltgXltVWVlaX15jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN1eXp6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURDQUNGR0VHR0lKSklJREZLS0tFRklJTkpOTEhMTkdIRj5IR0xJS0tKS0tJR0VJRkNERUJGSkQ/SUtITlpiWV5eYV9SVFNXX19cXVleUVlcTVZfV0tRWVtRW19iYV1eY2FgYmFiY2NlWlJaV1ddWl1kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WVFKRkRHRUJESEhGR0hJRkdKR0hGSEtJS0RESkpNTUxMSEpKSEpHQEdGTktLS01LS0tJR0lFRUBEQUhJQT5ISUZPXWBaW2RdX1RRUlhdXFxcX1tLV1xMUlxZSU1eUVFdX2JjY2NjYlxkYmFkY2ZYUldVVFxYW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoaGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1DQElGQ0VLSUZHR0lHR0pHRkZJTEpORUNKSkxOSkxJS0tJSUdDSEhRTUtLT01LS0lISEZFP0VCSEhBQEZFQ1NdWV5YX1hfW11VWFhPXVxRS0pWXlheW11WWmFSUl9fYmJgYGJiX2NiYWRkYVhQUlJTXFNcXV1eXl9fX2RpZ2xrbm5we3t8fnuAgoOEhYWFhYWFhISFg4SFh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTEpMTEpJR0RIS1FPTUxQTU1LTElKREVBRUNIRkFBRkNBVVVFXFReU1dgWE5UVU1ZWkxKS1RgYVtfWF9eYl1PWWJcYGBfYmNhXWJhV2BfVVFQUVJZU15cW11dXmBiZmZmbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGSERJU2NRRVdfSUdHSERGTUpQUEZJSUpLTkxMS01MSkpHRUpOUVFOTlBNTk1OSUxCRUFDQ0ZDQkBDRD9MR0NMTFBPT01GTUZGSElHRkxLTU9QSUxPUFBTUExRVFNVWlhXWVdXY1ZOUlRQUVBPUVZUXFlZW11cYWFlZmRoZGxtcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtOXk1ISFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS1BTU05QUE5PT09JTEZhRUReTERmYkNMWkdeXHNtT01WbllLQ1BfVGtWZ0pdWFVeRExRVUxNU1ZRUlRYVlRYVFRcVE9lWmhoZVpVa1RYV1VbXFtgYGFiYmNhZ2lnbmxoc3p8fX6BhISEg4ODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFTFBUSktHYFRISk9KSU9NUlFLTUtMT1JVUk9QSkxOR0hNUVtZT1BQTlBRUEpLUX9RSXxZWXJzV1BtR3Fub2FWUHFxdE9Ca3NtcXNwU29fW25YXVZcWFVraFVdVmNZYFlaXlVVV39pdHV1YGF2X1liXFxmW19hYWFiX2FjZ21vbWBwd3R4gYGCg4SCf31+gHZ4em12fnR4fYB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxLT0hMUlhXUU5PT01RVE5PUVBMTE9HTVBTW1pUUVJPUFBRTElaeF1UeGRoWFJTUHZmdGxwYm5ma1JyTkx3bWpycHNycXJwb2+AXWV6dXhxcXpxfnJ9a3V9YVJofGVzc3Bzc3x9cH54b39yYGBgYmJbYmFobG5rYmxmZ213foGAg357eHeAdHZ6aXF+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRE1NSEtLSEtQT01OSk5WXllVTFFTTllZTFNTU05MUElRUlRZV1dQVFBQUFNMSGd4bGN4cW1aSktUeXB1bXVibnZQZGRIZXZxbXdvgGpmeHhpV3JRaHptaWp6en5seHp/cGhuWHV1anZ1cYFhc2h9aWx4fG9fX19jYlxfY2VnamplZ2JjZGxtcHBzdHNzc3lxcnhibXRncnl7c3N1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFFIS0xKTFFPT09NUFpgWlhLU1dQYV5SVlFZU01QSlNUVlhXV09VUE9OUktMcm91dXF1cWNoYFVuS3FwXkdoeVd2VEtoeH13YHl7c25hXW1vZFNncnVubXlwd2t1c3RxbG1cc356a215fGx1bnxrcXd1eF5fX2JfXmBlZGlnaGZlXmJiaWlpamtub2txbm1qcGFjZmNvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUUtNTkxMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRXV1lXT1NPT05SSVJtSGl3S2BkdnZUVmxObmx7cmFqZ391VEtXa2d8bG1seF9acHp7X2B6c2Nyb3hxZ2N8aXJ7XVRLbF92dWxqdnx7bn95bHxwXV5eYltfY2VlZ2ZlZWNbY2Npa2tyc3J3Z21paGRnYGFsYWdzcmxnbG1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTExTU1JPU1JYUldUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FLSFFOUFVMS0tSU1JRUk9WVVFRT1JSWFhQTU9VVFdYWFtbVVFSV1tXWFdbT1JUV1dYUV1YVlxVVE9YUldXWFlaYFxoc19cW1tdXV9jWl9kZGVnZGRkY1pkYmdmZm1ubXVmZmdjYGZeXWdgZGxoZmdraHB6aGdna3VqaGdpbFBJS0tMTUtKVFJOUlFQTFZWVFBUVVhVWlVSWl1VVVRXVVlYT09MTldUUE5VU05QTkxRUEtJUVFLUU1KSk9RVFFQUVNSSkhNT1BRUlBQUFRVUlhXXFdTU1BRVVVWU1pRTlJSV1RSWFVTWFRTUVVTVVVZWVheWl9hXVxbWlxcYGNcXmJjZGdlZWVjWmBhZGFiaGhqbmNhZF5fY11aY1xibWFeZmZnbXNkaWhra2VkY2doUUpLS05PTE1UUU9UUVJNWFdVVFZYV1daVlNcYFZXVllVWFRRUEtPWFNQTlVQTlFPTFNQTU9VU05RTk1OUVNQVFBRVFROS01PUlRUUVFRVVdVWVpbWVJVUlRYV1ZZXFNPU1RXVFNZVFZYVFJRV1ZWWFxaXGBdV1lfXV5dXF1hYV5bYmNjaGdmZGNYYGBiXmBoZWdlYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMUFVQUFRRT1FaWVhXWVpaWFhWXWpkVlhZWldWU1RPS09WVFBPVFBQUU9NUlFPUlhUUVFPTU9SVE1XUVNUVU9OTlFUVlVSUlJUWFZaXVxaVlZRUldYVVtbVlBTVVVVVVhTV1hUUlFYVlZbX1teYF9WX11eYF1cYF9fX1pjY2VoaGVlYlliYGJeX2ZkY2BiXVxcXFxZWltYW2FbXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVlxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVdTTU1ST1JTT01QU1JVW1VUUFBMUFdVUFZRUlJYTU9QUlVYVVRUU1RZWFteXVxbVlJPVVdVW1pWUVNWVFVXVVNYWlNSUVpXV11fW2BgYFZiXGBhXWBiX1xgXWNhY2hpZWdhWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcWmBeX1teXmFgX2NcWWBaUU5PTlZRUFVTUFVVU1BXXFxcWV5dX1dcXmpwd3mAY1xbVlZZUk5QV1NOUVFQUlRSTFJUVFlbV1VPUk5TWFVTUVJQUlpPUVNUVltWVlZTVlpYXV5cXF5WU05UVlZbW1VRVFVVV1hSU1lbU1JSXFhaXl9dYmFgV2JbY2JeYWNfXGJhYl9kZ2llZ15cZGBhYGFjZF9iX1laX1tcW1hYWVdXWlpaYV1dW11cXFpdYFdbW1pQT09PWVBVVVNSV1JUUFtdXl1cYFxgVVxcaGpyfXNsaFxVWVdRT1NbU1JRU1JVVVVLUldWWlpaU09TUVVVVFJNVFBSWlJUVVRYXVdYWFNYXFheXVlaXVVVTlZWV15aV1FUVVdYWFNWWVtUUlZdWV1eYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVnX15kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JbUFpVVldWU1RUXl5gX15iXGBVXV5ia3l1bX1sWlVaVlFRVFxUVFRWVFZZV0xSWlZcW1xSUFVTV1VVUk9WUFNYU1dVVlteWFtZVVpeWF9eWVxZUldSWVhZX1lZUlRVWVlZVVdZW1VUWl1dXmFiYGVkXV5dXWVhYmZkXl9kY2BcZ2VoZmViYGVhX2FhYmJfYF5WWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lRXVVXWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2hYWVpUVlRWXFhXV1ZXV11YT1VcWV5dXVRTWFJWVVNRUldRU1ZUWFhYXl5YXVtVXV9YX19YXFZRWFRaWlphWFtUVldaWVpXWFlZV1ZdXmBfZGNiZmVeYlxgZmJkZmRfYGRiYVtmY2hmZGZhZl9fYmJhYWBfXlZVXVpbXFtZXFlZXVtbW1hYWVtaWlpdX11UWV1VTlRaVlRcVVdXWVdWXGBhYmNhY19fVltgZGFfenVvaFpcWlZYVlhbWllbWVhZYFZPVV1bYGFcVVVZUFRWVFJVVVFUVVdbW1xfX1pfXFZfX1ldXlldVlJYV1pZXGJZXVVWWltaW1paWFpYWV9fYGBkY2RlZWNkWmJmY2dmZV5hYmBjXWJjaWVkZ2BoXmJiY2FhYF5fWVRbWlpbW1hcWFhcW1pbV1daWFhcW1xgXVZdXVNPVlpWVlpWWVZYV1heYGJhZGFkYV5ZWWFkYmBrZmheXF1bV1hZWlxcXF9bWltiVlNXXl1hY1xTVllQVlVVVVVVU1VUWF1dX2BgXWFdV2FeW15cW15YVVhXW1pfX1teV1hcXFxdXVtaXFdaX2FeYGRkZWZmZ2NZY2ZlaGdkXmNgX2VjXWZpZGVpYGdeY2JjYWFgX19cWFlbWVpZWVpYV1tbWltXWFpUWl1cW2BcVV5iTVJXWldXWllbXFhXWV5gYmFkYWRhXV5ZYWNiX2FgYV9cXV1YV1tbXV1fX1xaXWNYWVhdYGNkX1JYWVBXVVdYV1ZWV1ZdXV5hYmFfYl5ZYV1dXlldXVlYVVZbW2BeXV9ZWV5dXl5gXFpaWVtfYl9jZmRmZ2ZoY1plZmdpZ2NfY15hZmVaaWljZmpkZl9iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdYVlVcXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhXW11fXWBfXVtgZFxcWFpiZWNhUlxZT1hWWVtZWVdZWmBeYWJjYGFjX1xiXV9dW15dWVlUWF1cX19eX1taXl5gYmJbW1dbXWBiYmRmZGdmZmhlXWVnaGlmY2FiW2NnYFxpaWNoamdlYGJhY2FfYF9dXVxZXFlYV1hZWVdcW1pXVlhQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYmBjYmJdXVtaV1hqcWBcYF9dXGFjX15ZWWNlZGJUX1pRWVdcXVxbWVtbY2BjY2NgYmRhYGNeYFxeXl5aWFVbXlxcYWFfXVtgYWJmYl5bU1xfYGNkZGZlZ2ZmZ2ZfZmdoaGdkZGBbZWdeYWhoY2hpZ2RgYmBjYl9fX11dW1pbWVhYWFZaVlxbWlZWVUxYWFxnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIeJh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl6e3t6ent6enp6enp6enp7e3t7enp7e3t7e3t7fHx8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ1dnZ2dnV2dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXp6ent7enp6enp6enp6e3t6e3p6enp7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODg4KCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx2iIuLi4uLi4F9fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09PPxMXFxcXFx9LU1NTT09PEvr6+vr7CooqMjIyMjYl+f39/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXaMkI+Pj4+Qg35/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk5eDU1NTU1NTW4+Xl5eXk5dLLzM3MzdCqjZCQkJCSi39/f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnh4eHh4eHh3d3d3d3d3eHl5enp5eXdvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4ODg4KCg4ODgoOEhISEhIODgoKDg4OCg4B8fH19fX19fH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ1dXV4dnZ2ent4e3h3dnh8enl5en58eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl6e3t7e3x8e3x8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2en15e3t5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fnp5e3h7enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3h5fHp8d3x5eHh4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eHp6en18enx4fHh4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBgICAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3l5enl5eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXl5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eXl5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veHl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKCgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt8fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fX19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qKi4eHh4SDgoGBgYGBgYGCgYKCgYGBgIGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHhIWCgYGBgYGBgYKBgoKBgYGAgYKBgYGCgoKCgoGAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uIjYmIiYaEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgIGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYGCgoGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoKBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIODgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4SCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGAgYKBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCg4KCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKjIiGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgYGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fX18fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19f4CBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIi4uJioaGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgYGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjIiGh4mMi4uKhoWDgoKCgYGBgoKDgoKCgYCBgYKCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39/fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioeIio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/f39/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDhIOCgoeSk5CLioqLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgYGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoGCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCg4KHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKBgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCgoSDgoODg4KCfX19gIB/gIKBg4ODg4SGhISEhIWFg4OCgYKDgYCCg4GDhYWFhYaGh4aGhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SFhYSFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIKCgoKBgYKCgYF/gIGDgoCAgH+AgoKCg4OCgoGDg4OEhIOCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjpCOkJGPi4mHgoKCgoKCgYGBgYKCgoKBgYGBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4ODgoOEhYSEhYWEg4KEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiIiHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgYGAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgoKBgIGDgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYiHhIKCgoKCgoKBgYCBgoKCgoKCgoKBgYGBgYGBgYCAgIGBgIKEg4OCg4KCgoGCg4OIh4eHh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5GQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmJh4WEg4GChISDgYGBgoKDgoKDhIKDhIWFhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkZGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDhISEg4KBg4KDhYWDg4OEg4SDg4WEhYSEhIGBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoKCgoKEhIWEhYWGhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOTko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYKCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYGAgYGAgIKBgoKCgYGCgoGAgYKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGBgoODg4OEhYSFhYSDhIWFhoWFhYSEhISDhISFhYWFhYSDg4SDhIOChpSUkpSSj42Lh4SEg4OCgYKDg4KCg4OBgYKCgoKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoeHhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/gYGBgYOBgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhIWFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOBgYKCg4ODhIKDg4OCgICAgoKCg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaDhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhYWCgYKDgoKEgoGChoWEhIODhISEhoWEhIWCf319fX6ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhIWFhYWEhYaFhoWFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMi4iFhYWFgoKBgYKDg4ODgoOCgYGCg4ODg4KCgYCBgICAgIGAgIB/gICAgIWFhYWFhoeHhoWFhYSEhYWEhISEhIOEg4ODhIWDgoOEhYWGhYaGhYaHh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYWFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eFhYeFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGhoaGhoWEg4SFhYWEhYWGhoeHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4OEhISFhIOCgoODhIODgoSFhIWHh4WEgoB/f39/f4B/f3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHiIaHhYSDhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH9/gIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OChISEhIWEgYCBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYqLi4qJiIiHiIiIh4eIh4eIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4ODg4SJioeHhISFhIODhIOFhIODgoGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoeEg4KFiIiIh4eFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoODhYmKiYeFh4WEhYWEg4WEg4KCgoKCg4F+fX5+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJhoiGiIeHiYiEg4SDhYSEhYWGiIeGhYOCgoSFh4aHhoaDgoKDhIKDhISCgYGBgYGDg4SDhJGSkY6PjYuHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/gICAf4WGhoWGhoaHh4iHhoGChISDg4WGiIuKhoWGhIKGhoKAg4ODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhYSFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4SEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAhISFhIWFhYeHh4eGgIGBhYODhYWEh4iFg4GAgIF/fn2Cg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIGDgoCAgICBgYGBgoGBgoSDg4WEgoKEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4N/fn5/fnx8f4ODgoOCg4F+fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f4CAfn2Af3+AgIF/gICBgH9/gYF/fX1/gIF/f35/gIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCBf3x9fX59fX6AgH59fn18fX6Cg4OCgoGBf319fn6AgIB/fn19fXx7e3t6enl6gIB/fn9+fn58fn9+f4B/fn9/gH+AgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhISCgoGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36AfX1/gYSDgoGAf39+fX5+f4CAgH59fX19e3t8enp5eXl7f39+f39/fn1+f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39/f36AgH9+gH9/fn5+f39+fn99fHx9hZKSjYyLioiJiISFhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgIB/f36AgYSDgoGBg4SEg4SAgYGAgYCBgIGCgoOBgIF/gIKDg4GBgYGAgH59fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+BgH+Bf4CAgIGBgoKAfoB+f35+fn6BgYKBf39/f4CAf3+Af4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qIh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f39/f4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDgoOCgoKBgoF/fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKDhYOAgYOBgIKAgYGBg4KCg4GBgn+BgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICBgYGBgH9/f3+AgICAf4CBgX9+fX5+f39/foOGh4eIgoaEhYSEhYSFhoWGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyDg4SFgoGEg4KCg4WGgoOEg4GCgoODgYOCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoCBgYCBf4CBgH9+jpOMh4iHiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf39/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCCg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeIh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgYB/f359f35/gX+AgoGFhYWGhoeHhoeHiIaHh4eGhoiHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgYKBhYWLg4GChYWGhoSDhYWDhISDg4SDhISEiJKOi4mIiIqHiIeFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICBgICAf39/f3+AgICAgICBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fHx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEg4GDjYl/fX+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiomKh4WGhYODgoGCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoOEg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gHp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjYuMjI6KiYmGhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIKCg4WDhIWFhYWDg4OEgoGDg4KDgoKBgICAf4F+f35+fXx8fHx8fHx8fHx8fHx8fXx8fH5+ioJ7ent6eHp7e3x9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fIB/goCBgH59e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42OjIiHiIWFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICBgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3t6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX19fXt9fX19fXx8fYB/gIB+gH5+gpORi4yMjY+KhYaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgICAgH9/f317enyAgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4d/fXx+gICBgH9/fn19fX1+e3x9f39/gH1/foCMkY2LjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYCAgYGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+ChIaGhX9/hYF+f4CAf4B+fn99f4CAf4CAf399fXx8fX59fH19fX19fXx+fH18e318fHp7enx9fX+GhIKAgIF9fn1+f36MhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn19f39/fX6Afn5+hJKMjIuOjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAe359fH5+gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8e3x6fX5/gIODgn9+f3x9fH18fYGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4yKioyLioiEhISDhIODg4KCgoKCgoKCgYGBgIKBgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH9+f399fn9/f36Af39/f39/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBf4CAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4aChJCOjIqJioaHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f35+f4B/f39/f39/gIKCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn59f358fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJiomLiYWIkI2LiIiGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4OAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH18fX19fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4iLi4uKiYyQjYyJh4aFhIOCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5/f4B/gICAf35/foCBf3+AgICBgIKEg4GAgIGBgIF/gIGBgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SDhIiJioiJjY+MioeIhYSEg4GCgoKCg4KBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXl8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX19fn1+f319fXt8fX58fHt8fXp6eXl6eXt7fn6BgYOHhIiNjIqJhYWEhIOCgoKCgoKCgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH6CgIGCgoCAgYCBgYCAgYKCgoKGhYSBgYGBgYOBf4CChIF/foGAfX6Bfn1/f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIN/iIyJioeFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGEgX5+gIB9foB+fX5+gIB/gX5/gH9/f4B/fX5/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyIiYeHhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3p6fHx7dnt0d39+dnJ7fn57eHV3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gYF/fH5+fX19e3x+fH18fHx7fHt8fYiGhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX1+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99gH99fX59fn59fnx7fHp8e3qAhYKDhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgoGCgYGDgH+AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIOBf3+AfoCBfoCBgIB/fn5+fn59f35+hYWAgYB/gIOBf36BgH9+gH6Af359e3p7enx7eoKDf4KCgoKDgoOCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7cnl7fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX+Af3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOBf3+Af4F/gH98e3t6fHt8gYB/gX9/gYGBgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChISChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gYB/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fn2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5+fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn1+eX5/f3x8fH59foGAgYGBgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWEgoSEhYSDgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn59fX2Af4CBgYF/fnx+gH5/f4GCf4GBgoOHhYGAf35+gH+AgYCAgICBgoGAgH6Agn9/gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXx5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN3dnN0hoSEhYOCg4SEg4OCgoOBgoKBgIGBfICAfoB9fn1+f4CAgH9+f398fn9/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/foCBfn+AgoKAgYSChIWGg4B+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4KDgoGCg4KBg4J/gYB/f35/gH19fXx/gICAf39/f3yAf3+BgIGAgH99gH9+fn5/f31+foGCgoJ+f359fn5+fn9/gH99gIGAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36GfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3ZxeHlyeIWFhYWDhISCgoOCgYGCgYCDgYCAf35+fn6Afn1+fH+AgIB/gIF/e4B+gIB/gYCAf32Af35+f399fX1+gIGCgX5/fn5+fX19f35/fnx+gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIKAgICAfX5+f4B9fH59f4CBgH9/gYB8gH+Afn+BgH9/fYB/fn9/fn19fICAgICAfn9+fn59fH5/f39+fH2Af359foCCf36AgH9+gYOCgoSFhYKCfn19e3t8fHp3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzcHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgH1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39/fn18fn9/f399fX9/fX5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3l7endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WHhIWDhIKBg4KCgoGBgoGCgYGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gH+Af4CCgICAfn1+fH9/gYGAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2EfXR8fXp6enp8eXl6eoaFd3l8fHx8fH18fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKBgYGAgICAgIB+fYB/gH+BgoJ/goJ/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f3+Af39/f4B/gICAgIB/gIGBgYGBgoGAgH9/f359f356gZKLenx9fHt9eXt6enh5gYF4eXt8fH18fHx8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2Fh4ODgoOCgIGAgoKBgIGBgYGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIJ/gICAgH9/gIB/f31+gH59gIB/f39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhoh8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fH19fH18fn5+f39+fHp8fXt9fXt5ent6eXhzdHVuc3FweHJ1eoWGg4OCg4KAgICBgoF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX+Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9+f3+AgIB/gIB/gIGBgICAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXx8fHd4dXh4eXt8fH17fHx8fH1+f39/f359fX6Af4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYGDg4B/goGFg4OEgYGDgYKCgYGAgICCg4KAgoKFg3+AgH6Cg4GAgYCAgH+AgH+BgYCCgH+AgoB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKCgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl5fH18fHx7fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDg4OBgoSAhIOCgoCAgoKEgYGCgoSCf4CAf4GDgoGAgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgYGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgoGCgYCBgICAgYKBhIB+gYOCf36Ag4KAgX6AgoOCgIGBgYOCg4KBgYOCgoSBgIGDgYGChIODhISDg4SDg4KBgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGDhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4OEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F/f4GEhIGDf4KCgYOCgoKBhIODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3x6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKChYSEg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GCgYCAgoSDg4KBgoKBg4KCg4ODg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foB/f4GBgICAgICBgYCAf319fHx9fHZydnh4dnR/dnR9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4KDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYKBgIGDhYSDgoOAgoKDgoODg4ODhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9f31/f3x8enx+fX19fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn91dn+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KDgX6AgIKCg4KDg4OEgoGCgoODgoOBgoGBg4F/gYSEg4OChH+ChIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhISDgYKAfYGCgH18fHt8fIB9fX6Afn59f358fH19fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx8gYGCgoODhoOEg4aEgYKIh4WEg4OEhIWChIWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4KDgX+Bg4ODg4KDgIKFg4ODg4SDg4SDgYKEhIWDgoKDg4OBhIOBg4OEhISEhYWEhISFhYWFhIODg399gYR/fX18fHx8f4F+fX5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WBgYOEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYqJhISDhIWFg4eGhoSEhISFhIWEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhIF9gXWBeoN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+De4WDgISDgX9+fX59fYKDgX17f31+gH59e3x8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIaEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2ChHVzcYOGdHB1cnN0g3Z7fXWBf4KDgYJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgoN/g4N9gX19fn1+goOBfH+BfX+AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYOChYaEhYWDg4OEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ6eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9+fX6BgIF9gH59gH+Af319fHx9fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiHhIOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYGAf3x/fXyBfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgX+Afn5/gYB/f4KDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhYaGi4qFhIaHh4WEhYWFhIKFhYWFhoWFhoWGcXVwcnNvc3p5foN0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSBgYCBgYB9f3+BfoB+fX6BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYSGhYeGhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhXiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dHBvemxzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFhoaGhYSFhYWFhYaJiYeFhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDhoaFhYOEhoaFhoSGhIOEhIaEhIGEg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWFhIV9d4WEhISDgoF9f357fHt+e3x8fX9+fXx+foCAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4eFhYWFhoaHiIaEhoWGhoWFg4WFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGh4iGhYiHiIWHhoaIhYWGh4WGhoWEg4WFhoWFg4SEhISFhIWFhIWFhIaHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn58fH1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYSIhYaHh4eGiIaHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaEhoaFhoWEhoaFhIOFhYKFh4WDgoKFg4SBfoCAfHt9fnt8e31+fXx8fn1+fnx/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGg4WEh4aEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFh4eGh4aHhoeFiIiHh4WGhoeFh4eFgYSEhYaFhYSEhIOEhYWGhoaFhoSHhoaHhYWGhoWEg4SDgoSHg4SBgoSEg4GAgIB7e35+fHx8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoWHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYWEg4SEhYaGhoaGhoeGhoiFhoWGhYSCg4KDg4eBg4CCg4OCgoJ/gHt9fn57fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eHiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWHh4eHiIaGhIaFg4OCgoKDhoGDfoKCg4CDg39/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhYSFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYmKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYOFhYaGhoaHhYeGh4eHh4WEhYWDgYKBgIOFgoN+gYGBf4OBfn9+f35/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYWFhISDhIKAg4GFgoGCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4qHhIeFh4aIhoWHhIaHiYaGiIiHh4aHiIaEhoaGh4aFh4OEhYSGhoaHhYWEg4WFh4WHhoeFhoaHhoaGhIOEhYGAgYGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaFhYWFhYWDg4GDgYCBgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeFh4iJhoWIh4mHhoaHhYSGhYWGhYSHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaFhYaDg4OEgH+BgICEgIOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5enp5en19eXp6e3x7fHt7ent9fXx9fH5+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIODhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eGiIiFhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGh4WFhoKCg4N/foCAgIF/g4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx9f358e4iFhYaGhoaEhYSFg4WCgYCAgIGAfoCCgn19f397f3+Cg4OFhoWEg4OGg4GDhIKAhYeFgoOBgYOEhISFhoeIh4WFiIaJh4WDhISChYOEhoKDhYWFhoSHhoWFhYaDhIWEhYaFhoSDhYWGg4WFgYGDg39+f4B/fn+Df3uAfX1/gn2AgX5+gX59fX19f3t/fHt6eXp6eXp6fHl6enp7e3x6e3t7fH1+fX2BfX18fH2Af318hoOGhoaGhYOEg4WChYGBgH9/gIB+f4CBfH5/f36AgIKCgoSFg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIWHhYeFhYKDgoGDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCf319f35+gIR+e398fICBfYGAfX2DfH5+fX1+e357e3p5enp5enp7eXp6ent7fHp7fHt7fX59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4F8fX9/fn5+gYGChIOCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhoSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx/g318fnx8gYB+gn99f4J8f359fHx8fHt7enp6enl7enp6enp6ent8eXt9fHx+f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIaEg4OFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhIWFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+fH2Bf4CDfn2AgX9+f318fHx9e3t6enp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAysrKysrKysrKysrKy8vLy8vLy8vLy8vMzMzMzc3Nzc3Nzc3Nzc3MzMzLy8vLy8vLy8vLy8vLy8zLy8vLy8vLy8vLy8vLzMzMzMzNzc3Ozs/Pz8/Q0NDR0dHS0tLS0tLS09PT09LS0tLS0tLT09PU1NTU1NPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0tLS0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dXV1dTU1NTU09PT09PT09PT09PU1NPT1NTU1NTU1NTU1NPT09PT0tLS0tLT09PU1NTU1NTT09PS0tLS0tLS0dHR0dHTx4ZzZWBbS1lnVU1GSEA9Nzc4OTc8PDw6PDs+Njo9ODw7Ojk4Nzg7Ozo/Oz07PDw+Oz9BP0JCQUNERURBPj08O0BDQ0FAQ0NBQUdIR0lLUsLV0tPT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1crKysrKysrKysrKysvLy8vLy8vLy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMvLy8vLy8vLy8vLy8zMzMvLy8vLy8vLy8vLy8zMzM3Nzc3Nzs/Pz9DQ0NDR0dLS0tLS0tPT09PT09PT09PT0tPT09PU1NTU1NTU1NPT09PT09PT09PT09PT09TU1NTU1NTU09PT09PS0tLS0tLS09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dTU1NTT09PT09PT09PT1NTT09PU1NTU1NTU1NTT09PT0tLS0tLT09PT1NTU1NTU1NPT09PT0tLS0tLS0dHR0syMcmdgXE1ZZVJLR0s/OzM3ODs4OT49OTw6QTo7PTc6PDw6Ojc4Ojs9Pzs/PD08Pz4/QT1BQT5DQ0RCQEE+Ojs/Q0RBQ0REQkJJR0hISU6+1dLT09PU1NTU1NTU1NTU1NTV1dXV1dXV1dXV1dXKysvLysrKysrKysvLy8vLy8vLy8vLy8vMzMzMzMzNzc3Nzc3NzczMzMzMzMvLy8vLzMzMzMzMzMzMy8vMzMzMy8vLy8zMzM3Nzc3Nzs7Pz9DQ0NDQ0dHS0tLS0tPT09PT09PT1NPT09PT09PU1NTV1dXU1NTU09PT1NTT09PT09PT09TU1NTU1NTU1NTT09PT0tLS0tLS0tLT09PT09TU1dXV1dXV1dXV1dXV1dbW1dXV1dXU1NTU09PT09PT09PT1NTU1NPU1NTU1NTU1NTU09PT09LS0tLS09PT1NTU1NTU1NTU1NPT09PT09LS0tLR0dLPkndoX15PV2dNS0ZMPTg3NjU5OTk8Pjk/PEQ5Ozw4Ojw9Ozk3OTo8PUA7Pj0+Ozw+PD0+QUA+RENDQz9BPTo7PUJDRUNDREE/RUhKSUpMutXT09PU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dXVy8vLy8vLy8vKysrLy8vLy8vLy8vMy8vLzMzMzMzMzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzMzMzM3MzMzMzMzMzMzMzMzMzM3Nzc3Nzs7Pz8/Q0NDQ0NHR0tLT09PT09PT09PU1NTU09TU1NTU1NTU1dXV1NTU1NTT1NTU1NPT09PU1NTU1NXU1NTU1dXU1NPT09PS0tLS0tLS0tPT09PU1NXV1dXW1tXV1dXV1dbW1tbV1dXV1dTU1NTU09PT09PT09TU1NTU1NTU1NTU1NTU1NPT09PS0tLS09PT1NTU1NXV1dXU1NTU09PT09PT09LS0tHR0Zp+Z2FiTlVqSkhJSz88OjkzNzY3Nz07Pjk9Ojo6ODk6Ozs4ODo7Ozw+Oj09PTo8Pzw9P0JAP0NEQ0Q+QD09PEBDRENCREJEPkRISUlLTLbX09PU1NTU1NTV1dXV1dXV1dXV1dXV1dXV1dXV1cvLy8vLy8vLy8vLy8vLy8vLy8vMzMzMzMzMzMzMzc3Nzc3Nzc3Nzc3NzMzMzMzMzMzMzMzMzc3Nzc3MzMzMzMzMzMzMzM3Nzc3Nzs7Oz8/P0NDQ0NDR0tLS09PT09PT09TU1NTU1NTU1NTU1NTU1dXV1dTU1NTT09TU1NTU1NTU1NTU1NXV1dTV1dXV1dTU1NPT09PT0tLS09PT09PT1NTV1dXW1tbV1dXW1tbW1tbW1tXV1dXV1NTU1NTU1NTU1NTU1NTU1NTU1NTV1NTU1NTU09PT09PT09PT1NTU1NXV1dXV1dXU1NTU1NPT09PT0tLS0dKfg2lfZFNYbEhISEtAPTc4NDc2Ojo/O0Q8PDk8PDk3Ojk7Ojo7PDo6Ozk+PT45PUA7P0FBQj9CQkFDPT8/PjxAQkVDQ0JAQTtGSUdNTEmy2NPU1NTU1NTV1dXV1dXV1dXV1tbW1tbW1dXV1tbLy8vLy8vLy8vLy8vLy8vLy8vLzMzMzMzMzMzNzc3Nzc3Nzc3Nzs3Nzc3MzMzMzMzMzM3Nzc3Nzc3Nzc3Nzc3Nzc3NzM3Nzc7Ozs7Oz8/Pz9DQ0NDR0tLS0tPT09PT09PU1NTU1NTU1NTU1NTU1dTV1dXU1NTU1NTU1NTU1NTU1dTU1NXV1dXV1dXV1dXU1NTU1NTT09PT09PT09PT1NTV1dXW1tbW1tbW1tbW1tbW1tbW1dXV1dXU1NTU1NTU1NTU1NTU1dTU1NTV1dXV1NTU1NTU09PT09PT09TU1NXV1dXV1dXV1NTU1NTU09PT09PS0tLUo4hsX2ZSVmpHSEdJQT4zNjY6Ozw4QzxCQT48QTw4OTo8Ojo8PDw5PD06Ozw9PTw/PUA/QEE/QEFAQjw+Pj88QkNDQ0ZAQUE9SEpJTk1HrtjT1NTU1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbWzMzLy8vLy8vLy8vLy8vLy8vLzMzMzc3Nzc3Nzc3Nzc3Nzc3Nzc7Ozc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzs7Nzc3Nzc3Nzc3Nzc7Ozs7Ozs/Pz9DQ0NDR0dHS0tLT09PT09PU1NTU1NTU1NTU1NTU1NTU1dXV1dXU1NTU1NTU1NTU1NXV1dXV1dTV1dXV1dXV1NTU1NTU1NPT09PU1NTU1NTV1dXW1tbW1tbW1tbW1tbW19fW1tbV1dXV1dXV1dXV1dXU1NTU1NXV1dXV1dXV1NTU1NTU1NPT09PT09TU1NTV1dXV1dXV1dXV1dTU1NTT09PT09LS1q6Ka2NlUlhoTEpHSUI4NDk0Ojs6OUA5P0NFQDw8OTk5PTo9Ozw8Oj08Ozk8PTs7Pz1APT0+QEA/QkE+QDw9OUBEQ0JBQUI+PEhKS01OSKjZ1NTV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1szM0dPT09PT09PT09PT09POysvLy8zMzMzMzMzMzMzNzc3Nzc3Ozs7Nzc3Nzc3Pz8/Pz8/Pz8/Pz8/Q0NHR0dHR0dHR0dHR0tLR1dnY2NjZ2dna2trb29vb2dnZ2dnZ2tra2tra2tra2dnZ2dnZ2dra2tra2dna29vb29vb29rb3Nvc29nX19fX19fX19bW1tbW19ra2tra2tra2tra29zc19XV1dXV1dXV1dXV1tbW19bW1tbW1dXV1dXV1dXV1dXU1NXV1dXV1dXV1NTU1NTU1NTU1NPT1NTU1NTV1dXV1tXV1dXV1dXU1NTU09PT09PT0tW6imtoaFJYZUlJTE9AOTk6NDtBPDc9OUFDPkA/PTg6Ojs5PTs+Pzo7PDw6Ozw6Oz49QD0/Pz9BQEFBP0E8PDs+QURDQURAPTxJSUpNTkaj2tPU1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbW1tbMzYRtcHBwcHBwcHBwcHBqp+Pd3d7e3t7e3t7e3t7d0tDQ0NDQ0NDQ0NDQ0NHIubm5ubm5ubm5ubm6urelpKSkpKSkpKSkpKSkp4ZgY2NjY2NjY2NjZGRkZYSLioqKioqKioqKioqJkpmYmJiYmJiYmJiYmJiXjIuKioqKioqKioqKioigv7y9vb29vb29vb29vrSKioqKioqKioqKioqLh73m4eLi4uLi4uLi4+Pj4tjX19bW1tbW1tbW1dXV1dXV1dXV1dXW1tXV1dXV1dXU1NTU1NTU1NTU1dXV1dXV1tXV1dXV1dXV1dTU1NTU09PT09PVw5Fxa2pOU2JMTFZOPDo6Nzc+Qz44Pjo/P0E8P0A3Ozo7Oz07Pj46Ozw+PDs9Oz0/PkA8Pz89QEBAQT4/PD48QEFFQkJGQEA/R0hKS09GntrV1dXV1dXV1tbW1tbW1tbW1tbW1tfX19fX19fXzM5OJisrKysrKysrKysrIor06+vq6urq6urq6urr6dXS0tLS0tLS0tLS0tLUxKmqqqqqqqqqqqqqqqumhoSFhYWFhYWFhYWFhYpODBISEhISEhISEhISERNKVFNTU1NTU1NTU1NTUWJsa2tra2tra2tra2traVVTU1NTU1NTU1NTU1NOeq+qqqqqqqqqqqqqqqybU1JTU1NTU1NTU1NTU0uq8uvr6+vr6+vr6+vr6+nZ19fX19bW1tbW1tbW1tXV1dXV1dXW1tbW1dXV1dXV1dXV1dXU1NTU1dXV1dXV1tbV1dXV1dXV1dXV1NTU1NTU1NTT1MuYdmxpSk5fTVJVTT48PDc7QEM+Njo3PT87PUI/OTw5PTs8Ojw9Oz07PTs7PTw9Pj09O0E9PEFAQUE9PD88O0BCQ0FERT1BQENGS0tPRpjc1dXV1dXW1tbW1tbW1tbW1tbX19fX19fX19fX183OUisxMTExMTExMTExMSeN8+np6enp6enp6urp6unV0tLS0tLS0tLS0tLS1MWqq6urq6urq6urq6usqIiHh4eHh4eHh4eHh4eNUhIYGBgYGBgYGBgYGBcaTllXV1dXV1dXV1dXV1ZlcG9vb29vb29vb29vb21ZV1dXV1dXV1dXV1dXU36wrKurq6urq6urq6uunVhXV1dXV1dXV1dXV1dPq/Hq6urq6urq6urq6urp2dfY19fX19fX19bW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXV1dXV1dXV1NTU1NTU1NTRnHpxaUpUXU9SVU5EPj87PkBAODo7ODw7Ozw/Ojs7ODs5OTs8Ozo8OTs7PDs6PT09Pj1BPz4/Pz49PD0/PDxBQUNBREU8PkBFRkpLTUaT3NXV1dbW1tbW1tbW1tbW1tbX19fX19fX19fX19fNz1w5PT09PT09PT09PT01k/Dn5+fn5+fn5+fn5+fm1dHS0tLS0tLS0tLS0tPFra6urq6urq6urq6ur6uOjY2NjY2NjY2NjY2Nkl0iJycnJycnKCgoKCgnKVpjYmFiYWJiYmJiYmJhb3h3d3d3d3d3d3d3d3d1Y2JiYmJiYmJiYmJiYl6Fsq+vr6+vr6+vr6+vsaFiYWJiYmJiYmJiYmJiW6/v6enp6enp6enp6enp59nY2NjY2NfX19fX19fX19fX19fW1tbX19fX1tbW1tbW1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbW1dXV1dXV1NTU1NTU1qN7cWRJW2BOTlVPQEE/PURCPzs9Ojk7Oj09Ozw7Ojk4OTk7PDs8PDo6Ozw6O0A9PD08QEE8QUE7OzxAPzw9Qj9EQ0NFPD5CREZKTExFjdzV1dbW1tbW1tbW1tbW19fX19fX19fX2NjY2NjYzc3FwsPDw8PDw8PDw8PDwsnQz8/Pz8/Pz8/Q0NDQ0M/Ozs7Ozs7Pzs7Ozs/PzczMzMzMzMzMzMzMzMzLycnKysrKysrKysrKysrHwsPDxMTExMXFxcbGxsbLzMvMy8zMzczMzMzMy83Ozs7Ozs7Ozs7Ozs7OzczMzMzMzMzMzMzLy8vLz9PT0tLS0tLS0tLS09PRzc3Nzc3Nzc3Nzc3Nzc3U2NjZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjX19fX19fX19bX19fX19fW1tbW1tbW1tbV1dXV1dXV1dXW1dXW1tbW1tbW1tbV1dXV1dXU1NTU1Nevf3BeRl5iUFFXTkdGQ0NJQT89Ozw6PDhAQjw9ODo6ODk4Oz87PDw7Ozw8PDw/Ozw+Oj4+OD5CPD49QT48PkJAREVDQDw+QD5DSUlLRIfc1dbW1tbW1tbW1tbW19fX19fX19fY2NjY2NjY2M7Nz9DQz8/Pz8/Pz9DU0NDOzM3Mz9PS0s7Nz9LOzs7Ozs7O0dTU087Q1NLPztDU0s/Pz8/Pz8/Pz8/Pz8/Pz9DQ0NDQ0dHR0dHR0tPT1NTU1NXV1dbW1tbX1tbW19bX19fX19fX19fW1tfX19fX19bX19fX19bX19fX19fX19bW1tbW1tXV1tXW1tbW1tbW1tfW1tjY2NjY2dnZ2dnZ2dnZ2NfY2NjY2NjY2NjZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY19fX19fY2NfX19bW1tbW1tbW1tbW1tbW1tXW1tXW1tbW1tbW1tbW1tbV1dXV1dTU1dXYuIJvV0pfY1JRWktIQUE8Qj09Ozo+Pjw+Pz09Pzc5Ojk5Nzg+PDw+Ozs8Ozw7Pz09Pjk7Ozk9Pj9APkA9OzpCP0JDQj89PkA+QkVHSkKA3NbW1tbW1tbW1tfX19fX19fX19jY2NjY2NjY2NjOzs7Ozs7Ozc3Nzc7Kn8rNzc3N0LmDhIvH08Cay8/Ozs7O0bCDhJPPyZSo0tDGk6vSzs7Ozs7Ozs7Ozs7Ozs/Pz8/Pz9DQ0NDQ0NDQ0dHR0dLS09PT1NTU1NTU1dXV1dXV1dXV1dXV1dXV1dXV1tbW1dXV1dXW1tbW1dXV1dXV1dTU1NTV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjX19fX19bW1tbW1tbW1tbW1tbV1dbW1tbW1tbW1tbW1tbW1tXV1dXV1dXV2MCAblVPYGNXWVtMTENAPT07PTo8PkI+QkNAPDo4OTg6Ojo3Oz8+Pzw8Ozw6OT88PD04OTw/QT49PT1BQD07QUJAQkM+O0A/QUFJR0pBetvW1tbW1tbW19fX19fX19fY2NjY2NjZ2dnY2NnZzs7Ozs7Ozs7Ozs3SqY+t0c7Ozs6bt7akosCTnqzTzs7Oz8mburidrJ6rm7DQma2Zs9LOzs7Ozs7Ozs7Oz8/Pz8/Pz8/Q0NDR0dHR0dHR0tLS09PU1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbV1dXW1tbW1tbV1dXV1dXV1NXV1dXV1dXV1tbW1tbW1tbW1tbX19fX19fY19fX2NjY2NjY2NnY2NnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NnZ2NjY2djY2NfX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV1dXV1dXV1dfIf29aU2FlXl1cT0pEPUA/Pjs3Oj45P0Q+QTk4Nzg5Ozs8ODk/PT08PTw+OzpBOzk7OTs8Q0A8Oz0+QEE+PUJEP0JDPT0/Pj8+SElIP3Xa1tbW19fX19fX19fX19jY2NjY2dnZ2dnZ2dnZ2c7Ozs7Ozs7Ozs7PyJ68ptLQ0M7KoJd+gsOmm6+n1M/Pz9HDoo9/isKUh5yexZOGnZ3Oz87Ozs7Ozs7Ozs/Pz8/Pz8/P0NDQ0dHR0dHS0tLT09PU1NXV1dXV1dXV1dXV1dXW1dXV1dXV1dbW1tbW1tbW1dXV1dXV1tbW1dXV1dXV1dXV1dXV1tbW1tbW1tbW1tbW1tbX19fX19fY2NjY2NjY2NjY2NjY2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnY2NjY2NjZ2dnZ2dnZ2NjY2NjX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXW1dXV1dXXzYhzXVhpaF5fYE9JRjpBQD4/PDw6Nj9CQEM6NjQ3Ojs6PDo5Pjw+PT07Pz08QT48PDo8PD08OjxAPUBCPj5BQj1DQz09Pjs/QUVLSEBw2dbW19fX19fX19fX2NjY2NjY2dnZ2dnZ2dnZ2dnPz8/Pz8/Ozs7O0qylp6nVwLzSx52PnsvTyYqZqtTPz8/Rv56KqNDUu8iYmca9yZaZxtDPz8/Pz8/Pz8/Pz8/Pz8/P0NDQ0NHR0tLS0tPT09TU1NXV1dXV1dXW1tbW1tXW1tbW1tbW1dbW1tbW1tbW1tXV1dXV1dXV1tXV1dXV1dXV1dXV1tbW1tbW1tbX19fX19fX19fX19fY2NjY2NjY2NjY2NjZ2dnZ2dnZ2drZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2dnZ2dnZ2NjY2NfX19fX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1tCQdVtbamlhXl1TTkk8Q0BBPkA+OjhGQT9DOjc0OTo6OTs7ODs9Pz4+PUE9PD9APT48PDw8PDo9QEA/Pz0+QkA/QEJAPEA9PkFFS0c/a9fX19fX19fX19jY2NjY2NjY2dnZ2dnZ2dnZ2drZz8/Pz8/Pz8/P0MydjZes0JqXysWesp6WzdatmarUz8/P0bqlrZye0tGUlp/O0ZGYoM7Q0NDPz8/Pz8/Pz8/Pz8/Pz9DQ0NHR0tLS09PT09TU1NTV1dbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dXV1dXV1dXV1dXV1dXV1dXV1tbW1tbW1tfX19fX19fX19fX2NfX2NjY2NjY2NjY2NjY2dnZ2dnZ2dna2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjX19fX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dbSlHJeXmtramVdT0xHP0RDQ0A6PTs8Qjw+PTk2NDo5OTo6OTc7P0A7PD1APDxBPjw9Oz08Pzw6PENAPj07PUA+Qj5AQT5APUA/RklEP2bV19fX19fX2NjY2NjY2NjZ2dnZ2tra2tra2tra2s/Pz8/Pz8/Pz9OxooCbr8mgo7/KnKWMp63Yqpmq1M/Pz9HAoJ+Tpbyzn8Kb2q2jv53V0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NTV1dXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXV1dXV1dXW1tbV1tbW1tbW1dbW1tbW19fX19fX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnY2NjY2NjX19fX19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW0pNwYF5waGZlWlFIR0JFQ0BANzo6PD46PDk3NjU5OjY6PDs3PEBAPDo6PTo9Pz49PDlAPDw6Ojk/QD49PD1AQUM/QD8+QTs/QEZKQj9i0tjX19jY2NjY2NjY2NnZ2dnZ2dra2tvb29vb29vPz8/Pz8/Pz9DOn5BsnJbXqqPT0q6mtZif1aqZqtTP0NDQ0qavrpun0IuTnsfLiJWeyNLR0dDQ0NHR0NDQ0NDQ0NDQ0NDR0dLS09PT09TU1NXV1dXW1tbW19fW1tbW1tbW1tbW19bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbX1tbX19fY2NjX19fX19jY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NnZ2dnZ2dnZ2dnZ2djY2NjY2NjY19fX19bW1tbW1tbW1tbW1tbW19fX19fX1tbW1tbW19KTbmBccWRnZFpVSkBDRkNBQjg7Pzw9Ozw8ODU1ODk2ODs6OTw6Pj88PT05PD8+PTo6Pjk8Ojo4Pj88PT08PkBBQ0E+PDw6QkRESkZCXdDZ19fY2NjY2NjY2NnZ2dnZ2tra29vb29vb29vbz8/Pz8/Pz8/RvZ/Dt9aXwNPR0NLK0s2Xm9SqmavV0c/Q0NHJ18SYodDapZmz0NuimbXV0dHR0dHR0dHR0dDQ0dHR0dHR0dLS09PT1NTU1dXV1dbW1tbX19fX19fW1tbW1tbX19fX1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NnY2dnZ2dnZ2dnZ2dnZ2dna2drZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NjX19fX19fX19fX1tbX19bW19fX19fX19fX19fW1tfRkWxdXG9naGJdT0ZASElHRUA8PD4+PD0+PDc1Njo5Njk7Ojo7OEA/Ojw8OTw+PTs7Oj85Pzo7OT0+PT07Oz08QENCPz8+O0NGRkdIRFnN2tjY2NjY2dnZ2dnZ2dnZ2tra29vb29vb29vb29DQ0M/Pz8/Pz8+VfnulktSimtPMkpejm6HYq5mr1dKXptXFjZ6gnqCSp5mgrZComJ671dHR0dHR0dHR0dHR0dHR0dLS0tLS0tPT1NTU1dXV1dbW1tfX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbW19fW1tbW1tbW1tbW1tbW1tbW1tbW1tbX19fX2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dra2tra2trZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2dnZ2drZ2dnZ2dnZ2dnY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fX19fX19bXz4xkVl5wa1xgYE5FSE1JSU9DPjpCPT1AQjs1NTc8Ojc6Ozo6Ozk9PTk6Ojk9Pj89Ozk+Ozw6PDs5Pjw+Ozw9PkBDQj8+QTxBQ0dGRkVVydvY2NjZ2dnZ2dnZ2dna2trb29vb29vc3Nzc3NzQ0NDQ0NDPz8/Q0dWnma3Jo6i+yp2xnaO12ambqdi4q6HJwaGtoaOlpqSooK+noqmc0NPS0tLS0tLS0tLS0dHR0tLS09LT09PT1NTU1dXW1tbW19fX19fX19fX19fX19fX19fX19fW1tbW1tbX19fX19fX1tbW1tbW1tbW19fX1tbW1tbW1tbW19fX19jY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2dnY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NnZ2NjY2NjY19fX19fX19fX19fX19fX2NjX19fX19fX2M2GXVdib2RPXVRLSEZTUUtMQD49RDw/Q0Y9NTU3Ozk2Ojs6PD06Oz86Ojk4Oj09Pz47Pzs+PTo7OT47PTw9PkFEQkA/Pj88QEFFR0VEUsXb2NnZ2dnZ2dnZ2dra2trb29vb29zc3Nzc3Nzc0NDQ0NDQ0NDQ0NDTuYC905uWz9S1i5Gf09S8gbvUzpSg09WrjY+q1pyRjrrVmpGOvtbS0tLS0tLS0tLS0tLS0tLS09PT09PT1NTV1dXW1tbX19fX19fX2NjY2NfX19fX19fX19fX19fX1tbW19fX19fX1tbW1tbW1tbW1tfX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2dnZ2dnZ2drZ2dra2tra2tra2tva2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY19fX19fX19fX2NjY2NjY2NjY2NjX19nLflpVampbTF9NSkxKVUxGQjw9P0dGSEtIPTY1Nzo5Nzk6Ozo8PTk+OTk6ODs9Pj5BPj05PDw6PT4+Oj05OTo/RUFAPj0/P0JAR0VERVDB3NnZ2dnZ2dnZ2tra29vb29vb29zc3Nzc3N3c3NDQ0NDQ0NDQ0NDQ0NHB0dHKyNLQ1MS40tLR0sLS0NPHzNLR1MG+1dPTucfW09O4yNXS0tLS0tPT09PT09PS0tLT09PT1NTU1NTV1dXW1tbX19fX19fX19jY2NjY19fX19jX19fX19fX19fX19fX19fX19bW1tbW1tbW1tbX19bW1tbW1tbW1tfX19fX2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb2tra2tra2tnZ2dnZ2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnY2NjY19fX19fX2NjY2NjY2NjY2NjY2Nfax3dcUmdpWk5aTkxQUVdFSj8/PT9BRUxMQD43NzU7ODg5OTo7PD48Pjg6Ojk7Pj9APT4+OjU6Ojs9Pzo7OTo8PkJCQD8/Pz9BQkdEQ0ROvN3Z2dnZ2dnZ2trb29vb29vb29zc3Nzc3N3d3d3Q0dHQ0NDQ0NDQ0NDQ0tDQ0dHQ0NHT1NHR0dHT0dHR0tLR0dHU1dLS0tXU09PT1tTS0tLT09PT09PT09PT09PT09PT1NTU1NXV1dXW1tbX19fX19jY2NjY2NjY2NjX19fY2NfX19fX19fX19fX19fX19fX19bW1tbW1tbW19fW1tbW1tbW1tbX19fX19jY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2trb29ra2tra2tra2dra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dra2dra2tva2tra2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY28FzWFVpa1NMUk5QUllURkk8PkM/QUJFSj4+Nzg2OTc3ODk5Ozs9P0A8PTg5Ozs7Pz48PDk1Oj0+Ozk5Ozw/Pz9CQkE9QT1AQUJGQkJCS7Xe2dna2tra2trb29vb29vb3Nzc3Nzc3d3d3d3d0dHR0dHR0dHR0dHQ0NDQ0NDQ0NHR0dHR0dHR0dHR0dHR0tLS0tLS0tLT09PT09PT09PT09PT09PU1NTT09TU1NTU1NTV1dXV1dXV1tbW19fX19jY2NjY2NjY2NjY2NfX2NjY19fX19fX19fX19fX19fX19fX19fX1tbW19fX19bW1tbW1tbW19fX19fY2NjY2NjZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2djY2NjY2NjZ2dnZ2dnZ2djY2NjY2Ny8b1RUbGxMS1JKVFJVS0ZEOj5HRERBREY8Pzg5Ojk1OTk6Nzw9Oz5APT03OTo7OT47OTk2Njo9QEE+Ozw5Oj4/Q0E+P0I9PkJDRUJBQkqw3tna2trb29vb29vb29vb3Nzc3Nzc3d3d3d3d3dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dLS0tLS0tLS0tLS0tLS0tLT09PT09PT09PT09PT09TU1NTU1NTU1NTU1NXV1dXV1dbW1tbW1tfX19fY2NjY2NjY2NjY2NjY2NjY2NjY2NfX19fX19fX19fX19fX19fX19fX19fX19fX1tbW1tbX1tfX19fY2NjY2NjY2dnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnY2dnZ2dnZ2dnZ2dnZ2dnZ2NjctmtTW3BrS1VXUlxRV0hEPjxCSkU9SEo/PTw3ODg6NTk4OTY7Pjw9QDw8NTk5PDo/Ozk4NDg8PT1BQTw+Ozo8PkA/PT5BPT1DRkdCP0JJqt/a2tvb29vb29vb29zc3Nzc3Nzd3d3d3d3d3d3R0dHR0dHR0dHR0dHR0dHR0dHR0tDP1NDOz9LS09LS0tLS0tLS0tLT09PU1NTU1NTT1NTU1NTU1NTU1NTU1NTU1dXV1dXV1dXW1tbW1tfX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fY2NjX19fX19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NnZ2dna2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ3bBkU2FyX09aVFdfUVJHQj1FSUxBQUxEPz87Ojg4OTM4Njg2OT49Pj89OjY6Oz47PT06OTY4Oj07QEA8QD89Pz9CPjw+PDxCRUdJQj5DSaTg2tvb29vb29zc3Nzc3Nzc3Nzd3d3d3d3d3d7e0tLS0tLS0tLS0tHR0dHR0dHT09G5u8y6m5y60MjT09LS0tPT09PT09PT1NTU1NTU1NTU1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW19fX19fX2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX19fY2NjY2NjY2NjY2dna2tra2tra2tra2tra2tra2tra2tra2tvb2tra2tvb2trb29ra2tra2tra2tra2tra29vb29vb2tra2tra2tra2tra2tra2tra2trZ2dnZ2dra2dnZ2dnZ2dnZ2dnZ2d6qX1VgbltVWVFaXk9MR0NGTUlGRERKO0FBOzw4ODY0ODY5ODc8P0E/PTo3PD8+PD8/Ozo2ODg9PUBBPUA+QUA9QDo7Oj49QUVHSUJAQ0ee4dvb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3e3t7e3tLS0tLS0tLS0tLS0tLS0tLTvsDKmqCilYiRnqqTqc/U09PT09PT09PT1NTU1NTU1NTU1NTU1dXV1dXV1dXV1dXV1dbW1tbW1tbW19fX19fX2NjY2NjZ2dnZ2dnZ2dnZ2dnY2NnY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX19fX19fX19fX2NjY2NjY2NjY2dnZ2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29va2tra2tra2tra2trb29vb29vb2tvb29vb29vb2tra2tra2tra2tra2tra2tra2dnZ2dnZ2dnZ2dneolxVXm5YXl1OWlBUTkNDTElJSUZKRDxCQTw7ODc2Nzk3Nzk5PT9BPzw6OUA/PD5CPzo4Nzc2PT8/QD1AQT8/PD07Ozg+PD9FSUhBP0NGl+Hb29vc3Nzc3Nzc3Nzd3d3d3d3d3d7e3t7e3t7T09PT09LS0tLS0tLS0tLUyJWcrpuZtYl9k4yCgYTE1dPT09PT09PT1NTU1NXV1dXV1dXV1dXV1dXV1dXV1dbW1tbW1tbW1tbX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjX19fX19fX19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29ra2tra2tra2trb29vb29vb29rb29vb29vb29ra2tra2tra2tra2tra2tra2tra2tra2trZ2dnZ3ZpaWGFuWWFXT1dNUEVCRExJTUtGSUU+QkQ5ODg2Nzk3NTY5OD09QT46ODk+Pjw/QD88NTY3Njw+Pz47QEBAPz4+Pz47Pz5BQkZHQkBDSJHi29vc3Nzc3N3d3d3d3d3d3d3e3t7e3t7e39/f1NPT09PT09PT09PS0tLS08+ofpGsj5KOjIaAiImEkKPK1NPT09PT1NTU1NXV1dXV1dXV1dXV1dXW1tbW1tbW1tbW1tbW1tfX19fX19fX19jY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2NjY2NjY2NfY2NjY2NjY2NjY2NjY19fX19fX19fX19fX2NjY2NjY2NjY2NjZ2dnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29va2tra2tra2trb29vb29vb29vb29vb29vb29vb2tra2tra2tra2tra2tvb29va2tra2tra2trZ2tySWlljblpaUlVeUEw8QEdOSFJJSEU+O0hGODk3NTc4NzU4OTg7Pj49Ozg5QT49QD9BPjc1OTY7PkFCPz9AQEJCPz4/PkFAREFGSEI/RUqM4tzc3Nzc3N3d3d3d3d3d3t7e3t7e39/f39/f39TU1NPT09PT09PT09PT1rWlmoiLkIWAhYuIgYOKi3+GwtbU1NTU1NTU1dXV1dXV1dXV1dXV1tbW1tbW1tbW19fX19fX19fX19jY2NjY2NjY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tna2tra2tra2tra2tra2trb29vb29vb29vb29vb29vb29vb29vb29va2tra2tra29vb29vb29vb29vb29vb29vb29vb29ra2tra2tra2tvb29vb29vb29vb29ra2tvbiFpbZ2pcWExaX1ZIOkxITEpKQ0VGQ0BMSDc6NzY3ODg1ODc4OTw8Ozs5OEA/PT4/Pzw2Nzw0Nz9CQkFAQD8/P0E9PT9APkBARkU9PURLiOLc3Nzc3d3d3d3e3t7e3t7e3t7f39/f39/f39/U1NTU1NTT09PT09PT1MWSgoOFhn2Bgn18eX6BgoN+pNvW1NTU1NTU1dXV1dXV1dbW1dbW1tbW1tbX19fX19fX19fX19fX19fY2NjY2NjY2dnZ2dnZ2dnZ2trZ2dnZ2dnZ2dnZ2NjZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY19fX19fX2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2tra2tvb29vb29vb29vb3Nzc3Nzb29vb29vb29vb29vb29ra2tra2tvb29vc29vc29vb29vb29vb29vb29vb29vb2trb29vb29vb29vb29vb29vb29rb2YBaXm1oWlNJXVtYSkRNSEpTTEdGQUA/SkI4OzY2OTk3NTg2ODs6Ozo8OTg9PTtAPTs6NjU8Nzs9QkBBQTw+PUBBPTxAPz8+QkRFPjxES4Pi3N3d3d3d3d7e3t7e3t7e39/f39/f39/f39/f1dXU1NTU1NTT09PT09iyhJCofYN5doSIf3t3eYJ+fouuwNXU1NTV1dXV1dbW1tbW1tbW1tbW1tbX19fX19fX2NjY2NjY2NjY2NjY2NjY2dnZ2dnZ2dnZ2tra2dnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dra2tra2tra29ra2trb29vb29vb29vb3Nzc3Nzc3Nvb29vb29vb29vb29vb2tra29vb29vc3Nzc3Nzb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3NZ5XFpsZlhST2BRUkFIR0pGWExGQEBDQ0s/Ozs3ODg3NjU3Njg6OTw8Oj07Pz07PT48Ozg4PDk9P0JBQkM8PD9BQj49QUJDQkRFQ0A7Q0x94d3d3d3d3t7e3t7e3t/f39/f39/f39/f4ODg4NXV1dTV1NTU1NTT1NK7np91inl7iICAgoWBg3JzgIWDjKzX1dTV1dXV1tbW1tbW1tbW1tbW1tfX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2NjZ2dnZ2tra2tra2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tvb29va2tra29zc3Nzc3Nvc3Nzc3Nzc3Nzc29vb29vb29vb29va29vb29vb29vc3Nzc3Nzc3Nzb29vc3Nzc3Nzb29vb29vb29vb29vb3Nzc3Nzc3Nzb29vb293Qcl1fcGVXS1BjT0tCR0NKSEtGQTxBPUhQQTo6Nzc4NzY3ODc8Ojg9PTw+O0A/PD89Ozo7OTo5PEBCQEJDQD1BQD89QEJDQ0FAQD9AO0VNeODd3d3e3t7f39/f39/f39/f39/g4ODg4ODg4ODV1dXV1dXV1dTV1NfIeIuFfIKIeoOEgX6CgnNpdIWLhpCd1NbV1NXW1tbW1tbW1tbW1tfX19fX19fY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra2tra2tnZ2dnZ2dnZ2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2tra2tra2tra2trb29rb29zc3Nzc3Nzb3Nzc3Nzc3Nzc3Nvc29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29veympcY3FlUk9YXks/R0xJT0tFQD5BQj9JTz45Ojc2Ozc2Ojs3Ozo4Ojw8Pjs9PTs+PDo7ODk6ODlBQkJBQEA7QEI9Oj5BQkM/Pj0+Pz1GTnTf3t7e3t7e39/f39/f3+Dg4ODg4ODg4ODg4ODh1dXV1dXV1dXV1dbOnYaZfn+Tk4p/goF8fYJzcZuJgIKDicDZ2re00NfW1tbW19fX19fX19fX19jY2NjY2NjY2NjY2dnZ2dnZ2dnZ2drZ2dnZ2dna2tra2tra2tra2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2tra2tra2tra2tra2tvb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb38BjWlttYFZQU1NKRExITUhJPD5BRENGTkQ8PDk3OTo2ODs5Nzw5ODk8PTs5QD46QT88NzU3Ozg6QEFFQT8+OT1CPzs9QkJCOj49Oz0+Rk5x3t7e3t7f39/f39/f4ODg4ODg4ODg4ODh4eHh4dbW1tbW1tbW1dbYy4qAh4WDl4x4e3t5b32BdWt3m3R2e3iJx8aYjK3Y2dfX19fX19fX2NjY2NjY2NjY2NjY2NjY2NnZ2dna2dnZ2tra2tra2tra2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2djY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tvb29zc3N3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vc29vb29zc3Nzc3Nzc3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3dzc3Nzc3OC3Y1dZa2JSTVVRTEpLRktGQ0A+QkE/RU0+Pj04OTk6Nzk6NzU9Nzc6Pjw7O0I8OT89OTY2OD05OkBCRkA+PTxAQkRAPUA/QztAPTw+P0ZPbdzf3t7f39/g4ODg4ODg4ODg4ODh4eHh4eHh4eHW1tbW1tbW1tbX1a2Gend9q595eHp7c3R/g35vcXt5enN7dpOKhYCJpM3Z2NfX19jY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2trZ2tra2tra2tra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2NjY2NjY2NjY2NjY2NjY2NjY2NnZ2dnZ2dnZ2dna2tra2tra2tra2tvb29vb3Nzc3Nzd3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nvb29vb3Nzc29zc3Nzc3Nzd3d3d3d3d3d3c3Nzc3Nzc3d3d3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3c3NzhrWFbXmxiUk1WTE1HS0tERkJCO0E9PEVMQ0E+ODo5Ojc3OTY2OjU7PkA7PTs/PTw/PTo5OTo8OTxFQ0ZAPz5AQ0JEPTk9P0E9Qj89QD5HT2nb397f39/g4ODg4ODg4eHh4eHh4eHh4eHh4uLi1tbW1tbW1tbX0Jh/kIeDfXqDdnt1c3p5epCqpndycn6Hh4eAgH6ChISRyczZ19fY2NjY2NjY2NjY2NjY2NjY2NjZ2dnZ2dra2tra2tra2tra2tvb2tra2tra2tra2tnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnY2dnZ2dnZ2dnY2NjZ2dnZ2dnZ2dnZ2dra2tra2tra2tra2tvb29vb29zc3Nzd3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc29vb29zc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3c3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc4aVfVGJtYlBPU0lIR0ZKSUlCQT5CQjxFRURAPjg6ODs3Nzo3ODg2Pj89Ozw5PTw6Pj07OjY3OzY6REFGPj8/Pz5DQT87PT0+O0RDPz48SE9n2eDf39/g4ODg4OHh4eHh4eHh4eHi4uLi4uLi4tbW1tbW1tfY2Mh+dnaDfn50dniGgnp5dXecobuhhIKAgH6Hiop8f4GGjJyoztjY2NjY2NjY2NnY2NjY2dnY2NjY2NnZ2dna2tra2tra29va29va29ra2tra2tra2trZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra29vb29vc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t3d3d3d3N+aW09na1xQUVBJQ09KS0dMR0pCQD9BR0RAQTw4PDg4NTg5NzY3N0BAPzs8OT49OD08PDo3OD05P0RDRj5BP0JAQz88Oj49Pz5FRD89O0tRY9fh3+Dg4ODg4eHh4eHh4eLi4uLi4uLi4uLi4+PW1tbW1tfVwdy0bnhyc3twenl2hYiEe3h9gIGYpYx/fH57kYWWi4aBg4GOkb3d2djY2NjY2dnZ2dnZ2dnZ2dnZ2NnZ2dnZ2tra2tra29vb2trb2tra2tra29va2tra2trZ2dnZ2dnZ2dnZ2dnZ2tra2dnZ2dna2tra2trZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra29vb3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7d3d3ejVhXaG5ZUFFLSEpTSU1ITUlLQUM/Q0ZCQUQ6Ojw4NjQ4ODc2NjY/Pj46PDk8Ozo9PTw8ODs8O0REREU+Pz5CPkI/OD0/P0NDQkBBPjtMVGPV4d/g4ODh4eHh4eHi4uLi4uLi4uLi4uLj4+Pj1tbW1tbXrJS2enhyb3eVe3R7i4B4dW5+hYN7f4WIcnx9m5yOiYqCfoN9h5Oax9TY2NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2tra2tra29vb29vb29vb29ra2tra2tra2tra2trZ2dnZ2dnZ2dnZ2tra2tra2tra2tra2tra2tra2tra2tra2tra29ra2tra2tra2tra29vb3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3e2X9ZYGhsXFFLR0dPS05OT01ERkJIP0NIRERAOjs7ODc1Nzc3ODU4QD5AOzw5PDs8Pjo5Ozk5OzlGREVCPEA+PzxAQzs+QD9AP0I/Pjo7SlVj1eHg4OHh4eHh4uLi4uLi4uLi4uLj4+Pj4+Pj49bW19fbyoWEd3Fybm54lYR7eIR/eXZweHN3i5GOgnZzfYqGiHd3dXeDg3yIiJPD29nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dna2tra29rb29vb29vb29vb29va29ra2tra2tra2tra2trZ2dnZ2dnZ2tra2tra2tra2tra29ra2tra2tra2tra2tra29vb29va2tra29vb29vb29zc3Nzc3Nzc3d3d3d3d3d3d3d3d3d3d3d3e3t3d3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39J1WWhpalZOSkhNTkdNRFBJRkg/RT1GTERDPjs7PDk3Nzk2Njk1OD4+Pz07PEA7PTw6Nzs3OTk4R0RFQj1BPUI/PkA8P0FBP0BCQD47PEtUYtTi4OHh4eHi4uLi4uLi4uPj4+Pj4+Pj4+Pj4+PX19fXxJJ7iX9vbG51dn6EgYOKhn51cm1lbYiGio6Ee3ODh4p7eHuDj4+BhIqKsc7a2dnZ2dnZ2dnZ2tra2tra2tra2tra29vb29vc3Nzc29vb29vb29vb2tra2tra2tra2tra2tra2tra2tra2tra2tra2trb29vb2tra2tra2trb29rb29vb29vb29vb29vb29vb29vc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d7e3t7d3d3d3d3d3d3d3d3c3Nzc3Nzc3N3d3d3d3d3d3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f397e3uHJbFtqampTTkdHTk9FSEZNSUlAO0Q+SElAPTw6Ojo4Njg6Nzc5NDg9PD09Ozg8PDw8ODY3ODk6OkVCRUE/QDxCP0NDPj5DREFAQD9APD1LUWHT4+Dh4eLi4uLi4uLj4+Pj4+Pj4+Pj4+Pj4+Tk19fX2al2hX58d2xwd3l4fIx9ioWAd2pzdHd6fW6Le355en6Ef4CBg354fH6Hhpa209rZ2dna2tra2tra2tra2tra2trb29vb29zc3Nzc3Nzb29vb29vb29va2tra2tra2tra2tra2tra2tra2tra2tva2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29zc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f3t7jvWphaWtpUU5GTUxLSlhNTkdBQEBPQUM/QDs8ODk5OTY4NjY2ODQ7Pjw9Ozk2Ojo5Ojk1ODk4OTpCREY/Pj4+QEBAQj88QUA/PD4/QTk+Sk9e0uPh4eHi4uLi4uPj4+Pj4+Pj4+Pj4+Pk5OTk5NfX19rKioSAeXNvbXFzdXeAlHh2gHx1h4V3dXJ1oJl6e3d2eXaEdG1sbnt4gJqLk7vc2tra2tra2tra29vb29vb29vb29vc3Nzc3Nzc3Nzc3Nzc3Nvb29vb29ra2tra2tra2tra2tra2tra2tra2tvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb3Nzc3Nzc3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3t7e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/e47NpaW5paFBQT0xMT1JPS1NGP0VEREQ+PDw4Ozg3OTk1Njg3NjczOj47Pj03Oj45OTk5Njo6ODc8Q0VHPz87Pz5APT5BPTs9PjlBQEA4QU5RXNDk4eHi4uLi4+Pj4+Pj4+Pj4+Pj5OTk5OTk5OTY2NjY2rmOgHp2dW5qb3hwgX1rdHJ2d4SFeYeHeZWOeXl6dXd6c2tvfIB8dn2IfICy3tra2trb29vb29vb29vb3Nzc3Nzc3Nzc3N3c3Nzc3Nzc3Nzc29vb29va29vb29va2tra2tra2tra2tvb2tvb29vb29vb29vc3Nzc29vb29vb29vb29vb3Nzb29zc3Nzc3Nzc3Nzc3Nzc3N3d3d3d3d7e3t7e3t3e3t7d3d7e3t7e3t7e3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODf39/f3+Kqamtoa2RTUE9GUFRSTkhSSz5ERENCOzs5Ojo4Njc4NTY2ODc4NDs/PD89OTw8Nzs6Ojc6Ojc6PUNCQz1BPj88OT0+QUA7PDw7RUA+O0NOU1zQ5OHi4uLi4+Pj4+Pj4+Pj4+Tk5OTk5OTk5OTk2NjY2daeb3Z7b3h4dnBudHdwcHRwc29+iXN6hoWNhHpzbXKAeoZ9b4OTgXZ8fYOGtd3a29vb3Nvb3Nzc3Nzc3Nzc3Nzc3Nzc3N3d3dzc3Nzc3Nzc3Nzc29vb29vb29vb29va2tra2trb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t3d3d3d3d3e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODf39/ioG1oZmtmVVZSR1BRTktMTEVCSEVHPTg9PDo6Nzc4Njc3NjU2NzQ4Pjw9PTo4Ojg+Ojs3ODc3Ojo+Q0Q7Q0I+PTg9QEFDPz48PkU8Pj1CTVBf0uPh4uLi4+Pj4+Pj4+Pj5OTk5OTk5OTk5OTk5NjY2NzAdnaAgn56eHhwbHV5cmt/fWxzb3RnaGmAf2loeHNnfomJeHCChnt3fX6Fir3d29zc3Nzc3Nzc3Nzc3Nzc3N3d3Nzc3Nzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vb29vb29vb29zc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg35RrbWZuZlNTSVBZVExIRk5GRkVCRj07Pjw7OTc3ODU3OTY0NTc1ODw7PT46Ojs7QDk7Ozg3Ojk5QEJBPEFBPz85P0BCRUNBQEBDOzs9REtNYNbk4uLi4uPj4+Pj4+Pj5OTk5OTk5OTk5OTk5OTZ2drZmHN7qoSWgnJ0dXZ9eGhsfHdoeHdua3B0eYCDdnR8gYSCfXNwgIp/eIJ/eYPI3tzc3Nzc3Nzc3Nzc3d3d3d3d3d3d3d3d3dzd3d3c3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzb29vc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f3+Df39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4duLbm1nc2NZUU1VW1dIQ0lGTktHQkQ/P0I6Ozo2Njc1Njc2NDg3Njs8Oz4/Ojw5PEI4Nzk6Ojo5OkFBQkFCQ0BBPj0/QkNDREFCRjk4PURKTmLY5OLi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl2dna3KhxgrV4kX5zbHpuhIF2gn1raGp/g3h2fHV9hYV0ZnB5fXd9eoCKhXt9fH6AtN7c3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3c3d3d3d3c3Nzd3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3dzc3d3d3d3d3dzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/e3t7e3t/f39/f39/f39/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4ODg4ODg4OLYhW9xa3VhVk9VVVxPRE1GPkpHSkVEPD9COjw5ODY4NDU2NzQ3NjQ5Ozs8Ozg+OzxBODg6PTg9ODo9PUBAQD9BQj9APkBDQkNBQUU3NjtETE5j2uTi4uPj4+Pj4+Tk5OTk5OTk5OTk5OTk5OTl5dva2t2ebG5zcYWNcm1wbn9/dYR+a3J2dnpzeIF4c291cG1rdnx5hYiAf39/dnKDg7Hf3Nzc3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dzc3d3d3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzd3d3d3d3d3d3d3d3d3d3d3d3d3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHg4OHh4eHh4eHh4eDi14VtcW92XlJXU1paUUpIQ0BRQEJEPDk/QTo8OTc1NzQ1NjY0NzU2PTw6PT05Pjo8QDg6Ojw2Ozk7Pj1CQkI7QUJAQ0BARERDPD1ANzo8RUtNZdzj4uLj4+Pj4+Tk5OTk5OTk5OTk5OTl5eXl5eXTzsbAfnFsb3h7dm91bmpzc22ShnhudHRub3SGf29rcG6CdG12cn2Ng3Zxf3d5ioGm39zc3N3d3d3d3d3d3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c3N3d3d3c3N3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d7e3t7e3t7e3t7e3t7f397e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4OHh4eHh4eHh4eHh4eHh4eHh4taGbnBtcWBSWVBXX1lKTExJUj9EPTk7QkY7Ojk3NDU2NTc1NDY2Nj49Oz8+OT05Oz44PTs6NDg7QEBDQkNBQkZBP0NAQUJERDs9Pjk7PEJMTWTg5ePj5OTk4+Pk5OTk5OTk5OTk5OXl5eXl5eXlube1qHNybHB3enR3eG1xcnV3f4R0cnNsbGtxfG5wbnRrgX9xgHd9hIN+eYBzcoGKoNnd3N3d3d3d3d3e3t7d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7e3d3d3d7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4eHh4ePVh3FsamxeWFpVV2BWVlBPUEw9QTo7PEZBODo4NzM2NTY5NjU4NTc/PTs/Pjk9ODs8OT07OzU6PUNCQjxDQ0REREFBPz5CQ0M8PT44OTxDS0tjzdHZ4dbI2OPk5OTk5OTk5OTk5OXl5eXl5eXl5bW1tqtyeXJufX92dXdoamhpcG92bWtrZ2VmcXRteYBubXl3doh4cWtqaHV1eXR1f8Hf3N3d3d3d3d3d3t7e3t3d3d3e3d3d3d3d3d3d3d7e3t3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3t7e3t7e3t7d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4N/f4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHh4eHh4eHh4uLh4eHj1YZxcGNpYVdTWVdfTFJPUk1LQD44OTtBPjg3OTY0NzY3OjY2NjQ5Pj86PD86Pzk6Ojc6PTw5OTxBQT07QUNFQ0ZAPj4+QUVEPkBBNzg+RkhKXrK1uMG5tbvI4OXl5eTk5eTl5efn5+fn5uXm5ua2trW1jn1+cHqEdXJ2Z2JjZWxrcm9maWx2bXeGfYV5bGx3eGt2cHx9eHN1eXx3doe54N3d3d3d3d3e3t7e3t7e3d7e3t7e3d3d3d3d3d7e3t7e3d7e3t7e3t7d3d3d3d3d3d3e3t7e3t7e3t7e3d3d3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uHh49WHdW5ebmNaVFNYV0tTS0pNUkdBODs7Pjw5ODc1NjU2Njk2ODY2OT88Oj09Oz86Ozs5PDw7OTo+Pj47PD1BREJDQUBAQT9CQzw8PTc7PkRFSl6xtbS1tre3tsvayd7l5d3g4t7V1NbT1ODj4N/ftra3rod7f255jXpydW1jaGxsbWl0eHpxeXp6iIeDemlofXFkb3F8hoF+eXt9fHuGp9re3d3d3d3e3t7e3t7e3t7e3t7e3t3d3d3d3d7e3t7e3t7e3t7e3t7e3t7d3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHh4eHh4eHi4uLi4uLi4uLi4uLh4ePWhnZsYW9fXVdZXFpSUEhKV0xFRz1APTs7PTk2NDY1NTU4Njc2Nzg/Ozk9PTw8OTk8Oj48Ojk4PkI7Oz4+QERAQ0VBQEA9P0A8PT01OTxCR0ZdsbW1tri5ubm6vbjD09K9wcHAuru8urvEzMW/w7e3t4RpdYF9Z3WHeWd1cWtreXhwd3x9eW1pd3t4d25pdY+BcGx5eHd3fYF7hoJ5gKDc3t3d3d7e3t7e3t7e3t7e3t7e3t7d3d3d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f397e3t7f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4N/f39/f39/f39/g4ODf3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4eDh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uHj14Vya2d0YVtYWF9eU1VVUVVKTEY/SUQ7OT02NjQ3NzU3ODc3Nzg5PDw6Pjw4PDo9Pjk7PDk7OT9BPD0/Qz9BQEVCQkE8PUNAOj48NTQ5REdHWrG1tba3ubm5ubm5t7m5uLi5ubq6urq5ubq5uru3t7l/bnBzem9wf3lzbnN1bHN2eHFxcG9rb3F+gXNph4SBfXRzh3VtdYWJgYBydoWn3d3d3d7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f397e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4N/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4OHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLh49eJcWtscltXV11gVFFVVFBST0pDQE1BPTs5NjUzNDY0Njg3Nzc5Oj47PD47OTw6PDw5PD08Oz09Pj1DRERAQ0JBP0A+PD5BPDg9OjY2OkJKSFixtbS2tri5ubi4ubi3t7i4ubq6ubm4uLi4urq7t7ise3J4cX92c35wbG16cmdvbG1udHB7d3dycnd6b4aSdn98fHp2eXx/c32HcnWt09/d3d3e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg39/g4ODg4ODg4ODg4ODg4ODg4OHh4eHg4OHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eLi4uLi4uLi4uLi4uLi4uLi4uPXh29qcWpVVldhW09RUlBOV0lERElKPzo5Ojc1MzQ5NTc2Njc4ODo8Ozw+Ojw6Oj08OTs8PTs9PTw7PURHRENBPDw8PD4+QDs4PDgxNTpBRkVWrrW1tba3uLi5uLi4uLi3uLm6uri4t7e4uLm6u7e5qnJweHd8e3uCd2hucWpvamNpcn9tc3J+eHRxbGp2gHl9gIB/dXaAdWuKi4B2kdXf3d3e3t/f397f397e3t7e3t7e3t7e3t7e3t7e3t/f39/f39/f39/f3+Df3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f39/f39/g4ODg4ODg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4uLi4uLi4uLi4uLi4uLi4uLi4uLj2IZtbHRlVlBcZ1hNWFNSUVlFQ0tQTjs5ODg3NTUzOTU2Njc2ODg5Pjk9Pjk8OTk8OzY4OTk6PEBAPT5ARkBCQkA6PjxBPT87Ozs2MTY8QkdEUKi2tbW2tra3uLe4uLi4uLi5urm4uLe3t7e3ubq3trSJcnd4fYl8cHpvfXNoamxnZ2x0bHF3dHFsdnNxcXdxcnx5eIN2e3dpi5GKfZDO393e3t7b2Nna2dve39/f3t/g3t/f39zb3Nzd3t7g4N/g4ODg397e3t/Y0t/e39/e3t7f397e397f397e3t7e3t7e3t7e3t7f39/f39/f39/f39/f39/f39/f3+Dg3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHh4eHh4eHh4eHh4eHh4eHi4uHi4uLi4uLi4uLi4uLi4+Pi4+Pi4uLj4+Pj4uLi4uPi5NeDaGd1ZFZVZGVXSlpZV1tUPUVNS0g9ODc1NzY0Mzk0NDc3NTY3OT06PT48PTw5Ozw5OTo+OTw+Pz5BQUNBRUVEPjs8QT48OTw7NzM3PkRIRUqhtrW1tbW1tra3uLi4uLe3uLi4t7a2tra2t7i5tra2i316bGx6f3BseXZuamhnZXF6eG9pb29wdXNtc3eBZ299goGDcn95anByen+p4N/d2cvGv7y9v77CzdLQ1t7Z3ODX0M3DwsPDx9XX09nc19TY19DHxMXHvbzPys/O2N3Yztzd3Nrd09Hc3t/f3t/e3t7e3uDf39/f39/f39/f39/f39/f3+Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODh4eHi4uLi4uLi3+Lj4uHi4OHe1tvf0sPKycfR29zi5OHh4Nna3tbGxMXEzdra3+Th4uLa197LfWlmcWFZXmVhTUxUS1JaTDtITUhGQT03NjY1MzQ2NjQ4NzY1Njk8Oz4+Oj45OTw5Nzk7Ozo+PTxAQENEQkdGQkE9PENAPTk8Ozc3Nz9ERkZGmba0tbW1tra2uLi4uLi4t7i4t7O1tre2t7e4ubW2t6KXcW9vcGludHZxZmVja25nb3JtZmdrcoFlb3Z8gHhkc49/c2hxcmllZW5vsN/Rxb+7ubm5ubm6urq7ur3NxsPHv7q6urq7u7vBwr3Bxb28v768u7q6ubm6urm5usPFw7nAw8G8v7m3v8/P1N7Y3N7f4N7S2uDf3+Dg4N/f39/f39/f39/g4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4eHg4ODg4ODg4ODg4eHh4eLi4uHg4eLi4uLh2trd0cLDwrvF09bg3cnTw665wLGqq6ursLS2ydLF0cSxuL+0q6urrK+0tLzMxNXOtLS7q3hsbW1gXWJfWUtTVVRRUERAUU1IRD86Nzg1NzMxNTY0OTg0NjY6PDs9PDg8OTY6Ojg4OTc1PDw8P0BBQEJEQ0JBPD5CPz89PT03NTg+Q0VDQI+2tLS1tbe4uLi4uLi5ubi3tbGrra+zsbOzs7S0tLamnotrbnt2cXl4Z2NoX3F3YWtub2hvfW9uY2tpbHh3bGuGfmxwenZtbHBvebHGvLq7u7q5ubm6urq6urq6urq6urq6urq6u7u6u7u8u7q6urm6u7u6urq6urq6urm4t7e4uLe3trW1tbW4t7vHvsPFx83EuMDJx9Lc2dnf3t7g39/f3+Dg4eDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4dzY4uLi4uHh4eDh4N7XxsbR0M7U3t7TztLf0ri4vLKtraysrK6xvrmut6yoqampqqurq6qqqqusrLisqqqqq6urq62urq6urq68s62sq6R5bm9tX15dXVRNUlNcVEpBP1BJSD44OTY4MzczMDU3Mzc4NTc2Njo8Pzw4OTs6Ojo4OTo2NTk7PD4/RD9DRUJDQj9AQEE/QD48Nzg3OkFFRD+FuLS0tbW3uLi5ubi4t7e0rqyrqqqtrq6ur7Cxs7O1o3BubnJtcIN9dWlhZWhmZGNkcXNtbXduZ2ltbWVwc29vc3FzfIeBenV9dZ+7urq7u7q6ubm5urq6urq6urm6urq6ubi5ubm5urq6uru6ubm5ubm6urm5urm5uLi4t7e3uLi3t7e2trW1tra2tbW1tbW2tbe3t7e6wb68xsnK29/g4N7b3d3e4eLQ1uLh4ODg4ODg4ODg4ODg4ODh4ODh4tO+vMzY3dzi4NHZ28S9t7CwsbGvs7u7s7C0vbOurq6tra2trKuqqqqpqaipqampqaqrq6qqqqmpqKmpqampqamqqqqsra6urq6urq6urK2keGlicWZhWVpWUVJOXFNGPUJSREE3PDs2OTU2NTQ1NjU4NzU2NTc4Oz48Ozk5OTo4Nzc5NzY4PDs+O0Q/P0NAQURBPj9DPT48Pjo6Nzc/Q0Y+eLKws7S1tre4t7ayrq6trKurqqmqra2srK6vsbO0tbeMbnJ0amiAeWZqZmVsXWhucGhscWJjZnKCfnZoaGxqbnqGgYV8eHFxeYCvurm6urq5ubi5ubm5ubm5ubm5ubm5uLi3t7e3t7i5ubm5ubi3t7e4ubm4uLi4t7e2tra3t7e3t7a2tra1tLS1tbW1tra1tba3t7e3t7e3t7a3uL/Gz9DEvr/AxNfXvMna2uDh4ODg4eHg4ODg4eHg297e1M28t7a3usDAycS3yL6ysLCwsK+wr66urq+wsK+urq6urq2srayrq6uqqampqampqampqaipqaipqampqaipqaipqaqqq62sra2trq+uraytoXlqZG1nYlxYUVBRS1RKQjpJUT9BNzw5NDo1NjU0NTU2ODg2ODY7Ojk8PT07Ojg2Njg4Ojg2Nz49PT0+QUFFQkJDQUFAQTo9PT89OTo3PUFHPGyqpqirrbCxsK6rqaiqq6upqampq6ysra2trrCztLW4pYCHb2lnc3Rma3BtamRsb3Jua21ja3B8iYRuamx8eGN7in5zanNua3GPu7m5ubm5ubm4uLm5ubm5ubm6ubi4t7e3t7e3t7e4ubm4uLi3tra2t7e3t7e2tre2tra2t7a2trW1tbW2tbS0tLW1tba2tra2t7e3t7e4uLi3tre2tri5uLi3t7i+vri6vb3H2+Dh4NjZ3eHh4N3XysHDwrq5ubi3uLi4t7W0tLSysrGxsbCwr6+vr6+vr6+vr6+urq2trKysq6usqqqpqKipqaanqamnoaWoqampqKKfoaGcoqeop6mrrKytrq+wsK6trp14cGxqYWNgWVFNUUxSRkM5TVBFPjg7NzI3OTY3NDQzNTc4Nzk3Ozo6PT08Ojo5NzQ6OTg2NTg/P0BCPURDQ0NBQ0BCQUA7QD9APzw8OjtDSD1jqKWlpaaoqKinp6eoqaqpqKioqaqqrK2usLCws7S1tbWlmHZ+cWZreHFvbWZlbGhjbGdmaWl9dW1pb312eYVmaHdveG9xb3J4p7u5ubm5ubm5uLi5urm5ubm5ubm4t7e1tbW2tra3t7e3t7e2trW1tra3trW1tba2t7e3trW0tLS0tLS0tbS0tLS1tbW2tra2tre3t7e3t7e2tra3tra3t7i3tre4uLe4uLi4uMDF08q8vMPNz8jAvbq5ubm6urm4uLi4uLe1tLS0s7OysrKxsK+vr6+urq6vr6+vrq2srKyrq6ysrKunoaCeoJ+bnaGhnZaZpKSmqJ+ZmZmZmp2foJ+en6Sqra6vrq2trKyZdXBpa2NhXl1VTlNLUkREOE5LR0E6ODUyNjk2NTQ3Mzc3Nzg5Nzk6Oz09Pjg4ODc1Ojk5NTg/QEBBRD5GQUJDQEJDQkE/PEBCQkA9Pjo6REY+XKalpqampqamp6inp6ioqKinp6mrq6ysra2trbS0tLW3pHN9dW5zjX9yZmpxY2ltY2hmaGxudWlfY2d1c3Z6bmdwcHJ+enGIobu5ubm5urq6urq5trO2tbi5tra1tba2tbW1tbW1t7a2t7a2trW1trW1tbW0tLS2tre3t7W0tLOztLS1tbS0tLW1tba2tra2tre3t7i3t7a2tra1trW1tra2tra2tra2t7a2t7i4t7q4uLi4t7i4ubm5ubq6urq5uLe3t7e1tbS0tLOzsrKysbGwsK+urq6urq6vr62trKyrqaWkpqaknJmbm5qZmpqZl5eXl5eWmZuYmZiZmZudnp+fnZyeoKSlpKOjoqKikHRuY3BhXl5bVFNUSFRKPzxRQkZDOzg2Mzc6NTU0ODM4OTk3ODk3Ozk7PTs3Ojc1Njk5ODU4Pj8/QEU+Qj8/Qz88QUFCPz0/REE/Pj05PUNGP1Wkpaamp6inqKmpqKeoqKioqKioqqyrqqmoqau1tbW2uaN3inFyh4Z3dHBoeWtiY2FlbGluc2pfY2VjY2Vqa2Jkamx2l41+qL25t7a3ubu7uri1sayrq6qusKysq6utraurr7Cxr6+wsrW1tre1tba1tbW1tbW1tra0r6+ztLS0r62ur7K1tLW1tbW1tre3t7e3t7e3t7e3t7ezsLK2tbS2tra3t7a2trW1tba2t7e3ubi4uLe3t7i4uLm6urq6ubi4t7e3tbW0tLS0tLS0tLOzsrGwr6+vr6+ur6+tqKOioJyampqamZmam5uampqam5qZmZmYl5eWmJmZmZqcnJ2fn6CfoKCgoaGgoKCfn4t0bml0XWBmXlJUS0RUST1FU0hFQjs6NDQ2OTQ0NTczODg4Nzg5OTo7Oz89ODo5MzU4OTYzOT0+QD9AOkBCQkJAP0BCQj89PkFBQj89Oj5FQ0BRo6alpaeop6mrqqimqKioqaeoqKiop6eoqKmqtbW3t7eymbR/fZCMdWdpamxmY2BjaGVveHBpYnF8eXBqZmZkZmtzaoWMrLaysK2trbS3srCwrayrqqmoqKeoqampqaiop6ioqamnqKqrq62trKqsra2srK6ura2rp6Wkp6qsqKSjpKWpsLGxs7W1tre4t7e1tba3uLe3t7eyqaWmrKuor7S2tbO1t7e2tbW1tra2t7e3t7e2tre3t7e5urq6ubi4t7e1sbO0tLSysbCurKusrq6wsbCtq6qpqqioo5yamZiZmJiYmJmZmZmZmZqamZubm5ycm5mXmJqanJycnZydn6ChoaKioqChoKCgn56KdWprbllcYVZLT0RHVUc+T1dIRD08ODM0NDg0NTQ4Mjg5ODg5Ojo8OTlAPDY5OjM2NzkxNDw/P0BAQTpDRkVCQURCQ0E6Oz9BQkM/QD1ARENAT6OnpqWnpqiqqqqmpKanp6ioqKiopqamqKurrbW2t7e3uK2ydXB7g3ZgYmlrYmVmYWRnZn2IeWxygH1xb3F4Y21ucWaPrKyrq6usrK2urqytraysqqelpqWlpaaoqKioqKWnqKioqKinqKmpqaelpKOioqKjoqCioqGioaCgoaGio6Sjo6WlpaiwtLOzs7Crqqmqs7S2t7axqKWjoqGhoqSoqqmoq7O0sa6usbO1tra2t7i4t7e3t7e3t7e2tri3tLGuqaanq6ypp6alpKSkpKSlqKmmo6Cfnp2cnJubmpqZmZiXl5mZmZiYmZqampqampqam5uZmJqcnZ2dnZ2bnKChoKGjo6KgoKCgn56dhXRrbGhXWFNKR01FSE1HQFNXRkc9PTkzNjM3NDU1NzM4Ojo6Ojk8PTo6QTw2PTgzNzg4Mzc7QD8/QEA6QkVDQEJEQ0E/OzxAQ0JDQUA8QUNAPU6ip6amp6epqquppKWlpaWmqKioqaamp6ipqaq1tra3t7e4s3Noe3NiZ2praWliYWRpaF1dbXxyZmtyf3x0fG5tc3N+oKmpq6urqqutrayrrKupqailo6Smpqalpqenqqmmpqenp6iop6eoqKelo6SioaGhoZ+enp+fn5+en6ChoaOlpKOjpKSkpqenp6alpKWmpqanqq2rpqSioaGgoaSlpaWnp6WnqKimpaWor7S2t7a1tba2tbWzsKyrqamuq6ilpaampqWkpKWlpaalpKSkpKWioaGhoJ6dm5ubnJuampmYl5iYmJiYmZqZmZmZmJmZmZmamZmcnZycnJycm5yfn5+goaGioKCgn52dnIBza25kXlNKSE1GRExLRURRU0NHPTw4MzYyODQ2NDY0ODk4Ojs5Oz48OT07OT03MzU5NjU2PEA9P0A/PD9CQz5CQkI/PT4+QkNBRUA/Oj5FQDtPo6alpKanqKmnpaSlpaSlp6enqKimp6empaamtbW2tra1trmKbXFtb3x8cWdqZmBhbGBUTltoam5vbYGCfXFncXZ+mqinqKqpqaqrq6yqqqqopqWlpKKjpaampaWlpqmqqaalo6Slpqako6OioqKioKCfn56enJycnJydnZydnp+goqGio6OioaKipKWkoqKjo6Sko6SkpKOhoJ+hoqSmp6eoqamnpaWkoqSkpaitsLCsq6qrrKqpp6WlpqWlpaWmpaaoqKmopaWlpKSkpaSjo6SjoqGhoaKioJ6dnJybm5uamZiYmJiZmpuZl5eXlpaXl5iYmZqanJuampqbm5ubnJyeoKChoJ6enp6cnJt+em5yYl5TTUpQRUZOTUJAT0U+STs9NTM2MzgzNjY3NTo7ODk7OTo+PTs6OTo+NzY2OTY1Nj5CPj5BPz0+Q0E+Q0NAQDtAQEJCQkVAPjs+RT88UKCko6Sjo6OkpKKkpaWkpaampqenpqampaampbS1tbW0tLW4gWh8fWVzgnpscHVhX2NUTk9RW2hsaWxscW1ucW50nKKkp6ioqKmrqqqqqqmnpqWko6Ojo6SkpaampaesramkoZ6dnqOkoZ6en6CgnpydnZycnJqampubnJybm5ucnZ6en6CgoaCfoKGjoqCho6Sko6KkpaWlpKKfoKOkpKSmqamop6WhnZyfo6Woqamop6ioqKmnpqWlpKSkpaampqampqanp6WlpKOjo6OioqKhoaKioaKjpKKfnp2dnJqbm5qamZiXl5iWlpWUlJSVlZeYmJqbm5ybmpqampubnJubnJ6fn56bnJycmpuaf35xdGBbVE1HTUhGTEo/P05DPEA7PDQzODM3NDc2Nzg7PTg6Ojk5Oz07Ozg5PTc3ODk1ODg/QD0/QT47PUQ/PURAPz86QEFBP0FFQD48PEM/PE6doqGioqCgoqWkpKSlpaanp6enpqampqWmpqW1tbW0tLS0t4x2pbF3ZnNyb3NsY2RpWE9SUU9PXYBtZGBabZGRkqKio6Wmpqanp6ioqKempaWko6KhoaGio6WnpqanrKynpqCdnJuhoZ6bmpqdnJmYmpuampqZmZmbm5ubmpqampqbnJ2eoKGgn56foaCen6KjpKOjpqeop6iloqChoaGhpKWlpaSgnJmZm56jpqampqamp6anpqWjpaSlpaaoqKenp6WlpaWlpKSjo6OioaKioqKioaGio6OioJ+enp2cm5ybm5mWlJSUk5OTk5OUlJSVlpeampubm5uamZmampydnZ2dnZ2bmpqampmal393b3NdWk5ISk5HRUZJREVOQDw9PTw0NTs0NjQ2NTY3OTs4OTk4OTk8Ozw3Ojs3ODg4NTg4P0I/QUE8Pj9APDxCQEE+PUE+Pz89QkFAOjpAPDxPnaKhn6CfnZ+jpKSkpaanqKinp6empqampqaltbS0tLS0tLW0l7andWZ4dmNsY2NlY1tSU1NSTV6gjHhYaHaWo56eoaGjo6Ojo6SkpaampaSkoqGhpKOjo6Kjpaalpqanp6afm5qboqCZlpaVmpuZl5eYmJqamJiampqam5uamZmZnp2doKKjo6OipKSlop6hoaGio6WmpqWko6GgoJ+foaGfoKCdmpiXmZqcoKSjo6SlpqempaWjo6SkpKSlp6empqampqWlpqSjo6Oko6Kio6Shn6ChoaChoKGgn5+enZ2cmpiXlZOSkpKSkpKTk5KTlJWWmZqam5uampqam52enp6dnJycm5uampmZmZR9dGx0XlpPSEVHRkJFTkU/Rjs6Pj87NDY6NjkzNjQ2ODg6ODk3ODg6PDs8OTs7Ojo2Nzg5OT4/QD48PUA+QDo5QEE/PUE/P0FBPkFBPzo5PT46UJ2gn52bnJybn6KjpaWlpaeoqKempqamp6amp7S0tLSzsrKxsLCtq5B4ho9+m5p/d2JdU1JRUUxioKKLWoigoJ+dmJmcnJ2dnqGhoKSnp6alpKKho6empaWioqWmpqWmp6amoJuZm6Ggl5OTkpeanJqXl5eYmpqZmpqampuamJiZmqCgoKChn6GioqSmpqKeoJ+foKGjpKOioZ+enp6cmp2bmZqamZiXmZ6goaGioqKipKWlpqSkpKSioqKipKWlpaWlpaWmpaWjpKOioqKhoKChoJ6fn5+fn56fn6CfnJuamZeVlJSUk5GQkZKSkpKSkpOUlZeYmZqZmZqampufn56dnJycnJqZmZqYl5eRfHJncV5dUEY/QUQ/Sk9CQkY4Q0U+Pjk4Ozc3NDg0NTk6Ojs5Nzk6PDs6PD0+PDw6Njc2OTg+P0E+Oz8+PTw4Oj5BQEFCPz9BQkBEQT46OD5BPFOcnJubmpqcnJ2hoqOio6KkpqempaWmpqako6OysrCtq6empqempaaopZ+oqKeqp6F5hFxRUk9MXJyggGKZoJ6dnJWTlZaXmZqdnZ6hpqampqSjoqKmp6emo6WmpqWlpqempqKdnJ6hn5eRkZCUl5udmJaWlpibmZqampqamZeYmpuhoZ+en56cm5yeoKCenZ+en5+goqOko6Kgn56dmZaXl5eYmJmbm56ioqKioqKhoqOlpaSjoqOkoqGhoaKjpKSkpKOkpKSkoqKioaKhoJ+foJ6dnp6dnZ2dnZ6enpuZmJeVk5OUlJOSkI+RkpGSkpGSk5SWl5eYmJmampqcnp2dnZybm5qYmJqZl5WWjXpqZmpgYk5GPj9APUpFQENAO0BBPDo7OTo3NjU4NDY3ODk9ODg7Ojs/Ozo7PDo5Ojc3Njg7Ozs9PDo6PD08Nzs+Q0JEQz89QUNAREE/PDpAQjtXmZiampmZmpubnJ6dn6KioaKkpaSkpaakoqCeqKempaalpaWnpqempqampKWmp6inoalyTlFNSlSWoXpympycnpyXlZSVlpiYl5eanqKioaKjpKSjo6WmpaWmp6akpaampaWjoKChoZ+ZkpCPlpqZnpyWl5eXmZucnJyampmXmZubnp+dnJ2cmZmanJ2cnZ6en5+foaGgoKGioJ+em5eVlZWXmp2en5+hoaKioqOjoaGgoKCdnJ2hoqKjpKSjoqGkpaSjpKOko6KioqKioaChn5+dnJ2dnJydnZydnp6al5aWlZSTk5KSkpKQkZKSkpKRkpSVlpeYmJiYmpucnJycnJydnJuZmJmYlpSVl4t4bGNkYmRRR0E9QztLSEQ6Ozs8Pjk6Ojk6NzM3OTU6ODg4PDk4Ozk9PTs6Ozo5PDw3NjQ3Pzw6PTs8Pz48Ozg8QUNBQ0JCPj9CQEJBQDo/QD87WZmYmpqampubm5ucnaChoaGhoaKioqKioZ+fnaSlpqanp6WlpqempqalpKSmpaSkpKWmhlBSUE9Pj5hwepqbm5yenJycnJubm5mYmJuenZ6en6CjpKKhoaKioqOkpKWmpaSjo6GhoZ6cmpWTlJibmpuempiYmJianJ6cmpuYlpmcm5ycnJycnZqam5ydnZ6enZ6en5+dnJycoaGgm5aVlZWWnKChoJ+foaCio6KjoZ2bmZaWlpaYnJ6goqeopKGgoKKjo6KioqCgoKCfn5+foJ6dnJubnJ2cnZyZmpyblpOSkpKSlJOSkpKSkpKTkpKSkZKUlZaXmJiYmJmanJuam5ubnJyamZiYl5WVlpeHd2RnaGRiTUNFPEQ5SUpFOTo7PT06Ojg4OjY0Nzk1PDk2ODk3OTw7Ozw6Ojw7Ojw8ODc4Nz49Oz4+OkI/Ojo6P0FEQkNBQUA/REFBQD46QD49OluamJmam5qbm5ubnp+goKGioqCgoJ+fnp6dnZylpKWmp6alpaampKKioqOjpKOio6Oip5ZUWFVSTmdta4GempubnZ+goJ+enp6enZydnZyenp6foKGgn5+goKChoqOjo6Ojo6KhoJ6bmZmYmZmZmpmYnp6YmJmZmpualpWXlpWYnJydnJudnZ6cm5ydnJ2em5ianqGhnZubnaCioZqVlZaWmaCioJ2bnqCho6KfnpuXl5SSkpSXmJmdoKKnp6WhoJ+eoKGhoqGgn56dnJybm5ybm5qamZqcnZyZl5mWlZORkJCQj5GSkpKSkpGSk5OTk5OTk5SVlpaXl5eZmpybm5ybnJyampmXl5aWlZWUhHJmbGJkW0RCTD0/OEZLQjxAPj49OTs5Oj04NTg4Njs4NTY6ODw8Ozs8PDs5PDo9PTk1ODc8OTw/PDpBPzo6OkBAQ0JEQUNAP0NBQD49PEA9PTpfmpeZmpiXmJqcnJ+fn6GhoaCfn5+en6Cgnp2dpaSkpKOjoqKjo6Gfn6GhoqSjoqOkoq2nV15dVFdfbmuNnZqam5yenZubnJ2fnp2cnJycnZ2foKCgoaGhoKChoKChoqGhoqGfnpyampqam5yamZqbmZyemZaWlpeXk46OkJSWm5ybmpubnZ+dnJycnJyenZaUmZyfop+cnJ2foaCbl5eZmZqcnJybm52en52al5aWlpSTk5SYmpqan6ChpqaloJ+en56goaGgnpybm5ycm5ucm5uamZiZmZmZl5eYlZSSkJCQkI+QkpKSkpGRk5OWmJeUk5KUlZSVlpWWmZmZmpudnJycmpqZl5aWlpaWkIBvb2VeYFdASkg4PzdJRT9FQTw9Ozo6Ozs7NzU7ODY7NzQ2Ojo+Ozo9Pj49Ozs7Pjs6ODo5OTZAQT06PD06Ozk/QUNCREVDPj9BQT8/Pj4/PTw7YJeVl5eWlZeZm56hoaChoqKgnp6enp6goJ+dm6Wlo6SkoqCgn6CfnZ2foaKjo6OjpKGwo11lZGBhbmuBnpybm5ubm5mYmpydnpybm5ucnJyeoqShnqChoaKioaCgoKGhoJ+fnpyamZqbm5ucm5qdnZuZmpyYl5WVlpGOjY+SmJ2cnJucnJ6gnZybnJycnpqVlZuen6GfnZycnp6dnJqampqampqam5ual5eWk5KVlZaVk5WWmpuamp2en6Klo56en5+fnp+fnp2en52cnJuanJqam5qYmZiYmJiYmJWUk5GQkZCQkJGSk5OQkZOUmJmYlZOUlZWVlpWWl5mZl5manp6cmpiYl5eWlpeXmI19bm1fZVZURUs8Nz43UkVDPkJBODs8Ozk4Ojg2Ozc3OjY3OTo9Pjo8PD0+PTw9Oj89Ojg8PTk7QD4+Pz0+OTk7P0JDQENFQz0/Q0I+QEA+QD08PGGVkpSVlpaXmpyeoKCgoKGgoJ6enp6eoJ+enpulpaSjoqCfn56dnZuZm5ycnZ6foJ+eq5hjaW1uaWZtnp2cm5ucm5qZmZmampubnJubmpucoKOkoJ2enp+goKCgoJ+goaCgn56bmpmampubm5ubn56cmZiampiYmJiSjo+Tl5ydm5ydnJycnJ2cnJ6enZ6alZecoKGhn56dnqCfnJybmpqam5qamJqZlZOTk5KTlpeXlZSYmJmbnJycnaCfoJ6enp6fn5+enp+io6SioJ6enJuampqbmZiZmZiXl5aVlJSTkZGQkJGSk5OTkpKTlJiZmJaVlJWWlpaWlpeYmJiYl5mampmXl5eWl5aXlpeJeHZnXV9XVEVFOTk7PFk+QDhCPzk7Oz45ODs4Ojs3OTo1ODk7PTw5PTs9Pjw9Pjs/Pzs5Pjw8Pj8+QEFBPTg3O0JDRT9BRUM9QERCQUBEOzs+OzxilpOUlJaVlJaYmJmbm5ycnJ2dnJydnp+enZyapKSkpKCfnp6cm5uamZiYmJmbnJ2enKaJZWt0eG1bhaKdnZycnZyam5qampqcnZ2dm5qbm6Ciop6bnJ2cm5ydnp6dnZ2dn56cmpqbnJ2cnJucnJ6enJuamp2ampuclZGTl5udnZydn52cnJycnJ2en56fnJeYnZ+hoaCenJ+gn5ybm5uam5qZmZmZmZeVlpWWmJeXl5aWmJmbnp6dnZ+hoaCfn56en5+fnZ+foaKioaGfn5+cmZuanJ2bmpqZl5aWmJeXl5aVk5KRk5SUk5SUlJSWmZiWlZWXmZiXmJeXl5eXmJeYl5eXl5aWmJeXlZeXg3h2X1tdXlE9Rjo5OD9VQ0E7Q0M6PD4/Ojo5Nzs4ODg3NDg5PDs8ODs7PD06PT46P0E9Oj08Pj5AQD1AQT45NjxEQ0VAQUVFPT5FREQ/Qjs6PDk6ZJeUlZWWlJSUlJSVl5iYmpmanJycnZ6enZ2cm6OjpKOgnpybmpmamZiYmJmYmpubm5uliWtxdnpvZZqfnp6dnZycm52enZydnp6dnZycnZucoKCbmpqbm5qbnZyampqbnJybmZmcnJydnZ2dnZ2dnZ6cm5qfn5ucnZuZmZmbnZ2dnZ+dnZ+fnZycnZ+fn5+bmp2foKCfnZyeoJ6bm5ubm5ucmpqbmpmbnZyamZiXmJiYmJqdn6CgoKCfoaGhoKCfnp+fn56en6GioaCfnp6fnpyampubm5qamZaWl5mZmJiYlpSTlJSVlZOTlZWUlZaVlZWUmJmbmpmWlpeVlpiYlpeTlJSRkZOMkZCTln14amFiYlxQPEA8NjhDVkhEQjo4Ozo+Ozc3OTY9Ojk5NjQ3Ojs8PTk6Ojs/Oz09PEA+Ozs+Oj0/PT5AQT9APDc7QUNFPz9ERD4/RERDPkI9Ozw7OmeWk5OTk5OTk5SUlZaXlpeWlpeZm5ucm5ubmpmjo6Kgn56bmpiXmJeXl5iZmJmcm5uapIBqam95c3GXoJ6dnZycnZ6enp6fnp6dnJycnZ6dm5ybmpqampubm5mYmJqampmZmZianZucnZ2dnZydnJ2dnJuanZ+bnJybm5ybm52dnZycnZ6dnp2cnZ2dnJydnZubnp6enZ2cm56bm5ycnJycnZybm5qZm5qZmJmZmJqZmZqcn5+fo6Win6GioqGhn56goJ+fn56goqGhoZ+fn5+dmZqbnZ2amZiVlpeWlZWWk5KTlJOUk5CQkpORlJGPjpCRjpWWm5iVmJSZl5SYkYyQj5Ock5KMhYyHg4Z3cWdqZFtcUUE+ODZCR2BCRUdAPjs8Ozo4ODY1PDg6ODM0OjY5PT05OTo8PTs8Ojw+PDo+QDo+QD48P0A/Pjw4OkNBRD8+QkQ/PkNFQj1CQDw8PDpnmJOSkpOTkpOUlZSVl5eWlpWWl5mZmZqampqapKKgn5+dm5qZmJiYl5eYmZiZnJ2dnKh9Z2Vze3pziaKfnp6dnZ6enp2dnp2enp6dnZ2enJucm5qbm5ubnJuYmJiZmZiYmZmZm52cnJ2enp6enp6enZ2cm5udm5ycm5ydnZ2dnZydnZ6fn5+dnJ2dnZuam5yZmZydnZ2dnZubmpydnZycnJ6dnZ2cm5mXlZWXl5iampubm52en6KjoaChoZybnJubm52anJmcnJ+gn52YmZmZlJKSlJeUj4+PjpGMjYmLkIuJi46RkY+JkJiYkJKMjYuSkI+YmKKoqqalpayjpqGanqensqiilaOgn5d/cHFpbFxbXE1GPDc3R0dYPkhOVEY5Pjo4OTg3NT05ODczMzk2Oj48Ojc6PDs6Ojo6PDw7Pz47QEA+Oz0+QTw8NjdAPkJAPkFGPjxBREE9Q0I+PTw5ZpiUk5OTk5KTlJWTlZeYmJiWl5eYmZmampqamqKhn56dnJuZmJiYmJiYmJmZmZucm5ysf2pten95cYehnp6dnJ2enp6enp6enZ6dnZ2enpybm5ybm5ubm5ubmZiYmJiYmJiZmZydnZycnp6enp6fn56enZ6enZycnZydnZ2en52dn5+eoKCfnp2dnZ2cm5ydnpuam5udnp2enZubm5ydnJ6dnJ2amJeUkY6PkJCRlZiUlpSYmZqbnZibmJWNjI6Ok5KSkY+JkI6RkY6PiouNjY2IiIuPi4ONjZGPjJCNkJOVlZyYoaCckp+koqSpmpuXmpyjqa29wcG6vLi9urnAvLm6t7q7u7S9s8G1f251ZmdaXllMSUU6O0xJUzxWUklDOkE6Ozs3NzU6Ojo4MjU2ODs9PDk5Ozs8Ojc6ODo8Oj0/OTw/Pjw8PUE7OTU4PDtAP0E/RD08QUJAPERDPT09OmGTk5GQlJSTk5OTk5SXmJaXmZiZmJmam5qampqfoJ6fn5yamZqampqZmJeYmZmZmZmZqYVwdXuAd2+JoZ6enp6en5+enp+en5+enZ6en56dnZydnJubm5ubm5qYmJiYmZmYmpudnJydnZ6dnZ6eoKCfnp2eoaCenZ6dnp2en5+enp+gnp2enpycnZ2dnJuamJyblZiampiYmJiZkoyQl5Sgl5OPjI2KioiJjIiTkYeQj42KipCQi46KjIuPiIiJiY6Rjo2GhYmGioaFi4iPkpCQjZCSl5aSmpidk5SepKamqquxrK+vq6arqrG5ubW0tK6sr7TAyMXFwb7Gw8TEw7q1vre2tLOwtrW+qnB0clxmX11dSUY/P0VLTFZJXExEPz1COkM5OTc3Ozk5NzE3OTg6Pjg4Ojw8Ozk3OTo7PTo+Pzk+QTw7Pjw+Ojk2OTw6QT5DQUE9PEJAQD5CRD4/Pjlch4SDh4uNiomGhYGKjJGTlZiYh5WWlpKYmpqZnp2foJ+dmpqbm5ucnJuYlpiZl5eYm6qOenV2e395gqCfn56foKCgn5+fn6Cgn56dnZ6fnp6dnZyam5ubm5ubmJiYl5eYmZubnJycnZ6enp6cm5udnZ2cnKGhn52enZ2dnZ6dnZyYlpaWmJWVkpaZlpORioyPj4yPjZCLi4+PlomIhIuRmY59hYuNj42Mh4qMkJuMkY+Pi4qOk4yMjYyIkouMhYmMj4aLiIeNioWMhI+Kl5CTmJqVm5yjqqGipJyiq7G3tLm1sbOtr7KypaezurG6ury2t7bAw8O9vby2v7q6vMG1uMC+tK+upqmvt5pufGdbY1pdX0hFPkFLSVNYWV5BRjk5PTlGPz86Nzs7OzYzOjc6OT44Ojo8PTk5ODs5Ozw6Pj07QEA7PEI8QDo4NDc8O0I/QUI+PjtDRERAQ0M9Pj45YZmVi5GFjY+Wkoh5fXt/hYuDioKKiYZrgHiQi5aakZ2dlJSRk5aXmpqYlpONkpOSkJubiHZ3c3F9f3KRoJ2bm5ucnp2dnqChoJublpabnJqcm5ybmJmamJiZmpqalouQk5aZmJWYmJabnJeVkpGNkpGQlJOSl5uZmJuXj46Qi46NgoeLi4uKi4iNkYyHh4aKiImRioeMhIWKjYuKjYSPlJCMg5CTlJmVj4uUk5GVkZaVjo+RjJSNjo+KiI+Hj4aHiYmJjYqJiYqFjYeOiZiSlJqbl5igoaegpKOaqqmztrG1sKipoqiurZ+qr7Cttbm4vMK/wcS4sbWwrrazsLi+vLq8vrqzs6ext8KQdYBjYl5aV1JNSEZFUElZV19bQ1A6QkM9R0Y/ODc6Ojc1NTk3PDk8OTg6PT46Ojc7Oz47Oz07PT9BOz8+PD86ODUzNzpBQUBCPj46Q0RDP0FDOz0+OWeppaKimZ+goqaXlIiNgoiCdYeIioiKe3t2e3p5j3qIkn59fHp+gpGFgYB9c3x/fXyEh350cHh2c3x2gY+IiImHiIqMjJGYnJeIjoSLjYuIjZCPj4uRj4uMjo+QkI6LhYWHi4yMh4iLjouHjIWGgY2LhoqKf4mKhoiYkYiDiIOChXyLi4yGiYuIipCMiIuNj4yPloeJi4qOjY2NlpOTnZycmpacnJuem5qbmJ2Xk5GVlpCSkYuPi5aUjI2Kg4uEhImMkJCKjoqNi4qRiY2Tk5OUlZOSnJmel5+gn6Wir7GprqSkn5ikraamuLesrLu9vcLDwL+/r6WtsLC0t7iztLi2tLWurLSvuLS2gXl6Y2ZgXlZQUUFFS09JXF5fVEdHQktMQkRAPTg4Ozk1Nzc5Nzs3PTw5PT49OTs4OjtAPDo9Oj5CQTg/PDo/ODY0Mjk7QkA/Qj49OEFCPz5ARDtAPjdgpaCal52hmqGgj5eXn5eVgo2gn6OhnZqSjoyMcnFwb3ZxbnBtbnB2bm9vcGhwcXB0fnNxcnF3e3J5dndycnd2ent5fH17f4iBhIt/j5GGjYuLhoqLi4mGhIGGgoCCiZGDgIOMf4aPi4mFgId9gIGSkIaEhIaNg4SMj4+PiI2Ph4uIkZCVkY6QipOXjo+VmKekn52VmJaWpZ+bnaumqre1uLKxp6+qp6ahn5qdlpKVlZGKj4yJk42blY2Li4aGiYyVkJCQi5mSlZWUm5CYk5SMjZGMlpeVopWepqmrp6OjqrCbnKafpquhtL2+s7O/ubu7urm8va6orrGusLi8s7SxsaqwqaixsbKopXdydF9oYWBUVlFJSkhWTV5eXlRMSkVRSkVHQz06OTk3NDg2ODM4OD06PTw+Ozk7ODo7Pzw8Pjk/Qz84Ozo4PDc3NjM3OUU+P0M/PTdAQEE9P0Q8Pj04VI+MhoeHlIyVmZeclpmWjZWclpWcnaCgnZqYlnhxbm1yeHFxbG5ycGtxb3BtcnN7dXZ3eX51cXh2dHd7cm5/fIF9eXh9f3mDhoOFgoOQi5CLi4uOj4uJiYWCgX1/c32IgH6ckISFhYmLj4p6fX2Gjo2Kho2UkYuQl4+Ul5KYoZael5Wbp6afoKCmsKuho6W1tLKqpqqvorG2ub3Cu7nDvry4vbi1saywrKWbkpOZn5uUj5OVjpqdnaCan5+XnaOqrKGfnputoaeqsKmmpqSYkZGVlKOkoqykrLO0s7Oot7a7uLCyr62tsre2urK1urO3ubu4vLq2sq+ssbGys7SzsbGtrrOxs7OsoZd2cXNfY15SUVRNT0lHWE9aXGRUTkdVT0VESkQ+ODo4NzU4ODg1OTc6Oj08Pzo4PDg5OT07PT06Qj4/ODs6OTo5ODYyNTdCPj9EQEA2Pj9CPzxDPD0+Ok5/fIKOjIyTk5eXmo+Ulo2WkZGUl5Oamp6hnZxyb3JxcXFxcXBuc3FvdXRycXZ3gHV3fHmFfnd7fHl9f3yAiYmJg316f4eBiImBgICBhoiBhouGiIWEiIiJhICCf3p8fH1+kpB/iHiBhYuKg4SFio+MjZGZnZSUlKCamp+irbGtqaSlra+srKy1rr65ra6ptbC3sauxtqyvvcLCwL66vLayrra2sbSuuruzrqynqaerp6KpraCpqKKvsLi0sby6urqytLWvvLS3s7e3u7e5ra2wqay1ubG3srS3trC7u7y7urq8tby4tMG1rKqqq7Sxt7i5tba0s7Cspq6wqquwsausrrCysbSuqqOTeHZyZWdbTFJQRk1IU1dSZV5nVFBMXFFITFJDQTk5Nzk1ODg2Njs3OTo8Oj45ODs6Ojo8PD49PEQ+OTY7Ozg4Pjk1MTU2QkZERD9ANz4+Qz46QT9AQDtLf4KJl5iUnZaWm5iLkpaOl5GRlZeUmZefm5mcfHR1dnV5dXN0bnZyc3R1dnd9fYF+eoF8g36Cf32Af4SChY+dkYmBf4KPl46Oh4KAgYiLhX6KkIt/h42Mi4qHkoqHho2Rk5GRhId9fYOIjI6LjoqJkI+Oj5SUmJGVm5qdnaiusq+vtbSzrbK1uLC8tbWxqrCqs7W0u7e0s7a0ta+4uLetp6KmrLCwr7a3t761ubyzsrGutbuwtK+vsru2sbjAvbS0tLO4s7y6trS6wL25urm6vrm5ub61srGvsq+qtbSxs7G0s664uLW/r6SmqKOrrLGvs66usLCsrauqq6Kipqiip62rqqWsp6KnmHh5cWZlWU9PTUlSTVdMT19eXE5VVGJRRFRNOz85PDg5NTc3NTc5NTo6Ojk7ODo8PDo9PD4+Pz9CPTg2Ojo5OkA7NTI2NkFGQ0M+Pzc+PUNCOT9CPz47S46Rk5iZlZmRk6KYk5KSi5OLjpCPlZeWm5WUm4aCfXp4dnR0c3R+d3p3doCCg4aLjISEhYqGkImHkZOWkY2WmpWPiIyPnpiWlZKQk5eampiQnaCdk5eaoJmdm6OglZCboKSjmpONiIiLiZGRjpGOi5iaj4+MlJqXnJybn5ykrLS5uryvtrS4tLSyt7i5s6uvqqistbKyta6xq66mt7OzsaWhqLWwr62sq7W6sru6urSyt7q+u7mxuLC5raiyuLuurbS0t7W7tra5uby3tK+xtLe2ubO3taatqauoqK+sqa6trqeisbSxtKumqKego6uuqKquqKyysK+vqaihnqGho6ajoKKapaOeqJdyd25nYlVLVE9PSkNQS19iWFpRXFNfTEhRSUFAOTo4NjY3NzU4OTQ7OTs5PDc7Pjo4PDw9P0JAQT07Njk5OTo/OzYzNzg+RkJCQEI5Pj1AQz5ARkI+OEeTlpGVk5KUkJGfmZ2ZlZCPkpKOjJOWlpKOkZWRkpCGgXlyc3V7gYSOh4WRk5KYnJyYlZCVmKOcmqGnqqmfnJaXlZ2ioqGcmZ6Zpaisr62pp6qpqKehpaioq6mpr6Gbn6Gjo6Can6CclI2YlJigoKGknpuapKekqauurKWjqKuvsbSuqqyus6+srLSztLmurq2sqqyysLCtsKiqprK0tLiuqra6sK+qrqywt7O4tLe1tLu8uLW1sbWrsqyosrO7r62xsrS2tbGxtLOzr6yrr7O2tLGsrrSqqqalp62rqKirqaqon6mzsKqnqaWjoqOwrammraWoq62sqaWkoqCloqWjmJmclZ6ioqaXbnVlZ2RWT1hLS0pLU1RwYllkV19bXFJaUExDPDg5OjY5ODc0Nzc0ODo8Ojw4Oj05Nzw8Oz5DP0E+Ozk6OTo7Pj04NDU4QURFREJDOT47QD5CP0dEPjdCkpuUlZWWlY+OlpeamZWRipOUko6PkpGKiomNlJeak42JgoaOlZGUn5qbop+fo56hoZ+Yo6SnpaWmqamtq6mipqSopaShn56jo62trK2oq66uqqqrpKGipamnp6moo6Kcm5ukoKWoo6CYnZmfoaKpp6Cioq6sq6qnra6opaSpqamppqOoqqmnpKeusK+zr6uwq6qvsq+ws7mvq6iwsa6wsrmztK+tr7WwrLOxrqy1tbS0s7Owr6ysqqyrrK+xtLOwsK6wsLCsqq2rqqumpa6wsrCrpqmwr6mjpKmrp6imqKarsKupr6mmqKmmpaOosK2qqaiiqaOlp6ShoaCipaGdnpeWmJSboKSplG5zXmppX1VaTlJOUE9SZFxkY1tcWVxQWU9LQDw7OTo3Ojg3MzUzMzg6PTk6ODk6OTo9PDxARD5APTk6PDw8Pjs+OTU6PEJBRUFDQTk+Oz9AREBDQkA3QJGemJSXmZaRh4uUkpeRiIOJi5OPjpCNh4eEhZWZlpiXmZaanqKdmpyipKGgnZ+an6ChoKahoKCgo6Oipaipq62pqqajpqWgpaCmqKalp6imqaijp6aZnKSloqGgoaGgnJiZn6ChpKSinp6WoJuaoqKgoZ+goqignJ+hpaGgpqOin6ShrKaen6GhpKyqp6yor6untLGurq+1sqyqsKupra21sK6urK63rqesqqSor7KvrKuyr6qqqaurramurq6xsa2qramrp6erqKmrop2mqaiopaiorKiopaSlqKeoqKaprK+vqKupoaKipaOjqauspqilo6iioaCknZ2foaGdm52fmpmVnJyjqpRvc2ZucmRdXVBVT1dPXmRkbGdiYVpaUlRPTUE6PTo6ODs5NTE2MzI4ODs5OTk5Ozk5PDs9P0M+QD05Ozo7PEA9Pjw5OTxBQUVBRkE6PTs/QUFCQUVCOD2KlpSTmJqWj4iEjY6RkoyIiIiPiYmQkY6Kioibm5mcoKWipZ6io6GanqGcmp2em5yjqKeroKCjmKCdl5yho6Olo6KipKyopamgnqapp6uppJ+ioKKmoaatpqadn5+fn5+ZmpycoaChpJ+hm52anKCeoZ+enqCjmZaamKOioqSfmZyhoaKgm5qeoKGkoJ2no6qxqK6rrKmkqqqrqKympayqsLOvq6upsKumqaWlqKusp6anr6ulp6urqauoq6qqq62opaijpqWnrKmsqKKcpKGjpqOqqaimp6Okp6imp6inqairqaGiqKOcnqalo6iop6OlpaapoKSeop6XmJ2fnaKipZ6YlJWeoKOXdXdrdndhX1xVWVFVVltjXnJgaF9jU1FYVEg+PD04Ozk6ODUzNzMzNDc6ODk9OTs6OTw8QUBDPT0+ODs8PTxAP0M/Ojg6Pj9DQERBOjs+PEA/Q0NFQzk8gpiZnp2dmpWSiomRkZeRkIeEiYKBjY+Pko+NnJ2foaSppamnqKytpqKin5ikpqOkrbGusqemrJuenpuao6egn6Ofn6Kvq6qsqKirsKmoqaihn6Cnqa2wsq+so6KmoamlnqSjoqagpaSipaOenaCen6Wiop6fopiVnpqen6Shm5WYoKGdnpybnZ2bmZmVnp+jqJ6doqihmqGjpqKkqKmqqKuwsailpaenqKSlqamqp6KlpqimnZ6lpaKgpaWjpaago6Wjo6WnpampqqSnpKaipqekq6mnp6Shpaisp6alpaOjqKSVnaOfm52go6mnqKaho6OpqKCooqCclZGan6ChpqKbl5KQmpqglXx3b315ZltbX15aXFZcaGRvY21paGJeUFBAPzs6ODk4PDs2MzQzMzM3OTk7PDk7Ozk+PUJAQD07PTg8PUA9PDxDQT46OD0/RD9DPjo5PzxCPz9BREI5OoCepKeinpufoJmPmZ2glpaKho+IhIuKk5eUkaOlp6qurayzsrO0uLetqaqnr7SysaqurrGyrrGtpauzrLGxqauvq6ustrC0sKuxsrGjn6Kqqaeut7a0tLazr6yrrqu2sKmysa2up6aeoqOjm52cl6KopaGfnqObnqGalp2knJuWmaKnn6Cfo6CblJaZlpean6CZlZ6imZidnaWdoKSnqqmoqq2spamkpamnqqmqrKekpKSjopmZoZ6amqGgn6WlmJ6kpqSqqKKnpaWhqqepp6eno6ilpqWhpKinrKKnpKGmpaWjlZedmJuZlaOnpaWkn52dpaOiqqOfmpmYlpycmqGhmpCTk5eYm41/d3J2eGliW19eXGJZYGRubWttYV9kYFBPQUA8Ozk7ODo5NjE0MzY0Nzc3Oj06PDs5PT1CPz4/PTw6Pzk6Ozw+QkVAPTk7QEE+Qzw7OT85QEBAQEJDOzl7mqOjnKCdnaKdmZ+ioqCYm5iWmJKUkJualpe0tK61uLO0uLa3tLi5t7W5uLm9vLiqi5yyuLy0vbq1u7q7uLO6v7i3ubuxt6+orrKtopyfqrK4vLy9u7q/tK+xs7W0t7evtbS1srCopKKfoJeVmpekqqamoaSjpKulpZihpKOdoKGiqKGjoKWhnJOZmJiZnKOenJqbnZebmZalmpufoaipqairr6+uqaipq6ysrauoq6elo6Ccn6Ojo5+goqWpppqcoqekqZ+ho6KioKWmp6akqKCfoqSho6KoqKejpaChqKampaOZm5ibk4+hpJ6in5iYlaCboaWgn5ubnZybmpmboJqNmJmYk5GGgHZ4eXhjW1JZVF9fYWxodWtwZ2lpYllTTEA8Ojs4OTc5NzU1NjI4NTY3ODo8Ozs7O0A+P0A9Pj45Ojw5Njc+O0JGQjw4Oz9DQ0Q8Pjk+Nz5BQj9GQzs4cJKam5Sem5udlZednaKmo6KWl56Wl5ehm5SYvrexuLm2t7e4u5eUtr27vb3AxbWiu5igt7+/usHJtJ27trK2v8XBqKC2s7qxqq60sbCxtLS2vLy+vLy9xrq4t7q9tK+1sbG6uLeys7KqpqafmKSkp6ikrqSrq7W1rrOgp6qsp6qppaagp6ChpqGTlpidn6Kko52enKGgoZ2XpJqZnaCmqqqqra6trbCxq6ytrKmpq66opqWmpaakpKamnqOnqaShnKCio6agoqOfo6Sdn6KloKScm6Gen6OhoaWkpamjpKWipKenoZ+dnpaTnKCYmZKPjIyXlp+blpyanZyakpaUlJiTkJqdmIqLh4CAfIJ4YV1ZU2FoYGZzb3NpdGNpZGJbTEs+Ojg4OTg4OTczNDUyNTQ2Njk8PDs9PD9BP0BAPT4+ODk7ODY3PzlCRUM8Ozw+Q0RDPUA7PTc9Q0NARUI8N2eMkZOKmpWYm5WVmJuip6umlZeYkJWZoZ6Xl761s7S7urm4ucKHmLeruLvAwsWzo8OnuLO9v7TEx720u7i+tsDExK6gsKK1trW9vsHDxsPDub2/wMC9v8S9vLq9vrSnqpixwL24tbnAs6+vqqqoraenpK+nqrS8sbS1qK+xsK+sqqKmo6yfn6arl5qon6Wln6CcnaCrsLCsoqucmJugqK+ysrOrqK63tbKtrammpairpaWkramkoZ+gp56epqippp6fmp6hpaapnJ2jm5eippqbmp2fnJqhnJmdnqCoo5+hn52loqCjoqGUmZqZk4+Ki4SNkJObj46YlZuXmJCTkZKJjZeYmJOLiot9gICFcGBhXl5qYmJud3V2bmxbYlFVXE1HOzw5Nzk3OTo3NDQ0MTQzNzY4PDs7PDxAQD1APz4/Pjo6OTo3Oj8+RUVFPD09QEJCQkFCOzw4QENDQEQ/OzVfjIyGhZaLlJWXmJeYn6anpZaVlpGXm5+bmpe5sbazuby8ubq1qrK8sb7BtLzHubi7rr+nxsO/ysbJyMXFybzCx8e/sbGnvLy+xcTGycfFxrvEwMXGwLmvvbzAvr6zq6qMs7u+tLW3wrqtr7C1qqumqqOtpKextqu1sq2zraiur6emsK+yraqvs6SrtamnqKSgoJ6psri+tbW1qqmmrrK3uLe2qau4vLm3sa+up6KjqKekn6ijn56gmaGcnaKkp6ehnpSbmqChpZ6goZ6Wo52UkJaYm6Gan5aTkZaUop+anpybnaGepJ+elZyYj5KTj4yJk5CXn4mQlpGblJiRkZWWg4yVl5aSi4yIfH+Df2pmaGFrbGZudXFydXFmXl9cUklFPzo6Ojc4NDg8NzY1NDIzMzY1Nzw6Ozw7PUA+P0A+PD05OTk7Ojw8PkJERT4+PUBDQ0NERDo6OEFCQkFDQDkyW5OIhI2RiouRkZWQkpqdn5yTkpiUnZ2al5qVtrG5tbW+vra4tbizvLzExLrDx8G/tLPFxca/ws3Hy87Ly8fBw8bHyMrFxMXDu7y8wcXBxcW/w8LGxcCxk766v8PCtra6qbSztKmrs7u7sZ+bsa+spKyutKeqqaiqrayppaWeqa+rsru6uLu3ubezubizrqyztKqwtbm9wbq+vry+tLq5uLu6srG0vLu6u7OzsqekpquroqGgnZqbnZqcl5qbnpycoJ2WnJabmZ2eoqOdlJyQjYmOjpGem5yVjYeSi5iYlpqcm5icm56enJqelI6YmJqTkZmXnqGVmJqSl5SUkZSamJOPk52WkouRfnp8f3RrbG5jb2xocXdueWlpYVxnYVFGREE8OTk3NjQ0Ojg0NjUzMzI2NTY9OTk7Oz0+Oz4+PTs9OTk7Ozs/PUFDQUJBQDxAQ0NDRUI7ODlEPz9AQj87MlebkJGQkIeFko6NiI2Qk5WRj42UlJuUk5aakbO3uLi4vruwtbK4trW2wMPBvsPCwL67vru7vMTMxMzQysbGwMXHy8jUy8rIxr+7u77EvsXIxsbDxMO4tMC3tLzBwrnCt7e/wLuupa63vLetnKO3sKattLWsrqWlo6ikoKClmaqzsr7Bvrq5uri1tLKxtLSzusC+wL++vbu7vb7Awre2t7a7u7K7vrm4uLu2t7SsqKmpq6aoo56TmpqcmJGSmZeRkZial56YlpOWnJufnpSTiYl+hoiLlpSYmZGJlZGXlpWZm5qWmJeYnZ6coZiVmZmbmJecm5+eo5yelpiXk5ecmZmclJadlJaTiXZ5ent2bmtpZ3VaZnJ3c3hlZl1kW1JYSUY/Ozc4ODc2MTY5NzQ0MzMzNjQ2Ozg6PDs9PDg9Pjw6Ozw6PTs7Pj5EQUFEQkBAQUJDQ0RDPTk5QkA/P0A/PTJMlpqWkpOMipiQi4uMjZKSioiGjZCYio+QlJezu7W2v729sba4wb28tLi/wbG4t77Bxb27vMLGyb/IzsnBxMHHysrGysXMyM3GyMW/w8DLzc/JxsPDxMLEvbi+wcPAxL7Bz8/OxquvtrS1q6CntLOuq7i1s6upo6KtqaymrZ+stbS/wr65uL22sK2rrK+1tLq+xb+7vLqzubu4ubm1rbC0vbuxv7y4sra5s7m7tK2tqKysqqmnl56bmpWNjJiUk4uVlpScmZeVlpmSmJ+ZkIqKfomKipGOlZeTlJ+ZlpCUmZiZlpiTlJuhnqGYmJqdmZmWnp6Ym6KanZybmJqbmZaXl5acmZScmH6AeHl1dWVlaWlnXWlvbXh3YmJgYF1YV0ZFODo4Ojk3OTQ0OTc2NjUxMjMzNDs6PT87PT06Oj07PD46Oz8+PEJAQ0JCRUI9P0NDQ0NERUA5OkJBQUI+QkE1QpCXlJWZko+akI6SkY2UlYuKh4yNlIiJj5Katru0vMbBxMK9wcXCwLSzvb+ssK+6w8rDwr7NyMW3wcjFv8HCyMvKwsLEyczNz8/Mw8fGyMjIx8nHxcnHyMe/xcfExMfIytLP0sy8uLa0uLjBvr66vbq8urysraapu7q5t8CytbiywMa6t7fBs7GtramrtbO7tsO2tr21sbe+trO3uLC1tr+7sL26tKuwsbGzvLqzs66rrautsZ2jo6CakI6Yl5WQnJaWmJaVkpyZk5ufnJaRlI6VkImMkJWTlJuemJmSkpyXnZSZkpOWmZidlZyenaOclZ2fk5yinJygn52jnpiUlZeXm5qZoJB/fXF0cW9iYGd1Z2lpdG14bF1kW1VfWUxIQzY8OTk4ODo1Mzo2NjQ0MTM1MjU7Ojw+Ozs8PTw7PD08Ozw/PT9CP0VBQkNDPkBBQEVFREVBOzc+Q0JCPkNCODuPmpGWmpSSlI2QlJSOlZSOj4uMiZOLiJCTm7fAusbFxMPMwsHEvb61r7e7r6+zusDHxcTBzMvFtrnAwsLEx8rRy8LDxMbJxc3QzsfMycLBxsHLysjGzMnNxcbFw8bFyc3Qzc/Mx8TAw8LJzcfFwcTHwbu+tLGwsMG+v8HGv764t8PCurq2wL61sqypr7K4vrTAtLS4tLe5xLmvvL65vr/Cv7W6tquqrK6vsLe+vLa0rq2trrWkpaioppqcnJ2cnqKcnZmTkJKdlZignZiYlZmZmZeOjJR9kJCXn5mZmJORk6COjZKPlY6QlJWinZyknpuenpaco6ChoqSjpKKempmbm5ydnpyDfXJ8eHBnYGpqdmxpZHRuc2JcYlRXVFNNRzo3Ozk5Nzc6NzQ4Nzg0NTIzNDI1Ozo5Pjo9PD89ODs9OTk5PTxAQUBFQkFCQUE/QD9ERURFQDw6PkJDQkBDQTo0gKGXlJmYlZCJlJOWk4mRjJSRjoiWiouQl5zFy8PDvMDDx8G5vb27uLa3t66yt7i8wMLAwsfGx7q8wMLEx8jG0snBw8O/v77Ey8jKy8i8u8jHyc3Iw8jJycXFw8LBwsfHyMrHzMjHyM3GzM/Ft8DAwMC7u721s7O/v7m/w7nAt7vBvLq4u7m9u7Kwr7CsucK4vbm3tbe6vcW9uMbIwsHCxsK9vLWprq6wsK+zure5trCvra+zqaarqa6mp56kpaOjo6Kgm5WYnpGXnJeRkZWXmZWZkZSYkpWMmKOanJ6dhYmfk3ySlpWSlJSXp52goqSfnp+en6GhpKKio6Gjopydn56joaaZeXp5f3JvZmVnY2pkYWptbm5eWFxWVU5QSkY5OTs5NzY3NzYzNzg5NTYxMzUyNzw7PEA7Pzw8Ojg6PDk5OD49QD8/Rj9CQUM/PUE+QERDQ0E8OTxDQUNEQUA6M2yinZWXnZaPj5iYmZiIko2RlZCPlY6Ok5aWysu7ubq5wbu6t77BvLy7ubGutbq4uLvEur7Avr67vMDFwcbCvsbBubvDuri5vL7BxsHGurnJycPFxMDEwcLBxMHDvr3CwMDBwsvDxszLxcjQwrC+vbi6u7y+t7Swub6zvL6xubW4u7a8s7W5trm2ubexrbrBurzBv7e+xL/Gw8PHx8K7wMK/wr+4srOztbSxrre0t7W0saytsaelpaewraifp6umo6ilpqagoJ+UmJmUkZGVlJeTmJeaoZ2eoZyhnaGloJaUm5GXl5iak56ZmamkpaSlnaKgmp6gpKKjnKKho6CenJ6eqaWolX17g3huZmFkYmFiY2NqYmZiWllZXFhRTkU9Ozk6Ozc3OTk2NDk5OjUzMTQ1Mjc6OzpAPT88PDk3Nzs6OTo8PkA/PkQ8QkFEQD8+PUJEQkJCPjo5Qj9BQj0+ODVZn5yYk5mWkZWYmJqXkJGQkJORk5SSkpKUlMXHuLW6ucK5ubzDxcK4u7mxsba8urW5wLu7uba3tLS1v7q9v7m9urq0v7i1t7Ovu7y3wLe+wr/Bu7/AvLvFvrvBxMC+vri8wcHLvr3JxMDAysCxwb+7uLu+ubW3tLi8tL24tbSws7yxt7a4v7a9ub2+ube6vru/wMW9vcvDxsPEwMO+trm6tr+4u7+8uLazsquwsLK1s7OurKunpp6nrq2roqirpqaqo6eoqqOfmJudm5qYnJyYl5yboaWdmp6hoaChpqCam5yYm6CfnZyfnKCooaOkpJ2in5qioKKfnpekoaKfnZqYnqiloYt8eYd9cWNgYmJnamZmaWVpXVVVU1lPU0tFOD82Ozs3Nzk7NjU6Ozw2MzEzNDE3Ozk4Pz0+Ozw7NzY5OTg6Oz1APz5APT0/Qj48QEFDQ0E/Qz05NjxAQUA8PTg3SZSYm4+TlJGVmJWRlpKVkZCRlJWUk5KSmJXBwsC6vLm+tri+xMDCsb26srSzuLy1t7zAvL20tLGwtbe1usG4vri/vL23tbewrri2ub+7wMC3wby7w7a6yLi2ubu9ubq2u8XFyr25xcC/vMG+uMa9wcC8xbi2t7S4tra7u7i2tLe6tbS4vL25v7nDwMC7uby7vr3IxL3HxMO6wL2+trK2uLK5tLrCwrq3srGsrKutsq+yrq+oo6Seq6ysqqSmpKSoqqKnpq2ooaGhpp+joqKem5yin6CjnZyboZ+ioKSgnpuXmZ+hnZ2enqGlpKGioqGeoaOcop6gmZ2Yo5+dnqCamaCipp2EeoOAeHBtZWVmb2lla2dYWE5LS0pSSUxIQzk+OD07Njo7OTY3PDg5ODYwNDMxNzk5Oz89Pjo8Ojg4OTw4Ojs7Ozw9QT49PUNBPD9DQ0RAPz88Ojc+QkRBP0A4OD+JmJqMjJCPk5eVjJKQmpKRl5iWlJSSkJqUw77GwcG8vLi4ur+3vLHCtrS8sbS2uLO6vb+9vLKtr6yxsLe8tru8wMS5t7e3trq5urvAvcPAusTCvse4ubitt7W4urS3s7vFxsvBu8bAwL+9vL/Jw8TFvsa4tbKyvbi4uL66urm8u7q0t7u6ub+8xMC/ubq4v7m7xca9xcPCsrq9u7Gvtrizt7O6vsC5tqyxq66pqqmtqqqupqSlp66tqaWjoqOhpKWlpqKmraOipaOfoaOhnJqcoZ+gpaGgnp2coJ2loJ6XlZmdn5+doJ+ipqWgpJ6cm5+jn5+ZnJmdnqSclpyjnJ6hnKaWfn+GfGtucGdwa3NlYmxfW1RIS0pESkJDRz85Ozg9PDc7Ozk3ODs3PDw2Mjc1MTY5PDw9PEE7PDo7Ojk+OTo7PT1APkQ/PT5EQD8/QUZEPz88PTk3P0FDQkBCOTo5d5yYi4eLkJKTlo2Pk5qTkJ2YkpGOkI6Ykr23x77Dvr27vry9trq4vbq3vbOzsLi4tbm8vMC3qq2krrC3u7O9vrvEt7a4trfAv8S8wsXFx8fKycbPwsG4r7W1vL64u7K+xMTKxcHJw8K/v769x8zHx8THvbW1tsG9uru/wrq/wb+9tre9vb3BwcC/vLm3vMK7t7/Fu8K/vrW3vLyvr7e2sLSzurm6u6+prautq6ymqqKnrqilqq2tr6ekoJ+mo56io6ijo6ujoqKenZubm5SWmZycn6Wen56ZmJ6Xo6Ccl5mamZqjo6Keo6OnoKagm52go56dlqCZnKCgm5SXoJ+lnJiikIGGgXFlbGludG53Y2dhW2JQS1RIRUVDR0M8Ozk4PTo3Oj06ODk7Nzw9NTM2NTA2ODk6PDtAPTw6Pjw5Pjk5PT47Pz5DPD8+QD89Pz9GREBBPz46Nz9AQ0M/QT06OGahmI+LjZWSlZWOj5aZlZeblY6MjI2Pm5O5tsG0v7y5vMPAvsC6tbayssC4r7K8vLC3u7a7vKuqo7C5vb6zvL68xbiyuLm9x8nKw8fIxsbJyMzO0czKxbW6wMPIv7+1v8C/xsa/y8bDv8G8wMPMysfFxsG5vbzEv8C/wsi9x8fFxby6xL+7wb+6wLy7u8DEvbe5wrm+vbe0tri6rq+1sbCwsra3tLesrqyqrKyrqKuhprOqpa2vrayoqaWjpKefoqOjp6GnoqKenJ2cmpmMkJaXmZ2imZ6blZKdlKGgnZmen5iYpqain6KipqKnpaKgpKOhm52gm5yin5eVlZ6epJqWn4mBg4F0b2xsdGtsbl9iXmFhTUhNP0VAP0RDOzs6Ojs6ODs8Ojk8Pjk6PjQ0NTUxOTk6OTw7QDw/PT08ODw7Ojw7Oz8+Qz5CPkA/PT8/RUVCQUI/OzY/QkVEPUFBOjpZn5iTkpWalZqTkJaXnJWbmZaUlZGSk52Ztri2sbq7ur7BubnGu7a1sqW+vbS2wb+ts720uMGxsLG0vMO8urq+vMS/t72/vcfMxsfJxsa/xMTKyMzMzcvGwsPLzsK8ub26ucDDv8jGxMHBv8XAysnDw8PDucO+vbm/vMLGwsnOx8a+usa9ur+5t8C5ub7Awr61tLy4truwr7Kyta+wr66srrOws7K4q7Gysaqwq6usq6y2raisrrKmq6ypqaGloKWmpKykpqGgoZ6hoJ2gjJSXk5ufppmenpmTmJ2foJ6dnqKbmKetqKKkoKCiqqapoaihpZugoJ2do5+UmJiinaehn5uCe3qHem1td3tfcGNbXV9eU0k+QkVJQkM+Qzs+Njk6Ozs7Ozs7Oz09OT01NjYyMTg6OTs7OkE7Pzw8Pjc7PDs8PT08PUA+QUFBPj5BQkFFQ0JEQDw2PkNERT5CRD87U5mbmZienZqgmpacmZ+SnZWdm6CVlpSamLq9tLC7vMHEwr/Fxrq2ubKju720t8S7sLW6tbnEuLS8trq9wby7v7a/wb+8v7rAy8LHyMC/vLy/xcLHy8jBw8DAycrCwLu7sLS7vcDFxsXFv8DCv8vHwsDIwLrCu7qzurrBvsDKzsrEvbW8vLm/ubm1tbO/wL63tLO0uK23qq+wsLKxr6uvp6+2rrKxua62tri0s7Cxrba0urGurK62p6yyrK2ko6Gnp6iyq6qlpKenpaWgppebo5+kpq2inqOimp2loqKfn6Glnp6wtLCkpZ6fpKmnr6epoKugoqKaoqSdmp6hpqevqbGVgnt9gnptc3hzZ3BdWl5cWVFFRENNSUFEPUc6OjU5Ozo8PDo7Ozs9Pzo9NTQ1MTI3ODg7PDtCPD8+Ojs2Oj06Oz49P0A/O0FBQT4+P0JAQUJCRT46NTpBQkk/QEJAO0yanZ2en52Ynp2ZmpqckqCVm56fm5WRkZbFvrq2w7zGwr6/yMW3tbi3trm7tK+3trK1s7e5vLu2u7u9usO7t723ucC7uri4tcXBw8O7ubO0usG9v8fAucC8vsXEvb65srCuuLe/w8fDxL29v7/Dw76/x7y8v7S0rrW1vL6/zs3LwreyuLi4vbm7sbayyMC7trSxsLess6mwra2zt6+rrqqxta+xr7ezurrAv7a3trK7usC1sq2zt6ywuq+ypaKlq6yvubOyqLCvsa+qoqihpK2orayzrp+op6alpqukpJ6mqqOmsrizq6Wcn6emp66rqqWwpaWlm6SjmJ+nsay1uLCyjoR5f3x3bHV6cG1oXF9fWVNQQUVIR0tARENIPD02Ozk5PDs6Ojs6PT88PTU1NjEzNjk4PEE+QDs9QDs7OTw9ODo9PEA+Ojo+PT49PT5AQkJCQUQ9NzQ1PURHPUNCPzxFlJ6goKCcl5qYmJWZnZmdn5qdm5yWkY+Sw8DCvcK8xLy8u8W7t7O3tra7u7OglrWsr7G0tLS2uLnBwLe9ubi5trW/s7SyuLG7wcDDt7etsLW4uLjCurS7t7u+wLu7vK6vrrOyucHCxMO+vL+7uri2wcK1v7q1rq+tsL3Auc/KycOxr7W0tL26vrm6u8rDu7q2r7C9sbivsrOwt722rq+usLewrKyytr28xMK6vbe2wL/Bt7WwtrKxs7qxsa+nq6+rtr+3tam6s7W5saerqKe2rrKxtbmorKyvqq+wqqinrLGssra9tLGspKirqKirrKuotqmmqJ6mnZijrryxu8G0pomBfIJ6cnZ2d21wYF5lXVtUSjw+P0ZGPUZDQzk6NTs5OT48PDo6PD4+Pj44ODMxNTc4OT4/QT87Oj89PDs9PTk7PDk7Ojc7Pj09Q0E/P0FCREJBPDg1OD1DRj1ERD88P4mdnp+dl5eVlJOWmZ6bm5qbmJSdlIqOjsG+w8K+vr65trrAsbWxs7e3wrWzq62zqKmuta+ttLa5w7+3ure2trK0wLaytLizusDBw7m3srKytLK3vrqztbK8ury2ur6ytLS0sLi+w8bEwL2/ubOvsry6rru0s6arqK26vrjLwr++rKuwr7O6t7m+u8DFwbu8t7C1xLW/tLi7tLvDwrO2trG4rKmlq7K9t7+/u7u3sby9vLaxr6urqa2zr7Cwq7C0qbjAtrKptLWwt7atrKaru7OutLjCsLGxtbGytbGssLK4uLm4vrSxs66ssa2pr66qsriura2op6Geqba/uLq/sJaJfYB8cXN3dHZxbF5iYFtdTkhBPz1IQ0ZNREA3NzU7Ojk+PDw5OD0+Oz0/OjgzMjU3Njg/P0I/Ojg+Pj08OTw5Ozs6PDs7OjxAPkJCPUBBP0JCPzw7Nzo8QUQ+QkM/PkGKoJuhnZSYlZWTmJqclpuVmpWNm4+EiIa7tL2/u7y5t7O8vKyzsrS0tsC1wK+ys6qqsbetqbmzt8C9u7y4trq2scC6t7m4ubvBwcTDu7u2tLSwtrq2tLKsvLm4tbjBurizsay3vMHHw7+5urWupayzsKawraieoJ+lrba1wre2tKWoq6iwtrOyurW7u7u1uLawtcSyvry/vLm6xci6vb62saeknqGpsa61uLaysKu0t7axqKaeoJmlpqSsp6ustqmvurGtpKatpauxq6yprbi2sLK4wbaxsbWxr7u2sre1tbK8tbqysLGyrrSyqq6tp7i1srWtrqqoqLK6vcC2tKmOgnt/dm97b3VybWJcZlhcXVJOTUE+SkJASklANjY1Ozc4Pjo7ODc+Pjw7Pzo5MzI3NTc1PDw+PDw4Pj48PDk5OTs7Oz47Ozk8Pj9BPTxCQD8/QkA+OzY3OkBEQUNBP0FCiaCdpaCUlpiYlZ6gnJebmJmRjJmJg4aEta+0u7u0tbCxtrqusLSzr7W6tbqwtbOxrba6rqy8sri5t7u/vbm+wLS/u7y6uL7CvMLKx77AuLm2srS2s7SvrLu6uLa5wMO2rq6qsra8vbm2srGtrZ+kp6edo6adlpmZmp+prrmsq6ufpaikq66up6+sr7GxrbGurrC5sLS8vri5uMfFvLy7uKminJibn6emrLGusqmmqaquqaKal5eRnJqYo56ioq+npKymqJqanpqhp6emp6mvtrKrtLavqrCvsam5trG1sa6st7O2r66rrqu0ta2vq6uxrbGyqK2rq7O1t7q9sKuhi3qCeXF2c210aWtdW2pUXFxPTUhERkxBRk1GODY2NTo1Oj44Ozk3PD06Oz06OTIzNjc3Nz47PT46Oj8+PDs8Ojo7OTs+Oz05PD49Qjw7QD9AP0E/Pjo1NTpARUJEQUBCQYifoqahmJuenZqlqZibnZqZlIyZh4aHhq6trri5sbKorq+4squwsKqytbm5vrWyuLS5urW5u7W1s7W7vMC7vsC0v7m5urG6w7zCysW/u7+/ubO0s7GxrrC5uba8uLu/srKyrrGuua+qq62so6ihnZ2el5ihlZKVl5CYn6iupKOkoKKnoqOpqaGmp6Wqraesp6inrKussru0s7S5uraytq2poJqWlpudn6usq6+jo6OhqaCbk46PkJOSkpmWmp2kpaCfnqeYlZKUmJ6ko6GlqqytoqmqqaSpra6ltLGusa2qqa6vsK2lpqqkqLOurayppqapq6aqp6uyrK+zsauploF/gXdyeGh0c25kVGBjV1xRTkxIP0hRQ01DPTg4NzU6Nzw+Ojs8ODk8Ozs8OzgyNDg5Nzg7Ozw7ODw9Pjs9PDo5PDo7PT08OjpAPTw8O0A+QkBBPz45NTg7PEZBQ0Q/QUGIo6aio56gn6efqKqbn5ucmZiOl4uNj4yqqaixr7Ctpaemsq+ppqugr7C7tb28t8DBvry8vLmura+ysrq6t7e1tby0r7Srtrq4wMTBu7W8vbiyrbOwr6yut7aytLSvqqSem5ycnqion6CoqZ+hp5abl5ePnZOPkJaOl5ukqKCgoqKipaWdo6OgnqWgpKykpqikoqOjq6yzrqmurq6nqq2orKGcmpiZmJupqKqrnqWim6OclJCMjo+Qk5CWlZaYn56empiml5OPkpadoqClo6akp6CipKOhoaurpLKtqqysp6Osrq2rn6GipKSvrKyppqOiqqSqqqSpq6aprKumoIh5g3x2f3lidmxuXFBoVFBOR09MTENPUUA+Oz4zOTo1Ozk9Ozo5PTk5PDs8PDs5MzY5OTY6Oz89Ojg7Oj48Ojw7OTs9Ozw8PT48QD0/PDg7QEBBPz8+OTQ5PDdBQ0JEPUBDjqqko6Khop2qpKaopqGenZmdj5iVk5CVp6ShpqippaSgoaeroZyim6ertbK8vcDCwsC+wLm1p6Wsqqi1srGwrq+yp6avo6+utcG6tbeyt7aytKuytK6qq6+wsrSupZ6SmJSPmaCfoqCcpKWfnqiUm5aXjJeRjZCXk5idoqqfn5+go6WonJ+goZyin6Oop5ynoaCkn6yorKygqaumoKSopqyjnZ6dmZeaq6apsKOlp56gnJWTj4+RkJiQlpWYl5+Ym5mbo5mXlJWanaCdp6iloKOioaOenaCpqqWurqaoqaGiqq6qp6GgoqOprKunqaakoamipammpaSipqSoo5J9fYB1dX1ta3tkaFVRY01JSEdOUk1KTUc7REA8Mj84NTk7Pjs5OTs4Ojw7Ozs5OTQ4Ozg3Ozs+PDo5PDo9Ozs8PTk8PDw+PT1BPkBCQD03Oj9BQkBAPzg1NTw6QENARD5BRpaupKKlnqOiqaioqaqlpp6dopiYmZmVm6Kem56joqCjoKGaoJiYl5ahqKyutre6ubq3t7uuqKChqaGgrauqpqmkqaOkrqWsrLS8t6yysa+xrbWvr7O1qqetrKOcmZSOkZaXmZmdoKOim52lnpqkl5eXlpCSkZGTmpeboKSqnqGhnqanqqKfoKefnZ+kp6meo6afqp2qraqup6iwpaOkpqespqGkoZuYnq+orrGqpaqqoJqYmJiVk5aak5WVmZWal5eYoJ6cnJeboZqemqKnpZ+hoqKjnJuhpqemqK2jqaWepKeppKWloaWkrKyppqunoqCko6Snp6GgoKWipqCJe4B9dnh8ZHh5YGJSVV9ISUlLU1RJUlBMOT5BNjc9NjU7Ojw8OTs7ODo8PTo7ODY1Nzo2OT49Pjw5OT05PT08Pj07Ozw6Pj08Pz8/QD09Nzo+QEBAPz84NjU9PD5BQkZAQEegrqSmq6Gjqqyuraesqaigoqaem5uemqCcmpWZn5+bnp+elpSTl5OTnJ6jqK6trKurr6qvqZ+XnqWenqWmpKCin6agoq6rrK21sramr7Srqaq0sbCwuK2noZyempSYmpqRjpKWkYyPjpSZopyXo5mal5iZlJmYlp2bn6WmqaCmo56nrq6rpqKxo5qkpqaqoqGqoqmkqLKrsbKruqimq6erq6msrKegoKOxrbKwtKmxr6KZnJ2eoZibm5qYmZuUlZqWmJykoaCao6CanJmfpKKeoJ+ipp2bpaalpKWoo6ejnqajop6mpaKlpaispKatp6CdnZ+eoKWhnp6loKaZgXuBfHZ2c2iCbGVbU1pZTVFKTk9UTFJMQTc+QjY4PDc2Ojw8PTo8OTg6Ozw6Ozk3Njo9NTk8O0A9Nzg7Nz07PT09Ojs8OD49PUA+QT4+Pjg4PD9AQD0/NzU4PT49QUBGQEFIoaqgq6uhpKqrsK2pramnpaWlpKChn56ll5eUmJmemJydm5aPlJmSkpyYoZ2qoqagnqehpJ+ckpyim5+ho56doJ+joKKvrqyvsay2p62xraamsK6trLCnn5+joJeRlJyhnJqYkpOfnaGkm56blp+an5ebop6loZ6kn6Sora2orKikrLS3trCntKyira2jr6WkpqGpqK61s7K9tr6wrLGuramqtLGwp6uosrW3s7essbSjoJ2ln6uhoaKgn5qYlZWfm5uYpKGgnaOhoJ6bnKWgn52coaifn6epnqGjpKCmoJ6noZ+cpqOfoqWjqKCpq6WfnZ2bnZqmop6co56nkIGCf3x4dWl3dV1sWlJgSFFVSEZVVkpCTUc9Skg4RTw2Nzs+PTw6PDk4Ojo7Ojw5NjY6PDc7Pj0/Pjk3PTk+OzxAPDpAOjpAPztAPkFAPTw5Nzo+QD86Pzc1OD0+P0FAREBCRpyrnqmpoqWpqa6opqqlpqemqKqhpaSjppKTlZiWnJqanJqVk5mbjpOemaidrp6nnpuhnZ6ampKYnpyioqCgnaKfn56fqaunrKmqtKurraulpaqoq6yqpaCfmpKSlJiZlpaWjIiLj5WdnZ2dnpaemqagoKilsaqnrqOrrbawtLKxrra4vcC6rbW0sLewrrSppqSlrKm5s7W7w7zDwba6tquvsbm3vK+zsLXBvLe8srK0oauiqaixqaqop6eamJ2Zqaagmaegn56np6Wknp2qoaKem5+ooKSnrZmfo56ep56gpp6cnKKhm6OioZ2cpqWlpJ+imZybpJ+gm6Cco4mFhH52cW1pdm1obVxYW0JWTUpHTUdCRk08Pkw9NDw5Njo9Pzw7Ojo4ODw5Ojs7PDU0Ojw4OT4+Pz44OD85PDs9Pzs9QT06Pz48QD4/Pj89PDY7P0E9Oz84Njc8PEBEQkRBQkOVqqCmqaOpqqipo6GpoKaop6yupamlqaqUkpeZlJqampyYmJmcmpiaqqCxorejsKagnp2dl5mWmZ6bnKSfn52knZqdnKSipKOiqq+sp6mjoKGsr66qq6egn5+io56fnpudm5SUlZWenpiUhp2aoZurpKuysLmysrGysbq9vLy5trjDvr/Cv7a6usDEub27rK6nsa2xwra4wsbAyMrAyr+wubm9ucK9uLO7xcO8wrq2s6myraqytK+zrqmuo52rprWxrKKvpaCir7GtsKSkr6OhoJqhp6GkqqqZnaCZmqOgpqihnJ6inpmknp6YmKOjoaSeppmboqSen5ubm5yHhYF7dHJra3VycGhXW1FFVEhESVBIPkVBNEVIOTU7PTY7PD48PDo6ODk8ODk7ODo6ODs8Nzs+PT49NjhAOTs7PUA8PUA5Nzw9Oz49Pj1CPj43OkFAPjw+OTU4PTs9Q0BBQ0JBkaqhpaqnpaqopp+ip5ymrKexsquto6mslZKVmpSXnKKhm56goZyfqbKru7K/q6+spZ6goZ2cmJufoJugn5+XpJ2Vm5uemp6cn6Wmp52goKyxr6ekpKOhn6asp5+XnJWSmp2ZlYyKhoiGeW2IoKSiq6y0vLbDvr6zu8HDwsXAv8LGxsXDyMLAxcjN0MjLw7K3tb6yvsW7vszNxczLy9LGvr/Awr3HxsK3w8nIwsDFvbmzubq0u7ewtbKqurGuura+urqqt6yqqri6tLuurbijpqKep6Wio6mmmZufmJqdp6qnoKGhpJiUo5aUmpGcnZ+knqefnp+inZiZlJiUiIR9enJrZGlveGplWltGSkxERFNMREJENzo/OzU0OTk3OT4/Ozw7Ozg+PDY6PTk8PTk8PTo7PT4+Pjc7QTo+OT0+OT0+ODc7Ojo7Pz89Qj4/NzpBQD08PTg2Njw6PEE/QUFBPpKroKeuqKKrpaSioqWhpaqrsLKtrqSpppSVlZqWlJukpp2hqqeiq6y8vL/DwbOyuKehoauqop2eoaKenJugkp+fkJafmZKalp2bmaOhr7OpoZudnZ+fmpeYmJONj5aXlI+NkIuCg4J3c3FucI+mra60ucW7zcfLv8LMzs3MyMnRzM3Mx8nFxszQ0tXO08m9wL/Du8bFyMXR08zTz9LTzMrCxcbGysfOv8jQy8bExsTAu8LAvr6+tb2zrb6/wsLGxMbDrb64sbi8w8HBury8ta6np62ooKKppZqWoJqZnairqaOkpJ6Xj5uLkJmJlZiboJ+jnZ2XnpqTk4uVj4WAeXRzZWJncm9mXlpZQ05MQ0VQSURCQDU1NTg5Qj02ODpBPjs7Pjw5Pj03Oj05Ojw4PDw8Oz8/Pjw9PkM8OzpAPTo7Ojo4ODg5O0E+PEA/Pjg7QUE8Oz43ODY6PD5CPkNBQD6Tr5+or6aoq6OipaCmpqSrqKutqq6iqqOSnJeXm5ibo6yen66mpbGqxcbMzs2/sMKppaitraqhnaOfnJ2aqZOZoZCOoJONlJKXmaSxsaukoJ2gnJmXlZOUl5KQj4yHhISJh4OAgYGAeXJyb2x5pLa6ub7LwdPS08jNztHT0dLR0NHRzc7O0MXO1NXY0tfNxsfJzMPFys7K09fR19LU1dPTyMzGzM3J0szN083ExsnJwMXLx8jIxb7Cs7PHxMvKys7Fyb+9vrzBx8TMzMjJwMO/ra+yqJ6iqqOak56cmJ6mqaykpaaWl4qVhZGUh5KSkpmbmpaYkJuVkIyGkYt/e3J1dmdiaHdpZFZXUURNRkBJUUI9Qjw6MjNAPEQ8Nzk8Qj07PT87Oz49OTo+PDs+ODo5OTo/Oj49QD5APD47Pjs5PT08OTY6Oj49PDxAPz45OkBBOzk+OTo6Ojs+PjxBP0E+kKyioqmmp6ikn6KdqqijrKOjp6asoqmflKOYlp+enaSvm6Cwq6isscnN1NfPxrvHrK20uKyuo5+ko56gpKyblqmWjZeNjI2XprCupZ2enaGlop6blpWWlIp9d3BrZWJocW9xe4WKgHZwbnF0cIWzwr7F0dDX1tbS1s3U1tfU09HT1NTSz9HD0NPW19XW0svJztDLxs3RydHV1tnV19LW2M7Syc7RzM7Qy9LPvsbGycLLy8vOz8XGxra/yb7SzMvPxcnHvsLCx87Mz9DOzMrHzbi3u6ifpqunn5ieo56dqqWtqaiokpWIkISMkYaNjIiTlZmQloyYko+Gh4yEfHhzdnBjYGVyYl1SXElKRkFFSEk+O0A4PTQ1ODU6NzY6PEA9Oz48OzlAOzk6PDs7PDc9PTs6Pjs9PD48Pzo6PDs7OTs/PTk1Ozw+PDw9Pz8+OjtAQjs5Pzk4Oz09Pj88QUBEPIaroJynoKejopugm6mkpamgn6Ghpp+on5ikopuppqKmrJqksLGpqLXQ1Nfa0sfGy7S2wsaytqmipaahoqu1p5qxoZaVjJCmrauclZihnZuhop+dnpuWinhpZGFfX19fXl9gXmJsdXNxcG9scnF1ksTHxtTV1tfX09bP1dTa1NTPz9XU1NHRzNHO09fW09XQz9LT0cnT0MfQ2NfY0NfS19nV1czOz8nM0cvOz7/FwcbFzszQ0NHIy8u/ycvF083LzsfDycbGyMvK1NPQ1M/SzNLBucWxpai1rqeaqKylnbKosLOsrJOPk46Ii46Dj4uEkI6ZjZOPmY+PgoWMe3pxc3RtYWNpbV9WUF9KSkJGQ1FNPzw+NDQ6PTUyNzU1PDxAPDs8Ojk6QDo4Ozo+Oj04Pjo6PEA9PDk7PT85Oj89Oz08PT06Njw9P0A9PD09Pjo8QEI7Oj03NDo+PD8/PUZBRD2CpJygpZ2lpaOZnJ2knqOjn52fnaCap56coamfr66rqqudpq64qKu32NTV2dnRztDAvMzJt8Cvp6upo6SxtrOjtqqfnaGqqaGYlpiam52hnpmdnpR+cmZjY19fYWBfYWBfYGBfYGZtcHBua29yd3ebzMDS1dPY2NbZ0dLS18/TzsvTzdXU0crPzNPW0tHWzdDV1dHF0dTK0NTV1c3R0NjX19fLyM7DyM7Mycy/yL7HyM3Nz8rQzc7Lzs7Hys/Pys7KwcjGyczJy9HSzNPR0c/Pyr3HubCtu7i1qrawrai4rbO/u7Gaj5+UkY6NiI6QhZGNmYyRkZWOkYCFiHl2b3Bva2JlbnBhV1xaSUZGRExXRTtAPDMzPD04Njg1NTs+QD05PDw4PD45PEA7QDo9OD45ODo/PD04Oz5COjo9PDpBPT08OjY9PD9APTw7PT44O0BBPTo8ODg7Pjw9PjpFQkU+gZ+Zpaegn6OnmpufnJeenqGanZqcmqabn6Snnri2tbWtpa2uvrWxwNnS19rc1s/Ny8PT0MLCsqutrqyms7G4q7O3qaOfnJaUl5uen5+elZaYlYpsX19eYWRiYGBgYWBgYV5fX15dYm1yb29zdHV2eaS+y9XR1tTT2NbOztPLzc7FzsrS0s/Gzs3N1MzO083K19XQzNHTysvQ0dPJzdHV0tXVysDJwcXMwsfJwszCxcfKys7KzMzPzdPLxcfPzMfHysTGwMXJy8zP0MbPzs3NzM/Fx8C3ub3Cw73DubKzvrC7w8S2qpiloZmWkZWVkouUjZqRlJSPj5SCiYV4cHJrbWhgYHFoWFhoVk1HTElQUEI7RD47Njc6ODk6NTc9PUA7Ojw9OTw9OT09Oj46PDg7PTk7QDw+Oz4+QTw5PT49Qj07Nzc1Pzw8Pzw8Ozw8ODtBQDw6PDk7Ojs8PUE6RUFFPoSem6itnqSkqpyen5iSl5ufmpuemZmilaGpqaXFw8G/u7WyscfCucvV1tna29jMzc/J1tbFxLiytqqjrq24ubGywKGXjo2YlpCUkpGWl5aRjH1mYmNiYF1eYWNiYF9gYGFhYF9dW11ncnFxcnNxbXJ5pMbTz8vQz9TVycTJycbGv8PFzs7HxcfNytHIy87NxtHSz87M1MrHys3Ox8bP0svQz8W6xL7GybzCxsjOxMLHwMbNx8PLycrPx8PDz8jGwcbHw7/AxsvLy87CysvIx8zQxMXHusfDyMjCz8C9vL+wwcrHub2qsLKnpZ2inJiQm5CjmZeZkZWYiY+Cd250ZGtgXmZxYVtXYEdISEdJTVRHP0o9NjQzNTU8PDQ4PT09Ojs9PDk6Ozk/PTk8Ozw4Ojw6OkA9QDw9PT48OkM+PD89ODg5OkA+Pz48Ozs7Ozg6Pj88Ozo3OTw+PTs+PUZBQz2DoJuqrqWuqquanaCXlI6XnZqZoJqanJuls7Gsyc3KyMS+vbrNzcbQ1dXZ2tvY0MrQ0NLUysW6vr6wqLeqvrm5s6WSjo6WkIaDhISCfoWFgHRgW15eXmBeYGNkY19dXV5fYGBfW1pcYWtycm9va2xvb3240cjJys/LzcS6v8O7u7q5vsjGwsPAw8fKycjKx8HFy8bIy83JxMHJycHBy9DEy8i/ucG6xce9v8XOysK/w7rJx8i6x8XEyr+9wcvGxcO+xby8v8LEy8TEu7/JwsXH0sXByL7KycbHxtDDw8bDr8TLx8PKt7+8urSprKWlmJ+YrKOgpZqjoJuUe3ZydGZpWmFubVpbWFFETEZCR0RMQ0ZSPzU0MzM0PzwzOjw8Ozk8PDw4Oz07QT06PDo7Nzs9OTs9Oz07Ojg+PjxCPjs/PDk5Oz89O0A+PDs5OTk5Ojs9Ojw6Njk8Pjw7PjtDQkQ+f6WcqbKptK6wnZ6emJyJlJuZmp+in5qdqL+4vMvQ0szHwsPHzc/OzdXQ1tnY2dDM1M7P0MvEuMbBtrW8scC2uqyRjJOXh3uAhYaAdnh1c3FfWltdYGFiY2RkZWRgXFxdXV9eYFtZWlxib3Jva2lscG9zj8a8ycXMwMbBsLa6srK0srHBvLu7ubjAwcHFvr25vb+5xMrFxcK9xsC3u8TJv8LJu7e6usXDvrzBzcLGvr21wL3DurzGusK5s7vFw8LCtr+2tb6/usvCvLW6yLq/vcvDwcXCxcjFyMXQxsLMx7LGycPOzcDFwr+9srews6eoqLmxpa2wq62slHl2d2plaGBob2NWXllKRUpGSEtBRUJFSUA5OjY0ODg1Mzs6Ozw5PDw7OTs5OkA+Ojo8Ojc6Ozc6Ozs/PDo8QD1APz0/Pzs9OztAPD4+Pjo5OTg5Nzg6PDw8Ozk6PD47Oz46QEBFPn6soKy1qre0sqGen5eajZSWmp+dpqKdnrfGwsTIztLLysrHzc3P0snRxtbV1tjPzNDIzcjKxb3KwbK1ure6tq+RjYqMhXmAhoaAfoR8dHVkXFxdXmBgYmNiYmVlYl1dW1xeXF5dWltdXWhzcW1nZ25wcnmdvczAw7rAuK2wsKeqraynuLS2tLOys7q1vbG3sLSusrvCu8HEvL+6tbK6vsC4x7izu7XAwry3vcbAw7u0r7K2ur6zxLa6tay4vL3AvbC5tq62urLFvLauu7+0trTFvL7Cxb/DxMXHy8XAxsa7x8vAz8nHw8bBw7fDvr62ub7Gv6y1urW3to54dHhmZ2Via25eVl5gRktISEpGQkNBREU/PDo1NjU2MzM7Ojs9Ojs7Ojs+ODxBPTw6Ozg3OTk5Ozw6Pjs5Pj89QD8+QkA9QDo6Pjs/PT05Ojo6ODU2Oz0+PDw6Ozk+PTk/OjxAQDyIt6ars7G8vLGtn6CZlJSYl56ro6+qp6TGy87IxsnOzNDNzsnLycvKy8bRz9PRz8fKxsrFxMC8z72zub25uLebjoeJint5foaGd3iBfXRoXl1dXV9gX2BkYV5jZWNfX1xbXlxdXlpbW11fbHBuaGZqbm5yfKTHv7m4tbCrrKeeoqqnnquss62pq6mzrbawsqiup6yyu7q2wrm6ubCrtbm7tMK5r7+wvby7tbvHucK2raqosLHAtbi8r7CnsbO0u7yrrbWlrrauurGwqrmvrbutu7i7v7+9ucK/xsLFwLzGwcfLuMXHxb/Hw8O6xMbCu8XJzMuzucK8urKIcnZ2a2lhYmxoWVdXW0FMS01JRUFDP0ZBOzk6OTk1ODU0Ojo5Ozw9Ozo7Pjg7QDw9OTo3OT45Ozw6ODs7Oj4+OUE9P0A/Oz46Ozw6PTw8ODk4OTc2ODw8PTs8Ojo7Pj07Pzs7PkA8isCrqLi3ucOts6mdmZSWmaGcprC1sbemxs/SzMTGwsXQyM/DxMfBxsbFxczDyszDxMHHwLq7u8q3tLu9tbWrkYmQkHx5foqFenuEgXhuXl1dXV1fYF9fZGNiY2NiYF9eW1taWl1aWlpaXWRub2hmZ2lrbnKBrbmwta6mpaenmqCkoJqcpauto6eiq6msqrCjpp+qrbS2sb25r7evqK64tLS7t7O8rre5tLG7wbHBrqSooquxsrOnvKqrqKusrbSzpaitoKSvqbKlp6iupae2rLCyt7m6u7G8vb6+xL+1wcDHyLe/wMS3xMLAu7/Ew77EyMzKv77DwMCphnJzcmppXWFvZFdWWFBIWlJTS0ZGRT4/QDo3ODk3NzY0Mzc6OTk6PDs7PDw3Oz07Ozs8ODk+OD07PDY6PTs/PTdBPj9APzo8PDo9OTo7Ojc3Nzg4Nzk8Ozw7OTs6PDk3OT48Pj9BO4zCr668t7nEsLawm5mVnJiqqbCxs7W9r8bR0M3EyLu7zMPMwL3KucDFwLzMusPGxbq8xL25trzFuLa4u66xlYOJjYF7foB/eHR/fHN3Zl9dXFxeX2BeX2NjYWJgYF9eXVxaWFlbW1lYWlxfZmtmZWdlaGtvcoWqpaymoJyhpZSeo5uXkaGjqqOin6Skp6Ssn52bpKWrsq+2t6ewrKeqtKu0ubC2tKy2uLGvurmwt6Sfo5+msaerp7mqpKanqKeyraCnpp6apKasnp+npJ+gsKysrLGzsrOwtby2u8HBsrq+w8GxubnCs8C9v7W4u72+vMLGxMLDvr/DoIN3cGxhZV9rb2BVWV9ITmhPVEdFSkY8PT89Ojs7ODI1NTM2OTk5Ozk6Ojw6Nzw/PDw7PDg4PDk8Ojs3ODo6PDk4Pjo/PTk4PDo7PTo3Njc2Nzg4NjY2Ozo6Ozk6Ozw4NTk8Oj4+QDuNyLW2vbi6wbu+taCelJ2hprq2q7Ozu7PF0MnMw8e5uMnCzsG6y7m9yLu2x7u3w8azvsW7tq+4v7uws7avooSHh4J9eXZ0cG1rampxaV9gXVxcXV9gX2FjYmBgYGBdXFtcXFhZWFhYVlhbXV5kY2JlZ2dnam1viJ2poJeVmqGWm6KYlY2eoaKmm56fo6Wgp56aopufqrCssbWiqaqpq6yktbittq+ssrSusrWusKqfnZ6jorKkpam4raGmpp+orKuZn5+dmZ2fpZqZo5ybna+oq6eqq6ytsLK4rri5urC2u7u6q7OyubK9tLaxsbW0v7W9v73Cwbq6vZeDenJrX2VeZGRYVFheSVddS1BHSUpGQTw/P0A7PzwwNDUzNjo7OTs4OTk8PDc+Pzs9Ozs4ODw4OTg8Nzg6Ozs6Oz86PTs3ODw6PTw3NDc3Njc1NzQ2Njs3OTo7Ojg6OTg6Ozk6PD87icm2uL67t8HBwbSkpJmapKbAsq+2rLS3xtDJycHHvLzFxdDBvMq7u8G7tcW4tcHBs8LDu6yptLm3p7GyqYuGiIB5c25wbmtjXmJmZl1dXl1dXVxdX2BhYmNjYmFfXFtbWltZWFhXV1dYWFhbXmJkZGVmZmhpa3KNqJ2UlJSbl5uhlpaQnKGhqJ2bnKWloKSbn6CamK2tra+yoKWiraumobWwsbGsp66yp7mypragop6ao6GtoqGptaqio6adpaajlpidl5ibnZ+Zl52cnJusoaumoqOlrauys6q0sLKqsrizrqmvsrKyt7OtqayusbewurW5vb62s7GUhHl1ZV5lXltZVlNaVUxcUUxKRUhLSUI9P0FBQEA6MjQ1MjQ5OTg5Ozk6PTw2PT87PD47Nzs7Nzc3PjY6Pjs6ODo9Ozw9Ojs8Oj07ODc5NzQ2NTU0Njc4NTo6ODo5OTw4Nzo4OT5AOoHIvbi9v7a+vb+znaWjmKWxwrW2va21uMPNycjBxrjCwcjQusPGwLa8vbbDura/wbW7v7qqprC6saexr5p9hYWAeXBxdHFoZWRpZWNcXFtbXV1cW15gYV5fX2BeXFtaXFpZWFZXV1ZYV1hYVldhZGVjZGVkZGhqdqKclJSPlZeXn5eZlJifnaGblqChqKOfnaicm5qqpq6wq5ujo7apoJ+uqLWppqassKO2r6O2oKKbmJirpqGbrLivoqGjnKGfoJOVoZSWlpuYl5aXnJWfqJ2po6Gco6qqsK2ns6uqpqyysKWqrrKxr7Cur6anp7KusbSvu7O5t62jlIF5dWReYVZZV1NSVEtNXkxQTEdITEtFPEA+PEI8Ozc1NTMzOTg4OTk6OT46OD4+Oz08PDc+PTY3Nj03Oz07OTc5Ozs8Pjk5Ojs6ODY3NjU0NTMxMDQ1Njc5Ojg6OTo6Nzo7OTk9QDp2wLy1ucKxvri8rp2np6Oqu8C9wLmutLjCzcjHxMW+x7rKzbXExcSxv7+5wMG6v7+5uby3p6awu6aooaSJgX54cmpscnRwaWhlZGdiXFxaWVpcXFxdXl1cW1xeXFtcWVtcWlhWV1dWV1hXV1dVW2NjYmJjYmNkZmqBlpOVi5KUk5uYnJaWm6Ccn5Wgn6Wko6WmnpyfpJ+qr6afoqS1p6ChoqezoaWnpK6ksKyrtJ6gnZSUqaGhlKyxsJ6io52emJuTi6GUkZOXmJKXl5iWnaabpqGimaSkpKukpLCmpaKqq6ylqK6urquoqamzpaarrrOxrru1sK+un5J5dnJlYVxaXVhOTFFHUmFNVlBPSk1PRUJEPzk9Njk6NzU0NTk5Ozk4ODc8ODk9Pjs+Ozw2OTo3OzY7Nzs7Ojg1Ojs6Ozs2PDs4ODQ2ODYzMzIxLi8yNTU2Ozo4Ozc4NzY8Ozo7O0E4eLu7sbW9sLuyt6yepKatt7u8wcW6sbm2xcrLwcTHx8m4yMa1xcLIrrq8wrzCwMG9vLe6tqWnsbWdooqYiIB3b2RiZ2loZmhqZ2ptYF1cW1paWVpcXVxbXF5fXFpZW1lZWVtXVVhXVFRXVVNUU1VgYF9gYV9gYWNkaYGUk4mRjpOSk5yUlZakmaCWnJ+koaylo6Oio6GbqqqlmZ6lsKmfn5ykqp2noZ2rq6mora2ioaGUl6KanI+qqLCbn6KfnpeYk4qeko2SkpWPmJiTm6CinKSgoZWgoaOkm6KqpKKkqqKrraWtsammpaamtaaqqK2ztbS5uq+prJ6LcnBvYFtXVlVSRlFPSFpcT1JKVEtTTEVHSUM4Ozs9PDg2NjY6OTs6Ojc2OTc3Ojs6PTw8Njs8OD41OTg6ODg2NTk6Ozw5Nz88OTY3ODQ1MjEyMS4uMTQyNjo4Njo4NTk4OTg6OzlAOXu1tK20u7KwrLKtnaenr7m5s7/IurbAr8bJzrzCy83Jt8vAtMDHzLC1vMe7wcfDvb62urWkqq+unZmHjoN8dWlqam1oamxua2ttZV1cXFtbXFpYWl1bW15gYFxYWFpZWFdYV1RWVlVUVVVSU09RWV1cXV5fX19fYmRtjo+EkYaPkY6Zk5SSnJqinJugp6iqp6qlqKSimKSupJSZpa+pn5uYmqCerpmbqbKfpKafo6OglJOblpWRqKmsmpygoaCalJCMmY6LkIySjJaUkJ2hoKKcm6KVm6CioJehqKKiqKugq6+krbeloqOirK2pqKuvs7iyvbWzq6+Yg3JyaFtYWVNVUkVZTFFcWU1UTlBMUVJJTklCPD8/QT89NjU3OTk8PDk4Nzo3OTo7PD0+Ozc7Ozo9Njc6Ozg5NzY5ODk6Njo9OTk1Nzc1NzExNDAtKy80MzQ5ODg6Ojg6Ojc0OD04Pzl+s66os7auqKevrZupqKy3tqy7yru2v6zMx8a5ws/QybXGvrq+xsu0sL3EvMLEw7zAsrmvpaqvq56XhoF3eG9uaW5ubnFnaGlnZF1aW1tbW1xbWVpbXFxeX19cWFhZWFdYV1ZVVFNVVlVVVFNOT1FZWlpaXVxcXl9gZH6NgYt/i5CKko2XkZaZoqCbn6qqpq2qpq+ip5mfrKCUlaSop52Xj46Zna6Wl6apmJ6ck6WgnZGQkpKSlaeqpJmZmZ2dlo6Mi5OGiI2DkIqRlJCgnaCjl5WflZqgoZ2Sm6Wlp6iooLGwprG8pp+jrLWrraewtLC5tb+xrbGrkHxwcmJWVFVOUklHVlBTUkxMWE1KTE5SR01LQUNGREM+QDc1ODg5Ozk6Nzo6Nzw9OjtAPjo5Ozk6Pzc1OTo6ODc2OTU4Nzc5Ozg1NTc2NjYxMzIwLSouMTAyODc3Ozk5Ozg5NDg7OEA4f7OtprG3qqWisKudqqepsrCktsa0ubqzy8a6vMPL0cy0ubq+wMTHtbS2vLK6u8O+wbCzrbCusKuboohraG1vcm9xa3BrZGZnZV5aWVpZWlpaW1paWlxcXVxaWFhYWVlXWFdVVVRSU1VTVlVSTk5OUldYWVlZWVxcXWFqgHp/domNh5CJmImUk5iamJ2om5+qpKSrnKaYoKWbko+eopqXloSDkZqjj5OinJWVloehmpqTi46Kj5mjp5yVlZebkJKHlI6MgIuNgJCKkZKRoJmfoZWTmJiUoaSYjJmkpqemoJ+0sqeyt6Ccoresqq2ksrKmtby1q6uxo4h4cm1dTlBRTE9ETk5OUExGTk5LSk5OUUhNSkFHS0hIQz04NTg4ODk6OzY5OjY4Ozk5Pjw4Oj45Oz84Nzg5Ojg4Njg1NzY4ODk3NDU3NzgyMDMwMSopLS8xMjc3Njo5OTk5ODQ5ODhBN3e2p6S2sKSno6mloKmlpLOqorLDtbWys8fHuLvEys3Hta+8v7i8xLOyrrairLXDurquqqu0r6+fl6d9XmBnc3F2cWpuaWZoaGpfWFlYWFhZWVlaWllbW1xcWVhYV1lZWFVWUlNSUFFUUVNVUU5NS0xTV1dWWFhZWFtdYW9zdnCEiIKHgJGDjoqUkJOdoY6am6KgopeklqGblYyHmJqMc42CfYyWloWQmZCTjY56mY6bi4KJf4mYn6KekJOYloSOgZN+fnOJjnqQhpKQkJyamZmQlY+djaKijYmaoKGjo5uitK+sr6yfmKW4pqWwobGunLC7qqmvqpmBdnJiVkxRT1BNQ1NOTFFNQ1BQSElOU01ISkpESkxFSko8NzQ5ODg4Ozs2OTs3Ojw5Ojo7Nzk/OT5ANzk6PDg5NzY0NDQ1ODc0MzEyNTg1LzAxMDIpKCwtMTI3NjQ4ODk6OjY1Ojg3QTd3t6KjtKilpaijpqWmpaazp6W0wbiwtLDKxrm6ws/Hv7SvvcOvsceyraeslaOtv7ewr5+nrKyqlpSicldWYGhnaWhpbmNqaGdiXFhYWFhYWVlZWVlZWltbW1lZWVZXV1dTVFBOUE5PT1BTVFJNTUpITlNTU1RVVVdZW11pbHJsf4V8dE5Yco+Cl4aNnJeKk5Cel5yVlJWTjpaIf5OJXztXb3uKk4l/i5GMj4WGcoqEloF4gnqFk52Ug5WOkY+ChnySeHFvhY1+iYCQjY+XmZiTio+InIeel4aHlp6aoKCXp6+oramonpattKKmrZmsq5ins6GpraOSfHFtX1pOU1FWTERUSlBNTUZPT0pFTFFNS09KSU1PRklIPTc1OTk5OTk6Nzo7Oj4+ODo9PTY6Pzg+PzU4OTs3OTY3NTMzMzc2MC4tLzM0NDExMC8vKCkrKy0zODQ0ODc5PDo3OTs4NkE5eLegoq2hpqapoKeop6KpsKintMK5sbWwycO5tL/PwLqxsbjEq67JrqeinYWaorqtpqeVpaSjoJaOlmlQTVJWWlpXXV5iZ2NfWVdXV1hYWFlaWVhZWFlaWlpZWFhWV1dVU1JOTEtIR2JcTU9STktIRkhOUVFNUFJUVlhaYG1vaXqCdFBCQH+VkZF9iZSMhIqNmoyWlYqSh4WVhXiIf2BKUW54ipGEfISMiYR+f25+f5N3dXZ4hI2ZcFGNiIqHe354lHZnd4WIfoqIlYqNkJGWi4OJh5SEmouBhJKblp6clKSjp6mlo56bsauhpKSRpqqWoamcoqaoh3NrZV1bSFFRU01JVU1TSUxMUElHRktOTE1US1FRT0ZJQzw3Njk6ODo7Ozg6Ozg+Pzk5Pj03Ozw2Ozs0Nzg7Njc3NTM0NDY5Ni8zLy4xMTUyMjEvLCcpKyosNDgzMzk3OTo5OTo6Ojo/OXa2nKKmnZ+hrqGnqKWmp6+sqra8tri2s8K8t6i7ybm3qaq3uK22wKqim5KCj5mxn6GZjJ+WmJSRioxlTUxOTk9MTVFXW1xaWFpVVVZWVldZWVhYWVhYWVlZWlhYVlZXVVNQTUpFQECba3NzSU1LRERESU5PaFlOUVNUVVpug3R3fmppXVWPiZSJdH+GgHuFjJKAkZmLj3uGj391f3hzbnVwdI2NgXl9iaqEeXpodnuOcHJteICKjJJ4eoB7gHZycZJ4Z3WEg4SEepWJiIqMioB/g4qMf5ODeoCPmJSblZGfnaien5+doKmln52Yjaikk6CflZ6epH9xZmBcXEpWT1FHS1hST0pNTVNKSkpNUEhMUUxSVE1FSEE8Nzg7OTk+PTo7PDk4QD86Oj49Nz09Nzk5Mzc3OTU2NzUyNTI1NzIvMi4sLi8yMDAvLSsoKCkuMTI2MjE5ODc5ODc3Njo8PDd2rpijoZicnrSpr6mlrKuwsaq9tLK8uLa7tbOguLuzq52fraustbOlnpaRmIaTpJacjIKWiI+JhoaDZkpJSklHRkhIUFRUVFdXU1RVVVVWV1dXWFhYWFhZWFlZV1dVVlVTUEtGPjkzTjx+nk1ISkRAPUFEapR+TE9RUlNWXnWDfXlnd42XmI6PfWd5gHZ4f4mPfISYkoFyho97dnpva36tfHOQin97hpKAfX90ZnZ8hWxvZ3N8iYyHgGx5cX1wbXWPcmhxgH2OcEOKhIKDhH93d3qKhH2LenR+jpKPmIqSm5ujl5mdmp2eop2WjYulm4+dl46WmI51bWtlYVlXWFRRSlNWVE9QT1FXS05LT09KUU9JT09LRkQ8Ozc5Ozo6Pz05PDo5OT8/Ozg8PTc8OTk5OTI2Njg1NjYzMzYyMTIyNC4sLC0uLi0wLSsqJycqLjEzNjIvODc2OTY2NTI3OTk1eaaXn56WoKawrK6rp6mwr7GsvLisu765tK6pm7GorZyQl56nrKekm52Th5Z9jpWRlIB7inqEgH5+gGVKR0hGQkBDRElMTE1RUlBRU1VUVFVWV1dXWFdZWVlZWVlZVlZUU1FLRDc4ZjcwP6hpTkhDPTs6RIqFelpKTlBRVFheZXBybYinqsB+dXlie3dvfHmIj3l8i4VvbYyReHN4amp/gnKWkYuBfZZ/SZKYbmh3foJsaWNseYWQkoZrc2x8bnJ7hWltcH5zjIiDhXp9fnp2b3R0hYF5gXdwfI6MipODlpeYmpCTlpeZl56XjIOJn5KKko2GkJZ9bGhtbm1XVVdUUlFZT1NVVVRZVk1OSE5LTk5LQ0lOR0U/Ojg5Ozk5Oj48OTw7Ojo9Pjo4Ojw5Pzg2ODcyNzU2NTU0MTQ0Mi8wMjQqKyoqLS4rLSooKignLC0xMjUwLDU1Njc0ODVIQTg5NXeZkZuZmp6krbCiraqota+urLS/q7zCv6ajmpWlmJ+OhYyWoqSbm5SWj3aRfYSLkI98eH50fXd0d3xmT0VHREA8Pj5BRkdHS0tLTVBSUlJUVFRUVlZXV1hZWllZWldWVFNQTEUxQJozIGpyQZlvOzw5NTyAgoZfSU1PT1JXWlJZXGCniGKaaXR6ZX5vbX96i4h1gYiGdGyZkXNzfGprnY5MeYSSiYSOZzF2hnNsfn2DdGZldH6EhIWAZmlsdWtwf3tncHB7bpKNjntzfX1xcG51bYJ+d3l0anmJgoiJg5aTkpCLjZGUlY+XjoB5iJeIhomGf5CHdWlpbmdjV1FZV1hZXE5QVldaWU9JSUVKSkhHQkFGRENHPTk5ODs5Ojk8Ojk7Ojo6QDw5Ojw5OD43ODc3MTUyNDQ1MzM2NDUwMzEuKiorKiwsKyspKCsnKSwsMjI2LSs1Nzc1NDc4aU84OzVukoiZkZqWpKiunrKeprquq7KwwrK7w8ebl4+UmYuOhnqFkZqWj5KOkopziYR3i4+Mf3Z3dXh2b3hzaVVGSUQ/PDs5Oj9AQURERUdKTE9RUVFRUlNUVVZWWFpaWVhWVVRTUEtFODAvXGCzRzlYUDs5NDQxlrqLSExNT1BRVkxBSVFJYq+zoHF8eG19bHGDgYWBeYOGhnlxn5RzeIBzdZSHNXGdqJ2OoaGEooR2cIZ7hntzjK2NiIBoZmJpbXFtb4J1aW9YdW+NmpF2bH97fG1ybnB/enN1bWJ2hH+GgIaRkYqLipKLkYyLj4N2eYuPgH6DgH2OeHBubmpeWltdW1lYYWBTT1xbWVhMSEpGSkc/Q0FCRz5DRD07OTc9Ozo7Ozk6OTk7Oj88ODg9Ojg7NjY2NTExMjEzNTM0NzU1MzEuLywsKykqKSkqKiopKCopKy8zRE0yMTY2NjQzPHZSNz03YpKBkoiWkZ2kp56vlaW0qK2wrsGzusHGl5CMlJCBiX1ugpGTioSLiZCId4SFbpeKjH95e3txe3R8a29eSlBHPkA3NDU4Ozs8PT5AQkVJTExMTU5QUVJVVVZXWFlYVlVUU1BMRTw1Kp1LW0AtZ0k5NC8+koOprl9ITE1OUEw3Q01SU0RKhnaAfHx2fmx3h4d8fYWCf4x+daGZeX6GgISZhZucYYaqn52LgpCNenaIfomHjnOKl4+De1xkcXR6e3eKbWdpYXluhY+Cem6Bd3OEenFzeXdrbmldd4d9h3yIiI+Ai5OXg42GjYd9cYWAhHx1d3t8h3RtcXJkZV5aWl1TW2deWFFWWV1XR0tLRUxHP0ZAREM+QUE9Ozk3PDs7PTw6Ojk5Ozs9Pjc5Pjk5ODY3NTQyNDQxMDQ2NDY2NTQtLCkrKCcnJyYoKCkpKCgrKysvMDBVcTwyMzMzMUV+VzQ9OVyMd4l/lIyRnZ2fppGgqp+wqa/AsbvFupaPkZSIeoZ2a4CMkoN+i4WQjXmEgnSihY1/f4OAc4OBfWx5bFNYTEFFMzExMjY3Njg4Ojw/QkVHRkdKS01PUFFTVFVXVlZWVFNQTUZAOjI9ICOWY4xbNTMxMWk/R29JRklMTU9STEtUXVlSSmmEiHuJeXxyfI+LenyIhn6Xh3ehmYiGj5KUpY2sqUiGra+vioCAk4qBi4GEkaiHgJiYipxzbHyBhod9jmhnZ3h+bYWGgYVxhIVHa4B4cXl2aG1rX3d9g4h/iIWMepWenIqLiZJ/e3WLdnx4bW93fn1xcXBqWlxbWmNjV2dmXVZQUVhaUURMTEdPSURGQ0NBQENBPTk3ODo6Ojs7Ojg4ODo6Pz42Oz43NTk1NzczMzQ0MjM2NjU2NzY4O0RGTE1NTEM3KyIlJyspKyssLzAwK251MjI0MjBMgVw1PTxehHR8foqFh5GPlpiSl6CdrKCnua+zvbSXjZKLmIt9dHF/ipN/fo2DlJV9h3+GpYeJgIOIhnmIioB1hXlfY1ZMQzYwLi8yMzEyMzY2ODo9Pz9CRUdISkxOUVNUVVRUVlVTUU9HQz84MCwjh1s+Pzg0Ll2VcHOjVUZJS01OUFdgWXBaXF5qjZOHlYCEgoWRk36FiJCAmpaCoKCXlZuapa2Tmbuxp7vIw6eKjKGkjpOJgJB7coOen5GcfnaFhYuPh5BpaG+DgHSMhoSLcYeCdoeAe3aFfW52dWeBlI+GiYmIiYiiq6OWiY+YgHuCint6b2dreX53e3BpY1xZWVxpXWFnYFtQTU5ZU1JJUUtETkdDS0RCQEREQTw6ODc9PDo8Ojg4Nzc4Oj09ODw9Njg3NTY2MjM0NDU1NzY4Njc8QkI/PDg6PkNRXmVcRzInJiwsLS0uMSg/jFsuMzEwT4NfND87bnZwZ3iDe4CMgIGRj4uamqScoaymq6+wl5KRhKGUhHh3gI2UfX+ShpOWf4uBkpuOhICCjIuCiY6FgIqAbXBqXkNBNC0tLy8vLzAyMjM0Nzc5Oz0/QkRISk9RUlNSU1NUUlBPSERCPDg3LzlDPjw8NjMubJOXTVFJSUtMS05WYGN/Z2dtdZ2bj5qTk4uOj5qIk4+di6ChkqOppKOsk6i2oqfBwq7Hr3i6lJp8jKGemYSShIKPoZ6TmZKEioWPmJCVbG91iYuBlYyNj3eQhHFshYGKl5KDhYhyiaGXh5OKj5CXpbapm42WooOHk4V+gGtqa31+fX9xX1tiXllmalxsbF9ZTEhQU1FOTk1HSVFERE5GQUNFR0I+Ojk3PTw6Ozo5ODc3Njc7OjY9Ojc4NTQ1NjM0NTU2NjY2ODU1NjMxMC4qLCwpKCkuOlBhXEAsKC0rKzAsJ3KINzI0ME+EYjNAPHVuaFlwg3B1h3F2kYZ+l5aalJ+fm6egqpaTmJ5oZqSafoWUknqAkYmSkn2LhZmSkYOAgYuOiYaSiISJhXh4f2hOUj4vLy4sLy4tLzAwMDIxMjQ1Nzs/Q0ZOUFJUUFFRU1FOUElFRT47PDpDRj8+PDc1MjxAUjVISEhMTE1OUl5vinxzgX2gnZunpqKZoZeilZyfqJ6pq5+orKmqtZervqu2yMm3yNHPvpugcGmqqJ+Ek5GFnKCampmnkZGIlaGZmnd6fpSYkaGSl5eBlJ57dpWSq7OJjZegfZWenI6Tlpqko6e2sJ6RmqiIl5COgolsc3N8fHluZl5bX19hZ2NgZ2ddUkVLS1FPSkpNR0dNQ0hNRkZDQkdEQTo4NTw8ODk5OTc1NjU4Pjc1PTg0NzQ1NzU0NTQ2OTU4OjYxNjg2My8wLi0qLC8uLScjKjtYYkIoKiwxLShLl14wNjNRhWYzQUBpYl9QcXVgbn1hd459fJSOjoqfkpeelZyqmJ6qQkR9h4mImY55go2Ljo18ioaQkY+Cg4GJjIqFk4WChomBgId3X2JQNDYwLTEvLC4wMC4vLi4wMDE1PkFBTVFSU1BSVFVTTlNMRUVAPD49RkhAQUA4NjYyPDk8RkhHSUpOT1FZbYaQd5WLo6eqtb24pa6srKiptKywt7Kyrbuxs76cs8Osu8nLuMO/t6WjsLKsrKqjipaYhaWmoKKYgqaZjaKqp6SHhZOjoKCqoaSpjpywi5Wkp7i7nKGjsJOjnaOekaSirLCts7WjlaariZqKk4uVent+g3tlXmZaY2BdYmNeZmdgW1BESkhUT0ZITEdLSEZHSEFLRkNGRkE6ODc9PDg4Ojk3NDY1ODw1NDw3Njo1NDY0NDczOTwzODwyMDI1NTEvMS4tKiovLC0qKComJTVYWC8sMCwsMISBODcxUIVoNUFDW1hUTGljV2pwWHqFdoKThYiCnIOSkYyS2sidlnNWl4iPiJyPfYaMj4uKe4mDh5GOg4WBjIaFiJKGgoSJhoeHh3FuYUBFNjQ8My8xMTAtLCstMS8tND9EQU5WUVJTVVVXVU1cUUdHRDw+PkZIQ0RAODs8NUM7PUZLSkdIUk9QV4GToISuo7OqssHHxKuzxbats8CzuL62v7XBtru7pLjGqbbJx7a+ubSoo7StsLCbmZKan4mnr6qklXefpJehq7GymJapraiutbuyuqyvtaKxrLK1vLi1rrWgp6ijqJupsK6zure5qJy4qo2lj5KUoIZ6gYByWF9iVWRgYGFfX2ZgXFVKREVMVlJJSktFS0hFQUBAS0RCTUY8ODY3Ozw5Nzo5ODY1NTU3MTE8ODg5NTQ2NjU5Nz49Mzg5MS4wMTIxMTMwLCosLiwrKysqKCcqKUVaMDAqLytokk82MFKHajZBRVdRSkxcWlFjZFd6dXGBlH2EhpN2hn6AjXu/u6O8grSUk46bj4SIj5OKiXqHgYyTjYiFgo6AgYmPhn+GiIWKh5F6eW9dV0BFTjw2OjQ2QUI3NjQvLzdDSENRXE9RVVhVXFdPX1VJS0pBQD5HS0ZGRDs+QDdENz9CSktFRldUUF6PpK2ksrTDtrjBzMq3vMS9s7TCuLjCtb+wuHSxtKa6xaSwxrmxs7K0qKS2tqqwoKKWm6KSpbGtpa2sp6SYoKyzuaGosbm1u77Mv8XFvbyzwri6uL+4u7i6ra2xprGqrr6xvbzCwq2Zu6mVro+YmauJfoB5aFVhX1ZoY2llVltkWldVSkhHTVJIRElLQUlEPj9CQkxAQE1EOTk2Njk6PzY6OTk2NjI0Ni8xOTU5OTM2NDYyNzs9PzY6MS4vNTg6OjY1MCooLC0tLSwsKigoKysoRVMvKjAwSo9rNTJQh202P0ZSTEFMUldUWVZad2pwf4+EgY6Eb3tyeIhiuaGao4mVlJaTlJONj5eSh4d7h4GNlYqBhIGKenyLiIZ8ioKBi4SVfXh6dWZQXGRHRUw6UWRgW15TRj87SFBFW2NRUVlZWmdaU2BhTVNPRUE/SUpIRUZBQEM8RDZCP0hHSkxUWlRelK+4tbu5ycC7vcrNvL3BvLi2vLy3vrW6ssZgdbKlsZqeq76qpairqqSis7Wgq6eelZaemJ+upaenpZ6jlKKnsLOnsrK8tsG908nJ08bCxczCysPBvr6/vL24tbC5t7fDusa+xMmxnrqroqyPpqm3ioB8b1xeXlxVYF1oZlNZYldTV0pGRk5LQT5IRD1LQj1CQD1GPjtIQDc5NjM3OT40ODk6NTcwNDUvMjYzODkzNzQ1MjY/OEA+R0tSVFRSUFBRUlFKQTkvLCwsKisoKCwtKy9QPiguNDiAfTwyS4hxOT5DS0VASk1QUkxRXWhtbHGQjYaQc2xycnOI1cC2mqCNlZmZkY+XkpaWjoaIfYeDjJaKf4KAgnl7i4SHe4t5gYqCl390fXpsZnB2WV1cUGVlYmBlZF1bWFhcTmRtVVJtbl9vX1hnZVVZVEpEQktLSEZISEhIQkk5REBIS1RUVl1aW5O5wLm+uMbBu7nKy7u3ura4ubS4tbWut7eZZHWpnq1wXqKtnZihopuknqullJ+fkJSOlpiYqJ6mn5+amYOjnaykqrCst7C8uNTQztbPycvRzM/OysfAwMLKvsG9wcHFxMbKwMnPtKS8sbWwnKy5vZp9d2lbXFlXW19YYWJRXGFUUkxEQkZIRjxARj5CSUJARD06RT49Sj80NzUzNTs9NDY4OTc3MDIyLzI0MTY5Nzc1NTU1RDNFTE0+NTEwMDA2OjQ3N0BJT0o7LiYqKigtLi8sQE0rLzU0bYlJMEiJdD8+QkRAQ0RHS09EUlxaaWBwl5ORlG5sb3R1h7OsoaGfi5mcmY2NlpGbkoWKin+JhoyQjIl8gYNze4qDhXuKdIGKh5V/dHt5bG11fGlzZWlsaGZqaWhgZmlpbVpudJetpL2Ih2dbb2hdWllUSEtPUEpLUExTUUhMQUpGS1BfX2JnamKYuMewurS7vraxxce2sLmxsbuts7KorLitjbaonpynmk6bno2PoJaRp5illYqTk4iRiZCRkp2boZiblZaHnpmmmqyvqK+ns7PU1NTW0cvP09TO08/MxcLK0L/KycvJ0sjNzsPQ0riwxL3Euqa3u8WifmxhWVpbVl5WWWRaUF1YT1JDQ0lGREo7QUQ+Qkg/QEI4O0Q+QEk9NTY2NTU7OjY4NzY1NC8xMDE0NjI3ODg3NTM2N0M1Qjg/LTAsMTM0OD05NywuLDE7Rkw9KSwoLjAwMDdLPy00NlSIVzBEh3dDO0I+RUJBQ0pNP1VZU2ZXc5CRmYJocnB5eYOhqp6ml4ybm5iLjpWRmo59iYuGjoqKi5CIfIWCcH+HgoZ7h3KDkouPfnF5dWxxeH9ye254c2xpgHBtY2lucHlpeH1+y7/D36duY3huZFthYEtQUlVOWV5QXV1NUU5UUVVUXG5ud4Nyl664rLWosLarrb3Bsqu1pqW5p6yvoqy0pI+xrpuYmIyRlJKFj5uBjaeSnImDi4SKiYSLhJSVl5eUm5CcmJmZnp2rrKSnoqysztLV0c3L0tPT0NTRzsjD1NHIztLT09bN0tHF0tbGwc/IyMOpv7jQnHZrYlpfW1VeUVxaUFBVUU9JPkFHQkNGPUFCP0ZFPkA/Oj09PDxKQTQ1NDY1PDg4ODY2NDQxMi8wMzUyNjc2ODUzMzs9PEU9QDExKy8zNDk/NTkwMTAyMi0yRU8zKS8zLjMyPU4yNDhDfV8yQYZ0RDo9PUk+QENGSDxWUk1PW3WHhot3bHdwfX6AoJ6eoYyNmZOUi4yTj5aFeYWQkY+MioiRh3+De3J+gIKHeoV2hZORiYBvd3Nsc3x8d3xzgnhxa4Bycmlwcnp5cnu+y5t/jbKEdnKFd2lhaV1EWlpbV2ZkWGVrVFhdXWFjXmN4e3+MgpmqpKSioKGppqqyuqumtKOirqKkrqOnsqCJppuVk5GKko+JgpSJa5WjjZmEgYZ+kYODlJeti5WOlZqOhZKQnZenr6GgoKWkqMjNz8fCy9DT0dTSztPNxtbTzdTY1tbY1dfVytXazcrY1tHLrcTDzIdva19dXFZSV1JbUEpISkpLQDs6PEVDRT1DRD5IQz9DQjs8OTw6R0I0NjU0NDw1Njg3NTQzMjUwLzI1NDY3NDU1NDQ8Pj1FP0E2Mi8tMTY7PTA4MS8yNTQvLS47UjAxNy81MzJFRDI4Pm5iNT2BdE05OUBJPEFEP0E7UExGS1lxgHZ+aXN5coKKgJ2VnpSFi5aJj4qJjoiPgHiElJmLjYmIi4l/hHlze32Dh3eAe4eRl4GEb3hxbnWAdnh9dIZ8eWyHdnVufXaEdXl8nraNPEGLxqV+jX1qZVdJQ2VjZmNoamRveVtfZmhrbmlugYOJkoyen6CekZeZoKOkp7OlpLKgoqWfoqmio7Kch5+SkpORi4+Lh4SPhH6cnIyNgoSFepR/gqqWo4ySi5iTi32XipqRqrOYmpynnKa9w8W4tsXN0dDS0MvSy8nUztHV2tfX2NTZ2M3Y287J2trS1r/MzbR0c2phWVZQU1BYVUVHS0pGRj46NzpAQkM6R0VARURCREE7Pzs7N0RDNzU2NTU7MDY4OTQ0MzM0MTAxNDU1ODc0NDQ0OUA+REJDPDMzLjZGVFdPUUpBSkY/MiooLkJUMjkyNTQvN0s3NTxgYkE8c3ZWODdBSDo/Qj48OVFFQ0pUbG5vcGJxcXSGjX2XkZ6Lf4eSg4mGhYqCiH14hZeXiY+DiIaHe4V5cXt7hIV1eoWOjZ56jXB9cHB6gHJ7gXKEh4Bujnp1d319g3WAfYeJsHRZqsK3jZKBcG5jPV5ocnFxcG53d4JmaW9ydXlyeouHj5SSm5agloiMk5yfm5+roKGsnKKamqCmn6CsmoyajZGTjoV9iIiDhYuOoJmUiIOHfmyZeoSZh4iTjI6VjIZ7m4iTj66rk5WXnpimrrW8qK29xsvIycvLz8nD0srU19jX2NfU29fT2dvWz9va0tbJ1cySdHdlZFhXTlFSXEdDRklJP0I+PTg6PkA7Pkk9QEJBQkVBPj86ODdEQjc1NTQ3OS41NjY0MzU1MzIzMjM2NDc1NTM0NThFQkRDRUI1NjxGTlNNW25mY25za2BWPiw1TEc4NjU0MzNCRjQ9V19oTHV4Xjg7P0Y8PEE8OjlEPkNHUmtfbWRiZmx2gIhxkZCbgHmAjn6DgYKFf4R8fYSYjoeMf4aHgXeDeW97e4eCdHqSno6hdpB2g3R1gX50gIRvgZCCb5KFdX2ChXp3h3yJuMalw8q4gpacj3hwZk5lY4J6gneFoZGLeXl3e4SAfIR2bZSWlZaQmJGDiY+XmpeXpp2YoJefk5OYo56brJaRkIuOk4OMhYmJgoaQkZ6cmoiFjIGGmHuIiZ+Xj4mOi4uCfKCIkIq8oJiTl5mcqKalrZ6ntb+/v7jHyc3OxM3K0dXV1NnV19vU19na29fb2tnYztvGgnV1Y2VhXVJVVVRNS0RORDs9PTw5Ojw/OT5BNj4/QD0/Pj05ODY3Q0E2NDU1PTgwNjY1NTQ3NzQ1NjEzODU0NTY0NTU3SEg9REpFNzkyNTtIPjs5OzdJUFxaUlVYTDlUPjs5NTMyN0k4PU5ZTUh4eGQ1PT5DPTxAOjY6Pj5ARVFfWWZhXVxpdHp5bImNknd2eop8foB/gH6Ge36CkYqFhnqFiHx2fnVtfX2HfnR/kp6RoIOSfIZ+eI9+eYuKb4ObgXSZh36CioV8fpF7kKmPkMOgvY2cpJx+ioV9iXOMi4BzppqcmJSFe4+RiYRpR3ChpJ6MjJGShYiLkZOVj52bk5SRl42Mlp+dlKGVko6OkYx+kI+Oi4SJkpaZn5+IjJSRnZCDjH+mmYiFjoOGhICkhYqLt5edkZSVoaagnZ2do662ubSrwMbK0MfHzM/T0tLY0tXXwNfY2dvY2trZ2dfctnR0c2ZmYlRdWVJPTkhETEM+PT45OTs6Ojo8PTZBPj89PTk6OzszN0RAODM3OD43MDY4ODM1NzwzNzgwNDk3Njc1NTU0NkZQNUROSTg5MzhBSz07M0NASTw6RFdPPE1USE4/OTYzMzM+QztbWD41WXlwWjw8QTw9Pjg1ODk/PURSU1JYXlZYZm1tbWmBjopxc3iKe3uAfH98iHt9fIuHgn51g4Z6c3p0bYF+hX53hpuhm56Uk4CMiH+Yh4Cckm6IqYV7oYx9kY6DiYWdf5uRio2jop+RpK+gi5GLhYuBk4ZXcq2Ln6uckIOZnJCQjluCopGCjZ+TlYyHiIySkoyUlZWQjI+KiJacnY+Wl5KMk5SGgIyJko6Lip2XmKOjhpOdlaCKioiOnJCDiY+Ag4eFpISLkLKYnJKUl6GgnpmSm52nsrispb3Cx83Hxs/Lz8zO1tDR1K3W1dja2Nra19bZ2ZxreHBjY1lZVVFVV0NASUQ/Pz86NDg6Ozc6PDs0PDw/PT43Ozo6MTpHPToyNz1ANTA2NzcyNTU/NjU7NTU4NTg6NTc3MzVIUjdHT0s5OTQ9RUpCPjFGQ0xCOTg6R1hANUhXSTY2MjIzOkVDZVg/Jl95aV96Pj45PDs4ODs8QDtCUUtLU1lQVGNieW1ifpGDb254i3l6f3uBfYd8fHeGhYBzcIWCe3V3dnSEgoV9f5Kmop+mopeKnZCUl4uKqJdyirONhKiShJmUhZqNo5agmJOJm56ik6mwn5GVkY6OiJaMb423hJrEyLKdoqadnJiWkbKQZKTNx5WOhoeJkJKNjZOVioWKioaWmpyPkZWTh5WYhICQjJmJjpCrl5eko4iZnpWaiY+Hl5eKhY+NgX+Hj6SIjZOompeTlpihmJ6Zk5yborK0paO9wb7HxcXIyMnCytLNzdSo0tHW1tbY2tTT2s5/bnpkX1taW0xIVFpCQkhEO0I+ODM3PDw6OT42NDo6PDo3Mj86OTI5STo+NjdCQzMyOjk2MjY0Pj00Oz42OTQ5OzU3OTQ0S1E8SlFLOUE3QkdJQDY0SkVMRj47ODhFVEE3Plw4NjIxNDo7RWBYQUZhdGhMY1o+NTs6OjU7Oj06RU1GSFNXU1JCY4JHdoGOfXxtfoh5e357goKDf3d3gIN8bW6Lf3t9eHh8hIeKfouis6ejqrOil6egpaSWla6ig5G4lZKzmo2ioYylnLCjpJ2ZkaeWqZqsr6SYlZaVkIuYmpehwI6jybirnKOmrpiSm52ynYWGqKKcmIWJiY6VjIuTj4iBhoeJk5iVjIyUk4eUmIaEkpCcdZKZs5aXpaGHnJmSj4qRipebiYuXjoZ+jJieiZCQm5qak5iXn5OgnZSem6CxrqKkuL60xcfEvcPDwMbNysnSps7N1NLQ1tjT0Ni5bnVxWV1SXVVOR0lORUFDRTU+Ozc3Oj88PDc9NDM2Njk3NzQ+NTs1PEs8Pjs8QkE3NTw7NDI3Nz9ANj9ANzg0OTg3Ozw1NU9NRFBSTDhAPUVBR0E1OkpFTkVEOjZBQEJTPjlETzMyMzU3NT12XDxSXHRpWk1dUzw9ODg0Njc9OkpGREdOWlxZSmZgO0mEi3p6boWGen2EeIGGgX5weH1+fW9zjXp+gnx4houJhoSSprusqLG9r6Wts7OppKKwrIqatZ2juaaVraWWqq24p6SjoJqpmKqkrrCqmpmclJaRl6CYmru7rsqhare4q7CVmZ6jrJOXvqNeqrKDioqNlIeRfI6OfYOGjpCUlYiIk5aMkJWNi42XmZOdmbSXlaudipyUkY2QkoyZm4uTnpCLipafoYyUjZeZnZKbmJ6UoaCUnJ2lrqihpLS4rMLIxbW6vbzFx8jC0aDGys3NxdfW0cvUnmx2ZFlXUFtQTkVDPz1DQkI4QDg4NT9HPTw2PDM1MzQ1NDU0QjQ5OkJMOkI7QUhDOzpAPDc0NjxCOT9AQjg3NDo6Nj48NDdUS0NVUUo3PDpJQURANEFKSE5CQT82REE8Sk5EL1Q9MjU0OkVKXFhKWlFtZ3BwRGlgS0k2NzU3Oj5KQENJUGRIYmBicElAi4p+gXOGh32CiHWDioJ/bn19fX9wd4d3joKHfI2PjIaMmarCwK+9xruztMC9ta2rs7aMqLKurb2rm7ulqK25uaunpqKipKOqr7Kxqp6cpJmbmJifo6alkqO6r6m/vK2usrmlpah+iIecrb2wg4yMi5CDjoORj3qBiJCNjpyIiI+XjYuVl5SRmpadqJqxmpGsnI6aj5KOlJCQlpePkqCSiZWbo6yUlo+UnJ2SoJ2bmJ+gk5qepqWkoqOwsqbBxsOwsLu3xcPDv82mx8THxL3W0c3FyoVvb15ZV1xZTEpCS0FGSD9BQEM7OjU+QT4+NTw3PTMzMzI0MUExN0BCTT5HQENOQ0E9Qz07ODZDQzVCSUI6ODc4OjVCPjc5VktEV09GOD00S0BDPjRFS0hOPkJBNkJCP0JTRTU4UDE0NTs8ODtEPjlMampdO1dSZEtnWlVONzlHRD9DRlxlRmBpZ1pdXZOMjIl7h4yHg4x1h5GKgW9+e4J/cX6BepV6kpSUmJCTlqezxsm/wczCw7nHvbuvq7q7mLO3urLArqbApKuwu72qrqujo56nq661sKmboKqcoZyWn7C1p4yju7q2wbysqZ20paWplIWOqsTDpIKLj4eIhIaVlI16g42Rj5GhjIyUko6Jl5+Yk5mVl6agr5yMq5yNlo+RkZWVjpGVkpChlIeXn6GznpSZk5+gl6Semp+bn5SYnqWjpqakr62lwMTDrqi3tsnDvbbPssS/xLyz0crIwrRwdWlZVVlnUEtIQ01LTEpBQj5ERTw1QUU8OzM9OUIzMzIyNjNBMDVJRU4+SUBIUkBIPkNAOz49RkE1QVVAOzk5ODw3RT44PlZKQ1dPRzg/NExAQjs1SktDTD9CPzxCRj1BSEw5K0c8MzY3NDY0QT83T2FPYUUvPT42a2xqYEA6SD4/RUJlWk1lXGVUYmqZjZaKi4iTkIaJeYeUkIFygHuNf3iHgoKQeY2hlqiZmpm6vcfIycHSycrCzb3Cs628vqe6wL27xLeswamss7y/qrCqpKWkrK6zrba1oKCvn6WimaO0vamcqb3Co7a3r6yUsqysrZeHmqqmpZGCjJOlloqBdYqSeYWOkpCdn5OPlIuPjZSjmZeclJSjnqqekaWajI+Pj5WWiHyPlpOTo5uVoKKctaWQnpako6GlnZ2lmJ2Vl5uko6mnorKsqLvAxK+ls7fMv7mvxLO7vsK5rcLDwsCXaHVeVlRYWElKTElGRERJRENCREw6NERJOjs0PThFLjEyMjQyQjI2U0hPPEpCSlFFS0NERTpFTEI8N0VWPTs9ODk/PEk/OkVVSUFXUUc3QTpLOkI3OUpNQklAQz48REc8QkNPPTIwSDM2NjE3MD1COj1qakpLNVFTM1NwcGROO0Q9QEY+aUhfWGFaY2NWno+djpeOnpKJin+KoJOEeIV/lX9/kIiKkYCWoZmtp6SYwr3Hw8fF087Ozcu8wriwury0vcu7w8K2tryts7+5va6vqKCpqLauramyt5qeraKnoZ6rt7iqpa+/xbG9urOoq7e0r6+XlqWsqKCRjpOyxaeWjnySlXyHkpmPqZiXk5OPkpWTpZ2TnZmToaOinJifmIuMj46diFqQl5eSl6SZZZiin7KllaGVqqupppqeppeYlpiUoKOopZ62q6m5u8O0pbS2y8C4qrarsru4rqi4ur23f2dqV1RSU01FSlJNSz9CSEVFSUhHOTZGTTs+Nz5BSi4zMjAyNUM1NU9WTjxMRktSTE9IR0k+SVE/OjhJUzs7Pzc5PkRMQkBIU0tAV1BGOkE/RzZBNztITUNFO0M+NEZFOkJBQkc5LzpBMzYwMz5HRDk0PXRkTUc7RSs6ZnxnVjs+QEJGQnBFaklSZWFMRqWUnJeil6mWjJGDiKaTiIKHgpyEg5WQkJSPmqKer76voca8xMTGxs7OztLKv7u2sru7u77PtcS+ubm3s7G1s7izq6ecq6y5qqinr6+YpK+kp6SltcCwrKy0v8O5wLq0qLq3ubSwlqWtr66ki5OVoY10wpp9l5qEjpeZjLCVmpqVkpKZmaWjlaCalpqpnZugoJmKjY+VnGBKlpyblZqlllSWr5+vnJ6jlK6tqqSZoKWTk5iYjZufp6KZtKiqs7u7u6uwssi/uKasq62ysqOhsrK0pG1qYllXTU9KRE9QUFI7SEtJSEpDRD46S1U/QTo9RU0wNzU0NDpCNDRNV087SktPVU5RSlBISEpPQjw+TVI7Pj04OjxDUj5ESFJJQldOSUBCQUYzPjU4SktDQT1DOzVFQTpBPz5IQDUrQzUyLD5jXWc6MzV0ZGVAUjcmIzN9aFc7OkJDQD1RRVdTc2JXRkiql5mgoqivmZGXh4uolo6Ik4Wgh4Sdl4+doJujpLTJtanFucLEyMrJyMzNx7+7s665ucHBzLXIusK5tbqwr6+ztaajm6q0taqppq2smqWupaSorLq/qKy2t7/CwL65s7PFs7q+raSvtay5poibmKabdr+fhJmejpOamoyul6Gcm5eUmp+gqJ6on5maqpqhp56YkI2RnYNudpKimpWdop2RrrKjq5SnqZeqrKOinqSnkpGZnIeUnKKdlrGmqau5tr2ysq6+ubago6eopaacm62pqYtfYl5dT0pLRkdNSlZNPU5GT0tNQkREPFFWPUFBQkRPMTg9NzY/Qjc1VVhPP0hOUVlTUFFVS1FKSkVBRU1RPz89OD07R1I8RURRQkdZTUtBSERFOjozOUtJQj5DQjk5Qz48QD47O0c3LTI+LTGCaE56XC8wa2hgPD1CQjg2emZXOzo9Li1SYE1VSH5lXkhFq5WboZ+7r5mUoIyTq5yRkpOJq42GoZ6Mo6yUo6S2xr60wLnCwsfJxcLNyMK+ubKvurXBwsm1xrLCvLW6qqitrbCio5iqtLumqaarqp2pr6ejqqu9u6isvbW4vse8t7a5wrO/wbWqtresvqWPo5iSoqC9n4maoZmXn56Pt5+pnKWim5yhmqiks6CbnaacqKqemJWQlJuLlomMpKGUnaKdoLSvpaWSr6qZqqmcnKKiqJCUlJ+Cj56em5WppKGhs7S6tK2otrKynp2jpZuXlJiqoZ51XFldXEhHRUZMUElORUdIQ1NMSkJFR0FXU0NIPUFHUTE7Qjc6QkY3OVxZS0FMUFRVU01XUk5VSkVASkpOTzlEQDU9PE5RQz8/UD9FWk1KQUtER0A1Mz1JRz89RUE5N0E7PEA8PDNAPC8oOypIkUI6U0owLFtvVzcxPCodQoBkVDQ5LTE5ZlxGQ0OdcGJHRaeXo5+ew62cl6WYmqqcl5uaj6qWlaemla2smaKrtsTDvL62wcLAx8O/zMW7vbmysLmzv8LHtb+wvLe5tqWkq6utoKGZqqrEoqSpq6WerK+roqmpvrenrb+yubfHtrW5ucCzwMO4trO0sL2jl6OXlJyUrp+QoqOlo6OgkL2lqZ2pq5ycoZulnr2imaOfoqmsoZ2Xjpaek56Hj4SNk5+koJ61rKaclbCmma6lnJmonJ+MmJSeg46gmZuSpaSamKuxtbGqpaqtrJyYoKCSjpCVqJ6UZV9XX1xNSEdJTkxIRkRJQj5RSUE8R0lJXFJPSz1JT1U1QkY5PkdHNUNhWktCTlJVV1ZRWFRSVUlAOFJRUE06R0E0Q0hRU0lDO0M+R1ZLQ0BPPks8MDY7R0Y+O0ZBNTU/OTo/OTsxNUQwLSwvTXZcNEtaNSxNblc8LT0pHiN6YlE1Q0tROW1RRjxLeGVhVkuimqOcnsWsoZ+sn56uoJOjn5aloKaprJi2saOqs7bFxL2/tcDCu8jBvsnHtri1tLGztLfBxba+sbi1uLSfpqyqrJ2enqWkwaWfqa2fpKqtr6KmqLy1prG9ube2xLK0uLvAtMXCubmvs7W1o52llZKUoa6fmaKeqaiso5rCrKmerK6bm56ZpaC9oZ2kmKurrKahmo2an5KeiY5Xf5afpaGguKqmk5i0op6wn52ZrZWdjpiTnIGOn5eVjaGjlpClrbGrqaGipaSVlZ2Yio6RkqSeiF5hWGJfS0hKSk5GRUFHSz8+S0I6OUpLTl1RUUk9TFdcOUZJPURNSDhIYltLQ0xQU1lZVldPWl5JQT1XUUpMP0g/NUhMWFNIQTpAQURQSD8+UT5LNzA5OUZFOzhHPy42Pjc4Pjc3LzE/OTElMVFVbVtKTzEwPWdXRDE3PS0rd2BTNlNba1dxR0U2PXVlXEtNnp6hmZ/EqKahtKKds6iUq6WgpJ+tqaydu7CorLaxx8XBwrLDw73Gw7zEybyvsLatsLSvvsO0ubKwurSsmaixqaqanaWhp8Gtm6ywm6qjrrGppKi8tqe3u76wt8Sts7PDwLTItLy4rLS2raqippaVlaOsoZ+gm6ersK+vu7GmoKmompmYk6KjuKCho5KwsKylpp+Top6Vno+QjZWem6Kep7SnpoyXspuirZmcmquPnZKVkpl/kaCVjo2foJSLpauvpaahnKCdkZGak4WKkY2bnX5fZFlmZUlITElTQUNASUg7O0c/OTlPTlZeUlNKP1BeXT1IUEJMTEk5TmNcTEVMUlRZW1NVT1xiSEE/WlFBSEFLQjdGRUxLTT87QkhETkI9O05AQTMvOTdDQjk3RjsrNjw0NjwyNS0vNEAxKyZWdFNlTz8xMDRiW00yMz4wPHZdXj9bVF1lcEA4O0iWd2VBNJ6jn5ugw6mkqrOipLWqlrOtp6KksqyuqbuyrbG1tMbAxMK0wMS9ycS1v8fBtKu1qK+4rL/Ds7ivrba5pZiqsqurmJ+ml627tJuosJqtoK20sqerubKourS5s7nAqreyxL62x6jAr663tamnrKGYl5KmpaKimJmlr7iusrW2oJ+ppJqUlpSkoLeipaWWsLKyp6umop+ampuVl6ifoJihnq+yoqaNlq2YpKqWl5yij5qMkpaYhZWek4uQm52TiqioqqKmoJmdlYuOmY+BhZSIk553YWdbamlMT01OVD1DQU5DOzpJQDc3Uk9dXlJWUUFXYFxCSlNIVktIOlRkXE5GT05bV1tSUFFYXUdBQltQQkc+TkM5SEdIT1A/P0NJQkxCPDJJQTk0MTc3Qj47N0U3KzY5MTQ4MDEtLy48Ni0jQnFnc2syMy8xW2JaMjM4MDZwW2JIMDRJb2dVQ1dGjHlmQzujo52hpsCnqK+xoqq1q566saykq7S2sbC5t7C3uLjFvcPHvb3EwsW/uMDFwLmptqSsu63Awbe3qq2xuqGTrbGtspakp5GquaqfprGcq6CvtLOrqbW2rbyttLO5t6y4scO7wMCnxKuxt6+pq6unnpiZq6GioZGYobGvs6ywuZqbqZ+al5OYp6C2qaajorGxtKyzqK2gnKCgm56lnKKXnaOzr5ufkJOkmZ+nmZOhnZOXiJOWkpWWnJKIkJqYlI6oqKafopuYm5KFjZmKfYuVhI2ZaGZrYGxtV1BRW1VBQkVUQDw7SUE4OlhQZF5QV1dFWV9eTk1STl5LSj5ZY15PSFBPXFVZUEtUV1pJP0RYUERGP05APUlHR1FQQj1ERUJNPzoxRD83NzU0Nz89OTVFNCs3NS8yNTEtLS4sMT0qJys9XHA9PjEuMGRaYz8xNjQ3Z1lgRig/OGx9Z1tWO4l7Y0M+p5+doqq9oqqwrKSyuaqmtrWsoa21va+zuLu7vre2wMK/ycS5xMO/v7fDvMC2rrWmq7exu72+tKmusbaelquup66XpqiOp7ufpKyznqyisbCzrKm1tLW9rrGytaywtLPBu8a3rL2wsbisraqjsqaepaqgpJeQmp+zqrOrq7Oanaecm5aOoaaktK6ooa2urrGotK2zqqScn6iknpWimZuotamXmZGRnZmdn52PqZyVl4SUloqdmJuTio2WlpqWpqWjoJyWlZaSf4+UhXqOkoKLlGRqcWZvcV5GWWdWRENNV0RbOUhDNj5dUWhcTlpdR1teXk9OUlhkSkpCXGJfUUxNT1hXWFBKVlZXTD1FVUpFREFNQEFGSEhRUEE7R0RGSz04N0I9Njg3MTk+PDY1RDArODAvMDUvKiwvLSo9LCwlMisqNUsxLydfXl9UMTUwPWBWXjgqQzNZVVxnSzaMemZMQKSaoaWtt6Ssqqavrreqr7a8qKext8a3sba9wcO1tbrEvszGucPAub65w7fAuLGzq6m6trq5vrSprbC1l5inrKmsm6urjqu+nautsaOroLGts66ttbK4uKqur7Gota+1u7zKs6q3trG0r66mobSgm6mtoKaWlpuasqOuoaavl6GkmpqTjqOmqLOqoqezrau2pa+ytq+jmZ2sp5qXn5uZq7eil5OQjpicoJeWkqmdmpJ/kZeMnJuYlpCKlJKemaShoqCYlpKSlXqLj4V6jIqCipFqbXdsdHthRmFrWUlHWlo9e0pGRDZBYlRpW01cYktcXVtSU1JiYExLRV9gX1FMSVBXVlVPR1dWVU46SVZJSD9DSz9FREhIUU5BP0hISEU8Nz0+Ojc1NjA5Pzg2NkIsLTgsLzA0LCgsLy0qNzYoKDkuJDpLNS4iVV9UXy81KENfUVwuKkEvSkdQW0czY1lVS0SZl6GyqbKqraakr662qri2uqWstLfKu7S7ur+/tbO3w8DMyLzDvLa9v7+3vruwu62mubm2tcK2qq2wt5SWp66rqaOwqZSvuqSssbOnqKOytLGysLSxt7Opr6yyp7evt7TExreptressa2pp6O2oKCosqGllZyalbKeqJygqo6po56blpimpqW4qKOytayosqiusrarpJmgq6ibnJ6clKm4nJSOjoqXm6GXj5akn5uUgpCUj5yal5aViJaPl5qnnKSfkZeRkJV2g4+He4SBg4uKbG92dHt+XExmbVtLTmNcPmJ7R0k4R2dXZlxMXmNNWVlXVVhUaV1PT0hgXF5QSkhRVlVSS0hXVVZNOE1aTkVARks/SEJDS1NNPz9MT0hAOzo+OzY7MDQxPD00NTg/KTA3KTEuMikpLCwtKy05JDA0MiU5QjcuI0FOR2UyNydHYkxWJSxBLj1FTFE8M3JrSUNDkZmlr6Wur6uopbGztKu4srihrLW5ybmuwbvDuLOxtcLCzsXAwb20vb++ur68ssOnqLiwtbW/vK6rsrGboKexraamr6WdsrWtqrGxrKmotbuttLK0rbOtqqyorKm4rbKwyMG5pbqxqa2tpaiusaalpK+kqZyenZuwmqOjo6ORrZ+koKCiq6anuqWstramq6yprbG2rqOeo6iqm6Cbm5Kjs5mPiY2GkKGflIyTm56RkYOMkpKcmZeVlIeXkpWZp5ugnoyTkY6Qd32NhXx7fIaIiHBycX18fFxTZG9dTlhlXEZElltHO05tWGJcTWBiTlZXVldUWGddUVJMY1laVEtHT1RTTkdJVlNcTjtQXklCREhKQUU/P0tTTz46Tk1DPDw+OTo1PSszMj02MjQ5Oig0NSkvKzEoKSssLSomNSovJjApMzg6MSYqM0JjOjYqSGVISio6Rz4zQkhTLD6QaztHSI+cqqyjqrGkqaW0tbK1trKyoqyuvcy6rsC6x7G0rbTCw9HFxr7Asr7Awru+t7vEpqu2q7K2vMCvq7Gsn6OnramppbCjqrKqr6ywr7CurLS9p7awsqmyqaulpaOtuq2qssO6tq27qamorKmnsaWqpaOvqqiin5yjrZWlnpiemaydoqepoq2mpK6suLOyoqqjoKuvsayen6anqZmkmZmPn6aYh4SOiYudoI6Ki5SajY2EhY+UnpyUl5WGlpSTl6ScnZuLkpCOiX5+h4V8dn6Fg4RycXCHdGxfWmBtYVFycFxLPIV8Rj9YdFhhWk5kXE5WVlVXUVxhXlNPTmdYVlZLR0xOUkhFSVZSXWM8UF1EPEZISEJHPz1KUEw6Pk9KPTk/PTI6NzsqMjU+MTA0ODUoNS8qLC4zMDspLCwnJTIzNCQsMi04NjApKDE7XEowLkpnRUY2O0IvNEVLWDJAlVk9TEWWmK2poquznKqqsbetubevrKarq73JvLC9tsKvsauzw8POz8O/v7TAwcO5v7PHw6qutq2yuL++saytq6SnqrCoqKmxpbSuqrGurrKxtK61vaS3s6ysrqiroKOesLerqq26t6W3tqSqp6yrqq2hqaensrKkp6ahoayXqqGVm6CmnqWiqqSto6CnsbiurqSmo5uqrK2qnaKko6SYoJuWj5eck4KDj4iFm6CLiY2Kl42OiYKLl6KakJCbjJOSkZOjmpuaiY+Li3yGgIGDenN/gn98cnWLpId4a19gbGVXZIZjTj9nk0xFYnlXY1lSZVVOVlVWVE9cXWFVS01oVlVWSUpISU9CR0lTUVlvQU5YQDpKR0ZFRz4+RVFIOENLRTg3QzcyOjo6KjM5Py4vNDYzKTQrKiwrLiM0Li0rJigrNzkqJjYrPC0yLCYwNlZZLjBKZ0FBOztCKzpKT140RIc9R0ZEl5OwpqOrsZirqq62rLezrKasqqm8wMC3uLK8taaysMPJy9HAwLu5v77BucG5wMOssbSxs7rAvrKwrqyrq6i2qqeur6q5sKiysq+zrberubimtLerrKSpqp2knrOzqaiktLSgt66gqqiqqKunoKusqbm2qqqqqqKqoK2ckqqhnaCloqajqp+dqLWvqaaro6SZpainqpyio6OfmZmgkI2PmI1+h4yHg52dhoOIiY2MjouChZWhmY2NmpCSkY+Tn5eZloyLg391h4F/f3h0gn54dn2Ah52Pb3FnZm93XF9yiGpPXplWSG55VWVXUWNQTVZUVVBPWFpiVUhPaVRVU0dPWFVJPklIT1FQeExOVz08S0Q/QEE8QENVQzlBSz01O0UxMzs6Nyo0Oj0rLTM0MSo4KiorKiwpKSgvKiYpJTM7LCQyKTIwMjElLzFQYTAyP2Y9Tlg/Qyw+TFRfMEppNU9EPJePsaKmrK+arKatsLS1sKymsKqpur67v7Ctua6itq/Jx8jRwL69u7vBvbrDv76/rbGxsbW8u8GxsLOqs6mktKmlrrOzubGjrriysbO7q7uwqq62q6qeqqufo6C2rqmhn7CyobaqnqinqqOqoaKtrai+sKyuraKoqKCsmZCwoZiioKeon6ibmquxqqOgrqKhlKKko6eYmqilmJeYno+Kh5SIfY2GhISjloSBgYqFjYuQg4OTn5aHkZ2Qk5CNkZyUl4+KhoZ4dYJ/fHV4eX95cnF3Zn6GpHZpX2NpgHRmiIx8UlhwX0t4c1NkVFFfTU1TWmZOTFZZZFhHUmhSUT9CTlFhUTpJSExTSXFRTFM7PEk/Ozw9O0BAVzw8P0g3M0NCMTU6OTMtNTo6KS0zMS0tNSkoKy0sNDIjMiknLCUuOy4mMS4wLTE0JSwwS2c6NDhfPWFkP0YxQ1BbWypITDlVQDSSkLOhpaetpKekrae1s7KrpbCnqre9wLuvp7mqpq6wycfI0cO8v764vb68yLrAt6+vs7G6urfAsrK6rLisorSnqK2zt7qzqKi+tq+3vrC/p62stautnKmvo5+krayonJ6qsqS0qJurp6mjqJ2jqaipvqy0sK6dqqSgrpybs6KVpJukpqClm5uqrKagnKuinJOcoqadmJeoqZKYmpSQioKPhX6Pg4CInY+Ffn2LhpCNj4N/k5qShZOijJSRi5GbkpWHiX+Acnt6fnxpeHx5c25uemaDd4WKZGFmX3GDeWxmeF1eVD9Xe21UYlBRWUxMTnJ1XUhaW2dZRVVlT0M+Sk5EQ0E5SEdLUz9qYUlROD1IPDw8Pjo8P1Q2Oj9DNDVIPjI7NTkwMjc8NSguNS8tMTEnLz5LSDAlGjkwJSwsMDkvLCwrNicxNyMtMEdpSTI0WD1mYkFKN0dTYFUqPTlDVj0qkJWymqChqqaloquluLO0pqqxpqy3wb21r6K5rKensMLKyczBtr3AtLe/usi0wrSysbSxvbe5vbWtuLW+rKGzp6ussba4tayfv72qs8G0vKGvs7WqrJ+tsKOcpamqpJ6cpLClsKCfq6mnoamcpamhrbyorrGuoaujpK6en62ml5+boaSdoJ2bpKujm5ulpZaXlaCjl5uWpayMnpGRkYuCioCAjoF7mZSMiHt+i4WOjYuJhJKXkIaUo4qTkoeRmpGTgIl9eWx+dnl4Y3x6cG5ucHVmf3JqhGhkZl1rcoxsYGhwYG89W3lsVV5OUFJLSk1UWldNXF5sV0RXX09eT0hNREY7N0hFS088cmhLSzlBRTs7PT47Oz1KNDlCPDM7Rzw0PzE4LTY4OzIoMDkvLDQvLj0tKks+KR00OSYnLjM0LjArLzQmLDokNDFBZ1kxNFM9ZV9ETDZLVmRPKjsxTlc9I5SarZqgmKikpKCopLiwr6Svr6mruMG5sq2fua+rqLS6yMvIvrbCvq+0vbfEtsKxrbixssC0u723qLm3vaqjtKipq7KvurGrnL2+prDBtreir7a1p6ansLOfnqWmqKKmmZ+sqKmeoaqupqCmmKSpoLG5n6Sxr6GsoayknKenqJmam5+llp2dm5+rp5edoaqTmpSZn5SZlqGpkZqJjpCGfId+go19fKCMjYh4gouEiYuLhYeTmo6JlZ+JkZWCi5eOkX2FfHNwfnJ0dGB6eGhtbm5tZ31xY3ttaWRgW2SEfl5Zc2pySUl/aVhaTVBMS0hQUlFJT1xfblNEWFpSZ05HS0VGNTZIQkxJNVplSkA2RUI5Oj49Pjo6QzU5PjozQEY8MkAyMy46OzgzJjI8MCw4NUIqKS1CKiw0O05OQDs3My0uKy03Kio8JTUzPGVjMjRNP2VdRk89UVpnSCo9L1dUNSiXn6eanZeuoaGhpaG3q7KmtLSpqLnDtLKtoLitrq2wtcbIwLa+wbmwtLy3vru9r6q9sLS/sb3Duam7urenp7WpqKyyrrSxqJy/uKauvbizoLG3sKilp6+xm6GkoKWloJecr6ahnqOor6GfoZSlpaK4sKGmsaufrKOvmJyqpaiel5qepZSbnZueqKyanZ+ml5eYlp6Ok5eiqKKQiYuPhnqEfoSLeo+XiY2GeIGGg4eLjYWNk5iNjpaZio+XfoaXjY95gXpwcndwcHRfeXdka2tqZ2aCbGVyamtkZ1dgcn9eWWt1aVhFfl5aWE9PS0hIUlVHMjleXm1QRFdVWWVMSEpFRTA3Rj9LQjZJSkg7NkY5NDk+PTw5OEA4Ozg6N0BJPjg8NC0zPDw3NSg1PjEsO0ExKCs2PCM4Uj0qMTEzPkQ1LC0nNDIrOysxMzljbDg0SEJmW0hUQ1RdaEUuOjFdUSwyl6SjmJadq56moaOhuKqwobu4pay9w7KvrqK1sKytr7XFxL2zvrq3sLO5uLq4uq6tv7O1uK+/wbirvbq0paKzq6mrtK2us6Sew7anqri3rKCzvKqnpaivq5mip5ykppSYobKlmZ6kqamcoZ+UpqCkuaikp62mnqWhqJOgqaGhoJmbnqGTnJ2XoaOsnJybo5aTlpacjpSTo6ekkImKjoZ5hHyFhn2djYmKhniAhIeHiJGFlJOSjJCVlI2OlHuDl5CLd398bXVzbW10Ynh0aGZpZmNtg2ZnaGRmZ2hdZGFoZVplemJgUHNUW1tTS0pISU9TQCAqaV5qTENWVV5gS0hHRUMuOkI8Rjw2S1BEODpEMzU3PT04OTU/Ojs0PjhATD0+OTMpOD48OjkqNkAzLkU0KCssPjAtTz8uKy03LTExOTUsJi41LTgwNTc2YHNCM0NEaFtLV0dVYGhCMzc3YEwnMp+kpZOPpqecn56epLatqKq6t6esw8C2r6yitq6nr6+3wMC8scG3sa6ytrW5uLWsqryzr7Kxvb+3rry8sKWftqymp7Wqq6+hocWsqqiytayttLqdp6mrsaWXnaqfp6WSmaWtopidpKqhm6GcmKGep7elsKutoaGenaGVoaafoqCZnJqclJuelaafrqOZmJ+WlY+VmYyPmJqnoJCHioqIeIV3goKCnYeKgoh7f4WIhYWQhJaVj4+QkZCRjZJ7g5WPhXN/fmd5cGxrbGd1c2thZmNhc35hZGVmZGhoYmVuWV1YXGxjYUxnV1pgVklHSUtNUlg+OWBsaUhCVVNcWklHRkVBLjw/OUE4OVJGQDc6QjAzNz03NjkyOjw5Nzo5RE09QjwwKjxAO0E8LTVCMzc9KyssL0EqSksuLyorMzcyMig1NyQrNy43MjY4NVx5TjI+SGlaTFpKVmJmQTozQGFFJTWdpaGSjK+hmpmgl6W0sqOyvrehscW7ubCxo7erq66pub28u63Asq6vrravs7myp6u5sK+utLa7tq+5vq2mnrWroKGypquwoKbFobOmsLKxt620nauurK6imZ2oq6aflZunpqCZpaOpnZqfm5Wdna2xpbqorqKhmpuemZ+kmqWdl5+YnJaaoZSql62qnJWenZSNlZqOlZSYp6eNjIqJjnuBdIKCi5iFhnyIiISFioyIkoWUnJOSkJCRl4+Qf4GNjoNvgn9neW5pbGpncXJrWmhjYXF/YGRnam1qZGhlY2xcbGx1cWJTYmljZVpJR0xNT1lRUFVhZYFUQFZSWlRGR0ZFQC88PTc/NjxFTWE4Oj8yNDlAMzc4MTg/Nz04PkZKQEQ5Mi09QT1BPTA1QDlAMS0rLjM8O0s2Ly4rLC0yNDo1IzMqKTYuNTU0NjVafF0xOkxqW01bS1hkY0BBMUdgQSc0lKOdj4+ynZyVoZups7CfuMC2oLTBu725saa2sKmupbi5t7etu7Ctq6u3qrW5raSztbGvqbG2trGztrunqaC2qp6fq6Oqrp2sxJmvp7CyuLWsq56wra+qopudpK2pm5Wdp6SdmqqjpZaaoJySnKOsq6m7nqakoJeamp2hj2ujlpmdcYOYnaWAdpKsqZ6XmKKTipiZgJeKn454hZKNgmxpfneEcWyGioZ9hIuGb11kYWeEmIZsi5CUknV4i4R/g5B/ZoiBaHZqZlhcaXRuTU9pYmVwg2VdZGZuamdcW1yJkISIaE9LRDhGVGdeSkhRUFVWS0hSYXB0ZUZbUVVQRUdGQz4xOz02PTY8NGZcNTo8NzU7RDQ4NjA6Qjc/Oj5GTENCMzQzPUBAQD0yOEBFPTEsLDA4Pkc3MDEuKi4qLzY2OCwjMScyMTQ6Mjg2WIFsMTVPa1xOW0tbZmI+RzFOXzsrLo+km4iWspudlKGcqq6so73Fr6m3wri+vK2nt7Gmq6S4tLKzsbmuqaestKaxtaKnuLa1qKettrOutK60oqqftKueo6adp6mcsL+VqKixtbmtraSorKqrpaGfnKGoqJuYoqamnJynqJ2Tnp+ZkJ+oq6S1sKOio5yWmJmXo4ihj5Kah6GIlZ+igKWAqK2flZSelImEcniNjoOIoHWHjGmWiGZ+c3igb4eHhH6MfH+hoKCZgHyHn3SIjnabimuHgoNuaWVke21yYlSGbWRtaZhxWGlvbYZWXWhaa2lZh3BreXKHaIeEWV5GTj5GXk1GU1ZWUVBSV1RnXk1aTFJSUEVGRz48NDk9OTw3OzA8PDc5OTo2PUY1ODYwPEI7PDk9RlFHPS41PDtAPUA+NTlHQTgyKi8xPEk6LzAxLiovKC00NTgzJSYyMTE1PjE8OFiDdDE1UmtbT1tMW2dfPUsxVF03LyiOp5iEnq2dmpmdn6uqqKq+w66yuby3wb+qpLexqqyms7Wvr7O3q6mlsq2ltrSbrLW2taWmqbOyrbKor56qobKpoKSlnKKlnrG4laaoqLe+pq2mqamsp6Whn5mhqKSamaejpJicpaqXlKKclJOkpqeht6Wjn6OYlZOYlJ2IrpCYlYqqjJmknYaxgaWvoJWboZd6gtSogIeUwJvGeHexpbeXZIDAnL95hIR5j4N8kJCRynGWvJzFe3K2p7qQe4Fsl7GrsXlpbFixrm9maryTvG5neW1xjth9UmpitrJ8fnCVdZqhqpBWTldhT1ZNRlZcWFBQU4tcV1tQQVxEUE5ERkk8PDU3PTs6OTouPTs4Nzg7OT5GNjo3ND5APjY5P0VSSTouNT47Qjw/QTg6Sj41MioyMkFFLy4zMi4rLyktLzE4Ni0gLzQxNkExPTpXg3cxMVRrXE9bTV1nXD5MMVlaNDEhj6eUgaiqn5idnqWtsqqwwr2ytcC1t7/Cq6a0rq2pqK+0qrC2tKiopramqLmvnLKytqqlpKeyr66xp6uep6WypaKioJicoqGyr5afpKG1uqOqqKCsraShnZuao6mgmJupoJ+XnqiokZ2nm5SeoqejobCjnp+jlpaTmJKZha9raoyOqn9ohZaHrWZyoJ+Wm6mXca6hpH93unxroI92sV9qtFulgGWckGBmgXpmf2l4a6plvnNnpox2sWp8sXh1kpRjbW2nblyEoEVpZ4iWRXWcX31me6OmgVheiqtnfIx3e2qoOEqvW1hUbGNaS09ZYFxWVjtOiFBXVjBJU1NKQ0VGPT80Nj87ODo5MD04OTk5Oj08RDg7OjY9QUA2PEBIUUc5MDc8QUM+QEQ4QEc9MTMtMzNFMy8uNTMvKy8oLjAuOjYvJyQyMDNCLz07VYJ2Mi1WalxPWUxfZ1k6TjVdVzMxG5KjloOtp6Wfo6WrsrittL2+sLfFsri6w6epsKywqaqxr6Sxu7Glpa+zo6q5qZ2zs7GjpKCqrbCsr6eooKOjsZyknpmWmZ2esKmYnKOgtbOhq5qhrKyfnZqXoKOpnZmepaCcmaGnpJCdopuXoaCsn6amoJqfoZWUkZeRm4a1m7V5h6matpl4h7Sbt3+VmJisl39rgaZ7gYWGkZSSd6tnarFbrHuOh5R0iXCOhoF/iJGXeIODi5eMg6CPhbB2d59ya2ttfItPpVhIZGSZfmNopl94cXRSkoZdT6ltYm96hYBhnS9Tom5bVGtnYExLXWRYXFpCPrB3V1hBI01pRUJEQUBBMTk+ODg6ODQ7Ojk8OTpBOkU6Ojs2OkNCOD0/S05IOjU6QUZCQUFEPEZEOzAyMDE7RSwwLjk0MCwuKC8zLD44MzEfLzItRDE8PFN9bjMrWGpcT1hNX2ZXN0s5YFQ1MByXoJWJtKenoa2pqLOsqru3wrC8wq25tsKrra2vr6ivs6qisLyroqi2raOstaSls7Soo6KdqKqyqLCopp+goLCXoJuWlpebobGlnJulqbavoaiOqaepm52WmKCmqZufnaSgnKCjpaOWm56Ymp6jq5ymmpyaoqCWk5GTk52E1ZOZuXGxwn/Gh33WlJy7fZyXqJKPnY2ke42GoYClgnmreY+dVq97iX6farlauXeHhH2mg5R8mXupeY6dkHuxbY6EdZC8hm+VUK+nxYpRoHpjYKphc3KGa5aHXlK1tMiFfol8Y6Q0Q511XVFpaGRQQFhnWWNhSkhNakpaU09ZZlpDRD9FPzA8PDU5Ozc0PDw4PTo8QzpGOjs+NjpAQzs2QE9MSDw6PERIQ0JDRDxFRjgxMjExREIuMDA0ODMrLSkuMzIzOTcxIyU1Kj4zPT1Rd2o2KllpW0pbUF9mVDdIOmFQNzIlnKOTmbKoqaWzqqW1qKS8uMGwusCyt7S9tLansrGksrSnoK+2qZupu66jsbKhsrSxoaSenqipsKm0qaadnp+smJmZmJiWmKOuoJyXqa6xqaOejqyip5Wdl5uhp6GYoqKjoZuioqicnqCelZmbp6Gcp5Sbmp+hmJCSlZCdiLJuaLVyrIhwj6dytHZ0tnucmqaOkJ2No36PnqN9sHWCkNLSdVyufIV/pG6bqqZrh4V9rX2YmZB7sXOTnY95s2WWdIWebp9mlFLJi1rCXJ95Yl+tX3ZzhGGWiF1Zyp1vv35yTUu1U1XGZFVRamNlWEFPa19saFBVRkg5PVdSW1dYSEI/SjwyPzs1PTw1Nj47Nz48PUM7Rzk7QDc7PkQ7LkNSSkc+PzxJSkZDRUQ+SUk6MTc0NkA+Ly4yNDI1Mi0pLjI2LDc0MiYfNjA7NTo9UHFoOSdXaVxCTVRfZVA1Rz1hTTYyLqOekaawraWpu62mtKWntru8s7u+uLi1vLy0prW1o7Oyo6CssKWYqLuupbKxnLS4qqClnaGqpbKorKqlmp2bqZ+WlpmZk5Slq6KYlKersaahlZKsn6WSlKGcpaeglZump6Kbo6CumqCenZCWm6OfnKWUnZWZo56VmZaSm4WsfHiod6OPi4eqcK2MhaiEmpuji5Obi6J+kZeHroR/gbNccrJTr32CgqN+cdd9d4V+j56HmZp3r4aKkZyId7RhmmWbgYGVbJJbsFdLmnWYeWZhrV52doVml4hqXa92lZ6Pd2s1ecius2BEVW9dZ2BFUGxfcG1WVU0uZWNoUllRO0FDQEw6NT85MT48MTY/OThAPTpDOkc7PD86Pj5FOS1FVUpFQEM6TUtKQkhHPkdLOTc8NDY6Pi8wNDMzMy4yLi4xOCouMzIlITA0NzY3PVBrZT4mVmdcQDxVX2NONkdCYEk6NzegnZSht7GZs8GtqLKnqrO6t7W5vrq4s7e+tqa4taG2rqCgqayflam2q6mysquttKSbqaCgqKK1p6aqpJmelaWhlJSdmpKWpaiclJGorbCloJSZqJ6ij5GimqmloZWapqmenaSfrZygnZ+NlJ6cn6GZmJuVlqKglJiRp52HqX5/pnmhj5CEqnCtjYOnhpeho4uYl4ijgZCGlKp6f4udeXCxWqiDgoigeHTYf3aHdKiCj5uNkqR8lpCfhHuyXpxkoH2ClW6TXatcW5N/kX9oZ6pjcnqAapiGcV2rWomgj2ttZE9KQ6FcW010XWJmTVphX3J0YEpVNUqakVhIRT1HRUFMMzVBOC47PjA1QTc4QDw2PTxGPzo8Nj89QjcuSFZKRUBINktJTkBJS0BFTjo6QDQuOz4xMDIxNTQrKjA1LzcsJjIxKCQlNjY3MTxPZWRBJlVmWz8wVF9iTDdGSF9DMT03op2amr+tmLPCrqusqKe1sbixtb66u7Oyubyqu7ahsqWfpqion5Ossamwq7etqq+hmKKgpqWkuaOjrKGXnJKjoJaVn5uVmaKhkY6MqrCwpp2Wmqemn4ySpJinq6iWmKmon6ChpK6joJ6hjpWhmaCgkpyXm5WeoZaWj6ycj65ucrR0qYx3i6Z0tHp1tIKUp6SUnY2JpIeOdbhvi3uLomtrtlqhhmWXl2igoqdtlHK0dJOZf7NqhpKIrWp1tGGdZqJvhpJrmF2tYE6hfIeRUnOjbHl+fW6Yhm9cr1Y8nHdlVG9uLlunT2NSa2VibFpiXGBxfGNTWVE+P2xvMkJCQD5NOiE3QDYuO0AzN0M1OD8/Mzs8Q0RCSkZNSUY2MkpUS0VCSjZJSlA/SE9DRlA9PEU1MDs7MDEwLzc1LCssMzI2LyMwMCwsHTI4OS85TmBlRCdVZFk+LlVeYkw1Rk1eODFBOKWanJ66pJuxwK6tq6uot6q4r7XAtb2ysbu4rMK3qqyhnaekop2SrKuotqS0qK6qoZedqKClq7ido62clpmQpqOXjp6hnJmfoJGUlay2sKaYk5usqZaMlKaZpa2jkpers6SgnqissJihopCZoZegm5abl6CUnamdlJCrmYfUlJq7dbHEgMSHftaXnLh5ipKZjpiKjKeHeaK2dX13dsGDmrJhg7p5wHx1uGK1gYyHqX2VgqypcXt/dbyIp6BpnWGmjq+ifo11h6t9vm5zvHSyg3V4gIltmohwbY2kdL1dd31bYXm8alpWXGp6XmlhY2ZibnlvWFtZQ0FAcT9DRys0SCInOz8xMDw/NzpCOTk9QzQ8QE5aXmBgX19fWlBQUktFRko0SExSQEpORUZPQjxFODQ9OTAyMC44Ny0qLi8xODAiLTEsMx4sOzowOExYYUYnVGNYPC9TXWBLNTxMWy02Pzmnmp+ivKOXsMOvramrrbGoua+3xLG7s6+8sK7Csq2mo5+lop2ckaulqrOltaetpKCWmquZp6y4naOumJWhkaagk46do56Zn5qQlpOwubGrlZajp6eUkJalnaStn5GhqKygnJ+ppLKdoqSOpqGVoZmblpWjmZCwoJKVqp6FkJm2gJKSjbiWeYOTm7Z3bmxvdG95j4SOiXKewLu8mnuBsqhwgXSRuYN8hoaLho17ioeMl32ku7m9nHV5s6N0dZd1dLB1mZ5mh2qNtnRzcXe2i16AeXyIZ4N5bHpii6xwdIV+V1unaURkWlRmX2NdYlBnZnFudUJNT0xEO1pMPkoyOzAgOD47LjM9QTk5Pz07PEM2QlRZWlpbW1pbXmBiYF1TR0dINERJVEFLTkdFT0Y/Rzw3PzcwNzAvOTouLC8tKjgvJSYyKDQkKD43LzdLVF9HJ1NiVzgqT11dPSs7VlYnPTo8pp2hob+mlbLCs6yqqK2rqruvsMavtbSwuKe1ua6rpKKnn6CdmZStpa6rp7aoqJ+clqGknqykvaehqpeVnJGim5KQoqiilJ+XkpiUsrW2rJedo6Oii5KSppulq5yWqaWmnJuhqqamoqihkayel6Kel5aXnZ6PsKmUnKeij2t/ap2qeol0f5yPdntmiHu9vsC6b5KDcZSFX3JqWl6bimFjh4+WbGB/lWNtnHZilWyAmZWUZl5gY3GbiWhyjHyGlGZqfnF0eH9+Y1x4dYFoUFxuhHx8impYbHqCcUhKb4VwTnFNRFZcZmFMW1dmY15PW211a3JST0RETTxISDxMPzEsMkE/OC81P0M8OTtAOz1DPlJWVldZWltbXF1gYWFhYFxVRzVDRlRFSk9IRlBJSUg7OD01MTouMTs6Li8tNzY9NSYiLyoyLCU7OC03SVJeSSdTX1Y0KVBeTCgzPlxPJz8yPqifqaLBpJqzubajrKavpqi2sqzIrLC0rbakvrKzp6Gkqp2jnJqarKeupKW2qqWbmJainKetqb6oqaWVlJuWoJqTmaapqJKfkI+YnLCyvquapp2noomTkambqKScnKygo5qbo6esop+poZmum5SmoJaUnZ+dl7GlmaKomZ2Sn52lppuopJuem5ybkpeCaG9+cXeRl5SQhIm0qo2FmJWPioyZl4iUlYmDk5ORiY6SlJiUmZean6Gam5Sfm42BeqSFa2p8kX2BdYqLg3KCd3l2dot/fIlqc4F0hHRjdn12a294bF9iW29nTVhZZmpfV1lvem9uZlNPRlI5UFpOUk8nKjtLQjYzNT1AQTk6Qz48RU5TU1RWV1haWlxdYGJiYV9eXltUS0NSR0tOREdQTE9JPDo7NDg5LDI7ODIwKTZJUk84IikrLzIjNDsqN0ZPW0knUl5UMTBUXjorPThdSyw8LUCyoLOiv6KjsLG3oKqms6elsLWqyKuts6e2psGotaGfpaacpZaVoaynraSkt6ygmZeWoZitqqXBn6yklpKcl5+YlJWjnp2jqJOQmKiossKvmaqcqp6PlZapnqqcnqGtmaGbnaKlr6aho6eerJiWpZ2ZmqGenp2woZ2ip5aZlJmUoqSYpKCZoo+YlYyLjpCYrpB8lZyCkYGJqaiFgJiXi4SPoIh7hJGFhZqRh4aKlY+bl46RmJ6jlpmSkJyNfo1lobOuhYqEd3uQi354eXpvZnmRgYGIa3WBeYlxaHN/eXWDhoBqc2J3ZV9oZWNkZmpZa3txampcUktQRF9VRkA+Piw0QEY7NDU7PkE7PD8+PkhOTk9QU1RWVlhaXF9hY2FfXl5dXl1YVkpLTEJJT01SSjs8Ojc4Ni8zOTY0LigmJC0xLi4pKyo3JSs8KDZDTUxEL1RcUTA1TVsxN0U0XEc1PCxAsp+5r76tq62xsqCqprKto6yzsMWwq66ks6+8pbWcoaijoZ6Zl6mnqqalprO2n5WVnpqasKauvqGsopGRnpqalJKWoZuXqZ2Enamro7THs5+po6qWlZeap56onKCkrJSfn52fqq6opKKqoauanp+gmKWfnJ6dsKSZn6mUmpmekqacmqqfnJhmhZR9ZX+Pm5Bjeo1taGp6kKOramWamH5nhYtlZWloeo2ijmtojJiRondraouZo5+Yc2xteoSMhnlYZV2Ggl5si4uDd1xodHd3koCHgW94gniAcm14hHN2iIeOg3pohFhdanRkXXOIaGp8cW1jXVFNV0pkWEBJMz1GOD9GRDcxPD0/QUM7O0RHSEhJTE5PUlJUV1teYGFhYF1dXV1dX15aVE9ESE9LU049Pj09NjUzNTU1NComJiUsKiUuKysnNiokOycvQklbSi42Wk82KUVZL0RPMVlCOz8uPaSeury5r6uysKulqK2vsaeurrC9saqppa6wsaCtl6GknqKamqasna2kpqiqtK6elqSQo7Cmt7mlrqOPj5qimpOSm6CYmKaWe6Sroqi0w7ekoaaunp2UnqOfo52kqqmTn6CeoKqvqamiqZ6mm6Wep6Csl6GbpbGlmJ2slqOfm5OnmaCsmp9/vYSKdLRzhZ+GrWh3ucS4cZKho3qmmZl0q4J9y8DAunGLo4eDnn2WmIiewL2Clp2djZzBwXyBepGMmsLAfWqlsnCOgm/KeoCbeJKDjoB3eYGAeXB7f4ZweISKknhsdZFhZV54ZF9lgWJddGhtZGJYTFVJUVlIT0QySUU/REI+Lzw/PkBBOjhEQ0JDRUhJS01OUFNWWV5fYGFfXl5eXl9fX15cU01QR1VOQT8/PTY0NjgyNjYqJiUjKSomLisqKTEwHzkqIz5JW0wqI0NQLyNGWzNQWS9VQUI7LziVobnDtK+vv6mplKOwqrCvrqayta+qp6emsaugq5ibo6Ccm6qno56so6WppaW0pJ6jlKaurLi0p6+ikpGZnaaTkaChl5ugnoimq6Srrb+/sKCorqiWkZ+dopmipKqklKGhnZ2srqiqpaKipJ+jpJytqZKkmqiuqpyeq52uo5eYp5ijpJmef86UenulgnqWl5tfrY9djqiAoaF8p5WbdauDga9eZIyqe6iHhaB0l5OIs2OCq4agjY2zaoSvdHyWh7hhgq1Zo81ukXZ723t/mXF+iJJ2f2V7iHV2a32HbX2EjpB+a4CMXnBqcGdgX3hkW3FoamNlYFJUU1deSk9DNEFIRUQ4PjU7QD9BOz04QD4/P0JEREZJSkxOUFJPU1xfX19eXV1fYGBfXl5bV09VSj0/Pjw1NTc4MTY0KCckIScsJiYvKCYrMx02MCQ3O1NMKywtSjAnO1w6TC0hUEBGNC4xrMHAwLS0sLeYnpGkqqmttaumsqysrKWtprCqoaecmqaYnKKvn6GfqKejpqGfsaycn5Wmrq2xq6isoJSSm5+lk5CfpZedqKSeraOqsKi/xbKnqbGtlpKenKKXoaqqn5Whnp2cra6mqaebpqWioKqSrLOWpaKrqp6kqKejsqKTm6mcopyWlZGXoXKGjJh2hqiHcbB8nXGsfaCggqWPnnirgn6tf51yrX+sh4afdpiSe3yXf6qIooyRjJx9q3qIk4+ff3qtVpzEe5Bwk8F9gZVtdXCMbWZ3ZYduYXhucm6HiY+OgmyOjWNuc3VvYGZtZF9vaWpuZmNYU1xgWlJSQzhJSEBDPD48QEZEQ0VBPTw8PD5AQEFCRUZHRUBDSVNXWVpcXV5eXF5fYV9eXl1bWlJDPjs5MjQ3ODQ1MiYjHxwgMScgMScfJzQeNS0mNz1XSi09KD4xKTNWQEYhHEc7QzEuK6/Txseys6Cdo4+jo6Kur7evqbGnqKqprqusp6KknZqjlZ+mq6CipqCoqKOfnrCsmJuWqKevrainqZ6XlZqkopKUoa6anaejrqyirLWpucyxrKatq5aUnJ2imZ+urJ2WoZmenqmxp6iomqqmo6Gqmq6xoqirr6aap6yrq7Okk5mlp5yWk4Wka6R1inqpdXuycYKlipiLcYigm4ekX2FSq4WAroOcda6CqIaGn3qZl4Z7ZoCjiqSYhoKjfal/gZSGrl57qFWdopKCe6OfgHzEsMWMc6+0s7lyYqmvwnRoi4uVjYBrlo9tbHh3d25rZmVkcXFmfGljXVZfaVhYVExMUExDQ0FCO0NAQEJJPD06OTo8PT4+P0E9ODY7RExQUlRWWFteXl1cXmFhYF9eXVxdW1NJQjY3OTo2NjQsJiQiICcnISstIiQuITMtJkBEV0gsRys2NioxUEtMIyBBOUQ0LCfBydbWwKCZq6ihr6KfsbSwr6mso6enq6urqaWmoJuln52mp6aknayaoqyhpKCvo56bk6qktbCvoambnJaVp6SRm6Kon5+mnLCloqixrLbHsbSpq6mVkZ2doZmgpbOdmqGUnJ6nqqqirJmqpqChqaGyraGpsrKhnKuqsbC4ppSYpqqanZN9qm2fhIh2q3l8sG6CpIuIn5aVnpaB0ri0uMmBgrJfYJSpg6WIh6B6mJaaearJdJqjlKipkJKajH6aiZrGxndloYKldIKgjoJ9r19vtWOxdUujh22nR4OTZI2PnJB6bpSOfG55dHx6bVtmanJxZ4FpXmFXY21cXllJTExKRURCQj1BPEE/Sjs3OTc5OTo7OzszLjY8QUZJTE1PUVNXWltbW11eX15fYF5cXFxcXFhNQjc1Nzg1LykoJSYlJCYpLDVGTlBQTUZMSlZGKkwxLz0tNE9UUR0cOzxGMiwkp6TAx7mtqbKuraWjnLO5rKuhpZuopqusqaagpqWYq6Ofr6ydpqGtmp+ppZ2ntaCkmJSoq7azrJymnKCWkKatkpqcp6OgqqatoKOnqbCzwbGyqaynk4mXnaWboqSvppeilZicpaWpma2cq6WknaujtqugsbiwnpywqLW1tqeWmaqmnKGQg55Od5qCgJ97hKN8gqSDhqafnJ+UhLh8fXq5g4DNxsO2eJuikouffpmXl4p2n5eKpJikqH6vhZyDnoOsfZmUYaVso3GQhZCBfZaEcqxgpHNxgJphvH1SVXWNkaGUenuPjYZyeXOFf3BbbG53c2qBblpkXmduYmRdS0tRU0FHR0ZIOjpLPkIxMDg4NTY4NzctKjU9PT9CREdJTE5QVFdZWVpbXF9fXl1fX1xaWlpZVVNPSEA3NzIuLCouKyonJj9RVFZXV1dZWFhXVU9URjxFMjpQW1McGzY/RywtIIuHmamrpKu5q6+gnKGts7Smn6GVpa+urqmnnqWlmqSnobOuoqmns6CaqaSUo7Wjo5aXoam1uaSbo52jk5Cispmem6aloKKvrJykqKK1scOwramsqZGHkJynnaOknKWXnpiYmaWjqJisoauipJeupLqsoba2rp6etrS6s7apmqCypKagiJDStcO3eoeOhpGTj4Cmd5Sid4yhkoWlg4xyq4iGtG5zapqknZaKn32XmYeHkHOugqWbo42mipOdiJSQmm1wslylc5N6nGyZf3uZfm6pYaJyc36fYnOyuGh3jpKjlnuJiY6HdXt4joJsaHdoeHNugHRdZGNtbWZoYEpZV1c8R0Y/UzNARj48Kig2My4wMTMpJjQ6Ozw9PkBDRUlLTlBSVFZXV1ldX19eXmBgXVpbWlhVUlJRRjoyMjMwLysrKEBRUlRVVFNUVldXWFhXVVVWVVFPUVtVJSEyQUgjKiWSco2Krb+/vLu1npeopK62oqKZlaOqqK6pq5mlop+moKC1pqKpp7GklKujj6StpJ6RmpqqtLSknaWcqZKUl6+goJ6mo5ynnLOZoKqjtarCr6iqqKGMg4+doqGmo5WampyYmpimo6WXqaaroKObrKa8rJS9sK2fo7G1u623qZ6rtaermnyokn18sHiLgKSliJxtsW+gh618oo+DqJeagqyKhq2GoZWooaOYhp+BmZaBe5J+q4GdmZaLq3edoI+Ik5J/eq9do4F9pqdlnoB8l3Vqrl2lbHKGmV1gW4ygbZSPo5aAkYmSiHh5gZd/amx+Yn10bYB5YGhlb29oZ2hCWF9aPUpTMlM4QUFDNyQkMysnJzMsIC82Njc0MzY6QENGSUtNTlFTU1NWWl1fYWBhYWFeXVtaV1NQT05JODE1Mi4qLEFUVlZWVVRVVVVVVFRVVFNTVldXWFZVVVFIRklKIygovJKahKnGw7fBtJ+braCuuaajjpqjpKCvrqmfo56drZieuaCjq6GwqpquoZGqqaWXipqQrbGtp6Com62YmY+toqGdpaGZpJytl5+opbaovq6kqaOfi3+Om5qgpp6SlJmak5qZpKOimKeqqqCinqenvKSXwqyro6KttLutsKmjtrKsrpp3r3+QipyFh3y6rYmYZLCMZJaufaGQhKeXnIKtjIWwh6iapKKjkoWgXGxrgrNgf618e4KBsmxnbpmXi4exWn21XKSDa8iiZp+Be7tZdrVasn1Tr4F6rFiAoW2WjaWYh5SNkZJ5d4ycfWNzfGKDd3SAfGFqZm9uZmVmT1RiW0FTXT1IKD45PTQhISwkHzEuICoxLzA0NTc5OjxBQ0ZISkxOUFBSVFdaXmBfYGFiXl9cW1hVUE1KR0M1NTMuL0BVWVhXWFdXWFdXWFdWV1dXV1hXV1hZWlpbXFhXV0dCO9Kfs7G3vru0wrOjnK2npbepoIuZoJ+dsrGonqKfnbWYoLOoqquesK2erJyVr6mjjombjq6sqaejqJquk5qPqZqhnaSfmaOipZieoqixqLuupKienY58i5uWoaCZkJKam5GZl6ien5enrKSjpKKjqLqen8anpqmhrLa3rrGqob+xsLCYgqqTo66Om4CGpJeYkICAuMO6hI+dlIWomZ6DrIyEr4qpnZumq5J/1b3CqmKkv719f6OCg9e7uLWElJKCnr2+hGujgnCrhG+dgHqysceDa6uxvax5eKK+u3SAlIyjmYyYjZKZd3+PmXlifHlkjGZ4gXtga2VqamJQYltSaVw/U2BCTCk8OjQvHx8kHiUyIB0kKDA0OTY2Nzg7PkFERkdKS01OTlFUV11hXF9fYV5gW1xZVFFNSEM+PEE/NT1TWVlYWVlaWVpaWVhXV1hZWlpZWVhZW1tdXVxaVlhUV1q7lbS0ssC6sr6zop2up6Wzp52Ml6W/qbavp6G/pqaxm56xnLmon66vpaeVlK+sl4yDmpGupqOsoaWcqqCYiqOTpp2mm5qgqKKYnaCsrKm4raejmpeSe4eZkaebk4+Ql5iPmJOpmJ6WqKeeqKagoaq6najFo6GwpKy0tayyrKO/q7OynXV2qqS2hWWJn3BnrJCKj25ud6WQm6GCdrKcmHGRjnKXq6Sbma+lcm1tbWaLeG9tg5pxgXpqcWlniZaVl3JpaYWHZ3GHZF6LY2pwWl1nfnimYGJykJJwZmSAjJGOn5SUlo2SmnqEjZN0ZIZ3Z4xqeH55ZGxjZWxiSmRXSWpZOU9jRE8nSjkrIxwgGyIsKRgbGC0yLjU6NDU3Ojw/QUJERUhLTE1PUVNWXFdbXGBgYV1dW1RQTEhEPTpBQjdNWFlaWVlaWVhYWVhXV1ZXWV1eXl1cXFxdXl1eXVtbVVdeqJWttKm6urKzq6mirp+js6qYkr2xw8e8tKmev6uso6Cnq6C6o6SurK2mjpatqpCMhZWWrZ+mq6KfpKSgkoulkqaZqZqWoqmglZylpaauuaqrmZqTknuEl42ml42RkJeUjpeVppOdlqahma6lnKGruJ6wwailtKetsbOssK6qvKeyvJiMo6mltZyJlqKYh6mbj5Sdkqq0mpykrqK1maWkoKOkn6Smopasp42Tk42Hk52dlZCZk5iRj5WFf6Sal5aOjJSTipCIhX9ojIF1g3d1h4xxp219lpOUlIGBj4+OjpuQnZKTkp1/hZOMcGiPdm+Jd3V8eWlrZWNvY1VhWD9oWkdiX05XK0U9KyYhNjQwLh8cICUyKCo3OTk0Njk7Pj9BQkRGSktLTVBQUVdUVlleYGFiXV5VUEtFQz45PUBBU1hbXFlXWFhYWFhZWFhaWltcXl9fYF5eXl9fYGBgX1lZYKWWqaqktbiur6Kwpa6goLexkI6qxLzDubapoaSdm6WdsKikt6edqbWnqJGYrKOMiIqPnKeWraShmqien5OWpJeomqiZk6Wgo4+ap5igtLmnqpiakI17gZWLoZSKlZGVkI+Sl6SOnZinnpqzopylqranrsGvpLinsLCyr6yttr6ks8Gak6elprSikp2mno6poIySn6KtsZuipbOrs5qmo5+nrKCgnp6YrZ6TmqKclJCXq5mNmZqXkJefkYegnZWUhpSNkI6WjYJ/Zo6Idoh3eoiEdJxqiJKWlZKJfYyWkZKWkJ2OmJKdgYWXhnpxlHJ5iX9xe35qbmRecGlgXF9YbGJPX2NPWDlGRkQ9Mjw9Ny4qJSspJh0mNDE2NjU4Oj09P0FBQ0hKR0pLTE1TU1NVWmBhaWFlVVBKQUNCOzlFTVZbXl5bWlxbW1tcXV1fXl1eX2BhYWJhYWFgYmJiZGJcW2OYlqSoo7C0rK+jqqeuoKe1qpGPm6Oyua2qq6GimXqcobCkprGpl5y4pqOUmKmcjoaKiZyikK+fpJapoKGTl5mcrouqlo6nmKeMmKiOnbi1o6WXm42JeYKTjJuTipWRk5COkZahi5ydppydtqJ+g660orCvdaS/pLOgeXujrbXAmHiwpqGKgKp+ZFxidp+PpJ6Dln5tlLWdpamxraZmoKKVdXucmXGBmaqZbYCkqYplnKWckZiZl4yTnJGFnZuQlYSUiI+Pk4uGeWyRiHaIcnyGgYFhaYmMlZOMW3aVkGZojotxeJ+VlGR3l4aBd5dogomCbnl/a3BlYHZva2toW2RjYWFtUVk9TU1NUkY9P1NCOTAvHh8mNDozMDY2Nzg8Oz5AQUJGSEJHRklLTFRVVVldX2dnZ1dRSTxESDw5VlJbYGFiYF5fX2BhYV9cXV9fX2FhYmNkYWJhYWVkY2hkXl1mnJamo6GwsayrqqaprqOnraWSlaq0rrClmamlqpZzi5yvoKirp5SXuaCgj5yknpF+iImano2smqSVqKKejpeSnoV1ro+IpZmokZajiJq4s6efmJiLiXR3ko2Xk4mTkJCTjI+Sn4yZnqSYm7CUgIybtZ20jJKPvaeifqeje6Wyu4SOkKmghIyFj7Gqr4yJlqOaeYCLrIadn6Opq6qJloibd6Wce4icgZinhIJ7nrN7ioagmJmVmJeBkZeWhJqaYnmIkoWOkJOLhG5ykYh6gnKBgYaAh3SIhpeTeJZok3SgmnR7mYGbmISYfpCJgYKXaYyMhGp4e3FwZ2V4bWlsaltjaWhkcVpbSFNLUEBFNS1ZU1Q2KSEwOT0+NzQzNTY4Ozo9Pj4/RElASUVKS0dTWFtYW2FhaWZZUUg5RUw8P2JWXmJkZWRgYWFgYmJfXWBhYWJiYmNmZ2NiYWBlZGNnY2FhaJ2YpKCmrq6rqK2gqbGmp6qlmZOsxLyvoJSlp7Ocj4OdrJ2noqCNkL6emY2fmqGRfYaOmJeIrJ2jlqGhko2UiYaAkaiOhqGco5OWnYWeuLGonZqSj4VwdZCJlZCKk4+Om4uOkZ2QlZ6ilJ2qhp+0ibSarovKiKuvireFjbCEs7OHqY+qmo2de6iPcnt3nI6mlmiVpHm0jKGgqKqUmsKCgauJmaFynoCbpX6XhpaygaF9oZOfj5iYgI+Um4mZkot9hpSHjZaUioVudJOGgHtzh4KEfYV1hoOYgo/FZoCph4+iaZ2BnZaAmYCKi4OImG+NkoRnd3R8d2dpdnBnaGteYm5sZmpXZEZcUUwyRTQ2TWBjNyYzPEVHRDo2MzY1ODs4Pj09PkJMP05JSkxDUVpdXFdiXmpsW1FFPUtNQEpkWF1jZmhnYmJiYmNjX19iYWJjY2NkaWljYmJiZWNhZmNiYmmVl6KgsKmpqKasoKW5samrppqUnqGkqaGUo6i1oa9/oKedpZ6diZS9mpONoJKdkHmDlpaRiKuZnJuaooWPjHebnI6gkYedo5uWmJeFobitpZmbjIx+Ym2Pi5OPjI+MjJeLj5GejZKen5egpn2hp4etnaCWrpCgnp2Rh4Khja6ziaSPrJyMmn2idYCZlGuCq3VNq3iHjZ2TnKqpgqqrf4WifHunap6Ak2xnl4aYt4mefm5gY1iDmH+NfGRnjHOZfnqYbF19mG9hVHKHXWBteoRgWWWCfoWBmXKoqmuDo25ypW+fgZpnZJ5sWmyJe2VZX4J+YVdQcHZlb3RxampvXWlvbGpnV2ZNXFdFOEE0RkNeazQrSUNRTU49ODQ4NTk7NkA7Oz5CTz5RUktNQkpcXV9XXl5jdV9NRDpNT05UYlxcZmZpaWJiZGJkZGJhYmBiZGNhYmprZGJkZGdkYmdlYWNomJedobmhqqSmrJKitryqrqKZlp6gpaurn5yttKGnkaCgoaecmY6YtJmQi56MlYt1gZSRjYqmlpaYnp9+k4WGrKSHnJGKmKiXmZqRh6SvpqKVmYeJgGluiIiLjo2Jio2Ri4+RoYqSnJ6aoaN/k4GPo6GUoHeclpCng6OpgIessYileo1/hJp8onByk4eVe56MeW2Hm4uakp2qnI+HnX6EonR3pmeefnelX5h7fZNzom6Yt7S6dJOIgoC2qGSBxbl8cZW2jHKBm6RkdayrYX5qnbN+bn6JhI+DjJhxgKNrcqNynoF8o16cmbOVcHyXnrN0cluesoNqYnF0dXFob1hqa3FwZFtnXGFLQz1ENlFBWXEyPFNHX0pSPTwzOTU6OTZDPDtASVA/VE5OUUBFX15bWVdgYHtkSUM3TFdVVmNhWmZma2tiYmVhZGNgYWJgZGRfYGNrbmNjZGRoZGJnZmNoaJSWlaS5mauck6COpbi1rK2gmqGboqOkrJqasayrk5ihmaGlmpqUnqybi4mReIuFcYCVjImQoZCTlJ2XfZGKjqigh5iOiZGik5uajIqop6Sej5aHhH5qeoZ+fY+Ng4qPkImOk5+BlJyem5+ei4l3nJiijaByoYyJqYmdqJKZq66Cro1+eqCZeaOTeIBzl4eMnH2UnoabjpqdqIijZKF+jJeQm41tnmibjm+amXuAiqd9cmh0q4Oeg3OqZ5SaXZuFd4WeaKpqgLlmXKlwgZxhlYxfp3Z3iouAnWiadYeTkpiNfZ5smI9qpplcqH53u2p9qVqOhF2zZ1tucnh3a2lbcGl3d2FeZFZhQVBETjdVQlFtNEpaWl5OWkRAMTUxPDs3SD86Q0hVP1lTWF0+RGJdVmBRYWR8aUZCOU5bXVllZlhmZm5tYmJlX2FhX19gYGVjXmJkb3FfZGVla2VjaWhna2mWnYmqtpyoiWOVnKy7sa+rnaWbmqefnayZnbCnq56Xo5qioJmWlqCkmYaJjWmIgHJ6loiLlpaEkpSYj3qLhJaknImVj4aKnZKcm4iPqKKfmouQioCAaYCFeX+Wi3qIjY6HjpWZfZKhnZ+hkpdyaJ+KoI+McJKNgqmJmqGlqqOrf7CupKK4l3ajs6Kjf4iUeJ16qZh/oo+fnZmJmHKgfYiOsLV9bJqRoXh+mbWjo6uohJl8m32cm390qlpdb3uXjHmeY01/e3uGZXqYQk2fWaJqc32Pb4KKhJl2m3mHibGzf32ZkqZzfZ1tcHyUb5lyaaNdlXZIZWNfdHF8fW5lX2tndXpiY19QXVdcU1ZAWUVQZ0RSVlxhWF5JRD1COD9COklFN0xFWEFXUltWRUZiXFpgS2BtfXFFQzxWXmJaZWpWZ2htb2JmZl5hYFxdXmBoYl9lY3ZsXmVnZmxkZWxoaWxplJ6BsK6ahFNfoae0urKyqJqii5qpm5unkqCro6Coj56enZqZlZignZaHh4l3hYFueJSEj5uLfZGTlohygYmSoZtykpCAiJiUn5qEjqicmpWKiop8g2yEhXGCoYt3hIyIh5GYlHqRop+dooethn21hI+enXumlnqpgpefkYykoYCnaXhufplzoHNxfJ2FmG+Tgqx7o4Snn5uDpHBfqWh2o2RwpmGc0498e5l4cnNjooaRfqJyo5B2a5CzjGCDmIt1q7OovH93hG9/v6aqtF6cb39yl3CCdKNyXqRndKZgaKZrmtOYeYGabnZ5l2ubeXaXcmyppWdfZXlxf4RsaGZjbXV2Zl9hUVplUFFhSFZJVF9XU1tlaltlUEVDS0xJS0JLRThQQFFOWFNYT1NRYGVkaVNkeHl3SkdFZF1lWmhpU2loam5jamZgY19cXV1faGJhaGV8ZF5kZ2RrZGpsZ2htaJibf7CsVF1LfqqvsbSwsqKcmISXpqCgooykp5+XqYqZmJmUmpOSoJiOh4V7cH2DaHyPgpOagXeRjo+KcICGj5ORa5iTfIiRkqOVgo2omZOSioWJeYN2iIBugZ+Gd3+RhYaXoJV4kaCimZ+Is6Gitot6rKekrqVxqYCbkYaCn5V+pYGjm4aYcZ6Eoq2vipeLf4ykjZWDr6OVd7W2tsqidJSNg59gnZepbXmWh6CbdaGHd6B+kZeLgW9NZqOTcZuJdKV7enVihINufqBtcmRgnHN/dJhre2q0trTGpnOYfXmcapqZq3OAmmxzd5dpmXl0mHFQRH2zXml2a3iGZmtmYnN0b2xVW1JZaE9RZ0lVTFhSVVxna25VZ1dNSkFJTUtISk5BUUpQZWNqbWV1c3N/eXtudIl6e1VRTm1eaFtraVJqaGlsZ21mY2VfXFxcX2liZGhre19dZGdjamZubGVpbWWinYivp4VlQJSisquvr7Whoo9/lqehoaOLpKadnKaCmZeXjpeQkJuTjoiDeWt5hmWDjH+XoHl1j4iMgmqFhZKEi4WdjXqMipWlkoKXqJaMkYuAiHqAfYt5cI+ghXmAlIaIlZ6UfpKkppuVloRmbnicbKJkfHKleJyYcGing5qOfaV7opeDlnKfdoGJlJaPuW6QiqJifZqjl4ludGura3WgbnCnYZtqi5BploeblXWigX6aYIuGjXVviGJooWaef2qbdXFlZ4mCb3OiW19bZKFuXomNcXyAdHJkpW54omNmp2eXcYqXbaFvUoiPbqBeZKdUi11UmG1tc2txgW1waGt3c2puUVZVVWVYUmxJWE9bSFdoaHNqWWtWUFJFVlxMWFJhVWhqXnd1e3xwfXxyg3t/c3eNgIN3XlFzYWdicGdQa2hoa2xvaGRnX11dXWBqYmppdnVdXGNoY2ppcmxma21jnaaZpntldG2Mp66lqbCxpZ+Lf5WpnJ2ji6GhmqKigJWZk46akIuXkY6Ke4ZxgIhoiop8l5tzdYl9kHxlg4eViomVmoJ8iIaWppCAoaqPhJCKgYl9gICOc2mPpoN9hZKMh5efjYaRqKWciKZ4lZt+pYmWjLKZnpGEr5efpXqYiXupdaiRhJpupaKMkoSMg7xtfKWvgoeFh5WYnqN+pnxzqJWhlmmff3CsY5aKlpN4qG2qo4GJdomDd6uRpohrkrFsd7ONqWyLhm9voJ6SlWJ/q4yqeIGAjqefd599haSWnaBnmYZ0q2aerYy2c3a+jKSTWYOmjathdnJ0b3t1cGJqfm5nbFJUWFRgYFxqTFxRW0hdbG12X1txWFtfWmdzZW5vcWNxdGB3en55cnmDc4R+gXt7jIGCgHZieWRjbnNkUmxnZ29tcmlmaWFfXlxhamJsbHpvXFxiaWJtaXdtZ2xvYpamqp2BgJ+llqqqnqenraOYiIGWqZmdoomapJyonYSMmo+GnJGFko2MjHSFeoiDb4yEfpeTdHWGcpGDbn+LkoaFlI98e4GFl6SNf6SkjYCNiYSUdYKHk25si6iAgoqTjYibnYiKkqmin49/dJOXiH6BeZSvpH+CnXGPhnmTjoaBe3OpjXF9fXqXlpuFjnh7fX2Gk5WTi3eSmqGjhXx/i22Nhlx6eXN7cWlufpOKcoB0go+Uk3GGhINmjX9fgoGMeHd0lXZwem9wiW6Fhl93aXiOZ4KDho+qnH90fZZpiYhvfXV7gnRsbGaMc3h7l3eEW2tXeY9pbndycm93eG9ca4VuaWZWWV5WXGVqY1VgVF1QXm93eWtqdmRpamp1e3BxdHNhb3RidHuBeHV6gnV/gH+BeYuFgn57boBtZHluXlduaGh1a3hqaWpkXGBaY2llbHF1blpbYmtkbGt5bWhsb2COlLmpp4uho5umpJmknauhn4ODlqmRnZ+ImaaaqJmDgZyLfpaUh46KiY1ygnyOfH6OhHuXjnRzhHCVhnx9kouGho+FeH6AhpijjHumn4qEj4+ElYKGjph3cYSqhY2Rm46HnZ2Gipqmn6Crg4iNlJt/foqXraiQk6iReXGflIV8lXCArIdxfpVxanB9gZ+Lf5GNimdtXYSMjp2eoZF0l46Kc3Vsg3d0gVlyb4eRgn5/jGpdaWR7hYSJgGBpeXycfISNhHeCiIVqeo2JbGJxc4N3YHSNg4qRqJaHZ42Ogmx2ioFtgop2bWNlY3mDepVaXGlnbnZbe3l3dW5zcoNmW2yJa2tiWVhcWVhrcVteX1ldXGVyfXp0b3Riamppe3txenZ0ZG10aG17fnV6fXt5eoCAf2+GiYN7fXN/enN/aFRccmlsdm91Z2xnZF1hWWpoa2pxcm1XW2VtbGdyeW9oam1gjIyrsaKQo6Ganp6YnZmooaB9gparjJ+ThpqikaWVf3uYhXySmYmIh4eKcX2AinaEi4GElopyb4BzmIeEfpODg4aKgnqAg4qan4+BpZ+Gd46XiJWKi5yXhIN5rIGQl5iTiZ2chYegqZ6hoqOLh5KbnaOalquiqKiik52JmZF+epGQhqp/f5ORkpOdsqaalJ6OjLCRmISnjo6WnaKLkp2FipOLbH2Pd3hmgoaRi32JnoSIjI+IiIGFhJF4fHt1nKSKiIygjIeWgICOg4F3cXWGhYB5ioiLkaeRhIeOh4KLj4p5g4iFjH90aoGDfHmZaXJoYXOKcX57d3dwd3SBXV1uhmhuX15ZWlxTZ3FVY1taYGtndHt7cm5vY2pqaH57bHh+cGhvb2tmgHtygoB3f31/hHttg4yFfHp5fH16hHlPZHdrc25wemVsZWJiYFtzZnBmcnFtVV1sdG1oeHpwZ2lrZY2Inrufl6OhmJWZmJSYpKCcen6XqY2djIWfnIuel314lYN7jpmJhoOEhm14gH9ygId+iJOEbWt+epeHhIOQfoCGhId8h4KMmp2ShqmdgnKKj4WSkYudkXyNe6mDjZGWlI2blYWFmqWfopqehoOSmpmZkJmmoKaenpCXgpSNeX6KkIanfH2PkJGGmKqhnZOdjo2ojJGAn46KlZyhhJCZgIiPhHB5h3J1YX+EkIh3jJmBhI+BhoV/hoSVbnp2dZSkjI6HnIaGkHaCjX5+dHN8ioV8eo6PhZSokIeEj4GCiYiIc4KFhYh5bWp9f3ttaGtsZ155f2d9e3Z1dnV7d1xfcH1tdGBjWlteUGZsU2RaXWBqaHR5fnBsbGNrameAf2tyf2trdG53bYR5boaAdoKAfYV2cYKNh357e32Ae4KLYGl8a3VoaYNlamNgaVxjdWdvYnVtbFRicXllb3l6cmVqbW2Lip+4mqKkn5OSlpeLmp+enHp3m6SQm4mGpJSLmJp5eo2GfIqSg4yCgoJte353coCFfYqQfWtofYGXiYGIjnx+hYSHfI+Bj5ubkIimm39wi4qLkoagoYqFjHyokIeOkZWRlJF3jKOgoZ2Wm4CBkJqYk42aoqKkm5iSnH+QiHuChpGJo4F+jY2PfJikoKCSmpCPpYuPgZySipSZnYCUlH+Ij4J1dYJxd2F+gY6Ic4qWfYmMcY1/g4aHj2h4cnqOmpSRgZmAio10hIp+f3N7fI2GfHuTjoSXppSMhpB7hIWGg3N+gISFeGRwen93eXBsamZefXNofHV2dHxzgGpeYHR3cHdkY1hdXlJpZ1RkWF5gZ2l1eIFwZmtjbGdlf4FqbX1nbXBqfHeGemuLgXKBgX6BdXaCjYZ/fHuAgX1/j2pyhG50aWKIaWxiX3FWdG9sbWB4aG1XanN2Y3R6enFia295iY2fs5Klpp2OkJiPhZyhmpt8daKejZd/jKGKiJuWeHyGiH6Ein6IgoF/cH96c3WChX6JkHdnY32Gl4qCio14fYCMg3mWgJWXlY2Vnpl9b4uBkJOFpZuHjImDppSEkYmUlZGQdZGdoaGYlJh6f4+Yl46Wmp2lnpqUlZ17komFeoiZj6B/gouOjHOYo56gkpiOjqCLi4OYmISUl5uAmo99iY6Cd3J+bntkgH2Lh3GHlICRgmuHg4KAi4ZmdnB9iJSajn+VeY6LfoKJfn1zgXmLh3uGkouMmaSXg4SLdoeDgYBzeH+GgnNednd9cn12ZmxlYH9pandzdHV9cXxjZGFzb3VybWFZX11aamNSYldfX2dqdHiGcGJqYmtmaHyCa2h0aGxvaH98gXlsj4VxgIODf3R8g4yBgH56goN+fJBtdYl0dG1mimxqYmN1VoNpcG5geGdsYWp2cGZ4e3lxX3FshYWQna+Yp6mejo2Xh4Wfk5WXfHanm4qYeZeci4yZkHl8gYx9fYN7gIKAeHN4eXN9gIN/iIuAZF59i5WHf4WIdH1+iX9+mISWlJaMo6CWfnGGe5ORiqaPjI6KkqCQgo+Ok5aQioCPl6CakpCSc4COkpSJnZ2ep5mZjpWXdZGSjG2ImpKcfIiJkIlvmJ2aopKVioudi4aBk52AlJSXiJuKfYqKgntxemt2bXx/jH9uhZODlXhwgoR+f4yBZXNqfYKYmIaBj3WSi4Z7iX93eoJ/iIJ+hY+HjZWlkXmFgnSIhnt+cXJ+hIBrYHl0eXB7bmFuY2V7Ym5vdnN4d3R0YXdgb2x1bnBdWl5dXWldT1xXYmBnbHJ6iGpfaWRpY2h3h21mbGhpbGeAfHp3bo+Ic4CDhX10gYaJeoN9eoGEfXyOcnmLeXhubIdraF9pcmKHaHFvZXZnbWxhemhqfHt4cGF3bYuBmZmroaWpnouLkYaJnYuUlnx2rJiMlnyfk5GXlIl3fnuKfHyAdnh/gG9zc3pvhXyAgIl+fGBbfo+Rh4CEhHJ6f4Z6j5GHkZGbkqSak4F8gXyNipKkiY2KjZaajISPl5GUjYiIjJKdk5CMjW6EkI+RiZ6ZoqGYmIqXk3CMnIZoipuRlnuJhZCKcJaalKGRkYiKmIyCf5KffZORlI2akHyLhoh1c3VrcW51fYt1b4aRjpJydIB8goKKfmdzbnp/m5V+hop2ko2DdYp7cYOAg4l+ho6Lho6Wq457iHx+ioR2fG5sfYKAYWZ3c3RuemFeb2FrdF5wanp5eW10cWV6Xm5sc21zWVldX2BpWk9WV2RiZXBwfodlXWloZmJncI1uY2hoZWhngHp3dG+OhXOBgoN8doOJhXiFfHiEhnqAiXd/i3x7c3mDampfcGh0f2txb21xZ29rZXthbX95d3Bsd3eJf6OYo6ihp5uIi4qBjpyGkpp0f6iUkY2HoY2WlJGBdHx2hXh4f3JzeoVscW94bIl2f4CGbnFbWX6SjYiAgYF2dYB/f6CGj4qSnJegkpZ3iX6AjIicnYqPhpKXloWIk5iOlouKjY6MnYqOkYNtiYuPkYqclqGcmZaGmYlsiKaFaImgjJOAjYWMgXiUmJKdkZCIiJONf36QmX2SjpGPm5N9i4GFcHZwbG5vcHyGanODj5mLcniAdYKJg3podXB3gpuQfYqGe5aTfHiKdnKMfYiPfIyIhYqPnKWJfIR2gYp+d3draH5/fltxcnFvb3daXnBhcGteb2p8enFubWptd2Bwb2txbllYYGBgbFdQUlllZWF0b4SBYV1rbGRiZmuSbmBmZl9maoF1cXJvi4B0f4OBeXaBi4B5hn94h4Z2g4V7houAe3eLf2pwY3xihXxvcGx0amhubHd3X3F+eXt0dXN/gn6llZutn6eXhYyDfpaVg46ddImek5KFi5uMlo6MenJ4dIJwcoR0cXWIbG5sdGyHdoJ9f21uVVGBq5SHgniAdnKCeYKggpCBkpKYmpGYd5B6goySo5qTjoiUmJKDhZWYipKLiY6PiJ2EkYt9coqFiI+InJmem5eWgZWAaYmfimmJo4qUhpKEinGDkZiPmo2Pi4uOjXd7k5F7kIyOk5eOfYl+gmx3am9sbG17gGJ6fpCXgnd7gniDjX16aXZtdoiXjICJiH2VknN7hnJ5j3yMj3yKf4WOkZ+gh318d4GKfHZvZ2l+f3Zddm5ta3ByVV1uYnJhX21ueXBocGZndHZpcWxhd2ZdVWVgX3FTUE1bZWNcd2+Ie15caHBhYmVmkWpfZ2RbZ299b2xxc4l9dnyGgXV2f4x5fIaAeIeDc4aFfoyMhHx6lXhncWqDYId+b29re2BpbXSAdF5zfHiGeHRzhXx5oZCasZylj4OKf4KZiH+Jm36JmJKOhIiYjo+PhHd0d3OAcG+EdHBxg29qaXVtgm58fG10c1JOgt/JktaTfG90g3WDn4KRdpSQmJuPmHuTcoWPnaGTk5CJkpqThX2VlYeMjYeSjYmcf46BeHuNf4iMiZycnJuWlHuOd2mMlIpui6aHlYqYhIZjjJGYjpSJlouMiYtwepWKfI6Ji5SSi3uHfYBtfGVzb2tte3pbgXqQkIF7fn+Aho97eml1a3SMkIuDh4Z+l41tgIBwgo6Ajol+hXyEkZabnIx9d3iCjndxa2RufIBpZ3NuZ2lzbFNeb2VwWV9scXdna2tiZ3l0cHBkYHhhYFVrX110T01LX2ViW3dwiXNcW2R1YGJlZY5jYGZiWGlzc21rcXaLfHN5hoJ2d36Lc4CHf3qJf3KJh4GQiYl9fpl2ZXNufGWHfm5va39ZbG55enJgdnp7jXZydol2eZ+MnK+boJCChHiHlH57iJuGhJ2QjoWMl4STj4iBdXdweXFvhHBtbX5yY2R3cHxteXxqaGxjpJrB3K7vonNsdoN1hKGEkG6Vj5Wfk5qAkXCFiqGWiY6VipCclYKAlI+FiI+AkoqKl3+He3Z/iniGhY2bm5eZkJB3jHdwiouOgI2nh5SLnoaGXouUl4qOiI2KioSJbHyXg36JhouTkId3h39/bH1keHVqb3p0WIl7koiGe39/gIaNf3pndGqBio+LhISBjZiHbYN3cImSg5KGgIR8gZKXlJuRdXR4h4t0cnBkcnZ/X3Jsb2FodGZSYHFna1VfbnN5YXJjYGl+cXNuW2NzYWNWblpbdkxMS2JlYF11coltW1xkeF5gZGWEX2NjXlhpcmtua3J3i31zdoSBeHh8iXGDhX19iHt0i4iHlYWMf3+Yc2h1cXlti3puc3CAV3F6dnlxZHZ5hoxodoCJcYCdiJmonKOShH1wi5N3eImbg4SfjY58lo1/moiFfHN3cHNqb4Fsamx8dF5gd3Z7cHR6Z2BlfOvatcnD3IlzbHSBdomZiIxol4+Pm5SSgYhwhYifjYWLlYqMl5N7jJKHgoiPepGLho+CgHd4g4Ryh4KSm5aTmIeNdoh/cYiFjIqdpYaXjqCEimGElY+GiIWIjIaAh2h9lIB+g4WLj4+DcoiAgHJ3aHZyaXV3bFqNfZODhn6BhIGEi4N3YnVtioKRjIN/gJSTf3CDbXqIkYiUhn2Df4GTlJGYim5xeYuFdGpvaW91fl1yaG1caXRfUmRxaWZTX3F2dGBwYF1ohHFzaldnaWRpV21XW3NLSUtkZV1hcXKFaVtcZXhdXmRnemBkX11Za25lbmpzd4p+c3OBfnt2eohzhYR8f4d2domFj5iBjIJ8lHZsd3Z5eJN0bnd6fFh5hnGAbmd4dpGCZHaGhXCKl4aaoZuiioZzbpGKcnaNmn2KmYiJfJ9/hJp/gnlyc25vZHJ+aWZsd3dbX3h6enFxf2lhZ2F/1baOkaZ4bnF3e3CSkIyFaZiNiJqQi4V6aIeLmYaBkpCGhpeNe4yMgICJjXuQjX6JhXp1e4N8cYaAlZmNkpSCiXaFiHmGg46WoKKJmJKhgIlhf5SHhIeDiIx/f4JmfZGAf4CDjpCRf26EfoR1bG13dXR4dmtjjoKPgYZ/fYWAhYl/cGB0coZ9kI6DfYCSintyhWd7hYyJjoV9hoCBlZCRlIVub3iLfnRsbWhpeHpgZ2lpWGt1WVJpcmliUWJyeG1iZV5aaoRudGJcaGBlbV5uVFptTUdOZWNbZm1wf2tZW2JyX1xjbHZkZV1dWmxsYmxqc3aGf3Fvf3x9dHiGeIWDfYCHdXiJgJKVfImGd4mBb3h5eoSSb216gHZeg390gWxoenOUc2dyh3xxkpKEmp+boIeGdXWTfm11kpV9h4+Eio2afYyadn53cm9samF0fGdiaXV5WmB3e3ltcH5lZGhoV52PX3Jzl7zEhHVxlIiPfXGWi4abkouHcmmIjpWAe5WLgYSai3uKhnx6iYt/lIh1iYZ2d36BcnWFgZ2UhZSPhIRzgYp3h3+MnKCciZaPnoGJZn2Tgn+FgoiIcYF9Zn6MfHl/gImNkH5qgX6FdmZweXh0eHRsao+Gi4KLgXmDgYWEgWxfc3l7fo6LhnyDkIJ/c4NqeoWJjYiGeYV+gpmOkY1+bm16iHx1c21mZXt0YltwYlducVNTbnNoYU5ndXhmYF5dWW+Bb3RaZmJea25gcFBZalFEUmZgWWptbHtuWVtdbGJaYm92ZGdcXWBraWNranN2gYJwbn58gHR1g3qDg32BhXZ9iIGWkHiEi3WBiHJ4eX6NkG9veoBxaYF4en5tbHt1lWtqd4RzbJONhp+Zn5mFh259i3Vpd5aNfoCJg5WXinqQlm97dHFramRgc3poX2Vxelphcnx5Z3B5YWVkj7Gyd0tiWqXZ0JZxepCKj3d8k4qEmJCLhW5rhZGRenmShoGEmIl7hn93d4mKhJaAb4uIcXV+e2p5hYOlkIOTjYSAcICFeIZ8iZ+cmI6WkpaFiHB7k4J9goKIgm2BdmiAhXlygIGFi4h9Zn5/hXZkcXOAaXlwcHWZjoaDi313eYGEeoNrXHJ/c4KJhop+h4p8iXOCbnKGiJGHh3SGe4KajY6FeW5ufYN+dXljZmh7b15YdlpXcGxOV3FzZ2BLbHd0YV5cW1p1fnNwWGdeZ2pxYG9OV2dRPlhlXVluamd5cFpaWGplWWNweF9nXF5lbGdma2lxd3+Hbmx/foB1cIJ7gIJ/gn92gYSIl4lxgo1xe4Z8enmElIx1anl+a29+dH98b3J7epNvb4F+eGeSi4KhmZyRgoVmhoJvZ3mUiH1+hIKYiYF8jo1oeHNra2ZfYG94bV9ib3hcZGuCemBxdV9lZdTqvYsyOj6Ljn9xeYWHjYx1gpaMfpKNi35ta4SMjHV9j3+EgZSIe4J3bXWGhIOXd26IhWx1e3VmeYGDpouCj4uEfm6BdnmGfYmgk4+TlJWOjId/e5KGeH+DjIJrf3FogH55bnx8g4uEeGJ6hYJyZXJpf251cnWCnIyBgIaAdHZ/gXSCcFtugHV5jISLfIiBfol5e3JtioWShY10g3qAmIyLgHVuanaAf3RzW2dndW5XVnxTWW9kS1pycmVbSXF4b1xbW1lddX90aVpiW2hmb2NqTVdlUD1dZVxcdWVgdG9aWFRuY1lkcXlaaF1gZ21naWtpcHd9jmxpgoR/eW6AfH2CgIJ6dYKAjZOEcICLbnh+gHt7iJOKf2h6fWpze3KGenN2fX6MeXiEfXxri42Dm56Wi4GAbIx9amh+jYt6fX6DlIJ+fYqIa3VxZ2hiW2Jmcm5fYWtzYGhwiHlic3NeY2SboI9uXTZar7V0aYCIfJGGdYWVhXOOiol2b2uEgod0eYl4iHySh3l+cmZ1iH5+mG9xh39pdnluZnmHhKSGgIeMin9vgHiChICQnIqFl5OaioyFiXyQiHF7fYR7aH5saoB7emp7d4OIgXNgeIJ/cmVzZ3aDbnV8hpaSgn2DgXB4enx1gG1YcIB3dY2Dh3iIdoSJfHl0b4uCkoKHc4B+f5SJinxvbmltgYF0bVtlZHFvUFp6TltvW05bcm9kVUtzeGlXWVpaYXGBdWFeXWBnZGlpZk5ZZ01AYGNbYHVgXXVsV1dTdGBaZG9yV2pdYmhrZ21saHB3fJJraISKfXxvfn58goCBeneAf4qLg3F8h29yeIN/e4mMj4NqfXttdnh2inZ8eH+Chn+Dfn16bYSLh5ijjISDe3WKeGpsg4eQeH16gpGAgH6Lg3BycGNmXllmX3BvX2Bnb2Zqbol0YXRvW2FkanV6gL+cpqTIuHGFgnKSe3eFkoJzkIuHcnJvg3qDc3SHdId3k4d4eXBidod6gJNpcoR3Z3d1Y2p8goedgYB/jo9+c4F1h3yDlpOGe5mQl5CIgol7iYlreHl+dGd6aGt/eXNpeneBhH5oYHiJfmxrdGh8gWl2goySlX98f4BxfHd8dIBiVnh+c3SLhYJ9hHKIinl5cnGFg4+AgHp/fnePhoR3anFobIeBcW9cZmBxbElkdUtdbVVTWXNuYlFPdHhhUlhYXWFwg3NcYlxpZWVka2RRW3BJQ2NgW2NvXV14Z1RWVXZeW2VuaFZrXWBqZ2Vubmhwd3qSbWmIjHl9cnt+eYKBgXx2fYOIhoNvd4RybneCgn6Ii5N/cIB8d3h6gYx0gnh/gYGChHqAdW9+ioubnod9hXl3hXpndIWLkHl+f3uIhYR3kIBncG5fZFxYZFlscmFgYHBsa2iJbmBzaFleY25/d6naqceGh7JxiHdvjHR6hY1/eZKJf3Rzc312f29xf22Ec5OFeHRrYHmCeYmPZnKEcGh1blttfX+Qkn+AeJGTfnl8b4p4hJSOh3eZjZOQiIaFfICFbXR1fmxmdmRte3Zua3d3gIB9YWN5h3ppdnZjfnxodYePjZZ9doF3cYB7fW6BWld1f3B2hYh/gHptiod1eWx2goSFf31+en10jIJ+dGh0ZW6Kg2xyWWhdc2RGbW1LWmFXVlV4bWJQUnR2WFBWWF5gcoRvXWFjbWVkXm9jVFxxRkJlXl1lZ11bemJRVVt0W1pna2BWal5gb2Zma3FocHZ4jnRrjo11f3Z4fneBhIF7dH2DiIeDb3KAdHF1foWBiY2Le3eAeIJ7fIWHd4d8fYF9hIB7fnJ1eYuNoIyIeYh2dIJ4Xn2Fl4t4hYN0hYaEeIp7Ym5sW2JbW2BWaXNiYFtnbm9mh3JhcWVXXGJrf3zKzoe5oWptbYlrcYNxe4OJfnqQhHl4c3h0dHtqbHVig3WRgXZuZl99gnqMimVygmtqcWNYbHqEm4iBgXKWlXd/fXCLc4WNj4p0mpCSiYaLg3t5fnFwb3xkZ3BhbXhxa21xeH5+el1me4F4anZ5ZoN3aHSIjI6WfnOJa29+gnlvfV5ZdIBtdIGLfIJvcIqAcndpeIGCgYN4f3N7dYh9e3NncmFui4BrcFZpXHZbR21qTVZVXVNVe2thT1R1clBRVFdeY3WFaV1gbGpmY1pvYVhib0dBZ1xgZV5cVntdTlVkb1laamhdV2dgX3JmamhyZ3Bzd4Z4bpWLdH96d356g4h/dXJ/h4WOgnBwfHh2dnqFhYeMhnp7f3SKfX2GhIOHf35+fYZ+fHl1eHeRk59+i3yKbXV/eGOChpWGc5GKb4WFgXuEdWNuallfWlxdVGdzZGBYZHFyZ4ByYmtkVlpfan94vq57n7ZtYXOEZ3N6cXiBhXp9i353d3J1b3t2ZWpuYIZ1joBzaWFefnl5i4RmcX9oa2taVm93iaKAhH9wmZNygXp3hXCFhZWLdpiLjomFiYV9eXRyb2h4X2lsYG12a2hra3l4e3dbZ359eWZzfm2FdWV1ho6Gl4BxjWhre4R1bnZjXXJ+bHV9jHuCZ3aIfm9yaXeAeoCBdH5te3yDe3hxZmxhbYl9a2xVaV92VUppak5STmdMWHxoYU5VdWtMUFRVX2d2g2deYXFoZ2JYaV1ca2dKRGpZYmNWWVV5WU1WbWlZXWtkXFlkYl50ZmxkcWdycHWBd3CZhnZ/fnd/fYWHfXVzgoiAlIJuc3l7enRzhIaJiYN5gX51jn58hIqNg4KEe36Kg3t3fHd3mpyXeoiChml2fHtsg4OSf3KOgXGGgn+DgHBmbGZXXVtcWlNkcGReV2JydWl1b2VlYldbW2h/cG9ygHOJZGR5fGhzdXNygYN3gIJ4dnJ1bWp6cWFna2aGc42DbWZdX31we4l/aW14Z2pkVVdyb4ylfIR7dpaRdH10fn1wf36UiHmbfomHg4eDfXVwcWxndFtrZ15sdGRoZml6b3xyWmiBd3VpcYF4gndid4aLfJWCcI1rbnuDcmd0ZmFve2dzeIp8fmN3hHdrbHJ2fHJ8e3V/aH+AgHl3b2RmYm2Fe2xqVWhhb1JKaGlPS05vR156ZmFNVXRkSk9TV2Frd39mXWd0aWZgV2RXYnBcS0tqV2NhVVRVclZLWHVkWV5rYFtaY2RfdmZtYnBpdG9yf3V0mYJ3f4B3f3+GhHp9dYKEfpeFbXJ0fHp1cYSFj4GAeot2c5B/fIGVjYCFhH19jIZ6foF3e6OlinmHhYNrdHt6dYKAi3luhHN5hH2Cg3ZvamhlVl1bWllTYm5kW1hhc3tqaGxpYGJYXlppf2lrcIBnbGBneXdpcnNzbIOAeX57dXRtemdpeWpfZW5ogHaPhGZlWGJ3an+He29qcGdmXVRYb2eNp3aAenyQjnp2cYBxdXh8k4N7l3aGhICGiHZqcnVnZ25bbGRdbXJfaGFqeWh8bVtug3N1a3CBfnp4YXeGhXmRhnSJcnF6gXNjcmpdcHhlcnSIfHljdIFxZ2p6dXNtenl2eWWEfIB5d3FkZGNte3xqalRnYWVTSmtmT0dRakVheGZhTVNyXUpOVVllbHh7Zl9ucWpkXVZhVW5uVkpTZ1dlXVhNVWtUSVt4Xltfa11dWmJlX3lobGFvb3ZucHh1eph+d3+BeYCAh4Z6eXqDfoGTg3F0dH96d3SEiJF9gXyRa3KVgHuCn4V+h32AfoaCgIl7d4Srnn96h4eCanKAeXWAfoB0boZufYBzioBqb21kZFlfWllZVGJqZ1taX3WCaV5tbFxhV1tba4FlcXR9aWlcanZ0ZnN2cWuDen18eHVybHlmaXdmXWRyZ3l3koBiYlRlcGiChXh4Z2lqYVdWWWdijqdvfneAi457cXJ/aXtxfY9/eZFzhX6AgIZuZHZyZGdnXGphXW9vW2hfbXVle2hedYFvcmtyfH51dmJ1hox7iYiCgXlzdoB2YnFuW3J0Y3FyhXx1ZXOAbWFte3Franx7dnNnh3d7enZxZWJkbXJ9aWpTZ11cVEtxYVBGVmBHY3ZmYUtTb1hLTVhYaGt2e2VlbnFnZFpYXVh3ZVRKXGJXZ1dZSFdkT0dheFpdX2xbXlxhY15+aWpgb3R4bXBvdoOYenKAgHx/iYyGfXZ2hniHjHxzdXWCeXt6goyOfH6FiWlzloF6ipx+foV6gXt/fYaJc3GPrYt7e4aPfGVxh3lzfHp1cm6FbHt+bI96Y3BvYmVdZVZZWVZjZmtfXVxzhWhYcG5aXlhaW2t6YnB3dmxhWWxycmZ0dW9rg3d+f3h2bW5zZGh0ZVtndGV1dpF5XlxSZmdrg4J0fmJkalxUV11hYo6kaXhzg4aReW5xfGp6b3+JfneLdIJ5fXmAaWR2bWBmX15pX110a1lmXW9vY3plXHh9bG9vcHh5dHVlc4STgIeEinx4cHN+dGN4ZVxxcWJxcoF8dGdzgWVfbndqZWh7fXVvcIN2dH1zcmJfZm1ufGRoU2ZXWFNNdl5QSVlXSGJ0Y2FJU2xTSk5aV2pscnxkbW1zY2FaWlthd1xTS2NdV2hTVkZYX01GaXVYXmBsW1teYWJdhGloYW54eW1wa3aAkHltgn6AgZOIhIF2dIl0jIZ0cXZ1gnh9fX6MkH9+lH5wd5WDfZmSeYCAeHp9f3SIhHRwmaB6en6HlHdjdId4cnd0a3Rvfmt4fHCRc15wb2BnYmxUWlpXaGNtZlxccYllU3FuW1pYV19rdmRpdWppXllscm9rc3NyaIR8fn97dm5ta2RpcGNba3JkdHaOc1pWVGVhcoB/coJdYmNdU1lgW2OQn2VxcYWEknVsbHtvcHJ9f35zgniBdHt6emRldWddYllgZ1tedmhXYl1waWF4YVx8dmprcm94dHN1aXGCloSHgIV3dGtyfm9neFhdbG5jcnOAenRncH5cYHFzY2Frc4BtbnZ/c3J4a3BhXGVsbHpgZlJlVFdRT3VaUE9YUUhjc2FgRlVqUUpRWlZra2t9Zm5vcmJbWlhZbHFXUlBmVlZoU1RFWVtOSHF0WF9jbGJYYGBgXYtqY2RtenhscGl1eYd7a4N9gISafIOEeXyIbo+Hcm52en10goJ8i4+Cg5h0eIGThYGeiXWBgIJ0f4JxiIN2cKGWc3mFioZ6ZHaKbm56bmZ4cHlrcnZzjWtedG5hZ2VrUl1bVWdhbGtaXHGMZE9vbVxWV1RmaXNoYnRlZFxYbXRsb3V0eGqFfH97h3aPc2Nka25gXG1tY3N4h2tZVFZjZHh9fXGGXWRfY1RaX1hilZVjbXCDhYp0a2l8cGd1eXZ+bXt1dnB7f3VfZnNjW11WYWNYYXRlVV9gbWRhcV1dfnBoaXRxdHF1d2tthZSCiX2HcnNocH9xdHBUXGdrZnF0gHZzY213VmNzbFxgcGh/Z254fnNzc2ptYVpkaWp3XmVTY1RVUFNsVlBWU1BHZHJfYEVXaU9JWFRXbmllfWlseGxiV11VW3RkU1JXaFFYZlRTR1lZT013dVpfZWtpWWFgXV6ObmJma3l2bm9pdXaAf2yDgH2HmHuAh4CJf2uTiHJmdIB7dYCDfYmPf4yTcnyKkYSHn4Z7f4aNdIGGc36Cdm6ki3KAjIp2dmx5i2Bke3BmeXN4bG1yd4NnZHtsYmZnaFNfXlVnX2tvW15ujWhNaWxgVVZTbmZza2V4ZWRcWG9za3F6d3Jrh3p/dpx6eWthZWxtXmBuamVxeH5nWVZYYGx4fHtwhF9jXmdWWF9XY5uIYmtwgYd9eGxsem5deHNufWt2dG9wfIFzWGpuX1lcVWFiV2RwYlNfYmliYmxaYX5sZmx0dm9td3dsaYaNgIp8iW5yZ3F+bnRuZFthaWlvdIB0cl9pbVNlcmVWZHBkfGVzeH13a3Bta2BZYWZndFxkVWBVUk5XZFFOW05PSGRvXGJGWWlNSl9LWW1kYHlpbn5lYFVfVF11XFNSYGZOXGBVUklbWFBZdHVdX2VraFhiYFpejXFjZ2p4cXNuaHZze4NygoN6iI5+fImHjXlukIl0a3OBdH9/iIWHkoSWj3l9jI+HkZuEgHyNhXOAgXN0eHNvk5OTk5OTk5OTk5KSkpKSkpKSkpKSkpOTk5KSkpKSkpKSkpKSkpGRkZCQj4+Pj4+Pjo6Oj4+Ojo2NjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6NjY2MjIyNjY2NjY6Ojo6Ojo2Ojo2Njo6Ojo+Pj46NjY2Njo+Pj4+Pj46CgH56en1+fn19f35+fn5+fn5+fn5/gH+AgICBgICAf4CBgYGDh4yOjo6OjY2NjY2NjY2NjY2SkpKTk5KSkpKSkpKSkpKRkZGRkpKSkpKSkpKSkpKSkpKSkpKRkZGQkJCPj46Ojo6OjY2Ojo6NjY2NjY6OjY6Ojo2NjY2NjY6Ojo6Ojo6OjY2MjI2NjIyMjY2NjY6Ojo6OjY2NjY2NjY6Ojo6Ojo2NjY2Njo6Ojo6PjoJ/fXp7fH5+fX1+fX5+fn5+fn5+fn+Af4CAgICAgIB/gYGAgYOGjI2OjY2NjY2NjYyMjIyMjJKRkZGRkZGRkpKSkpKSkpGSkpKSkpOSkpKSkZGRkZGSkpKRkZGRkJCQkI+Pjo6Ojo2NjY2NjY2NjY2Njo2NjY2NjY2NjY2NjY2Ojo6Ojo6NjYyMjIyMjIyMjY2NjY2NjY2NjY2NjY2NjY6Ojo6NjY2NjY2NjY2Ojo6Ogn98enx8fX59fX59fX1+fX5+fn5+foB/f4CAgYGBgH+AgICAg4aLjo6NjY2NjYyMjIyMjIyMkpGQkJCQkJCSkpKSkpGRkpKSkpKSkpKRkZGRkZGRkZCQkJCRkZGQkJCQj4+Oj46Ojo6OjY2MjIyMjIyNjY2NjY2NjY2NjY2NjY6Ojo6Ojo2NjIyMjIyMjIyMjI2NjY2NjY2NjY2NjY2NjY6OjY2NjIyMjY2NjY6Ojo6Df3x6fHt9fnx9fn18fX5+fX5+fn5+f39/gYGBgICAgIGAgICDhouNjY2NjYyMjIyMjIyMjIyUztrY2NjY2pqBhISEhIhdLTAwMDAtRqGhoaGhoaCamZqampqaioOEhISDhHdlZ2ZmZmOAvru7u7u9s21mZ2dnZ2WQoaCgoKCjgGNnZ2dnZm+Eg4ODg4ODi4yMjIyMjI2NjY2MjI2NjY2NjY2NjYyMjIyMjY2NjY2NjoV9fXt7en1+fHx+fX19fn19fn5+fn5/f3+BgYGAgICAgYCAgIKFioyNjIyMjIyMjIyMjIyMjJTb6efn5+fqnH6CgoKChlMYHR0dHRk3pKSkpKSko5ycnJycnJyJgYKCgYGCcl1fX19fW37IxMTExMa7Z15fX19fXZClo6SkpKd8XF9fX19eaoKBgYGBgIGKi4uMjIyMjIyMjIyMjIyMjI2NjY2NjIyMjIyMjI2NjY2Nhnx9ent6fH17fH59fX1+fX1+fn5+f39/gIGAgYGBgICBgYGBgoWKjY2MjIyMjIyMjIyLi4uLkpeYmJiYmZmSj5CQkJCQjIeHh4eHh4mTk5KSkpKSkZGRkZGRkY+Ojo6NjY2LiYmJiYmJjJKRkZGRkZCJiImJiYmJjo+QkI+Pj4uIiIiIiIiJioqKioqKiouLi4uLi4uLi4yMi4uMjIyMjIyNjYyMjIyMjIyMjI2NjY6IfH95enp7fHt9fX19fH19fX1+fn5/f3+AgYGBgYGBgIGAgIGChYqMjIyMjIyMjIyLi4uLi4uRkI+QkJCLjpGRiYeOipCSk4+IjYyOj4iPkZGRkZCQkJCQj4+Pj4+Pjo6OjY6Ojo6NjY6Mi4uLi4uLi42NjY6Ojo6NjIyMjIyMjI2NjIyMjIyLi4uLi4qLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjY2NjYl+fXh4eXx9fH19fXx8fX1+fX5+fn9/gICAgYGBgYGAgYCBgoKEioyMjIyMjIyMi4uLi4uKi5CQkZGRj4SOkJCGio+FjZCRioeOi4eNh4qQkJCQkJCQkJCPj4+Pjo6OjY2NjY2MjIyMjIyMjIyMjIyMjIyMjIyNjYyMjIyMjIyMjIuLi4uLi4uLi4uKioqLi4uLi4uLi4uLi4uLi4uMjIyMjIyMjIyMjIyMjIyMjIyNi358d3Z4e318e319fHx9fX5+fn5+f3+AgICBgYGBgYCBgICBgoSKjIyMjIyLi4uLi4qKioqKkJCQkJCKhY6IjoaGj4mNkJGKhIyLho+GjI+Pj4+PkI+Qj4+Pjo6Ojo2NjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIuLi4uLi4uLi4uLi4uKioqKiouKiouKiouLioqKiouLi4uLi4yMjIyMjIyMjIyMjIyMjIyLfnt3dnh7fHx8fX19fX19fn5+f35/f39/gICBgIGBgIGAgYGBhImMjIuLi4uLi4qKioqKioqQkJCQj4WDjI6QjomMiY2QkI+Nh42GjImJj4+Pj4+Pj4+Pj46Ojo2NjY2MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqKioqKi4uLioqKioqLi4uLi4uMjIyMjIyMjIyMjIyMjIp9fHZ2eHx8e3x9fXx9fX5+fn5+fn5/f3+AgIGAgYGBgYCBgIGEiYuMi4uLi4uKioqJiYmJiZCQkJCQjIaMiY6HhY2JjouMi4WHh4aIhomPj46Pj4+Pj46Ojo2NjYyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqKioqKioqKiouLi4qKioqKioqKi4uLi4uLi4yMjIyMjIuLjIyMin9+d3h6e3p6fHx8fH19fn5+fn5/fn5/f4CAgICAgYCAgIGAgYSKjIuLi4qKioqKiYmJiYmJj4+Pj4+QjI6Lj4yKj4yOjI2NiY2Ki4yJjo+Ojo6Ojo6Ojo6OjY2MjIyMi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyMi4uLi4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiouLi4uLi4uLi4uLi4yIgH14eXp6ent9fHt7fX5+fn5+f39+fn9/f4CAgYCAgICBgYCBhIqLi4qKioqKiYmJiYmJiIiPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pjo+Ojo+Ojo6Ojo6Ojo6NjY2MjIyMi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIyMjIyMjIyLi4uLioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi4uLi4qKiouLi4eAfHh6enl7fHx7fHx9fn5+fn5/f35/f39/f4CAf4GBgICAf4GEiYuKioqKiYmJiYmJiYiIiI+Pj4+Pj4+Pj4+Oj4+Pjo+Pjo6Ojo6Ojo6Ojo2NjY2NjY2NjIyMjIyLi4uLi4uLi4uLi4uLi4uLi4yMjIyMjIyMjIyMjIuLi4uKioqKioqKioqKioqKioqKioqKioqKioqKiomJioqKioqKioqKioqKioqKioqKiouLh4B7eXl4enx8ent7fX1+fn5+fn9/fn9/f39/f39/gYGAgIB/gYSIi4qJiYmJiYmJiYiIiIiIjo6Ojo6Oj4+OjIyPko+Qjo6Ojo6OjY2NjY2NjY2NjYyMjIyMjIyLi4uLi4qKioqKi4uLi4uLi4uLi4uLjIyMjIyMjIyMi4uLi4uKioqKioqKioqKioqJioqJiYmKioqKioqKiYmJiYqKioqKioqKioqKioqKioqKiouGgXt4eXh6fHp7e3x9fX5+fn5+f39+f39/fn5/f3+AgIGAgICBhIiKiYmJiYmJiYiIiIiHh4eOjo6Ojo6Ojo6PjJCTkJCPjo6OjY2NjY2NjY2MjIyMjIyMjIyLi4uLi4uKioqKioqKiouLi4uLi4uLi4uLi4uLjIyMi4uLi4uLi4qKioqKioqKiomJiYmJiYmJiYmJioqKioqJiYmJiYmJiYmKioqKioqJiYqKioqKioWAenh5eXx7enp7fHx9fn59fn5/f31/f39+f39/f4CAgYCAgIGEiIqJiYmIiIiIiIiHh4eHh42Njo6Ojo6Oj4+Pj46MjZCNjY2NjY2NjIyMjIyMjIyMjIuLi4uLi4qKioqKioqKioqKi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uKioqKioqKiYmJiYmJiYmJiYmJiYmJioqKiYmJiYmJiYmJiYmJioqKiYmJiYmJiYqKhX95enl4e3t6e3x8e35+fn1+fn9/fn9+f35/gH9/gICAgYGAgoSHiomJiIiIiIeHh4eHh4eHjY2NjY6OjouNjY+Vj4mMj42MjY2MjIyMjIyMjIyLi4uLi4uLi4uKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmEfnl7eXp7e3l7fXx7fn5+fX59fn9+f35/fn9/gICAgH+AgICAhIeJiIiIh4eHh4eHh4eGhoaMjY2NjY2PjIyJio+NiIyRj42NjYyMjIyMjIyMi4uLi4uLioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4uLi4uLi4uLioqKiYqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYN+eXt6fHt6e319e3x/fn5+fn1+f35/fn9/gH+AgIB/gIB/f3+DhoiIh4eHh4eGhoaGhoaGhoyMjIyMi4mMioiHiYaMjoyQjI2RjoyMjIuLi4uLi4uLi4uKioqKioqKioqKioqKioqKioqKioqLi4uLi4uLi4uLi4qKioqKioqJiYmJiYmJiYiJiYmJiYmJiYmJiYmJiYmJiYmJiIiJiYmJiYmJiYmJiYmIiIiIiImJgn94e3t7enp8fXx8fX9/fn59fX5/f39/f3+Bf4CAf4CAgICAgIOGiIeHh4aGhoaGhoaGhoaFjIyMjIuMjo6MioqHhIiLioyLjY6Pi4uLi4uLi4uLi4uLi4qKioqJiYmJioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqJiYmJiYmIiIiIiIiIiIiJiYmJiYmJiYmJiYiIiIiIiImJiIiIiIiIiIiIiIiIiIiCf3h6e3p6ent8fH19fn9+fn19fn9/f35/gICAgH9/gH+AgIGAg4WIh4eGhoaGhoaGhYWFhYWMjIyNjYyQkoyNiIuJiYuLi4uJi4yKjIuLi4uLi4qKi4uKioqJiYmJiYmJiYmKioqKioqKioqKioqKioqKioqKioqKiomKiYqKiYmJiYmJiIiIiIiIiIiIiIiJiYmJiYmJiYmJiIiIiIiIiIiIiIiIiIiIiIiIiIiIh4F8eHt8eXp6fHx8fX1/f35+fX1/f39/fn5/gH+Af39/gH+AgICChIeHhoaGhoWFhYWFhYWFhYyMjZGPj42RiYyGiYyLiIiJjImHjY6PjYqKioqKioqKioqJiYmJiYmJiYmJiYqKioqKioqKioqKioqKiYqKioqKiomJiYmJiYmJiYmJiYmIiIiIiIiIiIiIiIiJiYmJiYmJiYiIiIiIiIiIiIiIiIiIh4eHh4eHh4eFgHp5fXt7e3p8fHx8fX9/fn59fX9/f39+fn+Af4B/f3+Af4B/gIKEh4aGhoWFhYWFhYWFhYSEi4uOj46Mi4+Ih4mJjI2FhY6NiomMjYuOioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJioqKioqKioqJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4iIiIiIiIiIiIiIiIiIiIiIh4eHh4eHh4eHh4aGh4eHh4R+eXl9enp6e317fH1+fn9+fn19f39/f31+f39/gH9/f39/f3+AgoSGhYaFhYWFhYWFhYSEhISLi4yOjIyNi4eJiIqJhoKIjY6IiouRk4+LiYmJiYmJiYmJiYmJiImJiYmJiYmJiYmJioqKiomJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiIiIiIiIiHh4eHh4eHiIiIiIiIiIiIiIeHh4eHh4aGhoeGhoaGhoaGhoeHg316eXt6eXp8fHt9fn5+f35+fX5/f35/fn5/gICAgH9+f39/f4CChIaFhYWFhYWEhISEhISEhIqKjo2JiIiKioeIh4qJiIqIiIeKhouRj4qJiYmJiYmIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiIiIiIiIiIiIh4eIiIeHh4eHh4eHh4eHh4eHh4eHh4eHh4aGhoaGhoaGhoaGhoaGhoeCfHl5enl6e3t7e31+fn5+fn5+fYB/f39/f3+AgIB/f35/f4CAgIKEhoWFhYSEhISEhISEhISEiouQj4mJiYuKh4eFh4mLiomEi42Jjo2KiYmJiYiIiIiIiIiIiIiIiImJiYmJiYmJiYmJiYmJiYmJiYiIiIiJiYmJiYmIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoF7eHp6eHt8e3t8fn5/fn5+fn19f39/f39/gH+Af39/f39/gH+AgoSGhYWEhISEhISEhISEhISPkI+PiImLiIaHiImLi4yLiYqKjYqOjo+IiYiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoWFhYWFhYaGgHt4eXl4eHp6fH19fn9+fn5+fX5/f39/f4CAf4CAgH9/f4CAf4GCg4aIhoiGg4SEhISDg4ODg5KSjoqHiouKi4eLjYmKiYuIh4qLiIqPkoqIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhoZ/enl4eHh5eXl8fX5+f35+f359fn9+f39/gH9/f3+AgIB/gIB/gYKDh46Pj46Ih4SFhYaGhYWFkpCOiomJiIiJioqIiIeGioyIh4mJjpCRjYeIiIiIiIiIiIiIiIiIiIiIiIeIiIiIiIiIiIiIiIiIiIiIiIiIiIeHh4eHh4eHh4eHh4eHh4eHh4eGhoeHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYWFhYWFhYWFhn95eHd3d3l6eXt8fX5/fn9+fn5+fn9+fn5/gH+AgICAgH9/gH+BgYOHjo6Ojo6OjI6Njo2NjI2QkI6Jh4aIiYmHiIqLiImMiYmGio2Oj5GLiIiIiIiHh4eHiIiIiIiIh4eHh4eIiIiIiIiIiIiIiIiIiIiHh4eHh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhYWFhYWFhYWFhYWGfnl3eXd3enl5fHt9f35+f35+fn5+fn5/fn9/f35/gH9/f39/foCBhIiOjo6Ojo6Ojo6Ojo6NjZCRjouNiYyIiImGh4mGiIqIh4uMi46QkIiHiImJiYiHh4eIiImJiIeHh4eIiImIiIiIiIeIiIiIh4eHh4eHh4eHh4eHh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaFhYaGhYWGhYaFhoWEhISFhYaGhYSFhYV+eXd5dnh5eHt8e35+fn5+fn5+fn5+fn9/fn9/fn9/f39+f39/gIGDho2Njo6Ojo2OjY2Ojo2NkI+NjYuOioaIioSEi4mHg4WEg4uJi4+NiYyOkJCPjY2Mi42Oj4+NjYyNjY+Pj46OjI2MjI2NiomIh4iJh4eGh4eHh4eGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaHh4mKioiHiYuMjY6Ni4iJi4uNjo2MiYiJjIB5d3d2enl4e3t7fX5+fn5+fn5+fn5+f39/fn5+f3+Af3+Af3+AgYOGjI2NjY2NjY2NkI+Pj4+OjYyOiomLjIyHhYmNi4eGiIeGh4eLjY6Oj4+Pj46Pj4+Pj4+Pj4+Pj4+Pjo6Pj4+Pj4+Pj4+Pjo+Ojo+OjIuLiYeHh4eGiIaGhoaGhoaGhoaHi4mHh4iIi42NjIuMi42Njo6Pjo6Oj4+Ojo6Ojo6Ojo6OjY6OjY2NgHh2eHh6eHp8enx+fn5+fn5+fn5+fn9/f35+fX5/f39/f4B/f4CBg4aMjIyMjI2PkJKTk5OSko2MjIyKh4qMioeHiYmFgoqLiImFiY6QjY6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6OjYyNjYyNi4mGh4eHh4mKi42OjY2MjY2Ojo2Njo2NjY2NjY2NjY2NjY2NjoyMjY+Qjo2NjIyMi4t9d3V3eXp6e3t6fn5+fn5+fn9+fn5+f39/fn59fn9/f4CAgH9/gIGDhY+SkZCRkpOTk5OTk5KSi4uLi4qJjIqLi4mLioaHjo2IiIyOjoyLjIyMjY+OjY6Ojo6NjY2NjI2NjYyMjIyMjIyMjI2NjY2MjIyNjY2MjIyNjYyMjYyMjIuMjIuMjIyNjIyMjIyMjIyMjIyMi4uLi4uMjY2OkpOTkpKUkZCTlZWUk5OQjo6Ojnt2dnd4enp7e3t9fn5+fn5+f35+fn5+f39+fn5/f39/f4CAf3+AgYKEjZKSk5KTkpKTk5GSkpKKiYqMiYuKiYyLioqIh4mKiouJio2NjI+OjY+SlJSTlJSTk5KRkpCPjo6NjY2Nj5KPjpGRjoyLioqKi4uKiouQj46MjIyKioqKioqKioqLioqKiouMi4uLjIyMioqLi4uOkZKTk5OUlJOUk5OUlJSTk5OSkpKSkpORenV2dnh7e3t6en1+fn5+fn5+fn5+fn1+f35+fn9+f39/gH9/f4CBgoSLkZGRkZGSkpKRkZKRkYmJiIiKjImIiYmLiYaEiYaMioeMkpKSk5OTlJWVlpWVlJOTlJSUlJOUlJSUlZWVlZWVlJSTk5GPkJGSkI6MkZWVlZOSko6PkI2KiouKiouNjo2OkZKQkZKSkpKRkZKSkpOTk5OTk5OTk5OTk5KTkpKSkpKSkpKSko94dXd5ent7e3p7fX19fX5+f39+fn1+fn5+fn9/f39/f3+Af39/gIGChIuRkJCQkpKSkZGRkZGRiIiIiIuLiYOHi4uMjIiHh42MjZKUkpKTk5SVlpaWlZWUkpKTk5SUlJSVlZWWl5aWlpaVlJOUlJSUlZSUlJOTlZWVlJOSk5OTk5CRkpGRkpOTk5OSkpKTkpKSkpKSkpKSkpKSkpOTk5OUlJOTkpKTk5KSkpKRkZGRj3Zyd3p6e3t7fH1+fX19fn5/fn5/fn5+fn5+gH9/f39/gH9/gH+AgYKEipCQkZGRkZGQkJCQkJCHh4eHiIiIhYuPioyOjY6PjpCVlJOTk5OUlJWVlZSUlZOSkpOSk5WUlJWWlpaWlpaWlpaUk5OTk5OTlJSTkpOUlZWUk5KSkpKTk5OTk5OTk5OSkpKSkpKSkpKRkpKRkZGRkZGSk5SUlJSUk5KRkZGRkZGRkZGRkZGMdHN3enp7e3t8fX19fn1+fn9+fn5+fn5+fn5/f39/f35/f39/f3+Bg4SKkJCRkZCQkI+Pj4+Pj4eIiouMjY2Ljo+NjI6OkZKRkpOTkpKSkpOUlJSSkpOTk5OTkpKTlJOTk5OVlZWVlJWVlJOTk5OSkpOTlJOSk5SUlJOSkpKSkpOTk5KSkpKSkZGSkpKSkpKSkpKSkpGSkZGRkpKTk5SUlJOTkpGRkZGRkJCQkJGQkYpzdHZ6fHx6e318fX1+fX9+f39+fn5/fn99fn9/fn5+fX9/f4B/gIGCg4qQkJGRkI+Qj46Pj46Pjo+Pj4+Pj4+Pj5CNjo6QkZKSkpKSkZKSk5OTk5KRkpKSkZGSkpOTkpOTkpOUk5OTk5STkpOTk5OTk5OTkpOTk5KSkpKSkpKSkpKRkZGRkpGQkZGRkZKSkZGRkZKRkZGRkZKSkpKSkpKSkpKSkZCQkJCQkJCQkJCRhnN1dnt8fHt8fX19fn59f39+f35+f4B/fn1+f31+f35+f39/gH9/gYGBipCPj5CPj4+Pj4+Pj4+Pjo+Ojo+Pj4+QkIiNj5CRkZKSkpKTk5OTk5KSkpOSkpGRkZGSkpOSk5KRkZKSkpGSkpKSkpKSk5OSkZGSk5KRkZKSkpKSkZCQkJCRkZGRkJCRkpGRkZGRkpGRkZGRkZGRkpKSkpKSkpGQkZGQj4+Pj4+Pj4+Pj5F/cnR4fHx8e3x8fX1+fn5/fn5+f39/gIB/fX5+fn9/fn9/f3+AgH+BgYGKj4+Pj46Ojo6Pj4+Ojo6Ojo6Pj5CPj4+Pho6QkJCQkZGRkZGRkZGRkJCQkJGRkZGRkZGRkZGRkJCQkZGQkJCRkZGRkZGRkZCQkJGRkJCRkZGRkZCPj5CQkJCRkZCQkJCQkZCQkJCQkJGQkJCQkJCQkJGQkJCQj4+Pj46Pj4+Ojo6Pj4+Pj3hydnl8fXx6fXx9fX5+fn9+fn9/f3+AgH9/f39+f39+f39/f4CAf4GBgIqOjo6OjY2Njo6Ojo6OjY2Njo+Pj4+Pj46IkJGQj4+PkJCQkJCQkJCPj5CQkI+Pj4+QkJCQkJCQj4+Pj5CPj5CQkJCQkI+Pjo+PkJCPj5CQkJCQj46PkJCQj4+Pj4+Pj5CQkJCPj5CPkI+Pj5CPj5CQkJCPjpCPj4+Ojo6MjI2NjYyKg4mIc3N2eH1+fHl9fH19fn5+f31+f35/f4B/f3+Af39/f3+AgIB/gIB/gYGAiY2Njo6Ojo6Ojo2Njo6MjY2Ojo6Ojo6NjYiQkZCOjY6Ojo6Ojo6Oj46Ojo6Ojo6Oj46Ojo6Ojo6Ojo2Ojo6Ojo6Ojo6Ojo6Ojo6Ojo6Oj4+Ojo+Pj4+Pj4+Pj46Pj42NjI2MjY6Mi4uJiYmIhYWEg4KChIJ0eX16eHVya2VpbW9sZmZnZ3Bzc3d5fX55ent8fX1+fn5+fX5/f35/f39/f4CAf4B/gICBgICAf3+AgYCJjY2NjY2NjI2MjIyMjIuLi42MjIyMjIyMho+RkYyMjIyMjIyMjIyMjIyMjIyMjY2NjIyMjI2MjI2NjIyMjY2NjY2MjIyNjIqJiouLiYeCgIeIhIF7eoB+e318fH15c3JycnJ1dXBta2pqaWdjZGFfW1xdXlhVV1hZU0tFSUpKS0xNT09LYHR0d3l9fXh6eXt8fH1+fn59fn9/fn9+f3+AgIB/gICAgYGAgICAgICBgH+DhIWEhYiLi42MjIyLi4uMhomKioqKioeDjpCRjYqLi4uLjImJioqKioqLi4uHg4uKiImJhoWFhISHiYmFgoN/e3x5ent6c3BxcXFtbGpnbG1nZWZlZmRjZWRlZGVlZWVkZGRjYWFeXVxaWFhXVFBRUlNSU01NSklGREhKR0dIR0dMTklnc3V4eX16eHd5fHx8fH5+fn5/f35/f39+fn+AgICAf4CAgYCAgICAgYGBZ15gY2FjbnF9e3p7f313fHx2eHp7eHh6b3B7eHl7fHt4d3t/eHV3dHR2dXR2d3VxcnFucHJwZ2hrbG5vbWppaWhoZWVkZGRfYGFiYGBeXVlYWlpbXV1fYF9gX19fYGJhXl5eXllZXVxdW1dXVlJUUlNTTlFKSElGREVITExIRkdJS0pJTW1ydHh6e3p3d3l7ent8fn59fn9/fn9+f35+foCBgH9/gICBgICAgICAgoFnWFtaWVxbXGNcWlxeYGtxbXBwb25ub25raW5sa2xvamlra2lqa2lnZmdnZ2loZ21namdoZWhnYmNiYWJgYF1YW1tXWFdUVlFQVFNTTUpMS0xMTk5PVFhYV1VVVFJQUE1NUE9OS0xNUFFPTExKR0lJR0hISUhISEdGR0hKSkhISElJSElWcHN1eXp7eXZ2eXp6e3x+fX1+f39+f35+fn9/gIF/fn+Af4CAgICAgICBgWxbWFZWVllZWllZWFVWaGpsbm5sa2tqaGhpaGRlZGJcYmZfX2BjX1xfXWBdXlpeXVlZXmJhXl5aWV9cWFdTTk1MS0tLTElLTU5LSktLTEpLUExLS0ZHR0lJRkdJSElGRUhHRkZFREVFRERFSUlJR0hHSEZGS01LSUlJSEdIS01NS0xMTFVxc3Z5ent5dnd4d3p7fH59fn5/f39/fn9/gICBgH5+f3+BgH+AgICAf4GCaFJUVVZTVVdZWVlXV1dbW2FjX15cW1hWVllWUlRSUVFVVFNTU1BNSk1OUFJPTVBRUVFRUlZWUlBRVFBQTk5PTEpNTEtMSkpLS0ZJSUpMSUdKSElJRUdHRkZFRUhJSkdGR0ZGR0dISkdHSEhKTEpKS0lJSEpLS0pISktKSElLTE1PUFBLVHR0dXh6enh2dnd3ent8fn1+fn5+f39+fn5/gIGAf39/gIGAf4CAgIB/gIJpUFJUV1VUVllXWFhaW1RUU1JQUVNRUVFPTk5QUFFPTE5QT05OTUxLTU5OUE1PUFBSUVBOTk9PT05PT1BRT05OT05OUE5NTUtJSEhKSUlJSUdGR0dHSUpISUhISUhIR0hHSEhJSElMS0pJSEpKSUpKSEdKTEtKSUlISkpLTE5NTk1PUUxVc3Jzd3p5d3Z0dnh6e319fX5+fn5/fn5+foCAgYCAgH+BgYB/gICAgICAgWxPT05UWVVVXVtZV1dYTk1KSklGSk9MSkpHSUpNTUtKTE1KR0lJSUpLTEZERkpLS0tISkxMTE9NTExOT09PTU5PTE5OTlBQT0xNTE5NTExKSUhHSUhJSEhJSUtMS0tKSUtKSUpJSUlJSUdHSklHSUlKSk5NTkxISUpJSUpNT09NS09STllwcHJ3eHd3dHR0d3p8fn1+fn5+fn5+fn5/f4CBgICAgIGAgH9/f4CAgICBb0tKTU5RTk5VV1ZWUlNJRUNFRVJEREE+Qj9EQEA+QkRBQEFER0ZFSEVCQUBAQ0NERUFDRUhLT0tJSUpIR0pJSklJS0pMUE5NTE1NTE1NTUxJSERGRkdGRkZJSklJS0pITEpJSkpKSUhISktLSEZHSUpJS01OTkpLT01MS01NT09OUE9QYHBvcnd4dnRyc3V3en19fX5+fn5/fn59f4CAgICAgH+AgICAf39/gICAgIFzUFBOTlBNSktQUlBOUUNEQkFFUUU9Qz0/RUg5Ojs9Pz08QUZAPjo8Pj48RUQ9P0VBP0BBQERFR0dHR0JEREVGRUdHR0dKR0hKS0dDREdKR0NERUFBQ0dIR0hHSEpLSkhJTEtJSEpLS01OTE1MTEpKTEtJS01PT1BTUU9QUE5PUFJRTVBncG9zdnV0cnF0eHl9fX19fn5+fn+Afn6AgIB/f4CAf3+AgIB/gH+Af4CAgnZUVVFRUE9MTVBQTk9PQUFBQEJBPzs+PD4/Pzw4OTg7OzpAOjs+PDs7PDxITD09QUE/QkM9QURERkJGRkRHSUhDP0BAQEFBQkFBPz48PT5BQEA/Pj9ARUdHR0lLTE5NTk1MTU1KS01QVVNOTE5RTk5NTkxNTU5PTk5NS0tOTk5NTk5MVG5wcHJ0dHNxcnZ5eX19fX59fn5+f4B+foCAgICAgIB/f4CAgIB/f4B/gYCCeFFRUlRSU1FTU1FRUk9AQD0+Pzw/PkBBPz0+OTs6Ojs4ODo4Nzo8OTc4Ozs+PTs7Ojg6QEBBQj9BP0NGREJDQz87Pj5AQ0NBPz4/QT5AQEI/QDw/QkBBQ0VFRUpLUE9QT01NTkxMTE9SUVBSTkxMT01LTk9MTExLTEtLSktLSk1NS0tccXFxdHN1c3F0eHh6fX59fn5+fn9/f35+f4CBgIB/gH+AgICAgH+AgH+AgIF8Uk1PUVBRUlJUUlNTTjw7PDs7PD9AQUJAPTw5PD08OTc5Ojo5ODg6Ojc4Ojk6Ozs4Nzg5Ozo4PDs9QEFAPTs7Pjw9PUBCQ0E/QUJBPT49PTs9P0NEQkA/QURCRUdKSkpKSkxNTExMTUxMTlVTS0xNVElQSklNSklKS0tKSUhHSktJSmZycXN0c3VycnZ5eXt9fn5+fn1/fn9/f39+gICAgH+Af4CAgICBf4GBf4GAgYBWTE5QUE5SUVBQUVFOOD0/PDw6PT5BQEE/Pj5APz49Ozw8Pj89PD07Ojw9PT08PDw8Ozw6Ozw+PT4/P0FAPj9BP0BAQUBAQD0/Pz08Ojs9PTw/QEFCQkFAQkRGRkZHRkdHSElLTExMS0xLSktJSkpNTExKTEtJSElMTEpJSUhJS0dNbXBxdXV1dXN1eHl5fH1+fn5+fn5+f4B/foCAf39/f4B/gIGAgIGAgYCAgYGAgmFLT09OTk9QT09QUE86PD48PTs/Pj5BQT89P0JDQ0A+PD0/QD8/PTs+PT5DRT8/QD07PT09PDs6PT5BQT8+QEA/QT8/PTw+PD07Ozw9PkFAP0A+QENDREJERUhFRUdISEhHRklKSUlJSUlISkpKSkxLSkpJSUhISkpLTEtJS0pKSFZwb3Fzc3R0dXl6e3t8fn9+fn5+fn9/f39/f39/gH+AgICAgH+BgYCAgICBgYCCbUxQUU5PUE5OT1BQTz48PD0+Pz9APkBAPz8/Q0VEPz07PEA+Ojs6Ojk3Ojw5PT1APTo8Ozs8Ozg5Oz8+PTw9OzxAPT08PD47PTw9PkFAQkFAQD9CRENERUZGRkNFR0hJSUhISUtLTE1KSklKTU1KS0pLSUhISEhKSUpLSkpOTElJX3BwcnJydHV2ent9fX1+f35+fn5+f39+f39+gICAf4CAgICAgIGBgICAgICBgIJ2TU5OTU5OTExOUE9MPkE8PD0/PkJDPz5BQUFCQUA9PD07Pj06Ojo8Ojg5ODg6Oz0/Pzw7Ozw7Ojo7Pj8/PTw4Oj48PT4/PTs+P0BCQ0JCQ0NBQkJBQkJEQkJEQkRDRklHRkVISUlLTUpJSkpLTEpKSUpFRElJRkZISElKSkxKRkZncG9xcXR2dnd7fHx9fH5+fX19fn5/f36Afn5/gIB/gICAgICAgYGAgICAgICAgXpOSUtLTExMRUlMTk08Pzw8PT5AQEFBO0JDQkNAPz8/QD0/Pz48PkA/PT09Pz09PkNEPzs8PT5APT0+QUNAPDk7QT8+PkE9Oz9CQEJDQkBDQ0FDQT09PkA9P0FBQUBDRUVAQENCQ0dHRURDRkVGRkdFREBBR0dGQ0ZER0hKR0M+SGxwcHBxdHV2eXx8fXx8f359fn5+fn5+fn9+gH9/gICAgICAgICBgH+AgH+AgYCBflFIS01NTUtKS0xPUUA/Pj5BQUBAQUdBQ0RDREE/QEBAPz1APjw9Pz9AQEBDQEA/QEA+PTw9QEVBQkJGSEM9PEBEQ0FBPz49QEE+Pj4/PD5AREdFQD5AQT9AQ0ZFQ0JCQ0BCRERCREVBQj5BQkJBQkBAPUFCQ0RDQ0FDRUdBPz1WcHBxcHJ1dXd6fHx8fH1/fn19fX19fn1+fn5/f36Af3+AgICAgIGAgICAf4CBgIF+UkhLTU1MS0tOTlJVREJAQ0NBQUJAQkNAQEFBQEFAPjs+PD89PDo+PT9CQkRAPz9OYV9KQENFSUlJSU1NS0VDRkdIRUdFRUVERENBP0A+PkJGSkpHREVHRkZKTk5LSklHR0hLTEpHR0NERERFREFCQkNAQ0RFRERFREVGQ0JBRWVvcHFxdHZ1eHt8enx8fn99fX19fX5+fX+Af39/f39/foCBgX+AgYCAgIB/gICAgH1SSUlKSkhKSkxPUlNHRkVHSERHSERAPjw7PkBERUQ/PEFDREI/PUE/QURFRENXdYaJin5YR0hKTExNT09MSEdIR0hJSUhIR0dISEVDRUVFRUZISkpGRUdJSk1PT01NS0pLSk1OS0lIR0hJSEdGRUZGRkRGSEdFRUhIRkhHSEZRbm5wcXJ2dnl7e3t6fX1+f319fX19fn59f39/f35+f4B/gIGBgICAgICAgH+BgYCAfFBIR0hJRkdJSk1OTkpMSUlKS0xOSkZDQUJDRklISUdISElHRkJERkREQ0FVdIeJh4eGiIJXSUxNTE1OTEpHR0dHREdHR0dGSEZIRUNEREZFRERISENDQ0ZKSktMTExMTExJSktKSklJSUhKSEhHSElIR0dIRkZGSEpJSUlJSF1vb3FydHd3ent7ent+fX5+fX19fX1+fn2Af39/fn5/gYCBgIGAgICAgICAf4CAgIB8TUdGSEZFRkdHSktKTE1MS01OTU9LSUhISktLS0tKS01KS0hIRkZHRkVQbISHhoaGh4eHh3xQS0xLSEdGRkRFQ0NAQUNDQ0NGRkVCQD4+QEFBQEJEPz8/REZHREVHSUtJSUdISUdJSUpKSUhGSkpKSklKSUpKSkZJTExKSktLZm9wc3N0dnh5e3t7fHx9f359fX19fX5+fX9/f39+f3+AgICAgIGAgICBgICAgICAgH1PRkZHRkdIR0VGR0dNTU1LTEtJR0NDQ0RJS0tLS0tLTUxLTUxJRkpVbIGGhYSEhoaGh4iGinVJSUZCPz9APz8/PDw8Pjo6PEFBQD48OTk4PDw9Oz47OTs/QUJBQUNDQ0BBQkVEQkNGSElISEhMTUxHSUpNTU5NSkpLS0pMTVNsb3F0c3N3eXt7e3x9fX5/fn19fX19fn5+f36Af35/f4CAgYCBgYCAgIGAgICAf39/flFGRUZHSUlHRENFRk5NTEpJSEU/OTo+QEVIR0lIS0xPTk5RTlFecoGFhISFhYaHh4iIiYmMjmZCQj04ODo6OTg3ODg5NjQ3OTs8Ojg1Njc3ODk3ODc2ODk7PDw+QTs5OTk9PT47Oz1BREVISk1MTEdJSE9SUVBQTkxNTU9RXW9wcnRzdXh6e3t8fH5+fn9+fX1+fX1+fn9/f4B/f3+AgICAgIGAgICAgICAgICAf39/UUdGR0hKSEZFRkdITExKSUlHQ0I1Njo8Q0BCRkhLSExLTlRne4SEg4KDhIaJiouLi4qJiouMiVQ7ODY1Njc2NjY0NTc2MzQ2ODo4NzY1NjU2Nzc3Nzg6Nzc4ODo7NzY4ODk4OTg3Njo8QEdGSUZJRkVGT1NSU1NST1BQUlRlcHFzdHR3eXt8e3x9fn9+f359fX19fX9/f39/gH5/gICAgICAgYCAgICAgICAgIB/f35SSEhISUtJR0lKSUpKS0RFSERCQDU3ODg9OjxEQkRGRkRWeISEgoKDg4WJioqJiYqKioqLiYqKgUg2NzY0Njg4NzQ1Nzg0Njc3OTk3NzY3NjU6Ojs6Ojw4OTk5OTg3Nzo6Ojg4Nzg1ODk7QT0+PkJBP0FLTE9RUFFPT1BRV2txcnR0dXd6e3t7fX1+f35/fn19fX1+f3+Afn5/f3+AgIB/f4CAgICAgIB/gICAgH9/flRIR0lJTE1LSktLTElIP0BBPzw6NTc5ODk3OkE5PEQ/UH2Eg4OEhISGiYqKiIeIiIiKioyKiYmNej46ODg7PD0+OTo7PDg5Ozk6Ozo6OTs6Oj49PT87Ozs9Oj48Ojw7PDw9Ozo6PDg6Ojs6OTk5PD88PUFCRElKTEtKS0xXb3JzdXR2eHt7e3x7fX9/fn9+fX19fX5/f39+f39/f39/gX+AgICAgICAgH+AgIB/gH9+VEZFRklMTk5MSkpNQj87Ozw6ODk5ODk5OTk6Pj0/P0N2hIOEhYWGiImIh4aGhoiJiImLjIuJioqMbDw7PkJDRUVCQUFCPkBDQUA/PT4+QD8/P0A/QD09P0I/QUE/QT89QUFAPz9BPD48Ozo7Ojk7Pz06Oz09QUFDQUJDQVhwcXR0dHZ5e3t8fXt9f35/f359fX1+fn9+fn5/fn+Af3+AgICAf4CBgH9/f4CAgH9/f35SRUNBR0pOT0xJR0s6ODk7OTo6PDw6Ojo8Oz0+QD89YYWDhISFhYaJiYiHhoaGh4iJiouLioqKi4mLXj5ER0lLSkpGR0dERkhHRUNAQENFQ0NBQkNCP0BESEVDRURFRUFGRUZERkZEQEI+PUA+PT9APj4+Pz4/Pj46Oz08YHFydHR1d3p6en19fX5+fn9/fn19fX1+f35+fn5+f4B/f4CAgICAgICAgH+AgICAf3+AflBEQD1DSE9NR0ZCRDk3OT06PDs+PT4+Oz48Pz9DPkp+g4SFhoaGiImIiIeGhoaHiYqKi4yNjIyLioqHV0dMTE1LTklJS0hJSkpJRUNERkdGRENGR0VCSElLR0hHRkdHRUtKTElKS0pDRkNDREJBQUNCRENDRERDQT07PUBocHN0dHZ3enh7fHx9fX5+f39+fX19fn5/fn5+fX5/gH9/gIB/f4CAgICAgICAgH9/gIB/T0E+PT9ETEtAQkJBOTc7Pjs8Oj0/Pj88Pz5CQUU/aISChYWHh4iIiYiIh4aGhoiIiImKjI2MjIuLiox/UE1QTUtOS0pMSUlKSEtGREdISElFRUlHRkVMTE1JSkdHSElKTk1PTUxOS0hGR0dFRUNGRkZGREVISEZDQT9ATG1wdHV2eHl5eXx8fH19fn5/f359fX19f39+fn5+fn9/f39/f39/gICAgICAf4CAgICAgH9RQT8+P0ZHRz08QEA4Nzw6Ozw6PT88PT0/QENCSFN+g4SEhYaHh4iIiIiIiIeHiIiIiYqMjYyMjIyLio1xTVFPTUxMTExJSEhGSklESkhHS0pJSkhIR0tMTkxMSEhJSk1QTk9OTU9LSUdJSkhJRElISEZGR0dJRkNCQUNVb3F1d3h5e3h5enp8fH1+fn9/fn59fn1+fn5+f39+gH9/f39/gH+AgICAgICAgICAgH9/f1REQUFCR0dCPzg/QDg6Ozc8PTo8Pzw9PUBCQ0RMbYSDhISFhYaHiIiIiIiHhoiIiIiIiYyMi4yMjIuLi4teUlJQTU5NS0pHRkNISkdMSkdLT0xLS0pMTUxPUE5ISUtMT1FRUFFPT0pJSkpNS0xGR0hHRkdJRkVFQkBCQlxwcnd4eXp5eXl7ent8fn5+f35+fX19fX5/fn5/fn+AgICAf39/f4CAgICAgICAgICAfn9/VUVDRUVHR0VEOz9BOz08OD89PT5ARUQ+Q0RDRkp1hoODg4SEhoiIiIiIiIeHiIiIiIiKi4uLjIyMjIuLjXxXVlJSVFJPTEtLRUZGS09OT1dWUVBPUlNSTVNUT01TTFBTVVdSU1JQTEpNTU1MTkdHSkZGSEpEREVFQkRDY3F1eXl6enp7ent6enx+fX1/fn19fX18fX5+f4B/f4CAgH9/f39/gYGAgH9/f4CAf39/f39VRkZHR0dHSEY+QEI9Pz08QT9BQURUS0JISUZJTHmGg4WFhIWHiIiIiIiIiIiIiIiIiYqLioqMjIyMjouLi2dWVmthRVJRUVBLOzpRU1JgdV1VVlRWWVlSWFhSWmZQVVdaXVJUV1FQTlJQUFFRS0tLR0hKSEVGSUlJSElqc3Z5eXp5ent7fHp7fH18fX9+fX19fX19fn9/f39/gICAf39/f3+AgICAf39/gIB/f39+flRISklJR0ZGRT8/QUBFQUNGRENES1ZQSlBQTk9QeYaFh4aFhoeIiIiIiIiIiIiIiIiJiJScjIqKjH1hiouLh2xbZFU6WFhYU1E+QFZVWVxkYFZZYnJeXVZdWlZFUVlaXFlfVFlnUlVWWFRUVlNPT01LTEpJSUxNS09NVHB0dnh5eHd5eXp7ent8fXx+f359fn19fX59f39/fn+AgIB/f39/gICAgIB/f4B/gH5/fn5+VkpKSUhHRkREQkE/SExJTVBLSUpPU1JRVFZVVlR1hYSFhYWFhoeIh4iIiIiIiIiIiIiJnJ2gj4mOZzt+jImKi3pucFhaW1pSU1JWVlRaWnWDWVV9kGFcWF1eV0lWXl5bW19ZSFlYWVxdWFhZV1JRTVBRTU1PU1FRVVJidHN2d3d2eHh4ent7fH19fX9/fn1+fX19fn5/f4B/f4CAf39/gH9/gICAgH9/f4CAf4B4eX1ZTktKSUlGQkRAQTpPUVFXWFBQUFFSU1JWV1dXV2yBgoOFhIWGh4eHh4eIiIiIiIiIiIiWmpyXiIqBboaJiIeDin5mWVlcWVNWVFdSUVdWY5aAUWVyWFpXX2hQYGZaWlhcaGJHT1ppZ1xbXF1dV1NOU1BQUVZWVlZZWm9zdHd2dnR3eHh7e3x9fX1+f35+fX59fH5/f39/gH9/f4B/gIB/f4CAgYGAf4B9cn1/f290fF1TUE9NS0pFQz9AO1BQWlpaUlNRT1FSUVVSVVNWXnV4gIWEhIWGhoaGh4eHh4iIiIeHiIeDkY6JiYiGhYiIhn2Ae1xQVlhUUlRSUVFMT01LZnlaXVRZVVZdWkxUWlVTVF5aWVdXV3prWFpcXF5TUFBPSU5PV1ZYWlplcXR3dnR0dnh5eXt7fH19fX5/fX59fn19fn9/f3+AgH9/gH5+enh3dnN1e39/gIB0a35+a3J5XltWVVNST0tGQ0RBTV6DbFZSU09PUU9RVlFTUlJUY2R2gIOCg4SEhISFhYSEg4aGhoaHiIZ+iYmIh4aDh4eHeW1xVklLTk5LTUtISkRGSEVDPlNjVX9SUVFOS1JVUk1PWVJOT1FTVVVNUVNSUE5MS0hDSUdSU1RZXW1ydnd1dHR3e3p6e3t9e319fX59fX1+fX5/f39/f4B/fX1+fn9/f4CAfnt2c3d9fn5kdX1pcXRgZF1dW1lVUUxITElhbJJ0UFFTTVFSUFNbUlNSUVJVVWJze3x+gIGCgYF/fXt7gH+DgoWGh4KGhoaBhIGGhYZ1X11LQz5CQkNDQT9EUENDQEM+QkhHVkBITk1HXWlRSEZPRkVGRkhHSEJDSEdISkdEQUFDQE5QTVJkdHV2dXR0dnl8e3p7e3x9fXx7fn19fX5+f39/gICAf398fH1/gH9/f3+AgYB9dnR7f21ofGducWZpZWRiXFhTUVBVUnNXZVtPT05MUVJQVVlTVVFRVFJPVmBrbHN2ent4eXRybnN0c3l4fn6DgIODgoCCgIKBgWtMRz4+Ojo+QD8+Pj5qUEthRUZISUVCP0dMTUdNUVVKQkU/Pz09PD09Pz0/QUNCPz48PUI+SU1GVW91dXZzdHZ4e3x6fHt8fX19fXx+fX18fn5/f3+Af39/f3p5d3h3dnZ4e36Afn17eHZ8dWF4Z2xwamxqaWZgW1FRWlxZXklKT1BOS0xRUlFUVlVXUVFXVlBYW2JdYWdtbWxuamhgbnJpbWxxdXt6fXt4enx8eHd4ZEJAQEE8OkJDQUFDQVtcT3tOT09OS0xNT09QTEtMV05JR0FBPDk3NzU5OT07Ozs4OTg5PztBRz5cdHV1dnV2d3l8fHx9fHx9fH59fH19fX1/f39/f35/f399eHV3ent6d3l4dXd7fHl4dXl3Y3FoaXBtbm1taGZeT09eXFpJR09RUU9NUFFOUVJUVlhTUllUTllaW1dZXF9eX2VfXV5xd2teYGdrd29vbGpvbW5sZmJZR0ZGSEJBRkhFRUZDTFFPYVdSWFFQU1NSVVtPT1FWUE1JREY+OTk2NTg2OTc5OjM2NTc5NTxCPWZ0dXd4d3p5e319fHx7fH19fn57fX59fX9/f35+fn5/f3t3dXl9fHp4fHx8fHR3dnd2dXdrbmlocW5vb29qa2BVV15aV01LU1RTUFFVT0xSU1RXWFNUWFFMWFlZVlhYVlhZXVdYWGhza11WYHRrYWFfXWRgX15ZVVBNT05MSUdKS0lIRUNQT1NaV1RUTlFTWVNcZVVPU1RRTktJSEM/QTk5ODg5Nzg4NDc1Nzg1OTlHbnJ1eXl6e3t9fX19fHt9fX1+fnp9fnx9f39+fX5+fX9+fHR0dXt4cnFvb250eHFyc3h2dXFmZGdybnBwcW5tZF1fX1lXT1BXVlZTVFZPT1VWV1hZU1VUTEtTVVVVVVdQVFVXVFVSXW5eUk5ZYFtWWTtEVVdTW2ZKTFBSUk9NTU5NTUxKRVBQVVlTVE9KTk9VU1NcVlJVU1JOTUxJSEhGPz89Ojc4NzY1OTk2NzY2NVhxcXR4enp7fH19fX58fH18fn19eX19fH5+fn18fH19fn18cnZxeHhydXVxcW5wcG9wdXZ0bmpkZGpwcHFycG5mZWRjXF5SVFpWV1RTVlRSWFdZWVlSVU9JR09QT09NUkpPUE9PTk5PVExNSVBQU1RVMjxYTUlAUT1jYFFTUVBNUFBPTk1MUE5UUlBSTElMS09SUFFSUlRRUk9MTUtMTEhDQkE9Ojk4NzY7QjQ1NjY7ZXBydnh5e3x8fX58fXx9fX19fHt4fHp7fX1+fHt5fXx9fHtwdW93dXB1dG9zdnBxcXB1dXZjamdlV2h0cnJxbmlpaHBWVlRVWFVWVVJXVlVaWVhXVlFTRkZBRkdHSEZKREhKSEdFSExIS0lHTE1QTUcvRV9SPjRAPmpvYVJSUUBHVFBPUE9RTlFPUE9MSkxMT1BOTVBRUU5RT0pMTU1LR0VFQ0I7PT08OT1HNjY3NkVucXV3ent7fH19fHp8fH1+fn17eXZ4d3l5fH16enZ9e3x6em9xbndycHZxbXBzcG9wc3NzdGZnYGhaV2tyc3JsbW1rbmJlUFNUUlNVT1dWVVlZVlFRUU9APjs9P0BCQUM/QkVEQUBHSEdIRkZISk1MREdDT1JDOEVNU11nU1FTQUdVT09RUFBNTU5MSkxLTE5PT1FMT05NSUxLSUtLTEtHRkZFRDxBQT47QEU7PDg5VHJzdXl7e3t8fHx7eXx6en5+fHt1dHVydnZ6enh6cnx7fHl5bXFveHJxdW5ucXJvb290c3NydXRrZ2deZWptcGtvcW1pbWNMT05NUVNMVFVUV1dVTExLSD05ODc7P0E/PD1BQEI9PUVIRkRGRklHSkpARkFBQEZHRElPSFFSYVxRUFJPU09PT0xNT01LTUxNT05bVktNUU9HSUhDSUtMTEtGRkZFP0JEPj1CRz9CP0BkcnV3e3p7e3x7enp3fHd5fn57e3FzdHByc3d0eHhzent5dndscW92cXR0bG9xcm5ub3N2cnRzcnJrbGVuc2htbm1sbWxqa0lMSEhPUUpRU1FUU09LSENFPTk4Nzk/Qj87PkFAQD5BRUpFQ0hHSUdJRUJCPz48QkFAR0pFTU9iZVBNT01WS0xOS0xNTUxMS05OU2RNSkxSSUlJRkJKS0xNTkpHSUZCQkJAP0VGRUhETG9wdnp5eXp7enx6d3N4dHh8fHl6bnFxbW5vcnJ2cnN4fHh2dm1wbXNwdXRscHByb29vcnZ1clZWbnFnbHmEam1xcm5uamhvSEpDR0xMSU1QTVBPSEtFP0I9OTk6Oj9CPzxBQkFBREVHS0ZESUlHR0hDQz9CPj9AQT1DRURMTVFUTEpJTVRGSUlKTElKS0lJTE1PUFJQS0dDS0hDQ0tKTE5PTklKSUdEQ0NESUpNTElac254eXh6ent5fHZycHVydHl5dnhqcW9rbGxudHRtc3Z7c3R4cm9ucW92c25wb3Jwb3BzdHlqTmBnc2p0fHlnb3NxanFoZXFIS0NGR0hHSktJSkxER0I8Pj06Ojo7QUI/PUJCQ0NIRUpMSkVJSUZHSENDO0FAQj5AP0JERElNT0dISkdIS0RISUtNSEpMSElKTEpNXVJISUROR0JFTEtOTlBOS01KS0ZHR0pNTlJOTWNuand2d3t5e3p9cW1sc2twdHR0dWhwbWppa2t0cG50dHlwcnp0b3Jxb3dzb3FwdHJwcnV0eWtOVm11bHF7dmlub2lrdGhlcEZKQ0ZFRkRFRUZFR0NDQD08PTo7OjtBREA/QkNFRUlGSkpMRklJR0ZGREI6QUNDPj9DQ0NFR0tNSEpOSERIRUlMTk1ISUxHRkZJSUxOS0lIRU9JQ0dOTU9NUE5OT01LSUhJT1NRUk5TZ2dmcm9zeHZ7enxsaGpvZWtwbXNxZ25saGlrbHRtb3V0d3FveHRvdHNydnNwcXJ0c3J0dXV2dlhWdXVrb3Rya292bGhtZl9wR0pDRUVEQkJBRUBEQj4/Pjs7Oz47PT9DQj9BQ0ZHSkdKSUxIR0dHRkVDPz1ERUI+QUNCQ0VHSElHTVBJRUZHS05PS0ZISUZFQ0RJSUhLSUdIUEtESk5MUE5PTk9QT0pKSU1SVVVST1hlYWFtZnByb3J5emdlaGhjaWxmcWxmbG1naWtsc21wd3V0cG52cm9zcnN1dHFzc3V0c3V2dnZ5dnV0dmxrdXVtcnZxbG5sZXJNR0VFRkJBQEFEPEJBPkE9Ojo9Pzs+P0FCP0BCRUdKRkpHSUdGRkZEQ0JBQUVGQ0JCQkRFRUdHSEZMUExITkpKTEtJRkhFRkVDQ0hISEtKR0tSTkNPT05RUE9PTk9QS0tLUFVXVlVUWWBfXWlhbmluaHJzYmVmZmRoaGZuaWZtbWhra21yaXF2dXNxbXZub3Fyc3dzcnN0dXZ2dnZ3dnd2dnR3dWtzdW51dHNxc2trc01HR0VHQUJAREU8QUFAQzw4Oj0+OkA9QENAQEFERklFSEZGSEZFRURDRUJESUZDR0VBRUdFRkZHRUlNS0hRTUpLSEhJRUZISEVDSUlJS01LUFNORFJTUlFTTlBNT1BNTE5TV1ZYWVdZXltdZGBpY2ppZ2tfZGVmY2hnZ2tnZ2tta21scHFndHR1cnNudm9xcHJ0eHFzc3V2dYKReXZ2dHh1dXd4bm91b3JzdXFxaXB6TUdHR0hCQkJFRTxAQ0JEPDc6Pj47PjtAQj4/P0NFR0RGRERHRUNFQ0RGRkZKRUVJR0JHSEZHRkVDRkpKR01KTEtISktGSUhKSEVLS0xMTk9SVE9IVFVUUVRQUk1OUk9NUVdaVlpZV1teWlhhYGBgXmhlY2BkZWdnamhoamdobmxsb21xcGl1dXhycnB1cHBwcnV2cHVzdXZ1e359eHZ0d3Z2dndwbHVwbXN1bm9zc3lNSEhHSURCQ0hFPUBFQkQ9ODo+Pj08PEJCPUA+QUJGQ0VDQ0dDQ0RERkdHR0lGSEtIQ0lIR0lHRkRIS0lHSkhNS0pLTEhLSk1LSU5MT05PUlVWT0xWVlRRVFJSTE9RUE9UWlpZXFpaXWBfXV9jX1xiZGxjYGRnaHKFaGdqZmpubnBvbnNxanR1eHJzc3RybnBxdnJxdXJ1dXN+eY59dXV2dnZ2eHJpdXFrcnRscXdxdUxJSkhKRkJER0U9QUdEREA6PD5APz4/Q0I8QD5BQUZDRURER0RFREZGSEhGSEdJS0pFSkhIS0hFRkxISEhKR0xLTExMSU1KTU5NT0xQUFJVVldPS1ZWVVNTUlFMT1JSUVZbW11eW11eYF9hYGJmXWRgZmhgZWlqZHNzZmpoZ2xwcnFvc3Nuc3d3cHV2dHNtb3J1b3JzcHVydnJ0gXZ1dXV3dnV3c2d0cmtxcmtyd3B3SkpLSUtHQkVERTxBRkREQjs/P0FAQEFEQUBCPkFDSEJFREZHRUhERkVJSEZJSEpNSEhKSklMSkVKS0hJSkpHS0pMTElJTUtNTk5PTE9RUlVXVk1OVFZVU1JRUE1OVFNSV1teXl9dXmBgYWFiYGRkZWJkaWJkaWpndotsa2lnbW9zcXBxcHByeXdydXV0c21tc3NtcXJvdHV1c3Bzd3R1dXd2dXV1ZnFza3BxanJ2cHdKTExLTEdDQ0FFPEBFRURDPUFBQ0JCQ0VBQ0RBQUVHQ0dHSEZFSUVDR0lHR0pGSUxISUpNS01MRktJSEtLTlFLUlBMUkxKTU1OUFBQVU9XWFhbTlNRV1xaU1ZQTlRVVFRYWl9iYl9kYV5hY19hZmNhYmhuaGJpaGhteHZtaGlub3NycHFycnJ2dHN1c3NzbmtzcW1wcm90dnNxcXV2dXN3eXd1dHVjbXRrb3BqcXRxd0xNS0xMR0RBQEQ+PkRFRkM/Q0FFRERGQ0JFR0NCSEZCSElJR0hKRkRLSkdISkhJS0dKSk5LTkxJTEhLTEpaZkpkW0psUkdOTV9uVWxzW3FwYndjUlBidnVodWNhdmFYbnFiZHZpbXpmXGx0YGxrVmB3dmlqZ2hmZ2xtam1vam1vc3JwcnJxcnNyc3NydHJubHRvbnBxcXV1cnFzdHZ2dXV5d3V0dGBrdGtwcGtxc3J5TE5KSkpGQj9AQz88RERGRENDQ0VFREZCRUZHRERKRUVJS0tJS0xHR05KSEpLR0tKSUpKTkxNTUxMSU1NTFtzYmRvXWxsVUxOZXJdZ2VxbG50Z3BpX2FZbm1icHBia2pqZ29xdGV0bm9ccHZncE9Mcnl2a2Fha2VlbHhta3Zsbm9zcnBycXBxcnFycnJ0cm1tc25ub3BydXRxc3N0dXV1dHd5dnR0Ym11a3BwbHJycntLTElIR0VEP0FBPz1CRUZCRUNFREVFREJISEdEREtIR0tNTUpMTEZKTkhKS0pJS0pKSUpNTU5NTU1LTk1NW3Jwb25wcGtqTE9QbVhOaWJ0cnBhbW92XFlsUFttbVpxbWtwbHh4dHNpcF1gc2xxa1V1eXhvY15rZmJncHBqaW9wcHNzcHFwcXFycnFxcnJ0bG1ybW1ub3J1dHF0cnR1dXR1dXp2dXRlbnVrcG9sc3JyeUpLR0dFRURCQUI9Pz9FR0JHREhFRURCRklISEVHS0pHTUxOSkxNR0xOSU1LSElNSUpJSkpOT05OTUxOTUxcaGR1XWxxVmtNT1FuVVprXmtsdmFsZHRUZWNObFlsXHRvbGpseGp3dWhvXWBza2hXYmN3fG9jYGdoYWNpdHlrbm5xc3NwcXBxcHJxcHBwcnVrbXFtbW1vcXN0cnNydHZ2c3d2enZ1dGhvdWxzb21zcnR2SU1GSUVFRENBQjxCQEJGQ0dGS0dFQ0NISkhIRklMS0ZNS0tSUkxITU1JTkpJR01HSkpISU5PTU5MSk1NSlp0cHBvcXFsak9RUm5Zc2tnb29xcW9tdF5uWGF0X25vcG9xc29vdXN0dGpbXnRjd3hyam56aGFhY2ZhYmptdHVwc3R2c3FwcHFvcnR7f359d2xrcW5sbW5wcnNxdHRzdXV0eHh5eXR1a291bXVwbnNzdnRJS0hKQ0RERUBAPUNDQUZDSElNSEZDRkpMSUdGSk1MRk9KSldSS0dLSkpOSUhJS0lLSklJS0xNTUxJS0tKU2tiWWleXmlicnJaX1lqb19lZVVrX2NbYWFRYG1oXGpcbmlqZFtvZWRwXFpca1ttcWNwc2xkZ2NkZ2Bga21wcG90eXJ1cW9wcW55hYiHh4aFgHZzbmttbW9ucXJ0dHJ0dXV2eXh4c3VucXVud3FydXR3ckhIRkpERUNGQUBBRURDRkJISkxHRkNGS0xJRUZKT0xJT0pMW1FKRkhIS01JSEpJS0tJSElHS0tLS0dISklLS0xKSUpMTVNbXVRQVU1RT05PT1ZRT1BRTk9RSkpOUFFkcWlUWVZbW1xVWVtdWF1cXGNmYWFmYmNmX15ma21obXR4cnRyb3BwdIaHhoaGhYWGh4N6cG1tbGtxc3R0cnR2dHV5eXh1dnFydW92cnRzdXVzSENFR0ZGQEVDP0NHREZHQ0lLTEdGREdKTEhER0lQS0xPS0xXTUlGRUdJSkhJSkhMSklHSEhKSEhIRUVLSEhKTktIT1xWXU9dXGBeT1hZU1xcYl5NWVpNWGFSS1lhWlNgZFxhWFtkZFZWWFxZWlhcVllcXmNfZGBhX2Voa2dtdHRxcXRwcXKBhoaGhYaFhYWGhoaEfXJraW9yc3NzdHd5eXh5eHd4dHF4cnhzcXJ1cnRQQkNETE1BQ0NCRElFR0dGS0pLR0VFSkpKRkVISFBKTE1KTVJJSEVBSEZKSUtLSUxKSUdGSkhFRkdFRUpGQklMSUpUX1lfWGBhW2BVWFpUXV5aX1JZXFBeXFlOX1xeU1teZF5aXWBjX1lfYltgXltVWVlaX15jY2JhY2VpZWtycG9wcG5vd4aGhYWGgnuAhYWGhoWGhX91cXBycnN1eXp6eXl4eHh3cnl2eHJxeHZ0dmFTSkpNSURDQUNGR0VHR0lKSklJREZLS0tFRklJTkpOTEhMTkdIRj5IR0xJS0tKS0tJR0VJRkRERUJGSkQ/SUtITlpiWV5eYV9SVFNXX19cXVleUVlcTVZfV0tRWVtRW19iYV1eY2FgYmFiY2NlWlJaV1ddWl1kYF9fY2ViaG9tbWxsbGx1hX+Eg3l1fISFhYWGhoWFhoaDfXdycnR3eXl5eX9+fXl1eXZ2cm56d3Z4WVFKRkNHRUJESEhGR0hJRkdKR0hGSEtJS0RESkpNTUxMSEpKSElHQEdGTkpLS01LS0tJR0lFRUBEQUhJQT5ISUZPXWBaW2RdX1RRUlhdXFxcX1tLV1xMUlxZSU1eUVFdX2JjY2NjYlxkYmFkY2ZYUldVVFxYW2FfXl9hYV9kbGttamtsbnZ+dYF6fISFhYWFhYWGhoaGhYWGhoJ6cnN1dXuFh4eHhoWEgX54cHp3dnhcUk1CQElGQ0VLSUZHR0lHR0pGRkZJTEpORUNKSkxOSkxJS0tJSUdDSEhRTUtLT01LS0lISEZFQEVCSEhBQEZFQ1NdWV5YX1hfW11VWFhQXVxRS0pWXlheW11WWmFSUl9fYmJgYGJiX2NiYWRkYVhQUlJTXFNcXV1eXl9fX2RpZ2xrbm5we3t8fnuAgoOEhYWFhYWFhISFg4SFh4eBc3J3hYeHh4eHh4eHh4eFg4B8eFxTS0JBR0ZER01SSERSS0ZISEhERktJTVBFR0lKS05MTEpMTEpJR0RIS1FPTUxQTU1LTElKREVBRUNIRkFBRkNBVVVFXFReU1ZgWE5UVU1ZWkxKS1RgYVtfWF9eYl1PWWJcYGBeYmNhXWJhV2BfVVFQUVJZU15cW11dXmBiZmZmbGZvb3d8e4B7fX+AhISEhISFhYWDg4WCg4KFhYZ6b4GGhoaHh4iHhoaGhYWEhYN+SU5GREZGR0RJU2NRRVdfSUdHSERGTUpQUEZJSUpLTkxMS01MSkpHRUpOUVFOTlBNTkxOSUxCRUFDQ0ZDQkBDRD9MR0NMTE9PT01GTUZGSElHRkxLTU9QSUxPUFBTUExRVFNVWVhXWVdXY1ZOUlRQUVBPUVZUXFlZW11cYWFlZmRoZGxtcXNzenl/e3p/hISEhISEhISChIB+e4GDgX17hYSGhoeHh4WFhYSEhIKBgH1LSUVFR0ZHREtOXk1ISFlNR0hKSEdNTFFRSUtKS0tOTVVOT0tLTEdHS1BTU05QUE5PT09JTEZhRUReTERmYkNMWkdeXHNtT0xWbllLQ09fVGtWZ0ldV1VeRExRVUxNU1ZRU1RYVlRYVFRcVE9lWmhoZVpVa1RYV1VbXFtgYGFiYmNhZ2lnbmxocnp9fX6Bg4SEhIODg4F9fXpye4F6e3+CgIOEhIWFgYSFgYODf356e0xJRUZGSEVFTFBUSktHYFRISk9KSU9NUlFLTUtMT1JVUk9QSkxOR0lNUVtZT1BQTlBRUEpLUX9RSXxZWXJzV1BtR3Fub2FWUXFxdE9CanNucXNwU29fW25YXVZcWFVraFVdVmNZYFlaXlVVV39pdHV1YGF2X1liXFxmW19hYWFiX2FjZ21vbWBwd3R4gYGCg4OCf31+gHZ4em12fnR4fYB8foCBgoR8gIN6f4F/fnd3TklFSE1NQkRMTEdKTEZSVkxLT0hMUlhXUU5PT01RVE5PUVBMTE9ITlBTW1pUUVJPUFBRTElaeF1UeGRoWFJTUHZmdGxwYm5ma1JyTkx3bWpycHNycXJwb2+AXWV6dXhxcXpxfnJ9a3V9YVJofGVzc3Bzc3x9cH54b39yYGBgYmJbYmFobG5rYmxmZ213foGAg357eHeAdHZ6aXF+bnR8fnd4e36Ag3h8gXV8f3x8c3NOS0ZgXUdBRE1NSEtLSEtQT01OSk5WXllVTFFTTllZTFNTU05MUElSUlRZV1dRVFBQUFJMSGd4bGN4cW1aSktUeXB1bXVibnZQZGRIZXZxbXdvgGpmeHhpV3JRaHptaWp6en1seHp/cGhuWHV1anZ1cYFhc2h9aWx4fG9fX19jYlxfZGVnamplZ2JjZGxscHBzdHNzc3lxcnhibXRncnl7c3N1eX6Bc3Z6bnx9eXhybk1KUnROQ0JFUFFIS0xKTFFPT09NUFlgWlhLVFdQYV5SVlFZU01QSlNUVlhXV1BVUE9OUkpMcm91dXF1cWNoYFZuS3FwXkdoeVd2VEtoeH13YHl7c21gXW1vZFNncnVubXlwd2t1c3RxbG1cc356a215fGx1bnxrcXd1eF5fX2JfXmBlZGlnaGZlXmJiaWlpamtub2txbm1qcGFjZmRvd3hvbXBzeX9ucXBqe3p0cm9tS0taVkhHRUdSUUpNTkxMUVFQUFBRV1xZVU5WWVVmWFJSWV5UTU5KVFRXV1lXT1NPT05RSVJtSGl3S2BkdnZUVmxObmx7cmFqZ391VEtWa2d8bG1sd15acHp7X2B6c2Nyb3hxZ2N8aXJ7XVRLbF92dWxqdnx7bn95bHxwXV5eYltfY2VlZ2ZlZWNbY2Npa2tyc3J3Z21paGRnYGFsYWdzcmtnbG1yfGttaGt7dG1ta21PR0pLSEpISFJRTU9QTExTU1JPU1JYUldUUFdaVlZUVFRhYFFPTktUU1NRVlZPT01OT1FLSFFOUFVMS0tSU1JRUk9WVVFRT1JSWFhQTU9VVFdYWFpaVFFSV1tXV1dbT1JUV1dYUV1YVlxVVE9YUldYWFlaYFxoc19cW1lcXV9jWl9kZGVnZGRjYlpkYmdmZm1ubXVmZmdjYGZeXWdgZGxnZWdraHB6aGdna3VqaGhpbFBJS0tMTUtKVFJOUlFQTFZVVFBUVVhVWlZSW11WVVRXVVlYT09MTldUUE5VU05QTkxRUEtJUVFLUU1KSk9RVFFQUVNSSkhNT1BRUVBQUFNVUlhXXFdSUlBRVVVWU1pRTlJSV1RTWFVTWFRTUVVUVVZZWVheWl9hXVxbWlxcYGNcXmJjZGdlZWVjWmBhZGFiaGhqbmNhZF5fY11aY1xibWFeZmZnbXNkaWhra2VkY2ZoUUpLS05PTE1UUU9UUVJNWFdVVFZYV1daVlNcYFZXVllVWFRRUEtPWFNQTlVQTVFPTFNQTU9VU05RTk1OUVNQVFBRVFROS01PUlRUUVFRVVZTWFpbWVJVUlRYV1ZZXFNPU1RXVFNZVFZYVFJRV1ZWWFxaXGBdVllfXV5dXF1hYV5bYmNjaGdmZGNYYGBiXmBoZWdlYV5fXV1eWlpfWl9nYF5eXWNoa2FoZmhmZGBiZGJQS01MUFFMUFVQUFRRT1FaWVhXWVtaWFlWXWpkVlhZWldWU1RPS09WVFBPVFBQUU9NUlFPUlhUUVFPTU9SVE1XUVNUVU9NTlFUVlVSUlJUV1VaXVxaVlZRUldYVVtbVlBTVVVUVVhTV1hUUlFYVlZbX1tfYF9WX11eYF1cYF9fX1pjY2VoaGVlYlliYGJeX2ZkY2BiXVxcXFxZWltYW2JcXl1dX2JfX2JkZGJkX19gXFBNTk5SUU1SU1BTVFFPVlxaWldbW1xZWltkcW1oZF9bWVZWWFJNTVdTTU1ST1JST0xQU1JVW1VUUFBMT1dVUFZSU1JYTU9QUlVYVVRUUlRYWFteXVxbVlJPVVdVW1pWUVNWVFVXVVNYWlNSUVpXV11fW2BgYFZiXGBhXWBiX1xgXWNhY2hpZWdhWmNgYV9fZWVfYGNbWlxbXFpaWVlXXFpcWmBeYFteXmFgX2NcWWBaUU5PTlZRUFVTUFVVU1BXXFxcWV5cX1dcXmpwd3mAY1xbVlZZUk5QV1NOUVFQUlRSTFJUVFlbV1VPUk5SV1VSUlRRUllPUVNUVltWVlZTVlpYXV5cXF5WU05UVlZbW1VRVFVVV1hSU1lbU1JSXFhaXl9dYmFgV2JbY2JeYWNeXGJhYl9kZ2llZ15cZGBhYGFjZF9iX1paXltcW1hYWVdXWlpaYV1dW11cXFpdYFdbW1pQT09PWVBVVVNSWFJUUFtdXl1cYFxgVVxcaGpyfXNsaFxVWVdRT1NbU1JRU1JVVVVLUldWWlpaU09TUVVVVFJOVlFSWlJUVVRYXVdYWFNXXFheXVlaXVVVTlZWV15aV1FUVVdYWFNWWVtUUlZdWV1eYV5jY19ZYFtlYl9kZF5eY2NhXmVmaWVnX15kYWFhYmNkX2JeWFtfW1xbWFhYWFdbWltgXVtbXFtYWlteVl5ZXVBPT1JbUFpVVldWVFRUXl5gX15iXGBVXV5ia3l1bX5sW1VaVlFRVFxUVFRVVFZZV0xSWlZcW1xSUFVTV1VVUk9XUVNXU1dVVlteWFtZVVpeWF9eWVxZUldSWVlZX1lZUlRVWVlZVVdZW1VUWl1dXmFiYGVkXV5dXWVhYmZkXl5kY2BcZ2VoZmViYGVhX2FhYmJfYF5XWV5aXFxaWVlXVl1aXV5bWltcW1dZXF1WWFddU09QV1lRXVVXWVdXVVhfYGFhYGNdYFVdXmJlZXaCe2lZWVpUVlRWXFhXV1ZXV11YT1VcWV5dXVRTWFJWVVNRU1dRU1ZUWFhYXl5YXVtWXV9YX19YXFZRWFRaWlphWFtUVldaWVpXWFlZV1ZdX2BfZGNiZmVeYlxgZmJkZmRfYGRiYVtmY2hmZGZhZl9fYWJhYWBfXlZVXVlbXFtZXFlZXVtbW1hYWVtaWlpdX11UWV1VTlRaVlRcVVdXWVdWXGBhYmNhY19fVltgZGFfenVwaVpcWlZYVlhbWllbWVhZYFZPVV1bYGFcVFVZUFRWVFJVVVFTVVdbW1xfX1pfXFZfX1ldXlldVlJYV1pZXGFZXVVWWltaW1paWFpYWV9fYGBkY2RlZWNkWmJmY2dmZV5hYmBjXWJjaWVkZ2BoXmJiY2FhYF5fWVRbWlpbW1hcWFhcW1pbV1daWFhcW1xgXVZdXVNPVlpWVlpWWVZYV1heYGJhZGFkYV5ZWWFkYmBrZmhfXV1bV1hZWlxcXF9bWltiVlNXXl1hY1xTVllQVlVVVVVVU1VUWF1dX2BgXWFdV2FeW15cW15YVVhXW1pfX1peV1hcXFxdXVtaXFdaX2FeYGRkZWZmZ2NZY2ZlaGdkXmNgX2VjXWZpZGVpYGdeY2JjYWFgX19cWFlaWVpZWFpYV1tbWltXWFpUWl1cW2BcVV5iTVJXWldXWllbXFhXWV5gYmFlYWRhXV5ZYWNiX2FgYV9cXV1YWFxbXV1fX1xaXWNYWVhdYGNkX1JYWVBXVVdXV1ZWV1ZdXV5hYmFfYl5ZYV1dXlldXVlYVVZbW2BeXF9ZWV5dXl5gXFpaWVtfYl9jZmRmZ2ZoY1plZmdpZ2NfY15hZmVaaWljZmljZl9iYmNhYGBfXV1aV1tZWVhYWllXWltaWVdZVlVbXV1dYGBiYnhLV1dcWVddXFxdWldcXV9gYmRiY2FdYFhiY2JgY2FjXlxdXFhYXFxfXWBfXVtgZFxcWFpiZWNhUlxZT1hWWFlYWVdZWmBeYWJjYGFjX1xiXV9dW15dWVlUWF1cX19eX1taXl5gYmJbW1dbXWBiYmRmZGdmZmhlXWVnaGlmY2FiW2NnYFxpaWNoaWZlYGJiY2FfYF9dXVxZXFlYV1hZWVdcW1pXVlhQWFpdYWNmZnJrf0pZV11bWl9dXF5cWV1bXl9iY2JhYV1iW2JkYmBjYmJdXVtaV1hqcWBcYF9dXGFjX15ZWWNlZGFUX1pRWVdbXFtbWVtbY2BjY2NgYmRhYGNeYFxeXl5ZWFVbXlxcYWFfXVtgYWJmYl5bU1xfYGNkZGZlZ2ZmZ2ZfZmdoaGdkZGBbZWdeYWhoY2loZmNgYmFjYl9fX11dW1pbWVhYWFZaVlxbWlZWVk1YWFxnaWtodXiBdnZ2dnZ2dnZ2dnZ3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHl5eXp6enp6ent6enp7e3t7e3t7e3t7e3t7e3t8e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx7e3t7fHx8fHx8fHx8fHt7e3x8fHx8e3t7e3t7e32JiIaKh4WCgYKDgoODgoKCgoKCgoKCgoKBgIGAgYCAgIGAgYGBgH58fHx8fHx8fHx8fHx8fHx2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d4eHh4eXl5enp6enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7ent7e3t7e3x8fHx8fHx8fHx8e3t7e3t7e3t7e3t8e3t7e3t7e3x8fHx7e3t7e3t7fImJh4mGhYKBgoKBgoKCgoGCgoKCgoKCgYGBgICAgICAgICBgYGAfXx8fHt8fHx8fHx8fHx8fHZ2dnZ2dnZ2dnZ2d3Z3d3d3d3d3d3d3d3d3d3d3d3d3d3d3eHh4eHh4eXl5eXl5eXl5eXl6e3t6ent6enp6enp6ent8fHx8e3x7enp6enp7e3x8fHx8fHx8fHx8e3t7e3t7e3x8fHt7e3t7e3t7e3x8fHx8e3x7e3t7h4mIiYWEg4GCgoKDg4KCgoKCgoKCgoGBgYCAgICAgICAgIGCgYB+fHx8fHx8fHx8fHx8fHx8dnZ2dnZ2dnd3dnd3d3d3d3d3d3d3d3d4eHh4eHh4eHh4eHh4eHh4eHh5eXl5eXl5eXl5eXp6ent7enp6enp6enp6e319fX18fXx6enp6ent7fHx8fHx8fHx8fHx8fHx8fHt8fHx8fHt7e3t7e3t8fHx8fHx7e3t7e3uGiYmIhYWDgYKCgoODgoKCgoKCgoKCgYGBgICAgICAgICBgYGAgH58fHx8fHx8fHx8fX19fHx1cG9vb29wcHp+fX19fX2EjIuLi4uOeCkpKioqKSs9Pz4+Pj4+bYB+fn9/e6XX09PT09PPxMXFxcXFx9LU1NTT09haJSsrKyoii9vS0tLS1rp9fn9/f39+fXx8fHx8fHx8fHx8fHx8fHx8e3x8fHx8fHx8fHx7e3t7e4SLh4eGh4KBg4OBgoKCgoKCgoKCgoKBgYGAgICAgICAgIGAgYCAfnx8fHx8fHx8fX18fHx9fXVwbm9vb29veoB/f39/foaQj4+Pj5N5GRoaGhoaHDEzMzMzMzJqgn+AgIB7renk5OTk5eDU1NTU1NTW4+Xl5eXl61QTGxsbGxCP7+Xl5eXpx31+f39/f399fX18fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3t7go2HiIeHg4KEgoGCgoKCgoKDgoKCgoGBgYCAgICAgICAgICAgIB+fHx8fHx8fH18fHx9fX19dnV1dXV1dXV2d3d3d3d3eHl5enp5endvcHBwcHBwcnJycnJycnd6eXl6enp+g4ODg4ODg4KCg4ODgoOEhISEhIOEd3Nzc3NzcnyFhISEhIWCfH19fX19fX19fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8e3uAjIaJh4eEg4SCgoKCgoGCgoOCgoKBgYGBgYGAgH+AgICAgICAgH58fHx8fHx8fH19fX19fX12dnZ2dnZ5d3Z2ent4e3h3dnl8enp5eX15eXl4eHh4eXl5eXp6eXl5eXp6enl4eHl5eXl5eXl5eXl5eXl5eXl5eXl8fX19fX19e3p6enp6ent8fHx8fX19fX19fX19fHx9fX19fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH+Lh4uKiISDg4KCgoOCgYKCg4KCgoGBgYGBgICBgH+AgIB/gIGBfn19fHx8fHx8fX19fX19fXd3d3Z2d314d3d9enh9eHd2en16ent5fHt4d3d3d3h4eHh4eXl5eXl6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fXx8fHx8fHx8e3t8fHx8fHx8fHx8foqJjIyJhYOEhIKCg4KBgoKCgoKCgYGBgYGAgICAgICAgH+AgIB9fX18fHx9fX19fX19fX19d3d3d3d6fXh7eHx8d3t4d3Z6fnp5fXh8enh4eHh4eHh4eHh4eXl5enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fH19fX18fX19fX19fX19fX19fXx8fHx8fHx7e3x8fHx8fHx8fHx9ioqNjYqFg4ODgoKCgoGBgoKCgYKBgYGCgYCBgYCAgICAf4CBgH18fX19fH19fX19fX19fX13d3d3d31+eXd3eHt6e3h3d3h5fXl8ent6d3h4eHh4eHh4eHl5eXp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7fHx8fHx8fHx8fHx8fHx9fX19fHx9fHx9fHx8fH19fX19fHx8fHx8fHx8fHx8fHx8fHx8fH6KiY6NiYSEhIOCg4KCgYGCgYKCgoGBgYKBgIGCgICAgIB/gYCAfHx9fX19fH19fX19fX5+fnd3d3d3eXx5e3h8fXl7eHp6enx8fH17fXt4eHh4eHh4eHl5eXl6enp6e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx7e3x8e3x8fHx8fHx8fH18fH19fX19fX18fHx8fHx8fH18fX19fX18fHx8fHx8fHx8fHx8fHx8fHx8f4iHjYqHhYaGg4ODg4KBgYKBgoKBgYGBgoGAgIKBf4CAgH+AgIB8fH19fX19fX19fX1+fn5+d3d3d3d2eHh5d3l6eHp4eXl5e3l6enl7eHh4eXl4eHh4eXl5eXp6e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fX19fX19fX19fX19fX19fHx9fHx9fX19fXx9fX19fXx8fHx8fHx8fHx8fH1/h4iMiIaHh4SCg4SEgoGCgYGCgoKBgYGCgYCBgYGBgICAf4CBgHx8fX19fX19fX19fn5+fn53d3d3d3d3d3d3d3h4eHh4eHh4eHh5eXh5eXl5eXl5eXl5enp6enp7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx8fH19fXx8fICHiIuHh4mGg4OEg4OCgYGBgoKBgYGCgoGBgYCBgYGAgICAgYF/e3x9fX19fX19fX5+fn5+fnd3d3d3d3d3eHh3eHZ5eXh4eHh4eXl5eXl5eXl5eXl5eXp6enp6ent7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8e3x8fHx8fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXx8fHx9fX18fX18gYaKiomJiISDhYSEgoKBgYGBgoGBgoKBgYGAgIGBgICBgICBgX98fH19fX19fn5+fn5+fn9/eHh3eHh4eHh2cWRqXmpteXl5eHl5eXl5eXl5eXp6enp6enp6enp6e3t7fHt8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyBhYmKiYqHhIWFhIOCgoGBgYKCgYGCgYGBgYGAgYGAgIGAgYCBfnx9fn5+fn5+fn5+fn5/f394eHh4eHh4eW1kYmVfX15veHl5eXl5eXl5eXl6enp6enp6enp6ent7e3t7e3x8fHx8fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fXx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIKFioqJiYSEhoWEg4OCgYGCgoKBgYKBgYGCgYCBgYCAgICAgYB+fH1+fn5+fn5+fn5/f39/f3h4eHh4eHluZGVnZWRiXmZ4eXl5eXp6enp6enp6enp6enp6ent7e3t7e3t8fHx8fHx7fHx7e3t7e3t7e3t7e3t7e3t7e3t7e3x8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18goaLiYiKhIWGhIODhIKBgYGBgoGCgoGBgYGAgIGBgYCAf4CBgX98fH5+fn5+fn5/f39/f39/eHh4eHh5d2dlZGVmZGVhX2l5enp6enp6enp6enp6enp7e3t7e3t7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3x7fHx8fHx8fHx8fX19fX19fX19fX19fX18fX19fX19fX19fX19fX19fX19fX19fX19fXyChouHiYeEhIaEg4OFgYGBgYGCgoGBgYGCgYCAgIGBgIGAgIGBfnx8f39+f39/f39/f39/f4B5eXl5eXlrZWFiZWVhZWVeYnh3c3t6enp6enp6enp6ent7e3t7e3t7e3t7e3x7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx9fH19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fYOGi4aIhYWGhIKDhISCgYGBgYKCgYGCgYGBgIGBgYGBgICBgYJ/fHx/f39/f39/f39/gICAgHl5eXl5dGNjZWRjZmNnaGRmbGRec3t6enp6enp6enp6enp7e3t7e3t7fHx8e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t7e3t8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+g4aLhoaGhoWDg4OEg4GBgYGBgoKBgYGCgYGAgIGBgYGAgIGBgX58fH9/f39/f4CAgICAgICAeXl5endkYWNnYmJkXVtlX2FdXmBhaHh6enp6enp6enp6ent7e3t7e3x8fHt8e3t7e3t7e3t7e3t7e3t7e3t7e3t7fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn6EhYuHhoaGhoSDg4OCgYGBgYKCgoGCgYKBgICBgYGBgIGBgYGBfn19f4B/gICAgICAgICAgIB5eXlvb2JiYmReY2dfXWFhYFxfZGJbbXx6enp6enp6enp6e3t7e3x8fHt7e3t7e3t7e3t7e3t7e3t7e3x8e3t8e3x8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+f4SIi4aEh4aGhISDg4KBgYGBgoGBgYGCgoGAgIGBgYGBgYGBgYF+fn2AgICAgICAgICAgICAgXl6cF1iZWRiZF5mZ2dgWWJiYWNlX1xdc3t7enp6e3t7e3t7fHx8fHx8fHx7e3t7e3t7e3t7e3t7e3x8fHx8fHt8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fX19fX19fX59fX5+fn5+fn5+fn5+fn6AhYyKhIWGhoWDg4OEgoGBgYGCgYGBgYKCgoGAgYGBgoCAgICBgX9+foCAgICAgICAgICBgYGBeXpsYmRnY2JnZmFgYGRhYmVkY2RjXlxidXx7e3t7e3t7e3t8fHx8e3t8fHx8e3t7e3t7e3t7e3t8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5+fn5/f4GHjImFhoaHhYOEg4KBgYGBgYGCgYKCgoOCgYCBgYGCgYGBgoKBf39+gICAgICAgICBgYGBgYF6e3RnZ2ZmZGRmZmBeX2FjZWhkZV5iZGB0fHt7e3t7e3x8fHx8fHx8fHx7e3x7fHx7e3t7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fXx9fX19fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5/f39/f39/gomKiIaGiIaFg4SDgoGBgYGBgYKBgYKCgoKBgIGBgYKCgYGCgoF/f3+BgYGBgIGBgYGBgYGBgXp6bWhjY2dmZ2VnZmZnYmVkZWJnW2JlYHZ8fHt7fHx8fHx8fHx8fHt7fHx8fHt8fHx7e3x8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fX18fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn9/f39/f39/f3+EiYqIhomHhYWEhIOCgYGBgYGBgoGCgoGBgYGBgYGCgYKBgYCAgYB/f4GBgYGBgYGBgYGBgYGBe3ppaWRjamZhYGZlY2NjZ2lkY2JgYmRidH18fHx8fHx7fHx8fHx8fHt8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx9fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+f39/fn5/f39/f39/f39/gISKjIiHiYaEhYWDgoGBgYGBgYGCgYKBgYGBgYGBgYKCgYGBgYGBgIB/gYGBgYGBgYGBgYGBgYF2c2VkZ2NkZmViZWZnZGZoZmVjYGBjZGBxfXx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH18fH19fHx8fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+f35+fn9+fn9/f39/f39/gICAhYqMiYiKiYaGg4KCgoGBgYGBgYKBgYKBgYGBgYCBgYGBgYGBgoF/gH9+f36AgoKCgoKCgoKCgnNzZ2VkZGVpamhmZ2djYWZmZWZnZmVlY3V9fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fH19fX19fXx9fX19fX19fn5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAgICAgICFi4qKiYqHh4aEgoKBgYGBgYGCgoGCgYGBgYCBgYKCgYGBgYGBgH+AfnR0c3V9f4KAgH5+f4GAdHJnZGVjZmlqaWVjZWNgZmRkZ2diYmVhcH18fHx8fHx8fHx8fHx8fHx8fX19fHx8fHx8fHx8fHx8fHx8fX19fX19fX19fX19fX19fX19fX19fn5+fn5+fn5+fn5+fn5/f39/f39/f39/f39/f39/f3+AgICAgICAf4aLi4qKi4eHh4SDgoGBgYGBgYGCgYKCgYGBgIGCgoGAgYGBgYKAgIB+c3Nzc3R1eHV1dHR1dnV1cGZjZmVoaGlnaGdlZmViX2RlZmNgYmd3fHx8fH19fX19fHx8fHx9fX19fX19fX18fX18fH19fX19fX19fX19fX19fX19fX19fX19fX5+fn5+fn5+fn5+fn5+fn5+fn9/f39/f39/f39/f4CAf39/gICAgICAgICAh4yMiIuKh4eHg4WCgYGBgYGBgYKBgoKBgYGAgYKBgYGCgoKCgoCAgH5zc3Nzc3Nzc3R0dHRzc3VvY2NhZ2VoaGdqZmRlZ2ZoZmNiZWJeYnl9fHt7fH19fX19fHx8fX19fX19fXt8fX19fX19fX19fX19fX19fX19fX1+fn5+fn5+fn5+fn5+fn5/f35+fn5+fn5+f39/f3+AgIB/f4CAgYCAgICAgIGAgH+AgIGBgICHi4uHjYmIiYWEhYGBgYGBgYGCgoGCgoGBgYCBgoKBgYGCgYKCgYCAfnRzc3Nzc3Nzc3Nzc3NzdXJnZWVkZWpoaGdmaWhnY2VlYmRjaGRne3h1c3N0dnZ5eHZ0dHR2d3d3dnR0dHV1eHd4eHd3ent8fX18fX5+fn5+fn5+fn5+fn5+fn5+fn5+f39/f39/f39+f39/f4B/fnx7e31+fHl5dnZ2eXx8enp3dnd5e317eISMjIqMh4eIhIWEgYGBgYGBgYKBgYKBgYGBgYGCgoGBgYKBgYKBgIB+dXNzc3Nzc3Nzc3Nzc3N1c2hlZ2hla2xoamdpamdnZ2ZkZGJlZG51dHRzc3Rzc3Nzc3Nzc3Nzc3Nzc3Rzc3Nzc3Nzc3NzdHR1dXN1d3h5e35+fX5/fH9/f39/f39/f399eHx+fn18eHV2d3l3eHZ0c3NzdHV0c3Nzc3Nzc3Rzc3N0dHN0dHRzg4yNiomHiIaDhoOBgYGBgYGBgYGBgoGBgIGBg4KCgYGAgYGBgYCAgH91c3R0c3Nzc3NzcnNzc3Z2aWNoamhqbGVmaWxoYGZlZGNgZGRmdHV1dXR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0c3R0c3Nzc3N0dnZ1dXd1eHx/fn1/fnx6eHVzdHV1dXRzc3Nzc3NzdHR0dHR0dHR0dXV0dHR1dXR0dXV0dXV1dXSGjI2LiIaHhISFgoGBgYGBgYGBgoKBgIGAgYGCgoKBgYCBgYGBgICAf3Zzc3Nzc3Nzc3Nzc3NzdnZzZ2dqZmhnZmhoZmRpZ2NjZ2VlZnB2dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXV1dXR0dXR0dHR0dHR0c3R0dHZ1dXd2dHN0dHR0dHR0dHV1dXV1dHV1dXV1dXV1dHRzc3NzdHRzc3R0dHR0dXV0dYmOjIyKh4eEhIWCgYGBgYGBgYGCgoKBgYCAgIKCgoKBgYGBgYGAgIB/d3Nzc3NzcnJycnNzc3J2dnVuZF1jZ2Vpa2hlaGdnamppZ2VwdnV1dXV1dHR0c3R0dHR0dHR1dXV1dXV1dHR1dXR0dXV1dXV1dXV1dXV0dHR1dXV1dXV1dHR1dHR1dXV1dXV1dXV1dXV1dXV1dXV1dHRzc3Nzc3NzdHRzc3Nzc3N0dHR0dHR1io6MjImGhoSHhYKBgYGBgYGBgYKCgYGBgIGBgoGCgYGBgYGCgYCAgH94c3Nzc3NycnJycnNzc3Z2d3dpYmhoZ2praWhmZGRlZmlocHV0dHR0c3NycXJydHV1dHR0dHR0dHNzcnFxcXFzc3R0dHR0dHR0dHR1dHJycnN0dHR0dHV1dXV1dXV0dHV0dHR0dHR0dHR0dHR0dHNzc3Nzc3Nzc3Nzc3NzdHRzdHR0dHR0dHWLjoyJhoWFhYeEgoGBgYGBgYGBgYKCgoGBgICCgoKBgYGBgYGBgYCAf3lzc3NzcnFycnJyc3Nzd3d3d2xqaGRoaWt2emtlZmVoZ21yc3RzdHNycHBwcXJzdHV0dHNzcnJzcnFwb29vb3Bxc3NzcnJycnN0dHRzcXBxcnN0dHR0dHR0c3N0c3Nzc3R0dHR0c3R0dHR0dHR0c3R0dHNzcnJxcXJyc3NzcnNzc3R0dHRzdo2QjIeHhYWEhIKBgoKBgYGBgYGBgoKCgYGBgIGBgoKBgYGCgYGBgH9/eXNzcnJxcXJycnJzc3N3d3d3c3NqZ2lpaHl/fXFudWxucHFycnJxcXBvcHFxcXN0c3NzcnFxcHBubm5tbm1ubm5wcXJycnJycnJyc3Fwb29wcXJyc3NycXJycnJycnJycnJyc3Nyc3Nzc3Nzc3Nzc3NycW9vbm5vb3Fyc3NycnNzcnJzc3J2j4+Lh4aFhYWDgoKCgYGBgYGBgYGBgYKBgYGBgoKCgYKBgoKBgoF/f394cXBwcHFxcnJycnNzc3d3dnZ3dnJxdHNudn9+dnN4cHBwcnJycnFxcHBxcXFxcnNzc3NxcHFwb29ubm5ubm9ub3BwcXFxcXFwcHFycG9ub3BxcXFxcXBwcXFxcXFycnJycnJycnJxcXJxcXJycnJxcG9vbm5tbm1ub3FycnJycnJycnNycXiPjo2Gg4OGhIKDgoKBgoGBgYGCgYGBgoGBgYGCgoKCgoKCgYGCgX+Af3dvcG9wcXJycnNzc3NydnZ2dnZ2d3Z2dXN5f353d3dvcHFxcXFxcXBwcHFycXJyc3NycnFwcG9vcG9vb29vb29vcG9wb29vb3BwcW9vb3BwcHBwb3BvcHBxcnFxcXJycnJxcXFxcXFxcXBwcHBwcW9vbm5ubW1ubW5vcHFxcXFxcXFxcXFwe4+NjYaDg4WDgoKCgoGCgYGBgYKBgoGBgoKBgoOCgYOCgYGBgIGBf39/dm5vcHBwcXFxcXFwcHB2dnZ2dnV0dHNzcX2AfX1/c29wcXFxcHBwcHFxcHBwcXJycXFxcG9wb29wcG9vcHBvb29vb29vb29wcXFwbm9wcG9vcG9vcHJycnJxcXFwcXJxcHFxcXBwcHBwcHBwcG9vbm5tbm5ubm5vbm9wcHBxcXFxcXFxcXCCkY6KhISDhYSDgoKBgYKCgYGCgYGBgYGBgoKCgoKCgoGBgYGAgYF/f4B1b29vcHFxcXFwcHBwcHZ2dnV0c3JycnJxgIKAgXlwcHBwb3BwcHBxcXFxcHFxcXFxcXBvb3BwcHBwcG9wcXBwb29vcG9vb3FxcHBvcHBvb29ub3BxcXBwcG9wb29wcHBwcHBwcHBwb29vb29vb25ubW1tbm5ubm9ub29wb3BwcHBwcHBwcImQjIiEg4SGg4OCgoGBgoKCgoGBgYGAgIGBgYKCgYGBgYGBgYCBgYB/gHRub29wcXFxcHBvb3BvdnZ1c3JxcXFxcXCAg4N/cnBwcHBwcHBwcHBxcXBwcXFxcXFwcHBwcHBwcHBxcHBwcHBwcHBwb3BwcXFwcHBxcW9vb25vcHBwb29vb3Bwb29wcHBwcHBwcHBwb29vb25ubm5ubm1ubm5tbm5vcHBvb29vb29wc3F1j4+MiYOChYeDg4KCgYKBgoKCgYGCgYGAgYKBgYGBgYGAgIGBgIGBgH+AdG9vb25vb29vb29vb292dXRzcXFxcXFycoCCgoF0cXFxcXFxcXFxcXFxcXFxcXFwcXFxcXBxcHFwcXFxcHBwcHBxcXFwcXBwcHFwcHBwcHBwcHBwcHBwcHBxcXFwcXBwcHBxcHBxcXBxcXFxcXFycXJxcHJ0cnJ0dHR0dXZ0c3R0dHV3d4KQj4uIg4KGh4SEgoOBgYGCgoKBgYKBgYGCgYGBgYGBgICAgYGAgYGAf4B1b29vb29vb29ub29vb3V0c3JycnJycnJyg4ODgnZxcnJxcXFycXJycXFycnJxcXFxcXJxcXFycnFxcnFxcXFxcXFxcXFxcHFxcXFxcXJzc3JycnN1dXR0dHR0dHR1dnd3d3d3d3h4eHh3d3h4eHd2d3Z1dnZ2dnd4ent8e3t7enp6enp8hpCNi4iDg4iHh4WDg4KBgoGCgYGBgYGCgoKBgYGBgIGAgIGBgICBgYB/gHdxcXFxcXBubnBvcHBvdnR1dXNzc3Nzc3WIg4KDeXJzc3JycnNycnNzcnJycnJzdHJyc3Jzc3Nzc3NzcnNzdHR1dXV1dXR1d3h3d3d3eHh4d3h4eHl5eXl5eHh5eXl6ent7e3t7enp6eXl4d3d3dXZ1dnZ3eXp6e35+fn19fn5+f39+foCMkIuKh4OFiIuIhIOEg4GBgoGBgYKBgYKCgoKCgIGBgYGAgYGBgICBgH+AfHp6eXl8eXh4dnV2dnR5dnd4d3d2d3Z2en98fn58dnZ3d3Z1eHp4eHh4d3d3dnh8eXl8enl5fHt5eXl4eHl5enp5eXl4eHp6eXl4eHh4d3Z3d3h4d3h4eXl6e3t6fHx9fn1/f39+fXt7e3t6eXp5eXt7f36Af35+f359fX1+fn9+fn5+gI6QjYqHhIaKi4iGhoSDgYKCgYGBgoGBgoKCgoKAgYKCgYGBgoGAgYCBf3+Af359fX1/f399fHt7e3l4eHh4eXl5eHl4eXl5eHp6enp6ent7e3x9fnx7e3p7fHt9fHt7e3t7e3p5eHl4eHp7enp6eXl6fHx7enp8fHx6enp7fX18fn5/gIKBgIGCgIB/f4GBgYCAf39+fn5+f319fn+AgH9+fn9/fn5/f39/f4B/gH+DkI6Mh4aFiIuMiIeGhYOBgoGBgYGCgYKCgoKCgYGCg4KBgYGBgYCBgYCAf4KDgoKBgYF/fX9/f3+Benp4eHd4eHh4eXh4eXp6eXt+fHp8fX17fH19fXx8fH58fX5+fn5+fX1/f398fH2Bg4GAgH99fH18fX17fX18fHx9fX19foGBgoSEg4KAf4GBgYB/f3+Af39/f39/fn5/f39/f39+fn9/gH9/f4CAgH+AgICAgISQj4uHhoaIjIuIioaGg4KCgoGBgYKBgoGCgYGBgYKDgoGAgIGBgICBgYB/goSCgoCAgIB/fn5/gIB/f359fH19fX2Af31/gH9+f4B/f35/f4CBgYCAgH9/gYCAgH+AgYJ/f3+AgH9+fn9/fn9/f35+fn9/f4GAf3+AgYGAgIGDhIKBgoKBgoB/gIGAgYGBgIB/gYCAgH9/f4CAgIGBgYCBgYGAgICAgYKBgYGAgIGBhY6OjIiGh4mMi4uKhoWDgoKCgYGBgoKDgoKCgYCBgYGCgoCAgYGAgIGBgH+ChYOCgYGAgH9/fn5/gH1+fn59fX1+f35/f39+fn5/gIGAgICAgH5/f35/gH9/gIB/f39+f39+fn5+fX5/fn5/f39+f4CBgYKCg4OCgoOCgYGCg4ODgoGBgYGCgYKCgoGCgYKBgYGBgYKCgoGBgoGCgoKBgYKCgYGCgoKCgoGBgYKCgoKGj5GPioeIio2OjYmGhYKCgoKCgYGCgoOCgoKBgYGBgYGBf4CBgYGAgYCBf4GFhIOCgoKBgoGAgICAfHx8e3x9fHx/fn5/fn5+fn9+fn9/f39/f39+fn6Afn5+fn5/f39/fn9/fn5+f4CAf4CAf39/f39/gYGBgoKAgIGCg4OEg4ODg4KCgoKCgoKCgoKCgoKBgoKCg4ODgoODg4KCgoGCgoKDg4ODg4KCgoKDg4OCgoeSkpCLiouLj4+NioeEgoKCgoGBgYKCg4KCgYGBgYCBgYCAgIGBgYCBgIGAgIOEg4ODhIODg4KCgoF8fXx8fYJ9fn+BgoiBgoKEgoGBg4OBgYGCgoGCgYGAgH9/f4CAgH9/gIF/f39/f4GAgICAgIB/f39/gICAgIB/f4GDg4WEhIOEg4KCgoODgoKDgoKDg4ODg4OEg4OChIWFg4OEhIKCg4SDgoODg4ODgoKDg4KAipSTj4qKjI6Qj42LhoOCgoKCgYGBgYKDgoGBgYCBgYKBgYCAgYGBgIGAgIB/gYKDg4OEhISDgoKCgn18fH5+gIGDgIODgoSGhYaGhYSFhYODg4ODgYGChISCgoKHg4KCgIKBgYKCgoOCgoOCg4KDg4KBgICCgoGDgoGCgoODhIWFhIODgoSEhISDhISEg4ODhIODg4ODhIOEg4SFhISEg4ODg4KCgoKCgoKCgYGCgoKPlJSPjY6OkZGOioiEgoKCgoGBgYGBgoOBgYCBgYGBgYGAgYCBgYGAgYCAgICCgoSCg4SDgoODg4KCfX19gIB/gIKBg4ODg4SGhISDhIWFg4OBgYKDgYCCg4GChYWFhYaGh4aGhoaHh4eGhoaHh4aGhIKBgoOEg4ODg4ODg4SEhYWFg4WEhYSEhIOCgYODgoOEhIOCgoOEgoODg4ODgoKCgoKCgoODhISDhYWFhYaGiJOTk5CPj4+SkYyKh4KCgoKCgYGBgYGCg4KCgYCBgYGBgYCAgIGBgYCAgICAgISEhIGCgoKBgYKCgYF/gIGDgYCAgH+AgoKCg4OCgoGDg4OEg4OCg4WDgoGBgYKEhYeHh4eGhoeHh4iIh4eHiIiIhYSDgYCBgYKCgoOBgoOEhIWEg4ODhIODhISDgYGBgoODhISEg4ODg4ODhISDg4KEg4ODg4SFhYaHh4eHiIiIiYmOk5KSjo+OkJGPi4mHgoKCgoKCgYGBgYKCgoKBgYGBgYGBgICAgIGBgICBgICAg4OCgoGCgoGBgH+AgYWFhYaDgoGAfn5/gYKEgoGCg4SDgoODg4OCgoSEg4SDgoOEhYSEhYWEg4KEhYWChISFhYOCgYB/f4CAf4CBhIODhIWFhIKCgoKDgoODhYSCg4SEhIWGhoaGhoaFhYaHh4WGiIeGh4iHhoaGiIiHhoWGhoaHiJGSkpCOkI6QkYyJh4WBgYKCgoKBgYGBgYKDgYGBgYGBgYCAgICAgoCAgICAgICEhIOCgYKBgIGBgIGCiIeGh4WEgoB/fX1+gIB/gIGBgYGBgYKBgIGCgoKBgoKCgYGBgoGCgoOBgYCAgH+BgIB/gIB/foCBgYGCgoODhIODhIODgoKBgYKDg4OEhIOEhISDhYWGhYeHiIeHh4eHh4eHhoaGhoeFhYWGhoSFhISFhIWGkpORjo6PjpCOiYmHhIKCgoKCgoKBgYCBgoKCgoKCgoKBgYGBgIGBgYCAgIGBgIKEg4OCg4KBgoGCg4OIh4eHh4WEgoF+foCAgH5+fn+AgYGBgoGAgoKBgoB/gICAfoCCgYCBgoODgH9/f4CAgH+AgICAg4OCg4ODg4KDgYGCgoKDgoGCgoKDgoKEg4SEg4OEhIWFhYWGhoaGhYSEhIWFhISFhYWEhISEg4SEhISEhIqUk5KQkI+OjYiGhYSDgYGCgoKCgoGBgIGCgoKCgYKCgYGAgYGAgYGBgICAgIGBgIODgoKDgoKCgYKDgoiJiYmIh4WEg4GChISDgYGBgoKDgoKDhIKDhIWFhIKEgoF/gIKBgYKBgoSDgYGBgYKDgoKBg4OEg4OEhIODgoOCg4ODg4OCgoKCgoKBg4SEhIWEhYWFhYSFhISFhYWFg4ODhISEhIWFhYSEhISEhIODg4ODjpWSkJGRjo2Mh4WDg4OBgoKCgoKCgYGAgYKDgoGAgoGBgYCAgICBgYGAgICAgYCAg4WEhISDg4OEg4SDhoeJiIaFg4SDhIOFg4GBg4KDhYWDg4OEg4SDg4WEhYSEhIGBgIGCg4KChIODgoKBgYSFhIODg4KCg4SEg4ODg4OEhYSEg4OCgoGCgoKEhIWEhYWFhYWDg4WFhYWGhYaFhISFhIWFhoWFhYSFhISEg4SDg4SRlJOSko+MjIqFhISDg4GCgoOCgoKCgYGBgoOCgYGCgYGBgYCAgYCBgYB/gICBgIGGhoaGhoaGh4eGhoWEg4WGgoCBgYGBh4KAfn+BgICCgYGAgYGAgIKBgoKCgYKCgoGAgoKCgoKCg4OBgoGCg4WDg4OCg4ODhIKChISDhISFhIODgoKCgoGBgoODg4OEhYWFhYSDhIWFhoWFhISEhISDhISFhYWFhYSDg4SDhIOChpSTkpSSj42Lh4SEhIOCgYKDg4KCg4OBgYKCgYKCgoGBgoGBgYGAgIGBgICAgICAgIWFhYWGhoaGhoaFhoODg4OBgIKCgoGCgH9+f3+AgH+Af4CBgIB/gYGBgYOAgIGBgoSDgYGBgYGCgYGCg4KDg4KDgoKCgoODgYOEg4ODg4ODhISCgoKCg4KCg4ODg4SFhISEhIODhISDg4ODhISDg4ODg4OEg4ODg4OCg4OCg4KLlJOSk5GNjYqGg4ODhIKBgoODg4ODg4KBgYKBgoKCgoKCgYGBgYCAgYGAgH+AgICAg4SEhYWEhYWFhISFgoOCg4KCg4ODgYCAgICAgIGAgIOCgoOBgYKCg4ODhIKDg4OCgICAgoKCg4KCg4ODg4KDg4SCgoKDg4KCg4OCgoOCg4OFhIODg4OEg4OEhISEhIWFhISFhIOEhIODhISEhISEhIOEhIWEg4OEhISDg4KCg5CUkpKSj4uMiIaEhIODgYGCg4ODg4ODgoGBgoKCgoKCg4KAgYKBgICAgICAf4CAgICEg4WFhIWFhYWEhYWDhISFg4OEhYSCgoKDgoKEgoGChoWDhIODhISEhoWEhIWCf319fX6ChIODg4ODhIODg4SEhIODhISEhIOEhISDhIODhYaFhYWEhYWFhYWEhYaFhoaFhYWFhYWFhYWFhoaFhoaGhYaGhoeGhYWFhYOEhISHk5OSkZKMi4iFhoWFgoKBgYKDg4ODgoOCgYGCg4ODgoKCgYCBgICAgICAgIB/gICAgIWFhoWFhoeHhoWFhYSEhYWEhISEhIOEg4ODhIWDgoOEhYWGhYaGhYaHh4aDgX5/fn5+fn+DhIODhISEhISEhISEhISEhYWFhIWEhoWFhoWGhoaFhoWFh4WFhoWGhoaGhYSFhYWFhYSFhoaGh4aGhoaGh4eIiIiGhYWGhIWFho2Uk5KRkIuKh4aHhoSBgoKCg4ODg4OCg4KBgYKDg4OCgIGBgYCAgICAgICAgH+AgICAh4eHhoaHh4iHh4aGhIODg4SDg4ODhIODg4ODhISDg4OFhYWFh4eFhYeFgX9/f39/f39+f4CEhYSFhoaGhYWFhYaGh4aGhYaFhYaHh4eIh4eHhoaGh4eHhoaGh4aGhoWEg4SFhYWEhYWGhoaHh4aGhoaHh4eHiIiHhoaGh4eHkZOSkJGQi4iIhYaEg4KCgYKDg4ODg4KCg4KCgoKDgoGAgYCAgYCAgICBgICAf4CAgH+Gh4iHh4eHiImJiIiDg4KCg4OEhISFhIOCgoODhIODgoOFhIWHiIWDgoB/f39/f4CAf3+Af3+FhYaHiIiHh4eHiIeIh4iIiIaGh4iIiYmJiIeGh4eHiIiGh4aHiIaGhYSDhIWGhoWFhYaGhoeHhYaHhoeGhoeHh4eHh4eHhYeTk5GPkZCLh4aFhoSCgoGBgoODg4ODg4KCgoKBgoOCgoCBgYGAgICAgICAgH+AgIGAf4aIiIiIh4eIiYmJiIOCgoODg4SFh4eHhYODhYSDg4OChISEhIWEgYCBgoGBgYGAf4B/f357eoCGiIiKiomJiIiJiYmJiouKiIiIiYmLi4qKiIiHiIiIh4eIiIeIhoeGhIODhYeHh4aFhYSEhIWFhIWFhoSEhIWFhYaFhoWDiZSTkI6RjoqGhYaFg4GBgYGCg4ODg4KCgoKCgoKCgoGBgYGBgYGAgICAgICAf4CAgYB/homIiImHiIiJiYiIhIKCg4ODg4SJioeHhIWFhIODhYOFhIODgoGCgoKCgoB/fnx9fX1/fnx7fIOHiYuLioqKiIiKiYiJi4qJiYiJiIqKiYuJh4aGhoeFhoiIiYiHhoaEg4KEiIiIiIeFgoKBg4OCg4OEgoKCg4KBhIOEg4GOk5KQj4+LiIWEhoSCgYGBgYKDg4ODgoKCgoKCgoKBgYGBgYCBgICAgICAgIB/gICBgH+FiIeHh4aHiIiIh4eEgoODgoODhYmKiYeFh4WEhYWEg4WEg4KCgoKCg4F+fX5+fn5+fn19fn19fYOHiYqKh4eFhoeHh4eIh4eJh4iGiIeHiYiEg4SDhYSEhYWGiIeGhYOCgoOFh4aHhoaDgoKDhIKDhISCgYGBgYGDg4SDhJGSkY6PjYuHhIaGg4KBgIGBg4ODg4OCgoKCgoKCgoGBgYCBgYGAgICAf4CBgH9/f4CAf4WGhoWGhoaHh4iHhoGChISDgoWGiIuKhoWGhIKGhoKAg4ODg4ODgoKBfXx9f4B/fn5+fXx9fXx6fISGh4aEg4GDg4SFhYWDg4WEhISEhISFhIKCg4KEhIGCg4OFhoWEgoGBgoKDg4WDhISFhISGg4OEhYOCg4GCg4OEhYSHkpGPjY+MiYaEhYSFgoGAgYGDg4ODg4KCgoKCgoKCgYGBgYGBgICAgH+AgIGAf4CAgICAg4SFhIWFhYeHh4eGgIGBhYODhYWEh4iFg4GAgIF/fn2Cg4ODg4KCgH19f4CAgX99fn59fX19enp6foOEhIKBgYCBgYKCgX9+gYGBgoGDgYKBgoKCgYODgH+AgIGDgoCAgICBgYGBgoGBgoSDg4WEgoOEg4KCgYKEg4WFhoyTkY6Pj4uIhYWDgoSBgYGBgYKDg4OCgoKCgoKCgoKBgYGAgYGAgYB/f4CBgYCAgIB/gICCgoODgoSDhIWFhoZ/gX6AgYCAgH+Bg4J/fn5+fnx8f4ODgoOCg4F9fX5/gICBgH59fX19fn18enp6f4KCgH9/f39+f3+Afn2Af3+AgIF/gICBf39/gYF+fX1/gIF/f35/gIB/gICAgX+AgoCAgoGBgoGBgIGBgYGChIOGj5KQjo+NioeHhoODgoGBgYGBgoODg4KCgoKCgoKDgoGBgoGBgYCAgIB/gICAgICAgH9/f4GCg4SBgoKDgoOEhYCBf3x9fX59fX6AgH59fn57fX6Cg4OCgoGBf319fn+AgIB/fn19fXx7e3t6enl6gIB/fn9+fn58fn9+f4B/fn9/gH+BgH9+fn5/f359fH5/gH9+fn9/gH9/f3+Af3+Afn+AgX+Afn9/f4B/f3+Af4WSko+Oj4uLh4mFhIOCgYGBgYGCg4ODg4ODgoKCg4OCgIGCgYGBgICAgH9/gICAf4CBf39+gYGEhIGCgYODgoODgYB/fH5+f35+gH+Af36AfX1/gYSDgoGAf39+fX5+f4CAgH59fX18e3t8enp5eXl7f39+f39/fn1+f3+AgH9+f3+AgIKAf3x+fn9+fn18f3+Af35+f3+Af39/f36AgH9+gH9/fn5+f39+fn99fHx9hZKSjYyLioiJiISFhIKCgoGBgYKDgoKDg4KDg4ODg4GAgYGBgYGAgH9/f3+AgICAgIB/f36AgYSDgoGBg4SEg4SAgYGAgYCBgIGCgoOBgIF+gIKDg4GBgYGAgH19fX5+fn9+fX19fX18fHx7enl5eXl9gH+AgYGBf3+BgH+Bf4CAgIGBgoKAfoB+f35+fn6BgIKBf39/f4CAf3+Af4GAfn+AgH5/f35/gH99fn19e3yGk5GMi4qHh4qIhoaEg4KBgYGBgoODg4ODgoODgoKCgYCAgYGBgIB/f3+Af4CAgICAgIB/fn5/gYGBgICEhoeGh4KEg4WDgYODg4WEhISEg4GDg4OCgoKBgoF+fn19fX5+gH19fX19fX19fHt6enl5eXmAgoKChIOAgYOBgIKAgYGBg4KDg4GBgoCBgH+AgYOBhIKAgIGAgYGAgIGAgoJ/gYCBf4CAf4CAgH5/f358fIqTkIqJiIiIiYiGhoaEgoKBgYKCg4ODg4OCg4OCgoGAgICAgYGBgH9/f4CAgICAgICBgX9+fX5+f39/foOGh4eIgoaEhYOEhYSFhoaGhoaFhYaBgIODg4KCgH19fX19fX5+fX19fX19fX19fHt5eXl5eHyCg4SFgoGEg4KCg4WGgoOEg4GCgoODgYOCgoGChYOIhYKBgYGCgoGBgYGEg4KDgoKCgoGBgYCBf4CBgH9+jpOMh4iGiIeGhoWGhoSCg4KBgoKDg4ODg4ODgoGBgYB/gIGAgYGAf39/f4CAgIB/gIGAf359fX1+fn9+gIOEh4iEhoaGhYaGh4eGhoeHh4aHh399gICBgoF+fX19fX19fX19fX19fHx+fn58e3l4d3h5eYCCg3+DjYSDhISEl5eDg4SBfX6BgoKBgoGCgYOGiIyFg4KCgYSChIOCg4WFhIWDgoODgoODgoKCgoODgoKSkIuIiIeJh4aGhIaFhISEgoGCgoODg4ODg4KBgYGAgICAgYCBgYB/f35/gIGAgH+AgYB/f359f35/gX+AgoGFhYWGhoeHhoeHiIaHh4eGh4eHf3x9fH1/fn19fX19fX19fX19fX18e4iSgnt8enyGeXh5fIGBfomXhIODhISUk4CBgX9/f35+hIuAf4CAhIaQiYWEgoKBhYWLg4GChYWGhoSDhYWDhISDg4SDhYSEiJKOi4mIiImHiIeFhoWEhYSCgYKCg4ODg4ODgoGBgYCAgICAgICAf39/f3+AgICAgICBgX9/f3+AgICBgYGBgYODhoeGhoeGhoiHhoaGhYSEhoV/fHx8fH19fHx9fX19fX19fX19fHx/kZWWg3t6hJR8eHl6e3x/goOBgYCDgoB+fH5+e4iRfHyOln99f3+ChoqFg4OEgoGDjYl/fn+DhIWFg4WGhYSFhYOEhYWGhISOkY+LioqMiomKh4WGhYODgoGCgoKCg4SDg4KBgYCAgYCAgIGBgICAf39/gICAf4CAgIF+fn+BgYKCgoOEg4KDgoKFhoSEhYWEhoSDhIOCgYGDgX99fXx8fX18fHx9fHx9fH19fXx8fHuLkZeMent8gHp6ent8eXl9fX6Af4B/fHt7fn59gpWRf4SIfnx+f4KEfHyBgoSCgH+Hg32CgX+CgoCDg4SEhISEgoSDhIWChJGRjYuMjI6KiYmGhYWDg4KCgYKDg4KCg4OCgoGBgICBgICAgICAgIB/gH9/gH9+e4CAgXp8gIGCg4WDg4WFhYWDg4OEgoGDg4KDgoKBgICAf4F+f35+fXx8fHx8fHx8fHx8fHx8fX18fH5+ioJ7ent6eHp7enx9e359fn99fX19fHx/gYF9ho+Bfn2Cfn9+gIJ8fH9/gYCCgH59e4qCfYB/foGAgIGCgYKAgICBgH+Lk4+Li42OjYiHiIaFhISDgoKCgoODgoKDg4GBgYCAgICAgIB/fn18e3x8fX9/gIB8eoGBeHuAgoGDhYSDhYSGhoSEgIaUiICCgYGBgYB/f39/f35+foB8fHx8fHx8fHx8fHx8fXx8fHx8fHx5e3t7eHh5e3t6fIF/gH5/gXx+fn9/fYCCgoCAgIF/gpGBf3+AgH6Afn5/foCBgX18fXt9fX18fXx8fYB/gIB+gH5+gZSRi4yMjY+KhoaGhYSEhYODg4KDg4ODgoKBgYGBgICAgYCAgH+AgH9/f317enyAgIB4foF3e4CBf4GCgoKCg4aHhoZ+iJWKfoGBgICAf36Afn9/f35/gX58e3t8fHx8fHx8fHx+fXx7fXx8fHt8fHx6enl7fHp9hYOCf4GBfn9+f4B+hYKBfoB/fn6AhYaCgH5+g4d/fXx+gICBgH9/fn19fX19enx9f39/gH1/foCMkY2MjY6NjYeEhoaFhISDg4ODgoODg4OCgYGBgYCAgYGBgIGBgYGBgIB/f39/e3p/f3t5gHd6f399fn9/gH+ChIaGhX9/hYF+f4CAf4B+fn9+f4CAf4CAf399fHx8fX59fH19fX19fXx+fH18e318fHp7ent9fX+GhIKAgIF9fn1+f32LhIGGfn18fH9+goF/fX19fYB8e318foGEg4GAfn5+fn18fn9/fX6Afn5+hJKMjIuOjYuKhoSGhISDg4ODgoOCg4KDgoGBgYGBgIGBgYGAf318fHx9fn9/f39/e3t/fXd+dnh+fXx9fH1+foGBgoOAe359fH5+gIB+gH9+f35/gIB/gIB/f35/fn5+fn59fn5/fXx+fX59fXx7fHx8ent6fX5/gIODgn9+f3x9fH18fYGDfox+fHt7fX59fn59e3t7fXt6e3t7gIaEgoSDgn+Afn+CgoJ/f4KCf4CKj4uKioyLioiEhIWDhIODg4KCgoKCgoKCgYGBgIKCgYGCgn9/gICAf359fHx+f35+eX1+dnt2eH18fHx7fX1+gYCAgH9+f399fn5/f36Af39/f39/gICBgYB/fYB/f35/fn5/f398gn5+fX19e3t9fXx6fHx+gIKBf4CAfHx9fHx8fHx9fH17f357e3t8fHx9fHt7e3t8fHp6fXp+gn6Bg4SCgYKBhYaFhYaGh4aChJCNi4qJioaHhYKDhISEhIOCgoGBgoKCgYKBgYGBgYKBgYKCgIGCgYGAgIB/fnt8fn58en54eXZ3fHx8e3t9fH+BgH9+f36Af39+f39+f4B/f39/f39/gIKCgH5+gYCAf39/f39/fn2DfHx9fXx/fX19fXt8fn5/fn59f358fHx8fHx8fn57fHt8fHx8fXx9fH58fXx8e3t8eXt8e3t9e31+fn+AgIOHiYmJiomLiYWIkIyKiIiGhYWDgoKDhISDg4KCgYGBgYGCgYGBgYGCgoKBgoKAgIF/fHt6enl7fXp8fn55fHl4eHR8fHx7fHx8foF/f39/f4CAf35+fn1/gIB/f39/gH+Ag4OAf4CBgICAf3+AgIB+fHp8fX1+fX1+foyGfX1+e3uDgn19fX19fH18fX19fnx9e318fX1+fH59fX19fHt7enx7fHx7ent7enp6e35+goWIh4eLi4uKiYyQjYyJh4aFhIOCgoKDg4ODgYGBgYGBgYGBgYGBgoKDgoGCgYCBgX9/gH9+enh5eXp+fnt5enh+c3x8fHt8fHx+fn5/f4B/gICAf35/foCBf3+Af4CBgIKEg4GAgIGBgIF/gIGBgX9/fn99foB+e36BkYx8fX+KgI2Mfn59fX1+fX1+fXx8fH19fH18fX19fn19fn58e3t7fHx9fHt6e3x5enl4eXt+f4SChIiJioiJjY+MioeIhYSEg4GCgoKCg4KBgoKCgYGBgoGCgoKBgoKCgYKCgIGBgH6AgH9/fnt6eXt9fXl8en9ygX17e3x8fH5+fX2Bgn+BgYF/f4B/gIF/f4CBgoGBhYOEgoGBgoGCgoCAgYOCgH+Bf31+gH58f3+Ign9+g5CEhIOBf359fI2HfX1+fXx8f358fX18fX19fn1+f319fXt8fX58fHt8fXp6eXl6eXt7fn6AgYOHhIiNjImJhYWEhIOCgoKCgoKCgYGBgoKCgYKCgoKCgoKCgoKBgoJ/gICAfn9/f35+f3p7eX19enp6fXF+gnp7fH19fX16eH6CgIGCgoCAgYCBgYCAgYKCgoKGhYSBgYGBgYOBf4CChIF/foGAfX6Bfn1/f4CAfX5/hIB+fn99fn19ioV9fn99fn6Af319fXx+fn5/fX+AfX19fH1/f3x8e3x9e3t7enp6e3t8fX59gIN/iIyJiYeFhYWEg4KCgoKCgoGBgYKCgYKCgoKCgoKBgYKCgYGCgn+AgIB/f39/fn5+fXl6en18eXd7dHuHfHR3fX59e3t2dn6AgYOCgYGCgoKCgYGBg4ODgoWGhIKAgICAgoF/gIGEgX5+gIB9foB9fX5+gIB+gX5/gH9/f4B/fX5/f39/gH5/f4B+fH19fH5+fn6Bf4B9goB8fYCBfXx8fX18fHt8fHt7e3x7fHx8fXyIiYeHhYaFhYSEg4GCgYOCgICBgoOCgoKDgoKCgoKBgoKBgYOCf4CBgH9/f35+fn5+e3t6fHx7dnt0d39+dnJ7fn57eHV3fICBgoKCgYKDg4ODgoKEg4SDhYaDgoF/f4CDgICAgIOBfn6AgH1/gH19fn6AgH+Cf4GBgICAgX99f39/gICBgICAf358fX19fX5+fYN9gH6CgH1+gYF/fH5+fX19e3x+fH18fHx7fHt8fYiFhoSFh4WEhYSCgYKBg4GAgIKCg4KCgoODg4OCgYGBgYGBgoB+gIGAf35+fn5+fn5+ent6fYKDfXVxenx6cXp9fXl4dHSAgIKCgoOCg4WDhIOCg4SEhISFhIGBgIB+gIJ/fn9+gX9+f3+AfX6AfX19foB/f4GAgoGAgICCgX1+gH+BgH+AgIB/fn19fX59fn59fYGEf4B/fn+BgX99gH99fX59fn59fnx7fHp8e3qAhYKDhIWEhISFg4KCgYGCgYCAgoKDgoKDhIOEg4OCgoGCgYGDgH+AgX9+fn5+fn1+fn57e3p+iYd+eHJ5fX9xenh7eHl0dX2Cg4KDg4ODhYSFhIODhISDg4SCgYB/gH+AgX59fX6Afn5+f4B9fX98fX1+gH+AgICCgICBgIOBf3+AfoCBfoCBgIB/fn5+fn59f35+hYWAgYB/gIOBf36BgH9+gH6Af359e3p7enx7eoKDf4KCgoKDgoOCgYGAgIKBgICCgYOCgYOEg4SChIKBgYKBgoKAfoCBf359fn5+fn1+fX16e3yFhHt7cnl7fHB3dXZ3eXZ0eoSEgYSEg4SFhYaEg4OFhIKDg4KAgX+Af3+AfX19fn99fn9/f359fnx9fX6Bf4CAf4CAf4CBg4KBgH9+gIB/gIGAgYB/f39/f3+AgICBgoKCgX+BhIF/gIOBf3+Af4F/gH98e3t6fHt8gYB/gX9/gYGBgoGBf39/gYB+gYKCg4GBg4OChIKEgoGBgYCBgoB+gIB/f31+fn19fX59fXt7eoB/eHx2eXp8cXR4d3Z4dXJ5hYWChYSChIWFhoSEgoSDgYOCgICBfn+Af4B8fX1+gH1+f39/fn1/fH5+foF/gX9/fn+Af4CDg4OAf3+BgYCCgYGBgICBgICAgICBgIGCg4GBf4CEgX2Bg4SAgIF/gYGCgX16e3t8fH1/fX+AfH9/fX2BgIB+fX2Af36BgYGCgYCCgoKCgYOCgoGAf4GCgH5/f35/fX19fn19fX19fXp7e3x2fXl4enpydXl5dnd3c3WGhYOFhYKEhIWEhISCg4KBg4F/gIF+f4B+gH19fX5/fn+Afn5/fX98f39/gYCBf398foB+gIGCg4GAgIKDhIKBgIGAf4GAgIGBgIGBgoOCgYF/f4OAfoKChICAgoGCgoSCfnt7fHx8fX19fn16fn19eX5/f3x8fH59foGAgYGBgIKBgYGBg4KBgX+AgIKAfX59fX99fX1+fXx9fX19ent6fHZ8end7eHJ2eXt2dnZzdIaEhIWFgYSEhYSDgoGDgYGDgYCBgX1/gX6BfX19f39/f4B+fn59fX2Af4CBgYF/fnx+gH5/f4GCf4GBgoOHhYGAf35+gH+AgYCAgICBgoGAgH6Agn9/gYKCgYGDgoODhYJ/fX19fHt8fHl6e3p+eXt5eH9+e3t7fn19f3+Bf4B+gYCAgIKDgoGBf4CBgX99fnx9fn19fX19fH5+fH18eXt8eHp8d3p3c3h3enN2dnN0hoSEhYOCg4SEg4KBgoOBgoKBgIGBfIB/foB9fn1+f4CAgH9+f358fn9/gYCBgH9+fX9/fn5/gYB9gICBg4SDf39+fX5+fn+Af4CAf4GCgYB/fn+Bfn+AgoKAgYSChISGhIB+fXx8fHx6eXZ5eXp5dnl2fnx7e3t+fXt/fYB/fX1/f39/gYKBgYF+f4GBfn19fH19fX19fX18fo2BfH15e3t6eXx3eHh0dXV4cnd3dHaGhISFg4ODg4KDgoGCg4KBg4J/gYB/f35/gH59fXx/gICAf3+Af3yAf3+BgIGAgH98gH9+fn5/f31+foCBgoJ+f359fn5+fn9/gH99gIGAfn5+f4F+foCCgX+Bg4KDhIeEgIB+fH18fHt8dXl5eHh4eXd7fHt6e36GfX59f3p7fn5+fX6BgICBgH1+gYB+fX18fX19fX19fHt9g4J8fHp7e3t6e3d2eHVyc3Zxd3lyeIWFhYWDhISCgoOCgYGCgYCDgYCAf35+fn6Afn1+fH+AgIB/gIF/e4B+gIB/gYGAf32Af35+f399fX1+gIGCgX5/fn5+fX19f35/fnx+gH9+fn5/gn5+gICBf4GDgoODhoSAgX58fXx8e3x4d3t4dXl3d3l8ent7fZKHfXx9d3p9fn59fX9+foB/fH6Af359fXx9fX19fX17fHp7fXp6eHt8enp7eHR4dXFydHB4eHF5hIWFhYOEg4KDg4KBgYKCgIGAgICAfX5+f4B9fH59f4CBgH9/gYB8gH+Afn+BgH9/fYB/fn9/fn19fICAgICAfn9+fn59fH5/fn9+fH2Af359foCCf36AgH9+gYOCgoOFhYKCfn19e3t8fHl3e3l3eHd3eHt7ent8hYp9e3p3enx9fXx8fX19f358fX5+fX18fH1+fn19fHx7enp8e3t6eXp6e3p4c3d1cXFzcHh3cXuFhoWFg4WCgYODgYGBgYKAgYCAgYB+f35/f318fn2AgIKBgH+BgH1+gH9+f4F/gH9/gYB/gH99fnx9f4CAgIB/f39+f358fn9/f399fX9/fX5+goGBf4CAf36Bg4KChIOEgoJ+fnx8enx7e3h6endzdnd4eXt6e3l6f357e3d6fH18fHx+fXx9fXx9fX18fH19fX1/fX18fXt5e3x8fHp6enp6enhzdnVwcHJvd3Zye4WHhIWDhIKBg4KCgoGBgoGCgIGBgH+Af39/fX1/fn+AgYGBf4KBfX6Bfn5/gH+Af4CCgICAfn1+fH9/gYCAgH+Af3+Afn1+fn+Af39/f4B/f3+Cf4B/f4CAf4GBgICEgYKCgH9/fn98fX5+en2EfXR8fXp6enp8eXl6eoaFd3l8fHx8fH17fHx8fH19fXx8fX19fX59fX19enl9fHx9enp6enp6eXN1dW9vcW93dHN8hYaDhIKDgoGCgYKCgoGCgYKAgYGAgICAgIB+fYB/gH+BgoJ/goF/gIF+f4GAf4CAgIJ/gX99fX9+f3+CgICAgICAf4CAfn59f4B/f3+Af39/f4B/gICAgIB/gICBgYGBgoGAgH9/f359f356gZGLenx9fHt9eXt6enh5gYF4eXt8fH18fHt8fHx8fX19fHx9fH59fn5+fXx6fHx7fH17eXp6enl5c3V1b29xcHdzdH2Fh4ODgoOCgIGAgoKBgIGBgYGCgYGAgICBgH5+gH+BgIGCgoCCgoCAgn6AgYF/f4F/gYCBf3x+gH9/gIKAgICAgH9/gIB+f31+gH59gIB/f39/gICAgIGAgH+AgIGAgYGCgoCAgH9/f31+f3yBhoh8fH57e355ent6e41+d3d5e3x7fXx8fHx7fXx9fH19fH18fn5+f39+fHp8fXt9fXt5ent6eXlzdHVuc3FweHJ1eoWGg4OCg4KAgICBgYF/goGCgYKBgYGCgIGBf35/f4GBgoGCgYODgIGCf4GBgX+AgICAf4F/fX+Bf4CAgYCAgH+AfoCAgH9+fX+Afn5/gH9/f4B/f4CAgX+AgYB/gYCBgoKCgICAgICAfX6AfYCDgnt+fnt8fXt6fHx7h3l4eHl8fHx9e3x8fX19fHx9fX59fX1+fn9/gH99e3x9fHx8e3p5e3t5eXNydW52cnB4cXV2hYWDhIOCgoCAgIKBf4CCgoKCg4GBg4KAgoGAf4CAgoKCgYOBhISAgYF+gYKBf4CAgIB/gn9+gIGAgoCAgICAf4B/gICAf359gH9/f3+BgIB/gIB/gIGBf4CAgICBgIGBgYKBgIGAgIB/f4B+f31+fX5+e318fXt8fHd4dXh4eXt8fH18fHx8fH1+f39/f359fX5/f4CBgH98fXx8fXt6e3l6fHh6c3J1bndxcXpxdneFhYOEg4OCgYGCg4B/goGFg4OEgYGDgYKCgoGAf4CCg4KAgoKFg3+AgH6Cg4CAgYCAgH+AgH+BgYCCgH+AgYB/foCAgICAgH+AgIB/gICAgICAf3+AgYGAgICAgIGBgIKCgoKAgoGBgoGAf3+Af4CHfn58en18e31+eHd2eXl5fH19fH17fHx9fX5+f4CBgH59foCAgIKBgHx+fX1+fHd7enp7eXlzcXVud3B1enF2eYWFgoOCg4OCg4SEgICCgYaDg4OBgoSAhIOCgoB/goKEgYGCgoSCf4CAf4GDgoGBgYGAgH+BgYGBgIOBfoCDgn99f4KBgICAfoGAgX+AgIGBgYGAgICCgoGCgYGAgYGBgYKDgoKDgYODgoGAgYB/gIR9fX18f316fYB6eXZ6eHl7e3x9fXt8fX19fX5/gIGBgIB/gICAg4OAfX9+fn59eXl7enp6eXNydW93cXd5c3d7hYKCg4KDhIKDhIOAgIKDhoODg4KChIGEg4GCgICCgYOBgoKBgoF+gYCAgoGCgYGDgYCAgICAgYKBhIB+gYOBfn+Ag4KAgX6AgoOCgIGBgYKCg4KBgYOCgoSBgIGDgYGChIODhISDg4SDg4GCgYGAgn+Af32AfHp8f3t7d3x5eXl7en1+fXx8fHx9fn5/gYGAgICBgYGEhIB9gH9/f39+e3t7ent6dHB4cnl0dnh0d3uEgoOCg4OEgoSDg4GCgoSGhIKDg4KEgYSEgIOAgYOCgoKCgoCCgH6BgICCgYKBgoKCgYCBgYGDgoKDgH6Bg4F+f4GEhIGDf4KCgYOCgoKBg4ODhIGChIKDgoKBgoKDgYOEg4SEhISEhYOEgoGDgoKDgYGBgIB+fHyAfHx4fHl6eXp8fX98e3x8fX19fHyAgICAgIGBgYGCgX6BgICAgH97e3t6enp1cHh3eXZ1fHV2fICAg4KDg4ODhISEgIKChYSEg4OCg4SBhIWCgoGCg4OBgoKCgIGAfYCAgYGCg4KCgoKBgIGCgoOCgoOAf4GDgX+AgoSDg4KBgoKBg4KCg4OEg4OEgIKEg4ODgYF/gYOCg4WChISEhISEg4SEgoSDhISCgYKBgYB7foF+fXl8enp6fXx8gX16fHx9fXx6e35+foB/f4GBgICAgICBgYCAf319fHx9fHZydnh4dnR+dnV9h4eDgoSFg4OEhYSAgoSFhISDgoOEhICEhYOCgoKDg4KDgoKAgoB9gICBgoOCgoKChIKBgoKDhIKCgYCAgYOBf4GDhYSDgoOAgoKDgoODg4SDhIOAgoOChIOCgn6DgYKEhIKDg4SEhISDhISDhIOFhIODg4KCgHuAgX98fH16ent9f31/f3x8enx+fXx9fX5+f39/f4CAgIB/fn6AgYCAgH58fX1+f359fHt4dn92dn+Eh4OCg4WDg4SGhIGChYaFhISDg4SEgoSFhYKCg4OEgoOCg4KCgX6AgIKCg4KDg4OEgoGCgoODgoOBgYGBg4F+gYSEg4OChH+BhIODg4KEg4OEgoCDhIOEg4OCgoOCgoSDgoOEhISEhISFhIODhIWEhISDgYKAfYGCf318fHt8fIB9fX6Afn59f358fHx9fX5+f35/gYGBgYB/fX1+gYGAfn59fX1+fX1+fn9/gHx8gIGCgoODhoOEg4aEgYKIh4WEg4OEhIWChIWFg4OEg4SDg4KDgoOBfoGBg4OEgoODhISDgoOChIODg4KCg4KDgX+BhIODg4KDf4GFg4ODg4SDg4SDgIKEhIWDgoKDg4OBhIOBg4OEg4SEhIWEhISFhYWFhIODg399gYR/fX18fHx8f4F+fX5/f31/fXt8fX19fX1+fn+AgYCBgYB+fXx+gn9/fn5+fn19f39/f4CAgH+AhISDg4SFg4SDhX9+goqLhYSEg4KDhYGGhoaDhISEhISDg4ODhIJ/gYGDg4WEhYSFhIOChISEhYSDg4KEg4WBgYOEhYWGhIKAg4eEg4ODhYSFhYSBhIODh4KDgoOBgoGEg4KDg4WDg4WFhIWFh4eGh4WEhIWEgX+Bg39+fnx+fX1/gYB/fnx8fn9+fHp8fX19fX1+fn5/f4CBgX99fXyAf4B+fn5+fn9/gIGBgYGCgIGFhYSDhYSChIOGgIKFhYuJhISDhIWFg4eGhoSEhISFhISEhIOEhIGCg4ODhISGhIWEg4OEhIN8g4R7gYR3eYOBfYR+fnJ1g4KBdn6DhYF9gXWBeYN/f4B+hISCg4OCgYOEg4OEhYOEhYaEhYZ9hHl8fn+Ee4WDgISDgH9+fX59fYGDgX17f31+gH59fHx8fX19fXx9fX+Af4GCf319fH+BgYCAgIB/gYGBgoGCg4OCgoaEhISGhIGDhIWDhIWEioiFhYWDhYWEhoaGg4SEhYWFhIWFhISFgoKDhIWFhYaEhYSDhIWFgmiAhWp8e3FxfIFzhnN0dH2ChHVzcYOGdHB1cnN0g3Z7fXWBf4KDgIJ2eYWAg4CEf4WEgoWFgmh6cnNzfIBzgYN/g4N9gX19fn1+goOBfH+BfX6AfX18fHx8fXx8fH59foB/gYF/fX19gIGCgYGBgYCBgYGCgYKCgoKEh4SFhIWEgYKEhoaDhYOGiIaGhYOGhoeHhoeDhYWGhYSChYaEhYWDgoOEhIaGhoSGhIOEhYZ9cXuBcHl2foN/gm55cHVzfHZ6eYVyhINwdnhxdnR0dXJzdHZpf4Bucm90dm51bHdte3NugIh5bX1yc3Zzdm1teGxweWx1fX9+fX6BgIF9gH59gH+Af319fHx8fXx9fn99gH+AgH58f36AgYKAgYCAgIGAgICCg4KDhIWIhoaAgoWDg4SHhoOFhYWGh4eEg4aHiImGh4SFhoiIhYOFhoWFhISDhYSChYaGhYaFhIaFh3ZwdHtwcnV/h4WDbXVvdm98dXKEeXmHeHF0d253aHd6bnB2gnKDfm96eXltb256b29td314hnBxenBydGaBdX5ue3lzb3l/gH99fYF/f3x/fXyAfoCAfn6AgIGAfn5/f36Bf4B/fn2AfX+AgYCAfn5/gYB/f4KDgoKEhYeHhH6HhIODhYeGhIaFhYaGiISEhoeIiIaHhIaGi4mFhIaHh4WDhYWFhIKFhYWFhoaFhoWGcXVwcnNvc3p5foR0iHR1foh2boJyhIZ5bmpyf3Ftc3d8f3V0fIR+eHF1d255dXpxdnh1enmEcWpveXhwa3lzem96d3Z2cIGAf35+f39+en59fX99f39+fYCBg4OAgoOBgYSCgYCBgYB9f3+Bfn9+fn+BgH5+gYKAgIGEh4aDg4aEhIWGh4aFhYWFhoaIhYSGhYeGhYaEhoaJiIWEiYqIhYSGhoWFg4WFhIWGhoaGhYN4i3lyiHp7cHCFhHiFeHlrc355e2tyg4eDenxte3l5dH2Adm5vgIBvdHx1d3F5fX1tfnVvg4WGeoBycnt8dHBvemtzfG53goCBfn5/fX17fXt8fX1/f359f3+Cgn+Bg4GBg4GAf4CAgH5/fn99f359f4B+fH2BgH5+gIOIhYaDhYWFhYaHhYWFhYWHh4iGhIaFh4aGhYSFhYSFhYaJiYeGhIaFhoaFhoaEhoaHhoaFhoeHh4aGhIaFhoeIh4WHhoaDh4aFhYOEhoaFhoSGhIOEhIaEhIGEg4SEhYSFhIWEhoOGh4WGhISFh4aEhIWFhIV9d4WDhISDgoF9f357fHt+e3x8fX9+fXx+foGAfX+Bf3+BgH5+foB+fn9+fn1/fX1+f3x7fH9+fHx/gYmGhYSGhoaFh4aFhYWFhoaHiIaEhoWGhoWFg4SFhoWEhoaGhoWFhoSFhoaGhoWGhoeHhoWHiIiIiIaEh4WGh4iGhYiHiIWHhoaIhYWGhoWGhoWDgoWFhoWFg4SEhISFhIWFhIWFhIaHhoaFhIaHhoSEhYaDhYSChIODhYODgn2Af3t7fH17fHx9f358fH59gH99foB+foB/fX18gH1+fn5+fn98fX1+e3x8f3x7e35/iIeEhIiGhoaHhoWFhIaGhoaIh4SFhoeGhYSDg4SGhYSHhYWGhYWGhIWGhoeHhYeGiYiGhoiHiImIhYSIhYaHhoeGiIaHhYeHhoeFhYaHhYeGhYKDhYaGhISDhISDhIaEhYWFhoaEhoaFhoWEhoaFhIOFhYKFh4WDgoKFg4SBfoCAfHt9fXt8e31+fXx8fn1+fnx/fn19fn59fXx/fH5+fH2BgHx8fH18fHx+ent7fX6Ih4KFiIeHhoaGhoSEhoaHhoiGg4SEhoaEhYeDhIWEhYeEhYaGhYaEhoaHh4aGiIeJiIaGiIeIioiFh4iFh4eGh4aHhoeFiIiHh4WGhoeFh4eFgYSEhYaFhYSEhIOEhYWGhoaFhoSHhoaHhYWGhoWEg4SDgoSHg4SBgoSEg4GAgIB7e359e3x8fX18fHx9fXx9fH59fH19fHx8fX18fn17fIF/fXx9fH58fHx6enx8fYiHgoaIh4aHhoaGhIWGhYaGhoWDhYSGhYSIiYOBhIOEhoSGhoaGhoSHh4iIh4eHiIqIhoeIh4iJiIWIh4WHhoaHh4eFh4aIiIeHhYeHh4WGh4SChIOEhoWHhYWEg4SEhYaGhoaGhoeFhYeFhoWGhYSCg4KDg4eBg4CCg4OCgoJ/gHt8fn58fHx+fXx9fXx9e3x8fHx8fH17e3t9fHt+fHt8f319fH19f318enp7e3x8iIeChoaGhoeGhoWEhYaFhYWFhIOFgoaEg4iHf3p6goWGhIaGhYeGhIeHiYiIh4aIioeGh4eGiImHhYiHhoiHhoaHh4WHhoiIh4aFh4aHhoaHg4OEhIOGhoeFhYSEhIWGhoaGhoWHh4aGh4aGhIaFg4OCgoKDhoGDfoKCg4CDg39/fH9+fnx8fX99fH19fH16e3t6e3x8fHt7e357e317e3t+fHx8fH1+f317enx6fH2Jh4OGhYaFhoaFhYSFhYWFhYSDgYWBhoSChIR8gIZ/goWFhoWFhoWEh4eIiIiGhYiKh4WHhoeHiIeFiIWGh4iGhoeHhoeGiIiHhYaHhoeFhYeDhIaFhIaGh4aFhYOFhYaGhoaHhYeGh4aHh4WEhYWDgYKBgIOFgoN+gYGBf4OBfn9+f31/fHx9f317fX18fXp6e3l7fH17e3t7fnx8fHx6e318fHx8fn2BfHt7e3t8e4mHhIaEhoSGhoWEhYaFhISDhIKAg4GFg4GCf3qEjHuAhIWHhoaGhYSHiIeGh4WFh4mHhIeFh4aIhoWHhIaHiIaGiIiHh4aHiIaEhoaGh4aFh4OEhYSGhoaHhYWEg4WFh4WHhoeFhoaGhYaGhIOEhYGAgYGAg4ODgn2BgYB+g4F+f3+AfH98fX1+fXt+fXx9eXp6eXt9fXp6e3t9fH18fHp7fXx8fXx+foB8e3t8fn18iIeFhoWGhIaFhYWFhYWDg4GDgYCCgYWCgIB/f318e4GEhYaGhIWEg4eHhoaGhYSGiYaChoSGhoaFhYeGh4iJhoWIh4mHhoaHhYSGhYWGhYWHg4SFhIiGhoeFhYSChoWGhYeGh4SGhoaFhYaDg4OFgH+BgICDgYOAfIGAfn6CgH2Af4F8f3x9fn1+e359fHx5eXp5en19eXp6e3x7fHt7ent9fXx9fH5+fnx7e31+fXyIhoWGhoaEhYWEhYWEg4KCgIKBgICAg4F+fn6AeXp9gIOEhYeFhIODh4aDhIWEgoWIhYKEg4OFhYWFh4eHiIiFhYiHiYeGhYaFg4aEhYeDhIaEhIWEh4aFhoWGhIOGhYaGhoaGhIWGh4WFhoKCg4R/foCAgIGAg4B7gX99foJ+foB+gH5/fX1+fX97f317enl6enl6fH15enp7e3p8e3t7e3x9fX18f359fHx9f358e4iFhYaGhoaEhYSFg4WCgYCAgIGAfn+Cgn19f397f3+Cg4OFhoWEg4KGg4GDhIKAhYeFgoOBgYOEhISGhoeHh4WFiIaJh4aEhISChYOEhoKDhYSEhoSHhoWFhYaDhIWEhYaFhoSDhYWGg4WFgYGDg39+f4B/f4CDf3yAfX1/gn2AgX5+gX59fX19f3t/fHt6eXp6eXp6fHl6ent7e316e3t7fH1+fX2AfX18fH2Af318hoOGhoaGhYOEgoWChYGBgH9/gIB+f4CCfH5/f36AgIKCgoOEg4KBgoSBgIOCgYCEhYWCgX+AgoODhIWGiIaFhIWHhYeFhYKDgoGDgoKFgYOFhIWGhIaGh4aGhYKEhIOEhoWFg4SEg4SDhYSAgIKCf319f35+gIR+e398fICBfYGAfX2DfH5+fX1+e357e3p5enp5enp7eXp6ent7fHp7fHx8fn59f4F8fXx8fX+AfoCGhIWFhIeEg4OChoKDgIGAfn5/gH1/f4J8fX9/fn5+gYGCg4OCgYGCgn+AgYKAgIKFhIKAf4CBgoGDhYWHhoSEhoaEhYOFgYKBgYKBgoOBgoSEhIWFhoeHhoWEg4ODg4SGhYSBg4KDgoSDg4B/gIF+fXx+fnx/g318fnx8gYB+gn99f4J8f359fHx8fHt7enl6enl7enp6enp6ent8eXt9fHx/f3+BgH1+fX19f4CAgIaEhIWEhYKDgoKEgoKAgYB+fX5/fn5+gH19gH9+fn6BgYKDg4KEh4GBfoCAgX9/goSDgX9+f4CCf4KFhIaEg4OFhYKEgYOAgYCBgYGCgYCBhIODhoWFh4eFhYWFgoKCg4WEgoGBgYKAhYOBf36Af358fH59fH6DfXt+e32Bf4CDfn2AgX9+f318fHx9e3t6eXp5eXt5enp5enp7e3t6e318fH9/gYKAfoB/gIB/gIGAClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5hYWMgYi9tZWRpYS9yZXMvYmJiX2FhY19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmFhYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MzExMDJkCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5hYWMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIGIvbWVkaWEvcmVzL2JiYl9hYWNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQxMjRmMzAKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2FhY19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8KQEAgLTAsMCArMSw0NjkgQEAKKzUgMTI4IDAKKzUgMTI4IDAKKzMzNyAzMiAwCiszMjIgMzIgMjEzMzMKKzI3OSAzMiA0MjY2NgorMjgwIDMyIDY0MDAwCisyODMgMzIgODUzMzMKKzMxNyAzMiAxMDY2NjYKKzMxOCAzMiAxMjgwMDAKKzMyMSAzMiAxNDkzMzMKKzMxMyAzMiAxNzA2NjYKKzMxMiAzMiAxOTIwMDAKKzMxNyAzMiAyMTMzMzMKKzMzMCAzMiAyMzQ2NjYKKzM1MCAzMiAyNTYwMDAKKzM1NSAzMiAyNzczMzMKKzMzMyAzMiAyOTg2NjYKKzMyNSAzMiAzMjAwMDAKKzM3NiAzMiAzNDEzMzMKKzMzNSAzMiAzNjI2NjYKKzM1MSAzMiAzODQwMDAKKzM1MCAzMiA0MDUzMzMKKzMzOSAzMiA0MjY2NjYKKzMyOSAzMiA0NDgwMDAKKzM1MCAzMiA0NjkzMzMKKzMzMCAzMiA0OTA2NjYKKzM1OSAzMiA1MTIwMDAKKzMxNiAzMiA1MzMzMzMKKzM0NSAzMiA1NTQ2NjYKKzM1NyAzMiA1NzYwMDAKKzMyNSAzMiA1OTczMzMKKzMzNiAzMiA2MTg2NjYKKzMzOSAzMiA2NDAwMDAKKzMxMiAzMiA2NjEzMzMKKzM1MCAzMiA2ODI2NjYKKzMzOCAzMiA3MDQwMDAKKzM1MyAzMiA3MjUzMzMKKzM0MCAzMiA3NDY2NjYKKzMzMiAzMiA3NjgwMDAKKzM0MCAzMiA3ODkzMzMKKzMzOSAzMiA4MTA2NjYKKzMzMyAzMiA4MzIwMDAKKzMzMyAzMiA4NTMzMzMKKzM0NSAzMiA4NzQ2NjYKKzM0MCAzMiA4OTYwMDAKKzM0MyAzMiA5MTczMzMKKzMzNSAzMiA5Mzg2NjYKKzMzOSAzMiA5NjAwMDAKKzM0MiAzMiA5ODEzMzMKKzM0OCAzMiAxMDAyNjY2CiszNTAgMzIgMTAyNDAwMAorMzUxIDMyIDEwNDUzMzMKKzM0MiAzMiAxMDY2NjY2CiszNjYgMzIgMTA4ODAwMAorMzQwIDMyIDExMDkzMzMKKzM1NCAzMiAxMTMwNjY2CiszNDAgMzIgMTE1MjAwMAorMzM0IDMyIDExNzMzMzMKKzMzOCAzMiAxMTk0NjY2CiszNDAgMzIgMTIxNjAwMAorMzUxIDMyIDEyMzczMzMKKzM0NiAzMiAxMjU4NjY2CiszMzEgMzIgMTI4MDAwMAorMzIxIDMyIDEzMDEzMzMKKzM0MyAzMiAxMzIyNjY2CiszNDIgMzIgMTM0NDAwMAorMzQ1IDMyIDEzNjUzMzMKKzMyNiAzMiAxMzg2NjY2CiszNDIgMzIgMTQwODAwMAorMzU2IDMyIDE0MjkzMzMKKzM1MSAzMiAxNDUwNjY2CiszNDMgMzIgMTQ3MjAwMAorMzQ3IDMyIDE0OTMzMzMKKzM0OSAzMiAxNTE0NjY2CiszNTAgMzIgMTUzNjAwMAorMzMwIDMyIDE1NTczMzMKKzM0MSAzMiAxNTc4NjY2CiszNDAgMzIgMTYwMDAwMAorMzMwIDMyIDE2MjEzMzMKKzM0MCAzMiAxNjQyNjY2CiszMzUgMzIgMTY2NDAwMAorMzQ0IDMyIDE2ODUzMzMKKzM1OSAzMiAxNzA2NjY2CiszMzcgMzIgMTcyODAwMAorMzQ2IDMyIDE3NDkzMzMKKzMzMCAzMiAxNzcwNjY2CiszNTEgMzIgMTc5MjAwMAorMzU1IDMyIDE4MTMzMzMKKzM1MiAzMiAxODM0NjY2CiszMjUgMzIgMTg1NjAwMAorMzQyIDMyIDE4NzczMzMKKzMyNyAzMiAxODk4NjY2CiszNDkgMzIgMTkyMDAwMAorMzI2IDMyIDE5NDEzMzMKKzMzNyAzMiAxOTYyNjY2CiszNzggMzIgMTk4NDAwMAorMzIxIDMyIDIwMDUzMzMKKzMxOSAzMiAyMDI2NjY2CiszNDYgMzIgMjA0ODAwMAorMzUyIDMyIDIwNjkzMzMKKzM0OSAzMiAyMDkwNjY2CiszMzEgMzIgMjExMjAwMAorMzMwIDMyIDIxMzMzMzMKKzMyOSAzMiAyMTU0NjY2CiszMzMgMzIgMjE3NjAwMAorMzY3IDMyIDIxOTczMzMKKzM2MiAzMiAyMjE4NjY2CiszMzcgMzIgMjI0MDAwMAorMzM3IDMyIDIyNjEzMzMKKzM2MCAzMiAyMjgyNjY2CiszMzMgMzIgMjMwNDAwMAorMzE3IDMyIDIzMjUzMzMKKzM0NCAzMiAyMzQ2NjY2CiszMzUgMzIgMjM2ODAwMAorMzM3IDMyIDIzODkzMzMKKzM0OSAzMiAyNDEwNjY2CiszMzYgMzIgMjQzMjAwMAorMzQ4IDMyIDI0NTMzMzMKKzM0OSAzMiAyNDc0NjY2CiszNDIgMzIgMjQ5NjAwMAorMzU5IDMyIDI1MTczMzMKKzM0MCAzMiAyNTM4NjY2CiszNDAgMzIgMjU2MDAwMAorMzQ4IDMyIDI1ODEzMzMKKzMzNCAzMiAyNjAyNjY2CiszMjggMzIgMjYyNDAwMAorMzQxIDMyIDI2NDUzMzMKKzMzOSAzMiAyNjY2NjY2CiszMzcgMzIgMjY4ODAwMAorMzUwIDMyIDI3MDkzMzMKKzMyNiAzMiAyNzMwNjY2CiszNjAgMzIgMjc1MjAwMAorMzQ0IDMyIDI3NzMzMzMKKzM0MCAzMiAyNzk0NjY2CiszNDMgMzIgMjgxNjAwMAorMzYxIDMyIDI4MzczMzMKKzMyOSAzMiAyODU4NjY2CiszNDUgMzIgMjg4MDAwMAorMzQ1IDMyIDI5MDEzMzMKKzMzMCAzMiAyOTIyNjY2CiszNDIgMzIgMjk0NDAwMAorMzQ0IDMyIDI5NjUzMzMKKzMzMCAzMiAyOTg2NjY2CiszMjkgMzIgMzAwODAwMAorMzM1IDMyIDMwMjkzMzMKKzM2NiAzMiAzMDUwNjY2CiszMjggMzIgMzA3MjAwMAorMzQ5IDMyIDMwOTMzMzMKKzMzOSAzMiAzMTE0NjY2CiszNDAgMzIgMzEzNjAwMAorMzM1IDMyIDMxNTczMzMKKzMyNyAzMiAzMTc4NjY2CiszNDggMzIgMzIwMDAwMAorMzM5IDMyIDMyMjEzMzMKKzMzNCAzMiAzMjQyNjY2CiszNTAgMzIgMzI2NDAwMAorMzI1IDMyIDMyODUzMzMKKzM2MSAzMiAzMzA2NjY2CiszMzggMzIgMzMyODAwMAorMzUwIDMyIDMzNDkzMzMKKzM1MyAzMiAzMzcwNjY2CiszMjcgMzIgMzM5MjAwMAorMzQ2IDMyIDM0MTMzMzMKKzM0OCAzMiAzNDM0NjY2CiszMzkgMzIgMzQ1NjAwMAorMzQyIDMyIDM0NzczMzMKKzMzNCAzMiAzNDk4NjY2CiszNTAgMzIgMzUyMDAwMAorMzU0IDMyIDM1NDEzMzMKKzM2MyAzMiAzNTYyNjY2CiszMjIgMzIgMzU4NDAwMAorMzM3IDMyIDM2MDUzMzMKKzM1NSAzMiAzNjI2NjY2CiszMjkgMzIgMzY0ODAwMAorMzI0IDMyIDM2NjkzMzMKKzMzOCAzMiAzNjkwNjY2CiszNTYgMzIgMzcxMjAwMAorMzMwIDMyIDM3MzMzMzMKKzMyMSAzMiAzNzU0NjY2CiszMzcgMzIgMzc3NjAwMAorMzQ1IDMyIDM3OTczMzMKKzMzNSAzMiAzODE4NjY2CiszNDggMzIgMzg0MDAwMAorMzQyIDMyIDM4NjEzMzMKKzM0OCAzMiAzODgyNjY2CiszMzUgMzIgMzkwNDAwMAorMzQ0IDMyIDM5MjUzMzMKKzM1NyAzMiAzOTQ2NjY2CiszNjggMzIgMzk2ODAwMAorMzI0IDMyIDM5ODkzMzMKKzM0MyAzMiA0MDEwNjY2CiszNDEgMzIgNDAzMjAwMAorMzI5IDMyIDQwNTMzMzMKKzM1NiAzMiA0MDc0NjY2CiszMTcgMzIgNDA5NjAwMAorMzUxIDMyIDQxMTczMzMKKzM0MCAzMiA0MTM4NjY2CiszNDAgMzIgNDE2MDAwMAorMzMyIDMyIDQxODEzMzMKKzM1NSAzMiA0MjAyNjY2CiszNTcgMzIgNDIyNDAwMAorMzI3IDMyIDQyNDUzMzMKKzMzOCAzMiA0MjY2NjY2CiszMjMgMzIgNDI4ODAwMAorMzQ2IDMyIDQzMDkzMzMKKzM1MiAzMiA0MzMwNjY2CiszNDcgMzIgNDM1MjAwMAorMzQzIDMyIDQzNzMzMzMKKzMxMSAzMiA0Mzk0NjY2CiszMzggMzIgNDQxNjAwMAorMzY1IDMyIDQ0MzczMzMKKzM0OSAzMiA0NDU4NjY2CiszMjcgMzIgNDQ4MDAwMAorMzU1IDMyIDQ1MDEzMzMKKzMxOSAzMiA0NTIyNjY2CiszNDkgMzIgNDU0NDAwMAorMzUxIDMyIDQ1NjUzMzMKKzMzNyAzMiA0NTg2NjY2CiszNDAgMzIgNDYwODAwMAorMzQ5IDMyIDQ2MjkzMzMKKzMxNiAzMiA0NjUwNjY2CiszNDQgMzIgNDY3MjAwMAorMzM0IDMyIDQ2OTMzMzMKKzM0NCAzMiA0NzE0NjY2CiszNDcgMzIgNDczNjAwMAorMzQ4IDMyIDQ3NTczMzMKKzMzNCAzMiA0Nzc4NjY2CiszMzggMzIgNDgwMDAwMAorMzMxIDMyIDQ4MjEzMzMKKzM0NCAzMiA0ODQyNjY2CiszNDIgMzIgNDg2NDAwMAorMzM2IDMyIDQ4ODUzMzMKKzMyNiAzMiA0OTA2NjY2CiszNjQgMzIgNDkyODAwMAorMzUwIDMyIDQ5NDkzMzMKKzM1MCAzMiA0OTcwNjY2CiszNjMgMzIgNDk5MjAwMAorMzU4IDMyIDUwMTMzMzMKKzMwNSAzMiA1MDM0NjY2CiszNDQgMzIgNTA1NjAwMAorMzQ2IDMyIDUwNzczMzMKKzM0MiAzMiA1MDk4NjY2CiszMzAgMzIgNTEyMDAwMAorMzE4IDMyIDUxNDEzMzMKKzM2MSAzMiA1MTYyNjY2CiszNTQgMzIgNTE4NDAwMAorMzEzIDMyIDUyMDUzMzMKKzMzMCAzMiA1MjI2NjY2CiszNTAgMzIgNTI0ODAwMAorMzQ3IDMyIDUyNjkzMzMKKzM0NiAzMiA1MjkwNjY2CiszNTcgMzIgNTMxMjAwMAorMzI1IDMyIDUzMzMzMzMKKzMzNSAzMiA1MzU0NjY2CiszMzEgMzIgNTM3NjAwMAorMzY2IDMyIDUzOTczMzMKKzMyOSAzMiA1NDE4NjY2CiszNDkgMzIgNTQ0MDAwMAorMzcxIDMyIDU0NjEzMzMKKzMyNiAzMiA1NDgyNjY2CiszMzMgMzIgNTUwNDAwMAorMzE5IDMyIDU1MjUzMzMKKzMyNyAzMiA1NTQ2NjY2CiszNTMgMzIgNTU2ODAwMAorMzU2IDMyIDU1ODkzMzMKKzM0OCAzMiA1NjEwNjY2CiszMzggMzIgNTYzMjAwMAorMzMxIDMyIDU2NTMzMzMKKzM0MSAzMiA1Njc0NjY2CiszNjIgMzIgNTY5NjAwMAorMzI2IDMyIDU3MTczMzMKKzM1OSAzMiA1NzM4NjY2CiszMTUgMzIgNTc2MDAwMAorMzc2IDMyIDU3ODEzMzMKKzM0MyAzMiA1ODAyNjY2CiszNTQgMzIgNTgyNDAwMAorMzUzIDMyIDU4NDUzMzMKKzM0NCAzMiA1ODY2NjY2CiszMzQgMzIgNTg4ODAwMAorMzQ1IDMyIDU5MDkzMzMKKzM1NSAzMiA1OTMwNjY2CiszMjIgMzIgNTk1MjAwMAorMzM0IDMyIDU5NzMzMzMKKzM1MyAzMiA1OTk0NjY2CiszMzggMzIgNjAxNjAwMAorMzUxIDMyIDYwMzczMzMKKzMzNCAzMiA2MDU4NjY2CiszMzkgMzIgNjA4MDAwMAorMzQ1IDMyIDYxMDEzMzMKKzM0NyAzMiA2MTIyNjY2CiszNTUgMzIgNjE0NDAwMAorMzEyIDMyIDYxNjUzMzMKKzM1MiAzMiA2MTg2NjY2CiszNTQgMzIgNjIwODAwMAorMzE4IDMyIDYyMjkzMzMKKzM0NCAzMiA2MjUwNjY2CiszNjMgMzIgNjI3MjAwMAorMzIxIDMyIDYyOTMzMzMKKzMzOSAzMiA2MzE0NjY2CiszNTYgMzIgNjMzNjAwMAorMzM0IDMyIDYzNTczMzMKKzM1NCAzMiA2Mzc4NjY2CiszMjUgMzIgNjQwMDAwMAorMzIxIDMyIDY0MjEzMzMKKzM0MSAzMiA2NDQyNjY2CiszMzcgMzIgNjQ2NDAwMAorMzUxIDMyIDY0ODUzMzMKKzM0MyAzMiA2NTA2NjY2CiszNDEgMzIgNjUyODAwMAorMzQ0IDMyIDY1NDkzMzMKKzM0MSAzMiA2NTcwNjY2CiszNjQgMzIgNjU5MjAwMAorMzE5IDMyIDY2MTMzMzMKKzM0OCAzMiA2NjM0NjY2CiszMzIgMzIgNjY1NjAwMAorMzMzIDMyIDY2NzczMzMKKzM0MyAzMiA2Njk4NjY2CiszNDggMzIgNjcyMDAwMAorMzQ3IDMyIDY3NDEzMzMKKzM1MCAzMiA2NzYyNjY2CiszNDIgMzIgNjc4NDAwMAorMzQxIDMyIDY4MDUzMzMKKzMyNiAzMiA2ODI2NjY2CiszNTEgMzIgNjg0ODAwMAorMzI5IDMyIDY4NjkzMzMKKzMyMyAzMiA2ODkwNjY2CiszNTAgMzIgNjkxMjAwMAorMzYxIDMyIDY5MzMzMzMKKzMyNiAzMiA2OTU0NjY2CiszNDUgMzIgNjk3NjAwMAorMzQ1IDMyIDY5OTczMzMKKzMxMSAzMiA3MDE4NjY2CiszNDkgMzIgNzA0MDAwMAorMzU4IDMyIDcwNjEzMzMKKzM1MiAzMiA3MDgyNjY2CiszNDcgMzIgNzEwNDAwMAorMzY0IDMyIDcxMjUzMzMKKzMyOCAzMiA3MTQ2NjY2CiszMTggMzIgNzE2ODAwMAorMzUxIDMyIDcxODkzMzMKKzM0MCAzMiA3MjEwNjY2CiszNDEgMzIgNzIzMjAwMAorMzU1IDMyIDcyNTMzMzMKKzMzNiAzMiA3Mjc0NjY2CiszNTIgMzIgNzI5NjAwMAorMzQxIDMyIDczMTczMzMKKzMzNCAzMiA3MzM4NjY2CiszNDggMzIgNzM2MDAwMAorMzQyIDMyIDczODEzMzMKKzMzNSAzMiA3NDAyNjY2CiszNDIgMzIgNzQyNDAwMAorMzU5IDMyIDc0NDUzMzMKKzM0OSAzMiA3NDY2NjY2CiszMjkgMzIgNzQ4ODAwMAorMzU2IDMyIDc1MDkzMzMKKzI5MiAzMiA3NTMwNjY2CiszMTYgMzIgNzU1MjAwMAorMzE4IDMyIDc1NzMzMzMKKzMyMCAzMiA3NTk0NjY2CiszNDIgMzIgNzYxNjAwMAorMjg1IDMyIDc2MzczMzMKKzMyNiAzMiA3NjU4NjY2CiszNTIgMzIgNzY4MDAwMAorMzkyIDMyIDc3MDEzMzMKKzM2NCAzMiA3NzIyNjY2CiszODQgMzIgNzc0NDAwMAorMzM0IDMyIDc3NjUzMzMKKzMxNyAzMiA3Nzg2NjY2CiszMjYgMzIgNzgwODAwMAorMzczIDMyIDc4MjkzMzMKKzM1NCAzMiA3ODUwNjY2CiszMjkgMzIgNzg3MjAwMAorMzQ3IDMyIDc4OTMzMzMKKzM1MyAzMiA3OTE0NjY2CiszMzggMzIgNzkzNjAwMAorMzE3IDMyIDc5NTczMzMKKzM1NCAzMiA3OTc4NjY2CiszNDUgMzIgODAwMDAwMAorMzUwIDMyIDgwMjEzMzMKKzM1MSAzMiA4MDQyNjY2CiszMzIgMzIgODA2NDAwMAorMzU4IDMyIDgwODUzMzMKKzMxNSAzMiA4MTA2NjY2CiszMzYgMzIgODEyODAwMAorMzU4IDMyIDgxNDkzMzMKKzM0MyAzMiA4MTcwNjY2CiszMTkgMzIgODE5MjAwMAorMzcwIDMyIDgyMTMzMzMKKzM0NCAzMiA4MjM0NjY2CiszNjEgMzIgODI1NjAwMAorMzQzIDMyIDgyNzczMzMKKzMzNyAzMiA4Mjk4NjY2CiszNTQgMzIgODMyMDAwMAorMzMyIDMyIDgzNDEzMzMKKzM0OCAzMiA4MzYyNjY2CiszMjggMzIgODM4NDAwMAorMzQ1IDMyIDg0MDUzMzMKKzM0MCAzMiA4NDI2NjY2CiszNDYgMzIgODQ0ODAwMAorMzQxIDMyIDg0NjkzMzMKKzM0NCAzMiA4NDkwNjY2CiszNDIgMzIgODUxMjAwMAorMzQxIDMyIDg1MzMzMzMKKzM0NSAzMiA4NTU0NjY2CiszMzcgMzIgODU3NjAwMAorMzM1IDMyIDg1OTczMzMKKzMzNSAzMiA4NjE4NjY2CiszNDAgMzIgODY0MDAwMAorMzQ1IDMyIDg2NjEzMzMKKzM0MSAzMiA4NjgyNjY2CiszNDIgMzIgODcwNDAwMAorMzM4IDMyIDg3MjUzMzMKKzM0MyAzMiA4NzQ2NjY2CiszMzYgMzIgODc2ODAwMAorMzM4IDMyIDg3ODkzMzMKKzM1MyAzMiA4ODEwNjY2CiszMzkgMzIgODgzMjAwMAorMzI5IDMyIDg4NTMzMzMKKzM0OSAzMiA4ODc0NjY2CiszMjMgMzIgODg5NjAwMAorMzUxIDMyIDg5MTczMzMKKzM1OSAzMiA4OTM4NjY2CiszNTcgMzIgODk2MDAwMAorMzQxIDMyIDg5ODEzMzMKKzMzMyAzMiA5MDAyNjY2CiszMzUgMzIgOTAyNDAwMAorMzI4IDMyIDkwNDUzMzMKKzM0NyAzMiA5MDY2NjY2CiszNDMgMzIgOTA4ODAwMAorMzY5IDMyIDkxMDkzMzMKKzMzMSAzMiA5MTMwNjY2CiszNDQgMzIgOTE1MjAwMAorMzMwIDMyIDkxNzMzMzMKKzM0NiAzMiA5MTk0NjY2CiszMzcgMzIgOTIxNjAwMAorMzQxIDMyIDkyMzczMzMKKzMzOCAzMiA5MjU4NjY2CiszMjkgMzIgOTI4MDAwMAorMzYwIDMyIDkzMDEzMzMKKzMzNiAzMiA5MzIyNjY2CiszNDEgMzIgOTM0NDAwMAorMzQxIDMyIDkzNjUzMzMKKzM0NSAzMiA5Mzg2NjY2CiszNTEgMzIgOTQwODAwMAorMzQ5IDMyIDk0MjkzMzMKKzMzNiAzMiA5NDUwNjY2CiszMjYgMzIgOTQ3MjAwMAorMzQ5IDMyIDk0OTMzMzMKKzM0MyAzMiA5NTE0NjY2CiszNTcgMzIgOTUzNjAwMAorMzQyIDMyIDk1NTczMzMKKzMyNSAzMiA5NTc4NjY2CiszNDYgMzIgOTYwMDAwMAorMzI2IDMyIDk2MjEzMzMKKzQwMiAzMiA5NjQyNjY2CiszMzEgMzIgOTY2NDAwMAorMzM5IDMyIDk2ODUzMzMKKzM3MSAzMiA5NzA2NjY2CiszMTQgMzIgOTcyODAwMAorMzEwIDMyIDk3NDkzMzMKKzM2NCAzMiA5NzcwNjY2CiszMzggMzIgOTc5MjAwMAorMzM5IDMyIDk4MTMzMzMKKzMzNyAzMiA5ODM0NjY2CiszNTUgMzIgOTg1NjAwMAorMzUxIDMyIDk4NzczMzMKKzMzMiAzMiA5ODk4NjY2CiszMTYgMzIgOTkyMDAwMAorNDc0IDMyIDk5NDEzMzMKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmFtcndiIGIvbWVkaWEvcmVzL2JiYl9hbXJ3Yl8xY2hfMTRrYnBzXzE2MDAwaHouYW1yd2IKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGQ4MjU5MwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmFtcndiCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfYW1yd2JfMWNoXzE0a2Jwc18xNjAwMGh6LmluZm8gYi9tZWRpYS9yZXMvYmJiX2FtcndiXzFjaF8xNGticHNfMTYwMDBoei5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcxY2ZmZWYKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2FtcndiXzFjaF8xNGticHNfMTYwMDBoei5pbmZvCkBAIC0wLDAgKzEsNDk0IEBACis0MSAzMiAwCis0MSAzMiAyMDAwMAorNDEgMzIgNDAwMDAKKzQxIDMyIDYwMDAwCis0MSAzMiA4MDAwMAorNDEgMzIgMTAwMDAwCis0MSAzMiAxMjAwMDAKKzQxIDMyIDE0MDAwMAorNDEgMzIgMTYwMDAwCis0MSAzMiAxODAwMDAKKzQxIDMyIDIwMDAwMAorNDEgMzIgMjIwMDAwCis0MSAzMiAyNDAwMDAKKzQxIDMyIDI2MDAwMAorNDEgMzIgMjgwMDAwCis0MSAzMiAzMDAwMDAKKzQxIDMyIDMyMDAwMAorNDEgMzIgMzQwMDAwCis0MSAzMiAzNjAwMDAKKzQxIDMyIDM4MDAwMAorNDEgMzIgNDAwMDAwCis0MSAzMiA0MjAwMDAKKzQxIDMyIDQ0MDAwMAorNDEgMzIgNDYwMDAwCis0MSAzMiA0ODAwMDAKKzQxIDMyIDUwMDAwMAorNDEgMzIgNTIwMDAwCis0MSAzMiA1NDAwMDAKKzQxIDMyIDU2MDAwMAorNDEgMzIgNTgwMDAwCis0MSAzMiA2MDAwMDAKKzQxIDMyIDYyMDAwMAorNDEgMzIgNjQwMDAwCis0MSAzMiA2NjAwMDAKKzQxIDMyIDY4MDAwMAorNDEgMzIgNzAwMDAwCis0MSAzMiA3MjAwMDAKKzQxIDMyIDc0MDAwMAorNDEgMzIgNzYwMDAwCis0MSAzMiA3ODAwMDAKKzQxIDMyIDgwMDAwMAorNDEgMzIgODIwMDAwCis0MSAzMiA4NDAwMDAKKzQxIDMyIDg2MDAwMAorNDEgMzIgODgwMDAwCis0MSAzMiA5MDAwMDAKKzQxIDMyIDkyMDAwMAorNDEgMzIgOTQwMDAwCis0MSAzMiA5NjAwMDAKKzQxIDMyIDk4MDAwMAorNDEgMzIgMTAwMDAwMAorNDEgMzIgMTAyMDAwMAorNDEgMzIgMTA0MDAwMAorNDEgMzIgMTA2MDAwMAorNDEgMzIgMTA4MDAwMAorNDEgMzIgMTEwMDAwMAorNDEgMzIgMTEyMDAwMAorNDEgMzIgMTE0MDAwMAorNDEgMzIgMTE2MDAwMAorNDEgMzIgMTE4MDAwMAorNDEgMzIgMTIwMDAwMAorNDEgMzIgMTIyMDAwMAorNDEgMzIgMTI0MDAwMAorNDEgMzIgMTI2MDAwMAorNDEgMzIgMTI4MDAwMAorNDEgMzIgMTMwMDAwMAorNDEgMzIgMTMyMDAwMAorNDEgMzIgMTM0MDAwMAorNDEgMzIgMTM2MDAwMAorNDEgMzIgMTM4MDAwMAorNDEgMzIgMTQwMDAwMAorNDEgMzIgMTQyMDAwMAorNDEgMzIgMTQ0MDAwMAorNDEgMzIgMTQ2MDAwMAorNDEgMzIgMTQ4MDAwMAorNDEgMzIgMTUwMDAwMAorNDEgMzIgMTUyMDAwMAorNDEgMzIgMTU0MDAwMAorNDEgMzIgMTU2MDAwMAorNDEgMzIgMTU4MDAwMAorNDEgMzIgMTYwMDAwMAorNDEgMzIgMTYyMDAwMAorNDEgMzIgMTY0MDAwMAorNDEgMzIgMTY2MDAwMAorNDEgMzIgMTY4MDAwMAorNDEgMzIgMTcwMDAwMAorNDEgMzIgMTcyMDAwMAorNDEgMzIgMTc0MDAwMAorNDEgMzIgMTc2MDAwMAorNDEgMzIgMTc4MDAwMAorNDEgMzIgMTgwMDAwMAorNDEgMzIgMTgyMDAwMAorNDEgMzIgMTg0MDAwMAorNDEgMzIgMTg2MDAwMAorNDEgMzIgMTg4MDAwMAorNDEgMzIgMTkwMDAwMAorNDEgMzIgMTkyMDAwMAorNDEgMzIgMTk0MDAwMAorNDEgMzIgMTk2MDAwMAorNDEgMzIgMTk4MDAwMAorNDEgMzIgMjAwMDAwMAorNDEgMzIgMjAyMDAwMAorNDEgMzIgMjA0MDAwMAorNDEgMzIgMjA2MDAwMAorNDEgMzIgMjA4MDAwMAorNDEgMzIgMjEwMDAwMAorNDEgMzIgMjEyMDAwMAorNDEgMzIgMjE0MDAwMAorNDEgMzIgMjE2MDAwMAorNDEgMzIgMjE4MDAwMAorNDEgMzIgMjIwMDAwMAorNDEgMzIgMjIyMDAwMAorNDEgMzIgMjI0MDAwMAorNDEgMzIgMjI2MDAwMAorNDEgMzIgMjI4MDAwMAorNDEgMzIgMjMwMDAwMAorNDEgMzIgMjMyMDAwMAorNDEgMzIgMjM0MDAwMAorNDEgMzIgMjM2MDAwMAorNDEgMzIgMjM4MDAwMAorNDEgMzIgMjQwMDAwMAorNDEgMzIgMjQyMDAwMAorNDEgMzIgMjQ0MDAwMAorNDEgMzIgMjQ2MDAwMAorNDEgMzIgMjQ4MDAwMAorNDEgMzIgMjUwMDAwMAorNDEgMzIgMjUyMDAwMAorNDEgMzIgMjU0MDAwMAorNDEgMzIgMjU2MDAwMAorNDEgMzIgMjU4MDAwMAorNDEgMzIgMjYwMDAwMAorNDEgMzIgMjYyMDAwMAorNDEgMzIgMjY0MDAwMAorNDEgMzIgMjY2MDAwMAorNDEgMzIgMjY4MDAwMAorNDEgMzIgMjcwMDAwMAorNDEgMzIgMjcyMDAwMAorNDEgMzIgMjc0MDAwMAorNDEgMzIgMjc2MDAwMAorNDEgMzIgMjc4MDAwMAorNDEgMzIgMjgwMDAwMAorNDEgMzIgMjgyMDAwMAorNDEgMzIgMjg0MDAwMAorNDEgMzIgMjg2MDAwMAorNDEgMzIgMjg4MDAwMAorNDEgMzIgMjkwMDAwMAorNDEgMzIgMjkyMDAwMAorNDEgMzIgMjk0MDAwMAorNDEgMzIgMjk2MDAwMAorNDEgMzIgMjk4MDAwMAorNDEgMzIgMzAwMDAwMAorNDEgMzIgMzAyMDAwMAorNDEgMzIgMzA0MDAwMAorNDEgMzIgMzA2MDAwMAorNDEgMzIgMzA4MDAwMAorNDEgMzIgMzEwMDAwMAorNDEgMzIgMzEyMDAwMAorNDEgMzIgMzE0MDAwMAorNDEgMzIgMzE2MDAwMAorNDEgMzIgMzE4MDAwMAorNDEgMzIgMzIwMDAwMAorNDEgMzIgMzIyMDAwMAorNDEgMzIgMzI0MDAwMAorNDEgMzIgMzI2MDAwMAorNDEgMzIgMzI4MDAwMAorNDEgMzIgMzMwMDAwMAorNDEgMzIgMzMyMDAwMAorNDEgMzIgMzM0MDAwMAorNDEgMzIgMzM2MDAwMAorNDEgMzIgMzM4MDAwMAorNDEgMzIgMzQwMDAwMAorNDEgMzIgMzQyMDAwMAorNDEgMzIgMzQ0MDAwMAorNDEgMzIgMzQ2MDAwMAorNDEgMzIgMzQ4MDAwMAorNDEgMzIgMzUwMDAwMAorNDEgMzIgMzUyMDAwMAorNDEgMzIgMzU0MDAwMAorNDEgMzIgMzU2MDAwMAorNDEgMzIgMzU4MDAwMAorNDEgMzIgMzYwMDAwMAorNDEgMzIgMzYyMDAwMAorNDEgMzIgMzY0MDAwMAorNDEgMzIgMzY2MDAwMAorNDEgMzIgMzY4MDAwMAorNDEgMzIgMzcwMDAwMAorNDEgMzIgMzcyMDAwMAorNDEgMzIgMzc0MDAwMAorNDEgMzIgMzc2MDAwMAorNDEgMzIgMzc4MDAwMAorNDEgMzIgMzgwMDAwMAorNDEgMzIgMzgyMDAwMAorNDEgMzIgMzg0MDAwMAorNDEgMzIgMzg2MDAwMAorNDEgMzIgMzg4MDAwMAorNDEgMzIgMzkwMDAwMAorNDEgMzIgMzkyMDAwMAorNDEgMzIgMzk0MDAwMAorNDEgMzIgMzk2MDAwMAorNDEgMzIgMzk4MDAwMAorNDEgMzIgNDAwMDAwMAorNDEgMzIgNDAyMDAwMAorNDEgMzIgNDA0MDAwMAorNDEgMzIgNDA2MDAwMAorNDEgMzIgNDA4MDAwMAorNDEgMzIgNDEwMDAwMAorNDEgMzIgNDEyMDAwMAorNDEgMzIgNDE0MDAwMAorNDEgMzIgNDE2MDAwMAorNDEgMzIgNDE4MDAwMAorNDEgMzIgNDIwMDAwMAorNDEgMzIgNDIyMDAwMAorNDEgMzIgNDI0MDAwMAorNDEgMzIgNDI2MDAwMAorNDEgMzIgNDI4MDAwMAorNDEgMzIgNDMwMDAwMAorNDEgMzIgNDMyMDAwMAorNDEgMzIgNDM0MDAwMAorNDEgMzIgNDM2MDAwMAorNDEgMzIgNDM4MDAwMAorNDEgMzIgNDQwMDAwMAorNDEgMzIgNDQyMDAwMAorNDEgMzIgNDQ0MDAwMAorNDEgMzIgNDQ2MDAwMAorNDEgMzIgNDQ4MDAwMAorNDEgMzIgNDUwMDAwMAorNDEgMzIgNDUyMDAwMAorNDEgMzIgNDU0MDAwMAorNDEgMzIgNDU2MDAwMAorNDEgMzIgNDU4MDAwMAorNDEgMzIgNDYwMDAwMAorNDEgMzIgNDYyMDAwMAorNDEgMzIgNDY0MDAwMAorNDEgMzIgNDY2MDAwMAorNDEgMzIgNDY4MDAwMAorNDEgMzIgNDcwMDAwMAorNDEgMzIgNDcyMDAwMAorNDEgMzIgNDc0MDAwMAorNDEgMzIgNDc2MDAwMAorNDEgMzIgNDc4MDAwMAorNDEgMzIgNDgwMDAwMAorNDEgMzIgNDgyMDAwMAorNDEgMzIgNDg0MDAwMAorNDEgMzIgNDg2MDAwMAorNDEgMzIgNDg4MDAwMAorNDEgMzIgNDkwMDAwMAorNDEgMzIgNDkyMDAwMAorNDEgMzIgNDk0MDAwMAorNDEgMzIgNDk2MDAwMAorNDEgMzIgNDk4MDAwMAorNDEgMzIgNTAwMDAwMAorNDEgMzIgNTAyMDAwMAorNDEgMzIgNTA0MDAwMAorNDEgMzIgNTA2MDAwMAorNDEgMzIgNTA4MDAwMAorNDEgMzIgNTEwMDAwMAorNDEgMzIgNTEyMDAwMAorNDEgMzIgNTE0MDAwMAorNDEgMzIgNTE2MDAwMAorNDEgMzIgNTE4MDAwMAorNDEgMzIgNTIwMDAwMAorNDEgMzIgNTIyMDAwMAorNDEgMzIgNTI0MDAwMAorNDEgMzIgNTI2MDAwMAorNDEgMzIgNTI4MDAwMAorNDEgMzIgNTMwMDAwMAorNDEgMzIgNTMyMDAwMAorNDEgMzIgNTM0MDAwMAorNDEgMzIgNTM2MDAwMAorNDEgMzIgNTM4MDAwMAorNDEgMzIgNTQwMDAwMAorNDEgMzIgNTQyMDAwMAorNDEgMzIgNTQ0MDAwMAorNDEgMzIgNTQ2MDAwMAorNDEgMzIgNTQ4MDAwMAorNDEgMzIgNTUwMDAwMAorNDEgMzIgNTUyMDAwMAorNDEgMzIgNTU0MDAwMAorNDEgMzIgNTU2MDAwMAorNDEgMzIgNTU4MDAwMAorNDEgMzIgNTYwMDAwMAorNDEgMzIgNTYyMDAwMAorNDEgMzIgNTY0MDAwMAorNDEgMzIgNTY2MDAwMAorNDEgMzIgNTY4MDAwMAorNDEgMzIgNTcwMDAwMAorNDEgMzIgNTcyMDAwMAorNDEgMzIgNTc0MDAwMAorNDEgMzIgNTc2MDAwMAorNDEgMzIgNTc4MDAwMAorNDEgMzIgNTgwMDAwMAorNDEgMzIgNTgyMDAwMAorNDEgMzIgNTg0MDAwMAorNDEgMzIgNTg2MDAwMAorNDEgMzIgNTg4MDAwMAorNDEgMzIgNTkwMDAwMAorNDEgMzIgNTkyMDAwMAorNDEgMzIgNTk0MDAwMAorNDEgMzIgNTk2MDAwMAorNDEgMzIgNTk4MDAwMAorNDEgMzIgNjAwMDAwMAorNDEgMzIgNjAyMDAwMAorNDEgMzIgNjA0MDAwMAorNDEgMzIgNjA2MDAwMAorNDEgMzIgNjA4MDAwMAorNDEgMzIgNjEwMDAwMAorNDEgMzIgNjEyMDAwMAorNDEgMzIgNjE0MDAwMAorNDEgMzIgNjE2MDAwMAorNDEgMzIgNjE4MDAwMAorNDEgMzIgNjIwMDAwMAorNDEgMzIgNjIyMDAwMAorNDEgMzIgNjI0MDAwMAorNDEgMzIgNjI2MDAwMAorNDEgMzIgNjI4MDAwMAorNDEgMzIgNjMwMDAwMAorNDEgMzIgNjMyMDAwMAorNDEgMzIgNjM0MDAwMAorNDEgMzIgNjM2MDAwMAorNDEgMzIgNjM4MDAwMAorNDEgMzIgNjQwMDAwMAorNDEgMzIgNjQyMDAwMAorNDEgMzIgNjQ0MDAwMAorNDEgMzIgNjQ2MDAwMAorNDEgMzIgNjQ4MDAwMAorNDEgMzIgNjUwMDAwMAorNDEgMzIgNjUyMDAwMAorNDEgMzIgNjU0MDAwMAorNDEgMzIgNjU2MDAwMAorNDEgMzIgNjU4MDAwMAorNDEgMzIgNjYwMDAwMAorNDEgMzIgNjYyMDAwMAorNDEgMzIgNjY0MDAwMAorNDEgMzIgNjY2MDAwMAorNDEgMzIgNjY4MDAwMAorNDEgMzIgNjcwMDAwMAorNDEgMzIgNjcyMDAwMAorNDEgMzIgNjc0MDAwMAorNDEgMzIgNjc2MDAwMAorNDEgMzIgNjc4MDAwMAorNDEgMzIgNjgwMDAwMAorNDEgMzIgNjgyMDAwMAorNDEgMzIgNjg0MDAwMAorNDEgMzIgNjg2MDAwMAorNDEgMzIgNjg4MDAwMAorNDEgMzIgNjkwMDAwMAorNDEgMzIgNjkyMDAwMAorNDEgMzIgNjk0MDAwMAorNDEgMzIgNjk2MDAwMAorNDEgMzIgNjk4MDAwMAorNDEgMzIgNzAwMDAwMAorNDEgMzIgNzAyMDAwMAorNDEgMzIgNzA0MDAwMAorNDEgMzIgNzA2MDAwMAorNDEgMzIgNzA4MDAwMAorNDEgMzIgNzEwMDAwMAorNDEgMzIgNzEyMDAwMAorNDEgMzIgNzE0MDAwMAorNDEgMzIgNzE2MDAwMAorNDEgMzIgNzE4MDAwMAorNDEgMzIgNzIwMDAwMAorNDEgMzIgNzIyMDAwMAorNDEgMzIgNzI0MDAwMAorNDEgMzIgNzI2MDAwMAorNDEgMzIgNzI4MDAwMAorNDEgMzIgNzMwMDAwMAorNDEgMzIgNzMyMDAwMAorNDEgMzIgNzM0MDAwMAorNDEgMzIgNzM2MDAwMAorNDEgMzIgNzM4MDAwMAorNDEgMzIgNzQwMDAwMAorNDEgMzIgNzQyMDAwMAorNDEgMzIgNzQ0MDAwMAorNDEgMzIgNzQ2MDAwMAorNDEgMzIgNzQ4MDAwMAorNDEgMzIgNzUwMDAwMAorNDEgMzIgNzUyMDAwMAorNDEgMzIgNzU0MDAwMAorNDEgMzIgNzU2MDAwMAorNDEgMzIgNzU4MDAwMAorNDEgMzIgNzYwMDAwMAorNDEgMzIgNzYyMDAwMAorNDEgMzIgNzY0MDAwMAorNDEgMzIgNzY2MDAwMAorNDEgMzIgNzY4MDAwMAorNDEgMzIgNzcwMDAwMAorNDEgMzIgNzcyMDAwMAorNDEgMzIgNzc0MDAwMAorNDEgMzIgNzc2MDAwMAorNDEgMzIgNzc4MDAwMAorNDEgMzIgNzgwMDAwMAorNDEgMzIgNzgyMDAwMAorNDEgMzIgNzg0MDAwMAorNDEgMzIgNzg2MDAwMAorNDEgMzIgNzg4MDAwMAorNDEgMzIgNzkwMDAwMAorNDEgMzIgNzkyMDAwMAorNDEgMzIgNzk0MDAwMAorNDEgMzIgNzk2MDAwMAorNDEgMzIgNzk4MDAwMAorNDEgMzIgODAwMDAwMAorNDEgMzIgODAyMDAwMAorNDEgMzIgODA0MDAwMAorNDEgMzIgODA2MDAwMAorNDEgMzIgODA4MDAwMAorNDEgMzIgODEwMDAwMAorNDEgMzIgODEyMDAwMAorNDEgMzIgODE0MDAwMAorNDEgMzIgODE2MDAwMAorNDEgMzIgODE4MDAwMAorNDEgMzIgODIwMDAwMAorNDEgMzIgODIyMDAwMAorNDEgMzIgODI0MDAwMAorNDEgMzIgODI2MDAwMAorNDEgMzIgODI4MDAwMAorNDEgMzIgODMwMDAwMAorNDEgMzIgODMyMDAwMAorNDEgMzIgODM0MDAwMAorNDEgMzIgODM2MDAwMAorNDEgMzIgODM4MDAwMAorNDEgMzIgODQwMDAwMAorNDEgMzIgODQyMDAwMAorNDEgMzIgODQ0MDAwMAorNDEgMzIgODQ2MDAwMAorNDEgMzIgODQ4MDAwMAorNDEgMzIgODUwMDAwMAorNDEgMzIgODUyMDAwMAorNDEgMzIgODU0MDAwMAorNDEgMzIgODU2MDAwMAorNDEgMzIgODU4MDAwMAorNDEgMzIgODYwMDAwMAorNDEgMzIgODYyMDAwMAorNDEgMzIgODY0MDAwMAorNDEgMzIgODY2MDAwMAorNDEgMzIgODY4MDAwMAorNDEgMzIgODcwMDAwMAorNDEgMzIgODcyMDAwMAorNDEgMzIgODc0MDAwMAorNDEgMzIgODc2MDAwMAorNDEgMzIgODc4MDAwMAorNDEgMzIgODgwMDAwMAorNDEgMzIgODgyMDAwMAorNDEgMzIgODg0MDAwMAorNDEgMzIgODg2MDAwMAorNDEgMzIgODg4MDAwMAorNDEgMzIgODkwMDAwMAorNDEgMzIgODkyMDAwMAorNDEgMzIgODk0MDAwMAorNDEgMzIgODk2MDAwMAorNDEgMzIgODk4MDAwMAorNDEgMzIgOTAwMDAwMAorNDEgMzIgOTAyMDAwMAorNDEgMzIgOTA0MDAwMAorNDEgMzIgOTA2MDAwMAorNDEgMzIgOTA4MDAwMAorNDEgMzIgOTEwMDAwMAorNDEgMzIgOTEyMDAwMAorNDEgMzIgOTE0MDAwMAorNDEgMzIgOTE2MDAwMAorNDEgMzIgOTE4MDAwMAorNDEgMzIgOTIwMDAwMAorNDEgMzIgOTIyMDAwMAorNDEgMzIgOTI0MDAwMAorNDEgMzIgOTI2MDAwMAorNDEgMzIgOTI4MDAwMAorNDEgMzIgOTMwMDAwMAorNDEgMzIgOTMyMDAwMAorNDEgMzIgOTM0MDAwMAorNDEgMzIgOTM2MDAwMAorNDEgMzIgOTM4MDAwMAorNDEgMzIgOTQwMDAwMAorNDEgMzIgOTQyMDAwMAorNDEgMzIgOTQ0MDAwMAorNDEgMzIgOTQ2MDAwMAorNDEgMzIgOTQ4MDAwMAorNDEgMzIgOTUwMDAwMAorNDEgMzIgOTUyMDAwMAorNDEgMzIgOTU0MDAwMAorNDEgMzIgOTU2MDAwMAorNDEgMzIgOTU4MDAwMAorNDEgMzIgOTYwMDAwMAorNDEgMzIgOTYyMDAwMAorNDEgMzIgOTY0MDAwMAorNDEgMzIgOTY2MDAwMAorNDEgMzIgOTY4MDAwMAorNDEgMzIgOTcwMDAwMAorNDEgMzIgOTcyMDAwMAorNDEgMzIgOTc0MDAwMAorNDEgMzIgOTc2MDAwMAorNDEgMzIgOTc4MDAwMAorNDEgMzIgOTgwMDAwMAorNDEgMzIgOTgyMDAwMAorNDEgMzIgOTg0MDAwMAorNDEgMzIgOTg2MDAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9hdmNfMTkyMHgxMDgwXzUwMDBrYnBzXzMwZnBzLmgyNjQgYi9tZWRpYS9yZXMvYmJiX2F2Y18xOTIweDEwODBfNTAwMGticHNfMzBmcHMuaDI2NApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjhmOWViCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9hdmNfMTkyMHgxMDgwXzUwMDBrYnBzXzMwZnBzLmgyNjQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9hdmNfMTkyMHgxMDgwXzUwMDBrYnBzXzMwZnBzLmluZm8gYi9tZWRpYS9yZXMvYmJiX2F2Y18xOTIweDEwODBfNTAwMGticHNfMzBmcHMuaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWFmOTc0Ci0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9hdmNfMTkyMHgxMDgwXzUwMDBrYnBzXzMwZnBzLmluZm8KQEAgLTAsMCArMSwyNDIgQEAKKzMxIDEyOCAwCis4IDEyOCAwCis0ODE3MDIgMzIgMAorMTM3ODk1IDAgMzMzMzMKKzgxODYzIDAgMTAwMDAwCis5ODkxNCAwIDEzMzMzMworNjg1NSAwIDE2NjY2NgorMjczOCAwIDIwMDAwMAorMTM0MCAwIDI2NjY2NgorMTY4MCAwIDMwMDAwMAorMjIxNyAwIDMzMzMzMworMzI3NSAwIDM2NjY2NgorMzUwOSAwIDQzMzMzMworNDY4OCAwIDQ2NjY2NgorNDk5NiAwIDUwMDAwMAorNjA1NyAwIDUzMzMzMworNzA2MSAwIDYwMDAwMAorNzQyNyAwIDYzMzMzMworNzQ4NCAwIDY2NjY2NgorODM2MSAwIDcwMDAwMAorNzgwMyAwIDc2NjY2NgorODUwNiAwIDgwMDAwMAorODEzMiAwIDgzMzMzMworODY1MSAwIDg2NjY2NgorODQyNCAwIDkzMzMzMworODg2MSAwIDk2NjY2NgorOTAwNCAwIDEwMDAwMDAKKzk0MzEgMCAxMDMzMzMzCis4ODU0IDAgMTEwMDAwMAorOTY4MSAwIDExMzMzMzMKKzk0OTggMCAxMTY2NjY2Cis5Njk0IDAgMTIwMDAwMAorMTc1NzEgMCAxMjY2NjY2CisxMDAyOSAwIDEzMDAwMDAKKzEwMDIyIDAgMTMzMzMzMworOTkzOSAwIDEzNjY2NjYKKzg0MjcgMCAxNDMzMzMzCis5NTIyIDAgMTQ2NjY2NgorNzE5MiAwIDE1MDAwMDAKKzk4NDQgMCAxNTMzMzMzCis1NjkzIDAgMTYwMDAwMAorODA1NyAwIDE2MzMzMzMKKzU5OTcgMCAxNjY2NjY2Cis0MDI4IDAgMTcwMDAwMAorMjMwMyAwIDE3NjY2NjYKKzg0NSAwIDE4MDAwMDAKKzE5MTQxNCAzMiAxODMzMzMzCisxMzI2NiAwIDE4NjY2NjYKKzE2MTIwIDAgMTkzMzMzMworMTk3NTEgMCAxOTY2NjY2Cis2NTU5IDAgMjAwMDAwMAorODA5OCAwIDIwMzMzMzMKKzg1OTYgMCAyMTAwMDAwCis5MzMxIDAgMjEzMzMzMworOTkwOCAwIDIxNjY2NjYKKzEzODQzIDAgMjIwMDAwMAorMTM3NzYgMCAyMjY2NjY2CisxNDU1NiAwIDIzMDAwMDAKKzE0NTI0IDAgMjMzMzMzMworMTUwODkgMCAyMzY2NjY2CisxNDY2NiAwIDI0MzMzMzMKKzE1NTUyIDAgMjQ2NjY2NgorMTUwMjAgMCAyNTAwMDAwCisxNjUwNiAwIDI1MzMzMzMKKzE1NjY0IDAgMjYwMDAwMAorMTY0OTkgMCAyNjMzMzMzCisxNjExMyAwIDI2NjY2NjYKKzE2OTI0IDAgMjcwMDAwMAorMTU5NDggMCAyNzY2NjY2CisxNzIxOSAwIDI4MDAwMDAKKzE2NDQ4IDAgMjgzMzMzMworMTc3MjkgMCAyODY2NjY2CisxNjg4NCAwIDI5MzMzMzMKKzE3OTQxIDAgMjk2NjY2NgorMTcyMTUgMCAzMDAwMDAwCisxODE1OSAwIDMwMzMzMzMKKzE3NDI0IDAgMzEwMDAwMAorMTg0NzkgMCAzMTMzMzMzCisxNzI1NSAwIDMxNjY2NjYKKzE4NDYzIDAgMzIwMDAwMAorMTg3MjMgMCAzMjY2NjY2CisxOTI5MSAwIDMzMDAwMDAKKzE4Mjk3IDAgMzMzMzMzMworMTk2MzMgMCAzMzY2NjY2CisxODcxOSAwIDM0MzMzMzMKKzIwMzIzIDAgMzQ2NjY2NgorMTcwMzUgMCAzNTAwMDAwCisxOTA3MSAwIDM1MzMzMzMKKzE3OTIxIDAgMzYwMDAwMAorMTkxOTggMCAzNjMzMzMzCisxODcyMyAwIDM2NjY2NjYKKzE5MDM2IDAgMzcwMDAwMAorMTg3MzUgMCAzNzY2NjY2CisxOTYxMyAwIDM4MDAwMDAKKzE4NTM3IDAgMzgzMzMzMworMjA4NjggMCAzODY2NjY2CisxNjczMSAwIDM5MzMzMzMKKzE5MzgwIDAgMzk2NjY2NgorMTg0MDkgMCA0MDAwMDAwCisxOTU4MCAwIDQwMzMzMzMKKzE4NDY1IDAgNDEwMDAwMAorMjAxMDQgMCA0MTMzMzMzCisxNjc4MyAwIDQxNjY2NjYKKzE5MzQxIDAgNDIwMDAwMAorMTg2NzQgMCA0MjY2NjY2CisxOTk4MyAwIDQzMDAwMDAKKzE5MTU0IDAgNDMzMzMzMworMTk3NTAgMCA0MzY2NjY2CisxOTQ4MyAwIDQ0MzMzMzMKKzIxMjA2IDAgNDQ2NjY2NgorMTc2MDggMCA0NTAwMDAwCisyMDIyMCAwIDQ1MzMzMzMKKzE4OTE4IDAgNDYwMDAwMAorMTk0OTQgMCA0NjMzMzMzCisxOTA3MiAwIDQ2NjY2NjYKKzE5Nzg2IDAgNDcwMDAwMAorMTg1NDAgMCA0NzY2NjY2CisxOTYzOCAwIDQ4MDAwMDAKKzE4NjU2IDAgNDgzMzMzMworMTk0NTMgMCA0ODY2NjY2CisxOTY3MyAwIDQ5MzMzMzMKKzE3NjE2IDAgNDk2NjY2NgorMTgzMTcgMCA1MDAwMDAwCisxODc0OSAwIDUwMzMzMzMKKzE4MTkzIDAgNTEwMDAwMAorMTg3MzIgMCA1MTMzMzMzCisxODE4NiAwIDUxNjY2NjYKKzE4MjcxIDAgNTIwMDAwMAorMTgyNTYgMCA1MjY2NjY2CisxNjgwNiAwIDUzMDAwMDAKKzE3MTE5IDAgNTMzMzMzMworMTY0NjYgMCA1MzY2NjY2CisxNTMxNSAwIDU0MzMzMzMKKzE0ODc3IDAgNTQ2NjY2NgorMTMyMzUgMCA1NTAwMDAwCisxMzAyNSAwIDU1MzMzMzMKKzEwMzA1IDAgNTYwMDAwMAorMTAxMjAgMCA1NjMzMzMzCis3NzA2IDAgNTY2NjY2NgorMTEyNjk4IDMyIDU3MDAwMDAKKzE1NDQgMCA1NzY2NjY2CisxMjg1IDAgNTgwMDAwMAorMTU3NiAwIDU4MzMzMzMKKzE3MTQgMCA1ODY2NjY2CisxMzg0IDAgNTkzMzMzMworMTU1MSAwIDU5NjY2NjYKKzM5MTYgMCA2MDAwMDAwCis4MDE5IDAgNjAzMzMzMworODMwNCAwIDYxMDAwMDAKKzg0MTYgMCA2MTMzMzMzCis4MDg2IDAgNjE2NjY2NgorODQ1MiAwIDYyMDAwMDAKKzkyMDUgMCA2MjY2NjY2CisxMTA5OCAwIDYzMDAwMDAKKzE5ODA1IDAgNjMzMzMzMworMTgyOTIgMCA2MzY2NjY2CisxNDk3NCAwIDY0MzMzMzMKKzEwNDI1IDAgNjQ2NjY2NgorOTk5NyAwIDY1MDAwMDAKKzg4MzIgMCA2NTMzMzMzCis3OTA5IDAgNjYwMDAwMAorNjQwMCAwIDY2MzMzMzMKKzU5MzkgMCA2NjY2NjY2Cis1OTY1IDAgNjcwMDAwMAorNjIyMSAwIDY3NjY2NjYKKzY1MjIgMCA2ODAwMDAwCis3MDYyIDAgNjgzMzMzMworNjg3NyAwIDY4NjY2NjYKKzY4NTkgMCA2OTMzMzMzCis2NTUwIDAgNjk2NjY2NgorNjEyNyAwIDcwMDAwMDAKKzUzODYgMCA3MDMzMzMzCis1MDkyIDAgNzEwMDAwMAorNDM3MCAwIDcxMzMzMzMKKzQwNDggMCA3MTY2NjY2CiszOTIyIDAgNzIwMDAwMAorMTE0NTMgMCA3MjY2NjY2CisxNjA0MSAwIDczMDAwMDAKKzE2NzU2IDAgNzMzMzMzMworODYxNiAwIDczNjY2NjYKKzk4NTYgMCA3NDMzMzMzCisxNDk5NyAwIDc0NjY2NjYKKzE4MzY1IDAgNzUwMDAwMAorMjEyOTUgMCA3NTMzMzMzCisxOTMzNSAwIDc2MDAwMDAKKzEzNjg5IDAgNzYzMzMzMworMTQxNDcgMCA3NjY2NjY2CisxMzE5OCAwIDc3MDAwMDAKKzEwOTk5IDAgNzc2NjY2NgorNzcyNiAwIDc4MDAwMDAKKzg3NDQgMCA3ODMzMzMzCisxMTMyMSAwIDc4NjY2NjYKKzE0ODQwIDAgNzkzMzMzMworMjE3MDIgMCA3OTY2NjY2CisyNzA5MSAwIDgwMDAwMDAKKzI4OTkyIDAgODAzMzMzMworMjYzOTEgMCA4MTAwMDAwCisxMzgwOSAwIDgxMzMzMzMKKzExMTk2IDAgODE2NjY2NgorMTA0OTQgMCA4MjAwMDAwCis5OTIxIDAgODI2NjY2NgorNzYzNyAwIDgzMDAwMDAKKzczMDEgMCA4MzMzMzMzCis2ODkwIDAgODM2NjY2NgorOTA1OSAwIDg0MzMzMzMKKzkzMjQgMCA4NDY2NjY2CisxMDI3NyAwIDg1MDAwMDAKKzEwNDM2IDAgODUzMzMzMworMTA2MzUgMCA4NjAwMDAwCis5NTU0IDAgODYzMzMzMworODI2OCAwIDg2NjY2NjYKKzg0NTAgMCA4NzAwMDAwCis4NDMwIDAgODc2NjY2NgorODI1OCAwIDg4MDAwMDAKKzg4NzkgMCA4ODMzMzMzCis4MDUwIDAgODg2NjY2NgorNzk2MyAwIDg5MzMzMzMKKzg5NzQgMCA4OTY2NjY2CisxMDAzNyAwIDkwMDAwMDAKKzg1NDcgMCA5MDMzMzMzCis2NDI0IDAgOTEwMDAwMAorNTY3MiAwIDkxMzMzMzMKKzYxNTkgMCA5MTY2NjY2Cis2NDk4IDAgOTIwMDAwMAorNzA2NCAwIDkyNjY2NjYKKzY2NzMgMCA5MzAwMDAwCis2OTU5IDAgOTMzMzMzMworNjIyNiAwIDkzNjY2NjYKKzYzMTIgMCA5NDMzMzMzCis4ODkzIDAgOTQ2NjY2NgorODI1MyAwIDk1MDAwMDAKKzU4NzYgMCA5NTMzMzMzCis1ODY3IDAgOTYwMDAwMAorNjIxMiAwIDk2MzMzMzMKKzY5ODQgMCA5NjY2NjY2Cis2MjIwIDAgOTcwMDAwMAorNjk5MyAwIDk3NjY2NjYKKzE1MDE0IDAgOTgwMDAwMAorMjIzOTAgMCA5ODMzMzMzCisyOTU1MiAwIDk4NjY2NjYKKzI0MDI0IDAgOTkzMzMzMworMTU4MjAgMCA5OTY2NjY2CmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2c3MTFhbGF3XzFjaF84a2h6LmluZm8gYi9tZWRpYS9yZXMvYmJiX2c3MTFhbGF3XzFjaF84a2h6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmZmZTM1OAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfZzcxMWFsYXdfMWNoXzhraHouaW5mbwpAQCAtMCwwICsxLDEwIEBACis4MTkyIDMyIDAKKzgxOTIgMzIgMTAyNDAwMAorODE5MiAzMiAyMDQ4MDAwCis4MTkyIDMyIDMwNzIwMDAKKzgxOTIgMzIgNDA5NjAwMAorODE5MiAzMiA1MTIwMDAwCis4MTkyIDMyIDYxNDQwMDAKKzgxOTIgMzIgNzE2ODAwMAorODE5MiAzMiA4MTkyMDAwCis1NDYyIDMyIDkyMTYwMDAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2c3MTFhbGF3XzFjaF84a2h6LnJhdyBiL21lZGlhL3Jlcy9iYmJfZzcxMWFsYXdfMWNoXzhraHoucmF3Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNmYzRhMTEKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2c3MTFhbGF3XzFjaF84a2h6LnJhdwpAQCAtMCwwICsxIEBACitrb2dPx8XY1Up2Q3VzWNPVSXZKfn1LdVldwcjE9PT0ythJcnRCUlTz+cfaxtZUxfns7OP/1U9lYn3Z/u3p6+HBW3NnZ0T05eDg4OXGXkxMS39lWlFJ2ffx81B2eG5tcFXk7eT+3GBoFxRmdvno7+bnw3VnbX90ZXdYW99fWNjE1M/P2MFY0NZ5ZX9ncVLb+OX/4fhUR2VzRnxPwvXJ0FnfWXXC5u+V5shKaxARa3f465CX58d3YmltTPnk5uzk2EN6fHlicMPl4+fh6Phbdnh4SkL0//X+9F1xZ2F1X9374OPlwsZWZXxVwVRPcElwYGRx0PTB9+TYTEJGS3JldnR5c2dmfXNP1EJxUtzcRnHczU5OTXF3WsL75+X79NlzaWHY++Po6u39W2ViZtzk6ZeV6O/4WXhkeHxK9+fk6JTq4thzeGdmZnnE/NlQTGRme0/azPbx0UBxYG96QM7l/8vaX31ibEPw5ef53UZmaW1iZFvN5OVWRkhyfHxkdlzYx19F29ZJcGF+0Pb64+fwUnx/YG9w8e2U7fj0RGRua2Td5JeWlevu/dVwcENE2PbxzcnE9vHdW8fDU397UtPczM9U3FNX1FDVzsnI1XZGRVb3+M1dcUtyY2dV5O3nxtRIYGtuY353w/vJU0FDd3hjZmR4fntmZ2d8TGRmfNP1xdX299BNf2dnZ0bn6ZeRkZfhQn1M3O2Xk5yTle3UeHx19OX18fzSxdvA8VN1XHFmZ3tYxEFzS3dbV01eWHN2cmF9Rc3g+PH/U3J9YGVyT+Xp4Of2XHRqEGpk2eHm+sx2Zm9qYEPR8/BTTnN6f3hjZ2B92d/B5+TnyHh6fED85OXi/9hVc39I1uTu6Ori5uH42F5RxPb3wsbx8vPY0MzOz8NEeWdmc0TZ8v7m7ufHX1rfV012fU/TWETcychXeGJrbUzf/uXATmRpFxMVc9bb3U12Tn9kY3p1R1DO/fz58FB2fmVAzOTh5P/7wtXTdVDw98/G9OD/0F15Y2Rwze3t7+HwXGRhRcr65vnQRFpeVMbglOrk9Vp1cmR8V8T64+uX4PzwUHthY0jM8PnES3Nja2kVYnfW0lde1Hxua2oVa2FBzcPfXVNkbG59xff/+spBdX5yclj85/XIw/3n/eTk8ddERcfVz+Ht4MpGQkRJ1tbGwtvd3VNV091cdUpCXF9dVV5AUNj4+szLzER9Z0jl7ZWW6u/k8fr/8eXn5uT+4e7g+9t+axViWsn67O7wZxYdEBdrZ3N5ZG8UERIRb2FxV9TRRnxhFRdpZVLA9//890lkZXBE3cHL13d0SFzGwffn+PDH3dtXdnxmZVXy5fv75+VRSktT9uCVl+/DQHN5ctTllJTs4+Tk4+b3wNXw5OHol5Xv+8L2wNrExVNYcVLD3NxacX17Y2Jsek5Kc3lvFWtgcV9VQXtpaxcUY0hAfWZkX9rIzdRXUXJB19/NyM9efk7G0dr28f3+8/daQ9Hw5uX09fnCTnZc11fF+OHg4uVHZm1iReXrkZCRlfzIxkHT5O3o4uDs91BTU8z3UVDEz9rFwt9naGJlfHZFcXhjbmtvbXxGRndkfHVmaGR6c3BLUEt/R1NBdGFkTcLbxMHIRnx0XPLtleDMWVZT39/Dy83C2Mv4+8DK0n1tYUjZzufs7eDOTXxxckpaxMfL5OHk5eTx0vXj7+iUl+79X0tfz/fY2MLaU9jFUUlFd2VkZHh4fX9hb2NkfnN6e0p9bhMSam14UPb+8txHSklexfHl8NL0zVFaREbW9eXnzdDbSGRsaXteXNv65fNEeXJibn1bVcDe9OPm5/tX18fE7ZSXnZPp+sPI5uXn6eT5/dfBzdTe887cd3pFXkhSTndBfXBBc3h+bGoVanxAd1xPenh6dFxzZmVmfktI9/vDUUFPWNb2+PL1x1tDdmdJ2fb588fQRnXR1kBS3FTXVMf28FB5Z3ZxTfb9/ufg7eHeQHBzTlfL5eT6/cvxwczl/MT++v7KzdZU193z+eb6ytNaeGVwXt9V1ttYS1J2f01XV8nTWEdKQX5gYGJiWPDl+cbTUGVhdnHR/8nCz3FjZmRmZWV/c0rSVXJsamhnTf3hydXXdk13bGZQVcDzxtrA/u/r4/rA2vP64+P5+OH64uzn4OPIzfDRTF3F+OX08cj+89Hfw07Xydj3W2Z5cmB+fGdmS17a0k5KSEBzfHx/amF3cXRIfNrZZExxZnBYX/73U3F5fnp3zfz/7f1QZGhpc1nJ5v3FxcrI/t53d9BUVfD788fRRllKcEPz8/bMRUlc0vPg5eXm4/3Lzlh1xczD//D84+D3X3l5dc/tlJTnRnJ8ZUxRRM/429jef2Zlf0tCd3N8dUJ0Qn1gckl8WVlC9NZ+c2BqZUFU0FpCTUbdVl7NWHVWRndbc3xAT0LWTHLYyfH4zkBbUs7+//rWRNjUxePh75Tg8s5cxufk4/7WQFna/+fs4/Lz1WVgenpF2Pf45PfFzt/GVXVwRtn65PdAfnZwdtfeVvbMUEtlZnBISXJ5dnVMfGFtaxMRFGpgZXh9f2NtbWNkU//n5clIeHl+1/H1zObg+/7z/ebg7erv5/nm4frw/eXj6O+VlO3j4MnSxcXw5eTl+sBCcnZweXh9SVzeyvJTZ2dydFHe3/b499FQd3NfysJDc2Vnenp7cGVlfXtkemV8c2BsY2dsaGF7YWBiahVsYX59Z3PS/uDm9trFx/Pk5f3n6e7g4eHj6Orq6unj7Ojv5vn+5efh4u7j+f/ETX18ZWVycUREfWFhfnx/SUTc9fv6z3xsYXp+d0dXzfTN2ll+c0xHQ0TRUEVGTnZ8f3XezdrYW3Nkb25taRRoYGFiaRUWFhVpYWdkcF/VUERLTdH94uns7eqRlpGQk52dnJyfkpCQlujg5+fg4+H7yXVnZ3BJ387d1tRSRnxjYGR+c3VP1MP29sFQfXNX3tXcUUVU097K30BOc395eWRkZmZhY2Jiel9cREV8Z2ZgZnxgbGJubmkVa25sZ3xzcEJTw9zf3l7Rz/D55PP94ef65OTs7uuWk5CXlO7o6OqUlZaRl5Xk29TaxMP0y/Px//ncdH1wXM3z8fn9zMxUVk1zSV9MdUt8enpkZ21pb2xnZGBsFRERFW5jZmR6ZmxpFRRpfkxTVkVY0d3VWEBHVPLk5ffGxs/EwvL98PLz9cnY0dz3y/b8/Pz/5uHl9s7I9Pzm4+Pj6eqV7/754e3m5eX65eDu7+fz8ufm5Of98/XPwlV9bWgVFWhtb2oVamgVEBYVaW5qahYWFG98THZCU1TXX3N7ZH1Z199SXNFWUFlxcE3c+ef2x/X8+uTh5/j+++zo4/7E3NFT0NTY8eXn/ld0R1rJ5uDt5vj69NNHRtv38+Xh5f/z/Pn08fD77Ozo4v7yy8rAXnR6Z3p5f3BnYXx7cHNkfmdsaRQXEx0QF2ttb2JhbW1ib2Jhd9few0F0RXFa30Re08bl5/3w9PP29/zZUMr+4eL78vLw/ubg5/7k+Pvn8fT88frv7Ozu6JXt80R6XMPw7eTOyNFXx1TR/OTj4uPh9cvFWFhxZHxxcEx1YWoUbmd0cmNgbhcVFxdrbXh5ZWFpbGZjYWZpbX59RkB9fWRkZHt8clbz5ODl21fYzv/k5P7P8PP2/NnF8/rpleP/8fXL9ffK8OHi4+n7z/77+/30y8nxysP3z9r95eXn/fb65O3o4/FfUVVb0VNxcXJ5dHR+fHdGd2FqERcXFmoXEhMRFG9jYWFmZGJjZmJxwcDI2FHR0VDW1ExKUc78+/deTkpwXMXKz8312VZZRtT95uzj/Pnn5+Lm+efm4u3p6ODm5vvxzMfD/Pvm+vfCQlrR9P71/vr55v3WW1La3tFeSWdgYmx4Z2Z5fUd1Z2FjYGFhYGFmZXl+SH5kc0pdXk5wZXZIc3F3cHtne0l3c3dJVNZOf2RJ38Tz99dbUt7/5/709fzywsj3++Lh5uT8/vzk6JeV4ePg5+T68vqVlZeWlOjk5ubn5cn19MLHd2BifH98dGdtFBcUaGFra2NkcWZ4eHVEeWRpbmJkdVjFdXNxYXxlfnZfydreQ35jYE/X9t1Y1HZFdnt8cFBRys1CcX1aXcfNy+X54ebk4Pri4+Pt5+bk5+Lp7ODt5+Dm+Ob9+fr65cBTX/Xj7+zh/lV/eXxfRkFUX0luERIXZ31DQnBweGRhZH56fHBBdGRnZVNEdU98cHl4fEZSTdLB9MdMcXnWyfTMWlt/ZGFlRktaXN3BWnB618rK/cXPVElU0/r58Pn45c/D3v/j4+/n4eHx98nm7ePi4Ozk9Nv07euV4+TyV9ZW39vW01LSWHhtaG1gZWFkdX94ZHZAdnxkcHRkbWlie3V5Z3tjY2Z8RVHD1F9Ycn97XvDl+VFBcGFmf1XT0URA1kpyenTM9fP1ws7Z2sD/5ebj5+Hk5P724ePu7uDh5efk7e7m5vv48cZdQfP5//jZ1kBbW1L3wMTHUHd9ZGthc0zDUHV/e3lz3dVER3NnYGBpZ0F0TXFia2tpbnJDSVh1cnN2eHXO9/L2UEhJQn1IQXNd3tzS1XNldE714+bl8sNQ2vHH9P3x/f/OUPLm4uri+Prm5+Lr4u3s+vHK9sH44f/kyXZ+fnl3yPf0/dNHTHBgYXd23cFAQnZkYn50c9XRWV1ccWR8enZEemRnYWJiZ2N5Q0t0cHtjdFLR91BBdnhnZkJKTEB9f3t6Y3lfwODn/ffx/P3v7u3s+v3MzNTd+eTt4O3r65Xs6+vi7+Pg+/PFUsz2+/7aWnJ9ZXNTVsTRVE1+YWl6TMDz9cZFTX1yQUBNQkhIcXF7fkBT1UNMcHJkbGNgYGBkenNwZGVH0cTRRnJgY2J4SHBzRFhMSnV1w+Tj6eP/w8NV1vD6+fn9wtNCeUDJ9Prs6+3t4eft4efj6O7j4vL0+v782k1hZntkQtNQRNzL2sRIdtvS0tXaQnxKf0FU1NnA901xfmB9c0dU1kJhZG9vYGFlZUZDdX1iZUvVwcLEdE12dFpweGRxSXhlYnt1QtvB/cTA98n7+/jk5efxwFxH39r4+Ofk+uf74+/v4u/r6ebyx8rD8c5fcWxnZ390Xt3a9/331F7T/efk8fndR3h4dEdddVFaeWxuaWNyW0NQdnpkZHt+W3FH0Nd0eWdlQtZLQFpzd3RdS1N1Q9xSdmV9cV7w9cTER0xN3dPl7PrlydRMT1DC4+zk5/VTRsn/++3k7+/ky8Hx/eLp5f1XcmV/SHHNyPXOVktw1d724/v22XxgYEldw/TJzFxyZHVPXsba1U9nY2FxdUHS0VRwYxVqaWVW0F52Zm1gStLAyc3fSmZrZkrR/PPz2X1sb3DG+u/s7PzTQlPSxODr6uDx11rF/OCVlZaW7vzazfXn4OT2W2ViZnZFw/XOxkp+fkzX9ODg81Z9ZGd32ff0TXhib2lve0bw+9t3YGsUbnNa29fRXnhiFWB32/jIXHF8c3zZ/u3i/vTa2EdcxfT7919we2RgTfXz8MnN3tPR2vH74+LwWHZAQF/2/ubl8/z8997J4eDn33J5e39wy+bn8trG3VTcxP79+PNBcnhxS9nwy95KTk11S3fF8cnce2ZtbGJlQ0dCS3R8ZmF7S0xwQH1nY2RLVtjH2lJCQ1zW08XY09xPf2V5S974/MNRWVBdU/fg7OLj5cNGTcfy4ebh5vL19/P44e3g/sjXTHt9cdv9ycPeyPTJ9vjk8MXNxEN6cXRFWWV4e3l/fkNG0cFdQnNlYnp/ct1GcmVnf2RxRNjxRHRBdmdkTVP29NfWQ1/c+eb85/DYWnlnZ3d3V8NBdnxPXNX38u3mw91fQELSzvDl8szW1sTy5Pvk5/DM09JU28/z4eXDQFzA8P764+P82VledUPcy/3AW3hhZHfe8Ofn8UVjaWlicnFBSXtuFGx4QtDT0kR5Z3p0fUxS09JOeGNlWt3x98PLxVt1QULR211RTHBneNfK5u3t4/ze1vXy/uLt7+bPWE7c9OHu4Of+w15CR0bbwsLZQH5mcNH+4eX49VVMTtTUzcnT13NmYGVE2v/zyNZOd3x1RllQdHB6bWlve0fBVUdHQllf28LaxtzbRXl6eVrf/OTk/sPVREZf0cZWR3JgbG961fvm5fPfRXVI0c31z/HAdXt4RtPz5+fn/PHl+eXm4Ob78s/G2sDy5/rHVdVHRdHJ5fr03NF0ZGV/Wczx9/fad3FMc0hBQ31lbBYXam9y1UB3SHJ4cH1dzt5UVlh5ZXdN0PHM0dJ1eF/cwvzk8tFbeH53cNf//s/CyMrl5OTt7OX199dIUlHS/fn19/LA9Pn85eT+zdBFcUBId9z210p0cnRV2/Lh5dxRQHpgZ3PS9sbL9ttd0NFc19R0fWBqamlub3BKfHdJXsb0/Ofn8crOwMbQ1dfC2EFHQnRax8Pe3l9LfmVleHhlTtFWRUZcx9rcy/r4zdVSTXB8cFTw8cr55Prl5+3t5vnw8vn9983C981cTVhX38X19cjcQdfC2VJc0tJQRljH39LB989RTnlkYW1tb2xvenFnenNKVtvc3sFSdUZGSHh/SURfdE9SR1vd2lfSUHNLUFTb2tv3/fbJ/uXm4eHt4uf3xPbRdndIUtldRMTCwf76+vnJ9fTxz97fXU5wc3J3Q0hX2N3O9N1Y3dZYU1DQ31fAxNRd1s7B0kBKcXlkY2R/ZXBMR0N1TNzTQVzT39vDzsLVWElxcHNE19LGxd1U10twQEFIdEhPd0Dfxs3H9P3+5/rw09jAT3ZxXd7e0NXMyvD///r8/fb/5/D18P3EXl9Q1tBFVVfX0kBAdFTE19je2lXYwlfP2NjF3d9NcXh+eGJhZHp7en5ke3JwR0Vd1tzcXcXbXVNPcXh/fnBTW9fSz8pXWkJXzc7I9/P98/bB8OX45+T58cvA1NZU1trbzNXVVV5RXkFb3MLG2tDDylJHTndNSE93cnVARlLE3MzNwf768vbKw9vRUtjw8sDdVUh6YWd6d3V0Qk12d09IS19S0tJX0VNU3s3D1lJZXVp3fX9FQkxHSEBMQkVfUltQR0FcUNLC8/bz8s7C3FPVw/D3w1RUw87EzPz65OH48Pzw/OT69dvdU052cUNTW1nQUF3T0NPeyc7N2ltOU9bQ2FdYV1h3cHlkeHB9fn18eHx8emR6c1pAd0pV3NLKyszZXUJDQUZfUFNFTUxc2dnSwPPw9MrG9/vh4+f6+/7CV1tEX9ffU053QFBV38XJ8fPxzN7Y3dPdx/XJxVZBc3ZJcHRLWkZDUdzYxPT+/Mvd2sv98szbVVN0cXJ9dENaTXZ9f3xzS0dGVdzQUnd2WdbE287w3050TEBNQV9Td3FwfXlkendSVtjNzcr38MzFzMPDxNdU28PbxMTZ11NbxMXQz/z58/j7/vjn4Obm/cZXcXRNR0DR01HRXlhcVtza9vDC39zEy8Fe289bdUNxZ2FjZ2RneHlzdnR1dHVOcHxLd3xC09r18vXUQnVAX19WxsHE0V51c3FCUdrL9fP88f388vrl/PL9zdlVVFVYQU52dF/S2N3f3VJEU93exvH98/LI2FRbWVtQVNLT29BDdXdP183/4ef5/PL2ytzYw8PYU0h/Z2BnZXh8c3BDSnZBSkpDW19X3cnzy95dQHR+fExTU9RfQFlxcnB+e3TRzvfBwcPExM3AyfDy/d1PR0tY3NrJ8PPJwNzXW1xUx8zJ/fz48/H48vTA1lFV2N/Y3VXUUUFAX1DGyfXE0NJXxPXN09vPzF5xf2VgbGBkZXtzd3Jyf3xDRlBV2cvAV9XSV8XSUkdMUdFXWtfeXUV0Rl/S8/7//Mnd9cfRw8jz+P3Nx1FYX0BfUNDdX0NYQ3dEQF3C28bPxl5fUNHI0FTWwcXX3NzW0cfWXtRU2fTx8PDByv7y/fHw8MrEQmRkfHl8TF5dT3N5cH12QUFYXtdVQEx3dFzRUVpOdUdBTEBEWVfTU01CUVJB0tpX0cLx8svC983H2t7T2N/QxsP2wEHXXVHd0sfY2NTA1lPWUcH28vbN1NHEVMPfVMTY3NDVXtnEyfTDzs3P2txR1dxIQndzcntlZX1lfWVjYGB5d0lH19HeydjLw9jx/8zURXVTWltRUF9dXElKcUpd1s7M9vnl//j79PLwwtxWW1BdSFDZ3dVDdHB0UNhV3d1Rx8bS1tTWzM1ZTnd1Ud/S2vbl5cja0F3T2cL28PH+8M3LzdnE0kBOTnZweX53dHR0fX58dEd1fHZMQltGRlPYwffDQXR/fUpNR1fEwdFeQ0JE0NnQ2M3F0tDdycja8Pjz9vTB0FBd2vfJxlJWy8TZ0kVZ1tfb3Nb3/8LH1E1BWVXZ38HwzNzfSHJDdVrYy/j+2d7H2cjL2sbQUlVxZX9nZ31nYWRnf0pzdnxlQ9DcwM325fLL89NHX0tA09HGy1NCTHRAUlTYwMrzxdn3yv3k8cPz8PH0WnZIdVrT0VxYVtVfR1h1QFh3SdjL8vnfU152d0Zc1/Xz9cXawMbKx93F/fr58lZfUFDYyMnSwtFKS0p2dVhMd3lzT0h3fX55fX11Q0FRUFpQVEXR3UBAWcD/9tBBcXl3dV7Hxfb82lDX3ff//vv45+Hlz8TVUtDQwsJQXlZ3cVFXVdZbSUTB8vDExdpUR0BU2NrK/N1U31lW11lN2vT0995VXFpZ0svJ019GeGRzfXRKcnBKfHt/eWV/dnNLTF9d38PT28/1z99dXcDCyffdQENLc0BX2s7L9dvc28PO8PL74+b45fbV01BHW1hfUUZ9c3RDWVtBSU5W29DPy9bH0lJHT17AztPK9Mfb28PJ8+fm8/DOW0BMR1lT1NdNe3JyfndZVlnVxN93cXR6e39yfnxxT0h2QURIQFZWUtLK/fX2ytlVWUROX1DBx1XQ2dVf3vfz++Hn/PTG3sfOy/T0yPXfRkhYQUtXVEFNU9LQ3d3a1V9RUUNNVNxWVcfZ3s3KyfT02NBTdEp1RdTFxMrywFx0SHV2R1dRU19MS3ptYWRlf3d3SnRDX19V38THycPMysTP0F5ZTXZK0d/AzcvBU1bYwNjy5fr8yv/L1NDDwNr2ysnQ0V9PWlzV1MzA1FhGXEt2SVpDQdLB2V1V1lNXxPTOzP3k8vT0219IRVJUxvLL0dVNcnxNRUPVxNF0d09+YWFyfXhIVVlzcnJ2dElPSF3R0dRXV1pMR9VQRNvzyMXBxtvcwc7P9eXh5f/8/snE9vH2+uX2997U1VbQ1VXWwdFEdXl4ZXxaR1/O8vTEV9LH1dPEwcL29vDHQ0x3cEp3TdLa1VJZ1dVYU19MV8fd3F92cmVjZXpxRURHT3FydFpdTkHL98v02FJVQ0FVWlbZ2N/W3MLM9cvYwPHy5Pr0zPXEzcrD8PjwxN/b1FtQWHB0V8TGUEx3eWZ9d3XS9/fB0tHU2cjbV8P65P3w8cZdRNdeRNXfx1VSx8XRUnd9c0VXUFpAdH1lYWNmfHdJcnxDdXZLdnNOzfb12N9ZdHN0SErX9/bR2f/x9MfF0tn3wfbw8/L988jY3/jh+vLw5uX/w1BFQcXS1Vl1dnttYmFlRcP39PTz9cLd1FfD+PPPzvXfXXN9fH5cVURG1crC3lNBcHdaR1pCd0lDeW1uYn9wfU5QV1tYR0NB0vfz/v3M3V13fnJayfTPzvXw9M5QR1be8fXx+/r6/c9XW1rC8fT98OXl/sNRXkXUW1nXXnVzZGNneF3X2fL299nTXVtY2vn09v3y99pfd092R9dS393Mzd5ZSHZwRkhDWXFwc3tnZGR3RndCR0p8f3lxdFrJw/P4xkV2cnt7edH3x/Xx/fHK3lBQVfX2+ODn5+Xx3tZUyvjl4Ob7+fn31VDfysXY0kFxemFgZGRJVlfE28HPyMjHwcn+//bHVN9HcmRgZnBNRNLfy8jG1ElBRlTR0tVCSXtnbWlhdE1GX3VKd0p0dd3K+P3y8c/fUkl+f3xaUNvA0Mjz9FZa1d3K9uTg4eDn9FxNTVXB9vn9/fzK2lTS9/3N2MVETnZlZmR8QlZdUUVd29jS3fT+8MLBzt/Iy1FNdUtBU1XCyvT321J0SV1dV1FRREllbm5tZ3deX1BBdnB9e31fxMHa39nQUUdITk5f19RSV9VSVtBbTEVZUdjw5u3v7+HwwsnO9vvh4OHk/8TVxsba2VFSRHRzeXp9dUpFWUxDX1HY2cL++/DI2dBVWV5XTnV2c0ZEVsTNxMnUSUROcU5KW11JcmVgZ3p5RFRR0ldYUnZ319BV2tBdX0FYW0pbVVnW3tTe0dPP10dRWF7BzfLj7ezj+PDD0M3x8+Xk/vZXUthTUdNcW1BFQEh2Q0ROQUR1dEJUzPX85P/y8cza3VdWVklMSndFX9XG9srE0tVQdnFEUdzWU0pnY2FmYH51dXRITUh3SkFcWVpfQEhGXllUxlNc1VlaWVfW1tNWWUhMVM7l4Ovu4eb7x8nz+OPt7e3n98fcV1hF3d/R31BGR0xwX1JJQ3ZyR13UzMjB29jMxdjN1F5TTnl2cUpVUd/32VtEdnJ3dVfR2FJ/emVjYXJyS0VHXdVQU9ZRU97dVdfd0dfY3NdXUkBfXEVR09dTUEx1RNPF/+Hh4uX5ysXL8ubk4OP69dLTTV9ZREVa3ldVXdbdXFZTRHx5dHRe2szJw8TT3sDO8vHJwVZHTF1UUsXD2ENyfnl/fERS3snCRX93cnl/dEN9cU90dnJ3WkRBWHV9TEh/T9ZWXltQXl/V2sDE31NcSEDWVv3u7uLn5Pjl+vvi7Ozj5vnMwt1SUl5NQ9RVV1RWxM7TU19PdkJIc17fVE9MT0tUxdvT0dlFSHRB1F7A99pcSkp5cHRxXsXAQ3Fwf3hlf3dCWkBFQdLc1sHfxVBFX1pZdU1TV0BwSkBF0N/ExNvRQ0Zd0s/84+Hk5Pz1x/fx/Prk+szOx9rRVNFW38XSX0Dd39XZ3NxRTHN/d0Nb3dve0dHfyfbK8crMVEN2cNzD3MXEy1RDcHBTRFPQ30RyfGV5eWV+dkt2cXB3WkZCQljVU0Zyc1pJcHdOcHp2SllQ3/bE3UdFR9z75Obg7Ozh5uTh4O/t5eX/9dzYxd/SwsjGzMPdwvTBxNXQ0HFlZXF1cnNwcHdNWtfDwPTEWl9CfHNS29dT1lZMSnd1UtbV0UxKdmFlcXRxdkBIdHdHXNPP2Mbf2dNDTU5AR0BQSXZ2dltQxcHSUEBOf3bUwP/55+Pj4+Ht4+Lj5/rA3VhBWXVe0NTW383R3vXz8/XLxdNcTE13dnVzcH9xdljb9Pj/98XZ1U9NWl7VUVNXV1tJQtDSXl5Gd31/c3ZwdXJ5cXR2cUDc0kRQVE1HQU51cXFwfXNzcnND18/N0N9YQEdGV8Dy8v/n4u3t7+7r7+Hj/NjIy9rU091X3c339PX++vv0wNJBXUVzfnN+YWdgZXZL0s33w9/ER09Kd0pOWENS0tDb0VPfxNVBW3N+Sn5zcH9nZHFySF/cz/TL0sTcVsHWVlR1fnh/ZX5JVsbBzNdeTX53RkHSzsz2+Pvl4u/v7O/g5P/Az8DT2NVKStDXVM79+Pjm+fb309TQRUNOZW1nYG9+R8H2///J8t9W0tbf2t11XNdKQFXf0NnZRF5KfnNwc3JlY2Z9YWFNVlTEytXV0VNEXl1OdmRgZ2BgfFlTVsJRWkdIT1PG9uX75eDj4+Pp6uiV6+Dn5P/28vXF31jd3FTF8OTk4+fz9MdRdEhMZWFva2hpY39T0dv329vUW1xc11FSSHF1fHFMU9zT99tARXZzdUt8e35hZWZmcEPU2/P0w/XA0tRQQHFNZWJkZ3xCV1zayVLQVk7QzM71+PDJ5efm4unu6ZXg+uTKxcnEV8XdS0NHTtb/5+bi4f79xVpQR3l/f2xoYGZ6Rl1SxsjAxsTUyfHdxM1SdExDRtLAxcHeT3B2eHhzZWF6Z25sY2F2V1THyMfXVFBFRUtzdnhvbmZmeUxe1sDa1MbZwP/4/fzn+Pjj4uuXlpSV7ufk+//7+/TAz9ZNR1jW/Pr+5fjN2FRFVlNPeWFjaWlubXpzcUJVXkfZ3czzwFNV10J1Q1DFz8LSUXZlfnl5QkB+eHlgYmV+WMfJyM7EW0VQUtjN1XB/eWFhZmV0R17Q2tXdzM795fj19vn8+efi6ZXr5uT+z/Xx8f/w31NXWnFEw/34+Pnyy9tX1sfJ9V19f2ViYmZld19U09jb0Mj///XIxtTZUVvX0NrGR3dycmVkZXh8eGdjYmJuZENe3NVTWUROdUPU2lRJfXpkbmNgZ0tbRVPG2NXO/fz7+Ofh4+Dt65WWlu7t4+f//f729PfNxNrU0ff8+OfyzMDTW0JZ1lRFfGZvaWtqbGZF0EPZwNlXxvTFy9rfUUNPd0zV2NtDSURPfH5yfHJyZWFhen5wUMXP0tLXWF5f2vXOxVl9ZGFtYHtN0NhXV9zaw8Dy+f/n+PXL8fv47eju4+fk8M7Yz8rbzNBF09rI9ubj5+X13VFS1VbY10RyYmNvb2dK2cH131LPw97N/v/MxEd0dHBQ38/HVVh8cGViZHN8YmJpFGJjZEXf09PTc3xNR9j39Vd2eGxvbWFP39Ff3El0yPXx5u3i4frLz/7m6JaUlOvnyvP5yvnh/9FbRkXI/uTu7uLn2HV1REVUzdV/bWoUFWxkUsFTW3BlSsH38v7/zExlZ2V8V8Hw2lRYZmZlfXRHXXlsFRRif9Pz/vj9zHZ+QsX8/PDQdmRvbGNy0drFQXd6Z1rP4eLh4vnFR1zK5uqV6uL6y0xSzvnm/vdQc3xI2P/rlevv5MlMcVXA8PTaTGRibmF7VfD3x0JLdEnZ9+fn9NJ3emRkdN318slBdn9gZHFAXHluFhAUbmFC9//2XHdOfX3d9/HHU31jY2BmSMLa1HFhfExexPjt4uf2x/H65OKWlZXo+fLy8v3g7+XJWnxIzfPy6JTq7czQ28bTzfDTQXJtFWlmZ0PSQ05kYX1DVNLy8dhEZWZ/XkbcwlbQSXplc0BR00R4YWoVbHJG1f3z89x/cVBWxfLx0FBzYWB5RNHKUkJxY2d0VsH45fb21UfU9/rn6e/m5PfBzPb/4+3HWktzSFP/4evr5ufzzszy/P3620J9e2djddXP8UFLdHBwQ8vx5PBQQHZxftfN0cBddHJ/eX1QWlZwbWsWFRVjdEzT1UN1S09e9cLGy9V9bGd4e1Lcx9J3ZWdyTsf0/+H+yVDN/Pnv7ujq6PjK+f/h4uLs+N53SdHF++Lp4uXM2PfJ+uT098V3bGtiYH1EU0N8ZmtsZnPCzPHCQn9ldnHW98TbUUxnYX9xwdxATX5jFGhjf8TAxNvXR0Df0vrmzfbTSWFmcnTNw9XQXXxvZXfd5fzk/MZWUcv35u/s4/rwUFfO9+Lg4eXbRHND0PLs7+P4/vDL+ubv7uH0SHNhYn1H2N9AfGVgbGVI2/H3zFhNSnJYxc/2xnF/f2JnSlnTXklnb2gVbHpxdHd4eH97SNXSyfXDQXdxZHhBUlZXQnlkZnlY2frn5fn++PPl4u/v7uD9+vHA8vjh4+znzsBW0ffk5Obh//vy/eLs7+L7yE5xZWNkcX16emxqaGlnd1re39JeTE5JV8/MV19Ff312cVfHz8VYfGxiYGF0R0t1QHBzU9PL//7331FIS0p8RV9NdH1hbXpyQsny8vT28fX5+ubi5vL2zdfYxdzw+fryyMXQz8L0+fzy/vD3+Obj7ent+vDFWU9xf3R3cnpmYGZ7cUNV3dzZV0dYV9XdwdRXVVtGT0xPWlxJf2Fvbm1iYXx9f3Zyc0JW19bF21FAcXJyfnJ1dnN8f3lzSFPY9vn///Pk5uDt4uzg4OH58/P88/P9z8fPyvTx/fz6+vv5+OXk4+/g5/nLwVxPd3N5ZGdvb29obWNlenh3SUtBUlHd0VNU19TWV15QRXV9dn1le3t7e2V/SEJITkVY1t7b0t/aWVhPdnVIdHx0dntyfXFdVMT18s/B8P/n4ebk5ub++/zx/sva1dVXWdrexvP08frg5Prh5u3s7eHm5sraU0xaQ35+cX5kent9SnRbX1VfSlld19jZw83O0V9cRF5AcmdhZm1gY2F+eXh5dnN4c0JBXEdBVlJMdE90QU99d3J9emdzSV3byfT/+fvn4u/r6O7p4+X58/Dw8NpSV1fe2cDx/Pn9+/Lz/P3n4+zm+eT13VdHSn95Y2xpaGJjZn90QHZ3S0pZRl7R31XZ9N3SUFvc0VJKf39mZmR6fXFHRkF2Q9VT29nNx19bS3FDTV5BSHF8fHhzfVjY2trRVNTB/OTj5uPv4ub4+PXLwNVRU0hLSV3Y9f765uf6+Pv65uHg7eD48PT39/fKWXR9ZGNgZX9yTl5dUF5S2fXxzd/SXEJOdHNydnB/fXN7YWBmYGFgZ2BmYWBkcEx3Xc3YXl9CdXN2c31kenx6fnTYxvb8/fHz/Ofs6O/p6ODh+ubn+vH1wNXWVdLX28728/D0/vj5+uPg5eHn5fnxy81fcXB+YWdnYWZ+dndBQkFGRllFWNDW01JeWkhMT0lKSX5kfHh6c3FwdEt0dXBzd3VHWNXa297F3dpfdHJyfmR5cnd0V97J9c7L8f7k/v/l/v78/MvAwMHU2cze1N7YxdxY2MfO9ffP8f/74+nu4ODk+vz9w1dIdnF9c0teTltV0ERYTUVX3FNT0tbUV1NCd393cXBkZ2ZgZHpkYGZgZnplZH1ycEpSUFFTXUVPTHZwfXx2Tk9Vx8TP//n19ffx+efh4+zs4uLj4fjw9MBUX1NcVNvLz/Xy/PH98Pf++Prn5vjw/fzwydjXTXNycXV3SXB9c3V2c3RNcUzQVlTWUERHdH9kZX9+fnl4c3t6c31zd3FzS09IWtdRWVBFT0RCSkhKSU13S1JTU9TUVcPC3sP39c38+uTm5uTn/vbI9cDS3EZMRkRH1tzH9v32/fn5+/rk5+f+/PP89vbKxcfcUN/M0NHUU0RFSktIdnRaVtzJwN/R13VzfmZsYm1pYGRlZHllf3B/f3dwcHJ5d3BycUVCdndDdEtbXdDZ2VxW0NPFy8/J9fng5uDs7OPh5uT98/fIxtvYx8TdUFTF2vXw8/j75fr99vD29cPIzNjaxNpWUFPVUV50Q152dnRMdEtOS09HU9zF1VdGQ0pwfmRmZmR7fmR6fHJ2Tk1fVF1FUV1PRkZBWUR2dnBydF3DxN/TV1LTVlZXVdnI/v3+/+X+/fDxytrHxNBMWFbWXEROXdzA8uXg5uT65/j09PfD9P/4/PD39/bx88PYXVLU3FBHRtHWW1NfXkdRVldfQXF3dnlkYWBtY2NiY2Vnen59d093cEtJfXtyc3V3cXNxcFhd2d/FzdffxN7Q2Mby++X+5OHm5ebn+Pz3/vnywsHC29VfS0Nb1PXy/vnm5Pvk/M7B39Pf3tDdxc72zMnN3UFPRUxKdHNJRUx2SlxCWVtWWE1MQ098fn9+Z2FhZmZ9c1rVRFDZ2EBDQUpwd3dKd3J1XlDQ3t3RXFbW0FtGXMTTzvXIycj9++fx8vb2zsjPzsTQUlZZdlpEVN3I8vrn5OTk887w/fPy987K9fj65/3y8szExFlMWUFT0NZxTF5GXttVRkJPTUl2Zmd7ZGdnbG9pYmRxdnNDSXd1dmd7enllf2VmeEtG1cXV01DVUMfVUdzJ8f799P75+Ofu4eXn4eTl/8jOy8XW0kF1Qd7K8Pzl5PnO9ffQ0sDM2M30zMryzf3/3NXVXkxNTXV0R0NQWHFKXVhU3VNEQUdzSHZlenN6ZHllZ2R5eUVTXlNGd3Z0cHR3c3BOcXZDQUPX31FUXVte1l1X09/S9PHK/Pj9/OT6+PzK2svP2djdWkxAQ0XUUtz2+fz+/8L19/fx/PX0/fz8+vP2/vn4/f3Dx9jb0NpWQV9bQVfEVNDS3lhadXx6Z2FhYW9vYmdneHtwSktwSnBmZHp6Zntlen58fEZDSEfdVkTQ3NJWVND39fXz5ufg7O7u7+zm4vv2yvbb09zcX11cWcrFwsj0U1LT3Nbc097zxsb189rL8ffPzsTf9NPX1lNAUVlGQlxOU8lU29FBcnVIc3x/ZnhyZH9yfnlJRFLVXXBKQnF3dnJ8cHBzcXV5SF9T1FxERl3R1tLXVs/OwfT98Pbl5ubm//fw9NvTVkVNQVtBXl3czfX28cVZWNPH3MLI8Pz8+eTl8PD4+f35+/v/8vfIxNvAydBQ39jf2NrWUnBnZHhhbGBmZmFnZ395ZH50cHxze3p+ZGdzfH5zcXp/SU9CW15R0VHS39ndzff++Pr/5+3l5eHm5ODh5+f6wMHN0FZRWUJV28LMxVlRUE12T3NwWNfDyszU9ffC39jXzvb9+f/O1PTJzMvEQVTZ397aRUJecXJzZG9gYX5yfXh3S3VGXnF8TktfRHRlcHZJXdRwckBH09RZXcdS1t5Sdlzd2/fx9/L68Pzy9dHM9/f3wlFeRkvX0FxLUNTJ8s7c39VUVV9Mc01czfP/9Pz9/P3z9PD6+Obh5Pzl+vr++/bQ1tzR1ddeW0B0ZWVia2hjZ2Rlenl9f3xzZWZnfmR4eGd6cn90X3VycE91U8bPyMjc2cDd2/X//eHj5uHn8v7l/fDyy9PQVFNU0NDE0lHW29vC98PF00x3TnJ9SEFb3vXDyMHFzvH18vDCzfHx8f/w9/78w8fRU1/f0dZdd3hlY2NkenhwSXZPW0BNWUBJSXBnZX55cUFMQVFaWEZbT1Df2MbHVFzWVdHb9cLz/fLz8vTAy83Y3ddIcX13SFJZWldcWdnN28j3zNDUT3FORkHdw8TL8fP0+eTn4efl5Pv8+OXl+uDh5fv9zMPA19LURnlkYmlpbGNmZGV7ZHh8cXJzcXJ6ZGFgYGZ+d0RMSUlCS1nWwsDLysbR3NnHyPbl5+bk5uT65eXz9MLURUN0cVhX1dzZUlLV09zb29BURXZyfHhyTUdbVlZZXNPO//7+/v/y8fL+/Pzk4ePm5P/398nLwlVMfWdgYGRke3l5f3BycUFZWkNBSXN8e2VleHJ0TEJCTU5cVN3OwMDH3NRX2cHO9v34/vz2y/b1xt9TTnR+e312cUJHRFJUUlbbxcTd3VNFS3dKWFHc3N/Aws7L+eTn5ufn4eX65Obg5uHj7ODn+v/KzdZBcmRibmxiYWZkYGRlent9d3Vwfnl4Z2JnZmdlfn5zdUlQxNrM8PXL9/TBzMj85fv45+Dh5+fn+/HDwFVGdEhOdHd3cXZ1SVnQ08TP0lFaRXV8cExERUReR1pR0PTx8fbx8/Ly+OXn4efl5Ofh4eTk5fPaVU9+emRmZXtlZHp+e3N1SUBAd3J8fn9+e3N0cnB3dUhE1MH19/bw8cvM9fb08fH38/P9+vzI9MzWRHF5e2Vle394Z2R7eHlDV9Hb09TXQEpbR0BV2cTMzcv28/P85eT65ef55ePs7+/h5+bl+Pv58vfKzFZ1fGVkZGZkZGBmZ2d7cXZ3dn96ZWRhZX99dkt3fHR1dVPb2Mvx9PH3yPf/8vLy8/Ll5eTh5vrz8d5YX0VLQ0x3dHZyfHNzdkdfQUl1dndzeH99cnFAQEBZU9LAzc728fT18vj75Obn5OXl4OH65ODk/PXH2FdPdHZ+ZGV/eWVyQkRfWkJJfXp9f359d0BESElfUlFRxvb39Pz+8/7++PrwzPTIzM/08fb0y9NCdXByf3t7fmRnZ2FhZXp/dnN9cn1ycHJ1TEVEQ0VUUFTAyPL8+Pv4/uXn5ubh4+3j5uPg4eDm+vTTXVBAcHJ0d35lZ2dlZHt0d35yd3J6f31zdHFwdHdwTl5S1Pb//P7++OHk+uDg5uTk+vn+5ebg5fH39dBbXU91TEp1S3h5cH55cndzemdmYGZneHd3enl3eWRne3Z1cUdYRFDezMrO9vn+/Pnl5OHh7eP/8/fZ1UVb3N9UU1BYW0tIWlle1VFWR0NQVV1bQENEdUhAW9fL8/zy9vD89/P65uPk5ebl/vvy981VU9dPfXZ3dUhxf356Z2V7en5NWHV+e3t+cnl3RXRxRUF3dkxT19RQ1sTVU8XJ9vT3w8TI9v7n+fz4/M9TTX94dk9ZXXdLWURKSV1SW0VCTkNLQ1bSXFxWSXJyfE3W3sv45Prn5/764O3v7OLg7O7j7eL5/PLD2NReVMHF09RHcH9lZ3p8cnJ0fGR6ZmNlZWV+fntkemR7f3h7f358cEtHVffI98rawcrawcHF28fN3dZaQV5VXl1bXFNR3cbw9M3a31xSXVHV3NjBylVAS0BHU1Taz/L8+OT5+/rm5fr5+uXh5uDm/Mrf13RLQFHT2NPD2tVGTFpxfXxzfXJ/c3RJfUlRTkpyfXdNSEVSWXZLT3xxdEFR2N/fz8ZRxNhFW0dEX0Bzd0x2ckx2enplf0pYRlfHV0JUUEXVUFbHw9zGxVZfV1lV0dTD8Pj74eLh5+Dk5OX9+Ofk/+Tn/fb1xsjPwPH9//Dz88jM21JdTXN3S0p3RFpaWE9wfXpnen9wd0F2c3J4ZX95ZXJySUVTXtZRX0BBSXBLS0FZUV3Q1FJNRHV2REdX29JW01RcRlRHR1Nd08PQVtRSXkXcV9HY3vDn+v/+//D08MzJyvb75/3K9ffNwMraxcTazfHZ1sDAUl5SXlfW08PyzMz29tvZ0dHUUVDfz1NBUlNEUl5CTk5D0NlYSEBIfnllZmBhZn9weHhwc398fnx3TkDS0lhCWURNTXVwcUtMVddWVt/Q3d/WUtfcx/b29PX3z8/MwNrL9PH+/vL8+Prn5vr9/Pfz/fHK9dnZxttQUdzTw8PBxsjDwNzWQl5RX9RTWlbWQl9WWUtbR1/S39vP2UNAQUF+f3l/cXdzd3BkeXB8ZXBzWlFTXNZQRVNZQnNKSk1JWkbWUHRMXEVGUVzR19HQ3lpJTVtHS01ARFDRVczAxPXxxNrByPfw8/L59M7N8fHx/P7x+fvk4eX5//r4//HM2crMzc3b3sPLx9jMxN/1wsDfU1hSWUp0Qnx7fnp8fWVmZGRnZXJkeXF0S3d4e3B0cHZKfkBeXF1ES0VfRkRbRUlUXdzE0lHQXV5dVVFAVFzByszB9MHJy8vRUNbV9M7a28vAys/B0NbSxfLx9/P/9/TOzNrB0tr2w8H09cnx8ff0983z+vD298ba2tZSRVlF0t9bQUR1SEB1d3VwfkpwfnNxf3Z3cUpNS3RZXllYXkBbWkBNSnBxTXd3c318dnZ3fX5zdU9IRkFdWF9TUFhGU9Hexc3L9sv18/zw8Pnl5uPh+v738f/wzvfz8fn/8PD+/OXl8cv398L1zsv0ytjG21ZV3tNW0lxYU0FPV9FYR0xyfH9leX96eXdweX58f3ZJdE1eQkFdQEpEQU5eXkVXXHVCUkdDXl5aUFBR0ldHXVRCdHRxcElKTkRPdEFfRV3U2sbP2sHD29/B9c/JyvbO8P3k4efm4uLh5uXl/vv9/vPIz8rKw8DDy9rB3cDE0sXD2dXX0tdYUl/a2VZXXkBKdHR2cEJOWU99fXJzfHN8fn59e3xkZ3l6fn1yf3h5cnFNTkFEQUZDWkRDQFhd3VlFXFnR397R1FDU3NnQ1t3bx93b3tjA9v76+vrl+/r45OX7++Hh5+T4+f7+8Pr/9Pf98c/bUF5RUkBTQ3ZKUVBWUlpEXkVAVl9CRlNATEt0SFtBTUVMdkJWVtZVVFRVREx2fXp3XFpOdEp3SnJzcH14SkJOcXxwcn15e2V6Z3FGWklHRkdZXNbawcf8+vrw8PP39fHx8fz2+Of+8f38++Tk5eX78/n48Mn28vbK9d/S3tbO8Mv18ffKzcHQUVJd19VbR0FHS3Z9ZGRkenFxfXZ2dn96emR4cVjWUFlfWkZLSEFNWtfE29ZXVF9fT05IdnN3SnB/eXxycH5xdHZLUd3dVdXZwcLa9vbPw/b08fHy5ODm5eLh5P77/Pzz/Pj72l7UT3RH19XYxcfPw1PRxFTUw/b2yfD2/PNRVtvT3srOz8zA3PfFd3N9eXJEXkR3SnNMf2R8cHh9SnN0fXByXHF9d0B1d3Zzc31xc0R5ZXh+ZXFKT3VPRk9cQlxWXU1c3dnQzfD8+vP9+/r9/ufg4eno4uL78vv98eXl5eX6/P3/9srG2NDa2tfRxlRQXnZJWEVY29zdxN5U0F9LSUR1SlVBSHVKcEZCTVfVQFrTUFRTRHVPc312cmR/S31NR0VCWkpwSnBlfXJlf3h+fndycEdxc0NbR9bd01TcVN3O3dDByc3+/P338vX3/ML0++f55+X48PbO8PfewvP58Pj5/PT0w/f2y/Xy//zk+Pvz9d7NwtDU2NFR0UF1c313TnB+eHB8f092cnh4e3x/eXlycnRGTkh0dXdHXExFX3VGQXF9e2RmZWRmZnp7SkRPSnR1dFBQWlDS0/P89/T39ML4/vz/+/zg4ufm5vry5v/98M7b98na11NOddPV1t3a3vHN093EWlHBxcnew8L298LAz1lQydDV10RD1UVxTHdnc3d2W3VIQkZadkVKeU9PQ0h9dUJeVlvUQXZNSUpyZmdkZ2RkeGBgYGd+eXxJQltaX1RKSEDUxt7D9vL/5eHh5ebg7ezg4OHm4ebl/87MxPX08fH3z8PB2N9eU1FUXFBURVhW2sjNwPXxycTD3kZLSXdOdnl8SXJ0XEBOS0t1RUp2fXJkf05xfndwdV1JRdVSdllEdHJ9enJ7Y2xtYmxzSHRxcHh3dHV3RnR3VtPYxtvZ9/f8++Hl5+/o7uD6+OT7+P7l8/rn5Pv1VtXSVN3W1FnU1t7cV0DTw8jy/PHB8/3l/vTe2NVX2t9cWtLSyvbSQlhNXdddSnRHR19fcHtxckDVXHB2QU5Od2VhYm5gZ2VgZmVmZ2Rpa2pqbWZgYH13dXdGT0Be0vbn+PDk4efm7eHm4O7ql5Xqlerp6e/n//H//eXPxMHTTVjcVVbXwcHxxsHGx1XfxVBaU9rI/fT19/Xaz8HTR0VeWVBAXlZZQVbWU1lYRFxTWF1YQU1Md3d0d3RGWVhSRExNS3lnYGFmYWNtYW1ob2NjZHh3WlXW3tnS0NNW18PAzvzg4+iVlerq7uzi5+Tm+/3l/c3I8sr0xdzDyML3887C2MxdW8/f0vjz+u3i5uzt5P7y/Mrwxs/0XnBFSXdLc0lbXUfTVHd7emxuaWlgYWZ4Qk91d0Z1dXB9dnN5ZXJ5ZmBlZH9+ZUh1dkPXUF5VUkNaRFHH2Nr95Pnl4uLg7ODt7ePm4eD7/fH38f71/Pv99/DK10ZAcXl7enF2dUXHz8PP9sPOzMLy/v/x+fn0ycrN8/f0+P/K2szfWkF3ZXpmY2ZmZnp8ZWVxcmV4eX12dn56eXh5c3BycH55c3xle3pnZmZibGBkeH5wQdjawfD9/fLw9PD8/+Tg4+zr6+ro7OPs7efm5/78//XWV0VY0dFFV9Zd3dvTVtLd3sHeV9nH11fe0sPD3MXKysbJ29jT1UdPfX18cHBwTUl0Qlt0dn9/e3N+e3t5fnB3cnB+fmV3eWR9cmV5eGFhYWBgcnp6dEN1Vt5X1VRARsZeWt3e3f7+8eft4O+U7uiU6OHv4fL8+vHz/Mj5+PTOztRX3UV3X1xIU1VFUcDY9/jy/OHl/+b+zfLz2cPAXFnXd3BNfGd6ZGdzfGBnem1hZWNmeWV5S3Z5dU5zWl5+dkR0cHR4ZXxmYHx2f0pJdUpDc3xKcX5IW0De2N3C/ff08ff1+fn3/vv7/fr99/XJ2ff2x8zIz9vKx9bRUU1ZVVFX3t3c/vjw5efy+vrx9vP12vb2yPbL3MvI3M3xw9HfWHB0fGZ+cXFwe2JtZm1vZ2JrbWJjZ2VgYHl/eXF+eE1EUd3a3NbTVFbZUENVwsPD39naxcHL/cjFxsrIztvbxPH28f/39fL4/fD199He1dFTSnl3T3Z2dExwQU5GR0NK1cP28vL//OT4+f/w/OPi4u3u7OLs4efzV1fA19TX2t3VXnR1Sn5/fH9/eHpkenxkfnlhfnl/fnZ2f3lwf3xlYXZNQUHd28X18cPz/f35//3w+/nw8v3M8cr3/PLw9vn2x9jRX1FITltdXFTK9Mz0w97bVNLe0F5f0VRX3lRbXdHQ1t/W3vb3xs7IyPTx/fv7++Xh5Pvk+fPy+vvwzMHFwNBRVEZ2d0RbW0VaRl9bdnN2d0pMTUxCQVHH3NDXUFlTUEF0SENLQERYWkJPRl5YXNXR3drX1FFR1VFUVFTHwM/w9szQ09TRV1pc3NdU0tLJz8jK9vz/5ODm5/n88fTwyMDC2M31z/Py8sjSUVZdUEFbX1PcVNnazdrdxsjbzMPBxFNe1cPG0kJPWl1DTUdHT1pRR0FEQlhUTUtY1dPMx9vb2tXU3tRSV3Fnf3pkZGRlcHJ8SkZ5eXByfH19cUVGSk1URlXB39/P9PH+/cHP9tXSw8zPzvX98vfO/uX18fLw/PL09crMxcPFwf3xy8LB9c7EXEFbdn1Ld0dPS1HXXlLZ9PXF0lLZVF9TQHVFVdjZ31PW2FBZUllKTnRzZ2dhemRjfEd1SUxLXlpFZGR8d050ZXp8fXx7eGVxd0XFwlFUU9VcREFa2c7w+OXl5uf6+PbYwfX19MzYx9vf01VU1FHUxf3+98nAzMfcXERNRNbYXVLX1NjXUk9BQV9dR3dyXdxQcXxwRUFGVs30/P/2yl50dUl1Wtbfw/TN2ddOcHx4ZmRlYGBhZ35lb21nZmdzdEhaT0hAdGdhZ2d4SnBO29vG999Y01VFU8bQwfbK/frxyf31zfvk/uHi5uPi/c7I3tzL2FX28/f98NRdUEx3RHRyW1dU19Z1f35nZXd8S9FRQXRyfntkZH11S1/E9fHN0drRUlDWUUJHXN/11lLUXtdX0FfezMbAwEJ1cWdgY21tZH52UFRLXtVKT0NyfHFyc1BZdlFbdUFDSFzY3svl99vKx9PcXVXK9vPl4Pj54ef65PfP8PDL+OT9+vz3wsdT3s/H1cncQUx1fHJ+ZUp0TF/SX9Td3lZTd3l/Z2R+cH9KT05NWndMU0dF0NLX3FdeRUN8T0l/Q93Y9fz+//P21NVbdUVfUlnQ1tbFUF5XUFbM9/3zzPXCXUdNUlNe0trL9cPKwFTY3FBSUdfF9MPc8fDEy8rZ2tBW9PHIzvrxx/fIwMHY0snx9P/g8Mn0VE10ZXpCRk3Uwlld31h1Q3Nbw9BbUUR/fnNkZ3hkTNLFxPLIWVtAcXN2fELd19LOzdbB9cPx9/X64eXk+/jz8PDF39PSx/b0/+Xl5eX9yd/Z3MbVxfTA9t/Q0lJwQkFIQHR1Rl5IRVFTc0Za18HP9PH8zsHVU0XW0cLN8/jm4OTl8PfB9/XLwMHb3lxPdHJ5eHdL1FPHyvHM39RadmVzdnR2SUfSVNHWXkRHV9DeXdbJ8M/fwMFQV9HY/fbl7+vt4OH59PT19vv55O3s5vj11F3eVFfBUFf198nL33B+cX1BVVzC+8RAS3xibWdjZXN9UvPZ2cTZ38zYVcnIVMLywvT131jf3ML7+v3j5/T+8VVaW3x5f3thSkl0XUJN1FdKWtdRX/Dc0M7TTkp3fV3HwvDk9v3m/c/CVUbe9cXK5fL65fD09Mbd9ffJ8vnK//LBUlFYQ9PC2sfWSEZBd3l9eX1ISXFbVF7ZwNxMRXVzd3Z/c395fXFkZ3BydltUW9vM2cH33F1XSnBOT3ZW0N//4fHM99FGXFZLW1BE1llkZ2RmZHZ0dtzH3/by01NcXEXVVlH39cn99sbM1l1QydlVzczDwldbW0HU1vXb199bX9VXUFxTUUFQUFDV0vXF2sBRRnF8dHB2SnBKf0pNf3B3dEtNQkt2THNLfWFiaWpqa2hieXB+RUlxcHFPQ0ZQ0dLVWsfSxcfHwPP5+Pz///z79cvY29bUW1hRUkJaUVxYdVrU3VXb01ZRVlFX3dbVVlJYXkFMR1FRWnR5fHh7ZXdDRFXEwsfURFPQ0Fbe0NjMyszKysHOw97SxFFVxN9McnhlenplenN5fEpCS3dzf0tOfXl6YWNjY29ubW1me3lzTU/Uz8vb3Mzfz8jJzfbx/Obm+/j7/uHm+vPwzsXYwNbXx9FRQ3V8cHNH19dOT1tER05OfUdBSVnVT1lcV9lSQFtQQ1jQVHdE0ltc19xX0838yMPd1d/EUNXEV9HZwt7aV1bR2URZWXZ0dEp9T3N2RUFzWVJCWt3TQFx3fXZ3ZXJ7YWF4eX9ATUHY9Nv29srN9vX0/fH55vr2+/vx8vr28P719fHI3dFfRFlEdVpVWNXTQUhSQkJW0d3bzc3121ZQ2t/RxMHZwMXRzM7B29RNREZ1S1JeWtFSV8bdTF9fRlpTWcDxxfT//PH48sjwzdbGz9HR0Ux0REpPV9vH8f3Yzs1EcExye3t4fnVKckhNcEjT01f28ffk/vDPyNDEzPP0+OT+5PTx/fbRwfbK28fNxPTI8cnF297OwdDTUVPcx9rS3d7R2tddVFHQ0MD0ytBS19pSWdPc0t7Kz8ja0t3dVt3F09vFxNNQRk5DX13O9/z65+bm5/XE3l9b1tPd0N/f09FQVNbSw/DJ09NdTXN2ZHh+eHVETUtRwMj58vP0+8b0x8nd8cvO9vHw8vjb9MrE3c/F2sHP9f3fVtr6R87w2Pz311pRfHx0Rl5QXtPD0F7W3VdVx8LYxMLP2dDAy9/Tz/Hz8Pzw9cDe0tteTUVeVNVcdVzcXcPw9//n4Of98fTP39n2xE1exdLe3NPfx9vazlNITHZ0UVh1c0xMRdR0f3B1TUVFU1NbXvXy2VPd3cfw8vn9ysjKx19SXF/C8PbO9cPI8sDW0FDWwNZNS31nck53c3d0Q1xdUNJQQFRXXtXY18TKz8v2ytnCwcD12NPFUEhPR3Z2WVpZWUp2SEFC1trTzMZU0N/W1VTRxcrI9vzKwcXT01R1c3J1SHBxdEp3f3F0dV9V2NZXX3N0TnRBdE7RxNrD9dhFXlhb2VJ1fExaQkhJWN7Q1NtGSkZe3VFZdHhxdE11cnN1W1THzsPa2sTMyNFcV9v38fz8//P9/P79ytjD9cHTcHtnfHhnZ2Zmf3J8dnhgZ3x/c2VgY2V6enJ9fHJycF1VWdbB2Pb001TazdnLzcP8+fjl/87Yx9TAwEB1Rlddx/XAz8JT3MFdU1ZLT01+ZGBlZHx0eUFHQFHMV3FwZGFlYhVpam9hcH9wdXJ/TUZI2dvcx/XF3sj3yvzl5u7s4OLp4Ofm+ufl8dLQxtLM99leSX1kc35hZGFvbWJibWFnYHh5eU9PZXx8ZHl0emVkYGFmfH3V3lLe31/XyNfW30VPV9Ne0M7Yyfnl7Ovt7+rs4O/s4frx2dvJyMjyyNvDUVnB00xEfHp4Z2NibBVqY2xgeWdtbGNtZ2RkeGZnfE9R3ffO2/TJwv7y9/Pz9vz8/P/45frj7Ozo7+Ty8cTF9M3eV0tDQFBX0M5QRV9LTnZ/cmFiY2NnYmBlYWd2SFhXRHdDTHJ0cnJ/ZmZhfkhwXNxZ0Nnb8vrh5+fm4+zj4uLt4+yVl+rr4OXn5fj//cva39da1FpcXXBlenxkfnJlYGJiYWFnenFCSdrw8PfE1NPe1VbQxlNT1NX1/fnk+f7++fr++87VRUBQUNFARtbV3PDx/v/Pw8fYVNRdRUxDXt3My/PJ0FJTVtXT0FxHdnZHTXd4f39wQ1Pa3llb0FRc3MfG2Mjy+u3s4uLk/vrl++Tk/fLwzPD4+vz/+v78+Pj/9t3SX0tISUx9enBzW9rM8c3A2M30wcvdWlN2S0FDQ3BbUF/dxPDyxs/H11hGT35kZXpxWtbP29dU18DYwsRG11NT3N/MVd7NxvL+5ODk5f78ysj8yNvAxs/29vLxwFZeWVheWXZwcHJAU9LV19zf9/z+5+Xl/PTBUd9QQF3c2/X55+Hh+v3588PRRXZ3cnt9QV1Y1dJUxvf98/z7/PLeVNVLdkNHWlLV39nO0E5bUlxaRU9zeGVlf2Rkf3hzdV1SX83cVd9NR0xLQFD0y/X//uPi+ufn5P/09tZT1FHJ9/Dzw8vPxt9e2VxyTXFzcXx2ZU/QUcfE9fzCyPb1wMX1Uk5QRVjUUVZMR1bQzN7Pz97Kxk13cX1hYX95dExX2VXczcLFxsrTX9LQ2cLw/c/bx8TLwMXEX0ReRF5eQXx8TEp3dEJDf3ZCXFZBR31leHJ2dk1FSEPX3sr99sjBzvTOxdhRQHJKUN3FxvXPw/Xz8c7dX3J5ckpZT0NGdkbR3sjb28HT2NPV3l9HdHtxQ0BISF5NQVTZwF9OS35+cHd8ZntmYH5yR0B0WktFVVTf09rQXNXTz8rJ8cnB9vvn+/fCU1vW28BU19JF1sbYxdfTUkFER013d3xmZnt5en5NdUlQ3MPAwlVDc3N9ZHh5eHpzUtZRwMfU09PVSUFYTUp3dUl2Q9ZHTFje2cD2yN3TU1BW09hNTk1YUlnc1kFcXV5MQNRBd3F8ZGdnZWVlf3NxT1BMeHl/Z2VzcnJ3W1bb8Ofg5fn6/Mnz/PTw8//K9fbJ8fH1zNzJ8PHGx8xTUtzUSHB2fX9HXVLXWVRQdUfQUlRFT3l5fWdlfUh0d19WVllNdWdgZ2ZmZnl6ZUjW2dr1zFNZWVHSyvD0wMPx9cj1/dpS0NrM8fPz9Pb2w8xVXn1keHp0Q0VZdEh3c0BQwddNS319T1NQV9TFzPzk88rY3NNBUMPEVlHYx/z68/3Mx8DQx/L688LG0NjL9P31xNfQ2/Pl/Pb28MLJwlRcdn55f0lNRUJ2d3FKTEl2ZmJgbWJkZX94e3l03szQXHV1cHFTWt/F3cjz5uT55/z++vjn4e/i5v7/+Pvz9PfJ1N3Gw8jPxFXX2cheSEN2fX5IdHFdXltWXNzc9/LBRXNDQ0zcxdBXUN/Sx8bc19fe2VVc0l1JW1Xay/P/9/39//vn4uD79vXL9vv+y9nYzsn29/Tb0VZTX3R9eGZgbWJnZHZ4eHpnT1bB1EdIcEfVxfPz9vH1/uXm+v3w9/D7/P389fTax8r39sbIxtb18fzwz/TRUN3K8tza2dTMyvj99fLI2svwz19Odn9zQlBcRltZdkHa2VJKW3RwdUxcSE1KcEhQwNjR21TQ9f/9w8vKzsz3/PPw8f/45OPt5vrl/szS0NzH09PSxvXOwNvHxtzZzthVQnJ9cUxDQE13TUVF3NXVVUBQUdHUUNjW2NRfw19EXExFQlbbXNBFQ19ayvVXwcTGz/bn/Ofm//vz5P9Q3sHF3ND+zMD1xPfSx8x3dnFkYG15Z2Jhb2JtZV59ZXB9f39WVnJFX1zVVv/01sbGz8b74P/75f/Lzuf6xVbXxN30+/L+//LKy+f42FtR11Ta8PHK9vXfXvXw2VNOd2RmcXV2cHhkYH5KfmFiZmFnfX1kZmR7en9KR1hPdnx7dVXb2tpQUlfI8/D3zcPD9/Ty5eDm8f39+uTO3ltC1lDS2MHHS09bWlBeWXNgZmFld0pec3hyekpaT3BgfXR4dEFff2VweHdaU1Z5fnV9Q93K3kxQVlH05OT3zv3y+ODu6ebg5/344OD3x8rH28v6+M7YWkhwSlx9Z2wVamphZGJjbmoVbHlhYmFgYWRM0FxEdHN8StnbUFBMcU/V//D19dZaXvH+y/PCUFTF+v7+/fbOyPrk8PbHXVbC8vvl/vFRSFbD2VRffWFlf3F0cHxmbGNnY2ZhaGpoYWV5cHl5Z39CQVlHTndO0sD35ef7z/X+5eXm4eX45OHi4u3i5f7z8fPwz1dZ1NXRyM/B1lteTHd0d3F6ZXt/d3FPS3B2Z2ZnZnlkZXllcXRDR0BBQUhIQnVKcnZ4fUJT0NBYT03R0drL8uH68uXm7OLg4f775eTl+/r+/Pz45Pr/9dFNdnRwf3Jyfn94ZXFKSHZgb21tbm1hZ2ZneH53S3d3enxYTVxeXVRB3fT85fPx3MT88+Tn4OL75ODs7u3j8sHz/f/68P798ufg4ef+wUlKSnZxf3J+ckhHWElQRGZmYWFiaGNhYWR+SHVZRn98cnR0c0N1cUTQ9sjK8Nbdw8X3zvjj5uDi6O/j7fr+//X10s30w/D95Of75cNFTUpLeH9zfnFeXEBNX0B3fGV7YWNmYGd0QEh2WUlySEpEQEZZSURW9Pz34Of0yMPzzPHl+eHtlZfqlerp4ubh//n69PLk7ezn5+Txz9JGcXh5Z2FnfUBLW1VHdHhmbGxhbG1he0h0RlpGQUlCcEhRS0NS3fTB8PHMzN3cSUvc1tzw/ufg7urv7u3m8t/188/z/+Tn7JTs4fv/xEbT0UZaX9RJRthVXFtccWNnZGBsY2dtYX53cXhzfmBld01NW97R0eTv4+bm4fL0++Xn4+jq7pSQkJeUlObx/PX1ys3HVMb4+vHGwVlkZ3xkZHB6ZHxJXkJJR3dkZ3pnZ31wf3t1XnN1TXhkYX5xfkp1cUlQ9cjI99VFdU5WUfT+++HjlJSVlpXu4uTn+eTh8fz65+Dm4fv030FEQUxZcHp/cHV+dndkYG9uaW9hYGF4e314cUJ9ZmZkZHbUUVrc9vz+5+Hl98zFUkXN+f3l7e/s6JSV6eD+wtD2/8jK8/j++uzi/MRWWnBYVEt0cE53fnZKfmVnYxUVYmJvbW1jYWRxZG9paRUXbmdnfktU3Mzl9sXRXkF3XvTI9vvj6emXl+no7+T98f38zsn19/Xy4fDCx1tKc0NeRl5KTUZ3UVp+eGFtbmlmYGFlZ3h6eXtjbWhuaBVge3tyd1bC9fjE0ldzSHZPy87z+Ofp6JGW6pXi5+f+5/r2w9DP38bxwdladUhwSk5ITnxxSn10fmFiFRUUFGJmZH52RkJCSXB5Z2ZjY3tOTHNHx8r19M/cUk9OdUrX1lf3+OTm4+3g5fn2ysfE99Pdw97M8f75wtnZ2tfWxlVfWk5McXZ0ZGdgbhUUbGBhfHlzQnJ9emJtaGppZHZ3QdTJ/OXk5f78ydjfxvLx/OXn4O3t7e3h5/zx8M7Iz8XfV9LD2MFUWUVIXNDWxtrWRkpTSXFwf3JnZnplcHRCW03fU319e3pia29vYX98S3FHVUdfWk1yZn50SdTO8/Lk7+zt6Oro5+fh5eT6/Pfa9PLw+Pn8xN/Kycj9ytRGSk5xfHN6Y2JjYWdM0VlYWVRSQ3dweGdgZmZ4dHRKRNnH19TcS3F8eHJ0UNzdwf3n+vrs5vjk5fjk5/j28P344eHu7uDj4Obg4uP58MhVX15eQWRjYWJgZn1wcHB+eH58Zm9raRVqaWd5ZHxB1cfB2FBKV0Z3QNfAx8P85+fh4+Hl+vrw8Of798Xexsf08/3z/Pj6+uDj5P39/MPYwNjRWU9MSVlUVNjF3VRCXltlZmZjYm9gZ3pIfXpzWNdBfXZNSkhbVlTYx/X9+OHi4uvr7Ozh7eDm4fv65OHi5eTj5Obg7e3m5f/330VFcHh4YGdlZXt5XFBNXnVMT3p/YWltbGJhZXFleHJ2UUN2S3ZOS05dVc3Y1cb0+Pr64ubg7ePs4+Ph//7/5OLn4uH64OXk4uLm9s/dUtJcWUx+d3FKXVbD1kBbdENBcnltbG1uZH5ydX12S0Pb3V9MdnV2Q1PbxdDdXtPl5frl++Tk7uni7uH3z/b65efh5ebi7+7p6OfyzlPc1VFZfH9kYXp8Q3R4f2d6f3l5YmoVF2ppb2xubG1geUpTWUhASFlQ3/TYx9lR3c345vrn4eXm4+Lg+vTazfXw+v/z/fnk+ODg/PfMxtdSydpFTHV3cE3VV15U2NZG3NZwZGBiYm1hYG9vbWFgcEV8ZX5zfGd/d3J2dEpyQ8L3yv/k5+Xh7+Lj7eLk5+Lj4ebk5Pv44eXx88jQXFdXS3ZyeGZiY2NjZH55eXlyZ2BjY2Bib2xpYmZiZ3txdH1wTHV0dEt2dF9LSEdaR0XY/f34//DO2M7NwvD9ydvD9MDK8vP3y/b8/Pn7ztXZxlFWVFFwenBPVdvJ1HJ0d3h+ZHpiamtobWB7d2R6SHVHX9HUT1pT1cz0/sxQxN/M/+bj//T2zvzg7OTI8snExs3I3lfVU1Hcy8dKd3x5dURNcHhkZ39Ezs5WRnFkZUtFcH56YGF6QlxDSX9+fUDfXFxIZHhz3PTdxUV1Qd/78v7kz8DM/+Pn5vzXRlz1yMXx0UBf2P788vVEdHZU2U9ecGZmfdfBzMBLemRJ1kFUV3RmZU9Z0c1feGVK0t/391ZxS9Px+Of80EhV8fTx5fvaxPD+5unv5cLK/vz74efYRNzfw//4xn5hfnB0fnpnYmZlfV/SUnptYWV2TXV6YGZgZFrB9VN5cVvdyvLNW1PZ2/3k5PRTQVjS9Prm8dPUx+Xj4+TyztTXx/TzwNNdXcjy+fzB2FpewfDwV1hRSV7Mw83VdX58TF/TWHV0YWZKWVdYSWRtckFOQHd0f39RyfDF2dhB0f3n4eTk9sf74unu4ufIwPb45Pz+zlDd8Pz2y8BPdFtUxdZYR3Fz3/H03NxxenNBxsL1wFhPQtTIxM9FeHh+SEJOcGd6dlvb1Ntcd1lSwc7FxUFJQFzx8vv63sX1/Obh4uTy9cf28/fCWVtW18nO9ttd0tj38MrZTXNyeH12Xl90dXFH29r0211YcExNV1Jxd3VCVMTBxVfX08P1/Pra09Rd3PX4+vXC2cT28f/12sFfRFbR3F5aTV7ayfbJx8FQU8Pa0E9/fWV/TFLG0tZXRMLx9PTfUnV9dExFQ3ZxcU/S2sTM9cLWyP/9/vfSW0/Q3MH02sdFWcvM9MPEU3ZTRUBWSXZwfk5QXNDQXnZE1FLeyl1zfXNJ0crHzEZHxdvL8fTcSEpKd1hbXU1fxMX29//31sfB8/n0/NVL19T25+fkw9jdyPjI/cNMSnl2T0VQe3B1cddBTkd+cHBBUUxGe2NnYH1EUVRKfXJD9P3/9VBFcUDb2MjXTk1P18bNzN7Z1dvz8PLCX0ZF3sr99N5TQkPG/vjwwV93QlbFx9JPdHdN3cTWXER1d17F3F9wZGdkck9ASXVyf0fC8cLVU0hxdk9Bd3xne3DA//H2wsPb8OHt4fRXTVLNy/fIxMBcVPT6+vfZUUdf0cPOWHB7endNREF2TENZwsHZWnlkYHdEU1Fxcn1/X8HOyNNQdnNwf3J4ZmBsZE1f11PRXElFTVlTd35/d8DLxtjR31PF/uTi5vfDRdFcRFBFWnZM1djGy9vc19DG08TQdX55d0pGXV5YTln3/uX78c1FQ3Z9SnVwfHJLQEXE3tJXXFFITUBMdXBBUtv39czc3vT18//0xVldX1HA9PTTRUdBXcXe10FGRUdWUER9ZXtkfk1c2sXSys//4fnM1l9bcERXXkJwS0bVzMza9NrXT0bdR3B7eXB22vfA9NZeQVv1wFDVRUV1RvRcQkZ3cnlHXXRR0V5NUPnzyMDcV07Y/dXN8s3P/Ozi5eXy2EBP3lBcxddKdMrKVd3G10VezszZ0VZeWvLn9fb59NfX8vfNwdrddVjZ1FRFS2Vtf316f31Nck3D3NZYS3Z9VNJX1tjP0sDh5+Xm5fPc09lUU1hBTHNY3kdBWEd1SVRcWdFQWlvb9d/dx8TYzfb3xcr03dv39Pbw8dJETHZDfXp9fkvWx8bQ30R/dU1RW01SXFDA/OX3/fzFw8Lxx1PZWUhcXNjTxc3VzfTyydTER0jW2vLKzvTczN/0/sr59sTx8fvxzfVSW0RCSH50fGFwQNP3w/fFXltMXUNf1nVZ2srl+Pr8wcfT3NFaXUxLR3dJcXRAdnJycV9aUkd1RUxZxPXz9sn3yfT39c7a9/TK+fv329VVQXZNRV5BdXVyRt7DxtXXUVDZ38HF1MvI/uHg4ub78sLK8sDZQHR0dERNUVh3fm1heXl2cnZ/ZHNxU9zWx9TY8vT++Pj68/nl5Ob49tVW0VPR10RwZnlwd0BMTHNkcEpewdnAVlTczvnk5uTy9vT29/H82NDU1Mrz/Nl3fnlxdmd5cn18YXtF2FN9fHZEVlHEysVQS1rM/v/FV0VJXtfY9dbVXVHL//PeXUhORFXN9MPdV1bB8v798cDQUsTO2sFbd39/QFNV2dFZSEhbU9RRTkNQxPb3zNhXWkZXV9LFwt9e2PHN9cVad35wfn5IcXl7e3ZeUEBbdXNPQVnf3lZf0vHy5efm5PL3//P95ctUWddX1NjSTHx9d3BzdHV6YX5+ck9YX3FxdV7ZzfHLyPHz4Ozs4/jxxt3A2MPTSXV1SFVQQXR6f354ZWR5ZGV9cFLb8cjZ31LByfT79szH2s/2/PPa00ZGUtdRWEJ0dnxwcXd0SHdLRE5cXVPe38Xw+fr2zvf09PbM8/31yUND3NNTWEFZdH18enB1TkB3QFhFT0bU0dzcUF1YUlxYXVBX3l1QTkHU11VaWdVRR190SUp1W0hMWVhXX1HSVMDA3NHS2dvQ19vPwMTewPf5+cna2t/UVdD3/fDz8fT2yMnY1tNSVtdc1lVYQHVOUk1GSn53fH58fHl+Z2FjZ3JOW0FeWkFdx/X28fDx///y+Pz8+/X08fT1xN3cQnZmYGFtZ2FvZnVcWV3G8MPM8Pz7/fj6/OTg4+bh7+D79ffO1UV/Z2NubmsVaGxnZGZ/f392ZUxDcVNZUdNT9Pzz//Hk4Pvj6eznx9hPfH95ZmB4cVnT28nH3MTK8fH2zlN0d0hGR0zW1FjH9Pvn+MpJZHt/cn14c3lzWtD3z9BXTNX09/v+9sxTXUTVxtvcUlfayfv58d13fX59fXt4fH1MRdTK/fj2/eX7/fDwzdVV3VJCVN5RU93x8dpWWXpgZ3pmZ35ycWV/WlTQ1NpQ3vbM9vXFwNDC9cbx8d7a2PTw9ffWS31/QHZ4dH1lZXJGUcz98PXz5fz4+/3w3MTK3vP+9c3TxcDH0ExyfWVjY2JkZGFleHdB3PD3xfX18eTh4uD55+T/+eft4OTn5ufk8ffCW3FnYmtrbm5vYXF1RVJJSklbXljT0kF3fHJPcl/R3fby+PnIyMnVW1pDQkpfXExHUdfa011EdXFaVtPE0t7VWV5Q3cj08+Xt6+Lg4fD+8vH/y8n339v2/Pv+9MtQWdVQ3UV2dXpkdn13TXZOS0zGxF9Nf2RmYWVnZXdOR01D09bF39Pays7z5eXn5fLxyfPn4eT+8ufk+vLaV3BhY2hvYGB6Z2V2dVvdx/TI8vrm7e/s4+T65frk4eT9+uX/8tdfd2FtbhUUFGpubmZlYXt8dF3U0t7U39vFyvT08cfM2t7DzvTx9d1acUxHfHhkeUtY9fbBzNXb2tLk5+Xs4OTk/OT5wsvP2tlY28rf/cFGVEXd2HZIfXtxfUZedEh8ZnB3XMzT09dX3FDQ9MfM9MXHx/fk+vPcTUNyenx7fnd2S0RNXU93dHREWVfAxMrI39rG8vv+5eX8//Hl4fv313RwcHF3SHR2fHB8e3Rwfnhke3xwTVhMdHZzT09ERUJWU1Hdz//6/cTVR0BPRlxEWdRU2fT/4ePg4uPt4uDn9tLQR0pBS3BxZGR7eXx9REdxfXdwcHxkcn55WUXQxM329Pb65eXl5+b7yvX3wN1eXU5ySU1LSEpNR35wdH1ISXNlY2R4e3RN0VdE1M738Pjk5PbK8srHyPX1V1fF18TNzcFPQ1JxfndKZWgVY2ZkenRac3bR3sL3/+X49+Tg5uLh5vzC8crN8Pb310jf0d/dTFpJeXZxenl+ZmJgdEB+fnRZcX1HUU5F3FZMSVLAU17Y21RA0fzM29zRRUJF39zc9/n29vHz8/f588z38vz+ys769s71989SQFRDQFDR1U59dn1neWFgY2VbQHRDdk52TsDx8fH19/785fn09snL+drEw1HTcmRlfHFnb2gVaGJjZmVlcHF2VNnE3cDOzvnm4Ofk+uX8zOHo6uj63lZ3Wk5ydUpGTXRGXkVId11AS8XH3tzRWllMRN/C98XK8s/F3Ex8dXtzfX1FQNfx9snO8vry9vHD0kZAXEtCXkx2f2FnbWNyfXp6aW1ibmF6fklf9f30+Obl5+fol5eQk5Tp4+bn++zo5v/15OHzwdZ6Y2JtbhQWbmhqaWtjZ2VxfWV+en10Rc3A1llT9Pnw+Pzn7Ovu4vvB2VNDTEXey/bCQHR2dEVRV1NRXUt3XlxTV9fZzvL6/P3//PFQW1hG0NZNdXRMV9j38fH33sTPxMrJws3YVdJdTktMdGRmfkhZTn5nbRVsZ3l9cUXW0fL4+uHj6+ns6paX6uns4fj65Pj6y91RSUZXdXJ+YGlraWhoYmZ5eXp+RF9U09jTVd3AxtDT219cRcT2wPT/8PH///f0zvX0y9v3/v7x+f30y/D1xsDF3V9ATU9BW3Vyc3RwdHddxcfKXUxHck5NcnZydVdWwNlc0tNT2dLD9MHNxdfG2Mf19/nOX9XezvPdQHNmYGNiYW1ibWljZXBMQtbQXcP38+Hn4e7i7O/t6O7p7ubm4OT5VHZ+bmkUFxQXF2lqFW5vZnh+c1ld0vf+4efj5vL65OHv4ebg5uzi//jJ0NBGdXZ4dE1Id312T0xZXNHbVnVOcHZxZmBsbmJvZn513NFzc3BCUExW0VrF/eTp7Ono4+Tn4uni4PjJzdZG1kJNSmdhYmF0eG1vaGttYnx+fk1wdNfS++T//PXJ8/Dn4eXu4+Xk5ezn9PXRVMLKxNZwemFvbG5jemFnY2NhYGd+YWVyfEpxRMzc3tBRy/775ubl4uLm+//48NnfSnpydF/QQNBdQsPJ9vHUydVJVNzN8VDawlDYy/rt5OH8xdfSX9x0c0xGU1BU99HQwdvM8/zt5/H729BXd01IenpgbXpnfmdpbhRrY29hY2lhY2B3Q1TWWcb25uqUl5bql5Xu7u3t4vHw5OHj4fn5V1hfXltyfUN8ZWFgentmZmNmYWZ4cUlfRVhCXd7E9srZxsn8//zl+uf+ytzZx/fP3tnc3VVHSXVPSktNW1tST3B+fXFAdUhF18fH311ZU1JHXEZbUlHT2sL98/r6++fl/P/x/P329N5d1UZGcXNxfHt0fX55Y2dgb2dhcFJRzczb9vD/4OiUlemUlJXr4Ozkwv3/w9NPUkt3dnd2eHh4ZGlubGhvY2dkYWdlZmdlTEJxSVtRWUVXWXRUzvT2+u6V7ebh4+3slO/k++bt7ebg5PTYxvTaRUVwZmNtZGRgZXp+cnp+fXTG9dHWXNvdX8TLwPb35fv0/PrJ0FjN/Pfx+fbaT0NcdV7C0nVmcFpwfX1wZGJgeWBvZn97ZH1S0MLy+uDh4+rv6ZSU6uDk5frw8f3Pw97KXE9wc2RrFxRqam9kYWxtZHBIVf/k+/z85Pr64OH65eT4ytHP9cVVRkdVW1NUd311QUZHV8ReQn5yRVjb88VSR3Fxc3xzeGVibHp5Q1BDcXBAXNPa8PL7+f7n+ufg5OTn++T5/uXKwlZLTXdJUkVze2R+fHt0dX1ga29iY3FBREt+Tl9R3N7a21LV2sfK+/r/8Ofs7eDj7e3m+vzK9cjBX3Z8fHphY21saxRqa2xnfnhmZHx1TV7azFRSUc/+4ejj5fj75P/Jy8dQRkpBWkTUQndHRdnHV9rdRXR5cV5Q3VRbUFrQyd/IwdDTR3ZBV/T0xfb09/j45+bl+fj9/fj6ylTURHd3cnpgaWhqFhYXFRQXa2huZHFDdHReVFHT8eDh4Ovp7O/p6+L65/r1wcn68Nn19djBy/PCWkVeTHFP0FVxdkx/fnNEdXJzcX9kZ3ZKdXdGTkTV9vLM28vC38r98/P65vz19Pnw3lNXUkp0VFZId0xOc31GQHR1TldedVBYQk5HUVhYw/fGWU5U3dbGzsfAy/L8/fPz2tRS0NJfVMLa3MZEdHNzd3hnYGB6ZmRNTk9QzMLK+OLs5fvn4efk7O/78frn5/jn+dB2dk9zZXtwemBkfHp6ZXByZmF/e2R4c3N+eXZ3dUBU0VxNWVFAXd7H3Mz65efg7+/h7ent/vb98dnXzszawM/LWn11SHtkfHZ6YHp3S3RN3FHT9+fk8cjMwd7Y9/rl8/v2wMTazsLRVF5AQdPJ89tTSnZwdkl0S39jaGljYXJJRXFkfnZBUNLL1U5KWcL08P/l+fvm7e3s7OHz0d3188rI9NdLd3dDXdNVVEd3SU1fR0bQxd/C/+bh5/XQSEpaWFRcQ0lNR1fH8fDLws3AwPfNwtVCUfX2/fLN3XVwSHRkYWlrEBMWFGJ6c05ORsX1/v7z+vjn7O6UkZSU6eDv6JWV4uH0XVJ8fE11dXxmd3J/c2V8e2N4cEpaTEZHd1lX0cnD9VB9SlBT0NVV1UrXysjw/OHi8Pz75ebz9MhXQFpV0VFEW3BtbGZhYWF5eX1lZXl8d0NSy9zH/fzl5OTl+v/55OT73lfaSH14ck9yfXVbVlPC9N1BXN1bc3RQ0UBd3fb99/rk8c/05PfW2cjfW9/GxtJWxvTw9vT31XBLRFxFQFJQQHd2cHB5ZHtkZmBsZGBjZX5JTHXZ21XVyvDCWEdSSUJaVtld2ubg5+Xi4vbL9sj12PX5/fT4/OTl8OT/1tzVVk9nYGJpbmlsYGd4dn96ZHl2X8b28vrz9fPy/ffx5fDD9vbK8vL29NHXQEp1YXh8bxVrYmRlc0hwc3VY1d/Z9fTLVUfW1dbM9/76//zD08LL9c/AzffAwPf09MTeVFTUR1bcTHxlfXd9T1ZeUF1CVdNW98/eWHFEWnRex/P7/cn1zsPP9M1dTHByTEhS1EpaREvUXNPx91RFemFmbXtzf3FmYXB7eVjR2FhHUtdXxv/+9cD38vv4++Pkws7I+Obh7OL8wtZHTHB0V0N/Z2NhZXJYXNHQXF5R3NvB0kF2cUjc98P0/NHVX1fw9v/m8VZd3ff3yv37w1t0S0pzRkZ9YG5tYWFlfHZ6bGBnc1tQRE9/ZUpa9Ofm7+L4/vv+/+bl/shdTk1W1cH28sZbTF1W38fSVnVTyd/z8PP7U3Tfw/Tm5PfPSVPRWcn8+MNYcnllek5QW0B1d0pB3P/yzlJ5e3pnQklhbWoUbWB9x9hRVkxx1VzC/8zJ1NjH9P3g4+Hn5Pn6+v7k8dVOTUzdzv/h91tbQ1DC8+T8xlZXU1TYzP7LV0l+ZXp+cnh9ZmZlZ3xa3MfXTl1TUvT88vJV08LI+uHu6eb3x15JV9hSRnxgZGRmfllU3ld0THt32N/SWHVbQF31+f33UXdweVn29M7cQ9HDyfng4uHn211DWsvMzcnS0cff3PD+wd1zeHpyUl1FQn5lcHXT++bn/93Vx/Tt4PnyyNRbRU3DylXRcWZkZnxlZ2dtbmtvYH1Dd3FhbHtO18bH88zc1cHI+eLg+8jaXdPJ9/X+8/7/+OTj7OP5yt9SXMzC21x0eGR318HO0VtxYW1lQFJBTElKUNXE2Mz0+/HD2ML9y8TD2FlV39JX2dnYQWdsY3BOTkdAcXxyf3bZxMBec31/Wl93QVFWU9Da0/z5/chAT0bAz8Hy89pfV/T94u7j8VlzfV3V2NhGdE5H38D2+8pdUtVR9fLAyMVwT9nf3PHwyt55Z352RV1aRUhzTVFS3M7RQHF/eHRWWkhMdF/0xNHa3kN5YWNlcEJeTV1Yd0HT3fTm5v3ZWdXH9/zy+v325eH65uD7xFxCTNPQVFpYRE9a0cXJ+vbcTnNmZnNf1lTbUEBAWN7+xFJDcXt5RVxWXl1RzeXv6OvnxkJ3c3bZ2FdDTn5keHJL0VZwe2ZjaWV0TnxxTk1QV8///cRd1cPR9/v+xdJVVNjc+eT2VUdxfHxGxNjC5efk5OTs6OL5ydfVWlrG3kdXUF/axPb533JhaG9jY3NGSUFSRlba/ODlydZJdnBkf3Z7ZXJ5S0pGxUZjb25oY3pY1El1XkbR8eXplfrP29FWV87w8fHh4+bh4O3j9dNUUFRd1FTUWlbF8uXt6+/0dX5nbmptYGBtYXl1QdP38V13QVtLcFTf3FXTyPvn75Xr5Nd0dnN4REBwe2dkc3130txedXtlcH5LX15Y0/Xk5Pjj4PLVSXdwfnZCd3VCdVbL8+/q4fRQSUFLW8HLzPTx+ebn7u7kzVJZTH9lenxwf3dU98nx5PfTXHd/c3dOVN5QWFzHzf/t5MRecHhmY2FnZGFlStPQzuX5U3x5fGVnZHJJf3Tdwvzg65X611h2fn9mfVp1WfHk7ZSRl+Ph4Obx01t2dXN30/Hz5+HkyUd9fWBvbGJ/cmd13N7y5ODk8FTcWE1JRcFCSETI8P7l+MDVTnF9ZWRlcXZJXs/I9OXn/PTVdWVsYWdnfEBD29za9P7y30l+dXBkf09b0N735u7qlJTo4cdUXn92UdDM11tX9+Xt4fT0XnV/Znl0WFfV2M7l5uLg8MdRTGVvaWBtZnpgZVzE9/n85/3fTGBjcWF3UklKwfzw//PzxNVwZGBgYGd5eHJSys3z8/n/+tjQ08Lx3vLw/fvn++fg4eXg9Xdyck9PR0DRxff2wM3229ldentjYmdNX11TzcPX8Pz19lJgY21uY39IWNz1//jg7eLt7fFYR312dHl8SFHQ19PEWUx1ZWtubmRyfH1wWFbbzfP8//LefE1VU9/Z2Mv98Obn+fr69Fp+dVREU0Z1wfn95+Lu4+flzlNESHB8dnBdyd7UwvTR39tVRHdlY2hpbGFzd1jP98b3/PTQS0p0dXN3SHB8fEhTXlTOUXJlZWVMQEVXdFpd1M718+H9wF5OUcTBU8TGwcj54+iV6uD2VU1JR9FIVNFTXVfazvLzwkt8e2ZmbGtiYW16ddnK8P7I9dxRQV9YX19VVlPf9fH099jJ10dxfXZwck51TVBCQVvZ1lRAdnRySkxaRU9T3cXYyeHm+cB0fXtgYHhaV8H2//3m6+/t4/XMwF5aSUp0QV3cwvzv4eXm8lVFd35PTmV5e3FDRsTE3MNVS15bcXV0fHdxRsVW3tNf0E503vReTkl5cUNf3tv1x1XA03RzdHpyQXt/Tdfz/PfP0M/8ysz+9/Dy1UZUyOTn5+3h5/7M2vP0397G0Ex2SEVTXkdWTnNx1VxOdUxe3tjQ2FJGd3FnZmdPQklbXEdVVt/4/OTz/8hUV1BAd1nRVlrayP748FxSfGJjYXJ4eH9hYXl8Rcv49vH23dr18/b45f36/vb47+j6wVB+cVle18DGX0dJWdD95M3FU3t+UNDC9/fF1vTJ2cr+99ZceGtiY21lZGBhc3Z2Qf/819JZX8bP3vz10UBCQEpW9fHUV0dPd3JkfUp0c3VPd0FQx93S28rz5OXj6O3n5Pzw5eHs5M/Fxt/bVd/323VLSnBLQt3ZVHVdVl9aRdvTSnVYRlLexsXXcXdP1/T1/89OcX1heEBR0tNDTFVZx8LzzVzV1URM0txGcGZmdEBT2/L5w11DRk/e9vXBTnBG3sb85Obk+vnz9f3n/v3Oz8HI3vT68vXHzMfT3vj101tNXllE2/v0ydVAd3x8RFpKS3B3d3ZNXV/WVVNKdEBdVlxAfn5ySl/O9c7AWXdKUs/wwtxBQV5d2Pz78/HM3FZX2sbbxtnK8/D8+fjw9s3X0sfIwdLSVlNC3f3n5/nl9E90d0p2fnNkZ3hyTlPcVM7MVFZYXVNb3FFBQVdQV8P08s3USXRE2dNUU0p2Q0Jb3ND1xF5OdElbdnFdRFzcxMLHXMfUS3dxc3x0UtXUUkTcwf398vvI2M/E3lVa1kx/1MLQz9rDytPU31VUXU53T0tA2F1SVdv0z9veV1DM2NLf2NvbV1dZR1FOcXdOcXx8cUpA1MzYxd/ZydddXkVDf39zeXROWF5U1dT1UHR3fHhkZ398SETGyvHw9eHl5ODk+ffEw99dXVXX0FTS/fLdR3lnZm1lc3t/TkpY1VTI8ff3//z79fT0wfT8/efk8/v3xtJaZ2ZjYGRhYX58ckJbxvXFX1hOd3hkfHh5Wkdc39b1w8nY9fz+3XF0fHt9dUlUVczL8sjb0dVVXcfKzM3CUtPW11XSzM3b3NrU29deX1nVysLA2dzWV9LV11xRVNrXW1/Y2dL2+fDZQUNMYWd7cUNRTk9FdUp/cnh8dEpxfXl4e3l0SVjN+P/z8fPe0dDH8OXk8N/N/PL2xMbf00xLU9dGS1RcV8Py+v3QXUdEQXVLQFbUxlVR1V7G9//k+vRddGFheGdgYXp1TVrEx1FRWE9V2fT2W3VAQ1pF08bC2FRWdHNzT3dLX1tAc35P287OwsvB9/PH9fXQxcLO+ebj4fvNUkpMSk5b1cLWRkR1SlDX3cbAXk51fX18fnBOTF9U0cTdVFFfXdnZ019EUlhCVvX0/ffMxltIQ0db1s/z/MjKyMvN2d3XWEtLf2RneHB2dEfB+efg5vLNRHFMW0pF299QXNP3/frh4ubJVF3XW05JQXRxWdNQSXV8en5EUdNZd0x2c3N20/Lw8PzP1dHP8cz54+Lg+/D++v7J3NFQQHB3S3FyfGRhQt7T0lt0c3xyeXF3TFPDz9vM+uX54+/u7uPl9sHDVNTJxc1QQ3F0SXR4ZnlwdlfEVdFTxtvZ8PLzytBBR1xV3/T55+Tl+Pvn4ObTXUN9fmdjYmNnZHJQ9fb+5cjAyfP03MTLwd/Z287x8/3/9vD29NNxcH5nYmxncXN8cnFzeErYx878/fPI1tn0/f7w/vPP9M3GUM78+//5/8zEVVFfQl9LdUB8ZHp+fHZbz8jK+/v6+Mne0t7OzNvZ09vx2F7X2svCz9hbWsTAWklxTllX10JKd3ZxfHh5dFRZd0NHWVf34ePg+/fS2MDb28T38vz78+Xm5Pn3zMLG39JNdklMRlzZy//l/VdV3UZ2cUlxcXJyfn9GXdTPyPfyyNbcyvXaRlLZV9/bXHZORkBSRVzMyMVNcXl/fXRHTkBIcXN7fV3C/Pv74efw+/rl5uX1wt1QWk5MeX1PU1lE1NbRXUJMWN/94ef59tvdVMPz5f/N111ESUB0c3d0Ql9EWNTQdmdhZXl3WlJYVFF8dlzdxsr/99FRR0xS38LE09fX3c/eR1dfWFfWUnZ/dnZ+dFPEy/rn//fPWk9YU83K9dlCdEBJXt7N9crzwsf/+M7dVldaQFxLf3pkbW5sZmRwdHd1c2Vlf0hV3c7fW19d3cnw+Ofl4PvNwVfURX1wcH1wdnx4ZGd6dVrW28NWTEN0QtL95Pj5+fXE2/bl+sfVRklJfnpmYGRkeXZLQVZCTV1awvD9+/DxwEBwdn90Tk1NdV1FdnF0SdVWVtfXwMbfydJRwcT0yMXaXk1GdV/Y0cnDWFlYcXBldcTRx95EcX1wcXZFRV7UVtfVR0RaUdvcxvbI1kR3c3txT3dBRHV+eEBHTEXeWF7e0FBC3fbx4eH65/v98cnFU0VSQHdEVkBKcHJxWcvN0fDO01xyeHhJSHVf0VdVUVfYxvTzzvT68s7dUl9f1NVE2N5GR3d6ZXBf0kdKcGBjbWxne3l7cFdWUcrLwvng6+nplO7h5vbNzsTZxPHCXtXRdk5FR0VHR0Vye39lcE/Vxvb88/Dy8PT//vv+8fbeW0FPTVlZRl5dQEl2fWRkck1NQNFQSkp2eHxzf3ZGSn1wS3Vf8+Tn4e3s4+f+8vbIzMPG2Nnb1lRX18fByfD2UHB3dEDUV9POyfH8/Pz8/fr4+Pz7+sjV19VT31PQ8MxXR3xnZ2R9fXx1SnZzfH1wc3ZKW1hWx8HCxvXk4Obv6O7i/sPdVFxOdHR+dEBMQEBQ9PX1+fz999JWWEDX2PX+/ffKwN/O8v/08v3y8s3f0NBXV1VRX9jSWXBnfnV3Wt9cV150dElycE90fnpycHVNVMnl5u3s7u7h+8ndW1JTX1hbTnd/eHdARltHcUJASktKd0VR2vb+4+7v4ebg4Prk5v73wdfQUkFS0k7WfEtQZnRPTkbd1tHGz9VGd3hlfX13TnZDdkPcxP/i7+/g5OTzzF1ycHx7fHZDR0hF1dHL9cjCXtZWWtZGQdBR1dbX0NrGzNHZ+fL4+//+21xFTNfd0NVGdnxkZX16QNRaX0FaUEx0fGR9cn1O18n3zfb65uzi4uLh/MRdTnFzcXN/fX1ydEJWVt3Z1tHRV093QUZHVsPK9PL/+fXO9c/y+fHwyNhTQ3RyfX13fH9/cXF8StXQ0VFc3VdAc3h7fnlzfX1xdl3Q2cz84O7plOri8tLSxt7c10taQ3Zxd0hRV9fUQd1cTXZ+dUZN3Mz3+v395f3/5/nl9vTy3Ul+ckpKSnV8f3hhZ396fFnQVU1YWHFlYGZ/eXNzfEdDTlbVxvjm4Obk4P/TT3F2R1dRRF5VRFfGxML6+vHDwtpfdnJPRFRV1dPM2t3FwdTH4ezh4ODz2F5S1cH1xtTVUnB5fHJ/T0d3fnB8YGxoahVjZmR4dk5NXtbM/eLp7uzj8MrZ01dV2lxOT11MRkxNS9XOwNrf1ExPeWVKxPT/8vb29ffz8v7j5Pj55cnXWH14f3d/f399f3xzd1jT0FRYR0t4eWRnZmVnZXlyTXB9TkBV8Pjl5+Xzz9nW38jIxs/b0FRd0djQ0UdKSEp0eGRjY2ZkcUHE38PI9vb84e/o7O3n5fnKwNrd3FRfWE9GSX5kZ310cH1+fXFnaGpoY3h5R0ZL1dDH8+bt7eLu6eD8wszSQUdTQEh1QEp8fkpEWV9GQk1GfX5yfXNH08TZ18Le0cPy8/bx9/D88MfQ0tnY9/DPWV1VSHdKQXdwQUZLcnhgaBVrbXp2cH5BUkpa9+bm7O7t4eTk/8zdwvHz9dNd2tBWX15IcU10fWR6ZGBhfkfAzcLIy/j/5eHm5ODi5vr8+vRVRUxKQ0p0eHhnZ3hyfmd2dENJdXB8f3l9TVVQUlfX3ff45f/h7eDj4Ob/9/H99fLyzM7b0djB0kd2Ud1Y1dZNdXNxQlvMwNbY3s/KyfLz8+Tl//r+8PnKw1ZFUXV4eH57cnlkZWV5ZmZkYmhvZmV6ckNCWdTx5+Dv6O7q6u3p7Ofl+vP9wtxUS0ZBdHZyc3dxdXVYVlJFV93GwdLP9vf+5OXl+ufh5OTm4Ob6+/PNyVR1dHpkfn5xfX5xdkhNdn54ZWFiZnpmeX9mfETU19T35//64uLt7O7u4e3g8vPL0szG3FJydH9gZXpleHl6enbQQ3HT1sD/5Ozs6JaVlZaV6e7k/M/IxWVjY25vYGNib21mY3hOdnB2fXJ7fHx6dEhG3fXz/fP65fj6/P/l+vPw8ffSQk90fUpbRVhaWUFGU1BCQU5OQ1rWXlld0d/L9/P5++Tj7umVleru7ebyw19wfXByd39nY2JsaGpsYWNibWNjZGVmek1V2vjt6ZWX6u7p6+7h5+TyyslccHl/eWdgYmxtZ3lyT1VZXtbWU17e19fY9P/+5+f4+uT75eTh4+Pm8V1EcmNiYmBlcHB2TkxIcXBxf3lkZWdjZGRgZnFDWNXXzPjk5uzr6uqV6unt4uXCXVHdWUhlYmJsaGtpYWdneHp5dHd8cELb8ufs7pWQkZaWlJTp7+37yFV5bWsVahVqahZqbmhmcnVCTUBKSERFWFhf2/Tz5+Xy+cvGw/X9++bm//zKXUtzdERZ1t9EXdNUUFBWVN/VWVlMcHxnY2d8d0hHQcDx8uTi6peU6+/s5vPFREtPdX5mbRUXEB0SExEWFxYVbm5oa2Z2xfzk6JeUkZfqlZWV6pTo7OfeSnd6Ym1oF2tqamxsZnBHU93W3s71y8D+5eTj7e/v4eb++efn4ef21lxyYmsUFW9gZ2dyfX92cH1/fXFNRERBSHhgY2Nmfnp+dE5Q1NnM+uPv6ejrlJXp7eHn8MjWQHBlbWhrbmFmZGdlZHtiYH5ewfHh7ZWXl5eVlZSUlevs5PnZdGdibWoVFBcRFhYWFhcVaWJhZUzR3cfO+OXk4Ofk5/v98vX1/OX5w1pOcHpkZ398cnR9d0JEQXRKVvT39PfK8cdSSEpDTdfGxvHy//rg7e/u4+Lt6e7g+M/N00t+Z2xoFRcREBEUaG9sY2BgZ31UwPLl4e/v7uLg4eTj7Ozt4f7wy11LeGdkZmBiYmhpbGJnfUxJ1Mjx5O3t4eDv7Ozi4+Lj5ubm++f/zdlYdntkZmZkcnllc0tyfmFiYGdwSV9YR0p2cn1wSllfVczH3sDK+efg5uLo6+jr6eL929hPf2dhYmtob21jenxyTU9wQdXSyuXg7e6VlJWUlJWV6pXu5v7IX0l8Zm9tbxQVFRYSHRAWFG9hcFHN5eLq6+ro6Oju7+/n//nxxNHXSXZ2dnZ3dE9NW9VQUlHVUNDK9cbw+vr998/WRE91R9PTwcrLwcL45P728Pn+5eHm+8jAUnZ3fmZjbxVraGsUaGxuaW9kck5RzPX0/efm4eDg7Ojo6env7efk89tIfXFlYWJjbWtraWliYGVG2fPg6e7u65Xr7u7qlOjp7O3g+vj3w1hzfHx+f3B9ZmV8e3phYGBgYXt5dHZ2WllETEBHXd/Z38fd283N0dbQVMTw8uTn//X2/MXW2tHR2dddRlnV1lZFTlLXV9/P8vLK+Ofj7O7rlZSRkZbq7+LkzVpLeWFsaBcWEBITEh0TFhRuYXBU2/X85+Dn5+bm5uTl//P3z9vSdHh7eX1+Tkp2dEhTX3R0W9PfwfL55OTh5/LS2sHf3M3z9Mj0/OT6+eHj4OTn4Ob58/7y009LdXZlZWZiaBRqFBYRFG9sbXpOXVHc8eX7+Obt4uuWlO7k5uTBXnB2dmFsbm5vFW5hYWBmd0NS9eTm5efi7+Pg4+/p4uHi7+Lh5/LeUkVdSUpIcX9mZXpkZmNnfmVnenRxeXBBSXVxQN9dWkNMSXRHVllaWlbVQEXWycjb9c/Jw9faxNNVU1l3SVtOfWV4cHB5c3FFSE3R0MHO/uzr6paRlpWVl+vh+vDAU3tmbWkUFBUXEBARF2hoY2V4f1/3/Pz8+uT6+vrn5P7l/dBCcXB0c35/ZWBtZHN+fUhYVVfY8/r+/uX68PX85eH4y8dQdXXUx93Qxc3Axcv++fH29MDWUVhSXXRxfHtjYGRvFRUUFGpoY359eXp/cEzT9uHt4uzs5/vm5vXc09VRR3Z1dnlmYWRnen52R3RLUlNVwf3k+P7+/vn9/+bn++Tm+Pf/8/T2ys3HRXZ1dX1nenh5enpzSXJmY2FibGd6dkJBW0BPTlvdx1fQ0NtQU83K3tVXXkJB0tDBxtvY1VNR28RFd3R3cHTS8P3A2tjd3fb74O7vlZaUlerq4vPLxN1dRV9WSGZpFBVqbG9gYWxvYmFmcEVNS0ddVNPK8vzz9MHWRUZDdXZkZGRnZH5CSX95dkRWwf7j7ub998DByMr/+fL39Pb1zcNXWF/Qxs7y+ufi4fvl8vrj4Ob7/vLC3d3cXXJsFRQQExYXam9ubWNmcUTA/fvj7O7p6+jj89F0c35zQ0BMd3pjbWJkfHR0SE91Rcb75/j75+Ps7ZWUlpXv7Of//f38/dnUREtIT15adH1nZHFJV8X2ysRFd0tOdnFKd3BzdnbU01hAcX9xdkXW2FB1dXFzdFzP/Pfx//Lz/eTk8dFKcHFyf3ZaQ0x0dkxfVcX9+f3/4e3rlJeV7+f6+fn65OX3ztZCd09AQUt4ZmdjbGBmYmxgYXh2W83l5eXk++Xl+fz99tFMS3l7f35le3pnZXZXzfHx8vbD9fL5+fz48vT1wfPn+8j1w9zQ3sH/5v/3z8fE9/765P/M98ja9fHYW0pkYGBgbWBtbmhqamx4S1zd2cH8/Pnj4cjD3lpGSk9W0kJ0S01LSF/Rx9Z1QFVWxM7BVd7Fw/Tz8uDs5/v45Obh5+fk+PX3zMn/8sZEWF5TVtXC+/7KxcddSUJ0ZWBtbmFsbmFlZGFlcUXX0cTy9MPe0lfH8fL298TRw9/byNdHTnZ3dnVDUVJDWlBfWMbz/v/+5eHs65eRlO/g5/ry9/H+99VEWENKQVxZTn17fHl4eGRtaWlvYGR8S11cRFNXUdD08NtTQE9KfXRAcGFjZ3x2S0bSzsXE8vn++ebn/PfFyM3S39xEdnRNU8fO9//+9M3w//vm7O/i7ePv7eDm+8NSWllMcXxkemEUFhVqFWhsbW1nc9/Nzvjn+PH28svc1NbcRnl6fXpkZ2RnZ2d9REBEXllMXtLbyvnn4uPk5ebj4eLs4uf4+ef5wsDD1UhPX1NQX1Lb111ex8za29dYcmdnZWFsbmxqFxVpY3h2QlxaRFDWW1ZWWU1IRtrBUE1ETWVkf3dxd3dDR3FwWl5CW11dWFjc/ubn5OPi5fvm4Obm4eDk8872wtLVU0B1R9TY1kRISGVjYH9xeXBAQXF5fndxdVlWRkJE0NVMdndLf2FkcHx8fHVMdkFX0NzezM1fUtDL9drH3lhLd0BSXMX/5/rk4O/j5Obg5/3+5uPn/fTO1kx0X1hNSXVwZ2BgYGFgY2diaWJlSEdfx8vCzfT/8cvLwF5KTkF3ZGBgbxQUb2dkeXF1dHdL3Mnw5+Dt4Obi4uDm5+fk8fXLw83TV19bVlTazsnK98vP8fjn5/7z8NlHRkVCdXF8YWxram9ubGZ/SkxWycjH3djB0Ffexd3UWU1xfXllfnl+cXZ+fn1wcE5Q38DbwMj08OXi6JWV6Ono7+jr7ODm4efzyNxcT3pnenlwdUt1c3xlfnN1XFRFQ05KQ3V1S0hPdHVKc39yf2FiYWV7e3p5eGR6dl5X38PE21JMVtvJ9vzl/vz2ws3DxcLCzPPk4uDl/vL5+PL65+bm5Pj9/fzy9/b099pSX0dJcX1+emVhY2NtYmRJRFzbw8TAwsXeV19GRU1JcWVgbWtraG9jZ35zdXF2Q9PI/Prk5uzu7O/v7ePm+/n+/Pjn+/H39PH28P3wx9DU2PX2/Pn3zt3W0lJeWkJNdHx8fmV7f3tmZHJCU9DSU053cHZOQFtRUHVwcHN9f3t4ZGFhZnhwcHdOT0XX9PP45uLu6euUl5Xq6+7i5uTl//Lz8MrfVVdXVdXZ8czHy/b5+/HMx83I3FxaQF3RU0R3cUpNQEJJdXdwfXt6fHFyZWZmZ2V/dUBPc35yS3V0W1fW3sTJ9v76/PHJxvX44e3v6e7v4uPi6ZSV6OLm4eDg5fPD2lVATVnR1kdzfXx4ZXhydHR3T1hXx/TC0EVJcnpmZmZkZWRkYGNibG9ub21gZHl2QkVbU1HH9fng6erqlZWV6ujo6O7v7+/j5OTk5Pvzys7C9v/55+fm5fvg4OHl88BSdXR2fHlmbWgXFxcVbmxjZmdgb2NmeX99cnB3dEFCR05/emFhendaUdXBzcL85eDi4+Pk5OPplZSXlOjs4+Dj4+b7/v329/D00FJaTU9LTkFGQnFlZ2Npam5hYGZkZWVleHh+eHp6ZGVlZGR6f3J3Ql5W3N7W2cDOxsj++Pn4//3/+f7/+ufn5uT+8fD/+Pn6+//L2tveU0JwfHBwd3RKcXF+ZGVkeHFKSndzeWV/d3RyfHJ/c31xRkJCW1lZWUdS1VFWVt1R1c/LzdJcWlDTx/H//f/78v/88/7/+Pzz8Pf///fC2V9aU1lbT3JnZ2R7f3ZMQE1KTlpDSV3TxNNZWVlCdEtHQHVHRFpdUlbR0tLbwM709MbMzMLI9/f398bQ1tRFcH14enxyeHx8enx3RF1ZWNDQUtPA2NRf1NBW09LAwdFFRU1IR9bFxs3H9M3J//j5+Pv/9cTCwsDAyMPeXV3ZycZWX1NScn98ZWZtbWJtZ35KRXRydUdISl7Z1lZTVlJPQkl1QEt1dXZDRdfZ3N3I8fHl4eDn4eDj5/rm5+T78vLOwfX3+fHCwNxedktbTnB3cHJkY2NibWhubmhsYGZ7ZGFnZmZkc0hJT0tJc35zSEBbXllbWt3A8fn8/uTg5uHs4uPj4ef4/Pn98PTY1URX2vH6+fD29/b38PPA00VAdHhlYW1pamoUFGpobW9obmxub2Jhe3t6fnd0T1hdVdPby8n25ODp65Xq6O7o6O7s4Ofn5fnl5Pry/f3x9PP6+vj2zthWQURETUhyf3thYWdnZGNhYWxvbWFnYWBhZ2NsY2dkYWJmYWNld1pcRNDa3MX94+3t7+jr7+zp6Ozh4eHn5OTl5P/398DS1dzA2Nvf1dVFX9rQRHVJT09T3NvAUk9GQ3RwTEl9emdleGR4SnJmenVzcNHB9fDCy/f09Pby8/D28f788vj68vT19MLw5fj7+ffI9MDf2ttQWkZbWUBbWk1yfX9/cHRNT0xLfXN8fnFCU1NZ1tnA9v3l//Py/P/85ebn/vbCzddHXlNHdEtXXE1d1tpWW11eXV/N88reVlTVREFdXVh1Q1FCTdXXUElxdnJ/dVJTRExLX1JOW9LHzc/2+Prh7uqV6e/v4uLv7u3n//DxwtLGzsdWV8XTUNbe005/eWdjY2ZnZ2BsYmNvbmNjYGB6dHdJV8fD0VHc0lHfy/f3xtTbx9/GyMjK9uTm5eHj4OHm5OX9/uXm5/r75eT78ffK09RU2dNEUldQW0l1cmdne35lZHp4emFgZmZjY2Z5Z2R9dEl3cXZweHRU9v3w/vv+/eTg4uHi6e7i7JWV7+Pt7+D65Ofh5fn+99rbz8nF0tzRWXVITkx9emVkYm9sY2BsbG1jbGxtYm9ubGBmYXpzcnB0WlZZ1Mn///rj4uTk5uHi4+Di4uHk5+H7/P775+X7+vnx9/PO3dreUUVNTXV1dEpHQ0lPQVFfS0hJdnx8fmNtZmFhZ2dkZ2Rkckl2TVDR2NPXw8vN9P7l9/T88PD9/P74+fzk5+Tn5Ofm5Pj/9sHS1Ul7c3N8fnh6ZWVkZXRJc3B8fn99cnFzf3NGd3JEX1HV2cH19drL/vfMyM7MwcDax99bXdZEUNvT39ncxM3b3czD0VNeX1NYWEJLdXdxdndF0VdU3djYwldFUlhKdUh2Sk90d3Z9c0pxfHTQ3dr38/rk5fnk5OXk5Pr75f33xsHA9cfB8fTZ29rH1F1FSXR7ZGRkY2NibGJvaW1hYWZ7fnN0Skxxc3N0SXx4f2V6d3F3RFLXyP3y5+/s7+/r6+7u7O3g5fv498rw8crE2c/PwNnCxNHeVER9Z2FgY2Jpb25rbm1hZHl6eX12Sl9fQ09EUkZxT3d+ZGZ5fHF0RNHOyvb6+vnn4uPg7e7o7ePi4OH4/fzz/vr5+P/w/P32yMv3VUZBd39nYWNvaWhoaWlsbGxtY2JjY25rbGNuYmFlemR/TlhBQFncyvT94eDn5uLi5+Ts7OHg4+Pl+OX48/Dx8PXN9Mr3wtrXWUdLTUNOQkh2dUpN0NvT3lVaTEZcX1JDdHJ6YG9vbW1tbWBgY2V9cHROQ1xUzfP5+vnk+vn65OHj4eb4+/r45uDm+vj48vXx98zfVF1NTXd9cHZzcXFJSExZS317fnJ6ZGV4ZGVnYmNjY2RzcnZZ0c33//r6//37+vbI9vHPwsDB3NzR2cjM2trXW1xX2t1cTUZBd3ZMVl9dWkNAV9PN/fny8Pbz//L8zVhaV1p0TVtaXF1Mf3VDXMDz8PH8/Pb0+//3zs70wdnc08TE1VlOdU5U11BSREFHWlPWTndyf01Lf3VId3V3TkF0S1tNR09OR0BGR3V8ent2TEZZVt3awvzk4+/u7u3v7+no7+zs4fjy8PL0xt3dVFdU1VNaSkpxe2Rnf2VgZ2Rgb25iYGd4dEZT1FfT2VfX3FFdRVffW0ZRX0FOW1xQ3sXx5eXk5uDt4u7p7O3t6e/g4eDk88/KyM/I9Pz88PT1y8zS3Vp0cXt8fmZkZGNpaWxvYm5jZHtgbmJtbGJ6Z2ZleHFIcXRCUVXC8fH45eDj7+7q6urq6pXu4ubh4OTk+v3bVsbGx8TDxt1XUFBbTk1HSHB9cE5SR0deRk1eUl1RUd1QTHR3dHF4fHlkYGNnfnZ1Xd7F2Pfz//z75frm4uzs4uHh/f3x8ffC9c/38PXI9czb2snJ28HCzczQU1ZeWVtQREFOTFtBcHBHS315e3p4e3NzfHh5f3l/T1tT19r28v32+OT7+uX6/vzl5ubn5OX21kJEX1VdV19PdXt8cnVPdHR1c3dI1cHCx9FSXFHbyMPw8/vl/PLy8PfN3lZdU17U39rc39LaxszI9/bO/fP2//fNx1VFTkdT1FdFTEtDRFxTW0txemVkZ3pySnF5Z2RkckpGWVBKfXl0QFpEX9ReU13VxMvI2d3X19/Ew/X85Pjy/Pnn5uLp7uzt5fz1/fbG3tTc1k1yemVnYGZjY24UFBcRFxVpbGN5fnl5ZXBMWllF1tFU2tnK/PP2ztvb0MDM8vj1wd7CyPTy++fg5+Hh4ejo6ezn/vXJ9vLm5/nw2Fx3d09DdHlnYWkUFRUVFxcVFWpoaWJtaWsUFxdqaWxjZnJ2eX50RFle2vTz/Pjg4+Tk4e3u6JeRlpeVlOrv7e/h/v358/vl/P7PU01AREJEQ3lkY25paGhsYmxqaWxhZWdlZ2dgYmdleUtaVkB2cHZJRcXw88j3//Dl5+Tm5ebn5uXk7e7t4OTk+vH65/rx9/v6/P398MrB11hxZXh9eWZmYGBvb2BibG9iYGBhZntkbWdlZ2F6XNBFTkRRU1H18cRfU1HczfLh4+bn4+Lm5eDt7+X2//LIyMvJ1EFFUt3U3fb00UdAdGdgZHt6Y2F8e3x9cHF6e3ZdW03H9sNRU1TZ08n98/HM/eX48vv69NzQ3sz28OTh5fD19NJYXNrDXEBQXktCRFhLS1ZR3d7C/PPdUkV1emNtY2Jvb2Ntb25sbhVrbGFmZ0/W0dTF9PPz++Dj4+Dt6enu6ent5/7w8fTx+Pv029NecXp7f3pmZXl6ZXN0cH1wdEhNRN71xEdMdGRibmhvbm5jc3F2XlBBQdfB9vHx4enh5Ozp7ezqlZXq65WXlJSX6+H+9c3bVVTR01JAQ3F4ZGd/fGVncFl3S0F0fXxJW3R6fnV9Z2dnbhcTExATEBYVbmR5d0tIR8Tz9PHm7OLg7u7s6eqQkJCQkJKQkJKR6+L69NNJTlpIeX5+e2VmeHFwc3x/eXlwR3Z/ck7SQnB9d3d3cX54YWJibWJhY2FmfVZWWkVRyf385+Dj7OrqlerolZeRkJOQkZGWl+jn8cLUdn55ZXpmZXByeX90QUNXwNlfWMXaTXphZmBibWxvbmtvbW9pYmBgYXp2c3JMxcrNxc3PyfHk5u3p7+vq6+jo7+zrlOvt5OXg5c7URHJ5e3l7f354fn1le3J+c0JQXHV+d09Lcn5kZnpOWVbF3t/axNjMxdbTzPH0zcPx+fj/+/3w8eTj7e7u7e3k5eb89Pvm+f339fDx0UR0fnp7ZGd7cHRxdH57ZWRhe2RmfmZtY2ZpFWxgY352QFDYzPL+/eTk+Pj88/fA9/vn4ebn5uHi4O7r7e7v4PjxysH0wtRcREJFWdRTdHB4Ym9obmNne2V8e2R7fHt7fXJ9eXx0QXBwVtFaVNz0+ODulZXp7+/t5uT9/Pvk4unv4uzv4+Ph5vvx9MjGV1heVlhATXVDQ11QRXR5ZWFpFWpoa25iY2xubWhvYWBuFRVobGRxTVHbz/b45u3v7O3v4+fn5OT65+Hg4+Lv6pXv6JXt58He3dVV19hX39FQVVfXWXZ7Zmdmb21gbW1iZmVmYXh/ZnNBXHNgZ2ZhYXJB2vTx+uTl5P7/+/z8/+Xk5+Li7uno6Onr4umXlOL4/t1adU9Z09vewcLIxF1ERXFkbW5raW5qFWoVFGprFGtheWBoaGlraGxgZGVI3c3z//799s/Kw8TL+Ofm4ezv6Oro7OqRlu/4+vHEWE1OdUhNXNzbxVBQ1112f2VkZGNgZXp6cXZ6ZnNZ0n9sZ29pFG5lf3h0VsD09PX++P/y/v/98Pnk+eTt6Orp7JeXlOPH21pxfnxxSXFwd0FbU1Ba1FRDcHFJdn95Z2JvYGFmaWllZmNqFhYWFhZpZmZ7T1TC//v+8vDy9fTN9v318fvk4e3i7ePs6ezo587BUHR5c3Zzd3FNWE5DWdNSdHl4ZGBjYGV5eHVLfGFmdHR2eWBua2hvYGR/SV5Vz/Pn4ePv7ubz/eTn5uDs4uLi7uztleju4fTI0lhfQkRPcmV5d1pbREVKZWBnZ2Fjb29vaW9vY2FgZ2ZsahQUFBcVa2hrbHpwXNHx///h4+Hk4ePp7+bj7Ozu7uvj7eHg7P/5/PTAVtHWSEpKQVFHS0pFQ3VzcXtgYGd6ZWR4cnZ6eXN/eGdlZGBubWRken5xd3VZ9P3m7uiV6uiV6pWXlpeU6+7p7+/v6eLm+v722cv3zMDUUdNRVlXVUU58Z2ZjYGdgYmgVFRUVaW9uYm9iYm1tbWBmZmFnc3ZF2c/M8ebh4OLs7eqU6uvt4eDv4OHg+/vk4O/u7OPj4f7x8vH28vbIycVSXVlOdnhkZ2RnZX5kZWV+entkZmR5ZWBnYWNkeX1KTNTO+eHplOvp6+uVlJWUlJfp7+3h4eLs4OTl/vPz8uTh+Pb29Pf19v3xwkR1dnt6cnllY21vaWJjZX95ZWZgbG9pb2JrFGljZnNS0sX0/OTi6OqUlpTr6Ojs4uDg5fHy5+T++OTk88jG3M728vvl88n39MzK3lFHf2V5ZHl2T09yemBlfUpDTEpyeHpkY2B6f3BwWsf24OmUl5Xp6eqVlZWV7u3h+8zK//H2zdHdwPTy/PbOwdZX1trb2dFbQ3V8e397Z2JoFBVubGNsbWJtYmBkfnd2eXxycEpE1c/19Mjw5+DolZeXle/j5P7z8/TE3trHzPP45f/+yvf98//88/TYW051TndzfXt9fXh5e39+ZGNqaGxgZGV8fmV7fn9xd05GX970++Hs6Onv4uHj6JSUlerv5fDH38Lb39rQz/L74eHg5PRSSkpZ1NbTX3NnYWJiY29ubWxub2ZjbW9qFxATEWliZnJ0e2FmfHFMR9f38uft6pWVleL9wNDE8/j68vTMxdLby/D85eTn4+Lg5fLBU3xhZH11S11RR3JkZGdmYGBmYmxkeHlkY21oFhEXFWxleXd1dE3d/Obg7O/ql5CSkJfr4fZSRlTQyfHy/vvy/fjm5Pn99MzN//7OUkl7aRcXa29gZ3t5ZW5oaWsVFxcVFRVvYmxuahcTEhZrY2VzX8r89vvj4+Dg4OPm5+H78cZQdXxyXtv45uyUl5To7uH4ytxTX0Fc3Ed3fXpgaW9kckdMSV1Dd3J7ZGNtb2xtZ3dLeGdmbWxtZXTV9PHn7+/p6O7s5vvz8vvk4OH+8cza1FXb9ufj4+zt5OT330Z5YG4Vam5mZ2JjbG8VFG9menpydHJkZ2diaG5vbmB/Q9VbT090dHNC3c/9+uHj4ef4/cnb2NPfxPng4Of4/+fl9v7h7e/s4OX1VEVwZ2xoaWhuZHF9eXt4cH9+SEd1cXV1dHJzdX1lZH9IWc/l4eDk+fv/9/Hl5P7k5+bg5OTk/vjl5ufl7Ojp7Ofk5/zPwPL1yc/XUFt2emIVFxEXFhRvbWBub2JjYGBme2FkeXhwc3Z1dnZ0X9rJ5OPv7+Pm+PXcUFZbQ9DB9v7k4eH65+Pv6emVlZXp7eb9yNlU0FTR397d1tNScXhlYWFiYmd4fXllYW1jZmR5dndOXdbfzcDX0MP2+eDplJTp4uD6//n98Pb39vrk5eDt7OLs7+/p6e7v5PD00Ex2emFiYGNhZXt9dnN5Z2NsbG1vbWJpbGBjYWV/cUxT3/fx/P7+//398vH18f388MPy8Mnz+fjn4ebj4+3v6ens4+Ph5+Tk+vjOxdvVWktBTXd+cUlFX050SnRyfHlyfHN6e2Vlc3F2QlXB8v3h4OHg5+fk+f7wz8zI+frz9Pf98fP64O/v7urp7+7t4uX/9sHE397dWnZ4emdhZ2ZhZmd+d2VnZmZhYGBjYWdkfHFwcnBAUNPAwPTz9/nl8/b1wdNQ1lNc0Mrz/fD2/f7k4+3t7+/v6ezh5Pz1V0dfXkFdUNHfU0dOdnZKfX1OW0REdXNzfHp7cXZzdElE1t/Cyc7L9PH3ycvx/f788/32y9rQ38DNyvP38f7l+Pn8+f3O9PT129TWXXd7Z2Zjb21nZ2R7eWRvaGhsbGJhZmdmZX5lemZhZ2R5TN/H2MH0xVxYR1nU18r2ysn38MjDxcfEx8rl5Pr5+/7AVlxX0VFUxcfUVlVQR3F/f2V6cEJMcHxzfWdgZnh8eXtye2V9cH1lZXJ0dEbL8M3JyPfO0d7MzczNyMPbzsj29vfy/P308v/w9sDH3FBOT09JSnxyfH98fHp6e3thYm9tYW1iYGJvbmxmY2RleXhnZ2d7fnJ1SHdxcURTU9DWUVlHRVfVwPT///D+5+Hh5Ob7ysbW0tTR28fH29jX0cr3z9deXdRSfWVxRk5zZHh0TEhwemdkemZhZHZQRHVJ2vPO2M3P9PDNw97EzcXWQUFWUtnO+eDh+vzk5/j+9t3DwvfH3MLZ0FhBQnVwS0xAX3R/ZWRgYmdnYWdmZGZhZGRnZWdkZ3hFVNdSWlhTWHZ0WFxETlhcUFXWxsb18ff0/+Hi4Obm5+fy8Pn6+uXk+/3y8vz32d/UWENd0t7e0FxGXkhNSnRDSXZwSERbUUdBVFJVwPTz9vbD3MPD0FNd0d3SXVHN9fP7+vj45eTh7eLm5/z28snN3tLAVFBbQUJ2dUl1dXZxS0FZdElNcHJ7ZX9lZ3l/f39yS0t1T01CT1lR08VX2dJZX1NT1lBd3tjBxsnx8fvk5ebk5+Dg4+3u7eDm5Pv7/PDyy97c3dvbwMv1wcL28cvC31NeT3R3QFZaWFxDR1PRx8z39MnJw8DB1FdQWER3cUhaxcn2/PHz8PPy/f3x8vfz+/Hw/vPI0Nfe1V1cXERYVFNc1NNYSEtKdHF1fX97ZmdhYGBjZnp5eH53SlzT0tFcWkNxSU1LS05aXV7Q9/Pl4Ozs75WUl5GWlpaXl5SV6u/t4P/L3ldX38fMz8/29/X2yt7SU1leS3Rzc3F5ZmNiYmxjZmR5enZ1cnNyf3t/c3RH0M/I9/Hz/P775uHn+Pr65uDi7+H6+P7z9vPz/Pj9/P3O2tFfRkp9e2Z4f35/e2ZjbW9paG1gZWdlfnl9d0pzfmV7c0pwS090dVjR1t/L/ubs7uqVlZeQkJGXl5eUlOvp4/nLztvR1NLR2tvcyfXMwcxXWElLcHhlYGJvFRYWFxYWFWtsb21nYWBkZGdkZXFaV8H28fH18fn+8vfz8vP/++X65Ob4//H28v745ebl5fvy88nGxl1Mdnl7emVlZm9rFRUVamhtZHt+fH99fHlzfHl4f395ent+c3x+c09GXcL74Obj7+rr7urp7eLh5P/AxdxZcnF1fHtwQltCQ15QXFhSWU53dHF5ZmBmbhcRFhQXFWN6cHx+eXl9d09BX1JW0sfO9/fM39LYzvTx8/L9ytvf29/Y09fW2PTy9vf5/cBd19raUV5V29VeQnNyc3N7YGBnentnend1WF1cVtDBwtzUXFtZT3dxc398cHB4fXdOR9b2/fH++vrk+v/D29d0f2VkY25sbGBnZH52dElWzvfw/vr58cPWRnNlYWxuaGBnYmJmf3dOREVfUsjl4+3m5Pjx9vbI09HcVF7Tz8bTwNpV3djF9//++vz7//zzzszaxdrE9fXEwcLUU15dXUJBQ3N4fXhyfXdaQV5VwPfO0t7fVFNYWkNxdHZ3ZGd7Znh9SFtHVsL29vP/88rLwcXfUk5Od3x4fH1xdHZxcUPa9/7m5Pn7+//89N5UREdKf3p+f3BIS3V1cU7D8vL/5eDi4OPg5fP1y8Lf297X3NnE2trBzfD/5+3o6urr6Ozh4Of88PHNxd1fUkJJQkFFXkROR1laWEZCdXFNT0BaWFhIdHx9dn1nZ3p5fn94eXJ/cnZ2d17V3/H/+ubl+eX9ysjy9dzWXUl9fHplf3FFxPHw5Ozu6evo7uD6/PTN0FxJf2V7fX1xd0tGTFb18OXm4OLv7+Ps4uPm+v/2zcLE19fS0tXawPX95OTm5uHh4uzj+vDN2dReU0JxfmFmeX95ZGRkYWd7ZmdkZmFmZXt+cXd2Qkp0QklNT09RW9bUW93c2dvQVlTZyfzk+v/+8f388v7z9MLa11NNdnlnZGR7f3ZCRN3A/Of7++Tl5OXl8NNQTXZ/f3NxdkLS2s308Ofj4+6V6u/s7e3s4+fw3lRYREhbXkVfQlPHxsf1/f35//3339NSdXB6YG9rahQXFxVubWNmemdgZnp0QkFXXE9IXFBbUFBVXU9OXlDXwtjaz8Px8vb55fv65efn4+bl5P7y/PDN29BST3d9emd4emBjZX1K1MDO9P/4+ODi7e/h5P3L2FBPQkt3cXB2TkVdVNr0/Ofj7uno6+no7Of8zlJKZWBnYWBtbGxtb29me0BXUN7e0tJcRU54Z2BsbG9sb2JgY2BhYWd4fHF0R1xY0MDc0dHEyM7Lz93XUkTV9fH39M7B2sPAzvzk///9//bBwcL18ffOwtzUUljW0FlCSUlFXFJGW1TWzPfx8/f2+fn9+PfYVVRCd1lQSERVXNPY2djaxd3fwffKyNvS1E92fGFiY29pbm5rFRQXaGNhe0faz/D58fX0wdVQVl9wYWZjZnphZ2dmZHtNUsDB2fb18vvM9PHAx9nGxlBdT05JSEJXUNXdwvbz8PTw8vjg5uTh+fLw9v3xz9rfwcXWXFt0fHtlen97enNN3Pf38Pfn4Pnk4P7K30RIcWVhY29uaG5jZmFkZX5EUU9E0NDAyMTWWXVwcH1kZWRjbWJtZmVleHxyUvf9+fv45eX+8MrfV15SWU5zcmVge3Fzd0FTXFnRwsTexMD08/bKzMfS3M/F3dPQ1Mb/5eHm5uHn4uno6Onj5eXl8d5RRU1JSFhYR9TX1NvfUEVPdHZNR1BdTnZxT9RAcHpnZGZmYWNsaBVqbWNiZnxB2fX/5efh5f/h5vD13FladHx4Z2RkZnlMRVbSx/bl5uPv7u/j4u/j+srRRnBkYWBhY2BncE9EU1Ha8fvk4+/p7OHj4+b69vf98srDysbc39bWyfHw9fH4//zk6JaR6uzu6e37911JREl6bGoUFWhvb2gUamN5cXJzdE1FVll1dHVMSnF9eHxzfXB7ZX9xS3VF1vf/+ufk5+Dg4OPh+PfBwddAdHx8cX1xQVNWX9PO8f/z/eXm4Ob6/cDb1FlYQVhZSVxSU9LN8PP45ODu6+7p6eDk8vXFVVJNc3dMQUZY0sDx/uXh4uLg4uDm5P/3z9FbeGZnYWgVFBYXFxEQF2tpbWFjfk1aVMb2ys3A2txc1UZ1TX5ne3t4f3NMR1vTyvHk5uHs7uzj7uzm+vLxwt9Rc3JxeXtkZ35IQE1Uwf//5e3s7+no7u3g4Ofy9sRSXkNOXkFMRlBeW9DG/f/65OT45+Dg4fvyy95RW0txcnhkYWZkZGR5fUpDQlzRWU5SVFNOc3F6e3lmYmxmZ2FlfHNxcXVOQU5DUtVR0/39xsLMxNPBw1VVUVxAS1rRx8XayPDk+Ofh5OTl5fPJw9rY3VVSWVnV11Tc2NvLzPfk5eXh4eT75OX7+/nwysPcUVhMdXRKT1v08vLy//3w5eDn/v3EX0NLfGZtbhUXFxERFWpqbm9oaWxkc0zD9vb8+Pj+//P1w9BFQnx7Z2FhYGF5cnFKTFLQ2vb1wsnDxtjSyvLOx8bQVEdEX3Rxcn92Xk1H3ML0++Hg6JeU6Ojp4+b6/9NUXUtKRl9PdndMdUfT3sfx8/37+ufh4+Lj5vvI0VZYTHB5YG1sbWV/fnxye3p7fnBzf2Rsb25oaG9tb2JkZ3l3dXZ2dn95cU9JQFTQ3czw8/X++/P2xd/R39FMSnZyc1pX1tnb39nFz9lUX3V2SkZc2cDD9fHz9/L5+fj7/P3//fz45ubm4eHk5OT+9NhCcnxxdndLTk1e0dzT3svA9fDz8cjcVdBaT3VOSntnY2xvb29rFWhobm1gZHFS08PI9fTx+ffF1E1xe2dnY2FgY2d7cURXV1RZUtTd9fD2yPX39/34+Pr69MnLwtlcQkhweWdncVBRwPf1/OXm4eDs4ufl+vvy+Pv998TVUdVUXkNJdXVTwcby5+fh4+Ph7e3j+vTNXHZ5Z2dnZ2BibGxtZ3h8cnNkY2Zkf3hlfnB3SlVeT1NQW1tW1HV6ZHNbxsVfQklTyv7l9dxdUN3WVHV5c0RSUk1/ZXVU1lVTUFzR3tnH1lXawv3n4ezv7Ozt4ODm5Pj1zcv18vv/987N2dRXUtbZ0sDbwsDEzMjNy/TFzPD09vH2zMD0x8DxzcXa2VFFdGVhbWlqFRQWFhQVa2liZ0vDyMj19fT02vX83VJcSFtbdXV1W1xCTF1UU9LeyPPz8/f39s3E9v729/Tc09VAcXJ0S354cnxyQVHY9PX3/Pjm4O3rlOrr6+iUlOnm//XBV9XeUV5V0NnNycveyMrJ9/Ln4+Hk+Pb32kVZUkJPdnNxfmVlYW1ibGhsZX1wQ0dwRlNF0sdXT0lxeH54ZWdmZGdlS9HXV9zEwNvP9M/29/D7+crRV0F2dnFIR9HY19DS2trc1MXPzMjK9v37+vj898rBwfP6/v/z8PPz9MjC1lxc28bA9/3//+Tk5+Hh+v77//fKyffwzdJR1NRFQltEdHllZ3t2fGFib2lub21gZmRkeHRDU97b2d1WUdv1yNtRXURfUElNW1tMdnFydkxc11FTU1LSxdjbw8dU1N/L8ff2xNNcdEhKSE52dELcz/fx9v/65+Dv6ujp7+zi5vzO01FLdnN/cnd2S1pNR11V3sLy5+Hh4eHs7uHk+v7x9MrEUEp5YWBgb25ub2xtbW1iZ2BiY2RxS0N2cHVzcEpOSnR3SkZHXV1ORVFRVtfB28XBwvfN3lFcR0pBQUlyc0dFXFlIdHF3TE9Z3tNSR1TJ/fD8//v7/P/64ePh5P/88cPeV9XXWVtU2cH38PHy9fb12MDEVFZFRFxcQUVBSE9E0MXd3tJRR3RBSkt0fH56ZGBgbWFgYWR7dnVHXlFU2VdU31VXW0t3dn9lZHp9ZGZ4cHVf3NLb0NTNws3w9s3E1N/E2FHXWX1ycndATHRIdkxaVdDW39j08eTm5eXn4Of65OT49MfG1lde1NnU3d/W1ldR0tbc9PP18OTj4+Dm5P7KyszWXUpzemxoFRQWFhcUFRVsYWdyTkNeU8T08fb39fT239BXUNVBS3Z1TU9MWF9WVsfx9MbT01FHdnJxcXZxdUxARkFf09RXV1DYyvTz+fbLx9PBzNvAyPT/+vz8+/rl8PP5ys3A2d/bwcXG39bW0MXEw/by//n6/f7l5fjy+Pzxw1VZWF1GWEpxdnV3dn5gZmdmZGdgZmZjY2NgZ2VkfXFKVs7y8PPxyPfy/fLy/fbx9M3d0t1WRkNSXVHHyfX29/fIy8Da1tJaf3FyfnZzcHZ3dULb8PP28fj65OPt6ZWV6ePl8PDz9dBcUEdGQEhPSFrW19LN9v3l5eXn+vD/+ffw9sj38PfH11JcdXx/eXpgYm1sbWJgZHh8ckhGXt3Yxsj09sfXUFRWUUNwe2FtZmV8SktE1MXFyfT2/f365+bj5vj0wt9fRkFLdXR1S1pX1MD1/P3y8fX19crbVtRXUt3ezPfNxsH3yvX38v71yPf9/fDPw9jX2/TJyMFU3d3axNJXV93R3tLU0VdRUVtxZmJiYmNgZntnZGZ6c3NPfX9CTFzW11JdXF/XzPfY3NDdwM/2zNfBUXVW0FZPdnZ7e3lzd05NTF3cxNDRwc/K8Mz19vXB9PzFVFZ1S13G29LI8fj64+nu4vj/+/z3xdJNfmFubWRnZn5P38/L8f/+5ODj7+zg4OH4xtdbdUl0cHthbRUXFGhpb2dkZ3hydHVJdnlzfU9V3ddfUlZVXNnL3tZcQV5aVVVcWkp0cFvc0trG2MH0yPbyyMTXREJPdHF4YWJhZ2d9dUdd09nTxc7z/+Tj4+Lp6O7s4//B3VFFSFpeRUJcXlHB9vLyysj0zt1TX1l2eHt7e3NDT05Z3cb08/LJxNLdX3V0fGRjYmBva2hrbGlrYmR8SlPcyvfy5Ofk+v3EVFdMfHFPSHRARkJSVNbSxsnOwcD1yt7QRUlcR0NT0lVXx8PBycnf3szfV1nW10ZEUNnYxszK8f7z9v39/fz5+fv4/PXI9/XbV9HXUl/R2Nr3/fn+5+Dh4ODk883fXk59Y2oXERMQFhRrbmFkcl3ezPT98/X08PPKxcXXUVdDQ0VMeXp5cnFIUtbN8/L29PLxyvXB1F1bdXJMQnFwcXVNU8Tz/vnxxc79991Q19HUVd/K9/H/5OHg4Obh5/DA2czHXUhyd0tye35M1VdU3NDb8fD44O/u4OXk+/j//PDG2F9Y1Vl1SnF+f3xwcHh6ZGFkZ2xrFWprbGZ9dVbB9P/74u/v7+3m5f/02tNST3V/ZmBgYWR5S11ZXdfYx/T+/v/99MvDwdFHSXJyfH1+e3dwdtPz+ubi7O/t4u3n+/nz9MDEV9TF2tvYVFPQ28fLwsTEVFTW28/N2tVQUdHMyMrAx8nI9M7YUFdQQkBDdEpze2R4cnJ9fXdKT0Bb197Ozsv33l5PdHB9f3p7eX9JXdPT0cf3+uHi7ef7/drWU0t8Z2BgZ3t/d0lDdEhXxvT08PP28vP+/P/xxMXZ11NfXdXF3t7ayPn9/uT7+f/wzsbA21BBTUpCWFxUVdTfy//5+/ry8/TC21pLfmZjYm1sY2NsaW5jZXJxdFbCwcPz/Pjk5fr+//P1ysLOxdfRX1hdR1lNcHFwfnh/ZWVkfn12Q0Fb1NLbyvz65uDl/MnA2ll0cHJ4ZGR5c3F1RVPVyf7h4+Lv7Obm5PD1w1dbXH9mYGNkfn1wcUHRz/f84ODt4+Hh8vrxyfTc1Ed2fkp0ZWBsYXp7eGRjbW1jYWdkYWZ6cXV9dkpCVvT/8/374eDk8sT18vn1WFhd3VdzcFpddXxydkl3fXZ1QkN0dEpIc3JOWFld3drY08Dx+ufk+PP1zsb3/PTNx9VRXVFYSUJDdUJU28XewszY2dVeUFhOQVlYW11fWUVeU17Tyc7MwMDb01ZRR0p2eWVnYWZnZWVlfnl5dlpd08XaxdzC8PfOwtpWW0F2Skh2fGV8Sl5U3d7ZycvN9Pz98f32zfb3yt1XR3Z3dElIcU9LfHBxdk1MTVpR18f2++T65+T4+f79ycvIzsvT39hSSXB3dXJzSU9OWVjQzfb//fLy9ffKxsHDVnd1dnN5Z2ZhYGZhY2B4fXBAX9De0NHYx8D28vv4/vr89/TLwN1EW0ZNQU1JS0tNdH9+cnx4eHdaVNHU09rC8/n5+vrm5/vl5fzLzMLDwM/b11NYRVpfWFbU1lTTzMbS1dHc3Mn1zcDA39PdV0RPSkhBXtXdzvTPx9vG2sTK9/bKysFRXFtfRU51c3J+f3t+f2VmYGB6fnJ3QNbbwM7y/v///Prk5uT998HfVNXX11FHTUFGQE11d3Nyc3RNXN7e3FZFRltX19VfU9fX09TX3tzZwPf/++Xk5OT4+/j5+/r/9vXOzNnXUERNdHF0cnJ1dnNzdkhe19rLzMv09vXD29FSTE9ZUlNUUkB3fH1wcUp1cnx+fHJ9c3dOTUZUxsz2/PL0wMXBzc3N2tjc39BeV1dTRk5Z19dX111GS05R2MP09/f09PH1wdBXWnd0QkVEXF1aTktAQUfV2dvGz/fx8PL9//Ly+ubh5ub+ztLVXFpZRU10cEtaX1FRUl5EVt/T3dnRWE9BX1xQV1FQWUdOcXlmYGJsbWFnZXxJTUbSy/3k4+Lg5+T6//31xtZfQkxbXV5cT35/c3F2dUxNQUVQVNHf39PS2sTNzMDNxtbX3sbHxcfBz8HGwd/Z31ZdWVtW3cTOytnV0t7awsnD2VdfREBFQUhJRlndyPHz/ffP9fD3zsLMxNHX1FFeRU9yfHh6enp4fnthYGZnenJJWF9cWFffw8nCx9rA9Pby+f/0wPXx9vTOwtFTWEdLdHF4fHB0RllQ1NRVXFfQ19be9Pf19cjH399VUV1cV1fcwMLM0tbEy/H95fr48/T0zMLQR3R9f3xwSUBGTk5EXNRWV9DWV1lYR1heWlbZzczO9crD0lFeQEpzf3tlZGd6fnBMRllX0dvI/Pv78MzD2NLfwcHE3tbUV1FTWkt2cX19cUpGX1/Szc/AzsLG2djG39fR0dVW09/d3MXGxdvb297c39ze0tVUUV9b1NxX1trY2MTHxdZfWFpGVtbSw8fHz/fJwsDXXURAR01aU1lHWF1YW1xfXkZCSnF9e3h7en58cn1xT1tcUt/excnCzs3GzcDBzPf39/H28//+//LJ0l1ZUV1CQ0t1dUpFRkZcW1nU0trAy/XLzcnI0F5HQkZBTUNHRkRER1pZXVBQ0MXO9/Dz9vTJwdjQ1tHX29vQ3NfX2N7d39nR3dbX0NHd09LV1t3VUklxcXx/eGVnZmV+fnhzSHdIX1TX3MPOy/b0ysj09cj19vz9/PLx9vD32dBWQUFHTEl3SEFMdUxARkBMTVpS0NvbxMbDwd7d3dDV1d/c397awcPDzM3CwN7T01RRW0BaRUdESXVEUNba9/L8/vrk+v32xUZyf3pke3h5fnNJRl/W19zDwsHNzNrWXUl2c3N2dU5BUNTd2N7fxs7Pyc7Ext/VVNVW1dHX09lRX0JLTE1HQVxSU9Te2NdRUUxMQVtf0cHI9PT0ysL29vXx/Pj99cbY1tPUW15cW1dW3cbAy/D3wdrcUFhNdXZxdHByd0NBUtVQX0VGX1HW2ML18/T08cnMzMXd0ldZT0hATEpBQk5bV9TT2MzLyvf321NBdn56ZWdne3xzdFLf2MLIxsbKzdrF2NJU1FdWUlTW0sfPzvH//fPz//788vfF1lJAT0BGRFtdUFdZX1JaRV5BWFfXVFfX1UZNX0ZCWFPQzfP6+uXl+PP99szPwdBTTXF/cnd1TERZXFZUVFZdVtdcW1tAdHJ4emV7eXJ2SUFf3tvX1tfU3djDy/D+/fHw8M7d1lZETE1CSEpMT1rX3drCz8jNwM7Aws3E29vT1FRRXkZMRVNdVdje3dNUQEp0c3BydEtF2MXGyMjPwsn09PP+/vn65eTk5f/3wdrdV0RCdXR0cU9DRkd1d3J6ZGRkYWZmZ2V+c3x+cXRD1PT+5efn5fn588DdU0FBW15d0d3HzPTx9vb3w9/X3NBU11RWUFJSR0l1c3Nyf3N3dHZxdHd0S0hCWdXbx8vy8vT09sjaw/fz/OXk5eHj4ebn+/LJ29BWXFlERl5ZXlFfQ3VwdnVxdEl3SklIS093cHJ6fnB1VlVV0FFdUFxFWFHR28bIycL0ytrf2tdWXUFBQFLfxfTy/P31w9dEd3lnYGFhZ31xdnZ1SkpCXNPN8vj4+uX/98/ZVNfdx8LM9c70/f3+/vzLx99RUlBcQU9S0d3F31dbQUFOQlPd2MDK8PbP2150fnp9dkBZR1BRUlheVlHX19bQ1t5VWF1SWF1eQE91d3Z3Ql/Xxc7DxMXf0NBQW0dMSUpNWlxAdn1nZGVlfUpb0cfI8vHNwsj09fX0ycnOwM7x+/r6+//w9ffK9fTLzsPG00ROd3N8cnd2dUZfVNLZ0lZGTElAXFfR2cHF09/R1N/Zw8DPysPM9PL9/uX58dtfT3xnY2B7fXN1Qk9LSUBBQERBQklKSnF9f2dib21menN1WNnO9/L65frk5eX6///2yPH++uHi4eTzz99WWUdGXNDV19FSWk1zc3d3cXJ2QkdAXFVdX1hFVtLG9PH9/fXO9fTKy8LBwd9SUtfZxsLx8vbN011NcH9+cnVPTFpYWl1SUl5HQE9KQ0RHWUF0cXJ5ZHp7eH5zSE9AUdfe9/Py/////vnl5uHh4fr/9NdETXR0TVjX093Y39/Bw9rZ3lNBTU9ER0xPdUxMTkNbWF7dx9jEyPTIw/XC0lVQRUVd0c308fLw8/HJwNlX0cLG2dnd1VFbUVRdQHdyfXl5fXJ8fH9ycXJ8fmVleXlxWFTQ2cD29/TK9Pfw/OTj7eDm5fz33V5DdHd1S0NGQUZFRF/R2sXQV1RdXVxEQEBPSExPTU5OQ1zWxPTy5fr/+Pvz99rR3VbR29jE2NHV1VpBWkRfVtbYxsTPwd3a3lhJcXN9f312dnFISk5MSk5EQkhGU9Tf2sPFxc3G2Nje287y+fn4+vj+/cne1110fHZKdElMQUJMWl5GTkhITFlYW1lERUh0SE5MQ09b18TK/f78+fzy/vfKysnNzdvEwtra29DUX0ZBdXVAWVLe2N/Bw8bVQENKd3F0dnB0SUxNTEFISVpFX9308/Px8/HKy99SV9bS2cPJyMj18fXNwd3WXEReUldTXUFPR1lYQU91Sk1EQE9GQ0h0Tl9eRk9LS0JS0dvAxMTG9fXE3NrNxdPHyPfxyMTF3lRETUNMTljXxc3DzcnA1VNVVNRfR0N3dn18cnNzfHF0d01R39Pa9PXx/ffMwM/18fD8/fL5+//y8vHN2dBU0NDeVltFS3R9eWVnenlwcn1yfXF2dEdR0VRQUNHHzMrPy83P9MHT1tfQ3N7f3sXD9cPHwd/WX0dDT0xAXkVaV9DUQ3VKT0RfQUpCTUtCRUdMd3F3cUtaV9vCwcn95fn3yvDx8P/7+fj//f7998vD2NBR1dza3tVfU9VcTUp2cH1zdHB/cH1ycHVJQ19cXl3bzc/29sr39c3TUl9RXVTVWV/Q3NDQ3tjW1dRRXVdQXl1ZRVbR0kVOQERDQUJKTk90SktNd3l+fHl9T1pV3dLE9fXLxMHw8vD75+fn5+X48vDJ2N/RUlbe3FVSUddWX1xaR1tBTkZeRUVcUFhNQ0BMSEBc1NnFxsr1zcTf1ldU19LT1dfSxsLH397Y0FZcVddTX1hbXVBdXEN2fXhlZWRlcXRKTkxCT3V0dHVbV9bAzMz19cjIwMXIycnIyvH+/P398PH0zMPQVdbWUVZTUNzS1F1FR0B0S0Vf1sbF2N7WUVpBRU9GVt3FxsPDzsPExMb1ys3PzMLGw9hUX1TWVNRSRkNHQUBGXlHW0dVTW0Jwe399cnRNSHJ9fGVkZWdkfExb1MHPy/XIycnw/fLw8fL9/Pzxysr29/X1wt/T2d3R38fE3VBGS3FyfXxLXdba2N3W0VFaQE9NR1fE2NrH2sfY2sPK8fPw9vz5/v7zys739MDdVEx9eXJ+fHNxcXx9f3xzcHNxRdHQ1ldcTUl0c31/eHx1R1bT3MDa1tvC9/D1z8/Dzs7NzPTL9fTAwN9U0tLWxcr0yd9fQXFycUtAU9Pc011SUF9TQXRLW1Tfz/b3zMfF09HYx8HM9fX0/fzxy8rw8vz99d5UVl9ZUdVZT3RxfmV/fX9zd0RfRk91dnJzf3tlZmR+fXRAU1VTUdfW2/f08P78+ufn5/r4/vfMxtZEU11DW1XY0FhfRHZ3dXZD1dLY3dnZ1dHF1l5aQURW0djDwvTN28bF38Xc08P08Pzy8/DNwM/Gxt5WUlNeWNXRVk5xcXxycXZOQFDU0dfRU0BBTEt3cXN7enl5ck9DS09KQ1he0drN8/z55eTk+v309c3ZxdfX0lDX01RWRHdOTHF3WtbaxMTPzsLJ2tLXQUlBRlxX1dzSVNHXVNFUXVTb9fL/+vr//fbIysrDxsXe3tvY1kVOdH1/f3xycndCTEFYQUxNdnNzcXJ4e310SFlV0NrY3Nvf2sDP8fnz//v88vb1y8HZ0dRSUFJGQUpPRklLdnFxd0ZW3dfawsHPyfTKwNFDRl5V38TD3Nbf3NddV1JT2Mvy/OXl8vb19vbxyFRXVFBeRkx2fXx8f3h9dkpCRkVeXFZfQkJNTkhxeH5wdUpLWlPV1VXX3sTD8PPy/vv4/vD09vf1ztJR1tjQWUBYX1pcWk9CSHVDQVNUV9Pe1t719MRUWV9d0NpVX9VTX1NeWVlaXdbXyv/8/fDw8/Hx8vbZ0t/e3llbW09Idn99cX95cnBNQEZeQUxDT3dzfXt4fXBwZXFFQFjVxMHO9/34/OXl+/v98/z5883Mz8La3NZHWFZSVFJaQU92cHd1W11YXVzTzcDd1NbU0dHZ31TR2d/FzdjdxdPX28n1yML09cz29snOzcDbVV5ZdHB3eHl3c3xzc0pJRFdSQF5FSUROdnF9cHN7eHx+ckhG1cHFwMrL8/L+/vPK9PXK8vbO9vf29cPA3lZXVF5V01JfXkVZXtHTXFtTUdbGycbHxs7QU9NUXERbUF5QXV5bXtHbyvbx8fb8//Ly8PH19cXR0lZaSXZ3cXN9c3NzdnZIcX98eHh6eXx+f3JxeX5zc3RPU9zY9/b08Pnl+Pr6/PH38fTKys7BwcPY1FBUW0xFXFNdXEdMRkdCQV9YWdHGzvHw/P3x9cfc19RXVNFU1NVTX1PZ2tvB9c/HyMfGzMbD0tnYVERZXHV0dnZNdUtPTFhBd3dKc39zc3RKdkJ1dHd+eH9xd0RSVMTZz/P9///y8fXBwcTYwszN9vT38cLZ3tNRUlpc11NSUF9ZQkpISUBR0NnK9/X39c7HUVhfUVFSXV1dWV3dwvb3yvH98/3x9vb39ff99sjYV1FaS3NydnN9cEp1cX15e3tlenh7f3l6eXd9eX9yd0xf3dzN9PT/5Ofn+//w9cDJycHJyPfw8vP03tNUWlpcRlfUW1hDdU5KcHRFU9nAyf338fDMwNpUV93R1tlX0dBf0cXM9cPEzsnLyszN9sj08MnA3lJcR3V2dHZxd3F0SE51cnxxcXB2d3B2dHBzfXxyfnl8cUleUFzdyvD+5eXwyMzAwsvw8f34+fn/8vDBXkRTW0VcX1JFQVpCSHV3QVDWwcvO8PPPwsHc09RfW1tRVEdaV9LbwfTNwMf198jw8PDy/fzx8/bP0llFRl9Hd3B9cnByfHt6ZGV+fnllfn96emVwdnx9fXZPV1NSxMz8+uTn+P799crx8vL58vDy9PH10Ft0dnR3d3d0d3V3SkJLW1Xdz/f9++T7+P3098zY3VZRVFtbUFPczcbBxtPd2sfA2trA29Lc3NvfUFJcQF5UX0RGRF9WWFpBSUpKT0t2d3Z+e3h6cnF8e2V/c3B2SVzXxff28fP2w8/1z/X9/Pzz8/3w98PXWUdOSUhOR1pHRkJaXVXe9ff08v758/Dwzd7b0EdPSH1ydnVY0sDPwcvKz/Xy8Pf28fzxy/TC3dvdUFTWV9ZZTUxNQnd/fXJ/c3B/fnpkZWZneHl8dHN5fXN0S0ZUzfzl+/j6/vbw9vfw/f/99vfLwdjTXk1DTHdyc3dLTkl3dUBY1cbJ8PD8+P38+f3wzNnXW3Rxc3BMRdzLzvTOx87LyPXKwc/H3d7S0dZZX1RSVtPUU19FUVRTVkdPR0xLSkhzf3hke35ycXh6Z2BkeX13W9DP9PHy8vPw9PT28P398ffMz/bG19zUV9dYR0xMQUt0TUdb1MXN9/Xz8vT0ys/39VZHTEp0fXJ3TVzWxcD39ffz9v3//f/9zsLF3MXcVtXT3Nrd0dRdWk9JT0h2SEhwc358f2RkZXh5fH96ZGZkZGVwT1zfwPX39vL8/f/5/fj7+fz2/fTAwtxUVNZdQUlCXkxCW0NDWVPT2szIyPTx9vTy9sLFXl9QREZAX1bU18fPzffLyPD39ffB3tFE1dBYXdZd0dhX01ZU01pb09Rc1VlFX3VKcHp/eGR+emdlZGZnZmF6en9Kd1zf3vfx8fvk+uX58fL39ffLzMjAxcPZ39xT0NVf2d7S2tzW3sHAwMbBzsXExNRURU9EQk5EWFlQXlPYw/Tw//n6+/7y9M7H29NSXFZR1dXX09bQV19cWk1MQkpLcXBwfmV6eHp7Z2ZkZ3p7ZXxzcHFxd1hd1PXz8/r65OXy8/H18PbMysvHxt/V0V1XVEdH0dDU2NLGysXPzMz3yPTx9MDa29jeUERWVlZYdVpWUdbay/3yy87E3NRFU9dWRl3b3tJX0NjYw9/cyMbTVNfc1l1BSXB5eGRnZmFjbGFkZmdkZXl7ZXpwSEdUyPzl5OX5/vz09ff38vH18/LKz9vcxsXSVNjG0tPC9vXKytrOwtbVVdZXR1vU115FWkBCTU9LW9jezfnk5fj/9vfI3trGwNjR38fH0FFRVldV0NRXUUZBXFlZREp/eHlnZ2dhY21hZ2R+eXx+fHB0Tlnc2Mzw/f7+//DKz87Mw87L2trF2cdRV9DV01DS39rCzPH9+f7w/Mvewsfe2t7TxM3Q2lVIREBKd0BR08fG9Mr19NjSUlnR2NrHzsL2wFLfVlHV1VfFzt3FxlXFxtBST31keHphYWBjY2FjY2ZmZGFhenZNRdTfz/38//7+zM/39ffO9vTz99/Dxd7J01fdzMXE99rM+//x8fXS1VFeQ0paQFxXUMPVUNZ1SkncW9f33vD78/7OwttWVtbP0MfxzsfR1lpDWEpHVNBW19VQ3tBXV3RPcnJnZ2RvYWZiZmBmZGVkZnRxT9VU2fT+8/D8ycv298PCw8PIxdLURdFeQNTTz8DMwtjK8Pj5+v73/PfM3lBdX9NcV8XfwlVPXlNeW9HS2fb18/HPycDRUlfY2tvL9MXe21dcRVtDXsXRUVLPwFLG31dQWnB5c2ZtYmJgY21tbGJsbGJmeXx0XfXx9fP18fTDzf/+zvf7//H09d1f0NFdxvPLxPX2yMr7/cr6/M7O/lRK1kp9Ul9G0txKV9R/UsFH2v3L/fvK8PDQyPRWx/Hexs7LzVxc0Up10k1N2tRBWsTeX17bXXbQSGd5eG5ofmZpZ2RtZmZtfkp7Wchfy/vdzPPW2vbM8v7Y9/nGzcTW1kFf2FfG5cDd8cnN9uf7z/Dh8djlw3RX03J2xlN3WkV+cV9bxsldyfrTyPtS1vNTVvDb8fvXzfJZU95cX0NV8t9X/l9M8NpEWMHadXdNZGJkbWliYWJuYGcVbXlmckRd1sXwwFTCw0XB98zw+Ofz8eXGVfxRccLNx8vz/dzW+8ta5eTU8ePDW83MdnbcR3TawH1z1ER+1v3WUef4W/PkXEX5z3XO5sHP5cZNw95xSt9OQ8zdXtPaU1vXV3dQzUN2WXJsZX9paXB5FWd1aWhOdWxB9lhb5cxx3/lJdOf+X/vuz87gx0zI9XPV5cPf5P/b+ubF9OPwyefnzfTwR0PG131U9HB+UXVlVtJ2VeTdXv/AdVnKSVn+ydbk4MXN/dZMx9Z32PBdRPbaT9v1TkDNQXbCxWZ3U2NudH5rZHYVFHxtFH1cYHL8003y9nNS5FNN4+ZV5+jWUeHDecn/ddbv9V/j4NTn7tLO7vDV5+RB3vhDc/TYe97+e2TyXWfN5UhX7vR8+fxmTeVEfeD5SOXgdFbgUWTwwXrC/n53/kxh/N9sUfZhcfN6YM1/FEpIF2RdFBZaYhFBUWtJ5n1z4Nxm8OV60e7FWen5e/DjeUvhQnrg+3P561bKlPNS6+Nb4OhEz+5AceRQZvP0bUrwZXzlWHrk5XbO5n12/E1n9PN2yuNXW+D0Sf72e9HmTHHn12Tw92BE83p+8kJh9cVifV1ubUdmF2VmEGB3am/eTGHDymXQ5U915/FG4ONC8+JeRubWZPDzcczmU83p/lfh5lP77NTN7vVE5PR7y/x/SPFxZ8raZ1f5TUbn3n70w2VZ9kxS4P5Z8ubV3uHbTP/9T8HkTUb+X3hQUmd2w0p/y9B5X19iZF9iaHNkFWFzaGl2fmZQ039Y9Fhb9spf+uRTxeTTTPHAfcX/dEbnxkjn4lHK7cDR4/rT5ezAwuHES/PwcET1dH7GUHvR9HVf/ld8wdp/WfNCW+DxWPnnXNrk1F3l8kzO5E9L8l1nTVhhdsF3fc3Rf1rSZHpTZmt8fhVgcBVrfXpjQd56dfJcdP75WvDhV9f/xXTe3nhE/lx3/vlI8eBT2+3/UOfswfXu/lz45UTS51J9w8t8ScZKc8rFed/7cnP+VHrM+nXR5sRC5eVy3+dU1uL2dfzkd1vwdmfcVmdG8HFw/lFgX8ZkZlhkFGRIaxR4Yxd7WGxlyF9lzf9Bz+7CRuT4fNL+fXryw3H05UTQ7P9K8+3aze74X+HvVcbsx0Dl+n9b/HR+99ZgX/t9cPxUc/X3f1v/VEz++kHB41R3881x8uLf3eH/TMX7c3jyUWJb8Wd781htRctlYtFzFnhRFBdNYxBkRG5g9lBnwuR3QO7wdPrgWln6U2Pb+X9K4cZ45ONNx+n2W+3sW/aV9EPi4UD16NZ++PFlWPp3Y8z3YHXk1H/x/3pP4NF7/uF2QOPYZM76f9bsx0nj7UlR4ll6z8Vjc/9xYcrLZ3X8dGxGShVtRm8QZH8Ra0Z6aVzIZHX62nb74UbF78Vy88phdv5cffnnRcDp9dfs7FfK7/bf4+bdyO3z1Of+S1bzdX7YR2ZYz3FC5fV1yP99dfnVcvP7Wtjn2HLHw3ZY/8Re5eVSwvjVc9NCYHfTcnnBX2RVzHx/02VpfHwUFWRqEXp2YnDBS3/OyHTY5sFM/edH1v9JYdfcZ0b5VUjk5tD76Pbf7uHE45XwyePyxuzt1MDn13PaUGJyV31x8vFA9f12dPPQfc38S1Pm9kL29X1F/9RB5OVW9ubWU//cZ0DKc3P1UXtb2XlbznNjdH8UFWEUFmFgaXNRZH3GQ3/a91/F59BC+P99TvRxesnGfdDg29Lj4dv67vf06ebE5ODX0OP9Vf72cETMfWx3cGJJ90FF5v902/5eQfLad8f9WdHk1nfJ9HTW+N1R5f1Dx/tVTfdXZdTBe3ndSmZZ0WV9V3prZGYQFX9vaEpIZkb2Q3X890vZ/kZY+t583cl9SvVUc8T1WfXiwt7t5Mztlfvklf5R+OfHyeHGQf7BekfWZ2JQV3tZ9l9S/cx39ORDd89RfPT1eVr4XmX28nTD5sFX5fF19fpKTPzActfFZn7Kdm1cRG9nS2gWZ2wRYXAUYtB8Z/XOdN7l1XXzzUvBwn1H+99wwfxB1uPxVuDg1/jq+fGV7Mzn4EDf7cdy/PNM0fd3ftFKZVXCdkXk9F764NfF4NV9+P130+dVdefyf9rhQFjtzHjx9nxf80dy99RkXFJhe814b15CaXlKaxV1ZBFgRm9i2VBw8/tZx+dWdfPWf1DQenTxTWfGwE/c51VF5fFf4en9+pbjVuPiXNrm30/6/1jJ+Ut09U1kUNJlUfvUVOf5TtjydEzy0HH29k7d5NZ28/FFwf1YRPPHc9/zTVDIQXffQ2RERWNmQnhofn4UYnNqF31/aXLNQnXzzE735VjS599xyMt13c1KXuXCW/v6Ttznw1bj49nn6cfd4v931/JPWfzZSfTCfV3MRn7S1E398tzz5lNE+8db+eVf2+LLQv78d13+1H3E0ntOVnJ+3VJkRdJ6cN11ZF10YUpEYWJMeG99e2hkRWZn99x/0vN0R/vMTvbwc0LISmVfRH9UykTV8NtA9/zQ8+P28Onh9O/s3MrgzVD7/17a59RC+dp8U810QvbUSd/YdlH5x0bl4dXL4cBS5/VK9PpGTvdfelbdZHbEe2fMU3tH2XZx1XxndnFuYHdjaH56a2dHZWbHQmJR8HRa4fdY5u1H0OFCevTMc8bkRlb82Uf980DN5d7E4ufa/+TezeHNS/HzStX62FPz3Xva+nVO/9B8xclN9OfawO/hwOTkVFT7zXXK8X9yxX9iRXRse0ZmZd9DZt73eEPwQGVTSWJ3RGFhRmVvT1Bnf9hyZ93Yc8ThxNHm+VjHxHpK9XV88fR7UftZQeTAefTi3MPp5fXs5sPm49XT5vVF8/tHXPFJcvVQYV7cZ3zHTXPz5Vn2lfPU4PpL9eLRUfvXfVTYZHPWZm1ESWNN2GVE9kl391FgS1lhZkZhFXBxFGREY2dQemH11HvC48jA6OfW+vBx1uVNTvnWf8zxdlH7W331yXfN4NnD7vPL7OVO9+ZD1uHBcfb1edn7dXPy0WXE8HTW4MPF6u3I5eNT3eDJS/PNenXEZ2PUexR+dmpn1GVkz91zwv9yTvBKZdpYb3JSb2ZXemdWQ2BAw3JG819R4vlD/+V6Rfx9evfUYlP8fFv7UHzJzHH04t3xlOb8lejK5O3C9u3JX/vIZFz9fHz0c23b3mZN+EFF4PDE7ORa/eZBzu1XQubWZ87DYnLWbmzffG7d1mZX8Xtw8XJj2k9pT1kVYkZoa114alLfY1z4dU3i/F/v71zz7E5x+tB+yMF6Uc58SPVxZcZRf87/W/fpzsHs+1Tn/tPg5lf7+nbS5kx359B68vBl2eRF3u/3zuj/Xfv3cMz9SdDzc3vWcW91cmpldmt5zHp6/FF78MV/yvB6X/JkettmbVVxaV3TbF7JY037d1rvylLi2n/9VmzTxGBc/2RC5Hdy/Fp95fRI4uBT4eja+uhXxunXR+zIdPjFZ/f2ZtvxYUT8ZXHgQXDs/Vzu4kH+4XnW4kbS71p9+Xdv2XYVXVhrXshjRP5kcv5+ZvdKadRbFHPUFGPebG3Lf237Um3l92TmlVrkl09W7X155Fp++1xh+d9t9MBv1P9nxOlI0JXGUuvzcO38YOTgcPzsc1fqXE/q9Hzk2nvk5Xnk607/lV/N6HJx4EFw4l9h8VsUW0AWd04RftpueuV5ZORwbeVGaPTea1v1anbzYnLyZHr/fGP8TWD69Xjh4n3x5GFO8GFz5Hpg+khh4N5m+/h79u9D+ZXQ/Zbxx+vLcOPAeOP/ZPz4ZPfnZcfgZHXnemTiUHvp/HHt4HL24GXA73BR7Ut5+XRty0hr2UFqQdhjSsZ7cdFiYVFnZl9+bF5Jb0raenTOcHfxWHHwzlrk597h5HT0/GVQ8XNC9HB09nR393R9y8V2yvxe9eba2frfUvfXWffL0PHK3fn5zv3828n0x8POxNj48sr4/NvN0XVbxXdbxXVEw0B/R3NmdXZ4dnJ8TlN0ddZJdEFydk10d0B1fFhAQdNcQtDQTF7dTlDF1dv88dHJ0X1bQ3NEX3VA3tFX3Vzc9szE9PHDyv339/DAz/HKzcnDz8zd0dLFw8TZwMLaz8/X3sXZwvT1zPD+xNDHxd/NxVPaxlbW10xKR1hAQXR9c3NlYWdne357fHZyc3J7f31/c0VYQl3azdnZ9cz38vb08/7I39vRRUVXQ0xRU1tQX05CW13X3dfS2NjVVlZaUtnO9PL8/P32yv3z+/D1zsnwz/L88PP9+f//8MLOxFldV1pfRUNKWlBNd09wck9NRk10dnF5ZXpnfHd0S0dV1UVPSElJdVnQU15X3tXc1FLezMfTx8/WXkJ0SEZJT0dHRVxR1NPV28H39PHMz/bFUdDUXdbO9Pb55fLy9d7S29vFxdJX2dlQztvb9f398P/By8ZX29j09NbDUdffQ9lXTNRXVlJfQ3h+ZmxraWNhenh4XklzTH15f3NCXtld0sLN8djx//fkzfX008JEWlZaXVZXX0xYWl1FR1/cxlRX20RNWXd9cEpb38v3/v764fXz/vLn8fn29PnG9P7L9/L4//HL3dvRTUFfxlLX03hc0UpyR19OUtdJWkRxeGZnYWJleHxMSVlDSnRHd3VU19ff9MtSwcPU08rE3cDNRkFDcnZyQ0dJW0FAW13TXtDE/fTBzMHfUVlWTkZRXlTI8PT2+PTN9fDw8/zx9Pf12MfT2sHN2PT9x9jHVFza9cXI8Npd2sNSVsXG3cfcXEx1fWZtb29saWBhZGV7e2Fkfnh/WN/Qzvnwz/3/8f34/v748s7bVURDRERCXkdFQUdGdVheXcHTRNdbd3ZAcX53RnXZy8H0//z45uTh6eHj7eHk5/vx98HJ8fXAx9tXUkNaUVhU0FBFWllzdltBSdfa1FjXQnl3c2ZlZWV5cnFIc2d/cmV5dELVwvX38PP888HN9M7DxVRRU1tOdnNydUB8Q0ZZWdHZ0c778dLD1l/RXUVJdlTI1FHGw83BxtXM/v35+Pvm/P/z9NlWw93dxtPU3cXRVs7xx97O2srRQNBR1crd0c7fWUh0eGBgbG5ibWdmYGJiYGhtYGx9X9zz++Tk7eLl5eb4+vLZxsvB2VhwSnR2c3RwZXBJSl9Q08bRVktGQk1IZ2VCTF5R08339sj+5eTn4uHt6OHj7frN8/DQ2lZYX1/UWUZf1lRHWtxHdkVxcFhSVNvMxNvWX1laZWF8ZGR2cmB6fGJjZ2V6fk1T2vLm5P/45PD0+PZHVt1eTUBGfn95e3FzQtFCTtTJxvf79tv1yNFcS3d0cFpCQt7B29/G9/bl5OHh5+Dk5Of78PbOw0dAV1pd01jXwMTU3cTU11RFXF9P0sLByP/C1s10YGFnYmlkZGN4Y2JgaGBpYnJ9V9L44efu7O/g5P/LyPXe391T1ExPSXh9dnpxSkhKV8/b9PDewtBxd318eEpzcdle2fT18PXg5fmU5OqU/pbk5pVFlGfHwWL3Y/VmX0vRR9hDX0Z4wGHGZfNbwPje5NHNRXxKZGV7ZH1kfX19ZXpmYH5kck1Xxcjl/PPizP32dP530M1l+G7BdnrXY8Zn23THUf3M4fL+4dj6ffdgSXFkQWRES0bYWdjO9+Xy4eTm5+zh4OL45crFXkBUdErXc8/SWudy9lFD+m/mctj0VOZb5Nf3fFhjdGh8em1latMWc21pZWhwYHzfc/L88+Ph7ebh//z1yMHbVUVbQE94c3pOeHZZcd5ezvxczeVlydJp/2xg9RbwZn/pau7VzJFDnfDp7uSQ/Ojh7OX61P1IUHd9SGHZfPVKX0taW0xYTNhHydjb3/Hw1tZGTkNgdUAXUH9p9hd/Wxf6F3DJF+tj/+Znk3Tr1cXgevBxxXZS3MRkxmTXT3r/ZOZB4M3l88HnR/t5UkVgx2p9fWzIZUzYd/7D2ezd5u/Wlvb5lMjs517j2X7vb/bLY5FgyvhslWNd5BWXeNjjapVi9MJq7BdGchHxH3F8EPAfzW1nzBT8Yc7EU+fY4//i+OTh0+da9cFOztLSXXNIT2dScHfEcfTXdPVYSPNswF0V4RZeRBHgaFX4b5FA5Zdynt/skXGeTuqXZZ5g4coXlBD8SG3pEeF6fPZq/mbS0V/zS/Hf+Fzy1NbJZs1vSH9uwRRLfmj0F9F1auAU+V9ml2aU29nrfOFwzlRN9kX9RvR0wnNx2WXzcPT0ced95c9742zIcWrhE9Z+FeYQ53VD4nDq0eTl++PC7fjo8O7+9uR05HPG3kLie/jEeOBo8lhs7mrjXWGVa+l0SOFr+mNKe2tyFH9oZmF/YXtNe1ll9klW/VTqweDjUe1Y0eZn+/R+62fL9272YHNXZkvIdnbzf9zSec5OZMx5efVvxlZt7H/F4n2U8MSRQZTuTp7S75VBlkbU+UZTy01E+nrSxW7Xf2/0Yn/mb/33Zpd/0pRo48NglBbQzx3iE37HHuARdMAT7GlZ/W+XfObhfpdp4MdtlhXsx2eWbfjFYfpkcf969Mtm7mTc+mrvb1vzFulpTMMX4hXf2m2UaOL8eJxilO1QnkyU61aVxc/sT+bmeJR7wfgX6Gp49xDraU7gF+hpV+YWl2rz/heWEvVkFvIbyGpnwRbmbsnGeJRl6v/fkmaRWcLubpFm5fZ47hX+d3D2F/pjdfNo7GrC1GvhFedxdORl4mXA1nf0Zv5E/fRM60ri4VSS0ejrWpZU+eRE5tXOU89ed9MV2mdvwhHAfmLtYvT6ZuxeWe9SzuJT0PJtU0UT1W8V2BZyURHcQnvhccftdffkZOfIe+t3X+xj+Ntg53p14HrQ8Hnm9GHtQ3/ibVLnYvv4buJ0augUeOYT5MpolmBck2zo73ef9MOcWf6Wc+rsYJbXZZUUXOQf4XoX6xbF+BCUdGKWa/PnF5N0fpcQ+EMd4R18RxP5alpdZuFk48rJlHaW3EaWbe7JZJBt2+cX72Bs7xHLWGmUa/T2ae9px9Rv52L5X3XubOVxcuMU4EFa6W/s8EnoXeXu1e/n0uPN9Pjf8dPAS1rSbl5iZ0IRx2BwyWnsWXXqSOTnTerL1eBC11F6fWRlaXJnFFBrSkxo5mTN/H2XfdfjZPrQceZZRf/UQ/dCdM1zWfdQVf3+Q/70cfxDZPBYYvZYYPV0ZMp6Zst/evJLQudA9uLf4ez75O3k+e3k9+79derFZfp7YVFobMNvYflmc+149u5g7P1t6lNn42985RF3RBbZa27zFUfIbeJUXZBe+JZy5OVl6VJ973FR+W3SzRbQSGv8Y3TsavHgbu1NfuJq3v5o+UZy42P09GbmZFL7YedT2OB06fzz7FSV3MjuSezTXO162chtw2JtVhFAcmPwYfD00eLU7v7T6U7m333jZk1Ua1VsakUQfn9q9GPU/WTj187gd+fTwfhw5lTPynbgdkb8ZdjXc+XUSuHAWvvUXfR9R9plc9R9QVBkV0tkXXxAcXP5X1jh9/Ti8eTq3+WV1OHpXu3ndfLJfUNWZmdCYmRUYnn7XnHi/3Xn8XL/3mT/0GDCWm5wcxR8fxRFUWPA5k/87lTz4lNU7E9D4k125k52+HN58HRjykNn9Ft7+dty+8d6xMphWPxn3/15z/hmRPlkZed+d+t91pRAzJZF05Zzypdm+O1p/Mpu/3Zu9mFo8G1n/WvC/Gfq8sOXWODte+DdS+dk3NdsWGxjZhVLbnnTY/BOSu9/8v177l5P4nbZ+XDO5UzS4UhX4nHf5n3b+09c4FBl5XFjymd7z3hb237UcmLBYGP4e1zkRvj33ePa5eZd6OXblfX+4VX/3dXJdPRze/BiREJs9WZf5XjmwXLicXT6fFb5SkPIYWfcFWNRaXbbcEX/yULn/Xz6+EzJ8VzX3c1aWfV0XPF3XUfQRGDxT2Hg3nzl0mXc0WRC/09L7cV25slgz8lv2eBl2O5xRpVWfJXSZZfdZerYZO7IYefYYedUZvFaYNBYYNPbcPjOVuTBwsNH/NdH4VxzwnpkfmJnY312YVpUZ9b2fET/UETlwHD4yn7l5Hv96HTb6llT60B67VZm7M9p5NoX9FYXzcNu8vpsw/VtWVFhUM5x3PZO/c5M5l/b7U365lLt8dHuw17j20DlQ3H5cnjGZXrDdHP0RHPIUXPJ0Xbz1dX9fttdbNtkZ9lmQcZkVPl9Ufh/xeV8x/553vhIx/pAxOdX2vpe0v9wXNVy/XBw82Fd0WPSR2fNyUjn/nbkyXr20H7wxHnGwHbJzXDBz3Xy8EH539HmdfzlSuTDRPNWRPZbf8B1dvZ31fN+2PBwU/RZXfjdXv7Vf9dfY3LdZmTJc2HcR2Vc3UpAz9FLw8tXycny9dfl91z5+9nN5VZQ9kh313RjSkZvcVBhQfBEUv7ST9XbS3HL1n3eyl5x3vR9X/5XU/743Pns9cLn/kz34WVF4XR99NBlX9NmSdhmecN/Zs1Ze/XyTNn40l/HXEhNWkR2W89aePTYbs//YET/QHPk8nTy/Uv05XNY50Fx+Md1wMV9dVhweXN2eXl31UVX49BHlfF///hzSfpIe+XeZsrEbV35YVHtc9TryNbtz3b69mP35mDQ7WVO4nlx4WR45n5n5nBj5UZz5kRC4VFx8Ndkx91nxVZt9NRq0dBrUcxjwft//Oh11pVIce5feOL9feDnZf3gbU3kZmH1f2jVTmz0ymP752f85WLU52Za52dS4WZO5GZ99n1a49z1kfrBlMpC7Uxk+Ep65lJn+N5v2sJuWslodfRucuNyZe3LZePnePvKZPjOZv3zYc3/Y13xaU78bkeVcVPpXFj+cUn0ennkT37jVHvj1m3lxG/32GlXx2Hc9XH75Hfm7mbG72ZA7mV24Xdk/UFuUVFqROR7zetC9+pwVux7ZeNEZezQZeNDZufRYuXMYvvcYfrcZufwZ/jmYdPlZkD/e0z2YXL5e2H/eGjIcGbmynHp537t/mT5yGb6+Xzh5Gb25GHf/2ZR9W5H9mlz8Xlw9lh2/Ud6/lll5fZl9Od53PphWPVsRfhw3un1xOr/WuDfZvbYY/b/Y0X0YE73Ylvwbkb4Y33mf3/iW07rQXTpQmfs8GTk82f5+2PI+mp15Gl743B87dB+49Ri+1Rqz/xgVOVhWuNlde5wZO7QYuXCbf35Z/jgZPHsZ0Tocn/tdmXiS2HgdRT00RVQ8mBW4nPE60pC7k1n4Mpm+vxsyv5vw+Bh1u9Id+LYeuXPZufwYPvkb1fgZH3meWTlS2fkX27xxRTR5Wxc7Hzf6XJc7kB44/xn5edj8Odg2OFiT+J6Z+F2b/9RbfzJbPXlb1btYUnuf3LuW0jvXWb7xGnN52DQ7HTX6VBf7F164c9t9/ppd/lsZf9gZOFwYOLBYOf6ZP7mfv3tZNvsYXfsdnPg1HLj22flwGjL8RVF5WxJ52Rw535k41Zt5/Nu9+Rs2eNiU+xhTeh5Ye1dYe3IZu/0bOb7FfTgblbvZlzoZXHpY2LtZWrmRWnmzW7l/2747WL26mRE72R47WVk6EFh7spj4+Rg5+9j/O5vwO5pd+1jZ+B5ZuJNYOLfaOXwFcb7at/maVHiaU6VfXOW2XKVzWHv9G7g/Gr95Wnf5W5K4GBw7GVm7HFo5F5v4MNi4/9h4eZjxOFnT+Fkcuxzeu90beLRY+H9Z+X7bM38FE36a2Tjen7ufHuVXHCX9Hvt+mHy+G3K5mPY7WVelU5K70d4501t90pq2lMXUsBoXeVi3et/ROh2fO9Wce3We+DBY/LwYffjfNbjdHX4f2f4TWPl9WH95GTG5WNF5G16+GZ54Xdg51li581n4Od75vFj5NNp4E9s7XZ37nrT6mHh7mPr8m3uYWfpFdrmEexaYpFgUJQU4/cVlm156xPCwBHrZGSUa+fsbpfQYZRgdettwe1s1fRu3vlhz/pmVf5ncPV/cvxZceT3SPP6cFPmXH713WdZ83dz8VRnRsl+cfvyc13kRWDf/WZi/slsRe/VYeGUQHeU7md17lBq0OtGbf3sfWPl7X144OdhYvr+YWL2wWpt9sBoZufkZXPv4n9+4eFwfODvdGDH50Blzu3TZljlUm1w/MBhfvj6dH725URl3OdQYHn02WZ49v59Z9L+WnrD4vRwR//0fHvf8EV9U/DEdlHl5NFa/OTSf17OUXJ1zslOd9L1VEDF+/DVV8731U9QxEV/cFlfcXfE991e2/fAQ03T2dFd1cdQd0rT3FlJUsRYc0nTxF5Gzf3a0M/xydHXzchWREVWUXV3WlVYd3dGWXRa19FURV9QWHR1WF1QQFHZ0d7C8/7x9v3wx97a0tLW1dzQ3NVV39rHxMHHxVdY1tVedXVCdHN9SltEWFDf09bGwdnf28jIwN7b015d0FRfU9dQWFxXVdVVVF9H19xWUdPa3lFUUVBeXlpAQ0xBXkFZXlfS295VVNRSR09CQVNQXFHU1tLDzM7Nwc3H2NvE3NXS1lJV3dRTVN/Dzsr098/IyMzYVFFCdHR1SU1YWFNSVNDUVFRTWFNUUdReWVNbWFxU09dSUtRV1Nvb0tPdxsfawcDG3sXE1lJX01NAX1xES0pCQnZOX0Z0SUdDdXV1RkFBWFlcV9Hfwcvy//788PfOw8PO3Vzcxd1V3djGzMzLzMLHxNnR1V9MdnF2fHRNWEZJWVVRU1De39/Az8bd3tNWUV3V09bf3dNX1tndU1ldWERQUlTX19DUU1Ld0VZfX11YW1BTU15TUFxER0dJTVlJSkVSWEZEUNHV0Mf1y8v08Mnf2dxSRV/V0NDb2t3FyvDLzPbz88r28czWXVxCdHREREpLQURbU1BaXFJUX11RXkNAQlpdV97b293d3trEVtfd19Df29jDw8TZ0NxQV9VXUl5eUdVaTlpEQHBycXx4fXB2cE5bR01HX0BY3d/D8frl+Pj88/TO3FNfVsfCx8P19vf0z8rKxtrF39Lc1VpJd3NwSUx0dXRPXF1E1M3D2MXEwNPVVVNcV93b29vZ0NXf1FpYUlNeWVzX1VHU1VxTU1NcX1RXUVTXVF1VV9BdQkl3cXFwdkhCTFtaQkZaRFhTxPTM9Pz0x9jH0l5HVNLdzfT28//5+fLz+fD39vH1xNncX3dxSndzfXN3dnZATUZR1dXQV1FfRkZbWVXQ28bZ0NvG1FJU3dnfzcrB38PC3dfQ1FhMWFpCQ15QR09HVkVIRHV8eHt/f3lzQ0NCWlFQW17d2Nr25eX+/fLwzNzY0NfazMjNyvL+9Mry9MXFzMJXW1XXTHVCT0p0TnRwS0F1S1jT2cHJ9/Te1NbR11TTxsDVV9PXXVpYW0VU0tdU1NdQXl1UVEVc1VlPQVTUUlbW39HS3tZeWkRze313cXZGR0t1W1NHRVHX0sf19c3B2tfUVd3O8fD2/fz45OT68Pbz/crNwNrVW1tdWEVfQ3Bzd0x2dnZ1dUhR0VTV1UZFXFXb3tPc0Nbfw8ZaVldd3c/N9cXR2lBYVlLd1VpAdU9OQEdIRl9XXVpSRnVxfH1zSnVCQkFAT1DQ0dPUxPb19PH+8dFS2MDZy//PzvH58PTx//bGzvDB0VdfRHZwTlJfTUBbWXRJW19BRVfU19/J3lfTyMXfzc/aVtDEXk9eVkB0R9fRV1DdVkNCQldXV9zcV1TYT0XTVcRYXc3HVFDWWnd9dUF0cndZRHp2XEFESl3F3crMzFp21lfe/uT28/7l//D74Pzw5eT+9/PbXlRIX1hxT0Nxc310cXNzX0Nye0xVQEpSV3dS9M5Q0/T+zlhVV1NSwcvW8crA5XhK/cNwS/bMwsZweV5GdXBPR9NZddJfcnJZR0t6W9tfW3F2UVff1Udd28LZ3vTK1dHb8PzTwv71yeTl+/zx8MHb9/RdStdU13VJ3V9PXlDRTU9YXFtDXdFWXV5VVkLU2lZexclR11PV1HRG0VFDwlFAW1LbVndcxVRf2PXdWlxUVUhHW1ZR1FZQUURc3Etx11hGTXFMQ3ZyX1l12sXVU1XX1lHC28r++OTk+uHt4Obm5v3w8/PN08bP0EVX00hwTkJ3cU1ZT3VCTlNAdXVydXZzS0zV0tLT29/d11/d1tbZzPHYxMbdxVZRRUBYWNRcW1lRREVMSklyc3V9c09DS3R3dUZGTEV1QEZYVFNTWFPSXVJX39RT2sn0//7/+fvn4+Hk5fj59fTI39/XVtFfVN1TXU5Y0trAVlxe09tcWkBdR2VyT01KTVFcdnVcUElAXd3FwvXK1tTTxNBYXlTQWl5XwNDFwMnDWFVET0lAX0BHQlpJdkp0fX1zSk5xdkxIWlhJdXVGTnJB1t3V9+bn++fs5ubh4+Pj//j39NDV9tHU0tHaSXtZ0V5T3NBaRtddTEx3Q3xnZHFzc0lZQkf0xlldytr1+OPk/vbA9Mzb0MfeT0h/ckHOVVHW0MPYfndRdXN0Vk5yd3tzcEbVTFdEd1dcR1BB1HRQWXx3dHXR+/v54ePl+cb65v/x2/TJ11NfUVZGTMzQQkd2wlFFxc3SxtnaRHdfRE1HXUBCdnJATXx0d159cFlf9/nC/tLN9NxWc9J1dvHQ+9j5xUrwy/3P9MvAWvTaXVhM1091dmV4Q2ZKRnZddlJPfVhxSnhkcnRXw8vy5uf45+b9/vvl/fP3+P39XE1QW9lMd3l/RnZSW0RWRdVBQVhwekJDc1V3RVhATE1WVltZUljB/ufk/OD49PDd0/XS2MnFz8LfUdZUU99Z01FCRnNHQnFIdEx1d050dUtFUltC1kNNV19fXkxITkJdwPb2/vzn5/n+5frk//z2+ufH019W38fS319S1V/T0NnQ29JUWEVYcH5+fnl8SXBzTEpGSEhLdnBE2MfI9PHxx8T1xMDQ0fT0wMXeycjRVMTxUNFXUlRMXkhBcnt5fHl8ZXx0dn11RU10cEZPdHRLcUpD1MbEyv/88+Xn4+Tk4Pv45OTw88HDy8DcxcVcU1RQ1V5K1EBcRl5UXXRJcXBEQUVFXkBSUddZSljT0dLZ9f/wyMjHVN/R1FNd1sXZ1l3U3lFXUVN1TltdT3NPSnF2SnR1S3FzS0tf1F5SWUVaWF9CdHZ2TVDQx/XI/Pj38uTg+uXk5fzx9vHF3dvBzNHW2VFbW19Q1dFT1NjUVlJfSHVJTU5OWkNJRkZIdXFNT0pBVNXc2sbExszB0tLE29LczczBx/T1wMXG01NYR0B1d3R3fXB3cHxkZHx7eXdPdHd2dU5ycHZ2dEhX0sT25eTn4ezp6ezs7OPg4eH/8vf2zsDZ1FdTRU5ISEBBTUdSREdGT3R1TkVaTFtaWUFBWlNFWdDV1FDYwcTfzPTMVdHQRE1e0VJZV9jb09fa3lhJTHV8c3JzcXR2TUlNd3RBR1hdUFJZREZNTnRKdEpCQVjSx8bx+uT75OHn+Pz7+/30/Pz2xPT031bQ2FdaXNdSWlDc0lZX11NcWFNfUk93QUBOS0BFR0JbWVlZUlHW39vMzMTdVVHVUlbT2dLczPXMxdrF109JTHV8e31wfH53dH14cEh3cEtJd3NwcXZ2cHRIQU1c2/T8+eHt7ezu4uHm4OXk5fj4zvPa1t5NWFBIX0txUkRAdVtXQkhHU1dYUldQWkxZX0NCUdVQUlXS2t/Zz8Xbx9jQXEdYR0FHW1bUUtPY39/W1V9ATkNDSnZ2dUlPSVhZWkdOWFhJT0NPcnxwc3xlfXFzdETe8P3l5uHm5+Ph5Prk5Pr65+X/9cn3wdTQ11dfWFDR1llW11BETFlTRUBBTE51dk1GdUlbXlxZUN/Z0NrNwMfR19RcXVbU1tXR3tnU3cPd1lRVUkxJREV1cnJPd3FDXVhLSk5DdH1wcXJ/fnNxc3x8SltY3fL7+/rm4Obm4eDm++Xl5Pj//PTB0tHQ1VBU1F1ZU1NaTU9EQEpDX19DSkVdQU9SU0VBSV1WVtbFxsbZ3cXeUV9YW1taUNHX1tPS3dLT0tVRUVNSXV9fWEJ0dUBbUVfV11tMQEVCdnJzfXh7fnlkZHx1RFHD9vP/++Tn5+Tn5/v55Ofm+v748vX0ycLB2NnY0NZUWVpAdEtDSE1KcXR0TEZNQkVaQEJLQ1dQ08Xaw9vfxN/W1dfQ1NXXxcff2NzQ1ldUXEBeVlJFTU53cn10dU5HX1lETHdKdXFxe3t5en9+f3VNX97az/bw8uXl5uDg4+X/+uDm5fvl/8709MLG2MDF0tdfR0FPTHR1TU9MSkxHWFtSU1hGREFCQkdZ1d/T0dLW1FFQU11cREReUdfewcffUlfTUFhbUN7T1FVWWU5MRF1aRVRcWEZARXV3c395eH96ZGV/d01f1djayff+5eTn5+T45efh4eDm4ebk+P3x8PPx8/HB11BeTHV1S3RyfHNzcXN3dUBId1pZQXVBVtRRVdDQ09HfztjF39HWVNvFxMPCxNZQ0VxFQ0RT1V9DT0hwf313SHB1T0dKd3VCdH18fXN+fXdNT0RR39/cxPfy8/nl5fr4/uTn5+Tn5OX8/f3LyfXw9s/C2tRcWEZKdnZKTUpJQV1aQEdXUk1FU1ddU9feUFBW0FRSXlfUWkVfVVdU3M/Pz8TA01tHRVxSV1TUV15FWUREQktOTUNfXkp1dnZ8eHl9f2V7dE1IT1/RUtHF9vP19/388/365+Hh4eLg4Obk+Pb3/PLLy8bfV0RMSnNwc3ZxcHZLSnZCSUNKTF5cR19fXllcUFTWXF1X3dFU19nd19jMyPXP2d5cRkNSRE1HR0VPQEBNdHRKTU5EUlxLcXZ2cXNxdUl2S15XX1bW3dPQ2Mr0zMvw/PHw+OX7+uTm5vr7+fPJyvfKwcHMxVVaR0dMdE9BQXRJQUVMTlpWXEhE3NxFXlTUWEVfV011T1pYSUdX1tbTxvT1z9jZW0hHUF5AR1PVWlpfUEJ0QFFERl9SS3J2dElyfnF2cXZMU1pFWNPfVlHZytzQzPH29vL65+fm4+3m/vj68vT08PbKz83DVFheWUZCTFpOdnNLQUpKW1NMQtXdWUFF1NRYX1RdQEBS1V9aUNLR1d7z/c3d3lVBT01DS3d0XV9AQ1laTUFd31JCSUJ0c3BIcGRldnVKSUNWVlPTztre2cDOzc/w8vX08OXk5eTh+Pz////x9fDyycbDzd1SWVRdX0VAQEpzdEZDSHVBWVFT1dFWWVfWUkRfUEdYX1xQU1lTV9faz8jA31TUU0Z0T0ZDT1hWW1lZU1ddU93QXUxAQkl0cHx4eXlxd3ZxQF1U1N/HxdPRxMPBxcjMz/X55eX6+vr5//zz9/fx//H0y8ja0FbV09ReR1xEQ0BEQ0h0TUFaREZFWVxZXFJVU0daU1JQXlhaWlbX2NrA2cTF2lRfWURDTkZTVFJTUVXW3NHVXFlGREZPdHNwfXJ9d3ZzdktCXtDDxtnJy87Nyc/H08f19/D45fv7/uX7+f3x9/bOw/fI3FZV1lFHUtFQTFpZW09KQENNT0ZaVFpFWF5bWV1YXFxcUVhBREZfRF3Q3tHd2thURVFURXVGUltHR0XU1FZU0dxcXtdWSnd1S3l6fEp3cENHXF9XxMnF2c33wNzYwdxW0s/x9v365PL8+uT48PP88c7K9/Te1tzQWVHR291RUdLTQ0lAWndyQ9VSQkBRWU5G1dZFTUNDdXB3QURDR9PE397AzlVcVtBSR1bRUUNd0dBdXdXXUlNQ3FlxfHJyemV8dH1/cENBWlzby8Ta9PbI3NDbUljT8PL8+uHj5uTm5vnz9fLzycH3wlNFX1RER1HRXkdYUkZPTURIdUxc1VhHR9VXX1ze3VFeWFhLdU5ZWFlQ2cPM2sHE0VJaVlNYUdRaR1xXU1NYUNFWUVbVRnN5cnx6fEpHT3dDU15R3dvT29/ExtRQWVtbU9j39PLk5ubk5Ofk/cr08fX0zc/bVF1XVFbXwcfVUVFRRURCT3VPWlNaTk1FXFlHW9VST3dJdHJxT0VCXtDGx97Z2NZcXlfV2cXFxNTR0tReR1HT1VNdX09zf3h+e2VwTkxOQlNURFnT0Nbfx97R1dPVVt/By/nl5ePi4Obk5/n08/z3x8HG2FRaXFxZXVPX0F5aUVxAQkFGQUFbWE5IQkBERFvR1lNYWVtPdk9eWVvdwt3V0dxWWERfUdbcxMfZ1tVUXkFCU1ZYQV5FSnZwcHN2dERQU11U0VRDXdPQ11PQ31dd0ddW0ML38/764eHk+/r58fXy/cjCwMfSVd7E2NzSxcXf1FdXW01AW1hCSVhJfXNLT3dOQkdaWlhZQEpxdFpf1NzY2dVR19RSVtnFxcn39sPT0NBTWl/XWUhBQUpzcnN8fHN0QltQVldWXlpaUlBc1N7XXtTa2NnM9//5+ufn5/j88/zw8fb2yNnX09FR1d3R1dfT39ZWVF1GTEZXXUBPQEx3R0VEQEPX3t/d0VBfQ0tCRkZcVFReTEJBTk5FXdHc2cbHxd9WUFNZW1xTQ3R1Qk1OQk9NRFNUUFfc0VZSWVtW11RQWVJHWNbd0t7J8vj7+uX58vb38//+8vfPx8bax8faxMHOw9LY31ZYXFpKdU9bS3NxcXxzcHZKT0RRV9VXR0FMSE5bUNfW0t1XUNLT1t7YzfTPzMvA3lZQUVlbTUp0dnJ2d3d2dE9IR0dHUVJYU1BX1dvZVV1S19bT2Mj39PD45fr/8vbL9c/28/bK9cLF3t/T3tvZxcTa3tvdUUBHR0ZMSE9AdHdATUJZVlNRXlJSXlJJSndKSUNFWERGQUBNQFDU19zN9ffMwNjf1FfVV0ZJTk5CdU5DXltbWl9fXVNSX0dd19BaXVBYTU5HWF3U2szK9//4+PH09fTK9Pf28fb98/H09/b2zs7L98jG0NDVRE1OQnZ8cHR8fnZDR0dBR0JOQE9IcUpCTU1AWFNfX1LU3VTfxsLbwcvx9MbZ2dRGQUBCdXV1cXxwcUpLdEhBWkVbRFNWVtXa01dc1NFaXNrLysj19srw/fz0y/TI2trAz8LHz8PJwcTPz9vezPLwx9zS2ldaR0ZOSE1ETEVd1NDU0VVYTUpxcXN2dXV0cXBPW3V0RdDUV1TCz8HL98nGxcXeXV9cU1lWWF1YTFpSWkxDX1BDTFLRXVpY1VxMS0BIcUZQ393Tx87HyvX29/f28fTDzc/0yM/0/v3x8PLw9ff88MLH3tlfQ09LdHFwcHRLSUFSWVtNR3R8eXNyc3Z1dXBORV1bVMH09cjK8ffOycv0xtnd1l5NTlhcWklAW0J1d3V3dU1GTEZZU1NTVVRZQUFGWkRX38LNzcH08MjP9vL98PHwzdre29bd2cHB28TAzc719ffIwMDC3FZDQkdATURfU1BT0dNUWUV3cXNwcHx9cn54dkp1SF7T2sXNw8zJzcDMys7D2dzXUllVUVBX19dRVl9HTVhYR1pcUlxYXF1HdXZ0dnZ0RF1SUd3FzM3J9/Dy/P77+fXMz8jbxvX0ycv39/X2/fD29PbO21ZHSHV0SnRITU1dUFhPRkFKfX1xc3l5c3Z+fndAQkzXzff19/P/8M/098rG2N/fX0RbXkVMRVVRW1hBdHdNQURIWNXUXFbUUU92TkNHTFnRxN/Ty/DMz/f9/fbw//Hb2treUFbYwsffxM7Jzc/y+Pf28vHFXkFYQnZJXFBX09zbUF1dRHRxcHZ8ZXt4ZWR7fHR3T9fOx9/E8fHYxvHxwsHDz9xT1NDU0d3EwdxVUV1ERU9YW0NZUFhOTkx1fHlzdHB0Q1RUUtDMzsn2//v7/vz588vAy8nCwcrxy8j18/b0/fr+8crO0UV1d0pwcHRaWF9YXERPSkh1cHxydHJ+fnJ5eXJNXlDWyff0y/Tw9/XK9vTN3tDQV1hdVVdUUVFSW0lCdnZxd0hERV1TRkd3dXRLcU1MQV9U3Nzd2/X28v3++f/28fTPwMTBxd7dxcLDxcPI9/Xx8v788c/eV0ZHTkBFXVXU3NFdW0dDTHZxc3N4ZGZhZ2d6cnRJQ17X0NbTxNjCw8739fTN29nGxsTAz8LA3cTfUlxBSHR1S1tfWkt0dHRydkt0dUtBRFpDUtTRxsjw+OX6///98fb198vKys/098j38vL98/P8/fXFUV9FSHd0TE1JS0FDSktMS0p0cXdOcXp6ZXh5fXVHXNbZxcfAzcLAxcfAy8rN2NrR1NvF29vb2FVfWUdCdHFzcHVJWkVCQkFcUkdbVlxEWFBSX1Dd3t7by/P98fXz9s3AwMfY3cXE2sXPz8719/38/f/w9M7c3N9QRF3VU1pFUFFeU19aRkp3cX5mYWFmZGR/Sk1AX1XVVdTT39DbyPT29fTw9MPI9MrKyc3E09Dc1ER0dnByf3J2dnBwd09KdkxYS3F1Q1hBRlXBzfX8+/j//f/y8PDy/PbOy/D09vLw98n08fXH3sXdU0dFW09zcUp1d0paWU5MXVJcWk11cnh6eH1xd0dWVVTZwNvR1NLc2djBwMbAzs7NxdrH39TV0tBUV1ZZSHROSnZxdENGR0FeU1xBR1xHSU1SUllW2sDDwsv09c/Gwcj0w8zOwsHJ9/b29/Py/PLw9/H0yMDa09HRXFhaXFBeXlNZR0FGTktweHtmYWBkeH98cUJHW1pfXVxV2cXA9fH8+/7y8/LwyfXLz8bAzsbdV0F1dnNyf3F2c3JxSnVIdXV2dnd1TUdS1d/O9Pfw8/L09vTw/PLx9/L//P/88/H19MnKycXGw8DdVFRQR0RHREVERUFAR1tAQ0BJcXZxfHx9cXZ1QkZEUFNQU9VV1dPX0N3D9Pb19MnBxsPH2Njd1tPT1VdcRExOTnVJTk5IdUtCQE11T0xKS0xcUVXWwsjMxs70zsHNy/b39fb9/PHy8vH0yvHx9fX39srMydrQ1tJXU1RQU11FT050c3x+fntlZWV7enhydndxTkJaRUFW2dLYzPTOyfLy/PL88PLwyMvz9MPbxdNaRlxYdnZ2Sn18cn14eH54f395c0pzdF/Fx9vI8vf08PL98PL/+/39/vrl+fHw/cjJy8vax8/P3NDQ0ddQXlxVXltGWkh3dEJ3eX5zfWV4fHBzd3d1TEFDXFdfR9TN3tDey8Pay/L0zvfw9cnIzc3H2FBX01VeVFdEQkVNcXJwcX99cnNycnB0SnRMX9HUVNvx9c/08Pb28PLx9vLy+fr+9vn58vby/PTGyMrd1sHH1FdQ1FlYQXR2SXZ8cn9lZHtkZGV8fX9zSnR3TVpdRVDFzMPAwPfz8Mry//Hx8Pz29PTJ3NJRX15cW09CQEJ0dHB+eXZ9eH5yfmV+dnZKWVDV0cbP9vL88P/6+fP9/vHw//r98vn4/fLz9vf0z97Y2dRR1VNYW1xASkpJSUlYQEpxdnJ5eX94fHB9c05BSElFWERW2cTT0trHz/f09fDz8PX8/vTBzMRTVtdQWVpFQE1bQEt0S3FzdnRxcnJ+enl0d3VZ1lJUxMr3yvH9/v3z8/789Mr8/vz/5eXy8P3wz87A3NfWWUdZXk1PRk90T1xCSEBGd3J2cXt7c3N+cE91SE1MSkRV1dDM9MLH9/TO9/3+/fPw8Pb0wNLf015FU1tDTk9KSkxGSUlNd3B1SHB8fn94fXdIR9HZ19v09/Xx//z2/fj//Pnz9/L5/v/6+vL08PTDwcTVU1FeQ01bQndIXkFDUlBERE12fn9/ZWV4e2R8cXFzd3dKQVDT3cHOy/Tz8PH++/z9+fry8PHB1dPZUFDXXUFNQkxLQENwcHRyeXB3e2Flcnhld09OX9Dcx/b09/H8/PL45Pj8+Pv4+uTn5OXl/ff3ydnb11lfXk53QkZLdkJaTExbRUx1dnN9c397fn15eXRBdnFBW0ZQzMrNy/H09fDw8fHz8fbz/fTCxdFZVtZRRV5eQ09FXEdNSHR2dXJ9cXF7enxzfXNORV/U2cfI9/bx//zz8vj68vL48vf85fv++/zKwMzH0N7WXF9fR0BeVERJX1dHTV9ad3B0cH95emdleHt+S0J3SllXXNLPzsLJ9vT19/f28v3z8v72x8HHV1/W3F1b1NVYWlxBTkh2fXNxeXp8c2RneX5lfktGQlfDw8r8+/765Pr75Of4/Pr7/fvn5P/y9sHR0FNGRVlBRVdXW1peQ0tEXEJOR0J2dnRwf3t7e3x2cXZFUkRf2svHxsv2zvX3ycPCxsD28/fL9M/dVddfRllXUl3U1lhNQ093dEh2dnV2fXJxeXtydnBwQ15Q3Mz08f/6+fvk5P77+/HO9/H08P7998vA1lNTREZcVNfSxN9dXlFWWFfXREhDSXN/fmVmZHplfndwcUdUUNXByMfF9PbOz83Z0dvCw/Xy9sj3ytBV29xQ1Njf1NZQT3V2cHN2dHJ8cHJ6en55ZX12c3Rf1dfC8P3+5eTn4OPn5eT49Pf+/PT3/PbC2NZAT0FMTlxVXVDRUEJCX0ZLRF5Od091fXxyfHl8cXBLWVlY18fCwvHz9fXwytzS1l1c1NLfw8jAxsfXW1DWUF7U2dBQUVFaQUZLdUJCdXRId39xSXFySEJJRFXQ0sb09/b65+Xk5f/29Mja2sjLw/T8ztHS0F9aUdfU09nexMPcVdfdUEFFUk1ycnN6ZHh4e3xwcHRER0NR2d/H8fP09fTFVNHZ1VHZzc/K9snYx9pXVcfSXNXYUEBdWXdwSHR8dktyf3Nwf310cX1IWUxO1cfZwvz65ODt5ufg5Pz9/fTJ9PbNxMVVQU1ASUpFXUFA1d/R0tZdVtPVWFzVRnRIT3Z2Tk91SkBGRFJUUtTPysn098Pf29xaRFFZR1Tb0tDE3lZQ19dd1dFWVdzQUlBVWElFU0x1RFpJTkNKdU9PcXZMS3Va1dfb9vn45ebk5eX68c/1y8zMztvQ0VBAQF9FQVjX1NDMzsTEwNvT3dFYQFpGdHd3fHlycn59dEx3SllQ1cTNwc3OzcXH2tBQ1t/T28zNwMfHxt7Y2FRR19FV1VZbREZETHVOSnRKSXVKdXR3d3V0d0hCRlHbyPH+5ebh4ODk5fvz9vT1z8TF1l1HQUl2SnV0QVfX1tHe2NPf39VRUFJYX19ATk5PcXFCR0BGW11U0djFx8bGxMXZ0FNfXF1fVtPd0tBUVNHXUVlTUdXXVdHW1VFW1VBQU1BXUltbRUNOSnFwdnZxdUFFUNjM9/zl5OX6+/7x9/T1y8LG29LWU0VYWkNAUdPcxMHCz8/MxN3R1FNbXF5AdHd3c319cHB2dkpYUlxX3drF2dzd09fU1tTc2MTPz87Cz8PF3tDRV9fdV1HVVl9eRUdDQERCTkZMd3d0cXBwcHN8dVtd18zK9/zk5ubm4eT4/vD08fTG3tzUWEdGSnN3Tk1aU1VW1tLc2djbVlJUXF5XUEFNRUNISUVHQF1WVdLY39DbxdZT1tFHRltbR1zS19bc09TX1lZT1VRW1d/e19na0VfR31Fd1VVQX1pOS3VzfHx8fnZEXFLXxs3I8f7//fz/9vT3ysj1z9rax9JXUFFeQVzX1tzaxsHY2cXa3tRZWlJGSExKcXx9cXBxTkBHXlbT2NzY2tDVVdfQ11BR1VRU3cPIxcTDxN3T0tFXUFNXV1VVXVJeQEFGQUJMQ0h0Skl0cHFwcUla1dvOyvXy+Pn55OT+/PLzyszLwN/Q0FdbW0FJSEpMQVZWU9fS3NfS2NBTXlJQUllbWk9LT01FWVLU39jawsPBxtrc1tRQXlhBTnVPRkVcV1VWU9HQ1VTVV1DV2drZxMPF0dVV19dXVlJZR0hITnRwc3ZLSUdU0tPYwcn09vDx9PX0ysPZ3tjc1NDS09fW111cVtXcxMLGxMnMxdjd1FJTUkZCQnVzcHd0TkdFWlPX1NbY2dVU19VTUFVQWVlBR1DX1NXexd7azMXU3N1fVtnY1tHe0VNSUFhYXENKSEtxc0pLcXZERVrS29LG9/H38/7y8P3y9ffxx9za3lZeVVVFRFxCS1pFTV7d0VHdx9ZX0tNeVtBQWltbTE1RVVPWxcXGyMPewM7bV1FXQUxaQXRJTUh1TUZGXdHQVNTdUV1WU13Sz8PbwsvBxcXfVdDeU0BHRkJMQUBLTl5cXFBV1tjAxNjFws3FwMDYwMbd1NbQ0NLd2NZXVFVRUlTcwM3NyMv1z9/c119ZWUJ3d0tOTUBbWlzVVFTVVdDU1VddX1XRUVFQU1HU1FHV2MPHxcLb3dRdWkdT1dXQ0t7d2MRUWFtFTXR3dndOQkxCXlHU0tnc2c31y83J9PT39cjLyc/Z0NNUV9HTVl5TXEdDSXVDXFxf18XDxsDA2d3f01VWU1tY19nV1MTA2dDc3t7YVV5eWUFPR0VCTkNEQ05DWllR1VBX0NFeWlxcVtnGwc31y8n29cTa2VFDQ1pDQkRbT01YRFpRVl1X2d1R1NrTVdDd0sXD3NDaxN/ayc7T1t1VUlldV9Pb3sTP9M/GztrVV1FYQ0FCTkNfWEBQV0RGXFdX11VcXlZXW1/WU13U0FZd3Nre2MXc197RR0FcWUZR2dnfxcfS3d5UXF5AcXNOTUpIX15bV1Zd18fY08bMxMXKyMbAw8Xbxt/W09rSVt3YV1hbTXF3TklOUdBX3sjOxsr3xt/Z0FJU09RR0trT0cXZUFTc1V1RUUdNRU91QkZ0dEJPS0VWUVTW1lRWVF9c19zW3czOyfXxysP1z9PX0FpIRERISEVbTk9ATUNQV15d1VVcUt7d1NvB39PBw8bNw9jbwMfWV1BbRVJRVN7a29jHz8DAzdrVU1dZRFxbQEdRX01ZUVlbV1dfV9RTWFFTW17UUUZf1FRW3dvd3sXdU1BWWFtRVVfT2dzcxdvR1tNXRkdeRE9NRkFFWEdaX15dVdzc0d3ExcTNzMPAxN7Q39nT0dLX1NLTUF5ZR01CX1lbVNDR0MTMxsXa2NbT2NPX0NTV1tzT1dfdVV5WVl5EWltZX1lbQE1NdUlHQUBbVtXU1dbX1NzS09jZ0t3Gw8PPycPZxNlWUVFHSEJaTEhDREJMWV5aXV9EWdLZ3sDK2FHcxtPW2tnX0t7c38XfUlfZ3NHc3FVX3d/Sxc3cU9PZUVDXUVtFWlpfVFJBUdxVUtTVWFpSVFBV0F9AXFJGW1VSWlbZ09Te2FfSzN9V3dxRXNDfVlXY1FvU011FXkFLTFlBSFhfT1vXVl9V0NbeyPXJ9/bF1MbB1lTXUVtR01VX09VHU9hUWlfQX13f2dXcwtZT2sVXVcXcUtXb31XZxdfSx9RZV9VFW9DXR0VVRXRARkpMREBHVN3VV9vH3dvM31fd01xT3t5Q0szS0c/DUF1cQ0JFWkt1XF1ORFdEQl7VVNDL98DD9cfdwdheWVRQXtTdVVTHwtzYxtnR0dddUd7cV9XSVNXd1l1d1lFe1t1X18bG0dLe11BRVltX2VFGWlNFQl5SQUJRU1tW1lDUwsze3MfeUFBQRlnX1FJUxMfY2tvVWF5ETkJATERcWU1HUVJd0drAyvP2zc71w9vf1VtFX0dBXlBSUdna1NzD3FJQ11BQ0dZT1MTcVNLT1t/c3dDZzsHfxNvX1NbVXF1QU1ZRXUZaX09MRUdERUVDRl1V19HZ2dDc3NZXV1RW1d/f3M/IxtjExNRRXE1ITk1MTUBMTENHXlzSwcPPzcnNwMLH3dfUUlhaRkVW1dXf3tjH3NFUUtTW1NVQ1t3Q0NzQ0d/R3d3V0Nvf1tTR1lddU1JT19ZVVFZXV1xfXVhfUVtaWEVaXNXR1dPZ0VfVV11WVVdR1dzY3sXY2dnd1VlaRUNCRFpAQEVFR1tS1MfOzMDOycPDwdrc0dReQURER1hSUFBV1tRQVlRQ0NnR0dja39nHwNrbxNHV3d/S0t3UV1TUVltW1VFV11ZZX11bWlJTWVhSRENbR0RfUlRX1N3W0cXe0dPc0NTc29jYwNnW0tFYRVhbRkRZRk9AQE9DUldX38Xf08XAxcXMxNPc01BeU1NZX1JdXFZVXFbQ3dfR2d3Q2cXe29rT1tDS1NTf3dbT0VBTUF1bU9HW1dDTU1BUUF1cUF1bUlNEQ0RBQFhTU1BU0dTQxNvT39zX0N3d3dBVUl5TUFleUF1T1VFfW0VbQ1tU1dbc39Dd2MXHx8Xc0NzVW1lfRURbWFlZXVBTU9TW1tzY2drDwMHH2t3T393X3NrT1tPWVlBXVFdX1FBcU15fUlZRXVZRUlxdWUBCTUhCXVFQ0d/excbDwcHE2dnaxNzQ111ZWFNSWl5eRVpeXkVaWERbXFJT1dRWV9TS2cbCwcfb39bUVFNeWlldUVdXVNXW0N3bxd7Y29LQ3Nrf3NnS0NLS0NDWVFdQXF9RVVdSXVFXVdfW1dXR3dbRVV5EQ0xPRl5cUVdWVdzHx8fDxNjY39PUVV1FRlpFWF5fX1xU19VVVFxbUVdSVtPQVNHc0t7Dw9jZ3NFXXV9GRkVbWkVTUVNRVFXW2Njcx8Tf28HG2tvF29/f39PbwdLUVVRcWF5bQENYRVvVVVfQ29xU19BQRkFNdUZTU9TS3t3Eyc7FwsvE2MbZ0NZUXkJARkxPWFtBUlVdWV5eR0VcR0JW11xR0NLewc3Nx8fY3d/cVlHQ1VxcVlRX1NNRXddXXtXSV1TT01XU2NNU38Xd3MHfV1ZUVl1WVV5YV1BcVd3c2cPC297Z11lbWkxJQUVf1dfU3MHA3tvDxNLZ2dbVUUVNTkxJT1/UUlHd1FPU1lJdVFFaXNLVXdPd193Bx8TE29NU1FReXFRfRFxWXllR1VNW39dU39JU0dzX1tvH2NnAwNrBx9DV1lRbWlFdQVlRRERX1VbdwdvfxttRXlFFTVxXU1XZ3NbewMfZwsne3MTRXlJTR0lCQU9AXEVHVlVeXdBRW19RWFpRVF9R3NDSzvTOw83B3NDQUFLQ11heVFlDWlJYXtHcV9TXWkZWVlPV39jd2Mba3sbH19HZ11ZUVFlFU1FEXtHU0MLPx8PH3NVSXFpbVNVcX1ZTUdfY28XPwtPX01hGXVxERVxdWFhaRlpXUVlS0ddfXVdcWFJRU1ffxcD39MbEx9nVU1BQXVFcQUNCTEJEUlHX2MTUWFJcXFbX0d7Hx9nZxMbExsHd1t3Z0VJfWUVbXkVF197T0tva3tzdV1xdUVBSUFhFUNPQ0s31zsLD3FBV1F1fU1JFW1tPdExFQkBcU15WVVlGXVFbXNfWVMf3ycPLyMTF29RSVdNdWlJbTEVWWFjU3VZS11xMWFRZWNPZ0dTd1VfEycXayMPT2NhQW1bVW0XVVF/extHU28Lf3drVWFTRW0RTXUZT0NHez/XS1drdUdHSXVhV1UVAQUp3QVhNRdTVX15cRUZTVVhS3tPRxM/a28vM0tLe1V/VVVpbVVdHWVFfX1VUWlvUUVpcVllZ09JRV9PW18fKz831zt3T0lZTVFRdUNzTUFTUVtfGxdLT3FRaXFBYX9ZRRVDQ0tzEx9HXx9vV0NNWVlddQUZfR0pMXlpe1VBFRF1TX1LWVVfe01TW39rHxdnQ19LRXVJXU1JVUVBWVlBZWFJTUNdQWl1VVFdUVFZV3d/TxMnD2sXZ11XR0VFW0NBV19VeXlXT1NDa3tbQ0VNQ0NBQUdbW0dPc0t3F2tPQ0tdQVVVEQ0VHRkVHTENdWU1GWFpGXlNS19nT19bR1dbDwNzHz9vW3trR0tvWXlfYVFpdW01HU11BWl1EWlBQW1LQVFbdx8XEzs/c2MLE3tnH2sXD3NTS0ldR19RQ1ddcRVlSWF1WX1lX0tVW097S3sXTV9Lb1lfQVFxR1FNZVNReWlhaQERcRUNf11FdV15BW1dWU9De3NPe1lbd2NZW0d3R3NjQVlXWVFFWUF5dVV1bV9VRVdbX0NrF0dfc3VfQ2dbU2MXd0NDUUdTfVVfZ3VbU3dZX0NlUU9Le1t3Z1tfexdJX1tdfUFRZRVhEQ0dYWV9WUEFCRUVEWVhYUFdVU1DWUFpW1tTdxNvc3d7d38PbVdDa39HS3NRdXl9HQVtaQ0dYWVLV1FbX3tncxMXe28bE28TGxd7f39HW0NbV0dPT0tFXX1ZXW0VQVlJTVlVV0tPR3d3T1dTQ1VFXVdRWUVJSV1BfX1FWX11WU1NfWFhZW1pYXllERFpcUlFQUNTW093T28Tb2trFwcfb39LUVFNHRVpbXVLV1tTd2Nnc3dPe29jd3NnY0FFUVFDV1FfV3N7d3NjS1tLS1ldUV9fS1lfX3t7X0Njd1dRVX15XV11TUlpbX0ZPQURFWFfUXVHXXUFEXlpYUlJYUtPUUNfUUlTc3d3aw9rfxsfcxc7F1NfRU1tHTXVIRERf1NDV09xUVN7ExcbMw8TAxtdTVFRdVtbWVdzE39Dc3dHc3FZcVFReW1BQUlfR0NPe3tVQUFxS1N3T1tPQVl9FQUFcUlzV3ddWUFlDQUVaRVpbWllcWEdeUF1SVNVUVdLR19zExcTNw8XGxtJQXFxYWF1dXdbS1dXUU1DR3tvY2MfZ0FRfXFdWU9Tc3NLc29vfxMHc2sTT3NjXXFLX0NbR3t/Ywd1XVFJaWVJXX1lRX05KS3VMWlpZU9VRW0RFQVhSXFNVVFBRV1Jd1NzXV93d19bWVlHX2d7axtvbwdtVX1JbQkFfXFlU11JfV1XU0tje3sbB3NPUV9Tf39Df2t7W1tzS0dnZ0tLd1lRQXUFFVNVW0N7fxcHZ0N3c1VDU1lbV1lNbW1lZXFBdXFbVWUNAQE1BXl5eUlFaR15YWFfW1VXQ3dZWVlBQ19PT2cfBwcHG2NDT0VNZXl9YXV9EWFFTX1fWVNTQV15eXVNU3N/f3sfb0N3ExtrHwMHGzMPd0NFX1Nzc0N/F2dzFxN/T01FfXVNdW0VATUFYW1tZWVpZXkRNRFlaWlPXV1XXVlDU0dHS3tzc2NvRUlxSXFJU1dPe3tdX0dFWVNVTW19cWkZYWV1V0FRR1tPW1NVWUNXS3djDzcfa2t7d2tvR1NLY2dne1F1SU1NX0dDS2dzX0MXG297S0NDQ1ldX11RW1NRQWVxfQUBBR1hSXVlcVFRbW11fWVNWUlXQ3NPR0VBf1dDV1N/e0t3S0dHf3FRX0ddVVFBZWllTXF5SXlhfWUBDXlJR1t/F2sLB3tvF29jb2Nzd38Tb397f3d/d1t3F2t3S393Q2d/X0dzXUlJdXF1V1F1dXEVAQEFJSEVTXdfY01TUV15T09NQUNbR0N7Z0VVXVlBW09RV0VVfXlJQUVZRU1fT1lBXUVxdVtVXXV1ZRUVbWFPc39Pay8vAwMbb2MPa1tPRVV9TVV9ZVdBWVN/S19LS19Xf2dbcx9rZ2tjR0d/Y3dLf1lFQXkxJR0ZDRFdUV9BUXkZGQURSXUZGUlBYXdRVUlZUVdDE29fS2dbX29jVV9LS1t7Y0dfc1F5TUVlOTk9xdkFZXtHH2sXMzd/fwMXX3drRVFVQW1lWV1bd2tPfwsHc3MXZ3d7Z1tHF3dTS0FNS1tFXVNZSREdHT0JSU13Wx9rW3dxQWF9HTEFETUxZWUBY1NVdUNVX1dDTVVTQ0VXT01RU0t3W3Mba0t/cVlZWWk9CRkNAX9fR3s3OwsDF0tPS1VxdVF1GQERCRlNX19/a2NnGwdvYwsDb28bBx8PG29jE39HS3NVRVVNbR0VaQEReXlLW115FR01KdXV2dkpIdU1bWFDT3t/f28Tf39re3cXE3d3Z2d/bx9jZxN9UVdZTW0ZPdHZ1Tk9HVdLdwcLY3dzdVFfVUVxWUVtfVVdX0sXExcfDxMXCwsfBwNnZx8Tf3NvSUdTWU1fS1VBWUV9FWV5FWNXUVdDXXEZDTHdzd3ZwdU9LQ1JSXNXc0FXS3FXU2N/cxMDb2sPD39jDxNPd3FTV0VFaW19DS0ZFQV/c29nExtzQ0FFHWVFZR15SWV3X09HFz8HFzcPFx8rMx8zLwsHIwdPbxVVQ1tDV19zWUFVVWUZYWkZbV1BfU1NBSU93cnZ1cXFPQUNZVFdR0NzW0NjY39jF2dvMysnDw8Xd2cXS1dHWVlFWXkdGQ0tLR15R0t3W1tzf1lFcWEZaXF9S1NbX097Ex8n1wsHPyMnKyMHDzszGxdjS1VdWUNXR0tLW11dRVlNYRFteX11dXFFRXkBPSXR1d3Z1SExEX11cUNVWU1dUVdDd3d/Ew8jOx9rc09PW1tbS09bUVlNQU1lEW1pFVtTV0Nnf0NVVUlleRUBFX1FX0N/c2MDNwcHOzMLOyczO98jHx8XQ0N3RVdfT1tHb3tbR39RfUl1aRkZBQkVfQUlDQXV0T0p2dUlOQ1xcWlDUXlhU0NfQ2NvEyPXMwM/N3NjE3NPc39XV3dRSUFREQllbQlhWUlbf2VdT1V1GRFlFWtXVVtLE2dPaz9rFyvXJ9/HKzvbO3NzY1F9R1VBV3NHX2MXQVNHVWkRYQU5GW0BBX0RITUZLd0NHSkJZWkVSUEZGXlhGU9dRVNjH3sXIz8fBzMTawtrW3dnVV9vG3dPdV0VaWkJaV1BT1t7Q1dVWW1pZQUdSVlxX2dzX09vY3MbBx870y8/IzN7Zxt/X0tNTU9bW0dvG2N/e0V1bRE9LQEZMQkRDSElJdHVAQHVPWkdGXl5HRFlaWlbQ19PGxtnBy87Mzs7CzvXB3dLTVVTd3dHW119HWlpCR1BdW1HWVlJXXUdZUl5bVlRSVN/Q1t3e2tjBzMn19/XPzMzE2tvd1dXVUl9dUVbQ0tfW0FRZW0RBQFpYWkRZWk1MTUNDRFlFRlteX1lZQEZEQ0NFXF1W09jZxcbDzcHGwcHa0tDWVFXR2d/f2d/UUF1QUFHV1dDR1tVVVlJQVl1ZWFxZWlHUVVfQ3N/f3NvHzMHBws7AxMPMxN7S1lNeXV1R1tLQ3N3XUFxGTUdEQ01FRE1MQEBARkBDTU1PSUBEQU9BXkRaUddX1tvZ2cbMwszPzMLMwtrT0NRTVtLe0dHc01BQV9VX1VfV11VSUlVdWVBVXV5WV15cVNdU1NjFxMbNwMj0z8PKzN3fxttV0d7WXVBRXFxUVFRXU1tHXlpDRFJbQFhSRkBZXFtYUV9GQ0JMQUBMTkdZR1pU11fTxcDYwc3DxsTH2dve11XUVlPV29/S2dtVU1TWVVTQ0NHU0NTQ01RQVVZbW1fVXVHS0tfd29jf2djExsfDws7Y3cXB2dLe2tZcVtRUU1FQUVxYR1pEQ0xEW0FaUlFeUFVVX1leREh0dXVKdUhGWVpaUtPW1N7AxdjGwMbFxsHCxNnT0tBU1dzb3tnHxdfV1tdcU9TR1dXU1NPR11TVXlpcVlJdUNbRV9Df3NPex83AwszJwNzSxcDf28bE09VXV1xbWkVBSUpPQ0lOTUdFXlPVVl3X01RfXF9YTU9NQ09MQVlbQV/W09Tc2sHe3djF39/YxcXS0t7cV1fTxNvc2sXR1dVV1FTT2MXb2drA2NbW1lJFXVdWXFHU1VJQVNTU1dTQ2Nnf2MTe0d/D29zfxdrS19HQV1JSUlpMTEZNdU5fVFFU3sXXVdbVWkNGRUJ1dUBCdHVPREFbV9bV0NjF2NDdxsbbxMPMxtvFwNjR38TF09De29RSUNRVUdXH2dDYwN5SU9VVRERTVVxeVtZUUNDExdPSx8LS1sXB3N7Bw9jYwcLa09PS0VNbWURIdEtLd3NLW1tZVdjb3tJVV1FeW1pYTUlDQHV3TVtbWVXW0NPZ3N3f3Nza3tHT2sfT1t7H0tLc3tTR1NzTVlbT293QwvTA2cTBVlhR0FNAWdVRREZf1FNc0cfc1NLH1lpW2tvV2M/G3cXPwd3awcfSUVJTXkxJQk9KSkZcXdTbwNtVU1lfRUJOQUJ3cXV0cnBGWUBG1d7VU9Ha3t3B9cjY387J0NbDyN7R28bW1djF1VLX3dFW0drF3t/XVF9bXl9eWV9eWkFBR1zX3N/bzMDc19/e1tPIy8fb9fXb0cfO39TS31NBR1NAcXdDQnd1WFBbU9zSWkJeUUZCUldHSEhOSHRMW1tbUNTVV1TU193EwsTHwsfd0NvH3trC2VfV2t5XUdLSVlbazcTew87cUNHb1FlQ0FdaWFNHdExTUVhT3d5TX1TT1NbByMLazfTN2dja2sTa3N3f01VQU19GRllcWURc1lZZWFJZQE9ERnV0QnR4f0tOdkpSUEFEVNdSXdjOx9/P8PXHxM/N3d7Mw9PRxNhVVdLQVVXU1tbT0NVUXVxX1NfU11FcXVtHW1JQWV/W0NfTxN/X2MvJw8vw9czK9czb38HFUV/U0VtORF5AS17XX0JeV1lJRlJdWV5SXFlERkZPSkNaREBEX15bXlJdUdHf3NjZ39jF3lRV2trX0drfVVfQ01Bd08bb1tLDxtVV2tvR08ba1FDT01lHXFBSWVtfWkFCRFhFXNLGx8bI9PT09c7CwsLHx8fb09Lc1V1W0dVTVtDXXkVfWEFDWF1AS09Bd3xzSnV0T1tEQVteX15fV9zbxMLJysrKysvMyMvPwMHY3NHQ1V1X1VBS1VVTXllaREVQ19fX1dLRUllRV1BS1dVSX1ZRWFhR1tLDyPXK9fTLyMjLycDY2NzTVlJcQUJEUl5eVNFQX11QXF9QUF9eXVxcR0NDRlpeU1BcW1lHQkNZUlbU0t/c2dzS09LR3NrGxMXE2dFVVVXQ11XU393X0N7SV9HY2tLYw8TWVlZSXl9WUllEWkdMdEpCT0BT3NvGzsvDw8/LysrLzMDH29HX1tVWVNfW09DRV1FdXVLVUkVaXkRIS3V2cHdLTk9EW1pGTE1EWVnQ2MXFzcjAxcz0zsn09/XLzcbS1NZV1FdTXVFcWkVeXl9SV1dV3dzS1dVcXVFUXVNUUFpGWkZBWFdV38HK9PTKxsPOy83IyMHd01FFRF5ETUdbWV9WUF1fVldRVF1fUVReR0BDTkJBQENYVl5aRVpGRV9TXdfd2d3R1NXYxdvbw8LAxsHY0tjY09fQ0dbU1FBX0N/e2drZ2sDD3tbU1FBQUl9fWUFKd3Zxd05DR1Lc28TGwMPMyMjK9Pb1w8XdVFdUUF5dVdfR0dbU1FZTV1FZRFxeQEpJdXZzcHF3dUtOQkBHX1NWVNPa297bxcfAzsrJysr1zsjB29ra09TR0NVQUV1YWF1SV1BU0d/f19Hc3VFV3dNU1NRSQE1GQkBDW1LX0N7HzcfAyMjCzcrJx97fVl1YRU9CW0RaXVRdUtXWUFfU0NfUVVNdXltBQEh1SkJLd09YRE9bXVxaUVVVVtHZxMbax83M28TDw9nYxdjR2MHb0tbRV1VU1VTc2NjawsbS0t3XXVBQX0ZBT0lOSndIQE1GU9PR38L0yMv28fXI9crP2Njd0FBZWVFYRFJXUlhQUV9bUlJZWltGQENCQ0h1d3dxdHRIQ1tbU1RX1tPT0MTGwMP0y8LO9cvDzcLD2d3e2dbR1tRQX19eXF5Q1t7T2MDC38XA2tLX11BYRFlaQU1GRkFGXlHV0dvIysrL9MzF29rS0dVXXFheR0dHWEVeU1ZR1dHf3dHT0NFUV1JTWkdGTXdxdHV0d05CQExFWVtEXNTR0dzAw8bEycvMxs/OwcTMy8Db2cfZ3NHW11VU0dLc3tjGxNnQ39zWXVtATUp1T09LdUNEWkdS0dzZz/Dy8fbx9M3Hw8HcVlTRVlhcUVNZWVdQXlpTV1NaWFNdWkRaRUFJTEt3cXRLTE9MRF5YR19WVl1V2MfawvX1zcL19MzEw83B38XG2dTU39NTX1TXUFLd2tzR28bY0t/F3lZYXllASE1AQ0xBRVtZUtbS2cfI9/TJw8zA3dTT0ldSUVRQXlfR11XU0tBVVNzf0VZV1FJEXlFbTExBT3FxS0txcUlATEpPRkZBWFTQ3NjDycjOzsnPzczLz8/OzsLF2Nva3VTU0tJU1dvG2NPY2tNQVNFRREBaRU51SU91dENYRERR39/ezPHwysr3yMXS29rc0NPf09dU09/WVNXR1FFXV1NfXlJcWEZFRE5ISEl1cXdLSHd0RFlET1tTX15Xxs3Nz/fxzs3IycHbw83Bxdva0NfQ09RdUFdQXVPR39zQ0t7Q11XR01BcXFNYQUJBRUNNR1lTUlTc29vB9cvCxdjY1tHS1tRU11RQUlTd0dbQ3tvR0N3f11ZVV1FfXVNZRUJJT0lKdHR2dUt0dHRIT0hAXtfd28PPysPBw8zLwsPI98vBzMLC2t7Y3NzX1dHQ3d3f0NHSV1JQVVdYWFJXWExDQ0NKdU9CRkRQ0sXGwMrLysvDx9vB293f28fRVNXX1lBR1NDRUVZXVF1aWFlbQUNHRVpPT01DQElOTk9NTk1DRUVGW1PT3d3FyffPwM/Iz9rHwsPY0tjZ2dDR09fRVFJSUdZU1NHc3tXV1NzSVdDf2tBQUFNdQU1GW1hEX1TS3dDbxMTe0dPS3dTV093c1VZdXVdSUdXZ2dfQ2drRUNXUVltFX1xcRFteW0FLSEp1cXF0dU9OSUJAWltS1tnCwcDP9fTK9fT29MPDzcnB2cfG29RV0t3RV9bQ09dRUF1SXFtcUFRQW1pFW05JQ0ZFQVpQ09zdwMv1zcfBw8Lb2MbAwdLT0dRWWVHV1VZW19TVVl1eRVpGQ0BEW0ZGWFxbTUJDQE93SkNaQk9FWVxYUN/GwMDLysrL9ff1yszExdnb3tPQ09/UVdfT3VdTVdzQUNXT0FBT0NDWUVNWUlxaWFhYRUBaXVfW0NLYx8TZ3N7F3NLYxMfT19bXVlhT0dLUVNPe39fV11RdWlhfWVleU19eXV9bQEBNd3Z1TEp0SEZZRERR397W3cL1ysrw8vbKycvCxd7Y297Z3tnZxcXT1VXd31dTUNRQW15RVFlGWF5BS0NZWkNDX1BTUNfc3sTF29rGzcDAwMPMxtre3tJTVtTXUV5TVVRYRV1QXEBDWVlZRVlfWFpaXkVBTE5OSkhMQkFYU15ZVtvA3d/N9MrO9PD3z8HAxtzV1d/T11XT397c0dVV1tRXVtfT11BU0dJUXV1dWk9CWl5aRFLU1V1cVdHWVdbZxcbBwMfExsXf0dPXUl5RVVdQ1dbVXlhT1VdbWVZWUllfUFJeWFtGRk50dHRKdUtNW1pBWlzW39LfxM7Px8z28/TOyvfO2NzF2NPX3NvY39Ld09ZUVNXX0FVSU1fUUFhaXFlKdUdfREBfVFRcUtHe3dDdxMHGxcfCzMbaxdne111eU1dTUlBQV15ARl5eQVhV0FdfUNRVWUdaWkZOSk1GQklDQ0JDQUFEU1RU1tjCwMTDyPfJzM/Lztjf2sPF093Z2N3X0t/d19Hex9rS3d3R1VFSXFxeQ0lCW0ZDWl5XX1tX0tNWUNDa39LGzs/DwcLG2tzVUVTVVlBW1VReRFtfXFldVtZUXFJWVlhAR1tHSXRITU50S0BGQEJBWVFQV9LbxsDNy8r0y8nOycnG2sTNwd3T2djT1NTS2N3R39vb1FdUVVNbWF1SREFFRFpEQVpcU15fUNXRVdTQ2MXZxcLPw9nZ29rQVNfR11JSUVRRW1hZXV1ZUFXR1VNU1FVTX1lFQUlLSE5NTk9ARURPTUVcWF7V2MLCwMn09czNzMPE3NvGxtrY29jY3NDR39jQ1t/FxdPV1NZWWEVYXFpARlldWVhSVFdYW1JQUF5dVdDT0t7Hwdrf2dvb39LT0NdTXFLV1VJdV9RXUlXd3dRW1NVUUl5eRUBIS0xMSUpOQEVaQERbX15bXdDF2tjA9fTPzMjLwtvFwcHa39rE2t7f29nf1lXW093UV1TVV1hHWl5FQkdcV11c19FUX19SU1JYXFXd0tbex8Pa3N7Z2dPU1tDXXV9TVFFfUlfW11fU3NvQV9bQ1FlFWVhBTk1GRUdCQUdAQ0NGRV5bRF7V3NHR3sDPxsfNyM/Ex8PMxtvGzcLExMDG29PR0N3c0dbc3NZdWkRbRUBDW1BTXFDUVFlEWV9ET0dSVFFS1tnY3dLZ2Nje3d3d3NFV1NDT0dfW0tZWVNPSVVNX09VYQVhZWkFHWFlbRkdHRkFBWlleXl5TV9XX1NzEwsPDz/XKwMbCy8za28HG3t7E291VVdbXVVFX0NdRXFxfXl5YXFFX1V1TVNVRXVBWVlhbXVBcW1HT3NBV0d3QV1fR09HV19PS3dbV19TR19fR0NZW1NHWU1pcUlBZXlZXUkRER0FDQ0ZER0ZGRUVbXlzV3NvFx8PDwMXHy/TIws7IyMLbwcPF3NLZ09bVV9ZVUF1cXFxfWF5RVlxZXF9dX1pdV1BZRFldXF5R3Nvc0N7Y0tfU0tjf0dDZ3NBUVtTU1VZXV1JTWV1WUVNYX1NQXFxU1lFFRFleW0daX15FQkVZWVlS1t/F29rBxsTe2cfPzMXFwMbY0tnF29/U0N3WVVfU1VRTUdVUVFbV1tFVUlHUVVNeXVJcQE1GREVGWNXXVFNR0dfV193Hxd3d3t/TVFTR0tPT0dDRVVxdUFNRU1BUVFFQV9RVX0ReXkRPQ0dASXVJQ0RaX1Xc2tnZx8HAxMDOy8vNws3NwN7bwcfZ09/Z0FFS1dVTX1JQXV1bX1JQV11U1VdTXl5aREFCR15TU1PU3dBXV9Lc09PYxMTF3d/f0NVX0dHX1FXVUFlHRV9ZXl1RVNDXVtfQ09VXV1VRRUFGQE1OTkZYRVpR1tbX19/Z29vZx8bHxcXHx8XZ28HGwdvZ2t7QVNXR1FRX19DQV1fT09ZV1NRWXkRHTUNMSUFaW1heU1ZXUVBV0t7f2MPD2t7Z2sTd0Nnf3d3R19RRWVlcXFxYUlZRUVJU1tfQVFZWXEdOT0lJSE9BRVtHXFRV0dTZxcbAxc3PzMHHw8DDwMHE2NvS09PWVVJR1VRWUFZUVFZS1dDR1NfTVV1FWkVGRkBbXFNSUlVU1dXX3N7f0tnE29jQ0dDW19TW09BUUVdWXVlfXFxSU1HU1NbU097Z2dbS1lBZR1pEQUJPQEFBTUdeXlhZVd/e3tzb29vY3cTBxsfHwsbG2d7Z09FV1tbV1ldV3dbQ3NDd2NbX0lZTRkNBTU1ITkJBRkNZU1JQVNDZ2tnawMTa3tnb2N7R3NnT1lTX1ldTXFNSUV1dV1TUVlfWVVVRVVxcXEdETUFDSUZGQ0BHX11SUdPe3NvFxMPHxcfDzczG28Xf2dHQVdVVXlxWU1RSUdfWVdXf093S1tLVVlJcXV5EQ0ZERVhYUFBSVlbU097f0tnZ29LW3tPR1Nbc19VR1dVXVlxUVVVXVN/T39Ld2dPR1NVUUFNYW15aQUxMS0lITkRHRFlfVNDd09/b2NjYwcPBwM3OwMbF39jc3dFW0VXX1dHc0t/Q09/T0FfUVl9bR0RATkhIQklCQVhSUlRX0d7Y29zHxsbH28HH3NDQ3t/Q1NXSUVJdUdVcVlbV0FXW1dZV1VVdUV9fXlhdWF5AR0RBR0ZdV1dWUdbd3dPexsXa39nG2Mfa2sTf3tfR1FBRU9VXV9HX3N/Z0tLZ3tPU19FUVV1SXERBT0ZCQltFUFJWVFTT0NDT0Nzf0tHS3NDRVd3Q1NRX1NFUVFfcUNDE0sFX3t3R2NVXX1BcXFlGWVlEQkhCQk5NR11bX19V1NbQ18bawMXexMDMwMfMwcTY3NnQ11HV0NHc09/c3tzS293UUlxEUVNZW0FASXVISEBGRV1WVtXR3d/f097AxcTF2MXa2dPexdnQVNTVV1ZS19dVVFfW1ldWV9RWXFpFXkdbWlhcW0dNQURcXlnW0NbV1N7c09DZxd7f3dvE2t7Z2NzT11TXVlBQU9bX09bT393e097Z09ZWVldRU1BWXFhHQ0VERFtdVFdUVlfXVVVRVdfV11TR09PT19ze0NTU0NdUVdPY3NLS2MbY09Dc0FZQX1JcXFhbWUBDS0hBT0xBWVBcWVlQ1VdX1NnZ3dnYwMDBwMLNxdje2t7X0tDd2N7f0t/Z3tPW3NZTWUVeWkdERUVATUxGRkZeXVFWUVdX1tDS0d3b39jc28HEx8XAwMTZ1tPVUVdW1tdWUFbVVlJSUVZcXlheUlxZW1hYWkRbXVJQUFbXVFZRV9DW1tLZ293c3Nja39/e2N/Q11XXVldXVNDX1tHQ0tDT0d/Z0NZU0dZWUFDVU11fX1NYWVhbX1pZXl1SXl1eUFFR1NXS3tzc2MHH2N3c3tDW09rE2NvY2dLX0NTT0VRXU1FbREZCQU5MTk1GQ0NAWlhfXF1VUVTV0d/e2djHwcHNwczOwcLHwcHY39zf0tDWVNBVV1dSV1NdWFtbQUZDRVpFW1tdWVpaWl1YXFBX0dHS0tzb3tjexMDFxsXBx9re09JUVlBT1VFSU1BRU1BSVFFSUVlSXVhZRV9fXlhcVl9fXVBXUFRV1NRU0dTR3dHR0NDX1tbW09TX19HS0NLQ3N/d0NfQ09Dd3NjY3t3S01RUUFBRXVJeXlpHQUxAQkxCQlteXl5dVFRUV9fc3d7ZxcDGxsbAwcfGx8bE2tjd2NzQ0NDQVVdfXVJFQUJNTklOdUt1S0hNRURZWVxXV9XX3djZ2trGzMLAwczDwMHax8TE29PT11VWUVVUVlPV1VFTXlJSWEdBWFhbREZFREdGRV9eXFHR0tLc0tra29vZxMfb2dnFxdjc393R1lZQU1JQU1ZUVlZX1VZSU1BWUFNZWFBSWVpeXFhYWllZXVRX1NDW19fT19PX19zQ09bQ0d7V1NDT09fW0N3Q0NDY397awMTEw9jZ39xRXlNdXkREWkZCTE9CTEBHW1JQUVPVVdfU19/T3t7Yw8HHxcXHxtrYxcbb2d/d1tzZw8nFUN1fWVROQE1MQU53TkxbSHVMQUFSX17WUtNU2NxTxsDG2sbf3N3SwtDQ2sLc3NDf39dWVthW0N1T1d5XWVVQW0dDX9RFQF1YQlhAVd5RVsHBxcHazczc3sfazdvBzczZxtvSxdRRxNJRVFhWXlxf39ZSw9RXUVPRWl9eX0pWWnBccVt0RtZQVVxRXtzWVt1b1dhUVFHZV9VRVFVVVdjR1trfV9rFU9jHy9nE9crfxfTeVdXS19VcXUlBQ3REckJbXndBVkNHUtR308BF0cPbwApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfZzcxMW11bGF3XzFjaF84a2h6LmluZm8gYi9tZWRpYS9yZXMvYmJiX2c3MTFtdWxhd18xY2hfOGtoei5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjUxNjJhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2c3MTFtdWxhd18xY2hfOGtoei5pbmZvCkBAIC0wLDAgKzEsMTAgQEAKKzgxOTIgMzIgMAorODE5MiAzMiAxMDI0MDAwCis4MTkyIDMyIDIwNDgwMDAKKzgxOTIgMzIgMzA3MjAwMAorODE5MiAzMiA0MDk2MDAwCis4MTkyIDMyIDUxMjAwMDAKKzgxOTIgMzIgNjE0NDAwMAorODE5MiAzMiA3MTY4MDAwCis4MTkyIDMyIDgxOTIwMDAKKzU0NjIgMzIgOTIxNjAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9nNzExbXVsYXdfMWNoXzhraHoucmF3IGIvbWVkaWEvcmVzL2JiYl9nNzExbXVsYXdfMWNoXzhraHoucmF3Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYzOGYxY2EKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2c3MTFtdWxhd18xY2hfOGtoei5yYXcKQEAgLTAsMCArMSBAQAorP0NLXuXm6v1cWGBaVGry/l1YW1BTXFtrb+Pc5dna2tzqXVRaYHB81c/l6OT4e+fPxMTH0f5eTUZT69DFwcDJ42lVS0tm2s3IyMjN5GxeXlxRTWh2XevZ19V0WE9CRVZ9zMXM0O5IQDw9SljPwMPKy+FbS0VRWk1ZaWnsbWrp5fve3unjavX3T01RS1dw6c/N0cnPfWVNVWRSXuDb3fRr7Gtb4MrCvsrcXD85Oj9Zz8C5vMvlWUZBRV/PzMrEzOphTVFPRlbhzcfLycDOaFdOT1tg2tHb0NpvV0tJW2zvzsjHzeDjd01SfeJ8XlZdVkhMV/PZ49jM6l9gY1xUTVhaT1VLSlNVXv1gV3Du7mRX7t9dXV9XWWjgzsvNztrqVUFJ6s7HwL/F02hNRkruzMC8vsDDz2tPTE9SXNnLzMC8v8bqVU5KSkpP5tLqdF9MSk5e59/Y1/diV0hDTWLdzdHc52xTRkRh1s3Lz+9jSkFFRkxo38zNd2NdVFJSTFdt6uRsZun4XVZJUPTYzsfL1nBRUUhDVtbFvcXP2mZMQj9M7sy8u76/wtP+VlVgZunY1t/d5tjX7mnl4XNRTnDy7t7efe5yefx0/t3d3f9YZGd42c/fb1dcVEdLfszEy+T7XUg/QkdQWeHO3XFjYFhPR0lMT1BOSktKUl9MSlLy2+f+2Nn0X1FLS0tky8G8urq8yWBTXu7FvLi1uL7F/E9SW9rM29bS8Ofp4tdyW25XSktOauZiVVxZaXpfbGpVWFRJUmffyM/X0XFTUkhNVF7NwcjL2G1aPzk/TOrJys7fV0pDP0hh99XVcV5VTVFPR0tIU+vt48vMy9xPTVFh0szNxtHqfVRRXfnMwsC+xsrJz+lsdebY2eDj19PV6vTf3t7hZk9LSlVm6tTQysHL5Wxo7XtfWFNe8mpl7t3dek9GP0Vf7dDN4V5MQTw4PlX46e5fWF5RTEdNWmV13tPSz9VzWFBNYt/MyczRzuD+81t11tje5NnI0fNvT0dMVt/FxcPJ1m5MSWfczsrP82VnbH3kyL2+y9toW1RMUnrlzsa/vMfS1XVOSUdd39XP5lxVR0BAPUZZ+PB5bPtSQj8+Pj9JYt/h7W5xTERCU+fZ0c7cY1pQVFRq0svb3eHSy9LMzNf7Zmfl/t7JxcjcZGBmXff44+Do7+5xfvHvbltbYG5tb35sYnTpz87f3N9mU0pdzcW+u77Dy9fO0dfMy8rM0MnCyM7pUEA9RmjdzsTC1ks7Njk8P0tVT0xDPTo2OkNJV3r99mRSST48QU1w4tnR0tldTE1WZu/i3PpZWlxt4+PZy87W5e7peVhSSk191M3OzsvNdVxcctjIvrzD4GJVUFP8zb29xMfMzMfK2eH+1szJwLy+w87g2OLo5udyalZw4e7uaFdTTkdGRE5eW1VPQz5ASFdsfmJOQT88PUddYVNKTG3n3N/9endUY/rs393ebFBe5Pfo2NfT0NXZaGH21crN2tvP4F5Ybvp6587JyMbNZUlFRmbNv7q5ur7S3ONj88zFwMbIxNl0cnPf2HV05d7o5uDtS0BGTFJXZ1dPR0JAQ0VSZGRZTFJbSkBMTlVVXHRcUWVxYlpJTF/g6ebj3GRSWW7Uxb7I32t3ce3s4dzf4Orcz87h3PBTRUhd693LxMXI3l9SVlRcaObl3MzIzM3M1/Dbx8PAvbzC021cbd7Z6eng6HPq5nZdZ1lNTExPT1JRSUNHTFBVTk5bU0I4Nz9FT3TY0NTuZVtdbOfXzdbw2t91aGVj+NrNy9/z6V1MREFObG3pzs3VZk9TRkFSaX3i7NrHycvOevrl5sS9vLa4wc7h3MrNy8HMz9P549/77NXd7llOZmtdcF5ZY1NWY1VPUEM/Pj5SYlluXk5PTlpuVUpNSlBcXdnO4HZjXmr42M/U2+RpYVhLXevYz9Xl9GRb9/licO58+3vl2NZ1T0tXV1/Y09DLyMXJ62JWVV173M3MzdPc1+PfzdLm0M3Q29/4e/rv1c/KztzyaE9NVmztfvfpaVxwV1FfeXrd8WlkW2NQSEhGRmrWzc/k8XRNSVhX9tHd4N5XR0pMSk1NUVRc8X5TRD9AS1/Tyd3/+1dfWURKdH7i1eTo4tDDv8fO4ujVzcfHz8/JzsbEy8jH3d/W9l9v58/N2tbc0NX37eFe+d3p2GlJT1RIUFJLSlxs6PBeXF1hVVJSUD9JWVdaXFLn6kxfV0pVamzQ2HNXT1BNWd/S0cXTdExAQVVr3crS5ufc3dDsWVjzfH7WztXl9mRrXFZh1dXY3mddbvDVyM3NysfT3N1qWuff4dHW0sfI2WxPT1vexb29y2RUUk1fdmbez+nq7FFKTVFcYFlVUltgWmBTSFRdUmtqYNr4UFVIP01jfPRoYF9j7nhs32pbeGRZaFVRYl5g+F9U6t3Xz95iaXDe0NDO+Gbp/OfGycK9yNPdbeTLzMfQ92Jr6NHLxMfU1P9NSE1OZ+nZz8zZ593t5H1bVWTqzczYYlBYVlj67HjX33RcTUpWXV1UT1hbX1FIRT84Oj0/SE1PU1FHRUVHTHHQy83dXU9PUPrX29/KyM7Q1dPKyMW+w8vPysnO1tPNx8DDvr3Fx8jd8Obm1s3Mzc7iYFRYVk9PU11u7NvUcUtLVFp27O3Yz9n2c1lVbdvgYVVNS01OTlZNTVNOS05NUlVIREZLREBJTklIRj4+RElQU0tV8NDIydjo5+XUzM3Ty8HCyMnJx8C+vr/Bx8TAw8rP0M3LycbCx8/R5V9TUk1NVFdlZlJJSVBRUV1m7tvOzd5SRElNUFlke9/a3+drUFVfZWFm9XNmY15YUlFb7N/o6WlVTENCRUE9QEhJRkE+Ozs+QElLTFZt/3NmXF/308bBxMW/uru6uLi2trW1tLe5ubvAx8vLyMfJzt1bS0tWXeze7/j7cGRSR0hMUFVbXvvh2NjjdFNVeuz+7XdnfPLs2+1iXlVRT09MTEpKSUdGRk5tbWZnUktKSEpSSERGQkJBPj9BREtSVVZgcuHu7Oxs997Vz8zV08nLzszMxMK/u7i5vL3CwMC/vb67ury+zOn85+bh2dzV19HP7lpTVm7f1dfP09/ffHhfVV1tX1pcUk5NTEtFQUNES0xIRD46OT5CR0pMTkpEQT49QVBfcndnavfv/mpiZXvUzM3Y5OTe5uDU09bU1dvd6vXu2dzY0tLS0crJzdje3dnSysfHxsG/vsLQz8nFys3Nzc3IwcPL1dPLyszL09Xb3uB9U0VAPj5ARUM/Pj9APjk6PkFCPz47Oz1DUl5XYHJ7+m1VTkxTa/rtcG72eHVrV1Zf7s/L2OTb0s7MycvP0M7EwMfQ5u73c/T76tfNy9B7WmVo3crIxcrPztrzZWTp2dXNyc3R1dLQ2dfWzsTDwMbQ1Nzc4mxaTUtOT1FVS0hSTlZVTFBLREE9PDg2OTw/RUNGSUVFRkNGSVn77OBjWmZXaO1mbPLkzcvT1trV2NnS63Tc0MnGztTU1tDKyMvQzM/Oy9ba0tfOw8TEwsC+xdVmTm7h1sXM3d31euR79tLMx8bHydvc52lqV0xSV1ZfW0k/PUJLWlRHSEI8Pjw8QEVPT01JQURKR0lKQUVQUmRiU1NMTExOUlR41czIzel66t7RzMzQ3tbV2NLr5tXOwb7H0dfb3NvZ3NbJxsfBzt7Qzs7T2tzd19zh2d7n083Ny9PYzszFwMfXbXd+afZyVldUT1paUFFZZFhJPzo8PDs/PDc4Oj1DR0lJSkxGR0pGV+Pi3ep39vd0+PxeXHbe0c7ZbF1bVm7n3N7f2up4a2T808rEx9LPy8vGytDLysbFwcDIysrO19/l4dLOys3Z4GBo9trQ29DOz8rT92hx6Oz1bF1KSEVETkpKT1NlW0tJR0hJSUhJSk1PUFxQTFVbb2xeVkxYXFRXWVVOS05dWVVZXXz3XlFMXezm1dn5aXDs0cvQ2tvS1ODd2c7GycrM0tDSzMC8vsnHyMvMztPOvr68u73AzMrJy83d2trg5VlIRlJRUlpLRTw8PUBJPz9HTFdKT09bZk9MQUJGTFtp5ltVV0lSTVBYbN3o7GFQR0he+djvavxYZlhOUlZ0ddzfYFdTaG7k39zNz8nJzMfNxsfHxcvKzMrGwMTIxcvIys/K08/Ozs3icmzbx8PEydB9UVBSbWRie21dQjo3PEtSYGBWVk5MSUxQTlJWY1pMS01yZVteUVZPT1JjcF/x49rlX1dP+N3a32hpUUxJTWRcZ27v42hWTvrb3NPm3nxdffLOz9bPz83e4evRx8fDy8nJ19ndysXHxsjEzNrp2cXAvsfM1Hr5eO3p+fJw8GpORUBFSE1JTFtRT0xYYldSTFZaTEVBRk5aT0tOR0dKUmd34fttalRRTmzWzc93Y1VJSVF+8fVmYvhbVE5a39vU2+Dd6+ji0c3Kx8vJzMzQ2MnHwsLIyM3LzMXCysrOztbkbmLVz9HP6vhiaWlw2eLl5XVZU0xASVVf4XRaUU5PVe/9ZWRUS0hIQUtjWl9WRkA/QUJUYV1qW1RVWE9b3tnU2HRdXWBTXWJVb+zu8f1VTVle28fKzdThdOjX5drT19PR3XPUysa/xs/OysvGv8bFxM7X29jjz8nRzN1YUFBPWd3Z2tPzZV9WSElZV+/iYWBYTEZQWlX+9WtubldMUk5YZU5MS0lGRkpHT2FcWlZOR1pw9tlzY1hPS0pgW19iU1FOTkdQbeLIytPZ19LSw8LFxM3S3t/978/LxcjFv7++xL+/xsPHyM7U5nHf2M7Q6GhUU01Ucnnm9X1fUElBTV/i1dvjZ19TVGNiX2BdXVdXTlBicv1hX1ZUTERHSEhITE5VVkxNZfXl9WRUSEZGT11WVWZqX1tbW+HMx8HH0eHgffjWzs/P0+DzYE9h3drOxL/FxcnLxcnLx8DCx8bU2s7Q0uhfSUpOTGDydGbt3OfmXFjp8PD+6GBSW1Fjffzr4tlfV1BIU1Rle/lgSUxDQ0hJTU1kYVtSRk1c/uLg5lpfWFpoVk9MV11PTUZOW2Dp49Pl4dndzs7OzM3L1+JuZOzoz8/LzM7KzsbDw8bDv8HK1OXc4NfebVdES0pRWmzv59nT2f1s8tPKzNfP72VPT1plb1t1Z09EQkFHVGlhdFhNTExOUGhWZfT6Wk9LTWD4XGJoVVlZblxxW2DucFdNU1ds1tvm5WVfX+/xzMTOzd37X1504MfEzMvbcWPd0c7FzMPDzNzj19PGwc3Te1RMUV1X393b3nhcVv7s18fO2OtSSEhdb+Ha3d9uVExbXmzj5/9eS0dJV1pj8fZ7Vkc+P0FNePRsV0pFSFzw4t3f7FxKQEpb9tLV1OpSRENW5M3DxMTS8mBx8ObIv7/I1/po59LIvr67u8LS59/by8jM12lNRUpYZ+Ha3uRbUFBf+trIyNV3U0xLWevZ2l9PRkNBQ05k1s7pWUg/PUJVZ+n692xPRj5IWenP3W5WUlVS69DFxtDa5+plbubZztltVk5MSF/a1dbd3+zy9+jXzsfG1mpYYmJs2NDKzdXS0tnr3cnIy+1UT05RVtzKy9Tn5O987ubQ08/UY1RPV1zq1tzsXF5fW1xZ59fd7k5KRURGTWFlYFxZUkpITlxeVWJTS0dLXHnq5ehxYGBu+PPn6fLuXlFNT1zrz9Lgdmt0bnPZyMTGx83hY1/k1MnKycrU29jVz8nFyNDd+V9OU1fp093h7Nza3djPzNbm3+ZhTVZZZ2pNT05QUVBhZPXjb2BVTUZNUVTvZFNNS1FMV2bq12ZaY1hLS19y19r6+WFt7s/K0svW6mhPS0tZWXvhY1hSXm7+2dTFyuDvbWJg8N7WzdTf+Pjl1MzOy8vW3/HwfOje1cnN4WJu4tbQzcfH0utrbFth7tzS4mhPSUxY69bKy9dnR0FBRlRXYl1OQj1ET2D08fFmT0tOWlNfcPLwXk9HTWju19nh3OZpW2Ng9uludl9WS0/628rFxcfR6/jb1NDGxcPK3mpe7drIwsjL0OFsYGVk6eDg62JQSlX30MnNz9t+X138/d/d8flVSkhNZufR1d34XllSW2Rrc1pWTUVBQ05k431lZWBrbeng6OTu6WdPTlBn7NLLzNDh/2ZkbfbkeGVUSERDTf3OyszV7GdbXfXf297X4VtOTmTy1cvLy9LXzc/NysjKztTe5Ojh1MvO5H7+ZWf33c3N2u71WkxNUWvf19nZ6FlXX1VcYmFTTUQ7PD9DVP5iWF1UT1ZTb97rfXlpT01ZX/TX3/fwW09t7uDSy9T2aU9QWVb60dDe4N3czczMxcPN29n5XXF28NPP29nU4drP0s3M0N/0ZldhXVnu2PpcWVRafujUyc3td2JNSEtV8Njk3Njpb/X1bvv8WlNIPz9BQkNWXFJZXWzk2tLLy9fc3uLk9f774OpjZWBaaOXh7OttXFBNTU9PTV73eGdkbuXn7tzOz9/+cF9WUlZ81tfcz8zOzcvFxcrP1tTP09nf4Nnfbl9peu3n29vc7mL74OtxbvDwdGNq5e3w49jedV5PTElFRUNEQ05XS05VXHnp7uzicFtkZF1PUV1mbVpecGVp7uh68HRVXHN86ejp2dPY3dDNysnJxMbL2ebY9lhYXXDrb2bm4OPQzs7P3dvZ197s7W9eVlVUWGFceurv3trvau/4anNz8+x54eb8bvfe4/BiXFdPS0dMUU1VX2VhWl/u8mNt8e3p4d7g/WpdV1ZVZvnw5Ofve/pcVmJiXFpdXlli7eTf5drS0MvN1fHp4l5YV27r7PT+3tvW0NHN0tPY0cvV29bT5Wxtc/jzZ355+fBiYlp75vnq6+h+6eB63urq5u/tX1dPUE9GSUxOTk1QTE5UVmVnb/fu7m7n6W9zXlZPUVBWc2j58N7ceWhget/e3djV09XX4tbNzsvMz9fc4vz5fffo6d/9/n5sdWtiaO3g4+j14NxwZV5ZX1xeWVRbYmNw5u3f3+PQzdTY2+Dp9XDq1tTi7n1dTklLTVlbWmBfV1leXFxtcfHwefZye+vf4Phxa29oWVNQZ2BfZV1hXmBnbXFoc2VjbnTx4NXY1dTe4O1y/uHW2eF8feHe5t/SzcvJz9bS1tLMztvo7nJeWFZhcmlq9HVu8vTz7N3e3+hoXnP48+p6anpqWVZPS09WU1BTUk9SUk1MTVVoYlhcfu7w3Nvf629gYWNkbXNxZ19eburr8eLV1trb5NnOycfLzs7Q4HpoZWz67HFeWWJ0fe3n3dfV19/s6u/x7+Xb3ed5Y1VXXVZaXGdkYHbt6uba0NLc7+fc09Tf6X1yWlZUU1phZ19YU1FSVVxkZH7u9HBZWGr45une1u1eWl9iX2NtcllWVlNPTE5ZcHnq39/c2dbf59/h4eb6e+jg6ebm6/lxaebn9N7Sz9XPztDPy8jKytPjeldaX2Vi9vF19mtqbXfu59jW4O3t5dzjbOjeaVthV0tJR0tMS09PVVhaW1pbXlZSXFlSYPLo29Tb/GBbYW1seePj5vVrW1VXYHfo3NrV0tfT0dTOzdLU09/rfXt+amNeWFpt8Orv7e9wZnLu7OTX09XU3ep7aGtodX3x8ej0YFtZXvrf0cnLz9LU2Nzu6uDh6nFdUUtIS0xPUVVWYFtYY1xcYWlsee/d1dzrbmJaUFJfcnL8bWFrV1RWUE5a997Z4+Lh5ebf4d3W1NPvXmVcau7o3dbV3eLu+2lte+Xf3dPSz9XXztTZ4fl1furt6e9+/HZjYmx05N3b5vXxe+bb3/Lo3t9sV1BNSERITE1OVVlUVFFSYWR1furc4nn+8Hrn8HBlX3b2emj57G9nWWRt8NTQ0dHd7tvl9uHd1c/T3+V3aW1ibHTz7m1haWFZZmJu4Ojk3uNsbXX13fR8+OLn++3u9/Xl+Wv8fOva19bV4tvQ1NLX1tbc5mBMTFJPUl9sb15VT1VTWGJjamz6fmJfWVpu9nZoXlplY19iZmt783NfYHdwY/DoevXg19Tc4Njf5efr8urt8+Ph2OJj+m927vDl6ur74vlz+HXi2NTY3/335Xzh7Xzl6u30/2vq5t3a4d3f3ujudv7uXWBYVVNOTU1TTVNNR0hIT1hdZfn27N3p3OHp19Hf/GdbcmhpdnVsb25dW1dcb/je3tjPzdHPztrT1uDud2lzbl106+/+YVpWWnTqfe7vdeXk8fj7+N/fa15ZWnbt8OjYzc3d6PNv8evg2NbW0NXf3N/r5fFiXl1YVk9QWFpaWlNQUlplWlJYX2BoZGRx6uLY4GNaUVNcX2V55uP1a2BgZvTr9Onf5/Dz793d59bP1Nja4/Vzb+fZ3eRwd9zm6/Bna/n66O732dHg5fxfY2t+6+3i1t/u7F1UYVtn6tzP0Ors5evd3Ojk9XF9V01RS0tTS0lLS1FcVVhRTWH07uLf2M3U3NXyZWxcYvL35NxxYF9aYnB86eLc1efr2dvTzNfg1dbX2mdYXFto8vZuanj/bWVqW2JqWV3q3NTP7HJsWFhjbvrb1dvm6OHk3OXu59POz9R3bXR06tzd8eD3W1xcWFtqXllPVV5dWVNQT1NTW2Fjd3Roc3tn9+9iYWvi0dj1Y1dPWVts5efY0uh0+e/Y0dDOz8vJzd7m/XHz9ODgdGx4WVd2en74aF1m4tTV5efoe2VifOro29Lvfe1refprX+fa2tnsfm5na/Dc3fJsZE9MVVNaXFRWXFJOUU9NUFhVXF9sb+3h8+ne297tb2/h4N3Z72JhXFVieuje3Nvo7ung3tbUzsfKz83Y/fJ1ZWlqbXVkU1VaYGtpYl1eeOn13tz45fBwZV5r4t7y3Nrk6enh3dXLytXW3WliX2Vrcvz6X05UVFBYandr/eXtWVZaTU5RVFBSV15dWGNlXWJ4eHDw29Pb2NvrfmpmXmx04+V99Or+bOzZ1c7JytLa5Ozl3dza2d3b7WRdamJceXxiX3Lw9e7u6P5td3ZhX3vteX7l6+zf3N3a2ur0clpbWmb85+bc1OFuWl1bWGR6dnFtX1xNRUlMTVFZWVxaYW1tfu3m5d3h39zm3vVsa19YXPft4d/c43F36uLq1M3O0tvQ3Pv14eLo2Nzd9fZtXmhu//zf4vxqY25cWF1oYWLw4utvfvlyeuXa3t/TzNTa2ultXWZxe+TU3Pb/X1RSX2dh/ub2WlleUElJVFNOXH5rVVRUWFpdXl1v9/X8e3loX2X+c2Xo1d3n4+To7uPe3tvNyc3R0tDd5djW2M3N2Nns+/548/99+OP2ZltPT01SaGVs3tTa5nnx5P7x5uPg2NfW5GFfWVZbWV/w6P5wav7+anNtXnvl7u5tWFRNR01OV2dmZV5XVFpob15j3Nnc2ulwfmBifmh46+nt+O7g39vc6uHX08zO2t/b5t/b4dbP1ubt6fxodWpWWnrm43ReWU9KU1hb8dnZ4/D1/Ovd6XrhzszT1tfjb2b6bGb+7eV+cOXm9XBZU1VnenVnYlpTTUlHSlJZXVRRYVtYXFhVXd/Y2+rtalpVWl1c+dnY9evR19rl5/Hr2ePY1tXU09Xd6e3Pyc3U1srN0eFzZ2Pn8f1rW1hORUZITWfh2dna1dvg7/x54c/V3t7b7W5VU1JQbn5mZP/b4OxyYlVZaGRoYFldYU9EQkZRVlNedHlpaWVhY/DY1dDT3u9vWVBUaN3a3t3b1drdc2V369fb187NztPeemlo4Nfa09bNzdDgdWtn/Wlr+2xbVUxHS09u+evT2Nnr8m5paujP2tjT1NnobVleWGT7ce3v39/sa11YVmRdYGtWVlVOS0xMWWRZYGVbUlBPV1lo3eDUz+RnWFROTk/32eXb19PX2+x0dH7b187Iy8vN1+v4fNvPzcjKzs/P2f5z7Nvn6fBiV05JSExMXXh65uji3tzd5ePd0NHY5XvtZVNMSEpVX2bw7dzd5PxdY2R89vH+YF1OSkVBSVpfZG1bW1lcWlvv3M/T1Nfe7XBdUFFSZ3Pp4fXd1dp3aP/v3NfMyMnIy9puX19+4tjP09LS3Od88NnT3+nnZV1YTUpMUmB3bnZnb+nq8O/a0Nbg497t3dx2X1tcY3J+4Nva2elwWl1ub3l3dWZdTUJCRUpZbG10Y1hWU05TbeXj6O3r9HVkXV5ebfr8cXv9cXjzaV9na3fq1srEw8PJ1uDd3djOycjJzNHm/eTk5+p2cGVaVU9OU1tbZ2tfYWx16uvg0M7W3Ov1fmtsel5bWFVjZnjl3+Xd/F1lXVdeW2hvXVRNSEtOT2V8dfB5anBYWfv0fuj0b21jaWlcaX5r9+v87Pfz3vlld2ps49/Tx8XEx8/W4fPf1tXNzNDYenDqcXfybWl0Z2FdWGFmXmNlW1pgfd7a0szR1Nff6O96eHhdX1tYZ2z+49fb5vH9dFhXZnXu93NbS0dJSkhQW1taXV9cWFtibWtobWJdZGxre+Rzbv5raGt7+PjxeGtdX3zezci/wsnKzuXd1c/HxcXFy9nl7nlpZ+/s9ux0Y2VfVm1wXWFYVGVv+9/d4+nq3+fp3/1scl5PWFdcfnbt2eppZlhUWVt69upwUU5NR0hUU1xnZW//dHH5dXLr73767/X56u76enFhbW5ndvL7cnRfWmby59HJycbNz9zn3NTKzMjHztvw8l9tamZnZ+x6fW/57m54cmZRT1paa+jf3eHm8+zi3tTX3eJ4ZV5ve3Dm4ephVFBPUVJmcOzd4GdRWVNPUVphU1deWlhUWWhlY2lbU15dUV74eWxpc2tt/efi5u1xblxi+HnTwcLGy8zPzM7OxsTEx8nP3+DvcHBrX2H8fXp9eOXd8nNtXlhgXVVs7XxeX15ce+fo8/XrZl1ZY/xr4tnnbltbT1ZZV2zn4mFWVlFPTVFZYGdiZ2Lw7vjj7ed0Zm1na1tfc3piVlxiZvXt5ebp9mBkbvDe0sfJzMzS2uXZ19LOzM7f3uXo9nz2eezn8G1h7+3/6+7tdV9VUVlgae/p7Pb27N3Y29fc331hWFbu4O3n5tx7YVZWcmZz9OxmVFJNT09MUFhcV1dWWWdkYGBq/3JkVFVnXVVZXlZNWFtrdO3Y5u9lZ2TuzszKyMTEycrMycjDxc3N0Nvu6ufs8ODd497h7+Da4+b/9fNXTU1WWlNVVVZYX2j64eLa5mhtYFJVcen6cvh3X1xZW3D3/fZfXFhJTFdaVldiXVpZZW7y3urk7evyYV9eYmVic11YWFhodefj8HRiXlFY/eHRz8vHx8fJxcfGxsvO4u9pY2tba/P8+O3f9uzb1dXb3Ofybl9fWVhbVVZRV1hq6drP0dnn6v1eX2hr/XZzeXtpXWD08GxsY1lTUVVYVltUT1daWFdi7vBmdH1fZGNeW1dXVlNVVVRVYPre3/PtamJlY3nh1NTRy8bFxcPCv8LJx9Lp3Nzo/fHveu7f2drb0M7O2uHwYm9mVVBVUElLSE1XXPHf2eDs5mVeXFhcXmlgcPD16fZy7eb9Y2hVUFtQVVZRS0xXVF1t7t7Z3PHm7njj+Xh7W1BPUU1QXXjj49/7bF9QWWRj8d3f2M/OzcbDw8TDyMzR4t7h8ur9XFv1+nze08/Pys/Y2fL99WdgXU1FS0dDUGXi2NHR3dTsePD47OjvW275XGJ+7fPq6mZsXFBVVlVUTUdKU0lJX3d75tz+/vZxZmtvXlhMSEtISFJqcnngdmhlXV5z5NjNzs3Ix8fHwb/Avr/Iy8zR2NPa5+1q7+5859bMzMfL1NrldlpdX01JQ0BAQUdRcfbo2enp/Wlubvp3cF1XW1JXXnLu8dnpYmdYVVtcUk5QSUxKSlZh++nV2uHb4vH8dWJXX01GTEtRYHpt6N1w83le9N7e28/V3c3LysbBwcG+yM7M3Ofd5nnn71xgZV730cvKxsnQ0+dodWVQUVFEQEhKTmRvcOTd4uTm/d3W7ubfcFpfYWTw4ufj7F5WWE9PVU1JTktCREdJWHt75N3l+nt0Z2ZcVVhPQ0JKSk9fbPji6Pzk6uHRz9LSy8/Px8a/vLu9vsLLzM7Rzs7a4t73X2Vq+NLO0M3O3+p9ZnhxXk9JR0FAQkVOVVdgfWxl6u/f1eJzfftgW2Fz5t7g8HZYTVBPT2BiUE9PSEZNUGrk3d3e5mlndHDq3/5WUU9JSUpNWmVs8+j+79/e083P29jP0c/LxsG+v8rM0N7b19fR1uxzemdXZuHTz87P1Nzpefjk3dtuU1FNRkZKTVltffLq6fPd0dHb3eT86ndp+/To5GVZU1RNTE1PUk5LR0ZGQkxhbO3+cWtmXlth/ed8XVNNTEJHSEtcaWdx5Or+3tPSzs/LyMfIxcC+u7vCxcfL0dPQ2NrZ3+bo+/fY0s/K1N7i8Wlga/l7ZlFKQ0E/P0RKZ/Rh6+Lre+Ta5tzo7XdhXlhf/urpYV1lXlJQU1JUVE1JSU1QVnTn3vHw+mpsbejb3uZrU0xJRUhOX/Tqenru6ODh1M/Ry8/a3NfOz8XAwsfLzNbd6t7b6d/zZvPo3djKx8vN2+92cf546vlmVEZGQ0NLXOri2uxw3uDs39DR3+ZlWlpWdO3e5H5pUlZMRkxVUUVGQT1GR0xn7fLy8lVSX2Xq2dt6WE9EQ0VJXuz3be5dWt3b18rFxsnO3N7QysC7vL2/y9zVz9zPydH1aWRm3dDMwsLGy+pbWmZmfN/+UUU/PT5ETHDjc2lWTVzj2dTQ0d9fTUtNUnnj1ud8akpKTVNZZW9PRD49RlDy1dDP099YUGDn0tLW9FhMQ0RHVPfn52NZTktn3snGycbP5mVt3Mq/vr/GzdxfcN3PytDZdFVSXerRv76/w8zdX1Z94tba6F9MRUJJTn7W2ORgXFpd69nLy9nwWU5MTFrv29TdYldRSExXYm5PQjs5PUJJYNnR2G5ZXlNS79nX5XNTR0dISl3g5/xXSVJfa+XPxcbL2OXXzszGu72+wM/U1NTTyMPN3WhSXd/V1MC9vsXe8+nk8d/W8mNURD5BSktg8GFeTElTYHzw1NfpZk1KUWtj7eB59F1NTVVidvJmT0k/PkRUZP7T1NXuUVd0eOfU1/V0VUlIT2b13HBgV0ZLWnnjz83Y2P5l/dnNy8HDyszZ49/Y0cfE5WdcVV1x0Mm/v8rL1d7f1NLSzelgU05LR1v/3tdjXFpWVmDc18zWdWJYV1D53/fib1pTUU9TdGh3VkQ/Oz4+R1pf8f5gW1xea9vg5Nz/UkRLT05x7uXwWU1LVF7k2tHJ0N1139LPw8LAv8DP3M/RycbGxM/rWV33587GwcbN3+rZ3c7M2tnnWUQ/RkhTZnFhUko/REpV4N/X4GBRTVhX+Njm6HZfS0lQVuPuYl9QRz1ARlHm4ebo+WVi7fDOyt/Y8l1JSlRa3+H+9W9RQ01Z783SzNLkeHbc2MrDxMfO1nR63dnGyMjN6WZVYfXUxMLHztDW3M7Kw8LJ2l1VSUZTZentYlJNSERNXenW2d9qX1tUaube2ORXUVFGS1tr8mxdS0NAPkROV1pZT09RTl3/8N3b4WJZVkxPY3B3emBPTEpPauvOy83P0M/UzcbDw8LI087W4tTPycfEy97iefbZzMzKydHO1NPGxMPGzt1eV01HTFdTTk1EP0BBS1ho6+3wbF5eXXne3nttZ1FTV1d65d7nalJERkhJWmRcW2FWVXHy3NHQ2O12XVxcUmZsX1lTSUVNU2Dd1NPa2Nfbz83KxcrU2N/56ufu1s/O1N3n9N7g2s/S1NDW2M/Kx8XBxc7V52teV1FaWVNNSkhKTldhfu/u6nllann/7uP8en1pY15fXmhuXVBJQ0JFRklSUlFYVFVgePr45+l1YldTVFBUW1hVUlFPVVxy6tfP0dHVzMrIxcbEyMjIz9XV0tXV097l3tza19LRzc7Oz8/NzMfDyMvP3OJuXllVT0xLQ0NCQEVHTU5PWV1cYnB27/Zxffr8+XprdGdbU1hTTU5OTk5NUV1gXF5mavjr6fHs6GtqXlhaXVpSWldOVFNXb3vl29Te49bRy8nKzMnK0M7R1tDc6P79emvo7OTV2tfOyMzOycrFxMXJysrb6HJeaGBQUFdQTE5OU1taaW1+bVxqb/rq6+Hf3vVsbWZsYVRLSUpFSEdJUE9PT1hUT1VgYm5lY3lwXlpeWmNeU1lTU05LVV1v6d3a0dDOy8bDv8DCwcfNz9TW1tbocHl67Ovi19LP0s7U1dLTy8fEys/M2+96ZFtRT0dEQUBGR0pRWmJYWVxcamRr9+x+69nu8XVp7vVwXFFRSkpMTlJXZGNjWGH+cunr3+VtaVxXYF9rY11XUlJPVVNq6ufo9X3849LMx8rHw8bKz8/b3OH+dnJdXF1u6dvQzcrLzc/OzsrJyMXIz9Xa2NnZ22tZU0tHR01RVF1sb3RscOrb19/t8G5gXlpUVFhWUVNVTklISkhJSEtISklITFZfWG/f6mttYFtVWFVTTE5STVBa6eTY0tPX1dLLxMDDwcDIyc7Ky87X2+L++X7w+une2NXV2dDPz83HyM3Jy83P19zfbVdWUElKS0lKUFhYY2BiZGRrZmr0+PJwbGhdX15dXF1QTFFPTlVXVlpcWlpVVVlbZWr/6Onr5+/obFpUVFBMT1RZWnvs3dvd3NfQzNDRzdDQ0tLc4eLi/evf7Pzr6ufuaunl3tvZ3tfRzsfBwsjIzM3S0+F6XVdWU1Vca15ofvVlaV9neu1xcvD5/HlxYFlRWVZWTEtKSExNS0hKSEpOTUxTVFZbcHV2c29nXl5YVlNSWF5efuXm3tHP29rY19DLycfExMbFx8nP1trifG1ybX3p3N7b09LX09XZ0M/Oy8rO1tPS1t3q+l9VVFdbWV1WU1VbWFRaX1df83d7+HRlZVpRTE1RUFBPT1ROTlVTVVlXVFxeXWj6dmt0Zl5mYFxcW11fWVxxcnH8/H7g4Ozg2drf0s3MysrMy9DY3Nvi8O5kXmRmZffu5djT2NPPz87NzMvL0NLV0tfY3Obl7nXt3vT2+3FmZ1tcXVdaaHnt3eLt9vpbVVBKREZFQUhMTUxPTVBWUVFZVlVUT1lWVFdmYFhZYVpcaW706+tuefPy59ze3dvPyMrIxMTHycnM09XZ3eTo6eXm73V75+jb1tTPzs3O09fW2Nvh3d/p5+XoeXRz/nZsWmFsWFhaX1pcXlxeZHLu5/57ZGBcVlBMSkpMTlBMTlJUWF5fbXxvZ3ZvXmRjY2tmWFhWVFpv4eXs8Xpx83h4en7r3NDT0NHN0NPW19zo5OX1X2p4+G5mXm/u4tPNyMrMzsvO2trZ4drRz9LV2dnY19Xg6m5x/O5zZWT392lzbWxld3h7bGJWWVhPS0lIRUZHRkdNS05QU1leWVZcXVNOVFVbWVdVVlZpb+rt59/77ebs9Onk1M7N0MzJys3Ky8/S2dDP1ODj4Oj+bVxhafvb1NDPyczOzNHe4+3z7Oz17+fd197d3+9jXmZfW1pVXWdfV1xtYGppeGpfX2BeUlBRUEtJSUpKU1Vo/WZ06+phYWNcVllZXFlUW2xz8+zv9W54+fNpZG7m8t3b3d3d087L19TY2N7d3t7m9XB4a1hoZn3v3dTNy8zMy9Xe1tPV1Nne3NvPzsvT1NTf5uZrX2picvX3V19sZGzpfWNgXl9dWElLTkxLSkRDQUZMVlhVYV1ZW1hLTk5PTVFNSk9cY//n/vF0/3Tl/3fu3dfQ09nQz8/LwsnNy8nMzdHd3dzn+PBiW2Ps29bSzczP3dvZ9fDh3urf2t/c1N/T0e79/mxfX19bWmVgc2pXXG9qfe5zZmJlVV1YTU5VTkxPTUtMT1BmcmxyZFhYWlZaWVVVXldYYWNh++11e29pa/hvefHs8NrX29LP09LMzc/R2+fc3uvq72dfYWFn/HHu2M/S0NHg2tnZ19Lb2tPS0s7V2NDPz9PT4eXq6fToeWNtaWN65nv08OxpaFtSTkpJSUlDQ0ZLS09OVVxcVlxWSkxOTkpOTU5QUlFkYV1l7nlm8+7xeXzz2dva1MrLyMTCwsPEysbO2NzY6fHu7mxvbmrc5+Dd2nFw8e737vPs1OTk29Xo3NfZ3t3m7Nry+vhyYnVrZGBuXXLde+n2YlRbXVVSUUpPVExRVFBPXWZx/m9WXGBXWVhUUlZWVVZbT11tcvxtZmNv9/fx+3je3uPa09XXzcrKytHY1trp8XhmX2JpYmtv7t/b2Nfna2rz5e7g3dbS0s/MzdbWzs/T0M7O0dTZ3ebp4t31dOzq7ero+HBWS0xPSURISkpJS0tRT0xQWlZRVE5OUExLVVJQVVdNUV1eYGlsd/V38e3r79/Z0M/N0cvFzczJyszIycvLzuLj3/N5dmtgfung3+drd3RfWF5VVmr74dvf/NvY4O3p+d7Y08/R3v3a3d/c5mN86+3r6GdgbFdUVUxDSElQVFJPWVxbZGxXUl5cbGZaTVZYXW/9VlRiZPL7a27lcPfscFht7+nZ19nUztbS1Nv239nY2OB2bGRc+vRuXHT83dTd7u3+e31tXlVfbd/V0drS09LT1dnWzs/KyczSzc3O0M7Y8/fu9v36a2liWk1NRkBAR0tMTU5PU1FSVU1KS1BMT05LTlRRWW1bVFZeW3Pk3t3d7evi7+na0dLIxsrJy9TQzdPW1Nzy9HxyfPTz5vF29+no4Nnh5/NfWF1UU11jaezb4d3j597X29TW4N/X19fR1tnQ0uDl93Ft7fb3b1lPTUdHTE1PVl1YXmliX2tiXV1WS0xQT1djX2N1aGpkaF5z7erk5H1u+X726dvg1dPU1dTa4dzf6u77XVdTWVxwamd5bmvq3+nd2d70+15XXmRj7+Hm3NfV2s/Ly8nLzczO0s/Nzc3IyczO09/h4vvw+2RQTEZBQURGSkxNTkxPUldUVVdUTUxISEhKUFllX11dYFxr9+Di3Nvk9e7r5N3YzcvKzMrMzs3N1dng/GdhWldqev7u63Bw/vHu6en0fGZYVFFPVF9kaXd5a23x3dHQ0NDR1NfU0NHSzMnHyszR2dnd3OB9X1NLSEhMTE5PT1FWU1dja2dgY11VUk5NTU9UWl9gYF9ebX3u3eLh5O79euvi3tjTz9DR2NzY2+Tscl5aUE5TWFdgZWZwfHB46efm7+5zZ1xYXGp27u7s4uDd3M/My8rLy8nNzczKyMrJx8TIy83R3N/3YlRMRUJERklKS0hMTU5OU1lbVlBPT0tGS0pLTVBQVVtddebo39ba3NnZ49/d0s3Oz8rHycvLy87X4eJ+ZFpdXlpZWVdYW11r9PLm3vB3aGdbUlZeZWZmbGVodfTa19fY19TU1M7Ny8nLzczLycnMzM3U6H5eUE5MSk1OTUtOUE5VW11hYllUUlBRUE5VWVRWWVtdZvzj29nY1dfc39vY2tfX2dXV083S3drf+GZXT05NTU5RT0tMTk9PYHr26PP7+mJcaWRifurm39/c2NXV0szMzc3Lz83HxMPDycvKzc/Oz9TZ3N94W1JNTExKTExISktLTldYWVhRTU1MSU1RU1hcWVJaWlty6erc19rX2N3Z0dTU1NXUzc3MycrO1dfsaW1nXGFfWVpYVFJUVVhkbWJdW1hZVU9RU1RXYmJia3Pw4t/e2Nfa29TPzszKy8zNzcjJzczIzNLb5ep6XlpYUExNUU9NVGBlbWdgXVNOU1FQU1liZl1dbHB2duPY2drS0NXQ0M/O1t/a3N/e2tfY2dzxYFtWVFFOTlBMS0tJSU1OUVhVU1RTVFZUW19nZmFne3V94tzT0s/Oz9DNy8rKycfFx8rHyMnIyc3a8W9zYlZUWVlQTUtLTExOWVlQVFlUTlFTVVlXVllZVl1rcPzY0dLQ0M/Jy87IyMrMzM7P0M3KyM3X2dv0aG5eW19cW1xPT1ZQT1RZVU5LSkhKS09ZWU1PWU9LS05XW1dlamZ07N7c3tjP0NHPzczJycXH0dXY6v1nae7se3F0amlcXWhqbP91d2Vhc31vaGFgZltdYWj63NTS1NjW0tnVzsrHzM3KzdDO09nffnH6XlNYWVpdVlFQTktMTk5QX2paUE5OUFRPWWdZVmdiWVhfcvr7dfjl/3Ln3dja2eHm3djQy8/Sz9Lec19RT1hea29ZXGtmXF1ucWhmYF5hXGB58G1ueF1UVFJf+OzczszOy8vQzsjFw8TGyMTCx8TGz9LU4er9bHzj5/L7ZFZRTUtNUlNTWlFMTkpHTU1MUFBOTE1MTlFPTlFQUlZcZH7Z3dnb6OLb5+Lj5+nl3+/4aGNsfmxvaW5xd+/k1trf6O1ucG91/u7q49t+YlxhZXJ96N7U0s/Mz87Oys3Oz83NycrIytHc7PlaXGF18erx4Of9ZF9nV1NSVVNUUVVaXVNddl5bVFNZX11ncGtYXF5SV1pjd+rt7d7kduXqZmlkZm1iVVlfWFReWE1OTVFcaWR55HlgfXRn/3N55OHt5Od3bHtrfvX74NbPzsnGycvIzMzN08/LzNHMy9PY2+Pd3uHX09HW1dXd3+lwb19VWVxcWWVoaGleVlNOS05RVlljWFVUT01RT01UVF1ncmv3dW1iY11WXFxia3Zu8/twX2ZbWGZkeunwePJ7bWR7ZWRxb/Lh83f8cGxm7nn26uvWy87R0NDW2dXf3dvYzsrT3NvZ3+Lc6Ofm6N/X6vni4XFscWx7+PLh1N/f2Njp6vb2/Hd17d5zYnByZnBrYF1eYfTral1iXVBPTUlISUpRVk9PVlVRUlBSWV5i8PBqYGtmX19bVldcX336eHjs8+/t+XH67uXY19rb2N7e3uLo3NrW0NDU0s/Oy8rN09LZ1dPW3Nvq6+TpdHfu8+Dh4uPd4eLu92Bsd238cmd4+GBseGtcaWRt8O3p3uthYmNiUFFPUVdZVVlWTE9WUk1WVWd2cW74dGdya2BVXFxfXWhk+HVaX25nZHVu9vv39exoXV9pZVxfYWV1933f4ubb1+bo493Z1tTUz9rd39fW19LQ18/OzMnNz9HOz9HX3+rc39/f6Ozh3OXp3+bt2+Di7XFqcGtcWmBSTlBOUVNNSktMS01UTE9XWVxZT05WWlZXXFBibG1vZlxnbWRmaWZdfW/u5vB1825sb353Yn1u49vf49rj3dzc9nT3/9rd6Onc4tze4/X38ObU19nV0dna3t/o4/Ho2OHj2tvd1tfZ2tnf1c7W2Nnk5+j5cGdrZ/HtaWNmW11iW1hbVlBcVlBVV1FYWFdcX1xaamxqamxhaGdiX1tWV19ZWVVTUlhYWVNQVVteXWRjb2ptcnVqY3H17Off3Njc29XS1tXPzcrHyc7Q2dfR1t7Z1dfP0dXW0NLNzdfc2dng297c2tzq5Ol4fuvyePBuanFjXnr2aWVfVFJRTU9RTk9ZVk9QUlFYXVlfa2Bjb2FcZmNebGxme25bYHBlYWtsZ3R0d/F7ZW99YFlaV1ZdXF1mXlpjbWZv/Ojk3ufj4ent49ve3dvY3dXTzMnLysbGycrNzdDO09DV3d7c3OHi4dzn4+7h5vDn4ev9+vD5aXBs6Ot4e2xiXFpaWFZgXmteU1NUVVJVUlBQU05STEtPTlBTVFFPT1RXX11jZmNkYWdmYWJpb+5rZ21r9u3r9/x0++3r8/fv6eTv6ezp4tjQzs7Nzc7Nz8zNzs7JycvMztDQ0NXO0drZ0tfe6HNsdXBicmFYW3Z1eXBoZmxnYXhsYGRyYl5cWlxpY19nX1hgeHj5fX18fWZfWFNOWG5oXlpcWVxUVVZTT1xgXldSVlRST05NTktXZGddZGRla2736OPl0s7O1tbV2dvW19bS18/L0NfS0s7MzM3NztXPz9bd2NTY29vt8Oz43dbc2tfZ3N/j83Zwbvv/aWRiZVxXU0xMTE5XVlNYWFhRTk5MT1dq+HRrbGhkXF1jX2f55uj4eX1tbF5eXFhVWVtWUU9SVFZQV1lYXHfv73396+Lg6NjY3uHY2tfX08zIys3GyczQztLS1dLPzuhs+15aZfv96ufk3uFy9eZ8/OHY2N3W2NLVdXjp8uzc3t7f4e7Z51lVU09UZmxmWVxVX1FLUlZPU1tVWlNWVG5XU1liW1lYVVVTV1VmT01PUE1XXF5bXmRebmBueW9fbu/r9N/W0s7V087N09DLyMnBwMbGztTO09bNzc3NztLT0dfc5Or06Oj69uR7dGxYXWlnaunu7+bre/RtXF1lW1x9Y1xbXFZjYF95/mJo8nV7cmZaXlVTWFRMUFxTX2VnYGhcVlxWTVJUTVFPUFBZVFZlV1VhaWX37/F87nzv3u70493f0NLT2dTb2dLg2s7Lz8vNz9bY3dbZ7ODUz9bPz9LZ2uHZ2Nzb1NHSzM/O1dvr3+D0/Or3dvZjW1VTWV1WUE9WUlFeWFRPT05SUU9PVFRaZF5dWltZZW1eZ21aZGNWU05MSk1MSUpOTlxmXltaW1p1dGh08PHV0tja2drgz9DS0c7SyMbLysrO1MrR09be6dnd6PpzXVvy/vju6OzX3/Pv5md24+fd7ODg2Nng4t5rdd30/fpmYf5nV19ZS1VYWGlbXWBkaFhnW09eXmFdU1tga3dp/GJYX11cVElLTEtMTE9ISEhLUE9SXWBpaGx7W11i/OTs4djU0M3Jyc3JyMTEyMjJysnKzNHe3+bb2dfX2d7h4urtbHJ2fG51e2dqd+jd3+Lb193m4etjXF1ZXlhPUl1UWm1hXlxcW2dcWFNUTFFeV1BZVltvXWf9cFhrZVpUU01TTkdERUVEVF1aV1ZPWVpbWWRaWXjx6uTp69nZ0s7JzcvDwMLIzc/Mzs7QzdXNy8vO23n98Xzv+Ptr+/js7nli8uHc1NLX4tXTzdDa6+n/e+jtbmjx8NzY8GBpX276b1xaZGVtbVZOV1Ri/21WWGJdXllNSUZCSEtNSEpNSktMQT8/P0VKSEhTWVpZZF5ha/HXys/WzMnKysXJysjCv7y+v76+wMHDy9HW0dPN3uXj819q7X55++Pi1+Tj5OV+7ed0aHLo3dPa29nb597j8mVna2t0Ymx4a2J4+XFramZucmlvamNfX1lZWVlaZGtqcGZfX1xPS0hJSklHRUlFQENHR0xPWWh++Ozr8PPxePrh4t7SyMfAvr6/v8LExsvMys7TzdPf3NTc2ufu4d3g2NXe4Orfb2ne7fHP1c7FxsrExczQ1NLb1uTe2mxWZl1ZXFVdaW9l8nxZTk5EQkFBSElKT2BeW1lkW1tWUlhVT01TT0pITUxRUE1dW1hh+3VsfXFhaGZ25eno08zPzcbGyMTHxcXHysnIztLW2dfQ29LO09nV2/lkYldPTk1XWFpn5N7h3tjh3d/g1NDR19DP2d3c39XZ2s/R2+je7WhiWU1NSkdKSkpNUk1NV1NMT09TWFhQTVBPT1VWVFZQUFRSTU5OS0pKRkRITE9QVmPq5+PW0tPU1trW0tHMyMfEwL+/wMTHxMXLysvQ0tHb+Hlnafb2Z3r5b+/p8njw7+zj7Hrr5ft77PHg4e7n3Nvk3enq8/5kXlNTUlVWVl9dWmBpWlhRUU5VUE5OT1BWWVRWUFBNWU9MUlRNT09JSUlISFROTlpgW3jse/57YmTkbGjv6+/Q0NbLxcjDvMLAvcDJw8nU0s3X1dLcz8/Z3t77eu9nWWxuXHJ9Z3bi6tnP09LIzdHK0N/T1evh4m1r+VlWX1FKTkxLVVJIS01FSUxHSk9NT1xXT1teVWhrUFhmWlZaT01SSkhSWFFbXVtcYVVSXFdQXWli7Orv4NPZ2tfZ2s/P2dDOztPO09nb3evZ1+Xf3d7p3OX593Zfa351eezv7dDP1czL1M3N19jV2+jY193Y3O7c3O3f1+D27WlVWlJKUFdXVU5GRUpFQ0tGP0VGR0tNSEhPUU9XUE9fZnbu5+3383x463NhfuDh4e3r5+fj3NPc5uTb3N7p6ebX2NfR2NvUz9PW29n17P72cltPWV5YWFpfVmJeZGVgXP7h2NTU0NLMz8/R1tLHxsbFwsTGxMnL1Hp74vr9+eju/mxaW1xQUVJRUU9OTE5STFBPSVBPUVBXWFFPVlBSTUlYX2Nj7+nn29bh1dLSz9HT1s7P1tTT39fb2dLU1tjP1+Xq9212XV1pb2573Nrf2eHr6Xzw7PRsbfV9eex7aW/29fft9+zY2OTd3Nza19POzs7MyczOzM/V1M3O1t/j5+L1d3xkWFlmaGlnaGNtaVhVV1lbX19eYGN15O7z+3RqcnVjWl1hXGJmamhgXmRsam799+/o+vt2dv51fHx85eLe1tjf9PH993lobu77e/Hx3d7d29jS0czIysvQ0tba1t3i4Onf297V1NPd8HZ3b3RjaW1y7nvq6N/n7+Td6d/h4uZza/7h4/BgXmdvYV9lZV5odmRjZWBqfF9cav/y3uXo6Oj+/Ov7cHtXS1FOTExMTVZUUlxkUE9WVFJTU1dnZFtffGN+4+3t3trX0NLj3tj+8ODf3t7b0tTZ3tDN29fU1tLU2tvb3+fg5+LT19zg49re5m5jaFdTXFllXlx2+mxw69rb5/Fx6nttcmJbZ37q6u1y+Op0a3BrXF5aVUtLSU5MR1JkW11fXGtoZ0xMUVleWkxNUlNRTk9NV1lm5+B3e3P+bmZjaOve1s/NzcrLzc/Y6uPb29rf6uXp7fJ+e/x2/efT0Nnd4t/l7m5mX2X56m5w+vzq+nBeY2Nsb2RZVG/tdFdSVmdjY3jf2tLR2NxsWltdW2j47eDa3+r5XlVST0pMTUhISUtQTUNES0pLVVpdaF5dYlpLSUtLT1tWXejp5NjtavJ+ZnPj9OPY3NPO193T29/OzNDJxsrHxtPe3ezu3Op+2NXZ09X8b3RfWWZaVGl6e/r4W1BQS01ZUVz1dWNaVFBOTExTW1xs5trX3/bo93B0+HVgZG7t2/hx/Wz7e/R67N/j4eJgW1ZLSEdFRUxQV3V9XGz/XF5hVFFXVFV0a1h1aVtjYFxu6evczdno2+Xz7m9+29fVzcjP0MnKzszZ3tbW3M/M083R2eDlcuze5f3d7mNfW1JUUE1cWl9t8Wz77+x3cllPUUtMUFZRXF5dX2dYX3NkZ/Xw+u16bGdhUl5dUWHv6trS0NDV2P3+aVtnbXBq9Pj453NseXN339nT1d/b4G9lX3Bya/Ho3Nvh2+F86u5zcHb65trh7tfW5tzc6ufzedrW3N7O1+XZ3eLj6vDd19rRyNbd2nxfWk1OYGRf/OBrb+1qW2FVaeD0aXVmUVBVTEtPTF7w5+bU3WtoYldVWFJg7/vw3t/34tvg19nbzcnNzM7P1dbW5+3z8eXY2tDNzc3M093t6+3k/ufa4tjt9PBwVmBjXGJZW2NsXGZ1clVjaPrj3tnX0t3j/3Nn9/fg39XPysjMzdbZ49nb3OLj6exuXlpUT09ZXPxy5NvX3+38aFhNVFhaV11l8Hz3+GxmZXv07G/43dbe7eHidXn36tPXzcO/xMjJz9ra29jOz8zFxMrP2/xu63x743N629nd3O1WUFdTY31u4M7lYlxSRkVLR0xVUnDV6uvm6+3f6n7d3Xvg1ODa2+xq7e7gzs3Tx8vZ0Nd9Z2hST1FOSVxdWm9gX/x5W2j6d23W7vTd8l5cWVNv5eDWzNjTytPe4H1k7Nvn3M3Uzs3W2trk79vY3dPQ29HU4nB2amHz4Ojl+F1kY1hPU09TXV1XaXts6+LtX2dbVVhXUVVRT1NXTEtWVFhoe2jp3+vj2e5ve1tVXV5YefPt0cnX39n1Y213XGl0ZvhrTEtMSkxYWljt5OzY1PFxbm5n/3h32dvd09jk3/lvdN3rft/f4OB7aWlj/Pnb6frsaW3/enRtcXdjc3N0//Hb5+jhd2RXUlpWWFtWXFFcX1FWWVpcX2BcWF9VXFJJRkE/Pz9ARk9WUGZdV1ZXXmFkdPbw/Wjl8Obl5eLVz87S0dHSztrc6un3+2lqdnBgaHZtalto++9+6fJ3dnh3e+74/XlwaWxjXmV2dmhaT1JPTk1ZYWZ+5uDl+2Vx9PR36/Tp39vf29vj3uHr8OZ3fuXsXlRPTU5OTU1VT1JcYFxYVVBcXlNPTUlHR0dCQkVFSk5PVV9e/N7c6e7f7N7d3d/Y1tLKys7PztDJys7U1t3n6uL4++X2dWFbUlZVZPv6Xl5pZWVeXVNkY11r/15qbXvrcGJpdGBp9X1ZZvBpbvrtefLf0d3h7v3t5nT95nn26+Ds6Hp49utma2tYWllbU15VWGdjVWtwYGjv8mJuWVNXWU1TTklJT09RYl9i6trp2Njc39ja2tPX0MrN2M7O19TO2NXQ29vX3e/2bGZqZltofmr+82NdcGBgefbv6N/f2+l4dOjs9eXj6uLn9d7d4+j9X2ZkW1xwbGj3cXrj715tbWRocWvh1+fa0dLXz9Td1d/35N729vZfWWZcXnro5dfT6t3fZlZfVE5OT1BbXFRdX1Zc8/N62NfZzNDW3t305t/V2s/M0Mza19PX9ePY2+jl3+ba3dfd5+ns3eLz83dy7uXo8O/r9uj6b3118/Ti2tz0cProcGvx7fDs297c6PDu73fv5/Hp5ubydGReYW1v3tnSzsvKysvb5uttafjy7/Pt7PL1dXz58ODV3fLzbl9VWExOUE9aZl9cduLdz9TV2c7j2uXd79fc3tjX1tTP6drb5u/e5ujj3trT7XjozmXe1urS2ftndVJSWmRsdGzx4fRs9+95fuXg6ubg3uvz4tzt8d7X1dbS1tvh7PHpbF9na3z+bltt7m7h1tnRy8jL09fa3u3r2OZfbObw7O7y7OTp6N5yXV9YWnVqW1VfXmf9WlFWW19nZ3JxaWvb0+py7+/k1tTP09zd2+RtcW5t4NbY3tvh3NPh+PN0+OH3X1xTS1ReWFVZWWFub3TwdGF8emv96vvm3N7c2Nzr4OPi2ury5nRdXmVXWGpna2tbWF1jYPjo8t7je/Xs9/589ufc3dfS3OPn8/N8WlRUW11WV1pcWFFXWltsfur3e21VWl5aY1pe9ubo4dvqZ2xqaetxW1JeZ2BcXWns9fzpZFxkbO52a1pPV1pfW1NVW2l85d7h6Ojl3931bXvp2dfS0tHV09HQ09vq4dri8lZOS1JPS0tJSlFUUlhPSEtRUFVNSEdNTk5UU1JUVFZvfmv44+rX2vF759/q3N/g0s/PzdHe6eX84uFiWmR6b+Xb4d7gcu7jb3F5XF5fUExITUxSWk9iZWJ23ntWVUxJTUY+QT9DSVZRVltUUF9jXevp7uTb5+zd2dzSzcrCxMjGwcjLys7Lzdfw9OTw39nrbF1TTFVQSUxIQ0VGRUVJS0hPT1BeXk1SUkxPWk5NTEhJSlJT/utw7Oxt+937+e1nXnrzbPTe6t3PzcTAxcO/xMjDxMnO1+ro3d3c1Nzp4Xdr4/NfZVJNT0pHRkQ+P0dESE9LRURHRUtMTE9KS1Jede/Z3una3eDQ1NnV1dfS0tLRzszOx8TEwMPM1Nfm59rf7HpcYWJ0evTedGdtXF5XUVRJRkdHS0ZHTUlLV11pemZZYV9UWlRUUUpKSVBdVm3tavTr6dPNycvLysfEx8bGxMfEvby+v8jNy83P0dPc6O36aP1obm9VTU1STFBUTUhGRklJS05WYF3o1dbZ5vzx7P939eRycvz+29PPzM/Q0M/O0M7e/2didXP2YWP5/+7W19DR3uHl6X38b2deYWzv39zV3fRxc3n+8vRtZVhYZV9ZT1FRVmBx6OxraPR7bu7l5Orc1M7FxMbGzNDOzc7My9PU1t7Wz87S0c7Q0c/P0djv8G1cXV1fU05WVWjo39ff4erf2uPc72hyWFxjYWFWaHRt7+bV1OTe5ftqZF5QTE1NV2j43un7e/ni6eDmZPtyc+7t337r3+TU0MzIzM3Q0tzc0t3p4eTe19fT1+J5a2tqa2tXVlZUYnHx/vvu7NnS0MvNzdLa43Xtc2Fu7unbz8vIyc7S0NXh9mZYWFROU2Nvav3wfOTZ09XSztLU6339XFhhZWhw/+3r3vReaHBuaGdeVU9NTVFMTFFPVVpvcG3f7n7tX2VfXGFz2tzb0dDHxs7Ly8zR2tj4cvx23dnV1eDc3uTsbOpuVF9XVVdSWE1e9Hbk5tvS4NzY2+Ln23Fec2dq/HZ4X2V389/s3t7s2+RfWVdTSUlRT1peeut+7t/g5+Tb8m3w8+vg1tPe6eXm3OLm5m1mbGZsbGNSUl9cWVpgYVBYYG13YmVTTU9UWFhfZ1xg+evc09jc497Z3ufqd2JUXHXv5+Tb3uDb1dfe721UT1Rca15hZFdj9uvd6enj8urx/uxtZVpOV2FiXV1sX2N76+JtXlxQUFVZUkpOSkhQVGViWmhcZ3597fLo9G7+8t7c3dfd49jOy87Y4HJp9+niffvwZ/nk6ef68XFiZmVfWFlSSkpOT05QX1tddO3g4uB+YVVVU0xPUE9OVHH4duLk+/Px/11jal9bWVtdWGH4ZF9p7Ori2N3u8nF0d/LqX15faXFq7vljbm9sX2H7YlhXUkxLS01NTVFVV15zX09PUUtNVVRUWWl46dbLyM3PzdLd1NLa1tXR3NvY3dfX29/u3dbW4+XecXDu+11WWFNQZW9w+2t7dFtk9HB7Zl5QT1NLTVNdWlhtd3hrX1tLSEtKSkpPTk1c+evn295ya2t28NzW2uHh19vd29PncPPo3tfV1drY2OHffWxTTE9NWmFna1pdWVRidOP5X1xTU15xdXr85t/SzNXc6u7zYnXh5nh26uXSzdXS3+Xi9eXUztXg5PPq3NrT2+b79enVzdLY2Nbg3eB8blhQT1FdX2dgWFhXXF9dV0pGSEVGTE1RTk5PWuzf825bW1ZXcmjt5u7c1crM0MvS0M7Py8nDxsrQ0c/O1NrZ3f3v5OHd3uV++uvdbF1hWFNQXFpWb2xpeG3t7dnT42dVYWFf7ubzenTt8OXj7fr57Ot9bfBvXWh+6NzU0dnT0tHOy8bIztjb3NjO0Nzr6d3d2Nna6fd5cm1aU09KSEVGSkxYT09NS1554/xkXVZl/efV1dfX29DNys7T1tnWztLT0tra6OTb2Njk3eT429fS1t7a93Tv3NTt6Or939vP09vU3ejc1t5sXVhRVWB1bmRpa1hj6OtwW2laVltfblxfW1ZddeLq9ul79NvR0+Dc3N7e2dLV1tfRz8zHxMrNzdDf8fTu5PLz8OTb3uLp5OTu697qfWBTU1dfYWJfWF9nZ+7+/X5idHb2/HPq+On8bOFtZW1eZ2B46W7zZ2FsaNzaeuPm5N7Yy9LKytDO1MzRdevi5+700N/i2+XY8OXfWVdWTEhFT0tGSUNGRU1sU01WU1BReXdUZ21u/XjR2vjk5N7kzsjRzs3R3N7Lzud4+ebu2s7U0NHU29zLz+ppd/p86NbX29jb7Gvb1utxXllMSldbV1ZPTEhQXFBJRkpJS1NTS0pMTk5RXGVpXlhSTlt+6efodXB63dXW2d/g4Nna1M3IytfT0s7M3utpYPh08Orj5VxeaGd1bGtVSEpJTVlca1RPVE1caF5WSFNaT1pjbFFNVk9ZZ3J4T1BbU2Hv3OtfdHh12szL2d7T1M/IwsHJyMvSz8jH2eXc5enczs/e6mhdVlttU0pEPj4+SUxGR0I/PkNPSUZJSElMX/RuZlpVUlvr6XN0X1de/tHW29v4Z2zX0NzV4HV75s7Q0NPY3tzOzNbY5W534NTOzdDWd1x44et9bFNJTVFXWlZSSkRHS0dKSUA/QElNT1ZPT0tRYGNrZV5ZXfDi2c3Lzt7b0M3NysnNz8zJxcbFxs3Q1NfV1d55avz+993e4/dpbF9ZWlhXTk1OUVhXXlxWWEtKS0pPTE1PTVdaYWViY2JdXWBbW1RYT1NgcvP0al5f9/bn3NTJzdTNysTGyMnQzs3MzM7O0NLRz8zO0dv1X1daVlFUVFBRTk1XXF1YSENFRUJFSUtKS09QWVxYWU5Sal9ubG97Y+7Z0s3V1+3l0tXMy8jGzszIxMLFx9Ti1dPQztbQ09TLyMnL0ONdW1xYV1FTUFRdZGpdc2ZKSUlJRkBHSElMUFxba2RRUlRaWlVhW1dm9djc3Nb37+Hm2d3Px8rIxcDDx8XN0NHb2/Hf2uHW08zLzs3hZ19cXE9RVFBXa25iX21iWVJNTkhGSkhKWmFcWGtdVF1cZWJkal1medrS2cjL2tzh1N/Xzc/Jxb68v76/wcbKydHPztrUzMXEy8vM197wY1dPT0tJS1NhXGl+ZFpOSkRESUNFSU5dWmRnZGNdYFZddlxhcO7a49bX39/u7V1c7fjt1tDKyMK/wsLFytTt29Xe1dHMy8S9xMnO0OZk8/VkZ239XWTpfm5obldHS0xIREdKRUlQWVdOVFBITFhfX2ns9/XMw8fKysnU2c7Ny8fAv8K9uLm8vb3K19Lb29zf5Xvkzs7X5ONrTEtSTExWTkxSXWtgXWVZTEtOS0tTVlFOW2xVW19PTElQV1BbW1dddNvd3Nn/Z1tdeHfa0M7Jx729vru+wsbMy8/MydfSzsvHysnO2u1jZWNfa1ZOUFZbUFhYTEhDQUFDSUhJT05TTldgU0pKTEtY/HZn7tjS0MvJzdnf53Bn38/TzcXDxMC9vsHI0ODz2NHd3NXP0M3ExtLmeWhWan1cWlVdWVBYXFBNS0c+PkZGQ0VFR0lMV0tDQEE+O0JLS1Bce+7fzdfm9mxiWWza3djOx8HBvLzBwMPM0tfT0t3d29ja1MnW4OVpW1VhbGNrW19kWXZnUE9JRUJBSkhJTUtPTk9OR0VAQkA+SE5OVFh44NvP5vB6VV1XXtze1c/LwcC6u7++xsvL0MvO2OH03u3j1uPraFtdVlxeXV5SV1xTWVBJRj4+PT1GSkxQWGRgYF1WUEtKR0dOXl5VZeTc29re7nBeXVtb+vd62M/MysfFyM3P2Nzl5tnx7uDr39fQz+Dr6uj5+eN+bGhdX1dXWkxLSEI+PURISVFPVWBUU01GRUA/QUxYWWP73dLNzM3Q0t3q7ePU1tLNy8fFxcXFycvS19be3d7n7Xnw4OnjfWtmXW70+OTo+GRccl1XVlFUSklOTVZaYGhf7XJTUk5NRj9DQ0lRUlxXZX5lbWhfVEpQWl393tXUzMPExcC/wMvLyc3MztLZ6NrU1s/Q0uXt3N3d09v9ZFxeV1FVTkdGR0lLX/Vramt7cGFZVk9LSElKT1paXGbr5Pr87lxXUk9TWnXu7+LTy87OxMrPzM3OzMvP2NbTzsnJwsLIx8jKyMbHz9bdfmxrbGJMR0lGSEpTVlZWUE9QUkpDQEE+P0FLT0xSY/7l4up0W3tjWGL74uTh0cvLycfJzc3O1tbLztnn6+Pl2tXT1dLPzs7Ix8zS0tLg6uLq9WteX11rfXvq5u57YGxpTUpKR0ZDSEtOXFJOVWr6YlNXX1tdaXh76eXb087Jxsa/v8TEycXIysnOzszJxs3Mx8zKyMXFys3R2e1mZ1ZPT0hLTU1OT251X2xbX15OUUlARURGSE1XTU9UWHVhWFxYXlxeb37f6v3k2s/OzcbKyMXHxMfHydHQ0czGy8bJzsjNzMbGytje73HwbmtfUFlXW2954fliaVpgY1NPRURFQkxQVFtSV1xh6O9tX1hbV2Fx6Of172zxzc3Ozc7MzMLBxsLJ2d7Xzs3LyczKxsPCwcDL1N5y7v53a1JRTElOUmBaT1BLTVFQT0Y/Pjw+QUJEQkRFSE9bcWtdYl1rc+za6uXrdu/fz8rOy8nNysfGyM3a6N/b1s7Q1dPPzM/IyNLY3uP7cd3oZ19bWVVf/nlsfOr3ZO75VkxIRkZFSUhDQ0VJSFZnUk1QVVJLUVlUWFpcVGHg2dzRzMvNycPGx8XGzMvGx8nKzMzOz8nN19Xd9G16e1xYVE9KRkdHR0xQT1BPVEtIR0dIRkNEQUZKRktOV1pTVl9bWlpcWFptXF1lZ2Vm6tLSz9HW3ure3+DW093p4dri29TV2dzY0dLPzt3/6uR3eXt2VU5WXn3p3f1UWllPUExORT4/QEVITllMTl1aZG31+15ocv3f2tDfdObt39HKx9Ha2N7SyMTM3dTd5ePf3ex6/nF27tzlW1hST1tmX1ZPTEtRZt7eeGRXTE1cZ1ZQTUhJTmBuYF1RUFNi7W5uXUxPVe7a7+dmW2PsztTQzN7i3tDHy8rS+WRt293m1/ZiberQ0tTbZlpYfetebFZKSlP649/iXE5MXfdifHtaSk1ea/ffbE9NW/Dt2dl4V1zx187L0vRdfdfa183O6OXW0MrBw83g29DSzsnL6Wbu7eDRz+RQSVBWWlBNS0ZKTVJt8XBORUlNWF9bTUhKSExo4ttxUFdp7tvU32lx6+nTzMzacWNq8drOytfz/OXNx8fM1N38+uTZ1eLxbm/d1M/S4+pobOPW1Xppdl1s3+Df/VpQUl9s82pbWklKW2t6al1MRVNjXmJZWlFQdt3W5+vqY/bTy8nMzNjlzsXBwsbL3OHYz8zS0N5179bS2NziXlpofOf5amVXVe3X2u7tV05VY+Tg2+JqXmD83eXeZ09PUF1gXVZLTVhp6fvobllrcOPd5uZjXWJu1tPOzuzm29LKycbM1Nvl2NXZ4GtpePrd3tjpb/Dq2dXc6l9UVE9TWGxtWltXZenn2uhvalZeX3pwV1lbYH3m4uZ7+vPg29HN6PP8b+7bz87b4Ovm2NfR2ujjbWZ39u1saF9r6N3Y3eXjc3Ph5/NeUVNNUF9w5PH5embg19ra7XBbU1lfZ2BYV1de8Ojl39rg+NzR09DZ8Ghe9O3j2ujlZmvc39rg5nJYcmdieV1YVlBec2709GxYZvxw7NxvVVNVXfbc5d5jZOfo3NfZ7lxbXFlqaW9fbebn2NnR2fnl49XP2tL9XPn82MvLzOHp7t3P3dPgX1xPWF5mdE5VW1f7Y15lUFZVY3deY05HS0hTZnd8W1NTYNrT0dt0Z1di6erc+l5fXvrk39/s6v3o1dbU4G1kZ+zc09rrc2Bh5NDP1uJsWWB35+TwXllZX+/m+W5mW1ls5+5tVkxLTFReYl1bVFFl4Nfg/nJdV1heY1lSS05W4tHX2ODg6NbJxMnaeV9w39zZ3OXhbnzZzs7Z6nZlbffh3mlWTk1ZX2ZjWF9ha+Dj62hPTEhZZnJ2V1RTUW3j3t3yc1hUVlFUT0pIRExfbfpy9m5dZl9rcllQUVni3OTp9uxy59DMxsrZ4Wf2bmZ0Z2hYXv3q49zp7vrz4/Lm9FpQT1lcY29saV5r2dDNztffZmBYU1xbVlJTXGFm5uzweW11XV9iX1pWY3Dp2dvf7eza29XR2udrbm134tra8mZlY2/n7PpjZGZleHVmU01OTFBfbujn8Nze0cnP3/htaVZmemxgVlxk/t7f6Nro+V5j7mVWTk9WWOfZ4dr3bGNp2+J1/mdnW2PabmBkWVRPZG9advZsX3PP1d3h7nle6tP+39Tf3tLExs3N1OpiXutzbuf6XFrc237v5PpnbN7f6vV4bGjUy9rYz9r7+tTZ3+Pn71tq6/18Z1xNRVFTTlFTX1Rf4e74alxYUnvwevjq3vDiycvNys3V7vHrfXJpY19VauxlY2llW118bmv3dGhp6drt7uXm6t/Y2efc2u/p2drY1tfwZl5YYVNOU1Bc+OXk9OxmUVpfdmlfcG104tLN2dPS5+Dg1+Vy62pcbm7q8uff/t/Z1N385mVd+OjU297a7t/t2tDcz9jm19fO19/bcGllYF1QWlJJVWLz2eDZ52toX29gbfhba+fczc/O0uLl8u73aG9fXGVZXVdaYlhUVFdsZ3BkW2dfaubb1djd2d3a2dve6Nna3M/O2ej9fmNYX2dsY1tbVGPs4eT++3V16u3j5/zc3NDIyMXKztTg29Ti62JaWlplX3ZpWVBFSU9PWFRXUExUV3Lu9+X96tTa0M/PztXPzMzKz9j9ePdy9fplVkpPVllhX19VTFZcbOLr4Xd77t7PzMrM1NfZ2NnX0un0/f3b1dLrWVBPV1hLT1RSUklOZupyU1JYZXh15dzndVxo3tDR5ntnXWz76dv5/m923NDV7G9cXmZ939rh73p449TQ09bi9HDm3ejjaVlRUWJyfev2a11daXL9dl1hdObY2d/qemhkeXnw5+Dta+rX39vnZ1lQVlBQXVdPTk5YbHNiaVtVXmNr7Ox4bfDX1M3LyczU2dHV083ce2v5e/zq8F9SU1lWVVpbTklQUFReaW1XV1pr69/X3N3X1MjExMfP1+Tu4urg8V1bW11+dGNaTlFQT01MT0tNUlZx6Nfd6+1w493aztjf5eje2NLU6PNkZHD6dmpgWlhSVVdYWl1ZXGZdbm9y6+3n1c/O2N3Y2trY3tXT291hYe7zcWpja1pTUk1WWl5hWWJqZ15j/Pbu7nNvanFuam5ze+xvdF5j/Pl+aGv/dWRsWl1bWmldXmpqem138Hvi4u738Ovp9Prp3uHm7OLZz8/d6Oft/X702dPW1Nfa193d6fnycHf7bfl+aWJbXnBfZFxQWVJQUlJPUEtJR0tUXmlia2hib+Xb2NfW19HR1M/S0s7b2tfZ2ubv7mBXSkhJRUtJQ0pabmtu5Nbg3tbSztPOztLMyMfKycPIztvZ3f5nUUtHQkI/PkBES0xKUVFRWE1eYVdxanXzctrR1NHXzMjOx8HDy+XqXlJRT0lIT1dr8end5e7l3NbW2N5zWVlcZGRe+Pxq5drOy8/cXUxOUVRTT1VPVWjz2d70e1/92tjO0Njfc29m/uTp7nB66N3Oz9fvWVNQU1NOT1JTXmf929LP19PNztPW1t/+fe9wYHzsdXLu19fneGpOSEtOSktQVFZNUWh78/zoc+zY39jb5uL04Nvk19fs6Ora1dvZ+VxTUWFYT1pTTU1UY3fe09bb1c3Sz87T1u7l3OzV0Nvf8+fh5fNfVFNNR0dGTExJTU9ZY+7W2efb29fLycbIz8vM0c/LxcjMy8rLzNfZ4GlXS0ZAP0JCQ0lXW2dwXVtdaGxq8vBjWVJUXlNs9e/X1M/P3d3d/WhoYWBcbG5eZXb66PFuZVtXZ3nz5vHr/mtsdO/d2tXNxb/GyMnV0NTX0dzd2ezp2NLO0NrcdGv/c+9nWFtNTFhTWV9YXlxf4+ZtX1FMSklNS01ZXmVfYfP35uzz6Nzd1c3Ny83U193Vy8nM0NTLzM7U6HpWSUdAQ0hITktNWFtp7+Xa3NTNysXDxMfLzc3OzMnM087N0dT6bVhJRUI+PT0/QkJJTUlOUVpu/PDs/O3p59va2tfl3+jr4N3a19vuaFdfZVJPTE9catrY49/96ejwzMvNxMjMzNLMz+Dc3ujraejb7NPjY31n7+lYXVNOV1NkbFlcUUpWWW7f8/L7eu5z89rl39rn5OXZzM7V7l9gU01STlBZWFxlX29eWVlaZmp64ebc3e3n5NTO0M3N0tHXzcnO2flZVlZXWV1aWFJWUk5ZVlBPTE5SVl9qX1lYVV5eZWZgd3J1797RztPl/2RhXmRuZmv8e+va0cnHyMbHxcbIy9jx9GVcYlxWV0xMTk9RUmVkV1NZVlZSTFRQT2tn9Obf2NnYzs3NzcvKztzb2eLva25dVF1fXFxcX2VQVlpTXV1VTUdMT05ZX/Z7Zvzd2NbPzMzY29Tb5N3b23t55vvl39/jXmFwV1BZXE1APkZKTE5aaFRY9+zg2dHNz9nMyMrGycrR4Nfc39bY2Ppd7fbt7l9oXU9YVk5PUEpGR1piUFBaaldTZXdeZu54X11x4nFs6uh8YvXS3unt9mdgZ+3u7tnP2NjX1dXZz9Tf2dTR0Nzdztjd29necWJ8YWJz9/1dU1hTS09JSEZNaWFaYFhdWF7h19fX29nQ0s3P2djd3M/o5uB18VRMTVJXS0NAPkBGR0pNTVZXWH3r5e/i3d3PysjLzM3N0t/JwL/Azux4WWhdVFpbZF9aZGxnXFluYlzn5Ozu92drX2Xt4Nnm3NTe5+5fUltOVVNTZ2L619fd3dTN1NjX4fBjYm5cYGxfWFFJS0VHVFNOTUFFRkJJTlBdbdvT2s/KzcvLwLy8ubi9wcfKy87EwMrR2szJ1eL4TkdGRUI8O0JAP0E/R0tNVlNNUE1TWWff4vlqctrP1s/RysTAwcbO4+tyYV9n7NzY4GJaWFpndnpzdW9cWWxtcnr7693UztLT0dHXdWhpZPX5X1paX3vq2dfX2evm3ubc3eDf6n3wb15cXlpMSlBda11QS0U+REtPU1dn+fbTz87Jx7/BxL+7vL7BxMnPzszPztzvdV1keltUUEhBP0FAQEZKT09NUGZtffLp8n3v4uT18elsbmfm2OLa0dXX0dHZ2t7b2tzp2dDQ18/T2tzW2+Ti5u9tYl9eY2lbVFVaVlpZb+fl229fZFReX1RYU1t6d+LqbvHyc+vw4drj3+f55Orl2tnP3W3/7N7V72JUSkhHRklFRkVBR01WX2D59G/h2dTJy8nCxsTDxcDCwcLKysfM0HxYUEJBPTw9PDxBPz5CQ0pPUFVqb/DZ0MnLxsrUzszJw8nKyMrExtHP3fX0ZFtYT1pfXVlTWF5fam316XhbXVZXV0pIREJGQ0pQW+72VVVWYHVfePZo59PMwcTBwMfMy8bBxsjP3d/4ZPhgX1tLSUZJWk9FQ0A/REZSUFBfVlr78c7M0dLb3dTVysjNwsfNzM3Ey9rb93zg2+b5Vk5JQ0RCR05JSkdHSUhLUElMVFJbV2bf7uz0dtzQzsrKzcbGys7Rz9br7VxNVFps82H0b2Dh3djX/N3+XXzu39d06OBz6dzOxczJ0uf68G3uWlVeZHF0fNn18+Lo3tXSxcvXzunzellfXU5OSEVNS1BLQUI9P0dDSUdBSUdIWWF9+Wrk2Mq/vby7v7y+wsLFxMbX1czJx8nQz3ppbWxoVFNgUk1JSE5OSUpHSklKTlddbGdqYG7s5djb6uTd0tDSzc7L0Nzu6+XZ3uvr7u99ZF1bXlxcX2lpcV5WUFNXYltdZ/vl5exvanFwZW5jaXF28ujg09XNzs7LzdHR19LT19rsb/1kZFdVV1JOWlJQT0dLSENLSVZwdt/f6djW0cjAvb7Avb2+v8jEzODT0eHxXnBcWVhZWE9PT0xBQkRAQ0dLTElLTUpLTV9gV11odmtne2tae97a2M7CvsXKycfFxL3DzM7KxcXKyMza6uPa6GdnVUpHRExMSE1OUFROUFNa5Nv2+W7o7mzm3OLY2M3O2tLN3fRq39LZ18/X6F5hblts4PBbSlZoVlNTVkxGSFBIQ0pQTkxTcPXg1M3Iyce/w8G9vb/IzM3O1tfT3uHs3G5eVlVMPzw9Pz9DTElERUxWXH3RzM7S0szNzcjJzczMz9z23tvmfmNkfWlxe1lSW2NkZXrlbGBQU2Zq6dXncGVXV1VSVE5NRkROT2F0YVdWYW7x6NbUzs/Qy83LyMzMy87Mz9DN3OB5XF9ZXXBnVU5MUFJOWltTSD9DRkdXY2VcUF1tdu7r6Olx/+jk287O0dbLxMTIx8XFys7R3Nvc421YUlJNSUdFRD89Pz9ES1BOSkxSW19s6N99cHbe0MnAx83OzszR3dzldGNbY2dm+2BZZWfr5Xrn7mdZT1dsc+99aXRo9N3s3eL08mVYYnra2ufY2tnPz8vKzc/P09POztt9+2ZZWVRNSEFAPzs7PD49PD9AQkxXYFpabHt38dfIyci/wcTDwb/GzsvO2+Ldztbr2tvq49zV4GhnbF9XXvR+V1hfUVBVZVpUVVdRTEtXW1pZZF5m/tjU3unc4O3b09XUzsnS29nP1uxxe3BbWnt3XVleXlVTZGJaW155bFtzamBeZHZqaeHZ5Gtdfe/55N7l4tzU0tPV1ej9cfTwbXzg6O7kZlpVVVlPS0hITUpMX15edN/g3M/FxM3Oy8nLy8TDztfNysvOys/1V1heVU1OVk5HTFJOTk1WVEpJUU5MT1VVUE9YWVtifPZuX2t3YW/s5O7fzs3LyMPDycXBxdDY0tfr+t7f5+Le3GhTW11OTFJYTkhOWVxaX+528tjLzNfd3uPs6tnNzdXO2OHm6N3g9nxsYmPx3dXoclxYVlhdWlxRRkBBR0lUXWZXTFBXY3Px3P9eXGvg2dbQzc/OysXFw8TJ1fbv29Tc3Nr7XFlZYW/xfnxkWV1fbGVk9Oft4NHKycvb9V1caGp9bmFdX2R55dfW3ODf4uLZ3+D+YHXb2NPU3+9bVlxaTElBPzg4Oz1GTVReXmTn29DQ1c7Py8TCvbq9vcHIw8C+vsbJ2W9wUlJfW1tSSlhTUVVNUk5HTlZcaF9kZVlrevbd4dp0U1xzcfX/ff1b+dzd1tHJxtbSzs3K1drdemJoffd2ZWlWRURJSUlJT09TTUxPUllhcNzu5dPSzczMzM3Rz8zMzux66FxST1ReVFJaaXhz4NrvY23vaFVadPZibu7Y09jOzNfe2szZ+evd7Wnt5OTwd+Ta1tjZ2f5WXGVuZ2JxdGJZWFZWUExOTEpIQ0xIR0xQXV9b6+l9/tvW4GplcF1gaHfrbujKyMvNxsbY3Njc2+rbz9Paz9LMzdbM0fnt/3heS0hGQUJBREhLTldRTkxQWG3j2NPO1NvV09PZ183W4NfY29TU2Nn2+2JcW0lOUkM+P0ZMTVVdVlVbaf/t69va3H5l9/7539nQztHS4fHg3Nve4t/Z4uHZ2tnl7Hx8/WV47l9RTVNZUl53bHRvYH7xeNne7GpXZmhabOXVztPd293h3trfbl9WVF9dcP1caGZc/W3y19l8Zk5JSkROVVFWSklWTk9q9upqZHD6euPR0Nvi2dTOz87HzODe3c/KycTG0uD5ZF9WWnthUUtHSU1Uam729W5sdu7p4/BjWFdd7tnh2tL2/m161tjRytd3b+/Z2dzTzuFpWlxcVWNkU0hBRUhJTFJXTkRIS1RpdGVeUE1bZ9rLysPFz9DO0NHKzdDcbl1fef7j2NTjaF9vd+3k8Xlbct3t1dXVznNa7eDayszZ3l1x9mvd0s/haVRPTU1edGliW1hbYu3R1N5xT05OS2BdSUU/PURIU+TqdnlfVv5t4NHe3fvq5drTyMfJy8zPzs7QzNf9Xl9f797RydlpaWB04NXM0uN4enF96t/Q3HpdUE1NUFRPU0pKTUtSaO7l+l5vcXHa0tTUffHg3c7JwsHK2eRsXXnqcGRRSExLSlBrfOx5Wl9OWens8GpbaWJv28/T2HVZVk9q2Nre7WH24N3PyMbIy+lvYGfc39/d8fbl7e7W0OPvVU9NVHBvZ2BQTVZa8s7Ky9Hv/uXaxcjP1N39aWdf4Nx+9VdKTEpSTUtLRUI/Q0hTYVlWSUROXfvk5dXf7f7i3c/FyM7d6G7x3dna0NXQ0c/Mx8THz9ztcG7f4OluWk9MWfri3vdpV0lFTWFwYl9dW3T95urf2c7X4Org0tzl4epqfuzxeevr6mNLREdWXl5lYldSVFFY6ubhbFVTUWhtWWJ2eXL06PHSz9PdYV5j4t7i1NTobXra08bCx9drVVJv/urqZFleZe3h187cb3D9dtvU4tznVl7r7e7W1tvsT0tQWGZuaGZdVV92ce7e9WFWUU9aeWhdXlps2uX16OxhT0lHTVZgbF9vaVli8u/aysrT6mv+5NnS1M7T2M3JzsrIzuZuYF/y9HxoamZeaPfn3c7Y7l5VSkpVbfh86XRiYWns0OVwYVdOT2dueGtvd9/Nw8DAy+RgWVVY6+p7YF5QTE9UXPV5Vk5KR0FNWV5SVl1fc3ne0NPmb/3h99nO0OfwfXzq7c/L2H5kV1JSZObp4M3LzMzMxMDGz937/2hn4+xkenVt6ObYz+1TSUBDR0dVY11icWN56NLIzd33XVhWTFFYTk1UT1xcZOdkR0NCQEdOaftdW2xj9dfNwb7O3un2eHne1tfXycfKycjFx9vye3R9b/t8/Gh459PNxb/D2ltQS0I/RUdIRUlPW2Pz2NZvWWNoXFZ97O598dzOy8O+v8z6WVhVT2ZhVk5LTFVTWfHubFtOTVZQXGxsavLbzMzPx8jU/l1ZVlBYYFlbYFt43NXDv8nadF1iXGnj3N7a18/Ky8LCzN9wa15RTU5SVVFZfNnd18zZ825ZUVRZXn3sdGlu5d/RxczmbFVPSkdJS0xJTVvx9N3Nz3JST1JNS0xTXVBa7+DRyL++zfpqWFBQSlNoW2vXzMW9urvHycjK1/FpWFtVWfHX1cvJzN1lU1JIQ0RGUVRLW+7r08zIzNZ77WlfXWfjYF1m3NXQzc/i/l1XU01MTFdYXWze3drNy9La/VtNRElLS1JhYenu6NrQ1O1dUFtVTFFeaPTs2crCv729wMnlfGxRWHfz3/loetnNxcnZ2mxbUUpPWml5/urdzcrGyNbldl9NQ0BIRUpOSE1u5tjQ0cvT7V5IR1dJWXBdW+PS1tHV1eb/VkxIR0hLT05Ucdzf1dXP0c7q8/Lg1+zU1tPOy87LyMnMyNtZVFReXmVi9efZ1+Lf2Ojqb01OR0VLX2xucd/g+tbS29hxSEdFQkdRXGru29HPyMXGxcXXamVSWFpPUl138/ny5mtfW00/QUJMVFJTVmp46d/V0tHU61JffXLs6+rc09bKy8/NzdpoUFt8ZnFkW+PP08vFwsfLzd5xZV1WUlhWbt3s/ODa9u3pfWZZTUdAQURJVVlq3tjj2dLZ9VxcWltVWV1WUlJdcWt83nZUTU1NX2Jnelpob/3d29XJ0+FsXnbm4nPm5OLcz8fAvr/I2H1fXWT2XXz2c297597U1eBcUk5KSkRARUlFTlvq29bQ3NvtdmNsam1sfnlz7dvX2tnq3fllV1NYVlReW191YGNp6/l9YlhZVFxfaGZecu7n6t3Jys/iWVNOR0hPZ3vj2NHTyr/Dxcfb3+FraF1bWmJu7eDSw8nNytR9Z1lQXl5NT05WYGTm5u7hflxsaVZbWVJZV2Tnd+zybPReWuvabF5dUFdhbevo2+V94vJaVVpOVGNOUV/61dLZ3vTe0tvf0NnW1P9ke93My8vFycvQ3ujV2u3s5PRfV11mc2xld15VV/5uXlpfbOvp9epwZFlXS0lLXmBdaW5kfnntz9LM1dHdfHt0Yllr93ho6N3QztVucFJGR0lTT09RSUlPUmbcz9fW2O/o2tXYz83TztDYz8PAzuN1UFdrbPri5G1lXWvz08zf53JOUHT04NnZ5/ja3evc0Nn4bU9ARkdFTUxISVVYWGPR0vrxa23k3uzS2/VhYGJceNvX/HtlXllUTFNcWVRbXlljc+Xv8Onb1czNx8DFy8zS1s3IxMze5+Tt6X7t2elaXFtVXGDv63xbb3hsaGfp8ltbamRw7OTn+ldZXvrZ29HeXlZTSU9idfHxYV99a+Xg1d9u/v5lX/DuZFZKSlpicujUz+FuYGNe7Njb4l1WZOzk0szKzM3P1dvSy9DS3d7j3evazdTb5d7l8uvP2/FoX2trZujO2d3+YlhSUWZoXFxVWVlYX29s+H1xW1pib3ltYVBQVFxs3tvd4mtZXHDe1uDuY2Nrb+rSztXX3+55eujj6eTr29TV0s/P1tff+/Hl3ePx8HhzYO7Ty8vPzdpeWllbV1BVTEtPVF5y7n3e3nx3am9zae11Y2N6dXrh2tTf/F1aZuvyfXNbWGFgae702uZsXlldaFhXb2Zu7ebg5W7l/FxZV1VSWnD+/XBm7uLT09TO3ere5ut9Z/hfUfzg9d7o4dzz/O1+fG9eWV5cYepvcX3p2t7p7Ht03+nw7ero6Hp6amV2XldYXldSUVZbYvvf6eft6t36b2xnYFFRVU9aXWpsfP7823VZWVFPTEtQUl1l5NzX1tvJzczIzM/Z5eHtb29++vN88NPU72RPS0lFTVVOUV1caf593dfZ2dHSztva2uPa0tPLzNXO2eTwaEtKR0hMSElQUlRgaeTb52xqXllPTFJPUGdlbu342+Hd6tvS0O9XWlJOU1pde37e3NTd6Pb/fm/k3N/f4HDz9/p98d7f6e3o++n7a21r/tvg4uvu93nx//pudXzo+Wls6urx2M/V6mNhX0lLTldhdl1eZ1tcUVRPUlpcV1NQT05PWl1q38/Q1dfV6/b15NbNzNbt39LU2Obk7fJfXHP6ZFx8bnnh1M3T9G5kZWNbXGJ4/OR9d/5s5NnRzM7ab1pJSU9LSElOW19o5uV1dWpefeva2GlbYmBnZ/Lk4Op8eFpVVV5ZXG1pYlVQXund3uDc49nV5dva8+fg3tDKx8nO33BbXlxeaf7g+GRmW1xz+e/k4mxeWlNTUlBWXl9tfPfm7n12bW/r6vJtZnBpYHnb2tPZ3+NpXWFlafne1dLd3N3c3+vv+mpcXFFMSk9WWFpl4tDLyMrU32ZXXmlbZ+ntdG3y2dPOycbK3Xtv+2leXWNaV2vydV1bUk1QZnbya1leWFVVWPHU1tbS3v323tbfz8fGyM7V0M3Q3e72dGJWWVxXVFJMSWDs8fBoWlVRVE9XWV9y4d7o387N0MfDwsLHzdjj4X393ebfdGBXWl1aT0pPVlh65n72cuTp69bU1dz0Y2Vtfezaz8vMzc/Oy8jK8W9hU1BLR0ZGS0xUdNvY0M3d4t3V2u7l3OLt6+ne19XT0dfW19ryV1ZQS0VES1dVUlRXVU9c6uXd0tPV3fnr2tPQ1tDV3trf5HXe0s7R0NDf5n52bWBtXFtiUkxOUFJYad7c287Ozs7d7PHs3t/o6/Ho1+ps+ujc4N7qaWjm4mddVl5revpgXFhYV1JOT1p8a1lhZGp52cnHyM7Z8Ori6Onm2NTRztXNyszP2d/g4+3xX1hdX2Ru69zRzdN7fe9kWFddV1dUU1BRZG/73t3Z1Nz47tzb6GRw63rs6W5YXmRhcGZu393nX1dPUVNaZV5iXFdVTlNv4NLOzsnL1s7OzcrN2+Dvc2heX09TXnJrZfv39m5gX2rt08nKz9jp7nzg1M3R3/lvZl1iWlVZWmBtZWn99VhLSU1PWWhwaXx1Ulhu7+Tc0dn2dmVecO3g5vP6+u/e62V5bWp6+XBYUVhXUFpy5tzOy9HZ3mdeaXPf29vqYFpiXWzr39vc1ODl0c/e7nh5aGJuXFBNTEVCREpMVlpZW1VNTFFdfu/e7Wltb+/d1s/LzcfO3+N6/GdTVlZTVlhST0xLTlto+OngeF9hWmDw08zPz8/a5unYzc3l/WRdXVBOSkhMTE9YXGJ5YF9uZ+DW087V1+FiVlhRWl5fX1tuZ1hXWV3+d3f5+uHk7d3wduLm2t3n6GxfZFtt6vbd4WpraldWTVvm9uXsZVdSVldXZ2ds+3j7/mVlaHfp7eTY3flmWVVOV15ZY2ZbUE9iZF9n7Gpr7PR0YO/X18nJzcvO09fd53JncGJZZnhhW1ZUV2vc3/XW3vNtVE9PXV1bbPV7fXZ56uPa1N7aztPe7nBtbfv9ZersZGVZTk1WbfBlXFZIR0VES05PTlZ5d3fc3ODPyL/Bwb3BycrY397m6ubX4Gv99lheZ2VnZWVnVE5RTVZe/eTY0dXW1Nba0NDO0NfY7GljXl9ra2Nsb2JdWFNMTFRfX2H1dVxcWE9RVVFXZFxSVVxbbdXMy8nFw8fL0NTY3d7h4+rq6Ph7e/rl4t3W2HNWWVpi/Hrz3t3X0tLS0tPOz8/Szs7c/vr+c+1y89bfemVSS0tMU1NSWltYVVJTVlVYXGhqeeXj4OPbzMjKw8DCxtDh73xuXlpZUFpiX2FidNrb28/S09nweGpi++rb0NPZ3OLt3tTR2tTT1NTf7fP0enp+dm3q8WtWS1BbWWjtbnpsWlpdVFZeWlBOVFVbX3zdzcrFw8LCyc7d72lwcWxqaF5ZUU9ZYmRpZFdgYlxcW1lnd+jY0MfCw8nKyMjOzMrQ2eP683BjcPFe+FJcdUpaXl5k7/j35N7+Y1lOTVNTWV5YYVhg7uXRxsPDyMzM1d5vVFZSTlJYYWRdZ//33Nvc4Gz3eGj5ZGPzdv75+/Xo5N7368/Uz87R0OltZ1/67/X/ZFdSTE1TTmL8Z21jaHReWlJMU1RTXfrd2d/YzsrExsbGydLmb15XVVdVUVJTVFlgeHjv6/j29npeWWNkZHnh3NnU0c/a3dve1M/W1t3pcmFaVFNTWVJRUVdWUlv/9Pd1bu95YlVPTlBPVFNTV1hv9Ovf0cjCwb2/xtTw8OTr7vtcaGBYV1hddnr7+2Pvbl9YUFtkX+7f2c7T083T0cvPzdja1O5dUFRcW1tbUlFOSUtRTVJr9H5fampXTUhKUU9VVVJlYV53/+PPysjKzMjR8l5XWGV5d2ZrfmZ54+Xgzs3X4eDobVhUXmZ8fv/z3+jv5+P85cnEycjI1epscf7j2+T9/3BVUFJUUV5lWVBWUkhEQD8+R0pMT1heX2z439PFwcLEx9bc6/J5fedtXl5vX2RfX1z93uLn7fxfXk9NXOba0dTX19vZ1dTQx8zPz83d+mpST1FZUVFRU1FSVVlq8vN8aWVcT09MS0pNS01PVF9WU15ifdbPzcvN1d7q+Ozd3ePe6PV8b/bq8/VlXF1bWk9MR0dJTFdj5u3h3djY0snDwMTFy83P2+Ho7+59bWpeY11QTEtTWlZTUFJXS0A/QEZOT2RkXP715dTKxcXGwsHI0uDe8GNlcmFdW2FbUlBbZmptZGBfZFNQVFJVZPPl6/vg7Pbh1NTY19nW0tbk9fDr6dnW3mtufl1ZXGNZVmNkXFRPSEA+P0VOWFZQYnFcZ9nKysTCxcjMzNHe7uDX1dvxbuj0eW1sXVdfWlNLTkxISVBl4t/g3dzP0czJyszIxsrO0c7afmdfW2FcWk9OS0tOVFBLWFpgXVtWUlFPU19+dXB7+u/Zzs3RycXIx8jK0dnX09rU1N/e6fXq4vBlV3bvav35X1tUV2Bp3uL46uve3N3U1dXMzdHO0NbP3OB4Z3VbT09QTlRPTE1MT0pKTEZAQ0pNTlNhYGv718vIw8DCv7/EwcTLzc7V0+DtfFxjY1pYVFVZV1tbanlwZ3rv5OLw3tjZ0MzNzc7LyczMysjKzc7V3917WlpOTFBQV1NQV1hdX1hQT01JRkpOSVBRSVJl/Pr82cvRzcbGxMTCwsnFyNTV3PDf4+5wVFlRSE1OTU9PTk5Y9WFX8vfi0czExMC7vr67vsHCzNLe3edNR0dCQ0hHRkNFSkdOXVhWWFNUTlJRTlpdZO/a1dPVzczPztLRzc3V1tfZ8GBeWlNcaGZqaGtjY3J0YGNeXmFo+Wxqb/bt3NjVz87Mx8LAvr6/wsXK1OFtVlNWVFlRSkdGREA/RElHRkVHR0xNSk5ffejPxcG+vL7CwcDCycrM1NzdblZPUVBLSEZERUtPVF59a2z3+HNr7Pv76trR0MvLzs7Mzs3MycbHytdvZlRHRkZITVZWWF5fXVdWV1FPTE1LR0xMSEpWYWr++t/PzMrEv76+vr/BxcbN4G9172tdTUZFREBAQElLS09OT1lZUlZg6dTLxMK+ubq7u729wcPFztx+T0U/Pj8+Pz87PkFASlRbYF9iXF1mZ2pqbOna1cvN1M/c5OHb087KytHS225cVVpma/fsZW/yfHR1eX3s/WtqXlZSS0dLUlldZWPi19TMxr+8vb/DxMrV52ZcXltQSkU+PDk2Nzg6Ozw7PkJCQD9KWOfSzMC8vbq8v76+vr+9wMTK61xZTkZFQDw/Pj5EREpWZXHv+Ove29zi0M3Mx8XDw8nK0M/Ly8nL2PhtVEVAPT5DSEtLVFNRWFZTUVNXX2ZmY11PSEdHSlBOUFpedPzq387Hw8HAv729wcXJy9bc+WJWTUVAP0JJSkxLTUxORkhQbOPXycW+vLy8vr69vb6/xMzP61pLRkU/Pj08Ojs7Ozs8PkFGSU1f9u7l3s/NzMjLzMvO09Tb29LNz+FoXlZOTEtQUlRaU1hgZmNaXHja2dnZ29fkcF1cYV/65OTX1NDOx8XDwsfGxcHCyM/e3/FcUEpEQD47Ojk6PUBDREdISEtTe+HUzcnDw8LGyMnLx8TExcnQ1txvXE9LTEpHRkZAQURGS1NfXf3d18zExcnIw8PExsfGx8rKys7L0N/ralhOTEpKTFRPTVVcVFBJRkhLVl1taWVcWFRTVltrbX7e5evi3M/LyMrGwL/Av8DG0+nqXlFLSUY/QENFR05SU19eVmP+8dzNyMXBvr2+vb2+vr++wsnQ3GxdUkpDRUM9Pj07NzY5Oz1DSVZ2383Gvr+/wMDAwsPDy9HP1+X1+V1YWFhYWVleX2n/dXB2/nT03Nvk1s3O0tje+WVeW2Ty8uPc3OPgz8zQ2NbP0M3Jys7d4nBYWVBKR0M+P0A/PUBEQkFDTFRddt/b2tLKysnIyMTAwMDBw8XLzNXpXVNWTUlGR0U/P0FBRkhNZOvVyMHCwr++v8LCv73AwcTFyM7P2eFqVVJRUFFWU0pNUk5NSUhIR0lOT1pYWGhrZV9iZW7s6+3l7+nf3/b383zm1tTMy9Ha2NLn9+j29ur6bmRr/fh4Z15x+nrs3tTT3M/Lx8TCwL69urq7vsPGzN9oXE9JQ0A8Ozk3ODc2ODs9QklWe+jb0cvIy8vKysrMzdHV2d7p8FpPTk9TUF1cV1pdc2xaWmjz7eLUz8zMycvU8Ojj7e7f1drd2dLMzc/Jx8jMy8jKz9XQ1PNeXFtYTU1KRkA9Pz07Oj1CREVOXm517dbNzs/Kxca/u73CzMrM42xWWFhJREJCQz5CSElISllhcNvMys3LxsPHyMfDwcbJxsPGycvU63Bnb11bXFdRSk1OTEpHS1BMS05ZV09WY11aV2Ltb2hhX11ZZXdrZ2d3/2Fm993d6Nve3eH76OXzfnJqWV1pXlNNT1ZVT1VXZl1f9fTj3dDEwL67uru+vrzAyM3W4XFOSUVAPT0+PDk5OjxAQEdNTlFs2dLS0s7Mzc7Oy8zQzdL0YFdWWVVQUU1IRUxVUFJdan576tTO0NDMztbb0s3JztzkdFta/OTu9Off4efc0NDW2Nri93ZqcG9aV1JOR0hMQz4+PT0/QEdQU09OUVZf8djJxcbExMvOysrb7fL/dmRYW1hPSklMS05QWGRaXHByfuPTzM/Q0NDP09HKy87Mys/Z0dTa2Nzf5GdYW1pTS01PT05OVV1USkdJRkRLTlhgY2liXl5o7uV69PTpdHHf3Oz+emxgY/Dz4+Po6f1ydunlZ1haWVZa8NbT4efq7+/XzsjCw767vb6/vsXV3Obvb2dteF1JQT0+P0RDSElEQ0ZJSlZnX1xlb33z29TS1Nrj+WZkYVpYTExMS0xQYF1RT1dmeOPQx8LK0tji493c0c/U2drY29/hempt9ePd1M7LxsnOzdTNx8jKztDT4O/v7m9URD49OTg6PD9DQkVHSlZm4tPOx8TCwcDAx9X2WlVQVGFiX1lNR0VGTFJaWlxeWmfkzsrPzsvHxMW+vLu+w8TL0dPS0tPr/GZcXF5sZ1pTS0xWXXnn2NzmZ1lcXlhXXFlWVVhY/PJqYlZRV1hn9+p0W1tXVVpu3tLZ19HT1dPMzNf1XFZXVFFYaGFfWlhfbX3n09DT0MnFv728vsPLzc/PzszN2d74YFleYmNcT0pLR0RISkZESElPWGnfzc3NzM7Nzc/S09f2X1xPTlFQTE5OS01Yet/X1tTY4dvU0M/Sz9TZ2+PVy87d2+Ht8+zj0crR2d7k5tnQzszR3tnd6NrX6mhcTEhIR0VIRUJAPj9ETlxu7+vj0dLPx8nd4exoZFxed/BgWlxfXFxt9+X5W2J+eeXd4n7s5+Ha1dTIxMvOz8zKycvLy8/b2d/d0dTkZmpscnj94M7Q3Oflb11gWU1IREJIREJJTUtJTVdm+/bl1Nrh7PB65dbU2Nnl9uHt6N37ZV5YWVhbYXdxYWh0bWrk1dDR0M3JxL+8urzDyMvO1NnX0Nj/ZmphXGNta11TTlJPT09LRUBAQ0hMUlxvbWVxenbz2tXpc2FeXFJaYlZJRktSWFxj8N7n5tTP0M/Ky9LY593f8ezuZlhZX3Ll3tnR0Nrf1tHOysPDxsXGw8XIys7hcWhrX1dSTE1JPTs+Pz5AREVFS1Ts397Py8/X2NTc7v347mNPTlNOTEtMS0tLU2ZiZWxrXmzw6dzPy8bHzM3Kx8nGxMbLzs/L0ODi4f1dXm1zdG1w6fpvbOXe6On7aVNLS01JREJEPzw+QUdPWGBuaGV092h4eGtfXWTn4nRfZl9NTFFZV1lZYWVXVmhsYGlub2lq7tDKy8zHxs3OysjKysnIzNXe2ODw/nFhW2X76vhmXV1NR0hRV09VYmJXT1BZV1treWNgZvT9X1hZXFFJTFZSUlJbX1hje/Tu69/fbXD03Nvo5OxqXFlicW7m0MvOzMjDx8zJyMvS0MrHy9Pa3vdfWm1qX11aVktHSEhJSEdKRkFGTVxlbeTc4N/a0dfc3OJsW11jWUxISEM9PUNKTE9XW1pZXO3d1svIxcjKxsbIysvKy9fb3OHf8XpsaXl76N3d3Nnc3tfPy8vQ1dXrZWRnYFtXUUlEPz5DQkNKUVteed3c5e7q4/R77Ofv/GpfV1NPTVBQUFdYUFBTVlVec+3i6eLc2tbNxsC+vsDBwMLAv8TIysnL1Nzubl5OSk5PVltcW1VSTVBUW258Z2BdXGFbW1xdXlpbW1VRVFFJRklNTk5OT09MTlhreu3h5uhxX3jp3djSzdDS2ODf4efg4N/VzMbIzdDU0M/UzcvKysvP09PS1NnY2tnocG1kXVdTUE5NSUdHRUZMXWZu6eHl4uDn7HlsZGZfXVdNSEQ/P0BDR0tQVVtXWGHx3dLOzMnEwsTDw8XHys7P0NLOy87X2drX19bS1uT0/Orb2NLP2d7v9/BwbGdgX1pSUlBNTlFOSkxUYHHz8XFdWVZYXWJpdnNbVlZVU1FOT0xJSUpOVlZZXl5n+9rVz8rGwsG/vby+vr/CxsrMzdDU1dbb7H57eX3/69ff5NzY0M7X3+Tf3O1uaGJv9nFmWVZbX2FgXVtZVlJOTlJXVE1KSkpNUVtiXlRQVFxbWWh69+zm3djQztHX3eTbz8nFw8HCw8bHxsG9vsDGysnIyM3V4Oh9Yl9r9vllVFNST01PU1paWV5qeuTa4PRnXVRNSkpKS01MTEhGRkRDQkNFSExQWGBnaXJ25dvPyMG/v76+vr/AwMDCw8PDx8zMzMzO1dze4NjRz8vLys3OyMjJzdXicFtaWFJPSUVAPDw8PkJER0pLSENHSlBRU1RWWVpjYGRdUU5JSU5ZaHf/49/g0s3IxsfHzMzHwb69vL3AxMfIx8fKztDT19nW2vNwZ19eXF5jZGBXTUtHQT9CSUhKTE1NTU9PUE9OTkxNTUxMTVFUWWBreO3s+Ori3uTd0M/Pz9HT0c/Q0c7Ly8rM0NbW0M7Qzs7R3Ojp63NgVlJWVllaXFdXUExNTE9XW1xZVU9NUVlaVFJTUVVSV2RgYGlra2plcP52d3nvdv7e3N/wbmh18eTX0dPRztTQ0tXQ0M/R1dbZ0dHZ4OttaHJqaV5US0tMTlFYX2JfXF5oYV1v8ubyamtrYFpcZWFbZWZnb3B49fHw6eLe2trj39/g3NnZ2Nnk9fj9ZlZST05SU09SUk5SWWVuamrz83Hy4er9bP31efHw4eP2Z2dfXWX35+Tf5drf3dHP0M/O0dvm4ODi4t3h7G5v6t3jeGxycFRRUU1KRUVGRUtQW2daU1tlXVxs6/d4cXhwXmBdW2JcW1tYYWf66+7u3dfXzcnIy8nIx8vNysvMztTU3ePb2c/X4OHubFhcaF5WWVZUTEdHRkVAQkJAREhKTkxJS0pKTFVcXV5cXVVQVV1haWxraGjv4dfP0dDMyMrJxMbHx8nLz9LP0tba6v5meejXzs/W2NjY2dbU4vNnYlpPTUlFQT8+PT0/QEVDQEJEQkNGSU5OTVBZWl5qb37y6Nzd18zIwb++vsDCwMDCxMjLy8zPzczO1NPS19rVzs3P2N3qeWNmZl9dU1FOSUlKS0xHSUlEQ0RJS0lISUtHREdLTElGSUlHTVlobWb06O7n0sfFxcPAwMPEwcDEycnJy8zMzczR2dnh8P7t4urp7f3+Z23o9GZbXV5ecu7p4nBeZGFaVl9dU05LTU9MT1xUSk5bVFb249vW4NzZ2drY09XW2NbQ0tTPztTZ2trg1s3Pzs/Z3drh7OjpdGhkaWtiaGdfVFJRUVZaX15fXFNVUlBWYHJya/jr4djTzdDV1NLR0s3Ky9DY4N/6ZGxzZVpce25fbvfoeGlva29t39Xc7Hh7/WVjb29qW2B2YF/++XVdVlhTUFpwcWZeXG1wXmnw5d/e2M/OycK+vsHDw8bGw8LFy9HW1+Dw497leHvn8XP57PJeUU9LR0dKS0pIREZHQkJHR0hITVpZXXrl4fV17vF27dzZ2OT96eXt5N3d29jMyszJx8jJyszN0tDNysvOzs3MztfZ3PH9e+rxZnB5dWldW1RLS05QTUxOT05JSEpKR0dKT0tMU1pdWVdYVk9afdjT1tDO0NPMyMbJxsHCxsS+vsPHxcLIzszLyc3P0Nnn6d7d5/Hu9mtbXV5fU05NTEZDREdIRERFR0NERUZDQkRISklOVVRWWmh5avzd0dHOx8bMzMrJxsfIxsbJzMvJztLQzsvNzs7P19nU3u/o7HdmX19aW1lcZWFdXmN1bVxdXVhSUlBHRUpISUtLS0tMTFNdWF919+rx+eHc39rQzdja0tbW09LQz8/RzMvMy8zLyszP0Njj8P5dTlVVUlBPTk1NTE1aXVVWUVBRU1RXVVFVZFlUZm12/uvj2tro3NDZ393e3uPh6OXtaW74ZXPp8+3r7ubf6e7e4PZya21yampgXFtYV1hZZ/Z7e+/q6uB6Z3BqW1pdWFxeWllYU1VbV1Ja9e/n2dXNzM3PzMzNy8zOzs3T2eTj4tvk49ba6+nn5fxvZ11aTktMTEdHRkRGQ0FFSElKTlBVWltfV1VUWl1STlFNTllXWWZw+93T08vDw8PCv7/CwsTFx83Oz9nb1tfc5uve3uHr4Ob2631mU0tJSEdGQUNCP0JFSUxPTU9TWFxtbWBeZnFkV15ZUExKT1FXWWb33tzYzs7Py8bHyMXCwMXHxsfJz9PS1dDOz8/Q1tLT2N3c2X1jY1lRS0lHQ0FAQEFBRERERUdGR0dCP0RHQUZITU1MUV1qY2Jr7tza08nIy8rGxsvMxMTIyMfHzc/Nz9XW19bb39rc2eDo+WtlXF9hXmBdWFtbX/Tp8ex+Z15kbmxwYVpUTkhDQ0VFRUVISEdNU1ZaXmFtfN/Vz83PzM7QzczJx8nKz87Oz8rIys7Pz9Ta19nf7H1uX19ZU1ZXVVZXXV1ea1xTTlBUTUxNTkxNS0ZHR0dMVVRYa/bf2dHOztHTzs7X3NjX3uDi4+7t9erc3+jo+Wlue+jvbl9kY1lYX3hsbmhgYnnz39PP09bY1dHU0t9pZ3poWl9paG5uX1FbYW3i1dXX0tLY2s7R2d7e2uPr7vLl5v5qXltefPt1cGZjZWdy+V1ZU1FfXFFaXFlbWF5jWlxpX2VeXmVhZGRaUk5OWF9ka3nv5+DSzMfDwsLEw8PAwMPExMnP1NbT2uTv7nt5fP5yZ1xbV05MS1FNSEpMSENCRUhLT1pkcvt68ut6+u11b2d67WhkdW1jXmltc+zn183NzMrIxcbCwMTFxMHDyMnIzNTe3N3e3drS0dba29zf8O9nWVdOUlBKTExHQUFEQ0ZCR0xOSEJGRURGTUtKTU5XXVdaYHV+4NfXz83Ix8PCvr+/v76+wsbKycjLzM7T6Hjj4+Xm4OPve3N1aV5fZV1WU1ZecGVlbGRfbHBvdnbvdF5aWVpXT1JPTEhHS1BYW2/s5+rZ1dHRzs3OysbExMbJydPT19fZ4Nve2dbb3drf6Ojd3enj4N/f9HN4bGtpdGZiXV9oY1ZWZVxTT05OT05VVVJPT1FPUV5ocvnn2NTT2M/Mzs7NztDSzcrKy8zN2PdgZm1+b3ttXltOUlNbXlpaW1VZXf3j4OX2cW536dzh1tXOzdLU09bZ3+x3b3Fr/Ozn7u3x5+Pe3dnY3tPV2NHZ3+V9Z15lc/x7Z19cYGVtcmlcV01NTEtOVFtXT0tMTFRcY2t1XFNPWWFoZW38a3Nv/ubc3Orv+/rt5uHb0szP09LPy8rGwMLExc3S29PY5Oz77vdfVE5NS0hKR0dCPT08Ojw+QURHT1BPT01WXmhrZ/f2fOfr29LU2N7p6fPi39TO2uPs4N3a1M7LyMvJycjAwMHEy9Db3djUysvP1uptWVleYVlPS0lBPT4+Pjw8PT4/QEFGRUFAPTw8P0FER0pUWE9QWmVra+ja1dLPyMfMzMnFwsC8uru8vr2+w8XDydDTz9XOzdLQ3nFfYWVgZmFPTEdCQUBAREVEP0FESU1LTEtLSEZLTU9caHdiWFZYXWbm1tXd2dHWzcvMys3Ky8rNzMXBxcjMzM7WzsvO19nOztLS09Xc4/lqV01PU09KSkhHQ0NIRkRDRkhISUlOTEVLTEtJTm3zZ15ldnJ229fmbXF27d/UycfKy8fGyczIxcPN2NHT3dzc3f1jZ3Dv/e/Y2vdkYlpLSExOTUdJUk5SU1ZXTk5Ybmlf5djhd3F96/Ld09TX39PNz9POztru9Ovf2NbMyczW29rxam7o4W5ic2xcYGVqXFx5du7s4NLV73BnW05HRUdGQkNHRUJCREI+QERJSkte+Pb859rV1c7Ix8fIxcHAwsHBxcvQ1tfa18/O2unybFdNTlBNSk1PTU1VWlZTVlpdX2Xs2+ZlX1lMRkJAQ0JCR1RXWGxzY2P64tjX18nAyczEwcXEv76+v8C+vL29vL/J0Nvf6X579/JwYWFXT0xLUVJNS1ZrWVxjWlNSXWlaTlBaU0tLS0I8ODg5ODk7PkJMT1lcXGXm1drXysTGyMLCxMG/ubm5ubm3ubm3usDGztryXV5oXE9QUE5NSk9WVlVSUU9PVmVYUVRd8WBWU1lZWFdQTklGRkVGSUZJSlN5eWhnd93T0svIx8S+v76/wL68urm4uLm6u7zAy9fg/FhQT01NSk1WVE9RWmNhe+HrbWrn519OSUpIRkVEQ0JAQ0VCQUZISElOV1VUXufb3+ff3t3XzMrFwcO/v8DAwMPEv72/xczNyMze/GZUT05PTlFQTlBTTU5TUFVgdW5bUFleXFNQTEpOXWp45+zt6Obp3uf38t/X2t/h18/P0c7T1tbLx8XCwsXFzM3K0drOys/T2drW1vZlWlBOTkxLTlZaV1pQTk1MSU5MSlBKRUdKQT5ER0dQWGFz6t7U0NPMzM/P0tXY4tnOy8nKy8nJxsjCv8XCw8jP1tzj2uD9bmVgZ2v7c1pWT0ZDQEJHS05NUk5MTlJOTlNUU09SWmNWVnn3Z3zt2s/Iwb6+wcLDxcrM09LOzMbBw8bDw8fHycnO19rd43pqbHhpYV9bYGBvdWZaT01JQT4/QD9CRkdEQkVAQ0lIQj4+QERMV1926N7YzsrFw8TFw8fLy8zLzsvJyMfGw7++w8C+xcvi6+7+fvrqe+31dX56+mtYTkpLSUJFSEVFRkpNSklPUUpVY21VSEtKSUlUY+ja1s7LzczQ0c7S0tDNzMvGxsLBwMDAv8bBvL3Gz9DvaFteavLp6+Pg3eZvZmdXTEVCQEFCPz4/Pj0/Pz0/SU9IQEBBP0BESExNXe7f1dHQ09je3OHl3M/LysnEw8C/wMS/urvDz87X5mlfXltcX27u6eZzc/tvWFFNTExHSE1NTldYTkpVavFRREtDQT1CTVFPWnfi2trb0M/R1NDQ09XPzM/MxcC/wcO8vL3H5eloV1BSV11XVVljaXJzaPx8YVZXXVhQT0tGQ0hJSkFBTUpHPzs7Ozs7QUpKTl584NHO0NPW1Nva39jS29fOzMnFxsXHw8HDwMvd43RaUFVYVVlXX2peYGvzcFpQT0xIR0hNT09bXFJJSlpaWE9IQj9AQ0dMUV1sft7Uy8nHw8LK1dPMy8rIxMbGxsLExb7AwsnZ3fBpbWBmXlRNT1lnaGVnW01IS0pJR0NDQ0FDQ0dISEtKRD89PT08PkBAP0ROVm7319HRycfJzMnGwcPKx8TEwsLAx8XJyMPRz9La4Xj1911bXGJ1ZVxcZ2BbVVdOSEhLTU1MTlRXTVBVUE5LTUxIQkVMTE5QV1lba9rTysLAvr/Avr++vLu8vb/CwcPCw8HGys7Q2Ovc2d/h/Hfyd3h9/3VeUktKR0hLSEZAPj4+PkFDQkZDRkZFRURISkpJS1VXZ+ve3tbJycjGxMW/vb/AxMnIw8jJyM7OzMjDwsTHx8nQ19TX2NTY3d3ncG9rXlhOTEtMS01QTE1NUE5OTEpMUE1IS0lHTE9TXF/83s/Jwb2/wL+/vr2+vb28wcPEycnGxMjLzdDU1dTMyc/Y2NrZ29jT1uBmW1hOTlNQTUdFQ0FGR0xRT01KSERDQUNGPz1BR0pVcPDn2tLMxsC/vbu9v8DAxMbIyM3X1MvM0M7MzNXc5O3e2NTOzdXd2dnf3Ot2ZVBNT0xPWF5eVE5ITVNbYV9cVE5NTEdITlFWVmjl2MjBvby+wcG/vr6+vsLFyc7e3NHX19/17+La09LY3eP5efjo6ev2aWFbUk5RTktGQD0+QkRHRERGRUZITFBYWE9SVFZbZf3e29rc1svHwL68vL7Cx8zQ1dXZ5ezo5d7Vz83R0NvZ09XQ0tXa6mldW15ZVVNOU1NPT05RUExHP0BER0xNUVBNTlBRV1leY23s2c7IxMDBw8bJx8C9vb6/w83W5e3g6Ozo9N7UzsnJyMzacFxba/z58mxVS0hGRkdDQkVEQkNKR0VDPzw5ODpBRkpUWk5JSlFXX2X72dTLxb++vr7G0+H05dXPztTa3ufw6dzW0s3My8fGyM3U43JSSUxTW1xvdmVUTExLSkhISUZETE9PTEdFQDs6PD5ETU9ZW1pf79LKyMTDvry4t7m8v8jYcGR79d3X1NDO1NPPyszP0trf39HQ3XBdTkE8PD9DSEtOT01CQEE/Pjw8Pj4+Q0ZEQj88ODc7QEdNVWzc0tjOx8fHyMjHysvJztfkdVtSVGvpz8rEvby9wMLJz9zuc2xjbu5kWVNOSEFDTFRkX11vYVlUTkxHRUNERUtZXE5LSkVERU1a/trXy8PDwcDCxMrO1dTOzMjJ0Nff5/196djLx8fExczM2e1jT0hCPj9CSUtGR0RDPj1DSk1NVFpUTEtLRkBCQ0JIUWH9aV5eWVpUYO/e087Jx8nLztPd6Orz7eXPyMfLztHLzNjQycXDxMjN23xnVktEQEFAQkxXU09OT1ZRUF1lW1dbW1pUVVtTTUxRXWvezcnIy8/O0djXzczQzMvKyMzMzNDPzcrLzcPAwcTLzMvS3uLU293e+3NpV05GPjw6PDs9Q0VIQkNGR0hISk5JTE9PVlVYW1hYWm3o3czHw8PHys/b7nV5aWDz49jQzMnJzcvHwsHBvr6+wcXK093rfPR99+3s7/jxcFdPTUlJRkZKT1NPTUhFR0pMT1hZXW/37N/i+fTh18/Iwb29wcbIzdHP09bY2NjNzM3IxcTGxMPDwcHCw8zW2vNfWE5JRkhHSU1OUlhVT0tHRERFQ0VGQURIR0lNUVdfce3Z19LQ0NHT09TX29fT0tbg1Nbd1c/Oy8nKx8fFw8HBxMfHycvMzM3P3efo/2dcY19ZUFddZ21dWlxaVFJPVFJVTk5MTVVXWGB+49TSycjJyMvLzNDQ1d7e3dDO1NrZ09fVzcjDwsK/wMPCxcbN0dji5e3s72hYT05LSUpKSUpLUFlNSkpKSUhIR0lLTFJXVlRWYnTx4eLa1dnPzdXY2+PydPdzbfPc1dPW2NPQzMfFxcPDw8HEyczS23plbWxjbnT27XJkXlhXW1NTXmhmZltVVFJOTldYVVpdZvft4N3e3NrX2d3c19PQ0tXT2Nzo9ezh39zV2NfQzc7Q0s/T3drZ2+n7+W9ZTktJR0NFS0tMTk9MQ0BARERGSUpLSk1QTU1KSUtMT1/t5erj2uduamVr/Prc2Nvd2dbd4efl5eXczcvOz87Q4nluevZ2fefl/Xh9c2VXUVBNTVZgX1ZSVVNLSEpPUk9OVE5NU1ZSTUxUWVpj3Nbf3dzZ3ffs3t/e393h6d3d2NjZ1NLT2tPR1tji5e51XV5eXVxSVFJRUVFOTk5OSUZDRUlFRkhGQ0JESkdMTU9PS0tLTlBUW11YV1dmcnL0+XZrZWd5/+La0dHW0MvJyczKztzk9/H89enl5enq+/bc2d75a277cFNNV2ReVUxPWV9dVk1LTE1KSUxYdWZbXejV3urf3trW3+Hr5t/n+WNjeHHr3s/Iyc7SzMvO0Nfu4eDZ5e7g6/RpY2BbVlxeYW1aUU1MSEZLSklLSkxKSUxMS01LTEtPZ335cWhpcmpYWmluZl5pbnR++OPk29fZ2dHJxsjKysvL1NbQzs3NzM7T1NTS2evs/Gpgb/Dr7PRuZGxdX1taYV1YVl1laHVlY3xwfuLa1djY4e7h4fRyb/bv8G9139vVzs7Pz83MycXGysrS19Td3+zw4ntzaWJgWFtdW1tXV1xia1pdX1VUTk1RTUtPUVFRVFxcWl5fYF5rdvHneuvxa21yc/d0b+zp4+Td19fOzMzKzMvIyMfFwsTIyszOztHW1Nzs7u/p6OLc2+Pg19fc4O1xbF5ZWWJ4aGpuYWVz9uXf2drd3eHi4vx7dGpmWVddaOfd2NLX1dbU1NPT19TZ1c7X1tDV3fT77P1vbm5maXtxbvzxal1cXFpXW1JRTkpLSUdIR0pOT09QWVtu8vD1bmdhV11fXFxeaG9s9NnVzcjExMO9vby6u7u7vLy9vb/DxcjR3Ox5eu3k397e2Nnb2Nzr8HFra1xaVVVXT0pHRkZER0pMT05XW1RVVFFOUVVaZfTe3dnX1dLQzsrJy8/OzcrIxsPJzs/Q1NjV1dLP09LT3uj2bWRbU05KT1FQUU5KR0VDQUBFSE1LTVBPU1hcVVBNTlVcVlxeWVtp9vft3NDKxMK/vr68ubm6vLy8vb2/wcfP3N7p9vzw9ujo7t3b3+PfempdXFZPTUhGQz47Ozw7Oz4/RENFS0lITEtLTExXZ3vj19fX29fP0NTZ1dTU0c7NzszKz9HX2NTQzs3Kzc3O09Xd4+RuX1hQTk5NTUpDPz4+Pj5ARUxOUFJRU1JPVFJPT1FRT05OUFRSUFVeZG7gzsjJx8O+v8G+wcXGyczR4ubua1RWW1JOVmBoYGFrdW5pcGteWVpXT0pISkI8Ojs9PD5HTVZSUE9PU1leY21wefDk3dnZ3+zw6t7a1tXU09zp7ens6vL5+Ona1NjZz9Phb/ro6HZsfun9a2BVVFVUTkhIS05OS05ZW2lubnn04+Du/W5pal5YV1VRUVZWT1NZXmX32NPX0M7OzM7R4On5WlFNTEdCRERIS0tQWFpdeN7Z1dDN0Nfh92RVTUlEQkBHS0ZFSlFZXmZnbXHdzcfFyszP19jY3fL17ntr8t7k8uHofu7q5tnR0M7SztHS1d7e6Obo5tvb5ePg/HNsbm9gYmFVT1NPVFNZaGNrfeLZ3vDs7X1yamhgV1pYWUxLTkpPU11pZXng2NjU0dXb3OPn7HBeXllST1JTV1pYV1dg6NjQyszPzs7R0trsfGZlW1BOUFFWXVxbW1de4dPU0c3IxsjHyM3V29zg7ejs++7r5ufo49/W0MvFwL+/v8DEycjL0dbX3+fvbXBgXWBjZmtlXWVraGljYFtXX15iaGppXVpSU1hTS0tOT1BRT09UUVRYWFls/+3X0c7Kzc/N09zd1Nvu+G9dU1JNTVFXZ+bX1czEwsG/wMLIztHa3/RuXVFNTlNTVllcZF9429bNysjGw8PHxMbHys7R2N/g5vr68PD/6OHa08zMysrJycbEx87W3+r9a3JgV1BJSk9RUExMTElLTkpLTEpJSk1OUFdZWGBcWmBdX15edWn4/Gnv7evp9Xl8693SzM7R0NfT0tTQ1drg6PpxX1hPS0xMTlBYYGbv4tLLzs7MzczNzdbydV9YUVFUV1hg8Ojf2tbLx8fCvr/DxMXFw8fL1ux9amZcaWxnbWBy5ePl29PT0NDT2ezycFtWTkhCPz49PDw+QkVHSk1LSEpOWWBjem5eXW10aXN0fm9eXmx0+eDq6N7h19TYz83Ozc3Ly8fKzczQ1NLW3+j0cF5ZU01LT01IR01TXPzi3drRz8/IxsXDyczT3Ol0XmBcWVdVWF5nbnvn2dLLx8LBwL/BwMTL0t5wXE1IS0lIRURERUNDSk5henPs7PDxbmdeT0tIRERDRENGSEdISUlLT1FXWmVuavPh7fX35t3d3N7v+3Bl/dvX2dre4+jh4t7SzNHR09HX4uPg29fZ3uDu+3Bq+PRrYF1dZm5wZGh8+N7Z19XZ2M/Q0s/Z6X57YFlrdV1lfW7y6uvq6Ofv7ePZ3N3p8fteV1JJRkdDQUJCPz48PEBHSU5l597Wz9fa2eP/dXhtVUlKR0pNSUtLSktOX3Di4+vY29TO39rX4uTq5OR0b15eXV1geXT97+DY1NXa1tTPyMrMyc/U1tjT197o7OLn+W1pWlJOTU1RTk1VX+7Z2NbZy8fQzMjQ3OxmXVZNSUdDQkBCR0pJTE1QZnZeZvXz4t3m92tbVlZTTE1MR0VGRUpNTU9SVHDZ08/Ozs3N0Nbc7XpscWteVVNNSE5WVVljcm5r9+Dl7Obh2tXY3N7l8O7e5u/x9Pzj0c3JysrJy8bBwMDAx83MzdfrdmdfXV1pamX8+/zp7XNnXlpYX2V0b15XVl79YVZOS0tKSklHREA+P0RHRkpSY+rb0c3Lyc3QycrW2+5qaFpST0tMTEpPX2Z38OXXzcrHw8LDx8bDx87c9mRWTElISUdIS1ZeZXJ26NfOzMfDwcTJx8bKztjZ09Tb4Nvj7uz3+d3X1tvXz9HSy8C7ur7EwsHFzthvXWVdTkQ+PT5AQ0NAPT9HT1dUVVlfZnhqW1pbX1xXUk9SVVNVTk1RV1xbZ/jZ0c7LzMvIyMfHyc/Z4+P5YlpSUldTV2Nyd23y3tbR1dPNysjKztPi6ftraWNqal1ucHLw39bVz8zHwr/CwcHIzNPb531wX1VZX2JkavDi19DNycbGyMbIyszR2N72aU9KS0lAPj07PDw6OTw/QUVJR1BfaHzj19vf4ujubv5kW19QS05OT1FUX2Vp8dvXzMrJxMLDxsLEys3U1+DtdVVTV09OTEtQXWJffOPR0M3FxMPBwMLFyMjL1NjmcGxhXmxjX2R0bGjz5NPRzszMz8vIyMnO1Nzsd2lcV1RPTElKTExMT1NbYWBu9mtecXxzXVVXTU5PSkZESktJTVFVV1dbXWNdYHH9dvPT0+Tg3+bz4+F+fnZuYVxo9+Xn6N3WzM/LyczMzc3U3eHo6u99cGtr/vp97urp3N/ZzM3NycjMzsvNzs7Q1tvg7nZqX1taW15p2tTT1NHS1c3Hy9DT5mxhXFJKREI+PDw6Oj4/P0JDQEFETFVf4NfY0s/P0NHV2+H0Z2BSTktJSUhIT1RXXF9w9OjY2+Dd4OTq8NzU3eTk9XtlZm1ZV1RQV2tfZe7g2s7JyMC8vcDAwcfKzdHxe25cXGRtXlhZX1pl8+zl1tXTzs3LycfGx8rO3fV4al9WT0dFREVNUVBSVE5OTlBWVVFMRENCQEBDRENGS0tPWVtYWFhRT1deXWJ99O/f1tXb0M7U2Oft9+32X1tYVFVne/fr6e3r597re21bWFxkbuvi4dvX1djUz8/OztLT0dPSz8nKysnJzMzL0NrpYFNSVlhZXF5fa/Xu8uzc4dvW1dbd7X70Z15bXlxOS0dEQ0NDPz5AQEJFSExXcPLh3dva18/Z5/xfV05LS0dJSEdKTldmenp8a3H87trV2N3b2dnTz8/Oztrd3ODrbmBdVlBLS1dzdeLZ29LNysnIxMbLzc7O1M/O09jl/nf9fGxhXVtbcePk08vLycfHycXFx87a325YT0tLS0tIRkRERUtOUlRVS0dKTFFPTVBWWVx+bF5xdWlpd/xaTUxVaOTnbWBdctzQzdvub3Tv+HxbT1VmcHBfUU1bfPh9cXVu9ezr5fh+6ODTy8nEw8TExcjIyszP2t/c29PO0dje3+r8enD36/Dh6eDi5d7d39za59/W2tfX19/i2uXi19/m6Ot3Z1pNSUVBPz49Ozs9PkBBRktc4N3d2tva2ufb0u9xbl1paVtbW2huYF9ufHHw693V1NXZ2djf5tjQ2Nna7vL/YVdUWlxQT1RSVGJ16trb2dLPysjFv72/v7/Avb3BytHb43v97HZrfvPq393c693b3dnTy8fJzM/Y2ehna3BgXlhUV1BNTElFRkRARE1TVmFlVmNxZ/DleV5dV09QT01KSkxLTVz1+nnt5eLp3tre2NnWzs/b9ntjV1dXXGX16vv08Ojo7vzm3t/d3NjTzs7P0tjc4+PVztDQ1dbV1drd4Pdtbunj4tnT0dHMzMvIyc7QztHZ3N3Z1t/xd/z7ZmBoZVpPTEtOWFJJRkNBQkNFSEpMTE9aYXHs6evueXXp29zpd29mbHRdX2hpX1dXVFhfbvl3cXNw8Obp6eDlfPzt3NfY2ObzblpdW1xdWFpg7t7Z19jRzcrIw7/AwcPExsrR3vJ2XFhVUVRZWFxnX2Vvfezg1MvJycnJw8LJzM7Q19rc5XVcT0lISENCQkNERUVFRktIRkdMV1xgWFZbVFZbXlxaWVtjZW9uXmd1d3j74+jm4+DY3+x3bmRbY2NdVFVkZ25rXVpWWV9ea+zycWV93dPW0tDOztLRzcnHyczR0tfh63r++mpofOvj2dbX1NvY2+ri5n14Z2ZubmNnY11eZvPn7uzwdmRaYlxcWlJQTkxISEVISElMTlhbZGx2e+t5e+x+emhcWVhRTUxNU0xKT1Zbbe7x6fP93+Df1djf5vzt5up2+mtTVFRZYV9ZXVhfaH70+O3q2tfMys3Ny8jLzszMz9rl4/h6bPzq/O/t+Ph5dfD47trV29bMx8fIyszQ29ve929cVU1EQD49Ozs8PT4+RElLVF5hbHHm2tfY2dva2O31eXT+Y1xYW19eX2pteXnk19nk8/N3ZFhUV1dYV1tfYWRjbfL7eXp06dva1c/Y3OXz49/p4t3a0c7S0s7OzdbVz9zf4urt6eLm5Oz3+fTn5eDY09DPztPQzc3P08/S1+F+a2puZGlcV1hbWVhQSEpLSkxLSEpJR0dHSEtNTFNXXHje1NbV193Z1NPU1NPY19rf7/DveGRgcG915d3b2NnZ3Nzi6PjxZ1FXVFBYVVZYWVtg6dbU2NfPzszHxcG+vsHHzdXW1dv0bXNkZGJdXl1o+Pnx39fSzc3Ny83W0c/Y1tfd2NbZ5flwbltSUU9OSEZFREVGSExPUlRdZGzv6uPd2tjl+nN8eHdgVk5JRUpNUVxcZvzm593a19LTzcvKx8nP2uDsbWRiXFtaWlxoev3i2tHT1Nfb29vb6Xf7enDv7N7Z3+Pi2dza2NTQ293Z09PW3uDp+una3d3jfe/v6Obwenrv9ezw/PZ7dndpV0pGRkZGSEpOS0xKTVVVXlNRYF9u9/pwbm5t+t/Z6u707+He2N/743Zbd/N4XldYTk5PVVheX19v7eb19uPe3Nbe29jb49nS5314W1xu4+nw3dfPzcfBwsbP0c7S2OfwX1BIQkVMS0pQXu3e3NfQ0MzIx8PEyMjIz+P6aVtdWlZOSUU+PD1AQUNLTEtPVFpbXVdPVVJefu77bXB5fm7r3Ov4bmNsaH59bmdcWlZp7vHo4+rj2t3Y1N3m+mVgXlpXT0lGSUtLUltkb/Pr8ufd1dDMx8fGwcDCxMfR4+91Z11obGdgbWt249jU1Nvc2t7vcm1rWE9OTk5VYV5ea+7j2tXU3ebw721bWVJMR0ZIQz9AQERAP0ZMUVxy7dvZ1MzLzM7T5n15X1JXXlxaYmRgcXz48OTd3uLi29zr9GddbmVgcvB9euXh493d7eze7Xpr+PpkZnTr6uTf3NfQ1djS09LR0M/Oz9Lb3dna6Xr2+nBt9+ro2dPQ0MvIycjIzNXf7WteU0c/PDo4OTs9P0JJTFRv7N7a09Xb2tbV3Ofn+3V5YWFnXk9OT1RXXXH439XT19rU19zb4/xvaVtUXmBXVlZbX3Pm1dDP1+fe09nudPv1/H7t3NnX0czJyMjKycvW4erf5W9dVFlcVE5QXv55fO7z6dfWz8jDwcjNzM7P0dLW5Optav9rWlxWUFBSVlVPTkxJTEtEPz4/P0RKUlt349rRzsbDw8PFyc3R2ujzcF5bUUpISElMUFxva2/66uXa0NDR09rc4eP1ZV1UVFJTUE5ZVljy1c3KxsTDxcbFy87P1dri5nv95+jo6nxz9Ojl3ODm5nt7+Oje3+j9dHb2393c4uXd3drd6XR5dGBiYVpbVU5MT1NUU1NZW15iafns3d7c2exsXllWU1FOTk9RXW/x8vXk2M7JxsXLztPo93JcUktISEtOUVldYVpdeuTa2tbV2NTU0NLR1+Xn6/lybW/+5+zr6N3P09DMztDR1t7k4ul0Y19cYGpufH797dzRz87O09Xa4OhoXFBKR0ZFREdHREFBR01UV1p54OPg1dLPzM3O0NHV29zg3ef7921qbmRrX1ZXVlBPUU1NTFBTV2Fjafzx6dvSzsrIzdLd4uhrWlVUT0xMT1VXWmdz/t3QycfGw8TKyszW2uF7aW5RSkhHTFBTVldj9d7Z0sjIxcfJydTN193a7fxlWFBcWk1IRElNTk9MR0VFR0lLTElKTldaU1hcYHja0dXTzsnIzNTl29TP22pqbu96VVVnb1tSVFhdWVNYW2BgWlpcXVVUXmprbu/o6fHh187KzM/U297k2dLa3+X/d251al1gYVtgfOnm7ODf6uv+a3RqXmNraWlvbWtnbHJs8d3e3+Li6fJ4d2VbWFBNS0lKS01NTVBPT1hob/Hn6Ofu4NbZ3uDoeWljWFxdWFJNUlxsfe/r693c39rS0tbT19/Y2dzuemVYWVpdXVdeXFJWV1hfXl9ndvrl2M7MzsvMz8/Q093c3d3c8e3qcF1WWVpTVV1eXmtq89/Y0dLU1NvY2+Tj4XdZW1hUT0tKSUhKSUdIT1NWYm3z6/X16uXh2NTOz9DO0dna3OHvZmlkX2NfXVxcX1pRUFRST09YZ3z2/PLo4NXPz87OysvOzczS3N7g4eLe6PtzamdnbGp4/fh98t7j8P727u3d29/h4u3y73lmXlxdY2v9793a3uXp4+jm3NnY3Nvjdm5pbWZeWlVUUFFOUFFMSkhITlBUWWH36eLe1NDR0dLNzMrM09nj7Xz9+vl2ZV9jZGJfW1lVU1VaX27s7O54Z2Roevn9bXL6+/L8+uvu6+LZ0c7MzMzMz87Pz87O0djb3t/r+nVmX1pXWVRUW1hVVVhcbPno3N/c2tjb4en1cF9ea3Bze3FiWVJTVldbW1RSUFJUU1VYXl9kfOTf2NLU2eHm4t/f3+jq7u31bHl6c2Rea/r6e/puZFxedurg2tnY2tnX2+PzemdZWmBnZm5uZ15cYWNl/+vp5N7Z19bU09HU1M7KycrK0N7w/W5na2dfWlZcZ2x2dnBsZXns8u7q9mpeY2xudHl2dGtkXldPSkdGREVJS01SXV9j8NzTzMfGyMvMztDT2uP4bWBfaG5sbl5QUVVXV1tfX2NndHz27O3z8Ojl397i3+T3+evk5Obl497j5OPs6u15b2tpeO/m3tzr/fHs5+Dd4Op6bWVhZmNdXWRr79zX1dPZ3tvW2d3g3+b2+/t3bGdeVFJPTk5NT1BOSUdKS01UXWptbWl67eDd4OXo4trY1NDR2eHb19ja3eD2c2plXFpXT1FWWmRrc/z7fm169Pn57NrZ29vd5e3tfnZvbXp77uHg3vD45tzW083Nz9Xa2t/g9GVaUlFSVV1hY11eZm78eHr0+HlqamVqa2h469/e3tvc4PB3bGJcVVFOTUxLTVBWX2RqevXo3dLOztbe4erw7OPj5uz3/Xp2cmhcWFZTU1dbZG1t8N/e4t7g5Ovq5Oz79/X+ePPt7+7n5Ofo6enr7e3t7PD+e3dsaP3ueffn6unm5ef4bWpoZHn48ODl5d7Z3eDi+m5mYmVfaHNrZWpvamlubWtkYFtXU05PTk5QUlRTVl5pbnDt7Obd4N7f5N/i4t/Z2dnX2NXR0NHU3fFva3duYGBcW1tcZmRjbmlr/PDo4dzb3N/d3fRrZWBkY19hZWRmZmRoa290dfXn3dnW1dfZ3ePp9fn2+enp9O75+urr7+3r9u/4+/X37vLw/ffv/nBdVldSUU5NS0pNUFBPVV1ZXG19++7g3tzY2tvd2tvd2tjS09LT19jW2evzeWNjZF9dWV1jX1teYWRiX19ocPXp6ebk4OPs7u/0//3t7u3s5+Ph4d/f4OLs8fN8dmliaGZlZl1bZnT459nU0dDNzM7S2OdkVFBNTE5PT1BVXWNt+Pru4eDj397o+G5dWFVVWFteYnT87urs7OTe3t3d5uTt/nz/eP/3+vHrdmxgXF9fZGNtcXL97Or6dnZfX2Npbffj3Nra2tzg2Njb1tLP09vj6fjy+2lsbml5eO7k4tzW2eLn7nRqX1tYVllWVFlhYnH+dGxnZG13+Org29Xa2tfd39/n7/B7a15cYl5cY2BdaXv88+nf3NzZ2elzYlhQTU1LS05SVFpw7erg3ePj3N/o5+nwff15eHB8+PHl3t7X0dPV1dDQ0tTZ5/hxYV5hY2Zob3N5a21xaGdsY2l6+X16+v5kX2xkYGpz9d/Vzs3Nzc/V09jf3uP0cl9WUVNZW15mam55fXx3b3j6bmlpYllUT01NTlBUWF1ibezp+vf5/e/p4dzW0NLX1tbe7/d4ZV9fYFxcXl5o++/n4N7d3+Ld4uDf5ujp8vx9d2xkX2dyb37p6+/ye2JbWlVWVFpcZ+rm5N3c3uDd2trV0NDPzs3MzM3R2ePo73tlYFtaWldeYWRkW1lUTktMTElKSktNUFVSUFdaYfzZ0M3Ly83Pz9Xh73JiY2lrbvfv5d/a19jY2eHt++70fPp8eHNwcWVdW1VVVFFUWVlYV1pZWlxcYGr+6eXc1NTa2tjc5+HZ1NLNzM3Jx8nKy87U3ej0eG1qZWRsa2x2bWFaVlhaV1pdWVxdXVxeWVVTTlBWW3d+fvV1b3RuZ2p39+nj3d3g2tvo7ef6eG9jY2Jw7eba1NLT2+D6ZVlPS0hJSUtTV1hYW1xcYG7x39TPz83N0dje6nv57+Xg39vd2tPT0NDS3OXtdnB0bmNecPXv5+x6aWNjXmBz7+ri29bY3ulsWlBNUlhiamV0dnBqa3h3+vn49PnsfmlvcGpvbGJeW1lYWWBt+ufe4OXn7PT0c2llXl1cX2htYlhTS0xNTVNbaPfl3dTX3+Dd2dvb2t3d3uLe187Ozc7R1tvZ29va3N7h5PJmXllUUlRZV1tkbHzx6/B4ZF9dYm559erj5/Ht9/vt6+Hh3tvh39rU09DN0NfobF5SS0dITlNVW2BeXF1iYmJmYmBdXFxXU1FLRkNFSk5VW2rr3tnUzs3NzM3NzdDR2NzX0M7JxsnM1d7teWtlZG70//v1cGhfVVVZWVdUV2BlYm59bm1qZ3fw49rX09Pb3tva3Nzg4+PtcXD56+Pg19TY3/FvX1ZRUFRbXl5oaWdvcHBrZWJeXGBmZWpiWldUT0xOTk9QVF1eYnf57NnV1NHR0dDPzcrJycnO0dn6Zl9aWl9q+/Lu6u3t4uDo6uxxYl9eZmRfXltfX15haGps7+Xq5d3a3eHb4PF+dGdnb/bf2tfU1dTX3eLrevXg5Ovr7/12aXZ9bmJZVFNPT1NUUlJRVFdUUlBNTU9PV2l98+vi2Nja3NrZ1tLMxsXIys3S2e9sYVpZW1xhZGJkZ2Zt9+jm9Hl8b29uZmJhXlxfXl9eXmFu+Oba1M3O0c/O1Nno9u949enq5ur2/v9oY2hmbXf36uTm3uLv5+xqXVdUU1FTWFhXXFxeX1xeZWBdZHH87ejh5uff4+rq6+je1M/Pz87P0NPd7PlvWlJYXFpdX2NgX2hsZF5dXV9ramhrZmddWl1eX2Beafvl29PQ0s/S09DY29zd39/o5uDo6Oj0+2xjY1tbYWpx7Ont4+Hj/WJgXFlXWlhWWl1fX19jXV1oZm3u2tXV19XX3NztcHr48evg3d3d29fb3+Pv+G5mbHB6cm5jXmVramNeW1tfZmJeZGFcWl5ta2ReXFxgcPbo4ebm5Nvb5u7o3+fy5N3Z19zl5+t8ZV9hX15q+uff4d/d4f9yfn38bWVhWVhTUlRVVVJXWllfduzx6Nrb19PZ3uLe29fW0tPUz87R1NTX3+v1ffTz7HhoZ1xaU09NS01PVlRSVFNXWFpld/d8dHX15d/c3tzf3trj8fn69e7s7ezm4dvg5ePs+GxkYF5fYmtnaHrz/WFbW15lbWNbYF9cYGdlX1lXWVdcaHvp4OPd0s3P2dvW19bRzs/P0dPQ09nc4erzdv/u6Oz+bHH9bl9bWFZTVVpWUVZTVFZbXWBtbWtu6d/e2Nfc2dvf8nBtdm99/2tt9e308+vq+f/8dW96c2xvamZ59vFnXmFmYWJgW15eWlxcX1lQUFJPU15ofe7x5trb3Obj1dTWzsvLy8vNz9TW3ert9nF47O5+cXX7eG1uaGVpY15jbGdnbnRpX2FiX11ibvzr5+Tb2t/m7fh5ffrw8v/58OTg5O3s6vV4bn77cm1qaG90b25hWFNPTU1MTVdaW15fYF5bWlpaaXr34t7f29vd3eLm3d3d3dzX0NLT09bX2t/h9H73+Hd4cXXu8PxuZ2ViWlxnbfjk5+rs+HVoYmdeZHnv5+Th4d3g5uXk2tzf3t/g5OHqfG17+H38cGRhZWNiY2x39/b9cmlgVk5RU1RZX1xUUlJNTE1LTFJfafzj3tzb3d3d1tPU1tfU09LS19vc2Nnb2+Dt8uru9e3l5u5zZFxXVFNRXG/45+rv+Pd2aGJeX2V65ero5efl6ujg3NfV1tjSz9DQ1dve2drh7nxeU09UUFJVV1dSU1FRVVZVV2b29Pd7bl9dWlVTUU9SW2V48u7i6Pno4NnW297e4d7d39/a3Nra4uHtfPDx9+bc2t3tbWJXVFdcYnLy7fJvcXRtcWNaXGl87d7Y2d/l5vL26uXj3tvb2tPR19zb1tTS09vrfXdta3b+a15aV1BNUVNRVVlmbGReW1dUVFFOTUpMUFNaYnN+cnb6+OnZ2dbQ0s7Ly8vOz9DY3uP4ZnJvYWh96fVqbGZYWVtYYP7w6u/r6//15/hsaGNlePbq4eDa3+nj5+zn7vPh2tbR1NXW3+Le5OTrd3Bxa2r99XheVldSVFdYXmJ1+/b693JiYl5cWVdVTk5PT1NeYVxeXGFqbPbn39XRz83MzM7T2tvf6+f7+fB0+vN8d2ZZXl9XWWj45+bl3t7g3ejw+mJdY2Rtev7u8H31+nv2fG976NvU0c7N0dPY3dzc4eTm7Ovp6vdnXVpTUVFSVFRZYF9jaWNfX1hUVVdUT05TWV1rffTo6u7o7ejh3tfP1NHO0tTY29zj6/f9cHVxY2NcXmNdXFhXV1ljee/56ODj3t3a3OH3YWRsfu3l4e337e76b3twcenc1NLNzdTY29jY19x8e310a2NfWFNSUlFPU1hcYGRnbG53bWBgX15dVk9QVltbXGdz/v1+++zm4dbU1NDOz9DW2dfZ2t7xdvnq9Gpham1nbmheYFxaYWJyfXvy7Pnr29rle2tsb/Xofm3+c21ybGpraG/4+tzR0dPW1dXX19TY6/Dt6+xraWleXFhRU1dRT1RWX2Jja2JfYF5ZVVNOT1NWVk1XZ2Jp/ubj3tnTz9LNzc7O0tXSz9Xf397g5+75ZGp5cHxwaGNeWFVZWmlvam9u89/i7/35/Pb36+x89uvt59/p7+by+end293g2tvf19jd3t/i6H1sa1pVWU9PWVRSVVVcXWZ6cGFsZ11lXlhXU1ZVTk9SUFRcZP7j5+Hb3NXT0NDV29rb3NTY3tjZ2Nvh4ux3eXxsfvJwbWxna2z38m1pcXf5493k5ePe83HzfG1maXVsdG5saWz26dzY19fY0tHU1NbX29vn9vF4aF1YWVdUUlVVVVhYXVdQUU9PTk9RUFFUV09QVVVaXnPu6dnY2tXPzc/OztLX2dfa3Nve4+Ph6ft0fGlfZ25yb25lX2RkYGNsamv15N3X1tLT19vl7vn9enz2fP3+c2xx6ufp49ve5d3l5N/j4fDr6n1ma25bWlhYX1pcXl9qY1hYW1VRVVVaXFhgW1pZUE9RV1lmcXzm697V09HR1Nfb4+Ll6uDe39ja2Nfg6+zyd3BobfpzcHNta2BcXF1idvXr3Nnb2dve5XZpbHZ3cG9ubmtu7+DY2dzX09XT19jX2dvZ09fd6np1aFxVVFhVU1ZcWldTT05OTU5PTlFQTU9ZU09RVFlfbe7u39rZ0czLy87R1dvi3d3j3d3Z1tTU2uvxfGhnbmR5/WlqYVteW1ZaZ3Lr4t3T2dfW3uLofHrv9vjre/bzbffm39vh5d7d3Nve39jc2tbd4exwbmVbWFpYV1lWWlxeW1RRV1dWWFlVWFpWVVJSVFBPUlddbHNu7tvW0M3N1t3f4eDc1tbTz8/P0dTV42tmc2lnbW1wZmJoYF1bWWN09+Pc3dbV3uDi7fL8bGlpd3tkaHrx6ePa3+Lk29nc1tbW1NPS19XY3vBrZmRtZVhWU1RWVFJOTkxNUFBQTVBRTU5NVlhSU1NYXnpxcebf0s7My8/Q09rb1tTU0NTW1NnX2/RpWlhaWVlZWllbWVxgXGl+797Y087Mzs/T2tne6e93dXxpaHVz7t/k4+Tx7+fl4ufn4unw7u7p7XNwbWJrfG1mZGZteGloYl1cW15cWFlYUE5PTlRXUk5NUVVVWF1u+efZ2NbV2ODe297b09LS1NXT1tnh+2plXl1dXWVoZWRgZ2997NvZ2tPQz9XW1t/s6fVkXl1SVFhaavDh3uPc297b1NbZ2NfS1tza4O/p73R8+Hr4a19fX2BZUVJUUVVWUVBNTE1KS09PUlpVUFNVWVxjfN/Szc7PztDY1tjZ1tLR09jZ3OPq8WxfYV5ZVFVZXF5dWVtiav7k3dbW0s/T0s/S1t/q+2laV1VWX2fu3N3a3eXd3N3b3OLe5e/s8PX4a218cHnx/XJtZ3Z9cnhlXmVfXFtcVVFPTE5QVFdPTktITFBSWWj03trX1NTV1tra2NbT09fY397Y5Pnu/Xn6aWVfX2NcWl9laPzn39nb1dTa2tze2dt3ZV9cWlNTWV9u+Ofi2dvZ1dfT0dPR097g5+3n7Xj+8+7o7vf9b2heXV5cWF1dVlVQUlFMTE1OT1JRTkxKTExNVl5u7OLb2NjU0tPRz9PPztDS19Pa4uDufH34bmNdYGxfYGlhYWpx8ujf3Nza19ja1Njg52xtdGZjYmx4+/rk3t/Z3N3W2NvZ4uz2Zv31am/4bvbqevF5e/FnaPL8bv9rZ21bXFZOUU9MUE5LTUxJS0pJTU1RW1lt7ezZ1tfOzM3N0NfU2dvZ3N7d4efh6+zucvP/bevs8Ofu+Ovj4eLk493m5uX8fGdeZmBeZmprdWxy6eHa1tHPzs7Q09rd5enycW54dv/++vL59XpsbmhfX2BcXFdWVlBNTU9OTktKTEtOTk1SVVZXVlhqb/vb1dXOzczM1NXX29bX39vc5eTt//VvenxlZfb0++nx49zm3t/f2N3a19ri5+jp7HNmeHd5altod3b46NzT1Nze5e38Z3P5eGRv6ezwe/Xp6uDt7t3k83v67vhvY11WT09MS0pJR0RJTEpLTE1PTk1OVl1le93SzczNz9DS2tvZ2NTX29XU297p7uTn8X3q5PDz4Njb29zo3uD4/334eWRo/PtsZmdiYF9eXGnq7N/PzM3P0djZ3Ozo5OLq9u3k5fR1dnh6fvT8eXZkY25ramVbUU9PS0tLSUdFSUtMUE9SUFJWWl5q7urf1tPQ0NHW3N7d3+De3Ojn5+rldnr1//F08O3o4N7X08/Q1tLc6+Dl6+js8+bf9Od9XWZhW1lidvLl5Nrb29rq8XBr9ern5N7g2OJw7Xh3/f56593v5+R+5uT0cV5TTE9NSUlIR0dJR0dKSkxJSU1YX2f87d7T0dHQ0N7e2dvZ3tja1dnt4efs3fN579/n5tno387R19bb8P93bGBbaGJueXPg/nT4W1td7mj52evVztXQ3uDpeXn53vTl197l9/hoYWpcZXvzePn+c+z1e3paXlRUS0tMQ0lKRkpISkxNTEpaV17+fOva0NXW0t3c2Nnh4ODh3efw/Gb1a2L78d7i3+Dq3NXPz83Q2dLZ3+t1b2zzbXnn7eB9XmxybGn28OvY29XX3t3i93B66ufp3Nnn7Ol7bWdpYWzn9ndw3uJw5O16dWdWT1RKRUZGSEdFRURGRERGSk9SWm7b1trV29ba4d/R0N7ZztHW2trvbfT2buTV3Oba2N3bztLbztLe3tB8W/lbU3BsY/DtW3n7UXHjZefT3NPO3NXW9N3aeOXX6+Te3N9ubvdcW/FfX+j8Y2jm7Gxs6W5Y811LT09CQFBKQUtMRUpKRVBcTmrdbdzO79/V9+jY3tTQ6tnP5N/m9/ljbep65M3i79fd39jLzt7WydfqzeBaevFUWORxWWhmUFdsaeTdb93O893OcPfVcnjW6NfO+t/Ua3Hrbm1hftTtedBtX9boZmrj6FtZX0xGTEVBRklGQkhLPkVPSlRlb/fn1eJ94OFn49je1s/L1dfN5H3Sdlfg3+Xc1dPt+c7cZ8zM/NfH4Wjf31hY7mRa6OJTVf1lUPjT+HbLz2jVzG5mz95b3sri3s3kX+HsV1zsXmHf72zz53Np+3lZdN9gWGpURE1RQUFWTz5LW0FAXlpEYthpaM3fV+3PXVrL0GzOwt7eyOVf3dtV/c3h7czR6c3K5trH1t3Ly9/a1mVh4/pSfNpWUHZbTXnwWH7M72zR4ltr3F1r0N35zMjn39L5X+X4WerWbmbY6F7o215i32NX4OdKWHFHQlpQP0xYPj1SRT1SbkhT0vJf1NdVcMxyX8fKfsvA+HfJ4VDd0Vv4w9ptx8j9y8Lw3sLW/svMY+vPYVTa6k7r0E5M1G9L381ce8LaUs/SSl/NZlPIz13MyFp3yHZM1uNO4NBQWdBfSdLsRHbYSVfVTkjfUT1cXTxMbz07Z0Y6YnY/XcpTVcjtStbNTvbC52vBz07Wx1BcyWBOyM5Uz7953L3VcL/HacjAZt7CYVfLdErV2kVc1k1SzWpOzM1Y3spTWNFfS9rVWNzHe2nI2l3Q2E72yl9Xy/pM1dlIZdVOUNRgSdvnRlNvQkVlSjxNSjlIWT9D7F9J4dtN881eW8vXZMjHYNXGbGPK+EzV1VffynHfwdB6ycpxzsT838LbZszaTtzSUVzXV0vc6Et7z19ky+xQ2uBNa9hfcMjQa9TJ/uvJ6V/R017jzF9k0G1OdHBLWOFbUdz0T2xtRUxtRkBVTD5JVUBBWFBKdPJRatlqadfcbc7McufM8V/X4lPn0Vpjy+Rdy8Z13MTi9sfO8s3E4uDJ5lzV1lZl21pQ5HRO9dlabdB6UuLoUWrVYGjI1mrPy27ozP1vzdRe3sxeXNRvS19qSVjjWVPf9VFo8UxOcko/UVA+SFY+P1NNRmPsTVvUblrQz2jWyXr60Oda6+xPZdBuWdDPXdfIcunF0XPLw+LbwtBuz81l8MtwU+HcUl3kW1Xc5k/szlRV0HxN385b9srmYM3NVO3LfPnG2FvSzFlo1VhL7XhLZNVXVtB2SG3kTEppTD1MXD89T0c8TmlETNxtTd/RY97C4GPMzlLw0FNO0+FX2c1m9MTRW9XF59/Cz23Jw37kxORizc5RadJaUNn4SG3OU1XSe1Xb2VBo0Xxf0M5j48Z8WdXfV9TG7e/J0V/mzlVP1HdGaddLTtVqRWbcTUX1VTtOdz08X0Y5TGZCSNh0S+DMWWLC1lrNyGdrznJH6c9RXMjkT8zHX+XB12jFxGnYvtpgxsli28D4UM/XTWnOWUbf2Uhby/xR19FNXsj1TtDJWGLH6kzezlH3xORdx8VddcZrTt7nRlXRVknc3Eta0lpEY1w+RWRDOUxROj9kTkFu3UxazuhXzslk58PnVNXcSVjQblPPy2bhwdv7xMR63MPY7cfK793F1fzL0Fx41VtQ6mVKat5XYM3bW93RU1rP/1TVzmjqy+lU5eBYadHmbMzNcODP/lXzYEhZ81RP4m1Mft9SUfFNQVJSPD5MPjpOWEZW41xR3t1Z6srjX9PLZPjRXUn77ktkz31dzMr0zsDY7MLJ5se+1t3G1OTExfziy/tV53RGU3tSVtTXYtvTWFrV9VPf0lxyythg2NtTZtH8Y8zNd9jK+XLR7Uth21VV23VOaOtQad5VR1pRPT5JPTtJSEFVdUxT5GFR6Nlt58vzYM/RU13aV03d5FP0yOjwxsnozcLZ2sHK5szI+/TH037Q2FZl31NEWVZGXdljZsrRWunQbGPU6Fnl02v1zPlZ3dpa+M/vds3TYeXOfl/Ze038405Q71xKa/ZNU3tOP0xKOD5QQ0BcXEpj2GFb0dlc6tBkas3sUu7dU1zbfVXl22rbxuDsxczfxb7OzL7Qd8/L5d3J5GPQ401l+EtGdXpOa9htcNPfWdrMYFnedVLZ209nz2tN2NRa4crjes3XW9vOXF/R4VT65kpQ3FhFbmZDS1xAO0tEOkhWPUb0Ukva3lrszP9b1d9c4+BTZc7tVuPSY/jH13jIyPnPvs/WvsTfy8hi7cXlVNLVX/XYWVD1XE1+4FhnzNpszcj55sj+U8/SWfPLflvL1FHnyWFqxd9P19hSbdVlVNn8TG1xSU7fT0NsYEFQXD8+Wkw6SGRDRut1VtXOauXLeFvV+FF09E1a119L5OFe7st+Z83XbMnB0867x3jHxm3oyu1eztFq3c9cWttfS3TwTHfO+3zLz17q1Fpf1PRX2Nhd7sz4WNXXZ+PSambV5VXt1V9z3WNZ7WFMZmZHSmBPQFBQPUZVPzxTUUFU32Ba1N9e2c1q8cvsV93cW+/fW2vN4GjOzl7uy+B3x8fqy8Hl78bQWfvTXmrS613a4FNv32RQ8f1f0tPu1cpxZs7lac/NbenG3GDQ0lhv0PxS5vFOXndUUO9wTGfwTlbvW0xvWklcZklGXk9DU05ATGdKS9juUfDVWmXO317Y1VVg3VtNbWZQe9tl/9bpYtjS89XH2NbByNrDxO7cyN91ztFs6Mv8YM/oUXHfWmDY+13t6Vh2z+Rjzcn+3MnicMvbW9rOZF7YbU1470xY5k5L3nJOZOpYV/5RS1dWQUhZR0BQTj9LZU1K5WBGdtVaaMnZasrFZfTJYE3a31XjzGR40utl09Vi383s5sbL6NHM7N/J31zX1Vv9zupx1e9O6M5bXtH1UufdX9rL5+HDyeHMzH17zt9b3NdRU+dRRmdZRE5kSk3tYUrs2U9h1mJMcl1GWWZJSWNNQ15zS1HqVEvu6lXmyeb2ys9q5eZOW9tbUtfaTnbOa2PL4k/axu7hwc3bxMnhysf/8crbZ9XOZG7XXVTbdUls7ktS5V9V1c1r2L7V/MjOXNvG93bO+1N86kxV90pFZl1HX+pMZdhdWdl3SFxrSUpkST5WVz1MZkdLdE5J2/xO4Mfd4sDL+M7WV/nNX17P+VHf11d2zmlT291Z38jr4MLV3MTNXtnKYfnJ41fY20/qzltV1PZN5tZZ98jg5r/F3c3Hc+/I3VzV305a5ktH/E49UFg/S/tNTN7uVeDRVF7WW03nakNUcENKe01Ld2FIYeFUZNVtdcbPYNHNTmfSU07Z/EZx0lJoznRS3d5X2sbu173K0b7A3MzF4NjF3W3O3Uxu01FS2lRF6exKX89jZ8jW5cPMaNPKY97FeWDK+Eve4UZT90JE7VJC7/hKe9dOVtdUR+deQV5qPkZkQD9vTz9w7Eduz1tfxtJtw8Nu1cReV870UN3jTnfdUV3bV03kd1Hd0WjZwd3jxM57y9DxyMp6zs5Y8MpfWcv0TdTWTevMZuzD2d7A0W7O2Vbf01311VVO+FZDW1Q/TVdAT99OTdJ3TtbnUNvWTm3UTE7oSkV9V0Fv80Rs3Udfzllow9twxuhR03lE8eVIbtFMYMxYVNJoUs3aXcbHc8nA6M7AeuTA+WXE3VnP50vZ2Erp10lm0U1XyGNWw9NtwsZi0MlP+MVk8MNoU89ZQ+tXPm5qP2zdR2XQTFTQUErYXEH8aD1V/D1H60RF3FFFznFFzdlMyr5ozLxeeMVTT8xoUM5uSc/tRdriQ/zQS+bBXPS+5HC/1VbF0kjMyFXSxFV7v25ev9lSzOhOzM1PzL9e0L5s38BUV8hjVsZtSdZoPWliO1leOlDoQk7NUEzMVkXNZEDa7D9p2z9Y1UZU1ExO0VJH0V9IzttOycVT18xJXtZJVcxNSM1cScjrSs7PTtjDYNC+9NO71+TA3FXH4U7H0UzSz0zZy03lyExby05MxnROwdJXxchU2MhN4sNWd8VcT89aRdxdQOtiP2PqR1zjTlf3Rkl2S0ptUERrXUNb501a3lVZ12pX1t5ozMvsycxZ2tJNdNdVYNpWWthZWdlaU9znWNzSa9rK6OvO7XHZ+mvZ3PPX3O/Pz93T0und2uXh3ubqz9Tbz9Lp3/VbaeZZaOdbZuFiUWVVSltXT1hUUV5xWlv4XVpjU1hfWlliW1JpYWPybWD09V9s71505v3p0tf23fZTaWBVZmxbYuz1e+5u7tje5drW4dzT2dnW4t7X29/d4N7f7vXx5+Hl6uLg6N7e+ezn6+Da297W0Ob05eft3+dy6OR3+ftfW2VqYmNaU1RVTUlKS05QTlJYVFVUTlFTUVVmaWBv6N/r69vf2dTY2tXQ3O3p9mZnemFfd3Jpc2xdYGlv+u/78Onq/Xh3aHHr3trU0tLT2NzT1c7W2t7d1t7U0tbV0s/R0Nbg3uZrb3lobWdgXGdzX1leVlReX2RfWlhXT01NS1JZWlxkfv1nXlxdXVtq9HFseuz97fxw69/l8uXe+GtgWV1jXV5kZWdudvvz/unj2drX397X53X1/G/33trYz83U09vs8enp5+fwe+vqdd7p6dvT09XR49zkeunq2tr54Hf67GDreV/9enhxbWFPUEpEQEFHSU1OT2xdVV9TT1FVYGzrbvDg39fp19HZzN/a2fPgZWh5Z254emxfamhvZ2Vt7uN8eellX2tZU1Zbae3c2NDQzcnb1dDTy9bP2NrP5NrQ3NnUz9HX3O7o9V9ibeRw+vJPbvZcVGVtXXD5XWhmV09KS0lGTU9SX11rYFtaZVlbffr67drccePg/fLc5u/h32RjYVRYVGFlXWljYWhu8mz15tPa497j7HdreV1jdWt83dba18/a39vW1tXS19nZ2unk8ujj3+ra0+Xq5X1u6Nvn3dbnb+jhcHfn5O/l7m1fW1NKRUNDREFISUxNTk5JTFBPUGrt9d7P1t7T0dfTztDQz9Te6X5lYWZmYGxlZ2JlY1tqbG7j8WX6aVlYYldQWWRb6tzi2dHSz8nMycHJx8XJzMvO19ni3dfa4uXpenBhaHZqffRzZ2hrVVhpY1375/1q+mBPWVVKTU1NT1RXXVVLUVRNT1lg/eDb2dbV0tXi39rd4eZ8dnJoXVhVVFthUmFka2v16/feztfw4Pht9W9nXVh83Px25OHf4+T+3tDTz8/OytLR1drrd+Hv7+Tz/e7n9Xje1+Xr3ujc9mHzdv7c7/be7GtdWk9ISENCRkVLSkhGRkhARUhEU2zu1c7MzMXGzc3Kzs3U6uTc4+tpVltaWFVZVk1WXVxtdPPk9ndcZGBfXUtNYF9sdvLf2djd0M3My8bJxcDJx8TO39TW9Oh4aW1t/Gtkbfh7ZGjuZVhnV1ZqcH3p3+bp+W1qZ01JUkxMV1RITlJGR0tNTlBfcujUyszRz8zW2s/YZXjubF9hZFBRUE5XVGD1YF783eTZztjp2933bVxZWlZoYGDs4uns5NnYzczJycvIzMzKztbX3uBkYnpob/Jq+eLl/e/m+/l8Z25sXvHg493R4PjfWkhJS0ZBTExHT0dGSEBIQUVUU3rwz8nLwsTDyMzR3N3b7Ozuc/xeXl1PU1hOV1tdXHre6drW7OD1V1lSUk9bVVfra+va29bbyM3Pvcy/vdC7zMq+Z71L5eNF2UfbSmxc9mXqYW1kT+JJ403VaeLP68v232ZRXExNTktTTFNSU01OSkhQTFRfeefczdLVxt/S2FrQWfTfTc9C41hN+kfkS+la5HbT38nU0MnqzlPZSF1XTGNMZlxj6mrq3tnN1MnMysrEycjGz83c52xie1pc+lTe8WfLVNh3YM5DylTq2n3Kacz62VJqR1pAUk5ETT/yO1VEQU1AVkhS7VXU0tXHycXKydDS293j6X5naWJeT1VOXk9Xa1fsbN3Sbt/NTd3wQdBDSNs71kpQwT/C/t+6YbbVwcLMuNLAyMTNzfzTXXRZU11J61LbW2xcaGhfaV/pZd3q6e3X1vj5ZF5hSFthPHRQQdg8UGk8zjxW3Ty/R9HKS7hav/7myE7WV+dYcO7mTORL+V5O0UvJY8jfzdXjy2XOT3FmSOU/U1JE3U1f6VnQ4evE78rD97vXz73cxMtsx+tQw0PY3Ee6R9vPRL5Hb8w9vE/pxz++RtrgP8Q8Y1Q61zRXUjnWNN9FS9490kne5XLL6sfRxs/MyfPLaNvjXt3w8W5VXV5LcFZZ5lfa+VrbalzVROJvPck7bGY6yEB9zkO6Yc28VLPtxLpXs12+vE2zSMnbPL050l1FwTrJTVLXP9BK8PZs1VzX7c9u1P353UrfQ11RQuM9XFBA2jz3Wz/IPc9sSrxJvejrv1HJVt57X9hn02TaWuBVV+tN1VXZ2lfKU83eTsdE3Vc/yTj3UD7KOctbYcZWvvbLzc7H4MXPwNbC0NjMWsxV5Oxgxk7P5k/IQNNpRMI/x29Jvj/BWl3JQM5HW04/VD1QQEpJUUlOX05rTdddd9N8v+LIx3fFavfJS87aUL9L3NlC10hVeUpc3VhY1VDt8U/eXkzfT0/bQuR4RcRR58ZTvdbmumO9wl2z8MK+Y7tj/M9jctxfZs5O8OdC+VFD2kZRykPT2Uq8UfC9QMfhSL078941xThQ5TLIOlrhN8RBatNDvFLKyVC8QcjlRbs+xOVLu0XP50nOTFfRTtrcSsJM7c4/w0Np1DvBQV/gPMY+7OhFvUDG0k+1Rr3Fc7Nfvb93vufexF7Kyk+9TuPPO8A/T9k5v0FeyDzAQXrKO7w+1NA8uzfbTDvTMN0+SuI7ykLd5E+9Tb/R7LdKumvgwkK6Ss3YT8I+0FhW2DzOR1rVQMQ/4P0/yT7LV1rMTcZN4vdY2UrQZtPaX79bxsl7t/fAwGi7fc/MZcr93XLebFnxPuhLQ+A64VBGxUbazkrEbGvDcN7GcvXURXFnOP1DPuo6VHc67mBOyVfkxVvZzEzL3E6/WW3ER8/pSMtNW8hO9NZPytpJxWBRxkVwy0bOz0LGWj/APU/KOMzcQLtIbrhEwMNYtNrhtWvQu1W/xEi7+k2+PW7MNMlNPL875845vVpGuz/Vyzy4WlC8Oc9hNsk2UmU4zz9ob0rITMfc3b1Yu+5ku0XC3Uy4RenLPMNIRMM63GlBvT/a2EHDQeX8Q8tG0G1bwkTNV1THPchiZ8FDxNZdwG7Nwv3Dy/DH39rP7dfy4lxo8UJsRktgOuRIVd1BxGpbv13Myl+/3P/IYPt3TVNMTUFUSz11P1tfQMpM39JTvFP7x0zO9VfKa2fR+2DZYFrfVWvZdH3T0GHQ2lbSYEzWakbYakjaWkvcTkrcUU3UXGDLYdjG7cnEzszFzM/FzNnC01u+503OTkh2QEThQ0nPSlXFT9jCSMTTRL9yS8dDUs06WWY76z9C1D5l3EXGfG+5bM+7VMzMTMFwU8NWds9F8N87810/0kdaxD/XyELEX1DGPuzQQM9kVMdH2tpKykxxzknLcurHWsHS1MR8vu3dwl3E8m3FTuvdReFGRXg6YlRH1knW2vXG/MLQ88FeyuxTxkpfez9+RD9nOVBRP9pG/NNMx/rex1nL8uPPVsp73txYyFhk0k3q+VXN/VzJ4mjO+2/aU2ToTVX7UmN0THpcTG9SYldVz21qydjaxtbMvuzNvv3JwWzFy1vU3VNheEpLYEZMe0ZPzmxXxtFby9dU0exM0fRH4GhCVlU9UlE9Z3ZH4spe0sJ81cZye8ReYcZfWMpeWM9VT9ZaR9thS9ppTs/pVM7kTubcSWrRS+3TT97PSmbPTE3LUFm/U/i9Yt+7Z/G7Vdu8Ss/FQdHcQtFXQthJQNZFS9I/4NJLv9TgvGrIxU7I71zLS+76RGpER0o+XEJP8UfWXlzDUNTTTsJsXsVY689W3s1f8cldesZX7cpT6M5ebchzTc1XR9xLTt5PaOhQ/FNG40hHz05uzGTP2e/H583Kb8DN6b7a0Ml+0e/+3VraVU7WRmZgRNtKbc1PyuNTxldazlJ5z1xh3UlL7j5Hd0FY6FZn0N1gy9NSzc9e3ddu++/faGrbWm7XWW9l9GZI115JyOxSzfBN7fVMYNFeXMXnWMrdSN7dQ+vITenCV2S+eVK+8U28702+6kvC3UnL6knLfErXZ0j1akjy6VbP3XjM4+DgZdL6ZcluVeBOTFBGS0dTWElofEv42FJl0XRmzeJVz9tQzcxO08Ba6b9rc79iTsV4SsTeQczoPNp4PN/hQtPNROHbRWt1SXPeV+7YXdPeXsps6cVfzcpwxdf2wuFsx+lizWFWz1RP5E1O4FlV2mZU3XZV3fdY1f7/01DpbkTpTEvrSmLkTH3QUnXPUefNUuTQT+zPXOXNYubLe+fObPHRVm79VNNWVtVJb/dH8GVL391dy9BYzN1N2PRQ1uZP5OFX3d9W495b1NZj0Oz1ylvRzVzM4GbVeGXYaFHiW1jYWP3VUOrWVnHaa2/O7mvQ/lH7bEdU70pM3VRJ7WVNbu9cYd71XOHcet3d1Nv6zdltz87r3815dNhdWflaR1xkQ1d0SWPWZXHQ8F7/6VxX3PhT7NxrV+zaU23QenPQz+7PxNvgy9Bf2clNZ8laU9r0TW3ySl3qSk/hUUrfa07b1F/rzvFt5G5dX2hlWGjeaE/a6kLe0Uhl0WJVzNRa1NNc2s1UactiV8/lW+LnUltpVlBVWE9PWf9nesf1Zb7XUNHOVV3NXU7N7Erc5kVvz0l1xVX8v9z5xd5XzdhH2cpI9MVNXsZPV8lLT8pQS8pWR81kVcplYMl3V9X7TOXuS+d3Rdr8P/bzP3ffR+POUNLAW/i+XVfCbU7F01PIy03SyEVfzEpJ21FA/l5E2ttHzstL0s1G+8tKaMtLcMlKXsxKU9hTaMft27rN473cYMVfS89bTspwS8/sQ+jgQmjdQFvZQlTHVE3F3E3Hy0/O20zP3UrT1Unf0Udv10Fe0kJlvldywW1p0Fdd2k5PzF5Qx3xOxvhFzOZD2epBe+VI7ttXzsxZysJK5MNKYsJNWMlZTNNjQXd2PmbMTt+/YNm+VnnETk3HZk3E9E3HYUrL9UbN30bO7UnN7UrL1kvPyknxzUpi0U5f2ElTz05J0U5A3FZKyttXwctQxdBMz9xKzs9SycxK2MxJ7dFKd9tCZdhBVddPVtdqWNNlTtBrTc3YTNnLT+7OSWrbRGfPVuzB2+a/0WjI7ErY6UfY0Edn2khd2UZp1kJkz0dTylFRxmhev2JawWBLxNZMzNVLz85H3M4+W8xBTsdVUsX1UMf8Rs59P97SSHvNSWjHTVrCVkzC9EbN4EXTz0rPyEzWxEpmwFRRxVhNxlxJyFs92vc+dNRIeMZV5r9bYMJfS8jcSs7SRNzQQ+HISfnDXVnG6k7N3krL1UjOy0N7x0xTyk9MzVxKzG1B1+c9981DbsRR7cFUbsJhT8bSS8zLR9XLSOrJRl7GTkvJWEPRdkXS3UTbzUN4xUldwVFUwWlcw29KzuZB38tI88Ra+sFzbMRvTsneRNnOQVnPRE3RSEzJVkjG40jLzkzQylDTxUzow0lZxFhVyPxUx+lLzeFA3Nc+Z81EXctMVstQTMd4RcrVQtnMROvHRnLESV/AT0nFb0nF3ErD2kTKzj7ayEJ4w0puwE1XwUdGxU0/ymZByt9CzdFCzsVG2L9MZsNMT8VNTMBjScLbR8fMSMvDR9LCQ+HCQVnFRkvIT0rGX0jF7UDN1j7kzj7tykF2xkFevlNVu+pUvt9Jw9pCyNI/08xB7c1CXMhIVsRNSsNXQMxsQ8fhRsfRSMnKR+bJS17JTFTEVU7DWkXF9kfJ00vNzkTf0j1fzT9Mxk5QwlJOvW5WvNpOxc5J1M5F3MpH6sVNa75eXMNlT8tfRdlcP+hxPHHiQG/NRu+/UWXAWFLDeFfF+E7I40fU1knZx1L5x1pbzlFLz19HzdtJ08xL5M1HZ8xFTc9KT8hZSMtqRsrfS8jLTsrXR8zyQcheRMVYWcJN8b9JyMJHv9RFwklLwT7nyjrEaEa6SHW9PcbZPbtFT7844OE6v0xMvT/KxEK89Em9SFu/ROLFRP3ZQuzPSd7NSn7QS1bbUFTSa1fM2V3VzlZxym1Q2+5LatVZVdd8S2TdUFfO1FVvzGdI7NNKRtDdRGfD/0nJvWJZvcJLW8J1P/S/ZEXTxFNHzcVTTsjLSUbO0ElG2OI/RdjiQErLzE1Vw8ZRUMnJVVLHw1pI5cthTd7F8kppzXFFVtLiSVDPzlpQ2M1mTe7Lc0hP2utKT9jQU0vw0GhO4cbaVmXQ2lFO7dZnU3LW5lh2zcz2aNLM8VFs3nZUW97dXlnw23ti587W/3ne2f1edOZnUVZrbFdZ5djvbOjZ4mBf8uv3b/3kdFlb8u1rXXDmaVVd8uZrY9/T6PTe1933+t/deGZnd3ZbWWh+allZZGtaaPr2fGdtdGpaW2pudGF26/Xs4NXQ19jT1uXs6PDw+f3u9e7+fu3n5ebj5Od7avj+bFtbYFpVU1xpZmp17PL34+Pr7Ojd3eLr6fJsbvN8bXL7dWpuen79fnxtZfvueHfz6Ot3e3d0a2toYmFfY2tia2x78OnsfX38cGVeYGJydW51/Pjx4d/d3+Pf5Orp5u798Phxfu/8c3vt4N7c2tne3d3f6nx1YFpaW11famlycHz0/Xt7cmlyfXf9bGpyaWpufPL6cHD8ffvp6PDz7+Tl6OLi5Ozn5fhwevFyYm1uZlxcYGBYXm1kWl1lYVtbW2RjY2lqbnr17ePc1NHQ0tbZ3uHg3e9t7ubvfu7q5N/f3N7g5ebr9v9tX1hXWFJZX2pjXWt+dnF17O3t4d7k7uvyeHZu/vP47O/yevjr7nJrbmpmc3B8+vn0+3Jw7vV4bW1vaml0cXFrcnRuZWVkXV9rXVxncGpjZnP3/vPl29zc2dbd7erucWZt//T06eju59zW3N/X1dXc2Nff+G5uYFpZZmZbXGNmaXF1aG1wfW1vdWxhYWBob3rs6Onu7+vo5nf77/vz7ejp4eHm6vTudHr9eXBsbHX+aF1nZmFWVFdST1NVWFZeaWVfZW1iae/t4dfOzc/P0tXa3u5ybXjl4OXh29fZ2t7c2+Po5+3w7v5oXVlVVl1fWltaXm5uZvvf4ern5uLy/n5ybnrv6Onp6/T97fxoanBybGpu+v52/f5tcXJzbm18enV8+ntvfnn0b2BdWVdXVlhcYF9pZ2BkaGZqceba3trS2uXq5fBsZHzx79/Z2NXRz8/T1c/W2djX2ubr7mxZV1xZVVNVWVhYYl9kd//+9Hp3bWRkaGp+9Onk6/Tp5PtxfO7r7d/b4+zh4O779PxqXmpoYGBsdGVeZXhnXWZaUU9OUVFPVWFhYGh2dWls7uro2M3N0NPU1d7u6vP66N/d39vT0Nnc1Nrm59/geml9+19bYF5bWV5aVlxjW1xq8erj3dna7Pv49/p88uTi/nry+m5oamhnffD5fPv6dGxve3xnbv9qXmJ8/HB49+328ev3bGhmVU5TWFdXZGVcW2hzZWd2+vHk29vf4+j6/H3u3tfW2NLSz8zMztbY1dPb3+Ln/2hobmpmbWFVVVlfWFhYW1pddvZ9//9kZ25+6ezy7fT57eHkaHh5bu7e39rn9ed1aXhw7v9nYlteXmJlXGRtem9ncGNbV1JTVVxbYGBiYl519PXz/ObY29rX0Nb2ceri69zR3t7Xz9ba19DY497W4vV6bWZXVl1xbV9iaWtaXWltY2d5/frs3et689zn7d/e6Hj15WtebHhiWmX59nt073hhYGB5eXru7Xl76l5m8X7lam/f5Ht1+GhZU1tjWlRZamZOWG1iZVxu5u/b399oV/l67NDM2NXQzdHVzsjS1s3M0NnV6Gx9XWxqV15hV1VTWldVVWxhU05ffWJccHtYcNnedPLZ0N5qfnpzcOPc+dfc4c1PXNLhVlzY3+DjVk9rZFpWXmXyalvwbVRTa2VcTmnpbWhXWHd77f5kb+ng6+za2//26dbS8uDQ293Mzc7S19Xi6dnab1z5fPpbXe9tXmx1919eam5pYW73eG9sfnhg/eh4a+bddflz/vxaZPd2YeB2Ymlw6XhZbud7benb72hufH1dZGl4dvx3dHZmbu5cV/lpY19WXmFYVGxrW+fm/nJ9+vh24Onb0M/MzM7JxcjKycrS1tXV3/Lk3vNme/NdVl5gWVdfal5aYF5zYlpbVFtYVVxe//Dw8ejt7/pt7/j56t/X6ebk7uZ3d2diamr7bmlqd2ZnX1xdVFVaU1VeYVxZWVtjZF9mW2Jkantzcmpy8G9weu39cejd2tHQ0c/Oy8fJzM3Pz9ra3e3t+Xf2bX3ucm9eavDn4Xlua/Ppbmhib2RNVF5fXF93blhbbnRdYW/v5+Db2/j88ub1amx99WhseuHz5+Ld4Wp+ZV5dYm1iZWBoXVhcWlNTVVxdV1heXWdqXVpbY15TYvnv/9nKy87LxMrKycfHx9HP2dr0/tj1+/H36F1Oa/Zrcu7zZ2T6bl9eWWFSS0xWVFVda2Bl2uRrb9vo2s/HzNDY4trf6fTk7F5cUVRj3n51+fXh6lBZdltVWndeVFlOVVZk/155Zll7bmVzY/xadGpSWVpb9s7O0MnHzM/kzsrR1una3fpzbXd4ZF7f9GBlWOB2Z+ff8eTr6GZZbWZfZG9iYFhUYl9SWVlsU1ZrbNnQ4NDw39rueVXwW1fX9c7qz+dc1tzT3trc4mja525qX/teW1hNT2BKW2NYb1hwXlNqV1xOTFRaeuDc1MrLz8rK09DOzdPV2c/T021fdWjrX1lQUWRYcGhleGf9Y2NqVk5gYVV+WWdqYl9fd3dpa3Bq49DLzNLHz9rW7vLb8Ond597g7Xb4fHLtavJ2YGRVZGBWXFpfW1heWltcZ3BoYPhhX3ltbWxfXV1gb+LY2NDSy8vP0M3OzNHS2M7L5fFseOzl8O1scP9t8vTr9enwe2pnaVZQUFBPUl1WVV9bZF1dXFhWZunl3drX1+Xm2+bi8/ba2uLm7N3d9Xzm13T2e3B9XmtdY1ROT1JPUk1SWVhTW2ZfWlZkXlpaXFdcYf3j5tzR0tXNy8fLzMjOz8zM1tTj4Nzi7ufnbnF8dP5sXPthbmRsfW5aXVdWZmJnZ2ticHX7alxp8vbw6tvR1t3c5Xvt9ftzbvjn6/lu/Ox1enZxW11ob15VXltXWFtaW1xXVVxcbf1scGtmaGptYFpYWF909eXb3dLP2dTMyM7NzM3S19jX5+/p49/1+Op2aWhtdP73cfzq/HdxbV1bXV9eXmhhXWRkXVtXX15cY3z+7ufk5uTf4/Dw5unw7t/f4+Xa2uLn5PJyamViW1laWVJWWVZSTEtRTk9ZXllZWFteVFVYV1pcevDm2M3My8nEwcHExMTHyMnJ0dTZ2N7h6/15cWZeXV1iY19lcWZkZF5aW15maF9paGtjY2dyZ2vz//x06uLm7d7a33729GZfbPdwannp6fP75+xqXV9bUlRUVVdaWF9dX1haY2Vqb3VwamZkX15aXFpcYGNq8OXk187MzszJy87Szs7T2dLS2OXa2u139Op5Z237cWd07vF3evtzbWlybXBeWWNiXVxiZmVgaWtra3F2+O3p39/m7312/nB38urw7t7b3+fo5/peXV9bUk5TVlJQWVpTT1VdWVZcXVlVVldYWFZaXWNfbuna0s/JxcXEwsbJysfNzM3Pz97V6PjrX2pzXW1cV3BmYlpoe2BdZHJ7aXF6dWdfa21hYHb/dHB+8Ojt6t7m6eTq825laWVjZGl5+3Dx6uzt+P9tYl5hYFtYWFtdXl1qa2hlXmppXV5hXlRSVlVSTVNXVVpm7NbTzcrJysvHyczNzMzOzsvN0dvd2eP79fl6bWp19vlrefp0Zl9qcmdiY19eWlhfY1tdaWtua3Tt6/Xo3+Hl9fr7bm94/ff99uzr/e/h7/l8fnFeXWZmW1RUXllXYW5qXFxeYVpTVldUUVBUV1VRUVxpau7Uzs7NysjKysnIys7NzczO0dHa4/D29P50fP1va3NzaF9eZWJcYWxtYVtnb2NecXJnY11veHj45uPk6+/n7HZtaWloaHX1+vjy8O/w8vH9dnZxcG5tbWpgWltiaXd6//lpX2JnYFhUVVNPTlBPTExSW2Z14djV0c7My8rMy8vOz8zLys7Qz9Tb2t3g4+nq6vX4e2poYlpcYVxfXFdaWl9kX2BnaGJgXGF6c/Lm5+Hp7Obt+P378/v9+ubl7Onu9fh7e21hbHhwZ19eWVRTWlteZWxqZl9ZW1tXV05OUE5RUFFbX23s6N7Y1tTNzcrIyMfN0c7Iys3OzdDd2trg4+rh5vD6bWViXl9aW19eX1tfZWppcHJqZGZjYGBlav7s8fbw9/x1c3JubmZmbHf57OPl7XB783RqaHTs8/1+d2teX2ZvaGZ7bmpkYmdbWVVRT09RTkxNUFlfbf3q593Z0M3My8vMzs3LycnIysnKzM/T19bV19XX4/l0bF9bW1xaVFJVVVdVWVtiXVlna2NbY3j8dX708/L37d3q5+33+Hzo5ubh4Ob5dfZuZ2Flcv1sYV5dVlFTWF1WW15lW1lbYFpTUlNVUFNZX15mdu3t7ubZ09XPzc3Oz9DMysvMy8zN0tPT3N3b1tje4Oj8bWpkXFdYXF9cXWNuZ2JkenFfZnN5b3L67HNzePR8cWx6+2hnbX16fO7e3t7m4fJpZWducHp9/HpsZ2pmZWBcXV9hbWxcW1dYUk9PU1FNTlpfXV5t93D259jV29nT0tXTzsvJycnGyMjKzM/X2dLT3Nzk7XpmX1tVVlVXVlZYXFxYYF1hXF9sbmRtbWxrbXV9925ve+/3fPrr7/rp393b3uvsbmNhcGZfZWVmXmFiX1pZXF9eZXBuXFdYWFZVVlpdWFxremx5+e/y8+rc2t7c1tLX1s/Nzs7MysrOzs/V3dzZ2+Pj3+d9aGVkXlpeY2NaXWNmX15od25dZe7uZ2x9/WpnbXpfWl5oal1kevj58+Pa297q6mlcZHNsYmVx/mdobXNgWmJ1ZmNtcFxUWFpdU1BXWFdYX3JoZ2ry7Hh269zu9d7X2NjUzsvLysfEytDPzdTa2tbY3N7f4XtqbGpkYF9oXlhVXGNcW2hyXmD+72tjZ/v7aW17bmFicP5taHTw9v7r1dLf7+x+Yl5fYVxYWm9tYmFraF9ibu1wYF1gWVVWXFZMTVhbXF1heHdz897o6+vh3t/e1tTb2tXNzM3Myc/S0dDR19vW1N3j4N/vcGp8b21nYWFbVVpjYVxbY2t2c/32eGt793BmbXNlam1udHFrcnn66N7d4ux9/HJkWl5kYF5qeGlqa3F6b3Hv825fYmBdWVZST09PV1lYV2Jue/3s5efz9ubh4+bd397bz83Nzc7Oz9HS1djZ19HX2tzd6PR4/vP8bGVuZmBhZmFdWl9jZ2ZjZ2tuam5wfnJkaHJwdGxqaGh4+urn4uvm5+d9bWtlYV1kc3twc3d+9+33/m5rY2ZjXllVVlJUU1lYVVhcYGz04eTq3dze393e5PHk29nWz83OztDNzs/S19nY3eHZ3e13ffh2ZXD2dF9oamleXGJhX15kZ3tnZ2praGpvam5ubXZqY2ZkbWVv8+z37+jqe2Z2fGdaZHBpZWVn/Px4e/fubmz6d1tZW1xPTVJcWVZgZW5te+bd5urf2eHu6uPud/De19fTzszU0s3MztbV0tfe29na7Pju9Wt29+nvdnbw82BdYmdZVGH+cGBidmpeY/33Z19hYFtWWWNlYWXz5e3s4d59bnn0cGV39nZhbvXzbm7++XFydO5rVlJUU05NUVpTUFZhY2du6dzl59rY3e716XFq8tbU0s7Jx8rLysrP1dvU1d3j2eBxZ217ZmV392xlanBjXl9lXFpfbv1qZGX/eW1u7O93a2pqXFpda2prc+vh3ujj5vdxaHdxaXX7Z2Rue3FxaXP1eHZ3/mRVT1RSTlJcZV5ZYXJsd+/p8ent5uT8dGppaXLp2drUzMrKy8zLzNPb2tfb2t/e6X1veXx4+uPl/nV2dWZmYF5bXmdzaF5fZ25qZWn+cF5ZXVpUV15mYGzz5OXr6ur4bmx5/evm5+b89vD9bGV28v5yb21eVVFPUE5NVl5fXWBzfGVr8/P47eXr9f7z/nft4tzPzc3HxsjKzMvP2tXS2eXj5Ol7aG5ua29y+vNraHVuYWBiZGNjaWldXWBiZmVp9/dyaWppXlhebGtp7+Dv/vXueGlmbHX47uXl6/j/fWxjYHF4amJsZ1xYVlZVWFpmdHJvffd8YW/x9Ppy8+16b/f7ePTg2NXQzcnJzM7Oz9fb1NPd4OLl8H3s5enu8Ofn7ft5emlfYmlqYF1qXVNVXF5ZXmBlZ2hpa2FbV1pobfzu6er+dvr8cXjr5+fd2djh8vT0cWht+WtdY2NbVVRVUlFVWmBodXh7eGxnaHB1bf3s+Wz75+rq39nQz83Ky8vP0tXS1tfY2Nzq+vH2dv3v9v768ez4eH1vY19ke29hXmJfWGVnZWJg+evt7vV0bWFcYGRkbnx7bF9gY15dZ2/37uvj5efteHRzamhtcWFaW2BfXmBeX2Zze3V67vZ4cGtpePl8c2twZWn47/Ds3dTPzs7Nz9TY2dXR0NPZ3uXk6OXl5+Xj3eHw6u14am5nXFteaVxVV1dRVVZYXF5mdXv+emVjX11daXX69/DvenPx8ffs6t/a3t/c4ex3dXdraF9bWlhUWFlZWFpeXWVlZXVwanF0e/7o631vcPv48end2drWz83O0dTY3Nve2NXX3Nvg5uzt8+zo6+fm5+zo73ZiZWVkX11eYVpZYV9ganlzd2xwcWxwXVxZW11gZmlmZGNiX2J0/Prt39vZ3+Lq7Px5/XpkXV1eYFteYWxpaWhtbW9ycG1lb/r1aG91aV9eZGpu/ejf3NnQz8/X2tva3NrZ2NfY09XX2tnY193e3Njd5PPz/mZfXmBYUlZaUlBXYWVlY2RgXmJeXFdcYF9fYWpybW1w/O997eTg6OPc19rk6+v8ZGNiYFtbW1dSVldbXFldY2hnaWZyeHn+6PJ7bvz3aG7o3Nvd29jb1tLS2tzZ3ejn4t7g5d7h3ePm3t7p7N/T1uTu8Oh5aGVkXl1fZl9mb/vz/PZ9al9cV1dVWFtbWldWXmlbWWf0/Hp74N7j3Nnd4+fn7G5tbnJreWpval9ocGheYW10YV9w9W5oav1uX1xiXFdkdO3v8eXe5dzb2NnZ2NfZ4d/e2tze2tDT19bU1dvZ0tbg5ezqbWFeXFpXVlZaXF1icGtpX2VaUk9VVFRYW1tWXWZvaXzj2tvc29bZ3d3c2uTr7/dsX15pbmddYWlgW1lbWVtfZF9ka3Nxcn19a2NjZGhmeu3g39/j2tbd3tfU09XX1t/o6+j47+rj4unm4d/e29vZ3OLi4O14YWBlYl9mbXJ0cvfyfWtnWVdVVVZSU1RQT1dbW1xr8ejn3+He3d/i39ve4evt+nBrfXZ1evr5dXlsZV9qaWVnbXBuam5vZVtYWlhYWmZvcHfv597f3dnW1NLQzs/a397d6eTa2t3c2dnb2NPV2NnX3ul4ZV1bWlxaXV9fbnRqXmRjW1NTV1VQT1VYUFBZYmBe+d/Y29nV0dbe2tnb4+rs7W1laWxmX2d+dmlpYlpZX2JmXWn9+215/HVeV15hZF9r9+bt8dzW397Z09PY1tDX6Ojn63V46uDl7eXe3d/e1M/Z2NTW52xiamBYXW1ze/Pt6XRub2ZaV1ZXUk1OT01MTlJZWV773uXs5dfW6uTW1+Dj4N7ucvv0/PXv5uPtfnVvZWZeamlha3RqXl5fW1JPVVpWWmF8e3H0393d2NHOztDSz9Xc4dzd4OPc19zd29XY2dPO0Nfb3vZnW1lcVlZaaGltam1mXlxdWlZSVFpUUFBUT1BUX2xz+d3Z2tza1tnb29ja3+z083pqb357fHV3cGldYFhYV1ldZWducWRlWVtaXFdfXmJte+7u7+nb2NTT0NDR2Nfa3uLm4+fs7+fg4efh3dnb19TQ0tfe7HtkZV5iZ25+++32bmllYF9YV1VVT0xKSUtLTlRaXWFs+vX38uXp4ODd2dva3+nr4+Tm4t7g4e7m7HFuY11aW1xobGhcWlpaVFhcWltcY2ZoYXH99eTd1s/NztHR09fX29jc29ze2tnd2dTU09XU0tPa53ZsZ11ZWl9fXVxjYFxcX1xcWldZXldOTU1PT1NbZW746+fl4t/g4ebl4tzc3+ro9f3p5+np6Op+bGtlYFpWVFZbXWhnYGBjbXBlaXduZWpzcW117uzs6dzV09fb1djf4uLl6u7m5ujn3t7e29nS0tPR1tre7u3tdWZv/nJnZ3R2bHFtaGNcWVdQSklJSUtMUVxfYm19/n788e306N3a2Nva1trh3drb3N3f5vL07f1lWlhWVFBUWFhWVlleXFhfalxXW2FpY2R+49/b0s7P0dPR1NbW1NLY3tzW2tjT1tnd2tfb5evn73JlZ2heVFdcW1lbaGteXm9wbmhfW1RPTU9TV1lleH196+Lp9/zw7uvq4uLj4d3d3+fn5e37//Dze3p4a11aXVxYV1phY2VibHNtYmRuZF1fcHBreOji4ODc2tve5OLd2uHf3uDj3dnX2NnV1NLU1tnW2t3i6PL1925qaG51bGxxa2RjZF1cVk9OSklITE9RUldgZWhnbW9uferm4tvW0s7Q1NTU1t3b3N7j4t3k73tjW1hUVFFXWFVUV1xbXVpbWFhZWl9lcP3s3drZ1dXU2tfa1tLU19nU0NLR0tXX29rd293n5OHh73x9c2VmZWZnZmdjYmVpYmFhXVdYV1JSU1dYW2BkZnRydHL/fv/y+vXv4drY2trd4+Th5erq7/jz8f55bWZeXV1bXV5eXVtcYGJfW15eW1xebnV99+Dc3+Te2t7j39zY2dvY09HX09TW2tvX19vb2djb3t3o8/jwe3J7c3FuZ15dWlVSUFBOTU1NTk5PVFhZV15gaGdjeevw6t/a3t3U09LU0tbU1t3c1drg6efxaGNtaVhYWFtTUlRTT09QT1FRT1VcVVpt5uXp3dTY2tbT0tbU0c7T09DOzc/X1tPd3dzc6OXe3u718/f6dGttfmxoZGhdWVpgWU9QVVNNT1JWVVlZW19jYW57bWX83+z07Nzh6NzU2t7Z1trd3d/f5Op0evJ+a3x5ZmBnX1dUVldRU1RVVFRWWlxaX232/Hzp19ve2tbY2NbU1tfU1M/N0NjPz9TY09La5N3c7/fi5fx7df1qamNaWF1YUlRRTExOTExNUlNRVVtZWV9ob2d059/h4eLZ1dbc1NHX19bS2Nra3e7wdm1sbmleYGJgWlpVUE9YU09QVFBNUFhXW2t1/fbk3tjU0tbRzs/V09DX1tDO09TPz9PU1djZ2t7s6uv7df5yaWluYlxbXV1damFbV1dUT09QT1JWU1VeY1xdZmpmeevm8/Ho5d7Z2dvW1dXb0tDa49/mcnf7c2toZ2FfaWJcWlxXVVhaVlRUUE5PWllba/hwe+bb2dzX09DT1dXQ0trb0tDS0c3N1NbT1t7e4u76+Gtla2xfXmReWl5uYF1iZFlUWFdOTlRVUFZeW11fXltmff7039ng5dnZ3tnT0NPV1tbY2uLw7fFrZ3FoYF5eXFteZF1dX1lWW11WUVBRT1NZXWX16/rp2tna19HS2NPP0dLP1dnUz9DRzs3U2tba4ePm/nN2bGBfaWBZXWxjYXF0ZmZfWFBRUU1NT05MUlZXVVhZXGN08+/i3dza1dbX0M7S0s/O1NbW4/7x63V1+29iX2BeXGJhVlZaVE9WWU5JTVROTVleXm3z7uXX2tnX0tLUz8zP0s/Oz87My8zNzdPZ2d3r6fprbGxdWWBkXFhgaF9faWdfW1hVU1VRTlBTT09aYlhXY2lkdN/c39zX2tvW1dfX1NfY1NPa4Ob1a3j3d2drbGFeZ25kX11aWFtUUldXTk5SVVJVXmdt/Ovk3dnY19HR1NTPztTTz9TZ0s3O0M7S2+Hf5fTs+G5tbGVibH1mXW16ZV9saFlWWlZRT05LTU9OUFxgWVxqem7x3t3g3dja29nZ2NTT1NPQ2OTj5Xtt+O5vaPz+aWhuY15dWFJVV1BNUlVMS09QTVBcZGB74eHb0s7QzszNzsvLz9LNztPOy8zR1Njj9fVzZGdrY2d6e2lobGFcZW5gXmVgWFhaVVFOTk5SWFdYZ3Bmbefc5eTc2N3b2N3g4OPi2NXZ3Nre7376bWRreXBv/PdpX2FeWFpdWFhbWFNUV09OVFhWVmBsdO7f2tfQzs/OzMzQzs7X3dnX2tXQ09nc4fdyc2VjbXv58Obtb2t2eGp6+2ZdYV1VUFBNSkxOTVBZVldle3T/493l5trY3t7f6/bp4OHb1Njd2dz0fentdf3q7fv4dF5aWFZVV1pUUlZUTk5QT01SWFVabP754NbT0MzMy8jHy83Mz9nZ0NLa2dLY4On5Yl5iX11tfm9z9XVgYG1kXGZsXlleW1NSVFJPUldWXGpravnl4ODX1dvb1tvu8flvbv3w7eHd4eTl+2l1+XRs/OvzdHV2aGJkXFpgYFtaXFlRVl1XVF1gXWZ99fHj2tnYzsvNzM3R19rd6Ofd3OHa0t728PNtaHb5/PLr7Obh7n7673NjZ3BfVFRVTkxPT05SVlVaZmRhduvs5dfV2tva53z16/5369/e29jd6uToen7l8G3/6nRib2tZVl1aUlhcVFFVVlFTWldTXWteXf7l6+DSzszIxcrKyMzS09PZ3drY3+XmfWJfYl1cZm9jYv/t9/D3b3jx/Wpu/2NaXF5YWF5eW1tiZGZwfHD73tzd2tnh7ejtaGZ2a2V86PDz5ux4dfn7bv71eH3t9XB1fmpdZ3JfW2VoXV5hXFteXldXX1xbaP366djPz83KzM3Nztfe29zf397p9PV0YmJtZ2Np+vz0397m5uLp8u72amJoZFpZWVJPU1RQUlpfWVtrc/7l3+Pf3t/m5ej1dfjs8unf3+Ll5eTs6ep7dvn3fv54aGZjZV9bXVxaXF1bXFtZWVlbWlldYGR26N3X0M3KycjIzM3O1dja297m5/luZWNdWFtbWmJ6+vn17Ory7O3/dnRxamxtYl1eXldXYGViY2lvfPbq5+Xk5Obn6/NybG1vbXjy7/Dze332+ndrcXf++X73+P12eP10dHN0e3BpaWdhXltXVldYV1tjZ3Tp39nSzczNzs7Q1tnZ29zg4+nw93JnaWhgYXbz7ebj4N7e3+Xv9/xyaW5sYVlZWVVTU1ZWWFhcanBuee/n5+vt7/L6+/f87urm3t7e4N7h5+zz93n673p2/nhsa2dkYWJmYF5jX1lZWldWVlZUUltpbvnf3NnSzMrKysnMztDW2dfa5Ovt/GpkZFxVWV5faHN+ePjx7evq6XhwfG1senRjX2ZhXV1mZWJud37w6u306Of3cvn2ZWRpaWVu8Pn47fH7+/l4cv18eP7t7Pnr6PZ69u13b/5+c21nXlxbVVJSUlBYZW5w+uTf3dbQ0NPS0dfa2dzd297n6OXwe3N1bGNu+/jt6OPi6uvn6Oz8a2hwZF1eW1dSU1dVV15iZWx58enu6uj0/X368/p0dv97fe/h3ebm4ebu8/D3enRye3t+fm9wa2FjZGNgX2BcWltdWlZXVVddaP7p3tva1M/Pz8zM0NLU1dze3OLs9fV7aWljXV1cX2N5eHP78O378On0c2twdHBraWheXF5fZmtw/O3q6ODh4uTo7fn9dGxpYl1aXmNnbnl+d3P29P59/3pz/evo6ubh5/X9fvr7e3dwa2VdXF5aVVVYXF1lfPDx6uLd2tfW19rb2tzg6uzp7vv08PP79/pvbnj+7ubg5Obd3+fp7/xwc3BjYGBbVFZZWl5lZ2hy+v346ur9e/r/c3R+dGtrY2V0+vz96+fs6N/n/O7vbXjr6vj37PZzcHRqam5hXF1cV1VbXFdYZWdn8Onw5NnW2dXQ1NbT1NvZ1+Tu6Ox4bH59Z2ZuYFxnZ19s7/V37+X3efDybHf1dGhpaV9fdX5x+ebn5N3h7OLe6Xt3emNfaGNaXV9dW19kZG/39Hz873ZveXJv8N7g6ODc4ufn7H7z7HNiZWRgX2JiXF5rbm10ffjq4eXp5+Df5+Li6eLk7v338/Pw7ur3enx+dXB77uLf393c297t7vpta2pgWVlcXl9haWhu/nx9/371/P57b21+9nV1dXJ1/P12/urh5efg6e/9b2dlcf798/Ds7+rlfWpoZ19aWVhZXmBfYGt2/PDr7evf29zf3dra2dvc3N3e6/Xxe3r28Xhrcm5lYV1bYW1ubfvn4ePi4urv7PF9eXJpafrr/v3m4ur17uzs6X5sbGtjXmVnYF5hZmBeYWdrdv1ze/P1bGhubnfr5OPf29zd2Nvm5+t2YWFoYWBmaV5faWZndXlveuvvdvzn8n3z7/Dn4e706OXt6N3e8/fufnBrb3ny6Ozm3tre5N7o/3l3amFjYF1hbWpidHtmZG56evp9bWx4emlt+HFv/fN5bu7o7Orn7vrs92Vjbmtkd+vr7efk8e/sfW5sYldVXV9cXW1saXp3bvnl6vLk3ubn3N3k4uDm6ePs+fHo8Hfu6nppaV9XWV5dXnf1e+zd3uTc2eTt6/Rwe/H9dvDo8/fn63V87f1vdndlX2deW2BjWVpgXlxneXd8+Ph9eX1tbfnu9+/f3t3a19zh297z+/RoXWZmXVxmaV1eYl9hdHpsb/5+bnHs7/zp4+3x4uHj3+Dp6OLl+Hp0aWdwdXvs6Onq5d7i4t/n/nF5a2ZuaGJldm1fa3ZraXp6bXr8cmp2c2lr/XZjbf19eO7p7+zn73N0eGppdX568evu7ufp9/jze2RkbGZeX2RjZ2plZ21sbn7u7vbv5ufm39/h4ubs8+3r8fbw+f3x8nRsa2RfYG1raXz19vTm3+Tm5+r58urz+vX7//ju8v76731sd3hsZmdoamxqaWJfX1tdZGNiaHf9/P/4+fvu8PHq6/Dv4+Hh3t3h6+breHV3ZV1gaF9dYGZgX2tsaG5tZmvx6+zi3Op17uTx+Ojr+/Ds7e3n7XB66+327e5+e+/t8Off7nLy63dz+XdpZmhobXxwY3XufnD7/WlocHxzfvNtYm5xZGl+cGh46/P87Op78d/sfu/udm7z7Hh+6vxp/fJuZ2xjXF5rYlxpbV5p+XdtffP47N3a3dnX5/3k4/h8+nZpd/N+evL+ZHLqe2h79Gxv7ev97uD3cujne33n7nD/6e1+6+f78OX7a3v9Z2n0+2VnfWZZYmRbXmViZX3v/3vp5O/p3u167/Juc+vsdfDf8Pfe4XVvbmFgZ2hcW25vXmZ6ZmBs/n303Nni4drl7+Pqa2t8c2z873595eDu6uTr9vf7b3bs7nr/8Xz+7/hvb/h3a/jvevrk5PXw6/lzdndpeut3ZGhxZ2BrcGNgdnNpefh1/ODe7O7l63V1dGRr+f1wfebk6ujp/mlrZV5gYl9mbmtfZXdwbvfn4tvV2N/d2+Dp7f1pZ21lYmx0cHXr6Pvu4e1wdPl1dPX5c/zm7Xzw8vns7e/z6t7j7ebp+fv3/W5udXF3d29kaG1eXmZlZWdnYWRvfvv36uv07u75e3l8ef3t7e3e3eTq5ub7dm1fXV1fX19iX19gZWxt8OPh3t/d3+Lg5e/6/HBqZ2Rnd/7+7ezp5e71e3D7+Pv9dfnv8/Tt9Pbt9e/v/vTp7fj79/h6b3Jwc/n4fXx3enpubW5qbXVpZ2lnaG7+9v7z6/Z6/npvd316dv/u6uzn6evr7/9qZ2ZhYGZoYmJnZ2VpcP3l3t/i3t3h4ePo7fb8bGNlZmVqcHN0fvj8dHd8dPXq9/fq6O3r5OHo6eb1/u/s8PDu+3p8/Xhoef12fvt3a21vaWdwcmtpcGZhaGVlbHB7e/zv+Pbm6/fx7vX97ejq6uLr+PD3amZqaWNma2ReYWJeYHB7eu3n7fHn4ufn3uby7vJ0a3Jya21wb254fW549O769uvv9evn7Ono8vj08Pz97e/38vd0c3NvaXL29/7083N0fXNvbnVvaXByZmFmYmFqcnFzffb79Obp8uzu+vXv7+/zfnFsc3NrbHNvcf52bWlnaGFpff757u307+rn5OTn7fPu/mlrbWdmaWpra29zcXL9+Pnu6uvn4eLj5eju8+zv+e7o8fnx93h1enx5efx1bnFsbHB5dm94dnBub2tiYF9dYG52dPbt6+fj4ePj5uvr6OXt9PpvampycGhsbGZoa2xnaGpmaW5xcv/7eHr78Ovk4OPl6e33/XtxbGhrb3d5e3z++PPv6efr6ujw9e3o7e7r8PTw8PP0+Ht5c21tdX55cG92en76+P7+9e/5935rZmFfXmRsbnZ7eX7u5eTk4Obq6e3y+31vZ2RnZ2psbG1tfPn+fXxuaXZ5cHnx9Hv27vDs4eHq6u31em9tY2RnaGhncXdxdnt+9+rq7uTl7enj5Ojp5unt7e3y6ePw+358bWpsaWJhaWdo/n579OjtfPn0dGNiX1tkcnL88Ozu5t3e5uDc5urk6/P5fGxgYmReXmppY3B9b2trbGRmbmVgefpudvXw7OPf3+Xl6e7t7nh19f9ubnh8evzzdm/6emz/8Xt88vJ+/enyfe3n7+7j7Ht3fHhveX5sanlzbX3v7uvh4Ons6vtraGheXWNnbf/5++7i4ezp4Obw6+v3/3ZnX15fXV5t/HB37/1y/Pdwb3t2aG7w/2/z7vrv4+Xm5unzfPx9a259bWZteWxrd/5yeO37fe3we/bu+vnp5enr4eHo4+X1/vl8aWh1bmNqdmZme/557+Pp7ePpdWx1Zl9te3F+6+757OLl6+Dd7O7m9WxwcmRdYGNeYm5mZXd+bG/0dmltdWlndXttdu708N3a3eHf4+709XVw9Ptqa3trYWhwamv17nr9+mdjeXlx/uzq7urk6Ozj5fr26/p5fH1rZnJ2Zmz3/fTg3uTh5e3+cG5oaHz/bmx5c3b66ejm3uDy+vNpZG9uZmdtbmpqaGRoeXdrcPb7bW96bmlwdnJ77efi2drk5uXr/nNzdG91bmJhYF9gZnB3++rl/Wpwbm15+/fr5eXq6ubk5uTj7/nu6/dwbWtmaWxnZ/vs8vDp6Ovu73ptb3d0cHVqZ3Tx9PDf297g4e50fvxvbXFxZ2lpXlpfZ2BibnFseH5rZG91aW35+Hzl2d3h3N3m5+j9cH7xb2hwaF9nd2pp/e95cPttX2l8a2ry6/b77/165t3n6N3h8erqdGl4/Wlm/Xxt7OT2/ejg7O7o/ml89mhmcm9kc/T27N7b8f7o73b28G9qff1mYWNcWWNqX2f8/W1sbmdkcn5pcOzy9ube5+nc3/Dw7P5t/n5naX56ZWt2bW1+e2hp/HVobXhra/Hwd3ny+fnl3N7f2t7v8vB5c3x8bnPu83R8+3j55Obw8+18aG11aW34dWZz8/Ht5uX3+uXp/vPyeHh7bmNkbWRcX2xoa/90Z2Zvcmxw+H167PF8+O3o5ebr9frw9m9wenFxfnd0eHd0a2pwcnP6dGhvfn15fXx3fu/t8+bd4Ojn6/p99fZ2efP1fvn9bGx+8vz06Oz48/ZxdPX0c3X5+Pby7fDv5ujy9PD7dH19ZmFnZWRmZV9hb2tfY2pnY2xycPrr8/r39v344eLu5d7o9+zo9/Dp+Gx66nxob2hfZXNvY2hvZmh0dWlw83x37uXn5d7e7urg5uvq5Ojn4e788fF6dfn8c/75bWdrcGpveG1qe/D/d/Pr8Ozn83vw6fl69Xtudvtza338bGhqaGFmbmdhbfp1bntsY2l7eHL16+7y7Ph47ur4ePbu9e7p83h++Xx2eXRsb35vaXv+d374+fXo5/b67u968+v4/Orn7/T0+3X97X556+94/e/4e/PrfXLw6/jv6/f67Ofwe/j6bXN9a2ZqZWFkamtteXNjYGdnZmpqanN7fnJ0+HRoePj87+bo7u/s7+3g6X316O328O38b2xtZWJpZ2FlaWtw/vt4+ezr7uXn7Ojj5ujl5Ofs7e31+PT4/vXz8fD1em14eWlndXhwcnl+fvDx9u/v8/789f53e377eXVwcHpzbG13eG1ueXNzbWpqa2loamxqZmVobnB1dXT9+PLv8ujm6ejn5+Pl6e3x/H1xZWdnaW9w/fj97+rr7e/x7Onq7u7r6vV2fHt0//t7/e7s7+7q8Pfw8Pl6e3r78Pd5++vs+vXq7/78fW1seXlvcnBoaW1kXmJmZmp6/G91+m9jZWxoanBxaXDy/XX7/HB87u/v5+Ho7OTk7efe5/z59nJpZV9bXWZmbPz1//LufXvs5ebk3+Hm4uT5c3x7bnj3+X7u5e307u737u55bXt8bGh0c3F79fTy7Ov/dXNucPzu8vjz9HltZmNibnBt/u/7d3NrYGJnaGdoaWhqbmpkbHVucHz/fH7w9vvu5ubm3+Hn4+TwdW1taWlvbm/48P3+/HFz9+zp6url6vR7bW16d3L77u3w7ujp7Obj7ujm8e7q+m5w+vP49uzt6uPve3xwaGtxe21qd21eW1xbX2hoa3P+d2hmZ2NqcG5yfn1zdnpwb/zu+nnu7/n593h1+urs6OTo6ePpfW1waWBjbW5qfPpwbXt+/PDq7Ozj4+7y/Hn97O307ejr+fft8fXr6/Dw7/h7dW9jZ3z+ePXs7efj6/Pv7v10/Pd4/vlyaGlram50bm55/mtgYWJfYmxsbHB2aGVsamp69/598+/5eHlzdPny8uvl4uLj5On08vZza2xtam5tZml2cW16+Hv783lrbG9ze+7s7ezl6fPv5uPo5eLj5N/h7/P1efzu7vXt5+vu5+bs8vN2bG9yb2lnYl9jaWloa2toa2xmX2ZrZ2hx+3p9+3d0/fX28Ozu7urp9nBucW5xfP7y6+z6evb1eHv+cmltbmhkaWtvfvV9dvjz9/39eHP+8O/q4N/l6Ofr7+jp9f3w6uvr7P1vcHJye/f08Ovt+/Pn5Ons8PX19Pd6evt9ef38dWtubGNiY2RpcG9qbnx9aWlubWtxeHB98+7x9vd0bf/z//zs7PDv8Pb17e19efX5fnx1amhqcW5scGxqbWtiYGtwd/nt5+jg4+zp5+nq6ert7+3m6e3r7e/t7/fv5+jv8Ozv8+rt+vbu+nBxb21vfftvb25nYmJiXV1ncW/76vJ7+3tscvLydXP59fTs6/V+endzefL8ffZ+bWxxdHZ5dnN68vl1endub3n+eW9va2dnaWpz7u3z6Nzc4eLj6enh6Pjz9X1tc35ta331eHzt8Pnx8Pv+7ev47uXo6+fq9/fs6u/w7Ph2dGxfXWRkYWZ6fHvzfWtkZGNmcG9kZHFzam/7fnB4fH7z5en78ev3+enq/3rw8Pns6fb77vtscnZrXl5eV1hja2z15efn3t/t7eLn+u7n93x+c2lreHt47+jy7eDi7u3n6+/r6/f25u/78PNxcPj1enz5cGZlZF5gcXJv9+Xo9+7udGltZV9jZl9eamtiav3+bnX9ev/18n589Pd98vJ7ffDu9+7k5/Dt7nl4d2heYGRgYm359+vf3uDi5/Dz8P5ubnxuY2FmYGRye/rs5+rq5OPo6eDi6ejj4+Xh4+nq5u338e79dn1zaGRnZ2Jma2xw9/lsZ2VfW1tbWFhbXVtfaWp08uzt7enm7e3n6+/n5e7v6+vt6OXq6+bte375cmlkXlpYW15eZX3w7uPg6e/u73x6/nVueHdobH56evHn5ufk4ebn4ODl4+Lq6+Xl7e3p8Hf893N78P51d3ZsZ2tsZ2r+/H71+m1kYV9YVVlYVlpeXGFwcW3+7vR+8O5+/Ors7eXi6Ojh4e3q4eXy7+58/vZ2Z2ltYVxjZ2Nt7unq5eTu8/V1ZWp2a2RscGtv+fH1597j59/h5+Tc3+Xe3ODj3ePx6Od9dfjz//rt93V+fmtjaWhjaXl0bXNyY11eWFRXW1dXXmNha3x7dvTu9/Tq6uzq5+ro39vd4OHn7+vm8f72+Hh2d2tlZGBcXGVsdvDu9/fu7fd2bWpkaG1scPz4+fPr5uXd2+Dj3t3d293j4d3f5Ofq8P17eHT/9vDx+fp6d3lyaWZobGxvb251d2xiXl1aWllYW11fZm1vbnX/eHJ5fH707+7t5eHd3uXo7vHy+fj38fP5/XhxdHNqZmloZ3j8//Xr7fP+fXBra2diZm12evTt7uri3+Pj3t7g3t3f3dnc5eTm9fTu93378/j26ez49+37bXFuaGRjY2BnbWJdYWNbWl5cWFtdXWFubmh0/GxqffX69Onp5t3b3uHe3+3q5e7y7u3+/e78cXR7ZmBraWBqeXB47et5c/5vZGVrZmj9/njw5erx6N7o59vb3dnX3N3Y3u7u6ftsdv9zfu32+urn9Xz2/mhlamJdY2hiY21lXV9jXFlhZFtga2hncXRkZGxqZHL7dnzq5evn3d7l49/m6ODo+O7r/nvp5O/z73lnaGhgZ3p0c/fr9f3+eGhna2JkcHhteuvu+vLp6u7k4uXd2tze3N/r6+Tt+vHyc3H4+Pfp5Ort6/ZvaWZeXGFjX2BmYV1dXVlaYmJbXmhkZGxsZWZrZ2h39fvy4+Tq49ze393e4N3b4+/x83587+/3+PtsZWhoYGRzb2h2+XhweW9la3BsaXh7cHvt9Pnv6+fq4t/d29na3t7e5ujo7/7//nBtb3Z38/D5+PR7a2lmYmJoamhma2hfX19hYGVrZ2Roa2xqa2FkZmBhZm5uePPq6ufk4d/j5OLi6PDz931+9evs7Ovt/HNvdXN3/v/19vf9fnhwc3hva2pta2h3/H578+7s7O3p5N/j4+De4uXh3+Xs8fdxa29vdvjw9O3v+nNuY19kZmFfZ2ZfX2JhYWRiYV9fXl1iZWJeY2xmaHX7evnp6uvk3uDf3t/g3uDo8fT8cnfw7Pb37fN0dHv+ev97/vl+cHF+bmt0fW5seXpsbn35fPvp5ubj3+Ld2t7h3N/v7ePofffs+G90dm5ufHx8enFpZWtnYWZwaWJqcGRia25paXVtZGBgX2NiXl5la2Roe/p68efi6uPf4OTl5ero7Pp++3hx/unt8OrpfnF8+H579PP3/PX89PJ8dH14aWl6/m538fD77+nq7evq5uPk4eDe6u/n4+rw6+f3bnj8e3J2dXZuamVoZmFfZmljaHB2bHR+fmxrbGZdWltbXFtdZGtoZ3Hy+Pzr4efq4+Lk5+Pj4Obr8vDzff7t6evr5eb7//j6bnL79v/++/zz9vp9/mxobXhwbnT49nv07e3z7OXf4uDf3eLt8efi7enj5vP9enpuaGdnYl1cXmFdXl9lZ2xx/nlv+vF7bW5tal9eX2FeXmNqaWNt+fL97efj7O/q5+zs6ubn8fDs7Xt68ubp7ujm9v/+fv188urn6evo4ur5+flwZ257eW52/P5wdH38+//89Onr7Orm7Pbt4enu7efo8Pr383pwcHBnX19kX1tebX11e+zn+373/mhhZGdgW1tiYFpbXmZjaXv4/vTq5ur07+Tj6OXh3+Tp5+Lq9+3m5/H07On8cHT7fnX95er16uLscHH9fWZmc35ubHn3fXX05efy8OXg8Pjn4+7s4uDq6ePg5/Py8fdyaWtmXVpcXFhVXGhpa33p6ezxfnt3a2loal9dYWJbWV9oaGp9+PPz6+7v7e7t6Oz18ujl8vjs5fHx7ez89vvt83h38unu9ODZ4uvm43hqdvVzYmr9dmZkbfxxbvXk7v3x5PloeOfp/+ne4+/n3uPv6OPl8XVxcWxfXWBeW1xjbm/96eLpfXJrbWZgXWNgWVZbWlRWZGtiZP/r/nL35+zv49vd6uze3fT44Nzs9ujk9/7q5v1w+u73ePbo5+vt+31taWxtbGtsbGhjY2Vu+e7t6d/i7frs6/nx3Nzl6Nva6fbl3uz88OxxY2VyYldZYGBZWmlzaHHu8GhgbHVkYHF6ZV1dXl1aXmlpaXT9/3l7+/nv5uDl5ODl7/Pp5ezo4Op7/ejse3fw8Xh56N/m6+De7nT36fxrdPV6aGpyZFpfc3Vpce/scmx98f344tzg59/a3+vq5+jm5+7v7fJ+dXFtZGRrbWtmbvh4ampwa2JeZmRbWmBaT1FcXVhbcHRjZnv5cG/q3eXs3tba5ebe3+/s3uDz9ebqfX7w9X5+/fj38vT+e29uev35/fp1bm5pZWhwdGpt+PT68uXt++rc3eHc1tvf3Nve6ezj53Vs/PVoXmZsYVxs+WxgbHtrXWRwb2tscG5rZmRkXlthZ2ZiZm1saWxxbnb17e3q6+zp5ut8fufo+vXo7X168/F0b/Lk6ffw4OT/fujo9vPk5/x08vJrZG10cWtpbWhiYGZqZm3x4+Xj3Nra2tve4ODg5eXl6fLw7f1vePb/cnj1+2tnbWpjYGluYlxeYllSVVtbWl5pZmNpbG1sbXru6ebg3dzc3Nzc3t3c3uLj6u729f5vef9zcP5+c2xqaGZnc/r6+v3w9nBqd3p0cP7+cG14dmpqdvfw4d3b29va3N3d3N3h6ent8nhwbWNgZXBsbHv2c21vdG1tdHNta29tbmRhYWNobHF1bmlrZGBga3B4+/Dt7uvt8fHw9+7o5OXn5ev1fn1+9Pl9/O3v+vXr8Hv36ejw6eDm+Hl5cGxteHBrZmdkXlpcYF5ice7p5N7c4OHe3Nzb3N/h5On3+/f+d336+fL193l3b29w/3BmaGxmXVxaWFZZXF5eZWloZF9fZmpr9Onn59/d4uff2t3d2tnb3N/k8Pz5fv16c292bmhmbGttcXt7fu/u8P7+bm92e29xfHRoY2hjY2p5fu3i3Nra3OPh3tzf3d3j7/N1Z2ZrZl9laWtteHVvbXd6dntvbXZ9bGViYV5gY2JhanlraGdoZGdtcW/77+vu9vz+6ubo6OHg4uTj6vDp6fH59Pf4+/tzevTt6+vo6ufh4ez4+/x1c3BtbWtjW1lYVlldYWVw7unm5OLh393d3NrY2+Hm73x5fHVsb3359vf3/Px3cnl2a2Zua2FcXVtYVVZXWVpcXWBiZW1yeHvy6Ojs6efl4t7b3dzb293d4uno6PH89/T+c3ZuampvcXl0e/bt7Pr27u92fu/xfPz8cGJfZGBiYWhw+fTs5d/l4t3d4N/b3eTs7XhvamdeYGlmaG59bnD/+XN5/PT6/X5yb2xoY2JdW1xgXFleamVeaW9taHd9fXn26+Xk6OXf3+nm4eHr6ebq9erj6PH493p9fP597erp5+Dk8PDv+W9zc2xkY15dXlxZXGJfZHLy9+3g2t3c2Nfa3dvb3unq7vVza2t2amVwenFqdXZtaXFwa2hpZGJhYGFdW1lZV1paXWFoaXF7efjx8vTm5OLh2tzg3tvc4N/g4evv7Ov59fj8dG1sbG5sc/ns8uri4Ozn4ufw+ftzamZrZ2NfZGNjZGx2/vXp3dzc3Nrf5+no8Pb+eW5qa2VlZWpnbHJ3dv737e/18fX2fHtwcmhlZF9ZV1pbWVhdYGJfZ2ppZm799/fu4uHj5t3c3+Te3uPm39zh6evl6+72+ft9fPXw7uzq5Obr9O3u+G9oYl9cW15eXFthZWhlcPbt697W1NfY19rf5eDj7nd993hqbXdza2t5c2xocnlyaGpybmhmaGdiXV5cWVdZXF5eX2ZraWVseHdvfurl6ODa29/g29rf5uHf4+3m4+v9/O3xcm18+3Rx7+ju9ujk6vDt5+x5amxqYl1fYmFfY2dpa3H58Ovl3dna3eDf4u/88vB6cXZ9dGx69vl+/PH0fXzu7fZ5fvtxZmx1aV5eY15XV1xcV1ddYl5cXmNjYmp79O7q4d3d3t7d3t/f3N7e3t7g5+rp6O99/PDwff7p5Ory6ujzdHv1dWZiaGdeWl1eW1pgamZmduzt697X1tvc2dzn8eno7vTy7PH7fPHt+Hz+9vx2enlybWxwbmpjZ2ZdXFxdW1dYXF1YWmZrZV5ocmxreuTf397Z197f3d3j6eHf4+fp6PP69PL8b3V7dG9y9e3t9PDs9Pt+9vJ0bW1xamJgYmdhX2VrcnB87enp49vc4Ofp6vn28Pj9e/t8c3B77vf49Ovo9/Pv7fp4fnp3bW9xa2dgXV5dXFpaWFpcWlpaXV5dYmz57+nh3tzh4+Hf3ODg3Nnc49/g4Ojs6u7u+v338+/u7fT38HpwdH57amlxemlfYWFhXFteYGNldPDn4+Lb3Nzc4eXp4+jv7enl9X3/+vd0dvzz9nV4entvaGpqaWNhZWdoXl5fYGJdXl1eX11fYWdnZGlz8u/u5t3Z3uHe3d7n5eDg6vDq6uvz9vP693twcXf4fPv17ez+/vzt8H707ej0dXRxb2NfY2lqZW188e706ebl6/fx8O/8//Pv7v53b295cHf96+r68+vn93X/+3doZ21ubmVpbGljXF1cW1dXWVteXl1gYWhpcPnq4OLi3tva3Nva2Nrg4d/d4+vl5On9fvHv9nn48/P6dnVvcG1pbnR8c2lnZ2heXWBkZmNodfPu7+Hc29/k4uDg6enk4ePw8/X7eGt2/f53d/r9/XhubGdoZGFiZmlkZGptaV9gYWJeWVxgaGBeZ2tuanTt5OLi3Nzc3NvZ29zf5ufq6ezy9PHt+3378e56cn7t9HT/8vR0cvXz+XZzeHFuaGlpaWdiaG95+PXw6uTm6+3r5+7w6ebl8vr4+nlqc/fx/Hzx6+z6//p7b2dqbWprbHFta29taWJiX1lYW15cWl1kamZmdu3s+O7g29vb1dTX3N3c4Ofs6ens6uzr6+fn8v9+7+17c3X9dWlsdX1rZGpsYlxha2dhYWx0c3X67ezl5+no5N/i4uHh3+To7Ozwcnj9+Xdscn58aWdvdG5iYWtra2drbWpoaGtnY19eXlxdX2BianNsa3jp4u/t39rb3trW2d7j4uTt//7t8fl98+zs7ff+fvj7eXf78fp1ffbwfW5ub2deYGhsZ2Zw/P1vbn72+X756+bj4+Ll5eTn7fXz+nBsdn56df73/2xqcf57aWt4eHBrbXVwbGlpZGReWlpaXFtcX2hoY2hu+e3w7ebe3uXf2NXa3tzZ3urt5+ry+u7o6e3w7/P4e3z++/R+cXJ6/HRqaG1qW1tlbWVhbX18bnD27O717+bj5Obl4N/j6Ofr7PpvbHF6c3FzdHlsYmRsbGJqfvV5bHP7fWtlaGhkXVxfY2BdYGFgYWJjZXJ9e/jq4OLm4d3Z3d/e3N7q7ejg5vLv6+rv+fHt7/r27OXo8e/v9f12cG1tbGBdYGlkYWhsem1pefHyd3Tz6O3w5N7e4ePg5Ofu/nd7/XlzeP99bGZpbW5rbnf5fG1weHlpYWVpZV1aXV9eWlxhZGJgY2p2dHvw6eTi39zc2tzd3t3d5Ofm3+Pv8uvp8v378erv9u3o6ft6fH5yaWpvcGZjZmZoZWNobnNsbXP99n788+rn6+fg3uHr6+nn9Xz59ftwcHV8dWlpa29va3V+9v1zfP19cW1rZ2NdXF1eX15eYWZmXl9nbmps/urg4OLd2tvf397g5u7p5OTn6unq6e709+3q9ffs5+fx/v34eWlnam1oYmRrb2tqcHx6amlxdHRsbn708fHr5ePn7evo6e3w8vP6cm1w//5wb3n7enB+7+78eP3+fXFsbGZiXVxfX11cXmFnZ2JlaW1saW/05+jq4dva3t/d3ODo5+Pj6O3o5ujs7enr7fd++fLv+3l8/ntpZGhrZ2Blbnlvbvr3fG1tcXNwaW1+7/H47OXh5+7s6+vx/Pj1+29tcnt3bXB5+Pp5/e7o9Hr49PtrZ2tpY15fZGZkYGNkYmFhY2ZraGZs/+719evi3uPk39ze5eXg3uTp49/g5ubi5Ony9/Tv7vX37u35bmdlaWZiYWh1c250/XtrZmptZl5lcHx3cfnr6u/w6urq6+/v7u71fvz18/b69/D4d3vz8X5xe/P9amNqa2djZWpraWRkZWRjY2hqa2xscnr9+vvu5eDh4N7b3OHk4Nzf5+ni5Ovr5ujvfn74+X53evX6dW1tbWtsaW52ev9vc3v+dm90eXdpaW9zbml18+30fffv9Hp69vP2/vnz8O/4/vr99vn79/X4ePz3+XJnbXB0amx4eXFmZmViYGFjZWRkZGdnaWxu/e7o5uXg4eLn5Nza3eDe3dzg6eLh5+7w6/P3/3r4fXRvbW1ubGpsdndta25tb21nb3p1amZqb25rd+7p7vTs6fD5/PDq7Pb06+70fHj9/f94enpwcmtveHZyam1zc25ufPl3Z2ZrbGhlZ21sZ2BnamtrcPfs5+no4uTm7Ovl3t/n5+Lk6vDr5+jt+/Pv9316/f98c3b9fXx5/vj2fnB2/H1ya29wbWJfZGZnZGr++31zdvb6/vrv5efv7+zs83x79/Dz8/f09X5ub3VydnF1fHt3dHn8fm1mbGxmXmFkYl1bXWFmZ2x97ejq6+Xj4uXi3dzc3+Df3+Ls6eLl6/Lt6/R3cP7/cW1wdG9vaG1xdXpvff55cWxsaGZjYGVrc3Fz/O/0enrw7vHy6ubl5+7t7fT9evf3+fx+/XNrZWdsa2xudXz0+3j68/H+ent+dWdjZGJfXl5kaWZndfn4+frt6+no6+Xj5Ofm5OXm6+nj5OPp6+js9Xz+9vx8evn09Xp78fL5fvv9eWtmZV9gXl1iaGhpbHF4enZ0fvDs7erh4efs6+jm7/Tr7O/v9fv9dWtrbW1uanB5d3dwfPj79Xt4eG5lXl5dXVxeY2dpZW58fvf76+fk4uff3t7j5eHi4OLi5urp8PPx+H5wdv59eHR3fHx4cP709fz68n1vZ2hnY2RiaW5xcHB+fP79+u3s7fDr5unq9Pbz9/n9+PL1fHV6eG9rbW5ucHF2+/v3/PLs6uv38Pd0amRoZmNgXmJiYl9kbGxqa37t6+zu6ejp6u/l4uTl5ODk5Ors6/L2fvn5//h5fe/39O707+r4+/B4cWRgY19fXF5gYmRha3Nwc3v16+fr6OLm6Ozr6Ons9u7r8fd8+vh6cm5xcHZvb3l7/Hl5+H5+dn5tbm5lZl9jYV1kZGBiZW1ucHXz6+7o5+bg5ebl4N/e4+jn7ev29X7+fmxueHJ8cHX7+X797fPv8Pfw/Xhwbm9sZmBkZmdqanN0cXh4+/Ps7PDr6+nw+Ozz9/347vn+d//9eXdtfH5+eXzt8u3w7+rz9fv+fHVyamlsaGNfX1xdXV1mZWZrbH307/Ht6enq6uPg4+Lf3uLj5u3p7u72d/Z++f727vDs9PLt8vV6/XltaWVmYl5dXWBdYGNqcHF8efbs6unt5ePk5enj5O709evt9Pv+8HZwbnX+bnd4/fR9+P74fv5+bnZtbGxqb2psYmVmY2Vkb3p6d3f57u/x7OTn5+zr5Onl5+jm7ez69fxzdXL/eXr2+e7s6/Dx6+zx/Pn2fX1vcG5lYl5kYGBpZ3Vwd3x88vXz8fTu7fD28O709n7v9P38efz3fXx67nPz5vDjeuzv9er+em11bm5rZGtrZmBcYGBdX2VvaW1tfvz49Pnk6OLn7Obi3+Ll3uPm6e7r9Pt1/fT27vLs7uzu8ejv+3BuZnZxa2ljYl1bXV1hY2dveHn/9u/t7PLs4ufm5+rn6Ovy7Obq9Xv8/nl4cPn6fX16+Ph6eHv8d25oZ2tlaWdpbmllX2Nmbmxr9/P5/vzs7fL06+fr7O7p5ujs6+nt8vp8+nl1dHL3+/P48uzv7PPs6/H4eXl6dnN1eG5pZWFmZWZobnx5fXd5+X5+dX36/vt89/Ly8vnt7PT8+/X6fH7y6u3x8Orj6fP17fR5dGxwbm5qaWpiYVxdYl5fYmtzbWtrdf56efzr6+7r6uLh4+Lg3+bq7Ojs+fD07+rs7fDs6+zy+O75cmtma2dlZmdnYV9fZGRka292eHZ6evf08Pbu6ezq7ujj5uXn4uLm6/fx/nZ5ePj7eHR3/3hxcXV5bmxqbHFua2lqamhmaG9wdHR3+3x5dXn0+Pnx6uju7u7q6Ozt7Ort8/p++nl6e3v0+vj29fHz8vbt6/X4e/b3d3Rz/nJvbWxxaWtqaW1oa2tvcGxva3R1d/z98Ozt7urj5eru7ez09/Po5uro6uvw+vX88/d7enN2aWZjYGNeXl5fZGBhYmdqbG5vfnV7/fbt7Ovq5eLj3+Pf3uLg5OPj6u3u7PD0+Xv0fXt6cHpyb2ppaWJkYWdoZ2hpbmtoaGdvam51efb28PDu6evq7Obh5uTn4+Xo7PHwfXdzc/52cXJzdXF1cHt3cXZqcG9qa2dsbWxqbndsbG90e3N7fv38ffb89u/19fT1+ff3+PL8+vv28PPx8+7t7/X78/H17u7q6uzv8PN8fHN0d29wbGxnZWNfYmBfYGBoa2xrb3x7fHr77e/s6ubi5OTk4uPl5OXk5ujq7+ru9PT09X16bW9wZ2NgX15dXltcW1xdX2dma2tuenr++u7q6+jo5N/g4uLf4eLj6OXm5unz8/l+eHZ+fHhz//53cWxwcGplY2pqaGZkZ2VlY2dsbG519/Dw7vDn6Ojp6+Xl6evr5+fp7u3v9vh3dHNwdHJ4e3l5e/13cXF1eHVya2p0cGtobG5pamhra297evzz+fn58vny+/ru9fL49PXs/vv08vP6+PPu9PT06u3s5+Ll5uDq6+ztdmxyb2xmZmhkYF5eYF9hZWlwdXdy/n76+/vt8uzr6uHj5Obm5eTo6efk6evt7/ju6+Hd53TvbGt9XmJfXmJeWV5faFxbX2NjcGxs93Hye+nucuTi5Ojk7O7v8OD09Ojg7u717e36eHjqePTvcf7re2t+dGllYW38Z2FvamBqYn7sd3jj4+fj6N/f7ezl6N/p49/f6+Pp8Ob9dubwd3xqeGtube35cOH9enZz9WhtbG1ceWdWbldoWmP4c35tdmzt93fvaf7qfXx263v/dn19fn7q9/jo7Xno53Hq5dzq5tvc7eba7H7+8Pv/bW9dYmFaZlRgaWxZY3dhZHD9WfPiZvbh6OIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX2dzbV8xY2hfOGtoel8xM2ticHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIxNWIyOTYKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2dzbV8xY2hfOGtoel8xM2ticHMuaW5mbwpAQCAtMCwwICsxLDE3IEBACis5NzUgMzIgMAorOTc1IDMyIDYwMDAwMAorOTc1IDMyIDEyMDAwMDAKKzk3NSAzMiAxODAwMDAwCis5NzUgMzIgMjQwMDAwMAorOTc1IDMyIDMwMDAwMDAKKzk3NSAzMiAzNjAwMDAwCis5NzUgMzIgNDIwMDAwMAorOTc1IDMyIDQ4MDAwMDAKKzk3NSAzMiA1NDAwMDAwCis5NzUgMzIgNjAwMDAwMAorOTc1IDMyIDY2MDAwMDAKKzk3NSAzMiA3MjAwMDAwCis5NzUgMzIgNzgwMDAwMAorOTc1IDMyIDg0MDAwMDAKKzk3NSAzMiA5MDAwMDAwCis1MjAgMzIgOTYwMDAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9nc21fMWNoXzhraHpfMTNrYnBzLnJhdyBiL21lZGlhL3Jlcy9iYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5yYXcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGY5MDNhOAotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfZ3NtXzFjaF84a2h6XzEza2Jwcy5yYXcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9oMjYzXzM1MngyODhfMzAwa2Jwc18xMmZwcy5oMjYzIGIvbWVkaWEvcmVzL2JiYl9oMjYzXzM1MngyODhfMzAwa2Jwc18xMmZwcy5oMjYzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1MjU4MWYKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmgyNjMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9oMjYzXzM1MngyODhfMzAwa2Jwc18xMmZwcy5pbmZvIGIvbWVkaWEvcmVzL2JiYl9oMjYzXzM1MngyODhfMzAwa2Jwc18xMmZwcy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2ODczZDQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2gyNjNfMzUyeDI4OF8zMDBrYnBzXzEyZnBzLmluZm8KQEAgLTAsMCArMSwxMjIgQEAKKzI2MzYyIDMyIDAKKzEyMDIzIDAgODMzMzMKKzEwNjQ3IDAgMTY2NjY2CisxMDI2OSAwIDI1MDAwMAorMTEwNzYgMCAzMzMzMzMKKzExMTA0IDAgNDE2NjY2Cis1OTA5IDAgNTAwMDAwCis0MjkxIDAgNTgzMzMzCis1MTQ5IDAgNjY2NjY2Cis1MzUzIDAgNzUwMDAwCis1MTg1IDAgODMzMzMzCisyNzM2IDAgOTE2NjY2CisyMTU3NSAzMiAxMDAwMDAwCisyMTk2IDAgMTA4MzMzMworNDM0MCAwIDExNjY2NjYKKzMxMDkgMCAxMjUwMDAwCis0NDEwIDAgMTMzMzMzMworMTczMSAwIDE0MTY2NjYKKzQ1NTcgMCAxNTAwMDAwCiszMzc2IDAgMTU4MzMzMworMTM1MiAwIDE2NjY2NjYKKzI4NDQgMCAxNzUwMDAwCisxNzg3IDAgMTgzMzMzMworMTA4OCAwIDE5MTY2NjYKKzM2ODQzIDMyIDIwMDAwMDAKKzI1MjAgMCAyMDgzMzMzCiszNzQ5IDAgMjE2NjY2NgorMzc4NCAwIDIyNTAwMDAKKzM0MDIgMCAyMzMzMzMzCiszNzk1IDAgMjQxNjY2NgorMjM0NSAwIDI1MDAwMDAKKzMxNDIgMCAyNTgzMzMzCisyOTQ4IDAgMjY2NjY2NgorMjAxOCAwIDI3NTAwMDAKKzUxMzMgMCAyODMzMzMzCisyMjc2IDAgMjkxNjY2NgorMjM0NjggMzIgMzAwMDAwMAorMTUyMiAwIDMwODMzMzMKKzIyOTkgMCAzMTY2NjY2CiszMjczIDAgMzI1MDAwMAorMjYzMCAwIDMzMzMzMzMKKzI5MTUgMCAzNDE2NjY2CiszMDMyIDAgMzUwMDAwMAorMTg5MCAwIDM1ODMzMzMKKzM3MTggMCAzNjY2NjY2CisxOTkwIDAgMzc1MDAwMAorMzEzOSAwIDM4MzMzMzMKKzE4MDYgMCAzOTE2NjY2CisyMzIwOCAzMiA0MDAwMDAwCisxNDE5IDAgNDA4MzMzMworMjI2MyAwIDQxNjY2NjYKKzMxMzEgMCA0MjUwMDAwCisyNjQ1IDAgNDMzMzMzMworMTg4MCAwIDQ0MTY2NjYKKzIyMzkgMCA0NTAwMDAwCiszNjM3IDAgNDU4MzMzMworMTk0MSAwIDQ2NjY2NjYKKzE1NzcgMCA0NzUwMDAwCiszNzc3IDAgNDgzMzMzMworMTgxNiAwIDQ5MTY2NjYKKzE5NjAxIDMyIDUwMDAwMDAKKzExMDQgMCA1MDgzMzMzCisyODA4IDAgNTE2NjY2NgorMjQxMSAwIDUyNTAwMDAKKzIxNTkgMCA1MzMzMzMzCisyNDExIDAgNTQxNjY2NgorMjQwOCAwIDU1MDAwMDAKKzIzODggMCA1NTgzMzMzCisyNDE4IDAgNTY2NjY2NgorMTQ4MSAwIDU3NTAwMDAKKzE5MjYgMCA1ODMzMzMzCis5MDIyIDMyIDU5MTY2NjYKKzI5MiAwIDYwMDAwMDAKKzcwMSAwIDYwODMzMzMKKzc0NyAwIDYxNjY2NjYKKzIwNTkgMCA2MjUwMDAwCisxNjkzIDAgNjMzMzMzMworMjA3OCAwIDY0MTY2NjYKKzI5NzUgMCA2NTAwMDAwCisxMzE3IDAgNjU4MzMzMworMTc0MiAwIDY2NjY2NjYKKzEwMTkgMCA2NzUwMDAwCisxMDUzIDAgNjgzMzMzMworMTQxODMgMzIgNjkxNjY2NgorMTQ2NyAwIDcwMDAwMDAKKzk5NCAwIDcwODMzMzMKKzE3MDkgMCA3MTY2NjY2Cis4MzggMCA3MjUwMDAwCisxMzI4IDAgNzMzMzMzMworMjI5MiAwIDc0MTY2NjYKKzE4MjkgMCA3NTAwMDAwCisxNzI4IDAgNzU4MzMzMworMjQzNiAwIDc2NjY2NjYKKzE4NTIgMCA3NzUwMDAwCisyMTkwIDAgNzgzMzMzMworMTUxNjcgMzIgNzkxNjY2NgorMTE4OCAwIDgwMDAwMDAKKzIwNzAgMCA4MDgzMzMzCiszMzE2IDAgODE2NjY2NgorMjYzNiAwIDgyNTAwMDAKKzk1MCAwIDgzMzMzMzMKKzEyNjAgMCA4NDE2NjY2Cis5MDYgMCA4NTAwMDAwCisxMjk0IDAgODU4MzMzMworMTI5OCAwIDg2NjY2NjYKKzE4OTcgMCA4NzUwMDAwCisxMzQ4IDAgODgzMzMzMworMTMxOTQgMzIgODkxNjY2NgorMTA0MiAwIDkwMDAwMDAKKzEyNTggMCA5MDgzMzMzCisxNDU3IDAgOTE2NjY2NgorOTkwIDAgOTI1MDAwMAorOTAwIDAgOTMzMzMzMworOTYzIDAgOTQxNjY2NgorMzQ0OCAwIDk1MDAwMDAKKzc3NCAwIDk1ODMzMzMKKzEwNzUgMCA5NjY2NjY2Cis3NTAgMCA5NzUwMDAwCisxMDU0IDAgOTgzMzMzMworMTMxMzkgMzIgOTkxNjY2NgorMzEwNCAwIDEwMDAwMDAwCiszMzY2IDAgMTAwODMzMzMKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmhldmMgYi9tZWRpYS9yZXMvYmJiX2hldmNfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5oZXZjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY1MWY3Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2hldmNfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5oZXZjCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfaGV2Y182NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8gYi9tZWRpYS9yZXMvYmJiX2hldmNfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5ZTU1NTQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX2hldmNfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy5pbmZvCkBAIC0wLDAgKzEsMzAyIEBACisxMDc1IDEyOCAwCisxMDc1IDEyOCAwCis2ODYxMyAzMiA2NjY4NworMTkwMjUgMCAxOTk2ODcKKzI0MDUgMCAxMzM2ODcKKzc3NyAwIDk5Njg3Cis2ODEgMCAxNjY2ODcKKzIwMjU0IDAgMzMzNjg3CisyOTI3IDAgMjY2Njg3Cis3NjYgMCAyMzM2ODcKKzY1OCAwIDI5OTY4NworMjA3ODYgMCA0NjY2ODcKKzQyMTQgMCAzOTk2ODcKKzYwOSAwIDM2NjY4NworNjYxIDAgNDMzNjg3CisyMDgzOCAwIDU5OTY4NworNDIwOSAwIDUzMzY4NworNTA2IDAgNDk5Njg3Cis1ODYgMCA1NjY2ODcKKzIwNDE1IDAgNzMzNjg3Cis0MjA3IDAgNjY2Njg3Cis0MjcgMCA2MzM2ODcKKzUxNCAwIDY5OTY4NworMjQ0NTcgMCA4OTk2ODcKKzE5MDQgMCA4MzM2ODcKKzkyMSAwIDc2NjY4NworOTkyIDAgNzk5Njg3Cis1NDMgMCA4NjY2ODcKKzI0MzQyIDAgMTA2NjY4NworMTgyMiAwIDk5OTY4NworODQwIDAgOTMzNjg3Cis4OTIgMCA5NjY2ODcKKzcxNSAwIDEwMzM2ODcKKzIyODkzIDAgMTIzMzY4NworMTYxOCAwIDExNjY2ODcKKzg4MSAwIDEwOTk2ODcKKzg5MCAwIDExMzM2ODcKKzc5NCAwIDExOTk2ODcKKzI0MjkyIDAgMTM5OTY4NworMTY3MyAwIDEzMzM2ODcKKzc1NSAwIDEyNjY2ODcKKzgxMCAwIDEyOTk2ODcKKzU4OCAwIDEzNjY2ODcKKzE5ODI4IDAgMTUzMzY4NworMTUzOCAwIDE0NjY2ODcKKzg5NCAwIDE0MzM2ODcKKzkzMyAwIDE0OTk2ODcKKzE5ODUzIDAgMTY2NjY4NworMjAxMSAwIDE1OTk2ODcKKzk4MSAwIDE1NjY2ODcKKzkwMCAwIDE2MzM2ODcKKzIyODY5IDAgMTgzMzY4NworMTU2MiAwIDE3NjY2ODcKKzg0MiAwIDE2OTk2ODcKKzc2NSAwIDE3MzM2ODcKKzY2NSAwIDE3OTk2ODcKKzIyMzQ2IDAgMTk2NjY4NworMjI0NSAwIDE4OTk2ODcKKzUxNiAwIDE4NjY2ODcKKzYwNCAwIDE5MzM2ODcKKzI0MzMzIDAgMjA5OTY4NworMTc2NSAwIDIwMzM2ODcKKzMxOCAwIDE5OTk2ODcKKzMyMCAwIDIwNjY2ODcKKzE4NTc3IDAgMjE5OTY4NworMTEyMyAwIDIxNjY2ODcKKzMzNyAwIDIxMzM2ODcKKzE3NTA5IDAgMjI5OTY4NworODY5IDAgMjI2NjY4NworOTAxIDAgMjIzMzY4NworMjMzNjYgMCAyNDMzNjg3CisxMjE3IDAgMjM2NjY4NworMzgwIDAgMjMzMzY4NworMzQ3IDAgMjM5OTY4NworMTk1NDIgMCAyNTMzNjg3CisxODg3IDAgMjQ5OTY4NworNDY3IDAgMjQ2NjY4NworMTg5MzkgMCAyNjY2Njg3CisyODYzIDAgMjU5OTY4NworMzE3IDAgMjU2NjY4NworMjcyIDAgMjYzMzY4NworMTkzNTMgMCAyNzk5Njg3CisyMDkyIDAgMjczMzY4NworMjAzIDAgMjY5OTY4NworMzEwIDAgMjc2NjY4NworMTg4MDAgMCAyOTMzNjg3CisyMDM4IDAgMjg2NjY4NworMjQyIDAgMjgzMzY4NworMTk5IDAgMjg5OTY4NworMTc0NTIgMCAzMDk5Njg3CisxMDYwIDAgMzAzMzY4NworMzAxIDAgMjk2NjY4NworNDUyIDAgMjk5OTY4NworMjU2IDAgMzA2NjY4NworMjEzNTIgMCAzMTk5Njg3Cis0MDkgMCAzMTY2Njg3CisxNzMgMCAzMTMzNjg3CisxOTE0MiAwIDMyOTk2ODcKKzY0MiAwIDMyNjY2ODcKKzQ2OCAwIDMyMzM2ODcKKzE5MDY2IDAgMzQzMzY4NworNjM1IDAgMzM2NjY4NworMTk3IDAgMzMzMzY4NworMTkwIDAgMzM5OTY4NworMTg4MTMgMCAzNTY2Njg3Cis5NjkgMCAzNDk5Njg3CisxNjUgMCAzNDY2Njg3CisyMDMgMCAzNTMzNjg3CisxNzM2MiAwIDM3MzM2ODcKKzI0NiAwIDM2NjY2ODcKKzIzNiAwIDM1OTk2ODcKKzE3NCAwIDM2MzM2ODcKKzE2NCAwIDM2OTk2ODcKKzE3MDgxIDAgMzg5OTY4NworMzUzIDAgMzgzMzY4NworMjIyIDAgMzc2NjY4NworMTgxIDAgMzc5OTY4NworMTQ4IDAgMzg2NjY4NworMTA4MzUgMCAzOTk5Njg3CisxODUgMCAzOTY2Njg3CisxMzkgMCAzOTMzNjg3Cis3NTEwIDAgNDEzMzY4NworMTQ5IDAgNDA2NjY4NworMTI5IDAgNDAzMzY4NworMTMyIDAgNDA5OTY4NworMTA2MyAwIDQxNjY2ODcKKzgwNSAwIDQyNjY2ODcKKzE1NyAwIDQyMzM2ODcKKzM5NCAwIDQxOTk2ODcKKzkwODQwIDAgNDM5OTY4NworNjE1OSAwIDQzMzM2ODcKKzE3NTIgMCA0Mjk5Njg3Cis5ODUgMCA0MzY2Njg3CiszMTMzOCAwIDQ1MzM2ODcKKzMzOTAgMCA0NDY2Njg3Cis3NzIgMCA0NDMzNjg3Cis3ODEgMCA0NDk5Njg3CiszMTA4NCAwIDQ2NjY2ODcKKzM0OTggMCA0NTk5Njg3Cis4MTggMCA0NTY2Njg3Cis4ODEgMCA0NjMzNjg3CiszMDQxNiAwIDQ3OTk2ODcKKzMyNjUgMCA0NzMzNjg3Cis4MTUgMCA0Njk5Njg3Cis3OTAgMCA0NzY2Njg3CiszMTA1MyAwIDQ5MzM2ODcKKzMxMDYgMCA0ODY2Njg3Cis3MDggMCA0ODMzNjg3Cis3MTMgMCA0ODk5Njg3CiszMDIzMCAwIDUwNjY2ODcKKzMyMTQgMCA0OTk5Njg3Cis2MzkgMCA0OTY2Njg3Cis3NjggMCA1MDMzNjg3CisyOTY1NyAwIDUxOTk2ODcKKzMwMTMgMCA1MTMzNjg3Cis2MjIgMCA1MDk5Njg3Cis3MjAgMCA1MTY2Njg3CisyOTM0NCAwIDUzMzM2ODcKKzMxOTYgMCA1MjY2Njg3Cis3MTMgMCA1MjMzNjg3Cis3NzUgMCA1Mjk5Njg3CiszMDQyMCAwIDU0NjY2ODcKKzMzNzQgMCA1Mzk5Njg3Cis4MDMgMCA1MzY2Njg3Cis3MTcgMCA1NDMzNjg3CisyOTk2MCAwIDU1OTk2ODcKKzMyODMgMCA1NTMzNjg3Cis3OTMgMCA1NDk5Njg3Cis3OTAgMCA1NTY2Njg3CiszMTAxMSAwIDU3MzM2ODcKKzMzOTcgMCA1NjY2Njg3Cis4MDkgMCA1NjMzNjg3Cis4MzEgMCA1Njk5Njg3CiszMTE5NCAwIDU4NjY2ODcKKzM0MDEgMCA1Nzk5Njg3Cis4MDcgMCA1NzY2Njg3Cis4MjcgMCA1ODMzNjg3CiszMDMyNiAwIDU5OTk2ODcKKzMxODYgMCA1OTMzNjg3Cis4MTggMCA1ODk5Njg3Cis4NjMgMCA1OTY2Njg3CiszMTU1OSAwIDYxMzM2ODcKKzMzNjQgMCA2MDY2Njg3Cis4NDAgMCA2MDMzNjg3Cis5MTkgMCA2MDk5Njg3CiszMjAxMyAwIDYyNjY2ODcKKzM0OTUgMCA2MTk5Njg3Cis4NzEgMCA2MTY2Njg3Cis4MDMgMCA2MjMzNjg3CiszMDI5NCAwIDYzOTk2ODcKKzMxNTMgMCA2MzMzNjg3Cis3MTYgMCA2Mjk5Njg3Cis4MTIgMCA2MzY2Njg3CisyOTk1MiAwIDY1MzM2ODcKKzMyOTkgMCA2NDY2Njg3Cis4MDEgMCA2NDMzNjg3Cis3NDkgMCA2NDk5Njg3CiszMDU5OCAwIDY2NjY2ODcKKzM1MzYgMCA2NTk5Njg3Cis4ODcgMCA2NTY2Njg3Cis4NTAgMCA2NjMzNjg3CisxNzI0NiAwIDY2OTk2ODcKKzMxMTEwIDAgNjgzMzY4NworMzE5OCAwIDY3NjY2ODcKKzgwOSAwIDY3MzM2ODcKKzgzNiAwIDY3OTk2ODcKKzI5Nzg0IDAgNjk2NjY4NworMzE1NSAwIDY4OTk2ODcKKzg1OSAwIDY4NjY2ODcKKzk1OCAwIDY5MzM2ODcKKzMwNjY2IDAgNzA5OTY4NworMzM3MSAwIDcwMzM2ODcKKzg4NiAwIDY5OTk2ODcKKzg2MSAwIDcwNjY2ODcKKzMwNDE2IDAgNzIzMzY4NworMzM1MCAwIDcxNjY2ODcKKzkxNyAwIDcxMzM2ODcKKzk4NyAwIDcxOTk2ODcKKzI5NTA5IDAgNzM2NjY4NworMzU3NCAwIDcyOTk2ODcKKzk3MiAwIDcyNjY2ODcKKzg4NSAwIDczMzM2ODcKKzMwODcyIDAgNzQ5OTY4NworMzM5OSAwIDc0MzM2ODcKKzg5OCAwIDczOTk2ODcKKzEwMjcgMCA3NDY2Njg3CiszMTE1NSAwIDc2MzM2ODcKKzM0NTQgMCA3NTY2Njg3Cis5NjUgMCA3NTMzNjg3Cis4NDEgMCA3NTk5Njg3CisyODQ4NyAwIDc3NjY2ODcKKzM2MTYgMCA3Njk5Njg3Cis5MjEgMCA3NjY2Njg3Cis5OTEgMCA3NzMzNjg3CisyMzIwOCAwIDc4OTk2ODcKKzM1NTEgMCA3ODMzNjg3Cis5MTggMCA3Nzk5Njg3Cis4OTQgMCA3ODY2Njg3CisxNjk4MiAwIDgwMzM2ODcKKzM0NTggMCA3OTY2Njg3Cis4NDQgMCA3OTMzNjg3Cis5NDMgMCA3OTk5Njg3CiszMDM5NiAwIDgxOTk2ODcKKzQ5NjMgMCA4MTMzNjg3CisxNDE2IDAgODA2NjY4NworMTYzOSAwIDgwOTk2ODcKKzUyNCAwIDgxNjY2ODcKKzEzNjggMCA4Mjk5Njg3Cis1NjUgMCA4MjY2Njg3CiszOTIgMCA4MjMzNjg3Cis0MTMxNyAzMiA4Mzk5Njg3CisxODUgMCA4MzY2Njg3Cis0NzcgMCA4MzMzNjg3Cis1MzQyIDAgODUzMzY4NworMTI3NSAwIDg0NjY2ODcKKzEyMSAwIDg0MzM2ODcKKzk4MiAwIDg0OTk2ODcKKzY0NjUgMCA4Njk5Njg3CisyNjA2IDAgODYzMzY4NworMTE2MyAwIDg1NjY2ODcKKzk0MyAwIDg1OTk2ODcKKzExODYgMCA4NjY2Njg3CisxMTU5MyAwIDg4MzM2ODcKKzMxMjIgMCA4NzY2Njg3CisxMjc4IDAgODczMzY4NworMTU5MyAwIDg3OTk2ODcKKzkwOTkgMCA4OTk5Njg3Cis5NzggMCA4OTMzNjg3Cis3NDggMCA4ODY2Njg3Cis4MzUgMCA4ODk5Njg3CiszNjQgMCA4OTY2Njg3Cis0Nzk5IDAgOTA5OTY4NworMzY1IDAgOTA2NjY4NworMjE1IDAgOTAzMzY4NworNDM2NyAwIDkxOTk2ODcKKzMwMiAwIDkxNjY2ODcKKzQ4MCAwIDkxMzM2ODcKKzYxODAgMCA5MzMzNjg3Cis3NzEgMCA5MjY2Njg3CisyNDYgMCA5MjMzNjg3CisyODEgMCA5Mjk5Njg3Cis0NjM2IDAgOTM5OTY4NworMjExIDAgOTM2NjY4NworNDAzNyAwIDk0OTk2ODcKKzM4MiAwIDk0NjY2ODcKKzQ4NiAwIDk0MzM2ODcKKzM5NzUgMCA5NTk5Njg3CiszMTIgMCA5NTY2Njg3Cis0NzQgMCA5NTMzNjg3Cis2ODgwIDAgOTczMzY4NworMTExNiAwIDk2NjY2ODcKKzIwNiAwIDk2MzM2ODcKKzY5OCAwIDk2OTk2ODcKKzYyNTQgMCA5ODk5Njg3CisyNTgxIDAgOTgzMzY4NworMTMwMyAwIDk3NjY2ODcKKzk4NSAwIDk3OTk2ODcKKzk2NyAwIDk4NjY2ODcKKzY0ODYgMCAxMDAzMzY4NworMzU1NSAwIDk5NjY2ODcKKzE0MzAgMCA5OTMzNjg3CisxNjA1IDAgOTk5OTY4NwpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9tcDNfc3RlcmVvXzE5MmticHNfNDgwMDBoei5pbmZvIGIvbWVkaWEvcmVzL2JiYl9tcDNfc3RlcmVvXzE5MmticHNfNDgwMDBoei5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwYzQ4NjkKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX21wM19zdGVyZW9fMTkya2Jwc180ODAwMGh6LmluZm8KQEAgLTAsMCArMSw0MTQgQEAKKzU3NiAzMiAwCis1NzYgMzIgMjQwMDAKKzU3NiAzMiA0ODAwMAorNTc2IDMyIDcyMDAwCis1NzYgMzIgOTYwMDAKKzU3NiAzMiAxMjAwMDAKKzU3NiAzMiAxNDQwMDAKKzU3NiAzMiAxNjgwMDAKKzU3NiAzMiAxOTIwMDAKKzU3NiAzMiAyMTYwMDAKKzU3NiAzMiAyNDAwMDAKKzU3NiAzMiAyNjQwMDAKKzU3NiAzMiAyODgwMDAKKzU3NiAzMiAzMTIwMDAKKzU3NiAzMiAzMzYwMDAKKzU3NiAzMiAzNjAwMDAKKzU3NiAzMiAzODQwMDAKKzU3NiAzMiA0MDgwMDAKKzU3NiAzMiA0MzIwMDAKKzU3NiAzMiA0NTYwMDAKKzU3NiAzMiA0ODAwMDAKKzU3NiAzMiA1MDQwMDAKKzU3NiAzMiA1MjgwMDAKKzU3NiAzMiA1NTIwMDAKKzU3NiAzMiA1NzYwMDAKKzU3NiAzMiA2MDAwMDAKKzU3NiAzMiA2MjQwMDAKKzU3NiAzMiA2NDgwMDAKKzU3NiAzMiA2NzIwMDAKKzU3NiAzMiA2OTYwMDAKKzU3NiAzMiA3MjAwMDAKKzU3NiAzMiA3NDQwMDAKKzU3NiAzMiA3NjgwMDAKKzU3NiAzMiA3OTIwMDAKKzU3NiAzMiA4MTYwMDAKKzU3NiAzMiA4NDAwMDAKKzU3NiAzMiA4NjQwMDAKKzU3NiAzMiA4ODgwMDAKKzU3NiAzMiA5MTIwMDAKKzU3NiAzMiA5MzYwMDAKKzU3NiAzMiA5NjAwMDAKKzU3NiAzMiA5ODQwMDAKKzU3NiAzMiAxMDA4MDAwCis1NzYgMzIgMTAzMjAwMAorNTc2IDMyIDEwNTYwMDAKKzU3NiAzMiAxMDgwMDAwCis1NzYgMzIgMTEwNDAwMAorNTc2IDMyIDExMjgwMDAKKzU3NiAzMiAxMTUyMDAwCis1NzYgMzIgMTE3NjAwMAorNTc2IDMyIDEyMDAwMDAKKzU3NiAzMiAxMjI0MDAwCis1NzYgMzIgMTI0ODAwMAorNTc2IDMyIDEyNzIwMDAKKzU3NiAzMiAxMjk2MDAwCis1NzYgMzIgMTMyMDAwMAorNTc2IDMyIDEzNDQwMDAKKzU3NiAzMiAxMzY4MDAwCis1NzYgMzIgMTM5MjAwMAorNTc2IDMyIDE0MTYwMDAKKzU3NiAzMiAxNDQwMDAwCis1NzYgMzIgMTQ2NDAwMAorNTc2IDMyIDE0ODgwMDAKKzU3NiAzMiAxNTEyMDAwCis1NzYgMzIgMTUzNjAwMAorNTc2IDMyIDE1NjAwMDAKKzU3NiAzMiAxNTg0MDAwCis1NzYgMzIgMTYwODAwMAorNTc2IDMyIDE2MzIwMDAKKzU3NiAzMiAxNjU2MDAwCis1NzYgMzIgMTY4MDAwMAorNTc2IDMyIDE3MDQwMDAKKzU3NiAzMiAxNzI4MDAwCis1NzYgMzIgMTc1MjAwMAorNTc2IDMyIDE3NzYwMDAKKzU3NiAzMiAxODAwMDAwCis1NzYgMzIgMTgyNDAwMAorNTc2IDMyIDE4NDgwMDAKKzU3NiAzMiAxODcyMDAwCis1NzYgMzIgMTg5NjAwMAorNTc2IDMyIDE5MjAwMDAKKzU3NiAzMiAxOTQ0MDAwCis1NzYgMzIgMTk2ODAwMAorNTc2IDMyIDE5OTIwMDAKKzU3NiAzMiAyMDE2MDAwCis1NzYgMzIgMjA0MDAwMAorNTc2IDMyIDIwNjQwMDAKKzU3NiAzMiAyMDg4MDAwCis1NzYgMzIgMjExMjAwMAorNTc2IDMyIDIxMzYwMDAKKzU3NiAzMiAyMTYwMDAwCis1NzYgMzIgMjE4NDAwMAorNTc2IDMyIDIyMDgwMDAKKzU3NiAzMiAyMjMyMDAwCis1NzYgMzIgMjI1NjAwMAorNTc2IDMyIDIyODAwMDAKKzU3NiAzMiAyMzA0MDAwCis1NzYgMzIgMjMyODAwMAorNTc2IDMyIDIzNTIwMDAKKzU3NiAzMiAyMzc2MDAwCis1NzYgMzIgMjQwMDAwMAorNTc2IDMyIDI0MjQwMDAKKzU3NiAzMiAyNDQ4MDAwCis1NzYgMzIgMjQ3MjAwMAorNTc2IDMyIDI0OTYwMDAKKzU3NiAzMiAyNTIwMDAwCis1NzYgMzIgMjU0NDAwMAorNTc2IDMyIDI1NjgwMDAKKzU3NiAzMiAyNTkyMDAwCis1NzYgMzIgMjYxNjAwMAorNTc2IDMyIDI2NDAwMDAKKzU3NiAzMiAyNjY0MDAwCis1NzYgMzIgMjY4ODAwMAorNTc2IDMyIDI3MTIwMDAKKzU3NiAzMiAyNzM2MDAwCis1NzYgMzIgMjc2MDAwMAorNTc2IDMyIDI3ODQwMDAKKzU3NiAzMiAyODA4MDAwCis1NzYgMzIgMjgzMjAwMAorNTc2IDMyIDI4NTYwMDAKKzU3NiAzMiAyODgwMDAwCis1NzYgMzIgMjkwNDAwMAorNTc2IDMyIDI5MjgwMDAKKzU3NiAzMiAyOTUyMDAwCis1NzYgMzIgMjk3NjAwMAorNTc2IDMyIDMwMDAwMDAKKzU3NiAzMiAzMDI0MDAwCis1NzYgMzIgMzA0ODAwMAorNTc2IDMyIDMwNzIwMDAKKzU3NiAzMiAzMDk2MDAwCis1NzYgMzIgMzEyMDAwMAorNTc2IDMyIDMxNDQwMDAKKzU3NiAzMiAzMTY4MDAwCis1NzYgMzIgMzE5MjAwMAorNTc2IDMyIDMyMTYwMDAKKzU3NiAzMiAzMjQwMDAwCis1NzYgMzIgMzI2NDAwMAorNTc2IDMyIDMyODgwMDAKKzU3NiAzMiAzMzEyMDAwCis1NzYgMzIgMzMzNjAwMAorNTc2IDMyIDMzNjAwMDAKKzU3NiAzMiAzMzg0MDAwCis1NzYgMzIgMzQwODAwMAorNTc2IDMyIDM0MzIwMDAKKzU3NiAzMiAzNDU2MDAwCis1NzYgMzIgMzQ4MDAwMAorNTc2IDMyIDM1MDQwMDAKKzU3NiAzMiAzNTI4MDAwCis1NzYgMzIgMzU1MjAwMAorNTc2IDMyIDM1NzYwMDAKKzU3NiAzMiAzNjAwMDAwCis1NzYgMzIgMzYyNDAwMAorNTc2IDMyIDM2NDgwMDAKKzU3NiAzMiAzNjcyMDAwCis1NzYgMzIgMzY5NjAwMAorNTc2IDMyIDM3MjAwMDAKKzU3NiAzMiAzNzQ0MDAwCis1NzYgMzIgMzc2ODAwMAorNTc2IDMyIDM3OTIwMDAKKzU3NiAzMiAzODE2MDAwCis1NzYgMzIgMzg0MDAwMAorNTc2IDMyIDM4NjQwMDAKKzU3NiAzMiAzODg4MDAwCis1NzYgMzIgMzkxMjAwMAorNTc2IDMyIDM5MzYwMDAKKzU3NiAzMiAzOTYwMDAwCis1NzYgMzIgMzk4NDAwMAorNTc2IDMyIDQwMDgwMDAKKzU3NiAzMiA0MDMyMDAwCis1NzYgMzIgNDA1NjAwMAorNTc2IDMyIDQwODAwMDAKKzU3NiAzMiA0MTA0MDAwCis1NzYgMzIgNDEyODAwMAorNTc2IDMyIDQxNTIwMDAKKzU3NiAzMiA0MTc2MDAwCis1NzYgMzIgNDIwMDAwMAorNTc2IDMyIDQyMjQwMDAKKzU3NiAzMiA0MjQ4MDAwCis1NzYgMzIgNDI3MjAwMAorNTc2IDMyIDQyOTYwMDAKKzU3NiAzMiA0MzIwMDAwCis1NzYgMzIgNDM0NDAwMAorNTc2IDMyIDQzNjgwMDAKKzU3NiAzMiA0MzkyMDAwCis1NzYgMzIgNDQxNjAwMAorNTc2IDMyIDQ0NDAwMDAKKzU3NiAzMiA0NDY0MDAwCis1NzYgMzIgNDQ4ODAwMAorNTc2IDMyIDQ1MTIwMDAKKzU3NiAzMiA0NTM2MDAwCis1NzYgMzIgNDU2MDAwMAorNTc2IDMyIDQ1ODQwMDAKKzU3NiAzMiA0NjA4MDAwCis1NzYgMzIgNDYzMjAwMAorNTc2IDMyIDQ2NTYwMDAKKzU3NiAzMiA0NjgwMDAwCis1NzYgMzIgNDcwNDAwMAorNTc2IDMyIDQ3MjgwMDAKKzU3NiAzMiA0NzUyMDAwCis1NzYgMzIgNDc3NjAwMAorNTc2IDMyIDQ4MDAwMDAKKzU3NiAzMiA0ODI0MDAwCis1NzYgMzIgNDg0ODAwMAorNTc2IDMyIDQ4NzIwMDAKKzU3NiAzMiA0ODk2MDAwCis1NzYgMzIgNDkyMDAwMAorNTc2IDMyIDQ5NDQwMDAKKzU3NiAzMiA0OTY4MDAwCis1NzYgMzIgNDk5MjAwMAorNTc2IDMyIDUwMTYwMDAKKzU3NiAzMiA1MDQwMDAwCis1NzYgMzIgNTA2NDAwMAorNTc2IDMyIDUwODgwMDAKKzU3NiAzMiA1MTEyMDAwCis1NzYgMzIgNTEzNjAwMAorNTc2IDMyIDUxNjAwMDAKKzU3NiAzMiA1MTg0MDAwCis1NzYgMzIgNTIwODAwMAorNTc2IDMyIDUyMzIwMDAKKzU3NiAzMiA1MjU2MDAwCis1NzYgMzIgNTI4MDAwMAorNTc2IDMyIDUzMDQwMDAKKzU3NiAzMiA1MzI4MDAwCis1NzYgMzIgNTM1MjAwMAorNTc2IDMyIDUzNzYwMDAKKzU3NiAzMiA1NDAwMDAwCis1NzYgMzIgNTQyNDAwMAorNTc2IDMyIDU0NDgwMDAKKzU3NiAzMiA1NDcyMDAwCis1NzYgMzIgNTQ5NjAwMAorNTc2IDMyIDU1MjAwMDAKKzU3NiAzMiA1NTQ0MDAwCis1NzYgMzIgNTU2ODAwMAorNTc2IDMyIDU1OTIwMDAKKzU3NiAzMiA1NjE2MDAwCis1NzYgMzIgNTY0MDAwMAorNTc2IDMyIDU2NjQwMDAKKzU3NiAzMiA1Njg4MDAwCis1NzYgMzIgNTcxMjAwMAorNTc2IDMyIDU3MzYwMDAKKzU3NiAzMiA1NzYwMDAwCis1NzYgMzIgNTc4NDAwMAorNTc2IDMyIDU4MDgwMDAKKzU3NiAzMiA1ODMyMDAwCis1NzYgMzIgNTg1NjAwMAorNTc2IDMyIDU4ODAwMDAKKzU3NiAzMiA1OTA0MDAwCis1NzYgMzIgNTkyODAwMAorNTc2IDMyIDU5NTIwMDAKKzU3NiAzMiA1OTc2MDAwCis1NzYgMzIgNjAwMDAwMAorNTc2IDMyIDYwMjQwMDAKKzU3NiAzMiA2MDQ4MDAwCis1NzYgMzIgNjA3MjAwMAorNTc2IDMyIDYwOTYwMDAKKzU3NiAzMiA2MTIwMDAwCis1NzYgMzIgNjE0NDAwMAorNTc2IDMyIDYxNjgwMDAKKzU3NiAzMiA2MTkyMDAwCis1NzYgMzIgNjIxNjAwMAorNTc2IDMyIDYyNDAwMDAKKzU3NiAzMiA2MjY0MDAwCis1NzYgMzIgNjI4ODAwMAorNTc2IDMyIDYzMTIwMDAKKzU3NiAzMiA2MzM2MDAwCis1NzYgMzIgNjM2MDAwMAorNTc2IDMyIDYzODQwMDAKKzU3NiAzMiA2NDA4MDAwCis1NzYgMzIgNjQzMjAwMAorNTc2IDMyIDY0NTYwMDAKKzU3NiAzMiA2NDgwMDAwCis1NzYgMzIgNjUwNDAwMAorNTc2IDMyIDY1MjgwMDAKKzU3NiAzMiA2NTUyMDAwCis1NzYgMzIgNjU3NjAwMAorNTc2IDMyIDY2MDAwMDAKKzU3NiAzMiA2NjI0MDAwCis1NzYgMzIgNjY0ODAwMAorNTc2IDMyIDY2NzIwMDAKKzU3NiAzMiA2Njk2MDAwCis1NzYgMzIgNjcyMDAwMAorNTc2IDMyIDY3NDQwMDAKKzU3NiAzMiA2NzY4MDAwCis1NzYgMzIgNjc5MjAwMAorNTc2IDMyIDY4MTYwMDAKKzU3NiAzMiA2ODQwMDAwCis1NzYgMzIgNjg2NDAwMAorNTc2IDMyIDY4ODgwMDAKKzU3NiAzMiA2OTEyMDAwCis1NzYgMzIgNjkzNjAwMAorNTc2IDMyIDY5NjAwMDAKKzU3NiAzMiA2OTg0MDAwCis1NzYgMzIgNzAwODAwMAorNTc2IDMyIDcwMzIwMDAKKzU3NiAzMiA3MDU2MDAwCis1NzYgMzIgNzA4MDAwMAorNTc2IDMyIDcxMDQwMDAKKzU3NiAzMiA3MTI4MDAwCis1NzYgMzIgNzE1MjAwMAorNTc2IDMyIDcxNzYwMDAKKzU3NiAzMiA3MjAwMDAwCis1NzYgMzIgNzIyNDAwMAorNTc2IDMyIDcyNDgwMDAKKzU3NiAzMiA3MjcyMDAwCis1NzYgMzIgNzI5NjAwMAorNTc2IDMyIDczMjAwMDAKKzU3NiAzMiA3MzQ0MDAwCis1NzYgMzIgNzM2ODAwMAorNTc2IDMyIDczOTIwMDAKKzU3NiAzMiA3NDE2MDAwCis1NzYgMzIgNzQ0MDAwMAorNTc2IDMyIDc0NjQwMDAKKzU3NiAzMiA3NDg4MDAwCis1NzYgMzIgNzUxMjAwMAorNTc2IDMyIDc1MzYwMDAKKzU3NiAzMiA3NTYwMDAwCis1NzYgMzIgNzU4NDAwMAorNTc2IDMyIDc2MDgwMDAKKzU3NiAzMiA3NjMyMDAwCis1NzYgMzIgNzY1NjAwMAorNTc2IDMyIDc2ODAwMDAKKzU3NiAzMiA3NzA0MDAwCis1NzYgMzIgNzcyODAwMAorNTc2IDMyIDc3NTIwMDAKKzU3NiAzMiA3Nzc2MDAwCis1NzYgMzIgNzgwMDAwMAorNTc2IDMyIDc4MjQwMDAKKzU3NiAzMiA3ODQ4MDAwCis1NzYgMzIgNzg3MjAwMAorNTc2IDMyIDc4OTYwMDAKKzU3NiAzMiA3OTIwMDAwCis1NzYgMzIgNzk0NDAwMAorNTc2IDMyIDc5NjgwMDAKKzU3NiAzMiA3OTkyMDAwCis1NzYgMzIgODAxNjAwMAorNTc2IDMyIDgwNDAwMDAKKzU3NiAzMiA4MDY0MDAwCis1NzYgMzIgODA4ODAwMAorNTc2IDMyIDgxMTIwMDAKKzU3NiAzMiA4MTM2MDAwCis1NzYgMzIgODE2MDAwMAorNTc2IDMyIDgxODQwMDAKKzU3NiAzMiA4MjA4MDAwCis1NzYgMzIgODIzMjAwMAorNTc2IDMyIDgyNTYwMDAKKzU3NiAzMiA4MjgwMDAwCis1NzYgMzIgODMwNDAwMAorNTc2IDMyIDgzMjgwMDAKKzU3NiAzMiA4MzUyMDAwCis1NzYgMzIgODM3NjAwMAorNTc2IDMyIDg0MDAwMDAKKzU3NiAzMiA4NDI0MDAwCis1NzYgMzIgODQ0ODAwMAorNTc2IDMyIDg0NzIwMDAKKzU3NiAzMiA4NDk2MDAwCis1NzYgMzIgODUyMDAwMAorNTc2IDMyIDg1NDQwMDAKKzU3NiAzMiA4NTY4MDAwCis1NzYgMzIgODU5MjAwMAorNTc2IDMyIDg2MTYwMDAKKzU3NiAzMiA4NjQwMDAwCis1NzYgMzIgODY2NDAwMAorNTc2IDMyIDg2ODgwMDAKKzU3NiAzMiA4NzEyMDAwCis1NzYgMzIgODczNjAwMAorNTc2IDMyIDg3NjAwMDAKKzU3NiAzMiA4Nzg0MDAwCis1NzYgMzIgODgwODAwMAorNTc2IDMyIDg4MzIwMDAKKzU3NiAzMiA4ODU2MDAwCis1NzYgMzIgODg4MDAwMAorNTc2IDMyIDg5MDQwMDAKKzU3NiAzMiA4OTI4MDAwCis1NzYgMzIgODk1MjAwMAorNTc2IDMyIDg5NzYwMDAKKzU3NiAzMiA5MDAwMDAwCis1NzYgMzIgOTAyNDAwMAorNTc2IDMyIDkwNDgwMDAKKzU3NiAzMiA5MDcyMDAwCis1NzYgMzIgOTA5NjAwMAorNTc2IDMyIDkxMjAwMDAKKzU3NiAzMiA5MTQ0MDAwCis1NzYgMzIgOTE2ODAwMAorNTc2IDMyIDkxOTIwMDAKKzU3NiAzMiA5MjE2MDAwCis1NzYgMzIgOTI0MDAwMAorNTc2IDMyIDkyNjQwMDAKKzU3NiAzMiA5Mjg4MDAwCis1NzYgMzIgOTMxMjAwMAorNTc2IDMyIDkzMzYwMDAKKzU3NiAzMiA5MzYwMDAwCis1NzYgMzIgOTM4NDAwMAorNTc2IDMyIDk0MDgwMDAKKzU3NiAzMiA5NDMyMDAwCis1NzYgMzIgOTQ1NjAwMAorNTc2IDMyIDk0ODAwMDAKKzU3NiAzMiA5NTA0MDAwCis1NzYgMzIgOTUyODAwMAorNTc2IDMyIDk1NTIwMDAKKzU3NiAzMiA5NTc2MDAwCis1NzYgMzIgOTYwMDAwMAorNTc2IDMyIDk2MjQwMDAKKzU3NiAzMiA5NjQ4MDAwCis1NzYgMzIgOTY3MjAwMAorNTc2IDMyIDk2OTYwMDAKKzU3NiAzMiA5NzIwMDAwCis1NzYgMzIgOTc0NDAwMAorNTc2IDMyIDk3NjgwMDAKKzU3NiAzMiA5NzkyMDAwCis1NzYgMzIgOTgxNjAwMAorNTc2IDMyIDk4NDAwMDAKKzU3NiAzMiA5ODY0MDAwCis1NzYgMzIgOTg4ODAwMAorNTc2IDMyIDk5MTIwMDAKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfbXAzX3N0ZXJlb18xOTJrYnBzXzQ4MDAwaHoubXAzIGIvbWVkaWEvcmVzL2JiYl9tcDNfc3RlcmVvXzE5MmticHNfNDgwMDBoei5tcDMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgzYTQ0MQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfbXAzX3N0ZXJlb18xOTJrYnBzXzQ4MDAwaHoubXAzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfbXBlZzJfMTc2eDE0NF8xMDVrYnBzXzI1ZnBzLmluZm8gYi9tZWRpYS9yZXMvYmJiX21wZWcyXzE3NngxNDRfMTA1a2Jwc18yNWZwcy5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4MTNjZDQKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX21wZWcyXzE3NngxNDRfMTA1a2Jwc18yNWZwcy5pbmZvCkBAIC0wLDAgKzEsMjQ5IEBACis2NDU4IDMyIDQwMDAwCis0MDQwIDAgODAwMDAKKzMyNTUgMCAxMjAwMDAKKzMwMjYgMCAxNjAwMDAKKzMyOTMgMCAyMDAwMDAKKzMwODkgMCAyNDAwMDAKKzMzMDUgMCAyODAwMDAKKzE3OTQgMCAzMjAwMDAKKzE4NDggMCAzNjAwMDAKKzEyODggMCA0MDAwMDAKKzE1MTEgMCA0NDAwMDAKKzE1MjcgMCA0ODAwMDAKKzYxNDYgMzIgNTIwMDAwCisxMjQzIDAgNTYwMDAwCisxMDk5IDAgNjAwMDAwCisxMzU0IDAgNjQwMDAwCisxMzY2IDAgNjgwMDAwCisxMDQyIDAgNzIwMDAwCisxNjAwIDAgNzYwMDAwCis4NzUgMCA4MDAwMDAKKzE3MjggMCA4NDAwMDAKKzEyNTQgMCA4ODAwMDAKKzk5NCAwIDkyMDAwMAorMTU5MSAwIDk2MDAwMAorNjI2NSAzMiAxMDAwMDAwCisxMDE4IDAgMTA0MDAwMAorODI1IDAgMTA4MDAwMAorODY5IDAgMTEyMDAwMAorOTIxIDAgMTE2MDAwMAorOTc1IDAgMTIwMDAwMAorOTI0IDAgMTI0MDAwMAorODM0IDAgMTI4MDAwMAorMTA2NiAwIDEzMjAwMDAKKzc5MyAwIDEzNjAwMDAKKzg4OSAwIDE0MDAwMDAKKzIwNTAgMCAxNDQwMDAwCis2Mjc2IDMyIDE0ODAwMDAKKzg4MSAwIDE1MjAwMDAKKzI2MCAwIDE1NjAwMDAKKzczMCAwIDE2MDAwMDAKKzQzMSAwIDE2NDAwMDAKKzM1MSAwIDE2ODAwMDAKKzMyMSAwIDE3MjAwMDAKKzM4MDIgMCAxNzYwMDAwCisxNDYgMCAxODAwMDAwCis2NDYyIDAgMTg0MDAwMAorMzI0NiAwIDE4ODAwMDAKKzUzMyAwIDE5MjAwMDAKKzYyMzEgMzIgMTk2MDAwMAorMTM3OCAwIDIwMDAwMDAKKzcxOSAwIDIwNDAwMDAKKzgxOCAwIDIwODAwMDAKKzg1NiAwIDIxMjAwMDAKKzkzNyAwIDIxNjAwMDAKKzYxMSAwIDIyMDAwMDAKKzMwMzEgMCAyMjQwMDAwCisxMDQxIDAgMjI4MDAwMAorNjA0IDAgMjMyMDAwMAorNzE0IDAgMjM2MDAwMAorMTI4MyAwIDI0MDAwMDAKKzc1NjUgMzIgMjQ0MDAwMAorNjAyIDAgMjQ4MDAwMAorNTMwIDAgMjUyMDAwMAorMjU3OSAwIDI1NjAwMDAKKzExNSAwIDI2MDAwMDAKKzEwNTggMCAyNjQwMDAwCis2ODkgMCAyNjgwMDAwCisxMTE5IDAgMjcyMDAwMAorNjk4IDAgMjc2MDAwMAorMTAwNiAwIDI4MDAwMDAKKzU0NSAwIDI4NDAwMDAKKzE2MTcgMCAyODgwMDAwCis5MTIzIDMyIDI5MjAwMDAKKzUyNyAwIDI5NjAwMDAKKzE1NzYgMCAzMDAwMDAwCis0NjUgMCAzMDQwMDAwCis3NDEgMCAzMDgwMDAwCis1MjEgMCAzMTIwMDAwCisxMzIyIDAgMzE2MDAwMAorNzc1IDAgMzIwMDAwMAorODYzIDAgMzI0MDAwMAorOTEwIDAgMzI4MDAwMAorOTE1IDAgMzMyMDAwMAorOTI2IDAgMzM2MDAwMAorNzU1NiAzMiAzNDAwMDAwCis3NDEgMCAzNDQwMDAwCis1MjcgMCAzNDgwMDAwCisyNTE2IDAgMzUyMDAwMAorNDU5IDAgMzU2MDAwMAorNDA0IDAgMzYwMDAwMAorNTA5IDAgMzY0MDAwMAorMTIyNyAwIDM2ODAwMDAKKzE1NjEgMCAzNzIwMDAwCis0OTAgMCAzNzYwMDAwCis3MTIgMCAzODAwMDAwCis4MDMgMCAzODQwMDAwCis3NTI0IDMyIDM4ODAwMDAKKzczMCAwIDM5MjAwMDAKKzQ2MSAwIDM5NjAwMDAKKzI1MjYgMCA0MDAwMDAwCis0NTMgMCA0MDQwMDAwCis2MzIgMCA0MDgwMDAwCis3ODMgMCA0MTIwMDAwCis4NDMgMCA0MTYwMDAwCis5MTggMCA0MjAwMDAwCis5NjEgMCA0MjQwMDAwCis5NDggMCA0MjgwMDAwCis5NTkgMCA0MzIwMDAwCis3NTk4IDMyIDQzNjAwMDAKKzY3OCAwIDQ0MDAwMDAKKzU2OSAwIDQ0NDAwMDAKKzg5MyAwIDQ0ODAwMDAKKzYyNCAwIDQ1MjAwMDAKKzc1NSAwIDQ1NjAwMDAKKzIyMzQgMCA0NjAwMDAwCis1NTYgMCA0NjQwMDAwCis5NDQgMCA0NjgwMDAwCis3MzkgMCA0NzIwMDAwCis4NjIgMCA0NzYwMDAwCis5MzggMCA0ODAwMDAwCis3NTc0IDMyIDQ4NDAwMDAKKzY5OSAwIDQ4ODAwMDAKKzcwMSAwIDQ5MjAwMDAKKzUzMCAwIDQ5NjAwMDAKKzY4OSAwIDUwMDAwMDAKKzc3OCAwIDUwNDAwMDAKKzg1NiAwIDUwODAwMDAKKzkzMCAwIDUxMjAwMDAKKzk3NSAwIDUxNjAwMDAKKzEwMjEgMCA1MjAwMDAwCisxMDc0IDAgNTI0MDAwMAorOTc4IDAgNTI4MDAwMAorODAyMSAzMiA1MzIwMDAwCis3MDQgMCA1MzYwMDAwCis2MTAgMCA1NDAwMDAwCis2OTcgMCA1NDQwMDAwCis3MTEgMCA1NDgwMDAwCis4MjAgMCA1NTIwMDAwCis4NDMgMCA1NTYwMDAwCisyNTEgMCA1NjAwMDAwCiszMzY3IDAgNTY0MDAwMAorNTA3IDAgNTY4MDAwMAorMzE2OCAzMiA1NzIwMDAwCis3NzkgMCA1NzYwMDAwCiszMTYgMCA1ODAwMDAwCis2MzUgMCA1ODQwMDAwCisyMDQgMCA1ODgwMDAwCis5NzggMCA1OTIwMDAwCisxMjcgMCA1OTYwMDAwCis1ODkgMCA2MDAwMDAwCis2MDQgMCA2MDQwMDAwCis2NjYgMCA2MDgwMDAwCis1ODIgMCA2MTIwMDAwCis3MjkgMCA2MTYwMDAwCis0MTUyIDMyIDYyMDAwMDAKKzg1OCAwIDYyNDAwMDAKKzczOSAwIDYyODAwMDAKKzg4NSAwIDYzMjAwMDAKKzc0OSAwIDYzNjAwMDAKKzk1MCAwIDY0MDAwMDAKKzU5MyAwIDY0NDAwMDAKKzc3MSAwIDY0ODAwMDAKKzY3OCAwIDY1MjAwMDAKKzUyOSAwIDY1NjAwMDAKKzgzNSAwIDY2MDAwMDAKKzM5MSAwIDY2NDAwMDAKKzQ2OTIgMzIgNjY4MDAwMAorNDczIDAgNjcyMDAwMAorNzI0IDAgNjc2MDAwMAorMzgxIDAgNjgwMDAwMAorOTA5IDAgNjg0MDAwMAorMzk0IDAgNjg4MDAwMAorNjU5IDAgNjkyMDAwMAorMzY3IDAgNjk2MDAwMAorNjU4IDAgNzAwMDAwMAorNTIzIDAgNzA0MDAwMAorNTU0IDAgNzA4MDAwMAorNTUzIDAgNzEyMDAwMAorNjA4MCAzMiA3MTYwMDAwCis0OTYgMCA3MjAwMDAwCis3NjMgMCA3MjQwMDAwCis5MzkgMCA3MjgwMDAwCis3MTUgMCA3MzIwMDAwCis2NzIgMCA3MzYwMDAwCis2MTQgMCA3NDAwMDAwCis4MTEgMCA3NDQwMDAwCis5MTYgMCA3NDgwMDAwCisxMTUzIDAgNzUyMDAwMAorOTQwIDAgNzU2MDAwMAorMzIyIDAgNzYwMDAwMAorNjYxMyAzMiA3NjQwMDAwCis4NTEgMCA3NjgwMDAwCisxMDA3IDAgNzcyMDAwMAorNTIwIDAgNzc2MDAwMAorNDU2IDAgNzgwMDAwMAorNjM5IDAgNzg0MDAwMAorNzU4IDAgNzg4MDAwMAorODc5IDAgNzkyMDAwMAorMTE1MiAwIDc5NjAwMDAKKzEwNjEgMCA4MDAwMDAwCis5NDYgMCA4MDQwMDAwCis4NTkgMCA4MDgwMDAwCiszNjEwIDMyIDgxMjAwMDAKKzg3MSAwIDgxNjAwMDAKKzc0NiAwIDgyMDAwMDAKKzM2NyAwIDgyNDAwMDAKKzM5NyAwIDgyODAwMDAKKzkzMCAwIDgzMjAwMDAKKzMzNyAwIDgzNjAwMDAKKzQxOCAwIDg0MDAwMDAKKzc0MCAwIDg0NDAwMDAKKzYzNyAwIDg0ODAwMDAKKzY2NiAwIDg1MjAwMDAKKzYyNyAwIDg1NjAwMDAKKzQzMzggMzIgODYwMDAwMAorNzQ1IDAgODY0MDAwMAorNzgzIDAgODY4MDAwMAorNDY1IDAgODcyMDAwMAorNDYwIDAgODc2MDAwMAorNDU1IDAgODgwMDAwMAorNTA2IDAgODg0MDAwMAorNDkyIDAgODg4MDAwMAorNDg1IDAgODkyMDAwMAorNTE3IDAgODk2MDAwMAorNTM0IDAgOTAwMDAwMAorMzk1IDAgOTA0MDAwMAorNTYyNiAzMiA5MDgwMDAwCisxMTY5IDAgOTEyMDAwMAorNTY0IDAgOTE2MDAwMAorMjYxIDAgOTIwMDAwMAorMzI3IDAgOTI0MDAwMAorMzAzIDAgOTI4MDAwMAorMTE0NSAwIDkzMjAwMDAKKzI1NyAwIDkzNjAwMDAKKzQ5OCAwIDk0MDAwMDAKKzQ2NSAwIDk0NDAwMDAKKzQxNCAwIDk0ODAwMDAKKzU1MyAwIDk1MjAwMDAKKzU2MTcgMzIgOTU2MDAwMAorMTA1MiAwIDk2MDAwMDAKKzU5MiAwIDk2NDAwMDAKKzMyMyAwIDk2ODAwMDAKKzQ5NyAwIDk3MjAwMDAKKzQ2NyAwIDk3NjAwMDAKKzcwNSAwIDk4MDAwMDAKKzEwODYgMCA5ODQwMDAwCisxMjUzIDAgOTg4MDAwMAorMTI1MiAwIDk5MjAwMDAKKzc3NiAwIDk5NjAwMDAKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfbXBlZzJfMTc2eDE0NF8xMDVrYnBzXzI1ZnBzLm0ydiBiL21lZGlhL3Jlcy9iYmJfbXBlZzJfMTc2eDE0NF8xMDVrYnBzXzI1ZnBzLm0ydgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZGY5MGMzCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9tcGVnMl8xNzZ4MTQ0XzEwNWticHNfMjVmcHMubTJ2CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL21lZGlhL3Jlcy9iYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMuaW5mbyBiL21lZGlhL3Jlcy9iYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMuaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMDVhNDRjCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9tcGVnNF8xMjgweDcyMF8xMDAwa2Jwc18yNWZwcy5pbmZvCkBAIC0wLDAgKzEsMjUxIEBACis0OSAxMjggMAorNDkgMTI4IDAKKzU3NTQyIDMyIDAKKzUwOTYxIDAgNDAwMDAKKzI5MTM2IDAgODAwMDAKKzI4MTQ2IDAgMTIwMDAwCisyNTQ3MiAwIDE2MDAwMAorNTc1MiAwIDIwMDAwMAorNDM3MyAwIDI0MDAwMAorNDI2MSAwIDI4MDAwMAorNTA4MyAwIDMyMDAwMAorNjUwNCAwIDM2MDAwMAorNTA4MCAwIDQwMDAwMAorNTY4OCAwIDQ0MDAwMAorNTA4MzQgMzIgNDgwMDAwCis0NTU5IDAgNTIwMDAwCis0MTE4IDAgNTYwMDAwCiszOTM3IDAgNjAwMDAwCis0MjYyIDAgNjQwMDAwCis0NjQ5IDAgNjgwMDAwCiszOTk1IDAgNzIwMDAwCiszODk5IDAgNzYwMDAwCiszODk2IDAgODAwMDAwCiszOTk4IDAgODQwMDAwCis0MTI5IDAgODgwMDAwCis0MDY0IDAgOTIwMDAwCis0Mjg3MiAzMiA5NjAwMDAKKzMyNjUgMCAxMDAwMDAwCisyNTA2IDAgMTA0MDAwMAorMjE3OCAwIDEwODAwMDAKKzI0NDUgMCAxMTIwMDAwCisyNDYxIDAgMTE2MDAwMAorMzI2NyAwIDEyMDAwMDAKKzI3MDAgMCAxMjQwMDAwCisyOTI0IDAgMTI4MDAwMAorMjQwNSAwIDEzMjAwMDAKKzI2NTYgMCAxMzYwMDAwCisyNDk0IDAgMTQwMDAwMAorNDc0NTQgMzIgMTQ0MDAwMAorMjk1NiAwIDE0ODAwMDAKKzE0MzQgMCAxNTIwMDAwCis3MDcgMCAxNTYwMDAwCisxMzEwIDAgMTYwMDAwMAorMTc5MSAwIDE2NDAwMDAKKzIwODggMCAxNjgwMDAwCisxMDc4IDAgMTcyMDAwMAorNzM4IDAgMTc2MDAwMAorNzQ4MzcgMzIgMTgwMDAwMAorMzMwNCAwIDE4NDAwMDAKKzM2NTYgMCAxODgwMDAwCisyODIyIDAgMTkyMDAwMAorMjU2NiAwIDE5NjAwMDAKKzI4MTYgMCAyMDAwMDAwCisyNTkwIDAgMjA0MDAwMAorMjQ3MSAwIDIwODAwMDAKKzI1NTMgMCAyMTIwMDAwCisyNTQ3IDAgMjE2MDAwMAorMjYyOCAwIDIyMDAwMDAKKzI2NjQgMCAyMjQwMDAwCiszODE2MSAzMiAyMjgwMDAwCisyOTk1IDAgMjMyMDAwMAorMjIwNSAwIDIzNjAwMDAKKzIwNTUgMCAyNDAwMDAwCisyMTIyIDAgMjQ0MDAwMAorMjIzNiAwIDI0ODAwMDAKKzI0MDcgMCAyNTIwMDAwCis4OTMgMCAyNTYwMDAwCisyNTExIDAgMjYwMDAwMAorMjcwMyAwIDI2NDAwMDAKKzI1MTEgMCAyNjgwMDAwCisyNTY0IDAgMjcyMDAwMAorMzU5NDQgMzIgMjc2MDAwMAorMzAwMiAwIDI4MDAwMDAKKzIxODggMCAyODQwMDAwCisyMTA5IDAgMjg4MDAwMAorMjA1OCAwIDI5MjAwMDAKKzIyNDIgMCAyOTYwMDAwCisyMjQwIDAgMzAwMDAwMAorMjM0NiAwIDMwNDAwMDAKKzIyMjMgMCAzMDgwMDAwCisyNDMwIDAgMzEyMDAwMAorMjQ4NiAwIDMxNjAwMDAKKzIzNzkgMCAzMjAwMDAwCiszNDAxNCAzMiAzMjQwMDAwCiszMDA5IDAgMzI4MDAwMAorMjA3MyAwIDMzMjAwMDAKKzIwMDUgMCAzMzYwMDAwCisyMDUyIDAgMzQwMDAwMAorMjE2NyAwIDM0NDAwMDAKKzIzMzEgMCAzNDgwMDAwCisyMjAxIDAgMzUyMDAwMAorODk2IDAgMzU2MDAwMAorMjU5NCAwIDM2MDAwMDAKKzI1ODkgMCAzNjQwMDAwCisyNTQyIDAgMzY4MDAwMAorMzM5NzMgMzIgMzcyMDAwMAorMjkxMyAwIDM3NjAwMDAKKzE5NzggMCAzODAwMDAwCisxOTQzIDAgMzg0MDAwMAorMTk4MyAwIDM4ODAwMDAKKzIyMzQgMCAzOTIwMDAwCisyMTQyIDAgMzk2MDAwMAorMjEwNiAwIDQwMDAwMDAKKzIyNTMgMCA0MDQwMDAwCisyMzI3IDAgNDA4MDAwMAorMjE4NiAwIDQxMjAwMDAKKzIzNjYgMCA0MTYwMDAwCiszMjA5NCAzMiA0MjAwMDAwCiszMDUwIDAgNDI0MDAwMAorMTkxMyAwIDQyODAwMDAKKzIwMTYgMCA0MzIwMDAwCisyMDk3IDAgNDM2MDAwMAorMjExMiAwIDQ0MDAwMDAKKzIxNjMgMCA0NDQwMDAwCisyMjU4IDAgNDQ4MDAwMAorMjIzMSAwIDQ1MjAwMDAKKzg4MiAwIDQ1NjAwMDAKKzI1NzUgMCA0NjAwMDAwCisyNzAwIDAgNDY0MDAwMAorMzM3NTQgMzIgNDY4MDAwMAorMzAxMSAwIDQ3MjAwMDAKKzIwMzQgMCA0NzYwMDAwCisxOTg2IDAgNDgwMDAwMAorMTk4MyAwIDQ4NDAwMDAKKzIxODAgMCA0ODgwMDAwCisyMDY3IDAgNDkyMDAwMAorMjI2MiAwIDQ5NjAwMDAKKzIzMjMgMCA1MDAwMDAwCisyMzY3IDAgNTA0MDAwMAorMjI4OSAwIDUwODAwMDAKKzIyNjMgMCA1MTIwMDAwCiszMTgwNiAzMiA1MTYwMDAwCiszMjg1IDAgNTIwMDAwMAorMTk1NyAwIDUyNDAwMDAKKzIwNzMgMCA1MjgwMDAwCisyMDU3IDAgNTMyMDAwMAorMjEzNCAwIDUzNjAwMDAKKzIwODYgMCA1NDAwMDAwCisyMjE3IDAgNTQ0MDAwMAorMjMxNCAwIDU0ODAwMDAKKzIxNzYgMCA1NTIwMDAwCis4NTIgMCA1NTYwMDAwCisyNDIxIDAgNTYwMDAwMAorMzcyMzYgMzIgNTY0MDAwMAorMTYxNDAgMzIgNTY4MDAwMAorMzQ5MSAwIDU3MjAwMDAKKzI4OTEgMCA1NzYwMDAwCisxNDk5IDAgNTgwMDAwMAorNjU5IDAgNTg0MDAwMAorNjUyIDAgNTg4MDAwMAorNjQ4IDAgNTkyMDAwMAorMTg5MiAwIDU5NjAwMDAKKzMwNTAgMCA2MDAwMDAwCisyMjM1IDAgNjA0MDAwMAorMTkyNSAwIDYwODAwMDAKKzE3OTAgMCA2MTIwMDAwCisxNjQ0MSAzMiA2MTYwMDAwCis1MzQxIDAgNjIwMDAwMAorMjQ0NSAwIDYyNDAwMDAKKzI4NzggMCA2MjgwMDAwCisyMzY2IDAgNjMyMDAwMAorMTczMiAwIDYzNjAwMDAKKzE4NTggMCA2NDAwMDAwCisxNjMyIDAgNjQ0MDAwMAorMTUxNCAwIDY0ODAwMDAKKzE4NzQgMCA2NTIwMDAwCisxMDU5IDAgNjU2MDAwMAorMTc5NSAwIDY2MDAwMDAKKzIwMTUzIDMyIDY2NDAwMDAKKzM1ODkgMCA2NjgwMDAwCisyNDE4IDAgNjcyMDAwMAorMTg5NiAwIDY3NjAwMDAKKzE1NzcgMCA2ODAwMDAwCisxNjI5IDAgNjg0MDAwMAorMTcxNyAwIDY4ODAwMDAKKzE3MTcgMCA2OTIwMDAwCisxODE1IDAgNjk2MDAwMAorMTY2MyAwIDcwMDAwMDAKKzE4NTUgMCA3MDQwMDAwCisxNjk5IDAgNzA4MDAwMAorMjExODQgMzIgNzEyMDAwMAorMzM5NSAwIDcxNjAwMDAKKzMyNzYgMCA3MjAwMDAwCiszODI1IDAgNzI0MDAwMAorMjc0NyAwIDcyODAwMDAKKzE2ODQgMCA3MzIwMDAwCisyMTQxIDAgNzM2MDAwMAorMjM3MiAwIDc0MDAwMDAKKzI3NzcgMCA3NDQwMDAwCisyODI4IDAgNzQ4MDAwMAorMjQ0MiAwIDc1MjAwMDAKKzEzMDIgMCA3NTYwMDAwCisyMDcwMiAzMiA3NjAwMDAwCis0MDQzIDAgNzY0MDAwMAorMjg3NSAwIDc2ODAwMDAKKzIwMjYgMCA3NzIwMDAwCisxOTgzIDAgNzc2MDAwMAorMjE3MyAwIDc4MDAwMDAKKzI2NzAgMCA3ODQwMDAwCiszMTQ1IDAgNzg4MDAwMAorNTMxMiAwIDc5MjAwMDAKKzU1NDcgMCA3OTYwMDAwCis0MjYyIDAgODAwMDAwMAorMjYzNyAwIDgwNDAwMDAKKzE1NzYxIDMyIDgwODAwMDAKKzI2OTMgMCA4MTIwMDAwCisxNDMzIDAgODE2MDAwMAorMjEwOCAwIDgyMDAwMDAKKzIyNTMgMCA4MjQwMDAwCisxODQ2IDAgODI4MDAwMAorMTI4MSAwIDgzMjAwMDAKKzIyOTQgMCA4MzYwMDAwCisyMjE3IDAgODQwMDAwMAorMjM3MCAwIDg0NDAwMDAKKzE4MDkgMCA4NDgwMDAwCisxODk5IDAgODUyMDAwMAorMjE2MzAgMzIgODU2MDAwMAorMzE4OSAwIDg2MDAwMDAKKzE2NzkgMCA4NjQwMDAwCisxNzMyIDAgODY4MDAwMAorMTY3MiAwIDg3MjAwMDAKKzE3ODggMCA4NzYwMDAwCisxNjU2IDAgODgwMDAwMAorMTc2NSAwIDg4NDAwMDAKKzE1NzkgMCA4ODgwMDAwCisyMTQyIDAgODkyMDAwMAorMTk1NCAwIDg5NjAwMDAKKzE4NTQgMCA5MDAwMDAwCisyNDk2NiAzMiA5MDQwMDAwCisyMTc2IDAgOTA4MDAwMAorMTIzNiAwIDkxMjAwMDAKKzEyODIgMCA5MTYwMDAwCisxNTI2IDAgOTIwMDAwMAorMTM2OSAwIDkyNDAwMDAKKzEyODMgMCA5MjgwMDAwCisxNDM0IDAgOTMyMDAwMAorMTMzNSAwIDkzNjAwMDAKKzIxNDQgMCA5NDAwMDAwCisxOTE3IDAgOTQ0MDAwMAorMTQwOSAwIDk0ODAwMDAKKzI3NzQ1IDMyIDk1MjAwMDAKKzE5MDUgMCA5NTYwMDAwCisxNDk1IDAgOTYwMDAwMAorMTY4NSAwIDk2NDAwMDAKKzE3NDUgMCA5NjgwMDAwCisxODk0IDAgOTcyMDAwMAorMzY2NyAwIDk3NjAwMDAKKzU1NDYgMCA5ODAwMDAwCis1NzI5IDAgOTg0MDAwMAorNDQ3OSAwIDk4ODAwMDAKKzM4MjkgMCA5OTIwMDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX21wZWc0XzEyODB4NzIwXzEwMDBrYnBzXzI1ZnBzLm00diBiL21lZGlhL3Jlcy9iYmJfbXBlZzRfMTI4MHg3MjBfMTAwMGticHNfMjVmcHMubTR2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMzJkNWUKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX21wZWc0XzEyODB4NzIwXzEwMDBrYnBzXzI1ZnBzLm00dgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX29wdXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIGIvbWVkaWEvcmVzL2JiYl9vcHVzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouaW5mbwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MTYwYzVjCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl9vcHVzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHouaW5mbwpAQCAtMCwwICsxLDUwMCBAQAorMTkgMTI4IDAKKzggMTI4IDAKKzYxNSAzMiAwCis1NTcgMzIgMTM1MDAKKzMxMSAzMiAzMzUwMAorMzI5IDMyIDUzNTAwCiszNDEgMzIgNzM1MDAKKzM3MCAzMiA5MzUwMAorMzU5IDMyIDExMzUwMAorMzQ0IDMyIDEzMzUwMAorMzM1IDMyIDE1MzUwMAorMzM0IDMyIDE3MzUwMAorMzI3IDMyIDE5MzUwMAorMzMwIDMyIDIxMzUwMAorMzI4IDMyIDIzMzUwMAorMzI4IDMyIDI1MzUwMAorMzQzIDMyIDI3MzUwMAorMzU4IDMyIDI5MzUwMAorMzQxIDMyIDMxMzUwMAorMzI2IDMyIDMzMzUwMAorMzMzIDMyIDM1MzUwMAorMzMzIDMyIDM3MzUwMAorNDAyIDMyIDM5MzUwMAorMzM4IDMyIDQxMzUwMAorMzI3IDMyIDQzMzUwMAorMzM0IDMyIDQ1MzUwMAorMzI5IDMyIDQ3MzUwMAorMzE4IDMyIDQ5MzUwMAorMzIyIDMyIDUxMzUwMAorMzIzIDMyIDUzMzUwMAorMzIwIDMyIDU1MzUwMAorMzI1IDMyIDU3MzUwMAorMzI4IDMyIDU5MzUwMAorMzI1IDMyIDYxMzUwMAorMzA0IDMyIDYzMzUwMAorMzA0IDMyIDY1MzUwMAorMzAzIDMyIDY3MzUwMAorMjk5IDMyIDY5MzUwMAorMjk2IDMyIDcxMzUwMAorMzA1IDMyIDczMzUwMAorMzA3IDMyIDc1MzUwMAorMzA4IDMyIDc3MzUwMAorMzEwIDMyIDc5MzUwMAorMzMxIDMyIDgxMzUwMAorMzMyIDMyIDgzMzUwMAorMzIzIDMyIDg1MzUwMAorMzEwIDMyIDg3MzUwMAorMzExIDMyIDg5MzUwMAorMzE2IDMyIDkxMzUwMAorMzA4IDMyIDkzMzUwMAorMzIxIDMyIDk1MzUwMAorMzIwIDMyIDk3MzUwMAorMzEwIDMyIDk5MzUwMAorMzA0IDMyIDEwMTM1MDAKKzMwMyAzMiAxMDMzNTAwCiszMDEgMzIgMTA1MzUwMAorMjk1IDMyIDEwNzM1MDAKKzMwMiAzMiAxMDkzNTAwCiszMTEgMzIgMTExMzUwMAorMzIyIDMyIDExMzM1MDAKKzMxMyAzMiAxMTUzNTAwCiszMTUgMzIgMTE3MzUwMAorMzE1IDMyIDExOTM1MDAKKzMxNSAzMiAxMjEzNTAwCiszMzkgMzIgMTIzMzUwMAorMzM2IDMyIDEyNTM1MDAKKzMxNiAzMiAxMjczNTAwCiszMjEgMzIgMTI5MzUwMAorMjk3IDMyIDEzMTM1MDAKKzI5NSAzMiAxMzMzNTAwCisyOTQgMzIgMTM1MzUwMAorMjk3IDMyIDEzNzM1MDAKKzI5NiAzMiAxMzkzNTAwCisyOTUgMzIgMTQxMzUwMAorMjk1IDMyIDE0MzM1MDAKKzI5NCAzMiAxNDUzNTAwCiszMDYgMzIgMTQ3MzUwMAorMzAzIDMyIDE0OTM1MDAKKzMwOCAzMiAxNTEzNTAwCiszMDIgMzIgMTUzMzUwMAorMzA2IDMyIDE1NTM1MDAKKzMwMiAzMiAxNTczNTAwCisyOTUgMzIgMTU5MzUwMAorMjkzIDMyIDE2MTM1MDAKKzMwNyAzMiAxNjMzNTAwCiszMTMgMzIgMTY1MzUwMAorMzA1IDMyIDE2NzM1MDAKKzMwOCAzMiAxNjkzNTAwCiszMjUgMzIgMTcxMzUwMAorMzEyIDMyIDE3MzM1MDAKKzMwNSAzMiAxNzUzNTAwCiszMDEgMzIgMTc3MzUwMAorMzIyIDMyIDE3OTM1MDAKKzMxOSAzMiAxODEzNTAwCiszMTcgMzIgMTgzMzUwMAorMzE3IDMyIDE4NTM1MDAKKzMyMiAzMiAxODczNTAwCiszMDIgMzIgMTg5MzUwMAorMzA4IDMyIDE5MTM1MDAKKzMwNSAzMiAxOTMzNTAwCiszMDUgMzIgMTk1MzUwMAorMzAwIDMyIDE5NzM1MDAKKzI5MyAzMiAxOTkzNTAwCiszMDAgMzIgMjAxMzUwMAorMzAwIDMyIDIwMzM1MDAKKzI5NCAzMiAyMDUzNTAwCisyOTMgMzIgMjA3MzUwMAorMjk1IDMyIDIwOTM1MDAKKzI5MCAzMiAyMTEzNTAwCiszMDMgMzIgMjEzMzUwMAorMzExIDMyIDIxNTM1MDAKKzQzMSAzMiAyMTczNTAwCisyOTMgMzIgMjE5MzUwMAorMzAyIDMyIDIyMTM1MDAKKzMwNiAzMiAyMjMzNTAwCisyOTcgMzIgMjI1MzUwMAorMjk3IDMyIDIyNzM1MDAKKzMwMSAzMiAyMjkzNTAwCis0MDQgMzIgMjMxMzUwMAorMjk5IDMyIDIzMzM1MDAKKzQ0MyAzMiAyMzUzNTAwCisyOTYgMzIgMjM3MzUwMAorMjk2IDMyIDIzOTM1MDAKKzMwNiAzMiAyNDEzNTAwCiszMTMgMzIgMjQzMzUwMAorMzE0IDMyIDI0NTM1MDAKKzMwMyAzMiAyNDczNTAwCiszMDYgMzIgMjQ5MzUwMAorMzIwIDMyIDI1MTM1MDAKKzMxMSAzMiAyNTMzNTAwCiszMDMgMzIgMjU1MzUwMAorMzE2IDMyIDI1NzM1MDAKKzMxNyAzMiAyNTkzNTAwCiszMDAgMzIgMjYxMzUwMAorMjk3IDMyIDI2MzM1MDAKKzMwNiAzMiAyNjUzNTAwCiszMTIgMzIgMjY3MzUwMAorMzE5IDMyIDI2OTM1MDAKKzMwNyAzMiAyNzEzNTAwCiszMDkgMzIgMjczMzUwMAorMzAyIDMyIDI3NTM1MDAKKzMwNiAzMiAyNzczNTAwCiszMTYgMzIgMjc5MzUwMAorMzAwIDMyIDI4MTM1MDAKKzMyMCAzMiAyODMzNTAwCiszMTIgMzIgMjg1MzUwMAorMzI0IDMyIDI4NzM1MDAKKzMxOSAzMiAyODkzNTAwCiszMTMgMzIgMjkxMzUwMAorMzE0IDMyIDI5MzM1MDAKKzMxNiAzMiAyOTUzNTAwCiszMTAgMzIgMjk3MzUwMAorMzAxIDMyIDI5OTM1MDAKKzMxMyAzMiAzMDEzNTAwCiszMDMgMzIgMzAzMzUwMAorMjk4IDMyIDMwNTM1MDAKKzI5MiAzMiAzMDczNTAwCisyODggMzIgMzA5MzUwMAorMjk0IDMyIDMxMTM1MDAKKzI5NiAzMiAzMTMzNTAwCisyOTYgMzIgMzE1MzUwMAorMjk0IDMyIDMxNzM1MDAKKzI5OSAzMiAzMTkzNTAwCiszMDMgMzIgMzIxMzUwMAorMjk0IDMyIDMyMzM1MDAKKzMwMSAzMiAzMjUzNTAwCiszMjEgMzIgMzI3MzUwMAorMzEwIDMyIDMyOTM1MDAKKzMxNCAzMiAzMzEzNTAwCisyOTggMzIgMzMzMzUwMAorMzAwIDMyIDMzNTM1MDAKKzMwMiAzMiAzMzczNTAwCisyOTcgMzIgMzM5MzUwMAorMjk4IDMyIDM0MTM1MDAKKzI5MyAzMiAzNDMzNTAwCiszMDQgMzIgMzQ1MzUwMAorMzA0IDMyIDM0NzM1MDAKKzMxMSAzMiAzNDkzNTAwCiszMTAgMzIgMzUxMzUwMAorMzIyIDMyIDM1MzM1MDAKKzM0MCAzMiAzNTUzNTAwCiszMzAgMzIgMzU3MzUwMAorMzI5IDMyIDM1OTM1MDAKKzMxOCAzMiAzNjEzNTAwCiszMDkgMzIgMzYzMzUwMAorMzA2IDMyIDM2NTM1MDAKKzMxMyAzMiAzNjczNTAwCiszMTQgMzIgMzY5MzUwMAorMzAzIDMyIDM3MTM1MDAKKzI5NyAzMiAzNzMzNTAwCisyOTYgMzIgMzc1MzUwMAorMjkyIDMyIDM3NzM1MDAKKzI5MSAzMiAzNzkzNTAwCisyOTEgMzIgMzgxMzUwMAorMjkxIDMyIDM4MzM1MDAKKzI5OSAzMiAzODUzNTAwCisyOTUgMzIgMzg3MzUwMAorMzAyIDMyIDM4OTM1MDAKKzMwNSAzMiAzOTEzNTAwCiszMDEgMzIgMzkzMzUwMAorMzExIDMyIDM5NTM1MDAKKzMxNyAzMiAzOTczNTAwCiszMTQgMzIgMzk5MzUwMAorMzEwIDMyIDQwMTM1MDAKKzM3OCAzMiA0MDMzNTAwCiszMTAgMzIgNDA1MzUwMAorMzAxIDMyIDQwNzM1MDAKKzM1MyAzMiA0MDkzNTAwCisyODkgMzIgNDExMzUwMAorMjk0IDMyIDQxMzM1MDAKKzI5NyAzMiA0MTUzNTAwCisyOTQgMzIgNDE3MzUwMAorMjk2IDMyIDQxOTM1MDAKKzMwNSAzMiA0MjEzNTAwCiszMDMgMzIgNDIzMzUwMAorMzE3IDMyIDQyNTM1MDAKKzM1OSAzMiA0MjczNTAwCiszMTQgMzIgNDI5MzUwMAorMzIzIDMyIDQzMTM1MDAKKzMxOSAzMiA0MzMzNTAwCiszMzAgMzIgNDM1MzUwMAorMzI2IDMyIDQzNzM1MDAKKzMwNSAzMiA0MzkzNTAwCiszMDAgMzIgNDQxMzUwMAorMjk4IDMyIDQ0MzM1MDAKKzI5NyAzMiA0NDUzNTAwCisyOTMgMzIgNDQ3MzUwMAorMjk2IDMyIDQ0OTM1MDAKKzMwMyAzMiA0NTEzNTAwCiszMTggMzIgNDUzMzUwMAorMzA2IDMyIDQ1NTM1MDAKKzI5NSAzMiA0NTczNTAwCisyOTQgMzIgNDU5MzUwMAorNDY4IDMyIDQ2MTM1MDAKKzI5MSAzMiA0NjMzNTAwCisyOTUgMzIgNDY1MzUwMAorMjkyIDMyIDQ2NzM1MDAKKzI5NiAzMiA0NjkzNTAwCisyOTEgMzIgNDcxMzUwMAorMjkwIDMyIDQ3MzM1MDAKKzI5OSAzMiA0NzUzNTAwCisyOTEgMzIgNDc3MzUwMAorMjk3IDMyIDQ3OTM1MDAKKzMwNCAzMiA0ODEzNTAwCiszMDYgMzIgNDgzMzUwMAorMjk2IDMyIDQ4NTM1MDAKKzI4NiAzMiA0ODczNTAwCisyOTkgMzIgNDg5MzUwMAorMjk0IDMyIDQ5MTM1MDAKKzMxOCAzMiA0OTMzNTAwCiszMjggMzIgNDk1MzUwMAorMzE4IDMyIDQ5NzM1MDAKKzMxOSAzMiA0OTkzNTAwCiszMTIgMzIgNTAxMzUwMAorMjk4IDMyIDUwMzM1MDAKKzMwMSAzMiA1MDUzNTAwCisyOTYgMzIgNTA3MzUwMAorMjkzIDMyIDUwOTM1MDAKKzI5MyAzMiA1MTEzNTAwCisyOTcgMzIgNTEzMzUwMAorMjk2IDMyIDUxNTM1MDAKKzI5NCAzMiA1MTczNTAwCisyOTQgMzIgNTE5MzUwMAorMjkyIDMyIDUyMTM1MDAKKzI5NiAzMiA1MjMzNTAwCisyOTEgMzIgNTI1MzUwMAorMjk0IDMyIDUyNzM1MDAKKzI5NyAzMiA1MjkzNTAwCiszMDQgMzIgNTMxMzUwMAorMjk1IDMyIDUzMzM1MDAKKzI5MCAzMiA1MzUzNTAwCisyOTQgMzIgNTM3MzUwMAorMjkzIDMyIDUzOTM1MDAKKzI5NCAzMiA1NDEzNTAwCisyOTQgMzIgNTQzMzUwMAorMjkzIDMyIDU0NTM1MDAKKzI4OSAzMiA1NDczNTAwCisyOTMgMzIgNTQ5MzUwMAorMjk1IDMyIDU1MTM1MDAKKzI5NSAzMiA1NTMzNTAwCisyODYgMzIgNTU1MzUwMAorMjkyIDMyIDU1NzM1MDAKKzI4OCAzMiA1NTkzNTAwCisyOTIgMzIgNTYxMzUwMAorMjk2IDMyIDU2MzM1MDAKKzI4OCAzMiA1NjUzNTAwCisyOTQgMzIgNTY3MzUwMAorMjk0IDMyIDU2OTM1MDAKKzI5MyAzMiA1NzEzNTAwCisyOTEgMzIgNTczMzUwMAorMjkzIDMyIDU3NTM1MDAKKzMwMyAzMiA1NzczNTAwCiszMDYgMzIgNTc5MzUwMAorMzA3IDMyIDU4MTM1MDAKKzMwMiAzMiA1ODMzNTAwCisyOTQgMzIgNTg1MzUwMAorMjk3IDMyIDU4NzM1MDAKKzI5NyAzMiA1ODkzNTAwCiszMDIgMzIgNTkxMzUwMAorMjk5IDMyIDU5MzM1MDAKKzMwMiAzMiA1OTUzNTAwCisyOTcgMzIgNTk3MzUwMAorMjk5IDMyIDU5OTM1MDAKKzMwNSAzMiA2MDEzNTAwCiszMDcgMzIgNjAzMzUwMAorMzEwIDMyIDYwNTM1MDAKKzMxMCAzMiA2MDczNTAwCiszMTUgMzIgNjA5MzUwMAorMzA2IDMyIDYxMTM1MDAKKzMwNSAzMiA2MTMzNTAwCiszMDQgMzIgNjE1MzUwMAorMzA3IDMyIDYxNzM1MDAKKzMwNiAzMiA2MTkzNTAwCisyOTcgMzIgNjIxMzUwMAorMjk4IDMyIDYyMzM1MDAKKzI5MyAzMiA2MjUzNTAwCisyOTMgMzIgNjI3MzUwMAorMjk2IDMyIDYyOTM1MDAKKzMwNSAzMiA2MzEzNTAwCisyOTkgMzIgNjMzMzUwMAorMjk4IDMyIDYzNTM1MDAKKzMwNSAzMiA2MzczNTAwCisyOTEgMzIgNjM5MzUwMAorMjk2IDMyIDY0MTM1MDAKKzI5NiAzMiA2NDMzNTAwCiszMDMgMzIgNjQ1MzUwMAorMjk4IDMyIDY0NzM1MDAKKzMyOCAzMiA2NDkzNTAwCiszMjIgMzIgNjUxMzUwMAorMzIzIDMyIDY1MzM1MDAKKzMxOSAzMiA2NTUzNTAwCiszMzEgMzIgNjU3MzUwMAorMzMyIDMyIDY1OTM1MDAKKzMzMyAzMiA2NjEzNTAwCiszMjUgMzIgNjYzMzUwMAorMzM0IDMyIDY2NTM1MDAKKzMzMyAzMiA2NjczNTAwCiszMjkgMzIgNjY5MzUwMAorMzI1IDMyIDY3MTM1MDAKKzMyMSAzMiA2NzMzNTAwCis0NjAgMzIgNjc1MzUwMAorMzIyIDMyIDY3NzM1MDAKKzMxMyAzMiA2NzkzNTAwCiszMDMgMzIgNjgxMzUwMAorMzA3IDMyIDY4MzM1MDAKKzMwMiAzMiA2ODUzNTAwCisyOTggMzIgNjg3MzUwMAorMjk0IDMyIDY4OTM1MDAKKzI5NiAzMiA2OTEzNTAwCisyODggMzIgNjkzMzUwMAorMjg2IDMyIDY5NTM1MDAKKzQwNCAzMiA2OTczNTAwCis0MDggMzIgNjk5MzUwMAorMzE2IDMyIDcwMTM1MDAKKzMzNiAzMiA3MDMzNTAwCiszMjYgMzIgNzA1MzUwMAorMzMzIDMyIDcwNzM1MDAKKzMyNCAzMiA3MDkzNTAwCiszMzAgMzIgNzExMzUwMAorMzE1IDMyIDcxMzM1MDAKKzMxOCAzMiA3MTUzNTAwCiszMjMgMzIgNzE3MzUwMAorMzA0IDMyIDcxOTM1MDAKKzMwMiAzMiA3MjEzNTAwCiszMTAgMzIgNzIzMzUwMAorMzI5IDMyIDcyNTM1MDAKKzMyNCAzMiA3MjczNTAwCiszMzIgMzIgNzI5MzUwMAorNDc0IDMyIDczMTM1MDAKKzM0NyAzMiA3MzMzNTAwCiszNTEgMzIgNzM1MzUwMAorNDEyIDMyIDczNzM1MDAKKzMyNiAzMiA3MzkzNTAwCiszMDAgMzIgNzQxMzUwMAorMzA4IDMyIDc0MzM1MDAKKzMwNyAzMiA3NDUzNTAwCisyOTkgMzIgNzQ3MzUwMAorMzA2IDMyIDc0OTM1MDAKKzQ1MCAzMiA3NTEzNTAwCisyOTQgMzIgNzUzMzUwMAorMzQ4IDMyIDc1NTM1MDAKKzI5NCAzMiA3NTczNTAwCisyODkgMzIgNzU5MzUwMAorMjgxIDMyIDc2MTM1MDAKKzI5MyAzMiA3NjMzNTAwCisyOTEgMzIgNzY1MzUwMAorMzQxIDMyIDc2NzM1MDAKKzI5MSAzMiA3NjkzNTAwCisyOTggMzIgNzcxMzUwMAorMjk1IDMyIDc3MzM1MDAKKzI5OCAzMiA3NzUzNTAwCisyOTkgMzIgNzc3MzUwMAorMzMyIDMyIDc3OTM1MDAKKzI5NyAzMiA3ODEzNTAwCiszMDIgMzIgNzgzMzUwMAorMzAyIDMyIDc4NTM1MDAKKzMxNiAzMiA3ODczNTAwCiszMjIgMzIgNzg5MzUwMAorMzI3IDMyIDc5MTM1MDAKKzMyMSAzMiA3OTMzNTAwCiszMTUgMzIgNzk1MzUwMAorMzA4IDMyIDc5NzM1MDAKKzMyMyAzMiA3OTkzNTAwCiszMDYgMzIgODAxMzUwMAorMzE5IDMyIDgwMzM1MDAKKzMxOCAzMiA4MDUzNTAwCiszMTkgMzIgODA3MzUwMAorMzE5IDMyIDgwOTM1MDAKKzMyMyAzMiA4MTEzNTAwCiszMjAgMzIgODEzMzUwMAorMzExIDMyIDgxNTM1MDAKKzMxMiAzMiA4MTczNTAwCiszMDcgMzIgODE5MzUwMAorMzExIDMyIDgyMTM1MDAKKzMxOCAzMiA4MjMzNTAwCiszNDYgMzIgODI1MzUwMAorMzQ4IDMyIDgyNzM1MDAKKzMzNiAzMiA4MjkzNTAwCiszMzQgMzIgODMxMzUwMAorMzMxIDMyIDgzMzM1MDAKKzM0MCAzMiA4MzUzNTAwCiszMzUgMzIgODM3MzUwMAorMzE5IDMyIDgzOTM1MDAKKzMwNyAzMiA4NDEzNTAwCiszMDQgMzIgODQzMzUwMAorMzAxIDMyIDg0NTM1MDAKKzMxMSAzMiA4NDczNTAwCiszMTcgMzIgODQ5MzUwMAorMzI1IDMyIDg1MTM1MDAKKzMyNyAzMiA4NTMzNTAwCiszMzUgMzIgODU1MzUwMAorMzQwIDMyIDg1NzM1MDAKKzMyMCAzMiA4NTkzNTAwCiszMzMgMzIgODYxMzUwMAorMzI4IDMyIDg2MzM1MDAKKzMxMiAzMiA4NjUzNTAwCiszMDQgMzIgODY3MzUwMAorMzM3IDMyIDg2OTM1MDAKKzMzNCAzMiA4NzEzNTAwCiszMzMgMzIgODczMzUwMAorMzI3IDMyIDg3NTM1MDAKKzMyOCAzMiA4NzczNTAwCiszNDAgMzIgODc5MzUwMAorNDc4IDMyIDg4MTM1MDAKKzMzMSAzMiA4ODMzNTAwCiszMjggMzIgODg1MzUwMAorMzIwIDMyIDg4NzM1MDAKKzMxNSAzMiA4ODkzNTAwCiszMjEgMzIgODkxMzUwMAorMzI0IDMyIDg5MzM1MDAKKzMyNSAzMiA4OTUzNTAwCiszMjMgMzIgODk3MzUwMAorMzI0IDMyIDg5OTM1MDAKKzMzNiAzMiA5MDEzNTAwCiszNDAgMzIgOTAzMzUwMAorMzMzIDMyIDkwNTM1MDAKKzMzOSAzMiA5MDczNTAwCis0OTAgMzIgOTA5MzUwMAorNDgwIDMyIDkxMTM1MDAKKzMyOSAzMiA5MTMzNTAwCiszMjcgMzIgOTE1MzUwMAorMzQxIDMyIDkxNzM1MDAKKzMzOCAzMiA5MTkzNTAwCiszMzcgMzIgOTIxMzUwMAorMzM3IDMyIDkyMzM1MDAKKzMyOCAzMiA5MjUzNTAwCiszMjIgMzIgOTI3MzUwMAorMzI0IDMyIDkyOTM1MDAKKzM0OSAzMiA5MzEzNTAwCiszNTAgMzIgOTMzMzUwMAorMzM3IDMyIDkzNTM1MDAKKzM0MiAzMiA5MzczNTAwCiszMzQgMzIgOTM5MzUwMAorMzI0IDMyIDk0MTM1MDAKKzMyMCAzMiA5NDMzNTAwCiszMjkgMzIgOTQ1MzUwMAorMzMzIDMyIDk0NzM1MDAKKzMyOCAzMiA5NDkzNTAwCiszMzUgMzIgOTUxMzUwMAorMzIyIDMyIDk1MzM1MDAKKzMyMyAzMiA5NTUzNTAwCiszMzAgMzIgOTU3MzUwMAorMzIwIDMyIDk1OTM1MDAKKzMxMyAzMiA5NjEzNTAwCis1MjYgMzIgOTYzMzUwMAorMzA2IDMyIDk2NTM1MDAKKzMwMCAzMiA5NjczNTAwCisyOTkgMzIgOTY5MzUwMAorMzAwIDMyIDk3MTM1MDAKKzI5OSAzMiA5NzMzNTAwCisyOTkgMzIgOTc1MzUwMAorMjk1IDMyIDk3NzM1MDAKKzI5MyAzMiA5NzkzNTAwCisyOTcgMzIgOTgxMzUwMAorMzA2IDMyIDk4MzM1MDAKKzMwMCAzMiA5ODUzNTAwCis0MzggMzIgOTg3MzUwMAorMjkxIDMyIDk4OTM1MDAKKzQ0OCAzMiA5OTEzNTAwCis1MDQgMzIgOTkzMzUwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9vcHVzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoub3B1cyBiL21lZGlhL3Jlcy9iYmJfb3B1c19zdGVyZW9fMTI4a2Jwc180ODAwMGh6Lm9wdXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzkwMDFhYwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfb3B1c19zdGVyZW9fMTI4a2Jwc180ODAwMGh6Lm9wdXMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzE2a2h6X3MxNmxlLnJhdyBiL21lZGlhL3Jlcy9iYmJfcmF3XzFjaF8xNmtoel9zMTZsZS5yYXcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGEyZjQxYgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfcmF3XzFjaF8xNmtoel9zMTZsZS5yYXcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczE2bGUucmF3IGIvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczE2bGUucmF3Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxNDllYjIKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMTZsZS5yYXcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczMybGUuaW5mbyBiL21lZGlhL3Jlcy9iYmJfcmF3XzFjaF84a2h6X3MzMmxlLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTMzOTI1YgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfcmF3XzFjaF84a2h6X3MzMmxlLmluZm8KQEAgLTAsMCArMSwxMCBAQAorMTYzODQgMzIgMAorMTYzODQgMzIgMTAyNDAwMAorMTYzODQgMzIgMjA0ODAwMAorMTYzODQgMzIgMzA3MjAwMAorMTYzODQgMzIgNDA5NjAwMAorMTYzODQgMzIgNTEyMDAwMAorMTYzODQgMzIgNjE0NDAwMAorMTYzODQgMzIgNzE2ODAwMAorMTYzODQgMzIgODE5MjAwMAorMTA5MjQgMzIgOTIxNjAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczMybGUucmF3IGIvbWVkaWEvcmVzL2JiYl9yYXdfMWNoXzhraHpfczMybGUucmF3Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMxNDllYjIKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX3Jhd18xY2hfOGtoel9zMzJsZS5yYXcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl9yYXdfMmNoXzQ4a2h6X3MxNmxlLnJhdyBiL21lZGlhL3Jlcy9iYmJfcmF3XzJjaF80OGtoel9zMTZsZS5yYXcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDk4YjJlYwotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfcmF3XzJjaF80OGtoel9zMTZsZS5yYXcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl92b3JiaXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvIGIvbWVkaWEvcmVzL2JiYl92b3JiaXNfc3RlcmVvXzEyOGticHNfNDgwMDBoei5pbmZvCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA3MTY2NDMKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX3ZvcmJpc19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LmluZm8KQEAgLTAsMCArMSw1MjAgQEAKKzMwIDEyOCAwCis0MTQwIDEyOCAwCiszMyAxMjggMAorNTIgMzIgMAorNTggMzIgMjY2NgorNjEgMzIgNTMzMworNTYgMzIgODAwMAorNTkgMzIgMTA2NjYKKzYzIDMyIDEzMzMzCis2NiAzMiAxNjAwMAorNzEgMzIgMTg2NjYKKzc2IDMyIDIxMzMzCiszNzQgMzIgMjQwMDAKKzM2NiAzMiAzNjAwMAorMzc4IDMyIDU3MzMzCiszOTMgMzIgNzg2NjYKKzM5MyAzMiAxMDAwMDAKKzM4NiAzMiAxMjEzMzMKKzM3NSAzMiAxNDI2NjYKKzM4OCAzMiAxNjQwMDAKKzM3OCAzMiAxODUzMzMKKzM3OSAzMiAyMDY2NjYKKzM3NCAzMiAyMjgwMDAKKzM1NiAzMiAyNDkzMzMKKzM1OCAzMiAyNzA2NjYKKzMzMiAzMiAyOTIwMDAKKzMzNSAzMiAzMTMzMzMKKzM2MyAzMiAzMzQ2NjYKKzM0MSAzMiAzNTYwMDAKKzM2MCAzMiAzNzczMzMKKzM0MSAzMiAzOTg2NjYKKzMzNSAzMiA0MjAwMDAKKzM1NyAzMiA0NDEzMzMKKzM1NSAzMiA0NjI2NjYKKzM2MyAzMiA0ODQwMDAKKzM4MiAzMiA1MDUzMzMKKzM3MSAzMiA1MjY2NjYKKzM1NyAzMiA1NDgwMDAKKzM1MyAzMiA1NjkzMzMKKzM1MCAzMiA1OTA2NjYKKzMyNyAzMiA2MTIwMDAKKzMxNSAzMiA2MzMzMzMKKzMwNyAzMiA2NTQ2NjYKKzMwMyAzMiA2NzYwMDAKKzI5NSAzMiA2OTczMzMKKzMxMiAzMiA3MTg2NjYKKzMxNiAzMiA3NDAwMDAKKzMxNSAzMiA3NjEzMzMKKzMxOCAzMiA3ODI2NjYKKzMzMCAzMiA4MDQwMDAKKzMxOCAzMiA4MjUzMzMKKzMxNSAzMiA4NDY2NjYKKzMyMiAzMiA4NjgwMDAKKzMxNSAzMiA4ODkzMzMKKzMxMCAzMiA5MTA2NjYKKzMxNSAzMiA5MzIwMDAKKzMxNCAzMiA5NTMzMzMKKzMwMiAzMiA5NzQ2NjYKKzMxMyAzMiA5OTYwMDAKKzMyMiAzMiAxMDE3MzMzCiszMjMgMzIgMTAzODY2NgorMzE5IDMyIDEwNjAwMDAKKzMyNSAzMiAxMDgxMzMzCiszMjggMzIgMTEwMjY2NgorMzMwIDMyIDExMjQwMDAKKzMzMyAzMiAxMTQ1MzMzCiszMzAgMzIgMTE2NjY2NgorMzQ0IDMyIDExODgwMDAKKzMzMSAzMiAxMjA5MzMzCiszNDIgMzIgMTIzMDY2NgorMzM5IDMyIDEyNTIwMDAKKzMxNCAzMiAxMjczMzMzCisyODUgMzIgMTI5NDY2NgorMjk1IDMyIDEzMTYwMDAKKzMwMiAzMiAxMzM3MzMzCiszMDUgMzIgMTM1ODY2NgorMzA5IDMyIDEzODAwMDAKKzMyNyAzMiAxNDAxMzMzCiszMDQgMzIgMTQyMjY2NgorMzM2IDMyIDE0NDQwMDAKKzM1MCAzMiAxNDY1MzMzCiszNDYgMzIgMTQ4NjY2NgorMzUyIDMyIDE1MDgwMDAKKzM0MSAzMiAxNTI5MzMzCiszNDMgMzIgMTU1MDY2NgorMzUxIDMyIDE1NzIwMDAKKzMxOSAzMiAxNTkzMzMzCiszMjggMzIgMTYxNDY2NgorMzI4IDMyIDE2MzYwMDAKKzMyNCAzMiAxNjU3MzMzCiszMzggMzIgMTY3ODY2NgorMzE3IDMyIDE3MDAwMDAKKzMyOCAzMiAxNzIxMzMzCiszMzUgMzIgMTc0MjY2NgorMzQxIDMyIDE3NjQwMDAKKzMzNSAzMiAxNzg1MzMzCiszNDggMzIgMTgwNjY2NgorMzYyIDMyIDE4MjgwMDAKKzM2MSAzMiAxODQ5MzMzCiszNDQgMzIgMTg3MDY2NgorMzQwIDMyIDE4OTIwMDAKKzMzMyAzMiAxOTEzMzMzCiszMjkgMzIgMTkzNDY2NgorMzI4IDMyIDE5NTYwMDAKKzMyMyAzMiAxOTc3MzMzCiszMTAgMzIgMTk5ODY2NgorMzE4IDMyIDIwMjAwMDAKKzMxMiAzMiAyMDQxMzMzCisyOTUgMzIgMjA2MjY2NgorMzI5IDMyIDIwODQwMDAKKzMxOCAzMiAyMTA1MzMzCiszMTEgMzIgMjEyNjY2NgorMzE3IDMyIDIxNDgwMDAKKzYyIDMyIDIxNjkzMzMKKzc1IDMyIDIxODEzMzMKKzczIDMyIDIxODQwMDAKKzMzMiAzMiAyMTg2NjY2CiszMjcgMzIgMjE5ODY2NgorMzMyIDMyIDIyMjAwMDAKKzMyNSAzMiAyMjQxMzMzCiszMjkgMzIgMjI2MjY2NgorMzMwIDMyIDIyODQwMDAKKzYxIDMyIDIzMDUzMzMKKzYxIDMyIDIzMTczMzMKKzcwIDMyIDIzMjAwMDAKKzcwIDMyIDIzMjI2NjYKKzMxOSAzMiAyMzI1MzMzCiszMDMgMzIgMjMzNzMzMworMjkyIDMyIDIzNTg2NjYKKzMxMyAzMiAyMzgwMDAwCiszMTggMzIgMjQwMTMzMworMzQ2IDMyIDI0MjI2NjYKKzMyOCAzMiAyNDQ0MDAwCiszMTYgMzIgMjQ2NTMzMworMzQxIDMyIDI0ODY2NjYKKzMyOCAzMiAyNTA4MDAwCiszMzggMzIgMjUyOTMzMworMzQxIDMyIDI1NTA2NjYKKzMzNyAzMiAyNTcyMDAwCiszNDcgMzIgMjU5MzMzMworMzg0IDMyIDI2MTQ2NjYKKzM1OCAzMiAyNjM2MDAwCiszNjMgMzIgMjY1NzMzMworMzYzIDMyIDI2Nzg2NjYKKzM1OCAzMiAyNzAwMDAwCiszMzkgMzIgMjcyMTMzMworMzY5IDMyIDI3NDI2NjYKKzM0MyAzMiAyNzY0MDAwCiszNDggMzIgMjc4NTMzMworMzYzIDMyIDI4MDY2NjYKKzM1MCAzMiAyODI4MDAwCiszNTggMzIgMjg0OTMzMworMzUyIDMyIDI4NzA2NjYKKzMzOCAzMiAyODkyMDAwCiszMzUgMzIgMjkxMzMzMworMzQyIDMyIDI5MzQ2NjYKKzMzOCAzMiAyOTU2MDAwCiszNDAgMzIgMjk3NzMzMworMjkyIDMyIDI5OTg2NjYKKzI3OSAzMiAzMDIwMDAwCisyOTkgMzIgMzA0MTMzMworMzAzIDMyIDMwNjI2NjYKKzI5OCAzMiAzMDg0MDAwCisyOTcgMzIgMzEwNTMzMworMjgwIDMyIDMxMjY2NjYKKzI5NyAzMiAzMTQ4MDAwCisyOTAgMzIgMzE2OTMzMworMzA2IDMyIDMxOTA2NjYKKzMwMSAzMiAzMjEyMDAwCiszMDYgMzIgMzIzMzMzMworMjg5IDMyIDMyNTQ2NjYKKzMxMSAzMiAzMjc2MDAwCiszMTcgMzIgMzI5NzMzMworMzQ0IDMyIDMzMTg2NjYKKzMwOCAzMiAzMzQwMDAwCiszMDQgMzIgMzM2MTMzMworMzA0IDMyIDMzODI2NjYKKzMxMiAzMiAzNDA0MDAwCiszMDUgMzIgMzQyNTMzMworMjk5IDMyIDM0NDY2NjYKKzMwMSAzMiAzNDY4MDAwCiszMTggMzIgMzQ4OTMzMworMzEzIDMyIDM1MTA2NjYKKzMzMCAzMiAzNTMyMDAwCiszMjUgMzIgMzU1MzMzMworMzI1IDMyIDM1NzQ2NjYKKzMyMSAzMiAzNTk2MDAwCiszNDkgMzIgMzYxNzMzMworMjg4IDMyIDM2Mzg2NjYKKzMwMCAzMiAzNjYwMDAwCiszMTIgMzIgMzY4MTMzMworMzAyIDMyIDM3MDI2NjYKKzI3OCAzMiAzNzI0MDAwCisyODQgMzIgMzc0NTMzMworMjg2IDMyIDM3NjY2NjYKKzI3NCAzMiAzNzg4MDAwCisyOTUgMzIgMzgwOTMzMworMjgxIDMyIDM4MzA2NjYKKzI4OCAzMiAzODUyMDAwCisyNzggMzIgMzg3MzMzMworMzA2IDMyIDM4OTQ2NjYKKzYyIDMyIDM5MTYwMDAKKzU5IDMyIDM5MjgwMDAKKzYxIDMyIDM5MzA2NjYKKzU1IDMyIDM5MzMzMzMKKzcwIDMyIDM5MzYwMDAKKzcyIDMyIDM5Mzg2NjYKKzMyNCAzMiAzOTQxMzMzCiszMDkgMzIgMzk1MzMzMworMzAxIDMyIDM5NzQ2NjYKKzMwMSAzMiAzOTk2MDAwCisyOTEgMzIgNDAxNzMzMworMjg5IDMyIDQwMzg2NjYKKzMwNiAzMiA0MDYwMDAwCiszMDUgMzIgNDA4MTMzMworMjg2IDMyIDQxMDI2NjYKKzI5NCAzMiA0MTI0MDAwCisyOTAgMzIgNDE0NTMzMworMjk3IDMyIDQxNjY2NjYKKzMwOCAzMiA0MTg4MDAwCisyOTYgMzIgNDIwOTMzMworMjkyIDMyIDQyMzA2NjYKKzI4NyAzMiA0MjUyMDAwCisyOTEgMzIgNDI3MzMzMworMjk4IDMyIDQyOTQ2NjYKKzI5NSAzMiA0MzE2MDAwCisyOTQgMzIgNDMzNzMzMworMjk1IDMyIDQzNTg2NjYKKzI3NSAzMiA0MzgwMDAwCisyODAgMzIgNDQwMTMzMworMjg4IDMyIDQ0MjI2NjYKKzI4NSAzMiA0NDQ0MDAwCisyNzQgMzIgNDQ2NTMzMworMjk4IDMyIDQ0ODY2NjYKKzMwMSAzMiA0NTA4MDAwCiszMDAgMzIgNDUyOTMzMworMzA1IDMyIDQ1NTA2NjYKKzI5NyAzMiA0NTcyMDAwCis1OSAzMiA0NTkzMzMzCis1NiAzMiA0NjA1MzMzCis1NyAzMiA0NjA4MDAwCis1NSAzMiA0NjEwNjY2Cis1OCAzMiA0NjEzMzMzCis1NyAzMiA0NjE2MDAwCis1OCAzMiA0NjE4NjY2Cis2OCAzMiA0NjIxMzMzCis2NyAzMiA0NjI0MDAwCis3MSAzMiA0NjI2NjY2CisyODkgMzIgNDYyOTMzMworMjgyIDMyIDQ2NDEzMzMKKzI3MyAzMiA0NjYyNjY2CisyNzkgMzIgNDY4NDAwMAorMjg2IDMyIDQ3MDUzMzMKKzI4MiAzMiA0NzI2NjY2CisyODQgMzIgNDc0ODAwMAorMjc4IDMyIDQ3NjkzMzMKKzI4MSAzMiA0NzkwNjY2CisyODAgMzIgNDgxMjAwMAorMjYzIDMyIDQ4MzMzMzMKKzI2MCAzMiA0ODU0NjY2CisyNzEgMzIgNDg3NjAwMAorMjczIDMyIDQ4OTczMzMKKzI4MiAzMiA0OTE4NjY2CisyNzkgMzIgNDk0MDAwMAorMjk3IDMyIDQ5NjEzMzMKKzI5MSAzMiA0OTgyNjY2CiszMDkgMzIgNTAwNDAwMAorMjgzIDMyIDUwMjUzMzMKKzI5MiAzMiA1MDQ2NjY2CiszMDQgMzIgNTA2ODAwMAorMjk2IDMyIDUwODkzMzMKKzI5MyAzMiA1MTEwNjY2CisyODIgMzIgNTEzMjAwMAorMjczIDMyIDUxNTMzMzMKKzI4NCAzMiA1MTc0NjY2CisyODEgMzIgNTE5NjAwMAorMjY1IDMyIDUyMTczMzMKKzI3MiAzMiA1MjM4NjY2CisyNzcgMzIgNTI2MDAwMAorMjgwIDMyIDUyODEzMzMKKzI3NiAzMiA1MzAyNjY2CisyNzMgMzIgNTMyNDAwMAorMjc4IDMyIDUzNDUzMzMKKzI4MCAzMiA1MzY2NjY2CisyODAgMzIgNTM4ODAwMAorMjY4IDMyIDU0MDkzMzMKKzI4MiAzMiA1NDMwNjY2CisyNzcgMzIgNTQ1MjAwMAorMjc0IDMyIDU0NzMzMzMKKzI3NSAzMiA1NDk0NjY2CisyNzAgMzIgNTUxNjAwMAorMjgyIDMyIDU1MzczMzMKKzI3OSAzMiA1NTU4NjY2CisyNjAgMzIgNTU4MDAwMAorMjcyIDMyIDU2MDEzMzMKKzI3NSAzMiA1NjIyNjY2CisyNzMgMzIgNTY0NDAwMAorMjc2IDMyIDU2NjUzMzMKKzI4OCAzMiA1Njg2NjY2CisyOTQgMzIgNTcwODAwMAorMjcxIDMyIDU3MjkzMzMKKzI3NyAzMiA1NzUwNjY2CisyODggMzIgNTc3MjAwMAorMjc2IDMyIDU3OTMzMzMKKzI4MiAzMiA1ODE0NjY2CisyNzYgMzIgNTgzNjAwMAorMjc1IDMyIDU4NTczMzMKKzI2OCAzMiA1ODc4NjY2CisyNzAgMzIgNTkwMDAwMAorMjY2IDMyIDU5MjEzMzMKKzI2OCAzMiA1OTQyNjY2CisyODIgMzIgNTk2NDAwMAorMjc5IDMyIDU5ODUzMzMKKzI3OSAzMiA2MDA2NjY2CisyODcgMzIgNjAyODAwMAorMjg2IDMyIDYwNDkzMzMKKzI4MCAzMiA2MDcwNjY2CisyOTAgMzIgNjA5MjAwMAorMjY2IDMyIDYxMTMzMzMKKzI5MiAzMiA2MTM0NjY2CisyNjQgMzIgNjE1NjAwMAorMjcxIDMyIDYxNzczMzMKKzI3NyAzMiA2MTk4NjY2CisyOTIgMzIgNjIyMDAwMAorMjk4IDMyIDYyNDEzMzMKKzI4NCAzMiA2MjYyNjY2CisyODcgMzIgNjI4NDAwMAorMjc1IDMyIDYzMDUzMzMKKzI5MSAzMiA2MzI2NjY2CisyODcgMzIgNjM0ODAwMAorMjgzIDMyIDYzNjkzMzMKKzI4NCAzMiA2MzkwNjY2CisyNzEgMzIgNjQxMjAwMAorMjgyIDMyIDY0MzMzMzMKKzI3NyAzMiA2NDU0NjY2CisyODIgMzIgNjQ3NjAwMAorMjg1IDMyIDY0OTczMzMKKzI4MCAzMiA2NTE4NjY2CisyNzEgMzIgNjU0MDAwMAorMjg5IDMyIDY1NjEzMzMKKzI4NyAzMiA2NTgyNjY2CisyOTQgMzIgNjYwNDAwMAorMjc3IDMyIDY2MjUzMzMKKzI4MSAzMiA2NjQ2NjY2CisyNzQgMzIgNjY2ODAwMAorMjcxIDMyIDY2ODkzMzMKKzI3OSAzMiA2NzEwNjY2CisyODggMzIgNjczMjAwMAorMjgwIDMyIDY3NTMzMzMKKzI4NCAzMiA2Nzc0NjY2CisyNzggMzIgNjc5NjAwMAorMjc2IDMyIDY4MTczMzMKKzI3NSAzMiA2ODM4NjY2CisyNjMgMzIgNjg2MDAwMAorMjY2IDMyIDY4ODEzMzMKKzI0NyAzMiA2OTAyNjY2CisyNjkgMzIgNjkyNDAwMAorMjYzIDMyIDY5NDUzMzMKKzI4MyAzMiA2OTY2NjY2CisyODAgMzIgNjk4ODAwMAorMjgxIDMyIDcwMDkzMzMKKzI5OSAzMiA3MDMwNjY2CisyODUgMzIgNzA1MjAwMAorMjg4IDMyIDcwNzMzMzMKKzI5OSAzMiA3MDk0NjY2CisyODggMzIgNzExNjAwMAorMjc5IDMyIDcxMzczMzMKKzI3NiAzMiA3MTU4NjY2CisyNzcgMzIgNzE4MDAwMAorMjgyIDMyIDcyMDEzMzMKKzI4NSAzMiA3MjIyNjY2CisyOTUgMzIgNzI0NDAwMAorMjk0IDMyIDcyNjUzMzMKKzMwNCAzMiA3Mjg2NjY2CisyODIgMzIgNzMwODAwMAorMjk5IDMyIDczMjkzMzMKKzI4MyAzMiA3MzUwNjY2CisyODIgMzIgNzM3MjAwMAorMjg3IDMyIDczOTMzMzMKKzMwNiAzMiA3NDE0NjY2CiszMDQgMzIgNzQzNjAwMAorMjg5IDMyIDc0NTczMzMKKzI5OSAzMiA3NDc4NjY2CisyODEgMzIgNzUwMDAwMAorMjgxIDMyIDc1MjEzMzMKKzY2IDMyIDc1NDI2NjYKKzYzIDMyIDc1NTQ2NjYKKzI4OSAzMiA3NTU3MzMzCisyNzAgMzIgNzU2OTMzMworMjU3IDMyIDc1OTA2NjYKKzI0NiAzMiA3NjEyMDAwCisyNjQgMzIgNzYzMzMzMworMjgwIDMyIDc2NTQ2NjYKKzI3MyAzMiA3Njc2MDAwCisyODUgMzIgNzY5NzMzMworMjY3IDMyIDc3MTg2NjYKKzI3NSAzMiA3NzQwMDAwCisyNzggMzIgNzc2MTMzMworMjkzIDMyIDc3ODI2NjYKKzI4MSAzMiA3ODA0MDAwCisyOTcgMzIgNzgyNTMzMworMjk0IDMyIDc4NDY2NjYKKzI4NiAzMiA3ODY4MDAwCisyOTAgMzIgNzg4OTMzMworMjkwIDMyIDc5MTA2NjYKKzI4OSAzMiA3OTMyMDAwCisyODYgMzIgNzk1MzMzMworMjgyIDMyIDc5NzQ2NjYKKzMwNiAzMiA3OTk2MDAwCisyODcgMzIgODAxNzMzMworMzEyIDMyIDgwMzg2NjYKKzMxMiAzMiA4MDYwMDAwCiszMDcgMzIgODA4MTMzMworMjkzIDMyIDgxMDI2NjYKKzI4OSAzMiA4MTI0MDAwCisyODUgMzIgODE0NTMzMworMjkwIDMyIDgxNjY2NjYKKzI4NSAzMiA4MTg4MDAwCiszMTEgMzIgODIwOTMzMworMzA3IDMyIDgyMzA2NjYKKzMxNCAzMiA4MjUyMDAwCiszMTggMzIgODI3MzMzMworMzE5IDMyIDgyOTQ2NjYKKzMxNSAzMiA4MzE2MDAwCiszMDAgMzIgODMzNzMzMworMjk1IDMyIDgzNTg2NjYKKzI5MSAzMiA4MzgwMDAwCisyODIgMzIgODQwMTMzMworMjk1IDMyIDg0MjI2NjYKKzI5NiAzMiA4NDQ0MDAwCisyODggMzIgODQ2NTMzMworMzA0IDMyIDg0ODY2NjYKKzI5OSAzMiA4NTA4MDAwCisyOTggMzIgODUyOTMzMworMzA1IDMyIDg1NTA2NjYKKzI5NSAzMiA4NTcyMDAwCisyOTYgMzIgODU5MzMzMworMjk1IDMyIDg2MTQ2NjYKKzI4NyAzMiA4NjM2MDAwCisyOTIgMzIgODY1NzMzMworMzA4IDMyIDg2Nzg2NjYKKzI4NyAzMiA4NzAwMDAwCiszMDcgMzIgODcyMTMzMworMjk1IDMyIDg3NDI2NjYKKzI5MiAzMiA4NzY0MDAwCisyOTIgMzIgODc4NTMzMworMjc5IDMyIDg4MDY2NjYKKzI4OSAzMiA4ODI4MDAwCiszMDMgMzIgODg0OTMzMworMzA3IDMyIDg4NzA2NjYKKzMxMCAzMiA4ODkyMDAwCiszMDAgMzIgODkxMzMzMworMjk5IDMyIDg5MzQ2NjYKKzI5OSAzMiA4OTU2MDAwCisyODggMzIgODk3NzMzMworMjkwIDMyIDg5OTg2NjYKKzI5MSAzMiA5MDIwMDAwCiszMDQgMzIgOTA0MTMzMworMjk5IDMyIDkwNjI2NjYKKzMwNCAzMiA5MDg0MDAwCisyOTAgMzIgOTEwNTMzMworMzA5IDMyIDkxMjY2NjYKKzMwMSAzMiA5MTQ4MDAwCisyOTYgMzIgOTE2OTMzMworMjg4IDMyIDkxOTA2NjYKKzMwNSAzMiA5MjEyMDAwCiszMTcgMzIgOTIzMzMzMworMjkyIDMyIDkyNTQ2NjYKKzMwMCAzMiA5Mjc2MDAwCiszMDEgMzIgOTI5NzMzMworMjk1IDMyIDkzMTg2NjYKKzI4MiAzMiA5MzQwMDAwCisyOTYgMzIgOTM2MTMzMworMjk1IDMyIDkzODI2NjYKKzI4NyAzMiA5NDA0MDAwCisyOTIgMzIgOTQyNTMzMworMzAxIDMyIDk0NDY2NjYKKzMxMSAzMiA5NDY4MDAwCiszMDEgMzIgOTQ4OTMzMworMzA3IDMyIDk1MTA2NjYKKzMwMCAzMiA5NTMyMDAwCiszMDkgMzIgOTU1MzMzMworMjk4IDMyIDk1NzQ2NjYKKzMwNCAzMiA5NTk2MDAwCis2MCAzMiA5NjE3MzMzCis1OSAzMiA5NjI5MzMzCis2NCAzMiA5NjMyMDAwCis2NCAzMiA5NjM0NjY2Cis3NyAzMiA5NjM3MzMzCis3MiAzMiA5NjQwMDAwCiszMDYgMzIgOTY0MjY2NgorMjk3IDMyIDk2NTQ2NjYKKzI5NCAzMiA5Njc2MDAwCisyOTUgMzIgOTY5NzMzMworMzA4IDMyIDk3MTg2NjYKKzMwMyAzMiA5NzQwMDAwCiszMDggMzIgOTc2MTMzMworMjg5IDMyIDk3ODI2NjYKKzMwMCAzMiA5ODA0MDAwCiszMDQgMzIgOTgyNTMzMworMzA4IDMyIDk4NDY2NjYKKzY0IDMyIDk4NjgwMDAKKzYzIDMyIDk4ODAwMDAKKzY0IDMyIDk4ODI2NjYKKzY0IDMyIDk4ODUzMzMKKzYwIDMyIDk4ODgwMDAKKzc0IDMyIDk4OTA2NjYKKzY5IDMyIDk4OTMzMzMKKzY4IDMyIDk4OTYwMDAKKzYxIDMyIDk4OTg2NjYKKzcxIDMyIDk5MDEzMzMKKzc2IDMyIDk5MDQwMDAKKzczIDMyIDk5MDY2NjYKKzcwIDMyIDk5MDkzMzMKKzcyIDMyIDk5MTIwMDAKKzYwIDMyIDk5MTQ2NjYKKzY5IDMyIDk5MTczMzMKKzgyIDMyIDk5MjAwMDAKKzI3OCAzMiA5OTIyNjY2CiszMCAzMiA5OTM0NjY2CmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3ZvcmJpc19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LnZvcmJpcyBiL21lZGlhL3Jlcy9iYmJfdm9yYmlzX3N0ZXJlb18xMjhrYnBzXzQ4MDAwaHoudm9yYmlzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQwNGM1ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX3ZvcmJpc19zdGVyZW9fMTI4a2Jwc180ODAwMGh6LnZvcmJpcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3ZwOF82NDB4MzYwXzJtYnBzXzMwZnBzLmluZm8gYi9tZWRpYS9yZXMvYmJiX3ZwOF82NDB4MzYwXzJtYnBzXzMwZnBzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTAxZjNiYgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMuaW5mbwpAQCAtMCwwICsxLDMwMCBAQAorODY5ODAgMzIgMAorNjc0MSAwIDMzMDAwCis5NDMzIDAgNjcwMDAKKzkzNjMgMCAxMDAwMDAKKzg2NzEgMCAxMzMwMDAKKzkwMDMgMCAxNjcwMDAKKzc3NTEgMCAyMDAwMDAKKzEzMjA3IDAgMjMzMDAwCis4NTQyIDAgMjY3MDAwCis5MzQ0IDAgMzAwMDAwCis4MDY5IDAgMzMzMDAwCis4NTg4IDAgMzY3MDAwCisxMjA4NyAwIDQwMDAwMAorNzMxNSAwIDQzMzAwMAorOTY1NCAwIDQ2NzAwMAorMTMxMDAgMCA1MDAwMDAKKzc4MzIgMCA1MzMwMDAKKzEwMDYwIDAgNTY3MDAwCis4NTQwIDAgNjAwMDAwCis4NjY3IDAgNjMzMDAwCis4NTMyIDAgNjY3MDAwCis2MDE4IDAgNzAwMDAwCis4NTIwIDAgNzMzMDAwCisxNTM1MCAwIDc2NzAwMAorNjExMCAwIDgwMDAwMAorNzg3NiAwIDgzMzAwMAorNjEzMyAwIDg2NzAwMAorOTQ3NiAwIDkwMDAwMAorMTEwMDIgMCA5MzMwMDAKKzc0ODQgMCA5NjcwMDAKKzg3NjAgMCAxMDAwMDAwCisxNjUxNSAwIDEwMzMwMDAKKzc0ODIgMCAxMDY3MDAwCis2OTgzIDAgMTEwMDAwMAorNzU2MSAwIDExMzMwMDAKKzgyNjMgMCAxMTY3MDAwCisxMDY4MiAwIDEyMDAwMDAKKzgxMDggMCAxMjMzMDAwCis3OTI0IDAgMTI2NzAwMAorODY5MyAwIDEzMDAwMDAKKzE0MTkwIDAgMTMzMzAwMAorNzM5MyAwIDEzNjcwMDAKKzY4NjQgMCAxNDAwMDAwCis5NDMxIDAgMTQzMzAwMAorNzY3NCAwIDE0NjcwMDAKKzg0NTggMCAxNTAwMDAwCis1ODk5IDAgMTUzMzAwMAorODI1OSAwIDE1NjcwMDAKKzc5NjMgMCAxNjAwMDAwCisxNDc3OSAwIDE2MzMwMDAKKzY4NzcgMCAxNjY3MDAwCis3MjY4IDAgMTcwMDAwMAorODUyNiAwIDE3MzMwMDAKKzg0NjcgMCAxNzY3MDAwCisxMTIwMCAwIDE4MDAwMDAKKzcyNjEgMCAxODMzMDAwCis4MjgwIDAgMTg2NzAwMAorNjcxOCAwIDE5MDAwMDAKKzE3NzQyIDAgMTkzMzAwMAorNTIwNiAwIDE5NjcwMDAKKzU3MDAgMCAyMDAwMDAwCis1ODcyIDAgMjAzMzAwMAorNzkxNSAwIDIwNjcwMDAKKzg0OTMgMCAyMTAwMDAwCis2NTQ1IDAgMjEzMzAwMAorOTA3MiAwIDIxNjcwMDAKKzEzMjAwIDAgMjIwMDAwMAorOTYzMiAwIDIyMzMwMDAKKzEwMDE2IDAgMjI2NzAwMAorNzgyNCAwIDIzMDAwMDAKKzEwNjI4IDAgMjMzMzAwMAorMTA0MDEgMCAyMzY3MDAwCisxMDg5MiAwIDI0MDAwMDAKKzkwMjMgMCAyNDMzMDAwCisxMDczNCAwIDI0NjcwMDAKKzE1MDQ1IDAgMjUwMDAwMAorNzk0MCAwIDI1MzMwMDAKKzk2NTcgMCAyNTY3MDAwCis4NzQzIDAgMjYwMDAwMAorODA3NCAwIDI2MzMwMDAKKzk0NDUgMCAyNjY3MDAwCis2NDk0IDAgMjcwMDAwMAorODYwMSAwIDI3MzMwMDAKKzEzNDc4IDAgMjc2NzAwMAorNjk0MiAwIDI4MDAwMDAKKzgwMDIgMCAyODMzMDAwCis3OTQwIDAgMjg2NzAwMAorODMyMCAwIDI5MDAwMDAKKzEyMjE1IDAgMjkzMzAwMAorNjY2OCAwIDI5NjcwMDAKKzExMzg0IDAgMzAwMDAwMAorODM3OCAwIDMwMzMwMDAKKzEyOTA4IDAgMzA2NzAwMAorODQyMCAwIDMxMDAwMDAKKzc1MDIgMCAzMTMzMDAwCis4NDgyIDAgMzE2NzAwMAorMTA5NjggMCAzMjAwMDAwCisxMjMzOCAwIDMyMzMwMDAKKzg2NTcgMCAzMjY3MDAwCisxMDQ2OCAwIDMzMDAwMDAKKzEzODc4IDAgMzMzMzAwMAorOTM3NCAwIDMzNjcwMDAKKzk4NTcgMCAzNDAwMDAwCisxMDM4MSAwIDM0MzMwMDAKKzk5ODQgMCAzNDY3MDAwCis5OTU2IDAgMzUwMDAwMAorODkwNSAwIDM1MzMwMDAKKzg2NzIgMCAzNTY3MDAwCis4MTIyIDAgMzYwMDAwMAorOTY3NyAwIDM2MzMwMDAKKzk4MTIgMCAzNjY3MDAwCis5NjIyIDAgMzcwMDAwMAorOTAyMyAwIDM3MzMwMDAKKzcxNDcgMCAzNzY3MDAwCis5MTQ2IDAgMzgwMDAwMAorNzQ4OCAwIDM4MzMwMDAKKzEwODEyIDAgMzg2NzAwMAorODM0MCAwIDM5MDAwMDAKKzEzMjgwIDAgMzkzMzAwMAorNTE2NyAwIDM5NjcwMDAKKzY5OTEgMCA0MDAwMDAwCis2NTQzIDAgNDAzMzAwMAorNTk1MiAwIDQwNjcwMDAKKzUxNjQgMCA0MTAwMDAwCis0MDExIDAgNDEzMzAwMAorMzc5NCAwIDQxNjcwMDAKKzEyOTU5IDAgNDIwMDAwMAorNzEwMjAgMzIgNDIzMzAwMAorNTM1MSAwIDQyNjcwMDAKKzYyODMgMCA0MzAwMDAwCis1MDgwIDAgNDMzMzAwMAorNjcwNyAwIDQzNjcwMDAKKzU4NTcgMCA0NDAwMDAwCis1MjIxIDAgNDQzMzAwMAorMTA5NzIgMCA0NDY3MDAwCis3MDIzIDAgNDUwMDAwMAorNjkwNyAwIDQ1MzMwMDAKKzc4NTEgMCA0NTY3MDAwCis0ODQzIDAgNDYwMDAwMAorNjA4NSAwIDQ2MzMwMDAKKzQ4NjggMCA0NjY3MDAwCis1MDkzIDAgNDcwMDAwMAorMTI4MDcgMCA0NzMzMDAwCis2MzMwIDAgNDc2NzAwMAorNDIwOSAwIDQ4MDAwMDAKKzQ1OTYgMCA0ODMzMDAwCis2MzE2IDAgNDg2NzAwMAorNDk1NCAwIDQ5MDAwMDAKKzU1MzMgMCA0OTMzMDAwCis3NzQ5IDAgNDk2NzAwMAorMTI0ODYgMCA1MDAwMDAwCis1NDY4IDAgNTAzMzAwMAorNDM1MyAwIDUwNjcwMDAKKzU3ODYgMCA1MTAwMDAwCis1NTUxIDAgNTEzMzAwMAorNjcxMSAwIDUxNjcwMDAKKzU2ODggMCA1MjAwMDAwCis2MjU4IDAgNTIzMzAwMAorMTI5NzUgMCA1MjY3MDAwCis0ODczIDAgNTMwMDAwMAorNDU1MiAwIDUzMzMwMDAKKzQ4NDQgMCA1MzY3MDAwCis0Nzc0IDAgNTQwMDAwMAorNTAyNSAwIDU0MzMwMDAKKzUyMDQgMCA1NDY3MDAwCis0ODE0IDAgNTUwMDAwMAorMTQ4MzUgMCA1NTMzMDAwCis1MzQzIDAgNTU2NzAwMAorNDgwOCAwIDU2MDAwMDAKKzUwNzEgMCA1NjMzMDAwCis2MzI0IDAgNTY2NzAwMAorNTI0MyAwIDU3MDAwMDAKKzQ5OTUgMCA1NzMzMDAwCis1MTM0IDAgNTc2NzAwMAorMTEwNTQgMCA1ODAwMDAwCis0ODA3IDAgNTgzMzAwMAorNTExOCAwIDU4NjcwMDAKKzY0MjQgMCA1OTAwMDAwCis0OTg0IDAgNTkzMzAwMAorNzE4NyAwIDU5NjcwMDAKKzU1MDUgMCA2MDAwMDAwCis2OTQxIDAgNjAzMzAwMAorMTE1MTcgMCA2MDY3MDAwCis1NjQ2IDAgNjEwMDAwMAorNjgzMiAwIDYxMzMwMDAKKzUyOTQgMCA2MTY3MDAwCis2MjAwIDAgNjIwMDAwMAorNjMyOCAwIDYyMzMwMDAKKzQzNDggMCA2MjY3MDAwCis0NjA3IDAgNjMwMDAwMAorMTI5NTggMCA2MzMzMDAwCis0MzA4IDAgNjM2NzAwMAorNjA4NCAwIDY0MDAwMDAKKzQ0OTQgMCA2NDMzMDAwCis1MzM4IDAgNjQ2NzAwMAorNTc0MiAwIDY1MDAwMDAKKzU0NzIgMCA2NTMzMDAwCis4NDU5IDAgNjU2NzAwMAorMTMwNzUgMCA2NjAwMDAwCis4OTg2IDAgNjYzMzAwMAorOTU4MyAwIDY2NjcwMDAKKzg3OTIgMCA2NzAwMDAwCis5MDA0IDAgNjczMzAwMAorOTYzMiAwIDY3NjcwMDAKKzkzOTMgMCA2ODAwMDAwCis5MjU5IDAgNjgzMzAwMAorMTE5MjcgMCA2ODY3MDAwCisxMDMyMyAwIDY5MDAwMDAKKzE1MjQ4IDAgNjkzMzAwMAorMTEyNDQgMCA2OTY3MDAwCisxNTU1OCAwIDcwMDAwMDAKKzYxOTcgMCA3MDMzMDAwCis4MDQ0IDAgNzA2NzAwMAorMTE0MzIgMCA3MTAwMDAwCis4NzM3IDAgNzEzMzAwMAorMTM4ODUgMCA3MTY3MDAwCisxMTE1OCAwIDcyMDAwMDAKKzE1MTUyIDAgNzIzMzAwMAorNzAyNSAwIDcyNjcwMDAKKzgwMjUgMCA3MzAwMDAwCisxMzM2MiAwIDczMzMwMDAKKzgwOTAgMCA3MzY3MDAwCisxMzYzNyAwIDc0MDAwMDAKKzYxNDggMCA3NDMzMDAwCis5MjcwIDAgNzQ2NzAwMAorODYzMyAwIDc1MDAwMDAKKzEwNjczIDAgNzUzMzAwMAorMTQyMDggMCA3NTY3MDAwCis4MDg0IDAgNzYwMDAwMAorMTM3ODMgMCA3NjMzMDAwCisxMDY2MCAwIDc2NjcwMDAKKzc0NjYgMCA3NzAwMDAwCisxNDQzMyAwIDc3MzMwMDAKKzEwOTM0IDAgNzc2NzAwMAorNzIzOSAwIDc4MDAwMDAKKzEyNTQ4IDAgNzgzMzAwMAorNjU2NCAwIDc4NjcwMDAKKzEwNzYxIDAgNzkwMDAwMAorMTA5OTIgMCA3OTMzMDAwCisxMjkyNCAwIDc5NjcwMDAKKzEyMzQ4IDAgODAwMDAwMAorNjc3MCAwIDgwMzMwMDAKKzE0Mjg4IDAgODA2NzAwMAorMjkzNDUgMzIgODEwMDAwMAorMTgyMiAwIDgxMzMwMDAKKzEwODcgMCA4MTY3MDAwCisxMTA5IDAgODIwMDAwMAorMjAwNyAwIDgyMzMwMDAKKzE3OTggMCA4MjY3MDAwCisxNjM1IDAgODMwMDAwMAorMTk2MDcgMCA4MzMzMDAwCis5MTkgMCA4MzY3MDAwCisyMzU3IDAgODQwMDAwMAorMzU3OCAwIDg0MzMwMDAKKzQ0OTcgMCA4NDY3MDAwCis0MzE0IDAgODUwMDAwMAorMzg1MSAwIDg1MzMwMDAKKzM4MjIgMCA4NTY3MDAwCis0MjUyIDAgODYwMDAwMAorNDc3NSAwIDg2MzMwMDAKKzEyMjAzIDAgODY2NzAwMAorNTA3OCAwIDg3MDAwMDAKKzU4NzYgMCA4NzMzMDAwCis2MTI0IDAgODc2NzAwMAorNDQ5MCAwIDg4MDAwMDAKKzM1MzggMCA4ODMzMDAwCiszNDUwIDAgODg2NzAwMAorMzYxMSAwIDg5MDAwMDAKKzI4NDcgMCA4OTMzMDAwCisyNjA1IDAgODk2NzAwMAorMTIyNDMgMCA5MDAwMDAwCisxOTQ2IDAgOTAzMzAwMAorMTg0NyAwIDkwNjcwMDAKKzIwMzUgMCA5MTAwMDAwCisyNTcyIDAgOTEzMzAwMAorMjMyNiAwIDkxNjcwMDAKKzI2NDUgMCA5MjAwMDAwCisyOTM4IDAgOTIzMzAwMAorMjQ5NSAwIDkyNjcwMDAKKzI2MDkgMCA5MzAwMDAwCis5NzQ0IDAgOTMzMzAwMAorMTc5NiAwIDkzNjcwMDAKKzE5ODUgMCA5NDAwMDAwCisxNzU5IDAgOTQzMzAwMAorMjI1OSAwIDk0NjcwMDAKKzIyMzMgMCA5NTAwMDAwCisyMDQ0IDAgOTUzMzAwMAorMjUwMiAwIDk1NjcwMDAKKzIzMDcgMCA5NjAwMDAwCisyNzM5IDAgOTYzMzAwMAorMTE3MDcgMCA5NjY3MDAwCis1MTY4IDAgOTcwMDAwMAorNDQ4MyAwIDk3MzMwMDAKKzMwNDQgMCA5NzY3MDAwCis0MjQxIDAgOTgwMDAwMAorNDM5MiAwIDk4MzMwMDAKKzQ5MzQgMCA5ODY3MDAwCis1OTM0IDAgOTkwMDAwMAorNTY0NyAwIDk5MzMwMDAKKzUzMjYgMCA5OTY3MDAwCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3ZwOF82NDB4MzYwXzJtYnBzXzMwZnBzLnZwOCBiL21lZGlhL3Jlcy9iYmJfdnA4XzY0MHgzNjBfMm1icHNfMzBmcHMudnA4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlYzQ2MGMKLS0tIC9kZXYvbnVsbAorKysgYi9tZWRpYS9yZXMvYmJiX3ZwOF82NDB4MzYwXzJtYnBzXzMwZnBzLnZwOApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9tZWRpYS9yZXMvYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8gYi9tZWRpYS9yZXMvYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThiZTU4ZQotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9iYmJfdnA5XzY0MHgzNjBfMTYwMGticHNfMzBmcHMuaW5mbwpAQCAtMCwwICsxLDMwMCBAQAorNTQ5MTggMzIgMAorNDYyODAgMCAzMzAwMAorMjAwNiAwIDY3MDAwCisyODQxIDAgMTAwMDAwCiszMDQ0IDAgMTMzMDAwCiszNDI5IDAgMTY3MDAwCiszMTk2IDAgMjAwMDAwCisyOTI2IDAgMjMzMDAwCisyODIxIDAgMjY3MDAwCisxMTUwIDAgMzAwMDAwCiszNiAwIDMzMzAwMAorMzgwODQgMCAzNjcwMDAKKzM2ODkgMCA0MDAwMDAKKzM0NzMgMCA0MzMwMDAKKzMwMTEgMCA0NjcwMDAKKzMwOTAgMCA1MDAwMDAKKzI1MTYgMCA1MzMwMDAKKzI3NzEgMCA1NjcwMDAKKzMyNTAgMCA2MDAwMDAKKzExNTkgMCA2MzMwMDAKKzM0IDAgNjY3MDAwCiszOTY5MCAwIDcwMDAwMAorMzYxNSAwIDczMzAwMAorMjQ5NCAwIDc2NzAwMAorMjg5MyAwIDgwMDAwMAorMzMyOSAwIDgzMzAwMAorMjkzOSAwIDg2NzAwMAorMjM1MiAwIDkwMDAwMAorMjczMiAwIDkzMzAwMAorMTc0NiAwIDk2NzAwMAorMzMgMCAxMDAwMDAwCis0MTUwMSAwIDEwMzMwMDAKKzI5OTcgMCAxMDY3MDAwCisyNjY2IDAgMTEwMDAwMAorMzU4MiAwIDExMzMwMDAKKzI2MTYgMCAxMTY3MDAwCisyOTIzIDAgMTIwMDAwMAorMjY5NiAwIDEyMzMwMDAKKzE2MjggMCAxMjY3MDAwCisxODg3IDAgMTMwMDAwMAorMzMgMCAxMzMzMDAwCis0Mjg3NiAwIDEzNjcwMDAKKzI1ODggMCAxNDAwMDAwCiszMzE2IDAgMTQzMzAwMAorMjI4NyAwIDE0NjcwMDAKKzMzNzUgMCAxNTAwMDAwCisyMTA4IDAgMTUzMzAwMAorMjk2MSAwIDE1NjcwMDAKKzE3MzAgMCAxNjAwMDAwCisxODAwIDAgMTYzMzAwMAorMzQgMCAxNjY3MDAwCis0Mzc5NyAwIDE3MDAwMDAKKzI0ODQgMCAxNzMzMDAwCisyNTU2IDAgMTc2NzAwMAorMjY3MSAwIDE4MDAwMDAKKzIzMzggMCAxODMzMDAwCiszMTMzIDAgMTg2NzAwMAorMjAwMiAwIDE5MDAwMDAKKzE3OTQgMCAxOTMzMDAwCisxMjc5IDAgMTk2NzAwMAorMzIgMCAyMDAwMDAwCis0MjY0MiAwIDIwMzMwMDAKKzI2ODYgMCAyMDY3MDAwCisyMjAyIDAgMjEwMDAwMAorMjE0NSAwIDIxMzMwMDAKKzI1NjYgMCAyMTY3MDAwCisyMTkwIDAgMjIwMDAwMAorMTU4MCAwIDIyMzMwMDAKKzE3MTEgMCAyMjY3MDAwCis2NDggMCAyMzAwMDAwCiszMiAwIDIzMzMwMDAKKzQwNDA5IDAgMjM2NzAwMAorMjYyOCAwIDI0MDAwMDAKKzE5NzMgMCAyNDMzMDAwCisyMzYwIDAgMjQ2NzAwMAorMzA0MyAwIDI1MDAwMDAKKzE3MzAgMCAyNTMzMDAwCisxNDU2IDAgMjU2NzAwMAorMjMxMiAwIDI2MDAwMDAKKzM2OSAwIDI2MzMwMDAKKzMyIDAgMjY2NzAwMAorNDEzOTEgMCAyNzAwMDAwCisyOTY3IDAgMjczMzAwMAorMjQ1NCAwIDI3NjcwMDAKKzE4MjUgMCAyODAwMDAwCisxODUzIDAgMjgzMzAwMAorMTc0NiAwIDI4NjcwMDAKKzIzNDcgMCAyOTAwMDAwCisxMzYyIDAgMjkzMzAwMAorNDQxIDAgMjk2NzAwMAorMzQgMCAzMDAwMDAwCis0MjUwMyAwIDMwMzMwMDAKKzE4NzcgMCAzMDY3MDAwCisxNjkwIDAgMzEwMDAwMAorMTM2NyAwIDMxMzMwMDAKKzE1MjAgMCAzMTY3MDAwCisxMjQwIDAgMzIwMDAwMAorMTA5NCAwIDMyMzMwMDAKKzczOSAwIDMyNjcwMDAKKzM5MiAwIDMzMDAwMDAKKzMzIDAgMzMzMzAwMAorMzUxMDQgMCAzMzY3MDAwCisxNDYzIDAgMzQwMDAwMAorMjAyOSAwIDM0MzMwMDAKKzE2MjYgMCAzNDY3MDAwCisxOTU2IDAgMzUwMDAwMAorNzk5IDAgMzUzMzAwMAorNTU2IDAgMzU2NzAwMAorNTg0IDAgMzYwMDAwMAorMTkxIDAgMzYzMzAwMAorMzYgMCAzNjY3MDAwCiszNzY1MiAwIDM3MDAwMDAKKzg2MiAwIDM3MzMwMDAKKzUyNCAwIDM3NjcwMDAKKzY0MSAwIDM4MDAwMDAKKzU4NCAwIDM4MzMwMDAKKzM2MCAwIDM4NjcwMDAKKzM2NSAwIDM5MDAwMDAKKzM2MSAwIDM5MzMwMDAKKzE1NCAwIDM5NjcwMDAKKzM2IDAgNDAwMDAwMAorMTI1NzQwIDAgNDAzMzAwMAorMzMyIDAgNDA2NzAwMAorMzgxIDAgNDEwMDAwMAorNDIwIDAgNDEzMzAwMAorNDY0IDAgNDE2NzAwMAorMjg4IDAgNDIwMDAwMAorMjY2MCAwIDQyMzMwMDAKKzEyNzU2NCAzMiA0MjY3MDAwCiszMDY5NiAwIDQzMDAwMDAKKzM0MjMgMCA0MzMzMDAwCiszMzEwIDAgNDM2NzAwMAorMzUxMyAwIDQ0MDAwMDAKKzM3MzUgMCA0NDMzMDAwCiszMzU4IDAgNDQ2NzAwMAorMzEwOCAwIDQ1MDAwMDAKKzI4MDAgMCA0NTMzMDAwCisxNzUxIDAgNDU2NzAwMAorNDEgMCA0NjAwMDAwCiszOTg2MiAwIDQ2MzMwMDAKKzM3MzkgMCA0NjY3MDAwCiszNzU1IDAgNDcwMDAwMAorMzQwOCAwIDQ3MzMwMDAKKzM3ODMgMCA0NzY3MDAwCiszNDIzIDAgNDgwMDAwMAorMjgwMSAwIDQ4MzMwMDAKKzI1NDkgMCA0ODY3MDAwCisxNDYxIDAgNDkwMDAwMAorNDAgMCA0OTMzMDAwCis0MTY2NyAwIDQ5NjcwMDAKKzM2MjMgMCA1MDAwMDAwCiszMzU2IDAgNTAzMzAwMAorMzQyNCAwIDUwNjcwMDAKKzM1NDggMCA1MTAwMDAwCiszMTE5IDAgNTEzMzAwMAorMjkwNSAwIDUxNjcwMDAKKzI3NzIgMCA1MjAwMDAwCisxNjIzIDAgNTIzMzAwMAorNDMgMCA1MjY3MDAwCis0Njc4MyAwIDUzMDAwMDAKKzM0NjIgMCA1MzMzMDAwCiszNDcwIDAgNTM2NzAwMAorMzY3NyAwIDU0MDAwMDAKKzM2ODQgMCA1NDMzMDAwCiszMjY2IDAgNTQ2NzAwMAorMzEyNyAwIDU1MDAwMDAKKzI4MDkgMCA1NTMzMDAwCisxNzUwIDAgNTU2NzAwMAorNDAgMCA1NjAwMDAwCis0NjIxNSAwIDU2MzMwMDAKKzM1OTkgMCA1NjY3MDAwCiszNTU4IDAgNTcwMDAwMAorMzU0NCAwIDU3MzMwMDAKKzM2MzIgMCA1NzY3MDAwCiszNTQ4IDAgNTgwMDAwMAorMjk2OCAwIDU4MzMwMDAKKzI3MTUgMCA1ODY3MDAwCisxNzI5IDAgNTkwMDAwMAorNDEgMCA1OTMzMDAwCis0NTk1OCAwIDU5NjcwMDAKKzM3NzYgMCA2MDAwMDAwCiszNTI1IDAgNjAzMzAwMAorMzY0NCAwIDYwNjcwMDAKKzM3ODYgMCA2MTAwMDAwCiszMjIyIDAgNjEzMzAwMAorMjkyMyAwIDYxNjcwMDAKKzI3NTIgMCA2MjAwMDAwCisxNTkyIDAgNjIzMzAwMAorNDEgMCA2MjY3MDAwCis0NjAzMSAwIDYzMDAwMDAKKzM1MjAgMCA2MzMzMDAwCiszMzgwIDAgNjM2NzAwMAorMzM3MSAwIDY0MDAwMDAKKzM0MjcgMCA2NDMzMDAwCiszMTM1IDAgNjQ2NzAwMAorMjk4OCAwIDY1MDAwMDAKKzI3MzAgMCA2NTMzMDAwCisxNjcxIDAgNjU2NzAwMAorNDEgMCA2NjAwMDAwCis0NTg0NiAwIDY2MzMwMDAKKzM1MzUgMCA2NjY3MDAwCiszNTA3IDAgNjcwMDAwMAorMzQyOSAwIDY3MzMwMDAKKzM0OTEgMCA2NzY3MDAwCiszMzI1IDAgNjgwMDAwMAorMjk3OSAwIDY4MzMwMDAKKzI4MDAgMCA2ODY3MDAwCisxNjEwIDAgNjkwMDAwMAorNDAgMCA2OTMzMDAwCis0NTk1OCAwIDY5NjcwMDAKKzM3NjIgMCA3MDAwMDAwCiszMjU0IDAgNzAzMzAwMAorMzQwOCAwIDcwNjcwMDAKKzM4NjAgMCA3MTAwMDAwCiszMTk4IDAgNzEzMzAwMAorMjk2NiAwIDcxNjcwMDAKKzI4ODIgMCA3MjAwMDAwCisxNzYzIDAgNzIzMzAwMAorNDIgMCA3MjY3MDAwCis0NjEzMCAwIDczMDAwMDAKKzM1OTMgMCA3MzMzMDAwCiszNTIzIDAgNzM2NzAwMAorMzkzOSAwIDc0MDAwMDAKKzM5ODAgMCA3NDMzMDAwCiszNDcwIDAgNzQ2NzAwMAorMzE5MSAwIDc1MDAwMDAKKzI5NjkgMCA3NTMzMDAwCisxNzQwIDAgNzU2NzAwMAorNDEgMCA3NjAwMDAwCis0NjMwMCAwIDc2MzMwMDAKKzM3MzkgMCA3NjY3MDAwCiszNzgxIDAgNzcwMDAwMAorMzk2NCAwIDc3MzMwMDAKKzQwMjMgMCA3NzY3MDAwCiszNDgwIDAgNzgwMDAwMAorMzA2NSAwIDc4MzMwMDAKKzI5MzQgMCA3ODY3MDAwCisxODA1IDAgNzkwMDAwMAorNDIgMCA3OTMzMDAwCiszODE2NiAwIDc5NjcwMDAKKzQwNjIgMCA4MDAwMDAwCiszODQ0IDAgODAzMzAwMAorNDU0NyAwIDgwNjcwMDAKKzkzNCAwIDgxMDAwMDAKKzM2NSAwIDgxMzMwMDAKKzE4MSAwIDgxNjcwMDAKKzQ2MyAwIDgyMDAwMDAKKzQxOSAwIDgyMzMwMDAKKzM4IDAgODI2NzAwMAorOTcwMiAwIDgzMDAwMDAKKzM0NCAwIDgzMzMwMDAKKzI3NiAwIDgzNjcwMDAKKzEzNTAgMCA4NDAwMDAwCisxNzAzIDAgODQzMzAwMAorMTg0MyAwIDg0NjcwMDAKKzEyMjggMCA4NTAwMDAwCiszNTU4MCAzMiA4NTMzMDAwCisyNzQ1OCAwIDg1NjcwMDAKKzIxNDQgMCA4NjAwMDAwCisyNDgyIDAgODYzMzAwMAorMjAwNCAwIDg2NjcwMDAKKzI4MjIgMCA4NzAwMDAwCisyNTcwIDAgODczMzAwMAorMTcyNiAwIDg3NjcwMDAKKzEyNDggMCA4ODAwMDAwCis4NDQgMCA4ODMzMDAwCiszNSAwIDg4NjcwMDAKKzE0MjA3IDAgODkwMDAwMAorMTAzNyAwIDg5MzMwMDAKKzc0OSAwIDg5NjcwMDAKKzgyOSAwIDkwMDAwMDAKKzkxNSAwIDkwMzMwMDAKKzY4NSAwIDkwNjcwMDAKKzc2NyAwIDkxMDAwMDAKKzc5OCAwIDkxMzMwMDAKKzM0MiAwIDkxNjcwMDAKKzMxIDAgOTIwMDAwMAorMTI1OTAgMCA5MjMzMDAwCis5MjMgMCA5MjY3MDAwCis4MTkgMCA5MzAwMDAwCis3NzYgMCA5MzMzMDAwCis4NjMgMCA5MzY3MDAwCis3MjkgMCA5NDAwMDAwCis0NzEgMCA5NDMzMDAwCis2MzggMCA5NDY3MDAwCisyNzYgMCA5NTAwMDAwCiszOCAwIDk1MzMwMDAKKzE3MjcyIDAgOTU2NzAwMAorODU2IDAgOTYwMDAwMAorMTE1OCAwIDk2MzMwMDAKKzIxNzIgMCA5NjY3MDAwCisyNzUxIDAgOTcwMDAwMAorMjE0MiAwIDk3MzMwMDAKKzEyNjcgMCA5NzY3MDAwCisxOTY1IDAgOTgwMDAwMAorMTUxMCAwIDk4MzMwMDAKKzM0IDAgOTg2NzAwMAorMjY5MiAwIDk5MDAwMDAKKzI3NzggMCA5OTMzMDAwCisyNTg1IDAgOTk2NzAwMApkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL2JiYl92cDlfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy52cDkgYi9tZWRpYS9yZXMvYmJiX3ZwOV82NDB4MzYwXzE2MDBrYnBzXzMwZnBzLnZwOQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWUyMDAxCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL2JiYl92cDlfNjQweDM2MF8xNjAwa2Jwc18zMGZwcy52cDkKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL3NpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouYW1ybmIgYi9tZWRpYS9yZXMvc2luZV9hbXJuYl8xY2hfMTJrYnBzXzgwMDBoei5hbXJuYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGFmMmUwCi0tLSAvZGV2L251bGwKKysrIGIvbWVkaWEvcmVzL3NpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouYW1ybmIKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvbWVkaWEvcmVzL3NpbmVfYW1ybmJfMWNoXzEya2Jwc184MDAwaHouaW5mbyBiL21lZGlhL3Jlcy9zaW5lX2Ftcm5iXzFjaF8xMmticHNfODAwMGh6LmluZm8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDY0ZTk1ZgotLS0gL2Rldi9udWxsCisrKyBiL21lZGlhL3Jlcy9zaW5lX2Ftcm5iXzFjaF8xMmticHNfODAwMGh6LmluZm8KQEAgLTAsMCArMSw4MzMgQEAKKzMyIDMyIDAKKzMyIDMyIDIwMDAwCiszMiAzMiA0MDAwMAorMzIgMzIgNjAwMDAKKzMyIDMyIDgwMDAwCiszMiAzMiAxMDAwMDAKKzMyIDMyIDEyMDAwMAorMzIgMzIgMTQwMDAwCiszMiAzMiAxNjAwMDAKKzMyIDMyIDE4MDAwMAorMzIgMzIgMjAwMDAwCiszMiAzMiAyMjAwMDAKKzMyIDMyIDI0MDAwMAorMzIgMzIgMjYwMDAwCiszMiAzMiAyODAwMDAKKzMyIDMyIDMwMDAwMAorMzIgMzIgMzIwMDAwCiszMiAzMiAzNDAwMDAKKzMyIDMyIDM2MDAwMAorMzIgMzIgMzgwMDAwCiszMiAzMiA0MDAwMDAKKzMyIDMyIDQyMDAwMAorMzIgMzIgNDQwMDAwCiszMiAzMiA0NjAwMDAKKzMyIDMyIDQ4MDAwMAorMzIgMzIgNTAwMDAwCiszMiAzMiA1MjAwMDAKKzMyIDMyIDU0MDAwMAorMzIgMzIgNTYwMDAwCiszMiAzMiA1ODAwMDAKKzMyIDMyIDYwMDAwMAorMzIgMzIgNjIwMDAwCiszMiAzMiA2NDAwMDAKKzMyIDMyIDY2MDAwMAorMzIgMzIgNjgwMDAwCiszMiAzMiA3MDAwMDAKKzMyIDMyIDcyMDAwMAorMzIgMzIgNzQwMDAwCiszMiAzMiA3NjAwMDAKKzMyIDMyIDc4MDAwMAorMzIgMzIgODAwMDAwCiszMiAzMiA4MjAwMDAKKzMyIDMyIDg0MDAwMAorMzIgMzIgODYwMDAwCiszMiAzMiA4ODAwMDAKKzMyIDMyIDkwMDAwMAorMzIgMzIgOTIwMDAwCiszMiAzMiA5NDAwMDAKKzMyIDMyIDk2MDAwMAorMzIgMzIgOTgwMDAwCiszMiAzMiAxMDAwMDAwCiszMiAzMiAxMDIwMDAwCiszMiAzMiAxMDQwMDAwCiszMiAzMiAxMDYwMDAwCiszMiAzMiAxMDgwMDAwCiszMiAzMiAxMTAwMDAwCiszMiAzMiAxMTIwMDAwCiszMiAzMiAxMTQwMDAwCiszMiAzMiAxMTYwMDAwCiszMiAzMiAxMTgwMDAwCiszMiAzMiAxMjAwMDAwCiszMiAzMiAxMjIwMDAwCiszMiAzMiAxMjQwMDAwCiszMiAzMiAxMjYwMDAwCiszMiAzMiAxMjgwMDAwCiszMiAzMiAxMzAwMDAwCiszMiAzMiAxMzIwMDAwCiszMiAzMiAxMzQwMDAwCiszMiAzMiAxMzYwMDAwCiszMiAzMiAxMzgwMDAwCiszMiAzMiAxNDAwMDAwCiszMiAzMiAxNDIwMDAwCiszMiAzMiAxNDQwMDAwCiszMiAzMiAxNDYwMDAwCiszMiAzMiAxNDgwMDAwCiszMiAzMiAxNTAwMDAwCiszMiAzMiAxNTIwMDAwCiszMiAzMiAxNTQwMDAwCiszMiAzMiAxNTYwMDAwCiszMiAzMiAxNTgwMDAwCiszMiAzMiAxNjAwMDAwCiszMiAzMiAxNjIwMDAwCiszMiAzMiAxNjQwMDAwCiszMiAzMiAxNjYwMDAwCiszMiAzMiAxNjgwMDAwCiszMiAzMiAxNzAwMDAwCiszMiAzMiAxNzIwMDAwCiszMiAzMiAxNzQwMDAwCiszMiAzMiAxNzYwMDAwCiszMiAzMiAxNzgwMDAwCiszMiAzMiAxODAwMDAwCiszMiAzMiAxODIwMDAwCiszMiAzMiAxODQwMDAwCiszMiAzMiAxODYwMDAwCiszMiAzMiAxODgwMDAwCiszMiAzMiAxOTAwMDAwCiszMiAzMiAxOTIwMDAwCiszMiAzMiAxOTQwMDAwCiszMiAzMiAxOTYwMDAwCiszMiAzMiAxOTgwMDAwCiszMiAzMiAyMDAwMDAwCiszMiAzMiAyMDIwMDAwCiszMiAzMiAyMDQwMDAwCiszMiAzMiAyMDYwMDAwCiszMiAzMiAyMDgwMDAwCiszMiAzMiAyMTAwMDAwCiszMiAzMiAyMTIwMDAwCiszMiAzMiAyMTQwMDAwCiszMiAzMiAyMTYwMDAwCiszMiAzMiAyMTgwMDAwCiszMiAzMiAyMjAwMDAwCiszMiAzMiAyMjIwMDAwCiszMiAzMiAyMjQwMDAwCiszMiAzMiAyMjYwMDAwCiszMiAzMiAyMjgwMDAwCiszMiAzMiAyMzAwMDAwCiszMiAzMiAyMzIwMDAwCiszMiAzMiAyMzQwMDAwCiszMiAzMiAyMzYwMDAwCiszMiAzMiAyMzgwMDAwCiszMiAzMiAyNDAwMDAwCiszMiAzMiAyNDIwMDAwCiszMiAzMiAyNDQwMDAwCiszMiAzMiAyNDYwMDAwCiszMiAzMiAyNDgwMDAwCiszMiAzMiAyNTAwMDAwCiszMiAzMiAyNTIwMDAwCiszMiAzMiAyNTQwMDAwCiszMiAzMiAyNTYwMDAwCiszMiAzMiAyNTgwMDAwCiszMiAzMiAyNjAwMDAwCiszMiAzMiAyNjIwMDAwCiszMiAzMiAyNjQwMDAwCiszMiAzMiAyNjYwMDAwCiszMiAzMiAyNjgwMDAwCiszMiAzMiAyNzAwMDAwCiszMiAzMiAyNzIwMDAwCiszMiAzMiAyNzQwMDAwCiszMiAzMiAyNzYwMDAwCiszMiAzMiAyNzgwMDAwCiszMiAzMiAyODAwMDAwCiszMiAzMiAyODIwMDAwCiszMiAzMiAyODQwMDAwCiszMiAzMiAyODYwMDAwCiszMiAzMiAyODgwMDAwCiszMiAzMiAyOTAwMDAwCiszMiAzMiAyOTIwMDAwCiszMiAzMiAyOTQwMDAwCiszMiAzMiAyOTYwMDAwCiszMiAzMiAyOTgwMDAwCiszMiAzMiAzMDAwMDAwCiszMiAzMiAzMDIwMDAwCiszMiAzMiAzMDQwMDAwCiszMiAzMiAzMDYwMDAwCiszMiAzMiAzMDgwMDAwCiszMiAzMiAzMTAwMDAwCiszMiAzMiAzMTIwMDAwCiszMiAzMiAzMTQwMDAwCiszMiAzMiAzMTYwMDAwCiszMiAzMiAzMTgwMDAwCiszMiAzMiAzMjAwMDAwCiszMiAzMiAzMjIwMDAwCiszMiAzMiAzMjQwMDAwCiszMiAzMiAzMjYwMDAwCiszMiAzMiAzMjgwMDAwCiszMiAzMiAzMzAwMDAwCiszMiAzMiAzMzIwMDAwCiszMiAzMiAzMzQwMDAwCiszMiAzMiAzMzYwMDAwCiszMiAzMiAzMzgwMDAwCiszMiAzMiAzNDAwMDAwCiszMiAzMiAzNDIwMDAwCiszMiAzMiAzNDQwMDAwCiszMiAzMiAzNDYwMDAwCiszMiAzMiAzNDgwMDAwCiszMiAzMiAzNTAwMDAwCiszMiAzMiAzNTIwMDAwCiszMiAzMiAzNTQwMDAwCiszMiAzMiAzNTYwMDAwCiszMiAzMiAzNTgwMDAwCiszMiAzMiAzNjAwMDAwCiszMiAzMiAzNjIwMDAwCiszMiAzMiAzNjQwMDAwCiszMiAzMiAzNjYwMDAwCiszMiAzMiAzNjgwMDAwCiszMiAzMiAzNzAwMDAwCiszMiAzMiAzNzIwMDAwCiszMiAzMiAzNzQwMDAwCiszMiAzMiAzNzYwMDAwCiszMiAzMiAzNzgwMDAwCiszMiAzMiAzODAwMDAwCiszMiAzMiAzODIwMDAwCiszMiAzMiAzODQwMDAwCiszMiAzMiAzODYwMDAwCiszMiAzMiAzODgwMDAwCiszMiAzMiAzOTAwMDAwCiszMiAzMiAzOTIwMDAwCiszMiAzMiAzOTQwMDAwCiszMiAzMiAzOTYwMDAwCiszMiAzMiAzOTgwMDAwCiszMiAzMiA0MDAwMDAwCiszMiAzMiA0MDIwMDAwCiszMiAzMiA0MDQwMDAwCiszMiAzMiA0MDYwMDAwCiszMiAzMiA0MDgwMDAwCiszMiAzMiA0MTAwMDAwCiszMiAzMiA0MTIwMDAwCiszMiAzMiA0MTQwMDAwCiszMiAzMiA0MTYwMDAwCiszMiAzMiA0MTgwMDAwCiszMiAzMiA0MjAwMDAwCiszMiAzMiA0MjIwMDAwCiszMiAzMiA0MjQwMDAwCiszMiAzMiA0MjYwMDAwCiszMiAzMiA0MjgwMDAwCiszMiAzMiA0MzAwMDAwCiszMiAzMiA0MzIwMDAwCiszMiAzMiA0MzQwMDAwCiszMiAzMiA0MzYwMDAwCiszMiAzMiA0MzgwMDAwCiszMiAzMiA0NDAwMDAwCiszMiAzMiA0NDIwMDAwCiszMiAzMiA0NDQwMDAwCiszMiAzMiA0NDYwMDAwCiszMiAzMiA0NDgwMDAwCiszMiAzMiA0NTAwMDAwCiszMiAzMiA0NTIwMDAwCiszMiAzMiA0NTQwMDAwCiszMiAzMiA0NTYwMDAwCiszMiAzMiA0NTgwMDAwCiszMiAzMiA0NjAwMDAwCiszMiAzMiA0NjIwMDAwCiszMiAzMiA0NjQwMDAwCiszMiAzMiA0NjYwMDAwCiszMiAzMiA0NjgwMDAwCiszMiAzMiA0NzAwMDAwCiszMiAzMiA0NzIwMDAwCiszMiAzMiA0NzQwMDAwCiszMiAzMiA0NzYwMDAwCiszMiAzMiA0NzgwMDAwCiszMiAzMiA0ODAwMDAwCiszMiAzMiA0ODIwMDAwCiszMiAzMiA0ODQwMDAwCiszMiAzMiA0ODYwMDAwCiszMiAzMiA0ODgwMDAwCiszMiAzMiA0OTAwMDAwCiszMiAzMiA0OTIwMDAwCiszMiAzMiA0OTQwMDAwCiszMiAzMiA0OTYwMDAwCiszMiAzMiA0OTgwMDAwCiszMiAzMiA1MDAwMDAwCiszMiAzMiA1MDIwMDAwCiszMiAzMiA1MDQwMDAwCiszMiAzMiA1MDYwMDAwCiszMiAzMiA1MDgwMDAwCiszMiAzMiA1MTAwMDAwCiszMiAzMiA1MTIwMDAwCiszMiAzMiA1MTQwMDAwCiszMiAzMiA1MTYwMDAwCiszMiAzMiA1MTgwMDAwCiszMiAzMiA1MjAwMDAwCiszMiAzMiA1MjIwMDAwCiszMiAzMiA1MjQwMDAwCiszMiAzMiA1MjYwMDAwCiszMiAzMiA1MjgwMDAwCiszMiAzMiA1MzAwMDAwCiszMiAzMiA1MzIwMDAwCiszMiAzMiA1MzQwMDAwCiszMiAzMiA1MzYwMDAwCiszMiAzMiA1MzgwMDAwCiszMiAzMiA1NDAwMDAwCiszMiAzMiA1NDIwMDAwCiszMiAzMiA1NDQwMDAwCiszMiAzMiA1NDYwMDAwCiszMiAzMiA1NDgwMDAwCiszMiAzMiA1NTAwMDAwCiszMiAzMiA1NTIwMDAwCiszMiAzMiA1NTQwMDAwCiszMiAzMiA1NTYwMDAwCiszMiAzMiA1NTgwMDAwCiszMiAzMiA1NjAwMDAwCiszMiAzMiA1NjIwMDAwCiszMiAzMiA1NjQwMDAwCiszMiAzMiA1NjYwMDAwCiszMiAzMiA1NjgwMDAwCiszMiAzMiA1NzAwMDAwCiszMiAzMiA1NzIwMDAwCiszMiAzMiA1NzQwMDAwCiszMiAzMiA1NzYwMDAwCiszMiAzMiA1NzgwMDAwCiszMiAzMiA1ODAwMDAwCiszMiAzMiA1ODIwMDAwCiszMiAzMiA1ODQwMDAwCiszMiAzMiA1ODYwMDAwCiszMiAzMiA1ODgwMDAwCiszMiAzMiA1OTAwMDAwCiszMiAzMiA1OTIwMDAwCiszMiAzMiA1OTQwMDAwCiszMiAzMiA1OTYwMDAwCiszMiAzMiA1OTgwMDAwCiszMiAzMiA2MDAwMDAwCiszMiAzMiA2MDIwMDAwCiszMiAzMiA2MDQwMDAwCiszMiAzMiA2MDYwMDAwCiszMiAzMiA2MDgwMDAwCiszMiAzMiA2MTAwMDAwCiszMiAzMiA2MTIwMDAwCiszMiAzMiA2MTQwMDAwCiszMiAzMiA2MTYwMDAwCiszMiAzMiA2MTgwMDAwCiszMiAzMiA2MjAwMDAwCiszMiAzMiA2MjIwMDAwCiszMiAzMiA2MjQwMDAwCiszMiAzMiA2MjYwMDAwCiszMiAzMiA2MjgwMDAwCiszMiAzMiA2MzAwMDAwCiszMiAzMiA2MzIwMDAwCiszMiAzMiA2MzQwMDAwCiszMiAzMiA2MzYwMDAwCiszMiAzMiA2MzgwMDAwCiszMiAzMiA2NDAwMDAwCiszMiAzMiA2NDIwMDAwCiszMiAzMiA2NDQwMDAwCiszMiAzMiA2NDYwMDAwCiszMiAzMiA2NDgwMDAwCiszMiAzMiA2NTAwMDAwCiszMiAzMiA2NTIwMDAwCiszMiAzMiA2NTQwMDAwCiszMiAzMiA2NTYwMDAwCiszMiAzMiA2NTgwMDAwCiszMiAzMiA2NjAwMDAwCiszMiAzMiA2NjIwMDAwCiszMiAzMiA2NjQwMDAwCiszMiAzMiA2NjYwMDAwCiszMiAzMiA2NjgwMDAwCiszMiAzMiA2NzAwMDAwCiszMiAzMiA2NzIwMDAwCiszMiAzMiA2NzQwMDAwCiszMiAzMiA2NzYwMDAwCiszMiAzMiA2NzgwMDAwCiszMiAzMiA2ODAwMDAwCiszMiAzMiA2ODIwMDAwCiszMiAzMiA2ODQwMDAwCiszMiAzMiA2ODYwMDAwCiszMiAzMiA2ODgwMDAwCiszMiAzMiA2OTAwMDAwCiszMiAzMiA2OTIwMDAwCiszMiAzMiA2OTQwMDAwCiszMiAzMiA2OTYwMDAwCiszMiAzMiA2OTgwMDAwCiszMiAzMiA3MDAwMDAwCiszMiAzMiA3MDIwMDAwCiszMiAzMiA3MDQwMDAwCiszMiAzMiA3MDYwMDAwCiszMiAzMiA3MDgwMDAwCiszMiAzMiA3MTAwMDAwCiszMiAzMiA3MTIwMDAwCiszMiAzMiA3MTQwMDAwCiszMiAzMiA3MTYwMDAwCiszMiAzMiA3MTgwMDAwCiszMiAzMiA3MjAwMDAwCiszMiAzMiA3MjIwMDAwCiszMiAzMiA3MjQwMDAwCiszMiAzMiA3MjYwMDAwCiszMiAzMiA3MjgwMDAwCiszMiAzMiA3MzAwMDAwCiszMiAzMiA3MzIwMDAwCiszMiAzMiA3MzQwMDAwCiszMiAzMiA3MzYwMDAwCiszMiAzMiA3MzgwMDAwCiszMiAzMiA3NDAwMDAwCiszMiAzMiA3NDIwMDAwCiszMiAzMiA3NDQwMDAwCiszMiAzMiA3NDYwMDAwCiszMiAzMiA3NDgwMDAwCiszMiAzMiA3NTAwMDAwCiszMiAzMiA3NTIwMDAwCiszMiAzMiA3NTQwMDAwCiszMiAzMiA3NTYwMDAwCiszMiAzMiA3NTgwMDAwCiszMiAzMiA3NjAwMDAwCiszMiAzMiA3NjIwMDAwCiszMiAzMiA3NjQwMDAwCiszMiAzMiA3NjYwMDAwCiszMiAzMiA3NjgwMDAwCiszMiAzMiA3NzAwMDAwCiszMiAzMiA3NzIwMDAwCiszMiAzMiA3NzQwMDAwCiszMiAzMiA3NzYwMDAwCiszMiAzMiA3NzgwMDAwCiszMiAzMiA3ODAwMDAwCiszMiAzMiA3ODIwMDAwCiszMiAzMiA3ODQwMDAwCiszMiAzMiA3ODYwMDAwCiszMiAzMiA3ODgwMDAwCiszMiAzMiA3OTAwMDAwCiszMiAzMiA3OTIwMDAwCiszMiAzMiA3OTQwMDAwCiszMiAzMiA3OTYwMDAwCiszMiAzMiA3OTgwMDAwCiszMiAzMiA4MDAwMDAwCiszMiAzMiA4MDIwMDAwCiszMiAzMiA4MDQwMDAwCiszMiAzMiA4MDYwMDAwCiszMiAzMiA4MDgwMDAwCiszMiAzMiA4MTAwMDAwCiszMiAzMiA4MTIwMDAwCiszMiAzMiA4MTQwMDAwCiszMiAzMiA4MTYwMDAwCiszMiAzMiA4MTgwMDAwCiszMiAzMiA4MjAwMDAwCiszMiAzMiA4MjIwMDAwCiszMiAzMiA4MjQwMDAwCiszMiAzMiA4MjYwMDAwCiszMiAzMiA4MjgwMDAwCiszMiAzMiA4MzAwMDAwCiszMiAzMiA4MzIwMDAwCiszMiAzMiA4MzQwMDAwCiszMiAzMiA4MzYwMDAwCiszMiAzMiA4MzgwMDAwCiszMiAzMiA4NDAwMDAwCiszMiAzMiA4NDIwMDAwCiszMiAzMiA4NDQwMDAwCiszMiAzMiA4NDYwMDAwCiszMiAzMiA4NDgwMDAwCiszMiAzMiA4NTAwMDAwCiszMiAzMiA4NTIwMDAwCiszMiAzMiA4NTQwMDAwCiszMiAzMiA4NTYwMDAwCiszMiAzMiA4NTgwMDAwCiszMiAzMiA4NjAwMDAwCiszMiAzMiA4NjIwMDAwCiszMiAzMiA4NjQwMDAwCiszMiAzMiA4NjYwMDAwCiszMiAzMiA4NjgwMDAwCiszMiAzMiA4NzAwMDAwCiszMiAzMiA4NzIwMDAwCiszMiAzMiA4NzQwMDAwCiszMiAzMiA4NzYwMDAwCiszMiAzMiA4NzgwMDAwCiszMiAzMiA4ODAwMDAwCiszMiAzMiA4ODIwMDAwCiszMiAzMiA4ODQwMDAwCiszMiAzMiA4ODYwMDAwCiszMiAzMiA4ODgwMDAwCiszMiAzMiA4OTAwMDAwCiszMiAzMiA4OTIwMDAwCiszMiAzMiA4OTQwMDAwCiszMiAzMiA4OTYwMDAwCiszMiAzMiA4OTgwMDAwCiszMiAzMiA5MDAwMDAwCiszMiAzMiA5MDIwMDAwCiszMiAzMiA5MDQwMDAwCiszMiAzMiA5MDYwMDAwCiszMiAzMiA5MDgwMDAwCiszMiAzMiA5MTAwMDAwCiszMiAzMiA5MTIwMDAwCiszMiAzMiA5MTQwMDAwCiszMiAzMiA5MTYwMDAwCiszMiAzMiA5MTgwMDAwCiszMiAzMiA5MjAwMDAwCiszMiAzMiA5MjIwMDAwCiszMiAzMiA5MjQwMDAwCiszMiAzMiA5MjYwMDAwCiszMiAzMiA5MjgwMDAwCiszMiAzMiA5MzAwMDAwCiszMiAzMiA5MzIwMDAwCiszMiAzMiA5MzQwMDAwCiszMiAzMiA5MzYwMDAwCiszMiAzMiA5MzgwMDAwCiszMiAzMiA5NDAwMDAwCiszMiAzMiA5NDIwMDAwCiszMiAzMiA5NDQwMDAwCiszMiAzMiA5NDYwMDAwCiszMiAzMiA5NDgwMDAwCiszMiAzMiA5NTAwMDAwCiszMiAzMiA5NTIwMDAwCiszMiAzMiA5NTQwMDAwCiszMiAzMiA5NTYwMDAwCiszMiAzMiA5NTgwMDAwCiszMiAzMiA5NjAwMDAwCiszMiAzMiA5NjIwMDAwCiszMiAzMiA5NjQwMDAwCiszMiAzMiA5NjYwMDAwCiszMiAzMiA5NjgwMDAwCiszMiAzMiA5NzAwMDAwCiszMiAzMiA5NzIwMDAwCiszMiAzMiA5NzQwMDAwCiszMiAzMiA5NzYwMDAwCiszMiAzMiA5NzgwMDAwCiszMiAzMiA5ODAwMDAwCiszMiAzMiA5ODIwMDAwCiszMiAzMiA5ODQwMDAwCiszMiAzMiA5ODYwMDAwCiszMiAzMiA5ODgwMDAwCiszMiAzMiA5OTAwMDAwCiszMiAzMiA5OTIwMDAwCiszMiAzMiA5OTQwMDAwCiszMiAzMiA5OTYwMDAwCiszMiAzMiA5OTgwMDAwCiszMiAzMiAxMDAwMDAwMAorMzIgMzIgMTAwMjAwMDAKKzMyIDMyIDEwMDQwMDAwCiszMiAzMiAxMDA2MDAwMAorMzIgMzIgMTAwODAwMDAKKzMyIDMyIDEwMTAwMDAwCiszMiAzMiAxMDEyMDAwMAorMzIgMzIgMTAxNDAwMDAKKzMyIDMyIDEwMTYwMDAwCiszMiAzMiAxMDE4MDAwMAorMzIgMzIgMTAyMDAwMDAKKzMyIDMyIDEwMjIwMDAwCiszMiAzMiAxMDI0MDAwMAorMzIgMzIgMTAyNjAwMDAKKzMyIDMyIDEwMjgwMDAwCiszMiAzMiAxMDMwMDAwMAorMzIgMzIgMTAzMjAwMDAKKzMyIDMyIDEwMzQwMDAwCiszMiAzMiAxMDM2MDAwMAorMzIgMzIgMTAzODAwMDAKKzMyIDMyIDEwNDAwMDAwCiszMiAzMiAxMDQyMDAwMAorMzIgMzIgMTA0NDAwMDAKKzMyIDMyIDEwNDYwMDAwCiszMiAzMiAxMDQ4MDAwMAorMzIgMzIgMTA1MDAwMDAKKzMyIDMyIDEwNTIwMDAwCiszMiAzMiAxMDU0MDAwMAorMzIgMzIgMTA1NjAwMDAKKzMyIDMyIDEwNTgwMDAwCiszMiAzMiAxMDYwMDAwMAorMzIgMzIgMTA2MjAwMDAKKzMyIDMyIDEwNjQwMDAwCiszMiAzMiAxMDY2MDAwMAorMzIgMzIgMTA2ODAwMDAKKzMyIDMyIDEwNzAwMDAwCiszMiAzMiAxMDcyMDAwMAorMzIgMzIgMTA3NDAwMDAKKzMyIDMyIDEwNzYwMDAwCiszMiAzMiAxMDc4MDAwMAorMzIgMzIgMTA4MDAwMDAKKzMyIDMyIDEwODIwMDAwCiszMiAzMiAxMDg0MDAwMAorMzIgMzIgMTA4NjAwMDAKKzMyIDMyIDEwODgwMDAwCiszMiAzMiAxMDkwMDAwMAorMzIgMzIgMTA5MjAwMDAKKzMyIDMyIDEwOTQwMDAwCiszMiAzMiAxMDk2MDAwMAorMzIgMzIgMTA5ODAwMDAKKzMyIDMyIDExMDAwMDAwCiszMiAzMiAxMTAyMDAwMAorMzIgMzIgMTEwNDAwMDAKKzMyIDMyIDExMDYwMDAwCiszMiAzMiAxMTA4MDAwMAorMzIgMzIgMTExMDAwMDAKKzMyIDMyIDExMTIwMDAwCiszMiAzMiAxMTE0MDAwMAorMzIgMzIgMTExNjAwMDAKKzMyIDMyIDExMTgwMDAwCiszMiAzMiAxMTIwMDAwMAorMzIgMzIgMTEyMjAwMDAKKzMyIDMyIDExMjQwMDAwCiszMiAzMiAxMTI2MDAwMAorMzIgMzIgMTEyODAwMDAKKzMyIDMyIDExMzAwMDAwCiszMiAzMiAxMTMyMDAwMAorMzIgMzIgMTEzNDAwMDAKKzMyIDMyIDExMzYwMDAwCiszMiAzMiAxMTM4MDAwMAorMzIgMzIgMTE0MDAwMDAKKzMyIDMyIDExNDIwMDAwCiszMiAzMiAxMTQ0MDAwMAorMzIgMzIgMTE0NjAwMDAKKzMyIDMyIDExNDgwMDAwCiszMiAzMiAxMTUwMDAwMAorMzIgMzIgMTE1MjAwMDAKKzMyIDMyIDExNTQwMDAwCiszMiAzMiAxMTU2MDAwMAorMzIgMzIgMTE1ODAwMDAKKzMyIDMyIDExNjAwMDAwCiszMiAzMiAxMTYyMDAwMAorMzIgMzIgMTE2NDAwMDAKKzMyIDMyIDExNjYwMDAwCiszMiAzMiAxMTY4MDAwMAorMzIgMzIgMTE3MDAwMDAKKzMyIDMyIDExNzIwMDAwCiszMiAzMiAxMTc0MDAwMAorMzIgMzIgMTE3NjAwMDAKKzMyIDMyIDExNzgwMDAwCiszMiAzMiAxMTgwMDAwMAorMzIgMzIgMTE4MjAwMDAKKzMyIDMyIDExODQwMDAwCiszMiAzMiAxMTg2MDAwMAorMzIgMzIgMTE4ODAwMDAKKzMyIDMyIDExOTAwMDAwCiszMiAzMiAxMTkyMDAwMAorMzIgMzIgMTE5NDAwMDAKKzMyIDMyIDExOTYwMDAwCiszMiAzMiAxMTk4MDAwMAorMzIgMzIgMTIwMDAwMDAKKzMyIDMyIDEyMDIwMDAwCiszMiAzMiAxMjA0MDAwMAorMzIgMzIgMTIwNjAwMDAKKzMyIDMyIDEyMDgwMDAwCiszMiAzMiAxMjEwMDAwMAorMzIgMzIgMTIxMjAwMDAKKzMyIDMyIDEyMTQwMDAwCiszMiAzMiAxMjE2MDAwMAorMzIgMzIgMTIxODAwMDAKKzMyIDMyIDEyMjAwMDAwCiszMiAzMiAxMjIyMDAwMAorMzIgMzIgMTIyNDAwMDAKKzMyIDMyIDEyMjYwMDAwCiszMiAzMiAxMjI4MDAwMAorMzIgMzIgMTIzMDAwMDAKKzMyIDMyIDEyMzIwMDAwCiszMiAzMiAxMjM0MDAwMAorMzIgMzIgMTIzNjAwMDAKKzMyIDMyIDEyMzgwMDAwCiszMiAzMiAxMjQwMDAwMAorMzIgMzIgMTI0MjAwMDAKKzMyIDMyIDEyNDQwMDAwCiszMiAzMiAxMjQ2MDAwMAorMzIgMzIgMTI0ODAwMDAKKzMyIDMyIDEyNTAwMDAwCiszMiAzMiAxMjUyMDAwMAorMzIgMzIgMTI1NDAwMDAKKzMyIDMyIDEyNTYwMDAwCiszMiAzMiAxMjU4MDAwMAorMzIgMzIgMTI2MDAwMDAKKzMyIDMyIDEyNjIwMDAwCiszMiAzMiAxMjY0MDAwMAorMzIgMzIgMTI2NjAwMDAKKzMyIDMyIDEyNjgwMDAwCiszMiAzMiAxMjcwMDAwMAorMzIgMzIgMTI3MjAwMDAKKzMyIDMyIDEyNzQwMDAwCiszMiAzMiAxMjc2MDAwMAorMzIgMzIgMTI3ODAwMDAKKzMyIDMyIDEyODAwMDAwCiszMiAzMiAxMjgyMDAwMAorMzIgMzIgMTI4NDAwMDAKKzMyIDMyIDEyODYwMDAwCiszMiAzMiAxMjg4MDAwMAorMzIgMzIgMTI5MDAwMDAKKzMyIDMyIDEyOTIwMDAwCiszMiAzMiAxMjk0MDAwMAorMzIgMzIgMTI5NjAwMDAKKzMyIDMyIDEyOTgwMDAwCiszMiAzMiAxMzAwMDAwMAorMzIgMzIgMTMwMjAwMDAKKzMyIDMyIDEzMDQwMDAwCiszMiAzMiAxMzA2MDAwMAorMzIgMzIgMTMwODAwMDAKKzMyIDMyIDEzMTAwMDAwCiszMiAzMiAxMzEyMDAwMAorMzIgMzIgMTMxNDAwMDAKKzMyIDMyIDEzMTYwMDAwCiszMiAzMiAxMzE4MDAwMAorMzIgMzIgMTMyMDAwMDAKKzMyIDMyIDEzMjIwMDAwCiszMiAzMiAxMzI0MDAwMAorMzIgMzIgMTMyNjAwMDAKKzMyIDMyIDEzMjgwMDAwCiszMiAzMiAxMzMwMDAwMAorMzIgMzIgMTMzMjAwMDAKKzMyIDMyIDEzMzQwMDAwCiszMiAzMiAxMzM2MDAwMAorMzIgMzIgMTMzODAwMDAKKzMyIDMyIDEzNDAwMDAwCiszMiAzMiAxMzQyMDAwMAorMzIgMzIgMTM0NDAwMDAKKzMyIDMyIDEzNDYwMDAwCiszMiAzMiAxMzQ4MDAwMAorMzIgMzIgMTM1MDAwMDAKKzMyIDMyIDEzNTIwMDAwCiszMiAzMiAxMzU0MDAwMAorMzIgMzIgMTM1NjAwMDAKKzMyIDMyIDEzNTgwMDAwCiszMiAzMiAxMzYwMDAwMAorMzIgMzIgMTM2MjAwMDAKKzMyIDMyIDEzNjQwMDAwCiszMiAzMiAxMzY2MDAwMAorMzIgMzIgMTM2ODAwMDAKKzMyIDMyIDEzNzAwMDAwCiszMiAzMiAxMzcyMDAwMAorMzIgMzIgMTM3NDAwMDAKKzMyIDMyIDEzNzYwMDAwCiszMiAzMiAxMzc4MDAwMAorMzIgMzIgMTM4MDAwMDAKKzMyIDMyIDEzODIwMDAwCiszMiAzMiAxMzg0MDAwMAorMzIgMzIgMTM4NjAwMDAKKzMyIDMyIDEzODgwMDAwCiszMiAzMiAxMzkwMDAwMAorMzIgMzIgMTM5MjAwMDAKKzMyIDMyIDEzOTQwMDAwCiszMiAzMiAxMzk2MDAwMAorMzIgMzIgMTM5ODAwMDAKKzMyIDMyIDE0MDAwMDAwCiszMiAzMiAxNDAyMDAwMAorMzIgMzIgMTQwNDAwMDAKKzMyIDMyIDE0MDYwMDAwCiszMiAzMiAxNDA4MDAwMAorMzIgMzIgMTQxMDAwMDAKKzMyIDMyIDE0MTIwMDAwCiszMiAzMiAxNDE0MDAwMAorMzIgMzIgMTQxNjAwMDAKKzMyIDMyIDE0MTgwMDAwCiszMiAzMiAxNDIwMDAwMAorMzIgMzIgMTQyMjAwMDAKKzMyIDMyIDE0MjQwMDAwCiszMiAzMiAxNDI2MDAwMAorMzIgMzIgMTQyODAwMDAKKzMyIDMyIDE0MzAwMDAwCiszMiAzMiAxNDMyMDAwMAorMzIgMzIgMTQzNDAwMDAKKzMyIDMyIDE0MzYwMDAwCiszMiAzMiAxNDM4MDAwMAorMzIgMzIgMTQ0MDAwMDAKKzMyIDMyIDE0NDIwMDAwCiszMiAzMiAxNDQ0MDAwMAorMzIgMzIgMTQ0NjAwMDAKKzMyIDMyIDE0NDgwMDAwCiszMiAzMiAxNDUwMDAwMAorMzIgMzIgMTQ1MjAwMDAKKzMyIDMyIDE0NTQwMDAwCiszMiAzMiAxNDU2MDAwMAorMzIgMzIgMTQ1ODAwMDAKKzMyIDMyIDE0NjAwMDAwCiszMiAzMiAxNDYyMDAwMAorMzIgMzIgMTQ2NDAwMDAKKzMyIDMyIDE0NjYwMDAwCiszMiAzMiAxNDY4MDAwMAorMzIgMzIgMTQ3MDAwMDAKKzMyIDMyIDE0NzIwMDAwCiszMiAzMiAxNDc0MDAwMAorMzIgMzIgMTQ3NjAwMDAKKzMyIDMyIDE0NzgwMDAwCiszMiAzMiAxNDgwMDAwMAorMzIgMzIgMTQ4MjAwMDAKKzMyIDMyIDE0ODQwMDAwCiszMiAzMiAxNDg2MDAwMAorMzIgMzIgMTQ4ODAwMDAKKzMyIDMyIDE0OTAwMDAwCiszMiAzMiAxNDkyMDAwMAorMzIgMzIgMTQ5NDAwMDAKKzMyIDMyIDE0OTYwMDAwCiszMiAzMiAxNDk4MDAwMAorMzIgMzIgMTUwMDAwMDAKKzMyIDMyIDE1MDIwMDAwCiszMiAzMiAxNTA0MDAwMAorMzIgMzIgMTUwNjAwMDAKKzMyIDMyIDE1MDgwMDAwCiszMiAzMiAxNTEwMDAwMAorMzIgMzIgMTUxMjAwMDAKKzMyIDMyIDE1MTQwMDAwCiszMiAzMiAxNTE2MDAwMAorMzIgMzIgMTUxODAwMDAKKzMyIDMyIDE1MjAwMDAwCiszMiAzMiAxNTIyMDAwMAorMzIgMzIgMTUyNDAwMDAKKzMyIDMyIDE1MjYwMDAwCiszMiAzMiAxNTI4MDAwMAorMzIgMzIgMTUzMDAwMDAKKzMyIDMyIDE1MzIwMDAwCiszMiAzMiAxNTM0MDAwMAorMzIgMzIgMTUzNjAwMDAKKzMyIDMyIDE1MzgwMDAwCiszMiAzMiAxNTQwMDAwMAorMzIgMzIgMTU0MjAwMDAKKzMyIDMyIDE1NDQwMDAwCiszMiAzMiAxNTQ2MDAwMAorMzIgMzIgMTU0ODAwMDAKKzMyIDMyIDE1NTAwMDAwCiszMiAzMiAxNTUyMDAwMAorMzIgMzIgMTU1NDAwMDAKKzMyIDMyIDE1NTYwMDAwCiszMiAzMiAxNTU4MDAwMAorMzIgMzIgMTU2MDAwMDAKKzMyIDMyIDE1NjIwMDAwCiszMiAzMiAxNTY0MDAwMAorMzIgMzIgMTU2NjAwMDAKKzMyIDMyIDE1NjgwMDAwCiszMiAzMiAxNTcwMDAwMAorMzIgMzIgMTU3MjAwMDAKKzMyIDMyIDE1NzQwMDAwCiszMiAzMiAxNTc2MDAwMAorMzIgMzIgMTU3ODAwMDAKKzMyIDMyIDE1ODAwMDAwCiszMiAzMiAxNTgyMDAwMAorMzIgMzIgMTU4NDAwMDAKKzMyIDMyIDE1ODYwMDAwCiszMiAzMiAxNTg4MDAwMAorMzIgMzIgMTU5MDAwMDAKKzMyIDMyIDE1OTIwMDAwCiszMiAzMiAxNTk0MDAwMAorMzIgMzIgMTU5NjAwMDAKKzMyIDMyIDE1OTgwMDAwCiszMiAzMiAxNjAwMDAwMAorMzIgMzIgMTYwMjAwMDAKKzMyIDMyIDE2MDQwMDAwCiszMiAzMiAxNjA2MDAwMAorMzIgMzIgMTYwODAwMDAKKzMyIDMyIDE2MTAwMDAwCiszMiAzMiAxNjEyMDAwMAorMzIgMzIgMTYxNDAwMDAKKzMyIDMyIDE2MTYwMDAwCiszMiAzMiAxNjE4MDAwMAorMzIgMzIgMTYyMDAwMDAKKzMyIDMyIDE2MjIwMDAwCiszMiAzMiAxNjI0MDAwMAorMzIgMzIgMTYyNjAwMDAKKzMyIDMyIDE2MjgwMDAwCiszMiAzMiAxNjMwMDAwMAorMzIgMzIgMTYzMjAwMDAKKzMyIDMyIDE2MzQwMDAwCiszMiAzMiAxNjM2MDAwMAorMzIgMzIgMTYzODAwMDAKKzMyIDMyIDE2NDAwMDAwCiszMiAzMiAxNjQyMDAwMAorMzIgMzIgMTY0NDAwMDAKKzMyIDMyIDE2NDYwMDAwCiszMiAzMiAxNjQ4MDAwMAorMzIgMzIgMTY1MDAwMDAKKzMyIDMyIDE2NTIwMDAwCiszMiAzMiAxNjU0MDAwMAorMzIgMzIgMTY1NjAwMDAKKzMyIDMyIDE2NTgwMDAwCiszMiAzMiAxNjYwMDAwMAorMzIgMzIgMTY2MjAwMDAKKzMyIDMyIDE2NjQwMDAwCmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvQW5kcm9pZC5icCBiL21lbXRyYWNrLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmNmUxNmQKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDYzIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklNZW10cmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svMS4wL01lbXRyYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svMS4wL0lNZW10cmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svMS4wL0lId01lbXRyYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvQm5Id01lbXRyYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvQnBId01lbXRyYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvQnNNZW10cmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvQW5kcm9pZC5tayBiL21lbXRyYWNrLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1ODNiMGEKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDIzMiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFjay1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbXRyYWNrRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja0ZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6dHlwZXMuTWVtdHJhY2tGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNZW10cmFja1JlY29yZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja1JlY29yZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja1JlY29yZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWVtdHJhY2tTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrL1YxXzAvTWVtdHJhY2tTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6dHlwZXMuTWVtdHJhY2tTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbXRyYWNrVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja1R5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6dHlwZXMuTWVtdHJhY2tUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSU1lbXRyYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL0lNZW10cmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSU1lbXRyYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA6OklNZW10cmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSU1lbXRyYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFjay1WMS4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbXRyYWNrRmxhZykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja0ZsYWcuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6dHlwZXMuTWVtdHJhY2tGbGFnCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNZW10cmFja1JlY29yZCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja1JlY29yZC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wOjp0eXBlcy5NZW10cmFja1JlY29yZAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWVtdHJhY2tTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrL1YxXzAvTWVtdHJhY2tTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6dHlwZXMuTWVtdHJhY2tTdGF0dXMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKE1lbXRyYWNrVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svVjFfMC9NZW10cmFja1R5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDo6dHlwZXMuTWVtdHJhY2tUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSU1lbXRyYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay9WMV8wL0lNZW10cmFjay5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSU1lbXRyYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA6OklNZW10cmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSU1lbXRyYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvbWVtdHJhY2svMS4wL0lNZW10cmFjay5oYWwgYi9tZW10cmFjay8xLjAvSU1lbXRyYWNrLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzI5MDMyCi0tLSAvZGV2L251bGwKKysrIGIvbWVtdHJhY2svMS4wL0lNZW10cmFjay5oYWwKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjA7CisKKy8qKgorICogVGhlIE1lbW9yeSBUcmFja2VyIEhBTCBpcyBkZXNpZ25lZCB0byByZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQKKyAqIGRldmljZS1zcGVjaWZpYyBtZW1vcnkgdXNhZ2UuCisgKiBUaGUgcHJpbWFyeSBnb2FsIGlzIHRvIGJlIGFibGUgdG8gdHJhY2sgbWVtb3J5IHRoYXQgaXMgbm90CisgKiB0cmFja2FibGUgaW4gYW55IG90aGVyIHdheSwgZm9yIGV4YW1wbGUgdGV4dHVyZSBtZW1vcnkgdGhhdCBpcyBhbGxvY2F0ZWQgYnkKKyAqIGEgcHJvY2VzcywgYnV0IG5vdCBtYXBwZWQgaW4gdG8gdGhhdCBwcm9jZXNzJ3MgYWRkcmVzcyBzcGFjZS4KKyAqIEEgc2Vjb25kYXJ5IGdvYWwgaXMgdG8gYmUgYWJsZSB0byBjYXRlZ29yaXplIG1lbW9yeSB1c2VkIGJ5IGEgcHJvY2VzcyBpbnRvCisgKiBHTCwgZ3JhcGhpY3MsIGV0Yy4gQWxsIG1lbW9yeSBzaXplcyBtdXN0IGJlIGluIHJlYWwgbWVtb3J5IHVzYWdlLAorICogYWNjb3VudGluZyBmb3Igc3RyaWRlLCBiaXQgZGVwdGgsIHJvdW5kaW5nIHVwIHRvIHBhZ2Ugc2l6ZSwgZXRjLgorICoKKyAqIENvbnN0cnVjdG9yIGZvciB0aGUgaW50ZXJmYWNlIHNob3VsZCBiZSB1c2VkIHRvIHBlcmZvcm0gbWVtdHJhY2sgbWFuYWdlbWVudAorICogc2V0dXAgYWN0aW9ucyBhbmQgaXMgY2FsbGVkIG9uY2UgYmVmb3JlIGFueSBjYWxscyB0byBnZXRNZW1vcnkoKS4KKyAqLworaW50ZXJmYWNlIElNZW10cmFjayB7CisgICAgLyoqCisgICAgICogZ2V0TWVtb3J5KCkgcG9wdWxhdGVzIE1lbXRyYWNrUmVjb3JkIHZlY3RvciB3aXRoIHRoZSBzaXplcyBvZiBtZW1vcnkKKyAgICAgKiBwbHVzIGFzc29jaWF0ZWQgZmxhZ3MgZm9yIHRoYXQgbWVtb3J5LgorICAgICAqCisgICAgICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIHRocmVhZC1zYWZlLCBpdCBtYXkgZ2V0IGNhbGxlZCBmcm9tIG11bHRpcGxlCisgICAgICogdGhyZWFkcyBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAqCisgICAgICogQSBwcm9jZXNzIGNvbGxlY3RpbmcgbWVtb3J5IHN0YXRpc3RpY3Mgd2lsbCBjYWxsIGdldE1lbW9yeSBmb3IgZWFjaAorICAgICAqIGNvbWJpbmF0aW9uIG9mIHBpZCBhbmQgbWVtb3J5IHR5cGUuIEZvciBlYWNoIG1lbW9yeSB0eXBlIHRoYXQgaXQKKyAgICAgKiByZWNvZ25pemVzLCB0aGUgSEFMIG11c3QgZmlsbCBvdXQgYW4gYXJyYXkgb2YgbWVtdHJhY2tfcmVjb3JkCisgICAgICogc3RydWN0dXJlcyBicmVha2luZyBkb3duIHRoZSBzdGF0aXN0aWNzIG9mIHRoYXQgbWVtb3J5IHR5cGUgYXMgbXVjaCBhcworICAgICAqIHBvc3NpYmxlLiBGb3IgZXhhbXBsZSwKKyAgICAgKiBnZXRNZW1vcnkoPHBpZD4sIEdMKSBtaWdodCByZXR1cm46CisgICAgICogeyB7IDQwOTYsICBBQ0NPVU5URUQgfCBQUklWQVRFIHwgU1lTVEVNIH0sCisgICAgICogICB7IDQwOTYwLCBVTkFDQ09VTlRFRCB8IFBSSVZBVEUgfCBTWVNURU0gfSwKKyAgICAgKiAgIHsgODE5MiwgIEFDQ09VTlRFRCB8IFBSSVZBVEUgfCBERURJQ0FURUQgfSwKKyAgICAgKiAgIHsgODE5MiwgIFVOQUNDT1VOVEVEIHwgUFJJVkFURSB8IERFRElDQVRFRCB9IH0KKyAgICAgKiBJZiB0aGUgSEFMIGNhbm5vdCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gU1lTVEVNIGFuZCBERURJQ0FURUQgbWVtb3J5LCBpdAorICAgICAqIGNvdWxkIHJldHVybjoKKyAgICAgKiB7IHsgMTIyODgsICBBQ0NPVU5URUQgfCBQUklWQVRFIH0sCisgICAgICogICB7IDQ5MTUyLCAgVU5BQ0NPVU5URUQgfCBQUklWQVRFIH0gfQorICAgICAqCisgICAgICogTWVtb3J5IG11c3Qgbm90IG92ZXJsYXAgYmV0d2VlbiB0eXBlcy4gRm9yIGV4YW1wbGUsIGEgZ3JhcGhpY3MgYnVmZmVyCisgICAgICogdGhhdCBoYXMgYmVlbiBtYXBwZWQgaW50byB0aGUgR1BVIGFzIGEgc3VyZmFjZSBtdXN0IHNob3cgdXAgd2hlbgorICAgICAqIEdSQVBISUNTIGlzIHJlcXVlc3RlZCBhbmQgbm90IHdoZW4gR0wKKyAgICAgKiBpcyByZXF1ZXN0ZWQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcGlkIHByb2Nlc3MgZm9yIHdoaWNoIG1lbW9yeSBpbmZvcm1hdGlvbiBpcyByZXF1ZXN0ZWQKKyAgICAgKiBAcGFyYW0gdHlwZSBtZW1vcnkgdHlwZSB0aGF0IGluZm9ybWF0aW9uIGlzIGJlaW5nIHJlcXVlc3RlZCBhYm91dAorICAgICAqIEByZXR1cm4gcmVjb3JkcyB2ZWN0b3Igb2YgTWVtdHJhY2tSZWNvcmQgY29udGFpbmluZyBtZW1vcnkgaW5mb3JtYXRpb24KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBTVUNDRVNTIG9uIHN1Y2Nlc3MsIFRZUEVfTk9UX0ZPVU5EIGlmIHRoZSB0eXBlIGlzIG5vdAorICAgICAqIHN1cHBvcnRlZC4KKyAgICAgKi8KKyAgICBnZXRNZW1vcnkoaW50MzJfdCBwaWQsIE1lbXRyYWNrVHlwZSB0eXBlKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChNZW10cmFja1N0YXR1cyByZXR2YWwsIHZlYzxNZW10cmFja1JlY29yZD4gcmVjb3Jkcyk7Cit9OwpkaWZmIC0tZ2l0IGEvbWVtdHJhY2svMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZkN2ZjOAotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw1MyBAQAorLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtaW1wbCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBzcmNzOiBbIk1lbXRyYWNrLmNwcCJdLAorCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAiLAorICAgIF0sCisKK30KKworY2NfYmluYXJ5IHsKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMC1zZXJ2aWNlIiwKKyAgICBpbml0X3JjOiBbImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wLXNlcnZpY2UucmMiXSwKKyAgICBzcmNzOiBbInNlcnZpY2UuY3BwIl0sCisKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGliZGwiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMCIsCisgICAgXSwKKworfQpkaWZmIC0tZ2l0IGEvbWVtdHJhY2svMS4wL2RlZmF1bHQvTWVtdHJhY2suY3BwIGIvbWVtdHJhY2svMS4wL2RlZmF1bHQvTWVtdHJhY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzYTY5MDYKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvZGVmYXVsdC9NZW10cmFjay5jcHAKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wLWltcGwiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL21lbXRyYWNrLmg+CisKKyNpbmNsdWRlICJNZW10cmFjay5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIG1lbXRyYWNrIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK01lbXRyYWNrOjpNZW10cmFjayhjb25zdCBtZW10cmFja19tb2R1bGVfdCAqbW9kdWxlKSA6IG1Nb2R1bGUobW9kdWxlKSB7CisgICAgaWYgKG1Nb2R1bGUpCisgICAgICAgIG1Nb2R1bGUtPmluaXQobU1vZHVsZSk7Cit9CisKK01lbXRyYWNrOjp+TWVtdHJhY2soKSB7CisgICAgZGVsZXRlKG1Nb2R1bGUpOworfQorCitSZXR1cm48dm9pZD4gTWVtdHJhY2s6OmdldE1lbW9yeShpbnQzMl90IHBpZCwgTWVtdHJhY2tUeXBlIHR5cGUsCisgICAgICAgIGdldE1lbW9yeV9jYiBfaGlkbF9jYikgIHsKKyAgICBoaWRsX3ZlYzxNZW10cmFja1JlY29yZD4gcmVjb3JkczsKKyAgICBzaXplX3QgdGVtcCA9IDA7CisgICAgc2l6ZV90ICpzaXplID0gJnRlbXA7CisgICAgaW50IHJldCA9IDA7CisKKyAgICBpZiAobU1vZHVsZS0+Z2V0TWVtb3J5ID09IG51bGxwdHIpCisgICAgeworICAgICAgICBfaGlkbF9jYihNZW10cmFja1N0YXR1czo6U1VDQ0VTUywgcmVjb3Jkcyk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorICAgIHJldCA9IG1Nb2R1bGUtPmdldE1lbW9yeShtTW9kdWxlLCBwaWQsIHN0YXRpY19jYXN0PG1lbXRyYWNrX3R5cGU+KHR5cGUpLAorICAgICAgICAgICAgTlVMTCwgc2l6ZSk7CisgICAgaWYgKHJldCA9PSAwKQorICAgIHsKKyAgICAgICAgbWVtdHJhY2tfcmVjb3JkICpsZWdhY3lfcmVjb3JkcyA9IG5ldyBtZW10cmFja19yZWNvcmRbKnNpemVdOworICAgICAgICByZXQgPSBtTW9kdWxlLT5nZXRNZW1vcnkobU1vZHVsZSwgcGlkLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PG1lbXRyYWNrX3R5cGU+KHR5cGUpLCBsZWdhY3lfcmVjb3Jkcywgc2l6ZSk7CisgICAgICAgIGlmIChyZXQgPT0gMCkKKyAgICAgICAgeworICAgICAgICAgICAgcmVjb3Jkcy5yZXNpemUoKnNpemUpOworICAgICAgICAgICAgZm9yKHNpemVfdCBpID0gMDsgaSA8ICpzaXplOyBpKyspCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmVjb3Jkc1tpXS5zaXplSW5CeXRlcyA9IGxlZ2FjeV9yZWNvcmRzW2ldLnNpemVfaW5fYnl0ZXM7CisgICAgICAgICAgICAgICAgcmVjb3Jkc1tpXS5mbGFncyA9IGxlZ2FjeV9yZWNvcmRzW2ldLmZsYWdzOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRlbGV0ZVtdIGxlZ2FjeV9yZWNvcmRzOworICAgIH0KKyAgICBfaGlkbF9jYihNZW10cmFja1N0YXR1czo6U1VDQ0VTUywgcmVjb3Jkcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworCitJTWVtdHJhY2sqIEhJRExfRkVUQ0hfSU1lbXRyYWNrKGNvbnN0IGNoYXIqIC8qIG5hbWUgKi8pIHsKKyAgICBjb25zdCBod19tb2R1bGVfdCogaHdfbW9kdWxlID0gbnVsbHB0cjsKKyAgICBjb25zdCBtZW10cmFja19tb2R1bGVfdCogbWVtdHJhY2tfbW9kdWxlID0gbnVsbHB0cjsKKyAgICBpbnQgZXJyID0gaHdfZ2V0X21vZHVsZShNRU1UUkFDS19IQVJEV0FSRV9NT0RVTEVfSUQsICZod19tb2R1bGUpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAgQUxPR0UgKCJod19nZXRfbW9kdWxlICVzIGZhaWxlZDogJWQiLCBNRU1UUkFDS19IQVJEV0FSRV9NT0RVTEVfSUQsIGVycik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmICghaHdfbW9kdWxlLT5tZXRob2RzIHx8ICFod19tb2R1bGUtPm1ldGhvZHMtPm9wZW4pIHsKKyAgICAgICAgbWVtdHJhY2tfbW9kdWxlID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBtZW10cmFja19tb2R1bGVfdCo+KGh3X21vZHVsZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZXJyID0gaHdfbW9kdWxlLT5tZXRob2RzLT5vcGVuKGh3X21vZHVsZSwgTUVNVFJBQ0tfSEFSRFdBUkVfTU9EVUxFX0lELAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfZGV2aWNlX3QqKj4oY29uc3RfY2FzdDxtZW10cmFja19tb2R1bGVfdCoqPigmbWVtdHJhY2tfbW9kdWxlKSkpOworICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgICBBTE9HRSgiUGFzc3Rocm91Z2ggZmFpbGVkIHRvIGxvYWQgbGVnYWN5IEhBTC4iKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBuZXcgTWVtdHJhY2sobWVtdHJhY2tfbW9kdWxlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgbWVtdHJhY2sKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL21lbXRyYWNrLzEuMC9kZWZhdWx0L01lbXRyYWNrLmggYi9tZW10cmFjay8xLjAvZGVmYXVsdC9NZW10cmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhZGJhNzYKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvZGVmYXVsdC9NZW10cmFjay5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfTUVNVFJBQ0tfVjFfMF9NRU1UUkFDS19ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfTUVNVFJBQ0tfVjFfMF9NRU1UUkFDS19ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL21lbXRyYWNrLzEuMC9JTWVtdHJhY2suaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgbWVtdHJhY2sgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6OklNZW10cmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpNZW10cmFja1JlY29yZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpNZW10cmFja1N0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpNZW10cmFja1R5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBNZW10cmFjayA6IHB1YmxpYyBJTWVtdHJhY2sgeworICAgIE1lbXRyYWNrKGNvbnN0IG1lbXRyYWNrX21vZHVsZV90KiBtb2R1bGUpOworICAgIH5NZW10cmFjaygpOworICAgIFJldHVybjx2b2lkPiBnZXRNZW1vcnkoaW50MzJfdCBwaWQsIE1lbXRyYWNrVHlwZSB0eXBlLCBnZXRNZW1vcnlfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIGNvbnN0IG1lbXRyYWNrX21vZHVsZV90KiBtTW9kdWxlOworfTsKKworZXh0ZXJuICJDIiBJTWVtdHJhY2sqIEhJRExfRkVUQ0hfSU1lbXRyYWNrKGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgbWVtdHJhY2sKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX01FTVRSQUNLX1YxXzBfTUVNVFJBQ0tfSApkaWZmIC0tZ2l0IGEvbWVtdHJhY2svMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtc2VydmljZS5yYyBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk3NWExOAotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIG1lbXRyYWNrLWhhbC0xLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS5tZW10cmFja0AxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL21lbXRyYWNrLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwNzk3NDMKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9tZW10cmFjay8xLjAvSU1lbXRyYWNrLmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjptZW10cmFjazo6VjFfMDo6SU1lbXRyYWNrOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjsKKworaW50IG1haW4oKSB7CisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJTWVtdHJhY2s+KCk7Cit9CmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvdHlwZXMuaGFsIGIvbWVtdHJhY2svMS4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xODkzMTJhCi0tLSAvZGV2L251bGwKKysrIGIvbWVtdHJhY2svMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLm1lbXRyYWNrQDEuMDsKKworLyoqCisgKiBTTUFQU19BQ0NPVU5URUQvU01BUFNfVU5BQ0NPVU5URUQKKyAqIEZsYWdzIHRvIGRpZmZlcmVudGlhdGUgbWVtb3J5IHRoYXQgY2FuIGFscmVhZHkgYmUgYWNjb3VudGVkIGZvciBpbgorICogL3Byb2MvPHBpZD4vc21hcHMsCisgKiAoU2hhcmVkX0NsZWFuICsgU2hhcmVkX0RpcnR5ICsgUHJpdmF0ZV9DbGVhbiArIFByaXZhdGVfRGlydHkgPSBTaXplKS4KKyAqIEluIGdlbmVyYWwsIG1lbW9yeSBtYXBwZWQgaW4gdG8gYSB1c2Vyc3BhY2UgcHJvY2VzcyBpcyBhY2NvdW50ZWQgdW5sZXNzCisgKiBpdCB3YXMgbWFwcGVkIHdpdGggcmVtYXBfcGZuX3JhbmdlLgorICogRXhhY3RseSBvbmUgb2YgdGhlc2UgbXVzdCBiZSBzZXQuCisgKgorICogU0hBUkVEL1NIQVJFRF9QU1MvUFJJVkFURQorICogRmxhZ3MgdG8gZGlmZmVyZW50aWF0ZSBtZW1vcnkgc2hhcmVkIGFjcm9zcyBtdWx0aXBsZSBwcm9jZXNzZXMgdnMuIG1lbW9yeQorICogdXNlZCBieSBhIHNpbmdsZSBwcm9jZXNzLgorICogSWYgU0hBUkVEX1BTUyBmbGFncyBpcyB1c2VkLCB0aGUgbWVtb3J5IG11c3QgYmUgZGl2aWRlZCBieSB0aGUgbnVtYmVyIG9mCisgKiBwcm9jZXNzZXMgaG9sZGluZyByZWZlcmVuY2UgdG8gaXQgKHNoYXJlZCAvIG51bV9wcm9jZXNzZXMpLgorICogT25seSB6ZXJvIG9yIG9uZSBvZiB0aGVzZSBtYXkgYmUgc2V0IGluIGEgcmVjb3JkLgorICogSWYgbm9uZSBhcmUgc2V0LCByZWNvcmQgaXMgYXNzdW1lZCB0byBjb3VudCBzaGFyZWQgKyBwcml2YXRlIG1lbW9yeS4KKyAqCisgKiBTWVNURU0vREVESUNBVEVECisgKiBGbGFncyB0byBkaWZmZXJlbnRpYXRlIG1lbW9yeSB0YWtlbiBmcm9tIHRoZSBrZXJuZWwncyBhbGxvY2F0aW9uIHBvb2wgdnMuCisgKiBtZW1vcnkgdGhhdCBpcyBkZWRpY2F0ZWQgdG8gbm9uLWtlcm5lbCBhbGxvY2F0aW9ucywgZm9yIGV4YW1wbGUgYSBjYXJ2ZW91dAorICogb3Igc2VwYXJhdGUgdmlkZW8gbWVtb3J5LiAgT25seSB6ZXJvIG9yIG9uZSBvZiB0aGVzZSBtYXkgYmUgc2V0IGluIGEgcmVjb3JkLgorICogSWYgbm9uZSBhcmUgc2V0LCByZWNvcmQgaXMgYXNzdW1lZCB0byBjb3VudCBzeXN0ZW0gKyBkZWRpY2F0ZWQgbWVtb3J5LgorICoKKyAqIE5PTlNFQ1VSRS9TRUNVUkUKKyAqIEZsYWdzIHRvIGRpZmZlcmVudGlhdGUgbWVtb3J5IGFjY2Vzc2libGUgYnkgdGhlIENQVSBpbiBub24tc2VjdXJlIG1vZGUgdnMuCisgKiBtZW1vcnkgdGhhdCBpcyBwcm90ZWN0ZWQuICBPbmx5IHplcm8gb3Igb25lIG9mIHRoZXNlIG1heSBiZSBzZXQgaW4gYSByZWNvcmQuCisgKiBJZiBub25lIGFyZSBzZXQsIHJlY29yZCBpcyBhc3N1bWVkIHRvIGNvdW50IHNlY3VyZSArIG5vbnNlY3VyZSBtZW1vcnkuCisgKi8KK2VudW0gTWVtdHJhY2tGbGFnIDogdWludDMyX3QgeworICAgIFNNQVBTX0FDQ09VTlRFRCA9IDEgPDwgMSwKKyAgICBTTUFQU19VTkFDQ09VTlRFRCA9IDEgPDwgMiwKKyAgICBTSEFSRUQgPSAxIDw8IDMsCisgICAgU0hBUkVEX1BTUyA9IDEgPDwgNCwKKyAgICBQUklWQVRFID0gMSA8PCA1LAorICAgIFNZU1RFTSA9IDEgPDwgNiwKKyAgICBERURJQ0FURUQgPSAxIDw8IDcsCisgICAgTk9OU0VDVVJFID0gMSA8PCA4LAorICAgIFNFQ1VSRSA9IDEgPDwgOSwKK307CisKKy8qKiBUYWdzIHdoaWNoIGRlZmluZSB0aGUgdXNhZ2Ugb2YgdGhlIG1lbW9yeSBidWZmZXJzLiAqLworZW51bSBNZW10cmFja1R5cGUgOiB1aW50MzJfdCB7CisgICAgT1RIRVIgPSAwLAorICAgIEdMID0gMSwKKyAgICBHUkFQSElDUyA9IDIsCisgICAgTVVMVElNRURJQSA9IDMsCisgICAgQ0FNRVJBID0gNCwKKyAgICBOVU1fVFlQRVMsCit9OworCitlbnVtIE1lbXRyYWNrU3RhdHVzIDogdWludDMyX3QgeworICAgIFNVQ0NFU1MgPSAwLAorICAgIE1FTU9SWV9UUkFDS0lOR19OT1RfU1VQUE9SVEVEID0gMSwKKyAgICBUWVBFX05PVF9TVVBQT1JURUQgPSAyLAorfTsKKworLyogQSB2ZWN0b3Igb2YgTWVtdHJhY2tSZWNvcmQgaXMgcmV0dXJuZWQgYnkgdGhlIGZ1bmN0aW9uIGdldE1lbW9yeSgpLgorICogRWFjaCByZWNvcmQgY29uc2lzdHMgb2YgdGhlIHNpemUgb2YgdGhlIG1lbW9yeSB1c2VkIGJ5IHRoZSBwcm9jZXNzIGFuZAorICogZmxhZ3MgaW5kaWNhdGUgdGhlIGFsbCB0aGUgTWVtdHJhY2tGbGFnIHRoYXQgYXJlIHZhbGlkIGZvciB0aGlzIHJlY29yZC4KKyAqIHNlZSBnZXRNZW1vcnkoKSBjb21tZW50cyBmb3IgZnVydGhlciBkZXRhaWxzLgorICovCitzdHJ1Y3QgTWVtdHJhY2tSZWNvcmQgeworICAgIHVpbnQ2NF90IHNpemVJbkJ5dGVzOworICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIGJpdGZpZWxkIGZvciB0aGUgTWVtdHJhY2tGbGFnIGluZGljYXRpbmcgYWxsIHRoZSBmbGFncyB0aGF0CisgICAgICogYXJlIHZhbGlkIGZvciB0aGlzIHJlY29yZC4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBmbGFnczsKK307CmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL21lbXRyYWNrLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxZTYxMTEKLS0tIC9kZXYvbnVsbAorKysgYi9tZW10cmFjay8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM1IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsTWVtdHJhY2tWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsTWVtdHJhY2tWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUubWVtdHJhY2tAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CmRpZmYgLS1naXQgYS9tZW10cmFjay8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsTWVtdHJhY2tWMV8wVGFyZ2V0VGVzdC5jcHAgYi9tZW10cmFjay8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsTWVtdHJhY2tWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZmNTY2ZQotLS0gL2Rldi9udWxsCisrKyBiL21lbXRyYWNrLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxNZW10cmFja1YxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAibWVtdHJhY2tfaGlkbF9oYWxfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS91bmlxdWVfZmQuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvbWVtdHJhY2svMS4wL0lNZW10cmFjay5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisKKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpJTWVtdHJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZW10cmFjazo6VjFfMDo6TWVtdHJhY2tSZWNvcmQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjptZW10cmFjazo6VjFfMDo6TWVtdHJhY2tGbGFnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bWVtdHJhY2s6OlYxXzA6Ok1lbXRyYWNrVHlwZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6Om1lbXRyYWNrOjpWMV8wOjpNZW10cmFja1N0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpzcDsKK3VzaW5nIDo6YW5kcm9pZDo6YmFzZTo6dW5pcXVlX2ZkOwordXNpbmcgc3RkOjp2ZWN0b3I7Cit1c2luZyBzdGQ6OmNvdW50X2lmOworCitjbGFzcyBNZW10cmFja0hpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBtZW10cmFjayA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElNZW10cmFjaz4oKTsKKyAgICBBU1NFUlRfTkUobWVtdHJhY2ssIG51bGxwdHIpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBzcDxJTWVtdHJhY2s+IG1lbXRyYWNrOworfTsKKworLyogUmV0dXJucyB0cnVlIGlmIGZsYWdzIGNvbnRhaW5zIGF0IGxlYXN0IG1pbiwgYW5kIG5vIG1vcmUgdGhhbiBtYXgsCisgKiBvZiB0aGUgZmxhZ3MgaW4gZmxhZ1NldC4gUmV0dXJucyBmYWxzZSBvdGhlcndpc2UuCisgKi8KK2Jvb2wgcmlnaHRGbGFnQ291bnQodWludDMyX3QgZmxhZ3MsIHZlY3RvcjxNZW10cmFja0ZsYWc+IGZsYWdTZXQsIHVpbnQzMl90IG1pbiwKKyAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbWF4KSB7CisgIHVpbnQzMl90IGNvdW50ID0KKyAgICAgIGNvdW50X2lmKGZsYWdTZXQuYmVnaW4oKSwgZmxhZ1NldC5lbmQoKSwKKyAgICAgICAgICAgICAgIFsmXShNZW10cmFja0ZsYWcgZikgeyByZXR1cm4gZmxhZ3MgJiAodWludDMyX3QpZjsgfSk7CisgIHJldHVybiAobWluIDw9IGNvdW50ICYmIGNvdW50IDw9IG1heCk7Cit9CisKKy8qIFJldHVybnMgdHJ1ZSB3aGVuIHBhc3NlZCBhIHZhbGlkLCBkZWZpbmVkIHN0YXR1cywgZmFsc2Ugb3RoZXJ3aXNlLgorICovCitib29sIHZhbGlkU3RhdHVzKE1lbXRyYWNrU3RhdHVzIHMpIHsKKyAgdmVjdG9yPE1lbXRyYWNrU3RhdHVzPiBzdGF0dXNWZWMgPSB7CisgICAgICBNZW10cmFja1N0YXR1czo6U1VDQ0VTUywgTWVtdHJhY2tTdGF0dXM6Ok1FTU9SWV9UUkFDS0lOR19OT1RfU1VQUE9SVEVELAorICAgICAgTWVtdHJhY2tTdGF0dXM6OlRZUEVfTk9UX1NVUFBPUlRFRH07CisgIHJldHVybiBzdGQ6OmZpbmQoc3RhdHVzVmVjLmJlZ2luKCksIHN0YXR1c1ZlYy5lbmQoKSwgcykgIT0gc3RhdHVzVmVjLmVuZCgpOworfQorCithdXRvIGdlbmVyYXRlX2NiKE1lbXRyYWNrU3RhdHVzICpzLCBoaWRsX3ZlYzxNZW10cmFja1JlY29yZD4gKnYpIHsKKyAgcmV0dXJuIFs9XShNZW10cmFja1N0YXR1cyBzdGF0dXMsIGhpZGxfdmVjPE1lbXRyYWNrUmVjb3JkPiB2ZWMpIHsKKyAgICAqcyA9IHN0YXR1czsKKyAgICAqdiA9IHZlYzsKKyAgfTsKK30KKworLyogU2FuaXR5IGNoZWNrIHJlc3VsdHMgd2hlbiBnZXRNZW1vcnkoKSBpcyBwYXNzZWQgYSBuZWdhdGl2ZSBQSUQKKyAqLworVEVTVF9GKE1lbXRyYWNrSGlkbFRlc3QsIEJhZFBpZFRlc3QpIHsKKyAgTWVtdHJhY2tTdGF0dXMgczsKKyAgaGlkbF92ZWM8TWVtdHJhY2tSZWNvcmQ+IHY7CisgIGF1dG8gY2IgPSBnZW5lcmF0ZV9jYigmcywgJnYpOworICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KE1lbXRyYWNrVHlwZTo6TlVNX1RZUEVTKTsKKyAgICAgICBpKyspIHsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgICAgbWVtdHJhY2stPmdldE1lbW9yeSgtMSwgc3RhdGljX2Nhc3Q8TWVtdHJhY2tUeXBlPihpKSwgY2IpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgIEFTU0VSVF9UUlVFKHZhbGlkU3RhdHVzKHMpKTsKKyAgfQorfQorCisvKiBTYW5pdHkgY2hlY2sgcmVzdWx0cyB3aGVuIGdldE1lbW9yeSgpIGlzIHBhc3NlZCBhIGJhZCBtZW1vcnkgdXNhZ2UgdHlwZQorICovCitURVNUX0YoTWVtdHJhY2tIaWRsVGVzdCwgQmFkVHlwZVRlc3QpIHsKKyAgTWVtdHJhY2tTdGF0dXMgczsKKyAgaGlkbF92ZWM8TWVtdHJhY2tSZWNvcmQ+IHY7CisgIGF1dG8gY2IgPSBnZW5lcmF0ZV9jYigmcywgJnYpOworICBSZXR1cm48dm9pZD4gcmV0ID0gbWVtdHJhY2stPmdldE1lbW9yeShnZXRwaWQoKSwgTWVtdHJhY2tUeXBlOjpOVU1fVFlQRVMsIGNiKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9UUlVFKHZhbGlkU3RhdHVzKHMpKTsKK30KKworLyogQ2FsbCBtZW10cmFjayBvbiB0aGlzIHByb2Nlc3MgYW5kIGNoZWNrIHRoYXQgdGhlIHJlc3VsdHMgYXJlIHJlYXNvbmFibGUKKyAqIGZvciBhbGwgbWVtb3J5IHR5cGVzLCBpbmNsdWRpbmcgdmFsaWQgZmxhZyBjb21iaW5hdGlvbnMgZm9yIGV2ZXJ5CisgKiBNZW10cmFja1JlY29yZCByZXR1cm5lZC4KKyAqLworVEVTVF9GKE1lbXRyYWNrSGlkbFRlc3QsIEdldE1lbW9yeVRlc3QpIHsKKyAgLyogT3BlbmluZyB0aGlzIGRldmljZSBjYXVzZXMgdGhlIGtlcm5lbCB0byBwcm92aWRlIG1lbXRyYWNrIHdpdGggbWVtb3J5CisgICAqIGluZm8gZm9yIHRoaXMgcHJvY2Vzcy4KKyAgICovCisgIHVuaXF1ZV9mZCBmZChvcGVuKCIvZGV2L2tnc2wtM2QwIiwgT19SRFdSKSk7CisKKyAgTWVtdHJhY2tTdGF0dXMgczsKKyAgaGlkbF92ZWM8TWVtdHJhY2tSZWNvcmQ+IHY7CisgIGF1dG8gY2IgPSBnZW5lcmF0ZV9jYigmcywgJnYpOworICB1aW50MzJfdCB1bnN1cHBvcnRlZENvdW50ID0gMDsKKyAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PHVpbnQzMl90PihNZW10cmFja1R5cGU6Ok5VTV9UWVBFUyk7CisgICAgICAgaSsrKSB7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9CisgICAgICAgIG1lbXRyYWNrLT5nZXRNZW1vcnkoZ2V0cGlkKCksIHN0YXRpY19jYXN0PE1lbXRyYWNrVHlwZT4oaSksIGNiKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHN3aXRjaCAocykgeworICAgICAgY2FzZSBNZW10cmFja1N0YXR1czo6TUVNT1JZX1RSQUNLSU5HX05PVF9TVVBQT1JURUQ6CisgICAgICAgIHVuc3VwcG9ydGVkQ291bnQrKzsKKyAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIE1lbXRyYWNrU3RhdHVzOjpUWVBFX05PVF9TVVBQT1JURUQ6CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBNZW10cmFja1N0YXR1czo6U1VDQ0VTUzogeworICAgICAgICBmb3IgKHVpbnQzMl90IGogPSAwOyBqIDwgdi5zaXplKCk7IGorKykgeworICAgICAgICAgIC8vIEVuZm9yY2UgZmxhZyBjb25zdHJhaW50cworICAgICAgICAgIHZlY3RvcjxNZW10cmFja0ZsYWc+IHNtYXBGbGFncyA9IHtNZW10cmFja0ZsYWc6OlNNQVBTX0FDQ09VTlRFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtdHJhY2tGbGFnOjpTTUFQU19VTkFDQ09VTlRFRH07CisgICAgICAgICAgRVhQRUNUX1RSVUUocmlnaHRGbGFnQ291bnQodltqXS5mbGFncywgc21hcEZsYWdzLCAxLCAxKSk7CisgICAgICAgICAgdmVjdG9yPE1lbXRyYWNrRmxhZz4gc2hhcmVGbGFncyA9IHtNZW10cmFja0ZsYWc6OlNIQVJFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbXRyYWNrRmxhZzo6U0hBUkVEX1BTUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbXRyYWNrRmxhZzo6UFJJVkFURX07CisgICAgICAgICAgRVhQRUNUX1RSVUUocmlnaHRGbGFnQ291bnQodltqXS5mbGFncywgc2hhcmVGbGFncywgMCwgMSkpOworICAgICAgICAgIHZlY3RvcjxNZW10cmFja0ZsYWc+IHN5c3RlbUZsYWdzID0ge01lbXRyYWNrRmxhZzo6U1lTVEVNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbXRyYWNrRmxhZzo6REVESUNBVEVEfTsKKyAgICAgICAgICBFWFBFQ1RfVFJVRShyaWdodEZsYWdDb3VudCh2W2pdLmZsYWdzLCBzeXN0ZW1GbGFncywgMCwgMSkpOworICAgICAgICAgIHZlY3RvcjxNZW10cmFja0ZsYWc+IHNlY3VyZUZsYWdzID0ge01lbXRyYWNrRmxhZzo6U0VDVVJFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbXRyYWNrRmxhZzo6Tk9OU0VDVVJFfTsKKyAgICAgICAgICBFWFBFQ1RfVFJVRShyaWdodEZsYWdDb3VudCh2W2pdLmZsYWdzLCBzZWN1cmVGbGFncywgMCwgMSkpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgICAgZGVmYXVsdDoKKyAgICAgICAgRkFJTCgpOworICAgIH0KKyAgfQorICAvLyBJZiB0cmFja2luZyBpcyBub3Qgc3VwcG9ydGVkIHRoaXMgc2hvdWxkIGJlIHJldHVybmVkIGZvciBhbGwgdHlwZXMuCisgIEFTU0VSVF9UUlVFKHVuc3VwcG9ydGVkQ291bnQgPT0gMCB8fAorICAgICAgICAgICAgICB1bnN1cHBvcnRlZENvdW50ID09CisgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4oTWVtdHJhY2tUeXBlOjpOVU1fVFlQRVMpKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9tZW10cmFjay9BbmRyb2lkLmJwIGIvbWVtdHJhY2svQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvbWVtdHJhY2svQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9BbmRyb2lkLmJwIGIvcG93ZXIvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ5NjdmZAotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjMgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSVBvd2VyLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9wb3dlci8xLjAvUG93ZXJBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9wb3dlci8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9wb3dlci8xLjAvSVBvd2VyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9wb3dlci8xLjAvSUh3UG93ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9Cbkh3UG93ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9CcEh3UG93ZXIuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9Cc1Bvd2VyLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9BbmRyb2lkLm1rIGIvcG93ZXIvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE4OWE0NQotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjcwIEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRmVhdHVyZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9GZWF0dXJlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzLkZlYXR1cmUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvd2VySGludCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9Qb3dlckhpbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuUG93ZXJIaW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL1Bvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuUG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG93ZXJTdGF0ZVZvdGVyKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL1Bvd2VyU3RhdGVWb3Rlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcy5Qb3dlclN0YXRlVm90ZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVBvd2VyLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS9wb3dlci9WMV8wL0lQb3dlci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVBvd2VyLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OklQb3dlcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVBvd2VyLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS5wb3dlci1WMS4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhLXN0YXRpYyBcCisKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEZlYXR1cmUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Bvd2VyL1YxXzAvRmVhdHVyZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjp0eXBlcy5GZWF0dXJlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3dlckhpbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Bvd2VyL1YxXzAvUG93ZXJIaW50LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzLlBvd2VySGludAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9Qb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzLlBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFBvd2VyU3RhdGVWb3RlcikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9Qb3dlclN0YXRlVm90ZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDo6dHlwZXMuUG93ZXJTdGF0ZVZvdGVyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3Bvd2VyL1YxXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElQb3dlci5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvcG93ZXIvVjFfMC9JUG93ZXIuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lQb3dlci5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wOjpJUG93ZXIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lQb3dlci5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisKK2luY2x1ZGUgJChjYWxsIGFsbC1tYWtlZmlsZXMtdW5kZXIsJChMT0NBTF9QQVRIKSkKZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9JUG93ZXIuaGFsIGIvcG93ZXIvMS4wL0lQb3dlci5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUwZjY0NQotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9JUG93ZXIuaGFsCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMDsKKworLyoqCisgKiBDb25zdHJ1Y3RvciBmb3IgdGhlIGludGVyZmFjZSBwZXJmb3JtcyBwb3dlciBtYW5hZ2VtZW50IHNldHVwIGFjdGlvbnMgYXQKKyAqIHJ1bnRpbWUgc3RhcnR1cCwgc3VjaCBhcyB0byBzZXQgZGVmYXVsdCBjcHVmcmVxIHBhcmFtZXRlcnMuCisgKi8KK2ludGVyZmFjZSBJUG93ZXIgeworICAgIC8qKgorICAgICAqIHNldEludGVyYWN0aXZlKCkgcGVyZm9ybXMgcG93ZXIgbWFuYWdlbWVudCBhY3Rpb25zIHVwb24gdGhlCisgICAgICogc3lzdGVtIGVudGVyaW5nIGludGVyYWN0aXZlIHN0YXRlICh0aGF0IGlzLCB0aGUgc3lzdGVtIGlzIGF3YWtlCisgICAgICogYW5kIHJlYWR5IGZvciBpbnRlcmFjdGlvbiwgb2Z0ZW4gd2l0aCBVSSBkZXZpY2VzIHN1Y2ggYXMKKyAgICAgKiBkaXNwbGF5IGFuZCB0b3VjaHNjcmVlbiBlbmFibGVkKSBvciBub24taW50ZXJhY3RpdmUgc3RhdGUgKHRoZQorICAgICAqIHN5c3RlbSBhcHBlYXJzIGFzbGVlcCwgZGlzcGxheSB1c3VhbGx5IHR1cm5lZCBvZmYpLiBUaGUKKyAgICAgKiBub24taW50ZXJhY3RpdmUgc3RhdGUgbWF5IGJlIGVudGVyZWQgYWZ0ZXIgYSBwZXJpb2Qgb2YKKyAgICAgKiBpbmFjdGl2aXR5IGluIG9yZGVyIHRvIGNvbnNlcnZlIGJhdHRlcnkgcG93ZXIgZHVyaW5nCisgICAgICogc3VjaCBpbmFjdGl2ZSBwZXJpb2RzLgorICAgICAqCisgICAgICogVHlwaWNhbCBhY3Rpb25zIGFyZSB0byB0dXJuIG9uIG9yIG9mZiBkZXZpY2VzIGFuZCBhZGp1c3QKKyAgICAgKiBjcHVmcmVxIHBhcmFtZXRlcnMuIFRoaXMgZnVuY3Rpb24gbWF5IGFsc28gY2FsbCB0aGUKKyAgICAgKiBhcHByb3ByaWF0ZSBpbnRlcmZhY2VzIHRvIGFsbG93IHRoZSBrZXJuZWwgdG8gc3VzcGVuZCB0aGUKKyAgICAgKiBzeXN0ZW0gdG8gbG93LXBvd2VyIHNsZWVwIHN0YXRlIHdoZW4gZW50ZXJpbmcgbm9uLWludGVyYWN0aXZlCisgICAgICogc3RhdGUsIGFuZCB0byBkaXNhbGxvdyBsb3ctcG93ZXIgc3VzcGVuZCB3aGVuIHRoZSBzeXN0ZW0gaXMgaW4KKyAgICAgKiBpbnRlcmFjdGl2ZSBzdGF0ZS4gV2hlbiBsb3ctcG93ZXIgc3VzcGVuZCBzdGF0ZSBpcyBhbGxvd2VkLCB0aGUKKyAgICAgKiBrZXJuZWwgbWF5IHN1c3BlbmQgdGhlIHN5c3RlbSB3aGVuZXZlciBubyB3YWtlbG9ja3MgYXJlIGhlbGQuCisgICAgICoKKyAgICAgKiBGb3IgZXhhbXBsZSwKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgdG8gZW50ZXIgbm9uLWludGVyYWN0aXZlIHN0YXRlIGFmdGVyCisgICAgICogdHVybmluZyBvZmYgdGhlIHNjcmVlbiAoaWYgcHJlc2VudCkgYW5kIGNhbGxlZCB0byBlbnRlcgorICAgICAqIGludGVyYWN0aXZlIHN0YXRlIHByaW9yIHRvIHR1cm5pbmcgb24gdGhlIHNjcmVlbi4KKyAgICAgKgorICAgICAqIEBwYXJhbSBpbnRlcmFjdGl2ZSBpcyB0cnVlIHdoZW4gdGhlIHN5c3RlbSBpcyB0cmFuc2l0aW9uaW5nIHRvIGFuCisgICAgICogaW50ZXJhY3RpdmUgc3RhdGUgYW5kIGZhbHNlIHdoZW4gdHJhbnNpdGlvbmluZyB0byBhCisgICAgICogbm9uLWludGVyYWN0aXZlIHN0YXRlLgorICAgICAqLworICAgIHNldEludGVyYWN0aXZlKGJvb2wgaW50ZXJhY3RpdmUpOworCisgICAgLyoqCisgICAgICogcG93ZXJIaW50KCkgaXMgY2FsbGVkIHRvIHBhc3MgaGludHMgb24gcG93ZXIgcmVxdWlyZW1lbnRzIHdoaWNoCisgICAgICogbWF5IHJlc3VsdCBpbiBhZGp1c3RtZW50IG9mIHBvd2VyL3BlcmZvcm1hbmNlIHBhcmFtZXRlcnMgb2YgdGhlCisgICAgICogY3B1ZnJlcSBnb3Zlcm5vciBhbmQgb3RoZXIgY29udHJvbHMuCisgICAgICoKKyAgICAgKiBBIHBhcnRpY3VsYXIgcGxhdGZvcm0gbWF5IGNob29zZSB0byBpZ25vcmUgYW55IGhpbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gaGludCBQb3dlckhpbnQgd2hpY2ggaXMgcGFzc2VkCisgICAgICogQHBhcmFtIGRhdGEgY29udGFpbnMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaGludAorICAgICAqIGFuZCBpcyBkZXNjcmliZWQgYWxvbmcgd2l0aCB0aGUgY29tbWVudHMgZm9yIGVhY2ggb2YgdGhlIGhpbnRzLgorICAgICAqLworICAgIHBvd2VySGludChQb3dlckhpbnQgaGludCwgaW50MzJfdCBkYXRhKTsKKworICAgIC8qKgorICAgICAqIHNldEZlYXR1cmUoKSBpcyBjYWxsZWQgdG8gdHVybiBvbiBvciBvZmYgYSBwYXJ0aWN1bGFyIGZlYXR1cmUKKyAgICAgKiBkZXBlbmRpbmcgb24gdGhlIHN0YXRlIHBhcmFtZXRlci4KKyAgICAgKgorICAgICAqIEBwYXJhbSBmZWF0dXJlIEZlYXR1cmUgd2hpY2ggbmVlZHMgdG8gYmUgc2V0CisgICAgICogQHBhcmFtIGFjdGl2YXRlIHRydWUvZmFsc2UgdG8gZW5hYmxlL2Rpc2FibGUgdGhlIGZlYXR1cmUKKyAgICAgKi8KKyAgICBzZXRGZWF0dXJlKEZlYXR1cmUgZmVhdHVyZSwgYm9vbCBhY3RpdmF0ZSk7CisKKyAgICAvKioKKyAgICAgKiBQbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZSBzdGF0czoKKyAgICAgKiBSZXBvcnQgY3VtdWxhdGl2ZSBpbmZvIG9uIHRoZSBzdGF0aXN0aWNzIG9uIHBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlcworICAgICAqIHNpbmNlIGJvb3QuCisgICAgICoKKyAgICAgKiBIaWdoZXIgdGhlIGluZGV4IGluIHRoZSByZXR1cm5lZCA8c3RhdGVzPiB2ZWN0b3IgZGVlcGVyIHRoZSBzdGF0ZSBpcworICAgICAqIGkuZS4gbGVzc2VyIHN0ZWFkeS1zdGF0ZSBwb3dlciBpcyBjb25zdW1lZCBieSB0aGUgcGxhdGZvcm0gdG8gYmUKKyAgICAgKiByZXNpZGVudCBpbiB0aGF0IHN0YXRlLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0ZXMgb2YgcG93ZXIgc3RhdGVzIHRoZSBkZXZpY2Ugc3VwcG9ydHMKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBTVUNDRVNTIG9uIHN1Y2Nlc3Mgb3IgRklMRVNZU1RFTV9FUlJPUiBvbiBmaWxlc3lzdGVtCisgICAgICogbm9kZXMgYWNjZXNzIGVycm9yLgorICAgICAqLworICAgIGdldFBsYXRmb3JtTG93UG93ZXJTdGF0cygpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKHZlYzxQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlPiBzdGF0ZXMsIFN0YXR1cyByZXR2YWwpOworfTsKZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAgYi9wb3dlci8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRmNDNiOTUKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjEgQEAKKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wLWltcGwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJQb3dlci5jcHAiXSwKKworICAgIGNmbGFnczogWworICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMCIsCisgICAgXSwKKworfQorCitjY19iaW5hcnkgeworICAgIHByb3ByaWV0YXJ5OiB0cnVlLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wLXNlcnZpY2UiLAorICAgIGluaXRfcmM6IFsiYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtc2VydmljZS5yYyJdLAorICAgIHNyY3M6IFsic2VydmljZS5jcHAiXSwKKworICAgIGNmbGFnczogWworICAgICAgICAiLVdhbGwiLAorICAgICAgICAiLVdlcnJvciIsCisgICAgXSwKKworICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliZGwiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliaGFyZHdhcmUiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMCIsCisgICAgXSwKKworfQpkaWZmIC0tZ2l0IGEvcG93ZXIvMS4wL2RlZmF1bHQvUG93ZXIuY3BwIGIvcG93ZXIvMS4wL2RlZmF1bHQvUG93ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxZjg3ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci8xLjAvZGVmYXVsdC9Qb3dlci5jcHAKQEAgLTAsMCArMSwxNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wLWltcGwiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3Bvd2VyLmg+CisKKyNpbmNsdWRlICJQb3dlci5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHBvd2VyIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK1Bvd2VyOjpQb3dlcihwb3dlcl9tb2R1bGVfdCAqbW9kdWxlKSA6IG1Nb2R1bGUobW9kdWxlKSB7CisgICAgaWYgKG1Nb2R1bGUpCisgICAgICAgIG1Nb2R1bGUtPmluaXQobU1vZHVsZSk7Cit9CisKK1Bvd2VyOjp+UG93ZXIoKSB7CisgICAgZGVsZXRlKG1Nb2R1bGUpOworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OklQb3dlciBmb2xsb3cuCitSZXR1cm48dm9pZD4gUG93ZXI6OnNldEludGVyYWN0aXZlKGJvb2wgaW50ZXJhY3RpdmUpICB7CisgICAgaWYgKG1Nb2R1bGUtPnNldEludGVyYWN0aXZlKQorICAgICAgICBtTW9kdWxlLT5zZXRJbnRlcmFjdGl2ZShtTW9kdWxlLCBpbnRlcmFjdGl2ZSA/IDEgOiAwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gUG93ZXI6OnBvd2VySGludChQb3dlckhpbnQgaGludCwgaW50MzJfdCBkYXRhKSAgeworICAgIGludDMyX3QgcGFyYW0gPSBkYXRhOworICAgIGlmIChtTW9kdWxlLT5wb3dlckhpbnQpIHsKKyAgICAgICAgaWYgKGRhdGEpCisgICAgICAgICAgICBtTW9kdWxlLT5wb3dlckhpbnQobU1vZHVsZSwgc3RhdGljX2Nhc3Q8cG93ZXJfaGludF90PihoaW50KSwgJnBhcmFtKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbU1vZHVsZS0+cG93ZXJIaW50KG1Nb2R1bGUsIHN0YXRpY19jYXN0PHBvd2VyX2hpbnRfdD4oaGludCksIE5VTEwpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gUG93ZXI6OnNldEZlYXR1cmUoRmVhdHVyZSBmZWF0dXJlLCBib29sIGFjdGl2YXRlKSAgeworICAgIGlmIChtTW9kdWxlLT5zZXRGZWF0dXJlKQorICAgICAgICBtTW9kdWxlLT5zZXRGZWF0dXJlKG1Nb2R1bGUsIHN0YXRpY19jYXN0PGZlYXR1cmVfdD4oZmVhdHVyZSksCisgICAgICAgICAgICAgICAgYWN0aXZhdGUgPyAxIDogMCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFBvd2VyOjpnZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHMoZ2V0UGxhdGZvcm1Mb3dQb3dlclN0YXRzX2NiIF9oaWRsX2NiKSAgeworICAgIGhpZGxfdmVjPFBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGU+IHN0YXRlczsKKyAgICBzc2l6ZV90IG51bWJlcl9wbGF0Zm9ybV9tb2RlczsKKyAgICBzaXplX3QgKnZvdGVycyA9IG51bGxwdHI7CisgICAgcG93ZXJfc3RhdGVfcGxhdGZvcm1fc2xlZXBfc3RhdGVfdCAqbGVnYWN5X3N0YXRlcyA9IG51bGxwdHI7CisgICAgaW50IHJldDsKKworICAgIGlmIChtTW9kdWxlLT5nZXRfbnVtYmVyX29mX3BsYXRmb3JtX21vZGVzID09IG51bGxwdHIgfHwKKyAgICAgICAgICAgIG1Nb2R1bGUtPmdldF92b3Rlcl9saXN0ID09IG51bGxwdHIgfHwKKyAgICAgICAgICAgIG1Nb2R1bGUtPmdldF9wbGF0Zm9ybV9sb3dfcG93ZXJfc3RhdHMgPT0gbnVsbHB0cikKKyAgICB7CisgICAgICAgIF9oaWRsX2NiKHN0YXRlcywgU3RhdHVzOjpTVUNDRVNTKTsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisKKyAgICBudW1iZXJfcGxhdGZvcm1fbW9kZXMgPSBtTW9kdWxlLT5nZXRfbnVtYmVyX29mX3BsYXRmb3JtX21vZGVzKG1Nb2R1bGUpOworICAgIGlmIChudW1iZXJfcGxhdGZvcm1fbW9kZXMpCisgICAgeworICAgICAgIGlmICgoc3NpemVfdCkgKFNJWkVfTUFYIC8gc2l6ZW9mKHNpemVfdCkpIDw9IG51bWJlcl9wbGF0Zm9ybV9tb2RlcykgIC8vIG92ZXJmbG93CisgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICB2b3RlcnMgPSBuZXcgKHN0ZDo6bm90aHJvdykgc2l6ZV90IFtudW1iZXJfcGxhdGZvcm1fbW9kZXNdOworICAgICAgIGlmICh2b3RlcnMgPT0gbnVsbHB0cikKKyAgICAgICAgICAgZ290byBkb25lOworCisgICAgICAgcmV0ID0gbU1vZHVsZS0+Z2V0X3ZvdGVyX2xpc3QobU1vZHVsZSwgdm90ZXJzKTsKKyAgICAgICBpZiAocmV0ICE9IDApCisgICAgICAgICAgIGdvdG8gZG9uZTsKKworICAgICAgIGlmICgoc3NpemVfdCkgKFNJWkVfTUFYIC8gc2l6ZW9mKHBvd2VyX3N0YXRlX3BsYXRmb3JtX3NsZWVwX3N0YXRlX3QpKQorICAgICAgICAgICA8PSBudW1iZXJfcGxhdGZvcm1fbW9kZXMpICAvLyBvdmVyZmxvdworICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgbGVnYWN5X3N0YXRlcyA9IG5ldyAoc3RkOjpub3Rocm93KQorICAgICAgICAgICBwb3dlcl9zdGF0ZV9wbGF0Zm9ybV9zbGVlcF9zdGF0ZV90IFtudW1iZXJfcGxhdGZvcm1fbW9kZXNdOworICAgICAgIGlmIChsZWdhY3lfc3RhdGVzID09IG51bGxwdHIpCisgICAgICAgICAgIGdvdG8gZG9uZTsKKworICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtYmVyX3BsYXRmb3JtX21vZGVzOyBpKyspCisgICAgICAgeworICAgICAgICAgIGxlZ2FjeV9zdGF0ZXNbaV0udm90ZXJzID0gbnVsbHB0cjsKKyAgICAgICAgICBsZWdhY3lfc3RhdGVzW2ldLnZvdGVycyA9IG5ldyBwb3dlcl9zdGF0ZV92b3Rlcl90IFt2b3RlcnNbaV1dOworICAgICAgICAgIGlmIChsZWdhY3lfc3RhdGVzW2ldLnZvdGVycyA9PSBudWxscHRyKQorICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgfQorCisgICAgICAgcmV0ID0gbU1vZHVsZS0+Z2V0X3BsYXRmb3JtX2xvd19wb3dlcl9zdGF0cyhtTW9kdWxlLCBsZWdhY3lfc3RhdGVzKTsKKyAgICAgICBpZiAocmV0ICE9IDApCisgICAgICAgICAgIGdvdG8gZG9uZTsKKworICAgICAgIHN0YXRlcy5yZXNpemUobnVtYmVyX3BsYXRmb3JtX21vZGVzKTsKKyAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bWJlcl9wbGF0Zm9ybV9tb2RlczsgaSsrKQorICAgICAgIHsKKyAgICAgICAgICBwb3dlcl9zdGF0ZV9wbGF0Zm9ybV9zbGVlcF9zdGF0ZV90JiBsZWdhY3lfc3RhdGUgPSBsZWdhY3lfc3RhdGVzW2ldOworICAgICAgICAgIFBvd2VyU3RhdGVQbGF0Zm9ybVNsZWVwU3RhdGUmIHN0YXRlID0gc3RhdGVzW2ldOworICAgICAgICAgIHN0YXRlLm5hbWUgPSBsZWdhY3lfc3RhdGUubmFtZTsKKyAgICAgICAgICBzdGF0ZS5yZXNpZGVuY3lJbk1zZWNTaW5jZUJvb3QgPSBsZWdhY3lfc3RhdGUucmVzaWRlbmN5X2luX21zZWNfc2luY2VfYm9vdDsKKyAgICAgICAgICBzdGF0ZS50b3RhbFRyYW5zaXRpb25zID0gbGVnYWN5X3N0YXRlLnRvdGFsX3RyYW5zaXRpb25zOworICAgICAgICAgIHN0YXRlLnN1cHBvcnRlZE9ubHlJblN1c3BlbmQgPSBsZWdhY3lfc3RhdGUuc3VwcG9ydGVkX29ubHlfaW5fc3VzcGVuZDsKKyAgICAgICAgICBzdGF0ZS52b3RlcnMucmVzaXplKHZvdGVyc1tpXSk7CisgICAgICAgICAgZm9yKHNpemVfdCBqID0gMDsgaiA8IHZvdGVyc1tpXTsgaisrKQorICAgICAgICAgIHsKKyAgICAgICAgICAgICAgc3RhdGUudm90ZXJzW2pdLm5hbWUgPSBsZWdhY3lfc3RhdGUudm90ZXJzW2pdLm5hbWU7CisgICAgICAgICAgICAgIHN0YXRlLnZvdGVyc1tqXS50b3RhbFRpbWVJbk1zZWNWb3RlZEZvclNpbmNlQm9vdCA9IGxlZ2FjeV9zdGF0ZS52b3RlcnNbal0udG90YWxfdGltZV9pbl9tc2VjX3ZvdGVkX2Zvcl9zaW5jZV9ib290OworICAgICAgICAgICAgICBzdGF0ZS52b3RlcnNbal0udG90YWxOdW1iZXJPZlRpbWVzVm90ZWRTaW5jZUJvb3QgPSBsZWdhY3lfc3RhdGUudm90ZXJzW2pdLnRvdGFsX251bWJlcl9vZl90aW1lc192b3RlZF9zaW5jZV9ib290OworICAgICAgICAgIH0KKyAgICAgICB9CisgICAgfQorZG9uZToKKyAgICBpZiAobGVnYWN5X3N0YXRlcykKKyAgICB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtYmVyX3BsYXRmb3JtX21vZGVzOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmKGxlZ2FjeV9zdGF0ZXNbaV0udm90ZXJzKQorICAgICAgICAgICAgICAgIGRlbGV0ZShsZWdhY3lfc3RhdGVzW2ldLnZvdGVycyk7CisgICAgICAgIH0KKyAgICB9CisgICAgZGVsZXRlW10gbGVnYWN5X3N0YXRlczsKKyAgICBkZWxldGVbXSB2b3RlcnM7CisgICAgX2hpZGxfY2Ioc3RhdGVzLCBTdGF0dXM6OlNVQ0NFU1MpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK0lQb3dlciogSElETF9GRVRDSF9JUG93ZXIoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICAgIGNvbnN0IGh3X21vZHVsZV90KiBod19tb2R1bGUgPSBudWxscHRyOworICAgIHBvd2VyX21vZHVsZV90KiBwb3dlcl9tb2R1bGUgPSBudWxscHRyOworICAgIGludCBlcnIgPSBod19nZXRfbW9kdWxlKFBPV0VSX0hBUkRXQVJFX01PRFVMRV9JRCwgJmh3X21vZHVsZSk7CisgICAgaWYgKGVycikgeworICAgICAgICBBTE9HRSgiaHdfZ2V0X21vZHVsZSAlcyBmYWlsZWQ6ICVkIiwgUE9XRVJfSEFSRFdBUkVfTU9EVUxFX0lELCBlcnIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAoIWh3X21vZHVsZS0+bWV0aG9kcyB8fCAhaHdfbW9kdWxlLT5tZXRob2RzLT5vcGVuKSB7CisgICAgICAgIHBvd2VyX21vZHVsZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8cG93ZXJfbW9kdWxlX3QqPigKKyAgICAgICAgICAgIGNvbnN0X2Nhc3Q8aHdfbW9kdWxlX3QqPihod19tb2R1bGUpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBlcnIgPSBod19tb2R1bGUtPm1ldGhvZHMtPm9wZW4oCisgICAgICAgICAgICBod19tb2R1bGUsIFBPV0VSX0hBUkRXQVJFX01PRFVMRV9JRCwKKyAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfZGV2aWNlX3QqKj4oJnBvd2VyX21vZHVsZSkpOworICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgICBBTE9HRSgiUGFzc3Rocm91Z2ggZmFpbGVkIHRvIGxvYWQgbGVnYWN5IEhBTC4iKTsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBuZXcgUG93ZXIocG93ZXJfbW9kdWxlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgcG93ZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9kZWZhdWx0L1Bvd2VyLmggYi9wb3dlci8xLjAvZGVmYXVsdC9Qb3dlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE0M2FlZmIKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci8xLjAvZGVmYXVsdC9Qb3dlci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfUE9XRVJfVjFfMF9QT1dFUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfUE9XRVJfVjFfMF9QT1dFUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9JUG93ZXIuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgcG93ZXIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OkZlYXR1cmU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6SVBvd2VyOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OlBvd2VySGludDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6cG93ZXI6OlYxXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFBvd2VyIDogcHVibGljIElQb3dlciB7CisgICAgUG93ZXIocG93ZXJfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgflBvd2VyKCk7CisgICAgUmV0dXJuPHZvaWQ+IHNldEludGVyYWN0aXZlKGJvb2wgaW50ZXJhY3RpdmUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gcG93ZXJIaW50KFBvd2VySGludCBoaW50LCBpbnQzMl90IGRhdGEpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0RmVhdHVyZShGZWF0dXJlIGZlYXR1cmUsIGJvb2wgYWN0aXZhdGUpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGxhdGZvcm1Mb3dQb3dlclN0YXRzKGdldFBsYXRmb3JtTG93UG93ZXJTdGF0c19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgIHByaXZhdGU6CisgICAgcG93ZXJfbW9kdWxlX3QqIG1Nb2R1bGU7Cit9OworCitleHRlcm4gIkMiIElQb3dlciogSElETF9GRVRDSF9JUG93ZXIoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBwb3dlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfUE9XRVJfVjFfMF9QT1dFUl9ICmRpZmYgLS1naXQgYS9wb3dlci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMC1zZXJ2aWNlLnJjIGIvcG93ZXIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNzc3ZTkwCi0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgcG93ZXItaGFsLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnBvd2VyQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvcG93ZXIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTg2MThiOAotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9JUG93ZXIuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpJUG93ZXI7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElQb3dlcj4oKTsKK30KZGlmZiAtLWdpdCBhL3Bvd2VyLzEuMC90eXBlcy5oYWwgYi9wb3dlci8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MzkyODMKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsMTYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS5wb3dlckAxLjA7CisKKy8qKiBQb3dlciBoaW50IGlkZW50aWZpZXJzIHBhc3NlZCB0byBwb3dlckhpbnQoKSAqLworZW51bSBQb3dlckhpbnQgOiB1aW50MzJfdCB7CisgICAvKioKKyAgICAqIEZvcmVncm91bmQgYXBwIGhhcyBzdGFydGVkIG9yIHN0b3BwZWQgcmVxdWVzdGluZyBhIFZTWU5DIHB1bHNlCisgICAgKiBmcm9tIFN1cmZhY2VGbGluZ2VyLiBJZiB0aGUgYXBwIGhhcyBzdGFydGVkIHJlcXVlc3RpbmcgVlNZTkMKKyAgICAqIHRoZW4gQ1BVIGFuZCBHUFUgbG9hZCBpcyBleHBlY3RlZCBzb29uLCBhbmQgaXQgbWF5IGJlIGFwcHJvcHJpYXRlCisgICAgKiB0byByYWlzZSBzcGVlZHMgb2YgQ1BVLCBtZW1vcnkgYnVzLCBldGMuIFRoZSBkYXRhIHBhcmFtZXRlciBpcworICAgICogbm9uLXplcm8gdG8gaW5kaWNhdGUgVlNZTkMgcHVsc2UgaXMgbm93IHJlcXVlc3RlZCwgb3IgemVybyBmb3IKKyAgICAqIFZTWU5DIHB1bHNlIG5vIGxvbmdlciByZXF1ZXN0ZWQuCisgICAgKi8KKyAgICBWU1lOQyA9IDB4MDAwMDAwMDEsCisKKworICAgLyoqCisgICAgKiBVc2VyIGlzIGludGVyYWN0aW5nIHdpdGggdGhlIGRldmljZSwgZm9yIGV4YW1wbGUsIHRvdWNoc2NyZWVuCisgICAgKiBldmVudHMgYXJlIGluY29taW5nLiBDUFUgYW5kIEdQVSBsb2FkIG1heSBiZSBleHBlY3RlZCBzb29uLAorICAgICogYW5kIGl0IG1heSBiZSBhcHByb3ByaWF0ZSB0byByYWlzZSBzcGVlZHMgb2YgQ1BVLCBtZW1vcnkgYnVzLAorICAgICogZXRjLiBUaGUgZGF0YSBwYXJhbWV0ZXIgaXMgdGhlIGVzdGltYXRlZCBsZW5ndGggb2YgdGhlIGludGVyYWN0aW9uCisgICAgKiBpbiBtaWxsaXNlY29uZHMsIG9yIDAgaWYgdW5rbm93bi4KKyAgICAqLworICAgIElOVEVSQUNUSU9OID0gMHgwMDAwMDAwMiwKKworCisgICAgLyoqCisgICAgICogRE8gTk9UIFVTRSBWSURFT19FTkNPREUvX0RFQ09ERSEgIFRoZXkgd2lsbCBiZSByZW1vdmVkIGluCisgICAgICogS0xQLgorICAgICAqLworICAgIFZJREVPX0VOQ09ERSA9IDB4MDAwMDAwMDMsCisgICAgVklERU9fREVDT0RFID0gMHgwMDAwMDAwNCwKKworICAgLyoqCisgICAgKiBMb3cgcG93ZXIgbW9kZSBpcyBhY3RpdmF0ZWQgb3IgZGVhY3RpdmF0ZWQuIExvdyBwb3dlciBtb2RlCisgICAgKiBpcyBpbnRlbmRlZCB0byBzYXZlIGJhdHRlcnkgYXQgdGhlIGNvc3Qgb2YgcGVyZm9ybWFuY2UuIFRoZSBkYXRhCisgICAgKiBwYXJhbWV0ZXIgaXMgbm9uLXplcm8gd2hlbiBsb3cgcG93ZXIgbW9kZSBpcyBhY3RpdmF0ZWQsIGFuZCB6ZXJvCisgICAgKiB3aGVuIGRlYWN0aXZhdGVkLgorICAgICovCisgICAgTE9XX1BPV0VSID0gMHgwMDAwMDAwNSwKKworICAgLyoqCisgICAgKiBTdXN0YWluZWQgUGVyZm9ybWFuY2UgbW9kZSBpcyBhY3RpdmVkIG9yIGRlYWN0aXZhdGVkLiBTdXN0YWluZWQKKyAgICAqIHBlcmZvcm1hbmNlIG1vZGUgaXMgaW50ZW5kZWQgdG8gcHJvdmlkZSBhIGNvbnNpc3RlbnQgbGV2ZWwgb2YKKyAgICAqIHBlcmZvcm1hbmNlIGZvciBhIHByb2xvbmdlZCBhbW91bnQgb2YgdGltZS4gVGhlIGRhdGEgcGFyYW1ldGVyIGlzCisgICAgKiBub24temVybyB3aGVuIHN1c3RhaW5lZCBwZXJmb3JtYW5jZSBtb2RlIGlzIGFjdGl2YXRlZCwgYW5kIHplcm8KKyAgICAqIHdoZW4gZGVhY3RpdmF0ZWQuCisgICAgKi8KKyAgICBTVVNUQUlORURfUEVSRk9STUFOQ0UgPSAweDAwMDAwMDA2LAorCisgICAvKioKKyAgICAqIFZSIE1vZGUgaXMgYWN0aXZhdGVkIG9yIGRlYWN0aXZhdGVkLiBWUiBtb2RlIGlzIGludGVuZGVkIHRvCisgICAgKiBwcm92aWRlIG1pbmltdW0gZ3VhcmFudGVlIGZvciBwZXJmb3JtYW5jZSBmb3IgdGhlIGFtb3VudCBvZiB0aW1lIHRoZQorICAgICogZGV2aWNlIGNhbiBzdXN0YWluIGl0LiBUaGUgZGF0YSBwYXJhbWV0ZXIgaXMgbm9uLXplcm8gd2hlbiB0aGUgbW9kZQorICAgICogaXMgYWN0aXZhdGVkIGFuZCB6ZXJvIHdoZW4gZGVhY3RpdmF0ZWQuCisgICAgKi8KKyAgICBWUl9NT0RFID0gMHgwMDAwMDAwNywKKworICAgLyoqCisgICAgKiBUaGlzIGhpbnQgaW5kaWNhdGVzIHRoYXQgYW4gYXBwbGljYXRpb24gaGFzIGJlZW4gbGF1bmNoZWQuIENhbiBiZSB1c2VkCisgICAgKiBmb3IgZGV2aWNlIHNwZWNpZmljIG9wdGltaXphdGlvbnMgZHVyaW5nIGFwcGxpY2F0aW9uIGxhdW5jaC4gVGhlIGRhdGEKKyAgICAqIHBhcmFtZXRlciBpcyBub24temVybyB3aGVuIHRoZSBhcHBsaWNhdGlvbiBzdGFydHMgdG8gbGF1bmNoIGFuZCB6ZXJvIHdoZW4KKyAgICAqIGl0IGhhcyBiZWVuIGxhdW5jaGVkLgorICAgICovCisgICAgTEFVTkNIID0gMHgwMDAwMDAwOCwKK307CisKK2VudW0gRmVhdHVyZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBFbmFibGluZy9EaXNhYmxpbmcgdGhpcyBmZWF0dXJlIHdpbGwgYWxsb3cvZGlzYWxsb3cgdGhlIHN5c3RlbQorICAgICAqIHRvIHdha2UgdXAgYnkgdGFwcGluZyB0aGUgc2NyZWVuIHR3aWNlLgorICAgICAqLworICAgIFBPV0VSX0ZFQVRVUkVfRE9VQkxFX1RBUF9UT19XQUtFID0gMHgwMDAwMDAwMQorfTsKKworZW51bSBTdGF0dXMgOiB1aW50MzJfdCB7CisgICAgU1VDQ0VTUyA9IDAsCisgICAgRklMRVNZU1RFTV9FUlJPUiA9IDEKK307CisvKioKKyAqIFBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlIHN0YXRzOgorICogUG93ZXJTdGF0ZVZvdGVyIHN0cnVjdCBpcyB1c2VmdWwgZm9yIGRlc2NyaWJpbmcgdGhlIGluZGl2aWR1YWwgdm90ZXJzCisgKiB3aGVuIGEgUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUgaXMgY2hvc2VuIGJ5IGFnZ3JlZ2F0aW9uIG9mIHZvdGVzIGZyb20KKyAqIG11bHRpcGxlIGNsaWVudHMvc3lzdGVtIGNvbmRpdGlvbnMuCisgKgorICogVGhpcyBoZWxwcyBpbiBhdHRpcmJ1dGluZyB3aGF0IGluIHRoZSBkZXZpY2UgaXMgYmxvY2tpbmcgdGhlIGRldmljZSBmcm9tCisgKiBlbnRlcmluZyB0aGUgbG93ZXN0IFBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlLgorICovCitzdHJ1Y3QgUG93ZXJTdGF0ZVZvdGVyIHsKKyAgICAvKioKKyAgICAgKiBOYW1lIG9mIHRoZSB2b3Rlci4KKyAgICAgKi8KKyAgICAgc3RyaW5nIG5hbWU7CisKKyAgICAvKioKKyAgICAgKiBUb3RhbCB0aW1lIGluIG1zZWMgdGhlIHZvdGVyIHZvdGVkIGZvciB0aGUgcGxhdGZvcm0gc2xlZXAgc3RhdGUgc2luY2UKKyAgICAgKiBib290LgorICAgICAqLworICAgICB1aW50NjRfdCB0b3RhbFRpbWVJbk1zZWNWb3RlZEZvclNpbmNlQm9vdDsKKworICAgIC8qKgorICAgICAqIE51bWJlciBvZiB0aW1lcyB0aGUgdm90ZXIgdm90ZWQgZm9yIHRoZSBwbGF0Zm9ybSBzbGVlcCBzdGF0ZSBzaW5jZSBib290LgorICAgICAqLworICAgICB1aW50NjRfdCB0b3RhbE51bWJlck9mVGltZXNWb3RlZFNpbmNlQm9vdDsKK307CisKKy8qKgorICogUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUgc3RhdHM6CisgKiBQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlIHJlcHJlc2VudHMgdGhlIFBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlCisgKiB0aGUgZGV2aWNlIGlzIGNhcGFibGUgb2YgZ2V0dGluZyBpbnRvLgorICoKKyAqIFNvQ3MgdXN1YWxseSBoYXZlIG1vcmUgdGhhbiBvbmUgUGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUuCisgKi8KK3N0cnVjdCBQb3dlclN0YXRlUGxhdGZvcm1TbGVlcFN0YXRlIHsKKyAgICAvKioKKyAgICAgKiBQbGF0Zm9ybS1sZXZlbCBTbGVlcCBzdGF0ZSBuYW1lLgorICAgICAqLworICAgIHN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogVGltZSBzcGVudCBpbiBtc2VjIGF0IHRoaXMgcGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUgc2luY2UgYm9vdC4KKyAgICAgKi8KKyAgICB1aW50NjRfdCByZXNpZGVuY3lJbk1zZWNTaW5jZUJvb3Q7CisKKyAgICAvKioKKyAgICAgKiBUb3RhbCBudW1iZXIgb2YgdGltZXMgc3lzdGVtIGVudGVyZWQgdGhpcyBzdGF0ZS4KKyAgICAgKi8KKyAgICB1aW50NjRfdCB0b3RhbFRyYW5zaXRpb25zOworCisgICAgLyoqCisgICAgICogVGhpcyBwbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZSBjYW4gb25seSBiZSByZWFjaGVkIGR1cmluZyBzeXN0ZW0gc3VzcGVuZAorICAgICAqLworICAgIGJvb2wgc3VwcG9ydGVkT25seUluU3VzcGVuZDsKKworICAgIC8qKgorICAgICAqIHZvdGVycyBpcyB1c2VmdWwgaWYgdGhlIFBsYXRmb3JtLWxldmVsIHNsZWVwIHN0YXRlCisgICAgICogaXMgY2hvc2VuIGJ5IGFnZ3JlZ2F0aW9uIHZvdGVzIGZyb20gbXVsdGlwbGUgY2xpZW50cy9zeXN0ZW0gY29uZGl0aW9ucy4KKyAgICAgKiBBbGwgdGhlIHZvdGVycyBoYXZlIHRvIHNheSB5ZXMgb3IgYWxsIHRoZSBzeXN0ZW0gY29uZGl0aW9ucyBuZWVkIHRvIGJlCisgICAgICogbWV0IHRvIGVudGVyIGEgcGxhdGZvcm0tbGV2ZWwgc2xlZXAgc3RhdGUuCisgICAgICoKKyAgICAgKiBWZWN0b3Igb2Ygc2l6ZSB6ZXJvIGltcGxpZXMgZWl0aGVyIHRoZSBpbmZvIGlzIG5vdCBhdmFpbGFibGUKKyAgICAgKiBvciB0aGUgc3lzdGVtIGRvZXMgbm90IGZvbGxvdyBhIHZvdGluZyBtZWNoYW5pc20gdG8gY2hvb3NlIHRoaXMKKyAgICAgKiBQbGF0Zm9ybS1sZXZlbCBzbGVlcCBzdGF0ZS4KKyAgICAgKi8KKyAgICB2ZWM8UG93ZXJTdGF0ZVZvdGVyPiB2b3RlcnM7Cit9OwpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rIGIvcG93ZXIvMS4wL3Z0cy9BbmRyb2lkLm1rCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gcmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rCmNvcHkgdG8gcG93ZXIvMS4wL3Z0cy9BbmRyb2lkLm1rCmRpZmYgLS1naXQgYS9wb3dlci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL3Bvd2VyLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhYjFlYjQKLS0tIC9kZXYvbnVsbAorKysgYi9wb3dlci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM2IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsUG93ZXJWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsUG93ZXJWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUucG93ZXJAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CmRpZmYgLS1naXQgYS9wb3dlci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsUG93ZXJWMV8wVGFyZ2V0VGVzdC5jcHAgYi9wb3dlci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsUG93ZXJWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk0ZmE0ZgotLS0gL2Rldi9udWxsCisrKyBiL3Bvd2VyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxQb3dlclYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDE4NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAicG93ZXJfaGlkbF9oYWxfdGVzdCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8Y3V0aWxzL3Byb3BlcnRpZXMuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS91bmlxdWVfZmQuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3Bvd2VyLzEuMC9JUG93ZXIuaD4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxhbGdvcml0aG0+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpJUG93ZXI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6RmVhdHVyZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpQb3dlckhpbnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpwb3dlcjo6VjFfMDo6UG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnBvd2VyOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyA6OmFuZHJvaWQ6OmJhc2U6OnVuaXF1ZV9mZDsKKwordXNpbmcgc3RkOjp2ZWN0b3I7CisKKyNkZWZpbmUgQ1BVX0dPVkVSTk9SX1BBVEggXAorICAiL3N5cy9kZXZpY2VzL3N5c3RlbS9jcHUvY3B1MC9jcHVmcmVxL3NjYWxpbmdfZ292ZXJub3IiCisjZGVmaW5lIEFWQUlMQUJMRV9HT1ZFUk5PUlNfUEFUSCBcCisgICIvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHUwL2NwdWZyZXEvc2NhbGluZ19hdmFpbGFibGVfZ292ZXJub3JzIgorCitjbGFzcyBQb3dlckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICBwb3dlciA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElQb3dlcj4oKTsKKyAgICBBU1NFUlRfTkUocG93ZXIsIG51bGxwdHIpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBzcDxJUG93ZXI+IHBvd2VyOworfTsKKworLy8gU2FuaXR5IGNoZWNrIFBvd2VyOjpzZXRJbnRlcmFjdGl2ZS4KK1RFU1RfRihQb3dlckhpZGxUZXN0LCBTZXRJbnRlcmFjdGl2ZSkgeworICBSZXR1cm48dm9pZD4gcmV0OworCisgIHJldCA9IHBvd2VyLT5zZXRJbnRlcmFjdGl2ZSh0cnVlKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgcmV0ID0gcG93ZXItPnNldEludGVyYWN0aXZlKGZhbHNlKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8vIFRlc3QgUG93ZXI6OnNldEludGVyYWN0aXZlIGFuZCBQb3dlcjo6cG93ZXJIaW50KExhdW5jaCkKKy8vIHdpdGggZWFjaCBhdmFpbGFibGUgQ1BVIGdvdmVybm9yLCBpZiBhdmFpbGFibGUKK1RFU1RfRihQb3dlckhpZGxUZXN0LCBUcnlEaWZmZXJlbnRHb3Zlcm5vcnMpIHsKKyAgUmV0dXJuPHZvaWQ+IHJldDsKKworICB1bmlxdWVfZmQgZmQxKG9wZW4oQ1BVX0dPVkVSTk9SX1BBVEgsIE9fUkRXUikpOworICB1bmlxdWVfZmQgZmQyKG9wZW4oQVZBSUxBQkxFX0dPVkVSTk9SU19QQVRILCBPX1JET05MWSkpOworICBpZiAoZmQxIDwgMCB8fCBmZDIgPCAwKSB7CisgICAgLy8gRmlsZXMgZG9uJ3QgZXhpc3QsIHNvIHNraXAgdGhlIHJlc3Qgb2YgdGhlIHRlc3QgY2FzZQorICAgIFNVQ0NFRUQoKTsKKyAgfQorCisgIGNoYXIgb2xkX2dvdmVybm9yWzgwXTsKKyAgQVNTRVJUX0xFKDAsIHJlYWQoZmQxLCBvbGRfZ292ZXJub3IsIDgwKSk7CisKKyAgY2hhciBnb3Zlcm5vcnNbMTAyNF07CisgIHVuc2lnbmVkIGxlbiA9IHJlYWQoZmQyLCBnb3Zlcm5vcnMsIDEwMjQpOworICBBU1NFUlRfTEUoMHUsIGxlbik7CisgIGdvdmVybm9yc1tsZW5dID0gJ1wwJzsKKworICBjaGFyICpzYXZlcHRyOworICBjaGFyICpuYW1lID0gc3RydG9rX3IoZ292ZXJub3JzLCAiIFxuIiwgJnNhdmVwdHIpOworICB3aGlsZSAobmFtZSkgeworICAgIEFTU0VSVF9MRSgwLCB3cml0ZShmZDEsIG5hbWUsIHN0cmxlbihuYW1lKSkpOworICAgIHJldCA9IHBvd2VyLT5zZXRJbnRlcmFjdGl2ZSh0cnVlKTsKKyAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKworICAgIHJldCA9IHBvd2VyLT5zZXRJbnRlcmFjdGl2ZShmYWxzZSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICByZXQgPSBwb3dlci0+c2V0SW50ZXJhY3RpdmUoZmFsc2UpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgcG93ZXItPnBvd2VySGludChQb3dlckhpbnQ6OkxBVU5DSCwgMSk7CisgICAgcG93ZXItPnBvd2VySGludChQb3dlckhpbnQ6OkxBVU5DSCwgMCk7CisKKyAgICBuYW1lID0gc3RydG9rX3IoTlVMTCwgIiBcbiIsICZzYXZlcHRyKTsKKyAgfQorCisgIEFTU0VSVF9MRSgwLCB3cml0ZShmZDEsIG9sZF9nb3Zlcm5vciwgc3RybGVuKG9sZF9nb3Zlcm5vcikpKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIFBvd2VyOjpwb3dlckhpbnQgb24gZ29vZCBhbmQgYmFkIGlucHV0cy4KK1RFU1RfRihQb3dlckhpZGxUZXN0LCBQb3dlckhpbnQpIHsKKyAgUG93ZXJIaW50IGJhZEhpbnQgPSBzdGF0aWNfY2FzdDxQb3dlckhpbnQ+KDB4QSk7CisgIGF1dG8gaGludHMgPSB7UG93ZXJIaW50OjpWU1lOQywgICAgICAgICBQb3dlckhpbnQ6OklOVEVSQUNUSU9OLAorICAgICAgICAgICAgICAgIFBvd2VySGludDo6VklERU9fRU5DT0RFLCAgUG93ZXJIaW50OjpWSURFT19ERUNPREUsCisgICAgICAgICAgICAgICAgUG93ZXJIaW50OjpMT1dfUE9XRVIsICAgICBQb3dlckhpbnQ6OlNVU1RBSU5FRF9QRVJGT1JNQU5DRSwKKyAgICAgICAgICAgICAgICBQb3dlckhpbnQ6OlZSX01PREUsICAgICAgIFBvd2VySGludDo6TEFVTkNILAorICAgICAgICAgICAgICAgIGJhZEhpbnR9OworICBSZXR1cm48dm9pZD4gcmV0OworICBmb3IgKGF1dG8gaGludCA6IGhpbnRzKSB7CisgICAgcmV0ID0gcG93ZXItPnBvd2VySGludChoaW50LCAzMDAwMCk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICByZXQgPSBwb3dlci0+cG93ZXJIaW50KGhpbnQsIDApOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICB9CisKKyAgLy8gVHVybmluZyB0aGVzZSBoaW50cyBvbiBpbiBkaWZmZXJlbnQgb3JkZXJzIHRyaWdnZXJzIGRpZmZlcmVudCBjb2RlIHBhdGhzLAorICAvLyBzbyBpdGVyYXRlIG92ZXIgcG9zc2libGUgb3JkZXJpbmdzLgorICBzdGQ6OnZlY3RvcjxQb3dlckhpbnQ+IGhpbnRzMiA9IHtQb3dlckhpbnQ6OkxBVU5DSCwgUG93ZXJIaW50OjpWUl9NT0RFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQb3dlckhpbnQ6OlNVU1RBSU5FRF9QRVJGT1JNQU5DRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUG93ZXJIaW50OjpJTlRFUkFDVElPTn07CisgIGF1dG8gY29tcGFyZUhpbnRzID0gW10oUG93ZXJIaW50IGwsIFBvd2VySGludCByKSB7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQzMl90PihsKSA8IHN0YXRpY19jYXN0PHVpbnQzMl90PihyKTsKKyAgfTsKKyAgc3RkOjpzb3J0KGhpbnRzMi5iZWdpbigpLCBoaW50czIuZW5kKCksIGNvbXBhcmVIaW50cyk7CisgIGRvIHsKKyAgICBmb3IgKGF1dG8gaXRlciA9IGhpbnRzMi5iZWdpbigpOyBpdGVyICE9IGhpbnRzMi5lbmQoKTsgaXRlcisrKSB7CisgICAgICByZXQgPSBwb3dlci0+cG93ZXJIaW50KCppdGVyLCAwKTsKKyAgICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICAgIH0KKyAgICBmb3IgKGF1dG8gaXRlciA9IGhpbnRzMi5iZWdpbigpOyBpdGVyICE9IGhpbnRzMi5lbmQoKTsgaXRlcisrKSB7CisgICAgICByZXQgPSBwb3dlci0+cG93ZXJIaW50KCppdGVyLCAzMDAwMCk7CisgICAgICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgICB9CisgIH0gd2hpbGUgKHN0ZDo6bmV4dF9wZXJtdXRhdGlvbihoaW50czIuYmVnaW4oKSwgaGludHMyLmVuZCgpLCBjb21wYXJlSGludHMpKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIFBvd2VyOjpzZXRGZWF0dXJlKCkgb24gZ29vZCBhbmQgYmFkIGlucHV0cy4KK1RFU1RfRihQb3dlckhpZGxUZXN0LCBTZXRGZWF0dXJlKSB7CisgIFJldHVybjx2b2lkPiByZXQ7CisgIHJldCA9IHBvd2VyLT5zZXRGZWF0dXJlKEZlYXR1cmU6OlBPV0VSX0ZFQVRVUkVfRE9VQkxFX1RBUF9UT19XQUtFLCB0cnVlKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIHJldCA9IHBvd2VyLT5zZXRGZWF0dXJlKEZlYXR1cmU6OlBPV0VSX0ZFQVRVUkVfRE9VQkxFX1RBUF9UT19XQUtFLCBmYWxzZSk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgIEZlYXR1cmUgYmFkRmVhdHVyZSA9IHN0YXRpY19jYXN0PEZlYXR1cmU+KDB4Mik7CisgIHJldCA9IHBvd2VyLT5zZXRGZWF0dXJlKGJhZEZlYXR1cmUsIHRydWUpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgcmV0ID0gcG93ZXItPnNldEZlYXR1cmUoYmFkRmVhdHVyZSwgZmFsc2UpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKK30KKworLy8gU2FuaXR5IGNoZWNrIFBvd2VyOjpnZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHMoKS4KK1RFU1RfRihQb3dlckhpZGxUZXN0LCBHZXRQbGF0Zm9ybUxvd1Bvd2VyU3RhdHMpIHsKKyAgaGlkbF92ZWM8UG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZT4gdmVjOworICBTdGF0dXMgczsKKyAgYXV0byBjYiA9IFsmdmVjLCAmc10oaGlkbF92ZWM8UG93ZXJTdGF0ZVBsYXRmb3JtU2xlZXBTdGF0ZT4gc3RhdGVzLAorICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXMgc3RhdHVzKSB7CisgICAgdmVjID0gc3RhdGVzOworICAgIHMgPSBzdGF0dXM7CisgIH07CisgIFJldHVybjx2b2lkPiByZXQgPSBwb3dlci0+Z2V0UGxhdGZvcm1Mb3dQb3dlclN0YXRzKGNiKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEFTU0VSVF9UUlVFKHMgPT0gU3RhdHVzOjpTVUNDRVNTIHx8IHMgPT0gU3RhdHVzOjpGSUxFU1lTVEVNX0VSUk9SKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9wb3dlci9BbmRyb2lkLmJwIGIvcG93ZXIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvcG93ZXIvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3JhZGlvLzEuMC9JUmFkaW9SZXNwb25zZS5oYWwgYi9yYWRpby8xLjAvSVJhZGlvUmVzcG9uc2UuaGFsCmluZGV4IDIzYzRkNDEuLjRhOWJlNTkgMTAwNjQ0Ci0tLSBhL3JhZGlvLzEuMC9JUmFkaW9SZXNwb25zZS5oYWwKKysrIGIvcmFkaW8vMS4wL0lSYWRpb1Jlc3BvbnNlLmhhbApAQCAtMTAyLDggKzEwMiwxMyBAQAogICAgICAqCiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCi0gICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUgKHJhZGlvIHJlc2V0dGluZykKICAgICAgKiAgIFJhZGlvRXJyb3I6UEFTU1dPUkRfSU5DT1JSRUNUIChjb2RlIGlzIGludmFsaWQpCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX1NJTV9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKICAgICAgKi8KICAgICBvbmV3YXkgc3VwcGx5TmV0d29ya0RlcGVyc29uYWxpemF0aW9uUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgaW50MzJfdCByZW1haW5pbmdSZXRyaWVzKTsKIApAQCAtMzI4LDYgKzMzMywxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9UX1BST1ZJU0lPTkVECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRTaWduYWxTdHJlbmd0aFJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIFNpZ25hbFN0cmVuZ3RoIHNpZ1N0cmVuZ3RoKTsKIApAQCAtMzUxLDYgKzM2MiwxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9UX1BST1ZJU0lPTkVECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXREYXRhUmVnaXN0cmF0aW9uU3RhdGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLAogICAgICAgICAgICAgRGF0YVJlZ1N0YXRlUmVzdWx0IGRhdGFSZWdSZXNwb25zZSk7CkBAIC0zNjQsNiArMzgxLDEwIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRPcGVyYXRvclJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIHN0cmluZyBsb25nTmFtZSwgc3RyaW5nIHNob3J0TmFtZSwKICAgICAgICAgICAgIHN0cmluZyBudW1lcmljKTsKQEAgLTM3NSw2ICszOTYsMTYgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX1NUQVRFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6REVWSUNFX0lOX1VTRQorICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9NT0RFTV9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0UmFkaW9Qb3dlclJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC00NjQsNiArNDk1LDggQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BfTk9UX0FMTE9XRURfQkVGT1JFX1JFR19UT19OVwogICAgICAqICAgUmFkaW9FcnJvcjpPUF9OT1RfQUxMT1dFRF9EVVJJTkdfVk9JQ0VfQ0FMTAogICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNldHVwRGF0YUNhbGxSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBTZXR1cERhdGFDYWxsUmVzdWx0IGRjUmVzcG9uc2UpOwogCkBAIC02OTIsNiArNzI1LDEwIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9DQUxMX0lECisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfU1RBVEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGRlYWN0aXZhdGVEYXRhQ2FsbFJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC03NjUsNiArODAyLDEyIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0TmV0d29ya1NlbGVjdGlvbk1vZGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBib29sIG1hbnVhbCk7CiAKQEAgLTc3Niw2ICs4MTksMTIgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpJTExFR0FMX1NJTV9PUl9NRQogICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKgogICAgICAqIFJldHVybnMgUmFkaW9FcnJvcjpJTExFR0FMX1NJTV9PUl9NRSB3aGVuIHRoZSBmYWlsdXJlIGlzIHBlcm1hbmVudCBhbmQKICAgICAgKiBubyByZXRyaWVzIG5lZWRlZCwgc3VjaCBhcyBpbGxlZ2FsIFNJTSBvciBNRS4KQEAgLTc5MCw2ICs4MzksMTMgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpJTExFR0FMX1NJTV9PUl9NRQogICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqCiAgICAgICogUmV0dXJucyBSYWRpb0Vycm9yOklMTEVHQUxfU0lNX09SX01FIHdoZW4gdGhlIGZhaWx1cmUgaXMgcGVybWFuZW50IGFuZAogICAgICAqIG5vIHJldHJpZXMgbmVlZGVkLCBzdWNoIGFzIGlsbGVnYWwgU0lNIG9yIE1FLgpAQCAtODEwLDYgKzg2Niw4IEBACiAgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgogICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKICAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAorICAgICAqICAgUmFkaW9FcnJvcjpDQU5DRUxMRUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0QXZhaWxhYmxlTmV0d29ya3NSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLAogICAgICAgICAgICAgdmVjPE9wZXJhdG9ySW5mbz4gbmV0d29ya0luZm9zKTsKQEAgLTg1OCw2ICs5MTYsMTIgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOkVNUFRZX1JFQ09SRAorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk5PVF9QUk9WSVNJT05FRAorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0QmFzZWJhbmRWZXJzaW9uUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgc3RyaW5nIHZlcnNpb24pOwogCkBAIC0xMDA2LDYgKzEwNzAsMTIgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBzZXRCYW5kTW9kZVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xMDE3LDYgKzEwODcsMTEgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IGdldEF2YWlsYWJsZUJhbmRNb2Rlc1Jlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8sIHZlYzxSYWRpb0JhbmRNb2RlPiBiYW5kTW9kZXMpOwogCkBAIC0xMDQ5LDkgKzExMjQsMTEgQEAKICAgICAgKgogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQotICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKLSAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECiAgICAgICovCiAgICAgb25ld2F5IGhhbmRsZVN0a0NhbGxTZXR1cFJlcXVlc3RGcm9tU2ltUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTEwODMsNiArMTE2MCwxMiBAQAogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOk9QRVJBVElPTl9OT1RfQUxMT1dFRAogICAgICAqICAgUmFkaW9FcnJvcjpNT0RFX05PVF9TVVBQT1JURUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0UHJlZmVycmVkTmV0d29ya1R5cGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTA5Myw2ICsxMTc2LDEyIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0UHJlZmVycmVkTmV0d29ya1R5cGVSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLAogICAgICAgICAgICAgUHJlZmVycmVkTmV0d29ya1R5cGUgbndUeXBlKTsKQEAgLTExMDUsNiArMTE5NCwxMiBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT19ORVRXT1JLX0ZPVU5ECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXROZWlnaGJvcmluZ0NpZHNSZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCB2ZWM8TmVpZ2hib3JpbmdDZWxsPiBjZWxscyk7CiAKQEAgLTExMTQsNiArMTIwOSwxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNldExvY2F0aW9uVXBkYXRlc1Jlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xMTM0LDYgKzEyMzUsMTMgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAorICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0Q2RtYVJvYW1pbmdQcmVmZXJlbmNlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTExNDUsNiArMTI1MywxMSBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0Q2RtYVJvYW1pbmdQcmVmZXJlbmNlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgQ2RtYVJvYW1pbmdUeXBlIHR5cGUpOwogCkBAIC0xNDI0LDYgKzE1MzcsMTMgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOlNVQlNDUklQVElPTl9OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9UX1BST1ZJU0lPTkVECisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBnZXRDRE1BU3Vic2NyaXB0aW9uUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgc3RyaW5nIG1kbiwgc3RyaW5nIGhTaWQsCiAgICAgICAgICAgICBzdHJpbmcgaE5pZCwgc3RyaW5nIG1pbiwgc3RyaW5nIHBybCk7CkBAIC0xNDgwLDYgKzE2MDAsMTIgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk5PVF9QUk9WSVNJT05FRAogICAgICAqCiAgICAgICogSWYgYSBlbXB0eSBzdHJpbmcgdmFsdWUgaXMgcmV0dXJuZWQgZm9yIGFueSBvZiB0aGUgZGV2aWNlIGlkLCBpdCBtZWFucyB0aGF0IHRoZXJlIHdhcyBlcnJvcgogICAgICAqIGFjY2Vzc2luZyB0aGUgZGV2aWNlLgpAQCAtMTQ5NSw2ICsxNjIxLDEyIEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9fQUxMT1dFRAorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBleGl0RW1lcmdlbmN5Q2FsbGJhY2tNb2RlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTE2MjIsNiArMTc1NCwxMiBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTkVUV09SS19GT1VORAorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0Q2VsbEluZm9MaXN0UmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgdmVjPENlbGxJbmZvPiBjZWxsSW5mbyk7CiAKQEAgLTE2MzEsNiArMTc2OSwxMCBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUwogICAgICAqLwogICAgIG9uZXdheSBzZXRDZWxsSW5mb0xpc3RSYXRlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTE2NDEsNiArMTc4MywxMyBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6U1VCU0NSSVBUSU9OX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpOT1RfUFJPVklTSU9ORUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNldEluaXRpYWxBdHRhY2hBcG5SZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvKTsKIApAQCAtMTc3MSw2ICsxOTIwLDEyIEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpTVUJTQ1JJUFRJT05fTk9UX1NVUFBPUlRFRAorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6TU9ERU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOklOVkFMSURfQVJHVU1FTlRTCisgICAgICogICBSYWRpb0Vycm9yOlJFUVVFU1RfTk9UX1NVUFBPUlRFRAogICAgICAqLwogICAgIG9uZXdheSBzZXRVaWNjU3Vic2NyaXB0aW9uUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTE3ODAsNiArMTkzNSwxMyBAQAogICAgICAqIFZhbGlkIGVycm9ycyByZXR1cm5lZDoKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6REVWSUNFX0lOX1VTRQorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX01PREVNX1NUQVRFCiAgICAgICovCiAgICAgb25ld2F5IHNldERhdGFBbGxvd2VkUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTE4MjAsNiArMTk4MiwxMCBAQAogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgcmVxdWVzdFNodXRkb3duUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbyk7CiAKQEAgLTE4MzEsNiArMTk5Nyw4IEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQogICAgICAqICAgUmFkaW9FcnJvcjpPUEVSQVRJT05fTk9UX0FMTE9XRUQKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0UmFkaW9DYXBhYmlsaXR5UmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgUmFkaW9DYXBhYmlsaXR5IHJjKTsKIApAQCAtMTg0Myw2ICsyMDExLDEzIEBACiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUgbWVhbnMgYSB1bnNvbCByYWRpb0NhcGFiaWxpdHkoKSB3aWxsIGJlIHNlbnQgd2l0aGluIDMwIHNlY29uZHMuCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKICAgICAgKiAgIFJhZGlvRXJyb3I6T1BFUkFUSU9OX05PVF9BTExPV0VECisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUworICAgICAqICAgUmFkaW9FcnJvcjpNT0RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9TVEFURQorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0UmFkaW9DYXBhYmlsaXR5UmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgUmFkaW9DYXBhYmlsaXR5IHJjKTsKIApAQCAtMTg1NCw2ICsyMDI5LDggQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCiAgICAgICogICBSYWRpb0Vycm9yOkxDRV9OT1RfU1VQUE9SVEVECisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc3RhcnRMY2VTZXJ2aWNlUmVzcG9uc2UoUmFkaW9SZXNwb25zZUluZm8gaW5mbywgTGNlU3RhdHVzSW5mbyBzdGF0dXNJbmZvKTsKIApAQCAtMTg4Niw2ICsyMDYzLDExIEBACiAgICAgICogVmFsaWQgZXJyb3JzIHJldHVybmVkOgogICAgICAqICAgUmFkaW9FcnJvcjpOT05FCiAgICAgICogICBSYWRpb0Vycm9yOlJBRElPX05PVF9BVkFJTEFCTEUKKyAgICAgKiAgIFJhZGlvRXJyb3I6Tk9fTUVNT1JZCisgICAgICogICBSYWRpb0Vycm9yOklOVEVSTkFMX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpTWVNURU1fRVJSCisgICAgICogICBSYWRpb0Vycm9yOk1PREVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpOT1RfUFJPVklTSU9ORUQKICAgICAgKi8KICAgICBvbmV3YXkgZ2V0TW9kZW1BY3Rpdml0eUluZm9SZXNwb25zZShSYWRpb1Jlc3BvbnNlSW5mbyBpbmZvLCBBY3Rpdml0eVN0YXRzSW5mbyBhY3Rpdml0eUluZm8pOwogCkBAIC0xOTI2LDYgKzIxMDgsMTEgQEAKICAgICAgKiBWYWxpZCBlcnJvcnMgcmV0dXJuZWQ6CiAgICAgICogICBSYWRpb0Vycm9yOk5PTkUKICAgICAgKiAgIFJhZGlvRXJyb3I6UkFESU9fTk9UX0FWQUlMQUJMRQorICAgICAqICAgUmFkaW9FcnJvcjpOT19NRU1PUlkKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5URVJOQUxfRVJSCisgICAgICogICBSYWRpb0Vycm9yOlNZU1RFTV9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6SU5WQUxJRF9BUkdVTUVOVFMKKyAgICAgKiAgIFJhZGlvRXJyb3I6UkVRVUVTVF9OT1RfU1VQUE9SVEVECiAgICAgICovCiAgICAgb25ld2F5IHNlbmREZXZpY2VTdGF0ZVJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCkBAIC0xOTM2LDYgKzIxMjMsMTAgQEAKICAgICAgKiAgIFJhZGlvRXJyb3I6Tk9ORQogICAgICAqICAgUmFkaW9FcnJvcjpJTlZBTElEX0FSR1VNRU5UUwogICAgICAqICAgUmFkaW9FcnJvcjpSQURJT19OT1RfQVZBSUxBQkxFCisgICAgICogICBSYWRpb0Vycm9yOk5PX01FTU9SWQorICAgICAqICAgUmFkaW9FcnJvcjpJTlRFUk5BTF9FUlIKKyAgICAgKiAgIFJhZGlvRXJyb3I6U1lTVEVNX0VSUgorICAgICAqICAgUmFkaW9FcnJvcjpSRVFVRVNUX05PVF9TVVBQT1JURUQKICAgICAgKi8KICAgICBvbmV3YXkgc2V0SW5kaWNhdGlvbkZpbHRlclJlc3BvbnNlKFJhZGlvUmVzcG9uc2VJbmZvIGluZm8pOwogCmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfaWNjLmNwcCBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9pY2MuY3BwCmluZGV4IDE1NDdjMzMuLjZhZjVmYmEgMTAwNjQ0Ci0tLSBhL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9pY2MuY3BwCisrKyBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9pY2MuY3BwCkBAIC0zMTYsOCArMzE2LDEzIEBACiAgIEVYUEVDVF9FUShzZXJpYWwsIHJhZGlvUnNwLT5yc3BJbmZvLnNlcmlhbCk7CiAKICAgaWYgKGNhcmRTdGF0dXMuY2FyZFN0YXRlID09IENhcmRTdGF0ZTo6QUJTRU5UKSB7Ci0gICAgICBBU1NFUlRfVFJVRShDaGVja0dlbmVyYWxFcnJvcigpIHx8CisgICAgICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FIHx8CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpTWVNURU1fRVJSIHx8CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT19NRU1PUlkgfHwKKyAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok1PREVNX0VSUiB8fAogICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6SU5WQUxJRF9BUkdVTUVOVFMgfHwKLSAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OlBBU1NXT1JEX0lOQ09SUkVDVCk7CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlZBTElEX1NJTV9TVEFURSB8fAorICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6UEFTU1dPUkRfSU5DT1JSRUNUIHx8CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlRFUk5BTF9FUlIpOwogICB9CiB9CmRpZmYgLS1naXQgYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfbWlzYy5jcHAgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfbWlzYy5jcHAKaW5kZXggNjg3OWM5MC4uNjViMDU1YyAxMDA2NDQKLS0tIGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX21pc2MuY3BwCisrKyBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9yYWRpb19oaWRsX2hhbF9taXNjLmNwcApAQCAtNTU2LDcgKzU1Niw3IEBACiBURVNUX0YoUmFkaW9IaWRsVGVzdCwgbnZSZXNldENvbmZpZykgewogICBpbnQgc2VyaWFsID0gMTsKIAotICByYWRpby0+bnZSZXNldENvbmZpZygrK3NlcmlhbCwgUmVzZXROdlR5cGU6OlJFTE9BRCk7CisgIHJhZGlvLT5udlJlc2V0Q29uZmlnKCsrc2VyaWFsLCBSZXNldE52VHlwZTo6RVJBU0UpOwogICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CiAgIEVYUEVDVF9FUShSYWRpb1Jlc3BvbnNlVHlwZTo6U09MSUNJVEVELCByYWRpb1JzcC0+cnNwSW5mby50eXBlKTsKICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKQEAgLTczMyw2ICs3MzMsOCBAQAogVEVTVF9GKFJhZGlvSGlkbFRlc3QsIHNldEFsbG93ZWRDYXJyaWVycykgewogICBpbnQgc2VyaWFsID0gMTsKICAgQ2FycmllclJlc3RyaWN0aW9ucyBjYXJyaWVyczsKKworICAvKiBDYXJyaWVyIHJlc3RyaWN0aW9uIHdpdGggb25lIGNhcnJpZXIgKi8KICAgbWVtc2V0KCZjYXJyaWVycywgMCwgc2l6ZW9mKGNhcnJpZXJzKSk7CiAgIGNhcnJpZXJzLmFsbG93ZWRDYXJyaWVycy5yZXNpemUoMSk7CiAgIGNhcnJpZXJzLmV4Y2x1ZGVkQ2FycmllcnMucmVzaXplKDApOwpAQCAtNzQ5LDYgKzc1MSwyMCBAQAogICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKICAgICBBU1NFUlRfVFJVRShyYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpOT05FKTsKICAgfQorCisgIC8qIFJlc2V0IGJhY2sgdG8gbm8gY2FycmllciByZXN0cmljdGlvbiAqLworICBtZW1zZXQoJmNhcnJpZXJzLCAwLCBzaXplb2YoY2FycmllcnMpKTsKKyAgY2FycmllcnMuYWxsb3dlZENhcnJpZXJzLnJlc2l6ZSgwKTsKKyAgY2FycmllcnMuZXhjbHVkZWRDYXJyaWVycy5yZXNpemUoMCk7CisKKyAgcmFkaW8tPnNldEFsbG93ZWRDYXJyaWVycygrK3NlcmlhbCwgdHJ1ZSwgY2FycmllcnMpOworICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CisgIEVYUEVDVF9FUShSYWRpb1Jlc3BvbnNlVHlwZTo6U09MSUNJVEVELCByYWRpb1JzcC0+cnNwSW5mby50eXBlKTsKKyAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKKworICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKKyAgICAgIEFTU0VSVF9UUlVFKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUpOworICB9CiB9CiAKIC8qCkBAIC04MTMsNyArODI5LDcgQEAKICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKIAogICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKLSAgICAgIEFTU0VSVF9UUlVFKHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6Ok5PTkUgfHwKLSAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OlJFUVVFU1RfTk9UX1NVUFBPUlRFRCk7CisgICAgQVNTRVJUX1RSVUUocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORQorICAgICAgICB8fCByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpSRVFVRVNUX05PVF9TVVBQT1JURUQpOwogICB9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3JhZGlvX2hpZGxfaGFsX3N0ay5jcHAgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfc3RrLmNwcAppbmRleCBiMDJhNzQwLi4zODU4YzkwIDEwMDY0NAotLS0gYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfc3RrLmNwcAorKysgYi9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvcmFkaW9faGlkbF9oYWxfc3RrLmNwcApAQCAtOTgsNyArOTgsMTIgQEAKICAgRVhQRUNUX0VRKHNlcmlhbCwgcmFkaW9Sc3AtPnJzcEluZm8uc2VyaWFsKTsKIAogICBpZiAoY2FyZFN0YXR1cy5jYXJkU3RhdGUgPT0gQ2FyZFN0YXRlOjpBQlNFTlQpIHsKLSAgICBFWFBFQ1RfRVEoUmFkaW9FcnJvcjo6Tk9ORSwgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IpOworICAgICAgQVNTRVJUX1RSVUUocmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9ORSB8fAorICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6U1lTVEVNX0VSUiB8fAorICAgICAgICAgICAgICAgICAgcmFkaW9Sc3AtPnJzcEluZm8uZXJyb3IgPT0gUmFkaW9FcnJvcjo6Tk9fTUVNT1JZIHx8CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpNT0RFTV9FUlIgfHwKKyAgICAgICAgICAgICAgICAgIHJhZGlvUnNwLT5yc3BJbmZvLmVycm9yID09IFJhZGlvRXJyb3I6OklOVkFMSURfQVJHVU1FTlRTIHx8CisgICAgICAgICAgICAgICAgICByYWRpb1JzcC0+cnNwSW5mby5lcnJvciA9PSBSYWRpb0Vycm9yOjpJTlRFUk5BTF9FUlIpOwogICB9CiB9CiAKZGlmZiAtLWdpdCBhL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9zYXBfaGlkbF9oYWxfYXBpLmNwcCBiL3JhZGlvLzEuMC92dHMvZnVuY3Rpb25hbC9zYXBfaGlkbF9oYWxfYXBpLmNwcAppbmRleCA2ODIyMzBjLi4zYWM4OTFkIDEwMDY0NAotLS0gYS9yYWRpby8xLjAvdnRzL2Z1bmN0aW9uYWwvc2FwX2hpZGxfaGFsX2FwaS5jcHAKKysrIGIvcmFkaW8vMS4wL3Z0cy9mdW5jdGlvbmFsL3NhcF9oaWRsX2hhbF9hcGkuY3BwCkBAIC01MSw3ICs1MSw4IEBACiAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdCgpKTsKICAgRVhQRUNUX0VRKHNhcENiLT5zYXBSZXNwb25zZVRva2VuLCB0b2tlbik7CiAKLSAgQVNTRVJUX1RSVUUoU2FwUmVzdWx0Q29kZTo6Q0FSRF9OT1RfQUNDRVNTU0lCTEUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKKyAgQVNTRVJUX1RSVUUoU2FwUmVzdWx0Q29kZTo6R0VORVJJQ19GQUlMVVJFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CisgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkNBUkRfTk9UX0FDQ0VTU1NJQkxFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CiAgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkNBUkRfQUxSRUFEWV9QT1dFUkVEX09GRiA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAogICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpDQVJEX1JFTU9WRUQgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUpOwogfQpAQCAtNjYsNyArNjcsOCBAQAogICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CiAgIEVYUEVDVF9FUShzYXBDYi0+c2FwUmVzcG9uc2VUb2tlbiwgdG9rZW4pOwogCi0gIEFTU0VSVF9UUlVFKFNhcFJlc3VsdENvZGU6OkRBVEFfTk9UX0FWQUlMQUJMRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAorICBBU1NFUlRfVFJVRShTYXBSZXN1bHRDb2RlOjpHRU5FUklDX0ZBSUxVUkUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKKyAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6REFUQV9OT1RfQVZBSUxBQkxFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CiAgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkNBUkRfQUxSRUFEWV9QT1dFUkVEX09GRiA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAogICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpDQVJEX1JFTU9WRUQgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUpOwogfQpAQCAtODIsNyArODQsOCBAQAogICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CiAgIEVYUEVDVF9FUShzYXBDYi0+c2FwUmVzcG9uc2VUb2tlbiwgdG9rZW4pOwogCi0gIEFTU0VSVF9UUlVFKFNhcFJlc3VsdENvZGU6OkNBUkRfTk9UX0FDQ0VTU1NJQkxFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CisgIEFTU0VSVF9UUlVFKFNhcFJlc3VsdENvZGU6OkdFTkVSSUNfRkFJTFVSRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAorICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpDQVJEX05PVF9BQ0NFU1NTSUJMRSA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAogICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpDQVJEX0FMUkVBRFlfUE9XRVJFRF9PRkYgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKICAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6Q0FSRF9SRU1PVkVEID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CiAgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkNBUkRfQUxSRUFEWV9QT1dFUkVEX09OID09IHNhcENiLT5zYXBSZXN1bHRDb2RlKTsKQEAgLTk4LDcgKzEwMSw4IEBACiAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdCgpKTsKICAgRVhQRUNUX0VRKHNhcENiLT5zYXBSZXNwb25zZVRva2VuLCB0b2tlbik7CiAKLSAgQVNTRVJUX1RSVUUoU2FwUmVzdWx0Q29kZTo6Q0FSRF9OT1RfQUNDRVNTU0lCTEUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKKyAgQVNTRVJUX1RSVUUoU2FwUmVzdWx0Q29kZTo6R0VORVJJQ19GQUlMVVJFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CisgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkNBUkRfTk9UX0FDQ0VTU1NJQkxFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlIHx8CiAgICAgICAgICAgICAgIFNhcFJlc3VsdENvZGU6OkNBUkRfQUxSRUFEWV9QT1dFUkVEX09GRiA9PSBzYXBDYi0+c2FwUmVzdWx0Q29kZSB8fAogICAgICAgICAgICAgICBTYXBSZXN1bHRDb2RlOjpDQVJEX1JFTU9WRUQgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUpOwogfQpAQCAtMTEzLDcgKzExNyw4IEBACiAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdCgpKTsKICAgRVhQRUNUX0VRKHNhcENiLT5zYXBSZXNwb25zZVRva2VuLCB0b2tlbik7CiAKLSAgRVhQRUNUX0VRKFNhcFJlc3VsdENvZGU6OkRBVEFfTk9UX0FWQUlMQUJMRSwgc2FwQ2ItPnNhcFJlc3VsdENvZGUpOworICBBU1NFUlRfVFJVRShTYXBSZXN1bHRDb2RlOjpHRU5FUklDX0ZBSUxVUkUgPT0gc2FwQ2ItPnNhcFJlc3VsdENvZGUgfHwKKyAgICAgICAgICAgICAgU2FwUmVzdWx0Q29kZTo6REFUQV9OT1RfQVZBSUxBQkxFID09IHNhcENiLT5zYXBSZXN1bHRDb2RlKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3JlbmRlcnNjcmlwdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzTWlzY2VsbGFuZW91c1Rlc3RzLmNwcCBiL3JlbmRlcnNjcmlwdC8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzTWlzY2VsbGFuZW91c1Rlc3RzLmNwcAppbmRleCAyM2IwOWFjLi4yNzhkYmYzIDEwMDY0NAotLS0gYS9yZW5kZXJzY3JpcHQvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c01pc2NlbGxhbmVvdXNUZXN0cy5jcHAKKysrIGIvcmVuZGVyc2NyaXB0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNNaXNjZWxsYW5lb3VzVGVzdHMuY3BwCkBAIC0xNzUsNiArMTc1LDggQEAKICAgICBBU1NFUlRfTkUoTmF0aXZlV2luZG93KDApLCBuYXRpdmVXaW5kb3cpOwogCiAgICAgKChBTmF0aXZlV2luZG93ICopbmF0aXZlV2luZG93KS0+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+IGNvbmZpZ0RpcmVjdFJlcG9ydCgKKyAgICAgICAgICAgIGludDMyX3Qgc2Vuc29ySGFuZGxlLCBpbnQzMl90IGNoYW5uZWxIYW5kbGUsIFJhdGVMZXZlbCByYXRlLAorICAgICAgICAgICAgY29uZmlnRGlyZWN0UmVwb3J0X2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgY29uc3RleHByIGludDMyX3Qga1BvbGxNYXhCdWZmZXJTaXplID0gMTI4OworICAgIHN0YXR1c190IG1Jbml0Q2hlY2s7CisgICAgc2Vuc29yc19tb2R1bGVfdCAqbVNlbnNvck1vZHVsZTsKKyAgICBzZW5zb3JzX3BvbGxfZGV2aWNlXzFfdCAqbVNlbnNvckRldmljZTsKKyAgICBzdGQ6Om11dGV4IG1Qb2xsTG9jazsKKworICAgIGludCBnZXRIYWxEZXZpY2VWZXJzaW9uKCkgY29uc3Q7CisKKyAgICBzdGF0aWMgdm9pZCBjb252ZXJ0RnJvbVNlbnNvckV2ZW50cygKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCwgY29uc3Qgc2Vuc29yc19ldmVudF90ICpzcmMsIGhpZGxfdmVjPEV2ZW50PiAqZHN0KTsKKworICAgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTZW5zb3JzKTsKK307CisKK2V4dGVybiAiQyIgSVNlbnNvcnMgKkhJRExfRkVUQ0hfSVNlbnNvcnMoY29uc3QgY2hhciAqbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBzZW5zb3JzCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gSEFSRFdBUkVfSU5URVJGQUNFU19TRU5TT1JTX1YxXzBfREVGQVVMVF9TRU5TT1JTX0hfCmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtc2VydmljZS5yYyBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1OWU1ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDUgQEAKK3NlcnZpY2Ugc2Vuc29ycy1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCisgICAgY2FwYWJpbGl0aWVzIFNZU19OSUNFCmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC9kZWZhdWx0L2NvbnZlcnQuY3BwIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9jb252ZXJ0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDg1OWVjCi0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9jb252ZXJ0LmNwcApAQCAtMCwwICsxLDQwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlICJjb252ZXJ0LmgiCisKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHNlbnNvcnMgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordm9pZCBjb252ZXJ0RnJvbVNlbnNvcihjb25zdCBzZW5zb3JfdCAmc3JjLCBTZW5zb3JJbmZvICpkc3QpIHsKKyAgICBkc3QtPm5hbWUgPSBzcmMubmFtZTsKKyAgICBkc3QtPnZlbmRvciA9IHNyYy52ZW5kb3I7CisgICAgZHN0LT52ZXJzaW9uID0gc3JjLnZlcnNpb247CisgICAgZHN0LT5zZW5zb3JIYW5kbGUgPSBzcmMuaGFuZGxlOworICAgIGRzdC0+dHlwZSA9IChTZW5zb3JUeXBlKXNyYy50eXBlOworICAgIGRzdC0+bWF4UmFuZ2UgPSBzcmMubWF4UmFuZ2U7CisgICAgZHN0LT5yZXNvbHV0aW9uID0gc3JjLnJlc29sdXRpb247CisgICAgZHN0LT5wb3dlciA9IHNyYy5wb3dlcjsKKyAgICBkc3QtPm1pbkRlbGF5ID0gc3JjLm1pbkRlbGF5OworICAgIGRzdC0+Zmlmb1Jlc2VydmVkRXZlbnRDb3VudCA9IHNyYy5maWZvUmVzZXJ2ZWRFdmVudENvdW50OworICAgIGRzdC0+Zmlmb01heEV2ZW50Q291bnQgPSBzcmMuZmlmb01heEV2ZW50Q291bnQ7CisgICAgZHN0LT50eXBlQXNTdHJpbmcgPSBzcmMuc3RyaW5nVHlwZTsKKyAgICBkc3QtPnJlcXVpcmVkUGVybWlzc2lvbiA9IHNyYy5yZXF1aXJlZFBlcm1pc3Npb247CisgICAgZHN0LT5tYXhEZWxheSA9IHNyYy5tYXhEZWxheTsKKyAgICBkc3QtPmZsYWdzID0gc3JjLmZsYWdzOworfQorCit2b2lkIGNvbnZlcnRUb1NlbnNvcigKKyAgICAgICAgY29uc3QgOjphbmRyb2lkOjpoYXJkd2FyZTo6c2Vuc29yczo6VjFfMDo6U2Vuc29ySW5mbyAmc3JjLAorICAgICAgICBzZW5zb3JfdCAqZHN0KSB7CisgICAgZHN0LT5uYW1lID0gc3RyZHVwKHNyYy5uYW1lLmNfc3RyKCkpOworICAgIGRzdC0+dmVuZG9yID0gc3RyZHVwKHNyYy52ZW5kb3IuY19zdHIoKSk7CisgICAgZHN0LT52ZXJzaW9uID0gc3JjLnZlcnNpb247CisgICAgZHN0LT5oYW5kbGUgPSBzcmMuc2Vuc29ySGFuZGxlOworICAgIGRzdC0+dHlwZSA9IChpbnQpc3JjLnR5cGU7CisgICAgZHN0LT5tYXhSYW5nZSA9IHNyYy5tYXhSYW5nZTsKKyAgICBkc3QtPnJlc29sdXRpb24gPSBzcmMucmVzb2x1dGlvbjsKKyAgICBkc3QtPnBvd2VyID0gc3JjLnBvd2VyOworICAgIGRzdC0+bWluRGVsYXkgPSBzcmMubWluRGVsYXk7CisgICAgZHN0LT5maWZvUmVzZXJ2ZWRFdmVudENvdW50ID0gc3JjLmZpZm9SZXNlcnZlZEV2ZW50Q291bnQ7CisgICAgZHN0LT5maWZvTWF4RXZlbnRDb3VudCA9IHNyYy5maWZvTWF4RXZlbnRDb3VudDsKKyAgICBkc3QtPnN0cmluZ1R5cGUgPSBzdHJkdXAoc3JjLnR5cGVBc1N0cmluZy5jX3N0cigpKTsKKyAgICBkc3QtPnJlcXVpcmVkUGVybWlzc2lvbiA9IHN0cmR1cChzcmMucmVxdWlyZWRQZXJtaXNzaW9uLmNfc3RyKCkpOworICAgIGRzdC0+bWF4RGVsYXkgPSBzcmMubWF4RGVsYXk7CisgICAgZHN0LT5mbGFncyA9IHNyYy5mbGFnczsKKyAgICBkc3QtPnJlc2VydmVkWzBdID0gZHN0LT5yZXNlcnZlZFsxXSA9IDA7Cit9CisKK3ZvaWQgY29udmVydEZyb21TZW5zb3JFdmVudChjb25zdCBzZW5zb3JzX2V2ZW50X3QgJnNyYywgRXZlbnQgKmRzdCkgeworICAgIHR5cGVkZWYgOjphbmRyb2lkOjpoYXJkd2FyZTo6c2Vuc29yczo6VjFfMDo6U2Vuc29yVHlwZSBTZW5zb3JUeXBlOworICAgIHR5cGVkZWYgOjphbmRyb2lkOjpoYXJkd2FyZTo6c2Vuc29yczo6VjFfMDo6TWV0YURhdGFFdmVudFR5cGUgTWV0YURhdGFFdmVudFR5cGU7CisKKyAgICBkc3QtPnNlbnNvckhhbmRsZSA9IHNyYy5zZW5zb3I7CisgICAgZHN0LT5zZW5zb3JUeXBlID0gKFNlbnNvclR5cGUpc3JjLnR5cGU7CisgICAgZHN0LT50aW1lc3RhbXAgPSBzcmMudGltZXN0YW1wOworCisgICAgc3dpdGNoIChkc3QtPnNlbnNvclR5cGUpIHsKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpNRVRBX0RBVEE6CisgICAgICAgIHsKKyAgICAgICAgICAgIGRzdC0+dS5tZXRhLndoYXQgPSAoTWV0YURhdGFFdmVudFR5cGUpc3JjLm1ldGFfZGF0YS53aGF0OworICAgICAgICAgICAgLy8gTGVnYWN5IEhBTHMgY29udGFpbiB0aGUgaGFuZGxlIHJlZmVyZW5jZSBpbiB0aGUgbWV0YSBkYXRhIGZpZWxkLgorICAgICAgICAgICAgLy8gQ29weSB0aGF0IG92ZXIgdG8gdGhlIGhhbmRsZSBvZiB0aGUgZXZlbnQuIEluIGxlZ2FjeSBIQUxzIHRoaXMKKyAgICAgICAgICAgIC8vIGZpZWxkIHdhcyBleHBlY3RlZCB0byBiZSAwLgorICAgICAgICAgICAgZHN0LT5zZW5zb3JIYW5kbGUgPSBzcmMubWV0YV9kYXRhLnNlbnNvcjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6Ok9SSUVOVEFUSU9OOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkdZUk9TQ09QRToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHUkFWSVRZOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkxJTkVBUl9BQ0NFTEVSQVRJT046CisgICAgICAgIHsKKyAgICAgICAgICAgIGRzdC0+dS52ZWMzLnggPSBzcmMuYWNjZWxlcmF0aW9uLng7CisgICAgICAgICAgICBkc3QtPnUudmVjMy55ID0gc3JjLmFjY2VsZXJhdGlvbi55OworICAgICAgICAgICAgZHN0LT51LnZlYzMueiA9IHNyYy5hY2NlbGVyYXRpb24uejsKKyAgICAgICAgICAgIGRzdC0+dS52ZWMzLnN0YXR1cyA9IChTZW5zb3JTdGF0dXMpc3JjLmFjY2VsZXJhdGlvbi5zdGF0dXM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6Uk9UQVRJT05fVkVDVE9SOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkdBTUVfUk9UQVRJT05fVkVDVE9SOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkdFT01BR05FVElDX1JPVEFUSU9OX1ZFQ1RPUjoKKyAgICAgICAgeworICAgICAgICAgICAgZHN0LT51LnZlYzQueCA9IHNyYy5kYXRhWzBdOworICAgICAgICAgICAgZHN0LT51LnZlYzQueSA9IHNyYy5kYXRhWzFdOworICAgICAgICAgICAgZHN0LT51LnZlYzQueiA9IHNyYy5kYXRhWzJdOworICAgICAgICAgICAgZHN0LT51LnZlYzQudyA9IHNyYy5kYXRhWzNdOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRF9VTkNBTElCUkFURUQ6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkdZUk9TQ09QRV9VTkNBTElCUkFURUQ6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVJfVU5DQUxJQlJBVEVEOgorICAgICAgeworICAgICAgICAgIGRzdC0+dS51bmNhbC54ID0gc3JjLnVuY2FsaWJyYXRlZF9neXJvLnhfdW5jYWxpYjsKKyAgICAgICAgICBkc3QtPnUudW5jYWwueSA9IHNyYy51bmNhbGlicmF0ZWRfZ3lyby55X3VuY2FsaWI7CisgICAgICAgICAgZHN0LT51LnVuY2FsLnogPSBzcmMudW5jYWxpYnJhdGVkX2d5cm8uel91bmNhbGliOworICAgICAgICAgIGRzdC0+dS51bmNhbC54X2JpYXMgPSBzcmMudW5jYWxpYnJhdGVkX2d5cm8ueF9iaWFzOworICAgICAgICAgIGRzdC0+dS51bmNhbC55X2JpYXMgPSBzcmMudW5jYWxpYnJhdGVkX2d5cm8ueV9iaWFzOworICAgICAgICAgIGRzdC0+dS51bmNhbC56X2JpYXMgPSBzcmMudW5jYWxpYnJhdGVkX2d5cm8uel9iaWFzOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6OkRFVklDRV9PUklFTlRBVElPTjoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TElHSFQ6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OlBSRVNTVVJFOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpURU1QRVJBVFVSRToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6UFJPWElNSVRZOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpSRUxBVElWRV9IVU1JRElUWToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QU1CSUVOVF9URU1QRVJBVFVSRToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6U0lHTklGSUNBTlRfTU9USU9OOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpTVEVQX0RFVEVDVE9SOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpUSUxUX0RFVEVDVE9SOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpXQUtFX0dFU1RVUkU6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkdMQU5DRV9HRVNUVVJFOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpQSUNLX1VQX0dFU1RVUkU6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OldSSVNUX1RJTFRfR0VTVFVSRToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RBVElPTkFSWV9ERVRFQ1Q6CisgICAgICBjYXNlIFNlbnNvclR5cGU6Ok1PVElPTl9ERVRFQ1Q6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkhFQVJUX0JFQVQ6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkxPV19MQVRFTkNZX09GRkJPRFlfREVURUNUOgorICAgICAgeworICAgICAgICAgIGRzdC0+dS5zY2FsYXIgPSBzcmMuZGF0YVswXTsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpTVEVQX0NPVU5URVI6CisgICAgICB7CisgICAgICAgICAgZHN0LT51LnN0ZXBDb3VudCA9IHNyYy51NjQuc3RlcF9jb3VudGVyOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6OkhFQVJUX1JBVEU6CisgICAgICB7CisgICAgICAgICAgZHN0LT51LmhlYXJ0UmF0ZS5icG0gPSBzcmMuaGVhcnRfcmF0ZS5icG07CisgICAgICAgICAgZHN0LT51LmhlYXJ0UmF0ZS5zdGF0dXMgPSAoU2Vuc29yU3RhdHVzKXNyYy5oZWFydF9yYXRlLnN0YXR1czsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpQT1NFXzZET0Y6ICAvLyAxNSBmbG9hdHMKKyAgICAgIHsKKyAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDE1OyArK2kpIHsKKyAgICAgICAgICAgICAgZHN0LT51LnBvc2U2RE9GW2ldID0gc3JjLmRhdGFbaV07CisgICAgICAgICAgfQorICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6OkRZTkFNSUNfU0VOU09SX01FVEE6CisgICAgICB7CisgICAgICAgICAgZHN0LT51LmR5bmFtaWMuY29ubmVjdGVkID0gc3JjLmR5bmFtaWNfc2Vuc29yX21ldGEuY29ubmVjdGVkOworICAgICAgICAgIGRzdC0+dS5keW5hbWljLnNlbnNvckhhbmRsZSA9IHNyYy5keW5hbWljX3NlbnNvcl9tZXRhLmhhbmRsZTsKKworICAgICAgICAgIG1lbWNweShkc3QtPnUuZHluYW1pYy51dWlkLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgc3JjLmR5bmFtaWNfc2Vuc29yX21ldGEudXVpZCwKKyAgICAgICAgICAgICAgICAgMTYpOworCisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QURESVRJT05BTF9JTkZPOgorICAgICAgeworICAgICAgICAgIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNlbnNvcnM6OlYxXzA6OkFkZGl0aW9uYWxJbmZvICpkc3RJbmZvID0KKyAgICAgICAgICAgICAgJmRzdC0+dS5hZGRpdGlvbmFsOworCisgICAgICAgICAgY29uc3QgYWRkaXRpb25hbF9pbmZvX2V2ZW50X3QgJnNyY0luZm8gPSBzcmMuYWRkaXRpb25hbF9pbmZvOworCisgICAgICAgICAgZHN0SW5mby0+dHlwZSA9CisgICAgICAgICAgICAgICg6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzZW5zb3JzOjpWMV8wOjpBZGRpdGlvbmFsSW5mb1R5cGUpCisgICAgICAgICAgICAgICAgICBzcmNJbmZvLnR5cGU7CisKKyAgICAgICAgICBkc3RJbmZvLT5zZXJpYWwgPSBzcmNJbmZvLnNlcmlhbDsKKworICAgICAgICAgIENIRUNLX0VRKHNpemVvZihkc3RJbmZvLT51KSwgc2l6ZW9mKHNyY0luZm8uZGF0YV9pbnQzMikpOworICAgICAgICAgIG1lbWNweSgmZHN0SW5mby0+dSwgc3JjSW5mby5kYXRhX2ludDMyLCBzaXplb2Yoc3JjSW5mby5kYXRhX2ludDMyKSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGRlZmF1bHQ6CisgICAgICB7CisgICAgICAgICAgQ0hFQ0tfR0UoKGludDMyX3QpZHN0LT5zZW5zb3JUeXBlLAorICAgICAgICAgICAgICAgICAgIChpbnQzMl90KVNlbnNvclR5cGU6OkRFVklDRV9QUklWQVRFX0JBU0UpOworCisgICAgICAgICAgbWVtY3B5KGRzdC0+dS5kYXRhLmRhdGEoKSwgc3JjLmRhdGEsIDE2ICogc2l6ZW9mKGZsb2F0KSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisgIH0KK30KKwordm9pZCBjb252ZXJ0VG9TZW5zb3JFdmVudChjb25zdCBFdmVudCAmc3JjLCBzZW5zb3JzX2V2ZW50X3QgKmRzdCkgeworICBkc3QtPnZlcnNpb24gPSBzaXplb2Yoc2Vuc29yc19ldmVudF90KTsKKyAgZHN0LT5zZW5zb3IgPSBzcmMuc2Vuc29ySGFuZGxlOworICBkc3QtPnR5cGUgPSAoaW50MzJfdClzcmMuc2Vuc29yVHlwZTsKKyAgZHN0LT5yZXNlcnZlZDAgPSAwOworICBkc3QtPnRpbWVzdGFtcCA9IHNyYy50aW1lc3RhbXA7CisgIGRzdC0+ZmxhZ3MgPSAwOworICBkc3QtPnJlc2VydmVkMVswXSA9IGRzdC0+cmVzZXJ2ZWQxWzFdID0gZHN0LT5yZXNlcnZlZDFbMl0gPSAwOworCisgIHN3aXRjaCAoc3JjLnNlbnNvclR5cGUpIHsKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TUVUQV9EQVRBOgorICAgICAgeworICAgICAgICAgIC8vIExlZ2FjeSBIQUxzIGV4cGVjdCB0aGUgaGFuZGxlIHJlZmVyZW5jZSBpbiB0aGUgbWV0YSBkYXRhIGZpZWxkLgorICAgICAgICAgIC8vIENvcHkgaXQgb3ZlciBmcm9tIHRoZSBoYW5kbGUgb2YgdGhlIGV2ZW50LgorICAgICAgICAgIGRzdC0+bWV0YV9kYXRhLndoYXQgPSAoaW50MzJfdClzcmMudS5tZXRhLndoYXQ7CisgICAgICAgICAgZHN0LT5tZXRhX2RhdGEuc2Vuc29yID0gc3JjLnNlbnNvckhhbmRsZTsKKyAgICAgICAgICAvLyBTZXQgdGhlIHNlbnNvciBoYW5kbGUgdG8gMCB0byBtYWludGFpbiBjb21wYXRpYmlsaXR5LgorICAgICAgICAgIGRzdC0+c2Vuc29yID0gMDsKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgY2FzZSBTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSOgorICAgICAgY2FzZSBTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRDoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6T1JJRU5UQVRJT046CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkdZUk9TQ09QRToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R1JBVklUWToKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TElORUFSX0FDQ0VMRVJBVElPTjoKKyAgICAgIHsKKyAgICAgICAgICBkc3QtPmFjY2VsZXJhdGlvbi54ID0gc3JjLnUudmVjMy54OworICAgICAgICAgIGRzdC0+YWNjZWxlcmF0aW9uLnkgPSBzcmMudS52ZWMzLnk7CisgICAgICAgICAgZHN0LT5hY2NlbGVyYXRpb24ueiA9IHNyYy51LnZlYzMuejsKKyAgICAgICAgICBkc3QtPmFjY2VsZXJhdGlvbi5zdGF0dXMgPSAoaW50OF90KXNyYy51LnZlYzMuc3RhdHVzOworICAgICAgICAgIGJyZWFrOworICAgICAgfQorCisgICAgICBjYXNlIFNlbnNvclR5cGU6OlJPVEFUSU9OX1ZFQ1RPUjoKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R0FNRV9ST1RBVElPTl9WRUNUT1I6CisgICAgICBjYXNlIFNlbnNvclR5cGU6OkdFT01BR05FVElDX1JPVEFUSU9OX1ZFQ1RPUjoKKyAgICAgIHsKKyAgICAgICAgICBkc3QtPmRhdGFbMF0gPSBzcmMudS52ZWM0Lng7CisgICAgICAgICAgZHN0LT5kYXRhWzFdID0gc3JjLnUudmVjNC55OworICAgICAgICAgIGRzdC0+ZGF0YVsyXSA9IHNyYy51LnZlYzQuejsKKyAgICAgICAgICBkc3QtPmRhdGFbM10gPSBzcmMudS52ZWM0Lnc7CisgICAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTERfVU5DQUxJQlJBVEVEOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkdZUk9TQ09QRV9VTkNBTElCUkFURUQ6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUl9VTkNBTElCUkFURUQ6CisgICAgICAgIHsKKyAgICAgICAgICAgIGRzdC0+dW5jYWxpYnJhdGVkX2d5cm8ueF91bmNhbGliID0gc3JjLnUudW5jYWwueDsKKyAgICAgICAgICAgIGRzdC0+dW5jYWxpYnJhdGVkX2d5cm8ueV91bmNhbGliID0gc3JjLnUudW5jYWwueTsKKyAgICAgICAgICAgIGRzdC0+dW5jYWxpYnJhdGVkX2d5cm8uel91bmNhbGliID0gc3JjLnUudW5jYWwuejsKKyAgICAgICAgICAgIGRzdC0+dW5jYWxpYnJhdGVkX2d5cm8ueF9iaWFzID0gc3JjLnUudW5jYWwueF9iaWFzOworICAgICAgICAgICAgZHN0LT51bmNhbGlicmF0ZWRfZ3lyby55X2JpYXMgPSBzcmMudS51bmNhbC55X2JpYXM7CisgICAgICAgICAgICBkc3QtPnVuY2FsaWJyYXRlZF9neXJvLnpfYmlhcyA9IHNyYy51LnVuY2FsLnpfYmlhczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpERVZJQ0VfT1JJRU5UQVRJT046CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TElHSFQ6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6UFJFU1NVUkU6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6VEVNUEVSQVRVUkU6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6UFJPWElNSVRZOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlJFTEFUSVZFX0hVTUlESVRZOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkFNQklFTlRfVEVNUEVSQVRVUkU6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6U0lHTklGSUNBTlRfTU9USU9OOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OlNURVBfREVURUNUT1I6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6VElMVF9ERVRFQ1RPUjoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpXQUtFX0dFU1RVUkU6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6R0xBTkNFX0dFU1RVUkU6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6UElDS19VUF9HRVNUVVJFOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OldSSVNUX1RJTFRfR0VTVFVSRToKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpTVEFUSU9OQVJZX0RFVEVDVDoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpNT1RJT05fREVURUNUOgorICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkhFQVJUX0JFQVQ6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TE9XX0xBVEVOQ1lfT0ZGQk9EWV9ERVRFQ1Q6CisgICAgICAgIHsKKyAgICAgICAgICAgIGRzdC0+ZGF0YVswXSA9IHNyYy51LnNjYWxhcjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpTVEVQX0NPVU5URVI6CisgICAgICAgIHsKKyAgICAgICAgICAgIGRzdC0+dTY0LnN0ZXBfY291bnRlciA9IHNyYy51LnN0ZXBDb3VudDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpIRUFSVF9SQVRFOgorICAgICAgICB7CisgICAgICAgICAgICBkc3QtPmhlYXJ0X3JhdGUuYnBtID0gc3JjLnUuaGVhcnRSYXRlLmJwbTsKKyAgICAgICAgICAgIGRzdC0+aGVhcnRfcmF0ZS5zdGF0dXMgPSAoaW50OF90KXNyYy51LmhlYXJ0UmF0ZS5zdGF0dXM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6UE9TRV82RE9GOiAgLy8gMTUgZmxvYXRzCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMTU7ICsraSkgeworICAgICAgICAgICAgICAgIGRzdC0+ZGF0YVtpXSA9IHNyYy51LnBvc2U2RE9GW2ldOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkRZTkFNSUNfU0VOU09SX01FVEE6CisgICAgICAgIHsKKyAgICAgICAgICAgIGRzdC0+ZHluYW1pY19zZW5zb3JfbWV0YS5jb25uZWN0ZWQgPSBzcmMudS5keW5hbWljLmNvbm5lY3RlZDsKKyAgICAgICAgICAgIGRzdC0+ZHluYW1pY19zZW5zb3JfbWV0YS5oYW5kbGUgPSBzcmMudS5keW5hbWljLnNlbnNvckhhbmRsZTsKKyAgICAgICAgICAgIGRzdC0+ZHluYW1pY19zZW5zb3JfbWV0YS5zZW5zb3IgPSBOVUxMOyAgLy8gdG8gYmUgZmlsbGVkIGluIGxhdGVyCisKKyAgICAgICAgICAgIG1lbWNweShkc3QtPmR5bmFtaWNfc2Vuc29yX21ldGEudXVpZCwKKyAgICAgICAgICAgICAgICAgICBzcmMudS5keW5hbWljLnV1aWQuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgIDE2KTsKKworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBjYXNlIFNlbnNvclR5cGU6OkFERElUSU9OQUxfSU5GTzoKKyAgICAgICAgeworICAgICAgICAgICAgY29uc3QgOjphbmRyb2lkOjpoYXJkd2FyZTo6c2Vuc29yczo6VjFfMDo6QWRkaXRpb25hbEluZm8gJnNyY0luZm8gPQorICAgICAgICAgICAgICAgIHNyYy51LmFkZGl0aW9uYWw7CisKKyAgICAgICAgICAgIGFkZGl0aW9uYWxfaW5mb19ldmVudF90ICpkc3RJbmZvID0gJmRzdC0+YWRkaXRpb25hbF9pbmZvOworICAgICAgICAgICAgZHN0SW5mby0+dHlwZSA9IChpbnQzMl90KXNyY0luZm8udHlwZTsKKyAgICAgICAgICAgIGRzdEluZm8tPnNlcmlhbCA9IHNyY0luZm8uc2VyaWFsOworCisgICAgICAgICAgICBDSEVDS19FUShzaXplb2Yoc3JjSW5mby51KSwgc2l6ZW9mKGRzdEluZm8tPmRhdGFfaW50MzIpKTsKKworICAgICAgICAgICAgbWVtY3B5KGRzdEluZm8tPmRhdGFfaW50MzIsCisgICAgICAgICAgICAgICAgICAgJnNyY0luZm8udSwKKyAgICAgICAgICAgICAgICAgICBzaXplb2YoZHN0SW5mby0+ZGF0YV9pbnQzMikpOworCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgIHsKKyAgICAgICAgICAgIENIRUNLX0dFKChpbnQzMl90KXNyYy5zZW5zb3JUeXBlLAorICAgICAgICAgICAgICAgICAgICAgKGludDMyX3QpU2Vuc29yVHlwZTo6REVWSUNFX1BSSVZBVEVfQkFTRSk7CisKKyAgICAgICAgICAgIG1lbWNweShkc3QtPmRhdGEsIHNyYy51LmRhdGEuZGF0YSgpLCAxNiAqIHNpemVvZihmbG9hdCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Jvb2wgY29udmVydEZyb21TaGFyZWRNZW1JbmZvKGNvbnN0IFNoYXJlZE1lbUluZm8mIG1lbUluLCBzZW5zb3JzX2RpcmVjdF9tZW1fdCAqbWVtT3V0KSB7CisgICAgaWYgKG1lbU91dCA9PSBudWxscHRyKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBzd2l0Y2gobWVtSW4udHlwZSkgeworICAgICAgICBjYXNlIFNoYXJlZE1lbVR5cGU6OkFTSE1FTToKKyAgICAgICAgICAgIG1lbU91dC0+dHlwZSA9IFNFTlNPUl9ESVJFQ1RfTUVNX1RZUEVfQVNITUVNOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU2hhcmVkTWVtVHlwZTo6R1JBTExPQzoKKyAgICAgICAgICAgIG1lbU91dC0+dHlwZSA9IFNFTlNPUl9ESVJFQ1RfTUVNX1RZUEVfR1JBTExPQzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHN3aXRjaChtZW1Jbi5mb3JtYXQpIHsKKyAgICAgICAgY2FzZSBTaGFyZWRNZW1Gb3JtYXQ6OlNFTlNPUlNfRVZFTlQ6CisgICAgICAgICAgICBtZW1PdXQtPmZvcm1hdCA9IFNFTlNPUl9ESVJFQ1RfRk1UX1NFTlNPUlNfRVZFTlQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBtZW1PdXQtPnNpemUgPSBtZW1Jbi5zaXplOworICAgIG1lbU91dC0+aGFuZGxlID0gbWVtSW4ubWVtb3J5SGFuZGxlOworICAgIHJldHVybiB0cnVlOworfQorCitpbnQgY29udmVydEZyb21SYXRlTGV2ZWwoUmF0ZUxldmVsIHJhdGUpIHsKKyAgICBzd2l0Y2gocmF0ZSkgeworICAgICAgICBjYXNlIFJhdGVMZXZlbDo6U1RPUDoKKyAgICAgICAgICAgIHJldHVybiBTRU5TT1JfRElSRUNUX1JBVEVfU1RPUDsKKyAgICAgICAgY2FzZSBSYXRlTGV2ZWw6Ok5PUk1BTDoKKyAgICAgICAgICAgIHJldHVybiBTRU5TT1JfRElSRUNUX1JBVEVfTk9STUFMOworICAgICAgICBjYXNlIFJhdGVMZXZlbDo6RkFTVDoKKyAgICAgICAgICAgIHJldHVybiBTRU5TT1JfRElSRUNUX1JBVEVfRkFTVDsKKyAgICAgICAgY2FzZSBSYXRlTGV2ZWw6OlZFUllfRkFTVDoKKyAgICAgICAgICAgIHJldHVybiBTRU5TT1JfRElSRUNUX1JBVEVfVkVSWV9GQVNUOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHNlbnNvcnMKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKwpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvZGVmYXVsdC9pbmNsdWRlL3NlbnNvcnMvY29udmVydC5oIGIvc2Vuc29ycy8xLjAvZGVmYXVsdC9pbmNsdWRlL3NlbnNvcnMvY29udmVydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzYTAxMjUKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC9kZWZhdWx0L2luY2x1ZGUvc2Vuc29ycy9jb252ZXJ0LmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZm5kZWYgSEFSRFdBUkVfSU5URVJGQUNFU19TRU5TT1JTX1YxXzBfREVGQVVMVF9JTkNMVURFX0NPTlZFUlRfSF8KKworI2RlZmluZSBIQVJEV0FSRV9JTlRFUkZBQ0VTX1NFTlNPUlNfVjFfMF9ERUZBVUxUX0lOQ0xVREVfQ09OVkVSVF9IXworCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC9JU2Vuc29ycy5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3NlbnNvcnMuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSBzZW5zb3JzIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3ZvaWQgY29udmVydEZyb21TZW5zb3IoY29uc3Qgc2Vuc29yX3QgJnNyYywgU2Vuc29ySW5mbyAqZHN0KTsKK3ZvaWQgY29udmVydFRvU2Vuc29yKGNvbnN0IFNlbnNvckluZm8gJnNyYywgc2Vuc29yX3QgKmRzdCk7CisKK3ZvaWQgY29udmVydEZyb21TZW5zb3JFdmVudChjb25zdCBzZW5zb3JzX2V2ZW50X3QgJnNyYywgRXZlbnQgKmRzdCk7Cit2b2lkIGNvbnZlcnRUb1NlbnNvckV2ZW50KGNvbnN0IEV2ZW50ICZzcmMsIHNlbnNvcnNfZXZlbnRfdCAqZHN0KTsKKworYm9vbCBjb252ZXJ0RnJvbVNoYXJlZE1lbUluZm8oY29uc3QgU2hhcmVkTWVtSW5mbyYgbWVtSW4sIHNlbnNvcnNfZGlyZWN0X21lbV90ICptZW1PdXQpOworaW50IGNvbnZlcnRGcm9tUmF0ZUxldmVsKFJhdGVMZXZlbCByYXRlKTsKKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHNlbnNvcnMKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBIQVJEV0FSRV9JTlRFUkZBQ0VTX1NFTlNPUlNfVjFfMF9ERUZBVUxUX0lOQ0xVREVfQ09OVkVSVF9IXwpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjVmNmQ4MQotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS5zZW5zb3JzQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC9JU2Vuc29ycy5oPgorI2luY2x1ZGUgPGhpZGwvTGVnYWN5U3VwcG9ydC5oPgorCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6c2Vuc29yczo6VjFfMDo6SVNlbnNvcnM7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICAvKiBTZW5zb3JzIGZyYW1ld29yayBzZXJ2aWNlIG5lZWRzIGF0IGxlYXN0IHR3byB0aHJlYWRzLgorICAgICAqIE9uZSB0aHJlYWQgYmxvY2tzIG9uIGEgInBvbGwiCisgICAgICogVGhlIHNlY29uZCB0aHJlYWQgaXMgbmVlZGVkIGZvciBhbGwgb3RoZXIgSEFMIG1ldGhvZHMuCisgICAgICovCisgICAgcmV0dXJuIGRlZmF1bHRQYXNzdGhyb3VnaFNlcnZpY2VJbXBsZW1lbnRhdGlvbjxJU2Vuc29ycz4oMik7Cit9CmRpZmYgLS1naXQgYS9zZW5zb3JzLzEuMC90eXBlcy5oYWwgYi9zZW5zb3JzLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzkyNmUyZgotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDEyOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuc2Vuc29yc0AxLjA7CisKKy8qKgorICogUGxlYXNlIHNlZSB0aGUgU2Vuc29ycyBzZWN0aW9uIG9mIHNvdXJjZS5hbmRyb2lkLmNvbSBmb3IgYW4KKyAqIGludHJvZHVjdGlvbiB0byBhbmQgZGV0YWlsZWQgZGVzY3JpcHRpb25zIG9mIEFuZHJvaWQgc2Vuc29yIHR5cGVzOgorICogaHR0cDovL3NvdXJjZS5hbmRyb2lkLmNvbS9kZXZpY2VzL3NlbnNvcnMvaW5kZXguaHRtbAorICovCisKKy8qKiBUeXBlIGVudW1lcmF0aW5nIHZhcmlvdXMgcmVzdWx0IGNvZGVzIHJldHVybmVkIGZyb20gSVNlbnNvcnMgbWV0aG9kcyAqLworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBPSywKKyAgICBQRVJNSVNTSU9OX0RFTklFRCAgICAgICAgICAgICAgICAgICA9IC0xLAorICAgIE5PX01FTU9SWSAgICAgICAgICAgICAgICAgICAgICAgICAgID0gLTEyLAorICAgIEJBRF9WQUxVRSAgICAgICAgICAgICAgICAgICAgICAgICAgID0gLTIyLAorICAgIElOVkFMSURfT1BFUkFUSU9OICAgICAgICAgICAgICAgICAgID0gLTM4LAorfTsKKworLyoqCisgKiBTZW5zb3IgSEFMIG1vZGVzIHVzZWQgaW4gc2V0T3BlcmF0aW9uTW9kZSBtZXRob2QKKyAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IlNFTlNPUl9IQUxfIiwgdmFsdWVfc3VmZml4PSJfTU9ERSIpCitlbnVtIE9wZXJhdGlvbk1vZGUgOiBpbnQzMl90IHsKKyAgICBOT1JNQUwgICAgICAgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICBEQVRBX0lOSkVDVElPTiAgICAgICAgICAgICAgICAgID0gMSwKK307CisKKy8qKgorICogU2Vuc29yIHR5cGUKKyAqCisgKiBFYWNoIHNlbnNvciBoYXMgYSB0eXBlIHdoaWNoIGRlZmluZXMgd2hhdCB0aGlzIHNlbnNvciBtZWFzdXJlcyBhbmQgaG93CisgKiBtZWFzdXJlcyBhcmUgcmVwb3J0ZWQuIFNlZSB0aGUgQmFzZSBzZW5zb3JzIGFuZCBDb21wb3NpdGUgc2Vuc29ycyBsaXN0cworICogZm9yIGNvbXBsZXRlIGRlc2NyaXB0aW9uczoKKyAqIGh0dHA6Ly9zb3VyY2UuYW5kcm9pZC5jb20vZGV2aWNlcy9zZW5zb3JzL2Jhc2VfdHJpZ2dlcnMuaHRtbAorICogaHR0cDovL3NvdXJjZS5hbmRyb2lkLmNvbS9kZXZpY2VzL3NlbnNvcnMvY29tcG9zaXRlX3NlbnNvcnMuaHRtbAorICoKKyAqIERldmljZSBtYW51ZmFjdHVyZXJzIChPRU1zKSBjYW4gZGVmaW5lIHRoZWlyIG93biBzZW5zb3IgdHlwZXMsIGZvcgorICogdGhlaXIgcHJpdmF0ZSB1c2UgYnkgYXBwbGljYXRpb25zIG9yIHNlcnZpY2VzIHByb3ZpZGVkIGJ5IHRoZW0uIFN1Y2gKKyAqIHNlbnNvciB0eXBlcyBhcmUgc3BlY2lmaWMgdG8gYW4gT0VNIGFuZCBjYW4ndCBiZSBleHBvc2VkIGluIHRoZSBTREsuCisgKiBUaGVzZSB0eXBlcyBtdXN0IHN0YXJ0IGF0IFNlbnNvclR5cGU6OkRFVklDRV9QUklWQVRFX0JBU0UuCisgKgorICogQWxsIHNlbnNvcnMgZGVmaW5lZCBvdXRzaWRlIG9mIHRoZSBkZXZpY2UgcHJpdmF0ZSByYW5nZSBtdXN0IGNvcnJlc3BvbmQgdG8KKyAqIGEgdHlwZSBkZWZpbmVkIGluIHRoaXMgZmlsZSwgYW5kIG11c3Qgc2F0aXNmeSB0aGUgY2hhcmFjdGVyaXN0aWNzIGxpc3RlZCBpbgorICogdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBzZW5zb3IgdHlwZS4KKyAqCisgKiBFYWNoIHNlbnNvciBhbHNvIGhhcyBhICJ0eXBlQXNTdHJpbmciLgorICogIC0gc3RyaW5nIHR5cGUgb2Ygc2Vuc29ycyBkZWZpbmVkIGluIHRoaXMgZmlsZSBpcyBvdmVycmlkZGVuIGJ5IEFuZHJvaWQgdG8KKyAqICAgIHZhbHVlcyBkZWZpbmVkIGluIEFuZHJvaWQgQVBJIHdpdGggImFuZHJvaWQuc2Vuc29yLiIgcHJlZml4LgorICogICAgRXhhbXBsZTogZm9yIGFuIGFjY2VsZXJvbWV0ZXIsCisgKiAgICAgIHR5cGUgPSBTZW5zb3JUeXBlOjpBY2NsZXJvbWV0ZXIKKyAqICAgICAgdHlwZUFzU3RyaW5nID0gIiIgKHdpbGwgYmUgcmVwbGFjZSBieSAiYW5kcm9pZC5zZW5zb3IuYWNjZWxlcm9tZXRlciIgYnkKKyAqICAgICAgICAgICAgICAgICAgICAgICAgIEFuZHJvaWQgZnJhbWVvd3JrKQorICogIC0gc3RyaW5nIHR5cGUgb2Ygc2Vuc29ycyBpbnNpZGUgb2YgdGhlIGRldmljZSBwcml2YXRlIHJhbmdlIE1VU1QgYmUgcHJlZml4ZWQKKyAqICAgIGJ5IHRoZSBzZW5zb3IgcHJvdmlkZXIncyBvciBPRU0gcmV2ZXJzZSBkb21haW4gbmFtZS4gSW4gcGFydGljdWxhciwgdGhleQorICogICAgY2Fubm90IHVzZSB0aGUgImFuZHJvaWQuc2Vuc29yLiIgcHJlZml4LgorICoKKyAqIFdoZW4gYW5kcm9pZCBpbnRyb2R1Y2VzIGEgbmV3IHNlbnNvciB0eXBlIHRoYXQgY2FuIHJlcGxhY2UgYW4gT0VNLWRlZmluZWQKKyAqIHNlbnNvciB0eXBlLCB0aGUgT0VNIG11c3QgdXNlIHRoZSBvZmZpY2lhbCBzZW5zb3IgdHlwZSBhbmQgc3RyaW5nVHlwZSBvbgorICogdmVyc2lvbnMgb2YgdGhlIEhBTCB0aGF0IHN1cHBvcnQgdGhpcyBuZXcgb2ZmaWNpYWwgc2Vuc29yIHR5cGUuCisgKgorICogRXhhbXBsZSAobWFkZSB1cCk6IFN1cHBvc2UgR29vZ2xlJ3MgR2xhc3MgdGVhbSB3YW50cyB0byBzdXJmYWNlIGEgc2Vuc29yCisgKiBkZXRlY3RpbmcgdGhhdCBHbGFzcyBpcyBvbiBhIGhlYWQuCisgKiAgLSBTdWNoIGEgc2Vuc29yIGlzIG5vdCBvZmZpY2lhbGx5IHN1cHBvcnRlZCBpbiBhbmRyb2lkIEtpdEthdAorICogIC0gR2xhc3MgZGV2aWNlcyBsYXVuY2hpbmcgb24gS2l0S2F0IGNhbiBpbXBsZW1lbnQgYSBzZW5zb3Igd2l0aAorICogICAgICB0eXBlID0gMHgxMDAwMQorICogICAgICB0eXBlQXNTdHJpbmcgPSAiY29tLmdvb2dsZS5nbGFzcy5vbmhlYWRkZXRlY3RvciIKKyAqICAtIEluIEwgYW5kcm9pZCByZWxlYXNlLCBpZiBhbmRyb2lkIGRlY2lkZXMgdG8gZGVmaW5lCisgKiAgICBTZW5zb3JUeXBlOjpPTl9IRUFEX0RFVEVDVE9SIGFuZCBTVFJJTkdfU2Vuc29yVHlwZTo6T05fSEVBRF9ERVRFQ1RPUiwKKyAqICAgIHRob3NlIHR5cGVzIHNob3VsZCByZXBsYWNlIHRoZSBHbGFzcy10ZWFtLXNwZWNpZmljIHR5cGVzIGluIGFsbCBmdXR1cmUKKyAqICAgIGxhdW5jaGVzLgorICogIC0gV2hlbiBsYXVuY2hpbmcgR2xhc3Mgb24gdGhlIEwgcmVsZWFzZSwgR29vZ2xlIHNob3VsZCBub3cgdXNlIHRoZSBvZmZpY2lhbAorICogICAgdHlwZSAoU2Vuc29yVHlwZTo6T05fSEVBRF9ERVRFQ1RPUikgYW5kIHN0cmluZ1R5cGUuCisgKiAgLSBUaGlzIHdheSwgYWxsIGFwcGxpY2F0aW9ucyBjYW4gbm93IHVzZSB0aGlzIHNlbnNvci4KKyAqLworCisvKioKKyAqIFdha2UgdXAgc2Vuc29ycy4KKyAqIEVhY2ggc2Vuc29yIG1heSBoYXZlIGVpdGhlciBvciBib3RoIGEgd2FrZS11cCBhbmQgYSBub24td2FrZSB2YXJpYW50LgorICogV2hlbiByZWdpc3RlcmVkIGluIGJhdGNoIG1vZGUsIHdha2UtdXAgc2Vuc29ycyB3aWxsIHdha2UgdXAgdGhlIEFQIHdoZW4KKyAqIHRoZWlyIEZJRk9zIGFyZSBmdWxsIG9yIHdoZW4gdGhlIGJhdGNoIHRpbWVvdXQgZXhwaXJlcy4gQSBzZXBhcmF0ZSBGSUZPIGhhcworICogdG8gYmUgbWFpbnRhaW5lZCBmb3Igd2FrZSB1cCBzZW5zb3JzIGFuZCBub24gd2FrZSB1cCBzZW5zb3JzLiBUaGUgbm9uCisgKiB3YWtlLXVwIHNlbnNvcnMgbmVlZCB0byBvdmVyd3JpdGUgdGhlaXIgRklGT3Mgd2hlbiB0aGV5IGFyZSBmdWxsIHRpbGwgdGhlIEFQCisgKiB3YWtlcyB1cCBhbmQgdGhlIHdha2UtdXAgc2Vuc29ycyB3aWxsIHdha2UtdXAgdGhlIEFQIHdoZW4gdGhlaXIgRklGT3MgYXJlCisgKiBmdWxsIG9yIHdoZW4gdGhlIGJhdGNoIHRpbWVvdXQgZXhwaXJlcyB3aXRob3V0IGxvc2luZyBldmVudHMuCisgKiBXYWtlLXVwIGFuZCBub24gd2FrZS11cCB2YXJpYW50cyBvZiBlYWNoIHNlbnNvciBjYW4gYmUgYWN0aXZhdGVkIGF0CisgKiBkaWZmZXJlbnQgcmF0ZXMgaW5kZXBlbmRlbnRseSBvZiBlYWNoIG90aGVyLgorICoKKyAqIE5vdGU6IFByb3hpbWl0eSBzZW5zb3IgYW5kIHNpZ25pZmljYW50IG1vdGlvbiBzZW5zb3Igd2hpY2ggd2VyZSBkZWZpbmVkIGluCisgKiBwcmV2aW91cyByZWxlYXNlcyBhcmUgYWxzbyB3YWtlLXVwIHNlbnNvcnMgYW5kIG11c3QgYmUgdHJlYXRlZCBhcyBzdWNoLgorICogV2FrZS11cCBvbmUtc2hvdCBzZW5zb3JzIGxpa2UgU0lHTklGSUNBTlRfTU9USU9OIGNhbm5vdCBiZSBiYXRjaGVkLCBoZW5jZQorICogdGhlIHRleHQgYWJvdXQgYmF0Y2ggYWJvdmUgZG9lc24ndCBhcHBseSB0byB0aGVtLiBTZWUgdGhlIGRlZmluaXRpb25zIG9mCisgKiBTZW5zb3JUeXBlOjpQUk9YSU1JVFkgYW5kIFNlbnNvclR5cGU6OlNJR05JRklDQU5UX01PVElPTiBmb3IgbW9yZSBpbmZvLgorICoKKyAqIFNldCBTRU5TT1JfRkxBR19XQUtFX1VQIGZsYWcgZm9yIGFsbCB3YWtlLXVwIHNlbnNvcnMuCisgKgorICogRm9yIGV4YW1wbGUsIEEgZGV2aWNlIGNhbiBoYXZlIHR3byBzZW5zb3JzIGJvdGggb2YgU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUgorICogYW5kIG9uZSBvZiB0aGVtIGNhbiBiZSBhIHdha2VfdXAgc2Vuc29yICh3aXRoIFNFTlNPUl9GTEFHX1dBS0VfVVAgZmxhZyBzZXQpCisgKiBhbmQgdGhlIG90aGVyIGNhbiBiZSBhIHJlZ3VsYXIgbm9uIHdha2VfdXAgc2Vuc29yLiBCb3RoIG9mIHRoZXNlIHNlbnNvcnMKKyAqIG11c3QgYmUgYWN0aXZhdGVkL2RlYWN0aXZhdGVkIGluZGVwZW5kZW50bHkgb2YgdGhlIG90aGVyLgorICovCisKK0BleHBvcnQobmFtZT0iIiwgdmFsdWVfcHJlZml4PSJTRU5TT1JfVFlQRV8iKQorZW51bSBTZW5zb3JUeXBlIDogaW50MzJfdCB7CisgICAgLyoqCisgICAgICogTUVUQV9EQVRBIGlzIGEgc3BlY2lhbCBldmVudCB0eXBlIHVzZWQgdG8gcG9wdWxhdGUgdGhlIE1ldGFEYXRhCisgICAgICogc3RydWN0dXJlLiBJdCBkb2Vzbid0IGNvcnJlc3BvbmQgdG8gYSBwaHlzaWNhbCBzZW5zb3IuIEV2ZW50cyBvZiB0aGlzCisgICAgICogdHlwZSBleGlzdCBvbmx5IGluc2lkZSB0aGUgSEFMLCB0aGVpciBwcmltYXJ5IHB1cnBvc2UgaXMgdG8gc2lnbmFsIHRoZQorICAgICAqIGNvbXBsZXRpb24gb2YgYSBmbHVzaCByZXF1ZXN0LgorICAgICAqLworICAgIE1FVEFfREFUQSAgICAgICAgICAgICAgICAgICAgICAgPSAwLAorCisgICAgLyoqCisgICAgICogQUNDRUxFUk9NRVRFUgorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBBbGwgdmFsdWVzIGFyZSBpbiBTSSB1bml0cyAobS9zXjIpIGFuZCBtZWFzdXJlIHRoZSBhY2NlbGVyYXRpb24gb2YgdGhlCisgICAgICogZGV2aWNlIG1pbnVzIHRoZSBhY2NlbGVyYXRpb24gZHVlIHRvIGdyYXZpdHkuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgQUNDRUxFUk9NRVRFUiAgICAgICAgICAgICAgICAgICA9IDEsCisKKyAgICAvKioKKyAgICAgKiBNQUdORVRJQ19GSUVMRAorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBBbGwgdmFsdWVzIGFyZSBpbiBtaWNyby1UZXNsYSAodVQpIGFuZCBtZWFzdXJlIHRoZSBnZW9tYWduZXRpYworICAgICAqIGZpZWxkIGluIHRoZSBYLCBZIGFuZCBaIGF4aXMuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgTUFHTkVUSUNfRklFTEQgICAgICAgICAgICAgICAgICA9IDIsCisKKyAgICAvKioKKyAgICAgKiBPUklFTlRBVElPTgorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBBbGwgdmFsdWVzIGFyZSBhbmdsZXMgaW4gZGVncmVlcy4KKyAgICAgKgorICAgICAqIE9yaWVudGF0aW9uIHNlbnNvcnMgcmV0dXJuIHNlbnNvciBldmVudHMgZm9yIGFsbCAzIGF4ZXMgYXQgYSBjb25zdGFudAorICAgICAqIHJhdGUgZGVmaW5lZCBieSBzZXREZWxheSgpLgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIE9SSUVOVEFUSU9OICAgICAgICAgICAgICAgICAgICAgPSAzLAorCisgICAgLyoqCisgICAgICogR1lST1NDT1BFCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIEFsbCB2YWx1ZXMgYXJlIGluIHJhZGlhbnMvc2Vjb25kIGFuZCBtZWFzdXJlIHRoZSByYXRlIG9mIHJvdGF0aW9uCisgICAgICogYXJvdW5kIHRoZSBYLCBZIGFuZCBaIGF4aXMuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgR1lST1NDT1BFICAgICAgICAgICAgICAgICAgICAgICA9IDQsCisKKyAgICAvKioKKyAgICAgKiBMSUdIVAorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbi1jaGFuZ2UKKyAgICAgKgorICAgICAqIFRoZSBsaWdodCBzZW5zb3IgdmFsdWUgaXMgcmV0dXJuZWQgaW4gU0kgbHV4IHVuaXRzLgorICAgICAqCisgICAgICogQm90aCB3YWtlLXVwIGFuZCBub24gd2FrZS11cCB2ZXJzaW9ucyBhcmUgdXNlZnVsLgorICAgICAqLworICAgIExJR0hUICAgICAgICAgICAgICAgICAgICAgICAgICAgPSA1LAorCisgICAgLyoqCisgICAgICogUFJFU1NVUkUKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogVGhlIHByZXNzdXJlIHNlbnNvciByZXR1cm4gdGhlIGF0aG1vc3BoZXJpYyBwcmVzc3VyZSBpbiBoZWN0b3Bhc2NhbCAoaFBhKQorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIFBSRVNTVVJFICAgICAgICAgICAgICAgICAgICAgICAgPSA2LAorCisgICAgLyoqIFRFTVBFUkFUVVJFIGlzIGRlcHJlY2F0ZWQgaW4gdGhlIEhBTCAqLworICAgIFRFTVBFUkFUVVJFICAgICAgICAgICAgICAgICAgICAgPSA3LAorCisgICAgLyoqCisgICAgICogUFJPWElNSVRZCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uLWNoYW5nZQorICAgICAqCisgICAgICogVGhlIHByb3hpbWl0eSBzZW5zb3Igd2hpY2ggdHVybnMgdGhlIHNjcmVlbiBvZmYgYW5kIGJhY2sgb24gZHVyaW5nIGNhbGxzCisgICAgICogaXMgdGhlIHdha2UtdXAgcHJveGltaXR5IHNlbnNvci4gSW1wbGVtZW50IHdha2UtdXAgcHJveGltaXR5IHNlbnNvcgorICAgICAqIGJlZm9yZSBpbXBsZW1lbnRpbmcgYSBub24gd2FrZS11cCBwcm94aW1pdHkgc2Vuc29yLiBGb3IgdGhlIHdha2UtdXAKKyAgICAgKiBwcm94aW1pdHkgc2Vuc29yIHNldCB0aGUgZmxhZyBTRU5TT1JfRkxBR19XQUtFX1VQLgorICAgICAqIFRoZSB2YWx1ZSBjb3JyZXNwb25kcyB0byB0aGUgZGlzdGFuY2UgdG8gdGhlIG5lYXJlc3Qgb2JqZWN0IGluCisgICAgICogY2VudGltZXRlcnMuCisgICAgICovCisgICAgUFJPWElNSVRZICAgICAgICAgICAgICAgICAgICAgICA9IDgsCisKKyAgICAvKioKKyAgICAgKiBHUkFWSVRZCisgICAgICogcmVwb3J0aW5nLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIEEgZ3Jhdml0eSBvdXRwdXQgaW5kaWNhdGVzIHRoZSBkaXJlY3Rpb24gb2YgYW5kIG1hZ25pdHVkZSBvZiBncmF2aXR5IGluCisgICAgICogdGhlIGRldmljZXMncyBjb29yZGluYXRlcy4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBHUkFWSVRZICAgICAgICAgICAgICAgICAgICAgICAgID0gOSwKKworICAgIC8qKgorICAgICAqIExJTkVBUl9BQ0NFTEVSQVRJT04KKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogSW5kaWNhdGVzIHRoZSBsaW5lYXIgYWNjZWxlcmF0aW9uIG9mIHRoZSBkZXZpY2UgaW4gZGV2aWNlIGNvb3JkaW5hdGVzLAorICAgICAqIG5vdCBpbmNsdWRpbmcgZ3Jhdml0eS4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCB0aGUgbm9uLXdha2UtdXAgdmVyc2lvbiBvZiB0aGlzIHNlbnNvciBhbmQgaW1wbGVtZW50IHRoZQorICAgICAqIHdha2UtdXAgdmVyc2lvbiBpZiB0aGUgc3lzdGVtIHBvc3Nlc3NlcyBhIHdha2UgdXAgZmlmby4KKyAgICAgKi8KKyAgICBMSU5FQVJfQUNDRUxFUkFUSU9OICAgICAgICAgICAgID0gMTAsCisKKyAgICAvKioKKyAgICAgKiBST1RBVElPTl9WRUNUT1IKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogVGhlIHJvdGF0aW9uIHZlY3RvciBzeW1ib2xpemVzIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgZGV2aWNlIHJlbGF0aXZlIHRvCisgICAgICogdGhlIEVhc3QtTm9ydGgtVXAgY29vcmRpbmF0ZXMgZnJhbWUuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgUk9UQVRJT05fVkVDVE9SICAgICAgICAgICAgICAgICA9IDExLAorCisgICAgLyoqCisgICAgICogUkVMQVRJVkVfSFVNSURJVFkKKyAgICAgKiByZXBvcnRpbmctbW9kZTogb24tY2hhbmdlCisgICAgICoKKyAgICAgKiBBIHJlbGF0aXZlIGh1bWlkaXR5IHNlbnNvciBtZWFzdXJlcyByZWxhdGl2ZSBhbWJpZW50IGFpciBodW1pZGl0eSBhbmQKKyAgICAgKiByZXR1cm5zIGEgdmFsdWUgaW4gcGVyY2VudC4KKyAgICAgKgorICAgICAqIEJvdGggd2FrZS11cCBhbmQgbm9uIHdha2UtdXAgdmVyc2lvbnMgYXJlIHVzZWZ1bC4KKyAgICAgKi8KKyAgICBSRUxBVElWRV9IVU1JRElUWSAgICAgICAgICAgICAgID0gMTIsCisKKyAgICAvKioKKyAgICAgKiBBTUJJRU5UX1RFTVBFUkFUVVJFCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uLWNoYW5nZQorICAgICAqCisgICAgICogVGhlIGFtYmllbnQgKHJvb20pIHRlbXBlcmF0dXJlIGluIGRlZ3JlZSBDZWxzaXVzLgorICAgICAqCisgICAgICogQm90aCB3YWtlLXVwIGFuZCBub24gd2FrZS11cCB2ZXJzaW9ucyBhcmUgdXNlZnVsLgorICAgICAqLworICAgIEFNQklFTlRfVEVNUEVSQVRVUkUgICAgICAgICAgICAgPSAxMywKKworICAgIC8qKgorICAgICAqIE1BR05FVElDX0ZJRUxEX1VOQ0FMSUJSQVRFRAorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBTaW1pbGFyIHRvIE1BR05FVElDX0ZJRUxELCBidXQgdGhlIGhhcmQgaXJvbiBjYWxpYnJhdGlvbiBpcworICAgICAqIHJlcG9ydGVkIHNlcGFyYXRlbHkgaW5zdGVhZCBvZiBiZWluZyBpbmNsdWRlZCBpbiB0aGUgbWVhc3VyZW1lbnQuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgTUFHTkVUSUNfRklFTERfVU5DQUxJQlJBVEVEICAgICA9IDE0LAorCisgICAgLyoqCisgICAgICogR0FNRV9ST1RBVElPTl9WRUNUT1IKKyAgICAgKiByZXBvcnRpbmctbW9kZTogY29udGludW91cworICAgICAqCisgICAgICogU2ltaWxhciB0byBST1RBVElPTl9WRUNUT1IsIGJ1dCBub3QgdXNpbmcgdGhlIGdlb21hZ25ldGljCisgICAgICogZmllbGQuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgR0FNRV9ST1RBVElPTl9WRUNUT1IgICAgICAgICAgICA9IDE1LAorCisgICAgLyoqCisgICAgICogR1lST1NDT1BFX1VOQ0FMSUJSQVRFRAorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBBbGwgdmFsdWVzIGFyZSBpbiByYWRpYW5zL3NlY29uZCBhbmQgbWVhc3VyZSB0aGUgcmF0ZSBvZiByb3RhdGlvbgorICAgICAqIGFyb3VuZCB0aGUgWCwgWSBhbmQgWiBheGlzLgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIEdZUk9TQ09QRV9VTkNBTElCUkFURUQgICAgICAgICAgPSAxNiwKKworICAgIC8qKgorICAgICAqIFNJR05JRklDQU5UX01PVElPTgorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbmUtc2hvdAorICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHRyaWdnZXJzIGFuIGV2ZW50IGVhY2ggdGltZSBzaWduaWZpY2FudCBtb3Rpb24KKyAgICAgKiBpcyBkZXRlY3RlZCBhbmQgYXV0b21hdGljYWxseSBkaXNhYmxlcyBpdHNlbGYuCisgICAgICogRm9yIFNpZ25pZmljYW50IE1vdGlvbiBzZW5zb3IgdG8gYmUgdXNlZnVsLCBpdCBtdXN0IGJlIGRlZmluZWQgYXMgYQorICAgICAqIHdha2UtdXAgc2Vuc29yLiAoc2V0IFNFTlNPUl9GTEFHX1dBS0VfVVApLiBJbXBsZW1lbnQgdGhlIHdha2UtdXAKKyAgICAgKiBzaWduaWZpY2FudCBtb3Rpb24gc2Vuc29yLiBBIG5vbiB3YWtlLXVwIHZlcnNpb24gaXMgbm90IHVzZWZ1bC4KKyAgICAgKiBUaGUgb25seSBhbGxvd2VkIHZhbHVlIHRvIHJldHVybiBpcyAxLjAuCisgICAgICovCisgICAgU0lHTklGSUNBTlRfTU9USU9OICAgICAgICAgICAgICA9IDE3LAorCisgICAgLyoqCisgICAgICogU1RFUF9ERVRFQ1RPUgorICAgICAqIHJlcG9ydGluZy1tb2RlOiBzcGVjaWFsCisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgdHJpZ2dlcnMgYW4gZXZlbnQgZWFjaCB0aW1lIGEgc3RlcCBpcyB0YWtlbgorICAgICAqIGJ5IHRoZSB1c2VyLiBUaGUgb25seSBhbGxvd2VkIHZhbHVlIHRvIHJldHVybiBpcyAxLjAgYW5kIGFuIGV2ZW50CisgICAgICogaXMgZ2VuZXJhdGVkIGZvciBlYWNoIHN0ZXAuCisgICAgICoKKyAgICAgKiBCb3RoIHdha2UtdXAgYW5kIG5vbiB3YWtlLXVwIHZlcnNpb25zIGFyZSB1c2VmdWwuCisgICAgICovCisgICAgU1RFUF9ERVRFQ1RPUiAgICAgICAgICAgICAgICAgICA9IDE4LAorCisgICAgLyoqCisgICAgICogU1RFUF9DT1VOVEVSCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uLWNoYW5nZQorICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHJldHVybnMgdGhlIG51bWJlciBvZiBzdGVwcyB0YWtlbiBieSB0aGUgdXNlciBzaW5jZQorICAgICAqIHRoZSBsYXN0IHJlYm9vdCB3aGlsZSBhY3RpdmF0ZWQuIFRoZSB2YWx1ZSBpcyByZXR1cm5lZCBhcyBhIHVpbnQ2NF90IGFuZAorICAgICAqIGlzIHJlc2V0IHRvIHplcm8gb25seSBvbiBhIHN5c3RlbSAvIGFuZHJvaWQgcmVib290LgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIFNURVBfQ09VTlRFUiAgICAgICAgICAgICAgICAgICAgPSAxOSwKKworICAgIC8qKgorICAgICAqIEdFT01BR05FVElDX1JPVEFUSU9OX1ZFQ1RPUgorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiAgU2ltaWxhciB0byBST1RBVElPTl9WRUNUT1IsIGJ1dCB1c2luZyBhIG1hZ25ldG9tZXRlciBpbnN0ZWFkCisgICAgICogIG9mIHVzaW5nIGEgZ3lyb3Njb3BlLgorICAgICAqCisgICAgICogSW1wbGVtZW50IHRoZSBub24td2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yIGFuZCBpbXBsZW1lbnQgdGhlCisgICAgICogd2FrZS11cCB2ZXJzaW9uIGlmIHRoZSBzeXN0ZW0gcG9zc2Vzc2VzIGEgd2FrZSB1cCBmaWZvLgorICAgICAqLworICAgIEdFT01BR05FVElDX1JPVEFUSU9OX1ZFQ1RPUiAgICAgPSAyMCwKKworICAgIC8qKgorICAgICAqIEhFQVJUX1JBVEUKKyAgICAgKiByZXBvcnRpbmctbW9kZTogb24tY2hhbmdlCisgICAgICoKKyAgICAgKiAgQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHJldHVybnMgdGhlIGN1cnJlbnQgaGVhcnQgcmF0ZS4KKyAgICAgKiAgVGhlIGV2ZW50cyBjb250YWluIHRoZSBjdXJyZW50IGhlYXJ0IHJhdGUgaW4gYmVhdHMgcGVyIG1pbnV0ZSAoQlBNKSBhbmQKKyAgICAgKiAgdGhlIHN0YXR1cyBvZiB0aGUgc2Vuc29yIGR1cmluZyB0aGUgbWVhc3VyZW1lbnQuIFNlZSAiSGVhcnRSYXRlIiBiZWxvdworICAgICAqICBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAqCisgICAgICogIEJlY2F1c2UgdGhpcyBzZW5zb3IgaXMgb24tY2hhbmdlLCBldmVudHMgbXVzdCBiZSBnZW5lcmF0ZWQgd2hlbiBhbmQgb25seQorICAgICAqICB3aGVuIGhlYXJ0X3JhdGUuYnBtIG9yIGhlYXJ0X3JhdGUuc3RhdHVzIGhhdmUgY2hhbmdlZCBzaW5jZSB0aGUgbGFzdAorICAgICAqICBldmVudC4gSW4gcGFydGljdWxhciwgdXBvbiB0aGUgZmlyc3QgYWN0aXZhdGlvbiwgdW5sZXNzIHRoZSBkZXZpY2UgaXMKKyAgICAgKiAga25vd24gdG8gbm90IGJlIG9uIHRoZSBib2R5LCB0aGUgc3RhdHVzIGZpZWxkIG9mIHRoZSBmaXJzdCBldmVudCBtdXN0IGJlCisgICAgICogIHNldCB0byBTZW5zb3JTdGF0dXM6OlVOUkVMSUFCTEUuIFRoZSBldmVudCBzaG91bGQgYmUgZ2VuZXJhdGVkIG5vIGZhc3RlcgorICAgICAqICB0aGFuIGV2ZXJ5IHBlcmlvZF9ucyBwYXNzZWQgdG8gc2V0RGVsYXkoKSBvciB0byBiYXRjaCgpLgorICAgICAqICBTZWUgdGhlIGRlZmluaXRpb24gb2YgdGhlIG9uLWNoYW5nZSByZXBvcnRpbmcgbW9kZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKyAgICAgKgorICAgICAqICBTZW5zb3JJbmZvLnJlcXVpcmVkUGVybWlzc2lvbiBtdXN0IGJlIHNldCB0bworICAgICAqICBTRU5TT1JfUEVSTUlTU0lPTl9CT0RZX1NFTlNPUlMuCisgICAgICoKKyAgICAgKiAgQm90aCB3YWtlLXVwIGFuZCBub24gd2FrZS11cCB2ZXJzaW9ucyBhcmUgdXNlZnVsLgorICAgICAqLworICAgIEhFQVJUX1JBVEUgICAgICAgICAgICAgICAgICAgICAgPSAyMSwKKworICAgIC8qKgorICAgICAqIFdBS0VfVVBfVElMVF9ERVRFQ1RPUgorICAgICAqIHJlcG9ydGluZy1tb2RlOiBzcGVjaWFsIChzZXREZWxheSBoYXMgbm8gaW1wYWN0KQorICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIGdlbmVyYXRlcyBhbiBldmVudCBlYWNoIHRpbWUgYSB0aWx0IGV2ZW50IGlzCisgICAgICogZGV0ZWN0ZWQuIEEgdGlsdCBldmVudCBtdXN0IGJlIGdlbmVyYXRlZCBpZiB0aGUgZGlyZWN0aW9uIG9mIHRoZQorICAgICAqIDItc2Vjb25kcyB3aW5kb3cgYXZlcmFnZSBncmF2aXR5IGNoYW5nZWQgYnkgYXQgbGVhc3QgMzUgZGVncmVlcyBzaW5jZSB0aGUKKyAgICAgKiBhY3RpdmF0aW9uIG9yIHRoZSBsYXN0IHRyaWdnZXIgb2YgdGhlIHNlbnNvci4KKyAgICAgKgorICAgICAqICByZWZlcmVuY2VfZXN0aW1hdGVkX2dyYXZpdHkgPSBhdmVyYWdlIG9mIGFjY2VsZXJvbWV0ZXIgbWVhc3VyZW1lbnRzIG92ZXIKKyAgICAgKiAgdGhlIGZpcnN0IDEgc2Vjb25kIGFmdGVyIGFjdGl2YXRpb24gb3IgdGhlIGVzdGltYXRlZCBncmF2aXR5IGF0IHRoZSBsYXN0CisgICAgICogIHRyaWdnZXIuCisgICAgICoKKyAgICAgKiAgY3VycmVudF9lc3RpbWF0ZWRfZ3Jhdml0eSA9IGF2ZXJhZ2Ugb2YgYWNjZWxlcm9tZXRlciBtZWFzdXJlbWVudHMgb3ZlcgorICAgICAqICB0aGUgbGFzdCAyIHNlY29uZHMuCisgICAgICoKKyAgICAgKiAgdHJpZ2dlciB3aGVuCisgICAgICogICAgIGFuZ2xlKHJlZmVyZW5jZV9lc3RpbWF0ZWRfZ3Jhdml0eSwgY3VycmVudF9lc3RpbWF0ZWRfZ3Jhdml0eSkKKyAgICAgKiAgICAgICA+IDM1IGRlZ3JlZXMKKyAgICAgKgorICAgICAqIExhcmdlIGFjY2VsZXJhdGlvbnMgd2l0aG91dCBhIGNoYW5nZSBpbiBwaG9uZSBvcmllbnRhdGlvbiBtdXN0IG5vdAorICAgICAqIHRyaWdnZXIgYSB0aWx0IGV2ZW50LgorICAgICAqIEZvciBleGFtcGxlLCBhIHNoYXJwIHR1cm4gb3Igc3Ryb25nIGFjY2VsZXJhdGlvbiB3aGlsZSBkcml2aW5nIGEgY2FyCisgICAgICogbXVzdCBub3QgdHJpZ2dlciBhIHRpbHQgZXZlbnQsIGV2ZW4gdGhvdWdoIHRoZSBhbmdsZSBvZiB0aGUgYXZlcmFnZQorICAgICAqIGFjY2VsZXJhdGlvbiBtaWdodCB2YXJ5IGJ5IG1vcmUgdGhhbiAzNSBkZWdyZWVzLgorICAgICAqCisgICAgICogVHlwaWNhbGx5LCB0aGlzIHNlbnNvciBpcyBpbXBsZW1lbnRlZCB3aXRoIHRoZSBoZWxwIG9mIG9ubHkgYW4KKyAgICAgKiBhY2NlbGVyb21ldGVyLiBPdGhlciBzZW5zb3JzIGNhbiBiZSB1c2VkIGFzIHdlbGwgaWYgdGhleSBkbyBub3QgaW5jcmVhc2UKKyAgICAgKiB0aGUgcG93ZXIgY29uc3VtcHRpb24gc2lnbmlmaWNhbnRseS4gVGhpcyBpcyBhIGxvdyBwb3dlciBzZW5zb3IgdGhhdAorICAgICAqIG11c3QgYWxsb3cgdGhlIEFQIHRvIGdvIGludG8gc3VzcGVuZCBtb2RlLiBEbyBub3QgZW11bGF0ZSB0aGlzIHNlbnNvcgorICAgICAqIGluIHRoZSBIQUwuCisgICAgICogTGlrZSBvdGhlciB3YWtlIHVwIHNlbnNvcnMsIHRoZSBkcml2ZXIgaXMgZXhwZWN0ZWQgdG8gYSBob2xkIGEgd2FrZV9sb2NrCisgICAgICogd2l0aCBhIHRpbWVvdXQgb2YgMjAwIG1zIHdoaWxlIHJlcG9ydGluZyB0aGlzIGV2ZW50LiBUaGUgb25seSBhbGxvd2VkCisgICAgICogcmV0dXJuIHZhbHVlIGlzIDEuMC4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCBvbmx5IHRoZSB3YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IuCisgICAgICovCisgICAgVElMVF9ERVRFQ1RPUiAgICAgICAgICAgICAgICAgICA9IDIyLAorCisgICAgLyoqCisgICAgICogV0FLRV9HRVNUVVJFCisgICAgICogcmVwb3J0aW5nLW1vZGU6IG9uZS1zaG90CisgICAgICoKKyAgICAgKiBBIHNlbnNvciBlbmFibGluZyB3YWtpbmcgdXAgdGhlIGRldmljZSBiYXNlZCBvbiBhIGRldmljZSBzcGVjaWZpYyBtb3Rpb24uCisgICAgICoKKyAgICAgKiBXaGVuIHRoaXMgc2Vuc29yIHRyaWdnZXJzLCB0aGUgZGV2aWNlIGJlaGF2ZXMgYXMgaWYgdGhlIHBvd2VyIGJ1dHRvbiB3YXMKKyAgICAgKiBwcmVzc2VkLCB0dXJuaW5nIHRoZSBzY3JlZW4gb24uIFRoaXMgYmVoYXZpb3IgKHR1cm5pbmcgb24gdGhlIHNjcmVlbiB3aGVuCisgICAgICogdGhpcyBzZW5zb3IgdHJpZ2dlcnMpIG1pZ2h0IGJlIGRlYWN0aXZhdGVkIGJ5IHRoZSB1c2VyIGluIHRoZSBkZXZpY2UKKyAgICAgKiBzZXR0aW5ncy4gQ2hhbmdlcyBpbiBzZXR0aW5ncyBkbyBub3QgaW1wYWN0IHRoZSBiZWhhdmlvciBvZiB0aGUgc2Vuc29yOgorICAgICAqIG9ubHkgd2hldGhlciB0aGUgZnJhbWV3b3JrIHR1cm5zIHRoZSBzY3JlZW4gb24gd2hlbiBpdCB0cmlnZ2Vycy4KKyAgICAgKgorICAgICAqIFRoZSBhY3R1YWwgZ2VzdHVyZSB0byBiZSBkZXRlY3RlZCBpcyBub3Qgc3BlY2lmaWVkLCBhbmQgY2FuIGJlIGNob3NlbiBieQorICAgICAqIHRoZSBtYW51ZmFjdHVyZXIgb2YgdGhlIGRldmljZS4KKyAgICAgKiBUaGlzIHNlbnNvciBtdXN0IGJlIGxvdyBwb3dlciwgYXMgaXQgaXMgbGlrZWx5IHRvIGJlIGFjdGl2YXRlZCAyNC83LgorICAgICAqIFRoZSBvbmx5IGFsbG93ZWQgdmFsdWUgdG8gcmV0dXJuIGlzIDEuMC4KKyAgICAgKgorICAgICAqIEltcGxlbWVudCBvbmx5IHRoZSB3YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IuCisgICAgICovCisgICAgV0FLRV9HRVNUVVJFICAgICAgICAgICAgICAgICAgICA9IDIzLAorCisgICAgLyoqCisgICAgICogR0xBTkNFX0dFU1RVUkUKKyAgICAgKiByZXBvcnRpbmctbW9kZTogb25lLXNob3QKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIGVuYWJsaW5nIGJyaWVmbHkgdHVybmluZyB0aGUgc2NyZWVuIG9uIHRvIGVuYWJsZSB0aGUgdXNlciB0bworICAgICAqIGdsYW5jZSBjb250ZW50IG9uIHNjcmVlbiBiYXNlZCBvbiBhIHNwZWNpZmljIG1vdGlvbi4gIFRoZSBkZXZpY2UgbXVzdAorICAgICAqIHR1cm4gdGhlIHNjcmVlbiBvZmYgYWZ0ZXIgYSBmZXcgbW9tZW50cy4KKyAgICAgKgorICAgICAqIFdoZW4gdGhpcyBzZW5zb3IgdHJpZ2dlcnMsIHRoZSBkZXZpY2UgdHVybnMgdGhlIHNjcmVlbiBvbiBtb21lbnRhcmlseQorICAgICAqIHRvIGFsbG93IHRoZSB1c2VyIHRvIGdsYW5jZSBub3RpZmljYXRpb25zIG9yIG90aGVyIGNvbnRlbnQgd2hpbGUgdGhlCisgICAgICogZGV2aWNlIHJlbWFpbnMgbG9ja2VkIGluIGEgbm9uLWludGVyYWN0aXZlIHN0YXRlIChkb3ppbmcpLiBUaGlzIGJlaGF2aW9yCisgICAgICogKGJyaWVmbHkgdHVybmluZyBvbiB0aGUgc2NyZWVuIHdoZW4gdGhpcyBzZW5zb3IgdHJpZ2dlcnMpIG1pZ2h0IGJlCisgICAgICogZGVhY3RpdmF0ZWQgYnkgdGhlIHVzZXIgaW4gdGhlIGRldmljZSBzZXR0aW5ncy4KKyAgICAgKiBDaGFuZ2VzIGluIHNldHRpbmdzIGRvIG5vdCBpbXBhY3QgdGhlIGJlaGF2aW9yIG9mIHRoZSBzZW5zb3I6IG9ubHkKKyAgICAgKiB3aGV0aGVyIHRoZSBmcmFtZXdvcmsgYnJpZWZseSB0dXJucyB0aGUgc2NyZWVuIG9uIHdoZW4gaXQgdHJpZ2dlcnMuCisgICAgICoKKyAgICAgKiBUaGUgYWN0dWFsIGdlc3R1cmUgdG8gYmUgZGV0ZWN0ZWQgaXMgbm90IHNwZWNpZmllZCwgYW5kIGNhbiBiZSBjaG9zZW4gYnkKKyAgICAgKiB0aGUgbWFudWZhY3R1cmVyIG9mIHRoZSBkZXZpY2UuCisgICAgICogVGhpcyBzZW5zb3IgbXVzdCBiZSBsb3cgcG93ZXIsIGFzIGl0IGlzIGxpa2VseSB0byBiZSBhY3RpdmF0ZWQgMjQvNy4KKyAgICAgKiBUaGUgb25seSBhbGxvd2VkIHZhbHVlIHRvIHJldHVybiBpcyAxLjAuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgb25seSB0aGUgd2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yLgorICAgICAqLworICAgIEdMQU5DRV9HRVNUVVJFICAgICAgICAgICAgICAgICAgPSAyNCwKKworICAgIC8qKgorICAgICAqIFBJQ0tfVVBfR0VTVFVSRQorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbmUtc2hvdAorICAgICAqCisgICAgICogQSBzZW5zb3Igb2YgdGhpcyB0eXBlIHRyaWdnZXJzIHdoZW4gdGhlIGRldmljZSBpcyBwaWNrZWQgdXAgcmVnYXJkbGVzcyBvZgorICAgICAqIHdoZXJldmVyIGlzIHdhcyBiZWZvcmUgKGRlc2ssIHBvY2tldCwgYmFnKS4gVGhlIG9ubHkgYWxsb3dlZCByZXR1cm4gdmFsdWUKKyAgICAgKiBpcyAxLjAuIFRoaXMgc2Vuc29yIGRlLWFjdGl2YXRlcyBpdHNlbGYgaW1tZWRpYXRlbHkgYWZ0ZXIgaXQgdHJpZ2dlcnMuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgb25seSB0aGUgd2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yLgorICAgICAqLworICAgIFBJQ0tfVVBfR0VTVFVSRSAgICAgICAgICAgICAgICAgPSAyNSwKKworICAgIC8qKgorICAgICAqIFdSSVNUX1RJTFRfR0VTVFVSRQorICAgICAqIHRyaWdnZXItbW9kZTogc3BlY2lhbAorICAgICAqIHdha2UtdXAgc2Vuc29yOiB5ZXMKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSB0cmlnZ2VycyBhbiBldmVudCBlYWNoIHRpbWUgYSB0aWx0IG9mIHRoZQorICAgICAqIHdyaXN0LXdvcm4gZGV2aWNlIGlzIGRldGVjdGVkLgorICAgICAqCisgICAgICogVGhpcyBzZW5zb3IgbXVzdCBiZSBsb3cgcG93ZXIsIGFzIGl0IGlzIGxpa2VseSB0byBiZSBhY3RpdmF0ZWQgMjQvNy4KKyAgICAgKiBUaGUgb25seSBhbGxvd2VkIHZhbHVlIHRvIHJldHVybiBpcyAxLjAuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgb25seSB0aGUgd2FrZS11cCB2ZXJzaW9uIG9mIHRoaXMgc2Vuc29yLgorICAgICAqLworICAgIFdSSVNUX1RJTFRfR0VTVFVSRSAgICAgICAgICAgICAgPSAyNiwKKworICAgIC8qKgorICAgICAqIERFVklDRV9PUklFTlRBVElPTgorICAgICAqIHJlcG9ydGluZy1tb2RlOiBvbi1jaGFuZ2UKKyAgICAgKgorICAgICAqIFRoZSBjdXJyZW50IG9yaWVudGF0aW9uIG9mIHRoZSBkZXZpY2UuIFRoZSB2YWx1ZSBpcyByZXBvcnRlZCBpbgorICAgICAqIHRoZSAic2NhbGFyIiBlbGVtZW50IG9mIHRoZSBFdmVudFBheWxvYWQgaW4gRXZlbnQuIFRoZQorICAgICAqIG9ubHkgdmFsdWVzIHRoYXQgY2FuIGJlIHJlcG9ydGVkIGFyZSAocGxlYXNlIHJlZmVyIHRvIEFuZHJvaWQgU2Vuc29yCisgICAgICogQ29vcmRpbmF0ZSBTeXN0ZW0gdG8gdW5kZXJzdGFuZCB0aGUgWCBhbmQgWSBheGlzIGRpcmVjdGlvbiB3aXRoIHJlc3BlY3QKKyAgICAgKiB0byBkZWZhdWx0IG9yaWVudGF0aW9uKToKKyAgICAgKiAgLSAwOiBkZXZpY2UgaXMgaW4gZGVmYXVsdCBvcmllbnRhdGlvbiAoWSBheGlzIGlzIHZlcnRpY2FsIGFuZCBwb2ludHMgdXApCisgICAgICogIC0gMTogZGV2aWNlIGlzIHJvdGF0ZWQgOTAgZGVncmVlcyBjb3VudGVyLWNsb2Nrd2lzZSBmcm9tIGRlZmF1bHQKKyAgICAgKiAgICAgICBvcmllbnRhdGlvbiAoWCBheGlzIGlzIHZlcnRpY2FsIGFuZCBwb2ludHMgdXApCisgICAgICogIC0gMjogZGV2aWNlIGlzIHJvdGF0ZWQgMTgwIGRlZ3JlZXMgZnJvbSBkZWZhdWx0IG9yaWVudGF0aW9uIChZIGF4aXMgaXMKKyAgICAgKiAgICAgICB2ZXJ0aWNhbCBhbmQgcG9pbnRzIGRvd24pCisgICAgICogIC0gMzogZGV2aWNlIGlzIHJvdGF0ZWQgOTAgZGVncmVlcyBjbG9ja3dpc2UgZnJvbSBkZWZhdWx0IG9yaWVudGF0aW9uCisgICAgICogICAgICAgKFggYXhpcyBpcyB2ZXJ0aWNhbCBhbmQgcG9pbnRzIGRvd24pCisgICAgICoKKyAgICAgKiBNb3ZpbmcgdGhlIGRldmljZSB0byBhbiBvcmllbnRhdGlvbiB3aGVyZSB0aGUgWiBheGlzIGlzIHZlcnRpY2FsIChlaXRoZXIKKyAgICAgKiB1cCBvciBkb3duKSBtdXN0IG5vdCBjYXVzZSBhIG5ldyBldmVudCB0byBiZSByZXBvcnRlZC4KKyAgICAgKgorICAgICAqIFRvIGltcHJvdmUgdGhlIHVzZXIgZXhwZXJpZW5jZSBvZiB0aGlzIHNlbnNvciwgaXQgaXMgcmVjb21tZW5kZWQgdG8KKyAgICAgKiBpbXBsZW1lbnQgc29tZSBwaHlzaWNhbCAoaS5lLiwgcm90YXRpb24gYW5nbGUpIGFuZCB0ZW1wb3JhbCAoaS5lLiwgZGVsYXkpCisgICAgICogaHlzdGVyZXNpcy4gSW4gb3RoZXIgd29yZHMsIG1pbm9yIG9yIHRyYW5zaWVudCByb3RhdGlvbnMgbXVzdCBub3QgY2F1c2UKKyAgICAgKiBhIG5ldyBldmVudCB0byBiZSByZXBvcnRlZC4KKyAgICAgKgorICAgICAqIFRoaXMgaXMgYSBsb3cgcG93ZXIgc2Vuc29yIHRoYXQgaW50ZW5kZWQgdG8gcmVkdWNlIGludGVycnVwdHMgb2YKKyAgICAgKiBhcHBsaWNhdGlvbiBwcm9jZXNzb3IgYW5kIHRodXMgYWxsb3cgaXQgdG8gZ28gc2xlZXAuIFVzZSBoYXJkd2FyZQorICAgICAqIGltcGxlbWVudGF0aW9uIGJhc2VkIG9uIGxvdyBwb3dlciBjb25zdW1wdGlvbiBzZW5zb3JzLCBzdWNoIGFzCisgICAgICogYWNjZWxlcm9tZXRlci4gRGV2aWNlIG11c3Qgbm90IGVtdWxhdGUgdGhpcyBzZW5zb3IgaW4gdGhlIEhBTC4KKyAgICAgKgorICAgICAqIEJvdGggd2FrZS11cCBhbmQgbm9uIHdha2UtdXAgdmVyc2lvbnMgYXJlIHVzZWZ1bC4KKyAgICAgKi8KKyAgICBERVZJQ0VfT1JJRU5UQVRJT04gICAgICAgICAgICAgID0gMjcsCisKKyAgICAvKioKKyAgICAgKiBQT1NFXzZET0YKKyAgICAgKiB0cmlnZ2VyLW1vZGU6IGNvbnRpbnVvdXMKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSByZXR1cm5zIHRoZSBwb3NlIG9mIHRoZSBkZXZpY2UuCisgICAgICogUG9zZSBvZiB0aGUgZGV2aWNlIGlzIGRlZmluZWQgYXMgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBkZXZpY2UgZnJvbSBhCisgICAgICogRWFydGggQ2VudGVyZWQgRWFydGggRml4ZWQgZnJhbWUgYW5kIHRoZSB0cmFuc2xhdGlvbiBmcm9tIGFuIGFyYml0cmFyeQorICAgICAqIHBvaW50IGF0IHN1YnNjcmlwdGlvbi4KKyAgICAgKgorICAgICAqIFRoaXMgc2Vuc29yIGNhbiBiZSBoaWdoIHBvd2VyLiBJdCBjYW4gdXNlIGFueSBhbmQgYWxsIG9mIHRoZSBmb2xsb3dpbmcKKyAgICAgKiAgICAgICAgICAgLiBBY2NlbGVyb21ldGVyCisgICAgICogICAgICAgICAgIC4gR3lyb3Njb3BlCisgICAgICogICAgICAgICAgIC4gQ2FtZXJhCisgICAgICogICAgICAgICAgIC4gRGVwdGggQ2FtZXJhCisgICAgICoKKyAgICAgKi8KKyAgICBQT1NFXzZET0YgICAgICAgICAgICAgICAgICAgICAgID0gMjgsCisKKyAgICAvKioKKyAgICAgKiBTVEFUSU9OQVJZX0RFVEVDVAorICAgICAqIHRyaWdnZXIgbW9kZTogb25lIHNob3QKKyAgICAgKgorICAgICAqIEEgc2Vuc29yIG9mIHRoaXMgdHlwZSByZXR1cm5zIGFuIGV2ZW50IGlmIHRoZSBkZXZpY2UgaXMgc3RpbGwvc3RhdGlvbmFyeQorICAgICAqIGZvciBhIHdoaWxlLiBUaGUgcGVyaW9kIG9mIHRpbWUgdG8gbW9uaXRvciBmb3Igc3RhdGlvbmFyaXR5IG11c3QgYmUKKyAgICAgKiBncmVhdGVyIHRoYW4gNSBzZWNvbmRzLiBUaGUgbGF0ZW5jeSBtdXN0IGJlIGxlc3MgdGhhbiAxMCBzZWNvbmRzLgorICAgICAqCisgICAgICogU3RhdGlvbmFyaXR5IGhlcmUgcmVmZXJzIHRvIGFic29sdXRlIHN0YXRpb25hcml0eS4gZWc6IGRldmljZSBvbiBkZXNrLgorICAgICAqCisgICAgICogVGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSB0byByZXR1cm4gaXMgMS4wLgorICAgICAqLworICAgIFNUQVRJT05BUllfREVURUNUICAgICAgICAgICAgICAgPSAyOSwKKworICAgIC8qKgorICAgICAqIE1PVElPTl9ERVRFQ1QKKyAgICAgKiB0cmlnZ2VyIG1vZGU6IG9uZSBzaG90CisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgcmV0dXJucyBhbiBldmVudCBpZiB0aGUgZGV2aWNlIGlzIG5vdCBzdGlsbCBmb3IKKyAgICAgKiBmb3IgYSB3aGlsZS4gVGhlIHBlcmlvZCBvZiB0aW1lIHRvIG1vbml0b3IgZm9yIHN0YXRpb25hcml0eSBtdXN0IGJlCisgICAgICogZ3JlYXRlciB0aGFuIDUgc2Vjb25kcy4gVGhlIGxhdGVuY3kgbXVzdCBiZSBsZXNzIHRoYW4gMTAgc2Vjb25kcy4KKyAgICAgKgorICAgICAqIE1vdGlvbiBoZXJlIHJlZmVycyB0byBhbnkgbWVjaGFuaXNtIGluIHdoaWNoIHRoZSBkZXZpY2UgaXMgY2F1c2VzIHRvIGJlCisgICAgICogbW92ZWQgaW4gaXRzIGluZXJ0aWFsIGZyYW1lLiBlZzogUGlja2luIHVwIHRoZSBkZXZpY2UgYW5kIHdhbGtpbmcgd2l0aCBpdAorICAgICAqIHRvIGEgbmVhcmJ5IHJvb20gbWF5IHRyaWdnZXIgbW90aW9uIHdoZXJld2FzIGtlZXBpbmcgdGhlIGRldmljZSBvbiBhCisgICAgICogdGFibGUgb24gYSBzbW9vdGggdHJhaW4gbW92aW5nIGF0IGNvbnN0YW50IHZlbG9jaXR5IG1heSBub3QgdHJpZ2dlcgorICAgICAqIG1vdGlvbi4KKyAgICAgKgorICAgICAqIFRoZSBvbmx5IGFsbG93ZWQgdmFsdWUgdG8gcmV0dXJuIGlzIDEuMC4KKyAgICAgKi8KKyAgICBNT1RJT05fREVURUNUICAgICAgICAgICAgICAgICAgID0gMzAsCisKKyAgICAvKioKKyAgICAgKiBIRUFSVF9CRUFUCisgICAgICogdHJpZ2dlciBtb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgcmV0dXJucyBhbiBldmVudCBldmVyeXRpbWUgYSBoZWFyIGJlYXQgcGVhayBpcworICAgICAqIGRldGVjdGVkLgorICAgICAqCisgICAgICogUGVhayBoZXJlIGlkZWFsbHkgY29ycmVzcG9uZHMgdG8gdGhlIHBvc2l0aXZlIHBlYWsgaW4gdGhlIFFSUyBjb21wbGV4IG9mCisgICAgICogYW5kIEVDRyBzaWduYWwuCisgICAgICoKKyAgICAgKiBUaGUgc2Vuc29yIGlzIG5vdCBleHBlY3RlZCB0byBiZSBvcHRpbWl6ZWQgZm9yIGxhdGVuY3kuIEFzIGEgZ3VpZGUsIGEKKyAgICAgKiBsYXRlbmN5IG9mIHVwIHRvIDEwIHNlY29uZHMgaXMgYWNjZXB0YWJsZS4gSG93ZXZlciwgdGhlIHRpbWVzdGFtcCBhdHRhY2hlZAorICAgICAqIHRvIHRoZSBldmVudCBtdXN0IGJlIGFjY3VyYXRseSBjb3JyZXNwb25kIHRvIHRoZSB0aW1lIHRoZSBwZWFrIG9jY3VyZWQuCisgICAgICoKKyAgICAgKiBUaGUgc2Vuc29yIGV2ZW50IGNvbnRhaW5zIGEgcGFyYW1ldGVyIGZvciB0aGUgY29uZmlkZW5jZSBpbiB0aGUgZGV0ZWN0aW9uCisgICAgICogb2YgdGhlIHBlYWsgd2hlcmUgMC4wIHJlcHJlc2VudCBubyBpbmZvcm1hdGlvbiBhdCBhbGwsIGFuZCAxLjAgcmVwcmVzZW50cworICAgICAqIGNlcnRhaW50eS4KKyAgICAgKi8KKyAgICBIRUFSVF9CRUFUICAgICAgICAgICAgICAgICAgICAgID0gMzEsCisKKyAgICAvKioKKyAgICAgKiBEWU5BTUlDX1NFTlNPUl9NRVRBCisgICAgICogdHJpZ2dlci1tb2RlOiBzcGVjaWFsCisgICAgICogd2FrZS11cCBzZW5zb3I6IHllcworICAgICAqCisgICAgICogQSBzZW5zb3IgZXZlbnQgb2YgdGhpcyB0eXBlIGlzIHJlY2VpdmVkIHdoZW4gYSBkeW5hbWljIHNlbnNvciBpcyBhZGRlZCB0bworICAgICAqIG9yIHJlbW92ZWQgZnJvbSB0aGUgc3lzdGVtLiBBdCBtb3N0IG9uZSBzZW5zb3Igb2YgdGhpcyB0eXBlIGNhbiBiZQorICAgICAqIHByZXNlbnQgaW4gb25lIHNlbnNvciBIQUwgaW1wbGVtZW50YXRpb24gYW5kIHByZXNlbmNlIG9mIGEgc2Vuc29yIG9mIHRoaXMKKyAgICAgKiB0eXBlIGluIHNlbnNvciBIQUwgaW1wbGVtZW50YXRpb24gaW5kaWNhdGVzIHRoYXQgdGhpcyBzZW5zb3IgSEFMIHN1cHBvcnRzCisgICAgICogZHluYW1pYyBzZW5zb3IgZmVhdHVyZS4gT3BlcmF0aW9ucywgc3VjaCBhcyBiYXRjaCwgYWN0aXZhdGUgYW5kIHNldERlbGF5LAorICAgICAqIHRvIHRoaXMgc3BlY2lhbCBwdXJwb3NlIHNlbnNvciBtdXN0IGJlIHRyZWF0ZWQgYXMgbm8tb3AgYW5kIHJldHVybgorICAgICAqIHN1Y2Nlc3NmdWw7IGZsdXNoKCkgYWxzbyBoYXMgdG8gZ2VuZXJhdGUgZmx1c2ggY29tcGxldGUgZXZlbnQgYXMgaWYgdGhpcworICAgICAqIGlzIGEgc2Vuc29yIHRoYXQgZG9lcyBub3Qgc3VwcG9ydCBiYXRjaGluZy4KKyAgICAgKgorICAgICAqIEEgZHluYW1pYyBzZW5zb3IgY29ubmVjdGlvbiBpbmRpY2F0ZXMgY29ubmVjdGlvbiBvZiBhIHBoeXNpY2FsIGRldmljZSBvcgorICAgICAqIGluc3RhbnRpYXRpb24gb2YgYSB2aXJ0dWFsIHNlbnNvciBiYWNrZWQgYnkgYWxnb3JpdGhtOyBhbmQgYSBkeW5hbWljCisgICAgICogc2Vuc29yIGRpc2Nvbm5lY3Rpb24gaW5kaWNhdGVzIHRoZSB0aGUgb3Bwb3NpdGUuIEEgc2Vuc29yIGV2ZW50IG9mCisgICAgICogRFlOQU1JQ19TRU5TT1JfTUVUQSB0eXBlIHNob3VsZCBiZSBkZWxpdmVyZWQgcmVnYXJkbGVzcyBvZgorICAgICAqIHRoZSBhY3RpdmF0aW9uIHN0YXR1cyBvZiB0aGUgc2Vuc29yIGluIHRoZSBldmVudCBvZiBkeW5hbWljIHNlbnNvcgorICAgICAqIGNvbm5lY3Rpb24gYW5kIGRpc2Nvbm5lY3Rpb24uIEluIHRoZSBzZW5zb3IgZXZlbnQsIGJlc2lkZXMgdGhlIGNvbW1vbgorICAgICAqIGRhdGEgZW50cmllcywgImR5bmFtaWNfc2Vuc29yX21ldGEiLCB3aGljaCBpbmNsdWRlcyBmaWVsZHMgZm9yIGNvbm5lY3Rpb24KKyAgICAgKiBzdGF0dXMsIGhhbmRsZSBvZiB0aGUgc2Vuc29yIGludm9sdmVkLCBwb2ludGVyIHRvIHNlbnNvcl90IHN0cnVjdHVyZSBhbmQKKyAgICAgKiBhIHV1aWQgZmllbGQsIG11c3QgYmUgcG9wdWxhdGVkLgorICAgICAqCisgICAgICogQXQgYSBkeW5hbWljIHNlbnNvciBjb25uZWN0aW9uIGV2ZW50LCBmaWVsZHMgb2Ygc2Vuc29yX3Qgc3RydWN0dXJlCisgICAgICogcmVmZXJlbmNlZCBieSBhIHBvaW50ZXIgaW4gZHluYW1pY19zZW5zb3JfbWV0YSBtdXN0IGJlIGZpbGxlZCBhcyBpZiBpdAorICAgICAqIHdhcyByZWd1bGFyIHNlbnNvcnMuIFNlbnNvciBIQUwgaXMgcmVzcG9uc2libGUgZm9yIHJlY292ZXJ5IG9mIG1lbW9yeSBpZgorICAgICAqIHRoZSBjb3JyZXNwb25kaW5nIGRhdGEgaXMgZHluYW1pY2lhbGx5IGFsbG9jYXRlZC4gSG93ZXZlciwgdGhlIHRoZQorICAgICAqIHBvaW50ZXIgbXVzdCBiZSB2YWxpZCB1bnRpbCB0aGUgZmlyc3QgYWN0aXZhdGUgY2FsbCB0byB0aGUgc2Vuc29yCisgICAgICogcmVwb3J0ZWQgaW4gdGhpcyBjb25uZWN0aW9uIGV2ZW50LiBBdCBhIGR5bmFtaWMgc2Vuc29yIGRpc2Nvbm5lY3Rpb24sCisgICAgICogdGhlIHNlbnNvcl90IHBvaW50ZXIgbXVzdCBiZSBOVUxMLgorICAgICAqCisgICAgICogVGhlIHNlbnNvciBoYW5kbGUgYXNzaWduZWQgdG8gZHluYW1pYyBzZW5zb3JzIG11c3QgbmV2ZXIgYmUgdGhlIHNhbWUgYXMKKyAgICAgKiB0aGF0IG9mIGFueSByZWd1bGFyIHN0YXRpYyBzZW5zb3JzLCBhbmQgbXVzdCBiZSB1bmlxdWUgdW50aWwgbmV4dCBib290LgorICAgICAqIEluIGFub3RoZXIgd29yZCwgaWYgYSBoYW5kbGUgaCBpcyB1c2VkIGZvciBhIGR5bmFtaWMgc2Vuc29yIEEsIHRoYXQgc2FtZQorICAgICAqIG51bWJlciBjYW5ub3QgYmUgdXNlZCBmb3IgdGhlIHNhbWUgZHluYW1pYyBzZW5zb3IgQSBvciBhbm90aGVyIGR5bmFtaWMKKyAgICAgKiBzZW5zb3IgQiBldmVuIGFmdGVyIGRpc2Nvbm5lY3Rpb24gb2YgQSB1bnRpbCByZWJvb3QuCisgICAgICoKKyAgICAgKiBUaGUgVVVJRCBmaWVsZCB3aWxsIGJlIHVzZWQgZm9yIGlkZW50aWZ5aW5nIHRoZSBzZW5zb3IgaW4gYWRkaXRpb24gdG8KKyAgICAgKiBuYW1lLCB2ZW5kb3IgYW5kIHZlcnNpb24gYW5kIHR5cGUuIEZvciBwaHlzaWNhbCBzZW5zb3JzIG9mIHRoZSBzYW1lCisgICAgICogbW9kZWwsIGFsbCBzZW5zb3JzIHdpbGwgaGF2ZSB0aGUgc2FtZSB2YWx1ZXMgaW4gc2Vuc29yX3QsIGJ1dCB0aGUgVVVJRAorICAgICAqIG11c3QgYmUgdW5pcXVlIGFuZCBwZXJzaXN0ZW50IGZvciBlYWNoIGluZGl2aWR1YWwgdW5pdC4gQW4gYWxsIHplcm8KKyAgICAgKiBVVUlEIGluZGljYXRlcyBpdCBpcyBub3QgcG9zc2libGUgdG8gZGlmZmVyZW50aWF0ZSBpbmRpdmlkdWFsIHNlbnNvcgorICAgICAqIHVuaXQuCisgICAgICoKKyAgICAgKi8KKyAgICBEWU5BTUlDX1NFTlNPUl9NRVRBICAgICAgICAgICAgID0gMzIsCisKKyAgICAvKioKKyAgICAgKiBBRERJVElPTkFMX0lORk8KKyAgICAgKiByZXBvcnRpbmctbW9kZTogTi9BCisgICAgICoKKyAgICAgKiBUaGlzIHNlbnNvciB0eXBlIGlzIGZvciBkZWxpdmVyaW5nIGFkZGl0aW9uYWwgc2Vuc29yIGluZm9ybWF0aW9uIGFzaWRlCisgICAgICogZnJvbSBzZW5zb3IgZXZlbnQgZGF0YS4KKyAgICAgKiBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG1heSBpbmNsdWRlIHNlbnNvciBmcm9udC1lbmQgZ3JvdXAgZGVsYXksIGludGVybmFsCisgICAgICogY2FsaWJyYXRpb24gcGFyYW1ldGVycywgbm9pc2UgbGV2ZWwgbWV0cmljcywgZGV2aWNlIGludGVybmFsIHRlbXBlcmF0dXJlLAorICAgICAqIGV0Yy4KKyAgICAgKgorICAgICAqIFRoaXMgdHlwZSB3aWxsIG5ldmVyIGJpbmQgdG8gYSBzZW5zb3IuIEluIG90aGVyIHdvcmRzLCBubyBzZW5zb3IgaW4gdGhlCisgICAgICogc2Vuc29yIGxpc3QgY2FuIGhhdmUgdGhlIHR5cGUgU0VOU09SX1RZUEVfQURESVRJT05BTF9JTkZPLiBJZiBhCisgICAgICogc2Vuc29yIEhBTCBzdXBwb3J0cyBzZW5zb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBmZWF0dXJlLCBpdCByZXBvcnRzCisgICAgICogc2Vuc29yX2V2ZW50X3Qgd2l0aCAic2Vuc29yIiBmaWVsZCBzZXQgdG8gaGFuZGxlIG9mIHRoZSByZXBvcnRpbmcgc2Vuc29yCisgICAgICogYW5kICJ0eXBlIiBmaWVsZCBzZXQgdG8gQURESVRJT05BTF9JTkZPLiBEZWxpdmVyeSBvZgorICAgICAqIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZXZlbnRzIGlzIHRyaWdnZXJlZCB1bmRlciB0d28gY29uZGl0aW9uczogYW4KKyAgICAgKiBlbmFibGUgYWN0aXZhdGUoKSBjYWxsIG9yIGEgZmx1c2goKSBjYWxsIHRvIHRoZSBjb3JyZXNwb25kaW5nIHNlbnNvci4KKyAgICAgKiBCZXNpZGVzLCB0aW1lIHZhcnlpbmcgcGFyYW1ldGVycyBjYW4gdXBkYXRlIGluZnJlcXVlbnRseSB3aXRob3V0IGJlaW5nCisgICAgICogdHJpZ2dlcmVkLiBEZXZpY2UgaXMgcmVzcG9uc2libGUgdG8gY29udHJvbCB1cGRhdGUgcmF0ZS4gVGhlIHJlY29tbWVuZAorICAgICAqIHVwZGF0ZSByYXRlIGlzIGxlc3MgdGhhbiAxLzEwMDAgb2Ygc2Vuc29yIGV2ZW50IHJhdGUgb3IgbGVzcyB0aGFuIG9uY2UKKyAgICAgKiBwZXIgbWludXRlIGluIGF2ZXJhZ2UuCisgICAgICoKKyAgICAgKiBBIHNpbmdsZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlcG9ydCBjb25zaXN0cyBvZiBtdWx0aXBsZSBmcmFtZXMuCisgICAgICogU2VxdWVuY2VzIG9mIHRoZXNlIGZyYW1lcyBhcmUgb3JkZXJlZCB1c2luZyB0aW1lc3RhbXBzLCB3aGljaCBtZWFucyB0aGUKKyAgICAgKiB0aW1lc3RhbXBzIG9mIHNlcXVlbnRpYWwgZnJhbWVzIGhhdmUgdG8gYmUgYXQgbGVhc3QgMSBuYW5vc2Vjb25kIGFwYXJ0CisgICAgICogZnJvbSBlYWNoIG90aGVyLiBFYWNoIGZyYW1lIGlzIGEgc2Vuc29yX2V2ZW50X3QgZGVsaXZlcmVkIHRocm91Z2ggdGhlIEhBTAorICAgICAqIGludGVyZmFjZSwgd2l0aCByZWxhdGVkIGRhdGEgc3RvcmVkIGluIHRoZSAiYWRkaXRpb25hbF9pbmZvIiBmaWVsZCwgd2hpY2gKKyAgICAgKiBpcyBvZiB0eXBlIGFkZGl0aW9uYWxfaW5mb19ldmVudF90LgorICAgICAqIFRoZSAidHlwZSIgZmllbGQgb2YgYWRkaXRpb25hbF9pbmZvX2V2ZW50X3QgZGVub3RlcyB0aGUgbmF0dXJlIG9mIHRoZQorICAgICAqIHBheWxvYWQgZGF0YSAoc2VlIGFkZGl0aW9uYWxfaW5mb190eXBlX3QpLgorICAgICAqIFRoZSAic2VyaWFsIiBmaWVsZCBpcyB1c2VkIHRvIGtlZXAgdGhlIHNlcXVlbmNlIG9mIHBheWxvYWQgZGF0YSB0aGF0CisgICAgICogc3BhbnMgbXVsdGlwbGUgZnJhbWVzLiBUaGUgZmlyc3QgZnJhbWUgb2YgdGhlIGVudGlyZSByZXBvcnQgaXMgYWx3YXlzIG9mCisgICAgICogdHlwZSBBSU5GT19CRUdJTiwgYW5kIHRoZSBsYXN0IGZyYW1lIGlzIGFsd2F5cyBBSU5GT19FTkQuCisgICAgICoKKyAgICAgKiBJZiBmbHVzaCgpIHdhcyB0cmlnZ2VyaW5nIHRoZSByZXBvcnQsIGFsbCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGZyYW1lcworICAgICAqIG11c3QgYmUgZGVsaXZlcmVkIGFmdGVyIGZsdXNoIGNvbXBsZXRlIGV2ZW50LgorICAgICAqLworICAgIEFERElUSU9OQUxfSU5GTyAgICAgICAgICAgICAgICAgPSAzMywKKworICAgIC8qKgorICAgICAqIExPV19MQVRFTkNZX09GRkJPRFlfREVURUNUCisgICAgICogdHJpZ2dlci1tb2RlOiBvbi1jaGFuZ2UKKyAgICAgKiB3YWtlLXVwIHNlbnNvcjogeWVzCisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgaXMgZGVmaW5lZCBmb3IgZGV2aWNlcyB0aGF0IGFyZSBzdXBwb3NlZCB0byBiZSB3b3JuCisgICAgICogYnkgdGhlIHVzZXIgaW4gdGhlIG5vcm1hbCB1c2UgY2FzZSAoc3VjaCBhcyBhIHdhdGNoLCB3cmlzdGJhbmQsIGV0YykgYW5kCisgICAgICogaXMgbm90IHlldCBkZWZpbmVkIGZvciBvdGhlciBkZXZpY2UuCisgICAgICoKKyAgICAgKiBBIHNlbnNvciBvZiB0aGlzIHR5cGUgdHJpZ2dlcnMgYW4gZXZlbnQgZWFjaCB0aW1lIHRoZSB3ZWFyYWJsZSBkZXZpY2UKKyAgICAgKiBpcyByZW1vdmVkIGZyb20gdGhlIGJvZHkgYW5kIGVhY2ggdGltZSBpdCdzIHB1dCBiYWNrIG9udG8gdGhlIGJvZHkuCisgICAgICogSXQgbXVzdCBiZSBsb3ctbGF0ZW5jeSBhbmQgYmUgYWJsZSB0byBkZXRlY3QgdGhlIG9uLWJvZHkgdG8gb2ZmLWJvZHkKKyAgICAgKiB0cmFuc2l0aW9uIHdpdGhpbiBvbmUgc2Vjb25kIChldmVudCBkZWxpdmVyeSB0aW1lIGluY2x1ZGVkKSwKKyAgICAgKiBhbmQgMy1zZWNvbmQgbGF0ZW5jeSB0byBkZXRlcm1pbmUgdGhlIG9mZi1ib2R5IHRvIG9uLWJvZHkgdHJhbnNpdGlvbgorICAgICAqIChldmVudCBkZWxpdmVyeSB0aW1lIGluY2x1ZGVkKS4KKyAgICAgKgorICAgICAqIFRoZXJlIGFyZSBvbmx5IHR3byB2YWxpZCBldmVudCB2YWx1ZXMgZm9yIHRoZSBzZW5zb3IgdG8gcmV0dXJuIDoKKyAgICAgKiAgICAwLjAgZm9yIG9mZi1ib2R5CisgICAgICogICAgMS4wIGZvciBvbi1ib2R5CisgICAgICoKKyAgICAgKi8KKyAgICBMT1dfTEFURU5DWV9PRkZCT0RZX0RFVEVDVCAgICAgID0gMzQsCisKKyAgICAvKioKKyAgICAgKiBBQ0NFTEVST01FVEVSX1VOQ0FMSUJSQVRFRAorICAgICAqIHJlcG9ydGluZy1tb2RlOiBjb250aW51b3VzCisgICAgICoKKyAgICAgKiBBbGwgdmFsdWVzIGFyZSBpbiBTSSB1bml0cyAobS9zXjIpIGFuZCBtZWFzdXJlIHRoZSBhY2NlbGVyYXRpb24gb2YgdGhlCisgICAgICogZGV2aWNlIG1pbnVzIHRoZSBhY2NlbGVyYXRpb24gZHVlIHRvIGdyYXZpdHkuCisgICAgICoKKyAgICAgKiBJbXBsZW1lbnQgdGhlIG5vbi13YWtlLXVwIHZlcnNpb24gb2YgdGhpcyBzZW5zb3IgYW5kIGltcGxlbWVudCB0aGUKKyAgICAgKiB3YWtlLXVwIHZlcnNpb24gaWYgdGhlIHN5c3RlbSBwb3NzZXNzZXMgYSB3YWtlIHVwIGZpZm8uCisgICAgICovCisgICAgQUNDRUxFUk9NRVRFUl9VTkNBTElCUkFURUQgICAgICA9IDM1LAorCisgICAgLyoqCisgICAgICogQmFzZSBmb3IgZGV2aWNlIG1hbnVmYWN0dXJlcnMgcHJpdmF0ZSBzZW5zb3IgdHlwZXMuCisgICAgICogVGhlc2Ugc2Vuc29yIHR5cGVzIGNhbid0IGJlIGV4cG9zZWQgaW4gdGhlIFNESy4KKyAgICAgKi8KKyAgICBERVZJQ0VfUFJJVkFURV9CQVNFICAgICAgICAgICAgID0gMHgxMDAwMAorfTsKKworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IlNFTlNPUl9GTEFHXyIpCitlbnVtIFNlbnNvckZsYWdCaXRzIDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIFdoZXRoZXIgdGhpcyBzZW5zb3Igd2FrZXMgdXAgdGhlIEFQIGZyb20gc3VzcGVuZCBtb2RlIHdoZW4gZGF0YSBpcworICAgICAqIGF2YWlsYWJsZS4gIFdoZW5ldmVyIHNlbnNvciBldmVudHMgYXJlIGRlbGl2ZXJlZCBmcm9tIGEgd2FrZV91cCBzZW5zb3IsCisgICAgICogdGhlIGRyaXZlciBuZWVkcyB0byBob2xkIGEgd2FrZV9sb2NrIHRpbGwgdGhlIGV2ZW50cyBhcmUgcmVhZCBieSB0aGUKKyAgICAgKiBTZW5zb3JTZXJ2aWNlIGkuZSB0aWxsIElTZW5zb3JzOjpwb2xsKCkgaXMgY2FsbGVkIHRoZSBuZXh0IHRpbWUuCisgICAgICogT25jZSBwb2xsIGlzIGNhbGxlZCBhZ2FpbiBpdCBtZWFucyBldmVudHMgaGF2ZSBiZWVuIHJlYWQgYnkgdGhlCisgICAgICogU2Vuc29yU2VydmljZSwgdGhlIGRyaXZlciBjYW4gc2FmZWx5IHJlbGVhc2UgdGhlIHdha2VfbG9jay4gU2Vuc29yU2VydmljZQorICAgICAqIHdpbGwgY29udGludWUgdG8gaG9sZCBhIHdha2VfbG9jayB0aWxsIHRoZSBhcHAgYWN0dWFsbHkgcmVhZHMgdGhlIGV2ZW50cy4KKyAgICAgKi8KKyAgICBXQUtFX1VQICAgICAgICAgICAgICAgICAgICAgPSAxLAorCisgICAgLyoqCisgICAgICogUmVwb3J0aW5nIG1vZGVzIGZvciB2YXJpb3VzIHNlbnNvcnMuIEVhY2ggc2Vuc29yIHdpbGwgaGF2ZSBleGFjdGx5IG9uZSBvZgorICAgICAqIHRoZXNlIG1vZGVzIHNldC4KKyAgICAgKiBUaGUgbGVhc3Qgc2lnbmlmaWNhbnQgMm5kLCAzcmQgYW5kIDR0aCBiaXRzIGFyZSB1c2VkIHRvIHJlcHJlc2VudCBmb3VyCisgICAgICogcG9zc2libGUgcmVwb3J0aW5nIG1vZGVzLgorICAgICAqLworICAgIENPTlRJTlVPVVNfTU9ERSAgICAgICAgICAgICA9IDAsCisgICAgT05fQ0hBTkdFX01PREUgICAgICAgICAgICAgID0gMiwKKyAgICBPTkVfU0hPVF9NT0RFICAgICAgICAgICAgICAgPSA0LAorICAgIFNQRUNJQUxfUkVQT1JUSU5HX01PREUgICAgICA9IDYsCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBmbGFnIGlmIHRoZSBzZW5zb3Igc3VwcG9ydHMgZGF0YV9pbmplY3Rpb24gbW9kZSBhbmQgYWxsb3dzIGRhdGEKKyAgICAgKiB0byBiZSBpbmplY3RlZCBmcm9tIHRoZSBTZW5zb3JTZXJ2aWNlLiBXaGVuIGluIGRhdGFfaW5qZWN0aW9uIE9OTFkKKyAgICAgKiBzZW5zb3JzIHdpdGggdGhpcyBmbGFnIHNldCBhcmUgaW5qZWN0ZWQgc2Vuc29yIGRhdGEgYW5kIG9ubHkgc2Vuc29ycyB3aXRoCisgICAgICogdGhpcyBmbGFnIHNldCBhcmUgYWN0aXZhdGVkLiBFZzogQWNjZWxlcm9tZXRlciBhbmQgU3RlcCBDb3VudGVyIHNlbnNvcnMKKyAgICAgKiBjYW4gYmUgc2V0IHdpdGggdGhpcyBmbGFnIGFuZCBTZW5zb3JTZXJ2aWNlIHdpbGwgaW5qZWN0IGFjY2VsZXJvbWV0ZXIKKyAgICAgKiBkYXRhIGFuZCByZWFkIHRoZSBjb3JyZXNwb25kaW5nIHN0ZXAgY291bnRzLgorICAgICAqLworICAgIERBVEFfSU5KRUNUSU9OICAgICAgICAgICAgICA9IDB4MTAsCisKKyAgICAvKioKKyAgICAgKiBTZXQgdGhpcyBmbGFnIGlmIHRoZSBzZW5zb3IgaXMgYSBkeW5hbWljYWxseSBjb25uZWN0ZWQgc2Vuc29yLiBTZWUKKyAgICAgKiBEeW5hbWljU2Vuc29ySW5mbyBhbmQgRFlOQU1JQ19TRU5TT1JfTUVUQSBmb3IgZGV0YWlscy4KKyAgICAgKi8KKyAgICBEWU5BTUlDX1NFTlNPUiAgICAgICAgICAgICAgPSAweDIwLAorCisgICAgLyoqCisgICAgICogU2V0IHRoaXMgZmxhZyBpZiBzZW5zb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpcyBzdXBwb3J0ZWQuCisgICAgICogU2VlIEFERElUSU9OQUxfSU5GTyBhbmQgQWRkaXRpb25hbEluZm8gZm9yIGRldGFpbHMuCisgICAgICovCisgICAgQURESVRJT05BTF9JTkZPICAgICAgICAgICAgID0gMHg0MCwKKworICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZsYWcgaWYgc2Vuc29yIHN1cHBvciBkaXJlY3QgY2hhbm5lbCBiYWNrZWQgYnkgYXNobWVtLgorICAgICAqIFNlZSBTaGFyZWRNZW1UeXBlIGFuZCByZWdpc3RlckRpcmVjdENoYW5uZWwgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKi8KKyAgICBESVJFQ1RfQ0hBTk5FTF9BU0hNRU0gICAgICAgPSAweDQwMCwKKworICAgIC8qKgorICAgICAqIFNldCB0aGlzIGZsYWcgaWYgc2Vuc29yIHN1cHBvciBkaXJlY3QgY2hhbm5lbCBiYWNrZWQgYnkgZ3JhbGxvYyBIQUwgbWVtb3J5LgorICAgICAqIFNlZSBTaGFyZWRNZW1UeXBlIGFuZCByZWdpc3RlckRpcmVjdENoYW5uZWwgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgKi8KKyAgICBESVJFQ1RfQ0hBTk5FTF9HUkFMTE9DICAgICAgPSAweDgwMCwKKworICAgIC8qKgorICAgICAqIEZsYWdzIG1hc2sgZm9yIHJlcG9ydGluZyBtb2RlIG9mIHNlbnNvci4KKyAgICAgKi8KKyAgICBNQVNLX1JFUE9SVElOR19NT0RFICAgICAgICAgPSAweEUsCisKKyAgICAvKioKKyAgICAgKiBGbGFncyBtYXNrIGZvciBkaXJlY3QgcmVwb3J0IG1heGltdW0gcmF0ZSBsZXZlbCBzdXBwb3J0LgorICAgICAqIFNlZSBSYXRlTGV2ZWwuCisgICAgICovCisgICAgTUFTS19ESVJFQ1RfUkVQT1JUICAgICAgICAgID0gMHgzODAsCisKKyAgICAvKioKKyAgICAgKiBGbGFncyBtYXNrIGZvciBhbGwgZGlyZWN0IGNoYW5uZWwgc3VwcG9ydCBiaXRzLgorICAgICAqIFNlZSBTaGFyZWRNZW1UeXBlLgorICAgICAqLworICAgIE1BU0tfRElSRUNUX0NIQU5ORUwgICAgICAgICA9IDB4QzAwLAorfTsKKworQGV4cG9ydChuYW1lPSJzZW5zb3JfZmxhZ19zaGlmdF90IiwgdmFsdWVfcHJlZml4PSJTRU5TT1JfRkxBR19TSElGVF8iKQorZW51bSBTZW5zb3JGbGFnU2hpZnQgOiB1aW50OF90IHsKKyAgICBSRVBPUlRJTkdfTU9ERSAgICAgICAgICAgICAgPSAxLAorICAgIERBVEFfSU5KRUNUSU9OICAgICAgICAgICAgICA9IDQsCisgICAgRFlOQU1JQ19TRU5TT1IgICAgICAgICAgICAgID0gNSwKKyAgICBBRERJVElPTkFMX0lORk8gICAgICAgICAgICAgPSA2LAorICAgIERJUkVDVF9SRVBPUlQgICAgICAgICAgICAgICA9IDcsCisgICAgRElSRUNUX0NIQU5ORUwgICAgICAgICAgICAgID0gMTAsCit9OworCitzdHJ1Y3QgU2Vuc29ySW5mbyB7CisgICAgLyoqCisgICAgICogaGFuZGxlIHRoYXQgaWRlbnRpZmllcyB0aGlzIHNlbnNvcnMuIFRoaXMgaGFuZGxlIGlzIHVzZWQgdG8gcmVmZXJlbmNlCisgICAgICogdGhpcyBzZW5zb3IgdGhyb3VnaG91dCB0aGUgSEFMIEFQSS4KKyAgICAgKi8KKyAgICBpbnQzMl90IHNlbnNvckhhbmRsZTsKKworICAgIC8qKgorICAgICAqIE5hbWUgb2YgdGhpcyBzZW5zb3IuCisgICAgICogQWxsIHNlbnNvcnMgb2YgdGhlIHNhbWUgInR5cGUiIG11c3QgaGF2ZSBhIGRpZmZlcmVudCAibmFtZSIuCisgICAgICovCisgICAgc3RyaW5nIG5hbWU7CisKKyAgICAvKiogdmVuZG9yIG9mIHRoZSBoYXJkd2FyZSBwYXJ0ICovCisgICAgc3RyaW5nIHZlbmRvcjsKKworICAgIC8qKgorICAgICAqIHZlcnNpb24gb2YgdGhlIGhhcmR3YXJlIHBhcnQgKyBkcml2ZXIuIFRoZSB2YWx1ZSBvZiB0aGlzIGZpZWxkCisgICAgICogbXVzdCBpbmNyZWFzZSB3aGVuIHRoZSBkcml2ZXIgaXMgdXBkYXRlZCBpbiBhIHdheSB0aGF0IGNoYW5nZXMgdGhlCisgICAgICogb3V0cHV0IG9mIHRoaXMgc2Vuc29yLiBUaGlzIGlzIGltcG9ydGFudCBmb3IgZnVzZWQgc2Vuc29ycyB3aGVuIHRoZQorICAgICAqIGZ1c2lvbiBhbGdvcml0aG0gaXMgdXBkYXRlZC4KKyAgICAgKi8KKyAgICBpbnQzMl90IHZlcnNpb247CisKKyAgICAvKiogdGhpcyBzZW5zb3IncyB0eXBlLiAqLworICAgIFNlbnNvclR5cGUgdHlwZTsKKworICAgIC8qKgorICAgICAqIHR5cGUgb2YgdGhpcyBzZW5zb3IgYXMgYSBzdHJpbmcuCisgICAgICoKKyAgICAgKiBXaGVuIGRlZmluaW5nIGFuIE9FTSBzcGVjaWZpYyBzZW5zb3Igb3Igc2Vuc29yIG1hbnVmYWN0dXJlciBzcGVjaWZpYworICAgICAqIHNlbnNvciwgdXNlIHlvdXIgcmVzZXJ2ZSBkb21haW4gbmFtZSBhcyBhIHByZWZpeC4KKyAgICAgKiBlLmcuIGNvbS5nb29nbGUuZ2xhc3Mub25oZWFkZGV0ZWN0b3IKKyAgICAgKgorICAgICAqIEZvciBzZW5zb3JzIG9mIGtub3duIHR5cGUgZGVmaW5lZCBpbiBTZW5zb3JUeXBlICh2YWx1ZSA8CisgICAgICogU2Vuc29yVHlwZTo6REVWSUNFX1BSSVZBVEVfQkFTRSksIHRoaXMgY2FuIGJlIGFuIGVtcHR5IHN0cmluZy4KKyAgICAgKi8KKyAgICBzdHJpbmcgdHlwZUFzU3RyaW5nOworCisgICAgLyoqIG1heGltdW0gcmFuZ2Ugb2YgdGhpcyBzZW5zb3IncyB2YWx1ZSBpbiBTSSB1bml0cyAqLworICAgIGZsb2F0IG1heFJhbmdlOworCisgICAgLyoqIHNtYWxsZXN0IGRpZmZlcmVuY2UgYmV0d2VlbiB0d28gdmFsdWVzIHJlcG9ydGVkIGJ5IHRoaXMgc2Vuc29yICovCisgICAgZmxvYXQgcmVzb2x1dGlvbjsKKworICAgIC8qKiByb3VnaCBlc3RpbWF0ZSBvZiB0aGlzIHNlbnNvcidzIHBvd2VyIGNvbnN1bXB0aW9uIGluIG1BICovCisgICAgZmxvYXQgcG93ZXI7CisKKyAgICAvKioKKyAgICAgKiB0aGlzIHZhbHVlIGRlcGVuZHMgb24gdGhlIHJlcG9ydGluZyBtb2RlOgorICAgICAqCisgICAgICogICBjb250aW51b3VzOiBtaW5pbXVtIHNhbXBsZSBwZXJpb2QgYWxsb3dlZCBpbiBtaWNyb3NlY29uZHMKKyAgICAgKiAgIG9uLWNoYW5nZSA6IDAKKyAgICAgKiAgIG9uZS1zaG90ICA6LTEKKyAgICAgKiAgIHNwZWNpYWwgICA6IDAsIHVubGVzcyBvdGhlcndpc2Ugbm90ZWQKKyAgICAgKi8KKyAgICBpbnQzMl90IG1pbkRlbGF5OworCisgICAgLyoqCisgICAgICogbnVtYmVyIG9mIGV2ZW50cyByZXNlcnZlZCBmb3IgdGhpcyBzZW5zb3IgaW4gdGhlIGJhdGNoIG1vZGUgRklGTy4KKyAgICAgKiBJZiB0aGVyZSBpcyBhIGRlZGljYXRlZCBGSUZPIGZvciB0aGlzIHNlbnNvciwgdGhlbiB0aGlzIGlzIHRoZQorICAgICAqIHNpemUgb2YgdGhpcyBGSUZPLiBJZiB0aGUgRklGTyBpcyBzaGFyZWQgd2l0aCBvdGhlciBzZW5zb3JzLAorICAgICAqIHRoaXMgaXMgdGhlIHNpemUgcmVzZXJ2ZWQgZm9yIHRoYXQgc2Vuc29yIGFuZCBpdCBjYW4gYmUgemVyby4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBmaWZvUmVzZXJ2ZWRFdmVudENvdW50OworCisgICAgLyoqCisgICAgICogbWF4aW11bSBudW1iZXIgb2YgZXZlbnRzIG9mIHRoaXMgc2Vuc29yIHRoYXQgY291bGQgYmUgYmF0Y2hlZC4KKyAgICAgKiBUaGlzIGlzIGVzcGVjaWFsbHkgcmVsZXZhbnQgd2hlbiB0aGUgRklGTyBpcyBzaGFyZWQgYmV0d2VlbgorICAgICAqIHNldmVyYWwgc2Vuc29yczsgdGhpcyB2YWx1ZSBpcyB0aGVuIHNldCB0byB0aGUgc2l6ZSBvZiB0aGF0IEZJRk8uCisgICAgICovCisgICAgdWludDMyX3QgZmlmb01heEV2ZW50Q291bnQ7CisKKyAgICAvKioKKyAgICAgKiBwZXJtaXNzaW9uIHJlcXVpcmVkIHRvIHNlZSB0aGlzIHNlbnNvciwgcmVnaXN0ZXIgdG8gaXQgYW5kIHJlY2VpdmUgZGF0YS4KKyAgICAgKiBTZXQgdG8gIiIgaWYgbm8gcGVybWlzc2lvbiBpcyByZXF1aXJlZC4gU29tZSBzZW5zb3IgdHlwZXMgbGlrZSB0aGUKKyAgICAgKiBoZWFydCByYXRlIG1vbml0b3IgaGF2ZSBhIG1hbmRhdG9yeSByZXF1aXJlX3Blcm1pc3Npb24uCisgICAgICogRm9yIHNlbnNvcnMgdGhhdCBhbHdheXMgcmVxdWlyZSBhIHNwZWNpZmljIHBlcm1pc3Npb24sIGxpa2UgdGhlIGhlYXJ0CisgICAgICogcmF0ZSBtb25pdG9yLCB0aGUgYW5kcm9pZCBmcmFtZXdvcmsgbWlnaHQgb3ZlcndyaXRlIHRoaXMgc3RyaW5nCisgICAgICogYXV0b21hdGljYWxseS4KKyAgICAgKi8KKyAgICBzdHJpbmcgcmVxdWlyZWRQZXJtaXNzaW9uOworCisgICAgLyoqCisgICAgICogVGhpcyB2YWx1ZSBpcyBkZWZpbmVkIG9ubHkgZm9yIGNvbnRpbnVvdXMgbW9kZSBhbmQgb24tY2hhbmdlIHNlbnNvcnMuCisgICAgICogSXQgaXMgdGhlIGRlbGF5IGJldHdlZW4gdHdvIHNlbnNvciBldmVudHMgY29ycmVzcG9uZGluZyB0byB0aGUgbG93ZXN0CisgICAgICogZnJlcXVlbmN5IHRoYXQgdGhpcyBzZW5zb3Igc3VwcG9ydHMuIFdoZW4gbG93ZXIgZnJlcXVlbmNpZXMgYXJlIHJlcXVlc3RlZAorICAgICAqIHRocm91Z2ggYmF0Y2goKS9zZXREZWxheSgpIHRoZSBldmVudHMgd2lsbCBiZSBnZW5lcmF0ZWQgYXQgdGhpcyBmcmVxdWVuY3kKKyAgICAgKiBpbnN0ZWFkLgorICAgICAqIEl0IGNhbiBiZSB1c2VkIGJ5IHRoZSBmcmFtZXdvcmsgb3IgYXBwbGljYXRpb25zIHRvIGVzdGltYXRlIHdoZW4gdGhlCisgICAgICogYmF0Y2ggRklGTyBtYXkgYmUgZnVsbC4KKyAgICAgKgorICAgICAqIE5PVEU6IHBlcmlvZE5zIGlzIGluIG5hbm9zZWNvbmRzIHdoZXJlIGFzIG1heERlbGF5L21pbkRlbGF5IGFyZSBpbgorICAgICAqICAgICAgIG1pY3Jvc2Vjb25kcy4KKyAgICAgKgorICAgICAqICAgICAgIGNvbnRpbnVvdXMsIG9uLWNoYW5nZTogbWF4aW11bSBzYW1wbGluZyBwZXJpb2QgYWxsb3dlZCBpbgorICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWljcm9zZWNvbmRzLgorICAgICAqCisgICAgICogICAgICAgICAgb25lLXNob3QsIHNwZWNpYWwgOiAwCisgICAgICovCisgICAgaW50MzJfdCBtYXhEZWxheTsKKworICAgIC8qKiBCaXRtYXNrIG9mIFNlbnNvckZsYWdCaXRzICovCisgICAgYml0ZmllbGQ8U2Vuc29yRmxhZ0JpdHM+IGZsYWdzOworfTsKKworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IlNFTlNPUl9TVEFUVVNfIikKK2VudW0gU2Vuc29yU3RhdHVzIDogaW50OF90IHsKKyAgICBOT19DT05UQUNUICAgICAgICAgID0gLTEsCisgICAgVU5SRUxJQUJMRSAgICAgICAgICA9IDAsCisgICAgQUNDVVJBQ1lfTE9XICAgICAgICA9IDEsCisgICAgQUNDVVJBQ1lfTUVESVVNICAgICA9IDIsCisgICAgQUNDVVJBQ1lfSElHSCAgICAgICA9IDMsCit9OworCitzdHJ1Y3QgVmVjMyB7CisgICAgZmxvYXQgeDsKKyAgICBmbG9hdCB5OworICAgIGZsb2F0IHo7CisgICAgU2Vuc29yU3RhdHVzIHN0YXR1czsKK307CisKK3N0cnVjdCBWZWM0IHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0IHk7CisgICAgZmxvYXQgejsKKyAgICBmbG9hdCB3OworfTsKKworc3RydWN0IFVuY2FsIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0IHk7CisgICAgZmxvYXQgejsKKyAgICBmbG9hdCB4X2JpYXM7CisgICAgZmxvYXQgeV9iaWFzOworICAgIGZsb2F0IHpfYmlhczsKK307CisKK3N0cnVjdCBIZWFydFJhdGUgeworICAgIC8qKgorICAgICAqIEhlYXJ0IHJhdGUgaW4gYmVhdHMgcGVyIG1pbnV0ZS4KKyAgICAgKiBTZXQgdG8gMCB3aGVuIHN0YXR1cyBpcyBTZW5zb3JTdGF0dXM6OlVOUkVMSUFCTEUgb3IKKyAgICAgKiBTZW5zb3JTdGF0dXM6Ok5PX0NPTlRBQ1QKKyAgICAgKi8KKyAgICBmbG9hdCBicG07CisKKyAgICAvKiogU3RhdHVzIG9mIHRoZSBoZWFydCByYXRlIHNlbnNvciBmb3IgdGhpcyByZWFkaW5nLiAqLworICAgIFNlbnNvclN0YXR1cyBzdGF0dXM7Cit9OworCitAZXhwb3J0KG5hbWU9IiIpCitlbnVtIE1ldGFEYXRhRXZlbnRUeXBlIDogdWludDMyX3QgeworICAgIE1FVEFfREFUQV9GTFVTSF9DT01QTEVURSA9IDEsCit9OworCitzdHJ1Y3QgTWV0YURhdGEgeworICAgIE1ldGFEYXRhRXZlbnRUeXBlIHdoYXQ7Cit9OworCitzdHJ1Y3QgRHluYW1pY1NlbnNvckluZm8geworICAgIGJvb2wgY29ubmVjdGVkOworICAgIGludDMyX3Qgc2Vuc29ySGFuZGxlOworCisgICAgLyoqCisgICAgICogVVVJRCBvZiBhIGR5bmFtaWMgc2Vuc29yICh1c2luZyBSRkMgNDEyMiBieXRlIG9yZGVyKQorICAgICAqIEZvciBVVUlEIDEyMzQ1Njc4LTkwQUItQ0RFRi0xMTIyLTMzNDQ1NTY2Nzc4OCB0aGUgdXVpZCBmaWVsZCBpcworICAgICAqIGluaXRpYWxpemVkIGFzOgorICAgICAqICAgezB4MTIsIDB4MzQsIDB4NTYsIDB4NzgsIDB4OTAsIDB4QUIsIDB4Q0QsIDB4RUYsIDB4MTEsIC4uLn0KKyAgICAgKi8KKyAgICB1aW50OF90WzE2XSB1dWlkOworfTsKKworQGV4cG9ydChuYW1lPSJhZGRpdGlvbmFsX2luZm9fdHlwZV90IikKK2VudW0gQWRkaXRpb25hbEluZm9UeXBlIDogdWludDMyX3QgeworICAgIC8qKiBNYXJrcyB0aGUgYmVnaW5uaW5nIG9mIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZnJhbWVzICovCisgICAgQUlORk9fQkVHSU4gICAgICAgICAgICAgICAgICAgICAgID0gMCwKKworICAgIC8qKiBNYXJrcyB0aGUgZW5kIG9mIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZnJhbWVzICovCisgICAgQUlORk9fRU5EICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKKworICAgIC8qKgorICAgICAqIEVzdGltYXRpb24gb2YgdGhlIGRlbGF5IHRoYXQgaXMgbm90IHRyYWNrZWQgYnkgc2Vuc29yIHRpbWVzdGFtcHMuIFRoaXMKKyAgICAgKiBpbmNsdWRlcyBkZWxheSBpbnRyb2R1Y2VkIGJ5IHNlbnNvciBmcm9udC1lbmQgZmlsdGVyaW5nLCBkYXRhIHRyYW5zcG9ydCwKKyAgICAgKiBldGMuCisgICAgICogZmxvYXRbMl06IGRlbGF5IGluIHNlY29uZHMsIHN0YW5kYXJkIGRldmlhdGlvbiBvZiBlc3RpbWF0ZWQgdmFsdWUKKyAgICAgKi8KKyAgICBBSU5GT19VTlRSQUNLRURfREVMQVkgICAgICAgICAgICAgPSAweDEwMDAwLAorCisgICAgLyoqIGZsb2F0OiBDZWxzaXVzIHRlbXBlcmF0dXJlICovCisgICAgQUlORk9fSU5URVJOQUxfVEVNUEVSQVRVUkUsCisKKyAgICAvKioKKyAgICAgKiBGaXJzdCB0aHJlZSByb3dzIG9mIGEgaG9tb2dlbmVvdXMgbWF0cml4LCB3aGljaCByZXByZXNlbnRzIGNhbGlicmF0aW9uIHRvCisgICAgICogYSB0aHJlZS1lbGVtZW50IHZlY3RvciByYXcgc2Vuc29yIHJlYWRpbmcuCisgICAgICogZmxvYXRbMTJdOiAzeDQgbWF0cml4IGluIHJvdyBtYWpvciBvcmRlcgorICAgICAqLworICAgIEFJTkZPX1ZFQzNfQ0FMSUJSQVRJT04sCisKKyAgICAvKioKKyAgICAgKiBMb2NhdGlvbiBhbmQgb3JpZW50YXRpb24gb2Ygc2Vuc29yIGVsZW1lbnQgaW4gdGhlIGRldmljZSBmcmFtZTogb3JpZ2luIGlzCisgICAgICogdGhlIGdlb21ldHJpYyBjZW50ZXIgb2YgdGhlIG1vYmlsZSBkZXZpY2Ugc2NyZWVuIHN1cmZhY2U7IHRoZSBheGlzCisgICAgICogZGVmaW5pdGlvbiBjb3JyZXNwb25kcyB0byBBbmRyb2lkIHNlbnNvciBkZWZpbml0aW9ucy4KKyAgICAgKiBmbG9hdFsxMl06IDN4NCBtYXRyaXggaW4gcm93IG1ham9yIG9yZGVyCisgICAgICovCisgICAgQUlORk9fU0VOU09SX1BMQUNFTUVOVCwKKworICAgIC8qKgorICAgICAqIGZsb2F0WzJdOiByYXcgc2FtcGxlIHBlcmlvZCBpbiBzZWNvbmRzLAorICAgICAqICAgICAgICAgICBzdGFuZGFyZCBkZXZpYXRpb24gb2Ygc2FtcGxpbmcgcGVyaW9kCisgICAgICovCisgICAgQUlORk9fU0FNUExJTkcsCisKKyAgICAvLyBTYW1wbGluZyBjaGFubmVsIG1vZGVsaW5nIGluZm9ybWF0aW9uIHNlY3Rpb24KKworICAgIC8qKgorICAgICAqIGludDMyX3Q6IG5vaXNlIHR5cGUKKyAgICAgKiBmbG9hdFtuXTogcGFyYW1ldGVycworICAgICAqLworICAgIEFJTkZPX0NIQU5ORUxfTk9JU0UgICAgICAgICAgICAgICA9IDB4MjAwMDAsCisKKyAgICAvKioKKyAgICAgKiBmbG9hdFszXTogc2FtcGxlIHBlcmlvZCwgc3RhbmRhcmQgZGV2aWF0aW9uIG9mIHNhbXBsZSBwZXJpb2QsCisgICAgICogcXVhbnRpemF0aW9uIHVuaXQKKyAgICAgKi8KKyAgICBBSU5GT19DSEFOTkVMX1NBTVBMRVIsCisKKyAgICAvKioKKyAgICAgKiBSZXByZXNlbnRzIGEgZmlsdGVyOgorICAgICAqICAgXHN1bV9qIGFfaiB5W24tal0gPT0gXHN1bV9pIGJfaSB4W24taV0KKyAgICAgKgorICAgICAqIGludDMyX3RbM106IG51bWJlciBvZiBmZWVkZm9yd2FyZCBjb2VmZmllbnRzIE0sCisgICAgICogICAgICAgICAgICAgbnVtYmVyIG9mIGZlZWRiYWNrIGNvZWZmaWNpZW50cyBOIChmb3IgRklSIGZpbHRlciwgTiA9IDEpLgorICAgICAqICAgICAgICAgICAgIGJpdCBtYXNrIHRoYXQgcmVwcmVzZW50cyB3aGljaCBlbGVtZW50IHRoZSBmaWx0ZXIgaXMgYXBwbGllZAorICAgICAqICAgICAgICAgICAgIHRvLiAoYml0IDA9PTEgbWVhbnMgdGhpcyBmaWx0ZXIgYXBwbGllcyB0byB2ZWN0b3IgZWxlbWVudCAwKS4KKyAgICAgKiBmbG9hdFtNK05dOiBmaWx0ZXIgY29lZmZpY2llbnRzIChiMCwgYjEsIC4uLiwgYl97TS0xfSksIHRoZW4KKyAgICAgKiAgICAgICAgICAgICAoYTAsIGExLCAuLi4sIGFfe04tMX0pLCBhMCBpcyBhbHdheXMgMS4KKyAgICAgKgorICAgICAqIE11bHRpcGxlIGZyYW1lcyBtYXkgYmUgbmVlZGVkIGZvciBoaWdoZXIgbnVtYmVyIG9mIHRhcHMuCisgICAgICovCisgICAgQUlORk9fQ0hBTk5FTF9GSUxURVIsCisKKyAgICAvKioKKyAgICAgKiBpbnQzMl90WzJdOiBzaXplIGluIChyb3csIGNvbHVtbikgLi4uIDFzdCBmcmFtZQorICAgICAqIGZsb2F0W25dOiBtYXRyaXggZWxlbWVudCB2YWx1ZXMgaW4gcm93IG1ham9yIG9yZGVyLgorICAgICAqLworICAgIEFJTkZPX0NIQU5ORUxfTElORUFSX1RSQU5TRk9STSwKKworICAgIC8qKgorICAgICAqIGludDMyX3RbMl06IGV4dHJhcG9sYXRlIG1ldGhvZCwgaW50ZXJwb2xhdGUgbWV0aG9kCisgICAgICogZmxvYXRbbl06IG1hcHBpbmcga2V5IHBvaW50cyBpbiBwYWlycywgKGluLCBvdXQpLi4uCisgICAgICogICAgICAgICAgIChtYXkgYmUgdXNlZCB0byBtb2RlbCBzYXR1cmF0aW9uKS4KKyAgICAgKi8KKyAgICBBSU5GT19DSEFOTkVMX05PTkxJTkVBUl9NQVAsCisKKyAgICAvKioKKyAgICAgKiBpbnQzMl90OiByZXNhbXBsZSBtZXRob2QgKDAtdGggb3JkZXIsIDFzdCBvcmRlci4uLikKKyAgICAgKiBmbG9hdFsxXTogcmVzYW1wbGUgcmF0aW8gKHVwc2FtcGxpbmcgaWYgPCAxLjAsIGRvd25zYW1wbGluZyBpZiA+IDEuMCkuCisgICAgICovCisgICAgQUlORk9fQ0hBTk5FTF9SRVNBTVBMRVIsCisKKyAgICAvKioKKyAgICAgKiBPcGVyYXRpb24gZW52aXJvbm1lbnQgcGFyYW1ldGVycyBzZWN0aW9uCisgICAgICogVHlwZXMgaW4gdGhlIGZvbGxvd2luZyBzZWN0aW9uIGlzIHNlbnQgZG93biAoaW5zdGVhZCBvZiByZXBvcnRlZCBmcm9tKQorICAgICAqIGRldmljZSBhcyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIGFpZCBzZW5zb3Igb3BlcmF0aW9uLiBEYXRhIGlzIHNlbnQKKyAgICAgKiB2aWEgaW5qZWN0U2Vuc29yRGF0YSgpIGZ1bmN0aW9uIHRvIHNlbnNvciBoYW5kbGUgLTEgZGVub3RpbmcgYWxsIHNlbnNvcnMKKyAgICAgKiBpbiBkZXZpY2UuCisgICAgICovCisKKyAgICAvKioKKyAgICAgKiBMb2NhbCBnZW9tYWduZXRpYyBmaWVsZCBpbmZvcm1hdGlvbiBiYXNlZCBvbiBkZXZpY2UgZ2VvIGxvY2F0aW9uLiBUaGlzCisgICAgICogdHlwZSBpcyBwcmltYXJpbHkgZm9yIGZvciBtYWduZXRpYyBmaWVsZCBjYWxpYnJhdGlvbiBhbmQgcm90YXRpb24gdmVjdG9yCisgICAgICogc2Vuc29yIGZ1c2lvbi4KKyAgICAgKiBmbG9hdFszXTogc3RyZW5ndGggKHVUKSwgZGVjbGluYXRpb24gYW5kIGluY2xpbmF0aW9uIGFuZ2xlIChyYWQpLgorICAgICAqLworICAgIEFJTkZPX0xPQ0FMX0dFT01BR05FVElDX0ZJRUxEICAgICA9IDB4MzAwMDAsCisKKyAgICAvKioKKyAgICAgKiBMb2NhbCBncmF2aXRhdGlvbmFsIGFjY2VsZXJhdGlvbiBzdHJlbmd0aCBhdCBkZXZpY2UgZ2VvIGxvY2F0aW9uLgorICAgICAqIGZsb2F0OiBncmF2aXRhdGlvbmFsIGFjY2VsZXJhdGlvbiBub3JtIGluIG0vc14yLgorICAgICAqLworICAgIEFJTkZPX0xPQ0FMX0dSQVZJVFksCisKKyAgICAvKioKKyAgICAgKiBEZXZpY2UgZG9jayBzdGF0ZS4KKyAgICAgKiBpbnQzMl90OiBkb2NrIHN0YXRlIGZvbGxvd2luZyBBbmRyb2lkIEFQSSBJbnRlbnQuRVhUUkFfRE9DS19TVEFURQorICAgICAqIGRlZmluaXRpb24sIHVuZGVmaW5lZCB2YWx1ZSBpcyBpZ25vcmVkLgorICAgICAqLworICAgIEFJTkZPX0RPQ0tfU1RBVEUsCisKKyAgICAvKioKKyAgICAgKiBIaWdoIHBlcmZvcm1hbmNlIG1vZGUgaGludC4gRGV2aWNlIGlzIGFibGUgdG8gdXNlIHVwIG1vcmUgcG93ZXIgYW5kIHRha2UKKyAgICAgKiBtb3JlIHJlb3VyY2VzIHRvIGltcHJvdmUgdGhyb3VnaHB1dCBhbmQgbGF0ZW5jeSBpbiBoaWdoIHBlcmZvcm1hbmNlIG1vZGUuCisgICAgICogT25lIHBvc3NpYmxlIHVzZSBjYXNlIGlzIHZpcnR1YWwgcmVhbGl0eSwgd2hlbiBzZW5zb3IgbGF0ZW5jeSBuZWVkIHRvIGJlCisgICAgICogY2FyZWZ1bGx5IGNvbnRyb2xsZWQuCisgICAgICogaW50MzJfdDogMSBvciAwLCBkZW5vdGUgaWYgZGV2aWNlIGlzIGluL291dCBvZiBoaWdoIHBlcmZvcm1hbmNlIG1vZGUsCisgICAgICogICAgICAgICAgb3RoZXIgdmFsdWVzIGlzIGlnbm9yZWQuCisgICAgICovCisgICAgQUlORk9fSElHSF9QRVJGT1JNQU5DRV9NT0RFLAorCisgICAgLyoqCisgICAgICogTWFnbmV0aWMgZmllbGQgY2FsaWJyYXRpb24gaGludC4gRGV2aWNlIGlzIG5vdGlmaWVkIHdoZW4gbWFudWFsbHkKKyAgICAgKiB0cmlnZ2VyZWQgbWFnbmV0aWMgZmllbGQgY2FsaWJyYXRpb24gcHJvY2VkdXJlIGlzIHN0YXJ0ZWQgb3Igc3RvcHBlZC4gVGhlCisgICAgICogY2FsaWJyYXRpb24gcHJvY2VkdXJlIGlzIGFzc3VtZWQgdGltZWQgb3V0IGFmdGVyIDEgbWludXRlIGZyb20gc3RhcnQsCisgICAgICogZXZlbiBpZiBhbiBleHBsaWNpdCBzdG9wIGlzIG5vdCByZWNlaXZlZC4KKyAgICAgKgorICAgICAqIGludDMyX3Q6IDEgZm9yIHN0YXJ0LCAwIGZvciBzdG9wLCBvdGhlciB2YWx1ZSBpcyBpZ25vcmVkLgorICAgICAqLworICAgIEFJTkZPX01BR05FVElDX0ZJRUxEX0NBTElCUkFUSU9OLAorCisgICAgLyoqIEN1c3RvbSBpbmZvcm1hdGlvbiAqLworICAgIEFJTkZPX0NVU1RPTV9TVEFSVCAgICAgICAgICAgICAgICA9IDB4MTAwMDAwMDAsCisKKyAgICAvKiogRGVidWdnaW5nICovCisgICAgQUlORk9fREVCVUdHSU5HX1NUQVJUICAgICAgICAgICAgID0gMHg0MDAwMDAwMCwKK307CisKK3N0cnVjdCBBZGRpdGlvbmFsSW5mbyB7CisgICAgLyoqIHR5cGUgb2YgcGF5bG9hZCBkYXRhLCBzZWUgQWRkaXRpb25hbEluZm9UeXBlICovCisgICAgQWRkaXRpb25hbEluZm9UeXBlIHR5cGU7CisKKyAgICAvKiogc2VxdWVuY2UgbnVtYmVyIG9mIHRoaXMgZnJhbWUgZm9yIHRoaXMgdHlwZSAqLworICAgIGludDMyX3Qgc2VyaWFsOworCisgICAgdW5pb24gUGF5bG9hZCB7CisgICAgICAgIGludDMyX3RbMTRdIGRhdGFfaW50MzI7CisgICAgICAgIGZsb2F0WzE0XSBkYXRhX2Zsb2F0OworICAgIH0gdTsKK307CisKKy8qIGFjY2VsZXJhdGlvbiB2YWx1ZXMgYXJlIGluIG1ldGVyIHBlciBzZWNvbmQgcGVyIHNlY29uZCAobS9zXjIpCisgKiBtYWduZXRpYyB2ZWN0b3IgdmFsdWVzIGFyZSBpbiBtaWNyby1UZXNsYSAodVQpCisgKiBvcmllbnRhdGlvbiB2YWx1ZXMgYXJlIGluIGRlZ3JlZXMKKyAqIGd5cm9zY29wZSB2YWx1ZXMgYXJlIGluIHJhZC9zCisgKiB0ZW1wZXJhdHVyZSBpcyBpbiBkZWdyZWVzIGNlbnRpZ3JhZGUgKENlbHNpdXMpCisgKiBkaXN0YW5jZSBpbiBjZW50aW1ldGVycworICogbGlnaHQgaW4gU0kgbHV4IHVuaXRzCisgKiBwcmVzc3VyZSBpbiBoZWN0b3Bhc2NhbCAoaFBhKQorICogcmVsYXRpdmUgaHVtaWRpdHkgaW4gcGVyY2VudAorICovCit1bmlvbiBFdmVudFBheWxvYWQgeworICAgIC8qKgorICAgICAqIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVIsIFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELAorICAgICAqIFNlbnNvclR5cGU6Ok9SSUVOVEFUSU9OLCBTZW5zb3JUeXBlOjpHWVJPU0NPUEUsIFNlbnNvclR5cGU6OkdSQVZJVFksCisgICAgICogU2Vuc29yVHlwZTo6TElORUFSX0FDQ0VMRVJBVElPTgorICAgICAqLworICAgIFZlYzMgdmVjMzsKKworICAgIC8qKgorICAgICAqIFNlbnNvclR5cGU6OlJPVEFUSU9OX1ZFQ1RPUiwgU2Vuc29yVHlwZTo6R0FNRV9ST1RBVElPTl9WRUNUT1IsCisgICAgICogU2Vuc29yVHlwZTo6R0VPTUFHTkVUSUNfUk9UQVRJT05fVkVDVE9SCisgICAgICovCisgICAgVmVjNCB2ZWM0OworCisgICAgLyoqCisgICAgICogU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTERfVU5DQUxJQlJBVEVELAorICAgICAqIFNlbnNvclR5cGU6OkdZUk9TQ09QRV9VTkNBTElCUkFURUQKKyAgICAgKiBTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSX1VOQ0FMSUJSQVRFRAorICAgICAqLworICAgIFVuY2FsIHVuY2FsOworCisgICAgLyoqIFNlbnNvclR5cGU6Ok1FVEFfREFUQSAqLworICAgIE1ldGFEYXRhIG1ldGE7CisKKyAgICAvKioKKyAgICAgKiBTZW5zb3JUeXBlOjpERVZJQ0VfT1JJRU5UQVRJT04sIFNlbnNvclR5cGU6OkxJR0hULCBTZW5zb3JUeXBlOjpQUkVTU1VSRSwKKyAgICAgKiBTZW5zb3JUeXBlOjpURU1QRVJBVFVSRSwgU2Vuc29yVHlwZTo6UFJPWElNSVRZLAorICAgICAqIFNlbnNvclR5cGU6OlJFTEFUSVZFX0hVTUlESVRZLCBTZW5zb3JUeXBlOjpBTUJJRU5UX1RFTVBFUkFUVVJFLAorICAgICAqIFNlbnNvclR5cGU6OlNJR05JRklDQU5UX01PVElPTiwgU2Vuc29yVHlwZTo6U1RFUF9ERVRFQ1RPUiwKKyAgICAgKiBTZW5zb3JUeXBlOjpUSUxUX0RFVEVDVE9SLCBTZW5zb3JUeXBlOjpXQUtFX0dFU1RVUkUsCisgICAgICogU2Vuc29yVHlwZTo6R0xBTkNFX0dFU1RVUkUsIFNlbnNvclR5cGU6OlBJQ0tfVVBfR0VTVFVSRSwKKyAgICAgKiBTZW5zb3JUeXBlOjpXUklTVF9USUxUX0dFU1RVUkUsIFNlbnNvclR5cGU6OlNUQVRJT05BUllfREVURUNULAorICAgICAqIFNlbnNvclR5cGU6Ok1PVElPTl9ERVRFQ1QsIFNlbnNvclR5cGU6OkhFQVJUX0JFQVQsCisgICAgICogU2Vuc29yVHlwZTo6TE9XX0xBVEVOQ1lfT0ZGQk9EWV9ERVRFQ1QKKyAgICAgKi8KKyAgICBmbG9hdCBzY2FsYXI7CisKKyAgICAvKiogU2Vuc29yVHlwZTo6U1RFUF9DT1VOVEVSICovCisgICAgdWludDY0X3Qgc3RlcENvdW50OworCisgICAgLyoqIFNlbnNvclR5cGU6OkhFQVJUX1JBVEUgKi8KKyAgICBIZWFydFJhdGUgaGVhcnRSYXRlOworCisgICAgLyoqIFNlbnNvclR5cGU6OlBPU0VfNkRPRiAqLworICAgIGZsb2F0WzE1XSBwb3NlNkRPRjsKKworICAgIC8qKiBTZW5zb3JUeXBlOjpEWU5BTUlDX1NFTlNPUl9NRVRBICovCisgICAgRHluYW1pY1NlbnNvckluZm8gZHluYW1pYzsKKworICAgIC8qKiBTZW5zb3JUeXBlOjpBRERJVElPTkFMX0lORk8gKi8KKyAgICBBZGRpdGlvbmFsSW5mbyBhZGRpdGlvbmFsOworCisgICAgLyoqIHVuZGVmaW5lZC9jdXN0b20gc2Vuc29yIHR5cGUgPj0gU2Vuc29yVHlwZTo6REVWSUNFX1BSSVZBVEVfQkFTRSAqLworICAgIGZsb2F0WzE2XSBkYXRhOworfTsKKworc3RydWN0IEV2ZW50IHsKKyAgICAvKiogVGltZSBtZWFzdXJlZCBpbiBuYW5vc2Vjb25kcywgaW4gImVsYXBzZWRSZWFsdGltZU5hbm8oKSdzIiB0aW1lYmFzZS4gKi8KKyAgICBpbnQ2NF90IHRpbWVzdGFtcDsKKworICAgIC8qKiBzZW5zb3IgaWRlbnRpZmllciAqLworICAgIGludDMyX3Qgc2Vuc29ySGFuZGxlOworCisgICAgU2Vuc29yVHlwZSBzZW5zb3JUeXBlOworCisgICAgLyoqIFVuaW9uIGRpc2NyaW1pbmF0ZWQgb24gc2Vuc29yVHlwZSAqLworICAgIEV2ZW50UGF5bG9hZCB1OworfTsKKworLyoqCisgKiBEaXJlY3QgcmVwb3J0IHJhdGUgbGV2ZWwgZGVmaW5pdGlvbi4gRXhjZXB0IGZvciBTRU5TT1JfRElSRUNUX1JBVEVfU1RPUCwgZWFjaAorICogcmF0ZSBsZXZlbCBjb3ZlcnMgdGhlIHJhbmdlICg1NSUsIDIyMCVdICogbm9taW5hbCByZXBvcnQgcmF0ZS4gRm9yIGV4YW1wbGUsCisgKiBpZiBjb25maWcgZGlyZWN0IHJlcG9ydCBzcGVjaWZ5IGEgcmF0ZSBsZXZlbCBTRU5TT1JfRElSRUNUX1JBVEVfRkFTVCwgaXQgaXMKKyAqIGxlZ2FsIGZvciBzZW5zb3IgaGFyZHdhcmUgdG8gcmVwb3J0IGV2ZW50IGF0IGEgcmF0ZSBncmVhdGVyIHRoYW4gMTEwSHosIGFuZAorICogbGVzcyBvciBlcXVhbCB0byA0NDBIei4gTm90ZSB0aGF0IHJhdGUgaGFzIHRvIHJlbWFpbiBzdGVhZHkgd2l0aG91dCB2YXJpYXRpb24KKyAqIGJlZm9yZSBuZXcgcmF0ZSBsZXZlbCBpcyBjb25maWd1cmVkLCBpLmUuIGlmIGEgc2Vuc29yIGlzIGNvbmZpZ3VyZWQgdG8KKyAqIFNFTlNPUl9ESVJFQ1RfUkFURV9GQVNUIGFuZCBzdGFydHMgdG8gcmVwb3J0IGV2ZW50IGF0IDI1Nkh6LCBpdCBjYW5ub3QKKyAqIGNoYW5nZSByYXRlIHRvIDEyOEh6IGFmdGVyIGEgZmV3IHNlY29uZHMgb2YgcnVubmluZyBldmVuIGlmIDEyOEh6IGlzIGFsc28gaW4KKyAqIHRoZSBsZWdhbCByYW5nZSBvZiBTRU5TT1JfRElSRUNUX1JBVEVfRkFTVC4gVGh1cywgaXQgaXMgcmVjb21tZW5kZWQgdG8KKyAqIGFzc29jaWF0ZSByZXBvcnQgcmF0ZSB3aXRoIFJhdGVMdmVsIHN0YXRpY2FsbHkgZm9yIHNpbmdsZSBzZW5zb3IuCisgKi8KK0BleHBvcnQobmFtZT0iZGlyZWN0X3JhdGVfbGV2ZWxfdCIsIHZhbHVlX3ByZWZpeD0iU0VOU09SX0RJUkVDVF9SQVRFXyIpCitlbnVtIFJhdGVMZXZlbCA6IGludDMyX3QgeworICAgIFNUT1AsICAgICAgICAgICAgLy8gc3RvcAorICAgIE5PUk1BTCwgICAgICAgICAgLy8gbm9taW5hbCA1MEh6CisgICAgRkFTVCwgICAgICAgICAgICAvLyBub21pbmFsIDIwMEh6CisgICAgVkVSWV9GQVNULCAgICAgICAvLyBub21pbmFsIDgwMEh6Cit9OworCisvKioKKyAqIERpcmVjdCBjaGFubmVsIHNoYXJlZCBtZW1vcnkgdHlwZXMuIFNlZSBzdHJ1Y3QgU2hhcmVkTWVtSW5mby4KKyAqLworQGV4cG9ydChuYW1lPSJkaXJlY3RfbWVtX3R5cGVfdCIsIHZhbHVlX3ByZWZpeD0iU0VOU09SX0RJUkVDVF9NRU1fVFlQRV8iKQorZW51bSBTaGFyZWRNZW1UeXBlIDogaW50MzJfdCB7CisgICAgLy8gaGFuZGxlIGNvbnRhaW5zIDEgZmQgKGFzaG1lbSBoYW5kbGUpIGFuZCAwIGludC4KKyAgICBBU0hNRU0gPSAxLAorICAgIC8vIGhhbmRsZSBkZWZpbml0aW9uIG1hdGNoZXMgZ3JhbGxvYyBIQUwuCisgICAgR1JBTExPQworfTsKKworCisvKioKKyAqIERpcmVjdCBjaGFubmVsIGxvY2stZnJlZSBxdWV1ZSBmb3JtYXQsIHRoaXMgZGVmaW5lcyBob3cgdGhlIHNoYXJlZCBtZW1vcnkgaXMKKyAqIGludGVycHJldGVkIGJ5IGJvdGggc2Vuc29yIGhhcmR3YXJlIGFuZCBhcHBsaWNhdGlvbi4KKyAqCisgKiBAc2VlIFNoYXJlZE1lbUluZm8uCisgKi8KK0BleHBvcnQobmFtZT0iZGlyZWN0X2Zvcm1hdF90IiwgdmFsdWVfcHJlZml4PSJTRU5TT1JfRElSRUNUX0ZNVF8iKQorZW51bSBTaGFyZWRNZW1Gb3JtYXQgOiBpbnQzMl90IHsKKyAgICBTRU5TT1JTX0VWRU5UID0gMSwgIC8vIHNoYXJlZCBtZW1vcnkgaXMgZm9ybWF0ZWQgYXMgYW4gYXJyYXkgb2YgZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWxlbWVudHMuIFNlZSBTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQgZm9yIGRldGFpbHMuCisgICAgICAgICAgICAgICAgICAgICAgICAvLyBVcG9uIHJldHVybiBvZiBjaGFubmVsIHJlZ2lzdHJhdGlvbiBjYWxsLCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNoYXJlZCBtZW1vcnkgc3BhY2UgbXVzdCBiZSBmb3JtYXRlZCB0byBhbGwgMCBieSBIQUwuCit9OworCitlbnVtIFNlbnNvcnNFdmVudEZvcm1hdE9mZnNldCA6IHVpbnQxNl90IHsKKyAgICAvLyBvZmZzZXQgICB0eXBlICAgICAgICBuYW1lCisgICAgLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIC8vIDB4MDAwMCAgIGludDMyX3QgICAgIHNpemUgKGFsd2F5cyAxMDQpCisgICAgLy8gMHgwMDA0ICAgaW50MzJfdCAgICAgc2Vuc29yIHJlcG9ydCB0b2tlbgorICAgIC8vIDB4MDAwOCAgIGludDMyX3QgICAgIHR5cGUgKHNlZSBTZW5zb3JUeXBlKQorICAgIC8vIDB4MDAwQyAgIHVpbnQzMl90ICAgIGF0b21pYyBjb3VudGVyCisgICAgLy8gMHgwMDEwICAgaW50NjRfdCAgICAgdGltZXN0YW1wIChzZWUgRXZlbnQpCisgICAgLy8gMHgwMDE4ICAgZmxvYXRbMTZdLyAgZGF0YQorICAgIC8vICAgICAgICAgIGludDY0X3RbOF0KKyAgICAvLyAweDAwNTggICBpbnQzMl90WzRdICByZXNlcnZlZCAoc2V0IHRvIHplcm8pCisgICAgU0laRV9GSUVMRCAgICAgID0gMHgwLAorICAgIFJFUE9SVF9UT0tFTiAgICA9IDB4NCwKKyAgICBTRU5TT1JfVFlQRSAgICAgPSAweDgsCisgICAgQVRPTUlDX0NPVU5URVIgID0gMHhDLAorICAgIFRJTUVTVEFNUCAgICAgICA9IDB4MTAsCisgICAgREFUQSAgICAgICAgICAgID0gMHgxOCwKKyAgICBSRVNFUlZFRCAgICAgICAgPSAweDU4LAorICAgIFRPVEFMX0xFTkdUSCAgICA9IDB4NjgKK307CisKKy8qKgorICogU2hhcmVkIG1lbW9yeSBpbmZvcm1hdGlvbiBmb3IgYSBkaXJlY3QgY2hhbm5lbAorICovCitzdHJ1Y3QgU2hhcmVkTWVtSW5mbyB7CisgICAgU2hhcmVkTWVtVHlwZSB0eXBlOyAgICAgICAgIC8vIHNoYXJlZCBtZW1vcnkgdHlwZQorICAgIFNoYXJlZE1lbUZvcm1hdCBmb3JtYXQ7CisgICAgdWludDMyX3Qgc2l6ZTsgICAgICAgICAgICAgIC8vIHNpemUgb2YgdGhlIG1lbW9yeSByZWdpb24sIGluIGJ5dGVzCisgICAgaGFuZGxlIG1lbW9yeUhhbmRsZTsgICAgICAgIC8vIHNoYXJlZCBtZW1vcnkgaGFuZGxlLCBpdCBpcyBpbnRlcnByZXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZXBlbmRpbmcgb24gdHlwZSBmaWVsZCwgc2VlIFNoYXJlZE1lbVR5cGUuCit9OwpkaWZmIC0tZ2l0IGEvc2Vuc29ycy8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL3NlbnNvcnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWYxNDliYQotLS0gL2Rldi9udWxsCisrKyBiL3NlbnNvcnMvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzNCBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbFNlbnNvcnNWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsU2Vuc29yc1YxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CisKZGlmZiAtLWdpdCBhL3NlbnNvcnMvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFNlbnNvcnNWMV8wVGFyZ2V0VGVzdC5jcHAgYi9zZW5zb3JzLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxTZW5zb3JzVjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3NTdhNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zZW5zb3JzLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxTZW5zb3JzVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMTM5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAic2Vuc29yc19oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS9zZW5zb3JzLzEuMC9JU2Vuc29ycy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvc2Vuc29ycy8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxjdXRpbHMvYXNobWVtLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvc2Vuc29ycy5oPiAgLy8gZm9yIHNlbnNvciB0eXBlIHN0cmluZ3MKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisjaW5jbHVkZSA8dXRpbHMvU3lzdGVtQ2xvY2suaD4KKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxjaW50dHlwZXM+CisjaW5jbHVkZSA8Y21hdGg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHRocmVhZD4KKyNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0PgorI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7Cit1c2luZyBuYW1lc3BhY2UgOjphbmRyb2lkOjpoYXJkd2FyZTo6c2Vuc29yczo6VjFfMDsKKworLy8gVGVzdCBlbnZpcm9ubWVudCBmb3Igc2Vuc29ycworY2xhc3MgU2Vuc29yc0hpZGxUZXN0OworY2xhc3MgU2Vuc29yc0hpZGxFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyBwdWJsaWM6CisgIC8vIGdldCB0aGUgdGVzdCBlbnZpcm9ubWVudCBzaW5nbGV0b24KKyAgc3RhdGljIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQqIEluc3RhbmNlKCkgeworICAgIHN0YXRpYyBTZW5zb3JzSGlkbEVudmlyb25tZW50KiBpbnN0YW5jZSA9IG5ldyBTZW5zb3JzSGlkbEVudmlyb25tZW50OworICAgIHJldHVybiBpbnN0YW5jZTsKKyAgfQorCisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpOworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKTsKKworICAvLyBHZXQgYW5kIGNsZWFyIGFsbCBldmVudHMgY29sbGVjdGVkIHNvIGZhciAobGlrZSAiY2F0IiBzaGVsbCBjb21tYW5kKS4KKyAgLy8gSWYgb3V0cHV0IGlzIG51bGxwdHIsIGl0IGNsZWFycyBhbGwgY29sbGVjdGVkIGV2ZW50cy4KKyAgdm9pZCBjYXRFdmVudHMoc3RkOjp2ZWN0b3I8RXZlbnQ+KiBvdXRwdXQpOworCisgIC8vIHNldCBzZW5zb3IgZXZlbnQgY29sbGVjdGlvbiBzdGF0dXMKKyAgdm9pZCBzZXRDb2xsZWN0aW9uKGJvb2wgZW5hYmxlKTsKKworIHByaXZhdGU6CisgIGZyaWVuZCBTZW5zb3JzSGlkbFRlc3Q7CisgIC8vIHNlbnNvcnMgaGlkbCBzZXJ2aWNlCisgIHNwPElTZW5zb3JzPiBzZW5zb3JzOworCisgIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQoKSB7fQorCisgIHZvaWQgYWRkRXZlbnQoY29uc3QgRXZlbnQmIGV2KTsKKyAgdm9pZCBzdGFydFBvbGxpbmdUaHJlYWQoKTsKKyAgdm9pZCByZXNldEhhbCgpOworICBzdGF0aWMgdm9pZCBwb2xsaW5nVGhyZWFkKFNlbnNvcnNIaWRsRW52aXJvbm1lbnQqIGVudiwgc3RkOjpzaGFyZWRfcHRyPGJvb2w+IHN0b3ApOworCisgIGJvb2wgY29sbGVjdGlvbkVuYWJsZWQ7CisgIHN0ZDo6c2hhcmVkX3B0cjxib29sPiBzdG9wVGhyZWFkOworICBzdGQ6OnRocmVhZCBwb2xsVGhyZWFkOworICBzdGQ6OnZlY3RvcjxFdmVudD4gZXZlbnRzOworICBzdGQ6Om11dGV4IGV2ZW50c19tdXRleDsKKworICBHVEVTVF9ESVNBTExPV19DT1BZX0FORF9BU1NJR05fKFNlbnNvcnNIaWRsRW52aXJvbm1lbnQpOworfTsKKwordm9pZCBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpTZXRVcCgpIHsKKyAgcmVzZXRIYWwoKTsKKworICBBU1NFUlRfTkUoc2Vuc29ycywgbnVsbHB0cikgPDwgInNlbnNvcnMgaXMgbnVsbHB0ciwgY2Fubm90IGdldCBoaWRsIHNlcnZpY2UiOworCisgIGNvbGxlY3Rpb25FbmFibGVkID0gZmFsc2U7CisgIHN0YXJ0UG9sbGluZ1RocmVhZCgpOworCisgIC8vIEluIGNhc2UgZnJhbWV3b3JrIGp1c3Qgc3RvcHBlZCBmb3IgdGVzdCBhbmQgdGhlcmUgaXMgc2Vuc29yIGV2ZW50cyBpbiB0aGUgcGlwZSwKKyAgLy8gd2FpdCBzb21lIHRpbWUgZm9yIHRob3NlIGV2ZW50cyB0byBiZSBjbGVhcmVkIHRvIGF2b2lkIHRoZW0gbWVzc2luZyB1cCB0aGUgdGVzdC4KKyAgc3RkOjp0aGlzX3RocmVhZDo6c2xlZXBfZm9yKHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDMpKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpUZWFyRG93bigpIHsKKyAgaWYgKHN0b3BUaHJlYWQpIHsKKyAgICAqc3RvcFRocmVhZCA9IHRydWU7CisgIH0KKyAgcG9sbFRocmVhZC5kZXRhY2goKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpyZXNldEhhbCgpIHsKKyAgLy8gd2FpdCB1cHRvIDEwMG1zICogMTAgPSAxcyBmb3IgaGlkbCBzZXJ2aWNlLgorICBjb25zdGV4cHIgYXV0byBSRVRSWV9ERUxBWSA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMTAwKTsKKworICBzdGQ6OnN0cmluZyBzdGVwOworICBib29sIHN1Y2NlZWQgPSBmYWxzZTsKKyAgZm9yIChzaXplX3QgcmV0cnkgPSAxMDsgcmV0cnkgPiAwOyAtLXJldHJ5KSB7CisgICAgLy8gdGhpcyBkbyAuLi4gd2hpbGUgaXMgZm9yIGVhc3kgZXJyb3IgaGFuZGxpbmcKKyAgICBkbyB7CisgICAgICBzdGVwID0gImdldFNlcnZpY2UoKSI7CisgICAgICBzZW5zb3JzID0gSVNlbnNvcnM6OmdldFNlcnZpY2UoKTsKKyAgICAgIGlmIChzZW5zb3JzID09IG51bGxwdHIpIHsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIHN0ZXAgPSAicG9sbCgpIGNoZWNrIjsKKyAgICAgIC8vIFBva2UgSVNlbnNvciBzZXJ2aWNlLiBJZiBpdCBoYXMgbGluZ2VyaW5nIGNvbm5lY3Rpb24gZnJvbSBwcmV2aW91cyBnZW5lcmF0aW9uIG9mCisgICAgICAvLyBzeXN0ZW0gc2VydmVyLCBpdCB3aWxsIGtpbGwgaXRzZWxmLiBUaGVyZSBpcyBubyBpbnRlbnRpb24gdG8gaGFuZGxlIHRoZSBwb2xsIHJlc3VsdCwKKyAgICAgIC8vIHdoaWNoIHdpbGwgYmUgZG9uZSBzaW5jZSB0aGUgc2l6ZSBpcyAwLgorICAgICAgaWYoIXNlbnNvcnMtPnBvbGwoMCwgW10oYXV0bywgY29uc3QgYXV0byAmLCBjb25zdCBhdXRvICYpIHt9KS5pc09rKCkpIHsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIHN0ZXAgPSAiZ2V0U2Vuc29yTGlzdCI7CisgICAgICBzdGQ6OnZlY3RvcjxTZW5zb3JJbmZvPiBzZW5zb3JMaXN0OworICAgICAgaWYgKCFzZW5zb3JzLT5nZXRTZW5zb3JzTGlzdCgKKyAgICAgICAgICBbJl0gKGNvbnN0IDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjPFNlbnNvckluZm8+ICZsaXN0KSB7CisgICAgICAgICAgICBzZW5zb3JMaXN0LnJlc2VydmUobGlzdC5zaXplKCkpOworICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgIHNlbnNvckxpc3QucHVzaF9iYWNrKGxpc3RbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgIH0pLmlzT2soKSkgeworICAgICAgICBicmVhazsKKyAgICAgIH0KKworICAgICAgLy8gc3RvcCBlYWNoIHNlbnNvciBpbmRpdmlkdWFsbHkKKyAgICAgIHN0ZXAgPSAic3RvcCBlYWNoIHNlbnNvciI7CisgICAgICBib29sIG9rID0gdHJ1ZTsKKyAgICAgIGZvciAoY29uc3QgYXV0byAmaSA6IHNlbnNvckxpc3QpIHsKKyAgICAgICAgaWYgKCFzZW5zb3JzLT5hY3RpdmF0ZShpLnNlbnNvckhhbmRsZSwgZmFsc2UpLmlzT2soKSkgeworICAgICAgICAgIG9rID0gZmFsc2U7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICAgIGlmICghb2spIHsKKyAgICAgICAgYnJlYWs7CisgICAgICB9CisKKyAgICAgIC8vIG1hcmsgaXQgZG9uZQorICAgICAgc3RlcCA9ICJkb25lIjsKKyAgICAgIHN1Y2NlZWQgPSB0cnVlOworICAgIH0gd2hpbGUoMCk7CisKKyAgICBpZiAoc3VjY2VlZCkgeworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIERlbGF5IDEwMG1zIGJlZm9yZSByZXRyeSwgaGlkbCBzZXJ2aWNlIGlzIGV4cGVjdGVkIHRvIGNvbWUgdXAgaW4gc2hvcnQgdGltZSBhZnRlciBjcmFzaC4KKyAgICBBTE9HSSgiJXMgdW5zdWNjZXNzZnVsLCB0cnkgYWdhaW4gc29vbiAocmVtYWluaW5nIHJldHJ5ICV6dSkuIiwgc3RlcC5jX3N0cigpLCByZXRyeSAtIDEpOworICAgIHN0ZDo6dGhpc190aHJlYWQ6OnNsZWVwX2ZvcihSRVRSWV9ERUxBWSk7CisgIH0KKworICBzZW5zb3JzID0gbnVsbHB0cjsKK30KKwordm9pZCBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpjYXRFdmVudHMoc3RkOjp2ZWN0b3I8RXZlbnQ+KiBvdXRwdXQpIHsKKyAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2soZXZlbnRzX211dGV4KTsKKyAgaWYgKG91dHB1dCkgeworICAgIG91dHB1dC0+aW5zZXJ0KG91dHB1dC0+ZW5kKCksIGV2ZW50cy5iZWdpbigpLCBldmVudHMuZW5kKCkpOworICB9CisgIGV2ZW50cy5jbGVhcigpOworfQorCit2b2lkIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6OnNldENvbGxlY3Rpb24oYm9vbCBlbmFibGUpIHsKKyAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2soZXZlbnRzX211dGV4KTsKKyAgY29sbGVjdGlvbkVuYWJsZWQgPSBlbmFibGU7Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6YWRkRXZlbnQoY29uc3QgRXZlbnQmIGV2KSB7CisgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKGV2ZW50c19tdXRleCk7CisgIGlmIChjb2xsZWN0aW9uRW5hYmxlZCkgeworICAgIGV2ZW50cy5wdXNoX2JhY2soZXYpOworICB9Cit9CisKK3ZvaWQgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6c3RhcnRQb2xsaW5nVGhyZWFkKCkgeworICBzdG9wVGhyZWFkID0gc3RkOjpzaGFyZWRfcHRyPGJvb2w+KG5ldyBib29sKGZhbHNlKSk7CisgIHBvbGxUaHJlYWQgPSBzdGQ6OnRocmVhZChwb2xsaW5nVGhyZWFkLCB0aGlzLCBzdG9wVGhyZWFkKTsKKyAgZXZlbnRzLnJlc2VydmUoMTI4KTsKK30KKwordm9pZCBTZW5zb3JzSGlkbEVudmlyb25tZW50Ojpwb2xsaW5nVGhyZWFkKAorICAgIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQqIGVudiwgc3RkOjpzaGFyZWRfcHRyPGJvb2w+IHN0b3ApIHsKKyAgQUxPR0QoInBvbGxpbmcgdGhyZWFkIHN0YXJ0Iik7CisgIGJvb2wgbmVlZEV4aXQgPSAqc3RvcDsKKworICB3aGlsZSghbmVlZEV4aXQpIHsKKyAgICBlbnYtPnNlbnNvcnMtPnBvbGwoMSwKKyAgICAgICAgWyZdKGF1dG8gcmVzdWx0LCBjb25zdCBhdXRvICZldmVudHMsIGNvbnN0IGF1dG8gJmR5bmFtaWNTZW5zb3JzQWRkZWQpIHsKKyAgICAgICAgICBpZiAocmVzdWx0ICE9IFJlc3VsdDo6T0sKKyAgICAgICAgICAgICAgfHwgKGV2ZW50cy5zaXplKCkgPT0gMCAmJiBkeW5hbWljU2Vuc29yc0FkZGVkLnNpemUoKSA9PSAwKQorICAgICAgICAgICAgICB8fCAqc3RvcCkgeworICAgICAgICAgICAgbmVlZEV4aXQgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKworICAgICAgICAgIGlmIChldmVudHMuc2l6ZSgpID4gMCkgeworICAgICAgICAgICAgZW52LT5hZGRFdmVudChldmVudHNbMF0pOworICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgIH0KKyAgQUxPR0QoInBvbGxpbmcgdGhyZWFkIGVuZCIpOworfQorCitjbGFzcyBTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSB7CisgcHVibGljOgorICBzdGF0aWMgU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkqIGNyZWF0ZShTaGFyZWRNZW1UeXBlIHR5cGUsIHNpemVfdCBzaXplKTsKKyAgU2hhcmVkTWVtSW5mbyBnZXRTaGFyZWRNZW1JbmZvKCkgY29uc3Q7CisgIGNoYXIgKiBnZXRCdWZmZXIoKSBjb25zdDsKKyAgc3RkOjp2ZWN0b3I8RXZlbnQ+IHBhcnNlRXZlbnRzKGludDY0X3QgbGFzdENvdW50ZXIgPSAtMSwgc2l6ZV90IG9mZnNldCA9IDApIGNvbnN0OworICB2aXJ0dWFsIH5TZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSgpOworIHByaXZhdGU6CisgIFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5KFNoYXJlZE1lbVR5cGUgdHlwZSwgc2l6ZV90IHNpemUpOworCisgIFNoYXJlZE1lbVR5cGUgbVR5cGU7CisgIG5hdGl2ZV9oYW5kbGVfdCogbU5hdGl2ZUhhbmRsZTsKKyAgc2l6ZV90IG1TaXplOworICBjaGFyKiBtQnVmZmVyOworCisgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSk7Cit9OworCitTaGFyZWRNZW1JbmZvIFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5OjpnZXRTaGFyZWRNZW1JbmZvKCkgY29uc3QgeworICBTaGFyZWRNZW1JbmZvIG1lbSA9IHsKKyAgICAudHlwZSA9IG1UeXBlLAorICAgIC5mb3JtYXQgPSBTaGFyZWRNZW1Gb3JtYXQ6OlNFTlNPUlNfRVZFTlQsCisgICAgLnNpemUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4obVNpemUpLAorICAgIC5tZW1vcnlIYW5kbGUgPSBtTmF0aXZlSGFuZGxlCisgIH07CisgIHJldHVybiBtZW07Cit9CisKK2NoYXIgKiBTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeTo6Z2V0QnVmZmVyKCkgY29uc3QgeworICByZXR1cm4gbUJ1ZmZlcjsKK30KKworc3RkOjp2ZWN0b3I8RXZlbnQ+IFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5OjpwYXJzZUV2ZW50cyhpbnQ2NF90IGxhc3RDb3VudGVyLCBzaXplX3Qgb2Zmc2V0KSBjb25zdCB7CisKKyAgY29uc3RleHByIHNpemVfdCBrRXZlbnRTaXplID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQ6OlRPVEFMX0xFTkdUSCk7CisgIGNvbnN0ZXhwciBzaXplX3Qga09mZnNldFNpemUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KFNlbnNvcnNFdmVudEZvcm1hdE9mZnNldDo6U0laRV9GSUVMRCk7CisgIGNvbnN0ZXhwciBzaXplX3Qga09mZnNldFRva2VuID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQ6OlJFUE9SVF9UT0tFTik7CisgIGNvbnN0ZXhwciBzaXplX3Qga09mZnNldFR5cGUgPSBzdGF0aWNfY2FzdDxzaXplX3Q+KFNlbnNvcnNFdmVudEZvcm1hdE9mZnNldDo6U0VOU09SX1RZUEUpOworICBjb25zdGV4cHIgc2l6ZV90IGtPZmZzZXRBdG9taWNDb3VudGVyID0KKyAgICAgIHN0YXRpY19jYXN0PHNpemVfdD4oU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0OjpBVE9NSUNfQ09VTlRFUik7CisgIGNvbnN0ZXhwciBzaXplX3Qga09mZnNldFRpbWVzdGFtcCA9IHN0YXRpY19jYXN0PHNpemVfdD4oU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0OjpUSU1FU1RBTVApOworICBjb25zdGV4cHIgc2l6ZV90IGtPZmZzZXREYXRhID0gc3RhdGljX2Nhc3Q8c2l6ZV90PihTZW5zb3JzRXZlbnRGb3JtYXRPZmZzZXQ6OkRBVEEpOworCisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBldmVudHM7CisgIHN0ZDo6dmVjdG9yPGZsb2F0PiBkYXRhKDE2KTsKKworICB3aGlsZSAob2Zmc2V0ICsga0V2ZW50U2l6ZSA8PSBtU2l6ZSkgeworICAgIGludDY0X3QgYXRvbWljQ291bnRlciA9ICpyZWludGVycHJldF9jYXN0PHVpbnQzMl90ICo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0QXRvbWljQ291bnRlcik7CisgICAgaWYgKGF0b21pY0NvdW50ZXIgPD0gbGFzdENvdW50ZXIpIHsKKyAgICAgIGJyZWFrOworICAgIH0KKworICAgIGludDMyX3Qgc2l6ZSA9ICpyZWludGVycHJldF9jYXN0PGludDMyX3QgKj4obUJ1ZmZlciArIG9mZnNldCArIGtPZmZzZXRTaXplKTsKKyAgICBpZiAoc2l6ZSAhPSBrRXZlbnRTaXplKSB7CisgICAgICAvLyB1bmtub3duIGVycm9yLCBldmVudHMgcGFyc2VkIG1heSBiZSB3cm9uZywgcmVtb3ZlIGFsbAorICAgICAgZXZlbnRzLmNsZWFyKCk7CisgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpbnQzMl90IHRva2VuID0gKnJlaW50ZXJwcmV0X2Nhc3Q8aW50MzJfdCAqPihtQnVmZmVyICsgb2Zmc2V0ICsga09mZnNldFRva2VuKTsKKyAgICBpbnQzMl90IHR5cGUgPSAqcmVpbnRlcnByZXRfY2FzdDxpbnQzMl90ICo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0VHlwZSk7CisgICAgaW50NjRfdCB0aW1lc3RhbXAgPSAqcmVpbnRlcnByZXRfY2FzdDxpbnQ2NF90ICo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0VGltZXN0YW1wKTsKKworICAgIEFMT0dWKCJvZmZzZXQgPSAlenUsIGNudCAlIiBQUklkNjQgIiwgdG9rZW4gJSIgUFJJZDMyICIsIHR5cGUgJSIgUFJJZDMyICIsIHRpbWVzdGFtcCAlIiBQUklkNjQsCisgICAgICAgIG9mZnNldCwgYXRvbWljQ291bnRlciwgdG9rZW4sIHR5cGUsIHRpbWVzdGFtcCk7CisKKyAgICBFdmVudCBldmVudCA9IHsKKyAgICAgIC50aW1lc3RhbXAgPSB0aW1lc3RhbXAsCisgICAgICAuc2Vuc29ySGFuZGxlID0gdG9rZW4sCisgICAgICAuc2Vuc29yVHlwZSA9IHN0YXRpY19jYXN0PFNlbnNvclR5cGU+KHR5cGUpLAorICAgIH07CisgICAgZXZlbnQudS5kYXRhID0gYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk8ZmxvYXQsIDE2PgorICAgICAgICAocmVpbnRlcnByZXRfY2FzdDxmbG9hdCo+KG1CdWZmZXIgKyBvZmZzZXQgKyBrT2Zmc2V0RGF0YSkpOworCisgICAgZXZlbnRzLnB1c2hfYmFjayhldmVudCk7CisKKyAgICBsYXN0Q291bnRlciA9IGF0b21pY0NvdW50ZXI7CisgICAgb2Zmc2V0ICs9IGtFdmVudFNpemU7CisgIH0KKworICByZXR1cm4gZXZlbnRzOworfQorCitTZW5zb3JzVGVzdFNoYXJlZE1lbW9yeTo6U2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkoU2hhcmVkTWVtVHlwZSB0eXBlLCBzaXplX3Qgc2l6ZSkKKyAgICA6IG1UeXBlKHR5cGUpLCBtU2l6ZSgwKSwgbUJ1ZmZlcihudWxscHRyKSB7CisgIG5hdGl2ZV9oYW5kbGVfdCAqaGFuZGxlID0gbnVsbHB0cjsKKyAgY2hhciAqYnVmZmVyID0gbnVsbHB0cjsKKyAgc3dpdGNoKHR5cGUpIHsKKyAgICBjYXNlIFNoYXJlZE1lbVR5cGU6OkFTSE1FTTogeworICAgICAgaW50IGZkOworICAgICAgaGFuZGxlID0gOjpuYXRpdmVfaGFuZGxlX2NyZWF0ZSgxIC8qbkZkcyovLCAwLypuSW50cyovKTsKKyAgICAgIGlmIChoYW5kbGUgIT0gbnVsbHB0cikgeworICAgICAgICBoYW5kbGUtPmRhdGFbMF0gPSBmZCA9IDo6YXNobWVtX2NyZWF0ZV9yZWdpb24oIlNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5Iiwgc2l6ZSk7CisgICAgICAgIGlmIChoYW5kbGUtPmRhdGFbMF0gPiAwKSB7CisgICAgICAgICAgLy8gbWVtb3J5IGlzIHBpbm5lZCBieSBkZWZhdWx0CisgICAgICAgICAgYnVmZmVyID0gc3RhdGljX2Nhc3Q8Y2hhciAqPgorICAgICAgICAgICAgICAoOjptbWFwKE5VTEwsIHNpemUsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsIE1BUF9TSEFSRUQsIGZkLCAwKSk7CisgICAgICAgICAgaWYgKGJ1ZmZlciAhPSByZWludGVycHJldF9jYXN0PGNoYXIqPihNQVBfRkFJTEVEKSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICAgIDo6bmF0aXZlX2hhbmRsZV9jbG9zZShoYW5kbGUpOworICAgICAgICB9CisgICAgICAgIDo6bmF0aXZlX2hhbmRsZV9kZWxldGUoaGFuZGxlKTsKKyAgICAgICAgaGFuZGxlID0gbnVsbHB0cjsKKyAgICAgIH0KKyAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFNoYXJlZE1lbVR5cGU6OkdSQUxMT0M6IHsKKworICAgICAgYnJlYWs7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICBicmVhazsKKyAgfQorCisgIGlmIChidWZmZXIgIT0gbnVsbHB0cikgeworICAgIG1OYXRpdmVIYW5kbGUgPSBoYW5kbGU7CisgICAgbVNpemUgPSBzaXplOworICAgIG1CdWZmZXIgPSBidWZmZXI7CisgIH0KK30KKworU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnk6On5TZW5zb3JzVGVzdFNoYXJlZE1lbW9yeSgpIHsKKyAgc3dpdGNoKG1UeXBlKSB7CisgICAgY2FzZSBTaGFyZWRNZW1UeXBlOjpBU0hNRU06IHsKKyAgICAgIGlmIChtU2l6ZSAhPSAwKSB7CisgICAgICAgIDo6bXVubWFwKG1CdWZmZXIsIG1TaXplKTsKKyAgICAgICAgbUJ1ZmZlciA9IG51bGxwdHI7CisKKyAgICAgICAgOjpuYXRpdmVfaGFuZGxlX2Nsb3NlKG1OYXRpdmVIYW5kbGUpOworICAgICAgICA6Om5hdGl2ZV9oYW5kbGVfZGVsZXRlKG1OYXRpdmVIYW5kbGUpOworCisgICAgICAgIG1OYXRpdmVIYW5kbGUgPSBudWxscHRyOworICAgICAgICBtU2l6ZSA9IDA7CisgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDogeworICAgICAgaWYgKG1OYXRpdmVIYW5kbGUgIT0gbnVsbHB0ciB8fCBtU2l6ZSAhPSAwIHx8IG1CdWZmZXIgIT0gbnVsbHB0cikgeworICAgICAgICBBTE9HRSgiU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkgJXAgbm90IHByb3Blcmx5IGRlc3RydWN0ZWQ6ICIKKyAgICAgICAgICAgICJ0eXBlICVkLCBuYXRpdmUgaGFuZGxlICVwLCBzaXplICV6dSwgYnVmZmVyICVwIiwKKyAgICAgICAgICAgIHRoaXMsIHN0YXRpY19jYXN0PGludD4obVR5cGUpLCBtTmF0aXZlSGFuZGxlLCBtU2l6ZSwgbUJ1ZmZlcik7CisgICAgICB9CisgICAgICBicmVhazsKKyAgICB9CisgIH0KK30KKworU2Vuc29yc1Rlc3RTaGFyZWRNZW1vcnkqIFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5OjpjcmVhdGUoU2hhcmVkTWVtVHlwZSB0eXBlLCBzaXplX3Qgc2l6ZSkgeworICBjb25zdGV4cHIgc2l6ZV90IGtNYXhTaXplID0gMTI4KjEwMjQqMTAyNDsgLy8gc2Vuc29yIHRlc3Qgc2hvdWxkIG5vdCBuZWVkIG1vcmUgdGhhbiAxMjhNCisgIGlmIChzaXplID09IDAgfHwgc2l6ZSA+PSBrTWF4U2l6ZSkgeworICAgIHJldHVybiBudWxscHRyOworICB9CisKKyAgYXV0byBtID0gbmV3IFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5KHR5cGUsIHNpemUpOworICBpZiAobS0+bVNpemUgIT0gc2l6ZSB8fCBtLT5tQnVmZmVyID09IG51bGxwdHIpIHsKKyAgICBkZWxldGUgbTsKKyAgICBtID0gbnVsbHB0cjsKKyAgfQorICByZXR1cm4gbTsKK30KKworY2xhc3MgU2Vuc29yRXZlbnRzQ2hlY2tlciB7CisgcHVibGljOgorICB2aXJ0dWFsIGJvb2wgY2hlY2soY29uc3Qgc3RkOjp2ZWN0b3I8RXZlbnQ+ICZldmVudHMsIHN0ZDo6c3RyaW5nICpvdXQpIGNvbnN0ID0gMDsKKyAgdmlydHVhbCB+U2Vuc29yRXZlbnRzQ2hlY2tlcigpIHt9Cit9OworCitjbGFzcyBOdWxsQ2hlY2tlciA6IHB1YmxpYyBTZW5zb3JFdmVudHNDaGVja2VyIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgYm9vbCBjaGVjayhjb25zdCBzdGQ6OnZlY3RvcjxFdmVudD4gJiwgc3RkOjpzdHJpbmcgKikgY29uc3QgeworICAgIHJldHVybiB0cnVlOworICB9Cit9OworCitjbGFzcyBTZW5zb3JFdmVudFBlckV2ZW50Q2hlY2tlciA6IHB1YmxpYyBTZW5zb3JFdmVudHNDaGVja2VyIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgYm9vbCBjaGVja0V2ZW50KGNvbnN0IEV2ZW50ICZldmVudCwgc3RkOjpzdHJpbmcgKm91dCkgY29uc3QgPSAwOworICB2aXJ0dWFsIGJvb2wgY2hlY2soY29uc3Qgc3RkOjp2ZWN0b3I8RXZlbnQ+ICZldmVudHMsIHN0ZDo6c3RyaW5nICpvdXQpIGNvbnN0IHsKKyAgICBmb3IgKGNvbnN0IGF1dG8gJmUgOiBldmVudHMpIHsKKyAgICAgIGlmICghY2hlY2tFdmVudChlLCBvdXQpKSB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7CisgIH0KK307CisKK2NsYXNzIFZlYzNOb3JtQ2hlY2tlciA6IHB1YmxpYyBTZW5zb3JFdmVudFBlckV2ZW50Q2hlY2tlciB7CisgcHVibGljOgorICBWZWMzTm9ybUNoZWNrZXIoZmxvYXQgbWluLCBmbG9hdCBtYXgpIDogbVJhbmdlKG1pbiwgbWF4KSB7fQorICBzdGF0aWMgVmVjM05vcm1DaGVja2VyIGJ5Tm9taW5hbChmbG9hdCBub21pbmFsLCBmbG9hdCBhbGxvd2VkRXJyb3IpIHsKKyAgICByZXR1cm4gVmVjM05vcm1DaGVja2VyKG5vbWluYWwgLSBhbGxvd2VkRXJyb3IsIG5vbWluYWwgKyBhbGxvd2VkRXJyb3IpOworICB9CisKKyAgdmlydHVhbCBib29sIGNoZWNrRXZlbnQoY29uc3QgRXZlbnQgJmV2ZW50LCBzdGQ6OnN0cmluZyAqb3V0KSBjb25zdCB7CisgICAgVmVjMyB2ID0gZXZlbnQudS52ZWMzOworICAgIGZsb2F0IG5vcm0gPSBzdGQ6OnNxcnQodi54ICogdi54ICsgdi55ICogdi55ICsgdi56ICogdi56KTsKKyAgICBpZiAobm9ybSA8IG1SYW5nZS5maXJzdCB8fCBub3JtID4gbVJhbmdlLnNlY29uZCkgeworICAgICAgaWYgKG91dCAhPSBudWxscHRyKSB7CisgICAgICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSBzczsKKyAgICAgICAgc3MgPDwgIkV2ZW50IEAgIiA8PCBldmVudC50aW1lc3RhbXAgPDwgIiAoIiA8PCB2LnggPDwgIiwgIiA8PCB2LnkgPDwgIiwgIiA8PCB2LnogPDwgIikiCisgICAgICAgICAgIDw8ICIgaGFzIG5vcm0gIiA8PCBub3JtIDw8ICIsIHdoaWNoIGlzIGJleW9uZCByYW5nZSIKKyAgICAgICAgICAgPDwgIiBbIiA8PCBtUmFuZ2UuZmlyc3QgPDwgIiwgIiA8PCBtUmFuZ2Uuc2Vjb25kIDw8ICJdIjsKKyAgICAgICAgKm91dCA9IHNzLnN0cigpOworICAgICAgfQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorIHByb3RlY3RlZDoKKyAgc3RkOjpwYWlyPGZsb2F0LCBmbG9hdD4gbVJhbmdlOworfTsKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgU0VOU09SUyBISURMIEhBTC4KK2NsYXNzIFNlbnNvcnNIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7CisgICAgLy8gc3RvcCBhbGwgc2Vuc29ycworICAgIGZvciAoYXV0byBzIDogbVNlbnNvckhhbmRsZXMpIHsKKyAgICAgIFMoKS0+YWN0aXZhdGUocywgZmFsc2UpOworICAgIH0KKyAgICBtU2Vuc29ySGFuZGxlcy5jbGVhcigpOworCisgICAgLy8gc3RvcCBhbGwgZGlyZWN0IHJlcG9ydCBhbmQgY2hhbm5lbHMKKyAgICBmb3IgKGF1dG8gYyA6IG1EaXJlY3RDaGFubmVsSGFuZGxlcykgeworICAgICAgLy8gZGlzYWJsZSBhbGwgcmVwb3J0cworICAgICAgUygpLT5jb25maWdEaXJlY3RSZXBvcnQoLTEsIGMsIFJhdGVMZXZlbDo6U1RPUCwgW10gKGF1dG8sIGF1dG8pe30pOworICAgICAgUygpLT51bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChjKTsKKyAgICB9CisgICAgbURpcmVjdENoYW5uZWxIYW5kbGVzLmNsZWFyKCk7CisgIH0KKworIHByb3RlY3RlZDoKKyAgU2Vuc29ySW5mbyBkZWZhdWx0U2Vuc29yQnlUeXBlKFNlbnNvclR5cGUgdHlwZSk7CisgIHN0ZDo6dmVjdG9yPFNlbnNvckluZm8+IGdldFNlbnNvcnNMaXN0KCk7CisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBjb2xsZWN0RXZlbnRzKHVzZWNvbmRzX3QgdGltZUxpbWl0VXMsIHNpemVfdCBuRXZlbnRMaW1pdCwKKyAgICAgICAgYm9vbCBjbGVhckJlZm9yZVN0YXJ0ID0gdHJ1ZSwgYm9vbCBjaGFuZ2VDb2xsZWN0aW9uID0gdHJ1ZSk7CisKKyAgLy8gaW1wbGVtZW50YXRpb24gd3JhcHBlcgorICBSZXR1cm48dm9pZD4gZ2V0U2Vuc29yc0xpc3QoSVNlbnNvcnM6OmdldFNlbnNvcnNMaXN0X2NiIF9oaWRsX2NiKSB7CisgICAgcmV0dXJuIFMoKS0+Z2V0U2Vuc29yc0xpc3QoX2hpZGxfY2IpOworICB9CisKKyAgUmV0dXJuPFJlc3VsdD4gYWN0aXZhdGUoCisgICAgICAgICAgaW50MzJfdCBzZW5zb3JIYW5kbGUsIGJvb2wgZW5hYmxlZCk7CisKKyAgUmV0dXJuPFJlc3VsdD4gYmF0Y2goCisgICAgICAgICAgaW50MzJfdCBzZW5zb3JIYW5kbGUsCisgICAgICAgICAgaW50NjRfdCBzYW1wbGluZ1BlcmlvZE5zLAorICAgICAgICAgIGludDY0X3QgbWF4UmVwb3J0TGF0ZW5jeU5zKSB7CisgICAgcmV0dXJuIFMoKS0+YmF0Y2goc2Vuc29ySGFuZGxlLCBzYW1wbGluZ1BlcmlvZE5zLCBtYXhSZXBvcnRMYXRlbmN5TnMpOworICB9CisKKyAgUmV0dXJuPFJlc3VsdD4gZmx1c2goaW50MzJfdCBzZW5zb3JIYW5kbGUpIHsKKyAgICByZXR1cm4gUygpLT5mbHVzaChzZW5zb3JIYW5kbGUpOworICB9CisKKyAgUmV0dXJuPFJlc3VsdD4gaW5qZWN0U2Vuc29yRGF0YShjb25zdCBFdmVudCYgZXZlbnQpIHsKKyAgICByZXR1cm4gUygpLT5pbmplY3RTZW5zb3JEYXRhKGV2ZW50KTsKKyAgfQorCisgIFJldHVybjx2b2lkPiByZWdpc3RlckRpcmVjdENoYW5uZWwoCisgICAgICAgICAgY29uc3QgU2hhcmVkTWVtSW5mbyYgbWVtLCBJU2Vuc29yczo6cmVnaXN0ZXJEaXJlY3RDaGFubmVsX2NiIF9oaWRsX2NiKTsKKworICBSZXR1cm48UmVzdWx0PiB1bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChpbnQzMl90IGNoYW5uZWxIYW5kbGUpIHsKKyAgICByZXR1cm4gUygpLT51bnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChjaGFubmVsSGFuZGxlKTsKKyAgfQorCisgIFJldHVybjx2b2lkPiBjb25maWdEaXJlY3RSZXBvcnQoCisgICAgICAgICAgaW50MzJfdCBzZW5zb3JIYW5kbGUsIGludDMyX3QgY2hhbm5lbEhhbmRsZSwgUmF0ZUxldmVsIHJhdGUsCisgICAgICAgICAgSVNlbnNvcnM6OmNvbmZpZ0RpcmVjdFJlcG9ydF9jYiBfaGlkbF9jYikgeworICAgIHJldHVybiBTKCktPmNvbmZpZ0RpcmVjdFJlcG9ydChzZW5zb3JIYW5kbGUsIGNoYW5uZWxIYW5kbGUsIHJhdGUsIF9oaWRsX2NiKTsKKyAgfQorCisgIGlubGluZSBzcDxJU2Vuc29ycz4mIFMoKSB7CisgICAgcmV0dXJuIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPnNlbnNvcnM7CisgIH0KKworICBpbmxpbmUgc3RhdGljIFNlbnNvckZsYWdCaXRzIGV4dHJhY3RSZXBvcnRNb2RlKHVpbnQ2NF90IGZsYWcpIHsKKyAgICByZXR1cm4gKFNlbnNvckZsYWdCaXRzKSAoZmxhZworICAgICAgICAmICgodWludDY0X3QpIFNlbnNvckZsYWdCaXRzOjpDT05USU5VT1VTX01PREUKKyAgICAgICAgICB8ICh1aW50NjRfdCkgU2Vuc29yRmxhZ0JpdHM6Ok9OX0NIQU5HRV9NT0RFCisgICAgICAgICAgfCAodWludDY0X3QpIFNlbnNvckZsYWdCaXRzOjpPTkVfU0hPVF9NT0RFCisgICAgICAgICAgfCAodWludDY0X3QpIFNlbnNvckZsYWdCaXRzOjpTUEVDSUFMX1JFUE9SVElOR19NT0RFKSk7CisgIH0KKworICBpbmxpbmUgc3RhdGljIGJvb2wgaXNNZXRhU2Vuc29yVHlwZShTZW5zb3JUeXBlIHR5cGUpIHsKKyAgICByZXR1cm4gKHR5cGUgPT0gU2Vuc29yVHlwZTo6TUVUQV9EQVRBCisgICAgICAgICAgICB8fCB0eXBlID09IFNlbnNvclR5cGU6OkRZTkFNSUNfU0VOU09SX01FVEEKKyAgICAgICAgICAgIHx8IHR5cGUgPT0gU2Vuc29yVHlwZTo6QURESVRJT05BTF9JTkZPKTsKKyAgfQorCisgIGlubGluZSBzdGF0aWMgYm9vbCBpc1ZhbGlkVHlwZShTZW5zb3JUeXBlIHR5cGUpIHsKKyAgICByZXR1cm4gKGludDMyX3QpIHR5cGUgPiAwOworICB9CisKKyAgdm9pZCB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGUgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpuYW5vc2Vjb25kcyBzYW1wbGluZ1BlcmlvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzIGR1cmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU2Vuc29yRXZlbnRzQ2hlY2tlciAmY2hlY2tlcik7CisgIHZvaWQgdGVzdFNhbXBsaW5nUmF0ZUhvdFN3aXRjaE9wZXJhdGlvbihTZW5zb3JUeXBlIHR5cGUpOworICB2b2lkIHRlc3RCYXRjaGluZ09wZXJhdGlvbihTZW5zb3JUeXBlIHR5cGUpOworICB2b2lkIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oCisgICAgICBTZW5zb3JUeXBlIHR5cGUsIFNoYXJlZE1lbVR5cGUgbWVtVHlwZSwgUmF0ZUxldmVsIHJhdGUsIGNvbnN0IFNlbnNvckV2ZW50c0NoZWNrZXIgJmNoZWNrZXIpOworCisgIHN0YXRpYyB2b2lkIGFzc2VydFR5cGVNYXRjaFN0cmluZ1R5cGUoU2Vuc29yVHlwZSB0eXBlLCBjb25zdCBoaWRsX3N0cmluZyYgc3RyaW5nVHlwZSk7CisgIHN0YXRpYyB2b2lkIGFzc2VydFR5cGVNYXRjaFJlcG9ydE1vZGUoU2Vuc29yVHlwZSB0eXBlLCBTZW5zb3JGbGFnQml0cyByZXBvcnRNb2RlKTsKKyAgc3RhdGljIHZvaWQgYXNzZXJ0RGVsYXlNYXRjaFJlcG9ydE1vZGUoCisgICAgICAgICAgaW50MzJfdCBtaW5EZWxheSwgaW50MzJfdCBtYXhEZWxheSwgU2Vuc29yRmxhZ0JpdHMgcmVwb3J0TW9kZSk7CisgIHN0YXRpYyBTZW5zb3JGbGFnQml0cyBleHBlY3RlZFJlcG9ydE1vZGVGb3JUeXBlKFNlbnNvclR5cGUgdHlwZSk7CisgIHN0YXRpYyBib29sIGlzRGlyZWN0UmVwb3J0UmF0ZVN1cHBvcnRlZChTZW5zb3JJbmZvIHNlbnNvciwgUmF0ZUxldmVsIHJhdGUpOworICBzdGF0aWMgYm9vbCBpc0RpcmVjdENoYW5uZWxUeXBlU3VwcG9ydGVkKFNlbnNvckluZm8gc2Vuc29yLCBTaGFyZWRNZW1UeXBlIHR5cGUpOworCisgIC8vIGNoZWNrZXJzCisgIHN0YXRpYyBjb25zdCBWZWMzTm9ybUNoZWNrZXIgc0FjY2VsTm9ybUNoZWNrZXI7CisgIHN0YXRpYyBjb25zdCBWZWMzTm9ybUNoZWNrZXIgc0d5cm9Ob3JtQ2hlY2tlcjsKKworICAvLyBhbGwgc2Vuc29ycyBhbmQgZGlyZWN0IGNoYW5ubmVscyB1c2VkCisgIHN0ZDo6dW5vcmRlcmVkX3NldDxpbnQzMl90PiBtU2Vuc29ySGFuZGxlczsKKyAgc3RkOjp1bm9yZGVyZWRfc2V0PGludDMyX3Q+IG1EaXJlY3RDaGFubmVsSGFuZGxlczsKK307CisKK2NvbnN0IFZlYzNOb3JtQ2hlY2tlciBTZW5zb3JzSGlkbFRlc3Q6OnNBY2NlbE5vcm1DaGVja2VyKAorICAgICAgICBWZWMzTm9ybUNoZWNrZXI6OmJ5Tm9taW5hbChHUkFWSVRZX0VBUlRILCAwLjVmLyptL3NeMiovKSk7Citjb25zdCBWZWMzTm9ybUNoZWNrZXIgU2Vuc29yc0hpZGxUZXN0OjpzR3lyb05vcm1DaGVja2VyKAorICAgICAgICBWZWMzTm9ybUNoZWNrZXI6OmJ5Tm9taW5hbCgwLmYsIDAuMWYvKnJhZC9zKi8pKTsKKworUmV0dXJuPFJlc3VsdD4gU2Vuc29yc0hpZGxUZXN0OjphY3RpdmF0ZShpbnQzMl90IHNlbnNvckhhbmRsZSwgYm9vbCBlbmFibGVkKSB7CisgIC8vIElmIGFjdGl2YXRpbmcgYSBzZW5zb3IsIGFkZCB0aGUgaGFuZGxlIGluIGEgc2V0IHNvIHRoYXQgd2hlbiB0ZXN0IGZhaWxzIGl0IGNhbiBiZSB0dXJuZWQgb2ZmLgorICAvLyBUaGUgaGFuZGxlIGlzIG5vdCByZW1vdmVkIHdoZW4gaXQgaXMgZGVhY3RpdmF0aW5nIG9uIHB1cnBvc2Ugc28gdGhhdCBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvCisgIC8vIGNoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2YgZGVhY3RpdmF0aW9uLiBEZWFjdGl2YXRpbmcgYSBzZW5zb3IgbW9yZSB0aGFuIG9uY2UgZG9lcyBub3QgaGF2ZQorICAvLyBuZWdhdGl2ZSBlZmZlY3QuCisgIGlmIChlbmFibGVkKSB7CisgICAgbVNlbnNvckhhbmRsZXMuaW5zZXJ0KHNlbnNvckhhbmRsZSk7CisgIH0KKyAgcmV0dXJuIFMoKS0+YWN0aXZhdGUoc2Vuc29ySGFuZGxlLCBlbmFibGVkKTsKK30KKworUmV0dXJuPHZvaWQ+IFNlbnNvcnNIaWRsVGVzdDo6cmVnaXN0ZXJEaXJlY3RDaGFubmVsKAorICAgIGNvbnN0IFNoYXJlZE1lbUluZm8mIG1lbSwgSVNlbnNvcnM6OnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbF9jYiBjYikgeworICAvLyBJZiByZWdpc3RlcmF0aW9uIG9mIGEgY2hhbm5lbCBzdWNjZWVkcywgYWRkIHRoZSBoYW5kbGUgb2YgY2hhbm5lbCB0byBhIHNldCBzbyB0aGF0IGl0IGNhbiBiZQorICAvLyB1bnJlZ2lzdGVyZWQgd2hlbiB0ZXN0IGZhaWxzLiBVbnJlZ2lzdGVyIGEgY2hhbm5lbCBkb2VzIG5vdCByZW1vdmUgdGhlIGhhbmRsZSBvbiBwdXJwb3NlLgorICAvLyBVbnJlZ2lzdGVyaW5nIGEgY2hhbm5lbCBtb3JlIHRoYW4gb25jZSBzaG91bGQgbm90IGhhdmUgbmVnYXRpdmUgZWZmZWN0LgorICBTKCktPnJlZ2lzdGVyRGlyZWN0Q2hhbm5lbChtZW0sCisgICAgICBbJl0gKGF1dG8gcmVzdWx0LCBhdXRvIGNoYW5uZWxIYW5kbGUpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBSZXN1bHQ6Ok9LKSB7CisgICAgICAgICAgbURpcmVjdENoYW5uZWxIYW5kbGVzLmluc2VydChjaGFubmVsSGFuZGxlKTsKKyAgICAgICAgfQorICAgICAgICBjYihyZXN1bHQsIGNoYW5uZWxIYW5kbGUpOworICAgICAgfSk7CisgIHJldHVybiBWb2lkKCk7Cit9CisKK3N0ZDo6dmVjdG9yPEV2ZW50PiBTZW5zb3JzSGlkbFRlc3Q6OmNvbGxlY3RFdmVudHModXNlY29uZHNfdCB0aW1lTGltaXRVcywgc2l6ZV90IG5FdmVudExpbWl0LAorICAgICAgYm9vbCBjbGVhckJlZm9yZVN0YXJ0LCBib29sIGNoYW5nZUNvbGxlY3Rpb24pIHsKKyAgc3RkOjp2ZWN0b3I8RXZlbnQ+IGV2ZW50czsKKyAgY29uc3RleHByIHVzZWNvbmRzX3QgU0xFRVBfR1JBTlVMQVJJVFkgPSAxMDAqMTAwMDsgLy9ncmFudWxhcml0eSAxMDAgbXMKKworICBBTE9HSSgiY29sbGVjdCBtYXggb2YgJXp1IGV2ZW50cyBmb3IgJWQgdXMsIGNsZWFyQmVmb3JlU3RhcnQgJWQiLAorICAgICAgICBuRXZlbnRMaW1pdCwgdGltZUxpbWl0VXMsIGNsZWFyQmVmb3JlU3RhcnQpOworCisgIGlmIChjaGFuZ2VDb2xsZWN0aW9uKSB7CisgICAgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+c2V0Q29sbGVjdGlvbih0cnVlKTsKKyAgfQorICBpZiAoY2xlYXJCZWZvcmVTdGFydCkgeworICAgIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPmNhdEV2ZW50cyhudWxscHRyKTsKKyAgfQorCisgIHdoaWxlICh0aW1lTGltaXRVcyA+IDApIHsKKyAgICB1c2Vjb25kc190IGR1cmF0aW9uID0gc3RkOjptaW4oU0xFRVBfR1JBTlVMQVJJVFksIHRpbWVMaW1pdFVzKTsKKyAgICB1c2xlZXAoZHVyYXRpb24pOworICAgIHRpbWVMaW1pdFVzIC09IGR1cmF0aW9uOworCisgICAgU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKS0+Y2F0RXZlbnRzKCZldmVudHMpOworICAgIGlmIChldmVudHMuc2l6ZSgpID49IG5FdmVudExpbWl0KSB7CisgICAgICBicmVhazsKKyAgICB9CisgICAgQUxPR1YoInRpbWUgdG8gZ28gPSAlZCwgZXZlbnRzIHRvIGdvID0gJWQiLAorICAgICAgICAgIChpbnQpdGltZUxpbWl0VXMsIChpbnQpKG5FdmVudExpbWl0IC0gZXZlbnRzLnNpemUoKSkpOworICB9CisKKyAgaWYgKGNoYW5nZUNvbGxlY3Rpb24pIHsKKyAgICBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5zZXRDb2xsZWN0aW9uKGZhbHNlKTsKKyAgfQorICByZXR1cm4gZXZlbnRzOworfQorCit2b2lkIFNlbnNvcnNIaWRsVGVzdDo6YXNzZXJ0VHlwZU1hdGNoU3RyaW5nVHlwZShTZW5zb3JUeXBlIHR5cGUsIGNvbnN0IGhpZGxfc3RyaW5nJiBzdHJpbmdUeXBlKSB7CisKKyAgaWYgKHR5cGUgPj0gU2Vuc29yVHlwZTo6REVWSUNFX1BSSVZBVEVfQkFTRSkgeworICAgIHJldHVybjsKKyAgfQorCisgIHN3aXRjaCAodHlwZSkgeworI2RlZmluZSBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUodHlwZSkgXAorICAgIGNhc2UgU2Vuc29yVHlwZTo6dHlwZTogQVNTRVJUX1NUUkVRKFNFTlNPUl9TVFJJTkdfVFlQRV8gIyMgdHlwZSwgc3RyaW5nVHlwZS5jX3N0cigpKTsgYnJlYWs7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEFDQ0VMRVJPTUVURVIpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShBQ0NFTEVST01FVEVSX1VOQ0FMSUJSQVRFRCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEFERElUSU9OQUxfSU5GTyk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEFNQklFTlRfVEVNUEVSQVRVUkUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShERVZJQ0VfT1JJRU5UQVRJT04pOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShEWU5BTUlDX1NFTlNPUl9NRVRBKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoR0FNRV9ST1RBVElPTl9WRUNUT1IpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHRU9NQUdORVRJQ19ST1RBVElPTl9WRUNUT1IpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHTEFOQ0VfR0VTVFVSRSk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEdSQVZJVFkpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHWVJPU0NPUEUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShHWVJPU0NPUEVfVU5DQUxJQlJBVEVEKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoSEVBUlRfQkVBVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKEhFQVJUX1JBVEUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShMSUdIVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKExJTkVBUl9BQ0NFTEVSQVRJT04pOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShMT1dfTEFURU5DWV9PRkZCT0RZX0RFVEVDVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKE1BR05FVElDX0ZJRUxEKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoTUFHTkVUSUNfRklFTERfVU5DQUxJQlJBVEVEKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoTU9USU9OX0RFVEVDVCk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKE9SSUVOVEFUSU9OKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoUElDS19VUF9HRVNUVVJFKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoUE9TRV82RE9GKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoUFJFU1NVUkUpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShQUk9YSU1JVFkpOworICAgIENIRUNLX1RZUEVfU1RSSU5HX0ZPUl9TRU5TT1JfVFlQRShSRUxBVElWRV9IVU1JRElUWSk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFJPVEFUSU9OX1ZFQ1RPUik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFNJR05JRklDQU5UX01PVElPTik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFNUQVRJT05BUllfREVURUNUKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoU1RFUF9DT1VOVEVSKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoU1RFUF9ERVRFQ1RPUik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFRFTVBFUkFUVVJFKTsKKyAgICBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUoVElMVF9ERVRFQ1RPUik7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFdBS0VfR0VTVFVSRSk7CisgICAgQ0hFQ0tfVFlQRV9TVFJJTkdfRk9SX1NFTlNPUl9UWVBFKFdSSVNUX1RJTFRfR0VTVFVSRSk7CisgICAgZGVmYXVsdDoKKyAgICAgIEZBSUwoKSA8PCAiVHlwZSAiIDw8IHN0YXRpY19jYXN0PGludD4odHlwZSkgPDwgIiBpbiBhbmRyb2lkIGRlZmluZWQgcmFuZ2UgaXMgbm90IGNoZWNrZWQsICIKKyAgICAgICAgICAgICA8PCAic3RyaW5nVHlwZSA9ICIgPDwgc3RyaW5nVHlwZTsKKyN1bmRlZiBDSEVDS19UWVBFX1NUUklOR19GT1JfU0VOU09SX1RZUEUKKyAgfQorfQorCit2b2lkIFNlbnNvcnNIaWRsVGVzdDo6YXNzZXJ0VHlwZU1hdGNoUmVwb3J0TW9kZShTZW5zb3JUeXBlIHR5cGUsIFNlbnNvckZsYWdCaXRzIHJlcG9ydE1vZGUpIHsKKyAgaWYgKHR5cGUgPj0gU2Vuc29yVHlwZTo6REVWSUNFX1BSSVZBVEVfQkFTRSkgeworICAgIHJldHVybjsKKyAgfQorCisgIFNlbnNvckZsYWdCaXRzIGV4cGVjdGVkID0gZXhwZWN0ZWRSZXBvcnRNb2RlRm9yVHlwZSh0eXBlKTsKKworICBBU1NFUlRfVFJVRShleHBlY3RlZCA9PSAoU2Vuc29yRmxhZ0JpdHMpIC0xIHx8IGV4cGVjdGVkID09IHJlcG9ydE1vZGUpCisgICAgICA8PCAicmVwb3J0TW9kZT0iIDw8IHN0YXRpY19jYXN0PGludD4ocmVwb3J0TW9kZSkKKyAgICAgIDw8ICJleHBlY3RlZD0iIDw8IHN0YXRpY19jYXN0PGludD4oZXhwZWN0ZWQpOworfQorCit2b2lkIFNlbnNvcnNIaWRsVGVzdDo6YXNzZXJ0RGVsYXlNYXRjaFJlcG9ydE1vZGUoCisgICAgaW50MzJfdCBtaW5EZWxheSwgaW50MzJfdCBtYXhEZWxheSwgU2Vuc29yRmxhZ0JpdHMgcmVwb3J0TW9kZSkgeworICBzd2l0Y2gocmVwb3J0TW9kZSkgeworICAgIGNhc2UgU2Vuc29yRmxhZ0JpdHM6OkNPTlRJTlVPVVNfTU9ERToKKyAgICAgIEFTU0VSVF9MVCgwLCBtaW5EZWxheSk7CisgICAgICBBU1NFUlRfTEUoMCwgbWF4RGVsYXkpOworICAgICAgYnJlYWs7CisgICAgY2FzZSBTZW5zb3JGbGFnQml0czo6T05fQ0hBTkdFX01PREU6CisgICAgICBBU1NFUlRfTEUoMCwgbWluRGVsYXkpOworICAgICAgQVNTRVJUX0xFKDAsIG1heERlbGF5KTsKKyAgICAgIGJyZWFrOworICAgIGNhc2UgU2Vuc29yRmxhZ0JpdHM6Ok9ORV9TSE9UX01PREU6CisgICAgICBBU1NFUlRfRVEoLTEsIG1pbkRlbGF5KTsKKyAgICAgIEFTU0VSVF9FUSgwLCBtYXhEZWxheSk7CisgICAgICBicmVhazsKKyAgICBjYXNlIFNlbnNvckZsYWdCaXRzOjpTUEVDSUFMX1JFUE9SVElOR19NT0RFOgorICAgICAgLy8gZG8gbm90IGVuZm9yY2UgYW55dGhpbmcgZm9yIHNwZWNpYWwgcmVwb3J0aW5nIG1vZGUKKyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICBGQUlMKCkgPDwgIlJlcG9ydCBtb2RlICIgPDwgc3RhdGljX2Nhc3Q8aW50PihyZXBvcnRNb2RlKSA8PCAiIG5vdCBjaGVja2VkIjsKKyAgfQorfQorCisvLyByZXR1cm4gLTEgbWVhbnMgbm8gZXhwZWN0YXRpb24gZm9yIHRoaXMgdHlwZQorU2Vuc29yRmxhZ0JpdHMgU2Vuc29yc0hpZGxUZXN0OjpleHBlY3RlZFJlcG9ydE1vZGVGb3JUeXBlKFNlbnNvclR5cGUgdHlwZSkgeworICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVI6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpHWVJPU0NPUEU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpNQUdORVRJQ19GSUVMRDoKKyAgICBjYXNlIFNlbnNvclR5cGU6Ok9SSUVOVEFUSU9OOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6UFJFU1NVUkU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpURU1QRVJBVFVSRToKKyAgICBjYXNlIFNlbnNvclR5cGU6OkdSQVZJVFk6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpMSU5FQVJfQUNDRUxFUkFUSU9OOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6Uk9UQVRJT05fVkVDVE9SOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTERfVU5DQUxJQlJBVEVEOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6R0FNRV9ST1RBVElPTl9WRUNUT1I6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpHWVJPU0NPUEVfVU5DQUxJQlJBVEVEOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6R0VPTUFHTkVUSUNfUk9UQVRJT05fVkVDVE9SOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6UE9TRV82RE9GOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6SEVBUlRfQkVBVDoKKyAgICAgIHJldHVybiBTZW5zb3JGbGFnQml0czo6Q09OVElOVU9VU19NT0RFOworCisgICAgY2FzZSBTZW5zb3JUeXBlOjpMSUdIVDoKKyAgICBjYXNlIFNlbnNvclR5cGU6OlBST1hJTUlUWToKKyAgICBjYXNlIFNlbnNvclR5cGU6OlJFTEFUSVZFX0hVTUlESVRZOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6QU1CSUVOVF9URU1QRVJBVFVSRToKKyAgICBjYXNlIFNlbnNvclR5cGU6OkhFQVJUX1JBVEU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpERVZJQ0VfT1JJRU5UQVRJT046CisgICAgY2FzZSBTZW5zb3JUeXBlOjpNT1RJT05fREVURUNUOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RFUF9DT1VOVEVSOgorICAgIGNhc2UgU2Vuc29yVHlwZTo6TE9XX0xBVEVOQ1lfT0ZGQk9EWV9ERVRFQ1Q6CisgICAgICByZXR1cm4gU2Vuc29yRmxhZ0JpdHM6Ok9OX0NIQU5HRV9NT0RFOworCisgICAgY2FzZSBTZW5zb3JUeXBlOjpTSUdOSUZJQ0FOVF9NT1RJT046CisgICAgY2FzZSBTZW5zb3JUeXBlOjpXQUtFX0dFU1RVUkU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpHTEFOQ0VfR0VTVFVSRToKKyAgICBjYXNlIFNlbnNvclR5cGU6OlBJQ0tfVVBfR0VTVFVSRToKKyAgICAgIHJldHVybiBTZW5zb3JGbGFnQml0czo6T05FX1NIT1RfTU9ERTsKKworICAgIGNhc2UgU2Vuc29yVHlwZTo6U1RFUF9ERVRFQ1RPUjoKKyAgICBjYXNlIFNlbnNvclR5cGU6OlRJTFRfREVURUNUT1I6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpXUklTVF9USUxUX0dFU1RVUkU6CisgICAgY2FzZSBTZW5zb3JUeXBlOjpEWU5BTUlDX1NFTlNPUl9NRVRBOgorICAgICAgcmV0dXJuIFNlbnNvckZsYWdCaXRzOjpTUEVDSUFMX1JFUE9SVElOR19NT0RFOworCisgICAgZGVmYXVsdDoKKyAgICAgIEFMT0dXKCJUeXBlICVkIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBleHBlY3RlZFJlcG9ydE1vZGVGb3JUeXBlIiwgKGludCl0eXBlKTsKKyAgICAgIHJldHVybiAoU2Vuc29yRmxhZ0JpdHMpLTE7CisgIH0KK30KKworYm9vbCBTZW5zb3JzSGlkbFRlc3Q6OmlzRGlyZWN0UmVwb3J0UmF0ZVN1cHBvcnRlZChTZW5zb3JJbmZvIHNlbnNvciwgUmF0ZUxldmVsIHJhdGUpIHsKKyAgdW5zaWduZWQgaW50IHIgPQorICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihzZW5zb3IuZmxhZ3MgJiBTZW5zb3JGbGFnQml0czo6TUFTS19ESVJFQ1RfUkVQT1JUKQorICAgICAgICA+PiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBpbnQ+KFNlbnNvckZsYWdTaGlmdDo6RElSRUNUX1JFUE9SVCk7CisgIHJldHVybiByID49IHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4ocmF0ZSk7Cit9CisKK2Jvb2wgU2Vuc29yc0hpZGxUZXN0Ojppc0RpcmVjdENoYW5uZWxUeXBlU3VwcG9ydGVkKFNlbnNvckluZm8gc2Vuc29yLCBTaGFyZWRNZW1UeXBlIHR5cGUpIHsKKyAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBTaGFyZWRNZW1UeXBlOjpBU0hNRU06CisgICAgICByZXR1cm4gKHNlbnNvci5mbGFncyAmIFNlbnNvckZsYWdCaXRzOjpESVJFQ1RfQ0hBTk5FTF9BU0hNRU0pICE9IDA7CisgICAgY2FzZSBTaGFyZWRNZW1UeXBlOjpHUkFMTE9DOgorICAgICAgcmV0dXJuIChzZW5zb3IuZmxhZ3MgJiBTZW5zb3JGbGFnQml0czo6RElSRUNUX0NIQU5ORUxfR1JBTExPQykgIT0gMDsKKyAgICBkZWZhdWx0OgorICAgICAgcmV0dXJuIGZhbHNlOworICB9Cit9CisKK1NlbnNvckluZm8gU2Vuc29yc0hpZGxUZXN0OjpkZWZhdWx0U2Vuc29yQnlUeXBlKFNlbnNvclR5cGUgdHlwZSkgeworICBTZW5zb3JJbmZvIHJldDsKKworICByZXQudHlwZSA9IChTZW5zb3JUeXBlKSAtMTsKKyAgUygpLT5nZXRTZW5zb3JzTGlzdCgKKyAgICAgIFsmXSAoY29uc3QgYXV0byAmbGlzdCkgeworICAgICAgICBjb25zdCBzaXplX3QgY291bnQgPSBsaXN0LnNpemUoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgaWYgKGxpc3RbaV0udHlwZSA9PSB0eXBlKSB7CisgICAgICAgICAgICByZXQgPSBsaXN0W2ldOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgcmV0dXJuIHJldDsKK30KKworc3RkOjp2ZWN0b3I8U2Vuc29ySW5mbz4gU2Vuc29yc0hpZGxUZXN0OjpnZXRTZW5zb3JzTGlzdCgpIHsKKyAgc3RkOjp2ZWN0b3I8U2Vuc29ySW5mbz4gcmV0OworCisgIFMoKS0+Z2V0U2Vuc29yc0xpc3QoCisgICAgICBbJl0gKGNvbnN0IGF1dG8gJmxpc3QpIHsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGNvdW50ID0gbGlzdC5zaXplKCk7CisgICAgICAgIHJldC5yZXNlcnZlKGxpc3Quc2l6ZSgpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICAgcmV0LnB1c2hfYmFjayhsaXN0W2ldKTsKKyAgICAgICAgfQorICAgICAgfSk7CisKKyAgcmV0dXJuIHJldDsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgbGlzdCByZXR1cm5lZCBpcyB2YWxpZAorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgU2Vuc29yTGlzdFZhbGlkKSB7CisgIFMoKS0+Z2V0U2Vuc29yc0xpc3QoCisgICAgICBbJl0gKGNvbnN0IGF1dG8gJmxpc3QpIHsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGNvdW50ID0gbGlzdC5zaXplKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgIGNvbnN0IGF1dG8gJnMgPSBsaXN0W2ldOworICAgICAgICAgIFNDT1BFRF9UUkFDRSg6OnRlc3Rpbmc6Ok1lc3NhZ2UoKSA8PCBpIDw8ICIvIiA8PCBjb3VudCA8PCAiOiAiCisgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgaGFuZGxlPTB4IiA8PCBzdGQ6OmhleCA8PCBzdGQ6OnNldHcoOCkgPDwgc3RkOjpzZXRmaWxsKCcwJykKKyAgICAgICAgICAgICAgICAgICAgICAgPDwgcy5zZW5zb3JIYW5kbGUgPDwgc3RkOjpkZWMKKyAgICAgICAgICAgICAgICAgICAgICAgPDwgIiB0eXBlPSIgPDwgc3RhdGljX2Nhc3Q8aW50PihzLnR5cGUpCisgICAgICAgICAgICAgICAgICAgICAgIDw8ICIgbmFtZT0iIDw8IHMubmFtZSk7CisKKyAgICAgICAgICAvLyBUZXN0IG5vbi1lbXB0eSB0eXBlIHN0cmluZworICAgICAgICAgIEVYUEVDVF9GQUxTRShzLnR5cGVBc1N0cmluZy5lbXB0eSgpKTsKKworICAgICAgICAgIC8vIFRlc3QgZGVmaW5lZCB0eXBlIG1hdGNoZXMgZGVmaW5lZCBzdHJpbmcgdHlwZQorICAgICAgICAgIEVYUEVDVF9OT19GQVRBTF9GQUlMVVJFKGFzc2VydFR5cGVNYXRjaFN0cmluZ1R5cGUocy50eXBlLCBzLnR5cGVBc1N0cmluZykpOworCisgICAgICAgICAgLy8gVGVzdCBpZiBhbGwgc2Vuc29yIGhhcyBuYW1lIGFuZCB2ZW5kb3IKKyAgICAgICAgICBFWFBFQ1RfRkFMU0Uocy5uYW1lLmVtcHR5KCkpOworICAgICAgICAgIEVYUEVDVF9GQUxTRShzLnZlbmRvci5lbXB0eSgpKTsKKworICAgICAgICAgIC8vIFRlc3QgcG93ZXIgPiAwLCBtYXhSYW5nZSA+IDAKKyAgICAgICAgICBFWFBFQ1RfTEUoMCwgcy5wb3dlcik7CisgICAgICAgICAgRVhQRUNUX0xUKDAsIHMubWF4UmFuZ2UpOworCisgICAgICAgICAgLy8gSW5mbyB0eXBlLCBzaG91bGQgaGF2ZSBubyBzZW5zb3IKKyAgICAgICAgICBFWFBFQ1RfRkFMU0UoCisgICAgICAgICAgICAgIHMudHlwZSA9PSBTZW5zb3JUeXBlOjpBRERJVElPTkFMX0lORk8KKyAgICAgICAgICAgICAgfHwgcy50eXBlID09IFNlbnNvclR5cGU6Ok1FVEFfREFUQSk7CisKKyAgICAgICAgICAvLyBUZXN0IGZpZm9NYXggPj0gZmlmb1Jlc2VydmVkCisgICAgICAgICAgRVhQRUNUX0dFKHMuZmlmb01heEV2ZW50Q291bnQsIHMuZmlmb1Jlc2VydmVkRXZlbnRDb3VudCkKKyAgICAgICAgICAgICAgPDwgIm1heD0iIDw8IHMuZmlmb01heEV2ZW50Q291bnQgPDwgIiByZXNlcnZlZD0iIDw8IHMuZmlmb1Jlc2VydmVkRXZlbnRDb3VudDsKKworICAgICAgICAgIC8vIFRlc3QgUmVwb3J0aW5nIG1vZGUgdmFsaWQKKyAgICAgICAgICBFWFBFQ1RfTk9fRkFUQUxfRkFJTFVSRShhc3NlcnRUeXBlTWF0Y2hSZXBvcnRNb2RlKHMudHlwZSwgZXh0cmFjdFJlcG9ydE1vZGUocy5mbGFncykpKTsKKworICAgICAgICAgIC8vIFRlc3QgbWluIG1heCBhcmUgaW4gdGhlIHJpZ2h0IG9yZGVyCisgICAgICAgICAgRVhQRUNUX0xFKHMubWluRGVsYXksIHMubWF4RGVsYXkpOworICAgICAgICAgIC8vIFRlc3QgbWluL21heCBkZWxheSBtYXRjaGVzIHJlcG9ydGluZyBtb2RlCisgICAgICAgICAgRVhQRUNUX05PX0ZBVEFMX0ZBSUxVUkUoCisgICAgICAgICAgICAgIGFzc2VydERlbGF5TWF0Y2hSZXBvcnRNb2RlKHMubWluRGVsYXksIHMubWF4RGVsYXksIGV4dHJhY3RSZXBvcnRNb2RlKHMuZmxhZ3MpKSk7CisgICAgICAgIH0KKyAgICAgIH0pOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBsaXN0IHJldHVybmVkIGlzIHZhbGlkCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBTZXRPcGVyYXRpb25Nb2RlKSB7CisgICAgc3RkOjp2ZWN0b3I8U2Vuc29ySW5mbz4gc2Vuc29yTGlzdCA9IGdldFNlbnNvcnNMaXN0KCk7CisKKyAgICBib29sIG5lZWRPcGVyYXRpb25Nb2RlU3VwcG9ydCA9CisgICAgICAgIHN0ZDo6YW55X29mKHNlbnNvckxpc3QuYmVnaW4oKSwgc2Vuc29yTGlzdC5lbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgW10gKGNvbnN0IGF1dG8mIHMpIHsKKyAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHMuZmxhZ3MgJiBTZW5zb3JGbGFnQml0czo6REFUQV9JTkpFQ1RJT04pICE9IDA7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgIGlmICghbmVlZE9wZXJhdGlvbk1vZGVTdXBwb3J0KSB7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIFMoKS0+c2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlOjpOT1JNQUwpKTsKKyAgICBBU1NFUlRfRVEoUmVzdWx0OjpPSywgUygpLT5zZXRPcGVyYXRpb25Nb2RlKE9wZXJhdGlvbk1vZGU6OkRBVEFfSU5KRUNUSU9OKSk7CisgICAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIFMoKS0+c2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlOjpOT1JNQUwpKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgbGlzdCByZXR1cm5lZCBpcyB2YWxpZAorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgSW5qZWN0U2Vuc29yRXZlbnREYXRhKSB7CisgICAgc3RkOjp2ZWN0b3I8U2Vuc29ySW5mbz4gc2Vuc29yTGlzdCA9IGdldFNlbnNvcnNMaXN0KCk7CisgICAgc3RkOjp2ZWN0b3I8U2Vuc29ySW5mbz4gc2Vuc29yU3VwcG9ydEluamVjdGlvbjsKKworICAgIGJvb2wgbmVlZE9wZXJhdGlvbk1vZGVTdXBwb3J0ID0KKyAgICAgICAgc3RkOjphbnlfb2Yoc2Vuc29yTGlzdC5iZWdpbigpLCBzZW5zb3JMaXN0LmVuZCgpLAorICAgICAgICAgICAgICAgICAgICBbJnNlbnNvclN1cHBvcnRJbmplY3Rpb25dIChjb25zdCBhdXRvJiBzKSB7CisgICAgICAgICAgICAgICAgICAgICAgYm9vbCByZXQgPSAocy5mbGFncyAmIFNlbnNvckZsYWdCaXRzOjpEQVRBX0lOSkVDVElPTikgIT0gMDsKKyAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzZW5zb3JTdXBwb3J0SW5qZWN0aW9uLnB1c2hfYmFjayhzKTsKKyAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgaWYgKCFuZWVkT3BlcmF0aW9uTW9kZVN1cHBvcnQpIHsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBU1NFUlRfRVEoUmVzdWx0OjpPSywgUygpLT5zZXRPcGVyYXRpb25Nb2RlKE9wZXJhdGlvbk1vZGU6Ok5PUk1BTCkpOworICAgIEFTU0VSVF9FUShSZXN1bHQ6Ok9LLCBTKCktPnNldE9wZXJhdGlvbk1vZGUoT3BlcmF0aW9uTW9kZTo6REFUQV9JTkpFQ1RJT04pKTsKKworICAgIGZvciAoY29uc3QgYXV0byAmcyA6IHNlbnNvclN1cHBvcnRJbmplY3Rpb24pIHsKKyAgICAgIHN3aXRjaCAocy50eXBlKSB7CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUjoKKyAgICAgICAgY2FzZSBTZW5zb3JUeXBlOjpHWVJPU0NPUEU6CisgICAgICAgIGNhc2UgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQ6IHsKKyAgICAgICAgICB1c2xlZXAoMTAwMDAwKTsgLy8gc2xlZXAgMTAwbXMKKworICAgICAgICAgIEV2ZW50IGR1bW15OworICAgICAgICAgIGR1bW15LnRpbWVzdGFtcCA9IGFuZHJvaWQ6OmVsYXBzZWRSZWFsdGltZU5hbm8oKTsKKyAgICAgICAgICBkdW1teS5zZW5zb3JUeXBlID0gcy50eXBlOworICAgICAgICAgIGR1bW15LnNlbnNvckhhbmRsZSA9IHMuc2Vuc29ySGFuZGxlOworICAgICAgICAgIFZlYzMgdiA9IHsxLCAyLCAzLCBTZW5zb3JTdGF0dXM6OkFDQ1VSQUNZX0hJR0h9OworICAgICAgICAgIGR1bW15LnUudmVjMyA9IHY7CisKKyAgICAgICAgICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgUygpLT5pbmplY3RTZW5zb3JEYXRhKGR1bW15KSk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9CisgICAgQVNTRVJUX0VRKFJlc3VsdDo6T0ssIFMoKS0+c2V0T3BlcmF0aW9uTW9kZShPcGVyYXRpb25Nb2RlOjpOT1JNQUwpKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbFRlc3Q6OnRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om5hbm9zZWNvbmRzIHNhbXBsaW5nUGVyaW9kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMgZHVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTZW5zb3JFdmVudHNDaGVja2VyICZjaGVja2VyKSB7CisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBldmVudHM7CisKKyAgY29uc3QgaW50NjRfdCBzYW1wbGluZ1BlcmlvZEluTnMgPSBzYW1wbGluZ1BlcmlvZC5jb3VudCgpOworICBjb25zdCBpbnQ2NF90IGJhdGNoaW5nUGVyaW9kSW5OcyA9IDA7IC8vIG5vIGJhdGNoaW5nCisgIGNvbnN0IHVzZWNvbmRzX3QgbWluVGltZVVzID0gc3RkOjpjaHJvbm86Om1pY3Jvc2Vjb25kcyhkdXJhdGlvbikuY291bnQoKTsKKyAgY29uc3Qgc2l6ZV90IG1pbk5FdmVudCA9IGR1cmF0aW9uIC8gc2FtcGxpbmdQZXJpb2Q7CisKKyAgU2Vuc29ySW5mbyBzZW5zb3IgPSBkZWZhdWx0U2Vuc29yQnlUeXBlKHR5cGUpOworCisgIGlmICghaXNWYWxpZFR5cGUoc2Vuc29yLnR5cGUpKSB7CisgICAgLy8gbm8gZGVmYXVsdCBzZW5zb3Igb2YgdGhpcyB0eXBlCisgICAgcmV0dXJuOworICB9CisKKyAgaWYgKHN0ZDo6Y2hyb25vOjptaWNyb3NlY29uZHMoc2Vuc29yLm1pbkRlbGF5KSA+IHNhbXBsaW5nUGVyaW9kKSB7CisgICAgLy8gcmF0ZSBub3Qgc3VwcG9ydGVkCisgICAgcmV0dXJuOworICB9CisKKyAgaW50MzJfdCBoYW5kbGUgPSBzZW5zb3Iuc2Vuc29ySGFuZGxlOworCisgIEFTU0VSVF9FUShiYXRjaChoYW5kbGUsIHNhbXBsaW5nUGVyaW9kSW5OcywgYmF0Y2hpbmdQZXJpb2RJbk5zKSwgUmVzdWx0OjpPSyk7CisgIEFTU0VSVF9FUShhY3RpdmF0ZShoYW5kbGUsIDEpLCBSZXN1bHQ6Ok9LKTsKKyAgZXZlbnRzID0gY29sbGVjdEV2ZW50cyhtaW5UaW1lVXMsIG1pbk5FdmVudCwgdHJ1ZSAvKmNsZWFyQmVmb3JlU3RhcnQqLyk7CisgIEFTU0VSVF9FUShhY3RpdmF0ZShoYW5kbGUsIDApLCBSZXN1bHQ6Ok9LKTsKKworICBBTE9HSSgiQ29sbGVjdGVkICV6dSBzYW1wbGVzIiwgZXZlbnRzLnNpemUoKSk7CisKKyAgQVNTRVJUX0dUKGV2ZW50cy5zaXplKCksIDB1KTsKKworICBzaXplX3QgblJlYWxFdmVudCA9IDA7CisgIGJvb2wgaGFuZGxlTWlzbWF0Y2hSZXBvcnRlZCA9IGZhbHNlOworICBib29sIG1ldGFTZW5zb3JUeXBlRXJyb3JSZXBvcnRlZCA9IGZhbHNlOworICBmb3IgKGF1dG8gJiBlIDogZXZlbnRzKSB7CisgICAgaWYgKGUuc2Vuc29yVHlwZSA9PSB0eXBlKSB7CisgICAgICAvLyBhdm9pZCBnZW5lcmF0aW5nIGh1bmRyZWRzIG9mIGVycm9yCisgICAgICBpZiAoIWhhbmRsZU1pc21hdGNoUmVwb3J0ZWQpIHsKKyAgICAgICAgRVhQRUNUX0VRKGUuc2Vuc29ySGFuZGxlLCBoYW5kbGUpCisgICAgICAgICAgICA8PCAoaGFuZGxlTWlzbWF0Y2hSZXBvcnRlZCA9IHRydWUsCisgICAgICAgICAgICAgICAgIkV2ZW50IG9mIHRoZSBzYW1lIHR5cGUgbXVzdCBjb21lIGZyb20gdGhlIHNlbnNvciByZWdpc3RlcmVkIik7CisgICAgICB9CisgICAgICArKyBuUmVhbEV2ZW50OworICAgIH0gZWxzZSB7CisgICAgICAvLyBhdm9pZCBnZW5lcmF0aW5nIGh1bmRyZWRzIG9mIGVycm9yCisgICAgICBpZiAoIW1ldGFTZW5zb3JUeXBlRXJyb3JSZXBvcnRlZCkgeworICAgICAgICBFWFBFQ1RfVFJVRShpc01ldGFTZW5zb3JUeXBlKGUuc2Vuc29yVHlwZSkpCisgICAgICAgICAgICA8PCAobWV0YVNlbnNvclR5cGVFcnJvclJlcG9ydGVkID0gdHJ1ZSwKKyAgICAgICAgICAgICAgICAiT25seSBtZXRhIHR5cGVzIGFyZSBhbGxvd2VkIGJlc2lkZXMgdGhlIHR5cGUgcmVnaXN0ZXJlZCIpOworICAgICAgfQorICAgIH0KKyAgfQorCisgIHN0ZDo6c3RyaW5nIHM7CisgIEVYUEVDVF9UUlVFKGNoZWNrZXIuY2hlY2soZXZlbnRzLCAmcykpIDw8IHM7CisKKyAgRVhQRUNUX0dFKG5SZWFsRXZlbnQsIG1pbk5FdmVudCAvIDIpOyAvLyBtYWtlIHN1cmUgcmV0dXJuZWQgZXZlbnRzIGFyZSBub3QgYWxsIG1ldGEKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBVSSBzcGVlZCBhY2NlbGVyb21ldGVyIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgQWNjZWxlcm9tZXRlclN0cmVhbWluZ09wZXJhdGlvblNsb3cpIHsKKyAgdGVzdFN0cmVhbWluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzQWNjZWxOb3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gbm9ybWFsIHNwZWVkIGFjY2VsZXJvbWV0ZXIgc3RyZWFtaW5nIHByb3Blcmx5CitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBBY2NlbGVyb21ldGVyU3RyZWFtaW5nT3BlcmF0aW9uTm9ybWFsKSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzKDIwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzQWNjZWxOb3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gZ2FtZSBzcGVlZCBhY2NlbGVyb21ldGVyIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgQWNjZWxlcm9tZXRlclN0cmVhbWluZ09wZXJhdGlvbkZhc3QpIHsKKyAgdGVzdFN0cmVhbWluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc0FjY2VsTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIFVJIHNwZWVkIGd5cm9zY29wZSBzdHJlYW1pbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEd5cm9zY29wZVN0cmVhbWluZ09wZXJhdGlvblNsb3cpIHsKKyAgdGVzdFN0cmVhbWluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpHWVJPU0NPUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygyMDApLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKDUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNHeXJvTm9ybUNoZWNrZXIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIG5vcm1hbCBzcGVlZCBneXJvc2NvcGUgc3RyZWFtaW5nIHByb3Blcmx5CitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVTdHJlYW1pbmdPcGVyYXRpb25Ob3JtYWwpIHsKKyAgdGVzdFN0cmVhbWluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpHWVJPU0NPUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygyMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc0d5cm9Ob3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gZ2FtZSBzcGVlZCBneXJvc2NvcGUgc3RyZWFtaW5nIHByb3Blcmx5CitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVTdHJlYW1pbmdPcGVyYXRpb25GYXN0KSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6R1lST1NDT1BFLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc0d5cm9Ob3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gVUkgc3BlZWQgbWFnbmV0b21ldGVyIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyU3RyZWFtaW5nT3BlcmF0aW9uU2xvdykgeworICB0ZXN0U3RyZWFtaW5nT3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxELAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsQ2hlY2tlcigpKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBub3JtYWwgc3BlZWQgbWFnbmV0b21ldGVyIHN0cmVhbWluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyU3RyZWFtaW5nT3BlcmF0aW9uTm9ybWFsKSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcygyMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86OnNlY29uZHMoNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgTnVsbENoZWNrZXIoKSk7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gZ2FtZSBzcGVlZCBtYWduZXRvbWV0ZXIgc3RyZWFtaW5nIHByb3Blcmx5CitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBNYWduZXRvbWV0ZXJTdHJlYW1pbmdPcGVyYXRpb25GYXN0KSB7CisgIHRlc3RTdHJlYW1pbmdPcGVyYXRpb24oU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQsCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OmNocm9ubzo6c2Vjb25kcyg1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBOdWxsQ2hlY2tlcigpKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbFRlc3Q6OnRlc3RTYW1wbGluZ1JhdGVIb3RTd2l0Y2hPcGVyYXRpb24oU2Vuc29yVHlwZSB0eXBlKSB7CisgIHN0ZDo6dmVjdG9yPEV2ZW50PiBldmVudHMxLCBldmVudHMyOworCisgIGNvbnN0ZXhwciBpbnQ2NF90IGJhdGNoaW5nUGVyaW9kSW5OcyA9IDA7IC8vIG5vIGJhdGNoaW5nCisgIGNvbnN0ZXhwciBzaXplX3QgbWluTkV2ZW50ID0gNTA7CisKKyAgU2Vuc29ySW5mbyBzZW5zb3IgPSBkZWZhdWx0U2Vuc29yQnlUeXBlKHR5cGUpOworCisgIGlmICghaXNWYWxpZFR5cGUoc2Vuc29yLnR5cGUpKSB7CisgICAgLy8gbm8gZGVmYXVsdCBzZW5zb3Igb2YgdGhpcyB0eXBlCisgICAgcmV0dXJuOworICB9CisKKyAgaW50MzJfdCBoYW5kbGUgPSBzZW5zb3Iuc2Vuc29ySGFuZGxlOworICBpbnQ2NF90IG1pblNhbXBsaW5nUGVyaW9kSW5OcyA9IHNlbnNvci5taW5EZWxheSAqIDEwMDBsbDsKKyAgaW50NjRfdCBtYXhTYW1wbGluZ1BlcmlvZEluTnMgPSBzZW5zb3IubWF4RGVsYXkgKiAxMDAwbGw7CisKKyAgaWYgKG1pblNhbXBsaW5nUGVyaW9kSW5OcyA9PSBtYXhTYW1wbGluZ1BlcmlvZEluTnMpIHsKKyAgICAvLyBvbmx5IHN1cHBvcnQgc2luZ2xlIHJhdGUKKyAgICByZXR1cm47CisgIH0KKworICBBU1NFUlRfRVEoYmF0Y2goaGFuZGxlLCBtaW5TYW1wbGluZ1BlcmlvZEluTnMsIGJhdGNoaW5nUGVyaW9kSW5OcyksIFJlc3VsdDo6T0spOworICBBU1NFUlRfRVEoYWN0aXZhdGUoaGFuZGxlLCAxKSwgUmVzdWx0OjpPSyk7CisKKyAgdXNsZWVwKDUwMDAwMCk7IC8vIHNsZWVwIDAuNSBzZWMgdG8gd2FpdCBmb3IgY2hhbmdlIHJhdGUgdG8gaGFwcGVuCisgIGV2ZW50czEgPSBjb2xsZWN0RXZlbnRzKHNlbnNvci5taW5EZWxheSAqIG1pbk5FdmVudCwgbWluTkV2ZW50LCB0cnVlIC8qY2xlYXJCZWZvcmVTdGFydCovKTsKKworICBBU1NFUlRfRVEoYmF0Y2goaGFuZGxlLCBtYXhTYW1wbGluZ1BlcmlvZEluTnMsIGJhdGNoaW5nUGVyaW9kSW5OcyksIFJlc3VsdDo6T0spOworCisgIHVzbGVlcCg1MDAwMDApOyAvLyBzbGVlcCAwLjUgc2VjIHRvIHdhaXQgZm9yIGNoYW5nZSByYXRlIHRvIGhhcHBlbgorICBldmVudHMyID0gY29sbGVjdEV2ZW50cyhzZW5zb3IubWF4RGVsYXkgKiBtaW5ORXZlbnQsIG1pbk5FdmVudCwgdHJ1ZSAvKmNsZWFyQmVmb3JlU3RhcnQqLyk7CisKKyAgQVNTRVJUX0VRKGFjdGl2YXRlKGhhbmRsZSwgMCksIFJlc3VsdDo6T0spOworCisgIEFMT0dJKCJDb2xsZWN0ZWQgJXp1IGZhc3Qgc2FtcGxlcyBhbmQgJXp1IHNsb3cgc2FtcGxlcyIsIGV2ZW50czEuc2l6ZSgpLCBldmVudHMyLnNpemUoKSk7CisKKyAgQVNTRVJUX0dUKGV2ZW50czEuc2l6ZSgpLCAwdSk7CisgIEFTU0VSVF9HVChldmVudHMyLnNpemUoKSwgMHUpOworCisgIGludDY0X3QgbWluRGVsYXlBdmVyYWdlSW50ZXJ2YWwsIG1heERlbGF5QXZlcmFnZUludGVydmFsOworCisgIHNpemVfdCBuRXZlbnQgPSAwOworICBpbnQ2NF90IHByZXZUaW1lc3RhbXAgPSAtMTsKKyAgaW50NjRfdCB0aW1lc3RhbXBJbnRlcnZhbCA9IDA7CisgIGZvciAoYXV0byAmIGUgOiBldmVudHMxKSB7CisgICAgaWYgKGUuc2Vuc29yVHlwZSA9PSB0eXBlKSB7CisgICAgICBBU1NFUlRfRVEoZS5zZW5zb3JIYW5kbGUsIGhhbmRsZSk7CisgICAgICBpZiAocHJldlRpbWVzdGFtcCA+IDApIHsKKyAgICAgICAgdGltZXN0YW1wSW50ZXJ2YWwgKz0gZS50aW1lc3RhbXAgLSBwcmV2VGltZXN0YW1wOworICAgICAgfQorICAgICAgcHJldlRpbWVzdGFtcCA9IGUudGltZXN0YW1wOworICAgICAgKysgbkV2ZW50OworICAgIH0KKyAgfQorICBBU1NFUlRfR1QobkV2ZW50LCAydSk7CisgIG1pbkRlbGF5QXZlcmFnZUludGVydmFsID0gdGltZXN0YW1wSW50ZXJ2YWwgLyAobkV2ZW50IC0gMSk7CisKKyAgbkV2ZW50ID0gMDsKKyAgcHJldlRpbWVzdGFtcCA9IC0xOworICB0aW1lc3RhbXBJbnRlcnZhbCA9IDA7CisgIGZvciAoYXV0byAmIGUgOiBldmVudHMyKSB7CisgICAgaWYgKGUuc2Vuc29yVHlwZSA9PSB0eXBlKSB7CisgICAgICBBU1NFUlRfRVEoZS5zZW5zb3JIYW5kbGUsIGhhbmRsZSk7CisgICAgICBpZiAocHJldlRpbWVzdGFtcCA+IDApIHsKKyAgICAgICAgdGltZXN0YW1wSW50ZXJ2YWwgKz0gZS50aW1lc3RhbXAgLSBwcmV2VGltZXN0YW1wOworICAgICAgfQorICAgICAgcHJldlRpbWVzdGFtcCA9IGUudGltZXN0YW1wOworICAgICAgKysgbkV2ZW50OworICAgIH0KKyAgfQorICBBU1NFUlRfR1QobkV2ZW50LCAydSk7CisgIG1heERlbGF5QXZlcmFnZUludGVydmFsID0gdGltZXN0YW1wSW50ZXJ2YWwgLyAobkV2ZW50IC0gMSk7CisKKyAgLy8gY2hhbmdlIG9mIHJhdGUgaXMgc2lnbmlmaWNhbnQuCisgIEVYUEVDVF9HVCgobWF4RGVsYXlBdmVyYWdlSW50ZXJ2YWwgLSBtaW5EZWxheUF2ZXJhZ2VJbnRlcnZhbCksIG1pbkRlbGF5QXZlcmFnZUludGVydmFsIC8gMTApOworCisgIC8vIGZhc3Rlc3QgcmF0ZSBzYW1wbGluZyB0aW1lIGlzIGNsb3NlIHRvIHNwZWMKKyAgQUxPR0koIm1pbkRlbGF5QXZlcmFnZUludGVydmFsID0gJSIgUFJJZDY0LCBtaW5EZWxheUF2ZXJhZ2VJbnRlcnZhbCk7CisgIEVYUEVDVF9MVChzdGQ6OmFicyhtaW5EZWxheUF2ZXJhZ2VJbnRlcnZhbCAtIG1pblNhbXBsaW5nUGVyaW9kSW5OcyksCisgICAgICBtaW5TYW1wbGluZ1BlcmlvZEluTnMgLyAxMCk7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gYWNjZWxlcm9tZXRlciBzYW1wbGluZyByYXRlIHN3aXRjaCBwcm9wZXJseSB3aGVuIHNlbnNvciBpcyBhY3RpdmUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJTYW1wbGluZ1BlcmlvZEhvdFN3aXRjaE9wZXJhdGlvbikgeworICB0ZXN0U2FtcGxpbmdSYXRlSG90U3dpdGNoT3BlcmF0aW9uKFNlbnNvclR5cGU6OkFDQ0VMRVJPTUVURVIpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIGd5cm9zY29wZSBzYW1wbGluZyByYXRlIHN3aXRjaCBwcm9wZXJseSB3aGVuIHNlbnNvciBpcyBhY3RpdmUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEd5cm9zY29wZVNhbXBsaW5nUGVyaW9kSG90U3dpdGNoT3BlcmF0aW9uKSB7CisgIHRlc3RTYW1wbGluZ1JhdGVIb3RTd2l0Y2hPcGVyYXRpb24oU2Vuc29yVHlwZTo6R1lST1NDT1BFKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBtYWduZXRvbWV0ZXIgc2FtcGxpbmcgcmF0ZSBzd2l0Y2ggcHJvcGVybHkgd2hlbiBzZW5zb3IgaXMgYWN0aXZlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBNYWduZXRvbWV0ZXJTYW1wbGluZ1BlcmlvZEhvdFN3aXRjaE9wZXJhdGlvbikgeworICB0ZXN0U2FtcGxpbmdSYXRlSG90U3dpdGNoT3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbFRlc3Q6OnRlc3RCYXRjaGluZ09wZXJhdGlvbihTZW5zb3JUeXBlIHR5cGUpIHsKKyAgc3RkOjp2ZWN0b3I8RXZlbnQ+IGV2ZW50czsKKworICBjb25zdGV4cHIgaW50NjRfdCBtYXhCYXRjaGluZ1Rlc3RUaW1lTnMgPSAzMHVsbCAqIDEwMDAgKiAxMDAwICogMTAwMDsKKyAgY29uc3RleHByIGludDY0X3Qgb25lU2Vjb25kSW5OcyA9IDF1bGwgKiAxMDAwICogMTAwMCAqIDEwMDA7CisKKyAgU2Vuc29ySW5mbyBzZW5zb3IgPSBkZWZhdWx0U2Vuc29yQnlUeXBlKHR5cGUpOworCisgIGlmICghaXNWYWxpZFR5cGUoc2Vuc29yLnR5cGUpKSB7CisgICAgLy8gbm8gZGVmYXVsdCBzZW5zb3Igb2YgdGhpcyB0eXBlCisgICAgcmV0dXJuOworICB9CisKKyAgaW50MzJfdCBoYW5kbGUgPSBzZW5zb3Iuc2Vuc29ySGFuZGxlOworICBpbnQ2NF90IG1pblNhbXBsaW5nUGVyaW9kSW5OcyA9IHNlbnNvci5taW5EZWxheSAqIDEwMDBsbDsKKyAgdWludDMyX3QgbWluRmlmb0NvdW50ID0gc2Vuc29yLmZpZm9SZXNlcnZlZEV2ZW50Q291bnQ7CisgIGludDY0X3QgYmF0Y2hpbmdQZXJpb2RJbk5zID0gbWluRmlmb0NvdW50ICogbWluU2FtcGxpbmdQZXJpb2RJbk5zOworCisgIGlmIChiYXRjaGluZ1BlcmlvZEluTnMgPCBvbmVTZWNvbmRJbk5zKSB7CisgICAgLy8gYmF0Y2hpbmcgc2l6ZSB0b28gc21hbGwgdG8gdGVzdCByZWxpYWJseQorICAgIHJldHVybjsKKyAgfQorCisgIGJhdGNoaW5nUGVyaW9kSW5OcyA9IHN0ZDo6bWluKGJhdGNoaW5nUGVyaW9kSW5OcywgbWF4QmF0Y2hpbmdUZXN0VGltZU5zKTsKKworICBBTE9HSSgiVGVzdCBiYXRjaGluZyBmb3IgJWQgbXMiLCAoaW50KShiYXRjaGluZ1BlcmlvZEluTnMgLyAxMDAwIC8gMTAwMCkpOworCisgIGludDY0X3QgYWxsb3dlZEJhdGNoRGVsaXZlclRpbWVOcyA9CisgICAgICBzdGQ6Om1heChvbmVTZWNvbmRJbk5zLCBiYXRjaGluZ1BlcmlvZEluTnMgLyAxMCk7CisKKyAgQVNTRVJUX0VRKGJhdGNoKGhhbmRsZSwgbWluU2FtcGxpbmdQZXJpb2RJbk5zLCBJTlQ2NF9NQVgpLCBSZXN1bHQ6Ok9LKTsKKyAgQVNTRVJUX0VRKGFjdGl2YXRlKGhhbmRsZSwgMSksIFJlc3VsdDo6T0spOworCisgIHVzbGVlcCg1MDAwMDApOyAvLyBzbGVlcCAwLjUgc2VjIHRvIHdhaXQgZm9yIGluaXRpYWxpemF0aW9uCisgIEFTU0VSVF9FUShmbHVzaChoYW5kbGUpLCBSZXN1bHQ6Ok9LKTsKKworICAvLyB3YWl0IGZvciA4MCUgb2YgdGhlIHJlc2VydmVkIGJhdGNoaW5nIHBlcmlvZAorICAvLyB0aGVyZSBzaG91bGQgbm90IGJlIGFueSBzaWduaWZpY2FudCBhbW91bnQgb2YgZXZlbnRzCisgIC8vIHNpbmNlIGNvbGxlY3Rpb24gaXMgbm90IGVuYWJsZWQgYWxsIGV2ZW50cyB3aWxsIGdvIGRvd24gdGhlIGRyYWluCisgIHVzbGVlcChiYXRjaGluZ1BlcmlvZEluTnMgLyAxMDAwICogOCAvIDEwKTsKKworICBTZW5zb3JzSGlkbEVudmlyb25tZW50OjpJbnN0YW5jZSgpLT5zZXRDb2xsZWN0aW9uKHRydWUpOworICAvLyAwLjggKyAwLjMgdGltZXMgdGhlIGJhdGNoaW5nIHBlcmlvZAorICAvLyBwbHVzIHNvbWUgdGltZSBmb3IgdGhlIGV2ZW50IHRvIGRlbGl2ZXIKKyAgZXZlbnRzID0gY29sbGVjdEV2ZW50cygKKyAgICAgIGJhdGNoaW5nUGVyaW9kSW5OcyAvIDEwMDAgKiAzIC8gMTAsCisgICAgICAgIG1pbkZpZm9Db3VudCwgdHJ1ZSAvKmNsZWFyQmVmb3JlU3RhcnQqLywgZmFsc2UgLypjaGFuZ2UgY29sbGVjdGlvbiovKTsKKworICBBU1NFUlRfRVEoZmx1c2goaGFuZGxlKSwgUmVzdWx0OjpPSyk7CisKKyAgZXZlbnRzID0gY29sbGVjdEV2ZW50cyhhbGxvd2VkQmF0Y2hEZWxpdmVyVGltZU5zIC8gMTAwMCwKKyAgICAgICAgbWluRmlmb0NvdW50LCB0cnVlIC8qY2xlYXJCZWZvcmVTdGFydCovLCBmYWxzZSAvKmNoYW5nZSBjb2xsZWN0aW9uKi8pOworCisgIFNlbnNvcnNIaWRsRW52aXJvbm1lbnQ6Okluc3RhbmNlKCktPnNldENvbGxlY3Rpb24oZmFsc2UpOworICBBU1NFUlRfRVEoYWN0aXZhdGUoaGFuZGxlLCAwKSwgUmVzdWx0OjpPSyk7CisKKyAgc2l6ZV90IG5FdmVudCA9IDA7CisgIGZvciAoYXV0byAmIGUgOiBldmVudHMpIHsKKyAgICBpZiAoZS5zZW5zb3JUeXBlID09IHR5cGUgJiYgZS5zZW5zb3JIYW5kbGUgPT0gaGFuZGxlKSB7CisgICAgICArKyBuRXZlbnQ7CisgICAgfQorICB9CisKKyAgLy8gYXQgbGVhc3QgcmVhY2ggOTAlIG9mIGFkdmVydGlzZWQgY2FwYWNpdHkKKyAgQVNTRVJUX0dUKG5FdmVudCwgKHNpemVfdCkoYmF0Y2hpbmdQZXJpb2RJbk5zIC8gbWluU2FtcGxpbmdQZXJpb2RJbk5zICogOSAvIDEwKSk7Cit9CisKKy8vIFRlc3QgaWYgc2Vuc29yIGhhbCBjYW4gZG8gYWNjZWxlcm9tZXRlciBiYXRjaGluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgQWNjZWxlcm9tZXRlckJhdGNoaW5nT3BlcmF0aW9uKSB7CisgIHRlc3RCYXRjaGluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSKTsKK30KKworLy8gVGVzdCBpZiBzZW5zb3IgaGFsIGNhbiBkbyBneXJvc2NvcGUgYmF0Y2hpbmcgcHJvcGVybHkKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEd5cm9zY29wZUJhdGNoaW5nT3BlcmF0aW9uKSB7CisgIHRlc3RCYXRjaGluZ09wZXJhdGlvbihTZW5zb3JUeXBlOjpHWVJPU0NPUEUpOworfQorCisvLyBUZXN0IGlmIHNlbnNvciBoYWwgY2FuIGRvIG1hZ25ldG9tZXRlciBiYXRjaGluZyBwcm9wZXJseQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyQmF0Y2hpbmdPcGVyYXRpb24pIHsKKyAgdGVzdEJhdGNoaW5nT3BlcmF0aW9uKFNlbnNvclR5cGU6Ok1BR05FVElDX0ZJRUxEKTsKK30KKwordm9pZCBTZW5zb3JzSGlkbFRlc3Q6OnRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oCisgICAgU2Vuc29yVHlwZSB0eXBlLCBTaGFyZWRNZW1UeXBlIG1lbVR5cGUsIFJhdGVMZXZlbCByYXRlLCBjb25zdCBTZW5zb3JFdmVudHNDaGVja2VyICZjaGVja2VyKSB7CisgIGNvbnN0ZXhwciBzaXplX3Qga0V2ZW50U2l6ZSA9IHN0YXRpY19jYXN0PHNpemVfdD4oU2Vuc29yc0V2ZW50Rm9ybWF0T2Zmc2V0OjpUT1RBTF9MRU5HVEgpOworICBjb25zdGV4cHIgc2l6ZV90IGtORXZlbnQgPSA1MDA7CisgIGNvbnN0ZXhwciBzaXplX3Qga01lbVNpemUgPSBrRXZlbnRTaXplICoga05FdmVudDsKKworICBjb25zdGV4cHIgZmxvYXQga05vcm1hbE5vbWluYWwgPSA1MDsKKyAgY29uc3RleHByIGZsb2F0IGtGYXN0Tm9taW5hbCA9IDIwMDsKKyAgY29uc3RleHByIGZsb2F0IGtWZXJ5RmFzdE5vbWluYWwgPSA4MDA7CisKKyAgY29uc3RleHByIGZsb2F0IGtOb21pbmFsVGVzdFRpbWVTZWMgPSAxLmY7CisgIGNvbnN0ZXhwciBmbG9hdCBrTWF4VGVzdFRpbWVTZWMgPSBrTm9taW5hbFRlc3RUaW1lU2VjICsgMC41ZjsgLy8gMC41IHNlY29uZCBmb3IgaW5pdGlhbGl6YXRpb24KKworICBTZW5zb3JJbmZvIHNlbnNvciA9IGRlZmF1bHRTZW5zb3JCeVR5cGUodHlwZSk7CisKKyAgaWYgKCFpc0RpcmVjdFJlcG9ydFJhdGVTdXBwb3J0ZWQoc2Vuc29yLCByYXRlKSkgeworICAgIHJldHVybjsKKyAgfQorCisgIGlmICghaXNEaXJlY3RDaGFubmVsVHlwZVN1cHBvcnRlZChzZW5zb3IsIG1lbVR5cGUpKSB7CisgICAgcmV0dXJuOworICB9CisKKyAgc3RkOjp1bmlxdWVfcHRyPFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5PgorICAgICAgbWVtKFNlbnNvcnNUZXN0U2hhcmVkTWVtb3J5OjpjcmVhdGUobWVtVHlwZSwga01lbVNpemUpKTsKKyAgQVNTRVJUX05FKG1lbSwgbnVsbHB0cik7CisKKyAgY2hhciogYnVmZmVyID0gbWVtLT5nZXRCdWZmZXIoKTsKKyAgLy8gZmlsbCBtZW1vcnkgd2l0aCBkYXRhCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga01lbVNpemU7ICsraSkgeworICAgIGJ1ZmZlcltpXSA9ICdceGNjJzsKKyAgfQorCisgIGludDMyX3QgY2hhbm5lbEhhbmRsZTsKKyAgcmVnaXN0ZXJEaXJlY3RDaGFubmVsKG1lbS0+Z2V0U2hhcmVkTWVtSW5mbygpLAorICAgICAgWyZjaGFubmVsSGFuZGxlXSAoYXV0byByZXN1bHQsIGF1dG8gY2hhbm5lbEhhbmRsZV8pIHsKKyAgICAgICAgICBBU1NFUlRfRVEocmVzdWx0LCBSZXN1bHQ6Ok9LKTsKKyAgICAgICAgICBjaGFubmVsSGFuZGxlID0gY2hhbm5lbEhhbmRsZV87CisgICAgICB9KTsKKworICAvLyBjaGVjayBtZW1vcnkgaXMgemVyb2VkCisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga01lbVNpemU7ICsraSkgeworICAgIEFTU0VSVF9FUShidWZmZXJbaV0sICdcMCcpOworICB9CisKKyAgaW50MzJfdCBldmVudFRva2VuOworICBjb25maWdEaXJlY3RSZXBvcnQoc2Vuc29yLnNlbnNvckhhbmRsZSwgY2hhbm5lbEhhbmRsZSwgcmF0ZSwKKyAgICAgIFsmZXZlbnRUb2tlbl0gKGF1dG8gcmVzdWx0LCBhdXRvIHRva2VuKSB7CisgICAgICAgICAgQVNTRVJUX0VRKHJlc3VsdCwgUmVzdWx0OjpPSyk7CisgICAgICAgICAgZXZlbnRUb2tlbiA9IHRva2VuOworICAgICAgfSk7CisKKyAgdXNsZWVwKHN0YXRpY19jYXN0PHVzZWNvbmRzX3Q+KGtNYXhUZXN0VGltZVNlYyAqIDFlNmYpKTsKKyAgYXV0byBldmVudHMgPSBtZW0tPnBhcnNlRXZlbnRzKCk7CisKKyAgLy8gZmluZCBub3JtaW5hbCByYXRlCisgIGZsb2F0IG5vbWluYWxGcmVxID0gMC5mOworICBzd2l0Y2ggKHJhdGUpIHsKKyAgICAgIGNhc2UgUmF0ZUxldmVsOjpOT1JNQUw6CisgICAgICAgICAgbm9taW5hbEZyZXEgPSBrTm9ybWFsTm9taW5hbDsKKyAgICAgICAgICBicmVhazsKKyAgICAgIGNhc2UgUmF0ZUxldmVsOjpGQVNUOgorICAgICAgICAgIG5vbWluYWxGcmVxID0ga0Zhc3ROb21pbmFsOworICAgICAgICAgIGJyZWFrOworICAgICAgY2FzZSBSYXRlTGV2ZWw6OlZFUllfRkFTVDoKKyAgICAgICAgICBub21pbmFsRnJlcSA9IGtWZXJ5RmFzdE5vbWluYWw7CisgICAgICAgICAgYnJlYWs7CisgICAgICBjYXNlIFJhdGVMZXZlbDo6U1RPUDoKKyAgICAgICAgICBGQUlMKCk7CisgIH0KKworICAvLyBhbGxvd2VkIHRvIGJlIGJldHdlZW4gNTUlIGFuZCAyMjAlIG9mIG5vbWluYWwgZnJlcQorICBBU1NFUlRfR1QoZXZlbnRzLnNpemUoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihub21pbmFsRnJlcSAqIDAuNTVmICoga05vbWluYWxUZXN0VGltZVNlYykpOworICBBU1NFUlRfTFQoZXZlbnRzLnNpemUoKSwgc3RhdGljX2Nhc3Q8c2l6ZV90Pihub21pbmFsRnJlcSAqIDIuMmYgKiBrTWF4VGVzdFRpbWVTZWMpKTsKKworICBpbnQ2NF90IGxhc3RUaW1lc3RhbXAgPSAwOworICBib29sIHR5cGVFcnJvclJlcG9ydGVkID0gZmFsc2U7CisgIGJvb2wgdG9rZW5FcnJvclJlcG9ydGVkID0gZmFsc2U7CisgIGJvb2wgdGltZXN0YW1wRXJyb3JSZXBvcnRlZCA9IGZhbHNlOworICBmb3IgKGF1dG8gJmUgOiBldmVudHMpIHsKKyAgICBpZiAoIXR5cGVFcnJvclJlcG9ydGVkKSB7CisgICAgICBFWFBFQ1RfRVEodHlwZSwgZS5zZW5zb3JUeXBlKQorICAgICAgICAgIDw8ICh0eXBlRXJyb3JSZXBvcnRlZCA9IHRydWUsICJUeXBlIGluIGV2ZW50IGRvZXMgbm90IG1hdGNoIHR5cGUgb2Ygc2Vuc29yIHJlZ2lzdGVyZWQuIik7CisgICAgfQorICAgIGlmICghdG9rZW5FcnJvclJlcG9ydGVkKSB7CisgICAgICBFWFBFQ1RfRVEoZXZlbnRUb2tlbiwgZS5zZW5zb3JIYW5kbGUpCisgICAgICAgICAgPDwgKHRva2VuRXJyb3JSZXBvcnRlZCA9IHRydWUsCisgICAgICAgICAgICAiRXZlbnQgdG9rZW4gZG9lcyBub3QgbWF0Y2ggdGhhdCByZXR1cmVkIGZyb20gY29uZmlnRGlyZWN0UmVwb3J0Iik7CisgICAgfQorICAgIGlmICghdGltZXN0YW1wRXJyb3JSZXBvcnRlZCkgeworICAgICAgRVhQRUNUX0dUKGUudGltZXN0YW1wLCBsYXN0VGltZXN0YW1wKQorICAgICAgICAgIDw8ICh0aW1lc3RhbXBFcnJvclJlcG9ydGVkID0gdHJ1ZSwgIlRpbWVzdGFtcCBub3QgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIik7CisgICAgfQorICAgIGxhc3RUaW1lc3RhbXAgPSBlLnRpbWVzdGFtcDsKKyAgfQorCisgIHN0ZDo6c3RyaW5nIHM7CisgIEVYUEVDVF9UUlVFKGNoZWNrZXIuY2hlY2soZXZlbnRzLCAmcykpIDw8IHM7CisKKyAgLy8gc3RvcCBzZW5zb3IgYW5kIHVucmVnaXN0ZXIgY2hhbm5lbAorICBjb25maWdEaXJlY3RSZXBvcnQoc2Vuc29yLnNlbnNvckhhbmRsZSwgY2hhbm5lbEhhbmRsZSwgUmF0ZUxldmVsOjpTVE9QLAorICAgICAgICBbJmV2ZW50VG9rZW5dIChhdXRvIHJlc3VsdCwgYXV0bykgeworICAgICAgICAgICAgRVhQRUNUX0VRKHJlc3VsdCwgUmVzdWx0OjpPSyk7CisgICAgICAgIH0pOworICBFWFBFQ1RfRVEodW5yZWdpc3RlckRpcmVjdENoYW5uZWwoY2hhbm5lbEhhbmRsZSksIFJlc3VsdDo6T0spOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBhY2NlbCBzZW5zb3IgYXQgbm9ybWFsIHJhdGUKK1RFU1RfRihTZW5zb3JzSGlkbFRlc3QsIEFjY2VsZXJvbWV0ZXJBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25Ob3JtYWwpIHsKKyAgdGVzdERpcmVjdFJlcG9ydE9wZXJhdGlvbihTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSLCBTaGFyZWRNZW1UeXBlOjpBU0hNRU0sIFJhdGVMZXZlbDo6Tk9STUFMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNBY2NlbE5vcm1DaGVja2VyKTsKK30KKworLy8gVGVzdCBzZW5zb3IgZXZlbnQgZGlyZWN0IHJlcG9ydCB3aXRoIGFzaG1lbSBmb3IgYWNjZWwgc2Vuc29yIGF0IGZhc3QgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgQWNjZWxlcm9tZXRlckFzaG1lbURpcmVjdFJlcG9ydE9wZXJhdGlvbkZhc3QpIHsKKyAgdGVzdERpcmVjdFJlcG9ydE9wZXJhdGlvbihTZW5zb3JUeXBlOjpBQ0NFTEVST01FVEVSLCBTaGFyZWRNZW1UeXBlOjpBU0hNRU0sIFJhdGVMZXZlbDo6RkFTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzQWNjZWxOb3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIGFjY2VsIHNlbnNvciBhdCB2ZXJ5IGZhc3QgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgQWNjZWxlcm9tZXRlckFzaG1lbURpcmVjdFJlcG9ydE9wZXJhdGlvblZlcnlGYXN0KSB7CisgIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oU2Vuc29yVHlwZTo6QUNDRUxFUk9NRVRFUiwgU2hhcmVkTWVtVHlwZTo6QVNITUVNLCBSYXRlTGV2ZWw6OlZFUllfRkFTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzQWNjZWxOb3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIGd5cm8gc2Vuc29yIGF0IG5vcm1hbCByYXRlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25Ob3JtYWwpIHsKKyAgdGVzdERpcmVjdFJlcG9ydE9wZXJhdGlvbihTZW5zb3JUeXBlOjpHWVJPU0NPUEUsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpOT1JNQUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc0d5cm9Ob3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIGd5cm8gc2Vuc29yIGF0IGZhc3QgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgR3lyb3Njb3BlQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uRmFzdCkgeworICB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKFNlbnNvclR5cGU6OkdZUk9TQ09QRSwgU2hhcmVkTWVtVHlwZTo6QVNITUVNLCBSYXRlTGV2ZWw6OkZBU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc0d5cm9Ob3JtQ2hlY2tlcik7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIGd5cm8gc2Vuc29yIGF0IHZlcnkgZmFzdCByYXRlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBHeXJvc2NvcGVBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25WZXJ5RmFzdCkgeworICB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKFNlbnNvclR5cGU6OkdZUk9TQ09QRSwgU2hhcmVkTWVtVHlwZTo6QVNITUVNLCBSYXRlTGV2ZWw6OlZFUllfRkFTVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzR3lyb05vcm1DaGVja2VyKTsKK30KKworLy8gVGVzdCBzZW5zb3IgZXZlbnQgZGlyZWN0IHJlcG9ydCB3aXRoIGFzaG1lbSBmb3IgbWFnIHNlbnNvciBhdCBub3JtYWwgcmF0ZQorVEVTVF9GKFNlbnNvcnNIaWRsVGVzdCwgTWFnbmV0b21ldGVyQXNobWVtRGlyZWN0UmVwb3J0T3BlcmF0aW9uTm9ybWFsKSB7CisgIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpOT1JNQUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTnVsbENoZWNrZXIoKSk7Cit9CisKKy8vIFRlc3Qgc2Vuc29yIGV2ZW50IGRpcmVjdCByZXBvcnQgd2l0aCBhc2htZW0gZm9yIG1hZyBzZW5zb3IgYXQgZmFzdCByYXRlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBNYWduZXRvbWV0ZXJBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25GYXN0KSB7CisgIHRlc3REaXJlY3RSZXBvcnRPcGVyYXRpb24oU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpGQVNULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE51bGxDaGVja2VyKCkpOworfQorCisvLyBUZXN0IHNlbnNvciBldmVudCBkaXJlY3QgcmVwb3J0IHdpdGggYXNobWVtIGZvciBtYWcgc2Vuc29yIGF0IHZlcnkgZmFzdCByYXRlCitURVNUX0YoU2Vuc29yc0hpZGxUZXN0LCBNYWduZXRvbWV0ZXJBc2htZW1EaXJlY3RSZXBvcnRPcGVyYXRpb25WZXJ5RmFzdCkgeworICB0ZXN0RGlyZWN0UmVwb3J0T3BlcmF0aW9uKAorICAgICAgU2Vuc29yVHlwZTo6TUFHTkVUSUNfRklFTEQsIFNoYXJlZE1lbVR5cGU6OkFTSE1FTSwgUmF0ZUxldmVsOjpWRVJZX0ZBU1QsIE51bGxDaGVja2VyKCkpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQoU2Vuc29yc0hpZGxFbnZpcm9ubWVudDo6SW5zdGFuY2UoKSk7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CisvLyB2aW06IHNldCB0cz0yIHN3PTIKZGlmZiAtLWdpdCBhL3NlbnNvcnMvQW5kcm9pZC5icCBiL3NlbnNvcnMvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvc2Vuc29ycy9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNiBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMS4wIiwKKyAgICAiMS4wL2RlZmF1bHQiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC9BbmRyb2lkLmJwIGIvc291bmR0cmlnZ2VyLzIuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyNTk3NzYKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3MiBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSVNvdW5kVHJpZ2dlckh3LmhhbCIsCisgICAgICAgICJJU291bmRUcmlnZ2VySHdDYWxsYmFjay5oYWwiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL3R5cGVzLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvU291bmRUcmlnZ2VySHdBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9Tb3VuZFRyaWdnZXJId0NhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJIdy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9JSHdTb3VuZFRyaWdnZXJIdy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9Cbkh3U291bmRUcmlnZ2VySHcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvQnBId1NvdW5kVHJpZ2dlckh3LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS9zb3VuZHRyaWdnZXIvMi4wL0JzU291bmRUcmlnZ2VySHcuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSUh3U291bmRUcmlnZ2VySHdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9Cbkh3U291bmRUcmlnZ2VySHdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9CcEh3U291bmRUcmlnZ2VySHdDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9Cc1NvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC9BbmRyb2lkLm1rIGIvc291bmR0cmlnZ2VyLzIuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3LmhhbCBiL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3LmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzIzNWM5Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC9JU291bmRUcmlnZ2VySHcuaGFsCkBAIC0wLDAgKzEsMjQ3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUuc291bmR0cmlnZ2VyQDIuMDsKKworaW1wb3J0IGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMDsKKworaW1wb3J0IElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOworCitpbnRlcmZhY2UgSVNvdW5kVHJpZ2dlckh3IHsKKworICAgIC8qKgorICAgICAqIFNvdW5kIHRyaWdnZXIgaW1wbGVtZW50YXRpb24gZGVzY3JpcHRvciByZWFkIGJ5IHRoZSBmcmFtZXdvcmsgdmlhCisgICAgICogZ2V0UHJvcGVydGllcygpLiBVc2VkIGJ5IFNvdW5kVHJpZ2dlciBzZXJ2aWNlIHRvIHJlcG9ydCB0byBhcHBsaWNhdGlvbnMKKyAgICAgKiBhbmQgbWFuYWdlIGNvbmN1cnJlbmN5IGFuZCBwb2xpY3kuCisgICAgICovCisgICAgc3RydWN0IFByb3BlcnRpZXMgeworICAgICAgICAvKiogSW1wbGVtZW50b3IgbmFtZSAqLworICAgICAgICBzdHJpbmcgICBpbXBsZW1lbnRvcjsKKyAgICAgICAgLyoqIEltcGxlbWVudGF0aW9uIGRlc2NyaXB0aW9uICovCisgICAgICAgIHN0cmluZyAgIGRlc2NyaXB0aW9uOworICAgICAgICAvKiogSW1wbGVtZW50YXRpb24gdmVyc2lvbiAqLworICAgICAgICB1aW50MzJfdCB2ZXJzaW9uOworICAgICAgICAvKioKKyAgICAgICAgICogVW5pcXVlIGltcGxlbWVudGF0aW9uIElELiBUaGUgVVVJRCBtdXN0IGNoYW5nZSB3aXRoIGVhY2ggdmVyc2lvbiBvZgorICAgICAgICAgICB0aGUgZW5naW5lIGltcGxlbWVudGF0aW9uICovCisgICAgICAgIFV1aWQgICAgIHV1aWQ7CisgICAgICAgIC8qKiBNYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IHNvdW5kIG1vZGVscyBsb2FkZWQgKi8KKyAgICAgICAgdWludDMyX3QgbWF4U291bmRNb2RlbHM7CisgICAgICAgIC8qKiBNYXhpbXVtIG51bWJlciBvZiBrZXkgcGhyYXNlcyAqLworICAgICAgICB1aW50MzJfdCBtYXhLZXlQaHJhc2VzOworICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCB1c2VycyBkZXRlY3RlZCAqLworICAgICAgICB1aW50MzJfdCBtYXhVc2VyczsKKyAgICAgICAgLyoqIEFsbCBzdXBwb3J0ZWQgbW9kZXMuIGUuZyBSZWNvZ25pdGlvbk1vZGUuVk9JQ0VfVFJJR0dFUiAqLworICAgICAgICB1aW50MzJfdCByZWNvZ25pdGlvbk1vZGVzOworICAgICAgICAvKiogU3VwcG9ydHMgc2VhbWxlc3MgdHJhbnNpdGlvbiBmcm9tIGRldGVjdGlvbiB0byBjYXB0dXJlICovCisgICAgICAgIGJvb2wgICAgIGNhcHR1cmVUcmFuc2l0aW9uOworICAgICAgICAvKiogTWF4aW11bSBidWZmZXJpbmcgY2FwYWNpdHkgaW4gbXMgaWYgY2FwdHVyZVRyYW5zaXRpb24gaXMgdHJ1ZSAqLworICAgICAgICB1aW50MzJfdCBtYXhCdWZmZXJNczsKKyAgICAgICAgLyoqIFN1cHBvcnRzIGNhcHR1cmUgYnkgb3RoZXIgdXNlIGNhc2VzIHdoaWxlIGRldGVjdGlvbiBpcyBhY3RpdmUgKi8KKyAgICAgICAgYm9vbCAgICAgY29uY3VycmVudENhcHR1cmU7CisgICAgICAgIC8qKiBSZXR1cm5zIHRoZSB0cmlnZ2VyIGNhcHR1cmUgaW4gZXZlbnQgKi8KKyAgICAgICAgYm9vbCAgICAgdHJpZ2dlckluRXZlbnQ7CisgICAgICAgIC8qKgorICAgICAgICAgKiBSYXRlZCBwb3dlciBjb25zdW1wdGlvbiB3aGVuIGRldGVjdGlvbiBpcyBhY3RpdmUgd2l0aCBUREIKKyAgICAgICAgICogc2lsZW5jZS9zb3VuZC9zcGVlY2ggcmF0aW8gKi8KKyAgICAgICAgdWludDMyX3QgcG93ZXJDb25zdW1wdGlvbk13OworICAgIH07CisKKworICAgIC8qKgorICAgICAqIEJhc2Ugc291bmQgbW9kZWwgZGVzY3JpcHRvci4gVGhpcyBzdHJ1Y3QgaXMgdGhlIGhlYWRlciBvZiBhIGxhcmdlciBibG9jaworICAgICAqIHBhc3NlZCB0byBsb2FkU291bmRNb2RlbCgpIGFuZCBjb250YWlucyB0aGUgYmluYXJ5IGRhdGEgb2YgdGhlCisgICAgICogc291bmQgbW9kZWwuCisgICAgICovCisgICAgc3RydWN0IFNvdW5kTW9kZWwgeworICAgICAgICAvKiogTW9kZWwgdHlwZS4gZS5nLiBTb3VuZE1vZGVsVHlwZS5LRVlQSFJBU0UgKi8KKyAgICAgICAgU291bmRNb2RlbFR5cGUgdHlwZTsKKyAgICAgICAgLyoqIFVuaXF1ZSBzb3VuZCBtb2RlbCBJRC4gKi8KKyAgICAgICAgVXVpZCAgICAgICAgICAgdXVpZDsKKyAgICAgICAgLyoqCisgICAgICAgICAqIFVuaXF1ZSB2ZW5kb3IgSUQuIElkZW50aWZpZXMgdGhlIGVuZ2luZSB0aGUgc291bmQgbW9kZWwKKyAgICAgICAgICogd2FzIGJ1aWxkIGZvciAqLworICAgICAgICBVdWlkICAgICAgICAgICB2ZW5kb3JVdWlkOworICAgICAgICAvKiogT3BhcXVlIGRhdGEgdHJhbnNwYXJlbnQgdG8gQW5kcm9pZCBmcmFtZXdvcmsgKi8KKyAgICAgICAgdmVjPHVpbnQ4X3Q+ICAgZGF0YTsKKyAgICB9OworCisgICAgLyoqIEtleSBwaHJhc2UgZGVzY3JpcHRvciAqLworICAgIHN0cnVjdCBQaHJhc2UgeworICAgICAgICAvKiogVW5pcXVlIGtleXBocmFzZSBJRCBhc3NpZ25lZCBhdCBlbnJvbGxtZW50IHRpbWUgKi8KKyAgICAgICAgdWludDMyX3QgICAgICBpZDsKKyAgICAgICAgLyoqIFJlY29nbml0aW9uIG1vZGVzIHN1cHBvcnRlZCBieSB0aGlzIGtleSBwaHJhc2UgKi8KKyAgICAgICAgdWludDMyX3QgICAgICByZWNvZ25pdGlvbk1vZGVzOworICAgICAgICAvKiogTGlzdCBvZiB1c2VycyBJRHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMga2V5IHBocmFzZSAqLworICAgICAgICB2ZWM8dWludDMyX3Q+IHVzZXJzOworICAgICAgICAvKiogTG9jYWxlIC0gSmF2YSBMb2NhbGUgc3R5bGUgKGUuZy4gZW5fVVMpICovCisgICAgICAgIHN0cmluZyAgICAgICAgbG9jYWxlOworICAgICAgICAvKiogUGhyYXNlIHRleHQgaW4gVVRGLTggZm9ybWF0LiAqLworICAgICAgICBzdHJpbmcgICAgICAgIHRleHQ7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWxpemVkIHNvdW5kIG1vZGVsIGZvciBrZXkgcGhyYXNlIGRldGVjdGlvbi4KKyAgICAgKiBQcm9wcmlldGFyeSByZXByZXNlbnRhdGlvbiBvZiBrZXkgcGhyYXNlcyBpbiBiaW5hcnkgZGF0YSBtdXN0IG1hdGNoCisgICAgICogaW5mb3JtYXRpb24gaW5kaWNhdGVkIGJ5IHBocmFzZXMgZmllbGQKKyAgICAgKi8KKyAgICBzdHJ1Y3QgUGhyYXNlU291bmRNb2RlbCB7CisgICAgICAgIC8qKiBDb21tb24gcGFydCBvZiBzb3VuZCBtb2RlbCBkZXNjcmlwdG9yICovCisgICAgICAgIFNvdW5kTW9kZWwgIGNvbW1vbjsKKyAgICAgICAgLyoqIExpc3Qgb2YgZGVzY3JpcHRvcnMgZm9yIGtleSBwaHJhc2VzIHN1cHBvcnRlZCBieSB0aGlzIHNvdW5kIG1vZGVsICovCisgICAgICAgIHZlYzxQaHJhc2U+IHBocmFzZXM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIHNvdW5kIHRyaWdnZXIgY2FwdHVyZSBzZXNzaW9uIHBhc3NlZCB0bworICAgICAqIHN0YXJ0UmVjb2duaXRpb24oKSBtZXRob2QKKyAgICAgKi8KKyAgICBzdHJ1Y3QgUmVjb2duaXRpb25Db25maWcgeworICAgICAgICAvKioKKyAgICAgICAgICogSU8gaGFuZGxlIHRoYXQgd2lsbCBiZSB1c2VkIGZvciBjYXB0dXJlLiBOL0EgaWYgY2FwdHVyZVJlcXVlc3RlZAorICAgICAgICAgKiBpcyBmYWxzZSAqLworICAgICAgICBBdWRpb0lvSGFuZGxlICAgY2FwdHVyZUhhbmRsZTsKKyAgICAgICAgLyoqIElucHV0IGRldmljZSByZXF1ZXN0ZWQgZm9yIGRldGVjdGlvbiBjYXB0dXJlICovCisgICAgICAgIEF1ZGlvRGV2aWNlICAgICBjYXB0dXJlRGV2aWNlOworICAgICAgICAvKiogQ2FwdHVyZSBhbmQgYnVmZmVyIGF1ZGlvIGZvciB0aGlzIHJlY29nbml0aW9uIGluc3RhbmNlICovCisgICAgICAgIGJvb2wgICAgICAgICAgICBjYXB0dXJlUmVxdWVzdGVkOworICAgICAgICAvKiogQ29uZmlndXJhdGlvbiBmb3IgZWFjaCBrZXkgcGhyYXNlICovCisgICAgICAgIHZlYzxQaHJhc2VSZWNvZ25pdGlvbkV4dHJhPiBwaHJhc2VzOworICAgICAgICAvKiogT3BhcXVlIGNhcHR1cmUgY29uZmlndXJhdGlvbiBkYXRhIHRyYW5zcGFyZW50IHRvIHRoZSBmcmFtZXdvcmsgKi8KKyAgICAgICAgdmVjPHVpbnQ4X3Q+ICAgIGRhdGE7CisgICAgfTsKKworCisgICAgLyoqCisgICAgICogUmV0cmlldmUgaW1wbGVtZW50YXRpb24gcHJvcGVydGllcy4KKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXM6IDAgaW4gY2FzZSBvZiBzdWNjZXNzLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9ERVYgaW4gY2FzZSBvZiBpbml0aWFsaXphdGlvbiBlcnJvci4KKyAgICAgKiBAcmV0dXJuIHByb3BlcnRpZXMgQSBQcm9wZXJ0aWVzIHN0cnVjdHVyZSBjb250YWluaW5nIGltcGxlbWVudGF0aW9uCisgICAgICogICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uIGFuZCBjYXBhYmlsaXRpZXMuCisgICAgICovCisgICAgZ2V0UHJvcGVydGllcygpIGdlbmVyYXRlcyAoaW50MzJfdCByZXR2YWwsIFByb3BlcnRpZXMgcHJvcGVydGllcyk7CisKKyAgICAvKioKKyAgICAgKiBMb2FkIGEgc291bmQgbW9kZWwuIE9uY2UgbG9hZGVkLCByZWNvZ25pdGlvbiBvZiB0aGlzIG1vZGVsIGNhbiBiZQorICAgICAqIHN0YXJ0ZWQgYW5kIHN0b3BwZWQuIE9ubHkgb25lIGFjdGl2ZSByZWNvZ25pdGlvbiBwZXIgbW9kZWwgYXQgYSB0aW1lLgorICAgICAqIFRoZSBTb3VuZFRyaWdnZXIgc2VydmljZSBtdXN0IGhhbmRsZSBjb25jdXJyZW50IHJlY29nbml0aW9uIHJlcXVlc3RzIGJ5CisgICAgICogZGlmZmVyZW50IHVzZXJzL2FwcGxpY2F0aW9ucyBvbiB0aGUgc2FtZSBtb2RlbC4KKyAgICAgKiBUaGUgaW1wbGVtZW50YXRpb24gcmV0dXJucyBhIHVuaXF1ZSBoYW5kbGUgdXNlZCBieSBvdGhlciBmdW5jdGlvbnMKKyAgICAgKiAodW5sb2FkU291bmRNb2RlbCgpLCBzdGFydFJlY29nbml0aW9uKCksIGV0Yy4uLgorICAgICAqIEBwYXJhbSBzb3VuZE1vZGVsIEEgU291bmRNb2RlbCBzdHJ1Y3R1cmUgZGVzY3JpYmluZyB0aGUgc291bmQgbW9kZWwgdG8KKyAgICAgKiAgICAgICAgICAgICAgICAgICBsb2FkLgorICAgICAqIEBwYXJhbSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgaW50ZXJmYWNlIG9uIHdoaWNoIHRoZSBzb3VuZG1vZGVsQ2FsbGJhY2soKQorICAgICAqICAgICAgICAgICAgICAgICBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgdXBvbiBjb21wbGV0aW9uLgorICAgICAqIEBwYXJhbSBjb29raWUgVGhlIHZhbHVlIG9mIHRoZSBjb29raWUgYXJndW1lbnQgcGFzc2VkIHRvIHRoZSBjb21wbGV0aW9uCisgICAgICogICAgICAgICAgICAgICBjYWxsYmFjay4gVGhpcyB1bmlxdWUgY29udGV4dCBpbmZvcm1hdGlvbiBpcyBhc3NpZ25lZCBhbmQKKyAgICAgKiAgICAgICAgICAgICAgIHVzZWQgb25seSBieSB0aGUgZnJhbWV3b3JrLgorICAgICAqIEByZXR1cm4gcmV0dmFsIE9wZXJhdGlvbiBjb21wbGV0aW9uIHN0YXR1czogMCBpbiBjYXNlIG9mIHN1Y2Nlc3MsCisgICAgICogICAgICAgICAgICAgICAgLUVJTlZBTCBpbiBjYXNlIG9mIGludmFsaWQgc291bmQgbW9kZWwgKGUuZyAwIGRhdGEgc2l6ZSksCisgICAgICogICAgICAgICAgICAgICAgLUVOT1NZUyBpbiBjYXNlIG9mIGludmFsaWQgb3BlcmF0aW9uIChlLmcgbWF4IG51bWJlciBvZgorICAgICAqICAgICAgICAgICAgICAgIG1vZGVscyBleGNlZWRlZCksCisgICAgICogICAgICAgICAgICAgICAgLUVOT01FTSBpbiBjYXNlIG9mIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUsCisgICAgICogICAgICAgICAgICAgICAgLUVOT0RFViBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqIEByZXR1cm4gbW9kZWxIYW5kbGUgQSB1bmlxdWUgaGFuZGxlIGFzc2lnbmVkIGJ5IHRoZSBIQUwgZm9yIHVzZSBieSB0aGUKKyAgICAgKiAgICAgICAgICAgICAgICBmcmFtZXdvcmsgd2hlbiBjb250cm9sbGluZyBhY3Rpdml0eSBmb3IgdGhpcyBzb3VuZCBtb2RlbC4KKyAgICAgKi8KKyAgICBsb2FkU291bmRNb2RlbChTb3VuZE1vZGVsIHNvdW5kTW9kZWwsCisgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgQ2FsbGJhY2tDb29raWUgY29va2llKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHJldHZhbCwgU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSk7CisKKyAgICAvKioKKyAgICAgKiBMb2FkIGEga2V5IHBocmFzZSBzb3VuZCBtb2RlbC4gT25jZSBsb2FkZWQsIHJlY29nbml0aW9uIG9mIHRoaXMgbW9kZWwgY2FuCisgICAgICogYmUgc3RhcnRlZCBhbmQgc3RvcHBlZC4gT25seSBvbmUgYWN0aXZlIHJlY29nbml0aW9uIHBlciBtb2RlbCBhdCBhIHRpbWUuCisgICAgICogVGhlIFNvdW5kVHJpZ2dlciBzZXJ2aWNlIG11c3QgaGFuZGxlIGNvbmN1cnJlbnQgcmVjb2duaXRpb24gcmVxdWVzdHMgYnkKKyAgICAgKiBkaWZmZXJlbnQgdXNlcnMvYXBwbGljYXRpb25zIG9uIHRoZSBzYW1lIG1vZGVsLgorICAgICAqIFRoZSBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGEgdW5pcXVlIGhhbmRsZSB1c2VkIGJ5IG90aGVyIGZ1bmN0aW9ucworICAgICAqICh1bmxvYWRTb3VuZE1vZGVsKCksIHN0YXJ0UmVjb2duaXRpb24oKSwgZXRjLi4uCisgICAgICogQHBhcmFtIHNvdW5kTW9kZWwgQSBQaHJhc2VTb3VuZE1vZGVsIHN0cnVjdHVyZSBkZXNjcmliaW5nIHRoZSBzb3VuZCBtb2RlbAorICAgICAqICAgICAgICAgICAgICAgICAgIHRvIGxvYWQuCisgICAgICogQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBpbnRlcmZhY2Ugb24gd2hpY2ggdGhlIHNvdW5kbW9kZWxDYWxsYmFjaygpCisgICAgICogICAgICAgICAgICAgICAgIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCB1cG9uIGNvbXBsZXRpb24uCisgICAgICogQHBhcmFtIGNvb2tpZSBUaGUgdmFsdWUgb2YgdGhlIGNvb2tpZSBhcmd1bWVudCBwYXNzZWQgdG8gdGhlIGNvbXBsZXRpb24KKyAgICAgKiAgICAgICAgICAgICAgIGNhbGxiYWNrLiBUaGlzIHVuaXF1ZSBjb250ZXh0IGluZm9ybWF0aW9uIGlzIGFzc2lnbmVkIGFuZAorICAgICAqICAgICAgICAgICAgICAgdXNlZCBvbmx5IGJ5IHRoZSBmcmFtZXdvcmsuCisgICAgICogQHJldHVybiByZXR2YWwgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRUlOVkFMIGluIGNhc2Ugb2YgaW52YWxpZCBzb3VuZCBtb2RlbCAoZS5nIDAgZGF0YSBzaXplKSwKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PU1lTIGluIGNhc2Ugb2YgaW52YWxpZCBvcGVyYXRpb24gKGUuZyBtYXggbnVtYmVyIG9mCisgICAgICogICAgICAgICAgICAgICAgbW9kZWxzIGV4Y2VlZGVkKSwKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PTUVNIGluIGNhc2Ugb2YgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZSwKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PREVWIGluIGNhc2Ugb2YgaW5pdGlhbGl6YXRpb24gZXJyb3IuCisgICAgICogQHJldHVybiBtb2RlbEhhbmRsZSBBIHVuaXF1ZSBoYW5kbGUgYXNzaWduZWQgYnkgdGhlIEhBTCBmb3IgdXNlIGJ5IHRoZQorICAgICAqICAgICAgICAgICAgICAgIGZyYW1ld29yayB3aGVuIGNvbnRyb2xsaW5nIGFjdGl2aXR5IGZvciB0aGlzIHNvdW5kIG1vZGVsLgorICAgICAqLworICAgIGxvYWRQaHJhc2VTb3VuZE1vZGVsKFBocmFzZVNvdW5kTW9kZWwgc291bmRNb2RlbCwKKyAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjayBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICBDYWxsYmFja0Nvb2tpZSBjb29raWUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKGludDMyX3QgcmV0dmFsLCBTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlKTsKKworICAgIC8qKgorICAgICAqIFVubG9hZCBhIHNvdW5kIG1vZGVsLiBBIHNvdW5kIG1vZGVsIG1heSBiZSB1bmxvYWRlZCB0byBtYWtlIHJvb20gZm9yIGEKKyAgICAgKiBuZXcgb25lIHRvIG92ZXJjb21lIGltcGxlbWVudGF0aW9uIGxpbWl0YXRpb25zLgorICAgICAqIEBwYXJhbSBtb2RlbEhhbmRsZSB0aGUgaGFuZGxlIG9mIHRoZSBzb3VuZCBtb2RlbCB0byB1bmxvYWQKKyAgICAgKiBAcmV0dXJuIHJldHZhbCBPcGVyYXRpb24gY29tcGxldGlvbiBzdGF0dXM6IDAgaW4gY2FzZSBvZiBzdWNjZXNzLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9TWVMgaWYgdGhlIG1vZGVsIGlzIG5vdCBsb2FkZWQsCisgICAgICogICAgICAgICAgICAgICAgLUVOT0RFViBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqLworICAgIHVubG9hZFNvdW5kTW9kZWwoU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSkKKyAgICAgICAgICAgIGdlbmVyYXRlcyAoaW50MzJfdCByZXR2YWwpOworCisgICAgLyoqCisgICAgICogU3RhcnQgcmVjb2duaXRpb24gb24gYSBnaXZlbiBtb2RlbC4gT25seSBvbmUgcmVjb2duaXRpb24gYWN0aXZlCisgICAgICogYXQgYSB0aW1lIHBlciBtb2RlbC4gT25jZSByZWNvZ25pdGlvbiBzdWNjZWVkcyBvZiBmYWlscywgdGhlIGNhbGxiYWNrCisgICAgICogaXMgY2FsbGVkLgorICAgICAqIEBwYXJhbSBtb2RlbEhhbmRsZSB0aGUgaGFuZGxlIG9mIHRoZSBzb3VuZCBtb2RlbCB0byB1c2UgZm9yIHJlY29nbml0aW9uCisgICAgICogQHBhcmFtIGNvbmZpZyBBIFJlY29nbml0aW9uQ29uZmlnIHN0cnVjdHVyZSBjb250YWluaW5nIGF0dHJpYnV0ZXMgb2YgdGhlCisgICAgICogICAgICAgICAgICAgICByZWNvZ25pdGlvbiB0byBwZXJmb3JtCisgICAgICogQHBhcmFtIGNhbGxiYWNrIFRoZSBjYWxsYmFjayBpbnRlcmZhY2Ugb24gd2hpY2ggdGhlIHJlY29nbml0aW9uQ2FsbGJhY2soKQorICAgICAqICAgICAgICAgICAgICAgICBtZXRob2QgbXVzdCBiZSBjYWxsZWQgdXBvbiByZWNvZ25pdGlvbi4KKyAgICAgKiBAcGFyYW0gY29va2llIFRoZSB2YWx1ZSBvZiB0aGUgY29va2llIGFyZ3VtZW50IHBhc3NlZCB0byB0aGUgcmVjb2duaXRpb24KKyAgICAgKiAgICAgICAgICAgICAgIGNhbGxiYWNrLiBUaGlzIHVuaXF1ZSBjb250ZXh0IGluZm9ybWF0aW9uIGlzIGFzc2lnbmVkIGFuZAorICAgICAqICAgICAgICAgICAgICAgdXNlZCBvbmx5IGJ5IHRoZSBmcmFtZXdvcmsuCisgICAgICogQHJldHVybiByZXR2YWwgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRUlOVkFMIGluIGNhc2Ugb2YgaW52YWxpZCByZWNvZ25pdGlvbiBhdHRyaWJ1dGVzLAorICAgICAqICAgICAgICAgICAgICAgIC1FTk9TWVMgaW4gY2FzZSBvZiBpbnZhbGlkIG1vZGVsIGhhbmRsZSwKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PTUVNIGluIGNhc2Ugb2YgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZSwKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PREVWIGluIGNhc2Ugb2YgaW5pdGlhbGl6YXRpb24gZXJyb3IuCisgICAgICovCisgICAgc3RhcnRSZWNvZ25pdGlvbihTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgUmVjb2duaXRpb25Db25maWcgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2sgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICBDYWxsYmFja0Nvb2tpZSBjb29raWUpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKGludDMyX3QgcmV0dmFsKTsKKworICAgIC8qKgorICAgICAqIFN0b3AgcmVjb2duaXRpb24gb24gYSBnaXZlbiBtb2RlbC4KKyAgICAgKiBUaGUgaW1wbGVtZW50YXRpb24gbXVzdCBub3QgY2FsbCB0aGUgcmVjb2duaXRpb24gY2FsbGJhY2sgd2hlbiBzdG9wcGVkCisgICAgICogdmlhIHRoaXMgbWV0aG9kLgorICAgICAqIEBwYXJhbSBtb2RlbEhhbmRsZSBUaGUgaGFuZGxlIG9mIHRoZSBzb3VuZCBtb2RlbCB0byB1c2UgZm9yIHJlY29nbml0aW9uCisgICAgICogQHJldHVybiByZXR2YWwgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PU1lTIGluIGNhc2Ugb2YgaW52YWxpZCBtb2RlbCBoYW5kbGUsCisgICAgICogICAgICAgICAgICAgICAgLUVOT0RFViBpbiBjYXNlIG9mIGluaXRpYWxpemF0aW9uIGVycm9yLgorICAgICAqLworICAgIHN0b3BSZWNvZ25pdGlvbihTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChpbnQzMl90IHJldHZhbCk7CisKKyAgICAvKioKKyAgICAgKiBTdG9wIHJlY29nbml0aW9uIG9uIGFsbCBtb2RlbHMuCisgICAgICogQHJldHVybiByZXR2YWwgT3BlcmF0aW9uIGNvbXBsZXRpb24gc3RhdHVzOiAwIGluIGNhc2Ugb2Ygc3VjY2VzcywKKyAgICAgKiAgICAgICAgICAgICAgICAtRU5PREVWIGluIGNhc2Ugb2YgaW5pdGlhbGl6YXRpb24gZXJyb3IuCisgICAgICovCisgICAgc3RvcEFsbFJlY29nbml0aW9ucygpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKGludDMyX3QgcmV0dmFsKTsKK307CmRpZmYgLS1naXQgYS9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJId0NhbGxiYWNrLmhhbCBiL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwMTMyZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL0lTb3VuZFRyaWdnZXJId0NhbGxiYWNrLmhhbApAQCAtMCwwICsxLDExOCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjA7CisKK2ludGVyZmFjZSBJU291bmRUcmlnZ2VySHdDYWxsYmFjayB7CisgICAgZW51bSBSZWNvZ25pdGlvblN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICAgICAgU1VDQ0VTUyAgPSAwLAorICAgICAgICBBQk9SVCAgICA9IDEsCisgICAgICAgIEZBSUxVUkUgID0gMiwKKyAgICB9OworCisgICAgZW51bSBTb3VuZE1vZGVsU3RhdHVzIDogdWludDMyX3QgeworICAgICAgICBVUERBVEVEICA9IDAsCisgICAgfTsKKworICAgIC8qKgorICAgICAqIEdlbmVyaWMgcmVjb2duaXRpb24gZXZlbnQgc2VudCB2aWEgcmVjb2duaXRpb24gY2FsbGJhY2sKKyAgICAgKi8KKyAgICBzdHJ1Y3QgUmVjb2duaXRpb25FdmVudCB7CisgICAgICAgIC8qKiBSZWNvZ25pdGlvbiBzdGF0dXMgZS5nLiBTVUNDRVNTICovCisgICAgICAgIFJlY29nbml0aW9uU3RhdHVzIHN0YXR1czsKKyAgICAgICAgLyoqIFNvdW5kIG1vZGVsIHR5cGUgZm9yIHRoaXMgZXZlbnQuIGUuZyBTb3VuZE1vZGVsVHlwZS5UWVBFX0tFWVBIUkFTRSAqLworICAgICAgICBTb3VuZE1vZGVsVHlwZSAgICB0eXBlOworICAgICAgICAvKiogSGFuZGxlIG9mIGxvYWRlZCBzb3VuZCBtb2RlbCB3aGljaCB0cmlnZ2VyZWQgdGhlIGV2ZW50ICovCisgICAgICAgIFNvdW5kTW9kZWxIYW5kbGUgIG1vZGVsOworICAgICAgICAvKiogSXQgaXMgcG9zc2libGUgdG8gY2FwdHVyZSBhdWRpbyBmcm9tIHRoaXMgKi8KKyAgICAgICAgLyoqIHV0dGVyYW5jZSBidWZmZXJlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gKi8KKyAgICAgICAgYm9vbCAgICAgICAgICAgICAgY2FwdHVyZUF2YWlsYWJsZTsKKyAgICAgICAgLyoqIEF1ZGlvIHNlc3Npb24gSUQuIGZyYW1ld29yayB1c2UgKi8KKyAgICAgICAgaW50MzJfdCAgICAgICAgICAgY2FwdHVyZVNlc3Npb247CisgICAgICAgIC8qKgorICAgICAgICAgKiBEZWxheSBpbiBtcyBiZXR3ZWVuIGVuZCBvZiBtb2RlbCBkZXRlY3Rpb24gYW5kIHN0YXJ0IG9mIGF1ZGlvCisgICAgICAgIC8qKgorICAgICAgICAgKiBhdmFpbGFibGUgZm9yIGNhcHR1cmUuIEEgbmVnYXRpdmUgdmFsdWUgaXMgcG9zc2libGUKKyAgICAgICAgICogKGUuZy4gaWYga2V5IHBocmFzZSBpcyBhbHNvIGF2YWlsYWJsZSBmb3IgY2FwdHVyZSAqLworICAgICAgICBpbnQzMl90ICAgICAgICAgICBjYXB0dXJlRGVsYXlNczsKKyAgICAgICAgLyoqCisgICAgICAgICAqIER1cmF0aW9uIGluIG1zIG9mIGF1ZGlvIGNhcHR1cmVkIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIHRyaWdnZXIuCisgICAgICAgICAqIDAgaWYgbm9uZS4gKi8KKyAgICAgICAgaW50MzJfdCAgICAgICAgICAgY2FwdHVyZVByZWFtYmxlTXM7CisgICAgICAgIC8qKiBUaGUgb3BhcXVlIGRhdGEgaXMgdGhlIGNhcHR1cmUgb2YgdGhlIHRyaWdnZXIgc291bmQgKi8KKyAgICAgICAgYm9vbCAgICAgICAgICAgICAgdHJpZ2dlckluRGF0YTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEF1ZGlvIGZvcm1hdCBvZiBlaXRoZXIgdGhlIHRyaWdnZXIgaW4gZXZlbnQgZGF0YSBvciB0byB1c2UgZm9yCisgICAgICAgICAqIGNhcHR1cmUgb2YgdGhlIHJlc3Qgb2YgdGhlIHV0dGVyYW5jZSAqLworICAgICAgICBBdWRpb0NvbmZpZyAgICAgICBhdWRpb0NvbmZpZzsKKyAgICAgICAgLyoqIE9wYXF1ZSBldmVudCBkYXRhICovCisgICAgICAgIHZlYzx1aW50OF90PiAgICAgIGRhdGE7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIFNwZWNpYWxpemVkIHJlY29nbml0aW9uIGV2ZW50IGZvciBrZXkgcGhyYXNlIHJlY29nbml0aW9ucworICAgICAqLworICAgIHN0cnVjdCBQaHJhc2VSZWNvZ25pdGlvbkV2ZW50IHsKKyAgICAgICAgLyoqIENvbW1vbiBwYXJ0IG9mIHRoZSByZWNvZ25pdGlvbiBldmVudCAqLworICAgICAgICBSZWNvZ25pdGlvbkV2ZW50IGNvbW1vbjsKKyAgICAgICAgLyoqIExpc3Qgb2YgZGVzY3JpcHRvcnMgZm9yIGVhY2ggcmVjb2duaXplZCBrZXkgcGhyYXNlICovCisgICAgICAgIHZlYzxQaHJhc2VSZWNvZ25pdGlvbkV4dHJhPiBwaHJhc2VFeHRyYXM7CisgICAgfTsKKworICAgIC8qKgorICAgICAqIEV2ZW50IHNlbnQgdmlhIGxvYWQgc291bmQgbW9kZWwgY2FsbGJhY2sKKyAgICAgKi8KKyAgICBzdHJ1Y3QgTW9kZWxFdmVudCB7CisgICAgICAgICAvKiogU291bmQgbW9kZWwgc3RhdHVzIGUuZy4gU291bmRNb2RlbFN0YXR1cy5VUERBVEVEICovCisgICAgICAgIFNvdW5kTW9kZWxTdGF0dXMgc3RhdHVzOworICAgICAgICAvKiogTG9hZGVkIHNvdW5kIG1vZGVsIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCAqLworICAgICAgICBTb3VuZE1vZGVsSGFuZGxlIG1vZGVsOworICAgICAgICAvKiogT3BhcXVlIGV2ZW50IGRhdGEsIHBhc3NlZCB0cmFuc3BhcmVudGx5IGJ5IHRoZSBmcmFtZXdvcmsgKi8KKyAgICAgICAgdmVjPHVpbnQ4X3Q+ICAgICBkYXRhOworICAgIH07CisKKyAgICB0eXBlZGVmIGludDMyX3QgQ2FsbGJhY2tDb29raWU7CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayBtZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiB0aGUgc291bmQgcmVjb2duaXRpb24gdHJpZ2dlcnMKKyAgICAgKiBAcGFyYW0gZXZlbnQgQSBSZWNvZ25pdGlvbkV2ZW50IHN0cnVjdHVyZSBjb250YWluaW5nIGRldGFpbGVkIHJlc3VsdHMKKyAgICAgKiAgICAgICAgICAgICAgb2YgdGhlIHJlY29nbml0aW9uIHRyaWdnZXJlZAorICAgICAqIEBwYXJhbSBjb29raWUgVGhlIGNvb2tpZSBwYXNzZWQgYnkgdGhlIGZyYW1ld29yayB3aGVuIHJlY29nbml0aW9uIHdhcworICAgICAqICAgICAgICAgICAgICAgc3RhcnRlZCAoc2VlIElTb3VuZHRyaWdnZXJIdy5zdGFydFJlY29nbml0aW9uKCkKKyAgICAgKi8KKyAgICByZWNvZ25pdGlvbkNhbGxiYWNrKFJlY29nbml0aW9uRXZlbnQgZXZlbnQsIENhbGxiYWNrQ29va2llIGNvb2tpZSk7CisKKyAgICAvKioKKyAgICAgKiBDYWxsYmFjayBtZXRob2QgY2FsbGVkIGJ5IHRoZSBIQUwgd2hlbiB0aGUgc291bmQgcmVjb2duaXRpb24gdHJpZ2dlcnMKKyAgICAgKiBmb3IgYSBrZXkgcGhyYXNlIHNvdW5kIG1vZGVsLgorICAgICAqIEBwYXJhbSBldmVudCBBIFJlY29nbml0aW9uRXZlbnQgc3RydWN0dXJlIGNvbnRhaW5pbmcgZGV0YWlsZWQgcmVzdWx0cworICAgICAqICAgICAgICAgICAgICBvZiB0aGUgcmVjb2duaXRpb24gdHJpZ2dlcmVkCisgICAgICogQHBhcmFtIGNvb2tpZSBUaGUgY29va2llIHBhc3NlZCBieSB0aGUgZnJhbWV3b3JrIHdoZW4gcmVjb2duaXRpb24gd2FzCisgICAgICogICAgICAgICAgICAgICBzdGFydGVkIChzZWUgSVNvdW5kdHJpZ2dlckh3LnN0YXJ0UmVjb2duaXRpb24oKQorICAgICAqLworICAgIHBocmFzZVJlY29nbml0aW9uQ2FsbGJhY2soUGhyYXNlUmVjb2duaXRpb25FdmVudCBldmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENhbGxiYWNrQ29va2llIGNvb2tpZSk7CisgICAgLyoqCisgICAgICogQ2FsbGJhY2sgbWV0aG9kIGNhbGxlZCBieSB0aGUgSEFMIHdoZW4gdGhlIHNvdW5kIG1vZGVsIGxvYWRpbmcgY29tcGxldGVzCisgICAgICogQHBhcmFtIGV2ZW50IEEgTW9kZWxFdmVudCBzdHJ1Y3R1cmUgY29udGFpbmluZyBkZXRhaWxlZCByZXN1bHRzIG9mIHRoZQorICAgICAqICAgICAgICAgICAgICBtb2RlbCBsb2FkaW5nIG9wZXJhdGlvbgorICAgICAqIEBwYXJhbSBjb29raWUgVGhlIGNvb2tpZSBwYXNzZWQgYnkgdGhlIGZyYW1ld29yayB3aGVuIGxvYWRpbmcgd2FzCisgICAgICogICAgICAgICAgICAgICBpbml0aWF0ZWQgKHNlZSBJU291bmR0cmlnZ2VySHcubG9hZFNvdW5kTW9kZWwoKQorICAgICAqLworICAgIHNvdW5kTW9kZWxDYWxsYmFjayhNb2RlbEV2ZW50IGV2ZW50LCBDYWxsYmFja0Nvb2tpZSBjb29raWUpOworfTsKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvc291bmR0cmlnZ2VyLzIuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY4YzZiNAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNDMgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjAtaW1wbAorTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIFNvdW5kVHJpZ2dlckhhbEltcGwuY3BwCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgICAgICBsaWJoaWRsYmFzZSBcCisgICAgICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgICAgICBsaWJsb2cgXAorICAgICAgICBsaWJ1dGlscyBcCisgICAgICAgIGxpYmhhcmR3YXJlIFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5zb3VuZHRyaWdnZXJAMi4wIFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wCisKK0xPQ0FMX0VYUE9SVF9DX0lOQ0xVREVfRElSUyA6PSAkKExPQ0FMX1BBVEgpCisKK2lmZXEgKCQoc3RyaXAgJChBVURJT1NFUlZFUl9NVUxUSUxJQikpLCkKK0xPQ0FMX01VTFRJTElCIDo9IDMyCitlbHNlCitMT0NBTF9NVUxUSUxJQiA6PSAkKEFVRElPU0VSVkVSX01VTFRJTElCKQorZW5kaWYKKworaW5jbHVkZSAkKEJVSUxEX1NIQVJFRF9MSUJSQVJZKQpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC9kZWZhdWx0L1NvdW5kVHJpZ2dlckhhbEltcGwuY3BwIGIvc291bmR0cmlnZ2VyLzIuMC9kZWZhdWx0L1NvdW5kVHJpZ2dlckhhbEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5NjUxOWIKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL2RlZmF1bHQvU291bmRUcmlnZ2VySGFsSW1wbC5jcHAKQEAgLTAsMCArMSw1ODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlNvdW5kVHJpZ2dlckhhbEltcGwiCisvLyNkZWZpbmUgTE9HX05ERUJVRyAwCisKKyNpbmNsdWRlIDxhbmRyb2lkL2xvZy5oPgorI2luY2x1ZGUgIlNvdW5kVHJpZ2dlckhhbEltcGwuaCIKKworCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHNvdW5kdHJpZ2dlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBzdGF0aWMKK3ZvaWQgU291bmRUcmlnZ2VySGFsSW1wbDo6c291bmRNb2RlbENhbGxiYWNrKHN0cnVjdCBzb3VuZF90cmlnZ2VyX21vZGVsX2V2ZW50ICpoYWxFdmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY29va2llKQoreworICAgIGlmIChoYWxFdmVudCA9PSBOVUxMKSB7CisgICAgICAgIEFMT0dXKCJzb3VuZE1vZGVsQ2FsbGJhY2sgY2FsbGVkIHdpdGggTlVMTCBldmVudCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHNwPFNvdW5kTW9kZWxDbGllbnQ+IGNsaWVudCA9CisgICAgICAgICAgICB3cDxTb3VuZE1vZGVsQ2xpZW50PihzdGF0aWNfY2FzdDxTb3VuZE1vZGVsQ2xpZW50ICo+KGNvb2tpZSkpLnByb21vdGUoKTsKKyAgICBpZiAoY2xpZW50ID09IDApIHsKKyAgICAgICAgQUxPR1coInNvdW5kTW9kZWxDYWxsYmFjayBjYWxsZWQgb24gc3RhbGUgY2xpZW50Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGhhbEV2ZW50LT5tb2RlbCAhPSBjbGllbnQtPm1IYWxIYW5kbGUpIHsKKyAgICAgICAgQUxPR1coInNvdW5kTW9kZWxDYWxsYmFjayBjYWxsIHdpdGggd3JvbmcgaGFuZGxlICVkIG9uIGNsaWVudCB3aXRoIGhhbmRsZSAlZCIsCisgICAgICAgICAgICAgIChpbnQpaGFsRXZlbnQtPm1vZGVsLCAoaW50KWNsaWVudC0+bUhhbEhhbmRsZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6TW9kZWxFdmVudCBldmVudDsKKyAgICBjb252ZXJ0U291bmRNb2RlbEV2ZW50RnJvbUhhbCgmZXZlbnQsIGhhbEV2ZW50KTsKKyAgICBldmVudC5tb2RlbCA9IGNsaWVudC0+bUlkOworCisgICAgY2xpZW50LT5tQ2FsbGJhY2stPnNvdW5kTW9kZWxDYWxsYmFjayhldmVudCwgY2xpZW50LT5tQ29va2llKTsKK30KKworLy8gc3RhdGljCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OnJlY29nbml0aW9uQ2FsbGJhY2soc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fZXZlbnQgKmhhbEV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpjb29raWUpCit7CisgICAgaWYgKGhhbEV2ZW50ID09IE5VTEwpIHsKKyAgICAgICAgQUxPR1coInJlY29nbml0aW9uQ2FsbGJhY2sgY2FsbCBOVUxMIGV2ZW50Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc3A8U291bmRNb2RlbENsaWVudD4gY2xpZW50ID0KKyAgICAgICAgICAgIHdwPFNvdW5kTW9kZWxDbGllbnQ+KHN0YXRpY19jYXN0PFNvdW5kTW9kZWxDbGllbnQgKj4oY29va2llKSkucHJvbW90ZSgpOworICAgIGlmIChjbGllbnQgPT0gMCkgeworICAgICAgICBBTE9HVygic291bmRNb2RlbENhbGxiYWNrIGNhbGxlZCBvbiBzdGFsZSBjbGllbnQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpSZWNvZ25pdGlvbkV2ZW50ICpldmVudCA9IGNvbnZlcnRSZWNvZ25pdGlvbkV2ZW50RnJvbUhhbChoYWxFdmVudCk7CisgICAgZXZlbnQtPm1vZGVsID0gY2xpZW50LT5tSWQ7CisgICAgaWYgKGhhbEV2ZW50LT50eXBlID09IFNPVU5EX01PREVMX1RZUEVfS0VZUEhSQVNFKSB7CisgICAgICAgIGNsaWVudC0+bUNhbGxiYWNrLT5waHJhc2VSZWNvZ25pdGlvbkNhbGxiYWNrKAorICAgICAgICAgICAgICAgICoocmVpbnRlcnByZXRfY2FzdDxJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6UGhyYXNlUmVjb2duaXRpb25FdmVudCAqPihldmVudCkpLAorICAgICAgICAgICAgICAgIGNsaWVudC0+bUNvb2tpZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY2xpZW50LT5tQ2FsbGJhY2stPnJlY29nbml0aW9uQ2FsbGJhY2soKmV2ZW50LCBjbGllbnQtPm1Db29raWUpOworICAgIH0KKyAgICBkZWxldGUgZXZlbnQ7Cit9CisKKworCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6c291bmR0cmlnZ2VyOjpWMl8wOjpJU291bmRUcmlnZ2VySHcgZm9sbG93LgorUmV0dXJuPHZvaWQ+IFNvdW5kVHJpZ2dlckhhbEltcGw6OmdldFByb3BlcnRpZXMoZ2V0UHJvcGVydGllc19jYiBfaGlkbF9jYikKK3sKKyAgICBBTE9HVigiZ2V0UHJvcGVydGllcygpIG1Id0RldmljZSAlcCIsIG1Id0RldmljZSk7CisgICAgaW50IHJldDsKKyAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9wcm9wZXJ0aWVzIGhhbFByb3BlcnRpZXM7CisgICAgSVNvdW5kVHJpZ2dlckh3OjpQcm9wZXJ0aWVzIHByb3BlcnRpZXM7CisKKyAgICBpZiAobUh3RGV2aWNlID09IE5VTEwpIHsKKyAgICAgICAgcmV0ID0gLUVOT0RFVjsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHJldCA9IG1Id0RldmljZS0+Z2V0X3Byb3BlcnRpZXMobUh3RGV2aWNlLCAmaGFsUHJvcGVydGllcyk7CisKKyAgICBjb252ZXJ0UHJvcGVydGllc0Zyb21IYWwoJnByb3BlcnRpZXMsICZoYWxQcm9wZXJ0aWVzKTsKKworICAgIEFMT0dWKCJnZXRQcm9wZXJ0aWVzIGltcGxlbWVudG9yICVzIHJlY29nbml0aW9uTW9kZXMgJTA4eCIsCisgICAgICAgICAgcHJvcGVydGllcy5pbXBsZW1lbnRvci5jX3N0cigpLCBwcm9wZXJ0aWVzLnJlY29nbml0aW9uTW9kZXMpOworCitleGl0OgorICAgIF9oaWRsX2NiKHJldCwgcHJvcGVydGllcyk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworaW50IFNvdW5kVHJpZ2dlckhhbEltcGw6OmRvTG9hZFNvdW5kTW9kZWwoY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsJiBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElTb3VuZFRyaWdnZXJId0NhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqbW9kZWxJZCkKK3sKKyAgICBpbnQzMl90IHJldCA9IDA7CisgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwgKmhhbFNvdW5kTW9kZWw7CisgICAgKm1vZGVsSWQgPSAwOworICAgIHNwPFNvdW5kTW9kZWxDbGllbnQ+IGNsaWVudDsKKworICAgIEFMT0dWKCJkb0xvYWRTb3VuZE1vZGVsKCkgZGF0YSBzaXplICV6dSIsIHNvdW5kTW9kZWwuZGF0YS5zaXplKCkpOworCisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBoYWxTb3VuZE1vZGVsID0gY29udmVydFNvdW5kTW9kZWxUb0hhbCgmc291bmRNb2RlbCk7CisgICAgaWYgKGhhbFNvdW5kTW9kZWwgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRUlOVkFMOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgeworICAgICAgICBBdXRvTXV0ZXggbG9jayhtTG9jayk7CisgICAgICAgIGRvIHsKKyAgICAgICAgICAgICptb2RlbElkID0gbmV4dFVuaXF1ZUlkKCk7CisgICAgICAgIH0gd2hpbGUgKG1DbGllbnRzLnZhbHVlRm9yKCptb2RlbElkKSAhPSAwICYmICptb2RlbElkICE9IDApOworICAgIH0KKyAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKCptb2RlbElkID09IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAid3JhcCBhcm91bmQgaW4gc291bmQgbW9kZWwgSURzLCBudW0gbG9hZGVkIG1vZGVscyAlenUiLCBtQ2xpZW50cy5zaXplKCkpOworCisgICAgY2xpZW50ID0gbmV3IFNvdW5kTW9kZWxDbGllbnQoKm1vZGVsSWQsIGNhbGxiYWNrLCBjb29raWUpOworCisgICAgcmV0ID0gbUh3RGV2aWNlLT5sb2FkX3NvdW5kX21vZGVsKG1Id0RldmljZSwgaGFsU291bmRNb2RlbCwgc291bmRNb2RlbENhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50LmdldCgpLCAmY2xpZW50LT5tSGFsSGFuZGxlKTsKKworICAgIGZyZWUoaGFsU291bmRNb2RlbCk7CisKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHsKKyAgICAgICAgQXV0b011dGV4IGxvY2sobUxvY2spOworICAgICAgICBtQ2xpZW50cy5hZGQoKm1vZGVsSWQsIGNsaWVudCk7CisgICAgfQorCitleGl0OgorICAgIHJldHVybiByZXQ7Cit9CisKK1JldHVybjx2b2lkPiBTb3VuZFRyaWdnZXJIYWxJbXBsOjpsb2FkU291bmRNb2RlbChjb25zdCBJU291bmRUcmlnZ2VySHc6OlNvdW5kTW9kZWwmIHNvdW5kTW9kZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3A8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s+JiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6Q2FsbGJhY2tDb29raWUgY29va2llLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRTb3VuZE1vZGVsX2NiIF9oaWRsX2NiKQoreworICAgIHVpbnQzMl90IG1vZGVsSWQgPSAwOworICAgIGludDMyX3QgcmV0ID0gZG9Mb2FkU291bmRNb2RlbChzb3VuZE1vZGVsLCBjYWxsYmFjaywgY29va2llLCAmbW9kZWxJZCk7CisKKyAgICBfaGlkbF9jYihyZXQsIG1vZGVsSWQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBTb3VuZFRyaWdnZXJIYWxJbXBsOjpsb2FkUGhyYXNlU291bmRNb2RlbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2VTb3VuZE1vZGVsJiBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6Q2FsbGJhY2tDb29raWUgY29va2llLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHc6OmxvYWRQaHJhc2VTb3VuZE1vZGVsX2NiIF9oaWRsX2NiKQoreworICAgIHVpbnQzMl90IG1vZGVsSWQgPSAwOworICAgIGludDMyX3QgcmV0ID0gZG9Mb2FkU291bmRNb2RlbCgoY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsJilzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywgY29va2llLCAmbW9kZWxJZCk7CisKKyAgICBfaGlkbF9jYihyZXQsIG1vZGVsSWQpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjxpbnQzMl90PiBTb3VuZFRyaWdnZXJIYWxJbXBsOjp1bmxvYWRTb3VuZE1vZGVsKFNvdW5kTW9kZWxIYW5kbGUgbW9kZWxIYW5kbGUpCit7CisgICAgaW50MzJfdCByZXQ7CisgICAgc3A8U291bmRNb2RlbENsaWVudD4gY2xpZW50OworCisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICB7CisgICAgICAgIEF1dG9NdXRleCBsb2NrKG1Mb2NrKTsKKyAgICAgICAgY2xpZW50ID0gbUNsaWVudHMudmFsdWVGb3IobW9kZWxIYW5kbGUpOworICAgICAgICBpZiAoY2xpZW50ID09IDApIHsKKyAgICAgICAgICAgIHJldCA9IC1FTk9TWVM7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXQgPSBtSHdEZXZpY2UtPnVubG9hZF9zb3VuZF9tb2RlbChtSHdEZXZpY2UsIGNsaWVudC0+bUhhbEhhbmRsZSk7CisKKyAgICBtQ2xpZW50cy5yZW1vdmVJdGVtKG1vZGVsSGFuZGxlKTsKKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorCitSZXR1cm48aW50MzJfdD4gU291bmRUcmlnZ2VySGFsSW1wbDo6c3RhcnRSZWNvZ25pdGlvbihTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElTb3VuZFRyaWdnZXJIdzo6UmVjb2duaXRpb25Db25maWcmIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrIF9fdW51c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBjb29raWUgX191bnVzZWQpCit7CisgICAgaW50MzJfdCByZXQ7CisgICAgc3A8U291bmRNb2RlbENsaWVudD4gY2xpZW50OworICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2NvbmZpZyAqaGFsQ29uZmlnOworCisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICB7CisgICAgICAgIEF1dG9NdXRleCBsb2NrKG1Mb2NrKTsKKyAgICAgICAgY2xpZW50ID0gbUNsaWVudHMudmFsdWVGb3IobW9kZWxIYW5kbGUpOworICAgICAgICBpZiAoY2xpZW50ID09IDApIHsKKyAgICAgICAgICAgIHJldCA9IC1FTk9TWVM7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGhhbENvbmZpZyA9IGNvbnZlcnRSZWNvZ25pdGlvbkNvbmZpZ1RvSGFsKCZjb25maWcpOworCisgICAgaWYgKGhhbENvbmZpZyA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IC1FSU5WQUw7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisgICAgcmV0ID0gbUh3RGV2aWNlLT5zdGFydF9yZWNvZ25pdGlvbihtSHdEZXZpY2UsIGNsaWVudC0+bUhhbEhhbmRsZSwgaGFsQ29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb2duaXRpb25DYWxsYmFjaywgY2xpZW50LmdldCgpKTsKKworICAgIGZyZWUoaGFsQ29uZmlnKTsKKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorCitSZXR1cm48aW50MzJfdD4gU291bmRUcmlnZ2VySGFsSW1wbDo6c3RvcFJlY29nbml0aW9uKFNvdW5kTW9kZWxIYW5kbGUgbW9kZWxIYW5kbGUpCit7CisgICAgaW50MzJfdCByZXQ7CisgICAgc3A8U291bmRNb2RlbENsaWVudD4gY2xpZW50OworICAgIGlmIChtSHdEZXZpY2UgPT0gTlVMTCkgeworICAgICAgICByZXQgPSAtRU5PREVWOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgeworICAgICAgICBBdXRvTXV0ZXggbG9jayhtTG9jayk7CisgICAgICAgIGNsaWVudCA9IG1DbGllbnRzLnZhbHVlRm9yKG1vZGVsSGFuZGxlKTsKKyAgICAgICAgaWYgKGNsaWVudCA9PSAwKSB7CisgICAgICAgICAgICByZXQgPSAtRU5PU1lTOworICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0ID0gbUh3RGV2aWNlLT5zdG9wX3JlY29nbml0aW9uKG1Id0RldmljZSwgY2xpZW50LT5tSGFsSGFuZGxlKTsKKworZXhpdDoKKyAgICByZXR1cm4gcmV0OworfQorCitSZXR1cm48aW50MzJfdD4gU291bmRUcmlnZ2VySGFsSW1wbDo6c3RvcEFsbFJlY29nbml0aW9ucygpCit7CisgICAgaW50MzJfdCByZXQ7CisgICAgaWYgKG1Id0RldmljZSA9PSBOVUxMKSB7CisgICAgICAgIHJldCA9IC1FTk9ERVY7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICBpZiAobUh3RGV2aWNlLT5jb21tb24udmVyc2lvbiA+PSBTT1VORF9UUklHR0VSX0RFVklDRV9BUElfVkVSU0lPTl8xXzEgJiYKKyAgICAgICAgICAgIG1Id0RldmljZS0+c3RvcF9hbGxfcmVjb2duaXRpb25zKSB7CisgICAgICAgIHJldCA9IG1Id0RldmljZS0+c3RvcF9hbGxfcmVjb2duaXRpb25zKG1Id0RldmljZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0ID0gLUVOT1NZUzsKKyAgICB9CitleGl0OgorICAgIHJldHVybiByZXQ7Cit9CisKK1NvdW5kVHJpZ2dlckhhbEltcGw6OlNvdW5kVHJpZ2dlckhhbEltcGwoKQorICAgIDogbU1vZHVsZU5hbWUoInByaW1hcnkiKSwgbUh3RGV2aWNlKE5VTEwpLCBtTmV4dE1vZGVsSWQoMSkKK3sKK30KKwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpvbkZpcnN0UmVmKCkKK3sKKyAgICBjb25zdCBod19tb2R1bGVfdCAqbW9kOworICAgIGludCByYzsKKworICAgIHJjID0gaHdfZ2V0X21vZHVsZV9ieV9jbGFzcyhTT1VORF9UUklHR0VSX0hBUkRXQVJFX01PRFVMRV9JRCwgbU1vZHVsZU5hbWUsICZtb2QpOworICAgIGlmIChyYyAhPSAwKSB7CisgICAgICAgIEFMT0dFKCJjb3VsZG4ndCBsb2FkIHNvdW5kIHRyaWdnZXIgbW9kdWxlICVzLiVzICglcykiLAorICAgICAgICAgICAgICBTT1VORF9UUklHR0VSX0hBUkRXQVJFX01PRFVMRV9JRCwgbU1vZHVsZU5hbWUsIHN0cmVycm9yKC1yYykpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHJjID0gc291bmRfdHJpZ2dlcl9od19kZXZpY2Vfb3Blbihtb2QsICZtSHdEZXZpY2UpOworICAgIGlmIChyYyAhPSAwKSB7CisgICAgICAgIEFMT0dFKCJjb3VsZG4ndCBvcGVuIHNvdW5kIHRyaWdnZXIgaHcgZGV2aWNlIGluICVzLiVzICglcykiLAorICAgICAgICAgICAgICBTT1VORF9UUklHR0VSX0hBUkRXQVJFX01PRFVMRV9JRCwgbU1vZHVsZU5hbWUsIHN0cmVycm9yKC1yYykpOworICAgICAgICBtSHdEZXZpY2UgPSBOVUxMOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChtSHdEZXZpY2UtPmNvbW1vbi52ZXJzaW9uIDwgU09VTkRfVFJJR0dFUl9ERVZJQ0VfQVBJX1ZFUlNJT05fMV8wIHx8CisgICAgICAgICAgICBtSHdEZXZpY2UtPmNvbW1vbi52ZXJzaW9uID4gU09VTkRfVFJJR0dFUl9ERVZJQ0VfQVBJX1ZFUlNJT05fQ1VSUkVOVCkgeworICAgICAgICBBTE9HRSgid3Jvbmcgc291bmQgdHJpZ2dlciBodyBkZXZpY2UgdmVyc2lvbiAlMDR4IiwgbUh3RGV2aWNlLT5jb21tb24udmVyc2lvbik7CisgICAgICAgIHNvdW5kX3RyaWdnZXJfaHdfZGV2aWNlX2Nsb3NlKG1Id0RldmljZSk7CisgICAgICAgIG1Id0RldmljZSA9IE5VTEw7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBBTE9HSSgib25GaXJzdFJlZigpIG1Nb2R1bGVOYW1lICVzIG1Id0RldmljZSAlcCIsIG1Nb2R1bGVOYW1lLCBtSHdEZXZpY2UpOworfQorCitTb3VuZFRyaWdnZXJIYWxJbXBsOjp+U291bmRUcmlnZ2VySGFsSW1wbCgpCit7CisgICAgaWYgKG1Id0RldmljZSAhPSBOVUxMKSB7CisgICAgICAgIHNvdW5kX3RyaWdnZXJfaHdfZGV2aWNlX2Nsb3NlKG1Id0RldmljZSk7CisgICAgfQorfQorCit1aW50MzJfdCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpuZXh0VW5pcXVlSWQoKQoreworICAgIHJldHVybiAodWludDMyX3QpIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQoJm1OZXh0TW9kZWxJZCwKKyAgICAgICAgICAgICAgICAodWludF9mYXN0MzJfdCkgMSwgbWVtb3J5X29yZGVyX2FjcV9yZWwpOworfQorCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRVdWlkRnJvbUhhbChVdWlkICp1dWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc291bmRfdHJpZ2dlcl91dWlkX3QgKmhhbFV1aWQpCit7CisgICAgdXVpZC0+dGltZUxvdyA9IGhhbFV1aWQtPnRpbWVMb3c7CisgICAgdXVpZC0+dGltZU1pZCA9IGhhbFV1aWQtPnRpbWVNaWQ7CisgICAgdXVpZC0+dmVyc2lvbkFuZFRpbWVIaWdoID0gaGFsVXVpZC0+dGltZUhpQW5kVmVyc2lvbjsKKyAgICB1dWlkLT52YXJpYW50QW5kQ2xvY2tTZXFIaWdoID0gaGFsVXVpZC0+Y2xvY2tTZXE7CisgICAgbWVtY3B5KCZ1dWlkLT5ub2RlWzBdLCAmaGFsVXVpZC0+bm9kZVswXSwgNik7Cit9CisKK3ZvaWQgU291bmRUcmlnZ2VySGFsSW1wbDo6Y29udmVydFV1aWRUb0hhbChzb3VuZF90cmlnZ2VyX3V1aWRfdCAqaGFsVXVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVdWlkICp1dWlkKQoreworICAgIGhhbFV1aWQtPnRpbWVMb3cgPSB1dWlkLT50aW1lTG93OworICAgIGhhbFV1aWQtPnRpbWVNaWQgPSB1dWlkLT50aW1lTWlkOworICAgIGhhbFV1aWQtPnRpbWVIaUFuZFZlcnNpb24gPSB1dWlkLT52ZXJzaW9uQW5kVGltZUhpZ2g7CisgICAgaGFsVXVpZC0+Y2xvY2tTZXEgPSB1dWlkLT52YXJpYW50QW5kQ2xvY2tTZXFIaWdoOworICAgIG1lbWNweSgmaGFsVXVpZC0+bm9kZVswXSwgJnV1aWQtPm5vZGVbMF0sIDYpOworfQorCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRQcm9wZXJ0aWVzRnJvbUhhbCgKKyAgICAgICAgSVNvdW5kVHJpZ2dlckh3OjpQcm9wZXJ0aWVzICpwcm9wZXJ0aWVzLAorICAgICAgICBjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9wcm9wZXJ0aWVzICpoYWxQcm9wZXJ0aWVzKQoreworICAgIHByb3BlcnRpZXMtPmltcGxlbWVudG9yID0gaGFsUHJvcGVydGllcy0+aW1wbGVtZW50b3I7CisgICAgcHJvcGVydGllcy0+ZGVzY3JpcHRpb24gPSBoYWxQcm9wZXJ0aWVzLT5kZXNjcmlwdGlvbjsKKyAgICBwcm9wZXJ0aWVzLT52ZXJzaW9uID0gaGFsUHJvcGVydGllcy0+dmVyc2lvbjsKKyAgICBjb252ZXJ0VXVpZEZyb21IYWwoJnByb3BlcnRpZXMtPnV1aWQsICZoYWxQcm9wZXJ0aWVzLT51dWlkKTsKKyAgICBwcm9wZXJ0aWVzLT5tYXhTb3VuZE1vZGVscyA9IGhhbFByb3BlcnRpZXMtPm1heF9zb3VuZF9tb2RlbHM7CisgICAgcHJvcGVydGllcy0+bWF4S2V5UGhyYXNlcyA9IGhhbFByb3BlcnRpZXMtPm1heF9rZXlfcGhyYXNlczsKKyAgICBwcm9wZXJ0aWVzLT5tYXhVc2VycyA9IGhhbFByb3BlcnRpZXMtPm1heF91c2VyczsKKyAgICBwcm9wZXJ0aWVzLT5yZWNvZ25pdGlvbk1vZGVzID0gaGFsUHJvcGVydGllcy0+cmVjb2duaXRpb25fbW9kZXM7CisgICAgcHJvcGVydGllcy0+Y2FwdHVyZVRyYW5zaXRpb24gPSBoYWxQcm9wZXJ0aWVzLT5jYXB0dXJlX3RyYW5zaXRpb247CisgICAgcHJvcGVydGllcy0+bWF4QnVmZmVyTXMgPSBoYWxQcm9wZXJ0aWVzLT5tYXhfYnVmZmVyX21zOworICAgIHByb3BlcnRpZXMtPmNvbmN1cnJlbnRDYXB0dXJlID0gaGFsUHJvcGVydGllcy0+Y29uY3VycmVudF9jYXB0dXJlOworICAgIHByb3BlcnRpZXMtPnRyaWdnZXJJbkV2ZW50ID0gaGFsUHJvcGVydGllcy0+dHJpZ2dlcl9pbl9ldmVudDsKKyAgICBwcm9wZXJ0aWVzLT5wb3dlckNvbnN1bXB0aW9uTXcgPSBoYWxQcm9wZXJ0aWVzLT5wb3dlcl9jb25zdW1wdGlvbl9tdzsKKworfQorCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRUcmlnZ2VyUGhyYXNlVG9IYWwoCisgICAgICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZSAqaGFsVHJpZ2dlclBocmFzZSwKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2UgKnRyaWdnZXJQaHJhc2UpCit7CisgICAgaGFsVHJpZ2dlclBocmFzZS0+aWQgPSB0cmlnZ2VyUGhyYXNlLT5pZDsKKyAgICBoYWxUcmlnZ2VyUGhyYXNlLT5yZWNvZ25pdGlvbl9tb2RlID0gdHJpZ2dlclBocmFzZS0+cmVjb2duaXRpb25Nb2RlczsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgdHJpZ2dlclBocmFzZS0+dXNlcnMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaGFsVHJpZ2dlclBocmFzZS0+dXNlcnNbaV0gPSB0cmlnZ2VyUGhyYXNlLT51c2Vyc1tpXTsKKyAgICB9CisgICAgaGFsVHJpZ2dlclBocmFzZS0+bnVtX3VzZXJzID0gaTsKKworICAgIHN0cmxjcHkoaGFsVHJpZ2dlclBocmFzZS0+bG9jYWxlLAorICAgICAgICAgICAgdHJpZ2dlclBocmFzZS0+bG9jYWxlLmNfc3RyKCksIFNPVU5EX1RSSUdHRVJfTUFYX0xPQ0FMRV9MRU4pOworICAgIHN0cmxjcHkoaGFsVHJpZ2dlclBocmFzZS0+dGV4dCwKKyAgICAgICAgICAgIHRyaWdnZXJQaHJhc2UtPnRleHQuY19zdHIoKSwgU09VTkRfVFJJR0dFUl9NQVhfU1RSSU5HX0xFTik7Cit9CisKK3N0cnVjdCBzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsICpTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0U291bmRNb2RlbFRvSGFsKAorICAgICAgICBjb25zdCBJU291bmRUcmlnZ2VySHc6OlNvdW5kTW9kZWwgKnNvdW5kTW9kZWwpCit7CisgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwgKmhhbE1vZGVsID0gTlVMTDsKKyAgICBpZiAoc291bmRNb2RlbC0+dHlwZSA9PSBTb3VuZE1vZGVsVHlwZTo6S0VZUEhSQVNFKSB7CisgICAgICAgIHNpemVfdCBhbGxvY1NpemUgPQorICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2Vfc291bmRfbW9kZWwpICsgc291bmRNb2RlbC0+ZGF0YS5zaXplKCk7CisgICAgICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9zb3VuZF9tb2RlbCAqaGFsS2V5UGhyYXNlTW9kZWwgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9zb3VuZF9tb2RlbCAqPihtYWxsb2MoYWxsb2NTaXplKSk7CisgICAgICAgIExPR19BTFdBWVNfRkFUQUxfSUYoaGFsS2V5UGhyYXNlTW9kZWwgPT0gTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJtYWxsb2MgZmFpbGVkIGZvciBzaXplICV6dSBpbiBjb252ZXJ0U291bmRNb2RlbFRvSGFsIFBIUkFTRSIsIGFsbG9jU2l6ZSk7CisKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpQaHJhc2VTb3VuZE1vZGVsICprZXlQaHJhc2VNb2RlbCA9CisgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBJU291bmRUcmlnZ2VySHc6OlBocmFzZVNvdW5kTW9kZWwgKj4oc291bmRNb2RlbCk7CisKKyAgICAgICAgc2l6ZV90IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBrZXlQaHJhc2VNb2RlbC0+cGhyYXNlcy5zaXplKCkgJiYgaSA8IFNPVU5EX1RSSUdHRVJfTUFYX1BIUkFTRVM7IGkrKykgeworICAgICAgICAgICAgY29udmVydFRyaWdnZXJQaHJhc2VUb0hhbCgmaGFsS2V5UGhyYXNlTW9kZWwtPnBocmFzZXNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZrZXlQaHJhc2VNb2RlbC0+cGhyYXNlc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgaGFsS2V5UGhyYXNlTW9kZWwtPm51bV9waHJhc2VzID0gKHVuc2lnbmVkIGludClpOworICAgICAgICBoYWxNb2RlbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8c3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwgKj4oaGFsS2V5UGhyYXNlTW9kZWwpOworICAgICAgICBoYWxNb2RlbC0+ZGF0YV9vZmZzZXQgPSBzaXplb2Yoc3RydWN0IHNvdW5kX3RyaWdnZXJfcGhyYXNlX3NvdW5kX21vZGVsKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaXplX3QgYWxsb2NTaXplID0KKyAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwpICsgc291bmRNb2RlbC0+ZGF0YS5zaXplKCk7CisgICAgICAgIGhhbE1vZGVsID0gc3RhdGljX2Nhc3Q8c3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwgKj4obWFsbG9jKGFsbG9jU2l6ZSkpOworICAgICAgICBMT0dfQUxXQVlTX0ZBVEFMX0lGKGhhbE1vZGVsID09IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1hbGxvYyBmYWlsZWQgZm9yIHNpemUgJXp1IGluIGNvbnZlcnRTb3VuZE1vZGVsVG9IYWwgR0VORVJJQyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NTaXplKTsKKworICAgICAgICBoYWxNb2RlbC0+ZGF0YV9vZmZzZXQgPSBzaXplb2Yoc3RydWN0IHNvdW5kX3RyaWdnZXJfc291bmRfbW9kZWwpOworICAgIH0KKyAgICBoYWxNb2RlbC0+dHlwZSA9IChzb3VuZF90cmlnZ2VyX3NvdW5kX21vZGVsX3R5cGVfdClzb3VuZE1vZGVsLT50eXBlOworICAgIGNvbnZlcnRVdWlkVG9IYWwoJmhhbE1vZGVsLT51dWlkLCAmc291bmRNb2RlbC0+dXVpZCk7CisgICAgY29udmVydFV1aWRUb0hhbCgmaGFsTW9kZWwtPnZlbmRvcl91dWlkLCAmc291bmRNb2RlbC0+dmVuZG9yVXVpZCk7CisgICAgaGFsTW9kZWwtPmRhdGFfc2l6ZSA9IHNvdW5kTW9kZWwtPmRhdGEuc2l6ZSgpOworICAgIHVpbnQ4X3QgKmRzdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCAqPihoYWxNb2RlbCkgKyBoYWxNb2RlbC0+ZGF0YV9vZmZzZXQ7CisgICAgY29uc3QgdWludDhfdCAqc3JjID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KCZzb3VuZE1vZGVsLT5kYXRhWzBdKTsKKyAgICBtZW1jcHkoZHN0LCBzcmMsIHNvdW5kTW9kZWwtPmRhdGEuc2l6ZSgpKTsKKworICAgIHJldHVybiBoYWxNb2RlbDsKK30KKwordm9pZCBTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0UGhyYXNlUmVjb2duaXRpb25FeHRyYVRvSGFsKAorICAgICAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2VfcmVjb2duaXRpb25fZXh0cmEgKmhhbEV4dHJhLAorICAgICAgICBjb25zdCBQaHJhc2VSZWNvZ25pdGlvbkV4dHJhICpleHRyYSkKK3sKKyAgICBoYWxFeHRyYS0+aWQgPSBleHRyYS0+aWQ7CisgICAgaGFsRXh0cmEtPnJlY29nbml0aW9uX21vZGVzID0gZXh0cmEtPnJlY29nbml0aW9uTW9kZXM7CisgICAgaGFsRXh0cmEtPmNvbmZpZGVuY2VfbGV2ZWwgPSBleHRyYS0+Y29uZmlkZW5jZUxldmVsOworCisgICAgdW5zaWduZWQgaW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IGV4dHJhLT5sZXZlbHMuc2l6ZSgpICYmIGkgPCBTT1VORF9UUklHR0VSX01BWF9VU0VSUzsgaSsrKSB7CisgICAgICAgIGhhbEV4dHJhLT5sZXZlbHNbaV0udXNlcl9pZCA9IGV4dHJhLT5sZXZlbHNbaV0udXNlcklkOworICAgICAgICBoYWxFeHRyYS0+bGV2ZWxzW2ldLmxldmVsID0gZXh0cmEtPmxldmVsc1tpXS5sZXZlbFBlcmNlbnQ7CisgICAgfQorICAgIGhhbEV4dHJhLT5udW1fbGV2ZWxzID0gaTsKK30KKworc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fY29uZmlnICpTb3VuZFRyaWdnZXJIYWxJbXBsOjpjb252ZXJ0UmVjb2duaXRpb25Db25maWdUb0hhbCgKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpSZWNvZ25pdGlvbkNvbmZpZyAqY29uZmlnKQoreworICAgIHNpemVfdCBhbGxvY1NpemUgPSBzaXplb2Yoc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fY29uZmlnKSArIGNvbmZpZy0+ZGF0YS5zaXplKCk7CisgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fY29uZmlnICpoYWxDb25maWcgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fY29uZmlnICo+KG1hbGxvYyhhbGxvY1NpemUpKTsKKworICAgIExPR19BTFdBWVNfRkFUQUxfSUYoaGFsQ29uZmlnID09IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAibWFsbG9jIGZhaWxlZCBmb3Igc2l6ZSAlenUgaW4gY29udmVydFJlY29nbml0aW9uQ29uZmlnVG9IYWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NTaXplKTsKKworICAgIGhhbENvbmZpZy0+Y2FwdHVyZV9oYW5kbGUgPSAoYXVkaW9faW9faGFuZGxlX3QpY29uZmlnLT5jYXB0dXJlSGFuZGxlOworICAgIGhhbENvbmZpZy0+Y2FwdHVyZV9kZXZpY2UgPSAoYXVkaW9fZGV2aWNlc190KWNvbmZpZy0+Y2FwdHVyZURldmljZTsKKyAgICBoYWxDb25maWctPmNhcHR1cmVfcmVxdWVzdGVkID0gY29uZmlnLT5jYXB0dXJlUmVxdWVzdGVkOworCisgICAgdW5zaWduZWQgaW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IGNvbmZpZy0+cGhyYXNlcy5zaXplKCkgJiYgaSA8IFNPVU5EX1RSSUdHRVJfTUFYX1BIUkFTRVM7IGkrKykgeworICAgICAgICBjb252ZXJ0UGhyYXNlUmVjb2duaXRpb25FeHRyYVRvSGFsKCZoYWxDb25maWctPnBocmFzZXNbaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbmZpZy0+cGhyYXNlc1tpXSk7CisgICAgfQorICAgIGhhbENvbmZpZy0+bnVtX3BocmFzZXMgPSBpOworCisgICAgaGFsQ29uZmlnLT5kYXRhX29mZnNldCA9IHNpemVvZihzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9yZWNvZ25pdGlvbl9jb25maWcpOworICAgIGhhbENvbmZpZy0+ZGF0YV9zaXplID0gY29uZmlnLT5kYXRhLnNpemUoKTsKKyAgICB1aW50OF90ICpkc3QgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QgKj4oaGFsQ29uZmlnKSArIGhhbENvbmZpZy0+ZGF0YV9vZmZzZXQ7CisgICAgY29uc3QgdWludDhfdCAqc3JjID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KCZjb25maWctPmRhdGFbMF0pOworICAgIG1lbWNweShkc3QsIHNyYywgY29uZmlnLT5kYXRhLnNpemUoKSk7CisgICAgcmV0dXJuIGhhbENvbmZpZzsKK30KKworLy8gc3RhdGljCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRTb3VuZE1vZGVsRXZlbnRGcm9tSGFsKElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpNb2RlbEV2ZW50ICpldmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzb3VuZF90cmlnZ2VyX21vZGVsX2V2ZW50ICpoYWxFdmVudCkKK3sKKyAgICBldmVudC0+c3RhdHVzID0gKElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpTb3VuZE1vZGVsU3RhdHVzKWhhbEV2ZW50LT5zdGF0dXM7CisgICAgLy8gZXZlbnQtPm1vZGVsIHRvIGJlIHJlbWFwcGVkIGJ5IGNhbGxlZAorICAgIGV2ZW50LT5kYXRhLnNldFRvRXh0ZXJuYWwoCisgICAgICAgICAgICBjb25zdF9jYXN0PHVpbnQ4X3QgKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KGhhbEV2ZW50KSkgKyBoYWxFdmVudC0+ZGF0YV9vZmZzZXQsCisgICAgICAgICAgICBoYWxFdmVudC0+ZGF0YV9zaXplKTsKK30KKworLy8gc3RhdGljCitJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6UmVjb2duaXRpb25FdmVudCAqU291bmRUcmlnZ2VySGFsSW1wbDo6Y29udmVydFJlY29nbml0aW9uRXZlbnRGcm9tSGFsKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9yZWNvZ25pdGlvbl9ldmVudCAqaGFsRXZlbnQpCit7CisgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uRXZlbnQgKiBldmVudDsKKworICAgIGlmIChoYWxFdmVudC0+dHlwZSA9PSBTT1VORF9NT0RFTF9UWVBFX0tFWVBIUkFTRSkgeworICAgICAgICBjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2VfcmVjb2duaXRpb25fZXZlbnQgKmhhbFBocmFzZUV2ZW50ID0KKyAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGNvbnN0IHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9yZWNvZ25pdGlvbl9ldmVudCAqPihoYWxFdmVudCk7CisgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpQaHJhc2VSZWNvZ25pdGlvbkV2ZW50ICpwaHJhc2VFdmVudCA9CisgICAgICAgICAgICAgICAgbmV3IElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpQaHJhc2VSZWNvZ25pdGlvbkV2ZW50KCk7CisKKyAgICAgICAgUGhyYXNlUmVjb2duaXRpb25FeHRyYSAqcGhyYXNlRXh0cmFzID0KKyAgICAgICAgICAgICAgICBuZXcgUGhyYXNlUmVjb2duaXRpb25FeHRyYVtoYWxQaHJhc2VFdmVudC0+bnVtX3BocmFzZXNdOworICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGhhbFBocmFzZUV2ZW50LT5udW1fcGhyYXNlczsgaSsrKSB7CisgICAgICAgICAgICBjb252ZXJ0UGhyYXNlUmVjb2duaXRpb25FeHRyYUZyb21IYWwoJnBocmFzZUV4dHJhc1tpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaGFsUGhyYXNlRXZlbnQtPnBocmFzZV9leHRyYXNbaV0pOworICAgICAgICB9CisgICAgICAgIHBocmFzZUV2ZW50LT5waHJhc2VFeHRyYXMuc2V0VG9FeHRlcm5hbChwaHJhc2VFeHRyYXMsIGhhbFBocmFzZUV2ZW50LT5udW1fcGhyYXNlcyk7CisgICAgICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgICAgICBwaHJhc2VFdmVudC0+cGhyYXNlRXh0cmFzLnJlc2l6ZShoYWxQaHJhc2VFdmVudC0+bnVtX3BocmFzZXMpOworICAgICAgICBkZWxldGVbXSBwaHJhc2VFeHRyYXM7CisgICAgICAgIGV2ZW50ID0gcmVpbnRlcnByZXRfY2FzdDxJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6UmVjb2duaXRpb25FdmVudCAqPihwaHJhc2VFdmVudCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZXZlbnQgPSBuZXcgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uRXZlbnQoKTsKKyAgICB9CisKKyAgICBldmVudC0+c3RhdHVzID0gc3RhdGljX2Nhc3Q8SVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uU3RhdHVzPihoYWxFdmVudC0+c3RhdHVzKTsKKyAgICBldmVudC0+dHlwZSA9IHN0YXRpY19jYXN0PFNvdW5kTW9kZWxUeXBlPihoYWxFdmVudC0+dHlwZSk7CisgICAgLy8gZXZlbnQtPm1vZGVsIHRvIGJlIHJlbWFwcGVkIGJ5IGNhbGxlZAorICAgIGV2ZW50LT5jYXB0dXJlQXZhaWxhYmxlID0gaGFsRXZlbnQtPmNhcHR1cmVfYXZhaWxhYmxlOworICAgIGV2ZW50LT5jYXB0dXJlU2Vzc2lvbiA9IGhhbEV2ZW50LT5jYXB0dXJlX3Nlc3Npb247CisgICAgZXZlbnQtPmNhcHR1cmVEZWxheU1zID0gaGFsRXZlbnQtPmNhcHR1cmVfZGVsYXlfbXM7CisgICAgZXZlbnQtPmNhcHR1cmVQcmVhbWJsZU1zID0gaGFsRXZlbnQtPmNhcHR1cmVfcHJlYW1ibGVfbXM7CisgICAgZXZlbnQtPnRyaWdnZXJJbkRhdGEgPSBoYWxFdmVudC0+dHJpZ2dlcl9pbl9kYXRhOworICAgIGV2ZW50LT5hdWRpb0NvbmZpZy5zYW1wbGVSYXRlSHogPSBoYWxFdmVudC0+YXVkaW9fY29uZmlnLnNhbXBsZV9yYXRlOworICAgIGV2ZW50LT5hdWRpb0NvbmZpZy5jaGFubmVsTWFzayA9CisgICAgICAgICAgICAoYXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9DaGFubmVsTWFzayloYWxFdmVudC0+YXVkaW9fY29uZmlnLmNoYW5uZWxfbWFzazsKKyAgICBldmVudC0+YXVkaW9Db25maWcuZm9ybWF0ID0gKGF1ZGlvOjpjb21tb246OlYyXzA6OkF1ZGlvRm9ybWF0KWhhbEV2ZW50LT5hdWRpb19jb25maWcuZm9ybWF0OworICAgIGV2ZW50LT5kYXRhLnNldFRvRXh0ZXJuYWwoCisgICAgICAgICAgICBjb25zdF9jYXN0PHVpbnQ4X3QgKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KGhhbEV2ZW50KSkgKyBoYWxFdmVudC0+ZGF0YV9vZmZzZXQsCisgICAgICAgICAgICBoYWxFdmVudC0+ZGF0YV9zaXplKTsKKworICAgIHJldHVybiBldmVudDsKK30KKworLy8gc3RhdGljCit2b2lkIFNvdW5kVHJpZ2dlckhhbEltcGw6OmNvbnZlcnRQaHJhc2VSZWNvZ25pdGlvbkV4dHJhRnJvbUhhbCgKKyAgICAgICAgUGhyYXNlUmVjb2duaXRpb25FeHRyYSAqZXh0cmEsCisgICAgICAgIGNvbnN0IHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9yZWNvZ25pdGlvbl9leHRyYSAqaGFsRXh0cmEpCit7CisgICAgZXh0cmEtPmlkID0gaGFsRXh0cmEtPmlkOworICAgIGV4dHJhLT5yZWNvZ25pdGlvbk1vZGVzID0gaGFsRXh0cmEtPnJlY29nbml0aW9uX21vZGVzOworICAgIGV4dHJhLT5jb25maWRlbmNlTGV2ZWwgPSBoYWxFeHRyYS0+Y29uZmlkZW5jZV9sZXZlbDsKKworICAgIENvbmZpZGVuY2VMZXZlbCAqbGV2ZWxzID0KKyAgICAgICAgICAgIG5ldyBDb25maWRlbmNlTGV2ZWxbaGFsRXh0cmEtPm51bV9sZXZlbHNdOworICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgaGFsRXh0cmEtPm51bV9sZXZlbHM7IGkrKykgeworICAgICAgICBsZXZlbHNbaV0udXNlcklkID0gaGFsRXh0cmEtPmxldmVsc1tpXS51c2VyX2lkOworICAgICAgICBsZXZlbHNbaV0ubGV2ZWxQZXJjZW50ID0gaGFsRXh0cmEtPmxldmVsc1tpXS5sZXZlbDsKKyAgICB9CisgICAgZXh0cmEtPmxldmVscy5zZXRUb0V4dGVybmFsKGxldmVscywgaGFsRXh0cmEtPm51bV9sZXZlbHMpOworICAgIC8vIEZJWE1FOiB0cmFuc2ZlciBidWZmZXIgb3duZXJzaGlwLiBzaG91bGQgaGF2ZSBhIG1ldGhvZCBmb3IgdGhhdCBpbiBoaWRsX3ZlYworICAgIGV4dHJhLT5sZXZlbHMucmVzaXplKGhhbEV4dHJhLT5udW1fbGV2ZWxzKTsKKyAgICBkZWxldGVbXSBsZXZlbHM7Cit9CisKK0lTb3VuZFRyaWdnZXJIdyAqSElETF9GRVRDSF9JU291bmRUcmlnZ2VySHcoY29uc3QgY2hhciogLyogbmFtZSAqLykKK3sKKyAgICByZXR1cm4gbmV3IFNvdW5kVHJpZ2dlckhhbEltcGwoKTsKK30KK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjJfMAorfSAgLy8gbmFtZXNwYWNlIHNvdW5kdHJpZ2dlcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisKKwpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC9kZWZhdWx0L1NvdW5kVHJpZ2dlckhhbEltcGwuaCBiL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9Tb3VuZFRyaWdnZXJIYWxJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDc2OTU5MAotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kdHJpZ2dlci8yLjAvZGVmYXVsdC9Tb3VuZFRyaWdnZXJIYWxJbXBsLmgKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfU09VTkRUUklHR0VSX1YyXzBfSU1QTEVNRU5UQVRJT05fSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX1NPVU5EVFJJR0dFUl9WMl8wX0lNUExFTUVOVEFUSU9OX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9JU291bmRUcmlnZ2VySHcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2suaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorI2luY2x1ZGUgPHN0ZGF0b21pYy5oPgorI2luY2x1ZGUgPHV0aWxzL3RocmVhZHMuaD4KKyNpbmNsdWRlIDx1dGlscy9LZXllZFZlY3Rvci5oPgorI2luY2x1ZGUgPHN5c3RlbS9zb3VuZF90cmlnZ2VyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvc291bmRfdHJpZ2dlci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHNvdW5kdHJpZ2dlciB7CituYW1lc3BhY2UgVjJfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpVdWlkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6c291bmR0cmlnZ2VyOjpWMl8wOjpJU291bmRUcmlnZ2VySHdDYWxsYmFjazsKKworCitjbGFzcyBTb3VuZFRyaWdnZXJIYWxJbXBsIDogcHVibGljIElTb3VuZFRyaWdnZXJIdyB7CitwdWJsaWM6CisgICAgICAgIFNvdW5kVHJpZ2dlckhhbEltcGwoKTsKKworICAgICAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6c291bmR0cmlnZ2VyOjpWMl8wOjpJU291bmRUcmlnZ2VySHcgZm9sbG93LgorICAgICAgICBSZXR1cm48dm9pZD4gZ2V0UHJvcGVydGllcyhnZXRQcm9wZXJ0aWVzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgICAgIFJldHVybjx2b2lkPiBsb2FkU291bmRNb2RlbChjb25zdCBJU291bmRUcmlnZ2VySHc6OlNvdW5kTW9kZWwmIHNvdW5kTW9kZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRTb3VuZE1vZGVsX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgICAgIFJldHVybjx2b2lkPiBsb2FkUGhyYXNlU291bmRNb2RlbChjb25zdCBJU291bmRUcmlnZ2VySHc6OlBocmFzZVNvdW5kTW9kZWwmIHNvdW5kTW9kZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRQaHJhc2VTb3VuZE1vZGVsX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisKKyAgICAgICAgUmV0dXJuPGludDMyX3Q+IHVubG9hZFNvdW5kTW9kZWwoU291bmRNb2RlbEhhbmRsZSBtb2RlbEhhbmRsZSkgIG92ZXJyaWRlOworICAgICAgICBSZXR1cm48aW50MzJfdD4gc3RhcnRSZWNvZ25pdGlvbihTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJU291bmRUcmlnZ2VySHc6OlJlY29nbml0aW9uQ29uZmlnJiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwPElTb3VuZFRyaWdnZXJId0NhbGxiYWNrPiYgY2FsbGJhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElTb3VuZFRyaWdnZXJId0NhbGxiYWNrOjpDYWxsYmFja0Nvb2tpZSBjb29raWUpICBvdmVycmlkZTsKKyAgICAgICAgUmV0dXJuPGludDMyX3Q+IHN0b3BSZWNvZ25pdGlvbihTb3VuZE1vZGVsSGFuZGxlIG1vZGVsSGFuZGxlKSAgb3ZlcnJpZGU7CisgICAgICAgIFJldHVybjxpbnQzMl90PiBzdG9wQWxsUmVjb2duaXRpb25zKCkgIG92ZXJyaWRlOworCisgICAgICAgIC8vIFJlZkJhc2UKKyAgICAgICAgdmlydHVhbCAgICAgdm9pZCAgICAgICAgb25GaXJzdFJlZigpOworCisgICAgICAgIHN0YXRpYyB2b2lkIHNvdW5kTW9kZWxDYWxsYmFjayhzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9tb2RlbF9ldmVudCAqaGFsRXZlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpjb29raWUpOworICAgICAgICBzdGF0aWMgdm9pZCByZWNvZ25pdGlvbkNhbGxiYWNrKHN0cnVjdCBzb3VuZF90cmlnZ2VyX3JlY29nbml0aW9uX2V2ZW50ICpoYWxFdmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpjb29raWUpOworCitwcml2YXRlOgorCisgICAgICAgIGNsYXNzIFNvdW5kTW9kZWxDbGllbnQgOiBwdWJsaWMgUmVmQmFzZSB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIFNvdW5kTW9kZWxDbGllbnQodWludDMyX3QgaWQsIHNwPElTb3VuZFRyaWdnZXJId0NhbGxiYWNrPiBjYWxsYmFjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIGNvb2tpZSkKKyAgICAgICAgICAgICAgICA6IG1JZChpZCksIG1DYWxsYmFjayhjYWxsYmFjayksIG1Db29raWUoY29va2llKSB7fQorICAgICAgICAgICAgdmlydHVhbCB+U291bmRNb2RlbENsaWVudCgpIHt9CisKKyAgICAgICAgICAgIHVpbnQzMl90IG1JZDsKKyAgICAgICAgICAgIHNvdW5kX21vZGVsX2hhbmRsZV90IG1IYWxIYW5kbGU7CisgICAgICAgICAgICBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgICAgICAgICAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OkNhbGxiYWNrQ29va2llIG1Db29raWU7CisgICAgICAgIH07CisKKyAgICAgICAgdWludDMyX3QgbmV4dFVuaXF1ZUlkKCk7CisgICAgICAgIHZvaWQgY29udmVydFV1aWRGcm9tSGFsKFV1aWQgKnV1aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdW5kX3RyaWdnZXJfdXVpZF90ICpoYWxVdWlkKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0VXVpZFRvSGFsKHNvdW5kX3RyaWdnZXJfdXVpZF90ICpoYWxVdWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVXVpZCAqdXVpZCk7CisgICAgICAgIHZvaWQgY29udmVydFByb3BlcnRpZXNGcm9tSGFsKElTb3VuZFRyaWdnZXJIdzo6UHJvcGVydGllcyAqcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfcHJvcGVydGllcyAqaGFsUHJvcGVydGllcyk7CisgICAgICAgIHZvaWQgY29udmVydFRyaWdnZXJQaHJhc2VUb0hhbChzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9waHJhc2UgKmhhbFRyaWdnZXJQaHJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJU291bmRUcmlnZ2VySHc6OlBocmFzZSAqdHJpZ2dlclBocmFzZSk7CisgICAgICAgIC8vIHJldHVybmVkIEhBTCBzb3VuZCBtb2RlbCBtdXN0IGJlIGZyZWVkIGJ5IGNhbGxlcgorICAgICAgICBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9zb3VuZF9tb2RlbCAqY29udmVydFNvdW5kTW9kZWxUb0hhbCgKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsICpzb3VuZE1vZGVsKTsKKyAgICAgICAgdm9pZCBjb252ZXJ0UGhyYXNlUmVjb2duaXRpb25FeHRyYVRvSGFsKAorICAgICAgICAgICAgICAgIHN0cnVjdCBzb3VuZF90cmlnZ2VyX3BocmFzZV9yZWNvZ25pdGlvbl9leHRyYSAqaGFsRXh0cmEsCisgICAgICAgICAgICAgICAgY29uc3QgUGhyYXNlUmVjb2duaXRpb25FeHRyYSAqZXh0cmEpOworICAgICAgICAvLyByZXR1cm5lZCByZWNvZ25pdGlvbiBjb25maWcgbXVzdCBiZSBmcmVlZCBieSBjYWxsZXIKKyAgICAgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fY29uZmlnICpjb252ZXJ0UmVjb2duaXRpb25Db25maWdUb0hhbCgKKyAgICAgICAgICAgICAgICBjb25zdCBJU291bmRUcmlnZ2VySHc6OlJlY29nbml0aW9uQ29uZmlnICpjb25maWcpOworCisKKyAgICAgICAgc3RhdGljIHZvaWQgY29udmVydFNvdW5kTW9kZWxFdmVudEZyb21IYWwoSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6Ok1vZGVsRXZlbnQgKmV2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc291bmRfdHJpZ2dlcl9tb2RlbF9ldmVudCAqaGFsRXZlbnQpOworICAgICAgICBzdGF0aWMgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uRXZlbnQgKmNvbnZlcnRSZWNvZ25pdGlvbkV2ZW50RnJvbUhhbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfcmVjb2duaXRpb25fZXZlbnQgKmhhbEV2ZW50KTsKKyAgICAgICAgc3RhdGljIHZvaWQgY29udmVydFBocmFzZVJlY29nbml0aW9uRXh0cmFGcm9tSGFsKFBocmFzZVJlY29nbml0aW9uRXh0cmEgKmV4dHJhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHNvdW5kX3RyaWdnZXJfcGhyYXNlX3JlY29nbml0aW9uX2V4dHJhICpoYWxFeHRyYSk7CisKKyAgICAgICAgaW50IGRvTG9hZFNvdW5kTW9kZWwoY29uc3QgSVNvdW5kVHJpZ2dlckh3OjpTb3VuZE1vZGVsJiBzb3VuZE1vZGVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcDxJU291bmRUcmlnZ2VySHdDYWxsYmFjaz4mIGNhbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6Q2FsbGJhY2tDb29raWUgY29va2llLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqbW9kZWxJZCk7CisKKyAgICAgICAgdmlydHVhbCAgICAgICAgICAgICB+U291bmRUcmlnZ2VySGFsSW1wbCgpOworCisgICAgICAgIGNvbnN0IGNoYXIgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtTW9kdWxlTmFtZTsKKyAgICAgICAgc3RydWN0IHNvdW5kX3RyaWdnZXJfaHdfZGV2aWNlKiAgICAgICAgICAgICAgICAgICAgIG1Id0RldmljZTsKKyAgICAgICAgdm9sYXRpbGUgYXRvbWljX3VpbnRfZmFzdDMyX3QgICAgICAgICAgICAgICAgICAgICAgIG1OZXh0TW9kZWxJZDsKKyAgICAgICAgRGVmYXVsdEtleWVkVmVjdG9yPGludDMyX3QsIHNwPFNvdW5kTW9kZWxDbGllbnQ+ID4gIG1DbGllbnRzOworICAgICAgICBNdXRleCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbUxvY2s7Cit9OworCitleHRlcm4gIkMiIElTb3VuZFRyaWdnZXJIdyAqSElETF9GRVRDSF9JU291bmRUcmlnZ2VySHcoY29uc3QgY2hhciAqbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYyXzAKK30gIC8vIG5hbWVzcGFjZSBzb3VuZHRyaWdnZXIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX1NPVU5EVFJJR0dFUl9WMl8wX0lNUExFTUVOVEFUSU9OX0gKKwpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC90eXBlcy5oYWwgYi9zb3VuZHRyaWdnZXIvMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWJiZDU2Ci0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjA7CisKKy8qKgorICogU291bmQgbW9kZWwgdHlwZXMgbW9kZXMgdXNlZCBpbiBJU291bmRUcmlnZ2VySHcuU291bmRNb2RlbAorICovCitlbnVtIFNvdW5kTW9kZWxUeXBlIDogaW50MzJfdCB7CisgICAgLyoqIHVzZSBmb3IgdW5zcGVjaWZpZWQgc291bmQgbW9kZWwgdHlwZSAqLworICAgIFVOS05PV04gICA9IC0xLAorICAgIC8qKiB1c2UgZm9yIGtleSBwaHJhc2Ugc291bmQgbW9kZWxzICovCisgICAgS0VZUEhSQVNFID0gMCwKKyAgICAvKiogdXNlIGZvciBhbGwgbW9kZWxzIG90aGVyIHRoYW4ga2V5cGhyYXNlICovCisgICAgR0VORVJJQyAgID0gMSwKK307CisKK3R5cGVkZWYgaW50MzJfdCBTb3VuZE1vZGVsSGFuZGxlOworCisKKy8qKgorICogUmVjb2duaXRpb24gbW9kZXMgdXNlZCBpbiBJU291bmRUcmlnZ2VySHcuUmVjb2duaXRpb25Db25maWcsCisgKiBJU291bmRUcmlnZ2VySHcuUHJvcGVydGllcyBvciBQaHJhc2VSZWNvZ25pdGlvbkV4dHJhCisgKi8KK2VudW0gUmVjb2duaXRpb25Nb2RlIDogdWludDMyX3QgeworICAgIC8qKiBzaW1wbGUgdm9pY2UgdHJpZ2dlciAqLworICAgIFZPSUNFX1RSSUdHRVIgICAgICAgPSAoMSA8PCAwKSwKKyAgICAvKiogdHJpZ2dlciBvbmx5IGlmIG9uZSB1c2VyIGluIG1vZGVsIGlkZW50aWZpZWQgKi8KKyAgICBVU0VSX0lERU5USUZJQ0FUSU9OID0gKDEgPDwgMSksCisgICAgLyoqIHRyaWdnZXIgb25seSBpZiBvbmUgdXNlciBpbiBtb2RlIGF1dGhlbnRpY2F0ZWQgKi8KKyAgICBVU0VSX0FVVEhFTlRJQ0FUSU9OID0gKDEgPDwgMiksCisgICAgLyoqIGdlbmVyaWMgc291bmQgdHJpZ2dlciAqLworICAgIEdFTkVSSUNfVFJJR0dFUiAgICAgPSAoMSA8PCAzKSwKK307CisKKy8qKgorICogQ29uZmlkZW5jZSBsZXZlbCBmb3IgZWFjaCB1c2VyIGluIHN0cnVjdHVyZSBQaHJhc2VSZWNvZ25pdGlvbkV4dHJhCisgKi8KK3N0cnVjdCBDb25maWRlbmNlTGV2ZWwgeworICAgIC8qKiB1c2VyIElEICovCisgICAgdWludDMyX3QgdXNlcklkOworICAgIC8qKiBjb25maWRlbmNlIGxldmVsIGluIHBlcmNlbnQgKDAgLSAxMDApOiAqLworICAgIC8qKiAtIG1pbiBsZXZlbCBmb3IgcmVjb2duaXRpb24gY29uZmlndXJhdGlvbiAqLworICAgIC8qKiAtIGRldGVjdGVkIGxldmVsIGZvciByZWNvZ25pdGlvbiBldmVudCAqLworICAgIHVpbnQzMl90IGxldmVsUGVyY2VudDsKK307CisKKy8qKgorICogU3BlY2lhbGl6ZWQgcmVjb2duaXRpb24gZXZlbnQgZm9yIGtleSBwaHJhc2UgZGV0ZWN0aW9uCisgKi8KK3N0cnVjdCBQaHJhc2VSZWNvZ25pdGlvbkV4dHJhIHsKKyAgICAvKioga2V5cGhyYXNlIElEICovCisgICAgdWludDMyX3QgaWQ7CisgICAgLyoqIHJlY29nbml0aW9uIG1vZGVzIHVzZWQgZm9yIHRoaXMga2V5cGhyYXNlICovCisgICAgdWludDMyX3QgcmVjb2duaXRpb25Nb2RlczsKKyAgICAvKiogY29uZmlkZW5jZSBsZXZlbCBmb3IgbW9kZSBSZWNvZ25pdGlvbk1vZGUuVk9JQ0VfVFJJR0dFUiAqLworICAgIHVpbnQzMl90IGNvbmZpZGVuY2VMZXZlbDsKKyAgICAvKioKKyAgICAgKiBsaXN0IG9mIGNvbmZpZGVuY2UgbGV2ZWxzIHBlciB1c2VyIGZvcgorICAgICAqIFJlY29nbml0aW9uTW9kZS5VU0VSX0lERU5USUZJQ0FUSU9OIGFuZAorICAgICAqIFJlY29nbml0aW9uTW9kZS5VU0VSX0FVVEhFTlRJQ0FUSU9OICovCisgICAgdmVjPENvbmZpZGVuY2VMZXZlbD4gbGV2ZWxzOworfTsKKwpkaWZmIC0tZ2l0IGEvc291bmR0cmlnZ2VyLzIuMC92dHMvQW5kcm9pZC5tayBiL3NvdW5kdHJpZ2dlci8yLjAvdnRzL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3NvdW5kdHJpZ2dlci8yLjAvdnRzL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3NvdW5kdHJpZ2dlci8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL3NvdW5kdHJpZ2dlci8yLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjBjYzRlCi0tLSAvZGV2L251bGwKKysrIGIvc291bmR0cmlnZ2VyLzIuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzYgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxTb3VuZHRyaWdnZXJWMl8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsU291bmR0cmlnZ2VyVjJfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmJhc2UiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYm5hdGl2ZWhlbHBlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnNvdW5kdHJpZ2dlckAyLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFNvdW5kdHJpZ2dlclYyXzBUYXJnZXRUZXN0LmNwcCBiL3NvdW5kdHJpZ2dlci8yLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsU291bmR0cmlnZ2VyVjJfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3OTU2YzUKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvMi4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFNvdW5kdHJpZ2dlclYyXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDMyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNkZWZpbmUgTE9HX1RBRyAiU291bmRUcmlnZ2VySGlkbEhhbFRlc3QiCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dGltZS5oPgorCisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPG11dGV4PgorCisjaW5jbHVkZSA8YW5kcm9pZC9sb2cuaD4KKyNpbmNsdWRlIDxjdXRpbHMvbmF0aXZlX2hhbmRsZS5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvYXVkaW8vY29tbW9uLzIuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvc291bmR0cmlnZ2VyLzIuMC9JU291bmRUcmlnZ2VySHcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3NvdW5kdHJpZ2dlci8yLjAvdHlwZXMuaD4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCisjZGVmaW5lIFNIT1JUX1RJTUVPVVRfUEVSSU9EICgxKQorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjphdWRpbzo6Y29tbW9uOjpWMl8wOjpBdWRpb0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6U291bmRNb2RlbEhhbmRsZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6U291bmRNb2RlbFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpzb3VuZHRyaWdnZXI6OlYyXzA6OlJlY29nbml0aW9uTW9kZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6UGhyYXNlUmVjb2duaXRpb25FeHRyYTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnNvdW5kdHJpZ2dlcjo6VjJfMDo6SVNvdW5kVHJpZ2dlckh3OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6c291bmR0cmlnZ2VyOjpWMl8wOjpJU291bmRUcmlnZ2VySHdDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvKioKKyAqIFRlc3QgY29kZSB1c2VzIHRoaXMgY2xhc3MgdG8gd2FpdCBmb3Igbm90aWZpY2F0aW9uIGZyb20gY2FsbGJhY2suCisgKi8KK2NsYXNzIE1vbml0b3IgeworIHB1YmxpYzoKKyAgTW9uaXRvcigpIDogbUNvdW50KDApIHt9CisKKyAgLyoqCisgICAqIEFkZHMgMSB0byB0aGUgaW50ZXJuYWwgY291bnRlciBhbmQgdW5ibG9ja3Mgb25lIG9mIHRoZSB3YWl0aW5nIHRocmVhZHMuCisgICAqLworICB2b2lkIG5vdGlmeSgpIHsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobU10eCk7CisgICAgbUNvdW50Kys7CisgICAgbUN2Lm5vdGlmeV9vbmUoKTsKKyAgfQorCisgIC8qKgorICAgKiBCbG9ja3MgdW50aWwgdGhlIGludGVybmFsIGNvdW50ZXIgYmVjb21lcyBncmVhdGVyIHRoYW4gMC4KKyAgICoKKyAgICogSWYgbm90aWZpZWQsIHRoaXMgbWV0aG9kIGRlY3JlYXNlcyB0aGUgY291bnRlciBieSAxIGFuZCByZXR1cm5zIHRydWUuCisgICAqIElmIHRpbWVvdXQsIHJldHVybnMgZmFsc2UuCisgICAqLworICBib29sIHdhaXQoaW50IHRpbWVvdXRTZWNvbmRzKSB7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1NdHgpOworICAgIGF1dG8gZGVhZGxpbmUgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKSArCisgICAgICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKHRpbWVvdXRTZWNvbmRzKTsKKyAgICB3aGlsZSAobUNvdW50ID09IDApIHsKKyAgICAgIGlmIChtQ3Yud2FpdF91bnRpbChsb2NrLCBkZWFkbGluZSkgPT0gc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQpIHsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfQorICAgIH0KKyAgICBtQ291bnQtLTsKKyAgICByZXR1cm4gdHJ1ZTsKKyAgfQorCisgcHJpdmF0ZToKKyAgc3RkOjptdXRleCBtTXR4OworICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSBtQ3Y7CisgIGludCBtQ291bnQ7Cit9OworCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciBTb3VuZCBUcmlnZ2VyIEhJREwgSEFMLgorY2xhc3MgU291bmRUcmlnZ2VySGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgICAgbVNvdW5kVHJpZ2dlckhhbCA9CisgICAgICAgICAgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SVNvdW5kVHJpZ2dlckh3PigpOworICAgICAgQVNTRVJUX05FKG51bGxwdHIsIG1Tb3VuZFRyaWdnZXJIYWwuZ2V0KCkpOworICAgICAgbUNhbGxiYWNrID0gbmV3IFNvdW5kVHJpZ2dlckh3Q2FsbGJhY2soKnRoaXMpOworICAgICAgQVNTRVJUX05FKG51bGxwdHIsIG1DYWxsYmFjay5nZXQoKSk7CisgIH0KKworICBzdGF0aWMgdm9pZCBTZXRVcFRlc3RDYXNlKCkgeworICAgIHNyYW5kKHRpbWUobnVsbHB0cikpOworICB9CisKKyAgY2xhc3MgU291bmRUcmlnZ2VySHdDYWxsYmFjayA6IHB1YmxpYyBJU291bmRUcmlnZ2VySHdDYWxsYmFjayB7CisgICBwcml2YXRlOgorICAgIFNvdW5kVHJpZ2dlckhpZGxUZXN0JiBtUGFyZW50OworCisgICBwdWJsaWM6CisgICAgU291bmRUcmlnZ2VySHdDYWxsYmFjayhTb3VuZFRyaWdnZXJIaWRsVGVzdCYgcGFyZW50KSA6IG1QYXJlbnQocGFyZW50KSB7fQorCisgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gcmVjb2duaXRpb25DYWxsYmFjaygKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlJlY29nbml0aW9uRXZlbnQmIGV2ZW50IF9fdW51c2VkLAorICAgICAgICBpbnQzMl90IGNvb2tpZSBfX3VudXNlZCkgeworICAgICAgQUxPR0koIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gcGhyYXNlUmVjb2duaXRpb25DYWxsYmFjaygKKyAgICAgICAgY29uc3QgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6OlBocmFzZVJlY29nbml0aW9uRXZlbnQmIGV2ZW50IF9fdW51c2VkLAorICAgICAgICBpbnQzMl90IGNvb2tpZSBfX3VudXNlZCkgeworICAgICAgQUxPR0koIiVzIiwgX19GVU5DVElPTl9fKTsKKyAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgdmlydHVhbCBSZXR1cm48dm9pZD4gc291bmRNb2RlbENhbGxiYWNrKAorICAgICAgICBjb25zdCBJU291bmRUcmlnZ2VySHdDYWxsYmFjazo6TW9kZWxFdmVudCYgZXZlbnQsCisgICAgICAgIGludDMyX3QgY29va2llIF9fdW51c2VkKSB7CisgICAgICBBTE9HSSgiJXMiLCBfX0ZVTkNUSU9OX18pOworICAgICAgbVBhcmVudC5sYXN0TW9kZWxFdmVudCA9IGV2ZW50OworICAgICAgbVBhcmVudC5tb25pdG9yLm5vdGlmeSgpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgIH07CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBNb25pdG9yIG1vbml0b3I7CisgIC8vIHVwZGF0ZWQgYnkgc291bmRNb2RlbENhbGxiYWNrKCkKKyAgSVNvdW5kVHJpZ2dlckh3Q2FsbGJhY2s6Ok1vZGVsRXZlbnQgbGFzdE1vZGVsRXZlbnQ7CisKKyBwcm90ZWN0ZWQ6CisgIHNwPElTb3VuZFRyaWdnZXJIdz4gbVNvdW5kVHJpZ2dlckhhbDsKKyAgc3A8U291bmRUcmlnZ2VySHdDYWxsYmFjaz4gbUNhbGxiYWNrOworfTsKKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cCAoa2VwdCBzaW5jZSB0aGlzIGZpbGUgaXMgYSB0ZW1wbGF0ZSkuCitjbGFzcyBTb3VuZFRyaWdnZXJIaWRsRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgcHVibGljOgorICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSB7fQorICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSB7fQorCisgcHJpdmF0ZToKK307CisKKy8qKgorICogVGVzdCBJU291bmRUcmlnZ2VySHc6OmdldFByb3BlcnRpZXMoKSBtZXRob2QKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIGltcGxlbWVudHMgdGhlIG1ldGhvZAorICogIC0gdGhlIG1ldGhvZCByZXR1cm5zIDAgKG5vIGVycm9yKQorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIGF0IGxlYXN0IG9uZSBzb3VuZCBtb2RlbCBhbmQgb25lIGtleSBwaHJhc2UKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cyBhdCBsZWFzdCBWT0lDRV9UUklHR0VSIHJlY29nbml0aW9uIG1vZGUKKyAqLworVEVTVF9GKFNvdW5kVHJpZ2dlckhpZGxUZXN0LCBHZXRQcm9wZXJ0aWVzKSB7CisgIElTb3VuZFRyaWdnZXJIdzo6UHJvcGVydGllcyBoYWxQcm9wZXJ0aWVzOworICBSZXR1cm48dm9pZD4gaGlkbFJldHVybjsKKyAgaW50IHJldCA9IC1FTk9ERVY7CisKKyAgaGlkbFJldHVybiA9IG1Tb3VuZFRyaWdnZXJIYWwtPmdldFByb3BlcnRpZXMoWyZdKGludCByYywgYXV0byByZXMpIHsKKyAgICAgIHJldCA9IHJjOworICAgICAgaGFsUHJvcGVydGllcyA9IHJlczsKKyAgfSk7CisKKyAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICBFWFBFQ1RfRVEoMCwgcmV0KTsKKyAgRVhQRUNUX0dUKGhhbFByb3BlcnRpZXMubWF4U291bmRNb2RlbHMsIDB1KTsKKyAgRVhQRUNUX0dUKGhhbFByb3BlcnRpZXMubWF4S2V5UGhyYXNlcywgMHUpOworICBFWFBFQ1RfTkUoMHUsIChoYWxQcm9wZXJ0aWVzLnJlY29nbml0aW9uTW9kZXMgJiAodWludDMyX3QpUmVjb2duaXRpb25Nb2RlOjpWT0lDRV9UUklHR0VSKSk7Cit9CisKKy8qKgorICogVGVzdCBJU291bmRUcmlnZ2VySHc6OmxvYWRQaHJhc2VTb3VuZE1vZGVsKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGFuIGVycm9yIHdoZW4gcGFzc2VkIGEgbWFsZm9ybWVkIHNvdW5kIG1vZGVsCisgKgorICogVGhlcmUgaXMgbm8gd2F5IHRvIHZlcmlmeSB0aGF0IGltcGxlbWVudGF0aW9uIGFjdHVhbGx5IGNhbiBsb2FkIGEgc291bmQgbW9kZWwgYmVjYXVzZSBlYWNoCisgKiBzb3VuZCBtb2RlbCBpcyB2ZW5kb3Igc3BlY2lmaWMuCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgTG9hZEludmFsaWRNb2RlbEZhaWwpIHsKKyAgUmV0dXJuPHZvaWQ+IGhpZGxSZXR1cm47CisgIGludCByZXQgPSAtRU5PREVWOworICBJU291bmRUcmlnZ2VySHc6OlBocmFzZVNvdW5kTW9kZWwgbW9kZWw7CisgIFNvdW5kTW9kZWxIYW5kbGUgaGFuZGxlOworCisgIG1vZGVsLmNvbW1vbi50eXBlID0gU291bmRNb2RlbFR5cGU6OlVOS05PV047CisKKyAgaGlkbFJldHVybiA9IG1Tb3VuZFRyaWdnZXJIYWwtPmxvYWRQaHJhc2VTb3VuZE1vZGVsKAorICAgICAgICAgIG1vZGVsLAorICAgICAgICAgIG1DYWxsYmFjaywgMCwgWyZdKGludDMyX3QgcmV0dmFsLCBhdXRvIHJlcykgeworICAgICAgcmV0ID0gcmV0dmFsOworICAgICAgaGFuZGxlID0gcmVzOworICB9KTsKKworICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuLmlzT2soKSk7CisgIEVYUEVDVF9ORSgwLCByZXQpOworICBFWFBFQ1RfRkFMU0UobW9uaXRvci53YWl0KFNIT1JUX1RJTUVPVVRfUEVSSU9EKSk7Cit9CisKKy8qKgorICogVGVzdCBJU291bmRUcmlnZ2VySHc6OmxvYWRTb3VuZE1vZGVsKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGVycm9yIHdoZW4gcGFzc2VkIGEgc291bmQgbW9kZWwgd2l0aCByYW5kb20gZGF0YS4KKyAqLworVEVTVF9GKFNvdW5kVHJpZ2dlckhpZGxUZXN0LCBMb2FkR2VuZXJpY1NvdW5kTW9kZWxGYWlsKSB7CisgIGludCByZXQgPSAtRU5PREVWOworICBJU291bmRUcmlnZ2VySHc6OlNvdW5kTW9kZWwgbW9kZWw7CisgIFNvdW5kTW9kZWxIYW5kbGUgaGFuZGxlID0gMDsKKworICBtb2RlbC50eXBlID0gU291bmRNb2RlbFR5cGU6OkdFTkVSSUM7CisgIG1vZGVsLmRhdGEucmVzaXplKDEwMCk7CisgIGZvciAoYXV0byYgZCA6IG1vZGVsLmRhdGEpIHsKKyAgICBkID0gcmFuZCgpOworICB9CisKKyAgUmV0dXJuPHZvaWQ+IGxvYWRSZXR1cm4gPSBtU291bmRUcmlnZ2VySGFsLT5sb2FkU291bmRNb2RlbCgKKyAgICAgIG1vZGVsLAorICAgICAgbUNhbGxiYWNrLCAwLCBbJl0oaW50MzJfdCByZXR2YWwsIGF1dG8gcmVzKSB7CisgICAgcmV0ID0gcmV0dmFsOworICAgIGhhbmRsZSA9IHJlczsKKyAgfSk7CisKKyAgRVhQRUNUX1RSVUUobG9hZFJldHVybi5pc09rKCkpOworICBFWFBFQ1RfTkUoMCwgcmV0KTsKKyAgRVhQRUNUX0ZBTFNFKG1vbml0b3Iud2FpdChTSE9SVF9USU1FT1VUX1BFUklPRCkpOworfQorCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3Ojp1bmxvYWRTb3VuZE1vZGVsKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIHRoZSBtZXRob2QKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGFuIGVycm9yIHdoZW4gY2FsbGVkIHdpdGhvdXQgYSB2YWxpZCBsb2FkZWQgc291bmQgbW9kZWwKKyAqCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgVW5sb2FkTW9kZWxOb01vZGVsRmFpbCkgeworICBSZXR1cm48aW50MzJfdD4gaGlkbFJldHVybigwKTsKKyAgU291bmRNb2RlbEhhbmRsZSBoYWxIYW5kbGUgPSAwOworCisgIGhpZGxSZXR1cm4gPSBtU291bmRUcmlnZ2VySGFsLT51bmxvYWRTb3VuZE1vZGVsKGhhbEhhbmRsZSk7CisKKyAgRVhQRUNUX1RSVUUoaGlkbFJldHVybi5pc09rKCkpOworICBFWFBFQ1RfTkUoMCwgaGlkbFJldHVybik7Cit9CisKKy8qKgorICogVGVzdCBJU291bmRUcmlnZ2VySHc6OnN0YXJ0UmVjb2duaXRpb24oKSBtZXRob2QKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIGltcGxlbWVudHMgdGhlIG1ldGhvZAorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIHJldHVybnMgYW4gZXJyb3Igd2hlbiBjYWxsZWQgd2l0aG91dCBhIHZhbGlkIGxvYWRlZCBzb3VuZCBtb2RlbAorICoKKyAqIFRoZXJlIGlzIG5vIHdheSB0byB2ZXJpZnkgdGhhdCBpbXBsZW1lbnRhdGlvbiBhY3R1YWxseSBzdGFydHMgcmVjb2duaXRpb24gYmVjYXVzZSBubyBtb2RlbCBjYW4KKyAqIGJlIGxvYWRlZC4KKyAqLworVEVTVF9GKFNvdW5kVHJpZ2dlckhpZGxUZXN0LCBTdGFydFJlY29nbml0aW9uTm9Nb2RlbEZhaWwpIHsKKyAgICBSZXR1cm48aW50MzJfdD4gaGlkbFJldHVybigwKTsKKyAgICBTb3VuZE1vZGVsSGFuZGxlIGhhbmRsZSA9IDA7CisgICAgUGhyYXNlUmVjb2duaXRpb25FeHRyYSBwaHJhc2U7CisgICAgSVNvdW5kVHJpZ2dlckh3OjpSZWNvZ25pdGlvbkNvbmZpZyBjb25maWc7CisKKyAgICBjb25maWcuY2FwdHVyZUhhbmRsZSA9IDA7CisgICAgY29uZmlnLmNhcHR1cmVEZXZpY2UgPSBBdWRpb0RldmljZTo6SU5fQlVJTFRJTl9NSUM7CisgICAgcGhyYXNlLmlkID0gMDsKKyAgICBwaHJhc2UucmVjb2duaXRpb25Nb2RlcyA9ICh1aW50MzJfdClSZWNvZ25pdGlvbk1vZGU6OlZPSUNFX1RSSUdHRVI7CisgICAgcGhyYXNlLmNvbmZpZGVuY2VMZXZlbCA9IDA7CisKKyAgICBjb25maWcucGhyYXNlcy5zZXRUb0V4dGVybmFsKCZwaHJhc2UsIDEpOworCisgICAgaGlkbFJldHVybiA9IG1Tb3VuZFRyaWdnZXJIYWwtPnN0YXJ0UmVjb2duaXRpb24oaGFuZGxlLCBjb25maWcsIG1DYWxsYmFjaywgMCk7CisKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuLmlzT2soKSk7CisgICAgRVhQRUNUX05FKDAsIGhpZGxSZXR1cm4pOworfQorCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3OjpzdG9wUmVjb2duaXRpb24oKSBtZXRob2QKKyAqCisgKiBWZXJpZmllcyB0aGF0OgorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIGltcGxlbWVudHMgdGhlIG1ldGhvZAorICogIC0gdGhlIGltcGxlbWVudGF0aW9uIHJldHVybnMgYW4gZXJyb3Igd2hlbiBjYWxsZWQgd2l0aG91dCBhbiBhY3RpdmUgcmVjb2duaXRpb24gcnVubmluZworICoKKyAqLworVEVTVF9GKFNvdW5kVHJpZ2dlckhpZGxUZXN0LCBTdG9wUmVjb2duaXRpb25Ob0FTdGFydEZhaWwpIHsKKyAgICBSZXR1cm48aW50MzJfdD4gaGlkbFJldHVybigwKTsKKyAgICBTb3VuZE1vZGVsSGFuZGxlIGhhbmRsZSA9IDA7CisKKyAgICBoaWRsUmV0dXJuID0gbVNvdW5kVHJpZ2dlckhhbC0+c3RvcFJlY29nbml0aW9uKGhhbmRsZSk7CisKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuLmlzT2soKSk7CisgICAgRVhQRUNUX05FKDAsIGhpZGxSZXR1cm4pOworfQorCisvKioKKyAqIFRlc3QgSVNvdW5kVHJpZ2dlckh3OjpzdG9wQWxsUmVjb2duaXRpb25zKCkgbWV0aG9kCisgKgorICogVmVyaWZpZXMgdGhhdDoKKyAqICAtIHRoZSBpbXBsZW1lbnRhdGlvbiBpbXBsZW1lbnRzIHRoaXMgb3B0aW9uYWwgbWV0aG9kIG9yIGluZGljYXRlcyBpdCBpcyBub3Qgc3VwcG9ydCBieQorICogIHJldHVybmluZyAtRU5PU1lTCisgKi8KK1RFU1RfRihTb3VuZFRyaWdnZXJIaWRsVGVzdCwgc3RvcEFsbFJlY29nbml0aW9ucykgeworICAgIFJldHVybjxpbnQzMl90PiBoaWRsUmV0dXJuKDApOworCisgICAgaGlkbFJldHVybiA9IG1Tb3VuZFRyaWdnZXJIYWwtPnN0b3BBbGxSZWNvZ25pdGlvbnMoKTsKKworICAgIEVYUEVDVF9UUlVFKGhpZGxSZXR1cm4uaXNPaygpKTsKKyAgICBFWFBFQ1RfVFJVRShoaWRsUmV0dXJuID09IDAgfHwgaGlkbFJldHVybiA9PSAtRU5PU1lTKTsKK30KKworCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IFNvdW5kVHJpZ2dlckhpZGxFbnZpcm9ubWVudCk7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS9zb3VuZHRyaWdnZXIvQW5kcm9pZC5icCBiL3NvdW5kdHJpZ2dlci9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkMmM5ODYKLS0tIC9kZXYvbnVsbAorKysgYi9zb3VuZHRyaWdnZXIvQW5kcm9pZC5icApAQCAtMCwwICsxLDUgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjIuMCIsCisgICAgIjIuMC92dHMvZnVuY3Rpb25hbCIsCitdCmRpZmYgLS1naXQgYS90ZXN0cy9BbmRyb2lkLmJwIGIvdGVzdHMvQW5kcm9pZC5icAppbmRleCA3Mjc2YTBiLi42Zjk5YTM2IDEwMDY0NAotLS0gYS90ZXN0cy9BbmRyb2lkLmJwCisrKyBiL3Rlc3RzL0FuZHJvaWQuYnAKQEAgLTUsNiArNSw3IEBACiAgICAgImJhei8xLjAiLAogICAgICJiYXovMS4wL2RlZmF1bHQiLAogICAgICJleHByZXNzaW9uLzEuMCIsCisgICAgImV4dGVuc2lvbi9saWdodC8yLjAiLAogICAgICJmb28vMS4wIiwKICAgICAiZm9vLzEuMC9kZWZhdWx0IiwKICAgICAiZm9vLzEuMC9kZWZhdWx0L2xpYiIsCmRpZmYgLS1naXQgYS90ZXN0cy9iYXIvQW5kcm9pZC5tayBiL3Rlc3RzL2Jhci9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9iYXIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdGVzdHMvYmF6L0FuZHJvaWQubWsgYi90ZXN0cy9iYXovQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvYmF6L0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3Rlc3RzL2V4cHJlc3Npb24vQW5kcm9pZC5tayBiL3Rlc3RzL2V4cHJlc3Npb24vQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXhwcmVzc2lvbi9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0FuZHJvaWQuYnAgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQ2OWI0NQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDY1IEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9oYWwiLAorICAgIHNyY3M6IFsKKyAgICAgICAgInR5cGVzLmhhbCIsCisgICAgICAgICJJRXh0TGlnaHQuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0V4dExpZ2h0QWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0lFeHRMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9JSHdFeHRMaWdodC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9Cbkh3RXh0TGlnaHQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvQnBId0V4dExpZ2h0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0JzRXh0TGlnaHQuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjAiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvQW5kcm9pZC5tayBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMWUxMGU0Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTk2IEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodC1WMi4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHQtVjIuMC1qYXZhIFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChEZWZhdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvVjJfMC9EZWZhdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wOjp0eXBlcy5EZWZhdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChFeHRCcmlnaHRuZXNzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvVjJfMC9FeHRCcmlnaHRuZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wOjp0eXBlcy5FeHRCcmlnaHRuZXNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChFeHRMaWdodFN0YXRlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvVjJfMC9FeHRMaWdodFN0YXRlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wOjp0eXBlcy5FeHRMaWdodFN0YXRlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUV4dExpZ2h0LmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90ZXN0cy9leHRlbnNpb24vbGlnaHQvVjJfMC9JRXh0TGlnaHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lFeHRMaWdodC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6SUV4dExpZ2h0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JRXh0TGlnaHQuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodC1WMi4wLWphdmEtc3RhdGljCitMT0NBTF9NT0RVTEVfQ0xBU1MgOj0gSkFWQV9MSUJSQVJJRVMKKworaW50ZXJtZWRpYXRlcyA6PSAkKGNhbGwgbG9jYWwtZ2VuZXJhdGVkLXNvdXJjZXMtZGlyLCBDT01NT04pCisKK0hJREwgOj0gJChIT1NUX09VVF9FWEVDVVRBQkxFUykvaGlkbC1nZW4kKEhPU1RfRVhFQ1VUQUJMRV9TVUZGSVgpCisKK0xPQ0FMX1NUQVRJQ19KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5saWdodC1WMi4wLWphdmEtc3RhdGljIFwKKyAgICBhbmRyb2lkLmhpZGwuYmFzZS1WMS4wLWphdmEtc3RhdGljIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRGVmYXVsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvRGVmYXVsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6dHlwZXMuRGVmYXVsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRXh0QnJpZ2h0bmVzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvRXh0QnJpZ2h0bmVzcy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6dHlwZXMuRXh0QnJpZ2h0bmVzcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRXh0TGlnaHRTdGF0ZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvRXh0TGlnaHRTdGF0ZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMDo6dHlwZXMuRXh0TGlnaHRTdGF0ZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElFeHRMaWdodC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0L1YyXzAvSUV4dExpZ2h0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JRXh0TGlnaHQuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjA6OklFeHRMaWdodAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUV4dExpZ2h0LmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9JRXh0TGlnaHQuaGFsIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9JRXh0TGlnaHQuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1MTViODYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL0lFeHRMaWdodC5oYWwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKy8vIFdvdWxkIG5vcm1hbGx5IGJlICd2ZW5kb3IuZXhhbXBsZS5leHRlbnNpb24ubGlnaHRAMi4wJyBob3dldmVyLCB0aGlzIGlzCisvLyBhIGdvb2dsZSBleHRlbnNpb24gZXhhbXBsZS4gQSB2ZW5kb3IgZXh0ZW5zaW9uIHNob3VsZCBhbHNvIGxpdmUgaW4gdGhlCisvLyB2ZW5kb3IgcGFydGl0aW9uLgorcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjA7CisKK2ltcG9ydCBhbmRyb2lkLmhhcmR3YXJlLmxpZ2h0QDIuMDsKKworaW50ZXJmYWNlIElFeHRMaWdodCBleHRlbmRzIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wOjpJTGlnaHQgeworCisgICAgLyoqCisgICAgICogU2V0IHRoZSBwcm92aWRlZCBsaWdodHMgdG8gdGhlIHByb3ZpZGVkIHZhbHVlcy4KKyAgICAgKgorICAgICAqIEBwYXJhbSB0eXBlIGxvZ2ljYWwgbGlnaHQgdG8gc2V0CisgICAgICogQHBhcmFtIHN0YXRlIGRlc2NyaWJlcyB3aGF0IHRoZSBsaWdodCBzaG91bGQgbG9vayBsaWtlLgorICAgICAqIEByZXR1cm4gc3RhdHVzIHJlc3VsdCBvZiBhcHBseWluZyBzdGF0ZSB0cmFuc2Zvcm1hdGlvbi4KKyAgICAgKi8KKyAgICBzZXRFeHRMaWdodChUeXBlIHR5cGUsIEV4dExpZ2h0U3RhdGUgc3RhdGUpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cyk7CisKK307CmRpZmYgLS1naXQgYS90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzMGQxMWMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMC1zZXJ2aWNlLnJjCitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFX1JFTEFUSVZFX1BBVEggOj0gaHcKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgTGlnaHQuY3BwIFwKKyAgICBzZXJ2aWNlLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlidXRpbHMgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUubGlnaHRAMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9MaWdodC5jcHAgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5NDFlNzMKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuY3BwCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2luY2x1ZGUgIkxpZ2h0LmgiCisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdGVzdHMgeworbmFtZXNwYWNlIGV4dGVuc2lvbiB7CituYW1lc3BhY2UgbGlnaHQgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQgZm9sbG93LgorUmV0dXJuPFN0YXR1cz4gTGlnaHQ6OnNldExpZ2h0KFR5cGUgdHlwZSwgY29uc3QgTGlnaHRTdGF0ZSYgc3RhdGUpICB7CisgICAgLy8gRm9yd2FyZCB0eXBlcyBmb3IgbmV3IG1ldGhvZHMuCisKKyAgICBFeHRMaWdodFN0YXRlIGV4dFN0YXRlIHsKKyAgICAgICAgLnN0YXRlID0gc3RhdGUsCisgICAgICAgIC5pbnRlcnBvbGF0aW9uT21lZ2EgPQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50MzJfdD4oRGVmYXVsdDo6SU5URVJQT0xBVElPTl9PTUVHQSksCisgICAgICAgIC5icmlnaHRuZXNzID0gLy8gRXh0QnJpZ2h0bmVzcyBpbmhlcml0cyBmcm9tIEJyaWdodG5lc3MKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEV4dEJyaWdodG5lc3M+KHN0YXRlLmJyaWdodG5lc3NNb2RlKQorICAgIH07CisKKyAgICByZXR1cm4gc2V0RXh0TGlnaHQodHlwZSwgZXh0U3RhdGUpOworfQorCitSZXR1cm48dm9pZD4gTGlnaHQ6OmdldFN1cHBvcnRlZFR5cGVzKGdldFN1cHBvcnRlZFR5cGVzX2NiIF9oaWRsX2NiKSAgeworICAgIC8vIGltcGxlbWVudCB1bmNoYW5nZWQgbWV0aG9kIGFzIHlvdSB3b3VsZCBhbHdheXMKKyAgICBoaWRsX3ZlYzxUeXBlPiB2ZWN7fTsKKworICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgIC8vIE5vdGU6IGF3ZXNvbWUgcHJvcHJpZXRhcnkgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24gaGVyZQorICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgICAgX2hpZGxfY2IodmVjKTsKKworICAgIHJldHVybiBWb2lkKCk7Cit9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpleGFtcGxlOjpleHRlbnNpb246OmxpZ2h0OjpWMl8wOjpJTGlnaHQgZm9sbG93LgorUmV0dXJuPFN0YXR1cz4gTGlnaHQ6OnNldEV4dExpZ2h0KFR5cGUgLyogdHlwZSAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBFeHRMaWdodFN0YXRlJiAvKiBzdGF0ZSAqLykgIHsKKworICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgIC8vIE5vdGU6IGF3ZXNvbWUgcHJvcHJpZXRhcnkgaGFyZHdhcmUgaW1wbGVtZW50YXRpb24gaGVyZQorICAgIC8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCisgICAgcmV0dXJuIFN0YXR1czo6U1VDQ0VTUzsKK30KKworfSAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbGlnaHQKK30gIC8vIG5hbWVzcGFjZSBleHRlbnNpb24KK30gIC8vIG5hbWVzcGFjZSB0ZXN0cworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmggYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvTGlnaHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzJjNWRkCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L0xpZ2h0LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfVEVTVFNfRVhURU5TSU9OX0xJR0hUX1YyXzBfTElHSFRfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX1RFU1RTX0VYVEVOU0lPTl9MSUdIVF9WMl8wX0xJR0hUX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9JRXh0TGlnaHQuaD4KKyNpbmNsdWRlIDxoaWRsL1N0YXR1cy5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdGVzdHMgeworbmFtZXNwYWNlIGV4dGVuc2lvbiB7CituYW1lc3BhY2UgbGlnaHQgeworbmFtZXNwYWNlIFYyXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGVzdHM6OmV4dGVuc2lvbjo6bGlnaHQ6OlYyXzA6OkV4dExpZ2h0U3RhdGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0ZXN0czo6ZXh0ZW5zaW9uOjpsaWdodDo6VjJfMDo6SUV4dExpZ2h0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OklMaWdodDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpMaWdodFN0YXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OlN0YXR1czsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgTGlnaHQgOiBwdWJsaWMgSUV4dExpZ2h0IHsKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6bGlnaHQ6OlYyXzA6OklMaWdodCBmb2xsb3cuCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0TGlnaHQoVHlwZSB0eXBlLCBjb25zdCBMaWdodFN0YXRlJiBzdGF0ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdXBwb3J0ZWRUeXBlcyhnZXRTdXBwb3J0ZWRUeXBlc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworCisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmV4YW1wbGU6OmV4dGVuc2lvbjo6bGlnaHQ6OlYyXzA6OklMaWdodCBmb2xsb3cuCisgICAgUmV0dXJuPFN0YXR1cz4gc2V0RXh0TGlnaHQoVHlwZSB0eXBlLCBjb25zdCBFeHRMaWdodFN0YXRlJiBzdGF0ZSkgIG92ZXJyaWRlOworCit9OworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMl8wCit9ICAvLyBuYW1lc3BhY2UgbGlnaHQKK30gIC8vIG5hbWVzcGFjZSBleHRlbnNpb24KK30gIC8vIG5hbWVzcGFjZSB0ZXN0cworfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfVEVTVFNfRVhURU5TSU9OX0xJR0hUX1YyXzBfTElHSFRfSApkaWZmIC0tZ2l0IGEvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMC1zZXJ2aWNlLnJjIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudGVzdHMuZXh0ZW5zaW9uLmxpZ2h0QDIuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMzc5ZWUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGxpZ2h0LWV4dC0yLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3Rlc3RzL2V4dGVuc2lvbi9saWdodC8yLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDgzOWIyCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnRlc3RzLmV4dGVuc2lvbi5saWdodEAyLjAtc2VydmljZSIKKworI2luY2x1ZGUgPGFuZHJvaWQvbG9nLmg+CisjaW5jbHVkZSA8aGlkbC9IaWRsVHJhbnNwb3J0U3VwcG9ydC5oPgorCisjaW5jbHVkZSAiTGlnaHQuaCIKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmNvbmZpZ3VyZVJwY1RocmVhZHBvb2w7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6am9pblJwY1RocmVhZHBvb2w7Cit1c2luZyBhbmRyb2lkOjpzcDsKKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmxpZ2h0OjpWMl8wOjpJTGlnaHQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6dGVzdHM6OmV4dGVuc2lvbjo6bGlnaHQ6OlYyXzA6OmltcGxlbWVudGF0aW9uOjpMaWdodDsKKworaW50IG1haW4oKSB7CisgICAgYW5kcm9pZDo6c3A8SUxpZ2h0PiBzZXJ2aWNlID0gbmV3IExpZ2h0KCk7CisgICAgY29uZmlndXJlUnBjVGhyZWFkcG9vbCgxLCB0cnVlIC8qY2FsbGVyV2lsbEpvaW4qLyk7CisgICAgc2VydmljZS0+cmVnaXN0ZXJBc1NlcnZpY2UoKTsKKyAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC90eXBlcy5oYWwgYi90ZXN0cy9leHRlbnNpb24vbGlnaHQvMi4wL3R5cGVzLmhhbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjA5NDc5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvZXh0ZW5zaW9uL2xpZ2h0LzIuMC90eXBlcy5oYWwKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50ZXN0cy5leHRlbnNpb24ubGlnaHRAMi4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5saWdodEAyLjA7CisKK2VudW0gRGVmYXVsdCA6IGludDMyX3QgeworICAgIC8vIGZvciBjYWxscyB0byBzZXRMaWdodCBmcm9tIHRoZSBmcmFtZXdvcmsgdGhhdCBkb24ndCBrbm93IGFib3V0IHRoaXMKKyAgICAvLyBleHRlbnNpb24gb3IgaXRzIHJlcXVpcmVtZW50cworICAgIElOVEVSUE9MQVRJT05fT01FR0EgPSAyCit9OworCisvKioKKyAqIE9uZSBwb3NzaWJpbGl0eSBpcyByZW5hbWluZyBhbiBvbGQgdHlwZS4gQW5vdGhlciBwb3NzaWJpbGl0eSBpcyB0YWtpbmcKKyAqIGFkdmFudGFnZXMgb2YgdGhlIGRpZmZlcmVudCBuYW1lc3BhY2VzLgorICovCitlbnVtIEV4dEJyaWdodG5lc3MgOiBCcmlnaHRuZXNzIHsKKyAgICAvKioKKyAgICAgKiBTYXkgd2UncmUgcmVhbGx5IGdvaW5nIHRvIHVzZSB0aGUgcGhvbmUgYXMgYSBoZWF0ZXIuCisgICAgICovCisgICAgRVhUUkVNRSwKKworICAgIC8qKgorICAgICAqIFNvbWV0aW1lcyBhdCBuaWdodCwgd2UgbmVlZCBpdCB0byBiZSBkYXkuCisgICAgICovCisgICAgIFRIRV9TVU4sCit9OworCisvKioKKyAqIFN0cnVjdHMgY2FuJ3QgaW5oZXJpdCBlYWNob3RoZXIgaW4gaGlkbC4gVXNlIGNvbXBvc2l0aW9uIGluc3RlYWQuIEluIHRoaXMKKyAqIGNhc2UsIEkgd29uJ3QgdXNlIGluaGVyaXRlbmNlIGJlY2F1c2UgSSB3YW50IHRvIHJlcGxhY2UgQnJpZ2h0bmVzcyB3aXRoCisgKiBFeHRCcmlnaHRuZXNzLgorICovCitzdHJ1Y3QgRXh0TGlnaHRTdGF0ZSB7CisgICAgTGlnaHRTdGF0ZSBzdGF0ZTsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgdGhlIHNlY3JldCBzYXVjZSB0aGF0IHdpbGwgcmVhbGx5IG1ha2UgdGhpcyBleHRlbnNpb24gc2hpbmUuCisgICAgICogTm8gb3RoZXIgcGVyc29uIGhhcyBzdWNoIGEgY29vbCBmZWF0dXJlIGluIHRoZWlyIGhhbHMuIERvbid0IGZvcmdldAorICAgICAqIHRvIGRlc2NyaWJlIGFsbCBkZXRhaWxzIG9mIHBhcmFtZXRlcnMuIEFuIGludGVyZmFjZSBpcyBhIGNvbnRyYWN0LCBhbmQKKyAgICAgKiBzcGVjaWZ5aW5nIHRoaXMgY29udHJhY3QgdG8gdGhlIGxldHRlciBpcyB3aGF0IGFsbG93cyB0aGF0IGNvbnRyYWN0ZWQKKyAgICAgKiB0byBiZSBtYWludGFpbmVkLiA6KQorICAgICAqCisgICAgICogU28sIHRoaXMgcGFyYW1ldGVyIHJlcHJlc2VudHMgdGhlIHNwZWVkIGF0IHdoaWNoIGJyaWdodG5lc3MgaXMgY2hhbmdlZAorICAgICAqIHRvIHRoZSBuZXcgdmFsdWUgaW4gdGhlIHRocmVlIGRpbWVuc2lvbmFsIHNwYWNlIHdpdGggY29vcmRpbmF0ZXMgUkdCCisgICAgICogZnJvbSB0aGUgcmVkLCBibHVlLCBhbmQgZ3JlZW4uCisgICAgICovCisgICAgaW50MzJfdCBpbnRlcnBvbGF0aW9uT21lZ2E7CisKKyAgICAvKioKKyAgICAgKiBJbmNsdWRlIG5ldyB2YWx1ZXMuCisgICAgICovCisgICAgRXh0QnJpZ2h0bmVzcyBicmlnaHRuZXNzOworfTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2Zvby9BbmRyb2lkLm1rIGIvdGVzdHMvZm9vL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2Zvby9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90ZXN0cy9pbmhlcml0YW5jZS9BbmRyb2lkLm1rIGIvdGVzdHMvaW5oZXJpdGFuY2UvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvaW5oZXJpdGFuY2UvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdGVzdHMvbGliaHdiaW5kZXIvMS4wL2RlZmF1bHQvU2NoZWR1bGVUZXN0LmNwcCBiL3Rlc3RzL2xpYmh3YmluZGVyLzEuMC9kZWZhdWx0L1NjaGVkdWxlVGVzdC5jcHAKaW5kZXggMWNlNTBjZi4uNjM1Njk1MyAxMDA2NDQKLS0tIGEvdGVzdHMvbGliaHdiaW5kZXIvMS4wL2RlZmF1bHQvU2NoZWR1bGVUZXN0LmNwcAorKysgYi90ZXN0cy9saWJod2JpbmRlci8xLjAvZGVmYXVsdC9TY2hlZHVsZVRlc3QuY3BwCkBAIC01LDEyICs1LDE0IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLSNkZWZpbmUgQVNTRVJUKGNvbmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIGlmICghKGNvbmQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIGNlcnIgPDwgX19mdW5jX18gPDwgIjoiIDw8IF9fTElORV9fIDw8ICIgY29uZGl0aW9uOiIgPDwgI2NvbmQgPDwgIiBmYWlsZWRcbiIgPDwgZW5kbDsgXAotICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgQVNTRVJUKGNvbmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmICghKGNvbmQpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGNlcnIgPDwgX19mdW5jX18gPDwgIjoiIDw8IF9fTElORV9fIDw8ICIgY29uZGl0aW9uOiIgPDwgI2NvbmQgXAorICAgICAgICAgICAgICAgICA8PCAiIGZhaWxlZFxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgIDw8IGVuZGw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSB3aGlsZSAoMCkKIAogc3RhdGljIGludCB0aHJlYWRQcmkoKSB7CkBAIC0yNSwxMyArMjcsMTQgQEAKICAgICBpbnQgcG9saWN5OwogICAgIGlmICghdmVyYm9zZSkgcmV0dXJuOwogICAgIGNvdXQgPDwgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiA8PCBlbmRsOwotICAgIGNvdXQgPDwgc2V0dygxMikgPDwgbGVmdCA8PCBwcmVmaXggPDwgIiBwaWQ6ICIgPDwgZ2V0cGlkKCkgPDwgIiB0aWQ6ICIgPDwgZ2V0dGlkKCkKLSAgICAgICAgIDw8ICIgY3B1OiAiIDw8IHNjaGVkX2dldGNwdSgpIDw8IGVuZGw7CisgICAgY291dCA8PCBzZXR3KDEyKSA8PCBsZWZ0IDw8IHByZWZpeCA8PCAiIHBpZDogIiA8PCBnZXRwaWQoKQorICAgICAgICAgPDwgIiB0aWQ6ICIgPDwgZ2V0dGlkKCkgPDwgIiBjcHU6ICIgPDwgc2NoZWRfZ2V0Y3B1KCkgPDwgZW5kbDsKICAgICBBU1NFUlQoIXB0aHJlYWRfZ2V0c2NoZWRwYXJhbShwdGhyZWFkX3NlbGYoKSwgJnBvbGljeSwgJnBhcmFtKSk7Ci0gICAgc3RyaW5nIHMgPQotICAgICAgICAocG9saWN5ID09IFNDSEVEX09USEVSKQotICAgICAgICAgICAgPyAiU0NIRURfT1RIRVIiCi0gICAgICAgICAgICA6IChwb2xpY3kgPT0gU0NIRURfRklGTykgPyAiU0NIRURfRklGTyIgOiAocG9saWN5ID09IFNDSEVEX1JSKSA/ICJTQ0hFRF9SUiIgOiAiPz8/IjsKKyAgICBzdHJpbmcgcyA9IChwb2xpY3kgPT0gU0NIRURfT1RIRVIpCisgICAgICAgICAgICAgICAgICAgPyAiU0NIRURfT1RIRVIiCisgICAgICAgICAgICAgICAgICAgOiAocG9saWN5ID09IFNDSEVEX0ZJRk8pCisgICAgICAgICAgICAgICAgICAgICAgICAgPyAiU0NIRURfRklGTyIKKyAgICAgICAgICAgICAgICAgICAgICAgICA6IChwb2xpY3kgPT0gU0NIRURfUlIpID8gIlNDSEVEX1JSIiA6ICI/Pz8iOwogICAgIGNvdXQgPDwgc2V0dygxMikgPDwgbGVmdCA8PCBzIDw8IHBhcmFtLnNjaGVkX3ByaW9yaXR5IDw8IGVuZGw7CiAgICAgcmV0dXJuOwogfQpAQCAtNTUsNyArNTgsOCBAQAogICAgIGlmIChwcmlvcml0eV9jYWxsZXIgIT0gcHJpb3JpdHkpIHsKICAgICAgICAgaCsrOwogICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgY291dCA8PCAiZXJyIHByaW9yaXR5X2NhbGxlcjoiIDw8IHByaW9yaXR5X2NhbGxlciA8PCAiLCBwcmlvcml0eToiIDw8IHByaW9yaXR5IDw8IGVuZGw7CisgICAgICAgICAgICBjb3V0IDw8ICJlcnIgcHJpb3JpdHlfY2FsbGVyOiIgPDwgcHJpb3JpdHlfY2FsbGVyCisgICAgICAgICAgICAgICAgIDw8ICIsIHByaW9yaXR5OiIgPDwgcHJpb3JpdHkgPDwgZW5kbDsKICAgICAgICAgfQogICAgIH0KICAgICBpbnQgY3B1ID0gc2NoZWRfZ2V0Y3B1KCk7CmRpZmYgLS1naXQgYS90ZXN0cy9saWJod2JpbmRlci9BbmRyb2lkLm1rIGIvdGVzdHMvbGliaHdiaW5kZXIvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvbGliaHdiaW5kZXIvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdGVzdHMvbXNncS9BbmRyb2lkLm1rIGIvdGVzdHMvbXNncS9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5ZTMyNzYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9tc2dxL0FuZHJvaWQubWsKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3Rlc3RzL3BvaW50ZXIvQW5kcm9pZC5tayBiL3Rlc3RzL3BvaW50ZXIvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvcG9pbnRlci9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9BbmRyb2lkLmJwIGIvdGhlcm1hbC8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTlmOWM3Ci0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDYzIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSVRoZXJtYWwuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvVGhlcm1hbEFsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9JVGhlcm1hbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvSUh3VGhlcm1hbC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvQm5Id1RoZXJtYWwuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL0JwSHdUaGVybWFsLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9Cc1RoZXJtYWwuaCIsCisgICAgXSwKK30KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIGV4cG9ydF9nZW5lcmF0ZWRfaGVhZGVyczogWyJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9BbmRyb2lkLm1rIGIvdGhlcm1hbC8xLjAvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTBhOWEwCi0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvQW5kcm9pZC5tawpAQCAtMCwwICsxLDM4MCBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ29vbGluZ0RldmljZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0Nvb2xpbmdEZXZpY2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5Db29saW5nRGV2aWNlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb29saW5nVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0Nvb2xpbmdUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuQ29vbGluZ1R5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENwdVVzYWdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvQ3B1VXNhZ2UuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5DcHVVc2FnZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGVtcGVyYXR1cmUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UZW1wZXJhdHVyZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLlRlbXBlcmF0dXJlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUZW1wZXJhdHVyZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UZW1wZXJhdHVyZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5UZW1wZXJhdHVyZVR5cGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRoZXJtYWxTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UaGVybWFsU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuVGhlcm1hbFN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGhlcm1hbFN0YXR1c0NvZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9UaGVybWFsU3RhdHVzQ29kZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLlRoZXJtYWxTdGF0dXNDb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVRoZXJtYWwuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9JVGhlcm1hbC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVRoZXJtYWwuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjpJVGhlcm1hbAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVRoZXJtYWwuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWwtVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDb29saW5nRGV2aWNlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvQ29vbGluZ0RldmljZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLkNvb2xpbmdEZXZpY2UKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKENvb2xpbmdUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvQ29vbGluZ1R5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5Db29saW5nVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ3B1VXNhZ2UpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvVjFfMC9DcHVVc2FnZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLkNwdVVzYWdlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUZW1wZXJhdHVyZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL1RlbXBlcmF0dXJlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuVGVtcGVyYXR1cmUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFRlbXBlcmF0dXJlVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL1RlbXBlcmF0dXJlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OnR5cGVzLlRlbXBlcmF0dXJlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoVGhlcm1hbFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL1RoZXJtYWxTdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOjp0eXBlcy5UaGVybWFsU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChUaGVybWFsU3RhdHVzQ29kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL1RoZXJtYWxTdGF0dXNDb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDo6dHlwZXMuVGhlcm1hbFN0YXR1c0NvZGUKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJVGhlcm1hbC5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC9WMV8wL0lUaGVybWFsLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVGhlcm1hbC5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjA6OklUaGVybWFsCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVGhlcm1hbC5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfU1RBVElDX0pBVkFfTElCUkFSWSkKKworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWwtVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90aGVybWFsL1YxXzAvQ29uc3RhbnRzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lUaGVybWFsLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wCisKKyQoR0VOKToKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisjIEF2b2lkIGRlcGVuZGVuY3kgY3ljbGUgb2YgZnJhbWV3b3JrLmphciAtPiB0aGlzLWxpYnJhcnkgLT4gZnJhbWV3b3JrLmphcgorTE9DQUxfTk9fU1RBTkRBUkRfTElCUkFSSUVTIDo9IHRydWUKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IGNvcmUtb2oKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9JVGhlcm1hbC5oYWwgYi90aGVybWFsLzEuMC9JVGhlcm1hbC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFhNjVkNAotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL0lUaGVybWFsLmhhbApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wOworCitpbnRlcmZhY2UgSVRoZXJtYWwgeworCisgICAgLyoqCisgICAgICogUmV0cmlldmVzIHRlbXBlcmF0dXJlcyBpbiBDZWxzaXVzLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uIElmIHN0YXR1cyBjb2RlIGlzIEZBSUxVUkUsCisgICAgICogICAgICAgICB0aGUgc3RhdHVzLmRlYnVnTWVzc2FnZSBtdXN0IGJlIHBvcHVsYXRlZCB3aXRoIHRoZSBodW1hbi1yZWFkYWJsZQorICAgICAqICAgICAgICAgZXJyb3IgbWVzc2FnZS4KKyAgICAgKiBAcmV0dXJuIHRlbXBlcmF0dXJlcyBJZiBzdGF0dXMgY29kZSBpcyBTVUNDRVNTLCBpdCdzIGZpbGxlZCB3aXRoIHRoZQorICAgICAqICAgICAgICAgY3VycmVudCB0ZW1wZXJhdHVyZXMuIFRoZSBvcmRlciBvZiB0ZW1wZXJhdHVyZXMgb2YgYnVpbHQtaW4KKyAgICAgKiAgICAgICAgIGRldmljZXMgKHN1Y2ggYXMgQ1BVcywgR1BVcyBhbmQgZXRjLikgaW4gdGhlIGxpc3QgbXVzdCBiZSBrZXB0CisgICAgICogICAgICAgICB0aGUgc2FtZSByZWdhcmRsZXNzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gdGhpcyBtZXRob2QgZXZlbiBpZgorICAgICAqICAgICAgICAgdGhleSBnbyBvZmZsaW5lLCBpZiB0aGVzZSBkZXZpY2VzIGV4aXN0IG9uIGJvb3QuIFRoZSBtZXRob2QKKyAgICAgKiAgICAgICAgIGFsd2F5cyByZXR1cm5zIGFuZCBuZXZlciByZW1vdmVzIHN1Y2ggdGVtcGVyYXR1cmVzLgorICAgICAqCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBnZXRUZW1wZXJhdHVyZXMoKQorICAgICAgICBnZW5lcmF0ZXMgKFRoZXJtYWxTdGF0dXMgc3RhdHVzLCB2ZWM8VGVtcGVyYXR1cmU+IHRlbXBlcmF0dXJlcyk7CisKKyAgICAvKioKKyAgICAgKiBSZXRyaWV2ZXMgQ1BVIHVzYWdlIGluZm9ybWF0aW9uIG9mIGVhY2ggY29yZTogYWN0aXZlIGFuZCB0b3RhbCB0aW1lcworICAgICAqIGluIG1zIHNpbmNlIGZpcnN0IGJvb3QuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIG9wZXJhdGlvbi4gSWYgc3RhdHVzIGNvZGUgaXMgRkFJTFVSRSwKKyAgICAgKiAgICAgICAgIHRoZSBzdGF0dXMuZGVidWdNZXNzYWdlIG11c3QgYmUgcG9wdWxhdGVkIHdpdGggdGhlIGh1bWFuLXJlYWRhYmxlCisgICAgICogICAgICAgICBlcnJvciBtZXNzYWdlLgorICAgICAqIEByZXR1cm4gY3B1VXNhZ2VzIElmIHN0YXR1cyBjb2RlIGlzIFNVQ0NFU1MsIGl0J3MgZmlsbGVkIHdpdGggdGhlIGN1cnJlbnQKKyAgICAgKiAgICAgICAgIENQVSB1c2FnZXMuIFRoZSBvcmRlciBhbmQgbnVtYmVyIG9mIENQVXMgaW4gdGhlIGxpc3QgbXVzdCBiZSBrZXB0CisgICAgICogICAgICAgICB0aGUgc2FtZSByZWdhcmRsZXNzIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gdGhpcyBtZXRob2QuCisgICAgICoKKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBAZW50cnkKKyAgICBAZXhpdAorICAgIGdldENwdVVzYWdlcygpIGdlbmVyYXRlcyAoVGhlcm1hbFN0YXR1cyBzdGF0dXMsIHZlYzxDcHVVc2FnZT4gY3B1VXNhZ2VzKTsKKworICAgIC8qKgorICAgICAqIFJldHJpZXZlcyB0aGUgY29vbGluZyBkZXZpY2VzIGluZm9ybWF0aW9uLgorICAgICAqCisgICAgICogQHJldHVybiBzdGF0dXMgU3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uIElmIHN0YXR1cyBjb2RlIGlzIEZBSUxVUkUsCisgICAgICogICAgICAgICB0aGUgc3RhdHVzLmRlYnVnTWVzc2FnZSBtdXN0IGJlIHBvcHVsYXRlZCB3aXRoIHRoZSBodW1hbi1yZWFkYWJsZQorICAgICAqICAgICAgICAgZXJyb3IgbWVzc2FnZS4KKyAgICAgKiBAcmV0dXJuIGRldmljZXMgSWYgc3RhdHVzIGNvZGUgaXMgU1VDQ0VTUywgaXQncyBmaWxsZWQgd2l0aCB0aGUgY3VycmVudAorICAgICAqICAgICAgICAgY29vbGluZyBkZXZpY2UgaW5mb3JtYXRpb24uIFRoZSBvcmRlciBvZiBidWlsdC1pbiBjb29saW5nCisgICAgICogICAgICAgICBkZXZpY2VzIGluIHRoZSBsaXN0IG11c3QgYmUga2VwdCB0aGUgc2FtZSByZWdhcmRsZXNzIHRoZSBudW1iZXIKKyAgICAgKiAgICAgICAgIG9mIGNhbGxzIHRvIHRoaXMgbWV0aG9kIGV2ZW4gaWYgdGhleSBnbyBvZmZsaW5lLCBpZiB0aGVzZSBkZXZpY2VzCisgICAgICogICAgICAgICBleGlzdCBvbiBib290LiBUaGUgbWV0aG9kIGFsd2F5cyByZXR1cm5zIGFuZCBuZXZlciByZW1vdmVzIGZyb20KKyAgICAgKiAgICAgICAgIHRoZSBsaXN0IHN1Y2ggY29vbGluZyBkZXZpY2VzLgorICAgICAqCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyIqIn0pCisgICAgQGVudHJ5CisgICAgQGV4aXQKKyAgICBnZXRDb29saW5nRGV2aWNlcygpCisgICAgICAgIGdlbmVyYXRlcyAoVGhlcm1hbFN0YXR1cyBzdGF0dXMsIHZlYzxDb29saW5nRGV2aWNlPiBkZXZpY2VzKTsKKworfTsKZGlmZiAtLWdpdCBhL3RoZXJtYWwvMS4wL2RlZmF1bHQvQW5kcm9pZC5icCBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNTEwNTA5Ci0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMTggQEAKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMC1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsiVGhlcm1hbC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi90aGVybWFsLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTEzMDIwYQotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDM5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCitMT0NBTF9QQVRIOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgICAgICBzZXJ2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgICAgICBsaWJsb2cgXAorICAgICAgICBsaWJjdXRpbHMgXAorICAgICAgICBsaWJkbCBcCisgICAgICAgIGxpYmJhc2UgXAorICAgICAgICBsaWJ1dGlscyBcCisgICAgICAgIGxpYmhhcmR3YXJlIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyArPSBcCisgICAgICAgIGxpYmhpZGxiYXNlIFwKKyAgICAgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL3RoZXJtYWwvMS4wL2RlZmF1bHQvVGhlcm1hbC5jcHAgYi90aGVybWFsLzEuMC9kZWZhdWx0L1RoZXJtYWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkZDAwOTAKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC9kZWZhdWx0L1RoZXJtYWwuY3BwCkBAIC0wLDAgKzEsMjEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wLWltcGwiCisKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPG1hdGguaD4KKworI2luY2x1ZGUgPHZlY3Rvcj4KKworI2luY2x1ZGUgPGxvZy9sb2cuaD4KKworI2luY2x1ZGUgPGhhcmR3YXJlL2hhcmR3YXJlLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvdGhlcm1hbC5oPgorCisjaW5jbHVkZSAiVGhlcm1hbC5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHRoZXJtYWwgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworbmFtZXNwYWNlIHsKKworZmxvYXQgZmluYWxpemVUZW1wZXJhdHVyZShmbG9hdCB0ZW1wZXJhdHVyZSkgeworICAgIHJldHVybiB0ZW1wZXJhdHVyZSA9PSBVTktOT1dOX1RFTVBFUkFUVVJFID8gTkFOIDogdGVtcGVyYXR1cmU7Cit9CisKK30KKworVGhlcm1hbDo6VGhlcm1hbCh0aGVybWFsX21vZHVsZV90KiBtb2R1bGUpIDogbU1vZHVsZShtb2R1bGUpIHt9CisKKy8vIE1ldGhvZHMgZnJvbSA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpJVGhlcm1hbCBmb2xsb3cuCitSZXR1cm48dm9pZD4gVGhlcm1hbDo6Z2V0VGVtcGVyYXR1cmVzKGdldFRlbXBlcmF0dXJlc19jYiBfaGlkbF9jYikgeworICBUaGVybWFsU3RhdHVzIHN0YXR1czsKKyAgc3RhdHVzLmNvZGUgPSBUaGVybWFsU3RhdHVzQ29kZTo6U1VDQ0VTUzsKKyAgaGlkbF92ZWM8VGVtcGVyYXR1cmU+IHRlbXBlcmF0dXJlczsKKworICBpZiAoIW1Nb2R1bGUgfHwgIW1Nb2R1bGUtPmdldFRlbXBlcmF0dXJlcykgeworICAgIEFMT0dJKCJnZXRUZW1wZXJhdHVyZXMgaXMgbm90IGltcGxlbWVudGVkIGluIFRoZXJtYWwgSEFMLiIpOworICAgIF9oaWRsX2NiKHN0YXR1cywgdGVtcGVyYXR1cmVzKTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgc3NpemVfdCBzaXplID0gbU1vZHVsZS0+Z2V0VGVtcGVyYXR1cmVzKG1Nb2R1bGUsIG51bGxwdHIsIDApOworICBpZiAoc2l6ZSA+PSAwKSB7CisgICAgc3RkOjp2ZWN0b3I8dGVtcGVyYXR1cmVfdD4gbGlzdDsKKyAgICBsaXN0LnJlc2l6ZShzaXplKTsKKyAgICBzaXplID0gbU1vZHVsZS0+Z2V0VGVtcGVyYXR1cmVzKG1Nb2R1bGUsIGxpc3QuZGF0YSgpLCBsaXN0LnNpemUoKSk7CisgICAgaWYgKHNpemUgPj0gMCkgeworICAgICAgdGVtcGVyYXR1cmVzLnJlc2l6ZShsaXN0LnNpemUoKSk7CisgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3Quc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgc3dpdGNoIChsaXN0W2ldLnR5cGUpIHsKKyAgICAgICAgICBjYXNlIERFVklDRV9URU1QRVJBVFVSRV9VTktOT1dOOgorICAgICAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnR5cGUgPSBUZW1wZXJhdHVyZVR5cGU6OlVOS05PV047CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICBjYXNlIERFVklDRV9URU1QRVJBVFVSRV9DUFU6CisgICAgICAgICAgICB0ZW1wZXJhdHVyZXNbaV0udHlwZSA9IFRlbXBlcmF0dXJlVHlwZTo6Q1BVOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgY2FzZSBERVZJQ0VfVEVNUEVSQVRVUkVfR1BVOgorICAgICAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnR5cGUgPSBUZW1wZXJhdHVyZVR5cGU6OkdQVTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNhc2UgREVWSUNFX1RFTVBFUkFUVVJFX0JBVFRFUlk6CisgICAgICAgICAgICB0ZW1wZXJhdHVyZXNbaV0udHlwZSA9IFRlbXBlcmF0dXJlVHlwZTo6QkFUVEVSWTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGNhc2UgREVWSUNFX1RFTVBFUkFUVVJFX1NLSU46CisgICAgICAgICAgICB0ZW1wZXJhdHVyZXNbaV0udHlwZSA9IFRlbXBlcmF0dXJlVHlwZTo6U0tJTjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiVW5rbm93biB0ZW1wZXJhdHVyZSAlcyB0eXBlIiwgbGlzdFtpXS5uYW1lKTsKKyAgICAgICAgICAgIDsKKyAgICAgICAgfQorICAgICAgICB0ZW1wZXJhdHVyZXNbaV0ubmFtZSA9IGxpc3RbaV0ubmFtZTsKKyAgICAgICAgdGVtcGVyYXR1cmVzW2ldLmN1cnJlbnRWYWx1ZSA9IGZpbmFsaXplVGVtcGVyYXR1cmUobGlzdFtpXS5jdXJyZW50X3ZhbHVlKTsKKyAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnRocm90dGxpbmdUaHJlc2hvbGQgPSBmaW5hbGl6ZVRlbXBlcmF0dXJlKGxpc3RbaV0udGhyb3R0bGluZ190aHJlc2hvbGQpOworICAgICAgICB0ZW1wZXJhdHVyZXNbaV0uc2h1dGRvd25UaHJlc2hvbGQgPSBmaW5hbGl6ZVRlbXBlcmF0dXJlKGxpc3RbaV0uc2h1dGRvd25fdGhyZXNob2xkKTsKKyAgICAgICAgdGVtcGVyYXR1cmVzW2ldLnZyVGhyb3R0bGluZ1RocmVzaG9sZCA9CisgICAgICAgICAgICAgICAgZmluYWxpemVUZW1wZXJhdHVyZShsaXN0W2ldLnZyX3Rocm90dGxpbmdfdGhyZXNob2xkKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKyAgaWYgKHNpemUgPCAwKSB7CisgICAgc3RhdHVzLmNvZGUgPSBUaGVybWFsU3RhdHVzQ29kZTo6RkFJTFVSRTsKKyAgICBzdGF0dXMuZGVidWdNZXNzYWdlID0gc3RyZXJyb3IoLXNpemUpOworICB9CisgIF9oaWRsX2NiKHN0YXR1cywgdGVtcGVyYXR1cmVzKTsKKyAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFRoZXJtYWw6OmdldENwdVVzYWdlcyhnZXRDcHVVc2FnZXNfY2IgX2hpZGxfY2IpIHsKKyAgVGhlcm1hbFN0YXR1cyBzdGF0dXM7CisgIGhpZGxfdmVjPENwdVVzYWdlPiBjcHVVc2FnZXM7CisgIHN0YXR1cy5jb2RlID0gVGhlcm1hbFN0YXR1c0NvZGU6OlNVQ0NFU1M7CisKKyAgaWYgKCFtTW9kdWxlIHx8ICFtTW9kdWxlLT5nZXRDcHVVc2FnZXMpIHsKKyAgICBBTE9HSSgiZ2V0Q3B1VXNhZ2VzIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBUaGVybWFsIEhBTCIpOworICAgIF9oaWRsX2NiKHN0YXR1cywgY3B1VXNhZ2VzKTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgc3NpemVfdCBzaXplID0gbU1vZHVsZS0+Z2V0Q3B1VXNhZ2VzKG1Nb2R1bGUsIG51bGxwdHIpOworICBpZiAoc2l6ZSA+PSAwKSB7CisgICAgc3RkOjp2ZWN0b3I8Y3B1X3VzYWdlX3Q+IGxpc3Q7CisgICAgbGlzdC5yZXNpemUoc2l6ZSk7CisgICAgc2l6ZSA9IG1Nb2R1bGUtPmdldENwdVVzYWdlcyhtTW9kdWxlLCBsaXN0LmRhdGEoKSk7CisgICAgaWYgKHNpemUgPj0gMCkgeworICAgICAgbGlzdC5yZXNpemUoc2l6ZSk7CisgICAgICBjcHVVc2FnZXMucmVzaXplKHNpemUpOworICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0LnNpemUoKTsgKytpKSB7CisgICAgICAgIGNwdVVzYWdlc1tpXS5uYW1lID0gbGlzdFtpXS5uYW1lOworICAgICAgICBjcHVVc2FnZXNbaV0uYWN0aXZlID0gbGlzdFtpXS5hY3RpdmU7CisgICAgICAgIGNwdVVzYWdlc1tpXS50b3RhbCA9IGxpc3RbaV0udG90YWw7CisgICAgICAgIGNwdVVzYWdlc1tpXS5pc09ubGluZSA9IGxpc3RbaV0uaXNfb25saW5lOworICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICBzdGF0dXMuY29kZSA9IFRoZXJtYWxTdGF0dXNDb2RlOjpGQUlMVVJFOworICAgICAgc3RhdHVzLmRlYnVnTWVzc2FnZSA9IHN0cmVycm9yKC1zaXplKTsKKyAgICB9CisgIH0KKyAgaWYgKHNpemUgPCAwKSB7CisgICAgc3RhdHVzLmNvZGUgPSBUaGVybWFsU3RhdHVzQ29kZTo6RkFJTFVSRTsKKyAgICBzdGF0dXMuZGVidWdNZXNzYWdlID0gc3RyZXJyb3IoLXNpemUpOworICB9CisgIF9oaWRsX2NiKHN0YXR1cywgY3B1VXNhZ2VzKTsKKyAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPHZvaWQ+IFRoZXJtYWw6OmdldENvb2xpbmdEZXZpY2VzKGdldENvb2xpbmdEZXZpY2VzX2NiIF9oaWRsX2NiKSB7CisgIFRoZXJtYWxTdGF0dXMgc3RhdHVzOworICBzdGF0dXMuY29kZSA9IFRoZXJtYWxTdGF0dXNDb2RlOjpTVUNDRVNTOworICBoaWRsX3ZlYzxDb29saW5nRGV2aWNlPiBjb29saW5nRGV2aWNlczsKKworICBpZiAoIW1Nb2R1bGUgfHwgIW1Nb2R1bGUtPmdldENvb2xpbmdEZXZpY2VzKSB7CisgICAgQUxPR0koImdldENvb2xpbmdEZXZpY2VzIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiBUaGVybWFsIEhBTC4iKTsKKyAgICBfaGlkbF9jYihzdGF0dXMsIGNvb2xpbmdEZXZpY2VzKTsKKyAgICByZXR1cm4gVm9pZCgpOworICB9CisKKyAgc3NpemVfdCBzaXplID0gbU1vZHVsZS0+Z2V0Q29vbGluZ0RldmljZXMobU1vZHVsZSwgbnVsbHB0ciwgMCk7CisgIGlmIChzaXplID49IDApIHsKKyAgICBzdGQ6OnZlY3Rvcjxjb29saW5nX2RldmljZV90PiBsaXN0OworICAgIGxpc3QucmVzaXplKHNpemUpOworICAgIHNpemUgPSBtTW9kdWxlLT5nZXRDb29saW5nRGV2aWNlcyhtTW9kdWxlLCBsaXN0LmRhdGEoKSwgbGlzdC5zaXplKCkpOworICAgIGlmIChzaXplID49IDApIHsKKyAgICAgIGxpc3QucmVzaXplKHNpemUpOworICAgICAgY29vbGluZ0RldmljZXMucmVzaXplKGxpc3Quc2l6ZSgpKTsKKyAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC5zaXplKCk7ICsraSkgeworICAgICAgICBzd2l0Y2ggKGxpc3RbaV0udHlwZSkgeworICAgICAgICAgIGNhc2UgRkFOX1JQTToKKyAgICAgICAgICAgIGNvb2xpbmdEZXZpY2VzW2ldLnR5cGUgPSBDb29saW5nVHlwZTo6RkFOX1JQTTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBTE9HRSgiVW5rbm93biBjb29saW5nIGRldmljZSAlcyB0eXBlIiwgbGlzdFtpXS5uYW1lKTsKKyAgICAgICAgfQorICAgICAgICBjb29saW5nRGV2aWNlc1tpXS5uYW1lID0gbGlzdFtpXS5uYW1lOworICAgICAgICBjb29saW5nRGV2aWNlc1tpXS5jdXJyZW50VmFsdWUgPSBsaXN0W2ldLmN1cnJlbnRfdmFsdWU7CisgICAgICB9CisgICAgfQorICB9CisgIGlmIChzaXplIDwgMCkgeworICAgIHN0YXR1cy5jb2RlID0gVGhlcm1hbFN0YXR1c0NvZGU6OkZBSUxVUkU7CisgICAgc3RhdHVzLmRlYnVnTWVzc2FnZSA9IHN0cmVycm9yKC1zaXplKTsKKyAgfQorICBfaGlkbF9jYihzdGF0dXMsIGNvb2xpbmdEZXZpY2VzKTsKKyAgcmV0dXJuIFZvaWQoKTsKK30KKworSVRoZXJtYWwqIEhJRExfRkVUQ0hfSVRoZXJtYWwoY29uc3QgY2hhciogLyogbmFtZSAqLykgeworICB0aGVybWFsX21vZHVsZV90KiBtb2R1bGU7CisgIHN0YXR1c190IGVyciA9IGh3X2dldF9tb2R1bGUoVEhFUk1BTF9IQVJEV0FSRV9NT0RVTEVfSUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3RfY2FzdDxod19tb2R1bGVfdCBjb25zdCoqPigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxod19tb2R1bGVfdCoqPigmbW9kdWxlKSkpOworICBpZiAoZXJyIHx8ICFtb2R1bGUpIHsKKyAgICBBTE9HRSgiQ291bGRuJ3QgbG9hZCAlcyBtb2R1bGUgKCVzKSIsIFRIRVJNQUxfSEFSRFdBUkVfTU9EVUxFX0lELAorICAgICAgICAgIHN0cmVycm9yKC1lcnIpKTsKKyAgfQorCisgIGlmIChlcnIgPT0gMCAmJiBtb2R1bGUtPmNvbW1vbi5tZXRob2RzLT5vcGVuKSB7CisgICAgc3RydWN0IGh3X2RldmljZV90KiBkZXZpY2U7CisgICAgZXJyID0gbW9kdWxlLT5jb21tb24ubWV0aG9kcy0+b3BlbigmbW9kdWxlLT5jb21tb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUSEVSTUFMX0hBUkRXQVJFX01PRFVMRV9JRCwgJmRldmljZSk7CisgICAgaWYgKGVycikgeworICAgICAgQUxPR0UoIkNvdWxkbid0IG9wZW4gJXMgbW9kdWxlICglcykiLCBUSEVSTUFMX0hBUkRXQVJFX01PRFVMRV9JRCwKKyAgICAgICAgICAgIHN0cmVycm9yKC1lcnIpKTsKKyAgICB9IGVsc2UgeworICAgICAgcmV0dXJuIG5ldyBUaGVybWFsKHJlaW50ZXJwcmV0X2Nhc3Q8dGhlcm1hbF9tb2R1bGVfdCo+KGRldmljZSkpOworICAgIH0KKyAgfQorICByZXR1cm4gbmV3IFRoZXJtYWwobW9kdWxlKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHRoZXJtYWwKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3RoZXJtYWwvMS4wL2RlZmF1bHQvVGhlcm1hbC5oIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9UaGVybWFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmUwNjI4OQotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvVGhlcm1hbC5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX1RIRVJNQUxfVjFfMF9USEVSTUFMX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9USEVSTUFMX1YxXzBfVEhFUk1BTF9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL0lUaGVybWFsLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS90aGVybWFsLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHRoZXJtYWwgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6Q29vbGluZ0RldmljZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OkNwdVVzYWdlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6SVRoZXJtYWw7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpUZW1wZXJhdHVyZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OlRoZXJtYWxTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBUaGVybWFsIDogcHVibGljIElUaGVybWFsIHsKKyAgICBUaGVybWFsKHRoZXJtYWxfbW9kdWxlX3QqIG1vZHVsZSk7CisgICAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OklUaGVybWFsIGZvbGxvdy4KKyAgICBSZXR1cm48dm9pZD4gZ2V0VGVtcGVyYXR1cmVzKGdldFRlbXBlcmF0dXJlc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRDcHVVc2FnZXMoZ2V0Q3B1VXNhZ2VzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IGdldENvb2xpbmdEZXZpY2VzKGdldENvb2xpbmdEZXZpY2VzX2NiIF9oaWRsX2NiKSAgb3ZlcnJpZGU7CisgICAgcHJpdmF0ZToKKyAgICAgICAgdGhlcm1hbF9tb2R1bGVfdCogbU1vZHVsZTsKK307CisKK2V4dGVybiAiQyIgSVRoZXJtYWwqIEhJRExfRkVUQ0hfSVRoZXJtYWwoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB0aGVybWFsCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9USEVSTUFMX1YxXzBfVEhFUk1BTF9ICmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAtc2VydmljZS5yYyBiL3RoZXJtYWwvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiYzBmNjUKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgdGhlcm1hbC1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAtc2VydmljZQorICAgIGNsYXNzIGhhbAorICAgIHVzZXIgc3lzdGVtCisgICAgZ3JvdXAgc3lzdGVtCmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODNjYmY4Ci0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApAQCAtMCwwICsxLDI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnRoZXJtYWxAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3RoZXJtYWwvMS4wL0lUaGVybWFsLmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpJVGhlcm1hbDsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SVRoZXJtYWw+KCk7Cit9CmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC90eXBlcy5oYWwgYi90aGVybWFsLzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI1ZDdjNwotLS0gL2Rldi9udWxsCisrKyBiL3RoZXJtYWwvMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50aGVybWFsQDEuMDsKKworLyoqIERldmljZSB0ZW1wZXJhdHVyZSB0eXBlcyAqLworQGV4cG9ydAorZW51bSBUZW1wZXJhdHVyZVR5cGUgOiBpbnQzMl90IHsKKyAgICBVTktOT1dOID0gLTEsCisgICAgQ1BVID0gMCwKKyAgICBHUFUgPSAxLAorICAgIEJBVFRFUlkgPSAyLAorICAgIFNLSU4gPSAzLAorfTsKKworZW51bSBDb29saW5nVHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKiogRmFuIGNvb2xpbmcgZGV2aWNlIHNwZWVkIGluIFJQTS4gKi8KKyAgICBGQU5fUlBNID0gMCwKK307CisKK3N0cnVjdCBUZW1wZXJhdHVyZSB7CisgICAgLyoqCisgICAgICogVGhpcyB0ZW1wZXJhdHVyZSdzIHR5cGUuCisgICAgICovCisgICAgVGVtcGVyYXR1cmVUeXBlIHR5cGU7CisKKyAgICAvKioKKyAgICAgKiBOYW1lIG9mIHRoaXMgdGVtcGVyYXR1cmUuCisgICAgICogQWxsIHRlbXBlcmF0dXJlcyBvZiB0aGUgc2FtZSAidHlwZSIgbXVzdCBoYXZlIGEgZGlmZmVyZW50ICJuYW1lIiwKKyAgICAgKiBlLmcuLCBjcHUwLCBiYXR0ZXJ5LgorICAgICAqLworICAgIHN0cmluZyBuYW1lOworCisgICAgLyoqCisgICAgICogQ3VycmVudCB0ZW1wZXJhdHVyZSBpbiBDZWxzaXVzLiBJZiBub3QgYXZhaWxhYmxlIHNldCBieSBIQUwgdG8gTkFOLgorICAgICAqIEN1cnJlbnQgdGVtcGVyYXR1cmUgY2FuIGJlIGluIGFueSB1bml0cyBpZiB0eXBlPVVOS05PV04uCisgICAgICovCisgICAgZmxvYXQgY3VycmVudFZhbHVlOworCisgICAgLyoqCisgICAgICogVGhyb3R0bGluZyB0ZW1wZXJhdHVyZSBjb25zdGFudCBmb3IgdGhpcyB0ZW1wZXJhdHVyZS4KKyAgICAgKiBJZiBub3QgYXZhaWxhYmxlLCBzZXQgYnkgSEFMIHRvIE5BTi4KKyAgICAgKi8KKyAgICBmbG9hdCB0aHJvdHRsaW5nVGhyZXNob2xkOworCisgICAgLyoqCisgICAgICogU2h1dGRvd24gdGVtcGVyYXR1cmUgY29uc3RhbnQgZm9yIHRoaXMgdGVtcGVyYXR1cmUuCisgICAgICogSWYgbm90IGF2YWlsYWJsZSwgc2V0IGJ5IEhBTCB0byBOQU4uCisgICAgICovCisgICAgZmxvYXQgc2h1dGRvd25UaHJlc2hvbGQ7CisKKyAgICAvKioKKyAgICAgKiBUaHJlc2hvbGQgdGVtcGVyYXR1cmUgYWJvdmUgd2hpY2ggdGhlIFZSIG1vZGUgY2xvY2tyYXRlIG1pbmltdW1zIGNhbm5vdAorICAgICAqIGJlIG1haW50YWluZWQgZm9yIHRoaXMgZGV2aWNlLgorICAgICAqIElmIG5vdCBhdmFpbGFibGUsIHNldCBieSBIQUwgdG8gTkFOLgorICAgICAqLworICAgIGZsb2F0IHZyVGhyb3R0bGluZ1RocmVzaG9sZDsKKworfTsKKworc3RydWN0IENvb2xpbmdEZXZpY2UgeworICAgIC8qKgorICAgICAqIFRoaXMgY29vbGluZyBkZXZpY2UgdHlwZS4KKyAgICAgKi8KKyAgICBDb29saW5nVHlwZSB0eXBlOworCisgICAgLyoqCisgICAgICogTmFtZSBvZiB0aGlzIGNvb2xpbmcgZGV2aWNlLgorICAgICAqIEFsbCBjb29saW5nIGRldmljZXMgb2YgdGhlIHNhbWUgInR5cGUiIG11c3QgaGF2ZSBhIGRpZmZlcmVudCAibmFtZSIuCisgICAgICovCisgICAgc3RyaW5nIG5hbWU7CisKKyAgICAvKioKKyAgICAgKiBDdXJyZW50IGNvb2xpbmcgZGV2aWNlIHZhbHVlLiBVbml0cyBkZXBlbmQgb24gY29vbGluZyBkZXZpY2UgInR5cGUiLgorICAgICAqLworICAgIGZsb2F0IGN1cnJlbnRWYWx1ZTsKKworfTsKKworc3RydWN0IENwdVVzYWdlIHsKKyAgICAvKioKKyAgICAgKiBOYW1lIG9mIHRoaXMgQ1BVLgorICAgICAqIEFsbCBDUFVzIG11c3QgaGF2ZSBhIGRpZmZlcmVudCAibmFtZSIuCisgICAgICovCisgICAgc3RyaW5nIG5hbWU7CisKKyAgICAvKioKKyAgICAgKiBBY3RpdmUgdGltZSBzaW5jZSB0aGUgbGFzdCBib290IGluIG1zLgorICAgICAqLworICAgIHVpbnQ2NF90IGFjdGl2ZTsKKworICAgIC8qKgorICAgICAqIFRvdGFsIHRpbWUgc2luY2UgdGhlIGxhc3QgYm9vdCBpbiBtcy4KKyAgICAgKi8KKyAgICB1aW50NjRfdCB0b3RhbDsKKworICAgIC8qKgorICAgICAqIElzIHNldCB0byB0cnVlIHdoZW4gYSBjb3JlIGlzIG9ubGluZS4KKyAgICAgKiBJZiB0aGUgY29yZSBpcyBvZmZsaW5lLCBhbGwgb3RoZXIgbWVtYmVycyBleGNlcHQgfG5hbWV8IHNob3VsZCBiZSBpZ25vcmVkLgorICAgICAqLworICAgIGJvb2wgaXNPbmxpbmU7CisKK307CisKK2VudW0gVGhlcm1hbFN0YXR1c0NvZGUgOiB1aW50MzJfdCB7CisgICAgLyoqIE5vIGVycm9ycy4gKi8KKyAgICBTVUNDRVNTID0gMCwKKyAgICAvKiogVW5rbm93biBmYWlsdXJlIG9jY3VyZWQuICovCisgICAgRkFJTFVSRSA9IDEKK307CisKKy8qKgorICogR2VuZXJpYyBzdHJ1Y3R1cmUgdG8gcmV0dXJuIHRoZSBzdGF0dXMgb2YgYW55IHRoZXJtYWwgb3BlcmF0aW9uLgorICovCitzdHJ1Y3QgVGhlcm1hbFN0YXR1cyB7CisgICAgVGhlcm1hbFN0YXR1c0NvZGUgY29kZTsKKworICAgIC8qKgorICAgICAqIEEgc3BlY2lmaWMgZXJyb3IgbWVzc2FnZSB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICogVGhpcyBjYW4gYmUgdXNlZCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzIG9ubHkuCisgICAgICovCisgICAgc3RyaW5nIGRlYnVnTWVzc2FnZTsKK307CmRpZmYgLS1naXQgYS90aGVybWFsLzEuMC92dHMvQW5kcm9pZC5tayBiL3RoZXJtYWwvMS4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwY2M3MjMKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC92dHMvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoY2FsbCBhbGwtc3ViZGlyLW1ha2VmaWxlcykKZGlmZiAtLWdpdCBhL3RoZXJtYWwvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi90aGVybWFsLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwNDY4ODIKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzcgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxUaGVybWFsVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFRoZXJtYWxWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudGhlcm1hbEAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CisKZGlmZiAtLWdpdCBhL3RoZXJtYWwvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFRoZXJtYWxWMV8wVGFyZ2V0VGVzdC5jcHAgYi90aGVybWFsLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxUaGVybWFsVjFfMFRhcmdldFRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5ODljOTQKLS0tIC9kZXYvbnVsbAorKysgYi90aGVybWFsLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxUaGVybWFsVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMjEzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNsdWRlIDxjbWF0aD4KKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8dmVjdG9yPgorCisjZGVmaW5lIExPR19UQUcgInRoZXJtYWxfaGlkbF9oYWxfdGVzdCIKKworI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90aGVybWFsLzEuMC9JVGhlcm1hbC5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdGhlcm1hbC8xLjAvdHlwZXMuaD4KKyNpbmNsdWRlIDxWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OkNvb2xpbmdEZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpDcHVVc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnRoZXJtYWw6OlYxXzA6OklUaGVybWFsOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6VGVtcGVyYXR1cmU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpUZW1wZXJhdHVyZVR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0aGVybWFsOjpWMV8wOjpUaGVybWFsU3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dGhlcm1hbDo6VjFfMDo6VGhlcm1hbFN0YXR1c0NvZGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2RlZmluZSBNT05JVE9SSU5HX09QRVJBVElPTl9OVU1CRVIgMTAKKworI2RlZmluZSBNQVhfREVWSUNFX1RFTVBFUkFUVVJFIDIwMAorI2RlZmluZSBNQVhfRkFOX1NQRUVEIDIwMDAwCisKKy8vIFRoZSBtYWluIHRlc3QgY2xhc3MgZm9yIFRIRVJNQUwgSElETCBIQUwuCitjbGFzcyBUaGVybWFsSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIHRoZXJtYWxfID0gOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2U6OmdldFNlcnZpY2U8SVRoZXJtYWw+KCk7CisgICAgQVNTRVJUX05FKHRoZXJtYWxfLCBudWxscHRyKTsKKyAgICBiYXNlU2l6ZV8gPSAwOworICAgIG5hbWVzXy5jbGVhcigpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworIHByb3RlY3RlZDoKKyAgLy8gQ2hlY2sgdmFsaWRpdHkgb2YgdGVtcGVyYXR1cmVzIHJldHVybmVkIGJ5IFRocmVtYWwgSEFMLgorICB2b2lkIGNoZWNrVGVtcGVyYXR1cmVzKGNvbnN0IGhpZGxfdmVjPFRlbXBlcmF0dXJlPiB0ZW1wZXJhdHVyZXMpIHsKKyAgICBzaXplX3Qgc2l6ZSA9IHRlbXBlcmF0dXJlcy5zaXplKCk7CisgICAgRVhQRUNUX0xFKGJhc2VTaXplXywgc2l6ZSk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgY2hlY2tEZXZpY2VUZW1wZXJhdHVyZSh0ZW1wZXJhdHVyZXNbaV0pOworICAgICAgaWYgKGkgPCBiYXNlU2l6ZV8pIHsKKyAgICAgICAgRVhQRUNUX0VRKG5hbWVzX1tpXSwgdGVtcGVyYXR1cmVzW2ldLm5hbWUuY19zdHIoKSk7CisgICAgICB9IGVsc2UgeworICAgICAgICAvLyBOYW1lcyBtdXN0IGJlIHVuaXF1ZS4KKyAgICAgICAgRVhQRUNUX0VRKG5hbWVzXy5lbmQoKSwgc3RkOjpmaW5kKG5hbWVzXy5iZWdpbigpLCBuYW1lc18uZW5kKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wZXJhdHVyZXNbaV0ubmFtZS5jX3N0cigpKSk7CisgICAgICAgIG5hbWVzXy5wdXNoX2JhY2sodGVtcGVyYXR1cmVzW2ldLm5hbWUpOworICAgICAgfQorICAgIH0KKyAgICBiYXNlU2l6ZV8gPSBzaXplOworICB9CisKKyAgLy8gQ2hlY2sgdmFsaWRpdHkgb2YgQ1BVIHVzYWdlcyByZXR1cm5lZCBieSBUaGVybWFsIEhBTC4KKyAgdm9pZCBjaGVja0NwdVVzYWdlcyhjb25zdCBoaWRsX3ZlYzxDcHVVc2FnZT4mIGNwdVVzYWdlcykgeworICAgIHNpemVfdCBzaXplID0gY3B1VXNhZ2VzLnNpemUoKTsKKyAgICAvLyBBIG51bWJlciBvZiBDUFUncyBkb2VzIG5vdCBjaGFuZ2UuCisgICAgaWYgKGJhc2VTaXplXyAhPSAwKSBFWFBFQ1RfRVEoYmFzZVNpemVfLCBzaXplKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICBjaGVja0NwdVVzYWdlKGNwdVVzYWdlc1tpXSk7CisgICAgICBpZiAoaSA8IGJhc2VTaXplXykgeworICAgICAgICBFWFBFQ1RfRVEobmFtZXNfW2ldLCBjcHVVc2FnZXNbaV0ubmFtZS5jX3N0cigpKTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIC8vIE5hbWVzIG11c3QgYmUgdW5pcXVlLgorICAgICAgICBFWFBFQ1RfRVEobmFtZXNfLmVuZCgpLCBzdGQ6OmZpbmQobmFtZXNfLmJlZ2luKCksIG5hbWVzXy5lbmQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdVVzYWdlc1tpXS5uYW1lLmNfc3RyKCkpKTsKKyAgICAgICAgbmFtZXNfLnB1c2hfYmFjayhjcHVVc2FnZXNbaV0ubmFtZSk7CisgICAgICB9CisgICAgfQorICAgIGJhc2VTaXplXyA9IHNpemU7CisgIH0KKworICAvLyBDaGVjayB2YWxpZGl0eSBvZiBjb29saW5nIGRldmljZXMgaW5mb3JtYXRpb24gcmV0dXJuZWQgYnkgVGhlcm1hbCBIQUwuCisgIHZvaWQgY2hlY2tDb29saW5nRGV2aWNlcyhjb25zdCBoaWRsX3ZlYzxDb29saW5nRGV2aWNlPiBjb29saW5nRGV2aWNlcykgeworICAgIHNpemVfdCBzaXplID0gY29vbGluZ0RldmljZXMuc2l6ZSgpOworICAgIEVYUEVDVF9MRShiYXNlU2l6ZV8sIHNpemUpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgIGNoZWNrQ29vbGluZ0RldmljZShjb29saW5nRGV2aWNlc1tpXSk7CisgICAgICBpZiAoaSA8IGJhc2VTaXplXykgeworICAgICAgICBFWFBFQ1RfRVEobmFtZXNfW2ldLCBjb29saW5nRGV2aWNlc1tpXS5uYW1lLmNfc3RyKCkpOworICAgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gTmFtZXMgbXVzdCBiZSB1bmlxdWUuCisgICAgICAgIEVYUEVDVF9FUShuYW1lc18uZW5kKCksIHN0ZDo6ZmluZChuYW1lc18uYmVnaW4oKSwgbmFtZXNfLmVuZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29vbGluZ0RldmljZXNbaV0ubmFtZS5jX3N0cigpKSk7CisgICAgICAgIG5hbWVzXy5wdXNoX2JhY2soY29vbGluZ0RldmljZXNbaV0ubmFtZSk7CisgICAgICB9CisgICAgfQorICAgIGJhc2VTaXplXyA9IHNpemU7CisgIH0KKworICBzcDxJVGhlcm1hbD4gdGhlcm1hbF87CisKKyBwcml2YXRlOgorICAvLyBDaGVjayB2YWxpZGl0eSBvZiB0ZW1wZXJhdHVyZSByZXR1cm5lZCBieSBUaGVybWFsIEhBTC4KKyAgdm9pZCBjaGVja0RldmljZVRlbXBlcmF0dXJlKGNvbnN0IFRlbXBlcmF0dXJlJiB0ZW1wZXJhdHVyZSkgeworICAgIC8vIC5jdXJyZW50VmFsdWUgb2Yga25vd24gdHlwZSBpcyBpbiBDZWxzaXVzIGFuZCBtdXN0IGJlIHJlYXNvbmFibGUuCisgICAgRVhQRUNUX1RSVUUodGVtcGVyYXR1cmUudHlwZSA9PSBUZW1wZXJhdHVyZVR5cGU6OlVOS05PV04gfHwKKyAgICAgICAgICAgICAgICBzdGQ6OmFicyh0ZW1wZXJhdHVyZS5jdXJyZW50VmFsdWUpIDwgTUFYX0RFVklDRV9URU1QRVJBVFVSRSB8fAorICAgICAgICAgICAgICAgIGlzbmFuKHRlbXBlcmF0dXJlLmN1cnJlbnRWYWx1ZSkpOworCisgICAgLy8gLm5hbWUgbXVzdCBub3QgYmUgZW1wdHkuCisgICAgRVhQRUNUX0xUKDB1LCB0ZW1wZXJhdHVyZS5uYW1lLnNpemUoKSk7CisKKyAgICAvLyAuY3VycmVudFZhbHVlIG11c3Qgbm90IGV4Y2VlZCAuc2h1dGR3b25UaHJlc2hvbGQgaWYgZGVmaW5lZC4KKyAgICBFWFBFQ1RfVFJVRSh0ZW1wZXJhdHVyZS5jdXJyZW50VmFsdWUgPCB0ZW1wZXJhdHVyZS5zaHV0ZG93blRocmVzaG9sZCB8fAorICAgICAgICAgICAgICAgIGlzbmFuKHRlbXBlcmF0dXJlLmN1cnJlbnRWYWx1ZSkgfHwgaXNuYW4odGVtcGVyYXR1cmUuc2h1dGRvd25UaHJlc2hvbGQpKTsKKworICAgIC8vIC50aHJvdHRsaW5nVGhyZXNob2xkIG11c3Qgbm90IGV4Y2VlZCAuc2h1dGRvd25UaHJlc2hvbGQgaWYgZGVmaW5lZC4KKyAgICBFWFBFQ1RfVFJVRSh0ZW1wZXJhdHVyZS50aHJvdHRsaW5nVGhyZXNob2xkIDwgdGVtcGVyYXR1cmUuc2h1dGRvd25UaHJlc2hvbGQgfHwKKyAgICAgICAgICAgICAgICBpc25hbih0ZW1wZXJhdHVyZS50aHJvdHRsaW5nVGhyZXNob2xkKSB8fCBpc25hbih0ZW1wZXJhdHVyZS5zaHV0ZG93blRocmVzaG9sZCkpOworICB9CisKKyAgLy8gQ2hlY2sgdmFsaWRpdHkgb2YgQ1BVIHVzYWdlIHJldHVybmVkIGJ5IFRoZXJtYWwgSEFMLgorICB2b2lkIGNoZWNrQ3B1VXNhZ2UoY29uc3QgQ3B1VXNhZ2UmIGNwdVVzYWdlKSB7CisgICAgLy8gLmFjdGl2ZSBtdXN0IGJlIGxlc3MgdGhhbiAudG90YWwgaWYgQ1BVIGlzIG9ubGluZS4KKyAgICBFWFBFQ1RfVFJVRSghY3B1VXNhZ2UuaXNPbmxpbmUgfHwKKyAgICAgICAgICAgICAgICAoY3B1VXNhZ2UuYWN0aXZlID49IDAgJiYgY3B1VXNhZ2UudG90YWwgPj0gMCAmJgorICAgICAgICAgICAgICAgICBjcHVVc2FnZS50b3RhbCA+PSBjcHVVc2FnZS5hY3RpdmUpKTsKKworICAgIC8vIC5uYW1lIG11c3QgYmUgbm90IGVtcHR5LgorICAgIEVYUEVDVF9MVCgwdSwgY3B1VXNhZ2UubmFtZS5zaXplKCkpOworICB9CisKKyAgLy8gQ2hlY2sgdmFsaWRpdHkgb2YgYSBjb29saW5nIGRldmljZSBpbmZvcm1hdGlvbiByZXR1cm5lZCBieSBUaGVybWFsIEhBTC4KKyAgdm9pZCBjaGVja0Nvb2xpbmdEZXZpY2UoY29uc3QgQ29vbGluZ0RldmljZSYgY29vbGluZ0RldmljZSkgeworICAgIEVYUEVDVF9MRSgwLCBjb29saW5nRGV2aWNlLmN1cnJlbnRWYWx1ZSk7CisgICAgRVhQRUNUX0dUKE1BWF9GQU5fU1BFRUQsIGNvb2xpbmdEZXZpY2UuY3VycmVudFZhbHVlKTsKKyAgICBFWFBFQ1RfTFQoMHUsIGNvb2xpbmdEZXZpY2UubmFtZS5zaXplKCkpOworICB9CisKKyAgc2l6ZV90IGJhc2VTaXplXzsKKyAgc3RkOjp2ZWN0b3I8aGlkbF9zdHJpbmc+IG5hbWVzXzsKK307CisKKy8vIFNhbml0eSB0ZXN0IGZvciBUaGVybWFsOjpnZXRUZW1wZXJhdHVyZXMoKS4KK1RFU1RfRihUaGVybWFsSGlkbFRlc3QsIFRlbXBlcmF0dXJlVGVzdCkgeworICBoaWRsX3ZlYzxUZW1wZXJhdHVyZT4gcGFzc2VkOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IE1PTklUT1JJTkdfT1BFUkFUSU9OX05VTUJFUjsgKytpKSB7CisgICAgdGhlcm1hbF8tPmdldFRlbXBlcmF0dXJlcygKKyAgICAgICAgWyZwYXNzZWRdKFRoZXJtYWxTdGF0dXMgc3RhdHVzLCBoaWRsX3ZlYzxUZW1wZXJhdHVyZT4gdGVtcGVyYXR1cmVzKSB7CisgICAgICAgICAgRVhQRUNUX0VRKFRoZXJtYWxTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CisgICAgICAgICAgcGFzc2VkID0gdGVtcGVyYXR1cmVzOworICAgICAgICB9KTsKKworICAgIGNoZWNrVGVtcGVyYXR1cmVzKHBhc3NlZCk7CisgICAgc2xlZXAoMSk7CisgIH0KK30KKworLy8gU2FuaXR5IHRlc3QgZm9yIFRoZXJtYWw6OmdldENwdVVzYWdlcygpLgorVEVTVF9GKFRoZXJtYWxIaWRsVGVzdCwgQ3B1VXNhZ2VUZXN0KSB7CisgIGhpZGxfdmVjPENwdVVzYWdlPiBwYXNzZWQ7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTU9OSVRPUklOR19PUEVSQVRJT05fTlVNQkVSOyArK2kpIHsKKyAgICB0aGVybWFsXy0+Z2V0Q3B1VXNhZ2VzKAorICAgICAgICBbJnBhc3NlZF0oVGhlcm1hbFN0YXR1cyBzdGF0dXMsIGhpZGxfdmVjPENwdVVzYWdlPiBjcHVVc2FnZXMpIHsKKyAgICAgICAgICBFWFBFQ1RfRVEoVGhlcm1hbFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1cy5jb2RlKTsKKyAgICAgICAgICBwYXNzZWQgPSBjcHVVc2FnZXM7CisgICAgICAgIH0pOworCisgICAgY2hlY2tDcHVVc2FnZXMocGFzc2VkKTsKKyAgICBzbGVlcCgxKTsKKyAgfQorfQorCisvLyBTYW5pdHkgdGVzdCBmb3IgVGhlcm1hbDo6Z2V0Q29vbGluZ0RldmljZXMoKS4KK1RFU1RfRihUaGVybWFsSGlkbFRlc3QsIENvb2xpbmdEZXZpY2VUZXN0KSB7CisgIGhpZGxfdmVjPENvb2xpbmdEZXZpY2U+IHBhc3NlZDsKKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBNT05JVE9SSU5HX09QRVJBVElPTl9OVU1CRVI7ICsraSkgeworICAgIHRoZXJtYWxfLT5nZXRDb29saW5nRGV2aWNlcyhbJnBhc3NlZF0oCisgICAgICAgIFRoZXJtYWxTdGF0dXMgc3RhdHVzLCBoaWRsX3ZlYzxDb29saW5nRGV2aWNlPiBjb29saW5nRGV2aWNlcykgeworICAgICAgRVhQRUNUX0VRKFRoZXJtYWxTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CisgICAgICBwYXNzZWQgPSBjb29saW5nRGV2aWNlczsKKyAgICB9KTsKKworICAgIGNoZWNrQ29vbGluZ0RldmljZXMocGFzc2VkKTsKKyAgICBzbGVlcCgxKTsKKyAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIExPRyhJTkZPKSA8PCAiVGVzdCByZXN1bHQgPSAiIDw8IHN0YXR1czsKKyAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL3RoZXJtYWwvQW5kcm9pZC5icCBiL3RoZXJtYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvdGhlcm1hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNiBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMS4wIiwKKyAgICAiMS4wL2RlZmF1bHQiLAorICAgICIxLjAvdnRzL2Z1bmN0aW9uYWwiLAorXQpkaWZmIC0tZ2l0IGEvdHYvQW5kcm9pZC5icCBiL3R2L0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWM1NDkxMAotLS0gL2Rldi9udWxsCisrKyBiL3R2L0FuZHJvaWQuYnAKQEAgLTAsMCArMSw2IEBACisvLyBUaGlzIGlzIGFuIGF1dG9nZW5lcmF0ZWQgZmlsZSwgZG8gbm90IGVkaXQuCitzdWJkaXJzID0gWworICAgICJjZWMvMS4wIiwKKyAgICAiaW5wdXQvMS4wIiwKKyAgICAiaW5wdXQvMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvQW5kcm9pZC5icCBiL3R2L2NlYy8xLjAvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjNmZmUyCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNzAgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklIZG1pQ2VjLmhhbCIsCisgICAgICAgICJJSGRtaUNlY0NhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9IZG1pQ2VjQWxsLmNwcCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvSGRtaUNlY0NhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9nZW5jKytfaGVhZGVycyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystaGVhZGVycyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC90eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0lIZG1pQ2VjLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0lId0hkbWlDZWMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvQm5Id0hkbWlDZWMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvQnBId0hkbWlDZWMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvQnNIZG1pQ2VjLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0lIZG1pQ2VjQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvSUh3SGRtaUNlY0NhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0JuSHdIZG1pQ2VjQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy8xLjAvQnBId0hkbWlDZWNDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvY2VjLzEuMC9Cc0hkbWlDZWNDYWxsYmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdHYvY2VjLzEuMC9BbmRyb2lkLm1rIGIvdHYvY2VjLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlMzg1M2QKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSw1ODIgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQWJvcnRSZWFzb24pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0Fib3J0UmVhc29uLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5BYm9ydFJlYXNvbgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjRGV2aWNlVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQ2VjRGV2aWNlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQ2VjRGV2aWNlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjTG9naWNhbEFkZHJlc3MpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0NlY0xvZ2ljYWxBZGRyZXNzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5DZWNMb2dpY2FsQWRkcmVzcworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjTWVzc2FnZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQ2VjTWVzc2FnZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuQ2VjTWVzc2FnZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoQ2VjTWVzc2FnZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0NlY01lc3NhZ2VUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5DZWNNZXNzYWdlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGRtaVBvcnRJbmZvKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9IZG1pUG9ydEluZm8uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkhkbWlQb3J0SW5mbworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSGRtaVBvcnRUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9IZG1pUG9ydFR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkhkbWlQb3J0VHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoSG90cGx1Z0V2ZW50KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9Ib3RwbHVnRXZlbnQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkhvdHBsdWdFdmVudAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoTWF4TGVuZ3RoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9NYXhMZW5ndGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLk1heExlbmd0aAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoT3B0aW9uS2V5KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9PcHRpb25LZXkuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLk9wdGlvbktleQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUmVzdWx0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9SZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLlJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU2VuZE1lc3NhZ2VSZXN1bHQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL1NlbmRNZXNzYWdlUmVzdWx0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5TZW5kTWVzc2FnZVJlc3VsdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElIZG1pQ2VjLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9JSGRtaUNlYy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWMuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWNDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6SUhkbWlDZWMKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCBJSGRtaUNlY0NhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9JSGRtaUNlY0NhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JSGRtaUNlY0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjpJSGRtaUNlY0NhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGRtaUNlY0NhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50di5jZWMtVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChBYm9ydFJlYXNvbikKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQWJvcnRSZWFzb24uamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkFib3J0UmVhc29uCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDZWNEZXZpY2VUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9DZWNEZXZpY2VUeXBlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5DZWNEZXZpY2VUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDZWNMb2dpY2FsQWRkcmVzcykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQ2VjTG9naWNhbEFkZHJlc3MuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkNlY0xvZ2ljYWxBZGRyZXNzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDZWNNZXNzYWdlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9jZWMvVjFfMC9DZWNNZXNzYWdlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjp0eXBlcy5DZWNNZXNzYWdlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChDZWNNZXNzYWdlVHlwZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvQ2VjTWVzc2FnZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLkNlY01lc3NhZ2VUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIZG1pUG9ydEluZm8pCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0hkbWlQb3J0SW5mby5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuSGRtaVBvcnRJbmZvCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIZG1pUG9ydFR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0hkbWlQb3J0VHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuSGRtaVBvcnRUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChIb3RwbHVnRXZlbnQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0hvdHBsdWdFdmVudC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuSG90cGx1Z0V2ZW50CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChNYXhMZW5ndGgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL01heExlbmd0aC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuTWF4TGVuZ3RoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChPcHRpb25LZXkpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL09wdGlvbktleS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuT3B0aW9uS2V5CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChSZXN1bHQpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL1Jlc3VsdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDo6dHlwZXMuUmVzdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTZW5kTWVzc2FnZVJlc3VsdCkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdHYvY2VjL1YxXzAvU2VuZE1lc3NhZ2VSZXN1bHQuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OnR5cGVzLlNlbmRNZXNzYWdlUmVzdWx0CisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSUhkbWlDZWMuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0lIZG1pQ2VjLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JSGRtaUNlYy5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWNDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JSGRtaUNlY0NhbGxiYWNrLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOjpJSGRtaUNlYworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSUhkbWlDZWMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElIZG1pQ2VjQ2FsbGJhY2suaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3R2L2NlYy9WMV8wL0lIZG1pQ2VjQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjA6OklIZG1pQ2VjQ2FsbGJhY2sKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS90di9jZWMvMS4wL0lIZG1pQ2VjLmhhbCBiL3R2L2NlYy8xLjAvSUhkbWlDZWMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4NDA0MTcKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL0lIZG1pQ2VjLmhhbApAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOworCitpbXBvcnQgSUhkbWlDZWNDYWxsYmFjazsKKworLyoqCisgKiBIRE1JLUNFQyBIQUwgaW50ZXJmYWNlIGRlZmluaXRpb24uCisgKi8KK2ludGVyZmFjZSBJSGRtaUNlYyB7CisgICAgLyoqCisgICAgICogUGFzc2VzIHRoZSBsb2dpY2FsIGFkZHJlc3MgdGhhdCBtdXN0IGJlIHVzZWQgaW4gdGhpcyBzeXN0ZW0uCisgICAgICoKKyAgICAgKiBIQUwgbXVzdCB1c2UgaXQgdG8gY29uZmlndXJlIHRoZSBoYXJkd2FyZSBzbyB0aGF0IHRoZSBDRUMgY29tbWFuZHMKKyAgICAgKiBhZGRyZXNzZWQgdGhlIGdpdmVuIGxvZ2ljYWwgYWRkcmVzcyBjYW4gYmUgZmlsdGVyZWQgaW4uIFRoaXMgbWV0aG9kIG11c3QKKyAgICAgKiBiZSBhYmxlIHRvIGJlIGNhbGxlZCBhcyBtYW55IHRpbWVzIGFzIG5lY2Vzc2FyeSBpbiBvcmRlciB0byBzdXBwb3J0CisgICAgICogbXVsdGlwbGUgbG9naWNhbCBkZXZpY2VzLgorICAgICAqCisgICAgICogQHBhcmFtIGFkZHIgTG9naWNhbCBhZGRyZXNzIHRoYXQgbXVzdCBiZSB1c2VkIGluIHRoaXMgc3lzdGVtLiBJdCBtdXN0IGJlCisgICAgICogICAgICAgIGluIHRoZSByYW5nZSBvZiB2YWxpZCBsb2dpY2FsIGFkZHJlc3NlcyBmb3IgdGhlIGNhbGwgdG8gc3VjY2VlZC4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBSZXN1bHQgc3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uIFNVQ0NFU1MgaWYgc3VjY2Vzc2Z1bCwKKyAgICAgKiAgICAgICAgIEZBSUxVUkVfSU5WQUxJRF9BUkdTIGlmIHRoZSBnaXZlbiBsb2dpY2FsIGFkZHJlc3MgaXMgaW52YWxpZCwKKyAgICAgKiAgICAgICAgIEZBSUxVUkVfQlVTWSBpZiBkZXZpY2Ugb3IgcmVzb3VyY2UgaXMgYnVzeQorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGFkZExvZ2ljYWxBZGRyZXNzKENlY0xvZ2ljYWxBZGRyZXNzIGFkZHIpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7CisKKyAgICAvKioKKyAgICAgKiBDbGVhcnMgYWxsIHRoZSBsb2dpY2FsIGFkZHJlc3Nlcy4KKyAgICAgKgorICAgICAqIEl0IGlzIHVzZWQgd2hlbiB0aGUgc3lzdGVtIGRvZXNuJ3QgbmVlZCB0byBwcm9jZXNzIENFQyBjb21tYW5kIGFueSBtb3JlLAorICAgICAqIGhlbmNlIHRvIHRlbGwgSEFMIHRvIHN0b3AgcmVjZWl2aW5nIGNvbW1hbmRzIGZyb20gdGhlIENFQyBidXMsIGFuZCBjaGFuZ2UKKyAgICAgKiB0aGUgc3RhdGUgYmFjayB0byB0aGUgYmVnaW5uaW5nLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSJhZGRMb2dpY2FsQWRkcmVzcyIpCisgICAgQGV4aXQKKyAgICBjbGVhckxvZ2ljYWxBZGRyZXNzKCk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBDRUMgcGh5c2ljYWwgYWRkcmVzcy4KKyAgICAgKgorICAgICAqIFRoZSBwaHlzaWNhbCBhZGRyZXNzIGRlcGVuZHMgb24gdGhlIHRvcG9sb2d5IG9mIHRoZSBuZXR3b3JrIGZvcm1lZCBieQorICAgICAqIGNvbm5lY3RlZCBIRE1JIGRldmljZXMuIEl0IGlzIHRoZXJlZm9yZSBsaWtlbHkgdG8gY2hhbmdlIGlmIHRoZSBjYWJsZSBpcworICAgICAqIHBsdWdnZWQgb2ZmIGFuZCBvbiBhZ2Fpbi4gSXQgaXMgYWR2aXNlZCB0byBjYWxsIGdldFBoeXNpY2FsQWRkcmVzcyB0byBnZXQKKyAgICAgKiB0aGUgdXBkYXRlZCBhZGRyZXNzIHdoZW4gaG90IHBsdWcgZXZlbnQgdGFrZXMgcGxhY2UuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBSZXN1bHQgc3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uIFNVQ0NFU1MgaWYgc3VjY2Vzc2Z1bCwKKyAgICAgKiAgICAgICAgIEZBSUxVUkVfSU5WQUxJRF9TVEFURSBpZiBIQUwgY2Fubm90IHJldHJpZXZlIHRoZSBwaHlzaWNhbAorICAgICAqICAgICAgICAgYWRkcmVzcy4KKyAgICAgKiBAcmV0dXJuIGFkZHIgUGh5c2ljYWwgYWRkcmVzcyBvZiB0aGlzIGRldmljZS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZ2V0UGh5c2ljYWxBZGRyZXNzKCkgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0LCB1aW50MTZfdCBhZGRyKTsKKworICAgIC8qKgorICAgICAqIFRyYW5zbWl0cyBIRE1JLUNFQyBtZXNzYWdlIHRvIG90aGVyIEhETUkgZGV2aWNlLgorICAgICAqCisgICAgICogVGhlIG1ldGhvZCBtdXN0IGJlIGRlc2lnbmVkIHRvIHJldHVybiBpbiBhIGNlcnRhaW4gYW1vdW50IG9mIHRpbWUgYW5kIG5vdAorICAgICAqIGhhbmdpbmcgZm9yZXZlciB3aGljaCBtYXkgaGFwcGVuIGlmIENFQyBzaWduYWwgbGluZSBpcyBwdWxsZWQgbG93IGZvcgorICAgICAqIHNvbWUgcmVhc29uLgorICAgICAqCisgICAgICogSXQgbXVzdCB0cnkgcmV0cmFuc21pc3Npb24gYXQgbGVhc3Qgb25jZSBhcyBzcGVjaWZpZWQgaW4gdGhlIHNlY3Rpb24gJzcuMQorICAgICAqIEZyYW1lIFJlLXRyYW5zbWlzc2lvbnMnIG9mIHRoZSBDRUMgU3BlYyAxLjRiLgorICAgICAqCisgICAgICogQHBhcmFtIG1lc3NhZ2UgQ0VDIG1lc3NhZ2UgdG8gYmUgc2VudCB0byBvdGhlciBIRE1JIGRldmljZS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBSZXN1bHQgc3RhdHVzIG9mIHRoZSBvcGVyYXRpb24uIFNVQ0NFU1MgaWYgc3VjY2Vzc2Z1bCwKKyAgICAgKiAgICAgICAgIE5BQ0sgaWYgdGhlIHNlbnQgbWVzc2FnZSBpcyBub3QgYWNrbm93bGVkZ2VkLAorICAgICAqICAgICAgICAgQlVTWSBpZiB0aGUgQ0VDIGJ1cyBpcyBidXN5LgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBzZW5kTWVzc2FnZShDZWNNZXNzYWdlIG1lc3NhZ2UpIGdlbmVyYXRlcyAoU2VuZE1lc3NhZ2VSZXN1bHQgcmVzdWx0KTsKKworICAgIC8qKgorICAgICAqIFNldHMgYSBjYWxsYmFjayB0aGF0IEhETUktQ0VDIEhBTCBtdXN0IGxhdGVyIHVzZSBmb3IgaW5jb21pbmcgQ0VDCisgICAgICogbWVzc2FnZXMgb3IgaW50ZXJuYWwgSERNSSBldmVudHMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgQ2FsbGJhY2sgb2JqZWN0IHRvIHBhc3MgaGRtaSBldmVudHMgdG8gdGhlIHN5c3RlbS4gVGhlCisgICAgICogICAgICAgIHByZXZpb3VzbHkgcmVnaXN0ZXJlZCBjYWxsYmFjayBtdXN0IGJlIHJlcGxhY2VkIHdpdGggdGhpcyBvbmUuCisgICAgICovCisgICAgQGNhbGxmbG93KG5leHQ9eyJhZGRMb2dpY2FsQWRkcmVzcyJ9KQorICAgIEBlbnRyeQorICAgIHNldENhbGxiYWNrKElIZG1pQ2VjQ2FsbGJhY2sgY2FsbGJhY2spOworCisgICAgLyoqCisgICAgICogUmV0dXJucyB0aGUgQ0VDIHZlcnNpb24gc3VwcG9ydGVkIGJ5IHVuZGVybHlpbmcgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHZlcnNpb24gdGhlIENFQyB2ZXJzaW9uIHN1cHBvcnRlZCBieSB1bmRlcmx5aW5nIGhhcmR3YXJlLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldENlY1ZlcnNpb24oKSBnZW5lcmF0ZXMgKGludDMyX3QgdmVyc2lvbik7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBpZGVudGlmaWVyIG9mIHRoZSB2ZW5kb3IuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIHZlbmRvcklkIElkZW50aWZpZXIgb2YgdGhlIHZlbmRvciB0aGF0IGlzIHRoZSAyNC1iaXQgdW5pcXVlCisgICAgICogICAgICAgICBjb21wYW55IElEIG9idGFpbmVkIGZyb20gdGhlIElFRUUgUmVnaXN0cmF0aW9uIEF1dGhvcml0eQorICAgICAqICAgICAgICAgQ29tbWl0dGVlIChSQUMpLiBUaGUgdXBwZXIgOCBiaXRzIG11c3QgYmUgMC4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17IioifSkKKyAgICBnZXRWZW5kb3JJZCgpIGdlbmVyYXRlcyAodWludDMyX3QgdmVuZG9ySWQpOworCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgaGRtaSBwb3J0IGluZm9ybWF0aW9uIG9mIHVuZGVybHlpbmcgaGFyZHdhcmUuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIGluZm9zIFRoZSBsaXN0IG9mIEhETUkgcG9ydCBpbmZvcm1hdGlvbgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICAgIGdldFBvcnRJbmZvKCkgZ2VuZXJhdGVzICh2ZWM8SGRtaVBvcnRJbmZvPiBpbmZvcyk7CisKKyAgICAvKioKKyAgICAgKiBTZXRzIGZsYWdzIGNvbnRyb2xsaW5nIHRoZSB3YXkgSERNSS1DRUMgc2VydmljZSB3b3JrcyBkb3duIHRvIEhBTAorICAgICAqIGltcGxlbWVudGF0aW9uLiBUaG9zZSBmbGFncyBtdXN0IGJlIHVzZWQgaW4gY2FzZSB0aGUgZmVhdHVyZSBuZWVkcyB1cGRhdGUKKyAgICAgKiBpbiBIQUwgaXRzZWxmLCBmaXJtd2FyZSBvciBtaWNyb2NvbnRyb2xsZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgb2YgdGhlIG9wdGlvbiB0byBiZSB1cGRhdGVkIHdpdGggYSBuZXcgdmFsdWUuCisgICAgICogQHBhcmFtIHZhbHVlIFZhbHVlIHRvIGJlIHNldC4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgc2V0T3B0aW9uKE9wdGlvbktleSBrZXksIGJvb2wgdmFsdWUpOworCisgICAgLyoqCisgICAgICogUGFzc2VzIHRoZSB1cGRhdGVkIGxhbmd1YWdlIGluZm9ybWF0aW9uIG9mIEFuZHJvaWQgc3lzdGVtLiBDb250YWlucworICAgICAqIHRocmVlLWxldHRlciBjb2RlIGFzIGRlZmluZWQgaW4gSVNPL0ZESVMgNjM5LTIuIE11c3QgYmUgdXNlZCBmb3IgSEFMIHRvCisgICAgICogcmVzcG9uZCB0byA8R2V0IE1lbnUgTGFuZ3VhZ2U+IHdoaWxlIGluIHN0YW5kYnkgbW9kZS4KKyAgICAgKgorICAgICAqIEBwYXJhbSBsYW5ndWFnZSBUaHJlZS1sZXR0ZXIgY29kZSBkZWZpbmVkIGluIElTTy9GRElTIDYzOS0yLiBNdXN0IGJlCisgICAgICogICAgICAgIGxvd2VyY2FzZSBsZXR0ZXJzLiAoZS5nLiwgZW5nIGZvciBFbmdsaXNoKQorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PSIqIikKKyAgICBzZXRMYW5ndWFnZShzdHJpbmcgbGFuZ3VhZ2UpOworCisgICAgLyoqCisgICAgICogQ29uZmlndXJlcyBBUkMgY2lyY3VpdCBpbiB0aGUgaGFyZHdhcmUgbG9naWMgdG8gc3RhcnQgb3Igc3RvcCB0aGUKKyAgICAgKiBmZWF0dXJlLgorICAgICAqCisgICAgICogQHBhcmFtIHBvcnRJZCBQb3J0IGlkIHRvIGJlIGNvbmZpZ3VyZWQuCisgICAgICogQHBhcmFtIGVuYWJsZSBGbGFnIG11c3QgYmUgZWl0aGVyIHRydWUgdG8gc3RhcnQgdGhlIGZlYXR1cmUgb3IgZmFsc2UgdG8KKyAgICAgKiAgICAgICAgc3RvcCBpdC4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgZW5hYmxlQXVkaW9SZXR1cm5DaGFubmVsKGludDMyX3QgcG9ydElkLCBib29sIGVuYWJsZSk7CisKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBjb25uZWN0aW9uIHN0YXR1cyBvZiB0aGUgc3BlY2lmaWVkIHBvcnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydElkIFBvcnQgaWQgdG8gYmUgaW5zcGVjdGVkIGZvciB0aGUgY29ubmVjdGlvbiBzdGF0dXMuCisgICAgICogQHJldHVybiBzdGF0dXMgVHJ1ZSBpZiBhIGRldmljZSBpcyBjb25uZWN0ZWQsIG90aGVyd2lzZSBmYWxzZS4gVGhlIEhBTAorICAgICAqICAgICAgICAgbXVzdCB3YXRjaCBmb3IgKzVWIHBvd2VyIHNpZ25hbCB0byBkZXRlcm1pbmUgdGhlIHN0YXR1cy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD0iKiIpCisgICAgaXNDb25uZWN0ZWQoaW50MzJfdCBwb3J0SWQpIGdlbmVyYXRlcyAoYm9vbCBzdGF0dXMpOworfTsKZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvSUhkbWlDZWNDYWxsYmFjay5oYWwgYi90di9jZWMvMS4wL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1NGQxOWYKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL0lIZG1pQ2VjQ2FsbGJhY2suaGFsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMDsKKworaW50ZXJmYWNlIElIZG1pQ2VjQ2FsbGJhY2sgeworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IG11c3QgYmUgY2FsbGVkIGJ5IEhBTCBpbXBsZW1lbnRhdGlvbiB0byBub3RpZnkKKyAgICAgKiB0aGUgc3lzdGVtIG9mIG5ldyBDRUMgbWVzc2FnZSBhcnJpdmFsLgorICAgICAqLworICAgIG9uZXdheSBvbkNlY01lc3NhZ2UoQ2VjTWVzc2FnZSBtZXNzYWdlKTsKKworICAgIC8qKgorICAgICAqIFRoZSBjYWxsYmFjayBmdW5jdGlvbiB0aGF0IG11c3QgYmUgY2FsbGVkIGJ5IEhBTCBpbXBsZW1lbnRhdGlvbiB0byBub3RpZnkKKyAgICAgKiB0aGUgc3lzdGVtIG9mIG5ldyBob3RwbHVnIGV2ZW50LgorICAgICAqLworICAgIG9uZXdheSBvbkhvdHBsdWdFdmVudChIb3RwbHVnRXZlbnQgZXZlbnQpOworfTsKZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvdHYvY2VjLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQzNzM0NAotLS0gL2Rldi9udWxsCisrKyBiL3R2L2NlYy8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNDQgQEAKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBIZG1pQ2VjLmNwcAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJoaWRsYmFzZSBcCisgICAgbGliaGlkbHRyYW5zcG9ydCBcCisgICAgbGlibG9nIFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGliaGFyZHdhcmUgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKKworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIHNlcnZpY2UuY3BwIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyA6PSBcCisgICAgbGlibG9nIFwKKyAgICBsaWJjdXRpbHMgXAorICAgIGxpYmRsIFwKKyAgICBsaWJiYXNlIFwKKyAgICBsaWJ1dGlscyBcCisgICAgbGliaGFyZHdhcmVfbGVnYWN5IFwKKyAgICBsaWJoYXJkd2FyZSBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgKz0gXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvZGVmYXVsdC9IZG1pQ2VjLmNwcCBiL3R2L2NlYy8xLjAvZGVmYXVsdC9IZG1pQ2VjLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmUyNjgxCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9kZWZhdWx0L0hkbWlDZWMuY3BwCkBAIC0wLDAgKzEsNDE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnR2LmNlY0AxLjAtaW1wbCIKKyNpbmNsdWRlIDxhbmRyb2lkLWJhc2UvbG9nZ2luZy5oPgorCisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9oZG1pX2NlYy5oPgorI2luY2x1ZGUgIkhkbWlDZWMuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB0diB7CituYW1lc3BhY2UgY2VjIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3N0YXRpY19hc3NlcnQoQ0VDX0RFVklDRV9JTkFDVElWRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0RldmljZVR5cGU6OklOQUNUSVZFKSwKKyAgICAgICAgIkNlY0RldmljZVR5cGU6OklOQUNUSVZFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfREVWSUNFX1RWID09IHN0YXRpY19jYXN0PGludD4oQ2VjRGV2aWNlVHlwZTo6VFYpLAorICAgICAgICAiQ2VjRGV2aWNlVHlwZTo6VFYgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19ERVZJQ0VfUkVDT1JERVIgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNEZXZpY2VUeXBlOjpSRUNPUkRFUiksCisgICAgICAgICJDZWNEZXZpY2VUeXBlOjpSRUNPUkRFUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0RFVklDRV9UVU5FUiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0RldmljZVR5cGU6OlRVTkVSKSwKKyAgICAgICAgIkNlY0RldmljZVR5cGU6OlRVTkVSIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfREVWSUNFX1BMQVlCQUNLID09IHN0YXRpY19jYXN0PGludD4oQ2VjRGV2aWNlVHlwZTo6UExBWUJBQ0spLAorICAgICAgICAiQ2VjRGV2aWNlVHlwZTo6UExBWUJBQ0sgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19ERVZJQ0VfQVVESU9fU1lTVEVNID09IHN0YXRpY19jYXN0PGludD4oQ2VjRGV2aWNlVHlwZTo6QVVESU9fU1lTVEVNKSwKKyAgICAgICAgIkNlY0RldmljZVR5cGU6OkFVRElPX1NZU1RFTSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0RFVklDRV9NQVggPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNEZXZpY2VUeXBlOjpNQVgpLAorICAgICAgICAiQ2VjRGV2aWNlVHlwZTo6TUFYIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1RWID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlRWKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpUViBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfUkVDT1JERVJfMSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpSRUNPUkRFUl8xKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpSRUNPUkRFUl8xIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9SRUNPUkRFUl8yID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlJFQ09SREVSXzIpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlJFQ09SREVSXzIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1RVTkVSXzEgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfMSksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfMSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfUExBWUJBQ0tfMSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpQTEFZQkFDS18xKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpQTEFZQkFDS18xIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9BVURJT19TWVNURU0gPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6QVVESU9fU1lTVEVNKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpBVURJT19TWVNURU0gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1RVTkVSXzIgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfMiksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6VFVORVJfMiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfVFVORVJfMyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpUVU5FUl8zKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpUVU5FUl8zIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9QTEFZQkFDS18yID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlBMQVlCQUNLXzIpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlBMQVlCQUNLXzIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX1JFQ09SREVSXzMgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6UkVDT1JERVJfMyksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6UkVDT1JERVJfMyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfVFVORVJfNCA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY0xvZ2ljYWxBZGRyZXNzOjpUVU5FUl80KSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpUVU5FUl80IG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9QTEFZQkFDS18zID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlBMQVlCQUNLXzMpLAorICAgICAgICAiQ2VjTG9naWNhbEFkZHJlc3M6OlBMQVlCQUNLXzMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19BRERSX0ZSRUVfVVNFID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OkZSRUVfVVNFKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpGUkVFX1VTRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX0FERFJfVU5SRUdJU1RFUkVEID09IHN0YXRpY19jYXN0PGludD4oQ2VjTG9naWNhbEFkZHJlc3M6OlVOUkVHSVNURVJFRCksCisgICAgICAgICJDZWNMb2dpY2FsQWRkcmVzczo6VU5SRUdJU1RFUkVEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfQUREUl9CUk9BRENBU1QgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNMb2dpY2FsQWRkcmVzczo6QlJPQURDQVNUKSwKKyAgICAgICAgIkNlY0xvZ2ljYWxBZGRyZXNzOjpCUk9BRENBU1QgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfRkVBVFVSRV9BQk9SVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpGRUFUVVJFX0FCT1JUKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpGRUFUVVJFX0FCT1JUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9JTUFHRV9WSUVXX09OID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OklNQUdFX1ZJRVdfT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OklNQUdFX1ZJRVdfT04gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1RVTkVSX1NURVBfSU5DUkVNRU5UID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpUVU5FUl9TVEVQX0lOQ1JFTUVOVCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VFVORVJfU1RFUF9JTkNSRU1FTlQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1RVTkVSX1NURVBfREVDUkVNRU5UID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpUVU5FUl9TVEVQX0RFQ1JFTUVOVCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VFVORVJfU1RFUF9ERUNSRU1FTlQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1RVTkVSX0RFVklDRV9TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlRVTkVSX0RFVklDRV9TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlRVTkVSX0RFVklDRV9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0dJVkVfVFVORVJfREVWSUNFX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6R0lWRV9UVU5FUl9ERVZJQ0VfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpHSVZFX1RVTkVSX0RFVklDRV9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JFQ09SRF9PTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpSRUNPUkRfT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFQ09SRF9PTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVDT1JEX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpSRUNPUkRfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRUNPUkRfU1RBVFVTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRUNPUkRfT0ZGID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlJFQ09SRF9PRkYpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFQ09SRF9PRkYgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1RFWFRfVklFV19PTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpURVhUX1ZJRVdfT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlRFWFRfVklFV19PTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVDT1JEX1RWX1NDUkVFTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpSRUNPUkRfVFZfU0NSRUVOKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRUNPUkRfVFZfU0NSRUVOIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX0RFQ0tfU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OkdJVkVfREVDS19TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfREVDS19TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1NUQU5EQlkgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6U1RBTkRCWSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U1RBTkRCWSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUExBWSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpQTEFZKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpQTEFZIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9ERUNLX0NPTlRST0wgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6REVDS19DT05UUk9MKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpERUNLX0NPTlRST0wgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1RJTUVSX0NMRUFSRURfU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpUSU1FUl9DTEVBUkVEX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VElNRVJfQ0xFQVJFRF9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1VTRVJfQ09OVFJPTF9QUkVTU0VEID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpVU0VSX0NPTlRST0xfUFJFU1NFRCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VVNFUl9DT05UUk9MX1BSRVNTRUQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1VTRVJfQ09OVFJPTF9SRUxFQVNFRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VVNFUl9DT05UUk9MX1JFTEVBU0VEKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpVU0VSX0NPTlRST0xfUkVMRUFTRUQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0dJVkVfT1NEX05BTUUgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6R0lWRV9PU0RfTkFNRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6R0lWRV9PU0RfTkFNRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU0VUX09TRF9OQU1FID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlNFVF9PU0RfTkFNRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VUX09TRF9OQU1FIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TWVNURU1fQVVESU9fTU9ERV9SRVFVRVNUID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpTWVNURU1fQVVESU9fTU9ERV9SRVFVRVNUKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTWVNURU1fQVVESU9fTU9ERV9SRVFVRVNUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX0FVRElPX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpHSVZFX0FVRElPX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6R0lWRV9BVURJT19TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1NFVF9TWVNURU1fQVVESU9fTU9ERSA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6U0VUX1NZU1RFTV9BVURJT19NT0RFKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTRVRfU1lTVEVNX0FVRElPX01PREUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JFUE9SVF9BVURJT19TVEFUVVMgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9BVURJT19TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9BVURJT19TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0dJVkVfU1lTVEVNX0FVRElPX01PREVfU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpHSVZFX1NZU1RFTV9BVURJT19NT0RFX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6R0lWRV9TWVNURU1fQVVESU9fTU9ERV9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1NZU1RFTV9BVURJT19NT0RFX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6U1lTVEVNX0FVRElPX01PREVfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTWVNURU1fQVVESU9fTU9ERV9TVEFUVVMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1JPVVRJTkdfQ0hBTkdFID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlJPVVRJTkdfQ0hBTkdFKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpST1VUSU5HX0NIQU5HRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUk9VVElOR19JTkZPUk1BVElPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6Uk9VVElOR19JTkZPUk1BVElPTiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6Uk9VVElOR19JTkZPUk1BVElPTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfQUNUSVZFX1NPVVJDRSA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpBQ1RJVkVfU09VUkNFKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpBQ1RJVkVfU09VUkNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX1BIWVNJQ0FMX0FERFJFU1MgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OkdJVkVfUEhZU0lDQUxfQUREUkVTUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6R0lWRV9QSFlTSUNBTF9BRERSRVNTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVBPUlRfUEhZU0lDQUxfQUREUkVTUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6UkVQT1JUX1BIWVNJQ0FMX0FERFJFU1MpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9QSFlTSUNBTF9BRERSRVNTIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVFVRVNUX0FDVElWRV9TT1VSQ0UgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUVVFU1RfQUNUSVZFX1NPVVJDRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UkVRVUVTVF9BQ1RJVkVfU09VUkNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TRVRfU1RSRUFNX1BBVEggPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6U0VUX1NUUkVBTV9QQVRIKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTRVRfU1RSRUFNX1BBVEggbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0RFVklDRV9WRU5ET1JfSUQgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6REVWSUNFX1ZFTkRPUl9JRCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6REVWSUNFX1ZFTkRPUl9JRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfVkVORE9SX0NPTU1BTkQgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6VkVORE9SX0NPTU1BTkQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlZFTkRPUl9DT01NQU5EIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9WRU5ET1JfUkVNT1RFX0JVVFRPTl9ET1dOID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpWRU5ET1JfUkVNT1RFX0JVVFRPTl9ET1dOKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpWRU5ET1JfUkVNT1RFX0JVVFRPTl9ET1dOIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9WRU5ET1JfUkVNT1RFX0JVVFRPTl9VUCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VkVORE9SX1JFTU9URV9CVVRUT05fVVApLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlZFTkRPUl9SRU1PVEVfQlVUVE9OX1VQIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9HSVZFX0RFVklDRV9WRU5ET1JfSUQgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OkdJVkVfREVWSUNFX1ZFTkRPUl9JRCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6R0lWRV9ERVZJQ0VfVkVORE9SX0lEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9NRU5VX1JFUVVFU1QgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6TUVOVV9SRVFVRVNUKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpNRU5VX1JFUVVFU1QgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX01FTlVfU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6Ok1FTlVfU1RBVFVTKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpNRU5VX1NUQVRVUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfR0lWRV9ERVZJQ0VfUE9XRVJfU1RBVFVTID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpHSVZFX0RFVklDRV9QT1dFUl9TVEFUVVMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdJVkVfREVWSUNFX1BPV0VSX1NUQVRVUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfUkVQT1JUX1BPV0VSX1NUQVRVUyA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6UkVQT1JUX1BPV0VSX1NUQVRVUyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UkVQT1JUX1BPV0VSX1NUQVRVUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfR0VUX01FTlVfTEFOR1VBR0UgPT0gc3RhdGljX2Nhc3Q8aW50PihDZWNNZXNzYWdlVHlwZTo6R0VUX01FTlVfTEFOR1VBR0UpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdFVF9NRU5VX0xBTkdVQUdFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TRUxFQ1RfQU5BTE9HX1NFUlZJQ0UgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlNFTEVDVF9BTkFMT0dfU0VSVklDRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VMRUNUX0FOQUxPR19TRVJWSUNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TRUxFQ1RfRElHSVRBTF9TRVJWSUNFID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpTRUxFQ1RfRElHSVRBTF9TRVJWSUNFKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTRUxFQ1RfRElHSVRBTF9TRVJWSUNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9TRVRfRElHSVRBTF9USU1FUiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpTRVRfRElHSVRBTF9USU1FUiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6U0VUX0RJR0lUQUxfVElNRVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0NMRUFSX0RJR0lUQUxfVElNRVIgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OkNMRUFSX0RJR0lUQUxfVElNRVIpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkNMRUFSX0RJR0lUQUxfVElNRVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX1NFVF9BVURJT19SQVRFID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlNFVF9BVURJT19SQVRFKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpTRVRfQVVESU9fUkFURSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfSU5BQ1RJVkVfU09VUkNFID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OklOQUNUSVZFX1NPVVJDRSksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6SU5BQ1RJVkVfU09VUkNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9DRUNfVkVSU0lPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpDRUNfVkVSU0lPTiksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6Q0VDX1ZFUlNJT04gbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0dFVF9DRUNfVkVSU0lPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KENlY01lc3NhZ2VUeXBlOjpHRVRfQ0VDX1ZFUlNJT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OkdFVF9DRUNfVkVSU0lPTiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfVkVORE9SX0NPTU1BTkRfV0lUSF9JRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6VkVORE9SX0NPTU1BTkRfV0lUSF9JRCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6VkVORE9SX0NPTU1BTkRfV0lUSF9JRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfQ0xFQVJfRVhURVJOQUxfVElNRVIgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OkNMRUFSX0VYVEVSTkFMX1RJTUVSKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpDTEVBUl9FWFRFUk5BTF9USU1FUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfU0VUX0VYVEVSTkFMX1RJTUVSID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpTRVRfRVhURVJOQUxfVElNRVIpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlNFVF9FWFRFUk5BTF9USU1FUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQ0VDX01FU1NBR0VfSU5JVElBVEVfQVJDID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OklOSVRJQVRFX0FSQyksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6SU5JVElBVEVfQVJDIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVBPUlRfQVJDX0lOSVRJQVRFRCA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6UkVQT1JUX0FSQ19JTklUSUFURUQpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9BUkNfSU5JVElBVEVEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVBPUlRfQVJDX1RFUk1JTkFURUQgPT0gc3RhdGljX2Nhc3Q8aW50PigKKyAgICAgICAgQ2VjTWVzc2FnZVR5cGU6OlJFUE9SVF9BUkNfVEVSTUlOQVRFRCksCisgICAgICAgICJDZWNNZXNzYWdlVHlwZTo6UkVQT1JUX0FSQ19URVJNSU5BVEVEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVFVRVNUX0FSQ19JTklUSUFUSU9OID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIENlY01lc3NhZ2VUeXBlOjpSRVFVRVNUX0FSQ19JTklUSUFUSU9OKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpSRVFVRVNUX0FSQ19JTklUSUFUSU9OIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9SRVFVRVNUX0FSQ19URVJNSU5BVElPTiA9PSBzdGF0aWNfY2FzdDxpbnQ+KAorICAgICAgICBDZWNNZXNzYWdlVHlwZTo6UkVRVUVTVF9BUkNfVEVSTUlOQVRJT04pLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlJFUVVFU1RfQVJDX1RFUk1JTkFUSU9OIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChDRUNfTUVTU0FHRV9URVJNSU5BVEVfQVJDID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OlRFUk1JTkFURV9BUkMpLAorICAgICAgICAiQ2VjTWVzc2FnZVR5cGU6OlRFUk1JTkFURV9BUkMgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KENFQ19NRVNTQUdFX0FCT1JUID09IHN0YXRpY19jYXN0PGludD4oQ2VjTWVzc2FnZVR5cGU6OkFCT1JUKSwKKyAgICAgICAgIkNlY01lc3NhZ2VUeXBlOjpBQk9SVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3RhdGljX2Fzc2VydChBQk9SVF9VTlJFQ09HTklaRURfTU9ERSA9PSBzdGF0aWNfY2FzdDxpbnQ+KEFib3J0UmVhc29uOjpVTlJFQ09HTklaRURfTU9ERSksCisgICAgICAgICJBYm9ydFJlYXNvbjo6VU5SRUNPR05JWkVEX01PREUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEFCT1JUX05PVF9JTl9DT1JSRUNUX01PREUgPT0gc3RhdGljX2Nhc3Q8aW50PihBYm9ydFJlYXNvbjo6Tk9UX0lOX0NPUlJFQ1RfTU9ERSksCisgICAgICAgICJBYm9ydFJlYXNvbjo6Tk9UX0lOX0NPUlJFQ1RfTU9ERSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQUJPUlRfQ0FOTk9UX1BST1ZJREVfU09VUkNFID09IHN0YXRpY19jYXN0PGludD4oQWJvcnRSZWFzb246OkNBTk5PVF9QUk9WSURFX1NPVVJDRSksCisgICAgICAgICJBYm9ydFJlYXNvbjo6Q0FOTk9UX1BST1ZJREVfU09VUkNFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChBQk9SVF9JTlZBTElEX09QRVJBTkQgPT0gc3RhdGljX2Nhc3Q8aW50PihBYm9ydFJlYXNvbjo6SU5WQUxJRF9PUEVSQU5EKSwKKyAgICAgICAgIkFib3J0UmVhc29uOjpJTlZBTElEX09QRVJBTkQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEFCT1JUX1JFRlVTRUQgPT0gc3RhdGljX2Nhc3Q8aW50PihBYm9ydFJlYXNvbjo6UkVGVVNFRCksCisgICAgICAgICJBYm9ydFJlYXNvbjo6UkVGVVNFRCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoQUJPUlRfVU5BQkxFX1RPX0RFVEVSTUlORSA9PSBzdGF0aWNfY2FzdDxpbnQ+KEFib3J0UmVhc29uOjpVTkFCTEVfVE9fREVURVJNSU5FKSwKKyAgICAgICAgIkFib3J0UmVhc29uOjpVTkFCTEVfVE9fREVURVJNSU5FIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzdGF0aWNfYXNzZXJ0KEhETUlfUkVTVUxUX1NVQ0NFU1MgPT0gc3RhdGljX2Nhc3Q8aW50PihTZW5kTWVzc2FnZVJlc3VsdDo6U1VDQ0VTUyksCisgICAgICAgICJTZW5kTWVzc2FnZVJlc3VsdDo6U1VDQ0VTUyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoSERNSV9SRVNVTFRfTkFDSyA9PSBzdGF0aWNfY2FzdDxpbnQ+KFNlbmRNZXNzYWdlUmVzdWx0OjpOQUNLKSwKKyAgICAgICAgIlNlbmRNZXNzYWdlUmVzdWx0OjpOQUNLIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChIRE1JX1JFU1VMVF9CVVNZID09IHN0YXRpY19jYXN0PGludD4oU2VuZE1lc3NhZ2VSZXN1bHQ6OkJVU1kpLAorICAgICAgICAiU2VuZE1lc3NhZ2VSZXN1bHQ6OkJVU1kgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KEhETUlfUkVTVUxUX0ZBSUwgPT0gc3RhdGljX2Nhc3Q8aW50PihTZW5kTWVzc2FnZVJlc3VsdDo6RkFJTCksCisgICAgICAgICJTZW5kTWVzc2FnZVJlc3VsdDo6RkFJTCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3RhdGljX2Fzc2VydChIRE1JX0lOUFVUID09IHN0YXRpY19jYXN0PGludD4oSGRtaVBvcnRUeXBlOjpJTlBVVCksCisgICAgICAgICJIZG1pUG9ydFR5cGU6OklOUFVUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChIRE1JX09VVFBVVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KEhkbWlQb3J0VHlwZTo6T1VUUFVUKSwKKyAgICAgICAgIkhkbWlQb3J0VHlwZTo6T1VUUFVUIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzdGF0aWNfYXNzZXJ0KEhETUlfT1BUSU9OX1dBS0VVUCA9PSBzdGF0aWNfY2FzdDxpbnQ+KE9wdGlvbktleTo6V0FLRVVQKSwKKyAgICAgICAgIk9wdGlvbktleTo6V0FLRVVQIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChIRE1JX09QVElPTl9FTkFCTEVfQ0VDID09IHN0YXRpY19jYXN0PGludD4oT3B0aW9uS2V5OjpFTkFCTEVfQ0VDKSwKKyAgICAgICAgIk9wdGlvbktleTo6RU5BQkxFX0NFQyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoSERNSV9PUFRJT05fU1lTVEVNX0NFQ19DT05UUk9MID09IHN0YXRpY19jYXN0PGludD4oT3B0aW9uS2V5OjpTWVNURU1fQ0VDX0NPTlRST0wpLAorICAgICAgICAiT3B0aW9uS2V5OjpTWVNURU1fQ0VDX0NPTlRST0wgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CisKK3NwPElIZG1pQ2VjQ2FsbGJhY2s+IEhkbWlDZWM6Om1DYWxsYmFjayA9IG51bGxwdHI7CisKK0hkbWlDZWM6OkhkbWlDZWMoaGRtaV9jZWNfZGV2aWNlX3QqIGRldmljZSkgOiBtRGV2aWNlKGRldmljZSkgeworfQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmNlYzo6VjFfMDo6SUhkbWlDZWMgZm9sbG93LgorUmV0dXJuPFJlc3VsdD4gSGRtaUNlYzo6YWRkTG9naWNhbEFkZHJlc3MoQ2VjTG9naWNhbEFkZHJlc3MgYWRkcikgeworICAgIGludCByZXQgPSBtRGV2aWNlLT5hZGRfbG9naWNhbF9hZGRyZXNzKG1EZXZpY2UsIHN0YXRpY19jYXN0PGNlY19sb2dpY2FsX2FkZHJlc3NfdD4oYWRkcikpOworICAgIHN3aXRjaCAocmV0KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OlNVQ0NFU1M7CisgICAgICAgIGNhc2UgLUVJTlZBTDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OkZBSUxVUkVfSU5WQUxJRF9BUkdTOworICAgICAgICBjYXNlIC1FTk9UU1VQOgorICAgICAgICAgICAgcmV0dXJuIFJlc3VsdDo6RkFJTFVSRV9OT1RfU1VQUE9SVEVEOworICAgICAgICBjYXNlIC1FQlVTWToKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OkZBSUxVUkVfQlVTWTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQ6OkZBSUxVUkVfVU5LTk9XTjsKKyAgICB9Cit9CisKK1JldHVybjx2b2lkPiBIZG1pQ2VjOjpjbGVhckxvZ2ljYWxBZGRyZXNzKCkgeworICAgIG1EZXZpY2UtPmNsZWFyX2xvZ2ljYWxfYWRkcmVzcyhtRGV2aWNlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6Z2V0UGh5c2ljYWxBZGRyZXNzKGdldFBoeXNpY2FsQWRkcmVzc19jYiBfaGlkbF9jYikgeworICAgIHVpbnQxNl90IGFkZHI7CisgICAgaW50IHJldCA9IG1EZXZpY2UtPmdldF9waHlzaWNhbF9hZGRyZXNzKG1EZXZpY2UsICZhZGRyKTsKKyAgICBzd2l0Y2ggKHJldCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OlNVQ0NFU1MsIGFkZHIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgLUVCQURGOgorICAgICAgICAgICAgX2hpZGxfY2IoUmVzdWx0OjpGQUlMVVJFX0lOVkFMSURfU1RBVEUsIGFkZHIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBfaGlkbF9jYihSZXN1bHQ6OkZBSUxVUkVfVU5LTk9XTiwgYWRkcik7CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworUmV0dXJuPFNlbmRNZXNzYWdlUmVzdWx0PiBIZG1pQ2VjOjpzZW5kTWVzc2FnZShjb25zdCBDZWNNZXNzYWdlJiBtZXNzYWdlKSB7CisgICAgY2VjX21lc3NhZ2VfdCBsZWdhY3lNZXNzYWdlIHsKKyAgICAgICAgLmluaXRpYXRvciA9IHN0YXRpY19jYXN0PGNlY19sb2dpY2FsX2FkZHJlc3NfdD4obWVzc2FnZS5pbml0aWF0b3IpLAorICAgICAgICAuZGVzdGluYXRpb24gPSBzdGF0aWNfY2FzdDxjZWNfbG9naWNhbF9hZGRyZXNzX3Q+KG1lc3NhZ2UuZGVzdGluYXRpb24pLAorICAgICAgICAubGVuZ3RoID0gbWVzc2FnZS5ib2R5LnNpemUoKSwKKyAgICB9OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWVzc2FnZS5ib2R5LnNpemUoKTsgKytpKSB7CisgICAgICAgIGxlZ2FjeU1lc3NhZ2UuYm9keVtpXSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KG1lc3NhZ2UuYm9keVtpXSk7CisgICAgfQorICAgIHJldHVybiBzdGF0aWNfY2FzdDxTZW5kTWVzc2FnZVJlc3VsdD4obURldmljZS0+c2VuZF9tZXNzYWdlKG1EZXZpY2UsICZsZWdhY3lNZXNzYWdlKSk7Cit9CisKK1JldHVybjx2b2lkPiBIZG1pQ2VjOjpzZXRDYWxsYmFjayhjb25zdCBzcDxJSGRtaUNlY0NhbGxiYWNrPiYgY2FsbGJhY2spIHsKKyAgICBtQ2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICBtRGV2aWNlLT5yZWdpc3Rlcl9ldmVudF9jYWxsYmFjayhtRGV2aWNlLCBldmVudENhbGxiYWNrLCBudWxscHRyKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48aW50MzJfdD4gSGRtaUNlYzo6Z2V0Q2VjVmVyc2lvbigpIHsKKyAgICBpbnQgdmVyc2lvbjsKKyAgICBtRGV2aWNlLT5nZXRfdmVyc2lvbihtRGV2aWNlLCAmdmVyc2lvbik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDMyX3Q+KHZlcnNpb24pOworfQorCitSZXR1cm48dWludDMyX3Q+IEhkbWlDZWM6OmdldFZlbmRvcklkKCkgeworICAgIHVpbnQzMl90IHZlbmRvcl9pZDsKKyAgICBtRGV2aWNlLT5nZXRfdmVuZG9yX2lkKG1EZXZpY2UsICZ2ZW5kb3JfaWQpOworICAgIHJldHVybiB2ZW5kb3JfaWQ7Cit9CisKK1JldHVybjx2b2lkPiBIZG1pQ2VjOjpnZXRQb3J0SW5mbyhnZXRQb3J0SW5mb19jYiBfaGlkbF9jYikgeworICAgIHN0cnVjdCBoZG1pX3BvcnRfaW5mbyogbGVnYWN5UG9ydHM7CisgICAgaW50IG51bVBvcnRzOworICAgIGhpZGxfdmVjPEhkbWlQb3J0SW5mbz4gcG9ydEluZm9zOworICAgIG1EZXZpY2UtPmdldF9wb3J0X2luZm8obURldmljZSwgJmxlZ2FjeVBvcnRzLCAmbnVtUG9ydHMpOworICAgIHBvcnRJbmZvcy5yZXNpemUobnVtUG9ydHMpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUG9ydHM7ICsraSkgeworICAgICAgICBwb3J0SW5mb3NbaV0gPSB7CisgICAgICAgICAgICAudHlwZSA9IHN0YXRpY19jYXN0PEhkbWlQb3J0VHlwZT4obGVnYWN5UG9ydHNbaV0udHlwZSksCisgICAgICAgICAgICAucG9ydElkID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGxlZ2FjeVBvcnRzW2ldLnBvcnRfaWQpLAorICAgICAgICAgICAgLmNlY1N1cHBvcnRlZCA9IGxlZ2FjeVBvcnRzW2ldLmNlY19zdXBwb3J0ZWQgIT0gMCwKKyAgICAgICAgICAgIC5hcmNTdXBwb3J0ZWQgPSBsZWdhY3lQb3J0c1tpXS5hcmNfc3VwcG9ydGVkICE9IDAsCisgICAgICAgICAgICAucGh5c2ljYWxBZGRyZXNzID0gbGVnYWN5UG9ydHNbaV0ucGh5c2ljYWxfYWRkcmVzcworICAgICAgICB9OworICAgIH0KKyAgICBfaGlkbF9jYihwb3J0SW5mb3MpOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK1JldHVybjx2b2lkPiBIZG1pQ2VjOjpzZXRPcHRpb24oT3B0aW9uS2V5IGtleSwgYm9vbCB2YWx1ZSkgeworICAgIG1EZXZpY2UtPnNldF9vcHRpb24obURldmljZSwgc3RhdGljX2Nhc3Q8aW50PihrZXkpLCB2YWx1ZSA/IDEgOiAwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6c2V0TGFuZ3VhZ2UoY29uc3QgaGlkbF9zdHJpbmcmIGxhbmd1YWdlKSB7CisgICAgaWYgKGxhbmd1YWdlLnNpemUoKSAhPSAzKSB7CisgICAgICAgIExPRyhFUlJPUikgPDwgIldyb25nIGxhbmd1YWdlIGNvZGU6IGV4cGVjdGVkIDMgbGV0dGVycywgYnV0IGl0IHdhcyAiIDw8IGxhbmd1YWdlLnNpemUoKQorICAgICAgICAgICAgICAgIDw8ICIuIjsKKyAgICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9CisgICAgY29uc3QgY2hhciAqbGFuZ3VhZ2VTdHIgPSBsYW5ndWFnZS5jX3N0cigpOworICAgIGludCBjb252ZXJ0ZWRMYW5ndWFnZSA9ICgobGFuZ3VhZ2VTdHJbMF0gJiAweEZGKSA8PCAxNikKKyAgICAgICAgICAgIHwgKChsYW5ndWFnZVN0clsxXSAmIDB4RkYpIDw8IDgpCisgICAgICAgICAgICB8IChsYW5ndWFnZVN0clsyXSAmIDB4RkYpOworICAgIG1EZXZpY2UtPnNldF9vcHRpb24obURldmljZSwgSERNSV9PUFRJT05fU0VUX0xBTkcsIGNvbnZlcnRlZExhbmd1YWdlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gSGRtaUNlYzo6ZW5hYmxlQXVkaW9SZXR1cm5DaGFubmVsKGludDMyX3QgcG9ydElkLCBib29sIGVuYWJsZSkgeworICAgIG1EZXZpY2UtPnNldF9hdWRpb19yZXR1cm5fY2hhbm5lbChtRGV2aWNlLCBwb3J0SWQsIGVuYWJsZSA/IDEgOiAwKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48Ym9vbD4gSGRtaUNlYzo6aXNDb25uZWN0ZWQoaW50MzJfdCBwb3J0SWQpIHsKKyAgICByZXR1cm4gbURldmljZS0+aXNfY29ubmVjdGVkKG1EZXZpY2UsIHBvcnRJZCkgPiAwOworfQorCisKK0lIZG1pQ2VjKiBISURMX0ZFVENIX0lIZG1pQ2VjKGNvbnN0IGNoYXIqIGhhbCkgeworICAgIGhkbWlfY2VjX2RldmljZV90KiBoZG1pX2NlY19kZXZpY2U7CisgICAgaW50IHJldCA9IDA7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIGh3X21vZHVsZSA9IG51bGxwdHI7CisKKyAgICByZXQgPSBod19nZXRfbW9kdWxlIChIRE1JX0NFQ19IQVJEV0FSRV9NT0RVTEVfSUQsICZod19tb2R1bGUpOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXQgPSBoZG1pX2NlY19vcGVuIChod19tb2R1bGUsICZoZG1pX2NlY19kZXZpY2UpOworICAgICAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgICAgIExPRyhFUlJPUikgPDwgImhkbWlfY2VjX29wZW4gIiA8PCBoYWwgPDwgIiBmYWlsZWQ6ICIgPDwgcmV0OworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgTE9HKEVSUk9SKSA8PCAiaHdfZ2V0X21vZHVsZSAiIDw8IGhhbCA8PCAiIGZhaWxlZDogIiA8PCByZXQ7CisgICAgfQorCisgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgIHJldHVybiBuZXcgSGRtaUNlYyhoZG1pX2NlY19kZXZpY2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIExPRyhFUlJPUikgPDwgIlBhc3N0aHJvdWdoIGZhaWxlZCB0byBsb2FkIGxlZ2FjeSBIQUwuIjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorfQorCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgY2VjCit9ICAvLyBuYW1lc3BhY2UgdHYKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvZGVmYXVsdC9IZG1pQ2VjLmggYi90di9jZWMvMS4wL2RlZmF1bHQvSGRtaUNlYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0YTNiYjAKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL2RlZmF1bHQvSGRtaUNlYy5oCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX1RWX0NFQ19WMV8wX0hETUlDRUNfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX1RWX0NFQ19WMV8wX0hETUlDRUNfSAorCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0lIZG1pQ2VjLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL2hkbWlfY2VjLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB0diB7CituYW1lc3BhY2UgY2VjIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OkNlY0xvZ2ljYWxBZGRyZXNzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmNlYzo6VjFfMDo6Q2VjTWVzc2FnZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6Ok1heExlbmd0aDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OkhkbWlQb3J0SW5mbzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OklIZG1pQ2VjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmNlYzo6VjFfMDo6SUhkbWlDZWNDYWxsYmFjazsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6Ok9wdGlvbktleTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjpjZWM6OlYxXzA6OlNlbmRNZXNzYWdlUmVzdWx0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCitzdHJ1Y3QgSGRtaUNlYyA6IHB1YmxpYyBJSGRtaUNlYyB7CisgICAgSGRtaUNlYyhoZG1pX2NlY19kZXZpY2VfdCogZGV2aWNlKTsKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmNlYzo6VjFfMDo6SUhkbWlDZWMgZm9sbG93LgorICAgIFJldHVybjxSZXN1bHQ+IGFkZExvZ2ljYWxBZGRyZXNzKENlY0xvZ2ljYWxBZGRyZXNzIGFkZHIpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gY2xlYXJMb2dpY2FsQWRkcmVzcygpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZ2V0UGh5c2ljYWxBZGRyZXNzKGdldFBoeXNpY2FsQWRkcmVzc19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxTZW5kTWVzc2FnZVJlc3VsdD4gc2VuZE1lc3NhZ2UoY29uc3QgQ2VjTWVzc2FnZSYgbWVzc2FnZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRDYWxsYmFjayhjb25zdCBzcDxJSGRtaUNlY0NhbGxiYWNrPiYgY2FsbGJhY2spICBvdmVycmlkZTsKKyAgICBSZXR1cm48aW50MzJfdD4gZ2V0Q2VjVmVyc2lvbigpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dWludDMyX3Q+IGdldFZlbmRvcklkKCkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRQb3J0SW5mbyhnZXRQb3J0SW5mb19jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRPcHRpb24oT3B0aW9uS2V5IGtleSwgYm9vbCB2YWx1ZSkgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBzZXRMYW5ndWFnZShjb25zdCBoaWRsX3N0cmluZyYgbGFuZ3VhZ2UpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gZW5hYmxlQXVkaW9SZXR1cm5DaGFubmVsKGludDMyX3QgcG9ydElkLCBib29sIGVuYWJsZSkgIG92ZXJyaWRlOworICAgIFJldHVybjxib29sPiBpc0Nvbm5lY3RlZChpbnQzMl90IHBvcnRJZCkgIG92ZXJyaWRlOworCisgICAgc3RhdGljIHZvaWQgZXZlbnRDYWxsYmFjayhjb25zdCBoZG1pX2V2ZW50X3QqIGV2ZW50LCB2b2lkKiAvKiBhcmcgKi8pIHsKKyAgICAgICAgaWYgKG1DYWxsYmFjayAhPSBudWxscHRyICYmIGV2ZW50ICE9IG51bGxwdHIpIHsKKyAgICAgICAgICAgIGlmIChldmVudC0+dHlwZSA9PSBIRE1JX0VWRU5UX0NFQ19NRVNTQUdFKSB7CisgICAgICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCA9IHN0ZDo6bWluKGV2ZW50LT5jZWMubGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8c2l6ZV90PihNYXhMZW5ndGg6Ok1FU1NBR0VfQk9EWSkpOworICAgICAgICAgICAgICAgIENlY01lc3NhZ2UgY2VjTWVzc2FnZSB7CisgICAgICAgICAgICAgICAgICAgIC5pbml0aWF0b3IgPSBzdGF0aWNfY2FzdDxDZWNMb2dpY2FsQWRkcmVzcz4oZXZlbnQtPmNlYy5pbml0aWF0b3IpLAorICAgICAgICAgICAgICAgICAgICAuZGVzdGluYXRpb24gPSBzdGF0aWNfY2FzdDxDZWNMb2dpY2FsQWRkcmVzcz4oZXZlbnQtPmNlYy5kZXN0aW5hdGlvbiksCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBjZWNNZXNzYWdlLmJvZHkucmVzaXplKGxlbmd0aCk7CisgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBjZWNNZXNzYWdlLmJvZHlbaV0gPSBzdGF0aWNfY2FzdDx1aW50OF90PihldmVudC0+Y2VjLmJvZHlbaV0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtQ2FsbGJhY2stPm9uQ2VjTWVzc2FnZShjZWNNZXNzYWdlKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUgPT0gSERNSV9FVkVOVF9IT1RfUExVRykgeworICAgICAgICAgICAgICAgIEhvdHBsdWdFdmVudCBob3RwbHVnRXZlbnQgeworICAgICAgICAgICAgICAgICAgICAuY29ubmVjdGVkID0gZXZlbnQtPmhvdHBsdWcuY29ubmVjdGVkID4gMCwKKyAgICAgICAgICAgICAgICAgICAgLnBvcnRJZCA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihldmVudC0+aG90cGx1Zy5wb3J0X2lkKQorICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgbUNhbGxiYWNrLT5vbkhvdHBsdWdFdmVudChob3RwbHVnRXZlbnQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCitwcml2YXRlOgorICAgIHN0YXRpYyBzcDxJSGRtaUNlY0NhbGxiYWNrPiBtQ2FsbGJhY2s7CisgICAgY29uc3QgaGRtaV9jZWNfZGV2aWNlX3QqIG1EZXZpY2U7Cit9OworCitleHRlcm4gIkMiIElIZG1pQ2VjKiBISURMX0ZFVENIX0lIZG1pQ2VjKGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgY2VjCit9ICAvLyBuYW1lc3BhY2UgdHYKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX1RWX0NFQ19WMV8wX0hETUlDRUNfSApkaWZmIC0tZ2l0IGEvdHYvY2VjLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlLnJjIGIvdHYvY2VjLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljODAwOTQKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIGNlYy1oYWwtMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL3R2L2NlYy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcCBiL3R2L2NlYy8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGIxZjYyCi0tLSAvZGV2L251bGwKKysrIGIvdHYvY2VjLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUudHYuY2VjQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90di9jZWMvMS4wL0lIZG1pQ2VjLmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6Y2VjOjpWMV8wOjpJSGRtaUNlYzsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SUhkbWlDZWM+KCk7Cit9CmRpZmYgLS1naXQgYS90di9jZWMvMS4wL3R5cGVzLmhhbCBiL3R2L2NlYy8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExODUzYTMKLS0tIC9kZXYvbnVsbAorKysgYi90di9jZWMvMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50di5jZWNAMS4wOworCitlbnVtIE1heExlbmd0aCA6IGludDMyX3QgeworICAgIE1FU1NBR0VfQk9EWSA9IDE1LAorfTsKKworZW51bSBDZWNEZXZpY2VUeXBlIDogaW50MzJfdCB7CisgICAgSU5BQ1RJVkUgPSAtMSwKKyAgICBUViA9IDAsCisgICAgUkVDT1JERVIgPSAxLAorICAgIFRVTkVSID0gMywKKyAgICBQTEFZQkFDSyA9IDQsCisgICAgQVVESU9fU1lTVEVNID0gNSwKKyAgICBNQVggPSBBVURJT19TWVNURU0sCit9OworCitlbnVtIENlY0xvZ2ljYWxBZGRyZXNzIDogaW50MzJfdCB7CisgICAgVFYgPSAwLAorICAgIFJFQ09SREVSXzEgPSAxLAorICAgIFJFQ09SREVSXzIgPSAyLAorICAgIFRVTkVSXzEgPSAzLAorICAgIFBMQVlCQUNLXzEgPSA0LAorICAgIEFVRElPX1NZU1RFTSA9IDUsCisgICAgVFVORVJfMiA9IDYsCisgICAgVFVORVJfMyA9IDcsCisgICAgUExBWUJBQ0tfMiA9IDgsCisgICAgUkVDT1JERVJfMyA9IDksCisgICAgVFVORVJfNCA9IDEwLAorICAgIFBMQVlCQUNLXzMgPSAxMSwKKyAgICBGUkVFX1VTRSA9IDE0LAorICAgIFVOUkVHSVNURVJFRCA9IDE1LCAvLyBhcyBJbml0aWF0b3IgYWRkcmVzcworICAgIEJST0FEQ0FTVCA9IDE1LCAvLyBhcyBEZXN0aW5hdGlvbiBhZGRyZXNzCit9OworCisvKioKKyAqIEhETUkgQ0VDIG1lc3NhZ2UgdHlwZXMuIFRoZSBhc3NpZ25lZCB2YWx1ZXMgcmVwcmVzZW50IG9wY29kZSB1c2VkIGluIENFQworICogZnJhbWUgYXMgc3BlY2lmaWVkIGluIENFQyBUYWJsZSA4LTI2IG9mIHRoZSBDRUMgU3BlYyAxLjRiLgorICovCitlbnVtIENlY01lc3NhZ2VUeXBlIDogaW50MzJfdCB7CisgICAgRkVBVFVSRV9BQk9SVCA9IDB4MDAsCisgICAgSU1BR0VfVklFV19PTiA9IDB4MDQsCisgICAgVFVORVJfU1RFUF9JTkNSRU1FTlQgPSAweDA1LAorICAgIFRVTkVSX1NURVBfREVDUkVNRU5UID0gMHgwNiwKKyAgICBUVU5FUl9ERVZJQ0VfU1RBVFVTID0gMHgwNywKKyAgICBHSVZFX1RVTkVSX0RFVklDRV9TVEFUVVMgPSAweDA4LAorICAgIFJFQ09SRF9PTiA9IDB4MDksCisgICAgUkVDT1JEX1NUQVRVUyA9IDB4MEEsCisgICAgUkVDT1JEX09GRiA9IDB4MEIsCisgICAgVEVYVF9WSUVXX09OID0gMHgwRCwKKyAgICBSRUNPUkRfVFZfU0NSRUVOID0gMHgwRiwKKyAgICBHSVZFX0RFQ0tfU1RBVFVTID0gMHgxQSwKKyAgICBERUNLX1NUQVRVUyA9IDB4MUIsCisgICAgU0VUX01FTlVfTEFOR1VBR0UgPSAweDMyLAorICAgIENMRUFSX0FOQUxPR19USU1FUiA9IDB4MzMsCisgICAgU0VUX0FOQUxPR19USU1FUiA9IDB4MzQsCisgICAgVElNRVJfU1RBVFVTID0gMHgzNSwKKyAgICBTVEFOREJZID0gMHgzNiwKKyAgICBQTEFZID0gMHg0MSwKKyAgICBERUNLX0NPTlRST0wgPSAweDQyLAorICAgIFRJTUVSX0NMRUFSRURfU1RBVFVTID0gMHg0MywKKyAgICBVU0VSX0NPTlRST0xfUFJFU1NFRCA9IDB4NDQsCisgICAgVVNFUl9DT05UUk9MX1JFTEVBU0VEID0gMHg0NSwKKyAgICBHSVZFX09TRF9OQU1FID0gMHg0NiwKKyAgICBTRVRfT1NEX05BTUUgPSAweDQ3LAorICAgIFNFVF9PU0RfU1RSSU5HID0gMHg2NCwKKyAgICBTRVRfVElNRVJfUFJPR1JBTV9USVRMRSA9IDB4NjcsCisgICAgU1lTVEVNX0FVRElPX01PREVfUkVRVUVTVCA9IDB4NzAsCisgICAgR0lWRV9BVURJT19TVEFUVVMgPSAweDcxLAorICAgIFNFVF9TWVNURU1fQVVESU9fTU9ERSA9IDB4NzIsCisgICAgUkVQT1JUX0FVRElPX1NUQVRVUyA9IDB4N0EsCisgICAgR0lWRV9TWVNURU1fQVVESU9fTU9ERV9TVEFUVVMgPSAweDdELAorICAgIFNZU1RFTV9BVURJT19NT0RFX1NUQVRVUyA9IDB4N0UsCisgICAgUk9VVElOR19DSEFOR0UgPSAweDgwLAorICAgIFJPVVRJTkdfSU5GT1JNQVRJT04gPSAweDgxLAorICAgIEFDVElWRV9TT1VSQ0UgPSAweDgyLAorICAgIEdJVkVfUEhZU0lDQUxfQUREUkVTUyA9IDB4ODMsCisgICAgUkVQT1JUX1BIWVNJQ0FMX0FERFJFU1MgPSAweDg0LAorICAgIFJFUVVFU1RfQUNUSVZFX1NPVVJDRSA9IDB4ODUsCisgICAgU0VUX1NUUkVBTV9QQVRIID0gMHg4NiwKKyAgICBERVZJQ0VfVkVORE9SX0lEID0gMHg4NywKKyAgICBWRU5ET1JfQ09NTUFORCA9IDB4ODksCisgICAgVkVORE9SX1JFTU9URV9CVVRUT05fRE9XTiA9IDB4OEEsCisgICAgVkVORE9SX1JFTU9URV9CVVRUT05fVVAgPSAweDhCLAorICAgIEdJVkVfREVWSUNFX1ZFTkRPUl9JRCA9IDB4OEMsCisgICAgTUVOVV9SRVFVRVNUID0gMHg4RCwKKyAgICBNRU5VX1NUQVRVUyA9IDB4OEUsCisgICAgR0lWRV9ERVZJQ0VfUE9XRVJfU1RBVFVTID0gMHg4RiwKKyAgICBSRVBPUlRfUE9XRVJfU1RBVFVTID0gMHg5MCwKKyAgICBHRVRfTUVOVV9MQU5HVUFHRSA9IDB4OTEsCisgICAgU0VMRUNUX0FOQUxPR19TRVJWSUNFID0gMHg5MiwKKyAgICBTRUxFQ1RfRElHSVRBTF9TRVJWSUNFID0gMHg5MywKKyAgICBTRVRfRElHSVRBTF9USU1FUiA9IDB4OTcsCisgICAgQ0xFQVJfRElHSVRBTF9USU1FUiA9IDB4OTksCisgICAgU0VUX0FVRElPX1JBVEUgPSAweDlBLAorICAgIElOQUNUSVZFX1NPVVJDRSA9IDB4OUQsCisgICAgQ0VDX1ZFUlNJT04gPSAweDlFLAorICAgIEdFVF9DRUNfVkVSU0lPTiA9IDB4OUYsCisgICAgVkVORE9SX0NPTU1BTkRfV0lUSF9JRCA9IDB4QTAsCisgICAgQ0xFQVJfRVhURVJOQUxfVElNRVIgPSAweEExLAorICAgIFNFVF9FWFRFUk5BTF9USU1FUiA9IDB4QTIsCisgICAgSU5JVElBVEVfQVJDID0gMHhDMCwKKyAgICBSRVBPUlRfQVJDX0lOSVRJQVRFRCA9IDB4QzEsCisgICAgUkVQT1JUX0FSQ19URVJNSU5BVEVEID0gMHhDMiwKKyAgICBSRVFVRVNUX0FSQ19JTklUSUFUSU9OID0gMHhDMywKKyAgICBSRVFVRVNUX0FSQ19URVJNSU5BVElPTiA9IDB4QzQsCisgICAgVEVSTUlOQVRFX0FSQyA9IDB4QzUsCisgICAgQUJPUlQgPSAweEZGLAorfTsKKworLyoqCisgKiBPcGVyYW5kIGRlc2NyaXB0aW9uIFtBYm9ydCBSZWFzb25dCisgKi8KK2VudW0gQWJvcnRSZWFzb24gOiBpbnQzMl90IHsKKyAgICBVTlJFQ09HTklaRURfTU9ERSA9IDAsCisgICAgTk9UX0lOX0NPUlJFQ1RfTU9ERSA9IDEsCisgICAgQ0FOTk9UX1BST1ZJREVfU09VUkNFID0gMiwKKyAgICBJTlZBTElEX09QRVJBTkQgPSAzLAorICAgIFJFRlVTRUQgPSA0LAorICAgIFVOQUJMRV9UT19ERVRFUk1JTkUgPSA1LAorfTsKKworZW51bSBSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTID0gMCwKKyAgICBGQUlMVVJFX1VOS05PV04gPSAxLAorICAgIEZBSUxVUkVfSU5WQUxJRF9BUkdTID0gMiwKKyAgICBGQUlMVVJFX0lOVkFMSURfU1RBVEUgPSAzLAorICAgIEZBSUxVUkVfTk9UX1NVUFBPUlRFRCA9IDQsCisgICAgRkFJTFVSRV9CVVNZID0gNSwKK307CisKKy8qKgorICogZXJyb3IgY29kZSB1c2VkIGZvciBzZW5kX21lc3NhZ2UuCisgKi8KK2VudW0gU2VuZE1lc3NhZ2VSZXN1bHQgOiBpbnQzMl90IHsKKyAgICBTVUNDRVNTID0gMCwKKyAgICBOQUNLID0gMSwgLy8gbm90IGFja25vd2xlZGdlZAorICAgIEJVU1kgPSAyLCAvLyBidXMgaXMgYnVzeQorICAgIEZBSUwgPSAzLAorfTsKKworLyoqCisgKiBIRE1JIHBvcnQgdHlwZS4KKyAqLworZW51bSBIZG1pUG9ydFR5cGUgOiBpbnQzMl90IHsKKyAgICBJTlBVVCA9IDAsCisgICAgT1VUUFVUID0gMSwKK307CisKKy8qKgorICogT3B0aW9ucyB1c2VkIGZvciBJSGRtaUNlYy5zZXRPcHRpb24oKQorICovCitlbnVtIE9wdGlvbktleSA6IGludDMyX3QgeworICAgIC8qKgorICAgICAqIFdoZW4gc2V0IHRvIGZhbHNlLCBIQUwgZG9lcyBub3Qgd2FrZSB1cCB0aGUgc3lzdGVtIHVwb24gcmVjZWl2aW5nIDxJbWFnZQorICAgICAqIFZpZXcgT24+IG9yIDxUZXh0IFZpZXcgT24+LiBVc2VkIHdoZW4gdXNlciBjaGFuZ2VzIHRoZSBUViBzZXR0aW5ncyB0bworICAgICAqIGRpc2FibGUgdGhlIGF1dG8gVFYgb24gZnVuY3Rpb25hbGl0eS4KKyAgICAgKiBUcnVlIGJ5IGRlZmF1bHQuCisgICAgICovCisgICAgV0FLRVVQID0gMSwKKworICAgIC8qKgorICAgICAqIFdoZW4gc2V0IHRvIGZhbHNlLCBhbGwgdGhlIENFQyBjb21tYW5kcyBhcmUgZGlzY2FyZGVkLiBVc2VkIHdoZW4gdXNlcgorICAgICAqIGNoYW5nZXMgdGhlIFRWIHNldHRpbmdzIHRvIGRpc2FibGUgQ0VDIGZ1bmN0aW9uYWxpdHkuCisgICAgICogVHJ1ZSBieSBkZWZhdWx0LgorICAgICAqLworICAgIEVOQUJMRV9DRUMgPSAyLAorCisgICAgLyoqCisgICAgICogU2V0dGluZyB0aGlzIGZsYWcgdG8gZmFsc2UgbWVhbnMgQW5kcm9pZCBzeXN0ZW0gbXVzdCBzdG9wIGhhbmRsaW5nIENFQworICAgICAqIHNlcnZpY2UgYW5kIHlpZWxkIHRoZSBjb250cm9sIG92ZXIgdG8gdGhlIG1pY3JvcHJvY2Vzc29yIHRoYXQgaXMgcG93ZXJlZAorICAgICAqIG9uIHRocm91Z2ggdGhlIHN0YW5kYnkgbW9kZS4gV2hlbiBzZXQgdG8gdHJ1ZSwgdGhlIHN5c3RlbSBtdXN0IGdhaW4gdGhlCisgICAgICogY29udHJvbCBvdmVyLCBoZW5jZSB0ZWxsaW5nIHRoZSBtaWNyb3Byb2Nlc3NvciB0byBzdG9wIGhhbmRsaW5nIHRoZSBDRUMKKyAgICAgKiBjb21tYW5kcy4gRm9yIGV4YW1wbGUsIHRoaXMgbWF5IGJlIGNhbGxlZCB3aGVuIHN5c3RlbSBnb2VzIGluIGFuZCBvdXQgb2YKKyAgICAgKiBzdGFuZGJ5IG1vZGUgdG8gbm90aWZ5IHRoZSBtaWNyb3Byb2Nlc3NvciB0aGF0IGl0IHNob3VsZCBzdGFydC9zdG9wCisgICAgICogaGFuZGxpbmcgQ0VDIGNvbW1hbmRzIG9uIGJlaGFsZiBvZiB0aGUgc3lzdGVtLgorICAgICAqIEZhbHNlIGJ5IGRlZmF1bHQuCisgICAgICovCisgICAgU1lTVEVNX0NFQ19DT05UUk9MID0gMywKKworICAgIC8qKiBPcHRpb24gNCBub3QgdXNlZCAqLworfTsKKworc3RydWN0IENlY01lc3NhZ2UgeworICAgIC8qKiBsb2dpY2FsIGFkZHJlc3Mgb2Ygc2VuZGVyICovCisgICAgQ2VjTG9naWNhbEFkZHJlc3MgaW5pdGlhdG9yOworCisgICAgLyoqIGxvZ2ljYWwgYWRkcmVzcyBvZiByZWNlaXZlciAqLworICAgIENlY0xvZ2ljYWxBZGRyZXNzIGRlc3RpbmF0aW9uOworCisgICAgLyoqCisgICAgICogVGhlIG1heGltdW0gc2l6ZSBvZiBib2R5IGlzIDE1IChNYXhMZW5ndGg6Ok1FU1NBR0VfQk9EWSkgYXMgc3BlY2lmaWVkIGluCisgICAgICogdGhlIHNlY3Rpb24gNiBvZiB0aGUgQ0VDIFNwZWMgMS40Yi4gT3ZlcmZsb3dlZCBkYXRhIG11c3QgYmUgaWdub3JlZC4gKi8KKyAgICB2ZWM8dWludDhfdD4gYm9keTsKK307CisKK3N0cnVjdCBIb3RwbHVnRXZlbnQgeworICAgIGJvb2wgY29ubmVjdGVkOworICAgIHVpbnQzMl90IHBvcnRJZDsKK307CisKKy8qKgorICogSERNSSBwb3J0IGRlc2NyaXB0b3IKKyAqLworc3RydWN0IEhkbWlQb3J0SW5mbyB7CisgICAgSGRtaVBvcnRUeXBlIHR5cGU7CisgICAgdWludDMyX3QgcG9ydElkOyAvLyBTaG91bGQgc3RhcnQgZnJvbSAxIHdoaWNoIGNvcnJlc3BvbmRzIHRvIEhETUkgInBvcnQgMSIuCisgICAgYm9vbCBjZWNTdXBwb3J0ZWQ7CisgICAgYm9vbCBhcmNTdXBwb3J0ZWQ7CisgICAgdWludDE2X3QgcGh5c2ljYWxBZGRyZXNzOworfTsKZGlmZiAtLWdpdCBhL3R2L2NlYy9BbmRyb2lkLm1rIGIvdHYvY2VjL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjllMzI3NgotLS0gL2Rldi9udWxsCisrKyBiL3R2L2NlYy9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisjIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyMgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworaW5jbHVkZSAkKGNhbGwgYWxsLXN1YmRpci1tYWtlZmlsZXMpCmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvQW5kcm9pZC5icCBiL3R2L2lucHV0LzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzZjhjOTQKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvQW5kcm9pZC5icApAQCAtMCwwICsxLDcyIEBACisvLyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK2ZpbGVncm91cCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2hhbCIsCisgICAgc3JjczogWworICAgICAgICAidHlwZXMuaGFsIiwKKyAgICAgICAgIklUdklucHV0LmhhbCIsCisgICAgICAgICJJVHZJbnB1dENhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvVHZJbnB1dEFsbC5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvVHZJbnB1dENhbGxiYWNrQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0lUdklucHV0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvSUh3VHZJbnB1dC5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0JuSHdUdklucHV0LmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvQnBId1R2SW5wdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9Cc1R2SW5wdXQuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9JVHZJbnB1dENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvSUh3VHZJbnB1dENhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvQm5Id1R2SW5wdXRDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0JwSHdUdklucHV0Q2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9Cc1R2SW5wdXRDYWxsYmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9BbmRyb2lkLm1rIGIvdHYvaW5wdXQvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWExY2Y3MAotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsNDEgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXQtVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC9WMV8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVHZJbnB1dC5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVHZJbnB1dENhbGxiYWNrLmhhbAorCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEtY29uc3RhbnRzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL0lUdklucHV0LmhhbCBiL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVhZmYyMQotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oYWwKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjA7CisKK2ltcG9ydCBJVHZJbnB1dENhbGxiYWNrOworCitpbnRlcmZhY2UgSVR2SW5wdXQgeworICAgIC8qKgorICAgICAqIFNldHMgYSBjYWxsYmFjayBmb3IgZXZlbnRzLgorICAgICAqCisgICAgICogTm90ZSB0aGF0IGluaXRpYWxseSBubyBkZXZpY2UgaXMgYXZhaWxhYmxlIGluIHRoZSBjbGllbnQgc2lkZSwgc28gdGhlCisgICAgICogaW1wbGVtZW50YXRpb24gbXVzdCBub3RpZnkgYWxsIHRoZSBjdXJyZW50bHkgYXZhaWxhYmxlIGRldmljZXMgaW5jbHVkaW5nCisgICAgICogc3RhdGljIGRldmljZXMgdmlhIGNhbGxiYWNrIG9uY2UgY2FsbGJhY2sgaXMgc2V0LgorICAgICAqCisgICAgICogQHBhcmFtIGNhbGxiYWNrIENhbGxiYWNrIG9iamVjdCB0byBwYXNzIGV2ZW50cy4KKyAgICAgKi8KKyAgICBAZW50cnkKKyAgICBAZXhpdAorICAgIEBjYWxsZmxvdyhuZXh0PXsiZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMifSkKKyAgICBzZXRDYWxsYmFjayhJVHZJbnB1dENhbGxiYWNrIGNhbGxiYWNrKTsKKworICAgIC8qKgorICAgICAqIEdldHMgc3RyZWFtIGNvbmZpZ3VyYXRpb25zIGZvciBhIHNwZWNpZmljIGRldmljZS4KKyAgICAgKgorICAgICAqIFRoZSBjb25maWdzIG9iamVjdCBpcyB2YWxpZCBvbmx5IHVudGlsIHRoZSBuZXh0CisgICAgICogU1RSRUFNX0NPTkZJR1VSQVRJT05TX0NIQU5HRUQgZXZlbnQuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgRGV2aWNlIElEIGZvciB0aGUgY29uZmlndXJhdGlvbnMuCisgICAgICogQHJldHVybiByZXN1bHQgT0sgdXBvbiBzdWNjZXNzLiBPdGhlcndpc2UsCisgICAgICogICAgICAgICBJTlZBTElEX0FSR1VNRU5UUyBpZiB0aGUgZ2l2ZW4gZGV2aWNlIElEIGlzIG5vdCB2YWxpZC4KKyAgICAgKiBAcmV0dXJuIGNvbmZpZ3VyYXRpb25zIEFuIGFycmF5IG9mIGF2YWlsYWJsZSBjb25maWd1cmF0aW9ucy4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17Im9wZW5TdHJlYW0iLCAiZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMiLCAiY2xvc2VTdHJlYW0ifSkKKyAgICBnZXRTdHJlYW1Db25maWd1cmF0aW9ucyhpbnQzMl90IGRldmljZUlkKQorICAgICAgICAgICAgZ2VuZXJhdGVzIChSZXN1bHQgcmVzdWx0LCB2ZWM8VHZTdHJlYW1Db25maWc+IGNvbmZpZ3VyYXRpb25zKTsKKworICAgIC8qKgorICAgICAqIE9wZW5zIGEgc3BlY2lmaWMgc3RyZWFtIGluIGEgZGV2aWNlLgorICAgICAqCisgICAgICogQHBhcmFtIGRldmljZUlkIERldmljZSBJRCBmb3IgdGhlIHN0ZWFtIHRvIG9wZW4uCisgICAgICogQHBhcmFtIHN0cmVhbUlkIFN0ZWFtIElEIGZvciB0aGUgc3RlYW0gdG8gb3Blbi4gTXVzdCBiZSBvbmUgb2YgdGhlCisgICAgICogICAgICAgICBzdHJlYW0gSURzIHJldHVybmVkIGZyb20gZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMoKS4KKyAgICAgKiBAcmV0dXJuIHJlc3VsdCBPSyB1cG9uIHN1Y2Nlc3MuIE90aGVyd2lzZSwKKyAgICAgKiAgICAgICAgIElOVkFMSURfQVJHVU1FTlRTIGlmIGFueSBvZiBnaXZlbiBJRHMgYXJlIG5vdCB2YWxpZDsKKyAgICAgKiAgICAgICAgIElOVkFMSURfU1RBVEUgaWYgdGhlIHN0cmVhbSB3aXRoIHRoZSBnaXZlbiBJRCBpcyBhbHJlYWR5IG9wZW47CisgICAgICogICAgICAgICBOT19SRVNPVVJDRSBpZiB0aGUgY2xpZW50IG11c3QgY2xvc2Ugb3RoZXIgc3RyZWFtcyB0byBvcGVuIHRoZQorICAgICAqICAgICAgICAgICAgICAgICBzdHJlYW0uCisgICAgICogQHJldHVybiBzaWRlYmFuZFN0cmVhbSBoYW5kbGUgZm9yIHNpZGViYW5kIHN0cmVhbS4KKyAgICAgKi8KKyAgICBAY2FsbGZsb3cobmV4dD17ImNsb3NlU3RyZWFtIiwgImdldFN0cmVhbUNvbmZpZ3VyYXRpb25zIiwgIm9wZW5TdHJlYW0ifSkKKyAgICBvcGVuU3RyZWFtKGludDMyX3QgZGV2aWNlSWQsIGludDMyX3Qgc3RyZWFtSWQpCisgICAgICAgICAgICBnZW5lcmF0ZXMgKFJlc3VsdCByZXN1bHQsIGhhbmRsZSBzaWRlYmFuZFN0cmVhbSk7CisKKyAgICAvKioKKyAgICAgKiBDbG9zZXMgYSBzcGVjaWZpYyBzdHJlYW0gaW4gYSBkZXZpY2UuCisgICAgICoKKyAgICAgKiBAcGFyYW0gZGV2aWNlSWQgRGV2aWNlIElEIGZvciB0aGUgc3RlYW0gdG8gb3Blbi4KKyAgICAgKiBAcGFyYW0gc3RyZWFtSWQgU3RlYW0gSUQgZm9yIHRoZSBzdGVhbSB0byBvcGVuLgorICAgICAqIEByZXR1cm4gcmVzdWx0IE9LIHVwb24gc3VjY2Vzcy4gT3RoZXJ3aXNlLAorICAgICAqICAgICAgICAgSU5WQUxJRF9BUkdVTUVOVFMgaWYgYW55IG9mIGdpdmVuIElEcyBhcmUgbm90IHZhbGlkOworICAgICAqICAgICAgICAgSU5WQUxJRF9TVEFURSBpZiB0aGUgc3RyZWFtIHdpdGggdGhlIGdpdmVuIElEIGlzIG5vdCBvcGVuLgorICAgICAqLworICAgIEBjYWxsZmxvdyhuZXh0PXsiZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnMiLCAib3BlblN0cmVhbSIsICJjbG9zZVN0cmVhbSJ9KQorICAgIGNsb3NlU3RyZWFtKGludDMyX3QgZGV2aWNlSWQsIGludDMyX3Qgc3RyZWFtSWQpIGdlbmVyYXRlcyAoUmVzdWx0IHJlc3VsdCk7Cit9OwpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL0lUdklucHV0Q2FsbGJhY2suaGFsIGIvdHYvaW5wdXQvMS4wL0lUdklucHV0Q2FsbGJhY2suaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkODhjNWIKLS0tIC9kZXYvbnVsbAorKysgYi90di9pbnB1dC8xLjAvSVR2SW5wdXRDYWxsYmFjay5oYWwKQEAgLTAsMCArMSwyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjA7CisKK2ludGVyZmFjZSBJVHZJbnB1dENhbGxiYWNrIHsKKyAgICAvKioKKyAgICAgKiBOb3RpZmllcyB0aGUgY2xpZW50IHRoYXQgYW4gZXZlbnQgaGFzIG9jY3VyZWQuIEZvciBwb3NzaWJsZSBldmVudCB0eXBlcywKKyAgICAgKiBjaGVjayBUdklucHV0RXZlbnRUeXBlLgorICAgICAqCisgICAgICogQHBhcmFtIGV2ZW50IEV2ZW50IHBhc3NlZCB0byB0aGUgY2xpZW50LgorIMKgwqDCoMKgKi8KKyAgICBub3RpZnkoVHZJbnB1dEV2ZW50IGV2ZW50KTsKK307CmRpZmYgLS1naXQgYS90di9pbnB1dC8xLjAvZGVmYXVsdC9BbmRyb2lkLm1rIGIvdHYvaW5wdXQvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTBkYTg2Ci0tLSAvZGV2L251bGwKKysrIGIvdHYvaW5wdXQvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDQ2IEBACitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wLWltcGwKK0xPQ0FMX1BST1BSSUVUQVJZX01PRFVMRSA6PSB0cnVlCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfU1JDX0ZJTEVTIDo9IFwKKyAgICBUdklucHV0LmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmJhc2UgXAorICAgIGxpYmxvZyBcCisgICAgbGliaGFyZHdhcmUgXAorICAgIGxpYmhpZGxiYXNlIFwKKyAgICBsaWJoaWRsdHJhbnNwb3J0IFwKKyAgICBsaWJ1dGlscyBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMCBcCisKK2luY2x1ZGUgJChCVUlMRF9TSEFSRURfTElCUkFSWSkKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEVfUkVMQVRJVkVfUEFUSCA6PSBodworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wLXNlcnZpY2UucmMKK0xPQ0FMX1NSQ19GSUxFUyA6PSBcCisgICAgc2VydmljZS5jcHAgXAorCitMT0NBTF9TSEFSRURfTElCUkFSSUVTIDo9IFwKKyAgICBsaWJsb2cgXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliZGwgXAorICAgIGxpYmJhc2UgXAorICAgIGxpYnV0aWxzIFwKKyAgICBsaWJoYXJkd2FyZV9sZWdhY3kgXAorICAgIGxpYmhhcmR3YXJlIFwKKworTE9DQUxfU0hBUkVEX0xJQlJBUklFUyArPSBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uY29tbW9uQDIuMCBcCisgICAgYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKKwpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL2RlZmF1bHQvVHZJbnB1dC5jcHAgYi90di9pbnB1dC8xLjAvZGVmYXVsdC9UdklucHV0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWExZGVjCi0tLSAvZGV2L251bGwKKysrIGIvdHYvaW5wdXQvMS4wL2RlZmF1bHQvVHZJbnB1dC5jcHAKQEAgLTAsMCArMSwyMjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wLXNlcnZpY2UiCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKworI2luY2x1ZGUgIlR2SW5wdXQuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB0diB7CituYW1lc3BhY2UgaW5wdXQgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX09USEVSX0hBUkRXQVJFID09IHN0YXRpY19jYXN0PGludD4oVHZJbnB1dFR5cGU6Ok9USEVSKSwKKyAgICAgICAgIlR2SW5wdXRUeXBlOjpPVEhFUiBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9UVU5FUiA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpUVU5FUiksCisgICAgICAgICJUdklucHV0VHlwZTo6VFVORVIgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX1RZUEVfQ09NUE9TSVRFID09IHN0YXRpY19jYXN0PGludD4oVHZJbnB1dFR5cGU6OkNPTVBPU0lURSksCisgICAgICAgICJUdklucHV0VHlwZTo6Q09NUE9TSVRFIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX1NWSURFTyA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpTVklERU8pLAorICAgICAgICAiVHZJbnB1dFR5cGU6OlNWSURFTyBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9TQ0FSVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpTQ0FSVCksCisgICAgICAgICJUdklucHV0VHlwZTo6U0NBUlQgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX1RZUEVfQ09NUE9ORU5UID09IHN0YXRpY19jYXN0PGludD4oVHZJbnB1dFR5cGU6OkNPTVBPTkVOVCksCisgICAgICAgICJUdklucHV0VHlwZTo6Q09NUE9ORU5UIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX1ZHQSA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpWR0EpLAorICAgICAgICAiVHZJbnB1dFR5cGU6OlZHQSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfVFlQRV9EVkkgPT0gc3RhdGljX2Nhc3Q8aW50PihUdklucHV0VHlwZTo6RFZJKSwKKyAgICAgICAgIlR2SW5wdXRUeXBlOjpEVkkgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX1RZUEVfSERNSSA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpIRE1JKSwKKyAgICAgICAgIlR2SW5wdXRUeXBlOjpIRE1JIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9UWVBFX0RJU1BMQVlfUE9SVCA9PSBzdGF0aWNfY2FzdDxpbnQ+KFR2SW5wdXRUeXBlOjpESVNQTEFZX1BPUlQpLAorICAgICAgICAiVHZJbnB1dFR5cGU6OkRJU1BMQVlfUE9SVCBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKKworc3RhdGljX2Fzc2VydChUVl9JTlBVVF9FVkVOVF9ERVZJQ0VfQVZBSUxBQkxFID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIFR2SW5wdXRFdmVudFR5cGU6OkRFVklDRV9BVkFJTEFCTEUpLAorICAgICAgICAiVHZJbnB1dEV2ZW50VHlwZTo6REVWSUNFX0FWQUlMQUJMRSBtdXN0IG1hdGNoIGxlZ2FjeSB2YWx1ZS4iKTsKK3N0YXRpY19hc3NlcnQoVFZfSU5QVVRfRVZFTlRfREVWSUNFX1VOQVZBSUxBQkxFID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIFR2SW5wdXRFdmVudFR5cGU6OkRFVklDRV9VTkFWQUlMQUJMRSksCisgICAgICAgICJUdklucHV0RXZlbnRUeXBlOjpERVZJQ0VfVU5BVkFJTEFCTEUgbXVzdCBtYXRjaCBsZWdhY3kgdmFsdWUuIik7CitzdGF0aWNfYXNzZXJ0KFRWX0lOUFVUX0VWRU5UX1NUUkVBTV9DT05GSUdVUkFUSU9OU19DSEFOR0VEID09IHN0YXRpY19jYXN0PGludD4oCisgICAgICAgIFR2SW5wdXRFdmVudFR5cGU6OlNUUkVBTV9DT05GSUdVUkFUSU9OU19DSEFOR0VEKSwKKyAgICAgICAgIlR2SW5wdXRFdmVudFR5cGU6OlNUUkVBTV9DT05GSUdVUkFUSU9OU19DSEFOR0VEIG11c3QgbWF0Y2ggbGVnYWN5IHZhbHVlLiIpOworCitzcDxJVHZJbnB1dENhbGxiYWNrPiBUdklucHV0OjptQ2FsbGJhY2sgPSBudWxscHRyOworCitUdklucHV0OjpUdklucHV0KHR2X2lucHV0X2RldmljZV90KiBkZXZpY2UpIDogbURldmljZShkZXZpY2UpIHsKKyAgICBtQ2FsbGJhY2tPcHMubm90aWZ5ID0gJlR2SW5wdXQ6Om5vdGlmeTsKK30KKworVHZJbnB1dDo6flR2SW5wdXQoKSB7CisgICAgaWYgKG1EZXZpY2UgIT0gbnVsbHB0cikgeworICAgICAgICBmcmVlKG1EZXZpY2UpOworICAgIH0KK30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2X2lucHV0OjpWMV8wOjpJVHZJbnB1dCBmb2xsb3cuCitSZXR1cm48dm9pZD4gVHZJbnB1dDo6c2V0Q2FsbGJhY2soY29uc3Qgc3A8SVR2SW5wdXRDYWxsYmFjaz4mIGNhbGxiYWNrKSAgeworICAgIG1DYWxsYmFjayA9IGNhbGxiYWNrOworICAgIGlmIChtQ2FsbGJhY2sgIT0gbnVsbHB0cikgeworICAgICAgICBtRGV2aWNlLT5pbml0aWFsaXplKG1EZXZpY2UsICZtQ2FsbGJhY2tPcHMsIG51bGxwdHIpOworICAgIH0KKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gVHZJbnB1dDo6Z2V0U3RyZWFtQ29uZmlndXJhdGlvbnMoaW50MzJfdCBkZXZpY2VJZCwgZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnNfY2IgY2IpICB7CisgICAgaW50MzJfdCBjb25maWdDb3VudCA9IDA7CisgICAgY29uc3QgdHZfc3RyZWFtX2NvbmZpZ190KiBjb25maWdzID0gbnVsbHB0cjsKKyAgICBpbnQgcmV0ID0gbURldmljZS0+Z2V0X3N0cmVhbV9jb25maWd1cmF0aW9ucyhtRGV2aWNlLCBkZXZpY2VJZCwgJmNvbmZpZ0NvdW50LCAmY29uZmlncyk7CisgICAgUmVzdWx0IHJlcyA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgICBoaWRsX3ZlYzxUdlN0cmVhbUNvbmZpZz4gdHZTdHJlYW1Db25maWdzOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXMgPSBSZXN1bHQ6Ok9LOworICAgICAgICB0dlN0cmVhbUNvbmZpZ3MucmVzaXplKGdldFN1cHBvcnRlZENvbmZpZ0NvdW50KGNvbmZpZ0NvdW50LCBjb25maWdzKSk7CisgICAgICAgIGludDMyX3QgcG9zID0gMDsKKyAgICAgICAgZm9yIChpbnQzMl90IGkgPSAwOyBpIDwgY29uZmlnQ291bnQ7ICsraSkgeworICAgICAgICAgICAgaWYgKGlzU3VwcG9ydGVkU3RyZWFtVHlwZShjb25maWdzW2ldLnR5cGUpKSB7CisgICAgICAgICAgICAgICAgdHZTdHJlYW1Db25maWdzW3Bvc10uc3RyZWFtSWQgPSBjb25maWdzW2ldLnN0cmVhbV9pZDsKKyAgICAgICAgICAgICAgICB0dlN0cmVhbUNvbmZpZ3NbcG9zXS5tYXhWaWRlb1dpZHRoID0gY29uZmlnc1tpXS5tYXhfdmlkZW9fd2lkdGg7CisgICAgICAgICAgICAgICAgdHZTdHJlYW1Db25maWdzW3Bvc10ubWF4VmlkZW9IZWlnaHQgPSBjb25maWdzW2ldLm1heF92aWRlb19oZWlnaHQ7CisgICAgICAgICAgICAgICAgKytwb3M7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKHJldCA9PSAtRUlOVkFMKSB7CisgICAgICAgIHJlcyA9IFJlc3VsdDo6SU5WQUxJRF9BUkdVTUVOVFM7CisgICAgfQorICAgIGNiKHJlcywgdHZTdHJlYW1Db25maWdzKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gVHZJbnB1dDo6b3BlblN0cmVhbShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IHN0cmVhbUlkLCBvcGVuU3RyZWFtX2NiIGNiKSAgeworICAgIHR2X3N0cmVhbV90IHN0cmVhbTsKKyAgICBzdHJlYW0uc3RyZWFtX2lkID0gc3RyZWFtSWQ7CisgICAgaW50IHJldCA9IG1EZXZpY2UtPm9wZW5fc3RyZWFtKG1EZXZpY2UsIGRldmljZUlkLCAmc3RyZWFtKTsKKyAgICBSZXN1bHQgcmVzID0gUmVzdWx0OjpVTktOT1dOOworICAgIG5hdGl2ZV9oYW5kbGVfdCogc2lkZWJhbmRTdHJlYW0gPSBudWxscHRyOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICBpZiAoaXNTdXBwb3J0ZWRTdHJlYW1UeXBlKHN0cmVhbS50eXBlKSkgeworICAgICAgICAgICAgcmVzID0gUmVzdWx0OjpPSzsKKyAgICAgICAgICAgIHNpZGViYW5kU3RyZWFtID0gc3RyZWFtLnNpZGViYW5kX3N0cmVhbV9zb3VyY2VfaGFuZGxlOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHJldCA9PSAtRUJVU1kpIHsKKyAgICAgICAgICAgIHJlcyA9IFJlc3VsdDo6Tk9fUkVTT1VSQ0U7CisgICAgICAgIH0gZWxzZSBpZiAocmV0ID09IC1FRVhJU1QpIHsKKyAgICAgICAgICAgIHJlcyA9IFJlc3VsdDo6SU5WQUxJRF9TVEFURTsKKyAgICAgICAgfSBlbHNlIGlmIChyZXQgPT0gLUVJTlZBTCkgeworICAgICAgICAgICAgcmVzID0gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICAgICAgfQorICAgIH0KKyAgICBjYihyZXMsIHNpZGViYW5kU3RyZWFtKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48UmVzdWx0PiBUdklucHV0OjpjbG9zZVN0cmVhbShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IHN0cmVhbUlkKSAgeworICAgIGludCByZXQgPSBtRGV2aWNlLT5jbG9zZV9zdHJlYW0obURldmljZSwgZGV2aWNlSWQsIHN0cmVhbUlkKTsKKyAgICBSZXN1bHQgcmVzID0gUmVzdWx0OjpVTktOT1dOOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXMgPSBSZXN1bHQ6Ok9LOworICAgIH0gZWxzZSBpZiAocmV0ID09IC1FTk9FTlQpIHsKKyAgICAgICAgcmVzID0gUmVzdWx0OjpJTlZBTElEX1NUQVRFOworICAgIH0gZWxzZSBpZiAocmV0ID09IC1FSU5WQUwpIHsKKyAgICAgICAgcmVzID0gUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUzsKKyAgICB9CisgICAgcmV0dXJuIHJlczsKK30KKworLy8gc3RhdGljCit2b2lkIFR2SW5wdXQ6Om5vdGlmeShzdHJ1Y3QgdHZfaW5wdXRfZGV2aWNlKiBfX3VudXNlZCwgdHZfaW5wdXRfZXZlbnRfdCogZXZlbnQsCisgICAgICAgIHZvaWQqIF9fdW51c2VkKSB7CisgICAgaWYgKG1DYWxsYmFjayAhPSBudWxscHRyICYmIGV2ZW50ICE9IG51bGxwdHIpIHsKKyAgICAgICAgLy8gQ2FwdHVyaW5nIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICAgICAgIGlmIChldmVudC0+dHlwZSA+PSBUVl9JTlBVVF9FVkVOVF9DQVBUVVJFX1NVQ0NFRURFRCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIFR2SW5wdXRFdmVudCB0dklucHV0RXZlbnQ7CisgICAgICAgIHR2SW5wdXRFdmVudC50eXBlID0gc3RhdGljX2Nhc3Q8VHZJbnB1dEV2ZW50VHlwZT4oZXZlbnQtPnR5cGUpOworICAgICAgICB0dklucHV0RXZlbnQuZGV2aWNlSW5mby5kZXZpY2VJZCA9IGV2ZW50LT5kZXZpY2VfaW5mby5kZXZpY2VfaWQ7CisgICAgICAgIHR2SW5wdXRFdmVudC5kZXZpY2VJbmZvLnR5cGUgPSBzdGF0aWNfY2FzdDxUdklucHV0VHlwZT4oCisgICAgICAgICAgICAgICAgZXZlbnQtPmRldmljZV9pbmZvLnR5cGUpOworICAgICAgICB0dklucHV0RXZlbnQuZGV2aWNlSW5mby5wb3J0SWQgPSBldmVudC0+ZGV2aWNlX2luZm8uaGRtaS5wb3J0X2lkOworICAgICAgICB0dklucHV0RXZlbnQuZGV2aWNlSW5mby5jYWJsZUNvbm5lY3Rpb25TdGF0dXMgPSBDYWJsZUNvbm5lY3Rpb25TdGF0dXM6OlVOS05PV047CisgICAgICAgIC8vIFRPRE86IEVuc3VyZSB0aGUgbGVnYWN5IGF1ZGlvIHR5cGUgY29kZSBpcyB0aGUgc2FtZSBvbmNlIGF1ZGlvIEhBTCBkZWZhdWx0CisgICAgICAgIC8vIGltcGxlbWVudGF0aW9uIGlzIHJlYWR5LgorICAgICAgICB0dklucHV0RXZlbnQuZGV2aWNlSW5mby5hdWRpb1R5cGUgPSBzdGF0aWNfY2FzdDxBdWRpb0RldmljZT4oCisgICAgICAgICAgICAgICAgZXZlbnQtPmRldmljZV9pbmZvLmF1ZGlvX3R5cGUpOworICAgICAgICBtZW1zZXQodHZJbnB1dEV2ZW50LmRldmljZUluZm8uYXVkaW9BZGRyZXNzLmRhdGEoKSwgMCwKKyAgICAgICAgICAgICAgICB0dklucHV0RXZlbnQuZGV2aWNlSW5mby5hdWRpb0FkZHJlc3Muc2l6ZSgpKTsKKyAgICAgICAgY29uc3QgY2hhciogYWRkcmVzcyA9IGV2ZW50LT5kZXZpY2VfaW5mby5hdWRpb19hZGRyZXNzOworICAgICAgICBpZiAoYWRkcmVzcyAhPSBudWxscHRyKSB7CisgICAgICAgICAgICBzaXplX3Qgc2l6ZSA9IHN0cmxlbihhZGRyZXNzKTsKKyAgICAgICAgICAgIGlmIChzaXplID4gdHZJbnB1dEV2ZW50LmRldmljZUluZm8uYXVkaW9BZGRyZXNzLnNpemUoKSkgeworICAgICAgICAgICAgICAgIExPRyhFUlJPUikgPDwgIkF1ZGlvIGFkZHJlc3MgaXMgdG9vIGxvbmcuIEFkZHJlc3M6IiA8PCBhZGRyZXNzIDw8ICIiOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgICAgICAgICAgdHZJbnB1dEV2ZW50LmRldmljZUluZm8uYXVkaW9BZGRyZXNzW2ldID0KKyAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDhfdD4oZXZlbnQtPmRldmljZV9pbmZvLmF1ZGlvX2FkZHJlc3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1DYWxsYmFjay0+bm90aWZ5KHR2SW5wdXRFdmVudCk7CisgICAgfQorfQorCisvLyBzdGF0aWMKK3VpbnQzMl90IFR2SW5wdXQ6OmdldFN1cHBvcnRlZENvbmZpZ0NvdW50KHVpbnQzMl90IGNvbmZpZ0NvdW50LAorICAgICAgICBjb25zdCB0dl9zdHJlYW1fY29uZmlnX3QqIGNvbmZpZ3MpIHsKKyAgICB1aW50MzJfdCBzdXBwb3J0ZWRDb25maWdDb3VudCA9IDA7CisgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvbmZpZ0NvdW50OyArK2kpIHsKKyAgICAgICAgaWYgKGlzU3VwcG9ydGVkU3RyZWFtVHlwZShjb25maWdzW2ldLnR5cGUpKSB7CisgICAgICAgICAgICBzdXBwb3J0ZWRDb25maWdDb3VudCsrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBzdXBwb3J0ZWRDb25maWdDb3VudDsKK30KKworLy8gc3RhdGljCitib29sIFR2SW5wdXQ6OmlzU3VwcG9ydGVkU3RyZWFtVHlwZShpbnQgdHlwZSkgeworICAgIC8vIEJ1ZmZlciBwcm9kdWNlciB0eXBlIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuCisgICAgcmV0dXJuIHR5cGUgIT0gVFZfU1RSRUFNX1RZUEVfQlVGRkVSX1BST0RVQ0VSOworfQorCitJVHZJbnB1dCogSElETF9GRVRDSF9JVHZJbnB1dChjb25zdCBjaGFyKiAvKiBuYW1lICovKSB7CisgICAgaW50IHJldCA9IDA7CisgICAgY29uc3QgaHdfbW9kdWxlX3QqIGh3X21vZHVsZSA9IG51bGxwdHI7CisgICAgdHZfaW5wdXRfZGV2aWNlX3QqIGlucHV0X2RldmljZTsKKyAgICByZXQgPSBod19nZXRfbW9kdWxlKFRWX0lOUFVUX0hBUkRXQVJFX01PRFVMRV9JRCwgJmh3X21vZHVsZSk7CisgICAgaWYgKHJldCA9PSAwICYmIGh3X21vZHVsZS0+bWV0aG9kcy0+b3BlbiAhPSBudWxscHRyKSB7CisgICAgICAgIHJldCA9IGh3X21vZHVsZS0+bWV0aG9kcy0+b3Blbihod19tb2R1bGUsIFRWX0lOUFVUX0RFRkFVTFRfREVWSUNFLAorICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8aHdfZGV2aWNlX3QqKj4oJmlucHV0X2RldmljZSkpOworICAgICAgICBpZiAocmV0ID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgVHZJbnB1dChpbnB1dF9kZXZpY2UpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgTE9HKEVSUk9SKSA8PCAiUGFzc3Rocm91Z2ggZmFpbGVkIHRvIGxvYWQgbGVnYWN5IEhBTC4iOworICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIExPRyhFUlJPUikgPDwgImh3X2dldF9tb2R1bGUgIiA8PCBUVl9JTlBVVF9IQVJEV0FSRV9NT0RVTEVfSUQKKyAgICAgICAgICAgICAgICAgICA8PCAiIGZhaWxlZDogIiA8PCByZXQ7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KK30KKworfSAgLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIGlucHV0Cit9ICAvLyBuYW1lc3BhY2UgdHYKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9kZWZhdWx0L1R2SW5wdXQuaCBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L1R2SW5wdXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWI2OWY1Ci0tLSAvZGV2L251bGwKKysrIGIvdHYvaW5wdXQvMS4wL2RlZmF1bHQvVHZJbnB1dC5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2lmbmRlZiBBTkRST0lEX0hBUkRXQVJFX1RWX0lOUFVUX1YxXzBfVFZJTlBVVF9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfVFZfSU5QVVRfVjFfMF9UVklOUFVUX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0lUdklucHV0Lmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS90dl9pbnB1dC5oPgorCisjaW5jbHVkZSA8aGlkbC9NUURlc2NyaXB0b3IuaD4KKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB0diB7CituYW1lc3BhY2UgaW5wdXQgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6YXVkaW86OmNvbW1vbjo6VjJfMDo6QXVkaW9EZXZpY2U7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OklUdklucHV0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpJVHZJbnB1dENhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpSZXN1bHQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OlR2SW5wdXRFdmVudDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6VHZTdHJlYW1Db25maWc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3N0cmluZzsKK3VzaW5nIDo6YW5kcm9pZDo6c3A7CisKK3N0cnVjdCBUdklucHV0IDogcHVibGljIElUdklucHV0IHsKKyAgICBUdklucHV0KHR2X2lucHV0X2RldmljZV90KiBkZXZpY2UpOworICAgIH5UdklucHV0KCk7CisgICAgUmV0dXJuPHZvaWQ+IHNldENhbGxiYWNrKGNvbnN0IHNwPElUdklucHV0Q2FsbGJhY2s+JiBjYWxsYmFjaykgIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBnZXRTdHJlYW1Db25maWd1cmF0aW9ucyhpbnQzMl90IGRldmljZUlkLAorICAgICAgICAgICAgZ2V0U3RyZWFtQ29uZmlndXJhdGlvbnNfY2IgX2hpZGxfY2IpICBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gb3BlblN0cmVhbShpbnQzMl90IGRldmljZUlkLCBpbnQzMl90IHN0cmVhbUlkLAorICAgICAgICAgICAgb3BlblN0cmVhbV9jYiBfaGlkbF9jYikgIG92ZXJyaWRlOworICAgIFJldHVybjxSZXN1bHQ+IGNsb3NlU3RyZWFtKGludDMyX3QgZGV2aWNlSWQsIGludDMyX3Qgc3RyZWFtSWQpICBvdmVycmlkZTsKKworICAgIHN0YXRpYyB2b2lkIG5vdGlmeShzdHJ1Y3QgdHZfaW5wdXRfZGV2aWNlKiBfX3VudXNlZCwgdHZfaW5wdXRfZXZlbnRfdCogZXZlbnQsCisgICAgICAgICAgICB2b2lkKiBfX3VudXNlZCk7CisgICAgc3RhdGljIHVpbnQzMl90IGdldFN1cHBvcnRlZENvbmZpZ0NvdW50KHVpbnQzMl90IGNvbmZpZ0NvdW50LAorICAgICAgICAgICAgY29uc3QgdHZfc3RyZWFtX2NvbmZpZ190KiBjb25maWdzKTsKKyAgICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZFN0cmVhbVR5cGUoaW50IHR5cGUpOworCisgICAgcHJpdmF0ZToKKyAgICBzdGF0aWMgc3A8SVR2SW5wdXRDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgIHR2X2lucHV0X2NhbGxiYWNrX29wc190IG1DYWxsYmFja09wczsKKyAgICB0dl9pbnB1dF9kZXZpY2VfdCogbURldmljZTsKK307CisKK2V4dGVybiAiQyIgSVR2SW5wdXQqIEhJRExfRkVUQ0hfSVR2SW5wdXQoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSBpbnB1dAorfSAgLy8gbmFtZXNwYWNlIHR2Cit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCisKKyNlbmRpZiAgLy8gQU5EUk9JRF9IQVJEV0FSRV9UVl9JTlBVVF9WMV8wX1RWSU5QVVRfSApkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS50di5pbnB1dEAxLjAtc2VydmljZS5yYyBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM2OTA3YwotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIHR2LWlucHV0LTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnR2LmlucHV0QDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvdHYvaW5wdXQvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDkwNGQwYgotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUudHZfaW5wdXRAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC9JVHZJbnB1dC5oPgorCisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKK3VzaW5nIGFuZHJvaWQ6OnNwOworCisvLyBHZW5lcmF0ZWQgSElETCBmaWxlcwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6SVR2SW5wdXQ7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElUdklucHV0PigpOworfQpkaWZmIC0tZ2l0IGEvdHYvaW5wdXQvMS4wL3R5cGVzLmhhbCBiL3R2L2lucHV0LzEuMC90eXBlcy5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVkZDZjMAotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC90eXBlcy5oYWwKQEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wOworCitpbXBvcnQgYW5kcm9pZC5oYXJkd2FyZS5hdWRpby5jb21tb25AMi4wOworCitlbnVtIFJlc3VsdCA6IGludDMyX3QgeworICAgIE9LLAorICAgIFVOS05PV04sCisgICAgTk9fUkVTT1VSQ0UsCisgICAgSU5WQUxJRF9BUkdVTUVOVFMsCisgICAgSU5WQUxJRF9TVEFURSwKK307CisKKy8qKiBUeXBlIG9mIHBoeXNpY2FsIFRWIGlucHV0LiAqLworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IlRWX0lOUFVUX1RZUEVfIikKK2VudW0gVHZJbnB1dFR5cGUgOiBpbnQzMl90IHsKKyAgICBPVEhFUiA9IDEsICAgICAgICAgLy8gR2VuZXJpYyBoYXJkd2FyZS4KKyAgICBUVU5FUiA9IDIsICAgICAgICAgLy8gVHVuZXIuIGUuZy4gYnVpbHQtaW4gdGVycmVzdHJpYWwgdHVuZXIKKyAgICBDT01QT1NJVEUgPSAzLAorICAgIFNWSURFTyA9IDQsCisgICAgU0NBUlQgPSA1LAorICAgIENPTVBPTkVOVCA9IDYsCisgICAgVkdBID0gNywKKyAgICBEVkkgPSA4LAorICAgIEhETUkgPSA5LCAgICAgICAgICAvLyBQaHlzaWNhbCBIRE1JIHBvcnQuIGUuZy4gSERNSSAxCisgICAgRElTUExBWV9QT1JUID0gMTAsCit9OworCisvKioKKyAqIFN0YXR1cyBvZiBjYWJsZSBjb25uZWN0aW9uLgorICogVGhpcyBzdGF0dXMgaXMgZm9yIGRldmljZXMgaGF2aW5nIGF2YWlsYWJpbGl0eSB0byBkZXRlY3QgdGhlIGNhYmxlIGluIGEgbWVjaGFuaWNhbCB3YXksCisgKiByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIGNvbm5lY3RlZCBleHRlcm5hbCBkZXZpY2UgaXMgZWxlY3RyaWNhbGx5IG9uIG9yIG5vdC4KKyAqIElmIHRoZSBkZXZpY2UgZG9lcyBub3QgaGF2ZSBzdWNoIGNhcGFiaWxpdHksIHlvdSBtdXN0IHVzZSBVTktOT1dOLgorICovCitAZXhwb3J0KG5hbWU9IiIsIHZhbHVlX3ByZWZpeD0iQ0FCTEVfQ09OTkVDVElPTl9TVEFUVVNfIikKK2VudW0gQ2FibGVDb25uZWN0aW9uU3RhdHVzIDogaW50MzJfdCB7CisgICAgVU5LTk9XTiA9IDAsCisgICAgQ09OTkVDVEVEID0gMSwKKyAgICBESVNDT05ORUNURUQgPSAyLAorfTsKKworc3RydWN0IFR2SW5wdXREZXZpY2VJbmZvIHsKKyAgICBpbnQzMl90IGRldmljZUlkOworICAgIFR2SW5wdXRUeXBlIHR5cGU7CisgICAgdWludDMyX3QgcG9ydElkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSERNSSBwb3J0IElEIG51bWJlci4gZS5nLiAyIGZvciBIRE1JIDIKKyAgICBDYWJsZUNvbm5lY3Rpb25TdGF0dXMgY2FibGVDb25uZWN0aW9uU3RhdHVzOyAvLyBDYWJsZSBjb25uZWN0aW9uIHN0YXR1cy4KKyAgICBBdWRpb0RldmljZSBhdWRpb1R5cGU7ICAgICAgICAgICAgICAgICAgICAgICAvLyBBdWRpbyBkZXZpY2UgdHlwZS4gZS5nIEF1ZGlvRGV2aWNlOjpJTl9IRE1JCisgICAgdWludDhfdFszMl0gYXVkaW9BZGRyZXNzOyAgICAgICAgICAgICAgICAgICAgLy8gQXVkaW8gZGV2aWNlIGFkZHJlc3MuICIiIGlmIE4vQS4gSWYgdGhlIHRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsZW5ndGggaXMgbGVzcyB0aGFuIDMyLCB0aGUgcmVtYWluaW5nIHBhcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtdXN0IGJlIGZpbGxlZCB3aXRoIDBzLgorfTsKKworQGV4cG9ydChuYW1lPSIiLCB2YWx1ZV9wcmVmaXg9IkVWRU5UXyIpCitlbnVtIFR2SW5wdXRFdmVudFR5cGUgOiBpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBIYXJkd2FyZSBub3RpZmllcyB0aGUgZnJhbWV3b3JrIHRoYXQgYSBkZXZpY2UgaXMgYXZhaWxhYmxlLgorICAgICAqCisgICAgICogTm90ZSB0aGF0IERFVklDRV9BVkFJTEFCTEUgYW5kIERFVklDRV9VTkFWQUlMQUJMRSBldmVudHMgZG8gbm90IHJlcHJlc2VudAorICAgICAqIGhvdHBsdWcgZXZlbnRzIChpLmUuIHBsdWdnaW5nIGNhYmxlIGludG8gb3Igb3V0IG9mIHRoZSBwaHlzaWNhbCBwb3J0KS4KKyAgICAgKiBUaGVzZSBldmVudHMgbm90aWZ5IHRoZSBmcmFtZXdvcmsgd2hldGhlciB0aGUgcG9ydCBpcyBhdmFpbGFibGUgb3Igbm90LgorICAgICAqIEZvciBhIGNvbmNyZXRlIGV4YW1wbGUsIHdoZW4gYSB1c2VyIHBsdWdzIGluIG9yIHB1bGxzIG91dCB0aGUgSERNSSBjYWJsZQorICAgICAqIGZyb20gYSBIRE1JIHBvcnQsIGl0IGRvZXMgbm90IGdlbmVyYXRlIERFVklDRV9BVkFJTEFCTEUgYW5kL29yCisgICAgICogREVWSUNFX1VOQVZBSUxBQkxFIGV2ZW50cy4gSG93ZXZlciwgaWYgYSB1c2VyIGluc2VydHMgYSBwbHVnZ2FibGUgVVNCCisgICAgICogdHVuZXIgaW50byB0aGUgQW5kcm9pZCBkZXZpY2UsIGl0IG11c3QgZ2VuZXJhdGUgYSBERVZJQ0VfQVZBSUxBQkxFIGV2ZW50CisgICAgICogYW5kIHdoZW4gdGhlIHBvcnQgaXMgcmVtb3ZlZCwgaXQgbXVzdCBnZW5lcmF0ZSBhIERFVklDRV9VTkFWQUlMQUJMRQorICAgICAqIGV2ZW50LgorICAgICAqCisgICAgICogRm9yIGhvdHBsdWcgZXZlbnRzLCBwbGVhc2Ugc2VlIFNUUkVBTV9DT05GSUdVUkFUSU9OX0NIQU5HRUQgZm9yIG1vcmUKKyAgICAgKiBkZXRhaWxzLgorICAgICAqCisgICAgICogSEFMIGltcGxlbWVudGF0aW9uIG11c3QgcmVnaXN0ZXIgZGV2aWNlcyBieSB1c2luZyB0aGlzIGV2ZW50IHdoZW4gdGhlCisgICAgICogZGV2aWNlIGJvb3RzIHVwLiBUaGUgZnJhbWV3b3JrIG11c3QgcmVjb2duaXplIGRldmljZSByZXBvcnRlZCB2aWEgdGhpcworICAgICAqIGV2ZW50IG9ubHkuCisgICAgICovCisgICAgREVWSUNFX0FWQUlMQUJMRSA9IDEsCisKKyAgICAvKioKKyAgICAgKiBIYXJkd2FyZSBub3RpZmllcyB0aGUgZnJhbWV3b3JrIHRoYXQgYSBkZXZpY2UgaXMgdW5hdmFpbGFibGUuCisgICAgICoKKyAgICAgKiBIQUwgaW1wbGVtZW50YXRpb24gbXVzdCBnZW5lcmF0ZSB0aGlzIGV2ZW50IHdoZW4gYSBkZXZpY2UgcmVnaXN0ZXJlZAorICAgICAqIGJ5IERFVklDRV9BVkFJTEFCTEUgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZS4gRm9yIGV4YW1wbGUsCisgICAgICogdGhlIGV2ZW50IGNhbiBpbmRpY2F0ZSB0aGF0IGEgVVNCIHR1bmVyIGlzIHBsdWdnZWQgb3V0IGZyb20gdGhlIEFuZHJvaWQKKyAgICAgKiBkZXZpY2UuCisgICAgICoKKyAgICAgKiBOb3RlIHRoYXQgdGhpcyBldmVudCBpcyBub3QgZm9yIGluZGljYXRpbmcgY2FibGUgcGx1Z2dlZCBvdXQgb2YgdGhlIHBvcnQ7CisgICAgICogZm9yIHRoYXQgcHVycG9zZSwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdXNlCisgICAgICogU1RSRUFNX0NPTkZJR1VSQVRJT05fQ0hBTkdFRCBldmVudC4gVGhpcyBldmVudCByZXByZXNlbnRzIHRoZSBwb3J0IGl0c2VsZgorICAgICAqIGJlaW5nIG5vIGxvbmdlciBhdmFpbGFibGUuCisgICAgICovCisgICAgREVWSUNFX1VOQVZBSUxBQkxFID0gMiwKKworICAgIC8qKgorICAgICAqIFN0cmVhbSBjb25maWd1cmF0aW9ucyBhcmUgY2hhbmdlZC4gQ2xpZW50IG11c3QgcmVnYXJkIGFsbCBvcGVuIHN0cmVhbXMKKyAgICAgKiBhdCB0aGUgc3BlY2lmaWMgZGV2aWNlIGFyZSBjbG9zZWQsIGFuZCBtdXN0IGNhbGwKKyAgICAgKiBnZXRTdHJlYW1Db25maWd1cmF0aW9ucygpIGFnYWluLCBvcGVuaW5nIHNvbWUgb2YgdGhlbSBpZiBuZWNlc3NhcnkuCisgICAgICoKKyAgICAgKiBIQUwgaW1wbGVtZW50YXRpb24gbXVzdCBnZW5lcmF0ZSB0aGlzIGV2ZW50IHdoZW4gdGhlIGF2YWlsYWJsZSBzdHJlYW0KKyAgICAgKiBjb25maWd1cmF0aW9ucyBjaGFuZ2UgZm9yIGFueSByZWFzb24uIEEgdHlwaWNhbCB1c2UgY2FzZSBvZiB0aGlzIGV2ZW50CisgICAgICogaXMgdG8gbm90aWZ5IHRoZSBmcmFtZXdvcmsgdGhhdCB0aGUgaW5wdXQgc2lnbmFsIGhhcyBjaGFuZ2VkIHJlc29sdXRpb24sCisgICAgICogb3IgdGhhdCB0aGUgY2FibGUgaXMgcGx1Z2dlZCBvdXQgc28gdGhhdCB0aGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBzdHJlYW1zCisgICAgICogaXMgMC4KKyAgICAgKgorICAgICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHVzZSB0aGlzIGV2ZW50IHRvIGluZGljYXRlIGhvdHBsdWcgc3RhdHVzIG9mIHRoZQorICAgICAqIHBvcnQuIHRoZSBmcmFtZXdvcmsgcmVnYXJkcyBpbnB1dCBkZXZpY2VzIHdpdGggbm8gYXZhaWxhYmxlIHN0cmVhbXMgYXMKKyAgICAgKiBkaXNjb25uZWN0ZWQsIHNvIHRoZSBpbXBsZW1lbnRhdGlvbiBjYW4gZ2VuZXJhdGUgdGhpcyBldmVudCB3aXRoIG5vCisgICAgICogYXZhaWxhYmxlIHN0cmVhbXMgdG8gaW5kaWNhdGUgdGhhdCB0aGlzIGRldmljZSBpcyBkaXNjb25uZWN0ZWQsIGFuZCB2aWNlCisgICAgICogdmVyc2EuCisgICAgICovCisgICAgU1RSRUFNX0NPTkZJR1VSQVRJT05TX0NIQU5HRUQgPSAzLAorfTsKKworc3RydWN0IFR2SW5wdXRFdmVudCB7CisgICAgVHZJbnB1dEV2ZW50VHlwZSB0eXBlOworICAgIC8qKgorICAgICAqIERFVklDRV9BVkFJTEFCTEU6IGFsbCBmaWVsZHMgYXJlIHJlbGV2YW50LgorICAgICAqIERFVklDRV9VTkFWQUlMQUJMRTogb25seSBkZXZpY2VJZCBpcyByZWxldmFudC4KKyAgICAgKiBTVFJFQU1fQ09ORklHVVJBVElPTlNfQ0hBTkdFRDogb25seSBkZXZpY2VJZCBpcyByZWxldmFudC4KKyAgICAgKi8KKyAgICBUdklucHV0RGV2aWNlSW5mbyBkZXZpY2VJbmZvOworfTsKKworc3RydWN0IFR2U3RyZWFtQ29uZmlnIHsKKyAgICBpbnQzMl90IHN0cmVhbUlkOworICAgIHVpbnQzMl90IG1heFZpZGVvV2lkdGg7ICAvLyBNYXggd2lkdGggb2YgdGhlIHN0cmVhbS4KKyAgICB1aW50MzJfdCBtYXhWaWRlb0hlaWdodDsgLy8gTWF4IGhlaWdodCBvZiB0aGUgc3RyZWFtLgorfTsKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwIGIvdHYvaW5wdXQvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzg2MjQyOQotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzcgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKy8vCisKK2NjX3Rlc3QgeworICAgIG5hbWU6ICJWdHNIYWxUdklucHV0VjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFR2SW5wdXRWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibmF0aXZlaGVscGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudHYuaW5wdXRAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CisKZGlmZiAtLWdpdCBhL3R2L2lucHV0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxUdklucHV0VjFfMFRhcmdldFRlc3QuY3BwIGIvdHYvaW5wdXQvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFR2SW5wdXRWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQ1MTEwZQotLS0gL2Rldi9udWxsCisrKyBiL3R2L2lucHV0LzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxUdklucHV0VjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMzYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJ0dl9pbnB1dF9oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3R2L2lucHV0LzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdHYvaW5wdXQvMS4wL0lUdklucHV0Lmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS90di9pbnB1dC8xLjAvSVR2SW5wdXRDYWxsYmFjay5oPgorCisjaW5jbHVkZSA8VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlLmg+CisjaW5jbHVkZSA8dXRpbHMvS2V5ZWRWZWN0b3IuaD4KKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx2ZWN0b3I+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6SVR2SW5wdXQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OklUdklucHV0Q2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OlJlc3VsdDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnR2OjppbnB1dDo6VjFfMDo6VHZJbnB1dFR5cGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OlR2SW5wdXREZXZpY2VJbmZvOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpUdklucHV0RXZlbnRUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dHY6OmlucHV0OjpWMV8wOjpUdklucHV0RXZlbnQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp0djo6aW5wdXQ6OlYxXzA6OlR2U3RyZWFtQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6UmV0dXJuOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6Vm9pZDsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworI2RlZmluZSBXQUlUX0ZPUl9FVkVOVF9USU1FT1VUIDUKKyNkZWZpbmUgREVGQVVMVF9JRCBJTlQzMl9NSU4KKworLyogVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgVFYgSW5wdXQgSElETCBIQUwuICovCitjbGFzcyBUdklucHV0SGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIHR2X2lucHV0XyA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElUdklucHV0PigpOworICAgIEFTU0VSVF9ORSh0dl9pbnB1dF8sIG51bGxwdHIpOworICAgIHR2X2lucHV0X2NhbGxiYWNrXyA9IG5ldyBUdklucHV0Q2FsbGJhY2soKnRoaXMpOworICAgIEFTU0VSVF9ORSh0dl9pbnB1dF9jYWxsYmFja18sIG51bGxwdHIpOworICAgIHR2X2lucHV0Xy0+c2V0Q2FsbGJhY2sodHZfaW5wdXRfY2FsbGJhY2tfKTsKKyAgICAvLyBBbGwgZXZlbnRzIHJlY2VpdmVkIHdpdGhpbiB0aGUgdGltZW91dCBzaG91bGQgYmUgaGFuZGxlZC4KKyAgICBzbGVlcChXQUlUX0ZPUl9FVkVOVF9USU1FT1VUKTsKKyAgfQorCisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHt9CisKKyAgLyogQ2FsbGVkIHdoZW4gYSBERVZJQ0VfQVZBSUxBQkxFIGV2ZW50IGlzIHJlY2VpdmVkLiAqLworICB2b2lkIG9uRGV2aWNlQXZhaWxhYmxlKGNvbnN0IFR2SW5wdXREZXZpY2VJbmZvJiBkZXZpY2VJbmZvKSB7CisgICAgZGV2aWNlX2luZm9fLmFkZChkZXZpY2VJbmZvLmRldmljZUlkLCBkZXZpY2VJbmZvKTsKKyAgfQorCisgIC8qIENhbGxlZCB3aGVuIGEgREVWSUNFX1VOQVZBSUxBQkxFIGV2ZW50IGlzIHJlY2VpdmVkLiAqLworICB2b2lkIG9uRGV2aWNlVW5hdmFpbGFibGUoaW50MzJfdCBkZXZpY2VJZCkgeworICAgIGRldmljZV9pbmZvXy5yZW1vdmVJdGVtKGRldmljZUlkKTsKKyAgfQorCisgIC8qIENhbGxlZCB3aGVuIGEgREVWSUNFX0NPTkZJR1VSQVRJT05TX0NIQU5HRUQgZXZlbnQgaXMgcmVjZWl2ZWQuICovCisgIFJlc3VsdCBvblN0cmVhbUNvbmZpZ3VyYXRpb25zQ2hhbmdlZChpbnQzMl90IGRldmljZUlkKSB7CisgICAgcmV0dXJuIHVwZGF0ZVN0cmVhbUNvbmZpZ3VyYXRpb25zKGRldmljZUlkKTsKKyAgfQorCisgIC8qIEdldHMgYW5kIHVwZGF0ZXMgdGhlIHN0cmVhbSBjb25maWd1cmF0aW9ucyBmb3IgYSBkZXZpY2UuICovCisgIFJlc3VsdCB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucyhpbnQzMl90IGRldmljZUlkKSB7CisgICAgc3RyZWFtX2NvbmZpZ18ucmVtb3ZlSXRlbShkZXZpY2VJZCk7CisgICAgUmVzdWx0IHJlc3VsdCA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgICBoaWRsX3ZlYzxUdlN0cmVhbUNvbmZpZz4gbGlzdDsKKyAgICB0dl9pbnB1dF8tPmdldFN0cmVhbUNvbmZpZ3VyYXRpb25zKGRldmljZUlkLAorICAgICAgICBbJnJlc3VsdCwgJmxpc3RdKFJlc3VsdCByZXMsIGhpZGxfdmVjPFR2U3RyZWFtQ29uZmlnPiBjb25maWdzKSB7CisgICAgICAgICAgcmVzdWx0ID0gcmVzOworICAgICAgICAgIGlmIChyZXMgPT0gUmVzdWx0OjpPSykgeworICAgICAgICAgICAgbGlzdCA9IGNvbmZpZ3M7CisgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICBpZiAocmVzdWx0ID09IFJlc3VsdDo6T0spIHsKKyAgICAgIHN0cmVhbV9jb25maWdfLmFkZChkZXZpY2VJZCwgbGlzdCk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7CisgIH0KKworICAvKiBHZXRzIGFuZCB1cGRhdGVzIHRoZSBzdHJlYW0gY29uZmlndXJhdGlvbnMgZm9yIGFsbCBleGlzdGluZyBkZXZpY2VzLiAqLworICB2b2lkIHVwZGF0ZUFsbFN0cmVhbUNvbmZpZ3VyYXRpb25zKCkgeworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGV2aWNlX2luZm9fLnNpemUoKTsgaSsrKSB7CisgICAgICBpbnQzMl90IGRldmljZV9pZCA9IGRldmljZV9pbmZvXy5rZXlBdChpKTsKKyAgICAgIHVwZGF0ZVN0cmVhbUNvbmZpZ3VyYXRpb25zKGRldmljZV9pZCk7CisgICAgfQorICB9CisKKyAgLyogUmV0dXJucyBhIGxpc3Qgb2YgaW5kaWNlcyBvZiBzdHJlYW1fY29uZmlnXyB3aG9zZSBjb3JyZXNwb25kaW5nIHZhbHVlcyBhcmUgbm90IGVtcHR5LiAqLworICBzdGQ6OnZlY3RvcjxzaXplX3Q+IGdldENvbmZpZ0luZGljZXMoKSB7CisgICAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBpbmRpY2VzOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3RyZWFtX2NvbmZpZ18uc2l6ZSgpOyBpKyspIHsKKyAgICAgIGlmIChzdHJlYW1fY29uZmlnXy52YWx1ZUF0KGkpLnNpemUoKSAhPSAwKSB7CisgICAgICAgIGluZGljZXMucHVzaF9iYWNrKGkpOworICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gaW5kaWNlczsKKyAgfQorCisgIC8qCisgICAqIFJldHVybnMgREVGQVVMVF9JRCBpZiB0aGVyZSBpcyBubyBtaXNzaW5nIGludGVnZXIgaW4gdGhlIHJhbmdlIFswLCB0aGUgc2l6ZSBvZiBudW1zKS4KKyAgICogT3RoZXJ3aXNlLCByZXR1cm5zIHRoZSBzbWFsbGVzdCBtaXNzaW5nIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLgorICAgKi8KKyAgaW50MzJfdCBnZXROdW1Ob3RJbihzdGQ6OnZlY3RvcjxpbnQzMl90PiYgbnVtcykgeworICAgIGludDMyX3QgcmVzdWx0ID0gREVGQVVMVF9JRDsKKyAgICBpbnQzMl90IHNpemUgPSBzdGF0aWNfY2FzdDxpbnQzMl90PihudW1zLnNpemUoKSk7CisgICAgZm9yIChpbnQzMl90IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAvLyBQdXQgZXZlcnkgZWxlbWVudCB0byBpdHMgdGFyZ2V0IHBvc2l0aW9uLCBpZiBwb3NzaWJsZS4KKyAgICAgIGludDMyX3QgdGFyZ2V0X3BvcyA9IG51bXNbaV07CisgICAgICB3aGlsZSAodGFyZ2V0X3BvcyA+PSAwICYmIHRhcmdldF9wb3MgPCBzaXplICYmIGkgIT0gdGFyZ2V0X3BvcyAmJiBudW1zW2ldICE9IG51bXNbdGFyZ2V0X3Bvc10pIHsKKyAgICAgICAgc3RkOjpzd2FwKG51bXNbaV0sIG51bXNbdGFyZ2V0X3Bvc10pOworICAgICAgICB0YXJnZXRfcG9zID0gbnVtc1tpXTsKKyAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKGludDMyX3QgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgIGlmIChudW1zW2ldICE9IGkpIHsKKyAgICAgICAgcmV0dXJuIGk7CisgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7CisgIH0KKworICAvKiBBIHNpbXBsZSB0ZXN0IGltcGxlbWVudGF0aW9uIG9mIFR2SW5wdXRDYWxsYmFjayBmb3IgVFYgSW5wdXQgRXZlbnRzLiAqLworICBjbGFzcyBUdklucHV0Q2FsbGJhY2sgOiBwdWJsaWMgSVR2SW5wdXRDYWxsYmFjayB7CisgICAgcHVibGljOgorICAgICBUdklucHV0Q2FsbGJhY2soVHZJbnB1dEhpZGxUZXN0JiBwYXJlbnQpIDogcGFyZW50XyhwYXJlbnQpe307CisKKyAgICAgdmlydHVhbCB+VHZJbnB1dENhbGxiYWNrKCkgPSBkZWZhdWx0OworCisgICAgIC8qCisgICAgICAqIE5vdGlmaWVzIHRoZSBjbGllbnQgdGhhdCBhbiBldmVudCBoYXMgb2NjdXJlZC4gRm9yIHBvc3NpYmxlIGV2ZW50IHR5cGVzLAorICAgICAgKiBjaGVjayBUdklucHV0RXZlbnRUeXBlLgorIMKgwqDCoMKgICovCisgICAgIFJldHVybjx2b2lkPiBub3RpZnkoY29uc3QgVHZJbnB1dEV2ZW50JiBldmVudCkgb3ZlcnJpZGUgeworICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhwYXJlbnRfLm11dGV4Xyk7CisgICAgICAgc3dpdGNoKGV2ZW50LnR5cGUpIHsKKyAgICAgICAgIGNhc2UgVHZJbnB1dEV2ZW50VHlwZTo6REVWSUNFX0FWQUlMQUJMRToKKyAgICAgICAgICAgcGFyZW50Xy5vbkRldmljZUF2YWlsYWJsZShldmVudC5kZXZpY2VJbmZvKTsKKyAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFR2SW5wdXRFdmVudFR5cGU6OkRFVklDRV9VTkFWQUlMQUJMRToKKyAgICAgICAgICAgcGFyZW50Xy5vbkRldmljZVVuYXZhaWxhYmxlKGV2ZW50LmRldmljZUluZm8uZGV2aWNlSWQpOworICAgICAgICAgICBicmVhazsKKyAgICAgICAgIGNhc2UgVHZJbnB1dEV2ZW50VHlwZTo6U1RSRUFNX0NPTkZJR1VSQVRJT05TX0NIQU5HRUQ6CisgICAgICAgICAgIHBhcmVudF8ub25TdHJlYW1Db25maWd1cmF0aW9uc0NoYW5nZWQoZXZlbnQuZGV2aWNlSW5mby5kZXZpY2VJZCk7CisgICAgICAgICAgIGJyZWFrOworICAgICAgIH0KKyAgICAgICByZXR1cm4gVm9pZCgpOworICAgICB9OworICAgIHByaXZhdGU6CisgICAgIC8qIFRoZSB0ZXN0IGNvbnRhaW5zIHRoaXMgY2FsbGJhY2sgaW5zdGFuY2UuICovCisgICAgIFR2SW5wdXRIaWRsVGVzdCYgcGFyZW50XzsKKyAgfTsKKworICAvKiBUaGUgVHZJbnB1dCB1c2VkIGZvciB0aGUgdGVzdC4gKi8KKyAgc3A8SVR2SW5wdXQ+IHR2X2lucHV0XzsKKworICAvKiBUaGUgVHZJbnB1dENhbGxiYWNrIHVzZWQgZm9yIHRoZSB0ZXN0LiAqLworICBzcDxJVHZJbnB1dENhbGxiYWNrPiB0dl9pbnB1dF9jYWxsYmFja187CisKKyAgLyoKKyAgICogQSBLZXllZFZlY3RvciBzdG9yZXMgZGV2aWNlIGluZm9ybWF0aW9uIG9mIGV2ZXJ5IGF2YWlsYWJsZSBkZXZpY2UuCisgICAqIEEga2V5IGlzIGEgZGV2aWNlIElEIGFuZCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcyB0aGUgVHZJbnB1dERldmljZUluZm8uCisgICAqLworICBhbmRyb2lkOjpLZXllZFZlY3RvcjxpbnQzMl90LCBUdklucHV0RGV2aWNlSW5mbz4gZGV2aWNlX2luZm9fOworCisgIC8qCisgICAqIEEgS2V5ZWRWZWN0b3Igc3RvcmVzIGEgbGlzdCBvZiBzdHJlYW0gY29uZmlndXJhdGlvbnMgb2YgZXZlcnkgYXZhaWxhYmxlIGRldmljZS4KKyAgICogQSBrZXkgaXMgYSBkZXZpY2UgSUQgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGlzIHRoZSBzdHJlYW0gY29uZmlndXJhdGlvbiBsaXN0LgorICAgKi8KKyAgYW5kcm9pZDo6S2V5ZWRWZWN0b3I8aW50MzJfdCwgaGlkbF92ZWM8VHZTdHJlYW1Db25maWc+PiBzdHJlYW1fY29uZmlnXzsKKworICAvKiBUaGUgbXV0ZXggY29udHJvbHMgdGhlIGFjY2VzcyBvZiBzaGFyZWQgZGF0YS4gKi8KKyAgc3RkOjptdXRleCBtdXRleF87Cit9OworCisKKy8qIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAuICovCitjbGFzcyBUdklucHV0SGlkbEVudmlyb25tZW50IDogcHVibGljIDo6dGVzdGluZzo6RW52aXJvbm1lbnQgeworIHB1YmxpYzoKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkge30KKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkge30KKworIHByaXZhdGU6Cit9OworCisvKgorICogR2V0U3RyZWFtQ29uZmlnVGVzdDoKKyAqIENhbGxzIHVwZGF0ZVN0cmVhbUNvbmZpZ3VyYXRpb25zKCkgZm9yIGVhY2ggZXhpc3RpbmcgZGV2aWNlCisgKiBDaGVja3MgcmV0dXJuZWQgcmVzdWx0cworICovCitURVNUX0YoVHZJbnB1dEhpZGxUZXN0LCBHZXRTdHJlYW1Db25maWdUZXN0KSB7CisgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtdXRleF8pOworICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRldmljZV9pbmZvXy5zaXplKCk7IGkrKykgeworICAgIGludDMyX3QgZGV2aWNlX2lkID0gZGV2aWNlX2luZm9fLmtleUF0KGkpOworICAgIFJlc3VsdCByZXN1bHQgPSB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucyhkZXZpY2VfaWQpOworICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXN1bHQpOworICB9Cit9CisKKy8qCisgKiBPcGVuQW5kQ2xvc2VTdHJlYW1UZXN0OgorICogQ2FsbHMgb3BlblN0cmVhbSgpIGFuZCB0aGVuIGNsb3NlU3RyZWFtKCkgZm9yIGVhY2ggZXhpc3Rpbmcgc3RyZWFtCisgKiBDaGVja3MgcmV0dXJuZWQgcmVzdWx0cworICovCitURVNUX0YoVHZJbnB1dEhpZGxUZXN0LCBPcGVuQW5kQ2xvc2VTdHJlYW1UZXN0KSB7CisgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtdXRleF8pOworICB1cGRhdGVBbGxTdHJlYW1Db25maWd1cmF0aW9ucygpOworICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHN0cmVhbV9jb25maWdfLnNpemUoKTsgaisrKSB7CisgICAgaW50MzJfdCBkZXZpY2VfaWQgPSBzdHJlYW1fY29uZmlnXy5rZXlBdChqKTsKKyAgICBoaWRsX3ZlYzxUdlN0cmVhbUNvbmZpZz4gY29uZmlnID0gc3RyZWFtX2NvbmZpZ18udmFsdWVBdChqKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbmZpZy5zaXplKCk7IGkrKykgeworICAgICAgUmVzdWx0IHJlc3VsdCA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgICAgIGludDMyX3Qgc3RyZWFtX2lkID0gY29uZmlnW2ldLnN0cmVhbUlkOworICAgICAgdHZfaW5wdXRfLT5vcGVuU3RyZWFtKGRldmljZV9pZCwgc3RyZWFtX2lkLAorICAgICAgICAgIFsmcmVzdWx0XShSZXN1bHQgcmVzLCBjb25zdCBuYXRpdmVfaGFuZGxlX3QqKSB7CisgICAgICAgICAgICAgIHJlc3VsdCA9IHJlczsKKyAgICAgICAgICB9KTsKKyAgICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXN1bHQpOworCisgICAgICByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgICAgICByZXN1bHQgPSB0dl9pbnB1dF8tPmNsb3NlU3RyZWFtKGRldmljZV9pZCwgc3RyZWFtX2lkKTsKKyAgICAgIEVYUEVDVF9FUShSZXN1bHQ6Ok9LLCByZXN1bHQpOworICAgIH0KKyAgfQorfQorCisvKgorICogSW52YWxpZERldmljZUlkVGVzdDoKKyAqIENhbGxzIHVwZGF0ZVN0cmVhbUNvbmZpZ3VyYXRpb25zKCksIG9wZW5TdHJlYW0oKSwgYW5kIGNsb3NlU3RyZWFtKCkKKyAqIGZvciBhIG5vbi1leGlzdGluZyBkZXZpY2UKKyAqIENoZWNrcyByZXR1cm5lZCByZXN1bHRzCisgKiBUaGUgcmVzdWx0cyBzaG91bGQgYmUgUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUworICovCitURVNUX0YoVHZJbnB1dEhpZGxUZXN0LCBJbnZhbGlkRGV2aWNlSWRUZXN0KSB7CisgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtdXRleF8pOworCisgIHN0ZDo6dmVjdG9yPGludDMyX3Q+IGRldmljZV9pZHM7CisgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGV2aWNlX2luZm9fLnNpemUoKTsgaSsrKSB7CisgICAgZGV2aWNlX2lkcy5wdXNoX2JhY2soZGV2aWNlX2luZm9fLmtleUF0KGkpKTsKKyAgfQorICAvLyBHZXQgYSBub24tZXhpc3RpbmcgZGV2aWNlIElELgorICBpbnQzMl90IGlkID0gZ2V0TnVtTm90SW4oZGV2aWNlX2lkcyk7CisgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCB1cGRhdGVTdHJlYW1Db25maWd1cmF0aW9ucyhpZCkpOworCisgIFJlc3VsdCByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgIGludDMyX3Qgc3RyZWFtX2lkID0gMDsKKyAgdHZfaW5wdXRfLT5vcGVuU3RyZWFtKGlkLCBzdHJlYW1faWQsCisgICAgICBbJnJlc3VsdF0oUmVzdWx0IHJlcywgY29uc3QgbmF0aXZlX2hhbmRsZV90KikgeworICAgICAgICAgIHJlc3VsdCA9IHJlczsKKyAgICAgIH0pOworICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgcmVzdWx0KTsKKworICByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgIHJlc3VsdCA9IHR2X2lucHV0Xy0+Y2xvc2VTdHJlYW0oaWQsIHN0cmVhbV9pZCk7CisgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCByZXN1bHQpOworfQorCisvKgorICogSW52YWxpZFN0cmVhbUlkVGVzdDoKKyAqIENhbGxzIG9wZW5TdHJlYW0oKSwgYW5kIGNsb3NlU3RyZWFtKCkgZm9yIGEgbm9uLWV4aXN0aW5nIHN0cmVhbQorICogQ2hlY2tzIHJldHVybmVkIHJlc3VsdHMKKyAqIFRoZSByZXN1bHRzIHNob3VsZCBiZSBSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTCisgKi8KK1RFU1RfRihUdklucHV0SGlkbFRlc3QsIEludmFsaWRTdHJlYW1JZFRlc3QpIHsKKyAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG11dGV4Xyk7CisgIGlmIChkZXZpY2VfaW5mb18uaXNFbXB0eSgpKSB7CisgICAgcmV0dXJuOworICB9CisgIHVwZGF0ZUFsbFN0cmVhbUNvbmZpZ3VyYXRpb25zKCk7CisKKyAgaW50MzJfdCBkZXZpY2VfaWQgPSBkZXZpY2VfaW5mb18ua2V5QXQoMCk7CisgIC8vIEdldCBhIG5vbi1leGlzdGluZyBzdHJlYW0gSUQuCisgIGludDMyX3QgaWQgPSBERUZBVUxUX0lEOworICBpZiAoc3RyZWFtX2NvbmZpZ18uaW5kZXhPZktleShkZXZpY2VfaWQpID49IDApIHsKKyAgICBzdGQ6OnZlY3RvcjxpbnQzMl90PiBzdHJlYW1faWRzOworICAgIGhpZGxfdmVjPFR2U3RyZWFtQ29uZmlnPiBjb25maWcgPSBzdHJlYW1fY29uZmlnXy52YWx1ZUZvcihkZXZpY2VfaWQpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29uZmlnLnNpemUoKTsgaSsrKSB7CisgICAgICBzdHJlYW1faWRzLnB1c2hfYmFjayhjb25maWdbaV0uc3RyZWFtSWQpOworICAgIH0KKyAgICBpZCA9IGdldE51bU5vdEluKHN0cmVhbV9pZHMpOworICB9CisKKyAgUmVzdWx0IHJlc3VsdCA9IFJlc3VsdDo6VU5LTk9XTjsKKyAgdHZfaW5wdXRfLT5vcGVuU3RyZWFtKGRldmljZV9pZCwgaWQsCisgICAgICBbJnJlc3VsdF0oUmVzdWx0IHJlcywgY29uc3QgbmF0aXZlX2hhbmRsZV90KikgeworICAgICAgICAgIHJlc3VsdCA9IHJlczsKKyAgICAgIH0pOworICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX0FSR1VNRU5UUywgcmVzdWx0KTsKKworICByZXN1bHQgPSBSZXN1bHQ6OlVOS05PV047CisgIHJlc3VsdCA9IHR2X2lucHV0Xy0+Y2xvc2VTdHJlYW0oZGV2aWNlX2lkLCBpZCk7CisgIEVYUEVDVF9FUShSZXN1bHQ6OklOVkFMSURfQVJHVU1FTlRTLCByZXN1bHQpOworfQorCisvKgorICogT3BlbkFuT3BlbmVkU3RyZWFtc1Rlc3Q6CisgKiBDYWxscyBvcGVuU3RyZWFtKCkgdHdpY2UgZm9yIGEgc3RyZWFtIChpZiBhbnkpCisgKiBDaGVja3MgcmV0dXJuZWQgcmVzdWx0cworICogVGhlIHJlc3VsdCBvZiB0aGUgc2Vjb25kIGNhbGwgc2hvdWxkIGJlIFJlc3VsdDo6SU5WQUxJRF9TVEFURQorICovCitURVNUX0YoVHZJbnB1dEhpZGxUZXN0LCBPcGVuQW5PcGVuZWRTdHJlYW1zVGVzdCkgeworICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXV0ZXhfKTsKKyAgdXBkYXRlQWxsU3RyZWFtQ29uZmlndXJhdGlvbnMoKTsKKyAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBpbmRpY2VzID0gZ2V0Q29uZmlnSW5kaWNlcygpOworICBpZiAoaW5kaWNlcy5lbXB0eSgpKSB7CisgICAgcmV0dXJuOworICB9CisgIGludDMyX3QgZGV2aWNlX2lkID0gc3RyZWFtX2NvbmZpZ18ua2V5QXQoaW5kaWNlc1swXSk7CisgIGludDMyX3Qgc3RyZWFtX2lkID0gc3RyZWFtX2NvbmZpZ18udmFsdWVBdChpbmRpY2VzWzBdKVswXS5zdHJlYW1JZDsKKworICBSZXN1bHQgcmVzdWx0ID0gUmVzdWx0OjpVTktOT1dOOworICB0dl9pbnB1dF8tPm9wZW5TdHJlYW0oZGV2aWNlX2lkLCBzdHJlYW1faWQsCisgICAgICBbJnJlc3VsdF0oUmVzdWx0IHJlcywgY29uc3QgbmF0aXZlX2hhbmRsZV90KikgeworICAgICAgICAgIHJlc3VsdCA9IHJlczsKKyAgICAgIH0pOworICBFWFBFQ1RfRVEoUmVzdWx0OjpPSywgcmVzdWx0KTsKKworICB0dl9pbnB1dF8tPm9wZW5TdHJlYW0oZGV2aWNlX2lkLCBzdHJlYW1faWQsCisgICAgICBbJnJlc3VsdF0oUmVzdWx0IHJlcywgY29uc3QgbmF0aXZlX2hhbmRsZV90KikgeworICAgICAgICAgIHJlc3VsdCA9IHJlczsKKyAgICAgIH0pOworICBFWFBFQ1RfRVEoUmVzdWx0OjpJTlZBTElEX1NUQVRFLCByZXN1bHQpOworfQorCisvKgorICogQ2xvc2VTdHJlYW1CZWZvcmVPcGVuVGVzdDoKKyAqIENhbGxzIGNsb3NlU3RyZWFtKCkgd2l0aG91dCBjYWxsaW5nIG9wZW5TdHJlYW0oKSBmb3IgYSBzdHJlYW0gKGlmIGFueSkKKyAqIENoZWNrcyB0aGUgcmV0dXJuZWQgcmVzdWx0CisgKiBUaGUgcmVzdWx0IHNob3VsZCBiZSBSZXN1bHQ6OklOVkFMSURfU1RBVEUKKyAqLworVEVTVF9GKFR2SW5wdXRIaWRsVGVzdCwgQ2xvc2VTdHJlYW1CZWZvcmVPcGVuVGVzdCkgeworICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobXV0ZXhfKTsKKyAgdXBkYXRlQWxsU3RyZWFtQ29uZmlndXJhdGlvbnMoKTsKKyAgc3RkOjp2ZWN0b3I8c2l6ZV90PiBpbmRpY2VzID0gZ2V0Q29uZmlnSW5kaWNlcygpOworICBpZiAoaW5kaWNlcy5lbXB0eSgpKSB7CisgICAgcmV0dXJuOworICB9CisgIGludDMyX3QgZGV2aWNlX2lkID0gc3RyZWFtX2NvbmZpZ18ua2V5QXQoaW5kaWNlc1swXSk7CisgIGludDMyX3Qgc3RyZWFtX2lkID0gc3RyZWFtX2NvbmZpZ18udmFsdWVBdChpbmRpY2VzWzBdKVswXS5zdHJlYW1JZDsKKyAgRVhQRUNUX0VRKFJlc3VsdDo6SU5WQUxJRF9TVEFURSwgdHZfaW5wdXRfLT5jbG9zZVN0cmVhbShkZXZpY2VfaWQsIHN0cmVhbV9pZCkpOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpBZGRHbG9iYWxUZXN0RW52aXJvbm1lbnQobmV3IFR2SW5wdXRIaWRsRW52aXJvbm1lbnQpOworICA6OnRlc3Rpbmc6OkluaXRHb29nbGVUZXN0KCZhcmdjLCBhcmd2KTsKKyAgaW50IHN0YXR1cyA9IFJVTl9BTExfVEVTVFMoKTsKKyAgQUxPR0koIlRlc3QgcmVzdWx0ID0gJWQiLCBzdGF0dXMpOworICByZXR1cm4gc3RhdHVzOworfQorCmRpZmYgLS1naXQgYS90di9pbnB1dC9BbmRyb2lkLm1rIGIvdHYvaW5wdXQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWUzMjc2Ci0tLSAvZGV2L251bGwKKysrIGIvdHYvaW5wdXQvQW5kcm9pZC5tawpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworIyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisjIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorIyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisjIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChjYWxsIGFsbC1zdWJkaXItbWFrZWZpbGVzKQpkaWZmIC0tZ2l0IGEvdXBkYXRlLWJhc2UtZmlsZXMuc2ggYi91cGRhdGUtYmFzZS1maWxlcy5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZWI2YjUxCi0tLSAvZGV2L251bGwKKysrIGIvdXBkYXRlLWJhc2UtZmlsZXMuc2gKQEAgLTAsMCArMSw0MyBAQAorIyEvYmluL2Jhc2gKKworaWYgWyAhIC1kIGhhcmR3YXJlL2ludGVyZmFjZXMgXSA7IHRoZW4KKyAgZWNobyAiV2hlcmUgaXMgaGFyZHdhcmUvaW50ZXJmYWNlcz8iOworICBleGl0IDE7CitmaQorCitpZiBbICEgLWQgc3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IF0gOyB0aGVuCisgIGVjaG8gIldoZXJlIGlzIHN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydD8iOworICBleGl0IDE7CitmaQorCitlY2hvICJXQVJOSU5HOiBUaGlzIHNjcmlwdCBjaGFuZ2VzIGZpbGVzIGluIG1hbnkgcGxhY2VzLiIKKworIyBUaGVzZSBmaWxlcyBvbmx5IGV4aXN0IHRvIGZhY2lsaXRhdGUgdGhlIGVhc3kgdHJhbnNpdGlvbiB0byBoaWRsLgorCitvcHRpb25zPSItTGV4cG9ydC1oZWFkZXIgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCIKKworIyBoYXJkd2FyZS9saWJoYXJkd2FyZQoraGlkbC1nZW4gJG9wdGlvbnMgXAorICAgICAgICAgLW8gaGFyZHdhcmUvbGliaGFyZHdhcmUvaW5jbHVkZS9oYXJkd2FyZS9zZW5zb3JzLWJhc2UuaCBcCisgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnNlbnNvcnNAMS4wCitoaWRsLWdlbiAkb3B0aW9ucyBcCisgICAgICAgICAtbyBoYXJkd2FyZS9saWJoYXJkd2FyZS9pbmNsdWRlL2hhcmR3YXJlL25mYy1iYXNlLmggXAorICAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS5uZmNAMS4wCitoaWRsLWdlbiAkb3B0aW9ucyBcCisgICAgICAgICAtbyBoYXJkd2FyZS9saWJoYXJkd2FyZS9pbmNsdWRlL2hhcmR3YXJlL2duc3MtYmFzZS5oIFwKKyAgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ25zc0AxLjAKKworIyBzeXN0ZW0vY29yZQoraGlkbC1nZW4gJG9wdGlvbnMgXAorICAgICAgICAgLW8gc3lzdGVtL2NvcmUvaW5jbHVkZS9zeXN0ZW0vZ3JhcGhpY3MtYmFzZS5oIFwKKyAgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuZ3JhcGhpY3MuY29tbW9uQDEuMAorCisjIHN5c3RlbS9tZWRpYQoraGlkbC1nZW4gJG9wdGlvbnMgXAorICAgICAgICAgLW8gc3lzdGVtL21lZGlhL2F1ZGlvL2luY2x1ZGUvc3lzdGVtL2F1ZGlvLWJhc2UuaCBcCisgICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLmF1ZGlvLmNvbW1vbkAyLjAKK2hpZGwtZ2VuICRvcHRpb25zIFwKKyAgICAgICAgIC1vIHN5c3RlbS9tZWRpYS9hdWRpby9pbmNsdWRlL3N5c3RlbS9hdWRpb19lZmZlY3QtYmFzZS5oIFwKKyAgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUuYXVkaW8uZWZmZWN0QDIuMApkaWZmIC0tZ2l0IGEvdXNiLzEuMC9BbmRyb2lkLmJwIGIvdXNiLzEuMC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwM2Y3NWIKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL0FuZHJvaWQuYnAKQEAgLTAsMCArMSw3MCBAQAorLy8gVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitmaWxlZ3JvdXAgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSVVzYi5oYWwiLAorICAgICAgICAiSVVzYkNhbGxiYWNrLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMF9nZW5jKysiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLXNvdXJjZXMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvdHlwZXMuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9Vc2JBbGwuY3BwIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9Vc2JDYWxsYmFja0FsbC5jcHAiLAorICAgIF0sCit9CisKK2dlbnJ1bGUgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvaHd0eXBlcy5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9JVXNiLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0lId1VzYi5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9Cbkh3VXNiLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0JwSHdVc2IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvQnNVc2IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvSVVzYkNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0lId1VzYkNhbGxiYWNrLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS91c2IvMS4wL0JuSHdVc2JDYWxsYmFjay5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9CcEh3VXNiQ2FsbGJhY2suaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvQnNVc2JDYWxsYmFjay5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbC1tb2R1bGUtZGVmYXVsdHMiXSwKKyAgICBnZW5lcmF0ZWRfc291cmNlczogWyJhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMF9nZW5jKytfaGVhZGVycyJdLAorICAgIHZlbmRvcl9hdmFpbGFibGU6IHRydWUsCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgXSwKKyAgICBleHBvcnRfc2hhcmVkX2xpYl9oZWFkZXJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdXNiLzEuMC9BbmRyb2lkLm1rIGIvdXNiLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZjY5MzUKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSw0MjcgQEAKKyMgVGhpcyBmaWxlIGlzIGF1dG9nZW5lcmF0ZWQgYnkgaGlkbC1nZW4uIERvIG5vdCBlZGl0IG1hbnVhbGx5LgorCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudXNiLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydERhdGFSb2xlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0RGF0YVJvbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnREYXRhUm9sZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydE1vZGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRNb2RlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0TW9kZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFBvd2VyUm9sZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydFBvd2VyUm9sZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydFBvd2VyUm9sZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFJvbGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRSb2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0Um9sZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFJvbGVUeXBlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0Um9sZVR5cGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnRSb2xlVHlwZQorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoUG9ydFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydFN0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydFN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoU3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElVc2IuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL0lVc2IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lVc2IuaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL0lVc2JDYWxsYmFjay5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OklVc2IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lVc2IuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElVc2JDYWxsYmFjay5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvSVVzYkNhbGxiYWNrLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCiskKEdFTik6IFBSSVZBVEVfREVQUyArPSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OklVc2JDYWxsYmFjaworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVVzYkNhbGxiYWNrLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS51c2ItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3J0RGF0YVJvbGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnREYXRhUm9sZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydERhdGFSb2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3J0TW9kZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydE1vZGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnRNb2RlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3J0UG93ZXJSb2xlKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0UG93ZXJSb2xlLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0UG93ZXJSb2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3J0Um9sZSkKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvUG9ydFJvbGUuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA6OnR5cGVzLlBvcnRSb2xlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3J0Um9sZVR5cGUpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1BvcnRSb2xlVHlwZS5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuUG9ydFJvbGVUeXBlCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChQb3J0U3RhdHVzKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Qb3J0U3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOjp0eXBlcy5Qb3J0U3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3VzYi9WMV8wL1N0YXR1cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6dHlwZXMuU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVVzYi5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdXNiL1YxXzAvSVVzYi5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVVzYi5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvSVVzYkNhbGxiYWNrLmhhbAorJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lVc2JDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6SVVzYgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVVzYi5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVVzYkNhbGxiYWNrLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9JVXNiQ2FsbGJhY2suamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lVc2JDYWxsYmFjay5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDo6SVVzYkNhbGxiYWNrCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS51c2ItVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS91c2IvVjFfMC9Db25zdGFudHMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVVzYi5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVXNiQ2FsbGJhY2suaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMAorCiskKEdFTik6CisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorIyBBdm9pZCBkZXBlbmRlbmN5IGN5Y2xlIG9mIGZyYW1ld29yay5qYXIgLT4gdGhpcy1saWJyYXJ5IC0+IGZyYW1ld29yay5qYXIKK0xPQ0FMX05PX1NUQU5EQVJEX0xJQlJBUklFUyA6PSB0cnVlCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBjb3JlLW9qCisKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKworaW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvdXNiLzEuMC9JVXNiLmhhbCBiL3VzYi8xLjAvSVVzYi5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ2NDM3OQotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvSVVzYi5oYWwKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK3BhY2thZ2UgYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wOworCitpbXBvcnQgSVVzYkNhbGxiYWNrOworCitpbnRlcmZhY2UgSVVzYiB7CisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGNoYW5nZSB0aGUgcG9ydCByb2xlIG9mIGEgc3BlY2lmaWMgcG9ydC4KKyAgICAgKiBGb3IgZXhhbXBsZSwgd2hlbiBQRF9TV0FQIG9yIFBSX1NXQVAgaXMgc3VwcG9ydGVkLgorICAgICAqIFRoaXMgaXMgZnVuY3Rpb24gaXMgYXN5bmNocm9ub3VzLiBUaGUgc3RhdHVzIG9mIHRoZSByb2xlIHN3aXRjaAorICAgICAqIHdpbGwgYmUgaW5mb3JtZWQgdGhyb3VnaCBJVXNiQ2FsbGJhY2sgb2JqZWN0J3Mgbm90aWZ5UG9ydFN0YXR1c0NoYW5nZQorICAgICAqIG1ldGhvZC4KKyAgICAgKgorICAgICAqIEBwYXJhbSBwb3J0TmFtZSBuYW1lIG9mIHRoZSBwb3J0IGZvciB3aGljaCB0aGUgcm9sZSBoYXMgdG8gYmUgY2hhbmdlZAorICAgICAqIEBwYXJhbSByb2xlIHRoZSBuZXcgcG9ydCByb2xlLgorICAgICAqLworICAgIG9uZXdheSBzd2l0Y2hSb2xlKHN0cmluZyBwb3J0TmFtZSwgUG9ydFJvbGUgcm9sZSk7CisKKyAgICAvKioKKyAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gcmVnaXN0ZXIgYSBjYWxsYmFjayBmdW5jdGlvbiB3aGljaCBpcworICAgICAqIGNhbGxlZCBieSB0aGUgSEFMIHdoZW5ldmVyIHRoZXJlIGlzIGEgY2hhbmdlIGluIHRoZSBwb3J0IHN0YXRlLgorICAgICAqIGkuZS4gREFUQV9ST0xFLCBQT1dFUl9ST0xFIG9yIE1PREUuCisgICAgICoKKyAgICAgKiBBbHNvIHRoZSBzYW1lIGNhbGxiYWNrIG9iamVjdCB3b3VsZCBiZSBjYWxsZWQgdG8gaW5mb3JtIHRoZSBjYWxsZXIKKyAgICAgKiBvZiB0aGUgcm9sZVN3aXRjaCBzdGF0dXMuCisgICAgICoKKyAgICAgKiBAcGFyYW0gY2FsbGJhY2sgSVVzYkNhbGxiYWNrIG9iamVjdCB1c2VkIHRvIGNvbnZleSBzdGF0dXMgdG8gdGhlCisgICAgICogdXNlcnNwYWNlLgorICAgICAqLworICAgIG9uZXdheSBzZXRDYWxsYmFjayhJVXNiQ2FsbGJhY2sgY2FsbGJhY2spOworCisgICAgLyoqCisgICAgICogVGhpcyBmdW5jdGlvbnMgaXMgdXNlZCB0byByZXF1ZXN0IHRoZSBoYWwgZm9yIHRoZSBjdXJyZW50IHN0YXR1cworICAgICAqIHN0YXR1cyBvZiB0aGUgVHlwZS1DIHBvcnRzLiBUaGlzIG1ldGhvZCBpcyBhc3luYy9vbmV3YXkuIFRoZSByZXN1bHQgb2YgdGhlCisgICAgICogcXVlcnkgd291bGQgYmUgc2VudCB0aHJvdWdoIHRoZSBJVXNiQ2FsbGJhY2sgb2JqZWN0J3Mgbm90aWZ5Um9sZVN3aXRjaFN0YXR1cworICAgICAqIHRvIHRoZSBjYWxsZXIuIFRoaXMgYXBpIHdvdWxkIHdvdWxkIGxldCB0aGUgY2FsbGVyIGtub3cgb2YgdGhlIG51bWJlcgorICAgICAqIG9mIHR5cGUtYyBwb3J0cyB0aGF0IGFyZSBwcmVzZW50IGFuZCB0aGVpciBjb25uZWN0aW9uIHN0YXR1cyB0aHJvdWdoIHRoZQorICAgICAqIFBvcnRTdGF0dXMgdHlwZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgcXVlcnlQb3J0U3RhdHVzKCk7Cit9OworCmRpZmYgLS1naXQgYS91c2IvMS4wL0lVc2JDYWxsYmFjay5oYWwgYi91c2IvMS4wL0lVc2JDYWxsYmFjay5oYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ5MWNiZgotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvSVVzYkNhbGxiYWNrLmhhbApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjA7CisKKy8qKgorICogQ2FsbGJhY2sgb2JqZWN0IHVzZWQgZm9yIGFsbCB0aGUgSVVzYiBhc3luYyBtZXRob2RzIHdoaWNoIGV4cGVjdHMgYSByZXN1bHQuCisgKiBDYWxsZXIgaXMgZXhwZWN0ZWQgdG8gcmVnaXN0ZXIgdGhlIGNhbGxiYWNrIG9iamVjdCB1c2luZyBzZXRDYWxsYmFjayBtZXRob2QKKyAqIHRvIHJlY2VpdmUgdXBkYXRlcyBvbiB0aGUgUG9ydFN0YXR1cy4KKyAqLworaW50ZXJmYWNlIElVc2JDYWxsYmFjayB7CisgICAgLyoqCisgICAgICogVXNlZCB0byBjb252ZXkgdGhlIGN1cnJlbnQgcG9ydCBzdGF0dXMgdG8gdGhlIGNhbGxlci4KKyAgICAgKiBDYWxsZWQgZWl0aGVyIHdoZW4gUG9ydFN0YXRlIGNoYW5nZXMgZHVlIHRvIHRoZSBwb3J0IHBhcnRuZXIgKG9yKQorICAgICAqIHdoZW4gY2FsbGVyIHJlcXVlc3RlZCBmb3IgdGhlIFBvcnRTdGF0dXMgdXBkYXRlIHRocm91Z2ggcXVlcnlQb3J0U3RhdHVzLgorICAgICAqCisgICAgICogQHBhcmFtIGN1cnJlbnRQb3J0U3RhdHVzIHZlY3RvciBvYmplY3Qgb2YgY3VycmVudCBzdGF0dXMgb2YgYWxsIHRoZQorICAgICAqIHR5cGVDIHBvcnRzIGluIHRoZSBkZXZpY2UuCisgICAgICogQHBhcmFtIHJldHZhbCBTVUNDRVNTIHdoZW4gcXVlcnkgd2FzIGRvbmUgc3VjY2Vzc2Z1bGx5LgorICAgICAqIEVSUk9SIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICBvbmV3YXkgbm90aWZ5UG9ydFN0YXR1c0NoYW5nZSh2ZWM8UG9ydFN0YXR1cz4gY3VycmVudFBvcnRTdGF0dXMsIFN0YXR1cyByZXR2YWwpOworCisgICAgLyoqCisgICAgICogVXNlZCB0byBub3RpZnkgdGhlIHJlc3VsdCBvZiB0aGUgc3dpdGNoUm9sZSBjYWxsIHRvIHRoZSBjYWxsZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcG9ydE5hbWUgbmFtZSBvZiB0aGUgcG9ydCBmb3Igd2hpY2ggdGhlIHJvbGVzd2FwIGlzIHJlcXVlc3RlZC4KKyAgICAgKiBAcGFyYW0gbmV3Um9sZSB0aGUgbmV3IHJvbGUgcmVxdWVzdGVkIGJ5IHRoZSBjYWxsZXIuCisgICAgICogQHBhcmFtIHJldHZhbCBTVUNDRVNTIGlmIHRoZSByb2xlIHN3aXRjaCBzdWNjZWVkZWQuIEZBSUxVUkUgb3RoZXJ3aXNlLgorICAgICAqLworICAgIG9uZXdheSBub3RpZnlSb2xlU3dpdGNoU3RhdHVzKHN0cmluZyBwb3J0TmFtZSwgUG9ydFJvbGUgbmV3Um9sZSwgU3RhdHVzIHJldHZhbCk7Cit9OwpkaWZmIC0tZ2l0IGEvdXNiLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsgYi91c2IvMS4wL2RlZmF1bHQvQW5kcm9pZC5tawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZmQ1M2NmCi0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwyMSBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9QUk9QUklFVEFSWV9NT0RVTEUgOj0gdHJ1ZQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMC1zZXJ2aWNlCitMT0NBTF9JTklUX1JDIDo9IGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMC1zZXJ2aWNlLnJjCitMT0NBTF9TUkNfRklMRVMgOj0gXAorICAgIHNlcnZpY2UuY3BwIFwKKyAgICBVc2IuY3BwCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICAgIGxpYmN1dGlscyBcCisgICAgbGliaGlkbGJhc2UgXAorICAgIGxpYmhpZGx0cmFuc3BvcnQgXAorICAgIGxpYmxvZyBcCisgICAgbGlidXRpbHMgXAorICAgIGxpYmhhcmR3YXJlIFwKKyAgICBhbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAgXAorCitpbmNsdWRlICQoQlVJTERfRVhFQ1VUQUJMRSkKZGlmZiAtLWdpdCBhL3VzYi8xLjAvZGVmYXVsdC9Vc2IuY3BwIGIvdXNiLzEuMC9kZWZhdWx0L1VzYi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmViODg0MgotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvZGVmYXVsdC9Vc2IuY3BwCkBAIC0wLDAgKzEsNDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlIDxkaXJlbnQuaD4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDxmc3RyZWFtPgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVkZSA8Y3V0aWxzL3VldmVudC5oPgorI2luY2x1ZGUgPHN5cy9lcG9sbC5oPgorI2luY2x1ZGUgPHV0aWxzL0Vycm9ycy5oPgorI2luY2x1ZGUgPHV0aWxzL1N0cm9uZ1BvaW50ZXIuaD4KKworI2luY2x1ZGUgIlVzYi5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHVzYiB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCisvLyBTZXQgYnkgdGhlIHNpZ25hbCBoYW5kbGVyIHRvIGRlc3Ryb3kgdGhlIHRocmVhZAordm9sYXRpbGUgYm9vbCBkZXN0cm95VGhyZWFkOworCitpbnQzMl90IHJlYWRGaWxlKHN0ZDo6c3RyaW5nIGZpbGVuYW1lLCBzdGQ6OnN0cmluZyYgY29udGVudHMpIHsKKyAgICBzdGQ6Omlmc3RyZWFtIGZpbGUoZmlsZW5hbWUpOworCisgICAgaWYgKGZpbGUuaXNfb3BlbigpKSB7CisgICAgICAgIGdldGxpbmUoZmlsZSwgY29udGVudHMpOworICAgICAgICBmaWxlLmNsb3NlKCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gLTE7Cit9CisKK3N0ZDo6c3RyaW5nIGFwcGVuZFJvbGVOb2RlSGVscGVyKGNvbnN0IHN0ZDo6c3RyaW5nIHBvcnROYW1lLCBQb3J0Um9sZVR5cGUgdHlwZSkgeworICAgIHN0ZDo6c3RyaW5nIG5vZGUoIi9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYi8iICsgcG9ydE5hbWUpOworCisgICAgc3dpdGNoKHR5cGUpIHsKKyAgICAgICAgY2FzZSBQb3J0Um9sZVR5cGU6OkRBVEFfUk9MRToKKyAgICAgICAgICAgIHJldHVybiBub2RlICsgIi9kYXRhX3JvbGUiOworICAgICAgICBjYXNlIFBvcnRSb2xlVHlwZTo6UE9XRVJfUk9MRToKKyAgICAgICAgICAgIHJldHVybiBub2RlICsgIi9wb3dlcl9yb2xlIjsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBub2RlICsgIi9tb2RlIjsKKyAgICB9Cit9CisKK3N0ZDo6c3RyaW5nIGNvbnZlcnRSb2xldG9TdHJpbmcoUG9ydFJvbGUgcm9sZSkgeworICAgIGlmIChyb2xlLnR5cGUgPT0gUG9ydFJvbGVUeXBlOjpQT1dFUl9ST0xFKSB7CisgICAgICAgIGlmIChyb2xlLnJvbGUgPT0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0UG93ZXJSb2xlOjpTT1VSQ0UpKQorICAgICAgICAgICAgcmV0dXJuICJzb3VyY2UiOworICAgICAgICBlbHNlIGlmIChyb2xlLnJvbGUgPT0gIHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydFBvd2VyUm9sZTo6U0lOSykpCisgICAgICAgICAgICByZXR1cm4gInNpbmsiOworICAgIH0gZWxzZSBpZiAocm9sZS50eXBlID09IFBvcnRSb2xlVHlwZTo6REFUQV9ST0xFKSB7CisgICAgICAgIGlmIChyb2xlLnJvbGUgPT0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0RGF0YVJvbGU6OkhPU1QpKQorICAgICAgICAgICAgcmV0dXJuICJob3N0IjsKKyAgICAgICAgaWYgKHJvbGUucm9sZSA9PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnREYXRhUm9sZTo6REVWSUNFKSkKKyAgICAgICAgICAgIHJldHVybiAiZGV2aWNlIjsKKyAgICB9IGVsc2UgaWYgKHJvbGUudHlwZSA9PSBQb3J0Um9sZVR5cGU6Ok1PREUpIHsKKyAgICAgICAgaWYgKHJvbGUucm9sZSA9PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRNb2RlOjpVRlApKQorICAgICAgICAgICAgcmV0dXJuICJ1ZnAiOworICAgICAgICBpZiAocm9sZS5yb2xlID09IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydE1vZGU6OkRGUCkpCisgICAgICAgICAgICByZXR1cm4gImRmcCI7CisgICAgfQorICAgIHJldHVybiAibm9uZSI7Cit9CisKK1JldHVybjx2b2lkPiBVc2I6OnN3aXRjaFJvbGUoY29uc3QgaGlkbF9zdHJpbmcmIHBvcnROYW1lLAorICAgICAgICBjb25zdCBQb3J0Um9sZSYgbmV3Um9sZSkgeworICAgIHN0ZDo6c3RyaW5nIGZpbGVuYW1lID0gYXBwZW5kUm9sZU5vZGVIZWxwZXIoc3RkOjpzdHJpbmcocG9ydE5hbWUuY19zdHIoKSksCisgICAgICAgIG5ld1JvbGUudHlwZSk7CisgICAgc3RkOjpvZnN0cmVhbSBmaWxlKGZpbGVuYW1lKTsKKyAgICBzdGQ6OnN0cmluZyB3cml0dGVuOworCisgICAgQUxPR0koImZpbGVuYW1lIHdyaXRlOiAlcyByb2xlOiVkIiwgZmlsZW5hbWUuY19zdHIoKSwgbmV3Um9sZS5yb2xlKTsKKworICAgIGlmIChmaWxlLmlzX29wZW4oKSkgeworICAgICAgICBmaWxlIDw8IGNvbnZlcnRSb2xldG9TdHJpbmcobmV3Um9sZSkuY19zdHIoKTsKKyAgICAgICAgZmlsZS5jbG9zZSgpOworICAgICAgICBpZiAoIXJlYWRGaWxlKGZpbGVuYW1lLCB3cml0dGVuKSkgeworICAgICAgICAgICAgQUxPR0koIndyaXR0ZW46ICVzIiwgd3JpdHRlbi5jX3N0cigpKTsKKyAgICAgICAgICAgIGlmICh3cml0dGVuID09IGNvbnZlcnRSb2xldG9TdHJpbmcobmV3Um9sZSkpIHsKKyAgICAgICAgICAgICAgICBBTE9HSSgiUm9sZSBzd2l0Y2ggc3VjY2Vzc2Z1bGwiKTsKKyAgICAgICAgICAgICAgICBSZXR1cm48dm9pZD4gcmV0ID0KKyAgICAgICAgICAgICAgICAgICAgbUNhbGxiYWNrLT5ub3RpZnlSb2xlU3dpdGNoU3RhdHVzKHBvcnROYW1lLCBuZXdSb2xlLAorICAgICAgICAgICAgICAgICAgICBTdGF0dXM6OlNVQ0NFU1MpOworICAgICAgICAgICAgICAgIGlmICghcmV0LmlzT2soKSkKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoIlJvbGVTd2l0Y2hTdGF0dXMgZXJyb3IgJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gbUNhbGxiYWNrLT5ub3RpZnlSb2xlU3dpdGNoU3RhdHVzKHBvcnROYW1lLCBuZXdSb2xlLCBTdGF0dXM6OkVSUk9SKTsKKyAgICBpZiAoIXJldC5pc09rKCkpCisgICAgICAgIEFMT0dFKCJSb2xlU3dpdGNoU3RhdHVzIGVycm9yICVzIiwgcmV0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitTdGF0dXMgZ2V0Q3VycmVudFJvbGVIZWxwZXIoc3RkOjpzdHJpbmcgcG9ydE5hbWUsCisgICAgICAgIFBvcnRSb2xlVHlwZSB0eXBlLCB1aW50MzJfdCAmY3VycmVudFJvbGUpICB7CisgICAgc3RkOjpzdHJpbmcgZmlsZW5hbWU7CisgICAgc3RkOjpzdHJpbmcgcm9sZU5hbWU7CisKKyAgICBpZiAodHlwZSA9PSBQb3J0Um9sZVR5cGU6OlBPV0VSX1JPTEUpIHsKKyAgICAgICAgZmlsZW5hbWUgPSAiL3N5cy9jbGFzcy9kdWFsX3JvbGVfdXNiLyIgKworICAgICAgICAgICAgcG9ydE5hbWUgKyAiL3Bvd2VyX3JvbGUiOworICAgICAgICBjdXJyZW50Um9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0UG93ZXJSb2xlOjpOT05FKTsKKyAgICB9IGVsc2UgaWYgKHR5cGUgPT0gUG9ydFJvbGVUeXBlOjpEQVRBX1JPTEUpIHsKKyAgICAgICAgZmlsZW5hbWUgPSAiL3N5cy9jbGFzcy9kdWFsX3JvbGVfdXNiLyIgKworICAgICAgICAgICAgcG9ydE5hbWUgKyAiL2RhdGFfcm9sZSI7CisgICAgICAgIGN1cnJlbnRSb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0RGF0YVJvbGU6Ok5PTkUpOworICAgIH0gZWxzZSBpZiAodHlwZSA9PSBQb3J0Um9sZVR5cGU6Ok1PREUpIHsKKyAgICAgICAgZmlsZW5hbWUgPSAiL3N5cy9jbGFzcy9kdWFsX3JvbGVfdXNiLyIgKworICAgICAgICAgICAgcG9ydE5hbWUgKyAiL21vZGUiOworICAgICAgICBjdXJyZW50Um9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydE1vZGU6Ok5PTkUpOworICAgIH0KKworICAgIGlmIChyZWFkRmlsZShmaWxlbmFtZSwgcm9sZU5hbWUpKSB7CisgICAgICAgIEFMT0dFKCJnZXRDdXJyZW50Um9sZTogRmFpbGVkIHRvIG9wZW4gZmlsZXN5c3RlbSBub2RlIik7CisgICAgICAgIHJldHVybiBTdGF0dXM6OkVSUk9SOworICAgIH0KKworICAgIGlmIChyb2xlTmFtZSA9PSAiZGZwIikKKyAgICAgICAgY3VycmVudFJvbGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRNb2RlOjpERlApOworICAgIGVsc2UgaWYgKHJvbGVOYW1lID09ICJ1ZnAiKQorICAgICAgICBjdXJyZW50Um9sZSA9IHN0YXRpY19jYXN0PHVpbnQzMl90PiAoUG9ydE1vZGU6OlVGUCk7CisgICAgZWxzZSBpZiAocm9sZU5hbWUgPT0gInNvdXJjZSIpCisgICAgICAgIGN1cnJlbnRSb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0UG93ZXJSb2xlOjpTT1VSQ0UpOworICAgIGVsc2UgaWYgKHJvbGVOYW1lID09ICJzaW5rIikKKyAgICAgICAgY3VycmVudFJvbGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnRQb3dlclJvbGU6OlNJTkspOworICAgIGVsc2UgaWYgKHJvbGVOYW1lID09ICJob3N0IikKKyAgICAgICAgY3VycmVudFJvbGUgPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4gKFBvcnREYXRhUm9sZTo6SE9TVCk7CisgICAgZWxzZSBpZiAocm9sZU5hbWUgPT0gImRldmljZSIpCisgICAgICAgIGN1cnJlbnRSb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+IChQb3J0RGF0YVJvbGU6OkRFVklDRSk7CisgICAgZWxzZSBpZiAocm9sZU5hbWUgIT0gIm5vbmUiKSB7CisgICAgICAgICAvKiBjYXNlIGZvciBub25lIGhhcyBhbHJlYWR5IGJlZW4gYWRkcmVzc2VkLgorICAgICAgICAgICogc28gd2UgY2hlY2sgaWYgdGhlIHJvbGUgaXNudCBub25lLgorICAgICAgICAgICovCisgICAgICAgIHJldHVybiBTdGF0dXM6OlVOUkVDT0dOSVpFRF9ST0xFOworICAgIH0KKyAgICByZXR1cm4gU3RhdHVzOjpTVUNDRVNTOworfQorCitTdGF0dXMgZ2V0VHlwZUNQb3J0TmFtZXNIZWxwZXIoc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+JiBuYW1lcykgeworICAgIERJUiAqZHA7CisKKyAgICBkcCA9IG9wZW5kaXIoIi9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYiIpOworICAgIGlmIChkcCAhPSBOVUxMKQorICAgIHsKK3Jlc2NhbjoKKyAgICAgICAgaW50MzJfdCBwb3J0cyA9IDA7CisgICAgICAgIGludDMyX3QgY3VycmVudCA9IDA7CisgICAgICAgIHN0cnVjdCBkaXJlbnQgKmVwOworCisgICAgICAgIHdoaWxlICgoZXAgPSByZWFkZGlyIChkcCkpKSB7CisgICAgICAgICAgICBpZiAoZXAtPmRfdHlwZSA9PSBEVF9MTkspIHsKKyAgICAgICAgICAgICAgICBwb3J0cysrOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHBvcnRzID09IDApIHsKKyAgICAgICAgICAgIGNsb3NlZGlyKGRwKTsKKyAgICAgICAgICAgIHJldHVybiBTdGF0dXM6OlNVQ0NFU1M7CisgICAgICAgIH0KKworICAgICAgICBuYW1lcy5yZXNpemUocG9ydHMpOworICAgICAgICByZXdpbmRkaXIoZHApOworCisgICAgICAgIHdoaWxlICgoZXAgPSByZWFkZGlyIChkcCkpKSB7CisgICAgICAgICAgICBpZiAoZXAtPmRfdHlwZSA9PSBEVF9MTkspIHsKKyAgICAgICAgICAgICAgICAvKiBDaGVjayB0byBzZWUgaWYgbmV3IHBvcnRzIHdlcmUgYWRkZWQgc2luY2UgdGhlIGZpcnN0IHBhc3MuICovCisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQgPj0gcG9ydHMpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV3aW5kZGlyKGRwKTsKKyAgICAgICAgICAgICAgICAgICAgZ290byByZXNjYW47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5hbWVzW2N1cnJlbnQrK10gPSBlcC0+ZF9uYW1lOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgY2xvc2VkaXIgKGRwKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6U1VDQ0VTUzsKKyAgICB9CisKKyAgICBBTE9HRSgiRmFpbGVkIHRvIG9wZW4gL3N5cy9jbGFzcy9kdWFsX3JvbGVfdXNiIik7CisgICAgcmV0dXJuIFN0YXR1czo6RVJST1I7Cit9CisKK2Jvb2wgY2FuU3dpdGNoUm9sZUhlbHBlcihjb25zdCBzdGQ6OnN0cmluZyBwb3J0TmFtZSwgUG9ydFJvbGVUeXBlIHR5cGUpICB7CisgICAgc3RkOjpzdHJpbmcgZmlsZW5hbWUgPSBhcHBlbmRSb2xlTm9kZUhlbHBlcihwb3J0TmFtZSwgdHlwZSk7CisgICAgc3RkOjpvZnN0cmVhbSBmaWxlKGZpbGVuYW1lKTsKKworICAgIGlmIChmaWxlLmlzX29wZW4oKSkgeworICAgICAgICBmaWxlLmNsb3NlKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0YXR1cyBnZXRQb3J0TW9kZUhlbHBlcihjb25zdCBzdGQ6OnN0cmluZyBwb3J0TmFtZSwgUG9ydE1vZGUmIHBvcnRNb2RlKSAgeworICAgIHN0ZDo6c3RyaW5nIGZpbGVuYW1lID0gIi9zeXMvY2xhc3MvZHVhbF9yb2xlX3VzYi8iICsKKyAgICBzdGQ6OnN0cmluZyhwb3J0TmFtZS5jX3N0cigpKSArICIvc3VwcG9ydGVkX21vZGVzIjsKKyAgICBzdGQ6OnN0cmluZyBtb2RlczsKKworICAgIGlmIChyZWFkRmlsZShmaWxlbmFtZSwgbW9kZXMpKSB7CisgICAgICAgIEFMT0dFKCJnZXRTdXBwb3J0ZWRSb2xlczogRmFpbGVkIHRvIG9wZW4gZmlsZXN5c3RlbSBub2RlIik7CisgICAgICAgIHJldHVybiBTdGF0dXM6OkVSUk9SOworICAgIH0KKworICAgIGlmIChtb2RlcyA9PSAidWZwIGRmcCIpCisgICAgICAgIHBvcnRNb2RlID0gUG9ydE1vZGU6OkRSUDsKKyAgICBlbHNlICBpZiAobW9kZXMgPT0gInVmcCIpCisgICAgICAgIHBvcnRNb2RlID0gUG9ydE1vZGU6OlVGUDsKKyAgICBlbHNlIGlmICAobW9kZXMgPT0gImRmcCIpCisgICAgICAgIHBvcnRNb2RlID0gUG9ydE1vZGU6OkRGUDsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBTdGF0dXM6OlVOUkVDT0dOSVpFRF9ST0xFOworCisgICAgICAgIHJldHVybiBTdGF0dXM6OlNVQ0NFU1M7Cit9CisKK1N0YXR1cyBnZXRQb3J0U3RhdHVzSGVscGVyIChoaWRsX3ZlYzxQb3J0U3RhdHVzPiYgY3VycmVudFBvcnRTdGF0dXMpIHsKKyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gbmFtZXM7CisgICAgU3RhdHVzIHJlc3VsdCA9IGdldFR5cGVDUG9ydE5hbWVzSGVscGVyKG5hbWVzKTsKKworICAgIGlmIChyZXN1bHQgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzLnJlc2l6ZShuYW1lcy5zaXplKCkpOworICAgICAgICBmb3Ioc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+OjpzaXplX3R5cGUgaSA9IDA7IGkgPCBuYW1lcy5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgQUxPR0koIiVzIiwgbmFtZXNbaV0uY19zdHIoKSk7CisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1tpXS5wb3J0TmFtZSA9IG5hbWVzW2ldOworCisgICAgICAgICAgICB1aW50MzJfdCBjdXJyZW50Um9sZTsKKyAgICAgICAgICAgIGlmIChnZXRDdXJyZW50Um9sZUhlbHBlcihuYW1lc1tpXSwgUG9ydFJvbGVUeXBlOjpQT1dFUl9ST0xFLAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50Um9sZSkgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY3VycmVudFBvd2VyUm9sZSA9CisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UG9ydFBvd2VyUm9sZT4gKGN1cnJlbnRSb2xlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIkVycm9yIHdoaWxlIHJldHJlaXZpbmcgcG9ydE5hbWVzIik7CisgICAgICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoZ2V0Q3VycmVudFJvbGVIZWxwZXIobmFtZXNbaV0sCisgICAgICAgICAgICAgICAgICAgIFBvcnRSb2xlVHlwZTo6REFUQV9ST0xFLCBjdXJyZW50Um9sZSkgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY3VycmVudERhdGFSb2xlID0KKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFBvcnREYXRhUm9sZT4gKGN1cnJlbnRSb2xlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIkVycm9yIHdoaWxlIHJldHJlaXZpbmcgY3VycmVudCBwb3J0IHJvbGUiKTsKKyAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChnZXRDdXJyZW50Um9sZUhlbHBlcihuYW1lc1tpXSwgUG9ydFJvbGVUeXBlOjpNT0RFLAorICAgICAgICAgICAgICAgICAgICBjdXJyZW50Um9sZSkgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY3VycmVudE1vZGUgPQorICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxQb3J0TW9kZT4gKGN1cnJlbnRSb2xlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIkVycm9yIHdoaWxlIHJldHJlaXZpbmcgY3VycmVudCBkYXRhIHJvbGUiKTsKKyAgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzW2ldLmNhbkNoYW5nZU1vZGUgPQorICAgICAgICAgICAgICAgIGNhblN3aXRjaFJvbGVIZWxwZXIobmFtZXNbaV0sIFBvcnRSb2xlVHlwZTo6TU9ERSk7CisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1tpXS5jYW5DaGFuZ2VEYXRhUm9sZSA9CisgICAgICAgICAgICAgICAgY2FuU3dpdGNoUm9sZUhlbHBlcihuYW1lc1tpXSwgUG9ydFJvbGVUeXBlOjpEQVRBX1JPTEUpOworICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY2FuQ2hhbmdlUG93ZXJSb2xlID0KKyAgICAgICAgICAgICAgICBjYW5Td2l0Y2hSb2xlSGVscGVyKG5hbWVzW2ldLCBQb3J0Um9sZVR5cGU6OlBPV0VSX1JPTEUpOworCisgICAgICAgICAgICBBTE9HSSgiY2FuQ2hhbmdlTW9kZTogJWQgY2FuQ2hhZ2VkYXRhOiAlZCBjYW5DaGFuZ2VQb3dlcjolZCIsCisgICAgICAgICAgICAgICAgY3VycmVudFBvcnRTdGF0dXNbaV0uY2FuQ2hhbmdlTW9kZSwKKyAgICAgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1tpXS5jYW5DaGFuZ2VEYXRhUm9sZSwKKyAgICAgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1tpXS5jYW5DaGFuZ2VQb3dlclJvbGUpOworCisgICAgICAgICAgICBpZiAoZ2V0UG9ydE1vZGVIZWxwZXIobmFtZXNbaV0sIGN1cnJlbnRQb3J0U3RhdHVzW2ldLnN1cHBvcnRlZE1vZGVzKQorICAgICAgICAgICAgICAgICAgIT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgQUxPR0UoIkVycm9yIHdoaWxlIHJldHJpZXZpbmcgcG9ydCBtb2RlcyIpOworICAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gU3RhdHVzOjpTVUNDRVNTOworICAgIH0KK2RvbmU6CisgICAgcmV0dXJuIFN0YXR1czo6RVJST1I7Cit9CisKK1JldHVybjx2b2lkPiBVc2I6OnF1ZXJ5UG9ydFN0YXR1cygpIHsKKyAgICBoaWRsX3ZlYzxQb3J0U3RhdHVzPiBjdXJyZW50UG9ydFN0YXR1czsKKyAgICBTdGF0dXMgc3RhdHVzOworCisgICAgc3RhdHVzID0gZ2V0UG9ydFN0YXR1c0hlbHBlcihjdXJyZW50UG9ydFN0YXR1cyk7CisgICAgUmV0dXJuPHZvaWQ+IHJldCA9IG1DYWxsYmFjay0+bm90aWZ5UG9ydFN0YXR1c0NoYW5nZShjdXJyZW50UG9ydFN0YXR1cywKKyAgICAgICBzdGF0dXMpOworICAgIGlmICghcmV0LmlzT2soKSkKKyAgICAgICAgQUxPR0UoInF1ZXJ5UG9ydFN0YXR1cyBlcnJvciAlcyIsIHJldC5kZXNjcmlwdGlvbigpLmNfc3RyKCkpOworCisgICAgcmV0dXJuIFZvaWQoKTsKK30KK3N0cnVjdCBkYXRhIHsKKyAgICBpbnQgdWV2ZW50X2ZkOworICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OmltcGxlbWVudGF0aW9uOjpVc2IgKnVzYjsKK307CisKK3N0YXRpYyB2b2lkIHVldmVudF9ldmVudCh1aW50MzJfdCAvKmVwZXZlbnRzKi8sIHN0cnVjdCBkYXRhICpwYXlsb2FkKSB7CisgICAgY2hhciBtc2dbVUVWRU5UX01TR19MRU4gKyAyXTsKKyAgICBjaGFyICpjcDsKKyAgICBpbnQgbjsKKworICAgIG4gPSB1ZXZlbnRfa2VybmVsX211bHRpY2FzdF9yZWN2KHBheWxvYWQtPnVldmVudF9mZCwgbXNnLCBVRVZFTlRfTVNHX0xFTik7CisgICAgaWYgKG4gPD0gMCkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChuID49IFVFVkVOVF9NU0dfTEVOKSAgIC8qIG92ZXJmbG93IC0tIGRpc2NhcmQgKi8KKyAgICAgICAgcmV0dXJuOworCisgICAgbXNnW25dID0gJ1wwJzsKKyAgICBtc2dbbiArIDFdID0gJ1wwJzsKKyAgICBjcCA9IG1zZzsKKworICAgIHdoaWxlICgqY3ApIHsKKyAgICAgICAgaWYgKCFzdHJjbXAoY3AsICJTVUJTWVNURU09ZHVhbF9yb2xlX3VzYiIpKSB7CisgICAgICAgICAgICBBTE9HRSgidWV2ZW50IHJlY2VpdmVkICVzIiwgY3ApOworICAgICAgICAgICAgaWYgKHBheWxvYWQtPnVzYi0+bUNhbGxiYWNrICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBoaWRsX3ZlYzxQb3J0U3RhdHVzPiBjdXJyZW50UG9ydFN0YXR1czsKKyAgICAgICAgICAgICAgICBTdGF0dXMgc3RhdHVzID0gZ2V0UG9ydFN0YXR1c0hlbHBlcihjdXJyZW50UG9ydFN0YXR1cyk7CisgICAgICAgICAgICAgICAgUmV0dXJuPHZvaWQ+IHJldCA9CisgICAgICAgICAgICAgICAgICAgIHBheWxvYWQtPnVzYi0+bUNhbGxiYWNrLT5ub3RpZnlQb3J0U3RhdHVzQ2hhbmdlKGN1cnJlbnRQb3J0U3RhdHVzLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIGlmICghcmV0LmlzT2soKSkKKyAgICAgICAgICAgICAgICAgICAgQUxPR0UoImVycm9yICVzIiwgcmV0LmRlc2NyaXB0aW9uKCkuY19zdHIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAvKiBhZHZhbmNlIHRvIGFmdGVyIHRoZSBuZXh0IFwwICovCisgICAgICAgIHdoaWxlICgqY3ArKyk7CisgICAgfQorfQorCit2b2lkKiB3b3JrKHZvaWQqIHBhcmFtKSB7CisgICAgaW50IGVwb2xsX2ZkLCB1ZXZlbnRfZmQ7CisgICAgc3RydWN0IGVwb2xsX2V2ZW50IGV2OworICAgIGludCBuZXZlbnRzID0gMDsKKyAgICBzdHJ1Y3QgZGF0YSBwYXlsb2FkOworCisgICAgQUxPR0UoImNyZWF0aW5nIHRocmVhZCIpOworCisgICAgdWV2ZW50X2ZkID0gdWV2ZW50X29wZW5fc29ja2V0KDY0KjEwMjQsIHRydWUpOworCisgICAgaWYgKHVldmVudF9mZCA8IDApIHsKKyAgICAgICAgQUxPR0UoInVldmVudF9pbml0OiB1ZXZlbnRfb3Blbl9zb2NrZXQgZmFpbGVkXG4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcGF5bG9hZC51ZXZlbnRfZmQgPSB1ZXZlbnRfZmQ7CisgICAgcGF5bG9hZC51c2IgPSAoYW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6aW1wbGVtZW50YXRpb246OlVzYiAqKXBhcmFtOworCisgICAgZmNudGwodWV2ZW50X2ZkLCBGX1NFVEZMLCBPX05PTkJMT0NLKTsKKworICAgIGV2LmV2ZW50cyA9IEVQT0xMSU47CisgICAgZXYuZGF0YS5wdHIgPSAodm9pZCAqKXVldmVudF9ldmVudDsKKworICAgIGVwb2xsX2ZkID0gZXBvbGxfY3JlYXRlKDY0KTsKKyAgICBpZiAoZXBvbGxfZmQgPT0gLTEpIHsKKyAgICAgICAgQUxPR0UoImVwb2xsX2NyZWF0ZSBmYWlsZWQ7IGVycm5vPSVkIiwgZXJybm8pOworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKworICAgIGlmIChlcG9sbF9jdGwoZXBvbGxfZmQsIEVQT0xMX0NUTF9BREQsIHVldmVudF9mZCwgJmV2KSA9PSAtMSkgeworICAgICAgICBBTE9HRSgiZXBvbGxfY3RsIGZhaWxlZDsgZXJybm89JWQiLCBlcnJubyk7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorCisgICAgd2hpbGUgKCFkZXN0cm95VGhyZWFkKSB7CisgICAgICAgIHN0cnVjdCBlcG9sbF9ldmVudCBldmVudHNbNjRdOworCisgICAgICAgIG5ldmVudHMgPSBlcG9sbF93YWl0KGVwb2xsX2ZkLCBldmVudHMsIDY0LCAtMSk7CisgICAgICAgIGlmIChuZXZlbnRzID09IC0xKSB7CisgICAgICAgICAgICBpZiAoZXJybm8gPT0gRUlOVFIpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBBTE9HRSgidXNiIGVwb2xsX3dhaXQgZmFpbGVkOyBlcnJubz0lZCIsIGVycm5vKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCBuZXZlbnRzOyArK24pIHsKKyAgICAgICAgICAgIGlmIChldmVudHNbbl0uZGF0YS5wdHIpCisgICAgICAgICAgICAgICAgKCoodm9pZCAoKikoaW50LCBzdHJ1Y3QgZGF0YSAqcGF5bG9hZCkpZXZlbnRzW25dLmRhdGEucHRyKQorICAgICAgICAgICAgICAgICAgICAoZXZlbnRzW25dLmV2ZW50cywgJnBheWxvYWQpOworICAgICAgICB9CisgICAgfQorCisgICAgQUxPR0koImV4aXRpbmcgd29ya2VyIHRocmVhZCIpOworZXJyb3I6CisgICAgY2xvc2UodWV2ZW50X2ZkKTsKKworICAgIGlmIChlcG9sbF9mZCA+PSAwKQorICAgICAgICBjbG9zZShlcG9sbF9mZCk7CisKKyAgICByZXR1cm4gTlVMTDsKK30KKwordm9pZCBzaWdoYW5kbGVyKGludCBzaWcpCit7CisgICAgaWYgKHNpZyA9PSBTSUdVU1IxKSB7CisgICAgICAgIGRlc3Ryb3lUaHJlYWQgPSB0cnVlOworICAgICAgICBBTE9HSSgiZGVzdHJveSBzZXQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzaWduYWwoU0lHVVNSMSwgc2lnaGFuZGxlcik7Cit9CisKK1JldHVybjx2b2lkPiBVc2I6OnNldENhbGxiYWNrKGNvbnN0IHNwPElVc2JDYWxsYmFjaz4mIGNhbGxiYWNrKSB7CisKKyAgICBwdGhyZWFkX211dGV4X2xvY2soJm1Mb2NrKTsKKyAgICBpZiAoKG1DYWxsYmFjayA9PSBOVUxMICYmIGNhbGxiYWNrID09IE5VTEwpIHx8CisgICAgICAgICAgICAobUNhbGxiYWNrICE9IE5VTEwgJiYgY2FsbGJhY2sgIT0gTlVMTCkpIHsKKyAgICAgICAgbUNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtTG9jayk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgbUNhbGxiYWNrID0gY2FsbGJhY2s7CisgICAgQUxPR0koInJlZ2lzdGVyaW5nIGNhbGxiYWNrIik7CisKKyAgICBpZiAobUNhbGxiYWNrID09IE5VTEwpIHsKKyAgICAgICAgaWYgICghcHRocmVhZF9raWxsKG1Qb2xsLCBTSUdVU1IxKSkgeworICAgICAgICAgICAgcHRocmVhZF9qb2luKG1Qb2xsLCBOVUxMKTsKKyAgICAgICAgICAgIEFMT0dJKCJwdGhyZWFkIGRlc3Ryb3llZCIpOworICAgICAgICB9CisgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtTG9jayk7CisgICAgICAgIHJldHVybiBWb2lkKCk7CisgICAgfQorCisgICAgZGVzdHJveVRocmVhZCA9IGZhbHNlOworICAgIHNpZ25hbChTSUdVU1IxLCBzaWdoYW5kbGVyKTsKKworICAgIGlmIChwdGhyZWFkX2NyZWF0ZSgmbVBvbGwsIE5VTEwsIHdvcmssIHRoaXMpKSB7CisgICAgICAgIEFMT0dFKCJwdGhyZWFkIGNyZWF0aW9uIGZhaWxlZCAlZCIsIGVycm5vKTsKKyAgICAgICAgbUNhbGxiYWNrID0gTlVMTDsKKyAgICB9CisgICAgcHRocmVhZF9tdXRleF91bmxvY2soJm1Mb2NrKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCisvLyBQcm90ZWN0cyAqdXNiIGFzc2lnbm1lbnQKK3B0aHJlYWRfbXV0ZXhfdCBsb2NrID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKK1VzYiAqdXNiOworCitVc2I6OlVzYigpIHsKKyAgICBwdGhyZWFkX211dGV4X2xvY2soJmxvY2spOworICAgIC8vIE1ha2UgdGhpcyBhIHNpbmdsZXRvbiBjbGFzcworICAgIGFzc2VydCh1c2IgPT0gTlVMTCk7CisgICAgdXNiID0gdGhpczsKKyAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbG9jayk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB1c2IKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKZGlmZiAtLWdpdCBhL3VzYi8xLjAvZGVmYXVsdC9Vc2IuaCBiL3VzYi8xLjAvZGVmYXVsdC9Vc2IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGZjYWM2Ci0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC9kZWZhdWx0L1VzYi5oCkBAIC0wLDAgKzEsNTIgQEAKKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9VU0JfVjFfMF9VU0JfSAorI2RlZmluZSBBTkRST0lEX0hBUkRXQVJFX1VTQl9WMV8wX1VTQl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvSVVzYi5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisjaW5jbHVkZSA8aGlkbC9TdGF0dXMuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpZmRlZiBMT0dfVEFHCisjdW5kZWYgTE9HX1RBRworI2VuZGlmCisKKyNkZWZpbmUgTE9HX1RBRyAiYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wLXNlcnZpY2UiCisjZGVmaW5lIFVFVkVOVF9NU0dfTEVOIDIwNDgKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB1c2IgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpJVXNiOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpJVXNiQ2FsbGJhY2s7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OlBvcnRSb2xlOwordXNpbmcgOjphbmRyb2lkOjpoaWRsOjpiYXNlOjpWMV8wOjpJQmFzZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX21lbW9yeTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfc3RyaW5nOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworc3RydWN0IFVzYiA6IHB1YmxpYyBJVXNiIHsKKyAgICBVc2IoKTsKKyAgICBSZXR1cm48dm9pZD4gc3dpdGNoUm9sZShjb25zdCBoaWRsX3N0cmluZyYgcG9ydE5hbWUsIGNvbnN0IFBvcnRSb2xlJiByb2xlKSBvdmVycmlkZTsKKyAgICBSZXR1cm48dm9pZD4gc2V0Q2FsbGJhY2soY29uc3Qgc3A8SVVzYkNhbGxiYWNrPiYgY2FsbGJhY2spIG92ZXJyaWRlOworICAgIFJldHVybjx2b2lkPiBxdWVyeVBvcnRTdGF0dXMoKSBvdmVycmlkZTsKKworICAgIHNwPElVc2JDYWxsYmFjaz4gbUNhbGxiYWNrOworICAgIHByaXZhdGU6CisgICAgICAgIHB0aHJlYWRfdCBtUG9sbDsKKyAgICAgICAgcHRocmVhZF9tdXRleF90IG1Mb2NrID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKK307CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB1c2IKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX1VTQl9WMV8wX1VTQl9ICmRpZmYgLS1naXQgYS91c2IvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wLXNlcnZpY2UucmMgYi91c2IvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmVhMDcyMAotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnVzYkAxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgdXNiLWhhbC0xLTAgL3ZlbmRvci9iaW4vaHcvYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvdXNiLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvdXNiLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzYWI2ZjAKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpbmNsdWRlIDxoaWRsL0hpZGxUcmFuc3BvcnRTdXBwb3J0Lmg+CisjaW5jbHVkZSAiVXNiLmgiCisKK3VzaW5nIGFuZHJvaWQ6OnNwOworCisvLyBsaWJod2JpbmRlcjoKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpjb25maWd1cmVScGNUaHJlYWRwb29sOwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OmpvaW5ScGNUaHJlYWRwb29sOworCisvLyBHZW5lcmF0ZWQgSElETCBmaWxlcwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6SVVzYjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OmltcGxlbWVudGF0aW9uOjpVc2I7CisKK3VzaW5nIGFuZHJvaWQ6OnN0YXR1c190OwordXNpbmcgYW5kcm9pZDo6T0s7CisKK2ludCBtYWluKCkgeworCisgICAgYW5kcm9pZDo6c3A8SVVzYj4gc2VydmljZSA9IG5ldyBVc2IoKTsKKworICAgIGNvbmZpZ3VyZVJwY1RocmVhZHBvb2woMSwgdHJ1ZSAvKmNhbGxlcldpbGxKb2luKi8pOworICAgIHN0YXR1c190IHN0YXR1cyA9IHNlcnZpY2UtPnJlZ2lzdGVyQXNTZXJ2aWNlKCk7CisKKyAgICBpZiAoc3RhdHVzID09IE9LKSB7CisgICAgICAgIEFMT0dJKCJVU0IgSEFMIFJlYWR5LiIpOworICAgICAgICBqb2luUnBjVGhyZWFkcG9vbCgpOworICAgIH0KKworICAgIEFMT0dFKCJDYW5ub3QgcmVnaXN0ZXIgVVNCIEhBTCBzZXJ2aWNlIik7CisgICAgcmV0dXJuIDE7Cit9CmRpZmYgLS1naXQgYS91c2IvMS4wL3R5cGVzLmhhbCBiL3VzYi8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwMjYxNmUKLS0tIC9kZXYvbnVsbAorKysgYi91c2IvMS4wL3R5cGVzLmhhbApAQCAtMCwwICsxLDIxNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudXNiQDEuMDsKKworCitlbnVtIFN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICBTVUNDRVNTID0gMCwKKworICAgIC8qKgorICAgICAqIGVycm9yIHZhbHVlIHdoZW4gdGhlIEhBTCBvcGVyYXRpb24gZmFpbHMgZm9yIHJlYXNvbnMgbm90IGxpc3RlZCBoZXJlLgorICAgICAqLworICAgIEVSUk9SID0gMSwKKworICAgIC8qKgorICAgICAqIGVycm9yIHZhbHVlIHJldHVybmVkIHdoZW4gaW5wdXQgYXJndW1lbnQgaXMgaW52YWxpZC4KKyAgICAgKi8KKyAgICBJTlZBTElEX0FSR1VNRU5UID0gMiwKKworICAgIC8qKgorICAgICAqIGVycm9yIHZhbHVlIHJldHVybmVkIHdoZW4gcm9sZSBzdHJpbmcgaXMgdW5yZWNvZ25pemVkLgorICAgICAqLworICAgIFVOUkVDT0dOSVpFRF9ST0xFID0gMywKK307CisKKy8qKgorICogRGVub3RlcyB0aGUgUG9ydCByb2xlIHR5cGUuCisgKiBQYXNzZWQgYXMgYW4gYXJndW1lbnQgZm9yIGZ1bmN0aW9ucyB1c2VkIHRvIHF1ZXJ5IG9yIGNoYW5nZSBwb3J0IHJvbGVzLgorICovCitlbnVtIFBvcnRSb2xlVHlwZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBEZW5vdGVzIHRoZSBkYXRhIHJvbGUgb2YgdGhlIHBvcnQuCisgICAgICogVGhlIHBvcnQgY2FuIGVpdGhlciBiZSBhICJob3N0IiBvciBhICJkZXZpY2UiIGZvciBkYXRhLgorICAgICAqIFRoaXMgbWFwcyB0byB0aGUgUG9ydERhdGFSb2xlIGVudW0uCisgICAgICovCisgICAgREFUQV9ST0xFID0gMCwKKworICAgIC8qKgorICAgICAqIERlbm90ZXMgdGhlIHBvd2VyIHJvbGUgb2YgdGhlIHBvcnQuCisgICAgICogVGhlIHBvcnQgY2FuIGVpdGhlciBiZSBhICJzb3VyY2UiIG9yICJzaW5rIiBmb3IgcG93ZXIuCisgICAgICogVGhpcyBtYXBzIHRvIFBvcnRQb3dlclJvbGUgZW51bS4KKyAgICAgKi8KKyAgICBQT1dFUl9ST0xFID0gMSwKKworICAgIC8qKgorICAgICAqIFVTQiBwb3J0cyBjYW4gYmUgYSBwdXJlIERGUCBwb3J0IHdoaWNoIGNhbiBvbmx5IGFjdAorICAgICAqIGFzIGEgaG9zdC4gQSBVRlAgcG9ydCB3aGljaCBjYW4gb25seSBhY3QgYXMgYSBkZXZpY2UuCisgICAgICogT3IgYSBkdWFsIHJvbGUgcG9ydHMgd2hpY2ggY2FuIGVpdGhlciBjYW4gYXMgYSBob3N0IG9yCisgICAgICogYSBkZXZpY2UuIFRoaXMgcHJvcGVydHkgaXMgdXNlZCB0byBtZW50aW9uIHRoZW0uCisgICAgICovCisgICAgTU9ERSA9IDIsCit9OworCitAZXhwb3J0CitlbnVtIFBvcnREYXRhUm9sZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCBkb2VzIG5vdCBoYXZlIGEgZGF0YSByb2xlLgorICAgICAqIEluIGNhc2Ugb2YgRFJQLCB0aGUgY3VycmVudCBkYXRhIHJvbGUgb2YgdGhlIHBvcnQgaXMgb25seSByZXNvbHZlZAorICAgICAqIHdoZW4gdGhlIHR5cGUtYyBoYW5kc2hha2UgaGFwcGVucy4KKyAgICAgKi8KKyAgICBOT05FID0gMCwKKworICAgIC8qKgorICAgICAqIEluZGljYXRlcyB0aGF0IHRoZSBwb3J0IGlzIGFjdGluZyBhcyBhIGhvc3QgZm9yIGRhdGEuCisgICAgICovCisgICAgSE9TVCA9IDEsCisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZWQgdGhhdCB0aGUgcG9ydCBpcyBhY3RpbmcgYXMgYSBkZXZpY2UgZm9yIGRhdGEuCisgICAgICovCisgICAgREVWSUNFID0gMiwKKworICAgIE5VTV9EQVRBX1JPTEVTID0gMywKK307CisKK0BleHBvcnQKK2VudW0gUG9ydFBvd2VyUm9sZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCBkb2VzIG5vdCBoYXZlIGEgcG93ZXIgcm9sZS4KKyAgICAgKiBJbiBjYXNlIG9mIERSUCwgdGhlIGN1cnJlbnQgcG93ZXIgcm9sZSBvZiB0aGUgcG9ydCBpcyBvbmx5IHJlc29sdmVkCisgICAgICogd2hlbiB0aGUgdHlwZS1jIGhhbmRzaGFrZSBoYXBwZW5zLgorICAgICAqLworICAgIE5PTkUgPSAwLAorCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHBvcnQgaXMgc3VwcGx5aW5nIHBvd2VyIHRvIHRoZSBvdGhlciBwb3J0LgorICAgICAqLworICAgIFNPVVJDRSA9IDEsCisKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCBpcyBzaW5raW5nIHBvd2VyIGZyb20gdGhlIG90aGVyIHBvcnQuCisgICAgICovCisgICAgU0lOSyA9IDIsCisKKyAgICBOVU1fUE9XRVJfUk9MRVMgPSAzLAorfTsKKworQGV4cG9ydAorZW51bSBQb3J0TW9kZSA6IHVpbnQzMl90IHsKKyAgICAvKioKKyAgICAgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgcG9ydCBkb2VzIG5vdCBoYXZlIGEgbW9kZS4KKyAgICAgKiBJbiBjYXNlIG9mIERSUCwgdGhlIGN1cnJlbnQgbW9kZSBvZiB0aGUgcG9ydCBpcyBvbmx5IHJlc29sdmVkCisgICAgICogd2hlbiB0aGUgdHlwZS1jIGhhbmRzaGFrZSBoYXBwZW5zLgorICAgICAqLworICAgIE5PTkUgPSAwLAorICAgIC8qKgorICAgICAqIEluZGljYXRlcyB0aGF0IHBvcnQgY2FuIG9ubHkgYWN0IGFzIGRldmljZSBmb3IgZGF0YSBhbmQgc2luayBmb3IgcG93ZXIuCisgICAgICovCisgICAgVUZQID0gMSwKKworICAgIC8qKgorICAgICAqIEluZGljYXRlcyB0aGUgcG9ydCBjYW4gb25seSBhY3QgYXMgaG9zdCBmb3IgZGF0YSBhbmQgc291cmNlIGZvciBwb3dlci4KKyAgICAgKi8KKyAgICBERlAgPSAyLAorCisgICAgLyoqCisgICAgICogSW5kaWNhdGVzIGNhbiBlaXRoZXIgYWN0IGFzIFVGUCBvciBERlAgYXQgYSBnaXZlbiBwb2ludCBvZiB0aW1lLgorICAgICAqLworICAgIERSUCA9IDMsCisKKyAgICBOVU1fTU9ERVMgPSA0LAorfTsKKworLyoqCisgKiBVc2VkIGFzIGEgY29udGFpbmVyIHRvIHNlbmQgcG9ydCByb2xlIGluZm9ybWF0aW9uLgorICovCitzdHJ1Y3QgUG9ydFJvbGUgeworICAgIC8qKgorICAgICAqIEluZGljYXRlcyB0aGUgdHlwZSBvZiBQb3J0IFJvbGUuCisgICAgICogTWFwcyB0byB0aGUgUG9ydFJvbGVUeXBlIGVudW0uCisgICAgICovCisgICAgUG9ydFJvbGVUeXBlIHR5cGU7CisKKyAgICAvKioKKyAgICAgKiB3aGVuIHR5cGUgaXMgSEFMX1VTQl9EQVRBX1JPTEUgcGFzcyB2YWx1ZXMgZnJvbSBlbnVtIFBvcnREYXRhUm9sZS4KKyAgICAgKiB3aGVuIHR5cGUgaXMgSEFMX1VTQl9QT1dFUl9ST0xFIHBhc3MgdmFsdWVzIGZyb20gZW51bSBQb3J0UG93ZXJSb2xlLgorICAgICAqIHdoZW4gdHlwZSBpcyBIQUxfVVNCX01PREUgcGFzcyB2YWx1ZXMgZnJvbSBlbnVtIFBvcnRNb2RlLgorICAgICAqLworICAgIHVpbnQzMl90IHJvbGU7Cit9OworCisvKioKKyAqIFVzZWQgYXMgdGhlIGNvbnRhaW5lciB0byByZXBvcnQgZGF0YSBiYWNrIHRvIHRoZSBjYWxsZXIuCisgKiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IGNvbm5lY3Rpb24gc3RhdHVzIG9mIGEgc2luZ2xlIFVTQiBwb3J0LgorICovCitzdHJ1Y3QgUG9ydFN0YXR1cyB7CisgICAgIC8qKgorICAgICAgKiBOYW1lIG9mIHRoZSBwb3J0LgorICAgICAgKiBVc2VkIGFzIHRoZSBwb3J0J3MgaWQgYnkgdGhlIGNhbGxlci4KKyAgICAgICovCisgICAgIHN0cmluZyBwb3J0TmFtZTsKKworICAgICAvKioKKyAgICAgICogRGF0YSByb2xlIG9mIHRoZSBwb3J0LgorICAgICAgKi8KKyAgICAgUG9ydERhdGFSb2xlIGN1cnJlbnREYXRhUm9sZTsKKworICAgICAvKioKKyAgICAgICogUG93ZXIgUm9sZSBvZiB0aHRlIHBvcnQuCisgICAgICAqLworICAgICBQb3J0UG93ZXJSb2xlIGN1cnJlbnRQb3dlclJvbGU7CisKKyAgICAgLyoqCisgICAgICAqIE1vZGUgaW4gd2hpY2ggdGhlIHBvcnQgaXMgY29ubmVjdGVkLgorICAgICAgKiBDYW4gYmUgVUZQIG9yIERGUC4KKyAgICAgICovCisgICAgIFBvcnRNb2RlIGN1cnJlbnRNb2RlOworCisgICAgIC8qKgorICAgICAgKiBUcnVlIGluZGljYXRlcyB0aGF0IHRoZSBwb3J0J3MgbW9kZSBjYW4KKyAgICAgICogYmUgY2hhbmdlZC4gRmFsc2Ugb3RoZXJ3aXNlLgorICAgICAgKi8KKyAgICAgYm9vbCBjYW5DaGFuZ2VNb2RlOworCisgICAgIC8qKgorICAgICAgKiBUcnVlIGluZGljYXRlcyB0aGF0IHRoZSBwb3J0J3MgZGF0YSByb2xlCisgICAgICAqIGNhbiBiZSBjaGFuZ2VkLiBGYWxzZSBvdGhlcndpc2UuCisgICAgICAqIEZvciBleGFtcGxlLCB0cnVlIGlmIFR5cGUtQyBQRCBQRF9TV0FQCisgICAgICAqIGlzIHN1cHBvcnRlZC4KKyAgICAgICovCisgICAgIGJvb2wgY2FuQ2hhbmdlRGF0YVJvbGU7CisKKyAgICAgLyoqCisgICAgICAqIFRydWUgaW5kaWNhdGVzIHRoYXQgdGhlIHBvcnQncyBwb3dlciByb2xlCisgICAgICAqIGNhbiBiZSBjaGFuZ2VkLiBGYWxzZSBvdGhlcndpc2UuCisgICAgICAqIEZvciBleGFtcGxlLCB0cnVlIGlmIFR5cGUtQyBQRCBQUl9TV0FQCisgICAgICAqIGlzIHN1cHBvcnRlZC4KKyAgICAgICovCisgICAgIGJvb2wgY2FuQ2hhbmdlUG93ZXJSb2xlOworCisgICAgIC8qKgorICAgICAgKiBJZGVudGlmaWVzIHRoZSB0eXBlIG9mIHRoZSBsb2NhbCBwb3J0LgorICAgICAgKgorICAgICAgKiBVRlAgLSBJbmRpY2F0ZXMgdGhhdCBwb3J0IGNhbiBvbmx5IGFjdCBhcyBkZXZpY2UgZm9yCisgICAgICAqICAgICAgIGRhdGEgYW5kIHNpbmsgZm9yIHBvd2VyLgorICAgICAgKiBERlAgLSBJbmRpY2F0ZXMgdGhlIHBvcnQgY2FuIG9ubHkgYWN0IGFzIGhvc3QgZm9yIGRhdGEKKyAgICAgICogICAgICAgYW5kIHNvdXJjZSBmb3IgcG93ZXIuCisgICAgICAqIERSUCAtIEluZGljYXRlcyBjYW4gZWl0aGVyIGFjdCBhcyBVRlAgb3IgREZQIGF0IGEKKyAgICAgICogICAgICAgZ2l2ZW4gcG9pbnQgb2YgdGltZS4KKyAgICAgICovCisgICAgICBQb3J0TW9kZSBzdXBwb3J0ZWRNb2RlczsKK307CmRpZmYgLS1naXQgYS91c2IvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi91c2IvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQzOGJjNwotLS0gL2Rldi9udWxsCisrKyBiL3VzYi8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM2IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE3IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsVXNiVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFVzYlYxXzBUYXJnZXRUZXN0LmNwcCJdLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJuYXRpdmVoZWxwZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS51c2JAMS4wIiwKKyAgICBdLAorICAgIHN0YXRpY19saWJzOiBbIlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSJdLAorICAgIGNmbGFnczogWworICAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdXNiLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxVc2JWMV8wVGFyZ2V0VGVzdC5jcHAgYi91c2IvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFVzYlYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzczOThmCi0tLSAvZGV2L251bGwKKysrIGIvdXNiLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxVc2JWMV8wVGFyZ2V0VGVzdC5jcHAKQEAgLTAsMCArMSwzNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjZGVmaW5lIExPR19UQUcgIlZ0c0hhbFVzYlYxXzBUYXJnZXRUZXN0IgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvSVVzYi5oPgorI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdXNiLzEuMC9JVXNiQ2FsbGJhY2suaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3VzYi8xLjAvdHlwZXMuaD4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGxvZy9sb2cuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxjaHJvbm8+CisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPG11dGV4PgorCisjZGVmaW5lIFRJTUVPVVRfUEVSSU9EIDEwCisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6SVVzYkNhbGxiYWNrOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpJVXNiOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpQb3J0RGF0YVJvbGU7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp1c2I6OlYxXzA6OlBvcnRNb2RlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpQb3J0UG93ZXJSb2xlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpQb3J0Um9sZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnVzYjo6VjFfMDo6UG9ydFJvbGVUeXBlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpQb3J0U3RhdHVzOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dXNiOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhpZGw6OmJhc2U6OlYxXzA6OklCYXNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfbWVtb3J5OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9zdHJpbmc7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OnNwOworCisvLyBUaGUgbWFpbiB0ZXN0IGNsYXNzIGZvciB0aGUgVVNCIGhpZGwgSEFMCitjbGFzcyBVc2JIaWRsVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZSB7CisgcHVibGljOgorICAvLyBDYWxsYmFjayBjbGFzcyBmb3IgdGhlIFVTQiBISURMIGhhbC4KKyAgLy8gVXNiIEhhbCB3aWxsIGNhbGwgdGhpcyBvYmplY3QgdXBvbiByb2xlIHN3aXRjaCBvciBwb3J0IHF1ZXJ5LgorICBjbGFzcyBVc2JDYWxsYmFjayA6IHB1YmxpYyBJVXNiQ2FsbGJhY2sgeworICAgIFVzYkhpZGxUZXN0JiBwYXJlbnRfOworICAgIGludCBjb29raWU7CisKKyAgIHB1YmxpYzoKKyAgICBVc2JDYWxsYmFjayhVc2JIaWRsVGVzdCYgcGFyZW50LCBpbnQgY29va2llKQorICAgICAgICA6IHBhcmVudF8ocGFyZW50KSwgY29va2llKGNvb2tpZSl7fTsKKworICAgIHZpcnR1YWwgflVzYkNhbGxiYWNrKCkgPSBkZWZhdWx0OworCisgICAgLy8gQ2FsbGJhY2sgbWV0aG9kIGZvciB0aGUgcG9ydCBzdGF0dXMuCisgICAgUmV0dXJuPHZvaWQ+IG5vdGlmeVBvcnRTdGF0dXNDaGFuZ2UoCisgICAgICAgIGNvbnN0IGhpZGxfdmVjPFBvcnRTdGF0dXM+JiBjdXJyZW50UG9ydFN0YXR1cywgU3RhdHVzIHJldHZhbCkgb3ZlcnJpZGUgeworICAgICAgaWYgKHJldHZhbCA9PSBTdGF0dXM6OlNVQ0NFU1MpIHsKKyAgICAgICAgcGFyZW50Xy51c2JfbGFzdF9wb3J0X3N0YXR1cy5wb3J0TmFtZSA9CisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1swXS5wb3J0TmFtZS5jX3N0cigpOworICAgICAgICBwYXJlbnRfLnVzYl9sYXN0X3BvcnRfc3RhdHVzLmN1cnJlbnREYXRhUm9sZSA9CisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1swXS5jdXJyZW50RGF0YVJvbGU7CisgICAgICAgIHBhcmVudF8udXNiX2xhc3RfcG9ydF9zdGF0dXMuY3VycmVudFBvd2VyUm9sZSA9CisgICAgICAgICAgICBjdXJyZW50UG9ydFN0YXR1c1swXS5jdXJyZW50UG93ZXJSb2xlOworICAgICAgICBwYXJlbnRfLnVzYl9sYXN0X3BvcnRfc3RhdHVzLmN1cnJlbnRNb2RlID0KKyAgICAgICAgICAgIGN1cnJlbnRQb3J0U3RhdHVzWzBdLmN1cnJlbnRNb2RlOworICAgICAgfQorICAgICAgcGFyZW50Xy51c2JfbGFzdF9jb29raWUgPSBjb29raWU7CisgICAgICBwYXJlbnRfLm5vdGlmeSgpOworICAgICAgcmV0dXJuIFZvaWQoKTsKKyAgICB9OworCisgICAgLy8gQ2FsbGJhY2sgbWV0aG9kIGZvciB0aGUgc3RhdHVzIG9mIHJvbGUgc3dpdGNoIG9wZXJhdGlvbi4KKyAgICBSZXR1cm48dm9pZD4gbm90aWZ5Um9sZVN3aXRjaFN0YXR1cyhjb25zdCBoaWRsX3N0cmluZyYgLypwb3J0TmFtZSovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFBvcnRSb2xlJiBuZXdSb2xlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXR1cyByZXR2YWwpIG92ZXJyaWRlIHsKKyAgICAgIHBhcmVudF8udXNiX2xhc3Rfc3RhdHVzID0gcmV0dmFsOworICAgICAgcGFyZW50Xy51c2JfbGFzdF9jb29raWUgPSBjb29raWU7CisgICAgICBwYXJlbnRfLnVzYl9sYXN0X3BvcnRfcm9sZSA9IG5ld1JvbGU7CisgICAgICBwYXJlbnRfLnVzYl9yb2xlX3N3aXRjaF9kb25lID0gdHJ1ZTsKKyAgICAgIHBhcmVudF8ubm90aWZ5KCk7CisgICAgICByZXR1cm4gVm9pZCgpOworICAgIH07CisgIH07CisKKyAgdmlydHVhbCB2b2lkIFNldFVwKCkgb3ZlcnJpZGUgeworICAgIEFMT0dJKCJTZXR1cCIpOworICAgIHVzYiA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElVc2I+KCk7CisgICAgQVNTRVJUX05FKHVzYiwgbnVsbHB0cik7CisKKyAgICB1c2JfY2JfMiA9IG5ldyBVc2JDYWxsYmFjaygqdGhpcywgMik7CisgICAgQVNTRVJUX05FKHVzYl9jYl8yLCBudWxscHRyKTsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5zZXRDYWxsYmFjayh1c2JfY2JfMik7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIH0KKworICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7IEFMT0dJKCJUZWFyZG93biIpOyB9CisKKyAgLy8gVXNlZCBhcyBhIG1lY2hhbmlzbSB0byBpbmZvcm0gdGhlIHRlc3QgYWJvdXQgZGF0YS9ldmVudCBjYWxsYmFjay4KKyAgaW5saW5lIHZvaWQgbm90aWZ5KCkgeworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayh1c2JfbXR4KTsKKyAgICB1c2JfY291bnQrKzsKKyAgICB1c2JfY3Yubm90aWZ5X29uZSgpOworICB9CisKKyAgLy8gVGVzdCBjb2RlIGNhbGxzIHRoaXMgZnVuY3Rpb24gdG8gd2FpdCBmb3IgZGF0YS9ldmVudCBjYWxsYmFjay4KKyAgaW5saW5lIHN0ZDo6Y3Zfc3RhdHVzIHdhaXQoKSB7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKHVzYl9tdHgpOworCisgICAgc3RkOjpjdl9zdGF0dXMgc3RhdHVzID0gc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQ7CisgICAgYXV0byBub3cgPSBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjpub3coKTsKKyAgICB3aGlsZSAodXNiX2NvdW50ID09IDApIHsKKyAgICAgIHN0YXR1cyA9CisgICAgICAgICAgdXNiX2N2LndhaXRfdW50aWwobG9jaywgbm93ICsgc3RkOjpjaHJvbm86OnNlY29uZHMoVElNRU9VVF9QRVJJT0QpKTsKKyAgICAgIGlmIChzdGF0dXMgPT0gc3RkOjpjdl9zdGF0dXM6OnRpbWVvdXQpIHsKKyAgICAgICAgQUxPR0koInRpbWVvdXQiKTsKKyAgICAgICAgcmV0dXJuIHN0YXR1czsKKyAgICAgIH0KKyAgICB9CisgICAgdXNiX2NvdW50LS07CisgICAgcmV0dXJuIHN0YXR1czsKKyAgfQorCisgIC8vIFVTQiBoaWRsIGhhbCBQcm94eQorICBzcDxJVXNiPiB1c2I7CisKKyAgLy8gQ2FsbGJhY2sgb2JqZWN0cyBmb3IgdXNiIGhpZGwKKyAgLy8gTWV0aG9kcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBjYWxsZWQgdG8gbm90aWZ5IHBvcnQgc3RhdHVzIHVwZGF0ZXMuCisgIHNwPElVc2JDYWxsYmFjaz4gdXNiX2NiXzEsIHVzYl9jYl8yOworCisgIC8vIFRoZSBsYXN0IGNvbnZleWVkIHN0YXR1cyBvZiB0aGUgVVNCIHBvcnRzLgorICAvLyBTdG9yZXMgaW5mb3JtYXRpb24gb2YgY3VycmVudHRfZGF0YV9yb2xlLCBwb3dlcl9yb2xlIGZvciBhbGwgdGhlIFVTQiBwb3J0cworICBQb3J0U3RhdHVzIHVzYl9sYXN0X3BvcnRfc3RhdHVzOworCisgIC8vIFN0YXR1cyBvZiB0aGUgbGFzdCByb2xlIHN3aXRjaCBvcGVyYXRpb24uCisgIFN0YXR1cyB1c2JfbGFzdF9zdGF0dXM7CisKKyAgLy8gUG9ydCByb2xlIGluZm9ybWF0aW9uIG9mIHRoZSBsYXN0IHJvbGUgc3dpdGNoIG9wZXJhdGlvbi4KKyAgUG9ydFJvbGUgdXNiX2xhc3RfcG9ydF9yb2xlOworCisgIC8vIEZsYWcgdG8gaW5kaWNhdGUgdGhlIGludm9jYXRpb24gb2Ygcm9sZSBzd2l0Y2ggY2FsbGJhY2suCisgIGJvb2wgdXNiX3JvbGVfc3dpdGNoX2RvbmU7CisKKyAgLy8gSWRlbnRpZmllciBmb3IgdGhlIHVzYiBjYWxsYmFjayBvYmplY3QuCisgIC8vIFN0b3JlcyB0aGUgY29va2llIG9mIHRoZSBsYXN0IGludm9rZWQgdXNiIGNhbGxiYWNrIG9iamVjdC4KKyAgaW50IHVzYl9sYXN0X2Nvb2tpZTsKKworICAvLyBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlcyB0byBjb29yZGluYXRlIGJldHdlZW4gbWFpbiB0ZXN0IHRocmVhZAorICAvLyBhbmQgdGhlIGNhbGxiYWNrIHRocmVhZC4KKyAgc3RkOjptdXRleCB1c2JfbXR4OworICBzdGQ6OmNvbmRpdGlvbl92YXJpYWJsZSB1c2JfY3Y7CisgIGludCB1c2JfY291bnQ7Cit9OworCisvKgorICogVGVzdCB0byBzZWUgaWYgc2V0Q2FsbGJhY2sgc3VjY2VlZHMuCisgKiBDYWxsYmFjayBvamVjdCBpcyBjcmVhdGVkIGFuZCByZWdpc3RlcmVkLgorICogQ2hlY2sgdG8gc2VlIGlmIHRoZSBoaWRsIHRyYW5zYWN0aW9uIHN1Y2NlZWRlZC4KKyAqLworVEVTVF9GKFVzYkhpZGxUZXN0LCBzZXRDYWxsYmFjaykgeworICB1c2JfY2JfMSA9IG5ldyBVc2JDYWxsYmFjaygqdGhpcywgMSk7CisgIEFTU0VSVF9ORSh1c2JfY2JfMSwgbnVsbHB0cik7CisgIFJldHVybjx2b2lkPiByZXQgPSB1c2ItPnNldENhbGxiYWNrKHVzYl9jYl8xKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7Cit9CisKKy8qCisgKiBDaGVjayB0byBzZWUgaWYgcXVlcnlpbmcgdHlwZS1jCisgKiBwb3J0IHN0YXR1cyBzdWNjZWVkcy4KKyAqLworVEVTVF9GKFVzYkhpZGxUZXN0LCBxdWVyeVBvcnRTdGF0dXMpIHsKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+cXVlcnlQb3J0U3RhdHVzKCk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CisgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworICBBTE9HSSgicmlnaHRhZnRlcjogJXMiLCB1c2JfbGFzdF9wb3J0X3N0YXR1cy5wb3J0TmFtZS5jX3N0cigpKTsKK30KKworLyoKKyAqIFRyeWluZyB0byBzd2l0Y2ggYSBub24tZXhpc3RlbnQgcG9ydCBzaG91bGQgZmFpbC4KKyAqIFRoaXMgdGVzdCBjYXNlIHRyaWVkIHRvIHN3aXRjaCB0aGUgcG9ydCB3aXRoIGVtcHR5CisgKiBuYW1lIHdoaWNoIGlzIGV4cGVjdGVkIHRvIGZhaWwuCisgKi8KK1RFU1RfRihVc2JIaWRsVGVzdCwgc3dpdGNoRW1wdHlQb3J0KSB7CisgIHN0cnVjdCBQb3J0Um9sZSByb2xlOworICByb2xlLnR5cGUgPSBQb3J0Um9sZVR5cGU6OkRBVEFfUk9MRTsKKworICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5zd2l0Y2hSb2xlKCIiLCByb2xlKTsKKyAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdCgpKTsKKyAgRVhQRUNUX0VRKFN0YXR1czo6RVJST1IsIHVzYl9sYXN0X3N0YXR1cyk7CisgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworfQorCisvKgorICogVGVzdCBzd2l0Y2hpbmcgdGhlIG1vZGUgb2YgdXNiIHBvcnQuCisgKiBUZXN0IGNhc2UgcXVlcmllcyB0aGUgdXNiIHBvcnRzIHByZXNlbnQgaW4gZGV2aWNlLgorICogSWYgdGhlcmUgaXMgYXRsZWFzdCBvbmUgdXNiIHBvcnQsIGEgbW9kZSBzd2l0Y2gKKyAqIHRvIERGUCBpcyBhdHRlbXB0ZWQgZm9yIHRoZSBwb3J0LgorICogVGhlIGNhbGxiYWNrIHBhcmFtZXRlcyBhcmUgY2hlY2tlZCB0byBzZWUgaWYgdGhlIG1vZGUKKyAqIHN3aXRjaCB3YXMgc3VjY2Vzc2Z1bGwuIFVwb24gc3VjY2VzcywgU3RhdHVzOjpTVUNDRVNTCisgKiBpcyBleHBlY3RlZCB0byBiZSByZXR1cm5lZC4KKyAqLworVEVTVF9GKFVzYkhpZGxUZXN0LCBzd2l0Y2hNb2RldG9ERlApIHsKKyAgc3RydWN0IFBvcnRSb2xlIHJvbGU7CisgIHJvbGUudHlwZSA9IFBvcnRSb2xlVHlwZTo6TU9ERTsKKyAgcm9sZS5yb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnRNb2RlOjpERlApOworCisgIFJldHVybjx2b2lkPiByZXQgPSB1c2ItPnF1ZXJ5UG9ydFN0YXR1cygpOworICBBU1NFUlRfVFJVRShyZXQuaXNPaygpKTsKKyAgRVhQRUNUX0VRKHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0LCB3YWl0KCkpOworICBFWFBFQ1RfRVEoMiwgdXNiX2xhc3RfY29va2llKTsKKworICBpZiAoIXVzYl9sYXN0X3BvcnRfc3RhdHVzLnBvcnROYW1lLmVtcHR5KCkpIHsKKyAgICBoaWRsX3N0cmluZyBwb3J0QmVpbmdTd2l0Y2hlZCA9IHVzYl9sYXN0X3BvcnRfc3RhdHVzLnBvcnROYW1lOworICAgIEFMT0dJKCJtb2RlIHBvcnRuYW1lOiVzIiwgcG9ydEJlaW5nU3dpdGNoZWQuY19zdHIoKSk7CisgICAgdXNiX3JvbGVfc3dpdGNoX2RvbmUgPSBmYWxzZTsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5zd2l0Y2hSb2xlKHBvcnRCZWluZ1N3aXRjaGVkLmNfc3RyKCksIHJvbGUpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgc3RkOjpjdl9zdGF0dXMgd2FpdFN0YXR1cyA9IHdhaXQoKTsKKyAgICB3aGlsZSAod2FpdFN0YXR1cyA9PSBzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCAmJgorICAgICAgICAgICB1c2Jfcm9sZV9zd2l0Y2hfZG9uZSA9PSBmYWxzZSkKKyAgICAgIHdhaXRTdGF0dXMgPSB3YWl0KCk7CisKKyAgICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXRTdGF0dXMpOworICAgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworCisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0Um9sZVR5cGU6Ok1PREUpLAorICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNiX2xhc3RfcG9ydF9yb2xlLnR5cGUpKTsKKyAgICBpZiAodXNiX2xhc3Rfc3RhdHVzID09IFN0YXR1czo6U1VDQ0VTUykgeworICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0TW9kZTo6REZQKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNiX2xhc3RfcG9ydF9yb2xlLnJvbGUpKTsKKyAgICB9IGVsc2UgeworICAgICAgRVhQRUNUX05FKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0TW9kZTo6VUZQKSwKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDx1aW50MzJfdD4odXNiX2xhc3RfcG9ydF9yb2xlLnJvbGUpKTsKKyAgICB9CisgIH0KK30KKworLyoKKyAqIFRlc3Qgc3dpdGNoaW5nIHRoZSBwb3dlciByb2xlIG9mIHVzYiBwb3J0LgorICogVGVzdCBjYXNlIHF1ZXJpZXMgdGhlIHVzYiBwb3J0cyBwcmVzZW50IGluIGRldmljZS4KKyAqIElmIHRoZXJlIGlzIGF0bGVhc3Qgb25lIHVzYiBwb3J0LCBhIHBvd2VyIHJvbGUgc3dpdGNoCisgKiB0byBTT1VSQ0UgaXMgYXR0ZW1wdGVkIGZvciB0aGUgcG9ydC4KKyAqIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXMgYXJlIGNoZWNrZWQgdG8gc2VlIGlmIHRoZSBwb3dlciByb2xlCisgKiBzd2l0Y2ggd2FzIHN1Y2Nlc3NmdWxsLiBVcG9uIHN1Y2Nlc3MsIFN0YXR1czo6U1VDQ0VTUworICogaXMgZXhwZWN0ZWQgdG8gYmUgcmV0dXJuZWQuCisgKi8KKworVEVTVF9GKFVzYkhpZGxUZXN0LCBzd2l0Y2hQb3dlclJvbGUpIHsKKyAgc3RydWN0IFBvcnRSb2xlIHJvbGU7CisgIHJvbGUudHlwZSA9IFBvcnRSb2xlVHlwZTo6UE9XRVJfUk9MRTsKKyAgcm9sZS5yb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnRQb3dlclJvbGU6OlNPVVJDRSk7CisKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+cXVlcnlQb3J0U3RhdHVzKCk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CisgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworCisgIGlmICghdXNiX2xhc3RfcG9ydF9zdGF0dXMucG9ydE5hbWUuZW1wdHkoKSkgeworICAgIGhpZGxfc3RyaW5nIHBvcnRCZWluZ1N3aXRjaGVkID0gdXNiX2xhc3RfcG9ydF9zdGF0dXMucG9ydE5hbWU7CisgICAgQUxPR0koInN3aXRjaFBvd2VyIHJvbGUgcG9ydG5hbWU6JXMiLCBwb3J0QmVpbmdTd2l0Y2hlZC5jX3N0cigpKTsKKyAgICB1c2Jfcm9sZV9zd2l0Y2hfZG9uZSA9IGZhbHNlOworICAgIFJldHVybjx2b2lkPiByZXQgPSB1c2ItPnN3aXRjaFJvbGUocG9ydEJlaW5nU3dpdGNoZWQuY19zdHIoKSwgcm9sZSk7CisgICAgQVNTRVJUX1RSVUUocmV0LmlzT2soKSk7CisKKyAgICBzdGQ6OmN2X3N0YXR1cyB3YWl0U3RhdHVzID0gd2FpdCgpOworICAgIHdoaWxlICh3YWl0U3RhdHVzID09IHN0ZDo6Y3Zfc3RhdHVzOjpub190aW1lb3V0ICYmCisgICAgICAgICAgIHVzYl9yb2xlX3N3aXRjaF9kb25lID09IGZhbHNlKQorICAgICAgd2FpdFN0YXR1cyA9IHdhaXQoKTsKKworICAgIEVYUEVDVF9FUShzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCwgd2FpdFN0YXR1cyk7CisgICAgRVhQRUNUX0VRKDIsIHVzYl9sYXN0X2Nvb2tpZSk7CisKKyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnRSb2xlVHlwZTo6UE9XRVJfUk9MRSksCisgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2JfbGFzdF9wb3J0X3JvbGUudHlwZSkpOworICAgIGlmICh1c2JfbGFzdF9zdGF0dXMgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnRQb3dlclJvbGU6OlNPVVJDRSksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHVzYl9sYXN0X3BvcnRfcm9sZS5yb2xlKSk7CisgICAgfSBlbHNlIHsKKyAgICAgIEVYUEVDVF9ORShzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydFBvd2VyUm9sZTo6U0lOSyksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHVzYl9sYXN0X3BvcnRfcm9sZS5yb2xlKSk7CisgICAgfQorICB9Cit9CisKKy8qCisgKiBUZXN0IHN3aXRjaGluZyB0aGUgZGF0YSByb2xlIG9mIHVzYiBwb3J0LgorICogVGVzdCBjYXNlIHF1ZXJpZXMgdGhlIHVzYiBwb3J0cyBwcmVzZW50IGluIGRldmljZS4KKyAqIElmIHRoZXJlIGlzIGF0bGVhc3Qgb25lIHVzYiBwb3J0LCBhIHBvd2VyIHJvbGUgc3dpdGNoCisgKiB0byBIT1NUIGlzIGF0dGVtcHRlZCBmb3IgdGhlIHBvcnQuCisgKiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVzIGFyZSBjaGVja2VkIHRvIHNlZSBpZiB0aGUgcG93ZXIgcm9sZQorICogc3dpdGNoIHdhcyBzdWNjZXNzZnVsbC4gVXBvbiBzdWNjZXNzLCBTdGF0dXM6OlNVQ0NFU1MKKyAqIGlzIGV4cGVjdGVkIHRvIGJlIHJldHVybmVkLgorICovCitURVNUX0YoVXNiSGlkbFRlc3QsIHN3aXRjaERhdGFSb2xlKSB7CisgIHN0cnVjdCBQb3J0Um9sZSByb2xlOworICByb2xlLnR5cGUgPSBQb3J0Um9sZVR5cGU6OkRBVEFfUk9MRTsKKyAgcm9sZS5yb2xlID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnREYXRhUm9sZTo6SE9TVCk7CisKKyAgUmV0dXJuPHZvaWQ+IHJldCA9IHVzYi0+cXVlcnlQb3J0U3RhdHVzKCk7CisgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXQoKSk7CisgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworCisgIGlmICghdXNiX2xhc3RfcG9ydF9zdGF0dXMucG9ydE5hbWUuZW1wdHkoKSkgeworICAgIGhpZGxfc3RyaW5nIHBvcnRCZWluZ1N3aXRjaGVkID0gdXNiX2xhc3RfcG9ydF9zdGF0dXMucG9ydE5hbWU7CisgICAgQUxPR0koInBvcnRuYW1lOiVzIiwgcG9ydEJlaW5nU3dpdGNoZWQuY19zdHIoKSk7CisgICAgdXNiX3JvbGVfc3dpdGNoX2RvbmUgPSBmYWxzZTsKKyAgICBSZXR1cm48dm9pZD4gcmV0ID0gdXNiLT5zd2l0Y2hSb2xlKHBvcnRCZWluZ1N3aXRjaGVkLmNfc3RyKCksIHJvbGUpOworICAgIEFTU0VSVF9UUlVFKHJldC5pc09rKCkpOworCisgICAgc3RkOjpjdl9zdGF0dXMgd2FpdFN0YXR1cyA9IHdhaXQoKTsKKyAgICB3aGlsZSAod2FpdFN0YXR1cyA9PSBzdGQ6OmN2X3N0YXR1czo6bm9fdGltZW91dCAmJgorICAgICAgICAgICB1c2Jfcm9sZV9zd2l0Y2hfZG9uZSA9PSBmYWxzZSkKKyAgICAgIHdhaXRTdGF0dXMgPSB3YWl0KCk7CisKKyAgICBFWFBFQ1RfRVEoc3RkOjpjdl9zdGF0dXM6Om5vX3RpbWVvdXQsIHdhaXRTdGF0dXMpOworICAgIEVYUEVDVF9FUSgyLCB1c2JfbGFzdF9jb29raWUpOworCisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHVpbnQzMl90PihQb3J0Um9sZVR5cGU6OkRBVEFfUk9MRSksCisgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2JfbGFzdF9wb3J0X3JvbGUudHlwZSkpOworICAgIGlmICh1c2JfbGFzdF9zdGF0dXMgPT0gU3RhdHVzOjpTVUNDRVNTKSB7CisgICAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFBvcnREYXRhUm9sZTo6SE9TVCksCisgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KHVzYl9sYXN0X3BvcnRfcm9sZS5yb2xlKSk7CisgICAgfSBlbHNlIHsKKyAgICAgIEVYUEVDVF9ORShzdGF0aWNfY2FzdDx1aW50MzJfdD4oUG9ydERhdGFSb2xlOjpERVZJQ0UpLAorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVpbnQzMl90Pih1c2JfbGFzdF9wb3J0X3JvbGUucm9sZSkpOworICAgIH0KKyAgfQorfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKKyAgOjp0ZXN0aW5nOjpJbml0R29vZ2xlVGVzdCgmYXJnYywgYXJndik7CisgIGludCBzdGF0dXMgPSBSVU5fQUxMX1RFU1RTKCk7CisgIEFMT0dJKCJUZXN0IHJlc3VsdCA9ICVkIiwgc3RhdHVzKTsKKyAgcmV0dXJuIHN0YXR1czsKK30KZGlmZiAtLWdpdCBhL3VzYi9BbmRyb2lkLmJwIGIvdXNiL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzNmNzBlYgotLS0gL2Rldi9udWxsCisrKyBiL3VzYi9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNSBAQAorLy8gVGhpcyBpcyBhbiBhdXRvZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0Lgorc3ViZGlycyA9IFsKKyAgICAiMS4wIiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC9BbmRyb2lkLmJwIGIvdmlicmF0b3IvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGJlZmY2OAotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNjMgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJ0eXBlcy5oYWwiLAorICAgICAgICAiSVZpYnJhdG9yLmhhbCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wX2dlbmMrKyIsCisgICAgdG9vbHM6IFsiaGlkbC1nZW4iXSwKKyAgICBjbWQ6ICIkKGxvY2F0aW9uIGhpZGwtZ2VuKSAtbyAkKGdlbkRpcikgLUxjKystc291cmNlcyAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAiLAorICAgIHNyY3M6IFsKKyAgICAgICAgIjphbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMF9oYWwiLAorICAgIF0sCisgICAgb3V0OiBbCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC90eXBlcy5jcHAiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvVmlicmF0b3JBbGwuY3BwIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfZ2VuYysrX2hlYWRlcnMiLAorICAgIHRvb2xzOiBbImhpZGwtZ2VuIl0sCisgICAgY21kOiAiJChsb2NhdGlvbiBoaWRsLWdlbikgLW8gJChnZW5EaXIpIC1MYysrLWhlYWRlcnMgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wIiwKKyAgICBzcmNzOiBbCisgICAgICAgICI6YW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfaGFsIiwKKyAgICBdLAorICAgIG91dDogWworICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvdHlwZXMuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9od3R5cGVzLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvSVZpYnJhdG9yLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci8xLjAvSUh3VmlicmF0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9Cbkh3VmlicmF0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9CcEh3VmlicmF0b3IuaCIsCisgICAgICAgICJhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9Cc1ZpYnJhdG9yLmgiLAorICAgIF0sCit9CisKK2NjX2xpYnJhcnlfc2hhcmVkIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAiLAorICAgIGRlZmF1bHRzOiBbImhpZGwtbW9kdWxlLWRlZmF1bHRzIl0sCisgICAgZ2VuZXJhdGVkX3NvdXJjZXM6IFsiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfZ2VuYysrIl0sCisgICAgZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICBleHBvcnRfZ2VuZXJhdGVkX2hlYWRlcnM6IFsiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjBfZ2VuYysrX2hlYWRlcnMiXSwKKyAgICB2ZW5kb3JfYXZhaWxhYmxlOiB0cnVlLAorICAgIHNoYXJlZF9saWJzOiBbCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImxpYmh3YmluZGVyIiwKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJjdXRpbHMiLAorICAgIF0sCisgICAgZXhwb3J0X3NoYXJlZF9saWJfaGVhZGVyczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgXSwKK30KZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC9BbmRyb2lkLm1rIGIvdmlicmF0b3IvMS4wL0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU0YjY1NQotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMjI4IEBACisjIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbmNsdWRlICQoQ0xFQVJfVkFSUykKK0xPQ0FMX01PRFVMRSA6PSBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yLVYxLjAtamF2YQorTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9KQVZBX0xJQlJBUklFUyA6PSBcCisgICAgYW5kcm9pZC5oaWRsLmJhc2UtVjEuMC1qYXZhIFwKKworCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRWZmZWN0KQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL0VmZmVjdC5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjp0eXBlcy5FZmZlY3QKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKEVmZmVjdFN0cmVuZ3RoKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL0VmZmVjdFN0cmVuZ3RoLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OnR5cGVzLkVmZmVjdFN0cmVuZ3RoCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChTdGF0dXMpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yL1YxXzAvU3RhdHVzLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OnR5cGVzLlN0YXR1cworCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIElWaWJyYXRvci5oYWwKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvVjFfMC9JVmlicmF0b3IuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL0lWaWJyYXRvci5oYWwKKyQoR0VOKTogUFJJVkFURV9ERVBTICs9ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOjpJVmlicmF0b3IKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWaWJyYXRvci5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3ItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgdHlwZXMuaGFsIChFZmZlY3QpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yL1YxXzAvRWZmZWN0LmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OnR5cGVzLkVmZmVjdAorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvdHlwZXMuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQorCisjCisjIEJ1aWxkIHR5cGVzLmhhbCAoRWZmZWN0U3RyZW5ndGgpCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yL1YxXzAvRWZmZWN0U3RyZW5ndGguamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDo6dHlwZXMuRWZmZWN0U3RyZW5ndGgKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKKworIworIyBCdWlsZCB0eXBlcy5oYWwgKFN0YXR1cykKKyMKK0dFTiA6PSAkKGludGVybWVkaWF0ZXMpL2FuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvVjFfMC9TdGF0dXMuamF2YQorJChHRU4pOiAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfSElETCA6PSAkKEhJREwpCiskKEdFTik6IFBSSVZBVEVfREVQUyA6PSAkKExPQ0FMX1BBVEgpL3R5cGVzLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDo6dHlwZXMuU3RhdHVzCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisKKyMKKyMgQnVpbGQgSVZpYnJhdG9yLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL0lWaWJyYXRvci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZpYnJhdG9yLmhhbAorJChHRU4pOiBQUklWQVRFX0RFUFMgKz0gJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YSBcCisgICAgICAgIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIFwKKyAgICAgICAgLXJhbmRyb2lkLmhpZGw6c3lzdGVtL2xpYmhpZGwvdHJhbnNwb3J0IFwKKyAgICAgICAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjA6OklWaWJyYXRvcgorCiskKEdFTik6ICQoTE9DQUxfUEFUSCkvSVZpYnJhdG9yLmhhbAorCSQodHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCitMT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEdFTikKK2luY2x1ZGUgJChCVUlMRF9TVEFUSUNfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3ItVjEuMC1qYXZhLWNvbnN0YW50cworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92aWJyYXRvci9WMV8wL0NvbnN0YW50cy5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogJChMT0NBTF9QQVRIKS90eXBlcy5oYWwKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVmlicmF0b3IuaGFsCisKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9PVVRQVVRfRElSIDo9ICQoaW50ZXJtZWRpYXRlcykKKyQoR0VOKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IFwKKyAgICAgICAgJChQUklWQVRFX0hJREwpIC1vICQoUFJJVkFURV9PVVRQVVRfRElSKSBcCisgICAgICAgIC1MamF2YS1jb25zdGFudHMgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wCisKKyQoR0VOKToKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCisjIEF2b2lkIGRlcGVuZGVuY3kgY3ljbGUgb2YgZnJhbWV3b3JrLmphciAtPiB0aGlzLWxpYnJhcnkgLT4gZnJhbWV3b3JrLmphcgorTE9DQUxfTk9fU1RBTkRBUkRfTElCUkFSSUVTIDo9IHRydWUKK0xPQ0FMX0pBVkFfTElCUkFSSUVTIDo9IGNvcmUtb2oKKworaW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvSVZpYnJhdG9yLmhhbCBiL3ZpYnJhdG9yLzEuMC9JVmlicmF0b3IuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1N2FkMGQKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvSVZpYnJhdG9yLmhhbApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMDsKKworaW50ZXJmYWNlIElWaWJyYXRvciB7CisgIC8qKgorICAgKiBUdXJuIG9uIHZpYnJhdG9yCisgICAqCisgICAqIFRoaXMgZnVuY3Rpb24gbXVzdCBvbmx5IGJlIGNhbGxlZCBhZnRlciB0aGUgcHJldmlvdXMgdGltZW91dCBoYXMgZXhwaXJlZCBvcgorICAgKiB3YXMgY2FuY2VsZWQgKHRocm91Z2ggb2ZmKCkpLgorICAgKiBAcGFyYW0gdGltZW91dF9tcyBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHZpYnJhdGUuCisgICAqIEByZXR1cm4gdmlicmF0b3JPblJldCB3aGV0aGVyIHZpYnJhdG9yIGNvbW1hbmQgd2FzIHN1Y2Nlc3NmdWwgb3Igbm90LgorICAgKi8KKyAgb24odWludDMyX3QgdGltZW91dE1zKSBnZW5lcmF0ZXMgKFN0YXR1cyB2aWJyYXRvck9uUmV0KTsKKworICAvKioKKyAgICogVHVybiBvZmYgdmlicmF0b3IKKyAgICoKKyAgICogQ2FuY2VsIGEgcHJldmlvdXNseS1zdGFydGVkIHZpYnJhdGlvbiwgaWYgYW55LgorICAgKiBAcmV0dXJuIHZpYnJhdG9yT2ZmUmV0IHdoZXRoZXIgdmlicmF0b3IgY29tbWFuZCB3YXMgc3VjY2Vzc2Z1bCBvciBub3QuCisgICAqLworICBvZmYoKSBnZW5lcmF0ZXMgKFN0YXR1cyB2aWJyYXRvck9mZlJldCk7CisKKyAgLyoqCisgICAqIFJldHVybnMgd2hldGhlciB0aGUgdmlicmF0b3Igc3VwcG9ydHMgY2hhbmdlcyB0byBpdHMgdmlicmF0aW9uYWwgYW1wbGl0dWRlLgorICAgKi8KKyAgc3VwcG9ydHNBbXBsaXR1ZGVDb250cm9sKCkgZ2VuZXJhdGVzIChib29sIHN1cHBvcnRzKTsKKworICAvKioKKyAgICogU2V0cyB0aGUgbW90b3IncyB2aWJyYXRpb25hbCBhbXBsaXR1ZGUuCisgICAqCisgICAqIENoYW5nZXMgdGhlIGZvcmNlIGJlaW5nIHByb2R1Y2VkIGJ5IHRoZSB1bmRlcmx5aW5nIG1vdG9yLgorICAgKgorICAgKiBAcGFyYW0gYW1wbGl0dWRlIFRoZSB1bml0bGVzcyBmb3JjZSBzZXR0aW5nLiBOb3RlIHRoYXQgdGhpcyBudW1iZXIgbXVzdAorICAgKiAgICAgICAgICAgICAgICAgIGJlIGJldHdlZW4gMSBhbmQgMjU1LCBpbmNsdXNpdmUuIElmIHRoZSBtb3RvciBkb2VzIG5vdAorICAgKiAgICAgICAgICAgICAgICAgIGhhdmUgZXhhY3RseSAyNTUgc3RlcHMsIGl0IG11c3QgZG8gaXQncyBiZXN0IHRvIG1hcCBpdAorICAgKiAgICAgICAgICAgICAgICAgIG9udG8gdGhlIG51bWJlciBvZiBzdGVwcyBpdCBkb2VzIGhhdmUuCisgICAqIEByZXR1cm4gc3RhdHVzIFdoZXRoZXIgdGhlIGNvbW1hbmQgd2FzIHN1Y2Nlc3NmdWwgb3Igbm90LiBNdXN0IHJldHVybgorICAgKiAgICAgICAgICAgICAgICBTdGF0dXM6OlVOU1VQUE9SVEVEX09QRVJBVElPTiBpZiBzZXR0aW5nIHRoZSBhbXBsaXR1ZGUgaXMKKyAgICogICAgICAgICAgICAgICAgbm90IHN1cHBvcnRlZCBieSB0aGUgZGV2aWNlLgorICAgKi8KKyAgc2V0QW1wbGl0dWRlKHVpbnQ4X3QgYW1wbGl0dWRlKSBnZW5lcmF0ZXMgKFN0YXR1cyBzdGF0dXMpOworCisgIC8qKgorICAgKiBGaXJlIG9mZiBhIHByZWRlZmluZWQgaGFwdGljIGV2ZW50LgorICAgKgorICAgKiBAcGFyYW0gZXZlbnQgVGhlIHR5cGUgb2YgaGFwdGljIGV2ZW50IHRvIHRyaWdnZXIuCisgICAqIEByZXR1cm4gc3RhdHVzIFdoZXRoZXIgdGhlIGVmZmVjdCB3YXMgc3VjY2Vzc2Z1bGx5IHBlcmZvcm1lZCBvciBub3QuIE11c3QKKyAgICogICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1czo6VU5TVVBQT1JURURfT1BFUkFUSU9OIGlzIHRoZSBlZmZlY3QgaXMgbm90CisgICAqICAgICAgICAgICAgICAgIHN1cHBvcnRlZC4KKyAgICogQHJldHVybiBsZW5ndGhNcyBUaGUgbGVuZ3RoIG9mIHRpbWUgdGhlIGV2ZW50IGlzIGV4cGVjdGVkIHRvIHRha2UgaW4KKyAgICogICAgICAgICAgICAgICAgICBtaWxsaXNlY29uZHMuIFRoaXMgZG9lc24ndCBuZWVkIHRvIGJlIHBlcmZlY3RseSBhY2N1cmF0ZSwKKyAgICogICAgICAgICAgICAgICAgICBidXQgc2hvdWxkIGJlIGEgcmVhc29uYWJsZSBhcHByb3hpbWF0aW9uLiBTaG91bGQgYmUgYQorICAgKiAgICAgICAgICAgICAgICAgIHBvc2l0aXZlLCBub24temVybyB2YWx1ZSBpZiB0aGUgcmV0dXJuZWQgc3RhdHVzIGlzCisgICAqICAgICAgICAgICAgICAgICAgU3RhdHVzOjpPSywgYW5kIHNldCB0byAwIG90aGVyd2lzZS4KKyAgICovCisgIHBlcmZvcm0oRWZmZWN0IGVmZmVjdCwgRWZmZWN0U3RyZW5ndGggc3RyZW5ndGgpIGdlbmVyYXRlcyAoU3RhdHVzIHN0YXR1cywgdWludDMyX3QgbGVuZ3RoTXMpOworfTsKZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L0FuZHJvaWQuYnAgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0MjAwZGEKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsMzAgQEAKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworY2NfbGlicmFyeV9zaGFyZWQgeworICAgIG5hbWU6ICJhbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMC1pbXBsIiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgcmVsYXRpdmVfaW5zdGFsbF9wYXRoOiAiaHciLAorICAgIHNyY3M6IFsiVmlicmF0b3IuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wIiwKKyAgICBdLAorfQpkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL2RlZmF1bHQvQW5kcm9pZC5tayBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWY0YTk1NQotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L0FuZHJvaWQubWsKQEAgLTAsMCArMSwzNSBAQAorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyMgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKworCitMT0NBTF9QQVRIIDo9ICQoY2FsbCBteS1kaXIpCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wLXNlcnZpY2UKK0xPQ0FMX0lOSVRfUkMgOj0gYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAtc2VydmljZS5yYworTE9DQUxfUFJPUFJJRVRBUllfTU9EVUxFIDo9IHRydWUKK0xPQ0FMX01PRFVMRV9SRUxBVElWRV9QQVRIIDo9IGh3CitMT0NBTF9TUkNfRklMRVMgOj0gXAorICBzZXJ2aWNlLmNwcCBcCisKK0xPQ0FMX1NIQVJFRF9MSUJSQVJJRVMgOj0gXAorICBsaWJoaWRsYmFzZSBcCisgIGxpYmhpZGx0cmFuc3BvcnQgXAorICBsaWJsb2cgXAorICBsaWJ1dGlscyBcCisgIGxpYmhhcmR3YXJlIFwKKyAgYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAKKworaW5jbHVkZSAkKEJVSUxEX0VYRUNVVEFCTEUpCmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvZGVmYXVsdC9WaWJyYXRvci5jcHAgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9WaWJyYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTljZjNkYwotLS0gL2Rldi9udWxsCisrKyBiL3ZpYnJhdG9yLzEuMC9kZWZhdWx0L1ZpYnJhdG9yLmNwcApAQCAtMCwwICsxLDk0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWaWJyYXRvclNlcnZpY2UiCisKKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorCisjaW5jbHVkZSA8bG9nL2xvZy5oPgorCisjaW5jbHVkZSA8aGFyZHdhcmUvaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS92aWJyYXRvci5oPgorCisjaW5jbHVkZSAiVmlicmF0b3IuaCIKKworbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB2aWJyYXRvciB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitWaWJyYXRvcjo6VmlicmF0b3IodmlicmF0b3JfZGV2aWNlX3QgKmRldmljZSkgOiBtRGV2aWNlKGRldmljZSkge30KKworLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZpYnJhdG9yOjpWMV8wOjpJVmlicmF0b3IgZm9sbG93LgorUmV0dXJuPFN0YXR1cz4gVmlicmF0b3I6Om9uKHVpbnQzMl90IHRpbWVvdXRfbXMpIHsKKyAgICBpbnQzMl90IHJldCA9IG1EZXZpY2UtPnZpYnJhdG9yX29uKG1EZXZpY2UsIHRpbWVvdXRfbXMpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBBTE9HRSgib24gY29tbWFuZCBmYWlsZWQgOiAlcyIsIHN0cmVycm9yKC1yZXQpKTsKKyAgICAgICAgcmV0dXJuIFN0YXR1czo6VU5LTk9XTl9FUlJPUjsKKyAgICB9CisgICAgcmV0dXJuIFN0YXR1czo6T0s7Cit9CisKK1JldHVybjxTdGF0dXM+IFZpYnJhdG9yOjpvZmYoKSAgeworICAgIGludDMyX3QgcmV0ID0gbURldmljZS0+dmlicmF0b3Jfb2ZmKG1EZXZpY2UpOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBBTE9HRSgib2ZmIGNvbW1hbmQgZmFpbGVkIDogJXMiLCBzdHJlcnJvcigtcmV0KSk7CisgICAgICAgIHJldHVybiBTdGF0dXM6OlVOS05PV05fRVJST1I7CisgICAgfQorICAgIHJldHVybiBTdGF0dXM6Ok9LOworfQorCitSZXR1cm48Ym9vbD4gVmlicmF0b3I6OnN1cHBvcnRzQW1wbGl0dWRlQ29udHJvbCgpICB7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitSZXR1cm48U3RhdHVzPiBWaWJyYXRvcjo6c2V0QW1wbGl0dWRlKHVpbnQ4X3QpIHsKKyAgICByZXR1cm4gU3RhdHVzOjpVTlNVUFBPUlRFRF9PUEVSQVRJT047Cit9CisKK1JldHVybjx2b2lkPiBWaWJyYXRvcjo6cGVyZm9ybShFZmZlY3QsIEVmZmVjdFN0cmVuZ3RoLCBwZXJmb3JtX2NiIF9oaWRsX2NiKSB7CisgICAgX2hpZGxfY2IoU3RhdHVzOjpVTlNVUFBPUlRFRF9PUEVSQVRJT04sIDApOworICAgIHJldHVybiBWb2lkKCk7Cit9CisKK0lWaWJyYXRvciogSElETF9GRVRDSF9JVmlicmF0b3IoY29uc3QgY2hhciAqIC8qaGFsKi8pIHsKKyAgICB2aWJyYXRvcl9kZXZpY2VfdCAqdmliX2RldmljZTsKKyAgICBjb25zdCBod19tb2R1bGVfdCAqaHdfbW9kdWxlID0gbnVsbHB0cjsKKworICAgIGludCByZXQgPSBod19nZXRfbW9kdWxlKFZJQlJBVE9SX0hBUkRXQVJFX01PRFVMRV9JRCwgJmh3X21vZHVsZSk7CisgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgIHJldCA9IHZpYnJhdG9yX29wZW4oaHdfbW9kdWxlLCAmdmliX2RldmljZSk7CisgICAgICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICAgICAgQUxPR0UoInZpYnJhdG9yX29wZW4gZmFpbGVkOiAlZCIsIHJldCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBBTE9HRSgiaHdfZ2V0X21vZHVsZSAlcyBmYWlsZWQ6ICVkIiwgVklCUkFUT1JfSEFSRFdBUkVfTU9EVUxFX0lELCByZXQpOworICAgIH0KKworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICByZXR1cm4gbmV3IFZpYnJhdG9yKHZpYl9kZXZpY2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIEFMT0dFKCJQYXNzdGhyb3VnaCBmYWlsZWQgdG8gb3BlbiBsZWdhY3kgSEFMLiIpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uCit9ICAvLyBuYW1lc3BhY2UgVjFfMAorfSAgLy8gbmFtZXNwYWNlIHZpYnJhdG9yCit9ICAvLyBuYW1lc3BhY2UgaGFyZHdhcmUKK30gIC8vIG5hbWVzcGFjZSBhbmRyb2lkCmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvZGVmYXVsdC9WaWJyYXRvci5oIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvVmlicmF0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWE2ZWE4Ci0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvVmlicmF0b3IuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKyNpZm5kZWYgQU5EUk9JRF9IQVJEV0FSRV9WSUJSQVRPUl9WMV8wX1ZJQlJBVE9SX0gKKyNkZWZpbmUgQU5EUk9JRF9IQVJEV0FSRV9WSUJSQVRPUl9WMV8wX1ZJQlJBVE9SX0gKKworI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvdmlicmF0b3IvMS4wL0lWaWJyYXRvci5oPgorI2luY2x1ZGUgPGhpZGwvU3RhdHVzLmg+CisKKyNpbmNsdWRlIDxoaWRsL01RRGVzY3JpcHRvci5oPgorbmFtZXNwYWNlIGFuZHJvaWQgeworbmFtZXNwYWNlIGhhcmR3YXJlIHsKK25hbWVzcGFjZSB2aWJyYXRvciB7CituYW1lc3BhY2UgVjFfMCB7CituYW1lc3BhY2UgaW1wbGVtZW50YXRpb24geworCitzdHJ1Y3QgVmlicmF0b3IgOiBwdWJsaWMgSVZpYnJhdG9yIHsKKyAgVmlicmF0b3IodmlicmF0b3JfZGV2aWNlX3QgKmRldmljZSk7CisKKyAgLy8gTWV0aG9kcyBmcm9tIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZpYnJhdG9yOjpWMV8wOjpJVmlicmF0b3IgZm9sbG93LgorICBSZXR1cm48U3RhdHVzPiBvbih1aW50MzJfdCB0aW1lb3V0TXMpICBvdmVycmlkZTsKKyAgUmV0dXJuPFN0YXR1cz4gb2ZmKCkgIG92ZXJyaWRlOworICBSZXR1cm48Ym9vbD4gc3VwcG9ydHNBbXBsaXR1ZGVDb250cm9sKCkgb3ZlcnJpZGU7CisgIFJldHVybjxTdGF0dXM+IHNldEFtcGxpdHVkZSh1aW50OF90IGFtcGxpdHVkZSkgb3ZlcnJpZGU7CisgIFJldHVybjx2b2lkPiBwZXJmb3JtKEVmZmVjdCBlZmZlY3QsIEVmZmVjdFN0cmVuZ3RoIHN0cmVuZ3RoLCBwZXJmb3JtX2NiIF9oaWRsX2NiKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgdmlicmF0b3JfZGV2aWNlX3QgICAgKm1EZXZpY2U7Cit9OworCitleHRlcm4gIkMiIElWaWJyYXRvciogSElETF9GRVRDSF9JVmlicmF0b3IoY29uc3QgY2hhciogbmFtZSk7CisKK30gIC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB2aWJyYXRvcgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZAorCisjZW5kaWYgIC8vIEFORFJPSURfSEFSRFdBUkVfVklCUkFUT1JfVjFfMF9WSUJSQVRPUl9ICmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvZGVmYXVsdC9hbmRyb2lkLmhhcmR3YXJlLnZpYnJhdG9yQDEuMC1zZXJ2aWNlLnJjIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAtc2VydmljZS5yYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDI3MDY1Ci0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAtc2VydmljZS5yYwpAQCAtMCwwICsxLDQgQEAKK3NlcnZpY2UgdmlicmF0b3ItMS0wIC92ZW5kb3IvYmluL2h3L2FuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wLXNlcnZpY2UKKyAgICBjbGFzcyBoYWwKKyAgICB1c2VyIHN5c3RlbQorICAgIGdyb3VwIHN5c3RlbQpkaWZmIC0tZ2l0IGEvdmlicmF0b3IvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAgYi92aWJyYXRvci8xLjAvZGVmYXVsdC9zZXJ2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43Y2MwNzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKQEAgLTAsMCArMSwyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjZGVmaW5lIExPR19UQUcgImFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wLXNlcnZpY2UiCisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9JVmlicmF0b3IuaD4KKyNpbmNsdWRlIDxoaWRsL0xlZ2FjeVN1cHBvcnQuaD4KKwordXNpbmcgYW5kcm9pZDo6aGFyZHdhcmU6OnZpYnJhdG9yOjpWMV8wOjpJVmlicmF0b3I7Cit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6ZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uOworCitpbnQgbWFpbigpIHsKKyAgICByZXR1cm4gZGVmYXVsdFBhc3N0aHJvdWdoU2VydmljZUltcGxlbWVudGF0aW9uPElWaWJyYXRvcj4oKTsKK30KZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC90eXBlcy5oYWwgYi92aWJyYXRvci8xLjAvdHlwZXMuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwODBjMDcKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvdHlwZXMuaGFsCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitwYWNrYWdlIGFuZHJvaWQuaGFyZHdhcmUudmlicmF0b3JAMS4wOworCitlbnVtIFN0YXR1cyA6IHVpbnQzMl90IHsKKyAgICBPSywKKyAgICBVTktOT1dOX0VSUk9SLAorICAgIEJBRF9WQUxVRSwKKyAgICBVTlNVUFBPUlRFRF9PUEVSQVRJT04KK307CisKK0BleHBvcnQKK2VudW0gRWZmZWN0IDogdWludDMyX3QgeworICAgIC8qKgorICAgICAqIEEgc2luZ2xlIGNsaWNrIGVmZmVjdC4KKyAgICAgKgorICAgICAqIFRoaXMgZWZmZWN0IHNob3VsZCBwcm9kdWNlIGEgc2hhcnAsIGNyaXNwIGNsaWNrIHNlbnNhdGlvbi4KKyAgICAgKi8KKyAgICBDTElDSywKKyAgICAvKioKKyAgICAgKiBBIGRvdWJsZSBjbGljayBlZmZlY3QuCisgICAgICoKKyAgICAgKiBUaGlzIGVmZmVjdCBzaG91bGQgcHJvZHVjZSB0d28gc2VxdWVudGlhbCBzaGFycCwgY3Jpc3AgY2xpY2sgc2Vuc2F0aW9ucyB3aXRoIGEgbWluaW1hbAorICAgICAqIGFtb3VudCBvZiB0aW1lIGJldHdlZW4gdGhlbS4KKyAgICAgKi8KKyAgICBET1VCTEVfQ0xJQ0sKK307CisKK0BleHBvcnQKK2VudW0gRWZmZWN0U3RyZW5ndGggOiB1aW50OF90IHsKKyAgICBMSUdIVCwKKyAgICBNRURJVU0sCisgICAgU1RST05HCit9OwpkaWZmIC0tZ2l0IGEvcmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rIGIvdmlicmF0b3IvMS4wL3Z0cy9BbmRyb2lkLm1rCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpjb3B5IGZyb20gcmFkaW8vMS4wL3Z0cy9BbmRyb2lkLm1rCmNvcHkgdG8gdmlicmF0b3IvMS4wL3Z0cy9BbmRyb2lkLm1rCmRpZmYgLS1naXQgYS92aWJyYXRvci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icCBiL3ZpYnJhdG9yLzEuMC92dHMvZnVuY3Rpb25hbC9BbmRyb2lkLmJwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllMjVkZWYKLS0tIC9kZXYvbnVsbAorKysgYi92aWJyYXRvci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApAQCAtMCwwICsxLDM0IEBACisvLworLy8gQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisvLworCitjY190ZXN0IHsKKyAgICBuYW1lOiAiVnRzSGFsVmlicmF0b3JWMV8wVGFyZ2V0VGVzdCIsCisgICAgZGVmYXVsdHM6IFsiaGlkbF9kZWZhdWx0cyJdLAorICAgIHNyY3M6IFsiVnRzSGFsVmlicmF0b3JWMV8wVGFyZ2V0VGVzdC5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliYmFzZSIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS52aWJyYXRvckAxLjAiLAorICAgIF0sCisgICAgc3RhdGljX2xpYnM6IFsiVnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIl0sCisgICAgY2ZsYWdzOiBbCisgICAgICAgICItTzAiLAorICAgICAgICAiLWciLAorICAgIF0sCit9CisKZGlmZiAtLWdpdCBhL3ZpYnJhdG9yLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxWaWJyYXRvclYxXzBUYXJnZXRUZXN0LmNwcCBiL3ZpYnJhdG9yLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxWaWJyYXRvclYxXzBUYXJnZXRUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDE1YWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvMS4wL3Z0cy9mdW5jdGlvbmFsL1Z0c0hhbFZpYnJhdG9yVjFfMFRhcmdldFRlc3QuY3BwCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJ2aWJyYXRvcl9oaWRsX2hhbF90ZXN0IgorCisjaW5jbHVkZSA8YW5kcm9pZC1iYXNlL2xvZ2dpbmcuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC9JVmlicmF0b3IuaD4KKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3ZpYnJhdG9yLzEuMC90eXBlcy5oPgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp2aWJyYXRvcjo6VjFfMDo6RWZmZWN0OwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dmlicmF0b3I6OlYxXzA6OkVmZmVjdFN0cmVuZ3RoOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dmlicmF0b3I6OlYxXzA6OklWaWJyYXRvcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZpYnJhdG9yOjpWMV8wOjpTdGF0dXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgVklCUkFUT1IgSElETCBIQUwuCitjbGFzcyBWaWJyYXRvckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICB2aWJyYXRvciA9IDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlOjpnZXRTZXJ2aWNlPElWaWJyYXRvcj4oKTsKKyAgICBBU1NFUlRfTkUodmlicmF0b3IsIG51bGxwdHIpOworICB9CisKKyAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUge30KKworICBzcDxJVmlicmF0b3I+IHZpYnJhdG9yOworfTsKKworLy8gQSBjbGFzcyBmb3IgdGVzdCBlbnZpcm9ubWVudCBzZXR1cCAoa2VwdCBzaW5jZSB0aGlzIGZpbGUgaXMgYSB0ZW1wbGF0ZSkuCitjbGFzcyBWaWJyYXRvckhpZGxFbnZpcm9ubWVudCA6IHB1YmxpYyA6OnRlc3Rpbmc6OkVudmlyb25tZW50IHsKKyBwdWJsaWM6CisgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIHt9CisgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIHt9CisKKyBwcml2YXRlOgorfTsKKworc3RhdGljIHZvaWQgdmFsaWRhdGVQZXJmb3JtRWZmZWN0KFN0YXR1cyBzdGF0dXMsIHVpbnQzMl90IGxlbmd0aE1zKSB7CisgIEFTU0VSVF9UUlVFKHN0YXR1cyA9PSBTdGF0dXM6Ok9LIHx8IHN0YXR1cyA9PSBTdGF0dXM6OlVOU1VQUE9SVEVEX09QRVJBVElPTik7CisgIGlmIChzdGF0dXMgPT0gU3RhdHVzOjpPSykgeworICAgICAgQVNTRVJUX0dUKGxlbmd0aE1zLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oMCkpOworICB9IGVsc2UgeworICAgICAgQVNTRVJUX0VRKGxlbmd0aE1zLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oMCkpOworICB9Cit9CisKK1RFU1RfRihWaWJyYXRvckhpZGxUZXN0LCBPblRoZW5PZmZCZWZvcmVUaW1lb3V0KSB7CisgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCB2aWJyYXRvci0+b24oMjAwMCkpOworICBzbGVlcCgxKTsKKyAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHZpYnJhdG9yLT5vZmYoKSk7Cit9CisKK1RFU1RfRihWaWJyYXRvckhpZGxUZXN0LCBQZXJmb3JtRWZmZWN0KSB7CisgIHZpYnJhdG9yLT5wZXJmb3JtKEVmZmVjdDo6Q0xJQ0ssIEVmZmVjdFN0cmVuZ3RoOjpNRURJVU0sIHZhbGlkYXRlUGVyZm9ybUVmZmVjdCk7CisgIHZpYnJhdG9yLT5wZXJmb3JtKEVmZmVjdDo6RE9VQkxFX0NMSUNLLCBFZmZlY3RTdHJlbmd0aDo6TElHSFQsIHZhbGlkYXRlUGVyZm9ybUVmZmVjdCk7Cit9CisKK1RFU1RfRihWaWJyYXRvckhpZGxUZXN0LCBDaGFuZ2VWaWJyYXRpb25hbEFtcGxpdHVkZSkgeworICBpZiAodmlicmF0b3ItPnN1cHBvcnRzQW1wbGl0dWRlQ29udHJvbCgpKSB7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6T0ssIHZpYnJhdG9yLT5zZXRBbXBsaXR1ZGUoMSkpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCB2aWJyYXRvci0+b24oMjAwMCkpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCB2aWJyYXRvci0+c2V0QW1wbGl0dWRlKDEyOCkpOworICAgIHNsZWVwKDEpOworICAgIEVYUEVDVF9FUShTdGF0dXM6Ok9LLCB2aWJyYXRvci0+c2V0QW1wbGl0dWRlKDI1NSkpOworICAgIHNsZWVwKDEpOworICB9Cit9CisKK1RFU1RfRihWaWJyYXRvckhpZGxUZXN0LCBBbXBsaXR1ZGVPdXRzaWRlUmFuZ2VGYWlscykgeworICBpZiAodmlicmF0b3ItPnN1cHBvcnRzQW1wbGl0dWRlQ29udHJvbCgpKSB7CisgICAgRVhQRUNUX0VRKFN0YXR1czo6QkFEX1ZBTFVFLCB2aWJyYXRvci0+c2V0QW1wbGl0dWRlKDApKTsKKyAgfQorfQorCitURVNUX0YoVmlicmF0b3JIaWRsVGVzdCwgU2V0QW1wbGl0dWRlUmV0dXJuVW5zdXBwb3J0ZWRPcGVyYXRpb25JZk5vdFN1cHBvcnRlZCkgeworICBpZiAoIXZpYnJhdG9yLT5zdXBwb3J0c0FtcGxpdHVkZUNvbnRyb2woKSkgeworICAgIEVYUEVDVF9FUShTdGF0dXM6OlVOU1VQUE9SVEVEX09QRVJBVElPTiwgdmlicmF0b3ItPnNldEFtcGxpdHVkZSgxKSk7CisgIH0KK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBWaWJyYXRvckhpZGxFbnZpcm9ubWVudCk7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBMT0coSU5GTykgPDwgIlRlc3QgcmVzdWx0ID0gIiA8PCBzdGF0dXM7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS92aWJyYXRvci9BbmRyb2lkLmJwIGIvdmlicmF0b3IvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvdmlicmF0b3IvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3ZyLzEuMC9BbmRyb2lkLmJwIGIvdnIvMS4wL0FuZHJvaWQuYnAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY5NDljNQotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9BbmRyb2lkLmJwCkBAIC0wLDAgKzEsNTkgQEAKKy8vIFRoaXMgZmlsZSBpcyBhdXRvZ2VuZXJhdGVkIGJ5IGhpZGwtZ2VuLiBEbyBub3QgZWRpdCBtYW51YWxseS4KKworZmlsZWdyb3VwIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS52ckAxLjBfaGFsIiwKKyAgICBzcmNzOiBbCisgICAgICAgICJJVnIuaGFsIiwKKyAgICBdLAorfQorCitnZW5ydWxlIHsKKyAgICBuYW1lOiAiYW5kcm9pZC5oYXJkd2FyZS52ckAxLjBfZ2VuYysrIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1zb3VyY2VzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL1ZyQWxsLmNwcCIsCisgICAgXSwKK30KKworZ2VucnVsZSB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2dlbmMrK19oZWFkZXJzIiwKKyAgICB0b29sczogWyJoaWRsLWdlbiJdLAorICAgIGNtZDogIiQobG9jYXRpb24gaGlkbC1nZW4pIC1vICQoZ2VuRGlyKSAtTGMrKy1oZWFkZXJzIC1yYW5kcm9pZC5oYXJkd2FyZTpoYXJkd2FyZS9pbnRlcmZhY2VzIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMCIsCisgICAgc3JjczogWworICAgICAgICAiOmFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2hhbCIsCisgICAgXSwKKyAgICBvdXQ6IFsKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0lWci5oIiwKKyAgICAgICAgImFuZHJvaWQvaGFyZHdhcmUvdnIvMS4wL0lId1ZyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92ci8xLjAvQm5Id1ZyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92ci8xLjAvQnBId1ZyLmgiLAorICAgICAgICAiYW5kcm9pZC9oYXJkd2FyZS92ci8xLjAvQnNWci5oIiwKKyAgICBdLAorfQorCitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wIiwKKyAgICBkZWZhdWx0czogWyJoaWRsLW1vZHVsZS1kZWZhdWx0cyJdLAorICAgIGdlbmVyYXRlZF9zb3VyY2VzOiBbImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2dlbmMrKyJdLAorICAgIGdlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgZXhwb3J0X2dlbmVyYXRlZF9oZWFkZXJzOiBbImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wX2dlbmMrK19oZWFkZXJzIl0sCisgICAgdmVuZG9yX2F2YWlsYWJsZTogdHJ1ZSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGliaGlkbGJhc2UiLAorICAgICAgICAibGliaGlkbHRyYW5zcG9ydCIsCisgICAgICAgICJsaWJod2JpbmRlciIsCisgICAgICAgICJsaWJsb2ciLAorICAgICAgICAibGlidXRpbHMiLAorICAgICAgICAibGliY3V0aWxzIiwKKyAgICBdLAorICAgIGV4cG9ydF9zaGFyZWRfbGliX2hlYWRlcnM6IFsKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAibGliaHdiaW5kZXIiLAorICAgICAgICAibGlidXRpbHMiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS92ci8xLjAvQW5kcm9pZC5tayBiL3ZyLzEuMC9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjNWM2NzVkCi0tLSAvZGV2L251bGwKKysrIGIvdnIvMS4wL0FuZHJvaWQubWsKQEAgLTAsMCArMSw3NiBAQAorIyBUaGlzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBieSBoaWRsLWdlbi4gRG8gbm90IGVkaXQgbWFudWFsbHkuCisKK0xPQ0FMX1BBVEggOj0gJChjYWxsIG15LWRpcikKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW5jbHVkZSAkKENMRUFSX1ZBUlMpCitMT0NBTF9NT0RVTEUgOj0gYW5kcm9pZC5oYXJkd2FyZS52ci1WMS4wLWphdmEKK0xPQ0FMX01PRFVMRV9DTEFTUyA6PSBKQVZBX0xJQlJBUklFUworCitpbnRlcm1lZGlhdGVzIDo9ICQoY2FsbCBsb2NhbC1nZW5lcmF0ZWQtc291cmNlcy1kaXIsIENPTU1PTikKKworSElETCA6PSAkKEhPU1RfT1VUX0VYRUNVVEFCTEVTKS9oaWRsLWdlbiQoSE9TVF9FWEVDVVRBQkxFX1NVRkZJWCkKKworTE9DQUxfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YSBcCisKKworIworIyBCdWlsZCBJVnIuaGFsCisjCitHRU4gOj0gJChpbnRlcm1lZGlhdGVzKS9hbmRyb2lkL2hhcmR3YXJlL3ZyL1YxXzAvSVZyLmphdmEKKyQoR0VOKTogJChISURMKQorJChHRU4pOiBQUklWQVRFX0hJREwgOj0gJChISURMKQorJChHRU4pOiBQUklWQVRFX0RFUFMgOj0gJChMT0NBTF9QQVRIKS9JVnIuaGFsCiskKEdFTik6IFBSSVZBVEVfT1VUUFVUX0RJUiA6PSAkKGludGVybWVkaWF0ZXMpCiskKEdFTik6IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBcCisgICAgICAgICQoUFJJVkFURV9ISURMKSAtbyAkKFBSSVZBVEVfT1VUUFVUX0RJUikgXAorICAgICAgICAtTGphdmEgXAorICAgICAgICAtcmFuZHJvaWQuaGFyZHdhcmU6aGFyZHdhcmUvaW50ZXJmYWNlcyBcCisgICAgICAgIC1yYW5kcm9pZC5oaWRsOnN5c3RlbS9saWJoaWRsL3RyYW5zcG9ydCBcCisgICAgICAgIGFuZHJvaWQuaGFyZHdhcmUudnJAMS4wOjpJVnIKKworJChHRU4pOiAkKExPQ0FMX1BBVEgpL0lWci5oYWwKKwkkKHRyYW5zZm9ybS1nZW5lcmF0ZWQtc291cmNlKQorTE9DQUxfR0VORVJBVEVEX1NPVVJDRVMgKz0gJChHRU4pCitpbmNsdWRlICQoQlVJTERfSkFWQV9MSUJSQVJZKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2luY2x1ZGUgJChDTEVBUl9WQVJTKQorTE9DQUxfTU9EVUxFIDo9IGFuZHJvaWQuaGFyZHdhcmUudnItVjEuMC1qYXZhLXN0YXRpYworTE9DQUxfTU9EVUxFX0NMQVNTIDo9IEpBVkFfTElCUkFSSUVTCisKK2ludGVybWVkaWF0ZXMgOj0gJChjYWxsIGxvY2FsLWdlbmVyYXRlZC1zb3VyY2VzLWRpciwgQ09NTU9OKQorCitISURMIDo9ICQoSE9TVF9PVVRfRVhFQ1VUQUJMRVMpL2hpZGwtZ2VuJChIT1NUX0VYRUNVVEFCTEVfU1VGRklYKQorCitMT0NBTF9TVEFUSUNfSkFWQV9MSUJSQVJJRVMgOj0gXAorICAgIGFuZHJvaWQuaGlkbC5iYXNlLVYxLjAtamF2YS1zdGF0aWMgXAorCisKKyMKKyMgQnVpbGQgSVZyLmhhbAorIworR0VOIDo9ICQoaW50ZXJtZWRpYXRlcykvYW5kcm9pZC9oYXJkd2FyZS92ci9WMV8wL0lWci5qYXZhCiskKEdFTik6ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ISURMIDo9ICQoSElETCkKKyQoR0VOKTogUFJJVkFURV9ERVBTIDo9ICQoTE9DQUxfUEFUSCkvSVZyLmhhbAorJChHRU4pOiBQUklWQVRFX09VVFBVVF9ESVIgOj0gJChpbnRlcm1lZGlhdGVzKQorJChHRU4pOiBQUklWQVRFX0NVU1RPTV9UT09MID0gXAorICAgICAgICAkKFBSSVZBVEVfSElETCkgLW8gJChQUklWQVRFX09VVFBVVF9ESVIpIFwKKyAgICAgICAgLUxqYXZhIFwKKyAgICAgICAgLXJhbmRyb2lkLmhhcmR3YXJlOmhhcmR3YXJlL2ludGVyZmFjZXMgXAorICAgICAgICAtcmFuZHJvaWQuaGlkbDpzeXN0ZW0vbGliaGlkbC90cmFuc3BvcnQgXAorICAgICAgICBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMDo6SVZyCisKKyQoR0VOKTogJChMT0NBTF9QQVRIKS9JVnIuaGFsCisJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNvdXJjZSkKK0xPQ0FMX0dFTkVSQVRFRF9TT1VSQ0VTICs9ICQoR0VOKQoraW5jbHVkZSAkKEJVSUxEX1NUQVRJQ19KQVZBX0xJQlJBUlkpCisKKworCitpbmNsdWRlICQoY2FsbCBhbGwtbWFrZWZpbGVzLXVuZGVyLCQoTE9DQUxfUEFUSCkpCmRpZmYgLS1naXQgYS92ci8xLjAvSVZyLmhhbCBiL3ZyLzEuMC9JVnIuaGFsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmOTk2ZTkKLS0tIC9kZXYvbnVsbAorKysgYi92ci8xLjAvSVZyLmhhbApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworcGFja2FnZSBhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMDsKKworaW50ZXJmYWNlIElWciB7CisgIC8qKgorICAgKiBDb252ZW5pZW5jZSBtZXRob2QgdG8gc2V0IHVwIGFueSBzdGF0ZSBuZWVkZWQgYXQgcnVudGltZSBzdGFydHVwLiAgVGhpcyBpcworICAgKiBjYWxsZWQgb25jZSBmcm9tIHRoZSBWck1hbmFnZXJTZXJ2aWNlIGR1cmluZyBpdHMgYm9vdCBwaGFzZS4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICBAZW50cnkKKyAgQGV4aXQKKyAgaW5pdCgpOworCisgIC8qKgorICAgKiBTZXQgdGhlIFZSIG1vZGUgc3RhdGUuICBQb3NzaWJsZSBzdGF0ZXMgb2YgdGhlIGVuYWJsZWQgcGFyYW1ldGVyIGFyZToKKyAgICogZmFsc2UgLSBWUiBtb2RlIGlzIGRpc2FibGVkLCB0dXJuIG9mZiBhbGwgVlItc3BlY2lmaWMgc2V0dGluZ3MuCisgICAqIHRydWUgLSBWUiBtb2RlIGlzIGVuYWJsZWQsIHR1cm4gb24gYWxsIFZSLXNwZWNpZmljIHNldHRpbmdzLgorICAgKgorICAgKiBUaGlzIG11c3QgYmUgY2FsbGVkIHdoZW5ldmVyIHRoZSB0aGUgQW5kcm9pZCBzeXN0ZW0gZW50ZXJzIG9yIGxlYXZlcyBWUgorICAgKiBtb2RlLiBUaGlzIHdpbGwgdHlwaWNhbGx5IG9jY3VyIHdoZW4gdGhlIHVzZXIgc3dpdGNoZXMgdG8gb3IgZnJvbSBhIFZSCisgICAqIGFwcGxpY2F0aW9uIHRoYXQgaXMgZG9pbmcgc3RlcmVvc2NvcGljIHJlbmRlcmluZy4KKyAgICovCisgIEBjYWxsZmxvdyhuZXh0PXsiKiJ9KQorICBAZXhpdAorICBzZXRWck1vZGUoYm9vbCBlbmFibGVkKTsKK307CmRpZmYgLS1naXQgYS92ci8xLjAvZGVmYXVsdC9BbmRyb2lkLmJwIGIvdnIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZGMxYmZiCi0tLSAvZGV2L251bGwKKysrIGIvdnIvMS4wL2RlZmF1bHQvQW5kcm9pZC5icApAQCAtMCwwICsxLDM2IEBACitjY19saWJyYXJ5X3NoYXJlZCB7CisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wLWltcGwiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBwcm9wcmlldGFyeTogdHJ1ZSwKKyAgICByZWxhdGl2ZV9pbnN0YWxsX3BhdGg6ICJodyIsCisgICAgc3JjczogWyJWci5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJoYXJkd2FyZSIsCisgICAgICAgICJsaWJiYXNlIiwKKyAgICAgICAgImxpYmN1dGlscyIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJoaWRsdHJhbnNwb3J0IiwKKyAgICAgICAgImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wIiwKKyAgICBdLAorfQorCitjY19iaW5hcnkgeworICAgIHJlbGF0aXZlX2luc3RhbGxfcGF0aDogImh3IiwKKyAgICBkZWZhdWx0czogWyJoaWRsX2RlZmF1bHRzIl0sCisgICAgcHJvcHJpZXRhcnk6IHRydWUsCisgICAgbmFtZTogImFuZHJvaWQuaGFyZHdhcmUudnJAMS4wLXNlcnZpY2UiLAorICAgIGluaXRfcmM6IFsiYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAtc2VydmljZS5yYyJdLAorICAgIHNyY3M6IFsic2VydmljZS5jcHAiXSwKKyAgICBzaGFyZWRfbGliczogWworICAgICAgICAibGlibG9nIiwKKyAgICAgICAgImxpYmRsIiwKKyAgICAgICAgImxpYnV0aWxzIiwKKyAgICAgICAgImxpYmhhcmR3YXJlIiwKKyAgICAgICAgImxpYmhpZGxiYXNlIiwKKyAgICAgICAgImxpYmhpZGx0cmFuc3BvcnQiLAorICAgICAgICAiYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAiLAorICAgIF0sCit9CmRpZmYgLS1naXQgYS92ci8xLjAvZGVmYXVsdC9Wci5jcHAgYi92ci8xLjAvZGVmYXVsdC9Wci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJiYTllYgotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9kZWZhdWx0L1ZyLmNwcApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJWclNlcnZpY2UiCisKKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKKyNpbmNsdWRlIDxoYXJkd2FyZS9oYXJkd2FyZS5oPgorI2luY2x1ZGUgPGhhcmR3YXJlL3ZyLmg+CisKKyNpbmNsdWRlICJWci5oIgorCituYW1lc3BhY2UgYW5kcm9pZCB7CituYW1lc3BhY2UgaGFyZHdhcmUgeworbmFtZXNwYWNlIHZyIHsKK25hbWVzcGFjZSBWMV8wIHsKK25hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbiB7CisKK1ZyOjpWcih2cl9tb2R1bGVfdCAqZGV2aWNlKSA6IG1EZXZpY2UoZGV2aWNlKSB7fQorCisvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6dnI6OlYxXzA6OklWciBmb2xsb3cuCitSZXR1cm48dm9pZD4gVnI6OmluaXQoKSB7CisgICAgbURldmljZS0+aW5pdChtRGV2aWNlKTsKKyAgICByZXR1cm4gVm9pZCgpOworfQorCitSZXR1cm48dm9pZD4gVnI6OnNldFZyTW9kZShib29sIGVuYWJsZWQpICB7CisgICAgbURldmljZS0+c2V0X3ZyX21vZGUobURldmljZSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFZvaWQoKTsKK30KKworSVZyKiBISURMX0ZFVENIX0lWcihjb25zdCBjaGFyICogLypuYW1lKi8pIHsKKyAgICBjb25zdCBod19tb2R1bGVfdCAqaHdfbW9kdWxlID0gTlVMTDsKKworICAgIGludCByZXQgPSBod19nZXRfbW9kdWxlKFZSX0hBUkRXQVJFX01PRFVMRV9JRCwgJmh3X21vZHVsZSk7CisgICAgaWYgKHJldCA9PSAwKSB7CisgICAgICAgIHJldHVybiBuZXcgVnIocmVpbnRlcnByZXRfY2FzdDx2cl9tb2R1bGVfdCo+KAorICAgICAgICAgICAgICAgIGNvbnN0X2Nhc3Q8aHdfbW9kdWxlX3QqPihod19tb2R1bGUpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQUxPR0UoImh3X2dldF9tb2R1bGUgJXMgZmFpbGVkOiAlZCIsIFZSX0hBUkRXQVJFX01PRFVMRV9JRCwgcmV0KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBpbXBsZW1lbnRhdGlvbgorfSAgLy8gbmFtZXNwYWNlIFYxXzAKK30gIC8vIG5hbWVzcGFjZSB2cgorfSAgLy8gbmFtZXNwYWNlIGhhcmR3YXJlCit9ICAvLyBuYW1lc3BhY2UgYW5kcm9pZApkaWZmIC0tZ2l0IGEvdnIvMS4wL2RlZmF1bHQvVnIuaCBiL3ZyLzEuMC9kZWZhdWx0L1ZyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQ1ZTc2NAotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9kZWZhdWx0L1ZyLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisjaWZuZGVmIEFORFJPSURfSEFSRFdBUkVfVlJfVjFfMF9WUl9ICisjZGVmaW5lIEFORFJPSURfSEFSRFdBUkVfVlJfVjFfMF9WUl9ICisKKyNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3ZyLzEuMC9JVnIuaD4KKyNpbmNsdWRlIDxoYXJkd2FyZS92ci5oPgorI2luY2x1ZGUgPGhpZGwvTVFEZXNjcmlwdG9yLmg+CisKK25hbWVzcGFjZSBhbmRyb2lkIHsKK25hbWVzcGFjZSBoYXJkd2FyZSB7CituYW1lc3BhY2UgdnIgeworbmFtZXNwYWNlIFYxXzAgeworbmFtZXNwYWNlIGltcGxlbWVudGF0aW9uIHsKKwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6dnI6OlYxXzA6OklWcjsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKKworc3RydWN0IFZyIDogcHVibGljIElWciB7CisgICAgVnIodnJfbW9kdWxlX3QgKmRldmljZSk7CisKKyAgICAvLyBNZXRob2RzIGZyb20gOjphbmRyb2lkOjpoYXJkd2FyZTo6dnI6OlYxXzA6OklWciBmb2xsb3cuCisgICAgUmV0dXJuPHZvaWQ+IGluaXQoKSAgb3ZlcnJpZGU7CisgICAgUmV0dXJuPHZvaWQ+IHNldFZyTW9kZShib29sIGVuYWJsZWQpICBvdmVycmlkZTsKKworICBwcml2YXRlOgorICAgIHZyX21vZHVsZV90ICAgICptRGV2aWNlOworfTsKKworZXh0ZXJuICJDIiBJVnIqIEhJRExfRkVUQ0hfSVZyKGNvbnN0IGNoYXIqIG5hbWUpOworCit9ICAvLyBuYW1lc3BhY2UgaW1wbGVtZW50YXRpb24KK30gIC8vIG5hbWVzcGFjZSBWMV8wCit9ICAvLyBuYW1lc3BhY2UgdnIKK30gIC8vIG5hbWVzcGFjZSBoYXJkd2FyZQorfSAgLy8gbmFtZXNwYWNlIGFuZHJvaWQKKworI2VuZGlmICAvLyBBTkRST0lEX0hBUkRXQVJFX1ZSX1YxXzBfVlJfSApkaWZmIC0tZ2l0IGEvdnIvMS4wL2RlZmF1bHQvYW5kcm9pZC5oYXJkd2FyZS52ckAxLjAtc2VydmljZS5yYyBiL3ZyLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudnJAMS4wLXNlcnZpY2UucmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNjNjQxNgotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9kZWZhdWx0L2FuZHJvaWQuaGFyZHdhcmUudnJAMS4wLXNlcnZpY2UucmMKQEAgLTAsMCArMSw0IEBACitzZXJ2aWNlIHZyLTEtMCAvdmVuZG9yL2Jpbi9ody9hbmRyb2lkLmhhcmR3YXJlLnZyQDEuMC1zZXJ2aWNlCisgICAgY2xhc3MgaGFsCisgICAgdXNlciBzeXN0ZW0KKyAgICBncm91cCBzeXN0ZW0KZGlmZiAtLWdpdCBhL3ZyLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwIGIvdnIvMS4wL2RlZmF1bHQvc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjJmYjdkMQotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC9kZWZhdWx0L3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworI2RlZmluZSBMT0dfVEFHICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMC1zZXJ2aWNlIgorCisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS92ci8xLjAvSVZyLmg+CisjaW5jbHVkZSA8aGlkbC9MZWdhY3lTdXBwb3J0Lmg+CisKKy8vIEdlbmVyYXRlZCBISURMIGZpbGVzCit1c2luZyBhbmRyb2lkOjpoYXJkd2FyZTo6dnI6OlYxXzA6OklWcjsKK3VzaW5nIGFuZHJvaWQ6OmhhcmR3YXJlOjpkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb247CisKK2ludCBtYWluKCkgeworICAgIHJldHVybiBkZWZhdWx0UGFzc3Rocm91Z2hTZXJ2aWNlSW1wbGVtZW50YXRpb248SVZyPigpOworfQpkaWZmIC0tZ2l0IGEvdnIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAgYi92ci8xLjAvdnRzL2Z1bmN0aW9uYWwvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDVhOTlhCi0tLSAvZGV2L251bGwKKysrIGIvdnIvMS4wL3Z0cy9mdW5jdGlvbmFsL0FuZHJvaWQuYnAKQEAgLTAsMCArMSwzMiBAQAorLy8KKy8vIENvcHlyaWdodCAoQykgMjAxNiBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorLy8KKworY2NfdGVzdCB7CisgICAgbmFtZTogIlZ0c0hhbFZyVjFfMFRhcmdldFRlc3QiLAorICAgIGRlZmF1bHRzOiBbImhpZGxfZGVmYXVsdHMiXSwKKyAgICBzcmNzOiBbIlZ0c0hhbFZyVjFfMFRhcmdldFRlc3QuY3BwIl0sCisgICAgc2hhcmVkX2xpYnM6IFsKKyAgICAgICAgImxpYmxvZyIsCisgICAgICAgICJsaWJoaWRsYmFzZSIsCisgICAgICAgICJsaWJ1dGlscyIsCisgICAgICAgICJhbmRyb2lkLmhhcmR3YXJlLnZyQDEuMCIsCisgICAgXSwKKyAgICBzdGF0aWNfbGliczogWyJWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UiXSwKKyAgICBjZmxhZ3M6IFsKKyAgICAgICAiLU8wIiwKKyAgICAgICAgIi1nIiwKKyAgICBdCit9CmRpZmYgLS1naXQgYS92ci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVnJWMV8wVGFyZ2V0VGVzdC5jcHAgYi92ci8xLjAvdnRzL2Z1bmN0aW9uYWwvVnRzSGFsVnJWMV8wVGFyZ2V0VGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNmNGM3MQotLS0gL2Rldi9udWxsCisrKyBiL3ZyLzEuMC92dHMvZnVuY3Rpb25hbC9WdHNIYWxWclYxXzBUYXJnZXRUZXN0LmNwcApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworI2RlZmluZSBMT0dfVEFHICJ2cl9oaWRsX2hhbF90ZXN0IgorI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorI2luY2x1ZGUgPGFuZHJvaWQtYmFzZS9sb2dnaW5nLmg+CisjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS92ci8xLjAvSVZyLmg+CisjaW5jbHVkZSA8aGFyZHdhcmUvdnIuaD4KKyNpbmNsdWRlIDxsb2cvbG9nLmg+CisKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OnZyOjpWMV8wOjpJVnI7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpzcDsKKworLy8gVGhlIG1haW4gdGVzdCBjbGFzcyBmb3IgVlIgSElETCBIQUwuCitjbGFzcyBWckhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKKyBwdWJsaWM6CisgIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7CisgICAgdnIgPSA6OnRlc3Rpbmc6OlZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZTo6Z2V0U2VydmljZTxJVnI+KCk7CisgICAgQVNTRVJUX05FKHZyLCBudWxscHRyKTsKKyAgfQorCisgIHZvaWQgVGVhckRvd24oKSBvdmVycmlkZSB7fQorCisgIHNwPElWcj4gdnI7Cit9OworCisKKy8vIEEgY2xhc3MgZm9yIHRlc3QgZW52aXJvbm1lbnQgc2V0dXAgKGtlcHQgc2luY2UgdGhpcyBmaWxlIGlzIGEgdGVtcGxhdGUpLgorY2xhc3MgVnJIaWRsRW52aXJvbm1lbnQgOiBwdWJsaWMgOjp0ZXN0aW5nOjpFbnZpcm9ubWVudCB7CisgcHVibGljOgorICB2b2lkIFNldFVwKCkge30KKyAgdm9pZCBUZWFyRG93bigpIHt9CisKKyBwcml2YXRlOgorfTsKKworLy8gU2FuaXR5IGNoZWNrIHRoYXQgVnI6OmluaXQgZG9lcyBub3QgY3Jhc2guCitURVNUX0YoVnJIaWRsVGVzdCwgSW5pdCkgeworICBFWFBFQ1RfVFJVRSh2ci0+aW5pdCgpLmlzT2soKSk7Cit9CisKKy8vIFNhbml0eSBjaGVjayBWcjo6c2V0VnJNb2RlIGlzIGFibGUgdG8gZW5hYmxlIGFuZCBkaXNhYmxlIFZSIG1vZGUuCitURVNUX0YoVnJIaWRsVGVzdCwgU2V0VnJNb2RlKSB7CisgIEVYUEVDVF9UUlVFKHZyLT5pbml0KCkuaXNPaygpKTsKKyAgRVhQRUNUX1RSVUUodnItPnNldFZyTW9kZSh0cnVlKS5pc09rKCkpOworICBFWFBFQ1RfVFJVRSh2ci0+c2V0VnJNb2RlKGZhbHNlKS5pc09rKCkpOworfQorCisvLyBTYW5pdHkgY2hlY2sgdGhhdCBWcjo6aW5pdCBhbmQgVnI6OnNldFZyTW9kZSBjYW4gYmUgdXNlZCBpbiBhbnkgb3JkZXIuCitURVNUX0YoVnJIaWRsVGVzdCwgUmVJbml0KSB7CisgIEVYUEVDVF9UUlVFKHZyLT5pbml0KCkuaXNPaygpKTsKKyAgRVhQRUNUX1RSVUUodnItPnNldFZyTW9kZSh0cnVlKS5pc09rKCkpOworICBFWFBFQ1RfVFJVRSh2ci0+aW5pdCgpLmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHZyLT5zZXRWck1vZGUoZmFsc2UpLmlzT2soKSk7CisgIEVYUEVDVF9UUlVFKHZyLT5pbml0KCkuaXNPaygpKTsKKyAgRVhQRUNUX1RSVUUodnItPnNldFZyTW9kZShmYWxzZSkuaXNPaygpKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CisgIDo6dGVzdGluZzo6QWRkR2xvYmFsVGVzdEVudmlyb25tZW50KG5ldyBWckhpZGxFbnZpcm9ubWVudCk7CisgIDo6dGVzdGluZzo6SW5pdEdvb2dsZVRlc3QoJmFyZ2MsIGFyZ3YpOworICBpbnQgc3RhdHVzID0gUlVOX0FMTF9URVNUUygpOworICBBTE9HSSgiVGVzdCByZXN1bHQgPSAlZCIsIHN0YXR1cyk7CisgIHJldHVybiBzdGF0dXM7Cit9CmRpZmYgLS1naXQgYS92ci9BbmRyb2lkLmJwIGIvdnIvQW5kcm9pZC5icApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDE5YTM3Ci0tLSAvZGV2L251bGwKKysrIGIvdnIvQW5kcm9pZC5icApAQCAtMCwwICsxLDYgQEAKKy8vIFRoaXMgaXMgYW4gYXV0b2dlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdC4KK3N1YmRpcnMgPSBbCisgICAgIjEuMCIsCisgICAgIjEuMC9kZWZhdWx0IiwKKyAgICAiMS4wL3Z0cy9mdW5jdGlvbmFsIiwKK10KZGlmZiAtLWdpdCBhL3dpZmkvMS4wL0lXaWZpQ2hpcC5oYWwgYi93aWZpLzEuMC9JV2lmaUNoaXAuaGFsCmluZGV4IDYxMWM0NDkuLmI5NzMyN2MgMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL0lXaWZpQ2hpcC5oYWwKKysrIGIvd2lmaS8xLjAvSVdpZmlDaGlwLmhhbApAQCAtMjIwLDcgKzIyMCwxMiBAQAogICBnZXRBdmFpbGFibGVNb2RlcygpIGdlbmVyYXRlcyAoV2lmaVN0YXR1cyBzdGF0dXMsIHZlYzxDaGlwTW9kZT4gbW9kZXMpOwogCiAgIC8qKgotICAgKiBSZWNvbmZpZ3VyZSB0aGUgQ2hpcC4KKyAgICogQ29uZmlndXJlIHRoZSBDaGlwLgorICAgKiBUaGlzIG1heSBOT1QgYmUgY2FsbGVkIHRvIHJlY29uZmlndXJlIGEgY2hpcCBkdWUgdG8gYW4gaW50ZXJuYWwKKyAgICogbGltaXRhdGlvbi4gQ2FsbGluZyB0aGlzIHdoZW4gY2hpcCBpcyBhbHJlYWR5IGNvbmZpZ3VyZWQgaW4gYSBkaWZmZXJlbnQKKyAgICogbW9kZSBtdXN0IHRyaWdnZXIgYW4gRVJST1JfTk9UX1NVUFBPUlRFRCBmYWlsdXJlLgorICAgKiBJZiB5b3Ugd2FudCB0byBkbyByZWNvbmZpZ3VyYXRpb24sIHBsZWFzZSBjYWxsIElXaWZpLnN0b3AoKSBhbmQgSVdpZmkuc3RhcnQoKQorICAgKiB0byByZXN0YXJ0IFdpZmkgSEFMIGJlZm9yZSBjYWxsaW5nIHRoaXMuCiAgICAqIEFueSBleGlzdGluZyB8SVdpZmlJZmFjZXwgb2JqZWN0cyBtdXN0IGJlIG1hcmtlZCBpbnZhbGlkIGFmdGVyIHRoaXMgY2FsbC4KICAgICogSWYgdGhpcyBmYWlscyB0aGVuIHRoZSBjaGlwcyBpcyBub3cgaW4gYW4gdW5kZWZpbmVkIHN0YXRlIGFuZAogICAgKiBjb25maWd1cmVDaGlwIG11c3QgYmUgY2FsbGVkIGFnYWluLgpAQCAtMjM0LDYgKzIzOSw3IEBACiAgICAqICAgICAgICAgfFdpZmlTdGF0dXNDb2RlLlNVQ0NFU1N8LAogICAgKiAgICAgICAgIHxXaWZpU3RhdHVzQ29kZS5FUlJPUl9XSUZJX0NISVBfSU5WQUxJRHwsCiAgICAqICAgICAgICAgfFdpZmlTdGF0dXNDb2RlLkVSUk9SX05PVF9BVkFJTEFCTEV8LAorICAgKiAgICAgICAgIHxXaWZpU3RhdHVzQ29kZS5FUlJPUl9OT1RfU1VQUE9SVEVEfCwKICAgICogICAgICAgICB8V2lmaVN0YXR1c0NvZGUuRVJST1JfVU5LTk9XTnwKICAgICovCiAgIGNvbmZpZ3VyZUNoaXAoQ2hpcE1vZGVJZCBtb2RlSWQpIGdlbmVyYXRlcyAoV2lmaVN0YXR1cyBzdGF0dXMpOwpkaWZmIC0tZ2l0IGEvd2lmaS8xLjAvZGVmYXVsdC9oaWRsX2NhbGxiYWNrX3V0aWwuaCBiL3dpZmkvMS4wL2RlZmF1bHQvaGlkbF9jYWxsYmFja191dGlsLmgKaW5kZXggNzEzNjI3OS4uYjcxMDBjOCAxMDA2NDQKLS0tIGEvd2lmaS8xLjAvZGVmYXVsdC9oaWRsX2NhbGxiYWNrX3V0aWwuaAorKysgYi93aWZpLzEuMC9kZWZhdWx0L2hpZGxfY2FsbGJhY2tfdXRpbC5oCkBAIC04Miw3ICs4Miw3IEBACiAgICAgcmV0dXJuIHRydWU7CiAgIH0KIAotICBjb25zdCBzdGQ6OnNldDxhbmRyb2lkOjpzcDxDYWxsYmFja1R5cGU+PiBnZXRDYWxsYmFja3MoKSB7IHJldHVybiBjYl9zZXRfOyB9CisgIGNvbnN0IHN0ZDo6c2V0PGFuZHJvaWQ6OnNwPENhbGxiYWNrVHlwZT4+JiBnZXRDYWxsYmFja3MoKSB7IHJldHVybiBjYl9zZXRfOyB9CiAKICAgLy8gRGVhdGggbm90aWZpY2F0aW9uIGZvciBjYWxsYmFja3MuCiAgIHZvaWQgb25PYmplY3REZWF0aCh1aW50NjRfdCBjb29raWUpIHsKZGlmZiAtLWdpdCBhL3dpZmkvMS4wL2RlZmF1bHQvaGlkbF9zdHJ1Y3RfdXRpbC5jcHAgYi93aWZpLzEuMC9kZWZhdWx0L2hpZGxfc3RydWN0X3V0aWwuY3BwCmluZGV4IGFlNGY5NWQuLjA3N2RiYjggMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL2RlZmF1bHQvaGlkbF9zdHJ1Y3RfdXRpbC5jcHAKKysrIGIvd2lmaS8xLjAvZGVmYXVsdC9oaWRsX3N0cnVjdF91dGlsLmNwcApAQCAtNDE3LDE3ICs0MTcsMjUgQEAKICAgICBjb25zdCB3aWZpX2llJiBsZWdhY3lfaWUgPSAoKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgd2lmaV9pZSo+KG5leHRfaWUpKTsKICAgICB1aW50MzJfdCBjdXJyX2llX2xlbiA9IGtJZUhlYWRlckxlbiArIGxlZ2FjeV9pZS5sZW47CiAgICAgaWYgKG5leHRfaWUgKyBjdXJyX2llX2xlbiA+IGllc19lbmQpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIExPRyhFUlJPUikgPDwgIkVycm9yIHBhcnNpbmcgSUUgYmxvYi4gTmV4dCBJRTogIiA8PCAodm9pZCAqKW5leHRfaWUKKyAgICAgICAgICAgICAgICAgPDwgIiwgQ3VyciBJRSBsZW46ICIgPDwgY3Vycl9pZV9sZW4gPDwgIiwgSUVzIEVuZDogIiA8PCAodm9pZCAqKWllc19lbmQ7CisgICAgICBicmVhazsKICAgICB9CiAgICAgV2lmaUluZm9ybWF0aW9uRWxlbWVudCBoaWRsX2llOwogICAgIGlmICghY29udmVydExlZ2FjeUllVG9IaWRsKGxlZ2FjeV9pZSwgJmhpZGxfaWUpKSB7Ci0gICAgICByZXR1cm4gZmFsc2U7CisgICAgICBMT0coRVJST1IpIDw8ICJFcnJvciBjb252ZXJ0aW5nIElFLiBJZDogIiA8PCBsZWdhY3lfaWUuaWQKKyAgICAgICAgICAgICAgICAgPDwgIiwgbGVuOiAiIDw8IGxlZ2FjeV9pZS5sZW47CisgICAgICBicmVhazsKICAgICB9CiAgICAgaGlkbF9pZXMtPnB1c2hfYmFjayhzdGQ6Om1vdmUoaGlkbF9pZSkpOwogICAgIG5leHRfaWUgKz0gY3Vycl9pZV9sZW47CiAgIH0KLSAgLy8gRW5zdXJlIHRoYXQgdGhlIGJsb2IgaGFzIGJlZW4gZnVsbHkgY29uc3VtZWQuCi0gIHJldHVybiAobmV4dF9pZSA9PSBpZXNfZW5kKTsKKyAgLy8gQ2hlY2sgaWYgdGhlIGJsb2IgaGFzIGJlZW4gZnVsbHkgY29uc3VtZWQuCisgIGlmIChuZXh0X2llICE9IGllc19lbmQpIHsKKyAgICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gZnVsbHkgcGFyc2UgSUUgYmxvYi4gTmV4dCBJRTogIiA8PCAodm9pZCAqKW5leHRfaWUKKyAgICAgICAgICAgICAgIDw8ICIsIElFcyBFbmQ6ICIgPDwgKHZvaWQgKilpZXNfZW5kOworICB9CisgIHJldHVybiB0cnVlOwogfQogCiBib29sIGNvbnZlcnRMZWdhY3lHc2NhblJlc3VsdFRvSGlkbCgKZGlmZiAtLWdpdCBhL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9jaGlwLmNwcCBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9jaGlwLmNwcAppbmRleCA5YzQxYTQwLi43NzBjODNmIDEwMDY0NAotLS0gYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfY2hpcC5jcHAKKysrIGIvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2NoaXAuY3BwCkBAIC04MDQsMTQgKzgwNCwxMiBAQAogV2lmaVN0YXR1cyBXaWZpQ2hpcDo6aGFuZGxlQ2hpcENvbmZpZ3VyYXRpb24oQ2hpcE1vZGVJZCBtb2RlX2lkKSB7CiAgIC8vIElmIHRoZSBjaGlwIGlzIGFscmVhZHkgY29uZmlndXJlZCBpbiBhIGRpZmZlcmVudCBtb2RlLCBzdG9wCiAgIC8vIHRoZSBsZWdhY3kgSEFMIGFuZCB0aGVuIHN0YXJ0IGl0IGFmdGVyIGZpcm13YXJlIG1vZGUgY2hhbmdlLgorICAvLyBDdXJyZW50bHkgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gaGFzIGEgZGVhZGxvY2sgaXNzdWUuCisgIC8vIFdlIHNob3VsZCByZXR1cm4gRVJST1JfTk9UX1NVUFBPUlRFRCBpZiBjaGlwIGlzIGFscmVhZHkgY29uZmlndXJlZCBpbgorICAvLyBhIGRpZmZlcmVudCBtb2RlLgogICBpZiAoY3VycmVudF9tb2RlX2lkXyAhPSBrSW52YWxpZE1vZGVJZCkgewotICAgIGludmFsaWRhdGVBbmRSZW1vdmVBbGxJZmFjZXMoKTsKLSAgICBsZWdhY3lfaGFsOjp3aWZpX2Vycm9yIGxlZ2FjeV9zdGF0dXMgPSBsZWdhY3lfaGFsXy5sb2NrKCktPnN0b3AoW10oKSB7fSk7Ci0gICAgaWYgKGxlZ2FjeV9zdGF0dXMgIT0gbGVnYWN5X2hhbDo6V0lGSV9TVUNDRVNTKSB7Ci0gICAgICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gc3RvcCBsZWdhY3kgSEFMOiAiCi0gICAgICAgICAgICAgICAgIDw8IGxlZ2FjeUVycm9yVG9TdHJpbmcobGVnYWN5X3N0YXR1cyk7Ci0gICAgICByZXR1cm4gY3JlYXRlV2lmaVN0YXR1c0Zyb21MZWdhY3lFcnJvcihsZWdhY3lfc3RhdHVzKTsKLSAgICB9CisgICAgLy8gVE9ETyhiLzM3NDQ2MDUwKTogRml4IHRoZSBkZWFkbG9jay4KKyAgICByZXR1cm4gY3JlYXRlV2lmaVN0YXR1cyhXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX1NVUFBPUlRFRCk7CiAgIH0KICAgYm9vbCBzdWNjZXNzOwogICBpZiAobW9kZV9pZCA9PSBrU3RhQ2hpcE1vZGVJZCkgewpAQCAtODU1LDcgKzg1Myw4IEBACiAgICAgZm9yIChjb25zdCBhdXRvJiBjYWxsYmFjayA6IHNoYXJlZF9wdHJfdGhpcy0+Z2V0RXZlbnRDYWxsYmFja3MoKSkgewogICAgICAgaWYgKCFjYWxsYmFjay0+b25EZWJ1Z1JpbmdCdWZmZXJEYXRhQXZhaWxhYmxlKGhpZGxfc3RhdHVzLCBkYXRhKS5pc09rKCkpIHsKICAgICAgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGludm9rZSBvbkRlYnVnUmluZ0J1ZmZlckRhdGFBdmFpbGFibGUiCi0gICAgICAgICAgICAgICAgICAgPDwgIiBjYWxsYmFjayI7CisgICAgICAgICAgICAgICAgICAgPDwgIiBjYWxsYmFjayBvbjogIiA8PCB0b1N0cmluZyhjYWxsYmFjayk7CisKICAgICAgIH0KICAgICB9CiAgIH07CmRpZmYgLS1naXQgYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfbGVnYWN5X2hhbC5jcHAgYi93aWZpLzEuMC9kZWZhdWx0L3dpZmlfbGVnYWN5X2hhbC5jcHAKaW5kZXggNDRhY2MwNC4uYjZhNzU1MCAxMDA2NDQKLS0tIGEvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2xlZ2FjeV9oYWwuY3BwCisrKyBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9sZWdhY3lfaGFsLmNwcApAQCAtMTY0LDYgKzE2NCw3IEBACiAgIGNvbnN0IGF1dG8gbG9jayA9IGhpZGxfc3luY191dGlsOjphY3F1aXJlR2xvYmFsTG9jaygpOwogICBpZiAob25fcnR0X3Jlc3VsdHNfaW50ZXJuYWxfY2FsbGJhY2spIHsKICAgICBvbl9ydHRfcmVzdWx0c19pbnRlcm5hbF9jYWxsYmFjayhpZCwgbnVtX3Jlc3VsdHMsIHJ0dF9yZXN1bHRzKTsKKyAgICBvbl9ydHRfcmVzdWx0c19pbnRlcm5hbF9jYWxsYmFjayA9IG51bGxwdHI7CiAgIH0KIH0KIApAQCAtNTg3LDYgKzU4OCwxMSBAQAogICByZXR1cm4ge3N0YXR1cywgc3RkOjptb3ZlKGZyZXFzKX07CiB9CiAKK3dpZmlfZXJyb3IgV2lmaUxlZ2FjeUhhbDo6c2V0RGZzRmxhZyhib29sIGRmc19vbikgeworICByZXR1cm4gZ2xvYmFsX2Z1bmNfdGFibGVfLndpZmlfc2V0X25vZGZzX2ZsYWcoCisgICAgICB3bGFuX2ludGVyZmFjZV9oYW5kbGVfLCBkZnNfb24gPyAwIDogMSk7Cit9CisKIHdpZmlfZXJyb3IgV2lmaUxlZ2FjeUhhbDo6ZW5hYmxlTGlua0xheWVyU3RhdHMoYm9vbCBkZWJ1ZykgewogICB3aWZpX2xpbmtfbGF5ZXJfcGFyYW1zIHBhcmFtczsKICAgcGFyYW1zLm1wZHVfc2l6ZV90aHJlc2hvbGQgPSBrTGlua0xheWVyU3RhdHNEYXRhTXBkdVNpemVUaHJlc2hvbGQ7CmRpZmYgLS1naXQgYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfbGVnYWN5X2hhbC5oIGIvd2lmaS8xLjAvZGVmYXVsdC93aWZpX2xlZ2FjeV9oYWwuaAppbmRleCA1NzZkZmU2Li4xNjU2ZjY4IDEwMDY0NAotLS0gYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfbGVnYWN5X2hhbC5oCisrKyBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9sZWdhY3lfaGFsLmgKQEAgLTE4MSw2ICsxODEsNyBAQAogICB3aWZpX2Vycm9yIHN0b3BHc2Nhbih3aWZpX3JlcXVlc3RfaWQgaWQpOwogICBzdGQ6OnBhaXI8d2lmaV9lcnJvciwgc3RkOjp2ZWN0b3I8dWludDMyX3Q+PiBnZXRWYWxpZEZyZXF1ZW5jaWVzRm9yQmFuZCgKICAgICAgIHdpZmlfYmFuZCBiYW5kKTsKKyAgd2lmaV9lcnJvciBzZXREZnNGbGFnKGJvb2wgZGZzX29uKTsKICAgLy8gTGluayBsYXllciBzdGF0cyBmdW5jdGlvbnMuCiAgIHdpZmlfZXJyb3IgZW5hYmxlTGlua0xheWVyU3RhdHMoYm9vbCBkZWJ1Zyk7CiAgIHdpZmlfZXJyb3IgZGlzYWJsZUxpbmtMYXllclN0YXRzKCk7CmRpZmYgLS1naXQgYS93aWZpLzEuMC9kZWZhdWx0L3dpZmlfc3RhX2lmYWNlLmNwcCBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9zdGFfaWZhY2UuY3BwCmluZGV4IDYyNmIxOTUuLjNjNTIwNDggMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9zdGFfaWZhY2UuY3BwCisrKyBiL3dpZmkvMS4wL2RlZmF1bHQvd2lmaV9zdGFfaWZhY2UuY3BwCkBAIC0zMSw3ICszMSwxNCBAQAogV2lmaVN0YUlmYWNlOjpXaWZpU3RhSWZhY2UoCiAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGlmbmFtZSwKICAgICBjb25zdCBzdGQ6OndlYWtfcHRyPGxlZ2FjeV9oYWw6OldpZmlMZWdhY3lIYWw+IGxlZ2FjeV9oYWwpCi0gICAgOiBpZm5hbWVfKGlmbmFtZSksIGxlZ2FjeV9oYWxfKGxlZ2FjeV9oYWwpLCBpc192YWxpZF8odHJ1ZSkge30KKyAgICA6IGlmbmFtZV8oaWZuYW1lKSwgbGVnYWN5X2hhbF8obGVnYWN5X2hhbCksIGlzX3ZhbGlkXyh0cnVlKSB7CisgIC8vIFR1cm4gb24gREZTIGNoYW5uZWwgdXNhZ2UgZm9yIFNUQSBpZmFjZS4KKyAgbGVnYWN5X2hhbDo6d2lmaV9lcnJvciBsZWdhY3lfc3RhdHVzID0KKyAgICAgIGxlZ2FjeV9oYWxfLmxvY2soKS0+c2V0RGZzRmxhZyh0cnVlKTsKKyAgaWYgKGxlZ2FjeV9zdGF0dXMgIT0gbGVnYWN5X2hhbDo6V0lGSV9TVUNDRVNTKSB7CisgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIHNldCBERlMgZmxhZzsgREZTIGNoYW5uZWxzIG1heSBiZSB1bmF2YWlsYWJsZS4iOworICB9Cit9CiAKIHZvaWQgV2lmaVN0YUlmYWNlOjppbnZhbGlkYXRlKCkgewogICBsZWdhY3lfaGFsXy5yZXNldCgpOwpAQCAtMzA5LDcgKzMxNiw4IEBACiAgIHN0ZDo6dGllKGxlZ2FjeV9zdGF0dXMsIGxlZ2FjeV9sb2dnZXJfZmVhdHVyZV9zZXQpID0KICAgICAgIGxlZ2FjeV9oYWxfLmxvY2soKS0+Z2V0TG9nZ2VyU3VwcG9ydGVkRmVhdHVyZVNldCgpOwogICBpZiAobGVnYWN5X3N0YXR1cyAhPSBsZWdhY3lfaGFsOjpXSUZJX1NVQ0NFU1MpIHsKLSAgICByZXR1cm4ge2NyZWF0ZVdpZmlTdGF0dXNGcm9tTGVnYWN5RXJyb3IobGVnYWN5X3N0YXR1cyksIDB9OworICAgIC8vIHNvbWUgZGV2aWNlcyBkb24ndCBzdXBwb3J0IHF1ZXJ5aW5nIGxvZ2dlciBmZWF0dXJlIHNldAorICAgIGxlZ2FjeV9sb2dnZXJfZmVhdHVyZV9zZXQgPSAwOwogICB9CiAgIHVpbnQzMl90IGhpZGxfY2FwczsKICAgaWYgKCFoaWRsX3N0cnVjdF91dGlsOjpjb252ZXJ0TGVnYWN5RmVhdHVyZXNUb0hpZGxTdGFDYXBhYmlsaXRpZXMoCmRpZmYgLS1naXQgYS93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX2FwX2lmYWNlX2hpZGxfdGVzdC5jcHAgYi93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX2FwX2lmYWNlX2hpZGxfdGVzdC5jcHAKaW5kZXggNDJkOWE5Ni4uYzBhZjMwYiAxMDA2NDQKLS0tIGEvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9hcF9pZmFjZV9oaWRsX3Rlc3QuY3BwCisrKyBiL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfYXBfaWZhY2VfaGlkbF90ZXN0LmNwcApAQCAtMjAsOSArMjAsMTMgQEAKIAogI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgogCisjaW5jbHVkZSAid2lmaV9oaWRsX2NhbGxfdXRpbC5oIgogI2luY2x1ZGUgIndpZmlfaGlkbF90ZXN0X3V0aWxzLmgiCiAKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OklmYWNlVHlwZTsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OklXaWZpQXBJZmFjZTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OldpZmlCYW5kOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6V2lmaVN0YXR1c0NvZGU7CiB1c2luZyA6OmFuZHJvaWQ6OnNwOwogCiAvKioKQEAgLTMwLDExICszNCwxNSBAQAogICovCiBjbGFzcyBXaWZpQXBJZmFjZUhpZGxUZXN0IDogcHVibGljIDo6dGVzdGluZzo6VnRzSGFsSGlkbFRhcmdldFRlc3RCYXNlIHsKICAgIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKSBvdmVycmlkZSB7fQorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpIG92ZXJyaWRlIHsKKyAgICAgICAgd2lmaV9hcF9pZmFjZV8gPSBnZXRXaWZpQXBJZmFjZSgpOworICAgICAgICBBU1NFUlRfTkUobnVsbHB0ciwgd2lmaV9hcF9pZmFjZV8uZ2V0KCkpOworICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpIG92ZXJyaWRlIHsgc3RvcFdpZmkoKTsgfQogCiAgICBwcm90ZWN0ZWQ6CisgICAgc3A8SVdpZmlBcElmYWNlPiB3aWZpX2FwX2lmYWNlXzsKIH07CiAKIC8qCkBAIC00NiwzICs1NCwzNiBAQAogICAgIEVYUEVDVF9ORShudWxscHRyLCBnZXRXaWZpQXBJZmFjZSgpLmdldCgpKTsKICAgICBzdG9wV2lmaSgpOwogfQorCisvKgorICogR2V0VHlwZToKKyAqIEVuc3VyZXMgdGhhdCB0aGUgY29ycmVjdCBpbnRlcmZhY2UgdHlwZSBpcyByZXR1cm5lZCBmb3IgQVAgaW50ZXJmYWNlLgorICovCitURVNUX0YoV2lmaUFwSWZhY2VIaWRsVGVzdCwgR2V0VHlwZSkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfdHlwZSA9IEhJRExfSU5WT0tFKHdpZmlfYXBfaWZhY2VfLCBnZXRUeXBlKTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfdHlwZS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoSWZhY2VUeXBlOjpBUCwgc3RhdHVzX2FuZF90eXBlLnNlY29uZCk7Cit9CisKKy8qCisgKiBTZXRDb3VudHJ5Q29kZToKKyAqIEVuc3VyZXMgdGhhdCBhIGNhbGwgdG8gc2V0IHRoZSBjb3VudHJ5IGNvZGUgd2lsbCByZXR1cm4gd2l0aCBhIHN1Y2Nlc3MKKyAqIHN0YXR1cyBjb2RlLgorICovCitURVNUX0YoV2lmaUFwSWZhY2VIaWRsVGVzdCwgU2V0Q291bnRyeUNvZGUpIHsKKyAgICBjb25zdCBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF9hcnJheTxpbnQ4X3QsIDI+IGtDb3VudHJ5Q29kZXsKKyAgICAgICAgc3RkOjphcnJheTxpbnQ4X3QsIDI+e3sweDU1LCAweDUzfX19OworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9hcF9pZmFjZV8sIHNldENvdW50cnlDb2RlLCBrQ291bnRyeUNvZGUpLmNvZGUpOworfQorCisvKgorICogR2V0VmFsaWRGcmVxdWVuY2llc0ZvckJhbmQ6CisgKiBFbnN1cmVzIHRoYXQgd2UgY2FuIHJldHJpZXZlIHZhbGlkIGZyZXF1ZW5jaWVzIGZvciAyLjQgR0h6IGJhbmQuCisgKi8KK1RFU1RfRihXaWZpQXBJZmFjZUhpZGxUZXN0LCBHZXRWYWxpZEZyZXF1ZW5jaWVzRm9yQmFuZCkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfZnJlcXMgPSBISURMX0lOVk9LRSgKKyAgICAgICAgd2lmaV9hcF9pZmFjZV8sIGdldFZhbGlkRnJlcXVlbmNpZXNGb3JCYW5kLCBXaWZpQmFuZDo6QkFORF8yNEdIWik7CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2ZyZXFzLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9HVChzdGF0dXNfYW5kX2ZyZXFzLnNlY29uZC5zaXplKCksIDB1KTsKK30KZGlmZiAtLWdpdCBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfY2hpcF9oaWRsX3Rlc3QuY3BwIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9jaGlwX2hpZGxfdGVzdC5jcHAKaW5kZXggMDg0MDY3Yy4uNmMyMzcyZiAxMDA2NDQKLS0tIGEvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9jaGlwX2hpZGxfdGVzdC5jcHAKKysrIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9jaGlwX2hpZGxfdGVzdC5jcHAKQEAgLTc2LDE1ICs3NiwxNCBAQAogICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBjb25maWd1cmUgdGhlIENoaXAgaW4gb25lIG9mIHRoZSBzdXBwb3J0ZWQgbW9kZXMuCiAgICAgLy8gTW9zdCBvZiB0aGUgbm9uLW1vZGUtY29uZmlndXJhdGlvbi1yZWxhdGVkIG1ldGhvZHMgcmVxdWlyZSBjaGlwCiAgICAgLy8gdG8gYmUgZmlyc3QgY29uZmlndXJlZC4KLSAgICBDaGlwTW9kZUlkIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlIHR5cGUpIHsKKyAgICBDaGlwTW9kZUlkIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlIHR5cGUsIGJvb2wgZXhwZWN0U3VjY2VzcykgewogICAgICAgICBDaGlwTW9kZUlkIG1vZGVfaWQ7Ci0gICAgICAgIEVYUEVDVF9UUlVFKAotICAgICAgICAgICAgY29uZmlndXJlQ2hpcFRvU3VwcG9ydElmYWNlVHlwZSh3aWZpX2NoaXBfLCB0eXBlLCAmbW9kZV9pZCkpOworICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0U3VjY2VzcywgY29uZmlndXJlQ2hpcFRvU3VwcG9ydElmYWNlVHlwZSh3aWZpX2NoaXBfLCB0eXBlLCAmbW9kZV9pZCkpOwogICAgICAgICByZXR1cm4gbW9kZV9pZDsKICAgICB9CiAKICAgICB1aW50MzJfdCBjb25maWd1cmVDaGlwRm9yU3RhSWZhY2VBbmRHZXRDYXBhYmlsaXRpZXMoKSB7Ci0gICAgICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEpOworICAgICAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBLCB0cnVlKTsKICAgICAgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9jYXBzID0gSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0Q2FwYWJpbGl0aWVzKTsKICAgICAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2NhcHMuZmlyc3QuY29kZSk7CiAgICAgICAgIHJldHVybiBzdGF0dXNfYW5kX2NhcHMuc2Vjb25kOwpAQCAtMTc0LDggKzE3MywxMiBAQAogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9tb2Rlcy5maXJzdC5jb2RlKTsKICAgICBFWFBFQ1RfTFQoMHUsIHN0YXR1c19hbmRfbW9kZXMuc2Vjb25kLnNpemUoKSk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBtb2RlIDogc3RhdHVzX2FuZF9tb2Rlcy5zZWNvbmQpIHsKKyAgICAgICAgLy8gY29uZmlndXJlQ2hpcCgpIHJlcXVpcmVzIHRvIGJlIGNhbGxlZCB3aXRoIGEgZnJlc2ggSVdpZmlDaGlwIG9iamVjdC4KKyAgICAgICAgd2lmaV9jaGlwXyA9IGdldFdpZmlDaGlwKCk7CisgICAgICAgIEFTU0VSVF9ORShudWxscHRyLCB3aWZpX2NoaXBfLmdldCgpKTsKICAgICAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAogICAgICAgICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9jaGlwXywgY29uZmlndXJlQ2hpcCwgbW9kZS5pZCkuY29kZSk7CisgICAgICAgIHN0b3BXaWZpKCk7CiAgICAgfQogfQogCkBAIC0xODMsNyArMTg2LDcgQEAKICAqIEdldENhcGFiaWxpdGllczoKICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldENhcGFiaWxpdGllcykgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEpOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEsIHRydWUpOwogICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2FwcyA9IEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldENhcGFiaWxpdGllcyk7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2NhcHMuZmlyc3QuY29kZSk7CiAgICAgRVhQRUNUX05FKDB1LCBzdGF0dXNfYW5kX2NhcHMuc2Vjb25kKTsKQEAgLTE5Myw3ICsxOTYsNyBAQAogICogR2V0TW9kZToKICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldE1vZGUpIHsKLSAgICBDaGlwTW9kZUlkIGNoaXBfbW9kZV9pZCA9IGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpTVEEpOworICAgIENoaXBNb2RlSWQgY2hpcF9tb2RlX2lkID0gY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9tb2RlID0gSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0TW9kZSk7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX21vZGUuZmlyc3QuY29kZSk7CiAgICAgRVhQRUNUX0VRKGNoaXBfbW9kZV9pZCwgc3RhdHVzX2FuZF9tb2RlLnNlY29uZCk7CkBAIC0yMDMsNyArMjA2LDcgQEAKICAqIFJlcXVlc3RDaGlwRGVidWdJbmZvOgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgUmVxdWVzdENoaXBEZWJ1Z0luZm8pIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBLCB0cnVlKTsKICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2NoaXBfaW5mbyA9CiAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIHJlcXVlc3RDaGlwRGVidWdJbmZvKTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfY2hpcF9pbmZvLmZpcnN0LmNvZGUpOwpAQCAtMjM2LDggKzIzOSwxMCBAQAogICAgIGlmIChjYXBzICYgSVdpZmlDaGlwOjpDaGlwQ2FwYWJpbGl0eU1hc2s6OkRFQlVHX01FTU9SWV9EUklWRVJfRFVNUCkgewogICAgICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfZHJpdmVyX2R1bXAuZmlyc3QuY29kZSk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpFUlJPUl9OT1RfU1VQUE9SVEVELAotICAgICAgICAgICAgICAgICAgc3RhdHVzX2FuZF9kcml2ZXJfZHVtcC5maXJzdC5jb2RlKTsKKyAgICAgIC8vIEFQSSBzZW1hbnRpY3MgKHRvZGF5KSBhcmUgc3VjaCB0aGF0IGZ1bmN0aW9uIGNhbm5vdCBiZSBjYWxsZWQgaWYgbm90IGNhcGFibGUhCisgICAgICAvLworICAgICAgLy8gIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX1NVUFBPUlRFRCwKKyAgICAgIC8vICAgICAgICAgICAgc3RhdHVzX2FuZF9kcml2ZXJfZHVtcC5maXJzdC5jb2RlKTsKICAgICB9CiB9CiAKQEAgLTMzNiw3ICszNDEsNyBAQAogICogc3VjY2VlZHMuIFRoZSAybmQgaWZhY2UgY3JlYXRpb24gc2hvdWxkIGJlIHJlamVjdGVkLgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgQ3JlYXRlQXBJZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OkFQLCB0cnVlKTsKIAogICAgIHNwPElXaWZpQXBJZmFjZT4gaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVBcElmYWNlKCZpZmFjZSkpOwpAQCAtMzUyLDcgKzM1Nyw3IEBACiAgKiBpZmFjZSBuYW1lIGlzIHJldHVybmVkIHZpYSB0aGUgbGlzdC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldEFwSWZhY2VOYW1lcykgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OkFQLCB0cnVlKTsKIAogICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMxID0KICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0QXBJZmFjZU5hbWVzKTsKQEAgLTM4NCw3ICszODksNyBAQAogICogZG9lc24ndCByZXRyaWV2ZSBhbiBpZmFjZSBvYmplY3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRBcElmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OkFQKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6QVAsIHRydWUpOwogCiAgICAgc3A8SVdpZmlBcElmYWNlPiBhcF9pZmFjZTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZUFwSWZhY2UoJmFwX2lmYWNlKSk7CkBAIC00MTAsNyArNDE1LDcgQEAKICAqIGRvZXNuJ3QgcmVtb3ZlIHRoZSBpZmFjZS4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIFJlbW92ZUFwSWZhY2UpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6QVApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaUFwSWZhY2U+IGFwX2lmYWNlOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlQXBJZmFjZSgmYXBfaWZhY2UpKTsKQEAgLTQzMSwxMyArNDM2LDEwIEBACiAgKiBzdWNjZWVkcy4gVGhlIDJuZCBpZmFjZSBjcmVhdGlvbiBzaG91bGQgYmUgcmVqZWN0ZWQuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBDcmVhdGVOYW5JZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpOQU4pOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpOQU4sIGZhbHNlKTsKIAogICAgIHNwPElXaWZpTmFuSWZhY2U+IGlmYWNlOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlTmFuSWZhY2UoJmlmYWNlKSk7Ci0gICAgRVhQRUNUX05FKG51bGxwdHIsIGlmYWNlLmdldCgpKTsKLQotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX0FWQUlMQUJMRSwgY3JlYXRlTmFuSWZhY2UoJmlmYWNlKSk7CisgICAgQVNTRVJUX0VRKFdpZmlTdGF0dXNDb2RlOjpFUlJPUl9OT1RfQVZBSUxBQkxFLCBjcmVhdGVOYW5JZmFjZSgmaWZhY2UpKTsKIH0KIAogLyoKQEAgLTQ0NywyOSArNDQ5LDEyIEBACiAgKiBpZmFjZSBuYW1lIGlzIHJldHVybmVkIHZpYSB0aGUgbGlzdC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldE5hbklmYWNlTmFtZXMpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6TkFOKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6TkFOLCBmYWxzZSk7CiAKICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMSA9CiAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldE5hbklmYWNlTmFtZXMpOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczEuZmlyc3QuY29kZSk7CisgICAgQVNTRVJUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMS5maXJzdC5jb2RlKTsKICAgICBFWFBFQ1RfRVEoMHUsIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMxLnNlY29uZC5zaXplKCkpOwotCi0gICAgc3A8SVdpZmlOYW5JZmFjZT4gaWZhY2U7Ci0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVOYW5JZmFjZSgmaWZhY2UpKTsKLSAgICBFWFBFQ1RfTkUobnVsbHB0ciwgaWZhY2UuZ2V0KCkpOwotCi0gICAgc3RkOjpzdHJpbmcgaWZhY2VfbmFtZSA9IGdldElmYWNlTmFtZShpZmFjZSk7Ci0gICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczIgPQotICAgICAgICBISURMX0lOVk9LRSh3aWZpX2NoaXBfLCBnZXROYW5JZmFjZU5hbWVzKTsKLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMyLmZpcnN0LmNvZGUpOwotICAgIEVYUEVDVF9FUSgxdSwgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczIuc2Vjb25kLnNpemUoKSk7Ci0gICAgRVhQRUNUX0VRKGlmYWNlX25hbWUsIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMyLnNlY29uZFswXSk7Ci0KLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHJlbW92ZU5hbklmYWNlKGlmYWNlX25hbWUpKTsKLSAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMyA9Ci0gICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldE5hbklmYWNlTmFtZXMpOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9pZmFjZV9uYW1lczMuZmlyc3QuY29kZSk7Ci0gICAgRVhQRUNUX0VRKDB1LCBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMy5zZWNvbmQuc2l6ZSgpKTsKIH0KIAogLyoKQEAgLTQ3OSwyMyArNDY0LDEwIEBACiAgKiBkb2Vzbid0IHJldHJpZXZlIGFuIGlmYWNlIG9iamVjdC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldE5hbklmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6Ok5BTik7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6Ok5BTiwgZmFsc2UpOwogCiAgICAgc3A8SVdpZmlOYW5JZmFjZT4gbmFuX2lmYWNlOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlTmFuSWZhY2UoJm5hbl9pZmFjZSkpOwotICAgIEVYUEVDVF9ORShudWxscHRyLCBuYW5faWZhY2UuZ2V0KCkpOwotCi0gICAgc3RkOjpzdHJpbmcgaWZhY2VfbmFtZSA9IGdldElmYWNlTmFtZShuYW5faWZhY2UpOwotICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaWZhY2UxID0KLSAgICAgICAgSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0TmFuSWZhY2UsIGlmYWNlX25hbWUpOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9pZmFjZTEuZmlyc3QuY29kZSk7Ci0gICAgRVhQRUNUX05FKG51bGxwdHIsIHN0YXR1c19hbmRfaWZhY2UxLnNlY29uZC5nZXQoKSk7Ci0KLSAgICBzdGQ6OnN0cmluZyBpbnZhbGlkX25hbWUgPSBpZmFjZV9uYW1lICsgIjAiOwotICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaWZhY2UyID0KLSAgICAgICAgSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0TmFuSWZhY2UsIGludmFsaWRfbmFtZSk7Ci0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpFUlJPUl9JTlZBTElEX0FSR1MsIHN0YXR1c19hbmRfaWZhY2UyLmZpcnN0LmNvZGUpOwotICAgIEVYUEVDVF9FUShudWxscHRyLCBzdGF0dXNfYW5kX2lmYWNlMi5zZWNvbmQuZ2V0KCkpOworICAgIEFTU0VSVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX0FWQUlMQUJMRSwgY3JlYXRlTmFuSWZhY2UoJm5hbl9pZmFjZSkpOwogfQogCiAvKgpAQCAtNTA1LDIwICs0NzcsMTAgQEAKICAqIGRvZXNuJ3QgcmVtb3ZlIHRoZSBpZmFjZS4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIFJlbW92ZU5hbklmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6Ok5BTik7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6Ok5BTiwgZmFsc2UpOwogCiAgICAgc3A8SVdpZmlOYW5JZmFjZT4gbmFuX2lmYWNlOwotICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgY3JlYXRlTmFuSWZhY2UoJm5hbl9pZmFjZSkpOwotICAgIEVYUEVDVF9ORShudWxscHRyLCBuYW5faWZhY2UuZ2V0KCkpOwotCi0gICAgc3RkOjpzdHJpbmcgaWZhY2VfbmFtZSA9IGdldElmYWNlTmFtZShuYW5faWZhY2UpOwotICAgIHN0ZDo6c3RyaW5nIGludmFsaWRfbmFtZSA9IGlmYWNlX25hbWUgKyAiMCI7Ci0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpFUlJPUl9JTlZBTElEX0FSR1MsIHJlbW92ZU5hbklmYWNlKGludmFsaWRfbmFtZSkpOwotCi0gICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCByZW1vdmVOYW5JZmFjZShpZmFjZV9uYW1lKSk7Ci0KLSAgICAvLyBObyBzdWNoIGlmYWNlIGV4aXN0cyBub3cuIFNvLCB0aGlzIHNob3VsZCByZXR1cm4gZmFpbHVyZS4KLSAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OkVSUk9SX0lOVkFMSURfQVJHUywgcmVtb3ZlTmFuSWZhY2UoaWZhY2VfbmFtZSkpOworICAgIEFTU0VSVF9FUShXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX0FWQUlMQUJMRSwgY3JlYXRlTmFuSWZhY2UoJm5hbl9pZmFjZSkpOwogfQogCiAvKgpAQCAtNTI3LDcgKzQ4OSw3IEBACiAgKiBzdWNjZWVkcy4gVGhlIDJuZCBpZmFjZSBjcmVhdGlvbiBzaG91bGQgYmUgcmVqZWN0ZWQuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBDcmVhdGVQMnBJZmFjZSkgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlApOworICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpQMlAsIHRydWUpOwogCiAgICAgc3A8SVdpZmlQMnBJZmFjZT4gaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVQMnBJZmFjZSgmaWZhY2UpKTsKQEAgLTU0Myw3ICs1MDUsNyBAQAogICogaWZhY2UgbmFtZSBpcyByZXR1cm5lZCB2aWEgdGhlIGxpc3QuCiAgKi8KIFRFU1RfRihXaWZpQ2hpcEhpZGxUZXN0LCBHZXRQMnBJZmFjZU5hbWVzKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlAyUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlAyUCwgdHJ1ZSk7CiAKICAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2lmYWNlX25hbWVzMSA9CiAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfY2hpcF8sIGdldFAycElmYWNlTmFtZXMpOwpAQCAtNTc1LDcgKzUzNyw3IEBACiAgKiBkb2Vzbid0IHJldHJpZXZlIGFuIGlmYWNlIG9iamVjdC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldFAycElmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlAyUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlAyUCwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaVAycElmYWNlPiBwMnBfaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVQMnBJZmFjZSgmcDJwX2lmYWNlKSk7CkBAIC02MDEsNyArNTYzLDcgQEAKICAqIGRvZXNuJ3QgcmVtb3ZlIHRoZSBpZmFjZS4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIFJlbW92ZVAycElmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlAyUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlAyUCwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaVAycElmYWNlPiBwMnBfaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVQMnBJZmFjZSgmcDJwX2lmYWNlKSk7CkBAIC02MjIsNyArNTg0LDcgQEAKICAqIHN1Y2NlZWRzLiBUaGUgMm5kIGlmYWNlIGNyZWF0aW9uIHNob3VsZCBiZSByZWplY3RlZC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIENyZWF0ZVN0YUlmYWNlKSB7Ci0gICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OlNUQSwgdHJ1ZSk7CiAKICAgICBzcDxJV2lmaVN0YUlmYWNlPiBpZmFjZTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZVN0YUlmYWNlKCZpZmFjZSkpOwpAQCAtNjM4LDcgKzYwMCw3IEBACiAgKiBpZmFjZSBuYW1lIGlzIHJldHVybmVkIHZpYSB0aGUgbGlzdC4KICAqLwogVEVTVF9GKFdpZmlDaGlwSGlkbFRlc3QsIEdldFN0YUlmYWNlTmFtZXMpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBLCB0cnVlKTsKIAogICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaWZhY2VfbmFtZXMxID0KICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9jaGlwXywgZ2V0U3RhSWZhY2VOYW1lcyk7CkBAIC02NzAsNyArNjMyLDcgQEAKICAqIGRvZXNuJ3QgcmV0cmlldmUgYW4gaWZhY2Ugb2JqZWN0LgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgR2V0U3RhSWZhY2UpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBLCB0cnVlKTsKIAogICAgIHNwPElXaWZpU3RhSWZhY2U+IHN0YV9pZmFjZTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZVN0YUlmYWNlKCZzdGFfaWZhY2UpKTsKQEAgLTY5Niw3ICs2NTgsNyBAQAogICogZG9lc24ndCByZW1vdmUgdGhlIGlmYWNlLgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgUmVtb3ZlU3RhSWZhY2UpIHsKLSAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBKTsKKyAgICBjb25maWd1cmVDaGlwRm9ySWZhY2VUeXBlKElmYWNlVHlwZTo6U1RBLCB0cnVlKTsKIAogICAgIHNwPElXaWZpU3RhSWZhY2U+IHN0YV9pZmFjZTsKICAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIGNyZWF0ZVN0YUlmYWNlKCZzdGFfaWZhY2UpKTsKQEAgLTcxNSw3ICs2NzcsNyBAQAogICogQ3JlYXRlUnR0Q29udHJvbGxlcgogICovCiBURVNUX0YoV2lmaUNoaXBIaWRsVGVzdCwgQ3JlYXRlUnR0Q29udHJvbGxlcikgewotICAgIGNvbmZpZ3VyZUNoaXBGb3JJZmFjZVR5cGUoSWZhY2VUeXBlOjpBUCk7CisgICAgY29uZmlndXJlQ2hpcEZvcklmYWNlVHlwZShJZmFjZVR5cGU6OkFQLCB0cnVlKTsKIAogICAgIHNwPElXaWZpQXBJZmFjZT4gaWZhY2U7CiAgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBjcmVhdGVBcElmYWNlKCZpZmFjZSkpOwpkaWZmIC0tZ2l0IGEvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9oaWRsX3Rlc3RfdXRpbHMuY3BwIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9oaWRsX3Rlc3RfdXRpbHMuY3BwCmluZGV4IGZlZmJkNzkuLmU0MzgyYmMgMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfaGlkbF90ZXN0X3V0aWxzLmNwcAorKysgYi93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX2hpZGxfdGVzdF91dGlscy5jcHAKQEAgLTM2LDYgKzM2LDkgQEAKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfdmVjOwogCiBuYW1lc3BhY2UgeworY29uc3RleHByIHVpbnQzMl90IGtIYWxTdGFydFJldHJ5TWF4Q291bnQgPSA1OworY29uc3RleHByIHVpbnQzMl90IGtIYWxTdGFydFJldHJ5SW50ZXJ2YWxJbk1zID0gMjsKKwogYm9vbCBmaW5kQW55TW9kZVN1cHBvcnRpbmdJZmFjZVR5cGUoCiAgICAgSWZhY2VUeXBlIGRlc2lyZWRfdHlwZSwgY29uc3Qgc3RkOjp2ZWN0b3I8SVdpZmlDaGlwOjpDaGlwTW9kZT4mIG1vZGVzLAogICAgIENoaXBNb2RlSWQqIG1vZGVfaWQpIHsKQEAgLTkyLDcgKzk1LDE1IEBACiAgICAgaWYgKCF3aWZpLmdldCgpKSB7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KLSAgICBpZiAoSElETF9JTlZPS0Uod2lmaSwgc3RhcnQpLmNvZGUgIT0gV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MpIHsKKyAgICB1aW50MzJfdCByZXRyeV9jb3VudCA9IDA7CisgICAgYXV0byBzdGF0dXMgPSBISURMX0lOVk9LRSh3aWZpLCBzdGFydCk7CisgICAgd2hpbGUgKHJldHJ5X2NvdW50IDwga0hhbFN0YXJ0UmV0cnlNYXhDb3VudCAmJgorICAgICAgICAgICBzdGF0dXMuY29kZSA9PSBXaWZpU3RhdHVzQ29kZTo6RVJST1JfTk9UX0FWQUlMQUJMRSkgeworICAgICAgICByZXRyeV9jb3VudCsrOworICAgICAgICB1c2xlZXAoa0hhbFN0YXJ0UmV0cnlJbnRlcnZhbEluTXMgKiAxMDAwKTsKKyAgICAgICAgc3RhdHVzID0gSElETF9JTlZPS0Uod2lmaSwgc3RhcnQpOworICAgIH0KKyAgICBpZiAoc3RhdHVzLmNvZGUgIT0gV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MpIHsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQogICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2hpcF9pZHMgPSBISURMX0lOVk9LRSh3aWZpLCBnZXRDaGlwSWRzKTsKZGlmZiAtLWdpdCBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfc3RhX2lmYWNlX2hpZGxfdGVzdC5jcHAgYi93aWZpLzEuMC92dHMvZnVuY3Rpb25hbC93aWZpX3N0YV9pZmFjZV9oaWRsX3Rlc3QuY3BwCmluZGV4IDk1YWRkNjEuLjMwMjM1Y2YgMTAwNjQ0Ci0tLSBhL3dpZmkvMS4wL3Z0cy9mdW5jdGlvbmFsL3dpZmlfc3RhX2lmYWNlX2hpZGxfdGVzdC5jcHAKKysrIGIvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9zdGFfaWZhY2VfaGlkbF90ZXN0LmNwcApAQCAtMjQsNyArMjQsMTYgQEAKICNpbmNsdWRlICJ3aWZpX2hpZGxfdGVzdF91dGlscy5oIgogCiB1c2luZyA6OmFuZHJvaWQ6OnNwOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6QnNzaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpDb21tYW5kSWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpJZmFjZVR5cGU7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpJV2lmaVN0YUlmYWNlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6UnNzaTsKK3VzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OlYxXzA6OlNzaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpTdGFBcGZQYWNrZXRGaWx0ZXJDYXBhYmlsaXRpZXM7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpTdGFSb2FtaW5nQ29uZmlnOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6U3RhUm9hbWluZ1N0YXRlOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6V2lmaUJhbmQ7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpWMV8wOjpXaWZpU3RhdHVzOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6VjFfMDo6V2lmaVN0YXR1c0NvZGU7CiAKQEAgLTQxLDYgKzUwLDEzIEBACiAgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkgb3ZlcnJpZGUgeyBzdG9wV2lmaSgpOyB9CiAKICAgIHByb3RlY3RlZDoKKyAgICBib29sIGlzQ2FwYWJpbGl0eVN1cHBvcnRlZChJV2lmaVN0YUlmYWNlOjpTdGFJZmFjZUNhcGFiaWxpdHlNYXNrIGNhcF9tYXNrKSB7CisgICAgICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2FwcyA9CisgICAgICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGdldENhcGFiaWxpdGllcyk7CisgICAgICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9jYXBzLmZpcnN0LmNvZGUpOworICAgICAgICByZXR1cm4gKHN0YXR1c19hbmRfY2Fwcy5zZWNvbmQgJiBjYXBfbWFzaykgIT0gMDsKKyAgICB9CisKICAgICBzcDxJV2lmaVN0YUlmYWNlPiB3aWZpX3N0YV9pZmFjZV87CiB9OwogCkBAIC02MCw1ICs3NiwxOTQgQEAKIFRFU1RfRihXaWZpU3RhSWZhY2VIaWRsVGVzdCwgR2V0Q2FwYWJpbGl0aWVzKSB7CiAgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9jYXBzID0gSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXRDYXBhYmlsaXRpZXMpOwogICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9jYXBzLmZpcnN0LmNvZGUpOwotICAgIEVYUEVDVF9ORSgwdSwgc3RhdHVzX2FuZF9jYXBzLnNlY29uZCk7CisgICAgRVhQRUNUX0dUKHN0YXR1c19hbmRfY2Fwcy5zZWNvbmQsIDB1KTsKK30KKworLyoKKyAqIEdldFR5cGU6CisgKiBFbnN1cmVzIHRoYXQgdGhlIGNvcnJlY3QgaW50ZXJmYWNlIHR5cGUgaXMgcmV0dXJuZWQgZm9yIHN0YXRpb24gaW50ZXJmYWNlLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIEdldFR5cGUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX3R5cGUgPSBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGdldFR5cGUpOworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF90eXBlLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9FUShJZmFjZVR5cGU6OlNUQSwgc3RhdHVzX2FuZF90eXBlLnNlY29uZCk7Cit9CisKKy8qCisgKiBHZXRBcGZQYWNrZXRGaWx0ZXJDYXBhYmlsaXRpZXM6CisgKiBFbnN1cmVzIHRoYXQgd2UgY2FuIHJldHJpZXZlIEFQRiBwYWNrZXQgZmlsdGVyIGNhcGFiaWxpdGVzLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIEdldEFwZlBhY2tldEZpbHRlckNhcGFiaWxpdGllcykgeworICAgIGlmICghaXNDYXBhYmlsaXR5U3VwcG9ydGVkKElXaWZpU3RhSWZhY2U6OlN0YUlmYWNlQ2FwYWJpbGl0eU1hc2s6OkFQRikpIHsKKyAgICAgICAgLy8gTm8tb3AgaWYgQVBGIHBhY2tldCBmaWxlciBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9jYXBzID0KKyAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXRBcGZQYWNrZXRGaWx0ZXJDYXBhYmlsaXRpZXMpOworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9jYXBzLmZpcnN0LmNvZGUpOworfQorCisvKgorICogR2V0QmFja2dyb3VuZFNjYW5DYXBhYmlsaXRpZXM6CisgKiBFbnN1cmVzIHRoYXQgd2UgY2FuIHJldHJpZXZlIGJhY2tncm91bmQgc2NhbiBjYXBhYmlsaXRpZXMuCisgKi8KK1RFU1RfRihXaWZpU3RhSWZhY2VIaWRsVGVzdCwgR2V0QmFja2dyb3VuZFNjYW5DYXBhYmlsaXRpZXMpIHsKKyAgICBpZiAoIWlzQ2FwYWJpbGl0eVN1cHBvcnRlZCgKKyAgICAgICAgICAgIElXaWZpU3RhSWZhY2U6OlN0YUlmYWNlQ2FwYWJpbGl0eU1hc2s6OkJBQ0tHUk9VTkRfU0NBTikpIHsKKyAgICAgICAgLy8gTm8tb3AgaWYgYmFja2dyb3VuZCBzY2FuIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2NhcHMgPQorICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGdldEJhY2tncm91bmRTY2FuQ2FwYWJpbGl0aWVzKTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfY2Fwcy5maXJzdC5jb2RlKTsKK30KKworLyoKKyAqIEdldFZhbGlkRnJlcXVlbmNpZXNGb3JCYW5kOgorICogRW5zdXJlcyB0aGF0IHdlIGNhbiByZXRyaWV2ZSB2YWxpZCBmcmVxdWVuY2llcyBmb3IgMi40IEdIeiBiYW5kLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIEdldFZhbGlkRnJlcXVlbmNpZXNGb3JCYW5kKSB7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9mcmVxcyA9IEhJRExfSU5WT0tFKAorICAgICAgICB3aWZpX3N0YV9pZmFjZV8sIGdldFZhbGlkRnJlcXVlbmNpZXNGb3JCYW5kLCBXaWZpQmFuZDo6QkFORF8yNEdIWik7CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXNfYW5kX2ZyZXFzLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9HVChzdGF0dXNfYW5kX2ZyZXFzLnNlY29uZC5zaXplKCksIDB1KTsKK30KKworLyoKKyAqIExpbmtMYXllclN0YXRzQ29sbGVjdGlvbjoKKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBlbmFibGUsIGRpc2FibGUsIGFuZCByZXRyaWV2ZSBsaW5rIGxheWVyIHN0YXRzCisgKiB3aWxsIHJldHVybiBhIHN1Y2Nlc3Mgc3RhdHVzIGNvZGUuCisgKi8KK1RFU1RfRihXaWZpU3RhSWZhY2VIaWRsVGVzdCwgTGlua0xheWVyU3RhdHNDb2xsZWN0aW9uKSB7CisgICAgaWYgKCFpc0NhcGFiaWxpdHlTdXBwb3J0ZWQoCisgICAgICAgICAgICBJV2lmaVN0YUlmYWNlOjpTdGFJZmFjZUNhcGFiaWxpdHlNYXNrOjpMSU5LX0xBWUVSX1NUQVRTKSkgeworICAgICAgICAvLyBOby1vcCBpZiBsaW5rIGxheWVyIHN0YXRzIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBFbmFibGUgbGluayBsYXllciBzdGF0cyBjb2xsZWN0aW9uLgorICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBlbmFibGVMaW5rTGF5ZXJTdGF0c0NvbGxlY3Rpb24sIHRydWUpCisgICAgICAgICAgICAgICAgICAuY29kZSk7CisgICAgLy8gUmV0cmlldmUgbGluayBsYXllciBzdGF0cy4KKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZ2V0TGlua0xheWVyU3RhdHMpLmZpcnN0LmNvZGUpOworICAgIC8vIERpc2FibGUgbGluayBsYXllciBzdGF0cyBjb2xsZWN0aW9uLgorICAgIEVYUEVDVF9FUSgKKyAgICAgICAgV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgZGlzYWJsZUxpbmtMYXllclN0YXRzQ29sbGVjdGlvbikuY29kZSk7Cit9CisKKy8qCisgKiBSU1NJTW9uaXRvcmluZzoKKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBlbmFibGUgUlNTSSBtb25pdG9yaW5nIHdpbGwgcmV0dXJuIGFuIGVycm9yIHN0YXR1cworICogY29kZSBpZiBkZXZpY2UgaXMgbm90IGNvbm5lY3RlZCB0byBhbiBBUC4KKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBkaXNhYmxlIFJTU0kgbW9uaXRvcmluZyB3aWxsIHJldHVybiBhbiBlcnJvciBzdGF0dXMKKyAqIGNvZGUgaWYgUlNTSSBtb25pdG9yaW5nIGlzIG5vdCBlbmFibGVkLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIFJTU0lNb25pdG9yaW5nKSB7CisgICAgaWYgKCFpc0NhcGFiaWxpdHlTdXBwb3J0ZWQoCisgICAgICAgICAgICBJV2lmaVN0YUlmYWNlOjpTdGFJZmFjZUNhcGFiaWxpdHlNYXNrOjpSU1NJX01PTklUT1IpKSB7CisgICAgICAgIC8vIE5vLW9wIGlmIFJTU0kgbW9uaXRvciBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgQ29tbWFuZElkIGtDbWQgPSAxOworICAgIGNvbnN0IFJzc2kga01heFJzc2kgPSAtNTA7CisgICAgY29uc3QgUnNzaSBrTWluUnNzaSA9IC05MDsKKyAgICAvLyBUaGlzIGlzIGdvaW5nIHRvIGZhaWwgYmVjYXVzZSBkZXZpY2UgaXMgbm90IGNvbm5lY3RlZCB0byBhbiBBUC4KKyAgICBFWFBFQ1RfTkUoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgc3RhcnRSc3NpTW9uaXRvcmluZywga0NtZCwga01heFJzc2ksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtNaW5Sc3NpKQorICAgICAgICAgICAgICAgICAgLmNvZGUpOworICAgIC8vIFRoaXMgaXMgZ29pbmcgdG8gZmFpbCBiZWNhdXNlIFJTU0kgbW9uaXRvcmluZyBpcyBub3QgZW5hYmxlZC4KKyAgICBFWFBFQ1RfTkUoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgc3RvcFJzc2lNb25pdG9yaW5nLCBrQ21kKS5jb2RlKTsKK30KKworLyoKKyAqIFJvYW1pbmdDb250cm9sOgorICogRW5zdXJlcyB0aGF0IGNhbGxzIHRvIGNvbmZpZ3VyZSBhbmQgZW5hYmxlIHJvYW1pbmcgd2lsbCByZXR1cm4gYSBzdWNjZXNzCisgKiBzdGF0dXMgY29kZS4KKyAqLworVEVTVF9GKFdpZmlTdGFJZmFjZUhpZGxUZXN0LCBSb2FtaW5nQ29udHJvbCkgeworICAgIGlmICghaXNDYXBhYmlsaXR5U3VwcG9ydGVkKAorICAgICAgICAgICAgSVdpZmlTdGFJZmFjZTo6U3RhSWZhY2VDYXBhYmlsaXR5TWFzazo6Q09OVFJPTF9ST0FNSU5HKSkgeworICAgICAgICAvLyBOby1vcCBpZiByb2FtaW5nIGNvbnRyb2wgaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFJldHJpZXZlIHJvYW1pbmcgY2FwYWJpbGl0aWVzLgorICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfY2FwID0KKyAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXRSb2FtaW5nQ2FwYWJpbGl0aWVzKTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfY2FwLmZpcnN0LmNvZGUpOworCisgICAgLy8gU2V0dXAgcm9hbWluZyBjb25maWd1cmF0aW9uIGJhc2VkIG9uIHJvYW1pbmcgY2FwYWJpbGl0aWVzLgorICAgIGNvbnN0IGF1dG8mIGNhcCA9IHN0YXR1c19hbmRfY2FwLnNlY29uZDsKKyAgICBTdGFSb2FtaW5nQ29uZmlnIHJvYW1pbmdfY29uZmlnOworICAgIGlmIChjYXAubWF4QmxhY2tsaXN0U2l6ZSA+IDApIHsKKyAgICAgICAgQnNzaWQgYmxhY2tfbGlzdF9ic3NpZHsKKyAgICAgICAgICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgNj57ezB4MTEsIDB4MjIsIDB4MzMsIDB4NDQsIDB4NTUsIDB4NjZ9fX07CisgICAgICAgIHJvYW1pbmdfY29uZmlnLmJzc2lkQmxhY2tsaXN0ID0KKyAgICAgICAgICAgIGFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzxCc3NpZD57YmxhY2tfbGlzdF9ic3NpZH07CisgICAgfQorICAgIGlmIChjYXAubWF4V2hpdGVsaXN0U2l6ZSA+IDApIHsKKyAgICAgICAgU3NpZCB3aGl0ZV9saXN0X3NzaWR7CisgICAgICAgICAgICBzdGQ6OmFycmF5PHVpbnQ4X3QsIDMyPnt7MHg3NywgMHg4OCwgMHg5OSwgMHhBQSwgMHhCQiwgMHhDQ319fTsKKyAgICAgICAgcm9hbWluZ19jb25maWcuc3NpZFdoaXRlbGlzdCA9CisgICAgICAgICAgICBhbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM8U3NpZD57d2hpdGVfbGlzdF9zc2lkfTsKKyAgICB9CisKKyAgICAvLyBDb25maWd1cmUgcm9hbWluZy4KKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGNvbmZpZ3VyZVJvYW1pbmcsIHJvYW1pbmdfY29uZmlnKS5jb2RlKTsKKworICAgIC8vIEVuYWJsZSByb2FtaW5nLgorICAgIEVYUEVDVF9FUSgKKyAgICAgICAgV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgc2V0Um9hbWluZ1N0YXRlLCBTdGFSb2FtaW5nU3RhdGU6OkVOQUJMRUQpCisgICAgICAgICAgICAuY29kZSk7Cit9CisKKy8qCisgKiBFbmFibGVORE9mZmxvYWQ6CisgKiBFbnN1cmVzIHRoYXQgY2FsbHMgdG8gZW5hYmxlIG5laWdoYm9yIGRpc2NvdmVyeSBvZmZsb2FkIHdpbGwgcmV0dXJuIGEgc3VjY2VzcworICogc3RhdHVzIGNvZGUuCisgKi8KK1RFU1RfRihXaWZpU3RhSWZhY2VIaWRsVGVzdCwgRW5hYmxlTkRPZmZsb2FkKSB7CisgICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIGVuYWJsZU5kT2ZmbG9hZCwgdHJ1ZSkuY29kZSk7Cit9CisKKy8qCisgKiBTZXRTY2FubmluZ01hY091aToKKyAqIEVuc3VyZXMgdGhhdCBjYWxscyB0byBzZXQgc2Nhbm5pbmcgTUFDIE9VSSB3aWxsIHJldHVybiBhIHN1Y2Nlc3Mgc3RhdHVzCisgKiBjb2RlLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIFNldFNjYW5uaW5nTWFjT3VpKSB7CisgICAgY29uc3QgYW5kcm9pZDo6aGFyZHdhcmU6OmhpZGxfYXJyYXk8dWludDhfdCwgMz4ga091aXsKKyAgICAgICAgc3RkOjphcnJheTx1aW50OF90LCAzPnt7MHgxMCwgMHgyMiwgMHgzM319fTsKKyAgICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHdpZmlfc3RhX2lmYWNlXywgc2V0U2Nhbm5pbmdNYWNPdWksIGtPdWkpLmNvZGUpOworfQorCisvKgorICogUGFja2V0RmF0ZU1vbml0b3Jpbmc6CisgKiBFbnN1cmVzIHRoYXQgY2FsbHMgdG8gc3RhcnQgcGFja2V0IGZhdGUgbW9uaXRvcmluZyBhbmQgcmV0cmlldmUgVFgvUlgKKyAqIHBhY2tldHMgd2lsbCByZXR1cm4gYSBzdWNjZXNzIHN0YXR1cyBjb2RlLgorICovCitURVNUX0YoV2lmaVN0YUlmYWNlSGlkbFRlc3QsIFBhY2tldEZhdGVNb25pdG9yaW5nKSB7CisgICAgLy8gU3RhcnQgcGFja2V0IGZhdGUgbW9uaXRvcmluZy4KKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRSh3aWZpX3N0YV9pZmFjZV8sIHN0YXJ0RGVidWdQYWNrZXRGYXRlTW9uaXRvcmluZykuY29kZSk7CisKKyAgICAvLyBSZXRyaWV2ZSBwYWNrZXRzLgorICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXREZWJ1Z1R4UGFja2V0RmF0ZXMpLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9FUShXaWZpU3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uod2lmaV9zdGFfaWZhY2VfLCBnZXREZWJ1Z1J4UGFja2V0RmF0ZXMpLmZpcnN0LmNvZGUpOwogfQpkaWZmIC0tZ2l0IGEvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFAycElmYWNlLmhhbCBiL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRQMnBJZmFjZS5oYWwKaW5kZXggZmI0MzIzYy4uOWI2ZWM1YiAxMDA2NDQKLS0tIGEvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFAycElmYWNlLmhhbAorKysgYi93aWZpL3N1cHBsaWNhbnQvMS4wL0lTdXBwbGljYW50UDJwSWZhY2UuaGFsCkBAIC0xNTQsNiArMTU0LDcgQEAKICAgICogICAgICAgICB8U3VwcGxpY2FudFN0YXR1c0NvZGUuU1VDQ0VTU3wsCiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfVU5LTk9XTnwsCiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfSUZBQ0VfSU5WQUxJRHwKKyAgICogICAgICAgICB8U3VwcGxpY2FudFN0YXR1c0NvZGUuRkFJTFVSRV9JRkFDRV9ESVNBQkxFRHwKICAgICovCiAgIGZpbmQodWludDMyX3QgdGltZW91dEluU2VjKSBnZW5lcmF0ZXMgKFN1cHBsaWNhbnRTdGF0dXMgc3RhdHVzKTsKIApAQCAtMTY1LDYgKzE2Niw3IEBACiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLlNVQ0NFU1N8LAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX1VOS05PV058LAogICAgKiAgICAgICAgIHxTdXBwbGljYW50U3RhdHVzQ29kZS5GQUlMVVJFX0lGQUNFX0lOVkFMSUR8CisgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfSUZBQ0VfRElTQUJMRUR8CiAgICAqLwogICBzdG9wRmluZCgpIGdlbmVyYXRlcyAoU3VwcGxpY2FudFN0YXR1cyBzdGF0dXMpOwogCkBAIC0yOTIsNiArMjk0LDcgQEAKICAgICogICAgICAgICB8U3VwcGxpY2FudFN0YXR1c0NvZGUuU1VDQ0VTU3wsCiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfVU5LTk9XTnwsCiAgICAqICAgICAgICAgfFN1cHBsaWNhbnRTdGF0dXNDb2RlLkZBSUxVUkVfSUZBQ0VfSU5WQUxJRHwKKyAgICogICAgICAgICB8U3VwcGxpY2FudFN0YXR1c0NvZGUuRkFJTFVSRV9JRkFDRV9ESVNBQkxFRHwKICAgICovCiAgIHJlamVjdChNYWNBZGRyZXNzIHBlZXJBZGRyZXNzKSBnZW5lcmF0ZXMgKFN1cHBsaWNhbnRTdGF0dXMgc3RhdHVzKTsKIApkaWZmIC0tZ2l0IGEvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFN0YU5ldHdvcmsuaGFsIGIvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFN0YU5ldHdvcmsuaGFsCmluZGV4IDdkNTE1OWEuLjI2OWQ3ZWYgMTAwNjQ0Ci0tLSBhL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRTdGFOZXR3b3JrLmhhbAorKysgYi93aWZpL3N1cHBsaWNhbnQvMS4wL0lTdXBwbGljYW50U3RhTmV0d29yay5oYWwKQEAgLTM1NCw2ICszNTQsOCBAQAogICAvKioKICAgICogU2V0IEVBUCBQaGFzZTIgTWV0aG9kIGZvciB0aGlzIG5ldHdvcmsuCiAgICAqCisgICAqIEVBUCBtZXRob2QgbmVlZHMgdG8gYmUgc2V0IGZvciB0aGlzIHRvIHdvcmsuCisgICAqCiAgICAqIEBwYXJhbSBtZXRob2QgdmFsdWUgdG8gc2V0LgogICAgKiAgICAgICAgTXVzdCBiZSBvbmUgb2YgfEVhcFBoYXNlMk1ldGhvZHwgdmFsdWVzLgogICAgKiBAcmV0dXJuIHN0YXR1cyBTdGF0dXMgb2YgdGhlIG9wZXJhdGlvbi4KZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL0FuZHJvaWQubWsgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9BbmRyb2lkLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzNjFmOWIKLS0tIC9kZXYvbnVsbAorKysgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9BbmRyb2lkLm1rCkBAIC0wLDAgKzEsMiBAQAorTE9DQUxfUEFUSCA6PSAkKGNhbGwgbXktZGlyKQoraW5jbHVkZSAkKGNhbGwgYWxsLW1ha2VmaWxlcy11bmRlciwkKExPQ0FMX1BBVEgpKQpkaWZmIC0tZ2l0IGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfY2FsbF91dGlsLmggYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfaGlkbF9jYWxsX3V0aWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYzBmY2VjCi0tLSAvZGV2L251bGwKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfY2FsbF91dGlsLmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAorICoKKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisvLyBUaGlzIGZpbGUgaXMgY29waWVkIGZyb20KKy8vIGhhcmR3YXJlL2ludGVyZmFjZXMvd2lmaS8xLjAvdnRzL2Z1bmN0aW9uYWwvd2lmaV9oaWRsX2NhbGxfdXRpbC5oCisvLyBQbGVhc2UgbWFrZSBzdXJlIHRoZXNlIHR3byBmaWxlIGFyZSBjb25zaXN0ZW50LgorCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSA8dHVwbGU+CisjaW5jbHVkZSA8dHlwZV90cmFpdHM+CisjaW5jbHVkZSA8dXRpbGl0eT4KKworI2luY2x1ZGUgPFZ0c0hhbEhpZGxUYXJnZXRUZXN0QmFzZS5oPgorCituYW1lc3BhY2UgeworbmFtZXNwYWNlIGRldGFpbCB7Cit0ZW1wbGF0ZSA8dHlwZW5hbWU+CitzdHJ1Y3QgZnVuY3Rpb25BcmdTYXZlcjsKKworLy8gUHJvdmlkZXMgYSBzdGQ6OmZ1bmN0aW9uIHRoYXQgdGFrZXMgb25lIGFyZ3VtZW50LCBhbmQgYSBidWZmZXIKKy8vIHdoZXJlaW4gdGhlIGZ1bmN0aW9uIHdpbGwgc3RvcmUgaXRzIGFyZ3VtZW50LiBUaGUgYnVmZmVyIGhhcworLy8gdGhlIHNhbWUgdHlwZSBhcyB0aGUgYXJndW1lbnQsIGJ1dCB3aXRoIGNvbnN0IGFuZCByZWZlcmVuY2UKKy8vIG1vZGlmaWVycyByZW1vdmVkLgordGVtcGxhdGUgPHR5cGVuYW1lIEFyZ1Q+CitzdHJ1Y3QgZnVuY3Rpb25BcmdTYXZlcjxzdGQ6OmZ1bmN0aW9uPHZvaWQoQXJnVCk+PiBmaW5hbCB7CisgICAgdXNpbmcgU3RvcmFnZVQgPSB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDwKKyAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPEFyZ1Q+Ojp0eXBlPjo6dHlwZTsKKworICAgIHN0ZDo6ZnVuY3Rpb248dm9pZChBcmdUKT4gc2F2ZUFyZ3MgPSBbdGhpc10oQXJnVCBhcmcpIHsKKyAgICAgICAgdGhpcy0+c2F2ZWRfdmFsdWVzID0gYXJnOworICAgIH07CisKKyAgICBTdG9yYWdlVCBzYXZlZF92YWx1ZXM7Cit9OworCisvLyBQcm92aWRlcyBhIHN0ZDo6ZnVuY3Rpb24gdGhhdCB0YWtlcyB0d28gYXJndW1lbnRzLCBhbmQgYSBidWZmZXIKKy8vIHdoZXJlaW4gdGhlIGZ1bmN0aW9uIHdpbGwgc3RvcmUgaXRzIGFyZ3VtZW50cy4gVGhlIGJ1ZmZlciBpcyBhCisvLyBzdGQ6OnBhaXIsIHdob3NlIGVsZW1lbnRzIGhhdmUgdGhlIHNhbWUgdHlwZXMgYXMgdGhlIGFyZ3VtZW50cworLy8gKGJ1dCB3aXRoIGNvbnN0IGFuZCByZWZlcmVuY2UgbW9kaWZpZXJzIHJlbW92ZWQpLgordGVtcGxhdGUgPHR5cGVuYW1lIEFyZzFULCB0eXBlbmFtZSBBcmcyVD4KK3N0cnVjdCBmdW5jdGlvbkFyZ1NhdmVyPHN0ZDo6ZnVuY3Rpb248dm9pZChBcmcxVCwgQXJnMlQpPj4gZmluYWwgeworICAgIHVzaW5nIFN0b3JhZ2VUID0KKyAgICAgICAgc3RkOjpwYWlyPHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2NvbnN0PAorICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxBcmcxVD46OnR5cGU+Ojp0eXBlLAorICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfY29uc3Q8CisgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPEFyZzJUPjo6dHlwZT46OnR5cGU+OworCisgICAgc3RkOjpmdW5jdGlvbjx2b2lkKEFyZzFULCBBcmcyVCk+IHNhdmVBcmdzID0gW3RoaXNdKEFyZzFUIGFyZzEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFyZzJUIGFyZzIpIHsKKyAgICAgICAgdGhpcy0+c2F2ZWRfdmFsdWVzID0ge2FyZzEsIGFyZzJ9OworICAgIH07CisKKyAgICBTdG9yYWdlVCBzYXZlZF92YWx1ZXM7Cit9OworCisvLyBQcm92aWRlcyBhIHN0ZDo6ZnVuY3Rpb24gdGhhdCB0YWtlcyB0aHJlZSBvciBtb3JlIGFyZ3VtZW50cywgYW5kIGEKKy8vIGJ1ZmZlciB3aGVyZWluIHRoZSBmdW5jdGlvbiB3aWxsIHN0b3JlIGl0cyBhcmd1bWVudHMuIFRoZSBidWZmZXIgaXMgYQorLy8gc3RkOjp0dXBsZSB3aG9zZSBlbGVtZW50cyBoYXZlIHRoZSBzYW1lIHR5cGVzIGFzIHRoZSBhcmd1bWVudHMgKGJ1dAorLy8gd2l0aCBjb25zdCBhbmQgcmVmZXJlbmNlIG1vZGlmaWVycyByZW1vdmVkKS4KK3RlbXBsYXRlIDx0eXBlbmFtZS4uLiBBcmdUPgorc3RydWN0IGZ1bmN0aW9uQXJnU2F2ZXI8c3RkOjpmdW5jdGlvbjx2b2lkKEFyZ1QuLi4pPj4gZmluYWwgeworICAgIHVzaW5nIFN0b3JhZ2VUID0gc3RkOjp0dXBsZTx0eXBlbmFtZSBzdGQ6OnJlbW92ZV9jb25zdDwKKyAgICAgICAgdHlwZW5hbWUgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPEFyZ1Q+Ojp0eXBlPjo6dHlwZS4uLj47CisKKyAgICBzdGQ6OmZ1bmN0aW9uPHZvaWQoQXJnVC4uLik+IHNhdmVBcmdzID0gW3RoaXNdKEFyZ1QuLi4gYXJnKSB7CisgICAgICAgIHRoaXMtPnNhdmVkX3ZhbHVlcyA9IHthcmcuLi59OworICAgIH07CisKKyAgICBTdG9yYWdlVCBzYXZlZF92YWx1ZXM7Cit9OworCisvLyBJbnZva2VzIHxtZXRob2R8IG9uIHxvYmplY3R8LCBwcm92aWRpbmcgfG1ldGhvZHwgYSBDYWxsYmFja1QgYXMgdGhlCisvLyBmaW5hbCBhcmd1bWVudC4gUmV0dXJucyBhIGNvcHkgb2YgdGhlIHBhcmFtZXRlcnMgdGhhdCB8bWV0aG9kfCBwcm92aWRlZAorLy8gdG8gQ2FsbGJhY2tULiAoVGhlIHBhcmFtZXRlcnMgYXJlIHJldHVybmVkIGJ5IHZhbHVlLikKK3RlbXBsYXRlIDx0eXBlbmFtZSBDYWxsYmFja1QsIHR5cGVuYW1lIE1ldGhvZFQsIHR5cGVuYW1lIE9iamVjdFQsCisgICAgICAgICAgdHlwZW5hbWUuLi4gQXJnVD4KK3R5cGVuYW1lIGZ1bmN0aW9uQXJnU2F2ZXI8Q2FsbGJhY2tUPjo6U3RvcmFnZVQgaW52b2tlTWV0aG9kKAorICAgIE1ldGhvZFQgbWV0aG9kLCBPYmplY3RUIG9iamVjdCwgQXJnVCYmLi4uIG1ldGhvZEFyZykgeworICAgIGZ1bmN0aW9uQXJnU2F2ZXI8Q2FsbGJhY2tUPiByZXN1bHRfYnVmZmVyOworICAgIGNvbnN0IGF1dG8mIHJlcyA9ICgoKm9iamVjdCkuKm1ldGhvZCkoc3RkOjpmb3J3YXJkPEFyZ1Q+KG1ldGhvZEFyZykuLi4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfYnVmZmVyLnNhdmVBcmdzKTsKKyAgICBFWFBFQ1RfVFJVRShyZXMuaXNPaygpKTsKKyAgICByZXR1cm4gcmVzdWx0X2J1ZmZlci5zYXZlZF92YWx1ZXM7Cit9Cit9ICAvLyBuYW1lc3BhY2UgZGV0YWlsCit9ICAvLyBuYW1lc3BhY2UKKworLy8gSW52b2tlcyB8bWV0aG9kfCBvbiB8c3Ryb25nX3BvaW50ZXJ8LCBwYXNzaW5nIHByb3ZpZGVkIGFyZ3VtZW50cyB0aHJvdWdoIHRvCisvLyB8bWV0aG9kfC4KKy8vCisvLyBSZXR1cm5zIGVpdGhlcjoKKy8vIC0gQSBjb3B5IG9mIHRoZSByZXN1bHQgY2FsbGJhY2sgcGFyYW1ldGVyIChmb3IgY2FsbGJhY2tzIHdpdGggYSBzaW5nbGUKKy8vICAgcGFyYW1ldGVyKSwgT1IKKy8vIC0gQSBwYWlyIGNvbnRhaW5pbmcgYSBjb3B5IG9mIHRoZSByZXN1bHQgY2FsbGJhY2sgcGFyYW1ldGVycyAoZm9yIGNhbGxiYWNrcworLy8gICB3aXRoIHR3byBwYXJhbWV0ZXJzKSwgT1IKKy8vIC0gQSB0dXBsZSBjb250YWluaW5nIGEgY29weSBvZiB0aGUgcmVzdWx0IGNhbGxiYWNrIHBhcmFtdGVycyAoZm9yIGNhbGxiYWNrcworLy8gICB3aXRoIHRocmVlIG9yIG1vcmUgcGFyYW1ldGVycykuCisvLworLy8gRXhhbXBsZSB1c2FnZToKKy8vICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLAorLy8gICAgICAgSElETF9JTlZPS0Uoc3Ryb25nX3BvaW50ZXIsIG1ldGhvZFJldHVybmluZ1dpZmlTdGF0dXMpLmNvZGUpOworLy8gICBFWFBFQ1RfRVEoV2lmaVN0YXR1c0NvZGU6OlNVQ0NFU1MsCisvLyAgICAgICBISURMX0lOVk9LRShzdHJvbmdfcG9pbnRlciwgbWV0aG9kUmV0dXJuaW5nV2lmaVN0YXR1c0FuZE9uZU1vcmUpCisvLyAgICAgICAgIC5maXJzdC5jb2RlKTsKKy8vICAgRVhQRUNUX0VRKFdpZmlTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGQ6OmdldDwwPigKKy8vICAgICAgIEhJRExfSU5WT0tFKHN0cm9uZ19wb2ludGVyLCBtZXRob2RSZXR1cm5pbmdXaWZpU3RhdHVzQW5kVHdvTW9yZSkpCisvLyAgICAgICAgIC5jb2RlKTsKKyNkZWZpbmUgSElETF9JTlZPS0Uoc3Ryb25nX3BvaW50ZXIsIG1ldGhvZCwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoZGV0YWlsOjppbnZva2VNZXRob2Q8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgc3RkOjpyZW1vdmVfcmVmZXJlbmNlPGRlY2x0eXBlKCpzdHJvbmdfcG9pbnRlcik+Ojp0eXBlOjptZXRob2QjI19jYj4oIFwKKyAgICAgICAgJnN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxkZWNsdHlwZSgqc3Ryb25nX3BvaW50ZXIpPjo6dHlwZTo6bWV0aG9kLCAgICAgIFwKKyAgICAgICAgc3Ryb25nX3BvaW50ZXIsICMjX19WQV9BUkdTX18pKQpkaWZmIC0tZ2l0IGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5jcHAgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfaGlkbF90ZXN0X3V0aWxzLmNwcAppbmRleCAxZmNmYzhjLi5kZjRiZmE5IDEwMDY0NAotLS0gYS93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfaGlkbF90ZXN0X3V0aWxzLmNwcAorKysgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfaGlkbF90ZXN0X3V0aWxzLmNwcApAQCAtMTM2LDE0ICsxMzYsMTQgQEAKIH07CiAKIHZvaWQgc3RvcFdpZmlGcmFtZXdvcmsoKSB7Ci0gICAgQVNTRVJUX0VRKHN0ZDo6c3lzdGVtKCJzdmMgd2lmaSBkaXNhYmxlIiksIDApOworICAgIEFTU0VSVF9FUShzdGQ6OnN5c3RlbSgic3RvcCIpLCAwKTsKICAgICAvLyBUT0RPOiBVc2Ugc29tZSBvdGhlciBtZWNoYW5pc20gdG8gd2FpdCBmb3IgdGhlIGZyYW1ld29yayB0bwogICAgIC8vIGZpbmlzaCBkaXNhYmxpbmcuCiAgICAgc2xlZXAoNSk7CiB9CiAKIHZvaWQgc3RhcnRXaWZpRnJhbWV3b3JrKCkgewotICAgIEFTU0VSVF9FUShzdGQ6OnN5c3RlbSgic3ZjIHdpZmkgZW5hYmxlIiksIDApOworICAgIEFTU0VSVF9FUShzdGQ6OnN5c3RlbSgic3RhcnQiKSwgMCk7CiAgICAgLy8gVGhlc2UgdGVzdHMgZG9uJ3QgY2FyZSB3aGV0aGVyIHRoZSBmcmFtZXdvcmsKICAgICAvLyBmaW5pc2hlZCBlbmFibGluZyBvciBub3QuCiB9CmRpZmYgLS1naXQgYS93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfcDJwX2lmYWNlX2hpZGxfdGVzdC5jcHAgYi93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfcDJwX2lmYWNlX2hpZGxfdGVzdC5jcHAKaW5kZXggNzJhM2M0Mi4uMDE4MWY3YiAxMDA2NDQKLS0tIGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3AycF9pZmFjZV9oaWRsX3Rlc3QuY3BwCisrKyBiL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9wMnBfaWZhY2VfaGlkbF90ZXN0LmNwcApAQCAtMjAsNiArMjAsNyBAQAogCiAjaW5jbHVkZSA8YW5kcm9pZC9oYXJkd2FyZS93aWZpL3N1cHBsaWNhbnQvMS4wL0lTdXBwbGljYW50UDJwSWZhY2UuaD4KIAorI2luY2x1ZGUgInN1cHBsaWNhbnRfaGlkbF9jYWxsX3V0aWwuaCIKICNpbmNsdWRlICJzdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5oIgogCiB1c2luZyA6OmFuZHJvaWQ6OnNwOwpAQCAtMjgsNiArMjksNyBAQAogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SWZhY2VUeXBlOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SVN1cHBsaWNhbnRQMnBJZmFjZTsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklTdXBwbGljYW50UDJwSWZhY2VDYWxsYmFjazsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OlN1cHBsaWNhbnROZXR3b3JrSWQ7CkBAIC0zOCwxNiArNDAsMzAgQEAKIGNvbnN0ZXhwciB1aW50OF90IGtUZXN0U3NpZFBvc3RmaXhbXSA9IHsndCcsICdlJywgJ3MnLCAndCd9OwogY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RNYWNBZGRyW10gPSB7MHg1NiwgMHg2NywgMHg2NywgMHhmNCwgMHg1NiwgMHg5Mn07CiBjb25zdGV4cHIgdWludDhfdCBrVGVzdFBlZXJNYWNBZGRyW10gPSB7MHg1NiwgMHg2NywgMHg1NSwgMHhmNCwgMHg1NiwgMHg5Mn07Citjb25zdGV4cHIgdWludDhfdCBrVGVzdEJvbmpvdXJTZXJ2aWNlUXVlcnlbXSA9IHsndCcsICdlJywgJ3MnLCAndCcsICdxJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1JywgJ2UnLCAncicsICd5J307Citjb25zdGV4cHIgdWludDhfdCBrVGVzdEJvbmpvdXJTZXJ2aWNlUmVzcG9uc2VbXSA9IHsKKyAgICAndCcsICdlJywgJ3MnLCAndCcsICdyJywgJ2UnLCAncycsICdwJywgJ28nLCAnbicsICdzJywgJ2UnfTsKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0V2ZkRGV2aWNlSW5mb1tdID0ge1swIC4uLiA1XSA9IDB4MDF9OwogY29uc3RleHByIGNoYXIga1Rlc3RDb25uZWN0UGluW10gPSAiMzQ1NTY2NjUiOwogY29uc3RleHByIGNoYXIga1Rlc3RHcm91cElmTmFtZVtdID0gIlRlc3RHcm91cCI7Citjb25zdGV4cHIgY2hhciBrVGVzdFdwc0RldmljZU5hbWVbXSA9ICJUZXN0V3BzRGV2aWNlTmFtZSI7Citjb25zdGV4cHIgY2hhciBrVGVzdFdwc01hbnVmYWN0dXJlcltdID0gIlRlc3RNYW51ZmFjdHVyZXIiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNNb2RlbE5hbWVbXSA9ICJUZXN0TW9kZWxOYW1lIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzTW9kZWxOdW1iZXJbXSA9ICJUZXN0TW9kZWxOdW1iZXIiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNTZXJpYWxOdW1iZXJbXSA9ICJUZXN0U2VyaWFsTnVtYmVyIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0VXBucFNlcnZpY2VOYW1lW10gPSAiVGVzdFNlcnZpY2VOYW1lIjsKK2NvbnN0ZXhwciB1aW50OF90IGtUZXN0V3BzRGV2aWNlVHlwZVtdID0ge1swIC4uLiA3XSA9IDB4MDF9OworY29uc3RleHByIHVpbnQxNl90IGtUZXN0V3BzQ29uZmlnTWV0aG9kcyA9IDB4ZmZmZjsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdENvbm5lY3RHb0ludGVudCA9IDY7CiBjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RGaW5kVGltZW91dCA9IDU7Ci1jb25zdGV4cHIgU3VwcGxpY2FudE5ldHdvcmtJZCBrVGVzdE5ldHdvcmtJZCA9IDU7Citjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RTZXRHcm91cElkbGVUaW1lb3V0ID0gNjsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdENoYW5uZWwgPSAxOwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0T3BlcmF0aW5nQ2xhc3MgPSA4MTsKIGNvbnN0ZXhwciB1aW50MzJfdCBrVGVzdEZyZXFSYW5nZVtdID0gezI0MTIsIDI0MzJ9OwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0RXh0TGlzdGVuUGVyaW9kID0gNDAwOwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0RXh0TGlzdGVuSW50ZXJ2YWwgPSA0MDA7Citjb25zdGV4cHIgU3VwcGxpY2FudE5ldHdvcmtJZCBrVGVzdE5ldHdvcmtJZCA9IDU7CiB9ICAvLyBuYW1lc3BhY2UKIAogY2xhc3MgU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgewpAQCAtMTc4LDYgKzE5NCwyNiBAQAogfQogCiAvKgorICogR2V0TmFtZQorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIEdldE5hbWUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lID0gSElETF9JTlZPS0UocDJwX2lmYWNlXywgZ2V0TmFtZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9GQUxTRShzdGQ6OnN0cmluZyhzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lLnNlY29uZCkuZW1wdHkoKSk7Cit9CisKKy8qCisgKiBHZXRUeXBlCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgR2V0VHlwZSkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUgPSBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBnZXRUeXBlKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUuZmlyc3QuY29kZSk7CisgICAgRVhQRUNUX0VRKHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUuc2Vjb25kLCBJZmFjZVR5cGU6OlAyUCk7Cit9CisKKy8qCiAgKiBHZXREZXZpY2VBZGRyZXNzCiAgKi8KIFRFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgR2V0RGV2aWNlQWRkcmVzcykgewpAQCAtMjE5LDEwICsyNTUsNiBAQAogICAgIHAycF9pZmFjZV8tPnN0b3BGaW5kKFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgewogICAgICAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1cy5jb2RlKTsKICAgICB9KTsKLQotICAgIHAycF9pZmFjZV8tPnN0b3BGaW5kKFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgewotICAgICAgICBFWFBFQ1RfTkUoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1cy5jb2RlKTsKLSAgICB9KTsKIH0KIAogLyoKQEAgLTI5MCw2ICszMjIsMTUgQEAKIH0KIAogLyoKKyAqIFJlbW92ZUdyb3VwCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgUmVtb3ZlR3JvdXApIHsKKyAgICAvLyBUaGlzIGlzIG5vdCBnb2luZyB0byB3b3JrIHdpdGggZmFrZSB2YWx1ZXMuCisgICAgRVhQRUNUX05FKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCByZW1vdmVHcm91cCwga1Rlc3RHcm91cElmTmFtZSkuY29kZSk7Cit9CisKKy8qCiAgKiBSZWplY3QKICAqLwogVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBSZWplY3QpIHsKQEAgLTQxMSwzICs0NTIsMTcwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzLmNvZGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKIH0KKworLyoKKyAqIFNldEdyb3VwSWRsZQorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldEdyb3VwSWRsZSkgeworICAgIC8vIFRoaXMgaXMgbm90IGdvaW5nIHRvIHdvcmsgd2l0aCBmYWtlIHZhbHVlcy4KKyAgICBFWFBFQ1RfTkUoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldEdyb3VwSWRsZSwga1Rlc3RHcm91cElmTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RTZXRHcm91cElkbGVUaW1lb3V0KQorICAgICAgICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgorICogU2V0UG93ZXJTYXZlCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgU2V0UG93ZXJTYXZlKSB7CisgICAgLy8gVGhpcyBpcyBub3QgZ29pbmcgdG8gd29yayB3aXRoIGZha2UgdmFsdWVzLgorICAgIEVYUEVDVF9ORSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFBvd2VyU2F2ZSwga1Rlc3RHcm91cElmTmFtZSwgdHJ1ZSkuY29kZSk7CisgICAgLy8gVGhpcyBpcyBub3QgZ29pbmcgdG8gd29yayB3aXRoIGZha2UgdmFsdWVzLgorICAgIEVYUEVDVF9ORSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFBvd2VyU2F2ZSwga1Rlc3RHcm91cElmTmFtZSwgZmFsc2UpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzRGV2aWNlTmFtZQorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldFdwc0RldmljZU5hbWUpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRXcHNEZXZpY2VOYW1lLCBrVGVzdFdwc0RldmljZU5hbWUpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzRGV2aWNlVHlwZQorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldFdwc0RldmljZVR5cGUpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRXcHNEZXZpY2VUeXBlLCBrVGVzdFdwc0RldmljZVR5cGUpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzTWFudWZhY3R1cmVyCisgKi8KK1RFU1RfRihTdXBwbGljYW50UDJwSWZhY2VIaWRsVGVzdCwgU2V0V3BzTWFudWZhY3R1cmVyKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgc2V0V3BzTWFudWZhY3R1cmVyLCBrVGVzdFdwc01hbnVmYWN0dXJlcikuY29kZSk7Cit9CisKKy8qCisgKiBTZXRXcHNNb2RlbE5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXcHNNb2RlbE5hbWUpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFdwc01vZGVsTmFtZSwga1Rlc3RXcHNNb2RlbE5hbWUpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzTW9kZWxOdW1iZXIKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXcHNNb2RlbE51bWJlcikgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFdwc01vZGVsTnVtYmVyLCBrVGVzdFdwc01vZGVsTnVtYmVyKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc1NlcmlhbE51bWJlcgorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldFdwc1NlcmlhbE51bWJlcikgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHNldFdwc1NlcmlhbE51bWJlciwga1Rlc3RXcHNTZXJpYWxOdW1iZXIpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzQ29uZmlnTWV0aG9kcworICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIFNldFdwc0NvbmZpZ01ldGhvZHMpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBzZXRXcHNDb25maWdNZXRob2RzLCBrVGVzdFdwc0NvbmZpZ01ldGhvZHMpCisgICAgICAgICAgICAuY29kZSk7Cit9CisKKy8qCisgKiBBZGRBbmRSZW1vdmVCb25qb3VyU2VydmljZQorICogVGhpcyB0ZXN0cyB0aGF0IHdlIGFyZSBhYmxlIHRvIGFkZCBhIGJvbmpvdXIgc2VydmljZSwgYW5kIHdlIGNhbiByZW1vdmUgaXQKKyAqIGJ5IHVzaW5nIHRoZSBzYW1lIHF1ZXJ5IGRhdGEuCisgKiBUaGlzIGFsc28gdGVzdHMgdGhhdCByZW1vdmVCb25qb3VyU2VyaXZlKCkgcmV0dXJucyBlcnJvciB3aGVuIHRoZXJlIGlzIG5vCisgKiBleGlzdGluZyBib25qb3VyIHNlcnZpY2Ugd2l0aCB0aGUgc2FtZSBxdWVyeSBkYXRhLgorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIEFkZEFuZFJlbW92ZUJvbmpvdXJTZXJ2aWNlKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRSgKKyAgICAgICAgICAgICAgICAgIHAycF9pZmFjZV8sIGFkZEJvbmpvdXJTZXJ2aWNlLAorICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4oa1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoa1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5KSksCisgICAgICAgICAgICAgICAgICBzdGQ6OnZlY3Rvcjx1aW50OF90PihrVGVzdEJvbmpvdXJTZXJ2aWNlUmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrVGVzdEJvbmpvdXJTZXJ2aWNlUmVzcG9uc2UgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihrVGVzdEJvbmpvdXJTZXJ2aWNlUmVzcG9uc2UpKSkKKyAgICAgICAgICAgICAgICAgIC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCByZW1vdmVCb25qb3VyU2VydmljZSwKKyAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4oa1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrVGVzdEJvbmpvdXJTZXJ2aWNlUXVlcnkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSkpKQorICAgICAgICAgICAgLmNvZGUpOworICAgIC8vIFRoaXMgd2lsbCBmYWlsIGJlY2F1c2UgYm91am91ciBzZXJ2aWNlIHdpdGgga1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5IHdhcworICAgIC8vIGFscmVhZHkgcmVtb3ZlZC4KKyAgICBFWFBFQ1RfTkUoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCByZW1vdmVCb25qb3VyU2VydmljZSwKKyAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8dWludDhfdD4oa1Rlc3RCb25qb3VyU2VydmljZVF1ZXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrVGVzdEJvbmpvdXJTZXJ2aWNlUXVlcnkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGtUZXN0Qm9uam91clNlcnZpY2VRdWVyeSkpKQorICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgorICogQWRkQW5kUmVtb3ZlVXBucFNlcnZpY2UKKyAqIFRoaXMgdGVzdHMgdGhhdCB3ZSBhcmUgYWJsZSB0byBhZGQgYSB1cG5wIHNlcnZpY2UsIGFuZCB3ZSBjYW4gcmVtb3ZlIGl0CisgKiBieSB1c2luZyB0aGUgc2FtZSBzZXJ2aWNlIG5hbWUuCisgKiBUaGlzIGFsc28gdGVzdHMgdGhhdCByZW1vdmVVcG5wU2VydmljZSgpIHJldHVybnMgZXJyb3Igd2hlbiB0aGVyZSBpcyBubworICogZXhzaXRpbmcgdXBucCBzZXJ2aWNlIHdpdGggdGhlIHNhbWUgc2VydmljZSBuYW1lLgorICovCitURVNUX0YoU3VwcGxpY2FudFAycElmYWNlSGlkbFRlc3QsIEFkZEFuZFJlbW92ZVVwbnBTZXJ2aWNlKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBhZGRVcG5wU2VydmljZSwgMCAvKiB2ZXJzaW9uICovLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrVGVzdFVwbnBTZXJ2aWNlTmFtZSkKKyAgICAgICAgICAgICAgICAgIC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIHJlbW92ZVVwbnBTZXJ2aWNlLCAwIC8qIHZlcnNpb24gKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGtUZXN0VXBucFNlcnZpY2VOYW1lKQorICAgICAgICAgICAgICAgICAgLmNvZGUpOworICAgIC8vIFRoaXMgd2lsbCBmYWlsIGJlY2F1c2UgVXBucCBzZXJ2aWNlIHdpdGgga1Rlc3RVcG5wU2VydmljZU5hbWUgd2FzCisgICAgLy8gYWxyZWFkeSByZW1vdmVkLgorICAgIEVYUEVDVF9ORShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgcmVtb3ZlVXBucFNlcnZpY2UsIDAgLyogdmVyc2lvbiAqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAga1Rlc3RVcG5wU2VydmljZU5hbWUpCisgICAgICAgICAgICAgICAgICAuY29kZSk7Cit9CisKKy8qCisgKiBFbmFibGVXZmQKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBFbmFibGVXZmQpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHAycF9pZmFjZV8sIGVuYWJsZVdmZCwgdHJ1ZSkuY29kZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShwMnBfaWZhY2VfLCBlbmFibGVXZmQsIGZhbHNlKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdmZERldmljZUluZm8KKyAqLworVEVTVF9GKFN1cHBsaWNhbnRQMnBJZmFjZUhpZGxUZXN0LCBTZXRXZmREZXZpY2VJbmZvKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0UocDJwX2lmYWNlXywgc2V0V2ZkRGV2aWNlSW5mbywga1Rlc3RXZmREZXZpY2VJbmZvKS5jb2RlKTsKK30KZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfaWZhY2VfaGlkbF90ZXN0LmNwcCBiL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfaWZhY2VfaGlkbF90ZXN0LmNwcAppbmRleCBjMmE1OGI2Li5lYzEwMmQ1IDEwMDY0NAotLS0gYS93aWZpL3N1cHBsaWNhbnQvMS4wL3Z0cy9mdW5jdGlvbmFsL3N1cHBsaWNhbnRfc3RhX2lmYWNlX2hpZGxfdGVzdC5jcHAKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3N0YV9pZmFjZV9oaWRsX3Rlc3QuY3BwCkBAIC0yMCw2ICsyMCw3IEBACiAKICNpbmNsdWRlIDxhbmRyb2lkL2hhcmR3YXJlL3dpZmkvc3VwcGxpY2FudC8xLjAvSVN1cHBsaWNhbnRTdGFJZmFjZS5oPgogCisjaW5jbHVkZSAic3VwcGxpY2FudF9oaWRsX2NhbGxfdXRpbC5oIgogI2luY2x1ZGUgInN1cHBsaWNhbnRfaGlkbF90ZXN0X3V0aWxzLmgiCiAKIHVzaW5nIDo6YW5kcm9pZDo6c3A7CkBAIC0yOCw2ICsyOSw3IEBACiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpoaWRsX3ZlYzsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlJldHVybjsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OlZvaWQ7Cit1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpzdXBwbGljYW50OjpWMV8wOjpJZmFjZVR5cGU7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjp3aWZpOjpzdXBwbGljYW50OjpWMV8wOjpJU3VwcGxpY2FudFN0YUlmYWNlOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SVN1cHBsaWNhbnRTdGFJZmFjZUNhbGxiYWNrOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SVN1cHBsaWNhbnRTdGFOZXR3b3JrOwpAQCAtNDUsNyArNDcsMTggQEAKICAgICBJU3VwcGxpY2FudFN0YUlmYWNlOjpIczIwQW5xcFN1YnR5cGVzOjpXQU5fTUVUUklDUywKICAgICBJU3VwcGxpY2FudFN0YUlmYWNlOjpIczIwQW5xcFN1YnR5cGVzOjpPUEVSQVRPUl9GUklFTkRMWV9OQU1FfTsKIGNvbnN0ZXhwciBjaGFyIGtUZXN0SHMyMEljb25GaWxlW10gPSAiVGVzdEZpbGUiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNEZXZpY2VOYW1lW10gPSAiVGVzdFdwc0RldmljZU5hbWUiOworY29uc3RleHByIGNoYXIga1Rlc3RXcHNNYW51ZmFjdHVyZXJbXSA9ICJUZXN0TWFudWZhY3R1cmVyIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzTW9kZWxOYW1lW10gPSAiVGVzdE1vZGVsTmFtZSI7Citjb25zdGV4cHIgY2hhciBrVGVzdFdwc01vZGVsTnVtYmVyW10gPSAiVGVzdE1vZGVsTnVtYmVyIjsKK2NvbnN0ZXhwciBjaGFyIGtUZXN0V3BzU2VyaWFsTnVtYmVyW10gPSAiVGVzdFNlcmlhbE51bWJlciI7Citjb25zdGV4cHIgY2hhciBrVGVzdFJhZGlvV29ya05hbWVbXSA9ICJUZXN0UmFkaW9Xb3JrIjsKK2NvbnN0ZXhwciB1aW50MzJfdCBrVGVzdFJhZGlvV29ya0ZyZXF1ZW5jeSA9IDI0MTI7Citjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RSYWRpb1dvcmtUaW1lb3V0ID0gODsKK2NvbnN0ZXhwciB1aW50MzJfdCBrVGVzdFJhZGlvV29ya0lkID0gMTY7CiBjb25zdGV4cHIgaW50OF90IGtUZXN0Q291bnRyeUNvZGVbXSA9IHsnVScsICdTJ307Citjb25zdGV4cHIgdWludDhfdCBrVGVzdFdwc0RldmljZVR5cGVbXSA9IHtbMCAuLi4gN10gPSAweDAxfTsKK2NvbnN0ZXhwciB1aW50MTZfdCBrVGVzdFdwc0NvbmZpZ01ldGhvZHMgPSAweGZmZmY7CiB9ICAvLyBuYW1lc3BhY2UKIAogY2xhc3MgU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpWdHNIYWxIaWRsVGFyZ2V0VGVzdEJhc2UgewpAQCAtMTA0LDExICsxMTcsMTMgQEAKICAgICB9CiAgICAgUmV0dXJuPHZvaWQ+IG9uRGlzY29ubmVjdGVkKGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgNj4mIC8qIGJzc2lkICovLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIC8qIGxvY2FsbHlHZW5lcmF0ZWQgKi8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IC8qIHJlYXNvbkNvZGUgKi8pIG92ZXJyaWRlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVN1cHBsaWNhbnRTdGFJZmFjZUNhbGxiYWNrOjpSZWFzb25Db2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJlYXNvbkNvZGUgKi8pIG92ZXJyaWRlIHsKICAgICAgICAgcmV0dXJuIFZvaWQoKTsKICAgICB9CiAgICAgUmV0dXJuPHZvaWQ+IG9uQXNzb2NpYXRpb25SZWplY3RlZCgKLSAgICAgICAgY29uc3QgaGlkbF9hcnJheTx1aW50OF90LCA2PiYgLyogYnNzaWQgKi8sIHVpbnQzMl90IC8qIHN0YXR1c0NvZGUgKi8sCisgICAgICAgIGNvbnN0IGhpZGxfYXJyYXk8dWludDhfdCwgNj4mIC8qIGJzc2lkICovLAorICAgICAgICBJU3VwcGxpY2FudFN0YUlmYWNlQ2FsbGJhY2s6OlN0YXR1c0NvZGUgLyogc3RhdHVzQ29kZSAqLywKICAgICAgICAgYm9vbCAvKnRpbWVkT3V0ICovKSBvdmVycmlkZSB7CiAgICAgICAgIHJldHVybiBWb2lkKCk7CiAgICAgfQpAQCAtMTE2LDYgKzEzMSwxMSBAQAogICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDY+JiAvKiBic3NpZCAqLykgb3ZlcnJpZGUgewogICAgICAgICByZXR1cm4gVm9pZCgpOwogICAgIH0KKyAgICBSZXR1cm48dm9pZD4gb25Cc3NpZENoYW5nZWQoCisgICAgICAgIElTdXBwbGljYW50U3RhSWZhY2VDYWxsYmFjazo6QnNzaWRDaGFuZ2VSZWFzb24gLyogcmVhc29uICovLAorICAgICAgICBjb25zdCBoaWRsX2FycmF5PHVpbnQ4X3QsIDY+JiAvKiBic3NpZCAqLykgb3ZlcnJpZGUgeworICAgICAgICByZXR1cm4gVm9pZCgpOworICAgIH0KICAgICBSZXR1cm48dm9pZD4gb25FYXBGYWlsdXJlKCkgb3ZlcnJpZGUgeyByZXR1cm4gVm9pZCgpOyB9CiAgICAgUmV0dXJuPHZvaWQ+IG9uV3BzRXZlbnRTdWNjZXNzKCkgb3ZlcnJpZGUgeyByZXR1cm4gVm9pZCgpOyB9CiAgICAgUmV0dXJuPHZvaWQ+IG9uV3BzRXZlbnRGYWlsKApAQCAtMTU2LDYgKzE3NiwyNiBAQAogfQogCiAvKgorICogR2V0TmFtZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIEdldE5hbWUpIHsKKyAgICBjb25zdCBhdXRvJiBzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lID0gSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgZ2V0TmFtZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9GQUxTRShzdGQ6OnN0cmluZyhzdGF0dXNfYW5kX2ludGVyZmFjZV9uYW1lLnNlY29uZCkuZW1wdHkoKSk7Cit9CisKKy8qCisgKiBHZXRUeXBlCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgR2V0VHlwZSkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUgPSBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBnZXRUeXBlKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUuZmlyc3QuY29kZSk7CisgICAgRVhQRUNUX0VRKHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUuc2Vjb25kLCBJZmFjZVR5cGU6OlNUQSk7Cit9CisKKy8qCiAgKiBsaXN0TmV0d29ya3MuCiAgKi8KIFRFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgbGlzdE5ldHdvcmtzKSB7CkBAIC0yMjEsOSArMjYxLDcgQEAKIFRFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgSW5pdGlhdGVUZGxzRGlzY292ZXIpIHsKICAgICBzdGFfaWZhY2VfLT5pbml0aWF0ZVRkbHNEaXNjb3ZlcigKICAgICAgICAgbWFjX2FkZHJfLCBbXShjb25zdCBTdXBwbGljYW50U3RhdHVzJiBzdGF0dXMpIHsKLSAgICAgICAgICAgIC8vIFRoZXNlIHJlcXVlc3RzIHdpbGwgZmFpbCB1bmxlc3MgdGhlIE1BQyBhZGRyZXNzIG1lbnRpb25lZCBpcwotICAgICAgICAgICAgLy8gYWN0dWFsbHkgYXJvdW5kLgotICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpGQUlMVVJFX1VOS05PV04sIHN0YXR1cy5jb2RlKTsKKyAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOwogICAgICAgICB9KTsKIH0KIApAQCAtMjMzLDkgKzI3MSw3IEBACiBURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIEluaXRpYXRlVGRsc1NldHVwKSB7CiAgICAgc3RhX2lmYWNlXy0+aW5pdGlhdGVUZGxzU2V0dXAoCiAgICAgICAgIG1hY19hZGRyXywgW10oY29uc3QgU3VwcGxpY2FudFN0YXR1cyYgc3RhdHVzKSB7Ci0gICAgICAgICAgICAvLyBUaGVzZSByZXF1ZXN0cyB3aWxsIGZhaWwgdW5sZXNzIHRoZSBNQUMgYWRkcmVzcyBtZW50aW9uZWQgaXMKLSAgICAgICAgICAgIC8vIGFjdHVhbGx5IGFyb3VuZC4KLSAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6RkFJTFVSRV9VTktOT1dOLCBzdGF0dXMuY29kZSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1cy5jb2RlKTsKICAgICAgICAgfSk7CiB9CiAKQEAgLTI0NSw5ICsyODEsNyBAQAogVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBJbml0aWF0ZVRkbHNUZWFyZG93bikgewogICAgIHN0YV9pZmFjZV8tPmluaXRpYXRlVGRsc1RlYXJkb3duKAogICAgICAgICBtYWNfYWRkcl8sIFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgewotICAgICAgICAgICAgLy8gVGhlc2UgcmVxdWVzdHMgd2lsbCBmYWlsIHVubGVzcyB0aGUgTUFDIGFkZHJlc3MgbWVudGlvbmVkIGlzCi0gICAgICAgICAgICAvLyBhY3R1YWxseSBhcm91bmQuCi0gICAgICAgICAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OkZBSUxVUkVfVU5LTk9XTiwgc3RhdHVzLmNvZGUpOworICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CiAgICAgICAgIH0pOwogfQogCkBAIC0zOTgsMyArNDMyLDEwMSBAQAogICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CiAgICAgICAgIH0pOwogfQorCisvKgorICogU2V0V3BzRGV2aWNlTmFtZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIFNldFdwc0RldmljZU5hbWUpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRXcHNEZXZpY2VOYW1lLCBrVGVzdFdwc0RldmljZU5hbWUpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzRGV2aWNlVHlwZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIFNldFdwc0RldmljZVR5cGUpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRXcHNEZXZpY2VUeXBlLCBrVGVzdFdwc0RldmljZVR5cGUpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzTWFudWZhY3R1cmVyCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgU2V0V3BzTWFudWZhY3R1cmVyKSB7CisgICAgRVhQRUNUX0VRKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgc2V0V3BzTWFudWZhY3R1cmVyLCBrVGVzdFdwc01hbnVmYWN0dXJlcikuY29kZSk7Cit9CisKKy8qCisgKiBTZXRXcHNNb2RlbE5hbWUKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRXcHNNb2RlbE5hbWUpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIHNldFdwc01vZGVsTmFtZSwga1Rlc3RXcHNNb2RlbE5hbWUpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzTW9kZWxOdW1iZXIKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBTZXRXcHNNb2RlbE51bWJlcikgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIHNldFdwc01vZGVsTnVtYmVyLCBrVGVzdFdwc01vZGVsTnVtYmVyKS5jb2RlKTsKK30KKworLyoKKyAqIFNldFdwc1NlcmlhbE51bWJlcgorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIFNldFdwc1NlcmlhbE51bWJlcikgeworICAgIEVYUEVDVF9FUSgKKyAgICAgICAgU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9pZmFjZV8sIHNldFdwc1NlcmlhbE51bWJlciwga1Rlc3RXcHNTZXJpYWxOdW1iZXIpLmNvZGUpOworfQorCisvKgorICogU2V0V3BzQ29uZmlnTWV0aG9kcworICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIFNldFdwc0NvbmZpZ01ldGhvZHMpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRXcHNDb25maWdNZXRob2RzLCBrVGVzdFdwc0NvbmZpZ01ldGhvZHMpCisgICAgICAgICAgICAuY29kZSk7Cit9CisKKy8qCisgKiBTZXRFeHRlcm5hbFNpbQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YUlmYWNlSGlkbFRlc3QsIFNldEV4dGVybmFsU2ltKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRFeHRlcm5hbFNpbSwgdHJ1ZSkuY29kZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfaWZhY2VfLCBzZXRFeHRlcm5hbFNpbSwgZmFsc2UpLmNvZGUpOworfQorCisvKgorICogQWRkRXh0UmFkaW9Xb3JrCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhSWZhY2VIaWRsVGVzdCwgQWRkRXh0UmFkaW9Xb3JrKSB7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9yYWRpb193b3JrX2lkID0KKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgYWRkRXh0UmFkaW9Xb3JrLCBrVGVzdFJhZGlvV29ya05hbWUsCisgICAgICAgICAgICAgICAgICAgIGtUZXN0UmFkaW9Xb3JrRnJlcXVlbmN5LCBrVGVzdFJhZGlvV29ya1RpbWVvdXQpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgc3RhdHVzX2FuZF9yYWRpb193b3JrX2lkLmZpcnN0LmNvZGUpOworICAgIC8vIHJlbW92ZUV4dFJhZGlvIG9ubHkgc3VjY2VlZHMgaWYgdGhlIGFkZGVkIHJhZGlvIHdvcmsgaGFzbid0IHN0YXJ0ZWQgeWV0LgorICAgIC8vIFNvIHRoZXJlIHRoaXMgbm8gZ3VhcmFudGVlZCByZXN1bHQgZnJvbSBjYWxsaW5nIHJlbW92ZUV4dFJhZGlvV29yayBoZXJlLgorICAgIC8vIFRoYXQgYmVpbmcgc2FpZCwgY3VycmVudGx5IHdlIGFyZSBub3QgYWJsZSB0byB0ZXN0IGFkZEV4dFJhZGlvV29yayBhbmQKKyAgICAvLyByZW1vdmVFeHRSYWRpb1dvcmsgaW4gYSByb3cuCit9CisKKy8qCisgKiBSZW1vdmVFeHRSYWRpb1dvcmsKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFJZmFjZUhpZGxUZXN0LCBSZW1vdmVFeHRSYWRpb1dvcmspIHsKKyAgICAvLyBUaGlzIGZhaWxzIGJlY2F1c2UgdGhlcmUgaXMgbm8gb24gZ29pbmcgcmFkaW8gd29yayB3aXRoIGtUZXN0UmFkaW9Xb3JrSWQuCisgICAgRVhQRUNUX05FKAorICAgICAgICBTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX2lmYWNlXywgcmVtb3ZlRXh0UmFkaW9Xb3JrLCBrVGVzdFJhZGlvV29ya0lkKS5jb2RlKTsKK30KZGlmZiAtLWdpdCBhL3dpZmkvc3VwcGxpY2FudC8xLjAvdnRzL2Z1bmN0aW9uYWwvc3VwcGxpY2FudF9zdGFfbmV0d29ya19oaWRsX3Rlc3QuY3BwIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3N0YV9uZXR3b3JrX2hpZGxfdGVzdC5jcHAKaW5kZXggYWE4NGU5YS4uODMyZGQ0MSAxMDA2NDQKLS0tIGEvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3N0YV9uZXR3b3JrX2hpZGxfdGVzdC5jcHAKKysrIGIvd2lmaS9zdXBwbGljYW50LzEuMC92dHMvZnVuY3Rpb25hbC9zdXBwbGljYW50X3N0YV9uZXR3b3JrX2hpZGxfdGVzdC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1ZGUgPGFuZHJvaWQvaGFyZHdhcmUvd2lmaS9zdXBwbGljYW50LzEuMC9JU3VwcGxpY2FudFN0YU5ldHdvcmsuaD4KIAorI2luY2x1ZGUgInN1cHBsaWNhbnRfaGlkbF9jYWxsX3V0aWwuaCIKICNpbmNsdWRlICJzdXBwbGljYW50X2hpZGxfdGVzdF91dGlscy5oIgogCiB1c2luZyA6OmFuZHJvaWQ6OnNwOwpAQCAtMzAsNiArMzEsNyBAQAogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6aGlkbF92ZWM7CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpSZXR1cm47CiB1c2luZyA6OmFuZHJvaWQ6OmhhcmR3YXJlOjpWb2lkOwordXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SWZhY2VUeXBlOwogdXNpbmcgOjphbmRyb2lkOjpoYXJkd2FyZTo6d2lmaTo6c3VwcGxpY2FudDo6VjFfMDo6SVN1cHBsaWNhbnRTdGFJZmFjZTsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OklTdXBwbGljYW50U3RhTmV0d29yazsKIHVzaW5nIDo6YW5kcm9pZDo6aGFyZHdhcmU6OndpZmk6OnN1cHBsaWNhbnQ6OlYxXzA6OgpAQCAtMzksNyArNDEsNyBAQAogCiBuYW1lc3BhY2UgewogY29uc3RleHByIGNoYXIga1Rlc3RTc2lkU3RyW10gPSAiVGVzdFNzaWQxMjM0IjsKLWNvbnN0ZXhwciBjaGFyIGtUZXN0UHNrW10gPSAiVGVzdFBzazEyMyI7Citjb25zdGV4cHIgY2hhciBrVGVzdFBza1Bhc3NwaHJhc2VbXSA9ICJUZXN0UHNrMTIzIjsKIGNvbnN0ZXhwciBjaGFyIGtUZXN0SWRTdHJbXSA9ICJUZXN0SWRzdHIiOwogY29uc3RleHByIGNoYXIga1Rlc3RFYXBQYXNzd2RTdHJbXSA9ICJUZXN0RWFwUGFzc3dkMTIzNCI7CiBjb25zdGV4cHIgY2hhciBrVGVzdEVhcENlcnRbXSA9ICJrZXlzdG9yZTovL0NFUlQiOwpAQCAtNTQsNyArNTYsMTAgQEAKIGNvbnN0ZXhwciB1aW50OF90IGtUZXN0SWtbXSA9IHtbMCAuLi4gMTVdID0gMHg2NX07CiBjb25zdGV4cHIgdWludDhfdCBrVGVzdENrW10gPSB7WzAgLi4uIDE1XSA9IDB4NDV9OwogY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RJZGVudGl0eVtdID0gezB4NDUsIDB4NjcsIDB4OTgsIDB4NjcsIDB4NTZ9OworY29uc3RleHByIHVpbnQ4X3Qga1Rlc3RQc2tbXSA9IHtbMCAuLi4gMzFdID0gMHgxMn07Citjb25zdGV4cHIgdWludDhfdCBrVGVzdEF1dFBhcmFtW10gPSB7WzAgLi4uIDEzXSA9IDB4ZTF9OwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0V2VwVHhLZXlJZHggPSAyOworY29uc3RleHByIHVpbnQzMl90IGtUZXN0VXBkYXRlSWRlbnRpZmllciA9IDIxOwogY29uc3RleHByIHVpbnQzMl90IGtUZXN0S2V5TWdtdCA9IChJU3VwcGxpY2FudFN0YU5ldHdvcms6OktleU1nbXRNYXNrOjpXUEFfUFNLIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVN1cHBsaWNhbnRTdGFOZXR3b3JrOjpLZXlNZ210TWFzazo6V1BBX0VBUCk7CiBjb25zdGV4cHIgdWludDMyX3Qga1Rlc3RQcm90byA9IChJU3VwcGxpY2FudFN0YU5ldHdvcms6OlByb3RvTWFzazo6T1NFTiB8CkBAIC0xMzcsNiArMTQyLDI3IEBACiAgICAgICAgIH0pOwogfQogCisvKgorICogR2V0SW50ZXJmYWNlTmFtZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgR2V0SW50ZXJmYWNlTmFtZSkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaW50ZXJmYWNlX25hbWUgPQorICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIGdldEludGVyZmFjZU5hbWUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRkFMU0Uoc3RkOjpzdHJpbmcoc3RhdHVzX2FuZF9pbnRlcmZhY2VfbmFtZS5zZWNvbmQpLmVtcHR5KCkpOworfQorCisvKgorICogR2V0VHlwZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgR2V0VHlwZSkgeworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfaW50ZXJmYWNlX3R5cGUgPSBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIGdldFR5cGUpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgc3RhdHVzX2FuZF9pbnRlcmZhY2VfdHlwZS5maXJzdC5jb2RlKTsKKyAgICBFWFBFQ1RfRVEoc3RhdHVzX2FuZF9pbnRlcmZhY2VfdHlwZS5zZWNvbmQsIElmYWNlVHlwZTo6U1RBKTsKK30KKwogLyogVGVzdHMgb3V0IHRoZSB2YXJpb3VzIHNldHRlci9nZXR0ZXIgbWV0aG9kcy4gKi8KIC8qCiAgKiBTZXRHZXRTc2lkCkBAIC0yNDYsMTcgKzI3MiwyOSBAQAogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2V0R2V0UHNrUGFzc3BocmFzZSkgewogICAgIHN0YV9uZXR3b3JrXy0+c2V0UHNrUGFzc3BocmFzZSgKLSAgICAgICAga1Rlc3RQc2ssIFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgeworICAgICAgICBrVGVzdFBza1Bhc3NwaHJhc2UsIFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgewogICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CiAgICAgICAgIH0pOwogICAgIHN0YV9uZXR3b3JrXy0+Z2V0UHNrUGFzc3BocmFzZSgKICAgICAgICAgWyZdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cywgY29uc3QgaGlkbF9zdHJpbmcmIHBzaykgewogICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7Ci0gICAgICAgICAgICBFWFBFQ1RfRVEoa1Rlc3RQc2ssIHN0ZDo6c3RyaW5nKHBzay5jX3N0cigpKSk7CisgICAgICAgICAgICBFWFBFQ1RfRVEoa1Rlc3RQc2tQYXNzcGhyYXNlLCBzdGQ6OnN0cmluZyhwc2suY19zdHIoKSkpOwogICAgICAgICB9KTsKIH0KIAogLyoKKyAqIFNldEdldFBzaworICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2V0R2V0UHNrKSB7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldFBzaywga1Rlc3RQc2spLmNvZGUpOworICAgIGNvbnN0IGF1dG8mIHN0YXR1c19hbmRfcHNrID0gSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBnZXRQc2spOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzX2FuZF9wc2suZmlyc3QuY29kZSk7CisgICAgaGlkbF9hcnJheTx1aW50OF90LCAzMj4gZXhwZWN0ZWRfcHNrKGtUZXN0UHNrKTsKKyAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRfcHNrLCBzdGF0dXNfYW5kX3Bzay5zZWNvbmQpOworfQorCisvKgogICogU2V0R2V0V2VwS2V5cwogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2V0R2V0V2VwVHhLZXlJZHgpIHsKQEAgLTM2MSw2ICszOTksMTIgQEAKICAqIFNldEdldEVhcFBoYXNlMk1ldGhvZAogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2V0R2V0RWFwUGhhc2UyTWV0aG9kKSB7CisgICAgSVN1cHBsaWNhbnRTdGFOZXR3b3JrOjpFYXBNZXRob2Qgc2V0X2VhcF9tZXRob2QgPQorICAgICAgICBJU3VwcGxpY2FudFN0YU5ldHdvcms6OkVhcE1ldGhvZDo6UEVBUDsKKyAgICBzdGFfbmV0d29ya18tPnNldEVhcE1ldGhvZCgKKyAgICAgICAgc2V0X2VhcF9tZXRob2QsIFtdKGNvbnN0IFN1cHBsaWNhbnRTdGF0dXMmIHN0YXR1cykgeworICAgICAgICAgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLCBzdGF0dXMuY29kZSk7CisgICAgICAgIH0pOwogICAgIElTdXBwbGljYW50U3RhTmV0d29yazo6RWFwUGhhc2UyTWV0aG9kIHNldF9lYXBfcGhhc2UyX21ldGhvZCA9CiAgICAgICAgIElTdXBwbGljYW50U3RhTmV0d29yazo6RWFwUGhhc2UyTWV0aG9kOjpOT05FOwogICAgIHN0YV9uZXR3b3JrXy0+c2V0RWFwUGhhc2UyTWV0aG9kKApAQCAtNTAwLDYgKzU0NCwyMSBAQAogfQogCiAvKgorICogU2V0R2V0RWFwU3ViamVjdE1hdGNoCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhTmV0d29ya0hpZGxUZXN0LCBTZXRHZXRFYXBTdWJqZWN0TWF0Y2gpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldEVhcFN1YmplY3RNYXRjaCwga1Rlc3RFYXBNYXRjaCkuY29kZSk7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF9zdWJqZWN0X21hdGNoID0KKyAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBnZXRFYXBTdWJqZWN0TWF0Y2gpOworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgc3RhdHVzX2FuZF9zdWJqZWN0X21hdGNoLmZpcnN0LmNvZGUpOworICAgIEVYUEVDVF9FUShrVGVzdEVhcE1hdGNoLAorICAgICAgICAgICAgICBzdGQ6OnN0cmluZyhzdGF0dXNfYW5kX3N1YmplY3RfbWF0Y2guc2Vjb25kLmNfc3RyKCkpKTsKK30KKworLyoKICAqIFNldEdldEVhcERvbWFpblN1ZmZpeE1hdGNoCiAgKi8KIFRFU1RfRihTdXBwbGljYW50U3RhTmV0d29ya0hpZGxUZXN0LCBTZXRHZXRFYXBEb21haW5TdWZmaXhNYXRjaCkgewpAQCAtNjM0LDYgKzY5MywxNCBAQAogfQogCiAvKgorICogU2VuZE5ldHdvcmtFYXBTaW1Hc21BdXRoRmFpbHVyZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2VuZE5ldHdvcmtFYXBTaW1Hc21BdXRoRmFpbHVyZSkgeworICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywKKyAgICAgICAgICAgICAgSElETF9JTlZPS0Uoc3RhX25ldHdvcmtfLCBzZW5kTmV0d29ya0VhcFNpbUdzbUF1dGhGYWlsdXJlKS5jb2RlKTsKK30KKworLyoKICAqIFNlbmROZXR3b3JrRWFwU2ltVW10c0F1dGhSZXNwb25zZQogICovCiBURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0aFJlc3BvbnNlKSB7CkBAIC02NDgsNiArNzE1LDI0IEBACiB9CiAKIC8qCisgKiBTZW5kTmV0d29ya0VhcFNpbVVtdHNBdXRoRmFpbHVyZQorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgU2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0aEZhaWx1cmUpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgc2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0aEZhaWx1cmUpLmNvZGUpOworfQorCisvKgorICogU2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0c1Jlc3BvbnNlCisgKi8KK1RFU1RfRihTdXBwbGljYW50U3RhTmV0d29ya0hpZGxUZXN0LCBTZW5kTmV0d29ya0VhcFNpbVVtdHNBdXRzUmVzcG9uc2UpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgc2VuZE5ldHdvcmtFYXBTaW1VbXRzQXV0c1Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBrVGVzdEF1dFBhcmFtKQorICAgICAgICAgICAgICAgICAgLmNvZGUpOworfQorCisvKgogICogU2VuZE5ldHdvcmtFYXBJZGVudGl0eVJlc3BvbnNlCiAgKi8KIFRFU1RfRihTdXBwbGljYW50U3RhTmV0d29ya0hpZGxUZXN0LCBTZW5kTmV0d29ya0VhcElkZW50aXR5UmVzcG9uc2UpIHsKQEAgLTY1OCwzICs3NDMsNDAgQEAKICAgICAgICAgICAgIEVYUEVDVF9FUShTdXBwbGljYW50U3RhdHVzQ29kZTo6U1VDQ0VTUywgc3RhdHVzLmNvZGUpOwogICAgICAgICB9KTsKIH0KKworLyoKKyAqIFNldFVwZGF0ZUlkZW50aWZpZXIKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNldFVwZGF0ZUlkZW50aWZpZXIpIHsKKyAgICBFWFBFQ1RfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldFVwZGF0ZUlkZW50aWZpZXIsIGtUZXN0VXBkYXRlSWRlbnRpZmllcikKKyAgICAgICAgICAgIC5jb2RlKTsKK30KKworLyoKKyAqIFNldFByb2FjdGl2ZUtleUNhY2hpbmcKKyAqLworVEVTVF9GKFN1cHBsaWNhbnRTdGFOZXR3b3JrSGlkbFRlc3QsIFNldFByb2FjdGl2ZUtleUNhY2hpbmcpIHsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgc2V0UHJvYWN0aXZlS2V5Q2FjaGluZywgdHJ1ZSkuY29kZSk7CisgICAgRVhQRUNUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldFByb2FjdGl2ZUtleUNhY2hpbmcsIGZhbHNlKS5jb2RlKTsKK30KKworLyoKKyAqIEdldFdwc05mY0NvbmZpZ3VyYXRpb25Ub2tlbgorICovCitURVNUX0YoU3VwcGxpY2FudFN0YU5ldHdvcmtIaWRsVGVzdCwgR2V0V3BzTmZjQ29uZmlndXJhdGlvblRva2VuKSB7CisgICAgQVNTRVJUX0VRKFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldFNzaWQsIHNzaWRfKS5jb2RlKTsKKyAgICBBU1NFUlRfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsCisgICAgICAgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgc2V0S2V5TWdtdCwga1Rlc3RLZXlNZ210KS5jb2RlKTsKKyAgICBBU1NFUlRfRVEoCisgICAgICAgIFN1cHBsaWNhbnRTdGF0dXNDb2RlOjpTVUNDRVNTLAorICAgICAgICBISURMX0lOVk9LRShzdGFfbmV0d29ya18sIHNldFBza1Bhc3NwaHJhc2UsIGtUZXN0UHNrUGFzc3BocmFzZSkuY29kZSk7CisgICAgY29uc3QgYXV0byYgc3RhdHVzX2FuZF90b2tlbiA9CisgICAgICAgIEhJRExfSU5WT0tFKHN0YV9uZXR3b3JrXywgZ2V0V3BzTmZjQ29uZmlndXJhdGlvblRva2VuKTsKKyAgICBFWFBFQ1RfRVEoU3VwcGxpY2FudFN0YXR1c0NvZGU6OlNVQ0NFU1MsIHN0YXR1c19hbmRfdG9rZW4uZmlyc3QuY29kZSk7CisgICAgRVhQRUNUX0ZBTFNFKDAgPT0gc3RhdHVzX2FuZF90b2tlbi5zZWNvbmQuc2l6ZSgpKTsKK30K